片上众核处理器时钟精确并行仿真系统的制作方法

文档序号:6443881阅读:325来源:国知局
专利名称:片上众核处理器时钟精确并行仿真系统的制作方法
技术领域
本发明属于信息处理系统的处理器的仿真领域,具体涉及一种片上众核处理器时钟精确并行仿真系统。
背景技术
计算机仿真用软件来仿真计算机系统的行为,研究者可以通过仿真软件分析新结构的性能和行为,而不需要建立原型系统,这大大减小了研究的周期和成本。近十年以来, 工业界和学术界将仿真技术广泛地运用于计算机硬件和软件体系结构的研究以及开发过程中。随着众核时代的来临,仿真技术在众核处理器的设计过程中将变得越来越重要。目前,绝大多数众核仿真器都是串行仿真器,这些仿真器仅仅运行于一个主线程上。随着目标系统核数的增加,仿真器的性能将会越来越差。在不久的将来,摩尔定律将由每18个月片上的晶体管数目翻一番转变为每18个月片上的硬件线程的数目翻一番。然而,随着片上核数的增加,仿真过程中的状态量和代码空间将增加,这将导致仿真时间的增加。这也可能导致L2高速缓存缺失的大幅度增加,从而导致仿真周期数的增加。因此,随着目标系统的核数的增加,如何在众核处理器上仿真众核目标系统将变得越来越重要。将众核仿真器拆分开由多条线程或者进程并行的仿真运行是一种有效的加速方法。然而为了保证并行实体间的时钟、事件的合理次序关系,不能让并行实体毫无约束的以任意仿真速度前进,否则将无法准备、稳定的仿真对象系统。维持并行实体间事件的序关系既是并行仿真的同步问题。并行仿真中的同步问题已经在离散事件并行与分布式仿真领域(PDES)已经有过数十年的研究历史。TOES称可并行仿真的节点为逻辑处理器。为了保证远程事件能够及时到达,也就是保证各种事件正确的因果顺序关系,各个逻辑处理器必须在特定时间点同步。F1DES领域内的同步技术分为两种,一种是保守同步,另一种是乐观同步。保守同步通过路障或者空消息机制保持所有逻辑处理器的时钟差值严格处于某一值域L范围内。L 即是保守同步技术中重要的一个参数值一前瞻量。一般来说,L的大小取决于仿真对象系统及并行化时的划分策略,例如,在多核处理器仿真器中,逻辑处理器映射到仿真对象处理器核上,划分边界为对象处理器核之间的互连网络,L即为网络传输延迟;如果划分边界位于共享高速缓存与上一层高速缓存之间,则L为共享高速缓存的最低访问延迟。乐观同步技术假设或者说预测逻辑处理器即使超过了前瞻量窗口,因果关系错误也不会发生。为了处理预测失败,确实发生了因果错误的情况,乐观同步提供了一套状态保存与回滚机制来解决这个问题。不幸的是,计算机系统仿真器内部存在大量状态,使得状态保存、恢复的开销远高于并行度上升带来的性能收益。因此乐观同步技术并不适宜于众核处理器仿真领域,已开发出的并行多核处理器仿真器几乎都使用保守同步技术。现有并行仿真同步技术多是面向多处理器系统或者多核系统的仿真器,仿真负载规模较小,当面向核数规模达100颗以上的众核处理器系统时,这些同步技术会遇到以下问题(I)众核架构中各个处理器核心之间由低延迟的片上总线或片上网络紧密互连, 间接通过共享高速缓存通信,形成高度耦合的关系,并行仿真时必须将这些高度耦合的组件切分开来,映射到不同的线程中仿真运行;为了试探组件到线程的最优映射策略,需要一种灵活的组件切分方法。(2)保守同步协议要求计算出任意两个逻辑处理器之间发送的事件的前瞻量,根据此前瞻量将逻辑处理器阻塞在特定的逻辑时间点上;众核处理器系统中提取出的前瞻量一般是几个或者数十个时钟周期,使得同步周期过短,而当前多线程库中的同步原语开销过大,不适于并行仿真中的同步;此外,划分开的组件间有可能传递零延迟事件,导致前瞻量为零,使得一般性同步协议难以处理。(3)当前并行仿真器使用单一同步机制维持所有逻辑处理器间的时序关系,这种方法迁移到众核处理器系统仿真器上后,从负载均衡考虑,势必要在片上网络路由器之间切分对象系统,但片上网络路由器之间的前瞻量太小,不利于仿真器的性能;从前瞻量角度考虑,则需要把片上网络分离出去,单独用一个逻辑处理器仿真器,但众核处理器片上网络规模庞大,容易形成性能瓶颈。本发明因此而来。

发明内容
本发明目的在于提供一种片上众核处理器时钟精确并行仿真系统,该系统解决了面向核数规模达100颗以上的众核处理器系统时,现有技术中常规同步技术无法有效同步的问题。为了解决现有技术中的这些问题,本发明提供的技术方案是一种片上众核处理器时钟精确并行仿真系统,包括处理器子系统、存储子系统和仿真对象子系统,其特征在于所述系统中处理器子系统与仿真对象子系统间设置模块中间层,所述模块中间层实现逻辑处理器到仿真对象机器的映射;所述模块中间层包括与处理器核及其私有的一级高速缓存一一对应的核模块和映射互连网络、共享高速缓存、内存及其他仿真对象结构的存储模块;所述核模块与存储模块之间进行点对点同步,所述存储模块相互之间进行组同步。优选的,所述点对点同步是所述仿真系统通过设置前瞻量路障、源路障、目标路障原语实现相互通信的对偶核模块与存储模块的时钟同步的方法;所述前瞻量路障设置在前瞻量窗口上限时间点,跟随邻接模块的最小时钟滑动,永不被释放;所述源路障为某模块等待某一事件对自己设置的路障,事件到达时被释放,事件未到达前随最小时钟移动;所述目标路障为某模块让另一模块等待某事件时向目标模块设置的路障,解除或者推后该路障的条件与源路障相同。优选的,所述系统点对点同步中每个核模块设置一个前瞻量路障使核模块与对偶存储模块的时钟偏差处于保守同步协议要求的范围内,其前瞻量取自共享高速缓存的最小访问延迟。优选的,所述系统点对点同步中每个存储模块设置一个单时钟周期前瞻量路障以保证存储模块可以在任意时刻接收从核模块发来的零延迟事件。优选的,所述系统点对点同步中在每次访存请求发出时刻为相应核模块设置一个源路障以保证访存完成时的零延迟返回事件在正确的时刻被核模块及时接收到。优选的,所述系统点对点同步中每次为将要访问的目标核模块设置一个目标路障以保证从片上网络发来的零延迟事件能够被及时接收到。优选的,所述组同步为利用所述仿真系统通过设置前瞻量路障使得所有存储模块能够同步的方法;所述前瞻量路障设置在前瞻量窗口上限时间点,跟随邻接模块的最小时钟滑动,永不被释放。优选的,所述系统组同步中每个存储模块设置一个前瞻量路障以保证各存储模块之间的时钟偏差处于保守同步协议要求的范围内,其前瞻量取自片上网络链路延迟。优选的,所述系统组同步中根据路由器的度数,限制每个存储模块仅与其接邻的若干个存储模块同步,利用相互衔接的部分同步的正确性保证存储模块整体同步的正确性。优选的,所述系统通过基于自旋锁实现的自定义路障原语将模块阻塞在指定的时刻上,直到解除路障的条件发生。本发明技术方案的关键在四个方面,以实现片上众核处理器时钟精确并行仿真器的同步,包括(I)众核处理器按处理器核模块、存储模块的划分方法,(2)前瞻量路障、源路障、目标路障原语的设置方法,(3)处理器核模块与存储模块之间的点对点同步方法,(4)存储模块相互之间的组同步方法。众核处理器按处理器核模块、存储模块的划分将仿真器框架分成三层逻辑处理器层,模块层与仿真对象机器层。模块层充当着逻辑处理器到仿真对象机器的映射中间层, 也是所述同步技术操作的对象。模块分为核模块,存储模块两类。一个核模块一对一映射了一个处理器核及其私有的一级高速缓存,而存储模块映射了互连网络、共享高速缓存、内存及其他仿真对象结构。前瞻量路障、源路障、目标路障原语的设置基于自旋锁实现的自定义路障原语将模块阻塞在指定的时刻上,直到解除路障的条件发生。其中前瞻量路障设置在前瞻量窗口上限时间点,跟随邻接模块的最小时钟滑动,永不被释放;源路障为某模块等待某一事件对自己设置的路障,事件到达时被释放,事件未到达前随最小时钟移动;目标路障为某模块让另一模块等待某事件时向目标模块设置的路障,解除或者推后该路障的条件与源路障相同;方法(3)利用方法(2)定义的三种路障使得相互通信的对偶核模块与存储模块的时钟能够同步,称之为点对点同步,该同步为每个核模块设置一个前瞻量路障以保证核模块与对偶存储模块的时钟偏差处于保守同步协议要求的范围内,其前瞻量取自共享高速缓存的最小访问延迟;其特征还在于方法(3)为每个存储模块设置一个单时钟周期前瞻量路障以保证存储模块可以在任意时刻接收从核模块发来的零延迟事件;其特征还在于方法
(3)在每次访存请求发出时刻为相应核模块设置一个源路障以保证访存完成时的零延迟返回事件在正确的时刻被核模块及时接收到;其特征还在于方法(3)每次为将要访问的目标核模块设置一个目标路障以保证从片上网络发来的零延迟事件能够被及时接收到;方法(4)利用方法(2)定义的前瞻量路障使得所有存储模块能够同步,称之为组同步,该同步为每个存储模块设置一个前瞻量路障以保证各存储模块之间的时钟偏差处于保守同步协议要求的范围内,其前瞻量取自片上网络链路延迟;方法(4)根据路由器的度数,限制每个存储模块仅与其接邻的若干个存储模块同步,利用相互衔接的部分同步的正确性保证存储模块整体同步的正确性;方法(4)的每个部分同步都属于Slack同步;通过方法(3)保证了核模块与存储模块的同步,并通过方法(4)保证了存储模块之间的同步后,仿真器所有模块间的同步得以维持,从而方法(3)与方法(4)形成一种两级同步的结构。本发明目的在于提供一种片上众核处理器时钟精确并行仿真系统的同步技术,以与建模细节、线程操作无关的核模块与存储模块为同步对象,使用自定义的三种低开销路障原语,通过将总体同步分为相互关联的核模块与存储模块之间的点到点同步以及存储模块之间的组同步,有效挖掘了仿真器内部的并行性,使得并行仿真器能够均衡分布仿真负载,避免集中式热点引起的性能瓶颈,从而提升片上众核处理器时钟精确并行仿真系统的性能。相对于现有技术中的方案,本发明的优点是本发明能够更细粒度的划分众核处理器系统,提供了更丰富的并行度,从而使得仿真器具有更高的加速比,而且性能的提升是在保持了众核处理器各个组件细致建模的条件下取得的。


