|
关于P6系列处理器的微代码更新的研究2 M" j3 {; t6 R% c" }
第一稿* |9 A) i8 S4 ^1 E
作者:Jesus Molina, William Arbaugh
4 W9 X3 }6 i( m/ i+ B! c+ O3 M1 ?Park大学, 2000年11月! I) r7 J* F, W9 j6 P4 d
6 l+ B2 p1 R# W6 ]
微代码更新特性在参考文献[3]的第8章第10节有介绍。 微代码更新由2048个字节
3 l/ d! x. X$ _6 ]* n的数据组成, 其中48字节是头部数据, 剩下的2000字节是微代码本身。 为了避免歧义,
3 I% [4 {' ^( M; R, _0 Z- V1 b本文将把这2048字节叫作「微代码更新」或「微代码」, 而把开始的48字节称为「头/ J3 M" J6 e& c$ ~+ W
部」, 把剩下的2000字节称为「更新数据」。 「更新数据」是为了修复对处理器规范的
9 a9 w4 g [8 e背离(Intel管这种背离叫「勘误表」(errata)。我们将用术语BUG或errata来指代这种背离)。
* _# v; e8 ~( x9 c. o# I9 G关于头部和更新数据的详细介绍, 将在本文档第3节出现。
0 g7 K* k7 a6 c( T- k微代码更新是通过Intel提供的软件工具完成的, 并且在重新引导时消失。 也就是说,
( L! o- ~0 p1 K5 Q6 h F+ ?4 ?你必须在每次机器起动的时候都更新微代码。! j/ ?& {4 H' {8 w* n" @
尽管Intel描述了微代码更新这一特征, 这种描述却是模糊的, 尤其在涉及到微代码
4 a |9 S6 ~% }: Y( E; X所勘正的那些错误时。 另外, 微代码加了签名(我们将在第7部分详细讲述,参考资料[3]
: ^" n6 ?5 I2 l" W9 ^的8.10部分也有讲述), 但在资料[3]中并没说这种加密/签名究竟是怎么执行的。
: |5 N4 j$ w* k. ~& v: S5 C. X: B5 _
这篇文档将讲述这些信息.
( H) M2 A' L3 f6 j3 w2 P' Z* r( S6 d" T' p3 N. L! h0 f& Y
下载文档: |
|