4.4 内存的工作原理和主要指标
内存用于暂时存放程序和数据,一旦关闭电源或发生断电,其中的程序和数据就会丢失。下面讲述其工作原理和主要技术。
4.4.1 内存的基本工作原理
内存的基本工作原理包括内存寻址、内存传输、存取时间和内存延迟四个方面,下面来详细说明。
1. 内存寻址
首先,内存从CPU获得查找某个数据的指令,然后在找出存取资料的位置时(这个动作称为“寻址”),它先确定出横坐标(也就是列地址),再确定出纵坐标(也就是行地址),这就好像在地图上画个十字标记一样,能非常准确地定出这个地方。对于计算机系统而言,找出这个地方时还必须确定位置是否正确,因此计算机还必须判读该地址的信号,横坐标有横坐标的信号(也就是RAS信号,Row Address Strobe),纵坐标有纵坐标的信号(也就是CAS信号,Column Address Strobe),最后再进行读或写的动作。因此,内存在读写时至少必须有五个步骤:分别是画个十字,内有定地址两个操作以及判读地址两个信号的操作,共四个操作;以及或读或写的操作,才能完成内存的存取操作。
2. 内存传输
为了存储资料,或者是从内存内部读取资料,CPU都会为这些读取或写入的资料编上地址(也就是我们所说的十字寻址方式),这个时候,CPU会通过地址总线(Address Bus)将地址送到内存,然后数据总线(Data Bus)就会把对应的正确数据送往微处理器,传回去给CPU使用。
3. 存取时间
所谓存取时间,指的是CPU读或写内存资料的过程时间,也称总线循环(Bus Cycle)。以读取为例,从CPU发出指令给内存时,便会要求内存取用特定地址的特定资料,内存响应CPU后便会将CPU所需要的资料送给CPU,一直到CPU收到数据为止,便成为一个读取的流程。因此,这整个过程简单地说便是CPU给出读取指令,内存回复指令并丢出资料给CPU的过程。
4. 内存延迟
内存的延迟时间,也就是所谓的潜伏期。内存延迟一般涉及四个参数:CAS(Column Address Strobe,行地址控制器)延迟、RAS(Row Address Strobe,列地址控制器)-to-CAS延迟、RAS Precharge(RAS预冲电压)延迟、Act-to-Precharge(相对于时钟下沿的数据读取时间)延迟。其中CAS延迟比较重要,它反映了内存从接收指令到完成传输结果的过程中的延迟。
4.4.2 内存的主要性能指标
内存的主要性能指标包括内存容量、存取时间、延时周期、奇偶校验、ECC校验、引脚数、工作电压、CL、工作频率、内存带宽,下面就对这些指标进行介绍。
1. 内存容量
内存容量是指内存存储单元的数量,单位是字节(B),常用的是兆字节MB和吉字节GB。容量这一指标是我们比较关心的,因为它直接制约系统的整体性能。内存条通常有2GB、4GB、8GB、16GB等容量级别,其中8GB、16GB内存已成为当前的主流配置,而用于诸如图形工作站的内存容量已高达32GB或64GB。
2. 存取时间
存取时间即读写内存单元中的数据所需的时间,又称为存储周期。内存芯片的存取时间是内存的另一个重要指标,单位以纳秒(1ns=10-9s)来度量,一般为几纳秒至几十纳秒,常见的有6ns、7ns、8ns、10ns等几种,相应在内存条上标为-6、-7、-8、-10等字样。显然数值越小意味着内存的存取速度越快,但价格也随之上升。在选配内存条时,应尽量挑选与CPU时钟周期相匹配的内存条,这将有利于最大限度地发挥内存条的效率。
3. 延时周期
当CPU需要内存中的数据时,它会发出一个由内存控制器所执行的要求,内存控制器接着将这个要求发送至内存,并在接收数据时向CPU报告整个周期(CPU到内存控制器—内存控制器到内存—内存再回到CPU)所需的时间。缩短延时周期是提高内存存取速度的关键。
4. 奇偶校验
奇偶校验(Parity Check)是系统检查数据的存取和传输错误的一项最简单的技术。内存条有无奇偶校验位是人们常常忽视的问题。奇偶校验对于保证数据的正确读写,尤其是在进行数据量非常大的计算中起着很关键的作用。因此在一些用于工程计算的大型工作站,都要求内存必须具备奇偶校验位。对于常见机型,有无奇偶校验位一般均可正常工作,但需要注意的是,在CMOS的SETUP中关于奇偶校验(Off/On)的设置必须与实际的内存条情况相一致;同时,在一台计算机中内存条的配置要么都带奇偶校验位,要么都不带,绝不可混用。内存条上是否有奇偶校验位,可以很容易地从外观上看出:每根内存条上有9个或3个芯片的含有奇偶校验位,而有8个或两个芯片的则没有奇偶校验位。
5. ECC校验
ECC(Error Checking and Correction)即错误检测与纠正是一种对内存中的数据进行检验和纠错的技术。内存的数据传输量很大,难免发生错误,在要求较高时,需要有检验错误和修正错误的功能。而ECC不但可以查出内存中数据的错误,还可以纠正其他一些数据错误,使内存更稳定、更可靠。不过,带ECC校验的内存价格也因此比普通内存要高。
6. 引脚数
引脚数可以归为内存模组的接口类型,通常为168线及184线的DIMM。
7. 工作电压
内存的工作电压也是需要注意的。FPM内存和EDO内存均使用5V电压,而SDRAM则使用3.3V电压。因此,同时使用SDRAM和EDO RAM时,由于电压不同,很容易导致耐压低的SDRAM被烧毁。
8. CL
CL(CAS Latency,CAS延迟时间)是内存性能的一个重要指标,它是CAS(纵向地址脉冲)的延迟时间。当计算机需要向内存读取数据时,在实际读取之前一般都有一个缓冲期,而缓冲期的时间长度就是CL。某些SDRAM能够运行在CL 2或CL 3模式下,也就是说它们读取数据所延迟的时间既可以是两个时钟周期,也可以是3个时钟周期。内存的CL值越低越好,因此,缩短CAS的周期有助于加快内存在同一频率下的工作速度。
9. 工作频率
工作频率表示内存能稳定运行的最大频率,例如PC133标准的SDRAM的工作频率为133MHz,DDR 266的工作频率为266MHz,DDR2的工作频率可以达到800MHz,DDR3达到2400MHz,而DDR4可以达到3000MHz。对于内存而言,频率越高,传输数据的速度越快。
10. 内存带宽
内存带宽也称数据传输率,是指单位时间内通过内存的数据量。我们用一个简短的公式来说明内存带宽的计算方法:内存带宽=工作频率×位宽/8×n(位宽一般为64b,n为时钟脉冲上下沿传输系数,DDR的系数为2,其他类型一般为1)。如DDR 266的内存带宽为2100MB/s,所以又用PC2100来标示它,于是DDR 333就是PC2700,DDR 400就是PC3200了。
4.4.3 内存的时代划分
通常情况下我们将内存分为以下几代。
1. SDRAM时代
第一代SDRAM内存为PC66规范,但由于Intel和AMD的频率之争将CPU外频提升到了100MHz,所以PC66内存很快就被PC100内存取代,接着133MHz外频的PIII以及K7时代来临,PC133规范也以相同的方式进一步提升SDRAM的整体性能,带宽提高到1GB/s以上。由于SDRAM的带宽为64bit,正好对应CPU的64bit数据总线宽度,因此它只需要一条内存便可工作,便捷性进一步提高。在性能方面,由于其输入输出信号保持与系统外频同步,因此速度明显超越EDO内存。
不可否认的是,SDRAM内存由早期的66MHz,发展到后来的100MHz、133MHz,尽管没能彻底解决内存带宽的瓶颈问题,但此时CPU超频已经成为DIY用户永恒的话题,所以不少用户将品牌好的PC100品牌内存超频到133MHz使用以获得CPU超频成功。值得一提的是,为了满足超频用户的需求,市场上出现了一些PC150、PC166规范的内存。
尽管SDRAM PC133内存的带宽可提高到1064MB/s,加上Intel已经着手最新的Pentium Ⅳ计划,SDRAM PC133内存也不能满足日后的发展需求,此时,Intel为了达到独占市场的目的,与Rambus联合在PC市场推广Rambus DRAM内存(称为RDRAM内存)。与SDRAM不同的是,其采用了新一代高速简单内存架构,基于一种类RISC(Reduced Instruction Set Computing,精简指令集计算机)理论,这个理论可以减少数据的复杂性,使得整个系统性能得到提高。
在AMD与Intel的竞争中,CPU的主频不断提升,Intel为了超过AMD,推出高频Pentium Ⅲ以及Pentium Ⅳ处理器。Rambus DRAM内存以高时钟频率来简化每个时钟周期的数据量,因此内存带宽相当出色,如PC1066 1066MHz 32bit带宽可达到4.2GB/s,Rambus DRAM曾一度被认为是Pentium Ⅳ的绝配。
尽管如此,Rambus DRAM内存生不逢时,后来依然被更高速度的DDR“掠夺”其宝座地位。在当时,PC600、PC700的Rambus DRAM内存因出现Intel 820芯片组“失误事件”、PC800 Rambus DRAM因成本过高而让Pentium Ⅳ平台高高在上,无法获得大众的拥护和爱戴,种种问题让Rambus DRAM胎死腹中,Rambus曾希望具有更高频率的PC1066规范DRAM来力挽狂澜,但最终也是拜倒在DDR内存面前。
2. DDR时代
DDR SDRAM(Double Data Rate SDRAM)简称DDR,也就是“双倍速率SDRAM”的意思。DDR可以说是SDRAM的升级版本。DDR在时钟信号上升沿与下降沿各传输一次数据,这使得DDR的数据传输速度为传统SDRAM的两倍。由于较多采用了下降沿信号,因此并不会造成能耗增加。至于定址与控制信号则与传统SDRAM相同,仅在时钟上升沿传输。
DDR内存是作为一种在性能与成本之间折中的解决方案,其目的是迅速建立起牢固的市场空间,继而一步步在频率上高歌猛进,最终弥补内存带宽上的不足。第一代DDR 200规范并没有得到普及,第二代PC266 DDR SRAM(133MHz时钟×2倍数据传输=266MHz带宽)是由PC133 SDRAM内存所衍生出的,它将DDR内存带向第一个高潮,另外还有不少赛扬和AMD K7处理器都采用DDR 266规格的内存,其后来的DDR 333内存也属于一种过渡,而DDR 400内存成为当下的主流平台选配,双通道DDR 400内存已经成为800FSB处理器搭配的基本标准,随后的DDR 533规范则成为超频用户的选择对象。
3. DDR2时代
DDR2(Double Data Rate 2)SDRAM是由JEDEC进行开发的新生代内存技术标准,它与上一代DDR内存技术标准最大的不同就是,虽然都是采用了在时钟的上升/下降沿同时进行数据传输的基本方式,但DDR2内存拥有两倍于上一代DDR内存预读取能力(即4bit数据预读取)。换句话说,DDR2内存每个时钟能够以4倍外部总线的速度读/写数据,并且能够以内部控制总线4倍的速度运行。
此外,由于DDR2标准规定所有DDR2内存均采用FBGA封装形式,而不同于广泛应用的TSOP/TSOP-II封装形式,FBGA封装提供了更为良好的电气性能与散热性,为DDR 2内存的稳定工作与未来频率的发展提供了坚实的基础。回想起DDR的发展历程,从第一代应用到个人电脑的DDR 200经过DDR 266、DDR 333到双通道DDR 400技术,第一代DDR的发展也走到了技术的极限,已经很难通过常规办法提高内存的工作速度;随着Intel最新处理器技术的发展,前端总线对内存带宽的要求越来越高,拥有更高更稳定运行频率的DDR2内存将是大势所趋。
随着CPU性能不断提高,用户对内存性能的要求也逐步升级。不可否认,仅仅依靠高频率提升带宽的DDR迟早会力不从心,因此JEDEC组织很早就开始酝酿DDR2标准,加上LGA775接口的915/925以及945等新平台开始对DDR2内存的支持,所以DDR2内存成为主流。
DDR2能够在100MHz的发信频率基础上提供每插脚最少400MB/s的带宽,而且其接口将运行于1.8V电压上,从而进一步降低发热量,以便提高频率。此外,DDR2还融入CAS、OCD、ODT等新性能指标和中断指令,提升了内存带宽的利用率。从JEDEC组织者阐述的DDR2标准来看,针对PC等市场的DDR2内存拥有400MHz、533MHz、667MHz等不同的时钟频率。高端的DDR2内存拥有800MHz、1000MHz两种频率。DDR2内存采用200-、220-、240-针脚的FBGA封装形式。最初的DDR2内存采用0.13mm的生产工艺,内存颗粒的电压为1.8V,容量密度为512MB。
PC100的“接班人”除了PC133以外,VCM(Virtual Channel Memory)也是很重要的一员。VCM即“虚拟通道存储器”,这也是大多数较新的芯片组支持的一种内存标准。VCM内存主要根据由NEC公司开发的一种“缓存式DRAM”技术制造而成,它集成了“通道缓存”,由高速寄存器进行配置和控制。在实现高速数据传输的同时,VCM还维持着对传统SDRAM的高度兼容性,所以通常也把VCM内存称为VCM SDRAM。VCM与SDRAM的差别在于不论是否经过CPU处理的数据,都可先交于VCM进行处理,而普通的SDRAM就只能处理经CPU处理以后的数据,所以VCM要比SDRAM处理数据的速度快20%以上。可以支持VCM SDRAM的芯片组很多,包括Intel的815E、VIA的694X等。
4. DDR3时代
DDR3相比起DDR2有更低的工作电压,从DDR2的1.8V降落到1.5V,性能更好、更为省电;DDR2的4bit预读升级为8bit预读。DDR3最高能够以2400MHz的速度工作,由于最为快速的DDR2内存速度已经提升到800MHz/1066MHz,因而首批DDR3内存模组将会从800MHz的速度起跳。
DDR3在DDR2基础上采用的新型设计如下。
(1)8bit预取设计,而DDR2为4bit预取,这样DRAM内核的频率只有接口频率的1/8,DDR3 800的核心工作频率只有100MHz。
(2)采用点对点的拓扑架构,以减轻地址/命令与控制总线的负担。
(3)采用100nm以下的生产工艺,将工作电压从1.8V降至1.5V,增加异步重置(Reset)与ZQ校准功能。
5. DDR4时代
DDR4内存有两种规格。其中使用Single-ended Signaling信号的DDR4内存其传输速率已经被确认为1.6G~3.2Gb/s,而基于差分信号技术的DDR4内存其传输速率则达到6.4Gb/s。由于通过一个DRAM实现两种接口基本上是不可能的,因此DDR4内存同时存在基于传统SE信号和差分信号的两种规格产品。