|
|
关于P6系列处理器的微代码更新的研究
2 y! v# g A7 G( R% g* r+ @第一稿
5 a0 o3 [/ Z* ^- c6 u- B/ @作者:Jesus Molina, William Arbaugh# `2 C. I4 o; \4 @9 @
Park大学, 2000年11月" j" b/ l) {) [1 `
+ p H# G7 p$ O* \2 X( t
微代码更新特性在参考文献[3]的第8章第10节有介绍。 微代码更新由2048个字节
6 H3 A% r9 v0 w! v. o8 [$ R3 K/ h1 G的数据组成, 其中48字节是头部数据, 剩下的2000字节是微代码本身。 为了避免歧义,
X" b& M- ]. d) ]& \本文将把这2048字节叫作「微代码更新」或「微代码」, 而把开始的48字节称为「头. U" Y8 |% q/ q. _
部」, 把剩下的2000字节称为「更新数据」。 「更新数据」是为了修复对处理器规范的0 ] P0 y; N2 x
背离(Intel管这种背离叫「勘误表」(errata)。我们将用术语BUG或errata来指代这种背离)。% d/ c+ G C- Y1 ~. W0 \- |2 }
关于头部和更新数据的详细介绍, 将在本文档第3节出现。
) i; w, ~0 ]+ E/ w# t微代码更新是通过Intel提供的软件工具完成的, 并且在重新引导时消失。 也就是说,$ L _7 c" W: m# k6 I# c8 B i
你必须在每次机器起动的时候都更新微代码。
3 m8 c# w6 Q1 m尽管Intel描述了微代码更新这一特征, 这种描述却是模糊的, 尤其在涉及到微代码4 `0 c: e% j) N( |
所勘正的那些错误时。 另外, 微代码加了签名(我们将在第7部分详细讲述,参考资料[3]' n; ?) }/ j2 d! p J' @ {
的8.10部分也有讲述), 但在资料[3]中并没说这种加密/签名究竟是怎么执行的。
( W4 D6 q* S* V% W$ @" _+ W2 }/ ?
: y) S0 F7 R- D2 O: j( M9 r6 W这篇文档将讲述这些信息./ S& Q1 V+ G' \9 t* l' C" K/ u4 {6 a
3 ]+ j! w5 m# [5 ?. t
下载文档: |
|