认识服务器的内存

  服务器跟普通PC一样需要内存,但由于受到电磁干扰,电压突变等因素的影响,内存的数据可能会发生错误,导致系统的崩溃。虽然说现在的内存出错的几率已经很低,可还是不能满足服务器稳定性的要求,所以服务器的内存一般还会引入各种的内存的纠错技术,以降低宕机的几率。

  内存的纠错技术有很多种,主要有奇偶校验技术、ECC技术和IBM的Chipkill-correct ECC技术,下面我们就来简单介绍一下这几种技术。

奇偶校验技术

  奇偶校验的原理很简单,我们知道在内存中数据是用二进制来保存的,也就是说当中的数据不是0就是1,我们可以增加一位来存储数据中内容为0(或1)的位数是奇数(或偶数)的真假。具体做法是这样的,假设现在要储存一个n位的数据(X0 X1 X2……Xn),我们先将各位进行异或运算得出校验码C=X0 xor X1 xor X2……xor Xn,再将 取补并存到第n+1个位中;读取数据的时候,先将读取出来的数据的各位和校验码进行异或运算(not C xor X0 xor X1 xor X2……xor Xn),如果得出来的结果为1,则说明数据没有错误,否则说明数据出现了错误,需要更正。因为一个字节有8位,所以一般每8位就取一个奇偶校验位。奇偶校验的缺点也是明显的,如果数据中错误位数之和为偶数时就不能被发现了,而且奇偶校验只能够发现错误,不能够查并改正错误,因此,ECC内存校验技术也应运而生。

ECC技术

  ECC(Error Correcting Code/Error Checking and Correcting)也称为SEC(Single Error Correct )ECC,它跟奇偶校验一样,需要额外的空间来储存校正码,但其占用的位数跟数据的长度并非成线性关系,具体来说,一个8位的数据产生的ECC码要占用5位的空间,而一个16位数据ECC码只需增加一位,就是6位,而32位的数据则要7位的ECC码,如此类推。显然ECC码的长度跟数据的长度成的是对数关系,当数据长度在64位以上的时候,ECC码在空间占用上就会凸现优势。此外,ECC校验最大的优点是如果数据中有一位错误,它不但能发现而且可以对其更正,ECC校验还可以发现2~4位错误(不能更正),当然这样的情况出现的几率是非常低的。ECC码的校验算法比奇偶校验复杂不少,需要专门的芯片来支持,所以普通的电脑主板不一定会支持ECC内存校验,而且因为系统需要时间来等待校验的结果,ECC校验会降低系统速度2%-3%左右,但这小小的代价换来系统稳定性的大大提高可以说事非常值得的。

Chipkill-correct ECC技术

  随着服务器运算速度的提高,内存容量的增大,内存出错的几率也在上升,据统计,带1GB SEC ECC内存的系统在三年内发生错误的几率是7%,这对于现在企业级服务器的稳定性要求是远远不够的,所以在97年,IBM率先提出了Chipkill-correct ECC技术,其可以将1GB内存系统三年内发生错误的几率降到0.06%!其原理跟硬盘的RAID技术相似,所以也叫做RAID-M(Redundant Array of Inexpensive DRAMs - for Memory)技术。具体做法是将若干字节的数据很其ECC校验码合成一个“ECC WORD”,再将其分开存储到几根不同的内存上。所以其容错能力大大加强,存储方式有点像RAID5技术。此外,Chipkill还加大了ECC码的长度,使其有更强的纠错能力,如一个128位的数据加16位的ECC码可以容许4位的错误。但是这种系统的内存必须成对出现,而且对其算法芯片的设计比较困难,所以一般只用在大型的服务器上。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值