CN114882927A - 存储器装置的事件管理 - Google Patents

存储器装置的事件管理 Download PDF

Info

Publication number
CN114882927A
CN114882927A CN202210116795.7A CN202210116795A CN114882927A CN 114882927 A CN114882927 A CN 114882927A CN 202210116795 A CN202210116795 A CN 202210116795A CN 114882927 A CN114882927 A CN 114882927A
Authority
CN
China
Prior art keywords
memory
command
queue
controller
memory devices
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.)
Granted
Application number
CN202210116795.7A
Other languages
English (en)
Other versions
CN114882927B (zh
Inventor
F·克雷希
N·德尔加托
M·图尔科尼
M·帕特里压尔卡
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 CN114882927A publication Critical patent/CN114882927A/zh
Application granted granted Critical
Publication of CN114882927B publication Critical patent/CN114882927B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • 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
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • 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
    • 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/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • 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/7201Logical to physical mapping or translation of blocks or pages
    • 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

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

Abstract

本申请涉及存储器装置的事件管理。存储器系统可包含前端FE队列和后端BE。每个队列可包含接口,所述接口可基于某些度量而在中断模式或轮询模式下操作。例如,与所述FE队列相关联的所述接口可基于所述存储器系统的一或多个存储器装置上正在执行的命令的数量是否满足阈值而在轮询模式或中断模式下操作。另外或替代地,与所述BE队列相关联的所述接口可基于与所述存储器系统的一或多个存储器装置上正在执行的一或多个操作相关联的活动逻辑块地址LBA的数量是否满足阈值而在轮询模式或中断模式下操作。

Description

存储器装置的事件管理
交叉引用
本专利申请要求由克雷希(Cresci)等人于2021年2月5日提交的题为“存储器装置的事件管理(EVENT MANAGEMENT FOR MEMORY DEVICES)”的第17/169,124号美国专利申请的优先权,所述美国专利申请转让给本受让人,并且明确地以全文引用的方式并入本文中。
技术领域
本技术领域涉及存储器装置的事件管理。
背景技术
存储器装置广泛用于将信息存储在例如计算机、无线通信装置、相机、数字显示器等的各种电子装置中。通过将存储器装置内的存储器单元编程为各种状态来存储信息。例如,二进制存储器单元可被编程为常常对应于逻辑1或逻辑0的两个支持状态中的一者。在一些实例中,单个存储器单元可支持超过两个可能状态,存储器单元可存储所述超过两个可能状态中的任一者。为了存取由存储器装置存储的信息,组件可读取或感测存储器装置内的一或多个存储器单元的状态。为了存储信息,组件可将存储器装置内的一或多个存储器单元写入或编程到相应状态。
存在各种类型的存储器装置,包含磁性硬盘、随机存取存储器(RAM)、只读存储器(ROM)、动态RAM(DRAM)、同步动态RAM(SDRAM)、铁电RAM(FeRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、快闪存储器、相变存储器(PCM)、三维交叉点存储器(3D交叉点)、或非(NOR)和与非(NAND)存储器装置等。存储器装置可以是易失性或非易失性的。除非由外部电源周期性更新,否则易失性存储器单元(例如,DRAM单元)可随时间推移而丢失其编程状态。非易失性存储器单元(例如,NAND存储器单元)即使在不存在外部电源的情况下仍可在很长一段时间内维持其编程状态。
发明内容
描述一种存储器系统。所述存储器系统可包含一或多个存储器装置和队列,所述队列配置成从主机装置接收与所述一或多个存储器装置的存取操作相关联的第一命令。所述存储器系统还可包含控制器,所述控制器与所述一或多个存储器装置和所述队列耦合。所述控制器可配置成:至少部分地基于接收到所述第一命令,确定所述控制器正在执行的与所述一或多个存储器装置的存取操作相关联的命令的数量是否满足阈值;以及至少部分地基于所述控制器正在执行的存取所述一或多个存储器装置的所述命令的数量是否满足所述阈值,在中断模式或轮询模式下操作与所述队列和所述控制器耦合的接口。
描述一种存储器系统。所述存储器系统可包含一或多个存储器装置和队列,所述队列配置成接收所述一或多个存储器装置上的存取操作完成的指示。所述存储器系统还可包含控制器,所述与所述一或多个存储器装置和所述队列耦合。所述控制器可配置成:识别与所述控制器正在执行的一或多个存取操作相关联的活动逻辑块地址的数量;至少部分地基于识别与所述控制器正在执行的所述一或多个存取操作相关联的所述活动逻辑块地址的数量,确定所述活动逻辑块地址的数量是否满足阈值;以及至少部分地基于所述活动逻辑块地址的数量是否满足所述阈值,在中断模式或轮询模式下操作与所述队列和所述控制器耦合的接口。
描述一种非暂时性计算机可读媒体。所述非暂时性计算机可读媒体可存储代码,所述代码包括指令,所述指令在由存储器装置的处理器执行时使所述存储器装置:在队列处接收与命令相关联的指示;至少部分地基于接收到与所述命令相关联的所述指示,确定与一或多个存储器装置相关联的活动命令的度量是否满足阈值;以及至少部分地基于所述活动命令的度量是否满足阈值,在中断模式或轮询模式下操作与所述队列耦合的接口。
附图说明
图1示出根据本文公开的实例支持存储器装置的事件管理的系统的实例。
图2示出根据本文公开的实例支持存储器装置的事件管理的系统的实例。
图3到6示出根据本文公开的实例支持存储器装置的事件管理的实例过程流程图。
图7示出根据本公开的方面支持存储器装置的事件管理的存储器装置的框图。
图8示出的流程图示出根据本文公开的实例支持存储器装置的事件管理的一或多种方法。
具体实施方式
新出现的存储器由于其低时延而可为对受管理存储器系统有利的。受管理存储器系统通常可执行两种类型的操作:与外部输入/输出(I/O)操作相关联的前台业务和针对维护操作的后台业务。受管理存储器系统通常具有带硬件和软件(例如,在处理器或控制器上运行)的架构,以管理与主机系统连接的前端(FE)和与存储存储器连接的后端(BE)之间的存储器命令和数据路由。FE可以处理与主机的协议接口,并在主机与内部数据缓冲器之间移动数据,而BE可以在内部数据缓冲器与存储存储器之间移动数据。硬件与软件(例如,固件)之间的通信可经由队列(例如,硬件队列)管理,在队列中存储命令,而不是由软件执行命令。
从主机系统发送的命令可由FE提交队列(SQ)管理,而对主机系统的响应可由FE完成队列(CQ)管理。针对管理BE中的SQ和CQ实施类似逻辑。中断请求(IRQ)或轮询事件管理技术的使用通常用于采用例如基于快闪的装置等传统存储存储器技术的受管理存储器系统。通常,对于传统存储存储器,轮询或IRQ管理的持续时间可能低于存取存储存储器所需的持续时间。当存储存储器被例如新出现的存储器等更低时延装置取代时,为了利用存储器装置的低时延,减少轮询或IRQ管理所消耗的时间变得至关重要。因此,可能需要用于管理存储器系统中的轮询或IRQ事件以利用低时延存储器装置的增强型技术。
本文描述了采用用于管理轮询和IRQ事件的增强型技术的存储器系统。例如,本文描述的存储器系统可配置成独立于主机工作负载业务来实施IRQ和轮询事件管理技术两者以提高系统性能。所述技术包含基于软件中当前执行的命令的度量而在IRQ与轮询之间切换。例如,主机系统侧(例如,FE中的队列)可基于执行中的活动命令的数量而在IRQ与轮询之间切换。存储侧(例如,BE中的队列)可基于作为执行中的I/O命令的对象的逻辑块地址(LBA)的数量而在IRQ与轮询之间切换。通过在FE队列和BE队列两者中在IRQ与轮询事件管理之间切换,存储器系统可以减少管理轮询或IRQ所消耗的时间,从而利用新出现的存储器的低时延。
首先在参考图1和2描述的系统的上下文中描述本公开的特征。在参考图3-6描述的过程流程图的上下文中描述本公开的特征。通过参考图7和8描述的涉及存储器装置的事件管理的设备图和流程图来进一步说明和描述本公开的这些和其它特征。
图1是根据本文公开的实例支持存储器装置的事件管理的系统100的实例。系统100包含与存储器系统110耦合的主机系统105。
存储器系统110可以是或包含任何装置或装置的集合,其中装置或装置的集合包含至少一个存储器阵列。例如,存储器系统110可以是或包含通用快闪存储(UFS)装置、嵌入式多媒体控制器(eMMC)装置、快闪装置、通用串行总线(USB)快闪装置、安全数字(SD)卡、固态驱动器(SSD)、硬盘驱动器(HDD)、双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM),或非易失性DIMM(NVDIMM),以及其它可能性。
系统100可包含在计算装置中,所述计算装置如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具物联网(IoT)功能的装置、嵌入式计算机(例如,包含在交通工具、工业设备或联网商业装置中的嵌入式计算机),或包含存储器和处理装置的任何其它计算装置。
系统100可包含可与存储器系统110耦合的主机系统105。在一些实例中,此耦合可包含与主机系统控制器106的接口,所述主机系统控制器可以是配置成使主机系统105根据本文描述的实例执行各种操作的控制组件的实例。主机系统105可包含一或多个装置,且在一些情况下可包含处理器芯片组和通过处理器芯片组执行的软件堆栈。例如,主机系统105可包含配置成用于与存储器系统110或其中的装置通信的应用程序。处理器芯片组可包含一或多个核心、一或多个高速缓存(例如,主机系统105本地的或包含在所述主机系统中的存储器)、存储器控制器(例如,NVDIMM控制器)和存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统105可以使用存储器系统110,例如,将数据写入存储器系统110以及从存储器系统110读取数据。虽然图1示出一个存储器系统110,但是主机系统105可与任何数量的存储器系统110耦合。
主机系统105可经由至少一个物理主机接口与存储器系统110耦合。在一些情况下,主机系统105和存储器系统110可配置成使用相关联协议经由物理主机接口通信(例如,以在存储器系统110与主机系统105之间交换或以其它方式传达控制、地址、数据和其它信号)。物理主机接口的实例可包含但不限于串行高级技术附件(SATA)接口、UFS接口、eMMC接口、外围组件互连高速(PCIe)接口、USB接口、光纤通道接口、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、双数据速率(DDR)接口、DIMM接口(例如,支持DDR的DIMM套接接口)、开放NAND快闪接口(ONFI)和低功率双数据速率(LPDDR)接口。在一些实例中,一或多个此类接口可包含在主机系统105的主机系统控制器106与存储器系统110的存储器系统控制器115中或以其它方式在其间得到支持。在一些实例中,主机系统105可经由用于包含在存储器系统110中的每个存储器装置130的相应物理主机接口,或经由用于包含在存储器系统110中的每种类型的存储器装置130的相应物理主机接口与存储器系统110耦合(例如,主机系统控制器106可与存储器系统控制器115耦合)。
存储器系统110可包含存储器系统控制器115和一或多个存储器装置130。存储器装置130可包含任何类型的存储器单元(例如,非易失性存储器单元、易失性存储器单元,或其任何组合)的一或多个存储器阵列。虽然图1的实例中示出两个存储器装置130-a和130-b,但存储器系统110可包含任何数量的存储器装置130。此外,如果存储器系统110包含超过一个存储器装置130,则存储器系统110内的不同存储器装置130可包含相同或不同类型的存储器单元。
存储器系统控制器115可与主机系统105耦合并通信(例如,经由物理主机接口),并且可以是配置成使存储器系统110根据本文描述的实例执行各种操作的控制组件的实例。存储器系统控制器115还可与存储器装置130耦合并通信以在存储器装置130处进行一般可称为存取操作的操作,例如读取数据、写入数据、擦除数据,或更新数据,以及其它此类操作。在一些情况下,存储器系统控制器115可从主机系统105接收命令且与一或多个存储器装置130通信以(例如,在一或多个存储器装置130内的存储器阵列处)执行此类命令。例如,存储器系统控制器115可从主机系统105接收命令或操作,并且可将命令或操作转换成指令或适当命令,以实现对存储器装置130的期望存取。在一些情况下,存储器系统控制器115可与主机系统105和一或多个存储器装置130交换数据(例如,响应于来自主机系统105的命令或以其它方式与所述命令相关联地)。例如,存储器系统控制器115可将与存储器装置130相关联的响应(例如,数据包或其它信号)转换成用于主机系统105的对应信号。
存储器系统控制器115可配置成用于与存储器装置130相关联的其它操作。例如,存储器系统控制器115可执行或管理操作,例如,耗损均衡操作、垃圾收集操作、例如错误检测操作或错误校正操作的错误控制操作、加密操作、高速缓存操作、媒体管理操作、后台刷新、健康监测,以及与来自主机系统105的命令相关联的逻辑地址(例如,逻辑块地址(LBA))和与存储器装置130内的存储器单元相关联的物理地址(例如,物理块地址)之间的地址转换。
存储器系统控制器115可包含硬件,例如一或多个集成电路或离散组件、缓冲存储器或其组合。硬件可包含具有专用(例如,硬编码)逻辑的电路系统,以执行本文中属于存储器系统控制器115的操作。存储器系统控制器115可以是或包含微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)、数字信号处理器(DSP)),或任何其它合适的处理器或处理电路系统。
存储器系统控制器115还可包含本地存储器120。在一些情况下,本地存储器120可包含只读存储器(ROM)或可存储可由存储器系统控制器115执行以执行本文中属于存储器系统控制器115的功能的操作代码(例如,可执行指令)的其它存储器。在一些情况下,本地存储器120可另外或替代地包含静态随机存取存储器(SRAM)或可由存储器系统控制器115用于例如与本文中属于存储器系统控制器115的功能有关的内部存储或计算的其它存储器。
存储器装置130可包含非易失性存储器单元的一或多个阵列。例如,存储器装置130可包含NAND(例如,NAND快闪)存储器、ROM、相变存储器(PCM)、自选存储器、其它基于硫族化物的存储器、铁电RAM(FeRAM)、磁性RAM(MRAM)、NOR(例如,NOR快闪)存储器、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻式随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)和电可擦除可编程ROM(EEPROM)。另外或替代地,存储器装置130可包含易失性存储器单元的一或多个阵列。例如,存储器装置130可包含随机存取存储器(RAM)存储器单元,例如动态RAM(DRAM)存储器单元和同步DRAM(SDRAM)存储器单元。
在一些实例中,存储器装置130可分别包含本地控制器135(例如,处于同一裸片上或同一封装内),所述本地控制器可在存储器装置130的一或多个存储器单元上执行操作。本地控制器135可结合存储器系统控制器115操作,或可执行本文中属于存储器系统控制器115的一或多个功能。
在一些情况下,存储器装置130可以是或包含NAND装置(例如,NAND快闪装置)。存储器装置130可以是或包含存储器裸片160。例如,在一些情况下,存储器装置130可以是包含一或多个裸片160的封装。在一些实例中,裸片160可以是从晶片切割的一块电子级半导体(例如,从硅晶片切割的硅裸片)。每个裸片160可包含一或多个平面165,并且每个平面165可包含相应的块170的集,其中每个块170可包含相应的页175的集,并且每个页175可包含存储器单元集。
在一些情况下,NAND存储器装置130可包含配置成各自存储一个信息位的存储器单元,其可称为单层级单元(SLC)。另外或替代地,NAND存储器装置130可包含配置成各自存储多个信息位的存储器单元,如果配置成各自存储两个信息位,则其可称为多层级单元(MLC),如果配置成各自存储三个信息位,则其可称为三层级单元(TLC),如果配置成各自存储四个信息位,则其可称为四层级单元(QLC),或更一般地称为多层级存储器单元。多层级存储器单元可相对于SLC存储器单元提供更大的存储密度,但在一些情况下,可能涉及用于支持电路系统的更窄读取或写入裕度或更大复杂度。
在一些情况下,平面165可以指块170的群组,并且在一些情况下,并行操作可在不同平面165内进行。例如,并行操作可在不同块170内的存储器单元上执行,只要不同块170是在不同平面165中即可。在一些情况下,在不同平面165中执行并行操作可能有一或多个限制,例如相同操作是在相应平面165内具有相同页地址的不同页175内的存储器单元上执行的(例如,涉及命令解码、页地址解码电路系统或跨平面165共享的其它电路系统)。
在一些情况下,块170可包含组织成行(页175)和列(例如,串,未示出)的存储器单元。例如,同一页175中的存储器单元可共享共同字线(例如,与其耦合),并且同一串中的存储器单元可共享共同数字线(其可替代地称为位线)(例如,与其耦合)。
对于一些NAND架构,存储器单元可在第一粒度级别(例如,在页粒度级别)读取和编程(例如,写入),但可在第二粒度级别(例如,在块粒度级别)擦除。也就是说,页175可以是可独立地编程或读取(例如,作为单个编程或读取操作的一部分并行编程或读取)的存储器(例如,存储器单元集)的最小单元,且块170可以是可独立地擦除(例如,作为单个擦除操作的一部分并行擦除)的存储器(例如,存储器单元集)的最小单元。此外,在一些情况下,NAND存储器单元可在其可用新数据重写之前进行擦除。因此,例如,在一些情况下,可直到包含页175的整个块170已被擦除才更新所使用的页175。
系统100可包含支持存储器装置的事件管理的任何数量的非暂时性计算机可读媒体。例如,主机系统105、存储器系统控制器115或存储器装置130可包含或以其它方式可存取一或多个非暂时性计算机可读媒体,所述非暂时性计算机可读媒体存储指令(例如,固件)以进行本文中属于主机系统105、存储器系统控制器115或存储器装置130的功能。例如,如果由主机系统105(例如,由主机系统控制器106)、由存储器系统控制器115,或由存储器装置130(例如,由本地控制器135)执行,则此类指令可使主机系统105、存储器系统控制器115或存储器装置130执行本文描述的一或多个相关联功能。
在一些情况下,存储器系统110可利用存储器系统控制器115以提供受管理存储器系统,所述受管理存储器系统可包含例如一或多个存储器阵列和与本地(例如,裸片上或封装中)控制器(例如,本地控制器135)组合的相关电路系统。受管理存储器系统的实例是可为受管理NAND(MNAND)系统的受管理存储器系统,或采用相较于NAND存储器时延减小的新出现的存储器技术的受管理存储器系统。
在一些实例中,存储器系统110可包含一或多个队列(未示出),用于管理由主机系统105接收的命令和待传输到主机系统105的响应。例如,存储器系统110可包含FE SQ和FECQ。例如,队列可位于本地存储器120(例如,FE SQ和FE CQ可对应于本地存储器120的一或多个存储器单元)或存储器系统110的另一部分中。另外或替代地,存储器系统110可包含BESQ和BE CQ。在一些实例中,BE SQ和BE CQ可位于本地存储器120(例如,BE SQ和BE CQ可对应于本地存储器120的一或多个存储器单元)或存储器系统110的另一部分中。
FE队列和BE队列可基于度量在IRQ与轮询之间切换。例如,FE队列可基于存储器系统110当前执行的命令的数量而在IRQ与轮询之间切换(例如,与FE队列耦合的接口可以在中断模式或轮询模式下操作)。另外或替代地,BE队列可基于作为执行中的I/O命令的对象的LBA的数量而在IRQ与轮询之间切换(例如,与BE队列耦合的接口可在中断模式或轮询模式下操作)。通过在FE队列和BE队列两者中在IRQ与轮询事件管理之间切换,存储器系统110可以减少管理轮询或IRQ所消耗的时间,从而利用存储器装置130-a的低时延。
图2示出根据本文公开的实例支持存储器装置的事件管理的系统200的实例。系统200可以是如参考图1或其方面描述的系统100的实例。系统200可包含存储器系统210,所述存储器系统配置成存储从主机系统205接收的数据,且在主机系统205使用存取命令(例如,读取命令或写入命令)请求的情况下将数据发送到主机系统205。系统200可实施参考图1描述的系统100的方面。例如,存储器系统210和主机系统205可分别是存储器系统110和主机系统105的实例。
如下文所描述,存储器系统210可包含存储器装置240,用于例如响应于从主机系统205接收到存取命令而存储在存储器系统210与主机系统205之间传送的数据。存储器装置240可包含参考图1描述的一或多个存储器装置。例如,存储器装置240可包含NAND存储器、PCM、自选存储器、3D XPoint、其它基于硫族化物的存储器、FERAM、MRAM、NOR(例如,NOR快闪)存储器、STT-MRAM、CBRAM、RRAM或OxRAM。
存储器系统210可包含存储控制器230,用于控制直接进出存储器装置240的数据的传递,例如用于存储数据、检索数据,以及确定将存储数据和从中检索数据的存储器位置。存储控制器230可使用特定于每种类型的存储器装置的协议直接或经由总线(未示出)与存储器装置240通信。在一些情况下,可使用单个存储控制器230控制相同或不同类型的多个存储器装置。在一些情况下,存储器系统210可包含多个存储控制器230,例如,针对每种类型的存储器装置240的不同存储控制器230。在一些情况下,存储控制器230可实施参考图1描述的本地控制器135的方面。
存储器系统210可另外包含用于与主机系统205通信的接口220,以及用于临时存储在主机系统与存储器装置240之间传送的数据的缓冲器225。接口220、缓冲器225和存储控制器230可用于例如由数据路径250所示在主机系统205与存储器装置240之间转换数据,且可统称为数据路径组件。
传送期间使用缓冲器225临时存储数据可允许在处理命令时缓冲数据,由此减少命令之间的时延并允许与命令相关联的任意数据大小。这还可允许处理命令的突发,且一旦突发已停止,便可存储或传输(或两者)缓冲的数据。缓冲器225可包含相对快速的存储器(例如,一些类型的易失性存储器,例如SRAM或DRAM),或硬件加速器或这两者,以允许快速地将数据存储到缓冲器225和从所述缓冲器检索数据。缓冲器225可包含用于缓冲器225与其它组件之间的双向数据传送的数据路径切换组件。
数据在缓冲器225内的临时存储可指在执行存取命令期间数据在缓冲器225中的存储。也就是说,在完成存取命令后,相关联数据可能不再维持在缓冲器225中(例如,可用额外存取命令的数据覆写)。此外,缓冲器225可以是非高速缓存缓冲器。也就是说,数据可能不由主机系统205直接从缓冲器225读取。例如,可将读取命令置于队列中,而无需将地址与已在缓冲器中的地址进行匹配的操作(例如,无需高速缓存地址匹配或查找操作)。
存储器系统210可另外包含用于执行从主机系统205接收的命令且在移动数据时控制数据路径组件的存储器系统控制器215。存储器系统控制器215可以是参考图1描述的存储器系统控制器115的实例。总线235可用于系统组件之间的通信。
在一些情况下,一或多个队列(例如,命令队列260、缓冲器队列265和存储队列270)可用于控制存取命令的处理和对应数据的移动。例如,如果存储器系统210并行处理来自主机系统205的超过一个存取命令,则这可能是有益的。作为可能实施方案的实例,分别在接口220、存储器系统控制器215和存储控制器230处描绘命令队列260、缓冲器队列265和存储队列270。队列(如果使用)可位于存储器系统210内的任何位置。命令队列260和存储队列270可以是硬件队列(例如,实施为寄存器或专用存储器),而缓冲器队列265可以是软件队列(例如,在存储器系统控制器215的软件内实施)。
在主机系统205与存储器装置集240之间传送的数据可在存储器系统210中采用与非数据信息(例如,命令、状态信息)不同的路径。例如,存储器系统210中的系统组件可使用总线235彼此通信,而数据可通过数据路径组件使用数据路径250而不是总线235。存储器系统控制器215可通过经由总线235与数据路径组件通信(例如,使用特定于存储器系统210的协议)而控制如何及是否在主机系统205与存储器装置240之间传送数据。
如果主机系统205将存取命令传输到存储器系统210,则接口220可例如根据协议(例如,通用快闪存储(UFS)协议或eMMC协议)接收命令。因此,接口220可被视为存储器系统210的前端。在接收到每个存取命令后,接口220可例如经由总线235将命令传达到存储器系统控制器215。在一些情况下,可通过接口220将每个命令添加到命令队列260,以将命令传达到存储器系统控制器215。
存储器系统控制器215可基于来自接口220的通信(例如,根据IRQ或轮询)确定已接收到存取命令。在一些情况下,存储器系统控制器215可通过从命令队列260检索命令来确定已接收到存取命令。在例如已经由存储器系统控制器215从命令队列260检索到命令之后,可将所述命令从所述命令队列移除。在一些情况下,存储器系统控制器215可使接口220例如经由总线235从命令队列260移除命令。
可将命令移动到缓冲器队列265以执行。对于读取命令,这可意味着从存储器装置240获得数据以及将数据传输到主机系统205。对于写入命令,这可意味着从主机系统205接收数据以及将数据移动到存储器装置240。存储器系统控制器215可在LBA与存储器装置240中的物理地址之间执行地址转换。例如,存储器系统控制器215可使用逻辑到物理(L2P)表将LBA映射到物理地址。L2P表可以存储在存储器装置240中,且L2P表的区域可以由存储器系统控制器215检索(例如,经由存储控制器230)并本地存储(例如,存储在高速缓存存储器中)。
在任一情况下,存储器系统控制器215可将缓冲器225尤其用于从主机系统205接收的或发送到所述主机系统的数据的临时存储。缓冲器225可被视为存储器系统210的中端。在一些情况下,缓冲器地址管理(例如,指向缓冲器中的地址位置的指针)可由接口220、缓冲器225或存储控制器230中的硬件(例如,专用电路)执行。
为了处理从主机系统205接收到的写入命令,存储器系统控制器215可首先确定缓冲器225是否具有足够可用空间来存储与命令相关联的数据。例如,存储器系统控制器215可例如经由固件(例如,控制器固件)确定在缓冲器225内可用于存储与写入命令相关联的数据的空间量。
在一些情况下,缓冲器队列265可用于控制与存储在缓冲器225中的数据相关联的命令流,所述命令流包含写入命令。缓冲器队列265可包含与当前存储在缓冲器225中的数据相关联的存取命令。在一些情况下,命令队列260中的命令可通过存储器系统控制器215移动到缓冲器队列265,且可在相关联数据存储在缓冲器225中的同时保留在缓冲器队列265中。在一些情况下,缓冲器队列265中的每个命令可与缓冲器225处的地址相关联。也就是说,可维持指示与每个命令相关联的数据存储在缓冲器225中何处的指针。使用缓冲器队列265,可以顺序地从主机系统205接收多个存取命令,并且可以并行处理存取命令的至少部分(例如,命令可以处于同时处理的各个阶段)。
如果缓冲器225具有足够空间来存储写入数据,那么存储器系统控制器215可使得接口220例如根据协议(例如,UFS协议或eMMC协议)将可用性的指示传输到主机系统205(例如,“准备好传送”指示)。当接口220随后从主机系统205接收到与写入命令相关联的数据时,接口220可使用数据路径250将数据传送到缓冲器225以供临时存储。在一些情况下,接口220可从缓冲器225或缓冲器队列265获得缓冲器225内存储数据的位置。接口220可例如经由总线235向存储器系统控制器215指示到缓冲器225的数据传送已完成。
一旦已通过接口220将写入数据存储在缓冲器225中,就可将数据从缓冲器225传送出来并存储在存储器装置240中。这可使用存储控制器230完成。例如,存储器系统控制器215可使存储控制器230使用数据路径250从缓冲器225中检索出数据并且将数据传送到存储器装置240。存储控制器230可被视为存储器系统210的后端。存储控制器230可例如经由总线235向存储器系统控制器215指示到存储器装置240中的存储器装置的数据传送已完成。
在一些情况下,存储队列270可用于辅助写入数据的传送。例如,存储器系统控制器215可(例如,经由总线235)将写入命令从缓冲器队列265推送到存储队列270以供处理。存储队列270可包含用于每个存取命令的条目,并且可包含例如缓冲器指针(例如,地址),其可指示与命令相关联的数据存储在缓冲器225中的何处,以及存储指针(例如,地址),其可指示存储器装置240中与数据相关联的位置。在一些情况下,存储控制器230可从缓冲器225、缓冲器队列265或存储队列270获得缓冲器225内将从其获得数据的位置。存储控制器230可管理存储器装置240内用于存储数据(例如,执行耗损均衡、垃圾收集等)的位置。可例如通过存储器系统控制器215将条目添加到存储队列270。在完成数据的传送后,可例如通过存储控制器230或存储器系统控制器215从存储队列270中移除条目。
为了处理从主机系统205接收到的读取命令,存储器系统控制器215可再次首先确定缓冲器225是否具有足够可用空间来存储与命令相关联的数据。例如,存储器系统控制器215可例如经由固件(例如,控制器固件)确定缓冲器225内可用于存储与读取命令相关联的数据的空间量。
在一些情况下,缓冲器队列265可用于以与上文关于写入命令所论述的类似方式来辅助与读取命令相关联的数据的缓冲器存储。例如,如果缓冲器225具有足够空间来存储读取数据,则存储器系统控制器215可使存储控制器230从存储器装置240检索与读取命令相关联的数据且使用数据路径250将数据存储在缓冲器225中以用于临时存储。存储控制器230可例如经由总线235向存储器系统控制器215指示到缓冲器225的数据传送已完成。
在一些情况下,存储队列270可用于辅助读取数据的传送。例如,存储器系统控制器215可将读取命令推送到存储队列270以供处理。在一些情况下,存储控制器230可从缓冲器225或存储队列270获得存储器装置240内的从其检索数据的位置。在一些情况下,存储控制器230可从缓冲器队列265获得缓冲器225内将存储数据的位置。在一些情况下,存储控制器230可从存储队列270获得缓冲器225内将存储数据的位置。在一些情况下,存储器系统控制器215可将由存储队列270处理的命令移动回到命令队列260。
一旦已通过存储控制器230将数据存储在缓冲器225中,就可将数据传送离开缓冲器225且发送到主机系统205。例如,存储器系统控制器215可使接口220使用数据路径250从缓冲器225检索出数据并例如根据协议(例如,通用快闪存储(UFS)协议或eMMC协议)将数据传输到主机系统205。例如,接口220可处理来自命令队列260的命令,且可例如经由总线235向存储器系统控制器215指示到主机系统205的数据传输已完成。
存储器系统控制器215可根据次序(例如,根据命令队列260的次序,以先进先出次序)执行所接收命令。对于每个命令,存储器系统控制器215可使对应于命令的数据移动进出缓冲器225,如上文所论述。当数据移动到缓冲器225中且存储在所述缓冲器内时,命令可保持在缓冲器队列265中。如果已完成命令的处理(例如,如果已从缓冲器225传送出对应于存取命令的数据),则可例如通过存储器系统控制器215从缓冲器队列265移除命令。如果从缓冲器队列265移除命令,则先前存储与所述命令相关联的数据的地址可用于存储与新命令相关联的数据。
存储器系统控制器215可另外配置成用于与存储器装置240相关联的操作。例如,存储器系统控制器215可执行或管理操作,例如,耗损均衡操作、垃圾收集操作、例如错误检测操作或错误校正操作的错误控制操作、加密操作、高速缓存操作、媒体管理操作、后台刷新、健康监测,以及与来自主机系统205的命令相关联的逻辑地址(例如,逻辑块地址(LBA))和与存储器装置240内的存储器单元相关联的物理地址(例如,物理块地址)之间的地址转换。也就是说,主机系统205可发出指示一或多个LBA的命令,并且存储器系统控制器215可识别由LBA指示的一或多个物理块地址。在一些情况下,一或多个邻接LBA可以是非邻接的物理块地址。在一些情况下,存储控制器230可配置成结合或代替存储器系统控制器215执行以上操作中的一或多者。在一些情况下,存储器系统控制器215可执行存储控制器230的功能且可省略存储控制器230。
如本文所描述,存储器系统210可以从主机系统205接收命令。具体地,存储器系统210的接口220可以接收命令,并且所述命令可以存储(例如,临时存储)到命令队列260。命令队列260可包含或是FE SQ和FE CQ的实例。当从主机系统205接收到命令并将其存储到命令队列260时,存储器系统控制器215可以确定是在中断模式下还是在轮询模式下操作命令队列260与存储器系统控制器215之间的接口。
存储器系统控制器215可以(例如,在获取或完成命令后)确定正被处理的活动命令(例如,存储器系统控制器215当前正在处理的命令)的数量是否满足阈值。如果命令的数量满足阈值,则存储器系统控制器215可以在轮询模式下操作命令队列260的接口。当在轮询模式下操作时,可不在新命令置于命令队列260中时立即通知存储器系统控制器215,而是可以通过执行轮询操作(例如,周期性地或当其它操作完成时)来确定新命令是否已置于命令队列260中。如果命令的数量不满足阈值,则存储器系统控制器215可以在中断模式下操作命令队列的接口。当在中断模式下操作时,可以在新命令已置于命令队列260上时经由中断信号通知存储器系统控制器215。中断信号可在存储器系统控制器215处发起中断处理例程(其可暂停对当前正在执行的任何命令的执行),并发起对新命令的处理。然后,存储器系统控制器215可以并行地维护当前正在执行的命令以及新命令(例如,作为同时活动的单独进程或线程)。
另外或替代地,可以在一或多个存储器装置240上执行命令,并且响应于完成命令,可以向主机系统205提供响应。在一些实例中,可以将响应存储(例如,临时存储)到存储队列270。存储队列270可包含或是BE SQ和BE CQ或其实例,并且可包含存储队列270与存储器系统控制器215之间的接口。存储器系统控制器215可基于作为执行(例如,由存储器系统控制器215执行)中的I/O命令的对象的LBA的数量而在中断模式或轮询模式下操作接口。
存储器系统控制器215可以确定作为执行中的I/O命令的对象的LBA的数量(例如,与存储器装置240中的一或多个上正在执行的存取操作相关联的LBA的数量)是否满足阈值。如果LBA的数量满足阈值,则存储器系统控制器215可以在轮询模式下操作接口(例如,与存储队列270相关联的接口)。当在轮询模式下操作时,可不在新响应置于存储队列270中时立即通知存储器系统控制器215,而是可以通过执行轮询操作(例如,周期性地或当其它操作完成时)来确定新响应是否已置于存储队列270中。因此,存储器系统控制器215可以确定是否将响应(例如,要传输到主机系统205的响应)存储到存储队列270且在稍后时间传输响应。如果LBA的数量不满足阈值,则存储器系统控制器215可以在中断模式下操作接口(例如,与存储队列270相关联的接口)。当在中断模式下操作时,当新命令(例如,响应)处于存储队列270中时,存储队列270的接口可向存储器系统控制器215发送中断。存储器系统控制器215可暂停执行命令(例如,与存储器装置240中的一或多个相关联的命令),以确定如何处理中断。例如,在暂停执行命令之后,存储器系统控制器215可以恢复执行命令,但是可以与向主机系统205传输响应并行地执行命令(或命令的一部分)。通过在命令队列260或存储队列270中的任一个或两个中在中断事件管理与轮询事件管理之间切换,存储器系统210可以减少管理轮询或IRQ所消耗的时间,从而利用存储器装置240的低时延。
图3示出根据本文公开的实例支持存储器装置的事件管理的过程流程图300的实例。在一些实例中,过程流程图300可以示出由控制器(例如,经由参考图2描述的存储器系统控制器215的固件)执行的用于确定是在轮询模式下还是在中断模式下操作FE队列的接口(例如,参考图2描述的命令队列260与存储器系统控制器215之间的接口)的一或多个操作。控制器可配置成在中断模式与轮询模式之间切换接口,这可以减少相关联的存储器系统所消耗的时间,从而利用与存储器系统相关联的存储器装置(例如,参考图2描述的存储器装置240)的低时延。
如本文所描述,存储器系统可包含FE队列,所述FE队列包含FE SQ和FE CQ。在一些实例中,队列可与例如寄存器或存储器单元的不同物理元件相关联。例如,FE SQ和FE CQ可与配置成临时存储装置的存储器单元块的不同存储器单元相关联。存储器系统可包含配置成用于存储的存储器(例如,存储存储器),并且可以从主机系统(例如,参考图2描述的主机系统205)接收用于存储存储器的命令。当存储器系统接收到命令(例如,第一命令)时,所述命令可被存储到FE队列(例如,FE SQ)以供处理。执行命令的时间可取决于FE队列的接口是在中断模式下还是在轮询模式下操作。
当在中断模式下操作时,当FE队列中存在新命令时,存储器控制器可接收中断(例如,与从主机系统接收到的命令相关联的中断)。在接收到中断后,存储器控制器可暂停当前正在执行的任何命令。例如,如果存储器控制器正在执行不同于与中断相关联的命令的第二命令,则存储器控制器可以临时暂停执行第二命令并发起执行与中断相关联的命令。因此,可以“中断”第二命令,使得在第二命令完成之前至少部分地执行第一命令。在一些实例中,在存储器控制器恢复或完成执行第二命令之前,可以执行其它命令(例如,除第一命令之外的命令)的部分。
当在轮询模式下操作时,可不立即通知存储器控制器有关第一命令(例如,存储器控制器可能会屏蔽中断处理例程)。实际上,存储器控制器可以周期性地轮询FE队列,以确定在一或多个触发事件发生时是否存在任何新命令。例如,存储器控制器可以在设置为预定义持续时间的定时器(例如,轮询定时器)到期时轮询FE队列。在其它实例中,存储器控制器可在完成执行第二命令后(例如,在完成执行接收到第一命令时正在执行的命令后)轮询FE队列。因此,当在轮询模式下操作时,当从主机系统接收到第一命令时,存储器控制器可以继续执行正在执行中的任何命令,并且可以在稍后时间从FE队列获取(并执行)第一命令。
如图3所示,在305,存储器系统可以从主机系统接收命令。如本文所描述,所述命令可以与一或多个逻辑地址上的操作相关联,并且可以称为第一命令。在接收到第一命令后,存储器控制器可将第一命令存储到FE队列(例如,FE SQ)。
在310,存储器控制器可确定正在执行的(例如,存储器控制器正在执行的)命令的数量是否满足阈值。阈值可以是预定义(例如预设)值,并且可基于存储器系统的一或多个期望性能参数来设置。例如,阈值可设置为“1”,使得如果活动命令的数量大于或等于1,则存储器控制器可以在轮询模式下操作与FE队列相关联的接口。如果活动命令的数量小于1,则存储器控制器可以在中断模式下操作接口。阈值“1”仅用于说明目的,并且阈值可以设置为任何正整数值。
在315,如果存储器控制器确定正在执行的命令的数量不满足阈值,则存储器控制器可以在中断模式下操作与FE队列相关联的接口。如本文所描述,当在中断模式下操作接口时,存储器控制器可接收中断信号,并且可暂停(例如,临时暂停)执行第二命令(例如,正在执行的命令)。在暂停第二命令后,存储器控制器可在恢复执行第二命令之前执行第一命令的至少一部分。
在320,如果存储器控制器确定正在执行的命令的数量满足阈值,则存储器控制器可以在轮询模式下操作与FE队列相关联的接口。如本文所描述,当在轮询模式下操作接口时,存储器控制器可周期性地确定命令是否存储到FE队列,并从FE队列检索命令。例如,存储器控制器可以在定时器到期之后或在执行命令(例如,第二命令)之后轮询FE队列。在确定第一命令存在并从FE队列检索到第一命令后,存储器控制器可以执行第一命令(以及从FE队列获取的任何其它命令)。
在一些实例中,在从主机系统接收到命令后(例如,在从命令队列接收到每个命令之后)或在命令执行完成后,存储器控制器可以确定在轮询模式或中断模式下操作FE队列。每次进行确定时,存储器控制器可在中断模式或轮询模式下操作接口,因此接口可配置成在中断事件管理与轮询事件管理之间切换。因此,本文描述的存储器系统可以减少管理轮询或中断事件管理所消耗的时间,从而利用与存储器系统相关联的存储器装置的低时延。
图4示出根据本文公开的实例支持存储器装置的事件管理的过程流程图400的实例。在一些实例中,过程流程图400可以示出由控制器(例如,经由参考图2描述的存储器系统控制器215的固件)执行的用于确定是在轮询模式下还是在中断模式下操作BE队列的接口(例如,与参考图2描述的存储队列270相关联的接口)的一或多个操作。控制器可配置成在中断模式与轮询模式之间切换接口,这可以减少相关联的存储器系统所消耗的时间,从而利用与存储器系统相关联的存储器装置(例如,参考图2描述的存储器装置240)的低时延。
如本文所描述,存储器系统可包含BE队列,所述BE队列包含BE SQ和BE CQ。在一些实例中,队列可与例如寄存器或存储器单元的不同物理元件相关联。存储器系统可包含配置成用于存储的存储器(例如,存储存储器),并且可以在存储存储器的一或多个存储器单元上执行命令。响应于命令完成,存储器系统可以向主机系统提供响应(例如,存取操作完成的指示)。在一些实例中,可以将存取操作完成的指示存储(例如,临时存储)到BE队列,并且可基于作为执行中的(例如,由存储器系统控制器执行的)I/O命令的对象的LBA的数量而在中断模式或轮询模式下操作BE队列的接口。当向主机系统传输对命令的响应(例如,存取操作完成的第一指示)时,可取决于BE队列的接口是在中断模式下还是在轮询模式下操作。
当在中断模式下操作时,存储器控制器可接收中断(例如,与第一指示相关联的中断)。在接收到中断后,存储器控制器可暂停在存储器系统的一或多个存储器装置上执行的任何操作。例如,如果存储器控制器正在对存储器装置执行垃圾收集操作,则存储器控制器可临时暂停执行垃圾收集操作并执行中断处理例程。存储器控制器可以处理用于传输到主机系统的第一指示。因此,垃圾收集操作的至少一部分可以被“中断”,并且第一指示的处理可以与垃圾收集操作并行进行(例如,处理可以并行地处于活动状态)。在一些情况下,可基于操作被中断而处理其它指示(例如,除第一指示之外的指示)。
当在轮询模式下操作时,存储器控制器可不立即从BE队列获取第一个指示。实际上,可以将指示存储到BE队列,并且存储器控制器可以周期性地确定在一或多个触发事件发生时是否有任何指示存储到BE队列。例如,存储器控制器可以在设置为预定义持续时间的定时器(例如,轮询定时器)到期时确定是否将任何指示存储到BE队列。在其它实例中,存储器控制器可在接收到维护或存取操作完成的额外指示(例如,第二指示)时确定是否将任何命令存储到BE队列。因此,当在轮询模式下操作时,存储器控制器可以继续执行当前正在执行的操作,并且可以在稍后时间从BE队列获取(并传输)第一指示。
如图4所示,在405,存储器系统(例如,存储器系统的存储器控制器)可以确定与活动操作相关联的LBA的数量。如本文所描述,LBA可以与一或多个存储器装置上正在执行的操作(例如,维护操作(例如,垃圾收集操作))相关联,或者可包含作为I/O命令的一部分正在执行的LBA的数量。LBA的数量可以确定是根据中断模式还是根据轮询模式将与存取操作的完成相关联的指示(例如,第一指示)传输到主机系统。
在410,存储器控制器可以确定LBA的数量是否满足阈值。阈值可以是预定义(例如预设)值,并且可基于存储器系统的一或多个期望性能参数来设置。例如,阈值可以设置为大于“1”的整数(例如,2、3、4、5、10、15),使得如果LBA的数量大于阈值,则存储器控制器可以在轮询模式下操作与BE队列相关联的接口。如果LBA的数量小于或等于阈值,则存储器控制器可以在中断模式下操作接口。阈值是大于“1”的整数仅用于说明目的,并且阈值可以设置为任何正整数值。
在415,如果存储器控制器确定LBA的数量不满足阈值,则存储器控制器可以在中断模式下操作与BE队列相关联的接口。如本文所描述,当在中断模式下操作接口时,存储器控制器可以接收中断信号,并且可暂停(例如,临时暂停)存储器系统的存储器装置上正在执行的一或多个操作。在暂停操作后,存储器控制器可以确定如何处理中断。例如,存储器控制器可向主机系统传输与中断信号相关联的指示(例如,第一指示),并可在之后(例如,在传输指示和与中断信号相关联的任何其它指示之后)恢复执行操作,或者可以恢复执行操作的至少一部分,并执行与并行地向主机系统传输指示的至少一部分有关的操作(例如,并行活动进程)。
在420,如果存储器控制器确定LBA的数量满足阈值,则存储器控制器可以在轮询模式下操作与BE队列相关联的接口。如本文所描述,当在轮询模式下操作接口时,存储器控制器可以周期性地确定是否有任何指示存储到BE队列并将所述指示传输到主机系统。例如,存储器控制器可以确定在定时器到期之后或者在BE队列接收到另一指示(例如,第二指示)之后将第一指示存储到BE队列。在从BE队列检索到第一指示后,存储器控制器可以将第一指示(以及从BE队列获取的任何其它指示)传输到主机系统。
在一些实例中,存储器控制器可以在存取操作完成后(例如,在存储器系统的存储器装置上执行了每一个存取命令或维护操作之后),确定在轮询模式下还是在中断模式下操作BE队列。每次进行确定时,存储器控制器可在中断模式或轮询模式下操作接口,因此接口可配置成在中断事件管理与轮询事件管理之间切换。
在操作低时延存储器时,允许执行中的进程完成可能更有效,因为它们通常更短(例如,比尚未执行的进程更短)。也就是说,当相对大量的操作正在执行时(例如,当阈值数量的操作正在执行时),由于从一个进程切换到另一个进程所需的时间,可能不希望在中断模式下操作低时延存储器。相反,当执行中的操作的数量相对较少时,在中断模式下操作存储器系统可提供更快的服务。因此,本文描述的存储器系统可以减少管理轮询或中断事件管理所消耗的时间,从而利用与存储器系统相关联的存储器装置的低时延。
图5示出根据本文公开的实例支持存储器装置的事件管理的过程流程图500的实例。在一些实例中,过程流程图500可以示出由主机系统505(例如,参考图2描述的主机系统205)以及包含前端队列510、固件515(例如,参考图2描述的存储器系统控制器215的固件)、后端队列520和存储存储器525(例如,参考图2描述的一或多个存储器装置240的存储存储器)的存储器系统508执行的一或多个操作。过程流程图500可以示出在轮询模式或中断模式下操作前端队列510的接口或后端队列520的接口。固件515可配置成在中断模式与轮询模式之间切换接口,这可以减少相关联的存储器系统所消耗的时间,从而利用存储存储器525的低时延(例如,与存储存储器525相关联的存储器装置的低时延)。
在527,主机系统505可向存储器系统508传输第一读取命令,所述第一读取命令可置于前端队列510中。读取命令可针对存储到存储存储器525的数据。如本文所描述,可以根据中断模式或轮询模式操作前端队列510的接口,因此可以根据中断模式或轮询模式处理读取命令。
在529,前端队列510可以向固件515传输中断(例如,指示中断的信号)。出于示例性目的,基于一或多个度量,在529之前存储器系统508可在中断模式下操作。例如,当接收到命令(并存储到前端队列510)时,固件515可能已经确定正在执行的(例如,由固件515正在执行的)命令的数量是否满足阈值。因此,固件515可能已经确定正在执行的命令的数量不满足阈值,并且可能正在中断模式下操作接口。
在531,固件515可基于接收到中断信号(例如,在529处)而从前端队列510获取(例如,检索)第一读取命令。例如,固件515可暂停(例如,临时暂停)执行一或多个命令的至少一部分,并且可基于暂停一或多个命令的至少一部分而检索第一读取命令。
在533,固件515可向后端队列520传输信号以确定与第一读取命令相关联的数据的位置。例如,固件515可包含L2P表的一或多个本地存储区域。然而,与第一读取命令相关联的LBA可能不包含在L2P表的本地存储区域中。因此,固件515可以将信号传输到后端队列520,以读取存储到存储存储器525的L2P表的一部分。
在535,可以将信号从后端队列520传达到存储存储器525,以读取存储到存储存储器525的L2P表的部分。在537,存储存储器525可以向固件515传输信令,所述信令包含L2P表中包含与第一读取命令相关联的LBA的部分。固件515可使用L2P表的部分来确定第一读取命令的LBA与存储存储器525的物理地址之间的映射。
在539,固件515可以向后端队列520传输信号,以基于(例如,在537)传输到固件515的L2P表的部分从存储存储器525读取数据。例如,固件515可以向后端队列520传输信号,用于响应于确定数据的物理地址(例如,基于在537接收L2P表而确定)来读取存储存储器525的物理位置。在541,可以将信号从后端队列520传达到存储存储器525以读取数据。数据可以从存储存储器525的物理地址读取,并且可以存储(例如,临时存储)到缓冲器。
在543,可以将读取命令返回到前端队列510(例如,前端队列510的CQ)。在一些实例中,可以在将读取命令返回到前端队列510之前将读取命令存储(例如,临时存储;发布)到后端队列520。在存储到后端队列520后,可经由固件515将响应返回到前端队列510。因此,尽管读取命令被示为直接从存储存储器525返回到前端队列510(例如,没有任何中间步骤),但是读取命令也可经由后端队列520和/或固件515返回。
在545,可将包含从存储存储器525读取的数据的响应传输到主机系统505,所述响应可满足第一读取命令。尽管示为来自前端队列510,但响应可基于后端队列520中的响应而来自固件515。例如,可将数据从缓冲器(未示出)传输到主机系统505。在一些实例中,当固件515执行其它操作(例如,读取命令、维护操作)时,响应可以临时存储在前端队列510。如本文参考图6所描述,固件515可基于正在中断模式或轮询模式下操作后端队列520的接口而向主机系统505传输存取操作完成的指示(例如,与第一读取命令相关联的存取操作完成的指示)。
在547,主机系统505可以向前端队列510传输第二读取命令。第二读取命令可针对存储到存储存储器525的数据。在一些实例中,可在执行额外命令或维护操作的同时接收第二读取命令。例如,可在执行其它读取或写入命令(未示出)的同时由前端队列510接收第二读取命令,使得满足阈值并且在轮询模式下操作接口(例如,切换到正在操作)。
例如,在551,固件515可以将前端队列510的接口的操作切换到轮询模式。因为接口可能已经在中断模式下操作,所以固件515可以将接口从在中断模式下操作转换为在轮询模式下操作。在一些实例中,固件515可以通过忽略从前端队列510接收的信令(例如,抑制中断处理程序),从而将接口转换为在轮询模式下操作。在其它实例中,固件515可向前端队列510发送切换到轮询模式的消息并基于接收到一或多个命令抑制中断的传输,从而将接口转换为在轮询模式下操作。如本文所描述,接口可基于一或多个度量而在中断模式或轮询模式下操作。例如,在551,固件515可以确定正在执行的(例如,由固件515正在执行的)命令的数量满足阈值(例如,由于正在执行的一或多个命令或维护操作)。仅出于示例性目的,固件515可以确定正在执行的命令的数量满足(例如,符合或超过)阈值,并且可以在轮询模式下操作接口(例如,接口可以从在中断模式下操作转换为在轮询模式下操作)。因此,可以根据轮询模式处理第二读取命令。
在549,固件515可识别轮询触发器。轮询触发器可以是例如轮询定时器到期或当前正在执行的一或多个操作的完成。在一些实例中,固件515可以与前端队列510通信,以基于轮询前端队列510来确定第二读取命令被存储到前端队列510。
在553,固件515可以从前端队列510获取一或多个命令,包含第二读取命令。在轮询操作模式中,固件515可以在第二读取命令存储到前端队列510之后的某一持续时间内获取第二读取命令。例如,第二读取命令可以存储到前端队列510,并且在触发事件之后,固件515可以获取所述命令(以及在一些实例中,一或多个额外命令)。触发事件可包含定时器到期或执行除第二读取命令之外的命令。
在触发事件是定时器到期的情况下,存储器系统508(例如,存储器系统508的存储器控制器)可包含配置成设置为预定义持续时间的定时器。可在轮询操作时发起定时器。当定时器到期时,固件515可执行另一轮询操作。当新命令处于前端队列510中时,固件515可以获取存储的命令(例如,第二读取命令)的至少一部分并执行。在触发事件是执行除第二读取命令之外的命令(例如,额外命令)的情况下,固件515可以在完成执行额外命令后轮询、获取并执行存储的命令(例如,第二读取命令)。例如,当固件515正在执行第一读取命令时,可以将第二读取命令存储到前端队列510。当固件515结束执行第一读取命令时,固件515可以从前端队列510获取第二读取命令并执行。在一些实例中,当在轮询模式下操作时,固件515可以获取额外命令(例如,多个命令)并执行。
在555,固件515可向后端队列520传输信号以确定与第二读取命令相关联的数据的位置。例如,固件515可包含L2P表的一或多个本地存储区域。然而,与第二读取命令相关联的LBA可能不包含在L2P表的本地存储区域中。因此,固件515可以将信号传输到后端队列520,以读取存储到存储存储器525的L2P表的一部分。
在557,可以将信号从后端队列520传达到存储存储器525,以读取存储到存储存储器525的L2P表的部分。在559,存储存储器525可以向固件515传输信令,所述信令包含L2P表中包含与第二读取命令相关联的LBA的部分。固件515可使用L2P表的部分来确定第二读取命令的LBA与存储存储器525的物理地址之间的映射。
在561,固件515可以向后端队列520传输信号,以基于(例如,在559)传输到固件515的L2P表的部分从存储存储器525读取数据。例如,固件515可以向后端队列520传输信号,用于响应于确定数据的物理地址(例如,基于在537接收L2P表而确定)来读取存储存储器525的物理位置。在563,可以将信号从后端队列520传达到存储存储器525以读取数据。数据可以从存储存储器525的物理地址读取,并且可以存储(例如,临时存储)到缓冲器。
在565,可以将读取命令返回到前端队列510(例如,前端队列510的CQ)。在一些实例中,可以在将读取命令返回到前端队列510之前将读取命令存储(例如,临时存储;发布)到后端队列520。在存储到后端队列520后,可经由固件515将响应返回到前端队列510。因此,尽管读取命令被示为直接从存储存储器525返回到前端队列510(例如,没有任何中间步骤),但是读取命令也可经由后端队列520和/或固件515返回。
在567,可将包含从存储存储器525读取的数据的响应传输到主机系统505,所述响应可满足第二读取命令。例如,可将数据从缓冲器(未示出)传输到主机系统505。在一些实例中,当固件515执行其它操作(例如,读取命令、维护操作)时,响应可以临时存储在前端队列510。如本文参考图6所描述,可基于正在中断模式或轮询模式下操作后端队列520的接口而从后端队列520向主机系统505传输存取操作完成的指示(例如,与第二读取命令相关联的存取操作完成的指示)。通过利用中断和轮询两者,存储器系统按照过程流程图500所示来执行可以减少管理轮询或中断事件管理所消耗的时间,从而利用与存储器系统相关联的存储器装置的低时延。
图6示出根据本文公开的实例支持存储器装置的事件管理的过程流程图600的实例。在一些实例中,过程流程图600可以示出由主机系统605以及包含前端队列610、固件615、后端队列620和存储存储器625的存储器系统608执行的一或多个操作。主机系统605、前端队列610、固件615、后端队列620和存储存储器625可以是参考图5描述的主机系统505、前端队列510、固件515、后端队列520和存储存储器525的实例。过程流程图600可以示出在轮询模式或中断模式下操作前端队列610的接口或后端队列620的接口。固件615可配置成在中断模式与轮询模式之间切换接口,这可以减少相关联的存储器系统所消耗的时间,从而利用存储存储器625的低时延(例如,与存储存储器625相关联的存储器装置的低时延)。
在630,固件615可以恢复在存储存储器625上执行一或多个操作。如本文所描述,固件615可执行操作,例如,存取操作、耗损均衡操作、垃圾收集操作、例如错误检测操作或错误校正操作的错误控制操作、加密操作、高速缓存操作、媒体管理操作、后台刷新、健康监测,和与来自主机系统605的命令相关联的逻辑地址(例如,逻辑块地址(LBA))和与存储存储器625内的存储器单元相关联的物理地址(例如,物理块地址)之间的地址转换。
在635,固件615可以向后端队列620传输信号,以基于存储到存储存储器625的数据的物理位置而在存储存储器625上执行第一存取操作(例如,从存储存储器625读取第一数据)。例如,可能已基于固件接收存储到存储存储器625的L2P表的一部分而确定(例如,参考图5描述的537)数据的物理位置。在640,可以将信号从后端队列620传达到存储存储器625以存取数据。
在645,可以从存储存储器625向后端队列620传达第一存取操作完成的指示,并且可以将所述指示存储(例如,临时存储)到后端队列620。如本文所描述,当在存储存储器625的一或多个存储器单元上执行存取操作时,可以将存取操作完成的指示传达到主机系统605。例如,除了与存取存储存储器625相关联的数据(例如,从存储存储器625读取的数据)之外,还可以将存取操作是否成功完成的指示传达到主机系统605。可以在传输指示之前将其存储到后端队列620,并且可以根据中断模式或轮询模式(例如,根据后端队列620的接口是在中断模式下还是在轮询模式下操作)处理指示以进行传输。
在650,固件615可确定在中断模式下操作与后端队列620相关联的接口。固件615可基于确定作为执行中的(例如,由固件615执行中的)I/O命令的对象的LBA的数量不满足(例如,不符合或超过)阈值而确定在中断模式下操作接口。如本文所描述,当在中断模式下操作接口时,固件615可暂停(例如,临时暂停)正在存储存储器625上执行的一或多个操作(例如,在630)。当暂停操作时,固件615可以确定如何处理中断。例如,固件615可以在恢复操作之前向主机系统605传输指示,或者可以恢复操作的一部分且并行地处理传输到主机系统605的指示(例如,作为并行执行的进程)。
在655,在暂停操作后,固件615可以将第一存取操作完成的指示(例如,在645存储到后端队列620完成的指示)传输到主机系统605。如果基于在中断模式下操作接口,尚未恢复正在执行的操作,则固件615可以在向主机系统605传输指示之后恢复执行操作。
在660,如果先前未恢复操作,则固件615可以恢复在存储存储器625上执行一或多个操作。如本文所描述,固件615可执行操作,例如,存取操作、耗损均衡操作、垃圾收集操作、例如错误检测操作或错误校正操作的错误控制操作、加密操作、高速缓存操作、媒体管理操作、后台刷新、健康监测,和与来自主机系统605的命令相关联的逻辑地址(例如,逻辑块地址(LBA))和与存储存储器625内的存储器单元相关联的物理地址(例如,物理块地址)之间的地址转换。
在665,固件615可以向后端队列620传输信号,以基于存储到存储存储器625的数据的物理位置而在存储存储器625上执行第二存取操作(例如,从存储存储器625读取第二数据)。例如,可能已基于固件接收存储到存储存储器625的L2P表的一部分而确定(例如,参考图5描述的559)数据的物理位置。在670,可以将信号从后端队列620传达到存储存储器625以存取数据。
在675,可以从存储存储器625向后端队列620传达第二存取操作完成的指示,并且可以将所述指示存储(例如,临时存储)到后端队列620。如本文所描述,当在存储存储器625的一或多个存储器单元上执行存取操作时,可以将存取操作完成的指示传达到主机系统605。例如,除了与存取存储存储器625相关联的数据(例如,从存储存储器625读取的数据)之外,还可以将存取操作是否成功完成的指示传达到主机系统605。可以在传输指示之前将其存储到后端队列620,并且可以根据中断模式或轮询模式(例如,根据后端队列620的接口是在中断模式下还是在轮询模式下操作)处理指示以进行传输。
在680,固件615可确定在轮询模式下操作与后端队列620相关联的接口。固件615可基于确定作为执行中的(例如,由固件615执行中的)I/O命令的对象的LBA的数量满足(例如,符合或超过)阈值而确定在轮询模式下操作接口。在683,当在轮询模式下操作接口时,固件615可以继续执行操作(例如,在660执行的操作),并且可以周期性地从后端队列620检索任何指示,以处理要传输到主机系统605的指示。在一些实例中,固件615可基于一或多个触发事件检索指示(例如,获取第二存取操作完成的指示)。例如,固件615可以在定时器(例如,轮询定时器)到期时执行轮询并从后端队列620获取指示。可在先前轮询操作完成后发起轮询定时器。另外或替代地,可以在存取或维护操作(例如,在存储存储器625上执行的第三存取操作)完成后执行轮询。
在685,当从后端队列620检索到第二存取操作完成的指示(例如,经由后端队列620将完成发布到前端队列610)后,固件615可以将第二存取操作完成的指示传输到主机系统605。通过利用中断和轮询两者,存储器系统按照过程流程图600所示来执行可以减少管理轮询或中断事件管理所消耗的时间,从而利用与存储器系统相关联的存储器装置的低时延。
图7示出根据本文公开的实例支持存储器装置的事件管理的存储器装置705的框图700。存储器装置705可以是参考图3到6描述的存储器装置的方面的实例。存储器装置705可包含队列组件710和存储器控制器715。这些模块中的每一者可以直接或间接地(例如,经由一或多个总线)彼此通信。
队列组件710可以接收与命令相关联的指示。
存储器控制器715可基于接收到与命令相关联的指示而确定与一或多个存储器装置相关联的活动命令的度量是否满足阈值。在一些实例中,存储器控制器715可基于活动命令的度量是否满足阈值而在中断模式或轮询模式下操作与队列耦合的接口。
在一些实例中,存储器控制器715可确定与一或多个存储器装置上的存取操作相关联的命令的数量不满足阈值。在一些实例中,存储器控制器715可基于确定与一或多个存储器装置上的存取操作相关联的命令的数量不满足阈值而在中断模式下操作接口。
在一些实例中,存储器控制器715可确定与一或多个存储器装置上的存取操作相关联的命令的数量满足阈值。在一些实例中,存储器控制器715可基于确定与一或多个存储器装置上的存取操作相关联的命令的数量满足阈值而在轮询模式下操作接口。
在一些实例中,存储器控制器715可确定活动逻辑块地址的数量不满足阈值。在一些实例中,存储器控制器715可基于确定活动逻辑块地址的数量不满足阈值而在中断模式下操作接口。
在一些实例中,存储器控制器715可确定活动逻辑块地址的数量满足阈值。在一些实例中,存储器控制器715可基于确定活动逻辑块地址的数量满足阈值而在轮询模式下操作接口。
图8示出的流程图示出根据本公开的方面支持存储器装置的事件管理的一或多种方法800。方法800的操作可由本文描述的存储器装置或其组件来实施。例如,方法800的操作可由参考图7描述的存储器装置执行。在一些实例中,存储器装置可执行指令集以控制存储器装置的功能元件以执行所描述的功能。另外或替代地,存储器装置可使用专用硬件执行所描述的功能的方面。
在805,存储器装置可在队列处接收与命令相关联的指示。805的操作可以根据本文描述的方法执行。在一些实例中,805的操作的方面可由参考图7描述的队列组件执行。
在810,存储器装置可基于接收到与命令相关联的指示而确定与一或多个存储器装置相关联的活动命令的度量是否满足阈值。810的操作可以根据本文描述的方法执行。在一些实例中,810的操作的方面可由参考图7描述的存储器控制器执行。
在815,存储器装置可基于活动命令的度量是否满足阈值而在中断模式或轮询模式下操作与队列耦合的接口。815的操作可以根据本文描述的方法执行。在一些实例中,815的操作的方面可由参考图7描述的存储器控制器执行。
在一些实例中,本文描述的设备可执行一或多种方法,例如方法800。所述设备可包含用于以下项的特征、构件或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读媒体):在队列处接收与命令相关联的指示;基于接收到与命令相关联的指示,确定与一或多个存储器装置相关联的活动命令的度量是否满足阈值;以及基于活动命令的度量是否满足阈值,在中断模式或轮询模式下操作与队列耦合的接口。
在一些实例中,活动命令的度量可包含与一或多个存储器装置的存取操作相关联的命令的数量,并且方法800和本文描述的设备可进一步包含用于以下项的操作、特征、构件或指令:确定与一或多个存储器装置上的存取操作相关联的命令的数量不满足阈值;以及基于确定与一或多个存储器装置上的存取操作相关联的命令的数量不满足阈值,在中断模式下操作接口。
在一些实例中,活动命令的度量可包含与一或多个存储器装置上的存取操作相关联的命令的数量,并且方法800和本文描述的设备可进一步包含用于以下项的操作、特征、构件或指令:确定与一或多个存储器装置上的存取操作相关联的命令的数量满足阈值;以及基于确定与一或多个存储器装置上的存取操作相关联的命令的数量满足阈值,在轮询模式下操作接口。
在一些实例中,活动命令的度量可包含与正在执行的一或多个存取操作相关联的活动逻辑块地址的数量,并且方法800和本文描述的设备可进一步包含用于以下项的操作、特征、构件或指令:确定活动逻辑块地址的数量不满足阈值;以及基于确定活动逻辑块地址的数量不满足阈值,在中断模式下操作接口。
在一些实例中,活动命令的度量可包含与正在执行的一或多个存取操作相关联的活动逻辑块地址的数量,并且方法800和本文描述的设备可进一步包含用于以下项的操作、特征、构件或指令:确定活动逻辑块地址的数量满足阈值;以及基于确定活动逻辑块地址的数量满足阈值,在轮询模式下操作接口。
应注意,上文描述的方法描述了可能的实施方案,且操作和步骤可重新布置或以其它方式修改,且其它实施方案是可能的。另外,可组合来自所述方法中的两种或更多种的部分。
描述一种系统。所述系统可包含一或多个存储器装置;队列,其配置成从主机装置接收与一或多个存储器装置的存取操作相关联的第一命令;以及控制器,其与一或多个存储器装置和队列耦合,所述控制器配置成:基于接收到第一命令,确定控制器正在执行的与一或多个存储器装置的存取操作相关联的命令的数量是否满足阈值;以及基于控制器正在执行的存取一或多个存储器装置的命令的数量是否满足阈值,在中断模式或轮询模式下操作与队列和控制器耦合的接口。
一些实例可进一步包含确定与一或多个存储器装置的存取操作相关联的命令的数量不满足阈值;以及基于确定与一或多个存储器装置的存取操作相关联的命令的数量不满足阈值,在中断模式下操作接口。
一些实例可进一步包含从队列接收与第一命令相关联的中断;基于在中断模式下操作接口且接收到中断,暂停执行正在一或多个存储器装置上执行的第二命令;以及基于第二命令的暂停执行,执行第一命令以存取一或多个存储器装置。
一些实例可进一步包含基于执行第一命令以存取一或多个存储器装置,恢复执行第二命令。
一些实例可进一步包含确定与一或多个存储器装置的存取操作相关联的命令的数量满足阈值;以及基于确定与一或多个存储器装置的存取操作相关联的命令的数量满足阈值,在轮询模式下操作接口。
一些实例可进一步包含基于在轮询模式下操作接口而从队列获取第一命令,其中第一命令可基于轮询模式的触发条件而获取;以及基于从队列获取第一命令而执行第一命令。
在一些实例中,触发条件包含轮询定时器到期。
在一些实例中,触发条件包含第二命令的执行完成。
描述一种系统。所述系统可包含一或多个存储器装置;队列,其配置成接收一或多个存储器装置上的存取操作完成的指示;以及控制器,其与一或多个存储器装置和队列耦合,所述控制器配置成:识别与控制器正在执行的一或多个存取操作相关联的活动逻辑块地址的数量;基于识别与控制器正在执行的一或多个存取操作相关联的活动逻辑块地址的数量,确定活动逻辑块地址的数量是否满足阈值;以及基于活动逻辑块地址的数量是否满足阈值,在中断模式或轮询模式下操作与队列和控制器耦合的接口。
一些实例可进一步包含确定活动逻辑块地址的数量不满足阈值;以及基于确定活动逻辑块地址的数量不满足阈值,在中断模式下操作接口。
一些实例可进一步包含:当接口可在中断模式下操作时,从队列接收与一或多个存储器装置上的存取操作完成的指示相关联的中断;基于当接口可在中断模式下操作时接收到与一或多个存储器装置上的存取操作完成的指示相关联的中断,暂停执行正在一或多个存储器装置上执行的操作;以及基于暂停执行正在一或多个存储器装置上执行的操作,向主机装置传输一或多个存储器装置上的存取操作完成的指示。
一些实例可进一步包含基于向主机装置传输一或多个存储器装置上的存取操作完成的指示,恢复执行操作。
一些实例可进一步包含确定活动逻辑块地址的数量满足阈值;以及基于确定活动逻辑块地址的数量满足阈值,在轮询模式下操作接口。
一些实例可进一步包含基于在轮询模式下操作接口以及所述模式的触发条件,从队列获取一或多个存储器装置上的存取操作完成的指示;以及基于从队列获取一或多个存储器装置上的存取操作完成的指示,向主机装置传输一或多个存储器装置上的存取操作完成的指示。
在一些实例中,触发条件包含轮询定时器到期或接收到一或多个存储器装置上的存取操作完成的第二指示。
可使用多种不同技术和技艺中的任一个来表示本文描述的信息和信号。例如,可以通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能引用的数据、指令、命令、信息、信号、位、符号和码片。一些图式可将信号示为单个信号;然而,所属领域的一般技术人员应理解,信号可表示信号的总线,其中总线可具有各种位宽度。
术语“如果”、“当”、“基于”、“至少部分地基于”和“响应于”可互换使用。在一些实例中,如果术语“如果”、“当”、“基于”、“至少部分地基于”和“响应于”用于描述条件性动作或过程的部分之间的连接,则所述术语可互换。在一些实例中,如果用于描述条件性动作或过程,则术语“如果”、“当”、“基于”、“至少部分地基于”和“响应于”可互换。
术语“电子连通”、“导电接触”、“连接”和“耦合”可以指组件之间支持电子在组件之间流动的关系。如果组件之间存在可在任何时间支持信号在组件之间流动的任何导电路径,那么组件被视为彼此电子连通(或彼此导电接触,或彼此连接,或彼此耦合)。在任何给定时间,基于包含所连接组件的装置的操作,彼此电子连通(或导电接触或连接或耦合)的组件之间的导电路径可以是开路或闭路。所连接组件之间的导电路径可以是组件之间的直接导电路径,或所连接组件之间的导电路径可以是可包含如开关、晶体管或其它组件的中间组件的间接导电路径。在一些实例中,可例如使用例如开关或晶体管等一或多个中间组件来中断所连接组件之间的信号流一段时间。
术语“耦合”是指从组件之间的开路关系移动到组件之间的闭路关系的条件,在开路关系中,信号当前无法通过导电路径在组件之间传达,在闭路关系中,信号能够通过导电路径在组件之间传达。如果如控制器的组件将其它组件耦合在一起,那么组件发起允许信号经由先前不准许信号流动的导电路径在其它组件之间流动的改变。
术语“隔离”是指信号当前不能在组件之间流动的组件之间的关系。如果组件之间存在开路,则组件彼此隔离。例如,由定位在两个组件之间的开关间隔开的所述组件在开关断开的情况下彼此隔离。如果控制器将两个组件隔离,那么控制器实现以下改变:阻止信号使用先前准许信号流动的导电路径在组件之间流动。
本文中论述的装置,包含存储器阵列,可形成于例如硅、锗、硅锗合金、砷化镓、氮化镓等半导体衬底上。在一些实例中,衬底是半导体晶片。在其它实例中,衬底可以是绝缘体上硅(SOI)衬底,例如玻璃上硅(SOG)或蓝宝石上硅(SOP),或另一衬底上的半导体材料的外延层。可通过使用包含但不限于磷、硼或砷的各种化学物质的掺杂来控制衬底或衬底的子区的导电性。可在衬底的初始形成或生长期间,通过离子植入或通过任何其它掺杂方法执行掺杂。
本文中所论述的开关组件或晶体管可表示场效应晶体管(FET),且包括包含源极、漏极和栅极的三端装置。所述端子可通过导电材料(例如金属)连接到其它电子元件。源极和漏极可以是导电的,且可包括经重掺杂,例如简并,半导体区。源极与漏极可通过经轻掺杂半导体区或沟道分离。如果沟道是n型的(即,大部分载流子是电子),那么FET可称为n型FET。如果沟道是p型的(即,大部分载流子是空穴),那么FET可称为p型FET。沟道可由绝缘栅极氧化物封端。可通过将电压施加到栅极来控制沟道导电性。例如,将正电压或负电压分别施加到n型FET或p型FET可导致沟道变得导电。如果大于或等于晶体管的阈值电压的电压施加到晶体管栅极,那么晶体管可“接通”或“激活”。如果小于晶体管的阈值电压的电压施加到晶体管栅极,那么晶体管可“断开”或“去激活”。
本文结合附图阐述的描述内容描述了实例配置,且并不表示可以实施的或在权利要求书的范围内的所有实例。本文所用的术语“示例性”意指“充当实例、例子或说明”,而不是“优选”或“优于其它实例”。详细描述包含具体细节,以提供对所描述技术的理解。然而,可以在没有这些具特定细节的情况下实践这些技术。在一些情况下,以框图形式示出熟知结构和装置,以免混淆所描述实例的概念。
在附图中,类似组件或特征可以具有相同的参考标记。另外,可通过在参考标记之后跟着短划线及在类似组件当中进行区分的第二标记来区分相同类型的各种组件。如果说明书中仅使用第一参考标记,那么描述适用于具有相同第一参考标记的类似组件中的任一者,与第二参考标记无关。
本文描述的功能可以硬件、由处理器执行的软件、固件或其任何组合来实施。如果以由处理器执行的软件来实施,那么可将功能作为一或多个指令或代码存储于计算机可读媒体上或通过计算机可读媒体予以传输。其它实例和实施在本公开和所附权利要求书的范围内。例如,由于软件的性质,上文描述的功能可以使用由处理器执行的软件、硬件、固件、硬连线或这些中的任一者的组合来实施。实施功能的特征还可物理上位于各种位置处,包含经分布以使得功能的部分在不同物理位置处实施。
例如,可用通用处理器、DSP、ASIC、FPGA或其它可编程逻辑装置、离散栅极或晶体管逻辑、离散硬件组件或其被设计成执行本文所描述的功能的任何组合来实施或执行结合本文中的本公开而描述的各种说明性块和模块。通用处理器可以是微处理器,但在替代方案中,处理器可以是任何处理器、控制器、微控制器或状态机。处理器还可以实施为计算装置的组合(例如,DSP和微处理器的组合、多个微处理器、与DSP核心结合的一或多个微处理器,或任何其它此类配置)。
如本文中所使用,包含在权利要求书中,如在项列表(例如,后加例如“中的至少一个”或“中的一或多个”的短语的项列表)中所使用的“或”指示包含端点的列表,使得例如A、B或C中的至少一个的列表意指A或B或C或AB或AC或BC或ABC(即,A和B和C)。另外,如本文所用,短语“基于”不应理解为提及封闭条件集。例如,在不脱离本公开的范围的情况下,描述为“基于条件A”的示例性步骤可基于条件A和条件B两者。换句话说,如本文所用,短语“基于”应同样地解释为短语“至少部分地基于”。
计算机可读媒体包含非暂时性计算机存储媒体以及包含促进将计算机程序从一处传送到另一处的任何媒体的通信媒体两者。非暂时性存储媒体可以是可由通用或专用计算机存取的任何可用媒体。借助于实例而非限制,非暂时性计算机可读媒体可包括RAM、ROM、电可擦除可编程只读存储器(EEPROM)、压缩光盘(CD)ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于携载或存储呈指令或数据结构形式的所要程序代码构件且可由通用或专用计算机或者通用或专用处理器存取的任何其它非暂时性媒体。并且,适当地将任何连接称作计算机可读媒体。例如,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电和微波的无线技术从网站、服务器或其它远程源传输软件,那么所述同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电和微波的无线技术包含在媒体的定义中。如本文所使用的,磁盘和光盘包含CD、激光光盘、光学光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常以磁性方式复制数据,而光盘使用激光以光学方式复制数据。以上各者的组合也包含在计算机可读媒体的范围内。
提供本文中的描述使得所属领域的技术人员能够进行或使用本公开。所属领域技术人员将清楚对本公开的各种修改,且本文中所定义的一般原理可应用于其它变化形式而不会脱离本公开的范围。因此,本公开不限于本文描述的实例和设计,而是被赋予与本文公开的原理和新颖特征一致的最宽范围。

Claims (20)

1.一种存储器系统,其包括:
一或多个存储器装置,
队列,其配置成从主机装置接收与所述一或多个存储器装置的存取操作相关联的第一命令,以及
控制器,其与所述一或多个存储器装置和所述队列耦合,所述控制器配置成:
至少部分地基于接收到所述第一命令,确定所述控制器正在执行的与所述一或多个存储器装置的存取操作相关联的命令的数量是否满足阈值;以及
至少部分地基于所述控制器正在执行的存取所述一或多个存储器装置的所述命令的数量是否满足所述阈值,在中断模式或轮询模式下操作与所述队列和所述控制器耦合的接口。
2.根据权利要求1所述的存储器系统,其中所述控制器配置成:
确定与所述一或多个存储器装置的所述存取操作相关联的所述命令的数量不满足所述阈值;以及
至少部分地基于确定与所述一或多个存储器装置的所述存取操作相关联的所述命令的数量不满足所述阈值,在所述中断模式下操作所述接口。
3.根据权利要求2所述的存储器系统,其中所述控制器配置成:
从所述队列接收与所述第一命令相关联的中断;
至少部分地基于在所述中断模式下操作所述接口且接收到所述中断,暂停执行正在所述一或多个存储器装置上执行的第二命令;以及
至少部分地基于所述第二命令的暂停执行,执行所述第一命令以存取所述一或多个存储器装置。
4.根据权利要求3所述的存储器系统,其中所述控制器配置成:
至少部分地基于执行所述第一命令以存取所述一或多个存储器装置,恢复执行所述第二命令。
5.根据权利要求1所述的存储器系统,其中所述控制器配置成:
确定与所述一或多个存储器装置的所述存取操作相关联的所述命令的数量满足所述阈值;以及
至少部分地基于确定与所述一或多个存储器装置的所述存取操作相关联的所述命令的数量满足所述阈值,在所述轮询模式下操作所述接口。
6.根据权利要求5所述的存储器系统,其中所述控制器配置成:
至少部分地基于在所述轮询模式下操作所述接口而从所述队列获取所述第一命令,其中所述第一命令是至少部分地基于所述轮询模式的触发条件而获取的;以及
至少部分地基于从所述队列获取所述第一命令而执行所述第一命令。
7.根据权利要求6所述的存储器系统,其中所述触发条件包括轮询定时器到期。
8.根据权利要求6所述的存储器系统,其中所述触发条件包括第二命令的执行完成。
9.一种存储器系统,其包括:
一或多个存储器装置,
队列,其配置成接收所述一或多个存储器装置上的存取操作完成的指示,以及控制器,其与所述一或多个存储器装置和所述队列耦合,所述控制器配置成:
识别与所述控制器正在执行的一或多个存取操作相关联的活动逻辑块地址的数量;
至少部分地基于识别与所述控制器正在执行的所述一或多个存取操作相关联的所述活动逻辑块地址的数量,确定所述活动逻辑块地址的数量是否满足阈值;以及
至少部分地基于所述活动逻辑块地址的数量是否满足所述阈值,在中断模式或轮询模式下操作与所述队列和所述控制器耦合的接口。
10.根据权利要求9所述的存储器系统,其中所述控制器配置成:
确定所述活动逻辑块地址的数量不满足所述阈值;以及
至少部分地基于确定所述活动逻辑块地址的数量不满足所述阈值,在所述中断模式下操作所述接口。
11.根据权利要求10所述的存储器系统,其中所述控制器配置成:
当所述接口在所述中断模式下操作时,从所述队列接收与所述一或多个存储器装置上的所述存取操作完成的所述指示相关联的中断;
至少部分地基于当所述接口在所述中断模式下操作时接收到与所述一或多个存储器装置上的所述存取操作完成的所述指示相关联的所述中断,暂停执行正在所述一或多个存储器装置上执行的操作;以及
至少部分地基于暂停执行正在所述一或多个存储器装置上执行的所述操作,向主机装置传输所述一或多个存储器装置上的所述存取操作完成的所述指示。
12.根据权利要求11所述的存储器系统,其中所述控制器配置成:
至少部分地基于向所述主机装置传输所述一或多个存储器装置上的所述存取操作完成的所述指示,恢复执行所述操作。
13.根据权利要求9所述的存储器系统,其中所述控制器配置成:
确定所述活动逻辑块地址的数量满足所述阈值;以及
至少部分地基于确定所述活动逻辑块地址的数量满足所述阈值,在所述轮询模式下操作所述接口。
14.根据权利要求13所述的存储器系统,其中所述控制器配置成:
至少部分地基于在所述轮询模式下操作所述接口以及所述轮询模式的触发条件,从所述队列获取所述一或多个存储器装置上的所述存取操作完成的所述指示;以及
至少部分地基于从所述队列获取所述一或多个存储器装置上的所述存取操作完成的所述指示,向主机装置传输所述一或多个存储器装置上的所述存取操作完成的所述指示。
15.根据权利要求14所述的存储器系统,其中所述触发条件包括轮询定时器到期或接收到所述一或多个存储器装置上的存取操作完成的第二指示。
16.一种非暂时性计算机可读媒体,其存储代码,所述代码包括指令,所述指令在由存储器装置的处理器执行时使所述存储器装置:
在队列处接收与命令相关联的指示;
至少部分地基于接收到与所述命令相关联的所述指示,确定与一或多个存储器装置相关联的活动命令的度量是否满足阈值;以及
至少部分地基于所述活动命令的度量是否满足阈值,在中断模式或轮询模式下操作与所述队列耦合的接口。
17.根据权利要求16所述的非暂时性计算机可读媒体,其中所述活动命令的度量包括与一或多个存储器装置的存取操作相关联的命令的数量,并且其中所述指令在由所述存储器装置的所述处理器执行时进一步使所述存储器装置:
确定与所述一或多个存储器装置上的所述存取操作相关联的所述命令的数量不满足所述阈值;以及
至少部分地基于确定与所述一或多个存储器装置上的存取操作相关联的所述命令的数量不满足所述阈值,在所述中断模式下操作所述接口。
18.根据权利要求16所述的非暂时性计算机可读媒体,其中所述活动命令的度量包括与一或多个存储器装置的存取操作相关联的命令的数量,并且其中所述指令在由所述存储器装置的所述处理器执行时进一步使所述存储器装置:
确定与所述一或多个存储器装置上的存取操作相关联的所述命令的数量满足所述阈值;以及
至少部分地基于确定与所述一或多个存储器装置上的存取操作相关联的所述命令的数量满足所述阈值,在所述轮询模式下操作所述接口。
19.根据权利要求16所述的非暂时性计算机可读媒体,其中所述活动命令的度量包括与正在执行的一或多个存取操作相关联的活动逻辑块地址的数量,并且其中所述指令在由所述存储器装置的所述处理器执行时进一步使所述存储器装置:
确定所述活动逻辑块地址的数量不满足所述阈值;以及
至少部分地基于确定所述活动逻辑块地址的数量不满足所述阈值,在所述中断模式下操作所述接口。
20.根据权利要求16所述的非暂时性计算机可读媒体,其中所述活动命令的度量包括与正在执行的一或多个存取操作相关联的活动逻辑块地址的数量,并且其中所述指令在由所述存储器装置的所述处理器执行时进一步使所述存储器装置:
确定所述活动逻辑块地址的数量满足所述阈值;以及
至少部分地基于确定所述活动逻辑块地址的数量满足所述阈值,在所述轮询模式下操作所述接口。
CN202210116795.7A 2021-02-05 2022-02-07 存储器装置的事件管理 Active CN114882927B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/169,124 US11561733B2 (en) 2021-02-05 2021-02-05 Interrupt mode or polling mode for memory devices
US17/169,124 2021-02-05

Publications (2)

Publication Number Publication Date
CN114882927A true CN114882927A (zh) 2022-08-09
CN114882927B CN114882927B (zh) 2024-02-23

Family

ID=82668272

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210116795.7A Active CN114882927B (zh) 2021-02-05 2022-02-07 存储器装置的事件管理

Country Status (2)

Country Link
US (2) US11561733B2 (zh)
CN (1) CN114882927B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11886364B2 (en) * 2021-06-28 2024-01-30 Vmware, Inc. Adaptive hybrid polling based on outstanding input/output (I/O) determination
KR20230035811A (ko) * 2021-09-06 2023-03-14 에스케이하이닉스 주식회사 데이터 처리 시스템 내 공유된 메모리 공간을 제어하기 위한 장치 및 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1956438A (zh) * 2005-10-28 2007-05-02 中兴通讯股份有限公司 消息处理方式的自动切换方法
US20110023040A1 (en) * 2009-07-24 2011-01-27 Apple Inc. Power-efficient interaction between multiple processors
US20140189212A1 (en) * 2011-09-30 2014-07-03 Thomas M. Slaight Presentation of direct accessed storage under a logical drive model
US20170242594A1 (en) * 2016-02-23 2017-08-24 Samsung Electronics Co., Ltd. Method of application aware io completion mode changer for key value device
CN112204524A (zh) * 2018-05-24 2021-01-08 赛灵思公司 用于硬件加速的硬件资源的嵌入式调度

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201716564U (zh) * 2010-06-25 2011-01-19 中国科学院沈阳自动化研究所 高性能可编程控制器专用处理器体系结构
US8588228B1 (en) * 2010-08-16 2013-11-19 Pmc-Sierra Us, Inc. Nonvolatile memory controller with host controller interface for retrieving and dispatching nonvolatile memory commands in a distributed manner
US9335952B2 (en) * 2013-03-01 2016-05-10 Ocz Storage Solutions, Inc. System and method for polling the status of memory devices
CN105376218B (zh) * 2015-10-21 2020-11-13 上海思华科技股份有限公司 一种快速响应用户请求的流媒体系统和方法
US11200179B2 (en) * 2020-02-26 2021-12-14 Micron Technology, Inc. Facilitating sequential reads in memory sub-systems
CN113835617A (zh) * 2020-06-23 2021-12-24 慧荣科技股份有限公司 数据处理方法及对应的数据储存装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1956438A (zh) * 2005-10-28 2007-05-02 中兴通讯股份有限公司 消息处理方式的自动切换方法
US20110023040A1 (en) * 2009-07-24 2011-01-27 Apple Inc. Power-efficient interaction between multiple processors
US20140189212A1 (en) * 2011-09-30 2014-07-03 Thomas M. Slaight Presentation of direct accessed storage under a logical drive model
US20170242594A1 (en) * 2016-02-23 2017-08-24 Samsung Electronics Co., Ltd. Method of application aware io completion mode changer for key value device
CN112204524A (zh) * 2018-05-24 2021-01-08 赛灵思公司 用于硬件加速的硬件资源的嵌入式调度

