首页 / 专利库 / 单位和数量 / 阈值 / 命令处理方法、装置和存储设备

命令处理方法、装置和存储设备

阅读:715发布:2023-01-26

专利汇可以提供命令处理方法、装置和存储设备专利检索,专利查询,专利分析的服务。并且本 发明 实施例 公开了一种命令处理方法、装置和存储设备。方法包括:判断连续执行读命令的次数是小于切换 阈值 还是等于切换阈值;当所述连续执行读命令的次数小于所述切换阈值时,执行所述读命令队列中的读命令,该读命令队列用于存储接收的主机发送的读命令;当所述连续执行读命令的次数等于所述切换阈值时,执行所述写命令队列中的写命令,该写命令队列用于存储接收的主机发送的写命令。本发明实施例的技术方案有效降低了写命令对读命令的影响,从而提高了混合IOPS,保证了读操作的性能。,下面是命令处理方法、装置和存储设备专利的具体信息内容。

1.一种命令处理方法,其特征在于,包括:
判断连续执行读命令的次数是小于切换阈值还是等于切换阈值;
当所述连续执行读命令的次数小于所述切换阈值时,执行所述读命令队列中的读命令,所述读命令队列用于存储接收的主机发送的读命令;
当所述连续执行读命令的次数等于所述切换阈值时,执行所述写命令队列中的写命令,所述写命令队列用于存储接收的主机发送的写命令。
2.根据权利要求1所述的方法,其特征在于,所述执行所述读命令队列中的读命令包括:执行所述读命令队列中的一个读命令;
所述执行所述读命令队列中的读命令之后还包括:
对所述连续执行读命令的次数进行更新处理。
3.根据权利要求1所述的方法,其特征在于,所述执行所述写命令队列中的写命令包括:执行所述写命令队列中的一个写命令;
所述执行所述写命令队列中的写命令之后还包括:
对所述连续执行读命令的次数进行清零处理。
4.根据权利要求1所述的方法,其特征在于,所述当所述连续执行读命令的次数等于所述切换阈值时,执行所述写命令队列中的写命令包括:
当所述连续执行读命令的次数等于所述切换阈值时,查询所述写命令队列是否为空;
当查询出所述写命令队列不为空时,执行所述写命令队列中的写命令。
5.一种命令处理装置,其特征在于,包括:
设置模,用于预先设置读命令队列和写命令队列,所述读命令队列用于存储接收的主机发送的读命令,所述写命令队列用于存储接收的主机发送的写命令;
判断模块,用于判断连续执行读命令的次数小于切换阈值还是等于切换阈值;
执行模块,用于当所述判断模块判断出连续执行读命令的次数小于所述切换阈值时执行所述读命令队列中的读命令,或者,当所述判断模块判断出连续执行读命令的次数等于所述切换阈值时执行所述写命令队列中的写命令。
6.根据权利要求5所述的装置,其特征在于,还包括:
更新模块,用于当所述执行模块执行所述读命令队列中的一个读命令之后,对所述连续执行读命令的次数进行更新处理,并将经过更新处理的连续执行读命令的次数发送给所述判断模块。
7.根据权利要求5所述的装置,其特征在于,还包括:
清零模块,用于当所述执行模块执行所述写命令队列中的一个写命令之后,对所述连续执行读命令的次数进行清零处理,并将经过清零处理的连续执行读命令的次数发送给所述判断模块。
8.根据权利要求5所述的装置,其特征在于,还包括:
第一查询模块,用于查询所述读命令队列是否为空;
当所述第一查询模块查询出所述读命令队列不为空时,由所述判断模块判断所述连续执行读命令的次数小于切换阈值还是等于切换阈值。
9.根据权利要求5所述的装置,其特征在于,还包括:
第二查询模块,用于当所述判断模块判断出连续执行读命令的次数等于所述切换阈值时,查询所述写命令队列是否为空;
当所述第二查询模块查询出所述写命令队列不为空时,由所述执行模块执行所述写命令队列中的写命令。
10.一种存储设备,其特征在于,包括权利要求5至9任意一项所述的命令处理装置。

说明书全文

技术领域

发明涉及存储技术领域,特别涉及一种命令处理方法、装置和存储设备

背景技术

主机可以对基于硬盘的存储设备进行读操作或者写操作。在第一方直接存储器访问(First-Party Direct Memory Access,简称:FPDMA)模式下,主机会向存储设备下达多个命令,存储设备将接收的命令按接收顺序依次缓存在一个命令队列中,在执行命令时存储设备按接收顺序从命令队列中依次取出缓存的命令并执行取出的命令。在实际应用中,主机向存储设备下达的命令不是单一的读命令或者写命令,而是随机下达读命令或者写命令。也就是说命令队列中缓存的命令通常既包括读命令又包括写命令。
每秒输入/输出次数(Input/output per second,简称IOPS)是衡量存储设备性能的重要参数。由于存储设备执行读命令的时间开销远远小于执行写命令的时间开销,因此读命令的IOPS应高于写命令的IOPS。但是,存储设备一次只能执行一个命令,由于执行一次写命令需要的时间开销较长,因此当执行命令队列中的写命令时,位于写命令之后的读命令等待的时间也会比较长,这会降低读命令的IOPS,从而导致降低混合IOPS。

发明内容

本发明实施例提供一种命令处理方法、装置和存储设备,从而提高混合IOPS。
本发明实施例提供了一种命令处理方法,包括:
判断连续执行读命令的次数是小于切换阈值还是等于切换阈值;
当所述连续执行读命令的次数小于所述切换阈值时,执行所述读命令队列中的读命令,所述读命令队列用于存储接收的主机发送的读命令;
当所述连续执行读命令的次数等于所述切换阈值时,执行所述写命令队列中的写命令,所述写命令队列用于存储接收的主机发送的写命令。
本发明实施例还提供了一种命令处理装置,包括:
设置模,用于预先设置读命令队列和写命令队列,所述读命令队列用于存储接收的主机发送的读命令,所述写命令队列用于存储接收的主机发送的写命令;
判断模块,用于判断连续执行读命令的次数小于切换阈值还是等于切换阈值;
执行模块,用于当所述判断模块判断出连续执行读命令的次数小于所述切换阈值时执行所述读命令队列中的读命令,或者当所述判断模块判断出连续执行读命令的次数等于所述切换阈值时执行所述写命令队列中的写命令。
本发明实施例还提供了一种存储设备,包括上述命令处理装置。
本发明实施例的技术方案中,将读命令和写命令分别存储在读命令队列中和写命令队列中,执行命令时,通过判断连续执行读命令的次数与切换阈值的关系来确定所执行的命令类型,当连续执行读命令的次数小于切换阈值时,执行读命令队列中的读命令,当连续执行读命令的次数等于切换阈值时才执行写命令,因此,可能在执行多个读命令后才执行一个写命令,有效降低了写命令对读命令的影响,从而提高了混合IOPS,保证了读操作的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的命令处理方法的流程图
图2为本发明实施例二提供的命令处理方法的流程图;
图3为本发明实施例三提供的命令处理装置的结构示意图;
图4为本发明实施例四提供的命令处理装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例一提供的命令处理方法的流程图,需要说明的是,相比于现有技术中仅采用一个命令队列混合存储读命令和写命令,本实施例中分别设置有一个读命令队列和一个写命令队列,读命令队列用于存储接收的主机发送的读命令,写命令队列用于存储所接收的主机发送的写命令。读命令队列和写命令队列均可采用先入先出队列(First Input First Output,简称:FIFO)。进入读命令队列的命令的标记值范围可以为0到31,也就是说读命令队列的队列深度可以为32。同样,进入写命令队列的命令的标记值范围也可以为0到31,则读命令队列的队列深度也可以为32。
如图1所示,该命令处理方法包括:
步骤101、判读连续执行读命令的次数小于切换阈值还是等于切换阈值,如果连续执行读命令的次数小于切换阈值则执行步骤102,如果连续执行读命令的次数等于切换阈值则执行步骤103;
本实施例中,每执行一个读命令队列中的读命令,就可更新一次连续执行读命令的次数,具体地,可以将连续执行读命令的次数加1。因此,连续执行读命令的次数为连续执行读命令次数的累加值。
可以预先设置切换阈值。具体地,可以预先统计一段时间内主机发送的读命令的数量和写命令的数量,根据统计出的读命令的数量和写命令的数量的比值确定切换阈值。例如,在一段时间内,统计出的读命令的数量为700,统计出的写命令的数量为300,则读命令的数量与写命令的数量的比值为2.3。当计算出的比值为整数时,可直接采用该比值作为切换阈值;当计算出的比值为小数时,可采用该比值的整数部分加1后得到的整数为切换阈值。在上述实例中,计算出的比值为2.3,则可以采用整数3作为切换阈值。切换阈值是根据一段时间内统计出的读命令的数量和写命令的数量确定的,实际应用中可根据需要每隔一定的时间重新确定一次切换阈值,因此切换阈值是可以动态调整的。
步骤102、执行读命令队列中的读命令,所述读命令队列用于存储接收的主机发送的读命令;
具体地,执行的读命令为位于读命令队列队首的读命令。
步骤103、执行写命令队列中的写命令,所述写命令队列用于存储接收的主机发送的写命令。
具体地,执行的写命令为位于写命令队列队首的写命令。本实施例中,当连续执行读命令的次数等于切换阈值时,停止执行读命令队列中的读命令,执行写命令队列中的写命令。换言之,本实施例中,当连续执行了多个读命令并且执行的读命令的次数等于切换阈值时,才执行写命令队列中的一个写命令。
本实施例的技术方案中,将读命令和写命令分别存储在读命令队列中和写命令队列中,在执行命令时,首先判断连续执行读命令的次数是否小于切换预置,如果连续执行读命令的次数小于切换阈值,则执行读命令队列中的读命令,当连续执行读命令的次数等于切换阈值时才执行写命令,因此,可能会在连续执行多个读命令后才执行一个写命令,有效降低了写命令对读命令的影响,从而提高了混合IOPS,保证了读操作的性能。
图2为本发明实施例二提供的命令处理方法的流程图,如图2所示,该方法包括:
步骤201、预先设置读命令队列和写命令队列,该读命令队列用于存储主机发送的读命令,该写命令队列用于存储主机发送的写命令;
本实施例中,预先设置读命令队列和写命令队列,并接收主机发送的命令。识别接收到的命令为读命令还是写命令,如果为读命令则将接收到的命令存储到读命令队列中,具体地,可以将该接收到的命令插入到当前读命令队列的队尾,从而将该接收到的命令存储到读命令队列中;如果为写命令则将接收到的命令存储到写命令队列中,具体地,可以将该接收到的命令插入到当前写命令队列的队尾,从而将接收到的命令存储到写命令队列中。
步骤202、查询读命令队列是否为空,如果是则执行步骤206,否则执行步骤203;
步骤203、判断连续执行读命令的次数小于切换阈值还是等于切换阈值,如果小于切换阈值则执行步骤204,如果等于切换阈值则执行步骤206;
步骤204、执行读命令队列中的读命令,并执行步骤205;
具体地,可以执行读命令队列中的一个读命令。
步骤205、对连续执行读命令的次数进行更新处理,并继续执行步骤202;
具体的,每执行一个读命令队列中的读命令,就可更新一次连续执行读命令的次数,具体地,可以将连续执行读命令的次数加1。因此,连续执行读命令的次数为连续执行读命令次数的累加值。当然,可以理解的是,还可以每执行完一个读命令将所述连续执行读命令的次数增加一个固定值以对所述执行读命令的次数进行更新。
步骤206、查询写命令队列是否为空,如果是则执行步骤208,否则执行步骤207;
步骤207、执行写命令队列中的写命令,并执行步骤208;
具体地,可以执行写命令队列中的一个写命令。
步骤208、对连续执行读命令的次数进行清零处理,并继续执行步骤202。
具体的,由于执行写命令的时间较长,因此,本实施例中,每执行写队列中的一个写命令,就将连续执行读命令的次数进行清零,并返回执行步骤202,通过对连续执行读命令的次数与切换阈值的关系判断是执行读队列中的读命令还是开始执行写队列中的写命令。
本实施例的技术方案中,将读命令和写命令分别存储在读命令队列中和写命令队列中,当连续执行读命令的次数等于切换阈值时才执行一个写命令,因此,可能连续执行多个读命令,才执行一个写命令,有效降低了写命令对读命令的影响,从而提高了混合IOPS,保证了存储设备读操作的性能。本实施例中通过统计一段时间内的读命令数量和写命令数量确定切换阈值,该切换阈值为连续执行的读命令的数量,通过设置切换阈值可以保证存储设备均衡的执行读命令和写命令。本实施例的技术方案实现简单,资源开销小,灵活性强,能够很好的应用于多种读命令数量和写命令数量的比例不同的情况特别是当用户对读操作性能要求较高时,本实施例的技术方案可以很好的满足用户的需要。
图3为本发明实施例三提供的命令处理装置的结构示意图,如图3所示,该装置包括设置模块11、判断模块12和执行模块13。
设置模块11,用于预先设置读命令队列和写命令队列,该读命令队列用于存储接收的主机发送的读命令,该写命令队列用于存储接收的主机发送的写命令。
判断模块12,用于判断连续执行读命令的次数小于切换阈值还是等于切换阈值;
其中,对于连续执行读命令的次数以及切换阈值的具体描述可参见上述实施例一,具体不再赘述。
执行模块13,用于当判断模块12判断出连续执行读命令的次数小于切换阈值时执行读命令队列中的读命令,或者当判断模块12判断出连续执行读命令的次数等于切换阈值时执行写命令队列中的写命令。
本实施例的技术方案中,设置模块预先设置读命令队列和写命令队列,并将读命令和写命令分别存储在读命令队列中和写命令队列中,当判断模块判断出连续执行读命令的次数小于切换阈值时由执行模块优先执行读队列中的读命令,当判断模块判断出连续执行读命令的次数等于切换阈值时才由执行模块执行写命令,因此,有效降低了写命令对读命令的影响,从而提高了混合IOPS,保证了读操作的性能。
图4为本发明实施例四提供的命令处理装置的结构示意图,如图4所示,该装置包括设置模块11、判断模块12和执行模块13,具体描述可参见实施例三,此处不再赘述。进一步地,本实施例中的装置还包括:
更新模块14,用于当执行模块13执行读命令队列中的一个读命令之后,对连续执行读命令的次数进行更新处理,并将经过更新处理的连续执行读命令的次数发送给判断模块12。
进一步地,本实施例中的装置还包括:
清零模块15,用于当执行模块13执行写命令队列中的一个写命令之后,对连续执行读命令的次数进行清零处理,并将经过清零处理的连续执行读命令的次数发送给判断模块12。
进一步地,本实施例中的装置还可以包括:
第一查询模块16,用于查询读命令队列是否为空。
具体的,当第一查询模块16查询出读命令队列不为空时,触发判断模块12,由判断模块12判断连续执行读命令的次数小于切换阈值还是等于切换阈值。
进一步地,本实施例中的装置还可以包括:
第二查询模块17,用于当第一查询模块16查询出读命令队列为空时,查询所述写命令队列是否为空。
具体的,当第二查询模块17查询出写命令队列不为空时,触发执行模块13,由执行模块13执行写命令队列中的命令,并触发清零模块15,由清零模块15对连续执行读命令的次数进行清零处理。当第二查询模块17查询出写命令队列为空时触发清零模块15,由清零模块15对连续执行读命令的次数进行清零处理。
进一步地,当判断模块12判断出连续执行读命令的次数等于切换阈值时,触发第二查询模块17。当第二查询模块17查询出写命令队列不为空时,再由执行模块13执行写命令队列中的命令。
本发明实施例中的主机与存储设备通信的装置可应用于各类存储设备中,例如:串行高级技术附件(Serial Advanced Technology Attachment,以下简称:SATA)存储设备、小型计算机系统接口(Small Computer SystemInterface,以下简称:SCSI)存储设备等。
本实施例的技术方案中,设置模块预先设置读命令队列和写命令队列,并将读命令和写命令分别存储在读命令队列中和写命令队列中,当判断模块判断出连续执行读命令的次数小于切换阈值时,由执行模块优先执行多个读命令,当判断模块判断出连续执行读命令的次数等于切换阈值时才由执行模块执行写命令,有效降低了写命令对读命令的影响,从而提高了混合IOPS,保证了存储设备读操作的性能。本实施例中通过统计一段时间内的读命令数量和写命令数量确定切换阈值,该切换阈值为连续执行的读命令的数量,通过设置切换阈值可以保证存储设备均衡的执行读命令和写命令。本实施例的技术方案实现简单,资源开销小,灵活性强,能够很好的应用于多种读命令数量和写命令数量的比例不同的情况。特别是当用户对读操作性能要求较高时,本实施例的技术方案可以很好的满足用户的需要。
本发明实施例还提供了一种存储设备,该存储设备包括上述实施例三或者实施例四中的命令处理的装置,此处不再赘述。
本实施例中的存储设备将读命令和写命令分别存储在读命令队列中和写命令队列中,当判断出连续执行读命令的次数小于切换阈值时,优先执行读队列中的读命令,当判断出连续执行读命令的次数等于切换阈值时才执行写命令,因此,可能在执行多个读命令后才执行一个写命令,有效降低了写命令对读命令的影响,从而提高了混合IOPS,保证了存储设备读操作的性能。本实施例中通过统计一段时间内的读命令数量和写命令数量确定切换阈值,该切换阈值为连续执行的读命令的数量,通过设置切换阈值可以保证存储设备均衡的执行读命令和写命令。本实施例的技术方案实现简单,资源开销小,灵活性强,能够很好的应用于多种读命令数量和写命令数量的比例不同的情况。特别是当用户对读操作性能要求较高时,本实施例的技术方案可以很好的满足用户的需要。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM(Read-Only Memory,只读存储记忆体)、RAM(RandomAccess Memory,随机存储记忆体)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案而非对其进行限制,尽管参照较佳实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者等同替换亦不能使修改后的技术方案脱离本发明技术方案的精神和范围。
相关专利内容
标题 发布/更新时间 阅读量
具有权重的阈值计算 2020-05-12 843
阈值选择方法及设备 2020-05-13 747
一种可编程阈值电路 2020-05-13 12
MOS管阈值扩展电路和阈值扩展方法 2020-05-12 320
MOS管阈值扩展电路和阈值扩展方法 2020-05-12 361
阈值开关器件 2020-05-12 248
多阈值存储器 2020-05-11 496
多阈值比较电路 2020-05-11 663
阈值的测试和确定 2020-05-12 207
轮胎阈值阀 2020-05-11 822
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