内存测试

 

本文简介

本文简介

DRAM 问题

  • DRAM容量大、体积减小,表示一个位信息的存储单元变小,它更容易受外界因素影响发生错误
    • 外界因素:射线辐射、温度、灰尘、降低DRAM功耗、电子和磁场
    • 内部因素:内存密度、使用时间
    • 错误:单个位或多个位发生翻转
      • 静默错误(slient error):位翻转后污染了数据,程序使用污染的数据得出结果
      • 软错误:暂时性错误
        • 芯片没有损坏、是内存芯片随机发生的错误,在写内存后消失
        • 使用ECC来内存清洗
          • 空闲时对内存校验,发现错误进行纠正后重新写入内存
      • 硬错误
        • 芯片硬件错误

内存检测

  • ECC
    • 在程序每次从内存读取数据时,都会对从内存读出的数据进行校验,如果发现数据有错误,就会进行纠正
    • ECC 只能对每个内存单元中发生的单个位错误进行纠正
  • Memtest86+
    • Memtest86+是在软件层面实现的离线内存检测器
    • 直接运行在硬件之上,因此可以对内存进行任意的读写操作以检测错误
    • 是系统中唯一的进程
  • MCE
    • Linux 内核提供给 Intel Pentium4、Xeon、Atom 和 P6 平台 18 号中断的中断服务例程
    • 被称为机器检测异常,专门用于处理硬件错误 -包括系统总线错误、ECC 错误、奇偶校验错误、硬件高速缓存(cache)错误和 TLB(Translation Lookaside Buffer)错误
  • RAMpage
    • 由德国多特蒙德工业大学计算机科学学院的 Horst Schirmeier 所在的团队实现的 Linux 平台上的在线内存检测器
    • 内核空间负责向操作系统申请内存,然后将申请到的内存提供给用户空间部分以进行检测