当前位置:首页>科技 >内容

ddr3内存条是什么意思,一文探讨DDR3内存的具体特性和功能

2024-01-11 16:16:01科技漂亮的斑马

很多朋友对ddr3内存条是什么意思,一文探讨DDR3内存的具体特性和功能不是很了解,六月小编刚好整理了这方面的知识,今天就来带大家一探究竟

ddr3内存条是什么意思,一文探讨DDR3内存的具体特性和功能

很多朋友对ddr3内存条是什么意思,一文探讨DDR3内存的具体特性和功能不是很了解,六月小编刚好整理了这方面的知识,今天就来带大家一探究竟。

作者:Biswaprakash Navajeevan,万岁

为了实现一体化的用户体验,现在的设备支持的功能越来越多,使得各种接口承担了很大的数据流量压力。为了更高效地处理这些数据,提供高带宽的快速内存可以解决当前的燃眉之急。虽然有各种类型的存储器,但在通过高带宽数据传输接口提供大量动态随机存取存储器时,双倍数据速率(DDR)存储器仍然占主导地位。

这些类型的存储器被称为双倍数据速率存储器,因为与单倍数据速率存储器相比,它们可以在一个存储器时钟周期内传输数据两次,从而提供双倍的性能。

一般来说,DDR内存有多个存储体,包括交错的内存阵列和预取缓冲器。对于所有的数据传输,存储器地址可以分为存储体地址、行地址和列地址。DDR内存的性能优势主要体现在其预取架构和突发操作上。当存储器访问存储体的特定行时,预取缓冲器将获得一组相邻的数据字,然后在存储器时钟的每个边沿的I/O引脚上突发,而没有单独的列地址。

因此,预取缓冲器越大,带宽就越高。此外,还可以通过创建包含多个DDR存储芯片的模块来实现高带宽。

对于所有的数据传输,存储器地址可以分为存储体地址、行地址和列地址。DDR内存的性能优势主要体现在其预取架构和突发操作上。

在正常操作之前,DDR存储器必须上电并以预定义的方式初始化。在读/写操作之前,需要激活/打开存储体的特定行(基本上是激活和增强该行的信号)。在操作完成之后,如果不再需要访问该行,则可以预充电或关闭该行。DDR内存需要定期刷新,以便其内容不会丢失。

DDR存储器的预取缓冲器大小为2n(每个存储器访问周期2个数据字),DDR2存储器的预取缓冲器大小为4n(每个存储器访问周期4个数据字),DDR3存储器的预取缓冲器大小为8n(每个存储器访问周期8个数据字)。其中n是指I/O接口的大小,通常为4、8或16。这些预取计划的有效性主要受益于空间区域性的原理。了解了这些基础知识之后,我们再进一步讨论DDR3内存的具体特点和功能。DDR3内存

与DDR2内存相比,DDR3内存的性能大幅提升,主要体现在功耗进一步降低,能够以更高的时钟频率运行,以及采用8n预取结构,为数据传输提供了更高的带宽。通常DDR3存储器的工作电压为1.5V,存储器时钟频率为400MHz~800MHz,使每个管脚的数据传输速率达到800Mbps~1600Mbps。DDR3存储器可以在4位、8位和16位I/O接口上运行,支持的突发长度为每个存储器访问周期4或8个数据字。

DDR3内存和DDR2内存的重要特性对比如表1所示。

表DDR 3和DDR2内存的特性比较。除了上述特性改进外,DDR3内存还增加了一些DDR2内存不具备的特性:引入FLY_BY拓扑结构,向内存模块发送命令和地址信号,从而以更高的速度提供更好的信号完整性。支持写均衡和读均衡机制,以补偿FLY_BY拓扑引起的倾斜。

片内终结器(ODT)电路和输出驱动器通过使用专用的ZQ引脚和ZQ校准序列以及片内校准引擎进行验证。引入了特殊的复位引脚。支持低功耗增强特性。支持动态ODT特性,以提高写操作的信号完整性。以下章节将详细描述DDR3的上述新特性。飞越拓扑结构

DDR3内存具有较高的信号传输速率,因此需要一种新的拓扑结构来向不同的内存模块发送命令和控制信号。DDR2使用图1所示的T形拓扑,但由于容性负载限制,这种拓扑无法支持高信号传输速率和大量内存模块。

在T-拓扑中,信号在被发送到每个存储器模块之前将到达中心节点,这限制了走线长度改变的可能性,并且将走线长度限制到更短的路径。这种拓扑结构不能可靠地支持高信号传输速率,因为当存储器容量增加时,会出现多个短截线,信号可检测的容性负载也会增加。

图1:连接内存控制器和DDR2内存模块的T型拓扑图,其中命令/地址/时钟信号被发送到分支结构中的每个内存模块。

为了解决上述问题,DDR3存储器采用FLY_BY拓扑结构,将命令和地址信号串联到每个存储模块,并在末端配备合适的电阻。在这种拓扑中,信号可以以不同的间隔到达不同的存储模块,这可以延迟遇到存储模块的容性负载的时间。这样,通过减少容性负载,DDR3可以提供更高的信号传输速率,并在不影响数据速率的情况下提高存储系统的可扩展性。

图2给出了DDR3内存系统采用的FLY_BY拓扑结构。

图2:将内存控制器和DDR3内存模块连接在一起的FLY_BY拓扑结构图,其中各个内存模块共享以串联模式连接在一起的通用命令/地址/时钟信号线。

写入均衡

由于DDR3内存采用了FLY_BY拓扑结构,命令、地址和时钟信号与数据和选通信号会在不同时间到达不同的内存模块。为了解决这个问题,DDR3内存引入了整平技术,使各个内存模块接口的数据选通与时钟信号对齐。系统中各个内存模块的每一个数据字节都要进行整平操作。

写入均衡弥补了数据写入操作中内存模块界限处数据选通信号和时钟信号间的偏斜。在启动写入均衡机制前,需要向DDR3内存写入适当的模式寄存器值使其进入写入均衡模式。进入写入均衡模式后,内存模块便有了时钟信号和数据选通信号。

内存模块在其边界采样时钟信号,与观测到的数据选通信号进行对比,然后通过数据线将采样值(0/1)反馈给驱动实体,以便为下一个循环中的数据选通信号做延迟调整。这一流程反复进行,直到观测的反馈值从0跳变为1,这表明内存模块边界的时钟信号与数据选通信号对齐。

读取均衡

读取均衡主要解决数据读取操作中数据与选通信号之间的偏斜。为了支持此特性,DDR3内存中增加了一个多用途寄存器(MPR)。该寄存器中包含一个预先定义的数据模式,选中后就会在数据线上输出该模式的数据而非内存阵列中的普通数据。在启动读取均衡序列前,需要向DDR3内存中编入适当的模式寄存器值,使MPR数据成为输出数据。

之后,读取均衡机制启动,开始向内存模块发送READ命令,并试图通过优化调整数据选通信号的内部延迟来捕获预定义数据。反复重复此流程直到通过调整数据选通信号内部延迟而创建的窗口能够以最佳方式捕获到预先定义模式的数据。读写均衡特性仅涉及DDR3内存,DDR2内存不支持此类特性。

ZQ校准

为了提高信号完整性,并增强输出信号强度,DDR内存中引入了终端电阻和输出驱动器。而为了在温度和电压发生变化的情况下仍能保持信号完整性,就需要对这些终端电阻和输出驱动器进行定期校准。未经校准的终端电阻会直接影响信号质量,而调整不当的输出驱动器则会使有效信号跃迁偏离参考电平,从而导致数据和选通信号之间出现偏差。

如图3所示,这种偏差会缩短有效数据窗口,并降低数据传输的可靠性。

图3:因不等的数据选取脉冲(DQS)驱动使交叉点偏离中间水平而导致有效数据窗口缩短。

DDR2内存的输出驱动器一般置于芯片外,只在初始化过程中随机校准一次,因此这种被称为“片外驱动校准(OCD)”的校准序列仅用于校准片外输出驱动器。DDR2内存无法支持ODT校准模式。

为了保持更高的信号完整性,DDR3内存中引入ODT和片上输出驱动器。DDR3内存中新增了ZQ专用脚,在ZQ管脚与地面之间接有一个2401容差的外部参考电阻,便于进行校准。当内存模块收到ZQ校准命令时,片上校准引擎便启动校准序列。在DDR3内存的初始化阶段会进行初始ZQ校准,之后会定期进行短时ZQ校准,以补偿运行温度和电压漂移造成的信号波动。

动态ODT

为了提高数据总线上的信号完整性,DDR3内存中新增了一个特性,可以在不设置模式寄存器值的情况下修改ODT电阻。使能该特性后,一个不同的终端电阻值就会被写入到内存中。图4展示了在DDR3内存中使能该特性后,如何在写入操作中动态转换终端电阻,在这种情况下也无需再发送模式寄存器编程命令。

图4:使能DDR3内存模块的动态ODT阻配置特性后,在数据写入操作中该配置将终端电阻改为“RTT_Dyn”,待操作完成后,又将终端电阻恢复到“RTT_Nom”。

专用复位管脚

DDR3内存有一个专用的复位管脚,若出现错误情况会异步复位内存的内部状态。

低功耗模式

为了在不使用状态下节省电力,DDR3内存也与DDR2内存一样支持节电模式和自刷新模式。在自刷新模式下,DDR3内存可以在系统其他部分处于关闭状态时仍保证数据不丢失。在长时间不进行读取或写入动作时,把CKE信号置于低状态(LOW),可使内存进入节电模式,在这种情况下,内存不会保留任何数据。

内存进入节电模式后且所有的存储体都被预充电的状态被称为预充电节电模式;若在节电模式期间,任一存储体处于激活状态,则该状态被称为激活节电模式。把CKE信号置于高状态(HIGH)即可使内存退出节电模式。低功耗模式的转换由内存控制器管理,这样就可以按需使内存进入和退出低功耗模式,从而赋予设备更多的灵活性。

通常,DDR3内存会在收到相应命令后的一个内存时钟周期内进入所需的低功耗模式,并在满足必要条件的情况下退出该低功耗模式。根据JEDEC规范,DDR3-800型内存进入和退出节电模式的总时间最少应为7.5ns(欲了解更多详细信息,可参照DDR3JEDEC规范)。

高效DDR3内存控制器指南

为了更好地管理各类DDR3内存的特性,并提供一种简便的、带宽效率高的自动化方式来初始化和使用内存,我们需要一款高效DDR3内存控制器。内存控制器不仅能在上电后根据编程控制器参数自动初始化内存,还应该提供具有排队、优先级、仲裁和重新排序功能的高带宽接口以便在多个同步内存访问的情况下仍可实现对内存的高效松耦合访问。

一个典型的DDR3内存控制器子系统由以下几部分组成:

1.可满足各种内存访问请求的高带宽接口;

2.在内存初始化阶段用于控制器参数配置的寄存器访问端口;

3.由队列和内存命令处理引擎构成的核心控制器模块;

4.用于驱动输入内存操作到物理内存的物理接口;

5.依照DDR3协议将内存访问请求发送到内存的物理层;

6.用来维持内存接口适当电压等级的专用集成电路(ASIC)管脚校准逻辑。

以下各节将详细讲述上图中控制器的各个组件。

内存访问接口

为了响应外部系统访问内存的需求,DDR3内存控制器设有若干内存访问接口和控制器。为了有效地利用DDR3内存,内存访问接口应可支持高带宽和高频率操作,且多个内存访问接口的设置也可确保内存能够同时响应多个同步访问请求。除了进行读/写数据操作及使能该操作的内存位置地址,接口协议中还应包含访问请求实体和收到每个数据操作的回复机制等信息。

