[]DRAM的架构历史和未来( 二 )


虽然内存库中还存在着更小的结构 , 但在本文中我不讨论它们 。借助所有先前的术语 , 我们现在可以讨论不同的DRAM类型和世代 , 以及它们如何相互改进 。再次 , 让我们首先从用于PC的常规DRAM模块开始 。
DRAM标准
常规DDR DRAM内存已经存在很长时间了 , 但是我不会为您提供完整的历史 。我将很快回顾单数据速率(SDR)存储器 , 然后再介绍双倍数据速率(DDR) 。关于SDR , 我们需要了解的是接口和数据总线的时钟(IO时钟)与内部存储器的频率(内部时钟)相同 。这种存储器会受导其内部存储器访问速度的限制 。
第一代DDR旨在在每个IO时钟周期内传输两个数据字 , 第一个字在时钟的上升沿 , 另一个在时钟的下降沿 。设计师通过引入预取的概念来做到这一点 。在DRAM bank和输出电路之间插入了一个预取缓冲器 。它是一个小型缓冲器 , 可以存储原始SDR设计中每个周期要放在总线上的位数的2倍 。如果是x8芯片 , 则预取缓冲区的大小为16位 。我们称其为2n 预取缓冲区 。在完整的DRAM row(例如2k column)的单个内部读取周期中 , 有足够多的数据来填充此预取缓冲区 。在该预取缓冲区中 , 有足够的数据在时钟的两个边沿上用一个字填充总线 。
DDR2采用了相同的预取思想 , 现在预取缓冲区为4n 。与内部时钟相比 , 这使设计人员可以将IO时钟加倍 , 并且仍然在每个周期将数据填充到数据总线中 。DDR3进一步推动了同样的想法 , 再次将预取(8n)和IO时钟加倍 , 现在是内部存储器时钟的4倍 。
[]DRAM的架构历史和未来
文章图片

文章图片

图2. DDR中的预取
但是 , 我们继续按照这种方法进行推进 , 存在着一定的局限性 。将预取缓冲区再加倍至16n , 则意味着对于每个读取命令 , 将有16倍64 bit向处理器传输 。这是高速缓存线路(用于处理器缓存的基本数据单元)的两倍大小 。如果只有一条高速缓存线路包含有用的数据 , 那么传输第二条高速缓存线路将会浪费大量的时间和精力 。因此 , DDR4没有将预取加倍 , 而是应用了另一种技术:存储体分组 。该技术引入了多组bank , 每组都有自己的8n预取缓冲器 , 通过一个多路复用器从正确的组中选择输出 。如果来自控制器的内存请求被交错 , 以便它们在连续的请求中访问不同的组 , 则IO速度可以再次加倍 , 现在是内部时钟速度的8倍 。
[]DRAM的架构历史和未来
文章图片

文章图片

图3:bank group
那么 , DDR5的下一步是什么呢?DDR5还旨在使IO速度提高一倍?嗯 , DDR5的目的是借用LPDDR4中已经实现的一种技术 , 我们称之为通道拆分 。64位总线分为2个独立的32位通道 。由于每个通道现在仅提供32 bit , 因此我们可以将预取增加到16n , 这将使得访问粒度达到64字节 , 正好等于高速缓存线的大小 。预取的增加再次允许更高的IO时钟速度 。
但提高IO时钟速度并不容易 。与高频信号有关的多个挑战已显现出来 , 例如信号完整性 , 噪声和功耗 。这些可以通过几种技术来解决 , 例如片上终止、差分时钟以及与处理器进行更紧密的内存集成(表1) 。这些技术主要源自其他DRAM类型 , 即LPDDR和GDDR , 但我将更加关注于集成 。
[]DRAM的架构历史和未来
文章图片

文章图片

表格1
LPDDR LPDDR代表低功耗双倍数据速率 。顾名思义 , 该标准的主要思想是降低内存的功耗 。这可以通过多种方式完成 。
常规内存的第一个区别是内存与处理器的连接方式 。LPDDR存储器与处理器紧密集成在一起 , 或者焊接在主板上 , 靠近CPU , 或者它直接在处理器(在这种情况下 , 通常是SoC)的顶部以 package-on-package封装的形式实现 , 这种形式越来越常见 。紧密的集成可减少将内存连接到处理器的长导线中的电阻 , 从而降低功耗 。


推荐阅读