内存是怎么存取数据的

内存是怎么存取数据的,第1张

当我们购买内存条的时候,会看到内存条有如下规格11-11-11-28,它代表什么意思呢?

它是一种内存时序,指的是内存在处理各种任务时,遇到的固有延迟的一种数值描述。

简单讲,就是CPU在向内存索要数据,或者在向内存写入数据的时候,内存要经历一系列的 *** 作,才能把CPU想要的数据给出来或写进去,这一系列的 *** 作所需要花费的时间周期就是内存时序。

内存是怎么存取数据的,3288b512-354f-11ed-ba43-dac502259ad0.png,第2张

这四个数值分别表示CL,tRCD,tRP,tRAS,单位ns。这个数值越短,表示延迟越低,内存的性能越好。

内存是怎么存取数据的,32af12a2-354f-11ed-ba43-dac502259ad0.png,第3张

其实时序还有很多,只不过这四个参数相对来说比较重要。

在讲解之前,我们了解一下内存是怎么存取数据的。首先要知道SDRAM(内存颗粒),DDR就是将这些颗粒集成在一起,然后再加一个控制器。

内存在存取数据时,是以行列的方式进行,跟excel表格类似,通过行列方式定位数据,这个表格我们称为逻辑BANK(L-BANK)。

内存是怎么存取数据的,32c4afcc-354f-11ed-ba43-dac502259ad0.png,第4张

SDRAM内部L-BANK示意图 8X8阵列

B:L-BANK(逻辑logic bank)地址编号

C:column列支持编号

R:row行地址编号

如果我们要找到BANK中的黄色位置,先指定L-BANK地址B1,然后指定行地址R6,再指定列地址C4,最终就能找到寻址单元。

谈到BANK,我们顺便了解一下RANK这个概念(经常容易搞混,分不清楚)

DDR数据存储时,以64bit数据线为例,CPU每次从内存里面读取数据都是一次64bits,而内存颗粒一般没有64bit,大多为4bits,8bits,16bits。为了凑够CPU访问所需的64bits,假设每个颗粒是8bits,就需要8个颗粒并在一起,并在一起的8个颗粒就叫Rank。

内存是怎么存取数据的,32deac2e-354f-11ed-ba43-dac502259ad0.png,第5张

假设内存芯片基本上是8个L-BANK地址,也就是8个这样的表格。

在了解数据如何存取后,下面具体看一下这四个参数:

1、tRCD

内存是怎么存取数据的,33153384-354f-11ed-ba43-dac502259ad0.png,第6张

内存行地址传输到列地址的延迟时间为tRCD(RAS to CAS delay),因为在行激活命令发出之后,芯片存储阵列电子元件响应需要一定的时间。

简单说,在内存控制器接收到行的指令后,需要等待一定的时间才能访问这一行,这个等待时间就是tRCD。

内存是怎么存取数据的,33289406-354f-11ed-ba43-dac502259ad0.png,第7张

tRCD以时钟周期为单位,例:tRCD=2,代表延迟两个时钟周期。

这个参数对系统影响不大,因为程序存储数据到内存中是一个持续过程。同一个程序中一般都会在同一行中寻址。

2、CL

内存是怎么存取数据的,333bd1c4-354f-11ed-ba43-dac502259ad0.png,第8张

内存先确定了行,要想找出数据,还需要确定列,这时我们就能准确的找到目标数据。

内存确定了行数之后,还需要等待一定的时间才能访问具体列数,这个等待的时间就是CL,CL就是列地址访问的延迟时间,是时序中最重要的参数。

内存是怎么存取数据的,33521ce0-354f-11ed-ba43-dac502259ad0.png,第9张

关于CL这里必须强调几点:

CL(CAS Latency,CAS潜伏期),在频率相同的情况下,CL值越小,内存速度越快。由于CL只在读取时出现,所以CL又被称为读取潜伏期。

CL的值随着内存频率的增加而增大。

CL数值也以时钟周期数表示,因此必须知道内存的频率才可以知道CL延迟的具体时间,比较才会更有意义,例:

DDR-400内存,CL=2.5,时钟频率为200MHz,实际CL=12.5ns。

DDR2-800内存,CL=5,时钟频率为400MHz,实际也是CL=12.5ns。

二者一样。

选择购买内存时,最好选择同样CL值的内存,不同速度的内存混插在系统内,会以较慢的那块内存来运行,从而造成资源的浪费。

3、tRP

内存是怎么存取数据的,3366604c-354f-11ed-ba43-dac502259ad0.png,第10张

tRP(RAS Precharge TIme )行预充电时间。假如当前寻址的存储单元是B1、R5、C2。如果接下来的寻址命令是B1、R6、C2,由于是同一L-Bank的不同行,那么就必须要先把R5关闭,才能对R6进行寻址。

从开始关闭现有的工作行,到可以打开新的工作行之间的间隔就是tRP,单位也是时钟周期数。

内存是怎么存取数据的,337d5694-354f-11ed-ba43-dac502259ad0.png,第11张

4、tRAS

内存是怎么存取数据的,338f775c-354f-11ed-ba43-dac502259ad0.png,第12张

tRAS,表示内存行有效至预充电的最短周期 ,可以简单理解成内存写入或读取数据的一个时间,一般接近前三个参数的总和。

调整这个参数须要结合具体状况而定,通常咱们最好设在5-10之间。这个参数要根据实际状况而定,并非说越大或越小就越好。

若tRAS的周期太长,会影响系统的性能。

若tRAS的周期太短,则可能因缺少足够的时间而没法完成数据传输,容易引起数据丢失或损坏。该值通常设定为CAS latency + tRCD + 2个时钟周期。

最后简单概况一下:

内存是怎么存取数据的,33ab5ada-354f-11ed-ba43-dac502259ad0.png,第13张

  审核编辑:汤梓红

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2997622.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-26
下一篇 2022-09-26

发表评论

登录后才能评论

评论列表(0条)

保存