CN110546625A - 具有可编程缓冲器及高速缓冲存储器大小的存储器协议 - Google Patents
具有可编程缓冲器及高速缓冲存储器大小的存储器协议 Download PDFInfo
- Publication number
- CN110546625A CN110546625A CN201880021753.7A CN201880021753A CN110546625A CN 110546625 A CN110546625 A CN 110546625A CN 201880021753 A CN201880021753 A CN 201880021753A CN 110546625 A CN110546625 A CN 110546625A
- Authority
- CN
- China
- Prior art keywords
- memory
- buffer
- cache
- size
- controller
- 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
Links
Classifications
-
- 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
- G06F12/0893—Caches characterised by their organisation or structure
-
- 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
-
- 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/1004—Compatibility, e.g. with legacy hardware
-
- 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/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
-
- 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/60—Details of cache memory
- G06F2212/601—Reconfiguration of cache memory
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Human Computer Interaction (AREA)
Abstract
本发明包含与具有可编程缓冲器及高速缓冲存储器大小的存储器协议有关的设备及方法。一种实例性设备可:编程电阻器以界定存储器中的缓冲器的大小;将数据存储于所述存储器的第一部分中的所述缓冲器中,所述缓冲器由所述寄存器界定;及将数据存储于所述存储器的第二部分中的高速缓冲存储器中。
Description
技术领域
本发明一般来说涉及存储器装置,且更特定来说,涉及用于具有可编程缓冲器及高速缓冲存储器大小的存储器协议的设备及方法。
背景技术
存储器装置通常经提供为计算机或其它电子装置中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性及非易失性存储器。易失性存储器可需要电力来维持其数据且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)以及其它易失性存储器。非易失性存储器可通过在未被供电时保留所存储数据而提供持久的数据,且可包含NAND快闪存储器、NOR快闪存储器、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、可擦除可编程ROM(EPROM)及电阻可变存储器,例如相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM)及磁阻式随机存取存储器(MRAM)以及其它非易失性存储器。
存储器还作为易失性及非易失性数据存储装置以用于宽广范围的电子应用。举例来说,非易失性存储器可用于个人计算机、便携式记忆棒、数码相机、蜂窝式电话、例如MP3播放器的便携式音乐播放器、电影播放器及其它电子设备中。存储器单元可被布置成若干阵列,其中所述阵列用于存储器装置中。
存储器可为用于计算装置中的存储器模块(例如,双列直插式存储器模块(DIMM))的一部分。存储器模块可包含易失性存储器(举例来说,例如DRAM)及/或非易失性存储器(举例来说,例如快闪存储器或RRAM)。DIMM可在计算系统中使用主要存储器。
附图说明
图1A是根据本发明的若干个实施例的呈包含存储器系统的计算系统的形式的设备的框图。
图1B到1D是根据本发明的若干个实施例的呈双列直插式存储器模块(DIMM)的形式的设备的框图。
图2A到2B是根据本发明的若干个实施例的缓冲器/高速缓冲存储器的图式。
图3是根据本发明的若干个实施例的一定数目个寄存器的图式。
具体实施方式
本发明包含与具有可编程缓冲器及高速缓冲存储器大小的存储器协议有关的设备及方法。实例性设备可:编程寄存器以界定存储器中的缓冲器的大小;将数据存储于所述存储器的第一部分中的所述缓冲器中,所述缓冲器由所述寄存器界定;及将数据存储于所述存储器的第二部分中的高速缓冲存储器中。
在若干个实施例中,存储器的一部分可实施为非易失性双列直插式存储器模块(NVDIMM)装置的缓冲器/高速缓冲存储器。实施为缓冲器/高速缓冲存储器的存储器可位于控制器上及/或可位于耦合到所述控制器的存储器装置中。NVDIMM装置的存储器装置可包含易失性存储器阵列(例如,DRAM)及/或非易失性存储器阵列(例如,NAND快闪存储器)。举例来说,位于控制器上的实施为缓冲器/高速缓冲存储器的存储器可为SRAM。举例来说,位于存储器装置中的实施为缓冲器/高速缓冲存储器的存储器可为DRAM存储器阵列。SRAM的一部分可为用于DRAM存储器阵列及/或非易失性存储器阵列的缓冲器/高速缓冲存储器,且DRAM的一部分可为缓冲器/高速缓冲存储器或非易失性存储器阵列。
缓冲器/高速缓冲存储器可包含用作NVDIMM装置的缓冲器的一部分及用作NVDIMM装置的高速缓冲存储器的一部分。存储器的用作缓冲器的部分的大小可由寄存器界定。存储器的用作高速缓冲存储器的部分的大小还可由寄存器及/或由存储器的未用作缓冲器的其余部分界定。寄存器可由主机编程。寄存器还可由NVDIMM控制器编程。寄存器还可经编程以界定用于缓冲器/高速缓冲存储器的存储器密度。界定存储器密度的寄存器可用于确定缓冲器/高速缓冲存储器的总大小。
缓冲器/高速缓冲存储器的用作缓冲器的部分可经配置以存储信号、地址信号(例如,读取及/或写入命令)及/或数据(例如,写入数据)。缓冲器可在执行命令的同时暂时存储信号及/或数据。缓冲器/高速缓冲存储器的用作高速缓冲存储器的部分可经配置以存储数据,所述数据还存储于存储器装置中。存储于高速缓冲存储器及存储器装置中的数据由控制器寻址且可在命令的执行期间位于高速缓冲存储器及/或存储器装置中。
在若干个实施例中,存储器的实施为缓冲器的部分的大小及存储器的实施为高速缓冲存储器的部分的大小可基于如何使用NVDIMM装置。举例来说,如果NVDIMM装置正执行使用缓冲器的较多命令,那么缓冲器的大小可比高速缓冲存储器大。如果存在对如何使用NVDIMM装置的改变,那么可通过编程寄存器以反映所述改变而修改缓冲器及高速缓冲存储器的相对大小。举例来说,如果主机正执行比使用高速缓冲存储器的存储器加载/存储(例如,读取)操作多的使用缓冲器的块/写入操作,那么缓冲器可经配置以在大小上比高速缓冲存储器大。一旦主机装置已将数据写入到NVDIMM装置的存储器阵列,所述主机装置便可接收较多读取命令以存取数据,所述读取命令将使用高速缓冲存储器。可接着通过重新编程寄存器使得高速缓冲存储器可经配置以在大小上比缓冲器大而增加高速缓冲存储器的大小。
在本发明的以下详细说明中,参考形成本发明的一部分的随附图式,且图式中以图解说明的方式展示可如何实践本发明的若干个实施例。充分详细地描述这些实施例以使所属领域的技术人员能够实践本发明的实施例,且应理解,可利用其它实施例且可在不背离本发明的范围的情况下做出过程、电及/或结构改变。如本文中所使用,指定符“N”指示,如此指定的特定特征中的一定数目个特征可与本发明的若干个实施例包含在一起。
如本文中所使用,“一定数目个”某物可能是指此类事物中的一或多者。举例来说,一定数目个存储器装置可能是指存储器装置中的一或多者。另外,如本文中所使用的例如“N”的指定符(尤其相对于图式中的元件符号)指示如此指定的特定特征中的一定数目个特征可与本发明的若干个实施例包含在一起。
本文中的各图遵循其中第一个数字或前几个数字对应于图式的图编号且其余数字识别图式中的元件或组件的编号惯例。可通过使用类似数字来识别不同图之间的类似元件或组件。如将了解,可添加、交换及/或消除本文中的各种实施例中所展示的元件以便提供本发明的若干个额外实施例。另外,各图中所提供的元件的比例及相对标度打算图解说明本发明的各种实施例且并不在限制意义上使用。
图1A是根据本发明的一或多个实施例的包含呈一定数目个存储器系统104-1…104-N的形式的设备的计算系统100的功能框图。如本文中所使用,“设备”可能是指但不限于各种结构或结构组合中的任一者,举例来说,例如电路或电路系统、一或若干裸片、一或若干模块、一或若干装置或者一或若干系统。在图1A中所图解说明的实施例中,存储器系统104-1…104-N可包含一或多个模块,例如双列直插式存储器模块(DIMM)110-1、…、110-X、110-Y。DIMM 110-1、…、110-X、110-Y可包含易失性存储器及/或非易失性存储器。在若干个实施例中,存储器系统104-1、…、104-N可包含多芯片装置。多芯片装置可包含一定数目个不同存储器类型及/或存储器模块。举例来说,存储器系统可包含一定数目个芯片,所述一定数目个芯片在任何类型的模块上具有非易失性或易失性存储器。下文与图1A到3相关联地描述的实例使用DIMM作为存储器模块,但本发明的协议可用于其中存储器可执行非确定性命令的任何存储器系统上。在图1A中,存储器系统104-1经由通道112-1耦合到主机,可包含DIMM 110-1、…、110-X,其中DIMM 110-1为NVDIMM且110-X为DRAM DIMM。在此实例中,每一DIMM 110-1、…、110-X、110-Y包含控制器114。控制器114可从主机102接收命令且控制命令在DIMM上的执行。而且,在若干个实施例中,本发明的协议可由不具有控制器的存储器装置(例如,DIMM)实施且使用本发明的协议对命令的执行可被构建到存储器装置中。取决于DIMM中的存储器的类型,主机102可使用本发明的协议及/或现有协议将命令发送到DIMM110-1、…、110-X、110-Y。举例来说,主机可使用本发明的协议来在同一通道(例如,通道112-1)上与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)信号。
如图1A中所图解说明,主机102可耦合到存储器系统104-1…104-N。在若干个实施例中,每一存储器系统104-1…104-N可经由通道耦合到主机102。在图1A中,存储器系统104-1经由通道112-1耦合到主机102且存储器系统104-N经由通道112-N耦合到主机102。主机102可为膝上型计算机、个人计算机、数码相机、数字记录及回放装置、移动电话、PDA、存储卡读取器、接口集线器以及其它主机系统,且可包含存储器存取装置(例如,处理器)。所属领域的技术人员将了解,“处理器”可意指一或多个处理器,例如并行处理系统、一定数目个协处理器等。
主机102包含用以与存储器系统104-1…104-N进行通信的主机控制器108。主机控制器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与DIMM110-1、…、110-X、110-Y之间被传递。
主机控制器108及/或DIMM上的控制器114可包含控制电路系统,例如硬件、固件及/或软件。在一或多个实施例中,主机控制器108及/或控制器114可为耦合到包含物理接口的印刷电路板的专用集成电路(ASIC)。而且,每一DIMM 110-1、…、110-X、110-Y可包含易失性及/或非易失性存储器的缓冲器/高速缓冲存储器116以及寄存器118。缓冲器/高速缓冲存储器116可用于缓冲及/或高速缓存在读取命令及/或写入命令的执行期间使用的数据。缓冲器/高速缓冲存储器116可被分裂成可为缓冲器的第一部分及可为高速缓冲存储器的第二部分。专用于缓冲器的空间量(例如,大小)及/或专用于高速缓冲存储器的空间量可由主机控制器108经由寄存器118来控制。主机可基于DIMM中的存储器的密度、缓冲器中的所要条目的数目及/或被发送到特定DIMM的命令的类型而控制缓冲器/高速缓冲存储器116中专用于缓冲器及/或高速缓冲存储器的空间量。在若干个实施例中,DIMM可具有固定缓冲器大小及/或固定高速缓冲存储器大小。寄存器118可以用于确定缓冲器的大小及高速缓冲存储器的大小的媒体密度信息及/或缓冲器大小信息进行编程。
缓冲器/高速缓冲存储器116的用作缓冲器的部分可经配置以存储信号、地址信号(例如,读取及/或写入命令)及/或数据(例如,写入数据)。缓冲器可在执行命令的同时暂时存储信号及/或数据。缓冲器/高速缓冲存储器116的用作高速缓冲存储器的部分可经配置以存储数据,所述数据还存储于存储器装置中。存储于高速缓冲存储器及存储器装置中的数据由控制器寻址且可在命令的执行期间位于高速缓冲存储器及/或存储器装置中。
DIMM 110-1、…、110-X、110-Y可为存储器系统提供主要存储器或者可用作遍及存储器系统的额外存储器或存储装置。每一DIMM 110-1、…、110-X、110-Y可包含存储器单元(例如,非易失性存储器单元)的一或多个阵列。举例来说,所述阵列可为具有NAND架构的快闪阵列。实施例并不限于特定类型的存储器装置。举例来说,存储器装置可包含RAM、ROM、DRAM、SDRAM、PCRAM、RRAM及快闪存储器以及其它存储器。
图1A的实施例可包含为不使本发明的实施例模糊而未加以图解说明的额外电路系统。举例来说,存储器系统104-1…104-N可包含用以锁存通过I/O电路系统经由I/O连接提供的地址信号的地址电路系统。地址信号可由行解码器及列解码器接收及解码以存取DIMM 110-1、…、110-X、110-Y。所属领域的技术人员将了解,地址输入连接的数目可取决于DIMM 110-1、…、110-X、110-Y的密度及架构。
图1B到1D是根据本发明的若干个实施例的呈双列直插式存储器模块(DIMM)的形式的设备的框图。图1是根据本发明的若干个实施例的呈双列直插式存储器模块(DIMM)110的形式的设备的框图。在图1B中,DIMM 110可包含控制器114。控制器114可包含可为缓冲器/高速缓冲存储器116的存储器(例如SRAM存储器)及/或一定数目个寄存器118。DIMM 110可包含耦合到控制器的一定数目个存储器装置113-1、…、113-Z。存储器装置113-1、…、113-Z可包含非易失性存储器阵列及/或易失性存储器阵列。
存储器装置113-1、…、113-Z可包含可用于执行存储器装置113-1、…、113-Z上的命令的控制电路系统117(例如,硬件、固件及/或软件)。控制电路系统117可从控制器114接收命令。控制电路系统117可经配置以执行命令以读取存储器装置113-1、…、113-Z中的数据及/或将数据写入于存储器装置113-1、…、113-Z中。
缓冲器/高速缓冲存储器116可包含用作NVDIMM装置110的缓冲器的一部分及用作NVDIMM装置110的高速缓冲存储器的一部分。存储器的用作缓冲器的部分的大小可由寄存器118界定。存储器的用作高速缓冲存储器的部分的大小还可由寄存器118及/或由存储器的未用作缓冲器的其余部分界定。寄存器118还可经编程以界定用于缓冲器/高速缓冲存储器116的存储器密度。界定存储器密度的寄存器118可用于确定缓冲器/高速缓冲存储器116的总大小。
图1C是根据本发明的若干个实施例的呈双列直插式存储器模块(DIMM)110的形式的设备的框图。在图1C中,DIMM 110可包含控制器114。控制器114可包含可为缓冲器/高速缓冲存储器116的存储器(例如SRAM存储器)及/或一定数目个寄存器118。DIMM 110可包含耦合到控制器的一定数目个存储器装置113-1、…、113-Z。存储器装置113-1、…、113-Z可包含非易失性存储器阵列及/或易失性存储器阵列。包含易失性存储器(例如DRAM)的存储器装置113-1、…、113-3可用作缓冲器/高速缓冲存储器116。存储器装置113-1、…、113-Z可包含可用于执行存储器装置113-1、…、113-Z上的命令的控制电路系统117(例如,硬件、固件及/或软件)。控制电路系统117可从控制器114接收命令。控制电路系统117可经配置以执行命令以读取存储器装置113-1、…、113-Z中的数据及/或将数据写入于存储器装置113-1、…、113-Z中。在若干个实施例中,在缓冲器/高速缓冲存储器116位于存储器装置113-1、…、113-3中的情况下,缓冲器/高速缓冲存储器116可用作用于被引导到存储器装置113-1、…、113-Z的命令的缓冲器/高速缓冲存储器。在若干个实施例中,在缓冲器/高速缓冲存储器116位于存储器装置113-1、…、113-3中的情况下,缓冲器/高速缓冲存储器116可用作用于被引导到存储器装置113-1、…、113-Z的命令的缓冲器/高速缓冲存储器。举例来说,可使用存储器装置113-1上的缓冲器/高速缓冲存储器116执行被朝向存储器装置113-Z引导的命令。举例来说,可在不使用控制器114上的缓冲器/高速缓冲存储器116的情况下执行命令。而且,存储于存储器装置113-Z中的数据还可被高速缓存于存储器装置113-1上的缓冲器/高速缓冲存储器116中。因此,当经由读取操作存取存储于存储器装置113-Z中的被高速缓存于存储器装置113-1上的缓冲器高速缓冲存储器116上的数据时,可通过从高速缓冲存储器116获得数据而对存储器装置113-1执行读取操作且不对存储器装置113-Z执行读取操作。
缓冲器/高速缓冲存储器116可包含用作NVDIMM装置110的缓冲器的一部分及用作NVDIMM装置110的高速缓冲存储器的一部分。存储器的用作缓冲器的部分的大小可由寄存器118界定。存储器的用作高速缓冲存储器的部分的大小还可由寄存器118及/或由存储器的未用作缓冲器的其余部分界定。寄存器118还可经编程以界定用于缓冲器/高速缓冲存储器116的存储器密度。界定存储器密度的寄存器118可用于确定缓冲器/高速缓冲存储器116的总大小。
图1D是根据本发明的若干个实施例的呈双列直插式存储器模块(DIMM)110的形式的设备的框图。在图1D中,DIMM 110可包含控制器114。控制器114可包含可为缓冲器/高速缓冲存储器116的存储器(例如SRAM存储器)及/或一定数目个寄存器118。DIMM 110可包含耦合到控制器的一定数目个存储器装置113-1、…、113-Z。存储器装置113-1、…、113-Z可包含非易失性存储器阵列及/或易失性存储器阵列。包含易失性存储器(例如DRAM)的存储器装置113-1、…、113-Z可用作缓冲器/高速缓冲存储器116。存储器装置113-1、…、113-Z可包含可用于执行存储器装置113-1、…、113-Z上的命令的控制电路系统117(例如,硬件、固件及/或软件)。控制电路系统117可从控制器114接收命令。控制电路系统117可经配置以执行命令以读取存储器装置113-1、…、113-Z中的数据及/或将数据写入于存储器装置113-1、…、113-Z中。在若干个实施例中,在缓冲器/高速缓冲存储器116位于存储器装置113-1、…、113-Z中的情况下,缓冲器/高速缓冲存储器116可用作用于被引导到存储器装置113-1、…、113-Z的命令的缓冲器/高速缓冲存储器。举例来说,可使用存储器装置113-1上的缓冲器/高速缓冲存储器116执行被朝向存储器装置113-Z引导的命令。举例来说,可在不使用控制器114上的缓冲器/高速缓冲存储器116的情况下执行命令。而且,存储于存储器装置113-Z中的数据还可被高速缓存于存储器装置113-1上的缓冲器/高速缓冲存储器116中。因此,当经由读取操作存取存储于存储器装置113-Z中的被高速缓存于存储器装置113-1上的缓冲器高速缓冲存储器116上的数据时,可通过从高速缓冲存储器116获得数据而对存储器装置113-1执行读取操作且不对存储器装置113-Z执行读取操作。
缓冲器/高速缓冲存储器116可包含用作NVDIMM装置110的缓冲器的一部分及用作NVDIMM装置110的高速缓冲存储器的一部分。存储器的用作缓冲器的部分的大小可由寄存器118界定。存储器的用作高速缓冲存储器的部分的大小还可由寄存器118及/或由存储器的未用作缓冲器的其余部分界定。寄存器118还可经编程以界定用于缓冲器/高速缓冲存储器116的存储器密度。界定存储器密度的寄存器118可用于确定缓冲器/高速缓冲存储器116的总大小。
图2A到2B是根据本发明的若干个实施例的缓冲器/高速缓冲存储器的图式。图2A到2B图解说明根据本发明的若干个实施例的经配置为缓冲器及高速缓冲存储器的存储器。在图2A中,高速缓冲存储器/缓冲器216配置有作为缓冲器219的第一部分及作为高速缓冲存储器217的第二部分。在图2A中,缓冲器219的大小比高速缓冲存储器217大。当DIMM正接收较多命令(在执行所述命令时,其使用缓冲器)(举例来说,例如写入命令、基于块的命令及/或直接存储器存取(DMA)数据移动)时,缓冲器219可比高速缓冲存储器217大。
在若干个实施例中,存储器的实施为缓冲器219的部分的大小及存储器的实施为高速缓冲存储器217的部分的大小可基于由主机发布的使用缓冲器219及/或高速缓冲存储器217的相对数量命令。由主机发布的使用缓冲器219及/或高速缓冲存储器217的相对数量命令可取决于由主机运行的应用程序。举例来说,如果NVDIMM装置正执行使用缓冲器219的较多命令,那么寄存器可经编程,因此缓冲器219的大小可比高速缓冲存储器217大。如果NVDIMM装置正执行使用高速缓冲存储器217多于缓冲器219的操作,那么寄存器可经编程,因此高速缓冲存储器的大小比缓冲器的大小大。寄存器可经编程以响应于缓冲器处于阈值容量(举例来说,例如满的)且高速缓冲存储器是至少部分空的而改变缓冲器的大小。寄存器可经编程以响应于高速缓冲存储器处于阈值容量(举例来说,例如满的)且缓冲器是至少部分空的而改变缓冲器的大小。随着主机改变正运行的应用程序,可改变高速缓冲存储器217及/或缓冲器219的大小。
由寄存器界定的缓冲器219的大小可基于NVDIMM装置的非易失性存储器阵列的块大小。如果主机及/或控制器想要能够存储具有非易失性存储器阵列113的块大小的大小的特定数目个条目(例如,阈值数目个条目),那么缓冲器219的大小基于所要条目的特定数目乘以NVDIMM装置的非易失性存储器阵列的块大小。
在若干个实施例中,寄存器可由主机(例如,图1A中的主机102)及/或由DIMM控制器(例如,图1A中的控制器114)编程以界定缓冲器119及/或高速缓冲存储器117的大小。举例来说,如果缓冲器/高速缓冲存储器216包含16MB的存储器,那么寄存器可经编程以将缓冲器119界定为存储器的85%且将高速缓冲存储器117界定为存储器的其余部分。因此,缓冲器119将包含13.6MB的存储器且高速缓冲存储器117将包含2.4MB的存储器。
在图2B中,高速缓冲存储器/缓冲器216配置有作为缓冲器219的第一部分及作为高速缓冲存储器217的第二部分。在图2B中,缓冲器219的大小比高速缓冲存储器217小。当DIMM正接收较多命令(在执行所述命令时,其使用高速缓冲存储器)(举例来说,例如读取命令及/或具有空间局部性的应用程序)时,缓冲器219可比高速缓冲存储器217小。
在若干个实施例中,寄存器可由主机(例如,图1A中的主机102)及/或由DIMM控制器(例如,图1A中的控制器114)编程以界定缓冲器119及/或高速缓冲存储器117的大小。举例来说,如果缓冲器/高速缓冲存储器216包含10MB的存储器,那么寄存器可经编程以将缓冲器119界定为存储器的10%且将高速缓冲存储器117界定为存储器的其余部分。因此,缓冲器119将包含1MB的存储器且高速缓冲存储器117将包含9MB的存储器。
图3是根据本发明的若干个实施例的一定数目个寄存器的图式。图3包含可界定媒体密度的寄存器318-1。媒体密度可包含将用作缓冲器/高速缓冲存储器的存储器的存储容量。在图3中,寄存器318-2可界定缓冲器的大小。寄存器318-2可通过指示将实施于缓冲器处的存储器的百分比而界定缓冲器的大小。寄存器318-2还可通过指示缓冲器的存储容量(例如,3MB)而界定缓冲器的大小。寄存器318-2还可通过明确地指示存储器的百分比及/或高速缓冲存储器的存储容量而界定高速缓冲存储器的大小。还可由寄存器318-2通过将未用作缓冲器的其余部分实施为高速缓冲存储器而隐式地界定高速缓冲存储器的大小。寄存器318-2可允许DIMM支持一定数目个应用程序。寄存器318-2可经配置以界定缓冲器及/或高速缓冲存储器的大小以基于一定数目个应用程序对具有特定大小的缓冲器及/或高速缓冲存储器的需要而支持所述一定数目个应用程序。
虽然本文中已图解说明及描述了特定实施例,但所属领域的技术人员将了解,旨在实现相同结果的布置可替代所展示的特定实施例。本发明打算涵盖本发明的各种实施例的变更或变化形式。应理解,已以说明性方式而非限制性方式做出以上说明。在审阅以上说明后,所属领域的技术人员将即刻明了以上实施例的组合及本文中未具体描述的其它实施例。本发明的各种实施例的范围包含其中使用以上结构及方法的其它应用。因此,本发明的各种实施例的范围应参考随附权利要求书连同此权利要求书授权的等效物的整个范围来确定。
在前述实施方式中,出于简化本发明的目的,将各种特征一起分组于单个实施例中。本发明的此方法不应解释为反映本发明的所揭示实施例必须使用比明确陈述于每一技术方案中更多的特征的意图。而是,如随附权利要求书所反映,发明性标的物在于少于单个所揭示实施例的所有特征。因此,特此将随附权利要求书并入到实施方式中,其中每一技术方案独立地作为单独实施例。
Claims (21)
1.一种设备,其包括:
存储器装置;及
控制器,其耦合到所述存储器装置,经配置以:
编程寄存器以界定存储器中的缓冲器的大小;
将数据存储于所述存储器的第一部分中的所述缓冲器中,所述缓冲器由所述寄存器界定;及
将数据存储于所述存储器的第二部分中的高速缓冲存储器中。
2.根据权利要求1所述的设备,其中所述存储器由所述存储器的所述第一部分及所述存储器的所述第二部分组成。
3.根据权利要求1到2中任一权利要求所述的设备,其中所述控制器经配置以编程指示所述存储器的密度的另一寄存器。
4.根据权利要求3所述的设备,其中所述缓冲器及所述高速缓冲存储器位于所述控制器上。
5.根据权利要求1到2中任一权利要求所述的设备,其中所述缓冲器及所述高速缓冲存储器位于所述存储器装置的存储器阵列上。
6.一种设备,其包括:
控制器,其位于存储器模块上;
第一存储器阵列,其位于所述存储器模块上,所述第一存储器阵列包含多个非易失性存储器单元;及
第二存储器阵列,其位于所述存储器模块上,所述第二存储器模块包含多个易失性存储器单元;
其中所述控制器包括寄存器,所述寄存器经配置以确定所述第二存储器阵列的所述多个易失性存储器单元的量以存储所述第一存储器阵列的缓冲器数据及高速缓冲存储器数据中的至少一者。
7.根据权利要求6所述的设备,其中所述缓冲器数据包含将在所述第一存储器阵列上执行的命令数据且所述高速缓冲存储器数据包含存储于所述第一存储器阵列中的数据。
8.根据权利要求6到7中任一权利要求所述的设备,其中所述第一存储器阵列及所述第二存储器阵列布置于第一芯片中且所述控制器布置于第二芯片中。
9.根据权利要求6到7中任一权利要求所述的设备,其进一步包括:
第三存储器阵列,其位于所述存储器模块上,所述第三存储器阵列包含多个非易失性存储器单元;及
第四存储器阵列,其位于所述存储器模块上,所述第四存储器阵列包含多个易失性存储器单元;
其中所述寄存器进一步经配置以确定所述第四存储器阵列的所述多个易失性存储器单元的量以存储所述第三存储器阵列的缓冲器数据及高速缓冲存储器数据中的至少一者;且
其中所述第三存储器阵列及所述第四存储器阵列布置于第三芯片中。
10.根据权利要求6到7中任一权利要求所述的设备,其中所述控制器包括第五存储器阵列,所述第五存储器阵列包含多个易失性存储器单元,所述多个易失性存储器单元的存储器单元类型与所述第二存储器阵列及所述第四存储器阵列的所述多个易失性存储器单元不同。
11.一种方法,其包括:
将一定数目个条目存储于存储器中的缓冲器中,其中所述缓冲器的大小由寄存器确定;及
将数据存储于存储器中的高速缓冲存储器中,其中所述高速缓冲存储器的大小基于未用作所述缓冲器的其余存储器的量。
12.根据权利要求11所述的方法,其进一步包含编程第一缓冲器以界定所述缓冲器的所述大小且编程第二缓冲器以界定所述存储器的密度。
13.根据权利要求11到12中任一权利要求所述的方法,其进一步包含将所述数据存储于非易失性双列直插式存储器模块NVDIMM装置的非易失性存储器阵列中的所述高速缓冲存储器中。
14.根据权利要求11到12中任一权利要求所述的方法,其进一步包含将所述一定数目个条目存储于位于控制器上的存储器中的所述缓冲器中。
15.根据权利要求11到12中任一权利要求所述的方法,其进一步包含将所述一定数目个条目存储于位于非易失性双列直插式存储器模块NVDIMM装置的易失性存储器阵列上的存储器中的所述缓冲器中。
16.一种方法,其包括:
编程寄存器以界定存储器的实施为缓冲器的第一部分的大小及所述存储器的实施为高速缓冲存储器的第二部分的大小。
17.根据权利要求16所述的方法,其进一步包含重新编程所述寄存器以改变所述存储器的实施为缓冲器的所述第一部分的所述大小及所述存储器的实施为高速缓冲存储器的所述第二部分的所述大小。
18.根据权利要求16所述的方法,其中编程所述寄存器以界定存储器的实施为所述缓冲器的所述第一部分的所述大小基于所述缓冲器中的阈值数目个条目。
19.根据权利要求16所述的方法,其中编程所述寄存器以界定存储器的实施为所述缓冲器的所述第一部分的所述大小基于非易失性双列直插式存储器模块NVDIMM装置的存储器阵列的块大小。
20.根据权利要求16到19中任一权利要求所述的方法,其进一步包含编程所述寄存器以界定位于控制器上的存储器的所述第一部分的所述大小。
21.根据权利要求16到19中任一权利要求所述的方法,其进一步包含编程所述寄存器以界定位于非易失性双列直插式存储器模块NVDIMM装置的存储器阵列中的存储器的所述第一部分的所述大小。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/484,793 | 2017-04-11 | ||
US15/484,793 US20180292991A1 (en) | 2017-04-11 | 2017-04-11 | Memory protocol with programmable buffer and cache size |
PCT/US2018/018124 WO2018190948A1 (en) | 2017-04-11 | 2018-02-14 | Memory protocol with programmable buffer and cache size |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110546625A true CN110546625A (zh) | 2019-12-06 |
Family
ID=63711618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880021753.7A Pending CN110546625A (zh) | 2017-04-11 | 2018-02-14 | 具有可编程缓冲器及高速缓冲存储器大小的存储器协议 |
Country Status (6)
Country | Link |
---|---|
US (2) | US20180292991A1 (zh) |
EP (1) | EP3610380A4 (zh) |
KR (1) | KR102360667B1 (zh) |
CN (1) | CN110546625A (zh) |
TW (1) | TWI668703B (zh) |
WO (1) | WO2018190948A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10216685B1 (en) * | 2017-07-19 | 2019-02-26 | Agiga Tech Inc. | Memory modules with nonvolatile storage and rapid, sustained transfer rates |
US10963404B2 (en) | 2018-06-25 | 2021-03-30 | Intel Corporation | High bandwidth DIMM |
US10884958B2 (en) | 2018-06-25 | 2021-01-05 | Intel Corporation | DIMM for a high bandwidth memory channel |
US11074184B2 (en) | 2019-04-15 | 2021-07-27 | International Business Machines Corporation | Maintaining data order between buffers |
US11699471B2 (en) | 2019-09-25 | 2023-07-11 | Intel Corporation | Synchronous dynamic random access memory (SDRAM) dual in-line memory module (DIMM) having increased per data pin bandwidth |
US20230143926A1 (en) * | 2021-11-08 | 2023-05-11 | Western Digital Technologies, Inc. | Dynamic Controller Buffer Management and Configuration |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6370614B1 (en) * | 1999-01-26 | 2002-04-09 | Motive Power, Inc. | I/O cache with user configurable preload |
US20040205296A1 (en) * | 2003-04-14 | 2004-10-14 | Bearden Brian S. | Method of adaptive cache partitioning to increase host I/O performance |
US20100318742A1 (en) * | 2009-06-11 | 2010-12-16 | Qualcomm Incorporated | Partitioned Replacement For Cache Memory |
US20140019823A1 (en) * | 2011-12-22 | 2014-01-16 | Tanausu Ramirez | Content-aware caches for reliability |
US20140032818A1 (en) * | 2012-07-30 | 2014-01-30 | Jichuan Chang | Providing a hybrid memory |
US20150095551A1 (en) * | 2013-09-30 | 2015-04-02 | Micron Technology, Inc. | Volatile memory architecutre in non-volatile memory devices and related controllers |
US20150378884A1 (en) * | 2013-04-08 | 2015-12-31 | Avalanche Technology, Inc. | Storage system controlling addressing of solid storage disks (ssd) |
CN106104499A (zh) * | 2014-06-02 | 2016-11-09 | 美光科技公司 | 高速缓冲存储器架构 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
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 |
US6594196B2 (en) * | 2000-11-29 | 2003-07-15 | International Business Machines Corporation | Multi-port memory device and system for addressing the multi-port memory device |
US7124338B1 (en) * | 2003-10-10 | 2006-10-17 | Xilinx, Inc. | Methods of testing interconnect lines in programmable logic devices using partial reconfiguration |
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 |
US9171585B2 (en) * | 2005-06-24 | 2015-10-27 | Google Inc. | Configurable memory circuit system and method |
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 |
KR101431205B1 (ko) * | 2007-07-13 | 2014-08-18 | 삼성전자주식회사 | 캐시 메모리 장치 및 캐시 메모리 장치의 데이터 처리 방법 |
US9104583B2 (en) * | 2010-06-24 | 2015-08-11 | International Business Machines Corporation | On demand allocation of cache buffer slots |
-
2017
- 2017-04-11 US US15/484,793 patent/US20180292991A1/en not_active Abandoned
-
2018
- 2018-02-14 WO PCT/US2018/018124 patent/WO2018190948A1/en unknown
- 2018-02-14 EP EP18784887.4A patent/EP3610380A4/en not_active Withdrawn
- 2018-02-14 CN CN201880021753.7A patent/CN110546625A/zh active Pending
- 2018-02-14 KR KR1020197032844A patent/KR102360667B1/ko active IP Right Grant
- 2018-03-15 TW TW107108758A patent/TWI668703B/zh active
-
2022
- 2022-08-22 US US17/893,129 patent/US20220398200A1/en not_active Abandoned
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6370614B1 (en) * | 1999-01-26 | 2002-04-09 | Motive Power, Inc. | I/O cache with user configurable preload |
US20040205296A1 (en) * | 2003-04-14 | 2004-10-14 | Bearden Brian S. | Method of adaptive cache partitioning to increase host I/O performance |
US20100318742A1 (en) * | 2009-06-11 | 2010-12-16 | Qualcomm Incorporated | Partitioned Replacement For Cache Memory |
US20140019823A1 (en) * | 2011-12-22 | 2014-01-16 | Tanausu Ramirez | Content-aware caches for reliability |
US20140032818A1 (en) * | 2012-07-30 | 2014-01-30 | Jichuan Chang | Providing a hybrid memory |
US20150378884A1 (en) * | 2013-04-08 | 2015-12-31 | Avalanche Technology, Inc. | Storage system controlling addressing of solid storage disks (ssd) |
US20150378886A1 (en) * | 2013-04-08 | 2015-12-31 | Avalanche Technology, Inc. | Software-defined ssd and system using the same |
US20150095551A1 (en) * | 2013-09-30 | 2015-04-02 | Micron Technology, Inc. | Volatile memory architecutre in non-volatile memory devices and related controllers |
CN106104499A (zh) * | 2014-06-02 | 2016-11-09 | 美光科技公司 | 高速缓冲存储器架构 |
Also Published As
Publication number | Publication date |
---|---|
TWI668703B (zh) | 2019-08-11 |
KR102360667B1 (ko) | 2022-02-09 |
EP3610380A1 (en) | 2020-02-19 |
KR20190128743A (ko) | 2019-11-18 |
WO2018190948A1 (en) | 2018-10-18 |
TW201842496A (zh) | 2018-12-01 |
EP3610380A4 (en) | 2021-01-06 |
US20180292991A1 (en) | 2018-10-11 |
US20220398200A1 (en) | 2022-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102360667B1 (ko) | 프로그래밍 가능한 버퍼 및 캐시 크기의 메모리 프로토콜 | |
US11822790B2 (en) | Cache line data | |
US11704260B2 (en) | Memory controller | |
US11586566B2 (en) | Memory protocol with command priority | |
US11403035B2 (en) | Memory module including a controller and interfaces for communicating with a host and another memory module | |
US11687283B2 (en) | Memory module interfaces | |
US12124741B2 (en) | Memory module interfaces | |
US11226770B2 (en) | Memory protocol | |
US11698870B2 (en) | Memory module data buffer | |
EP3676715B1 (en) | Cache buffer | |
US11169737B2 (en) | Speculation in memory | |
US20240319909A1 (en) | Data transfer in port switch memory | |
US20200201566A1 (en) | Module processing resource |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20191206 |