深入SPD 王寒晖 2001年 11期 见过内存条的人都知道,在内存条正面的右侧有时可以看到一块面积大约为4mm×3mm的芯片(如^11080501a^),它是一个容量为256字节的EEPROM(Electrically Erasable Programmable ROM,电可擦写可编程只读存储器),这块芯片就是SPD芯片。它保存着内存条的速度、工作频率、容量、工作电压与CAS Latency(Column Address Strobe Latency,列地址控制器的延迟时间)、tRCD(RAS to CAS Delay,RAS相对CAS的延迟时间)、tRP(Row Precharge Time,RAS预充电时间、tAC(Access Time from CLK,相对时钟下沿的数据读取时间)、SPD版本等基本信息,这些信息是内存生产厂家预先写入的。SPD芯片一般采用8个管脚的SOIC封装形式,型号大多为24LC01B(Kingmax PC-150内存的SPD型号为KS24C02)。SPD芯片是标准PC-100(PC-133)内存和非标准PC-100(PC-133)内存最主要区别。    通常情况下,电脑在开机启动过程中,支持SPD的BIOS会自动读取内存SPD芯片中的信息,并按照SPD内的预设值来设置内存的存取时间。如果内存上没有SPD芯片,主板BIOS只得通过采用默认值的方法来识别该内存芯片的基本信息,但是这样很容易造成系统不稳定,甚至出现死机现象。不过,现在大多数主板都提供了自定义内存参数功能,以保证内存正常工作。也就是说,如果你的主板BIOS支持SPD,那在BIOS设置程序的“Advanced Chipest Features”(高级芯片组特性)中就可以看到有关SPD的设置。如果我们将它设为“Auto”,一些相关参数(如SDRAM CAL Latency、DRAM Clock)就会按BIOS检测到的SPD信息来设定,使内存工作在标准状态,无须人工进行设置。如果内存上没有SPD芯片,或者我们想将内存超频使用,这时我们就可以将“DRAM Timing by SPD”设为“No”,再自定义设置“SDRAM CAL Latency”及“DRAM Clock”。   #1 SPD内置的主要参数    由于SPD芯片中内置了内存的许多参数,因此熟悉这些参数的基本含义有助于我们更好地了解内存条的性能。下面我们着重了解CAS Latency、tRCD、tRP、tAC、SPD版本等基本信息(内存的标准工作频率、容量和工作电压比较容易理解,故在此不作讨论)。   #2 1.CAS Latency(即CL)    CAS Latency(Column Address Strobe Latency,列地址控制器的延迟时间)是指纵向地址脉冲的响应时间。也就是当一个读命令在时钟上升沿发出后至数据发送至输出端的时延(用时钟周期表示)。CAS Latency周期数越少越好,这个数值一般是2或者3。CAS延迟时间为2的内存芯片在同等工作频率下比CAS延迟时间为3的内存芯片速度更快,性能更好。通常,内存厂商会把内存的CAS Latency值写到SPD芯片中,开机时主板的BIOS就会检测SPD中的CAS Latency,并以SPD预设的默认值运行。内存的CAS Latency值是根据具体内存条的技术规范而定。按照PC-133内存技术规范,要求PC-133内存条的CAS Latency应该≤3,如果实际使用时在BIOS中将内存条的“CAS Latency”设为“2”后,内存仍然能正常运行,则表明该内存条质量比较好。因此,CAS Latency也是在一定频率下衡量不同规范内存的重要标志之一。但如果将PC-133内存的CAS Latency值设为2后,内存不能稳定运行,并不代表这条内存不是PC-133内存,因为PC-133内存技术规范中并没有保证CAS Latency一定要等于2。   #2 2.tRCD    tRCD(RAS to CAS Delay)是指RAS相对CAS的延迟时间,这个值也是用时钟周期来表示。   #2 3.tRP    tRP(Row Precharge Time)是指RAS预充电时间,这个值也是用时钟周期来表示。   #2 4.tAC    tAC(Access Time from CLK)是指相对时钟下沿的数据读取时间,即最大CAS延迟时的最大输入时钟。根据PC-100内存技术规范规定,tAC不大于6ns。PC-133内存技术规范规定,tAC不大于5.4ns。目前大多数SDRAM芯片的存取时间为5、6、7、8或10ns,注意,tAC不同于系统时钟频率(CLK),它们两者之间有着本质的区别。比如LGs出品的标识为7K的PC-100内存,它的tAC为7ns,但时钟频率却为10ns。   #2 5.SPD版本    SPD芯片中记录的内容是标准化的,记录版本在不断更新,这个版本是电子设备工程联合委员会制定的,常见的版本号有1.0、1.1、1.2,目前的最新版本为2.0。   #1 内存的标注规格    有时,我们为了辨别内存的真假,往往会借助一些工具软件来查看SPD芯片内的信息。例如:我们运行SiSoft Sandra 2001 Standard这个著名的信息检测工具,它里面有一个名为“Mainboard Information”的项目,该项目下面有一个名为“Memory Modules”的子项目,在这个子项目下我们可以看到诸如“128MB 8x(16M×8) SDRAM PC133U-333-542 (CL3 upto 133MHz) (CL2 upto……)”字样的信息。这行信息就表示内存的技术规范。    一般来说,内存技术规范统一的标注格式为PCx-xxx-xxx,但是不同的内存技术规范,其格式也略有不同,下面笔者就常见的内存技术规范分别加以说明。    1.PC-66/100 SDRAM(版本为1.0-1.2)格式为PCx-abc-defm,如:PC100-322-622R。    x代表内存的标准工作频率(单位为MHz)。    a代表CAS的延迟时间,用时钟周期来表示。    b代表RAS相对CAS的延迟时间,用时钟周期来表示。    c代表RAS预充电时间,用时钟周期来表示。    d代表相对时钟下沿的数据读取时间,即tAC。如:6代表6.0ns。    e代表SPD版本,如:2代表SPD版本为1.2。    f代表修订版本,如:2代表修订版本为1.2。    m代表模块类型,R代表DIMM已注册,256MB以上的内存必须经过注册。    2.PC-66/100 SDRAM(版本为1.2b+)其格式为PCx-abc-ddeefm,如:PC100-322-54122R。    x代表内存的标准工作频率(单位为MHz)。    a代表CAS的延迟时间,用时钟周期来表示。    b代表RAS相对CAS的延迟时间,用时钟周期来表示。    c代表RAS预充电时间,用时钟周期来表示。    dd代表相对时钟下沿的数据读取时间,表达时不带小数点,如54代表5.4ns tAC。    ee代表SPD版本,如:12代表SPD版本为1.2。    f代表修订版本,如:2代表修订版本为1.2。    m代表模块类型,R代表DIMM已注册,256MB以上的内存必须经过注册。    3.PC-133 SDRAM(版本为2.0)其格式为PCxm-abc-dde,如:PC133U-333-542。    x代表内存的标准工作频率(单位为MHz)。    m代表模块类型,R代表DIMM已注册,U代表DIMM不含缓冲区。    a代表CAS的延迟时间,用时钟周期来表示。    b代表RAS相对CAS的延迟时间,用时钟周期来表示。    c代表RAS预充电时间,用时钟周期来表示。    dd代表相对时钟下沿的数据读取时间,表达时不带小数点,如54代表5.4ns tAC。    e代表SPD版本,如:2代表SPD版本为2.0。    4.PC-1600 DDR SDRAM(版本为1.0)其格式为PCxm-aabc-dde,如:PC2100R-2533-750。    x代表内存带宽(单位为MB/s),内存带宽的1/16就是内存标准的工作频率,如:2100代表内存带宽为2100MB/s,内存标准的工作频率为133MHz。    m代表模块类型,R代表DIMM已注册,U代表DIMM不含缓冲区。    aa代表CAS的延迟时间,用时钟周期来表示,表达时不带小数点,如25代表CL=2.5。    b代表RAS相对CAS的延迟时间,用时钟周期来表示。    c代表RAS预充电时间,用时钟周期来表示。    dd代表相对时钟下沿的数据读取时间,表达时不带小数点,如75代表7.5ns tAC。    e代表SPD版本,如:0代表SPD版本为1.0。    5.RDRAM(版本为1.0)其格式为xMB/a b c PCd,如:256MB/16 ECC PC800。    x代表内存的容量,如:256代表内存容量为256MB。    a代表内存条上的内存颗粒数量,如:16代表内存颗粒数量为16块。    b代表内存支持ECC,如:ECC。    c保留。    d代表内存的数据传输率,数据传输率的1/2也就是内存标准的工作频率,如:800代表内存的数据传输率为800Mt/s,内存标准的工作频率为400MHz。