内存容错技术ECC&Chipkill&保护&镜像

时间:2024-04-06 18:06:45

内存

服务器内存与PC内存的区别:

性能更高

兼容性更好

可靠性更高

内存容错技术ECC&Chipkill&保护&镜像

 

什么是Register?

 

拥有Registers功能的内存模组,可以通过重新驱动控制信号来改善内存的运作,提高电平信号的准确性,从而有助于保持系统长时间稳定运作。不过,由于Registers的信号重驱动需花费一个时钟周期,延迟时间有所增加,但是传输的速率相对可以提高,对走线的要求也降低了。

与逻辑设计中的流水线是一个原理。

这样控制信号的信号质量更好。

 

服务器内存上面要比普通内存多几颗芯片:主要是PLL (Phase Locked Loop)和Register IC,它们的具体用处如下 PLL(Phase Locked Loop) 琐相环集成电路芯片,内存条底部较小IC,比Register IC小,一般只有一个,起到调整时钟信号,保证内存条之间的信号同步的作用。Register IC内存条底部较小的集成电路芯片(2-3片),起提高驱动能力的作用。服务器产品需要支持大容量的内存,单靠主板无法驱动如此大容量的内存,而使用带Register的内存条,通过Register IC提高驱动能力,使服务器可支持高达32GB的内存。

内存容错技术ECC&Chipkill&保护&镜像
图为DDR2 400 ECC REG 

1 SPD芯片

2 PLL芯片 

3 Register IC芯片 

4 内存颗粒

 

什么是ECC内存?

目前是一谈到服务器内存,大家都一致强调要买ECC内存,认为ECC内存速度快,其实是一种错误地认识,ECC内存成功之处并不是因为它速度快(速度方面根本不关它事只与内存类型有关),而是因为它有特殊的纠错能力,使服务器保持稳定。ECC本身并不是一种内存型号,也不是一种内存专用技术,它是一种广泛应用于各种领域的计算机指令中,是一种指令纠错技术。它的英文全称是“Error Checking and Correcting”,对应的中文名称就叫做“错误检查和纠正”,从这个名称我们就可以看出它的主要功能就是“发现并纠正错误”,它比奇偶校正技术更先进的方面主要在于它不仅能发现错误,而且能纠正这些错误,这些错误纠正之后计算机才能正确执行下面的任务,确保服务器的正常运行。之所以说它并不是一种内存型号,那是因为并不是一种影响内存结构和存储速度的技术,它可以应用到不同的内存类型之中,就象我们在前面讲到的“奇偶校正”内存,它也不是一种内存,最开始应用这种技术的是EDO内存,现在的SD也有应用,而ECC内存主要是从SD内存开始得到广泛应用,而新的DDR、RDRAM也有相应的应用,目前主流的ECC内存其实是一种SD内存。

 

ECC通过数据位多一些位数,对数据进行校验,所以内存颗粒一般会多一颗。

ECC可发现2bit错误,并纠正1bit错误,可靠性更高。

一般情况下服务器内存都具有ECC功能,只有较低端的服务器采用普通台内存时不具有此功能;

内存容错技术ECC&Chipkill&保护&镜像

内存容错技术ECC&Chipkill&保护&镜像

服务器内存的其他典型技术:

 

Chipkill技术

Chipkill技术是IBM公司为了解决服务器内存中ECC技术的不足而开发的,是一种新的ECC内存保护标准。我们知道ECC内存只能同时检测和纠正单一比特错误,但如果同时检测出两个以上比特的数据有错误,则无能为力。ECC技术之所以在服务器内存中广泛采用,一则是因为在这以前其它新的内存技术还不成熟,再则在服务器中系统速度还是很高,在这种频率上一般来说同时出现多比特错误的现象很少发生,因为这样才使得ECC技术得到了充分地认可和应用,使得ECC内存技术成为几乎所有服务器上的内存标准。

但随着基于Intel处理器架构的服务器的CPU性能在以几何级的倍数提高,而硬盘驱动器的性能只提高少数的倍数,为了获得足够的性能,服务器需要大量的内存来临时保存CPU上需要读取的数据,这样大的数据访问量就导致单一内存芯片上每次访问时通常要提供4(32位)或8(64位)比特的数据,一次读取这么多数据,出现多位数据错误的可能性会大大地提高,而ECC又不能纠正双比特以上的错误,这样很可能造成全部比特数据的丢失,系统就很快崩溃了。IBM的Chipkill技术是利用内存的子系统来解决这一难题。内存子系统的设计原理是这样的,单一芯片,无论数据宽度是多少,只对于一个给定的ECC识别码,它的影响最多为一比特。举例来说,如果使用4比特宽的DRAM,4比特中的每一位的奇偶性将分别组成不同的ECC识别码,这个ECC识别码是用单独一个数据位来保存的,也就是说保存在不同的内存空间地址。因此,即使整个内存芯片出了故障,每个ECC识别码也将最多出现一比特坏数据,而这种情况完全可以通过ECC逻辑修复,从而保证内存子系统的容错性,保证服务器在出现故障时,有强大的自我恢复能力。采用这种技术的内存可以同时检查并修复4个错误数据位,服务器的可靠性和稳定得到了更充分的保障。

 

Memory ProteXion(内存保护) 

  Memory ProteXion技术最初应用在IBM公司的z系列和i系列大型主机服务器中,相对Chipkill内存技术在保护能力上更加强。

 

内存容错技术ECC&Chipkill&保护&镜像

   类似硬盘的热备份功能,能够自动利用备用的比特位自动找回数据,从而保证服务器的平稳运行。该技术可以纠正发生在每对DIMM内存中多达4个连续比特位的错误。即便永久性的硬件错误,也可利用热备份的比特位使得DIMM内存芯片继续工作,直到被替换为止。

  同时,Memory ProteXion技术比ECC技术纠错更加有效,标准的ECC内存虽然可以检测出2位的数据错误,但它只能纠正一位错误。采用内存保护技术,就可以立即隔离这个失效的内存,重写数据在空余的数据位。而且无需添加另外的硬件、无需增加额外的费用,独立操作系统工作,也不会给系统增加任何额外负担。这种技术可以使减少停机时间,使服务器持续保持高效的计算平台。

 

    Memory Mirroring(内存镜像)

  IBM的另一种更高级内存技术就是内存镜像技术,在内存保护能力上更强,弥补了Chipkill修复技术和内存保护技校术都不能完全修复时,可以在系统中运行直到有故障内存被更换。

内存容错技术ECC&Chipkill&保护&镜像

  一般说,内存镜像技术和磁盘镜像技术相仿,都是将数据同时写入到两个独立的内存卡中,内存只从活动内存卡中进行数据读取,当一个内存中有足以引起系统报警的软故障,系统会自动提醒管理员这个内存条将要出故障;同时服务器就会自动地切换到使用镜像内存卡,直到这个有故障的内存被更换。

    另外,镜像内存允许进行热交换(Hot swap)和在线添加(Hot-add)内存。因为镜像内存采用的的两套内存中实际只有一套在使用,另一套用于备份,所以对于软件系统来说也就只有整个内存的一半容量是可用的。

 

转自https://mp.weixin.qq.com/s/3be5auy9tWCPZRS3EBuyyA