DRAM 内存介绍(二)
DDR3 SDRAM的读写操作都是burst相关的,在一个address启动读写操作后,它都要连续进行burst length的byte读写,就像前一章的图中,ACT命令后,会跟着一个多个读写命令。read burst 的长度总是4 clocks,这是因为DDR传输数据频率是主机的两倍,4 clocks x 2 transactions/clock = 8 transactions or 8 bits per bank。
DDR3的内存地址中,可以包括以下的位:1位chip select位,0表示rank0,1表示rank1;bank选择位 BA0-BA2 ,DDR3是8个bank,所以3位就足够了,GDDR5是16个bank,所以需要4位,HBM也是16个bank,也需要4位。page选择位A0-A13,表示每个bank内,有16,384 (214) pages。列用A00-A09 表示,每个page有210 = 1,024列。A12bit通常作为Burst Chop bit,如果A12 是high,则在一个读burst中,仅有一半的数据被发送。A10 bit用来决定precharge是对于一个bank(A10 low)还是对于所有bank(A10 high)。

图一, 内存读写操作
数据输入/输出 pins DQ0-DQ63 在cpu和DIMM之间提供了64bit宽的数据接口,比如Intel Core i7处理器,有三个64bit宽的memory channel,所以内存总线宽度为192bit, intel i5处理器则有两个64bit的memory channel,所以内存总线宽度是128bit。
每个channel能够管理操作两个DIMM,这意思是说每个channel最多有4个rank,在同一个channel中增加DIMM,并不能增加内存总线宽度,但这增加了bank的数目,提高了同时操作page的能力。

图二,内存读写操作
在图二的例子中,我们假定bank中没有打开的page,也就是说bank处于precharge状态,我们可以启动访问一个新的page。第一步,选择page,第二步,选择列,第三步,burst数据到内存总线。在图中,行地址是1位,列地址是4位,所存的数据总共是2 x 4-bit x 1 (bank)。
一个ACT命令指定访问行地址解码器,这将触发输入传感放大器中的row address word line,就像前一篇文章介绍的,这需要消耗tRCD cycles的最小等待时间,才能发送下一条命令。如果设置时序过小,可能会导致数据出错。接着,读命令伴随着列地址访问,选择了coloumn address bit line,这将需要消耗CL cycles,然后传感放大器的word line被激活,传感放大器开始工作,开始读burst操作,之后就是precharge操作,需要消耗tRP的cycles时间。

Click to enlarge
图三. bank读操作时序图
图三显示了16byte的读写时序图。
DRAM 内存介绍(二)的更多相关文章
- DRAM 内存介绍(一)
转载自博客大神迈克老狼的blog: http://www.cnblogs.com/mikewolf2002/archive/2012/11/13/2768804.html 参考资料:http://ww ...
- DRAM 内存介绍(三)
参考资料:http://www.anandtech.com/show/3851/everything-you-always-wanted-to-know-about-sdram-memory-but- ...
- { MySQL基础数据类型}一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型
MySQL基础数据类型 阅读目录 一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型 一 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己 ...
- iOS 11开发教程(五)iOS11模拟器介绍二
iOS 11开发教程(五)iOS11模拟器介绍二 3.iOS11模拟器中设置语言 对于不同国家的人来说,使用到的语言是不一样的.一般情况下iOS11模拟器默认使用的English(英语).对于英文不好 ...
- C#构造方法(函数) C#方法重载 C#字段和属性 MUI实现上拉加载和下拉刷新 SVN常用功能介绍(二) SVN常用功能介绍(一) ASP.NET常用内置对象之——Server sql server——子查询 C#接口 字符串的本质 AJAX原生JavaScript写法
C#构造方法(函数) 一.概括 1.通常创建一个对象的方法如图: 通过 Student tom = new Student(); 创建tom对象,这种创建实例的形式被称为构造方法. 简述:用来初 ...
- 必须要注意的 C++ 动态内存资源管理(二)——指针对象简单实现
必须要注意的 C++动态内存资源管理(二)——指针对象简单实现 四.拷贝类型的资源 上节我们说过,对于图片类型的资源我们有时候往往采用拷贝(如果对于那种公共图片,可能采用唯一副本,提供 ...
- Lucene.Net 2.3.1开发介绍 —— 二、分词(六)
原文:Lucene.Net 2.3.1开发介绍 -- 二.分词(六) Lucene.Net的上一个版本是2.1,而在2.3.1版本中才引入了Next(Token)方法重载,而ReusableStrin ...
- Lucene.Net 2.3.1开发介绍 —— 二、分词(五)
原文:Lucene.Net 2.3.1开发介绍 -- 二.分词(五) 2.1.3 二元分词 上一节通过变换查询表达式满足了需求,但是在实际应用中,如果那样查询,会出现另外一个问题,因为,那样搜索,是只 ...
- Lucene.Net 2.3.1开发介绍 —— 二、分词(三)
原文:Lucene.Net 2.3.1开发介绍 -- 二.分词(三) 1.3 分词器结构 1.3.1 分词器整体结构 从1.2节的分析,终于做到了管中窥豹,现在在Lucene.Net项目中添加一个类关 ...
随机推荐
- 使用 IntraWeb (43) - 测试读取 SqLite (二)
一般情况下, 数据源相关控件应该有数据模块中统一管理, 这也方便其他窗体调用; UserSessionUnit 就是一个现成的数据模块. 现在把数据源相关控件放在 UserSessionUnit 的窗 ...
- 杀死你网站SEO的5个技术
胡亮亮先生(网迈SEO总监)在其微信公众帐号里发布了文章<杀死你网站SEO的5个技术>,发出来给大家分享一下: 应百度站长平台邀请,抽空把这篇文章做一些细节上的补充 ,欢迎大家关注并讨论. ...
- git使用2
初始化配置 #配置使用git仓库的人员姓名 git config --global user.name "Your Name Comes Here" #配置使用git仓库的人员em ...
- XE3随笔12:TSuperTableString、TSuperAvlEntry
通过 ISuperObject.AsObject 可获取一个 TSuperTableString 对象. TSuperTableString 的常用属性: count.GetNames.GetValu ...
- MapReduce: 一种简化的大规模集群数据处理法
(只有文字没有图,图请参考http://research.google.com/archive/mapreduce.html) MapReduce: 一种简化的大规模集群数据处理法 翻译:风里来雨里去 ...
- Jade之Case
Case jade中的case类似js中的switch语句. 当前一个when中无语句的时候,将一直往下直至遇到一个有语句的when才跳出. jade: - var friends = 10 case ...
- over分析函数
select empno,ename,job,sal,sum(sal) over (order by empno) 累计 from emp ;
- Linux部署apache
一.我们使用源码安装 官网:https://httpd.apache.org/文档:https://httpd.apache.org/docs/2.4/ 下载源码包 httpd-2.4.20.tar. ...
- Exception in thread “main” com.google.gson.JsonSyntaxException: java.lang.NumberFormatException: empty String
String json="A valid json"; Job job = new Gson().fromJson(json, Job.class); Exception in t ...
- 【动态规划】bzoj1664 [Usaco2006 Open]County Fair Events 参加节日庆祝
将区间按左端点排序. f(i)=max{f(j)+1}(p[j].x+p[j].y<=p[i].x && j<i) #include<cstdio> #incl ...