Memory SystemsCache, DRAM, Disk翻译学习DRAM部分(二)

7.2 Evolution of the DRAM Architecture 结构演变

       在1980年代和1990年代,传统的DRAM接口开始成为高性能和桌面系统的性能瓶颈。微处理器速度和性能的提高明显超过了DRAM芯片速度和性能的提高。因此,DRAM接口开始发展,并提出了许多革命性的提议[Przybylski 1996]。在大多数情况下,被认为是进化或革命的是提议的接口(微处理器访问DRAM的机制)。DRAM核心(即图7.3中显示的内容)基本上保持不变。

     图7.10显示了基本DRAM架构从有时钟到传统的异步再到快速页面模式(FPM)再到扩展数据输出(EDO)再到突发模式EDO(BEDO)再到同步(SDRAM)的演变过程。图中将每种DRAM都以内存阵列、感测放大器和列复用器(如果适用的话还包括其他组件)的方式进行了风格化表示。

       就第一个进化路径而言(从异步到SDRAM),这些变化主要是结构性的,从成本和物理实施的角度来看相对较小,并旨在提高吞吐量。自从SDRAM以来,DRAM行业提出了大量设计,我们将这些新的DRAM分为两类:一类是旨在减少延迟的,另一类是旨在提高吞吐量的。

FIGURE 7.10: DRAM架构的演变。对于最初的DRAM设计,由一个阵列、一块感测放大器块和一个列复用器组成,快速页面模式(FPM)设计增加了在多个列访问中保持感测放大器内容有效的能力。在FPM设计中,扩展数据输出(EDO)设计在列复用器之后增加了一个输出锁存器。在EDO设计中,突发模式EDO(BEDO)设计添加了一个可选地驱动列选择地址锁存器的计数器。在BEDO设计中,同步DRAM(SDRAM)设计添加了一个时钟信号,驱动了行选择和列选择电路(不仅仅是列选择地址锁存器)。
     

7.2.1 Structural Modifications Targeting Throughput 针对吞吐量的结构修改

     与传统的DRAM相比,FPM只是允许行在多个CAS命令之间保持打开,几乎不需要额外的电路。在此基础上,EDO改变了输出驱动器,使其成为输出锁存器,以便它们在总线上保持数据有效的时间更长。在此基础上,BEDO添加了一个内部计数器,驱动地址锁存器,因此如果所需地址与前一个CAS命令只有一位差异,内存控制器就不需要在每个CAS命令上向DRAM提供新地址。因此,在BEDO中,DRAM的列选择电路是由内部生成的信号驱动的,而不是由外部生成的信号;控制信号的源与其控制的电路在空间上和时间上都非常接近,这使电路的激活时序更加精确。最后,SDRAM进一步深化了这一观点,并通过时钟驱动所有内部电路(行选择、列选择、数据读取),而不是RAS和CAS strobe。以下段落将更详细地描述这一演变过程。

Clocked DRAM

最早的DRAM(1960年代到1970年代中期,在实际标准化之前)通常是有时钟的[Rhoden 2002, Sussman 2002, Padgett和Newman 1974];DRAM命令由定期的时钟信号驱动。图7.10以内存阵列、感测放大器和列复用器为基础,显示了一个风格化的DRAM。

The Conventional Asynchronous DRAM

在1970年代中期,DRAM开始采用大多数人熟悉的异步设计。与之前的有时钟版本一样,这些DRAM要求每次访问都要经过前面描述的所有步骤:对于每次访问,位线需要被预充电,行需要被激活,然后在行激活后读取列。即使微处理器希望请求之前请求过的相同数据行,仍然必须重复整个过程(行激活后跟列读取/写入)。一旦读取了列,行就被停用或关闭,并且位线被预充电。对于下一个请求,整个过程将被重复,即使连续两次请求相同的数据。按照惯例和电路设计,__RAS和__CAS必须同时上升。例如,不能在切换__CAS的同时保持__RAS低电平。图7.11说明了传统的异步DRAM的时序。

理解:传统的异步DRAM读取一次数据需要发一次行地址和列地址;读取完毕后立刻进行precharge状态。

FIGURE 7.11: Read timing for the asynchronous DRAM.

Fast Page Mode DRAM (FPM DRAM)

FPM DRAM实现了页模式,这是对传统DRAM的改进,在此模式中行地址保持不变,从感测放大器中读取多列数据。这只是解除了前面描述的限制:内存控制器可以在切换__CAS时保持__RAS低电平,从而在感测放大器中保持的数据中创建了一个事实上的缓存。感测放大器中保持的数据形成了一个可以相对快速访问的“打开页面”。这加速了对DRAM核心的同一行的连续访问,这在计算机系统中非常常见(该术语是引用局部性,表示通常在时间上相邻的内存请求也在内存地址空间上相邻,因此可能位于相同的DRAM行内)。图7.12显示了FPM读取的时序。

理解:FDM相对之前可以发送一次RAS,就可以读取多列数据,但是每次读取数据需要发送列地址。而且必须等数据发送完毕,才能发送列地址。

FIGURE 7.12: FPM read timing. The FPM allows the DRAM controller to hold a row constant and receive multiple columns in rapid succession.

Extended Data-Out DRAM (EDO DRAM)

EDO DRAM,有时称为超页模式DRAM,在FPM DRAM的输出驱动器上添加了一些晶体管,以在感测放大器和DRAM的输出引脚之间创建一个锁存器。这个锁存器保存输出引脚的状态,并允许____CAS快速取消,从而允许内存阵列更早地开始预充电。此外,输出路径中的锁存器还意味着相对于以前的DRAM架构,DRAM电路输出的数据在下一个时钟相位中保持更长时间有效(因此被称为“扩展数据输出”)。通过允许内存阵列更早地开始预充电,添加锁存器使EDO DRAM的运行速度比FPM DRAM更快。EDO使微处理器能够比FPM快至少10到15%的速度访问内存[Kinston 2000, Cuppu等人1999, 2001]。图7.13显示了EDO读取的时序。

理解:EDO在感应放大器之后加入了锁存器。这样就可以将输出保持住,这样就可以不用等读数据发送完成后,再进行precharge了;这样传输效率更快了。

FIGURE 7.13: EDO read timing. The output latch in EDO DRAM allows more overlap between column access and data transfer than in FPM.

Burst-Mode EDO DRAM (BEDO DRAM)

BEDO DRAM(Burst EDO DRAM)是指突发式扩展数据输出动态随机存取存储器。它被定位为EDO(扩展数据输出DRAM)之后的下一代DRAM。BEDO通过在每次向DRAM芯片发送新的列地址时从已激活的行中“突发”传输连续的数据块的概念进行改进。它增加了一个内部计数器,该计数器首先接受传入的地址,然后在每次__CAS(列地址选通)信号切换时递增该值,将递增的值驱动到列地址锁存器中。每次__CAS信号切换时,DRAM芯片将下一个连续的数据列发送到总线上。与以前的DRAM不同,以前的DRAM需要通过总线发送连续的列地址以响应每个微处理器请求,BEDO通过消除在连续地址之间发送外部地址信号的需要,消除了大量的时间不确定性,从而增加了从DRAM中读取数据的速率。实际上,与EDO DRAM相比,驱动输出总线的最小周期时间缩短了约30%,从而成比例地增加了带宽。图7.14显示了BEDO读取的时序图。

FIGURE 7.14: BEDO read timing. By driving the column-address latch from an internal counter rather than an external signal, the minimum cycle time for driving the output bus was reduced by roughly 30% over EDO.

IBM’s High-Speed Toggle Mode DRAM

IBM的“高速切换模式”(“toggle模式”)是一种高速DRAM接口,设计和制造于1980年代末,并于1990年2月在国际固态电路会议上展示[Kalter等人1990a]。1990年9月,IBM向JEDEC提出将切换模式作为下一代DRAM架构的选项(JC-42.3会议第55次会议纪要)。 切换模式在高速数据 strobe 的两个边沿上传输数据到DRAM并从DRAM传输数据,而不是在 strobe 的单个边沿上传输数据。对于当时而言,strobe 非常高速;Kalter在1990年报告了一个10纳秒的数据周期时间,即有效的100兆赫数据速率[Kalter等人1990b]。
     术语“toggle”可能源自其实现方式:为了获得正常数据速率的两倍,一个信号引脚会切换,这将导致DRAM在两个不同的(交织的)输出缓冲区之间切换,每个输出缓冲区都会以 strobe 速度的一半泵出数据[Kalter等人1990b]。按照向JEDEC提出的建议,它提供了每个内存访问的4位或8位数据的突发长度。
