|
关于P6系列处理器的微代码更新的研究- b* j+ p- q0 C( S$ x1 {
第一稿
' e' V& G; \4 D8 L- a作者:Jesus Molina, William Arbaugh/ ~2 [0 A: a5 J5 `% ~1 R& G( F
Park大学, 2000年11月
' L7 a" k/ S( {( [4 R
; D- h9 d0 u1 h/ ^4 H) l) C微代码更新特性在参考文献[3]的第8章第10节有介绍。 微代码更新由2048个字节
( w0 `, @2 P; k' h, X6 G4 I的数据组成, 其中48字节是头部数据, 剩下的2000字节是微代码本身。 为了避免歧义,$ c( a' u/ u# y: G; t) E
本文将把这2048字节叫作「微代码更新」或「微代码」, 而把开始的48字节称为「头
/ t# B& P2 Q% j3 p1 Z& j部」, 把剩下的2000字节称为「更新数据」。 「更新数据」是为了修复对处理器规范的
3 L8 s$ e$ S. S* ?: z8 a/ {背离(Intel管这种背离叫「勘误表」(errata)。我们将用术语BUG或errata来指代这种背离)。3 I7 P N8 b n- W
关于头部和更新数据的详细介绍, 将在本文档第3节出现。 p1 k+ Z6 r4 \
微代码更新是通过Intel提供的软件工具完成的, 并且在重新引导时消失。 也就是说,5 w/ K: i( }) Y z7 e1 b
你必须在每次机器起动的时候都更新微代码。# I6 V$ Q! U$ ?; {+ c
尽管Intel描述了微代码更新这一特征, 这种描述却是模糊的, 尤其在涉及到微代码
: a: X0 @1 C) F, \4 N所勘正的那些错误时。 另外, 微代码加了签名(我们将在第7部分详细讲述,参考资料[3]
9 ~0 N* R$ c. q- M( a的8.10部分也有讲述), 但在资料[3]中并没说这种加密/签名究竟是怎么执行的。
- O& E! o, h1 J4 S/ d0 a& W1 c$ M" A2 e }( L! w" _6 u {/ a3 [. d* M- M
这篇文档将讲述这些信息.
/ |" n, t2 j6 W! d* i4 c& h6 ?; k. Y7 R! \: V+ ^
下载文档: |
|