热点推荐
ZOL首页 > 服务器 > 评测与技术 > 技术分析与前瞻 > ECC深入分析 创见内存ECC开启与否测试

ECC深入分析 创见内存ECC开启与否测试


小熊在线 【转载】 2007年03月01日 09:31 评论

ECC-服务器专用内存解析

    服务器中对于零配件的要求高一向是所有人共同所知的,虽然整体架构和个人所用的PC相差无几,并且在一些配件上为了保持兼容性甚至是互相通用,有人认为服务器和个人PC这条界线现在是越来越模糊,专业领域和普通应用能否混为一谈呢?单从需求/投入成本层面而言,这两个领域并非可以随意穿行,比如说服务器专用的SCSI/SAS就是外存储系统的标志,而在内存诸系统的一个招牌,也是区别PC/SERVER最大的标志之一---ECC

    ECC是“Error Checking and Correcting”的简写,中文名称是“错误检查和纠正”。ECC是一种能够实现“错误检查和纠正”的技术,ECC内存就是应用了这种技术的内存,一般多应用在服务器及图形工作站上,这将使整个电脑系统在工作时更趋于安全稳定。

    在ECC技术出现之前,内存中应用最多的是另外一种技术,就是Parity(奇偶校验)。内存中最小的单位是比特,也称为“位”,位有只有两种状态分别以1和0来标示,每8个连续的比特叫做一个字节(byte)。不带奇偶校验的内存每个字节只有8位,如果其某一位存储了错误的值,就会导致其存储的相应数据发生变化,进而导致应用程序发生错误。而奇偶校验就是在每一字节(8位)之外又增加了一位作为错误检测位。在某字节中存储数据之后,在其8个位上存储的数据是固定的,因为位只能有两种状态1或0,假设存储的数据用位标示为1、1、1、0、0、1、0、1,那么把每个位相加(1+1+1+0+0+1+0+1=5),结果是奇数。对于偶校验,校验位就定义为1,反之则为0;对于奇校验,则相反。当CPU读取存储的数据时,它会再次把前8位中存储的数据相加,计算结果是否与校验位相一致。从而一定程度上能检测出内存错误,奇偶校验只能检测出错误而无法对其进行修正,同时虽然双位同时发生错误的概率相当低,但奇偶校验却无法检测出双位错误。 服务器的应用不允许出现这种哪怕概率相当低的错误,于是新的技术诞生了,那就是ECC。

    这种技术也是在原来的数据位上外加校验位来实现的。不同的是两者增加的方法不一样,这也就导致了两者的主要功能不太一样。它与Parity不同的是如果数据位是8位,则需要增加5位来进行ECC错误检查和纠正,数据位每增加一倍,ECC只增加一位检验位,也就是说当数据位为16位时ECC位为6位,32位时ECC位为7位,数据位为64位时ECC位为8位,依此类推,数据位每增加一倍,ECC位只增加一位。总之,在内存中ECC能够容许错误,并可以将错误更正,使系统得以持续正常的操作,不致因错误而中断,且ECC具有自动更正的能力,可以将Parity无法检查出来的错误位查出并将错误修正。不过需要提到的一点是,被纠正的数据很少会被放回内存。假如相同的错误数据再次被读出,则纠正过程再次被执行。重写数据会增加处理过程的开销,这样则会导致系统性能的明显降低。如果是随机事件而非内存的缺点产生的错误,则这一内存地址的错误数据会被再次写入的其他数据所取代。这一过程会减少内存执行的效率,增加内存存取数据的周期,换句话说,ECC是浪费内存的性能,降低效率,到底会减少多少效率呢,这在后面会做一个测试。

    registered-带寄存器的内存 寄存器可以的作用是:再次推动数据信号通过内存芯片,使内存条上能够焊接更多的芯片。带寄存器(Registered)的内存和不带缓存(unbuffered)的内存不能混用。能否使用带寄存器的内存是由电脑的内存控制器决定的。registered内存上面的芯片一般比普通主板多出2-3个,主要是PLL (Phase Locked Loop)和Register IC,它们的具体用处如下 PLL(Phase Locked Loop) 琐相环集成电路芯片,内存条底部较小IC,比Register IC小,一般只有一个,起到调整时钟信号,保证内存条之间的信号同步的作用。Register IC内存条底部较小的集成电路芯片(2-3片),起提高驱动能力的作用。服务器产品需要支持大容量的内存,单靠主板无法驱动如此大容量的内存,而使用带Register的内存条,通过Register IC提高驱动能力,使服务器可支持高达32GB的内存。 


ECC深入分析创见内存ECC开启与否测试
图为ECC-registered内存,从颗粒上看到单面为9颗颗粒,而底部分别有两个Register IC和PLL。

    而有些中低端服务器主板也可以采用普通的内存,而并非ECC-registered内存不可,可是大多数server的用户都是选择了ECC内存。如果在没有数据库这种大型运算存诸量的需求,或者是不需要长期不间断工作,那么还可以选择普通而又廉价的内存,而在运算繁杂,工作量巨大,长期工作的服务器是只能选择ECC内存,这样可以避免蓝屏死机重启等比较严重的现象,一般的PC在连续运行了很长时间的时候,至少都会产生一些程序出错,程度非正常性缓慢等毛病,这种现象在ECC内存的服务器上基本不会出现。换个角度说,哪怕内存上的一个颗粒损坏了,在ECC的纠错能力下还能工作,只是会引起不停的纠错导致速度下降,最大程度保护服务器的安全性以及稳定性。

创见 DDR2-533 ECC 内存(一)
 

    这次创见送测了4根1G容量的DDR2-533 ECC Fully Buffered内存 ,从外观上我们看到一面有9个颗粒,双面总共18个颗粒。我们知道普通内存的颗粒应该是4,8,16这种2的n次方的数,而ECC内存,在每64位数据之后,还增加了8位的ECC校验码。通过校验码,可以检测出内存数据中的两位错误,纠正一位错误,所以要在8个颗粒上再增加一个颗粒用于储存ECC所产生的检校码,所以当我们看到9个或者18个颗粒的内存时,我们单从外观上就能判断出他们是ECC内存了。而我们没看有到其它的芯片,代表着这是一款Unbuffer ECC内存,1G的容量并不需要寄存器的加入也能很轻松的实现,同时这样能确保更高的兼容性,和相对低廉的成本。

    事实上创见DDR2-533 ECC 内存也是市面上最为便宜内存之一,它的价格仅为810一条,这和市面上一些高端的普通品牌内存价格大致一样。

ECC深入分析创见内存ECC开启与否测试

    标签上也明确标着容量以及速度,对于中低服务器而言,稳定更加重要,双通道DDR2 533和当前最高的FSB1066搭配足够使用。

ECC深入分析创见内存ECC开启与否测试

创见DDR2 -533 ECC 内存(二)

在内存条的右端帖有Transcend,此为创见的英文标识。

ECC深入分析创见内存ECC开启与否测试

创见DDR2-533 ECC 内存采用了PSC力晶颗粒

    六层底板PCB和大量帖片电容电阻和优秀的做工保证了内存在长时间高负荷的状态下一样稳定工作。

ECC深入分析创见内存ECC开启与否测试

是否开启ECC可以直接从BIOS上看出来。

ECC深入分析创见内存ECC开启与否测试

ECC/non ECC的性能测试说明

