掌桥专利:专业的专利平台
掌桥专利
首页

高性能非易失性存储器模块

文献发布时间:2023-06-19 13:45:04


高性能非易失性存储器模块

本申请是申请日为2016年3月11日、申请号为201680010277.X、发明名称为“高性能非易失性存储器模块”的申请的分案申请。

技术领域

本文公开涉及存储器模块、存储器控制器、存储器器件以及相关方法。

背景技术

在市场上已经出现连续几代的动态随机存取存储器组件(DRAM),其具有不断缩小的平版印刷特征尺寸。因此来自每代的器件存储容量已得以增大。此外,由于晶体管性能的改进,每代的接口信令速率也已得以增大。

不幸的是,存储器系统设计的尚未显示出显著改进的一个度量是标准存储器通道的模块容量。随着信令速率的增大,该容量已不断下降。部分原因是标准存储器系统中使用的链路拓扑。当将更多的模块添加到系统中时,信号完整性降低,并且信号速率必然减小。当在最大信令速率下运行时,如今的典型存储器系统仅限于一个或两个模块。

除非进行改进,否则在最大信令速率下,未来存储器系统可能限于单个模块上的单排器件(single rank of devices)(或单排器件堆叠)。

附图说明

在附图中以示例性而非限制性的方式示出了本公开的实施例,并且附图中相似的附图标记表示相似的元件,并且附图中:

图1示出了采用存储器控制器、非易失性存储器模块和DRAM存储器模块的存储器系统的一个实施例。

图2示出了图1所示的非易失性存储器模块的一个实施例

图3示出了在图2的非易失性存储器模块缓冲器电路中采用的导引逻辑(steeringlogic)的一个实施例。

图4示出了图1的DRAM存储器模块的一个实施例。

图5A从存储器控制器的角度示出了从非易失性存储器模块读取数据的方法的一个实施例的流程图。

图5B从存储器控制器的角度示出了将数据写入非易失性存储器模块的方法的一个实施例的流程图。

图6A从非易失性存储器模块的角度示出了显示来自非易失性存储器模块的读取数据传输的流程图的一个实施例。

图6B从非易失性存储器模块的角度示出了显示向非易失性存储器模块的写入数据传输的流程图的一个实施例。

图7A示出了与图6A的读取数据传输相关的时序图的一个实施例。

图7B示出了与图6B的写入数据传输相关的时序图的一个实施例。

图8示出了涉及非易失性存储器模块和DRAM存储器模块的读取数据传输的框图,其中每个模块被分配系统带宽的一半。

图9示出了与图8的读取数据传输相关的时序图。

图10示出了类似于图8的涉及非易失性存储器模块和DRAM存储器模块的读取数据传输的框图,其中每个模块被分配系统带宽的一半。

图11示出了与图10的读取数据传输相关的时序图。

图12示出了类似于图8和图10的读取数据传输的框图,但是其中整个系统带宽被分配给DRAM存储器模块。

图13示出了示出了与图12的读取数据传输相关的时序图。

图14示出了来自DRAM模块的读取操作以及来自非易失性存储器模块的读取操作的框图,非易失性存储器模块在单独的写入操作中将写入数据直接传输给DRAM模块。

图15示出了与图14的数据传输相关的时序图。

图16示出了非易失性存储器模块和缓冲DRAM存储器模块的框图,并且其中整个系统带宽被分配给非易失性存储器模块。

图17示出了与图16的读取数据传输相关的时序图。

图18示出了具有两个缓冲DRAM模块和非易失性存储器模块的可替换系统布置。

具体实施方式

公开了内存模块、存储器控制器、器件以及相关方法。在一个实施例中,公开了一种存储器模块,其包括用于耦合到总线的引脚接口。总线将模块耦合到存储器控制器。该模块包括至少两个非易失性存储器器件以及布置在引脚接口与所述至少两个非易失性存储器器件之间的缓冲器。缓冲器从存储器控制器接收与DRAM存储器模块访问命令交错(interleave)的非易失性存储器访问命令。这允许点对点系统架构,点对点系统架构可将非易失性存储器模块和DRAM存储器模块一起使用以使容量和性能最大化。

参考图1,一般性地以100表示的存储器系统的一个实施例采用通过点对点信令链路106和108耦合到存储器控制电路装置110的多个存储器模块102和104。模块102和104可为相同或不同的类型,例如DRAM存储器模块或非易失性存储器模块。这里描述的架构使得可在点对点拓扑中混合不同的模块类型,以使存储器容量和性能最大化。

