【DRAM存储器十六】DDR2介绍-DDR到DDR2的变化、DDR2框图详解、模式寄存器

本文主要是介绍【DRAM存储器十六】DDR2介绍-DDR到DDR2的变化、DDR2框图详解、模式寄存器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

👉个人主页:highman110

👉作者简介:一名硬件工程师,持续学习,不断记录,保持思考,输出干货内容 

参考资料:《镁光DDR数据手册》 

目录

DDR2 SDRAM介绍

DDR2相对DDR的变化

 DDR2 SDRAM芯片框图

DDR2 SDRAM的mode register


DDR2 SDRAM介绍

        到DDR2了,同样以镁光的数据手册为主要参考,我们来介绍它的主要特性以及相对DDR的新增功能和变化。

DDR2相对DDR的变化

        以上是镁光DDR2数据手册列出来的主要特性,下面逐条解释:

        1、VDD = 1.8V ±0.1V, VDDQ = 1.8V ±0.1V

        DDR2核心电压和IO电压均为1.8V,DDR为2.5V。

        2、JEDEC-standard 1.8V I/O (SSTL_18-compatible)

        DDR2 IO电平为SSTL_18,DDR为SSTL_2。

        3、Differential data strobe (DQS, DQS#) option

        DDR2 DQS为差分信号,DDR单端信号。

        4、4n-bit prefetch architecture

        DDR2为4n预取,DDR为2n。

        5、Duplicate output strobe (RDQS) option for x8

        RDQS,与DM功能复用,只有x8颗粒有此引脚定义,后面代数的DDR此引脚称为TDQS,主要用于x4和x8颗粒混用的场景,后面会介绍。

        6、DLL to align DQ and DQS transitions with CK

        使用DLL来使DQ和DQS与CK对齐传输,这个DDR2与DDR基本一样。

        7、8 internal banks for concurrent operation

        DDR2内部有8个bank可同时操作,DDR通常只有4个bank。

        8、Programmable CAS latency (CL)

        可编程CL,DDR的CL也可以编程。

        9、Posted CAS additive latency (AL)

        DDR2新增了CAS前移机制,这里产生了一个附加延迟,后面详细讲。

        10、WRITE latency = READ latency - 1tCK = AL + CL - 1tCK

        DDR2的WL相当于DDR中的tDQSS,只是DDR2由于CL可编程,相当于WL也可编程,DDR中的tDQSS是固定的。

        11、Selectable burst lengths (BL): 4 or 8

        DDR2突发长度可选4或8,DDR是2、4或8。为什么没有2了,前面将预取的时候解释过。

        12、Adjustable data-output drive strength

        DDR2的IO输出驱动强度可调,DDR是不可调的。

        13、64ms, 8192-cycle refresh

        刷新周期64ms,这个与DDR一致。

        14、On-die termination (ODT)

        DDR2新增支持片内终端匹配,DDR不支持。

 DDR2 SDRAM芯片框图

        上图绿框是DDR2相对DDR的主要区别,新增的ODT电路,另外bank数变为了8个,预取为4n预取,所以针对这个x8的颗粒,IO gating出来的总线宽度是32bit,然后用两个低位列地址COL0、COL1来控制MUX的输出先后顺序。其他的与DDR基本相同,就不多提了。

       把DDR的框图再贴出来一起对比:

DDR2 SDRAM的mode register

        DDR2的模式寄存器有四个:MR、EMR、EMR2、EMR3。

 

        与DDR相同的就不多说了,说一下差异点:

        Bit[11:9]:write recovery,写数据之后如果要进行预充电,则需要在数据完全写入后才能预充电,这段时间称为tWR,单位为ns,而这里的WR单位为tCK,其值等于tWR / tCK,四舍五入取整数。

        Bit12:PD mode,为0表示快速退出PD模式,这种情况下的PD需要DLL持续运行;为1表示缓慢退出PD模式,这种情况的PD DLL可以冻结,功耗能更低点。

        Bit0:使能或不使能DLL;

        Bit1:输出驱动强度配置;

        Bit2、Bit6:片上终端匹配电阻值配置;

        Bit[5:3]:CAS前置配置;

        Bit[9:7]:离线驱动调整,OCD的作用在于调整DQS与DQ之间的同步,以确保信号的完整与可靠性,让DQS的高低电平与DQ的高低电平更好地对齐。这是JEDEC规范定义的可选功能,镁光的这颗DDR2没有此功能,在初始化时先使能OCD default模式,初始化后需要配置为退出OCD模式。具体的OCD功能后面讲。

        Bit10:DQS差分信号使能,0表示使用差分信号,1表示使用单端信号;

        Bit11:RDQS使能,如果使能就是DQS功能,不使能就是DM功能。x8颗粒与x4颗粒的条子混用时,x8的条子要使能;

        Bit12:输出使能。

        Bit7:刷新率配置,JEDEC规范规定,如果Tc超过85度,则DDR的刷新率要翻倍,普通消费级刷新周期为64ms,工业级或汽车级的刷新周期为32ms。

        EMR3目前是预留的,初始化时需全部设为0。 

        今天先到这里,下篇介绍DDR2的主要技术。 

 

这篇关于【DRAM存储器十六】DDR2介绍-DDR到DDR2的变化、DDR2框图详解、模式寄存器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/205975

相关文章

C++ move 的作用详解及陷阱最佳实践

《C++move的作用详解及陷阱最佳实践》文章详细介绍了C++中的`std::move`函数的作用,包括为什么需要它、它的本质、典型使用场景、以及一些常见陷阱和最佳实践,感兴趣的朋友跟随小编一起看... 目录C++ move 的作用详解一、一句话总结二、为什么需要 move?C++98/03 的痛点⚡C++

MySQL中between and的基本用法、范围查询示例详解

《MySQL中betweenand的基本用法、范围查询示例详解》BETWEENAND操作符在MySQL中用于选择在两个值之间的数据,包括边界值,它支持数值和日期类型,示例展示了如何使用BETWEEN... 目录一、between and语法二、使用示例2.1、betwphpeen and数值查询2.2、be

python中的flask_sqlalchemy的使用及示例详解

《python中的flask_sqlalchemy的使用及示例详解》文章主要介绍了在使用SQLAlchemy创建模型实例时,通过元类动态创建实例的方式,并说明了如何在实例化时执行__init__方法,... 目录@orm.reconstructorSQLAlchemy的回滚关联其他模型数据库基本操作将数据添

Java中ArrayList与顺序表示例详解

《Java中ArrayList与顺序表示例详解》顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构,:本文主要介绍Java中ArrayList与... 目录前言一、Java集合框架核心接口与分类ArrayList二、顺序表数据结构中的顺序表三、常用代码手动

JAVA线程的周期及调度机制详解

《JAVA线程的周期及调度机制详解》Java线程的生命周期包括NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING和TERMINATED,线程调度依赖操作系统,采用抢占... 目录Java线程的生命周期线程状态转换示例代码JAVA线程调度机制优先级设置示例注意事项JAVA线程

详解C++ 存储二进制数据容器的几种方法

《详解C++存储二进制数据容器的几种方法》本文主要介绍了详解C++存储二进制数据容器,包括std::vector、std::array、std::string、std::bitset和std::ve... 目录1.std::vector<uint8_t>(最常用)特点:适用场景:示例:2.std::arra

C++构造函数中explicit详解

《C++构造函数中explicit详解》explicit关键字用于修饰单参数构造函数或可以看作单参数的构造函数,阻止编译器进行隐式类型转换或拷贝初始化,本文就来介绍explicit的使用,感兴趣的可以... 目录1. 什么是explicit2. 隐式转换的问题3.explicit的使用示例基本用法多参数构造

Android使用java实现网络连通性检查详解

《Android使用java实现网络连通性检查详解》这篇文章主要为大家详细介绍了Android使用java实现网络连通性检查的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录NetCheck.Java(可直接拷贝)使用示例(Activity/Fragment 内)权限要求

MyBatis中的两种参数传递类型详解(示例代码)

《MyBatis中的两种参数传递类型详解(示例代码)》文章介绍了MyBatis中传递多个参数的两种方式,使用Map和使用@Param注解或封装POJO,Map方式适用于动态、不固定的参数,但可读性和安... 目录✅ android方式一:使用Map<String, Object>✅ 方式二:使用@Param

Go语言实现桥接模式

《Go语言实现桥接模式》桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立地变化,本文就来介绍一下了Go语言实现桥接模式,感兴趣的可以了解一下... 目录简介核心概念为什么使用桥接模式?应用场景案例分析步骤一:定义实现接口步骤二:创建具体实现类步骤三:定义抽象类步骤四:创建扩展抽象类步