服务器 频道

从CPU、内存和I/O深度理解IA架构服务器

  ECC和Chipkill

  数据完整性是服务器架构最关注的一个点,很多时候需要安装额外的DIMM检测和恢复内存错误,最常见的办法是增加8位ECC(纠错码),将存储字从64位扩大到72位,就象海明码一样,允许纠正一位错误,检测两位错误,它们也被称作SEC(Single Error Correction,单纠错)/DED(Double Error Detection,双检错)。

  先组织存储字再写入到内存芯片中,EEC可以用于保护任一内存芯片的失效,以及单内存芯片的任意多位错误,这些功能有几个不同的名字。

  ①. Chipkill是IBM的商标

  ②. Oracle称之为扩展EEC

  ③. 惠普称之为Chipspare

  ④. 英特尔有一个类似的功能叫做x4单设备数据校正(Intel x4 SDDC)

  Chipkill通过跨多个内存芯片位散射EEC字的位实现这个功能,任一内存芯片失效只会影响到一个ECC位,它允许重建内存中的内容。

  下图了显示了一个读和写128位数据的内存控制器,增加EEC后就变成144位了,144位分成4个36位的存储字,每个存储字将是SEC/DED。如果使用两个DIMM,每个包含18个4位芯片,可以按照下图所示的方法重组位,如果芯片失效,每4个字中只会有一个错误,但因为字是SEC/DED的,每4个字可以纠正一个错误,因此所有错误都可以被纠正过来。

ECC和Chipkill

图 18 Chipkill示例

5
相关文章