CN116560563A - 具有高速缓存的存储器模块操作的存储器系统 - Google Patents

具有高速缓存的存储器模块操作的存储器系统 Download PDF

Info

Publication number
CN116560563A
CN116560563A CN202310262063.3A CN202310262063A CN116560563A CN 116560563 A CN116560563 A CN 116560563A CN 202310262063 A CN202310262063 A CN 202310262063A CN 116560563 A CN116560563 A CN 116560563A
Authority
CN
China
Prior art keywords
circuit
data
dram
memory
scm
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310262063.3A
Other languages
English (en)
Inventor
F·A·韦尔
K·L·赖特
J·E·林斯塔特
C·汉佩尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Rambus Inc
Original Assignee
Rambus Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Rambus Inc filed Critical Rambus Inc
Publication of CN116560563A publication Critical patent/CN116560563A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1678Details of memory controller using bus width
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/403Error protection encoding, e.g. using parity or ECC codes

Abstract

本申请的各实施例涉及具有高速缓存的存储器模块操作的存储器系统。公开了存储器控制器、设备、模块、系统和关联的方法。在一个实施例中,一种存储器模块包括用于耦合到总线的管脚接口。总线具有第一宽度。模块包括至少一个存储类存储器(SCM)部件和至少一个DRAM部件。存储器模块在利用所有第一宽度的第一模式中和在利用少于所有第一宽度的第二模式中操作。

Description

具有高速缓存的存储器模块操作的存储器系统
分案申请说明
本申请是国际申请日为2016年9月9日、于2018年4月2日进入中国国家阶段、国家申请号为201680057520.3、名称为“具有高速缓存的存储器模块操作的存储器系统”的中国发明专利申请的分案申请。
技术领域
这里的公开内容涉及存储器系统、存储器模块、存储器控制器、存储器设备和关联的方法。
背景技术
一代又一代动态随机存取存储器部件(DRAM)已经在市面上出现,其中光刻特征大小不断地缩减。因而,来自每代的器件存储容量已经增加。然而,越来越难以伸缩DRAM器件和获得用于电荷存储的充分电容性能。DRAM器件制造也可能成本高。
各种非易失性存储器(聊举数例比如电阻随机存取存储器(RRAM)和相变随机存取存储器(PCRAM))制造起来相对地廉价。然而,许多非易失性存储器技术却必须达到它们的DRAM对应物的性能。
将希望在存储器系统中使用具有许多非易失性技术的成本优点和DRAM的性能的存储器。
附图说明
通过示例而不是通过限制在附图的各图中图示了公开内容的实施例,并且在附图中,相似标号指代相似单元,并且在附图中:
图1图示了存储器系统的一个实施例,该存储器系统使用仅装配DRAM部件的第一存储器模块以及装配DRAM部件和存储类存储器(SCM)存储器部件二者的第二模块。
图2A至图2I图示了这里进一步被描述的模块互连方案的各种示例。
图3图示了数据缓冲器部件内的导引电路。
图4A至图4F图示了与两个不同存储器模块配置对应的各种高速缓存操作。
图5图示了标签数据结构,其与SCM存储器空间相关。
图6图示了点到点存储器架构,该点到点存储器架构利用具有DRAM部件的第一存储器模块和具有SCM部件的第二存储器模块。
图7图示了利用四个存储器模块的与图6相似的存储器架构。
图8A至图8F图示了与各种存储器模块配置对应的多种高速缓存操作。
图9图示了根据一个实施例的存储器系统的进一步的细节。
图10至图13图示了关于图9的存储器系统中的高速缓存操作的各种定时图。
图14图示了跨模块而被分布的涉及标签匹配的电路。
图15A至图15I图示了用于各种存储器模块配置的配置分类法,这些存储器模块配置利用SCM存储器部件和DRAM存储器部件二者。
图16A至图16F图示了用于图15A中所示的存储器模块配置的各种高速缓存操作。
图17A至图17F图示了用于图15B中所示的存储器模块配置的各种高速缓存操作。
图18A至图18F图示了用于图15C中所示的存储器模块配置的各种高速缓存操作。
图19A至图19F图示了用于图15D中所示的存储器模块配置的各种高速缓存操作。
图20A至图20F图示了用于图15E中所示的存储器模块配置的各种高速缓存操作。
图21A至图21F图示了用于图15F中所示的存储器模块配置的各种高速缓存操作。
图22A至图22F图示了用于图15I中所示的存储器模块配置的各种高速缓存操作。
图23A至图23F图示了用于图15I中所示的存储器模块配置的各种高速缓存操作。
图24A至图24F图示了用于图15I中所示的存储器模块配置的各种高速缓存操作。
图25图示了各种存储器模块配置之间的性能比较。
图26图示了各种存储器模块配置之间的功率比较。
图27图示了关于图15A的存储器系统配置的进一步的细节。
图28图示了关于图15C的存储器系统配置的进一步的细节。
图29图示了关于图15C的存储器系统配置的进一步的细节。
图30至图36图示了关于与各种系统配置有关的各种高速缓存操作的进一步的细节。
图37至图42图示了定时图,这些定时图示出了各种系统实施例中的各种高速缓存操作的定时。
图43至图45图示了各种系统配置。
图46至图49图示了各种定时图。
图50图示了关于DRAM封装结构的进一步的细节。
图51图示了又一系统实施例。
图52图示了高级别系统实施例。
具体实施方式
公开了存储器模块、存储器控制器、设备和关联的方法。在一个实施例中,公开了一种存储器模块,该存储器模块包括用于耦合到具有第一宽度的数据总线的管脚接口。模块能够在利用数据总线的全第一宽度的第一旧式模式中操作。模块也可以在第二模式中被操作,其中模块利用数据总线的少于所有第一宽度。模块包括至少一个存储类存储器(SCM)设备和至少一个DRAM存储器设备。这一基本架构使DRAM设备能够提供用于涉及SCM设备的事务的高速缓存功能,由此针对主要地由较低成本SCM设备填充的存储器系统提供高性能。
现在参照图1,示出了根据第一实施例的存储器系统、主要地被标示为100。系统包括第一DRAM模块102和第二模块104,第二模块104并入DRAM存储器部件或者设备106和存储类存储器(SCM)设备108。存储类存储器设备例如包括存储器部件,这些存储器部件具有经常与非易失性存储器设备(比如相变存储器(PCM)、电阻随机存取存储器(RRAM)和闪存)关联的特性。第一模块102和第二模块104经由包括主要数据路径DQu和DQv以及控制地址C/A路径CA、CSy和CSx的旧式点到2点(多股)架构被互连到存储器控制器105。对于一个实施例,混合模块104中的DRAM部件被配置为形成高速缓存存储器,因此提供用于涉及存储器控制器105和SCM存储器设备108的事务的高速缓存功能。然而,利用旧式多股链路架构可能涉及在混合模块104上的DRAM高速缓存存储器与SCM存储器的固定比率。因此,向辅助模块扩张高速缓存区域可以涉及主要链路上的附加传送,这可能影响那些链路的带宽。
进一步参照图1,存储器设备(DRAM和/或SCM)106和108中的每个存储器设备可以包括一个或者多个存储器管芯堆(stack)。将描述SCM堆的结构,其中理解可以用相似方式配置DRAM堆。如更早指出的那样,存储器管芯可以是除了DRAM之外的非易失性类型的存储器技术,聊举数例比如电阻随机存取存储器(RRAM)、相变随机存取存储器(PCRAM)和闪存。设备的每个堆可以例如包含八个SCM存储器部件。在放大的视图1-1中示出了堆叠的设备集合的一个示例,该视图图示了单个封装118内的堆叠的SCM存储器部件116。对于一些配置,SCM模块基板120的相反侧可以装配存储器部件,比如在122处。可以使用贯穿硅通路、引线接合、任何其它连接方法来并行连接每个SCM存储器部件的接口。其它堆叠配置(比如封装上封装堆叠)也是有可能的。
图2A至图2C图示了各种高级别配置图。图2A示出了存储器控制器202与一个混合DRAM/SCM模块204之间的互连,而图2B至图2I示出了存储器控制器202与两个模块之间的互连,这两个模块包括混合模块204和仅包括DRAM部件或者DRAM部件和SCM部件二者的第二模块206。图2A的配置包括具有标签存储器比较电路208的存储器控制器202,其中控制器经由两个36b独立通道或者一个72b锁步通道被连接到混合存储器模块204。混合模块204包括DRAM存储器部件210和SCM存储器部件212二者。图2B示出了两模块配置,其中存储器控制器202耦合到混合模块204和仅包括DRAM部件210的第二模块206。两个模块204和206经由多股配置被耦合到存储器控制器202,其中控制器的给定的链路由与每个模块关联的对应链路共享。最后,图2C图示了又一多股两模块配置,其中模块204和206二者是包括SCM存储器部件210和DRAM存储器部件212二者的混合模块。
图2D至图2F图示了存储器模块配置,这些存储器模块配置涉及存储器控制器202与两个模块204和206中的一个或者每个模块以及两个插座中的每个插座之间的点到点连接,每个插座能够保持一个模块。如图2D中所示,存储器控制器202包括标签存储器比较电路208和将标签存储器比较电路的部分耦合到混合存储器模块204的第一点到点链路214。标签存储器比较电路的在217处的第二部分经由经过连续性模块218而被路由的点到点链路216连接到混合存储器模块204。连续性模块被配置为插入到模块插座中以提供存储器控制器202与至少一个其它模块之间的点到点连通。这样,连续性模块没有使用存储器设备而仅提供连通功能。由于添加的连通,单个混合存储器模块202可以通过多个点到点链路与存储器控制器202对接,链路的一半被直接地耦合到存储器控制器,并且链路的一半经过连续性模块被路由到控制器。链路216可以形成在混合存储器模块204与连续性模块218之间被直接地耦合的反向通道。如以下被更完全地描述的那样,对于一个实施例,反向通道链路可以提供用于在存储器模块之间平衡负荷的连接。
图2E图示了与图2D相似的配置,但是取代在第二模块插座中利用连续性模块,使用DRAM存储器部件210的第二存储器模块206被插入到插座中,因此以点到点方式连接到存储器控制器202。对于一个实施例,DRAM存储器部件提供非高速缓存的DRAM存储装置。图2F示出了又一备选实施例,其中第二存储器模块206是使用SCM存储器部件210和DRAM存储器部件212二者的混合存储器模块。
图2G至图2I图示了用于图2E的系统配置的可能的负荷平衡示例。图2G图示了负荷平衡示例,其中系统的一半带宽被引向第一模块204,并且系统的一半带宽被引向第二模块206。对于这一情况,两个模块之间的反向通道链路216没有提供平衡功能。图2H图示了负荷平衡示例,其中通过利用反向通道216以旁路从存储器控制器202经过第二存储器模块206向混合存储器模块204的数据传送来向混合模块204分配系统的全带宽。图2I图示了如下示例,其中通过激活反向通道216以指引经过混合模块204向DRAM模块206的数据传送来向第二模块206、仅DRAM模块分配系统的全带宽。
图3图示了可以与以上描述的存储器模块中的每个存储器模块的数据缓冲器DB部件一起被利用的导引逻辑300的一个实施例。导引逻辑300包括具有半字节对DQ/DQS I/O电路的主要接口302和也包括对应的半字节对DQ/DQS I/O电路的辅助接口304。主要接口302的每个半字节对与用于写入数据的接收路径306和用于读取数据的发射路径308关联。每个发射路径308由从与辅助半字节对关联的选择的接收路径312和主要半字节对的另一接收路径306接收数据的复用器310的输出馈给。用于辅助接口的半字节对电路与主要结构相似,但是接收路径和发射路径分别对应于读取数据和写入数据。导引逻辑300实质上允许来自DQ/DQS I/O电路中的任何DQ/DQS I/O电路的数据被导引到其它DQ/DQS I/O电路中的任何DQ/DQS I/O电路,从而因此提供旁路功能,并且针对具有点到点技术的系统(比如图2D至图2I)实现了负荷平衡。
图4A至图4F图示了与混合DRAM模块和SCM模块关联的各种高速缓存操作,其中标签比较电路402位于存储器控制器404上。一般而言,由每个模块上的DRAM部件限定的总DRAM容量的部分被标示为用于SCM存储器的高速缓存。对于给定的存储器操作,由控制器404在402处请求地址。如果在DRAM高速缓存中保持地址,则可以如图4A中所示的向控制器直接地馈送和提供寻址的高速缓存空间中的数据。如图4B中所示,在地址不在高速缓存中(常被称为“未命中”)的情况下,仍然需要读出内容以用于标签比较。在406处执行这一步骤作为第一步骤。在408处,执行附加步骤,其中对于数据读取SCM存储器。现在参照图4C,如果未命中涉及“脏”数据,则除了以上关于图4B而被描述的、来自DRAM模块和SCM模块的读取操作406和408之外,还在410处执行向SCM存储器中的旧位置的回写操作。可以按照任何顺序执行第二步骤408和第三步骤410。图4D至图4F示出了用于写入事务的对应的高速缓存操作。
其中,图4A至图4F涉及以下内容或者与以下内容有关:
备注
+控制器中的标签比较逻辑
+对DRAM模块的最小影响
+最小读取命中延时
+脏未命中数据的满EDC(回写)
+脏未命中标签的满EDC(回写)
连续BW摘要-两个36b通道(作为25.4GB/s的小部分=在6.4Gb/s为36b),链路周转=1.25ns=0.5tDATA RH~1.00x RMC~0.50x RMD~0.25x WH~0.33x WMC~0.33x WMD~0.25x
连续BW摘要-一个72b通道(作为50.8GB/s的小部分=在6.4Gb/s为72b),链路周转=1.25ns=1.0tDATA RH~1.00x RMC~0.50x RMD~0.20x WH~0.25x WMC~0.25x WMD~0.20x
图5图示了DRAM空间中的给定的高速缓存线到SCM存储器空间中的多个地址线之间的关系或者映射的一个实施例。这可以被称为用于单集合(直接映射)高速缓存组织的DRAM到SCM映射。对于所示的示例,可以在DRAM空间中的比如在504处的单个高速缓存线中加载SCM空间中的八个高速缓存线位置中的任何高速缓存线位置,比如在502处。可以被存储在DRAM高速缓存线中的数据结构506的一个实施例包括标识3位标签地址的标签地址字段508、72B数据字段510、保护整个数据结构的错误代码EDC字段512以及相应的奇偶校验字段514、有效516和脏字段518。对于一个实施例,EDC字段512可以利用纠错/检错代码来保护DATA字段510和TAG字段508。在一些实施例中,EDC字段512字段也可以保护VALID(有效)字段514、DIRTY(脏)字段516和PARITY(奇偶校验)字段518,并且在其它实施例中可以没有保护这些字段。PARITY字段514可以利用检错代码(这一代码将与在EDC字段中被使用的代码冗余)来保护TAG字段508。PARITY字段514在一些实施例中也可以保护VALID字段516和DIRTY字段518。
图6图示了展示点到点架构的存储器系统600的一个实施例。系统600包括第一存储器模块602,第一存储器模块602使用由多个数据缓冲器部件DB和命令/地址(CA)缓冲器部件RCD从存储器控制器606缓冲的DRAM存储器部件604。第一存储器模块602通过点到点数据半字节或者链路DQv和点到点CA链路CS/CAx耦合到存储器控制器606。系统600包括第二存储器模块608,第二存储器模块608使用也由多个数据缓冲器DB和CA缓冲器部件RCD从存储器控制器606缓冲的SCM存储器部件610。第二模块608包括经由数据半字节DQu的到存储器控制器的点到点连接。CA链路CS/CAy以点到点方式将第二模块608的CA信号线耦合到存储器控制器606。第一模块602和第二模块608可以经由反向通道信号路径DQt相互通信。对于描述的两模块配置,可以向一个模块分配控制器的总数据宽度的一半,并且可以向第二模块分配总数据宽度的一半。对于一个实施例,向用于涉及第二存储器模块608的SCM存储器的操作的高速缓存分配第一模块602的DRAM存储器空间的至少部分。对于一个实施例,反向通道路径DQt提供两个模块602与608之间的高速缓存传送,从而使得在用于高速缓存传送的主要链路DQu和DQv上无需传送带宽。反向通道DQt也可以提供动态负荷平衡操作。
其中,图6涉及以下内容或者与以下内容有关:
特征
[1]主要链路拓扑是点到点
[2]分离的DRAM和SCM模块更灵活(更多容量组合)
[3]DQt链路提供两个模块之间的高速缓存传送(在主要链路上无需BW)
[4]可以在宽范围内调整DRAM和SCM存储器空间中的高速缓存和未高速缓存的区域
[5]动态负荷平衡
可以如图7中所示地扩张图6的存储器系统而仍然维持点到点架构。示出可四个模块702、704、706和708,其中两个模块704和708使用DRAM部件以提供用于使用SCM存储器部件的两个其它模块702和706的高速缓存。在这样的实施例中,可以将存储器控制器710的总数据宽度分配成两半,其中经由半字节链路DQu产生到第一DRAM模块708的直接点到点数据连接,并且经由半字节链路DQv产生到第二DRAM模块704的第二点到点连接。经由链路CS/CAx和CS/CAy产生DRAM模块708和704与存储器控制器710之间的点到点CA连接。经由链路CS/CAx’和CS/CA’在DRAM模块708、704与SCM模块706、702之间提供用于CA信令的、在712和714处的反向通道链路。SCM模块706和702与DRAM模块708和704对接以用于经由沿着链路DQu’和DQv’的反向通道链路连接的数据信号传送。如以下被更完全地说明的那样,反向通道连接714和712允许模块之间的高速缓存操作,而对主要接口点到点链路DQu和DQv的带宽几乎没有影响。
图8A至图8F图示了图6的DRAM存储器模块602、SCM存储器模块608和存储器控制器606之间的高速缓存操作。操作假设高速缓存标签比较电路802驻留在DRAM模块602上,并且在存在读取未命中时没有回写脏读取未命中数据也没有分配DRAM中的高速缓存线。这意味着读取未命中脏情况和写入未命中干净情况不会出现(已经删掉它们)。这一简化允许高速缓存的系统具有最高读取和写入带宽,而代价为大多数读取访问SCM位置。
图8A示出了读取命中情况,其中DRAM高速缓存中的在800处的地址与请求的地址匹配(由标签比较电路802执行),从而造成数据从DRAM模块602被直接地传送给存储器控制器604(在仅一个步骤中,因为已经从DRAM空间800读取并且向标签电路802和数据缓冲器提供了数据)。对于一个实施例,读取的数据被延迟时间间隔以努力与关联于读取未命中情况的延时匹配。在延迟读取未命中数据以与读取未命中数据的延迟匹配时,在向不同地址的读取命中与更早读取未命中之间将没有在数据总线上的冲突。
对于图8B中所示的读取未命中情况,首先读取DRAM 800,从而使得可以经由标签电路802确定标签内容并且与传入的请求的地址比较。在数据被确定为“未命中”时,然后对于用以在804处沿着反向通道链路(在DRAM模块与SCM模块之间)从SCM模块606传送、然后经由经过以上关于图3而被描述的数据缓冲器DB导引逻辑300配置的旁路连接从DRAM模块602传送请求的读取数据的读取操作来访问SCM存储器模块606。图8C仅确认这里描述的特定实施例没有提供用于“脏”读取未命中情况的任何回写。
图8D图示了写入命中情况,其中在第一步骤中,在810处首先从DRAM 800读取标签内容,并且在第二步骤中,在812处将写入数据写入到DRAM模块602。对于一个实施例,对于写入命中情况,写入操作涉及DRAM模块602的交替奇数和偶数半字节。在使用交替奇数和偶数半字节时,然后有可能在奇数半字节中在两个不同周期中执行标签读取和数据写入,并且在偶数半字节中在两个不同周期中执行第二标签读取和数据写入,从而产生每tCC间隔一个高速缓存的写入操作的吞吐量(与未高速缓存的DRAM系统相同)。
图8E示出了对于描述的实施例,对于写入未命中情况没有执行操作。对于写入未命中脏操作,当在第一步骤中比较标签内容之后,在814处经由反向通道链路804向SCM存储器传送标签内容,并且如在图8F中的816处所示将写入数据写入到DRAM 800。
其中,图8A至图8F涉及以下内容或者与以下内容有关:
备注
-DRAM模块中的标签比较逻辑
o对DRAM模块的适度影响
+最小读取命中延时
-没有脏读取/写入未命中数据的EDC(回写)
-奇偶校验脏读取/写入未命中标签(回写)在标签奇偶校验错误之后需要用于EDC纠正的某个修复连续BW摘要(作为25.4GB/s的小部分=在6.4Gb/s为36b,对奇数/偶数半字节的交替访问)
图9图示了图6、图7和图8A至图8F的存储器系统的进一步的细节,其中特别强调用于DRAM模块和SCM模块的缓冲器电路。重申一点,这一特定实施例使用存储器控制器902与至少一个DRAM模块904之间的点到点连接,并且也在DRAM模块上(并且针对一个实施例,具体地在CA缓冲器RCDD中)并入标签比较电路906。经由DRAM模块904与SCM模块908之间的反向通道连接DOu’、经过DRAM模块904传递存储器控制器902与SCM模块908之间的数据传送。存储器控制器902包括被耦合到数据半字节DQu的相应的读取数据队列910和写入数据队列912,这被用作为用于耦合到DRAM模块数据缓冲器部件DBD的主要数据链路。存储器控制器902还包括经由复用器918被有选择地耦合到CA链路CS/CAx的相应的读取地址队列914和写入地址队列916,该CA链路CS/CAx用作为用于将存储器控制器902耦合到DRAM模块CA缓冲器RCDD的主要CA链路。如以下描述的那样,状态电路“STATUS(状态)”920经由状态链路STx与DRAM CA缓冲器部件RCDD对接,该状态链路STx提供涉及标签比较操作的信息。
进一步参照图9,DRAM模块904上的每个缓冲器部件DBD使用以上关于图3而被描述的导引逻辑,从而使得被耦合到链路DQu和DQu’(反向通道链路)的主要数据接口I/O电路可以经由在导引逻辑的数据传送路径中被适当地放置的复用器电路被有选择地耦合到辅助数据I/O电路DQu(相应的偶数和奇数高速缓存DRAM半字节)中的任一个。对于读取命中情况,可以在数据缓冲器DBD中使用延迟电路“(DATA DELAY MATCH数据延迟匹配)”922以与读取未命中情况的延时匹配,这可以使DRAM模块904与存储器控制器902之间的主要数据链路DQu的带宽最大化。备选地,可以省略延迟电路922,并且通过利用DRAM CA缓冲器RCDD中的延迟电路延迟地址命令来提供相似延迟。如更早描述的那样,延迟读取命中数据以与读取未命中数据匹配允许最大读取数据带宽,而代价为读取命中情况下的增加延时。
继续参照图9,DRAM CA缓冲器RCDD包括向DRAM存储器部件926提供缓冲的写入地址的DRAM写入地址缓冲器电路924。标签比较电路906也在CA缓冲器部件RCDD上驻留,该CA缓冲器部件RCDD接收用于请求的地址的新标签信息,该请求的地址具有由DRAM数据缓冲器经由标签通信路径TAGOLD提供的旧标签信息。然后经由状态链路STx向存储器控制器902反馈标签比较的结果,从而使得控制器可以派发对于与“未命中”情况关联的附加高速缓存操作而言必需的任何命令。经由CA链路CS/CAx链路向DRAM模块904传递的CA信息由DRAM模块经由CA反向通道链路CS/CAx’重新驱动到SCM模块908。
SCM存储器模块数据缓冲器部件DB和CA缓冲器部件与它们的DRAM模块对应物配置相似。然而,由于经过DRAM模块904产生存储器控制器902与存储器模块904和908之间的连接,所以用于数据缓冲器DBD和DBS的导引逻辑一般地提供一个主要数据电路(反向通道链路)到辅助数据I/O电路中的任一个之间的导引能力。至于到CA缓冲器部件RCD,没有提供(或者可选地提供)标签比较电路。然而,为了控制反向通道链路CS/CAx’,使用旁路比较逻辑928。
图10至图13图示了各种定时图,这些定时图示出了以上关于图6、图7、图8A至图8F和图9而被讨论的各种高速缓存操作的相对定时。现在参照图10,示出了用于与高速缓存“读取命中”和高速缓存读取未命中(干净)情况有关的一系列操作的相对定时。图表中所示的标注的链路的上半部(CAx到STx)对应于与DRAM模块(比如904(图9))关联的信号,而较低信号(CAx’到DQu’)涉及与SCM模块(比如908(图9))关联的信号。为了评估标签存储器的内容,用以从DRAM读取标签地址的与命令“ACT”和“RD”对应的读取事务沿着CA链路CAx而被分派并且沿着“偶数”辅助CA链路CAx由CA缓冲器重新驱动。若干周期以后访问并且可选地延迟标签地址数据Q。延迟标签数据(地址)以与读取未命中数据操作的延时匹配可以帮助将主要数据链路DQu的带宽最大化。标签比较电路906评估请求的地址和标签地址,并且在状态链路STx上指示命中或者未命中“H/M”。与用以读取标签存储器的内容的DRAM模块事务并行地,通过沿着反向通道CA链路CAx’分派读取命令来执行投机SCM存储器访问操作,该读取命令沿着辅助CA接口路径CAX’s由CA缓冲器RCD重新驱动。备选地,SCM读取访问可能等待开始,直至在DRAM中读取标签并且确认读取未命中。然而,这增加了读取未命中延时。来自SCM模块908的所得缓冲器部件Q然后可以在“读取未命中干净”情况的情况下沿着主要链路DQu被传送到存储器控制器902。对于读取“命中”情况,向存储器控制器902传送从DRAM访问的数据。
其中,图10涉及以下内容或者与以下内容有关:
情况RH/RMC-高速缓存读取命中和高速缓存读取未命中(干净)
图11针对“读取命中”和“读取未命中干净”情况图示了与图10的定时图相似的定时图,但是取代延迟从DRAM模块904被访问的读取数据,在DRAM CA缓冲器RCDD中沿着辅助CA链路CAx延迟地址信息。如同在图10中描述的数据延迟选项,地址延迟可以提高主要数据链路DQu的带宽。
其中,图11涉及以下内容或者与以下内容有关:
情况RH/RMC-高速缓存读取命中和高速缓存读取未命中(干净)
图12图示了用于“写入命中”和“脏写入未命中”情况的定时。写入操作(命令“ACT”和“WR”)沿着主要CA链路CAx由存储器控制器902分派。CA缓冲器部件RCDD接收写入命令、地址信息和关联的数据,并且重传该命令作为用于读取标签存储器的内容的读取操作“RD”(由CA缓冲器RCDD实现)。然后在DRAM写入缓冲器中存储新写入数据和新地址标签信息。对于写入未命中脏情况(在评估标签信息之后被确定),沿着链路CAx’利用写入命令“WR”执行又一写入操作,以将旧数据和标签信息放置在SCM写入缓冲器中。以这一方式在缓冲器中存储旧标签信息和新标签信息帮助将主要数据链路DQu的带宽最大化。
其中,图12涉及以下内容或者与以下内容有关:
情况WH/WMD-高速缓存写入命中和高速缓存写入未命中(脏)
图13图示了对于为了针对高速缓存写入命中和未命中情况、实现奇数/偶数半字节定序而被采取的各种操作而涉及的相对定时。该定序利用在缓冲器中暂时存储标签和数据以用于图12的写入操作。对于被附着到数据缓冲器的奇数半字节和偶数半字节的交替读取和写入操作将周转时间延时最小化并且将通道的带宽最大化。
其中,图13涉及以下内容或者与以下内容有关:
情况WH/WMD-高速缓存写入命中/未命中、有奇数/偶数半字节定序
图14示出了DRAM模块(比如图9中所示的DRAM模块)的部分,其中经由多个数据缓冲器部件DB跨DRAM模块分布而不是比如在图9中在904在单个CA缓冲器RCD中使用标签匹配电路。也示出了包括标签比较电路1404的数据缓冲器1400的部分。状态链路STx将存储器控制器902对接到CA缓冲器部件RCDD。沿着各种数据缓冲器DB之间的模块对匹配链路1402进行路由允许数据缓冲器DB沿着匹配链路向CA缓冲器RCD传达用于每个缓冲器的每个匹配的结果,从而使得可以向存储器控制器902发送结果以控制高速缓存操作。标签比较电路1404在每个数据缓冲器DB中被复制并且包括XOR电路1406,该XOR电路接收旧标签信息TAGOLD[i]和新标签信息TAGNEW[i](来自标签字段)作为它的输入。然后,OR门1410利用来自控制寄存器1412的输出(在初始化被设置)对在1408处的XOR输出进行掩码或者OR。来自OR门1410的输出然后可以在1414处经历定时调整并且沿着匹配链路1402向外被传输给CA缓冲器RCD。以这一方式分布标签状态信息可以减少管脚计数。备选地,来自DRAM读取的TAGOLD可以从DB部件传送到RCD部件,其中完成TAG比较。这可能需要在缓冲器部件上的更多管脚。
其中,图14涉及以下内容或者与以下内容有关:
状态返回、有分布式标签匹配
状态-匹配
状态-无匹配
图15A至图15I图示了用于各种实施例的高级别系统配置图,这些实施例可以用作以上描述的系统、模块和存储器设备的备选。图15E和图20的实施例与图8中的DV4系统相似,不同在于图8的实施例使用在读取时未分配的高速缓存策略,而图15E和20的实施例将允许在读取操作时的分配(如其它配置将有的那样)。例如,图15A示出了经由反向通道连接1506而被耦合在一起的第一对DRAM和SCM模块1502和1504的高级别图,其中DRAM模块1502被连接到存储器控制器1508。相似地配置第二对DRAM模块1510和SCM模块1512。对于这一实施例,标签比较电路1514驻留在存储器控制器1508上。在图16A至16F中示出了用于图15A的实施例的关联的高速缓存操作。读取命中操作如图16A中所示涉及直接地读取DRAM模块1502并且向存储器控制器1508直接地提供数据。对于图16B中所示的读取未命中干净,执行附加步骤,该步骤涉及从SCM模块1504读取标签信息和数据作为向DRAM模块1502的写入操作,以及向存储器控制器1508发送读取的数据。对于图16C中所示的读取未命中脏,通过在1516处从DRAM模块1502读取标签和地址信息并且在1518处向SCM模块1504写入它来扩充第一高速缓存操作。图16D至图16F图示了对应的写入高速缓存操作。
其中,图15A至图15I涉及以下内容或者与以下内容有关:
DPP DRAM/SCM高速缓存的存储器系统-配置分类法
符号表示
{D4,S4}-模块对到控制器的连接
“D**”-DRAM模块连接
“S**”-SCM模块连接
{C4,U4,V4}-高速缓存线标签比较逻辑的位置
C4”-控制器上的标签逻辑
U4”-SCM模块上的标签逻辑
V4”-DRAM模块上的标签逻辑
{**4,X3,Y3,Z2}-每通道模块的数目
**4”-DRAM/SCM模块对的两个集合
“X3”-两个DRAM模块、共享SCM模块
“Y3”-两个SCM模块、共享DRAM模块
“Z2”-一个DRAM/SCM模块对
其中,图16A至图16F涉及以下内容或者与以下内容有关:
DPP DRAM/SCM高速缓存的存储器系统-配置DC4
备注
+控制器中的标签比较逻辑
+对DRAM模块的最小影响
+最小读取命中延时
+脏未命中数据的满EDC(回写)在检测/纠正错误时需要一些修复
+脏未命中标签的满EDC(回写)在检测/纠正错误时需要一些修复
连续BW摘要(作为25.4GB/s的小部分=在6.4Gb/s为36b,对奇数/偶数半字节的交替访问)
RH~1.00x RMC~0.50x RMD~0.33x WH~0.33x WMC~0.33x WMD~0.33x
图15B示出与图15A的系统配置相似的备选系统配置,但是取代将DRAM模块1502和1510对接到存储器控制器1508,SCM模块1504和1512经由点到点链路1520和1522直接地通信到存储器控制器。在图17A至图17F中图示了用于读取和写入的关联的高速缓存操作。读取命中操作如图17A中所示涉及经由反向通道链路读取DRAM模块1502(利用由在SCM模块1504的缓冲器电路中的导引逻辑形成的旁路},并且向存储器控制器1508提供数据。对于图17B中所示的读取未命中干净,执行附加步骤,该步骤涉及从SCM模块1504读取标签信息和数据作为向DRAM模块1502的写入操作,以及向存储器控制器1508发送读取的数据。对于图17C中所示的读取未命中脏,通过在1702处从DRAM模块1502读取标签和地址信息并且在1704处向SCM模块1504写入它来扩充第一高速缓存操作。图17D至图17F图示了对应的写入高速缓存操作。
其中,图17A至图17F涉及以下内容或者与以下内容有关:
DPP DRAM/SCM高速缓存的存储器系统-配置SC4
备注
+控制器中的标签比较逻辑
+对DRAM模块的最小影响
ο相对于DC4的更高一些的读取命中延时
+脏未命中数据的满EDC(回写)在检测/纠正错误时需要一些修复
+脏未命中标签的满EDC(回写)在检测/纠正错误时需要一些修复
连续BW摘要(作为25.4GB/s的小部分=在6.4Gb/s为36b,对奇数/偶数半字节的交替访问)
RH~1.00x RMC~0.33x RMD~0.33x WH~0.33x WMC~0.33x WMD~0.33x
图15C图示了与图15A相似的又一系统配置,其中DRAM模块被直接地耦合到存储器控制器1508。然而,标签比较电路1514被设置在每个SCM模块1504和1512而不是存储器控制器1508上。在图18A至18F中示出了关联的高速缓存操作。读取命中操作如图18A中所示直接地读取DRAM模块1502、经由反向通道1520向标签比较电路1514提供标签信息、并且向存储器控制器1508直接地提供数据。对于图18B中所示的读取未命中干净,执行附加步骤,该步骤涉及从SCM模块1504读取标签信息和数据作为向DRAM模块1502的写入操作,以及向存储器控制器1508发送读取的数据。对于图18C中所示的读取未命中脏,通过在1802处向SCM模块1504写入标签和地址信息来扩充第一高速缓存操作。图18D至图18F图示了对应的写入高速缓存操作。
其中,图18A至图18F涉及以下内容或者与以下内容有关:
DPP DRAM/SCM高速缓存的存储器系统-配置DU4
备注
οSCM模块中的标签比较逻辑
+对DRAM模块的最小影响
+最小读取命中延时
+脏读取未命中数据的满EDC(回写)在检测/纠正错误时需要一些修复
+脏读取未命中标签的满EDC(回写)在检测/纠正错误时需要一些修复
-没有脏写入未命中数据的EDC(回写)在检测/纠正错误时需要一些修复
-奇偶校验脏写入未命中标签(回写)在标签奇偶校验错误之后需要用于EDC纠正的某个修复
连续BW摘要(作为25.4GB/s的小部分=在6.4Gb/s为36b,对奇数/偶数半字节的交替访问)
RH~1.00x RMC~0.33x RMD~0.33x WH~1.00x WMC~1.00x WMD~1.00x
图15D图示了与图15A的系统配置相似的再另一系统配置,但是在每个SCM模块1504和1512上并入标签比较电路1514并且将SCM模块直接地连接到存储器控制器1508(而不是DRAM模块)。在图19A至19F中示出了关联的高速缓存操作。读取命中操作如图19A中所示涉及经由反向通道链路1520读取DRAM模块1502、向标签比较电路1514提供标签信息、并且向存储器控制器1508提供数据。对于图19B中所示的读取未命中干净,执行附加步骤,该步骤涉及从SCM模块1504读取标签信息和数据作为向DRAM模块1502的写入操作,以及向存储器控制器1508直接地发送读取的数据。对于图19C中所示的读取未命中脏,通过在1902处向SCM模块1504写入标签和地址信息来扩充第一高速缓存操作。图19D至图19F图示了对应的写入高速缓存操作。
其中,图19A至图19F涉及以下内容或者与以下内容有关:
DPP DRAM/SCM高速缓存的存储器系统-配置SU4
备注
οSCM模块中的标签比较逻辑
+对DRAM模块的最小影响
ο相对于DC4的更高一些的读取命中延时
-没有脏读取/写入未命中数据的EDC(回写
-奇偶校验脏读取/写入未命中标签(回写)-在标签奇偶校验错误之后需要用于EDC纠正的某个修复
连续BW摘要(作为25.4GB/s的小部分=在6.4Gb/s为36b,对奇数/偶数半字节的交替访问)
RH~1.00x RMC~0.5x RMD~0.5x WH~0.50x WMC~0.50x WMD~0.50x
图15E图示了与以上关于图7至图14而被描述的实施例相似的四模块实施例,该实施例在每个DRAM模块1502和1510上利用标签比较电路1514并且将DRAM模块直接地耦合到存储器控制器1508。在图20A至20F中示出了关联的高速缓冲操作。读取命中操作如图20A中所示涉及直接地读取DRAM模块1502并且向存储器控制器1508直接地提供数据。对于图20B中所示的读取未命中干净,执行附加步骤,该步骤涉及经由反向通道链路1520从SCM模块1504读取标签信息和数据,以及向存储器控制器1508直接地发送读取的数据。对于图20C中所示的读取未命中脏,通过在2002处从DRAM模块1502读取标签和地址信息并且在2004处向SCM模块1504写入它来扩充第一高速缓存操作。图20D至图20F图示了对应的写入高速缓存操作。
其中,图20A至图20F涉及以下内容或者与以下内容有关:
DPP DRAM/SCM高速缓存的存储器系统-配置DV4
备注
-DRAM模块中的标签比较逻辑
-对DRAM模块的显著影响
+最小读取命中延时
·没有脏读取/写入未命中数据的EDC(回写
-奇偶校验脏读取/写入未命中标签(回写)-在标签奇偶校验错误之后需要用于EDC纠正的某个修复
连续BW摘要(作为25.4GB/s的小部分=在6.4Gb/s为36b,对奇数/偶数半字节的交替访问)
RH~1.00x RMC~1.00x RMD~0.50x WH~1.00x WMC~1.00x WMD~1.00x
图15F图示了与图15A相似的再另一系统实施例,但是在每个DRAM模块1502和1510上并入标签比较电路1514并且将SCM模块1504和1512直接地连接到存储器控制器1508(而不是DRAM模块)。在图21A至图21F中示出了关联的高速缓存操作。读取操作如图21A中所示涉及经由反向通道链路1520读取DRAM模块1502、用标签比较电路1514比较标签信息、并且向存储器控制器1508提供数据。对于图21B中所示的读取未命中干净,执行附加步骤,该步骤涉及从SCM模块1504读取标签信息和数据作为向DRAM模块1502的写入操作(经由反向通道链路1520),以及从SCM模块1504向存储器控制器1508直接地发送读取的数据。对于图21C中所示的读取未命中脏,通过在2102处从DRAM模块1502读取标签和地址信息并且在2104处向SCM模块1504写入它来扩充第一高速缓存操作。图21D至图21F图示了对应的写入高速缓存操作。
其中,图21A至图21F涉及以下内容或者与以下内容有关:
DPP DRAM/SCM高速缓存的存储器系统-配置SV4
备注
-DRAM模块中的标签比较逻辑
-对DRAM模块的显著影响
ο相对于DC4的更高一些的读取命中延时
-没有脏读取/写入未命中标签的EDC(回写
-奇偶校验脏读取/写入未命中标签(回写)-在标签奇偶校验错误之后需要用于EDC纠正的某个修复
连续BW摘要(作为25.4GB/s的小部分=在6.4Gb/s为36b,对奇数/偶数半字节的交替访问)
RH~1.00x RMC~1.00x RMD~0.50x WH~1.00x WMC~1.00x WMD~0.50x
图15G图示了高级别图,该图示出了使用第一DRAM模块1524的3模块系统配置图,第一DRAM模块1524经由第一反向通道连接1528被互连到SCM模块1526。SCM模块经由第二反向通道连接1532与第二DRAM模块1530对接,从而使得DRAM模块1524和1530二者直接地与存储器控制器1508对接。
图15H图示了与图15G相似的高级别3模块配置,但是并入经由第一反向通道连接1536被互连到DRAM模块1534的第一SCM模块1532。DRAM模块经由第二反向通道连接1540与第二SCM模块1538对接,从而使得SCM模块1532和1538直接地与存储器控制器1508对接。
图15I图示了高级别双模块系统配置,该系统配置主要地使用由反向通道连接1546互连的SCM模块1542和DRAM模块1544,并且其中两个模块经由点到点链路被耦合到存储器控制器1508。图22A至图22F图示了与图15I的系统配置关联的高速缓存操作,其中在存储器控制器上设置标签比较电路。读取命中操作如图22A中所示涉及直接地读取DRAM模块1502并且向存储器控制器1508直接地提供数据。对于图22B中所示的读取未命中干净,执行附加步骤,该步骤涉及从SCM模块1504读取标签信息和数据作为经由反向通道链路1514向DRAM模块1502的写入操作,以及向存储器控制器1508直接地发送读取的数据。对于图22C中所示的读取未命中脏,通过在2202处从DRAM模块1502读取标签和地址信息并且在2204处向SCM模块1504写入它来扩充第一高速缓存操作。图22D至图22F图示了对应的写入高速缓存操作。
其中,图22A至图22F涉及以下内容或者与以下内容有关:
DPP DRAM/SCM高速缓存的存储器系统-配置ZC2
备注
+控制器中的标签比较逻辑
+对DRAM模块的最小影响
+最小读取命中延时
+脏未命中数据的满EDC(回写)-在检测/纠正错误时需要一些修复
+脏未命中标签的满EDC(回写)-在检测/纠正错误时需要一些修复
连续BW摘要(作为25.4GB/s的小部分=在6.4Gb/s为36b,对奇数/偶数半字节的交替访问)
RH~1.00x RMC~1.00x RMD~0.50x WH~1.00x WMC~1.00x WMD~0.50x
图23A至图23F图示了与15I的系统配置关联的高速缓存操作,其中存储器模块1502和1504二者被直接地耦合到存储器控制器1508,并且在SCM存储器模块1504上设置标签比较电路1514。读取命中操作如图23A中所示涉及直接地读取DRAM模块1502、经由反向通道链路1520向标签比较电路1514提供标签信息、并且向存储器控制器1508直接地提供数据。对于图23B中所示的读取未命中干净,执行附加步骤,该步骤涉及从SCM模块1504读取标签信息和数据作为向DRAM模块1502的写入操作(经由反向通道链路1520),以及从SCM模块1504向存储器控制器1508直接地发送读取的数据。对于图23C中所示的读取未命中脏,通过在2302处从DRAM模块1502读取标签和地址信息并且在2304处向SCM模块1504写入它来扩充第一高速缓存操作。图23D至图23F图示了对应的写入高速缓存操作。
其中,图23A至图23F涉及以下内容或者与以下内容有关:
DPP DRAM/SCM高速缓存的存储器系统-配置ZU2
备注
οSCM模块中的标签比较逻辑
+对DRAM模块的最小影响
+最小读取命中延时
+脏读取未命中数据的满EDC(回写)-在检测/纠正错误时需要一些修复
+脏读取未命中标签的满EDC(回写)-在检测/纠正错误时需要一些修复
-没有脏写入未命中数据的EDC(回写)-在检测/纠正错误时需要一些修复
-奇偶校验脏写入未命中标签(回写)-在标签奇偶校验错误之后需要用于EDC纠正的某个修复
连续BW摘要(作为25.4GB/s的小部分=在6.4Gb/s为36b,对奇数/偶数半字节的交替访问)
RH~1.00x RMC~0.50x RMD~0.50x WH~1.00x WMC~1.00x WMD~1.00x
图24A至图24F图示了与15I的系统配置关联的高速缓存操作,其中在DRAM存储器模块1502上设置标签比较电路。读取命中操作如图24A中所示涉及直接地读取DRAM模块1502、用标签比较电路1514比较标签信息、并且向存储器控制器1508直接地提供数据。对于图24B中所示的读取未命中干净,执行附加步骤,该步骤涉及从SCM模块1504读取标签信息和数据作为经由反向通道链路1520向DRAM模块1502的写入操作,以及从SCM模块1504向存储器控制器1508直接地发送读取的数据。对于图24C中所示的读取未命中脏,通过在2402处从DRAM模块1502读取标签和地址信息并且在2404处向SCM模块1504写入它来扩充第一高速缓存操作。图24D至图24F图示了对应写入高速缓存操作。
其中,图24A至图24F涉及以下内容或者与以下内容有关:
DPP DRAM/SCM高速缓存的存储器系统-配置ZV2
备注
-DRAM模块中的标签比较逻辑
-对DRAM模块的显著影响
+最小读取命中延时
-没有脏读取/写入未命中数据的EDC(回写
-奇偶校验脏读取/写入未命中标签(回写)-在标签奇偶校验错误之后需要用于EDC纠正的某个修复
连续BW摘要(作为25.4GB/s的小部分=在6.4Gb/s为36b,对奇数/偶数半字节的交替访问)
RH~1.00x RMC~1.00x RMD~0.50x WH~1.00x WMC~1.00x WMD~1.00x
图25图示了在以上关于图15A至图15I而被描述的各种系统配置之间比较各种性能特性的图表。该比较提供与基线比较的连续带宽摘要(比如例如25.4GB/s的小部分或者在6.4Gb/s为36b而对奇数和偶数半字节的交替访问)。第一列指出特定模块配置命名(对应于图表的底部部分的符号表示),而顶部行列举涉及的高速缓存操作,比如读取命中“RH”、读取未命中干净“RMC”、读取未命中脏“RMD”、写入未命中“WH”、写入命中干净“WHC”和写入命中脏“WHD”。
其中,图25涉及以下内容或者与以下内容有关:
性能比较
连续BW摘要(作为25.4GB/s的小部分=在6.4Gb/s为36b,对奇数/偶数半字节的交替访问)
符号表示
{D4,S4}-模块对到控制器的连接
“D**”-DRAM模块连接
“S**”-SCM模块连接
{C4,U4,V4}-高速缓存线标签比较逻辑的位置
C4”-控制器上的标签逻辑
U4”-SCM模块上的标签逻辑
V4”-DRAM模块上的标签逻辑
{**4,X3,Y3,Z2}-每通道模块的数目
**4”-DRAM/SCM模块对的两个集合
“X3”-两个DRAM模块、共享SCM模块
“Y3”-两个SCM模块、共享DRAM模块
“Z2”-一个DRAM/SCM模块对
图26图示了在以上关于图15A至图15I而被描述的各种系统配置之间比较各种功率特性的图表。第一列和第一行的配置和高速缓存操作命名对应于图25的第一列和第一行的配置和高速缓存操作命名。
其中,图26涉及以下内容或者与以下内容有关:
功率比较
端接链路上的数据时隙的数目(在25.4GB/s为72B块=在6.4Gb/s为36b)
符号表示
{D4,S4}-模块对到控制器的连接
“D**”-DRAM模块连接
“S**”-SCM模块连接
{C4,U4,V4}-高速缓存线标签比较逻辑的位置
C4”-控制器上的标签逻辑
U4”-SCM模块上的标签逻辑
V4”-DRAM模块上的标签逻辑
{**4,X3,Y3,Z2}-每通道模块的数目
**4”-DRAM/SCM模块对的两个集合
“X3”-两个DRAM模块、共享SCM模块
“Y3”-两个SCM模块、共享DRAM模块
“Z2”-一个DRAM/SCM模块对
图27图示了与图19相似的、图15A的存储器系统的进一步的细节,其中特别强调用于DRAM模块和SCM模块的缓冲器电路。重申一点,这一特定实施例使用存储器控制器2702、至少一个DRAM模块2704、SCM存储器模块2706之间的点到点连接,其中标签比较电路2708被设置在存储器控制器2702上。经由DRAM模块2704与SCM模块2706之间的反向通道连接DQu’和CS/CAx’、经过DRAM模块2704传递存储器控制器2702与SCM模块2706之间的数据传送。存储器控制器2702包括被耦合到数据半字节DQu的相应的读取数据队列2710和写入数据队列2712,该数据半字节DQu用作用于耦合到DRAM模块数据缓冲器部件DBD的主要数据链路。控制器2702还包括经由复用器2718有选择地被耦合到CA链路CS/CAx的相应的读取地址队列2714和写入地址队列2716,该CA链路CS/CAx用作用于将控制器2702耦合到DRAM模块CA缓冲器RCDD的主要CA链路。由于标签比较电路2708对于这一实施例驻留在存储器控制器2702上,所以存储器模块2704和2706没有使用状态电路。标签比较电路2708接收从DRAM模块2704被读取的旧标签信息和被提供有新请求信息的新标签信息作为新存储器操作的部分。
其中,图27涉及以下内容或者与以下内容有关:
配置有DRAM高速缓存区域的DPP存储器系统-配置DC4
进一步参照图27,DRAM模块2704上的每个缓冲器部件DBD使用以上关于图3而被描述的导引逻辑,从而使得被耦合到链路DQu和DQu’(反向通道链路)的主要数据接口I/O电路可以经由在导引逻辑的数据传送路径中被适当地放置的复用器2720、2722和2724有选择地被耦合到辅助数据I/O电路DQu(相应的偶数高速缓存DRAM半字节和奇数高速缓存DRAM半字节)中的任一个。
继续参照图27,SCM数据缓冲器DB与DRAM模块对应物配置相似,但是包括缓冲向SCM存储器部件2728和2730的写入数据的SCM写入数据缓冲器电路2726。以相似方式,SCM模块CA缓冲器RCD包括向SCM存储器部件2728和2730提供缓冲的写入地址的SCM写入地址缓冲器电路2732。由于经过DRAM模块2704产生存储器控制器2702与存储器模块2704和2706之间的连接,所以用于数据缓冲器DBD和DBS的导引逻辑一般地提供一个主要数据电路(反向通道链路DQu’)到辅助数据I/Q电路DQu和DQu’的任一个之间的导引能力。然而,为了控制反向通道链路DQu’,可以使用旁路比较逻辑。
图28图示了与图27相似的存储器系统配置,其中特别强调缓冲器部件电路,而标签比较电路2802驻留在SCM模块CA缓冲器部件RCDS上而不是存储器控制器2804中。让标签比较电路2802驻留在SCM CA缓冲器RCD上,状态链路STx将SCM CA缓冲器RCDS耦合到存储器控制器2804以提供高速缓存状态信息。其余系统构造的大部分与图27的系统相似。
其中,图28涉及以下内容或者与以下内容有关:
配置有DRAM高速缓存区域的DPP存储器系统-配置DU4
图29图示了与图9中所示的存储器系统配置相似的存储器系统配置,其中在DRAM数据缓冲器DBD中没有可选数据延迟电路,并且在DRAM CA缓冲器部件RCDD中没有可选地址延迟电路。这一具体实施例使用存储器控制器2902与至少一个DRAM模块2904之间的点到点连接,并且也在DRAM模块上并入标签比较电路2906。经由DRAM模块2904与SCM模块2908之间的反向通道连接DQu’、经过DRAM模块2904传递在存储器控制器2902与SCM模块2908之间的数据传送。存储器控制器2902包括被耦合到数据半字节DQu的相应的读取数据队列2910和写入数据队列2912,该数据半字节DQu用作用于耦合到DRAM模块数据缓冲器部件DBD的主要数据链路。存储器控制器2902还包括经由复用器2918有选择地被耦合到CA链路CS/CAx的相应的读取地址队列2914和写入地址队列2916,该CA链路CS/CAx用作用于将存储器控制器2902耦合到DRAM模块CA缓冲器RCDD的主要CA链路。如以下描述的那样,状态电路“STATUS”2920经由状态链路STx与DRAM CA缓冲器部件RCDD对接,该状态链路STx提供涉及标签比较操作的信息。
其中,图29涉及以下内容或者与以下内容有关:
配置有DRAM高速缓存区域的DPP存储器系统-配置DV4
进一步参照图29,DRAM模块2904上的每个缓冲器部件DBD使用以上关于图3而被描述的导引逻辑,从而使得被耦合到链路DQu和DQu’(反向通道链路)的主要数据接口I/O电路可以经由在导引逻辑的数据传送路径中被适当地放置的复用器电路有选择地被耦合到辅助数据I/O电路DQu(相应的偶数高速缓存DRAM半字节和奇数高速缓存DRAM半字节)中的任一个。
继续参照图29,DRAM CA缓冲器RCDD包括向DRAM存储器部件2926提供缓冲的写入地址的DRAM写入地址缓冲器电路2924。标签比较电路2906也驻留在CA缓冲器部件RCDD上,该CA缓冲器部件接收用于请求的地址的新标签信息,该请求的地址具有由DRAM数据缓冲器经由标签通信路径TAGOLD提供的旧标签信息。然后,经由状态链路STx向存储器控制器2902反馈标签比较的结果,从而使得控制器可以派发对于与“未命中”情况关联的附加高速缓存操作而言必需的任何命令。经由CA链路CS/CAx链路向DRAM模块2904被传递的CA信息由DRAM模块经由CA反向通道链路CS/CAx’重新驱动到SCM模块2908。
SCM存储器模块数据缓冲器部件DB和CA缓冲器部件RCD与它们的DRAM模块对应物配置相似。然而,由于经过DRAM模块2904产生存储器控制器2902与存储器模块2904和2908之间的连接,所以用于数据缓冲器DBD和DBS的导引逻辑一般地提供一个主要数据电路(反向通道链路)到辅助数据I/O电路中的任一个之间的导引能力。
图30图示了图29的存储器系统配置,其中醒目示出在涉及读取命中的高速缓存操作期间操作的各种信号路径。如所示,第一读取操作发生,其中在3002处沿着主要DRAM CA路径CS/CAx向DRAM CA缓冲器部件RCDD派发读取命令。命令传播到辅助CA路径CS/CAxs并且在3004处被馈送给DRAM高速缓存存储器的第一组块(组块0)。旧高速缓存线数据和标签信息被访问、读出,并且首先沿着辅助数据路径DQus被传送给数据缓冲器部件DBD并且由缓冲器导引逻辑引导到主要数据接口路径DQu。并行地,对于一个实施例,旧高速缓存线标签信息TAGOLD从数据缓冲器DBD例如沿着延伸在3006处被传递给BCOM总线,该BCOM总线互连DRAM模块上的所有数据缓冲器DBD与CA缓冲器部件RCDD。CA缓冲器上的、在3008处的标签比较逻辑经由BCOM总线接收旧标签信息和在接收原有DRAM读取命令时从主要CA路径CS/CAx被接收的新标签信息。标签比较的输出然后在3010处沿着状态线STx被驱动到存储器控制器。对于一些实施例,可以进一步延伸BCOM总线以允许传播标签比较信息或者部分标签状态信息。存储器控制器然后使用接收的标签状态以确定从DRAM高速缓存读取的数据是否为用于请求的地址的当前数据(读取命中情况)。
其中,图30涉及以下内容或者与以下内容有关:
配置有DRAM高速缓存区域的DPP存储器系统-读取未命中(干净)
图31图示了图30的存储器系统,该存储器系统包括与读取命中条件有关的醒目显示,但是也包括在高速缓存操作中涉及的醒目显示的信令路径,其中标签比较的状态造成读取未命中干净情况。在读取DRAM高速缓存和比较标签信息时涉及的操作仍然与以上关于图30而被描述的相同,但是执行关于SCM模块的附加高速缓存操作。为了向控制器提供正确数据,通过沿着主要CA链路CS/CAx派发读取命令并且沿着在3102处沿着反向通道连接CS/CAx’经过DRAM CA缓冲器RCDD将命令引向SCM CA缓冲器RCD来读取SCM存储器模块。命令然后在3104处沿着辅助CA链路CS/CAx’s在3106处被馈送到SCM存储器的第一组块(组块0)。然后,新高速缓存线数据和标签信息从SCM存储器被访问、在3108处沿着辅助数据链路DQu’s并且经过SCM数据缓冲器部件DBs被传递。然后,新数据和标签信息在3110处沿着反向通道链路DQu’s被传送并且在DRAM数据缓冲器部件DBD被接收。数据然后在3112处由缓冲器导引逻辑经由主要数据路径DQ被导引到存储器控制器和在3114处被导引到DRAM写入缓冲器。然后,可以按照适当定时间隔向DRAM高速缓存写入缓冲器内容。
其中,图31涉及以下内容或者与以下内容有关:
配置有DRAM高速缓存区域的DPP存储器系统-读取命中(干净)
现在参照图32,对于读取未命中脏情况,高速缓存操作与以上描述的高速缓存操作相似,其中添加在3203处和3204处向SCM写入缓冲器加载旧数据和旧标签信息。然后,可以按照适当时间间隔向SCM存储器写入信息。
其中,图32涉及以下内容或者与以下内容有关:
配置有DRAM高速缓存区域的DPP存储器系统-读取未命中(脏)
图33至图35图示了与以上在图30至图32中描述的高速缓存线操作相似的高速缓存线操作,但是针对写入操作而不是读取操作。
其中,图33涉及以下内容或者与以下内容有关:
配置有DRAM高速缓存区域的DPP存储器系统-写入命中
其中,图34涉及以下内容或者与以下内容有关:
配置有DRAM高速缓存区域的DPP存储器系统-写入未命中(干净)
其中,图35涉及以下内容或者与以下内容有关:
配置有DRAM高速缓存区域的DPP存储器系统-写入未命中(脏)
图36图示了涉及使写入缓冲器中的高速缓存线退休的高速缓存线操作。退休操作将通常地由读取列命令或者写入列命令中的位字段发起,可能有静态延迟。一般而言,操作涉及从在3602处和3604处的SCM写入缓冲器(数据和地址)向在3606处的SCM存储器传送旧数据和标签信息。从在3608处和3610处的DRAM写入缓冲器(数据和地址)向在3612处的DRAM存储器传送新数据和标签信息。
其中,图36涉及以下内容或者与以下内容有关:
配置有DRAM高速缓存区域的DPP存储器系统-使写入缓冲器中的高速缓存线退休
图37至图42图示了与以上描述的操作一致的各种高速缓存线操作有关的各种定时图表。图37图示了与高速缓存线读取未命中脏序列的一个实施例关联的各种操作和相对定时参数。图38图示了与高速缓存线写入未命中脏序列的一个实施例关联的各种操作和相对定时参数。图39图示了与涉及使来自三个写入缓冲器的每个写入缓冲器的一个高速缓存条目退休的退休操作关联的各种定时参数。图40图示了与读取未命中脏高速缓存操作关联的最小延时。图41图示了用于读取命中、未命中和脏操作的恒定延时。图42图示了与背对背对背读取未命中脏、写入未命中脏和读取未命中脏序列关联的定时。
其中,图37涉及以下内容或者与以下内容有关:
情况RMD-高速缓存读取未命中(脏)
其中,图38涉及以下内容或者与以下内容有关:
情况WMD-高速缓存读取未命中(脏)
其中,图39涉及以下内容或者与以下内容有关:
情况 退休-使来自三个写入缓冲器中的每个写入缓冲器的一个条目退休
其中,图40涉及以下内容或者与以下内容有关:
情况9xRMD-最小延时
其中,图41涉及以下内容或者与以下内容有关:
情况9xRMD-用于读取命中/未命中的恒定延时
其中,图42涉及以下内容或者与以下内容有关:
情况RMD-WMD-RMD
图43图示了与以上描述的实施例相似的双模块存储器系统的高级别实施例,其中在4304处利用DRAM存储器模块4302的第一部分作为高速缓存存储器,而在4306处未高速缓存DRAM存储器的第二部分。这一系统与图15D和图19中所示的SU4系统相似。
其中,图43涉及以下内容或者与以下内容有关:
配置有DRAM/SCM高速缓存组织的DPP存储器系统-配置SU4
图44图示了由在图43中所示的存储器系统的DRAM和SCM模块上的相应的数据缓冲器和CA缓冲器使用的电路以及用于读取操作的关联的高速缓存操作的进一步的细节。
其中,图44涉及以下内容或者与以下内容有关:
配置有DRAM高速缓存区域的DPP存储器系统-读取情况
图45了图示由在与图44相似的图43中所示的DRAM模块和SCM模块上的相应的数据缓冲器和CA缓冲器使用的电路以及用于写入操作的关联的高速缓存操作的进一步的细节。
其中,图45涉及以下内容或者与以下内容有关:
配置有DRAM高速缓存区域的DPP存储器系统-写入情况
高速缓存写入
[1]CAy→AQ1,DQv→Q1
[2]AQ1→CAz→AQ2
[3]DRAM(AQ2)→Q3(读取)
[4]Q3→DQt→Q4
[5](AQ1.TAG==Q4.TAG)
/>
图46和图47图示了具有用于图43中所示的系统的、与高速缓存读取命中和未命中条件关联的操作的定时图。
其中,图46涉及以下内容或者与以下内容有关:
情况1-高速缓存读取-命中
其中,图47涉及以下内容或者与以下内容有关:
情况2-高速缓存读取-干净未命中
情况3-高速缓存读取-脏未命中
图48图示了具有用于图43的系统的、与未高速缓存的DRAM存储器读取操作和SCM存储器读取操作关联的操作的定时图。
其中,图48涉及以下内容或者与以下内容有关:
情况4-未高速缓存的DRAM读取
情况5-未高速缓存的SCM读取
图49图示了具有用于图43的系统的、与高速缓存和未高速缓存的DRAM存储器写入操作和SCM存储器写入操作二者关联的操作的定时图。
其中,图49涉及以下内容或者与以下内容有关:
情况6-从DQu的未高速缓存的DRAM写入 情况8-从ScWR缓冲器的高速缓存的SCM写入
情况7-从DcWR缓冲器的高速缓存的DRAM写入 情况9-从DQv的未高速缓存的SCM写入
图50图示了关于DRAM封装结构和DRAM封装与数据和CA缓冲器电路之间的各种互连的进一步的细节。
其中,图50涉及以下内容或者与以下内容有关:
DRAM模块细节-3DS/TSV堆叠(每模块16个组块)
图51图示了又一系统实施例,该系统实施例使用第一DRAM存储器模块5102以及包括DRAM存储器部件5106和SCM存储器部件5108二者的第二存储器模块5104。与这里描述的各种其它存储器系统配置相似,存储器模块5102和5104经由点到点链路连接到存储器控制器5110并且经由反向通道链路DQt相互连接以提供模块之间的高速缓存传送。这示出了首先在图2E中被描述的FC2系统。
其中,图51涉及以下内容或者与以下内容有关:
系统示例、有混合的SCM/DRAM存储器-信道、有DPP主要链路-配置FC2特征
[1]主要链路拓扑是点到点
[2]分离的DRAM和SCM模块更灵活(更多容量组合)
[3]DQt链路提供两个模块之间的高速缓存传送(在主要链路上无需BW)
[[4]可以在宽范围内调整DRAM和SCM存储器空间中的高速缓存和未高速缓存的区域
[[5]动态负荷平衡
图52图示了与图43中所示的高级别系统实施例相似的又一高级别系统实施例。此图适用于所有先前讨论的使用DRAM存储器区域和SCM存储器区域的系统。在这一示例中,存在一个DRAM模块5202和一个SCM模块5204。每个模块可以由具有比如在5208处和5210处的高速缓存的区域以及比如在5212处和5214处的未高速缓存的区域二者的存储器控制器5206使用。区域大小可以在初始化由控制寄存器(未示出)设置。对未高速缓存的区域的访问可以主要地涉及对单个存储器类型的访问。对SCM存储器的高速缓存的区域的访问可以如在先前示例中被描述的那样主要地涉及对高速缓存的DRAM区域的访问。
其中,图52涉及以下内容或者与以下内容有关:
配置有DRAM/SCM高速缓存组织的DPP存储器系统
在经由一个或者多个计算机可读介质在计算机系统内被接收时,以上描述的电路的这样的基于数据和/或指令的表达可以与执行包括而不限于网表生成程序、放置和布线程序等的一个或者多个其它计算机程序结合、由计算机系统内的处理实体(例如,一个或者多个处理器)处理以生成这样的电路的物理表现的表示或者图像。可以随后在器件制作中例如通过实现生成用来在器件制作过程中形成电路的各种部件的一个或者多个掩模来使用这样的表示或者图像。
在前文描述中和在附图中,已经阐述了具体术语和附图符号以提供对本发明的透彻理解。在一些实例中,术语和符号可以暗示不是为了实现本发明而必需的具体细节。例如,位、信号路径宽度、信令或者操作频率、部件电路或者设备等的具体数目中的任何数目可以在备选实施例中不同于以上描述的数目。被示出或者描述为多导体信号链路的、电路单元或者电路块之间的互连也可以备选地是单导体信号链路,而单导体信号链路可以备选地是多导体信号链路。被示出或者描述为单端的信号和信令路径也可以是差动的并且反之亦然。相似地,被描述或者描绘为具有活跃高或者活跃低逻辑电平的信号可以在备选实施例中具有相反逻辑电平。可以使用金属氧化物半导体(MOS)技术、双极技术或者其中可以实施逻辑电路和模拟电路中的任何其它技术来实施集成电路器件内的部件电路。关于术语,信号在该信号被驱动成低或者高逻辑状态(或者充电成高逻辑状态或者放电成低逻辑状态)以指示特定条件时被称为“被确立”。反言之,信号被称为“被去确立”以指示该信号被驱动(充电或者放电)成除了被确立状态之外的状态(包括高或者低逻辑状态或者可以在信号驱动电路被转变成高阻抗条件,比如开路漏极或者开路集极条件时出现的悬空状态)。信号驱动电路在信号驱动电路在信号驱动和信号接收电路之间耦合的信号线上确立(或者如果上下文明确地陈述或者指示则为去确立)信号时被称为向信号接收电路“输出”信号。信号线在信号在信号线上被确立时被称为“被激活”而在信号被去确立时被称为“被去激活”。附加地,被附着到信号名称的前缀符号“/”指示信号是活跃低信号(即被确立状态是逻辑低状态)。在信号名称之上的线(例如,)也被用来指示活跃低信号。术语“耦合”这里用来表达直接连接以及通过一个或者多个居间电路或者结构的连接。集成电路器件“编程”可以例如包括而不限于响应于主机指令而向在器件内的寄存器或者其它存储电路中加载控制值,并且因此通过一次性编程操作(例如,在器件生产期间烧断在配置电路内的熔断器)控制器件的操作方面、建立器件配置或者控制器件的操作方面和/或将器件的一个或者多个选择的管脚或者其它接触结构连接到参考电压线(也被称为短接)以建立器件的特定器件配置或者操作方面。术语“示例性”被用来表达示例而不是偏好或者要求。
尽管已经参照本发明的具体实施例描述了本发明,但是将清楚的是可以对其做出各种修改和改变而没有脱离本发明的更广义精神实质和范围。例如,实施例中的任何实施例的特征或者方面可以至少在可行时与实施例的任何其它实施例结合或者取代其对应特征或者方面而被应用。因而,说明书和附图将在说明性而不是限制性意义上被对待。

Claims (20)

1.一种存储器模块,包括:
存储类存储器SCM空间,包括至少一个SCM部件;
动态随机存取存储器DRAM空间,包括至少一个DRAM部件,所述DRAM空间的至少一部分被配置成针对所述SCM空间的DRAM高速缓存,所述DRAM高速缓存包括具有存储的标签地址的高速缓存线,所述存储的标签地址与存储的高速缓存数据对应;
缓冲器电路,所述缓冲器电路被配置为缓冲所述SCM空间、所述DRAM空间和存储器控制器之间的操作,所述缓冲器电路包括:
主要数据接口,包括第一主要数据输入/输出I/O电路和第二主要数据I/O电路,所述第一主要数据I/O电路用于通过第一主要数据信令路径与所述存储器控制器通信;
辅助数据接口,包括第一辅助数据I/O电路和第二辅助数据I/O电路,用于通过对应的第一辅助数据信令路径和对应的第二辅助数据信令路径与所述至少一个SCM部件和所述至少一个DRAM部件通信;
导引电路,用以在所述第一主要数据I/O电路与以下任何一项之间路由数据:所述第二主要数据I/O电路、所述第一辅助数据I/O电路和所述第二辅助数据I/O电路;以及
标签比较电路,用以比较传入标签地址和与所述DRAM高速缓存相关联的所述存储的标签地址。
2.根据权利要求1所述的存储器模块,其中所述导引电路包括:
复用器,具有被耦合到所述第一主要数据I/O电路的输出和被耦合到所述第二主要数据I/O电路、所述第一辅助数据I/O电路和所述第二辅助数据I/O电路的多个输入,所述复用器响应于控制信号将所述多个输入中的一个输入连接到所述输出。
3.根据权利要求1所述的存储器模块,其中:
在旁路操作模式中,所述导引电路从所述第一主要数据I/O电路向所述第二主要数据I/O电路路由所述数据,以用于向第二存储器模块的随后传送。
4.根据权利要求1所述的存储器模块,其中:
所述第一主要数据I/O电路被配置为经由点到点链路与所述存储器控制器通信。
5.根据权利要求1所述的存储器模块,其中所述标签比较电路驻留在所述缓冲器电路中。
6.根据权利要求1所述的存储器模块,其中所述缓冲器电路还包括匹配电路,用以传递在所述传入标签地址和所述存储的标签地址之间的所述比较的结果。
7.根据权利要求1所述的存储器模块,其中:
所述第一数据I/O电路和所述第二数据I/O电路各自包括半数据宽度端口。
8.一种缓冲器电路,用于在存储器模块上使用以缓冲存储类存储器SCM空间、动态随机存取存储器DRAM空间和存储器控制器之间的操作,所述DRAM空间的至少一部分被配置成针对所述SCM空间的DRAM高速缓存,所述DRAM高速缓存包括具有存储的标签地址的高速缓存线,所述存储的标签地址与存储的高速缓存数据对应,所述缓冲器电路包括:
主要数据接口,包括第一主要数据输入/输出I/O电路和第二主要数据I/O电路,所述第一主要数据I/O电路用于通过第一主要数据信令路径与所述存储器控制器通信;
辅助数据接口,包括第一辅助数据I/O电路和第二辅助数据I/O电路,用于通过对应的第一辅助数据信令路径和对应的第二辅助数据信令路径与至少一个SCM部件和至少一个DRAM部件通信;
导引电路,用以在所述第一主要数据I/O电路与以下任何一项之间路由数据:所述第二主要数据I/O电路、所述第一辅助数据I/O电路和所述第二辅助数据I/O电路;以及
标签比较电路,用以比较传入标签地址和与所述DRAM高速缓存相关联的所述存储的标签地址。
9.根据权利要求8所述的缓冲器电路,其中:
所述主要数据接口,所述辅助数据接口和所述导引电路被形成在至少一个数据缓冲器集成电路IC芯片上;并且
所述标签比较电路被形成在命令/地址缓冲器IC芯片上。
10.根据权利要求8所述的缓冲器电路,其中所述导引电路包括:
复用器,具有被耦合到所述第一主要数据I/O电路的输出和被耦合到所述第二主要数据I/O电路、所述第一辅助数据I/O电路和所述第二辅助数据I/O电路的多个输入,所述复用器响应于控制信号将所述多个输入中的一个输入连接到所述输出。
11.根据权利要求8所述的缓冲器电路,其中:
在旁路操作模式中,所述导引电路从所述第一主要数据I/O电路向所述第二主要数据I/O电路路由所述数据,以用于向第二存储器模块的随后传送。
12.根据权利要求8所述的缓冲器电路,其中:
所述第一主要数据I/O电路被配置为经由点到点链路与所述存储器控制器通信。
13.根据权利要求8所述的缓冲器电路,其中:
所述缓冲器电路还包括匹配电路,用以传递在所述传入标签地址和所述存储的标签地址之间的所述比较的结果。
14.根据权利要求8所述的缓冲器电路,其中:
所述第一数据I/O电路和所述第二数据I/O电路各自包括半数据宽度端口。
15.一种操作存储器模块的方法,所述存储器模块具有存储类存储器SCM空间和动态随机存取存储器DRAM空间,所述包括至少一个SCM部件,所述DRAM空间包括至少一个DRAM部件,所述方法包括:
将所述DRAM空间的至少一部分配置成针对所述SCM空间的DRAM高速缓存,所述配置包括存储具有存储的标签地址的高速缓存线,所述存储的标签地址与存储的高速缓存数据对应;
缓冲所述SCM空间、所述DRAM空间和存储器控制器之间的操作,所述缓冲包括:
经由第一主要数据输入/输出I/O电路、通过第一主要数据信令路径与所述存储器控制器通信;
经由包括第一辅助数据I/O电路和第二辅助数据I/O电路的辅助数据接口、通过对应的第一辅助数据信令路径和对应的第二辅助数据信令路径与所述至少一个SCM部件和所述至少一个DRAM部件通信;
在所述第一主要数据I/O电路与以下任何一项之间导引数据:第二主要数据I/O电路、所述第一辅助数据I/O电路和所述第二辅助数据I/O电路;以及
比较传入标签地址和与所述DRAM高速缓存相关联的所述存储的标签地址。
16.根据权利要求15所述的方法,其中导引数据包括:
响应于控制信号,经由复用器从包括所述第二主要数据I/O电路、所述第一辅助数据I/O电路和所述第二辅助数据I/O电路的多个输入的集合选择一个输出。
17.根据权利要求15所述的方法,其中在旁路操作模式中,导引数据包括:
从所述第一主要数据I/O电路向所述第二主要数据I/O电路路由所述数据,以用于向第二存储器模块的随后传送。
18.根据权利要求15所述的方法,其中与所述存储器控制器通信包括:
配置所述第一主要数据I/O电路以经由点到点链路与所述存储器控制器通信。
19.根据权利要求18所述的方法,其中配置所述第一主要数据I/O电路以经由点到点链路与所述存储器控制器通信还包括:
配置所述第一主要数据I/O电路以利用半数据宽度与所述存储器控制器通信。
20.根据权利要求15所述的方法,其中所述缓冲还包括:
传递在所述传入标签地址和所述存储的标签地址之间的所述比较的结果。
CN202310262063.3A 2015-10-01 2016-09-09 具有高速缓存的存储器模块操作的存储器系统 Pending CN116560563A (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201562235660P 2015-10-01 2015-10-01
US62/235,660 2015-10-01
US201562271551P 2015-12-28 2015-12-28
US62/271,551 2015-12-28
PCT/US2016/051141 WO2017058494A1 (en) 2015-10-01 2016-09-09 Memory system with cached memory module operations
CN201680057520.3A CN108139978B (zh) 2015-10-01 2016-09-09 具有高速缓存的存储器模块操作的存储器系统

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201680057520.3A Division CN108139978B (zh) 2015-10-01 2016-09-09 具有高速缓存的存储器模块操作的存储器系统

Publications (1)

Publication Number Publication Date
CN116560563A true CN116560563A (zh) 2023-08-08

Family

ID=58424304

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201680057520.3A Active CN108139978B (zh) 2015-10-01 2016-09-09 具有高速缓存的存储器模块操作的存储器系统
CN202310262063.3A Pending CN116560563A (zh) 2015-10-01 2016-09-09 具有高速缓存的存储器模块操作的存储器系统

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201680057520.3A Active CN108139978B (zh) 2015-10-01 2016-09-09 具有高速缓存的存储器模块操作的存储器系统

Country Status (4)

Country Link
US (3) US10678719B2 (zh)
EP (1) EP3356943B1 (zh)
CN (2) CN108139978B (zh)
WO (1) WO2017058494A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102467357B1 (ko) * 2018-01-31 2022-11-14 삼성전자주식회사 메모리 시스템 및 이의 에러 분석 방법
WO2020190841A1 (en) * 2019-03-18 2020-09-24 Rambus Inc. System application of dram component with cache mode
US11573709B2 (en) 2020-01-07 2023-02-07 International Business Machines Corporation Maintaining data structures in a memory subsystem comprised of a plurality of memory devices
US11907543B2 (en) 2020-01-07 2024-02-20 International Business Machines Corporation Managing swappable data structures in a plurality of memory devices based on access counts of the data structures
US11620055B2 (en) 2020-01-07 2023-04-04 International Business Machines Corporation Managing data structures in a plurality of memory devices that are indicated to demote after initialization of the data structures
US11182291B2 (en) 2020-02-03 2021-11-23 International Business Machines Corporation Using multi-tiered cache to satisfy input/output requests
US11157418B2 (en) 2020-02-09 2021-10-26 International Business Machines Corporation Prefetching data elements within a heterogeneous cache
US11775213B2 (en) 2020-05-27 2023-10-03 Rambus Inc. Stacked memory device with paired channels

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6502161B1 (en) * 2000-01-05 2002-12-31 Rambus Inc. Memory system including a point-to-point linked memory subsystem
US7356639B2 (en) * 2000-01-05 2008-04-08 Rambus Inc. Configurable width buffered module having a bypass circuit
US6889304B2 (en) 2001-02-28 2005-05-03 Rambus Inc. Memory device supporting a dynamically configurable core organization
JP4481588B2 (ja) * 2003-04-28 2010-06-16 株式会社東芝 半導体集積回路装置
US7269708B2 (en) 2004-04-20 2007-09-11 Rambus Inc. Memory controller for non-homogenous memory system
US8089795B2 (en) * 2006-02-09 2012-01-03 Google Inc. Memory module with memory stack and interface with enhanced capabilities
US8397013B1 (en) 2006-10-05 2013-03-12 Google Inc. Hybrid memory module
US9171585B2 (en) * 2005-06-24 2015-10-27 Google Inc. Configurable memory circuit system and method
US7379316B2 (en) * 2005-09-02 2008-05-27 Metaram, Inc. Methods and apparatus of stacking DRAMs
WO2008057557A2 (en) 2006-11-06 2008-05-15 Rambus Inc. Memory system supporting nonvolatile physical memory
US9195602B2 (en) 2007-03-30 2015-11-24 Rambus Inc. System including hierarchical memory modules having different types of integrated circuit memory devices
US8127199B2 (en) * 2007-04-13 2012-02-28 Rgb Networks, Inc. SDRAM convolutional interleaver with two paths
WO2008131058A2 (en) 2007-04-17 2008-10-30 Rambus Inc. Hybrid volatile and non-volatile memory device
US8874831B2 (en) * 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
US8572455B2 (en) * 2009-08-24 2013-10-29 International Business Machines Corporation Systems and methods to respond to error detection
US8914568B2 (en) 2009-12-23 2014-12-16 Intel Corporation Hybrid memory architectures
US8612809B2 (en) 2009-12-31 2013-12-17 Intel Corporation Systems, methods, and apparatuses for stacked memory
US9361955B2 (en) * 2010-01-28 2016-06-07 Hewlett Packard Enterprise Development Lp Memory access methods and apparatus
KR101616093B1 (ko) * 2010-02-19 2016-04-27 삼성전자주식회사 리페어 동작을 수행하는 불휘발성 메모리 장치 및 그것을 포함하는 메모리 시스템
KR101713051B1 (ko) 2010-11-29 2017-03-07 삼성전자주식회사 하이브리드 메모리 시스템, 및 그 관리 방법
US8713379B2 (en) * 2011-02-08 2014-04-29 Diablo Technologies Inc. System and method of interfacing co-processors and input/output devices via a main memory system
WO2013009442A2 (en) * 2011-07-12 2013-01-17 Rambus Inc. Dynamically changing data access bandwidth by selectively enabling and disabling data links
US8874827B2 (en) 2011-08-09 2014-10-28 Samsung Electronics Co., Ltd. Page merging for buffer efficiency in hybrid memory systems
CN107608910B (zh) * 2011-09-30 2021-07-02 英特尔公司 用于实现具有不同操作模式的多级存储器分级结构的设备和方法
WO2013048493A1 (en) * 2011-09-30 2013-04-04 Intel Corporation Memory channel that supports near memory and far memory access
CN102508787B (zh) * 2011-11-29 2014-09-03 清华大学 混合结构内存的内存分配系统及方法
US8804394B2 (en) * 2012-01-11 2014-08-12 Rambus Inc. Stacked memory with redundancy
CN104246732A (zh) * 2012-06-28 2014-12-24 惠普发展公司,有限责任合伙企业 具有双端口缓冲器的存储器模块
US9569393B2 (en) * 2012-08-10 2017-02-14 Rambus Inc. Memory module threading with staggered data transfers
KR20140024669A (ko) * 2012-08-20 2014-03-03 에스케이하이닉스 주식회사 반도체메모리장치
US9158679B2 (en) * 2012-10-10 2015-10-13 Rambus Inc. Data buffer with a strobe-based primary interface and a strobe-less secondary interface
US9430324B2 (en) * 2013-05-24 2016-08-30 Rambus Inc. Memory repair method and apparatus based on error code tracking
US9921980B2 (en) 2013-08-12 2018-03-20 Micron Technology, Inc. Apparatuses and methods for configuring I/Os of memory for hybrid memory modules
US9430434B2 (en) * 2013-09-20 2016-08-30 Qualcomm Incorporated System and method for conserving memory power using dynamic memory I/O resizing
EP3058571A1 (en) 2013-10-15 2016-08-24 Rambus Inc. Load reduced memory module
WO2015070245A1 (en) 2013-11-11 2015-05-14 Rambus Inc. High capacity memory system using standard controller component
US20150201016A1 (en) * 2014-01-14 2015-07-16 Amit Golander Methods and system for incorporating a direct attached storage to a network attached storage
US9916196B2 (en) * 2014-02-28 2018-03-13 Rambus Inc. Memory module with dedicated repair devices
US9740646B2 (en) * 2014-12-20 2017-08-22 Intel Corporation Early identification in transactional buffered memory
US20170289850A1 (en) * 2016-04-01 2017-10-05 Intel Corporation Write delivery for memory subsystem with narrow bandwidth repeater channel
US10901840B2 (en) * 2018-06-28 2021-01-26 Western Digital Technologies, Inc. Error correction decoding with redundancy data
US11675716B2 (en) * 2019-12-10 2023-06-13 Intel Corporation Techniques for command bus training to a memory device
US11188264B2 (en) * 2020-02-03 2021-11-30 Intel Corporation Configurable write command delay in nonvolatile memory

Also Published As

Publication number Publication date
EP3356943A4 (en) 2019-05-01
US11836099B2 (en) 2023-12-05
EP3356943B1 (en) 2021-11-03
US10678719B2 (en) 2020-06-09
CN108139978A (zh) 2018-06-08
CN108139978B (zh) 2023-03-03
US20180267911A1 (en) 2018-09-20
US20220171721A1 (en) 2022-06-02
US20200364164A1 (en) 2020-11-19
WO2017058494A1 (en) 2017-04-06
EP3356943A1 (en) 2018-08-08
US11210242B2 (en) 2021-12-28

Similar Documents

Publication Publication Date Title
US11210242B2 (en) Memory system with cached memory module operations
US11789610B2 (en) 3D-stacked memory with reconfigurable compute logic
US11500576B2 (en) Apparatus and architecture of non-volatile memory module in parallel configuration
US7409491B2 (en) System memory board subsystem using DRAM with stacked dedicated high speed point to point links
JP4825993B2 (ja) 複数のメモリハブモジュールを含むマルチプロセッサシステムおよびその方法
US9111587B2 (en) Stacked memory with redundancy
US11211114B2 (en) Memories and memory components with interconnected and redundant data interfaces
US20230307026A1 (en) High performance, non-volatile memory module
US7965530B2 (en) Memory modules and memory systems having the same
US10762010B2 (en) Multi-mode memory module and memory component
US20240079079A1 (en) Buffer circuit with adaptive repair capability
US20170091040A1 (en) Fault tolerant memory systems and components with interconnected and redundant data interfaces
US10216685B1 (en) Memory modules with nonvolatile storage and rapid, sustained transfer rates
US9804978B2 (en) Memory system facilitating high bandwidth and high capacity memory
CN110837481A (zh) 存储器控制器
US20080222328A1 (en) Semiconductor memory module and memory system, and method of communicating therein

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination