初识硬件之内存篇
硬件周刊
一、内存综述
内存其实就是一组或多组具备数据输入输出和数据存储功能的集成电路。按存储信息的功能可分为只读存储器ROM(Read Only Memory)、可改写的只读存储器EPROM(Erasable Programmable ROM)和随机存储器RAM(Random Access Memory)。
ROM中的信息只能被读出,而不能被操作者修改或删除,故一般用于存放固定的程序,如监控程序、汇编程序等。
EPROM和一般的ROM不同点在于它可以用特殊的装置擦除和重写它的内容,一般用于软件的开发过程。
RAM就是我们平常所说的内存,主要用来存放各种现场的输入/输出数据、中间计算结果,以及与外部存储器交换信息和作堆栈用。它的存储单元根据具体需要可以读出,也可以写入或改写。由于RAM由电子器件组成,所以只能用于暂时存放程序和数据,一旦关闭电源或发生断电,其中的数据就会丢失。
现在的RAM多为MOS型半导体电路,它分为静态和动态两种。静态RAM靠双稳态触发器来记忆信息;动态RAM则靠MOS电路中的栅极电容来记忆信息。由于动态RAM比静态RAM集成度高、功耗低,成本也低,适于作大容量存储器。所以电脑的主内存通常采用动态RAM,而高速缓冲存储器(Cache)则使用静态RAM,如CPU中的L2缓存。
二、内存分类
目前我们使用的内存基本上都是动态RAM。根据制作工艺、性能参数等各方面的差异,现在常用的内存有三种,即SDRAM、DDR SDRAM及RDRAM。
1.SDRAM
SDRAM(Synchronous DRAM)即“同步动态随机存储器”,这是目前使用范围最广泛也是最普通的内存了,如(图1)。内存其实就是一组或多组具备数据输入输出和数据存储功能的集成电路。

(1)内存芯片
也称“内存颗粒”,内存颗粒加上一些辅助电路再焊在PCB板上就成了一根内存条。生产内存芯片的厂商不多,主要有NEC、Hynix、APACER、SAMSUNG等公司,这些公司除了自己生产成品内存条之外,还提供内存芯片给其他厂商,于是市场上便有了众多内存品牌。
芯片厂商会在芯片上用激光等方法标上品牌、型号等参数,因此,理论上我们就能通过识别这些参数来了解该内存条的容量、工作频率等信息。
(2)SPD芯片
SPD的全称是“Serial Presence Detect”,即“连续存在侦测”。SPD保存了该条内存的各种性能参数,如容量、芯片厂商、工作速度、是否具备ECC校验等等。这些内容都是内存厂商输入进去的,最后保存在一个EEPROM芯片中。当系统启动后,主板芯片组会根据SPD提供的信息,自动在主板BIOS中将与内存相关的参数设置好,保证内存条的正常使用,可见SPD的重要性非同一般。
(3)PC100/PC133
在接触SDRAM的时候,我们都会碰到PC100/PC133等字样,这是什么意思呢?其实这是两种不同的内存标准。
PC100是由Intel提出,得到众多内存厂商支持。从性能上来说,Intel对PC100规范的要求是──将主板外频设置为100MHz,且在BIOS中将内存的CAS设置为2,此时该内存就能稳定地与主板的外频(100MHz)同步工作。
PC133是威盛公司联合了三星、现代等数家厂商提出的和PC100类似的内存规范。PC133是PC100的延伸,它要求内存的tAC不超过5.4ns,tCK不超过7.5ns(对于PC100,这两项都是10ns)。稳定的工作频率为133MHz(对于PC133 SDRAM,若没有特别标明,CL=3。)
另外,现在我们还能看到一些自称是“PC150”的SDRAM,当然这不是正式的标准,厂商如此做的目的也只不过是告诉消费者──该内存条能稳定工作在150MHz的系统外频下。
2.DDR SDRAM
DDR SDRAM 也就是采用了DDR(Double Data Rate SDRAM双数据速度)技术的SDRAM,如(图2)。与普通SDRAM相比,它们的时钟周期是一样的,但DDR SDRAM能在时钟脉冲的上升和下降沿都传输数据,而SDRAM只在信号的上升沿时读取数据,因此理论上DDR SDRAM可提供双倍于SDRAM的速度,这样也将带来双倍的性能。

(1)SDRAM与DDR SDRAM的外观区别
从外形上看DDR与传统的SDRAM相比差别并不大,它们具有同样的长度与同样的管脚距离。只不过DDR内存有184只管脚和一个小缺口,而SDRAM是168只管脚及两个缺口,如(图3)。

