CN114047875B - 命令调度方法、装置、设备及计算机程序产品 - Google Patents
命令调度方法、装置、设备及计算机程序产品 Download PDFInfo
- Publication number
- CN114047875B CN114047875B CN202111244213.5A CN202111244213A CN114047875B CN 114047875 B CN114047875 B CN 114047875B CN 202111244213 A CN202111244213 A CN 202111244213A CN 114047875 B CN114047875 B CN 114047875B
- Authority
- CN
- China
- Prior art keywords
- priority
- command
- operation command
- attribute
- setting
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000004590 computer program Methods 0.000 title claims abstract description 14
- 239000007787 solid Substances 0.000 claims abstract description 27
- 238000013519 translation Methods 0.000 claims description 7
- 230000001960 triggered effect Effects 0.000 claims description 7
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000011217 control strategy Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000008187 granular material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012913 prioritisation Methods 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
-
- 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)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种命令调度方法、装置、设备及计算机程序产品,所述命令调度方法应用于固态硬盘SSD,所述SSD包括闪存转换层FTL,所述命令调度方法包括:获取待处理的操作命令,通过所述FTL设置所述操作命令的优先级属性;通过所述FTL下发设置后的操作命令至所述SSD中对应的执行模块;根据所述优先级属性确定所述操作命令的优先级顺序,以供所述执行模块基于所述优先级顺序调度所述操作命令。本发明提高了固态硬盘命令调度的灵活性。
Description
技术领域
本发明涉及存储设备技术领域,尤其涉及一种命令调度方法、装置、设备及计算机程序产品。
背景技术
随着科技的迅速发展,人们对存储设备的要求越来越高。而由于固态硬盘较高的读写性能,固态硬盘的应用越来越广泛。目前,固态存储设备的控制策略中,基本上都是按照FIFO(First Input First Output)的设计思想进行管理,也就是先下的命令先执行,但是实际应用中可能有模型场景需要超前执行后发的一些命令,比如HOST(主机)下发了一批写命令,FTL(Flash Translation Layer,闪存转换层)也下了对应命令到相关模块中,此时HOST突然来了一个读操作,且这个读操作是比较紧急的,然而,这个读操作需要等待之前的写操作完成后才能执行。因此,现有固态硬盘的命令调度不够灵活。
发明内容
本发明的主要目的在于提供一种命令调度方法、装置、设备及计算机程序产品,旨在提高固态硬盘命令调度的灵活性。
为实现上述目的,本发明提供一种命令调度方法,应用于固态硬盘SSD,所述SSD包括闪存转换层FTL,所述命令调度方法包括以下步骤:
获取待处理的操作命令,通过所述FTL设置所述操作命令的优先级属性;
通过所述FTL下发设置后的操作命令至所述SSD中对应的执行模块;
根据所述优先级属性确定所述操作命令的优先级顺序,以供所述执行模块基于所述优先级顺序调度所述操作命令。
可选地,所述通过所述FTL设置所述操作命令的优先级属性的步骤包括:
通过所述FTL,基于所述操作命令的紧急程度和/或执行时间,设置所述操作命令的优先级属性。
可选地,所述基于所述操作命令的紧急程度和执行时间,设置所述操作命令的优先级属性的步骤包括:
基于所述操作命令的紧急程度确定优先级范围;
基于所述操作命令的执行时间,确定所述优先级范围中对应的优先级字段;
基于所述优先级字段,设置所述操作命令的优先级属性。
可选地,所述根据所述优先级属性确定所述操作命令的优先级顺序的步骤包括:
根据所述优先级属性和预设的优先级寄存器,确定所述操作命令的优先级顺序。
可选地,所述根据所述优先级属性和预设的优先级寄存器,确定所述操作命令的优先级顺序的步骤之前,还包括:
若接收到优先级调整命令时,则基于所述优先级调整命令设置所述优先级寄存器。
可选地,所述命令调度方法还包括:
基于所述优先级顺序,确定所述操作命令的优先级是否大于所述执行模块的当前命令的优先级,所述当前命令为所述执行模块正在执行的命令;
若大于,则挂起所述当前命令,并控制所述执行模块执行所述操作命令;
在所述操作命令执行完成后,控制所述执行模块继续执行所述当前命令。
可选地,所述获取待处理的操作命令的步骤包括:
获取主机下发的待处理的操作命令;或,
获取所述SSD中控制器触发的待处理的操作命令。
此外,为实现上述目的,本发明还提供一种命令调度装置,部署于固态硬盘SSD,所述SSD包括闪存转换层FTL,所述命令调度装置包括:
获取模块,用于获取待处理的操作命令,通过所述FTL设置所述操作命令的优先级属性;
下发模块,用于通过所述FTL下发设置后的操作命令至所述SSD中对应的执行模块;
确定模块,用于根据所述优先级属性确定所述操作命令的优先级顺序,以供所述执行模块基于所述优先级顺序调度所述操作命令。
此外,为实现上述目的,本发明还提供一种命令调度设备,所述命令调度设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的命令调度程序,所述命令调度程序被所述处理器执行时实现如上所述的命令调度方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有命令调度程序,所述命令调度程序被处理器执行时实现如上所述的命令调度方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如上所述的命令调度方法的步骤。
本发明提供一种命令调度方法、装置、设备及计算机程序产品,应用于固态硬盘SSD,SSD包括闪存转换层FTL,获取待处理的操作命令,通过FTL设置操作命令的优先级属性;通过FTL下发设置后的操作命令至SSD中对应的执行模块;根据优先级属性确定操作命令的优先级顺序,以供执行模块基于优先级顺序调度操作命令。通过上述方式,设置操作命令的优先级属性,以供基于优先级属性确定操作命令的优先级顺序,进而根据该优先级顺序调度命令,相比按照先进先出的方式调度命令,本发明可提高固态硬盘命令调度的灵活性。
附图说明
图1为本发明实施例方案涉及的硬件运行环境的终端结构示意图;
图2为本发明命令调度方法第一实施例的流程示意图;
图3为本发明命令调度装置第一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:获取待处理的操作命令,通过FTL设置操作命令的优先级属性;通过FTL下发设置后的操作命令至SSD中对应的执行模块;根据优先级属性确定操作命令的优先级顺序,以供执行模块基于优先级顺序调度操作命令。通过上述方式,设置操作命令的优先级属性,以供基于优先级属性确定操作命令的优先级顺序,进而根据该优先级顺序调度命令,相比按照先进先出的方式调度命令,本发明可提高固态硬盘命令调度的灵活性。
本发明实施例考虑到,现有相关方案中,固态存储设备的控制策略中,基本上都是按照FIFO(First Input First Output)的设计思想进行管理,也就是先下的命令先执行,但是实际应用中可能有模型场景需要超前执行后发的一些命令,比如HOST(主机)下发了一批写命令,FTL(Flash Translation Layer,闪存转换层)也下了对应命令到相关模块中,此时HOST突然来了一个读操作,且这个读操作是比较紧急的,然而,这个读操作需要等待之前的写操作完成后才能执行。因此,现有固态硬盘的命令调度不够灵活。
本发明实施例涉及的技术用语:
SSD(Solid State Disk或Solid State Drive,简称SSD),又称固态驱动器,是用固态电子存储芯片阵列制成的硬盘。固态硬盘的存储介质分为两种,一种是采用闪存(FLASH芯片)作为存储介质,另外一种是采用DRAM作为存储介质,最新还有英特尔的XPoint颗粒技术。基于闪存的固态硬盘:采用FLASH芯片作为存储介质,它的外观可以被制作成多种模样,例如:笔记本硬盘、微硬盘、存储卡、U盘等样式。这种SSD固态硬盘最大的优点就是可以移动,而且数据保护不受电源控制,能适应于各种环境,适合于个人用户使用。寿命较长,根据不同的闪存介质有所不同。SLC闪存普遍达到上万次的PE,MLC可达到3000次以上,TLC也达到了1000次左右,最新的QLC也能确保300次的寿命,普通用户一年的写入量不超过硬盘的50倍总尺寸,即便最廉价的QLC闪存,也能提供6年的写入寿命。可靠性很高,高品质的家用固态硬盘可轻松达到普通家用机械硬盘十分之一的故障率。
NandFlash存储器是flash存储器的一种,其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。Nand-flash存储器具有容量较大,改写速度快等优点,适用于大量数据的存储,因而在业界得到了越来越广泛的应用,如嵌入式产品中包括数码相机、MP3随身听记忆卡、体积小巧的U盘等。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的终端结构示意图。
本发明实施例终端为命令调度设备,该命令调度设备可以为PC(personalcomputer,个人计算机)、微型计算机、笔记本电脑、服务器等具有处理功能的终端设备。
如图1所示,该终端可以包括:处理器1001,例如CPU(Central Processing Unit,中央处理器),通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及命令调度程序。
在图1所示的终端中,应用于固态硬盘SSD,所述SSD包括闪存转换层FTL,处理器1001可以用于调用存储器1005中存储的命令调度程序,并执行以下操作:
获取待处理的操作命令,通过所述FTL设置所述操作命令的优先级属性;
通过所述FTL下发设置后的操作命令至所述SSD中对应的执行模块;
根据所述优先级属性确定所述操作命令的优先级顺序,以供所述执行模块基于所述优先级顺序调度所述操作命令。
进一步地,处理器1001可以用于调用存储器1005中存储的命令调度程序,还执行以下操作:
通过所述FTL,基于所述操作命令的紧急程度和/或执行时间,设置所述操作命令的优先级属性。
进一步地,处理器1001可以用于调用存储器1005中存储的命令调度程序,还执行以下操作:
基于所述操作命令的紧急程度确定优先级范围;
基于所述操作命令的执行时间,确定所述优先级范围中对应的优先级字段;
基于所述优先级字段,设置所述操作命令的优先级属性。
进一步地,处理器1001可以用于调用存储器1005中存储的命令调度程序,还执行以下操作:
根据所述优先级属性和预设的优先级寄存器,确定所述操作命令的优先级顺序。
进一步地,处理器1001可以用于调用存储器1005中存储的命令调度程序,还执行以下操作:
若接收到优先级调整命令时,则基于所述优先级调整命令设置所述优先级寄存器。
进一步地,处理器1001可以用于调用存储器1005中存储的命令调度程序,还执行以下操作:
基于所述优先级顺序,确定所述操作命令的优先级是否大于所述执行模块的当前命令的优先级,所述当前命令为所述执行模块正在执行的命令;
若大于,则挂起所述当前命令,并控制所述执行模块执行所述操作命令;
在所述操作命令执行完成后,控制所述执行模块继续执行所述当前命令。
进一步地,处理器1001可以用于调用存储器1005中存储的命令调度程序,还执行以下操作:
获取主机下发的待处理的操作命令;或,
获取所述SSD中控制器触发的待处理的操作命令。
基于上述硬件结构,提出本发明命令调度方法的各个实施例。
本发明提供一种命令调度方法。
参照图2,图2为本发明命令调度方法第一实施例的流程示意图。
在本实施例中,所述命令调度方法应用于固态硬盘SSD,所述SSD包括闪存转换层FTL,所述命令调度方法包括:
步骤S10,获取待处理的操作命令,通过所述FTL设置所述操作命令的优先级属性;
在本实施例中,获取待处理的操作命令,通过FTL设置操作命令的优先级属性。其中,待处理的操作命令可以为Host(主机)下发的命令,也可以为固态硬盘SSD自身下发的命令,例如,SSD中控制器触发的待处理的操作命令。
其中,优先级属性可以根据实际需要进行设定。例如,采用数字设定优先级,优先级属性可以设定为1、2、3、4、...、n,n的大小为优先级划分总层次,其可以越大表示优先级越高,也可以越小表示优先级越高。又例如,采用字母设定优先级,优先级属性可以设定为a、b、c、d,其可以设定的字母数量由优先级划分总层次确定,其可以字母表前面的字母优先级高,也可以字母表后面的字母优先级高。当然,也可以采用其他方式设定优先级属性,此处不再一一赘述。
需要说明的是,FTL在下发操作命令至执行模块之前,需要先设置该操作命令的优先级属性,以供后续基于命令操作的优先级属性进行命令调度。
具体的,操作命令的优先级属性的设置方式包括:
方式一:基于所述操作命令的紧急程度,设置所述操作命令的优先级属性。
在方式一中,基于操作命令的紧急程度,设置操作命令的优先级属性。需要说明的是,可以通过预设策略,获取操作命令的紧急程度,其中,预设策略根据实际需要进行设定,例如,Host下发该操作命令的同时,下发该操作命令的紧急程度,此时,固态硬盘SSD可以获取该操作命令的紧急程度。
需要说明的是,操作命令的紧急程度越高,对应的优先级越高,此时,操作命令的优先级属性对应的优先级也应越高;操作命令的紧急程度越低,对应的优先级越低,此时,操作命令的优先级属性对应的优先级也应越低。
方式二:基于所述操作命令的执行时间,设置所述操作命令的优先级属性。
在方式二中,基于操作命令的执行时间,设置操作命令的优先级属性。其中,操作命令的执行时间为该操作命令在执行模块的执行时间。
需要说明的是,操作命令的执行时间越短,对应的优先级越高,此时,操作命令的优先级属性对应的优先级也应越高;操作命令的执行时间越长,对应的优先级越低,此时,操作命令的优先级属性对应的优先级也应越低。
方式三:基于所述操作命令的紧急程度和执行时间,设置所述操作命令的优先级属性。
在方式三中,基于操作命令的紧急程度和执行时间,设置操作命令的优先级属性。也就是说,本实施例不仅考虑操作命令的紧急程度,还考虑操作命令的执行时间。
需要说明的是,可以通过预设策略,获取操作命令的紧急程度,其中,预设策略根据实际需要进行设定,例如,Host下发该操作命令的同时,下发该操作命令的紧急程度,此时,固态硬盘SSD可以获取该操作命令的紧急程度。其中,操作命令的紧急程度越高,对应的优先级越高,此时,操作命令的优先级属性对应的优先级也应越高;操作命令的紧急程度越低,对应的优先级越低,此时,操作命令的优先级属性对应的优先级也应越低。
此外,还需要说明的是,操作命令的执行时间为该操作命令在执行模块的执行时间。其中,操作命令的执行时间越短,对应的优先级越高,此时,操作命令的优先级属性对应的优先级也应越高;操作命令的执行时间越长,对应的优先级越低,此时,操作命令的优先级属性对应的优先级也应越低。
在一实施例中,所述基于所述操作命令的紧急程度和执行时间,设置所述操作命令的优先级属性的步骤包括:
获取所述操作命令的紧急程度和执行时间;基于所述紧急程度确定第一优先级,并基于所述执行时间确定第二优先级;设置所述第一优先级的权重和所述第二优先级的权重;基于设置权重后的第一优先级和设置权重后的第二优先级,设置所述操作命令的优先级属性。其中,权重可以根据实际需求进行设置,例如紧急程度的权重为0.7,执行时间的权重为0.3;又例如,紧急程度的权重为0.8,执行时间的权重为0.2;通常紧急程度的权重比执行时间的权重高。
为便于理解,例如,紧急程度对应的第一优先级为3,执行时间对应的第二优先级为2,则最终确定的优先级为3*0.7+2*0.3=2.7。基于此,可以四舍五入得到3。
在另一实施例中,所述基于所述操作命令的紧急程度和执行时间,设置所述操作命令的优先级属性的步骤包括:
基于所述操作命令的紧急程度确定优先级范围;基于所述操作命令的执行时间,确定所述优先级范围中对应的优先级字段;基于所述优先级字段,设置所述操作命令的优先级属性。也就是说,由操作命令的紧急程度确定大优先级范围,再由操作命令的执行时间确定小优先级范围,进而设置对应的优先级属性。
其中,优先级范围为大优先级范围,该优先级范围可以划分为n个范围,例如,n为3,则共有三个优先级范围,例如第一个优先级范围{1、2、3},第二个优先级范围{4、5、6},第三个优先级范围{7、8、9}。此外,优先级字段可以为各优先级范围中的对应的优先级,例如,确定的优先级范围为{4、5、6},则优先级字段为4或5或6。可以理解,上述优先级范围和优先级字段除了可以通过数字表示,也可以通过字母或其它形式表示,此处不作限定。
在一实施例中,上述步骤S10中,获取待处理的操作命令,包括:
步骤A13,获取主机下发的待处理的操作命令;或,
步骤A14,获取所述SSD中控制器触发的待处理的操作命令。
在本实施例中,待处理的操作命令可以为主机下发的待处理的操作命令,也可以为SSD中控制器触发的待处理的操作命令。
步骤S20,通过所述FTL下发设置后的操作命令至所述SSD中对应的执行模块;
在本实施例中,通过FTL下发设置后的操作命令至SSD中对应的执行模块。其中,执行模块为执行操作命令的模块。
在一实施例中,执行模块可以为LUN(Logical Unit Number,逻辑单元)。其中,一SSD包括若干通道,即一个SSD包括一个或多个通道(channel),一通道包括若干LUN,即一条通道包括一个或多个LUN。其中,LUN可以为flash(闪存),该flash可以为NandFlash或NorFlash,LUN还可以为flash的page(页)或Block(块),或者其他执行单元,此处不作具体限定。此外,多个通道或多个LUN可并行操作。
步骤S30,根据所述优先级属性确定所述操作命令的优先级顺序,以供所述执行模块基于所述优先级顺序调度所述操作命令。
在本实施例中,根据优先级属性确定操作命令的优先级顺序,以供执行模块基于优先级顺序调度操作命令。其中,优先级顺序表示操作命令的执行顺序。
在一实施例中,所述根据所述优先级属性确定所述操作命令的优先级顺序的步骤包括:
根据所述优先级属性和优先级队列,确定所述操作命令的优先级顺序。其中,优先级队列为当前正在执行的命令或待执行命令的优先级属性的排序队列。该排序队列最高的优先级属性对应的操作命令正在执行,若该操作命令的优先级属性对应的优先级高于正在执行的命令的优先级,则将正在执行的命令挂起,进而执行该操作命令。
在另一实施例中,所述根据所述优先级属性确定所述操作命令的优先级顺序的步骤包括:
根据所述优先级属性和预设的优先级寄存器,确定所述操作命令的优先级顺序。其中,预设的优先级寄存器中设置有各优先级属性的优先级顺序,也就是说,通过优先级寄存器可以设定优先级属性对应的优先级。
例如,预设的优先级寄存器中优先级顺序为{1、2、3},若优先级属性为2,则该操作命令的优先级顺序排在第二位;预设的优先级寄存器中优先级顺序为{2、1、3},若优先级属性为2,则该操作命令的优先级顺序排在第一位。
本发明实施例提供一种命令调度方法,应用于固态硬盘SSD,SSD包括闪存转换层FTL,获取待处理的操作命令,通过FTL设置操作命令的优先级属性;通过FTL下发设置后的操作命令至SSD中对应的执行模块;根据优先级属性确定操作命令的优先级顺序,以供执行模块基于优先级顺序调度操作命令。通过上述方式,设置操作命令的优先级属性,以供基于优先级属性确定操作命令的优先级顺序,进而根据该优先级顺序调度命令,相比按照先进先出的方式调度命令,本发明实施例可提高固态硬盘命令调度的灵活性。
进一步地,基于上述第一实施例,提出本发明命令调度方法的第二实施例。
在本实施例中,上述步骤S10中,通过所述FTL设置所述操作命令的优先级属性,包括:
步骤A11,通过所述FTL,基于所述操作命令的紧急程度和/或执行时间,设置所述操作命令的优先级属性。
在本实施例中,基于操作命令的紧急程度和/或执行时间,设置操作命令的优先级属性。需要说明的是,可以通过预设策略,获取操作命令的紧急程度,其中,预设策略根据实际需要进行设定,例如,Host下发该操作命令的同时,下发该操作命令的紧急程度,此时,固态硬盘SSD可以获取该操作命令的紧急程度。其中,操作命令的紧急程度越高,对应的优先级越高,此时,操作命令的优先级属性对应的优先级也应越高;操作命令的紧急程度越低,对应的优先级越低,此时,操作命令的优先级属性对应的优先级也应越低。
此外,还需要说明的是,操作命令的执行时间为该操作命令在执行模块的执行时间。其中,操作命令的执行时间越短,对应的优先级越高,此时,操作命令的优先级属性对应的优先级也应越高;操作命令的执行时间越长,对应的优先级越低,此时,操作命令的优先级属性对应的优先级也应越低。
在一实施例中,基于操作命令的紧急程度,设置操作命令的优先级属性。需要说明的是,可以通过预设策略,获取操作命令的紧急程度,其中,预设策略根据实际需要进行设定,例如,Host下发该操作命令的同时,下发该操作命令的紧急程度,此时,固态硬盘SSD可以获取该操作命令的紧急程度。
需要说明的是,操作命令的紧急程度越高,对应的优先级越高,此时,操作命令的优先级属性对应的优先级也应越高;操作命令的紧急程度越低,对应的优先级越低,此时,操作命令的优先级属性对应的优先级也应越低。
在另一实施例中,基于操作命令的执行时间,设置操作命令的优先级属性。其中,操作命令的执行时间为该操作命令在执行模块的执行时间。
需要说明的是,操作命令的执行时间越短,对应的优先级越高,此时,操作命令的优先级属性对应的优先级也应越高;操作命令的执行时间越长,对应的优先级越低,此时,操作命令的优先级属性对应的优先级也应越低。
在另一实施例中,基于操作命令的紧急程度和执行时间,设置操作命令的优先级属性。也就是说,本实施例不仅考虑操作命令的紧急程度,还考虑操作命令的执行时间。
在一实施例中,所述基于所述操作命令的紧急程度和执行时间,设置所述操作命令的优先级属性的步骤包括:
获取所述操作命令的紧急程度和执行时间;基于所述紧急程度确定第一优先级,并基于所述执行时间确定第二优先级;设置所述第一优先级的权重和所述第二优先级的权重;基于设置权重后的第一优先级和设置权重后的第二优先级,设置所述操作命令的优先级属性。其中,权重可以根据实际需求进行设置,例如紧急程度的权重为0.7,执行时间的权重为0.3;又例如,紧急程度的权重为0.8,执行时间的权重为0.2;通常紧急程度的权重比执行时间的权重高。
为便于理解,例如,紧急程度对应的第一优先级为3,执行时间对应的第二优先级为2,则最终确定的优先级为3*0.7+2*0.3=2.7。基于此,可以四舍五入得到3。
在另一实施例中,所述基于所述操作命令的紧急程度和执行时间,设置所述操作命令的优先级属性的步骤包括:
步骤A111,基于所述操作命令的紧急程度确定优先级范围;
步骤A112,基于所述操作命令的执行时间,确定所述优先级范围中对应的优先级字段;
步骤A113,基于所述优先级字段,设置所述操作命令的优先级属性。
需要说明的是,由操作命令的紧急程度确定大优先级范围,再由操作命令的执行时间确定小优先级范围,进而设置对应的优先级属性。
其中,优先级范围为大优先级范围,该优先级范围可以划分为n个范围,例如,n为3,则共有三个优先级范围,例如第一个优先级范围{1、2、3},第二个优先级范围{4、5、6},第三个优先级范围{7、8、9}。此外,优先级字段可以为各优先级范围中的对应的优先级,例如,确定的优先级范围为{4、5、6},则优先级字段为4或5或6。可以理解,上述优先级范围和优先级字段除了可以通过数字表示,也可以通过字母或其它形式表示,此处不作限定。
本实施例中,基于操作命令的紧急程度和/或执行时间,设置操作命令的优先级属性,可以提高优先级属性设置的准确性,进而提高固态硬盘命令调度的准确性。
进一步地,基于上述第一实施例,提出本发明命令调度方法的第三实施例。
在本实施例中,上述步骤S10中,根据所述优先级属性确定所述操作命令的优先级顺序,包括:
步骤A12,根据所述优先级属性和预设的优先级寄存器,确定所述操作命令的优先级顺序。
在本实施例中,根据优先级属性和预设的优先级寄存器,确定操作命令的优先级顺序。其中,预设的优先级寄存器中设置有各优先级属性的优先级顺序,也就是说,通过优先级寄存器可以设定优先级属性对应的优先级。
例如,预设的优先级寄存器中优先级顺序为{1、2、3},若优先级属性为2,则该操作命令的优先级顺序排在第二位;预设的优先级寄存器中优先级顺序为{2、1、3},若优先级属性为2,则该操作命令的优先级顺序排在第一位。
可以理解,优先级寄存器可以重新设定,也就是说,用户可以根据自身需求重新设定优先级寄存器的优先级顺序。
进一步地,在上述步骤A12之前,所述命令调度方法还包括:
步骤A40,若接收到优先级调整命令时,则基于所述优先级调整命令设置所述优先级寄存器。
在本实施例中,若接收到优先级调整命令时,则基于所述优先级调整命令设置所述优先级寄存器。具体的,FTL在下SQ给每个模块的时候设置好属性,当一旦需要调整执行优先级的时候,则设置优先级寄存器,以达到所需要的优先级目标。
其中,优先级调整命令中携带有优先级顺序的设定规则,基于该设定规则,可以设置该优先级寄存器。后续,基于该设置的优先级寄存器,确定操作命令的优先级顺序。
本实施例中,根据优先级属性和预设的优先级寄存器,确定操作命令的优先级顺序,可以准确确定操作命令的优先级顺序,进而提高固态硬盘命令调度的准确性。此外,预设的优先级寄存器可以重新设置,从而可以更加灵活设置操作命令的优先级顺序,从而进一步提高固态硬盘命令调度的灵活性。
进一步地,基于上述第一实施例,提出本发明命令调度方法的第四实施例。
在本实施例中,所述命令调度方法还包括:
步骤A50,基于所述优先级顺序,确定所述操作命令的优先级是否大于所述执行模块的当前命令的优先级,所述当前命令为所述执行模块正在执行的命令;
步骤A60,若大于,则挂起所述当前命令,并控制所述执行模块执行所述操作命令;
步骤A70,在所述操作命令执行完成后,控制所述执行模块继续执行所述当前命令。
在本实施例中,基于所述优先级顺序,确定所述操作命令的优先级是否大于所述执行模块的当前命令的优先级,所述当前命令为所述执行模块正在执行的命令;若大于,则挂起所述当前命令,并控制所述执行模块执行所述操作命令;在所述操作命令执行完成后,控制所述执行模块继续执行所述当前命令。其中,当前命令为执行模块正在执行的命令,此时操作命令的优先级比当前命令高,因此,挂起当前命令,从而执行操作命令,以在操作命令执行完后,再返回当前命令的执行流程。
本实施例中,虽然操作命令是后下发的命令,但是该操作命令可以优先执行又不影响原来执行的命令,从而进一步提高固态硬盘命令调度的灵活性。
本发明还提供一种命令调度装置。
参照图3,图3为本发明命令调度装置第一实施例的功能模块示意图。
在本实施例中,所述命令调度装置包括:
获取模块10,用于获取待处理的操作命令,通过所述FTL设置所述操作命令的优先级属性;
下发模块20,用于通过所述FTL下发设置后的操作命令至所述SSD中对应的执行模块;
确定模块30,用于根据所述优先级属性确定所述操作命令的优先级顺序,以供所述执行模块基于所述优先级顺序调度所述操作命令。
其中,上述命令调度装置的各虚拟功能模块存储于图1所示命令调度设备的存储器1005中,用于实现命令调度程序的所有功能;各模块被处理器1001执行时,可实现命令调度功能。
进一步地,所述获取模块10包括:
属性设置单元,用于通过所述FTL,基于所述操作命令的紧急程度和/或执行时间,设置所述操作命令的优先级属性。
进一步地,所述属性设置单元包括:
范围确定子单元,用于基于所述操作命令的紧急程度确定优先级范围;
字段确定子单元,用于基于所述操作命令的执行时间,确定所述优先级范围中对应的优先级字段;
属性设置子单元,用于基于所述优先级字段,设置所述操作命令的优先级属性。
进一步地,所述确定模块30包括:
顺序确定单元,用于根据所述优先级属性和预设的优先级寄存器,确定所述操作命令的优先级顺序。
进一步地,所述确定模块30还包括:
寄存器设置单元,用于若接收到优先级调整命令时,则基于所述优先级调整命令设置所述优先级寄存器。
进一步地,所述命令调度装置还包括:
优先级确定模块,用于基于所述优先级顺序,确定所述操作命令的优先级是否大于所述执行模块的当前命令的优先级,所述当前命令为所述执行模块正在执行的命令;
命令挂起模块,用于若大于,则挂起所述当前命令,并控制所述执行模块执行所述操作命令;
命令执行模块,用于在所述操作命令执行完成后,控制所述执行模块继续执行所述当前命令。
进一步地,所述获取模块10包括:
命令获取单元,用于获取主机下发的待处理的操作命令;或,
命令获取单元,还用于获取所述SSD中控制器触发的待处理的操作命令。
其中,上述命令调度装置中各个模块的功能实现与上述命令调度方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质上存储有命令调度程序,所述命令调度程序被处理器执行时实现如以上任一项实施例所述的命令调度方法的步骤。
本发明计算机可读存储介质的具体实施例与上述命令调度方法各实施例基本相同,在此不作赘述。
本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序产品被处理器执行时实现如以上任一项实施例所述的命令调度方法的步骤。
本发明计算机程序产品的具体实施例与上述命令调度方法各实施例基本相同,在此不作赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种命令调度方法,其特征在于,应用于固态硬盘SSD,所述SSD包括闪存转换层FTL,所述命令调度方法包括以下步骤:
获取待处理的操作命令,通过所述FTL设置所述操作命令的优先级属性;
通过所述FTL下发设置后的操作命令至所述SSD中对应的执行模块;
根据所述优先级属性确定所述操作命令的优先级顺序,以供所述执行模块基于所述优先级顺序调度所述操作命令;
所述通过所述FTL设置所述操作命令的优先级属性的步骤包括:
通过所述FTL获取所述操作命令的紧急程度和执行时间;
基于所述紧急程度确定第一优先级,并基于所述执行时间确定第二优先级;
设置所述第一优先级的权重和所述第二优先级的权重;并基于设置权重后的第一优先级和设置权重后的第二优先级,设置所述操作命令的优先级属性,其中,所述第一优先级的权重大于所述第二优先级的权重;
所述通过所述FTL设置所述操作命令的优先级属性的步骤还包括:
通过所述FTL,基于所述操作命令的紧急程度和/或执行时间,设置所述操作命令的优先级属性;
所述基于所述操作命令的紧急程度和执行时间,设置所述操作命令的优先级属性的步骤包括:
基于所述操作命令的紧急程度确定优先级范围;
基于所述操作命令的执行时间,确定所述优先级范围中对应的优先级字段;
基于所述优先级字段,设置所述操作命令的优先级属性。
2.如权利要求1所述的命令调度方法,其特征在于,所述根据所述优先级属性确定所述操作命令的优先级顺序的步骤包括:
根据所述优先级属性和预设的优先级寄存器,确定所述操作命令的优先级顺序。
3.如权利要求2所述的命令调度方法,其特征在于,所述根据所述优先级属性和预设的优先级寄存器,确定所述操作命令的优先级顺序的步骤之前,还包括:
若接收到优先级调整命令时,则基于所述优先级调整命令设置所述优先级寄存器。
4.如权利要求1所述的命令调度方法,其特征在于,所述命令调度方法还包括:
基于所述优先级顺序,确定所述操作命令的优先级是否大于所述执行模块的当前命令的优先级,所述当前命令为所述执行模块正在执行的命令;若大于,则挂起所述当前命令,并控制所述执行模块执行所述操作命令;在所述操作命令执行完成后,控制所述执行模块继续执行所述当前命令。
5.如权利要求1至4中任一项所述的命令调度方法,其特征在于,所述获取待处理的操作命令的步骤包括:
获取主机下发的待处理的操作命令;或,
获取所述SSD中控制器触发的待处理的操作命令。
6.一种命令调度装置,其特征在于,部署于固态硬盘SSD,所述SSD包括闪存转换层FTL,所述命令调度装置包括:
获取模块,用于获取待处理的操作命令,通过所述FTL设置所述操作命令的优先级属性;
下发模块,用于通过所述FTL下发设置后的操作命令至所述SSD中对应的执行模块;
确定模块,用于根据所述优先级属性确定所述操作命令的优先级顺序,以供所述执行模块基于所述优先级顺序调度所述操作命令;
所述下发模块,还用于通过所述FTL获取所述操作命令的紧急程度和执行时间;基于所述紧急程度确定第一优先级,并基于所述执行时间确定第二优先级;设置所述第一优先级的权重和所述第二优先级的权重;并基于设置权重后的第一优先级和设置权重后的第二优先级,设置所述操作命令的优先级属性,其中,所述第一优先级的权重大于所述第二优先级的权重;
所述下发模块,还用于通过所述FTL,基于所述操作命令的紧急程度和/或执行时间,设置所述操作命令的优先级属性;
所述下发模块,还用于基于所述操作命令的紧急程度确定优先级范围;基于所述操作命令的执行时间,确定所述优先级范围中对应的优先级字段;基于所述优先级字段,设置所述操作命令的优先级属性。
7.一种命令调度设备,其特征在于,所述命令调度设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的命令调度程序,所述命令调度程序被所述处理器执行时实现如权利要求1至5中任一项所述的命令调度方法的步骤。
8.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的命令调度方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111244213.5A CN114047875B (zh) | 2021-10-25 | 2021-10-25 | 命令调度方法、装置、设备及计算机程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111244213.5A CN114047875B (zh) | 2021-10-25 | 2021-10-25 | 命令调度方法、装置、设备及计算机程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114047875A CN114047875A (zh) | 2022-02-15 |
CN114047875B true CN114047875B (zh) | 2024-04-19 |
Family
ID=80205943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111244213.5A Active CN114047875B (zh) | 2021-10-25 | 2021-10-25 | 命令调度方法、装置、设备及计算机程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114047875B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115834643B (zh) * | 2023-02-20 | 2023-05-02 | 广州机智云物联网科技有限公司 | 一种面向物联网设备数据互通的系统及方法 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102469602A (zh) * | 2010-11-19 | 2012-05-23 | 普天信息技术研究院有限公司 | 一种用户多业务调度方法 |
CN103281794A (zh) * | 2013-06-09 | 2013-09-04 | 重庆邮电大学 | 体域网中紧急数据优先传输调度方法 |
CN105867844A (zh) * | 2016-03-28 | 2016-08-17 | 联想(北京)有限公司 | 一种命令控制方法及存储设备 |
CN107092445A (zh) * | 2017-05-31 | 2017-08-25 | 郑州云海信息技术有限公司 | 一种多通道ssd固态盘io调度方法及装置 |
CN107748545A (zh) * | 2017-09-26 | 2018-03-02 | 武汉华星光电技术有限公司 | 一种搬送指令优先级控制的方法及系统 |
CN107943719A (zh) * | 2017-11-28 | 2018-04-20 | 杭州电子科技大学 | 一种基于请求分类的闪存转换层控制方法 |
CN107967224A (zh) * | 2017-10-12 | 2018-04-27 | 记忆科技(深圳)有限公司 | 一种固态硬盘提升性能一致性的方法 |
CN107967125A (zh) * | 2017-12-20 | 2018-04-27 | 北京京存技术有限公司 | 闪存转换层的管理方法、装置及计算机可读存储介质 |
CN108415664A (zh) * | 2017-02-09 | 2018-08-17 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
KR20190090614A (ko) * | 2018-01-25 | 2019-08-02 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
CN110874335A (zh) * | 2018-08-30 | 2020-03-10 | 爱思开海力士有限公司 | 数据存储装置、其操作方法以及具有该装置的存储系统 |
CN111694652A (zh) * | 2020-06-24 | 2020-09-22 | 中国平安人寿保险股份有限公司 | 任务动态调度方法、装置、计算机设备及存储介质 |
CN112114973A (zh) * | 2020-09-29 | 2020-12-22 | 中国银行股份有限公司 | 一种数据处理方法及装置 |
CN112328386A (zh) * | 2021-01-05 | 2021-02-05 | 北京国科环宇科技股份有限公司 | 操作系统进程调度方法、装置、介质和电子设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9317204B2 (en) * | 2013-11-14 | 2016-04-19 | Sandisk Technologies Inc. | System and method for I/O optimization in a multi-queued environment |
US10025531B2 (en) * | 2015-09-10 | 2018-07-17 | HoneycombData Inc. | Reducing read command latency in storage devices |
US10025522B2 (en) * | 2016-04-15 | 2018-07-17 | Sandisk Technologies Llc | Memory interface command queue throttling |
US10365994B2 (en) * | 2017-04-24 | 2019-07-30 | Facebook, Inc. | Dynamic scheduling of test cases |
-
2021
- 2021-10-25 CN CN202111244213.5A patent/CN114047875B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102469602A (zh) * | 2010-11-19 | 2012-05-23 | 普天信息技术研究院有限公司 | 一种用户多业务调度方法 |
CN103281794A (zh) * | 2013-06-09 | 2013-09-04 | 重庆邮电大学 | 体域网中紧急数据优先传输调度方法 |
CN105867844A (zh) * | 2016-03-28 | 2016-08-17 | 联想(北京)有限公司 | 一种命令控制方法及存储设备 |
CN108415664A (zh) * | 2017-02-09 | 2018-08-17 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN107092445A (zh) * | 2017-05-31 | 2017-08-25 | 郑州云海信息技术有限公司 | 一种多通道ssd固态盘io调度方法及装置 |
CN107748545A (zh) * | 2017-09-26 | 2018-03-02 | 武汉华星光电技术有限公司 | 一种搬送指令优先级控制的方法及系统 |
CN107967224A (zh) * | 2017-10-12 | 2018-04-27 | 记忆科技(深圳)有限公司 | 一种固态硬盘提升性能一致性的方法 |
CN107943719A (zh) * | 2017-11-28 | 2018-04-20 | 杭州电子科技大学 | 一种基于请求分类的闪存转换层控制方法 |
CN107967125A (zh) * | 2017-12-20 | 2018-04-27 | 北京京存技术有限公司 | 闪存转换层的管理方法、装置及计算机可读存储介质 |
KR20190090614A (ko) * | 2018-01-25 | 2019-08-02 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
CN110874335A (zh) * | 2018-08-30 | 2020-03-10 | 爱思开海力士有限公司 | 数据存储装置、其操作方法以及具有该装置的存储系统 |
CN111694652A (zh) * | 2020-06-24 | 2020-09-22 | 中国平安人寿保险股份有限公司 | 任务动态调度方法、装置、计算机设备及存储介质 |
CN112114973A (zh) * | 2020-09-29 | 2020-12-22 | 中国银行股份有限公司 | 一种数据处理方法及装置 |
CN112328386A (zh) * | 2021-01-05 | 2021-02-05 | 北京国科环宇科技股份有限公司 | 操作系统进程调度方法、装置、介质和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114047875A (zh) | 2022-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018082570A1 (zh) | I/o请求的调度方法及装置 | |
US9996460B2 (en) | Storage device, system including storage device and method of operating the same | |
CN102939596B (zh) | 用于多核处理器的多线程应用识别存储器调度方案 | |
CN110633048B (zh) | 闪存存储装置的命名空间操作方法 | |
WO2018175064A1 (en) | System and method for processing and arbitrating submission and completion queues | |
US9417684B2 (en) | Mechanism for facilitating power and performance management of non-volatile memory in computing devices | |
US20160055082A1 (en) | Memory allocating method and electronic device supporting the same | |
CN103809917A (zh) | 用于存储器的工作调度方法及其存储系统 | |
CN107967224A (zh) | 一种固态硬盘提升性能一致性的方法 | |
CN107870866B (zh) | Io命令调度方法与nvm接口控制器 | |
CN114047875B (zh) | 命令调度方法、装置、设备及计算机程序产品 | |
CN106933315A (zh) | 一种终端温度调节的方法和终端 | |
CN108572932B (zh) | 多平面nvm命令融合方法与装置 | |
CN105511806A (zh) | 处理写请求的方法和移动终端 | |
CN112711387A (zh) | 缓冲区容量的调整方法、装置、电子设备及可读存储介质 | |
CN107919143B (zh) | 固态存储设备及其温度控制方法 | |
US10275007B2 (en) | Performance management for a multiple-CPU platform | |
US8997106B2 (en) | Method of using tickets and use cost values to permit usage of a device by a process | |
Kong et al. | Wear-aware out-of-order dynamic scheduling for NAND flash-based consumer electronics | |
CN117555598A (zh) | 调度方法与装置 | |
CN106775894A (zh) | 一种应用程序的运行方法及终端 | |
US20140136748A1 (en) | System and method for performance optimization in usb operations | |
US11733926B2 (en) | Command sequencing for read operations by solid-state drives | |
CN113934286A (zh) | 功耗控制方法、装置、设备及计算机程序产品 | |
CN107918522B (zh) | 固态存储设备及其功率控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |