内存速率翻倍史

2019-10-23 09:48:38 阅读量:


内存技术从SDR、DDR、DDR2、DDR3、DDR4一路发展而来,依靠Double Data Rate和Prefetch两项技术,实现了传输速度的成倍递增。实际上,无论是SDR还是DDR,其芯片内部的核心时钟基本上是保持一致的,关键在于它们的接口缓存、外部数据传输时钟频率和数据传输触发方式不同。那么,内存速率的持续翻倍究竟是如何实现的呢?让我们先来了解几个基本概念。

01基本概念
 
SDRAM(Synchronous Dynamic Random Access Memory,简称SDR),同步动态随机存储器。DDR SDRAM(Double Data Rate SDRAM,简称DDR),双倍速率同步动态随机存储器。主机内存发展到现在已经经历了五代,分别是:SDR、DDR、DDR2、DDR3、DDR4。

  • 同步:是指内存工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准;
  • 动态:是指存储阵列需要不断的刷新来保证数据不丢失;
  • 随机:是指数据不是线性依次存储,而是自由指定地址进行数据读写。
  • 外部数据总线:内存物理接口外部传输数据的总线;内部数据总线:内存物理接口至存储芯片引脚传输数据的总线。

02 SDR与DDR的区别

内存芯片与外设交互读取或写入数据时,数据传输分为了外部传输和内部传输,外部传输指的是数据在外设与内存物理接口缓存之间的传输过程,内部传输指的是数据在内存物理接口缓存与内存芯片引脚之间的传输过程。正如前文所提,SDR和DDR芯片内部的核心是保持一致的,那DDR是如何实现传输速度的成倍递增的呢?关键在于在DDR中引入了Double Data Rate技术和Prefetch技术。
 
Double Data Rate技术的使用,使得DDR数据外部传输速度提升了一倍。关键原因在于SDR的数据、地址乃至控制信号的锁存都有赖于唯一的内核时钟信号CLK(频率不可调),即外部数据传输和内部数据传输都需要通过CLK的上升沿采样确定,而DDR(DDR1)的外部数据传输则是在内核时钟信号CLK的上、下沿同时传输数据。
 
\
△  SDR与DDR数据传输过程
 
因此,SDR在一个时钟周期内只进行一次外部数据传输,即在时钟的上升沿到达时进行数据传输,并将数据(假设为8bit,下文均以外部数据总线为8位的假设做为参考,将不予备注)存于接口缓存中等待芯片内部数据传输的触发。而DDR则是一个时钟周期内进行两次外部数据传输,它能够在时钟的上升期和下降期各传输一次数据,并将两次传输的数据(16bit)存于接口缓存处。如此便实现了相同的总线频率下,DDR内存数据外部传输率是SDR的两倍。
 
\
△   SDR与DDR数据传输速度对比

Prefetch技术的使用,使得DDR内部数据传输速度提升了一倍。SDR在接口处有一个Output Buffer(缓存),数据通过外部数据总线到达Output Buffer,再由Output Buffer通过内部数据总线传输到实际存储单元中,此处的外部数据总线和内部数据总线位数都是8位,每个时钟周期内可以完成一次数据传输(8bit)。Prefetch实现在一个内核时钟周期内同时寻址多个存储单元,并将这些数据以并行的方式在实际内存单元与物理接口缓存之间统一传输。DDR在接口的Output Buffer与实际存储单元之间多增加了一个2Bit Prefetch(预取锁存器),这个2Bit Prefetch与Output Buffer之间是8位的数据传输总线,而2Bit Prefetch与存储单元之间却是16位的数据传输总线,可以理解为两组8位总线并发工作的结果。如此一来,DDR中Output Buffer在每个时钟上升沿或下降沿到来的时候都会存储一次数据(对应一个地址),而2Bit Prefetch在每个时钟周期内存储着对应于Output Buffer的两次读写(即两个地址)的数据,从而达到了存储速度翻倍的效果。

\

 
△   DDR数据传输过程
 
如图所示,以读取数据为例,在8位的DDR芯片中一次将2个8bit数据从实际存储单元传输到外部2Bit Prefetch存储单元之后,再分别在CLK时钟信号的上、下沿分两次将这2个8bit数据经Output Buffer传输给北桥或其他内存控制器,整个过程经历的时间恰好为一个内核时钟周期。

03 DDR、DDR2、DDR3、DDR4的演化
 
随着各类高速应用的不断发展,对主机内存也提出了更高的要求,为了进一步提高内存的外传速度,人们将芯片的内核时钟与外部接口时钟分开,通过增大外部时钟频率和Prefetch预取锁存位数,实现在同一内核时钟控制下提升内存存储速率的目的。
 
从DDR发展到DDR2,控制数据外部传输和内部传输的时钟分离,内核时钟依然保持CLK不变,外部时钟频率变为内核时钟的2倍,同时,2Bit Prefetch提升成4Bit Brefetch。
 
\
△  DDR2数据传输过程
 
如图所示,读取数据时,在CLK时钟信号上升沿的触发下,8位的DDR2芯片中一次将4个8bit数据从实际存储单元传输到外部4Bit Prefetch存储单元之后,再分别在外部时钟信号的上、下沿分四次将这4个8bit数据经Output Buffer传输给北桥或其他内存控制器,整个过程经历的时间恰好为一个内核时钟周期。如此,DDR2在DDR的基础上数据传输速率提升了一倍,即为SDR的4倍。
 
\
△   DDR与DDR2数据传输速度对比
 
DDR3、DDR4的读写方式和DDR2基本一致,都是采用外部时钟双沿进行数据缓存,通过增大外部时钟频率、Prefetch位宽以及Prefetch与实际内存单元之间的内部数据总线位数,达到提升存储效率的目的。DDR3在DDR2的基础上,将4Bit Prefetch提升成8Bit Brefetch,外部时钟频率提升为CLK的4倍;DDR4在DDR3的基础上,将8Bit Prefetch提升成16Bit Brefetch,外部时钟频率提升为CLK的8倍,原理与DDR发展到DDR2非常类似。