CN111176826A - 基于资源分配优化的命令处理方法 - Google Patents
基于资源分配优化的命令处理方法 Download PDFInfo
- Publication number
- CN111176826A CN111176826A CN201811346359.9A CN201811346359A CN111176826A CN 111176826 A CN111176826 A CN 111176826A CN 201811346359 A CN201811346359 A CN 201811346359A CN 111176826 A CN111176826 A CN 111176826A
- Authority
- CN
- China
- Prior art keywords
- command
- processing
- resources
- group
- present application
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请公开了基于资源分配优化的命令处理方法。所公开的命令处理方法包括如下步骤:响应于收到第一命令,使用第一组的资源处理第一命令;响应于收到第二命令,使用第二组的资源处理第二命令;其中,资源被分配给第一组与第二组,被分配给第一组的资源数量不超过指定阈值。
Description
技术领域
本申请涉及信息技术领域,具体地,涉及通过资源分配优化来提高电子设备的命令的实时响应能力。
背景技术
图1A展示了存储设备的框图。存储设备102同主机相耦合,用于为主机提供存储能力。主机同固态存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA(Serial Advanced Technology Attachment,串行高级技术附件)、SCSI(SmallComputer System Interface,小型计算机系统接口)、SAS(Serial Attached SCSI,串行连接SCSI)、IDE(Integrated Drive Electronics,集成驱动器电子)、USB(Universal SerialBus,通用串行总线)、PCIE(Peripheral Component Interconnect Express,PCIe,高速外围组件互联)、NVMe(NVM Express,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个NVM芯片105以及DRAM(Dynamic Random Access Memory,动态随机访问存储器)110。
NAND闪存、相变存储器、FeRAM(Ferroelectric RAM,铁电存储器)、MRAM(MagneticRandom Access Memory,磁阻存储器)、RRAM(Resistive Random Access Memory,阻变存储器)、XPoint存储器等是常见的NVM。
接口103可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。
控制部件104用于控制在接口103、NVM芯片105以及DRAM 110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。控制部件104可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件104可以是FPGA(Field-programmable gate array,现场可编程门阵列)、ASIC(Application SpecificIntegrated Circuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件104的硬件来处理IO(Input/Output)命令。控制部件104还可以耦合到DRAM 110,并可访问DRAM 110的数据。在DRAM可存储FTL表和/或缓存的IO命令的数据。
控制部件104包括闪存接口控制器(或称为介质接口控制器、闪存通道控制器),闪存接口控制器耦合到NVM芯片105,并以遵循NVM芯片105的接口协议的方式向NVM芯片105发出命令,以操作NVM芯片105,并接收从NVM芯片105输出的命令执行结果。已知的NVM芯片接口协议包括“Toggle”、“ONFI”等。
存储器目标(Target)是NAND闪存封装内的共享CE(,Chip Enable,芯片使能)信号的一个或多个逻辑单元(LUN,Logic UNit)。NAND闪存封装内可包括一个或多个管芯(Die)。典型地,逻辑单元对应于单一的管芯。逻辑单元可包括多个平面(Plane)。逻辑单元内的多个平面可以并行存取,而NAND闪存芯片内的多个逻辑单元可以彼此独立地执行命令和报告状态。
存储介质上通常按页来存储和读取数据。而按块来擦除数据。块(也称物理块)包含多个页。块包含多个页。存储介质上的页(称为物理页)具有固定的尺寸,例如17664字节。物理页也可以具有其他的尺寸。
在存储设备中,利用FTL(Flash Translation Layer,闪存转换层)来维护从逻辑地址到物理地址的映射信息。逻辑地址构成了操作系统等上层软件所感知到的固态存储设备的存储空间。物理地址是用于访问固态存储设备的物理存储单元的地址。在相关技术中还可利用中间地址形态实施地址映射。例如将逻辑地址映射为中间地址,进而将中间地址进一步映射为物理地址。存储了从逻辑地址到物理地址的映射信息的表结构被称为FTL表。
随着技术的不断演进,除了对连续读写性能的要求之外,对存储设备的实时响应能力的要求也越来越高。
在存储设备的访问可以分为以下几类:外部主机发起的用于读取数据的读命令,外部主机发起的用于写入数据的写命令,存储设备的控制部件自身发起的用于读取数据的读命令,存储设备的控制部件自身发起的用于写入数据的写命令。
控制部件自身发起的这些读写命令来自例如GC(Garbage Collection,垃圾回收)。这些来自GC的读写命令对存储设备施加了额外的负担,会影响主机体验到的存储设备的性能。
图1B展示了现有技术的存储设备控制部件。控制部件耦合到访问存储设备的主机。主机是读写命令的发起方和接收方,NVM芯片用于存储的数据。控制部件用于主机与NVM芯片之间的数据交互。控制部件包括主机接口、介质接口、命令处理单元与缓存。主机接口、命令处理单元与介质接口均可由CPU、专用硬件或其组合实现。
主机接口接收来自主机的读命令或写命令,并将命令提供给命令处理单元。
缓存用于容纳要写入存储设备的数据,或从存储设备读出的数据。缓存包括例如多个缓存单元。
命令处理单元获取例如写命令,利用缓存接收写命令要写入的数据,并指示介质接口向NVM芯片发出一个或多个编程操作,以将写命令所指示的数据存储在NVM芯片。可选地,命令处理单元还为要写入NVM芯片的数据分配物理地址。对于读命令,命令处理单元指示介质接口向NVM芯片发出一个或多个读操作,并将NVM芯片提供的被读取数据存储在缓存中,以及将缓存中的数据搬移到主机。
命令处理单元或控制部件的其他单元还实施垃圾回收(GC)操作,以产生用于GC的读命令或写命令,并指示介质接口根据用于GC的读命令或写命令向NVM芯片发出编程操作或读操作。
作为举例,命令处理单元根据数据在NVM芯片中的存储情况,对数据进行GC操作。GC操作流程为:第一,经过介质接口从NVM芯片中读出需要回收的数据到缓存中。第二,或者这些数据的新物理地址。第三,指示介质接口控制器将缓存中的这些数据写入到NVM芯片的由新物理地址指示的存储位置。第四,擦除NVM芯片中存储不再被需要的数据的物理块。
在GC操作中产生读命令、写命令与擦除命令。用于GC操作读命令给与写命令、来自主机的读命令与写命令都要占用控制部件的缓存资源。
控制部件的缓存资源的是有限的。若缓存资源被用于GC操作的读写命令全部占用或者大部分占用,会造成当主机想要访问存储设备时,由于没有可用的缓存资源或者缓存资源很少,导致主机的读写命令无法得到及时响应。这增加了主机访问存储设备的延时,降低了存储设备的实时响应能力。
发明内容
本申请提供一种更加优化的内部缓存资源分配策略,以保证任何时候主机对SSD进行读写的时候都可以获得足够多的内部缓存资源,进而提高SSD系统的实时响应能力。
根据本申请的第一方面,提供了根据本申请第一方面的第一处理命令的方法,其中,包括如下步骤:响应于收到第一命令,使用第一组的资源处理第一命令;响应于收到第二命令,使用第二组的资源处理第二命令;其中,资源被分配给第一组与第二组,被分配给第一组的资源数量不超过指定阈值。
根据本申请第一方面的第一处理命令的方法,提供了本申请第一方面的第二处理命令的方法,其中,响应于收到第一命令,若第一组的资源不足以处理第一命令,暂停处理第一命令。
根据本申请第一方面的第一或第二处理命令的方法,提供了本申请第一方面的第三处理命令的方法,其中,响应于没有待处理的第二命令的时间超过时间阈值,将指定的阈值被设置为可用资源的最大数量。
根据本申请第一方面的第一或第二处理命令的方法,提供了本申请第一方面的第四处理命令的方法,其中,响应于没有待处理的第二命令的时间超过时间阈值,增加所述指定的阈值。
根据本申请第一方面的第一或第二处理命令的方法,提供了本申请第一方面的第五处理命令的方法,其中,响应于估计未来指定时间内没有待处理的第二命令,将指定的阈值被设置为可用资源的最大数量。
根据本申请第一方面的第一或第二处理命令的方法,提供了本申请第一方面的第六处理命令的方法,其中,响应于估计未来指定时间内没有待处理的第二命令,增加所述指定的阈值。
根据本申请第一方面的第一至四任一项的处理命令的方法,提供了本申请第一方面的第七处理命令的方法,其中,响应于收到第二命令,降低所述指定阈值。
根据本申请第一方面的第一至四任一项的处理命令的方法,提供了本申请第一方面的第八处理命令的方法,其中,响应于收到第二命令,将所述指定阈值设置为最小值。
根据本申请第一方面的第一至三任一项的处理命令的方法,提供了本申请第一方面的第九处理命令的方法,其中,响应于收到第二命令,若第二组的资源不足以处理第二命令,降低所述指定阈值。
根据本申请第一方面的第一至五任一项的处理命令的方法,提供了本申请第一方面的第十处理命令的方法,其中,响应于收到第二命令,若第二组的资源不足以处理第二命令,将所述指定阈值设置为最小值。
根据本申请第一方面的第一至六任一项的处理命令的方法,提供了本申请第一方面的第十一处理命令的方法,其中,若第一组的资源超过第一组的指定阈值,暂停处理新的第一命令。
根据本申请第一方面的第十处理命令的方法,提供了本申请第一方面的第十二处理命令的方法,其中,响应于第一命令被处理完成,将第一命令使用的资源分配给第二组。
根据本申请第一方面的第一至十二任一项的处理命令的方法,提供了本申请第一方面的第十三处理命令的方法,其中,若第一组的资源超过第一组的指定阈值,将第一组的资源分配给第二组。
根据本申请第一方面的第一至十三任一项的处理命令的方法,提供了本申请第一方面的第十四处理命令的方法,其中,第一命令为用于垃圾回收的读命令和/或写命令,第二命令为访问存储设备的主机提供的读命令和/或写命令。
根据本申请第二方面,提供了根据本申请第二方面的第一处理命令的方法,提供了本申请第二方面的第一处理命令的方法,其中,响应于收到第一命令,获取第一可用资源分配给第一组,并使用获取的第一可用资源处理第一命令;响应于收到第二命令,获取第二可用资源分配给第二组,并使用获取的第二可用资源处理第二命令;其中,被分配给第一组的资源数量不超过指定阈值。
根据本申请第二方面的第一处理命令的方法,提供了本申请第二方面的第二处理命令的方法,其中,若无法获取足够的可用资源,则暂停处理第一命令或第二命令。
根据本申请第二方面的第一或第二的处理命令的方法,提供了本申请第二方面的第三处理命令的方法,其中,响应于收到第一命令,若分配给第一组的资源已超过指定阈值,暂停处理第一命令。
根据本申请第二方面的第三处理命令的方法,提供了本申请第二方面的第四处理命令的方法,其中,响应于第一命令被处理完成,将第一命令使用的资源释放成为可用资源。
根据本申请第二方面的第一至三任一项的处理命令的方法,提供了本申请第二方面的第五处理命令的方法,其中,响应于没有待处理的第二命令的时间超过时间阈值,将指定的阈值被设置为可用资源的最大数量。
根据本申请第二方面的第一至三任一项的处理命令的方法,提供了本申请第二方面的第六处理命令的方法,其中,响应于没有待处理的第二命令的时间超过时间阈值,增加所述指定的阈值。
根据本申请第二方面的第一至三任一项的处理命令的方法,提供了本申请第二方面的第七处理命令的方法,其中,响应于估计未来指定时间内没有待处理的第二命令,将指定的阈值被设置为可用资源的最大数量。
根据本申请第二方面的第一至三任一项的处理命令的方法,提供了本申请第二方面的第八处理命令的方法,其中,响应于估计未来指定时间内没有待处理的第二命令,增加所述指定的阈值。
根据本申请第二方面的第一至八任一项的处理命令的方法,提供了本申请第二方面的第九处理命令的方法,其中,响应于收到第二命令,降低所述指定阈值。
根据本申请第二方面的第一至九任一项的处理命令的方法,提供了本申请第二方面的第十处理命令的方法,其中,响应于收到第二命令,将所述指定阈值设置为最小值。
根据本申请第二方面的第一至十任一项的处理命令的方法,提供了本申请第二方面的第十一处理命令的方法,其中,响应于收到第二命令,若无法获取足够的可用资源处理第二命令,降低所述指定阈值或将所述指定阈值设置为最小值。
根据本申请第二方面的第一至十一任一项的处理命令的方法,提供了本申请第二方面的第十二处理命令的方法,其中,第一命令为用于垃圾回收的读命令和/或写命令,第二命令为访问存储设备的主机提供的读命令和/或写命令。
根据本申请第二方面的第一处理命令的方法,提供了本申请第二方面的第十三处理命令的方法,其中,响应于收到第三命令,获取第三可用资源分配给第三组,并使用获取的第三可用资源处理第三命令。
根据本申请第二方面的第十三处理命令的方法,提供了本申请第二方面的第十四处理命令的方法,其中,响应于没有待处理的第三命令的时间超过时间阈值,将指定的阈值被设置为可用资源的最大数量。
根据本申请第二方面的第十三处理命令的方法,提供了本申请第二方面的第十五处理命令的方法,其中,响应于没有待处理的第三命令的时间超过时间阈值,增加所述指定的阈值。
根据本申请第二方面的第十三处理命令的方法,提供了本申请第二方面的第十六处理命令的方法,其中,响应于估计未来指定时间内没有待处理的第三命令,将指定的阈值被设置为可用资源的最大数量。
根据本申请第二方面的第十三的处理命令的方法,提供了本申请第二方面的第十七处理命令的方法,其中,响应于估计未来指定时间内没有待处理的第三命令,增加所述指定的阈值。
根据本申请的第三方面,提供了根据本申请第三方面的第一存储设备,其中,包括控制部件与非易失存储介质,所述控制部件执行第一方面至第二方面的处理命令的方法。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1A和图1B是现有技术的存储设备的框图;
图2是根据本申请实施例提供的控制部件的框图;
图3是根据本申请实施例提供的资源管理单元管理缓存的示意图;
图4是根据本申请又一实施例的资源管理单元管理缓存资源的示意图;
图5、图6和图7是根据本申请再一实施例提供的资源管理单元管理缓存资源的示意图;
图8为本申请实施例提供的处理命令的方法流程图;
图9为本申请又一实施例提供的处理命令的方法流程图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图2是根据本申请实施例的控制部件的框图。
控制部件包括主机接口、介质接口、命令处理单元、资源管理单元与缓存。主机接口、命令处理单元、介质接口与资源管理单元均可由CPU、专用硬件或其组合实现。
资源管理单元管理缓存的一个或多个缓存单元的使用。作为举例,主机接口向资源管理单元指示要处理写命令,并从资源管理单元获得分配给处理该命令的缓存单元,以及主机接口将写命令要写入的数据存储在所分配的缓存单元中。类似地,介质接口向资源管理单元指示要处理主机读命令并且有数据要从NVM芯片读出,并从资源管理单元获得分配给处理该读命令的缓存单元,以及介质接口将NVM芯片提供的读出数据存储在所分配的缓存单元。
依然作为举例,命令处理单元根据要处理的用于GC的读命令或写命令向资源管理单元请求分配缓存单元。对于用于GC的读命令,命令处理单元还指示介质接口将根据用于GC的读命令从NVM芯片读取的数据存储在所分配的缓存单元。对于用于GC的写命令,命令处理单元将要写入记录在资源管理单元为其所分配的缓存单元。作为一个例子,在GC操作中,命令处理单元先为用于GC的读命令从资源管理单元请求分配缓存单元,将读出的数据记录在所分配的缓存单元,以及随后的用于GC的写命令再次使用为之前用于GC的读命令所分配的缓存单元,以将缓存单元中的数据写入NVM芯片。
图3是本申请实施例提供的资源管理单元管理缓存的示意图。
如图3所示,资源管理单元将缓存资源分为多个组,例如组1、组2和组3。每组资源对应一种命令。例如使用组1提供的缓存资源执行用于GC的读命令或用于GC的写命令,使用组2提供的缓存资源执行读命令,使用组3提供的缓存资源执行写命令。
进一步地,每个组可以使用的资源可被动态调整。资源管理单元根据需要动态调整每个组分配的缓存资源,以保证对主机发出的命令可以尽快得到需要的资源,以提高存储设备的实时响应能力。
在又一种实施方式中,每组各自记录了分配给该组的缓存资源。静态或动态限制各组所拥有的缓存资源的最大数量,如果组内所拥有的缓存资源数量超过为该组设置的缓存资源的最大数量,则不再向该组分配缓存资源。
图4为根据本申请又一实施例的资源管理单元管理缓存资源的示意图。
资源管理单元将缓存资源分为多个组,例如组1、组2和组3。每组资源对应一种命令。例如使用组1提供的缓存资源执行用于GC的读命令或用于GC的写命令,使用组2提供的缓存资源执行读命令,使用组3提供的缓存资源执行写命令。
图4还展示了资源分配条420,代表了缓存的所有可用缓存资源的分配与使用情况。资源管理单元对用于GC的读命令或用于GC的写命令的组1的可使用资源设置上限424,组1的资源不能超过上限424。作为举例,上限424可以是指定值或者相对于全部资源的指定比例。图4中,可使用资源设置上限424呈斜线为阴影,代表其已全部被使用,在此情况下,不再处理用于GC的读命令或用于GC的写命令,或者不再为处理用于GC的读命令或用于GC的写命令而分配资源。而当有用于GC的读命令或用于GC的写命令被处理完成并释放了缓存资源,使得用于GC的读命令或用于GC的写命令所占用的缓存资源小于上限424后,才继续处理其他的用于GC的读命令或用于GC的写命令。
继续参看图4,资源分配条420的预留资源428是资源管理单元为处理读命令或写命令而预留的缓存资源。根据资源分配条420指示,全部的缓存资源中,除上限424所代表的缓存资源之外的部分,都属于预留资源428。
作为举例,预留资源既可用于处理读命令,也可用于处理写命令,但不可用于处理用于GC的读/写命令。图4中,预留资源428尚未被使用,即使这样,也不将其分配给用于GC的读/写命令。从而用于GC的读/写命令不会占用所有的缓存资源。使得在任何时刻,都为处理读命令或写命令预留了资源。
根据本申请的实施例,若命令处理单元接收到了读命令或写命令,向资源管理单元请求为读命令或写命令分配缓存资源,即使为用于GC的读/写命令分配了部分缓存资源,资源管理单元依然能从预留资源428中分配资源并立即执行读命令或写命令,此时不需要等待GC操作释放使用的缓存资源,降低了执行读命令或写命令的时间。
在又一个例子中,预留资源428用于处理读命令或写命令;若用于GC的读/写命令的缓存资源数量未达到上限424,缓存资源上限424的部分或全部也可被用来处理读命令或写命令。全部资源都可被用来处理读命令或写命令,而被用来处理用于GC的读/写命令的缓存资源不能超过上限424。
根据一种实施方式,在存在或预期将要出现要处理的读命令或写命令时,设置或维持上限424,从而读/写命令得到最高性能的处理。而在没有要处理的读命令或写命令时,清除上限424,或将上限424设置为可用缓存资源的最大值,使得用于GC的读/写命令得到最高性能的处理。
图5、图6和图7为本申请再一实施例提供的资源管理单元管理缓存资源的示意图。
如图5所示,在没有读/写命令要处理的情况下,资源管理单元可向组1分配全部的缓存资源,处理用于GC的读命令或用于GC的写命令。资源分配条520的阴影部分代表全部缓存资源均已被分配给组1使用。用于GC的读命令或用于GC的写命令使用了全部的缓存资源。使得存储设备以较高的性能处理用于处理GC的读命令或用于GC的写命令。
接下来参看图6,响应于接到读命令或写命令,资源管理单元对用于GC的读命令或用于GC的写命令的组1的可使用资源设置上限624。也参看图5,之前分配给组1的缓存资源为全部可用资源,组1的缓存资源数量超过了上限624。在此情况下,不再为组1分配缓存资源,从而对于用于GC的读命令或用于GC的写命令,由于得不到缓存资源而暂时不再被处理。以及当正在处理中的用于GC的读命令或用于GC的写命令被处理完成,其使用的缓存资源被释放,使得分配给组1的缓存资源数量逐渐降低。如图6所示,竖条阴影部分是组1当前所占用的资源,其已小于全部缓存资源,但仍大于上限624。
从组1释放的资源被分配给组2或组3来处理读命令或写命令。继续参看图6,资源分配条620的横线阴影部分628指示已被分配给组2或组3的缓存资源。
响应于用于GC的读命令或用于GC的写命令被处理完成并释放了缓存资源,分配给组1的缓存资源持续下降。参看图7,分配给组1的资源(由资源分配条中的竖线阴影所指示)已不大于被设置的组1的资源上限724。
未分配给组1的缓存资源可被分配给组2或组3以响应读命令或写命令。图7中,已分配给组2与组3的资源由资源分配条720中的横线阴影728所指示,而资源分配条720的无阴影部分729指示未被使用缓存资源。
由于分配给组1的资源已达到上限724,虽然有未被使用的缓存资源(729),这些资源也不分配组1来处理用于GC的读/写命令。而若有要处理的读命令或写命令,未被使用的缓存资源(729)可被分配给组2或组3来处理读命令或写命令。
接下来,若在一段时间内,命令处理单元没有要处理的读命令或写命令,资源管理单解除对组1所设置的上限424,或将使用资源上限424设置为可用缓存资源的最大数量。从而组1可再次被分配全部缓存资源,使得全部缓存资源被用于处理用于GC的读/写命令。
图8为本申请实施例提供的处理命令的方法流程图。
根据本申请的实施例,对用于GC的读/写命令使用的缓存资源做出固定的限制,使得在系统中预留部分资源用于处理读命令或写命令,而用于GC的读/写命令所使用的资源不超过固定的限制。使用分配给第一组的缓存资源处理用于GC的读命令或用于GC的写命令,使用分配给第二组的缓存资源处理读命令,使用分配给第三组的缓存资源执行写命令。
资源管理单元设置分配给第一组的可用资源设置上限(810)。响应于收到用于GC的读/写命令,向第一组分配缓存资源处理用于GC的读/写命令(820)。若分配给第一的资源超过所设置的上限,资源管理单元拒绝向第一组分配缓存资源,从而暂停处理新的GC操作。
响应于收到读命令和/或写命令,向第二组和/或第三组分配缓存资源处理读命令和/或写命令(830)。
图9为本申请又一实施例提供的处理命令的方法流程图。
根据本申请的实施例,对用于GC的读/写命令使用的缓存资源做出动态的限制,在没有待处理的读命令和/或写命令时,不对第一组所占用的缓存资源进行任何限制,所有的缓存资源都能够分配给第一组。而在有待处理的读命令和/或写命令时,对第一组所占用的缓存资源设置上限,使得在系统中预留部分资源用于处理读命令或写命令。
分配给第一组的缓存资源被用于处理用于GC的读命令或用于GC的写命令,分配给第二组的缓存资源被用于处理读命令,分配给第三组的缓存资源被用于处理写命令。
在存储设备初始化时,全部缓存资源可被分配给第一组用于处理用于GC的读/写命令(910)。
响应于收到读命令和/或写命令时,命令处理单元请求资源管理单元向第二组和/第三组分配缓存资源以处理读命令和/或写命令,以及设置第一组的资源使用上限(920)。在分配第一组的资源超过所设置的上限时,不再向第一组分配缓存资源。
响应于没有待处理的读命令或写命令,或者没有待处理的读命令或写命令的时间超过指定阈值,资源管理单元解除对第一组设置的资源使用上限(930),使得用于GC的读/写命令能够再次使用全部缓存资源。
上面以缓存资源为例描述了根据本申请的实施例,可以理解地,本申请的实施例也可应用于其他有多份实例的资源,例如CPU资源、存储器资源、译码器资源、解码器资源等。
虽然当前申请参考的示例被描述,其只是为了解释的目的而不是对本申请的限制,对实施方式的改变,增加和/或删除可以被做出而不脱离本申请的范围。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种处理命令的方法,其特征在于,包括如下步骤:
响应于收到第一命令,使用第一组的资源处理第一命令;
响应于收到第二命令,使用第二组的资源处理第二命令;其中,资源被分配给第一组与第二组,被分配给第一组的资源数量不超过指定阈值。
2.根据权利要求1的处理命令的方法,其特征在于,响应于收到第一命令,若第一组的资源不足以处理第一命令,暂停处理第一命令。
3.如权利要求1或2的处理命令的方法,其特征在于,响应于没有待处理的第二命令的时间超过时间阈值,将指定的阈值被设置为可用资源的最大数量。
4.如权利要求1或2的处理命令的方法,其特征在于,响应于没有待处理的第二命令的时间超过时间阈值,增加所述指定的阈值。
5.根据权利要求1-4任一项的处理命令的方法,其特征在于,还包括,若第一组的资源超过第一组的指定阈值,暂停处理新的第一命令。
6.根据权利要求5的处理命令的方法,其特征在于,响应于第一命令被处理完成,将第一命令使用的资源分配给第二组。
7.一种处理命令的方法,其特征在于,包括如下步骤:
响应于收到第一命令,获取第一可用资源分配给第一组,并使用获取的第一可用资源处理第一命令;
响应于收到第二命令,获取第二可用资源分配给第二组,并使用获取的第二可用资源处理第二命令;其中,被分配给第一组的资源数量不超过指定阈值。
8.根据权利要求7的处理命令的方法,其特征在于,若无法获取足够的可用资源,则暂停处理第一命令或第二命令。
9.根据权利要求7或8的处理命令的方法,其特征在于,响应于估计未来指定时间内没有待处理的第二命令,增加所述指定的阈值。
10.一种存储设备,其特征在于,包括控制部件与非易失存储介质,所述控制部件执行根据权利要求1-9之一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811346359.9A CN111176826A (zh) | 2018-11-13 | 2018-11-13 | 基于资源分配优化的命令处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811346359.9A CN111176826A (zh) | 2018-11-13 | 2018-11-13 | 基于资源分配优化的命令处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111176826A true CN111176826A (zh) | 2020-05-19 |
Family
ID=70649913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811346359.9A Pending CN111176826A (zh) | 2018-11-13 | 2018-11-13 | 基于资源分配优化的命令处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111176826A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8578106B1 (en) * | 2012-11-09 | 2013-11-05 | DSSD, Inc. | Method and system for queue demultiplexor with size grouping |
CN107870866A (zh) * | 2016-09-28 | 2018-04-03 | 北京忆芯科技有限公司 | Io命令调度方法与nvm接口控制器 |
CN108153582A (zh) * | 2016-12-05 | 2018-06-12 | 北京忆恒创源科技有限公司 | Io命令处理方法与介质接口控制器 |
CN108228470A (zh) * | 2016-12-21 | 2018-06-29 | 北京忆恒创源科技有限公司 | 一种处理向nvm写入数据的写命令的方法和设备 |
CN108369530A (zh) * | 2016-12-05 | 2018-08-03 | 华为技术有限公司 | 非易失性高速传输总线架构中数据读写命令的控制方法、设备和系统 |
-
2018
- 2018-11-13 CN CN201811346359.9A patent/CN111176826A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8578106B1 (en) * | 2012-11-09 | 2013-11-05 | DSSD, Inc. | Method and system for queue demultiplexor with size grouping |
CN107870866A (zh) * | 2016-09-28 | 2018-04-03 | 北京忆芯科技有限公司 | Io命令调度方法与nvm接口控制器 |
CN108153582A (zh) * | 2016-12-05 | 2018-06-12 | 北京忆恒创源科技有限公司 | Io命令处理方法与介质接口控制器 |
CN108369530A (zh) * | 2016-12-05 | 2018-08-03 | 华为技术有限公司 | 非易失性高速传输总线架构中数据读写命令的控制方法、设备和系统 |
CN108228470A (zh) * | 2016-12-21 | 2018-06-29 | 北京忆恒创源科技有限公司 | 一种处理向nvm写入数据的写命令的方法和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107885456B (zh) | 减少io命令访问nvm的冲突 | |
JP5907255B2 (ja) | Lsb及びmsbページにおける選択的データ記憶 | |
US20160062885A1 (en) | Garbage collection method for nonvolatile memory device | |
US20220326872A1 (en) | Method for selecting a data block to be collected in gc and storage device thereof | |
CN108228470B (zh) | 一种处理向nvm写入数据的写命令的方法和设备 | |
KR20240049262A (ko) | 메모리 시스템 및 이의 동작 방법 | |
US11385831B2 (en) | Memory controller and storage device including the same | |
CN109558334B (zh) | 垃圾数据回收方法及固态存储设备 | |
KR20150055413A (ko) | 데이터 저장 장치 | |
US11416168B2 (en) | Memory controller and storage device including the same | |
WO2018024214A1 (zh) | Io流调节方法与装置 | |
KR20180126656A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN110554833B (zh) | 存储设备中并行处理io命令 | |
CN107885667B (zh) | 降低读命令处理延迟的方法与装置 | |
CN113986773A (zh) | 基于固态硬盘的写放大优化方法、装置及计算机设备 | |
CN116795735B (zh) | 固态硬盘空间分配方法、装置、介质及系统 | |
CN114510435A (zh) | 编程命令处理方法与装置 | |
CN114253461A (zh) | 混合通道存储设备 | |
CN110865945B (zh) | 存储设备的扩展地址空间 | |
KR102425470B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN110515861B (zh) | 处理刷写命令的存储设备及其方法 | |
CN110096452B (zh) | 非易失随机访问存储器及其提供方法 | |
KR101549569B1 (ko) | 가비지 컬렉션 수행 방법 및 그 방법을 이용한 플래시 메모리 장치 | |
CN107688435B (zh) | Io流调节方法与装置 | |
KR102088945B1 (ko) | 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스 |
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 |