高带宽DIMM的制作方法

文档序号:19570879发布日期:2019-12-31 18:55阅读:375来源:国知局
高带宽DIMM的制作方法

本发明的领域一般涉及高带宽dimm。



背景技术:

计算系统的性能高度取决于它们的系统存储器的性能。但是,一般来说,增加存储器通道容量和存储器速度可能导致有关存储器通道实现的功率消耗的挑战。因此,系统设计人员正在寻求约束功率消耗的同时增加存储器通道容量和带宽的方式。

附图说明

可结合附图从以下详细描述获得对本发明的更好的理解,在附图中:

图1示出第一现有技术dimm;

图2示出第二现有技术dimm;

图3a示出第三现有技术dimm;

图3b示出与图3a的dimm对接的存储器通道的第一布局;

图4a示出存储器通道的新兴布局;

图4b示出高带宽dimm的实施例;

图4c将传统存储器通道的定时和图4b的高带宽dimm实施例的定时的实施例进行比较;

图4d示出图4c的定时的额外信息;

图5示出与图4b的高带宽dimm实施例对接的存储器控制器;

图6示出计算系统。

具体实施方式

如本领域中已知,通常用插入到存储器通道中的双列直插式存储器模块(dimm)来实现诸如高性能服务器的高性能计算系统中的主存储器(也称为“系统存储器”)。此处,多个存储器通道从主存储器控制器发散,并且一个或多个dimm被插入到每个存储器通道中。每个dimm包括定义dimm的存储器存储容量的多个存储器芯片。插入到存储器控制器的存储器通道中的dimm的组合存储器容量对应于系统的系统存储器容量。

随着时间推移,dimm的设计和结构已经变成满足存储器容量和存储器通道带宽两者的日益增加的需求。图1示出传统dimm途径。如在图1中所观察,单个“无缓冲”dimm(udimm)100使它的存储器芯片直接耦合到存储器通道总线101、102的线。udimm100包括足以形成至少一个组(rank)103的数据宽度的多个存储器芯片。组对应于数据总线的宽度,数据总线的宽度一般对应于存储器通道上的数据信号的数量和ecc信号的数量。

因此,在dimm上使用的存储器芯片的总数是存储器芯片的位宽度和组大小的函数。例如,对于具有64个数据位和8个ecc位的组,dimm可包括十八个“x4”(四位宽度)存储器芯片(例如,16个芯片×4位/芯片=64个数据位,加上2个芯片×4位/芯片以实现8个ecc位),或者九个“x8”(八位宽度)存储器芯片(例如,8个芯片×8位/芯片=64个数据位,加上1个芯片×8位/芯片以实现8个ecc位)。

为简单起见,当参考图1和随后的图时,可忽略ecc位,并且所观察的组宽度m简单地对应于存储器总线上的数据位的数量。也就是说,例如,对于具有64个数据位的数据总线,组=m=64。

在传统上,udimm只具有两个分离的存储器芯片组的存储容量,其中,dimm的一侧具有第一组的存储器芯片,并且dimm的另一侧具有第二组的存储器芯片。此处,存储器芯片具有与可提供给存储器芯片的不同地址的总数相关的一定量的存储空间。由与数据总线宽度对接的合适数量的存储器芯片(在上述示例中是十八个x4存储器芯片或九个x8存储器芯片)组成的存储器结构对应于存储器芯片组。因此,存储器芯片组可符合它的地址空间来分离存储来自数据总线的多次传输。例如,如果用支持256m不同地址的存储器芯片来实现存储器芯片组,则该存储器芯片组可存储256m不同总线传输的信息。

值得注意,用于实现两个存储器芯片组的存储器芯片以多点方式耦合到存储器通道101、102。因此,udimm100可向存储器通道数据总线101的每个线呈现多达两个存储器芯片的负载(每个存储器芯片组一个存储器芯片负载)。

类似地,用于两个存储器芯片组的命令和地址信号以多点形式耦合到存储器通道的命令地址(ca)总线102。举几个例子,ca总线102上承载的控制信号包括行地址选通信号(ras)、列地址选通信号(cas)、写入使能(we)信号和多个地址(addr)信号。ca总线102上的一些信号通常具有严格的定时余裕。因此,如果将多于一个dimm插入到存储器通道中,则在ca总线201上呈现的负载可能足以干扰ca信号的质量并限制存储器通道的性能。

