DDR扫盲—-关于Prefetch(预取)与Burst(突发)的深入讨论

更新时间:2023-08-03 06:44:09 阅读: 评论:0

年假规定怎么休
DDR扫盲—-关于Prefetch(预取)与Burst(突发)的深⼊讨论姓名:贺昱 学号:21181214026 学院:⼴研院
原⽂转⾃:DDR扫盲——关于Prefetch与Burst的深⼊讨论-Felix-电⼦技术应⽤-AET-中国科技核⼼期刊-最丰富的电⼦设计资源平台()
【嵌⽜导读】关于DDR技术预取原理
【嵌⽜⿐⼦】DDR3的预取原理以及容量计算
【嵌⽜提问】如何理解DDR读写速率翻倍以及DDR3的8位预取
【嵌⽜正⽂】
引⾔:
学习DDR有⼀段时间了,期间看了好多的资料(部分公司的培训资料、⼏⼗篇的博⽂,Micron的Datasheet,JESD79规范等)。但是有⼀个问题,想了好久(很多资料都没有说明⽩),⾄今才算搞明⽩,所以写⼀篇⽂章和⼤家分享⼀下。
如题,接下来要讨论的主要是关于Prefetch和Burst相关的内容。
1、Prefetch介绍
进⼊DDR时代之后,就有了prefetch技术,DDR是两位预取(2-bit Prefetch)
两位预取(2-bit Prefetch),有的公司则贴切的称之为2-n Prefetch(n代表芯⽚位
位预取(8-bit Prefetch)。⽽8-bit Prefetch可以使得内核时钟是宽)。DDR2是四位预取(4-bit Prefetch)
四位预取(4-bit Prefetch),DDR3和DDR4都是⼋位预取(8-bit Prefetch)。
DDR时钟的四分之⼀,这也是Prefetch的根本意义所在。
补充说明:芯⽚位宽的另⼀种说法是配置模式(Configuration),在DDR3时代,⼀般有x4,x8,x16。
下⾯以DDR3为例,下图是个简单 ⼀个简单Read预取⽰意图,Write可以看做是 个逆向过程。
怎么做酵素
当DDR3 为x8 Configuration时,⼀个Cell的容量为8x8bits,即8个字节。换⼀句话说,在指定bank、row地址和col地址之后,可以往该地址内写⼊(或读取)8 Bytes。
一对象2、回到⼀个简单的问题上,如何计算DDR3 SDRAM的容量
水炒鸡蛋的做法
以Mircon的某型号DDR3 SDRAM为例:
以图中红⾊部分的内容作为分析案例(8个bank,x8的Configuration):
计算⽅式⼀(错误):
64K*8*1K*8(Row Addressing * Bank Addressing * Column Addressing * x8 Configuration)= 4Gb(512 Megx8)。
⼤部分材料给出的都是这种错误的计算⽅法,误导了很多的初学者。这种计算⽅法咋⼀看好像是对的。但是,仔细推敲⼀下,便可以发现,按照计算⽅式⼀的逻辑,则认为每⼀个Cell的容量是1bit*8(x8 Configuration),即8bit。这与我们在第⼀部分所讨论的结果(⼀个Cell的容量为
64bits,x8 Configuration下)不符。
如何分配股权当然,从某种⾓度来说,计算⽅式⼀也是正确的,因为分离出的Column Address的位数实际上是和prefetch对应的。⽐如DDR3
文明伴我行作文
8-bit Prefetch对3bits的Column Address,DDR2 4-bit Prefetch对应的是2bits的Column Address。只是如果直接按照计算⽅式⼀来计算的话,对于初次接触DDR的⼈来说,理解起来存在⼀定的困难,这也是我写这⼀篇博⽂的原因。
下⾯给出正确的计算⽅式,并说明原因。
计算⽅式⼆(正确):
64K*8*(1K/8)*8*8(Row Addressing * Bank Addressing * (Column Addressing / 8) * x8 Configuration * 8-bit Prefetch)=
4Gb(512 Megx8)。
很多⼈都会问,为什么要把列地址寻址(Column Addressing)除以8呢?似乎计算⽅式⼆看起来更加不合理。接下来,我们先来回顾⼀下DDR3 SDRAM的结构框图(还是以Mircon的某型号为例):
⼤图可能看的不太清楚,下⾯来⼏个特写:
没错!你没有看错!10bit的Column Address的寻址能⼒只有128刚好差了8倍(这就是我们在计算⽅式⼆中将Column Addressing除以8的原因)!
那么问题⼜来了,为什么Column Address的寻址能⼒只有128呢?莫急,请继续看下图:
松针的功效与作用
在上图中,可以清晰地发现,10bits的Column Address只有7bits⽤于列地址译码!列地址0,1,2并没有⽤
那么,问题⼜来了!……
列地址0,1,2,这3bits被⽤于什么功能了?或者是Mircon的设计者脑残,故意浪费了这三个bits?显然不是。
在JESD79-3规范中有如下的这个表格:
可以发现,Column Address的A2,A1,A0三位被⽤于Burst Order功能,并且A3也被⽤于Burst Type功能。由于⼀般情况,我们采⽤的都是顺序读写模式(即{A2,A1,A0}={0,0,0}),所以此时的A3的取值并⽆直接影响。
那么,问题⼜来了!……
Burst⼜是什么⿁呢?且看第三部分。
3、DDR中的Burst Length
柠檬的好处Burst Lengths,简称BL,指突发长度,突发是指在同⼀⾏中相邻的存储单元连续进⾏数据传输的⽅式,
连续传输所涉及到存储单元(列)的数量就是突发长度(SDRAM),在DDR SDRAM中指连续传输的周期数。上⼀部分讲到的Burst Type和Burst Order实际上就是关于Burst Length的读写顺序的配置。
在DDR3 SDRAM时代,内部配置采⽤了8n prefetch(预取)来实现⾼速读写.这也导致了DDR3的Burst Length⼀般都是8。当然也有Bursth ength为4的设置(BC4),是指另外4笔数据是不被传输的或者被认为⽆效⽽已。
在DDR2时代,内部配置采⽤的是4n prefetch,Burst length有4和8两种,对于BL=8的读写操作,会出现两次4n Prefetch的动作。
上图是JESD79-3规范中给出的DDR3 SDRAM的Command Truth Table。可以看到,读取和写⼊都有三种基本模式(Fixed BL8 or
BC4,BC4 on the fly,BL8 on the fly)。这⼀部分的内容,在我之前的博⽂中有所提及,此处不再详细介绍。
4、参考资料
4Gb_DDR3_SDRAM.pdf
Samsung DDR3 Datasheet.pdf
JESD79-3A-DDR3规范.pdf

本文发布于:2023-08-03 06:44:09,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1127398.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:部分   计算   地址   读写   预取   说明   传输
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图