|
|
关于P6系列处理器的微代码更新的研究- d0 e$ |# D% H* G
第一稿# f- D6 ^1 R- ]. V
作者:Jesus Molina, William Arbaugh
, w7 @8 C# l% gPark大学, 2000年11月9 D/ B% R/ c0 v3 k7 M/ B
% S4 C# F3 Q) m, C( E k1 s
微代码更新特性在参考文献[3]的第8章第10节有介绍。 微代码更新由2048个字节) X' J. y/ Z- ]" }
的数据组成, 其中48字节是头部数据, 剩下的2000字节是微代码本身。 为了避免歧义,4 g9 L+ T& U1 i' x: D
本文将把这2048字节叫作「微代码更新」或「微代码」, 而把开始的48字节称为「头
+ m, j; N8 Z/ |部」, 把剩下的2000字节称为「更新数据」。 「更新数据」是为了修复对处理器规范的
3 B# n# Z+ r6 C+ [4 r背离(Intel管这种背离叫「勘误表」(errata)。我们将用术语BUG或errata来指代这种背离)。
) K, W/ {; S$ x2 B/ F) Q+ `关于头部和更新数据的详细介绍, 将在本文档第3节出现。7 B8 {# f" g. w7 N3 I- \- X4 N
微代码更新是通过Intel提供的软件工具完成的, 并且在重新引导时消失。 也就是说,
8 L Y( |6 I' {# c5 l你必须在每次机器起动的时候都更新微代码。8 M9 {/ G) h6 N. M1 I( S
尽管Intel描述了微代码更新这一特征, 这种描述却是模糊的, 尤其在涉及到微代码5 J$ V+ s- E0 H4 p9 h' r( q' b0 A
所勘正的那些错误时。 另外, 微代码加了签名(我们将在第7部分详细讲述,参考资料[3]
# u, v5 S5 }9 [- y, M. F的8.10部分也有讲述), 但在资料[3]中并没说这种加密/签名究竟是怎么执行的。. G2 f+ P: Q" d- ]
& g% ?+ J6 U# L& Q$ H- g这篇文档将讲述这些信息.
& t) @4 q x0 o; R% C
8 R# r5 }: T$ p" @, V: \/ i2 ~下载文档: |
|