ODT是什么鬼?为什么要用ODT?在很多关于DDR3的博文和介绍中都没有将清楚。在查阅了很多资料并仔细阅读DDR3的官方标准(JESD79-3A)之后,总算有点了头绪,下面来整理整理。

1、首先ODT是什么?

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

·DQ, DQS, DQS# and DM for x4 configuration

·DQ, DQS, DQS#, DM, TDQS and TDQS# for X8 configuration

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

具体的结构图如下:


终端电阻示意图

2、为什么要用ODT?

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

所以,使用ODT的目的很简单,是为了让DQS、RDQS、DQ和DM信号在终结电阻处消耗完,防止这些信号在电路上形成反射,进而增强信号完整性。用JESD79-3A的原话就是:

The ODT feature is designed to improve signal integrity of the memory channel by allowing the DRAM controller to independently turn on/off termination resistance for any or all DRAM devices.

总的来说,ODT技术的优势非常明显。

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

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

第三,芯片内部终结也要比主板终结更及时有效,从而减少了内存的延迟等待时间。这也使得进一步提高DDR2内存的工作频率成为可能。

3、DDR3中的ODT

3.1、ODT的开启

The ODT Mode is enabled if any of MR1 {A9, A6, A2} or MR2 {A10, A9} are non zero.

3.2、ODT的关闭

The ODT pin will be ignored if the Mode Registers MR1 and MR2 are programmed to disable ODT and in self-refresh mode.

3.3、ODT阻值的选择

ODT的阻值可以通关配置MR1寄存器的 {A9, A6, A2} 进行修改

DDR中ODT(on-die termination)相关推荐

  1. DDR中bank,die,rank,channel的概念

    bank:不是银行. die:芯片晶元单元. rank:组成一个channel所用的die的数量. channel:通道. 图 bank die rank channel 1 - 2 2 1 2 - ...

  2. On Die Termination (ODT) DDR

    信号反射 在数据线和芯片连接点阻抗不一样,产生电信号反射,成为噪声,在高速电路中影响很大. 如下图,BUS上有两个DRAM,一个接收信号,一个反射,反射的信号会影响接收的DRAM.主板有termina ...

  3. 聊一聊DDR3中的ODT(On-die termination)

    ODT是什么鬼?为什么要用ODT?在很多关于DDR3的博文和介绍中都没有将清楚.在查阅了很多资料并仔细阅读DDR3的官方标准(JESD79-3A)之后,总算有点了头绪,下面来整理整理. 1.首先ODT ...

  4. DDR中的ODT功能详解及波形对比

    ODT(on die termination)即为片内端接,就是将端接电阻放在了芯片内部,这个功能只有在DDR2以上的数据信号才有.而有了ODT功能,原本需要在PCB板上加串联电阻的数据信号就不需要再 ...

  5. PHP中exit()与die()的区别

    先思考一个问题: 如下代码会向页面显示什么? <?php die(123); ?> 曾经有段时间我一直认为 页面会显示 123,但实践结果告诉我,答案错了,页面一片空白! 一直不知道为什么 ...

  6. 芯片手册中常见的Die id

    什么是Die id? ~~~~~     今天查看INA3221的芯片手册,偶然间发现有个寄存器名称是DIE ID.DIE ID是个什么东西?死了的ID?立马就疑惑了,查询了一些资料,有了一些了解. ...

  7. EMCP/DDR中专业词汇(rank、bank、die、channel)的解析!

    这篇文章以前理解有误,现更正如下: 调试了这么久的emcp,对这些概念多少有点了解,但是始终有点模糊,欢迎交流! 首先把我的理解写下来: 要弄清楚rank和bank的概念,首先得搞清楚SDRAM. S ...

  8. [RK3399][Android7.1] 调试笔记 --- DDR中clock相关配置

    OS: Android 7.1 Board: Firefly-RK3399 Kernel: v4.4.55 把这个拎出来说是因为在调试ddr default rate的时候对这部分有些误区. dmc中 ...

  9. php中的or die,php or die() 语句,exit()

    or在这里是这样理解的,因为在PHP中并不区分数据类型,所以$file既可以是int也可以bool,所以这样的语句不会报错.但其处理过程可能有些朋友不大明白. 其实在大多数的语言中, bool or ...

最新文章

  1. delphi SAP
  2. 3大常见光伏加盟骗局大起底
  3. java程序怎么都不是一个_java运行的流程-怎么运行java程序编了一个程序不知道怎么运行郁闷啊后缀文件名是 爱问知识人...
  4. 25岁,一位女程序员的幸运几年
  5. 计算机常用维护知识,电脑怎么维护?电脑日常维护小常识
  6. [Java] 蓝桥杯 BEGIN-4 入门训练 Fibonacci数列
  7. Anacoda 介绍、安装、环境切换
  8. Java实现穷举_LeetCode 28:实现strStr() Implement strStr()
  9. 内存泄漏检查工具 Visual Leak Detector(VLD)
  10. 电脑桌面天气计算机备忘录,有什么桌面软件可以显示:时间,天气,还有备忘录的?...
  11. 字符集编码(一):Unicode 之前
  12. 你需要的不是实时数仓 | 你需要的是一款强大的OLAP数据库(下)
  13. make config解惑
  14. matlab生成sinc函数,【 MATLAB 】sinc 函数简介
  15. 一睹64位Windows XP的芳容(也是从网上copy的,扫了一下,没有仔细看)
  16. centos7 串口配置修改_Linux串口参数设置
  17. DHCP Snooping IPSG
  18. 文本分类和聚类有什么区别
  19. AD18学习之画PCB时,如何移动器件同时导线跟随
  20. 颜色类中英文词汇大全(4)

热门文章

  1. 内存测试软件rst,RST内存检测软件使用方法.doc
  2. Netease Music Spider
  3. Boot Loader点点滴滴(转)
  4. 读书清单2【一篇装不下】
  5. PhpMyWind储存型XSS漏洞练习(CVE-2017-12984)
  6. 微信公众平台js算法逆向
  7. OpenJ_Bailian - 3468
  8. Powershell运行脚本异常:无法加载文件...因为在此系统上禁止运行脚本
  9. matlab 定义一个cell,未定义与 'cell' 类型的输入参数相对应的函数 'min'。
  10. 哈利波特AR游戏-巫师联盟 深度解析