虽然没有电子设备是100%可靠的,但作为设计师,我们确实努力实现这一目标。但某些技术,如DRAM& NAND Flash,有特殊问题。让我们来谈谈测试策略。
NAND闪存与机械存储设备一样,默认情况下是不可靠的 - 这是电子世界中不寻常的情况。它的不可靠性通过使用专用控制器来处理。另一方面,DRAM被认为是“非常”可靠的。服务器通常具有错误检测(并且可能是校正)电路,但消费者和商业机器很少这样做。我将专注于DRAM。
虽然大多数精细几何电子设备都受到辐射引起的SEU(单事件干扰)的影响,但DRAM的另一个缺点是,它本质上是一种模拟技术。数十亿微型电容器必须保持充电状态,或至少在下次刷新之前保持充电状态。如果其中一个盖子有点漏或比它应该更小,则可能导致操作不可靠。令人抓狂的是,失败机制可能是间歇性的,也可能与数据有关。
随着内存时间变得越来越快,我们应该像在千兆位串行通道上那样运行眼睛测试。例如,这是一个1.33Gb/s的DDR3眼睛:
(来源:Micron Technology)
什么我们应该运行测试数据,无论是软件生成还是硬件生成,以便锻炼眼睛?伪随机是一个良好的开端。
我对内存测试的兴趣可以追溯到我的第一台计算机。在遭受512字节内存一年后,我添加了一块32kB DRAM板!无论是由于糟糕的电路板设计,还是真正令人质疑的DRAM芯片质量,内存错误都是经常发生的,有时甚至是微妙的。简单的模式可以检测出最糟糕的错误,但直到我实施了伪随机测试才发现最罕见的错误。
这些错误是由于眼睛坏了吗?可能不是。更有可能的是,它们来自模式灵敏度,其中DRAM芯片上的数据位以某种方式与芯片的设计者相互作用。虽然给出了PCB设计的状态。 1980年,电力完整性也可能是根本原因。
作为支持DRAM的机器的最终用户,我们仍然可以通过纯软件方式执行全面的内存测试,例如优秀的Memtest86程序,其中包括许多测试中的伪随机程序。根据我的经验,底线是伪随机是追踪使用其他方法无法显示的片状错误的最佳方法。
作为内存子系统的设计者,我们可以去超越这种方法并得到探索。使用伪随机模式不仅可以为我们的示波器创建一个合适的眼图,它可能会发现任何模式敏感度问题(尽管这更像是一个单元测试,而你只是在开发中进行眼睛测试)。
全部0条评论
快来发表一下你的评论吧 !