|
关于P6系列处理器的微代码更新的研究6 y% r: w) I0 Y& V" q0 e/ N+ @# c
第一稿& n; v* Q, J' N: S" @: W
作者:Jesus Molina, William Arbaugh
' x: t+ g& b6 t$ t9 K0 rPark大学, 2000年11月9 F$ ?3 e/ s* D
* q% [& p3 i# ]+ j& n: ]微代码更新特性在参考文献[3]的第8章第10节有介绍。 微代码更新由2048个字节
8 _& z- a2 i, z4 ^& _, x6 p的数据组成, 其中48字节是头部数据, 剩下的2000字节是微代码本身。 为了避免歧义,
( G+ R2 {3 p1 _0 `9 k& Q) D% B B1 y本文将把这2048字节叫作「微代码更新」或「微代码」, 而把开始的48字节称为「头) H. R- G& z9 N% r
部」, 把剩下的2000字节称为「更新数据」。 「更新数据」是为了修复对处理器规范的
d6 C; c, K9 h/ c; n背离(Intel管这种背离叫「勘误表」(errata)。我们将用术语BUG或errata来指代这种背离)。$ [" m+ _5 V$ r+ f' _5 b; |
关于头部和更新数据的详细介绍, 将在本文档第3节出现。' Y5 S9 [, p4 h
微代码更新是通过Intel提供的软件工具完成的, 并且在重新引导时消失。 也就是说,
" Y. K- w4 e6 F4 u你必须在每次机器起动的时候都更新微代码。# [7 x% f2 I7 y
尽管Intel描述了微代码更新这一特征, 这种描述却是模糊的, 尤其在涉及到微代码3 f" l, ]# g: z( J [
所勘正的那些错误时。 另外, 微代码加了签名(我们将在第7部分详细讲述,参考资料[3]
/ x1 X- J1 v, }8 R的8.10部分也有讲述), 但在资料[3]中并没说这种加密/签名究竟是怎么执行的。
/ f( d. K8 n8 z5 T
2 j4 C3 g) G% G# x1 k这篇文档将讲述这些信息.
3 H% W; B3 a3 T! _; t9 d( V* p% g9 [
下载文档: |
|