电子说
之前看有位朋友总结的它们接口的不同,那我就总结一下全面的异同吧,希望可以帮到大家!SDRAM在嵌入式乃至整个PC行业的地位毋庸置疑,虽然它比SRAM操作复杂,从某种程度上说又有着随机地址存取时性能下降的缺陷(甚至于DDR/DDR2又有着不支持单一地址访问的限制,分别至少2/4个地址同时访问)。但是,速度是王道,容量也是它的优势,这些特点是其它任何易失存储器无法媲美的,也是它存在的唯一理由(不好意思,说得有点绝对了~-~)。
SDRAM从SDR到DDR再到DDR2一路走来,又都产生了什么样的变化,又都在哪些方面进行了改进,带来了速度性能的进一步提升呢?带着这个疑问搜索了一些资料,也分别找来SDR/DDR/DDR2芯片的datasheet细细比对,也许用这篇文比较也无法完全说明白他们的迥异,但是至少特权同学希望通过这篇文章能够让大家对他们之间的区别有一个大概的认识,尤其一样对SDR SDRAM有过深入了解的网友,相信通过比较,对今后快速上手DDR/DDR2的操作就如抬腿再上一个台阶一样轻便。
这篇文章不谈具体的细节,只重点谈差异,DDR SDRAM的结构框图,这重点要来说为何DDR SDRAM虽然操作的时钟频率和SDR SDRAM一样,却能够在数据吞吐量上达到后者的两倍。也许你会不以为然,没错,DDR就是double data rata,不就是在SDR时钟单沿读写的基础上变成了DDR的时钟双沿读写嘛,速度这不就一下翻番了。很对,但是再往深入去,你思考过吗?难道DDR内部寻址时数据也是双沿读写么?非也DDR SDRAM外部的数据总线接口位宽,一般是8位或者16位。而它左边那个红圈里“X16/X32”则表示内部2-bit prefetch和实际存储单元间的位宽。那么从这里可以发现,实际上,DDR内部有着和SDR类似的结构,只不过在接口的output buffer与实际存储单元间多了一个2-bit prefetch。而这个2-bit prefetch与output buffer之间是X8/X16传输,但是它与存储单元之间却是X16/X32传输。你可以这样设想,在每次时钟的上升沿,2-bit prefetch存储着外部接口两次读写(即两个地址)的数据,而output buffer却是每个时钟的上升沿和下降沿都会读取一次数据(对应一个地址)。
理解了DDR的数据吞吐量提升的实质原因,在回头看看SDR的结构。如下面说接口的差异,左侧的DDR接口,右侧的SDR接口一般SDR接口有时钟信号CLK、控制信号CKE/CSn/RASn/CASn/WEn/DQM、地址总线AB(包括Block地址)、数据总线DB。而一比对DDR,在SDR的基础上多了什么?CKn(暂且认为CK对应前面的CLK,但实际使用中还是有所不同的)和DQS。
SDR的数据、地址乃至控制信号的锁存都有赖于唯一的时钟信号CLK,而DDR的数据总线DB的锁存时钟则是DQS,地址和控制信号的锁存时钟为CK/CKn,CK/CKn是一对差分输入的时钟信号。DQS锁存数据作为SDRAM的写入时钟时,由外部器件产生,并且和数据是中央对齐的;而作为SDRAM的读时钟时,是由SDRAM产生,并且和数据是沿对齐的。
再比较它们的电气特性,只说一点,SDR是3.3V器件,DDR是2.5V器件。
比较完DDR和SDR,再来说DDR2。找了几份DDR2的datasheet,都没有看到它的功能框图,但是从一些资料的描述中说道DDR2不同于DDR主要在于从2-bit prefetch提升到4-bit prefetch。那么从前面图1的叙述中我们不难推断从DDR到DDR2的性能再获提升的原因,和SDR到DDR有着异曲同工之妙。DDR2的读写方式和DDR基本一致,都是采用时钟双沿进行读写,DDR2的读写时序如图5所示。另外,也许SDRAM的时钟CLK可以差不多,但是DDR2的DQS速度可以达到DDR的两倍,这也就是它们的DQ/DQS操作时序一样的情况下,数据吞吐量却倍增的原因。
比对DDR与DDR2的接口,其实DDR2就多了一个DQSn,即DQS/DQSn为一对差分数据时钟,用差分时钟还是单独信号作为时钟是可以通过初始化寄存器时进行设置的。
最后还是比较电气特性,DDR2已经降到了1.8V,若要最大限度的提升速度,降低电压势在必行。
除了上面一些的比较,还有封装也是有讲究的,SDR/DDR还是以TSSOP为主,到DDR2就不得不全部改头换面升级为FBGA了,这其中不仅有体积的考虑,更多的是速度的需要和散热的要求。
这些不同点可能只是表象,真正的差别其实还是需要工程师们在具体操作过程中去比较和总结。
全部0条评论
快来发表一下你的评论吧 !