|
关于P6系列处理器的微代码更新的研究
) q3 b+ }6 q {( T+ a第一稿6 n; D, Q* s& `
作者:Jesus Molina, William Arbaugh
b: S# ^7 J0 F; h" rPark大学, 2000年11月( P3 N# `: U* W) Q2 e
, B) D- `/ ~* s- U+ h' q' X微代码更新特性在参考文献[3]的第8章第10节有介绍。 微代码更新由2048个字节# i; P, `3 t% `0 U
的数据组成, 其中48字节是头部数据, 剩下的2000字节是微代码本身。 为了避免歧义,
! r9 V6 ~) a! p i* t# p本文将把这2048字节叫作「微代码更新」或「微代码」, 而把开始的48字节称为「头
1 Z F, W( ]0 g5 P4 P; w部」, 把剩下的2000字节称为「更新数据」。 「更新数据」是为了修复对处理器规范的
7 R T p3 @9 w5 y背离(Intel管这种背离叫「勘误表」(errata)。我们将用术语BUG或errata来指代这种背离)。( B- A; c3 Y% F: t3 P+ ~3 R
关于头部和更新数据的详细介绍, 将在本文档第3节出现。' J7 H" \! m" j: _2 w& s# o) e
微代码更新是通过Intel提供的软件工具完成的, 并且在重新引导时消失。 也就是说,
- C$ p( ?, c* s& N3 O; N你必须在每次机器起动的时候都更新微代码。
0 \, y# Z/ D1 N; n7 ?尽管Intel描述了微代码更新这一特征, 这种描述却是模糊的, 尤其在涉及到微代码" X. m$ I" Z" q; l" @
所勘正的那些错误时。 另外, 微代码加了签名(我们将在第7部分详细讲述,参考资料[3]
6 I% ]% w# N& e$ z9 `$ c/ y的8.10部分也有讲述), 但在资料[3]中并没说这种加密/签名究竟是怎么执行的。6 f. h( K* M4 s1 K( X5 z* v
+ @" \ z' ?5 D& S' F这篇文档将讲述这些信息.
9 n2 [: O; ]3 a9 m" W8 T! D. e! c. T$ K( v
下载文档: |
|