硬盘操作命令的执行方法、硬盘及存储介质技术

技术编号:20796570 阅读:20 留言:0更新日期:2019-04-06 10:13
本发明专利技术实施例公开了一种硬盘操作命令的执行方法、硬盘及存储介质。该方法应用于硬盘,包括控制器和至少两个闪存颗粒组,每个闪存颗粒组包括至少一个闪存颗粒,每个闪存颗粒包括多个物理块,每个闪存颗粒组中的任一闪存颗粒组成一个LUN,同一闪存颗粒组中位于不同LUN中的闪存颗粒不同,方法包括:接收操作命令后,确认空闲状态的目标LUN;从目标LUN中确认待执行操作命令时所访问的目标物理块;保存操作命令至目标物理块所属的闪存颗粒对应的等待处理队列中;在目标LUN中每个闪存颗粒分别对应的等待处理队列中等待处理的操作命令的数量大于预设阈值时,修改目标LUN的工作状态为非空闲状态。能够降低I/O读命令的时延。

Execution Method, Hard Disk and Storage Media of Hard Disk Operating Command

The embodiment of the invention discloses an execution method of a hard disk operation command, a hard disk and a storage medium. This method is applied to hard disks, including controllers and at least two flash particle groups. Each flash particle group includes at least one flash particle group, each flash particle group includes multiple physical blocks, and each flash particle group consists of one LUN. Different flash particles in different LUNs are located in the same flash particle group. The method includes: after receiving operation commands, confirming empty space. Target LUN in idle state; target physical block accessed when confirming operation command from target LUN; save operation command to wait processing queue corresponding to flash particles belonging to target physical block; modify the working state of target LUN when the number of operation commands waiting for processing in corresponding waiting processing queue of each flash particle in target LUN is larger than the preset threshold. Non-idle state. It can reduce the delay of I/O command reading.

