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项目中添加一个类关 ...
随机推荐
- 一个自己用的代码备份工具,支持delphi,android,java,可以自己添加配置,灵活支持大部分编程语言
下面就是这个软件的下载地址 http://files.cnblogs.com/files/stevenlaz/release.zip 绿色软件 MConfig.exe 进行安装,或者卸载 MBacku ...
- 一个有趣的基于C++的模拟发牌程序
在内存中模拟出一副牌,然后模拟洗牌,发牌等动作. 流程是这样的:构建一副牌保存到一个数组中—洗牌—创建玩家—向玩家发牌–输出每个玩家的牌. #include <stdio.h> #incl ...
- [python] 线程池
特别感谢simomo 什么是线程池? 诸如web服务器.数据库服务器.文件服务器和邮件服务器等许多服务器应用都面向处理来自某些远程来源的大量短小的任务.构建服务器应用程序的一个过于简单的模型是:每当一 ...
- MSSQL系统进程锁GHOST CLEANUP
DBCC TRACEON(661 , -1);启用指定的跟踪标志. DBCC TRACEoff(661 , -1); DBCC TRACESTATUS;查看标记
- VMware12 安装 CentOS 6.5 64位
前言:本人在配置Hadoop的过程中,需要搭建Cent OS 64 环境,借此,顺便将Cent OS 64 的安装在此记录,方便自己,也方便大家学习.本次是在VM12虚拟机中实现Cent OS 64 ...
- CSS定位之position详解(转载)
本文转载于xingoo的博文:http://www.cnblogs.com/xing901022/p/5193751.html position属性 在前端中,position是很常见的属性.通过这 ...
- git -- 如何解决冲突
遇到冲突,首先要编辑冲突文件,可以使用vim或者其他工具,冲突文件变现为: <<<<HEAD 到 ==== :代表本地分支的修改内容 ==== 到 >>>&g ...
- Xcode配置.pch文件
--到Xcode7都可以这么解决.亲测. 发现一个好东西.就是这个.pch文件.我的理解是他里面存放了我们在各个controller里面需要的头文件,那这样一来,就免去了在不同的ViewControl ...
- 数据库知识整理<八>
联接: 8.1理解简单的单联接: 基本上联接的结果是每个集合的笛卡尔积.例如:两个集合{a,b,c}和{a,b}的笛卡尔积是如下的成对集合:{(a,a),(a,b),(b,a),(b,b),(c,a) ...
- wordnet的一些入门性介绍
关于wordnet的介绍很多,中英文都有,我这里主要是参考了别人的.自己组织了一下. 1.简介 1.1关于词典 Wordnet是一个由普林斯顿大学认识科学实验室在心理学教授乔治·A·米勒的指导下建立和 ...