|
|
关于P6系列处理器的微代码更新的研究
3 e) A: `# o* [5 V6 ?" O第一稿
( p0 R7 b& D1 W$ V. B( E N作者:Jesus Molina, William Arbaugh! S; |; A O& I: X
Park大学, 2000年11月
" Z; W b/ U; Q' Y/ h5 h
5 K+ ?9 k: h+ A X# Q+ ?微代码更新特性在参考文献[3]的第8章第10节有介绍。 微代码更新由2048个字节
2 a& h& J4 e1 _" {# f: w4 s& E' {的数据组成, 其中48字节是头部数据, 剩下的2000字节是微代码本身。 为了避免歧义,
; q6 q% W3 q7 a2 f0 @# M本文将把这2048字节叫作「微代码更新」或「微代码」, 而把开始的48字节称为「头/ H) T( @2 c' x5 Y
部」, 把剩下的2000字节称为「更新数据」。 「更新数据」是为了修复对处理器规范的
G- V1 O3 h& Q8 G! R背离(Intel管这种背离叫「勘误表」(errata)。我们将用术语BUG或errata来指代这种背离)。
5 d# p D; T) M2 W' R关于头部和更新数据的详细介绍, 将在本文档第3节出现。
" o& W, ~8 z& o9 N$ O1 f& B微代码更新是通过Intel提供的软件工具完成的, 并且在重新引导时消失。 也就是说,
+ H8 k2 k& [5 f9 K* ^# D" W你必须在每次机器起动的时候都更新微代码。/ Z& Z# v. @; \- x
尽管Intel描述了微代码更新这一特征, 这种描述却是模糊的, 尤其在涉及到微代码
' b" Y/ B5 Q) @3 l9 Z8 u: j4 Y所勘正的那些错误时。 另外, 微代码加了签名(我们将在第7部分详细讲述,参考资料[3]" j9 A. X1 |6 ?, ^1 A& H
的8.10部分也有讲述), 但在资料[3]中并没说这种加密/签名究竟是怎么执行的。0 t+ M% a! |( ~' r/ j6 y1 F
! _, h. s: C) H" ^1 P这篇文档将讲述这些信息.
5 k, w# \) u, z( u+ f" p* l) M+ Q3 `; ^
. r$ q. }0 V. D- X! L2 A3 s下载文档: |
|