|
|
关于P6系列处理器的微代码更新的研究$ Q( f# i% F8 W& h( w# H/ x. c
第一稿+ q" v0 C+ X6 {& }* |( l
作者:Jesus Molina, William Arbaugh
3 q* F$ Q6 W# q2 XPark大学, 2000年11月
6 {2 r; q; W" u9 Z: H) x
5 M& ^& {! t4 X6 P3 W0 V% f# y微代码更新特性在参考文献[3]的第8章第10节有介绍。 微代码更新由2048个字节
& Y7 ?# H) Q) W* b" O8 x的数据组成, 其中48字节是头部数据, 剩下的2000字节是微代码本身。 为了避免歧义,
: u8 Q" N* \) V2 P本文将把这2048字节叫作「微代码更新」或「微代码」, 而把开始的48字节称为「头
( @, b7 a6 F+ f$ d9 J* b, I部」, 把剩下的2000字节称为「更新数据」。 「更新数据」是为了修复对处理器规范的
6 M* b+ O2 _( Q% b/ o3 q! j6 J, G背离(Intel管这种背离叫「勘误表」(errata)。我们将用术语BUG或errata来指代这种背离)。
9 }- @9 p8 }6 Y# y+ n关于头部和更新数据的详细介绍, 将在本文档第3节出现。
. e; O% r' C2 |& P+ o微代码更新是通过Intel提供的软件工具完成的, 并且在重新引导时消失。 也就是说,# y1 N; j$ X1 Z2 y- \* k' N
你必须在每次机器起动的时候都更新微代码。
3 |$ N5 \) L8 G! Y/ A+ }尽管Intel描述了微代码更新这一特征, 这种描述却是模糊的, 尤其在涉及到微代码
& o) `% o; u9 W. y1 ~% C所勘正的那些错误时。 另外, 微代码加了签名(我们将在第7部分详细讲述,参考资料[3]' X& F& V+ u7 G! s8 t
的8.10部分也有讲述), 但在资料[3]中并没说这种加密/签名究竟是怎么执行的。3 q0 h+ k! t7 a; {
9 i* t/ x) [; K+ m% I8 Y
这篇文档将讲述这些信息.
: y( [8 ]8 a, X; \ Z7 Y' z3 Z: g/ o1 M" v
下载文档: |
|