|
|
关于P6系列处理器的微代码更新的研究8 B3 O5 S: a/ F3 Q# Z; w
第一稿
- s( u$ R' |- |% K: X作者:Jesus Molina, William Arbaugh
/ W, b: X& W9 }/ w0 [: ZPark大学, 2000年11月
6 m" W D! K& e
& x, C* s9 ~# P7 @* U% h微代码更新特性在参考文献[3]的第8章第10节有介绍。 微代码更新由2048个字节
) X9 a) J+ }' c5 W9 U的数据组成, 其中48字节是头部数据, 剩下的2000字节是微代码本身。 为了避免歧义,
/ \3 F( `& _3 S5 L: V2 D: B4 W本文将把这2048字节叫作「微代码更新」或「微代码」, 而把开始的48字节称为「头
+ ~- u* v( \/ `9 Q7 o部」, 把剩下的2000字节称为「更新数据」。 「更新数据」是为了修复对处理器规范的9 e, l" d- L+ a& K. O
背离(Intel管这种背离叫「勘误表」(errata)。我们将用术语BUG或errata来指代这种背离)。7 Y" m. P( N+ z' ?' E3 {! u
关于头部和更新数据的详细介绍, 将在本文档第3节出现。
1 @3 I; n- i: P5 l$ j- K$ a微代码更新是通过Intel提供的软件工具完成的, 并且在重新引导时消失。 也就是说,
% P% t' @! f' ^" Y% p你必须在每次机器起动的时候都更新微代码。0 L3 `4 H+ f; c. A8 h A
尽管Intel描述了微代码更新这一特征, 这种描述却是模糊的, 尤其在涉及到微代码2 E1 e; _# v& |0 j$ x
所勘正的那些错误时。 另外, 微代码加了签名(我们将在第7部分详细讲述,参考资料[3]
: G7 c2 n- m# V3 k( F的8.10部分也有讲述), 但在资料[3]中并没说这种加密/签名究竟是怎么执行的。
6 G4 x; e. h& n8 L0 {. g3 X& P5 _$ m* h& L% f
这篇文档将讲述这些信息.( P: v& j+ d3 W% x* h3 Y( y* Q
$ z: h: V2 V! ^) e8 M/ h下载文档: |
|