下面结合附图及实施例对本发明作进一步描述图I为模块间的通信关系;图2为三种路障的设置点;图3为Macsim在各工作负载下的加速比;图4为核模块、存储模块的规范化执行时间;图5为计算时间与通信时间比例关系;图6为两级同步与单一同步的性能对比。
具体实施例方式以下结合具体实施例对上述方案做进一步说明。应理解,这些实施例是用于说明本发明而不限于限制本发明的范围。实施例中采用的实施条件可以根据具体厂家的条件做进一步调整,未注明的实施条件通常为常规实验中的条件。实施例两级同步机制作用下时钟精确并行仿真系统的实践及试验本实施例在串行仿真器Multi2sim_2. I的基础上,实现了两级同步并行仿真器 MCAsim0 Multi2sim是一个用户级的X86架构时钟精确仿真器,采用了执行驱动,指令直接执行,周期、事件双引擎等技术。本实施例保留了 Multi2sim处理器部分的代码,重写了 Multi2sim的大部分存储子系统代码[17],替换原有的互连网络为片上网络,增强事件引擎为并行化的TOES引擎,新加入模块中间层,将其改造成分片式众核处理器仿真器 MCAsim0在整个实施过程中,所用的服务器是曙光天演EP850-GF小型机,该小型机具体配置如下8 颗 4 核 AMD Opteron 8346 I. 8G HE CPU, 32G DDR2ECC 内存,4 * 146G SAS 硬盘。 该服务器运行的操作系统是Linux Debian (X86-64)。仿真工作负载采用多线程测试测试套Splash2,所有测试程序皆设置64条线程数。本实施例仅对各程序并行执行阶段进行了时钟精确仿真,初始化阶段通过功能仿真快速略过。各程序参数遵从Multi2sim的原始设置。本实施例中片上众核处理器时钟精确并行仿真系统的同步的实现,包括众核处理器的模块划分方法,前瞻量路障、源路障、目标路障的设置方法,处理器核模块与存储模块之间的点对点同步方法,存储模块相互之间的组同步方法。本发明将仿真器分成三层框架逻辑处理器层,模块层与仿真对象机器层。仿真对象机器既是需要仿真的众核处理器系统,逻辑处理器层的主要功能是操作线程及管理线程所拥有的模块,模块层充当着宿主线程到仿真对象实体的映射中间层。所述模块进一步划分为核模块,存储模块两类,一个核模块向上一对多映射了仿真对象机器层一个处理器核及其私有的一级高速缓存,一个存储模块向上一对多映射了仿真对象机器层互连网络、共享高速缓存、内存及其他仿真对象结构;多个核模块与存储模块向下多对一映射到一个逻辑处理器上。每个模块都有自己的时钟,同步以这些时钟为操作对象,仅作用在模块层次上,从而避免了逻辑处理器数量对同步过程的干扰,使得用户可以在灵活配置不同的组件切分、 映射策略而无需更改仿真器源码。本发明自定义了三种轻量级路障原语,能够将所述模块阻塞在指定的时刻上,直到解除路障的条件发生,阻塞基于用户态的自旋锁实现,没有系统模式切换带来的额外性能开销。所述路障原语的第一种是前瞻量路障,设置在前瞻量窗口上限时间点。前瞻量窗口大小取自对象系统的结构参数。前瞻量窗口下限等于所有邻接模块的最小时钟值。前瞻量窗口每滑动一个时钟周期,前瞻量路障亦随之被推到下一个时钟周期,但并不会被释放, 此时如果模块自旋阻塞在该前瞻量路障上,将暂时解除自旋状态。第二种是源路障,指当模块发给其他模块某一个事件时,为等待后续反馈事件在某个预测的时间点对自己设置的路障。该路障会被释放,释放该路障的条件是等待的事件从其他模块到达接收队列,或者由于资源竞争或其他原因,导致等待的事件延迟发生,此时路障被向后移到新的时间点。第三种路障是目标路障,指模块为了让另一模块等待某事件时向目标模块设置的路障。该路障会被释放,释放或者推后该路障的条件与源路障相同。三种路障原语能够充分满足不同情况的阻塞需求。本发明将单一同步分为两层同步,每一层同步又由小范围的局部同步构成。第一层同步位于核模块与存储模块的连接点上,称为点对点同步;第二层同步位于存储模块相互之间的连接处,称为组同步。两层同步将对象系统分割的更为细致均匀,即充分挖掘了对象系统潜在的并行性,也有效避免了集中式热点出现的可能性。所述点对点同步方法的技术方案如下所述点对点同步方法为每个核模块设置一个前瞻量路障以保证核模块与对偶存储模块的时钟偏差处于保守同步协议要求的范围内,其前瞻量窗口大小取自共享高速缓存的最小访问延迟。对偶的核模块与存储模块互为对方仅有的邻接模块。所述点对点同步方法亦为每个存储模块设置一个单时钟周期前瞻量路障以保证存储模块可以在任意时刻接收从核模块发来的零延迟事件。所述点对点同步方法亦在每次访存请求发出时刻为相应核模块设置一个源路障以保证访存完成时的零延迟返回事件在正确的时刻被核模块及时接收到。所述点对点同步方法在每次将要访问的目标核模块时为该核模块设置一个目标路障以保证从片上网络发来的零延迟事件能够被及时接收到。所述组同步方法的技术方案如下所述组同步方法为每个存储模块设置一个前瞻量路障以保证各存储模块之间的时钟偏差处于保守同步协议要求的范围内,其前瞻量窗口大小取自片上网络链路延迟。每个存储模块的邻接模块是与其有片上网络直接链路的邻居模块。两级同步的实现可参考以下伪码表示。
Each thread in parallel loops for ever If simulation ends Exit loop endif
For each module mapped to the thread Send all events from output queue;
Receive all events from the input queue;
May release source and/or target barriers;
For each lookahead barrier If I am a core module
Adjacent modules = the coupling memory module;
Else //I am a memory module If it's a p-2-p barrier
Adjacent modules = the coupling core module;
Else //It’s a group barrier
Adjacent modules = the NOC connected memory module;
Endif
Endif
Adjacent modules += the current module;
Endfor
mid cycle = minimum timestamp of source and target barriers; max_cycle = minimum timestamp of the lookahead barriers; min cycle = minimum clock of adjacent modules;
//May self-spinning on any barrier at this condition statement //If the condition is taken, actual simulation goes on
If my clock < max_cycle and (my clock <= mid cycle or my clock <= min cycle) If I am a core module
Functional emulator advances;
Processor pipeline advances; endif
Process all events at this cycle;
Put remote events into the output queue;
If I am a core module
May create source barriers; endif
May create target barriers; myclock ++; endif endfor
endloop
仿真对象机器的参数如表I所示
表I仿真对象机器的参数
Subsystem
Parameter
Value
Processor model
Deline
out-of-order, Five stages
Dispatch/Issue/commit width4Integer/Float ALUs10/4branch predictorTwo-level adaptiveCores(nodes)64Threads per coreICache modelInst/data cache ports8LI latency/ assoc/ sets-per-bank2 cycles/2 blocks/256 setsL2 latency/ assoc/ sets-per-bank10 cycles/8 blocks/2048 setsGeneral featuresTwo levels, cc-nuca, None blocking access, write back, inclusiveBlock size64 bytesCache coherence protocolMOESIMemory access latency200 cycles
权利要求
1.一种片上众核处理器时钟精确并行仿真系统,包括处理器子系统、存储子系统和仿真对象子系统,其特征在于所述系统中处理器子系统与仿真对象子系统间设置模块中间层,所述模块中间层实现逻辑处理器到仿真对象机器的映射;所述模块中间层包括与处理器核及其私有的一级高速缓存一一对应的核模块和映射互连网络、共享高速缓存、内存及其他仿真对象结构的存储模块;所述核模块与存储模块之间进行点对点同步,所述存储模块相互之间进行组同步。
2.根据权利要求I所述的片上众核处理器时钟精确并行仿真系统,其特征在于所述点对点同步是所述仿真系统通过设置前瞻量路障、源路障、目标路障原语实现相互通信的对偶核模块与存储模块的时钟同步的方法;所述前瞻量路障设置在前瞻量窗口上限时间点,跟随邻接模块的最小时钟滑动,永不被释放;所述源路障为某模块等待某一事件对自己设置的路障,事件到达时被释放,事件未到达前随最小时钟移动;所述目标路障为某模块让另一模块等待某事件时向目标模块设置的路障,解除或者推后该路障的条件与源路障相同。
3.根据权利要求2所述的片上众核处理器时钟精确并行仿真系统,其特征在于所述系统点对点同步中每个核模块设置一个前瞻量路障使核模块与对偶存储模块的时钟偏差处于保守同步协议要求的范围内,其前瞻量取自共享高速缓存的最小访问延迟。
4.根据权利要求2所述的片上众核处理器时钟精确并行仿真系统,其特征在于所述系统点对点同步中每个存储模块设置一个单时钟周期前瞻量路障以保证存储模块可以在任意时刻接收从核模块发来的零延迟事件。
5.根据权利要求2所述的片上众核处理器时钟精确并行仿真系统,其特征在于所述系统点对点同步中在每次访存请求发出时刻为相应核模块设置一个源路障以保证访存完成时的零延迟返回事件在正确的时刻被核模块及时接收到。
6.根据权利要求2所述的片上众核处理器时钟精确并行仿真系统,其特征在于所述系统点对点同步中每次为将要访问的目标核模块设置一个目标路障以保证从片上网络发来的零延迟事件能够被及时接收到。
7.根据权利要求I所述的片上众核处理器时钟精确并行仿真系统,其特征在于所述组同步为利用所述仿真系统通过设置前瞻量路障使得所有存储模块能够同步的方法;所述前瞻量路障设置在前瞻量窗口上限时间点,跟随邻接模块的最小时钟滑动,永不被释放。
8.根据权利要求7所述的片上众核处理器时钟精确并行仿真系统,其特征在于所述系统组同步中每个存储模块设置一个前瞻量路障以保证各存储模块之间的时钟偏差处于保守同步协议要求的范围内,其前瞻量取自片上网络链路延迟。
9.根据权利要求7所述的片上众核处理器时钟精确并行仿真系统,其特征在于所述系统组同步中根据路由器的度数,限制每个存储模块仅与其接邻的若干个存储模块同步, 利用相互衔接的部分同步的正确性保证存储模块整体同步的正确性。
10.根据权利要求2或7所述的片上众核处理器时钟精确并行仿真系统,其特征在于所述系统通过基于自旋锁实现的自定义路障原语将模块阻塞在指定的时刻上,直到解除路障的条件发生。
全文摘要
本发明公开了一种片上众核处理器时钟精确并行仿真系统,包括处理器子系统、存储子系统和仿真对象子系统,其特征在于所述系统中处理器子系统与仿真对象子系统间设置模块中间层,所述模块中间层实现逻辑处理器到仿真对象机器的映射;所述模块中间层包括与处理器核及其私有的一级高速缓存一一对应的核模块和映射互连网络、共享高速缓存、内存及其他仿真对象结构的存储模块;所述核模块与存储模块之间进行点对点同步,所述存储模块相互之间进行组同步。该系统具有更丰富的并行度,具有更高的加速比,而且性能的提升是在保持了众核处理器各个组件细致建模的条件下取得的。
文档编号G06F11/26GK102591759SQ20111044882
公开日2012年7月18日 申请日期2011年12月29日 优先权日2011年12月29日
发明者吴俊敏, 唐轶轩, 朱小东, 赵小雨 申请人:中国科学技术大学苏州研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1