发明内容
本发明提供一种异构多核处理器多层应用程序的执行方法及处理器,以简化多层异构多核处理器的复杂程序关系,确保程序的正确执行,和提高运行效率。
本发明的第一个方面是提供一种异构多核处理器多层应用程序的执行方法,包括:
将所有任意第i层处理器程序中的可执行程序和控制流关系数据库装载到共享程序存储器中,令i=1,生成并将第(i+1)层处理器的程序地址映射表存储在共享关系存储器53中;
判断第i层处理器是否需要对第(i+1)层处理器执行调用程序;
若第i层处理器需要对第(i+1)层处理器执行调用程序,则判断(i+1)<n是否成立;
若(i+1)<n,则等待第i层处理器中所述调用程序前面的程序执行完毕,再在共享关系存储器53中解析所述控制流关系数据库并查找所述第(i+1)层处理器的程序地址映射表得到在所述第(i+1)层处理器中所述调用程序对应的待访问地址、在所述第(i+1)层处理器中将所述调用程序从待访问地址处装载到指令存储器中,解析所述控制流关系数据库再生成并将第(i+2)层处理器的程序地址映射表存储在所述共享关系存储器53中,令i自加1,重复执行所述判断第i层处理器是否需要执行调用程序、所述判断(i+1)<n是否成立、所述等待第i层处理器中所述调用程序前面的程序执行完毕、所述在共享程序存储器中装载调用程序和所述生成并将第(i+2)层处理器的程序地址映射表存储的过程,直至(i+1)=n;
其中,n表示异构多核处理器包含的处理器层数,i≤n,n≥2。
本发明的第二个方面是提供一种异构多核处理器,包括多个第i层处理器和共享程序存储器;
所述共享程序存储器用于装载所有任意第i层处理器程序中的可执行程序和控制流关系数据库,令i=1,生成并将第(i+1)层处理器的程序地址映射表存储在共享关系存储器53中;
所述第i层处理器用于在判断第i层处理器需要对第(i+1)层处理器执行调用程序且在判断(i+1)<n成立时,等待第i层处理器中所述调用程序前面的程序执行完毕,再在共享关系存储器53中解析所述控制流关系数据库并查找所述第(i+1)层处理器的程序地址映射表得到在所述第(i+1)层处理器中所述调用程序对应的待访问地址、在所述第(i+1)层处理器中将所述调用程序从待访问地址处装载到指令存储器中,解析所述控制流关系数据库再生成并将第(i+2)层处理器的程序地址映射表存储在所述共享关系存储器53中,令i自加1,重复执行所述判断第i层处理器是否需要执行调用程序、所述判断(i+1)<n是否成立、所述等待第i层处理器中所述调用程序前面的程序执行完毕、所述在共享程序存储器中装载调用程序和所述生成并将第(i+2)层处理器的程序地址映射表存储的过程,直至(i+1)=n;
其中,n表示异构多核处理器包含的处理器层数,i≤n,n≥2
本发明的有益效果为:
本发明异构多核处理器多层应用程序的执行方法通过将全部处理器程序中的可执行程序和控制流关系数据库装载到共享程序存储器中,生成并将当前层处理器的程序地址映射表存储在共享关系存储器中,然后判断当前处理器是否需要对下一层处理器执行调用程序,若需要对第下层处理器执行调用程序,则在所述下层处理器中将所述调用程序从待访问地址处装载到指令存储器中,生成下下层处理器的程序地址映射表并将该映射表存储在所述共享关系存储器中,以此方式进行多层程序的逐层调用,并且最终通过相邻处理器间的局部数据存储器对各处理器执行的结果数据进行逐层返回,实现异构多核处理器多层程序的执行,该方法能够简化多层异构多核处理器的复杂程序关系、确保程序的正确执行和提高运行效率。
附图说明
图1为本发明异构多核处理器多层应用程序的执行方法实施例一的流程图;
图2为本发明异构多核处理器多层应用程序的执行方法实施例一中具有n种不同功能部件的异构多核处理器体系结构;
图3为本发明异构多核处理器多层应用程序的执行方法实施例一中异构多核处理器多层程序的体系结构图;
图4为本发明异构多核处理器多层应用程序的执行方法实施例一中异构多核处理器多层程序的组织结构图;
图5为本发明异构多核处理器的结构框图;
图中:50-对应共享程序存储器,存储程序执行结果数据,程序代码,以及控制流关系数据库等;
51-对应局部数据存储器,主要存储相邻加速处理器之间数据的直接传送,以及和共享程序存储器的间接数据传送;
52-对应指令存储器,存储相应层次处理器的程序;
53-对应共享关系存储器,存储相邻层次处理器程序的调用的函数地址大小映射表;
100-即为通用处理器,负责各处理器之间的任务分配,同步与调度;
101-对应第2层处理器,即加速处理器1,负责部分的简单运算和配置第3层处理器;
102-对应第3层处理器,即加速处理器2,负责部分的简单运算和配置第4层处理器;
103-对应第4层处理器,即加速处理器3,负责部分的简单运算和配置第5层处理器;
104-对应第n层处理器,即加速处理器n-1,负责大部分的向量/矩阵/变换类运算;
201-对应处理器与存储器之间的间接的间接访问,如DMA访问;
202-对应第1层处理器程序与共享程序存储器间数据的直接传送,也即处理器与存储器之间的直接反问,如访存指令、取指令操作;
203-对应相邻层次的处理器之间程序的调用;
1000-对应专用加速引擎,其包括n-1个加速处理器核,n-2个局部数据存储器等;
300-对应通用处理器,负责各处理器之间的任务分配,同步和调用;
301-对应标量处理器,即第2层处理器,负责配置微码处理器302程序和部分标量运算;
302-对应微码处理器,即第3层处理器,负责大部分的向量/矩阵/变换类运算;
310-对应共享程序存储器,其与通用处理器300进行直接的数据交互,主要用来存取程序,运算数据和控制流关系数据库等;
312:对应局部数据存储器,用于标量处理器301程序与微码处理器302程序间数据的直接存取,还能与共享程序存储器310进行间接的数据交互;
311-对应标量处理器301的指令存储器,用于存储标量处理器程序;
313-对应微码处理器302的微码指令存储器,用于存储微码处理器程序;
314-对应共享关系存储器,存储相邻层次处理器程序的调用的函数地址大小映射表;
351-对应数据间的间接传送;
361-对应数据的直接传送;
371:对应相邻处理器间程序的调用;
2000-对应代数处理引擎,其包括一个标量处理器301,一个微码处理器302和一个局部数据存储器312等。
具体实施方式
图1为本发明异构多核处理器多层应用程序的执行方法实施例一的流程图,如图1所示,本发明异构多核处理器多层应用程序的执行方法包括:
S1、将所有任意第i层处理器程序中的可执行程序和控制流关系数据库装载到共享程序存储器中,令i=1,生成并将第(i+1)层处理器的程序地址映射表存储在共享关系存储器中,这一步骤也就是对共享程序存储器的初始化过程;
S2、判断第i层处理器是否需要对第(i+1)层处理器执行调用程序;
S3、若第i层处理器需要对第(i+1)层处理器执行调用程序,则判断(i+1)<n是否成立;
其中,n表示异构多核处理器包含的处理器层数,i≤n,n≥2。
S4、若(i+1)<n,则等待第i层处理器中所述调用程序前面的程序执行完毕;
S5、再在共享关系存储器中解析所述控制流关系数据库并查找所述第(i+1)层处理器的程序地址映射表得到在所述第(i+1)层处理器中所述调用程序对应的待访问地址;
S6、在所述第(i+1)层处理器中将所述调用程序从待访问地址处装载到指令存储器中;
S7、解析所述控制流关系数据库再生成并将第(i+2)层处理器的程序地址映射表存储在所述共享关系存储器中;
S8、令i自加1,重复执行所述判断第i层处理器是否需要执行调用程序、所述判断(i+1)<n是否成立、所述等待第i层处理器中所述调用程序前面的程序执行完毕、所述在共享程序存储器中查找以装载调用程序和所述生成并将第(i+2)层处理器的程序地址映射表存储的过程,直至(i+1)=n;也即循环所述S2~S8直至下一层处理器为最底层处理器;
S9、若(i+1)=n,则判断所述调用程序是否为阻塞调用;
S10、若所述调用程序为阻塞调用,则等待第i层处理器中所述调用程序前面的程序执行完毕;
S11、在共享关系存储器中解析所述控制流关系数据库并查找所述第(i+1)层处理器的程序地址映射表得到在所述第(i+1)层处理器中所述调用程序对应的待访问地址;
S12、在所述第(i+1)层处理器中将所述调用程序从待访问地址处装载到指令存储器中;
S13、令i自加1;
S14、在第i层处理器中执行余下的程序得到执行结果;
S15、向第i层处理器与第(i-1)层处理器之间的局部数据存储器返回或间接向所述共享程序存储器返回所述执行结果;
S16、判断第一层处理器是否执行完全部程序;
S17、若第一层处理器未执行完全部程序,则令i自减1,重复执行所述执行余下的程序、所述返回结果和所述判断第一层处理器是否执行完的过程,也即循环所述S14~S17步骤直至第一层处理器也即通用处理器执行完全部程序;
S18、若第一层处理器执行完全部程序,则向共享程序存储器返回执行结果。
优选的,实施例一的第二种实现方式中S1~S8与第一种实施方式S1~S8相同,不同之处在于,在所述判断(i+1)<n是否成立之后,包括:
S9、若(i+1)=n,且第i层处理器需要对第(i+1)层处理器执行调用程序,则判断所述调用程序是否为阻塞调用;
S11、若所述调用程序为非阻塞调用,则在共享关系存储器中查找并解析控制流关系数据库中的第(i+1)层处理器程序的程序地址映射表;程序映射地址表即根据初始化时生成的得到所述调用程序对应的待访问地址;
S12、将程序从第(i+1)层处理器的待访问地址处装载到第(i+1)层处理器的指令存储器中;
S13、令i自加1;
S14、在第i层处理器中执行余下的程序得到执行结果;
S15、向第i层处理器与第(i-1)层处理器之间的局部数据存储器返回或间接向所述共享程序存储器返回所述执行结果;
S16、判断第一层处理器是否执行完全部程序;
S17、若第一层处理器未执行完全部程序,则令i自减1,重复执行所述执行余下的程序、所述返回结果和所述判断第一层处理器是否执行完的过程;
S18、若第一层处理器执行完全部程序,则向共享程序存储器返回执行结果。
优选的,实施例一的第三种实现方式中S1~S8与第一种实施方式相同,不同之处在于,在所述判断第i层处理器是否需要对第(i+1)层处理器执行调用程序之后,包括:
S14、若第i层处理器不需要对第(i+1)层处理器执行调用程序(包括i=n),则在所述第i层处理器中执行余下的程序得到执行结果;
S15、向第i层处理器与第(i-1)层处理器之间的局部数据存储器返回或间接向所述共享程序存储器返回所述执行结果;需要说明的是,第二层处理器可以间接向所述共享程序存储器返回所述执行结果,也可以向第i层处理器与第(i+1)层处理器之间的局部存储器返回所述执行结果;
S16、判断第一层处理器是否执行完全部程序;
S17、若第一层处理器未执行完全部程序,则令i自减1,重复执行所述执行余下的程序、所述返回结果和所述判断第一层处理器是否执行完的过程;
S18、若第一层处理器执行完全部程序,则向共享程序存储器返回执行结果。
为了更加清楚的说明本发明异构多核处理器多层应用程序的执行方法实施例一,下面结合具体的异构多核处理器进行说明,图2为本发明异构多核处理器多层应用程序的执行方法实施例一中具有n种不同功能部件的异构多核处理器体系结构,如图2所示,本发明异构多核处理器多层应用程序的执行方法包括:
S101、各层处理器程序和控制流关系数据库的初始化。将各层处理器程序库下所有的可执行文件和控制流关系数据库分别装载到共享程序存储器50中,根据控制流关系数据库解析出第2层处理器101程序在共享程序存储器50中的地址,并生成“程序地址映射表”(存放于共享关系存储器53中),跳转至S102;
S102、第1层处理器100程序执行。若需要调用第2层处理器101程序的函数,则在共享关系存储器53中查找并解析控制流关系数据库,根据初始化时生成的第2层处理器101程序的“程序地址映射表”,将第2层处理器101程序从共享程序存储器50的指定地址处加载到第2层处理器101的指令存储器51中,并根据控制流关系数据库解析出第2层处理器程序101对应的第3层处理器102程序在共享程序存储器50中的基址和大小,生成第3层处理器102程序的基址和大小的“程序地址映射表”(存放于共享关系存储器53中),跳转至S103;若不需要,执行余下第1层处理器100程序,得到最终程序执行结果。
S103、第2层处理器101程序执行。若需要调用第3层处理器102程序的函数,则需根据共享程序存储器中第3层处理器程序的“程序地址映射表”得到所需调用的第3层处理器102程序在共享程序存储器50中的地址和大小,并将其装载到第3层处理器102的指令存储器52中,并根据控制流关系数据库解析出下一层处理器程序对应的下下层处理器程序在共享程序存储器50的地址和大小,生成下下层处理器程序的“程序地址映射表”(存放于共享关系存储器53中),跳转至S104;若不需要,则执行余下第2层处理器101程序,并将执行结果数据直接返回至第2层处理器101与第3层处理器102之间的局部数据存储器51中或间接返回至共享程序存储器50中。
S104、第i层处理器程序执行。若需要调用下层处理器程序的函数。需判断下层处理器是否为第n层处理器(即最底层处理器)。若下层处理器为最底层处理器,则在第i层处理器程序调用下层程序时需判断调用是阻塞调用还是非阻塞调用。若为阻塞调用,则等待第i层处理器程序中该调用函数前面的程序执行完毕,才跳转至S105;若为非阻塞调用,则无需等待第i层处理器程序中该调用函数前面的程序执行完毕,而直接跳转至S105。若下层处理器不是第n层处理器,则等待第i层处理器程序中该调用函数前面的程序执行完毕,才跳转至S105。若不需要调用下层处理器程序,则执行余下第i层处理器程序,并将执行结果数据返回至第i层处理器与其上一层处理器之间的局部数据存储器中,供其上一层处理器程序使用,此时令i自减1,跳转至S106。
S105、根据共享关系存储器53中下一层处理器程序的“程序地址映射表”,得到所需调用的下一层处理器程序在共享程序存储器中的地址和大小,将其装载到下一层处理器的指令存储器中,并根据控制流关系数据库解析出下一层处理器程序对应的下下层处理器程序在共享程序存储50中的地址和大小,生成下下层处理器程序的“程序地址映射表”(存放于共享关系存储器53中)。此时令i自增1,跳转至S104;
S106、执行第i层处理器程序余下的程序,判断第1层处理器程序是否执行完毕。若未执行完毕,跳转至S104;若执行完毕,则程序结束,返回最终执行结果到共享程序存储器中。
下面结合具体的应用程序对本发明异构多核处理器多层程序的执行方法进行说明,图3为本发明异构多核处理器多层应用程序的执行方法实施例一中异构多核处理器多层程序的体系结构图,图4为本发明异构多核处理器多层应用程序的执行方法实施例一中异构多核处理器多层程序的组织结构图,如图3和图4所示,本发明异构多核处理器多层程序的执行方法中可进行应用的一种异构多核处理器平台如图2和图3的左半部分所示,该异构多核处理器包含三种类型的处理器核,其中,通用处理器300称为控制处理单元,负责控制逻辑功能及一般的标量计算;标量处理器301称为标量处理单元,主要完成大部分的标量计算;微码处理器302称为微码处理单元,主要完成全部的向量/矩阵/变换类计算。每一种类型的处理器均有独立的指令集体系结构。在本实例中,异构多核处理器分别由1个通用处理器300、1个标量处理器301和1个微码处理器302所组成。同样,对于多个相同类型的处理核情况,本发明中所述的执行方法也同样适用。该异构多核处理器支持多种不同指令集,程序员按照一定的程序编写规则编写满足应用需求的源程序,并在成功编译后得到可执行的通用处理器程序,标量程序数据库,微码程序数据库和控制流关系数据库,在此前提下,应用本发明所提出的异构多核处理器多层程序执行方法对其进行执行,从而减小程序员的工作量,降低工作难度和提高异构多核处理器多层程序的执行性能。为进一步说明程序执行时的调度细节,以图3右半部分所示的程序调用结构为例进行说明。该异构多核程序中包含4个程序,其中程序A属于最高层的通用处理器300,完成主要的控制及程序启动等功能;程序B属于第2层的标量处理器301,完成标量计算及部分开启下层处理器程序的功能;程序C和程序D属于最底层的微码处理器302,完成运算量最大的向量计算等功能。同时,如图3中各个函数间的箭头关系所示,程序A在运行中需要调用程序B,程序B在运行过程中需要调用程序C和程序D。在编译之后,生成通用程序的可执行文件,控制流关系数据库,标量程序数据库(包含程序B)和微码程序数据库(包含程序C和程序D)。下面就这4个具体的程序组成的执行过程进行描述。
如图1、图3、和图4所示,本发明异构多核处理器多层程序的执行方法包括:
S107、各层处理器程序以及控制流关系数据库的初始化。将通用处理器程序(程序A),标量程序库中所有的标量程序(程序B),微码程序库中所有的微码程序(程序C和程序D)和控制流关系数据库分别加载到共享程序存储器310上,并根据控制流关系数据库解析出程序B在共享程序存储器310中的地址,生成程序B与其在共享程序存储器310中地址的“程序地址映射表”(存放于共享关系存储器314中),跳转至S108;
S108、通用处理器300程序执行。即程序A执行,在A执行过程中,需要调用程序B,则根据共享关系存储器314中的第2层处理器程序的“程序地址映射表”将B程序从共享程序存储器310装载到标量处理器301的指令存储器311中,并根据控制流关系数据库解析出程序C和程序D对应在共享程序存储器310中的地址,生成程序C和程序D的地址(在共享程序存储器310上)和大小的“程序地址映射表”,装载到共享程序存储器中,跳转至S109。
S109、标量处理器301程序执行,并调用微码处理器302程序。即程序B执行,在程序B执行的过程中,需要先调用程序C再调用程序D。在调用程序C时,若为阻塞调用,则需等待B程序中该调用函数前面的程序执行完毕之后,需要根据第3层处理器程序的“程序地址映射表”将程序C从共享程序存储器310装载到微码处理器302的微码指令存储器313中,程序C在微码处理器302上执行,并将执行结果返回至标量处理器301与微码处理器302之间的局部数据存储器312中。若为非阻塞调用,则无需等待B程序中该调用函数前面的程序执行完毕,而直接根据第3层处理器程序的“程序地址映射表”将程序C从共享程序存储器310装载到微码处理器302的微码指令存储器313中,程序C在微码处理器302上执行,并将执行结果返回至标量处理器301与微码处理器302之间的局部数据存储器312中。
然后程序B调用程序D,若为阻塞调用,则需等待B程序中该调用函数前面的程序执行完毕之后,根据第3层处理器程序的“程序地址映射表”将D程序文件从共享程序存储器310中加载到微码处理器302的微码指令存储器313中,程序D在微码处理器302上执行,将执行结果也返回至局部数据存储器312中。若为非阻塞调用,则无需等待B程序中该调用函数前面的程序执行完毕,而直接根据第3层处理器程序的“程序地址映射表”将D程序文件从共享程序存储器310中加载到微码处理器302的微码指令存储器313中,程序D在微码处理器302上执行,将执行结果也返回至局部数据存储器312中。标量处理器301执行余下的程序B,并将执行结果直接返回至局部数据存储器312或间接返回至共享程序存储器310中,供通用处理器300的程序A使用,跳转至S110;
S110、通用处理器300的程序A执行余下程序,若执行完毕,返回最终的执行结果至共享程序存储器310中。此时异构多核处理器多层应用程序执行结束。
本发明异构多核处理器多层应用程序的执行方法通过将全部处理器程序中的可执行程序和控制流关系数据库装载到共享程序存储器中,生成并将当前层处理器的程序地址映射表存储在共享关系存储器314中,然后判断当前处理器是否需要对下一层处理器执行调用程序,若需要对第下层处理器执行调用程序,则在所述下层处理器中将所述调用程序从待访问地址处装载到指令存储器中,生成下下层处理器的程序地址映射表并将该映射表存储在所述共享关系存储器314中,以此方式进行多层程序的逐层调用,并且最终通过相邻处理器间的局部数据存储器对各处理器执行的结果数据进行逐层返回,实现异构多核处理器多层程序的执行,该方法能够简化多层异构多核处理器的复杂程序关系、确保程序的正确执行和提高运行效率。
图5为本发明异构多核处理器实施例一的结构框图,如图5所示,本发明异构多核处理器,包括多个第i层处理器21、共享程序存储器22和位于第i处理器与第(i+1)处理器之间也即相邻处理器间的局部数据存储器23;
所述共享程序存储器22用于装载所有任意第i层处理器程序中的可执行程序和控制流关系数据库,令i=1,生成并将第(i+1)层处理器的程序地址映射表存储在共享关系存储器53中;
所述第i层处理器21用于在判断第i层处理器需要对第(i+1)层处理器执行调用程序且在判断(i+1)<n成立时,等待第i层处理器中所述调用程序前面的程序执行完毕,再在共享关系存储器53中解析所述控制流关系数据库并查找所述第(i+1)层处理器的程序地址映射表得到在所述第(i+1)层处理器中所述调用程序对应的待访问地址、在所述第(i+1)层处理器中将所述调用程序从待访问地址处装载到指令存储器中,解析所述控制流关系数据库再生成并将第(i+2)层处理器的程序地址映射表存储在所述共享关系存储器53中,令i自加1,重复执行所述判断第i层处理器是否需要执行调用程序、所述判断(i+1)<n是否成立、所述等待第i层处理器中所述调用程序前面的程序执行完毕、所述在共享程序存储器中查找以装载调用程序和所述生成并将第(i+2)层处理器的程序地址映射表存储的过程,直至(i+1)=n;
其中,n表示异构多核处理器包含的处理器层数,i≤n,n≥2。
所述第i处理器与第(i+1)处理器之间的局部数据存储器用于在判断第i层处理器不需要对第(i+1)层处理器执行调用程序(包括i=n),则在所述第i层处理器中执行余下的程序得到执行结果后,接收第i层处理器返回的执行结果;
或者,
所述共享程序存储器还用于在判断第二层处理器不需要对第三层处理器执行调用程序(包括i=n),则在所述第二层处理器中执行余下的程序得到执行结果后,接收第二层处理器返回的执行结果,
优选的,所述第i层处理器还可以用于在判断第一层处理器未执行完全部程序时、令i自减1、重复执行所述执行余下的程序得到执行结果、向第i处理器与第(i+1)处理器之间的局部数据存储器23返回执行结果、直至第一层处理器执行完全部程序、则向共享程序存储器返回执行结果。
优选的,所述第i处理器还可以用于:在判断(i+1)=n成立、且所述调用程序为阻塞调用时、等待第i层处理器中所述调用程序前面的程序执行完毕、再在共享关系存储器53中解析所述控制流关系数据库并查找所述第(i+1)层处理器的程序地址映射表得到在所述第(i+1)层处理器中所述调用程序对应的待访问地址、在所述第(i+1)层处理器中将所述调用程序从待访问地址处装载到指令存储器中,令i自加1、在第i层处理器中执行余下的程序得到执行结果,向第i层处理器与第(i-1)层处理器之间的局部数据存储器返回或间接向所述共享程序存储器返回所述执行结果,和在判断第一层处理器未执行完全部程序时、令i自减1、重复执行所述执行余下的程序得到执行结果、向第i处理器与第(i+1)处理器之间的局部数据存储器返回执行结果、直至第一层处理器执行完全部程序、则向共享程序存储器返回执行结果。
优选的,所述第i层处理器还可以用于:在判断(i+1)=n成立、且第i层处理器需要对第n层处理器执行调用程序、且所述调用程序为非阻塞调用时、在共享关系存储器53中查找并解析控制流关系数据库中的第(i+1)层处理器程序的程序地址映射表(根据初始化时生成的)得到所述调用程序对应的待访问地址、将程序从第(i+1)层处理器的待访问地址处装载到第(i+1)层处理器的指令存储器中,令i自加1、在第i层处理器中执行余下的程序得到执行结果、向第i层处理器与第(i-1)层处理器之间的局部数据存储器返回或间接向所述共享程序存储器返回所述执行结果,和在判断第一层处理器未执行完全部程序时、令i自减1、重复执行所述执行余下的程序得到执行结果、向第i处理器与第(i+1)处理器之间的局部数据存储器返回执行结果、直至第一层处理器执行完全部程序、则向共享程序存储器返回执行结果。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。