|
|
关于P6系列处理器的微代码更新的研究
j( \. J5 l% d: [& Y3 C( ]第一稿
+ p, D& J: u/ w$ b% B6 f% M8 m作者:Jesus Molina, William Arbaugh
! r! w( l) f, r4 P" SPark大学, 2000年11月
6 X: J$ X% Q1 d6 q9 P
6 `; Z5 p4 D1 s0 e8 l微代码更新特性在参考文献[3]的第8章第10节有介绍。 微代码更新由2048个字节
) E5 q' l. M2 h+ x的数据组成, 其中48字节是头部数据, 剩下的2000字节是微代码本身。 为了避免歧义,6 |: b; R4 Z5 Y. s. i+ a+ f
本文将把这2048字节叫作「微代码更新」或「微代码」, 而把开始的48字节称为「头& E: ~$ J8 z$ z7 T; X
部」, 把剩下的2000字节称为「更新数据」。 「更新数据」是为了修复对处理器规范的
2 m r( B: Z" `8 I; i- U背离(Intel管这种背离叫「勘误表」(errata)。我们将用术语BUG或errata来指代这种背离)。
! j0 ~; q8 B9 G* E& t# G关于头部和更新数据的详细介绍, 将在本文档第3节出现。6 ?( ]: h5 [- p" R- k
微代码更新是通过Intel提供的软件工具完成的, 并且在重新引导时消失。 也就是说,8 @; U. j& v, l5 s! R; E
你必须在每次机器起动的时候都更新微代码。* f: l$ G; ?( s4 D% {
尽管Intel描述了微代码更新这一特征, 这种描述却是模糊的, 尤其在涉及到微代码
# R: i4 S% \" V; D所勘正的那些错误时。 另外, 微代码加了签名(我们将在第7部分详细讲述,参考资料[3]6 ]( ?/ j% r2 N
的8.10部分也有讲述), 但在资料[3]中并没说这种加密/签名究竟是怎么执行的。& K* S8 `- N' a* A$ s, e+ ` |% }
% j6 i K1 G( i" x$ \ H: X这篇文档将讲述这些信息.1 S3 U6 k. E* Z/ D
$ H: V7 u; Z& m% ^' P+ I
下载文档: |
|