CN107368434B - 一种验证Cache一致性协议的装置及方法 - Google Patents
一种验证Cache一致性协议的装置及方法 Download PDFInfo
- Publication number
- CN107368434B CN107368434B CN201710601304.7A CN201710601304A CN107368434B CN 107368434 B CN107368434 B CN 107368434B CN 201710601304 A CN201710601304 A CN 201710601304A CN 107368434 B CN107368434 B CN 107368434B
- Authority
- CN
- China
- Prior art keywords
- model
- verification
- protocol
- state
- tables
- 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
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000012795 verification Methods 0.000 claims abstract description 99
- 230000008569 process Effects 0.000 claims description 13
- 230000009191 jumping Effects 0.000 claims description 4
- 238000010200 validation analysis Methods 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供了一种验证Cache一致性协议的装置,所述的装置包括:形式验证平台,利用验证平台内的验证工具,使用工具的内部变量失效命令对模型初始表中的状态变量进行失效;模型初始表,用来枚举模型中的状态变量并进行初始状态赋值;模型其他表,包含协议说明书或者说明表的所有协议表,用来定义模型协议表之间跳转接口,并实现模型协议表之间的跳转验证;模型规则定义表,用来定义模型协议表的跳转规则,以及检查Cache协议模型一致性。通过对模型中的变量状态进行组合,增加验证工具的验证路径,缩短验证时间。基于装置,本发明还提供了一种验证Cache一致性协议的方法。
Description
技术领域
本发明涉及计算机技术领域,具体的说是一种验证Cache一致性协议的装置及方法。
背景技术
Cache(高速缓冲存储器)是存在于主存和CPU之间的一级存储器,在应用时,会出现Cache一致性问题。当两个或两个以上的Cache包含有同一数据块时,如果其中任何一个Cache对该数据块进行修改,包含有该数据块的其他Cache如果没有及时将数据进行更新就会产生数据不一致的情况。Cache一致性协议就是维护多个Cache数据的一致性。
Cache一致性协议是多核处理机系统的核心,所以对Cache一致性进行形式化验证是一项非常重要的工作。Cache一致性协议是为实现共享数据访问的一致性、提供逻辑统一的共享主存访问界面所采用的机制。Cache一致性协议设计和实现的正确性不仅直接决定多核处理器功能的正确性,而且对整个处理器的规模和性能都有着至关重要的影响。
目前针对该架构Cache协议的验证大部分使用模型验证,如图1所示,整个验证的原理为:整个模型包含5种状态,初始状态表为状态表1,完结状态表为状态表5,中间状态表为状态表2、3、4,整个验证从状态表1开始,到状态表5结束,从状态表1到状态表5之间会遍历所有可以抵达状态表5的路径,不同状态表最后都会汇总在状态表5,然后结束。
通过图1及上述的文字描述可知,随着状态的数量增加,整个验证中需要遍历的路径会成几何倍数甚至指数倍数的增加,在状态只有几个的小规模系统中比较实用,但在包含十几个甚至更多状态的大规模系统中,某些状态可能需要经历很长时间才能达到,使得验证过程中后期变缓甚至停滞,导致耗时较长。
发明内容
为了解决上述问题,提供了一种验证Cache一致性协议的装置及方法,通过对模型中的变量状态进行组合,增加验证工具的验证路径,缩短验证时间。
本发明提供了一种验证Cache一致性协议的装置,所述的装置包括:
形式验证平台,利用验证平台内的验证工具,使用工具的内部变量失效命令对模型初始表中的状态变量进行失效;
模型初始表,用来枚举模型中的状态变量并进行初始状态赋值;
模型其他表,包含协议说明书或者说明表的所有协议表,用来定义模型协议表之间跳转接口,并实现模型协议表之间的跳转验证;
模型规则定义表,用来定义模型协议表的跳转规则,以及检查Cache协议模型一致性。
进一步的,所述的模型初始表为模型协议表中的状态表1。
进一步的,所述模型初始表的初始状态赋值为0。
进一步的,所述模型协议表的跳转规则包括若干组变量状态组合。
本发明还提供了一种验证Cache一致性协议的方法,所述的方法包括以下步骤:
S1:执行遍历验证模式;
S2:判断是否需要进行随机化验证,若是,进入步骤S3,若否,返回步骤S1继续执行;
S3:利用验证失效命令,对模型初始表中的初始化变量进行失效;
S4:启动模型规则定义表并随机选取一组变量状态组合;
S5:按照步骤S4中选取的变量状态组合执行跳转验证。
进一步的,所述的方法还包括:
S6:对验证完成后模型协议表进行统计,并计算模型验证的覆盖率;
S7:重复步骤S4-S6,直至模型验证的覆盖率为100%。
进一步的,步骤S1中,执行遍历验证模式的具体过程为:由模型初始表进行触发,模型中变量跳转由零开始,按照模型初始表中的变量状态组合,模型其他表以传统状态机遍历模式,从状态1开始对每个状态进行检查验证。
进一步的,步骤S2的具体实现过程为:
设置一个标准验证时间,当执行遍历验证模式的过程中,实时检测某状态的实际验证时间,当检测到实际验证时间超过标准验证时间,进入步骤S3;
当执行遍历验证模式结束后,计算模型验证的覆盖率是否达到100%,若覆盖率不足100%,进入步骤S3,若覆盖率达到100%,结束验证。
本发明具体实施例的有益效果是:
1、本发明实施例通过对状态变量失效,并利用模型规则定义表中预先设置的变量状态组合,进入随机变量状态组合的验证流程,可以解决某个状态验证时间过长导致的验证时间增加以及效率低下问题。
2、通过对验证覆盖率的计算和复核,确保验证覆盖率为100%,避免个别状态漏检的问题。
附图说明
图1是现有技术中模型验证的原理图;
图2是本发明实施例中验证装置的原理图;
图3是本发明实施例一种验证方法的流程图;
图4是本发明实施例另一种验证方法的流程图。
具体实施方式
为了使本领域的技术人员能够更好地理解、实现本发明,下面通过具体实施例对本发明进行详细说明。
实施例:
如图2所示,本发明提供了一种用于Cache一致性协议的验证装置,所述的装置包括:
形式验证平台:采用Jaspergold验证工具软件,使用工具的内部变量失效命令来对初始化表中的状态变量进行失效,失效原理是通过工具指令,将初始表中的状态变化量变为不定态。
模型初始表,用来枚举模型中的状态变量并进行初始状态赋值,比如,模型中有10种状态,那么模型初始表中就会包含这10种状态的变量,模型中也会对应存在10个状态表。对于模型初始表而言,其初始状态赋值一般为0,在实际应用中,可以直接选定图1中的状态表1作为模型初始表。
模型其他表,包含协议说明书或者说明表的所有协议表,协议表按照不同的报文协议进行区分,在表中定义数据的当前目录状态列表,下一目录状态列表、协议报文种类、协议报文地址、协议表目前处理报文的数量。用systemVerilog语言,按照协议报文的地址、数据状态,定义该协议表可以接受的协议报文种类,实现定义模型协议表之间跳转接口。因为协议表中定义了下一跳转状态,根据协议的跳转接口中定义的报文种类和状态可以实现对应索引,因此可以实现模型协议表之间的跳转验证。
模型规则定义表,用来定义模型协议表的跳转规则,所述模型协议表的跳转规则包括若干组变量状态组合,这些变量状态组合既可以是人为设置的,也可以是由系统或装置随机生成。每一组变量状态组合都规定了模型初始表的状态变量变化,这些状态变量的不同组合状态作为主体表跳转接口的触发条件。
以10个状态表为例,这些状态表分别是状态表1-10,我们可以设置其中的任意几个状态表作为一组变量状态组合,比如状态表6-10、状态表2-5、状态表4-8等等。
但是需要注意的是,我们设置的一组变量状态组合只是选择所有状态中的一部分,必要时,一组变量状态组合甚至可以限定路径,比如同样选择状态表6-10,我们可以限定路径为6-7-8-9-10,那么除此之外的路径,例如6-8-9-7-10、6-9-8-7-10等,就不在验证范围内。
模型规则定义表还可以用来检查Cache协议模型一致性,Cache一致性要求是:相同地址的数据,只允许有一个Cache进行写操作。
如图3所示,本发明还提供了一种验证Cache一致性协议的方法,所述的方法包括以下步骤:
S1:执行遍历验证模式,具体过程为:由模型初始表进行触发,模型中变量跳转由零开始,按照模型初始表中的变量状态组合,模型其他表以传统状态机遍历模式,从状态1开始队每个状态进行检查验证。
S2:判断是否需要进行随机化验证,具体实现过程为:设置一个标准验证时间,当执行遍历验证模式的过程中,实时检测某状态的实际验证时间,当检测到实际验证时间超过标准验证时间,进入步骤S3;当执行遍历验证模式结束后,计算模型验证的覆盖率是否达到100%,若覆盖率不足100%,进入步骤S3,若覆盖率达到100%,结束验证。
对于计算模型验证的覆盖率,由于状态验证后会产生记录,因此可以很容易检测到有多少状态已经经过验证,也可以知道该状态被验证过多少次,当所有状态均被验证后并产生记录时,就能认定验证覆盖率达到100%。
S3:利用验证失效命令,对模型初始表中的初始化变量进行失效。
S4:启动模型规则定义表,在模型规则定义表预先设置的若干组变量状态组合中,随机选取一组变量状态组合。
S5:按照步骤S4中选取的变量状态组合,由模型其他表执行跳转验证。
如图4所示,本发明还提供了另一种验证Cache一致性协议的方法,所述的方法包括以下步骤:
S1:执行遍历验证模式,具体过程为:由模型初始表进行触发,模型中变量跳转由零开始,按照模型初始表中的变量状态组合,模型其他表以传统状态机遍历模式,从状态1开始一个状态一个状态进行检查验证。
S2:判断是否需要进行随机化验证,具体实现过程为:设置一个标准验证时间,当执行遍历验证模式的过程中,实时检测某状态的实际验证时间,当检测到实际验证时间超过标准验证时间,进入步骤S3;当执行遍历验证模式结束后,计算模型验证的覆盖率是否达到100%,若覆盖率不足100%,进入步骤S3,若覆盖率达到100%,结束验证。
对于计算模型验证的覆盖率,由于状态验证后会产生记录,因此可以很容易检测到有多少状态已经经过验证,也可以知道该状态被验证过多少次,当所有状态均被验证后并产生记录时,就能认定验证覆盖率达到100%。
S3:利用验证失效命令,对模型初始表中的初始化变量进行失效。
S4:启动模型规则定义表,在模型规则定义表预先设置的若干组变量状态组合中,随机选取一组变量状态组合。
S5:按照步骤S4中选取的变量状态组合,由模型其他表执行跳转验证。
S6:对验证完成后模型协议表进行统计,并计算模型验证的覆盖率。
S7:重复步骤S4-S6,直至模型验证的覆盖率为100%。
尽管说明书及附图和实施例对本发明创造已进行了详细的说明,但是,本领域技术人员应当理解,仍然可以对本发明创造进行修改或者等同替换;而一切不脱离本发明创造的精神和范围的技术方案及其改进,其均涵盖在本发明创造专利的保护范围当中。
Claims (7)
1.一种验证Cache一致性协议的装置,其特征是,所述的装置包括:
形式验证平台,利用验证平台内的验证工具,使用工具的内部变量失效命令对模型初始表中的状态变量进行失效;
模型初始表,用来枚举模型中的状态变量并进行初始状态赋值;
模型其他表,包含协议说明书或者说明表的所有协议表,用来定义模型协议表之间跳转接口,并实现模型协议表之间的跳转验证;
模型规则定义表,用来定义模型协议表的跳转规则,以及检查Cache协议模型一致性;所述模型协议表的跳转规则包括若干组变量状态组合。
2.根据权利要求1所述的一种验证Cache一致性协议的装置,其特征是,所述的模型初始表为模型协议表中的状态表1。
3.根据权利要求1或2所述的一种验证Cache一致性协议的装置,其特征是,所述模型初始表的初始状态赋值为0。
4.一种验证Cache一致性协议的方法,其特征是,所述的方法包括以下步骤:
S1:执行遍历验证模式;
S2:判断是否需要进行随机化验证,若是,进入步骤S3,若否,返回步骤S1继续执行;
S3:利用验证失效命令,对模型初始表中的初始化变量进行失效;
S4:启动模型规则定义表并随机选取一组变量状态组合;
S5:按照步骤S4中选取的变量状态组合执行跳转验证。
5.根据权利要求4所述的一种验证Cache一致性协议的方法,其特征是,所述的方法还包括:
S6:对验证完成后模型协议表进行统计,并计算模型验证的覆盖率;
S7:重复步骤S4-S6,直至模型验证的覆盖率为100%。
6.根据权利要求4或5所述的一种验证Cache一致性协议的方法,其特征是,步骤S1中,执行遍历验证模式的具体过程为:由模型初始表进行触发,模型中变量跳转由零开始,按照模型初始表中的变量状态组合,模型其他表以传统状态机遍历模式,从状态1开始对每个状态进行检查验证。
7.根据权利要求4或5所述的一种验证Cache一致性协议的方法,其特征是,步骤S2的具体实现过程为:
设置一个标准验证时间,当执行遍历验证模式的过程中,实时检测某状态的实际验证时间,当检测到实际验证时间超过标准验证时间,进入步骤S3;
当执行遍历验证模式结束后,计算模型验证的覆盖率是否达到100%,若覆盖率不足100%,进入步骤S3,若覆盖率达到100%,结束验证。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710601304.7A CN107368434B (zh) | 2017-07-21 | 2017-07-21 | 一种验证Cache一致性协议的装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710601304.7A CN107368434B (zh) | 2017-07-21 | 2017-07-21 | 一种验证Cache一致性协议的装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107368434A CN107368434A (zh) | 2017-11-21 |
CN107368434B true CN107368434B (zh) | 2020-08-04 |
Family
ID=60307165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710601304.7A Active CN107368434B (zh) | 2017-07-21 | 2017-07-21 | 一种验证Cache一致性协议的装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107368434B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110674055B (zh) * | 2019-09-11 | 2023-10-03 | 上海高性能集成电路设计中心 | 一种用于部件级和部件联合级的缓存一致性模拟验证方法 |
CN112395207A (zh) * | 2020-12-08 | 2021-02-23 | 盛科网络(苏州)有限公司 | 复杂状态机的高效验证方法、设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150228A (zh) * | 2013-02-22 | 2013-06-12 | 中国人民解放军国防科学技术大学 | 面向高速缓冲存储器的可综合伪随机验证方法及装置 |
CN103150264A (zh) * | 2013-01-18 | 2013-06-12 | 浪潮电子信息产业股份有限公司 | 一种基于扩展型Cache Coherence协议的多级一致性域仿真验证和测试方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102681937B (zh) * | 2012-05-15 | 2016-05-18 | 浪潮电子信息产业股份有限公司 | 一种缓存一致性协议正确性验证方法 |
CN102789483B (zh) * | 2012-06-30 | 2014-12-10 | 华为技术有限公司 | 数据验证方法、装置和系统 |
US8930760B2 (en) * | 2012-12-17 | 2015-01-06 | International Business Machines Corporation | Validating cache coherency protocol within a processor |
US10002218B2 (en) * | 2015-03-12 | 2018-06-19 | Cavium, Inc. | Verification of a multichip coherence protocol |
CN105404572B (zh) * | 2015-12-08 | 2017-10-31 | 北京时代民芯科技有限公司 | 一种基于遍历搜索存储模型的Cache系统形式化验证方法 |
CN105912415B (zh) * | 2016-04-05 | 2017-12-29 | 浪潮电子信息产业股份有限公司 | 一种验证cache一致性协议的方法及装置 |
CN105787214A (zh) * | 2016-04-05 | 2016-07-20 | 浪潮电子信息产业股份有限公司 | 一种验证模型的方法及装置 |
CN105933286B (zh) * | 2016-04-05 | 2019-08-02 | 浪潮电子信息产业股份有限公司 | 一种验证协议的方法及装置 |
CN106708730B (zh) * | 2016-11-22 | 2019-04-09 | 北京控制工程研究所 | 一种针对嵌入式实时操作系统形式化验证方法 |
-
2017
- 2017-07-21 CN CN201710601304.7A patent/CN107368434B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150264A (zh) * | 2013-01-18 | 2013-06-12 | 浪潮电子信息产业股份有限公司 | 一种基于扩展型Cache Coherence协议的多级一致性域仿真验证和测试方法 |
CN103150228A (zh) * | 2013-02-22 | 2013-06-12 | 中国人民解放军国防科学技术大学 | 面向高速缓冲存储器的可综合伪随机验证方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107368434A (zh) | 2017-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108363640B (zh) | 数据校验方法及装置、计算机可读存储介质 | |
JP2014523046A5 (zh) | ||
CN114580344B (zh) | 测试激励生成方法、验证方法、验证系统及相关设备 | |
US8838430B1 (en) | Detection of memory access violation in simulations | |
CN110674055B (zh) | 一种用于部件级和部件联合级的缓存一致性模拟验证方法 | |
CN110347590A (zh) | 业务系统的接口测试控制方法及装置 | |
CN107368434B (zh) | 一种验证Cache一致性协议的装置及方法 | |
CN105074656A (zh) | 管理并发谓词表达式的方法和装置 | |
US9824169B2 (en) | Regression signature for statistical functional coverage | |
CN107679423A (zh) | 分区完整性检查方法及装置 | |
CN113191114A (zh) | 用于验证系统的方法和装置 | |
US10295596B1 (en) | Method and system for generating validation tests | |
US9811617B2 (en) | Regression nearest neighbor analysis for statistical functional coverage | |
CN110706108B (zh) | 在区块链中并发执行交易的方法和装置 | |
JP6155050B2 (ja) | 情報処理装置の論理検証方法及びプログラム | |
US10162913B2 (en) | Simulation device and simulation method therefor | |
CN105930260B (zh) | 一种系统可用性测试方法及装置 | |
CN114996076A (zh) | 一种用于芯片仿真的遍历型用例验证方法、系统及电子设备 | |
CN108073411A (zh) | 一种补丁的内核加载方法及装置 | |
JP5882800B2 (ja) | リスト命令の検証機能を有する情報処理装置、リスト命令の検証方法、及びリスト命令の検証のためのプログラム | |
JP6291242B2 (ja) | 情報処理装置の論理検証方法及びプログラム | |
CN112416687B (zh) | 验证访存操作的方法与系统以及验证设备和存储介质 | |
CN115048296B (zh) | 用于对内存屏障指令有效性进行验证的方法和相关产品 | |
US11520964B1 (en) | Method and system for assertion-based formal verification using unique signature values | |
CN110321574B (zh) | 一种打印波形的方法和装置 |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200703 Address after: 215100 No. 1 Guanpu Road, Guoxiang Street, Wuzhong Economic Development Zone, Suzhou City, Jiangsu Province Applicant after: SUZHOU LANGCHAO INTELLIGENT TECHNOLOGY Co.,Ltd. Address before: 450018 Henan province Zheng Dong New District of Zhengzhou City Xinyi Road No. 278 16 floor room 1601 Applicant before: ZHENGZHOU YUNHAI INFORMATION TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |