CN103150264A - 一种基于扩展型Cache Coherence协议的多级一致性域仿真验证和测试方法 - Google Patents
一种基于扩展型Cache Coherence协议的多级一致性域仿真验证和测试方法 Download PDFInfo
- Publication number
- CN103150264A CN103150264A CN2013100181233A CN201310018123A CN103150264A CN 103150264 A CN103150264 A CN 103150264A CN 2013100181233 A CN2013100181233 A CN 2013100181233A CN 201310018123 A CN201310018123 A CN 201310018123A CN 103150264 A CN103150264 A CN 103150264A
- Authority
- CN
- China
- Prior art keywords
- protocol
- test
- message
- simulator
- simulation
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- 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
-
- 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
- G06F12/0837—Cache consistency protocols with software control, e.g. non-cacheable data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/254—Distributed memory
- G06F2212/2542—Non-uniform memory access [NUMA] architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Multi Processors (AREA)
Abstract
本发明提出了一种基于扩展型Cache Coherence协议的多级一致性域仿真验证和测试方法。构建了一种基于扩展型Cache Coherence协议的多级一致性域CC-NUMA系统协议的仿真模型,发明系统关键节点内协议表查询与状态转换执行机制,确保单计算域内维护Cache Coherence协议并且多个计算域之间也同时维护Cache Coherence协议,域内与域间的传输确保准确性、稳定性;提出一种可信的协议入口转换覆盖率评价驱动验证方法,通过加载经优化的事务发生器推动模型进行事务处理,在运行结束时获得覆盖率指标,较之随机事务推进机制提高验证效率。通过构建一个多处理器多一致性域验证系统模型并开展相关仿真验证,进一步确认该方法的适用性和有效性。
Description
技术领域
本发明涉及本发明属于计算机体系结构范畴,具体涉及多处理器计算机系统的Cache一致性;多节点多处理器计算机系统;CC-NUMA(Cache Coherent Non-Uniform Memory Access——Cache一致性非一致内存访问)架构;Cache Coherence协议的多级一致性域和模型测试验证方法,具体地说是一种基于扩展型Cache Coherence协议的多级一致性域仿真验证和测试方法。
背景技术
当前多处理器之间的连接方式由总线连接转变为点对点连接,内存也从挂接处理器外部桥接芯片转变为直接挂接处理器。由于内存挂接方式的变化,内存在系统中的分布也发生变化,从而导致多处理器系统中内存访问的非均一性,故当前多处理器系统多为NUMA(Non-Uniform Memory Access——非一致内存访问)架构系统。
NUMA系统中有多个Cache单元分布于系统,因而设计NUMA系统须解决多Cache之间的一致性问题。如何解决Cache一致性问题是CC-NUMA系统的核心问题。因而对Cache一致性协议的验证工作也相应成为CC-NUMA系统验证工作的重要组成部分。在普遍使用商用微处理器构建巨型机的潮流下,使用商用多核微处理器构建CC-NUMA系统也就成为必然的趋势。为了支持多处理器并行,目前的高端商用微处理器基本都支持多路直连扩展。若处理器使用内置存控,并对全局访存空间统一编址,多个直连的处理器即可构成一个小型的CC-NUMA系统。然而受处理器直连接口数量限制,仅使用处理器直联方式难以构建大型系统。
为实现大规模的CC-NUMA多处理器系统,需借助节点控制器NC(Node Controller)扩大一致性域空间。本文涉及到的节点控制器具有维护全局Cache一致性和扩展系统规模两种功能:首先,每个节点控制器连接1至4颗处理器,组成一个节点和第一级Cache一致性域,域内一致性由处理器和节点控制器共同维护;其次,节点控制器直接互连或通过节点路由器连接以组成大规模CC-NUMA系统。节点间的第二级Cache一致性由节点控制器维护。这样构成的大规模的CC-NUMA 系统需要在处理器直联Cache一致性协议基础上扩展建立多层次的协议,并维护全局一致性。基于扩展型Cache Coherence协议的多级一致性域CC-NUMA系统协议往往相对比较复杂,与此同时仿真测试也尤为重要,对其仿真验证工作也成为重要工作。
如上文所述,按处理器直连的方式构成的多处理器系统规模有限。为实现更大规模的CC-NUMA多处理器系统,必须借助于图1中节点控制器(Node Controller)。节点控制器具有扩展系统规模和维护全局Cache一致性的功能;首先,每个节点控制器连接1至4颗处理器,组成一个节点和第一级Cache一致性域,域内Cache一致性由处理器和节点控制器共同维护。节点控制器也会占用域内的至少一个处理器ID,因而域内处理器加节点控制器的数量不能大于处理器所能支持的域内处理器ID数。然后,节点控制器直接互连或通过节点路由器连接以组成大规模CC-NUMA系统。节点间的第二级Cache一致性由节点控制器维护,某节点内的处理器跨节点和Cache一致性域访问另一个节点内处理器的内存时,全局Cache一致性通过节点控制器维护。
据此设计相关模型CC-NUMA总线功能模型:模拟实现了处理器中Cache、存储、以及处理器间的互连网络;支持自定义系统拓扑结构;支持访存行为事务级的模拟;模拟处理器直连Cache一致性协议并提供系统中各访存事务、Cache、存储的实时行为和状态。同时设计节点控制器仿真模型:通过总线功能模型的API接口,模拟实现了节点控制器自有的多级Cache一致性协议;使用处理器Cache一致性的协议消息与处理器进行通信,并以扩展Cache一致性的协议消息通过节点控制器网络在各节点控制器之间进行通信,完成多级域之间的一致性协议的转换。
使用模拟验证方法来进行功能验证,核心思想是将设计者的意图与观察模拟器的实际行为进行比较,以确定它们的一致性。当一个设计在模拟中能够像设计者所期望的那样运行并且达到设计要求的时候,我们认为这个设计就已经被验证了。在验证过程中,通过对己产生的测试激励进行模拟结果覆盖率的分析,结合由系统功能描述中导出的信息,改进进一步验证的测试激励生成算法或者测试激励生成约束,使得再次生成的测试激励能使模拟系统达到更高的覆盖率。
Cache一致性协议是为实现共享数据访问一致性、提供共享存储编程接口所采用的处理机制,不仅直接决定系统的正确性,而且对系统的规模和性能有着重要影响,是实现分布共享主存多处理机多核系统的关键。系统规模的快速扩充、网络延时的不确定性和存储一致性模型的多样性等诸多因素,使Cache一致性协议异常复杂,协议的状态空间呈指数级增长,甚至出现爆炸现象。业内在Cache一致性协议验证方法上有诸多论述,主要包括形式化验证和软件模拟验证。由于固有的状态空间爆炸问题, 完全形式化的验证目前还难以应用到复杂多级协议的验证工作中。软件模拟验证可通过人工方式撰写约束模型同时进行带约束的伪随机测试,对于特定的目标进行验证,其效率也已有较大提高,是一种实用可行的方法。本发明基于软件模拟的方法,首先说明基于扩展型Cache Coherence协议的多级一致性描述方式的仿真模型构建,提出了一种软件模拟验证的方法,可以有效验证多状态空间下多级域的Cache Coherence一致性协议。通过构建一个多处理器验证系统模型并开展相关仿真验证,进一步论证该方法的适用性和有效性。
由于处理器所能支持的域内处理器ID数量有限,导致多处理器系统所需节点控制器数目过大,造成节点间互连规模庞大、拓扑结构复杂。建立一种基于扩展型Cache Coherence协议的多级一致性协议,通过节点控制器查询本地协议表转换机制,转换多级一致性域报文,可显著扩展大规模共享内存多处理器系统,并能有效提升系统性能,降低系统拓扑复杂度。
发明内容
本发明的目的是针对CC-NUMA系统中的多层Cache一致性协议,建立一种基于扩展型Cache Coherence协议的多级一致性协议转换正确性的测试验证方法。
本发明的目的是通过下述的技术方案实现:包括:多层Cache一致性协议模型模拟测试结构;可扩展的拓扑结构;节点仿真模型;协议表查询与状态转换执行方法;协议表执行流程;事务生成器;测试评价方法和提高覆盖率方法,使用覆盖率驱动的验证策略构建一套基于伪随机模拟验证系统,以及由覆盖率驱动的测试激励自动产生器组成的模拟验证系统,其中:
为实现大规模的CC-NUMA多处理器系统,需借助节点控制器NC扩大一致性域空间,节点控制器具有维护全局Cache一致性和扩展系统规模两种功能:首先,每个节点控制器连接1至4颗处理器,组成一个节点和第一级Cache一致性域,域内一致性由处理器和节点控制器共同维护;其次,节点控制器直接互连或通过节点路由器连接以组成大规模CC-NUMA系统;节点间的第二级Cache一致性由节点控制器维护,这样构成的大规模的CC-NUMA 系统需要在处理器直联Cache一致性协议基础上扩展建立多层次的协议,并维护全局一致性,为了构建一种基于扩展型Cache Coherence协议的多级一致性域CC-NUMA系统协议的仿真模型,需构建系统关键节点内协议表查询和状态转换执行机制,确保多一致性域内与域间之间传输的准确性、稳定性;提出一种可信的协议入口转换覆盖率评价驱动验证方法,通过加载经优化的事务发生器推动模型进行事务处理,在运行结束时获得覆盖率指标,较之随机事务推进机制提高验证效率,通过构建一个多处理器验证系统模型并开展相关仿真验证,进一步确认该方法的适用性和有效性;
1)多层Cache一致性协议模型模拟测试结构
使用SystemC语言设计一种基于扩展型Cache Coherence协议的多级一致性域模型的系统模拟器和与系统模拟器并行执行的模型验证系统,模型验证系统通过构建伪随机事务发生器进行测试,通过全局检查器进行系统正确性判断;模型验证系统包括:总线功能模型、协议参考模型、节点控制器模拟器、网络模拟器、全局检查器、协议入口查询机制,其中:
(1)总线功能模型:是一个时钟精确的功能模型,模拟实现了处理器中Cache 、存控、以及处理器内部和处理器间的互连网络,提供了对访存行为的事务级模拟支持,支持自定义系统拓扑结构,提供外部API接口,可与外部模块进行消息交互,运行中按照处理器直联Cache 一致性协议模拟并提供系统中各访存事务、Cache、存控的实时行为和状态;
(2)协议参考模型:与总线功能模型紧密集成,对模拟系统中的系统状态和消息流进行实时检查,用于发现模拟过程中系统偏离协议的行为;
(3)节点控制器模拟器:通过总线功能模型的API 接口挂接在其上,模拟实现了节点控制器NC自有的Cache一致性协议;以处理器直联Cache一致性协议消息与处理器进行通信,并以自有的Cache一致性协议消息通过网络模拟器在各NC模拟器间进行通信;
(4)网络模拟器:模拟了一个简单的不保序全交换网络,通过此网络进行扩展Cache 一致性协议的消息通信;
(5)全局检查器:运行在整个系统之上,通过总线功能模型的API 检查全局的数据Cache一致性;
(6)随机/定点测试激励自动发生器:通过总线功能模型的API 接口挂接,在模拟过程中持续产生随机/定点的访存事务,并通过总线功能模型的API 接口发送到总线功能模型中的Cache 上;
2)可扩展的拓扑结构
节点间通信通过域间互连网络,由网络接口NI进行报文传输,每个域包含两个CPU,每个CPU挂接一个存储器,创建基于4 Clumps 可扩展的基本拓扑结构,每个Clump域内带有4 个节点的多节点多处理器系统拓扑结构,根据系统规模对一致性空间、非一致性空间、IO空间的地址进行划分设定,NC代理所有远端的地址空间,据系统地址映射方案,每一个Clump NC节点的地址区域与其它NC节点的地址区域不重叠,因此输入到NC的报文如果地址区域不在本Clump之内,则必然需要进行跨Clump的转换操作;
3)节点仿真模型
NC是接受处理从Clump内与Clump间的报文,并经过相应的记录与处理后,向Clump内与Clump间发出报文,NC实现了一个从配置文件中预读取协议表具体操作的协议表模拟器,当节点模拟器收到一条消息时,协议表模拟器即被激活,首先入口条件查询器按照收到的消息和当前系统的状态进行查找,找到一个入口后转到对应的状态转换执行器执行相应的状态转换代码,如果无法找到对应的入口,则报告模拟出错并结束模拟;
4)协议表查询与状态转换执行,包括协议表模拟器和入口条件查询器,其中:
协议表模拟器作为系统模拟器的核心,协议表模拟器是多层Cache一致性协议模型能够正常工作的关键,协议表是被验证的目标,在整个验证过程中协议表可能被修改,因而要设置一个从配置文件中预读取协议表具体操作的协议表模拟器,该模拟器包括两个部分:入口条件查询器和状态转换执行器,当节点模拟器收到一条消息时,协议表模拟器即被激活,首先入口条件查询器按照收到的消息和当前系统的状态进行查找,找到一个入口后转到对应的状态转换执行器执行相应的状态转换代码,如果无法找到对应的入口,则报告模拟出错并结束模拟;
入口条件查询器是执行域间一致性的关键模块,节点控制器收到的一致性报文均由这两个模块依据其协议表执行转换,入口条件查询器收到报文,根据自身状态查询协议表,更新本地状态并发出新报文,入口条件查询器中记录有协议表若干项,同时记录事件状态的结构有Trk(报文记录存储模块)\Rdt(读报文存储模块)\Wrt(写报文存储模块)\Orb(发出报文存储模块)\Dir(目录存储模块)等;首先定义系统状态寄存器的编码方法:由于每个状态寄存器的取值位数是固定的,所以将所有状态寄存器转换为对应的二进制数后,向左补齐最大位数,将全部的补齐后二进制数串起来即获得对应的编码值,如果在协议表中给出的取值为不确定,则在编码时需将不确定值展开为所有取值,编码后所有取值均指向同一个入口,在每种消息的配置文件中,首先根据入口条件值进行排序,每个条件对应一个入口;
入口条件查询器,采用分级设计,第一级针对收到的消息进行查询,该部分使用Strategy设计模式进行设计,为每种消息实现了一个消息处理类,并继承公共的消息处理类,当北桥模拟器收到一条消息时,使用哈希查找表模式中的匹配方法对消息进行匹配,快速找到对应的入口;
5)协议表执行流程
协议表中所有可能进行的状态转换包括寄存器值的填写和消息的发送两类,寄存器的填写使用通用的填写函数,将寄存器的值作为参数传入;而消息的发送则根据发送消息的不同编写不同消息发送函数,并将各类要发送的消息函数编码,将编码与对应的消息发送函数的函数指针绑定,这样,在每个消息的操作配置文件中,每个入口有对应寄存器值,和需要调用的消息发送函数编码;
实际模拟器执行过程中,当入口条件查询器查询到对应的入口时,将控制权转交到状态转换执行器,状态转换执行器根据预先从配置文件中读入的操作列表分别调用对应的寄存器填写函数和消息发送函数进行工作;
6)事务生成器
事务生成器的工作为随机测试,随机测试是保证测试覆盖完整性的有效方式和过程, 随机测试主要是对协议的所有重要条目进行复测,也包括测试那些当前的测试样例没有覆盖到的部分,每个环节都有可供选择的几项内容,通过大量的随机环节,产生出各个协议条目,通过随机组合的方式来达到协议验证的目的;
7)测试评价方法与提高覆盖率方法
建模测试过程中,模拟验证不断被进行,如果发现有违背设计参考的验证模拟结果出现,则修改模拟实现,并再次投入模拟;如果没有违背设计参考的模拟出现,则分析是否已经达成了目标覆盖率,如果未达成,则修改测试激励,并再次投入模拟;如果已经达成目标覆盖率,则验证工作完成,覆盖率驱动验证方法的核心技术是覆盖率测度报告与测试激励自动生成;
根据选择的覆盖率驱动的模拟验证方法,建立如下模拟验证流程模型:在验证过程中,测试由若干模拟周期构成,每个周期开始时,测试激励自动发生器产生若干访存事务并将其注入系统模拟器,系统模拟器通过模拟运行完成产生的访存事务,当一次产生的访存事务全部完成时,系统完成一个模拟周期,每个模拟周期结束后,系统统计协议表项覆盖率情况,重置模拟器,并进入下一个模拟周期;
在模拟验证过程中,显然每个周期都会有若干个协议表项被覆盖到,除去已经在此前的模拟周期中覆盖过的协议表项,新被覆盖的协议表项即为增加的协议表覆盖项,设第i个周期增加的协议表为K,则第i个周期的覆盖率增长速率为Ki/N(N为协议表的总项数),设第t个周期覆盖的协议表集合为{Ki},则T个周期后的覆盖率为Card{KT = K1∪K2……KT }/N ;
考察一个模拟周期,测试激励完全随机产生,则对于协议表中的每一项,在任何一个周期中被覆盖到的概率均相等,对于各协议表项,一个模拟周期看作一个单重贝努利实验,如果在此周期内模拟器的输出覆盖到了该协议表项,则认为实验成功,否则实验失败;
协议表中有相当多表项是专为解决小概率死锁事件设计的,即协议表中各项在产生的概率是不相同的,当模拟周期数增加时,每周期新被覆盖的协议表项数必然是持续下降的,在长期运行过程中,有效测试激励的产生必然会迅速下降并趋向于0;
覆盖率驱动的测试激励自动产生器,通过上述分析可知,使用纯粹的随机测试激励产生器,必然无法进行高效的验证,要提高测试的效率,必须使每次产生的测试激励具有针对性,使其能够以较大概率使模拟器覆盖到尚未被覆盖到的协议表项,同时这也是对覆盖率驱动验证方法的必然要求,对此,两种根据覆盖率变化使用覆盖率驱动的测试激励自动产生器对测试激励产生进行调整方法如下:
(1)由于验证目标协议的复杂性,以及不保序网络带来的访存事务完成过程的多变性,几乎不可能分析特定输入测试激励和输出覆盖目标之间的关系,在此中条件下,考虑引入一个测试激励分类器,该分类器能给出概率性的输入测试激励和输出覆盖率间的关系,使用此分类器对随机产生的测试激励进行过滤,遴选出有大概率产生新的覆盖目标的测试激励作为有效激励送入模拟器中执行,而将无效的测试激励予以抛弃;
(2)通过分析协议表,协议表中有大量表项具有相似项,包括很多专为小概率事件设计的协议表项,因此在基于相关分析的方法在测试激励的产生中引入偏置思想,在每个周期的模拟结束以后,对该周期的测试激励施加偏置,将带偏置的测试激励再次送入模拟器中运行,以迅速覆盖与上一个周期所产生的模拟验证结果相似的协议表条目。
本发明的方法具有以下突出的有益效果:国际上复杂的Cache Coherence计算机系统验证普遍存在着验证系统规模选择和协议设计验证难度极高的难题。本发明的目的是建立一种基于扩展型Cache Coherence协议的多级一致性协议转换正确性的测试验证模型。由于处理器所能支持的域内处理器ID数量有限,导致多处理器系统所需节点控制器数目过大,造成节点间互连规模庞大、拓扑结构复杂。建立一种基于扩展型Cache Coherence协议的多级一致性协议,通过节点控制器查询本地协议表转换机制,转换多级一致性域报文,可显著扩展大规模共享内存多处理器系统,并能有效提升系统性能,降低系统拓扑复杂度。我们针对CC-NUMA系统中的多层Cache一致性协议,设计实现了一套完整的验证方法。该方法使用覆盖率驱动的验证策略,验证系统由一套基于伪随机模拟验证系统,以及由覆盖率驱动的测试激励自动产生器组成。
本发明的优势主要表现在:
1.模拟建模的方式实现大规模基于扩展型Cache Coherence协议的多级一致性计算机系统的协议设计验证,在较短时间内以极低的资金成本、人员成本完成大规模计算机系统关键协议的验证;
2.能快速发现大规模计算机系统关键协议反例,由于建模的记录完整性可进行故障追溯,从而指导关键协议的修订;
3.构建标准模型,指导大规模基于扩展型Cache Coherence协议的多级一致性计算机系统互联芯片的构建。保证了算机系统和其关键芯片组的验证覆盖率,同时也大大节约了项目设计验证成本,保证开发周期。
附图说明
图1是带节点控制器的多级一致性域系统拓扑结构图;
图2是一致性协议模型模拟测试结构示意图;
图3是多节点多处理器系统互连网络基本结构示意图;
图4是多节点多处理器系统拓扑结构示意图
图5是节点仿真模型关键结构图
图6是模拟器执行过程图
图7是食物生成器执行过程图;
图8是覆盖率为驱动的双环路验证工作流程图;
图9是多级一致性域仿真与验证曲线图。
具体实施方式
下面结合附图对本发明的方法作进一步详细说明。
1)多层Cache一致性协议模型模拟测试结构
本系统使用SystemC语言设计并实现了全系统模拟器,实现模拟并行化方法,模型验证通过在SystemC 环境下构建伪随机的软件模拟验证系统进行,其结构如图2所示;
验证系统主要包括以下部分:
(1)总线功能模型:是一个时钟精确的功能模型,模拟实现了处理器中Cache 、存控、以及处理器内部和处理器间的互连网络;提供了对访存行为的事务级模拟支持;支持自定义系统拓扑结构;提供外部API接口,可与外部模块进行消息交互;运行中按照处理器直联Cache 一致性协议模拟并提供系统中各访存事务、Cache、存控的实时行为和状态;
(2)Reference Model (协议参考模型):与总线功能模型紧密集成,对模拟系统中的系统状态和消息流进行实时检查,用于发现模拟过程中系统偏离协议的行为;
(3)Node Controller (节点控制器模拟器):通过总线功能模型的API 接口挂接在其上,模拟实现了节点控制器(NC)自有的Cache一致性协议;以处理器直联Cache一致性协议消息与处理器进行通信,并以自有的Cache一致性协议消息通过网络模拟器在各NC模拟器间进行通信;
(4)Network Simulator (网络模拟器):模拟了一个简单的不保序全交换网络,通过此网络进行扩展Cache 一致性协议的消息通信;
(5)Global Checker (全局检查器):运行在整个系统之上,通过总线功能模型的API 检查全局的数据Cache一致性;
(6)Random/Force Test Stimulation Generator (随机/定点测试激励自动发生器):通过总线功能模型的API 接口挂接,在模拟过程中持续产生随机/定点的访存事务,并通过总线功能模型的API 接口发送到总线功能模型中的Cache 上;
2)可扩展的拓扑结构
本设计中多节点多处理器系统互连网络基本结构如图3,节点间通信通过域间互连网络,由NI(NetWork Interface,网络接口)进行报文传输。每个Domain(域)包含两个CPU(图3标为 P ),每个CPU挂接一个MEM(Memory,主存)存储空间。创建基于4 Clumps 可扩展的基本拓扑结构,每个Clump域内带有4 个Nodes的多节点多处理器系统拓扑结构示意如图1所示。根据系统规模对一致性空间、非一致性空间、IO空间的地址进行划分设定。NC代理所有远端的地址空间,据系统地址映射方案,如图4,每一个Clump NC节点的地址区域与其它NC节点的地址区域不重叠,因此输入到NC的报文如果地址区域不在本Clump之内,则必然需要进行跨Clump的转换操作;
3)节点仿真模型
NC是接受处理从Clump内与Clump间的报文,并经过相应的记录与处理后,向Clump内与Clump间发出报文。NC实现了一个可以从配置文件中预读取协议表具体操作的协议表模拟器。当节点模拟器收到一条消息时,协议表模拟器即被激活,首先入口条件查询器按照收到的消息和当前系统的状态进行查找,找到一个入口后转到对应的状态转换执行器执行相应的状态转换代码,如果无法找到对应的入口,则报告模拟出错并结束模拟,如图5为节点仿真模型关键结构;
4)协议表入口查询
Protocol Engine是执行域间一致性的关键模块。节点控制器收到的一致性报文均由这两个模块依据其协议表执行转换。Protocol Engine模块收到报文,根据自身状态查询协议表,更新本地状态并发出新报文。Protocol Engine中记录有协议表若干项,同时记录事件状态的结构有Trk(报文记录存储模块)\Rdt(读报文存储模块)\Wrt(写报文存储模块)\Orb(发出报文存储模块)\Dir(目录存储模块)等,实现状态结构存储与查询;
举例而言,协议表如下表所示:
首先定义系统状态寄存器的编码方法:由于每个状态寄存器的取值位数是固定的,所以将所有状态寄存器转换为对应的二进制数后,向左补齐最大位数,将全部的补齐后二进制数串起来即获得对应的编码值。如果在协议表中给出的取值为不确定,则在编码时需将不确定值展开为所有取值,编码后所有取值均指向同一个入口。在每种消息的配置文件中,首先根据入口条件值进行排序,每个条件对应一个入口;
查询器使用分级设计,第一级针对收到的消息进行查询,该部分使用Strategy设计模式进行设计,为每种消息实现了一个消息处理类,并继承自公共的消息处理类。当北桥模拟器收到一条消息时,使用哈希查找表模式中的匹配方法对消息进行匹配,快速找到对应的入口;
5)协议表执行流程
Protocol Engine协议表执行流程如图6模拟器执行过程所示,每一个框图内代表完成一项协议表转换。虚线内部的框图只执行对应的一个协议表。协议表中所有可能进行的状态转换包括寄存器值的填写和消息的发送两类。寄存器的填写使用通用的填写函数,将寄存器的值作为参数传入;而消息的发送则根据发送消息的不同编写不同消息发送函数,并将各类要发送的消息函数编码,将编码与对应的消息发送函数的函数指针绑定。这样,在每个消息的操作配置文件中,每个入口有对应寄存器值,和需要调用的消息发送函数编码;
实际模拟器执行过程中,当入口条件查询器查询到对应的入口时,将控制权转交到状态转换执行器,状态转换执行器根据预先从配置文件中读入的操作列表分别调用对应的寄存器填写函数和消息发送函数进行工作;
6)事务生成器
事务生成器的工作为随机测试。随机测试是保证测试覆盖完整性的有效方式和过程。 随机测试主要是对协议的所有重要条目进行复测,也包括测试那些当前的测试样例没有覆盖到的部分。如图7事务生成器执行过程所示,每个环节都有可供选择的几项内容,通过大量的随机环节,产生出各个协议条目,通过随机组合的方式来达到协议验证的目的;
7)测试评价方法与提高覆盖率方法
建模测试过程中,模拟验证不断被进行,如果发现有违背设计参考的验证模拟结果出现,则修改模拟实现,并再次投入模拟;如果没有违背设计参考的模拟出现,则分析是否已经达成了目标覆盖率,如果未达成,则修改测试激励,并再次投入模拟;如果已经达成目标覆盖率,则验证工作完成。覆盖率驱动验证方法的核心技术是覆盖率测度报告与测试激励自动生成。
图8展示了以覆盖率为驱动的双环路验证工作流程。
根据我们选择的覆盖率驱动的模拟验证方法,我们建立如下模拟验证流程模型:在验证过程中,测试由若干模拟周期构成,每个周期开始时,测试激励自动发生器产生若干访存事务并将其注入系统模拟器,系统模拟器通过模拟运行完成产生的访存事务,当一次产生的访存事务全部完成时,系统完成一个模拟周期。每个模拟周期结束后,系统统计协议表项覆盖率情况,重置模拟器,并进入下一个模拟周期。
在模拟验证过程中,显然每个周期都会有若干个协议表项被覆盖到,除去已经在此前的模拟周期中覆盖过的协议表项,新被覆盖的协议表项即为增加的协议表覆盖项,设第i个周期增加的协议表为Ki,,则第i个周期的覆盖率增长速率为Ki/N(N为协议表的总项数)。,设第t个周期覆盖的协议表集合为{Ki},则T个周期后的覆盖率为Card{KT = K1∪K2……KT }/N 。
协议表中有相当多表项是专为解决小概率死锁事件设计的,即协议表中各项在产生的概率是不相同的。当模拟周期数增加时,每周期新被覆盖的协议表项数必然是持续下降的,在长期运行过程中,有效测试激励的产生必然会迅速下降并趋向于0。
通过上述分析可知,使用纯粹的随机测试激励产生器,必然无法进行高效的验证,要提高测试的效率,必须使每次产生的测试激励具有针对性,使其能够以较大概率使模拟器覆盖到尚未被覆盖到的协议表项,同时这也是对覆盖率驱动验证方法的必然要求。对此,我们提出了一下两种根据覆盖率变化对测试激励产生进行调整的方法:
1.由于验证目标协议的复杂性,以及不保序网络带来的访存事务完成过程的多变性,几乎不可能分析特定输入测试激励和输出覆盖目标之间的关系。在此中条件下,考虑引入一个测试激励分类器,该分类器能给出概率性的输入测试激励和输出覆盖率间的关系。使用此分类器对随机产生的测试激励进行过滤,遴选出有大概率产生新的覆盖目标的测试激励作为有效激励送入模拟器中执行,而将无效的测试激励予以抛弃;
2.通过分析协议表,协议表中有大量表项具有相似项,包括很多专为小概率事件设计的协议表项,因此可以在基于相关分析的方法在测试激励的产生中引入偏置思想,在每个周期的模拟结束以后,对该周期的测试激励施加偏置,将带偏置的测试激励再次送入模拟器中运行,以迅速覆盖与上一个周期所产生的模拟验证结果相似的协议表条目。
本发明应用于复杂高端计算机系统设计领域,在大规模高端计算机系统设计验证以及其系统关键芯片组设计验证,甚至其系统OS和应用软件的设计开发都有极高的应用价值。
在863课题云数据中心关键支撑技术研究中我们运用了这项方法。模型构建后对单次事务仿真时间进行了测量。在模拟器中我们设定了一个模拟时间,测试在模拟时钟推进过程中所需要消耗的时间。同时在浪潮NF8520服务器:处理器Intel E7540XM2×4、内存4G×16、CentOS4.8的平台上得到实际执行时长。实际测试结果表明,本文基于软件模拟方法提出的多级一致性协议验证模型,在可接受的处理仿真时间下验证多状态空间下的Cache Coherence协议。
在大规模的CC-NUMA多处理器系统计算机研制过程中本发明的内容保证了项目体系结构设计、系统互连设计、协议处理关键芯片协议设计等多个方面设计的可行性,特别是提供了系统多个关键芯片组设计的关键可靠对照模型,通过较小的设计规模和投入成本保证了多路计算机系统的设计成功,具有极其重要的研发应用价值。
国外市场技术现状分析及申请的必要性
系统规模的快速扩充、网络延时的不确定性和存储一致性模型的多样性等诸多因素,使Cache一致性协议异常复杂,协议的状态空间呈指数级增长,甚至出现爆炸现象。业内在Cache一致性协议验证方法上有诸多论述,主要包括形式化验证和软件模拟验证。由于固有的状态空间爆炸问题, 完全形式化的验证目前还难以应用到复杂多级协议的验证工作中。软件模拟验证可通过人工方式撰写约束模型同时进行带约束的伪随机测试,对于特定的目标进行验证,其效率也已有较大提高,是一种实用可行的方法。采用模拟实际计算机系统结构的方式实现验证评价系统,建模验证评价平台,可以在较短时间内以极低的资金成本、人员成本完成大规模计算机系统关键协议的验证;在建模的过程中,可实现处理机制全状态的记录,在发现大规模计算机系统关键协议反例时易于进行故障追溯。建模实现了标准模型,在指导大规模基于扩展型Cache Coherence协议的多级一致性计算机系统互联芯片的构建。建模规模自主可控,技术条件成熟,在实现上较容易控制造成研制成本、避免开发周期过长。
效益情况(经济效益、社会效益)
相对于结构极其复杂的高端容错计算机系统而言其设计的关键技术包括体系结构设计、关键芯片组设计等等,较小规模的原型验证系统可以通过相对规模较小的硬件实现和可编程的FPGA芯片完成系统设计关键技术的突破,从而缩短研发周期,减少设计验证成本,保证项目研制成功。例如,协议复杂逻辑庞大的关键芯片组设计过程中,芯片的一次流片费用为上千万,流片周期需要几个月,通过高验证覆盖率的原型系统验证可保证芯片的一次流片成功,大大节省项目的时间开销和成本开销。同时该验证也为系统结构设计、散热设计、功耗分析提供参考,大大降低项目研制风险。因此本发明具有较高的经济价值和社会效益。
除本发明的说明书公开的技术特征外均为本专业技术人员的公职技术。
Claims (1)
1.一种基于扩展型Cache Coherence协议的多级一致性域仿真验证和测试方法,其特征在于,包括:多层Cache一致性协议模型模拟测试结构;可扩展的拓扑结构;节点仿真模型;协议表查询与状态转换执行方法;协议表执行流程;事务生成器;测试评价方法和提高覆盖率方法,使用覆盖率驱动的验证策略构建一套基于伪随机模拟验证系统,以及由覆盖率驱动的测试激励自动产生器组成的模拟验证系统,其中:
为实现大规模的CC-NUMA多处理器系统,需借助节点控制器NC扩大一致性域空间,节点控制器具有维护全局Cache一致性和扩展系统规模两种功能:首先,每个节点控制器连接1至4颗处理器,组成一个节点和第一级Cache一致性域,域内一致性由处理器和节点控制器共同维护;其次,节点控制器直接互连或通过节点路由器连接以组成大规模CC-NUMA系统;节点间的第二级Cache一致性由节点控制器维护,这样构成的大规模的CC-NUMA 系统需要在处理器直联Cache一致性协议基础上扩展建立多层次的协议,并维护全局一致性,为了构建一种基于扩展型Cache Coherence协议的多级一致性域CC-NUMA系统协议的仿真模型,需构建系统关键节点内协议表查询和状态转换执行机制,确保多一致性域内与域间之间传输的准确性、稳定性;提出一种可信的协议入口转换覆盖率评价驱动验证方法,通过加载经优化的事务发生器推动模型进行事务处理,在运行结束时获得覆盖率指标,较之随机事务推进机制提高验证效率,通过构建一个多处理器验证系统模型并开展相关仿真验证,进一步确认该方法的适用性和有效性;
1)多层Cache一致性协议模型模拟测试结构
使用SystemC语言设计一种基于扩展型Cache Coherence协议的多级一致性域模型的系统模拟器和与系统模拟器并行执行的模型验证系统,模型验证系统通过构建伪随机事务发生器进行测试,通过全局检查器进行系统正确性判断;模型验证系统包括:总线功能模型、协议参考模型、节点控制器模拟器、网络模拟器、全局检查器、协议入口查询机制,其中:
(1)总线功能模型:是一个时钟精确的功能模型,模拟实现了处理器中Cache 、存控、以及处理器内部和处理器间的互连网络,提供了对访存行为的事务级模拟支持,支持自定义系统拓扑结构,提供外部API接口,可与外部模块进行消息交互,运行中按照处理器直联Cache 一致性协议模拟并提供系统中各访存事务、Cache、存控的实时行为和状态;
(2)协议参考模型:与总线功能模型紧密集成,对模拟系统中的系统状态和消息流进行实时检查,用于发现模拟过程中系统偏离协议的行为;
(3)节点控制器模拟器:通过总线功能模型的API 接口挂接在其上,模拟实现了节点控制器NC自有的Cache一致性协议;以处理器直联Cache一致性协议消息与处理器进行通信,并以自有的Cache一致性协议消息通过网络模拟器在各NC模拟器间进行通信;
(4)网络模拟器:模拟了一个简单的不保序全交换网络,通过此网络进行扩展Cache 一致性协议的消息通信;
(5)全局检查器:运行在整个系统之上,通过总线功能模型的API 检查全局的数据Cache一致性;
(6)随机/定点测试激励自动发生器:通过总线功能模型的API 接口挂接,在模拟过程中持续产生随机/定点的访存事务,并通过总线功能模型的API 接口发送到总线功能模型中的Cache 上;
2)可扩展的拓扑结构
节点间通信通过域间互连网络,由网络接口NI进行报文传输,每个域包含两个CPU,每个CPU挂接一个存储器,创建基于4 Clumps 可扩展的基本拓扑结构,每个Clump域内带有4 个节点的多节点多处理器系统拓扑结构,根据系统规模对一致性空间、非一致性空间、IO空间的地址进行划分设定,NC代理所有远端的地址空间,据系统地址映射方案,每一个Clump NC节点的地址区域与其它NC节点的地址区域不重叠,因此输入到NC的报文如果地址区域不在本Clump之内,则必然需要进行跨Clump的转换操作;
3)节点仿真模型
NC是接受处理从Clump内与Clump间的报文,并经过相应的记录与处理后,向Clump内与Clump间发出报文,NC实现了一个从配置文件中预读取协议表具体操作的协议表模拟器,当节点模拟器收到一条消息时,协议表模拟器即被激活,首先入口条件查询器按照收到的消息和当前系统的状态进行查找,找到一个入口后转到对应的状态转换执行器执行相应的状态转换代码,如果无法找到对应的入口,则报告模拟出错并结束模拟;
4)协议表查询与状态转换执行方法,包括协议表模拟器和入口条件查询器,其中:
协议表模拟器作为系统模拟器的核心,协议表模拟器是多层Cache一致性协议模型能够正常工作的关键,协议表是被验证的目标,在整个验证过程中协议表可能被修改,因而要设置一个从配置文件中预读取协议表具体操作的协议表模拟器,该模拟器包括两个部分:入口条件查询器和状态转换执行器,当节点模拟器收到一条消息时,协议表模拟器即被激活,首先入口条件查询器按照收到的消息和当前系统的状态进行查找,找到一个入口后转到对应的状态转换执行器执行相应的状态转换代码,如果无法找到对应的入口,则报告模拟出错并结束模拟;
入口条件查询器是执行域间一致性的关键模块,节点控制器收到的一致性报文均由这两个模块依据其协议表执行转换,入口条件查询器收到报文,根据自身状态查询协议表,更新本地状态并发出新报文,入口条件查询器中记录有协议表若干项,同时记录事件状态的结构有Trk\Rdt\Wrt\Orb\Dir,实现状态结构存储与查询;
首先定义系统状态寄存器的编码方法:由于每个状态寄存器的取值位数是固定的,所以将所有状态寄存器转换为对应的二进制数后,向左补齐最大位数,将全部的补齐后二进制数串起来即获得对应的编码值,如果在协议表中给出的取值为不确定,则在编码时需将不确定值展开为所有取值,编码后所有取值均指向同一个入口,在每种消息的配置文件中,首先根据入口条件值进行排序,每个条件对应一个入口;
入口条件查询器,采用分级设计,第一级针对收到的消息进行查询,该部分使用Strategy设计模式进行设计,为每种消息实现了一个消息处理类,并继承公共的消息处理类,当北桥模拟器收到一条消息时,使用哈希查找表模式中的匹配方法对消息进行匹配快速找到对应的入口;
5)协议表执行流程
协议表中所有可能进行的状态转换包括寄存器值的填写和消息的发送两类,寄存器的填写使用通用的填写函数,将寄存器的值作为参数传入;而消息的发送则根据发送消息的不同编写不同消息发送函数,并将各类要发送的消息函数编码,将编码与对应的消息发送函数的函数指针绑定,这样,在每个消息的操作配置文件中,每个入口有对应寄存器值,和需要调用的消息发送函数编码;
实际模拟器执行过程中,当入口条件查询器查询到对应的入口时,将控制权转交到状态转换执行器,状态转换执行器根据预先从配置文件中读入的操作列表分别调用对应的寄存器填写函数和消息发送函数进行工作;
6)事务生成器
事务生成器的工作为随机测试,随机测试是保证测试覆盖完整性的有效方式和过程, 随机测试主要是对协议的所有重要条目进行复测,也包括测试那些当前的测试样例没有覆盖到的部分,每个环节都有可供选择的几项内容,通过大量的随机环节,产生出各个协议条目,通过随机组合的方式来达到协议验证的目的;
7)测试评价方法与提高覆盖率方法
建模测试过程中,模拟验证不断被进行,如果发现有违背设计参考的验证模拟结果出现,则修改模拟实现,并再次投入模拟;如果没有违背设计参考的模拟出现,则分析是否已经达成了目标覆盖率,如果未达成,则修改测试激励,并再次投入模拟;如果已经达成目标覆盖率,则验证工作完成,覆盖率驱动验证方法的核心技术是覆盖率测度报告与测试激励自动生成;
根据选择的覆盖率驱动的模拟验证方法,建立如下模拟验证流程模型:在验证过程中,测试由若干模拟周期构成,每个周期开始时,测试激励自动发生器产生若干访存事务并将其注入系统模拟器,系统模拟器通过模拟运行完成产生的访存事务,当一次产生的访存事务全部完成时,系统完成一个模拟周期,每个模拟周期结束后,系统统计协议表项覆盖率情况,重置模拟器,并进入下一个模拟周期;
在模拟验证过程中,显然每个周期都会有若干个协议表项被覆盖到,除去已经在此前的模拟周期中覆盖过的协议表项,新被覆盖的协议表项即为增加的协议表覆盖项,设第i个周期增加的协议表为K,则第i个周期的覆盖率增长速率为Ki/N(N为协议表的总项数),设第t个周期覆盖的协议表集合为{Ki},则T个周期后的覆盖率为Card{KT = K1∪K2……KT }/N ;
考察一个模拟周期,测试激励完全随机产生,则对于协议表中的每一项,在任何一个周期中被覆盖到的概率均相等,对于各协议表项,一个模拟周期看作一个单重贝努利实验,如果在此周期内模拟器的输出覆盖到了该协议表项,则认为实验成功,否则实验失败;
协议表中有相当多表项是专为解决小概率死锁事件设计的,即协议表中各项在产生的概率是不相同的,当模拟周期数增加时,每周期新被覆盖的协议表项数必然是持续下降的,在长期运行过程中,有效测试激励的产生必然会迅速下降并趋向于0;
覆盖率驱动的测试激励自动产生器,通过上述分析可知,使用纯粹的随机测试激励产生器,必然无法进行高效的验证,要提高测试的效率,必须使每次产生的测试激励具有针对性,使其能够以较大概率使模拟器覆盖到尚未被覆盖到的协议表项,同时这也是对覆盖率驱动验证方法的必然要求,对此,两种根据覆盖率变化使用覆盖率驱动的测试激励自动产生器对测试激励产生进行调整方法如下:
(1)由于验证目标协议的复杂性,以及不保序网络带来的访存事务完成过程的多变性,几乎不可能分析特定输入测试激励和输出覆盖目标之间的关系,在此中条件下,考虑引入一个测试激励分类器,该分类器能给出概率性的输入测试激励和输出覆盖率间的关系,使用此分类器对随机产生的测试激励进行过滤,遴选出有大概率产生新的覆盖目标的测试激励作为有效激励送入模拟器中执行,而将无效的测试激励予以抛弃;
(2)通过分析协议表,协议表中有大量表项具有相似项,包括很多专为小概率事件设计的协议表项,因此在基于相关分析的方法在测试激励的产生中引入偏置思想,在每个周期的模拟结束以后,对该周期的测试激励施加偏置,将带偏置的测试激励再次送入模拟器中运行,以迅速覆盖与上一个周期所产生的模拟验证结果相似的协议表条目。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310018123.3A CN103150264B (zh) | 2013-01-18 | 2013-01-18 | 一种基于扩展型Cache Coherence协议的多级一致性域仿真验证和测试方法 |
EP13872015.6A EP2869194A4 (en) | 2013-01-18 | 2013-10-11 | TESTING AND TESTING PROCEDURES FOR DOMAIN SIMULATION BASED ON AN EXTREMELY CACHE COHERENCE PROTOCOL WITH OVERHEAD COHERENCE |
JP2015527784A JP2015531929A (ja) | 2013-01-18 | 2013-10-11 | 拡張型キャッシュコヒーレンスプロトコルに基づく多階層コヒーレンスドメインのシミュレーション検証およびテスト方法 |
PCT/CN2013/085028 WO2014110922A1 (zh) | 2013-01-18 | 2013-10-11 | 一种基于扩展型Cache Coherence协议的多级一致性域仿真验证和测试方法 |
US14/534,906 US20150095008A1 (en) | 2013-01-18 | 2014-11-06 | Extension cache coherence protocol-based multi-level coherency domain simulation verification and test method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310018123.3A CN103150264B (zh) | 2013-01-18 | 2013-01-18 | 一种基于扩展型Cache Coherence协议的多级一致性域仿真验证和测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103150264A true CN103150264A (zh) | 2013-06-12 |
CN103150264B CN103150264B (zh) | 2014-09-17 |
Family
ID=48548357
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310018123.3A Active CN103150264B (zh) | 2013-01-18 | 2013-01-18 | 一种基于扩展型Cache Coherence协议的多级一致性域仿真验证和测试方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20150095008A1 (zh) |
EP (1) | EP2869194A4 (zh) |
JP (1) | JP2015531929A (zh) |
CN (1) | CN103150264B (zh) |
WO (1) | WO2014110922A1 (zh) |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103488606A (zh) * | 2013-09-10 | 2014-01-01 | 华为技术有限公司 | 基于节点控制器的请求响应方法和装置 |
CN103914333A (zh) * | 2014-04-14 | 2014-07-09 | 中国科学技术大学苏州研究院 | 基于片上网络互连的多核存储系统仿真器 |
WO2014110922A1 (zh) * | 2013-01-18 | 2014-07-24 | 浪潮电子信息产业股份有限公司 | 一种基于扩展型Cache Coherence协议的多级一致性域仿真验证和测试方法 |
CN104572514A (zh) * | 2015-01-20 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种全局共享i/o服务器的设计方法 |
CN105446840A (zh) * | 2015-11-24 | 2016-03-30 | 无锡江南计算技术研究所 | 一种Cache一致性极限测试方法 |
CN105573881A (zh) * | 2015-12-14 | 2016-05-11 | 浪潮(北京)电子信息产业有限公司 | 基于bfm快速验证大型互连芯片地址的方法及系统 |
CN105740168A (zh) * | 2016-01-23 | 2016-07-06 | 中国人民解放军国防科学技术大学 | 一种容错目录高速缓存控制器 |
CN105933286A (zh) * | 2016-04-05 | 2016-09-07 | 浪潮电子信息产业股份有限公司 | 一种验证协议的方法及装置 |
CN105959176A (zh) * | 2016-04-25 | 2016-09-21 | 浪潮(北京)电子信息产业有限公司 | 基于Gem5模拟器的一致性协议测试方法和系统 |
CN106649041A (zh) * | 2016-12-27 | 2017-05-10 | 郑州云海信息技术有限公司 | 自动测试存储缓存模式的装置及方法 |
US9678873B2 (en) | 2015-02-13 | 2017-06-13 | International Business Machines Corporation | Early shared resource release in symmetric multiprocessing computer systems |
CN107222363A (zh) * | 2017-05-26 | 2017-09-29 | 郑州云海信息技术有限公司 | 一种存储协议一致性测试方法及系统 |
CN107368434A (zh) * | 2017-07-21 | 2017-11-21 | 郑州云海信息技术有限公司 | 一种验证Cache一致性协议的装置及方法 |
CN108027775A (zh) * | 2015-09-24 | 2018-05-11 | 高通股份有限公司 | 避免采用重试及按次序响应非重试总线一致性协议的基于处理器的系统中的死锁 |
CN108228410A (zh) * | 2018-01-24 | 2018-06-29 | 北京航空航天大学 | 一种基于Event-B的多核并发系统验证方法 |
CN109240859A (zh) * | 2017-07-11 | 2019-01-18 | 展讯通信(上海)有限公司 | 处理器验证系统及方法 |
WO2019019793A1 (zh) * | 2017-07-27 | 2019-01-31 | 华为技术有限公司 | 传输数据的方法和设备 |
US10282265B2 (en) | 2014-11-12 | 2019-05-07 | International Business Machines Corporation | Verifying a graph-based coherency verification tool |
US10366006B2 (en) | 2015-10-15 | 2019-07-30 | Huawei Technologies Co., Ltd. | Computing apparatus, node device, and server |
CN110598309A (zh) * | 2019-09-09 | 2019-12-20 | 电子科技大学 | 一种基于强化学习的硬件设计验证系统及方法 |
CN110727465A (zh) * | 2019-09-11 | 2020-01-24 | 无锡江南计算技术研究所 | 一种基于配置查找表的协议可重构一致性实现方法 |
CN111221629A (zh) * | 2020-01-09 | 2020-06-02 | 上海沄界信息科技有限公司 | 计算资源使用量量化方法及装置 |
CN111381979A (zh) * | 2018-12-29 | 2020-07-07 | 杭州海康威视数字技术股份有限公司 | 神经网络的开发验证方法、装置、系统及存储介质 |
CN111611120A (zh) * | 2020-06-28 | 2020-09-01 | 中国人民解放军国防科技大学 | 一种片上多核处理器Cache一致性协议验证方法、系统及介质 |
CN112199291A (zh) * | 2020-10-16 | 2021-01-08 | 天津飞腾信息技术有限公司 | 一种多核处理器Cache一致性模拟验证方法及验证装置 |
CN114428749A (zh) * | 2022-04-07 | 2022-05-03 | 沐曦科技(北京)有限公司 | 用于验证cache的检测器 |
CN115130402A (zh) * | 2022-08-30 | 2022-09-30 | 北京开源芯片研究院 | 一种缓存验证方法、系统、电子设备及可读存储介质 |
CN115618801A (zh) * | 2022-12-01 | 2023-01-17 | 北京智芯微电子科技有限公司 | 缓存一致性检验方法、装置及电子设备 |
CN116049035A (zh) * | 2022-12-27 | 2023-05-02 | 合芯科技有限公司 | 一种缓存一致性的验证和调试的实现方法 |
WO2023087600A1 (zh) * | 2021-11-22 | 2023-05-25 | 厦门大学 | 一种分布式数据平面验证方法 |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9734063B2 (en) * | 2014-02-27 | 2017-08-15 | École Polytechnique Fédérale De Lausanne (Epfl) | Scale-out non-uniform memory access |
US10114355B2 (en) * | 2015-01-20 | 2018-10-30 | Ultra Electronics | Techniques for facilitating communication between networked nodes |
US9799402B2 (en) | 2015-06-08 | 2017-10-24 | Samsung Electronics Co., Ltd. | Nonvolatile memory device and program method thereof |
US9942631B2 (en) * | 2015-09-25 | 2018-04-10 | Intel Corporation | Out-of-band platform tuning and configuration |
EP3575977A1 (en) * | 2015-12-29 | 2019-12-04 | Huawei Technologies Co., Ltd. | Cpu and multi-cpu system management method |
US9928127B2 (en) | 2016-01-29 | 2018-03-27 | International Business Machines Corporation | Testing a data coherency algorithm |
US9946674B2 (en) * | 2016-04-28 | 2018-04-17 | Infineon Technologies Ag | Scalable multi-core system-on-chip architecture on multiple dice for high end microcontroller |
US10205636B1 (en) * | 2016-10-05 | 2019-02-12 | Cisco Technology, Inc. | Two-stage network simulation |
JP2019053617A (ja) * | 2017-09-15 | 2019-04-04 | 株式会社東芝 | システムlsiおよびシステムlsiの故障検出方法 |
CN108897724B (zh) * | 2018-07-03 | 2022-11-15 | 天津芯海创科技有限公司 | 功能完成进度确定方法及装置 |
CN111628666B (zh) * | 2019-02-28 | 2021-04-13 | 台达电子企业管理(上海)有限公司 | 多电平变换器的控制方法及多电平变换器 |
CN110210053A (zh) * | 2019-04-24 | 2019-09-06 | 天津大学 | 一种基于fpga的实时数字解算器的通信接口设计方法 |
US10970213B2 (en) * | 2019-04-30 | 2021-04-06 | Hewlett Packard Enterprise Development Lp | Selective disabling of hardware-based cache coherency and enforcement of software-based cache coherency |
EP3987403B1 (en) * | 2019-06-20 | 2023-10-25 | Telefonaktiebolaget LM Ericsson (publ) | Network entities and methods performed therein for handling cache coherency |
CN110347617A (zh) * | 2019-07-03 | 2019-10-18 | 南京大学 | 一种多核SoC中DMA模块的功能验证方法 |
CN111639470B (zh) * | 2020-05-28 | 2022-06-17 | 山东云海国创云计算装备产业创新中心有限公司 | 一种处理器协同芯片的仿真测试方法、系统及相关组件 |
CN111611176B (zh) * | 2020-06-28 | 2023-05-30 | 中国人民解放军国防科技大学 | 一种通用接口覆盖率模型验证环境自动生成方法、系统及介质 |
CN111881520B (zh) * | 2020-07-31 | 2022-01-11 | 广州文远知行科技有限公司 | 一种自动驾驶测试的异常检测方法、装置、计算机设备及存储介质 |
CN112100817B (zh) * | 2020-08-20 | 2022-07-12 | 上海机电工程研究所 | 基于分布式仿真系统的异构io数据智能转换方法及系统 |
CN112235812A (zh) * | 2020-10-12 | 2021-01-15 | 江苏亨鑫众联通信技术有限公司 | 一种移动专网设备及其应用方法、系统 |
CN114584630B (zh) * | 2020-11-18 | 2023-10-27 | 中移物联网有限公司 | 一种基于现场总线协议的通信方法及设备 |
CN112329273B (zh) * | 2020-12-17 | 2023-10-24 | 芯天下技术股份有限公司 | 一种提升芯片验证效率的方法、装置、存储介质和终端 |
CN113012412B (zh) * | 2021-03-03 | 2022-10-18 | 福建鸿鹄环境发展有限公司 | 基于仪表和视频数据动态采集统计分析的智慧数据采集方法及系统 |
CN112988485B (zh) * | 2021-03-26 | 2024-01-26 | 国网冀北电力有限公司信息通信分公司 | 电力物联网设备模拟测试方法及装置 |
CN113157598A (zh) * | 2021-05-26 | 2021-07-23 | 中国银行股份有限公司 | 接口测试方法和模拟挡板 |
CN113608879B (zh) * | 2021-08-27 | 2024-02-09 | 北京易智联科技有限公司 | 一种可重构的模拟器或测试设备架构设计方法 |
CN114189468B (zh) * | 2021-11-02 | 2024-04-12 | 云端领航(北京)通信科技股份有限公司 | 一种基于标识分簇的多标识网络体系路由方法 |
CN114500324B (zh) * | 2022-01-24 | 2023-08-18 | 国家工业信息安全发展研究中心 | 一种面向工业互联网仿真测试床的集成接入系统 |
CN114580344B (zh) * | 2022-04-24 | 2022-08-16 | 飞腾信息技术有限公司 | 测试激励生成方法、验证方法、验证系统及相关设备 |
CN114896931B (zh) * | 2022-05-12 | 2023-09-01 | 北京联盛德微电子有限责任公司 | 一种基于握手机制的蓝牙收发通路的验证方法及系统 |
CN114722643B (zh) * | 2022-06-09 | 2022-09-16 | 浙江大学 | 基于复杂系统仿真模型的虚实一致性验证方法 |
CN114996077B (zh) * | 2022-08-08 | 2022-11-01 | 济南新语软件科技有限公司 | 一种多核并行仿真方法及实现多核并行仿真的平台架构 |
CN115051928B (zh) * | 2022-08-11 | 2022-11-11 | 国网江苏省电力有限公司信息通信分公司 | 一种多主体一体化研发仿真平台构建方法 |
CN115190191B (zh) * | 2022-09-13 | 2022-11-29 | 中电运行(北京)信息技术有限公司 | 基于协议解析的电网工业控制系统及控制方法 |
CN115333872B (zh) * | 2022-10-17 | 2023-01-20 | 北京六方云信息技术有限公司 | 安全网关解析功能验证方法、装置、终端设备及存储介质 |
CN116629010B (zh) * | 2023-06-02 | 2024-01-23 | 江苏科技大学 | 一种基于随机过程的退化模型确认及其试验设计方法 |
CN117195790B (zh) * | 2023-11-07 | 2024-01-26 | 成都市楠菲微电子有限公司 | 多级表项验证方法、系统及计算机设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020144185A1 (en) * | 2001-03-29 | 2002-10-03 | International Business Machines Corporation | Verification of global coherence in a multi-node NUMA system |
CN101030170A (zh) * | 2005-12-27 | 2007-09-05 | 英特尔公司 | 多状态高速缓存一致性方案的设备、系统和方法 |
CN102122259A (zh) * | 2011-03-03 | 2011-07-13 | 浪潮(北京)电子信息产业有限公司 | 一种高端容错计算机原型验证系统及验证方法 |
CN102681937A (zh) * | 2012-05-15 | 2012-09-19 | 浪潮电子信息产业股份有限公司 | 一种缓存一致性协议正确性验证方法 |
CN102880537A (zh) * | 2012-09-07 | 2013-01-16 | 浪潮电子信息产业股份有限公司 | 一种Cache一致性协议软件模拟验证方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6892319B2 (en) * | 2000-09-08 | 2005-05-10 | Hewlett-Packard Development Company, L.P. | Method for verifying abstract memory models of shared memory multiprocessors |
US20090171647A1 (en) * | 2007-12-27 | 2009-07-02 | Phanindra Mannava | Interconnect architectural state coverage measurement methodology |
CN101216815B (zh) * | 2008-01-07 | 2010-11-03 | 浪潮电子信息产业股份有限公司 | 一种双翼可扩展多处理器紧耦合共享存储器体系结构 |
US20110295587A1 (en) * | 2010-06-01 | 2011-12-01 | Eeckhout Lieven | Methods and systems for simulating a processor |
CN103150264B (zh) * | 2013-01-18 | 2014-09-17 | 浪潮电子信息产业股份有限公司 | 一种基于扩展型Cache Coherence协议的多级一致性域仿真验证和测试方法 |
-
2013
- 2013-01-18 CN CN201310018123.3A patent/CN103150264B/zh active Active
- 2013-10-11 EP EP13872015.6A patent/EP2869194A4/en not_active Withdrawn
- 2013-10-11 WO PCT/CN2013/085028 patent/WO2014110922A1/zh active Application Filing
- 2013-10-11 JP JP2015527784A patent/JP2015531929A/ja active Pending
-
2014
- 2014-11-06 US US14/534,906 patent/US20150095008A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020144185A1 (en) * | 2001-03-29 | 2002-10-03 | International Business Machines Corporation | Verification of global coherence in a multi-node NUMA system |
CN101030170A (zh) * | 2005-12-27 | 2007-09-05 | 英特尔公司 | 多状态高速缓存一致性方案的设备、系统和方法 |
CN102122259A (zh) * | 2011-03-03 | 2011-07-13 | 浪潮(北京)电子信息产业有限公司 | 一种高端容错计算机原型验证系统及验证方法 |
CN102681937A (zh) * | 2012-05-15 | 2012-09-19 | 浪潮电子信息产业股份有限公司 | 一种缓存一致性协议正确性验证方法 |
CN102880537A (zh) * | 2012-09-07 | 2013-01-16 | 浪潮电子信息产业股份有限公司 | 一种Cache一致性协议软件模拟验证方法 |
Cited By (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014110922A1 (zh) * | 2013-01-18 | 2014-07-24 | 浪潮电子信息产业股份有限公司 | 一种基于扩展型Cache Coherence协议的多级一致性域仿真验证和测试方法 |
CN103488606A (zh) * | 2013-09-10 | 2014-01-01 | 华为技术有限公司 | 基于节点控制器的请求响应方法和装置 |
CN103488606B (zh) * | 2013-09-10 | 2016-08-17 | 华为技术有限公司 | 基于节点控制器的请求响应方法和装置 |
US10324646B2 (en) | 2013-09-10 | 2019-06-18 | Huawei Technologies Co., Ltd. | Node controller and method for responding to request based on node controller |
CN103914333A (zh) * | 2014-04-14 | 2014-07-09 | 中国科学技术大学苏州研究院 | 基于片上网络互连的多核存储系统仿真器 |
CN103914333B (zh) * | 2014-04-14 | 2017-12-01 | 中国科学技术大学苏州研究院 | 基于片上网络互连的多核存储系统仿真器 |
US10282265B2 (en) | 2014-11-12 | 2019-05-07 | International Business Machines Corporation | Verifying a graph-based coherency verification tool |
US10635555B2 (en) | 2014-11-12 | 2020-04-28 | International Business Machines Corporation | Verifying a graph-based coherency verification tool |
CN104572514A (zh) * | 2015-01-20 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种全局共享i/o服务器的设计方法 |
US9678873B2 (en) | 2015-02-13 | 2017-06-13 | International Business Machines Corporation | Early shared resource release in symmetric multiprocessing computer systems |
CN108027775A (zh) * | 2015-09-24 | 2018-05-11 | 高通股份有限公司 | 避免采用重试及按次序响应非重试总线一致性协议的基于处理器的系统中的死锁 |
US10366006B2 (en) | 2015-10-15 | 2019-07-30 | Huawei Technologies Co., Ltd. | Computing apparatus, node device, and server |
CN105446840A (zh) * | 2015-11-24 | 2016-03-30 | 无锡江南计算技术研究所 | 一种Cache一致性极限测试方法 |
CN105573881B (zh) * | 2015-12-14 | 2018-03-27 | 浪潮(北京)电子信息产业有限公司 | 基于bfm快速验证大型互连芯片地址的方法及系统 |
CN105573881A (zh) * | 2015-12-14 | 2016-05-11 | 浪潮(北京)电子信息产业有限公司 | 基于bfm快速验证大型互连芯片地址的方法及系统 |
CN105740168A (zh) * | 2016-01-23 | 2016-07-06 | 中国人民解放军国防科学技术大学 | 一种容错目录高速缓存控制器 |
CN105740168B (zh) * | 2016-01-23 | 2018-07-13 | 中国人民解放军国防科学技术大学 | 一种容错目录高速缓存控制器 |
CN105933286B (zh) * | 2016-04-05 | 2019-08-02 | 浪潮电子信息产业股份有限公司 | 一种验证协议的方法及装置 |
CN105933286A (zh) * | 2016-04-05 | 2016-09-07 | 浪潮电子信息产业股份有限公司 | 一种验证协议的方法及装置 |
CN105959176B (zh) * | 2016-04-25 | 2019-05-28 | 浪潮(北京)电子信息产业有限公司 | 基于Gem5模拟器的一致性协议测试方法和系统 |
CN105959176A (zh) * | 2016-04-25 | 2016-09-21 | 浪潮(北京)电子信息产业有限公司 | 基于Gem5模拟器的一致性协议测试方法和系统 |
CN106649041A (zh) * | 2016-12-27 | 2017-05-10 | 郑州云海信息技术有限公司 | 自动测试存储缓存模式的装置及方法 |
CN107222363A (zh) * | 2017-05-26 | 2017-09-29 | 郑州云海信息技术有限公司 | 一种存储协议一致性测试方法及系统 |
CN109240859A (zh) * | 2017-07-11 | 2019-01-18 | 展讯通信(上海)有限公司 | 处理器验证系统及方法 |
CN107368434A (zh) * | 2017-07-21 | 2017-11-21 | 郑州云海信息技术有限公司 | 一种验证Cache一致性协议的装置及方法 |
CN107368434B (zh) * | 2017-07-21 | 2020-08-04 | 苏州浪潮智能科技有限公司 | 一种验证Cache一致性协议的装置及方法 |
WO2019019793A1 (zh) * | 2017-07-27 | 2019-01-31 | 华为技术有限公司 | 传输数据的方法和设备 |
US11243900B2 (en) | 2017-07-27 | 2022-02-08 | Huawei Technologies Co., Ltd. | Data transmission method and device |
CN108228410A (zh) * | 2018-01-24 | 2018-06-29 | 北京航空航天大学 | 一种基于Event-B的多核并发系统验证方法 |
CN108228410B (zh) * | 2018-01-24 | 2020-09-25 | 北京航空航天大学 | 一种基于Event-B的多核并发系统验证方法 |
CN111381979B (zh) * | 2018-12-29 | 2023-05-23 | 杭州海康威视数字技术股份有限公司 | 神经网络的开发验证方法、装置、系统及存储介质 |
CN111381979A (zh) * | 2018-12-29 | 2020-07-07 | 杭州海康威视数字技术股份有限公司 | 神经网络的开发验证方法、装置、系统及存储介质 |
CN110598309A (zh) * | 2019-09-09 | 2019-12-20 | 电子科技大学 | 一种基于强化学习的硬件设计验证系统及方法 |
CN110727465A (zh) * | 2019-09-11 | 2020-01-24 | 无锡江南计算技术研究所 | 一种基于配置查找表的协议可重构一致性实现方法 |
CN111221629A (zh) * | 2020-01-09 | 2020-06-02 | 上海沄界信息科技有限公司 | 计算资源使用量量化方法及装置 |
CN111221629B (zh) * | 2020-01-09 | 2023-09-05 | 上海沄界信息科技有限公司 | 计算资源使用量量化方法及装置 |
CN111611120A (zh) * | 2020-06-28 | 2020-09-01 | 中国人民解放军国防科技大学 | 一种片上多核处理器Cache一致性协议验证方法、系统及介质 |
CN111611120B (zh) * | 2020-06-28 | 2023-05-30 | 中国人民解放军国防科技大学 | 一种片上多核处理器Cache一致性协议验证方法、系统及介质 |
CN112199291A (zh) * | 2020-10-16 | 2021-01-08 | 天津飞腾信息技术有限公司 | 一种多核处理器Cache一致性模拟验证方法及验证装置 |
WO2023087600A1 (zh) * | 2021-11-22 | 2023-05-25 | 厦门大学 | 一种分布式数据平面验证方法 |
CN114428749A (zh) * | 2022-04-07 | 2022-05-03 | 沐曦科技(北京)有限公司 | 用于验证cache的检测器 |
CN115130402A (zh) * | 2022-08-30 | 2022-09-30 | 北京开源芯片研究院 | 一种缓存验证方法、系统、电子设备及可读存储介质 |
CN115618801A (zh) * | 2022-12-01 | 2023-01-17 | 北京智芯微电子科技有限公司 | 缓存一致性检验方法、装置及电子设备 |
CN116049035A (zh) * | 2022-12-27 | 2023-05-02 | 合芯科技有限公司 | 一种缓存一致性的验证和调试的实现方法 |
CN116049035B (zh) * | 2022-12-27 | 2024-02-09 | 合芯科技有限公司 | 一种缓存一致性的验证和调试的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2014110922A1 (zh) | 2014-07-24 |
CN103150264B (zh) | 2014-09-17 |
EP2869194A1 (en) | 2015-05-06 |
EP2869194A4 (en) | 2016-08-03 |
US20150095008A1 (en) | 2015-04-02 |
JP2015531929A (ja) | 2015-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103150264B (zh) | 一种基于扩展型Cache Coherence协议的多级一致性域仿真验证和测试方法 | |
CN101446987B (zh) | 一种用于多核处理器Cache一致性实物验证的装置 | |
CN102880537A (zh) | 一种Cache一致性协议软件模拟验证方法 | |
CN109858621A (zh) | 一种卷积神经网络加速器的调试装置、方法及存储介质 | |
CN105959176B (zh) | 基于Gem5模拟器的一致性协议测试方法和系统 | |
Pöppl et al. | SWE-X10: Simulating shallow water waves with lazy activation of patches using ActorX10 | |
Diab et al. | Dependable Computing Systems: Paradigms, Performance Issues, and Applications | |
CN110727611A (zh) | 一种带状态监测的可配置一致性验证系统 | |
Qian et al. | High performance computing development in china: A brief review and perspectives | |
Lyberis et al. | FPGA prototyping of emerging manycore architectures for parallel programming research using Formic boards | |
Weloli et al. | Efficiency modeling and exploration of 64-bit ARM compute nodes for exascale | |
Zhou et al. | Scheduling-efficient framework for neural network on heterogeneous distributed systems and mobile edge computing systems | |
CN104991884B (zh) | 异构多核SoC的体系结构设计方法 | |
Lewis et al. | Parallel QBF solving with advanced knowledge sharing | |
Huang et al. | A novel multi-CPU/GPU collaborative computing framework for SGD-based matrix factorization | |
Kim et al. | Software platform for hybrid resource management of a many-core accelerator for multimedia applications | |
Gao | Distributed Collection Method of Economic Growth Data Based on Cloud Computing | |
Hoisie et al. | Report on the ASCR workshop on modeling and simulation of exascale systems and applications | |
Petre et al. | Toward Self-Placing Applications on 2D and 3D NoCs | |
Chehaibar et al. | Modeling multiprocessor cache protocol impact on MPI performance | |
Weloli | Design space exploration of 64-bit arm compute nodes for highly energy effcient Exascale | |
Inggs | Parallel model checking on shared-memory multiprocessors | |
Isakovic et al. | A Survey of Hardware Technologies for Mixed-Critical Integration Explored in the Project | |
Li | Optimizing Collective Communication for Scalable Scientific Computing and Deep Learning | |
Liu et al. | An Novel Approach to Evaluate the Reliability of Cloud Rendering System Using Probabilistic Model Checker PRISM: A Quantitative Computing Perspective |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |