硬件学习(第三章)

三、DDR3 SDRAM 

        DDR3 SDRAM 英 文 全 称 “ Double-Data-Rate Three Synchronous Dynamic Random Access Memory”,译为“第三代双倍速率同步动态随机存取内存”或“同步动态随机存器”,是动态随机存储器(Dynamic Random Access Memory,简称 DRAM)家族的一份子。 同步、动态、随机是其性能特点的外在说明,也是其区别其他存储器的特色标签。这三个概念性的标签,我们要好好理解掌握。 双倍速率(Double-Data-Rate):DDR3 SDRAM 存储器与 SDRAM 有一个很大的不同, DDR3 SDRAM 或者说带 DDR 开头的。包括 DDR1、DDR2、DDR3、DDR4、DDR4,他们都有一个很大的相似点,就是双边沿输出输入数据,通俗来讲就是在一个周期内输出 2 次 数据,上升沿输出一次数据,下降沿输出一次数据。而 SDRAM 则是在一个周期内的上升沿输出一次数据,下降沿不输出,所以同频率的 DDR3 SDRAM 与 SDRAM 相比速度快一 倍。

         同步(Synchronous):与通常的异步 DRAM 不同,DDR3 SDRAM 存在一个同步接口, 其工作时钟的时钟频率与对应控制器(CPU/FPGA)的时钟频率相同,并且 SDRAM 内部的命令发送与数据传输均以此时钟为基准,实现指令或数据的同步操作;

        动态(Dynamic):DDR3 SDRAM 需要不断的刷新来保证存储阵列内数据不丢失;

        随机(Random):数据在 DDR3 SDRAM 中并不是按照线性依次存储,而是可以自由指定地址进行数据的读写。 空间存储量大、读写速度快以及价格相对便宜等优点使其在存储界屹立不倒、经久不衰,广泛应用在计算机中。

        随着时代的不断发展、技术的不断更新,SDRAM 使用至今已过数十载,产品更新历经五代,分别是:第一代 SDR SDRAM,第二代 DDR SDRAM,第 三代 DDR2 SDRAM,第四代 DDR3 SDRAM,第五代,DDR4 SDRAM。 第一代 SDR SDRAM 采用单端时钟信号,SDRAM 只在时钟的上升沿进行数据采样; 而后面的四代 SDRAM 由于工作频率比较快,所以采用可降低干扰的差分时钟信号作为同步时钟,双沿采样,速度更快,且功耗更低。同时技术的不断发展、制造工艺的不断提高,使得五代 SDRAM 的更新过程中,集成度越来越高、内核电压越来越低

(SDR:3.3V、 DDR:2.5V、DDR2:1.8V、DDR3:1.5V、DDR4:1.2V),这也是 SDRAM 速度提高、功耗降低的重要原因。 经历多次更新换代,使得 SDRAM 速度越来越快,功耗越来越低,性能更加优良,但其内部架构相差无几。 任何事物的存在都具有有两面性,DDR3 SDRAM 因其空间存储量大、读写速度快以及价格相对便宜等优点使 DDR3 SDRAM 在存储界占有一席之地,但由于 DDR3 SDRAM 需要不断刷新来保证数据的可靠性,以及行列地址线分时复用等原因,使其对操作时序的要求较为严格,进而导致控制逻辑较为复杂。很多初学者在进行 DDR3 SDRAM 学习时, 被复杂的控制逻辑折磨的痛不欲生。希望读者紧跟步伐,认真学习,战胜 SDDR3 SDRAM。

3.1 DDR3 SDRAM 数据存取原理

        简单来说,DDR3 SDRAM 内部可以理解为一个存储阵列,这是 DDR3 SDRAM 区别于管道式存储,实现随机地址存取的结构特点。为方便读者理解,我们将 DDR3 SDRAM 内部存储阵列类比于一张表格,表格中的每一个单元格可以类比为存储阵列的单个存储单元。若想要实现存储阵列中的某一存储单元的数据读写操作,我们要通过行地址(Row Address)和列地址(Column Address)(先行后列)精确定位到这一存储单元,进而进行数据的读写操作,这就是所谓的随机地址存取。

DDR3 SDRAM 存储阵列类比图

        对于 DDR3 SDRAM,我们将类比于单元格的存储空间称之为存储单元,N(行列个数乘积)个 存储单元构成一个存储阵列,这个存储阵列我们称之为一个逻辑Bank(LogicalBank,简称 L-Bank、Bank)。DDR3 SDRAM 内部并不是一个全容量的 LBank,而是分割为若干个 L-Bank,目前大多为 4 个。

        若干 L-Bank 的分割,原因有二,一 是技术、成本等诸多因素;二是由于 DDR3 SDRAM 的工作原理限制,单一 L-Bank 可能会 造成非常严重的寻址冲突,大幅度降低内存效率。 这样一来,在对 DDR3 SDRAM 进行数据存取时,要先确定 L-Bank 地址,定位到指定逻辑 Bank,再依次确定行地址和列地址,选中存储单元,进而进行数据的存取操作,而且 一次只能对一个 L-Bank 的一个存储单元进行操作。 DDR3 SDRAM 的基本存储单位是存储单元,而一个存储单元的容量为若干个 Bit,对 于 DDR3 SDRAM 而言就是芯片的位宽,每个 Bit 存放于一个单独的存储体中,存储体是利用电容能够保持电荷以及可充放电的特性制成,主要由行选通三极管、列选通三极管、存储电容以及刷新放大器构成。电容所存储的电荷会随时间慢慢释放,这就需要不断刷新为电容充电,以保证存储数据可靠性。

