CN114631076A - 加载命令的生存时间 - Google Patents

加载命令的生存时间 Download PDF

Info

Publication number
CN114631076A
CN114631076A CN202080076488.XA CN202080076488A CN114631076A CN 114631076 A CN114631076 A CN 114631076A CN 202080076488 A CN202080076488 A CN 202080076488A CN 114631076 A CN114631076 A CN 114631076A
Authority
CN
China
Prior art keywords
memory
processor
duration
type
response
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
Application number
CN202080076488.XA
Other languages
English (en)
Inventor
S·古纳塞克拉安
S·E·布拉德绍
J·M·埃诺
A·D·艾卡尔
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
Publication of CN114631076A publication Critical patent/CN114631076A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • 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/0614Improving the reliability of storage systems
    • 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/0653Monitoring storage devices or systems
    • 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/7209Validity control, e.g. using flags, time stamps or sequence numbers

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)
  • Quality & Reliability (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明涉及一种存储器子系统,其经配置以响应于来自处理器的加载命令的生存时间要求。举例来说,由处理器(例如,SoC)发出的加载命令可包含任选生存时间参数或与任选生存时间参数相关联。所述参数要求所述存储器地址处的数据在由所述生存时间参数指定的时间内可用。当所请求数据当前在较低速存储器(例如,NAND快闪)中且在较高速存储器(例如,DRAM、NVRAM)中不可用时,所述存储器子系统可确定无法以所述指定时间使所述数据可用且任选地跳过所述操作并立即传回错误响应。

Description

加载命令的生存时间
相关申请案
本申请案主张2019年11月19日申请且标题为“加载命令的生存时间(TIME TOLIVE FOR LOAD COMMANDS)”的序列号为16/688,250的美国专利申请案的优先权,所述美国专利申请案的全部公开内容特此以引用方式并入本文中。
技术领域
本文中公开的至少一些实施例大体上涉及存储器装置,且更特定来说(但不限于),涉及加载命令的生存时间。
背景技术
存储器子系统可包含存储数据的一或多个存储器组件。存储器子系统可为数据存储系统,例如固态驱动器(SSD)或硬盘驱动器(HDD)。存储器子系统可为存储器模块,例如双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)或非易失性双列直插式存储器模块(NVDIMM)。存储器组件可为(例如)非易失性存储器组件及易失性存储器组件。存储器组件的实例包含存储器集成电路。一些存储器集成电路是易失性的且需要电力来维持所存储的数据。一些存储器集成电路是非易失性的且即使是在未通电时也可保持所存储的数据。非易失性存储器的实例包含快闪存储器、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)及电可擦除可编程只读存储器(EEPROM)存储器等。易失性存储器的实例包含动态随机存取存储器(DRAM)及静态随机存取存储器(SRAM)。一般来说,主机系统可利用存储器子系统在存储器组件处存储数据及从所述存储器组件检索数据。
举例来说,计算机可包含主机系统及附接到主机系统的一或多个存储器子系统。主机系统可具有与一或多个存储器子系统通信以存储及/或检索数据及指令的中央处理单元(CPU)。用于计算机的指令可包含操作系统、装置驱动器及应用程序。操作系统管理计算机中的资源且为应用程序提供共同服务,例如存储器分配及资源的时间共享。装置驱动器操作或控制计算机中特定类型的装置;且操作系统使用装置驱动器提供由所述类型的装置提供的资源及/或服务。计算机系统的中央处理单元(CPU)可运行操作系统及装置驱动器以将服务及/或资源提供到应用程序。中央处理单元(CPU)可运行使用服务及/或资源的应用程序。举例来说,实施计算机系统的一类应用的应用程序可指示中央处理单元(CPU)将数据存储于存储器子系统的存储器组件中及从存储器组件检索数据。
主机系统可根据指定用于经由外围组件互连高速(PCI Express或PCIe)总线存取非易失性存储器的逻辑装置接口协议的预定义通信协议与存储器子系统通信,所述协议例如也称为NVM Express(NVMe)的非易失性存储器主机控制器接口规范(NVMHCI)。根据通信协议,主机系统可向存储器子系统发送不同类型的命令;且存储器子系统可执行命令且提供对命令的响应。一些命令指示存储器子系统将数据项存储于命令中指定的地址处或从命令中指定的地址检索数据项,所述命令例如读取命令及写入命令。一些命令管理存储器子系统中的基础架构及/或管理任务,例如管理命名空间的命令、附加命名空间的命令、创建输入/输出提交或完成队列的命令、删除输入/输出提交或完成队列的命令、用于固件管理的命令等。
附图说明
实施例通过实例来说明且不限于附图的图,其中相似的参考元件指示类似元件。
图1展示具有用于从存储器子系统加载数据的生存时间的系统。
图2说明实施用来从存储器加载数据的生存时间的方法。
图3展示实施用来从存储器加载数据的生存时间的另一方法。
图4说明其中可实施生存时间技术的实例计算系统。
图5是本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
本公开的至少一些方面涉及用以存取由处理器指定的存储器地址处的数据或指令的加载命令的生存时间。
举例来说,由处理器(例如,SoC)发出的加载命令可经配置以包含任选生存时间参数或与任选生存时间参数相关联,所述参数要求存储器地址处的数据在由生存时间参数指定的时间内可用。技术可改进处理器存取具有不同速度的存储器的效率。
举例来说,当所请求数据当前在较低速存储器(例如,NAND快闪)中且在较高速存储器(例如,DRAM、NVRAM)中不可用时,处理器可接收响应(例如,在所请求生存时间不可用)而非必须等待在低速存储器上完成加载操作。当存储器子系统确定无法在指定时间内使数据可用时,存储器子系统可跳过操作并传回错误响应。
任选地,此错误响应可致使存储器子系统将数据从较低速存储器(例如,NAND快闪)加载到较高速存储器(例如,DRAM、NVRAM)。因此,后续存储器存取请求可以生存时间要求来满足。具有生存时间要求的此类存储器加载操作向处理器提供任选地跳过某些非关键数据的处理(例如,临时地)的灵活性,而无需等待过量的时间。当要求或期望对所请求数据的处理时,处理器可任选地放宽生存时间参数。
任选地,处理器及/或存储器可具有用来存储生存时间参数的寄存器。加载指令可从逻辑地址空间转译成物理地址空间且与到存储器子系统的加载命令的生存时间参数组合。
图1展示具有用于从存储器子系统110加载数据的生存时间的系统。在图1中,存储器子系统110具有不同类型的存储器,例如动态随机存取存储器(DRAM)107、非易失性随机存取存储器(NVRAM)109及/或NAND快闪存储器(111)。存储器子系统110中的不同类型的存储器可被寻址指定存储器地址103及生存时间要求105的加载命令101。在一些实施方案中,生存时间要求105在来自处理器(例如,系统单芯片(SoC)或中央处理单元(CPU))的加载命令/指令101中指定。在其它实施方案中,寄存器用于存储生存时间要求105;且寄存器的内容可经更新以针对在存储器子系统110中接收到的加载命令/指令调整生存时间要求105。
举例来说,由处理器(例如,系统单芯片)(例如,图4中说明的处理装置418)发出的加载命令101可经配置以包含任选生存时间参数105,所述参数要求存储器地址103处的数据在由生存时间参数105指定的时间内可用。举例来说,加载命令中的存储器地址103可最初由存储器子系统110映射到较低速存储器(例如,NAND快闪111)。因此,在存储器地址处请求的数据在较高速存储器(例如,DRAM 107、NVRAM 109)中不可用。当存储器子系统110确定无法在指定时间内使数据可用于处理时,存储器子系统110可跳过操作并传回错误响应。任选地,此错误响应可致使存储器子系统110将数据从较低速存储器(例如,NAND快闪111)加载到较高速存储器(例如,DRAM 107、NVRAM 109)(例如,将数据缓冲于较高速存储器中、将数据高速缓存于较高速存储器中或通过将存储器地址页面从较低速存储器调换到较高速存储器来将存储器地址重新映射到较高速存储器)。任选地,错误响应可包含存储器地址103处的数据将变得可用的经估计时间。因此,后续存储器存取请求可在生存时间参数要求105下满足。
当处理器接收到此错误响应时,处理器可任选地推迟存储器地址103处的数据/指令的处理(例如,当数据/指令为非关键的时。因此,处理器可在一段时间之后重新发出加载命令101,预期存储器子系统110可能进行布置以使数据/指令在生存时间要求105下可用。举例来说,存储器子系统110可通过缓冲、高速缓存及/或改变存储器地址映射来进行布置,所述存储器地址映射将存储器地址(103)映射到存储器子系统110中的存储器单元的物理存储器地址。
任选地,处理器可响应于针对前一更严格生存时间要求产生的错误响应(例如,当存储器地址103要求或期望立即对所请求的数据进行处理时)放宽生存时间参数105。
任选地,处理器可将生存时间参数105写入到存储器子系统110中的寄存器中以指定生存时间要求。因此,加载命令101不必明确包含用于生存时间参数105的字段。
任选地,处理器具有存储生存时间参数105的寄存器。当来自处理器的含有逻辑存储器地址的加载指令被存储器控制器(例如,图4中说明的416)转换成加载命令时,存储器控制器将逻辑存储器地址转译成加载命令中的物理存储器地址且添加生存时间参数105、传输到存储器子系统110的加载命令101。
图2说明实施用来从存储器加载数据的生存时间的方法。举例来说,图2的方法可执行于图1的系统中,且通常由处理逻辑执行,所述处理逻辑可包含硬件(例如处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如,运行或执行于处理装置上的指令)或其组合。尽管以特定顺序或次序展示,但除非另外指定,否则过程的次序是可修改的。因此,所说明实施例应被理解为仅作为实例,且所说明过程可以不同次序执行,且一些过程可并行执行。另外,在各个实施例中,可省略一或多个过程。因此,并非在每个实施例中都需要所有过程。其它过程流是可能的。
在框201,存储器子系统110可从处理器接收用以从存储器地址103加载项的加载命令101。举例来说,命令可包含指定持续时间的生存时间参数105。
在框203,存储器子系统110可确定存储器地址103处的项是否可在持续时间内提供到处理器。举例来说,存储器地址可定位于多个媒体单元107到111当中的媒体单元(例如,107、109或111)处。举例来说,如果数据的存储器地址103在高速型存储器装置(例如,DRAM 107、NFRAM 109)中,那么数据可在持续时间内提供到处理器。然而,如果数据的存储器地址103在低速型存储器装置(例如,NAND快闪111)中,那么数据无法在持续时间内提供到处理器。
在框205,当存储器子系统110确定将经由存储器地址103识别的项提供到处理器花费的时间长于持续时间时,例如,存储器子系统110可在持续时间内向处理器提供响应。举例来说,当存储器子系统110确定无法在指定时间内使数据可用时,存储器子系统110可跳过操作并传回错误响应。
图3展示实施用来从存储器加载数据的生存时间的另一方法。举例来说,图3的方法可执行于图1的系统中,且通常由处理逻辑执行,所述处理逻辑可包含硬件(例如处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如,运行或执行于处理装置上的指令)或其组合。尽管以特定顺序或次序展示,但除非另外指定,否则过程的次序是可修改的。因此,所说明实施例应被理解为仅作为实例,且所说明过程可以不同次序执行,且一些过程可并行执行。另外,在各个实施例中,可省略一或多个过程。因此,并非在每个实施例中都需要所有过程。其它过程流是可能的。
在框301,存储器子系统110可确定将存储器地址103处的项提供到处理器的延时长于持续时间。举例来说,命令101可包含指定持续时间的生存时间参数105。举例来说,如果数据的存储器地址103在低速型存储器装置(例如,NAND快闪111)中,那么数据无法在持续时间内提供到处理器。
在框303,当存储器子系统110确定将经由存储器地址103识别的项提供到处理器花费的时间长于持续时间时,例如,存储器子系统110可在持续时间内向处理器提供错误响应。举例来说,当存储器子系统110确定无法在指定时间内使数据可用时,存储器子系统110可跳过操作并传回错误响应。
在框305,当存储器子系统110确定将经由存储器地址103识别的项提供到处理器花费的时间长于持续时间时,例如,存储器子系统110可在持续时间内向处理器提供错误响应。在存储器子系统110接收到错误响应之后,例如,此错误响应可致使存储器子系统110将数据从较低速存储器(例如,NAND快闪111)加载/移动到较高速存储器(例如,DRAM 107、NVRAM 109)。
图4说明其中可实施生存时间技术的实例计算系统。举例来说,可对在存储器子系统410接收到加载命令101与存储器子系统410提供在加载命令101中指定的存储器地址103处检索的数据之间的时间段强加图1的生存时间要求101。
一般来说,存储器子系统也可称为“存储器装置”。存储器子系统的实例是经由存储器总线连接到中央处理单元(CPU)的存储器模块。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)、非易失性双列直插式存储器模块(NVDIMM)等。
存储器子系统的另一实例是经由外围互连件(例如,输入/输出总线、存储区域网络)连接到中央处理单元(CPU)的数据存储器/系统。存储器的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器及硬盘驱动器(HDD)。
在一些实施例中,存储器子系统是提供存储器功能及存储功能两者的混合存储器/存储子系统。一般来说,主机系统可利用包含一或多个存储器组件的存储器子系统。主机系统可提供将存储在存储器子系统处的数据且可请求将从存储器子系统检索的数据。
存储器子系统410可包含媒体,例如媒体单元/存储器组件409A到409N。一般来说,媒体单元/存储器组件409A到409N可为易失性存储器组件、非易失性存储器组件或两者的组合。媒体单元/存储器组件409A到409N中的每一者可独立于其它媒体单元/存储器组件409A到409N的操作执行操作来存储、记录、编程、写入或提交新数据。因此,媒体单元/存储器组件409A到409N可并行用于执行写入命令。在一些实施例中,存储器子系统是存储系统。存储系统的实例是固态驱动器(SSD)。在一些实施例中,存储器子系统410是存储器模块。存储器模块的实例包含DIMM、NVDIMM及NVDIMM-P。在一些实施例中,存储器子系统410是混合存储器/存储子系统。一般来说,计算环境可包含使用存储器子系统410的主机系统420。举例来说,主机系统420可将数据写入到存储器子系统410及从存储器子系统410读取数据。
主机系统420可为计算装置,例如桌上型计算机、膝上型计算机、网络服务器、移动装置或包含存储器及处理装置的此类计算装置。主机系统420可包含存储器子系统410或可耦合到存储器子系统410使得主机系统420可从存储器子系统110读取数据或将数据写入到存储器子系统410。主机系统420可经由物理主机接口耦合到存储器子系统410。如本文中使用,“耦合到”通常是指组件之间的连接,其可为间接通信连接或直接通信连接(例如,无中介组件),无论是有线还是无线的,包含例如电、光、磁等的连接。物理主机接口的实例包含(但不限于)串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(SAS)、双倍数据速率(DDR)存储器总线等。物理主机接口可用于在主机系统420与存储器子系统410之间传输数据。当存储器子系统410通过PCIe接口与主机系统420耦合时,主机系统420可进一步利用NVM高速(NVMe)接口存取存储器组件409A到409N。物理主机接口可提供用于在存储器子系统410与主机系统420之间传递控制、地址、数据及其它信号的接口。图4说明存储器子系统410作为实例。一般来说,主机系统420可经由同一通信连接、多个单独通信连接及/或通信连接的组合存取多个存储器子系统。
主机系统420包含处理装置418及控制器416。主机系统420的处理装置418可为(例如)微处理器、中央处理单元(CPU)、处理器的处理器核心、执行单元等。在一些例子中,控制器416可称为存储器控制器、存储器管理单元及/或启动器。在一个实例中,控制器416控制通过耦合于主机系统420与存储器子系统410之间的总线的通信。
一般来说,控制器416可发送命令或请求到存储器子系统410以对存储器组件409A到409N进行所要存取。控制器416可进一步包含用于与存储器子系统410通信的接口电路系统。接口电路系统可将从存储器子系统410接收的响应转换成用于主机系统420的信息。
主机系统420的控制器416可与存储器子系统410的控制器415通信以执行操作,例如在存储器组件409A到409N处读取数据、写入数据或擦除数据及其它此类操作。在一些例子中,控制器416经集成于处理装置418的同一封装内。在其它例子中,控制器416与处理装置418的封装分离。控制器416及/或处理装置418可包含硬件,例如一或多个集成电路及/或离散组件、缓冲存储器、高速缓存存储器或其组合。控制器416及/或处理装置418可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或另一合适的处理器。
一般来说,媒体单元/存储器组件409A到409N可包含不同类型的非易失性存储器组件及/或易失性存储器组件的任何组合。非易失性存储器组件的实例包含“与非”(NAND)型快闪存储器。存储器组件409A到409N中的每一者可包含一或多个存储器单元阵列,例如单电平单元(SLC)或多电平单元(MLC)(例如,三电平单元(TLC)或四电平单元(QLC))。在一些实施例中,特定存储器组件可包含存储器单元的SLC部分及MLC部分两者。存储器单元中的每一者可存储由主机系统420使用的一或多个数据位(例如,数据块)。尽管描述了非易失性存储器组件(例如NAND型快闪存储器),但存储器组件409A到409N可基于任何其它类型的存储器,例如易失性存储器。在一些实施例中,存储器组件409A到409N可为(但不限于)随机存取存储器(RAM)、只读存储器(ROM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、相变存储器(PCM)、磁随机存取存储器(MRAM)、自旋力矩(STT)-MRAM、铁电随机存取存储器(FeTRAM)、铁电RAM(FeRAM)、导电桥接RAM(CBRAM)、电阻随机存取存储器(RRAM)、氧化物基RRAM(OxRAM)、“或非”(NOR)快闪存储器、电可擦除可编程只读存储器(EEPROM)、基于纳米线的非易失性存储器、并入忆阻器技术的存储器及非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可基于体电阻变化结合堆叠式交叉栅格式数据存取阵列执行位存储。另外,与许多基于快闪的存储器形成对比,交叉点非易失性存储器可执行就地写入操作,其中可在先前未擦除非易失性存储器单元的情况下对所述非易失性存储器单元进行编程。此外,存储器组件409A到409N的存储器单元可经分组为存储器页面或数据块,其可指代用于存储数据的存储器组件的单位。
存储器子系统110的控制器115可与存储器组件409A到409N通信以执行操作,例如在存储器组件409A到409N处读取数据、写入数据或擦除数据及其它此类操作(例如,响应于由控制器416在命令总线上调度的命令)。控制器415可包含硬件,例如一或多个集成电路及/或离散组件、缓冲存储器或其组合。控制器415可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或另一合适的处理器。控制器415可包含经配置以执行存储于本地存储器419中的指令的处理装置417(处理器)。在说明的实例中,控制器415的本地存储器419包含经配置以存储用于执行控制存储器子系统410的操作的各种过程、操作、逻辑流及例程的指令的嵌入式存储器,包含处置存储器子系统410与主机系统420之间的通信。在一些实施例中,本地存储器419可包含存储存储器指针、经提取数据等的存储器寄存器。本地存储器419还可包含用于存储微代码的只读存储器(ROM)。虽然已将图4中的实例存储器子系统410说明为包含控制器415,但在本公开的另一实施例中,存储器子系统410可不包含控制器415,且可代替地依赖于外部控制(例如,由外部主机提供、或由与存储器子系统分离的处理器或控制器提供)。
一般来说,控制器415可从主机系统420接收命令或操作且可将所述命令或操作转换成指令或适当命令以实现对存储器组件109A到409N的所期望存取。控制器415可负责其它操作,例如磨损均衡操作、废弃项目收集操作、错误检测及错误校正码(ECC)操作、加密操作、高速缓存操作及与存储器组件409A到409N相关联的逻辑块地址与物理块地址之间的地址转译。控制器415可进一步包含用于经由物理主机接口与主机系统420通信的主机接口电路系统。所述主机接口电路系统可将从主机系统接收的命令转换成用以存取存储器组件409A到409N的命令指令,且还将与存储器组件409A到409N相关联的响应转换成用于主机系统420的信息。
存储器子系统410还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如,DRAM)及可从控制器415接收地址且解码所述地址以存取存储器组件409A到409N的地址电路系统(例如,行解码器及列解码器)。
图5说明计算机系统500的实例机器,可在计算机系统500内执行用于致使所述机器执行本文论述的方法论中的任一或多者的一组指令。
举例来说,经配置以实施生存时间要求及/或经配置以根据生存时间要求实施响应的至少一些操作可使用存储为数据传送管理器513的指令实施。
在一些实施例中,计算机系统500可对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦合到或利用存储器子系统(例如,图5的存储器子系统510)或可用于执行数据传送管理器513的操作(例如,执行指令以执行参考图1到4描述的操作)。在替代实施例中,机器可连接(例如,联网)到LAN、内部网络、外部网络及/或因特网中的其它机器。机器可在客户端-服务器网络环境中以服务器或客户端机器的身份操作,在对等(或分布式)网络环境中作为对等机器操作,或在云计算基础架构或环境中作为服务器或客户端机器操作。
机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、交换机或网桥或能够(循序或以其它方式)执行指定由所述机器所采取的动作的一组指令的任何机器。此外,虽然说明了单个机器,但术语“机器”也应被视为包含个别或联合执行一(或多组)指令以执行本文中论述的方法论中的任一或多者的机器的任何集合。
实例计算机系统500包含处理装置502、主存储器504(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM)(例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)、静态随机存取存储器(SRAM)等)及数据存储系统518,其经由总线530(其可包含多个总线)彼此通信。
处理装置502表示一或多个通用处理装置,例如微处理器、中央处理单元或类似物。更特定来说,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的一处理器或实施指令集组合的多个处理器。处理装置502也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器或类似物。处理装置502经配置以执行用于执行本文中论述的操作及步骤的指令526。计算机系统500可进一步包含网络接口装置508以通过网络520通信。
数据存储系统518可包含其上存储一或多组指令526或体现本文中描述的方法论或功能中的任一或多者的软件的机器可读存储媒体524(也称为计算机可读媒体)。指令526在由计算机系统500执行期间也可完全或至少部分驻存于主存储器504内及/或处理装置502内,主存储器504及处理装置502也构成机器可读存储媒体。机器可读存储媒体524、数据存储系统518及/或主存储器504可对应于图5的存储器子系统510。
在一个实施例中,指令526包含用以实施对应于数据传送管理器513的功能性(例如,执行指令来执行参考图1到4描述的操作)的指令。虽然在实例实施例中将机器可读存储媒体524展示为单个媒体,但术语“机器可读存储媒体”应理解为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”也应理解为包含能够存储或编码由机器执行的一组指令且致使机器执行本公开的方法论中的任一或多者的任何媒体。术语“机器可读存储媒体”应相应地理解为包含(但不限于)固态存储器、光学媒体及磁性媒体。
已依据对计算机存储器内的数据位的操作的算法及符号表示呈现前述详细描述的一些部分。这些算法描述及表示是由数据处理领域中的技术人员用于最有效地将其工作实质传达给所属领域的其它技术人员的方式。算法在此处被设想为且通常被设想为导致所期望结果的自洽操作序列。操作是需要物理量的物理操纵的操作。通过,尽管不一定,这些量采用能够被存储、组合、比较及以其它方式操纵的电信号或磁信号的形式。已被证明是方便的是,有时出于习惯用法的原因,原则上将这些信号指代为位、值、元素、符号、字符、项、数字或类似物。
然而,应记住,全部这些及类似术语与适当物理量相关联,且仅为应用于这些量的方便标签。本公开可涉及计算机系统或类似电子计算装置的动作及过程,所述计算机系统或类似电子计算装置操纵表示为计算机系统的寄存器及存储器内的物理(电子)量的数据并将所述数据转换成类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量的其它数据。
本公开还涉及用于执行本文中的操作的设备。此设备可出于预期目的经特殊构造,或其可包含由存储于计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可经存储于计算机可读存储媒体中,例如(但不限于)任何类型的磁盘(包含软盘、光盘、CD-ROM及磁光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁或光卡或适于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。
本文中呈现的算法及显示器并不固有地与任何特定计算机或其它设备相关。各种通用系统可结合根据本文中的教示的程序使用,或可证明构造更专门的设备来执行方法是方便的。用于各种这些系统的结构将如下文描述中陈述那样出现。另外,本公开不参考任何特定编程语言进行描述。应了解,多种编程语言可用于实施本文中所描述的本公开的教示。
本公开可经提供作为计算机程序产品或软件,其可包含具有其上存储有指令的机器可读媒体,所述指令可用于对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程。机器可读媒体包含用于存储呈可由机器(例如计算机)读取的形式的信息的任何机构。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在本描述中,各种功能及操作被描述为由计算机指令执行或引起以简化描述。然而,所属领域的技术人员将认识到,此类表达意味着功能因由一或多个控制器或处理器(例如微处理器)执行计算机指令而产生。替代地,或组合地,功能及操作可使用带有或不带有软件指令的专用电路系统实施,例如使用专用集成电路(ASIC)或现场可编程门阵列(FPGA)。实施例可在不使用软件指令的情况下或结合软件指令使用硬接线电路系统来实施。因此,技术既不限于硬件电路系统与软件的任何特定组合,也不限于由数据处理系统执行的指令的任何特定来源。
在前述说明书中,已参考本公开的特定实例实施例描述了其实施例。将明显的是,在不背离所附权利要求书中所陈述的本公开的实施例的更宽精神及范围的情况下,可对其做出各种修改。因此,说明书及图式应以说明性意义而非限制性意义来看待。

Claims (20)

1.一种方法,其包括:
由存储器系统从处理器接收用以从存储器地址加载项的命令,所述命令包含指定持续时间的参数;
由所述存储器系统确定所述存储器地址处的所述项可在所述持续时间内提供到所述处理器;及
由所述存储器系统响应于确定将经由所述存储器地址识别的所述项提供到所述处理器花费的时间长于所述持续时间来在所述持续时间内向所述处理器提供响应。
2.根据权利要求1所述的方法,其进一步包括:
响应于所述确定所述存储器地址处的所述项可在所述持续时间内提供到所述处理器将经由所述存储器地址识别的所述项提供到所述处理器。
3.根据权利要求1所述的方法,其中所述响应是响应于所述确定将经由所述存储器地址识别的所述项提供到所述处理器花费的时间长于所述持续时间的错误。
4.根据权利要求1所述的方法,其中所述存储器系统包含针对存储器存取具有不同延时的多个组件。
5.根据权利要求4所述的方法,其中所述组件包含动态随机存取存储器、非易失性存取存储器及快闪存储器;且所述存储器地址经映射到所述组件中的一者。
6.根据权利要求5所述的方法,其中所述组件包含第一类型的存储器及慢于所述第一类型的存储器的第二类型的存储器;且存储于所述第二类型的存储器中的数据项经由所述第一类型的存储器存取。
7.根据权利要求6所述的方法,其进一步包括:
由所述存储器系统响应于所述确定将经由所述存储器地址识别的所述项提供到所述处理器花费的时间长于所述持续时间在所述错误响应之后将所述项从第二类型的存储器移动到所述第一类型的存储器。
8.一种存储指令的非暂时性计算机存储媒体,所述指令在存储器子系统中执行时致使所述存储器子系统执行一方法,所述方法包括:
由存储器系统从处理器接收用以从存储器地址加载项的命令,所述命令包含指定持续时间的参数;
由所述存储器系统确定将所述存储器地址处的所述项提供到所述处理器的延时是否长于所述持续时间;及
由所述存储器系统响应于确定将经由所述存储器地址识别的所述项提供到所述处理器花费的时间长于所述持续时间来在所述持续时间内向所述处理器提供响应。
9.根据权利要求8所述的非暂时性计算机存储媒体,其进一步包括:
响应于确定所述存储器地址处的所述项可在所述持续时间内提供到所述处理器将经由所述存储器地址识别的所述项提供到所述处理器。
10.根据权利要求8所述的非暂时性计算机存储媒体,其中所述响应是响应于所述确定将经由所述存储器地址识别的所述项提供到所述处理器花费的时间长于所述持续时间的错误。
11.根据权利要求8所述的非暂时性计算机存储媒体,其中所述存储器系统包含针对存储器存取具有不同延时的多个组件。
12.根据权利要求11所述的非暂时性计算机存储媒体,其中所述组件包含动态随机存取存储器、非易失性存取存储器及快闪存储器;且所述存储器地址经映射到所述组件中的一者。
13.根据权利要求12所述的非暂时性计算机存储媒体,其中所述组件包含第一类型的存储器及慢于所述第一类型的存储器的第二类型的存储器;且存储于所述第二类型的存储器中的数据项经由所述第一类型的存储器存取。
14.根据权利要求13所述的非暂时性计算机存储媒体,其进一步包括:
由所述存储器系统响应于所述确定将经由所述存储器地址识别的所述项提供到所述处理器花费的时间长于所述持续时间在所述错误响应之后将所述项从第二类型的存储器移动到所述第一类型的存储器。
15.一种存储器子系统,其包括:
一或多个处理器;及
非暂时性计算机可读媒体,其包含一或多个指令序列,所述指令序列在由所述一或多个处理器执行时致使:
由存储器系统从处理器接收用以从存储器地址加载项的命令,所述命令包含指定持续时间的参数;
由所述存储器系统确定将经由所述存储器地址识别的所述项提供到所述处理器花费的时间是否长于所述持续时间;及
由所述存储器系统响应于所述确定将经由所述存储器地址识别的所述项提供到所述处理器花费的时间长于所述持续时间来在所述持续时间内向所述处理器提供响应。
16.根据权利要求15所述的方法,其进一步包括:
响应于确定所述存储器地址处的所述项可在所述持续时间内提供到所述处理器将经由所述存储器地址识别的所述项提供到所述处理器。
17.根据权利要求15所述的方法,其中所述响应是响应于所述确定将经由所述存储器地址识别的所述项提供到所述处理器花费的时间长于所述持续时间的错误。
18.根据权利要求15所述的方法,其中所述存储器系统包含针对存储器存取具有不同延时的多个组件。
19.根据权利要求16所述的方法,其中所述组件包含动态随机存取存储器、非易失性存取存储器及快闪存储器;且所述存储器地址经映射到所述组件中的一者。
20.根据权利要求17所述的方法,其中所述组件包含第一类型的存储器及慢于所述第一类型的存储器的第二类型的存储器;且存储于所述第二类型的存储器中的数据项经由所述第一类型的存储器存取。
CN202080076488.XA 2019-11-19 2020-11-10 加载命令的生存时间 Pending CN114631076A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/688,250 US11199995B2 (en) 2019-11-19 2019-11-19 Time to live for load commands
US16/688,250 2019-11-19
PCT/US2020/059844 WO2021101758A1 (en) 2019-11-19 2020-11-10 Time to live for load commands

Publications (1)

Publication Number Publication Date
CN114631076A true CN114631076A (zh) 2022-06-14

Family

ID=75909975

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080076488.XA Pending CN114631076A (zh) 2019-11-19 2020-11-10 加载命令的生存时间

Country Status (6)

Country Link
US (2) US11199995B2 (zh)
EP (1) EP4062275A1 (zh)
JP (1) JP2023503026A (zh)
KR (1) KR20220070034A (zh)
CN (1) CN114631076A (zh)
WO (1) WO2021101758A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11403198B2 (en) * 2017-07-27 2022-08-02 EMC IP Holding Company LLC Managing data within solid state drive storage based on recurring write quotas
US11199995B2 (en) 2019-11-19 2021-12-14 Micron Technology, Inc. Time to live for load commands

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04165541A (ja) 1990-10-30 1992-06-11 Hitachi Ltd ファイル再配置方法
US7093256B2 (en) 2002-12-13 2006-08-15 Equator Technologies, Inc. Method and apparatus for scheduling real-time and non-real-time access to a shared resource
JP2005141725A (ja) * 2003-10-16 2005-06-02 Pioneer Plasma Display Corp メモリアクセス回路、そのメモリアクセス回路の動作方法およびそのメモリアクセス回路を用いる表示装置
JP2005302176A (ja) 2004-04-13 2005-10-27 Funai Electric Co Ltd 光ディスク装置
US7222224B2 (en) 2004-05-21 2007-05-22 Rambus Inc. System and method for improving performance in computer memory systems supporting multiple memory access latencies
US20060031565A1 (en) 2004-07-16 2006-02-09 Sundar Iyer High speed packet-buffering system
US20060174431A1 (en) 2005-02-09 2006-08-10 Dr. Fresh, Inc. Electric toothbrush
US7694071B1 (en) * 2005-07-12 2010-04-06 Seagate Technology Llc Disk drives and methods allowing configurable zoning
US7626572B2 (en) 2006-06-15 2009-12-01 Microsoft Corporation Soap mobile electronic human interface device
US7707379B2 (en) 2006-07-13 2010-04-27 International Business Machines Corporation Dynamic latency map for memory optimization
WO2010029830A1 (ja) * 2008-09-12 2010-03-18 株式会社日立製作所 半導体装置および情報処理システム
US8380951B1 (en) 2008-10-01 2013-02-19 Symantec Corporation Dynamically updating backup configuration information for a storage cluster
JP5330409B2 (ja) 2008-11-28 2013-10-30 パナソニック株式会社 メモリ制御装置、データプロセッサ及びデータ読み出し方法
TWI406290B (zh) 2009-06-26 2013-08-21 Etron Technology Inc 一種字元線缺陷之偵測裝置與方法
US8473947B2 (en) 2010-01-18 2013-06-25 Vmware, Inc. Method for configuring a physical adapter with virtual function (VF) and physical function (PF) for controlling address translation between virtual disks and physical storage regions
US8321627B1 (en) 2011-10-06 2012-11-27 Google Inc. Memory operation command latency management
US9754648B2 (en) 2012-10-26 2017-09-05 Micron Technology, Inc. Apparatuses and methods for memory operations having variable latencies
US9740485B2 (en) 2012-10-26 2017-08-22 Micron Technology, Inc. Apparatuses and methods for memory operations having variable latencies
JP6086007B2 (ja) 2013-03-26 2017-03-01 富士通株式会社 ストレージ制御装置の制御プログラム、ストレージ制御装置の制御方法、ストレージ制御装置及びストレージシステム
CN104166625A (zh) 2013-05-16 2014-11-26 鸿富锦精密工业(深圳)有限公司 电子设备及其存储器的写控制方法及控制装置
EP3005128B1 (en) 2013-05-30 2018-07-04 Hewlett-Packard Enterprise Development LP Separate memory controllers to access data in memory
JP6210742B2 (ja) 2013-06-10 2017-10-11 オリンパス株式会社 データ処理装置およびデータ転送制御装置
JP5768100B2 (ja) 2013-09-10 2015-08-26 株式会社東芝 メモリ装置、サーバ装置、及びメモリ制御方法
US9639280B2 (en) * 2015-06-18 2017-05-02 Advanced Micro Devices, Inc. Ordering memory commands in a computer system
JP6459820B2 (ja) * 2015-07-23 2019-01-30 富士通株式会社 記憶制御装置、情報処理装置、および制御方法
US9952850B2 (en) 2015-07-28 2018-04-24 Datadirect Networks, Inc. Automated firmware update with rollback in a data storage system
US9823968B1 (en) 2015-08-21 2017-11-21 Datadirect Networks, Inc. Data storage system employing a variable redundancy distributed RAID controller with embedded RAID logic and method for data migration between high-performance computing architectures and data storage devices using the same
US10019174B2 (en) 2015-10-27 2018-07-10 Sandisk Technologies Llc Read operation delay
US20170212840A1 (en) 2016-01-21 2017-07-27 Qualcomm Incorporated Providing scalable dynamic random access memory (dram) cache management using tag directory caches
US10515671B2 (en) 2016-09-22 2019-12-24 Advanced Micro Devices, Inc. Method and apparatus for reducing memory access latency
US10146444B2 (en) 2016-10-03 2018-12-04 Samsung Electronics Co., Ltd. Method for read latency bound in SSD storage systems
US10528268B2 (en) * 2017-09-12 2020-01-07 Toshiba Memory Corporation System and method for channel time management in solid state memory drives
US11366753B2 (en) * 2018-07-31 2022-06-21 Marvell Asia Pte Ltd Controlling performance of a solid state drive
KR102541897B1 (ko) 2018-08-27 2023-06-12 에스케이하이닉스 주식회사 메모리 시스템
US10732900B2 (en) 2018-10-24 2020-08-04 Western Digital Technologies, Inc. Bounded latency and command non service methods and apparatus
US11199995B2 (en) 2019-11-19 2021-12-14 Micron Technology, Inc. Time to live for load commands
US11243804B2 (en) 2019-11-19 2022-02-08 Micron Technology, Inc. Time to live for memory access by processors
US20210011649A1 (en) * 2020-09-25 2021-01-14 Intel Corporation Apparatus, systems, articles of manufacture, and methods for data lifecycle management in an edge environment

Also Published As

Publication number Publication date
WO2021101758A1 (en) 2021-05-27
US11687282B2 (en) 2023-06-27
KR20220070034A (ko) 2022-05-27
US20210240398A1 (en) 2021-08-05
US20210149595A1 (en) 2021-05-20
US11199995B2 (en) 2021-12-14
JP2023503026A (ja) 2023-01-26
EP4062275A1 (en) 2022-09-28

Similar Documents

Publication Publication Date Title
US11573901B2 (en) Predictive paging to accelerate memory access
CN112470113B (zh) 存储器系统中的隔离性能域
US11500766B2 (en) Aggregated and virtualized solid state drives accessed via multiple logical address spaces
US20230334002A1 (en) Access Optimization in Aggregated and Virtualized Solid State Drives
US20190243756A1 (en) Memory Virtualization for Accessing Heterogeneous Memory Components
US11768613B2 (en) Aggregation and virtualization of solid state drives
US20230161509A1 (en) Dynamic selection of cores for processing responses
US20220107835A1 (en) Time to Live for Memory Access by Processors
US11687282B2 (en) Time to live for load commands
US11734071B2 (en) Memory sub-system tier allocation
US20240176745A1 (en) Identification of Available Memory of a Data Storage Device Attachable as a Memory Device

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