DDR(Double Data Rate SDRAM),即双倍速率同步动态随机存储器,含义是数据会被时钟的上升沿和下降沿采样,相对于时钟上升沿采样,这种方法相当于把采样时钟频率提升了一倍。DDR3 SDRAM在降低系统功耗的同时很大程度上提高了系统性能,其理由“fly-by”和动态片上匹配技术对于信号完整性的改善效果明显。

1、逻辑Bank
      组成DDR3的存储单元称为逻辑bank,在逻辑bank中,先指定一个行,再指定一个列,可以准确地定位到所需的存储位置,这是DDR3寻址的基本原理,目前,DDR3基本上是8bank设计。

2、物理Bank
      这是一个与存储子系统相关的术语,并不针对存储芯片,在PC上的北桥芯片用于控制存储器与CPU之间的数据交换,为了高效传输数据,北桥芯片是存储器总线的数据位宽等同于CPU数据总线的位宽,这个位宽被称为物理Bank(又称为Rank),当前这个位宽基本为64bit,每个内存颗粒的位宽为8bit,为了满足Rank所需的64位宽,需要8颗内存颗粒并行组成。

3、行激活命令
      在对DDR3的某一个bank内数据进行读/写访问前,首先必须将该bank中数据所在的行激活,一旦激活,则该行将保持激活状态直到发送预充电命令到DDR3。发送行激活命令式,bank地址与相应的行地址同时发出;行激活命令发送后,随后发送列地址寻址命令与具体的读/写操作命令,由于这两个命令也是同时发出的,所以一般都会以读/写命令来表示列寻址。从行有效到读/写命令发出之间的时间间隔被定义为tRCD,tRCD是DDR的一个重要时序参数,广义的tRCD以时钟周期为单位,如tRCD=3,就代表延迟周期为3个时钟周期。

4、读/写命令
      DDR3执行bank的行激活命令后,可以发送读/写命令对该行进行读/写操作,在发送读/写命令时,引脚A10决定是否允许自动预充电操作,如果允许进行预充电,那么读/写命令结束时会自动对该行进行预充电,否则该行将一直保持激活状态控制逻辑可继续对该行进行读/写操作

5、数据掩码
      DDR3采用数据掩码(DQM)技术,用于屏蔽不需要的数据。通过采用DQM,DDR3控制器能够以字节为操作单元指示I/O端口数据的有效性,当然在读取DDR3时,被掩码掩掉的数据仍然会从存储器中读出,只是在“掩码逻辑单元”处被屏蔽

6、预充电命令
      数据读取完成之后,为了释放DDR3内读出放大器的空间,以供同位置bank内的其他行寻址及传输数据,DDR3芯片将执行预充电命令来关闭当前的工作行。预充电对航中所有的存储单元进行数据重新加载,并对行地址进行复位,其中A10决定是对某一个bank或所有bank进行预充电。预充电命令之后,要经过一段时间才允许发送行激活命令操作新的工作行,这个时间间隔称为tRP

7、刷新操作
      DDR3需要不断进行刷新操作才能在存储单元中维持数据的有效存储。虽然预充电能够针对一个或所有bank中的工作进行刷新,但是预充电命令与操作相关,不能保证所有存储空间的遍历,同时其操作时间也不固定。而刷新操作则有固定的操作周期,一次对所有行进行操作,以维护存储单元中的所有数据。但是,与预充电不同,刷新操作的行是指所有bank中地址相同的行,而预充电中各bank中的工作行地址并不一定是相同的。

刷新操作分为两种:自动刷新与自刷新。对于自动刷新,在刷新过程中,所有bank都停止工作,而每次刷新结束后,DDR3才可以进入正常的工作状态,即在刷新期间,所有工作指令只能等待而无法执行。自刷新则主要用于休眠模式低功耗状态下的数据维护,此时不再以高系统时钟工作,而是根据内部的时钟进行刷新操作。

8、突发长度/类型
      突发是指在同一行中相邻的存储单元连续进行数据访问,连续访问的时钟周期数就是突发长度,突发长度由模式寄存器MR0确定,可设置为固定模式:BC4或BL8模式,即在读/写操作室通过A12选择突发长度4或8。进行突发传输时,只要指定起始列地址与突发长度,DDR3就会依次地自动对后续相应数量的存储单元进行读/写访问,而不再需要DDR3控制器连续的提供列地址。在这种模式下,除了第一次数据的访问需要若干个周期外,后续的每次数据只需一个周期即可获得

9、模式寄存器
      模式寄存器用于设置DDR3 SDRAM的工作模式,目前支持4个模式寄存器,分别为MR0、MR1、MR2、MR3,其中MR0用于设置DDR3的基本工作模式,包括突发长度、突发类型、CAS延迟和DLL复位等。MR1用来存储DLL使能、输出驱动长度、Rtt_Nom、额外长度和写电平使能等。MR2用来存储控制更新的特性、Rtt_WR阻抗和CAS写长度。MR3用来控制MPR。

Xilinx公司提供的MIG工具适用于高速存储器接口的解决方案,MIG工具中的DDR3 SDRAM控制器设计运行用户在V6等器件中通过用户接口快速建立FPGA内部控制逻辑与外部存储器的访问连接,DDR3 SDRAM存储器接口包括用户接口模块、存储控制器、物理层模块、以及本地接口和物理层接口等。
-------

ODT(On-Die Termination)技术。

  ODT(On-Die Termination),是从DDR2 SDRAM时代开始新增的功能。其允许用户通过读写DDR2/3内部的MR1寄存器,来控制DDR3 SDRAM中各个信号内部终端电阻的连接或者断开。在DDR3 SDRAM中,ODT功能主要应用于:

  1、DQ, DQS, DQS# and DM for X4 configuration

  2、DQ, DQS, DQS#, DM, TDQS and TDQS# for X8 configuration

  3、DQU, DQL, DQSU, DQSU#, DQSL, DQSL#, DMU and DML for X16 configuration

  ODT(On-Die Termination)技术的目的是通过使DDR SDRAM控制器能够独立的打开或者关断DDR内部的终端电阻来提高存储器通道的信号完整性,在DLL关闭模式,ODT功能被禁用。

  一个DDR通道,通常会挂接多个Rank,这些Rank的数据线、地址线等等都是共用;数据信号也就依次传递到每个Rank,到达线路末端的时候,波形会有反射,从而影响到原始信号;因此需要加上终端电阻,吸收余波。之前的DDR,终端电阻做在板子上,但是因为种种原因,效果不是太好,到了DDR2,把终端电阻做到了DDR颗粒内部,也就称为On Die Termination,Die上的终端电阻,Die是硅片的意思,这里也就是DDR颗粒。

ODT技术有以下三个优点:

  1、去掉了主板上的终结电阻器等电器元件,这样会大大降低主板的制造成本,并且也使主板的设计更加简洁。

  2、由于ODT技术可以迅速的开启和关闭空闲的内存芯片,在很大程度上减少了内存闲置时的功率消耗。

  3、芯片内部终结电阻也要比主板的终端电阻具有更好的信号完整性。这也使得进一步提高DDR2内存的工作频率成为可能。

参考资料

  1、ODT技术:https://blog.csdn.net/weixin_38233274/article/details/81016870

  2、DDR3原理:http://www.360doc.com/content/17/0628/10/43885509_667136417.shtml

  3、DDR3原理:https://wenku.baidu.com/view/95574828d1f34693dbef3e39.html

  4、DDR3原理:https://wenku.baidu.com/view/0b1b0c795fbfc77da369b1b1.html

  5、DDR芯片原理:http://blog.chinaunix.net/uid-20671208-id-4470548.html

  6、DDR传输速率:https://wenku.baidu.com/view/342ed68f360cba1aa811dabf.html

  7、DDR三个频率关系:https://www.cnblogs.com/shengansong/archive/2012/09/01/2666213.html

  8、DDR3三个频率关系:https://electronics.stackexchange.com/questions/134555/why-all-ddrs-ddr-ddr2-ddr3-internal-clock-sets-to-20

