答案:2006年9月,AMD发布了最新的Errata勘误表(即俗称的Bug),由原先169个Errata减少了107个,变成了现在的62个。其中,影响最新步进JH-E6的Errata为17个,下面就是这影响JH-E6步进的17个Errata的描述和分类。
有修复计划并且可以通过升级BIOS避免的BUG有5个,编号和描述如下。
编号79:核心电压高于1.50V的电源管理局限性
含有核心电压高于1.50V的CPU处理器版本,当在S1电源模式或者LDTSTOP_L启动HyperTransport总线进行 位宽/频率 改变时,不支持北桥芯片的低电压模式。这将导致出现系统不可预测的错误操作。
编号110:默认SAHF/LAHF扩展特性标志位设置为不正确的数值
支持64位模式的SAHF和LAHF指令,定义其扩展特征标志位数值是ECX[0]。但是某些支持该功能的处理器错误地将数值返回为0。这将导致系统看不到该特征位,从而使该功能不可用。
编号123:在双核处理器中的旁路读操作(Bypassed Reads)可能导致数据失效或者系统挂起
内部的数据传输路径允许某些Cache数据线路占用请求旁路L2 Cache,而在接收到Cache 命中/不中 状态之前,启动一个预先的DDR内存读操作。在核心处于低频运行的某一个特定的时序条件下,使用上述操作读取的数据,可能在核心准备好接收数据之前到达核心,导致内部的总线挂起或者是数据缓存失效。
编号154:不正确的测温二极管偏移量
某些双核的AMD Opteron™ 处理器 (939针脚封装)存在不正确的测温二极管偏移量(热量触发状态寄存器 [DiodeOffset], Dev 3xE4h[13:8])。受影响的CPU有以下特征:
• CPUID Fn[8000_0001]_EBX(11:0) = 2Ch,并且
• 热量触发状态寄存器[TCaseMax] (Dev 3xE4h[28:25]) <= 2 (53oC)。
这将导致基于测温二极管偏移量的温度事件管理器出现比预期温度多报10度。
编号153:在多处理器系统中,当CPU个数≥14时,有潜在的系统挂起可能
在以非常确定和规定的一套内部时序条件吻合时,纵横流控制缓存指针(crossbar flow control buffer pointer)可能失效,导致不正确的信息被获取,使系统挂起。修改BIOS的crossbar command buffer将可以避免这个问题的出现。
有修复计划并且可以通过应用软件升级避免的BUG有4个,,编号和描述如下。
编号112:自修改代码(Self-Modifying Code)可能执行过期的指令
当涉及到在两个Cache中的任一个Cache路径和处理器内部捕捉机中,一个存储指令修改一个子指令(younger instrUCtion)的情况下,处理器可能执行过期的指令,这种情况发生在一个很小的范围之内:
1. 去内存获取存储和子指令的操作必须命中指令高速缓存(instruction cache),并且都被传入处理器的流水线(processor pipeline)。
2. 存储操作推测性执行,而且先于在指令计数器使Cache路径无效,并且一个内部的中断产生。
3. 该内部中断事件必须重定向指令获取指针指向刚好在存储操作前的指令流。
4. 和该指令获取相关的重定向操作必须在第2步骤读操作使包含目标的Cache路径无效前命中指令计数器。
5. 在重新获取子指令和从指令计数器获取最后一条指令之间的极短时间间隙内,第2步骤地推测性存储操作使包含子指令的指令计数器路径无效。
如果以上情况不幸发生,处理器将执行过时的指令。实时编译器(JIT compiler)缺乏用来修改代码的存储指令近程,因而操作没有作用。
需要软件插入一段修改代码。
编号121:跨越非规范分界的顺序指令执行导致处理器挂起
当以下条件全部符合时,处理器将会挂起:
• 处理器运行在64位模式
• 代码段的限制为 0xFFFF_FFFF
• 当前执行的指令最后一个字节位于 0x7FFF_FFFF_FFFF
• 下一个顺序执行的指令从以下地址获取 0x8000_0000_0000
将导致系统挂起。
编号135:带有地址前缀的INVLPG指令不能正确地使转换请求无效
无论在64位模式还是在32位模式,当执行带有地址大小前缀的INVLPG指令时,将不会使TLB转换请求无效。这将可能导致使用一个无效的转换,即使软件已经执行过一个INVLPG指令了。这将导致不可预测的系统操作。在没有修复该错误前,无论在32位模式还是64位模式,软件设计不要使用地址大小前缀。
编号136:在16位模式,INVLPG指令可能不能正确地使转换请求无效
在16位模式下,当执行不带地址大小前缀的INVLPG指令时,将不会使TLB转换请求无效。这将可能导致使用一个无效的转换,即使软件已经执行过一个INVLPG指令了。这将导致不可预测的系统操作。在没有修复该错误前,软件使用32位地址模式生成16位地址。
有修复计划但是目前没有提供避免建议的BUG有2个,编号和描述如下。
编号161:性能监测计数器不计算代码地址匹配
性能监测计数器不计算DR0-3的代码地址匹配,除非在DR7中激活相应的断点。这样,当相应的断点未被激活时,性能计数器不能用于指令地址匹配。
编号166:在兼容模式下,FXSAVE/FXRSTOR指令使用64位格式
在兼容模式下,FXSAVE/FXRSTOR指令使用64位内存映像格式,即使对象是非64位格式。 (参考AMD64结构编程手册第二卷:系统编程插图11-8和11-9)
这会使系统由于存储额外的16个2*双字内容到内存中而有微小的性能损失。
没有修复计划但是可以通过BIOS升级解决的BUG有3个,编号和描述如下。
编号122:TLB刷新筛选器可能导致多处理器系统的一致性问题
一个多处理器配置中,在一个非常明确指定的内部时序下,内存中的分页表和存储于CPU中TLB的转换表可能出现一致性问题。这将导致可能使用失效的转换表,即使软件已经执行了TLB刷新动作。
这会引起不可预测的系统错误。这个BUG仅出现在高强度的随机综合压力测试中。解决的方案是,在多处理器或者多核心系统中,通过设置HWCR.FFDIS(MSR 0xC001_0015的第6位)禁止TLB刷新筛选器。
编号131:系统可能由于等待探测的响应(Probe Response)而死锁
[page_break] 在一个非常明确指定的内部时序下,北桥芯片的系统请求队列(SRQ)可能停止一个探测响应而产生死锁。这是由于一个看门狗计时器超时造成的死锁或者系统检查错误。通过BIOS设置NB_CFG寄存器(MSR C001_001Fh)可避免该错误;而且,不会造成性能的损失。
没有修复计划但是可以通过升级应用软件解决的BUG有1个,编号和描述如下。
编号118:回转率违规造成DDR266 RDIMM错误
当时用8条Registered规格的DDR内存,内存的时钟为133MHz(DDR266),并且奇数的FID选择了10x以下速度时,Sout规格(DDR的回转率)违规将造成DDR RAM错误。
内存数据的实效将导致系统不可预测的操作。
为避免该错误的出现,系统应:
• 使用最多6条DDR RAM
• 不要选择DDR266的内存时钟
• 奇数的FID不要选择低于10x
没有修复计划但是可以通过操作系统补丁解决的BUG有1个,编号和描述如下。
编号156:不正确的读请求产生非法的GART页面表入口
当读请求在GART范围内产生一个非法的地址(例如,当一个合法的位没有在GART页面表入口设置),北桥将向在GART页面表入口(PTE)指定的页面产生一个不正确的读请求。
向一个任意的地址请求读操作将导致不明确的反应。
通过操作系统定义合法的内存防护页面范围,可以避免该错误的出现。
没有修复计划但是通过改善主板电气性能来解决的BUG有1个,编号和描述如下。
编号124:在某些双核系统中STPCLK调速操作导致违反VDD_ac规范
在最大功率消耗操作发生时引起大负载发生和电压发生瞬变的过程中,STPCLK调速操作将违反电压瞬变规范(VDD_ac)。该错误发生于当核心频率>2000MHz,只有单一电压和接地布线层的4层PCB主板电路上。
违反VDD_ac规范将导致不可预知的操作发生。(出处:http://www.zzzyk.com/)
上一页 [1] [2] |
上一个:CPU的制作过程详解
下一个:NETWARE操作系统