|
关于P6系列处理器的微代码更新的研究
3 k# l$ e# u: w3 V7 D) g' n第一稿
) F6 W+ R1 E# t' ?) h作者:Jesus Molina, William Arbaugh/ M0 |6 |! X1 J- c/ r! m" a
Park大学, 2000年11月
9 g$ @2 _% |) a- [
2 k% w) z r% V3 P, K L) O6 ?5 A1 }微代码更新特性在参考文献[3]的第8章第10节有介绍。 微代码更新由2048个字节
K7 I# Q; h/ q的数据组成, 其中48字节是头部数据, 剩下的2000字节是微代码本身。 为了避免歧义,' u g9 a0 a# b5 x D/ I
本文将把这2048字节叫作「微代码更新」或「微代码」, 而把开始的48字节称为「头
; u$ U9 A0 z$ Q" @, h$ @) J6 Y部」, 把剩下的2000字节称为「更新数据」。 「更新数据」是为了修复对处理器规范的- H& ], n+ e, }+ l$ |0 u7 z+ D
背离(Intel管这种背离叫「勘误表」(errata)。我们将用术语BUG或errata来指代这种背离)。5 W, A" @2 n$ i: x! ~7 O; d9 {
关于头部和更新数据的详细介绍, 将在本文档第3节出现。
J1 n# Y. @. U- h9 O1 j微代码更新是通过Intel提供的软件工具完成的, 并且在重新引导时消失。 也就是说,
6 E9 ?0 d; G3 [) t你必须在每次机器起动的时候都更新微代码。
1 G: z: U) i' F T( t8 J4 e尽管Intel描述了微代码更新这一特征, 这种描述却是模糊的, 尤其在涉及到微代码
) i4 U/ `0 t* Z! ?8 C所勘正的那些错误时。 另外, 微代码加了签名(我们将在第7部分详细讲述,参考资料[3]# d2 E! N& z( G6 O; \( U1 [- |( l
的8.10部分也有讲述), 但在资料[3]中并没说这种加密/签名究竟是怎么执行的。7 g* n, g: Y4 B, B" ?' C
' Y1 W, X( p5 e6 I
这篇文档将讲述这些信息.
. ]# c2 E4 `: u% X
, P$ s/ W5 g9 [5 E h! }% \; P5 K下载文档: |
|