内存延迟是指等待对系统内存中存储数据的访问完成时引起的延期。根本问题在于处理器(如英特尔®至强TM处理器)的主频接近4 GHz,而内存芯片速率仅为400 MHz (如DDR 3200内存) —时钟速度之比为10:1。

因此,当处理器需要处于内部高速缓存之外的数据项时,每个周期必须等待10个时钟周期才能使内存芯片完成数据的提取和发送。通常,这些提取需要检索多个内存周期,然后需要更长时间通过到处理器的路径。这就意味着提取数据会占用数百个处理器时钟周期,在此期间应用不能处理其它任何任务。

中文名

内存延迟

外文名

Memory latency

拼音

nèi cún yán chí

定义

等待对系统内存中存储数据的访问完成时引起的延期

解决建议

最好选择同样CL设置的内存

根本问题

处理器和内存芯片速率不一致

简介

内存延迟表示系统进入数据存取操作就绪状态前等待内存响应的时间,它通常用4个连着的阿拉伯数字来表示,例如“3-4-4-8”,一般而言四个数中越往后值越大,这4个数字越小,表示内存性能越好。由于没有比2-2-2-5更低的延迟,因此国际内存标准组织认为以现在的动态内存技术还无法实现0或者1的延迟。但也并非延迟越小内存性能越高,因为CL-tRCD-tRP-tRAS这四个数值是配合使用的,相互影响的程度非常大,并且也不是数值最大时其性能也最差,那么更加合理的配比参数很重要。

第一个数字最为重要,表示注册读取命令到第一个输出数据之间的延迟(CAS Latency),即CL值,单位是时钟周期。这是纵向地址脉冲的反应时间。

第二个数字表示内存行地址到列地址的延迟时间(RAS to CAS Delay),即tRCD。

第三个数字表示从内存行地址控制器预充电时间(RAS Precharge),即tRP。指内存从结束一个行访问到重新开始的间隔时间。

第四个数字表示内存行地址控制器激活时间Act-to-Precharge Precharge Delay(tRAS),

详解

内存延迟时间有个专门的术语叫“Latency”。要形象的了解延迟,我们不妨把内存当成一个存储着数据的数组,或者一个EXCEL表格,要确定每个数据的位置,每个数据都是以行和列编排序号来标示,在确定了行、列序号之后该数据就唯一了。内存工作时,在要读取或写入某数据,内存控制芯片会先把数据的行地址传送过去,这个RAS信号(Row Address Strobe,行地址信号)就被激活,而在转化到行数据前,需要经过几个执行周期,然后接下来CAS信号(Column Address Strobe,列地址信号)被激活。在RAS信号和CAS信号之间的几个执行周期就是RAS-to-CAS延迟时间。在CAS信号被执行之后同样也需要几个执行周期。此执行周期在使用标准PC133的SDRAM大约是2到3个周期,而DDR RAM则是4到5个周期。在DDR中,真正的CAS延迟时间则是2到2.5个执行周期。RAS-to-CAS的时间则视技术而定,大约是5到7个周期,这也是延迟的基本因素。

CL设置较低的内存具备更高的优势,这可以从总的延迟时间来表现。内存总的延迟时间有一个计算公式,总延迟时间=系统时钟周期×CL模式数+存取时间(tAC)。首先来了解一下存取时间(tAC)的概念,tAC是Access Time from CLK的缩写,是指最大CAS延迟时的最大数输入时钟,是以纳秒为单位的,与内存时钟周期是完全不同的概念,虽然都是以纳秒为单位。存取时间(tAC)代表着读取、写入的时间,而时钟频率则代表内存的速度。

操作方法

举个例子来计算一下总延迟时间,比如一条DDR333内存其存取时间为6ns,而其内存时钟周期为6ns(DDR内存时钟周期=1X2/内存频率,DDR400内存频率为400,则可计算出其时钟周期为5ns)。我们在主板的BIOS中将其CL设置为2.5,则总的延迟时间=6ns X2.5+6ns=21ns,而如果CL设置为2,那么总的延迟时间=6ns X2+6ns=18 ns,就减少了3ns的时间。

从总的延迟时间来看,CL值的大小起到了很关键的作用。所以对系统要求高和喜欢超频的用户通常喜欢购买CL值较低的内存。目前各内存颗粒厂商除了从提高内存时钟频率来提高DDR的性能之外,已经考虑通过更进一步的降低CAS延迟时间来提高内存性能。

不过,并不是说CL值越低性能就越好,因为其它的因素会影响这个数据。例如,新一代处理器的高速缓存较有效率,这表示处理器比较少地直接从内存读取数据。再者,列的数据会比较常被存取,所以RAS-to-CAS的发生几率也大,读取的时间也会增多。最后,有时会发生同时读取大量数据的情形,在这种情形下,相邻的内存数据会一次被读取出来,CAS延迟时间只会发生一次。

实际建议

选择购买内存时,最好选择同样CL设置的内存,因为不同速度的内存混插在系统内,系统会以较慢的速度来运行,也就是当CL2.5和CL2的内存同时插在主机内,系统会自动让两条内存都工作在CL2.5状态,造成资源浪费。