图2示出称为寄存器dimm200(rdimm)的新一代dimm,其包括用于解决对由ca总线202的负载呈现的存储器通道性能的上述限制的寄存器和重驱动电路205。此处,与每存储器芯片组的一个负载(如与udimm)对照,寄存器和重驱动电路205在每个ca总线202线上充当每个dimm的单个负载。因此,鉴于对于udimm上的存储器芯片而言,名义上的双组udimm将在存储器通道的ca总线202的每个线上呈现一个负载(因为udimm上的每个存储器芯片被连线到ca总线202),相比之下,具有相同的存储器芯片集合的双组rdimm等将在存储器通道的ca总线202线中的每个线上仅呈现一个芯片负载。

在操作中,寄存器和重驱动电路205将ca信号锁存和/或重驱动,该ca信号是从存储器通道的ca总线202到该ca信号被特定发送到的dimm上的特定存储器芯片组的存储器芯片的ca信号。此处,对于在存储器通道上发出的每个存储器访问(具有对应地址的读取或写入访问),对应集合的ca信号包括芯片选择信号(cs)和/或不但特定标识通道上的特定dimm而且特别标识访问所针对的所标识的dimm上的特定组的其它信号。因此,寄存器和重驱动电路205包括监测这些信号并识别何时它的对应dimm正在被访问的逻辑电路。当逻辑电路识别它的dimm被针对时,逻辑还解析ca信号以标识该访问所针对的dimm上的特定存储器芯片组。然后,寄存器和重驱动电路有效地将存储器通道上的ca信号路由到dimm200上的特定针对的存储器芯片组的存储器芯片。

但是,rdimm200的问题在于,存储器通道的数据总线201(dq)的信号线也以多点形式耦合到dimm的存储器芯片组203_1至203_x。也就是说,对于rdimm上部署的每个存储器芯片组,rdimm将在每个dq信号线上呈现一个存储器芯片负载。因此,与udimm类似,可在rdimm上部署的存储器芯片组的数量对于约束每个rdimm存储器通道数据总线201上的负载来说,在传统上是有限的(例如,限于两组存储器芯片)。

图3a示出称为负载减少的dimm(lrdimm)300的更新一代dimm,其中由lrdimm300以仅单个负载呈现ca总线302和dq总线301两者。此处,与rdimm的寄存器和重驱动电路类似,lrdimm包括缓冲器电路306,其存储和转发要在存储器通道数据总线301与访问所针对的特定存储器芯片组303之间传递的数据。寄存器和重驱动电路305激活特定访问所针对的任何存储器芯片组,并且与该访问相关联的数据出现在缓冲器电路306的“背面”。

在对于存储器通道上的dq和ca线301、302两者仅有单点负载的情况下,lrdimm300的存储器容量自由将它的存储器存储容量扩展为超过仅两个存储器芯片组(例如,单个ddr4dimm上四组)。在每dimm具有更多组存储器芯片和/或对于每dimm的存储器芯片的数量普遍不敏感(至少从信号负载角度)的情况下,力求将更多芯片装到一定量的空间中的新型存储器芯片封装技术在近年来受到高度关注。例如,可在lrdimm上集成堆叠芯片封装解决方案以形成例如3维堆叠(3ds)lrdimm。

甚至在随着lrdimm的出现而极大扩展了每dimm的存储器容量的情况下,利用lrdimm,存储器通道带宽仍然是有限的,因为多个lrdimm可插入到相同存储器通道中。也就是说,在存储器通道上仍然存在多点途径,这是因为不止一个dimm可耦合到相同存储器通道的ca和dq线。

此处,图3b示出高性能存储器通道布局310,其中两个dimm插槽311_1、311_2耦合到相同存储器通道。图3b的特定布局符合电子器件工程联合委员会(jedec)双倍数据速率4(ddr4)存储器标准。如从图3b的布局310可见,如果将相应lrdimm插入到两个插槽311_1、311_2中的每个插槽中,则每个ca总线和dq总线将具有两个负载(一个来自每个lrdimm)。如果可进一步减少负载,则ca和dq信号的定时余裕将同样增加,而这又将提供更高的存储器通道频率和对应的存储器通道带宽(可以用更少的时间执行读取/写入操作)。

称为ddr5的下一代jedec存储器接口标准采取如图4a中所描绘在将ca总线和dq总线物理分割成两个分离的多点总线的途径。此处,将图3b与图4a进行比较,注意,图3b的布局描绘多点下传(multi-drop)到两个dimm插槽311_1、311_2的单个n位宽ca总线以及同样多点下传到这两个dimm插槽311_1、311_2的单个m位宽dq数据总线;而相比之下,图4a的ddr5布局由多点下传到两个dimm插槽411_1、411_2的两个分离的n/2位宽ca总线以及多点下传到dimm插槽411_1、411_2的两个分离的m/2位宽dq数据总线组成。

再此为简单起见,忽略ecc位,并且分别对于ddr4和ddr5实现,在图3b和图4a两者中,m=64。因此,ddr4具有单个64位宽的数据总线,而相比之下,ddr5具有两个32位宽的数据总线(dq_1和dq_2)。因此,ddr5系统中的“组”对应于32位而不是64位(dq_1和dq_2数据总线两者的宽度均为m/2=64/2=32位)。同样地,对于ddr5系统,存储器芯片组在单个传输中从子通道接受32个数据位,而不是如ddr4中的64位。

图4b示出高带宽lrdimm400(xlrdimm)的实施例,它不仅可并行处置dq_1和dq_2数据总线两者上的数据传输,而且还可并行处置这些数据总线中的相同数据总线上的两个不同组之间的数据传输。也就是说,图4b的高带宽dimm可并行处置dimm上的第一、第二、第三和第四组之间的数据传输。

如在图4b中所观察,dimm400包括组的第一群组409_1(rank_0和rank_1)以及组的第二群组409_2(rank_2和rank_3)。根据一个实施例,组的第一群组409_1物理布局在dimm的一端上(例如,在dimm的“左”端上),其中,群组409_1的组中的一个组(例如,rank_0)的存储器芯片部署在dimm的一侧(例如,“正”面)上,并且群组409_1的组中的另一个组(例如,rank_1)的存储器芯片部署在dimm的另一侧(例如,“背”面)上。

同样地,组的第二群组409_2物理布局在dimm的另一端上(例如,在dimm的“右”端上),其中,群组409_2的组中的一个组(例如,rank_2)的存储器芯片部署在dimm的一侧(例如,“正”面)上,并且群组409_3的组中的另一个组(例如,rank_3)的存储器芯片部署在dimm的另一侧(例如,“背”面)上。

值得注意,第一存储器群组409_1的组(rank_0、rank_1)耦合到第一数据总线dq_1,并且第二存储器群组409_2的组(rank_2、rank_3)耦合到第二数据总线dq_2。在dq_1和dq_2总线接口分离地耦合到它们自己的相应的存储器芯片组的情况下,dimm400能够并行处置这两个不同的数据总线dq_1、dq_2上的总线传输。此处,数据总线dq_1、dq_2中的每个具有它自己的相关联的ca通道ca_1、ca_2,使得不仅可在dq_1和dq_2数据总线上并行针对不同目标地址,还可在dq_1和dq_2总线上并行执行不同的操作类型。例如,在dq_1数据总线正在支持读取传输的同时,dq_2数据总线可正在支持写入传输(和/或反之亦然,在dq_2数据总线正在支持读取传输的同时,dq_1数据总线可支持写入传输)。

显然,dimm400能够在相同时间窗口期间在相同数据总线上同时处置与相同组群组的两个不同组相关联的数据传输。例如,在相同读取突发读取或写入突发时间窗口内,可在数据总线dq_1上与来自rank_1的数据一起同时传送与rank_0相关联的数据。同样地,在并行时间周期内,可在数据总线dq_2上与来自rank_3的数据一起同时传送来自rank_2的数据(例如,在数据总线dq_2上在突发读取或写入窗口期间)。因此,在相同时间窗口内,可跨越数据总线dq_1和dq_2同时传送与所有四个组(rank_0至rank_3)相关联的数据。

此外,在各种实施例中,对于读取和写入操作两者,在各个组访问相当于整个组的数据。但是,缓冲器装置406以例如各个组的存储器芯片的速度的两倍速度操作,并且因此能够执行2:1复用(例如,以存储和转发的方式)以有效地将数据宽度减半。可与耦合到相同数据总线的另一个组的数据一起消耗通过一半数据宽度减少而“腾出”的dq数据总线上的额外一半数据宽度。

例如,参考图4b,在读取操作期间,可分别从rank_0和rank_1两者读取相当于整个组的数据。如在图4c中观察,从两个组的读取将分别从两个组生成m/2=32个数据位(忽略ecc)。将从rank_0读取的32个数据位缓冲到缓冲器406_1中,并将从rank_1读取的32个数据位缓冲到缓冲器406_2中。根据其中缓冲器以与存储器装置相同的速度操作的现有技术dimm缓冲途径,从组读取的任何32位全部在数据总线上立即被呈现。

但是,那在图4b的dimm设计400中不可行,因为来自两个组(rank_0和rank_1)的并行读取生成总共64位,并且要在其上传送它们的数据的dq_1数据总线只有32位宽。相反,在图4b的dimm400的设计中,缓冲器406_1和406_2以存储器装置的速度的两倍速度操作。因此,对于它们的对应存储器的每个读取周期,缓冲器406_1、406_2在dq_1数据总线上具有两个传送周期。因此,每个缓冲器406_1、406_2分别耦合到dq_1总线的仅仅m/4=16位,并且对于它的对应存储器的每个32位读取访问,在dq_1总线的其一半的16位上传送两个16位周期。

换言之,缓冲器406_1、406_2在存储器读取期间在从存储器芯片到数据总线的方向上实现2:1存储和转发复用方案。此处,将来自rank_0的读取的所有32位输入到缓冲器406_1中,并且然后,首先将这些位中的“上半部分”16位传送到dq_1总线上,并且然后,接着在dq_1总线上传送“下半部分”剩余的16位。同属rank_1的缓冲器406_2以相同方式操作,但是在缓冲器406_1没有在其上传送的dq_1总线的其它16位上传送它的16位。因此,在dq_1总线上各以16位区块同时传送来自rank_0和rank_1两者的数据。

组rank_2和rank_3的缓冲器406_3和406_4可在相同时间周期内表现类似,这导致dimm400能够在相同时间窗口内并行发送来自所有四个组的读取数据。值得注意,在数据总线其中之一上正在发生读取传输的同时,可在缓冲器中的另一个上发生写入传输。在写入操作的情况下,缓冲器406实现反向存储和转发复用过程。也就是说,对于到存储器芯片组的每个32位的写入周期,该组的对应缓冲器从数据总线接收两个16位的传输。

图4c示出图4b的dimm400的定时的实施例。此处,插图410示出与dimm插入到其中的存储器通道相关联的信号的定时,并且插图420示出与存储器组相关联的信号的定时。将两个插图410、420的信号进行比较,注意,以存储器通道的数据总线以其操作的速率的一半速率来对存储器组中/存储器组之外计时的数据411计时。也就是说,对存储器芯片计时的时钟(dqs/2)是对dq_1和dq_2数据总线上的数据传输计时的时钟(dqs)的频率的一半。如可见的,在相同时间周期内,dq_1总线由与rank_0和rank_1相关联的一半宽度(16位)数据流408、412组成。同样地,在相同时间周期内,dq_2总线由与rank_2和rank_3相关联的一半宽度(16位)数据流组成。传输是dqs时钟信号的双倍数据速率。

注意,共享相同数据总线的流的地址在数据总线的ca信号上交替。也就是说,对于dq_1,ca_1上的命令/地址信令在指向rank_0(基地址a)的地址和指向rank_1(基地址b)的地址之间交替。图4c示出同步读取或写入突发,其中指向rank_0的突发的第一传输与指向rank_1的突发的第一传输同步(或“同相”)(在相同dqs周期期间呈现两个传输的基地址(a和b))。

但是,实际上,dimm可执行不同步的并行突发读取/写入(一对并行执行的突发的两个突发的第一数据传输无需在相同dqs周期上发生)。注意,为了实现512位突发,两个数据流408和412都将消耗16个dqs时钟周期(2个传输/dqs周期×16位/传输×16个dqs周期/突发=512位/突发)。因此,图4仅示出完成全部512位突发所需的周期的一半(图4c中示出八个dqs周期)。

图4d示出dimm的读取和写入活动两者的额外定时细节。此处,注意,数据总线上的传输以访问存储器芯片的速率的两倍速率发生。

图5示出能够与如上所述的dimm通信的存储器控制器的设计。存储器控制器包括第一和第二存储器通道接口504_1、504_2,它们各自包括一对dq总线接口和ca信号接口,并且可与如上文所论述的dimm通信。因此,每个接口包括分别耦合到例如ddr5存储器通道的第一和第二dq和ca线的输入/输出(i/o)的第一和第二群组。

如在图5中所观察,存储器控制器在输入节点502处接收存储器读取和存储器写入请求。调度器和地址映射电路503将请求排序并将请求指向合适的存储器通道接口(例如,接口504_1或504_2)。值得注意,每个存储器通道接口包括它自己的地址映射逻辑电路(为了易于说明,在图5中没有示出)以将每个请求映射到它的正确dq总线(换言之,是dq_1和dq_2中的正确的一个)。因此,在具有两个分离的dq通道的情况下,存储器接口电路504_1本身必须将它接收的请求的地址映射到dq通道中的特定dq通道。

此处,入站队列505_1、505_2在每个接口504_1、504_2之前,并且接口的地址映射电路可不按顺序从队列拉出请求以保持两个dq通道都忙碌(例如,如果队列的前面包含只映射到dq总线其中之一的请求,则地址映射逻辑可从队列中后面更深处拉出映射到另一个dq通道的请求)。请求的此类拉出还可考虑在任何特定dq总线上在两个不同组之间同时传送数据的要求。例如,如针对图4b的xlrdimm实现所描述,xlrdimm被构造成在相同dq总线上在两个不同的存储器芯片组(“顶部群组”和“底部群组”)之间同时传输数据。

此处,请求的地址的某些较高阶位可映射到被耦合到特定dq通道的组以及dq通道中的一个或另一个。为了在可能时将两个组的两个dq总线都保持在最大传输容量,接口的地址映射逻辑电路可服务来自接口的队列的不按顺序的请求,使得可在xlrdimm的特定dq总线上同时服务其地址映射到不同dq通道以及耦合到特定dq通道的不同组的请求。

同样地,存储器接口电路504_1包括一对复用器电路506_1和506_2,每个ca总线(ca_1和ca_2)一个复用器电路,以便如上所述在相同时间窗口(例如,相同突发传输窗口)期间,向/从相同dq总线复用两个不同组的地址。如上所述,两个复用器506_1、506_2可并行操作以在相同时间窗口期间在接口504_1与它所耦合到的xlrdimm之间并行传输四个组的地址。可实际地或者在逻辑上(例如,利用存储和转发电路)来进行复用。

每个存储器接口504_1和504_2还包括为符合上文的教导的每个dimm生成合适的ca和dq信号的信号生成逻辑电路。存储器控制器501可包括配置寄存器空间(为了易于说明,在图5中没有描绘),其对应信息用于配置每个存储器接口。在实施例中,寄存器空间用于定义存储器接口要以如上所述的xlrdimm模式操作还是根据ddr5模式操作。如果指定后者,则禁用存储器控制器的xlrdimm活动,并且在突发传输期间在任何dq_1或dq_2上只传播单个存储器芯片组的数据。

虽然上文的论述已指向指定例如每突发事务的周期数量、每接口的dimm插槽的数量、2:1复用比、作为缓冲器时钟的一半的存储器芯片时钟之类的特定ddr5实现,但是,认识到可存在具有与上文描述的实施例不同数量的这些和其它特征的其它实施例是恰当的。例如,对于特定dq总线,架构上将组编组为4个群组的dimm可使用4:1复用比,并且它的存储器芯片可接收dqs/4时钟。还存在具有与64不同的m值或者与32不同的组大小的实施例。

