|
|
关于P6系列处理器的微代码更新的研究4 \% r9 ^4 G. P" P" y
第一稿
+ }: Z0 d. \+ g$ A作者:Jesus Molina, William Arbaugh
# x3 ?6 {1 j1 Q) K$ A% jPark大学, 2000年11月% s/ J B# g7 ^( P
6 X8 S) y- L! g+ t8 t微代码更新特性在参考文献[3]的第8章第10节有介绍。 微代码更新由2048个字节" K2 B; Q$ n1 L4 _7 M
的数据组成, 其中48字节是头部数据, 剩下的2000字节是微代码本身。 为了避免歧义,
/ e9 {+ Y1 Z( W- k8 }5 z0 u本文将把这2048字节叫作「微代码更新」或「微代码」, 而把开始的48字节称为「头
! `, ~+ V! { M0 S1 ~3 C部」, 把剩下的2000字节称为「更新数据」。 「更新数据」是为了修复对处理器规范的/ c5 j `) V& [7 J! y
背离(Intel管这种背离叫「勘误表」(errata)。我们将用术语BUG或errata来指代这种背离)。+ Y0 Y; P- U2 f- g$ N$ Y
关于头部和更新数据的详细介绍, 将在本文档第3节出现。
$ S- P" G$ }% v9 B3 u* X微代码更新是通过Intel提供的软件工具完成的, 并且在重新引导时消失。 也就是说,+ N- ~3 }8 e$ w) s
你必须在每次机器起动的时候都更新微代码。3 B8 A0 n. Q0 ?2 ^5 A/ p1 O+ B! V3 [
尽管Intel描述了微代码更新这一特征, 这种描述却是模糊的, 尤其在涉及到微代码
4 V3 z5 j5 k# `1 M N6 U所勘正的那些错误时。 另外, 微代码加了签名(我们将在第7部分详细讲述,参考资料[3]% ^$ t0 R" D+ d S, J
的8.10部分也有讲述), 但在资料[3]中并没说这种加密/签名究竟是怎么执行的。& s2 a7 o" w: i/ @. U# ~
. ~6 [2 @0 J( f: p. t x/ L这篇文档将讲述这些信息.: V% o: x8 N( k* s( X0 z
) a( g/ T$ y$ X B' y& J. o" U l
下载文档: |
|