|
|
关于P6系列处理器的微代码更新的研究7 r3 d! u! H8 F
第一稿) I2 H. N" e7 x$ o8 J9 Y
作者:Jesus Molina, William Arbaugh
0 y5 X% P$ l- ?) |7 {Park大学, 2000年11月
0 t2 a) d0 V( m, ]. s' P r+ n( x' L5 R9 T; G& ?: `% y- o& C# F
微代码更新特性在参考文献[3]的第8章第10节有介绍。 微代码更新由2048个字节
+ r- j/ h! t! W7 q; L) d% u的数据组成, 其中48字节是头部数据, 剩下的2000字节是微代码本身。 为了避免歧义,
" L0 h2 C8 q: d; ^本文将把这2048字节叫作「微代码更新」或「微代码」, 而把开始的48字节称为「头
1 A. M# |+ m& n4 C4 Y6 D& f1 ~部」, 把剩下的2000字节称为「更新数据」。 「更新数据」是为了修复对处理器规范的" F& [7 T9 }6 }* W' Q, M
背离(Intel管这种背离叫「勘误表」(errata)。我们将用术语BUG或errata来指代这种背离)。
: ?0 K2 o3 }0 h6 H关于头部和更新数据的详细介绍, 将在本文档第3节出现。
$ z! C( K# K3 Q$ [7 X$ R微代码更新是通过Intel提供的软件工具完成的, 并且在重新引导时消失。 也就是说,9 G6 S' d$ j; d9 ~# i# D+ P
你必须在每次机器起动的时候都更新微代码。! Y( Y+ Z" k3 M
尽管Intel描述了微代码更新这一特征, 这种描述却是模糊的, 尤其在涉及到微代码/ k s4 i( K9 Q8 K1 r- q
所勘正的那些错误时。 另外, 微代码加了签名(我们将在第7部分详细讲述,参考资料[3]
& M/ Z: G! \1 _的8.10部分也有讲述), 但在资料[3]中并没说这种加密/签名究竟是怎么执行的。" z; B4 G; [4 I# [, e
3 @* [: `, K- R! [, j; @0 q这篇文档将讲述这些信息.$ n% j' d/ K ]& r3 u5 U: Q" l
$ S* V* X, t3 \+ D
下载文档: |
|