|
|
关于P6系列处理器的微代码更新的研究! F6 ^- f/ M2 m* L8 V" u& S
第一稿
. E! M5 G$ f' Z. `8 U# [# E作者:Jesus Molina, William Arbaugh0 Y* I1 F9 G7 M+ k) O. w$ W' X( p
Park大学, 2000年11月+ X8 l5 a/ \3 }1 \+ l7 B. f+ { W
/ }. {# B( D* C1 A+ H; y/ U, {微代码更新特性在参考文献[3]的第8章第10节有介绍。 微代码更新由2048个字节- Y$ T* d. l& o. g. P1 R; a
的数据组成, 其中48字节是头部数据, 剩下的2000字节是微代码本身。 为了避免歧义,+ K' ^. c2 c, Q5 k; k
本文将把这2048字节叫作「微代码更新」或「微代码」, 而把开始的48字节称为「头
' L [1 F% X2 w# L: [部」, 把剩下的2000字节称为「更新数据」。 「更新数据」是为了修复对处理器规范的
' R( X, L( a ]3 }背离(Intel管这种背离叫「勘误表」(errata)。我们将用术语BUG或errata来指代这种背离)。8 b5 u# w! M! r" k! @
关于头部和更新数据的详细介绍, 将在本文档第3节出现。
0 S7 p* m& p$ ^; N4 i" `微代码更新是通过Intel提供的软件工具完成的, 并且在重新引导时消失。 也就是说,
0 \1 x3 N+ d6 B3 y- J* Y你必须在每次机器起动的时候都更新微代码。; u0 R5 }, V, f8 t* m
尽管Intel描述了微代码更新这一特征, 这种描述却是模糊的, 尤其在涉及到微代码/ ? e% ~( K2 D, a7 @9 i; p8 ^/ M0 @
所勘正的那些错误时。 另外, 微代码加了签名(我们将在第7部分详细讲述,参考资料[3]- I: J1 ] k7 A" t6 d
的8.10部分也有讲述), 但在资料[3]中并没说这种加密/签名究竟是怎么执行的。4 ^4 s4 q' O, r, `( d
) Q" X% ^+ |/ D2 A
这篇文档将讲述这些信息.8 L9 O' A0 d& ^/ Q2 y, [
. j# a W, y% o/ g" t1 L! t+ y, j下载文档: |
|