发明内容
本发明实施例提供了一种验证cache一致性协议的方法及装置,能够使得验证结果更加准确。
一方面,本发明实施例提供了一种验证cache一致性协议的方法,包括:
S1:预先设置cache一致性协议的协议表项,将每个协议表项与预设状态机的一个状态对应;
S2:预先根据所述状态机和所述协议表项,建立所述cache一致性协议的形式化模型;
S3:确定待运行的协议表项;
S4:确定到达每个待运行的协议表项对应的状态的所有场景;
S5:根据每个所述场景,运行所述形式化模型;
S6:根据所述形式化模型的运行结果,验证所述cache一致性协议。
进一步地,包括:
所述S3,包括:将每个协议表项作为所述待运行的协议表项;
所述S6,包括:判断是否存在没有场景能够到达的状态,如果是,则确定所述cache一致性协议不通过验证,否则,确定所述cache一致性协议通过验证。
进一步地,包括:
所述S3,包括:将每个协议表项作为所述待运行的协议表项;
所述S6,包括:判断是否存在能够到达不止一个状态的场景,如果是,则确定所述cache一致性协议不通过验证,否则,确定所述cache一致性协议通过验证。
进一步地,还包括:预先设置至少两个协议表,其中,每个协议表包括至少一个协议表项;
还包括:预先设置任一两个协议表之间的触发条件;
所述S3,包括:将每个触发条件对应的协议表中的协议表项作为所述待运行的协议表项;
所述S5,包括:根据每个触发条件和每个触发条件对应的场景,运行所述形式化模型;
所述S6,包括:判断是否存在所有的协议表均未被触发的情况,如果是,则确定所述cache一致性协议不通过验证,否则,确定所述cache一致性协议通过验证。
进一步地,所述S3,包括:将每个协议表项作为所述待运行的协议表项;
所述S6,包括:判断在所有场景到达的状态中是否存在没有对应的协议表项的状态,如果是,则确定所述cache一致性协议不通过验证,否则,确定所述cache一致性协议通过验证。
进一步地,还包括:预先设置目录监听协议MESI检测规则,其中,所述MESI检测规则,包括:任意两个Cache不能同时为M状态;任意两个Cache不能同时为E状态;任意两个Cache的状态中M状态和E状态不能同时存在;任意两个Cache的状态中M状态和S状态不能同时存在;任意两个Cache的状态中E状态和S状态不能同时存在;主存目录状态为I状态时,所有Cache状态都为I状态;主存目录状态为S状态时,任意一个Cache不能为E状态和M状态;主存目录状态为I状态时,目录矢量必须为0;主存目录状态为E状态时,目录矢量只有一位为1;
还包括:根据所述MESI检测规则生成检查探针;
所述S6,包括:通过所述检查探针来实时检测运行中的所述形式化模型是否满足所述MESI检测规则,如果是,则所述cache一致性协议通过验证,否则,所述cache一致性协议不通过验证。
另一方面,本发明实施例提供了一种验证cache一致性协议的装置,包括:
第一设置单元,用于设置cache一致性协议的协议表项,将每个协议表项与预设状态机的一个状态对应;
建立单元,用于根据所述状态机和所述协议表项,建立形式化模型;
第一确定单元,用于确定待运行的协议表项;
第二确定单元,用于确定到达每个待运行的协议表项对应的状态的所有场景;
运行单元,用于根据每个所述场景,运行所述形式化模型;
验证单元,用于根据所述形式化模型的运行结果,验证所述cache一致性协议。
进一步地,包括:
所述第一确定单元,用于将每个协议表项作为所述待运行的协议表项;
所述验证单元,用于判断是否存在没有场景能够到达的状态,当判断结果为是时,则确定所述cache一致性协议不通过验证,当判断结果为否时,确定所述cache一致性协议通过验证。
进一步地,所述第一确定单元,用于将每个协议表项作为所述待运行的协议表项;
所述验证单元,用于判断是否存在能够到达不止一个状态的场景,当判断结果为是时,则确定所述cache一致性协议不通过验证,当判断结果为否时,确定所述cache一致性协议通过验证。
进一步地,还包括:
第二设置单元,用于设置至少两个协议表,其中,每个协议表包括至少一个协议表项;
还包括:第三设置单元,用于设置任一两个协议表之间的触发条件;
所述第一确定单元,用于将每个触发条件对应的协议表中的协议表项作为所述待运行的协议表项;
所述运行单元,用于根据每个触发条件和每个触发条件对应的场景,运行所述形式化模型;
所述验证单元,用于判断是否存在所有的协议表均未被触发的情况,当判断结果为是时,则确定所述cache一致性协议不通过验证,当判断结果为否时,确定所述cache一致性协议通过验证。
进一步地,所述第一确定单元,用于将每个协议表项作为所述待运行的协议表项;
所述验证单元,用于判断在所有场景到达的状态中是否存在没有对应的协议表项的状态,当判断结果为是时,则确定所述cache一致性协议不通过验证,当判断结果为否时,确定所述cache一致性协议通过验证。
进一步地,还包括:
第四设置单元,用于设置目录监听协议MESI检测规则;
其中,所述MESI检测规则,包括:任意两个Cache不能同时为M状态;任意两个Cache不能同时为E状态;任意两个Cache的状态中M状态和E状态不能同时存在;任意两个Cache的状态中M状态和S状态不能同时存在;任意两个Cache的状态中E状态和S状态不能同时存在;主存目录状态为I状态时,所有Cache状态都为I状态;主存目录状态为S状态时,任意一个Cache不能为E状态和M状态;主存目录状态为I状态时,目录矢量必须为0;主存目录状态为E状态时,目录矢量只有一位为1;
还包括:生成单元,用于根据所述MESI检测规则生成检查探针;
所述验证单元,用于通过所述检查探针来实时检测运行中的所述形式化模型是否满足所述MESI检测规则,当判断结果为是时,则所述cache一致性协议通过验证,当判断结果为否时,所述cache一致性协议不通过验证。
在本发明实施例中,通过协议表项和状态机建立形式化模型,将cache一致性协议转换为形式化模型,将cache一致性协议的逻辑体现在形式化模型中,通过运行形式化模型根据运行结果来验证cache一致性协议,根据形式化模型中的逻辑关系能够覆盖更多的错误情况,使得验证结果更加准确。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种验证cache一致性协议的方法,该方法可以包括以下步骤:
S1:预先设置cache一致性协议的协议表项,将每个协议表项与预设状态机的一个状态对应;
S2:预先根据所述状态机和所述协议表项,建立形式化模型;
S3:确定待运行的协议表项;
S4:确定到达每个待运行的协议表项对应的状态的所有场景;
S5:根据每个所述场景,运行所述形式化模型;
S6:根据所述形式化模型的运行结果,验证所述cache一致性协议。
在本发明实施例中,通过协议表项和状态机建立形式化模型,将cache一致性协议转换为形式化模型,将cache一致性协议的逻辑体现在形式化模型中,通过运行形式化模型根据运行结果来验证cache一致性协议,根据形式化模型中的逻辑关系能够覆盖更多的错误情况,使得验证结果更加准确。
下面分别从完整性、独立性、防死锁、完备性、MESI(Modified Exclusive SharedOr Invalid,目录监听协议)等方面对cache一致性协议的进行验证。
为了对cache一致性协议进行完整性验证,在一种可能的实现方式中,所述S3,包括:将每个协议表项作为所述待运行的协议表项;
所述S6,包括:判断是否存在没有场景能够到达的状态,如果是,则确定所述cache一致性协议不通过验证,否则,确定所述cache一致性协议通过验证。
在该实现方式中,已经确定出协议表项,根据协议表项可以确定出到达每个协议表项对应的状态的所有场景。如果有的状态没有任何场景能够到达,说明该cache一致性协议是不完整的,确定cache一致性协议不通过完整性验证,否则,确定cache一致性协议通过完整性验证。
另外,可以不对每个协议表项进行验证,只是验证其中一部分,因此,可以通过参数cover来标识需要在该实现方式中进行验证的协议表项,这样,只需对被标识的协议表项进行处理即可。具体地,可以通过表1的方式来标记协议表项。
表1
在表1中,第一行是参数行,第二行是形式化模型中需要标记的协议表项。
还有,在本发明实施例中,场景可以包括:到达每个协议表项对应的状态的路径。协议表项包括:行为、数据结构;行为包括:读、写、监听等,数据结构包括:地址、参数等。
为了对cache一致性协议进行独立性验证,在一种可能的实现方式中,所述S3,包括:将每个协议表项作为所述待运行的协议表项;
所述S6,包括:判断是否存在能够到达不止一个状态的场景,如果是,则确定所述cache一致性协议不通过验证,否则,确定所述cache一致性协议通过验证。
在该实现方式中,由于每个场景只能到达一个状态,如果存在能够到达不止一个状态的场景,说明cache一致性协议存在不相互独立的协议表项。具体地,判断是否存在能够到达不止一个状态的场景,如果是,则确定所述cache一致性协议不通过独立性验证,否则,确定所述cache一致性协议通过独立性验证。
另外,可以通过参数PRLL标记协议表项,然后,只对标记的协议表项进行验证。具体地,可以通过表2的方式来标记协议表项。
表2
在表2中,第一行是参数行,第二行是形式化模型中需要标记的协议表项。
为了对cache一致性协议进行防死锁验证,在一种可能的实现方式中,该方法还包括:预先设置至少两个协议表,其中,每个协议表包括至少一个协议表项;
还包括:预先设置任一两个协议表之间的触发条件;
所述S3,包括:将每个触发条件对应的协议表中的协议表项作为所述待运行的协议表项;
所述S5,包括:根据每个触发条件和每个触发条件对应的场景,运行所述形式化模型;
所述S6,包括:判断是否存在所有的协议表均未被触发的情况,如果是,则确定所述cache一致性协议不通过验证,否则,确定所述cache一致性协议通过验证。
在该实现方式中,在设置协议表时,可以根据功能来设置,例如:将所有实现下行的协议表项放到协议表A中,将所有实现上行的协议表项放到协议表B中。通过触发条件来触发协议表之间协议表项对应的状态的跳转。举例来说,协议表A中有协议表项A,协议表B中有协议表项B,为了触发协议表项A对应的状态A跳转到协议表项B对应的状态B,可以通过设置触发条件A来实现。通过触发条件能够实现协议表之间的状态跳转。形式化模型中所有协议表在任意时刻必须有一个协议表被触发,如果存在所有的协议表均未被触发的情况,表明状态的跳转至少发生在同一个协议表中,或者没有发生状态的跳转,确定cache一致性协议存在死锁情况。具体地,判断是否存在所有的协议表均未被触发的情况,如果是,则确定所述cache一致性协议不通过防死锁验证,否则,确定所述cache一致性协议通过防死锁验证。当处于所有的协议表均未被触发的情况时,协议进入一种没出口的状态,Cache和主存无法实现状态转换,它们之间以及Cache和Cache之间都无法进行消息传输。
为了对cache一致性协议进行完备性验证,在一种可能的实现方式中,所述S3,包括:将每个协议表项作为所述待运行的协议表项;
所述S6,包括:判断在所有场景到达的状态中是否存在没有对应的协议表项的状态,如果是,则确定所述cache一致性协议不通过验证,否则,确定所述cache一致性协议通过验证。
在该实现方式中,确定出到达每个协议表项的所有场景,运行形式化模型,当在所有场景中如果有任一场景所到达的状态没有对应的协议表项,则说明cache一致性协议没有覆盖所有场景,协议表项不够完备,缺少协议表项。具体地,判断在所有场景到达的状态中是否存在没有对应的协议表项的状态,如果是,则确定所述cache一致性协议不通过完备性验证,否则,确定所述cache一致性协议通过完备性验证。另外,可以通过参数FULL标记协议表项,然后,只对标记的协议表项进行验证。具体地,可以通过表3的方式来标记协议表项。
表3
在表3中,第一行是参数行,第二行是形式化模型中需要标记的协议表项。
为了对cache一致性协议进行MESI验证,在一种可能的实现方式中,该方法还包括:预先设置MESI检测规则,其中,所述MESI检测规则,包括:
任意两个Cache不能同时为M状态;任意两个Cache不能同时为E状态;任意两个Cache的状态中M状态和E状态不能同时存在;任意两个Cache的状态中M状态和S状态不能同时存在;任意两个Cache的状态中E状态和S状态不能同时存在;主存目录状态为I状态时,所有Cache状态都为I状态;主存目录状态为S状态时,任意一个Cache不能为E状态和M状态;主存目录状态为I状态时,目录矢量必须为0;主存目录状态为E状态时,目录矢量只有一位为1;
还包括:根据所述MESI检测规则生成检查探针;
所述S6,包括:通过所述检查探针来实时检测运行中的所述形式化模型是否满足所述MESI检测规则,如果是,则所述cache一致性协议通过验证,否则,所述cache一致性协议不通过验证。
在MESI中,M状态表示这行数据有效,数据被修改了,和内存中的数据不一致,数据只存在于本cache中;E状态表示这行数据有效,数据和内存中的数据一致,数据只存在于本cache中;S状态表示这行数据有效,数据和内存中的数据一致,数据存在于很多cache中;I状态表示这行数据无效。
在该实现方式中,将预设的MESI检测规则生成检查探针,通过检查探针对运行中的形式化模型进行检测,判断形式化模型在运行过程中是否满足规则的要求。在这种实现方式中,预设的规则不影响形式化模型的运行,检查探针与形式化模型是平行的,保证了形式化模型的独立完整性,这样,可以根据需要来设置规则,而不会因为规则的改变对形式化模型造成影响,能够更加方便地、更加全面地对cache一致性协议进行验证。
另外,可以通过参数NEVER标记协议表项,然后,只对标记的协议表项进行验证。具体地,MESI检测规则的定义可以通过表4来实现。
表4
参数部分是NEVER这是固定的,表示该情况是不允许发生的;第二部分同形式化模型主体类似,但是定义的是根据需要设计定义的检查探针。
需要说明的是:针对参数COVER、参数PRLL、参数FULL,如果这三个参数要标记的协议表项相同,则可以通过同一个表来实现。具体地,如表5所示。
表5
在表5中,第一行是参数行,第二行是形式化模型中需要标记的协议表项。在参数行中几个参数是并列独立存在,参数之间不会相互影响。
如图2所示,本发明实施例提供了一种验证cache一致性协议的方法,该方法可以包括以下步骤:
步骤201:预先设置cache一致性协议的协议表项,将每个协议表项与预设状态机的一个状态对应。
具体地,在进行协议表项的定义时可以根据具体的测试环境来定义。协议表项可以包括:数据结构、行为,数据结构包括:地址、参数等,行为包括:读、写、监听等。协议表项还要根据具体的测试环境来定义。举例来说,测试环境为:2个cache、2个CPU,协议表项A为:cache1的数据结构为地址1,行为是读,cache2的数据结构为地址2,行为是监听。而该协议表项A对应于状态机的一个状态A。经过事件的触发,协议表项A对应的状态A可能会跳转到协议表项B对应的状态B。
步骤202:预先设置两个以上协议表,其中,每个协议表包括至少一个协议表项。
举例来说,设置有10个协议表项,其中,4个是用于接收功能,6个是用于发送功能,则可以根据功能设置两个协议表,分别是协议表A和协议表B,协议表A对应于接收功能,其中包括4个协议表项,协议表B对应于发送功能,其中包括6个协议表项。
步骤203:预先根据所述状态机和所述协议表项,建立所述cache一致性协议的形式化模型。
该形式化模型是基于状态机的,随着形式化模型的运行,状态机中的状态会发生跳转。这里的形式化模型可以是表格状态机形式的。
步骤204:确定到达每个协议表项对应的状态的所有场景。
可以根据形式化模型,穷举出到达每个协议表项对应的状态的所有场景。举例来说,状态A、状态B、状态C,到达状态A的场景有:场景1:由状态B直接到状态A,场景2:由状态B到状态C再到状态A。这里场景可以是到达某个状态的路径。另外,发生状态的转换可以还需要一些事件作为触发条件,因此,场景中还可以包括触发条件。例如:场景1:在处于状态B时,经过触发条件A,能够到达状态A。
步骤205:根据每个协议表项对应的每个场景,运行所述形式化模型。
举例来说,对应上述的场景1,可以将形式化模型的状态设置为状态B,按照状态B运行,经过触发条件A进行触发。
步骤206:判断是否存在没有场景能够到达的状态,如果是,则确定所述cache一致性协议不通过验证,否则,确定所述cache一致性协议通过验证。
举例来说,针对上述的状态A,在运行形式化模型的过程中,通过场景1和场景2都不能到达状态A,因此,状态A就是没有场景能够到达的状态,无法通过验证。
步骤207:判断是否存在能够到达不止一个状态的场景,如果是,则确定所述cache一致性协议不通过验证,否则,确定所述cache一致性协议通过验证。
举例来说,针对上述的状态A,在运行形式化模型的过程中,通过场景1,不仅能够到达状态A,还能到达状态C,那么,状态A和状态C不是独立的存在冲突,无法通过验证。
步骤208:判断在所有场景到达的状态中是否存在没有对应的协议表项的状态,如果是,则确定所述cache一致性协议不通过验证,否则,确定所述cache一致性协议通过验证。
举例来说,针对场景1,根据场景1运行形式化模型后,到达了状态D,但是,状态D在协议表A和协议表B中都没有对应的协议表项,则说明协议表项不完备,无法通过验证。
另外,本发明实施例还可以包括:预先设置目录监听协议MESI检测规则,其中,所述MESI检测规则,包括:
任意两个Cache不能同时为M状态;任意两个Cache不能同时为E状态;任意两个Cache的状态中M状态和E状态不能同时存在;任意两个Cache的状态中M状态和S状态不能同时存在;任意两个Cache的状态中E状态和S状态不能同时存在;主存目录状态为I状态时,所有Cache状态都为I状态;主存目录状态为S状态时,任意一个Cache不能为E状态和M状态;主存目录状态为I状态时,目录矢量必须为0;主存目录状态为E状态时,目录矢量只有一位为1;
在步骤205之前,还包括:根据所述MESI检测规则生成检查探针;
在步骤205之后,包括:通过所述检查探针来实时检测运行中的所述形式化模型是否满足所述MESI检测规则,如果是,则所述cache一致性协议通过验证,否则,所述cache一致性协议不通过验证。
举例来说,针对规则:任意两个Cache不能同时为M状态来说,当在运行形式化模型的过程中,出现了任意两个cache同时为M状态,则该cache一致性协议不符合规则,不能通过验证。
在本发明实施例中,采用Excel表格格式进行循环状态机和状态列举的验证,通过表格探针模式来进行验证。
通过在本发明实施例,丰富了形式化验证手段,使得形式化验证的自动化得到提升,具有快速、准确、自动化的优点。
如图3、图4所示,本发明实施例提供了一种验证cache一致性协议的装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图3所示,为本发明实施例提供的一种验证cache一致性协议的装置所在设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图4所示,作为一个逻辑意义上的装置,是通过其所在设备的CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。本实施例提供的一种验证cache一致性协议的装置,包括:
第一设置单元401,用于设置cache一致性协议的协议表项,将每个协议表项与预设状态机的一个状态对应;
建立单元402,用于根据所述状态机和所述协议表项,建立形式化模型;
第一确定单元403,用于确定待运行的协议表项;
第二确定单元404,用于确定到达每个待运行的协议表项对应的状态的所有场景;
运行单元405,用于根据每个所述场景,运行所述形式化模型;
验证单元406,用于根据所述形式化模型的运行结果,验证所述cache一致性协议。
在一种可能的实现方式中,所述第一确定单元403,用于将每个协议表项作为所述待运行的协议表项;
所述验证单元406,用于判断是否存在没有场景能够到达的状态,当判断结果为是时,则确定所述cache一致性协议不通过验证,当判断结果为否时,确定所述cache一致性协议通过验证。
在一种可能的实现方式中,所述第一确定单元403,用于将每个协议表项作为所述待运行的协议表项;
所述验证单元406,用于判断是否存在能够到达不止一个状态的场景,当判断结果为是时,则确定所述cache一致性协议不通过验证,当判断结果为否时,确定所述cache一致性协议通过验证。
在一种可能的实现方式中,还包括:
第二设置单元,用于设置至少两个协议表,其中,每个协议表包括至少一个协议表项;
还包括:第三设置单元,用于设置任一两个协议表之间的触发条件;
所述第一确定单元403,用于将每个触发条件对应的协议表中的协议表项作为所述待运行的协议表项;
所述运行单元405,用于根据每个触发条件和每个触发条件对应的场景,运行所述形式化模型;
所述验证单元406,用于判断是否存在所有的协议表均未被触发的情况,当判断结果为是时,则确定所述cache一致性协议不通过验证,当判断结果为否时,确定所述cache一致性协议通过验证。
在一种可能的实现方式中,所述第一确定单元403,用于将每个协议表项作为所述待运行的协议表项;
所述验证单元406,用于判断在所有场景到达的状态中是否存在没有对应的协议表项的状态,当判断结果为是时,则确定所述cache一致性协议不通过验证,当判断结果为否时,确定所述cache一致性协议通过验证。
在一种可能的实现方式中,还包括:
第四设置单元,用于设置目录监听协议MESI检测规则;
其中,所述MESI检测规则,包括:任意两个Cache不能同时为M状态;任意两个Cache不能同时为E状态;任意两个Cache的状态中M状态和E状态不能同时存在;任意两个Cache的状态中M状态和S状态不能同时存在;任意两个Cache的状态中E状态和S状态不能同时存在;主存目录状态为I状态时,所有Cache状态都为I状态;主存目录状态为S状态时,任意一个Cache不能为E状态和M状态;主存目录状态为I状态时,目录矢量必须为0;主存目录状态为E状态时,目录矢量只有一位为1;
还包括:生成单元,用于根据所述MESI检测规则生成检查探针;
所述验证单元406,用于通过所述检查探针来实时检测运行中的所述形式化模型是否满足所述MESI检测规则,当判断结果为是时,则所述cache一致性协议通过验证,当判断结果为否时,所述cache一致性协议不通过验证。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本发明实施例至少具有如下有益效果:
1、在本发明实施例中,通过协议表项和状态机建立形式化模型,将cache一致性协议转换为形式化模型,将cache一致性协议的逻辑体现在形式化模型中,通过运行形式化模型根据运行结果来验证cache一致性协议,根据形式化模型中的逻辑关系能够覆盖更多的错误情况,使得验证结果更加准确。
2、在本发明实施例中,以协议表项为单位进行验证,当发现问题后,可以定位到具体的某一条协议表项,在调试复现时便不需要整个模型都运行,只需单独对问题协议表项进行单独的运行就可以,效率大大提升,发现问题的时间得到大大缩减,在分析和复现问题上也提供了方便。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。