首页> 中国专利> 用于高性能、高容量带寄存器的存储器模块的动态随机存取存储器(DRAM)部件

用于高性能、高容量带寄存器的存储器模块的动态随机存取存储器(DRAM)部件

摘要

本文描述的实施例描述了用于高性能、大容量带寄存器的存储器模块(诸如带寄存器的双列直插式存储器模块(RDIMM))的动态随机存取存储器(DRAM)部件的技术。一个DRAM部件可以包括存储器单元集合和引导逻辑。引导逻辑可以包括第一数据接口和第二数据接口。第一数据接口和第二数据接口以第一模式选择性地耦合到控制器部件,并且第一数据接口以第二模式选择性地耦合到控制器部件,并且第二数据接口以第二模式选择性地耦合到第二DRAM部件。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-08-14

    授权

    授权

  • 2017-12-05

    实质审查的生效 IPC(主分类):G06F13/00 申请日:20151028

    实质审查的生效

  • 2017-08-29

    公开

    公开

说明书

背景技术

计算存储器系统通常由连接到一个或多个处理器的一个或多个动态随机存取存储器(DRAM)集成电路(本文中被称为DRAM设备)组成。多个DRAM设备可以被布置在诸如双列直插式存储器模块(DIMM)的存储器模块上。DIMM包括安装在印刷电路板(PCB)上的一系列DRAM设备,并且通常被设计用于个人计算机、工作站、服务器等的使用。存在多种不同类型的存储器模块,包括:无缓存的DIMM(UDIMM),其中命令/地址和数据总线都直接附接到DRAM部件;带寄存器的DIMM(RDIMM),其中命令/地址总线被缓冲,但数据总线未被缓冲;和负载降低的DIMM(LRDIMM),其中对于命令/地址总线以及数据总线两者存在缓存芯片。一般而言,由于存储器通道的电信号传送性质较差,存储器通道的容量和带宽要求越高,需要越多的缓冲以实现期望的性能。

随着平滑缩小光刻特征尺寸,连续几代的DRAM部件已经出现在市场上。因此,每一代的设备存储容量都已经增加。随着晶体管性能的提高,每一代都看到了接口的信号传送速率增加。

不幸的是,一个未示出可比较改进的存储器系统设计的度量是单个存储器通道可以支持的最大模块数。随着信号传送速率的增加,最大模块数逐渐减少。

这种减少的主要原因是在标准存储器系统中使用的链路拓扑。当更多的模块被添加到系统时,信号传送完整性降低,并且高速信号传送变得越来越困难。当以最大信号传送速率运行时,当今的典型存储器系统仅限于一个或两个模块。

某些未来的存储器系统可能受限于以最高信号传送速率在单个模块上设备的单内存区块(rank)(或设备堆叠的单内存区块)。

附图说明

在附图的图中通过示例的方式而非限制的方式图示了本公开内容。

图1是根据一个实施例的具有包含多个通道(其中每个通道具有2个DIMM)的存储器系统的四处理器计算系统的框图。

图2示出了根据一个实现的常规存储器系统中的信号传送链路的物理连接拓扑。

图3A是根据一个实施例的具有72×8DRAM的两个存储器模块的RDIMM存储器系统的框图。

图3B是具有根据一个实施例的具有18×8DRAM的一个存储器模块和连续性模块的RDIMM存储器系统的框图。

图4A-4C是根据各种实施例的具有不同数量的DRAM堆叠的RDIMM的框图。

图5是根据一个实施例的具有在链中布置的多个DRAM堆叠的存储器系统的框图,其中DRAM部件包括两个主DQ接口。

图6A-6B示出了根据一个实施例的被定向到具有两个模块存在的存储器系统的读取事务。

图7A-7B示出了根据一个实施例的被定向到具有单个DRAM模块和连续性模块呈现的系统的读取事务。

图8A-8B示出了根据一个实施例的在相同模块上的两个DRAM堆叠之间的直接传递。

图9A-9B示出了根据一个实施例的在不同模块上的两个DRAM堆叠之间的直接传递。

图10示出了根据一个实施例的用于各种模块和通道配置的由控制器部件看到的增量读取延迟。

图11示出了根据一个实施例的用于在主DRAM部件中的DQa接口和DQb接口之间的接收到发射路径的附加细节。

图12示出了根据一个实施例的与两组波形的定时关系。

图13A-13B示出了根据另一实施例的具有DB缓冲区的存储器模块。

图14A-14B示出了根据另一实施例的具有DB缓冲区和半速率辅DQ链路的存储器模块。

图15A-15B示出了根据另一实施例的具有计时DQ链路的两个存储器模块。

图16A-16B示出了根据另一实施例的具有计时DQ链路的一个存储器模块。

图17是根据一个实施例的DQ缓冲区的写入操作的定时图。

图18是根据另一实施例的DQ缓冲区的写入操作的定时图。

图19示出了根据一个实施例,图17和图18的定时示例可以组合在一起以在任意大的范围上的DQS和CK域之间的自动跟踪漂移。

图20示出了根据一个实施例的具有替代DQ拓扑的另一存储器系统。

图21示出了根据另一实施例的在其中单个DRAM模块包含九个DRAM堆叠的系统配置。

图22是根据一个实施例的具有布置在环中的、其中每个DRAM堆叠包括两个数据接口的多个DRAM堆叠的存储器模块的框图。

图23是根据一个实施例的由图22的存储器模块的读取操作的定时图。

图24是根据另一实施例的具有被布置在线性链中的至少两个组中的、其中每个DRAM堆叠包括两个数据接口的多个DRAM堆叠的存储器模块的框图。

图25是根据另一实施例的由图24的存储器模块的读取操作的定时图。

图26是根据另一实施例的具有被布置在线性链中的至少两个组中的、其中每个DRAM堆叠包括两个数据接口多个DRAM堆叠的存储器模块2600的框图。

图27是根据一个实现的其中每个存储器部件包括单个数据接口的存储器部件的标准堆叠的框图。

图28是根据一个实现的其中每个存储器部件包括两个数据接口的存储器部件的堆叠的框图。

图29是根据一个实施例的其中堆叠包括两个数据接口并且每个存储器部件包括一个数据接口的存储器部件的堆叠的框图。

图30A根据另一实施例的其中堆叠包括两个数据接口并且每个存储器部件包括一个数据接口的存储器部件的堆叠的框图。

图30B是根据一个实施例的具有两个堆叠的存储器模块的侧视图,每个堆叠包括两个数据接口并且每个存储器部件包括一个数据接口。

图31图示出了根据一个实施例的通过过双端口堆叠的通过路径。

图32图示了根据一个实现的通过具有两个数据接口的堆叠的通过路径。

具体实施方式

本文描述的实施例描述了高性能、高容量的带寄存器的内存模块(诸如带寄存器的双列直插式存储器模块(RDIMM))的动态随机存取存储器(DRAM)部件的技术。一个DRAM部件可以包括存储器单元集合和引导逻辑(steering logic)。引导逻辑可以包括第一数据接口和第二数据接口。第一和第二数据接口以第一模式选择性地耦合到控制器部件,并且第一数据接口以第二模式选择性地耦合到控制器部件,并且第二数据接口以第二模式选择性地耦合到第二DRAM部件。本文的其他实施例描述了具有用于高性能,高容量RDEVIM的堆叠动态随机存取存储器(DRAM)部件的双端口裸片的技术。一个存储器模块可以包括模块接口、连接在共享总线上的命令和地址(CA)接口、以及至少两组堆叠的存储器部件。存储器部件的每一堆叠包括在线性链中利用点对点拓扑连接的两个数据接口。第一组中的第一堆叠包括耦合到模块接口的第一数据接口和耦合到第二组中的第二堆叠的第二数据接口。本文的其它实施例描述了高性能、高容量RDIMM的DRAM部件的双端口堆叠的技术。一种装置包括包括至少两个封装接口的封装基板和包括堆叠在封装基板上的多个均匀存储器部件的双端口堆叠。双端口堆叠的第一存储器部件包括连接到封装基板上的至少两个封装接口的第一封装接口的第一外部数据接口和连接到双端口堆叠中的所有其他存储器部件的第一内部数据接口。堆叠中的第二存储器部件包括连接到封装基板上的至少两个封装接口的第二封装接口的第二外部数据接口以及连接到双端口堆叠中的所有其他存储器部件的第二内部数据接口。

如上所述,当更多的模块被添加到存储器系统时,信号传送完整性可能降低,减少信号速率。因此,为了以最大信号速率工作,传统的存储器系统仅限于一个或两个模块。本文描述的实施例针对具有存储器模块的数量增加以及每个模块的内存区块增加的存储器系统。存储器模块的实施例可以使用具有稍微修改或者没有修改的标准存储器部件进行构建。存储器部件的实施例可以被用在具有潜在信号传送速率和容量限制的遗留存储器系统以及具有较高信号传送速率和容量的存储器系统中。本文描述的实施例可以与标准错误检测和校正(EDC)编码兼容,包括标准(汉明)ECC比特编码、标准“芯片杀死”符号编码、或技术中的类似编码,诸如技术、SDDC,扩展ECC,高级ECC和Chipspare或跨多个存储器芯片(即,集成电路裸片)扩展位的类似技术。

在一个实施例中,DRAM部件可以包括一组存储器单元和耦合到该组存储器单元的引导逻辑。引导逻辑可以包括第一数据接口和第二数据接口。第一和第二数据接口以第一模式选择性地耦合到控制器部件(例如,处理器的存储器控制器)。在第二模式中,第一数据接口选择性地耦合到控制器部件,并且第二数据接口选择性地耦合到第二DRAM部件。第一模式可以是当DRAM部件是在DIMM中时,其被插入到逻辑存储器系统,并且第二模式是当DRAM部件是在DIMM中时,其被插入到如本文所描述的改进的存储器系统。

在另一实施例中,存储器模块包括具有第一、第二和第三数据线集合以及第一和第二引脚集合的印刷电路板,第一引脚集合耦合到第一数据线集合,第二引脚集合耦合到第二数据线集合。第一DRAM部件可以位于印刷电路板上的第一位点,并且第二DRAM部件可以位于印刷电路板上的第二位点。第一DRAM部件包括耦合到第一数据线集合的第一数据接口和耦合到第三数据线集合的第二数据接口。第二DRAM部件包括耦合到第三数据线集合的第一数据接口和耦合到第二数据线的第二数据接口。

在另一实施例中,DRAM部件包括存储器单元集合,诸如被组织为一个或多个存储库组的存储器单元。DRAM部件还包括可以被配置为将数据引导到存储器单元并引导来自存储器单元的数据以及引导来自其他DRAM部件的数据的引导逻辑。在一个实施例中,引导逻辑包括耦合到第一数据链路集合的第一接收器、耦合到第一数据链路集合的第一传送器、耦合到第二数据链路集合的第二接收器、以及耦合到第二数据链路集合的第二传送器。引导逻辑还包括多个多路复用器以促进DRAM部件的三个数据链路集合之间的数据路径。在一个示例中,引导逻辑还包括具有耦合到第一传送器的输出的第一多路复用器、具有耦合到第二传送器的输出的第二多路复用器、第三多路复用器、具有耦合到第一多路复用器的输入和第二多路复用器的输入的输出的第四多路复用器、具有耦合到存储器单元集合的输出的第五多路复用器、以及耦合到第三数据链路集合的输出的第六多路复用器。第一接收器耦合到第二多路复用器的输入并耦合到第三多路复用器的输入。第二接收器耦合到第一多路复用器的输入并耦合到第三多路复用器的输入。第三多路复用器的输出耦合到第五多路复用器的输入,并且耦合到第六多路复用器的输入。第三数据链路集合耦合到第五多路复用器的输入并耦合到第四多路复用器的输入。存储器单元集合耦合到第四多路复用器的输入并耦合到第六多路复用器的输入。

在另一实施例中,存储器模块包括具有第一数据线集合、第二数据线集合和第三数据线集合以及第一引脚集合和第二引脚集合的印刷电路板(PCB),第一引脚被耦合到第一数据线路集合。存储器模块包括位于PCB上的第一位点处的第一DRAM部件堆叠,位于PCB上的第二位点处的第二DRAM部件堆叠、位于PCB上的第三位点处的第三DRAM部件堆叠、以及位于PCB上的第四位点处的第四DRAM部件堆叠。第一DRAM部件堆叠包括耦合到第一数据线路集合的第一数据接口和耦合到第二数据线路集合的第二数据接口。第二DRAM部件堆叠包括耦合到第二数据线路集合的第一数据接口和耦合到第三数据线路集合的第二数据接口。第三DRAM部件堆叠包括耦合到第三数据线路集合的第一数据接口和耦合到第四数据线路集合的第二数据接口。第四堆叠的DRAM部件包括耦合到第四数据线集合的第一数据接口。

如本文所使用的DRAM堆叠包括在存储器模块上的单个位置中堆叠在一个或多个封装中堆叠的一个或多个DRAM裸片。在通常的单裸片封装(SDP)实施例中,DRAM堆叠仅包括一个DRAM裸片和一个封装。备选实施例可以包括容纳多个DRAM裸片的堆叠的单个封装,例如具有硅通孔(TSV)连接的3DS裸片堆叠或在单个封装中具有两个DRAM裸片的双裸片封装(DDP)。

在另一实施例中,存储器封装包括封装基板,封装基板包括至少两个数据接口和堆叠在封装基板上的存储器部件堆叠。堆叠的存储器部件是同构的。存储器部件中的每一个包括连接到堆叠的存储器部件的子集的外部数据接口和连接到堆叠的所有存储器部件的内部数据接口。至少两个存储器部件的外部数据接口耦合到封装基板上的至少两个数据接口。可以通过最顶层的裸片或最底层的裸片作为主数据接口(这里也称为外部数据接口)来对堆叠中的任何存储器部件进行数据访问。堆叠可以将数据从主接口中的第一主接口通过辅接口传递到主接口中的第二主接口。此上下文中的辅接口也可称为内部接口。如本文所述的内部接口可以不耦合到封装,并且主接口用于耦合到外部部件。

图1是根据一个实施例的具有包含多个通道的存储器系统的四处理器计算系统100的框图,其中每个通道具有2个DIMM。计算系统100包括四个处理器插槽,其中每个插槽包含多个存储器通道。在所描绘的实施例中,每个通道包括两个DIMM 102。在该计算系统中,DIMM 102可以是在命令/地址通道上具有缓冲区(这些命令/地址缓冲区通常被称为“RCD”芯片),但是在数据总线上没有缓冲区(数据总线缓冲芯片通常被称为“DB缓冲区”),并且被布置在可以达到信号速率高达每DQ信号6.4Gb/s的“点到点”DQ拓扑(下面将要详细讨论)中的RDIMM。该架构允许每通道两个插槽的最大模块容量(2SPC)。2SPC可以使用每个通道1DIMM(1DPC)或每通道两个DIMM(2DPC)的DIMM进行填充(populated)。每个DRAM芯片的最小DQ链路粒度(其中每个芯片包含两个或更多个DRAM裸片的3D“堆叠”)可以是四(即,每个DRAM的宽度为“x4”;x4DQ链路粒度也称为“半字节(nibble)”)。这种粒度是存储器系统使用的计时的结果。具有伴随每组四个DQ链路的定时链路DQS(例如,具有两个互连线的差分选通(strobe))。定时链路DQS也可以被认为是数据选通链路。在两个DRAM堆叠之间划分DQ半字节是不可能的;四个链路(加上定时选通)必须连接到同一个DRAM堆叠。

在一个实施例中,DIMM 102包括具有第一数据线路集合、第二数据线路集合和第三数据线路集合以及第一引脚集合和第二引脚集合的印刷电路板,第一引脚集合耦合到第一数据线路集合,第二引脚集合耦合到第二数据线路集合。DIMM 102的位于印刷电路板上的第一位点(site)的第一DRAM部件包括耦合到第一数据线路集合的第一数据接口和耦合到第三数据线路集合的第二数据接口。位于印刷电路板上第二位点的第二DRAM部件包括耦合到第三数据线路集合的第一数据接口和耦合到第二数据线路集合的第二数据接口。第一数据接口可以被布置成第一半字节,并且第二数据接口可以被布置成第二半字节,第一半字节和第二半字节各自包括相应的定时链路,例如数据选通链路。

在另一实施例中,DIMM 102包括暂存时钟驱动器(RCD,registered clockdriver)部件。印刷电路板包括第一CA线路集合和第二CA线路集合和耦合到第一CA线路集合的第四引脚集合。第二CA线路集合耦合在RCD部件和第一位点之间以及RCD部件和第二位点之间。

在一个实现中,第一DRAM部件是第一位点处的第一DRAM堆叠的一部分,并且第二DRAM部件是第二位点处的第二DRAM堆叠的一部分。第一DRAM堆叠可以包括主DRAM部件和多个辅DRAM部件。第二DRAM堆叠包括主DRAM部件和多个第二DRAM部件。

在另一实现中,DIMM 102包括位于印刷电路板上的第三位点处的第三DRAM堆叠和位于印刷电路板上的第四位点处的第四DRAM堆叠。第一DRAM堆叠、第二DRAM堆叠、第三DRAM堆叠和第四DRAM堆叠可以连接在第一引脚集合和第二引脚集合之间的链中。第三DRAM堆叠可以包括具有耦合到第三数据线路集合的第一子集的第一数据接口和耦合到第三数据线路集合的第二子集的第二数据接口的第三DRAM部件。第四DRAM堆叠可以包括具有耦合到第三数据线路集合的第三子集的第一数据接口和耦合到第三数据线路集合的第四子集的第二数据接口的第四DRAM部件。该实现还可以包括如上所述的RCD部件、CA线和引脚。

在一个实现中,在写入操作期间,第一数据接口被配置为接收数据,并且第二数据接口被配置为重发射数据。这可以用于多内存区块写入操作。在读取操作期间,第二数据接口被配置为接收数据,并且第一数据接口被配置为重发射数据。这可以用于多内存区块读取操作。

在一个实现中,DRAM部件包括组成第一存储库(bank)组和第二存储库组的存储器单元集合。第一数据接口可以访问第一存储库组或第二存库储组中的至少一个。在另一实现中,DRAM部件包括被组织为单个组的存储器单元集合。

在一个实施例中,DIMM 102的DRAM部件包括存储器单元集合和耦合到该存储器单元集合的引导逻辑。引导逻辑包括第一数据接口和第二数据接口。第一数据接口和第二数据接口以第一模式选择性地耦合到控制器部件。在第二模式中,第一数据接口选择性地耦合到控制器部件,并且第二数据接口被选择性地耦合到第二DRAM部件。在一个实施例中,第一数据接口被布置成第一半字节,并且第二数据接口被布置成第二半字节,第一半字节和第二半字节各自包括相应的定时链路。

在另一实施例中,第一DRAM部件是第一DRAM堆叠的一部分,第二DRAM部件是第二DRAM堆叠的一部分。在另一实施例中,引导逻辑包括选择性地耦合到第一数据接口和第二数据接口的第三数据接口。第三数据接口耦合到第一DRAM堆叠中的通过硅通孔(TSV)链路集合,用于向第一DRAM堆叠的辅DRAM部件的写入操作或从第一DRAM堆叠的辅DRAM部件的读取操作。在另一实施例中,第一DRAM部件是第一DRAM堆叠的主DRAM部件,第二DRAM部件是第二DRAM堆叠的另一主DRAM部件或第二DRAM堆叠的辅DRAM部件中的至少一个。在另一实施例中,第一DRAM部件是DRAM堆叠的辅DRAM部件,并且第二DRAM部件是DRAM堆叠的主DRAM部件或另一辅DRAM部件中的至少一个。

下面关于图3-20更详细地描述DIMM 102和DIMM 102的DRAM部件,在对标准存储器系统的以下描述之后。

标准系统中的链路拓扑

图2示出了根据一个实施方式的传统存储器系统200中的RDIMM 202的信号传送链路的物理连接拓扑。信号传送链路可以被认为是高速信号链路。有两类链路:CA(控制地址)链路和DQ(数据)链路。这些信号可以由诸如图1的处理器中的一个上的存储器控制器的控制器部件204发射(并在DQ链路的情况下被接收)。这些信号通常由RDIMM202的缓冲器部件接收(并且在DQ链路的情况下被发射)。RDIMM 202可以使用缓冲区部件206来从控制器部件接收主CA链路。在主CA链路上接收到的CA信息可以以较小的延迟(推迟)成本在辅CA链路上重发射。在该实现中,DQ链路不被缓冲,并且主DQ链路从控制器部件通过模块插槽连接到DRAM部件208。

在一个实现中,DRAM部件208被组装成高密度3D堆叠(使用“硅通孔”(“TSV”)连接进行堆叠内裸片(die)到裸片互连),如所图示的。DQ链路耦合到最底层的DRAM部件,并且该主DRAM将DQ信息重发射到到辅DRAM部件的TSV链路上(诸如在写操作期间)。在读取操作的情况下,来自所选辅DRAM的TSV链路上的DQ信息由主DRAM接收并重发射给控制器部件204。在一些实现中,TSV链路通过硅通孔技术实现。这也称为3D裸片堆叠。通常,TSV链路可以以比主链路更低的信号传送速率操作,但是具有更多链路,因此带宽匹配。

在图2中,假设主DQ链路以最高可能的信号传送速率进行操作。这最大化通过x72DQ通道可用于控制器部件204的数据带宽。只有通过点对点互连拓扑才能实现最高的DQ信号速率。在没有本文描述的一些实施例的优点的情况下,这将将存储器通道限制为单个模块,其中在模块202上的DRAM堆叠的单个内存区块(rank),其中DRAM容量为"n*#of DRAM堆叠",其中“n”是3D堆叠中DRAM裸片的数量。

如本文所述,对于每个DRAM堆叠的最小DQ链路粒度可以是四(x4)或半字节。这种粒度是由存储系统使用的计时的结果。存在伴随每组四个DQ链路的定时链路DQS(例如,具有两个互连线的差分选通)。在这种实现中,不可能在两个DRAM堆叠之间划分DQ半字节。也就是说,四个链路(加上定时选通)必须连接到同一个DRAM堆叠。

点对点DQ拓扑和x4DQ粒度的两个约束允许x72DQ通道以最大信号传送速率连接到仅18个DRAM堆叠。如果更多的内存模块被添加到通道,或者更多的内存区块被添加到模块中,则可能需要减少信号传送速率。

一些常规的存储器系统可以在存储器模块上的DQ链路的路径中使用缓冲区部件。这些称为LRDIMM(负载减少-双列直插式存储器模块)。这些模块可以在模块上支持更多DRAM堆叠的内存区块,但是由于内存模块上的额外的缓冲区部件具有更高的制造成本。RDIMM的容量性能折衷限制了内存系统设计者。本文描述的高性能、大容量带寄存器的内存模块的实施例可以解决或减少该问题,并且可以以最高可能的信号传送速率提供显著更高的存储容量。

具有高性能、大容量带寄存器的存储器模块的存储器系统

图3A是根据一个实施例的具有两个具有72×8DRAM的存储器模块的RDIMM存储器系统300的框图。如下所述,RDIMM存储器系统300的物理连接拓扑与常规存储器系统200的物理连接拓扑不同。信号传送链路可以被认为是高速信号链路。有两类链路:CA(控制地址)链路和DQ(数据)链路。这些信号可以由诸如图1的处理器中的一个上的存储器控制器的控制器部件304发射(并接收,在DQ链路的情况下)。这些信号通常被RDIMM302的缓冲区部件接收(并发射,在DQ链路的情况下)。RDIMM302可以使用缓冲区部件306来从控制器部件接收主CA链路。在主CA链路上接收到的CA信息可以以较小的延迟(推迟)成本在辅CA链路上被重发射。在该实现中,DQ链路不被缓冲,并且主DQ链路从控制器部件304通过模块插槽连接到DRAM部件308。

在一个实现中,如图所示,将DRAM部件308组装成如所述的高密度TSV(通过硅片通道)堆叠。DQ链路耦合到最底层的DRAM部件,并且该主DRAM将DQ信息重新发射到到辅DRAM部件的TSV链路上(例如,在写操作期间)。在读取操作的情况下,来自所选择的辅DRAM的TSV链路上的DQ信息由主DRAM接收并被重发射给控制器部件304。在一些实现中,TSV链路通过如本文所述的硅通孔技术或3D裸片堆叠来实现。

在图3A中,假设主DQ链路以最高可能的信号传送速率进行操作。这最大化通过x72DQ通道可用于控制器部件204的数据带宽。与在单个模块中需要DRAM堆叠的单内存区块以获得最高DQ信号速率的传统存储器系统200不同,RDIMM存储器系统300包括点对点互连拓扑,其中四个DRAM堆叠被布置在链中。如本文所述,每个DRAM堆叠的最小DQ链路粒度可以是四(x4),也称为具有定时链路DQS(例如,具有两个互连线的差分选通)的半字节,其伴随每组四个DQ链路。

RDIMM存储器系统300的容量可以通过三种修改(包括向DRAM部件308添加第二DQ半字节接口的第一修改)以最高可能的信号传送速率增加4倍。第二DQ半字节接口连接到四个DQ链路和DQS定时链路(具有两条导线的差分信号)。该接口的一个实施例的细节在下面关于图5进行描述。在一个实施例中,DRAM部件308的第一接口或第二接口可以连接到控制器部件304以及第一接口或第二接口接口可以连接到印刷电路板上在另一设备位点的另一DRAM堆叠中的另一DRAM部件308。此外,第一接口或第二接口可以用于访问DRAM内核(例如,DRAM部件的存储器单元集合)。这两个接口也可以被用于传递与其连接的另一DRAM的数据。

在图3A中,每四个DRAM堆叠集合以环形连接,其中第一DRAM堆叠和最后一个DRAM堆叠连接到模块插槽。

通过改变主DQ半字节组的互连模式的第二修改,RDIMM存储器系统300的容量可以以最高可能的信号传送速率增加4倍。图3A图示了这用于一对半字节组,但是另外八对半字节组具有完全相同的模式。

两个半字节组在控制器部件304处被指定为DQu 310和DQv312。用于四个DQ链路和差分DQS链路的点对点互连线经由主板基板从控制器接口连接到模块插槽。两个半字节组连接到不同的模块插槽。第三半字节组被指定为DQt 314,主板上对应的互连线连接在两个模块插槽之间。该主板线路图可以允许两个模块302、316由控制器部件304并行访问。该访问由DQu和DQv半字节组310、312进行。在该配置示例中将不使用DQt半字节组314。

通过将主CA链路改变为点到点拓扑的第三修改,RDIMM存储器系统300的容量可以以最高可能的信号传送速率增加4倍。这是可能的,因为正常的多分支拓扑使用的存储器系统被迫以较低的信号传送速率操作。也就是说,单个多点CA总线可以被两个点对点CA总线替代,两个点对点CA总线每个是一半宽度,并以两倍的信号传送速率运行。这些两个点对点总线在图3A中标示为CAx 318和CAy 320。

改进的模块-系统示例lxB

图3B是根据一个实施例的具有一个具有18×8个DRAM的存储器模块352和连续性模块366的RDIMM存储器系统350的框图。在该实施例中,在第一插槽中存在单个DRAM模块352。第二插槽由连续性模块366占据。针对每个半字节组对,连续性模块366将DQt半字节组314连接到DQu半字节组310。CAy链路320未连接在连续性模块366中,而CAx链路318连接到RCD部件356。RIMIM 352包含与图3A中的RDIMM 302一半一样多的DRAM堆叠。这图示了利用上面关于图3A描述的三个修改可能的容量范围。由于可以填充通道插槽的模块的数量,在本实施例中可以实现2x的容量系数。在另一实施例中,通过改变模块上的DRAM堆叠的数量,可以实现4x的另一容量系数。具有9个DRAM堆叠的模块被示出在图4C中。

应当注意,主DQ和主CA链路可以在整个容量范围内利用点到点拓扑。这样允许独立于性能来调整通道容量。

模块概要

图4A-4C是根据各种实施例的具有不同数量的DRAM堆叠的RDIMM的框图。

图4A示出了具有三十六个DRAM堆叠的RDIMM 400。图4B示出了具有十八个DRAM堆叠的RDIMM 410。图4C示出了具有九个DRAM堆叠的RDIMM 420。这种配置可以在模块上DRAM堆叠的捆绑中提供额外的灵活性。在其他实现中,可以修改内部DRAM设计,使得具有九个DRAM堆叠的单个模块可以向控制器部件提供完整的数据带宽。这种修改可能会给DRAM增加一些成本,但可能会增加额外的2x容量范围。关于图20更详细地描述该修改。

DRAM接口细节

图5是根据一个实施例的具有在链中布置的多个DRAM堆叠的存储器系统500的框图,其中DRAM部件包括两个主DQ接口。存储器系统500包括36个设备堆叠,其中四个在图5中示出。每个DRAM堆叠508包括主DRAM部件和七个辅DRAM部件。环中的第一DRAM堆叠508的主DRAM 502经由第一接口510(也称为第一DQ半字节接口)耦合到第一半字节组DQu 310。第二接口512耦合到另一DRAM堆叠中的第二DRAM部件(在该实现中在环中的第二DRAM堆叠)。环中的最后一个DRAM堆叠508中的主DRAM 502经由环中主DRAM部件的第二接口512(也称为第二DQ半字节接口)耦合到第二半字节组DQt 312。在其他实施例中,环或链可以包括更多或更少的DRAM堆叠的位点,诸如本文所述的两个DRAM堆叠。应当注意,在模块部分视图中,两个DRAM堆叠通过一个接口连接到插槽连接,并且(在图5的左上方),DRAM堆叠之一通过一个接口连接到插槽连接,并且通过第二接口连接到另一DRAM堆叠。例如,第一DRAM堆叠经由模块插槽和第二DRAM堆叠连接到存储器控制器部件,并且第二DRAM堆叠连接到第三DRAM堆叠。第三DRAM堆叠连接到第四DRAM堆叠,并且第四DRAM堆叠经由存储器插槽连接到存储器控制器。

主DRAM部件的第一接口510和第二接口512支持上述系统示例。两个DQ半字节接口510、512在主DRAM部件上标记为DQa和DQb。每个接口连接到四个外部DQ链路和一个DQS定时链路(通常连接到两个外部电线的差分信号)。

在一些实现中,DRAM堆叠的主DRAM上的两个接口可以是相同的,并且可以被编程或以其它方式配置有静态控制寄存器字段或者使用一些等效的技术。这种静态配置方法可以允许以非对称方式连接相同的DRAM堆叠。在其他实现中,DRAMS可以被特别地制造为主部件或辅部件。

如图5左下方的分解图所示,DRAM堆叠508中的一个包括与七个辅DRAM 504堆叠的主DRAM 502。在其他实现中,其他堆叠配置是可能的。主DRAM 502和辅DRAM 504与TSV总线集合514连接。这些TSV总线514通常比主总线更宽和更慢。它们通过TSV(硅通孔)技术或一些等效的方法物理地实现。这些TSV总线包括用于数据(TSV DQ)和命令地址(TSV CA)(未被单独图示出)的链路。

在该实现中,辅DRAM 504通常具有一对主DQ半字节接口和主CA接口,其全部由控制寄存器字段禁用。主DRAM 502具有一对主DQ半字节接口510、512和主CA接口516,它们都由控制寄存器字段启用。这些主接口510、512、516连接到TSV接口522。这些接口的这些连接细节在图5的右侧的分解图中被示出。

DRAM部件(在图5的右侧的分解图中图示的主部件)包括存储器单元集合,诸如一个或多个存储库518和引导逻辑520。在一个实施例中,引导逻辑提供主接口510、512和516之间的路径和连接。DQa和DQb接口510、512各自包含用于四个DQ链路的接收器521和传送器522。这些接口的附加细节在本文中被描述。

每个接口的接收器521可以连接到另一接口的传送器522,以允许数据通过主DRAM502。当所选择的DRAM堆叠没有直接连接到主插槽的接口时,需要传递操作。

在另一实施例中,DRAM部件502包括存储器单元集合,诸如被组织为一个或多个存储库组的存储器单元。DRAM部件502还包括可被配置为将数据引导到存储器单元并引导来自存储器单元以及其它DRAM部件的数据的引导逻辑。在一个实施例中,引导逻辑包括耦合到第一数据链路集合的第一接收器521,耦合到第一数据链路集合的第一传送器522,耦合到第二数据链路集合的第二接收器521、和耦合到第二数据链路集合的第二传送器522。引导逻辑还包括多个多路复用器523(未单独标记),以促进来自DRAM部件的三个数据链路集合之间的数据路径。在一个示例中,引导逻辑还包括:具有耦合到第一传送器的输出的第一多路复用器、具有耦合到第二传送器的输出的第二多路复用器、第三多路复用器、具有耦合到第一多路复用器的输入和第二多路复用器的输入的输出的第四多路复用器、具有耦合到存储器单元集合的输出的第五多路复用器、以及具有耦合到第三数据链路集合的输出的第六多路复用器。第一接收器耦合到第二多路复用器的输入并耦合到第三多路复用器的输入。第二接收器耦合到第一多路复用器的输入,并耦合到第三多路复用器的输入。第三多路复用器的输出耦合到第五多路复用器的输入,并且耦合到第六多路复用器的输入。第三数据链路集合耦合到第五多路复用器的输入并耦合到第四多路复用器的输入。该存储器单元集合耦合到第四多路复用器的输入并耦合到第六多路复用器的输入。

来自任一接口的接收器521的数据也可以被引导到用于写操作的DRAM存储库518。该存储库518可以属于主DRAM,也可以属于辅DRAM中的一个。例如,如果写入数据进入辅DRAM上的存储库,则在TSV DQ链路514上重发射主数据。还在TSV CA链路514上重发射关于CA链路516的主CA命令地址信息。然而,如果写入数据进入主DRAM上的存储库,则主数据被直接写入主存储库。在一些实现中,可以用可配置的延迟对主存储库进行写入,因此主DRAM的存储库行为与辅DRAM的存储库行为相匹配。在一些实现中,当写入操作针对主DRAM时,主CA命令地址信息通常不会在辅CA链路上重发射。

还可以通过读操作访问存储库518,以及由主DRAM 502的任一接口发射的所读取的数据。该存储库518可以属于主DRAM 502,或者它可以属于辅DRAM中的一个。例如,如果所读取的数据来自辅DRAM上的存储库,则在写入操作的情况下,在TSV CA链路514上重发射关于CA链路516的主CA命令地址信息。在主DQ链路(510或512)上重发射TSV读取数据(从TSV链路514)。如果所读取的数据来自主DRAM上的存储库,则直接从主存储库读取数据。这也可以用可配置的延迟来实现,所以主DRAM的存储库行为与辅DRAM的存储库行为相匹配。在一些实现中,当读取操作针对主DRAM时,主CA命令地址信息通常不会在辅CA链路上重发射。

在另一实施例中,引导逻辑还包括:耦合到第一端口集合的第一接收器,其耦合到布置成第一半字节的第一数据线集合;耦合到所述第一端口集合的第一传送器;第二接收器,耦合到第二端口集合以耦合到布置成第二半字节的第二数据线集合;耦合到所述第二端口集合的第二传送器;第一多路复用器,具有耦合到第一传送器的输出;第二多路复用器,具有耦合到第二传送器的输出;第三多路复用器;第四多路复用器,具有耦合到第一多路复用器的输入和第二多路复用器的输入的输出;第五多路复用器,具有耦合到存储器单元集合的输出;以及第六多路复用器,具有耦合到TSV链路集合的输出。第一接收器耦合到第二多路复用器的输入并耦合到第三多路复用器的输入。第二接收器耦合到第一多路复用器的输入,并耦合到第三多路复用器的输入。第三多路复用器的输出耦合到第五多路复用器的输入,并且耦合到第六多路复用器的输入。TSV链路集合耦合到第五多路复用器的输入并耦合到第四多路复用器的输入。存储器单元集合耦合到第四多路复用器的输入并耦合到第六多路复用器的输入。

事务细节-两个模块

图6A-6B示出了根据一个实施例的针对存在具有两个模块的存储器系统的读取事务。图6A的图示出了参考图6B的定时图所示的读取事务的模块和控制器部件的一部分。模块的一部分示出了九对DQ字节组中的一对的互连和两个主CA总线CAx和CAy的互连。两个模块标记有“模块x”和“模块y”,匹配主CA总线的连接。定时图示出各种CA和DQ总线的波形。

在该实现中,定时图指示各个总线的标称信号传送速率,假设主DQ信号传送速率为6.4Gb/s。随着主DQ速率的变化,总线的相对信号速率可能会按比例增加或按比例减少。

在所描绘的实施例中,两个读取事务中的每一个包括激活命令(标记为“A”或“ACT”)、读取命令(标记为“R”或“RD”)和读取数据(标记为“36bx16”)。每个事务的命令和数据可能被管线化。这意味着它们相对于事务占据固定定时位置。这也意味着事务可能与其他事务重叠。

应当注意,在本实施例中,使用的定时间隔比常规存储器系统中呈现的定时间隔短。例如,ACT到RD命令间隔(tRCD)被示出为6.25ns,但针对实际DRAM部件可能为大约12.5ns。时间刻度(timing scale)的这种压缩是为了清楚而进行的,并且可能不会影响技术精度,因为管线定时(pipeline timing)可以同样很好地用于6.25ns的tRCD延迟。

存在图6B中示的三个其它定时间隔,即tBUF-CA间隔、tRL间隔和tBUF-DQ。tBUF-CA间隔(0.93ns)是RCD缓冲区部件在主CA链路上向辅CA链路重发射信息所需的传播延迟。应当注意的是,0.93ns和3.125ns是从3.125Ghz时钟的多个周期导出的。tRL间隔(3.125ns)是RD命令与由DRAM提供的读取数据之间的列读取延迟。tBUF-DQ(0.93ns)间隔是通过模块x部件上的DRAM在DQxab链路上将信息重发射到主DQu链路所需的传播延迟。这是因为在模块x上访问的DRAM没有与控制器的直接连接。

应当注意,模块y上的访问可以具有插入其读取访问中的可配置延迟(tBUF-DQ),使得所读取的数据在大约相同的时间被返回到DQu和DQv主链路上的控制器。这种增量延迟可能使控制器部件更容易管理存储器管线(pipeline)。

应当注意,写入事务的定时图可以是相似的,但是具有不同的命令和数据的固定的定时位置。

在该实现中,所示的事务粒度为64字节;也就是说,存在足够的命令插槽来允许每个主DQu和DQv插槽都填充数据。每个事务对每个64字节执行随机行激活和列访问(例如,“36bx16”,因为数据总线是36b宽,每读/写命令切换16次)。应该注意,其他事务粒度是可能的。

还应当注意,每个字节在大小上被假设为9b。这个额外的大小可以考虑EDC(错误检测和纠正)码的综合征。

在一些实现中,如果事务流中存在存储库冲突,并且事务流在读取和写入操作之间切换,则需要跳过数据插槽。这种形式的带宽低效率可能存在于所有存储器系统中。应当注意,在一些实施例中,通过对具有如本文所述的两个接口的DRAM部件的RDIMM存储器系统进行的修改而不引入额外的资源冲突。

参考图6B的定时图,可以看出,“x”和“y”事务在CAx和CAy总线上的激活命令“A”开头。这些总线具有点对点拓扑和1.6GB/s的信号传送速率(点对点DQ总线的信号速率的四分之一)。

在一个实施例中,每个模块上的RCD缓冲区部件可以接收主CA总线并在CAxb和CAya模块总线上重发射信息。CA模块总线工作在0.8Gb/s,主CA总线的速度的一半和主DQ总线速度的1/8。这可能是因为模块CA总线具有多点拓扑;四个模块CA总线中的每一个连接到模块上的大约1/4的DRAM堆叠。

参考图6B的定时图,可以看出,“x”和“y”事务在CAx和CAy总线上利用读取命令“R”继续。这在CAxb和CAya模块总线上被重发射。在这个示例中,两个读取事务已经访问了连接到DQu和DQv半字节组的四个DRAM堆叠集合中的四个DRAM堆叠中的两个。这两个事务各自访问所选择的堆叠中的八个DRAM中的一个。

在访问主DRAM的情况下,可以将一些额外的延迟添加到访问时间,使得所读取的数据在相同的相对插槽中的主DQ上被发射。应当注意,上面关于图5描述的增量延迟的细节未在图6A-6B的图中示出。这种增量延迟可能使控制器部件更容易管理内存管线。

回到图6A,可以看出,“x”事务访问较低的DRAM堆叠。这意味着所读取的数据可能被驱动到到上层DRAM堆叠的DQxab主链路上,并且然后在DQu主链路上返回到控制器。

在图6B的定时图中可以看出,增量延迟被添加到“y”事务,所以读数据DQu和DQv在大约相同的时间到达控制器。在该示例中,从DQxab到DQ总线的重发射延迟大约是三个时钟周期(例如大约一个纳秒)。该示例提供了串行化延迟一个的周期(例如每个时钟周期的两个数据位)加两个DRAM堆叠之间的时钟偏移的两个附加时钟周期(±1个时钟周期)。

应当注意,在图6B中,四个DRAM堆叠集合中的其他DRAM堆叠可以用在CAx和CAy命令中不同地设置的高阶地址位来访问。还应注意,在图6B中,不使用DQt主总线;连接到该总线的DRAM堆叠上的接口电路可以被控制寄存器字段禁用。

事务细节-一个模块

图7A-7B示出了根据一个实施例的针对具有单个DRAM模块和连续性模块的系统的读取事务。在这个示例中,一个RDIMM模块放置在一个插槽中,并且连续模块放在另一插槽中。图7A的框图示出了模块和具有9对DQ半字节组的一对的互连以及两个主CA总线CAx和CAy的互连的控制器部件的一部分。连续性模块被标记为“模块x”,并且DRAM模块标记为“模块y”,匹配主CA总线的连接。连续性模块将DQu总线连接到DQt总线;四个DQ链路中的每一个和DQS链路用与主板线的阻抗匹配(近似)的控制的阻抗线连接。CAx总线未连接到连续性模块上的任何东西。

图7B的定时图示出了各种CA和DQ总线的波形。该定时图还指示了各种总线的标称信号传送速率,假设主DQ信号传送速率为6.4Gb/s。随着主DQ速率的变化,总线的相对信号速率可能会按比例地增加或按比例地减少。

在该示例中,两个读取事务中的每一个包括激活命令(标记为“A”或“ACT”)、读取命令(标记为“R”或“RD”)和读取数据(标记为“36bx16”)。每个事务的命令和数据可能被管线化。这意味着它们可能占据关于事务的固定时间点,并且事务可能与其他事务重叠。

应当注意,固定的定时位置可以从其他配置中的位置稍微偏移(例如,在图6B中)。这可能不会导致控制器中的调度问题,因为这些配置是静态的。可以在系统初始化时检测配置,并且在设置了适当的控制寄存器字段之后,可以不改变配置。

使用的定时间隔比常规存储器系统中存在的时间间隔短。例如,ACT到RD命令间隔(tRCD)被示出为6.25ns,但对于实际DRAM部件可能为大约12.5ns。为了清晰起见,进行了定时标度的这种压缩,并且不影响技术精度,并且管线定时可以同样很好地用于6.25ns的tRCD延迟。

图7B中示出了其他定时间隔,即tBUF-CA间隔,tRL间隔。tBUF-CA间隔(0.93ns)是由RCD缓冲区部件将主CA链路上的信息重发射到辅CA链路所需的传播延迟。tRL间隔(3.125ns)是DRAM所需的RD命令和读取数据之间的列读取延迟。图6B的tBUF-DQ间隔在本示例中不出现,因为所有DRAM堆叠都具有到控制器的直接主连接。在其他一个模块配置中,如果DRAM堆叠需要通过模块上的另一DRAM堆叠传递其数据,则可能会出现传播延迟

应当注意,用于写事务的图可以是相似的,但是具有不同的命令和数据的固定的定时位置。

在该示例中,所示的事务粒度为64字节;也就是说,有足够的命令插槽来允许每个主DQu和DQv插槽都被用数据填充。每个事务对每个64字节(“36bx16”)执行随机行激活和列访问。其他事务粒度是可能的。

应当注意,每个字节在大小上被假设为9b。这个额外的大小考虑EDC(错误检测和纠正)码的综合征。在一些实现中,如果事务流中存在存储库冲突,并且事务流在读取和写入操作之间切换,则需要跳过数据槽。这种形式的带宽低效率可能存在于所有存储器系统中。应当注意,如本文所述,通过已对该RDIMM存储器系统做出的修改不引入了额外的资源冲突。

参考图7B,可以看出,“x”和“y”事务以CAy总线上的激活命令“A”开始。在此配置中不使用CAx总线。这些总线具有点对点拓扑和1.6GB/s的信号速率(点对点DQ总线的信号速率的四分之一)。

