内存测试三步法.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
. . . . DDR DDR 内存子系统常见硬件错误及 Uboot 中检测流程 在 U-Boot 在 U-Boot 中,Denx(U-Boot 的开发商)针对常见的 DDR 内存故障进行了严格的检测处理,下图描述了该检测处理过程的 三个步骤:检测数据线、地址线和 DDR 物理存储部件,主要涉 内存故障设计的检测方法是非常严谨,值得学习研究的。及这三个步骤的处理过程和方法,对于 DDR 子系统,是很容易出故障并且是很难 debug 检测出来的,而 Denx 所针对 DDR 内存故障设计的检测方法是非常严谨,值得学习研究的。 下面主要是相关的检测处理思路及问题: 1 1、为什么先检测数据线? 因为如果数据线是断开的,那么一切无从谈起!接下来是检测地址线,只有数据线和地址线都通过,检测内存的存储单元才有意 义,这样的流程也利于分割定位问题。上面 义,这样的流程也利于分割定位问题。上面 testing sequence 框图将整个检测过程分成三大步,用三个虚线方框表示。 框图将整个检测过程分成三大步,用三个虚线方框表示。 2、数据线的连接错误 数据线的连接可能存在两种错误,一种是被断开,另一种布线或生产造成互相短路。 3 3、如何检测数据线的连接错误 pattern=0b01(0b 开头表示二进制数)就能判断它们是否短Denx 设计的数据线检测算法还是很 Tricky pattern=0b01(0b 开头表示二进制数)就能判断它们是否短 路或断开。很明显,大部分的嵌入式平台不止两根数据线,我们 路或断开。很明显,大部分的嵌入式平台不止两根数据线,我们 以 64 位地址线为例,pattern = 0... 的办法,检测每相邻两组之间是否有短路,就得到第二个能检测出奇偶位之间的数据错误。如果这个错误被排除,每两根数据线组成一组(这是理解下一个pattern 的关键),再用相同 的办法,检测每相邻两组之间是否有短路,就得到第二个 pattern pattern,就是 0b110011001100...... 依次类推,以 4 根数 据线为一组, 据线为一组,8 根线为一组,相继得到共 6 个 pattern,分别是 0xaaaaaaaaaaaaaaaa,0xcccccccccccccccc, 0xf0f0f0f0f0f0f0f0,0xff00ff00ff00ff00, 0xffff0000ffff0000, 0xffff0000ffff0000,0xfffffff只要相继写入并读 出这 6 个 pattern 就能验证是否存在数据线交叉短路错误。 4、如何检测数据线与板上其它信号线交叉短路或断路 取以上 6 取以上 6 个 pattern 的反码,总共 12 个 pattern 就能检测到每 一位都可以写入和读出 0 和 1。 5 5、什么是 floating buses 错误 floating buses 会“欺骗”测试软件,如果测试软件写入并很快读出一个值的时候,写操作会给数据线上的电容充电,总线会短暂 的保持它的状态。当测试软件读操作时,总线会返回刚写入的值, 的保持它的状态。当测试软件读操作时,总线会返回刚写入的值, 即使实际上该数据线是断路的。 即使实际上该数据线是断路的。 6、如何检测数据线的 floating buses 错误 检测 检测 floating buses 错误的算法不复杂,在写入和读回之间再 插入一次对不同地址写入不同值的操作。例如, 插入一次对不同地址写入不同值的操作。例如,X 写入 X1 位置,Y 写入 Y1 位置,再从 X1 位置读出X 值则表示 floating buses 错误不存在。 7 7、地址线的错误 如果地址线存在错误,其症状是地址空间中的两个不同位置被映 射到同一物理存储位置。更通俗地讲,就是写一个位置却“ 射到同一物理存储位置。更通俗地讲,就是写一个位置却“改变” 了另一个位置。 8、地址线的错误检测 地址线的错误检测相对简单,其算法是: 地址线的错误检测相对简单,其算法是: 、将地址的值作为内容写入该地址处,汇编的表示方法是 (addr) = addr。即将地址值写到地址对应的空间里,这样确保 (addr) = addr。即将地址值写到地址对应的空间里,这样确保 每一个位置的内容不同。 、依次将内存基地址的某一根地址线的值翻转(flip/toggle) 得到某个地址,从该地址取值,如果该值和基地址的值相等,则表示某一位地址线有问题。 得到某个地址,从该地址取值,如果该值和基地址的值相等,则 表示某一位地址线有问题。 这个算法的特点是每次只检测一根地址线,方法简单有效。 这个算法的特点是每次只检测一根地址线,方法简单有

文档评论(0)

hao187 + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体武汉豪锦宏商务信息咨询服务有限公司
IP属地上海
统一社会信用代码/组织机构代码
91420100MA4F3KHG8Q

1亿VIP精品文档

相关文档