此外,为了充分利用DDR3内存的突发式特性,接口协议也要求为突发式。在多个访问接口共存的情况下,接口协议中应设置优先级字段来显示每个数据操作的优先级。

寄存器访问接口

有了寄存器访问接口,程序员就可以在上电期间为特定的DDR3内存初始化配置控制器参数。由于该接口并不一定要在高频率下运行,因此可依照具体要求使用。此外,寄存器访问接口可选支持误码指示,能够在程序员尝试编程一个无效控制器寄存器时发出误码指示。

核心控制模块

核心控制模块负责处理内存访问接口上的所有数据访问请求,在进行适当的格式调整后再把这些请求发送到内存物理层中,并最终到达内存。为了执行不同的任务,该模块可进一步细分为以下几个子模块:

a.内存访问接口块;

b.仲裁单元;

c.控制命令和读/写数据队列的排列逻辑队列;

d.命令处理单元。

内存访问接口块负责解码外部系统的内存访问请求,并将这些请求存储到其内部的先入先出(FIFO)中。数据访问请求可被分解为读/写命令和以优先级为序的各个数据。其中,读/写数据可以被存储在单独的专用FIFO中,在依据读/写操作的相关优先级进行仲裁后,与读/写数据相关的命令可以存储在一个命令FIFO中。

在接口接收到与某特定命令相关的误码时,可发出外部系统误码指示。读、写与命令FIFO的深度可根据接口上的流量进行配置。

仲裁单元负责从多个内存访问接口块中选择命令,然后将处理后的命令发送到命令队列中,并最终驱动至内存接口处。仲裁单元在筛选内存访问接口块中的命令时,可选择使用诸如循环优先级仲裁等适宜的仲裁方案。筛选出的命令会依据各源端口的优先级被划分成不同的优先级组;之后,一个优先级高的命令会被发送至命令队列。

在连续接收到高优先级命令的情况下,可以引入优先级组禁用功能来控制何时禁用特定优先级组,从而确保低优先级命令的执行。所有相关的优先级字段均支持用户自定义功能,用户可以根据需要调整这些字段值。

为了让大家更好地了解仲裁方案,我们假设某个核心控制模块中包含两个内存访问接口块(IF0,IF1),具有两个优先级组级别(PG0,PG1),如图5所示。

图5:一个核心控制模块仲裁方案的示例,该模块中有两个内存访问接口块(IF0,IF1)和两个优先级组级别。

假设IF0接收到了优先级为0的报文P00(P00,0)和优先级为1的报文P01(P01,1),IF1接收到了优先级为0的报文P10(P10,0)和优先级为1的报文P11(P11,1),考虑到端口间使用的循环优先级仲裁方案,报文会按照下述排序方法划分优先级组:

P00,0 - P10,0 - P01,1 - P11,1

由于优先级组0存储优先级为0的报文,优先级组1存储优先级为1的报文,所以报文P00,0和P10,0将被存储在优先级组0(PG0)中;报文P01,1和P11,1将被存储在优先级组1(PG1)中,如下所示:

PG0 - P00,0 and P10,0PG1 - P01,1 and P11,1

假设优先级组1(PG1)的权重高于优先级组0(PG0),且来自内存访问接口块0(IF0)的报文权重高于来自内存访问接口模块1(IF1)的报文,则优先级组中的报文将按以下次序出现在命令队列中:

P01,1 - P11,1 - P00,0 - P10,0

仲裁后的命令可被放入一个队列中进行重排序,以确保高效运行并避免冲突。可以根据需要设置一个重排序单元,探查队列中各命令是否存在可能的地址/源/数据冲突,然后根据命令类型和优先级对其进行重排序。

此外,还可以通过下述方式调整命令的排序,进而实现控制器的高效运行:允许在同一个存储体的不同行上运行不同命令,使命令能够访问不同的存储体;在选择的同一芯片上的读写命令间插入新的命令;允许在任何相反类型的命令出现前连续地执行读/写命令。程序员也可选择禁用重排序逻辑,这样命令就会按照其最初进入队列的顺序来执行。

重新排序后,可对命令队列中的命令做进一步处理,以最大限度地提高数据吞吐量。这一过程需要考虑到存储体的准备状态、读写操作中至少一次数据突发的可用性、总线周转时间以及命令间的各类冲突。为了确保没有低优先级命令无限期地停留在队列中,可以引入失效方案,在一个可编程的时间间隔后,提升这些命令的优先级。

内存物理接口

尽管在控制器和内存物理层之间可以使用自定义的物理接口,但我们仍建议使用DFI兼容接口。DFI兼容接口可为控制器和物理层间提供标准化接口,从而降低成本且便于再利用;DFI兼容接口还可减少针对某厂商的整合工作量,并可实现从FPGA原型到ASIC的无缝迁移。DFI兼容接口的另一显著特性可参见DFI规范。

内存物理层

该模块通过ASIC管脚连接到内存系统,并根据DDR3电气规范与协议规范将数据操作拖放到该模块。除了包含控制DDR3接口信号所必需的逻辑外,该模块还支持其他特性,诸如自动读写均衡,用于时序控制的DLL,以及控制内存进入或退出各种低功耗模式等。由于本文篇幅有限,有关内存物理层的更多详细信息可参考厂商的数据表。

管脚校准

DDR3内存控制器也可配置ASIC管脚校准逻辑,使内存接口上的电压等级维持在适当水平。该逻辑的使用方式类似于DDR2内存的OCD校准特性,通过维持电阻网络中上拉和下拉电阻的平衡,使内存接口的电压等级在不同运行条件下都保持在适当的水平。

调试内存控制器

为完成调试过程,可使用下述组件或特性:

1.可以在控制器上运行多个状态寄存器,更好地了解当前控制器的状态和命令执行情况,还可引入中断信号来指示外部系统发生的关键事件。

2.可以在内存物理层增加用来指示DLL状态的观测寄存器,有助于确认与时序相关的问题。

3.可以在内存物理层执行环回操作,这将能够在不影响其他内存组件的情况下,不必对整个DDR控制器进行编程即可测试连接正确性和数据眼图生成情况。

4.可以在控制器中执行ECC,以检测并纠正内存中的数据损坏。

结论

简而言之,我们可以清楚地看到,尽管对当前DDR2内存的连接拓扑和控制器特性集做了一些强制性改变,但与DDR2内存相比,DDR3内存有着更显著的性能优势。如今,DDR3标准为DDR4标准所取代,通过降低工作电压和增加内存时钟频率,DDR4标准可确保更加高效的运行。

此外,DDR4内存的典型工作电压为1.2V,支持的内存时钟频率范围为667MHz~1.6GHz,存储密度更高达16GB(DDR3内存仅为8GB),因而能够在改进能源经济性的基础上带来更高的性能。虽然DDR4是DDR内存标准最新最好的产物,但由于DDR4的普及率比较低,DDR3内存仍是目前最广泛应用的内存。

参考文献

JEDEC DDR3 SDRAM standard (JESD79-3F)

JEDEC DDR2 SDRAM standard (JESD79-2F)

http://www.rambus.com/us/technology/innovations/detail/flyby.html

http://www.design-reuse.com/articles/15699/ddr3-ddr2-interfacesmigration.html

http://en.wikipedia.org/wiki/DDR3_SDRAM

http://pdf.directindustry.com/pdf/elpida-memory/ddr3-sdrambrochure/34572-71260.html

www.elpida.com/pdfs/E0594E20.pdf

http://www.micron.com/products/dram/ddr3-to-ddr4hfy

以上知识分享希望能够帮助到大家!

声明本站所有作品图文均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系我们

Top