服务器内存也是内存(RAM),具有一些特有的技术从而有着极高的稳定性和纠错性能。最直观的分辨服务器内存与普通内存的方法就是看条子上的字有没有带ECC模块。
服务器内存也是内存(RAM),具有一些特有的技术从而有着极高的稳定性和纠错性能。最直观的分辨服务器内存与普通内存的方法就是看条子上的字有没有带 ECC 模块。
服务器内存也是内存,它与普通 PC 机内存在外观和结构上没有什么明显实质性的区别,主要是在内存上引入了一些新的特有的技术,如 ECC、ChipKill、热插拔技术等,具有极高的稳定性和纠错性能。
在普通的内存上,常常使用一种技术,同位检查码被广泛地使用在侦错码上,它们增加一个检查位给每个资料的字元(或字节),并且能够侦测到一个字符中所有奇(偶)同位的错误,但 Parity 有一个缺点,当计算机查到某个 Byte 有错误时,并不能确定错误在哪一个位,也就无法修正错误。基于上述情况,产生了一种新的内存纠错技术,那就是 ECC,ECC 本身并不是一种内存型号,也不是一种内存专用技术,它是一种广泛应用于各种领域的计算机指令中,是一种指令纠错技术,从这个名称我们就可以看出它的主要功能就是“发现并纠正错误”,它比奇偶校正技术更先进的方面主要在于它不仅能发现错误,而且能纠正这些错误,这些错误纠正之后计算机才能正确执行下面的任务,确保服务器的正常运行。之所以说它并不是一种内存型号,那是因为并不是一种影响内存结构和存储速度的技术,它可以应用到不同的内存类型之中,就象前讲到的“奇偶校正”内存,它也不是一种内存,最开始应用这种技术的是 EDO 内存,SD 也有应用,而 ECC 内存主要是从 SD 内存开始得到广泛应用,而新的 DDR 系列、RDRAM 也有相应的应用,主流的 ECC 内存其实是一种 SD 内存。
ECC 是一种广泛应用于各种领域的计算机指令中纠错技术。它比奇偶校正技术更先进的方面主要在于它不仅能发现错误,而且能纠正这些错误,这些错误纠正之后计算机才能正确执行下面的任务,确保服务器的正常运行。
Parity 和 ECC 的比较,同位检查码(Parity check codes)被厂泛地使用在侦错码(error detectioncodes)上,他们增加一个检查位给每个资料的字元(或字节),并且能够侦测到一个字符中所有奇(偶)同位的错误,但 Parity 有一个缺点,当计算机查到某个 Byte 有错误时,并不能确定错误在哪一个位,也就无法修正错误。在内存中错误修正码(ECC)能够容许错误,一个有 ECC 的系统不仅能容许错误,并可以将错误更正,使系统得以持续正常操作,不致因错误而中断,且 ECC 一具有自动更正的能力,可以将 Parity 无法之错误位查出并将错误修正。
热插拔内存允许用户在不关闭系统,不切断电源的情况下取出和更换损坏的内存,从而提高了系统对灾难的及时恢复能力、扩展性和灵活性等。
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 个错误数据位,服务器的可靠性和稳定得到了更充分的保障。
Register 即寄存器或目录寄存器,在内存上的作用我们可以把它理解成书的目录,有了它,当内存接到读写指令时,会先检索此目录,然后再进行读写操作,若所须数据在目录中则直接取用不再进行读写操作,这将大大提高服务器内存工作效率。
FB-DIMM(Fully Buffered-DIMM,全缓冲内存模组)是 Intel 在 DDR2 的基础上发展出来的一种新型内存模组与互联架构,既可以搭配 DDR2 内存芯片,也可以搭配未来的 DDR3 内存芯片。FB-DIMM 可以极大地提升系统内存带宽并且极大地增加内存最大容量。
FB-DIMM 技术是 Intel 为了解决内存性能对系统整体性能的制约而发展出来的,在现有技术基础上实现了跨越式的性能提升,同时成本也相对低廉。在整个计算机系统中,内存可谓是决定整机性能的关键因素,光有快的 CPU,没有好的内存系统与之配合,CPU 性能再优秀也无从发挥。因为 CPU 运算时所需的数据都是从内存中获取,如果内存系统无法及时给 CPU 供应数据,CPU 不得不处在一种等待状态,形成资源闲置,性能自然无从发挥。对于普通的个人电脑来说,由于是单处理器系统,内存带宽已经能满足其性能需求;而对于多路的服务器来说,由于是多处理器系统,其对内存带宽和内存容量是极度渴求的,传统的内存技术已经无法满足其需求了。这是因为普通 DIMM 采用的是一种“短线连接”(Stub-bus)的拓扑结构,这种结构中,每个芯片与内存控制器的数据总线都有一个短小的线路相连,这样会造成电阻抗的不继续性,从而影响信号的稳定与完整,频率越高或芯片数据越多,影响也就越大。虽然 Rambus 公司所推出的的 XDR 内存等新型内存技术具有极高的性能,但是却存在着成本太高的问题,从而使其得不到普及。而 FB-DIMM 技术的出现就较好的解决了这个问题,既能提供更大的内存容量和较理想的内存带宽,也能保持相对低廉的成本。FB-DIMM 与 XDR 相比较,虽然性能不及全新架构的 XDR,但成本却比 XDR 要低廉得多。
与现有的普通 DDR2 内存相比,FB-DIMM 技术具有极大的优势:在内存频率相同的情况下能提供四倍于普通内存的带宽,并且能支持的最大内存容量也达到了普通内存的 24 倍,系统最大能支持 192GB 内存。FB-DIMM 最大的特点就是采用已有的 DDR2 内存芯片(以后还将采用 DDR3 内存芯片),但它借助内存 PCB 上的一个缓冲芯片 AMB(Advanced Memory Buffer,高级内存缓冲)将并行数据转换为串行数据流,并经由类似 PCI Express 的点对点高速串行总线将数据传输给处理器。
与普通的 DIMM 模块技术相比,FB-DIMM 与内存控制器之间的数据与命令传输不再是传统设计的并行线路,而采用了类似于 PCI-Express 的串行接口多路并联的设计,以串行的方式进行数据传输。在这种新型架构中,每个 DIMM 上的缓冲区是互相串联的,之间是点对点的连接方式,数据会在经过第一个缓冲区后传向下一个缓冲区,这样,第一个缓冲区和内存控制器之间的连接阻抗就能始终保持稳定,从而有助于容量与频率的提升。
服务器常用的内存主要有三种
1.ECC 内存,“Error Checking and Correcting”的简写,中文名称是“错误检查和纠正”。
一般 INTEL3XXX 系列主板使用此内存条。
2.Reg-DIMM 带寄存器 Register 芯片和 unbuffered ECC 不带缓存。
带有 Register 的内存一定带 Buffer(缓冲),并且能见到的 Register 内存也都具有 ECC 功能,其主要应用在中高端服务器及图形工作站上。
3.FB-DIMM(Fully Buffered DIMM),全缓冲内存模组内存。
FB-DIMM 另一特点是增加了一块称为“Advanced Memory Buffer,简称 AMB”的缓冲芯片。这款 AMB 芯片是集数据传输控制、并—串数据互换和芯片而 FB-DIMM 实行串行通讯呈多路并行主要靠 AMB 芯片来实现。
如 INTEL5XXX 系列主板使用此内存条。