|
|
关于P6系列处理器的微代码更新的研究6 j) [) [% C/ v0 V+ _4 D
第一稿5 R0 s* P6 z' v! U/ @
作者:Jesus Molina, William Arbaugh
( N- q! K3 w) tPark大学, 2000年11月, r5 R' ] g( I$ m* H( ]
% B! r' q) ]& A+ r微代码更新特性在参考文献[3]的第8章第10节有介绍。 微代码更新由2048个字节- I& a- k+ M! P
的数据组成, 其中48字节是头部数据, 剩下的2000字节是微代码本身。 为了避免歧义,
" l4 A/ O0 C# i9 r本文将把这2048字节叫作「微代码更新」或「微代码」, 而把开始的48字节称为「头: c* o" b5 T0 V& w7 p8 V# k
部」, 把剩下的2000字节称为「更新数据」。 「更新数据」是为了修复对处理器规范的
9 j) l0 X2 @) n$ ]2 _$ @4 y背离(Intel管这种背离叫「勘误表」(errata)。我们将用术语BUG或errata来指代这种背离)。
% ^+ e/ r; I& f ~% [ m关于头部和更新数据的详细介绍, 将在本文档第3节出现。
# M/ ^( ]9 I# X3 S* n( C微代码更新是通过Intel提供的软件工具完成的, 并且在重新引导时消失。 也就是说,2 \( w1 t( _' ?' q5 k
你必须在每次机器起动的时候都更新微代码。: [# j; q% O% ^
尽管Intel描述了微代码更新这一特征, 这种描述却是模糊的, 尤其在涉及到微代码* V8 c( ~3 W6 }2 i9 Y& q
所勘正的那些错误时。 另外, 微代码加了签名(我们将在第7部分详细讲述,参考资料[3]& y! y5 U5 K- }1 p. U; Z$ U& e
的8.10部分也有讲述), 但在资料[3]中并没说这种加密/签名究竟是怎么执行的。
$ F+ R* W5 ^9 e* | B7 X7 y, I6 N2 B; k0 v% T$ V
这篇文档将讲述这些信息.
; m: r3 ]/ ~! q: Z/ @& h* E/ ^/ g2 X4 M; W1 m/ b/ S# Y0 z! c
下载文档: |
|