DDR3 基本指令描述及参考资料相关推荐

  1. mo汇编指令_moshell常用指令描述

    1. moshell 常用指令描述.  lt : lt 指令是最常用的指令,进入 moshell 之后,首先用 lt 从库中取 mo, 要不然你 就看不到啥东西.通过在 lt 后面配置不同的过滤器可 ...

  2. STM32F10xxx20xxx21xxxL1xxxx Cortex-M3程序设计手册 阅读笔记三(3):Cortex-M3指令描述

    下面部分将会给出使用指令的更多信息. 1.    操作对象: 一个指令操作对象可以是ARM寄存器.常量.或另一个指令具体参数.指令作用于操作对象而且通常间结果存储在目的寄存器.当在指令中有一个目的寄存 ...

  3. 8086汇编语言指令总结

    根据工作需要,从基础学起,设计一台嵌入式CISC模型计算机,稍后上传. 先总结下,汇编语言指令,如下 1. MOV(传送) 指令写法:MOV  target,source 功能描述:将源操作数sour ...

  4. 汇编语言--iret指令

    CPU随时都可能执行中断处理程序,中断处理程序必须一直存储在内存某段空间之中 而中断处理程序的入口地址,即中断向量,必须存储在对应的中断向量表表项中. 中断处理程序的常规编写步骤: 保存用到的寄存器: ...

  5. 硬编码学习笔记(二)—— 经典变长指令

    硬编码学习笔记(二)-- 经典变长指令 前言 指令结构 符号说明 寻址符号 操作数符号 上标符号 One-Byte Opcode Map 变长指令 ModR/M 例:0x88 例:0x89 例:0x8 ...

  6. 在Visual Studio中使用用例图描述系统与参与者间的关系

    "用例图"用来描述谁用系统,用系统做什么.用例图不涉及使用细节,只用来描述使用人员和系统的关系,也不涉及行动的顺序.一起来体验. 使用Visual Studio 2012创建解决方 ...

  7. 指令寻址方式与数据寻址方式

    [README] 1.本文总结自bilibili<计算机组成原理(哈工大刘宏伟)>的视频讲解,非常棒,墙裂推荐: 2. cpu访存寄存器耗费 10ns,访问缓存(高速缓冲寄存器)耗费20n ...

  8. 第3章 文件IO | 001 文件描述符

    概述 在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件.目录文件.链接文件和设备文件.文件描述符(file descriptor)是内核为了高效管理已被打开的文件所创建的索引,其是一个非 ...

  9. Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - SSE扩展(13/E) - FXSAVE/FXRSTOR指令

    FXSAVE and FXRSTOR instructions FXSAVE与FXRSTOR指令是从Pentium II处理器引入到IA-32架构上的,早于SSE指令集的引入.这两条指令的最初版本是用 ...

最新文章

  1. 打造自动、智能的Office 2003安装光盘
  2. python的logging模块,记录所发生的异常。
  3. 在Cloudshare上使用PAL=〉系统检查及初始化
  4. Java进阶:@FunctionalInterface函数式接口使用说明
  5. 微积分31--微分学在几何上的应用
  6. node --- 使用node连接mysql
  7. 全国计算机等级考试题库二级C操作题100套(第58套)
  8. Spring中的@Cacheable开销
  9. 告毕业生书——七剑送你下天山
  10. ubuntu NGINX uwsgi https 部署Django 遇到的问题
  11. Android——Android Studio导入SlidingMenu类库的方法
  12. windows查看GPU信息(nvidia-smi)
  13. spring data jpa 查询部分字段列名无效问题
  14. SC-FDE 系统 基于导频的细小偏估计
  15. css实现背景图片透明
  16. c#把word文档转换为html页面
  17. BUUCTF 打卡2
  18. IO IR 个人作业汇总——康熙
  19. 安卓手机远程控制DIY智能家居设备(ESP8266)
  20. linux下交叉编译jrtplib-3.9.1

热门文章

  1. 蓝桥杯 算法训练 逗志芃的危机(Java)
  2. lol服务器维修时间2018,《英雄联盟》维护到几点结束 2018维护公告介绍
  3. 使用vuex-persist苹果手机微信浏览器打开项目链接白屏
  4. js-hex 转 字符串
  5. 关于在vue当中,ios手机不显示图片,需要刷新解决问题
  6. 彻底关闭Windows10更新 以及使用搜狗输入法
  7. 验证码破解技术四部曲之使用卷积神经网络(四)
  8. 微软推出的那些好用的微信小程序
  9. javascript模拟点击事件--实现视频自动播放
  10. 机械师t58java编程如何_机械师t58怎么样?