CL是CAS Latency的缩写,一般翻译成CAS潜伏时间,是在北桥(Intel)/CPU(AMD最近的CPU)读取内存数据时的一个参数,这个参数对于内存的性能有比较大的影响。
CAS是内存信号中的一个信号,读取内存的具体过程是这样的:有行(RAS#)列(CAS#)两条信号,类似于我们的方格纸的行和列,要读取内存数据时,RAS#信号拉低,内存地址线上的地址就是行地址,相当于我们确定了方格纸上的行,几个时钟周期后CAS#信号拉低,内存地址线上的地址就是列地址,相当于确定了方格纸上的列,这样就能确定读取方格纸上那个格的数据,再过几个时钟周期(CL),开始读取内存相应地址的数据。
这样说来CL就是CAS#到开始读取内存数据的时钟数,对于同一种时钟速度的内存(比如都是DDR333),大致CL越小,速度越快,但是对于不同时钟速度的内存(比如DDR333与DDR400),没有可比性。
可惜不能贴图,不然能很直观的看出来。
数据输出(读)
在选定列地址后,就已经确定了具体的存储单元,剩下的事情就是数据通过数据I/O通道(DQ)输出到内存总线上了。但是在CAS发出之后,仍要经过一定的时间才能有数据输出,从CAS与读取命令发出到第一笔数据输出的这段时间,被定义为CL(CAS Latency,CAS潜伏期)。由于CL只在读取时出现,所以CL又被称为读取潜伏期(RL,Read Latency)。CL的单位与tRCD一样,为时钟周期数,具体耗时由时钟频率决定。
不过,CAS并不是在经过CL周期之后才送达存储单元。实际上CAS与RAS一样是瞬间到达的,但CAS的响应时间要更快一些。为什么呢?假设芯片位宽为n个bit,列数为c,那么一个行地址要选通n×c个存储体,而一个列地址只需选通n个存储体。但存储体中晶体管的反应时间仍会造成数据不可能与CAS在同一上升沿触发,肯定要延后至少一个时钟周期。
CL的数值不能超出芯片的设计规范,否则会导致内存的不稳定,甚至开不了机(超频的玩家应该有体会),而且它也不能在数据读取前临时更改。CL周期在开机初始化过程中的MRS阶段进行设置,在BIOS中一般都允许用户对其调整,然后BIOS控制北桥芯片在开机时通过A4-A6地址线对MR中CL寄存器的信息进行更改
参考资料:Double Data Rate (DDR) SDRAM Specification
内存负责向CPU提供运算所需的原始数据,而目前CPU运行速度超过内存数据传输速度很多,因此很多情况下CPU都需要等待内存提供数据,这就是常说的“CPU等待时间”。内存传输速度越慢,CPU等待时间就会越长,系统整体性能受到的影响就越大。因此,快速的内存是有效提升CPU效率和整机性能的关键之一。
在实际工作时,无论什么类型的内存,在数据被传输之前,传送方必须花费一定时间去等待传输请求的响应,通俗点说就是传输前传输双方必须要进行必要的通信,而这种就会造成传输的一定延迟时间。CL设置一定程度上反映出了该内存在CPU接到读取内存数据的指令后,到正式开始读取数据所需的等待时间。不难看出同频率的内存,CL设置低的更具有速度优势。