|
|
关于P6系列处理器的微代码更新的研究
' C _) t H, C& l1 s第一稿- D4 X3 }' g9 r; z- o% b( H
作者:Jesus Molina, William Arbaugh
9 z$ }2 R4 v7 FPark大学, 2000年11月
9 ]7 S4 z8 i- K4 \& |
6 ]6 W0 ~( z" @* ^ I/ j. w微代码更新特性在参考文献[3]的第8章第10节有介绍。 微代码更新由2048个字节) Y- C; i, o7 A4 b9 g& R
的数据组成, 其中48字节是头部数据, 剩下的2000字节是微代码本身。 为了避免歧义,4 ~& `# p# E0 S# P1 F9 O
本文将把这2048字节叫作「微代码更新」或「微代码」, 而把开始的48字节称为「头* G j X+ `5 R7 y: C N3 Q
部」, 把剩下的2000字节称为「更新数据」。 「更新数据」是为了修复对处理器规范的1 ~8 {4 J$ j4 k& W% @+ \
背离(Intel管这种背离叫「勘误表」(errata)。我们将用术语BUG或errata来指代这种背离)。5 O% N1 J+ F6 ]9 o# ]& a
关于头部和更新数据的详细介绍, 将在本文档第3节出现。9 c* Q$ t9 S2 b' U
微代码更新是通过Intel提供的软件工具完成的, 并且在重新引导时消失。 也就是说,
0 g( U4 E& d8 {2 a, T6 R! n你必须在每次机器起动的时候都更新微代码。$ {/ H/ x7 p9 u) T+ \' b9 g' S P+ o9 u
尽管Intel描述了微代码更新这一特征, 这种描述却是模糊的, 尤其在涉及到微代码
- V( Q: V% ^4 |; R4 s所勘正的那些错误时。 另外, 微代码加了签名(我们将在第7部分详细讲述,参考资料[3]
, \% Y$ o5 k1 J+ R% O6 E0 \* K5 e的8.10部分也有讲述), 但在资料[3]中并没说这种加密/签名究竟是怎么执行的。
& u% ^. P' k) z7 b4 G7 @: q
4 h0 |0 e+ c: P这篇文档将讲述这些信息.
$ K% c! ?: H4 c* e9 f! G
& ^( K: I) Y/ Z9 x( b下载文档: |
|