|
|
关于P6系列处理器的微代码更新的研究
( O& H9 ^1 O$ y% [+ F, t第一稿
# I' E. O( x7 C" X& Y作者:Jesus Molina, William Arbaugh
+ L) L M+ X+ K* G# XPark大学, 2000年11月
3 b" I- N0 v3 P) M9 E- L" O! }
微代码更新特性在参考文献[3]的第8章第10节有介绍。 微代码更新由2048个字节: }! Q4 O/ z/ B0 c: M/ T: O' T n
的数据组成, 其中48字节是头部数据, 剩下的2000字节是微代码本身。 为了避免歧义,
f+ I3 C( L% ?本文将把这2048字节叫作「微代码更新」或「微代码」, 而把开始的48字节称为「头
1 a: b2 }4 `2 ~4 Y; O% t部」, 把剩下的2000字节称为「更新数据」。 「更新数据」是为了修复对处理器规范的
1 h, {, [8 `& A9 i( C1 Z: T背离(Intel管这种背离叫「勘误表」(errata)。我们将用术语BUG或errata来指代这种背离)。
4 y5 ^5 G8 R2 ]关于头部和更新数据的详细介绍, 将在本文档第3节出现。
9 z4 {8 y7 T, a' Y微代码更新是通过Intel提供的软件工具完成的, 并且在重新引导时消失。 也就是说,8 r1 E# Z4 T$ D/ j
你必须在每次机器起动的时候都更新微代码。2 h" N; V& D! \. k
尽管Intel描述了微代码更新这一特征, 这种描述却是模糊的, 尤其在涉及到微代码9 j3 c& r* ^# N: d. k
所勘正的那些错误时。 另外, 微代码加了签名(我们将在第7部分详细讲述,参考资料[3]6 I m1 A( `: t% ^& R6 r
的8.10部分也有讲述), 但在资料[3]中并没说这种加密/签名究竟是怎么执行的。) u* C2 O8 i( u j( u+ b
7 d% M3 f; `- Y; V: u2 y% h这篇文档将讲述这些信息.
+ o! a% i6 \' J ]/ \6 V. I
4 {9 ?; y3 U4 L: n7 B' d9 S A2 q下载文档: |
|