CN115525587A - 存储器协议 - Google Patents
存储器协议 Download PDFInfo
- Publication number
- CN115525587A CN115525587A CN202211271961.7A CN202211271961A CN115525587A CN 115525587 A CN115525587 A CN 115525587A CN 202211271961 A CN202211271961 A CN 202211271961A CN 115525587 A CN115525587 A CN 115525587A
- Authority
- CN
- China
- Prior art keywords
- command
- commands
- memory device
- read
- memory
- 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.)
- Withdrawn
Links
Images
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/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
- 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/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- 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/0656—Data buffering arrangements
-
- 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
-
- 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
- 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/26—Using a specific storage system architecture
- G06F2212/261—Storage comprising a plurality of storage devices
-
- 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/7207—Details relating to flash memory management management of metadata or control data
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)
- Memory System (AREA)
- Read Only Memory (AREA)
- Communication Control (AREA)
Abstract
本发明提供包含与存储器协议有关的设备及方法。实例设备可使用块配置寄存器基于从主机接收的命令对所述存储器装置的若干块缓冲器执行操作,其中所述操作可从所述若干块缓冲器读取数据且将数据写入到所述存储器装置上的所述若干块缓冲器。
Description
本申请是申请日为2017年05月25日,申请号为“201780034967.3”,而发明名称为“存储器协议”的发明专利申请的分案申请。
技术领域
本发明大体上涉及存储器装置,且更特定来说,本发明涉及用于存储器协议的设备及方法。
背景技术
存储器装置通常提供为计算机或其它电子装置中的内部电路半导体电路集成电路。存在许多不同类型存储器,包含易失性存储器及非易失性存储器。易失性存储器可需要电力以维持其数据,且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)等等。非易失性存储器可通过在未被供电时保持所存储数据来提供持久性数据且可包含NAND快闪存储器、NOR快闪存储器、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、可擦除可编程ROM(EPROM)及电阻可变存储器(例如,相变随机存取存储器(PCRAM)、电阻性随机存取存储器(RRAM)及磁阻性随机存取存储器(MRAM))等等。
存储器还用作宽广范围的电子应用的易失性及非易失性数据存储装置。非易失性存储器可用于(例如)个人计算机、便携式存储器棒、数码相机、蜂窝电话、便携式音乐播放器(例如MP3播放器)、电影播放器及其它电子装置中。存储器单元可经布置为阵列,其中所述阵列用于存储器装置中。
存储器可为计算装置中使用的存储器模块(例如,双列直插存储器模块(DIMM))的部分。存储器模块可包含易失性存储器(例如DRAM)及/或非易失性存储器(例如快闪存储器或RRAM)。DIMM可用作计算系统中的主存储器。
发明内容
有鉴于此,本申请提供一种存储器装置以解决上述问题
依据本申请的一实施例,提出一种设备。所述设备包括存储器装置及控制器。所述控制器其耦合到所述存储器装置。所述控制器经配置以:依据从主机接收到的屏障命令在所述存储器装置上执行命令,其中所述屏障命令指示先前被所述存储器装置所接收到的命令将在所述存储装置在所述屏障命令之后所接收到的命令之前执行。
依据本申请的一实施例,提出一种用以执行命令的方法,其包括:在存储器装置处接收屏障命令和第一数量的命令;以及响应所述屏障命令的接收,在执行所述第一数量的命令之前执行在所述第一数量的命令之前被接收的命令。
依据本申请的一实施例,提出一种用以传送命令的方法,包括:向存储器装置传送第一数量的命令;以及向所述存储器装置传送屏障命令和第二数量的命令,其中所述屏障命令指示所述第二数量的命令将在执行所述第一数量的命令之后执行。
附图说明
图1是根据本发明的若干实施例的呈包含存储器系统的计算系统的形式的设备的框图。
图2A到2C说明根据本发明的若干实施例的与块缓冲器相关联的寄存器及命令。
图3说明根据本发明的若干实施例的包含读取增量信息的读取命令。
图4说明根据本发明的若干实施例的若干读取命令及屏障命令。
图5说明根据本发明的若干实施例的包含突发长度信息的读取命令及写入命令。
图6A到6D说明根据本发明的若干实施例的用以指示读取缓冲器的大小及写入缓冲器的大小的寄存器。
具体实施方式
本发明包含与存储器协议相关的设备及方法。实例设备可基于使用块配置寄存器从主机接收的命令对存储器装置上的若干块缓冲器执行操作,其中所述操作可从所述若干块缓冲器读取数据及将数据写入到存储器装置上的所述若干块缓冲器。
在本发明的一或多个实施例中,块配置寄存器可用于界定存储器装置上的若干块缓冲器。主机可直接存取所述块缓冲器且对所述块缓冲器执行读取及/或写入命令。块配置寄存器可包含关联的块缓冲器寄存器及目标地址寄存器对,其中所述块缓冲器寄存器各自包含用于每一块缓冲器的起始地址及结束地址且所述目标地址寄存器各自包含与每一块缓冲器相关联的存储器阵列中的目标地址。主机可将读取及/或写入命令发送到存储器装置以从与起始地址、结束地址及目标地址相关联的所述块缓冲器读取及/或写入数据。块配置寄存器还可包含状态寄存器,其包含用于块缓冲器中的数据的状态信息,所述状态信息当由存储器装置接收及执行读取及/或写入命令时由主机更新。
在本发明的一或多个实施例中,所述存储器协议可用于以确定性及/或非确定性时序执行操作。所述存储器协议可包含发送具有读取增量值的读取命令,其中所述读取增量值向所述控制器指示使用于将存储器装置读取识别号指派到读取命令的计数器递增的值。所述存储器协议可包含从主机发送屏障命令,其中所述屏障命令指示由存储器装置先前接收的命令在由存储器装置在屏障命令后接收的命令之前执行。
在一或多个实施例中,所述存储器协议可包含发送具有指示用于所述存储器装置的突发长度的突发长度信号的命令。所述突发长度信号可基于对于命令的请求的大小及/或基于将对其执行命令的某一类型存储器装置。所述存储器协议可包含发送命令以设置缓冲器寄存器,所述缓冲器寄存器配置具有第一特定大小的读取缓冲器部分及第二特定大小的写入缓冲器部分的缓冲器。
在本发明的以下详细描述中,参考附图,所述附图形成本发明的一部分且其中以说明的方式展示本发明的若干实施例可如何实践。这些实施例经充分详细地描述以使所属领域的一般技术人员能够实践本发明的所述实施例,且应理解可利用其它实施例且可在不脱离本发明的范围的情况下作出过程改变、电改变及/或结构改变。如本文中所使用,指示符“N”指示本发明的若干实施例中可包含若干如此指示的特定特征。
如本文中所使用,“若干”某物可指代一或多个此类事物。举例来说,若干存储器装置可指代一或多个存储器装置。此外,如本文中所使用的指示符“N”(尤其相对于图式中的参考数字)指示本发明的若干实施例中可包含若干如此指示的特定特征。
本文中的图式遵循编号惯例,其中第一数字或前几个数字对应于图式编号且其余数字识别图式中的元件或组件。可通过使用类似数字而识别不同图式之间的类似元件或组件。如应了解,可添加、交换及/或消除本文中在各种实施例中所展示的元件以便提供本发明的若干额外实施例。另外,图中所提供组件的比例及相对尺寸希望说明本发明的各个实施例,而不应被视为意指限制。
图1是根据本发明的一或多个实施例的包含呈若干存储器系统104-1…104-N的形式的设备的计算系统100的功能框图。如本文中所使用,“设备”可指代(但不限于)多种结构或结构的组合中的任何者,例如电路或电路系统、裸片或若干裸片、模块或若干模块、装置或若干装置、系统或若干系统。在图1中所说明的实施例中,存储器系统104-1…104-N可包含一或多个存储器装置110-1、…、110-X、110-Y。在一或多个实施例中,存储器装置110-1、…、110-X、110-Y可为双列直插存储器模块(DIMM)。DIMM可包含易失性存储器及/或非易失性存储器,分别例如(举例来说)NVDIMM及DRAM DIMM。在若干实施例中,存储器系统104-1、…、104-N可包含多芯片装置。多芯片装置可包含若干不同存储器类型及/或存储器模块。举例来说,存储器系统可包含任何类型的模块上的非易失性或易失性存储器。下文关于图1到4描述的实例将DIMM用作存储器模块,但本发明的协议可用于其中存储器可执行确定性及/或非确定性命令的任何存储器系统上。图1中,存储器系统104-1经由通道112-1耦合到主机且可包含存储器装置110-1、…、110-X且存储器系统104-N经由通道112-N耦合到主机且可包含存储器装置110-1、…、110-Y。在此实例中,每一存储器装置110-1、…、110-X、110-Y包含控制器114。控制器114可从主机102接收命令且控制对存储器装置执行所述命令。而且,在若干实施例中,本发明的协议可在没有控制器的情况下由存储器装置(例如,DIMM)实施,且使用本发明的协议执行所述命令可内建于所述存储器装置中。取决于存储器装置的类型,主机102可使用本发明的协议及/或现有协议将命令发送到存储器装置110-1、…、110-X、110-Y。举例来说,主机可使用本发明的协议与NVDIMM在相同通道(例如,通道112-1)上通信且使用现有协议与都处于相同存储器系统上的DRAM DIMM通信。
如图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将命令发送到存储器装置110-1、…、110-X、110-Y。主机控制器108可与存储器装置110-1、…、110-X、110-Y及/或存储器装置110-1、…、110-X、110-Y中的每一者上的控制器114通信以读取、写入及擦除数据等等操作。物理主机接口可提供用于在存储器系统104-1…104-N与具有用于物理主机接口的兼容接纳器的主机102之间传递控制、地址、数据及其它信号的接口。所述信号可(例如)经由通道112-1…112-N在102在若干总线(例如数据总线及/或地址总线)上在存储器装置110-1、…、110-X、110-Y之间传达。
主机控制器108及/或存储器装置上的控制器114可包含控制电路(例如硬件、固件及/或软件)。在一或多个实施例中,主机控制器108及/或控制器114可为耦合到包含物理接口的印刷电路板的专用集成电路(ASIC)。而且,每一存储器装置110-1、…、110-X、110-Y可包含易失性及/或非易失性存储器的缓冲器116及寄存器118。缓冲器116可用于缓冲执行读取命令及/或写入命令期间使用的数据。缓冲器116可分成写入缓冲器、读取缓冲器及若干块缓冲器。专用于写入缓冲器的空间量及专用于读取缓冲器的空间量可由主机控制器108编程若干寄存器118而控制。主机可基于将发送到特定存储器装置的命令的类型控制缓冲器116中专用于写入缓冲器及读取缓冲器的空间量。在若干实施例中,每一存储器装置110-1、…、110-X、110-Y可具有固定写入缓冲器大小及/或固定读取缓冲器大小。缓冲器116可包含若干块缓冲器。所述若干块缓冲器中的每一者的大小可由所述主机编程若干寄存器118而控制。寄存器118可经编程以设置每一块寄存器的起始地址及结束地址及在与每一块寄存器相关联的存储器阵列中的目标地址。主机可通过将命令发送到存储器装置110-1、…、110-X、110-Y而将数据读取及/或写入到块寄存器。
存储器装置110-1、…、110-X、110-Y可提供用于存储器系统的主存储器或可用作整个存储器系统中的额外存储器或存储装置。每一存储器装置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。所属领域的技术人员将了解地址输入连接的数目可取决于存储器装置110-1、…、101-X、110-Y的密度及架构。
图2A到2C说明根据本发明的若干实施例的与块缓冲器相关联的寄存器及命令。在若干实施例中,存储器装置可包含可由主机寻址的若干块缓冲器,其中所述主机可发送命令以对所述块缓冲器执行读取及/或写入命令。所述块缓冲器的大小可通过可由主机编程的块配置寄存器而指示。所述块缓冲器的大小可经编程以匹配存储器装置的存储器阵列中的块的大小。图2A说明所述块配置寄存器的块缓冲器地址寄存器230-0、…、230-R且图2B说明块配置寄存器的目标地址寄存器232-0、…、232-R。块配置寄存器包含关联的块缓冲器地址寄存器及目标地址寄存器对。每一块缓冲器地址寄存器与存储器装置的存储器阵列中的目标地址相关联。写入到由对应块缓冲器寄存器中的信息指示的块缓冲器的数据将在所述数据被提交到存储器时被写入到存储器阵列中的关联目标地址。从块缓冲器读取的数据位于与块关联的关联目标地址且从所述地址移动。每一块缓冲器地址寄存器可包含缓冲器起始地址235-0、…、235-R、缓冲器结束地址233-0、…、233-R及状态信息231-0、…、231-R。用于每一缓冲器的缓冲器起始地址及缓冲器结束地址可用于确定缓冲器的大小。状态信息可包含:块缓冲器中是否存在有效数据;与命令相关联的数据是否已移动;及/或块缓冲器数据中是否存在可恢复错误及/或致命错误的信息指示。还可存在状态寄存器,其存储用于每一块缓冲器的状态信息使得仅所述状态寄存器需要被读取以确定特定块缓冲器的状态。
图2C说明用于执行块缓冲器中的操作的命令234。命令234包含块缓冲器窗信息、块缓冲器选择信息及块缓冲器地址信息,其中:块缓冲器窗信息指示将对块缓冲器执行命令;块缓冲器选择信息指示将对其执行所述命令的块缓冲器;块缓冲器地址信息指示块缓冲器上与所述命令相关联的数据将被写入及/读取的地址。
图3说明根据本发明的若干实施例的包含读取增量信息的读取命令。图3中,读取命令344可包含读取识别号(RID)及读取增量信息(RID_INC)。读取识别号可用于识别命令。举例来说,主机可将特定读取识别号指派到命令且将所述命令发送到所述存储器装置。接着,所述存储器装置可将读取识别号指派到所述命令。所述存储器装置可包含计数器以记录指派到命令的读取识别号。计数器在0处初始化且每当读取命令由存储器装置接收时计数器递增1。在用非确定性时序执行命令的存储器装置中,可由存储器装置以任何顺序执行命令,因此使计数器每次递增1可导致由主机指派到特定命令的读取识别号不同于由存储器装置指派到特定命令的读取识别号。举例来说,主机及存储器装置可各自具有4个可用读取识别号以指派到读取命令且在任何给定时间处任何给定读取识别号可仅为一次性的。当主机已将所有4个命令指派及发送到存储器装置但仅从存储器装置接收到已执行第一、第二及第四命令的指示时,那么主机无法将第三识别号指派到另一命令直到具有第三识别号的命令已由存储器装置执行。所述第一及第二读取识别号可由主机再次使用,但所述第三读取识别号不应由主机使用。读取增量信息可与读取命令一起发送以指示所述存储器装置应跳过读取识别号。在以上实例中,读取增量信息可包含读取增量1,从而指示应跳过第三识别号。存储器装置通过基于读取增量信息可递增识别号以指派到命令,使得由主机指派到命令的下一个可用读取识别号也将由所述存储器装置指派到所述命令。在图3中,存储器装置304可从主机302接收命令344且将基于将1和与读取增量(RID_INC)信息相关联的值相加的读取识别号345指派到由存储器装置304指派到命令的最近读取识别号。
图4说明根据本发明的若干实施例的若干读取命令及屏障命令。在图4中,主机402可将读取命令444-1、444-2及444-3及屏障命令446发送到存储器装置404。屏障命令446可指示先于屏障命令446发送到存储器装置404的命令444-1、444-2及444-3将在屏障命令446后发送到存储器装置404的命令444-4、444-5及444-6之前执行。图4中,指示读取命令444-3已执行的读取识别(RID3)448-3在屏障命令446经发送到存储器装置之前发送到主机。屏障命令446指示在任何后续命令之前执行读取命令444-1及444-2。主机在屏障命令446后将读取命令444-4、444-5及444-6发送到存储器装置,读取命令444-4、444-5及444-6将在读取命令444-1及444-2之后执行。存储器装置执行读取命令444-1及444-2且发送读取识别448-1及448-2。一旦屏障命令前发送到存储器装置的所有命令已执行,就可执行屏障命令后发送到所述存储器装置的所述命令。因此,存储器装置执行读取命令444-4、444-5、444-6且将读取识别448-4、448-5及448-6发送到主机402。
在若干实施例中,屏障命令可仅适用于所有类型的命令、仅适用于读取命令、或仅适用于写入命令。举例来说,读取屏障命令可经发送以指示先于屏障命令发送的所有读取命令将在屏障命令后发送的任何读取命令前执行。当存储器装置可以非确定性时序执行命令时,屏障命令可由主机使用以控制执行命令的时序。
图5说明根据本发明的若干实施例的包含突发长度信息的读取命令及写入命令。在图5中,读取命令544可包含突发长度指示且写入命令562可包含突发长度指示。突发长度可经由读取及/或写入命令中的指示由主机动态地改变。突发长度指示可由主机502以任何类型的命令(包含突发长度指示命令)发送到存储器装置504。突发长度可基于与命令、某一类型的命令、将对其执行命令的类型的存储器装置相关联的一定量的数据及是否期望延时或带宽优化由主机而改变。
图6A到6D说明根据本发明的若干实施例的用以指示读取缓冲器及写入缓冲器的大小的寄存器。在图6A及6B中,寄存器可经编程以指示读取条目652-1及652-2的数目及写入条目654-1及654-2的数目。寄存器可定位于存储器装置上且主机可编程所述寄存器。寄存器中指示的读取条目652-1及652-2的数目及写入条目654-1及654-2的数目可用于控制读取缓冲器及写入缓冲器的大小。举例来说,读取条目指示652-1可对应于具有特定大小的读取缓冲器656-1且写入条目指示654-1可对应于具有特定大小的写入缓冲器658-1。读取缓冲器656-1的大小可小于写入缓冲器658-1的大小。读取条目指示651-2可对应于具有特定大小的读取缓冲器656-2且写入条目指示654-2可对应于具有特定大小的写入缓冲器658-2。读取缓冲器656-2的大小可大于写入缓冲器658-1及读取缓冲器656-1的大小。寄存器中的读取条目指示652及写入条目指示654可基于由主机发出的读取命令及写入命令的相对量而由主机更新。每当所述当前读取条目及/或所述写入缓冲器条目可通过更新读取及/或写入指示而容纳时,读取条目指示652及写入条目指示654可更新。
在若干实施例中,缓冲器可包含读取及写入条目两者且寄存器可经编程以界定用于所述缓冲器的读取条目的阈值数目及用于所述缓冲器的写入条目的阈值数目。主机可跟踪缓冲器中的未完成的读取条目及写入条目的数目以确保缓冲器不包含比由寄存器界定的读取条目的阈值数目及写入条目的阈值数目更多的条目。寄存器可经更新以改变缓冲器的读取条目的阈值数目及缓冲器的写入条目的阈值数目。
尽管已在本文中说明及描述特定实施例,但所属领域的一般技术人员将了解经计算以实现相同结果的布置可取代展示的特定实施例。本发明希望涵盖本发明的各种实施例的调适或变化。应理解,已以说明性方式而非限制性方式做出上述描述。所属领域的技术人员在审查上文描述后将明白未在本文中特别描述的上述实施例的组合及其它实施例。本发明的各种实施例的范围包含其中使用上文结构及方法的其它应用。因此,应参考所附权利要求书以及涵括此类权利要求的等效物的全部范围确定本发明的各种实施例的范围。
在前述实施方式中,出于简化本发明的目的,各种特征共同分组于单个实施例中。本发明的此方法不应解释为反映本发明的所揭示实施例必须使用多于在每一权利要求中明确叙述的特征的意图。而是,如所附权利要求书反映,发明标的物在于少于单个所揭示实施例的所有特征。因此,所附权利要求书并入实施方式中,其中每一权利要求本身单独作为独立实施例。
Claims (20)
1.一种设备,其包括:
存储器装置(104,404);及
控制器(114),其耦合到所述存储器装置,所述控制器经配置以:
依据从主机(102,402)接收到的屏障命令(446)在所述存储器装置上执行命令,其中所述屏障命令指示先前被所述存储器装置所接收到的命令将在所述存储装置在所述屏障命令之后所接收到的命令之前执行。
2.根据权利要求1所述的设备,其中所述屏障命令是写入屏障命令,其指示先前被所述存储器装置所接收的写入命令将在所述存储器装置在所述写入屏障命令之后所接收到的写入命令之前执行。
3.根据权利要求1所述的设备,其中所述屏障命令是读取屏障命令,其指示先前被所述存储器装置所接收的读取命令将在所述存储器装置在所述读取屏障命令之后所接收到的读取命令之前执行。
4.根据权利要求1到3中任一权利要求所述的设备,其中所述屏障命令对所述控制器上的寄存器(118)进行编程。
5.根据权利要求1到3中任一权利要求所述的设备,其中所述屏障命令由列命令中的位指示。
6.根据权利要求1到3中任一权利要求所述的设备,其中所述屏障命令指示先前被所述存储器装置所接收的命令将由所述控制器接收所述命令的顺序而依序执行。
7.一种用以执行命令的方法,其包括:
在存储器装置处接收屏障命令(446)和第一数量的命令(444-4,444-5,444-6);以及
响应所述屏障命令的接收,在执行所述第一数量的命令之前执行在所述第一数量的命令之前被接收的命令(444-1,444-2,444-3)。
8.根据权利要求7所述的方法,其中接收所述屏障命令指示先前接收到的命令将在随后接收到的命令之前被执行。
9.根据权利要求7所述的方法,其中接收所述屏障命令指示先前接收到的读取命令将在随后接收到的读取命令之前被执行。
10.根据权利要求7所述的方法,其中接收所述屏障命令指示先前接收到的写入命令将在随后接收到的写入命令之前被执行。
11.根据权利要求7所述的方法,其中执行在所述第一数量的命令之前被接收的所述命令包括向主机传送数据。
12.根据权利要求7所述的方法,其中执行在所述第一数量的命令之前被接收的所述命令包括将数据写入所述存储器装置。
13.根据权利要求7-12中任一权利要求所述的方法,另包括:响应在所述第一数量的命令之前被接收的命令的执行完成,执行所述第一数量的命令。
14.根据权利要求7-12中任一权利要求所述的方法,另包括:在完成所述第一数量的命令的执行前接收第二数量的命令。
15.根据权利要求14所述的方法,另包括响应在所述第一数量的命令之前被接收的命令的执行完成,执行所述第二数量的命令。
16.一种用以传送命令的方法,包括:
向存储器装置传送第一数量的命令(444-1,444-2,444-3);以及
向所述存储器装置传送屏障命令(446)和第二数量的命令(444-4,444-5,444-6),其中所述屏障命令指示所述第二数量的命令将在执行所述第一数量的命令之后执行。
17.根据权利要求16所述的方法,另包括:在接收与所述第二数量的命令相关联的数据之前接收与所述第一数量的命令相关联的数据。
18.根据权利要求16所述的方法,另包括:在向所述存储器装置传送与所述第二数量的命令相关联的数据之前向所述存储器装置传送与所述第一数量的命令相关联的数据。
19.根据权利要求16-18中任一权利要求所述的方法,另包括:向所述存储器装置传送第三数量的命令。
20.根据权利要求19所述的方法,另包括:响应与所述第一数量的命令相关联的数据的接收,接收与所述第二数量的命令和所述第三数量的命令相关联的数据。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662346201P | 2016-06-06 | 2016-06-06 | |
US62/346,201 | 2016-06-06 | ||
US15/182,821 | 2016-06-15 | ||
US15/182,821 US10534540B2 (en) | 2016-06-06 | 2016-06-15 | Memory protocol |
CN201780034967.3A CN109313620B (zh) | 2016-06-06 | 2017-05-25 | 存储器协议 |
PCT/US2017/034487 WO2017213876A1 (en) | 2016-06-06 | 2017-05-25 | Memory protocol |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780034967.3A Division CN109313620B (zh) | 2016-06-06 | 2017-05-25 | 存储器协议 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115525587A true CN115525587A (zh) | 2022-12-27 |
Family
ID=60483878
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780034967.3A Active CN109313620B (zh) | 2016-06-06 | 2017-05-25 | 存储器协议 |
CN202211271961.7A Withdrawn CN115525587A (zh) | 2016-06-06 | 2017-05-25 | 存储器协议 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780034967.3A Active CN109313620B (zh) | 2016-06-06 | 2017-05-25 | 存储器协议 |
Country Status (6)
Country | Link |
---|---|
US (4) | US10534540B2 (zh) |
EP (1) | EP3465449B1 (zh) |
KR (5) | KR102344768B1 (zh) |
CN (2) | CN109313620B (zh) |
TW (2) | TWI744632B (zh) |
WO (1) | WO2017213876A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10152237B2 (en) | 2016-05-05 | 2018-12-11 | Micron Technology, Inc. | Non-deterministic memory protocol |
US10534540B2 (en) * | 2016-06-06 | 2020-01-14 | Micron Technology, Inc. | Memory protocol |
US10585624B2 (en) | 2016-12-01 | 2020-03-10 | Micron Technology, Inc. | Memory protocol |
US11003602B2 (en) | 2017-01-24 | 2021-05-11 | Micron Technology, Inc. | Memory protocol with command priority |
KR102340094B1 (ko) * | 2017-03-31 | 2021-12-17 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
US10635613B2 (en) | 2017-04-11 | 2020-04-28 | Micron Technology, Inc. | Transaction identification |
JP2018205859A (ja) * | 2017-05-31 | 2018-12-27 | キヤノン株式会社 | メモリコントローラとその制御方法 |
US11132145B2 (en) | 2018-03-14 | 2021-09-28 | Apple Inc. | Techniques for reducing write amplification on solid state storage devices (SSDs) |
US11474741B1 (en) * | 2020-06-30 | 2022-10-18 | Amazon Technologies, Inc. | Storage device write barriers |
US20220206946A1 (en) * | 2020-12-28 | 2022-06-30 | Advanced Micro Devices, Inc. | Method and apparatus for managing a cache directory |
US20230376206A1 (en) * | 2021-03-19 | 2023-11-23 | Micron Technology, Inc. | Write booster buffer flush operation |
US11941291B2 (en) * | 2021-09-02 | 2024-03-26 | Micron Technology, Inc. | Memory sub-system command fencing |
Family Cites Families (146)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4467411A (en) * | 1981-03-06 | 1984-08-21 | International Business Machines Corporation | Scheduling device operations in a buffered peripheral subsystem |
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 |
DE69300523T2 (de) * | 1993-11-26 | 1996-03-14 | Sgs Thomson Microelectronics | Prozessorschnittstellenschaltung zum Austausch von seriellen digitalen Daten mit einem Peripheriegerät. |
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 |
JP3435267B2 (ja) * | 1995-11-07 | 2003-08-11 | 株式会社東芝 | マイクロプロセッサ及びそのロードアドレス予想方法 |
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 |
US7007099B1 (en) * | 1999-05-03 | 2006-02-28 | Lucent Technologies Inc. | High speed multi-port serial-to-PCI bus interface |
US6775790B2 (en) * | 2000-06-02 | 2004-08-10 | Hewlett-Packard Development Company, L.P. | Distributed fine-grained enhancements for distributed table driven I/O mapping |
US6609192B1 (en) * | 2000-06-06 | 2003-08-19 | International Business Machines Corporation | System and method for asynchronously overlapping storage barrier operations with old and new storage operations |
EP1215577B1 (en) | 2000-08-21 | 2012-02-22 | Texas Instruments Incorporated | Fault management and recovery based on task-ID |
FR2821478A1 (fr) * | 2001-02-23 | 2002-08-30 | St Microelectronics Sa | Procede et dispositif de lecture sequentielle d'une memoire avec saut d'adresse |
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 |
US6957308B1 (en) | 2002-07-11 | 2005-10-18 | Advanced Micro Devices, Inc. | DRAM supporting different burst-length accesses without changing the burst length setting in the mode register |
US7308524B2 (en) * | 2003-01-13 | 2007-12-11 | Silicon Pipe, Inc | Memory chain |
JP3808837B2 (ja) * | 2003-03-11 | 2006-08-16 | 株式会社東芝 | キャッシュメモリーシステム |
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 |
KR100557215B1 (ko) | 2003-08-19 | 2006-03-10 | 삼성전자주식회사 | 유에스비 디바이스의 엔드포인트 제어 장치 및 그 방법 |
KR100560773B1 (ko) * | 2003-10-09 | 2006-03-13 | 삼성전자주식회사 | 동작 모드의 재설정없이 버스트 길이를 제어할 수 있는반도체 메모리 장치 및 그것을 포함하는 메모리 시스템 |
US7826614B1 (en) * | 2003-11-05 | 2010-11-02 | Globalfoundries Inc. | Methods and apparatus for passing initialization vector information from software to hardware to perform IPsec encryption operation |
US7657706B2 (en) * | 2003-12-18 | 2010-02-02 | Cisco Technology, Inc. | High speed memory and input/output processor subsystem for efficiently allocating and using high-speed memory and slower-speed memory |
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 |
US7519788B2 (en) * | 2004-06-04 | 2009-04-14 | Micron Technology, Inc. | System and method for an asynchronous data buffer having buffer write and read pointers |
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 |
US7243200B2 (en) * | 2004-07-15 | 2007-07-10 | International Business Machines Corporation | Establishing command order in an out of order DMA command queue |
US7500045B2 (en) * | 2005-03-23 | 2009-03-03 | Qualcomm Incorporated | Minimizing memory barriers when enforcing strongly-ordered requests in a weakly-ordered processing system |
US9026744B2 (en) * | 2005-03-23 | 2015-05-05 | Qualcomm Incorporated | Enforcing strongly-ordered requests in a weakly-ordered processing |
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 |
US7516247B2 (en) * | 2005-08-12 | 2009-04-07 | Advanced Micro Devices, Inc. | Avoiding silent data corruption and data leakage in a virtual environment with multiple guests |
CA2625318C (en) * | 2006-01-05 | 2010-09-28 | X-Ray Flux Pty Ltd | Nickel flux composition |
US7574565B2 (en) * | 2006-01-13 | 2009-08-11 | Hitachi Global Storage Technologies Netherlands B.V. | Transforming flush queue command to memory barrier command in disk drive |
US7917676B2 (en) * | 2006-03-10 | 2011-03-29 | Qualcomm, Incorporated | Efficient execution of memory barrier bus commands with order constrained memory accesses |
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 |
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 |
US20080162735A1 (en) | 2006-12-29 | 2008-07-03 | Doug Voigt | Methods and systems for prioritizing input/outputs to storage devices |
US20080189501A1 (en) * | 2007-02-05 | 2008-08-07 | Irish John D | Methods and Apparatus for Issuing Commands on a Bus |
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 |
US7984202B2 (en) * | 2007-06-01 | 2011-07-19 | Qualcomm Incorporated | Device directed memory barriers |
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 |
US8438356B2 (en) * | 2007-10-01 | 2013-05-07 | Marvell World Trade Ltd. | Flash memory controller |
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 |
US20090327535A1 (en) | 2008-06-30 | 2009-12-31 | Liu Tz-Yi | Adjustable read latency for memory device in page-mode access |
JP4631948B2 (ja) * | 2008-08-13 | 2011-02-16 | 日本電気株式会社 | 情報処理装置及び順序保証方式 |
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 | 삼성전자주식회사 | 반도체 메모리 시스템의 동작 방법 |
GB2465611B (en) * | 2008-11-25 | 2011-04-27 | British Broadcasting Corp | Interleaving or de-interleaving of data of variable rate |
EP2394221A4 (en) * | 2009-02-09 | 2012-11-21 | Rambus Inc | NON-VOLATILE MEMORY WITH MULTIPLE LEVELS 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 |
US8352682B2 (en) * | 2009-05-26 | 2013-01-08 | Qualcomm Incorporated | Methods and apparatus for issuing memory barrier commands in a weakly ordered storage system |
CN101908368A (zh) | 2009-06-04 | 2010-12-08 | 威刚科技(苏州)有限公司 | 电子存储装置及其操作方法 |
US8250332B2 (en) | 2009-06-11 | 2012-08-21 | Qualcomm Incorporated | Partitioned replacement for cache memory |
US9245371B2 (en) * | 2009-09-11 | 2016-01-26 | Nvidia Corporation | Global stores and atomic operations |
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 | 通信装置、この通信装置に搭載されるプログラマブルデバイス及びそのプログラム書き込み制御方法 |
US9104583B2 (en) | 2010-06-24 | 2015-08-11 | International Business Machines Corporation | On demand allocation of cache buffer slots |
US8499106B2 (en) | 2010-06-24 | 2013-07-30 | Arm Limited | Buffering of a data stream |
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 | 株式会社東芝 | メモリシステムおよびメモリシステムの制御方法 |
WO2012087971A2 (en) | 2010-12-20 | 2012-06-28 | Marvell World Trade Ltd. | Descriptor scheduler |
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 | メモリシステム |
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 |
US8799557B1 (en) | 2011-10-13 | 2014-08-05 | Netapp, Inc. | System and method for non-volatile random access memory emulation |
US9558030B2 (en) * | 2011-11-09 | 2017-01-31 | Intel Corporation | Method, apparatus, and system to handle transactions received after a configuration change request |
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 |
US9347254B2 (en) * | 2012-05-04 | 2016-05-24 | The Chamberlain Group, Inc. | Command priority levels for an access controller apparatus |
CN102789439B (zh) * | 2012-06-16 | 2016-02-10 | 北京忆恒创源科技有限公司 | 控制数据传输过程中的中断的方法与存储设备 |
US8930636B2 (en) * | 2012-07-20 | 2015-01-06 | Nvidia Corporation | Relaxed coherency between different caches |
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 |
US20140143476A1 (en) * | 2012-11-16 | 2014-05-22 | Rotem Sela | Usage of cache and write transaction information in a storage device |
US9501332B2 (en) * | 2012-12-20 | 2016-11-22 | Qualcomm Incorporated | System and method to reset a lock indication |
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 |
US20150378886A1 (en) | 2013-04-08 | 2015-12-31 | Avalanche Technology, Inc. | Software-defined ssd and system using the same |
US9418010B2 (en) * | 2013-04-17 | 2016-08-16 | Apple Inc. | Global maintenance command protocol in a cache coherent system |
JP6146128B2 (ja) | 2013-05-20 | 2017-06-14 | ヤマハ株式会社 | データ処理装置 |
WO2014193376A1 (en) | 2013-05-30 | 2014-12-04 | Hewlett-Packard Development Company, L.P. | Separate memory controllers to access data in memory |
US9367472B2 (en) * | 2013-06-10 | 2016-06-14 | Oracle International Corporation | Observation of data in persistent memory |
US10108539B2 (en) * | 2013-06-13 | 2018-10-23 | International Business Machines Corporation | Allocation of distributed data structures |
US9423959B2 (en) * | 2013-06-29 | 2016-08-23 | Intel Corporation | Method and apparatus for store durability and ordering in a persistent memory architecture |
TWI493455B (zh) | 2013-07-02 | 2015-07-21 | Phison Electronics Corp | 命令佇列管理方法、記憶體控制器及記憶體儲存裝置 |
US20150033234A1 (en) * | 2013-07-23 | 2015-01-29 | Qualcomm Incorporated | Providing queue barriers when unsupported by an i/o protocol or target device |
US20150067291A1 (en) | 2013-08-30 | 2015-03-05 | Kabushiki Kaisha Toshiba | Controller, memory system, and method |
WO2015099746A1 (en) | 2013-12-26 | 2015-07-02 | Intel Corporation | Data reorder during memory access |
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 |
WO2015126518A2 (en) | 2014-02-20 | 2015-08-27 | 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 |
KR102126760B1 (ko) | 2014-04-07 | 2020-06-25 | 삼성전자 주식회사 | 비휘발성 메모리 장치의 구동 방법 |
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 |
US20160170767A1 (en) * | 2014-12-12 | 2016-06-16 | Intel Corporation | Temporary transfer of a multithreaded ip core to single or reduced thread configuration during thread offload to co-processor |
US20160232112A1 (en) * | 2015-02-06 | 2016-08-11 | Futurewei Technologies, Inc. | Unified Memory Bus and Method to Operate the Unified Memory Bus |
US20170024297A1 (en) | 2015-07-22 | 2017-01-26 | Kabushiki Kaisha Toshiba | Storage Device and Data Save Method |
US9996262B1 (en) * | 2015-11-09 | 2018-06-12 | Seagate Technology Llc | Method and apparatus to abort a command |
US20170160929A1 (en) | 2015-12-02 | 2017-06-08 | Hewlett Packard Enterprise Development Lp | In-order execution of commands received via a networking fabric |
US9792051B2 (en) * | 2016-02-24 | 2017-10-17 | Samsung Electronics Co., Ltd. | System and method of application aware efficient IO scheduler |
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 |
US20180239532A1 (en) * | 2017-02-23 | 2018-08-23 | Western Digital Technologies, Inc. | Techniques for performing a non-blocking control sync operation |
US10359955B2 (en) * | 2017-02-23 | 2019-07-23 | Western Digital Technologies, Inc. | Data storage device configured to perform a non-blocking control update operation |
US10261907B2 (en) * | 2017-03-09 | 2019-04-16 | International Business Machines Corporation | Caching data in a redundant array of independent disks (RAID) storage system |
US11194524B2 (en) * | 2017-09-15 | 2021-12-07 | Qualcomm Incorporated | Apparatus and method for performing persistent write operations using a persistent write command |
US10691619B1 (en) * | 2017-10-18 | 2020-06-23 | Google Llc | Combined integrity protection, encryption and authentication |
CN110033799A (zh) * | 2018-01-12 | 2019-07-19 | 三星电子株式会社 | 基于屏障命令按顺序存储数据的存储设备 |
US11016890B2 (en) * | 2018-02-05 | 2021-05-25 | Micron Technology, Inc. | CPU cache flushing to persistent memory |
US10613983B2 (en) * | 2018-03-20 | 2020-04-07 | Advanced Micro Devices, Inc. | Prefetcher based speculative dynamic random-access memory read request technique |
US10671486B2 (en) * | 2018-07-25 | 2020-06-02 | International Business Machines Corporation | Flashcopy tracking for storage optimization |
-
2016
- 2016-06-15 US US15/182,821 patent/US10534540B2/en active Active
-
2017
- 2017-05-25 KR KR1020217028132A patent/KR102344768B1/ko active IP Right Grant
- 2017-05-25 KR KR1020207033373A patent/KR102299721B1/ko active IP Right Grant
- 2017-05-25 CN CN201780034967.3A patent/CN109313620B/zh active Active
- 2017-05-25 EP EP17810712.4A patent/EP3465449B1/en active Active
- 2017-05-25 KR KR1020187037846A patent/KR102183016B1/ko active IP Right Grant
- 2017-05-25 CN CN202211271961.7A patent/CN115525587A/zh not_active Withdrawn
- 2017-05-25 KR KR1020227030944A patent/KR20220127374A/ko not_active Application Discontinuation
- 2017-05-25 KR KR1020217042417A patent/KR102442495B1/ko active IP Right Grant
- 2017-05-25 WO PCT/US2017/034487 patent/WO2017213876A1/en unknown
- 2017-06-05 TW TW108116191A patent/TWI744632B/zh active
- 2017-06-05 TW TW106118556A patent/TWI662408B/zh active
-
2019
- 2019-12-18 US US16/719,268 patent/US11340787B2/en active Active
-
2022
- 2022-05-20 US US17/749,801 patent/US11947796B2/en active Active
-
2024
- 2024-04-01 US US18/623,811 patent/US20240248601A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20200125263A1 (en) | 2020-04-23 |
US10534540B2 (en) | 2020-01-14 |
EP3465449B1 (en) | 2023-07-05 |
KR20200133822A (ko) | 2020-11-30 |
KR20220127374A (ko) | 2022-09-19 |
KR102183016B1 (ko) | 2020-11-26 |
TW201935246A (zh) | 2019-09-01 |
KR102299721B1 (ko) | 2021-09-10 |
CN109313620A (zh) | 2019-02-05 |
KR20210113690A (ko) | 2021-09-16 |
CN109313620B (zh) | 2022-11-01 |
US20240248601A1 (en) | 2024-07-25 |
TWI744632B (zh) | 2021-11-01 |
EP3465449A4 (en) | 2020-07-22 |
US20170351433A1 (en) | 2017-12-07 |
KR102442495B1 (ko) | 2022-09-14 |
US11340787B2 (en) | 2022-05-24 |
EP3465449A1 (en) | 2019-04-10 |
KR20190003821A (ko) | 2019-01-09 |
US11947796B2 (en) | 2024-04-02 |
US20220276786A1 (en) | 2022-09-01 |
KR102344768B1 (ko) | 2021-12-31 |
KR20220000931A (ko) | 2022-01-04 |
TWI662408B (zh) | 2019-06-11 |
TW201807575A (zh) | 2018-03-01 |
WO2017213876A1 (en) | 2017-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109313620B (zh) | 存储器协议 | |
WO2018190948A1 (en) | Memory protocol with programmable buffer and cache size | |
US20180364919A1 (en) | Memory controller | |
US11586566B2 (en) | Memory protocol with command priority | |
US12093565B2 (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20221227 |