|
关于P6系列处理器的微代码更新的研究
% G1 p4 ?8 e. r' A+ B& A" F; g第一稿
6 ^: e4 l. c5 S5 Z# ?9 o. D作者:Jesus Molina, William Arbaugh& d3 E. p7 F2 m7 s: I2 w( f
Park大学, 2000年11月
; S& |* G6 [2 p" m/ V- L) }0 A+ v0 K: P. e
微代码更新特性在参考文献[3]的第8章第10节有介绍。 微代码更新由2048个字节
* o( [3 C- }$ U- d* x; L0 ]的数据组成, 其中48字节是头部数据, 剩下的2000字节是微代码本身。 为了避免歧义,
* x+ O4 I$ {8 V0 X5 w本文将把这2048字节叫作「微代码更新」或「微代码」, 而把开始的48字节称为「头
( U3 \& D2 `6 V% Y5 k x: c部」, 把剩下的2000字节称为「更新数据」。 「更新数据」是为了修复对处理器规范的0 J' F3 \9 s9 D z0 c+ d
背离(Intel管这种背离叫「勘误表」(errata)。我们将用术语BUG或errata来指代这种背离)。
7 A5 `$ W, E, ]- O5 [关于头部和更新数据的详细介绍, 将在本文档第3节出现。
a9 S. f @' @微代码更新是通过Intel提供的软件工具完成的, 并且在重新引导时消失。 也就是说,
! S8 s' ?% ?8 j你必须在每次机器起动的时候都更新微代码。
+ y' x4 j% U$ c尽管Intel描述了微代码更新这一特征, 这种描述却是模糊的, 尤其在涉及到微代码. O/ p/ J3 {) K7 w% o" A7 m
所勘正的那些错误时。 另外, 微代码加了签名(我们将在第7部分详细讲述,参考资料[3]
, X1 H5 n {9 U4 I( N的8.10部分也有讲述), 但在资料[3]中并没说这种加密/签名究竟是怎么执行的。
6 ^* D6 S. ~, D4 {0 h% O( N3 }3 i% h9 `* K
这篇文档将讲述这些信息.6 u4 D7 S' L$ O$ [, u
' E% A7 R+ ` l* M. R( I) E0 O/ M4 [, k
下载文档: |
|