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

7.3 Modern-Day DRAM Standards 现在DRAM标准

DRAM是一种商品;从理论上讲,具有类似规格(宽度、容量、速度等级、接口等)的任何DRAM芯片或DIMM都等同于其他DRAM芯片或DIMM。管理此兼容性的标准制定机构是JEDEC,这个组织以前被称为联合电子器件工程委员会(Joint Electron Device Engineering Council)。根据最近的一项营销决策,该组织现在被称为“JEDEC”固态技术协会。在电子工业联盟(EIA)内工作,JEDEC涵盖了离散半导体器件和集成电路的标准化。这项工作是通过48个委员会及其下属的小委员会进行的;任何人都可以成为任何委员会的成员,因此任何个人或公司代表都可以帮助影响未来的标准。特别是,DRAM设备的标准化是由42.3小委员会(JC-42.3)完成的。

7.3.1 Salient Features of JEDEC’s SDRAM Technology

JEDEC的SDRAM使用了传统的DRAM系统组织,如前所描述,并在图7.6中进行了说明。有四种不同的总线,每种都根据其功能进行分类——在这种组织中,“存储器总线”实际上由单独的(1)数据、(2)地址、(3)控制和(4)芯片选择总线组成。除了在某些情况下,例如在未使用的地址总线线上发送控制信息之外,这些总线中的每一个都专用于处理其指定的功能。

(1)数据总线相对宽:在现代PC系统中,它的宽度为64位,在高性能系统中可以更宽。

(2)地址总线的宽度随着单个DRAM设备中存储的位数而增加;今天的典型地址总线大约有15位宽。

(3)控制总线由行和列 strobes、输出使能、时钟、时钟使能等信号组成,这些信号从内存控制器连接到系统中的每个DRAM。

(4)最后,有一个芯片选择网络,每个DRAM等级在系统中都使用一根唯一的线,因此与系统中的物理内存的最大数量成比例。芯片选择用于启用DRAM等级,从而使它们能够从总线上读取命令并读取/写入数据。

      SDRAM(同步动态随机存取存储器)与早期的异步DRAM之间的主要区别在于系统中有一个时钟信号,所有操作(命令和数据传输)都按时钟信号同步进行。而异步DRAM使用RAS和CAS信号作为触发信号,这些触发信号直接导致DRAM从总线上采样地址和/或数据。相比之下,SDRAM使用时钟作为触发信号,RAS和CAS信号只是命令,它们本身也会在总线上按时钟触发信号进行采样。之所以使用定期的自由运行时钟信号来同步传输,而不使用不太规则的RAS和CAS触发信号,是为了更容易实现更高的数据传输速率。当使用定期触发信号来同步传输时,可以减小时序不确定性,从而提高数据传输速率。

       需要注意的是,任何定期的定时信号都可以用来实现更高的数据速率,不一定需要自由运行的时钟 [Lee 2002, Rhoden 2002, Karabotsos 2002, Baker 2002, Macri 2002]。在DDR SDRAM中,在写请求的数据传输部分,时钟几乎被忽略不计:DRAM对传入的数据的取样不是根据时钟进行的,而是根据一个单独的、定期的信号DQS进行的 [Lee 2002, Rhoden 2002, Macri 2002, Karabotsos 2002, Baker 2002]。这意味着可以完全不使用自由运行的时钟,结果将非常接近IBM的toggle模式。

Single Data Rate SDRAM

      单速率SDRAM使用单边沿时钟来同步所有信息;也就是说,各种总线上的传输(控制、地址、数据)都会与系统时钟的一个边沿(通常是上升沿)同步开始。由于各种总线上的传输理论上在一个时钟边沿到下一个时钟边沿期间都是有效的,因此这些信号在时钟的另一个边沿(下降沿)期间很可能也是有效的。因此,时钟的这个边沿可以用来对这些信号进行采样。

SDRAM具有一些在早期的DRAM架构中不存在的特性:可编程的突发长度Programmable Burst LengthProgrammable CAS Latency可编程的CAS延迟。

Programmable Burst Length

      与BEDO DRAM类似,SDRAM利用数据突发的概念来提高带宽。然而,与使用连续切换CAS信号来突发数据不同,SDRAM芯片只需要一次CAS信号,并在响应时按照可编程模式寄存器中保存的值传输或接收与时钟切换相符数量的位。一旦SDRAM接收到行地址和列地址,它将突发与寄存器中存储的突发长度值相对应的列。例如,如果模式寄存器被编程为突发长度为四,那么DRAM将自动将四列连续数据突发到总线上。这消除了为响应微处理器请求而切换CAS以获得数据突发的需要。因此,由于命令总线的减少,内存系统中的潜在并行性增加(即改进),内存控制器可以在本来需要切换CAS的周期内向其他存储器块发出其他请求。

Programmable CAS Latency

     模式寄存器还存储SDRAM芯片的CAS延迟。延迟是一种延迟的度量。CAS延迟,顾名思义,是指SDRAM接收CAS命令后返回数据所需的时钟周期数。能够将CAS延迟设置为所需值允许不同工艺制造的不同世代的部件(否则它们将具有不同的性能特征)表现相同。因此,混合性能的部件可以轻松地在同一系统中使用,甚至可以集成到同一内存模块中。

Double Data Rate SDRAM

DDR SDRAM具有一些在单数据速率SDRAM架构中不存在的特性:双边沿时钟和片上延迟锁定环路(DLL)

Dual-Edged Clocking

    DDR SDRAM与普通SDRAM一样,使用单边沿时钟来同步控制和地址传输,但对于数据传输,DDR SDRAM使用双边沿时钟,即一些数据位与系统时钟上升沿同步传输,而其他数据位则与系统时钟下降沿同步传输。

    图7.20说明了这种差异,展示了两种不同时钟排列的定时。顶部设计是一种更传统的排列,其中数据仅在时钟的上升沿传输;底部设计使用的数据速率是顶部设计的两倍,数据在时钟的上升沿和下降沿都传输。IBM在上世纪80年代末建造了使用这一特性的DRAM,并在1990年2月的国际固态电路大会上展示了他们的成果[Kalter 1990a]。据报道,Digital Equipment Corp.在上世纪80年代末和90年代初也在尝试类似的方案[Lee 2002,JC-42.3会议记录58]。

      在使用单边沿时钟传输数据的系统中,每个数据“眼”都有两个时钟边沿;数据“眼”在两端都由时钟边沿框定,并且第三个时钟边沿位于数据传输的中间某处(参见图7.20(a))。因此,时钟信号可以直接用于执行两个操作:将数据驱动到总线上和从总线上读取数据。请注意,在单边沿时钟方案中,每个时钟周期传输一次数据。  

     相比之下,在双边沿时钟方案中,每个时钟周期传输两次数据。这会减半用于将数据驱动到总线上和/或从总线上读取数据的时钟边沿数量(参见图7.20(b))。底部图示显示时钟以与数据传输相同的速度运行。请注意,每个数据“眼”只有一个时钟边沿。在双边沿方案中,时钟边沿可以与数据“边沿对齐”或“居中对齐”。这意味着时钟可以驱动数据进入总线,或者读取总线上的数据,但不能像在单边沿方案中那样同时执行这两个操作。在图中,时钟与数据“边沿对齐”

      双边沿时钟方案从定义上来说在每个数据传输中可用于同步或执行功能的时钟边沿更少。这意味着除了时钟之外,需要引入其他机制来获得用于驱动数据和采样数据的准确定时。换句话说,双边沿信号方案需要除了时钟之外的附加机制来补偿时钟边缘较少的事实。

    例如,DDR SDRAM规定了与系统时钟一起提供的中心对齐数据使能信号,该信号由内存控制器在DRAM写入时提供,DRAM直接使用它来采样传入的数据。在DRAM读取时,数据使能信号与数据和系统时钟边缘对齐;内存控制器负责提供自己的机制来生成中心对齐边沿。这个信号被称为DQS。

图7.20:以数据速率运行总线时钟。顶部图(a)示出了一个单边沿时钟方案,其中时钟频率是数据传输的两倍。底部图(b)示出了一个双边沿时钟方案,其中数据传输速率等于时钟频率。

On-Chip Delay-Locked Loop

      在DDR SDRAM中,芯片上的DLL将DRAM的输出数据和DQS(数据使能信号)与内存控制器的全局时钟同步[JED EC标准21-C,第3.11.6.6节]。DLL将涉及DRAM读取的信号进行同步,而不涉及DRAM写入的信号;在后一种情况下,内存控制器在DRAM写入时发送的数据的伴随DQS信号是由内存控制器同步的,并且由DRAM直接用于采样数据[Lee 2002, Rhoden 2002, Karabotsos 2002, Baker 2002, Macri 2002]。因此,DDR DRAM中的DLL电路确保了数据与内存控制器的时钟信号同步传输,以使数据按预期的时间到达内存控制器。内存控制器通常具有两个内部时钟:一个与全局时钟同步,另一个延迟90°,用于采样来自DRAM的输入数据。由于DQS与读操作的数据同相位(不同于写操作),因此内存控制器不能使用DQS直接对数据进行采样。相反,它仅用于确保DRAM的输出DQS信号(因此也包括数据信号)与内存控制器的时钟正确对齐。内存控制器的90°延迟时钟用于采样输入数据,这是可能的,因为DRAM的DLL保证了全局时钟和输出读取数据之间的最小差距。以下几段文字提供了一些背景信息,以解释为什么DDR SDRAM中存在这个电路。

由于DRAM通常是微处理器外部的器件,因此DRAM设计人员必须了解在芯片之间传播信号涉及的问题。在芯片间通信中,构建高速接口的主要限制因素是信号传播到目标的时间不确定性,通常称为信号时序的不确定性。系统的总不确定性通常是各组成部分不确定性的总和,例如每个驱动器、每个延迟线以及关键路径中的每个逻辑块都会向总不确定性中添加不确定性。这种累加效应使得即使在小型系统中构建高速接口也变得非常困难,因为即使在低时钟速度下看似微小的固定不确定性在时钟速度增加时也会变得显著。因此,在微处理器和DRAM之间的通信中设计可靠且高速的接口需要仔细考虑这些时序不确定性,并采用强大的工程解决方案来减轻其影响。

降低系统中不确定性的方法有很多,包括在数据传输中发送随数据一起的稳定信号(例如DDR SDRAM中的DQS信号或源同步接口中的时钟信号)、向系统添加锁相环(PLL)或延迟锁定环(DLL),或者匹配信号迹线的路径长度,以确保信号几乎同时到达目的地。许多这些方法是互补的,也就是说,它们降低不确定性的效果是累积的。构建高频通信系统主要涉及工程方法,以减少系统中的不确定性。

PLL或DLL的一般功能是同步两个周期性信号,以使它们之间存在一定固定量的相位移或视觉延迟。这两者相似,通常可以互换使用。DLL使用可变延迟电路来延迟现有的周期性信号,以使其与另一个信号同步;PLL使用振荡器来生成与另一个信号同步的新周期性信号。当将PLL/DLL添加到通信接口时,结果是一个“闭环”系统,例如,它可以测量和取消发射器和接收器电路中的大部分不确定性,并将传入的数据使能信号与传入的数据对齐(参见例如Dally和Poulton [1998])。图7.21显示了DLL在DDR SDRAM中的用法,并展示了DLL对部件时序的影响。净效应是延迟部件的输出(请注意,与顶部配置的输出突发相比,底部配置的输出突发向右移动)。此延迟被选择为足够将部件的输出与系统时钟对齐。

