【SDRAM/DDR】 之六 从SDRAM到DDR2

【SDRAM/DDR】 之六 从SDRAM到DDR2

  • 升级的目的
    为了提升内存的数据传输速率:目前cpu的主频和I/O带宽都很高,内存带宽至少要和前端总线带宽同步,才不会影响cpu的处理能力,因而要提升内存的数据传输速率。

  • 升级的瓶颈
    内存带宽=位宽x频率
    位宽是指内存总线的宽度,频率是指数据传输的频率,而不是内存的工作频率,ddr时代前者是后者的2倍,而瓶颈在于内存单元的内部频率不能再提高,内存总线不能轻易增加;

  • 瓶颈产生的原因
    由于成本的考量,基本的DRAM架构仍是发展的基础,在这个基础上提升位宽和频率都有困难,如下:

    1. SDRAM中的‘S’,同步是指从存储阵列到外部数据总线的频率都是一致的;
    2. 内存的传输速度很难提升——它需要刷新,有操作频率的上限,也就是核心频率即存储阵列的频率很难提升;
    3. 外部数据总线的宽度——内存位宽已经增加到128bit,很难再提升,因为会带来高昂的成本和电磁干扰。
  • 升级方案
    研究人员打破了第一条SDRAM的特性,通过提升存储阵列到I/O缓存的位宽,提升外部数据总线的频率,避开了2,3两条限制。
    【SDRAM/DDR】 之六 从SDRAM到DDR2

从SDRAM到DDR

  1. SDRAM的‘S’表现在SDRAM的三个子系统——存储单元阵列,输入/输出子系统和电源/刷新电路中,存储单元阵列,输入/输出缓存都以相同的频率工作,如图中;
  2. DDR通过每个时钟周期传输两次数据:在时钟的上升沿和下降沿传输数据,将数据传输率提升到SDRAM的两倍;
  3. 外部频率升高了,加倍的数据从哪来呢?加宽内部总线的宽度,达到外部总线(buffer到控制器)的两倍,具体实现见下一节;
  4. 这就像存储单元使用一个很宽但是很慢的总线,但是当数据传输到控制器时用了一个较窄但是很快的总线;
  5. 这与之前说的瓶颈并不矛盾,只是巧妙地避开每个模块的限制。

从DDR到DDR2

  1. 与如何提升到DDR的思路基本一致;
  2. 加宽内部总线宽度;
  3. Buffer时钟周期加倍
  4. 仍采用双倍传输策略。

而这些提升具体是怎么实现的?——prefetch
加宽的内部总线,实现这个是通过多路复用,prefetch(数据预取)技术。
【SDRAM/DDR】 之六 从SDRAM到DDR2
SDRAM采用的是pipeline结构(管线突发结构),或者叫1bit prefetch,DDR2中采用2bit prefetch,从而实现上面描述的缓存到输出端的频率是内部数据总线的2倍;DDR2采用4bit prefetch,DDR3和DDR4都是8bit prefetch,如下图是一个DDR3的8bit prefetch;
【SDRAM/DDR】 之六 从SDRAM到DDR2
讲完这个,就接上了之前讲rank时挖的坑——rank实现8个bank同时读取就是靠prefetch技术啦。