CN109313620B - 存储器协议 - Google Patents

存储器协议 Download PDF

Info

Publication number
CN109313620B
CN109313620B CN201780034967.3A CN201780034967A CN109313620B CN 109313620 B CN109313620 B CN 109313620B CN 201780034967 A CN201780034967 A CN 201780034967A CN 109313620 B CN109313620 B CN 109313620B
Authority
CN
China
Prior art keywords
block
memory device
data
buffers
buffer
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
Application number
CN201780034967.3A
Other languages
English (en)
Other versions
CN109313620A (zh
Inventor
罗伯特·M·沃克
詹姆斯·A·小哈尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Priority to CN202211271961.7A priority Critical patent/CN115525587A/zh
Publication of CN109313620A publication Critical patent/CN109313620A/zh
Application granted granted Critical
Publication of CN109313620B publication Critical patent/CN109313620B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details 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

存储器协议
技术领域
本发明大体上涉及存储器装置,且更特定来说,本发明涉及用于存储器协议的设备及方法。
背景技术
存储器装置通常提供为计算机或其它电子装置中的内部电路半导体电路集成电路。存在许多不同类型存储器,包含易失性存储器及非易失性存储器。易失性存储器可需要电力以维持其数据,且包含随机存取存储器(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 (18)

1.一种经配置以使用块配置寄存器的设备,其包括:
存储器装置(110),包括若干块缓冲器;及
控制器(114),其耦合到所述存储器装置(110),所述控制器(114)经配置以:
使用块配置寄存器基于从主机(102)接收的命令对所述存储器装置的所述若干块缓冲器(116)执行操作,其中所述若干块缓冲器的大小是由所述块配置寄存器编程以根据缓冲器起始地址和缓冲器结束地址来匹配所述存储器装置的块的大小,其中所述块配置寄存器包括目标地址寄存器,所述目标地址寄存器识别与所述操作相关联的所述存储器装置的数据的目标地址,其中所述目标地址寄存器与所述缓冲器起始地址和所述缓冲器结束地址配对以用于所述若干块缓冲器的每一者,且其中所述操作经执行以从所述若干块缓冲器(116)读取取自所述存储器装置的所述目标地址的数据及将数据写入到所述存储器装置上的所述若干块缓冲器(116)并接着写入所述存储器装置的所述目标地址;以及
其中所述块配置寄存器包含状态寄存器,所述状态寄存器包含用于所述若干块缓冲器中的每一者的状态信息,所述状态信息包含指示下列的信息:所述若干块缓冲器中是否存在有效数据,与命令相关联的数据是否已移动,及/或块缓冲器数据中是否存在可恢复错误及/或致命错误。
2.根据权利要求1所述的设备,其中所述块配置寄存器包含块缓冲器地址寄存器(230),所述块缓冲器地址寄存器(230)包含所述缓冲器起始地址(235)以及所述缓冲器结束地址(233)。
3.根据权利要求1所述的设备,其中所述块配置寄存器包含所述目标地址寄存器(232),所述目标地址寄存器(232)包含用于所述若干块缓冲器中的每一者的目标地址。
4.根据权利要求1所述的设备,其中所述控制器经配置以自所述主机接收命令以编程所述块配置寄存器从而设置用于所述若干块缓冲器中的每一者的所述缓冲器起始地址(235)、用于所述若干块缓冲器中的每一者的所述缓冲器结束地址(233)、及所述存储器装置上的存储器单元阵列中的对应目标地址(232)。
5.根据权利要求4所述的设备,其中所述控制器经配置以自所述主机(102)接收命令以将数据写入到所述若干块缓冲器。
6.根据权利要求5所述的设备,其中所述控制器经配置以自所述主机(102)接收命令以将数据的一部分从所述若干块缓冲器提交到所述存储器单元阵列中的所述对应目标地址。
7.根据权利要求4所述的设备,其中所述控制器经配置以自所述主机接收命令以从所述若干块缓冲器读取数据。
8.根据权利要求4所述的设备,其中所述控制器经配置以使得从所述存储器单元阵列中的所述对应目标地址(232)的数据被写入到所述若干块缓冲器且根据所述主机(102)的所述命令从所述若干块缓冲器读取所述数据。
9.根据权利要求4所述的设备,其中所述控制器经配置以使得在完成命令之后更新用于所述若干块缓冲器的所述状态信息(231)。
10.一种用以使用块配置寄存器的方法,其包括:
从在存储器装置的块配置寄存器的主机接收一或多个命令,所述存储器装置包括若干块缓冲器;
根据所述块配置寄存器的一或多个目标地址寄存器识别与操作相关联的所述存储器装置的数据的目标地址,其中所述目标地址寄存器与缓冲器起始地址和缓冲器结束地址配对以用于所述若干块缓冲器的每一者;以及
在所述存储器装置根据从所述主机接收的所述一或多个命令对所述存储器装置的所述若干块缓冲器执行操作,其中所述若干块缓冲器的大小是由所述块配置寄存器编程以根据所述缓冲器起始地址和所述缓冲器结束地址匹配所述存储器装置的块的大小,且其中所述操作至少包括以下一者:
从所述若干块缓冲器读取数据,所述数据取自所述存储器装置的所述目标地址;或者
将数据写入所述存储器装置的所述若干块缓冲器并写入所述存储器装置的所述目标地址,
其中所述块配置寄存器包含状态寄存器,所述状态寄存器包含用于所述若干块缓冲器中的每一者的状态信息,所述状态信息包含指示下列的信息:所述若干块缓冲器中是否存在有效数据,与命令相关联的数据是否已移动,及/或块缓冲器数据中是否存在可恢复错误及/或致命错误。
11.根据权利要求10所述的方法,其中所述块配置寄存器包含块缓冲器地址寄存器,所述块缓冲器地址寄存器包含所述缓冲器起始地址及所述缓冲器结束地址。
12.根据权利要求10所述的方法,其中所述块配置寄存器包含所述目标地址寄存器,所述目标地址寄存器包含用于所述若干块缓冲器中的每一者的目标地址。
13.根据权利要求10所述的方法,其中所述方法还包括自所述主机接收命令以编程所述块配置寄存器从而设置用于所述若干块缓冲器中的每一者的所述缓冲器起始地址、用于所述若干块缓冲器中的每一者的所述缓冲器结束地址、及所述存储器装置上的存储器单元阵列中的对应目标地址。
14.根据权利要求13所述的方法,其中所述方法还包括自所述主机接收命令以将数据写入到所述若干块缓冲器。
15.根据权利要求14所述的方法,其中所述方法还包括自所述主机接收命令以将数据的一部分从所述若干块缓冲器提交到所述存储器单元阵列中的所述对应目标地址。
16.根据权利要求13所述的方法,其中所述方法还包括自所述主机接收命令以从所述若干块缓冲器读取数据。
17.根据权利要求13所述的方法,其中所述方法还包括使得从所述存储器单元阵列中的所述对应目标地址的数据被写入到所述若干块缓冲器且根据所述主机的所述命令从所述若干块缓冲器读取所述数据。
18.一种用以使用块配置寄存器的方法,其包括:
从主机传送一或多个命令到存储器装置的块配置寄存器,所述存储器装置包括若干块缓冲器;
响应所述一或多个命令以在所述存储器装置的所述块配置寄存器的所述若干块缓冲器与所述主机之间通信数据,其中所述数据至少部分根据以下操作写入所述若干块缓冲器或从所述若干块缓冲器读出:
根据所述块配置寄存器的一或多个目标地址寄存器以识别与操作相关联的所述存储器装置的所述数据的目标地址,其中所述目标地址寄存器与缓冲器起始地址和缓冲器结束地址配对以用于所述若干块缓冲器的每一者;以及
根据从所述主机传送的所述一或多个命令对所述存储器装置的所述若干块缓冲器执行操作,其中所述若干块缓冲器的大小是由所述块配置寄存器编程以根据所述缓冲器起始地址和所述缓冲器结束地址匹配所述存储器装置的块的大小,其中所述操作至少包括以下一者:
从所述若干块缓冲器读取数据,所述数据取自所述存储器装置的所述目标地址;或者
将数据写入所述存储器装置的所述若干块缓冲器并写入所述存储器装置的所述目标地址,
其中所述块配置寄存器包含状态寄存器,所述状态寄存器包含用于所述若干块缓冲器中的每一者的状态信息,所述状态信息包含指示下列的信息:所述若干块缓冲器中是否存在有效数据,与命令相关联的数据是否已移动,及/或块缓冲器数据中是否存在可恢复错误及/或致命错误。
CN201780034967.3A 2016-06-06 2017-05-25 存储器协议 Active CN109313620B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211271961.7A CN115525587A (zh) 2016-06-06 2017-05-25 存储器协议

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662346201P 2016-06-06 2016-06-06
US62/346,201 2016-06-06
US15/182,821 US10534540B2 (en) 2016-06-06 2016-06-15 Memory protocol
US15/182,821 2016-06-15
PCT/US2017/034487 WO2017213876A1 (en) 2016-06-06 2017-05-25 Memory protocol

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202211271961.7A Division CN115525587A (zh) 2016-06-06 2017-05-25 存储器协议

Publications (2)

Publication Number Publication Date
CN109313620A CN109313620A (zh) 2019-02-05
CN109313620B true CN109313620B (zh) 2022-11-01

Family

ID=60483878

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202211271961.7A Withdrawn CN115525587A (zh) 2016-06-06 2017-05-25 存储器协议
CN201780034967.3A Active CN109313620B (zh) 2016-06-06 2017-05-25 存储器协议

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202211271961.7A Withdrawn CN115525587A (zh) 2016-06-06 2017-05-25 存储器协议

Country Status (6)

Country Link
US (3) US10534540B2 (zh)
EP (1) EP3465449B1 (zh)
KR (5) KR102442495B1 (zh)
CN (2) CN115525587A (zh)
TW (2) TWI662408B (zh)
WO (1) WO2017213876A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
US6718404B2 (en) * 2000-06-02 2004-04-06 Hewlett-Packard Development Company, L.P. Data migration using parallel, 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
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
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
US7243200B2 (en) * 2004-07-15 2007-07-10 International Business Machines Corporation Establishing command order in an out of order DMA command queue
US9026744B2 (en) * 2005-03-23 2015-05-05 Qualcomm Incorporated Enforcing strongly-ordered requests in a weakly-ordered processing
US7500045B2 (en) * 2005-03-23 2009-03-03 Qualcomm Incorporated Minimizing memory barriers when enforcing strongly-ordered requests in a weakly-ordered processing system
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
US8874831B2 (en) 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
US7984202B2 (en) * 2007-06-01 2011-07-19 Qualcomm Incorporated Device directed memory barriers
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
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
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 通信装置、この通信装置に搭載されるプログラマブルデバイス及びそのプログラム書き込み制御方法
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 株式会社東芝 メモリシステムおよびメモリシステムの制御方法
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
US20150378884A1 (en) 2013-04-08 2015-12-31 Avalanche Technology, Inc. Storage system controlling addressing of solid storage disks (ssd)
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 ヤマハ株式会社 データ処理装置
EP3005128B1 (en) 2013-05-30 2018-07-04 Hewlett-Packard Enterprise Development LP 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
EP3087489A4 (en) 2013-12-26 2017-09-20 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

Also Published As

Publication number Publication date
KR20220000931A (ko) 2022-01-04
CN115525587A (zh) 2022-12-27
CN109313620A (zh) 2019-02-05
TW201935246A (zh) 2019-09-01
KR102183016B1 (ko) 2020-11-26
TW201807575A (zh) 2018-03-01
KR102299721B1 (ko) 2021-09-10
KR20200133822A (ko) 2020-11-30
US20170351433A1 (en) 2017-12-07
KR20220127374A (ko) 2022-09-19
US20220276786A1 (en) 2022-09-01
EP3465449A1 (en) 2019-04-10
US11340787B2 (en) 2022-05-24
KR20210113690A (ko) 2021-09-16
US20200125263A1 (en) 2020-04-23
KR102442495B1 (ko) 2022-09-14
EP3465449B1 (en) 2023-07-05
US11947796B2 (en) 2024-04-02
EP3465449A4 (en) 2020-07-22
WO2017213876A1 (en) 2017-12-14
KR20190003821A (ko) 2019-01-09
TWI744632B (zh) 2021-11-01
KR102344768B1 (ko) 2021-12-31
US10534540B2 (en) 2020-01-14
TWI662408B (zh) 2019-06-11

Similar Documents

Publication Publication Date Title
CN109313620B (zh) 存储器协议
US20220398200A1 (en) Memory protocol with programmable buffer and cache size
US10621117B2 (en) Controlling memory devices using a shared channel
US11586566B2 (en) Memory protocol with command priority
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