FIGURE 7.21: DLL在DDR SDRAM中的使用。顶部图示了没有DLL的DDR SDRAM的行为。由于时钟接收器、多级放大器、芯片上的导线、输出引脚和键合线、输出驱动器以及其他因素引起的固有延迟,数据输出(从总线的角度看)相对于系统时钟稍有延迟。底部图示了添加DLL的效果。DLL延迟了传入的时钟信号,使部件的输出更接近系统时钟。请注意,这会在部件的行为中引入额外的延迟。

7.3.3 Comparison of Technologies in Rambus and JEDEC DRAM

Programmable CAS Latency

      JEDEC的可编程CAS延迟用于允许每个系统供应商优化其系统的性能。它在系统初始化时进行编程,并且根据行业设计师的说法,在机器运行时不会再次设置。相比之下,Rambus的可变请求延迟是每次微处理器发送新请求给DRAM时都会进行编程的,但规范还开放了每个访问寄存器可以存储两个或更多值的可能性,这些值分别用于每个事务类型。Rambus的系统具有在请求粒度上更改延迟的潜力(我们认为有必要),即每个请求可以指定与前一个请求不同的延迟,并且规范中有许多不同的延迟值可供编程。虽然这个功能在JEDEC组织中是一种便利,但在Rambus组织中是必需的。

Programmable Burst Length

       JEDEC的可编程突发长度用于允许每个系统供应商优化其系统的性能。它在系统初始化时进行编程,并且根据行业设计师的说法,在机器运行时不会再次设置。相比之下,Rambus的可变块大小是每次微处理器发送新请求给DRAM时都会进行编程的。尽管JEDEC风格的内存系统可以在每次从DRAM读出或写入的数据列都伴随着CAS信号的情况下有效运行,但Rambus风格的内存系统不能这样做(因为该命令会占用与数据相同的总线,从而将可用总线周期限制为不到一半)。虽然这个功能在JEDEC组织中是一种便利,但在Rambus组织中是必需的。

Dual-Edged Clocking

JEDEC风格和Rambus风格的DRAM都使用了至少回溯到IBM的高速切换模式DRAM的时钟方案,其中芯片内部的交织允许在两个缓冲区之间切换(例如,在上升沿和下降沿的触发信号上)以实现数据速率是单个缓冲区所能达到的两倍。JEDEC风格和Rambus风格的DRAM都在时序信号的两个边沿传输数据。在JEDEC风格的DRAM中,时序信号是从系统时钟和DQS数据 strobe生成的内部时钟,DQS数据 strobe伴随发送的数据并在总线上没有数据时保持静止。数据与系统时钟边沿对齐。在Rambus风格的DRAM中,时序信号是与系统中没有其他时钟源同步的合成内部时钟信号,并从U形全局时钟的两个不同相位生成(前面已经描述过)。U形时钟不是源同步的,无论总线上是否有数据,它都会自由运行。与DDR时钟方案不同,Rambus方案中的数据与系统时钟的任何一个相位都不对齐;它既不是边沿对齐也不是中心对齐。此外,每个Rambus DRAM的输出数据与全局时钟的早期和晚期信号之间存在不同的相位关系,而DDR DRAM努力保持每个DRAM的输出数据与系统时钟之间的相同相位关系。

On-Chip PLL/DLL

JEDEC在其DDR SDRAM中使用芯片内部的DLL来确保将驱动到数据总线上的数据与全局时钟信号对齐。DLL通过延迟DRAM对读请求的响应,使数据恰好在DRAM看到下一个时钟边沿时被驱动。而Rambus使用芯片内部的可变延迟电路来确保系统中的每个DRAM以及内存控制器都具有同步的时钟(即它们都认为当前时间正好是12:00)。延迟电路通过找到相同时钟信号的早期版本和晚期版本之间的时间中点(即两个不同相位),从而创建一个与系统中没有其他物理时钟同步的合成内部时钟信号。这是一个比简单的DLL复杂得多的过程,因此Rambus的可变延迟电路比简单的DLL更复杂。

