|
|
关于P6系列处理器的微代码更新的研究; j% e: r( b8 q9 G& v
第一稿
; X D* Y, ^4 e. [/ Z3 s* E. p w1 x* e作者:Jesus Molina, William Arbaugh
) ?" P6 }5 \ R" Q6 y9 dPark大学, 2000年11月4 ~) _& z; M4 o% _+ S
2 r2 K/ W* [9 Z2 K/ g微代码更新特性在参考文献[3]的第8章第10节有介绍。 微代码更新由2048个字节
2 Q5 S. s; C2 c" P2 q0 S的数据组成, 其中48字节是头部数据, 剩下的2000字节是微代码本身。 为了避免歧义,! o( s; O8 R6 ]) O. j& [
本文将把这2048字节叫作「微代码更新」或「微代码」, 而把开始的48字节称为「头# J6 d) W: a! {5 S" G% j
部」, 把剩下的2000字节称为「更新数据」。 「更新数据」是为了修复对处理器规范的
( E0 u* L4 V5 I. r背离(Intel管这种背离叫「勘误表」(errata)。我们将用术语BUG或errata来指代这种背离)。9 L: L1 `. Y, X! Q3 e M! K0 y# M
关于头部和更新数据的详细介绍, 将在本文档第3节出现。0 c3 e9 G/ Q$ C5 n9 }5 Y2 X: B
微代码更新是通过Intel提供的软件工具完成的, 并且在重新引导时消失。 也就是说,
& m5 k- _1 F" n1 f) ~: g你必须在每次机器起动的时候都更新微代码。4 m/ \: E6 X3 c
尽管Intel描述了微代码更新这一特征, 这种描述却是模糊的, 尤其在涉及到微代码
) m+ r& F2 o/ _' o( U( I) |5 W, S所勘正的那些错误时。 另外, 微代码加了签名(我们将在第7部分详细讲述,参考资料[3]
' b* a+ R1 |, T k9 h/ q的8.10部分也有讲述), 但在资料[3]中并没说这种加密/签名究竟是怎么执行的。
0 H) ~. O% a( C8 K5 F, K( \& J6 f; ~( D' \
这篇文档将讲述这些信息.* u F7 V; l+ y! L# @
9 w% C: P9 j' N; y/ y0 N# R下载文档: |
|