CN117632255A - 基于命令处理器工作负载的存储器命令指派 - Google Patents
基于命令处理器工作负载的存储器命令指派 Download PDFInfo
- Publication number
- CN117632255A CN117632255A CN202210998627.5A CN202210998627A CN117632255A CN 117632255 A CN117632255 A CN 117632255A CN 202210998627 A CN202210998627 A CN 202210998627A CN 117632255 A CN117632255 A CN 117632255A
- Authority
- CN
- China
- Prior art keywords
- command
- memory
- processor
- commands
- type
- 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
- 230000001186 cumulative effect Effects 0.000 claims abstract description 28
- 238000000034 method Methods 0.000 claims description 75
- 238000012546 transfer Methods 0.000 claims description 30
- 238000004364 calculation method Methods 0.000 claims description 15
- 238000003860 storage Methods 0.000 claims description 4
- 238000009966 trimming Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 description 24
- 238000007726 management method Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 14
- 238000003491 array Methods 0.000 description 7
- 238000004519 manufacturing process Methods 0.000 description 6
- 238000009826 distribution Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 2
- 238000013524 data verification Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- 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/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本文所述的实施方案涉及基于命令处理器工作负载的存储器命令指派。在一些实施方案中,存储器装置可确定第一存储器命令的第一命令类型。所述存储器装置可识别与所述第一命令类型相关联的第一命令处理器,其为配置成执行存储器命令的多个命令处理器中的一个。所述第一命令处理器可配置成仅执行具有所述第一命令类型的命令,除非满足与另一命令处理器相关联的计算信用条件。所述存储器装置可确定与所述第一命令处理器相关联的累积计算信用值不满足条件。所述存储器装置可基于确定与所述第一命令处理器相关联的所述累积计算信用值不满足所述条件而将所述第一存储器命令指派到所述第一命令处理器以供执行。
Description
技术领域
本公开总体上涉及存储器装置、存储器装置操作,并且例如涉及基于命令处理器工作负载的存储器命令指派。
背景技术
存储器装置广泛用于在各种电子装置中存储信息。存储器装置包含存储器单元。存储器单元是能够被编程为两个或更多个数据状态中的某一数据状态的电子电路。例如,存储器单元可编程为表示单个二进制值的数据状态,通常由二进制“1”或二进制“0”表示。作为另一实例,存储器单元可以编程为表示小数值的数据状态(例如,0.5、1.5等)。为了存储信息,电子装置可以写入或编程一组存储器单元。为了存取所存储的信息,电子装置可以从所述一组存储器单元读取或感测所存储的状态。
存在各种类型的存储器装置,包含随机存取存储器(RAM)、只读存储器(ROM)、动态RAM(DRAM)、静态RAM(SRAM)、同步动态RAM(SDRAM)、铁电RAM(FeRAM)、磁性RAM(MRAM)、电阻RAM(RRAM)、全息RAM(HRAM)、快闪存储器(例如,NAND存储器和NOR存储器)等等。存储器装置可以是易失性或非易失性的。即使在没有外部电源的情况下,非易失性存储器(例如,快闪存储器)也可长时间存储数据。易失性存储器(例如,DRAM)可能会随着时间的推移丢失所存储的数据,除非易失性存储器通过电源刷新。
发明内容
在一个方面中,本公开涉及一种存储器装置,其包括:一或多个组件,其配置成:检测要执行的存储器命令;确定所述存储器命令的命令类型,其中所述命令类型是第一命令类型或第二命令类型中的一个;识别与所述命令类型相关联的主命令处理器,其中所述主命令处理器是配置成执行所述存储器装置的存储器命令的多个命令处理器中的一个,且其中所述主命令处理器配置成仅执行具有所述第一命令类型的命令,除非满足与所述多个命令处理器中的另一命令处理器相关联的第一计算信用条件;基于指派给所述主命令处理器的存储器命令,确定与所述主命令处理器相关联的累积计算信用值;以及基于所述累积计算信用值是否满足阈值,选择性地将所述存储器命令指派到所述多个命令处理器中的所述主命令处理器或辅助命令处理器,其中所述辅助命令处理器配置成仅执行具有所述第二命令类型的命令,除非满足与所述多个命令处理器中的另一命令处理器相关联的第二计算信用条件。
在另一方面中,本公开涉及一种方法,其包括:通过存储器装置确定将由所述存储器装置执行的第一存储器命令的第一命令类型;通过所述存储器装置识别与所述第一命令类型相关联的第一命令处理器,其中所述第一命令处理器是配置成执行所述存储器装置的存储器命令的多个命令处理器中的一个,且其中所述第一命令处理器配置成仅执行具有所述第一命令类型的命令,除非满足与所述多个命令处理器中的另一命令处理器相关联的计算信用条件;通过所述存储器装置确定与所述第一命令处理器相关联的累积计算信用值不满足条件,其中所述累积计算信用值是基于与指派给所述第一命令处理器以供执行的一或多个存储器命令相对应的一或多个计算信用值;以及基于确定与所述第一命令处理器相关联的所述累积计算信用值不满足所述条件,通过所述存储器装置将所述第一存储器命令指派到所述第一命令处理器以供执行。
在另一方面中,本公开涉及一种设备,其包括:用于识别配置成执行所述设备的存储器命令的多个命令处理器的历史工作负载信息的构件,其中所述历史工作负载信息指示所述设备接收到的或检测到的多个存储器命令;用于确定包含在所述多个存储器命令中的具有第一命令类型的存储器命令的百分比的构件;用于基于所述百分比确定将所述第一命令类型的存储器命令分配到第一命令处理器或第二命令处理器的比率的构件,其中所述第一命令处理器包含在所述多个命令处理器中且配置成执行具有所述第一命令类型的命令,且其中所述第二命令处理器包含在所述多个命令处理器中且配置成仅执行具有不同于所述第一命令类型的第二命令类型的命令,除非满足与所述历史工作负载信息相关联的历史工作负载条件;以及用于基于所述比率在所述第一命令处理器和所述第二命令处理器之间分配多个传入存储器命令的构件。
附图说明
图1是示出能够基于命令处理器工作负载进行存储器命令指派的实例系统的图。
图2是包含在存储器装置中的实例组件的图。
图3A-3D是基于命令处理器工作负载的存储器命令指派的实例的图。
图4A-4B是基于命令处理器工作负载的存储器命令指派的另一实例的图。
图5-7是与基于命令处理器工作负载的存储器命令指派相关联的实例方法的流程图。
图8是示出其中可以使用本文所述的存储器装置的实例系统的图。
具体实施方式
每秒输入/输出(I/O)操作数(IOPS)是固态驱动器(SSD)等存储器装置的常见性能度量。IOPS是指存储器装置每秒能够执行的I/O操作总数。IOPS数越大,意味着存储器操作(例如读取和写入操作)的性能越好,时延越低。实例IOPS性能度量包含从不连续存储器位置读取数据的随机读取IOPS(例如,对于小数据传递)、将数据写入不连续存储器的随机写入IOPS、从连续存储器位置读取数据的顺序读取IOPS(例如,对于大数据传递),以及将数据写入连续存储器位置的顺序写入IOPS。
可以制造存储器装置以满足一或多个IOPS要求,例如1,500,000(150万)IOPS的随机读取IOPS要求。高IOPS要求可能难以满足。例如,如果存储器装置的命令处理器(有时称为“处理器”)以900兆赫兹(MHz)的频率执行指令,并且具有150万IOPS的随机读取要求,那么存储器装置需要每600个处理器循环处置一个随机读取命令(900,000,000Hz/150万IOPS)。存储器装置的处理器可能难以或不可能在600个处理器循环内完成读取操作,特别是对于需要从不连续存储器位置检索数据的随机读取操作和/或对于大数据传递大小而言。
为了帮助满足读取和写入IOPS要求,一些存储器装置(例如,SSD)包含多个处理器,作为示例,其中一个处理器专用于处理(例如,执行)读取命令,另一处理器专用于处理写入命令。这可能会导致更多的IOPS和更好的性能,特别是对于能够进行并行处理的SSD来说,例如在不同裸片上进行并行处理和/或使用非易失性存储器高速(NVMe)规范进行并行处理。即使对于非并行(例如,顺序)处理,与每个处理器处置多种不同类型的存储器命令(例如,读取命令和写入命令)的配置相比,这种配置也可以产生较高IOPS,同时节省存储器命令进行优先级排序所需的处理资源。例如,使用专用处理器,可以通过在另一个处理器(例如,写入专用处理器)执行一或多个命令之前控制由特定处理器(例如,读取专用处理器)处理的数个命令来控制存储器装置的性能。为了实现对处置多种命令类型(例如,读取命令和写入命令)的非专用处理器的这种细粒度控制,将需要队列管理来对非专用处理器执行的命令队列中的读取或写入操作进行优先级排序,和/或识别下一步应处理队列中的哪个命令(例如,所述命令可能不是队列中最早的命令)。因此,使用专用于特定类型的存储器命令的专用处理器可以减少队列管理所需的处理并减少时延,从而增加IOPS。
但是,在一些情况下,使用专用处理器处置存储器命令可能效率低下。例如,如果存储器装置具有高读取工作负载和低写入工作负载,那么读取专用处理器可能会在写入专用处理器空闲时过载。解决这一问题的一种方法是向存储器装置添加另一读取专用处理器。然而,由于其它处理器空闲,这会导致制造成本增加、功耗变高和资源浪费。
本文所述的一些实施方案使得能够将存储器命令动态调度到默认情况下专用于特定类型的存储器命令的处理器。在正常操作下,当任何处理器的工作负载条件不满足时,每个处理器仅执行与所述处理器相关联的类型(例如,读取或写入)的存储器命令。当工作负载条件满足时,例如当一个专用处理器过载时,通常仅指派给所述专用处理器的存储器命令可以指派给通常不会处置所述类型命令的一或多个其它处理器。通过这种方式,可以满足存储器装置的性能要求(例如,IOPS要求),并且可以提高存储器装置的性能(例如,减少时延),而无需向存储器装置添加额外的专用处理器。因此,本文所述的一些实施方案通过更好地利用处理器资源而不增加制造成本或功耗来提高性能。
图1是示出能够基于命令处理器工作负载进行存储器命令指派的实例系统100的图。系统100可包含用于执行本文所述操作的一或多个装置、设备和/或组件。例如,系统100可包含主机装置110和存储器装置120。存储器装置120可包含控制器130和存储器140。主机装置110可经由主机接口150与存储器装置120(例如,存储器装置120的控制器130)通信。控制器130和存储器140可经由存储器接口160通信。
系统100可以是配置成在存储器中存储数据的任何电子装置。例如,系统100可以是计算机、移动电话、有线或无线通信装置、网络装置、服务器、数据中心中的装置、云计算环境中的装置、车辆(例如,汽车或飞机)和/或物联网(IoT)装置。主机装置110可包含配置成执行指令并在存储器140中存储数据的一或多个处理器。例如,主机装置110可包含中央处理单元(CPU)、图形处理单元(GPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)和/或另一类型的处理组件。
存储器装置120可以是配置成在存储器中存储数据的任何电子装置或设备。在一些实施方案中,存储器装置120可以是配置成在非易失性存储器中持久性地存储数据的电子装置。例如,存储器装置120可以是硬盘驱动器、固态驱动器(SSD)、快闪存储器装置(例如,NAND快闪存储器装置或NOR快闪存储器装置)、通用串行总线(USB)随身盘、存储卡(例如,安全数字(SD)卡)、辅助存储装置、非易失性存储器高速(NVMe)装置和/或嵌入式多媒体卡(eMMC)装置。在此情况下,存储器140可包含配置成在存储器装置120断电之后维持所存储数据的非易失性存储器。例如,存储器140可包含NAND存储器或NOR存储器。在一些实施方案中,存储器140可包含需要电力来维持所存储数据并且在存储器装置120断电之后丢失所存储数据的易失性存储器,例如一或多个锁存器和/或随机存取存储器(RAM),如动态RAM(DRAM)和/或静态RAM(SRAM)。例如,易失性存储器可高速缓存从非易失性存储器读取或写入到非易失性存储器的数据,和/或可高速缓存由控制器130执行的指令。
控制器130可以是配置成与主机装置(例如,经由主机接口150)和存储器140(例如,经由存储器接口160)通信的任何装置。另外或替代地,控制器130可配置成控制存储器装置120和/或存储器140的操作。例如,控制器130可包含存储器控制器、系统控制器、ASIC、FPGA、处理器、微控制器和/或一或多个处理组件。在一些实施方案中,控制器130可以是高级控制器,其可与主机装置110直接通信,并且可就将结合存储器140执行的存储器操作指示一或多个低级控制器。在一些实施方案中,控制器130可以是低级控制器,其可从与主机装置110直接介接的高级控制器接收有关存储器操作的指令。作为实例,高级控制器可以是SSD控制器,低级控制器可以是非易失性存储器控制器(例如,NAND控制器)或易失性存储器控制器(例如,DRAM控制器)。在一些实施方案中,本文中描述为由控制器130执行的一组操作可由单个控制器执行(例如,整个一组操作可由单个高级控制器或单个低级控制器执行)。替代地,本文中描述为由控制器130执行的一组操作可由超过一个控制器执行(例如,操作的第一子集可由高级控制器执行,操作的第二子集可由低级控制器执行)。
主机接口150启用主机装置110和存储器装置120之间的通信。主机接口150可包含例如小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、NVMe接口、USB接口、通用快闪存储(UFS)接口和/或嵌入式多媒体卡(eMMC)接口。
存储器接口160启用存储器装置120和存储器140之间的通信。存储器接口160可包含非易失性存储器接口(例如,用于与非易失性存储器通信),例如NAND接口或NOR接口。另外或替代地,存储器接口160可包含易失性存储器接口(例如,用于与易失性存储器通信),例如双倍数据速率(DDR)接口。
在一些实施方案中,存储器装置120和/或控制器130可配置成检测要执行的存储器命令;确定存储器命令的命令类型,其中命令类型是第一命令类型或第二命令类型中的一个;识别与命令类型相关联的主命令处理器,其中主命令处理器是配置成执行存储器装置120的存储器命令的多个命令处理器中的一个,并且其中主命令处理器配置成仅执行具有第一命令类型的命令,除非满足与所述多个命令处理器中的另一命令处理器相关联的第一计算信用条件;基于指派给主命令处理器的存储器命令,确定与主命令处理器相关联的累积计算信用值;以及基于累积计算信用值是否满足阈值,选择性地指派存储器命令到所述多个命令处理器中的主命令处理器或辅助命令处理器,其中辅助命令处理器配置成仅执行具有第二命令类型的命令,除非满足与所述多个命令处理器中的另一命令处理器相关联的第二计算信用条件。
另外或替代地,存储器装置120和/或控制器130可配置成确定将由存储器装置120执行的第一存储器命令的第一命令类型;识别与第一命令类型相关联的第一命令处理器,其中第一命令处理器是配置成执行存储器装置120的存储器命令的多个命令处理器中的一个,并且其中第一命令处理器配置成仅执行具有第一命令类型的命令,除非满足与所述多个命令处理器中的另一命令处理器相关联的计算信用条件;确定与第一命令处理器相关联的累积计算信用值不满足条件,其中累积计算信用值是基于与指派给第一命令处理器以供执行的一或多个存储器命令相对应的一或多个计算信用值;以及基于确定与第一命令处理器相关联的累积计算信用值不满足条件,将第一存储器命令指派到第一命令处理器以供执行。
另外或替代地,存储器装置120和/或控制器130可配置成识别配置成执行存储器装置120的存储器命令的多个命令处理器的历史工作负载信息,其中历史工作负载信息指示存储器装置120接收到的或检测到的多个存储器命令;确定包含在所述多个存储器命令中的具有第一命令类型的存储器命令的百分比;确定将第一命令类型的存储器命令分配到第一命令处理器或第二命令处理器的比率,其中第一命令处理器包含在所述多个命令处理器中且配置成执行具有第一命令类型的命令,并且其中第二命令处理器包含在所述多个命令处理器中且配置成仅执行具有不同于第一命令类型的第二命令类型的命令,除非满足与历史工作负载信息相关联的历史工作负载条件;以及基于所述比率,在第一命令处理器和第二命令处理器之间分配多个传入存储器命令。
如上文所指出,图1提供为实例。其它实例可与关于图1所述内容不同。
图2是包含在存储器装置120中的实例组件的图。如上文结合图1所描述,存储器装置120可包含控制器130和存储器140。如图2所示,存储器140可包含一或多个非易失性存储器阵列210,例如一或多个NAND存储器阵列和/或一或多个NOR存储器阵列。另外或替代地,存储器140可包含一或多个易失性存储器阵列220,例如一或多个SRAM阵列和/或一或多个DRAM阵列。控制器130可使用非易失性存储器接口230向非易失性存储器阵列210传输信号和从其接收信号。控制器130可使用易失性存储器接口240向易失性存储器阵列220传输信号和从其接收信号。
控制器130可控制存储器140的操作,例如通过执行一或多个指令来控制。例如,存储器装置120可在存储器140中存储一或多个指令作为固件,并且控制器130可执行所述一或多个指令。另外或替代地,控制器130可经由主机接口150从主机装置110接收一或多个指令,并且可执行所述一或多个指令。在一些实施方案中,非暂时性计算机可读媒体(例如,易失性存储器和/或非易失性存储器)可存储一组指令(例如,一或多个指令或代码)以供控制器130执行。控制器130可执行所述一组指令以执行本文所述的一或多个操作或方法。在一些实施方案中,由控制器130执行所述一组指令使得控制器130和/或存储器装置120执行本文所述的一或多个操作或方法。在一些实施方案中,代替所述一或多个指令或与其结合使用硬接线电路系统,以执行本文所述的一或多个操作或方法。另外或替代地,控制器130和/或存储器装置120的一或多个组件可配置成执行本文所述的一或多个操作或方法。指令有时称为“命令”。
例如,控制器130可基于所述一或多个指令向存储器140传输信号和/或从其接收信号,以便向存储器140的全部或一部分(例如,存储器140的一或多个存储器单元、页、子块、块或平面)传递数据(例如,写入或编程)、从其传递数据(例如,读取)和/或将其擦除。另外或替代地,控制器130可配置成控制对存储器140的存取和/或提供主机装置110和存储器140之间的转换层(例如,用于将存储器阵列的逻辑地址映射到物理地址)。在一些实施方案中,控制器130可将主机接口命令(例如,从主机装置110接收到的命令)转换成存储器接口命令(例如,用于在存储器阵列上执行操作的命令)。
如图2所示,存储器装置120可包含多个(multiple)(例如,多个(a pluralityof))命令处理器250,示出为命令处理器250a到250x(x≥2)。命令处理器250(有时称为处理器)可包含配置成执行存储器装置120的存储器命令的一或多个处理器,所述存储器命令例如读取命令、写入命令和/或擦除命令。例如,命令处理器250可包含CPU、处理器核心(例如,CPU核心)和/或另一类型的处理组件。在一些实施方案中,命令处理器250是专用于处理(例如,执行)特定命令类型或一组特定命令类型(例如,存储器装置120可以执行的所有命令类型的子集)的专用处理器。
例如,第一命令处理器250可专用于仅处理读取命令,并且可以称为读取专用命令处理器(或读取专用处理器)。作为另一实例,第二命令处理器250可专用于仅处理写入命令,并且可以称为写入专用命令处理器(或写入专用处理器)。作为另一实例,第三命令处理器250可专用于仅处理快闪转换层(FTL)命令,并且可以称为FTL专用命令处理器(或FTL专用处理器)。在一些实施方案中,存储器装置120可包含专用于处理不由其它专用命令处理器250中的任一个处理的所有命令类型的命令处理器250,有时称为公共服务命令处理器250。继续上述实例,存储器装置120可包含专用于处理非读取、非写入且非FTL的命令的第四命令处理器250。
根据本文所述的一些实施方案,在默认操作条件下,例如当不满足任一命令处理器250的工作负载条件时,每一命令处理器250可仅处理与命令处理器250相关联的命令类型(例如,命令处理器250专用的命令类型)。例如,第一命令处理器250可仅处理具有第一命令类型的命令(例如,仅读取命令),第二命令处理器250可仅处理具有第二命令类型的命令(例如,仅写入命令)。在高工作负载条件下,例如当满足第一命令处理器250的工作负载条件时,第二命令处理器250可经指派,并且可处理默认仅由第一命令处理器250(和/或不由第二命令处理器250)处理的命令类型。例如,如果满足在默认操作条件下仅处理读取命令的读取专用命令处理器的工作负载条件,那么存储器装置120和/或控制器130可将一或多个读取命令指派到在默认操作条件下仅处理写入命令的写入专用命令处理器。通过这种方式,可以满足存储器装置的性能要求(例如,IOPS要求),并且可以提高存储器装置的性能(例如,减少时延),而无需向存储器装置添加额外的专用处理器。因此,本文所述的一些实施方案通过更好地利用处理器资源而不增加制造成本或功耗来提高性能。
控制器130可基于工作负载条件将命令指派到命令处理器250,如本文中其它地方更详细描述。例如,命令处理器250可与命令队列(例如,存储在存储器140中,例如易失性存储器阵列220和/或与所述命令处理器250相关联的高速缓存)相关联,并且控制器130可基于工作负载条件将命令放置到适当队列(例如,与处理所述队列中的命令的命令处理器250相关联)中。命令处理器250可顺序执行与所述命令处理器250相关联的队列中的命令(例如,按照先入先出方式)。例如,命令处理器250可通过向存储器140发送信号执行命令,例如向一或多个非易失性存储器阵列210发送。在一些实施方案中,命令处理器250可将命令执行完成时间通知给控制器130。
如图2所示,控制器130可包含存储器管理组件260、命令指派组件270和/或工作负载确定组件280。在一些实施方案中,这些组件中的一或多个实施为由控制器130执行的一或多个指令(例如,固件)。替代地,这些组件中的一或多个可实施为不同于控制器130的专用集成电路。
存储器管理组件260可配置成管理存储器装置120的性能。例如,存储器管理组件260可执行耗损均衡、不良块管理、块引退、读取干扰管理和/或其它存储器管理操作。在一些实施方案中,存储器装置120可(例如,在存储器140中)存储一或多个存储器管理表。存储器管理表可存储可由存储器管理组件260使用或更新的信息,例如有关存储器块使用期、存储器块擦除计数和/或与存储器分区(例如,存储器单元、存储器行、存储器块等等)相关联的错误信息的信息。
命令指派组件270可配置成检测将执行的存储器命令,确定所述命令的命令类型,并识别与所述命令类型相关联的主命令处理器(有时称为第一命令处理器),例如专用于处理具有所述命令类型的命令的主命令处理器。命令指派组件270可选择性地将存储器命令指派到主命令处理器或专用于处理具有不同命令类型的命令的辅助命令处理器(有时称为第二命令处理器)。例如,命令指派组件270可基于工作负载条件确定将存储器命令指派到主命令处理器还是指派到辅助命令处理器。在一些实施方案中,命令指派组件270可从工作负载确定组件280接收是否满足工作负载条件的指示。命令指派组件270可基于是否满足工作负载条件而选择性地将存储器命令指派到主命令处理器或辅助命令处理器。另外或替代地,基于来自工作负载确定组件280的指示,例如分配比率的指示,命令指派组件270可在两个或更多个命令处理器之间或当中分配命令。
工作负载确定组件280可配置成确定是否满足与命令处理器250相关联的工作负载条件。例如,工作负载确定组件280可确定与命令相关联的计算信用值和/或可确定与命令处理器250相关联的累积计算信用值(例如,基于与命令相关联的计算信用值,通过修改或更新累积计算信用值),如本文中其它地方更详细描述。工作负载确定组件280可基于累积计算信用值(例如,基于累积计算信用值是否满足阈值)确定是否满足工作负载条件。另外或替代地,工作负载确定组件280可确定或识别存储器装置120(例如,命令处理器250)的历史工作负载信息。基于历史工作负载信息,例如基于特定命令类型的命令的百分比是否满足阈值,工作负载确定组件280可确定是否满足工作负载条件。在一些实施方案中,工作负载确定组件280可确定用于将命令指派给命令处理器250的分配比率,并且可向命令指派组件270指示分配比率。另外或替代地,工作负载确定组件280可向命令指派组件270指示是否满足工作负载条件。
图2所示的一或多个装置或组件可配置成执行本文中其它地方描述的操作,例如图3A-3D和/或4A-4B的一或多个操作和/或图5-7的方法的一或多个过程框。例如,控制器130、一或多个命令处理器250、存储器管理组件260、命令指派组件270和/或工作负载确定组件280可配置成执行存储器装置120的一或多个操作和/或方法。
图2所示的组件的数目和布置提供为实例。实际上,相比于图2所示的那些组件,可存在额外组件、更少组件、不同组件或以不同方式布置的组件。此外,图2所示的两个或更多个组件可在单个组件内实施,或者图2所示的单个组件可实施为多个分布式组件。另外或替代地,图2所示的一组组件(例如,一或多个组件)可执行被描述为由图2所示的另一组组件执行的一或多个操作。
图3A-3D是基于命令处理器工作负载的存储器命令指派的实例300的图。结合图3A-3D描述的操作可由存储器装置120和/或存储器装置120的一或多个组件(例如,控制器130)执行。
如附图标记305所示,控制器130可检测存储器命令,例如读取命令、写入命令、擦除命令或另一类型的命令。如附图标记305a所示,存储器命令可以是主机存储器命令。替代地,如附图标记305b所示,存储器命令可以是非主机存储器命令。主机存储器命令可以是(例如,经由主机接口150)从主机装置110接收的存储器命令。非主机存储器命令可以是不从主机装置110接收的存储器命令,例如由存储器装置120和/或控制器130产生的存储器命令(例如,用于执行一或多个在内部发起的操作)。
如附图标记310所示,控制器130可确定存储器命令的存储器命令类型。实例存储器命令类型包含读取命令(具有读取命令类型)、主机读取命令(具有主机读取命令类型)、非主机读取命令(具有非主机读取命令类型)、写入命令(具有写入命令类型)、主机写入命令(具有主机写入命令类型)、非主机写入命令(具有非主机写入命令类型)、对准命令(具有对准命令类型)、对准读取命令(具有对准读取命令类型)、对准写入命令(具有对准写入命令类型)、未对准命令(具有未对准命令类型)、未对准读取命令(具有未对准读取命令类型)、未对准写入命令(具有未对准写入命令类型)、擦除命令(具有擦除命令类型)、FTL命令(具有FTL命令类型)、垃圾收集(GC)命令(具有GC命令类型)、GC读取命令(具有GC读取命令类型)、GC写入命令(具有GC写入命令类型)、数据完整性扫描读取命令(具有数据完整性扫描读取命令类型)、FTL命令(具有FTL命令类型)、FTL读取命令(具有FTL读取命令类型)、FTL写入命令(具有FTL写入命令类型)、修整命令(具有修整命令类型)、文件系统区域(FSA)命令(具有FSA命令类型)、FSA读取命令(具有FSA读取命令类型)、FSA写入命令具有FSA写入命令类型)、独立NAND冗余阵列(RAIN)写入命令(具有RAIN写入命令类型)、非读取非写入非擦除命令(具有非读取非写入非擦除命令类型),或另一类型的命令(具有另一命令类型)。在实例300中,存储器命令示出为具有“命令类型A”的“命令A”。作为实例,命令A可以是具有读取命令类型的读取命令。
具有读取命令类型的读取命令可包含读取由存储器装置120(例如,在存储器140中)存储的数据的命令。主机读取命令可包含从主机装置110接收的读取由存储器装置120存储的数据的命令。非主机读取命令可包含不从主机装置110接收(例如,由存储器装置120内部产生)的读取由存储器装置120存储的数据的命令。非主机读取命令可包含例如GC读取命令、数据完整性扫描读取命令、FTL读取命令或FSA读取命令。GC读取命令可包含从第一存储器块读取有效数据使得有效数据可以例如在擦除第一存储器块之前写入到第二存储器块的命令。数据完整性扫描读取命令可包含从存储器读取数据以用于数据验证和/或错误检查的命令。FTL读取命令可包含从地址表(例如,物理地址到逻辑地址转换表、块地址表和/或逻辑块地址表)读取信息的命令。FSA读取命令可包含从存储器读取日志数据(例如,日志文件)的命令。
写入命令(有时称为编程命令)可包含将数据写入(或编程)到存储器装置120(例如,在存储器140中)的命令。主机写入命令可包含从主机装置110接收的将数据写入到存储器装置120的命令。非主机写入命令可包含不从主机装置110接收(例如,由存储器装置120内部产生)的将数据写入到存储器装置120的命令。非主机写入命令可包含例如GC写入命令、FTL写入命令、修整命令、FSA写入命令或RAIN写入命令。GC写入命令可包含例如在擦除第一存储器块之前将有效数据从第一存储器块写入一种第二存储器块的命令。FTL写入命令可包含将信息写入到地址表的命令。修整命令可包含将存储在一存储器地址处的数据无效的指示写入到地址表的命令。FSA写入命令可包含将日志数据(例如,日志文件)写入到存储器的命令。RAIN写入命令可包含将RAIN奇偶校验位写入到存储器的命令。擦除命令可包含擦除由存储器装置120(例如,在存储器140中)存储的数据的命令。在一些情况下,擦除命令被视为某一类型的写入命令,因为擦除命令是将擦除数据状态(例如,“1”)写入到存储器单元。
对准命令可包含从存储器读取数据或将数据写入到存储器的命令,其中要读取或写入的数据的数据传递大小匹配供存储器装置120使用的逻辑块地址(LBA)大小。例如,如果存储器装置120使用4千字节的LBA大小(例如,对于所有LBA或所请求LBA),并且如果读取命令请求从存储器读取4千字节的数据,那么读取命令是对准读取命令。类似地,如果存储器装置120使用4千字节的LBA大小,并且如果写入命令请求将4千字节的数据写入到存储器,那么写入命令是对准写入命令。
未对准命令可包含从存储器读取数据或将数据写入到存储器的命令,其中要读取或写入的数据的数据传递大小不匹配供存储器装置120使用的LBA大小。例如,如果存储器装置120使用4千字节的LBA大小,并且如果读取命令请求从存储器读取512字节的数据,那么读取命令是未对准读取命令。类似地,如果存储器装置120使用4千字节的LBA大小,并且如果写入命令请求将512字节的数据写入到存储器,那么写入命令是未对准写入命令。未对准命令(例如,未对准读取命令和未对准写入命令)在计算上可比对准命令(例如,对准读取命令和对准写入命令)更昂贵,因为需要执行额外操作来从较大LBA大小(例如,4千字节)读取或向其写入较小数据传递大小(例如,512字节)。例如,对于未对准读取命令,在读取4千字节的数据之后,需要从所述4千字节的数据中提取512字节的数据。
非读取非写入非擦除命令有时称为带外(OOB)命令。OOB命令可包含针对不在存储器装置120的存储器阵列上执行(例如,不将数据写入到存储器阵列、不从存储器阵列读取数据且不擦除存储器阵列)的操作的命令。例如,OOB命令可包含获得存储器装置120的唯一标识符的请求、按需寻呼(ODP)的请求、获得存储器装置120的温度的请求和/或管理命令(例如,获得特征的请求或设置特征的请求)。
如附图标记315所示,控制器130可识别与检测到的存储器命令的所确定命令类型相关联的主命令处理器,示出为主命令处理器250a。如上文结合图2所描述,主命令处理器可以是专用于处理具有所确定命令类型的命令的专用命令处理器。例如,主命令处理器可仅处理具有所确定命令类型的命令,除非满足与另一命令处理器250相关联的工作负载条件(例如,计算信用条件和/或历史工作负载条件)。作为实例,如果存储器命令是读取命令,那么主命令处理器可以是读取专用命令处理器,其仅处理(例如,执行)读取命令,除非满足与例如写入专用命令处理器的另一命令处理器相关联的工作负载条件。作为另一实例,如果存储器命令是写入命令,那么主命令处理器可以是写入专用命令处理器,其仅处理(例如,执行)写入命令,除非满足与例如读取专用命令处理器的另一命令处理器相关联的工作负载条件。
特定命令处理器250可专用于本文所述的单个命令类型,或者可专用于本文所述的一组命令类型。此外,命令类型可在各种粒度级定义。例如,命令处理器250可专用于主机读取命令,在此情况下,命令处理器250不执行非主机读取命令(除非满足工作负载条件)。作为另一实例,命令处理器250可专用于读取命令,其包含主机读取命令和非主机读取命令。作为又一实例,命令处理器250可专用于写入命令和擦除命令。
如附图标记320所示,除了主命令处理器之外,存储器装置120还可包含一或多个辅助命令处理器,示出为辅助命令处理器250b、辅助命令处理器250c和辅助命令处理器250d。辅助命令处理器不与检测到的存储器命令的所确定命令类型相关联。例如,辅助命令处理器可以是专用于处理具有一或多个除所确定命令类型以外的命令类型的命令的专用命令处理器。例如,辅助命令处理器仅在满足与另一命令处理器250相关联的工作负载条件(例如,计算信用条件和/或历史工作负载条件)时才可处理具有所确定命令类型的命令。作为实例,如果存储器命令是读取命令,那么辅助命令处理器可以是写入专用命令处理器,其仅处理(例如,执行)写入命令,除非满足与例如读取专用命令处理器的另一命令处理器相关联的工作负载条件。作为另一实例,如果存储器命令是写入命令,那么辅助命令处理器可以是读取专用命令处理器,其仅处理(例如,执行)读取命令,除非满足与例如写入专用命令处理器的另一命令处理器相关联的工作负载条件。
因此,在一些实施方案中,主命令处理器配置成仅执行具有第一命令类型的命令,除非满足第一工作负载条件。在一些实施方案中,第一工作负载条件是与另一命令处理器250(例如,除主命令处理器以外)相关联的第一计算信用条件,例如与另一命令处理器250(例如,除主命令处理器以外)相关联的累积计算信用值满足阈值,如下文更详细地描述。另外或替代地,第一工作负载条件可以是第一历史工作负载条件,如下文结合图4A-4B所描述。类似地,辅助命令处理器可配置成仅执行具有第二命令类型(例如,不同于第一命令类型)的命令,除非满足第二工作负载条件。在一些实施方案中,第二工作负载条件是与另一命令处理器250(例如,除辅助命令处理器以外,例如主命令处理器)相关联的第二计算信用条件,例如与另一命令处理器250(例如,除辅助命令处理器以外,例如主命令处理器)相关联的累积计算信用值满足阈值,如下文更详细地描述。另外或替代地,第二工作负载条件可以是第二历史工作负载条件,如下文结合图4A-4B所描述。
在图3A的实例300中,控制器130识别主命令处理器250a,示出为“处理器A”。例如,主命令处理器250a(有时称为第一命令处理器)可专用于第一命令类型,辅助命令处理器250b(有时称为第二命令处理器)可专用于第二命令类型,辅助命令处理器250c(有时称为第三命令处理器)可专用于第三命令类型,辅助命令处理器250d(有时称为第四命令处理器)可专用于第四命令类型。尽管图3A中示出了四个命令处理器250,但是存储器装置120可包含不同数量的命令处理器250,例如两个命令处理器250、三个命令处理器250或超过四个命令处理器250。在存储器装置120包含两个(或更多个)命令处理器250的一些实施方案中,第一命令处理器250可专用于第一命令类型(例如,读取命令类型或写入命令类型中的一个),第二命令处理器250可专用于第二命令类型(例如,读取命令类型或写入命令类型中的另一个)。
如附图标记325所示,在一些实施方案中,控制器130可确定与所识别主命令处理器250a相关联的累积计算信用值。如下文结合图3B更详细地描述,特定命令处理器250的累积计算信用值可基于指派给所述特定命令处理器250(例如,并且尚未被其执行)的所有存储器命令。在一些实施方案中,每一命令处理器250可与相应累积计算信用值相关联,例如第一累积计算信用值330a与第一命令处理器250a相关联,第二累积计算信用值330b与第二命令处理器250b相关联,第三累积计算信用值330c与第三命令处理器250c相关联,第四累积计算信用值330d与第四命令处理器250d相关联。控制器130可基于主命令处理器250a的累积计算信用值(例如,第一累积计算信用值330a)是否满足阈值335而确定是否将检测到的存储器命令指派给主命令处理器250a。
如图3B中所示,且如附图标记340所示,主命令处理器250a的累积计算信用值可基于指派给主命令处理器250a(例如,并且尚未被其执行)的所有存储器命令。例如,存储器命令可与计算信用值相关联,所述计算信用值可基于存储器命令的命令类型和/或与存储器命令相关联的数据传递大小。命令处理器250的累积计算信用值可基于与指派给所述命令处理器250以供执行(例如,并且尚未被执行)的所有存储器命令相对应的所有计算信用值。例如,命令处理器250的累积计算信用值可表示与指派给所述命令处理器250的所有存储器命令相对应的所有计算信用值的组合,例如所有那些计算信用值的总和。
作为实例,且如图3B中所示,主命令处理器250a已被指派第一读取命令,示出为“读取命令1”,其包含从存储器的三个逻辑块地址(LBA)读取数据的请求。如进一步示出,主命令处理器250a还被指派第二读取命令,示出为“读取命令2”,其包含从存储器的一个LBA读取数据的请求。主命令处理器250a还可被指派一或多个其它存储器命令,并且主命令处理器250a的累积计算信用值330a可以是指派给主命令处理器250a的存储器命令的计算信用值的总和。如图3B中所示,主命令处理器250a的累积计算信用值330a小于阈值335(有时称为计算信用阈值或累积计算信用阈值)。
如上文所指出,与存储器命令相关联的计算信用值可基于存储器命令的命令类型和/或与存储器命令相关联的数据传递大小。在一些实施方案中,计算信用值可基于存储器命令的命令类型,和与存储器命令相关联的数据传递大小无关,这可减小复杂性并节省控制器130的处理资源。例如,读取命令类型可与计算信用值一相关联,与数据传递大小无关。在此情况下,第一读取命令(“读取命令1”)可与计算信用值一相关联,第二读取命令(“读取命令2”)也可与计算信用值一相关联,即使相比于第一读取命令的数据传递大小(例如,1个LBA),第二读取命令具有更大的数据传递大小(例如,3个LBA)。
在一些实施方案中,与存储器命令相关联的计算信用值可基于与存储器命令相关联的数据传递大小,而和与存储器命令相关联的命令类型无关,这可减小复杂性并节省控制器130的处理资源。数据传递大小可在存储器命令中指示,例如与存储器命令相关联的LBA的数量(例如,将从中读取数据或向其写入数据的LBA的数量)的指示。另外或替代地,数据传递大小可基于与存储器命令中所指示的LBA数量相关联的存储大小(例如,4千字节、8千字节、1兆字节或2兆字节)。作为实例,存储器命令的计算信用值可基于存储器命令中所指示的LBA数目。在此情况下,第一读取命令(“读取命令1”)可与计算信用值三相关联(例如,基于从三个LBA读取数据的请求),第二读取命令(“读取命令2”)可与计算信用值一相关联(例如,基于从一个LBA读取数据的请求)。在一些实施方案中,与存储器命令相关联的计算信用值指示或基于执行所述存储器命令的计算复杂性。因此,和与较大数据传递大小相关联的命令相关联的计算信用值的量值大于和与较小数据传递大小相关联的命令相关联的计算信用值(例如,因为与较大数据传递大小相关联的命令在计算上可能比与较小数据传递大小相关联的命令更昂贵)。
在一些实施方案中,与存储器命令相关联的计算信用值可基于存储器命令的命令类型和与存储器命令相关联的数据传递大小两者。在一些实施方案中,不同存储器命令类型可与不同计算信用值相关联。作为实例,第一命令类型可与第一计算信用值相关联,第二命令类型可与不同于第一计算信用值的第二计算信用值相关联。例如,与写入命令类型相关联的计算信用值的量值可大于与读取命令类型相关联的计算信用值(例如,因为写入命令在计算上可能比读取命令更昂贵)。作为实例,写入命令类型可与计算信用值二相关联,读取命令类型可与计算信用值一相关联。
在一些实施方案中,与读取命令类型相关联的计算信用值的量值可低于写入命令类型(例如,因为读取命令在计算上没有写入命令昂贵),和/或与修整命令类型相关联的计算信用值的量值可低于写入命令类型和读取命令类型(例如,因为修整命令在计算上没有读取命令和写入命令昂贵)。另外或替代地,与未对准读取命令类型相关联的计算信用值的量值可低于未对准写入命令类型(例如,因为未对准读取命令在计算上没有未对准写入命令昂贵),与对准写入命令类型相关联的计算信用值的量值可低于未对准写入命令类型(例如,因为对准命令在计算上没有未对准命令昂贵),和/或与对准读取命令类型相关联的计算信用值的量值可低于未对准读取命令类型和对准写入命令类型(例如,因为对准命令在计算上没有未对准命令昂贵,且读取命令在计算上没有写入命令昂贵)。
在一些实施方案中,存储器命令的基于类型的计算信用值(例如,基于命令类型)可与存储器命令的基于大小的计算信用值(例如,基于数据传递大小)组合以确定存储器命令的总计算信用值。作为实例,控制器130可将存储器命令的基于类型的计算信用值和存储器命令的基于大小的计算信用值相加以确定存储器命令的总计算信用值。在此情况下,基于第一读取命令是读取命令(例如,具有基于类型的计算信用值一)且与三个LBA的数据传递大小相关联(例如,具有基于大小的计算信用值三),第一读取命令可与计算信用值四相关联,并且基于第二读取命令是读取命令(例如,具有基于类型的计算信用值一)且与一个LBA的数据传递大小相关联(例如,具有基于大小的计算信用值一),第二读取命令可与计算信用值二相关联。
替代地,控制器130可将存储器命令的基于类型的计算信用值和存储器命令的基于大小的计算信用值相乘以确定存储器命令的总计算信用值。在此情况下,基于第一读取命令是读取命令(例如,具有基于类型的计算信用值一)且与三个LBA的数据传递大小相关联(例如,具有基于大小的计算信用值三),第一读取命令可与计算信用值三相关联,并且基于第二读取命令是读取命令(例如,具有基于类型的计算信用值一)且与一个LBA的数据传递大小相关联(例如,具有基于大小的计算信用值一),第二读取命令可与计算信用值一相关联。
如附图标记345所示,控制器130可基于确定主命令处理器250a的累积计算信用值330a不满足阈值335(例如,小于或等于阈值335)而将存储器命令指派到主命令处理器250a。换句话说,控制器130可基于不满足与主命令处理器250a相关联的工作负载条件而将存储器命令指派到主命令处理器250a。在实例300中,工作负载条件是累积计算信用值是否满足阈值335。在此情况下,工作负载条件可以称为计算信用条件。在实例300中,不满足工作负载条件(和计算信用条件),因为累积计算信用值不满足阈值335。
如附图标记350所示,控制器130可基于将存储器命令指派到主命令处理器250a而修改与主命令处理器250a相关联的累积计算信用值330a。例如,控制器130可基于与所指派存储器命令相关联的计算信用值而修改累积计算信用值330a。在实例300中,所指派存储器命令是读取命令,示出为“读取命令A”,其包含从存储器的两个LBA读取数据的请求。控制器130可基于先前累积计算信用值和与所指派存储器命令相关联的计算信用值而确定新累积计算信用值(有时称为经修改累积计算信用值或经更新累积计算信用值)。例如,控制器130可组合先前累积计算信用值和与所指派存储器命令相关联的计算信用值(例如,将其相加)。
在一些情况下,将存储器命令指派到命令处理器250以及修改与所述命令处理器250相关联的累积计算信用值可使累积计算信用值满足阈值335(例如,大于或等于阈值335),如图3B中所示。图3C示出当满足阈值335时将存储器命令指派到命令处理器250的实例。
如图3C中所示,且如附图标记355所示,控制器130可检测存储器命令,如上文结合图3A的附图标记305所描述。例如,上文结合附图标记305所描述的存储器命令可以是在较早时间检测到的第一存储器命令,结合附图标记355的检测到的存储器命令可以是在稍后时间检测到的第二存储器命令。例如,控制器130可在第一存储器命令指派给主命令处理器250a之后检测第二存储器命令,使得与主命令处理器250a相关联的累积计算信用值330a超过阈值335。
如附图标记360所示,控制器130可确定第二存储器命令的存储器命令类型,如上文结合图3A的附图标记310所描述。在实例300中,第二存储器命令与第一存储器命令具有相同的命令类型。在实例300中,第一存储器命令示出为具有“命令类型A”的“命令A”,第二存储器命令示出为同样具有“命令类型A”的“命令B”。作为实例,第一存储器命令和第二存储器命令均可为具有读取命令类型的读取命令。
如附图标记365所示,控制器130可识别与第二存储器命令的所确定命令类型相关联的主命令处理器,如上文结合图3A的附图标记315所描述。在图3C的实例300中,控制器130将示出为“处理器A”的主命令处理器250a识别为与所确定命令类型(例如,读取命令)相关联的命令处理器250。
如附图标记370所示,控制器130可确定与所识别主命令处理器250a相关联的累积计算信用值,如上文结合图3A的附图标记325所描述。例如,控制器130可确定主命令处理器250a的当前累积计算信用值(例如,当控制器130正在确定将被指派存储器命令的命令处理器时与主命令处理器250a相关联的累积计算信用值)。如所示,控制器130可确定与主命令处理器250a相关联的累积计算信用值330a满足阈值335(例如,在将第一存储器命令指派到主命令处理器250a之后,如上文结合图3B所描述)。
如附图标记375所示,基于确定主命令处理器250a的累积计算信用值330a满足阈值335(例如,大于或等于阈值335),控制器130可将第二存储器命令指派到辅助命令处理器(例如,而不指派到主命令处理器250a)。换句话说,控制器130可基于满足与主命令处理器250a相关联的工作负载条件而将存储器命令指派到辅助命令处理器。在实例300中,工作负载条件是累积计算信用值是否满足阈值335。在此情况下,工作负载条件可称为计算信用条件。在实例300中,满足工作负载条件(和计算信用条件),因为累积计算信用值满足阈值335。
如果存储器装置120包含单个辅助命令处理器,那么控制器130可将第二存储器命令指派到所述单个辅助命令处理器。但是,如果存储器装置120包含多个辅助命令处理器(例如,第二命令处理器250b、第三命令处理器250c和第四命令处理器250d,如所示),那么控制器130可在所述多个辅助命令处理器中选择一辅助命令处理器来处理(例如,执行)第二存储器命令。在一些实施方案中,控制器130选择默认辅助命令处理器。默认辅助命令处理器可以是在满足工作负载条件(例如,对于任何主命令处理器)时处置所有溢出存储器命令的辅助命令处理器,或者是在满足特定主命令处理器的工作负载条件的情况下处置所述特定主命令处理器的溢出存储器命令的辅助命令处理器。例如,第一对命令处理器可配置成处置彼此的溢出存储器命令,第二对命令处理器可配置成处置彼此的溢出存储器命令,以此类推。
作为另一实例,第二命令处理器250b可处置第一命令处理器250a的溢出存储器命令,第三命令处理器250c可处置第二命令处理器250b的溢出存储器命令,第四命令处理器250d可处置第三命令处理器250c的溢出存储器命令,第一命令处理器250a可处置第四命令处理器250d的溢出存储器命令。类似的“级联”配置可用于除四个以外的不同数目的命令处理器250。“溢出存储器命令”是出于特定命令处理器的累积计算信用值满足阈值的原因而不指派给所述特定命令处理器的存储器命令。
在一些实施方案中,控制器130可选择在所有辅助命令处理器当中具有最小累积计算信用值的辅助命令处理器。另外或替代地,控制器130可选择一辅助命令处理器,在所有辅助命令处理器当中,所述辅助命令处理器的累积计算信用值和与所述辅助命令处理器相关联的阈值335之间具有最大差。通过这种方式,控制器130可跨命令处理器平衡工作负载,由此减小时延。尽管在实例300中示出单个阈值335(例如,公共阈值)与所有命令处理器(例如,主命令处理器和所有辅助命令处理器)相关联,但是在一些实施方案中,每一命令处理器可与不同阈值相关联(或至少一个命令处理器可与不同于至少一个其它命令处理器的阈值相关联)。
在图3C的实例300中,控制器130将第二存储器命令指派到辅助命令处理器250b。因此,控制器130可基于是否满足工作负载条件(例如,基于主命令处理器的累积计算信用值是否满足阈值)而选择性地将存储器命令指派到主命令处理器或辅助命令处理器。如本文中所使用,“选择性地”将存储器命令指派到主命令处理器或辅助命令处理器是指将存储器命令指派到主命令处理器或将存储器命令指派到辅助命令处理器。例如,基于一条件(例如,工作负载条件或计算信用条件)选择性地将存储器命令指派到主命令处理器或辅助命令处理器是指在不满足条件的情况下将存储器命令指派给主命令处理器,并且在满足条件的情况下将存储器命令指派给辅助命令处理器(反之亦可)。因此,“选择性地指派”存储器命令可包含确定将存储器命令指派到主命令处理器还是指派到辅助命令处理器,然后基于所述确定将存储器命令指派到主命令处理器或辅助命令处理器。
如附图标记380所示,控制器130可基于将第二存储器命令指派到辅助命令处理器250b按照上文结合图3B的附图标记350所描述的类似方式修改与辅助命令处理器250b相关联的累积计算信用值330b。例如,控制器130可基于与第二存储器命令相关联的计算信用值修改当前累积计算信用值330b(例如,当控制器130正在确定将被指派存储器命令的命令处理器时的累积计算信用值)。在实例300中,第二存储器命令是读取命令,示出为“读取命令B”,其包含从存储器的两个LBA读取数据的请求。控制器130可基于先前累积计算信用值和与第二存储器命令相关联的计算信用值而确定新累积计算信用值(有时称为经修改累积计算信用值或经更新累积计算信用值)。例如,控制器130可组合先前累积计算信用值和与所指派存储器命令相关联的计算信用值(例如,将其相加)。
在图3C的实例300中,指派给辅助命令处理器250b(其可以是写入专用命令处理器)的写入命令示出为请求一个LBA。写入命令(“写入命令1”)和读取命令(“读取命令B”)示出为具有相同计算信用值,即使写入命令请求的LBA数量比读取命令小。这是因为在一些实施方案中,由于写入命令在计算上比读取命令更复杂,所以与写入命令相关联的计算信用值可能大于读取命令,如上文所描述。
如图3D中所示,且如附图标记385所示,在一些实施方案中,控制器130可确定所指派存储器命令已被执行,例如在所指派存储器命令已被执行时(例如,当所指派存储器命令的执行完成时)接收指示。例如,命令处理器250可通知控制器130存储器命令何时被执行。在一些实施方案中,命令处理器250可指示标识已执行存储器命令的命令标识符(例如,命令标签)。控制器130可使用命令标识符来标识已经执行的存储器命令。
如附图标记390所示,控制器130可从与已执行存储器命令的命令处理器250(例如,从中接收到指示的命令处理器250)相关联的累积计算信用值移除与已执行存储器命令相关联的计算信用值。
作为实例,主命令处理器250a可向控制器130指示示出为“读取命令1”的存储器命令已经执行。接着,控制器130可以从与主命令处理器250a相关联的累积计算信用值330a移除与“读取命令1”相关联的计算信用值。如所示,这可使累积计算信用值330a不再满足阈值335(例如,降到阈值335以下)。因此,如果控制器130检测到与主命令处理器250a相关联的后续存储器命令(例如,第三存储器命令),那么控制器130可将后续存储器命令指派到主命令处理器250a(例如,基于进一步更新累积计算信用值以移除与“读取命令1”相关联的计算信用值)。
通过这种方式,存储器装置120可使得性能要求(例如,IOPS要求)能够被满足和/或可使得存储器装置120的性能能够被提高(例如,减小时延),而无需向存储器装置120添加额外的专用处理器。因此,本文所述的存储器装置120通过更好地利用命令处理器资源而不增加制造成本或功耗来提高性能。
如上文所指出,图3A-3D提供为实例。其它实例可与关于图3A-3D所述内容不同。
图4A-4B是基于命令处理器工作负载的存储器命令指派的实例400的图。结合图4A-4B描述的操作可由存储器装置120和/或存储器装置120的一或多个组件执行,例如控制器130和/或控制器130的一或多个组件。
如附图标记405所示,控制器130可识别与存储器装置120相关联的历史工作负载信息。历史工作负载信息可包含有关存储器装置120的历史工作负载的信息,例如已由存储器装置120接收和/或处理(例如,执行)的存储器命令。例如,历史工作负载信息可指示由包含在存储器装置120中的任何命令处理器250处理(例如,执行)的命令。在一些实施方案中,历史工作负载信息可指示在一历史时间段(例如,最近250毫秒)内接收、检测或处理的命令的一或多个命令类型,和/或可指示特定数量的最近接收、检测或处理的命令(例如,最近100个命令)的一或多个命令类型。
在一些实施方案中,历史工作负载信息可指示(例如,在一历史时间段内或在特定数量的最近命令内)接收、检测、指派或执行的第一命令类型的存储器命令的第一数量、(例如,在所述历史时间段内或在所述特定数量的最近命令内)接收、检测或执行的第二命令类型的存储器命令的第二数量,等等。作为实例,如图4A所示,历史工作负载信息可指示历史读取命令的数量(例如,计数)、历史写入命令的数量和/或其它历史命令的数量。在图4的实例400中,历史工作负载信息指示在一历史时间段(例如,与一时间窗或一定数量的命令相关联)中检测到和/或执行了91个读取命令、6个写入命令和3个其它命令(例如,非读取非写入的命令)。这些命令类型提供为实例,并且历史工作负载信息可包含一或多个其它命令类型的信息,例如上文结合图3A-3D所描述的命令类型。
如附图标记410所示,控制器130可确定包含在历史工作负载信息中所指示的多个历史存储器命令中的与某一命令类型相对应的历史存储器命令的百分比。例如,控制器130可确定具有第一命令类型的历史存储器命令的第一百分比、具有第二命令类型的历史存储器命令的第二百分比,等等。在一些实施方案中,控制器130可确定单个命令类型(例如,读取命令)的单个百分比。替代地,控制器130可确定与多个命令类型相对应的多个百分比(例如,读取命令的读取百分比、写入命令的写入百分比,等等)。
如附图标记415所示,控制器130可确定用于将(例如,特定命令类型的)存储器命令分配到第一命令处理器或第二命令处理器的比率。此比率有时称为“分配比率”。在一些实施方案中,控制器130可基于所述百分比确定分配比率。例如,基于历史工作负载信息中所指示的读取命令的百分比,控制器130可确定将读取命令分配到用于读取命令的主命令处理器(例如,读取专用命令处理器)或辅助命令处理器(例如,-专用命令处理器)的分配比率。另外或替代地,基于历史工作负载信息中所指示的写入命令的百分比,控制器130可确定将写入命令分配到用于写入命令的主命令处理器(例如,写入专用命令处理器)或辅助命令处理器(例如,读取专用命令处理器)的分配比率。更一般来说,基于历史工作负载信息中所指示的特定命令类型的命令的百分比,控制器130可确定将所述特定命令类型的命令分配到主命令处理器(例如,专用于所述特定命令类型)或辅助命令处理器(例如,不专用于所述特定命令类型)的分配比率。
在一些实施方案中,存储器装置120可在存储器140中存储数据结构(例如,表)。表可包含多个条目,其中每一条目指示特定百分比(例如,100%)或百分比范围(例如,90%到100%、80%到90%或小于80%)及与所述特定百分比或所述百分比范围相对应的特定分配比率。控制器130可通过在表中查找所确定百分比并识别与所述百分比相对应的分配比率来识别分配比率。
作为实例,第一表420(例如,读取分配比率表)指示等于100%的读取百分比的2:1分配比率、小于100%且大于或等于90%的读取百分比的4:1分配比率、小于90%且大于或等于80%的读取百分比的8:1分配比率及小于80%的读取百分比的1:0分配比率。读取命令的2:1分配比率是指针对指派给读取专用命令处理器(例如,主命令处理器)的每两个读取命令,将一个读取命令指派给非读取专用命令处理器(例如,辅助命令处理器),读取命令的4:1分配比率是指针对指派给读取专用命令处理器的每四个读取命令,将一个读取命令指派给非读取专用命令处理器,以此类推。读取命令的1:0分配比率是指所有读取命令都指派给读取专用命令处理器(例如,没有读取命令指派给非读取专用命令处理器)。
作为另一实例,第二表425(例如,写入分配比率表)指示等于100%的写入百分比的2:1分配比率、小于100%且大于或等于90%的写入百分比的3:1分配比率、小于90%且大于或等于80%的写入百分比的4:1分配比率、小于80%且大于或等于70%的写入百分比的5:1分配比率及小于70%的写入百分比的1:0分配比率。因此,在一些实施方案中,不同命令类型可与不同分配表及百分比(或百分比范围)和分配比率之间的不同对应性相关联。但是,在一些实施方案中,相同表和/或百分比(或百分比范围)和分配比率之间的相同对应性可用于不同命令类型。
在实例400中,91%的历史命令是读取命令。因此,如附图标记430所示,控制器130可在表420中查找与91%相对应的百分比范围的条目,其示出为指示小于100%且大于或等于90%的百分比的条目。控制器130可识别所述条目中所指示的分配比率,示出为分配比率4:1。因此,基于与存储器装置120相关联的历史工作负载,控制器130可将四个传入读取命令指派到读取专用命令处理器,接着可将一个传入读取命令指派到写入专用命令处理器,接着可将接下来的四个传入读取命令指派到读取专用命令处理器,以此类推。
类似地,在实例400中,6%的历史命令是写入命令。因此,如附图标记435所示,控制器130可在表425中查找与6%相对应的百分比范围的条目,其示出为指示小于70%的百分比的条目。控制器130可识别所述条目中所指示的分配比率,示出为分配比率1:0。因此,基于与存储器装置120相关联的历史工作负载,控制器130可将所有传入写入命令指派到写入专用命令处理器。
通过这种方式,存储器装置120可使得性能要求(例如,IOPS要求)能够被满足和/或可使得存储器装置120的性能能够被提高(例如,减小时延),而无需向存储器装置120添加额外的专用处理器。因此,本文所述的存储器装置120通过更好地利用命令处理器资源而不增加制造成本或功耗来提高性能。
如图4B中所示,且如附图标记440所示,控制器130可检测传入命令,示出为六个读取命令(读取命令1到读取命令6),后面是一个写入命令(写入命令1),后面是另一读取命令(读取命令7),后面是另一写入命令(写入命令2),后面是三个读取命令(读取命令8到读取命令10)。如附图标记445所示,控制器130可基于所确定的读取命令的分配比率4:1和写入命令的分配比率1:0而在第一命令处理器250a和第二命令处理器250b之间分配这些传入命令,如上文结合图4A所描述。
第一命令处理器250a是第一命令类型(例如读取命令)的主命令处理器,及第二命令类型(例如写入命令)的辅助命令处理器。因此,第一命令处理器250a仅处理(例如,执行)读取命令,除非满足工作负载条件。在实例400中,工作负载条件是历史工作负载条件。在一些实施方案中,历史工作负载条件是历史工作负载信息中所指示的具有除第一命令类型以外(例如,除读取命令类型以外)的命令类型的存储器命令的百分比满足阈值。另外或替代地,历史工作负载条件可以是历史工作负载信息中所指示的具有第二命令类型(例如,写入命令类型)的存储器命令的百分比满足阈值。在实例400中,第一命令处理器250a是读取专用命令处理器。
类似地,第二命令处理器250b是第二命令类型(例如写入命令)的主命令处理器,及第一命令类型(例如读取命令)的辅助命令处理器。因此,第二命令处理器250b仅处理(例如,执行)写入命令,除非满足工作负载条件,例如历史工作负载条件。在一些实施方案中,历史工作负载条件是历史工作负载信息中所指示的具有除第二命令类型以外(例如,除写入命令类型以外)的命令类型的存储器命令的百分比满足阈值。另外或替代地,历史工作负载条件可以是历史工作负载信息中所指示的具有第一命令类型(例如,读取命令类型)的存储器命令的百分比满足阈值。在实例400中,第二命令处理器250b是写入专用命令处理器。
因此,存储器装置120可包含多个命令处理器250,如本文中其它地方所描述。包含在所述多个命令处理器250中的每一命令处理器250可配置成仅执行包含在与所述命令处理器250相关联的一组命令(例如,一组一或多个命令)中的命令,除非满足历史工作负载条件。
如图4B所示,当读取命令被控制器130检测到时,控制器130可以分配比率4:1在第一命令处理器250a和第二命令处理器250b之间分配那些读取命令(例如,针对指派给第二命令处理器250b的每1个读取命令,将4个读取命令指派给第一命令处理器250a)。因此,如附图标记450所示,控制器130可将前四个读取命令(读取命令1到读取命令4)指派到第一命令处理器250a。如附图标记455所示,在将四个读取命令指派到第一命令处理器250a之后,控制器130可将下一读取命令(读取命令5)指派到第二命令处理器250b。如附图标记460所示,在将一个读取命令指派到第二命令处理器250b之后,控制器130接着将读取命令指派到第一命令处理器250a,示出为读取命令6(例如,在将读取命令指派到第二命令处理器250b之前将4个读取命令中的1个指派给第一命令处理器250a)。
读取命令6之后的下一命令是写入命令,示出为写入命令1。因为控制器130以分配比率1:0(例如,所有写入命令都指派给第二命令处理器250b)在第二命令处理器250b和第一命令处理器250a之间分配写入命令,所以控制器130将写入命令1指派到第二命令处理器250b,如附图标记465所示。下一命令是读取命令,示出为读取命令7,控制器130将其指派到第一命令处理器250a(例如,在将读取命令指派到第二命令处理器250b之前将4个读取命令中的2个指派给第一命令处理器250a),如附图标记470所示。下一命令是写入命令,示出为写入命令2,根据1:0分配比率,控制器130同样将其指派到第二命令处理器250b,如附图标记475所示。
写入命令2之后的后续三个命令是读取命令,示出为读取命令8到读取命令10。根据4:1分配比率,控制器130将读取命令8和读取命令9指派到第一命令处理器250a(例如,在将读取命令指派到第二命令处理器250b之前将4个读取命令中的4个指派给第一命令处理器250a),如附图标记480所示。如附图标记485所示,根据4:1分配比率,控制器130接着将读取命令10指派到第二命令处理器250b。
通过这种方式,存储器装置120可使得性能要求(例如,IOPS要求)能够被满足和/或可使得存储器装置120的性能能够被提高(例如,减小时延),而无需向存储器装置120添加额外的专用处理器。因此,本文所述的存储器装置120通过更好地利用命令处理器资源而不增加制造成本或功耗来提高性能。
如上文所指出,图4A-4B提供为实例。其它实例可与关于图4A-4B所述内容不同。
图5是与基于命令处理器工作负载的存储器命令指派相关联的实例方法500的流程图。在一些实施方案中,存储器装置(例如,存储器装置120)可执行或可配置成执行图5的一或多个过程框。在一些实施方案中,与存储器装置(例如,系统100)分开或包含存储器装置的另一装置或一组装置可执行或可配置成执行图5的一或多个过程框。另外或替代地,存储器装置的一或多个组件(例如,控制器130、命令处理器250、存储器管理组件260、命令指派组件270和/或工作负载确定组件280)可执行或可配置成执行图5的一或多个过程框。
如图5中所示,方法500可包含检测要执行的存储器命令(框510)。如图5中进一步所示,方法500可包含确定存储器命令的命令类型,其中命令类型是第一命令类型或第二命令类型中的一个(框520)。如图5中进一步所示,方法500可包含识别与命令类型相关联的主命令处理器,其中主命令处理器是配置成执行存储器装置的存储器命令的多个命令处理器中的一个,并且其中主命令处理器配置成仅执行具有第一命令类型的命令,除非满足与所述多个命令处理器中的另一命令处理器相关联的第一计算信用条件(框530)。如图5中进一步所示,方法500可包含基于指派给主命令处理器的存储器命令,确定与主命令处理器相关联的累积计算信用值(框540)。如图5中进一步所示,方法500可包含基于累积计算信用值是否满足阈值,选择性地将存储器命令指派到所述多个命令处理器中的主命令处理器或辅助命令处理器,其中辅助命令处理器配置成仅执行具有第二命令类型的命令,除非满足与所述多个命令处理器中的另一命令处理器相关联的第二计算信用条件(框550)。
尽管图5示出方法500的实例框,但是在一些实施方案中,相比于图5中描绘的那些框,方法500可包含额外框、更少框、不同框或以不同方式布置的框。另外或替代地,方法500中的两个或更多个框可同时执行。方法500是可由本文所述的一或多个装置执行的一个方法的实例。所述一或多个装置可执行或可配置成执行基于本文所述的操作的一或多个其它方法,例如结合图3A-3D、4A-4B、6和/或7描述的操作。
图6是与基于命令处理器工作负载的存储器命令指派相关联的实例方法600的流程图。在一些实施方案中,存储器装置(例如,存储器装置120)可执行或可配置成执行图6的一或多个过程框。在一些实施方案中,与存储器装置(例如,系统100)分开或包含存储器装置的另一装置或一组装置可执行或可配置成执行图6的一或多个过程框。另外或替代地,存储器装置的一或多个组件(例如,控制器130、命令处理器250、存储器管理组件260、命令指派组件270和/或工作负载确定组件280)可执行或可配置成执行图6的一或多个过程框。
如图6中所示,方法600可包含确定将由存储器装置执行的第一存储器命令的第一命令类型(框610)。如图6进一步所示,方法600可包含识别与第一命令类型相关联的第一命令处理器,其中第一命令处理器是配置成执行存储器装置的存储器命令的多个命令处理器中的一个,并且其中第一命令处理器配置成仅执行具有第一命令类型的命令,除非满足与所述多个命令处理器中的另一命令处理器相关联的计算信用条件(框620)。如图6进一步所示,方法600可包含确定与第一命令处理器相关联的累积计算信用值不满足条件,其中累积计算信用值是基于与指派给第一命令处理器以供执行的一或多个存储器命令相对应的一或多个计算信用值(框630)。如图6进一步所示,方法600可包含基于确定与第一命令处理器相关联的累积计算信用值不满足条件,将第一存储器命令指派到第一命令处理器以供执行(框640)。
尽管图6示出方法600的实例框,但是在一些实施方案中,相比于图6中描绘的那些框,方法600可包含额外框、更少框、不同框或以不同方式布置的框。另外或替代地,方法600中的两个或更多个框可同时执行。方法600是可由本文所述的一或多个装置执行的一个方法的实例。所述一或多个装置可执行或可配置成执行基于本文所述的操作的一或多个其它方法,例如结合图3A-3D、4A-4B、5和/或7描述的操作。
图7是与基于命令处理器工作负载的存储器命令指派相关联的实例方法700的流程图。在一些实施方案中,存储器装置(例如,存储器装置120)可执行或可配置成执行图7的一或多个过程框。在一些实施方案中,与存储器装置(例如,系统100)分开或包含存储器装置的另一装置或一组装置可执行或可配置成执行图7的一或多个过程框。另外或替代地,存储器装置的一或多个组件(例如,控制器130、命令处理器250、存储器管理组件260、命令指派组件270和/或工作负载确定组件280)可执行或可配置成执行图7的一或多个过程框。
如图7中所示,方法700可包含识别配置成执行设备的存储器命令的多个命令处理器的历史工作负载信息,其中历史工作负载信息指示设备接收到的或检测到的多个存储器命令(框710)。如图7进一步所示,方法700可包含确定包含在所述多个存储器命令中的具有第一命令类型的存储器命令的百分比(框720)。如图7进一步所示,方法700可包含基于所述百分比确定将第一命令类型的存储器命令分配到第一命令处理器或第二命令处理器的比率,其中第一命令处理器包含在所述多个命令处理器中且配置成执行具有第一命令类型的命令,并且其中第二命令处理器包含在所述多个命令处理器中且配置成仅执行具有不同于第一命令类型的第二命令类型的命令,除非满足与历史工作负载信息相关联的历史工作负载条件(框730)。如图7进一步所示,方法700可包含基于所述比率在第一命令处理器和第二命令处理器之间分配多个传入存储器命令(框740)。
尽管图7示出方法700的实例框,但是在一些实施方案中,相比于图7中描绘的那些框,方法700可包含额外框、更少框、不同框或以不同方式布置的框。另外或替代地,方法700中的两个或更多个框可同时执行。方法700是可由本文所述的一或多个装置执行的一个方法的实例。所述一或多个装置可执行或可配置成执行基于本文所述的操作的一或多个其它方法,例如结合图3A-3D、4A-4B、5和/或6描述的操作。
图8是示出其中可以使用本文所述的存储器装置120的实例系统的图。在一些实施方案中,一或多个存储器装置120可包含在存储器芯片中。多个存储器芯片可以一起封装,并包含在更高层级的系统中,例如固态驱动器(SSD)或另一类型的存储器驱动器。每个SSD可包含例如最多五个存储器芯片、最多十个存储器芯片,或更多个。数据中心或云计算环境可包含多个SSD,以存储大量数据。例如,数据中心可包含数百、数千或更多个SSD。
如上文所描述,本文所述的一些实施方案减小存储器装置120的功耗。如图8中所示,这种降低的功耗驱动了数据中心的可持续性,并且由于数据中心中包含大量的存储器装置120而产生了节能。
如上文所指出,图8提供为实例。其它实例可与关于图8所述内容不同。
在一些实施方案中,一种存储器装置包含一或多个组件,其配置成:检测要执行的存储器命令;确定所述存储器命令的命令类型,其中所述命令类型是第一命令类型或第二命令类型中的一个;识别与所述命令类型相关联的主命令处理器,其中所述主命令处理器是配置成执行所述存储器装置的存储器命令的多个命令处理器中的一个,并且其中所述主命令处理器配置成仅执行具有所述第一命令类型的命令,除非满足与所述多个命令处理器中的另一命令处理器相关联的第一计算信用条件;基于指派给所述主命令处理器的存储器命令,确定与所述主命令处理器相关联的累积计算信用值;以及基于所述累积计算信用值是否满足阈值,选择性地将所述存储器命令指派到所述多个命令处理器中的所述主命令处理器或辅助命令处理器,其中所述辅助命令处理器配置成仅执行具有所述第二命令类型的命令,除非满足与所述多个命令处理器中的另一命令处理器相关联的第二计算信用条件。
在一些实施方案中,一种方法包含:通过存储器装置确定将由所述存储器装置执行的第一存储器命令的第一命令类型;通过所述存储器装置识别与所述第一命令类型相关联的第一命令处理器,其中所述第一命令处理器是配置成执行所述存储器装置的存储器命令的多个命令处理器中的一个,并且其中所述第一命令处理器配置成仅执行具有所述第一命令类型的命令,除非满足与所述多个命令处理器中的另一命令处理器相关联的计算信用条件;通过所述存储器装置确定与所述第一命令处理器相关联的累积计算信用值不满足条件,其中所述累积计算信用值是基于与指派给所述第一命令处理器以供执行的一或多个存储器命令相对应的一或多个计算信用值;以及基于确定与所述第一命令处理器相关联的所述累积计算信用值不满足所述条件,通过所述存储器装置将所述第一存储器命令指派到所述第一命令处理器以供执行。
在一些实施方案中,一种设备包含:用于识别配置成执行所述设备的存储器命令的多个命令处理器的历史工作负载信息的构件,其中所述历史工作负载信息指示所述设备接收到的或检测到的多个存储器命令;用于确定包含在所述多个存储器命令中的具有第一命令类型的存储器命令的百分比的构件;用于基于所述百分比确定将所述第一命令类型的存储器命令分配到第一命令处理器或第二命令处理器的比率的构件,其中所述第一命令处理器包含在所述多个命令处理器中且配置成执行具有所述第一命令类型的命令,并且其中所述第二命令处理器包含在所述多个命令处理器中且配置成仅执行具有不同于所述第一命令类型的第二命令类型的命令,除非满足与所述历史工作负载信息相关联的历史工作负载条件;以及用于基于所述比率在所述第一命令处理器和所述第二命令处理器之间分配多个传入存储器命令的构件。
前述公开内容提供了说明和描述,但并非旨在穷举或将实施方案限制为所公开的精确形式。可以根据上述公开内容进行修改和变化,或者可以从本文描述的实施方案的实践中获得修改和变化。
如本文中所使用,“满足阈值”可根据上下文指代某一值大于阈值、大于或等于阈值、小于阈值、小于或等于阈值,等于阈值、不等于阈值,等等。
即使在权利要求中叙述和/或在说明书中公开了特征的特定组合,但这些组合并不旨在限制本文所述的实施方案的公开内容。这些特征中的许多可以以权利要求书中未具体叙述和/或说明书中未公开的方式组合。例如,本公开包含权利要求集中的每个从属权利要求,以及所述权利要求集中每个其它单独权利要求和多个权利要求的每个组合。如本文中所使用,提及项目列表“中的至少一个”的短语是指这些项目的任何组合,包含单个成员。作为实例,“a、b或c中的至少一个”旨在涵盖a、b、c、a+b、a+c、b+c和a+b+c,以及同一元素的倍数的任何组合(例如,a+a、a+a+a,a+a+b、a+a+c、a+b+b、a+c+c、b+b、b+b+b、b+b+c、c+c和c+c+c,或a、b和c的任何其它顺序)。
除非明确描述,否则本文使用的任何元件、行为或指令均不应被视为关键的或必要的。此外,如本文中所使用,“一(冠词“a”和“an”)”旨在包含一或多个项目,并且可与“一或多个”互换使用。此外,如本文中所使用,“所述(冠词“the”)”旨在包含结合“所述”引用的一或多个项目,并且可与“所述一或多个”互换使用。如果预期仅一个项目,那么使用短语“仅一个”、“单个”或类似的语言。此外,如本文中所使用,术语“具有(has/have/having)”等预期是开放式术语,并不限制它们所修饰的元素(例如,“具有”A的元素还可具有B)。此外,除非另外明确陈述,否则短语“基于”意指“至少部分地基于”。如本文中所使用,术语“多个(multiple)”可替换为“多个(a plurality of)”,反之亦可。并且,如本文中所使用,除非另外明确陈述(例如,如果以及“任一”或“中的仅一个”使用的话),否则术语“或”在串联使用时意在具有包含性,并且可与“和/或”互换使用。
Claims (25)
1.一种存储器装置,其包括:
一或多个组件,其配置成:
检测要执行的存储器命令;
确定所述存储器命令的命令类型,
其中所述命令类型是第一命令类型或第二命令类型中的一个;
识别与所述命令类型相关联的主命令处理器,
其中所述主命令处理器是配置成执行所述存储器装置的存储器命令的多个命令处理器中的一个,且
其中所述主命令处理器配置成仅执行具有所述第一命令类型的命令,除非满足与所述多个命令处理器中的另一命令处理器相关联的第一计算信用条件;
基于指派给所述主命令处理器的存储器命令,确定与所述主命令处理器相关联的累积计算信用值;以及
基于所述累积计算信用值是否满足阈值,选择性地将所述存储器命令指派到所述多个命令处理器中的所述主命令处理器或辅助命令处理器,
其中所述辅助命令处理器配置成仅执行具有所述第二命令类型的命令,除非满足与所述多个命令处理器中的另一命令处理器相关联的第二计算信用条件。
2.根据权利要求1所述的存储器装置,其中与所述主命令处理器相关联的所述累积计算信用值是基于与指派给所述主命令处理器以供执行的所有存储器命令相对应的所有计算信用值。
3.根据权利要求1所述的存储器装置,其中为了选择性地将所述存储器命令指派到所述主命令处理器或所述辅助命令处理器,所述一或多个组件配置成:
基于确定所述累积计算信用值不满足所述阈值,将所述存储器命令指派到所述主命令处理器;以及
其中所述一或多个组件进一步配置成:
基于将所述存储器命令指派到所述主命令处理器,并基于与所述存储器命令相关联的计算信用值,修改与所述主命令处理器相关联的所述累积计算信用值。
4.根据权利要求3所述的存储器装置,其中与所述存储器命令相关联的所述计算信用值是基于以下中的至少一个:
所述存储器命令的所述命令类型,或
所述存储器命令中所指示的数据传递大小。
5.根据权利要求3所述的存储器装置,其中所述存储器命令是第一存储器命令;且
其中所述一或多个组件进一步配置成:
检测要执行的第二存储器命令,其中所述第二存储器命令与所述第一存储器命令是相同的命令类型;
基于修改所述累积计算信用值,确定与所述主命令处理器相关联的当前累积计算信用值;以及
基于所述当前累积计算信用值是否满足所述阈值,选择性地将所述第二存储器命令指派到所述主命令处理器或所述辅助命令处理器。
6.根据权利要求1所述的存储器装置,其中所述累积计算信用值是第一累积计算信用值;
其中为了选择性地将所述存储器命令指派到所述主命令处理器或所述辅助命令处理器,所述一或多个组件配置成:
基于确定所述第一累积计算信用值满足所述阈值,将所述存储器命令指派到所述辅助命令处理器;且
其中所述一或多个组件进一步配置成:
基于将所述存储器命令指派到所述辅助命令处理器,并基于与所述存储器命令相关联的计算信用值,修改与所述辅助命令处理器相关联的第二累积计算信用值。
7.根据权利要求6所述的存储器装置,其中所述第二计算信用条件是所述第一累积计算信用值满足所述阈值。
8.根据权利要求1所述的存储器装置,其中所述第一计算信用条件是与除所述主命令处理器以外的命令处理器相关联的另一累积计算信用值满足所述阈值。
9.根据权利要求1所述的存储器装置,其中所述第一命令类型与第一计算信用值相关联,所述第二命令类型与不同于所述第一计算信用值的第二计算信用值相关联。
10.根据权利要求1所述的存储器装置,其中所述第一命令类型是读取命令类型或写入命令类型中的一个,且
其中所述第二命令类型是所述读取命令类型或所述写入命令类型中的另一个。
11.根据权利要求10所述的存储器装置,其中与所述写入命令类型相关联的计算信用值的量值大于与所述读取命令类型相关联的计算信用值。
12.一种方法,其包括:
通过存储器装置确定将由所述存储器装置执行的第一存储器命令的第一命令类型;
通过所述存储器装置识别与所述第一命令类型相关联的第一命令处理器,
其中所述第一命令处理器是配置成执行所述存储器装置的存储器命令的多个命令处理器中的一个,且
其中所述第一命令处理器配置成仅执行具有所述第一命令类型的命令,除非满足与所述多个命令处理器中的另一命令处理器相关联的计算信用条件;
通过所述存储器装置确定与所述第一命令处理器相关联的累积计算信用值不满足条件,
其中所述累积计算信用值是基于与指派给所述第一命令处理器以供执行的一或多个存储器命令相对应的一或多个计算信用值;以及
基于确定与所述第一命令处理器相关联的所述累积计算信用值不满足所述条件,通过所述存储器装置将所述第一存储器命令指派到所述第一命令处理器以供执行。
13.根据权利要求12所述的方法,其进一步包括:
基于与所述第一存储器命令相关联的计算信用值,修改与所述第一命令处理器相关联的所述累积计算信用值,以产生与所述第一命令处理器相关联的经更新累积计算信用值;
检测将由所述存储器装置执行的具有所述第一命令类型的第二存储器命令;
确定与所述第一命令处理器相关联的所述经更新累积计算信用值满足所述条件;以及
基于确定与所述第一命令处理器相关联的所述经更新累积计算信用值满足所述条件,将所述第二存储器命令指派到所述多个命令处理器中的第二命令处理器以供执行,
其中所述第二命令处理器配置成仅执行具有不同于所述第一命令类型的第二命令类型的命令,除非满足与所述多个命令处理器中的另一命令处理器相关联的计算信用条件。
14.根据权利要求13所述的方法,其中所述第一命令类型或所述第二命令类型中的至少一个是:
写入命令类型,
读取命令类型,与其相关联的计算信用值的量值低于所述写入命令类型,
修整命令类型,与其相关联的计算信用值的量值低于所述写入命令类型和所述读取命令类型,
未对准写入命令类型,
未对准读取命令类型,与其相关联的计算信用值的量值低于所述未对准写入命令类型,
对准写入命令类型,与其相关联的计算信用值的量值低于所述未对准写入命令类型,或
对准读取命令类型,与其相关联的计算信用值的量值低于所述未对准读取命令类型和所述对准写入命令类型。
15.根据权利要求13所述的方法,其中与所述第一存储器命令相关联的所述计算信用值是基于所述第一存储器命令的所述第一命令类型。
16.根据权利要求13所述的方法,其中与所述第一存储器命令相关联的所述计算信用值是基于所述第一存储器命令中所指示的数据传递大小。
17.根据权利要求16所述的方法,其中所述数据传递大小是基于以下中的至少一个:
所述第一存储器命令中所指示的逻辑块地址的数量,或
与所述逻辑块地址的数量相关联的存储大小。
18.根据权利要求13所述的方法,其进一步包括:
确定所述第一存储器命令已被执行;
从所述经更新累积计算信用值移除与所述第一存储器命令相关联的所述计算信用值,以产生与所述第一命令处理器相关联的经进一步更新累积计算信用值;
检测将由所述存储器装置执行的具有所述第一命令类型的第三存储器命令;
确定与所述第一命令处理器相关联的所述经进一步更新累积计算信用值不满足所述条件;以及
基于确定与所述第一命令处理器相关联的所述经进一步更新累积计算信用值不满足所述条件,将所述第三存储器命令指派到所述第一命令处理器。
19.一种设备,其包括:
用于识别配置成执行所述设备的存储器命令的多个命令处理器的历史工作负载信息的构件,
其中所述历史工作负载信息指示所述设备接收到的或检测到的多个存储器命令;
用于确定包含在所述多个存储器命令中的具有第一命令类型的存储器命令的百分比的构件;
用于基于所述百分比确定将所述第一命令类型的存储器命令分配到第一命令处理器或第二命令处理器的比率的构件,
其中所述第一命令处理器包含在所述多个命令处理器中且配置成执行具有所述第一命令类型的命令,且
其中所述第二命令处理器包含在所述多个命令处理器中且配置成仅执行具有不同于所述第一命令类型的第二命令类型的命令,除非满足与所述历史工作负载信息相关联的历史工作负载条件;以及
用于基于所述比率在所述第一命令处理器和所述第二命令处理器之间分配多个传入存储器命令的构件。
20.根据权利要求19所述的设备,其中所述历史工作负载条件是包含在所述多个存储器命令中且具有所述第一命令类型的存储器命令的所述百分比满足阈值。
21.根据权利要求19所述的设备,其中所述历史工作负载信息指示:
在一历史时间段内接收、检测或执行的所述第一命令类型的存储器命令的第一数量,以及
在所述历史时间段内接收、检测或执行的一或多个其它命令类型的存储器命令的第二数量。
22.根据权利要求19所述的设备,其中包含在所述多个命令处理器中的每一命令处理器配置成仅执行包含在与所述命令处理器相关联的一组命令中的命令,除非满足所述历史工作负载条件。
23.根据权利要求19所述的设备,其中用于确定所述比率的所述构件包括:
用于在存储于所述设备的存储器中的表中查找所述百分比的构件;以及
用于基于在所述表中查找所述百分比来识别所述比率的构件。
24.根据权利要求23所述的设备,其中所述表包含多个条目,其中所述多个条目中的每一条目指示特定百分比或百分比范围及与所述特定百分比或所述百分比范围相对应的特定比率。
25.根据权利要求19所述的设备,其中所述第一命令类型是读取命令类型或写入命令类型中的一个,且
其中所述第二命令类型是所述读取命令类型或所述写入命令类型中的另一个。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210998627.5A CN117632255A (zh) | 2022-08-19 | 2022-08-19 | 基于命令处理器工作负载的存储器命令指派 |
US17/821,894 US20240061585A1 (en) | 2022-08-19 | 2022-08-24 | Memory command assignment based on command processor workload |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210998627.5A CN117632255A (zh) | 2022-08-19 | 2022-08-19 | 基于命令处理器工作负载的存储器命令指派 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117632255A true CN117632255A (zh) | 2024-03-01 |
Family
ID=89906721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210998627.5A Pending CN117632255A (zh) | 2022-08-19 | 2022-08-19 | 基于命令处理器工作负载的存储器命令指派 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20240061585A1 (zh) |
CN (1) | CN117632255A (zh) |
-
2022
- 2022-08-19 CN CN202210998627.5A patent/CN117632255A/zh active Pending
- 2022-08-24 US US17/821,894 patent/US20240061585A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240061585A1 (en) | 2024-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10614888B2 (en) | Memory system that selectively writes in single-level cell mode or multi-level cell mode to reduce program/erase cycles | |
CN109902039B (zh) | 存储器控制器、存储器系统及于一存储器中管理数据配置的方法 | |
US11237769B2 (en) | Memory system and method of controlling nonvolatile memory | |
CN110297600B (zh) | 存储设备和操作存储设备的方法 | |
US9507711B1 (en) | Hierarchical FTL mapping optimized for workload | |
CN106874217B (zh) | 存储器系统及控制方法 | |
US9870149B2 (en) | Scheduling operations in non-volatile memory devices using preference values | |
US10884630B2 (en) | Storage system | |
US10241909B2 (en) | Non-volatile memory device | |
US20160062885A1 (en) | Garbage collection method for nonvolatile memory device | |
US10802733B2 (en) | Methods and apparatus for configuring storage tiers within SSDs | |
CN111290704B (zh) | 用于控制储存在存储系统中的数据的装置和方法 | |
CN110928807B (zh) | 用于检查存储器系统中的有效数据的设备和方法 | |
US11868652B2 (en) | Utilization based dynamic shared buffer in data storage system | |
US10983701B2 (en) | Memory system that constructs virtual storage regions for virtual machines | |
US10929286B2 (en) | Arbitrated management of a shared non-volatile memory resource | |
US11429314B2 (en) | Storage device, storage system and operating method thereof | |
US11269559B2 (en) | Data processing device | |
TWI786288B (zh) | 儲存裝置、儲存裝置的控制方法及記錄媒體 | |
CN110895449A (zh) | 用于在存储器系统中管理有效数据的装置和方法 | |
CN115458013A (zh) | 存储装置及其操作方法 | |
US20240061585A1 (en) | Memory command assignment based on command processor workload | |
CN113811847A (zh) | 来自主机系统的写入命令的部分执行 | |
US11966635B2 (en) | Logical unit number queues and logical unit number queue scheduling for memory devices | |
KR20240029938A (ko) | 메모리 컨트롤러 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |