CN109074333B - 非确定性存储器协议 - Google Patents
非确定性存储器协议 Download PDFInfo
- Publication number
- CN109074333B CN109074333B CN201780026941.4A CN201780026941A CN109074333B CN 109074333 B CN109074333 B CN 109074333B CN 201780026941 A CN201780026941 A CN 201780026941A CN 109074333 B CN109074333 B CN 109074333B
- Authority
- CN
- China
- Prior art keywords
- read
- host
- command
- signal
- memory device
- 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
Images
Classifications
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1626—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
-
- 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
-
- 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/061—Improving I/O performance
-
- 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/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/0688—Non-volatile semiconductor memory arrays
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Read Only Memory (AREA)
- Dram (AREA)
- Communication Control (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明包含与非确定性存储器协议有关的设备及方法。实例性设备可根据协议基于从主机接收的命令而对存储器装置执行操作,其中所述协议包含所述操作的非确定性时序。所述存储器装置可为非易失性双列直插式存储器模块NVDIMM装置。
Description
技术领域
本发明一般来说涉及存储器装置,且更特定来说,涉及用于非确定性存储器协议的设备及方法。
背景技术
存储器装置通常经提供作为计算机或其它电子装置中的内部半导体集成电路。存在包含易失性及非易失性存储器的许多不同类型的存储器。易失性存储器可需要电力来维持其数据,且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)以及其它。非易失性存储器可通过在不被供电时存留所存储数据而提供持久性数据,且可包含NAND快闪存储器、NOR快闪存储器、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、可擦除可编程ROM(EPROM)及电阻可变存储器,例如相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM)及磁阻式随机存取存储器(MRAM)以及其它。
存储器也作为易失性及非易失性数据存储装置用于宽广范围的电子应用。举例来说,非易失性存储器可用于个人计算机、便携式存储器条、数码相机、蜂窝式电话、例如MP3播放器等便携式音乐播放器、电影播放器及其它电子装置中。存储器单元可布置成阵列,其中所述阵列用于存储器装置中。
存储器可为用于计算装置中的存储器模块(例如,双列直插式存储器模块(DIMM))的一部分。存储器模块可包含易失性存储器(例如DRAM)及/或非易失性存储器(例如快闪存储器或RRAM)。DIMM可在计算系统中使用主要存储器。
附图说明
图1是根据本发明的若干个实施例的呈包含存储器系统的计算系统的形式的设备的框图。
图2A到2B是根据本发明的若干个实施例的若干个读取操作的图式。
图3是根据本发明的若干个实施例的若干个写入操作的图式。
图4是根据本发明的若干个实施例的若干个读取及写入操作的图式。
具体实施方式
本发明包含与非确定性存储器协议有关的设备及方法。实例性设备可根据协议基于从主机接收的命令而对存储器装置执行操作,其中协议包含操作的非确定性时序。举例来说,存储器装置可为非易失性双列直插式存储器模块(NVDIMM)装置。
在本发明的一或多个实施例中,协议可用于对NVDIMM装置执行操作。协议可允许主机具有对NVDIMM装置的直接存取,因此主机可将命令发送到NVDIMM装置以供NVDIMM装置执行。NVDIMM装置的非易失性性质可允许NVDIMM装置以非确定性时序执行来从主机的命令。协议可由主机及NVDIMM用以发送、接收及执行命令。协议可包含达成以下各项的信号:对命令的非确定性时序的执行;以与发布读取命令的次序不同的次序来传回与读取命令相关联的数据;及在执行写入命令时使用写入缓冲器、高速缓冲存储器或类似实体。而且,根据本发明的实施例的协议可与先前协议一起使用(例如,兼容),使得主机可在相同信道上使用本发明的协议及其它先前协议来将命令发送到DIMM装置。举例来说,主机可使用根据本发明的实施例的协议来将命令发送到NVDIMM装置且也在相同信道上使用先前协议来将命令发送到DDR4SDRAM装置。
包含于本发明的协议中的信号可为读取就绪(R_RDY)信号、读取发送(R_SEND)信号、写入信用递增(WC_INC)信号及读取识别(RID)信号。读取就绪信号可从NVDIMM装置被发送到主机以指示NVDIMM装置将与读取命令相关联的数据准备好发送到主机。读取发送命令可响应于接收到读取就绪命令而从主机被发送到NVDIMM装置以指示主机准备好接收与读取命令相关联的数据。读取识别(RID)信号可在与读取命令相关联的数据被传送到主机时从NVDIMM装置被发送到主机。RID信号可由主机用以识别哪一读取命令与从NVDIMM装置被传送到主机的数据相关联。写入信用递增信号可响应于完成执行写入命令或写入缓冲器中的写入已被消耗(此指示与请求相关联的写入缓冲器空间为可用的)而从NVDIMM装置被发送到主机。写入递增信号可由主机用以递增可被发送到NVDIMM装置的可用写入命令的数目。举例来说,每当主机将写入命令发送到NVDIMM装置时,主机会递减可被发送到NVDIMM装置的可用写入命令的数目,且当主机从NVDIMM装置接收到写入计数递增信号时,主机可递增可被发送到NVDIMM装置的可用写入命令的数目。
在本发明的以下详细描述中,参考形成本发明的一部分且其中以图解说明方式展示可如何实践本发明的若干个实施例的所附图式。充分详细地描述这些实施例旨在使所属领域的技术人员能够实践本发明的实施例,且应理解,可利用其它实施例且可做出过程、电及/或结构改变,而不背离本发明的范围。如本文中所使用,指定符“N”指示,如此指定的特定特征中的若干个特征可与本发明的若干个实施例包含在一起。
如本文中所使用,“若干个”某物可是指此些事物中的一或多者。举例来说,若干个存储器装置可是指存储器装置中的一或多者。另外,如本文中所使用,例如“N”等指定符(特定来说关于图式中的参考编号)指示,如此指定的特定特征中的若干个特征可与本发明的若干个实施例包含在一起。
本文中的各图遵循其中第一个数字或前几个数字对应于图式的图编号且剩余数字识别图式中的元件或组件的编号惯例。不同图之间的类似元件或组件可通过使用类似数字而识别。如将了解,可添加、交换及/或消除本文中的各种实施例中所展示的元件以便提供本发明的若干个额外实施例。另外,各图中所提供的元件的比例及相对尺度打算图解说明本发明的各种实施例且并不在限制意义上使用。
图1是根据本发明的一或多个实施例的包含呈若干个存储器系统104-1…104-N的形式的设备的计算系统100的功能框图。如本文中所使用,举例来说,“设备”可是指但不限于多种结构或结构组合(例如一或若干电路、一或若干裸片、一或若干模块、一或若干装置或者一或若干系统)中的任一者。在图1中所图解说明的实施例中,存储器系统104-1…104-N可包含一或多个双列直插式存储器模块(DIMM)110-1、…、110-X、110-Y。DIMM 110-1、…、110-X、110-Y可包含易失性存储器及/或非易失性存储器。在若干个实施例中,存储器系统104-1、…、104-N可包含多芯片装置。多芯片装置可包含若干个不同存储器类型及/或存储器模块。举例来说,存储器系统可在任何类型的模块上包含非易失性或易失性存储器。下文与图1到4相关联地描述的实例使用DIMM作为存储器模块,但本发明的协议可用于其中存储器可执行非确定性命令的任何存储器系统上。在图1中,经由信道112-1耦合到主机的存储器系统104-1可包含DIMM 110-1、…、110-X,其中DIMM 110-1是NVDIMM且110-X是DRAMDIMM。在此实例中,每一DIMM 110-1、…、110-X、110-Y包含控制器114。控制器114可从主机102接收命令且控制命令在DIMM上的执行。而且,在若干个实施例中,本发明的协议可由不具有控制器的存储器装置(例如,DIMM)实施,且使用本发明的协议对命令的执行可被构建到存储器装置中。主机102可使用本发明的协议及/或先前协议将命令发送到DIMM 110-1、…、110-X、110-Y,这取决于DIMM中的存储器的类型。举例来说,主机可使用本发明的协议来在相同信道(例如,信道112-1)上与NVDIMM进行通信且使用先前协议来与DRAM DIMM进行通信,所述NVDIMM与所述DRAM DIMM两者在相同存储器系统上。主机及NVDIMM可根据本发明的协议而经由读取就绪(R_RDY)信号、读取发送(R_SEND)信号、写入信用递增(WC_INC)信号及读取识别(RID)信号进行通信。读取就绪(R_RDY)信号、读取发送(R_SEND)信号、写入信用递增(WC_INC)信号及读取识别(RID)信号可经由先前协议(例如,DDR4)中未使用的引脚或来自先前协议(例如,DDR4)的经重新目的化(例如,以不同方式使用)使得本协议与先前协议兼容的引脚被发送。而且,引脚可在正被开发的协议(例如,DDR5)中被指派到读取就绪(R_RDY)信号、读取发送(R_SEND)信号、写入信用递增(WC_INC)信号及读取识别(RID)信号。
如图1中所图解说明,主机102可耦合到存储器系统104-1…104-N。在若干个实施例中,每一存储器系统104-1…104-N可经由信道耦合到主机102。在图1中,存储器系统104-1经由信道112-1耦合到主机102且存储器系统104-N经由信道112-N耦合到主机102。主机102可为膝上型计算机、个人计算机、数码相机、数字记录及回放装置、移动电话、PDA、存储器卡读取器、接口集线器以及其它主机系统,且可包含存储器存取装置(例如,处理器)。所属领域的一般技术人员将了解,“一处理器”可意指一或多个处理器,例如并行处理系统、若干个共处理器等。
主机102包含主机控制器108以与存储器系统104-1…104-N通信。主机控制器108经由信道112-1…112-N将命令发送到DIMM 110-1、…、110-X、110-Y。主机控制器108可与DIMM 110-1、…、110-X、110-Y及/或DIMM 110-1、…、110-X、110-Y中的每一者上的控制器114通信以读取、写入及擦除数据以及进行其它操作。物理主机接口可提供用于在存储器系统104-1…104-N与具有用于物理主机接口的兼容接受器的主机102之间传递控制、地址、数据及其它信号的接口。信号可经由信道112-1…112-N在若干个总线上(例如,数据总线及/或地址总线)于102与DIMM 110-1、…、110-X、110-Y之间传递。
主机控制器108及/或DIMM上的控制器114可包含控制电路,例如硬件、固件及/或软件。在一或多个实施例中,主机控制器108及/或控制器114可为耦合到包含物理接口的印刷电路板的专用集成电路(ASIC)。同样,每一DIMM 110-1、…、110-X、110-Y可包含易失性及/或非易失性存储器的缓冲器116。缓冲器116可用于缓冲在读取命令及/或写入命令的执行期间使用的数据。缓冲器116可被分裂成写入缓冲器及读取缓冲器。专用于写入缓冲器的空间量及专用于读取缓冲器的空间量可由主机控制器108控制。主机可基于被发送到特定DIMM的命令的类型而控制缓冲器116中专用于写入缓冲器及读取缓冲器的空间量。在若干个实施例中,DIMM可具有固定写入缓冲器大小及/或固定读取缓冲器大小。
DIMM 110-1、…、110-X、110-Y可对存储器系统提供主要存储器或者可用作整个存储器系统的额外存储器或存储装置。每一DIMM 110-1、…、110-X、110-Y可包含存储器单元(例如,非易失性存储器单元)的一或多个阵列。举例来说,所述阵列可为具有NAND架构的快闪阵列。实施例不限于特定类型的存储器装置。举例来说,存储器装置可包含RAM、ROM、DRAM、SDRAM、PCRAM、RRAM及快闪存储器以及其它存储器。
图1的实施例可包含为不使本发明的实施例模糊而未加以图解说明的额外电路。举例来说,存储器系统104-1…104-N可包含用以锁存通过I/O电路经由I/O连接提供的地址信号的地址电路。可由行解码器及列解码器来接收并解码地址信号以存取存储器装置110-1、…、110-N。所属领域的技术人员将了解,地址输入连接的数目可取决于DIMM 110-1、…、110-X、110-Y的密度及架构。
图2A到2B是根据本发明的若干个实施例的若干个读取操作的图式。主机与NVDIMM可经由命令222、DQ+ECC引脚224、读取就绪(R_RDY)信号228、读取发送(R_SEND)信号230、写入信用递增(WC_INC)信号232及读取识别(RID)信号226通信。图2A图解说明执行两个读取操作的实例。命令信号222可从主机被发送到NVDIMM。命令信号可包含激活命令及读取命令。在图2A中,第一激活命令242-1、第一读取命令244-1、第二激活命令242-2及第二读取命令244-2从主机被发送到NVDIMM。在本发明的协议中,可在不考虑时序参数的情况下一个接一个地发送读取命令。这允许命令比由于时钟时序参数而必须使命令间隔开快地被发送,因此NVDIMM可较快地开始处理命令,此可减小命令的延时。
在若干个实施例中,当发送由读取命令或写入命令链接及/或紧接的激活命令时,可在激活命令与读取或写入命令之间存在额外冗余位,所述额外冗余位可经重新目的化以用于对命令的额外寻址。由于非易失性存储器通常具有比DRAM多的容量,因此可期望具有对命令的额外寻址。读取或写入命令中的对于激活命令中的位是冗余的位可用于对读取或写入命令提供额外行(页)寻址及/或额外列寻址。
在图2A中,一旦NVDIMM已接收到读取命令244-1及244-2,NVDIMM便可检查NVDIMM的缓冲器及/或高速缓冲存储器以及NVDIMM的非易失性存储器以定位与读取命令244-1及244-2相关联的数据。一旦控制器定位数据且将数据准备好发送回到主机,NVDIMM控制器便可将读取就绪命令发送到主机。当NVDIMM接收到若干个读取命令时,NVDIMM控制器不必以NVDIMM接收读取命令的次序来对读取命令做出响应。举例来说,如果NVDIMM控制器在其定位与在命令之前被接收的另一命令相关联的数据之前,定位与所述命令相关联的数据,那么NVDIMM可发送指示与所述命令相关联的数据准备好被发送到主机的读取就绪命令而不必等待NVDIMM控制器定位与所述另一命令相关联的数据。当与读取命令相关联的数据定位于缓冲器中时,可针对读取命令中的一些但非所有读取命令而发生对读取命令的无序响应。
在图2A中,可通过将读取就绪信号从低双态切换(例如,转变)到高或从高双态切换(例如,转变)到低而将读取就绪指示符228发送到主机以指示与读取命令244-1相关联的数据准备好被发送到主机。主机可通过检测读取就绪信号的转变而检测读取就绪指示符228。响应于接收到读取就绪指示符228,主机可将读取发送指示符230发送到NVDIMM控制器以指示主机准备好接收与读取命令224-1相关联的数据。读取发送指示符230可由主机在任何时间且在不考虑时序参数的情况下发送到NVDIMM控制器。主机可通过对读取发送命令何时被发送到NVDIMM控制器进行定时而控制数据总线上的业务。读取发送指示符230可包含将读取发送信号从低双态切换到高,此由NVDIMM控制器检测。NVDIMM控制器可响应于接收到读取发送指示符230而在DQ+ECC引脚224上发送与写入命令相关联的数据(V)246-1。在读取数据传送时间周期(tsend)250-1之后发送数据(V)246-1。而且,当数据(V)246-1被发送到主机时,在RID引脚226上将读取识别(RID)信号248-1发送到主机。RID信号248-1用于识别与被发送到主机的数据(V)246-1相关联的读取命令。由于NVDIMM命令能够以与读取命令被接收的次序不同的次序对读取命令做出响应,因此在不具有RID信号的情况下主机将不知晓特定数据传输与哪一读取命令相关联。RID信号可包含n个位,其中n是1或多个位。举例来说,RID信号可在2位RID总线上进行传输。主机可发布的未处理(outstanding)读取的数目可取决于RID信号中的位的数目、数据包中的差拍(beat)的数目及NVDIMM控制器可支持的读取的数目。举例来说,如果数据突发是8个差拍且RID信号是2个位,那么主机可发布的未处理读取的数目是22*8=65,536。而且,NVDIMM可具有可由主机读取以进一步限制主机可发布的未处理读取命令的数目的寄存器且主机可跟踪主机已发布的未处理读取的数目。
在若干个实施例中,可从低到高到低对读取发送信号施加脉冲以指示主机准备好接收数据。经施加脉冲读取发送信号可由主机定时以与在共同信道上被发送到DIMM的其它信号协调,所述其它信号通常以时钟边缘捕获,其中DIMM中的一些DIMM可或可不使用本发明的协议。
响应于接收到读取命令244-2,可通过将读取就绪信号从高双态切换到低而将读取就绪指示符228发送到主机以指示与读取命令244-2相关联的数据准备好被发送到主机。主机可通过检测读取就绪信号从高到低的改变而检测读取就绪指示符228。响应于接收到读取就绪指示符228,主机可将读取发送指示符230发送到NVDIMM控制器以指示主机准备好接收与读取命令224-2相关联的数据。读取发送指示符230可包含将读取发送信号从高双态切换到低,此由NVDIMM控制器检测。NVDIMM控制器可响应于接收到读取发送指示符230而在DQ+ECC引脚224上发送与写入命令相关联的数据(V)246-2。在读取数据传送时间周期(tsend)250-2之后发送数据(V)246-2。而且,当数据(V)246-2被发送到主机时,在RID引脚226上将读取识别(RID)信号248-2发送到主机。RID信号248-2用于识别与被发送到主机的数据(V)246-2相关联的读取命令。在若干个实施例中,由于NVDIMM可以任何次序执行读取命令,因此数据(V)246-2及RID信号248-2可首先响应于读取就绪命令从低到高的双态切换而被发送到主机,且数据(V)246-1及RID信号248-1可稍后响应于读取就绪命令从高到低的双态切换而从主机被发送。
图2B图解说明执行两个读取操作的实例,其中读取操作中的一者包含读取命中且另一读取操作包含读取未命中。读取未命中可指示NVDIMM控制器不能够在NVDIMM的缓冲器中找到与读取命令相关联的数据,且读取命中可指示NVDIMM控制器能够在缓冲器中找到与读取命令相关联的数据。在图2B中,第一激活命令242-1、第一读取命令244-1、第二激活命令242-2及第二读取命令244-2从主机被发送到NVDIMM。
在图2B中,一旦NVDIMM已接收到读取命令244-1及244-2,NVDIMM便可检查NVDIMM的缓冲器及/或高速缓冲存储器以及NVDIMM的非易失性存储器以定位与读取命令244-1及244-2相关联的数据。与读取命令244-1相关联的数据是“读取命中”且定位于NVDIMM的缓冲器中。可通过将读取就绪信号从低双态切换到高而将读取就绪指示符228发送到主机以指示与读取命令244-1相关联的数据准备好被发送到主机。主机可通过检测读取就绪信号从低到高的改变而检测读取就绪指示符228。响应于接收到读取就绪指示符228,主机可将读取发送指示符230发送到NVDIMM控制器以指示主机准备好接收与读取命令224-1相关联的数据。读取发送指示符230可包含将读取发送信号从低双态切换到高,此由NVDIMM控制器检测。NVDIMM控制器可响应于接收到读取发送指示符230而在DQ+ECC引脚224上发送与读取命令相关联的数据(V)246-1。在读取数据传送时间周期(tsend)250-1之后发送数据(V)246-1。而且,当数据(V)246-1被发送到主机时,在RID引脚226上将读取识别(RID)信号248-1发送到主机。RID信号248-1用于识别与被发送到主机的数据(V)246-1相关联的读取命令。
响应于接收到读取命令244-2,NVDIMM可检查NVDIMM的缓冲器及/或高速缓冲存储器以及NVDIMM的非易失性存储器以定位与读取命令244-1及244-2相关联的数据。与读取命令244-2相关联的数据是“读取未命中”且定位于NVDIMM的非易失性存储器中。由于读取命令244-2是“读取未命中”,因此NVDIMM控制器不能够如“读取命中”命令一般快地发送读取就绪命令。在因定位与读取命令244-2相关联的数据所产生的时间周期之后,可通过将读取就绪信号从高双态切换到低而将读取就绪指示符228发送到主机以指示与读取命令244-2相关联的数据准备好被发送到主机。NVDIMM可等待发送读取就绪命令直到与读取命令相关联的数据准备好被发送到主机为止,因为可在不考虑时序参数的情况下发送读取就绪命令。主机可通过检测读取就绪信号从高到低的改变而检测读取就绪指示符228。响应于接收到读取就绪指示符228,主机可将读取发送指示符230发送到NVDIMM控制器以指示主机准备好接收与读取命令224-2相关联的数据。读取发送指示符230可包含将读取发送信号从高双态切换到低,此由NVDIMM控制器检测。NVDIMM控制器可响应于接收到读取发送指示符230而在DQ+ECC引脚224上发送与写入命令相关联的数据(V)246-2。在读取数据传送时间周期(tsend)250-2之后发送数据(V)246-2。而且,当数据(V)246-2被发送到主机时,在RID引脚226上将读取识别(RID)信号248-2发送到主机。RID信号248-2用于识别与被发送到主机的数据(V)246-2相关联的读取命令。在若干个实施例中,可在读取命令中包含优先级(例如,可启用优先级位),这向NVDIMM指示应以优先级执行所述读取命令。NVDIMM可在发送与其它读取命令相关联的数据之前发送与其中被启用优先级位的读取命令相关联的数据。在若干个实施例中,由于NVDIMM可以任何次序执行读取命令,因此数据(V)246-2及RID信号248-2可首先响应于读取就绪命令从低到高的双态切换而被发送到主机且数据(V)246-1及RID信号248-1可稍后响应于读取就绪命令从高到低的双态切换而从主机被发送。
图3是根据本发明的若干个实施例的若干个写入操作的图式。主机与NVDIMM可经由命令322、DQ+ECC引脚324、读取就绪(R_RDY)信号328、读取发送(R_SEND)信号330、写入信用递增(WC_INC)信号332及读取识别(RID)信号326通信。图3图解说明执行两个写入操作的实例。命令信号322可从主机被发送到NVDIMM。命令信号可包含激活命令及写入命令。在图3中,第一激活命令342-1及第一写入命令362-1从主机被发送到NVDIMM。激活命令及写入命令可在其间不具有时序延迟的情况下被发送。
在图3中,一旦主机已发送写入命令362-1,主机便可在写入数据传送时间周期(tsend)352-2之后将与写入命令相关联的数据346-1发送到NVDIMM,其中与写入命令相关联的数据被传送到NVDIMM。在本发明的协议中,可在写入数据传送时间周期之后且在与写入命令相关联的数据正被传送到NVDIMM的同时发送后续写入命令。在图3中,第二激活命令342-2及第二写入命令362-2在写入数据传送时间周期(tsend)350-1之后从主机被发送到NVDIMM。一旦主机已发送写入命令362-2,主机便可在写入数据传送时间周期(tsend)352-2之后将与写入命令362-2相关联的数据346-2发送到NVDIMM。
写入信用递增(WC_INC)指示符332可用于指示与写入命令相关联的写入数据已被写入到NVDIMM。可响应于NVDIMM从写入缓冲器引退写入命令且将与写入命令相关联的数据写入到NVDIMM的高速缓冲存储器及/或非易失性存储器而将写入信用递增指示符332从NVDIMM发送到主机。在其中响应于NVDIMM将与写入命令相关联的数据写入到NVDIMM的非易失性存储器而将写入信用递增信号从NVDIMM发送到主机的实施例中,写入信用递增信号可用于向主机指示数据的持久性(例如,数据被存储于非易失性存储器中)。在其中写入信用递增命令指示数据的持久性的实施例中,写入命令由NVDIMM以写入命令被NVDIMM接收的次序而执行。而且,写入信用递增信号可用作写入缓冲器释放信号。
在其中响应于NVDIMM从写入缓冲器引退写入命令而将写入信用递增命令从NVDIMM发送到主机的实施例中,写入信用递增命令不向主机指示数据的持久性(例如,数据被存储于非易失性存储器中),同时写入命令可由NVDIMM以与写入命令被NVDIMM接收的次序不同的次序而执行。举例来说,与写入命令相关联的数据被存储于缓冲器中且然后以如由NVDIMM控制器确定的次序及时间被写入到NVDIMM的非易失性存储器。
在若干个实施例中,当写入信用递增信号被发送到主机时,写入识别(WID)信号可从NVDIMM被发送到主机。WID信号可用于识别哪些写入命令具有完整执行且可在若干个WID引脚上被发送。WID信号可与指示数据的持久性的写入信用递增信号一起使用以允许NVDIMM以与写入命令被接收的次序不同的次序执行写入命令。
主机可发布的未处理写入命令的数目可取决于NVDIMM上的写入缓冲器的大小。NVDIMM上的写入缓冲器的大小可由主机控制。主机及NVDIMM控制器可跟踪主机可发布的未处理写入命令的数目。当不存在由主机发布的未处理写入命令时,写入计数处于其最大值处。每当写入命令由主机发送到NVDIMM时,主机递减所述主机上的写入计数器,且每当写入命令由NVDIMM从主机接收时,NVDIMM递减所述NVDIMM上的写入计数器。
在若干个实施例中,可使用两个写入信用递增信号来跟踪主机可发布的未处理写入命令的数目。举例来说,WC_INCv信号可响应于写入命令从写入缓冲器被引退(例如,被释放)而进行双态切换且WC_INCnv信号可响应于在非易失性存储器中完成持久性写入而进行双态切换。WC_INCv及WC_INCNV信号可在不同引脚上被发送。与从写入缓冲器被引退(例如,写入缓冲器中用于与写入命令相关联的数据的空间是空余的)的写入命令相关联的WC_INCv信号可以与主机发送写入命令的次序不同的次序被发送到主机。与在非易失性存储器中完成的持久性写入相关联的WC_INCnv信号可以主机发送写入命令的次序被发送到主机。
在图3中,在发送写入命令之前,写入计数处于最大值(WC=Max)360-M处。响应于发送写入命令362-1,主机中的写入计数器递减1(WC=Max-1)360-M-1。响应于发送写入命令362-2,主机中的写入计数器再次递减1(WC=Max-2)360-M-2。NVDIMM也可包含在接收到写入命令后即刻递减的写入计数器。一旦NVDIMM已将与写入命令362-1相关联的数据346-1写入到NVDIMM的缓冲器及/或非易失性存储器,便可将写入计数递增指示符332发送到主机。写入信用递增指示符332可将写入信用递增信号从低双态切换到高以指示与写入命令362-1相关联的数据已被写入到NVDIMM。主机可通过检测写入信用递增信号从低到高的改变而检测写入计数递增指示符332。响应于接收到写入信用递增指示符332,主机可将所述主机中的写入计数器递增1(WC=Max-1)360-M-1。一旦NVDIMM已将与写入命令362-2相关联的数据346-2写入到NVDIMM的缓冲器及/或非易失性存储器,便可将写入计数递增指示符332发送到主机。写入信用递增指示符332可将读取就绪信号从高双态切换到低以指示与写入命令362-2相关联的数据已被写入到NVDIMM。主机可通过检测写入信用递增信号从高到低的改变而检测写入计数递增指示符332。响应于接收到写入信用递增指示符332,主机可将所述主机中的写入计数器递增1(WC=Max)360-M。NVDIMM也可包含在发送写入信用递增命令后即刻递增的写入计数器。
图4是根据本发明的若干个实施例的若干个读取及写入操作的图式。图4图解说明执行两个读取操作及一写入操作的实例。在图4中,第一激活命令442-1、第一读取命令444-1、第二激活命令442-2及第二读取命令444-2、第三激活命令442-3以及第一写入命令462-1从主机被发送到NVDIMM。在本发明的协议中,可在不考虑时序参数的情况下一个接一个地发送读取命令且写入命令可跟随所述读取命令。这允许命令比由于时钟时序参数而必须使命令间隔开快地被发送,因此NVDIMM可较快地开始处理命令,此可减小命令的延时。
在图4中,一旦主机已发送写入命令462-1,主机便可在写入数据传送时间周期(tsend)452-1之后将与写入命令相关联的数据446-1发送到NVDIMM。响应于发送写入命令462-1,主机中的写入计数器递减1(WC=Max-1)460-M-1。在主机正发送与写入命令462-1相关联的数据446-1的时间期间,NVDIMM可检查NVDIMM的缓冲器及/或高速缓冲存储器以及NVDIMM的非易失性存储器以定位与读取命令444-1及444-2相关联的数据。一旦控制器将与读取命令相关联的数据准备好发送回到主机,NVDIMM控制器便可将读取就绪命令发送到主机。在图4中,可通过将读取就绪信号从低双态切换到高而将读取就绪指示符428发送到主机以指示与读取命令444-1相关联的数据准备好被发送到主机。主机可通过检测读取就绪信号从低到高的改变而检测读取就绪指示符428。响应于接收到读取就绪指示符428,主机可将读取发送指示符430发送到NVDIMM控制器以指示主机准备好接收与读取命令444-1相关联的数据。读取发送指示符430可由主机在由所述主机确定的时间发送到NVDIMM控制器。主机可对读取发送指示符进行定时以避免在数据总线上与写入数据的数据碰撞。读取发送指示符430可包含将读取发送信号从低双态切换到高,此由NVDIMM控制器检测。NVDIMM控制器可响应于接收到读取发送指示符430而在DQ+ECC引脚424上发送与读取命令相关联的数据(V)446-2。在读取数据传送时间周期(tsend)450-1之后发送数据(V)446-2。而且,当数据(V)446-2被发送到主机时,在RID引脚426上将读取识别(RID)信号448-1发送到主机。RID信号448-1用于识别与被发送到主机的数据(V)446-2相关联的读取命令。
而且,一旦控制器将与读取命令444-2相关联的数据准备好发送回到主机,NVDIMM控制器便可将读取就绪命令发送到主机。可通过将读取就绪信号从高双态切换到低而将读取就绪指示符428发送到主机以指示与读取命令444-2相关联的数据446-3准备好被发送到主机。主机可通过检测读取就绪信号从高到低的改变而检测读取就绪指示符428。响应于接收到读取就绪指示符428,主机可将读取发送指示符430发送到NVDIMM控制器以指示主机准备好接收与读取命令444-2相关联的数据446-3。读取发送指示符430可包含将读取发送信号从高双态切换到低,此由NVDIMM控制器检测。NVDIMM控制器可响应于接收到读取发送指示符430而在DQ+ECC引脚424上发送与读取命令444-2相关联的数据446-3。在读取数据传送时间周期(tsend)450-2之后发送数据446-3。而且,当数据(V)446-3被发送到主机时,在RID引脚426上将读取识别(RID)信号448-2发送到主机。RID信号448-2用于识别与被发送到主机的数据(V)446-3相关联的读取命令。
在图4中,NVDIMM可通过执行读取命令444-1及444-2而继续,同时通过将数据446-1写入到NVDIMM上的写入缓冲器及/或NVDIMM的非易失性存储器而完成对写入命令462-1的执行。一旦NVDIMM已将与写入命令462-1相关联的数据446-1写入到NVDIMM的缓冲器、高速缓冲存储器及/或非易失性存储器,便可将写入计数递增指示符432发送到主机。写入信用递增指示符432可将写入信用递增信号从低双态切换到高以指示与写入命令462-1相关联的数据已被写入到NVDIMM。主机可通过检测写入信用递增信号从低到高的改变而检测写入计数递增指示符432。响应于接收到写入信用递增指示符432,主机可将所述主机中的写入计数器递增1(WC=Max)460-M。
在若干个实施例中,可将若干个读取及写入命令发送到NVDIMM。可以由NVDIMM及主机控制的次序及时序执行所述若干个读取及写入命令。
尽管本文中已图解说明及描述了特定实施例,但所属领域的技术人员将了解,经计算以实现相同结果的布置可替代所展示的特定实施例。本发明打算涵盖本揭示内容的各种实施例的更改或变化形式。应理解,以上描述是以说明性方式而非限制性方式做出的。在审阅以上描述后,所属领域的技术人员将明了以上实施例的组合及本文中未具体描述的其它实施例。本发明的各种实施例的范围包含其中使用以上结构及方法的其它应用。因此,本发明的各种实施例的范围应参考所附权利要求书连同此权利要求书被授权的等效物的全部范围来确定。
在前述实施方式中,出于简化本发明的目的,将各种特征一起集合于单个实施例中。本发明的此方法不应解释为反映本发明的所揭示实施例必须使用比明确陈述于每一权利要求中更多的特征的意图。而是,如所附权利要求书反映:发明性标的物在于少于单个所揭示实施例的所有特征。因此,特此将所附权利要求书并入到实施方式中,其中每一权利要求独立地作为单独实施例。
Claims (19)
1.一种设备,其包括:
存储器装置;及
控制器,其耦合到所述存储器装置,经配置以:
根据协议基于从主机接收的命令而对所述存储器装置执行操作,其中所述协议包含所述操作的非确定性时序,其中所述控制器响应于从所述主机接收所述命令以及通过在所述存储器装置中定位数据将与所述命令相关联的数据准备好发送到所述主机而开始执行所述操作并且发送读取就绪命令,并且其中所述主机响应于接收所述读取就绪命令而向所述控制器发送读取发送信号。
2.根据权利要求1所述的设备,其中所述存储器装置是非易失性双列直插式存储器模块NVDIMM装置。
3.根据权利要求1所述的设备,其中所述协议提供所述主机对所述存储器装置的直接存取。
4.根据权利要求1所述的设备,其中所述协议包含所述存储器装置以与所述命令由所述存储器装置接收的次序不同的次序执行操作。
5.根据权利要求1所述的设备,其中从所述主机接收的所述命令包含两个或多于两个命令,所述两个或多于两个命令是在所述命令之间不具有时序延迟的情况下发送。
6.根据权利要求1所述的设备,其中所述控制器包含写入缓冲器和读取缓冲器。
7.一种设备,其包括:
存储器装置;及
控制器,其耦合到所述存储器装置,经配置以:
从主机接收第一读取命令;
响应于所述控制器通过在所述存储器装置中定位数据将与所述第一读取命令相关联的数据准备好发送到所述主机而开始执行所述第一读取命令并且将第一读取就绪信号发送到所述主机;
响应于所述主机从所述控制器接收到所述第一读取就绪信号而从所述主机接收第一读取发送信号,其中所述主机可在所述主机准备好接收与所述第一读取命令相关联的所述数据的任何时间发送所述第一读取发送信号;及
响应于接收到所述第一读取发送信号而在数据总线上将与所述第一读取命令相关联的所述数据及第一读取识别RID信号发送到所述主机。
8.根据权利要求7所述的设备,其中所述控制器经配置以:从所述主机接收第二读取命令,且响应于所述控制器将与所述第二读取命令相关联的数据准备好发送到所述主机而将第二读取就绪信号发送到所述主机。
9.根据权利要求8所述的设备,其中在将所述第一读取就绪信号发送到所述主机之前将所述第二读取就绪信号发送到所述主机。
10.根据权利要求8所述的设备,其中所述控制器经配置以在所述第一读取命令和所述第二读取命令之间不具有时序延迟的情况下接收所述第一读取命令和所述第二读取命令。
11.根据权利要求8所述的设备,其中所述控制器经配置以:响应于所述主机从所述控制器接收到所述第二读取就绪信号而从所述主机接收第二读取发送信号,且响应于接收到所述第二读取发送信号而在所述数据总线上将与所述第二读取命令相关联的所述数据及第二RID信号发送到所述主机。
12.根据权利要求11所述的设备,其中所述主机可发送所述第一读取发送信号及所述第二读取发送信号以控制所述数据总线上的数据业务。
13.根据权利要求11所述的设备,其中在所述主机已接收到与另一命令相关联的数据之后,所述主机可发送所述第一读取发送信号及所述第二读取发送信号,所述另一命令是在所述第一读取命令及所述第二读取命令被所述主机发送到所述控制器之后由所述主机发送到另一存储器装置。
14.一种方法,其包括:
将激活命令及读取命令从主机发送到存储器装置;
响应于所述存储器装置通过在所述存储器装置中定位数据将与所述读取命令相关联的数据准备好发送到所述主机而开始执行所述激活命令和所述读取命令并且将读取就绪信号从所述存储器装置发送到所述主机;
响应于从所述存储器装置接收到所述读取就绪信号而将读取发送信号从所述主机发送到所述存储器装置;及
响应于从所述主机接收到所述读取发送信号而将与所述读取命令相关联的所述数据从所述存储器装置发送到所述主机。
15.根据权利要求14所述的方法,其中所述方法包含在由存储器控制器确定的时间发送所述读取就绪信号。
16.根据权利要求14所述的方法,其中所述方法包含在由所述主机确定的时间发送所述读取发送信号。
17.根据权利要求14所述的方法,其中所述方法包含将若干个额外激活命令及若干个额外读取命令发送到所述存储器装置,其中在所述激活命令及所述读取命令与所述若干个额外激活命令及所述若干个额外读取命令之间不具有时序延迟。
18.根据权利要求14所述的方法,其中从所述存储器装置接收所述读取就绪信号包含所述主机检测所述读取就绪信号的双态切换。
19.根据权利要求14所述的方法,其中从所述主机接收所述读取发送信号包含所述存储器装置检测所述读取发送信号的双态切换。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011457227.0A CN112463070A (zh) | 2016-05-05 | 2017-04-27 | 非确定性存储器协议 |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662332370P | 2016-05-05 | 2016-05-05 | |
US62/332,370 | 2016-05-05 | ||
US15/157,213 US10152237B2 (en) | 2016-05-05 | 2016-05-17 | Non-deterministic memory protocol |
US15/157,213 | 2016-05-17 | ||
PCT/US2017/029780 WO2017192346A1 (en) | 2016-05-05 | 2017-04-27 | Non-deterministic memory protocol |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011457227.0A Division CN112463070A (zh) | 2016-05-05 | 2017-04-27 | 非确定性存储器协议 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109074333A CN109074333A (zh) | 2018-12-21 |
CN109074333B true CN109074333B (zh) | 2021-01-01 |
Family
ID=60203215
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780026941.4A Active CN109074333B (zh) | 2016-05-05 | 2017-04-27 | 非确定性存储器协议 |
CN202011457227.0A Pending CN112463070A (zh) | 2016-05-05 | 2017-04-27 | 非确定性存储器协议 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011457227.0A Pending CN112463070A (zh) | 2016-05-05 | 2017-04-27 | 非确定性存储器协议 |
Country Status (6)
Country | Link |
---|---|
US (6) | US10152237B2 (zh) |
EP (2) | EP3449378B1 (zh) |
KR (1) | KR101963253B1 (zh) |
CN (2) | CN109074333B (zh) |
TW (2) | TWI779269B (zh) |
WO (1) | WO2017192346A1 (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10810144B2 (en) * | 2016-06-08 | 2020-10-20 | Samsung Electronics Co., Ltd. | System and method for operating a DRR-compatible asynchronous memory module |
KR20180009217A (ko) * | 2016-07-18 | 2018-01-26 | 삼성전자주식회사 | 데이터 저장 장치의 작동 방법과 이를 포함하는 데이터 처리 시스템의 작동 방법 |
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 |
KR20180090124A (ko) * | 2017-02-02 | 2018-08-10 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10628343B2 (en) * | 2017-02-03 | 2020-04-21 | Futurewei Technologies, Inc. | Systems and methods for utilizing DDR4-DRAM chips in hybrid DDR5-DIMMs and for cascading DDR5-DIMMs |
CN109478168B (zh) | 2017-06-23 | 2020-12-04 | 华为技术有限公司 | 内存访问技术及计算机系统 |
US10216685B1 (en) * | 2017-07-19 | 2019-02-26 | Agiga Tech Inc. | Memory modules with nonvolatile storage and rapid, sustained transfer rates |
CN111448543B (zh) * | 2017-12-07 | 2021-10-01 | 华为技术有限公司 | 内存访问技术及计算机系统 |
US11048645B2 (en) * | 2018-02-01 | 2021-06-29 | Samsung Electronics Co., Ltd. | Memory module, operation method therof, and operation method of host |
US10969994B2 (en) * | 2018-08-08 | 2021-04-06 | Micron Technology, Inc. | Throttle response signals from a memory system |
US11409436B2 (en) | 2018-08-08 | 2022-08-09 | Micron Technology, Inc. | Buffer management in memory systems for read and write requests |
US10503438B1 (en) * | 2018-08-24 | 2019-12-10 | Micron Technology, Inc. | Memory sub-system supporting non-deterministic commands |
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 |
US11403035B2 (en) * | 2018-12-19 | 2022-08-02 | Micron Technology, Inc. | Memory module including a controller and interfaces for communicating with a host and another memory module |
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 |
US11199998B2 (en) * | 2019-08-02 | 2021-12-14 | Samsung Electronics Co., Ltd. | Non-volatile dual in-line memory module (NVDIMM) device assisted operations management |
US11210225B2 (en) * | 2019-11-25 | 2021-12-28 | Micron Technology, Inc. | Pre-fetch for memory sub-system with cache where the pre-fetch does not send data and response signal to host |
US11163486B2 (en) * | 2019-11-25 | 2021-11-02 | Micron Technology, Inc. | Memory sub-system-bounded memory function |
US11409468B2 (en) * | 2020-06-03 | 2022-08-09 | Western Digital Technologies, Inc. | Storage system and method for using proactive device timeout information |
CN114064519A (zh) * | 2020-08-03 | 2022-02-18 | 美光科技公司 | 高速缓存的元数据管理 |
Family Cites Families (111)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS561748A (en) | 1979-06-20 | 1981-01-09 | Hitachi Ltd | Production of electromagnetic clutch motor |
JP2761506B2 (ja) * | 1988-07-08 | 1998-06-04 | 株式会社日立製作所 | 主記憶制御装置 |
US5590345A (en) | 1990-11-13 | 1996-12-31 | International Business Machines Corporation | Advanced parallel array processor(APAP) |
JPH0561748A (ja) | 1991-09-02 | 1993-03-12 | Nippon Telegr & Teleph Corp <Ntt> | データベース・アクセスにおける同期確認の自動化方式 |
US5452311A (en) | 1992-10-30 | 1995-09-19 | Intel Corporation | Method and apparatus to improve read reliability in semiconductor memories |
US5574944A (en) | 1993-12-15 | 1996-11-12 | Convex Computer Corporation | System for accessing distributed memory by breaking each accepted access request into series of instructions by using sets of parameters defined as logical channel context |
US5561823A (en) * | 1994-03-14 | 1996-10-01 | Conner Peripherals, Inc. | Monitor system for determining the available capacity of a READ buffer and a WRITE buffer in a disk drive system |
US5915265A (en) | 1995-12-22 | 1999-06-22 | Intel Corporation | Method and apparatus for dynamically allocating and resizing the dedicated memory in a shared memory buffer architecture system |
US5774683A (en) | 1996-10-21 | 1998-06-30 | Advanced Micro Devices, Inc. | Interconnect bus configured to implement multiple transfer protocols |
US5937423A (en) | 1996-12-26 | 1999-08-10 | Intel Corporation | Register interface for flash EEPROM memory arrays |
US6370619B1 (en) | 1998-06-22 | 2002-04-09 | Oracle Corporation | Managing partitioned cache |
US6349363B2 (en) | 1998-12-08 | 2002-02-19 | Intel Corporation | Multi-section cache with different attributes for each section |
US6370614B1 (en) | 1999-01-26 | 2002-04-09 | Motive Power, Inc. | I/O cache with user configurable preload |
EP1215577B1 (en) | 2000-08-21 | 2012-02-22 | Texas Instruments Incorporated | Fault management and recovery based on task-ID |
US6785752B2 (en) * | 2001-03-23 | 2004-08-31 | International Business Machines Corporation | Method for dynamically adjusting buffer utilization ratios in a hard disk drive system |
US6832280B2 (en) | 2001-08-10 | 2004-12-14 | Freescale Semiconductor, Inc. | Data processing system having an adaptive priority controller |
US6738831B2 (en) | 2001-12-12 | 2004-05-18 | Intel Corporation | Command ordering |
US7308524B2 (en) | 2003-01-13 | 2007-12-11 | Silicon Pipe, Inc | Memory chain |
US7058764B2 (en) | 2003-04-14 | 2006-06-06 | Hewlett-Packard Development Company, L.P. | Method of adaptive cache partitioning to increase host I/O performance |
US7139878B2 (en) | 2003-06-20 | 2006-11-21 | Freescale Semiconductor, Inc. | Method and apparatus for dynamic prefetch buffer configuration and replacement |
US7480754B2 (en) | 2003-06-27 | 2009-01-20 | Seagate Technology, Llc | Assignment of queue execution modes using tag values |
US7103803B2 (en) | 2004-01-08 | 2006-09-05 | International Business Machines Corporation | Method for verification of command processing in a computer system design having a multiple priority command queue |
US8082382B2 (en) | 2004-06-04 | 2011-12-20 | Micron Technology, Inc. | Memory device with user configurable density/performance |
US7536506B2 (en) | 2004-06-21 | 2009-05-19 | Dot Hill Systems Corporation | RAID controller using capacitor energy source to flush volatile cache data to non-volatile memory during main power outage |
US7574536B2 (en) | 2005-04-22 | 2009-08-11 | Sun Microsystems, Inc. | Routing direct memory access requests using doorbell addresses |
US7457910B2 (en) | 2005-06-29 | 2008-11-25 | Sandisk Corproation | Method and system for managing partitions in a storage device |
US7469329B2 (en) | 2006-03-30 | 2008-12-23 | International Business Machines Corporation | Methods for dynamically resizing memory pools |
JP4895183B2 (ja) | 2006-07-21 | 2012-03-14 | キヤノン株式会社 | メモリコントローラ |
US7711889B2 (en) | 2006-07-31 | 2010-05-04 | Kabushiki Kaisha Toshiba | Nonvolatile memory system, and data read/write method for nonvolatile memory system |
US8074022B2 (en) * | 2006-09-28 | 2011-12-06 | Virident Systems, Inc. | Programmable heterogeneous memory controllers for main memory with different memory modules |
US20080082750A1 (en) * | 2006-09-28 | 2008-04-03 | Okin Kenneth A | Methods of communicating to, memory modules in a memory channel |
US8051253B2 (en) * | 2006-09-28 | 2011-11-01 | Virident Systems, Inc. | Systems and apparatus with programmable memory control for heterogeneous main memory |
US20090276556A1 (en) | 2006-10-04 | 2009-11-05 | Mediatek Inc. | Memory controller and method for writing a data packet to or reading a data packet from a memory |
US7904644B1 (en) | 2006-11-01 | 2011-03-08 | Marvell International Ltd. | Disk channel system with sector request queue |
US20080162855A1 (en) * | 2006-12-29 | 2008-07-03 | Tessil Thomas | Memory Command Issue Rate Controller |
US20080162735A1 (en) | 2006-12-29 | 2008-07-03 | Doug Voigt | Methods and systems for prioritizing input/outputs to storage devices |
US7596643B2 (en) | 2007-02-07 | 2009-09-29 | Siliconsystems, Inc. | Storage subsystem with configurable buffer |
KR100904758B1 (ko) | 2007-02-08 | 2009-06-29 | 삼성전자주식회사 | 버퍼 메모리를 포함하는 플래쉬 메모리 장치 및 시스템,플래쉬 메모리 장치의 데이터 업데이트 방법 |
US7924521B1 (en) | 2007-04-10 | 2011-04-12 | Marvell International Ltd. | Data wedge format table synchronization |
US7996599B2 (en) | 2007-04-25 | 2011-08-09 | Apple Inc. | Command resequencing in memory operations |
KR100909965B1 (ko) * | 2007-05-23 | 2009-07-29 | 삼성전자주식회사 | 버스를 공유하는 휘발성 메모리 및 불휘발성 메모리를구비하는 반도체 메모리 시스템 및 불휘발성 메모리의 동작제어 방법 |
US8874831B2 (en) | 2007-06-01 | 2014-10-28 | Netlist, Inc. | Flash-DRAM hybrid memory module |
US7899999B2 (en) | 2007-06-27 | 2011-03-01 | Microsoft Corporation | Handling falsely doomed parents of nested transactions |
US8006047B2 (en) | 2007-06-27 | 2011-08-23 | Hitachi Global Storage Technologies Netherlands B.V. | Storage device with write barrier sensitive write commands and write barrier insensitive commands |
US7870351B2 (en) | 2007-11-15 | 2011-01-11 | Micron Technology, Inc. | System, apparatus, and method for modifying the order of memory accesses |
US9513959B2 (en) | 2007-11-21 | 2016-12-06 | Arm Limited | Contention management for a hardware transactional memory |
TW200929237A (en) | 2007-12-21 | 2009-07-01 | Winbond Electronics Corp | Memory architecture and configuration method thereof |
US8856464B2 (en) * | 2008-02-12 | 2014-10-07 | Virident Systems, Inc. | Systems for two-dimensional main memory including memory modules with read-writeable non-volatile memory devices |
US20090327535A1 (en) | 2008-06-30 | 2009-12-31 | Liu Tz-Yi | Adjustable read latency for memory device in page-mode access |
US8332608B2 (en) | 2008-09-19 | 2012-12-11 | Mediatek Inc. | Method of enhancing command executing performance of disc drive |
TW201013400A (en) | 2008-09-22 | 2010-04-01 | Promise Technology Inc | Memory control system, data recovery method and date reading method thereof |
KR101525872B1 (ko) | 2008-11-06 | 2015-06-04 | 삼성전자주식회사 | 반도체 메모리 시스템의 동작 방법 |
WO2010090691A2 (en) | 2009-02-09 | 2010-08-12 | Rambus Inc. | Multiple plane, non-volatile memory with synchronized control |
US7983107B2 (en) | 2009-02-11 | 2011-07-19 | Stec, Inc. | Flash backed DRAM module with a selectable number of flash chips |
US8285917B2 (en) | 2009-03-26 | 2012-10-09 | Scaleo Chip | Apparatus for enhancing flash memory access |
CN101908368A (zh) | 2009-06-04 | 2010-12-08 | 威刚科技(苏州)有限公司 | 电子存储装置及其操作方法 |
US8250332B2 (en) | 2009-06-11 | 2012-08-21 | Qualcomm Incorporated | Partitioned replacement for cache memory |
TWI454906B (zh) | 2009-09-24 | 2014-10-01 | Phison Electronics Corp | 資料讀取方法、快閃記憶體控制器與儲存系統 |
JPWO2011043012A1 (ja) | 2009-10-05 | 2013-02-28 | パナソニック株式会社 | 不揮発性半導体記憶装置、信号処理システム、及び信号処理システムの制御方法、並びに不揮発性半導体記憶装置の書き換え方法 |
JP2011234308A (ja) | 2010-04-30 | 2011-11-17 | Toshiba Corp | 通信装置、この通信装置に搭載されるプログラマブルデバイス及びそのプログラム書き込み制御方法 |
US8499106B2 (en) | 2010-06-24 | 2013-07-30 | Arm Limited | Buffering of a data stream |
US9104583B2 (en) | 2010-06-24 | 2015-08-11 | International Business Machines Corporation | On demand allocation of cache buffer slots |
US9141538B2 (en) | 2010-07-07 | 2015-09-22 | Marvell World Trade Ltd. | Apparatus and method for generating descriptors to transfer data to and from non-volatile semiconductor memory of a storage drive |
US8949502B2 (en) | 2010-11-18 | 2015-02-03 | Nimble Storage, Inc. | PCIe NVRAM card based on NVDIMM |
JP5296041B2 (ja) | 2010-12-15 | 2013-09-25 | 株式会社東芝 | メモリシステムおよびメモリシステムの制御方法 |
EP2656216B1 (en) * | 2010-12-20 | 2018-12-19 | Marvell World Trade Ltd. | Device with descriptor scheduler and corresponding method and system |
US9779020B2 (en) | 2011-02-08 | 2017-10-03 | Diablo Technologies Inc. | System and method for providing an address cache for memory map learning |
JP2012234363A (ja) | 2011-04-28 | 2012-11-29 | Toshiba Corp | メモリシステム |
US8621113B2 (en) * | 2011-05-31 | 2013-12-31 | Micron Technology, Inc. | Apparatus including host bus adapter and serial attachment programming compliant device and related methods |
US8560778B2 (en) | 2011-07-11 | 2013-10-15 | Memory Technologies Llc | Accessing data blocks with pre-fetch information |
US20130019057A1 (en) | 2011-07-15 | 2013-01-17 | Violin Memory, Inc. | Flash disk array and controller |
US8700834B2 (en) | 2011-09-06 | 2014-04-15 | Western Digital Technologies, Inc. | Systems and methods for an enhanced controller architecture in data storage systems |
JP5418719B2 (ja) * | 2011-09-16 | 2014-02-19 | 日本電気株式会社 | ストレージ装置 |
EP2761472B1 (en) * | 2011-09-30 | 2020-04-01 | Intel Corporation | Memory channel that supports near memory and far memory access |
US8799557B1 (en) * | 2011-10-13 | 2014-08-05 | Netapp, Inc. | System and method for non-volatile random access memory emulation |
US8880819B2 (en) | 2011-12-13 | 2014-11-04 | Micron Technology, Inc. | Memory apparatuses, computer systems and methods for ordering memory responses |
KR101366960B1 (ko) | 2011-12-23 | 2014-02-25 | 한양대학교 산학협력단 | 입출력 핀을 이용한 다중 웨이 낸드 플래시 제어 장치 및 방법 |
US9134919B2 (en) | 2012-03-29 | 2015-09-15 | Samsung Electronics Co., Ltd. | Memory device including priority information and method of operating the same |
US9135192B2 (en) | 2012-03-30 | 2015-09-15 | Sandisk Technologies Inc. | Memory system with command queue reordering |
US9128845B2 (en) | 2012-07-30 | 2015-09-08 | Hewlett-Packard Development Company, L.P. | Dynamically partition a volatile memory for a cache and a memory partition |
JP6053384B2 (ja) | 2012-08-08 | 2016-12-27 | キヤノン株式会社 | 情報処理装置、メモリ制御装置およびその制御方法 |
US9122401B2 (en) | 2012-08-23 | 2015-09-01 | Apple Inc. | Efficient enforcement of command execution order in solid state drives |
US9009531B2 (en) * | 2012-12-05 | 2015-04-14 | Intel Corporation | Memory subsystem data bus stress testing |
US9250814B2 (en) * | 2013-02-11 | 2016-02-02 | Apple Inc. | Command order re-sequencing in non-volatile memory |
US8595427B1 (en) | 2013-03-08 | 2013-11-26 | Avalanche Technology, Inc. | Non-volatile block storage module using magnetic random access memory (MRAM) |
US9128634B1 (en) | 2013-03-11 | 2015-09-08 | Marvell International Ltd. | Systems and methods of packed command management for non-volatile storage devices |
US9741442B2 (en) | 2013-03-12 | 2017-08-22 | Sandisk Technologies Llc | System and method of reading data from memory concurrently with sending write data to the memory |
KR101670917B1 (ko) * | 2013-03-15 | 2016-11-01 | 인텔 코포레이션 | 메모리 시스템 |
US20150378886A1 (en) | 2013-04-08 | 2015-12-31 | Avalanche Technology, Inc. | Software-defined ssd and system using the same |
JP6146128B2 (ja) | 2013-05-20 | 2017-06-14 | ヤマハ株式会社 | データ処理装置 |
EP3005128B1 (en) | 2013-05-30 | 2018-07-04 | Hewlett-Packard Enterprise Development LP | Separate memory controllers to access data in memory |
TWI493455B (zh) | 2013-07-02 | 2015-07-21 | Phison Electronics Corp | 命令佇列管理方法、記憶體控制器及記憶體儲存裝置 |
CN105340017A (zh) * | 2013-07-09 | 2016-02-17 | 惠普发展公司,有限责任合伙企业 | 对包括非兼容性存储器技术或与其接合的存储器模块的写入流控制 |
US20150067291A1 (en) | 2013-08-30 | 2015-03-05 | Kabushiki Kaisha Toshiba | Controller, memory system, and method |
JP6388654B2 (ja) | 2013-12-26 | 2018-09-12 | インテル・コーポレーション | メモリアクセス中のデータ並べ替え |
US10108372B2 (en) | 2014-01-27 | 2018-10-23 | Micron Technology, Inc. | Methods and apparatuses for executing a plurality of queued tasks in a memory |
US9323610B2 (en) | 2014-01-30 | 2016-04-26 | Sandisk Technologies Inc. | Non-blocking commands |
US9454310B2 (en) * | 2014-02-14 | 2016-09-27 | Micron Technology, Inc. | Command queuing |
US10191822B2 (en) | 2014-02-20 | 2019-01-29 | Rambus Inc. | High performance persistent memory |
US20150279463A1 (en) | 2014-03-31 | 2015-10-01 | Dell Products, L.P. | Adjustable non-volatile memory regions of dram-based memory module |
KR102249416B1 (ko) | 2014-06-11 | 2021-05-07 | 삼성전자주식회사 | 메모리 시스템 및 메모리 시스템의 구동 방법 |
US9870318B2 (en) | 2014-07-23 | 2018-01-16 | Advanced Micro Devices, Inc. | Technique to improve performance of memory copies and stores |
US9489239B2 (en) | 2014-08-08 | 2016-11-08 | PernixData, Inc. | Systems and methods to manage tiered cache data storage |
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 |
US20160232112A1 (en) | 2015-02-06 | 2016-08-11 | Futurewei Technologies, Inc. | Unified Memory Bus and Method to Operate the Unified Memory Bus |
US10048878B2 (en) * | 2015-06-08 | 2018-08-14 | Samsung Electronics Co., Ltd. | Nonvolatile memory module and storage system having the same |
US20170024297A1 (en) | 2015-07-22 | 2017-01-26 | Kabushiki Kaisha Toshiba | Storage Device and Data Save Method |
US20170160929A1 (en) | 2015-12-02 | 2017-06-08 | Hewlett Packard Enterprise Development Lp | In-order execution of commands received via a networking fabric |
US10613763B2 (en) | 2016-04-21 | 2020-04-07 | Adesto Technologies Corporation | Memory device having multiple read buffers for read latency reduction |
US10534540B2 (en) | 2016-06-06 | 2020-01-14 | Micron Technology, Inc. | Memory protocol |
US10261907B2 (en) | 2017-03-09 | 2019-04-16 | International Business Machines Corporation | Caching data in a redundant array of independent disks (RAID) storage system |
-
2016
- 2016-05-17 US US15/157,213 patent/US10152237B2/en active Active
-
2017
- 2017-04-27 CN CN201780026941.4A patent/CN109074333B/zh active Active
- 2017-04-27 EP EP17793026.0A patent/EP3449378B1/en active Active
- 2017-04-27 KR KR1020187034719A patent/KR101963253B1/ko active IP Right Grant
- 2017-04-27 EP EP20198808.6A patent/EP3779709A3/en not_active Withdrawn
- 2017-04-27 CN CN202011457227.0A patent/CN112463070A/zh active Pending
- 2017-04-27 WO PCT/US2017/029780 patent/WO2017192346A1/en unknown
- 2017-05-05 TW TW109107307A patent/TWI779269B/zh active
- 2017-05-05 TW TW106114938A patent/TWI708180B/zh active
-
2018
- 2018-08-28 US US16/115,004 patent/US10678441B2/en active Active
-
2019
- 2019-12-20 US US16/723,589 patent/US10963164B2/en active Active
-
2021
- 2021-03-25 US US17/212,390 patent/US11422705B2/en active Active
-
2022
- 2022-08-22 US US17/893,118 patent/US11740797B2/en active Active
-
2023
- 2023-08-25 US US18/238,323 patent/US20240126439A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP3779709A2 (en) | 2021-02-17 |
KR101963253B1 (ko) | 2019-03-28 |
TWI708180B (zh) | 2020-10-21 |
US20170322726A1 (en) | 2017-11-09 |
US10152237B2 (en) | 2018-12-11 |
US10963164B2 (en) | 2021-03-30 |
TWI779269B (zh) | 2022-10-01 |
EP3779709A3 (en) | 2021-03-03 |
US10678441B2 (en) | 2020-06-09 |
US20180364910A1 (en) | 2018-12-20 |
WO2017192346A1 (en) | 2017-11-09 |
EP3449378A4 (en) | 2019-04-10 |
TW202036265A (zh) | 2020-10-01 |
EP3449378A1 (en) | 2019-03-06 |
CN112463070A (zh) | 2021-03-09 |
US20210208780A1 (en) | 2021-07-08 |
TW201804312A (zh) | 2018-02-01 |
US20240126439A1 (en) | 2024-04-18 |
US11740797B2 (en) | 2023-08-29 |
CN109074333A (zh) | 2018-12-21 |
KR20180133529A (ko) | 2018-12-14 |
US20200125259A1 (en) | 2020-04-23 |
EP3449378B1 (en) | 2020-11-18 |
US11422705B2 (en) | 2022-08-23 |
US20220398013A1 (en) | 2022-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109074333B (zh) | 非确定性存储器协议 | |
US10534540B2 (en) | Memory protocol | |
US11586566B2 (en) | Memory protocol with command priority | |
EP3610379B1 (en) | Transaction identification | |
US11099779B2 (en) | Addressing in memory with a read identification (RID) number | |
US11226770B2 (en) | Memory protocol | |
US11687283B2 (en) | Memory module interfaces |
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 |