y模块上的RCD缓冲区部件接收主CAy总线,并重发射CAyb和CAya模块总线上的信息。CA模块总线工作在0.8Gb/s,主CA总线的速度的一半和主DQ速度的1/8。这可能是因为模块CA总线具有多点拓扑;四个模块CA总线中的每一个连接到模块上的大约1/4的DRAM堆叠。

参考图7B,可以看出,“ya”和“yb”事务继续CAy总线上的读取命令“R”。这在CAyb和CAya模块总线上被重发射。两个读取事务已经访问了连接到DQu和DQv半字节组的两个DRAM堆叠。这两个事务各自已经访问每个选定堆叠中的八个DRAM中的一个。

在访问主DRAM的情况下,可以将一些额外的延迟添加到访问时间,使得所读取的数据在相同的相对时间槽(图7中未示出的细节)中在主DQ上被发射。这种增量延迟可能使控制器部件管理内存管线变得更容易。

参考图7A,可以看出,“yb”事务访问较低的DRAM堆叠。这意味着所读取的数据可以通过连续性模块被驱动到DQt主链路上,然后返回到DQu主链路上的控制器。“yb”读取数据通过连续性模块的增量传播时间可能足够小,以便可以在时钟偏移(skew)管理电路中被吸收,因此DQu和DQv上的读取数据将在大约相同的时间到达控制器。

模块内的直接传递选项

图8A-8B示出了根据一个实施例的在相同模块上的两个DRAM堆叠之间的直接传递。图8A示出了接口逻辑如何适应同一模块上两个DRAM堆叠之间的直接传递。在该示例中,与图7A的示例类似,这两个插槽中装有DRAM模块。

该传递选项是可能的,因为DRAM接口已经需要必要的接口逻辑来支持最大容量模块和系统(这是图6所示的逻辑)。

图8A的图示出了模块和具有9对DQ半字节组中的一对的互连和两个主CA总线CAx和CAy的互连的控制器部件的一部分。两个模块标有“模块x”和“模块y”,与主CA总线的连接相匹配。图8B的定时图示出了各种CA和DQ总线的波形。该定时图还指示了各种总线的标称信号传送速率,假设主DQ信号传送速率为6.4Gb/s。随着主DQ速率的变化,总线的相对信号速率可能会按比例地增加或按比例地减少。

在该示例中,传递操作可以涉及一个DRAM堆叠中的读取事务和在第二DRAM堆叠(在相同的模块内)的写入事务。这可以在每个模块上同时执行,使得四个事务发生是图6A和7A的读取事务示例中的两倍。

在一个实现中,两个读取事务中的每一个包括激活命令(标记为“A”或“ACT”),读取命令(标记为“R”或“RD”)和读取数据(标记为“36bx16”)。两个写入事务中的每一个包括激活命令(标记为“A”或“ACT”),写入命令(标记为“W”或“WR”)和写入数据(标记为“36bx16”)。

在这种情况下,所使用的写入数据由读取事务生成。相对于从列命令到列日期的间隔,写入事务的定时(tWL)被配置为大致地匹配读取事务(tRL),数据在DRAM堆叠(DQyab和DQxab在这种情况下)之间的共享的DQ总线上传递。

应当注意,定时被描述为“大致”匹配。该语言识别每个DRAM部件可以容纳在其接口的定时中的少量的变化。这可能是因为在系统操作期间接收数据和发射数据的位置可能在小范围内漂移。

在一个实施例中,接口被设计为适应这种动态漂移,结果是任何漂移(在允许范围内)可能不影响存储器系统的操作。

在一个实现中,当写入操作的命令到数据间隔与读取操作匹配时,当到DRAM堆叠的传递事务或写入事务之后是到相同的DRAM堆叠的读取事务时,控制器可能需要考虑存储库的使用。这种资源管理是一些存储器控制器执行的关键功能。在一些实现中,每个事务的命令和数据可以被管线化。这意味着它们相对于事务占据固定的定时位置,并且也意味着事务与其他事务重叠。

在所描绘的实施例中,使用的定时间隔可以比典型系统中存在的时间间隔短。例如,ACT到RD命令间隔(tRCD)被示出为6.25ns,但对于实际DRAM部件可以是大约12.5ns。为了清晰起见,进行了时间标度的压缩,并不影响技术准确性;管线定时可以同样很好地用于6.25ns的tRCD延迟。图7B所示的另外两个定时间隔。

存在图8B中示出的另外两个时间间隔,即tBUF-CA间隔,tRL间隔。tBUF-CA间隔(0.93ns)是RCD缓冲区部件将主CA链路上的信息重发射到辅CA链路的所需的传播延迟。tRL间隔(3.125ns)是RD命令和DRAM所需的读取数据之间的列读取延迟。在这个示例中,tBUF-DQ间隔不会出现,因为每个DRAM读取堆叠都具有到DRAM写入堆叠目的地的直接连接。在其他配置中,如果DRAM读取堆叠需要将其数据通过模块上的另一DRAM堆叠传递到DRAM写入堆叠目的地,则可能会出现该传播延迟。

在该实现中,所示的事务粒度为64字节;也就是说,有足够的命令插槽来允许每个主DQu和DQv插槽都被填充数据。每个事务对每个64字节(“36bx16”)执行随机行激活和列访问。其他事务粒度是可能的。还应注意,每个字节在大小上被假定为9b。这个额外的大小可以解释EDC(错误检测和纠正)码的综合征。

返回到图8B的定时图,可以看出,“x”和“y”事务以CAx和CAy总线上的激活命令“A”开始。这些总线具有点对点拓扑和1.6GB/s的信号速率(点对点DQ总线的信号传送速率的四分之一)。

在一个实施例中,每个模块上的RCD缓冲区部件可以接收主CA总线,并且在CAxa、CAxb、Cya和CAyb模块总线上重发射信息。应当注意,所有四个CA模块总线可用于传递事务。

在一个实施例中,CA模块总线以0.8Gb/s,主CA总线的速度的一半和主DQ总线的速度的1/8工作。这可能是因为模块CA总线具有多点拓扑;四个模块CA总线中的每一个连接到模块上的大约1/4的DRAM堆叠。

返回到图8B的定时图,可以看出,“x”和“y”事务在CAx和CAy总线上继续两个读命令“R”和两个写命令“W”。这在CAxa、CAxb、Cya和CAyb总线上被作为两个读取命令“RD”和两个写入命令“WR”重发射。在该示例中,这两个读取事务已经访问了四个DRAM堆叠中的两个,并且两个写入事务已经访问了另外两个DRAM堆叠。

图8A示出了模块中的九个DRAM堆叠集合中的一个。这四个事务各自已经访问了每个选定堆叠中的八个DRAM中的一个。

在访问主DRAM的情况下,可以将一些额外的延迟添加到访问时间,使得所读取的数据在相同的相对插槽中、在主DQ上被发射(注意,该细节未在图8A中示出,但之前在图5中示出)。这种增量延迟使控制器管理存储器管线更容易。

返回到图8A,可以看出,“x”读取事务访问上层DRAM堆叠。所读取的数据可以被驱动到到较低DRAM堆叠的DQxab主链路上,以被写入到所选的DRAM。在所描绘的实施例中,可以看出,“y”读取事务访问上层DRAM堆叠。所读取的数据可以被驱动到到较低DRAM堆叠的DQyab主链路上,以被写入到所选择的DRAM。

应当注意,在图8A中,可以在CAx和CAy命令中以不同地设置的高阶地址位来访问DRAM堆叠集合中的不同的DRAM堆叠。

另外请注意,在图8A中,可以不使用DQu,DQv和DQt主总线;连接到该总线的DRAM堆叠上的接口电路可以在一个实现中在传递操作期间由控制寄存器字段禁用。

模块之间的直接传递选项

图9A-9B示出根据一个实施例的在不同模块上的两个DRAM堆叠之间的直接传递。图9A示出了接口逻辑如何容纳在不同模块上的两个DRAM堆叠之间的直接传递。该系统示例与图7A相同,其中两个插槽装有DRAM模块。

图9A的图示出了模块和具有9对DQ字节组中的一对的互连和两个主CA总线CAx和CAy的互连的控制器部件的一部分。两个模块标有“模块x”和“模块y”,匹配主CA总线的连接。

图9B的定时图示出了各种CA和DQ总线的波形。该定时图还指出了各种总线的标称信号传送速率,假设主DQ信号传送速率为6.4Gb/s。随着主DQ速率的变化,总线的相对信号传送速率可能会按比例地增加或按比例地减少。

在该示例中,传递操作涉及一个DRAM堆叠中的读取事务和第二DRAM堆叠(在不同的模块内)的写入事务。这可以与两个另外的读取事务同时执行,使得四个事务发生,是图6A和7A的读取事务示例中的两倍。

在一个实现中,三个读取事务中的每一个包括激活命令(标记为“A”或“ACT”)、读取命令(标记为“R”或“RD”)和读取数据(标记为“36bx16”)。单个写入事务可以包括激活命令(标记为“A”或“ACT”)、写入命令(标记为“W”或“WR”)和写入数据(标记为“36bx16”)。

在这种情况下,所使用的写入数据由读取事务中的一个生成。相对于从列命令到列日期的间隔,写入事务的定时被配置为大致匹配读取事务。数据在两个模块(DQt)之间的共享DQ总线上传递。

在一个实现中,当写入操作的命令到数据间隔与读取操作匹配时,当向DRAM堆叠的传递事务或写入事务之后是对相同DSRM堆叠的读取事务时,控制器可能需要考虑存储库的使用。这种资源管理是一些存储器控制器执行的关键功能。在一些实现中,每个事务的命令和数据可以被管线化。这意味着它们相对于事务占据固定的定时位置,也意味着事务与其他事务重叠。

在所描绘的实施例中,使用的定时间隔可以比通用系统中存在的定时间隔短。例如,ACT到RD命令间隔(tRCD)被示出为6.25ns,但用于实际DRAM部件的可能是大约12.5ns。为了清晰起见,进行了时间标度的压缩,并不影响技术准确性;管线定时可以同样很好地用于6.25ns的tRCD延迟。图9B中示出了两个其它定时间隔。

图9B中示出了两个其它的时间间隔,即tBUF-CA间隔,tRL间隔。tBUF-CA间隔(0.93ns)是RCD缓冲区部件在主CA链路上将信息重发射到辅CA链路所需的传播延迟。tRL间隔(3.125ns)是RD命令和DRAM所需的读取数据之间的列读取延迟。tBUF-DQ间隔不出现在该示例中,因为每个DRAM堆叠具有其目的地(例如,到控制器或DRAM写入堆叠)的直接连接。在其他配置中,如果DRAM读取堆叠需要将其数据通过模块上的另一DRAM堆叠传递到DRAM写入堆叠目的地,则可能会出现此传播延迟。

在该实现中,所示的事务粒度为64字节;也就是说,有足够的命令插槽来允许每个主DQu和DQv插槽都填充数据。每个事务对每个64字节(“36bx16”)执行随机行激活和列访问。其他事务粒度是可能的。还应注意,每个字节在大小上被假定为9b。这个额外的大小可以考虑EDC(错误检测和纠正)码的综合征。

返回到图9B,可以看出,“x”和“y”事务以CAx和CAy总线上的激活命令“A”开始。这些总线具有点对点拓扑和1.6GB/s的信号传送速率(点对点DQ总线的信号传送速率的四分之一)。

每个模块上的RCD缓冲区部件接收主CA总线,并在CAxa、CAxb、Cya和CAyb模块总线上重发射信息。应当注意,所有四个CA模块总线可用于传递事务。

在一个实施例中,CA模块总线以0.8Gb/s,主CA总线的速度的一半和主DQ总线的速度的1/8工作。这是因为模块CA总线具有多点拓扑;四个模块CA总线中的每一个连接到模块上的大约1/4的DRAM堆叠。

返回到图9B,可以看出,“x”和“y”事务在CAx和CAy总线上继续三个读取命令“R”和一个写入命令“W”。这在CAxa、CAxb、CAya和CAyb总线上被重发射为三个读取命令“RD”和一个写入命令“WR”。在该示例中,三个读取事务已经访问了四个DRAM堆叠中的三个,并且写入事务已经访问了另一DRAM堆叠。

图9B示出了模块上的九个DRAM堆叠集合中的一个。这四个事务各自已经访问每个选定堆叠中的八个DRAM中的一个。

在访问主DRAM的情况下,可以将一些额外的延迟添加到访问时间,使得所读取的数据在相同的相对时间槽中、在主DQ上被发射(注意,该细节未在图8中示出,但是之前在图5中示出)。这种增量延迟使控制器管理存储器管线更容易。

返回到图9B,可以看出,“x”读取事务访问上层DRAM堆叠。所读取的数据可以被驱动到到控制器的DQu主链路上。在所描绘的实施例中,可以看出,“y”读取事务访问上层DRAM堆叠。所读取的数据可以被驱动到到控制器部件的DQv主链路上。第二个“y”读取事务访问较低的DRAM堆叠。所读取的数据可以被驱动到到模块“x”的较低的DRAM堆叠的DQt主链路上,以被写入所选择的DRAM。

应当注意,在图9A中,DRAM堆叠组中的不同的DRAM堆叠可以用CAx和CAy命令中不同地设置的高阶地址位来访问。

此外,注意,在图9A中,可以不使用DQxab和DQyab主总线;可以通过每个堆叠的主DRAM中的命令解码逻辑禁用连接到该总线的DRAM堆叠上的接口电路。

增量延迟表

图10示出了根据一个实施例的用于各种模块和通道配置的控制器部件所看到的增量读取延迟。在该实施例中,该表使用作出关于DRAM到DRAM通信的一些假设的延迟单位。以前的示例假设这个延迟单位是大约三个时钟周期(约一纳秒)。从一个DRAM堆叠的DQ接口到不同DRAM堆叠的DQ接口的延迟包括两个分量:[1]串行化延迟(每个时钟周期两个数据位)的一个周期加上[2]两个DRAM堆叠之间的时钟偏移的两个额外的时钟周期(+1个时钟周期)。使用3.2GHz时钟,这三个时钟周期是略小于一纳秒。延迟表根据以下各项来组织:[1]每个通道的插槽数量(一个SPC或两个SPC),[2]每个通道的DIMM数量(一个DPC或两个DPC),以及[3]每个模块的DRAM堆叠数量(例如,三十六、十八或九个)。每个堆叠可以容纳(通常)四个或八个DRAM。

与最小容量示例相比,增量延迟列指示由最坏情况DRAM堆叠看到的附加读延迟。

该表示出,只有一对最大容量模块(具有36个设备堆叠)可以看到最大增量延迟(+3个单位,或约3ns)。三种其他配置可能会看到较小的增量延迟(+1单位或大约1ns)。其余配置没有看到增量延迟。与行/列访问的~30ns读取延迟和存储库周期时间的~50ns相比,这些增量延迟相对较小。备选地,在其他实施例中,可以实现用于各种配置的其他延迟。

用于DRAM接口的DQ-DQS相位模式和域交叉细节

图11示出根据一个实施例的在主DRAM部件中的DQa和DQb接口之间的接收到发射路径的附加细节。从DQb到DQa的相反路径可能相似。第一阶细节较早在图5中示出。大部分DRAM在从伴随CA总线的CLK链路创建的时钟域中工作。该域在图9中以蓝色示出,并标记为BTRANSMIT。

存在在左侧的接口的一小部分,其在DQA接口的接收的DQS定时信号的域中操作。它被标记为ARECEIVE。图11底部的块1110包含在ARECEIVE和BTRANSMIT域之间执行域交叉功能所需的控制逻辑。该块1110在BTRANSMIT域中操作。下面详细描述域交叉逻辑。多路复用器1112和1114可以用于启用上述经修改的存储器系统。这些块可以是具有根据控制寄存器字段驱动的选择器输入的多路复用器电路(选择器信号被标记为“MODER”和“MODET”)。选择器信号可用于调整DQ和DQS之间的相位关系,用于接收和发射块。

图11还示出了域交叉逻辑。域交叉逻辑可以将控制寄存器字段设置为特定值,以说明接口如何被最初配置和维护。附带的定时图中示出了六个内部节点的波形,以及数据输入和数据输出信号。

在所描绘的实施例中,每个主数据链路DQIN(ARECEIVE域)在上升沿和下降沿由主定时链路DQSIN进行采样(因为MODER=0,将零度延迟插入DQS路径)。这可能导致在DQS域中的DQYO和DQZO寄存器输出上保持的两个采样值Y和Z。应当注意,DQS-EN信号形成在CK域(如延迟调整逻辑1110中所示))并且对DQSIN信号进行门限。在某些情况下,如果数据传递更长,则可能会延长。该示例假定DQS和CK信号被对齐,使得由DQS从CK+90°采样的SKP[1]值为低。DLY0.5控制值由上一次WR传递中的SKP[1]设定,因此控制值也较低。

图12示出了根据一个实施例的具有两组波形1210、1220的定时关系。顶部的波形集合1210示出了ARECEIVE域的DQIN和DQSIN定时关系。当MODER为1时,DQSIN为边对齐;DQSIN和DQIN产生大致对齐的转换(同相)。当MODER为零时,DQSIN为中心对齐;DQSIN和DQIN产生不对齐(异相)的转换。对齐大约为90°,这意味着DQSIN转换大约在DQIN转换之间的中间。在某些情况下,修改的DRAM接口可能需要以任一相位对齐的方式接收数据。例如,中心对齐可以用于写入数据,并且边缘对齐可以用于读取数据。对于某些系统配置,DRAM接口的这种模式的可配置性可以允许DRAM将读取或写入的数据从一个接口传递到另一接口。

波形的底部集合1220示出了ATRANSMIT域的DQOUT和DQSOUT定时关系。当MODET为零时,DQSOUT为边沿对齐;DQSOUT和DQOUT产生近似对齐的转换(同相)。当MODER为1时,DQSOUT为中心对齐;DQSOUT和DQOUT产生不对齐(异相)的转换。对齐大约为90°,这意味着DQSOUT转换大约在DQOUT转换之间的中间。

在一些情况下,修改的DRAM接口可能需要以任一相位对齐来接收数据。例如,中心对齐可以用于写入数据,并且边缘对齐可以用于读取数据。对于某些系统配置,DRAM接口的这种模式的可配置性可以允许DRAM将读取或写入的数据从一个接口传递到另一接口。

具有DB缓冲区的DRAM模块

图13A-13B示出了根据另一实施例的具有DB缓冲区的存储器模块。该系统包括连接到控制器部件的两个DRAM模块。9对主DQ半字节组(DQu和DQv)中的每一个连接到两个模块,具有连接模块的第三主DQt半字节组。主板上的这种互连图案允许系统被配置有两个DRAM模块(如图6所示)或一个DRAM模块和一个连续性模块(如图7所示)。

图13A的存储器模块在模块上部件被连接的方式上不同于图6的存储器模块。每对主DQ半字节组连接到DB缓冲区部件。每个模块上有九个DB缓冲区部件。这些DB缓冲区部件并行运行。

在其他实施例中,其他功能上等效的实施例可以将两个或更多个DB缓冲区合并在一起。例如,每个模块可能有三个DB部件,每个DB部件连接到三对主DB半字节组。

在该实现中,每个DB缓冲区具有辅链路的四个半字节位组,每个具有四个DQ数据链路和差分DQS定时链路。这些辅链路以与主链路相同的数据速率(6.4Gb/s,如图6所示)运行。每个辅半字节组连接到类似于先前系统配置中所示的DRAM堆叠(参见例如图5)的DRAM堆叠。

备选地,每个辅半字节组可以连接到单个DRAM部件,类似于先前系统配置中的DRAM堆叠中所示的主DRAM(例如参见图5)。在这种情况下,可能没有辅DRAM,也没有TSV连接。

第三备选方案可以是在图13A中的每个DRAM位点放置一对堆叠的DRAM封装。四组DRAM封装对将连接到每个DB缓冲区部件。

在前两种情况下,辅DQ链路可以具有简单的点到点拓扑,允许与主DQ链路的信号传送速率匹配的信号传送速率。

在第三备选方案中,辅DQ链路可以具有点对二点拓扑,相对于其他两个备选方案,其将具有略微降低的信号传送速率。

应当注意,第二选项和第三选项是模块可以不依靠TSV堆叠技术(例如每个模块的36个设备位点,其中每个设备位点处堆叠两个DRAM)来容纳72个DRAM部件。封装堆叠技术比TSV技术更成熟,并且该选项可以为某些模块容量提供成本优势。

在该实施例中,与图6相比,DRAM堆叠(或单个DRAM)可能仅需要单个半字节组接口。相反,DB缓冲区部件将具有两个半字节组接口。

这些接口可以类似于图5中的主DRAM中所示的DQa和DBb接口。控制寄存器字段可以在初始化时用于设置配置模式(即存在的模块数量,存在的DRAM堆叠的数量,等等。)。

图13B的定时图类似于图5B的定时图。示出了主CA和主DQ链路的波形以及3.2GHz主时钟信号。主CA链路具有如图5A所示的DQ链路的信号传送速率(6.4Gb/s)的1/4。其他实施例可以具有其他信号传送速率。

图13A中的DRAM部件的配置可以避免第二接口的成本,但是额外的DB部件可能增加模块的成本。

DRAM模块w/DB(半速率辅助)

图14A-14B示出了根据另一实施例的具有DB缓冲区和半速率辅DQ链路的存储器模块。该系统包括连接到控制器部件的两个DRAM模块。9对主DQ半字节组(DQu和DQv)中的每一个连接到两个模块,其中第三主DQt半字节组连接模块。主板上的这种互连图案允许系统配置有两个DRAM模块(如图6A)或一个DRAM模块和一个连续性模块(如图5B所示)。

图14A以模块上部件被连接的方式不同于图6A。在图14A中,每对主DQ半字节组连接到DB缓冲区部件。每个模块上有九个DB缓冲区部件。这些DB缓冲区部件并行运行。

在其他实施例中,其他功能上等同的实施例可以将两个以上DB缓冲区合并在一起。例如,每个模块可能有三个DB部件,每个DB部件连接到三对主DB半字节组。

在该实现中,每个DB缓冲区具有辅链路的四个半字节组,每个具有四个DQ数据链路和差分DQS定时链路。这些辅链路以主链路的1/2的数据速率运行;主链路以6.4Gb/s速率运行,辅链路以3.2Gb/s的速率运行。每个辅半字节组连接到类似于先前系统配置中所示的DRAM栈(参见例如图5)。

备选地,每个辅半字节组可以连接到单个DRAM部件,类似于先前系统配置中的DRAM堆叠中所示的主DRAM(例如参见图5)。在这种情况下,可能没有辅DRAM,也没有TSV连接。

第三种选择可以是将每个辅半字节组连接到一对封装堆叠的DRAM部件。此选项的辅链路拓扑是点到二点,但不会是一个问题,因为辅数据链路故意以主数据链路的一半速率运行。

第二选项和第三选项可以允许模块保持72个DRAM部件而不依靠TSV堆叠技术(例如,每个模块三十六个设备位点,每个设备位点处堆叠两个DRAM)。封装堆叠技术比TSV技术更成熟,并且该选项可以为某些模块容量提供成本优势。

在一些实施例中,这三个选项中的DRAM接口可能仅需要以主链路的一半速度运行,并且只有控制器和DB部件以最高的信号传送速率(在该示例中为6.4Gb/s)运行。这样做的一个后果可能是必须访问DRAM对,以便它们的3.2Gb/s数据速率可以聚合成6.4Gb/s的数据速率。这在图14A中利用每个事务处理的正被访问的两个阴影DRAM对指示。

如图13A所示,图14A中的系统可以被配置为使得每个DRAM堆叠(或单个DRAM)仅具有单个半字节组接口。相反,DB缓冲区部件将具有两个主要的半字节组接口。

这些接口可以类似于图5中的主DRAM中所示的DQa和DBb接口。控制寄存器字段可以在初始化时被用于设置配置模式(即存在的模块数量、存在的DRAM堆叠的数量等)。

图14B的定时图类似于图6A的定时图。示出了主CA和主DQ链路的波形以及3.2GHz主时钟信号。主CA链路具有如图6A所示的DQ链路的信号传送速率(6.4Gb/s)的1/4。其他实施例可以具有其他信号传送速率。

在该实现中,对于每个事务,活跃的DRAM对中的每个DRAM可以各自以3.2Gb/s向DB部件提供数据4bx8。每个DB部件将在主链路上以6.4Gb/s提供数据4bxl6。九个DB部件将在主链路上以6.4Gb/s提供数据36bxl6。

如图13A所示,图14A的配置的一个可能的优点是DRAM部件可以避免第二接口的成本,但是额外的DB部件可能增加模块的成本。应当注意,存储器模块可以利用较慢的DRAM(半速率接口速度),导致潜在的成本节省。此外,这些较慢的DRAM可能使用与传统部件兼容的较浅的x8预取。此外,在某些情况下,选项中的一个可以利用封装堆叠的DRAM(以半速率接口速度运行的多点辅链路拓扑),这也导致潜在的成本节省。

两个带计时DQ链路的DRAM模块

图15A-15B示出了根据另一实施例的具有计时DQ链路的两个存储器模块。该系统包括连接到控制器部件的两个DRAM模块。主DQ链路已经被分组成三十六对单个DQ数据链路。此外,控制器接口和DRAM接口已被修改,使得发射和接收数据所需的定时信号不与伴随数据的链路(图6中使用的DQS链路)通信。相反,包括在CA组中的时钟链路CLK被用作DQ和CA的频率和相位源。用于发射和接收数据的定时事件是使用相位插值电路从CLK链路合成的。每个DRAM所需的相位内插值可以由初始化时的处理产生,并通过周期性校准处理来维持。

对计时系统的这种改变可以提供益处:连接到单个DRAM的最小链路数不再受共享DQS定时信号的数据链路组的大小的限制。这意味着,代替每个DRAM包含两个半字节组(x4)DQ接口(如图6所示),每个DRAM可以包含其每一个是链路(x1)的两个数据链路组。结果可以在图15A中看出。72个数据链路连接到控制器部件,每个数据链路连接到(DRAM堆叠的)一个主DRAM。在两个模块中的每个模块上存在三十六个DRAM堆叠的空间,这意味着不需要将模块上的DRAM堆叠上的任何一个耦合在一起(例如,在图4中)。

在图15A中,每个DRAM具有两个xl DQ接口(类似于图4,但是一位宽,而不是四位宽)。在图14A中的两个模块配置中,一个模块的每个DRAM的一个DQ接口连接到到另一模块的每个DRAM的一个DQ位的母板迹线(trace)。在两个模块配置中不使用此路径。

图15B的定时图类似于图6的定时图。主CA和主DQ链路的波形与3.2GHz主时钟信号一起示出。主CA链路具有如图6所示的DQ链路的信号传送速率(6.4Gb/s)的1/4。其他实施例可以具有其他信号传送速率。

图15A的配置的一个可能的优点是DRAM部件可以避免在高容量配置中通过DRAM传递数据的延迟成本。DRAM还可以避免第二x4DQ接口的成本(但是可以实现具有可配置宽度-{x1,x2,x4}的接口以支持图8中列出的相同配置)。当使用该备选实施例时,可能需要修改DRAM和控制器部件的该接口计时。

一个带计时DQ链路的DRAM模块

图16A至图16B示出了根据另一实施例的具有计时DQ链路的一个存储器模块。该系统包括连接到控制器部件的一个DRAM模块。主DQ链路已经被分组成三十六对单个DQ数据链路。此外,控制器接口和DRAM接口已被修改,使得发射和接收数据所需的定时信号不与伴随数据的链路(图7中使用的DQS链路)通信。应当注意,该定时方法可以类似于图15B中使用的定时。

包括在CA组中的时钟链路CLK用作DQ和CA的频率和相位源。用于发射和接收数据的定时事件是使用相位插值电路从CLK链路合成的。每个DRAM所需的相位内插值可以由初始化时的处理生成,并通过周期性校准处理来维持。

对时钟系统的这种改变可以产生以下益处:连接到单个DRAM的最小链路数不再受共享DQS定时信号的数据链路组的大小的限制。这意味着,代替每个DRAM包含两个半字节组(x4)DQ接口(如图6所示),每个DRAM可以包含其每一个是链路(x1)的两个数据链路组。结果可以在图16A中看到。72个数据链路连接到控制器部件,并且每对数据链路连接到一个主DRAM(DRAM堆叠的)。在单个模块上存在三十六个DRAM堆叠的空间,这意味着不需要将模块中的DRAM堆叠的任何一个耦合在一起(例如,在图5中)。

在该实施例中,图16A的第二插槽包含连续性模块而不是DRAM模块,如图15A的情况。在图16A的一个模块配置中,一个模块的每个DRAM的两个DQ接口连接到控制器部件,其中一半连接流经连续性模块。拓扑结构如图7所示,但每个DRAM具有两个xl接口,而不是两个x4接口。

图16B的定时图类似于图7的定时图。主CA和主DQ链路的波形与3.2GHz主时钟信号一起示出。主CA链路具有如图7所示的DQ链路的信号传送速率(6.4Gb/s)的1/4。其他实施例可以具有其他信号传送速率。

图16A的配置的一个可能的优点是DRAM部件可以避免在高容量配置中通过DRAM传递数据的延迟成本。DRAM还可以避免第二x4DQ接口的成本,但是可以用具有可配置宽度-{x1,x2,x4}的接口来实现以支持图8中列出的相同配置。DRAM的接口计时可以必须在该替代实施例中被修改。

附带的定时图中示出了六个内部节点的波形以及数据输入和数据输出信号。

WR定时细节DQ-BUF-SKP[1]=0

图17是根据一个实施例的用于DQ缓冲区的写入操作的定时图。图17图示了当由于DQS和CK域之间的漂移导致新的SKP[1]采样值与先前一个采样值不匹配时发生了什么。在DLY0.5控制上的低值使得DQY0和DQZ0值通过相位调整块中的多路复用器。假设在DLY123[1:0]控制上的值为00,其也导致DQY0和DQZ0值在循环调整块中的多路复用器。DQY0和DQZ0值可以通过DQY2和DQZ2寄存器被采样,以及此时可能已经跨入CK域(BTRANSMIT域)。DQY2和DQZ2寄存器驱动输出多路复用器,其进而驱动辅链路组的输出驱动器。

可以从延迟调整逻辑创建DQS输出。可以使用CK+90°信号驱动DQS,因为MODET=1值会导致90度延迟插入DQS值。如果假设DLY123[1:0]控制的值为11,则DQYO和DQZO值可能会被延迟三个周期的管线。数据和定时信号可能出现在辅链路上,比之前的情况晚3*tCK。这允许通过DQS到CK域交叉的延迟以一个周期的增量进行调整。

WR定时细节DQ-BUF-SK[1]=1

图18是根据另一实施例的用于DQ缓冲区的写入操作的定时图。图18类似于图17,除了它假设DQS和CK信号被对齐,使得由DQS从CK+90°采样的SKP[1]值高。

图18中示出了六个内部节点的波形,沿主数据输入和辅数据输出信号。每个主数据链路DQIN由主定时链路DQSIN在上升沿和下降沿的进行采样,导致在DQS域中的DQY0和DQZ0寄存器输出上保持两个采样值Y和Z。

应当注意,DQS-EN信号形成在CK域中并对DQSIN信号进行门控。如果数据传递更长,则可能会延长此延迟。

该示例假定DQS和CK信号被对齐,使得由DQS从CK+90°采样的SKP[1]值为高。DLY0.5控制值由上一次WR传递中的SKP[1]值设定,因此控制值也很高。

图18图示了当由于DQS和CK域之间的漂移导致新的SKP[1]采样值与前一个采样值不匹配时发生什么。DLY0.5控制上的高值使得DQY0和DQZ0值由DQY1和DQZ1寄存器采样,并通过相位调整块中的多路复用器。假设DLY123[1:0]控制上的值为00,其使得DQY1和DQZ1值也通过循环调整块中的多路复用器。可以通过DQY2和DQZ2寄存器对DQY1和DQZ1值进行采样,并且此时可能已经跨入CK域。DQY2和DQZ2寄存器驱动输出多路复用器,其进而驱动辅链路组的输出驱动器。

可以从延迟调整逻辑创建DQS输出。可以使用CK+90°信号来驱动DQS输出,因为MODET=1值使得90度的延迟被插入DQS值。如果DLY123[1:0]控制的值假定为11,则DQY0和DQZ0值可能会延迟三个周期的管线。数据和定时信号可能出现在辅链路上,比之前的情况晚3*tCK。这允许通过DQS到CK域交叉的延迟以一个周期的增量进行调整。

定时漂移的自动跟踪

图19示出了根据一个实施例的图17和图18的定时示例可以组合在一起以在任意大的范围上自动跟踪DQS和CK域之间的漂移。

图19假设域交叉逻辑已经被初始化,所以来自CA总线上的列写入命令和该命令的写入数据的延迟是恒定的3.00*tCK。应当注意,为了描述目的,所图示的值可以小于在实际系统中可以看到的值,以便适合于定时图内。

在定时图1910中,在写命令之后1.125*tCK,写入选通到达。被采样的SKP[1:0]值为“01”。新的DLY0.5相位值从SKP[1]被设置,新的DLY123[1:0]周期值为“01”(与先前初始化时设置的值相同)。

在定时图1920中,DQS定时相对于CK域漂移,因此写入选通在写入命令之后1.375*tCK到达。采样的SKP[1:0]值为“11”。新的DLY0.5相位值从SKP[1]被设置。因为SKP[1]和旧的DLY0.5相位值不同,并且由于SKP[0]为高,所以新的DLY123[1:0]可能需要增加或减少(相对于旧的DLY123[1:0]值)来保持命令到数据延迟恒定在3.00tCK;在这个示例中其减少。

总之,每个传递的DQS定时信号可以采样CK和CK+90°(在写入的情况下),并将该信息保留在SKP[1:0]寄存器中。在下一次传递之前的空闲间隔,可以更新DLY0.5和DLY123[1:0]值(保存在CK域中的控制寄存器中),以反映上次传递中的SKP[1:0]。这些新的DLY0.5和DLY123[1:0]值被用在下一次传递上。

在一个实现中,该序列可以在每个传递上自动发生,并且可以允许跨域逻辑在系统操作期间适应任意大范围的DQS到CK漂移。初始化过程使控制寄存器设置为适当的值后,不需要进一步的维护操作来支持此自动跟踪。

替换DQ拓扑

图20示出了根据一个实施例的具有备选DQ拓扑的另一存储器系统。该DQ拓扑可以被认为是点对二点的DQ拓扑。该系统包括连接到控制器部件的四个DRAM模块。9对主DQ半字节组(DQu和DQv)中的每一个连接到四个模块。第三主DQt0半字节组连接x0和y0模块。第四主DQtl半字节组连接xl和yl模块。主板上的这种互连模式可能允许系统配置有两对DRAM模块或单对DRAM模块(例如x0/y0对)。

在其他实施例中,该互连模式还可以利用使用连续性模块来支持一个和三个模块配置。在该实施例中,主DQ和主CA链路具有点到二点拓扑,而不是上面关于图6所示和描述的点到点拓扑。

该配置可以导致在主DQ和主CA链路上较低的信号传送速率,但是可以为存储器系统提供更高的容量,例如与上述那些模块的两倍。

可以在图20的DRAM中使用如本文所描述的DRAM接口修改。在这些实施例中可以支持DRAM到DRAM传递情况,使得模块容量可以具有与先前存储器系统中描述的范围相同的范围。

在一些实现中,可以使用另一链路来执行内存区块选择。主CA链路可以由一对模块接收。可以使用地址链路或芯片选择链路来指导对共享CA链路的两个模块中的一个的访问。

DRAM接口细节-双存储库组

图21示出了根据另一实施例的单个DRAM模块包含九个DRAM堆叠的系统配置。此配置表示当使用72DQ链路通道和具有两个x4DQ半字节接口的DRAM堆叠时最小可能的配置。

该配置的一个选项可以是将列访问粒度增加到128B。九个DRAM堆叠中的每一个将提供8b×16列块突发。这是图6系统中使用的4bx16列块的宽度的两倍。

应当注意,在该配置中,对接口逻辑的修改可能是最小的,因为列访问路径的宽度可能只需要增加。

该配置的第二选项可以是保持列访问粒度固定为4b×16,并增加DRAM的接口和内核的并发性。

在一些实现中,DRAM存储库被分成两个独立可访问的组(A和B)。两个存储库组中的每一个可以执行独立的事务流,执行独立的行访问和列访问。

可能需要将DRAM的CA接口加倍以能够实现该第二并发访问(图20中未示出)。这是通过在该最小模块配置中将CAxa和CAxb链路(类似于图5中所示的)连接到每个DRAM堆叠来实现的。

主CA链路上可能有足够的带宽来支持第二访问,因为其他配置(如图6中的那样)正在执行两个独立的事务流,并将它们引导CAxa和CAxb模块链路。

图20的修改的DRAM还可能需要能够将两个主接口(DQv和DQt)引导两个存储库组。还需要第二TSV DQ链路来允许数据被引导到辅DRAM上的存储库组。

在替代的核心配置中,堆叠中的每个DRAM可能仅具有单个存储库组。在该替代实施例中,控制器部件可以将两个事务流引导到堆叠中的两个不同的DRAM(但不是相同的DRAM)。

这可以简化DRAM内核并节省成本。引导逻辑可以包括在接口以及第二TSV DQ链路中。控制器部件可以检查请求队列,以确保在每个事务对中不使用相同的DRAM。

在具有两个数据接口的DRAM堆叠的架构中,可以优化返回总线以最小化数据返回延迟的变化。这种优化可以称为平准(levelizing)或倾斜校正(deskewing)数据返回延迟。如果数据返回延迟没有被倾斜校正(或平准化),那么如下面详细描述的存储器模块拓扑可以作为具有多个阶段的管线进行管理。这是可能的,因为堆叠被布置在菊花(daisy)链的拓扑中,而不是多点总线中。本文描述的实施例可以给出较低的平均数据延迟,改善带宽,减少地址总线争用或其任何组合。由于较低的中间总线连接,如本文所述,本文所述的实施例可能导致更容易定时的DQ/DQS总线。在一些实现中,可以使用延迟读取(D)来减轻地址总线争用。

在一个实现中,存储器模块具有至少两组堆叠的存储器部件,每个堆叠具有与线性链中的点对点拓扑连接的两个数据接口。存储器模块的CA接口连接在共享总线上。第一组的第一堆叠连接到模块接口(例如,连接到存储器模块的引脚)。存储器模块的堆叠被配置为使得在第一组和第二组的模块接口处的访问插槽被及时偏移。存储器部件的堆叠可以具有可变延迟以在模块接口处创建访问插槽的管线。在一个实现中,访问插槽之间的偏移由存储器控制器管理,如访问插槽的管线。在另一实现中,每个堆叠的读取延迟是相同的。

在其他实现中,耦合到该存储器模块的存储器控制器可以向存储器模块发送命令,并且存储器模块可以基于命令的类型改变延迟。例如,RCD部件可以接收命令,并且RCD部件可以控制不同组中的堆叠的延迟以创建访问插槽的管线。在一个实现中,每个组的CA链路可以是独立的,但是在组内是共享的。例如,第一CA链路在RCD部件和第一组堆叠的存储器部件之间被耦合,并且第二CA链路在RCD部件和第二组堆叠的存储器部件之间被耦合。可以在第一组中的多个堆叠之间共享第一CA链路,并且在第二组中的多个堆叠之间可以共享第二CA链路。

在一个实现中,存储器模块可以从存储器控制器接收读取命令或延迟读取命令。存储器部件堆叠可以响应于读取命令而被编程有第一延迟,并且响应于读取延迟命令而被编程有第二延迟,其中第一延迟小于第二延迟,如本文所述。

图22是根据一个实施例的具有布置在环中的多个DRAM堆叠的存储器模块的框图,其中每个DRAM部件包括两个数据接口。存储器模块2200包括存储器部件的四个堆叠:第一堆叠2212、第二堆叠2214、第三堆叠2216和第四堆叠2218。第一堆叠2212的第一数据接口经由第一DQ链路(DQ0)耦合到模块接口2210。模块接口2210(DQu)被布置成第一半字节并且包括相应的定时链路。第三堆叠2216的第一数据接口经由第二DQ链路(DQ1)耦合到第一堆叠2212的第二数据接口。第二堆叠2214的第一数据接口经由第三DQ链路(DQ2)耦合到第三堆叠2216的第二数据接口。第四堆叠2218的第一数据接口经由第四DQ链路(DQ3)耦合到第二堆叠2214的第二数据接口。

在一个实现中,存储器模块2200还包括经由主CA链路2204(CAx)耦合到模块接口的RCD部件2202。第一辅CA链路2206耦合在RCD部件2202和第一堆叠2212之间。第一辅CA链路2206与第二堆叠2214共享。第二辅CA链路2208耦合在RCD部件2202和第四堆叠2218之间。第二辅CA链路2208与第三堆叠2216共享。应当注意,存储器模块2200可以包括以与这四个堆叠相同的拓扑布置的附加堆叠。

下面描述RCD部件2202和四个堆叠2212-2218如何处理读取操作。

图23是根据一个实施例的由图22的存储器模块2200的读取操作的定时图。RCD部件2202接收第一读取命令(R)2302。RCD部件2202在第一辅CA链路2206上发送第一读取命令,其导致第一堆叠2212处的第一访问2304。RCD部件2202接收第二读取命令读取命令(R)2306。RCD部件2202在第二辅CA链路2208上发送第二读取命令,其在第三堆叠2216处引起第二访问2308。RCD部件2202接收第三读取命令(R)2310。RCD部件2202在第一辅CA链路2206上发送第三读取命令,其在第二堆叠2214处引起第三访问2312。RCD部件2202接收第四读取命令(R)2314。RCD部件2202在第二辅CA链路2208上发送第四读取命令,其在第四堆叠2218处引起第四访问2316。

如图23所图示的,当在第一辅CA链路2206上信号传送第一次读取命令2302和第三读取命令2310时RCD部件2202必须等待它们之间的延迟。类似地,当在第二辅CA链路228上信号传送第二读取命令2306和第四读取命令2314时RCD部件2202必须等待它们之间的延迟。该延迟被标记为tCC。存在当相应的堆叠接收读取命令时和当相应堆叠的相应数据接口上的数据可用时之间的读延迟(tRL)。将访问相应数据接口上的数据的时间称为访问插槽。访问插槽的访问时间等于tCC。当在两个辅CA链路上信号发送读取命令时它们之间可能也存在延迟。两个连续读取命令之间的延迟标记为tCC-tB。堆叠在不同时间被访问,使得中间堆叠可以通过环路由数据,导致在模块接口2210处的第一访问插槽2320,随后是第二访问插槽2322,之后是第三访问插槽2324,这后是第四访问插槽2326。

如图23所图示的,存在其中插槽的空闲的各种访问时间槽。这种拓扑结构也可能出现一些可能的时序问题。为了补偿潜在的定时问题,该拓扑使用速度匹配缓冲区。这些速度匹配缓冲区可能难以实现。如上所述,可以使用速度匹配缓冲区来防止总线争用,如缓冲区延迟tB所反映的,使得数据在模块接口(DQu)处可以顺序地可用,如图23所示。

图24是根据另一实施例的具有多个DRAM堆叠被布置在线性链中的至少两个组中的存储器模块2400的框图,其中每个DRAM堆叠包括两个数据接口。存储器模块2400包括布置在第一组2411和第二组2413中的四个存储器部件的堆叠。第一组2411包括第一堆叠2412和第三堆叠2415。第二组2413包括第二堆叠2414和第四堆叠2418。第一堆叠2412的第一数据接口经由第一DQ链路(DQ0)耦合到模块接口2410。模块接口2410(DQu)被布置成第一半字节并且包括相应的定时链路。第二堆叠2414的第一数据接口经由第二DQ链路(DQ1)耦合到第一堆叠2412的第二数据接口。第三堆叠2416的第一数据接口经由第三DQ链路(DQ2)耦合到第二堆叠2414的第二数据接口。第四堆叠2418的第一数据接口经由第四DQ链路(DQ3)耦合到第三堆叠2416的第二数据接口。

在一个实施例中,存储器模块2400包括经由主CA链路2404(CAx)耦合到模块接口的RCD部件2402。第一辅CA链路2406耦合在RCD部件2402和第一堆叠2412之间。第一辅CA链路2406与第三堆叠2416共享。第二辅CA链路2408被耦合在RCD部件2402和第四堆叠2418之间。第二辅CA链路2408与第二堆叠2414共享。应当注意,存储器模块2400可以包括以与这四个堆叠相同的拓扑布置的附加堆叠。

下面描述RCD部件2402和四个堆叠2412-2418如何处理读取操作。

