热度 3
2017-9-27 19:18
11149 次阅读|
0 个评论
计算机以及手机系统性能的改善,不仅仅取决于 cpu 处理器主频的提升,还与 cpu 和内存之间的存取速度密切相关。 SDRAM: Synchronous Dynamic Random Access Memory, 同步动态随机存取存储器, 同步是指 Memory 工作需要同步时钟,内部命令的发送与数据的传输都以它为基准 ; 动态是指存储阵列需要不断的刷新来保证数据不丢失 ; 随机是指数据不是线性依次存储,而是由指定地址进行数据读写 。通常用来作为电脑的内存使用。 目前主存常用的是基于 SDRAM ( Synchronous DRAM )芯片技术的内存条,包括 DDR SDRAM 、 DDR2 SDRAM 和 DDR3 SDRAM , DDR4 以及即将推出的 DDR5 等。 第一把板斧 -- 提高工作频率来提速 可以说, SDR SDRAM 是理解后面所以 DDR 的基础,包括目前正在研究的 DDR5 。因此,我们可以从简单到复杂的来详细了解其中的核心技术。首先,看下图: 首先,来看上图。文章中大部分图片都是自己画的,一部分图片是借鉴了其他作者的思路。 DRAM Cell Array 是存放数据的单元,其作用是不断的与内存总线交换数据资料。每一颗内存芯片都有很多这样的单元。并且这个内存的工作频率是与连接它的总线的数据传输频率是一样的,一个时钟周期只传输一次数据。也就是说,如果其总线的传输速度是 50Mb ,那么这个内存单元的速度也是 50Mb 。 再看右边的部分,是说数据是在每个时钟的上升沿才进行传输,因此,内存的传输是同步的。然后,如果想提高 SDR 的速度,那么就得提高频率了,伴随频率的提高,传输速度同时也提高了。但是,一方面频率的提高必然伴随着能量的消耗,另一方面,每一个时钟周期只能传输 1b 的数据,效率未免低了一些,因此,第二把板斧应运而生了。 第二把板斧 — 双沿采样技术 第一种方案的问题在于,太多的内存单元要提高频率,代价太大。因此,需要另找突破口,也就是 DDR 的方案了, DDR 的传输数据是 SDR 的两倍,一个时钟周期传输两次数据,怎么实现的呢? 首先,看以下示意图: 对比上图 SDR 的方案,可以看出多了一个输入输出缓冲器,因为采用了双沿采样技术,也就是不仅在时钟的上升沿传输数据,而且在时钟的下降沿也会传输数据,因此变相的提升了系统的频率,使得整体传输数据也加倍了。 DDR SDRAM 在不提高时钟频率的情况下,使得数据传输率提高了一倍,相比与 SDR 采用了更多更先进的同步电路,采用了 DLL 技术提供数据选通信号对数据进行精确定位,由于采用了输入输出缓冲器,对两个内存单元使用相同的列地址线,这样可以同时访问,将数据从两个数据总线中传输,如此,整体系统的数据量就加倍了。虽然,相比于 SDR 速度得到了极大的提升,功耗也下降了,但是,并不是没有发展的空间,且看第三板斧。 第三把板斧 —buffer 频率倍增技术 技术再次提升集中体现在 DDR2 上。一句话总结就是虽然同样采用了在时钟的上升沿和下降沿传输数据的基本方法,但是 DDR2 拥有两倍于 DDR1 的内存预读取能力,也就是 4 bit 的数据预读取。技术原理如下图所示。 主要就是把缓冲器和总线的工作频率提高了一倍。频率提高一倍,带宽也就对应增加了,同时内存基本单元的频率并没有改变。由于 DDR2 的预读取能力相对预 DDR1 加倍了,换句话说, DDR2 内存每个时钟能够以 4 倍外部总线的速度读 / 写数据,并且能够以内部控制总线 4 倍的速度运行。举个例子,在同样 100MHz 的工作频率下, DDR 的实际频率为 200MHz ,而 DDR2 则可以达到 400MHz 。 DDR3 可以简单看作是 DDR2 的改进版,通过改进缓冲器,让其频率提升了四倍,也就是带宽增加倍四倍,同时内存单元的频率也就是核心频率还是没有变化的。通过双沿采样,相对于 DDR2 ,其预读取能力加倍了,也就是 DDR3 内存每个时钟周期能够以 8 倍外部总线的速度读写数据,每个时钟周期能够预读取 8 bit 的数据。在同样 100MHz 的工作频率下, DDR 的实际频率是 200 MHz ,而 DDR3 则达到了 800 MHz 。 第四把板斧 —Bank Group 点传技术 我并没有把 DDR4 归类到上面,因为在技术层面, DDR4 并不简简单单是 DDR3 的改进版。诚然, DDR4 最重要的使命依然是提高内存的频率和带宽,回头看 DDR—DDR2—DDR3 的整个发展历程,我们不难看出一直都是以提高数据的预存取为主要的性能提升手段。但是,到了 DDR4 ,数据的预取已经变得非常困难,同时,带来的延时也非常大,因此, DDR 的架构专家另辟蹊径,推出了 Bank Group 的设计。 相对于数据预取带来速度内存频率的提升, Bank Group 的架构设计更为精巧。简要说一下, DDR4 的中每个 Bank Group 可以独立读写数据,这样做的好处是让内部的数据吞吐量得到了大幅的提升,内存的等效频率得到了巨大的提升,可以同时读取大量的数据。虽然, DDR4 在架构上依然采用了与 DDR3 相同的 8 bit 预取,但是由于使用了 BANK GROUP 分组,可能是两个或者四个 BANK GROUP 的分组,由于 DDR4 允许每个 BANK GROUP 分组都可以独立的激活、读写和刷新操作,因此改进了内存整体效率与带宽。举个例子,如果内存内部设计了两个独立的 BANK GROUP ,那么相当于每次可以操作 16 bit 的数据,也就是内存的预取值就是 16 bit ;同理,如果是有四个独立的 BANK GROUP ,那么相当于每次可以操作 32 bit 的数据。