CPU INTEL Core 2 Extreme X6800(2.93G L2 CAHCE 4M)
主板 ASUS P5W64(975X)
散热器 Tunq Tower120
内存 创见DDR -533 ECC 1g*4(DDR2 533 4-4-4-11
显卡 NVIDIA GEFORCE 7900GTX
电源 TT ToughPower 650W
硬盘 希捷 7200 10 250G(8M) SATA3G
测试系统 Microsoft Windows XP SP2 Professional
测试软件
  • SISoftware Sandra 2007 Memory Latecy
  • SISoftware Sandra 2007 Memory Bandwidth
  • Super PI MOD-1.4 English
  • Everest 2006 内存潜伏
  • CineBench 9.5

    Intel 975X芯片组定位于高端旗舰,所以它能够同时支持ECC/NON ECC内存,所以我们采用了INTEL 975X的ASUS P5W64这款定位于工作站主板用于测试,测试项目分别采用ECC和NON ECC的测试项目,在BIOS关闭了ECC功能之后创见DDR2 -533 ECC也就变成了普通的ECC内存了,这也就是相当于只利用到18个颗粒中的16个颗粒用于工作。

大多数支持ECC/NON ECC内存的主板都能设置开启/关闭ECC

ECC深入分析创见内存ECC开启与否测试

    从CPU-Z里读到的创见DDR2 -533 ECC的SPD,可以看到为了得到更强的稳定性和兼容性创见甚至加入了CL5@266的SPD,在Correction里可以看出ECC已经被开启。

ECC深入分析创见内存ECC开启与否测试

ECC/non ECC的性能测试

    Parity奇偶校验与ECC错误检查和纠正除了查错的范围ECC更为宽广之外,还有一个显著的不同,即为同样数据位数之下两种技术所占的数据位数也不尽相同,诚然数据位数占用越少,那么所带来的性能下降也会越小,这样直接关乎性能的重要因素,到底是Parity与ECC谁会做得得更好一些呢?上面提到Parity在8位数据元时只需要一位数据作为校验所占用的空间,而同样的8位数据ECC需要5位作为校验码,这样乍看之下似乎Parity更胜一筹。事实上上面也提及过,当数据位增加一倍之时,Parity所需要占用的空间也需要相应的翻倍,而ECC只需要再增加一位作为补充码即可,这样的好处显而易见,当到达64位或者以上的数据位时,ECC所占用的空间已经小于Parity所占用的空间了,而这种优势在数据位越大时就会越发明显,当数据位增大到一定位数时,ECC所需要的数据位数,以及带来的性能衰减已经降到了可以忽略不计的地位。在实际应用的项目中,如今更大数据位已经成了主流(指128bit以上),ECC相对于Parity的性能优势得以体现,并且正在缩短和NON ECC之间的距离。

ECC深入分析创见内存ECC开启与否测试

    在内存带宽的测试里我们能看出在关闭了ECC之后性能得到一定的增加,但是增幅度比较小,看来测试所用的数据传输已经偏向大数据位,所以从这方面减轻了ECC带来的负担。

ECC深入分析创见内存ECC开启与否测试

    而在Sisoftware sadra 2007 memory latency里反应出来的内存的延迟在打开ECC之后上升不少,毕竟要多处理ECC的校验过程需要内存增加许多读写周期。

ECC深入分析创见内存ECC开启与否测试

    而在EVEREST 2006里我们看见和Sisoftware sadra 2007 memory latency所乎一样的结果,依然有一些差距,ECC打开之后会对内存潜伏造成一定影响。

ECC深入分析创见内存ECC开启与否测试

    在SUPER PI的测试里我们发现不管是在短程的1M或者是长程的8M里是否开启ECC的影响十分之下,尤其是8M里仅差2M的成绩可以被认为是误差,这也体现了SUPER PI这个软件上ECC的打开与否并没有多大关系。

ECC深入分析创见内存ECC开启与否测试

    在性能上而言,打开ECC会造成一定的性能损失,而笔者在做这个测试之时,本来还有一个测试项目3DMARK2006,结果却因为ECC关闭之后3DMARK06无法运行结束而放弃(中途重启),估计是由于4条DIMM同时插槽内存引起了少许的兼容性问题,而ECC开启却能顺利完成一测试项目,这利我们感觉到十分意外。尽管ECC内存普遍应用于高端服务器市场,但是现在如此廉价的ECC内存已经为普通用户打开大门,只要家用主板可以支持(一般高端的如975X等),又对稳定性有所要求,买一对这种廉价ECC内存来使用是十分不错的选择。

给文章打分 5分为满分(共0人参与) 查看排行>>
频道热词:LED照明  工作站  云计算  
视觉焦点
服务器评测与技术热点
排行 文章标题
TOP10周热门服务器排行榜
  • 热门
  • 新品
  • 系列
查看完整榜单>>