CN105959176A - 基于Gem5模拟器的一致性协议测试方法和系统 - Google Patents
基于Gem5模拟器的一致性协议测试方法和系统 Download PDFInfo
- Publication number
- CN105959176A CN105959176A CN201610262553.3A CN201610262553A CN105959176A CN 105959176 A CN105959176 A CN 105959176A CN 201610262553 A CN201610262553 A CN 201610262553A CN 105959176 A CN105959176 A CN 105959176A
- Authority
- CN
- China
- Prior art keywords
- cache
- simulation
- numa
- module
- memory
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 88
- 238000004088 simulation Methods 0.000 claims abstract description 103
- 230000015654 memory Effects 0.000 claims abstract description 74
- 239000010979 ruby Substances 0.000 claims abstract description 25
- 229910001750 ruby Inorganic materials 0.000 claims abstract description 25
- 238000013507 mapping Methods 0.000 claims abstract description 20
- 238000000034 method Methods 0.000 claims description 21
- 230000005284 excitation Effects 0.000 claims description 12
- 230000006870 function Effects 0.000 claims description 11
- 238000010998 test method Methods 0.000 claims description 6
- 230000000638 stimulation Effects 0.000 abstract 2
- 238000013461 design Methods 0.000 description 12
- 238000012795 verification Methods 0.000 description 8
- 238000011161 development Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000012423 maintenance Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000001693 membrane extraction with a sorbent interface Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000013341 scale-up Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/18—Protocol analysers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种基于Gem5模拟器的一致性协议测试方法,包括:将Gem5模拟器的Ruby存储系统内的原始一级缓存、原始二级缓和原始内存划分为多个一级缓存、二级缓存和内存,设置一级缓存、二级缓存和内存与地址范围的映射关系,构建CC模拟模块、一级缓存、二级缓存和内存之间的拓扑结构,形成CC‑NUMA仿真系统;在CC‑NUMA仿真系统中运行并行测试激励程序集合,以对CC‑NUMA仿真系统的缓存一致性协议进行测试。可见,在本实施例中的测试方法,易于实现、执行速度快,并且可以最大程度的贴近现实物理机运行状况,不需要人工编写大量的测试激励;本发明还公开了一种基于Gem5模拟器的一致性协议测试系统。
Description
技术领域
本发明涉及一致性协议测试技术领域,更具体地说,涉及一种基于Gem5模拟器的一致性协议测试方法和系统。
背景技术
随着计算机系统日益复杂,其研制难度不断增加,开发风险不断加大,研制周期越来越长,体系结构模拟技术在计算机体系结构研究和系统设计中的作用愈加显著。通过对计算机系统的建模、仿真及评估,科研人员可以验证新型体系结构设计;将该技术导入产品设计则可优化系统方案、降低开发风险并提升开发效率。作为一种系统评估手段,体系结构模拟器运行在宿主机上,通过加载运行测试程序来验证新的设计方案,发现其中潜在的缺陷,从而改进设计并有效控制风险。体系结构模拟器通常使用软件方式对部分或全部计算机系统硬件建模,对体系结构的指令集架构、处理器、存储系统、网络传输拓扑结构等进行模拟,验证系统的功能和性能。体系结构模拟器已成为计算机系统研究和设计开发中不可或缺的工具。
在当前多处理器系统之中,随着系统规模的扩大,多处理器之间连接方式由总线连接逐渐转为点对点互连,内存也从挂接处理器外部桥接芯片转变为直接挂接处理器。由于内存挂接方式的变化,内存在系统中的分布也发生变化,从而导致多处理器系统中内存访问的非均一性,故当前多处理器系统多为CC-NUMA(Cache Coherent Non-Uniform Memory Access——非一致内存访问缓存一致性)架构系统。
由于CC-NUMA系统中的多个缓存单元的存在,设计CC-NUMA系统的过程中必须要解决多个缓存单元之间的一致性问题。鉴于现有多数商用处理器芯片已经支持多路直连,通过处理器之间的直连即可构建小规模的CC-NUMA系统。但是现有通用商用处理器芯片支持的直连接口有限,这也就限制了进一步扩大CC-NUMA系统规模的能力。
为了设计更大规模的CC-NUMA系统,需要添加CC,来维护系统中多个cluster(缓存一致性单元组)之间的全局缓存一致性以及拓展系统规模:
1.一个CC可以连接多个处理器,组成一个cluster,同时也是第一层一致性域,CC和处理器相互协作完成节点内部的一致性的维护工作。
2.节点之间通过CC互连以及与路由芯片互连的方式,实现CC-NUMA系统规模的扩展。节点间的缓存一致性需要由CC进行维护,这是第二层一致性域。
为实现上述功能,CC的设计中就需要实现一个基于处理器直连缓存一致性协议的多层一致性协议,用以维护全局缓存一致性。鉴于系统规模的庞大,该多层一致性协议往往会相对复杂,其相关的测试工作也成为了设计开发过程中的重中之重。在传统的仿真测试验证过程中,或通过处理器厂商提供的总线模型,或通过完全自主构建驱动模型,再接入CC硬件语言编码的方式对CC-NUMA系统进行仿真验证。这种方式的优点是待测试代码非常接近真实实现,可以发现代码实现过程中的协议,接口,控制逻辑以及信道控制等等一系列的潜在问题。但缺点就是仿真运行速度很低,效率极其低下,调试方法简陋,并且测试激励规模和逻辑极难贴近真实物理机的运行环境。
因此,如何测试CC-NUMA的多层一致性协议,是本领域技术人员需要解决的问题。
发明内容
本发明的目的在于提供一种基于Gem5模拟器的一致性协议测试方法和系统,以实现更快速的对CC-NUMA的多层一致性协议进行测试。
为实现上述目的,本发明实施例提供了如下技术方案:
一种基于Gem5模拟器的一致性协议测试方法,包括:
根据Gem5模拟器提供的Ruby存储系统的地址范围和设备标识,将Ruby存储系统内的原始一级缓存划分为N1个一级缓存,将原始二级缓存划分为N2个二级缓存,将原始内存划分为N3个内存;其中,N1、N2和N3为正整数;
根据预设规则,设置每个一级缓存、每个二级缓存和每个内存与地址范围的映射关系,并构建每个CC模拟模块、每个一级缓存、每个二级缓存和每个内存之间的拓扑结构,形成CC-NUMA仿真系统;
在所述CC-NUMA仿真系统中运行并行测试激励程序集合,以对所述CC-NUMA仿真系统的缓存一致性协议进行测试。
其中,所述拓扑结构包括:
通过互连网络互连的N4个CC模拟模块;
与每个CC模拟模块相连的N5个二级缓存;
与每个二级缓存相连的N6个一级缓存;
与每个二级缓存相连的内存;其中,N4、N5和N6为正整数。
其中,在所述CC-NUMA仿真系统中运行并行测试激励程序集合,包括:
在所述CC-NUMA仿真系统中运行splash2;或者,
在所述CC-NUMA仿真系统中运行PARSEC。
其中,对所述CC-NUMA仿真系统的缓存一致性协议进行测试时,还包括:
接收配置参数设置指令,并根据所述配置参数设置指令对配置参数进行调整;
其中,所述配置参数至少包括:N1、N2、N3、N4、N5、N6、所述Gem5模拟器的运行频率、缓存行相连度、第一缓存的存储空间大小、第二缓存的存储空间大小和内存的存储空间大小。
其中,本方案还包括:
在内存的目录项中记录不同地址在本节点内部二级缓存和CC模拟模块中的数据共享状态;
在CC模拟模块的目录项中根据LP和RP的功能不同,分别记录对应目标地址的其他节点的CC模拟模块和所代理的节点内部中二级缓存的共享状态。
一种基于Gem5模拟器的一致性协议测试系统,包括:
一级缓存划分模块,用于根据Gem5模拟器提供的Ruby存储系统的地址范围和设备标识,将Ruby存储系统内的原始一级缓存划分为N1个一级缓存;
二级缓存划分模块,用于根据Gem5模拟器提供的Ruby存储系统的地址范围和设备标识,将原始二级缓存划分为N2个二级缓存;
内存划分模块,用于根据Gem5模拟器提供的Ruby存储系统的地址范围和设备标识,将原始内存划分为N3个内存;其中,N1、N2和N3为正整数;
映射关系设置模块,用于根据预设规则,设置每个一级缓存、每个二级缓存和每个内存与地址范围的映射关系;
拓扑结构构建模块,用于构建每个CC模拟模块、每个一级缓存、每个二级缓存和每个内存之间的拓扑结构,形成CC-NUMA仿真系统;
测试模块,用于在所述CC-NUMA仿真系统中运行并行测试激励程序集合,以对所述CC-NUMA仿真系统的缓存一致性协议进行测试。
其中,所述拓扑结构包括:
通过互连网络互连的N4个CC模拟模块;
与每个CC模拟模块相连的N5个二级缓存;
与每个二级缓存相连的N6个一级缓存;
与每个二级缓存相连的内存;其中,N4、N5和N6为正整数。
其中,所述测试模块通过在所述CC-NUMA仿真系统中运行splash2或者PARSEC,对所述CC-NUMA仿真系统的缓存一致性协议进行测试。
其中,本方案还包括:
配置参数设置设置模块,用于接收配置参数设置指令,并根据所述配置参数设置指令对配置参数进行调整;
其中,所述配置参数至少包括:N1、N2、N3、N4、N5、N6、所述Gem5模拟器的运行频率、缓存行相连度、第一缓存的存储空间大小、第二缓存的存储空间大小和内存的存储空间大小。
其中,本方案还包括:
第一记录模块,用于在内存的目录项中记录不同地址在本节点内部二级缓存和CC模拟模块中的数据共享状态;
第二记录模块,用于在CC模拟模块的目录项中根据LP和RP的功能不同,分别记录对应目标地址的其他节点的CC模拟模块和所代理的节点内部中二级缓存的共享状态。
通过以上方案可知,本发明实施例提供的一种基于Gem5模拟器的一致性协议测试方法及系统,包括:根据Gem5模拟器提供的Ruby存储系统的地址范围和设备标识,将Ruby存储系统内的原始一级缓存划分为N1个一级缓存,将原始二级缓存划分为N2个二级缓存,将原始内存划分为N3个内存;根据预设规则,设置每个一级缓存、每个二级缓存和每个内存与地址范围的映射关系,并构建每个CC模拟模块、每个一级缓存、每个二级缓存和每个内存之间的拓扑结构,形成CC-NUMA仿真系统;在所述CC-NUMA仿真系统中运行并行测试激励程序集合,以对所述CC-NUMA仿真系统的缓存一致性协议进行测试。
可见,在本实施例中的通过Gem5模拟器对一致性协议的测试方法相比于传统的测试方法,不仅易于实现、执行速度快,并且基于Gem5模拟器的仿真验证系统可以启动基于Linux的操作系统,在该基础上可以运行大量的开源并行测试程序,最大程度的贴近现实物理机运行状况,不需要人工编写大量的测试激励。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种基于Gem5模拟器的一致性协议测试方法流程示意图;
图2为本发明实施例公开的CC-NUMA拓扑结构示意图;
图3为本发明实施例公开的节点内部访问流程示意图;
图4为本发明实施例公开的节点外部访问流程示意图;
图5为本发明实施例公开的一条目录结构示意图;
图6为本发明实施例公开的Memory器件中一条目录结构示意图;
图7为本发明实施例公开的一种基于Gem5模拟器的一致性协议系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种基于Gem5模拟器的一致性协议测试方法和系统,以实现更快速的对CC-NUMA的多层一致性协议进行测试。
参见图1,本发明实施例提供的一种基于Gem5模拟器的一致性协议测试方法,包括:
S101、根据Gem5模拟器提供的Ruby存储系统的地址范围和设备标识,将Ruby存储系统内的原始一级缓存划分为N1个一级缓存,将原始二级缓存划分为N2个二级缓存,将原始内存划分为N3个内存;其中,N1、N2和N3为正整数;
具体的,Gem5是执行驱动的全系统模拟器,可以模拟运行基于Alpha,X86,ARM等等一系列指令集架构的多核系统。在Gem5模拟器环境下可以启动Linux内核的操作系统,并可以运行基于Linux开发的并行测试应用集合,如splash2,PARSEC等等。原Gem5模拟器的存储部分通过挂载Ruby(一个开源的存储模拟系统实现)进行模拟,包括cache和Memory的模拟等。
S102、根据预设规则,设置每个一级缓存、每个二级缓存和每个内存与地址范围的映射关系,并构建每个CC模拟模块、每个一级缓存、每个二级缓存和每个内存之间的拓扑结构,形成CC-NUMA仿真系统;
其中,所述拓扑结构包括:
通过互连网络互连的N4个CC模拟模块;
与每个CC模拟模块相连的N5个二级缓存;
与每个二级缓存相连的N6个一级缓存;
与每个二级缓存相连的内存;其中,N4、N5和N6为正整数。
具体的,CC(cache coherence chip—缓存一致性控制芯片)模拟模块,用于模拟验证节点一致域间的协议转化;CC模拟模块通过SLICC协议描述语言实现其协议转化功能,其功能可根据不同一致性层级划分为节点内部一致性维护(LP—local proxy)和节点间一致性维护(RP—remote proxy)两个部分,分别负责该CC直连节点内部和外部的内存地址空间范围一致性的维护工作。这两部分的所负责的地址空间范围在单一CC模块中不会重叠,故将其实现在单一协议描述文件中,通过定义不同前缀的消息事件名称来进行区分处理。
具体的,在官方版本Gem5模拟器提供的Ruby存储系统中只支持多核而不支持多处理器模拟,为提供多处理器竞争的场景,在本实施例中修改一级缓存L1 cache、二级缓存L2 cache,内存Memory,CC模拟控制器这四者的‘地址-器件’、‘器件-器件’映射方法的方式。
其中,将不同的L2 cache、Memory器件分别负责管理不同范围的地址空间,即形成了地址与器件之间的映射关系;不同的CC模拟模块则是负责不同的L2 cache,memory器件,同理L2 cache负责不同的L1 cache器件,这就形成了器件与器件之间的映射。
具体的,在本实施例中基于地址范围和设备标识MachineID的不同,将单一的L2 cache和Memory划分为多个地址段的代理,模拟多处理器场景,其中一个L2 cache代表一个处理器,直接挂载多个L1 cache。CC模拟模块之间的映射方法通过CC模拟模块本身的MachineID和各个节点分配的内存空间的大小进行地址段代理的划分。通过添加这些映射方法,将一致性维护消息在各个不同类型器件之间进行流转。
具体的,在系统的网络拓扑方面以Mesh网络为基础实现了一个多级一致性域的CC-NUMA拓扑结构。如图2所示,其中每个单一L2 cache代表一个处理器,在其上直连多个L1 cache(数量可配置),多个L1 cache之间全互连代表多个处理器核,可模拟单处理器多发射。每个L2 cache即处理器都挂载一个Memory模块,节点内部L2 cache之间以及本节点CC之间全互连。节点之间只有各个CC模块之间全互连,这样就构建了一个,CC-NUMA的存储仿真系统。
具体的,在L1 cache以及L2 cache访问缺失的情况下,简略访问流程如下:
1、若所请求地址属于本节点内部的存储空间地址范围,请求消息在节点内部流转如图3所示,请求消息:L1->L2(CPU)->Memory;
2、若所请求地址属于本节点外部的存储空间地址范围,请求消息需要跨节点流转,如图4所示,请求消息:L1->L2(CPU)->本地CC(RP)->远端CC(LP)->Memory。
基于上述实施例,本方案还包括:
在内存的目录项中记录不同地址在本节点内部二级缓存和CC模拟模块中的数据共享状态;
在CC模拟模块的目录项中根据LP和RP的功能不同,分别记录对应目标地址的其他节点的CC模拟模块和所代理的节点内部中二级缓存的共享状态。
具体的,Memory的目录项中需要记录不同地址在本节点内部L2 cache和CC模拟模块中的数据共享状态;而CC模拟模块的目录项中根据LP和RP的功能不同分别记录对应该地址的其他节点的CC和所代理的节点内部中L2cache的共享状态。其中,LP指的是本节点内地址空间的代理器件,RP指的是节点外部地址空间代理器件,分别负责处理所代理地址空间的请求转发;若一致性协议为MESI,则共享状态就是M(Modified),E(Exclusive),S(Shared),I(Invalid)四种状态之一,通过这样的多层次的一致性目录设计来维护处理器间的两级一致性空间的一致性。
具体的,参见图5,为本实施例提供的一条目录结构示意图,其中State位表示所记录地址的共享状态(M,E,S,I),sharerlist位用多个bit位记录有缓存该数据的器件(L1,L2,CC)。参见图6,为本实施例提供的Memory器件中一条目录结构示意图,在Memory器件中一条目录项中,state位记录本节点内部L2以及CC中缓存的共享状态(M,E,S,I),shaerlist位用不同的bit位记录本节点内部的多个L2以及CC是否存在缓存,其他器件中的设计同理。
具体的,在多级协议的实现中,要使用SLICC语言实现一致性协议的共享状态转换,一个协议跳转就是一个transition,包括当前目录状态,触发事件,下一目录状态,在transition内部调用一系列定义好的action来处理转化过程中的相关事务。涉及到此消息流转操作的action中需要调用外部自定义的一系列映射方法来提供消息发送的目的器件。
当请求到达对应器件后在发送数据之前如果需要进行其他操作的话,如对目录sharerlist中的sharers进行Invalid操作的话需要借助类似于‘地址-器件’映射方法的‘器件-器件’映射方法来有针对性的将这类消息通过不同器件流转到最终目标器件。
S103、在所述CC-NUMA仿真系统中运行并行测试激励程序集合,以对所述CC-NUMA仿真系统的缓存一致性协议进行测试。
具体的,在本实施例中对缓存一致性协议进行测试,是利用开源的测试应用直接在操作系统中运行,产生一系列访存操作,从而对缓存一致性协议进行测试。传统的仿真测试中访存操作是需要人为的产生的机械化的测试激励,其与本发明相比,测试压力,覆盖范围都不能达到如此程度。
其中,在所述CC-NUMA仿真系统中运行并行测试激励程序集合,包括:
在所述CC-NUMA仿真系统中运行splash2;或者,
在所述CC-NUMA仿真系统中运行PARSEC。
具体的,本实施例提供的测试系统运行于Linux操作系统环境下,支持Redhat,ubuntu等等大多数主流linux操作系统。需要的依赖库和程序有g++4.8或以上版本,mercurial,zlib1g-dev,scons,m4,swig,以及python-dev等。需要下载或者手动制作模拟器运行的操作系统镜像和交换分区镜像,放置在默认系统路径下供Gem5模拟器调用。其中操作系统镜像中需要添加所需要运行的并行测试激励程序集合,如splash2和PARSEC等等。在编写测试脚本中需要参考测试程序在系统镜像中的相关位置和特定参数设置进行编辑并添加到Gem5的benchmark列表中。
其中,对所述CC-NUMA仿真系统的缓存一致性协议进行测试时,还包括:
接收配置参数设置指令,并根据所述配置参数设置指令对配置参数进行调整;
其中,所述配置参数至少包括:N1、N2、N3、N4、N5、N6、所述Gem5模拟器的运行频率、缓存行相连度、第一缓存的存储空间大小、第二缓存的存储空间大小和内存的存储空间大小。
具体的,在测试验证过程中可以一次编译通过后通过指定不同的运行参数构建不同规模不同配置的CC-NUMA系统,具体的配置参数有L1 cache、L2 cache和CC模拟模块等器件的数量和规模,memory的大小,cacheline相联度,模拟器运行频率等参数。具体参数列表可以通过在运行中添加—help打印出来进行说明。通过指定多种规模和配置参数,来对多级一致性协议进行充分玩呗的测试,可以有效的发现各种潜藏协议设计问题,为开发人员提供指导。
本发明实施例提供的一种基于Gem5模拟器的一致性协议测试方法,包括:根据Gem5模拟器提供的Ruby存储系统的地址范围和设备标识,将Ruby存储系统内的原始一级缓存划分为N1个一级缓存,将原始二级缓存划分为N2个二级缓存,将原始内存划分为N3个内存;根据预设规则,设置一级缓存、二级缓存和内存与地址范围的映射关系,并构建CC模拟模块、一级缓存、二级缓存和内存之间的拓扑结构,形成CC-NUMA仿真系统;在所述CC-NUMA仿真系统中运行并行测试激励程序集合,以对所述CC-NUMA仿真系统的缓存一致性协议进行测试。
可见,在本实施例中的通过Gem5模拟器对一致性协议的测试方法相比于传统的测试方法,具有如下的优势:
1、易于实现:Gem5模拟器通过C++语言实现,协议描述部分通过SLICC语言实现,该描述语言抽象层次相较于C语言更高,远高于verilog等硬件描述语言。测试开发人员只需要进行少量的代码编写工作即可对协议进行测试
2、执行速度快:模拟器最终运行的是由C++编译生成的二进制可执行文件,执行速度可达到同等规模的verilog语言编写的测试验证模型运行速度的数十倍甚至数百倍。
3、完备的测试用例:基于Gem5的仿真验证系统可以启动基于Linux的操作系统,在该基础上可以运行大量的开源并行测试程序,最大程度的贴近现实物理机运行状况,不需要人工编写大量的测试激励。
下面对本发明实施例提供的测试系统进行介绍,下文描述的测试系统与上文描述的测试方法可以相互参照。
参见图7,本发明实施例提供的一种基于Gem5模拟器的一致性协议测试系统,包括:
一级缓存划分模块100,用于根据Gem5模拟器提供的Ruby存储系统的地址范围和设备标识,将Ruby存储系统内的原始一级缓存划分为N1个一级缓存;
二级缓存划分模块200,用于根据Gem5模拟器提供的Ruby存储系统的地址范围和设备标识,将原始二级缓存划分为N2个二级缓存;
内存划分模块300,用于根据Gem5模拟器提供的Ruby存储系统的地址范围和设备标识,将原始内存划分为N3个内存;其中,N1、N2和N3为正整数;
映射关系设置模块400,用于根据预设规则,设置每个一级缓存、每个二级缓存和每个内存与地址范围的映射关系;
拓扑结构构建模块500,用于构建每个CC模拟模块、每个一级缓存、每个二级缓存和每个内存之间的拓扑结构,形成CC-NUMA仿真系统;
测试模块600,用于在所述CC-NUMA仿真系统中运行并行测试激励程序集合,以对所述CC-NUMA仿真系统的缓存一致性协议进行测试。
基于上述技术方案,所述拓扑结构包括:
通过互连网络互连的N4个CC模拟模块;
与每个CC模拟模块相连的N5个二级缓存;
与每个二级缓存相连的N6个一级缓存;
与每个二级缓存相连的内存;其中,N4、N5和N6为正整数。
基于上述技术方案,所述测试模块通过在所述CC-NUMA仿真系统中运行splash2或者PARSEC,对所述CC-NUMA仿真系统的缓存一致性协议进行测试。
基于上述技术方案,本方案还包括:
配置参数设置设置模块,用于接收配置参数设置指令,并根据所述配置参数设置指令对配置参数进行调整;
其中,所述配置参数至少包括:N1、N2、N3、N4、N5、N6、所述Gem5模拟器的运行频率、缓存行相连度、第一缓存的存储空间大小、第二缓存的存储空间大小和内存的存储空间大小。
基于上述技术方案,本方案还包括:
第一记录模块,用于在内存的目录项中记录不同地址在本节点内部二级缓存和CC模拟模块中的数据共享状态;
第二记录模块,用于在CC模拟模块的目录项中根据LP和RP的功能不同,分别记录对应目标地址的其他节点的CC模拟模块和所代理的节点内部中二级缓存的共享状态。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种基于Gem5模拟器的一致性协议测试方法,其特征在于,包括:
根据Gem5模拟器提供的Ruby存储系统的地址范围和设备标识,将Ruby存储系统内的原始一级缓存划分为N1个一级缓存,将原始二级缓存划分为N2个二级缓存,将原始内存划分为N3个内存;其中,N1、N2和N3为正整数;
根据预设规则,设置每个一级缓存、每个二级缓存和每个内存与地址范围的映射关系,并构建每个CC模拟模块、每个一级缓存、每个二级缓存和每个内存之间的拓扑结构,形成CC-NUMA仿真系统;
在所述CC-NUMA仿真系统中运行并行测试激励程序集合,以对所述CC-NUMA仿真系统的缓存一致性协议进行测试。
2.根据权利要求1所述的一致性协议测试方法,其特征在于,所述拓扑结构包括:
通过互连网络互连的N4个CC模拟模块;
与每个CC模拟模块相连的N5个二级缓存;
与每个二级缓存相连的N6个一级缓存;
与每个二级缓存相连的内存;其中,N4、N5和N6为正整数。
3.根据权利要求2所述的一致性协议测试方法,其特征在于,在所述CC-NUMA仿真系统中运行并行测试激励程序集合,包括:
在所述CC-NUMA仿真系统中运行splash2;或者,
在所述CC-NUMA仿真系统中运行PARSEC。
4.根据权利要求1所述的一致性协议测试方法,其特征在于,对所述CC-NUMA仿真系统的缓存一致性协议进行测试时,还包括:
接收配置参数设置指令,并根据所述配置参数设置指令对配置参数进行调整;
其中,所述配置参数至少包括:N1、N2、N3、N4、N5、N6、所述Gem5模拟器的运行频率、缓存行相连度、第一缓存的存储空间大小、第二缓存的存储空间大小和内存的存储空间大小。
5.根据权利要求1所述的一致性协议测试方法,其特征在于,还包括:
在内存的目录项中记录不同地址在本节点内部二级缓存和CC模拟模块中的数据共享状态;
在CC模拟模块的目录项中根据LP和RP的功能不同,分别记录对应目标地址的其他节点的CC模拟模块和所代理的节点内部中二级缓存的共享状态。
6.一种基于Gem5模拟器的一致性协议测试系统,其特征在于,包括:
一级缓存划分模块,用于根据Gem5模拟器提供的Ruby存储系统的地址范围和设备标识,将Ruby存储系统内的原始一级缓存划分为N1个一级缓存;
二级缓存划分模块,用于根据Gem5模拟器提供的Ruby存储系统的地址范围和设备标识,将原始二级缓存划分为N2个二级缓存;
内存划分模块,用于根据Gem5模拟器提供的Ruby存储系统的地址范围和设备标识,将原始内存划分为N3个内存;其中,N1、N2和N3为正整数;
映射关系设置模块,用于根据预设规则,设置每个一级缓存、每个二级缓存和每个内存与地址范围的映射关系;
拓扑结构构建模块,用于构建每个CC模拟模块、每个一级缓存、每个二级缓存和每个内存之间的拓扑结构,形成CC-NUMA仿真系统;
测试模块,用于在所述CC-NUMA仿真系统中运行并行测试激励程序集合,以对所述CC-NUMA仿真系统的缓存一致性协议进行测试。
7.根据权利要求6所述的一致性协议测试系统,其特征在于,所述拓扑结构包括:
通过互连网络互连的N4个CC模拟模块;
与每个CC模拟模块相连的N5个二级缓存;
与每个二级缓存相连的N6个一级缓存;
与每个二级缓存相连的内存;其中,N4、N5和N6为正整数。
8.根据权利要求7所述的一致性协议测试系统,其特征在于,所述测试模块通过在所述CC-NUMA仿真系统中运行splash2或者PARSEC,对所述CC-NUMA仿真系统的缓存一致性协议进行测试。
9.根据权利要求6所述的一致性协议测试系统,其特征在于,还包括:
配置参数设置设置模块,用于接收配置参数设置指令,并根据所述配置参数设置指令对配置参数进行调整;
其中,所述配置参数至少包括:N1、N2、N3、N4、N5、N6、所述Gem5模拟器的运行频率、缓存行相连度、第一缓存的存储空间大小、第二缓存的存储空间大小和内存的存储空间大小。
10.根据权利要求6所述的一致性协议测试系统,其特征在于,还包括:
第一记录模块,用于在内存的目录项中记录不同地址在本节点内部二级缓存和CC模拟模块中的数据共享状态;
第二记录模块,用于在CC模拟模块的目录项中根据LP和RP的功能不同,分别记录对应目标地址的其他节点的CC模拟模块和所代理的节点内部中二级缓存的共享状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610262553.3A CN105959176B (zh) | 2016-04-25 | 2016-04-25 | 基于Gem5模拟器的一致性协议测试方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610262553.3A CN105959176B (zh) | 2016-04-25 | 2016-04-25 | 基于Gem5模拟器的一致性协议测试方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105959176A true CN105959176A (zh) | 2016-09-21 |
CN105959176B CN105959176B (zh) | 2019-05-28 |
Family
ID=56915381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610262553.3A Active CN105959176B (zh) | 2016-04-25 | 2016-04-25 | 基于Gem5模拟器的一致性协议测试方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105959176B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111739577A (zh) * | 2020-07-20 | 2020-10-02 | 成都智明达电子股份有限公司 | 一种基于dsp的高效的ddr测试方法 |
CN111782217A (zh) * | 2020-06-23 | 2020-10-16 | 上海赛昉科技有限公司 | 快速高效产生cache一致性测试C程序的系统及方法 |
CN114168200A (zh) * | 2022-02-14 | 2022-03-11 | 北京微核芯科技有限公司 | 多核处理器访存一致性的验证系统及方法 |
CN114661567A (zh) * | 2022-03-08 | 2022-06-24 | 武汉理工大学 | 一种针对图应用负载的非易失性内存的模拟优化方法 |
CN115514772A (zh) * | 2022-11-15 | 2022-12-23 | 山东云海国创云计算装备产业创新中心有限公司 | 一种实现缓存一致性的方法、装置、设备及可读介质 |
CN117271268A (zh) * | 2023-11-20 | 2023-12-22 | 成都大征创智科技有限公司 | 一种数字化计算平台中的集群架构性能评估方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6604060B1 (en) * | 2000-06-29 | 2003-08-05 | Bull Hn Information Systems Inc. | Method and apparatus for determining CC-NUMA intra-processor delays |
US20050223188A1 (en) * | 2002-05-15 | 2005-10-06 | Moll Laurent R | Addressing scheme supporting variable local addressing and variable global addressing |
CN102439570A (zh) * | 2011-10-27 | 2012-05-02 | 华为技术有限公司 | 针对多步长非一致性内存访问numa架构的内存管理方法及装置 |
CN102497432A (zh) * | 2011-12-13 | 2012-06-13 | 华为技术有限公司 | 一种多路径访问i/o设备的方法、i/o多路径管理器及系统 |
CN103150264A (zh) * | 2013-01-18 | 2013-06-12 | 浪潮电子信息产业股份有限公司 | 一种基于扩展型Cache Coherence协议的多级一致性域仿真验证和测试方法 |
-
2016
- 2016-04-25 CN CN201610262553.3A patent/CN105959176B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6604060B1 (en) * | 2000-06-29 | 2003-08-05 | Bull Hn Information Systems Inc. | Method and apparatus for determining CC-NUMA intra-processor delays |
US20050223188A1 (en) * | 2002-05-15 | 2005-10-06 | Moll Laurent R | Addressing scheme supporting variable local addressing and variable global addressing |
CN102439570A (zh) * | 2011-10-27 | 2012-05-02 | 华为技术有限公司 | 针对多步长非一致性内存访问numa架构的内存管理方法及装置 |
CN102497432A (zh) * | 2011-12-13 | 2012-06-13 | 华为技术有限公司 | 一种多路径访问i/o设备的方法、i/o多路径管理器及系统 |
CN103150264A (zh) * | 2013-01-18 | 2013-06-12 | 浪潮电子信息产业股份有限公司 | 一种基于扩展型Cache Coherence协议的多级一致性域仿真验证和测试方法 |
Non-Patent Citations (1)
Title |
---|
龙恋等: "基于Gem5模拟器的多核处理器存储系统建模", 《第十七届计算机工程与工艺年会暨第三届微处理器技术论坛论文集(下册)》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782217A (zh) * | 2020-06-23 | 2020-10-16 | 上海赛昉科技有限公司 | 快速高效产生cache一致性测试C程序的系统及方法 |
CN111739577A (zh) * | 2020-07-20 | 2020-10-02 | 成都智明达电子股份有限公司 | 一种基于dsp的高效的ddr测试方法 |
CN111739577B (zh) * | 2020-07-20 | 2020-11-20 | 成都智明达电子股份有限公司 | 一种基于dsp的高效的ddr测试方法 |
CN114168200A (zh) * | 2022-02-14 | 2022-03-11 | 北京微核芯科技有限公司 | 多核处理器访存一致性的验证系统及方法 |
CN114661567A (zh) * | 2022-03-08 | 2022-06-24 | 武汉理工大学 | 一种针对图应用负载的非易失性内存的模拟优化方法 |
CN114661567B (zh) * | 2022-03-08 | 2024-07-26 | 武汉理工大学 | 一种针对图应用负载的非易失性内存的模拟优化方法 |
CN115514772A (zh) * | 2022-11-15 | 2022-12-23 | 山东云海国创云计算装备产业创新中心有限公司 | 一种实现缓存一致性的方法、装置、设备及可读介质 |
CN115514772B (zh) * | 2022-11-15 | 2023-03-10 | 山东云海国创云计算装备产业创新中心有限公司 | 一种实现缓存一致性的方法、装置、设备及可读介质 |
CN117271268A (zh) * | 2023-11-20 | 2023-12-22 | 成都大征创智科技有限公司 | 一种数字化计算平台中的集群架构性能评估方法 |
CN117271268B (zh) * | 2023-11-20 | 2024-01-30 | 成都大征创智科技有限公司 | 一种数字化计算平台中的集群架构性能评估方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105959176B (zh) | 2019-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105959176B (zh) | 基于Gem5模拟器的一致性协议测试方法和系统 | |
CN103150264B (zh) | 一种基于扩展型Cache Coherence协议的多级一致性域仿真验证和测试方法 | |
Bortolotti et al. | Virtualsoc: A full-system simulation environment for massively parallel heterogeneous system-on-chip | |
US10289785B1 (en) | Platform architecture creation for a system-on-chip | |
TW201923613A (zh) | 多處理器系統之程式化流程 | |
CN111742302A (zh) | 通过基于上层缓存中的条目来日志记录对下层缓存的流入量进行跟踪记录 | |
CN114580344A (zh) | 测试激励生成方法、验证方法、验证系统及相关设备 | |
US20140236561A1 (en) | Efficient validation of coherency between processor cores and accelerators in computer systems | |
US8626965B2 (en) | Using a DMA engine to automatically validate DMA data paths | |
CN116167310A (zh) | 一种验证多核心处理器缓存一致性的方法及装置 | |
Bruce et al. | Enabling reproducible and agile full-system simulation | |
Parashar et al. | LEAP: A virtual platform architecture for FPGAs | |
US9658849B2 (en) | Processor simulation environment | |
Van Lunteren et al. | Coherently attached programmable near-memory acceleration platform and its application to stencil processing | |
Rodrigues et al. | Structural Simulation Toolkit (SST). | |
Heinrich | Modeling, prediction and optimization of energy consumption of MPI applications using SimGrid | |
US20230056423A1 (en) | Processor core simulator including trace-based coherent cache driven memory traffic generator | |
Garashchenko et al. | System of Combined Specialized Test Generators for the New Generation of VLIW DSP Processors with Elcore50 Architecture | |
Garashchenko et al. | Automatic test generation methodology for verification of a cache memory based on the graph model of cache hierarchy | |
US11151294B1 (en) | Emulated register access in hybrid emulation | |
US12073155B2 (en) | Method and system for building hardware images from heterogeneous designs for electronic systems | |
de Sousa et al. | Building reconfigurable systems using open source components | |
Kim et al. | Developing a Portable Block Testbench and Reusable SOC Verification Scenarios Using IP-XACT Based Automation. | |
Daoudi et al. | Improving Simulations of Task-Based Applications on Complex NUMA Architectures | |
Hamid et al. | Using portable stimulus to verify cache coherency in many-core soc |
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 |