理解:提出双边沿采样的思想

Synchronous DRAM (SDRAM)

      传统、FPM和EDO DRAM由内存控制器异步控制。因此,理论上,内存延迟和数据切换速率可以是微处理器时钟周期的一小部分。更重要的是,使DRAM异步的因素是内存控制器的RAS和CAS信号直接控制DRAM内部的锁存器,并且这些信号可以随时到达DRAM的引脚。
     另一种选择是使DRAM接口同步化,以便请求只能在规则间隔到达。这允许DRAM内部的锁存器由内部时钟信号控制。主要好处类似于BEDO:通过将所有数据和控制传输与时钟信号关联,事件的时序变得更加可预测。这种方案具有更少的时序偏差。时序偏差的减少意味着系统可能在请求上实现更快的响应,从而提高吞吐量。
      同步DRAM的时序图如图7.15所示。与BEDO DRAM类似,SDRAM支持突发模式的概念;SDRAM设备具有一个可编程寄存器,用于保存突发长度。DRAM使用这个值来确定在连续周期内输出多少列;因此,SDRAM可以在每个请求的多个周期内返回多个字节。其中一个优点是消除了时序信号(即,切换减少了使用的命令带宽。SDRAM核心的基本架构与传统DRAM相同。
      在DRAM接口方面所做的渐进性变化,直到包括BEDO在内,成本相对较低,尤其是考虑到它们带来的收益:与传统设计相比,FPM基本上是免费的,EDO只是添加了一个锁存器,而BEDO添加了一个计数器和多路复用器。这些渐进性变化每一个都只增加了少量的逻辑,但每一个都在系统性能方面比前一代提高了多达30%[Cuppu等,1999年,2001年]。
       尽管在实施方面SDRAM代表了更大的成本,并且在相同的时钟速度下与BEDO相比没有性能改善,但其接口中存在源同步的数据 strobe(在这种情况下是全局时钟信号)允许SDRAM更容易地扩展到更高的切换速度,而不像早期的异步DRAM接口(如FPM和EDO)那样[注意,这个好处适用于任何带有源同步数据 strobe 信号的接口,无论接口是同步的还是异步的,因此,带有源同步数据 strobe 的异步突发模式DRAM可以像同步DRAM一样轻松扩展到更高的切换速度——可以看到IBM于1990年2月发布的工作100 MHz异步突发模式部件,它使用了一个专用引脚来传输源同步的数据 strobe [Kalter 1990a,b]。
FIGURE 7.15: SDR SDRAM read operation clock diagram (CAS-2).

7.2.2 Interface Modifications Targeting Throughput 针对吞吐量的接口修改

自从上世纪90年代中期出现SDRAM以来,似乎DRAM制造商已经提出了大量新颖的DRAM架构,试图使DRAM不再成为大宗商品[Dipert 2000]。竞争性设计大量涌现的一个原因是,我们似乎已经没有了像早期DRAM演进一样的“免费”思路。自从BEDO以来,没有提出任何架构能够以接近零成本提供30%的性能优势;所有的提案都相对昂贵。正如Dipert所建议的,目前还没有明显的领先者,因为许多方案似乎处于实现成本和实际性能提升之间的线性关系之中。随着时间的推移,市场很可能会决定胜出者;那些相对于实施成本提供亚线性性能增益的DRAM提案将被归类为零或接近零的市场份额。

Rambus DRAM (RDRAM, Concurrent RDRAM, and Direct RDRAM)

    Rambus DRAM (RDRAM)与传统的主内存非常不同。它使用的总线明显窄于传统总线,至少在最初的版本中,它不使用专用的地址、控制、数据和芯片选择总线部分。相反,该总线是完全复用的:地址、控制、数据和芯片选择信息都通过同一组电气导线传输,但在不同的时间。该总线宽度为1字节,工作频率为250 MHz,利用时钟的上升和下降沿传输数据,以达到理论峰值带宽为500 MB/s。事务在总线上使用分裂的请求/响应协议进行。数据包事务类似于网络的请求/响应对:首先发送一个包含完整地址(行地址和列地址)的地址/控制包,然后发送数据。不同的事务可能需要不同数量的周期,这取决于事务类型、数据在设备内的位置、通道上的设备数量等等。图7.16显示了一个具有任意延迟的典型读取事务。
FIGURE 7.16:兰博斯(Rambus)块大小为16的读取时钟图示。最初的兰博斯设计(来自1990年的专利申请)只有一个单一的总线,在数据和地址/控制之间进行多路复用。请求数据包分为六个“周期”,其中一个周期指的是一个时钟周期的一个节拍,而不是一个完整周期的一个周期。

      由于总线的设计——它是一根单一的总线,而不是由专用于不同功能的单独段组成的——在任何给定周期内只能有一个事务使用总线。这限制了总线的潜在并发性(即同时执行多个操作的能力)。由于这个限制,最初的RDRAM设计被认为不适合PC主内存市场[Przybylski 1996],因此在1990年代中期重新设计了接口以支持更多的并发性。

      具体来说,引入“Concurrent RDRAM”后,总线被划分为单独的地址、命令和数据段,类似于JEDEC风格的DRAM组织。总线的数据段仍然是1字节宽,但增加了1位的地址段和1位的控制段。通过拥有总线的三个单独且专用的段,可以在总线上执行潜在的三个单独的同时操作。这种划分和专用的安排简化了事务调度,并相应地提高了RDRAM的性能。请注意,在这一点上,Rambus还将时钟周期改为了四个时钟周期,称为八倍周期(octcycle)。图7.17显示了一个读取事务的时序图。

FIGURE 7.17:

Concurrent RDRAM读取操作。Concurrent RDRAM在快速时钟的两个边沿传输,并使用一个1字节的数据总线在数据和地址之间进行多路复用。

      “Concurrent”设计的少数限制之一是数据总线有时会携带一小段地址信息,因为1位地址位太窄。这一限制已经在Rambus最新的DRAM中解除。Concurrent RDRAM引入的分段排列已经延续到最新的RDRAM版本,称为“Direct RDRAM”,它将数据段的宽度增加到2字节,地址段的宽度增加到5位,控制段的宽度增加到3位。这些段仍然是分开的和专用的,类似于JEDEC风格的组织,而控制和地址段的宽度足够宽,以至于数据总线的数据段永远不需要携带除数据以外的任何内容,从而增加了通道上的数据吞吐量。总线操作速度也随着年份而改变,最新的设计速度是最初速度的两倍以上(总线频率为500 MHz)。

      直接RDRAM中的每个半行缓冲区在相邻的存储区之间共享,这意味着相邻的存储区不能同时处于活动状态。这种组织的结果是增加了行缓冲区未命中率,与每个存储区一个开放的行相比,但它通过减少行缓冲区占用的芯片面积,降低了成本,而不是16个完整的行缓冲区。图7.18显示了读取操作的时序图。

FIGURE 7.18: Direct Rambus read clock diagram. Direct RDRAMs transfer on both edges of a fast clock and use a 2-byte data bus dedicated to handling data only.

Double Data Rate DRAM (DDR SDRAM) 

终于到了DDR了

双倍数据速率(DDR)SDRAM是IBM高速切换模式的现代等效物。DDR通过在时钟的两个边沿(上升沿和下降沿)传输数据,从而将单倍数据速率SDRAM可用的数据带宽加倍,类似于切换模式的双边沿时钟方案。DDR SDRAM在所有其他特征上与单倍数据速率SDRAM非常相似。它们使用相同的信号传输技术、相同的接口规范以及DIMM载体上的相同引脚布局。然而,DDR SDRAM从SDRAM中读取和写入SDRAM阵列的内部传输分别为SDRAM的两倍。图7.19显示了CAS-2读取操作的时序图。

FIGURE 7.19:DDR SDRAM读取时序(CAS-2)。DDR SDRAM使用时钟和源同步数据闸门(DQS)来实现高数据速率。DQS由DRAM用于采样传入的写入数据;在DRAM读取时,通常被内存控制器忽略。

7.2.3 Structural Modifications Targeting Latency 针对延时做的结构性修改

以下的DRAM分支代表了降低DRAM部件延迟的尝试,方法要么是通过提高电路速度,要么是通过缓存等方式来改善平均延迟。

Virtual Channel Memory (VCDRAM)

    虚拟通道在DRAM上添加了一个大的SRAM缓存,用于缓冲可能在未来需要的大块数据(称为segments )。SRAM段缓存由内存控制器显式管理。这个设计在DRAM访问协议中增加了一个新步骤:行激活操作将数据页移入感应放大器;“prefetch” and “restore” 操作(分别为数据读取和数据写入)以一个段为单位在感应放大器和SRAM段缓存之间移动数据;列读取或写入操作在段缓存和输出缓冲区之间移动一列数据。除非应用程序需要的所有数据都适合于SRAM段缓存,否则这个额外的步骤会增加读取和写入操作的延迟。

理解:提出了prefetch和restore的概念。把数据先提前缓存在颗粒内部。

Enhanced SDRAM (ESDRAM)

类似于EDO DRAM,ESDRAM在DRAM核心中添加了一个SRAM锁存器,但是EDO将锁存器添加到列多路复用器之后,而ESDRAM将其添加到列多路复用器之前。因此,锁存器的宽度与DRAM页一样宽。尽管代价高昂,但这种方案允许更好地重叠活动。例如,它允许行预充电立即开始,而无需关闭行(行仍然在SRAM锁存器中处于活动状态)。此外,该方案允许一种写入绕过机制,即传入的写入可以在无需关闭当前活动行的情况下进行。这种功能对于写回高速缓存非常有用,因为在任何给定时间写入的数据不太可能与当前从DRAM中读取的数据位于同一行中。因此,处理此类写入会延迟对同一行的未来读取。在ESDRAM中,未来对同一行的读取不会延迟。

MoSys 1T-SRAM

MoSys(即Monolithic System Technology)创建了一个名为“1-transistor SRAM”的设计(实际上不太可能,但这个名字很引人注目)。他们的设计在一个非常快速的DRAM核心周围包装了一个SRAM接口,以创建一个与SRAM兼容的部件,接近了DRAM的存储和功耗特性,同时接近了SRAM的访问时间特性。快速的DRAM核心由大量独立的存储区组成;减小存储区的大小可以加快其访问时间,但增加存储区的数量会增加控制电路(从而增加成本),降低部件的有效密度。没有其他DRAM制造商像MoSys那样极端,以创建一个快速的核心,因此,MoSys DRAM是目前存在的最低延迟DRAM。但是,它的密度低,因此OEM尚未大规模在台式机系统中使用它。它的特点是高速嵌入式系统和游戏系统(例如,任天堂GameCube)

Reduced Latency DRAM (RLDRAM)

    降低延迟的DRAM(RLDRAM)是一种高速DRAM核心,它没有DIMM规范:必须在直接连接到内存控制器的环境中使用,例如位于主板上的专用区域。其制造商建议将其用作极大的芯片外缓存,可能位于内存层次结构中比任何SRAM缓存都更低的位置。与通过DIMM进行接口不同,直接与芯片进行接口降低了时钟偏差的潜力,因此该部件具有高速接口。

Fast Cycle DRAM (FCRAM)

Fujitsu’s 的快速周期RAM(FCRAM)通过将数据阵列分成子阵列之一来实现低延迟的数据访问,只有一个子阵列在行激活期间被驱动。这类似于减小数组的大小,因此对访问时间产生影响。数据阵列的子集由通过在行地址中添加更多位来指定,因此该机制本质上是将列地址的一部分放入行激活中(例如,将列选择功能的一部分移入行激活)。与RLDRAM不同,该部件具有DIMM规范,并且在所调查的DRAM部件中具有最高的DIMM带宽。

7.2.4 Rough Comparison of Recent DRAMs

后来的先进DRAM设计层出不穷,主要是因为有机会满足寻求高性能的市场需求,并且工程师显然已经耗尽了早期演进的设计思路,即相对廉价实施但能产生巨大性能优势的设计思路。DRAM行业倾向于构建最简单的设计来实现所需的优点。目前,在高性能设计领域,占主导地位的DRAM是DDR。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二哈哈黄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值