个人主页:highman110
作者简介:一名硬件工程师,持续学习,不断记录,保持思考,输出干货内容
参考书籍:《Memory Systems - Cache, DRAM, Disk》
目录
以降低延时为目标的架构变化
VCDRAM
ESDRAM
MoSys 1T-SRAM
RLDRAM
FCDRAM
总结
接下来的几种DRAM是通过降低延迟来提升吞吐量的,提升方式为提高电路速度或增加缓存。
我们知道DRAM的访问速度是比不上SRAM的,如果在内存控制器和DRAM中间再加一道SRAM做为缓存,由于程序运行时对内存的访问呈现局部性(Locality)特征,有可能CPU两次访问需要的数据都已经缓存到SRAM中了,这时就不用去DRAM阵列中读了,直接从SRAM中取走,这和CPU的多级cache是一样的道理,此种办法显然可以从效果上达到降低DRAM访问延时的目的。虚拟通道内存VCDRAM就是引入了SRAM部件的DRAM,SRAM缓存了DRAM中的大量将来可能会用的数据块。这种DRAM的访存大体有三个场景:1、行激活,将一页数据输出到感应放大器;2、将数据在感应放大器和SRAM缓存之间移动,每次移动一整段数据(segment);3、将列数据在SRAM缓存和数据缓冲器之间移动。除非顶层应用需要的数据刚好在SRAM缓存中,否则这个额外的搬运步骤反而会增加了读写操作的延时。
增强型SDRAM,像EDO DRAM一样,ESDRAM在DRAM内部增加了一组SRAM锁存器,但是与EDO在列mux后级增加锁存器不同,ESDRAM将锁存器加在列mux前面。因此,这个锁存器与整页宽度一样。虽然代价很高,但是这种设计允许更高的操作并行度。例如,这种设计允许当前行数据还未被CPU取走之前就开始预充电(当前行数据在SRAM上仍然可以访问)。此外,该方案允许回写机制,由此传入写入可以在不需要关闭当前活动行的情况下进行。这样的功能对于回写缓存很有用,在回写缓存中,在任何给定时间写入的数据都不太可能与当前从DRAM读取的数据在同一行。因此,处理这样的写操作会延迟将来对同一行的读取。在ESDRAM中,将来对同一行的读取不会延迟。(这一段话读都读不通,百度翻译的,从个人理解来说,这个ESDRAM是增加了SRAM,VCDRAM也是增加了SRAM,只是增加的位置或者容量不一样,效果应该是差不多的)
MoSys(Monolithic System Technology)发明了一种使用单个晶体管的SRAM(1-transistor SRAM)(只是名称上这么定义,实际上做不到)。他们的设计将一个非常快的DRAM核心与SRAM接口组合,获得了一个兼容SRAM的器件,这个器件的存储和功耗与DRAM类似,同时访问速度与SRAM类似。设计中的快速DRAM核心是使用了非常多独立的bank实现:缩减bank大小会使得访问速度更快,但是控制电路的复杂度和成本会上升,同时存储密度也会被减小。没有哪个其他的DRAM制造商会极端到像MoSys一样去制造这样的内核,所以实际上MoSys DRAM是现存的访存延时最低的DRAM。但是存储密度非常低,以至于没有厂商将其大量应用于桌面系统中。其主要市场定位是高速嵌入式系统和游戏主机。
降低延迟DRAM是一个不适用于DIMM规格的快速DRAM,它必须把颗粒贴装在主板上。它的制造商建议把它当作一个大型的片外缓存,大概是处于内存层次结构中比所有SRAM缓存更低的位置。与DIMM不同,直连主控芯片可以降低时钟偏移,从而使得高速接口称为可能。
富士通的快速周期RAM通过将数据阵列分割成子阵列来实现低延迟数据访问,其中只有一个阵列会在行激活器件有效。这与缩减阵列大小类似,所以可减低访存延时。数据子阵列通过向行地址添加更多位来指定,因此该机制实质上是将部分列地址放入行激活中(例如把部分列选择功能放到行激活动作中去)。与RLDRAM不同,FCRAM可以兼容DIMM规格,同时在已介绍的DRAM中有最高的有效DIMM带宽。
DRAM架构的发展:原始DRAM设计由阵列、感测放大器和列多路复用器组成,在此基础上,快速页面模式(FPM)设计增加了在多列访问中保持感测放大器内容有效的能力。扩展数据输出(EDO)设计在FPM的基础上,在列多路复用器之后增加了一个输出锁存器。突发EDO(BEDO)设计在EDO基础上增加了一个计数器,可选地驱动列选择地址锁存器。同步DRAM(SDRAM)设计增加了一个时钟信号,驱动行选择和列选择电路(而不仅仅是列选择地址锁存器)。然后到DDR通过在时钟的双边沿(升沿和下降沿)传输数据以达到相对于单边沿SDRAM的双倍速率带宽。目前的桌面、嵌入式或服务器内存主流架构都是基于JEDEC DDR一代代发展而来,其他架构由于性能、成本等多种因素,逐渐被淘汰或仅用于少数特殊领域中。