继续参考图1,存储器控制电路装置110的一个特定实施例可包括例如与请求者集成电路(IC)分离的分立存储器控制器,或者控制诸如DRAM和非易失性存储器的存储器器件的任何IC,并且可为任何类型的片上系统(SoC)。存储器控制电路装置110的一个实施例使用接口112向存储器模块102和104发送信号以及从它们接收信号。通过接口发送的写入数据信号可通过由写入错误检测校正(EDC)编码器114编码的错误检测校正(EDC)位来保护。写入EDC编码器114生成与写入数据符号相关联的错误信息,例如EDC奇偶校验位。可根据多个可接受的EDC算法之一生成错误编码,可接受的EDC算法包括例如简单的一位汉明码、更复杂的高速BCH(Bose,Ray-Chaudhuri和Hocquenghem)码。适用于本文所述实施例的一个特定错误代码是64/72错误检测校正码。诸如Reed-Solomon码、turbo码、循环冗余码(CRC)和低密度奇偶校验(LDPC)码的其他EDC码也是可接受的。存储器控制电路装置110包括读取EDC解码器116,用于解码与来自存储器模块102和104的输入读取数据符号相关联的错误信息。三级高速缓存118将存储器控制电路装置连接到主机处理资源(未示出)。

图2示出了总体以200表示的非易失性存储器模块的一个特定实施例,其可适于包含在图1的系统100中。非易失性存储器模块200包括衬底202,衬底例如在204(以虚线方式)处安装多组组件,以在具有相似或不同存储器模块的点对点存储器系统中实现期望的模块带宽。在206示出了组件组之一的更详细视图,应当理解,每个组采用相同的结构。出于这种考虑,每个组包括数据缓冲器组件DB 208i(这里显示了九组,“i”是从1到9),数据缓冲器组件经由第一初级DQ半字节组DQu与存储器控制电路装置110(图1)连接。D组缓冲器组件还和与另一存储器模块共享的初级半字节组DQt连接。对于一个实施例,每个数据半字节组包括四个数据DQ链路和差分选通DQS链路(未示出)。次级数据DQ半字节组DQn将每个数据缓冲器组件208i耦合到一组非易失性存储器器件210。尽管图2示出了非易失性存储器模块200使用九个数据缓冲器组件DB 208

进一步参考图2,对于一个具体实例,一组非易失性存储器器件210包括四个非易失性存储器裸片的堆叠。每个堆叠可能包含八个非易失性存储组件。每个非易失性存储器组件的接口可使用穿硅通孔或任何其他连接方法并联连接。其他堆叠配置也是可能的。在放大视图2-2中示出了堆叠的一组器件的一个实例,示出了在单个包封214内的堆叠的组件212。对于某些配置,模块衬底202的相对侧可诸如在216安装存储器组件。

继续参考图2,非易失性存储器模块200包括控制/地址(CA)缓冲器组件RCD,控制/地址(CA)缓冲器组件RCD驱动连接到每个数据缓冲器组件的中间CAi链路,使得在218,每个数据缓冲器组件驱动通向每个非易失性存储器堆叠的次级CAn链路。在可替换实施例中,CA缓冲器可直接驱动通向每个非易失性存储器堆叠的次级CAn链路。

在可替换实施例中,非易失性存储器模块200还可包括DRAM组件。模块上的数据缓冲器DB和CA缓冲器RCD组件将允许如上所述的DRAM组件的操作(如在传统DRAM DIMM模块上)或NVM组件的操作。

图3示出了适于包含在图1的非易失性存储器模块中的数据缓冲器组件的一个特定实施例的进一步细节。通常,数据缓冲器包括控制逻辑300,该控制逻辑管理连接到次级数据DQn和控制/地址CAn链路的非易失性存储器组件。控制逻辑300可以管理到多于一个非易失性存储器组件的并发事务。这种并发允许模块实现高聚合数据传输带宽。

进一步参考图3,数据缓冲器组件包括两个初级半字节接口DQa和DQb,每个初级半字节接口具有耦合到每个半字节接口的独立的接收器和发送器逻辑电路302和304。用于第一初级半字节DQa的第一独立逻辑电路302包括馈送采样器308的接收放大器30。采样器的输出则被路由到第二初级半字节逻辑电路304中的发射多路复用器312和次级接口逻辑电路多路复用器310。第一独立逻辑电路302还包括使用发射多路复用器314的发送逻辑路径。发射多路复用器314从与用于次级半字节接口DQn的第二逻辑电路332相关联的SRAM存储器330的输出连接的第一输入和耦合到来自第二独立逻辑电路304的采样器316的第二输入之间进行选择。多路复用器314的输出馈送相位和周期调整电路318和320,其被耦合到发送放大器322。

继续参考图3,与半字节接口DQb相关联的第二独立逻辑电路304类似于第一独立逻辑电路302。接收放大器324馈送采样器316,采样器316将其采样的输出馈送到第一逻辑电路发射多路复用器314的一个输入、以及次级逻辑电路332的发射多路复用器310的输入。第二逻辑电路还包括采用发射多路复用器312的发送逻辑路径。发射多路复用器312从连接到与次级逻辑电路332相关联的SRAM存储器330的输出的第一输入以及耦合到来自第一独立逻辑电路302的采样器308的第二输入之间进行选择。多路复用器312的输出馈送相位和周期调整电路326和328,其耦合到发送放大器329。

进一步参考图3,次级逻辑电路332包括采用放大器334的读取路径,该放大器馈送采样器336。采样器的输出被馈送到用作读取数据的临时存储器的SRAM存储器330。对于一个特定实施例,读取SRAM 330可组织成2KB的数据行或块,每个数据列包括64位,例如338处。340处的排/库/行地址标签为列。利用这种布置,读取数据可作为块数据接收在来自非易失性器件的SRAM中(通常通过非易失性存储器)、聚合在SRAM中、然后作为列数据从读取SRAM 330中取回并馈送到发射多路复用器314和312中的任一个或两个。

继续参考图3,次级逻辑电路332还包括写入路径,写入路径包括从采样器308(与DQa相关联)的输出或采样器316(与DQb相关联)的输出之间进行选择的发射多路复用器310。然后在344,多路复用器输出被馈送到具有相应写入索引的临时写入SRAM存储设备342。写入SRAM存储设备342以类似于读取SRAM存储器330的方式被组织,不同之处在于写入数据作为列数据接收在SRAM内、聚合在SRAM中、然后作为块数据分发到非易失性存储器。写入SRAM的输出馈送到相应的相位和周期调整电路346和348,然后经由发送放大器350朝非易失性存储器驱动。

SRAM存储设备允许并发事务发生,使得访问连接到相同数据缓冲区的两个不同非易失性存储器组件可重叠。该存储设备还允许并行事务在所有数据缓冲器组件上同步。提供该特征是因为非易失性存储器模块可使用与DRAM存储器模块所使用的相同的错误检测和校正码(EDC)。因此,访问粒度是九的倍数而非二的幂。这允许标准校验子(例如ECC、Chipkill等)所需的9/8传输和存储设备开销。因此,非易失性存储器事务将涉及九个非易失性存储器组件与模块上的九个数据缓冲器组件之间的传输。该传输将具有“块”粒度-通常为每个非易失性存储器组件2KB/4KB/8KB。由于九个DB组件并行运行,整体传输粒度将为18KB/36KB/72KB。控制器中的请求者将看到块尺寸为16KB/32KB/64KB,因为将在控制器界面中生成和检查EDC校验子。该块大小可与DRAM模块的行大小(具有并行操作的18个DRAM)相当。

一旦将非易失性存储器数据块传输给DB组件中的临时SRAM存储器,则可以列块(与DRAM模块相同的列访问粒度)来访问它。一旦块读取已将块数据从九个非易失性存储器组件移动到九个DB组件的SRAM存储器,则控制器可执行列读访问。这些列读取访问可将所有块数据或仅仅部分块数据从SRAM存储器传输给控制器。假定64B的列块和2KB/4KB/8KB的非易失性存储器数据块大小,则通常需要512/1024/2048列访问以在SRAM存储器与控制器之间传输数据块。

如果控制器想要执行列写访问,则在执行块写访问以将块从SRAM存储器传输给九个非易失性存储器组件之前,它通常将所有块数据从控制器传输给SRAM存储器(一次一个列块)。如果控制器仅仅想写块的一部分,则需要首先将块从九个非易失性存储器组件读入SRAM存储器,对SRAM存储器执行列写访问,然后执行块写访问以将修改的块从SRAM存储器传输给九个非易失性存储器组件。这也称为读取-修改-写入事务。

在一些情况下,期望将在一个初级DQ(例如DQb)处接收的数据引导到另一初级DQ(例如DQa),从而绕过次级接口电路332。这可通过使用施加到适当的多路复用器的控制信号来实现(这里,通过使发射多路复用器314能够通过采样器316的输出以及禁用次级接口的多路复用器310,数据可从DQb传递到DQa)。

缓冲逻辑电路还提供和与DRAM模块相关联的流水线延迟(pipeline latency)匹配的列数据访问的流水线延迟。在逻辑中生成的状态位生成针对以下条件之一的状态返回信号(1)使能对非易失性存储器的并行访问;(2)适应可变的非易失性存储器访问;以及(3)适应更大的非易失性存储器访问粒度。

数据缓冲器组件的接收-发送路径还提供关于时域来改变模式(调整时序信号之间的相位关系)的功能。大多数DB组件在由与CA总线相伴随的CLK链路(未示出)创建的时钟域中操作。接口的一小部分在为DQa接口所接收的DQS时序信号(未示出)的域内操作。该缓冲器包括跨域逻辑以执行两个时域之间的域交叉。

图4示出了通常标示为400的DRAM存储器模块的一个特定实施例,其适用于图1的点对点存储器系统,使得其可与另一DRAM存储器模块或诸如上述的非易失性存储器模块200组合。DRAM存储器模块400可为注册双列直插存储器模块(RDIMM,Registered DualInline Memory Module)类型,并且包括衬底402,衬底例如在404处(以虚线方式)安装多个组件组,以在具有相似或不同存储器模块的点对点存储器系统中实现点对点的期望模块带宽。在406处示出了组件组中的一个的更详细的视图,应当理解每个组采用相同的结构。考虑到这一点,每个组通过初级DQ半字节组(例如DQv)与存储器控制电路装置110(图1)连接。另一初级半字节组DQt允许模块与存储器控制电路装置(用于单个模块配置)连接,或者与另一模块连接作为共享数据路径。对于一个实施例,每个数据半字节组包括四个数据DQ链路和差分选通DQS链路(未示出)。

进一步参考图4,对于一个特定实例,每组器件包括DRAM存储器模块408、410、412和414的四个堆叠。每个堆叠可包括八个DRAM存储器组件。在放大视图4-4中示出了堆叠的器件组的一个实例,示出了单个包封418内的堆叠组件416。对于一些配置,模块衬底402的相对侧可例如在420处安装存储器部件。可使用硅通孔或任何其他连接方法将每个DRAM存储器组件的接口并联连接。其他堆叠配置也是可能的。

继续参考图4,对于一个实施例,DRAM器件的四个堆叠408-414可以环形配置互连,使得第一DRAM堆叠408与DQv半字节直接连接。第二堆叠410在411处经由路径的半字节耦合到第一堆叠408。第二堆叠410在413处经由路径的半字节关联到第三堆叠412,而第四堆叠414在415处经由路径的半字节耦合到第四堆叠414。也直接连接到DQt半字节。

继续参考图4,DRAM存储器模块400包括控制/地址(CA)缓冲器组件RCD,其驱动连接到成对DRAM存储器堆的CAI连接CAya和CAyb。对于该配置,可以独立于412和414处的成对堆叠的方式来访问例如408和410处的给定的成对DRAM堆叠。

上述各种系统组件的操作将从对存储器控制电路装置110与非易失性存储器模块200之间的交互的讨论开始。然后将使用完整的系统来显示各种可配置的操作环境,包括存储器控制电路装置、非易失性存储器模块和DRAM模块。

如上所述,本文描述的电路的各个方面使得非易失性和DRAM存储器模块能够用于点对点拓扑中,以有利地扩展系统存储容量而同时维持性能。为了支持将非易失性存储器模块包括在系统中,对于读操作,存储器控制电路装置通常根据图5A所示的步骤进行操作。在502沿着初级CA总线将读取访问命令发送给非易失性存储器模块。如下面在各种系统实例的上下文中所解释的,给非易失性存储器模块的命令可与给DRAM存储器模块的命令交错。在504,在发送命令之后,存储器控制电路装置等待来自非易失性存储器模块的指示或信号,该指示或信号表示请求的读取数据准备好从模块传输给存储器控制电路装置。如下面更加充分解释的,这种“等待”是非易失性存储器模块缓冲器将从非易失性器件到SRAM读取缓冲器330(图3)中的块读取数据的累加的结果。下面描述如何执行指示或信号的特定实施例。然后将块读取数据作为列读取数据读出到存储器控制电路装置110。然后在506,读取数据作为列读取数据沿着初级DQ半字节之一由存储器控制电路装置110从非易失性存储器模块200接收。

现在参考图5B,从存储器控制电路装置110的角度来看,在508,以与读取事务类似的方式执行写操作,其中存储器控制电路装置110向非易失性存储器200发出写入访问命令。然后在510将列写入数据传输给非易失性存储器模块。如下文更充分解释的,列写入数据在SRAM写入缓冲器342(图3)中累加,直到准备好沿着次级DQ路径传输给非易失性器件。当块数据累加完成时,非易失性存储器模块缓冲器在512向存储器控制电路装置发送写入传输完成的指示。

现在参考图6A,从非易失性存储器模块200的角度来看,在602,读取事务从存储器控制电路装置110接收读取访问命令开始。如下所述,接收到的命令可与分发给DRAM存储器模块的命令交错。呈读取数据块形式的数据在604从非易失性存储器器件210访问,并在606在SRAM读取数据缓冲器330中作为数据块聚合。一旦在608完成块读取,则例如状态位的信号可在610沿着状态线发送给存储器控制电路装置110,向存储器控制电路装置指示块读取完成。然后在612,数据从SRAM读取缓冲器330传输出来并作为列数据沿着点对点半字节传输给存储器控制电路装置110。

现在参考图6B,从非易失性存储器模块200的角度来看,在614,以与读取事务类似的方式执行写操作,其中由非易失性存储器接收写入访问命令。在616,非易失性存储器模块200上的SRAM写入缓冲器342然后接收来自存储器控制电路装置110的列写入数据。在618处,列数据在SRAM写入缓冲器342中聚合。在620,一旦列写入数据被完全聚合并被组织成用于传输给非易失性存储器器件210的写入块数据,则在622由缓冲器逻辑产生状态位并且沿着状态链路将状态位发送给存储器控制电路装置110。

图7A示出了时序图,示出用于非易失性存储器模块200的读操作的顺序的各种时序以及用于上述状态位“S”的时序。波形CK表示3.2GHz的时序参考,其对应于用于传输操作的6.4Gb/s的初级DQ信令速率。在702处,非易失性存储器模块沿着初级CA路径CAx接收激活命令,并且在704处,沿着次级CA路径CAxa重新发送该激活命令。非易失性存储器器件210然后将块读取数据传输给SRAM读取缓冲器330。在大约25微秒的时间间隔tR之后,到SRAM的内部传输完成,状态位“S”在706处被发送给存储器控制电路装置。响应于接收到状态位,存储器控制电路装置从708开始分发成组的读取命令“R”,并在710处开始重新发送。在接收到读取命令时,数据缓冲器电路将从SRAM读出作为列数据的数据读取,以用于在712处开始传输给存储器控制电路装置。

图7B示出了用于成组写操作的时序以及用于状态位“S”的相应时序。在714处,非易失性存储器模块沿着初级CA路径CAx接收激活命令,并且在716处,沿着次级CA路径CAxa重新发送。然后在718处开始,一串的写入命令由存储器控制电路装置传输并由模块接收。如上所述,在720处开始,列写入数据在SRAM写缓冲器中累加,并作为块写入数据传输给非易失性存储器。一旦块写入完成,在722处,由数据缓冲器产生状态位并沿着状态链路将状态位发送给存储器控制电路装置。状态位的接收通知控制器写操作完成。

在其中多个模块与存储器控制电路装置110交互的系统级别上,根据应用,各种可配置传输方案是可能的。下面给出了说明方案的各种实例。通常,模块配置允许在不降低性能的情况下向存储器系统增加容量以及允许使用具有DRAM模块的非易失性存储器模块。这些配置还允许以均衡或不均衡的方式在模块之间分配总系统带宽。

现在参考图8,通常表示为800的存储器系统的部分系统视图示出为与上述结构一致。部分系统视图包括存储器控制电路装置802以及非易失性存储器模块804的一些部分和DRAM模块806的一部分。相应的模块部分可被认为是电路的对应于非易失性模块半字节对成组组件206(图2)和DRAM模块半字节对成组组件406(图4)的相应“片”或复本。为了清楚起见,每个模块的相似组件以与图2和图4的标签一致的方式标记。对于一个特定实施例,全系统采用电路的九个“片”来执行存储传输。

进一步参考图8,存储器控制电路装置802包括第一数据半字节接口电路DQv,其沿着数据路径808以点对点的关系连接到DRAM模块806上的对应半字节接口。第二数据半字节接口DQu沿着数据路径810以点对点的关系连接到非易失性存储器模块804上的对应半字节接口。尽管未示出,然而对于一些实施例,用于伴随数据的时钟或选通信号的源同步时序信号路径也可在靠近每个数据路径处以点对点的关系耦合在存储器控制电路装置802与模块804和806之间。相应的CA接口电路CAx和Cay经由点对点路径816和818将存储器控制电路装置802连接到模块RCD缓冲器812和814中的每一个。

图9示出了与图8的系统对应的时序图的一个实施例,示出了与两个并发读取事务相关的各种交错命令和所产生的数据传输,其中系统带宽的一半分配给DRAM模块806,一半分配给DRAM模块804。波形CK表示3.2GHz的时序参考,对应于用于传输操作的6.4Gb/s的初级DQ信令速率。随着初级DQ速率的变化,总线的相对信号速率将会上升或下降。每个交错读取事务包括在902和904处示出的激活命令、在906和908处示出的读取命令以及在910和912处示出的读取数据。

进一步参考图9,第一读取事务开始于904处的从CAy总线上的控制器分发的激活命令“A”。对于一个实施例,该总线具有点对点拓扑以及1.6Gb/s的信令速率,其为点对点DQ总线的信令速率的四分之一。DRAM模块806上的RCD组件接收激活命令“A”,并在905处在次级CA总线CAya上将命令信息作为“ACT”命令重新发送(在该实例中,CA总线CAyb未被使用,因为仅仅访问上层DRAM组件408和410以用于读取事务)。次级CA总线CAya以0.8Gb/s运行,其为初级CA总线Cay的速度的一半以及初级DQ总线DQv速度的八分之一。速率降低的一个原因在于次级CA总线CAya是连接到模块上大约四分之一的DRAM堆叠的多点总线。在延迟适当的量以补偿缓冲器延迟之后,存储器控制电路装置802然后在906处沿着CAya总线分发读取命令“R”,其在914处由CA缓冲器组件RCD作为“RD”重新发送。然后从DRAM组件408和410访问读取数据,并且在912处将读取数据沿着初级DQ路径DQv传输给存储器控制电路装置802。

与上述的第一读取事务并发并且继续参考图8和图9,第二读取事务在902处以由存储器控制电路装置沿着初级CA路径CAx分发的激活命令“A”开始。非易失性模块804上的RCD组件在903处接收激活命令“A”并在次级CA总线CAxa上重新发送信息“ACT”。然后,存储器控制电路装置802在906处分发读取命令“R”,该读取命令在907处作为“RD”由RCD组件沿着CAxa总线重新发送。读取数据然后从非易失性组件210访问,由缓冲器累加为块数据,并在910处作为列数据沿着初级DQ路径DQu传输给存储器控制电路装置802。

对于上面参照图8-图17所示的读取事务实例,用于每个事务的命令和数据通常是流水线的。这意味着它们就事务而言占据固定的时序位置,也意味着事务可能与其他事务重叠。应当注意的是,对应于在图8-图17中讨论的每个可配置实例的写入事务以与读操作类似的方式执行,但是命令和数据的固定时序位置不同。

上述读取事务还示出了与典型系统相关的时间间隔相比可能更短的时序间隔。例如,激活ACT到读取命令RD的间隔tRCD显示为6.25ns,但对于典型的DRAM组件而言为大约12.5ns。进行时间刻度的这种压缩是为了清楚起见,并且不影响本文给出的实施例的技术精度。对于12.5ns的tRCD延迟,流水线时序同样适用。

关于事务粒度,以上实例阐述了64字节的粒度。因此,有足够的命令时隙(slot)来允许每个初级DQu和DQv时隙被数据填充。每个事务对每个64字节(“36x16b”)的组执行随机行激活和列访问。此外,每个字节的大小假定为9位。这种额外的大小用于错误检测和校验码(EDC)的校验子。如果事务流中存在库冲突,并且如果事务流在读取和写操作之间切换,则可能跳过数据时隙。这种形式的带宽低效存在于所有存储器系统中。本文所述的实施例不引入额外的资源冲突。

图10和图11示出了类似于图8和图9所示的系统操作实例,其中50%的系统带宽分配给非易失性存储器模块1004,并且50%分配给DRAM模块1006。然而,在该实例中,代替正在访问的上部DRAM器件408和410,下部器件414和412器件被访问。这通过在次级CA总线CAyb上分发命令并利用由各种DRAM组件堆叠之间的“环”连接配置形成的旁路来完成。

因此,现在参考图11,对非易失性存储器模块1004的读取访问包括在1102处在CAx总线上接收激活命令“A”,以及在1104处将该命令作为“ACT”在次级CA总线CAxa上重新发送。然后在tR+tSCD间隔之后在1106处接收对应的读取命令,并且在缓冲器延迟tBUF之后在1108重新发送读取命令。然后,在1110处在次级DQ路径DQyab上发送所得到的读取数据,然后在1112处经由DQ初级半字节路径DQu将读取数据传输给存储器控制电路装置。

与对非易失性存储器模块1004的读取事务并行,DRAM存储器模块1006在1114处沿着初级CA总线CAy接收激活命令“A”,并且在1116处将该命令作为“ACT”沿着次级CAyb总线重新发送。在即将接收到读取命令之前,在1118处接收旁路控制信号“B”,并在1120处将该旁路控制信号沿着次级CAya总线重新发送,从而在1010处使能上部与下部DRAM组件堆叠之间的旁路数据通路。然后在1122处接收读取命令“R”,并且在1124处沿着次级CA总线CAyb重新发送该读取命令。沿着旁路路径1010驱动所得到的读取数据,并且然后在1126处沿着初级DQ半字节路径DQV将读取数据传输到存储器控制电路装置。

现在参考图12和图13,另一实施例采用非易失性存储器模块1204和DRAM存储器模块1206,其中整个系统带宽可分配给DRAM模块1206。如图12所示,访问来自上部DRAM模块堆叠408和410的读取数据,并且经由初级DQv半字节路径将读取数据直接驱动回存储器控制电路装置1202。来自下部DRAM堆叠412和414的数据被驱动到初级共享DQ路径DQt上并被驱动到非易失性存储器模块缓冲器208,并且由缓冲器沿着初级DQ路径DQu重新发送到存储器控制电路装置1202。

图13示出了用于图12的上述实例的各种命令和数据的时序。随着系统带宽被完全分配给DRAM模块1206,相应的激活命令“A”在1302和1304处由存储器控制电路装置1202沿着初级CA路径CAy发送并由DRAM模块1206接收。由于上部和下部DRAM堆叠响应于在独立次级CA路径CAya和CAyb上发送的命令,因此两个激活命令“A”在1306和1308处沿着两个次级CA路径被重新发送。然后在1310和1312处沿着初级CA链路CAy接收相应的读取命令“R”,并且在1314和1316处将该读取命令沿着次路径CAya和CAyb重新发送。然后,响应于来自次级链路CAya的读取命令,在1318处将来自上部DRAM组件的读取数据沿着初级DQ路径DQv直接传输给存储器控制电路装置1202。在1320处,旁路命令“B”激活非易失性数据缓冲器208中的导引逻辑(steering logic),使得缓冲器次级接口(包括缓冲存储器SRAM)被旁通。然后在1322处,响应于来自次级链路CAyb的读取命令“R”,读取数据沿着初级DQ路径DQt被传输给非易失性存储器模块1204(从而由于读取数据从缓冲器208的重新发送而引起缓冲器延迟),并且在1324处经由初级DQ路径DQu被传输给存储器控制电路装置1202。

在点对点拓扑中采用非易失性存储器模块1404和DRAM存储器模块1406两者的另一系统实施例中,两个模块可在彼此之间直接传输数据。该实例在图14和图15中示出。通常,如图14的部分系统图所示,可从DRAM模块1406读取来自例如上部DRAM堆叠408和410的数据,同时并行地可从非易失性存储器模块1404读取数据,并将数据作为写入数据传输给下部DRAM堆叠412和414模块。实际上,三个事务并发。

图15示出了用于图14的上述实例的各种命令和数据的时序。两个读取事务中的每一个包括在1502和1504处沿着初级CA链路CAx和CAy传输的激活命令“A”。然后,这些命令在1506处沿着次级CA路径CAxa重新发送且在1508处沿着路径CAya重新发送。然后在1510和1512处接收相应的读取命令,并且相应地在1514和1516处沿着次级CA路径重新发送读取命令。

单个写入事务包括1518处的激活命令“A”,该激活命令在1520处被重新发送。然后在1522处接收写入命令,并在1524处重新发送。对于该实例,所使用的写入数据由读取事务生成给非易失性存储器。写入事务的时序被配置为将读事务与从列命令到列数据的间隔相匹配。在1526处,数据在两个模块之间在共享DQ总线DQt上传输。在1528处,附加读取数据经由DQ路径DQv直接传输给存储器控制电路装置。当用于写操作的命令-数据间隔与读操作相匹配时,当向DRAM堆叠进行转移事务或写入事务之后对该同一个堆叠进行读取事务时,存储器控制电路装置1402负责库使用。

图14和图15的传输实例可根据应用而具有不同的变型。这些变型中的一些包括:[1]传输可包括耦合(经由DQt总线)到DRAM堆叠上的写操作的来自NVM堆叠的列读操作(以及从另一DRAM堆叠经由DQv总线到控制器的独立列读操作)-这是上面在图14和图15的上下文中描述的实例。[2]传输可包括与对非易失性存储器堆叠的列读操作耦合(经由DQt总线)的来自DRAM堆叠的列读操作(以及从另一DRAM堆叠经由DQv总线到控制器的独立列读操作)。[3]上述传输[1]或[2],其中独立操作是对另一DRAM堆叠的列写操作。[4]上述传输[1],其中来自非易失性存储器堆叠的列读操作也在DQu总线上被驱动到存储器控制电路装置(以及在DQt总线上被驱动到DRAM堆叠上的写操作)。[5]上述传输[1]、[2]或[3],其中执行经由DQu总线从非易失性存储器堆叠到控制器的第二独立列读操作。[6]上述传输[1]、[2]或[3],其中执行经由DQu总线从存储器控制电路装置到非易失性存储器堆叠的第二独立列写操作。应当注意的是,上述[5]和[6]的传输变型涉及非易失性存储器模块能够执行两个同时的列操作(如DRAM模块)。

上述非易失性模块与DRAM模块之间的直接传输操作也可用于可替换的目的。可在DRAM器件中分配专用物理空间,以用作用于非易失性存储器读操作和非易失性存储器写操作的临时缓冲器。这将允许非易失性存储器模块中的SRAM缓冲器空间尺寸减小。这种可替换方案将使得所有非易失性存储器读取和写操作分两步进行。对于读取,非易失性存储器读取数据将在DQt初级链路上传输以写入临时DRAM缓冲器。当非易失性存储器读取已完成时,如前所述,可经由DQt/DQu链路在DRAM缓冲器中访问数据块。对于写入,写入数据将在DQt/DQu初级链路上传输以写入临时DRAM缓冲器。当DRAM缓冲器具有完整的块时,如前所述,它将经由DQt链路被写入非易失性存储器模块。

对于一个可替换实施例,在任一个上述系统图中采用的DRAM模块可为低负载DIMM类型,其类似于参考图4描述的RDIMM DRAM存储器模块,但是还包括介于DRAM组件与模块引脚接口之间的数据缓冲器电路。每个DRAM堆叠可以点对点配置(而非先前参考图4描述的环配置)连接到缓冲器。