(2)PC200/PC266及PC1600/PC2100
与SDRAM一样,DDR SDRAM也是与系统总线频率同步的,不过因为DDR SDRAM的速度是SDRAM的双倍,因此工作在133MHz外频下的DDR SDRAM其性能就相当于266MHz的SDRAM,于是便出现了与PC100/PC133对应的PC200/PC266了。
至于PC1600和PC2100,说的并不是内存的时钟频率,而是DDR SDRAM的数据传输率,也就是内存带宽。比如时钟频率为266MHz的DDR SDRAM内存带宽为──133MHz×2×64Bit/8=2100MB/s(兆字节每秒),可见PC266与PC2100的实际意思是一样的。
(3)识别DDR SDRAM的编号
目前市场上的DDR SDRAM品牌并不多,生产DDR内存芯片的厂商也就三星、现代等几家,下面以市场上较常见的现代DDR芯片为例,谈谈编号的识别。
现代芯片编号格式一般为:“HY 5abcdefghijklm-no”。其中HY代表现代的产品;5a表示芯片类型(57=SDRAM,5D=DDR SDRAM);b代表工作电压(空白=5V,V=3.3V,U=2.5V);cde代表容量和刷新速度(16=16Mbits、4K Ref,64=64Mbits、8K Ref,65=64Mbits、4K Ref,128=128Mbits、8K Ref,129=128Mbits、4K Ref,256=256Mbits、16K Ref,257=256Mbits、8K Ref);fg代表芯片输出的数据位宽(40、80、16、32分别代表4位、8位、16位和32位);h代表内存芯片内部由几个Bank组成(1、2、3分别代表2个、4个和8个Bank);i代表接口(0=LVTTL[Low Voltage TTL]接口);j代表内核版本(可以为空白或A、B、C、D等字母,越往后代表内核越新);k代表功耗(L=低功耗芯片,空白=普通芯片);lm代表封装形式(JC=400mil SOJ,TC=400mil TSOP-Ⅱ,TD=13mm TSOP-Ⅱ,TG=16mm TSOP-Ⅱ);no代表速度(7=7ns[143MHz],8=8ns[125MHz],10p=10ns[PC-100 CL2或3],10s=10ns[PC-100 CL3],10=10ns[100MHz],12=12ns[83MHz],15=5ns[66MHz],K =DDR266A,H=DDR266B,L=DDR200)。
如“HY5DU28822T-H”表示该芯片是一块现代生产的符合PC2100标准的DDR SDRAM,如(图4)。

3.RDRAM
RDRAM也叫Rambus内存,这一全新的内存规格是Intel提出来的,当时它主要面向服务器与工作站,如(图5)。RDRAM与DDR SDRAM一样,在工作周期的上下沿都传输数据,以产生双倍的数据传输时钟。不过RDRAM与SDRAM在传输界面上有很大的不同──RDRAM在一个传输沿中最多只能传输16bit或18bit的数据,因此它在一个传输周期的实际数据传输量只有32bit,比SDRAM内存的64bit数据带宽少了整整一半!为了弥补带宽的不足,RDRAM的工作频率很高,目前市场上常见的有三种──300MHz、356MHz和400MHz。因为RDRAM的双沿传输等同于工作频率的加倍,所以我们常把上述三种工作频率的RDRAM内存称为PC600、PC700和PC800内存,那么为什么会这样称呼呢?这是因为:Rambus引入了RISC(精简指令集)的技术,依靠它极高的工作频率,通过减少每个周期的数据量来简化操作。Rambus通过上升和下降沿各可传送一次,使原有的400MHz的频率变为800MHz。Rambus之所以可以达到400MHz的时钟频率,是因为它使用了铜线连接内存控制器和内存模块,并且通过减少铜线数量和长度,降低电磁干扰。单就技术的观点来看,尽管作为一种完全新型的串行工作模式内存,而不考虑实作的难度与成本,Rambus架构在其界面高速运行下,所能提供的高带宽,其带宽是视Rambus的通道个数而定的,就1个通道而言,800MHz的DRDRAM带宽为800MHz×16位=1.6GB/s,若是两个通道,则可提升为3.2GB/s,若是4个通道的话,将达到6.4GB/s,而PC133的带宽为1.06GB/s,PC266则为2.13GB/s。Rambus的管脚数为184,使用1.8V电压。但由于是全新的设计,需要新的RIMM插槽及与芯片组配合。而且Rambus要求RIMM槽中必须全部插满,空余的RIMM槽要用专用的Rambus中继器插满。
