eygle.com   eygle.com
eygle.com eygle
eygle.com  
 

« 进京两周年记-Eygle在北京的生活之九 | Blog首页 | 学点硬盘知识-从头开始 »

什么是内存的Parity、ECC和SPD

对于内存的奇偶校验(Parity)要从比特概念说起,比特(bit)是内存中的最小单位,也称“位”、它只有两个状态分别以1和0表示。
我们将8个连续的比特叫做一个字节(byte)。非奇偶校验内存的每个字节只有8位,若它的某一位存储了错误的值,就会使其中存储的相应数据发生改变而导致应用程序发生错误。
而奇偶校验内存在每一字节(8位)外又额外增加了一位作为错误检测之用。比如一个字节中存储了某一数值(1、0、0、1、1、1、1、0),把这每一位相加起来(1+0+0+1+1+1+1+0=5)。
若其结果是奇数,校验位就定义为1,反之则为0。当CPU返回读取储存的数据时,它会再次相加前8位中存储的数据,计算结果是否与校验位相一致。
当CPU发现二者不同时就作出一定的反应。现在主板都可以使用带奇偶校验位或不带奇偶校验位两种内存条,但要注意两种不能混用。
但Parity有个缺点,当内存查到某个数据位有错误时,却并不一定能确定在哪一个位,也就不一定能修正错误,所以带有奇偶校验的内存的主要功能仅仅是“发现错误”,并能纠正部分简单的错误。


通过上面的分析我们知道Parity内存是通过在原来数据位的基础上增加一个数据位来检查当前8位数据的正确性,但随着数据位的增加Parity用来检验的数据位也成倍增加,就是说当数据位为16位时它需要增加2位用于检查,当数据位为32位时则需增加4位,依此类推。特别是当数据量非常大时,数据出错的几率也就越大,对于只能纠正简单错误的奇偶检验的方法就显得力不从心了,正是基于这样一种情况,一种新的内存技术应允而生了,这就是ECC(错误检查和纠正).

ECC(Error Checking and Correcting)内存,它也是在原来的数据位上外加位来实现的。不同的是两者增加的方法不一样,这也就导致了两者的主要功能不太一样。它与Parity不同的是如果数据位是8位,则需要增加5位来进行ECC错误检查和纠正,数据位每增加一倍,ECC只增加一位检验位,也就是说当数据位为16位时ECC位为6位,32位时ECC位为7位,数据位为64位时ECC位为8位,依此类推,数据位每增加一倍,ECC位只增加一位。总之,在内存中ECC能够容许错误,并可以将错误更正,使系统得以持续正常的操作,不致因错误而中断,且ECC具有自动更正的能力,可以将Parity无法检查出来的错误位查出并将错误修正。当然在纠错时系统的性能有着明显降低,不过这种纠错对服务器等应用而言是十分重要的,ECC内存的价格比普通内存要昂贵许多。

Parity&ECC


SPD(Serial Presence Detect串行存在探测),它是1个8针的SOIC封装(3mm*4mm)256字节的EEPROM(Electrically Erasable Programmable ROM电可擦写可编程只读存储器)芯片。型号多为24LC01B,位置一般处在内存条正面的右侧,里面记录了诸如内存的速度、容量、电压与行、列地址带宽等参数信息。当开机时PC的BIOS将自动读取SPD中记录的信息,如果没有SPD,就容易出现死机或致命错误的现象。它是识别PC100内存的一个重要标志。现在个别厂商一方面为了降低生产成本,另一方面又要从表面上迎合PC100标准,就在PCB板上焊上一片空的SPD。这样就有可能导致在100MHz以上外频不能正常工作,还应该注意的是一些厂商出的主板(如INTEL原装板)一定要BIOS检测到SPD中的数据才能正常工作,而对于使用假SPD的内存来说,就会有不兼容或死机的现象出现。


历史上的今天...
    >> 2013-04-15文章:
    >> 2010-04-15文章:
    >> 2008-04-15文章:
           奥运会、抵制 与 anti-cnn
    >> 2006-04-15文章:

无觅

By eygle on 2005-04-15 10:11 | Comments (0) | System | 256 |


CopyRight © 2004~2020 云和恩墨,成就未来!, All rights reserved.
数据恢复·紧急救援·性能优化 云和恩墨 24x7 热线电话:400-600-8755 业务咨询:010-59007017-7040 or 7037 业务合作: marketing@enmotech.com