现在参考图16和图17,另一个系统实施例在点对点拓扑中采用非易失性存储器模块1604和DRAM存储器模块1606,其中在某些情况下,可将全系统带宽分配给非易失性存储器模块1604。一般而言并且现在参考图16,当与诸如LRDIMM的缓冲DRAM模块配对时,数据的半字节可从非易失性存储器模块1604直接访问并经由初级DQ半字节路径DQu直接传输给存储器控制电路装置1602,并且数据的第二半字节可从非易失性存储器模块1604访问(与第一访问并发)、经由共享DQ路径DQt传输给缓冲的DRAM模块1606、然后在1608处由DRAM缓冲器电路重新发送并经由DQ初级半字节路径DQv直接传输给存储器控制电路装置1602。

图17示出了用于图16的上述实例的各种命令和数据的时序。用于读取半字节的多个激活命令“A”在1702和1704处沿着初级CA总线CAx接收,并且在1706和1708处作为“ACT”命令沿着相应的次级CA总线CAxa和CAxb重新发送。然后在1710和1712接收相应的读取命令“R”并重新发送。与接收读取命令并发,DRAM模块1606在1714处沿着初级CA路径CAy接收旁路命令“B”,向DRAM缓冲器指示使能从非易失性存储器模块1604沿着共享初级数据路径DQt发送读取数据的旁路。该数据在1716处显示,并且所生成的数据分别沿着1718和1720所示的数据路径DQu和DQv发送。应当注意的是,旁路控制信号“B”可由存储器控制电路装置1602或非易失性存储器模块1604分发。

上述系统实例在双模块上下文中示出和描述仅用于提供清晰度,并且意在传达用于可为相同类型或混合的多个存储器模块的通用点对点架构。图18中示出了用于3模块配置的一个特定实施例。通常用1800表示的系统包括耦合到成对DRAM模块1804和1806以及单个非易失性存储器模块1808的存储器控制电路装置1802。对于所示特定实施例,每个DRAM模块1804和1806为LRDIMM并且采用拓扑结构,在该拓扑结构中,对于每个半字节,一个DQ半字节(例如DQu)连接到一个DRAM插槽,另一个DQ半字节(例如DQv)连接到第二个DRAM插槽。第三组主板连接部(例如DQ)将两个DRAM模块插槽的其他DQ半字节连接在一起。第三插槽可用于非易失性模块1808或第三DRAM模块。第三插槽可在传统拓扑中耦合到存储器控制电路装置1802,其中对于每个半字节对,DQ半字节DQu和DQv均将控制器接口连接到插槽接口。

当经由一个或多个计算机可读介质而接收在计算机系统内时,上述电路的这种基于数据和/或指令的表达式可由计算机系统内的处理实体(例如一个或多个处理器)结合一个或多个其他计算机程序的执行来处理,其他计算机程序包括但不限于网络列表生成程序、地点和路线程序等,以产生这种电路的物理表现的表示或图像。这样的表示或图像此后可用于器件制造,例如通过在器件制造工艺中实现用于形成电路的各种组件的一个或多个掩模的产生。

在前面的描述和附图中,已经阐述了特定的术语和附图符号以提供对本发明的透彻理解。在某些情况下,术语和符号可能意味着实施本发明不必需的具体细节。例如,特定数量的位、信号路径宽度、信令或操作频率、组件电路或器件等中的任一者可能与上述可替换实施例中所描述的不同。此外,示出或描述为多导体信号链路的电路元件或电路块之间的互连可替换地为单导体信号链路,并且单导体信号链路可替换地为多导体信号链路。显示或描述为单端的信号和信令路径也可为差分的,反之亦然。类似地,在可替换实施例中,描述或描绘为具有高电平有效或低电平有效逻辑电平的信号可具有相反的逻辑电平。可使用金属氧化物半导体(MOS)技术、双极技术或其中可实现逻辑和模拟电路的任何其他技术来实现集成电路器件内的组件电路。关于术语,当信号被驱动到低或高逻辑状态(或被充电到高逻辑状态或放电到低逻辑状态)时,信号被称为“断言”以指示特定条件。相反地,信号被称为“解除断言”,以指示信号被驱动(或充电或放电)到除了被断言状态之外的状态(包括高或低逻辑状态,或者当信号驱动电路转变为例如开路漏极或开路集电极状态的高阻抗状态时可能出现的浮动状态)。信号驱动电路被称为当信号驱动电路对耦合在信号驱动电路与信号接收电路之间的信号线上的信号进行断言(或者解除断言,在由上下文明确地表述或指示的情况下)时将信号“输出”给信号接收电路。当信号在信号线上被断言时,信号线被称为“被激活”,当信号被解除断言时,信号线被“去激活”。此外,附加到信号名称的前缀符号“/”指示该信号是有效低电平信号(即,所断言的状态为逻辑低电平状态)。信号名称上的线(例如

尽管已经参照本发明的特定实施例描述了本发明,然而显而易见的是,在不脱离本发明的更广泛的精神和范围的情况下,可对其进行各种修改和改变。例如,任何实施例的特征或方面可至少在可行的情况下与任何其他实施例结合使用,或者代替其对应特征或方面。因此,说明书和附图被认为是说明性的而非限制性的。

技术分类

06120113792912