|
|
关于P6系列处理器的微代码更新的研究9 c Q/ @, Q: P" e m. F& P
第一稿
+ M4 C: M, y' W, V! U作者:Jesus Molina, William Arbaugh
/ F) Q2 c" X6 D& s9 QPark大学, 2000年11月
: t6 @7 ^6 I6 T/ y- N: q* Q5 W% P y+ U. Y- c' y! r3 e
微代码更新特性在参考文献[3]的第8章第10节有介绍。 微代码更新由2048个字节) k% D2 x( W6 O0 e! B g/ t1 o2 a
的数据组成, 其中48字节是头部数据, 剩下的2000字节是微代码本身。 为了避免歧义,
- e. n0 N- G( v& V1 {本文将把这2048字节叫作「微代码更新」或「微代码」, 而把开始的48字节称为「头/ U7 w; d. k1 J
部」, 把剩下的2000字节称为「更新数据」。 「更新数据」是为了修复对处理器规范的) S; C4 t1 B# v. ]4 j
背离(Intel管这种背离叫「勘误表」(errata)。我们将用术语BUG或errata来指代这种背离)。3 X! J7 N) C; W! {! Z4 Q3 h
关于头部和更新数据的详细介绍, 将在本文档第3节出现。
- T( ?$ u( Y9 T. }! G* z, W微代码更新是通过Intel提供的软件工具完成的, 并且在重新引导时消失。 也就是说,
2 u2 I6 c+ l& U5 d6 [- q$ K你必须在每次机器起动的时候都更新微代码。, \9 k- b* h" N6 [4 G$ u
尽管Intel描述了微代码更新这一特征, 这种描述却是模糊的, 尤其在涉及到微代码
7 v k: u W, u# h! a) u% z所勘正的那些错误时。 另外, 微代码加了签名(我们将在第7部分详细讲述,参考资料[3]
/ n" g1 K% c5 ]* f4 Z! ~8 K# K的8.10部分也有讲述), 但在资料[3]中并没说这种加密/签名究竟是怎么执行的。9 t( g2 A. f# u! f8 |1 z
7 C9 Q0 ]3 L/ X- b" t% H这篇文档将讲述这些信息. \, R+ t( \* @+ R
- F% j* C; Q. ^. z7 Y) s+ _下载文档: |
|