chipkil是什么?

简介

Chipkill内存最初是由IBM大型机在20年前开发的。Chipkill是为美国国家航空航天局探索火星的探路者探测器开发的。它是IBM为弥补ECC技术在服务器内存方面的不足而开发的,是一种新的ECC内存保护技术。

[编辑此段]对比一下老ECC内存技术的优势。

虽然ECC内存技术可以同时检测和纠正单位错误,但如果同时检测到两个以上的数据错误,就无能为力了。但是,基于英特尔处理器架构的服务器的CPU性能是以几何倍数提升的,而硬盘驱动器的性能同期只提升了5倍。因此,为了保证正常运行,服务器需要大量内存来临时保存从CPU读取的数据。如此大量的数据访问导致单个存储器芯片通常在每次访问时提供多于4(32位)或8(64位)字节的数据。一次读取这么多数据会大大增加多位数据错误的可能性,而ECC无法纠正超过两位的错误,很可能造成所有位数据的丢失,系统很快就会崩溃。IBM的Chipkill技术利用内存的子结构方法来解决这个问题。

[编辑本段]设计原则

Chipkill内存子系统的设计原理是:在Chipkill技术的支持下,无论数据宽度是多少,单个内存芯片只有一个给定的ECC识别码,其影响最多是一位。例如,如果使用宽度为4位的SDRAM,这4位中的每一位的奇偶性将形成不同的ECC识别码,每个ECC单元可以用单个数据位保存,这意味着这些识别码保存在不同的存储空间中。因此,即使整个存储芯片出现故障,每个ECC单元也最多有一位坏数据。这种情况可以通过ECC进行逻辑修复,从而保证内存子系统的容错性和服务器出现故障时强大的自恢复能力。Chipkill内存控制器提供的存储保护在概念上类似于带验证功能的磁盘阵列。写入数据时,将数据写入多个DIMM内存条。这样,每个DIMM都扮演着与存储阵列相同的角色。如果任何一个芯片发生故障,它只会影响一个数据字节的一位,因为其他位存储在另一个芯片上。发生错误后,内存控制器可以从故障芯片重建“丢失”的数据,使服务器继续正常工作。使用这种Chipkill内存技术的内存可以同时检查和修复4个错误数据位,进一步提高了服务器的实用性。

[编辑此段]发展

目前不仅IBM服务器支持Chipkill内存技术,国内很多服务器也支持chip kill内存技术,比如宝德的64位新至强机架式服务器PR2520,该公司其他很多服务器也支持这种内存技术,比如方正公司的PT4050R和PR2520,方正远明MT500。当然,实际应用这项技术的服务器供应商要多得多。可以说Chipkill已经得到了广泛的应用,主要是在中低端服务器上。新的第三代Chipkill内存技术已经集成到IBM的X架构芯片组中,无需定制。最初,IBM在主机系统中开发了这项技术,到现在已经有20多年的历史了。这个新功能不仅可以检测和纠正多位内存错误,还可以进一步提高服务器的实用性。同时,服务器中只需要廉价的、工业标准的ECC内存,不需要购买专门的内存,因此广泛使用IBM的Chipkill内存技术。