存储体示意图

        将每个存储单元简化为单 Bit 的存储体,再将若干存储体排列为矩阵,同一行将行地 址线相连,同一列将列地址线相连,就构成了一个存储阵列的简化模型。

DDR3 SDRAM 内部存储阵列的简化模型

3.2 DDR3 SDRAM 器件引脚说明

        DDR3 SDRAM 作为一款存储芯片,有着较为复杂的操作时序,且输入输出信号较多,在进行 DDR3 SDRAM 操作指令和操作时序的学习之前,我们先对芯片的输入输出引脚、引脚功能以及内部功能框图做一下介绍。

DDR3 SDRAM 引脚示意图

        注:x4、x8、x16 分别表示位宽 4bit、8bit、16bit;#符号表示信号为低电平有效;短划线-表示 x8 和 x4 引脚功能相同,x16 引脚功能相同与前者不同,我们的是 x16。 由于 DDR3 SDRAM 在容量、位宽以及生产厂家存在差异,所以 DDR3 SDRAM 在 Bank 地址、地址总线、数据总线和数据掩码可能存在位宽的差异,但各输入输出管脚的名称和实现功能并无出入。针对其中较为重要的输入输出引脚,我们以镁光公司生产的、容量为 4Meg x 16 x 4Banks 的 DDR3 SDRAM 芯片为例,对其做一下功能介绍。

DDR3 SDRAM 引脚功能描述

        注:表格中某些信号只介绍了后文设计实验中所涉及到的功能,更多功能介绍请查阅 芯片对应数据手册。 上文中对 DDR3 SDRAM 各引脚进行了简要功能描述,接下来简单说明一下 DDR3 SDRAM 内部功能框图。

DDR3 SDRAM 内部功能框图

        DDR3 SDRAM 内部包含一个逻辑控制单元,内部包含模式寄存器和命令解码器。外部通过 CS_N、RAC_N、CAS_N、WE_N 以及地址总线向逻辑控制单元输入命令,命令经过命令解码器进行译码后,将控制参数保存到模式寄存器中,逻辑控制单元进而控制逻辑运行。 外部通过地址总线输入地址信息,地址信息在逻辑控制单元进行逻辑控制时起到辅助作用,除此之外,复用的地址总线与 Bank 控制逻辑、行地址复用器、列地址计数锁存 、列地址解码器等内部器件共同作用,精确选定存储阵列中与行列地址相对应的存储单元,进而进行数据存取操作。

3.3DDR3 SDRAM 的存储容量与速度等级

        DDR3 SDRAM 的容量是如何计算的?以及各参数之间的关系又是什么? 那么接下来,我们就以镁光公司生产的 3 款 DDR3 SDRAM 芯片为例,为读者说明一下 DDR3 SDRAM 芯片存储容量相关参数含义,以及存储容量计算方法。

SDRAM 存储容量参数截图

        图中列举了镁光公司的 3 款 DDR3 SDRAM 芯片,我们挑选其中一款进行容量计数方法的介绍。例“MT41J64M16”,由图可知,“Micron”“MT41J64M16”分别表示此 DDR3 SDRAM 芯片的生产商和产品型号。“8Meg×16×8Banks”才是表示 SDRAM 存储容量的具体参数,其中“8Meg”表示单个 L-Bank 包含的存储单元的个数,计算方法为单个存储阵列行地址数和列地址数的乘积,以此芯片为例,行地址总线为 A0-A12,行地址位宽为13 位 ,行地址数为 8192(2^13)(8K) 行 , 列地址 位宽为10位 ,列地址数为1024(2^10)(1K)列,单个 L-Bank 中包含的存储单元个数为行地址数(8192)与列地址数(1024) 相乘,乘积为 8M(8K×1K=8M);“16”表示数据位宽,即每个存储单元存储数据的 bit 数;8Meg 与 16 相乘表示单个 L-Bank 中可存储的 Bit 数;“8BANKS”表示一片 SDRAM 中包含的 L-Bank 个数,此 DDR3 SDRAM 芯片包含 8 个 L-Bank;由此可得 DDR3 SDRAM 芯片的存储容量为:1024MBit(8Meg×16×8BANKS)。 容量计算方法可简化为: 存储容量(Bit)=L-Bank 存储单元数×数据位宽(Bit)×L-Bank 个数同理,读者可根据此计算方法计算其他 SDRAM 芯片的存储容量。

        接下来我们来说明一下 DDR3 SDRAM 芯片的另一个概念:速度等级。

DDR3 SDRAM 速度等级相关参数截图

        列举了包括速度等级在内的 6 个相关参数。时钟频率(Clock Frequency),单位 MHz,所列举的具体参数为 SDRAM 正常工作的最高时钟频率,SDRAM 工作时只能等于或低于这一时钟频率;tRCD 表示写入自激活命令到开始进行数据读写,中间所需的等待时间,列举的数值表示等待时间的最小值,单位为 ns;tRP 表示自预充电指令写入到预充电完成 所 需 的 等 待 时 间 , 列 举 的 数 值 表 示 等 待 时 间 的 最 小 值 , 单 位 为 ns ; CL(CAS(READ)latency)列选通潜伏期,表示自数据读指令写入到第一个有效数据输出所需 等待时间,单位 ns;TargettRCD-tRP-CL 表示最大工作频率下,tRCD、tRP、CL 等待的最小时钟周期数。 根据以上说明的诸多参数的不同,相同型号的 DDR3 SDRAM 芯片被分为不同的速度等级。

(下一篇接着讲和DDR联系紧密的AXI总线协议)

  • 24
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值