一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种对主机IO处理的优化方法、装置、设备及介质与流程

2023-01-02 16:57:27 来源:中国专利 TAG:

一种对主机io处理的优化方法、装置、设备及介质
技术领域
1.本发明涉及存储领域,尤其涉及一种对主机io处理的优化方法、装置、设备及介质。


背景技术:

2.随着计算存储(computational storage)技术的兴起,计算存储架构通过将数据的计算从主机cpu中迁移到靠近存储单元的数据处理加速单元,减少了相应的数据的搬移操作,进而实现较大程度释放系统的性能。
3.现有技术中,一种基于微码驱动的通用计算加速芯片架构中,uaa(unified acceleration architecture,通用加速架构)通过pcie(peripheral component interconnect express,高速串行计算机扩展总线标准)接口同主机连接,uaa分为控制平面和数据平面两个部分,控制平面基于微码驱动架构以实现加速任务,分步骤地流转于各个加速引擎模块之间。uaa的架构下的cp(control page,控制页表)/cb(control block,控制块)的主要方式中存在工作效率和性能的问题,具体地,随着存储功能越来越复杂,一个io需要的cb个数增长趋势明显,随之而来的是对cp或cp链的存储空间的需求的增长,芯片上给定大小的存储空间能够同时容纳的cp和cp链的个数呈减少趋势,导致了处理并行io能力的降低;cb处理的处理时间差异很大,一个io对应的cp页表和cp链中有相当一部分cb需要进行ddr(double data rate,双倍速率)、硬盘访问或复杂运算,这些操作需要耗费较长的时间才能完成,在执行过程中,所有已经执行完成的前序cb对存储器的占用是没有意义的,另一方面,对于后续等待被执行的cb,越趋向尾部的cb,等待的时间越久,进而降低了存储器的使用效率;从io处理延迟角度考虑,按照创建完成所有cb后再把第一个cb交由uaa执行的方式,由于需要创建的cb个数增多,延迟也会增加。


技术实现要素:

4.有鉴于此,本发明提出了一种对主机io处理的优化方法、装置、设备及介质。其中,为了提高cp存储空间的使用效率和降低io处理延迟,本发明提出了一种对主机io处理的优化方法,在单个cp和链式cp定义的基础上,定义了环形控制页表(环形cp)模式,当cp或cp链使用环形控制页表模式时,一个主机io的所有cb存储空间以环形的方式组织,即为控制块环(cb ring)。在cb ring模式下,一个io所需的所有cb按照执行顺序动态的分批产生并填充至到cb ring,执行完成后再动态回收,直到一个完整的io流程处理完毕。cb ring的存储空间可以小于一个io对应的完整cb序列所需要的总空间,因此减少了空间占用;cb执行完毕后空间可以回收,提高了存储空间使用效率;cb的使用和生成是动态的,只需要生成部分cb就可以开始执行,降低了主机io的延迟。
5.基于以上目的,本发明的实施例的一个方面提供了一种对主机io处理的优化方法,所述方法包括以下步骤:获取主机io所需的控制块的空间大小以及执行顺序,根据所述空间大小以及执行顺序建立多个控制块环;将所述主机io所需的控制块按照所述执行顺序
分批填充到所述多个控制块环上;响应于所述主机io所需的控制块完成首批填充,开启对所述主机io的所需的控制块的执行。
6.在一些实施例中,所述方法还包括:在控制页表的定义中添加环形模式的判断和由所述环形模式的控制页表生成对应的控制块环所需的参数信息,得到更新后的控制页表的定义。
7.在一些实施例中,所述在控制页表的定义中添加环形模式的判断和由所述环形模式的控制页表生成对应的控制块环所需的参数信息,得到更新后的控制页表的定义包括:基于判断当前控制页表是否为环形模式以及获取所述当前控制页表在控制页链表中的位置更新控制页表的头区域的定义;响应于所述当前控制页表为环形模式的控制页表,获取所述环形模式的控制页表生成对应的控制块环所需的参数信息,并基于所述参数信息设置附加参数表中的对应参数信息,并在所述环形模式的控制页表中设置附加参数表偏移地址,以得到所述环形模式的控制页表的附加参数表的起始位置。
8.在一些实施例中,所述基于判断当前控制页表是否为环形模式以及获取所述当前控制页表在控制页链表中的位置更新控制页表的头区域的定义包括:基于判断当前控制页表是否为环形模式更新控制页表的属性判断;响应于所述当前控制页表为环形模式的控制页表,获取所述环形模式的控制页表在所述控制页链表中的位置,并在所述环形模式的控制页表中设置指向所述控制页链表中下一个控制页表的首个控制块的地址的指针。
9.在一些实施例中,所述获取主机io所需的控制块的空间大小以及执行顺序,根据所述空间大小以及执行顺序建立多个控制块环包括:基于所述更新后的控制页表的定义和获取的所述主机io所需的控制块的空间大小以及执行顺序建立多个环形模式的控制页表,通过所述多个环形模式的控制页表生成对应的多个控制块环。
10.在一些实施例中,所述获取主机io所需的控制块的空间大小以及执行顺序,根据所述空间大小以及执行顺序建立多个控制块环还包括:按照串接顺序在控制页链表的最后一个控制页表的控制块存放区域设置附加参数表,以用于存放由环形模式的控制页表生成的对应控制块环所需的参数信息。
11.在一些实施例中,所述按照串接顺序在控制页链表的最后一个控制页表的控制块存放区域设置附加参数表,以用于存放由环形模式的控制页表生成的对应控制块环所需的参数信息包括:响应于所述附加参数表的参数体积大于所述最后一个控制页表的控制块存放区域,按照所述串接顺序逆序向前依次占用前一个控制页表的控制块存放区域。
12.在一些实施例中,所述获取主机io所需的控制块的空间大小以及执行顺序,根据所述空间大小以及执行顺序建立多个控制块环还包括:设置与控制页表的模式相对应的控制块类型;在控制块的控制块头中建立控制块的状态标记,以根据不同的控制块的状态标记执行不同的处理逻辑。
13.在一些实施例中,所述在控制块的控制块头中建立控制块的状态标记,以根据不同的控制块的状态标记执行不同的处理逻辑包括:设置控制块有效标志、完成标志以及结束标志,并且响应于所述有效标志有效,所述完成标志和结束标志存在。
14.在一些实施例中,所述设置与控制页表的模式相对应的控制块类型包括:设置环回控制块标志,以用于表示当前控制块位于控制块环的存储空间的线性地址的尾部;设置主动生成控制块标志,以用于表示位于当前控制块的后面的控制块未生成,响应于调用带
有主动生成控制标志的控制块,为所述带有主动生成控制标志的控制块设置生成引擎,以用于生成后面的控制块并填充到对应的控制块环上。
15.在一些实施例中,所述将所述主机io所需的控制块按照所述执行顺序分批填充到所述多个控制块环上包括:根据固件对主机io的命令的解析以为所述主机io创建第一批控制页表,并按照执行顺序将控制块依次填充到所述第一批控制页表对应的控制块环上;设置所述固件将第一个填充的控制块的地址传递给对应引擎的工作队列,以进行排队等待。
16.在一些实施例中,所述响应于所述主机io所需的控制块完成首批填充,开启对所述主机io的所需的控制块的执行包括:响应于检测到主动生成控制块标志,通过工作队列管理引擎向所述固件发送通知以完成控制块的首批填充,并将首批填充的控制页表对应的空间进行回收,开启对所述主机io所需控制块的执行。
17.本发明实施例的另一个方面,还提供了一种对主机io处理的优化装置,包括以下模块:第一模块,配置用于获取主机io所需的控制块的空间大小以及执行顺序,根据所述空间大小以及执行顺序建立多个控制块环;第二模块,配置用于将所述主机io所需的控制块按照所述执行顺序分批填充到所述多个控制块环上;第三模块,配置用于响应于所述主机io所需的控制块完成首批填充,开启对所述主机io的所需的控制块的执行。
18.本发明实施例的另一方面,还提供一种计算机设备,包括至少一个处理器;以及存储器,存储器存储有可在处理器上运行的计算机指令,指令由处理器执行时实现上述任一方法的步骤。
19.本发明实施例的又一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时实现如上任一方法步骤的计算机程序。
20.本发明至少具有以下有益效果:本发明提出一种对主机io处理的优化方法、装置、设备及介质,其中,本发明提出的一种对主机io处理的优化方法通过建立控制块环,允许控制块环的存储空间小于一个主机io对应的完整控制块序列所需的总的空间,减少了控制页表对存储空间的需求;在环形模式的控制页表下生成的控制块环是以控制页表的粒度为前提的,因此具有弹性,即允许主机io在性能和效率之间做平衡;环形模式的控制页表下对应的控制块环上运行控制块在执行完毕后回收对应的空间,提高了存储空间的使用效率;并且控制块是动态生成和回收的,因此在一个主机io中,只需要生成部分控制块即可开始服务io,因此降低了io的处理延迟;进一步,通过设置环回控制块标志和主动生成控制块标志,允许cb执行和生成两个方面同步进行,即把cb生成的耗时隐藏在其他cb的执行过程中。
附图说明
21.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的实施例。
22.图1示出的为通用计算架构的示意图;图2示出的为现有技术中一种对主机io处理的方法的实施例的示意图;图3示出的为现有技术中单个控制页表的结构的示意图;图4示出的为现有技术中链式控制页表的结构的示意图;
图5示出的为本发明提供的一种对主机io处理的优化方法的实施例的示意图;图6示出的为本发明提供的一种对主机io处理的优化方法的另一实施例的示意图;图7示出的为本发明提供的一种对主机io处理的优化方法中的主动触发和触发场景的示意图;图8示出的是本发明提供的一种对主机io处理的优化装置的实施例的示意图;图9示出的是本发明提供的一种计算机设备的实施例的示意图;图10示出的是本发明提供的一种计算机可读存储介质的实施例的示意图。
具体实施方式
23.以下描述了本发明的实施例。然而,应该理解,所公开的实施例仅仅是示例,并且其它实施例可以采取各种替代形式。
24.此外,需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。术语“包括”、“包含”或其任何其它变形旨在涵盖非排他性的包括,以使包含一系列要素的过程、方法、物品或装置不仅包括那些要素,也可以包括未明确列出的或这些过程、方法、物品或装置所固有的要素。
25.下面将结合附图说明本技术的一个或多个实施例。
26.参考图1和图2,图1示出的为通用计算架构的示意图,图2示出的为现有技术中一种对主机io处理的方法的实施例的示意图,在通用计算架构(uaa)中,控制页表(cp)的大小可以是512字节、1024字节或2048字节,这些空间除去cp头、数据缓存和原始主机io指令备份外,剩下的空间用来存放控制块cb,所有的cp置于一个连续的内存空间,从而形成一个cp资源池,此外,为了方便cp资源池的管理,单一资源池中的cp颗粒度需要保持一致,即只能选定一种cp的大小。cb的大小依据不同的应用引擎类型可以为16字节、32字节、64字节和128字节,因此,单个cp中所能承载的cb的数量受cp的大小和cb的大小共同决定。因此,在有些复杂应用场景,不同类的io对应的cb链的长度差异过大,cp的大小选定会造成一定的困难,选的过小就无法承载长的cb链条;相反,cp的颗粒度选的过大,则会造成一定cp资源的浪费。
27.一次典型的主机io过程在uaa的流程,首先,aem(acceleration engine manager 主机接口管理引擎)遵从一定接口协议将原始的io请求取回,并通过wqs(work queue scheduler 工作队列调度引擎)所管理的硬件事件队列来通知固件,固件得到通知后,对io命令进行解析后,会为此次io操作创建cp,并将分步操作的cb按要求填入cp中。在完成上述步骤后,固件会将第一个cb1的地址(4b宽)传递给wqs,wqs会将该cb1地址放入对应引擎的工作队列进行排队等待。当对应的引擎开始执行该cb1,则根据cb1的配置信息进行相应的加速操作。在完成后将执行状态返回给wqs(可选的,可以通知固件),并准备好下一个cb2的入口地址,也返回给wqs进入对应引擎的工作队列等待,以此类推。整个流转过程全在wqs硬件控制之下,非必要无需固件参与,当最后一个cbx完成后,需要对主机进行响应,并通知固件进行cp空间的回收。
28.在图1和图2的基础上,参考图3和图4,图3示出的为现有技术中单个控制页表的结构的示意图;图4示出的为现有技术中链式控制页表的结构的示意图。如图3和图4所示,cp一般分为普通cp和链式cp,在单个cp的基础上引入链式cp,普通cp的是在单个cp的定义的基础上加入一个8字节的指向下个链式cp的地址指针;链式cp的大小和普通cp的大小保持一致,在链式cp里面除了cp头,剩下的空间用来存放cb,在链式cp头内增加了三个8字节大小的链式指针,一个是指向下个链式cp(若有),一个是指向前一个cp,最后一个是直接指向第一个普通cp(方便查找数据缓存等),并且每个cb里面都标识了它在整个cp链中的位置,方便引擎处理时能快速定位到所需的信息。但是随着uaa架构的发展,单个cp和链式cp遇到了工作效率问题和性能问题,具体地,随着存储功能越来越复杂,一个io需要的cb个数增长趋势明显,随之而来的是对cp或cp链的存储空间的需求的增长,芯片上给定大小的存储空间能够同时容纳的cp和cp链的个数呈减少趋势,导致了处理并行io能力的降低;cb处理的处理时间差异很大,一个io对应的cp页表和cp链中有相当一部分cb需要进行ddr(double data rate)、硬盘访问或复杂运算,这些操作需要耗费较长的时间才能完成,在执行过程中,所有已经执行完成的前序cb对存储器的占用是没有意义的,另一方面,对于后续等待被执行的cb,越趋向尾部的cb,等待的时间越久,进而降低了存储器的使用效率;从io处理延迟角度考虑,按照创建完成所有cb后再把第一个cb交由uaa执行的方式,由于需要创建的cb个数增多,延迟也会增加。
29.基于以上目的,本发明实施例的第一个方面,提出了一种对主机io处理的优化方法的实施例。图5示出的为本发明提供的一种对主机io处理的优化方法的实施例的示意图。如图5所示,本发明实施例的一种对主机io处理的优化方法包括以下步骤:s1、获取主机io所需的控制块的空间大小以及执行顺序,根据所述空间大小以及执行顺序建立多个控制块环;s2、将所述主机io所需的控制块按照所述执行顺序分批填充到所述多个控制块环上;s3、响应于所述主机io所需的控制块完成首批填充,开启对所述主机io的所需的控制块的执行。
30.基于以上目的,本发明实施例的第一个方面,提出了一种对主机io处理的优化方法的实施例。图6示出的为本发明提供的一种对主机io处理的优化方法的另一实施例的示意图。如图6所示,在普通cp和链式cp的基础上,提出了一种环形cp模式,为此,在原有的cp和cb定义的基础上添加关于环形cp模式的定义。具体地,为了表示cp是否存在环形cp模式,在cp属性中增加了环形cp模式的标记;其次,在环形cp模式下动态生成cb可能需要的其他参数,所以在环形cp在cp页的定义中增加了附加参数表的定义;修改后的单个cp页表的大小可以是512字节、1k字节或2k字节,主要由四个部分组成。
31.1. 128字节的cp头区域,包括:(1)cp的属性:cp的类型,并标识了该cp是否位于一个cp链表之中、是否是环形cp页模式以及其在链表中的位置等属性信息;(2)当前cp的序列号,在创建cp时指定;(3)nvme(non-volatile memory express)队列的相关信息,包括2字节完成队列id、2字节提交队列id以及4字节调教队列头信息;
(4)若组成cp链表,8个字节包括指向下一个链式cp的首个cb的地址指针;(5)4个64位的时间戳,用于记录该cp执行过程中的关键时间节点;(6)64个字节的空间,预留给固件使用。
32.2. 在cp属性为环形cp页模式时,包含cb ring控制头32字节:(1)附加参数表偏移地址4字节,表示单个cp中附加参数表的起始地址,即是从第一个cp的地址开始的相对偏移地址;(2)28字节预留空间。
33.3. 若干字节的cb存放区域,对应于512b/1kb/2kb的cp长度,在cp为环形cp页表时,cb存放区域的长度分别为192字节/704字节/1728字节;在cp在其他模式时,cb存放区域长度分别为224字节/738字节/1760字节。
34.4. 64字节的数据缓存指针区域,用于指向公共的数据缓存区。
35.5. 64字节的原始nvme管理和io指令备份区域,便于异常发生时,固件介入进行错误的恢复。
36.具体地,如下表1所示:
表1在链式cp中,附加参数表的位置位于从最后一个cp开始的cb存放区域。如果附加参数的参数表本身体积较大,则从最后一个cp开始逆序向前依次占用前序cp的cb存放区域,cp链中剩余的cb存放区域组成cb环。
37.对于cb的修改,包括增加cb头标志位定义和两种新的cb类型。具体地,包括:cb有效标志,1表示为合法cb,0表示为非法cb;cb完成标志,1表示为已执行完成的cb,0表示为尚未执行的cb;
last cb标志,1表示为处理一个io流程的cp或者cp链中的最后一个cb,0表示不是最后一个cb。
38.以上的cb完成标志和last cb标志仅当cb有效标志为1时有意义。
39.除去以上对cb定义的修改,为例支持环形cp模式,环中的cb除了包含原有cb类型,新增两种cb类型:环回cb,即cb return(cb_r),表示当前cb已位于cb ring存储空间线性地址的尾部,下一个cb需要到第一个cp的cb存储空间的起始位置去获得,对于环形cp模式来说,cb_r是必须要使用的。
40.主动生成cb的cb,即cb builder (cb_b),此cb出现在cb ring中时,表示此cb后续的cb尚未生成,wqs(work queue scheduler 工作队列调度引擎)调度到此cb时,需要给cb生成引擎(由软件或硬件实现)来处理这个cb,生成后续的cb并填充到cb ring,对于环形cp模式来说,cb_b是可选的。
41.其中,图7示出的为本发明提供的一种对主机io处理的优化方法中的主动触发和触发场景的示意图。在uaa框架下,wqs负责分发cb,由专用的软件或硬件引擎处理对应的cb,并把处理结果和下一个cb的地址返回给wqs。在cb ring模式下,当处理cb的硬件引擎提交下一个cb时,对于下一个cb头中不同的cb有效标志、cb完成标志、last cb标志进行检测以完成cb填充、cb处理等不同逻辑。具体的处理逻辑如下:1. wqs收到当前cb的处理结果,首先判断当前cb是否为最后一个cb,即判断当前cb的last cb的标志是否为1。如果当前cb的last cb的标志是否为1,则io流程结束,并回收cp;否则判断当前cb的下一个cb是否有效。
42.2. 判断当前cb的下一个cb是否有效,即判断当前cb的下一个cb的有效标志是否为1。如果当前cb的下一个cb的有效标志不为1(为0),此时io流程虽未结束,但由于缺少后续的cb,所以通知固件进行后续的填充处理,由固件填充后续的cb,更新cb ring,把下一个cb交给wqs调度,此过程为被动触发的cb的构建和回收;如果当前cb的下一个cb的有效标志为1,判断当前cb的下一个cb是否已完成。
43.3. 判断当前cb的下一个cb是否已完成,即判断当前cb的下一个cb的完成标志是否为1。如果当前cb的下一个cb的完成标志为1,此时io流程虽未结束,但由于缺少后续的cb,所以通知固件进行后续的填充处理,由固件填充后续的cb,更新cb ring,把下一个cb交给wqs调度,此过程为被动触发的cb的构建和回收;如果当前cb的下一个cb的完成标志不为1,判断当前cb的下一个cb是否为cb_b。
44.4. 判断当前cb的下一个cb是否为cb_b,如果当前cb的下一个cb为cb_b,由wqs分发cb_b给cb生成引擎,并由cb生成引擎(sw/hw)填充完成后续cb,填充完成后回复wqs完成状态,并把后续cb交给wqs调度,此过程为主动触发的cb的构建和回收过程;如果当前cb的下一个cb不是cb_b,则按照cb的内容调度给对应的引擎。
45.当cb引擎发现下一个cb是cb_r时,需要进行额外的处理,即重新定位到第一个cp的第一个cb,并把此cb当作下一个cb提交至wqs。cb的动态生成,可以由原有uaa架构中的固件来实现,只需把一次性全部生成所有cb改为分批生成,为了提高实时性以及降低软件执行过程中时间的不确定性的影响,可以设计和实现专门的硬件引擎,用于cb的动态创建和回收。
46.一个典型的工作在环形cp模式下的io命令处理流程包括:首先,aem会遵从一定接口协议将原始的io请求取回,并通过wqs所管理的硬件事件队列来通知固件。固件得到通知后,对io命令进行解析后,会为此次io操作创建第一批cp,并将分步操作的cb按要求填入cp中。在完成上述步骤后,固件会将第一个cb1的地址(4b宽)传递给wqs,wqs会将该cb1地址放入对应引擎的工作队列进行排队等待。当处理cb的某个引擎检测到cb_b时,会通过wqs提交给cb生成引擎处理。当处理cb的某个引擎检测到被动cb填充触发场景时,通过wqs向固件发送消息,由固件完成cb填充。固件填充完成后,仍交给wqs进行分发。当最后一个cbx完成后,需要对主机进行响应,并通知固件进行cp空间的回收。主动触发场景和被动场景允许在一个io流程中先后出现,也可以仅出现一种。
47.通过以上方法允许控制块环的存储空间小于一个主机io对应的完整控制块序列所需的总的空间,减少了控制页表对存储空间的需求;在环形模式的控制页表下生成的控制块环是以控制页表的粒度为前提的,因此具有弹性,即允许主机io在性能和效率之间做平衡;环形模式的控制页表下对应的控制块环上运行控制块在执行完毕后回收对应的空间,提高了存储空间的使用效率;并且控制块是动态生成和回收的,因此在一个主机io中,只需要生成部分控制块即可开始服务io,因此降低了io的处理延迟;进一步,通过设置环回控制块标志和主动生成控制块标志,允许cb执行和生成两个方面同步进行,即把cb生成的耗时隐藏在其他cb的执行过程中。
48.本发明的实施例的第二个方面,提出了一种对主机io处理的优化装置。图8示出的是本发明提供的一种对主机io处理的优化装置的实施例的示意图。如图8所示,本发明提供的一种对主机io处理的优化装置包括:第一模块011,配置用于获取主机io所需的控制块的空间大小以及执行顺序,根据所述空间大小以及执行顺序建立多个控制块环;第二模块012,配置用于将所述主机io所需的控制块按照所述执行顺序分批填充到所述多个控制块环上;第三模块013,配置用于响应于所述主机io所需的控制块完成首批填充,开启对所述主机io的所需的控制块的执行。
49.在一些实施例中,配置用于对主机io处理的优化装置还包括配置用于:在控制页表的定义中添加环形模式的判断和由所述环形模式的控制页表生成对应的控制块环所需的参数信息,得到更新后的控制页表的定义。
50.在一些实施例中,配置用于对主机io处理的优化装置还包括配置用于:基于判断当前控制页表是否为环形模式以及获取所述当前控制页表在控制页链表中的位置更新控制页表的头区域的定义;响应于所述当前控制页表为环形模式的控制页表,获取所述环形模式的控制页表生成对应的控制块环所需的参数信息,并基于所述参数信息设置附加参数表中的对应参数信息,并在所述环形模式的控制页表中设置附加参数表偏移地址,以得到所述环形模式的控制页表的附加参数表的起始位置。
51.在一些实施例中,配置用于对主机io处理的优化装置还包括配置用于:基于判断当前控制页表是否为环形模式更新控制页表的属性判断;响应于所述当前控制页表为环形模式的控制页表,获取所述环形模式的控制页表在所述控制页链表中的位置,并在所述环形模式的控制页表中设置指向所述控制页链表中下一个控制页表的首个控制块的地址的指针。
52.在一些实施例中,第一模块011进一步配置用于:基于所述更新后的控制页表的定
义和获取的所述主机io所需的控制块的空间大小以及执行顺序建立多个环形模式的控制页表,通过所述多个环形模式的控制页表生成对应的多个控制块环。
53.在一些实施例中,第一模块011进一步配置用于:按照串接顺序在控制页链表的最后一个控制页表的控制块存放区域设置附加参数表,以用于存放由环形模式的控制页表生成的对应控制块环所需的参数信息。
54.在一些实施例中,第一模块011进一步配置用于:响应于所述附加参数表的参数体积大于所述最后一个控制页表的控制块存放区域,按照所述串接顺序逆序向前依次占用前一个控制页表的控制块存放区域。
55.在一些实施例中,第一模块011进一步配置用于:设置与控制页表的模式相对应的控制块类型;在控制块的控制块头中建立控制块的状态标记,以根据不同的控制块的状态标记执行不同的处理逻辑。
56.在一些实施例中,第一模块011进一步配置用于:设置控制块有效标志、完成标志以及结束标志,并且响应于所述有效标志有效,所述完成标志和结束标志存在。
57.在一些实施例中,第一模块011进一步配置用于:设置环回控制块标志,以用于表示当前控制块位于控制块环的存储空间的线性地址的尾部;设置主动生成控制块标志,以用于表示位于当前控制块的后面的控制块未生成,响应于调用带有主动生成控制标志的控制块,为所述带有主动生成控制标志的控制块设置生成引擎,以用于生成后面的控制块并填充到对应的控制块环上。
58.在一些实施例中,第二模块012进一步配置用于:根据固件对主机io的命令的解析为所述主机io创建第一批控制页表,并按照执行顺序将控制块依次填充到所述第一批控制页表对应的控制块环上;设置所述固件将第一个填充的控制块的地址传递给对应引擎的工作队列,以进行排队等待。
59.在一些实施例中,第三模块013进一步配置用于:响应于检测到主动生成控制块标志,通过工作队列管理引擎向所述固件发送通知以完成控制块的首批填充,并将首批填充的控制页表对应的空间进行回收,开启对所述主机io所需控制块的执行。
60.基于以上目的,本发明实施例的第三个方面,提出了一种计算机设备,图9示出的是本发明提供的一种计算机设备的实施例的示意图。如图9所示,本发明提供的一种计算机设备的实施例,包括以下模块:至少一个处理器021;以及存储器022,存储器022存储有可在处理器021上运行的计算机指令023,计算机指令023由处理器021执行时实现如上所述方法的步骤。
61.本发明还提供了一种计算机可读存储介质。图10示出的是本发明提供的一种计算机可读存储介质的实施例的示意图。如图10所示,计算机可读存储介质031存储有被处理器执行时执行如上方法的计算机程序032。
62.最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,设置系统参数的方法的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,程序的存储介质可为磁碟、光盘、只读存储记忆体(rom)或随机存储记忆体(ram)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
63.此外,根据本发明实施例公开的方法还可以被实现为由处理器执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被处理器执行时,执行本发明实施例公开的方法中限定的上述功能。
64.此外,上述方法步骤以及系统单元也可以利用控制器以及用于存储使得控制器实现上述步骤或单元功能的计算机程序的计算机可读存储介质实现。
65.本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
66.在一个或多个示例性设计中,功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则可以将功能作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质来传送。计算机可读介质包括计算机存储介质和通信介质,该通信介质包括有助于将计算机程序从一个位置传送到另一个位置的任何介质。存储介质可以是能够被通用或专用计算机访问的任何可用介质。作为例子而非限制性的,该计算机可读介质可以包括ram、rom、eeprom、cd-rom或其它光盘存储设备、磁盘存储设备或其它磁性存储设备,或者是可以用于携带或存储形式为指令或数据结构的所需程序代码并且能够被通用或专用计算机或者通用或专用处理器访问的任何其它介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线路(dsl)或诸如红外线、无线电和微波的无线技术来从网站、服务器或其它远程源发送软件,则上述同轴线缆、光纤线缆、双绞线、d0l或诸如红外线、无线电和微波的无线技术均包括在介质的定义。如这里所使用的,磁盘和光盘包括压缩盘(cd)、激光盘、光盘、数字多功能盘(dvd)、软盘、蓝光盘,其中磁盘通常磁性地再现数据,而光盘利用激光光学地再现数据。上述内容的组合也应当包括在计算机可读介质的范围内。
67.以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
68.应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
69.上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
70.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
71.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发
明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献