一文搞懂DDR内存原理(值得收藏)
转自:网络
内存(DRAM-Random Access Memory)作为当代数字系统最主要的核心部件之一,从各种终端设备到核心层数据处理 和存储设备,从各种消费类电子设备到社会各行业专用设备,是各种级别的 CPU 进行数据处理运算和缓存的不可或缺的周转“仓库”,一个强大的核心处理单元也必须配备一个高速运转的宽通路的数据访问和存储单元。
-ROM:只读存储器 - ROM 所存数据,一般是装入整机前事先写好的,整机工作过程中只能读出,ROM所存数据稳定,断电后所存数据也不会改变。
-RAM:随机存取存储器 (random access memory) - RAM 是与 CPU 直接交换数据的内部存储器,它可以随时读写,速度快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介,当电源关闭时 RAM 不能保留数据。
-DDR SDRAM 在系统时钟的上升沿和下降沿都可以进行数据传输 - DDR SDRAM在 SDRAM 的基础上发展而来,这种改进型的 DRAM和 SDRAM 是基本一样的,不同之处在于它可以在一个时钟读写两次数据,这样就使得数据传输速度加倍了,也是目前电脑中用得最多的内存,而且具有成本优势。DDR 已经发展至今已经进化到 DDR5,与 DDR4相比,DDR5 在强大的封装中带来了全新的架构。
近 20 多年来,DRAM也快速地从 20 世纪末期的 SDRAM 发展到 21 世纪 DDR RAM。在 21 世纪的前10 年,DDR标准主要是个人信息处理终端的代表设备----PC 和个人工作站类驱动,快速从 DDR1 演进到 DDR3。而近 10 年来,进入移动互联时代后海量数据爆发,AI 和深度学习以及 5G驱动,在个人信息终端上基本可以胜任的 DDR4标准,明显显得力不从心。今天 DDR5正在昂首阔步地配合以 PCIE5.0 32Gbps 为代表的第5代高速 I/O 数据传输走向最终的市场化。
下图展示的是内存 RAM 20多年来的发展和信号特点以及设计演进。
DDR是什么?
DDR的全拼是Double Data Rate SDRAM双倍数据速率同步动态随机存取内存, 主要用在电脑的内存。DDR的特点就是走线数量多,速度快,操作复杂,给测试和分析带来了很大的挑战。
目前DDR技术已经发展到了DDR5,性能更高,功耗更低,存储密度更高,芯片容量大幅提升,他的数据速率在3200-6400MT/s。
DDR本质上不需要提高时钟频率就能加倍提高SDRAM的速度,它允许在时钟的上升沿和下降沿读出数据,因而其速度是标准SDRAM的两倍,至于地址与控制信号则与传统SDRAM相同,仍在时钟上升沿进行数据判断。
DDR核心技术点就在于双沿传输和预取Prefetch.
DDR的频率包括核心频率,时钟频率和数据传输频率。核心频率就是内存的工作频率;DDR1内存的核心频率是和时钟频率相同的,到了DDR2和DDR3时才有了时钟频率的概念,就是将核心频率通过倍频技术得到的一个频率。数据传输频率就是传输数据的频率。
DDR内存原理
基本DDR subsystem架构图:DDRC +DDRphy +SDRAM颗粒,DDR IP一般包括DDR Controller和DDR PHY,内部涉及的内容包括但不限于以下几个方面:数据保序、仲裁、最优调度、协议状态机设计、防饿死机制、bypass通路、快速切频、DDR training
DDR工作原理
当时钟脉冲达到一定频率时,DDR存储器才开始工作,此后发生的就是“读-存-读”的过程。在此过程中,器件芯片会从主在取数据,然后与入数据在储区。当写入操作完成后,再从存储区中取出数据,並将其传输到处理器中,然后根据需要将数据处理,再把最终结果返回到主存。
DDR 的双倍数据传输率其实就是每个时钟周期内读写一次数据,即DDR芯片可以在每个时钟周期内分别完成“读-存”和“存-读”操作,从而提高存储器的传输效率。
DDR内存通过双倍数据速率的传输方式,结合多通道传输和数据校验等技术,提高了数据传输效率和可靠性。这使得 DDR 成为了计算机内存的主流技术。
内存芯片 - DDR内存模块中包含多个内存芯片,每个芯片有自己的存储单元。每个存储单元都有一个地址,用于在读取或写入数据时进行寻址。
数据总线 - DDR内存模块连接到计算机的内存控制器,通过数据总线进行数据传输。数据总线可以同时传输多个数据位,例如 64 位或 128位。
时钟信号 - DDR内存模块通过时钟信号进行同步操作。时钟信号用来控制数据的传输速率,每个时钟周期内有一个上升沿和一个下降沿。上升沿时,数据从内存芯片传输到数据总线;下降沿时,数据从数据总线传输到内存芯片。
预充电 - 在开始传输数据之前,DDR内存模块会先进行预充电操作。预充电是将存储单元中的电荷恢复到初始状态,以确保接下来的数据传输是准确的。
数据传输 - DDR 采用了多通道的数据传输方式,即同时传输多个数据位。这样可以在每个时钟周期内传输更多的数据。
DDR接口可传输控制、地址、时钟、选通和数据信号。如图所示,时钟、地址和控制信号从存储器控制器单向传输到 DDR芯片;选通和数据信号为双向传输。在读取操作中,选通和数据信号从DDR芯片传输到存储器控制器。在写入操作中,信号沿相反方向传输。随着数据传输速率的增加和信号幅度的降低,为了提高信号性能,时钟和选通信号采用差分信号,这样可以消除共模噪声。其他信号仍然在单端模式下操作,更容易受到噪声、串扰和干扰的影响。
存储器分类
存储器分为内部存储器(内存),外部存储器(外存),缓冲存储器(缓存)以及闪存这几个大类。
内存也称为主存储器,位于系统主机板上,可以同CPU直接进行信息交换。其主要特点是:运行速度快,容量小。
外存也称为辅助存储器,不能与CPU之间直接进行信息交换。其主要特点是:存取速度相对内存要慢得多,存储容量大。
内存与外存本质区别是,一个是内部运行提供缓存和处理的功能,也可以理解为协同处理的通道;而外存主要是针对储存文件、图片、视频、文字等信息的载体,也可以理解为储存空间。缓存就是数据交换的缓冲区 (称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。由于缓存的运行速度比内存快得多,故缓存的作用就是帮助硬件更快地运行。
闪存 (Flash Memory)是一种长寿命的非易失性的存储器,数据删除不是以单个的字节为单位而是以固定的区块为单位。闪存是电子可擦除只读存储器(EEPROM) 的变种,闪存与EEPROM不同的是,EEPROM能在字节水平上进行删除和重写而不是整个芯片擦写,而闪存的大部分芯片需要块擦除。由于其断电时仍能保存数据,闪存通常被用来保存设置信息,如在电脑的B1OS(基本程序)、PDA(个人数字助理)、数码相机中保存资料等。
如何计算DDR带宽?
SDRAM和DDR区别是什么?
DDR=双倍速率同步动态随机存储器,是内存的其中一种。DDR取消了主板与内存两个存储周期之间的时间间隔,每隔2个时钟脉冲周期传输一次数据,大大地缩短了存取时间,使存取速度提高百分之三十。
SDRAM是 "Synchronous Dynamic random access memory”的缩写,意思是“同步动态随机存储器”,就是我们平时所说的“同步内存”。从理论上说,SDRAM与CPU频率同步,共享一个时钟周期。SDRAM内含两个交错的存储阵列,当CPU从一个存储阵列访问数据的同时,另一个已准备好读写数据,通过两个存储阵列的紧密切换,读取效率得到成倍提高。
DDR是SDRAM的更新换代产品,采用5伏工作电压,允许在时钟脉冲的上升沿和下降沿传输数据,这样不需要提高时钟的频率就能加倍提高SDRAM的速度,并具有比SDRAM多一倍的传输速率和内存带宽。
DDR4和DDR5的性能差距?
作为当前市场主流的 DDR4标准和业界正在集中攻关的 DDR5标准,对比有何差异呢?
如下表所列,从芯片开发到电路系统设计角度来看相比,DDR5 为了实现更高带宽和吞吐量进一步提升读写速率和改变通道架构以及猝发读写长度,目前规划的最高速率达 8400M T/s。
为了实现更低功耗和电源管理 I/O 电压降到 1.1V,并在 DIMM 条上完成电源管理工作以实现更高 的电源效率(主要是缩短电源传输路径以降低损耗和减小潜在的干扰)。为了提高数据带宽,不仅 提升速率同时采用双通道架构,提升读写效率,采用双通道 32 data + 8 ECC,Burst Length 也从 4/8 提高到 8/16,最后还支持更高容量的 DRAM 器件,从 DDR4 16 Gb 加倍到 32 Gb。总之,DDR5 作为业界备受期望的第 5 代 I/O 的内部数据共享和传输标准将与 PCI Express 5.0 乃至 6.0 等高速接口标准一起重塑 iABC 时代的大数据流的高速公路。
1.1 速率的提升
近年来,内存与CPU性能发展之间的剪刀差越来越大,对内存带宽的需求日益迫切。DDR4在1.6GHz的时钟频率下最高可达 3.2 GT/s的传输速率,最初的 DDR5则将带宽提高了 50%,达到 4.8 GT/s传输速率。DDR5 内存的数据传输速率最终将会达到 8.4 GT/s。
1.2 电压的降低
降低工作电压(VDD),有助于抵消高速运行带来的功耗增加。在 DDR5 DRAM 中,寄存时钟驱动器 (RCD) 电压从 1.2 V 降至 1.1 V。命令/地址 (CA) 信号从 SSTL 变为 PODL,其优点是当引脚处于高电平状态时不会消耗静态功率。
1.3 DIMM新电源架构
使用 DDR5 DIMM 时,电源管理将从主板转移到 DIMM 本身。DDR5 DIMM 将在 DIMM 上安装一个 12 V 电源管理集成电路(PMIC),使系统电源负载的颗粒度更细。PMIC 分配1.1 V VDD 电源,通过更好地在 DIMM 上控制电源,有助于改善信号完整性和噪音。
1.4 DIMM通道架构
DDR4 DIMM 具有 72 位总线,由 64 个数据位和 8 个 ECC 位组成。在 DDR5 中,每个 DIMM 都有两个通道。每个通道宽 40 位,32 个数据位和 8 个 ECC 位。虽然数据宽度相同(共 64 位),但两个较小的独立通道提高了内存访问效率。因此,使用 DDR5 不仅能提高速度,还能通过更高的效率放大更高的传输速率。
1.5 更长的突发长度
DDR4 的突发长度为4或者8。对于 DDR5,突发长度将扩展到8和16,以增加突发有效载荷。突发长度为16(BL16),允许单个突发访问 64 字节的数据,这是典型的 CPU 高速缓存行大小。它只需使用两个独立通道中的一个通道即可实现这一功能。这极大地提高了并发性,并且通过两个通道提高了内存效率。
1.6 更大容量的 DRAM
DDR4 在单芯片封装(SDP)中的最大容量为16 Gb DRAM。而DDR5的单芯片封装最大容量可达64 Gb,组建的DIMM 容量则翻了两番,达到惊人的 256 GB。
DDR5主要特点
从物理层信号角度来看,DDR5主要有如下特点:
1.采用分离式全速率时钟,对应 6400M T/s 频率最高达 3.2GHz。
DDR术语
DDR - Double Data Rate 双倍速率
SDRAM - Synchronous Dynamic Random Access Memory的缩写,即同步动态随机存取存储器。
DDR SDRAM - Double Data Rate SDRAM的缩写,是双倍速率同步动态随机存储器的意思。
Channel - 简单理解一个通道对应一个DDR控制器,每个通道拥有一组地址线、控制线和数据线
DIMM - DIMM全称Dual-Inline-Memory-Modules,中文名叫双列直插式存储模块,是指奔腾CPU推出后出现的新型内存条,它提供了64位的数据通道。是主板上的一个内存插槽,一个channel可以包含多个DIMM。
Rank - 一组可以被一个内存通道同时访问的芯片组合称作一个rank,一个rank中的每个芯片都共用内存通道提供的地址线、控制线和数据线,同时每个芯片都提供一组输出线,这些输出线组合起来就是内存条的输出线。简单来说rank是一组内存芯片集合,当芯片位宽*芯片数=64bit(内存总位宽)时,这些芯片组成一个Rank,存储64bit的数据。一般每个芯片位宽是8bit,然后内存条每面8个芯片,那么每面就构成了一个Rank,这两面的Rank通过一根地址线来区分当前要访问的是哪一面。同一个Rank中所有的芯片协作来读取一个地址(1个Rank,8个芯片*8bit=64bit),这个地址的不同bit,每8个一组分散在这个Rank上的不同芯片上。设计Rank的原因是为了减少每个芯片的位宽(在CPU总位宽确定的前提下,比如64bit),降低复杂度。
Chip - 是内存条上的一个芯片,由多个bank组成,大多数是4bit/8bit/16bit,多个chip做成一个rank,配合完成一次访问的位宽。
Bank - 是一个逻辑上的概念。一个bank可以分散到多个chip上,一个chip也可以包含多个bank。DDR4以前是没有Bank Group的,所以该值就表示整个颗粒中Bank数量。但是在DDR4和DDR5中,就表示每个Bank Group中Bank的数量,整个颗粒Bank数量 = Bank Group * Bank。
Row、Column组成的memory array - 可以简单的理解bank为一个二维bit类型的数组。每个bank对应一个bit,8个bank组成8bit的数据。
Voltage(VDDQ)- 存储芯片(颗粒)的输出缓冲供电电压。
Device Width - 颗粒位宽,常见为4/8/16bit。一个Memory Array中由行地址和列地址的交叉选中一个位,若2个Array叠加在一起,就同时选中了2个Bit,位宽是X2。若4个Array叠加到一起,就能够同时选中4个Bit,位宽则是X4。也就是说,对一个X4位宽的DDR 颗粒,如果给出行地址和列地址,就会同时输出4个Bit到DQ(数据输入、输出:双向数据总线)数据线上。
Die Density - 颗粒密度,也就是容量,随着DDR迭代,容量越来越大。
Data rates - MT/s指每秒传输多少个数据(Mega-transfer per second),和时钟频率是两个不同的概念。DDR(dual data rate)是双边沿传输数据。因此MT/s是IO时钟频率的两倍。
Prefetch - 在一个时钟周期中,同时将相邻列地址的数据一起取出来,并行取出DRAM数据,再由列地址0/1/2(DDR1使用列0,DDR2使用列0和列1,DDR3/DDR4使用列0,1和2)选择输出。2n/4n/8n。这里的数字指的就是并行取出的位数。这里的n,就是DQ位宽,即上面的device width(x4/x8/x16)。所以DDR3 16bit SDRAM内存颗粒,16bit指的是位宽,其一次读写访问的数据量是8*16=128bit
Bank Group - Bank分组数量,该特性只存在于DDR4和DDR5中
Burst Length - 指突发长度,突发是指在同一行中相邻的存储单元连续进行数据传输的方式,连续传输所涉及到存储单元(列)的数量就是突发长度,在DDR SDRAM中指连续传输的周期数。一般对应预取bit数目。
Core frequency - 颗粒核心频率,即内存cell阵列的工作频率,它读取数据到IO Buffer的频率。它是内存频率的基础,其他频率都是在该频率的基础上得出来的。
IO clk Frequency - 内存的数据传输速率。它和内存的prefetch有关。对于DDR,一个时钟周期的上升沿和下降沿都在传输数据,即一个时钟周期传输2bit的数据,所以DDR的prefetch为2bit。对于DDR2,IO时钟频率是其核心频率的两倍,同时也是双沿传输数据,因此DDR2的prefetch为2×2bit=4bit。对于DDR3,IO时钟频率是其核心频率的四倍,同时也是双沿传输数据,因此DDR3的prefetch为4×2bit=8bit。
Arbitration CMD priority - 仲裁器,仲裁CMD的优先级。会对来自各端口的请求进行仲裁,并将请求发送给控制器,仲裁其从端口收到的每个事务,每个事务都有一个相对应的优先级。端口仲裁逻辑会根据优先级进行处理,从而确定如何向控制器发出请求。以Cadence Denali内存控制器为例,它有几种仲裁策略:
Round Robin - 每个端口对应一个独立的计数器,当端口上有请求被接受的时候,计数器就会增加,然后仲裁器会针对计数器非0的端口的请求进行轮流仲裁,每仲裁执行一次,相应端口的计数器减一,直到端口接受请求计数器变为0。
带宽分配/优先级轮流操作 - 结合轮流操作、优先级、带宽和端口带宽保持等,根据用户分配的命令优先级,将传入的命令按优先级分组。在每个优先级组内,仲裁器评估请求的端口、命令队列和请求的优先级,从而确定优先级。当控制器繁忙时,超过其带宽分配的端口,可能会接受较低的优先级服务。
加权优先级循环 - 是一种面向服务质量的算法,结合了循环操作、优先级、相对优先级、端口排序的功能。根据命令的优先级或该类型命令的相关端口的优先级,将传入的命令分成优先级组。具有较高权重的端口可能会更频繁的接受仲裁,从而更容易被运行到
DDR SDRAM Control - DDR SDRAM的控制。包含了一个命令队列,接受来自仲裁器的命令。该命令队列使用一个重排算法来决定命令的放置顺序。重排逻辑遵循一些规则,通过考虑地址碰撞、源碰撞、数据碰撞、命令类型和优先级,来确定命令插入到命令队列的位置。重排逻辑还通过命令分组和bank分割,来提高控制器的效率。当命令进入命令队列后,选择逻辑扫描命令队列中的命令进行运行。若较高优先级的命令还没有准备好运行,较低优先级的命令不与命令队列中排在前面的命令冲突,那么这个较低优先级的命令,可以先于该没准备好的高优先级命令运行。此外,控制器还包含一个仲裁块,支持软件可编程接口、外部引脚及计数器的低功耗控制。另外,控制器支持调频功能,用户可以通过操作寄存器组,调整ddr的工作频率。
Transaction Processing - 事务处理用于处理命令队列中的命令。该逻辑会重排命令,使DRAM的读写带宽吞吐最大化。
微信扫码关注该文公众号作者