CN117118924B - 网络提交队列监测装置、方法、计算机设备及存储介质 - Google Patents
网络提交队列监测装置、方法、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN117118924B CN117118924B CN202311379232.8A CN202311379232A CN117118924B CN 117118924 B CN117118924 B CN 117118924B CN 202311379232 A CN202311379232 A CN 202311379232A CN 117118924 B CN117118924 B CN 117118924B
- Authority
- CN
- China
- Prior art keywords
- command
- target
- network
- counter
- time
- 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
- 238000012806 monitoring device Methods 0.000 title claims abstract description 51
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000012545 processing Methods 0.000 claims abstract description 198
- 238000006243 chemical reaction Methods 0.000 claims abstract description 132
- 238000007689 inspection Methods 0.000 claims abstract description 58
- 238000012544 monitoring process Methods 0.000 claims description 71
- 238000012795 verification Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 8
- 230000002776 aggregation Effects 0.000 claims description 7
- 238000004220 aggregation Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 5
- 238000012549 training Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 3
- 238000006116 polymerization reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/56—Queue scheduling implementing delay-aware scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6275—Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种网络提交队列监测装置、方法、计算机设备及存储介质,涉及计算机技术领域,该装置包括:巡检计数器、计数更新器、时间计数器、计数寄存器文件堆和比较器;计数更新器,在命令转换模块获取到各网络提交队列的非易失性内存主机控制器接口规范的待处理命令时,基于时间计数器获取各待处理命令对应的到达时间,将对应的到达时间更新至计数寄存器文件堆中对应的计数寄存器中;巡检计数器,在计数寄存器文件堆中确定目标计数寄存器和对应的目标到达时间;比较器,在根据当前时间和目标到达时间确定目标处理命令处于超时处理状态时,向命令转换模块发出超时使能信号。本发明实现减少命令保留等待的时长,提高磁盘阵列的性能。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种网络提交队列监测装置、方法、计算机设备及存储介质。
背景技术
近年来随着存储技术的高速发展,NVMe(Non-Volatile Memory Express,非易失性内存主机控制器接口规范)设备的使用场景已经越来越广泛,该NVMe标准协议具有低延时、高并发以及低功耗的特性,是一种高性能、高可扩展的存储协议,用于连接主机控制器和内存子系统。
为了将原始的NVMe命令转换为RAID(Redundant Arrays of IndependentDrives,冗余独立驱动器阵列)磁盘阵列的读写命令,发送原始NVMe命令的主机控制器一般会将命令先发送给命令代理模块,命令代理模块根据一定规则再将命令派发给命令转换模块,命令转换模块会将NVMe读写命令转换为RAID磁盘阵列的读写操作。
通常命令代理模块根据系统情况轮询切换SQID,将不同SQID中的NVMe命令发送给命令转换模块。在切换SQID通道的过程中,命令转换模块为了判断当前SQID最后一个NVMe命令是否与下一次该SQID的第一个NVMe命令连续以便聚合,会将当前SQID最后一个NVMe命令保留至其内部,由此产生NVMe命令保留等待问题,即如果本轮SQID切换刚好是主机控制器下发的SQID的最后一组NVMe命令,那么前期保留在命令转换模块中的NVMe命令就无法被下发执行,严重影响RAID磁盘阵列的性能。
发明内容
本申请的目的是提供一种网络提交队列监测装置、方法、计算机设备及存储介质,用以解决现有技术中NVMe命令保留等待,严重影响RAID磁盘阵列的性能的缺陷,实现减少NVMe命令保留等待的时长,提高RAID磁盘阵列的性能。
本申请提供一种网络提交队列监测装置,包括:巡检计数器、计数更新器、时间计数器、计数寄存器文件堆和比较器;
所述计数更新器,与所述时间计数器和所述计数寄存器文件堆连接,用于在确定命令转换模块获取到各网络提交队列的非易失性内存主机控制器接口规范的待处理命令的情况下,基于所述时间计数器获取各所述待处理命令对应的到达时间,并将各所述待处理命令对应的到达时间更新至所述计数寄存器文件堆中各所述待处理命令所属的网络提交队列对应的计数寄存器中;
所述巡检计数器,与所述计数寄存器文件堆和所述比较器连接,用于在所述计数寄存器文件堆中确定目标计数寄存器和所述目标计数寄存器中目标处理命令对应的目标到达时间;
所述比较器,与所述时间计数器连接,用于获取所述时间计数器记录的当前时间以及所述巡检计数器确定的所述目标到达时间,将所述当前时间与所述目标到达时间进行比较,在根据比较结果确定所述目标处理命令处于超时处理状态的情况下,向所述命令转换模块发出所述目标处理命令对应的超时使能信号;
其中,所述超时使能信号用于提示所述命令转换模块执行所述目标处理命令;所述目标处理命令包括所述目标计数寄存器对应的目标网络提交队列的非易失性内存主机控制器接口规范的处理命令。
根据本申请提供的一种网络提交队列监测装置,所述比较器包括差值比较单元和超时比较单元;
所述差值比较单元,与所述时间计数器和所述巡检计数器连接,用于计算所述当前时间与所述目标到达时间之间的时间差值;
所述超时比较单元,与所述差值比较单元连接,用于根据所述时间差值确定所述目标处理命令的执行状态,在根据所述执行状态确定所述目标处理命令处于超时处理状态的情况下,向所述命令转换模块发出所述超时使能信号。
根据本申请提供的一种网络提交队列监测装置,所述装置还包括超时配置寄存器;
所述超时配置寄存器,与所述巡检计数器和所述超时比较单元连接,用于获取所述巡检计数器确定的所述目标计数寄存器,根据所述目标计数寄存器对应的目标网络提交队列的索引,确定所述目标网络提交队列对应的最大心跳超时值;
所述超时比较单元,还用于将所述时间差值与所述最大心跳超时值进行比较,在根据比较结果确定所述时间差值大于所述最大心跳超时值的情况下,确定所述目标处理命令处于超时处理状态;在根据比较结果确定所述时间差值小于或等于所述最大心跳超时值的情况下,确定所述目标处理命令处于未超时处理状态。
根据本申请提供的一种网络提交队列监测装置,所述装置还包括校准器;
所述校准器,与所述差值比较单元和所述超时比较单元连接,用于在根据所述时间差值,确定所述时间计数器发生循环计数的情况下,根据所述时间计数器对应的最大循环计数周期,对所述时间差值进行校准;
所述超时比较单元,还用于根据校准后的时间差值确定所述目标处理命令的执行状态。
根据本申请提供的一种网络提交队列监测装置,所述校准器,还用于:
在确定所述时间差值大于或等于0的情况下,获取所述时间计数器的事件日志,在根据所述事件日志确定在目标时间段内所述时间计数器的时间计数值未被初始化的情况下,确定所述时间计数器未发生循环计数;
在确定所述时间差值小于0的情况下,确定所述时间计数器发生循环计数;
其中,所述目标时间段包括位于所述当前时间和所述目标到达时间之间的时间段。
根据本申请提供的一种网络提交队列监测装置,所述计数寄存器文件堆中包括多个顺序编号的计数寄存器;
所述巡检计数器包括第一计数器、第二计数器和巡检单元;
所述第一计数器,用于记录上一巡检周期的目标计数寄存器的巡检时间,在确定所述巡检时间与所述当前时间之间的时间差值大于或等于预设巡检间隔的情况下,控制所述第二计数器的计数值累计加1,得到更新后的计数值;
所述巡检单元,用于将所述计数寄存器文件堆中与所述更新后的计数值匹配的编号对应的计数寄存器作为当前周期的目标计数寄存器。
根据本申请提供的一种网络提交队列监测装置,所述第一计数器的计数位数大于所述第二计数器的计数位数;
所述第二计数器的计数位数是根据所述网络提交队列的数量进行确定的。
根据本申请提供的一种网络提交队列监测装置,所述巡检计数器,还用于在获取到所述目标计数寄存器的情况下,将所述目标处理命令同步至所述命令转换模块,以供所述命令转换模块接收到所述超时使能信号的情况下,执行所述目标处理命令。
根据本申请提供的一种网络提交队列监测装置,所述计数更新器包括第一输入端口和第二输入端口;
所述第一输入端口,用于接收各所述网络提交队列的验证信息;
所述第二输入端口,用于在获取到各所述网络提交队列的非易失性内存主机控制器接口规范的待处理命令的情况下,基于所述时间计数器获取各所述待处理命令对应的到达时间;
所述计数更新器,还用于根据所述验证信息,确定各所述网络提交队列的有效性,并根据所述有效性和各所述待处理命令对应的到达时间,对所述计数寄存器文件堆中各所述网络提交队列对应的计数寄存器进行更新。
根据本申请提供的一种网络提交队列监测装置,所述计数更新器,还用于:
在根据所述有效性确定任一网络提交队列处于无效状态的情况下,停止对所述计数寄存器文件堆中所述任一网络提交队列对应的计数寄存器进行更新,并将所述任一网络提交队列对应的计数寄存器标识为失效状态;
在根据所述有效性确定所述任一网络提交队列处于有效状态的情况下,将所述任一网络提交队列的非易失性内存主机控制器接口规范的处理命令对应的到达时间更新至所述计数寄存器文件堆中所述任一网络提交队列对应的计数寄存器中,并将所述任一网络提交队列对应的计数寄存器标识为有效状态。
根据本申请提供的一种网络提交队列监测装置,所述装置还包括心跳监测使能寄存器和使能输出单元;
所述心跳监测使能寄存器,与所述使能输出单元连接,用于接收输入指令,根据所述输入指令,向所述使能输出单元输出控制信号;所述输入指令包括用于控制所述使能输出单元的输出状态的操作指令;
所述使能输出单元,与所述比较器连接,用于在确定所述控制信号为启用信号,且接收到所述比较器输出的所述超时使能信号的情况下,向所述命令转换模块输出所述超时使能信号;在确定所述控制信号为禁用信号,和/或未接收到所述比较器输出的所述超时使能信号的情况下,禁止向所述命令转换模块输出所述超时使能信号。
本申请还提供一种基于如上述任一项所述的网络提交队列监测装置的网络提交队列监测方法,包括:
在确定命令转换模块获取到各网络提交队列的非易失性内存主机控制器接口规范的待处理命令的情况下,基于所述时间计数器获取各所述待处理命令对应的到达时间,并将各所述待处理命令对应的到达时间更新至所述计数寄存器文件堆中各所述待处理命令所属的网络提交队列对应的计数寄存器中;
在所述计数寄存器文件堆中确定目标计数寄存器和所述目标计数寄存器中目标处理命令对应的目标到达时间;
将所述当前时间与所述目标到达时间进行比较,在根据比较结果确定所述目标处理命令处于超时处理状态的情况下,向所述命令转换模块发出所述目标处理命令对应的超时使能信号;
其中,所述超时使能信号用于提示所述命令转换模块执行所述目标处理命令;所述目标处理命令包括所述目标计数寄存器对应的目标网络提交队列的非易失性内存主机控制器接口规范的处理命令。
根据本申请提供的一种网络提交队列监测方法,所述将所述当前时间与所述目标到达时间进行比较,在根据比较结果确定所述目标处理命令处于超时处理状态的情况下,向所述命令转换模块发出所述目标处理命令对应的超时使能信号,包括:
根据所述目标计数寄存器的编号,确定所述目标计数寄存器对应的最大心跳超时值;
计算所述当前时间与所述目标到达时间之间的时间差值;
将所述时间差值与所述最大心跳超时值进行比较,在根据比较结果确定所述时间差值大于所述最大心跳超时值的情况下,确定所述目标处理命令处于超时处理状态,向所述命令转换模块发出所述超时使能信号。
本申请还提供一种计算机设备,包括如上述任一项所述网络提交队列监测装置和命令转换模块;
所述命令转换模块与所述网络提交队列监测装置连接。
根据本申请提供的一种计算机设备,所述计算机设备还包括主机控制器、命令代理模块和磁盘阵列;
所述主机控制器,与所述命令代理模块连接,用于向所述命令代理模块发送各网络提交队列的非易失性内存主机控制器接口规范的待处理命令;
所述命令代理模块,与所述命令转换模块连接,用于按照目标派发方式,将各所述网络提交队列的非易失性内存主机控制器接口规范的待处理命令派发至所述命令转换模块;
所述命令转换模块,与所述磁盘阵列连接,用于在确定任一所述网络提交队列的非易失性内存主机控制器接口规范的待处理命令满足聚合条件,和/或接收到所述任一所述网络提交队列的非易失性内存主机控制器接口规范的待处理命令对应的超时使能信号的情况下,在所述磁盘阵列执行所述任一所述网络提交队列的非易失性内存主机控制器接口规范的待处理命令。
本申请还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述网络提交队列监测方法。
本申请还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述网络提交队列监测方法。
本申请提供的网络提交队列监测装置、方法、计算机设备及存储介质,通过计数更新器将命令转换模块获取到各网络提交队列的非易失性内存主机控制器接口规范的待处理命令对应的到达时间实时更新至计数寄存器文件堆中各网络提交队列对应的计数寄存器中,同时基于巡检计数器,循环在计数寄存器文件堆中选择目标计数寄存器,基于比较器,对目标计数寄存器中目标处理命令对应的目标到达时间与当前时间进行比较,以在根据比较结果确定目标处理命令处于超时处理状态的情况下,向命令转换模块发出所述目标处理命令对应的超时使能信号,由此提示命令转换模块及时执行该目标处理命令,以简单便捷地消除该目标处理命令长时间等待于命令转换模块的情况,从而提高命令转换模块的可靠性,以进一步提高RAID磁盘阵列的性能。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的网络提交队列监测装置的结构示意图之一;
图2是本申请提供的网络提交队列监测装置的结构示意图之二;
图3是本申请提供的网络提交队列监测装置的结构示意图之三;
图4是本申请提供的网络提交队列监测装置的结构示意图之四;
图5是本申请提供的网络提交队列监测装置的监测步骤的流程示意图;
图6是本申请提供的网络提交队列监测方法的流程示意图;
图7是本申请提供的计算机设备的结构示意图。
附图标记:
10:巡检计数器;20:计数更新器;30:时间计数器;40:计数寄存器文件堆;41:计数寄存器;42:寄存器选择单元;50:比较器;51:差值比较单元;52:超时比较单元;60:超时配置寄存器;61:配置文件存储单元;62:配置文件选择单元;70:校准器;71:加法单元;72:校准选择单元;80:心跳监测使能寄存器;90:使能输出单元;100:流水线寄存器;110:主机控制器;120:命令代理模块;130:命令转换模块;140:磁盘阵列;150:网络提交队列监测装置。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
相关技术中,为了将原始的NVMe命令转换为RAID磁盘阵列的读写命令,发送原始NVMe命令的主机控制器一般会将NVMe命令先发送给命令代理模块,命令代理根据一定规则再将命令派发给命令转换模块,命令转换模块会将NVMe命令转换为RAID磁盘阵列的读写操作。在这个过程中,命令转换模块往往会采用原始NVMe读写命令聚合操作来进一步提高系统读写RAID磁盘阵列的性能。此时会存在一个问题,命令代理模块一般不会就一个SQID中的命令持续送入命令转换模块,它会根据系统情况轮询切换SQID,将不同SQID中的NVMe命令发送给命令转换模块。在切换SQID通道的过程中,命令转换模块为了判断当前SQID最后一个NVMe命令是否与下一次该SQID的第一个NVMe命令连续以便聚合,会将当前SQID最后一个NVMe命令保留至其内部,此时就有保留等待问题,即如果本轮SQID切换刚好是主机控制器下发的SQID的最后一组NVMe命令,那么前期保留在命令转换模块中的NVMe命令就无法被下发执行,严重影响RAID磁盘阵列的读写性能。
为了解决上述问题,本实施例根据上述命令转换模块聚合操作特征,提出了一种网络提交队列监测装置,该装置可循环监测多网络提交队列中各NVMe命令的到达时间,当到达时间与当前时间之间的时间差值超出配置的最大心跳监测超时值时,向命令转换模块发起提示,以提示命令转换模块及时执行该NVMe命令的转换操作,从而提高命令转换模块的可靠性,以进一步提高RAID磁盘阵列的性能。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的网络提交队列监测装置进行详细地说明。
图1为本实施例提供的网络提交队列监测装置的结构示意图之一,如图1所示,该装置包括巡检计数器10、计数更新器20、时间计数器30、计数寄存器文件堆40和比较器50;
所述计数更新器20,与所述时间计数器30和所述计数寄存器文件堆40连接,用于在确定命令转换模块获取到各网络提交队列的非易失性内存主机控制器接口规范的待处理命令的情况下,基于所述时间计数器30获取各所述待处理命令对应的到达时间,并将各所述待处理命令对应的到达时间更新至所述计数寄存器文件堆40中各所述待处理命令所属的网络提交队列对应的计数寄存器41中;
所述巡检计数器10,与所述计数寄存器文件堆40和所述比较器50连接,用于在所述计数寄存器文件堆40中确定目标计数寄存器和所述目标计数寄存器中目标处理命令对应的目标到达时间;
所述比较器50,与所述时间计数器30连接,用于获取所述时间计数器30记录的当前时间以及所述巡检计数器10确定的所述目标到达时间,将所述当前时间与所述目标到达时间进行比较,在根据比较结果确定所述目标处理命令处于超时处理状态的情况下,向所述命令转换模块发出所述目标处理命令对应的超时使能信号;
其中,所述超时使能信号用于提示所述命令转换模块执行所述目标处理命令;所述目标处理命令包括所述目标计数寄存器对应的目标网络提交队列的非易失性内存主机控制器接口规范的处理命令。
其中,巡检计数器10内部可以包括一种或多种自增计数器,以在监测装置启动后,通过一种或多种自增计数器进行目标计数寄存器的选择以及进行目标计数寄存器中目标处理命令对应的目标到达时间的输出。
时间计数器30,其内部配置有自增计数器,在监测装置启动后随时间的推移,自动进行自增计数,以实时产生当前时间,由此为队列监测提供相对时间基准。该时间计数器30的计数位数、计数器类型以及计数时间宽度可以根据监测需求进行适应性地确定,如时间计数器30为32位无符号循环加法器,且宽度为8.59s。
计数寄存器文件堆40中包括多个按照从1到N顺序编号的多个计数寄存器41和用于将巡检计数器10选择的目标计数寄存器中目标处理命令对应的目标到达时间输出至比较器50的寄存器选择单元42。每一计数寄存器41的编号与每一网络提交队列SQID的索引一一对应关联。其中,N为正整数,且N为计数寄存器文件堆40中所包含的计数寄存器41的数量,具体可以根据所需进行心跳监测的网络提交队列的数量进行适应性地确定,也即本实施例中的计数寄存器文件堆40可以根据所需进行心跳监测的网络提交队列进行适应性地配置,由此提高网络提交队列监测的可配置性以及易于操作性。其中,网络提交队列的数量可以根据实际需求进行配置,如N=64。
比较器50内部可以包括一种或多种比较单元,以通过一种或多种比较单元,对当前时间计数器30产生的当前时间和选出的目标计数寄存器保存的历史计数值(也即到达时间)进行比较,以进行使能信号输出。
可选地,在确定命令转换模块获取到各SQID的NVMe的待处理命令的情况下,表征各SQID的NVMe的待处理命令已传入命令转换模块或者正在命令转换模块正在处理各SQID的NVMe的待处理命令,为了进一步确保各SQID的NVMe的待处理命令的处理及时性,消除NVMe的待处理命令长时等待于命令转换模块中导致延迟处理的情况,计数更新器20可在时间计数器30中获取各待处理命令对应的到达时间,并根据各SQID的索引在计数寄存器文件堆40,查找各SQID对应的计数寄存器41,以将各SQID的NVMe的待处理命令对应的到达时间,更新至各自对应的计数寄存器41的存储空间中。需要说明的是,上述计数寄存器文件堆40的更新过程是随着命令转换模块获取到各SQID中NVMe的待处理命令持续进行的,也即计数寄存器文件堆40中各SQID对应的计数寄存器41需要根据各SQID中实时到达命令转换模块的NVMe的待处理命令的到达时间进行持续更新的。
在计数寄存器文件堆40持续更新的过程中,同时,另一侧的巡检计数器10也可以按照一定的选择策略实时在计数寄存器文件堆40中确定目标计数寄存器。所称的选择策略可以是按照各SQID的优先等级进行顺序循环选择,或者按照各SQID对应的计数寄存器41的编号顺序进行顺序循环选择,以实现对多个SQID的循环监测,以最大限度地消除NVMe的待处理命令长时等待于命令转换模块中导致延迟处理的情况,本实施例对选择策略不作具体地限定。
相应地,巡检计数器10可以是以SQID的索引为初始计数值不断地进行计数更新,以实时更新确定对应的目标计数寄存器;或者,以SQID的优先等级为初始计数值不断地进行计数更新,以实时更新确定对应的目标计数寄存器。
巡检计数器10,在获取到目标计数寄存器之后,即可将目标计数寄存器中存储的目标SQID的历史计数值(也即目标处理命令对应的目标到达时间)通过寄存器选择单元42输出至比较器50。
比较器50,实时获取时间计数器30记录的当前时间,并在获取到巡检计数器10确定的目标SQID的目标处理命令对应的目标到达时间的情况下,将当前时间与目标SQID 的目标处理命令对应的目标到达时间进行比较,以确定目标处理命令是否处于超时处理状态;
所称的比较方式包括,将当前时间与目标SQID 的目标处理命令对应的目标到达时间输入至预先训练的比较模型中,输出目标处理命令相应的执行状态,以确定目标处理命令是否处于超时处理状态;或者,基于一重或者多重判断条件,判断确定目标处理命令是否处于超时处理状态。其中,比较模型是基于样本处理命令的实际达到时间、历史时间,以及样本处理命令在历史时间对应的实际执行状态进行训练得到的。其中,执行状态包括超时处理状态或者非超时处理状态(或者称未超时处理状态)。
在根据比较结果确定目标处理命令处于非超时处理状态的情况下,继续对该目标SQID进行比较监测,或者根据巡检计数模块的输出,切换至下一目标SQID进行比较监测;在根据比较结果确定目标处理命令处于超时处理状态的情况下,向命令转换模块发出目标处理命令对应的超时使能信号,以提示命令转换模块及时执行该目标处理命令。
本实施例提供的网络提交队列监测装置,通过计数更新器将命令转换模块获取到各网络提交队列的非易失性内存主机控制器接口规范的待处理命令对应的到达时间实时更新至计数寄存器文件堆中各网络提交队列对应的计数寄存器中,同时基于巡检计数器,循环在计数寄存器文件堆中选择目标计数寄存器,基于比较器,对目标计数寄存器中目标处理命令对应的目标到达时间与当前时间进行比较,以在根据比较结果确定目标处理命令处于超时处理状态的情况下,向命令转换模块发出所述目标处理命令对应的超时使能信号,由此提示命令转换模块及时执行该目标处理命令,以简单便捷地消除该目标处理命令长时间等待于命令转换模块的情况,从而提高命令转换模块的可靠性,以进一步提高RAID磁盘阵列的性能。
图2为本实施例提供的网络提交队列监测装置的结构示意图之二;如图2所示,在一些实施例中,所述比较器50包括差值比较单元51和超时比较单元52;
所述差值比较单元51,与所述时间计数器30和所述巡检计数器10连接,用于计算所述当前时间与所述目标到达时间之间的时间差值;
所述超时比较单元52,与所述差值比较单元51连接,用于根据所述时间差值确定所述目标处理命令的执行状态,在根据所述执行状态确定所述目标处理命令处于超时处理状态的情况下,向所述命令转换模块发出所述超时使能信号。
比较器50具体包括差值比较单元51和超时比较单元52;其中:
差值比较单元51,与时间计数器30和巡检计数器10连接,可以实时获取时间计数器30记录的当前时间,并在获取到巡检计数器10确定的目标SQID的目标处理命令对应的目标到达时间的情况下,计算当前时间与目标SQID 的目标处理命令对应的目标到达时间之间的差值,得到相应的时间差值。
超时比较单元52,与差值比较单元51连接,可以实时接收差值比较单元51输出的时间差值,并将时间差值输入至超时识别模型中,得到超时识别模型输出的目标处理命令的执行状态;或者,将时间差值与目标SQID对应的最大心跳超时值进行比较,以根据比较结果确定目标处理命令的执行状态;其中,所称的超时识别模型可以是基于样本处理命令对应的时间差值,以及样本处理命令在该时间差值下的真实执行状态进行训练得到的。
超时比较单元52,在根据比较结果确定目标处理命令处于非超时处理状态的情况下,继续对该目标SQID进行比较监测,或者根据巡检计数模块的输出,切换至下一目标SQID进行比较监测;在根据比较结果确定目标处理命令处于超时处理状态的情况下,向命令转换模块发出目标处理命令对应的超时使能信号,以提示命令转换模块及时执行该目标处理命令。
传统多通道心跳监测装置一般采用给每个通道的网络提交队列一个计时和比较超时的逻辑实现心跳监测,当通道增多的时候,计时逻辑和超时比较逻辑(包括比较器和超时寄存器逻辑等)会占用较多资源,而本实施例提供的监测装置,通过针对所有SQID配置同一个比较器和同一套计时和比较逻辑,不仅可以有效节约配置较多计时和比较逻辑所需成本,而且通过比较器中的差值比较单元和超时比较单元,对目标处理命令的执行状态进行多重判断实现网络提交队列监测,不仅提高了网络提交队列监测精准性的同时,还可以在目标处理命令处于超时处理状态的情况下,及时提示命令转换模块及时执行该目标处理命令,消除该目标处理命令长时间等待于命令转换模块的情况,进一步提高了命令转换模块的可靠性和RAID磁盘阵列的性能。
如图2所示,在一些实施例中,所述装置还包括超时配置寄存器60;
所述超时配置寄存器60,与所述巡检计数器10和所述超时比较单元52连接用于获取所述巡检计数器10确定的所述目标计数寄存器,根据所述目标计数寄存器对应的目标网络提交队列的索引,确定所述目标网络提交队列对应的最大心跳超时值;
所述超时比较单元52,还用于将所述时间差值与所述最大心跳超时值进行比较,在根据比较结果确定所述时间差值大于所述最大心跳超时值的情况下,确定所述目标处理命令处于超时处理状态;在根据比较结果确定所述时间差值小于或等于所述最大心跳超时值的情况下,确定所述目标处理命令处于未超时处理状态。
如图2所示,超时配置寄存器60(下文也称TimeOutReg)包括配置文件存储单元61以及配置文件选择单元62;其中,配置文件存储单元61中定义有各SQID对应的最大心跳超时值,也即配置文件存储单元61中针对每一SQID对应配置有相应的心跳超时配置文件,如针对索引号为1到N的SQID,对应配置有心跳超时配置文件1、心跳超时配置文件2,…,心跳超时配置文件N。配置文件选择单元62用于将巡检计数单元选择的目标SQID对应的最大心跳超时值输出至超时比较单元52。
其中,超时配置寄存器60的位宽可以根据测试需求进行配置,如超时配置寄存器60的位宽为31位;每一SQID对应的最大心跳超时值可以根据各SQID的性能需求进行适应性设置,如对于任一SQID,在500MHz时钟下的最大超时时间为4.3s,即该SQID对应的允许的最长心跳停止时间(也即最大心跳超时值)约为4.3s。
超时配置寄存器60的输入端与巡检计数器10连接,超时配置寄存器60的输出端与超时比较器50连接;
超时配置寄存器60,可以获取巡检计数器10确定的目标计数寄存器,并根据目标计数寄存器对应的目标网络提交队列的索引,在多个心跳超时配置文件中确定目标网络提交队列对应的心跳超时配置文件,以从中获取目标网络提交队列对应的最大心跳超时值,并将目标网络提交队列对应的最大心跳超时值输出至超时比较器50。
进一步地,超时比较器50,可以将时间差值与对应的最大心跳超时值进行比较,以确定目标处理命令是否处于超时处理状态;在确定时间差值小于或等于最大心跳超时值的情况下,确定目标处理命令处于未超时处理状态,继续对该目标SQID进行比较监测,或者根据巡检计数模块的输出,切换至下一目标SQID进行比较监测;在确定时间差值大于最大心跳超时值的情况下,确定目标处理命令处于超时处理状态,向命令转换模块发出目标处理命令对应的超时使能信号,以提示命令转换模块及时执行该目标处理命令。
本实施例提供的装置,配置所有SQID的超时监测使用同一个超时配置寄存器,以基于不同SQID适应性地选择相应的最大心跳超时值,相比于相关技术中针对每一SQID配置相应的监测逻辑,不仅可以节约逻辑配置成本,还可以提高网络提交队列监测的适应性性。
如图2所示,在一些实施例中,所述装置还包括校准器70;
所述校准器70,与所述差值比较单元51和所述超时比较单元52连接,用于在根据所述时间差值,确定所述时间计数器30发生循环计数的情况下,根据所述时间计数器30对应的最大循环计数周期,对所述时间差值进行校准;
所述超时比较单元52,还用于根据校准后的时间差值确定所述目标处理命令的执行状态。
其中,时间计数器30对应的最大循环计数周期可以根据实际需求进行配置,如最大循环计数周期为2^32个周期。
校准器70包括加法单元71和校准选择单元72,其中,加法单元71用于将时间差值与最大循环计数周期相加,得到校准后的时间差值;校准选择单元72用于根据时间差值以及时间计数器30的事件日志,选择输出时间差值或者校准后的时间差值。
可选地,为了进一步确保监测结果的准确性,还可以在监测装置中配置校准器70。如图2所示,校准器70的输入端与差值比较单元51连接,校准器70的输出端与超时比较单元52连接。
校准器70,可以通过接收到的时间差值,实时判断时间计数器30是否发生循环计数,以在时间计数器30发生循环计数的情况下,可以将时间计数器30对应的最大循环计数周期与时间差值进行相加,以对时间差值进行校准,以便超时比较单元52可以根据校准后的时间差值确定目标处理命令的执行状态,由此提高网络提交队列监测的准确性。
在一些实施例中,所述校准器70,还用于:
在确定所述时间差值大于或等于0的情况下,获取所述时间计数器30的事件日志,在根据所述事件日志确定在目标时间段内所述时间计数器30的时间计数值未被初始化的情况下,确定所述时间计数器30未发生循环计数;
在确定所述时间差值小于0的情况下,确定所述时间计数器30发生循环计数;
其中,所述目标时间段包括位于所述当前时间和所述目标到达时间之间的时间段。
可选地,在对时间差值进行校准的过程中,校准器70可以实时判断时间差值是否大于0,在时间差值大于或等于0的情况下,进一步获取时间计数器30的事件日志,以在事件日志确定时间计数器30是否在位于当前时间和目标到达时间之间的时间段内发生时间计数值初始化,若发生时间计数值初始化,则确定时间计数器30发生循环计数,此时需要将时间计数器30对应的最大循环计数周期与时间差值进行相加,以对时间差值进行校准,以便超时比较单元52可以根据校准后的时间差值更加精准地确定目标处理命令的执行状态。若未发生时间计数值初始化,则时间计数器30未发生循环计数,可以直接将时间差值输出至超时比较单元52;
在时间差值下于0的情况下,则时间计数器30未发生循环计数,可以直接将时间差值输出至超时比较单元52。
本实施例提供的装置,通过对时间差值进行校准,以使得超时比较单元52可以根据校准后的时间差值精准确定目标处理命令的执行状态,由此提高网络提交队列监测的准确性。
在一些实施中,所述计数寄存器文件堆40中包括多个顺序编号的计数寄存器41;
所述巡检计数器10包括第一计数器、第二计数器和巡检单元;
所述第一计数器,用于记录上一巡检周期的目标计数寄存器的巡检时间,在确定所述巡检时间与所述当前时间之间的时间差值大于或等于预设巡检间隔的情况下,控制所述第二计数器的计数值累计加1,得到更新后的计数值;
所述巡检单元,用于将所述计数寄存器文件堆40中与所述更新后的计数值匹配的编号对应的计数寄存器41作为当前周期的目标计数寄存器。
所述第一计数器的计数位数大于所述第二计数器的计数位数;
所述第二计数器的计数位数是根据所述网络提交队列的数量进行确定的。
其中,第一计数器用于定义两个SQID对应的计数寄存器41之间的巡检间隔,第二计数器用于循环产生各SQID对应的计数寄存器41的编号,以从中选出目标计数寄存器。
第一计数器和第二计数器均为自增计数器,第二计数器的计数位数是根据网络提交队列的数量进行适应性确定的,如网络提交队列为64个,相应地第二计数器的计数位数为6位无符号循环加法器,也即第二计数器可循环产生0~63的计数寄存器41的编号,用于选出计数寄存器文件堆40中编号对应的目标计数寄存器。
第一计数器的计数位数大于第二计数器的计数位数,如可以为20位无符号循环加法器,第一计数器可定义从一个SQID计数寄存器到另一个SQID计数寄存器之间的巡检间隔,也即第一计数器记录上一巡检周期的目标计数寄存器的巡检时间,在确定巡检时间与当前时间之间的时间差值大于或等于预设巡检间隔的情况下,控制第二计数器的计数值累计加1,得到更新后的计数值,以根据更新后的计数值在计数寄存器文件堆40中确定匹配的编号对应的计数寄存器41作为当前周期的目标计数寄存器。由此按照上述可以循环确定各计数寄存器41作为目标计数寄存器,以对每一计数寄存器41进行循环监测。
其中,预设巡检间隔可以根据实际需求进行设置,如在500MHz时钟下的预设巡检间隔约为2.1ms,相应地,完成包括64个计数寄存器41的计数寄存器文件堆40的巡检时间约为2.1ms64=124.4ms。
需要说明的是,上述预设巡检间隔可以是预先配置在第一计数器中,也可以是配置一个与第一计数器连接的心跳巡检间隔寄存器(下文也称PatrolReg),该心跳巡检间隔寄存器预先定义有两个SQID对应的计数寄存器41之间的巡检间隔,以便第一计数器可以从心跳巡检间隔寄存器实时获取相应的预设巡检间隔,本实施例对此不作具体地限定。此处的心跳巡检间隔寄存器的位宽可以实际存储需求进行配置,如配置位宽为20位。
本实施例提供的方法,通过第一计数器配置巡检间隔,第二计数器在巡检间隔达到预设巡检间隔的情况下,自动累计计数,以循环选择下一计数寄存器作为目标计数寄存器进行网络提交队列监测,由此通过简单的输入输出和逻辑控制,即可实现多个网络提交队列的循环监测,有效规避各SQID中NVMe的待处理命令持续驻留在命令转换模块内的风险,实现便捷高效地进行RAID磁盘阵列的性能提升。
在一些实施例中,所述巡检计数器10,还用于在获取到所述目标计数寄存器的情况下,将所述目标处理命令同步至所述命令转换模块,以供所述命令转换模块接收到所述超时使能信号的情况下,执行所述目标处理命令。
如图2所示,巡检计数器10还可以在获取到目标计数寄存器的情况下,实时输出将目标处理命令同步至命令转换模块,以便命令转换模块接收到超时使能信号的情况下,可以及时执行目标处理命令,提高目标处理命令处理的及时性和便捷性。
在一些实施例中,所述计数更新器20包括第一输入端口和第二输入端口;
所述第一输入端口,用于接收各所述网络提交队列的验证信息;
所述第二输入端口,用于在获取到各所述网络提交队列的非易失性内存主机控制器接口规范的待处理命令的情况下,基于所述时间计数器30获取各所述待处理命令对应的到达时间;
所述计数更新器20,还用于根据所述验证信息,确定各所述网络提交队列的有效性,并根据所述有效性和各所述待处理命令对应的到达时间,对所述计数寄存器文件堆40中各所述网络提交队列对应的计数寄存器41进行更新。
如图2所示,计数更新器20的第一输入端口可以实时接收各网络提交队列的验证信息,第二输入端口可以在获取到各网络提交队列的非易失性内存主机控制器接口规范的待处理命令的情况下,基于时间计数器30获取各待处理命令对应的到达时间;
计数更新器20在获取到验证信息和各待处理命令对应的到达时间之后,还需要根据验证信息,进一步验证各所述网络提交队列的有效性,以基于有效性进一步确定是否将各所述待处理命令对应的到达时间更新至各网络提交队列对应的计数寄存器41中。
在一些实施例中,所述计数更新器20,还用于:
在根据所述有效性确定任一网络提交队列处于无效状态的情况下,停止对所述计数寄存器文件堆40中所述任一网络提交队列对应的计数寄存器41进行更新,并将所述任一网络提交队列对应的计数寄存器41标识为失效状态;
在根据所述有效性确定所述任一网络提交队列处于有效状态的情况下,将所述任一网络提交队列的非易失性内存主机控制器接口规范的处理命令对应的到达时间更新至所述计数寄存器文件堆40中所述任一网络提交队列对应的计数寄存器41中,并将所述任一网络提交队列对应的计数寄存器41标识为有效状态。
可选地,在根据有效性确定任一网络提交队列处于无效状态的情况下,停止对计数寄存器文件堆40中该网络提交队列对应的计数寄存器41进行更新,和/或将该网络提交队列对应的计数寄存器41标识为失效状态,以便巡检计数器10可停止选择该计数寄存器41,以停止对该计数寄存器41对应的网络提交队列进行监测。
在根据有效性确定该网络提交队列处于有效状态的情况下,将该网络提交队列对应的到达时间更新至计数寄存器文件堆40中该网络提交队列对应的计数寄存器41中,并将该网络提交队列对应的计数寄存器41标识为有效状态,以便巡检计数器10可继续选择该计数寄存器41,以对该计数寄存器41对应的网络提交队列进行监测,由此实现对网络提交队列的有效监测,提高网络提交队列监测的有效性。
图3为本实施例提供的网络提交队列监测装置的结构示意图之三,如图3所示,在一些实施例中,所述装置还包括心跳监测使能寄存器80和使能输出单元90;
所述心跳监测使能寄存器80,与所述使能输出单元90连接,用于接收输入指令,根据所述输入指令,向所述使能输出单元90输出控制信号;所述输入指令包括用于控制所述使能输出单元90的输出状态的操作指令;
所述使能输出单元90,与所述比较器50连接,用于在确定所述控制信号为启用信号,且接收到所述比较器50输出的所述超时使能信号的情况下,向所述命令转换模块输出所述超时使能信号;在确定所述控制信号为禁用信号,和/或未接收到所述比较器50输出的所述超时使能信号的情况下,禁止向所述命令转换模块输出所述超时使能信号。
此处的输入指令可以是用户在前端界面输入的用户输入,也可以经由其他控制器或者存储系统内部的其他设备在某种条件下产生的信息,如定时触发的输入指令。所称的用户输入,可以是通过命令行界面输入、图形化界面输入、 触摸输入、下拉选择输入、语音输入、手势输入、视觉输入、脑机输入等输入的 信息等,本实施例对此不做具体地限定。
可选地,为了提高网络提交队列监测的适用性,可以在网络提交队列监测装置内部配置心跳监测使能寄存器80,以在根据输入指令确定将比较器50发出的超时使能信号发出的情况下,向使能输出单元90发出启用信号,在根据输入指令确定不需要将比较器50发出超时使能信号发出的情况下,向使能输出单元90发出禁用信号,以便使能输出单元90在接收到启用信号以及接收到超时使能信号的情况下,向命令转换模块输出超时使能信号,在接收到禁用信号,和/或未接收到超时使能信号的情况下,禁止向命令转换模块输出超时使能信号。
需要说明的是,在向使能输出单元90发出禁用信号的情况下,仅控制比较器50的超时使能信号不再发出,而其他器件,如计数器等依然正常工作。
本实施例提供的装置,通过心跳监测使能寄存器80可以自适应地确定是否启用比较器50发出的超时使能信号,由此提高网络提交队列监测的灵活性。
图4为本实施例提供的网络提交队列监测装置的结构示意图之四;如图4所示,还可以在差值比较单元51、加法单元71、使能输出单元90的输出节点处配置流水线寄存器(pipeline register,PR)100,以便收集和共享各单元所产生的事件日志,如差值比较单元51、加法单元71所产生的时间差值、校准后的时间差值、差值比较单元51对应的事件日志共享至校准选择单元72,以便校准选择单元72进行时间差值选择输出。
图5为本实施例提供的网络提交队列监测装置的监测步骤的流程示意图;如图4和图5所示,以64个网络提交队列监测为例,对本实施例提供的网络提交队列监测装置的监测步骤展开描述。
步骤501,时间计数器30和巡检计数器10自动计数;
步骤502,计数更新器20确定是否接收SQID和有效信息;
步骤503,在根据有效信息验证该SQID有效的情况下,计数更新器20在时间计数器30获取该SQID的NVMe的待处理命令对应的到达时间,并更新至该SQID对应的计数寄存器41中;
步骤504,巡检计数器10根据巡检计数值查找相应的目标计数寄存器;在查找到相应的目标计数寄存器的情况下,执行步骤505;否则,执行步骤503;
步骤505,巡检计数器10从目标计数寄存器中确定目标处理命令对应的目标到达时间;
步骤506,差值比较单元51计算目标到达时间与当前时间之间的时间差值,并进行校准;
步骤507,超时比较单元52将差值比较单元51输出的时间差值与超时配置寄存器60中该SQID对应的最大心跳超时值进行比较,在根据比较结果确定目标处理命令处于超时处理状态的情况下,向命令转换模块发出目标处理命令对应的超时使能信号。
综上,本实施例提供一种结构简单,易于控制实现多队列心跳监测的网络提交队列监测装置,该装置通过采用简单的输入输出、配置控制和逻辑实现方式,即可对SQID中的NVMe命令的状态进行实时监控,可以有效防止NVMe命令遗留在命令转换模块而得不到派发的风险,提高系统可靠性。
需要说明的是,本申请实施例中,上述各个装置附图所示的网络提交队列监测装置均是以结合本申请实施例中的一个附图为例示例性的说明的。具体实现时,上述各个装置附图所示的网络提交队列监测装置还可以结合上述实施例中示意的其它可以结合的任意附图实现,此处不再赘述。
下面对本发明提供的网络提交队列监测方法进行描述,下文描述的网络提交队列监测方法与上文描述的网络提交队列监测装置可相互对应参照。
图6为本实施例提供的网络提交队列监测方法的流程示意图,如图6所示,该方法包括:
步骤601,在确定命令转换模块获取到各网络提交队列的非易失性内存主机控制器接口规范的待处理命令的情况下,基于所述时间计数器获取各所述待处理命令对应的到达时间,并将各所述待处理命令对应的到达时间更新至所述计数寄存器文件堆中各所述待处理命令所属的网络提交队列对应的计数寄存器中;
步骤602,在所述计数寄存器文件堆中确定目标计数寄存器和所述目标计数寄存器中目标处理命令对应的目标到达时间;
步骤603,将所述当前时间与所述目标到达时间进行比较,在根据比较结果确定所述目标处理命令处于超时处理状态的情况下,向所述命令转换模块发出所述目标处理命令对应的超时使能信号;
其中,所述超时使能信号用于提示所述命令转换模块执行所述目标处理命令;所述目标处理命令包括所述目标计数寄存器对应的目标网络提交队列的非易失性内存主机控制器接口规范的处理命令。
可选地,在确定命令转换模块获取到各SQID的NVMe的待处理命令的情况下,表征各SQID的NVMe的待处理命令已传入命令转换模块或者正在命令转换模块正在处理各SQID的NVMe的待处理命令,为了进一步确保各SQID的NVMe的待处理命令的处理及时性,消除NVMe的待处理命令长时等待于命令转换模块中导致延迟处理的情况,计数更新器可在时间计数器中获取各待处理命令对应的到达时间,并根据各SQID的索引在计数寄存器文件堆,查找各SQID对应的计数寄存器,以将各SQID的NVMe的待处理命令对应的到达时间,更新至各自对应的计数寄存器的存储空间中。
在计数寄存器文件堆持续更新的过程中,同时,另一侧的巡检计数器也可以按照一定的选择策略实时在计数寄存器文件堆中确定目标计数寄存器。所称的选择策略可以是按照各SQID的优先等级进行顺序循环选择,或者按照各SQID对应的计数寄存器的编号顺序进行顺序循环选择,以实现对多个SQID的循环监测,以最大限度地消除NVMe的待处理命令长时等待于命令转换模块中导致延迟处理的情况,本实施例对选择策略不作具体地限定。
相应地,巡检计数器可以是以SQID的索引为初始计数值不断地进行计数更新,以实时更新确定对应的目标计数寄存器;或者,以SQID的优先等级为初始计数值不断地进行计数更新,以实时更新确定对应的目标计数寄存器。
巡检计数器,在获取到目标计数寄存器之后,即可将目标计数寄存器中存储的目标SQID的历史计数值(也即目标处理命令对应的目标到达时间)输出至比较器。
比较器,实时获取时间计数器记录的当前时间,并在获取到巡检计数器输出的目标SQID的历史计数值的情况下,将当前时间与目标SQID 的目标处理命令对应的目标到达时间进行比较,以确定目标处理命令是否处于超时处理状态。
在根据比较结果确定目标处理命令处于非超时处理状态的情况下,继续对该目标SQID进行比较监测,或者根据巡检计数模块的输出,切换至下一目标SQID进行比较监测;在根据比较结果确定目标处理命令处于超时处理状态的情况下,向命令转换模块发出目标处理命令对应的超时使能信号,以提示命令转换模块及时执行该目标处理命令。
本实施例提供的网络提交队列监测方法,通过计数更新器将命令转换模块获取到各网络提交队列的非易失性内存主机控制器接口规范的待处理命令对应的到达时间实时更新至计数寄存器文件堆中各网络提交队列对应的计数寄存器中,同时基于巡检计数器,循环在计数寄存器文件堆中选择目标计数寄存器,基于比较器,对目标计数寄存器中目标处理命令对应的目标到达时间与当前时间进行比较,以在根据比较结果确定目标处理命令处于超时处理状态的情况下,向命令转换模块发出所述目标处理命令对应的超时使能信号,由此提示命令转换模块及时执行该目标处理命令,以简单便捷地消除该目标处理命令长时间等待于命令转换模块的情况,从而提高命令转换模块的可靠性,以进一步提高RAID磁盘阵列的性能。
在一些实施例中,步骤603中的监测步骤进一步包括:
根据所述目标计数寄存器的索引,确定所述目标计数寄存器对应的最大心跳超时值;
计算所述当前时间与所述目标到达时间之间的时间差值;
将所述时间差值与所述最大心跳超时值进行比较,在根据比较结果确定所述时间差值大于所述最大心跳超时值的情况下,确定所述目标处理命令处于超时处理状态,向所述命令转换模块发出超时使能信号。
可选地,超时配置寄存器,可以获取巡检计数器确定的目标计数寄存器,并根据目标计数寄存器对应的目标网络提交队列的索引,在多个心跳超时配置文件中确定目标网络提交队列对应的心跳超时配置文件,以从中获取目标网络提交队列对应的最大心跳超时值,并将目标网络提交队列对应的最大心跳超时值输出至超时比较器。
进一步地,超时比较器,可以将时间差值与对应的最大心跳超时值进行比较,以确定目标处理命令是否处于超时处理状态;在确定时间差值小于或等于最大心跳超时值的情况下,确定目标处理命令处于未超时处理状态,继续对该目标SQID进行比较监测,或者根据巡检计数模块的输出,切换至下一目标SQID进行比较监测;在确定时间差值大于最大心跳超时值的情况下,确定目标处理命令处于超时处理状态,向命令转换模块发出目标处理命令对应的超时使能信号,以提示命令转换模块及时执行该目标处理命令。
图7是本发明提供的计算机设备的结构示意图,如图7所示,本发明还提供一种计算机设备,包括:如上述任意一种所述网络提交队列监测装置150和命令转换模块130。
所称的计算机设备可以是服务器、网络设备等,本实施对此不作具体地限定。
所述网络提交队列监测装置,与所述命令转换模块通信连接,用于对命令转换模块中获取到各网络提交队列的非易失性内存主机控制器接口规范的待处理命令进行可循环监测,以确定各网络提交队列最后一个NVMe命令的到达时间,当到达时间与当前时间之间的时间差值超出配置的最大心跳超时值时,向命令转换模块发起提示,以提示命令转换模块执行该NVMe命令的转换操作,从而提高命令转换模块的可靠性,进而确保计算机设备的可靠性。
如图7所示,在一些实施例中,所述计算机设备还包括主机控制器110、命令代理模块120和磁盘阵列140;
其中,为了进一步提高NVMe磁盘数据的存储性能和可靠性,将多个独立的NVMe磁盘阵列140成在一起形成的一个大的磁盘系统,即磁盘阵列140,所称的磁盘阵列140可以是RAID组独立磁盘冗余阵列。
RAID组独立磁盘冗余阵列可以是包括RAID0、RAID1、RAID5、RAID6、RAID10等多种不同等级的独立磁盘冗余阵列。不同等级的RAID有不同的存储方案,可以有效提高系统读写性能和可靠性,如RAID0可以提供非常高的执行性能,基本的读写操作是单块磁盘的N倍(其中,N为组成RAID0组的磁盘数);RAID5是把数据和相对应的奇偶校验信息分别存储于不同的磁盘上,兼顾了存储性能、数据安全和存储成本等。
所述主机控制器110,与所述命令代理模块120通信,所述命令代理模块120与所述命令转换模块130通信,所述命令转换模块130与所述磁盘阵列140通信;
所述主机控制器110,用于向所述命令代理模块120发送各网络提交队列的非易失性内存主机控制器接口规范的待处理命令;
所述命令代理模块120,用于按照目标派发方式,将各所述网络提交队列的非易失性内存主机控制器接口规范的待处理命令派发至所述命令转换模块;
其中,所称的目标派发方式可以是按照相同逻辑分区或相同SQID进行派发的方式,本实施例对此不作具体地限定。
所述命令转换模块,用于在确定任一所述网络提交队列的非易失性内存主机控制器接口规范的待处理命令满足聚合条件,和/或接收到所述任一所述网络提交队列的非易失性内存主机控制器接口规范的待处理命令对应的超时使能信号的情况下,在所述磁盘阵列140执行所述任一所述网络提交队列的非易失性内存主机控制器接口规范的待处理命令。
所称的待处理命令为将NVMe读写命令转换为RAID磁盘阵列的读写操作的命令;所称的聚合条件包括聚合数量达到期望聚合数量。
可选地,命令转换模块,在确定任一所述网络提交队列的非易失性内存主机控制器接口规范的待处理命令满足聚合条件,和/或接收到任一所述网络提交队列的非易失性内存主机控制器接口规范的待处理命令对应的超时使能信号的情况下,均可在所述磁盘阵列140执行任一所述网络提交队列的非易失性内存主机控制器接口规范的待处理命令,由此实现消除NVMe命令长时等待于转换模块中的情况,提高计算机设备的可靠性。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的网络提交队列监测方法,该方法包括:在确定命令转换模块获取到各网络提交队列的非易失性内存主机控制器接口规范的待处理命令的情况下,基于所述时间计数器获取各所述待处理命令对应的到达时间,并将各所述待处理命令对应的到达时间更新至所述计数寄存器文件堆中各所述待处理命令所属的网络提交队列对应的计数寄存器中;在所述计数寄存器文件堆中确定目标计数寄存器和所述目标计数寄存器中目标处理命令对应的目标到达时间;将所述当前时间与所述目标到达时间进行比较,在根据比较结果确定所述目标处理命令处于超时处理状态的情况下,向所述命令转换模块发出所述目标处理命令对应的超时使能信号;其中,所述超时使能信号用于提示所述命令转换模块执行所述目标处理命令;所述目标处理命令包括所述目标计数寄存器对应的目标网络提交队列的非易失性内存主机控制器接口规范的处理命令。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (15)
1.一种网络提交队列监测装置,其特征在于,包括:巡检计数器、计数更新器、时间计数器、计数寄存器文件堆和比较器;
所述计数更新器,与所述时间计数器和所述计数寄存器文件堆连接,用于在确定命令转换模块获取到各网络提交队列的非易失性内存主机控制器接口规范的待处理命令的情况下,基于所述时间计数器获取各所述待处理命令对应的到达时间,并将各所述待处理命令对应的到达时间更新至所述计数寄存器文件堆中各所述待处理命令所属的网络提交队列对应的计数寄存器中;
所述巡检计数器,与所述计数寄存器文件堆和所述比较器连接,用于在所述计数寄存器文件堆中确定目标计数寄存器和所述目标计数寄存器中目标处理命令对应的目标到达时间;
所述比较器包括差值比较单元和超时比较单元;
所述差值比较单元,与所述时间计数器和所述巡检计数器连接,用于获取所述时间计数器记录的当前时间以及所述巡检计数器确定的所述目标到达时间,并计算所述当前时间与所述目标到达时间之间的时间差值;
所述超时比较单元,与所述差值比较单元连接,用于:
接收所述差值比较单元输出的所述时间差值;
将所述时间差值输入至超时识别模型中,得到所述超时识别模型输出的所述目标处理命令的执行状态;或者将所述时间差值与所述目标计数寄存器对应的目标网络提交队列对应的最大心跳超时值进行比较,根据比较结果,确定所述目标处理命令的执行状态;所述超时识别模型是基于样本处理命令对应的时间差值,以及所述样本处理命令在所述时间差值下的真实执行状态进行训练得到的;
在根据所述执行状态确定所述目标处理命令处于超时处理状态的情况下,向所述命令转换模块发出所述目标处理命令对应的超时使能信号;
其中,所述超时使能信号用于提示所述命令转换模块执行所述目标处理命令;所述目标处理命令包括所述目标计数寄存器对应的目标网络提交队列的非易失性内存主机控制器接口规范的处理命令。
2.根据权利要求1所述的网络提交队列监测装置,其特征在于,所述装置还包括超时配置寄存器;
所述超时配置寄存器,与所述巡检计数器和所述超时比较单元连接,用于获取所述巡检计数器确定的所述目标计数寄存器,根据所述目标计数寄存器对应的目标网络提交队列的索引,确定所述目标网络提交队列对应的最大心跳超时值;
所述超时比较单元,还用于将所述时间差值与所述最大心跳超时值进行比较,在根据比较结果确定所述时间差值大于所述最大心跳超时值的情况下,确定所述目标处理命令处于超时处理状态;在根据比较结果确定所述时间差值小于或等于所述最大心跳超时值的情况下,确定所述目标处理命令处于未超时处理状态。
3.根据权利要求1所述的网络提交队列监测装置,其特征在于,所述装置还包括校准器;
所述校准器,与所述差值比较单元和所述超时比较单元连接,用于在根据所述时间差值,确定所述时间计数器发生循环计数的情况下,根据所述时间计数器对应的最大循环计数周期,对所述时间差值进行校准;
所述超时比较单元,还用于根据校准后的时间差值确定所述目标处理命令的执行状态。
4.根据权利要求3所述的网络提交队列监测装置,其特征在于,所述校准器,还用于:
在确定所述时间差值大于或等于0的情况下,获取所述时间计数器的事件日志,在根据所述事件日志确定在目标时间段内所述时间计数器的时间计数值未被初始化的情况下,确定所述时间计数器未发生循环计数;
在确定所述时间差值小于0的情况下,确定所述时间计数器发生循环计数;
其中,所述目标时间段包括位于所述当前时间和所述目标到达时间之间的时间段。
5.根据权利要求1-4任一项所述的网络提交队列监测装置,其特征在于,所述计数寄存器文件堆中包括多个顺序编号的计数寄存器;
所述巡检计数器包括第一计数器、第二计数器和巡检单元;
所述第一计数器,用于记录上一巡检周期的目标计数寄存器的巡检时间,在确定所述巡检时间与所述当前时间之间的时间差值大于或等于预设巡检间隔的情况下,控制所述第二计数器的计数值累计加1,得到更新后的计数值;
所述巡检单元,用于将所述计数寄存器文件堆中与所述更新后的计数值匹配的编号对应的计数寄存器作为当前周期的目标计数寄存器。
6.根据权利要求5所述的网络提交队列监测装置,其特征在于,所述第一计数器的计数位数大于所述第二计数器的计数位数;
所述第二计数器的计数位数是根据所述网络提交队列的数量进行确定的。
7.根据权利要求1-4任一项所述的网络提交队列监测装置,其特征在于,所述巡检计数器,还用于在获取到所述目标计数寄存器的情况下,将所述目标处理命令同步至所述命令转换模块,以供所述命令转换模块接收到所述超时使能信号的情况下,执行所述目标处理命令。
8.根据权利要求1-4任一项所述的网络提交队列监测装置,其特征在于,所述计数更新器包括第一输入端口和第二输入端口;
所述第一输入端口,用于接收各所述网络提交队列的验证信息;
所述第二输入端口,用于在获取到各所述网络提交队列的非易失性内存主机控制器接口规范的待处理命令的情况下,基于所述时间计数器获取各所述待处理命令对应的到达时间;
所述计数更新器,还用于根据所述验证信息,确定各所述网络提交队列的有效性,并根据所述有效性和各所述待处理命令对应的到达时间,对所述计数寄存器文件堆中各所述网络提交队列对应的计数寄存器进行更新。
9.根据权利要求8所述的网络提交队列监测装置,其特征在于,所述计数更新器,还用于:
在根据所述有效性确定任一网络提交队列处于无效状态的情况下,停止对所述计数寄存器文件堆中所述任一网络提交队列对应的计数寄存器进行更新,并将所述任一网络提交队列对应的计数寄存器标识为失效状态;
在根据所述有效性确定所述任一网络提交队列处于有效状态的情况下,将所述任一网络提交队列的非易失性内存主机控制器接口规范的处理命令对应的到达时间更新至所述计数寄存器文件堆中所述任一网络提交队列对应的计数寄存器中,并将所述任一网络提交队列对应的计数寄存器标识为有效状态。
10.根据权利要求1-4任一项所述的网络提交队列监测装置,其特征在于,所述装置还包括心跳监测使能寄存器和使能输出单元;
所述心跳监测使能寄存器,与所述使能输出单元连接,用于接收输入指令,根据所述输入指令,向所述使能输出单元输出控制信号;所述输入指令包括用于控制所述使能输出单元的输出状态的操作指令;
所述使能输出单元,与所述比较器连接,用于在确定所述控制信号为启用信号,且接收到所述比较器输出的所述超时使能信号的情况下,向所述命令转换模块输出所述超时使能信号;在确定所述控制信号为禁用信号,和/或未接收到所述比较器输出的所述超时使能信号的情况下,禁止向所述命令转换模块输出所述超时使能信号。
11.一种基于权利要求1至10任一项所述的网络提交队列监测装置的网络提交队列监测方法,其特征在于,包括:
在确定命令转换模块获取到各网络提交队列的非易失性内存主机控制器接口规范的待处理命令的情况下,基于所述时间计数器获取各所述待处理命令对应的到达时间,并将各所述待处理命令对应的到达时间更新至所述计数寄存器文件堆中各所述待处理命令所属的网络提交队列对应的计数寄存器中;
在所述计数寄存器文件堆中确定目标计数寄存器和所述目标计数寄存器中目标处理命令对应的目标到达时间;
将所述当前时间与所述目标到达时间进行比较,在根据比较结果确定所述目标处理命令处于超时处理状态的情况下,向所述命令转换模块发出所述目标处理命令对应的超时使能信号;
其中,所述超时使能信号用于提示所述命令转换模块执行所述目标处理命令;所述目标处理命令包括所述目标计数寄存器对应的目标网络提交队列的非易失性内存主机控制器接口规范的处理命令。
12.根据权利要求11所述的网络提交队列监测方法,其特征在于,所述将所述当前时间与所述目标到达时间进行比较,在根据比较结果确定所述目标处理命令处于超时处理状态的情况下,向所述命令转换模块发出所述目标处理命令对应的超时使能信号,包括:
根据所述目标计数寄存器的编号,确定所述目标计数寄存器对应的最大心跳超时值;
计算所述当前时间与所述目标到达时间之间的时间差值;
将所述时间差值与所述最大心跳超时值进行比较,在根据比较结果确定所述时间差值大于所述最大心跳超时值的情况下,确定所述目标处理命令处于超时处理状态,向所述命令转换模块发出所述超时使能信号。
13.一种计算机设备,其特征在于,包括如权利要求1至10任一项所述网络提交队列监测装置和命令转换模块;
所述命令转换模块与所述网络提交队列监测装置连接。
14.根据权利要求13所述的计算机设备,其特征在于,所述计算机设备还包括主机控制器、命令代理模块和磁盘阵列;
所述主机控制器,与所述命令代理模块连接,用于向所述命令代理模块发送各网络提交队列的非易失性内存主机控制器接口规范的待处理命令;
所述命令代理模块,与所述命令转换模块连接,用于按照目标派发方式,将各所述网络提交队列的非易失性内存主机控制器接口规范的待处理命令派发至所述命令转换模块;
所述命令转换模块,与所述磁盘阵列连接,用于在确定任一所述网络提交队列的非易失性内存主机控制器接口规范的待处理命令满足聚合条件,和/或接收到所述任一所述网络提交队列的非易失性内存主机控制器接口规范的待处理命令对应的超时使能信号的情况下,在所述磁盘阵列执行所述任一所述网络提交队列的非易失性内存主机控制器接口规范的待处理命令。
15.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求11至12任一项所述网络提交队列监测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311379232.8A CN117118924B (zh) | 2023-10-24 | 2023-10-24 | 网络提交队列监测装置、方法、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311379232.8A CN117118924B (zh) | 2023-10-24 | 2023-10-24 | 网络提交队列监测装置、方法、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117118924A CN117118924A (zh) | 2023-11-24 |
CN117118924B true CN117118924B (zh) | 2024-02-09 |
Family
ID=88798762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311379232.8A Active CN117118924B (zh) | 2023-10-24 | 2023-10-24 | 网络提交队列监测装置、方法、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117118924B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101796487A (zh) * | 2007-08-10 | 2010-08-04 | 内特可力亚斯系统股份有限公司 | 虚拟队列处理电路以及任务处理器 |
CN108920267A (zh) * | 2012-05-24 | 2018-11-30 | 瑞萨电子株式会社 | 任务处理装置 |
CN114968735A (zh) * | 2021-07-01 | 2022-08-30 | 北京忆恒创源科技股份有限公司 | 获取命令处理时间的方法及存储设备 |
CN116149559A (zh) * | 2023-02-21 | 2023-05-23 | 苏州浪潮智能科技有限公司 | 队列处理方法、装置、服务器、电子设备和存储介质 |
CN116438512A (zh) * | 2020-12-22 | 2023-07-14 | 阿里巴巴集团控股有限公司 | 具有集成特定领域加速器的处理系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10509569B2 (en) * | 2017-03-24 | 2019-12-17 | Western Digital Technologies, Inc. | System and method for adaptive command fetch aggregation |
-
2023
- 2023-10-24 CN CN202311379232.8A patent/CN117118924B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101796487A (zh) * | 2007-08-10 | 2010-08-04 | 内特可力亚斯系统股份有限公司 | 虚拟队列处理电路以及任务处理器 |
CN108920267A (zh) * | 2012-05-24 | 2018-11-30 | 瑞萨电子株式会社 | 任务处理装置 |
CN116438512A (zh) * | 2020-12-22 | 2023-07-14 | 阿里巴巴集团控股有限公司 | 具有集成特定领域加速器的处理系统 |
CN114968735A (zh) * | 2021-07-01 | 2022-08-30 | 北京忆恒创源科技股份有限公司 | 获取命令处理时间的方法及存储设备 |
CN116149559A (zh) * | 2023-02-21 | 2023-05-23 | 苏州浪潮智能科技有限公司 | 队列处理方法、装置、服务器、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117118924A (zh) | 2023-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20140068134A1 (en) | Data transmission apparatus, system, and method | |
US8850085B2 (en) | Bandwidth aware request throttling | |
US9965197B2 (en) | System and method for storage area network management using serial attached SCSI expander | |
WO2017084400A1 (zh) | 一种NVMe网络化存储的实现方法、终端、服务器及系统 | |
US10534563B2 (en) | Method and system for handling an asynchronous event request command in a solid-state drive | |
US20240095019A1 (en) | Out-of-band updating method and system of expander | |
WO2020192343A1 (zh) | 基于硬件的端对端数据保护方法、装置及计算机设备 | |
WO2017054540A1 (zh) | 一种数据处理方法、装置、服务器及控制器 | |
CN103927136B (zh) | 输入输出io类型的识别方法和装置 | |
JP2008225558A (ja) | データ中継集積回路、データ中継装置およびデータ中継方法 | |
US7669190B2 (en) | Method and system for efficiently recording processor events in host bus adapters | |
CN112804333A (zh) | 出块节点的异常处理方法、装置、设备和存储介质 | |
US10254814B2 (en) | Storage system bandwidth determination | |
CN117118924B (zh) | 网络提交队列监测装置、方法、计算机设备及存储介质 | |
US8738833B2 (en) | Collaborative bus arbitration multiplex architecture and method of arbitration of data access based on the architecture | |
US9003068B2 (en) | Service channel for connecting a host computer to peripheral devices | |
US9870156B2 (en) | Memory system and method of controlling memory system | |
CN116244228A (zh) | 基于axi协议的存储器仲裁方法和装置、存储器控制器 | |
US20090268736A1 (en) | Early header CRC in data response packets with variable gap count | |
US20140089567A1 (en) | Hardware integrity verification | |
US8671267B2 (en) | Monitoring processing time in a shared pipeline | |
CN113238974A (zh) | 一种总线带宽效率统计方法、装置、和设备及介质 | |
US20240231923A9 (en) | Offloading Data Storage Device Processing Tasks to a Graphics Processing Unit | |
US11068357B2 (en) | Uninterrupted restore operation using a time based approach | |
US20090268727A1 (en) | Early header CRC in data response packets with variable gap count |
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 |