还注意,虽然已针对单个xlrdimm描述了操作,但是操作可在两个不同xlrdimm之间在dq_1和dq_2总线上同时发生。也就是说,dq_1总线上的第一传输可与耦合到存储器通道的第一xlrdimm一起发生,以及dq_2总线上的第二传输可与耦合到存储器通道的第二xlrdimm一起发生。此类传输可以是相同或不同类型的(例如,一个传输是读取传输,而另一个传输是写入传输)。

图6提供计算系统600(例如,智能电话、平板计算机、膝上型计算机、台式计算机、服务器计算机等)的示例性描绘。如在图6中所观察,基本计算系统600可包括多核处理器或应用处理器上部署的中央处理单元601(其可包括例如多个通用处理核615_1至615_x)和主存储器控制器617、系统存储器602、显示器603(例如,触屏、平板)、本地有线点对点链路(例如,usb)接口604、各种网络i/o功能605(诸如以太网接口和/或蜂窝调制解调器子系统)、无线局域网(例如,wifi)接口606、无线点对点链路(例如,蓝牙)接口607和全球定位系统接口608、各种传感器609_1至609_y、一个或多个相机610、电池611、电力管理控制单元612、扬声器和话筒613以及音频编码器/解码器614。

应用处理器或多核处理器650可包括它的cpu601内的一个或多个通用处理核615、一个或多个图形处理单元616、存储器管理功能617(例如,存储器控制器)和i/o控制功能618。通用处理核615通常执行计算系统的操作系统和应用软件。图形处理单元616通常执行图形密集型功能以例如生成显示器603上呈现的图形信息。存储器控制功能617与系统存储器602对接以向系统存储器602写入数据/从系统存储器602读取数据。电力管理控制单元612一般控制系统600的功率消耗。

触屏显示器603、通信接口604-607、gps接口608、传感器609、一个或多个相机610和扬声器/话筒编解码器613、614中的每个都可视为相对于整体计算系统的各种形式的i/o(输入和/或输出),在合适的情况下,也包括集成外围装置(例如,一个或多个相机610)。取决于实现,这些i/o组件中的各种组件可集成在应用处理器/多核处理器650上,或者可脱离管芯或位于应用处理器/多核处理器650的封装之外。计算系统还包括非易失性存储设备620,其可以是系统的大容量存储组件。

主存储器控制功能617(例如,主存储器控制器、系统存储器控制器)可设计成符合描述主机侧存储器接口的上文教导,所述主机侧存储器接口能够在到/来自例如如上所述的xlrdimm的相同突发传输期间通过主机侧存储器接口的相同dq总线在不同的存储器芯片组之间同时传输数据。

本发明的实施例可包括上文阐述的各种过程。这些过程可用机器可执行指令来实施。指令可用于使得通用或专用处理器执行某些过程。备选地,这些过程可通过包含用于执行这些过程的硬线逻辑电路或可编程逻辑电路(例如,现场可编程门阵列(fpga)、可编程逻辑装置(pld))的特定/定制硬件组件或者通过经编程的计算机组件和定制硬件组件的任何组合来执行。

本发明的元件也可作为用于存储机器可执行指令的机器可读介质来提供。机器可读介质可包括但不限于软盘、光盘、cd-rom和磁-光盘、闪速存储器、rom、ram、eprom、eeprom、磁或光卡、传播介质或适于存储电子指令的其它类型的介质/机器可读介质。例如,本发明可作为计算机程序下载,可经由通信链路(例如,调制解调器或网络连接)借助于以载波或其它传播介质实施的数据信号将计算机程序从远程计算机(例如,服务器)传输到请求计算机(例如,客户端)。

在以上说明书中,已参考其中的特定示例性实施例来描述本发明。但是,会显而易见的是,可对其进行各种修改和改变而不偏离所附权利要求中所阐述的本发明的更广泛的精神和范围。因此,说明书和附图被视为是说明性而不是限制性含义。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1