图25是根据另一实施例的图24的存储器模块的读取操作的定时图。RCD部件2402接收作为延迟读取命令(D)的第一命令2502,紧接着是作为读取命令(R)的第二命令2504。RCD部件2402在第一辅CA链路2406上发送第一命令2502,其导致在第一堆叠2412处的第一访问2506,并且在第二辅CA链路2408上发送第二命令2504,其导致在第二堆叠2414处的第二访问2508。RCD部件2402接收作为延迟读取命令(D)的第三命令2510,紧接着是作为读取命令(R)的第四命令2512。RCD部件2402在第一辅CA链路2406上发送第三命令2510,这导致第三堆叠2416处的第三访问2514,并且在第二辅CA链路2408上发送第四命令2512,这导致在第四堆叠2418处的第四访问2516。应当注意,延迟读取命令(D)可以以各种方式被编码成一个或多个信号。例如,一旦在主CA链路上接收到延迟读取(D),RCD部件可以在特定堆叠的辅CA链路上添加额外的延迟。如图25所示,在主CA链路上接收读取命令(R)和在第一辅CA链路上发送命令之间的时间不同于在主CA链路上接收延迟读取命令(D)和在第二辅CA链路上发送命令之间的时间。这允许同时访问两个堆叠,因为它们是分开的组。而且,由于所访问的堆叠是分开的组,所以可以将数据作为中间传递被传递到非访问堆叠(在另一组中),以减少数据返回延迟和地址总线争用,如本文所述。相反,图23中的读取命令(R)在主CA链路上接收命令并在辅CA连接上发送命令之间显示出相同的定时响应。

虽然RCD部件2402必须在第一辅CA链路2406上的第一命令2502和被发送的第三命令2510之间仍然等待,但是RCD部件2402可以发送第一辅CA链路2406上的第一命令2502和第二辅CA链路2408上的第二命令2504。类似地,RCD部件2402可以同时发送第一辅CA链路2406上的第三命令2510和第二辅CA链路2408上的第四命令2512。第一命令2502导致第一访问插槽2520,第二命令2504导致第二访问插槽2522。第一访问插槽2520和第二访问插槽2522在时间上偏移。第三命令2510导致第三访问插槽2524,第四命令2512导致第四访问插槽2526。第三访问插槽2524和第四访问插槽2526在时间上偏移。如图25所示,链路插槽限制了每组四列访问的间隔。

应当注意,如图23所示,模块接口处的访问插槽是连续的,但是与图23相比,辅数据总线具有较少的地址总线争用并且较少的访问时间槽是空闲。

在另一实施例中,存储器模块包括存储器接口、连接在共享总线上的CA接口和至少两组堆叠的存储器部件,其中每个存储器部件堆叠包括与线性链中的点对点拓扑连接的两个数据接口。至少两个堆叠的存储器部件的第一组中的第一堆叠包括耦合到模块接口的第一数据接口和耦合到该至少两个堆叠存储器部件的第二组中的第二堆叠的第二数据接口。在该拓扑中,用于第一组的模块接口处的第一访问插槽在时间上偏离用于第二组的模块接口处的第二访问插槽。也就是说,用于组的模块接口处的访问插槽在时间上偏移以减少数据返回延迟和地址总线连接。

在另一实施例中,存储器控制器耦合到存储器模块,并且将第一访问插槽和第二访问插槽之间的偏移作为插槽访问的管线。如上所述,两组可以在存储器模块的该部分中各自包括总共四个堆叠的两个堆叠。如上所述,存储器模块可以包括具有分成具有辅CA链路的两个组的四个堆叠的更多部分。例如,可能有总数为36个设备位点,其中堆叠有每个设备位点处。备选地,两个组可以各自包括仅一个堆叠,如图26所示。在其他实施例中,两个组可以包括多于两个的堆叠,如图24所示。组可以具有任何数量的堆叠,只要在线性链中的相邻堆叠是在不同的组中,因此它们可以在单独的CA链路上被访问。

在各自两个堆叠的两组的实现中,第一组包括第一堆叠和第三堆叠,并且第二组包括第二堆叠和第四堆叠。类似于第一访问插槽和第二访问插槽在时间上偏移,模块接口处的第三访问插槽和第四访问插槽也是如此。第二堆叠包括耦合到第一组中的第一堆叠的第一数据接口和耦合到第一组中的第三堆叠的第二数据接口。第三堆叠包括耦合到第二组中的第二堆叠的第一数据接口和耦合到第二组中的第四堆叠的第二数据接口。

在另一实施例中,存储器模块包括具有第一数据线集合、第二数据线集合和第三数据线集合以及第一引脚集合和第二引脚集合的印刷电路板,第一引脚耦合到第一数据线路集合。存储器模块还包括四个堆叠:位于印刷电路板上的第一位点处的DRAM部件的第一堆叠;位于印刷电路板上的第二位点处的DRAM部件的第二堆叠;位于印刷电路板上第三位点处的DRAM部件的第三堆叠;以及位于印刷电路板上的第四位点处的DRAM部件的第四堆叠。DRAM部件的第一堆叠包括耦合到第一数据线路集合的第一数据接口和耦合到第二数据线路集合的第二数据接口。DRAM部件的第二堆叠包括耦合到第二数据线集合的第一数据接口和耦合到第三数据线集合的第二数据接口。DRAM部件的第三堆叠包括耦合到第三数据线集合的第一数据接口和耦合到第四数据线集合的第二数据接口。DRAM部件的第四堆叠包括耦合到第四数据线集合的第一数据接口。

在另一实施例中,存储器模块包括布置在印刷电路板上的RCD部件。印刷电路板包括命令和地址(CA)线路集合的第一集合、第二集合和第三集合和第三引脚集合,第三引脚集合耦合到第一CA线路集合。第一CA线路集合耦合到RCD部件,并且第二CA线路集合耦合在RCD部件和第一位点之间以及RCD部件和第三位点之间。第三CA线路集合耦合在RCD部件和第二位点之间以及RCD部件和第四位点之间。

在本文描述的各种实施例中,DRAM部件包括:存储器单元集合;第一数据链路集合;第二数据链路集合;第三数据链路集合;耦合到第一数据链路集合的第一接收器;耦合到所述第一数据链路集合的第一传送器;耦合到所述第二数据链路集合的第二接收器;耦合到所述第二数据链路集合的第二传送器;第一多路复用器,具有耦合到第一传送器的输出;第二多路复用器,具有耦合到第二传送器的输出;第三多路复用器;第四多路复用器,具有耦合到第一多路复用器的输入和第二多路复用器的输入的输出;第五多路复用器,具有耦合到存储器单元集合的输出;以及第六多路复用器,具有耦合到第三数据链路集合的输出。第一接收器耦合到第二多路复用器的输入并耦合到第三多路复用器的输入。第二接收器耦合到第一多路复用器的输入,并耦合到第三多路复用器的输入。第三多路复用器的输出耦合到第五多路复用器的输入,并且耦合到第六多路复用器的输入。第三数据链路集合耦合到第五多路复用器的输入并耦合到第四多路复用器的输入。存储器单元集合耦合到第四多路复用器的输入并耦合到第六多路复用器的输入。备选地,DRAM部件可以包括更多或更少的部件,以促进堆叠中的其他DRAM部件与其他堆叠上的其他DRAM部件之间的数据传递,如本文所述。

在操作期间,如图25所示,来自第一堆叠的第一数据在第一周期被传递到第一访问插槽处的模块接口。来自第二堆叠的第二数据在第一周期被传递到第一堆叠。来自第三堆叠的第三数据在第一周期被传递到第二堆叠。来自第四堆叠的第四数据在第一周期被传递到第三堆叠。此外,第二数据在第二周期被传递到第二访问插槽的模块接口。第三数据在第二周期被从第二堆叠传递到第一堆叠,并且第四数据在第二周期被从第三堆叠传递到第二堆叠。然后,第三数据在第三周期被传递到在第三访问插槽处的模块接口,并且第四数据在第三周期从第二堆叠传递到第一堆叠。然后,第四数据在第四周期被传递到第四访问插槽处的模块接口。

图26是根据另一实施例的具有多个DRAM堆叠的存储器模块2600的方框图,其中多个DRAM堆叠被布置在线性链中的至少两个组中,其中每个DRAM堆叠包括两个数据接口。存储器模块2600包括布置在第一组2611和第二组2613中的存储器部件的两个堆叠。第一组2611仅包括第一堆叠2612。第二组2613仅包括第二堆叠2614。第一堆叠2612的第一数据接口经由第一DQ链路(DQ0)耦合到模块接口2610。模块接口2610(DQu)被布置成第一半字节并且包括相应的定时链路。第二堆叠2614的第一数据接口经由第二DQ链路(DQ1)耦合到第一堆叠2612的第二数据接口。

在一个实施例中,存储器模块2600包括经由主CA链路2604(CAx)耦合到模块接口的RCD部件2602。第一辅CA链路2606耦合在RCD部件2602和第一堆叠2612之间。第二辅CA链路2608耦合在RCD部件2602和第二堆叠2414之间。应当注意,存储器模块2400可以包括以与这两个堆叠相同的拓扑结构布置的附加的堆叠。

在一个实施例中,在第一周期的操作期间,来自第一堆叠的第一数据在第一访问插槽处被传递到模块接口,并且来自第二堆叠的第二数据被传递到第一堆叠。第二数据在第二周期在第二访问插槽处被传递到模块接口。

应当注意,上面关于图22-26描述的实施例仅示出了存储器模块的一部分。在一个实现中,可能有具有堆叠的36个设备位点,内存模块上共有36个堆叠。在其他实施例中,设备位点可以基于应用而变化。因此,存储器模块可以包括比本文所图示和所描述的那些更多的堆叠和组。还应当注意,存储器模块可以在系统中实现。例如,系统可以包括主板基板,如本文所述,可以在其上布置存储器控制器和一个或多个存储器模块。

上述实施例直接针对双端口裸片。以下实施例针对用于高性能、高容量RDIMM的DRAM部件的双端口堆叠。可以使用包括单个DQ/DQS的裸片来制造本文所述的双端口裸片的堆叠对。上述各种实施例可以被称为动态点对点(DPP)堆叠结构或DPP堆叠。在某些情况下,DPP堆叠架构是用缓冲区实现的。在其他情况下,DPP堆叠体系结构是用堆叠实现的。DPP堆叠架构能够通过减少DQ/DQS总线上的负载来实现更高的总线速度。DPP堆叠架构还通过在给定访问中组合多个模块来实现更高的系统容量。图27图示了标准(非DPP堆叠)DDR 3DSDRAM拓扑,其中每个裸片仅具有一个DQ/DQS接口。图28图示出DPP堆叠的拓扑,其中每个裸片具有两个DQ/DQS接口。具有两个DQ/DQS接口可能导致诸如噪声、独立接口之间的串扰、额外的缓冲和外围逻辑等的多个工程难题。双端口裸片可能需要以各种方式改变标准DRAM裸片。图29和图30图示了拓扑结构,其中每个裸片只具有一个DQ/DQS接口,但是能够实现更高的总线速度和更高的系统容量来进行DPP堆叠。在这些实施例中,想法是每个封装需要两个DQ/DQS接口,但不需要每个裸片。在这些实施例中,可以使用配置,其中在标准裸片上的现有DQ/DQS接口可以重新使用以创建DPP堆叠架构,其中封装包括两个数据接口,而不是单独的裸片。在一些实施例中,取决于如何实现3DS,拓扑可以包括额外的TSV以允许数据接口中的一个连接到封装接口,或者拓扑可以包括顶层结合或额外的F2F微球以形成裸片堆叠上的两个端口的连接,每个具有单个DQ/DQS接口。应当注意,在其他实施例中,堆叠中可以存在多于两个的裸片,其中每个裸片是双端口的。还应当注意,在其他实施例中,堆叠中可以存在多于两个的裸片,其中每个堆叠都是双端口的。

图27是根据一个实施方式的存储器部件的标准堆叠2700的框图,每个存储器部件包括单个数据接口。标准堆叠2700被图示为具有两个存储器部件。在该实现中,第一存储器部件2702和第二存储器部件2704是同构的。然而,由于不使用第二存储器部件2704的数据接口2706,耦合到数据接口的传送器、接收器和多路复用器是电源门控。经由第一存储器部件的数据接口2708和耦合到堆叠2700中的所有存储器部件的辅接口2710访问对第二存储器部件2704的访问。辅接口2710可以使用TSV来实现。

图28是根据一个实施方式的存储器部件的堆叠2800的框图,每个存储器部件包括两个数据接口。堆叠2800被图示为具有两个存储器部件。在该实现中,第一存储器部件2802和第二存储器部件2804是同构的。第一存储器部件包括第一数据接口2806和第二数据接口2808。第二存储器部件还包括两个数据接口。然而,由于不使用第二存储器部件2804的数据接口,耦合到数据接口的传送器、接收器和多路复用器是电源门控。经由第一存储器部件的数据接口2806或数据接口2808以及耦合到堆叠2800中的所有存储器部件的辅接口2810访问对第二存储器部件2804的访问。辅接口2810可以使用TSV来实现。

图29是根据一个实施例的存储器部件的堆叠2900的框图,其中堆叠2900包括两个数据接口并且每个存储器部件包括一个数据接口的。堆叠2900被图示为具有两个存储器部件,然而,堆叠2900可以在堆叠中包括多于两个的存储器部件。在该实施例中,第一存储器部件2902和第二存储器部件2904是同构的。第一存储器部件2902包括第一数据接口2906,第二存储器部件2904包括第二数据接口2908。第二存储器部件2904的传送器、接收器和多路复用器被使用,因此不是电源门控。可以经由第一数据接口2906或第二数据接口2908来访问第二存储器部件2904。在一些情况下,经由第一存储器部件2902的第一数据接口和耦合到堆叠2900中的所有存储器部件的辅接口2910访问第二存储器部件2904。在其他情况下,第二存储器部件2904是经由第二数据接口2908被访问的。辅接口2910可以使用TSV来实现。此外,如图29所示,附加的TSV 2912可以用于将第二数据接口(DQS/DQ)2908连接到第一存储器部件2902,其也被称为基芯片,以连接到第二封装接口。

应当注意,在该实施例中,辅接口2910可能仍然包括用于内部接口的多个(数百个大小)宽TSV,但是附加的TSV(数十个)用于从第二数据接口2908向第一存储器部件2902拉取数据线路。

在一些情况下,第一存储器部件2902比第二存储器部件2904更靠近封装基板。例如,第一存储器部件2902是堆叠2900中最接近或最底层的存储器部件,而第二存储器部件2904是堆叠2900中最远或最顶端的存储器部件。堆叠2900可以在第一存储器部件2902和第二存储器部件2904之间包括零个或更多个中间存储器部件。应当注意,存在将数据接口连接到两个封装接口的其他实施例。例如,引线接合连接可以如下面关于图30A-30B所示和描述的那样使用。

图30A是根据另一实施例的存储器部件的堆叠3000的框图,其中堆叠3000包括两个数据接口并且每个存储器部件包括一个数据接口。图30B是根据一个实施例的具有两个堆叠的存储器模块的侧视图,每个堆叠包括两个数据接口并且每个存储器部件包括一个数据接口。参考图30A-30B,堆叠3000被图示为具有两个存储器部件,然而,堆叠3000可以在栈中包括多于两个的存储器部件。在本实施例中,第一存储器部件3002和第二存储器部件3004是同构的。第一存储器部件3002包括第一数据接口3006,并且第二存储器部件3004包括第二数据接口3008。第二存储器部件3004的传送器、接收器和多路复用器被使用,并且因此不是电源门控。可以经由第一数据接口3006或第二数据接口3008来访问到第二存储器部件3004的访问。在一些情况下,第二存储器部件3004经由第一存储器部件3002的第一数据接口3006和耦合到堆叠3000中的所有存储器部件的辅接口3010访问。在其他情况下,第二存储器部件3004经由第二数据接口3008被访问。辅接口3010可以使用TSV来实现。然而,不同于其中附加TSV被用于将第二存储器部件3004的数据接口连接到第二封装接口的图29,堆叠3000使用引线接合连接3020。引线接合连接3020可以是自然接合界面。如图30A所示,引线接合连接3020可以结合在堆叠3000的顶部上。

在一些情况下,第一存储器部件3002比第二存储器部件3004更靠近封装基板。例如,第一存储器部件3002是堆叠3000中最接近或最底层的存储器部件,而第二存储器部件3004是堆叠3000中最远或最顶层的存储器部件。堆叠3000可以在第一存储器部件3002和第二存储器部件3004之间包括零个或多个中间存储器部件。

在另一实施例中,如图30A所图示,堆叠3000被布置在第一封装基板3022上。第一封装基板3022包括两个封装接口。第一存储器部件3002的数据接口耦合到第一封装接口,并且第二存储器部件3004的数据接口经由引线接合连接3020耦合到第二封装接口。

在另一实施例中,存储器封装包括封装基板,其包括堆叠在封装基板上的至少两个数据接口和同构存储器部件的堆叠。第一存储器部件包括连接到堆叠的存储器部件的子集的外部数据接口和连接到堆叠的所有存储器部件的内部数据接口。在某些情况下,外部数据接口只连接到存储器部件中的一个。然而,在其他实施例中,当堆叠具有多于两个存储器部件时,至少两个数据接口中的一个可以连接到堆叠中的多于一个存储器部件。在任一实施例中,堆叠中的存储器部件的至少两个的外部数据接口耦合到封装基板上的至少两个数据接口。尽管图30A-30B中仅示出了两个存储器部件,但是可以有多于两个的部件,并且图30A-30B中所图示的两个存储器部件是堆叠中的最顶层和最底层的存储器部件。这两个存储器部件的外部数据接口耦合到封装基板上的至少两个数据接口,而中间存储器部件的外部数据接口不耦合到封装基板上的至少两个数据接口。所有存储器部件的内部数据接口连接到堆叠中的所有其他存储器部件。如本文所述,同构存储器部件的堆叠可以各自包括单个主接口集合和辅接口集合,也称为单个DQ/DQs,其中存储器部件仅包括外部数据接口和内部数据接口。

在一个实施例中,第二存储器部件3004是最顶层的存储器部件。最顶层存储器部件的外部数据耦合到封装基板上的第一数据接口。第一存储器部件3002是最底层的存储器部件。最底层的存储器部件被布置在封装基板3022上比最顶层的存储器部件更近。最底层存储器部件的外部数据接口耦合到封装基板上的第二数据接口。

可以通过第一数据接口或第二数据接口中的至少一个来做出对堆叠中的任何一个存储器部件的访问。存储器部件堆叠可以通过内部数据接口将数据从第一数据接口传递到第二数据接口,并通过内部数据接口将数据从第二数据接口传递到第一数据接口。在一个实施例中,存储器部件包括引导逻辑,以能够实现通过存储器部件堆叠的旁路(bypass)路径,诸如相对于图31示出和描述的。在一些实施例中,堆叠中的存储器部件的内部数据接口不被耦合到封装基板,但是堆叠中的第一存储器部件的第一外部接口耦合到封装基板,并且堆叠中的第二存储器部件的第二外部接口耦合到封装基板。

在另一实施例中,第一封装基板包括两个或更多个封装接口和包括封装基板上的多个同构存储器部件堆叠的双端口堆叠。双端口堆叠包括双端口堆叠的第一存储器部件。第一存储器部件包括连接到封装基板上的两个封装接口的第一封装接口的第一外部数据接口和连接到双端口堆叠中的所有其他存储器部件的第一内部数据接口。双端口堆叠的第二存储器部件包括连接到封装基板上的第二封装接口的第二外部数据接口和连接到双端口堆叠的所有其他存储器部件的第二内部数据接口。在另一实施例中,双端口堆叠包括第三存储器部件。第三存储器部件包括不连接到封装基板上的两个封装接口的第三外部数据接口和连接到双端口堆叠中的所有其他存储器部件的第三内部数据接口。在另一实施例中,双端口堆叠包括第四存储器部件。第四存储器部件包括不连接到封装基板上的两个封装接口的第四外部数据接口和连接到双端口堆叠中的所有其他存储器部件的第四内部数据接口。在其他实施例中,双端口堆叠可以包括多于四个部件。

参考图30A,第一封装基板3022布置在存储器模块基板3030上。第二封装基板3032布设在与第一封装基板3022相对的一侧上。第二双端口堆叠3034可以是以类似于堆叠3000的方式布置在第二封装基板3032上。第二封装基板3032包括至少两个附加的封装接口。第二双端口堆叠3034可以包括堆叠在第二封装基板3032上的两个或更多个同构存储器部件。第二双端口堆叠3034可以第三存储器部件,第三存储器部件具有连接到第二封装基板3032上的第三封装接口的第三外部数据接口和连接到第二双端口堆叠3034中的所有其他存储器部件的第三内部数据接口。第二双端口堆叠3034还可以包括第四存储器部件,第四存储器部件具有连接到第二封装基板3032上的第四封装接口的第四外部数据接口和连接到第二双端口堆叠3034中的所有其他存储器部件的第四内部数据接口。

如图30A的实施例所图示的,第一存储器部件3002位于布置在封装基板3022的第一表面上的双端口堆叠3000的第一侧,并且第二存储器部件3004位于布置在距离封装基板3022的第一表面最远的双端口堆叠3000的第二侧。双端口堆叠3000和第一封装基板3022布置在存储器模块基板的第一表面上,并且第二双端口堆叠3034和第二封装基板3032布设在存储器模块基板的第二表面上。如本文所述,最顶层的存储器部件可以使用引线接合互连连接到相应的封装基板。备选地,如本文所述,存储器部件中的一个的数据接口可以通过附加的TSV连接到封装基板。

在一个实施例中,双端口堆叠3000或第二双端口堆叠3034的存储器部件各自包括可被编程以能够通过存储器部件的堆叠实现旁路路径的引导逻辑,诸如关于图31所图示的和所述的。

图31示出了根据一个实施例的通过双端口堆叠3100的通过路径3120。双端口堆叠3100包括堆叠在封装基板上的第一存储器部件3102和第二存储器部件3104。应当注意,更多的存储器部件可以是堆叠的一部分,但为了便于描述,所描绘的实施例关于堆叠中的两个存储器部件进行了说明和描述。双端口堆叠3100与图32中的堆叠3200不同之处在于,其包括每个堆叠(或每个封装)两个端口,而不是如图32所示的每个存储器部件两个端口。双端口堆叠3100可以处理旁路操作。数据可以通过第二存储器部件3104中的引导逻辑在第二外部接口3106上接收。第二外部接口3106耦合到封装基板上的第二封装接口。引导逻辑可以通过内部数据接口3108传送数据,内部数据接口3108可以是连接双端口堆叠3100中的所有存储器部件的TSV。第一存储器部件3102中的引导逻辑从内部数据接口3108接收数据,通过第一外部接口3110传送数据。第一外部接口3110耦合到封装基板上的第一封装接口。为了比较,使用具有双端口存储器部件的堆叠的旁路操作关于图32进行描述。

图32图示了根据一个实现的具有两个数据接口的通过堆叠3200的通过路径3220。堆叠3200包括第一存储器部件3202和第二存储器部件3204。第一存储器部件3202包括耦合到封装基板上的封装接口的两个数据接口。由于不使用第二存储器部件3204的数据接口,所以这些接口和对应的引导逻辑是电源门控。在第一数据接口上接收数据,引导逻辑在第二数据接口上传送出数据,反之亦然。

在上面的描述中,阐述了许多细节。然而,对于受益于本公开的本领域普通技术人员将显而易见的是,可以在没有这些具体细节的情况下实施本发明的实施例。在某些情况下,公知的结构和设备以框图形式而不是详细地示出,以避免使描述模糊。

根据对计算机存储器内的数据位的操作的算法和符号表示来呈现详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员使用的手段以最有效地将其工作的实质传达给本领域技术人员。算法在这里并且通常被认为是导致期望结果的自相一致的步骤序列。这些步骤是需要物理量的物理操作的步骤。通常,虽然不一定,这些量采取能够被存储、传递、组合、比较和以其他方式操纵的电或磁信号的形式。有时,主要是出于普遍使用的原因,将这些信号称为位、值、元件、符号、字符、术语、数字等已经证明是方便的。

然而,应当记住,所有这些和类似的术语都应该与适当的物理量相关联,并且仅仅是适用于这些量的便利标签。除非另有明确说明,从上述讨论中显而易见,在整个说明书中,使用诸如“加密”、“解密”、“存储”、“提供”、“导出”、“获得”、“接收”、“认证”、“删除”、“执行”、“请求”、“通信”等的术语的讨论是指计算系统或类似的电子计算设备的动作和过程,其将表示为在计算系统的寄存器和存储器内的物理(例如,电子的)数量的数据操作和变换为类似地表示为计算系统存储器或寄存器或其它这样的信息存储、传送或显示设备内的物理量的其它数据。

词语“示例”或“示例性”在本文中用于表示用作示例、实例或说明。本文被描述为“示例”或“示例性”的任何方面或设计不必被解释为比其他方面或设计优选或有利。当然,词语“示例”或“示例性”的使用旨在以具体的方式呈现概念。如本公开中所使用的,术语“或”旨在表示包容性“或”,而不是排他性“或”。也就是说,除非另有说明或从上下文中清楚,“X包括A或B”旨在指任何自然包容性排列。即如果X包括A;X包括B;或X包括A和B,则在任何上述情况下“X包括A或B”是满足的。此外,在本公开和所附权利要求中使用的量词“一(a)”和“一个(an)”通常应被解释为意指“一个或多个”,除非另有说明或从上下文中清楚地指定为单数形式。此外,术语“实施例”或“一个实施例”或“实现”或“一个实现”的使用在全文中并不旨在指相同的实施例或实现,除非如此被描述。

本文所描述的实施例还可以涉及用于执行本文操作的装置。该装置可以为所需目的而特别构造,或者可以包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这样的计算机程序可以存储在非暂时的计算机可读存储介质中,诸如但不限于包括软盘、光盘、CD-ROM和磁光盘的任何类型的盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁或光卡、闪速存储器或适合于存储电子指令的任何类型的介质。术语“计算机可读存储介质”应被视为包括存储一组或多组指令的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的高速缓存和服务器)。术语“计算机可读介质”还应被视为包括能够存储、编码或携带用于机器执行的一组指令、并使得机器执行现有实施例的任何一种或多种方法的任何介质。因此,术语“计算机可读存储介质”应被视为包括但不限于固态存储器、光学介质、磁性介质、能够存储用于由机器执行的一组指令的、以及使机器执行本实施例的任何一种或多种方法的任何介质。

本文呈现的算法和显示器并不固有地与任何特定的计算机或其他设备相关。各种通用系统可以根据本文的教导与程序一起使用,或者可以证明构造更专用的装置来执行所需的方法步骤是方便的。各种这些系统所需的结构将从下面的描述中出现。此外,本实施例不参考任何特定的编程语言来描述。应当理解,可以使用各种编程语言来实现如本文所述的实施例的教导。

以上描述提出了许多具体细节,诸如特定系统、部件、方法等的示例,以便提供对本发明的多个实施例的良好理解。然而,对于本领域技术人员显而易见的是,可以在没有这些具体细节的情况下实践本发明的至少一些实施例。在其他情况下,公知的部件或方法不会被详细描述,或以简单的框图格式呈现,以避免不必要地使本发明模糊。因此,上面提出的具体细节仅仅是示例性的。特定的实现可以根据这些示例性细节而变化,并且仍被认为在本发明的范围内。

以上描述包括具体术语和附图标记以提供对本发明的透彻理解。在某些情况下,术语和符号可能意味着实施本发明不需要的具体细节。例如,特定数量的位、信号路径宽度、信号传送或工作频率、部件电路或设备等中的任何一个可以与上述备选实施例中所描述的不同。此外,示出或描述为多导体信号链路的电路元件或电路块之间的互连可以替代地是单导体信号链路,并且单导体信号链路可以替代地是多导体信号链路。示出或描述为单端的信号和信号路径也可能是差分的,反之亦然。类似地,在替代实施例中,描述或描绘为具有高态有效或低态有效逻辑电平的信号可能具有相反的逻辑电平。可以使用金属氧化物半导体(MOS)技术、双极技术或可以实现逻辑和模拟电路的任何其它技术来实现集成电路设备内的部件电路。关于术语,当信号被驱动到低或高逻辑状态(或充电到高逻辑状态或放电到低逻辑状态)时,信号被称为“断言”,以指示特定条件。相反地,信号被称为“取消断言”以指示信号被驱动(或充电或放电)到除了被断言状态之外的状态(包括高或低逻辑状态,或者当信号驱动电路转变到高阻抗条件时可能发生浮置状态,例如开漏或开集条件)。当信号驱动电路断言(或者如果明确地声明或通过上下文指示的取消断言)信号驱动电路和信号接收电路之间的信号线路上的信号时,信号驱动电路被称为将信号“输出”到信号接收电路。当信号在信号线上被断言时,信号线被称为“激活”,当信号被取消断言时,信号线被“去激活”。此外,附加到信号名称的前缀符号“/”指示该信号是有效的低信号(即,所断言状态为逻辑低电平状态)。信号名称上的线(例如,)也用于指示活动的低信号。术语“耦合”在本文中用于表达直接连接以及通过一个或多个中间电路或结构的连接。集成电路设备“编程”可以包括例如但不限于响应于主机指令将控制值加载到设备内的寄存器或其他存储电路中,并且从而控制设备的操作方面,通过一次性编程操作(例如,在设备制造期间在配置电路内吹熔断器)来建立设备配置或控制设备的操作方面,和/或将设备的一个或多个选定的引脚或其他接触结构连接到参考电压线(称为捆扎)以建立特定设备配置或设备的操作方面。术语“示例性”用于表示示例,而不是偏好或要求。虽然已经参照本发明的具体实施例描述了本发明,但是这将是明显的,在不脱离本发明的更广泛的精神和范围的情况下,可以对其进行各种修改和改变。例如,任何实施例的特征或方面可以至少在可实施的情况下与任何其他实施例结合来应用或代替对应特征或其方面来应用。因此,说明书和附图被认为是示意性的而不是限制性的。

应当理解,上述描述旨在是示意性的而不是限制性的。在阅读和理解上述描述时,许多其他实施例对于本领域技术人员是显而易见的。因此,本发明的范围应当参照所附权利要求以及其中这些权利要求被赋予的等同物的全部范围来确定。

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

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号