CN107481746B - 用于操作ddr可兼容异步存储器模块的系统和方法 - Google Patents
用于操作ddr可兼容异步存储器模块的系统和方法 Download PDFInfo
- Publication number
- CN107481746B CN107481746B CN201710212112.7A CN201710212112A CN107481746B CN 107481746 B CN107481746 B CN 107481746B CN 201710212112 A CN201710212112 A CN 201710212112A CN 107481746 B CN107481746 B CN 107481746B
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- memory module
- memory controller
- cache
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0879—Burst mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/02—Disposition of storage elements, e.g. in the form of a matrix array
- G11C5/04—Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1072—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/005—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor comprising combined but independently operative RAM-ROM, RAM-PROM, RAM-EPROM cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/22—Control and timing of internal memory operations
- G11C2207/2245—Memory devices with an internal cache buffer
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
Abstract
提供了一种用于操作DDR可兼容异步存储器模块的系统和方法。所述方法包括:在主机存储器控制器和存储器模块之间提供DDR接口;在主机存储器控制器和存储器模块之间提供消息接口。存储器模块包括非易失性存储器和DRAM,其中,DRAM被配置为非易失性存储器的DRAM高速缓存。存储器模块的非易失性存储器中存储的数据可由存储器模块的非易失性存储器控制器异步地访问,并且DRAM高速缓存中存储的数据可由主机存储器控制器直接并同步地访问。
Description
本申请要求于2016年6月8日提交的62/347,569号美国临时专利申请、于2016年7月29日提交的62/368,806号美国临时专利申请、于2016年8月5日提交的62/371,588号美国临时专利申请以及于2016年10月4日提交的15/285,423号美国专利申请的权益和优先权,这些申请的公开通过全部引用合并于此。
技术领域
本公开总体涉及存储器系统,更具体地,涉及用于操作双数据速率(DDR)可兼容异步存储器模块的系统和方法。
背景技术
非易失性双列直插存储器模块(NVDIMM)可包括各种介质类型或包括非易失性存储器(例如,NAND闪存)和传统动态随机存取存储器(DRAM)的介质类型的混合。NVDIMM可插入DIMN插槽并可显现为主机存储器控制器的标准DDR4同步DRAM(SDRAM)存储器模块。NVDIMM接口是允许主机和存储器模块通过DDR4存储器通道进行异步通信的DDR4扩展存储器接口。NVDIMM可与另一标准DDR4DIMM共享DDR4存储器通道。
针对包括一个或更多个高容量非易失性存储器的存储器映射的NVDIMM优化NVDIMM接口。NVDIMM可以是具有用作可寻址存储器而不是用作存储装置的非易失性容量的存储器通道装置。当前的工作强调在现有的基于DDR4的存储器系统上提供NVDIMM的向后兼容性。
发明内容
根据一个实施例,一种方法包括:在主机存储器控制器和存储器模块之间提供DDR接口,其中,存储器模块包括非易失性存储器和DRAM,其中,DRAM被配置为非易失性存储器的DRAM高速缓存;在主机存储器控制器和存储器模块之间提供消息接口。存储器模块的非易失性存储器和DRAM两者都被连接到数据缓冲器和寄存时钟驱动器(RCD),其中,RCD包括控制和地址(CA)缓冲器。数据缓冲器被配置为经由DDR接口的数据(DQ)总线和消息接口提供由主机存储器控制器请求的数据或存储器模块的状态。RCD被配置为基于经由DDR接口的CA总线接收的命令和地址来产生针对数据缓冲器的命令序列。存储在存储器模块的非易失性存储器中的数据可由存储器模块的非易失性存储器控制器异步访问。存储在DRAM高速缓存中的数据可由主机存储器控制器直接并同步地访问。
根据另一个实施例,一种存储器模块包括:非易失性存储器;非易失性存储器控制器,被配置为向非易失性存储器提供数据接口以及控制和地址(CA)接口;DRAM,被配置为非易失性存储器的DRAM高速缓存;数据缓冲器;寄存时钟驱动器(RCD),包括控制和地址(CA)缓冲器;以及到主机存储器控制器的DDR接口和消息接口。非易失性存储器和DRAM两者都被连接到数据缓冲器和寄存时钟驱动器(RCD)。数据缓冲器被配置为经由DDR接口的数据(DQ)总线和消息接口提供由主机存储器控制器请求的数据或存储器模块的状态。RCD被配置为基于经由DDR接口的CA总线接收的命令和地址来产生针对数据缓冲器的命令序列。存储在存储器模块的非易失性存储器中的数据可由非易失性存储器控制器异步地访问。存储在DRAM高速缓存中的数据可由主机存储器控制器直接并同步地访问。
根据另一个实施例,一种存储器系统包括:主机存储器控制器;存储器模块;DDR接口,被建立在主机存储器控制器和存储器模块之间,其中,DDR接口包括数据总线以及控制和地址(CA)总线;消息接口,被建立在主机存储器控制器和存储器模块之间。存储器模块包括:非易失性存储器;非易失性存储器控制器,被配置为向非易失性存储器提供数据接口以及控制和地址(CA)接口;DRAM,被配置为非易失性存储器的DRAM高速缓存;数据缓冲器;寄存时钟驱动器(RCD),包括控制和地址(CA)缓冲器。非易失性存储器和DRAM两者都被连接到数据缓冲器和寄存时钟驱动器(RCD)。数据缓冲器被配置为经由DDR接口的数据(DQ)总线和消息接口提供由主机存储器控制器请求的数据或存储器模块的状态。RCD被配置为基于经由DDR接口的CA总线接收的命令和地址来产生针对数据缓冲器的命令序列。存储在存储器模块的非易失性存储器中的数据可由非易失性存储器控制器异步访问。存储在DRAM高速缓存中的数据可由主机存储器控制器直接并同步地访问。
现在将参照附图进行更具体的描述并在权利要求中指出包括实现的各种新颖的细节和事件的组合的以上和其他优选特征。将被理解的是,这里描述的特定的系统和方法仅通过说明的方式示出,而不是作为限制。本领域的技术人员将理解的是,在不脱离本公开的范围的情况下,可在多种多样的实施例中采用这里描述的原理和特征。
附图说明
作为本说明书的一部分被包括的附图示出了当前优选的实施例,并与上面给出的总体描述和下面将给出的优选实施例的详细描述一起用于解释和教导本文描述的原理。
图1A示出根据一个实施例的被配置为在直接模式下进行操作的示例NVDIMM;
图1B示出根据一个实施例的被配置为在高速缓存模式下进行操作的示例NVDIMM;
图2A示出根据一个实施例的包括后侧DRAM高速缓存的NVDIMM的示例;
图2B示出根据一个实施例的包括前侧DRAM高速缓存的NVDIMM的示例;
图3A是示出根据一个实施例的示例快速高速缓存读取命令的定义的表;
图3B是示出根据一个实施例的示例快速高速缓存读取命令的时序图;
图4A是示出根据一个实施例的示例内部操作命令的定义的表;
图4B是示出根据一个实施例的示例内部操作命令的时序图;
图5A是示出根据一个实施例的示例刷新命令的定义的表;
图5B是示出根据一个实施例的示例刷新命令的时序图;
图6A是示出根据一个实施例的示例事务突发(TB)命令的定义的表;
图6B是示出根据一个实施例的示例事务突发(TB)命令的时序图;
图7A是示出根据一个实施例的示例读取状态(RS)命令的定义的表;
图7B是示出根据一个实施例的示例读取状态(RS)命令的时序图;
图8是根据一个实施例的用于提供存储器模块中存储的数据的示例流程图。
附图不必按照比例绘制,并且为了说明的目的,贯穿附图,相同的结构或功能的元件通常由相同的标号表示。附图仅旨在便于描述本文所描述的各种实施例。附图不描述本文公开的教导的每个方面,并不对权利要求的范围进行限制。
具体实施方式
本文公开的特征和教导中的每一个都可单独地或与其他特征和教导结合地利用以提供用于操作双数据速率(DDR)可兼容异步存储器模块的系统和方法。利用这些附加特征和教导的中的大多数特征和教导的代表性示例(单独地利用和与组合地利用两者)将参照附图进行更详细的描述。所述详细的描述仅意图教导本领域技术人员用于实施本教导的一些方面的进一步的细节,而不意图限制权力要求的范围。因此,上面在详细的描述中公开的特征的组合在最广义上看对于实施本教导可能不是必要的,而是仅仅被教导以具体描述本教导的代表性示例。
在以下的描述中,仅为了解释的目的,阐述了具体的术语以提供对本公开的彻底理解。然而,这些具体的细节不需要实施本公开的教导对本领域的技术人员是显而易见的。
本文的详细描述的一些部分是根据对在计算机存储器的数据位进行操作的算法和符号表示来呈现的。这些算法描述和表示被数据处理领域的技术人员使用以有效地将他们的工作的实质传达给该领域的其他技术人员。这里的算法通常被构思为导致期望结果的自相一致的顺序的步骤。这些步骤是需要物理量的物理操作的步骤。通常,尽管是不必要的,这些量采取能够被存储、传送、组合、比较和以其他方式进行操作的电或磁的信号的形式。事实证明,有时,主要为了通用的原因,将这些信号称为比特、值、元素、符号、字符、术语、数字等是方便的。
然而,应该记住的是,所有这些和类似的术语与适当的物理量有关,并仅仅是应用于这些物理量的方便的标签。除非特别说明,否则如从下面的讨论中显而易见的,应当理解,贯穿本文的描述,利用诸如“处理”、“推断”、“计算”、“确定”“显示”等术语的讨论是指计算机系统或类似的电子计算装置的这样的动作和处理:计算机系统或类似的电子装置将在计算机系统的寄存器和存储器内的表示为物理(电子)量的数据操作并变换为在计算机系统存储器或寄存器或诸如信息存储、传输或显示装置的其他装置内表示为物理量的其他类似的数据。
本文提出的算法不是固有的与任何计算机或其他设备相关。各种通用的系统、计算机服务器或个人计算机可与根据教导的程序一起使用,或可证明便于构造执行所需方法步骤的专用设备。各种这些系统的所需结构将从下面的描述中显现。将理解的是,各种编程语言可被用于实现本文所描述的公开的教导。
此外,代表性示例及其从属权利要求的各种特征可以以非具体明确列举的方式进行组合,以便提供本教导的附加有用的实施例。还明确地指出,为了原始公开的目的以及为了限制所要求保护的主题的目的,实体的组的所有值范围或指示公开了每个可能的中间值或中间实体。还明确地指出,附图中示出的组件的尺寸和形状被设计为帮助理解如何实施本教导,但不意图限制示例中示出的尺寸和形状。
根据一个实施例,非易失性双列直插存储器模块(NVDIMM)可包括一个或更多个非易失性存储器(例如,闪存)以及标准DRAM。NVDIMM可被配置为在各种模式下进行操作,例如,但不限于,直接模式和高速缓存模式。本公开为操作NVDIMM提供支持,并提高NVDIMM的延迟。具体地,本公开提供在包括存储器命令和控制操作的高速缓存模式下操作NVDIMM的详细协议。
图1A示出根据一个实施例的被配置为在直接模式下进行操作的示例NVDIMM。当NVDIMM 101被配置为在直接模式下进行操作时,主机的存储器控制器可直接访问NVDIMM101的DRAM 111a和非易失性存储器110两者。在一个实施例中,DRAM 111a和非易失性存储器110可在不同的地址空间中寻址。例如,非易失性存储器110可经由排地址0-3寻址而DRAM111a可经由排地址(rank addresses)4-7可选地寻址。NVDIMM 101的可用存储器空间可相当于DRAM和非易失性存储器的存储器容量的总和。
图1B示出根据一个实施例的被配置为在高速缓存模式下进行操作的示例NVDIMM。在高速缓存模式下,NVDIMM 101的非易失性存储器110可经由公共的排地址0-3被寻址。然而,NVDIMM 101的DRAM 111b不可被直接寻址,但可被配置为用作NVDIMM 101的非易失性存储器110的高速缓存。由于DRAM高速缓存111b被配置为用作NVDIMM 101的非易失性存储器110的高速缓存,DRAM高速缓存111b对于主机存储器控制器来说可以是透明的。
在一个实施例中,NVDIMM的序列存在检测(SPD)可包括关于NVDIMM可支持的模式的信息,并且存储器控制器可在系统初始化期间接收所述信息。如果NVDIMM可仅支持一个模式,则存储器控制器以NVDIMM支持的模式对NVDIMM进行配置。如果NVDIMM支持直接模式和高速缓存模式两者,则存储器控制器可针对特定的模式对NVDIMM进行配置。
可以以各种方法对针对NVDIMM的操作的模式进行配置。在一个实施例中,存储器控制器可发送用于对NVDIMM的模式寄存器进行配置的模式寄存器设置(MRS)命令。在这种情况下,模式寄存器包括指定直接模式还是高速缓存模式的字段。在另一实施例中,存储器控制器可写入与NVDIMM上的特殊功能寄存器对应的特定存储器地址。在这种情况下,特殊功能寄存器包括指定直接模式还是高速缓存模式的字段。
根据一些实施例,当前NVDIMM 101的DRAM高速缓存111b可实现为后侧DRAM高速缓存或前侧DRAM高速缓存。图2A示出根据一个实施例的包括后侧DRAM高速缓存的NVDIMM的示例。NVDIMM 201a包括非易失性存储器210、后侧DRAM高速缓存211a和NVM/高速缓存控制器220。NVDIMM 201a的数据缓冲器230经由数据(DQ)总线提供由主机存储器控制器(未示出)请求的数据或NVDIMM 201a的状态。NVDIMM 201a的寄存时钟驱动器(RCD)231提供产生用于数据缓冲器230的命令序列的控制和地址(CA)缓冲器。
后侧DRAM高速缓存211a被连接到NVM/高速缓存控制器220并可经由NVM/高速缓存控制器220从数据缓冲器230接收数据并从RCD 231接收控制和地址。这禁止主机存储器控制器直接访问后侧DRAM高速缓存211a。主机存储器控制器可在直接模式下访问后侧DRAM高速缓存211a但不可在高速缓存模式下直接访问后侧DRAM高速缓存211a。对后侧DRAM高速缓存211a的访问将需要握手,导致比对DRAM的常规访问时间更长的存取时间,例如,比对DRAM的常规访问时间长15ns。
图2B示出根据一个实施例的包括前侧DRAM高速缓存的NVDIMM的示例。NVDIMM201b包括非易失性存储器210、前侧DRAM高速缓存211b和NVM控制器211。NVDIMM 210b的数据缓冲器230经由数据(DQ)总线缓冲传送到主机存储器控制器的数据和从主机存储器控制器传送的数据。NVDIMM 201b的寄存时钟驱动器(RCD)231是产生用于数据缓冲器230的命令序列的控制和地址(CA)缓冲器。
与图2A中示出的NVDIMM 201a的后侧DRAM高速缓存211a相比,NVDIMM 201b的前侧DRAM高速缓存211b可由主机存储器控制器直接访问。这种操作的模式在这里被称为高速缓存模式。对前侧DRAM高速缓存211b的高速缓存模式访问不需要握手开销,使得对前侧DRAM高速缓存211b的访问与对常规DRAM的访问一样快。
本公开提供用于操作NVDIMM的各种命令,特别是在高速缓存模式下操作NVDIMM的各种命令。用于高速缓存模式下的NVDIMM的这种命令的示例包括,但不限于,快速高速缓存读取命令、内部操作命令、刷新命令、事务突发命令和读取状态命令。
快速高速缓存读取命令使能够对DRAM高速缓存进行低延迟高速缓存访问。内部操作命令允许NVDIMM在不与主机存储器控制器冲突的情况下执行内部操作。NVM控制器221可包括写入缓冲器(例如,SRAM)。针对输入的写入命令,写入数据首先被存储在NVM控制器221的写入缓冲器,NVM控制器221将数据从写入缓冲器写入DRAM高速缓存或NVM 210。刷新命令允许主机存储器控制器指示NVDIMM刷新NVM控制器221和/或DRAM高速缓存的写入缓冲器。刷新命令确保存储在易失性区域(例如,写入缓冲器)中的数据被写入非易失性区域使得数据变得持久。除非明确地声明另外的情况,否则这里提及的DRAM高速缓存可以指图2B中示出的前侧DRAM高速缓存。在不脱离本公开的范围的情况下,DRAM高速缓存与前侧DRAM高速缓存在这里可交换地使用。
根据一个实施例,快速高速缓存读取命令允许主机存储器控制器快速地访问DRAM高速缓存而不引起信号交换开销。图3A是示出根据一个实施例的示例快速高速缓存读取命令的定义的表。快速高速缓存读取命令包括在第一时钟周期中发出的扩展(E)命令,随后是在第二时钟周期中发出的DRAM读取(RD)命令。
图3B示出根据一个实施例的示例快速高速缓存读取命令的时序图。在E+RD命令的组合的情况下,主机存储器控制器可在具有与标准DDR4接口相同或相似的延迟的固定DRAM延迟之后得到数据和标签。在接收E+RD命令之后,NVM控制器(例如,图2B的NVM控制器221)可在消息(MSG)引脚上贴上标签。根据一个实施例,主机存储器控制器可检查标签以识别与快速高速缓存读取命令有关的数据和加载在数据总线DQ上的数据是否是被高速缓存的数据。主机存储器控制器或NVM控制器可具有高速缓存管理逻辑。根据一个实施例,高速缓存管理逻辑可检查标签以确定高速缓存命中或高速缓存未命中。当主机存储器控制器发送读取请求时,主机存储器控制器持续跟踪地址和相应的标签。当读取数据返回时,主机存储器控制器可使用返回的标签以将该标签与未完成的读取请求匹配。例如,如果标签指示高速缓存命中,则主机存储器控制器确定加载在数据总线DQ上的数据是有效的,否则主机存储器控制器确定高速缓存未命中并确定加载在数据总线DQ上的数据是无效的。在高速缓存未命中的情况下,主机存储器控制器可忽略DQ总线上的数据。
在通过CA总线接收E+RD命令之后,NVM控制器在内部检查与快速高速缓存读取请求有关的标签。标签可存储在NVDIMM上的存储器(例如,DRAM)的单独的块中。主机存储器控制器可产生扩展的地址(EA),并且NVM控制器可对EA进行解码并执行标签匹配。如果扩展的地址(EA)和标签相匹配(例如,311a),则NVM控制器确定高速缓存命中并不进行操作。在这种情况下,高速缓存管理逻辑可从数据缓冲器230上的DRAM高速缓存加载被高速缓存数据312,并且数据缓冲器230自动将数据放入数据总线DQ。主机存储器控制器可从数据缓冲器230同步检索被高速缓存的数据。纠错码(ECC)保护,诸如循环冗余码校验(CRC)或奇偶校验,可被用于DQ总线上的包完整性保护。如果EA和标签不匹配(例如,311b),则NVM控制器确定高速缓存未命中,则将请求的存储在非易失性存储器中的数据加载到数据缓冲器230。
根据一个实施例,扩展命令(例如,A0-A9)中包括的读取ID(RID)被用于标识读取命令和来自NVDIMM的读取数据之间的关系。RID可以以各种方式产生。在一个实施例中,主机存储器控制器可明确地产生RID。在这种情况下,如图3A所示,RID被明确地从主机存储器控制器传送到E命令中的NVDIMM。在另一实施例中,主机存储器控制器和NVDIMM两者都可根据读取指令的类型明确地产生RID。在另一实施例中,无论是主机存储器控制器还是NVDIMM都不能明确地产生RID。相反,主机存储器控制器和NVDIMM两者都同意并遵循RID技术。在初始化期间声像同步之后,主机存储器控制器和NVDIMM可针对相同的包分别产生相同的RID。RID可通过反馈通道中的其他引脚(例如,MSG引脚)被传送。
高速缓存未命中之后的操作可以是异步的。例如,当数据准备就绪时,NVDIMM使用Read_Ready信号异步地通知主机存储器控制器。Read_Ready信号是不需要与数据总线DQ上的数据信号对准的异步信号。Read_Ready信号可通过指示数据已经准备就绪由主机存储器控制器进行读取的一个特定引脚(或多个特定引脚)被发送。在主机存储器控制器接收到Read_Ready信号之后,主机存储器控制器发出事务突发命令(TB)315并可在数据总线上读取存储在非易失性存储器中的数据。响应于TB命令315,NVDIMM将请求的数据加载到存储在非易失性存储器中的DQ引脚,还将RID加载到MSG引脚。加载在MSG引脚上的RID 320识别DQ引脚上的数据相应于由E+RD命令301b请求的数据。
用于访问DRAM高速缓存的冲突可能由于主机存储器控制器和NVM控制器两者都可控制DRAM高速缓存而发生。根据一个实施例,内部操作(IOP)命令可避免当主机存储器控制器和NVM控制器两者都要求控制DRAM高速缓存时可能发生的潜在的DRAM访问冲突。
图4A是示出根据一个实施例的示例内部操作命令的定义的表。图4B示出根据一个实施例的示例内部操作命令的时序图。
偶尔,NVDIMM需要时间来执行内部操作,诸如,将数据从DRAM高速缓存移动到非易失性存储器,或将数据从非易失性存储器移动到DRAM高速缓存。在这些情况中,NVM控制器可向主机存储器控制器发送请求来请求允许执行内部操作。例如,NVM控制器将IOP请求410发送到主机存储器控制器来请求允许执行一个或更多个内部操作以及执行一个或更多个内部操作的时间。
根据一个实施例,由NVDIMM发送的IOP请求410包括Read_Ready信号,随后是事务突发(TB)命令401。使用Read_Ready信号,NVDIMM向主机存储器控制器通知消息和数据(诸如,IOP请求410)已准备就绪。响应于TB命令401而加载的MSG数据包420包括指示符(1),其指示加载在DQ引脚上的数据包括NVDIMM的状态412而不包括数据。NVDIMM的状态412可包括至少一次请求时间(例如,IOP时间)以执行内部操作。相比之下,如图3B所示,对于正常事务突发读取命令,MSG数据包320包括指示符(0)和RID。
加载在DQ总线(和ECC)上的NVDIMM的状态412可包括指示NVDIMM需要多少时间来完成内部操作的IOP时间。主机存储器控制器可读取NVDIMM的状态412并可将IOP命令402发送到NVM控制器。IOP命令402可指示批准或不批准请求的IOP时间。如果主机存储器控制器批准请求的IOP时间,则IOP命令402可包括分配的时间(例如,在A0-A9引脚)。根据一个实施例,在IOP请求410中请求的IOP时间可不同于在IOP命令402中分配的IOP时间。主机存储器控制器将在分配的允许NVDIMM执行内部操作的时间期间不访问NVDIMM。由于内部操作不占用CA和DQ总线,共享的存储器通道总线仍然可用于在共享存储器通道上的另一DIMM。
根据一个实施例,刷新(FL)命令被用于允许主机存储器控制器指示NVDIMM将数据从写入缓冲器和/或DRAM高速缓存刷新到非易失性存储器。图5A是示出根据一个实施例的示例刷新命令的定义的表。图5B是示出根据一个实施例的示例刷新命令的时序图。
根据一个实施例,主机存储器控制器可发送包括刷新ID(FID)的刷新命令501(例如,在A0-A9引脚)。在一个实施例中,刷新ID是地址范围。主机存储器控制器和NVM控制器可识别刷新ID所表示的地址范围。主机存储器控制器指示NVDIMM基于刷新ID将数据刷新到非易失性存储器的特定区域。作为响应,NVM控制器将脏数据从DRAM高速缓存刷新到非易失性存储器的刷新ID,并发送指示刷新命令501已经完成的Read_Ready信号。在接收到Read_Ready信号之后,主机存储器控制器可发送事务突发(TB)命令502以检查刷新命令501的状态。所述状态可包括刷新ID和刷新ID的状态(例如,成功、待定或失败)。例如,当NVDIMM已经成功地完成对非易失性存储器的指定区域的刷新,NVDIMM发送作为指示刷新命令501已经被成功地完成的确认的状态512。响应于TB命令502而加载的MSG数据包520包括指示符(1),其指示在DQ引脚上加载的数据包括NVDIMM的状态512而不包括数据。
事务突发(TB)命令被用于使主机存储器控制器能够从NVDIMM获得数据或状态的任何一个。根据一个实施例,TB命令可包括突发计数,主机存储器控制器可使用单个TB命令向NVDIMM请求一个或更多个数据和/或状态。图6A是示出根据一个实施例的示例事务突发(TB)命令的定义的表。图6B示出根据一个实施例的示例事务突发(TB)命令的时序图。
根据一个实施例,突发计数被加载在事务突发命令的A0-A9引脚。在图6B示出的示例中,TB命令601包括包含一个数据读取和一个状态读取的突发计数2。继TB命令601之后,NVDIMM将请求的数据612和状态613加载到DQ引脚(和ECC)。主机存储器控制器基于MSG引脚中的指示符(0或1)区分是数据还是状态被加载到DQ引脚中。例如,指示符(0)指示请求的数据被加载到DQ引脚上,并且指示符(1)指示NVDIMM的状态被加载到DQ引脚上。
根据一个实施例,读取状态(RS)命令被用于允许主机存储器控制器主动地读取NVDIMM的状态。图7A是示出根据一个实施例的示例读取状态(RS)命令的定义的表。图7B示出根据一个实施例的示例读取状态(RS)命令的时序图。
主机存储器控制器通过CA总线将读取状态命令701发送到NVDIMM。响应于读取状态命令701,NVDIMM将其状态712加载到DQ引脚(和ECC)上。MSG中包括的指示符指示状态712被加载到DQ引脚上。根据一些实施例,主机存储器控制器可发送读取状态命令701以检索NVDIMM的状态。NVDIMM在预定的时间tRL之后报告其状态712,因此主机存储器控制器可确定地并同步地接收NVDIMM的状态。例如,如果NVDIMM未确认刷新命令完成,则主机存储器控制器可主动地检测NVDIMM的状态。
在返回状态包712中,NVDIMM可嵌入准备就绪的数据/状态的数量。在这种情况下,即使Read_Ready信号丢失,主机存储器控制器仍可得知有多少数据/状态准备就绪。根据一个实施例,主机存储器控制器可基于特殊功能寄存器(SFR)地址读取或写入NVDIMM的特定的SFR。为了从SFR读取,主机存储器控制器可发出读取状态(RS)命令。为了写入SFR,主机存储器控制器可向与预期的SFR相应的地址发出正常写入命令。SFR可包括对于NVDIMM的非易失性存储器唯一的配置、操作和/或状态信息。
图8是根据一个实施例的用于提供在存储器模块中存储的数据的流程图。存储器模块具有非易失性存储器和DRAM,其中DRAM被配置为非易失性存储器的DRAM缓存。存储器模块从主机存储器控制器接收读取请求(801)。高速缓存管理逻辑根据被请求的数据的存储位置确定读取请求是高速缓存命中还是高速缓存未命中(802)。高速缓存管理逻辑可被包括在存储器模块的主机存储器控制器或NVM控制器中。在高速缓存未命中的情况下,存储器模块异步地提供存储在存储器模块的非易失性存储器中的数据(803)。在高速缓存命中的情况下,存储器模块同步地提供DRAM高速缓存中存储的数据(804)。
根据一个实施例,一种方法包括:在主机存储器控制器和存储器模块之间提供DDR接口,存储器模块包括非易失性存储器和DRAM,其中,DRAM被配置为非易失性存储器的DRAM高速缓存;在主机存储器控制器和存储器模块之间提供消息接口。存储器模块的非易失性存储器和DRAM两者都被连接到数据缓冲器和包括控制和地址(CA)缓冲器的寄存时钟终驱动器(RCD)。数据缓冲器被配置为经由DDR接口的数据(DQ)总线和消息接口提供由主机存储器控制器请求的数据或存储器模块的状态。RCD被配置为基于经由DDR接口的CA总线接收的命令和地址来产生针对数据缓冲器的命令序列。存储器模块的非易失性存储器中存储的数据可由存储器模块的非易失性存储器控制器异步地访问。DRAM高速缓存中存储的数据可由主机存储器控制器直接并同步地访问。
所述方法还包括:从主机存储器控制器接收以读取存储器模块中存储的数据;确定由快速高速缓存读取请求所请求的数据被存储在DRAM高速缓存还是非易失性存储器中;当数据被存储在DRAM高速缓存中时,在数据总线上同步地提供数据;当数据被存储在非易失性存储器中时,在数据总线上异步地提供数据。
快速高速缓存读取请求可包括扩展命令和DRAM读取命令。
扩展命令可包括与存储器模块中存储的数据有关的读取ID。
所述方法还可包括:通过消息接口检查消息信号中包括的标签;通过将所述标签与扩展地址(EA)进行比较来确定快速高速缓存读取请求是高速缓存命中还是高速缓存未命中。
所述方法还可包括:在消息接口上发送读取准备就绪信号以指示主机存储器控制器发出用于从非易失性存储器读取数据的第二读取请求;响应于第二读取请求而在数据总线上提供数据。
所述方法还可包括:经由消息接口提供读取准备就绪信号以指示主机存储器控制器读取存储器模块的状态;从主机存储器控制器接收读取请求;在DDR接口上提供存储器模块的状态并提供包括标签的消息信号。消息信号中包括的标签可指示DDR接口的数据总线上的数据是存储器模块的状态。
存储器模块的状态可包括内部操作时间,并且所述方法还可包括:从主机存储器控制器接收内部操作命令。内部操作命令可包括被批准的内部操作时间。
内部操作时间和被批准的内部操作时间可以不同。
主机存储器控制器在被批准的内部操作时间期间可无法访问存储器模块中存储的数据。
所述方法还可包括:从主机存储器控制器接收包括刷新ID的刷新命令;基于刷新ID将DRAM中存储的数据刷新到非易失性存储器。状态可指示是否基于刷新ID成功地执行了刷新命令。
所述方法还包括:在DDR接口和包括标签的消息接口上提供存储器模块中存储的一个或更多个数据以及存储器模块的状态。通过消息接口被包括在消息信号中的标签可指示加载在DDR接口的数据总线上的数据是由主机存储器控制器请求的数据还是存储器模块的状态。
读取请求可包括突发计数,并且所述方法还包括:如突发计数所定义地依次地在DDR接口上提供存储器模块中存储的一个或更多个数据和存储器模块的状态。
所述方法还包括:从主机存储器控制器接收读取状态命令;经由DDR接口同步地提供存储器模块的状态。
根据另一个实施例,存储器模块包括:非易失性存储器;非易失性存储器控制器,被配置为向非易失性存储器提供数据接口以及控制和地址(CA)接口;DRAM,被配置为非易失性存储器的DRAM高速缓存;数据缓冲器;寄存时钟驱动器(RCD),包括控制和地址(CA)缓冲器;到主机存储器控制器的DDR接口和消息接口。非易失性存储器和DRAM两者都被连接到数据缓冲器和寄存时钟驱动器(RCD)。数据缓冲器被配置为经由DDR接口的数据(DQ)总线和消息接口提供由主机存储器控制器请求的数据和存储器模块的状态。RCD被配置为基于经由DDR接口的CA总线接收的命令和地址来产生针对数据缓冲器的命令序列。存储器模块的非易失性存储器中存储的数据可由非易失性存储器控制器异步地访问。DRAM高速缓存中存储的数据可由主机存储器控制器直接并异步地访问。
主机存储器控制器可发送来自主机存储器控制器的快速高速缓存读取请求以读取存储器模块中存储的数据。当数据被存储在DRAM高速缓存中时,存储器模块可在数据总线上同步地提供数据,并当数据被存储在非易失性存储器中时,存储器模块可在数据总线上异步地提供数据。
存储器模块可通过消息接口发送包括标签的消息信号。主机存储器控制器可通过将标签和扩展地址(EA)进行比较来确定快速高速缓存读取请求是高速缓存命中还是高速缓存未命中。
根据另一实施例,存储器系统包括:主机存储器控制器;存储器模块;在主机存储器控制器和存储器模块之间建立的DDR接口,其中,DDR接口包括数据总线以及控制和地址(CA)总线;在主机存储器控制器和存储器模块之间建立的消息接口。存储器模块包括:非易失性存储器;非易失性存储器控制器,被配置为向非易失性存储器提供数据接口以及控制和地址(CA)接口;DRAM,被配置为非易失性存储器的DRAM高速缓存;数据缓冲器;寄存时钟驱动器(RCD),包括控制和地址(CA)缓冲器。非易失性存储器和DRAM两者都被连接到数据缓冲器和寄存时钟驱动器(RCD)。数据缓冲器被配置为经由DDR接口的数据(DQ)总线和消息接口提供由主机存储器控制器请求的数据或存储器模块的状态。RCD被配置为基于经由DDR接口的CA总线接收的命令和地址来产生针对数据缓冲器的命令序列。在存储器模块的非易失性存储器中存储的数据可由非易失性存储器控制器异步访问。DRAM高速缓存中存储的数据可由主机存储器控制器直接并同步地访问。
主机存储器控制器可发送来自主机存储器控制器的快速高速缓存读取请求以读取存储器模块中存储的数据。当数据被存储在DRAM高速缓存中时,存储器模块可在数据总线上同步地提供数据,并当数据被存储在非易失性存储器中时,存储器模块可在数据总线上异步地提供数据。
存储器模块可通过消息接口发送包括标签的消息信号。主机存储器控制器可通过将标签和扩展地址(EA)进行比较来确定快速高速缓存读取请求是高速缓存命中还是高速缓存未命中。
上文已经描述了上述示例实施例以示出实现用于操作双数据速率(DDR)兼容异步存储器模块的系统和方法的各种实施例。本领域的普通技术人员可对公开的示例实施例进行各种修改和偏离。在权利要求书中对预期在本发明范围内的主题进行了阐述。
Claims (20)
1.一种用于操作DDR可兼容异步存储器模块的方法,所述方法包括:
在主机存储器控制器和存储器模块之间提供DDR接口,其中,存储器模块包括非易失性存储器和DRAM,其中,DRAM被配置为所述非易失性存储器的DRAM高速缓存;
在主机存储器控制器和存储器模块之间提供消息接口;
其中,存储器模块的非易失性存储器和DRAM两者都被连接到数据缓冲器和寄存时钟驱动器,其中,寄存时钟驱动器包括控制和地址缓冲器,数据缓冲器被配置为经由DDR接口的数据总线和消息接口提供由主机存储器控制器请求的数据或存储器模块的状态,并且寄存时钟驱动器被配置为基于经由DDR接口的控制和命令总线接收的命令和地址来产生针对数据缓冲器的命令序列,
其中,存储器模块的非易失性存储器中存储的数据能够由存储器模块的非易失性存储器控制器异步地访问,
其中,DRAM高速缓存中存储的数据能够由存储器主机存储器控制器直接并同步地访问。
2.如权利要求1所述的方法,还包括:
从主机存储器控制器接收对于读取存储器模块中存储的数据的快速高速缓存读取请求;
确定由所述快速高速缓存读取请求所请求的数据是被存储在DRAM高速缓存中还是被存储在非易失性存储器中;
当所述数据被存储在DRAM高速缓存中时,在数据总线上同步地提供数据;
当所述数据被存储在非易失性存储器中时,在数据总线上异步地提供数据。
3.如权利要求2所述的方法,其中,所述快速高速缓存读取请求包括扩展命令和DRAM读取命令。
4.如权利要求3所述的方法,其中,所述扩展命令包括与存储器模块中存储的数据有关的读取ID。
5.如权利要求2所述的方法,还包括:
通过消息接口检查消息信号中包括的标签;
通过将所述标签与扩展地址进行比较来确定所述快速高速缓存读取请求是高速缓存命中还是高速缓存未命中。
6.如权利要求2所述的方法,还包括:
在消息接口上发送读取准备就绪信号以指示主机存储器控制器发出对于从非易失性存储器读取数据的第二读取请求;
响应于所述第二读取请求而在数据总线上提供所述数据。
7.如权利要求1所述的方法,还包括:
经由消息接口提供读取准备就绪信号以指示主机存储器控制器读取存储器模块的状态;
从主机存储器控制器接收读取请求;
在DDR接口上提供存储器模块的状态并提供包括标签的消息信号,
其中,所述消息信号中包括的标签指示在DDR接口的数据总线上的数据是存储器模块的状态。
8.如权利要求7所述的方法,其中,存储器模块的状态包括内部操作时间,所述方法还包括:
从主机存储器控制器接收内部操作命令,
其中,所述内部操作命令包括被批准的内部操作时间。
9.如权利要求8所述的方法,其中,所述内部操作时间与所述被批准的内部操作时间不同。
10.如权利要求8所述的方法,其中,主机存储器控制器在所述被批准的内部操作时间期间不访问存储器模块中存储的数据。
11.如权利要求7所述的方法,还包括:
从主机存储器控制器接收包括刷新ID的刷新命令;
基于所述刷新ID将DRAM中存储的数据刷新到非易失性存储器,
其中,所述状态指示所述刷新命令是否基于所述刷新ID被成功地完成。
12.如权利要求7所述的方法,还包括:
在DDR接口和包括标签的消息接口上提供存储器模块中存储的一个或更多个数据和存储器模块的状态,
其中,通过消息接口包括在消息信号中的所述标签指示加载在DDR接口的数据总线上的数据是由主机存储器控制器请求的数据还是存储器模块的状态。
13.如权利要求12所述的方法,其中,所述读取请求包括突发计数,所述方法还包括:
如所述突发计数所定义地依次地在DDR接口上提供存储器模块中存储的一个或更多个数据和存储器模块的状态。
14.如权利要求12所述的方法,还包括:
从主机存储器控制器接收读取状态命令;
经由DDR接口同步地提供存储器模块的状态。
15.一种存储器模块,包括:
非易失性存储器;
非易失性存储器控制器,被配置为向非易失性存储器提供数据接口以及控制和地址接口;
DRAM,被配置作为非易失性存储器的DRAM高速缓存;
数据缓冲器;
寄存时钟驱动器,包括控制和地址缓冲器;
到主机存储器控制器的DDR接口和消息接口,
其中,非易失性存储器和DRAM两者都被连接到数据缓冲器和寄存时钟驱动器,
其中,数据缓冲器被配置为经由DDR接口的数据(DQ)总线和消息接口提供由主机存储器控制器所请求的数据或存储器模块的状态,并且寄存时钟驱动器被配置为基于经由DDR接口的控制和地址总线所接收的命令和地址来产生针对数据缓冲器的命令序列,
其中,存储器模块的非易失性存储器中存储的数据能够由非易失性存储器控制器异步地访问,
其中,DRAM高速缓存中存储的数据能够由主机存储器控制器直接并同步地访问。
16.如权利要求15所述的存储器模块,其中,主机存储器控制器发送对于读取存储器模块中存储的数据的快速高速缓存读取请求,其中,当所述数据被存储在DRAM高速缓存中时,存储器模块在数据总线上同步地提供所述数据,当所述数据被存储在非易失性存储器中时,存储器模块异步地在数据总线上提供所述数据。
17.如权利要求16所述的存储器模块,其中,存储器模块通过消息接口发送包括标签的消息信号,其中,主机存储器控制器通过将所述标签与扩展地址进行比较来确定所述快速高速缓存读取请求是高速缓存命中还是高速缓存未命中。
18.一种存储器系统,包括:
主机存储器控制器;
存储器模块;
DDR接口,被建立在主机存储器控制器和存储器模块之间,其中,DDR接口包括数据总线以及控制和地址总线;
消息接口,被建立在主机存储器控制器和存储器模块之间;
其中,存储器模块包括:
非易失性存储器;
非易失性存储器控制器,被配置为向非易失性存储器提供数据接口以及控制和地址接口;
DRAM,被配置作为非易失性存储器的DRAM高速缓存;
数据缓冲器;
寄存时钟驱动器,包括控制和地址缓冲器,
其中,非易失性存储器和DRAM两者都被连接到数据缓冲器和寄存时钟驱动器,
其中,数据缓冲器被配置为经由DDR接口的数据总线和消息接口提供由主机存储器控制器所请求的数据或存储器模块的状态,并且寄存时钟驱动器被配置为基于经由DDR接口的控制和地址总线所接收的命令和地址来产生针对数据缓冲器的命令序列,
其中,存储器模块的非易失性存储器中存储的数据能够由非易失性存储器控制器异步地访问,
其中,DRAM高速缓存中存储的数据能够由主机存储器控制器直接并同步地访问。
19.如权利要求18所述的存储器系统,其中,主机存储器控制器发送对于读取存储器模块中存储的数据的快速高速缓存读取请求,其中,当所述数据被存储在DRAM高速缓存中时,存储器模块在数据总线上同步地提供所述数据,当所述数据被存储在非易失性存储器中时,存储器模块在数据总线上异步地提供所述数据。
20.如权利要求19所述的存储器系统,其中,存储器模块通过消息接口发送包括标签的消息信号,其中,主机存储器控制器通过将所述标签与扩展地址进行比较来确定所述快速高速缓存读取请求是高速缓存命中还是高速缓存未命中。
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662347569P | 2016-06-08 | 2016-06-08 | |
US62/347,569 | 2016-06-08 | ||
US201662368806P | 2016-07-29 | 2016-07-29 | |
US62/368,806 | 2016-07-29 | ||
US201662371588P | 2016-08-05 | 2016-08-05 | |
US62/371,588 | 2016-08-05 | ||
US15/285,423 | 2016-10-04 | ||
US15/285,423 US10810144B2 (en) | 2016-06-08 | 2016-10-04 | System and method for operating a DRR-compatible asynchronous memory module |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107481746A CN107481746A (zh) | 2017-12-15 |
CN107481746B true CN107481746B (zh) | 2023-07-18 |
Family
ID=60573975
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710212112.7A Active CN107481746B (zh) | 2016-06-08 | 2017-04-01 | 用于操作ddr可兼容异步存储器模块的系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10810144B2 (zh) |
JP (1) | JP6986369B2 (zh) |
KR (1) | KR20170139438A (zh) |
CN (1) | CN107481746B (zh) |
TW (1) | TWI762479B (zh) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180059945A1 (en) * | 2016-08-26 | 2018-03-01 | Sandisk Technologies Llc | Media Controller with Response Buffer for Improved Data Bus Transmissions and Method for Use Therewith |
US20180059943A1 (en) * | 2016-08-26 | 2018-03-01 | Sandisk Technologies Llc | Media Controller and Method for Management of CPU-Attached Non-Volatile Memory |
US10679722B2 (en) * | 2016-08-26 | 2020-06-09 | Sandisk Technologies Llc | Storage system with several integrated components and method for use therewith |
US10198354B2 (en) | 2017-03-21 | 2019-02-05 | Intel Corporation | Apparatus, system, and method to flush modified data from a volatile memory to a persistent second memory |
KR102101622B1 (ko) * | 2017-12-06 | 2020-04-17 | 주식회사 멤레이 | 메모리 제어 장치 및 이를 포함하는 컴퓨팅 디바이스 |
US10929291B2 (en) * | 2017-12-06 | 2021-02-23 | MemRay Corporation | Memory controlling device and computing device including the same |
US10296230B1 (en) * | 2017-12-22 | 2019-05-21 | Advanced Micro Devices, Inc. | Scheduling memory requests with non-uniform latencies |
US11029879B2 (en) * | 2018-01-29 | 2021-06-08 | Samsung Electronics Co., Ltd | Page size synchronization and page size aware scheduling method for non-volatile memory dual in-line memory module (NVDIMM) over memory channel |
US10534731B2 (en) * | 2018-03-19 | 2020-01-14 | Micron Technology, Inc. | Interface for memory having a cache and multiple independent arrays |
KR102505913B1 (ko) * | 2018-04-04 | 2023-03-07 | 삼성전자주식회사 | 메모리 모듈 및 메모리 모듈을 포함하는 메모리 시스템 |
KR102538253B1 (ko) * | 2018-04-16 | 2023-06-01 | 삼성전자주식회사 | 반도체 메모리 모듈 및 반도체 메모리 모듈을 포함하는 메모리 시스템 |
KR101952827B1 (ko) * | 2018-06-29 | 2019-02-27 | 주식회사 맴레이 | 메모리 제어 장치 및 이를 포함하는 메모리 시스템 |
CN109144778A (zh) * | 2018-07-27 | 2019-01-04 | 郑州云海信息技术有限公司 | 一种存储服务器系统及其备份方法、系统及可读存储介质 |
KR20200015233A (ko) * | 2018-08-03 | 2020-02-12 | 삼성전자주식회사 | 불휘발성 메모리 장치들을 포함하는 반도체 메모리 모듈 |
US11099779B2 (en) * | 2018-09-24 | 2021-08-24 | Micron Technology, Inc. | Addressing in memory with a read identification (RID) number |
US10732892B2 (en) | 2018-09-24 | 2020-08-04 | Micron Technology, Inc. | Data transfer in port switch memory |
US10915404B2 (en) | 2018-11-02 | 2021-02-09 | Arm Limited | Persistent memory cleaning |
CN111143898B (zh) * | 2018-11-05 | 2022-06-14 | 瑞昱半导体股份有限公司 | 可插拔存储器装置数据保护方法 |
JP7140972B2 (ja) | 2018-12-21 | 2022-09-22 | 富士通株式会社 | 演算処理装置、情報処理装置及び演算処理装置の制御方法 |
CN109582507B (zh) * | 2018-12-29 | 2023-12-26 | 西安紫光国芯半导体股份有限公司 | 用于nvdimm的数据备份和恢复方法、nvdimm控制器以及nvdimm |
US11537521B2 (en) * | 2019-06-05 | 2022-12-27 | Samsung Electronics Co., Ltd. | Non-volatile dual inline memory module (NVDIMM) for supporting dram cache mode and operation method of NVDIMM |
CN110286711B (zh) * | 2019-06-28 | 2021-04-13 | 联想(北京)有限公司 | 信息处理方法、信息处理装置、存储装置和电子设备 |
KR20210008216A (ko) | 2019-07-11 | 2021-01-21 | 삼성전자주식회사 | 메모리 장치 및 이를 포함하는 메모리 시스템 |
US11163486B2 (en) * | 2019-11-25 | 2021-11-02 | Micron Technology, Inc. | Memory sub-system-bounded memory function |
US11099786B2 (en) * | 2019-12-30 | 2021-08-24 | Advanced Micro Devices, Inc. | Signaling for heterogeneous memory systems |
CN111681693A (zh) * | 2020-05-26 | 2020-09-18 | 北京微密科技发展有限公司 | 融合ddr5 lrdimm芯片组的nvdimm-p控制器及控制方法 |
US11586518B2 (en) * | 2020-08-27 | 2023-02-21 | Micron Technology, Inc. | Thermal event prediction in hybrid memory modules |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5907867A (en) * | 1994-09-09 | 1999-05-25 | Hitachi, Ltd. | Translation lookaside buffer supporting multiple page sizes |
CN101042929A (zh) * | 2007-04-16 | 2007-09-26 | 中国人民解放军国防科学技术大学 | 采样点可配置的片外dram数据采样方法 |
JP2009540431A (ja) * | 2006-06-07 | 2009-11-19 | マイクロソフト コーポレーション | 1つのインターフェースを有するハイブリッド・メモリ・デバイス |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR960039006A (ko) * | 1995-04-26 | 1996-11-21 | 김광호 | 디램버스에 접속가능한 불휘발성 반도체 메모리장치 |
JP2001010865A (ja) | 1999-06-23 | 2001-01-16 | Ngk Insulators Ltd | 窒化珪素焼結体及びその製造方法 |
JP3872922B2 (ja) | 1999-06-28 | 2007-01-24 | 株式会社東芝 | 半導体記憶装置及びメモリ混載ロジックlsi |
US6643756B1 (en) * | 1999-11-11 | 2003-11-04 | Ati International Srl | System and method for accessing video data using a translation client |
JP4059002B2 (ja) * | 2001-06-13 | 2008-03-12 | 株式会社日立製作所 | メモリ装置 |
JP2005234932A (ja) * | 2004-02-20 | 2005-09-02 | Oki Electric Ind Co Ltd | マトリックス状バス接続システムとその低電力方法 |
US8041881B2 (en) * | 2006-07-31 | 2011-10-18 | Google Inc. | Memory device with emulated characteristics |
US9171585B2 (en) * | 2005-06-24 | 2015-10-27 | Google Inc. | Configurable memory circuit system and method |
US7461231B2 (en) * | 2006-01-12 | 2008-12-02 | International Business Machines Corporation | Autonomically adjusting one or more computer program configuration settings when resources in a logical partition change |
WO2008131058A2 (en) * | 2007-04-17 | 2008-10-30 | Rambus Inc. | Hybrid volatile and non-volatile memory device |
US7827360B2 (en) * | 2007-08-02 | 2010-11-02 | Freescale Semiconductor, Inc. | Cache locking device and methods thereof |
US8738840B2 (en) | 2008-03-31 | 2014-05-27 | Spansion Llc | Operating system based DRAM/FLASH management scheme |
US8560761B2 (en) | 2008-03-31 | 2013-10-15 | Spansion Llc | Memory resource management for a flash aware kernel |
US7941591B2 (en) | 2008-07-28 | 2011-05-10 | CacheIQ, Inc. | Flash DIMM in a standalone cache appliance system and methodology |
US8281074B2 (en) | 2008-10-07 | 2012-10-02 | Micron Technology, Inc. | Interface device for memory in a stack, storage devices and a processor |
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 |
US8850155B2 (en) * | 2011-12-19 | 2014-09-30 | Advanced Micro Devices, Inc. | DDR 2D Vref training |
US9280497B2 (en) * | 2012-12-21 | 2016-03-08 | Dell Products Lp | Systems and methods for support of non-volatile memory on a DDR memory channel |
CN105027092B (zh) * | 2013-03-27 | 2018-01-30 | 株式会社日立制作所 | 具有sdram接口的dram、混合闪存存储器模块 |
CN104216837A (zh) * | 2013-05-31 | 2014-12-17 | 华为技术有限公司 | 一种内存系统、内存访问请求的处理方法和计算机系统 |
US9251003B1 (en) | 2013-08-14 | 2016-02-02 | Amazon Technologies, Inc. | Database cache survivability across database failures |
US20150186278A1 (en) | 2013-12-26 | 2015-07-02 | Sarathy Jayakumar | Runtime persistence |
US9354872B2 (en) * | 2014-04-24 | 2016-05-31 | Xitore, Inc. | Apparatus, system, and method for non-volatile data storage and retrieval |
US9721660B2 (en) | 2014-10-24 | 2017-08-01 | Microsoft Technology Licensing, Llc | Configurable volatile memory without a dedicated power source for detecting a data save trigger condition |
US10126950B2 (en) | 2014-12-22 | 2018-11-13 | Intel Corporation | Allocating and configuring persistent memory |
KR102342789B1 (ko) * | 2015-09-24 | 2021-12-24 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
US9460791B1 (en) * | 2015-12-08 | 2016-10-04 | Inphi Corporation | Data clock synchronization in hybrid memory modules |
US10152237B2 (en) * | 2016-05-05 | 2018-12-11 | Micron Technology, Inc. | Non-deterministic memory protocol |
-
2016
- 2016-10-04 US US15/285,423 patent/US10810144B2/en active Active
-
2017
- 2017-01-16 KR KR1020170007166A patent/KR20170139438A/ko unknown
- 2017-04-01 CN CN201710212112.7A patent/CN107481746B/zh active Active
- 2017-04-14 TW TW106112447A patent/TWI762479B/zh active
- 2017-06-07 JP JP2017112253A patent/JP6986369B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5907867A (en) * | 1994-09-09 | 1999-05-25 | Hitachi, Ltd. | Translation lookaside buffer supporting multiple page sizes |
JP2009540431A (ja) * | 2006-06-07 | 2009-11-19 | マイクロソフト コーポレーション | 1つのインターフェースを有するハイブリッド・メモリ・デバイス |
CN101042929A (zh) * | 2007-04-16 | 2007-09-26 | 中国人民解放军国防科学技术大学 | 采样点可配置的片外dram数据采样方法 |
Also Published As
Publication number | Publication date |
---|---|
US10810144B2 (en) | 2020-10-20 |
KR20170139438A (ko) | 2017-12-19 |
TWI762479B (zh) | 2022-05-01 |
JP6986369B2 (ja) | 2021-12-22 |
TW201743219A (zh) | 2017-12-16 |
JP2017220237A (ja) | 2017-12-14 |
CN107481746A (zh) | 2017-12-15 |
US20170357604A1 (en) | 2017-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107481746B (zh) | 用于操作ddr可兼容异步存储器模块的系统和方法 | |
US10002085B2 (en) | Peripheral component interconnect (PCI) device and system including the PCI | |
US9436632B2 (en) | Accessing data stored in a command/address register device | |
US9772803B2 (en) | Semiconductor memory device and memory system | |
US8407394B2 (en) | System and methods for memory expansion | |
US9411537B2 (en) | Embedded multimedia card (EMMC), EMMC system including the EMMC, and method of operating the EMMC | |
US20190310784A1 (en) | Memory module and memory system including memory module | |
CN111279327A (zh) | 用于非易失性存储器的写入信用管理 | |
US10866736B2 (en) | Memory controller and data processing circuit with improved system efficiency | |
CN107257964B (zh) | Dram电路、计算机系统和访问dram电路的方法 | |
US10482043B2 (en) | Nondeterministic memory access requests to non-volatile memory | |
CN105373345B (zh) | 存储器设备和模块 | |
US10769074B2 (en) | Computer memory content movement | |
US11853608B2 (en) | Information writing method and apparatus | |
US20220019382A1 (en) | NAND Dropped Command Detection and Recovery | |
US9141472B2 (en) | Sharing a check bit memory device between groups of memory devices | |
US11126379B2 (en) | Memory system | |
WO2016043158A1 (ja) | メモリ制御回路および記憶装置 | |
US8006029B2 (en) | DDR flash implementation with direct register access to legacy flash functions | |
US20210081138A1 (en) | Hybrid memory module with data buffering | |
US7805567B2 (en) | Chipset and northbridge with raid access | |
JPH11102328A (ja) | メモリ診断システム | |
CN113836050A (zh) | 访存控制方法、装置、设备及可读存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |