1.DDR4 x8 x16
x8表示单颗数据位宽为8bit,x16表示单颗数据位宽为16bit
x8的DDR4有4个bank group,每个bank group连接4个bank。
x16的DDR4有2个bank group,每个bank group连接4个bank
2.DDR4带宽计算方法
DDR4可以在时钟的上边沿与下边沿都发送数据。所以在计算传输速度的时候需要乘一个2。比如对DDR4 2400MT/s而言。意味着该DDR4每秒可以传输2400M次,这意味着。该DDR可以工作在1200M的频率。如果DDR4的位宽为64bit。那么传输速度为2400M * 64/8=18.75GB/s。如果user 端的频率为300M,位宽为512bit。可以计算出速度为:300M * 512/8=18.75GB/s。
3.DDR4内部结构
内部多通道——Bank Group
它在内部设计了Bank Group架构,每个Bank Group可以独立读写数据,这样一来内部的数据吞吐量大幅度提升,可以同时读取大量的数据,内存的等效频率在这种设置下也得到巨大的提升。如果内存内部设计了两个独立的bank group那么相当于每次操作16bit的数据。
点对点总线
传统的DDR3设计中内存和内存控制器采用多点分支总线链接。这种总线允许在一个接口上挂接很多规格的芯片。这种设计类似于为每次只能双向通行一对汽车的道路边修建仓库,仓库直连道路,虽然每个仓库都有自己的运输车和运输能力,但道路只允许每次双向通行一对车,因此这种设计如果不停的加修仓库,只是扩大了存储能力而已,对运输能力帮助不大。
DDR4抛弃了这种设计,转而采用点对点总线。点对点总线的特性是内存控制器每通道只能支持唯一的一根内存,相比多点分支总线,点对点相当于为每个仓库都设计了一条道路
DDR4的效率问题
从内存控制器的角度来分析,一个Group FSM每三个系统周期可以发送一个CAS指令。就算地址递增,连续发生页命中。如果只有一个Group FSM在发送指令。那么DDR4的最高效率也只有1/3=33.3%。
如果同时只有两个Group FSM在发送。那么效率就是2/3= 66.7%。当有4个Group FSM在运作时,效率可以达到100%
DDR4中的延迟信息
- tRAS (Row Active Time) :行激活时间(Row Active) 表示从内存行有效命令发出至预充电命令发出之间的最短时间。 如果tRAS的周期太长,系统会因为无谓的等待而降低性能。如果tRAS的周期太短,则可能因缺乏足够的时间而无法完成数据的突发传输,这样会引发丢失数据或损坏数据。
- tRP (Row precharging time):表示行预充电时间。tRP用来设定在另一行能被激活之前,现有的工作行需要的充电时间。从开始关闭现有的工作行,到可以打开新的工作行之间的间隔就是tRP。
- tRCD (RAS to CAS Delay ) :是行激活到读指令发送的时间
- tCL (CAS latency) : 列地址脉冲选通潜伏期,从读指令和列地址一起发送到数据有效的时间间隔
- tRC (Row cycle time):表示“ SDRAM行周期时间 ”,它是 包括行单元预充电到激活在内的整个过程所需要的最小的时钟周期数 。其计算公式是: (tRC) =(tRAS) + (tRP)。
https://blog.csdn.net/fillthesky/article/details/52204200
https://blog.csdn.net/njuitjf/article/details/18360741
DDR存取的步骤
内存是根据行和列寻址的,当请求触发后,最初是tRAS(Activeto Precharge Delay),预充电后,内存才真正开始初始化RAS。一旦tRAS激活后,RAS(Row Address Strobe )开始进行需要数据的寻址。首先是行地址,然后初始化tRCD,周期结束,接着通过CAS访问所需数据的精确十六进制地址。期间从CAS开始到CAS结束就是CAS延迟。所以CAS是找到数据的最后一个步骤,也是内存参数中最重要的。
在数据读取完之后,为了腾出读出放大器以供同一Bank内其他行的寻址并传输数据,内存芯片将进行预充电的操作来关闭当前工作行。还是以上面那个Bank示意图为例。当前寻址的存储单元是B1、R2、C6。如果接下来的寻址命令是B1、R2、C4,则不用预充电,因为读出放大器正在为这一行服务。但如果地址命令是B1、R4、C4,由于是同一Bank的不同行,那么就必须要先把R2关闭,才能对R4寻址。从开始关闭现有的工作行,到可以打开新的工作行之间的间隔就是tRP(Row Precharge command Period,行预充电有效周期),单位也是时钟周期数。
端口信号
init_calib_complete
是一个高有效信号,表明DDR4的初始化和校准已经完成,可以正常接受信号了。
内存控制器
控制器操纵DRAM的时钟频率和系统时钟的比率为4比1
网友评论