CN105912415B - 一种验证cache一致性协议的方法及装置 - Google Patents

一种验证cache一致性协议的方法及装置 Download PDF

Info

Publication number
CN105912415B
CN105912415B CN201610204354.7A CN201610204354A CN105912415B CN 105912415 B CN105912415 B CN 105912415B CN 201610204354 A CN201610204354 A CN 201610204354A CN 105912415 B CN105912415 B CN 105912415B
Authority
CN
China
Prior art keywords
state
cache
checking
protocol item
cache consistency
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
Application number
CN201610204354.7A
Other languages
English (en)
Other versions
CN105912415A (zh
Inventor
王振江
王朝辉
钟俊华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Inspur Electronic Information Industry Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN201610204354.7A priority Critical patent/CN105912415B/zh
Publication of CN105912415A publication Critical patent/CN105912415A/zh
Application granted granted Critical
Publication of CN105912415B publication Critical patent/CN105912415B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明提供了一种验证cache一致性协议的方法及装置,该方法,包括:预先设置cache一致性协议的协议表项,将每个协议表项与预设状态机的一个状态对应;预先根据所述状态机和所述协议表项,建立所述cache一致性协议的形式化模型;确定待运行的协议表项;确定到达每个待运行的协议表项对应的状态的所有场景;根据每个所述场景,运行所述形式化模型;根据所述形式化模型的运行结果,验证所述cache一致性协议。本发明提供了一种验证cache一致性协议的方法及装置,能够使得验证结果更加准确。

Description

一种验证cache一致性协议的方法及装置
技术领域
本发明涉及计算机技术领域,特别涉及一种验证cache一致性协议的方法及装置。
背景技术
近年来随着集成电路技术的不断发展引发了多内核技术的出现,因为CPU的速度远高于存储器的速度,成为了限制处理器发展的“技术瓶颈”。Cache(高速缓存)的出现很好的解决了这个问题,Cache是存在于主存和CPU之间的一级存储器,然而在应用时会出现Cache一致性问题。当两个或两个以上的Cache包含有同一数据块时,如果其中任何一个Cache对该数据块进行修改,包含有该数据块的其他Cache如果没有及时将数据进行更新就会产生数据不一致的情况。Cache一致性协议就是维护多个Cache数据的一致性。Cache一致性协议是多核处理机系统的核心,所以对cache一致性进行形式化验证是一项非常重要的工作。
现有技术中,一般都采用模拟或仿真技术进行cache一致性协议的验证。具体地,通过模拟或仿真cache之间的数据交互来验证cache一致性协议。
但是,现有技术的验证cache一致性协议的方案,随着协议的复杂性的增加,无法覆盖所有的错误情况,验证结果不够准确。
发明内容
本发明实施例提供了一种验证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一致性协议的方法的流程图;
图2是本发明一实施例提供的另一种验证cache一致性协议的方法的流程图;
图3是本发明一实施例提供的一种验证cache一致性协议的装置的示意图;
图4是本发明一实施例提供的另一种验证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
参数 cover
协议表项 协议表项的具体内容
在表1中,第一行是参数行,第二行是形式化模型中需要标记的协议表项。
还有,在本发明实施例中,场景可以包括:到达每个协议表项对应的状态的路径。协议表项包括:行为、数据结构;行为包括:读、写、监听等,数据结构包括:地址、参数等。
为了对cache一致性协议进行独立性验证,在一种可能的实现方式中,所述S3,包括:将每个协议表项作为所述待运行的协议表项;
所述S6,包括:判断是否存在能够到达不止一个状态的场景,如果是,则确定所述cache一致性协议不通过验证,否则,确定所述cache一致性协议通过验证。
在该实现方式中,由于每个场景只能到达一个状态,如果存在能够到达不止一个状态的场景,说明cache一致性协议存在不相互独立的协议表项。具体地,判断是否存在能够到达不止一个状态的场景,如果是,则确定所述cache一致性协议不通过独立性验证,否则,确定所述cache一致性协议通过独立性验证。
另外,可以通过参数PRLL标记协议表项,然后,只对标记的协议表项进行验证。具体地,可以通过表2的方式来标记协议表项。
表2
参数 PRLL
协议表项 协议表项的具体内容
在表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
参数 FULL
协议表项 协议表项的具体内容
在表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
检查探针 MESI检测规则
参数部分是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、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种验证cache一致性协议的方法,其特征在于,包括:
S1:预先设置cache一致性协议的协议表项,将每个协议表项与预设状态机的一个状态对应;
S2:预先根据所述状态机和所述协议表项,建立所述cache一致性协议的形式化模型;
S3:确定待运行的协议表项;
S4:确定到达每个待运行的协议表项对应的状态的所有场景;
S5:根据每个所述场景,运行所述形式化模型;
S6:根据所述形式化模型的运行结果,验证所述cache一致性协议。
2.根据权利要求1所述的方法,其特征在于,包括:
所述S3,包括:将每个协议表项作为所述待运行的协议表项;
所述S6,包括:判断是否存在没有场景能够到达的状态,如果是,则确定所述cache一致性协议不通过验证,否则,确定所述cache一致性协议通过验证。
3.根据权利要求1所述的方法,其特征在于,包括:
所述S3,包括:将每个协议表项作为所述待运行的协议表项;
所述S6,包括:判断是否存在能够到达不止一个状态的场景,如果是,则确定所述cache一致性协议不通过验证,否则,确定所述cache一致性协议通过验证。
4.根据权利要求1所述的方法,其特征在于,
还包括:预先设置至少两个协议表,其中,每个协议表包括至少一个协议表项;
还包括:预先设置任一两个协议表之间的触发条件;
所述S3,包括:将每个触发条件对应的协议表中的协议表项作为所述待运行的协议表项;
所述S5,包括:根据每个触发条件和每个触发条件对应的场景,运行所述形式化模型;
所述S6,包括:判断是否存在所有的协议表均未被触发的情况,如果是,则确定所述cache一致性协议不通过验证,否则,确定所述cache一致性协议通过验证。
5.根据权利要求1所述的方法,其特征在于,
所述S3,包括:将每个协议表项作为所述待运行的协议表项;
所述S6,包括:判断在所有场景到达的状态中是否存在没有对应的协议表项的状态,如果是,则确定所述cache一致性协议不通过验证,否则,确定所述cache一致性协议通过验证。
6.根据权利要求1所述的方法,其特征在于,
还包括:预先设置目录监听协议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一致性协议不通过验证。
7.一种验证cache一致性协议的装置,其特征在于,包括:
第一设置单元,用于设置cache一致性协议的协议表项,将每个协议表项与预设状态机的一个状态对应;
建立单元,用于根据所述状态机和所述协议表项,建立形式化模型;
第一确定单元,用于确定待运行的协议表项;
第二确定单元,用于确定到达每个待运行的协议表项对应的状态的所有场景;
运行单元,用于根据每个所述场景,运行所述形式化模型;
验证单元,用于根据所述形式化模型的运行结果,验证所述cache一致性协议。
8.根据权利要求7所述的装置,其特征在于,包括:
所述第一确定单元,用于将每个协议表项作为所述待运行的协议表项;
所述验证单元,用于判断是否存在没有场景能够到达的状态,当判断结果为是时,则确定所述cache一致性协议不通过验证,当判断结果为否时,确定所述cache一致性协议通过验证;
和/或,
所述第一确定单元,用于将每个协议表项作为所述待运行的协议表项;
所述验证单元,用于判断是否存在能够到达不止一个状态的场景,当判断结果为是时,则确定所述cache一致性协议不通过验证,当判断结果为否时,确定所述cache一致性协议通过验证。
9.根据权利要求7所述的装置,其特征在于,还包括:
第二设置单元,用于设置至少两个协议表,其中,每个协议表包括至少一个协议表项;
还包括:第三设置单元,用于设置任一两个协议表之间的触发条件;
所述第一确定单元,用于将每个触发条件对应的协议表中的协议表项作为所述待运行的协议表项;
所述运行单元,用于根据每个触发条件和每个触发条件对应的场景,运行所述形式化模型;
所述验证单元,用于判断是否存在所有的协议表均未被触发的情况,当判断结果为是时,则确定所述cache一致性协议不通过验证,当判断结果为否时,确定所述cache一致性协议通过验证;
和/或,
所述第一确定单元,用于将每个协议表项作为所述待运行的协议表项;
所述验证单元,用于判断在所有场景到达的状态中是否存在没有对应的协议表项的状态,当判断结果为是时,则确定所述cache一致性协议不通过验证,当判断结果为否时,确定所述cache一致性协议通过验证。
10.根据权利要求7所述的装置,其特征在于,还包括:
第四设置单元,用于设置目录监听协议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一致性协议不通过验证。
CN201610204354.7A 2016-04-05 2016-04-05 一种验证cache一致性协议的方法及装置 Active CN105912415B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610204354.7A CN105912415B (zh) 2016-04-05 2016-04-05 一种验证cache一致性协议的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610204354.7A CN105912415B (zh) 2016-04-05 2016-04-05 一种验证cache一致性协议的方法及装置

Publications (2)

Publication Number Publication Date
CN105912415A CN105912415A (zh) 2016-08-31
CN105912415B true CN105912415B (zh) 2017-12-29

Family

ID=56745309

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610204354.7A Active CN105912415B (zh) 2016-04-05 2016-04-05 一种验证cache一致性协议的方法及装置

Country Status (1)

Country Link
CN (1) CN105912415B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107688545B (zh) * 2016-12-23 2021-01-19 北京国睿中数科技股份有限公司 高速缓存的一致性状态预置方法及系统
CN107368434B (zh) * 2017-07-21 2020-08-04 苏州浪潮智能科技有限公司 一种验证Cache一致性协议的装置及方法
CN111782217B (zh) * 2020-06-23 2023-05-09 上海赛昉科技有限公司 快速高效产生cache一致性测试C程序的系统及方法
CN115618801B (zh) * 2022-12-01 2023-04-07 北京智芯微电子科技有限公司 缓存一致性检验方法、装置及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101446987A (zh) * 2007-11-27 2009-06-03 上海高性能集成电路设计中心 一种用于多核处理器Cache一致性实物验证的装置
CN102103568A (zh) * 2011-01-30 2011-06-22 中国科学院计算技术研究所 片上多核处理器系统的高速缓存一致性协议的实现方法
CN104008068A (zh) * 2014-05-30 2014-08-27 复旦大学 一种基于MSI协议的双核Cache一致性系统电路结构
CN104360981A (zh) * 2014-11-12 2015-02-18 浪潮(北京)电子信息产业有限公司 面向多核多处理器平台的Cache一致性协议的设计方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7836257B2 (en) * 2007-12-19 2010-11-16 International Business Machines Corpation System and method for cache line replacement selection in a multiprocessor environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101446987A (zh) * 2007-11-27 2009-06-03 上海高性能集成电路设计中心 一种用于多核处理器Cache一致性实物验证的装置
CN102103568A (zh) * 2011-01-30 2011-06-22 中国科学院计算技术研究所 片上多核处理器系统的高速缓存一致性协议的实现方法
CN104008068A (zh) * 2014-05-30 2014-08-27 复旦大学 一种基于MSI协议的双核Cache一致性系统电路结构
CN104360981A (zh) * 2014-11-12 2015-02-18 浪潮(北京)电子信息产业有限公司 面向多核多处理器平台的Cache一致性协议的设计方法

Also Published As

Publication number Publication date
CN105912415A (zh) 2016-08-31

Similar Documents

Publication Publication Date Title
CN105912415B (zh) 一种验证cache一致性协议的方法及装置
Cohn The notion of proof in hardware verification
US8732838B2 (en) Evaluating the effectiveness of a threat model
CN103197914B (zh) 多处理器延迟执行的方法和系统
CN112793633B (zh) 一种联锁系统自动化测试进路防护区段的方法及装置
CN101339501A (zh) 基于有向图的ws-bpel控制环路检测方法
CN106487603A (zh) 一种响应测试方法及装置
CN106874484A (zh) 一种数据导入的方法及装置
CN109101416A (zh) 一种内核故障注入方法及电子设备
CN109753391A (zh) 处理器的一个或多个结构的功能测试的系统、装置和方法
CN104281805B (zh) 安全保护方法和处理器
CN107423171A (zh) 基于pcie标准的插槽式功能扩展卡的检测方法及装置
CN107908420A (zh) 一种代码处理方法、装置及系统
CN110188049A (zh) 容器管理方法、装置以及电子设备
CN109002294A (zh) 一种代码审查方法、装置、设备及可读存储介质
CN107294814A (zh) 一种片上网络的测试方法及装置
CN105446856B (zh) 电子设备接口的检测方法、装置
US9158665B2 (en) Unit test of multi-threaded object-oriented applications using mocks
CN107909747B (zh) 一种纸币信息的获取方法、获取装置及终端设备
CN108829903B (zh) 判定fpga冗余设计的代码与综合后电路一致性的方法和系统
Alawneh et al. A unified approach for verification and validation of systems and software engineering models
Wen et al. Diagnosability analysis based on T-invariants of Petri nets
CN103186447B (zh) 一种总线读写检测装置
JP2007536661A (ja) 二次的に実行されるプロセスにおけるデッドロックを検出する方法
Calvagna et al. Combinatorial interaction testing of a Java Card static verifier

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20180813

Address after: 250101 S06 tower, 1036, Chao Lu Road, hi tech Zone, Ji'nan, Shandong.

Patentee after: Shandong wave cloud Mdt InfoTech Ltd

Address before: No. 1036, Shandong high tech Zone wave road, Ji'nan, Shandong

Patentee before: Langchao Electronic Information Industry Co., Ltd.

TR01 Transfer of patent right
CP03 Change of name, title or address

Address after: 250100 No. 1036 Tidal Road, Jinan High-tech Zone, Shandong Province, S01 Building, Tidal Science Park

Patentee after: Inspur cloud Information Technology Co., Ltd

Address before: 250101 S06 tower, 1036, Chao Lu Road, hi tech Zone, Ji'nan, Shandong.

Patentee before: SHANDONG LANGCHAO YUNTOU INFORMATION TECHNOLOGY Co.,Ltd.

CP03 Change of name, title or address