【技术实现步骤摘要】
硬盘操作命令的执行方法、硬盘及存储介质
本专利技术涉及通信
,尤其涉及一种硬盘操作命令的执行方法、硬盘及存储介质。
技术介绍
固态硬盘(Solid-StateDisk,SSD)包括控制器和闪存阵列,闪存阵列中包括多个闪存颗粒。每个闪存颗粒内部由成千上万个大小相同的物理块组成,物理块的大小一般在数百KB到数MB之间,在每一个物理块的内部,又分成若干个大小相同的页,页的大小一般为4KB或8KB。在写入数据之前,控制器以物理块为粒度清空物理块中的数据。在写入数据时,控制器以页为粒度写入数据至闪存阵列。在存储领域,数据清空和数据写入这两个动作合起来称作数据擦写(Program/Erase,P/E)。每个物理块中的P/E次数有限,当某个物理块的P/E次数达到上限后,就无法保证该物理块能够继续有效地存取数据。为了避免物理块因P/E次数达到上限而失效,也为了加快固态硬盘对写请求的响应速度,固态硬盘采用地址空间虚拟化的方式进行管理,所有闪存颗粒在逻辑上被划分为多个组,由不同组中任一闪存颗粒中的一个物理块组成一个逻辑块,每个逻辑块中的物理块为不同闪存颗粒中的不同物理块。当有新数据写入时,固态硬盘在确定写入新数据需要访问的逻辑块后,不会选择该逻辑块中的保存旧数据的页所属的物理块保存数据,而是选择被清空的页所属的物理块来保存新数据,同时通过映射表记录逻辑块的地址和被清空的页所属的物理块的地址之间的映射关系。保存旧数据的页称为垃圾页,固态硬盘会按照回收策略读取垃圾页,以及回收垃圾页,即将垃圾页中的数据清空,例如将垃圾页中的数据删除或移动至其他的冗余闪存颗粒或冗余物理块中,以便下次写入数据至被清空的页中。固态硬盘接收到操作命令后,通过控制器确认操作命令执行时所访问的物理块,将操作命令保存至物理块所属的闪存颗粒对应的等待处理队列中,控制器按照操作命令存储的先后顺序依次处理闪存颗粒对应的等待处理队列中的操作命令。操作命令的类型有四种,分别是输入输出(InputandOutput,I/O)读命令、I/O写命令、垃圾回收(GabageCollection,GC)写命令和GC读命令。其中,I/O读命令用于指示读取I/O读命令执行时所访问的物理块中的数据,I/O写命令用于指示在I/O写命令执行时所访问的物理块中写入数据,GC读命令用于指示读取GC读命令执行时所访问的物理块中的数据,GC写命令用于指示在I/O写命令执行时所访问的物理块中写入GC读命令所读取的数据。其中,执行I/O读命令所访问的物理块是由客户端确定的,控制器对于执行I/O读命令所访问的物理块没有其他选择。如果保存I/O读命令之前,在闪存颗粒对应的等待处理队列中已经保存了多个其他操作命令,控制器必须处理完成其他操作命令后才可以执行I/O读命令,从而增大了客户端的I/O读命令的时延,进而降低了客户端的通信效率。
技术实现思路
本申请提供了一种硬盘操作命令的执行方法、硬盘及存储介质,能够减少I/O读命令的时延,提高客户端的通信效率。第一方面,本申请提供了一种硬盘操作命令的执行方法,应用于硬盘,硬盘包括控制器和至少两个闪存颗粒组,每个闪存颗粒组包括至少一个闪存颗粒,每个闪存颗粒包括多个物理块,每个闪存颗粒组中的任一闪存颗粒组成一个逻辑单元(LogicalUnitNumber,LUN),同一闪存颗粒组中位于不同LUN中的闪存颗粒不同,方法由控制器执行,包括:接收操作命令后,确认目标LUN,目标LUN的工作状态为空闲状态,目标LUN处于空闲状态时,目标LUN中每个闪存颗粒分别对应的等待处理队列中等待处理的操作命令的数量小于或等于预设阈值;从目标LUN中确认待执行操作命令时所访问的目标物理块;保存操作命令至目标物理块所属的闪存颗粒对应的等待处理队列中;在目标LUN中每个闪存颗粒分别对应的等待处理队列中等待处理的操作命令的数量大于预设阈值时,修改目标LUN的工作状态为非空闲状态。本申请中,硬盘中控制器在接收操作命令后,可以先确认出工作状态为空闲状态的目标LUN,然后从工作状态为空闲状态的目标LUN中确认出待执行操作命令时所访问的目标物理块。由于目标LUN处于空闲状态时,目标LUN中每个闪存颗粒分别对应的等待处理队列中等待处理的操作命令的数量小于或等于预设阈值,所以目标LUN中每个物理块所属的闪存颗粒对应的等待处理队列中等待处理的操作命令的数量小于或等于预设阈值,如此本申请中,控制器将所属颗粒对应的等待处理队列中保存的操作命令小于或等于预设阈值的物理块作为目标物理块,可以使I/O读命令所访问的目标物理块所属闪存颗粒对应的等待处理队列中包括的其他操作命令数量较少,从而可以降低客户端的I/O读命令的时延,提高客户端的通信效率。结合第一方面,在第一方面的第一种可能的实施方式中,每个闪存颗粒组中的任一闪存颗粒中的任一物理块组成一个逻辑块,同一闪存颗粒在不同的逻辑块中的物理块不同,操作命令包括I/O写命令、垃圾回收写命令或垃圾回收读命令,确认工作状态为空闲状态的目标LUN之前,还包括:确认目标逻辑块,目标逻辑块的操作状态为空闲状态,目标逻辑块处于空闲状态时,目标逻辑块中每个物理块所属的闪存颗粒分别对应的等待处理队列中不包括待访问目标逻辑块中的任意物理块时所要执行的其他操作命令,目标LUN由目标逻辑块中每个物理块所属的闪存颗粒组成。结合第一方面或上述可能的实施方式,在第一方面的第二种可能的实施方式中,操作命令为I/O写命令或垃圾回收写命令时,目标LUN中的目标物理块为新块。结合第一方面或上述可能的实施方式,在第一方面的第三种可能的实施方式中,操作命令包括I/O写命令、垃圾回收写命令或垃圾回收读命令,确认目标LUN,包括:查询LUN状态表,确认工作状态参数的值表示空闲状态的目标LUN,LUN状态表包括硬盘中各LUN的工作状态参数,LUN的工作状态参数用于指示LUN的工作状态。结合第一方面或上述可能的实施方式,在第一方面的第四种可能的实施方式中,如果预设阈值为零,还包括:执行操作命令,以及修改目标逻辑块的操作状态为非空闲状态。结合第一方面或上述可能的实施方式,在第一方面的第五种可能的实施方式中,如果预设阈值为零,还包括:在操作命令执行结束后,修改目标逻辑块的操作状态为空闲状态。结合第一方面或上述可能的实施方式,在第一方面的第六种可能的实施方式中,还包括:在目标LUN中的所有逻辑块的操作状态为空闲状态时,将目标LUN的工作状态参数的值修改为空闲状态。第二方面,本申请提供了一种硬盘,装置设置于硬盘中,硬盘包括控制器和至少两个闪存颗粒组,每个闪存颗粒组包括至少一个闪存颗粒,每个闪存颗粒包括多个物理块,每个闪存颗粒组中的任一闪存颗粒组成一个LUN,同一闪存颗粒组中位于不同LUN中的闪存颗粒不同;控制器包括:确认单元,用于确认单元,用于接收操作命令后,确认目标LUN,目标LUN的工作状态为空闲状态,目标LUN处于空闲状态时,目标LUN中每个闪存颗粒分别对应的等待处理队列中等待处理的操作命令的数量小于或等于预设阈值;确认单元还用于从目标LUN中确认待执行操作命令时所访问的目标物理块;保存单元,用于保存操作命令至目标物理块所属的闪存颗粒对应的等待处理队列中;修改单元,用于在目标LUN中每个闪存颗粒分别对应的等待本文档来自技高网
...

【技术保护点】
1.一种硬盘操作命令的执行方法,其特征在于,应用于硬盘,所述硬盘包括控制器和至少两个闪存颗粒组,每个闪存颗粒组包括至少一个闪存颗粒,每个闪存颗粒包括多个物理块,每个闪存颗粒组中的任一闪存颗粒组成一个逻辑单元LUN,同一闪存颗粒组中位于不同LUN中的闪存颗粒不同,所述方法由所述控制器执行,包括:接收操作命令后,确认目标LUN,所述目标LUN的工作状态为空闲状态,所述目标LUN处于所述空闲状态时,所述目标LUN中每个所述闪存颗粒分别对应的等待处理队列中等待处理的操作命令的数量小于或等于预设阈值;从所述目标LUN中确认待执行所述操作命令时所访问的目标物理块;保存所述操作命令至所述目标物理块所属的所述闪存颗粒对应的等待处理队列中;在所述目标LUN中每个所述闪存颗粒分别对应的等待处理队列中等待处理的操作命令的数量大于所述预设阈值时,修改所述目标LUN的工作状态为非空闲状态。

【技术特征摘要】
1.一种硬盘操作命令的执行方法,其特征在于,应用于硬盘,所述硬盘包括控制器和至少两个闪存颗粒组,每个闪存颗粒组包括至少一个闪存颗粒,每个闪存颗粒包括多个物理块,每个闪存颗粒组中的任一闪存颗粒组成一个逻辑单元LUN,同一闪存颗粒组中位于不同LUN中的闪存颗粒不同,所述方法由所述控制器执行,包括:接收操作命令后,确认目标LUN,所述目标LUN的工作状态为空闲状态,所述目标LUN处于所述空闲状态时,所述目标LUN中每个所述闪存颗粒分别对应的等待处理队列中等待处理的操作命令的数量小于或等于预设阈值;从所述目标LUN中确认待执行所述操作命令时所访问的目标物理块;保存所述操作命令至所述目标物理块所属的所述闪存颗粒对应的等待处理队列中;在所述目标LUN中每个所述闪存颗粒分别对应的等待处理队列中等待处理的操作命令的数量大于所述预设阈值时,修改所述目标LUN的工作状态为非空闲状态。2.如权利要求1所述的方法,其特征在于,每个闪存颗粒组中的任一闪存颗粒中的任一所述物理块组成一个逻辑块,同一所述闪存颗粒在不同的所述逻辑块中的所述物理块不同,所述操作命令包括I/O写命令、垃圾回收写命令或垃圾回收读命令,所述确认工作状态为空闲状态的目标LUN之前,还包括:确认目标逻辑块,所述目标逻辑块的操作状态为空闲状态,所述目标逻辑块处于所述空闲状态时,所述目标逻辑块中每个物理块所属的闪存颗粒分别对应的等待处理队列中不包括待访问所述目标逻辑块中的任意物理块时所要执行的其他操作命令,所述目标LUN由所述目标逻辑块中每个物理块所属的闪存颗粒组成。3.如权利要求1或2所述的方法,其特征在于,所述操作命令为所述I/O写命令或垃圾回收写命令时,所述目标LUN中的所述目标物理块为新块。4.如权利要求1-3任一所述的方法,其特征在于,所述操作命令包括I/O写命令、垃圾回收写命令或垃圾回收读命令,所述确认目标LUN,包括:查询LUN状态表,确认工作状态参数的值表示空闲状态的目标LUN,所述LUN状态表包括所述硬盘中各LUN的工作状态参数,所述LUN的工作状态参数用于指示所述LUN的工作状态。5.如权利要求1-4任一所述的方法,其特征在于,如果所述预设阈值为零,还包括:执行所述操作命令,以及修改所述目标逻辑块的操作状态为非空闲状态。6.如权利要求1-5任一所述的方法,其特征在于,如果所述预设阈值为零,还包括:在所述操作命令执行结束后,修改所述目标逻辑块的操作状态为空闲状态。7.如权利要求4-6任一所述的方法,其特征在于,还包括:在所述目标LUN中的所有逻辑块的操作状态为空闲状态时,将所述目标LUN的工作状态参数的值修改为空闲状态。8.一种硬盘,其特征在于,所述硬盘包括控制器和至少两个闪存颗粒组,每个闪存颗粒组包括至少一个闪存颗粒,每个闪存颗粒包括多个物理块,每个闪存颗粒组中的任一闪存颗粒组成一个LUN,同一闪存颗粒组中位于不同LUN中的闪存颗粒不同;所述控制器包括:确认单元,用于接收操作命令后,确认目标LUN,所述目标LUN的工作状态为空闲状态,所述...

【专利技术属性】
技术研发人员:褚小伟赵献明陈昊
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1