osg*_*sgx 23 memory error-detection linux-kernel
大多数可用的桌面(廉价)x86平台现在仍然没有ECC内存支持(错误检查和纠正).但内存位翻转错误的速度仍在增长(不是最好的SO线程,大规模CERN 2007研究"数据完整性":" 内存模块的误码率为10 -12 ...观察到的错误率是4个订单低于预期 "; 2009年Google的"DRAM中的错误:大规模的实地研究").对于当前的硬件与数据密集的负荷(读数8 GB/s)的,这意味着单个位翻转,可能会出现每分钟(10家-12在两天厂商BER从CERN07)或一次(10 -16来自CERN07的BER).Google09表示,每Mbit可以有高达25000-75000的一位FIT(每十亿小时的故障时间),相当于8GB RAM每小时1-5位错误(" 2000的平均可纠正错误率 -每GB每年6000 "".
所以,我想知道,是否可以在系统范围内添加某种软件错误检测(检查用户和内核内存).例如,为Linux内核和/或系统编译器创建一个补丁,为每个内存页面添加一些校验和,并尝试通过定期重新计算校验和来检测静默内存损坏(bit-flips)?
例如,我们可以看到对内存的所有写入(来自用户和内核空间),以区分内存位翻转中的预期内存更改吗?或者我们能以某种方式用一些帮助来检测所有代码吗?
我知道任何类型的软件内存ECC可能会花费很多性能并且不会捕获所有错误,但我认为在它们将在以后的计算中重用或存储之前,至少检测一些内存位翻转是有用的.到硬盘.
我也明白,更好的数据保护方式是从内存bitflip切换到ECC硬件,但大多数PC仍然是非ECC.
| 归档时间: |
|
| 查看次数: |
7256 次 |
| 最近记录: |