7.4 Fully Buffered DIMM: A Compromise of Sorts

  DRAM行业的一个有趣发展是最近引入的全缓冲DIMM(FB-DIMM)。这是由英特尔开发的一种系统级DRAM组织,乍看之下,它看起来有点像传统的JEDEC宽总线设计与类似Rambus的窄总线设计之间的折衷。第14章会更详细地探讨FB-DIMM。在这里,我们只是简单介绍它并提出其开发动机。

     面临系统设计师的一个重要趋势最终支持FB-DIMM或类似的技术。随着DRAM技术的进步,通道速度有所提高,但通道容量有所降低。SDR SDRAM可以填充一个通道,具有8个DIMMs。DDR SDRAM以更高的数据速率运行,每个通道限制DIMMs数量为4个。DDR2 SDRAM以更高的数据速率运行,每个通道限制DIMMs数量为2个。DDR3预计将每个通道的DIMMs数量限制为1个。这是一个显著的限制;对于服务器设计师来说,这是至关重要的,因为服务器通常依赖于内存容量来提高性能。

FIGURE 7.26:FB-DIMM设计的动机。前两种组织比较了模块化的宽总线和高性能的嵌入式系统,如图形卡。在每个设计的上方都有其侧面轮廓,显示潜在的阻抗不匹配(反射源)。最右边的组织显示了FB-DIMM将图形卡组织作为其事实上的DIMM。在FB-DIMM组织中,没有多点总线;DIMM到DIMM的连接是点对点的。

     趋势很明显:要提高数据传输速率,必须减少总线上的信号分支。图形子系统的设计者早已知道这一点,因为每一代DRAM都使用与通用DIMM中相同的DRAM技术,但图形卡以显著更高的数据传输速率运行,因为它们使用点对点连接。需要注意的是,从市场角度来看,这是可能的,因为图形卡实际上是嵌入式系统。用户不希望通过添加更多内存来升级他们的图形卡;相反,他们会更换整个卡片。

     因此,存在一个明显的两难问题:未来的设计师既希望增加通道容量,又希望提高数据传输速率。如何两者兼顾呢?模块化组织与图形卡组织之间的关系如图7.26所示,图中将多点连接的DRAM总线与典型的图形卡DRAM总线组织进行了对比。图形卡组织使用与多点连接组织中相同的DRAM技术,但它还在DRAM和内存控制器之间使用点对点焊接连接,因此可以达到更高的速度。如何在不牺牲通道容量的情况下利用这一点来提高数据传输速率呢?一个解决方案是重新定义术语,将图形卡的布局称为未来系统中的“DIMM”。这在图的右侧显示出来,正是FB-DIMM中正在发生的事情:内存控制器已经移至DIMM上,系统中的所有连接都是点对点的。将主内存控制器与DIMM级内存控制器(称为高级内存缓冲区或AMB)连接的通道非常窄且非常快,基于PCI-X标准。此外,每个DIMM到DIMM的连接都是点对点的连接,使得整个通道成为事实上的多跳存储和前向网络。FB-DIMM架构将通道长度限制为八个DIMM,并且模块间总线的宽度足够窄,需要的引脚数量约为传统组织的三分之一。结果是,FB-DIMM组织可以处理大约是传统DDR3系统的24倍存储容量(假设DDR3系统确实将限制每个通道一个DIMM),而不会牺牲任何带宽,甚至还留有提高模块内带宽的空间(需要注意的是,FB-DIMM模块应该能够达到与图形卡组织相同的性能)。

理解:FB-DIMM就是DIMM 控制器放在内存条上而不是SOC中

7.5 Issues in DRAM Systems, Briefly

       前面的章节已经提到了明天系统设计师所面临的一个重要问题:带宽的增加不是免费的,需要某种形式的权衡。传统的方法是减少在共享总线上的连接数,但这种方法显然无法扩展。概述部分描述了其他问题,即协议级别的细节与系统级组织参数以非直观的方式相互作用,可能导致性能降低两倍或更多。未来DRAM系统还面临许多其他问题,这些问题将在即将到来的章节中更详细地讨论。以下是对其中一些问题的简要介绍。

7.5.1 Architecture and Scaling

每一代DRAM的带宽提升都是以通道容量为代价的,但也以访问的粒度为代价。通过以空间换时间的技巧,DRAM设计师在不必提高DRAM核心速度的情况下,提高了DRAM I/O引脚的数据速率。DDR通过采用2n预取架构来提高速度,这种架构从DRAM核心中提取的比特数是之前的两倍。接口的一侧带宽增加与另一侧的带宽增加相匹配;I/O侧的速度提高了一倍,核心侧的宽度也提高了一倍(在DRAM的I/O侧,比特的传输速度是之前的两倍;在核心侧,在一个周期内提取的比特数是之前的两倍)。DDR2通过采用4n预取来再次提高速度;DDR3预计将实现8n预取。在每种情况下,DRAM可以读取或写入的最小比特数增加了两倍。这意味着处理器需要在每个操作中读取和写入的数据量加倍,但问题仍然是,高速缓存块可以扩展到多大程度,直到SRAM设计师说够了:每块128字节?256字节?1 KB?

7.5.2 Topology and Timing

如前所讨论,信号完整性与系统组织之间存在直接联系;对系统组织的更改可以显著改善或降低信号完整性。总线拓扑结构也是如此。例如,单向总线的设计者无需关注回转时间,这是双向总线的主控器发生变化时吞吐量受限的情况。相关问题是使用的时序约定。当拓扑结构发生变化时,时序约定可能需要相应更改。例如,单向总线可能更适合源同步时钟,但源同步时钟不像全局时钟方案那样简单。

7.5.3 Pin and Protocol Efficiency

引脚成本正变得越来越重要;芯片上的晶体管或电容的成本正在以极快的速度降低,而封装成本的降低速度不如此迅猛。明显的结论是,在未来,DRAM的设计将更关注引脚数量而不是晶体管数量。显著减少零件所需的引脚数量的唯一方法,而不会显著减少零件的数据带宽(例如,通过简单地减少封装上的数据引脚数量),是重新思考协议,允许在用于数据和控制(地址、命令等)的引脚之间进行权衡。

7.5.4 Power and Heat Dissipation

传统上,DRAM在设计的功耗和热耗散中所占比例不大。例如,DRAM通常不配备散热片,DIMM也不配备。然而,随着现代芯片间信号传输速率超过每个引脚1 Gbps(如现今的FB-DIMM),功耗和热耗散变得严重。以前时代的DIMM的功耗约为1瓦特。当前的FB-DIMM的功耗几乎是这个数量的十倍。再加上可以将FB-DIMM放入系统的数量增加了25倍(通道数增加了三倍,每个通道的DIMM数量增加了八倍),现在就出现了一个重大的散热问题。现代刀片服务器是一个流行的设计选择,因为系统中只有少数几个组件会产生明显的热量,DRAM从来都不是其中之一。现在,DRAM子系统威胁着复杂化刀片服务器的设计,以及其他方面的问题。

7.5.5 Future Directions

目前,未来DRAM设计中的许多关注点都集中在通过提高引脚速率来增加带宽上。这种方法只适用于有限的设计窗口。特别是,它过于强调了对设备的优化,而忽视了对系统的优化。这恰恰是导致概述章节中描述的系统性问题的狭隘思维类型:只在设备级别思考的设计者可能会在系统级别创建问题,正如只在系统级别思考的设计者可能会在设备级别创建问题一样。解决方案并不简单,因为它需要面对经济层面的争论。DRAM是一种试图满足许多不同需求的设备。设计解决方案必须在DIMM组织中同样有效,就像直接焊接在主板上,与微处理器一对一通信一样有效。换句话说,在许多情况下,设备就是系统。如何将这两种视角融合在一起将是一个持续关注的问题。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

二哈哈黄

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

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

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

打赏作者

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

抵扣说明:

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

余额充值