CN111611120B - 一种片上多核处理器Cache一致性协议验证方法、***及介质 - Google Patents
一种片上多核处理器Cache一致性协议验证方法、***及介质 Download PDFInfo
- Publication number
- CN111611120B CN111611120B CN202010596866.9A CN202010596866A CN111611120B CN 111611120 B CN111611120 B CN 111611120B CN 202010596866 A CN202010596866 A CN 202010596866A CN 111611120 B CN111611120 B CN 111611120B
- Authority
- CN
- China
- Prior art keywords
- cache
- access
- chip
- read
- core processor
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2236—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
- G06F11/2242—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors in multi-processor systems, e.g. one processor becoming the test master
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2268—Logging of test results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Debugging And Monitoring (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种片上多核处理器Cache一致性协议验证方法、***及介质,本发明方法的步骤包括:针对执行待验证Cache协议的片上多核处理器加载执行测试程序,并跟踪片上网络的Cache相关报文,并通过记录板文件记录Cache事务的生命周期;检查测试程序的运行结果是否出现错误,若出现错误,则判定Cache协议验证未通过测试,退出;否则检查记录板文件定位测试程序执行过程中的错误场景,如果找到错误场景或者记录板文件仍有未完成的Cache事务则判定Cache协议验证未通过测试;否则判定Cache协议验证通过测试。本发明能够在验证过程中精确定位错误场景,易于发现设计漏洞和错误。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种片上多核处理器Cache(高速缓冲)一致性协议验证方法、***及介质。
背景技术
集成电路技术发展,多核、众核处理器已成为发展趋势。多核处理器(Chip Multi-processor, CMP)已经广泛应用于高性能服务器、在线事务处理等领域.随着多核多线程间数据通信需求的不断增强,需要在片上集成大容量Cache来实现数据共享和信息交互,从降低访存延迟和减少访问冲突。片上多核结构已成为当前高性能微处理器的主流技术,缓存一致性协议的实现也与片上网络密切相关,片上网络的报文体现了缓存一致性协议的特性,一致性消息通过片上网络报文进行传输。
缓存一致性协议异常复杂,协议的状态空间呈指数级增长,甚至出现***现象,如何保证缓存一致性协议的正确性,一直被工业界和学术界所关注的验证瓶颈。学术上研究所涉及缓存一致性协议一般是在结构级上进行建模,行为和功能级进行验证,工业界主流因为形式化验证的组合***问题,一般采用的是软模拟方法。本文的目的,是提出一种软模拟方法,采用受约束的随机激励,测试片上多核、众核结构的Cache协议的正确性,精确定位错误场景,发现设计漏洞。
传统测试程序是随机测试程序或是应用程序,传统测试的优点是程序员不用考虑Cache的协议,但可能访存模式单一,并不能完全测试到协议的正确性,传统测试并不是完全针对Cache协议的测试,所以效率不高,发现数据错误后定位较难。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种片上多核处理器Cache一致性协议验证方法、***及介质,本发明能够在验证过程中精确定位错误场景,易于发现设计漏洞和错误。
为了解决上述技术问题,本发明采用的技术方案为:
一种片上多核处理器Cache一致性协议验证方法,该方法的步骤包括:
1)针对执行待验证Cache协议的片上多核处理器加载执行测试程序,并跟踪片上网络的Cache相关报文,并通过记录板文件记录Cache事务的生命周期;
2)检查测试程序的运行结果是否出现错误,所述出现错误是指针对同一访存地址的读请求读取的访存数据与该访存地址的上一次写请求写入的访存数据不一致、或在该访存地址从未被写入过时与默认数据不一致;若出现错误,则判定Cache协议验证未通过测试,退出;否则执行下一步;
3)检查记录板文件定位测试程序执行过程中的错误场景,如果找到错误场景或者记录板文件仍有未完成的Cache事务则判定Cache协议验证未通过测试;否则,判定Cache协议验证通过测试。
可选地,步骤1)中的测试程序中包含随机生成针对不同核的下述连续访存序列:(A)访存地址相同,不同核读写同一个地址,写指令后***随机核的同步指令;(B)访存地址不相同,不同核读写地址标签的连续地址;(C)访存地址相同,不同核读写访存的粒度不同。
可选地,步骤1)之前还包括利用汇编程序编生成访存指令、并编译生成测试程序的步骤。
可选地,步骤1)中的记录板文件中每一行的字段包括:表序号、发生时间、事务号、源节点、目的节点、操作码、访存地址、访存粒度、访存数据、状态,其中状态是指Cache事务的执行状态,取值为进行态或者完成态,分别表示该Cache事务尚未完成或者已经完成。
可选地,步骤1)中通过记录板文件记录Cache事务的生命周期时,每跟踪到片上网络的一个Cache相关报文的处理步骤包括:判断该Cache相关报文的类型,若该Cache相关报文的类型为读请求报文、或写请求报文、或监听请求报文,则将该Cache相关报文的信息写入记录板文件,且对应Cache事务的执行状态为进行态;若该Cache相关报文的类型为监听响应报文, 则根据该Cache相关报文的Cache事务号、源节点、目的节点作为索引查找记录板文件中的匹配行,找到匹配行后则将匹配行的状态字段修改为完成态,若未找到匹配行则将该Cache相关报文的信息写入记录板文件,且对应Cache事务的执行状态为进行态;若该Cache相关报文的类型为访存响应报文,则根据该Cache相关报文的Cache事务号、源节点、目的节点作为索引查找记录板文件中的匹配行,找到匹配行后则将匹配行的状态字段修改为完成态。
可选地,所述错误场景包括:读请求的状态未完成、读请求的访存数据不等于上一次写请求或默认的访存数据、读响应或者监听响应发生超时。
可选地,步骤3)中检查记录板文件定位测试程序执行过程中的错误场景的详细步骤包括:
3.1)遍历选择记录板文件中操作码等于读请求的一行作为当前行;
3.2)根据当前行的事务号、源节点号、访存地址查找记录板文件,且查找条件为操作码等于读响应或者监听响应、访存数据等于当前行的访存数据,如未找到匹配行,则判定当前行的读Cache事务未完成,记录错误信息,执行步骤3.4);否则执行下一步;
3.3)判断匹配行的发生时间、当前行的发生时间之差是否超过预设阈值,如果超过预设阈值,则判定当前行对应的读Cache事务响应超时,记录错误信息,执行步骤3.4);
3.4)根据当前行的访存地址查找记录板文件,查找条件为操作码等于写请求、发生时间早于当前行的发生时间,如果找到匹配行,则确定其中发生时间最晚的匹配行,并判断该发生时间最晚的匹配行的访存数据、当前行的访存数据是否一致,如果不一致,则判定当前行的读数据与前一次的写入数据不同,记录错误信息,执行步骤3.5);如果未找到匹配行,则判断当前行的读数据是否为默认数据,如果不是默认数据,则判定当前行对应的读Cache事务的读数据出错,记录错误信息;
3.5)判断记录板文件中操作码等于读请求的行是否遍历完毕,如果尚未遍历完毕,则执行步骤3.1);否则判定错误场景定位完毕。
可选地,步骤3)中记录板文件仍有未完成的Cache事务具体是指遍历记录板文件中每一行的状态字段,如果任意一行的状态字段为进行态,则判定仍有未完成的Cache事务。
此外,本发明还提供一种片上多核处理器Cache一致性协议验证***,包括带有片上多核处理器的计算机设备,所述片上多核处理器的片上网络中带有用于收集跟踪片上网络的Cache相关报文的片上网络Cache监视器,该计算机设备被编程或配置以执行所述片上多核处理器Cache一致性协议验证的步骤,或者该计算机设备的存储器上存储有被编程或配置以执行所述片上多核处理器Cache一致性协议验证的计算机程序。
此外,本发明还提供一种片上多核处理器Cache一致性协议验证***,包括带有片上多核处理器的计算机设备,该计算机设备被编程或配置以执行所述片上多核处理器Cache一致性协议验证的步骤,或者该计算机设备的存储器上存储有被编程或配置以执行所述片上多核处理器Cache一致性协议验证的计算机程序。
此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行所述片上多核处理器Cache一致性协议验证的计算机程序。
和现有技术相比,本发明具有下述优点:
1、本发明通过跟踪片上网络的Cache相关报文,并通过记录板文件记录Cache事务的生命周期,然后通过检查测试程序的运行结果是否出现错误、检查记录板文件定位测试程序执行过程中的错误场景、记录板文件仍有未完成的Cache事务来全面验证Cache一致性协议,能够在验证过程中精确定位错误场景,发现设计漏洞。
2、本发明通过记录板文件记录Cache事务的生命周期,基于Cache事务的生命周期来检查记录板文件定位测试程序执行过程中的错误场景、记录板文件仍有未完成的Cache事务,可方便地实现定位具体错误的Cache事务类型和场景,比对数据正确性和事务处理超时,精确定位错误场景,易于发现设计错误。
附图说明
图1为本发明实施例方法的基本流程图。
图2为本发明实施例中的片上互连结构的示意图。
图3为本发明实施例中定位错误场景的流程示意图。
具体实施方式
为使本发明的内容更加清楚和易懂,下面结合本发明具体实施例和附图对本发明的内容进行详细描述。
如图1所示,本实施例片上多核处理器Cache一致性协议验证方法的步骤包括:
1)针对执行待验证Cache协议的片上多核处理器加载执行测试程序,并跟踪片上网络的Cache相关报文,并通过记录板文件记录Cache事务的生命周期;
2)检查测试程序的运行结果是否出现错误,出现错误是指针对同一访存地址的读请求读取的访存数据与该访存地址的上一次写请求写入的访存数据不一致、或在该访存地址从未被写入过时与默认数据不一致;若出现错误,则判定Cache协议验证未通过测试,退出;否则执行下一步;
3)检查记录板文件定位测试程序执行过程中的错误场景,如果找到错误场景或者记录板文件仍有未完成的Cache事务则判定Cache协议验证未通过测试;否则,判定Cache协议验证通过测试。
本实施例中,步骤1)之前还包括利用汇编程序编生成访存指令、并编译生成测试程序的步骤。为了实现针对验证多核、众核结构的Cache协议的正确性,测试Cache协议的实现覆盖性,本实施例步骤1)中的测试程序中包含随机生成针对不同核的下述连续访存序列(主要是读写指令):
(A)访存地址相同,不同核读写同一个地址,写指令后***随机核的读访存序列同步指令;该连续访存序列用于实现冲突相关性测试,其中读访存序列同步指令功能是等待该指令前的指令序列全部完成;举例,同步指令类似ARM DSB、DMB、ISB内存隔离指令,用于保障一个内存访问的顺序。其中,数据同步隔离(DSB):用于等待所有在DSB指令之前的指令完成;数据内存隔离(DMB):用于保证所有在DMB指令之前的内存访问完成;指令同步隔离(ISB):用于等待处理指令流水线中所有指令执行完之后,才执行ISB之后的指令。
(B)访存地址不相同,不同核读写地址标签(tag)连续地址;该连续访存序列用于实现Cache替换测试,多核随机访存读写,地址生成特点,访存地址是tag(标签)连续;
(C)访存地址相同,不同核读写访存的粒度不同。该连续访存序列用于实现cache的命中测试,多核访存读写,访存地址是tag相同、地址相同,读写数据的粒度可以是单字节、双字节、4字节、…、完整一个cacheline的字节。
本实施例中,步骤2)检查测试程序的运行结果是否出现错误为测试程序的运行结果正确检查的步骤。测试程序是多核访存的激励,第一次读存储器器以前没有写过,读出存储器默认值,假设是0,如果读出结果为0,测试结果正确;如果多核访存地址冲突相关,测试正确性是所有读的操作,读出结果是最后写入的值。因此,出现错误是指针对同一访存地址的读请求读取的访存数据与该访存地址的上一次写请求写入的访存数据不一致、或在该访存地址从未被写入过时与默认数据不一致。
Cache一致性协议和片上互连结构在设计实现时是紧密耦合。如图2所示,片上互连结构连接了主存(存储器)、Cache1~Cachem、核0~核n,不论采用总线还是网络结构,多核处理器的互连结构通常采用报文通信方式,Cache一致性消息通过片上互连报文进行传输。报文结构记录了源节点和目的节点信息,事务的序号。片上网络的报文,一般包括事务号,源节点、目的节点,操作码。源节点和目的节点的信息,源节点即具体哪个核发出读写、Cache发出的监听请求、还是IO设备发出的DMA读写请求,目的节点一般是主存,或者Cache。片上网络的报文的操作码定义了请求访存读写、监听请求、读写响应、监听应答。参见图2,本实施例中片上网络上连接有片上网络Cache监视器,片上网络Cache监视器采用探针方式跟踪片上网络的报文,设计了一个记录板文件,记录板记录了一个Cache事务的过程,监视了Cache事务的生命周期。
本实施例中,步骤1)中的记录板文件采用表格定义,其中每一行的字段包括:表序号、发生时间、事务号、源节点、目的节点、操作码、访存地址、访存粒度、访存数据、状态,其中状态是指Cache事务的执行状态,取值为进行态或者完成态,分别表示该Cache事务尚未完成或者已经完成。其数据实例如表1所示。
表1:记录板文件数据实例。
表序号 | 发生时间 | 事务号 | 源节点 | 目的节 | 操作码 | 访存地址 | 访存粒度 | 访存数据 | 状态 |
1 | 第60拍 | 0 | 核0 | 存储器 | 写请求 | 3000 | 1cachline | “3000” | 进行态 |
2 | 第90拍 | 1 | IO设备 | 存储器 | 读请求 | 3000 | 单字节 | 进行态 | |
…… |
需要说明的是,表1中的访存数据是指代访存数据本身,此处设置为访存地址的值“3000”是为了在实验过程中方便调试。
参见表1,本实施例中发生时间以片上网络的执行时钟为全局时钟,记录发生的时间点,事务号即为对应的Cache事务编号,源节点为发出请求的片上网络节点,目的节为响应求的片上网络节点,操作码为Cache事务的类型,访存地址为请求的目标访存地址。访存粒度为访存的单位大小,访存数据可根据需要记录访存数据本身或访存数据大小。
片上网络的报文记录了源节点和目的节点的信息,即具体哪个核,主存,还是IO设备。片上网络的报文的操作码定义了请求访存读写、监听请求、监听应答、读写响应。记录板收集信息,标识了一个Cache事务的生命周期,包括了核或io设备发出的访存请求、监听请求、监听应答、读写响应,或者访存请求、监听请求、监听应答、监听请求、监听应答、监听请求、监听应答、…、读写响应。记录板文件中表格登记该事务的执行态都是执行,记录板标识了一个事务的完成,即Cache事务生命周期结束,此时记录板文件中表格登记该事务完成,对应的执行态修改是,利用事务号、源节点,目的结点做索引,对应的表格的执行态都为完成态。如果检查板某个地址读出结果不是记录板中最后写入的值,程序报告错误;程序正常结束或程序执行时间超过预定时间结束,检查记录板文件是否有未完成事务,该事务属于超时没有完成,程序报告错误。程序报告错误,则检查记录板文件,记录板表格精确定位了错误场景,发生时间,访问或监听哪一个核获得响应数据不一致,访主存数据不一致,即数据不一致发生的场景,需要调试查错。如果程序正常结束并且检查记录板文件,事务执行态都是完成态,确定Cache协议验证通过测试。
本实施例中,步骤1)中通过记录板文件记录Cache事务的生命周期时,每跟踪到片上网络的一个Cache相关报文的处理步骤包括:判断该Cache相关报文的类型,若该Cache相关报文的类型为读请求报文、或写请求报文、或监听请求报文,则将该Cache相关报文的信息写入记录板文件,且对应Cache事务的执行状态为进行态;若该Cache相关报文的类型为监听响应报文, 则根据该Cache相关报文的Cache事务号、源节点、目的节点作为索引查找记录板文件中的匹配行,找到匹配行后则将匹配行的状态字段修改为完成态,若未找到匹配行则将该Cache相关报文的信息写入记录板文件,且对应Cache事务的执行状态为进行态;若该Cache相关报文的类型为访存响应报文,则根据该Cache相关报文的Cache事务号、源节点、目的节点作为索引查找记录板文件中的匹配行,找到匹配行后则将匹配行的状态字段修改为完成态。
本实施例中,所述错误场景包括:读请求的状态未完成、读请求的访存数据不等于上一次写请求或默认的访存数据、读响应或者监听响应发生超时。
如图3所示,本实施例步骤3)中检查记录板文件定位测试程序执行过程中的错误场景的详细步骤包括:
3.1)遍历选择记录板文件中操作码等于读请求的一行作为当前行;记当前行的访存地址为x,则当前行对应Cache事务的索引号等于:{事物号,源节点号,访存地址x };
3.2)根据当前行的事务号、源节点号、访存地址查找记录板文件(查找记录板文件时,即可以当前行对应Cache事务的索引号进行检索),且查找条件为操作码等于读响应或者监听响应、访存数据等于当前行的访存数据,如未找到匹配行,则判定当前行的读Cache事务未完成,记录错误信息,执行步骤3.4);否则执行下一步;
3.3)判断匹配行的发生时间、当前行的发生时间之差是否超过预设阈值,如果超过预设阈值,则判定当前行对应的读Cache事务响应超时,记录错误信息,执行步骤3.4);
3.4)根据当前行的访存地址查找记录板文件,查找条件为操作码等于写请求、发生时间早于当前行的发生时间,如果找到匹配行,则确定其中发生时间最晚的匹配行,并判断该发生时间最晚的匹配行的访存数据、当前行的访存数据是否一致,如果不一致,则判定当前行的读数据与前一次的写入数据不同,记录错误信息,执行步骤3.5);如果未找到匹配行,则判断当前行的读数据是否为默认数据(例如默认为0),如果不是默认数据,则判定当前行对应的读Cache事务的读数据出错,记录错误信息;
3.5)判断记录板文件中操作码等于读请求的行是否遍历完毕,如果尚未遍历完毕,则执行步骤3.1);否则判定错误场景定位完毕。
本实施例中,步骤3)中记录板文件仍有未完成的Cache事务具体是指遍历记录板文件中每一行的状态字段,如果任意一行的状态字段为进行态,则判定仍有未完成的Cache事务。
综上所述,本实施例提供了一种片上多核处理器Cache一致性协议验证方法,该方法一方面包括定制验证激励(测试程序)对验证众核结构的Cache协议定制访存读写序列,测试Cache协议实现的功能覆盖性;另一方面, 利用片上网络Cache监视器通过记录板文件记录Cache事务的生命周期,定位具体错误的Cache事务类型和场景,根据测试程序运行结果和检查记录板文件,验证Cache一致性协议,能够在验证过程中精确定位错误场景,发现设计漏洞及设计错误。
此外,本实施例还提供一种片上多核处理器Cache一致性协议验证***,包括带有片上多核处理器的计算机设备,所述片上多核处理器的片上网络中带有用于收集跟踪片上网络的Cache相关报文的片上网络Cache监视器,该计算机设备被编程或配置以执行所述片上多核处理器Cache一致性协议验证的步骤,或者该计算机设备的存储器上存储有被编程或配置以执行所述片上多核处理器Cache一致性协议验证的计算机程序。
此外,本实施例还提供一种片上多核处理器Cache一致性协议验证***,包括带有片上多核处理器的计算机设备,该计算机设备被编程或配置以执行所述片上多核处理器Cache一致性协议验证的步骤,或者该计算机设备的存储器上存储有被编程或配置以执行所述片上多核处理器Cache一致性协议验证的计算机程序。
此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行所述片上多核处理器Cache一致性协议验证的计算机程序。
需要说明的是,凡是利用本发明的技术内容作出许多可能的变动和修饰,在本发明的精神和原则之内所做的任何修改、等同替换、改进,均包含在本发明的保护范围之内。
Claims (7)
1.一种片上多核处理器Cache一致性协议验证方法,其特征在于,该方法的步骤包括:
1)针对执行待验证Cache协议的片上多核处理器加载执行测试程序,并跟踪片上网络的Cache相关报文,并通过记录板文件记录Cache事务的生命周期;
2)检查测试程序的运行结果是否出现错误,所述出现错误是指针对同一访存地址的读请求读取的访存数据与该访存地址的上一次写请求写入的访存数据不一致、或在该访存地址从未被写入过时与默认数据不一致;若出现错误,则判定Cache协议验证未通过测试,退出;否则执行下一步;
3)检查记录板文件定位测试程序执行过程中的错误场景,如果找到错误场景或者记录板文件仍有未完成的Cache事务则判定Cache协议验证未通过测试;否则,判定Cache协议验证通过测试;
步骤1)中通过记录板文件记录Cache事务的生命周期时,每跟踪到片上网络的一个Cache相关报文的处理步骤包括:判断该Cache相关报文的类型,若该Cache相关报文的类型为读请求报文、或写请求报文、或监听请求报文,则将该Cache相关报文的信息写入记录板文件,且对应Cache事务的执行状态为进行态;若该Cache相关报文的类型为监听响应报文,则根据该Cache相关报文的Cache事务号、源节点、目的节点作为索引查找记录板文件中的匹配行,找到匹配行后则将匹配行的状态字段修改为完成态,若未找到匹配行则将该Cache相关报文的信息写入记录板文件,且对应Cache事务的执行状态为进行态;若该Cache相关报文的类型为访存响应报文,则根据该Cache相关报文的Cache事务号、源节点、目的节点作为索引查找记录板文件中的匹配行,找到匹配行后则将匹配行的状态字段修改为完成态;
所述错误场景包括:读请求的状态未完成、读请求的访存数据不等于上一次写请求或默认的访存数据、读响应或者监听响应发生超时;步骤3)中检查记录板文件定位测试程序执行过程中的错误场景的详细步骤包括:
3.1)遍历选择记录板文件中操作码等于读请求的一行作为当前行;
3.2)根据当前行的事务号、源节点号、访存地址查找记录板文件,且查找条件为操作码等于读响应或者监听响应、访存数据等于当前行的访存数据,如未找到匹配行,则判定当前行的读Cache事务未完成,记录错误信息,执行步骤3.4);否则执行下一步;
3.3)判断匹配行的发生时间、当前行的发生时间之差是否超过预设阈值,如果超过预设阈值,则判定当前行对应的读Cache事务响应超时,记录错误信息,执行步骤3.4);
3.4)根据当前行的访存地址查找记录板文件,查找条件为操作码等于写请求、发生时间早于当前行的发生时间,如果找到匹配行,则确定其中发生时间最晚的匹配行,并判断该发生时间最晚的匹配行的访存数据、当前行的访存数据是否一致,如果不一致,则判定当前行的读数据与前一次的写入数据不同,记录错误信息,执行步骤3.5);如果未找到匹配行,则判断当前行的读数据是否为默认数据,如果不是默认数据,则判定当前行对应的读Cache事务的读数据出错,记录错误信息;
3.5)判断记录板文件中操作码等于读请求的行是否遍历完毕,如果尚未遍历完毕,则执行步骤3.1);否则判定错误场景定位完毕。
2.根据权利要求1所述的片上多核处理器Cache一致性协议验证方法,其特征在于,步骤1)中的测试程序中包含随机生成针对不同核的下述连续访存序列:(A)访存地址相同,不同核读写同一个地址,写指令后***随机核的同步指令;(B)访存地址不相同,不同核读写地址标签连续的地址;(C)访存地址相同,不同核读写访存的粒度不同;步骤1)之前还包括利用汇编程序编生成访存指令、并编译生成测试程序的步骤。
3.根据权利要求1所述的片上多核处理器Cache一致性协议验证方法,其特征在于,步骤1)中的记录板文件中每一行的字段包括:表序号、发生时间、事务号、源节点、目的节点、操作码、访存地址、访存粒度、访存数据、状态,其中状态是指Cache事务的执行状态,取值为进行态或者完成态,分别表示该Cache事务尚未完成或者已经完成。
4.根据权利要求1所述的片上多核处理器Cache一致性协议验证方法,其特征在于,步骤3)中记录板文件仍有未完成的Cache事务具体是指遍历记录板文件中每一行的状态字段,如果任意一行的状态字段为进行态,则判定仍有未完成的Cache事务。
5.一种片上多核处理器Cache一致性协议验证***,包括带有片上多核处理器的计算机设备,其特征在于,所述片上多核处理器的片上网络中带有用于收集跟踪片上网络的Cache相关报文的片上网络Cache监视器,该计算机设备被编程或配置以执行权利要求1~4中任意一项所述片上多核处理器Cache一致性协议验证的步骤,或者该计算机设备的存储器上存储有被编程或配置以执行权利要求1~4中任意一项所述片上多核处理器Cache一致性协议验证的计算机程序。
6.一种片上多核处理器Cache一致性协议验证***,包括带有片上多核处理器的计算机设备,其特征在于,该计算机设备被编程或配置以执行权利要求1~4中任意一项所述片上多核处理器Cache一致性协议验证的步骤,或者该计算机设备的存储器上存储有被编程或配置以执行权利要求1~4中任意一项所述片上多核处理器Cache一致性协议验证的计算机程序。
7.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有被编程或配置以执行权利要求1~4中任意一项所述片上多核处理器Cache一致性协议验证的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010596866.9A CN111611120B (zh) | 2020-06-28 | 2020-06-28 | 一种片上多核处理器Cache一致性协议验证方法、***及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010596866.9A CN111611120B (zh) | 2020-06-28 | 2020-06-28 | 一种片上多核处理器Cache一致性协议验证方法、***及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111611120A CN111611120A (zh) | 2020-09-01 |
CN111611120B true CN111611120B (zh) | 2023-05-30 |
Family
ID=72201030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010596866.9A Active CN111611120B (zh) | 2020-06-28 | 2020-06-28 | 一种片上多核处理器Cache一致性协议验证方法、***及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111611120B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112181871B (zh) * | 2020-09-28 | 2022-10-28 | 中国人民解放军国防科技大学 | 处理器与内存间写阻塞式通信控制方法、部件、设备及介质 |
CN112199291A (zh) * | 2020-10-16 | 2021-01-08 | 天津飞腾信息技术有限公司 | 一种多核处理器Cache一致性模拟验证方法及验证装置 |
CN112416687B (zh) * | 2020-12-02 | 2022-07-12 | 海光信息技术股份有限公司 | 验证访存操作的方法与***以及验证设备和存储介质 |
CN113900968B (zh) * | 2021-12-09 | 2022-03-11 | 南湖实验室 | 多副本非原子写的存储序同步操作实现方法与实现装置 |
CN114326631B (zh) * | 2021-12-30 | 2024-07-23 | 苏伊士环境科技(北京)有限公司 | 数据采集与监视控制***升级的核查方法及核查处理*** |
CN114116531B (zh) * | 2022-01-28 | 2022-04-22 | 苏州浪潮智能科技有限公司 | 一种缓存一致性写回的方法、装置、设备及介质 |
CN114580344B (zh) * | 2022-04-24 | 2022-08-16 | 飞腾信息技术有限公司 | 测试激励生成方法、验证方法、验证***及相关设备 |
CN115130402B (zh) * | 2022-08-30 | 2022-11-11 | 北京开源芯片研究院 | 一种缓存验证方法、***、电子设备及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101446987A (zh) * | 2007-11-27 | 2009-06-03 | 上海高性能集成电路设计中心 | 一种用于多核处理器Cache一致性实物验证的装置 |
CN102880467A (zh) * | 2012-09-05 | 2013-01-16 | 无锡江南计算技术研究所 | Cache一致性协议验证方法以及多核处理器*** |
CN103150264A (zh) * | 2013-01-18 | 2013-06-12 | 浪潮电子信息产业股份有限公司 | 一种基于扩展型Cache Coherence协议的多级一致性域仿真验证和测试方法 |
CN105446841A (zh) * | 2015-11-24 | 2016-03-30 | 无锡江南计算技术研究所 | 缓存一致性测试方法 |
-
2020
- 2020-06-28 CN CN202010596866.9A patent/CN111611120B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101446987A (zh) * | 2007-11-27 | 2009-06-03 | 上海高性能集成电路设计中心 | 一种用于多核处理器Cache一致性实物验证的装置 |
CN102880467A (zh) * | 2012-09-05 | 2013-01-16 | 无锡江南计算技术研究所 | Cache一致性协议验证方法以及多核处理器*** |
CN103150264A (zh) * | 2013-01-18 | 2013-06-12 | 浪潮电子信息产业股份有限公司 | 一种基于扩展型Cache Coherence协议的多级一致性域仿真验证和测试方法 |
CN105446841A (zh) * | 2015-11-24 | 2016-03-30 | 无锡江南计算技术研究所 | 缓存一致性测试方法 |
Non-Patent Citations (5)
Title |
---|
A. DeOrio, A. Bauserman and V. Bertacco.Post-silicon verification for cache coherence.2008 IEEE International Conference on Computer Design, Lake Tahoe, CA, USA, 2008.2009,348-355. * |
Vu, T.D., Zhang, L., Jesshope, C. The Verification of the On-Chip COMA Cache Coherence Protocol.In: Meseguer, J., Roşu, G. (eds) Algebraic Methodology and Software Technology. AMAST 2008.Lecture Notes in Computer Science.2008,第5140卷413-429. * |
尹飞;吴磊.基于功能覆盖率验证多核处理器中的Cache一致性协议.中国会议 第十五届计算机工程与工艺年会暨第一届微处理器技术论坛论文集(A辑).2011,158-163. * |
张龙.多核处理器Cache一致性协议模型检验研究与实现.中国优秀硕士学位论文全文数据库 信息科技辑.2014,I137-15. * |
王朋宇;陈云霁;沈海华;陈天石;张珩.片上多核处理器存储一致性验证.软件学报.2010,第21卷(第4期),863-875. * |
Also Published As
Publication number | Publication date |
---|---|
CN111611120A (zh) | 2020-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111611120B (zh) | 一种片上多核处理器Cache一致性协议验证方法、***及介质 | |
US8140828B2 (en) | Handling transaction buffer overflow in multiprocessor by re-executing after waiting for peer processors to complete pending transactions and bypassing the buffer | |
CN103154908B (zh) | 用于事务存储器的最后分支记录的装置、方法和*** | |
US8457943B2 (en) | System and method for simulating a multiprocessor system | |
CN115841089A (zh) | 一种基于uvm的***级芯片验证平台及验证方法 | |
CN114580344B (zh) | 测试激励生成方法、验证方法、验证***及相关设备 | |
CN115130402B (zh) | 一种缓存验证方法、***、电子设备及可读存储介质 | |
US9086969B2 (en) | Establishing a useful debugging state for multithreaded computer program | |
Jayanti et al. | A recoverable mutex algorithm with sub-logarithmic RMR on both CC and DSM | |
KR101862094B1 (ko) | 트랜잭션 메모리 프로그램을 위한 소프트웨어 재생기 | |
CN117234591B (zh) | 指令验证方法、***、设备、介质及产品 | |
US7519865B1 (en) | Systems and methods for identifying incomplete transactions | |
CN116167310A (zh) | 一种验证多核心处理器缓存一致性的方法及装置 | |
US6751752B1 (en) | Checking events generated by a device | |
US8250545B2 (en) | Associated apparatus and method for supporting development of semiconductor device | |
CN115712397B (zh) | 缓存验证装置、方法及*** | |
CN113168367A (zh) | 位精确跟踪中的处理器存储器重排序提示 | |
CN115269199A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
US10540254B2 (en) | Technologies for analyzing persistent memory programs | |
US8417508B2 (en) | Multiprocessor development environment | |
CN112364600B (zh) | 一种处理器微架构设计验证方法 | |
US10922023B2 (en) | Method for accessing code SRAM and electronic device | |
CN109271277A (zh) | 数据库宕机后的访问方法、装置和*** | |
CN109087682B (zh) | 全局存储器顺序检测***及方法 | |
Kubota et al. | Logging inter-thread data dependencies in linux kernel |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |