memory - 比较内存镜像与 ECC
问题描述
我知道 ECC RAM 硬件很便宜(但主板和 CPU 不是......)但我听说过内存镜像,但我无法找到/理解它是如何工作的,这应该是固件功能(BIOS 吗?)还是内核(linux)补丁?内存镜像与 ECC 之间是否有任何坦率的比较?
解决方案
我相信,内存镜像和 ECC 通常是串联使用的。而且它们没有直接可比性。
ECC 为每个内存条目添加少量冗余,以便在读取时检测并纠正内存错误。它可以纠正一些但不是所有的错误,并且它通常会针对无法修复的错误报告可检测-不可纠正错误 (DUE) 信号。
内存镜像在通道级别复制所有内存内容,有效地将系统内存容量减半。它的主要优点是通过故障转移到另一个通道来容忍一个通道中的错误,当且仅当您可以检测到两个通道中的哪个通道出错时。(这种组织有时被称为“自检双工”。)
因此,将内存镜像与 ECC 结合起来以纠正 ECC DUE 是最有意义的——如果您单独使用内存镜像(没有 ECC 保护),您通常无法确定哪个内存通道出错,因此您不能故障转移到安全的。
内存 ECC 和内存镜像都需要硬件支持,据我所知,它们仅适用于服务器 CPU。因此,固件或内核更新都不会在消费者 CPU 上提供它们。
编辑:
例如,请参阅联想白皮书中的此流程图。内存 ECC 将用于确定是否存在(可检测到不可纠正的)数据错误,然后内存镜像用于从两个内存通道之一中的 DUE 中恢复。
推荐阅读
- python - 由于未在所有 CPU 内核中充分利用,Python Pandas 合并大型数据集的速度很慢,用于在两个数据帧中查找共同元素
- mysql - 在字符串中查找子字符串,如果确实存在,则将其插入另一个表 SQL
- sql - Oracle PL/SQL - 在插入“表不存在”之前出错?
- sql - SQL 搜索最佳匹配
- c++ - 2串LCM
- node.js - Heroku 错误 H12 和 H28 Node.js
- scala - 计算特定列 ID Scala 的日期差异
- left-join - clickhouse : 使用 IN 左连接
- php - Add_filter 将新列添加到 Woocommerce 产品属性表(属性添加/编辑页面)
- flutter - 如何在 Flutter 中的对话框关闭时重定向到特定路由