CN115843379A - 用来改进顺序存储器命令性能的存储器命令聚合 - Google Patents
用来改进顺序存储器命令性能的存储器命令聚合 Download PDFInfo
- Publication number
- CN115843379A CN115843379A CN202180014832.7A CN202180014832A CN115843379A CN 115843379 A CN115843379 A CN 115843379A CN 202180014832 A CN202180014832 A CN 202180014832A CN 115843379 A CN115843379 A CN 115843379A
- Authority
- CN
- China
- Prior art keywords
- read memory
- memory
- memory command
- command
- device read
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 514
- 230000002776 aggregation Effects 0.000 title abstract description 10
- 238000004220 aggregation Methods 0.000 title abstract description 10
- 238000000034 method Methods 0.000 claims abstract description 57
- 238000012546 transfer Methods 0.000 claims abstract description 41
- 230000004044 response Effects 0.000 claims abstract description 30
- 238000012545 processing Methods 0.000 claims description 63
- 230000008569 process Effects 0.000 description 21
- 238000004891 communication Methods 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 5
- 230000004931 aggregating effect Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000003321 amplification Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
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)
Abstract
本申请涉及用来改进顺序存储器命令性能的存储器命令聚合。描述一种方法,其包含通过存储器子系统控制器从主机系统接收主机读取存储器命令,所述主机读取存储器命令参考与存储器装置的一组传送单元相关联的一组逻辑块地址。所述控制器将所述一组逻辑块地址转化为所述一组传送单元的一组物理块地址;基于所述物理块地址产生一组装置读取存储器命令,其中每个装置读取存储器命令参考至少一个物理块地址;以及响应于确定第一装置读取存储器命令与第二装置读取存储器命令相关联,基于所述第一装置读取存储器命令和所述第二读取存储器命令产生第一聚合装置读取存储器命令。此后,所述控制器将所述第一聚合装置读取存储器命令传输到所述存储器装置。
Description
技术领域
本公开大体上涉及存储器命令聚合,且更具体来说,涉及用来改进顺序存储器命令性能的存储器命令聚合。
背景技术
存储器子系统可包含存储数据的一或多个存储器装置。所述存储器装置可以是例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可以利用存储器子系统以在存储器装置处存储数据并且从存储器装置检索数据。
发明内容
在一方面,本申请提供一种方法,其包括:通过存储器子系统控制器从主机系统接收主机读取存储器命令,所述主机读取存储器命令参考与存储器装置的一组传送单元相关联的一组逻辑块地址;通过存储器子系统控制器将所述一组逻辑块地址转化为存储器装置的所述一组传送单元的一组物理块地址;通过存储器子系统控制器基于所述一组物理块地址产生一组装置读取存储器命令,其中所述一组装置读取存储器命令中的每个装置读取存储器命令参考所述一组物理块地址中的至少一个物理块地址;响应于确定第一装置读取存储器命令与第二装置读取存储器命令相关联,通过存储器子系统控制器基于第一装置读取存储器命令和第二读取存储器命令产生第一聚合装置读取存储器命令;以及通过存储器子系统控制器将第一聚合装置读取存储器命令传送到存储器装置。
在另一方面,本申请提供一种包括指令的非暂时性计算机可读存储媒体,所述指令在由处理装置执行时使所述处理装置进行以下操作:通过存储器子系统控制器从主机系统接收主机读取存储器命令,所述主机读取存储器命令参考与存储器装置的一组传送单元相关联的一组逻辑块地址;通过存储器子系统控制器将所述一组逻辑块地址转化为存储器装置的所述一组传送单元的一组物理块地址;通过存储器子系统控制器基于所述一组物理块地址产生一组装置读取存储器命令,其中所述一组装置读取存储器命令中的每个装置读取存储器命令参考所述一组物理块地址中的至少一个物理块地址;响应于确定第一装置读取存储器命令与第二装置读取存储器命令相关联,通过存储器子系统控制器基于第一装置读取存储器命令和第二读取存储器命令产生第一聚合装置读取存储器命令;以及通过存储器子系统控制器将第一聚合装置读取存储器命令传送到存储器装置。
在另一方面,本申请提供一种系统,其包括:存储器装置;和以操作方式与存储器装置耦合的处理装置,用于进行以下操作:通过存储器子系统控制器从主机系统接收主机读取存储器命令,所述主机读取存储器命令参考与存储器装置的一组传送单元相关联的一组逻辑块地址;通过存储器子系统控制器基于与所述一组逻辑块地址相关联的一组逻辑块地址产生一组装置读取存储器命令,其中所述一组装置读取存储器命令中的每个装置读取存储器命令参考所述一组物理块地址中基于所述一组逻辑块地址产生的至少一个物理块地址;响应于确定第一装置读取存储器命令与第二装置读取存储器命令相关联,通过存储器子系统控制器基于第一装置读取存储器命令和第二读取存储器命令产生第一聚合装置读取存储器命令;以及通过存储器子系统控制器将第一聚合装置读取存储器命令传送到存储器装置,以通过从存储器装置的所述一组传送单元读取数据来实现第一装置读取存储器命令和第二装置读取存储器命令。
附图说明
根据下文给出的详细描述并且根据本公开的各种实施例的附图将更加充分地理解本公开。然而,图式不应视为将本公开限于特定实施例,而是仅用于阐释和理解。
图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
图2为根据本公开的一些实施例的聚合存储器与非(NAND)命令的实例方法的流程图。
图3A示出了根据本公开的一些实施例的并成单个聚合NAND读取存储器命令的两个NAND读取存储器命令。
图3B示出了根据本公开的一些实施例的并成单个聚合NAND读取存储器命令的三个NAND读取存储器命令。
图4为根据本公开的一些实施例的聚合装置读取存储器命令的实例方法的流程图。
图5是本公开的实施例可以在其中操作的实例计算机系统的框图。
具体实施方式
本公开的各方面涉及聚合存储器命令以改进存储器子系统中的顺序存储器命令性能。存储器子系统可为存储装置、存储器模块,或存储装置与存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含一或多个组件(例如存储数据的存储器装置)的存储器子系统。主机系统可提供将存储在存储器子系统处的数据,且可请求将从存储器子系统检索的数据。
存储器装置可以为非易失性存储器装置。非易失性存储器装置为一或多个裸片的封装。非易失性存储器装置的一个实例为与非(NAND)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。封装中的裸片可指派给一或多个信道以用于与存储器子系统控制器通信。每一裸片可由一或多个逻辑单元(LUN)组成或包含一或多个逻辑单元,且每个LUN可由一或多个平面组成或包含一或多个平面。对于一些类型的非易失性存储器装置(例如,NAND存储器装置),每一平面由一组物理块组成,所述物理块为用于存储数据的存储器单元的群组。所述单元为存储信息的电子电路。
取决于单元类型,单元可以存储二进制信息的一或多个位,且具有与正存储的位数相关的各种逻辑状态。逻辑状态可由二进制值(例如“0”和“1”)或此类值的组合表示。存在各种类型的单元,例如单层级单元(SLC)、多层级单元(MLC)、三层级单元(TLC)和四层级单元(QLC)。例如,SLC可存储一位信息且具有两个逻辑状态。
存储器子系统可包含从主机系统接收存储器命令并将这些主机存储器命令转换为存储器装置命令的多层固件。例如,主机系统将读取存储器命令传输到存储器子系统,以在NAND存储器装置(有时被称作NAND阵列)中存取数据。主机存储器命令可包含逻辑块地址,所述逻辑块地址由主机系统使用以指示开始逻辑块地址和运行长度,所述运行长度指示从开始逻辑块地址起的顺序逻辑块地址的数目。一旦主机存储器命令由存储器子系统接收,所述主机存储器命令就可以通过存储器子系统的固件转化为一组较低层级命令以供NAND存储器装置最终使用。确切来说,可将单个主机存储器命令转换为一或多个NAND存储器命令,所述NAND存储器命令被发布到NAND存储器装置以存取数据。例如,请求16千字节数据的主机存储器命令可转换为每个请求4千字节数据的四个NAND存储器命令。此存储器命令放大产生了用于NAND存储器装置的相当大的处理开销,减少了整体存储器子系统的处理量。确切来说,对存储器装置的每次存取需要存储器装置进行单独处理,也需要单独的时间来完成。
本公开的各方面通过将NAND读取存储器命令聚合成单个聚合NAND读取存储器命令并将所述聚合NAND读取存储器命令传输到NAND存储器装置以供处理来解决以上和其它缺陷。例如,主机系统将一或多个主机读取存储器命令传输到存储器子系统,所述存储器子系统包含用于处理/管理接收到的主机存储器命令的固件和主机读取存储器命令试图从其存取数据的NAND存储器装置。在一个实施例中,固件的一个层级将主机读取存储器命令转换为一组NAND读取存储器命令。这可包含固件将主机读取存储器命令的一组逻辑块地址转换为NAND存储器装置的对应物理块地址,且将这些物理块地址包含在所述一组NAND读取存储器命令中。例如,如果一组主机读取存储器命令请求从NAND存储器装置的四个单独传送单元读取16千字节数据,所述固件可以将所述一组主机读取存储器命令的逻辑块地址转换为四个物理块地址,且为这些物理块地址中的每个产生单独的NAND读取存储器命令。将所产生的NAND读取存储器命令传送到固件的较低层级,在所述较低层级中分析所述NAND读取存储器命令以用于聚合。例如,固件113可确定四个物理块地址中的两个或更多个是否在存储器装置的相同信道、裸片/LUN和页内。基于此关联,固件113可将所述两个或更多个物理块地址聚合为单个聚合NAND读取存储器命令。此单个聚合NAND读取存储器命令(1)可表示多个NAND读取存储器命令且(2)需要与单个NAND读取存储器命令相同的时间量来处理。在一些实施例中,所述单个聚合NAND读取存储器命令的大小是有限的(例如阈值数目个物理块地址可以由单个聚合NAND读取存储器命令表示)和/或聚合限于重复出现的超时周期以确保数据在没有过多延迟的情况下传回到主机系统。下文将描述关于上述技术的进一步细节。
图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130),或它们的组合。
存储器子系统110可为存储装置、存储器模块或存储装置与存储器模块的混合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡和硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小外形DIMM(SO-DIMM)和各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算系统100可以是计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具有物联网(IoT)功能的装置、嵌入式计算机(例如,交通工具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的此类计算装置。
计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文所使用,“耦合到……”或“与……耦合”通常是指组件之间的连接,所述连接可以是间接通信连接或直接通信连接(例如,没有中间组件),无论是有线还是无线的,包含例如电连接、光学连接、磁连接等连接。
主机系统120可包含处理器芯片组和由所述处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如,NVDIMM控制器),和存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120使用存储器子系统110,例如将数据写入到存储器子系统110以及从存储器子系统110读取数据。
主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于,串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(SAS)、小型计算机系统接口(SCSI)、双数据速率(DDR)存储器总线、双列直插式存储器模块(DIMM)接口(例如,支持双数据速率(DDR)的DIMM套接接口)、开放NAND快闪接口(ONFI)、双数据速率(DDR)、低功率双数据速率(LPDDR)或任何其它接口。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可进一步利用NVM高速(NVMe)接口来存取组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据和其它信号的接口。图1说明存储器子系统110作为实例。一般来说,主机系统120可经由同一通信连接、多个单独通信连接和/或通信连接的组合存取多个存储器子系统。
存储器装置130、140可以包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可为但不限于随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(NAND)型快闪存储器和就地写入存储器,例如三维交叉点(“3D交叉点”)存储器装置,所述三维交叉点存储器装置为非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变而执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可进行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元执行编程。NAND型快闪存储器包含例如二维NAND(2D NAND)和三维NAND(3D NAND)。
虽然描述了非易失性存储器装置,如NAND型存储器(例如,2D NAND、3D NAND)和3D交叉点非易失性存储器单元阵列,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、或非(NOR)快闪存储器,以及电可擦除可编程只读存储器(EEPROM)。
存储器子系统控制器115(或为简单起见称为控制器115)可与存储器装置130通信以执行操作,例如在存储器装置130处读取数据、写入数据或擦除数据和其它此类操作(例如,响应于由控制器115在命令总线上调度的命令)。存储器子系统控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器,或其组合。硬件可包含具有专用(即,硬编码)逻辑的数字电路系统以执行本文中所描述的操作。存储器子系统控制器115可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等),或另一合适的处理器。
存储器子系统控制器115可包含处理装置117(处理器),所述处理装置经配置以执行存储于本地存储器119中的指令。在所说明的实例中,存储器子系统控制器115的本地存储器119包含嵌入式存储器,所述嵌入式存储器经配置以存储指令以用于执行控制存储器子系统110的操作的各种过程、操作、逻辑流和例程,包含处置存储器子系统110与主机系统120之间的通信。
在一些实施例中,本地存储器119可包含存储存储器指针、所提取的数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。虽然图1中的实例存储器子系统110已说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,而是可以依赖于外部控制(例如,由外部主机提供,或由与存储器子系统110分离的处理器或控制器提供)。
一般来说,存储器子系统控制器115可从主机系统120接收命令或操作并且可将所述命令或操作转化成指令或适当命令以实现对存储器装置130和/或存储器装置140的所需存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作,以及与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、命名空间)与物理地址(例如,物理块地址)之间的地址转换。存储器子系统控制器115可进一步包含主机接口电路系统,其经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收到的命令转化为命令指令以存取存储器装置130和/或存储器装置140,以及将与存储器装置130和/或存储器装置140相关联的响应转化为用于主机系统120的信息。
存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如,DRAM)和可从存储器子系统控制器115接收地址且对所述地址进行解码以存取存储器装置130的地址电路系统(例如,行解码器和列解码器)。
在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130是受管理存储器装置,所述受管理存储器装置是与本地控制器(例如,本地控制器135)组合以在同一存储器装置封装内进行媒体管理的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。
存储器子系统110包含可根据一或多个条件聚合NAND存储器命令的固件113。在一些实施例中,控制器115包含固件113的至少一部分。例如,控制器115可包含处理器117(处理装置),所述处理器经配置以执行存储在本地存储器119中的指令以用于执行本文中所描述的操作。在一些实施例中,固件113是主机系统110、应用程序或操作系统的部分。
固件113可以根据一或多个条件聚合NAND存储器命令。下文描述关于固件113的操作的进一步细节。
图2为根据本公开的一些实施例的聚合NAND存储器命令的实例方法200的流程图。方法200可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法200通过图1的固件113执行。虽然以特定序列或次序展示,但是除非另外规定,否则过程的次序可以修改。因此,应理解说明的实施例仅为实例,且所说明的过程可以不同次序执行,且一些过程可并行地执行。另外,可以在各种实施例中省略一或多个过程。因此,并非在每一实施例中都需要所有过程。其它过程流程是可能的。
在操作202处,处理装置从主机系统120接收主机存储器命令。主机存储器命令可为指示对应于存储器装置130/140(例如NAND存储器装置)中的传送单元的一组逻辑块地址的读取存储器命令。所述一组逻辑块地址为由主机系统120用于处理/管理存储于存储器装置中130/140的数据的逻辑地址空间的部分。例如,主机存储器命令可为指示开始逻辑块地址和运行长度的主机读取存储器命令,所述运行长度指示从开始逻辑块地址起的顺序逻辑块地址的数目。在此实例中,主机读取存储器命令试图从与所述一组逻辑块地址相关联的存储器装置130/140的传送单元读取数据,且将此读取数据传回到主机系统120。
出于说明的目的,将参考主机读取存储器命令描述方法200。然而,在其它实施例中,可类似地为其它存储器命令执行方法200,包含来源于主机系统120或另一源的写入和擦除存储器命令(例如,出于垃圾收集目的由存储器子系统110内部产生的存储器命令)。
在操作204处,处理装置将主机读取存储器命令的所述一组逻辑块地址转化/转换为存储器装置130/140的一组物理块地址。确切来说,如上所述,主机系统120利用逻辑地址空间来管理存储于存储器装置130/140中的数据。存储器子系统110可以维持逻辑到物理表(或另一类似机制),所述逻辑到物理表将主机系统120使用的逻辑块地址映射到存储器装置130/140使用的物理块地址。例如,固件113使用逻辑到物理表将主机读取存储器命令的所述一组逻辑块地址转换为所述一组物理块地址。所述一组物理块地址直接识别存储器装置130/140内的传送单元。确切来说,NAND存储器装置(例如存储器装置130)可由一组信道(例如四个信道)组成,且每个信道与裸片相关联(有时称为或识别为逻辑单元号(LUN))。信道为存储器子系统控制器115和存储器装置130/140之间的独立通信机制。相应地,信道的数目指示可同时与存储器子系统控制器115通信的裸片/LUN的数目。在此配置中,每个裸片包含一组平面(例如每个裸片中具有四个平面),且每个平面包含一组块。裸片中的平面数目(例如1、2、4或8)指示每次可以在所述裸片上执行的并行操作的数目。块(有时被称作逻辑块)为存储器装置130/140上最小的擦除单元且包含依次写入的页的集合。传送单元为由存储器子系统控制器115内部管理的最小数据分块。在一些实施例中,传送单元由一或多个块组成。相应地,转换成物理块地址的所述一组逻辑块地址与本身与一或多个块相关联的一组传送单元相关联。
在操作206处,处理装置基于所述一组物理块地址产生一组一或多个NAND存储器命令。例如,固件113可为所述一组物理块地址中的每个物理块地址产生单独的NAND读取存储器命令。在一些实施例中,固件113由多个层次层组成。这些层中的每一个可以将信息传达或传递到层次结构中的邻近层。例如,固件113的较高/上部层可以在操作206处产生一或多个NAND读取存储器命令,所述NAND读取存储器命令将在传送到存储器装置130/140之前被传递到较低层以供进一步处理。在一些实施例中,固件113的较高层将NAND读取存储器命令连同元数据一起传递到固件113的较低层。例如,元数据可以包含关于特定NAND读取存储器命令是否为一连串NAND读取存储器命令的最后一个(例如共同用于实现主机读取存储器命令的一连串NAND读取存储器命令中的最后一个NAND读取存储器命令)的暗示。
在操作208处,处理装置确定超时周期是否已经过去/到期。确切来说,超时周期为其中NAND读取存储器命令可进行聚合且未为主机系统120实现(例如数据不从存储器装置130/140读取且传回到主机系统120)的时间周期。替代地,如在下文将更详细地描述,在此超时周期期间,NAND读取存储器命令可以聚合为聚合NAND读取存储器命令,且此后可将此聚合NAND读取存储器命令发布到存储器装置130/140以实现对应一组主机存储器命令。相应地,超时周期开始于存储器子系统110的初始化或聚合NAND读取存储器命令传输到存储器装置130/140时,且反映聚合可发生且因此主机读取存储器命令通过由存储器装置130/140处理而未被积极实现的时间周期。在一些实施例中,超时周期可静态地设定(例如超时周期为10毫秒(ms),100ms,1秒等)或可适应性地/动态地设定。例如,可基于处理量性能适应性地设定/调节超时周期(例如可降低或升高超时周期以改进处理量性能)。响应于确定超时周期已经过去,方法200移动到操作210。
在操作210处,处理装置将聚合NAND读取存储器命令传输到存储器装置130/140以供处理。确切来说,将聚合NAND读取存储器命令(其可以表示一或多个NAND读取存储器命令)传递到存储器装置130/140,使得存储器装置130/140可从存储器装置130/140的对应传送单元读取数据,并将数据传回请求主机系统120。以此方式,存储器装置130/140基于聚合NAND读取存储器命令实现一或多个主机读取存储器命令。在一些情况下,聚合NAND读取存储器命令在到达操作210处时可为空(即,未将NAND读取存储器命令添加到聚合NAND读取存储器命令或未由聚合NAND读取存储器命令表示)。在这些情况下,处理装置不将聚合NAND读取存储器命令传输到存储器装置130/140。当将聚合NAND读取存储器命令传输到存储器装置130/140以供处理时,或当确定聚合NAND读取存储器命令为空时,处理装置可以在操作210处重置超时周期以开始新的聚合NAND读取存储器命令(即,此时,聚合NAND读取存储器命令为空)。
返回到操作208,响应于确定超时周期尚未过去,方法200移动到操作212。在操作212处,处理装置确定下一/当前NAND读取存储器命令(即,当前正通过这一轮操作208-222处理的NAND读取存储器命令)的物理块地址是否与聚合NAND读取存储器命令中的其它物理块地址相关联。在一个实施例中,此关联包含确定当前NAND读取存储器命令的物理块地址是否处于聚合NAND读取存储器命令中的物理块地址的相同信道、裸片、块和页中。在此实施例中,当前NAND读取存储器命令的物理块地址与聚合NAND读取存储器命令中的其它物理块地址可在相同平面或不同平面中,且仍被视为相关联,只要当前NAND读取存储器命令的物理块地址与聚合NAND读取存储器命令中的物理块地址处于相同信道、裸片、块和页中。此外,如果聚合NAND读取存储器命令为空(即,不包含或不参考任何物理块地址),那么处理装置确定当前NAND读取存储器命令的物理块地址与聚合NAND读取存储器命令中的其它物理块地址相关联。
响应于在操作212处确定当前NAND读取存储器命令的物理块地址不与聚合NAND读取存储器命令中的其它物理块地址相关联,方法200移动到操作214。确切来说,处理装置将聚合NAND读取存储器命令传输到存储器装置130/140以供处理。处理装置传输聚合NAND读取存储器命令,使得可基于当前NAND读取存储器命令和潜在的待处理的一或多个其它NAND读取存储器命令产生新的聚合NAND读取存储器命令。在一些实施例中,以与操作210相同或类似的方式执行操作214。
在操作214之后或响应于在操作212处确定当前NAND读取存储器命令的物理块地址与聚合NAND读取存储器命令中的其它物理块地址相关联,方法200移动到操作216。在操作216处,处理装置基于当前NAND读取存储器命令修改聚合NAND读取存储器命令。确切来说,处理装置修改聚合NAND读取存储器命令以包含由当前NAND读取存储器命令表示或指示的物理块地址。相应地,聚合NAND读取存储器命令潜在地表示多个NAND读取存储器命令。例如,图3A示出了具有对应裸片/LUN 304的信道302。裸片304包含四个平面3060-3063,且每个平面306包含四个传送单元(TU)308,每个传送单元存储4千字节数据。确切来说,平面3060包含传送单元3080,0-3080,3,平面3061包含传送单元3081,0-3081,3,平面3062包含传送单元3082,0-3082,3,平面3063包含传送单元3083,0-3083,3。如图3A所示,两个NAND读取存储器命令3101和3102分别参考传送单元3080,0和3080,2。试图从相同平面3060存取数据的这些NAND读取存储器命令3101和3102组合在单个聚合NAND读取存储器命令3121中。此单个聚合NAND读取存储器命令3121可传递到存储器装置130/140以供从传送单元3080,0和3080,2存取对应数据。在另一实例中,图3B示出了分别参考传送单元3080,2、3081,2和3082,0的三个NAND读取存储器命令3103、3104和3105。这些试图分别从单独平面3060、3061和3062存取数据的NAND读取存储器命令3103、3104和3105组合在单个聚合NAND读取存储器命令3122中。相应地,可使用单个聚合NAND读取存储器命令312以存储器装置130/140的单个存取/感测处理多个NAND读取存储器命令310(例如可使用单个多平面读取命令跨越裸片304的不同平面306存取传送单元308)。NAND读取存储器命令310的此组合或重新排序都简化了对存储器装置130/140的存取(例如减少发送到存储器装置130/140的命令数目)且减少了通过存储器装置130/140读取数据所花费的时间(例如单个多平面读取命令消耗与单平面读取命令相等的时间量)。
在操作218处,处理装置确定聚合NAND读取存储器命令是否满足阈值大小(例如等于阈值大小)。确切来说,聚合NAND读取存储器命令可以包含或表示阈值数目个物理块地址。此阈值可静态地设定(例如8-64个物理块地址)或动态地调节(例如经调节以增加处理量性能)。响应于确定聚合NAND读取存储器命令符合阈值大小,方法200移动到操作220。在操作220处,处理装置将聚合NAND读取存储器命令传输到存储器装置130/140以供处理。在一些实施例中,操作220以与操作210相同或类似的方式执行。
返回到操作218,响应于确定聚合NAND读取存储器命令不符合阈值大小,方法200移动到操作222。在操作222处,处理装置确定当前NAND读取存储器命令是否为一连串NAND读取存储器命令中的最后一个NAND读取存储器命令。确切来说,可产生一连串NAND读取存储器命令来表示单个主机读取存储器命令。当在固件113的较高层处处理此单个主机读取存储器命令,且在操作206处产生所述一组NAND读取存储器命令时,固件113的较高层可将元数据(例如暗示)传递到固件113的较低层,所述元数据指示特定NAND读取存储器命令是否为一连串NAND读取存储器命令中的最后一个NAND读取存储器命令。响应于确定当前NAND读取存储器命令不是一连串NAND读取存储器命令中的最后一个NAND读取存储器命令,方法200移动到操作208以处理一连串NAND读取存储器命令的下一NAND读取存储器命令。相反地,响应于确定当前NAND读取存储器命令是一连串NAND读取存储器命令中的最后一个NAND读取存储器命令或在操作220之后,方法200移动到操作202以处理新的主机读取命令。
虽然上文是参考处理对应于单个主机读取存储器命令的NAND读取存储器命令描述的,但是方法200可针对对应于相同信道、裸片/LUN和/或页或不同信道、裸片/LUN和页的多个主机读取存储器命令并行地执行。
图4为根据本公开的一些实施例的聚合装置读取存储器命令的实例方法400的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法400由图1的固件113执行。虽然以特定序列或次序展示,但是除非另外规定,否则过程的次序可以修改。因此,应理解说明的实施例仅为实例,且所说明的过程可以不同次序执行,且一些过程可并行地执行。另外,可以在各种实施例中省略一或多个过程。因此,并非在每一实施例中都需要所有过程。其它过程流程是可能的。
在操作402处,处理装置从主机系统120接收参考与存储器装置(例如存储器装置130/140)的一组传送单元相关联的一组逻辑块地址的主机读取存储器命令。所述一组逻辑块地址为由主机系统120用于处理/管理存储于存储器装置130/140中的数据的逻辑地址空间的部分。例如,主机读取存储器命令指示开始逻辑块地址和运行长度,所述运行长度指示从开始逻辑块地址起的顺序逻辑块地址的数目。在此实例中,主机读取存储器命令试图从与所述一组逻辑块地址相关联的存储器装置130/140的传送单元读取数据,且将此读取数据传回到主机系统120。
在操作404处,处理装置将所述一组逻辑块地址转化为存储器装置的所述一组传送单元的一组物理块地址。确切来说,如上所述,主机系统120利用逻辑地址空间来管理存储于存储器装置130/140中的数据。存储器子系统110可以维持逻辑到物理表(或另一类似机制),所述逻辑到物理表将主机系统120使用的逻辑块地址映射到存储器装置130/140使用的物理块地址。在操作404处,固件113使用逻辑到物理表将主机读取存储器命令的所述一组逻辑块地址转换为所述一组物理块地址。所述一组物理块地址直接识别存储器装置130/140内的传送单元。
在操作406处,处理装置基于所述一组物理块地址产生一组装置读取存储器命令(例如NAND读取存储器命令),其中所述一组装置读取存储器命令中的每个装置读取存储器命令参考所述一组物理块地址中的至少一个物理块地址。例如,固件113可为所述一组物理块地址中的每个物理块地址产生单独的装置读取存储器命令。在一些实施例中,固件113由多个层次层组成。这些层中的每一个可以将信息传达或传递到层次结构中的邻近层。例如,固件113的较高/上部层可以在操作406处产生一或多个装置读取存储器命令,所述装置读取存储器命令将在传送到存储器装置130/140之前被传递到较低层以供进一步处理。在一些实施例中,固件113的较高层将装置读取存储器命令连同元数据一起传递到固件113的较低层。例如,元数据可以包含关于特定装置读取存储器命令是否为一连串装置读取存储器命令中的最后一个(例如共同用于实现主机读取存储器命令的一连串装置读取存储器命令中的最后一个NAND读取存储器命令)的暗示。
在操作408处,处理装置响应于确定多个装置读取存储器命令相关联而基于多个读取存储器命令产生聚合装置读取存储器命令。例如,固件113可确定四个物理块地址中的两个或更多个是否在存储器装置的相同信道、裸片/LUN和页内。基于此关联,固件113可将所述两个或更多个物理块地址聚合为单个聚合装置读取存储器命令。此单个聚合装置读取存储器命令(1)可表示多个装置读取存储器命令且(2)需要与单个装置读取存储器命令相同的时间量来处理。
在操作410处,处理装置将聚合装置读取存储器命令传送到存储器装置以通过从存储器装置的所述一组传送单元读取数据来实现多个第二装置读取存储器命令。确切来说,将表示多个装置读取存储器命令的聚合装置读取存储器命令传递到存储器装置,使得存储器装置可以从存储器装置的对应传送单元读取数据,并将数据传回请求主机系统120。以此方式,存储器装置基于聚合装置读取存储器命令实现一或多个主机读取存储器命令。当将聚合装置读取存储器命令传输到存储器装置以供处理时,处理装置可以重置超时周期以开始新的聚合装置读取存储器命令(即,此时,聚合装置读取存储器命令为空)。
图5说明计算机系统500的实例机器,所述实例机器内可执行用于使得所述机器执行本文中所论述的方法中的任何一或多种的一组指令。在一些实施例中,计算机系统500可对应于包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)的主机系统(例如,图1的主机系统120),或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的固件113的操作)。在替代性实施例中,机器可连接(例如联网)到LAN、内联网、外联网和/或互联网中的其它机器。机器可作为客户端-服务器网络环境中的服务器或客户端机器、作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而进行操作。
所述机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网络设备、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行指定待由所述机器采取的动作的一组指令的任何机器。此外,虽然说明了单个机器,但术语“机器”还应被认为包含机器的任何集合,所述机器单独地或共同地执行一组指令(或多组指令)以执行本文中所论述的方法中的任何一或多种。
实例计算机系统500包含处理装置502、主存储器504(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器506(例如,快闪存储器、静态随机存取存储器(SRAM)等)和数据存储系统518,它们经由总线530彼此通信。
处理装置502表示一或多个通用处理装置,例如微处理器、中央处理单元等。更具体地说,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置502也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置502经配置以执行指令526,以用于执行本文中所论述的操作和步骤。计算机系统500可进一步包含通过网络520通信的网络接口装置508。
数据存储系统518可包含机器可读存储媒体524(也称为计算机可读媒体),在其上存储有一或多组指令526或体现本文中所描述的方法或功能中的任何一或多种的软件。指令526还可在其由计算机系统500执行期间完全或至少部分地驻留在主存储器504内和/或处理装置502内,主存储器504和处理装置502也构成机器可读存储媒体。机器可读存储媒体524、数据存储系统518和/或主存储器504可对应于图1的存储器子系统110。
在一个实施例中,指令526包含实施对应于固件(例如,图1的固件113)的功能性的指令。虽然在实例实施例中机器可读存储媒体524展示为单个媒体,但应认为术语“机器可读存储媒体”包含存储一或多组指令的单个媒体或多个媒体。还应认为术语“机器可读存储媒体”包含能够存储或编码供机器执行且使得机器执行本公开方法中的任何一或多种的一组指令的任何媒体。相应地,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体和磁性媒体。
已依据计算机存储器内的数据位的操作的算法和符号表示呈现了先前详细描述的一些部分。这些算法描述和表示为数据处理领域的技术人员用于将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。算法在这里且通常认为是引起所需结果的操作的自洽序列。操作为需要对物理量进行物理操纵的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操纵的电或磁信号的形式。有时,主要出于通用的原因,已证明将这些信号称为位、值、元件、符号、字符、术语、数字等是方便的。
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅为应用于这些量的方便标签。本公开可指将计算机系统的寄存器和存储器内的表示为物理(电子)量的数据操控和变换为计算机系统存储器或寄存器或其它此类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
本公开还涉及用于执行本文中的操作的设备。此设备可以出于既定目的而专门构造,或者其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。例如,计算机系统或其它数据处理系统(例如控制器115)可响应于其处理器执行存储器或其它非暂时性机器可读存储媒体中所含的计算机程序(例如,指令序列)而执行计算机实施的方法200和400。此类计算机程序可存储于计算机可读存储媒体中,例如但不限于任何类型的盘(包含软盘、光盘、CD-ROM和磁性光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适合于存储电子指令的任何类型的媒体,它们各自耦合到计算机系统总线。
本文中呈现的算法和显示本质上不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或者其可证明构造更专用的设备来执行方法是方便的。将如下文描述中所示呈现用于这些各种系统的结构。另外,不参考任何特定编程语言描述本公开。应了解,可使用各种编程语言来实施如本文所描述的本公开的教示。
本公开可提供为计算机程序产品或软件,所述计算机程序产品或软件可包含其上存储有可用以对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在前述说明书中,已经参考本公开的特定实例实施例描述了本公开的实施例。将显而易见的是,可在不脱离如所附权利要求书中所阐述的本公开的实施例的更广泛精神和范围的情况下对本公开进行各种修改。相应地,应在说明性意义上而非限制性意义上看待说明书和图式。
Claims (20)
1.一种方法,其包括:
通过存储器子系统控制器从主机系统接收主机读取存储器命令,所述主机读取存储器命令参考与存储器装置的一组传送单元相关联的一组逻辑块地址;
通过所述存储器子系统控制器将所述一组逻辑块地址转化为所述存储器装置的所述一组传送单元的一组物理块地址;
通过所述存储器子系统控制器基于所述一组物理块地址产生一组装置读取存储器命令,其中所述一组装置读取存储器命令中的每个装置读取存储器命令参考所述一组物理块地址中的至少一个物理块地址;
响应于确定第一装置读取存储器命令与第二装置读取存储器命令相关联,通过所述存储器子系统控制器基于所述第一装置读取存储器命令和所述第二读取存储器命令产生第一聚合装置读取存储器命令;以及
通过所述存储器子系统控制器将所述第一聚合装置读取存储器命令传送到所述存储器装置。
2.根据权利要求1所述的方法,其中所述存储器子系统控制器响应于确定超时周期已到期而传送所述第一聚合装置读取存储器命令。
3.根据权利要求2所述的方法,其进一步包括:
当将所述第一聚合装置读取存储器命令传送到所述存储器装置时,通过所述存储器子系统控制器重置所述超时周期;
响应于确定第三装置读取存储器命令与第四装置读取存储器命令相关联,通过所述存储器子系统控制器在所述超时周期期间基于所述第三装置读取存储器命令和所述第四读取存储器命令产生第二聚合装置读取存储器命令;以及
通过所述存储器子系统控制器将所述第二聚合装置读取存储器命令传送到所述存储器装置以实现所述第三装置读取存储器命令和所述第四装置读取存储器命令。
4.根据权利要求1所述的方法,其中当所述第一装置读取存储器命令所参考的第一物理块地址与所述第二装置读取存储器命令所参考的第二物理块地址在所述存储器装置的相同信道、裸片、块和页内时,所述第一装置读取存储器命令与所述第二装置读取存储器命令相关联。
5.根据权利要求4所述的方法,其中所述第一聚合装置读取存储器命令为从所述相同裸片的单独平面读取数据的多平面读取存储器命令。
6.根据权利要求1所述的方法,其中所述存储器子系统控制器响应于确定所述第一聚合装置读取存储器命令的大小满足阈值大小而传送所述第一聚合装置读取存储器命令。
7.根据权利要求1所述的方法,其中所述存储器子系统控制器响应于确定所述第二装置读取存储器命令为一连串装置读取存储器命令中的最后一个装置读取存储器命令而传送所述第一聚合装置读取存储器命令。
8.根据权利要求7所述的方法,其中所述存储器子系统控制器的固件的第一层级将与所述第二装置读取存储器命令相关联的元数据传送到所述存储器子系统控制器的所述固件的第二层级;且
其中所述固件的所述第二层级基于来自所述固件的所述第一层级的所述元数据而确定所述第二装置读取存储器命令为所述一连串装置读取存储器命令中的最后一个。
9.一种非暂时性计算机可读存储媒体,其包括指令,所述指令在由处理装置执行时使所述处理装置进行以下操作:
通过存储器子系统控制器从主机系统接收主机读取存储器命令,所述主机读取存储器命令参考与存储器装置的一组传送单元相关联的一组逻辑块地址;
通过所述存储器子系统控制器将所述一组逻辑块地址转化为所述存储器装置的所述一组传送单元的一组物理块地址;
通过所述存储器子系统控制器基于所述一组物理块地址产生一组装置读取存储器命令,其中所述一组装置读取存储器命令中的每个装置读取存储器命令参考所述一组物理块地址中的至少一个物理块地址;
响应于确定第一装置读取存储器命令与第二装置读取存储器命令相关联,通过所述存储器子系统控制器基于所述第一装置读取存储器命令和所述第二读取存储器命令产生第一聚合装置读取存储器命令;以及
通过所述存储器子系统控制器将所述第一聚合装置读取存储器命令传送到所述存储器装置。
10.根据权利要求9所述的非暂时性计算机可读存储媒体,其中所述存储器子系统控制器响应于确定超时周期已到期而传送所述第一聚合装置读取存储器命令。
11.根据权利要求10所述的非暂时性计算机可读存储媒体,其中所述处理装置进一步进行以下操作:
当将所述第一聚合装置读取存储器命令传送到所述存储器装置时,通过所述存储器子系统控制器重置所述超时周期;
响应于确定第三装置读取存储器命令与第四装置读取存储器命令相关联,通过所述存储器子系统控制器在所述超时周期期间基于所述第三装置读取存储器命令和所述第四读取存储器命令产生第二聚合装置读取存储器命令;以及
通过所述存储器子系统控制器将所述第二聚合装置读取存储器命令传送到所述存储器装置以实现所述第三装置读取存储器命令和所述第四装置读取存储器命令。
12.根据权利要求9所述的非暂时性计算机可读存储媒体,其中当所述第一装置读取存储器命令所参考的第一物理块地址与所述第二装置读取存储器命令所参考的第二物理块地址在所述存储器装置的相同信道、裸片、块和页内时,所述第一装置读取存储器命令与所述第二装置读取存储器命令相关联。
13.根据权利要求12所述的非暂时性计算机可读存储媒体,其中所述第一聚合装置读取存储器命令为从所述相同裸片的单独平面读取数据的多平面读取存储器命令。
14.根据权利要求9所述的非暂时性计算机可读存储媒体,其中所述存储器子系统控制器响应于确定所述第一聚合装置读取存储器命令的大小满足阈值大小而传送所述第一聚合装置读取存储器命令。
15.根据权利要求9所述的非暂时性计算机可读存储媒体,其中所述存储器子系统控制器响应于确定所述第二装置读取存储器命令为一连串装置读取存储器命令中的最后一个装置读取存储器命令而传送所述第一聚合装置读取存储器命令。
16.根据权利要求15所述的非暂时性计算机可读存储媒体,其中所述存储器子系统控制器的固件的第一层级将与所述第二装置读取存储器命令相关联的元数据传送到所述存储器子系统控制器的所述固件的第二层级;且
其中所述固件的所述第二层级基于来自所述固件的所述第一层级的所述元数据确定所述第二装置读取存储器命令为所述一连串装置读取存储器命令中的最后一个。
17.一种系统,其包括:
存储器装置;和
处理装置,其以操作方式与所述存储器装置耦合以执行以下操作:
通过存储器子系统控制器从主机系统接收主机读取存储器命令,所述主机读取存储器命令参考与所述存储器装置的一组传送单元相关联的一组逻辑块地址;
通过所述存储器子系统控制器基于与所述一组逻辑块地址相关联的一组逻辑块地址产生一组装置读取存储器命令,其中所述一组装置读取存储器命令中的每个装置读取存储器命令参考所述一组物理块地址中基于所述一组逻辑块地址产生的至少一个物理块地址;
响应于确定第一装置读取存储器命令与第二装置读取存储器命令相关联,通过所述存储器子系统控制器基于所述第一装置读取存储器命令和所述第二读取存储器命令产生第一聚合装置读取存储器命令;以及
通过所述存储器子系统控制器将所述第一聚合装置读取存储器命令传送到所述存储器装置,以通过从所述存储器装置的所述一组传送单元读取数据来实现所述第一装置读取存储器命令和所述第二装置读取存储器命令。
18.根据权利要求17所述的系统,其中所述存储器子系统控制器响应于确定超时周期已到期而传送所述第一聚合装置读取存储器命令;且
其中所述处理装置进一步进行以下操作:
当将所述第一聚合装置读取存储器命令传送到所述存储器装置时,通过所述存储器子系统控制器重置所述超时周期,
响应于确定第三装置读取存储器命令与第四装置读取存储器命令相关联,通过所述存储器子系统控制器在所述超时周期期间基于所述第三装置读取存储器命令和所述第四读取存储器命令产生第二聚合装置读取存储器命令,以及
通过所述存储器子系统控制器将所述第二聚合装置读取存储器命令传送到所述存储器装置以实现所述第三装置读取存储器命令和所述第四装置读取存储器命令。
19.根据权利要求17所述的系统,其中当所述第一装置读取存储器命令所参考的第一物理块地址与所述第二装置读取存储器命令所参考的第二物理块地址在所述存储器装置的相同信道、裸片、块和页内时,所述第一装置读取存储器命令与所述第二装置读取存储器命令相关联;且
其中所述第一聚合装置读取存储器命令为从所述相同裸片的单独平面读取数据的多平面读取存储器命令。
20.根据权利要求17所述的系统,其中所述存储器子系统控制器响应于确定所述第二装置读取存储器命令为一连串装置读取存储器命令中的最后一个装置读取存储器命令而传送所述第一聚合装置读取存储器命令;
其中所述存储器子系统控制器的固件的第一层级将与所述第二装置读取存储器命令相关联的元数据传送到所述存储器子系统控制器的所述固件的第二层级;且
其中所述固件的所述第二层级基于来自所述固件的所述第一层级的所述元数据确定所述第二装置读取存储器命令为所述一连串装置读取存储器命令中的最后一个。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/107663 WO2023000212A1 (en) | 2021-07-21 | 2021-07-21 | Memory command aggregation to improve sequential memory command performance |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115843379A true CN115843379A (zh) | 2023-03-24 |
Family
ID=84975746
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180014832.7A Pending CN115843379A (zh) | 2021-07-21 | 2021-07-21 | 用来改进顺序存储器命令性能的存储器命令聚合 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11934676B2 (zh) |
CN (1) | CN115843379A (zh) |
WO (1) | WO2023000212A1 (zh) |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7418531B2 (en) * | 2005-05-04 | 2008-08-26 | Pillar Data Systems, Inc. | Quality of service for data storage volumes |
US8566508B2 (en) * | 2009-04-08 | 2013-10-22 | Google Inc. | RAID configuration in a flash memory data storage device |
CN104346285B (zh) * | 2013-08-06 | 2018-05-11 | 华为技术有限公司 | 内存访问处理方法、装置及系统 |
US9836215B2 (en) * | 2014-11-19 | 2017-12-05 | Western Digital Technologies, Inc. | Real time protocol generation |
TWI587218B (zh) * | 2016-09-10 | 2017-06-11 | 財團法人工業技術研究院 | 記憶體事務層級模型模擬方法及系統 |
JP6779821B2 (ja) * | 2017-03-24 | 2020-11-04 | キオクシア株式会社 | メモリシステム及びデータの読み出し方法 |
KR20200013897A (ko) * | 2018-07-31 | 2020-02-10 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작방법 |
KR20210004322A (ko) * | 2019-07-04 | 2021-01-13 | 에스케이하이닉스 주식회사 | 메모리 시스템에서 맵정보 및 리드카운트를 전송하는 장치 및 방법 |
KR20200126155A (ko) * | 2019-04-29 | 2020-11-06 | 에스케이하이닉스 주식회사 | 명령 머지 동작을 수행하는 반도체 메모리 장치 및 그 동작 방법 |
KR20210012820A (ko) * | 2019-07-26 | 2021-02-03 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
US11354041B2 (en) * | 2020-06-12 | 2022-06-07 | Western Digital Technologies, Inc. | Read latency reduction through command and polling overhead avoidance |
KR20220055717A (ko) * | 2020-10-27 | 2022-05-04 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR20220087782A (ko) * | 2020-12-18 | 2022-06-27 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이를 포함하는 저장 장치 |
-
2021
- 2021-07-21 WO PCT/CN2021/107663 patent/WO2023000212A1/en unknown
- 2021-07-21 CN CN202180014832.7A patent/CN115843379A/zh active Pending
- 2021-10-01 US US17/492,143 patent/US11934676B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
WO2023000212A1 (en) | 2023-01-26 |
US20230025508A1 (en) | 2023-01-26 |
US11934676B2 (en) | 2024-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11422945B2 (en) | Generating, maintaining, or utilizing a compressed logical-to-physical table based on sequential writes | |
US20230161509A1 (en) | Dynamic selection of cores for processing responses | |
US20220050772A1 (en) | Data block switching at a memory sub-system | |
US20240192866A1 (en) | Performance control for a memory sub-system | |
US20240028239A1 (en) | Zone block staging component for a memory sub-system with zoned namespace | |
US11842059B2 (en) | Memory sub-system address mapping | |
US11720490B2 (en) | Managing host input/output in a memory system executing a table flush | |
CN113360091B (zh) | 用于存取操作的内部命令 | |
WO2022027578A1 (en) | Memory overlay using host memory buffer | |
US11934676B2 (en) | Memory command aggregation to improve sequential memory command performance | |
US11847349B2 (en) | Dynamic partition command queues for a memory device | |
US11693597B2 (en) | Managing package switching based on switching parameters | |
US11275687B2 (en) | Memory cache management based on storage capacity for parallel independent threads | |
US11922011B2 (en) | Virtual management unit scheme for two-pass programming in a memory sub-system | |
CN113495695B (zh) | 用于存取命令的高速缓存标识符 | |
CN113094293B (zh) | 存储器系统及相关方法和计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |