微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > PCB设计问答 > PCB设计学习讨论 > 预读取技术

预读取技术

时间:10-02 整理:3721RD 点击:

4-bit prefetch DDR 2提高带宽的关键技术

  现在的DRAM内部都采用4个bank的结构,每个bank由存储单元(cell)队列构成,存储单元队列通过行(row)和列(column)地址定位。让我们看看基本的内存读操作的工作流程:首先是命令和地址信息输入,经过地址解码器分解成bank(段)和Word(字)选择,Word选择就是行选择,之后是对存储单元进行再存储(Restore)和预充电(Precharge)。然后是Column(列)选择,到此为止存储单元(cell)已经被定位。存储单元的数据被输出到内部数据总线(Internal Data Bus),最后通过输出电路输出数据。

  从内存的读操作中可以了解到内存工作的几个瓶颈,它们分别是内存单元的再存储和预充电的延时,这个延迟属于bank内部的延迟,由于DRAM结构的限制这个延迟本身不太好解决。还有内部数据总线(Internal Data Bus)的频率限制,内部数据总线是连接DRAM颗粒中4个bank的总线,最后一个DRAM的瓶颈是输入/输出电路的延迟。


  对于内部数据总线频率较低的瓶颈,可以通过使用Prefetch(数据预取)架构来解决,举例来说PC133 SDRAM采用了管线突发架构(Pipeline)或者说是1bit Prefetch,因此它内部数据总线的频率是133MHz和数据输出端的数据传输率是一样的。DDR内存采用了2bit Prefetch技术,因此它输出端的数据传输率是内部数据总线频率的2倍,以DDR400为例,它的内部数据总线的频率是200MHz,而输出端的数据传输率达到了400MHz。
  我们知道DRAM内部存储单元的频率提高比较困难且成本较高,DDR333的核心频率已经达到了167MHz,为了解决外部数据传输率和核心速度之间的矛盾,DDR2采用了4bit Prefetch(数据预取架构),因此DDR2 400的核心频率仅为100MHz,DDR2 533的核心频率为133MHz,因此DDR2很好的解决了DRAM核心频率和外部数据传输频率之间的问题。
  从SDRAM开始,内存就可以和时钟同步,最初的SDRAM采用了管线架构(Pipeline architecture),首先是地址信号(Add)和时钟(CLK)同步,地址信号经过译码选取内存队列中相应的单元,内存队列中选中的数据通过内部数据总线输出到信号放大电路。SDRAM的信号输出部分也是和时钟信号同步的,这就好象一条连续的管线一样。由于全部操作都和时钟同步,因此也叫同步内存。
  DDR采用了2位预取(2-bit prefetch),也就是2:1的数据预取,2bit预取架构允许内部的队列(column)工作频率仅仅为外部数据传输频率的一半。在SDRAM中数据传输率完全参考时钟信号,因此数据传输率和时钟频率一样。DDR2采了4位预取(4-bit prefetch),这就是DDR2提高数据传输率的关键,可以在不提高内部存储阵列频率的情况下提高数据输出带宽,未来的DDR3还有现在的RDRAM采用了8位数据预取。
  相对于SDRAM,DDR扩展了原来SDRAM的设计。由于2bit Prefetch架构可以同存取两个bank的数据,使内部数据总线的带宽提高两倍,因此在内存的输出端可以在时钟信号的上升延和下降延传输数据,DDR的数据传输率是实际工作频率的两倍。DDR2通过使用4-bit预取架构来提高数据传输率,降低对内部bank频率的要求。采用4-bit prefetch架构使DDR2仅能使用两种数据突发传输长度(burst length),BL=4或BL=8。这个比较容易理解,因为DDR2一次存取4bit数据,所以数据突发长度也就成了4或8。
  下面是DDR2和DDR主要思想的区别,实际上,这两种内存的差别不仅仅在带宽上。
  除了带宽,这里还有一个重要的参数是延迟,就象我前面所说的,存储单元不会一直处于可用状态,因此它们要进行刷新操作。而且,即使存储单元可用,也不可能立即得到它的内存:这里还有其它类型的延迟,如设置行和列的地址,这此延迟都是不能避免的,它们由DRAM单元的本质所决定。
  让我们看看会有那些延迟,例如内存阵列工作的时钟组合是2-2-2,如果内存阵列在所有的方案中以相同的频率工作,那么所有的模组都具有同样的延迟(我是说PC100,DDR200,DDR2-400)。它们仅仅是带宽的区别。顺便提一下,2-2-2组合的含义是:CAS延迟,RAS到CAS的延迟和RAS预充电时间。第一个数字是取得列地址的延迟时间,第二个数字是行和列地址之间的延迟,第三个数字是存储单元充电时间,预充电实际上是对行数据进行读操作。
  但实际上,存储单元不会工作在相同的频率上,举例来说PC133就是一个使用非常普遍的SDRAM,它的DRAM单元工作在133MHz上。因此,DDR200虽然有着比PC133更高的带宽,但是它的相应延迟却更慢(内部阵列的工作频率仅100MHz),PC133的存储单元的频率要比DDR200存储单元的频率高33%。结果就是,DDR266才具有和PC133一样的延迟上的优势。
  今天我们也看到类似的情形,DDR200和DDR2-400具有相同的延迟,而后者具有高一倍的带宽。实际上,DDR2-400和DDR400具有相同的带宽,它们都是3.2GB/s,但是,DDR400的存储阵列工作频率是200MHz,而DDR2-400的存储阵列工作频率是100MHz,也就是说DDR2-400的延迟要高于DDR400。
  让我们来比较一下数字,以DDR400为例,我们通常设置2或者2.5个时钟延迟,有时是3。也就是10到15纳秒,对于DDR2-400,来计算一下它的延迟:核心工作在100MHz,具有2个时钟延迟,它意味着20ns的延迟,接口部分占用4个时钟延迟(不过接口工作的频率更高),结果就是DDR2模组的延迟将会是4-4-4个时钟周期,考虑到这里使用很低的核心频率,我们希望看到未来DDR2-400具有3-3-3的特征,但是即使如此,DDR2-400也是输给DDR400的。
  情况看上去有些荒谬,DDR2虽然能提供更大的带宽,具有潜在的优势,但是,DDR2初期的产品在性能上甚至落后于DDR。我们都知道,一样产品需要有其优势才能吸引购买者,那DDR2还有那些优势呢。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top