Also Published As

Publication number Publication date
US11886749B2 (en) 2024-01-30
US11561733B2 (en) 2023-01-24
CN114882927B (zh) 2024-02-23
US20230205462A1 (en) 2023-06-29
US20220253242A1 (en) 2022-08-11

Similar Documents

Publication Publication Date Title
US11886749B2 (en) Interrupt mode or polling mode for memory devices
US11726914B2 (en) Bias control for a memory device
CN115904221A (zh) 高速缓存块预算技术
CN115248662A (zh) 动态超级块
US20240020016A1 (en) Metadata allocation in memory systems
US11604609B1 (en) Techniques for command sequence adjustment
CN116610251A (zh) 执行写入操作的技术
CN115457994A (zh) 动态功率控制
US11762771B2 (en) Advanced power off notification for managed memory
US20230043502A1 (en) Read latency and suspend modes
US11687291B2 (en) Techniques for non-consecutive logical addresses
US11768629B2 (en) Techniques for memory system configuration using queue refill time
WO2022232969A1 (en) Data organization for logical to physical table compression
US20230342060A1 (en) Techniques for data transfer operations
US20230367710A1 (en) Data defragmentation control
WO2023173361A1 (en) Techniques for efficiently handling misaligned sequential reads
US20230297516A1 (en) Circular buffer partitions
US20240078020A1 (en) Write booster pinning
WO2023173363A1 (en) Low-latency processing for unmap commands
US20230043338A1 (en) Techniques for memory zone size adjustment
US20240061615A1 (en) Command scheduling for a memory system
US20240086070A1 (en) Read disturb management for memory
CN115373588A (zh) 基于数据大小的低延迟存储
CN115729458A (zh) 利用去往主机系统的数据传送的挂起操作
CN115268764A (zh) 使用模式检测预取信息的技术

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