多处理器结构的模拟方法及模拟器的制作方法

文档序号:6335510阅读:158来源:国知局
专利名称:多处理器结构的模拟方法及模拟器的制作方法
技术领域
本发明涉及计算机技术领域,特别是涉及一种多处理器结构的模拟方法及模拟
O
背景技术
计算机系统结构建模是用于实现计算机系统的结构,通过模拟器模拟计算机系统的行为,在学术界和产业界有着广泛的应用。通过对计算机系统结构建模,研究者还可以用可配置的结构形式来考察目标机软件在被模拟的计算机系统结构上执行时的行为与特征, 使得在真实计算机系统平台能够使用以前,尽早发现计算机结构的设计问题。计算机系统结构模拟器(简称模拟器)即用来对计算机系统的行为进行模拟。目前,模拟器在计算机系统的研发过程中扮演着非常重要的作用,在对下一代的计算机系统研发过程中,利用模拟器,可以在目标系统未投入开发前对其的性能进行评估,分析系统的性能瓶颈或者找到最优配置,从而对计算机系统进行针对性的改进。而且,模拟器还可以用于对目标系统的系统软件进行开发,使得软硬件开发可以同时进行,加快了目标系统开发速度。根据被模拟的计算机系统的结构,模拟器可以分为指令系统模拟器、主存系统模拟器、单处理器模拟器、共享多处理器结构模拟器和多节点并行结构模拟器等,共享多处理器结构模拟器是一种重要的计算机系统结构模拟器,是计算机系统结构建模的重要基础。模拟器具有三个比较重要的衡量指标,模拟速度、模拟精度和模拟灵活性。模拟速度指模拟器执行模拟任务的快慢;模拟精度指模拟器模拟出的目标系统和实际系统的接近程度;而模拟的灵活性则是指模拟器通过配置来模拟不同结构的方便程度及是否具有多种执行模式和灵活可配置的数据收集、显示方式。但是模拟器的速度则贯穿整个设计开发的始末,也是制约模拟器使用的最重要的因素。由于模拟器具有计算机结构行为可见、开发成本低、修改配置灵活、开发周期短、 可以开发和调试系统软件等特点,在很多方面都得到了广泛的使用。因此越来越受到开发者的喜爱。理想的模拟器应该具有运行速度快、模拟精度高、配置修改灵活等特点,然而这三者之间是相互制约的,故,很难兼得。随着计算机技术的发展,计算机系统规模正在发生重大变化,单处理器向多处理器方向迅猛发展,因此,可以运行模拟器的宿主机的规模越来越大,而待模拟的目标系统也越来越大。图1为传统的多处理器结构模拟器模拟过程的示意图,如图1所示,传统的多处理器结构的模拟是由单个宿主进程轮转模拟多个目标机(被模拟的计算机系统)处理器的行为,往往需要几周甚至几个月才能完成一次模拟。若要缩短模拟的时间,则需要降低对模拟规模和准确度的要求。而且,由于它的串行执行特性,不能利用多处理器的宿主机(运行模拟器的计算机)平台进行加速模拟,特别是当目标机处理器个数较多时,模拟器的耗时程度会更长,不能满足多处理器结构模拟时效的要求。由上述可以得知,现有的多处理器结构的模拟方法不能有效地实现模拟的并行加速,且目标机多处理器的模拟行为与实际硬件行为存在差异。申请号为201010103887.9的中国专利申请提供了一种片上多核处理器的并行功能仿真系统及其方法,但是其只是涉及了串行功能仿真技术中由于目标系统核数增加而导致性能下降的问题,对于上述技术问题并未涉及。

发明内容
本发明解决的是,现有的多处理器结构的模拟方法不能有效地提高并行模拟的速度,以及目标机多处理器的模拟行为与实际硬件行为存在差异的技术问题。为解决上述技术问题,本发明提供一种多处理器结构的模拟方法,利用多处理器宿主机对多处理器结构目标机的多个处理器的行为进行模拟,包括如下步骤创建多个宿主进程,分配每个宿主进程所模拟的目标机处理器;其中,所述宿主进程个数小于等于宿主机处理器的个数,每个宿主进程采用轮转的方式对所分配的目标机处理器执行目标机处理器节拍的行为模拟;并行执行多个宿主进程,每个宿主进程对所分配的目标机处理器的一个目标机处理器节拍的行为模拟后,该宿主进程的节拍数加1 ;暂停执行节拍数等于当前的全局时钟值的宿主进程中对所分配的目标机处理器的行为模拟;在所有宿主进程的节拍数的平均值等于所述当前的全局时钟值时,更新全局时钟值,并恢复执行所述暂停的宿主进程中对所分配的目标机处理器的行为模拟;所述全局时钟值为目标机处理器节拍数。可选的,所述每个宿主进程所模拟的目标机处理器个数为不超过((目标处理器的个数+宿主进程个数-1)/宿主进程个数)的最大整数。可选的,还包括对每个宿主进程所分配的目标机处理器的一个目标机处理器节拍的行为模拟过程中,对共享资源通过锁操作实施互斥访问。可选的,所述共享资源为全局事件队列、共享缓存模型和共享主存模型。可选的,所述更新全局时钟值为对所述当前的全局时钟值加上全局时钟松散同步时间片,所述全局时钟松散同步时间片为预设的目标机处理器节拍数。可选的,所述全局时钟松散同步时间片为至少2个目标机处理器节拍。为解决上述技术问题,本发明还提供一种多处理器结构的模拟器,利用多处理器宿主机对多处理器结构目标机的多个处理器的行为进行模拟,包括创建单元,创建多个宿主进程,分配每个宿主进程所模拟的目标机处理器;其中, 所述宿主进程个数小于等于宿主机处理器的个数,每个宿主进程采用轮转的方式对所分配的目标机处理器进行目标机处理器节拍的行为模拟;执行单元,并行执行多个宿主进程;节拍计数单元,对各个宿主进程进行节拍计数,其中,在对一个宿主进程中所分配的目标机处理器执行一个目标机处理器节拍的行为模拟后,该宿主进程的节拍数加1 ;控制单元,根据节拍计数单元输出的各个宿主进程的节拍数,控制所述执行单元暂停执行节拍数等于当前的全局时钟值的宿主进程中所分配的目标机处理器的行为模拟; 在所有宿主进程的节拍数的平均值等于所述当前的全局时钟值时,更新全局时钟值,并控制所述执行单元恢复执行所述暂停的宿主进程中所分配的目标机处理器的行为模拟;所述全局时钟值为目标机处理器节拍数。可选的,所述每个宿主进程所模拟的目标机处理器个数为不超过((目标处理器的个数+宿主进程个数-1)/宿主进程个数)的最大整数。可选的,还包括共享资源单元,所述执行单元在对每个宿主进程所分配的目标机处理器的一个目标机处理器节拍的行为模拟过程中,通过锁操作对所述共享资源单元实施互斥访问。可选的,所述共享资源单元包括全局事件队列、共享缓存模型和共享主存模型。可选的,所述更新全局时钟值为对所述当前的全局时钟值加上全局时钟松散同步时间片,所述全局时钟松散同步时间片为预设的目标机处理器节拍数。可选的,所述全局时钟松散同步时间片为至少2个目标机处理器节拍。与现有技术相比,本发明具有以下优点通过创建宿主机多进程,充分利用了宿主机平台的多CPU资源。对于每个宿主机的处理器仅分配一个宿主进程,均衡分配每一宿主进程的负载,采用轮转模拟的方法对目标机的多个处理器的行为进行模拟。通过对目标机多处理器的轮转模拟和宿主机多进程的并行相结合,有效地解决了多处理器结构模拟的并行加速问题,提高了并行模拟的速度。通过采用全局时钟值控制多个并行宿主进程之间的同步,有效控制了目标机各个处理器模拟进度的差异,能够保持目标机多处理器结构行为模拟的真实性。全局时钟值可以根据一个可调的全局时钟松散同步时间片进行更新,且,所述全局时钟松散同步时间片为至少2个目标机处理器节拍,避免了在每个目标机处理器节拍进行同步的低效,从而提高了模拟多处理器结构的速度。


图1为传统的多处理器结构模拟器的模拟过程示意图;图2为本发明具体实施方式
的多处理器结构模拟方法的流程图;图3为本发明具体实施例的多处理器结构模拟过程的示意图;图4为本发明具体实施方式
的多处理器结构模拟器的示意图。
具体实施例方式现有技术可以通过创建宿主机多进程来实现多处理器结构模拟器的加速。然而发明人发现该方法存在两个问题(1)关于模拟负载的平衡分配。举例来说,如果宿主机有4 个处理器,目标机有8个处理器,若采用每个宿主进程模拟一个目标机处理器,则需要8个宿主进程,因而宿主进程数8大于宿主机处理器的个数4,即1个处理器上分配有2个宿主进程,模拟过程中由于宿主进程切换引起的开销,最终导致了多处理器模拟器不能加速; (2)关于多宿主进程间的模拟同步。由于宿主多进程的自然不同步,以及不同目标机处理器动态行为的差异,例如,每次访存操作时不同目标机处理器高速缓存的状态不同、主存总线竞争、目标机处理器负载路径不同等,导致模拟执行路径和模拟负载量的不同,从而导致在一定的时间片内被模拟的目标机的各个处理器的节拍数出现较大差异,造成目标机多处理器模拟行为与实际硬件处理器的行为之间存在较大差异。
6
因此,采用创建宿主机多进程来模拟多处理器结构的方法,在模拟负载的分配方面,会出现宿主机的一个处理器被分配多个进程,模拟过程中宿主进程的切换引起开销,导致多处理器模拟器不能加速。此外,多宿主进程间的自然不同步等因素导致了在一定的时间片内被模拟的目标机的各个处理器的节拍数出现较大差异,造成目标机多处理器模拟行为与实际硬件多处理器的行为之间存在较大差异。针对上述问题,发明人想到采用一个宿主机处理器创建至多一个宿主进程,均衡分配多个并行宿主进程的负载和目标机的各个处理器轮转模拟相结合,同时采用以目标机处理器节拍为单位的非精确全局时钟值来控制各个被模拟的目标机处理器间的同步,以解决上述问题。为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式
做详细的说明。图2为本发明具体实施方式
的多处理器结构的模拟方法的流程图,图3为本发明具体实施例的多处理器结构模拟过程的示意图;请参考图2和图3,如图2所示,本发明具体实施方式
的多处理器结构的模拟方法利用多处理器宿主机对多处理器结构目标机的多个处理器的行为进行模拟,包括如下步骤步骤Sll 创建多个宿主进程,分配每个宿主进程所模拟的目标机处理器;其中, 所述宿主进程个数小于等于宿主机处理器的个数,每个宿主进程采用轮转的方式对所分配的目标机处理器执行目标机处理器节拍的行为模拟。参见图3,本实施例中,先对宿主机和目标机进行相应的配置,根据宿主机处理器的个数来设置所要创建的宿主进程的个数P,以及所要模拟的目标机的处理器的个数M。所述宿主机是指运行模拟器的计算机,模拟器和宿主机一起向用户提供另一台虚拟的计算机环境;所述目标机是指被模拟的计算机系统。为了避免宿主机的一个处理器执行多个进程,因进程之间转换而引起开销,导致并行模拟不能加速,本实施例中,创建宿主进程的个数P小于等于宿主机处理器的个数,以保证在模拟过程中宿主机的每个处理器执行至多一个宿主进程。如宿主机处理器的个数为5个,宿主进程的个数可以为5个,也可以小于5个,如4个宿主进程。然后创建多个可并行执行的宿主进程0到宿主进程P-I。分配每个宿主进程所模拟的目标机处理器的个数CPP,本实施例中采用均衡负载分配的方法,每个宿主进程中所模拟的处理器的个数CPP为不超过((目标机处理器的个数+宿主进程个数-ι)/宿主进程个数)的最大整数,也即CPP= [(M+P-D/P]。举例来说, 若宿主机处理器的个数为5个,宿主进程数为4个(宿主进程个数小于宿主机处理器的个数),目标机处理器的个数为8个,则分配在每个宿主进程中的目标机处理器的个数CPP = [(8+4-1)/4] =2。若宿主机处理器的个数为5个,宿主进程数为5个(宿主进程个数等于宿主机处理器的个数),目标机处理器的个数为8个,则分配在每个宿主进程中的目标机处理器的个数CPP= [(8+5-1)/5] = 2,只不过此时有一个宿主进程处于空闲状态。如图3所示,对于第0号宿主进程至第P-I号宿主进程中的每个宿主进程而言,均采用轮转的方式对所分配的目标机处理器执行目标机处理器节拍的行为模拟,本实施例中所述目标机处理器节拍是指目标机处理器的时钟周期,即一个目标机处理器节拍为目标机处理器的一个时钟周期,两个目标机处理器节拍为目标机处理器的两个时钟周期,依此类推。有关每个宿主进程具体如何采用轮转的方式对所分配的目标机处理器执行目标机处理器节拍的行为模拟,将在后续并行执行多个宿主进程的过程中进行详细的说明。步骤S12 并行执行多个宿主进程,每个宿主进程对所分配的目标机处理器的一个目标机处理器节拍的行为模拟后,该宿主进程的节拍数加1。本实施例中,是通过并行执行多个宿主进程以对每个宿主进程所分配的目标机的处理器行为进行相应的模拟,如图3所示,本实施例中设宿主进程0到宿主进程P-I所分配的目标机的处理器的个数均为η (η为大于等于1的自然数),现以第0号宿主进程为例,来说明本实施例中每个宿主进程对其所分配的目标机处理器的行为的模拟过程。本实施例中对于第0号宿主进程而言,可以对分配于其中的目标机处理器进行相应的编号,即对η个目标机处理器进行1到η的编号,如图3所示,对于第0号宿主进程而言,图中目标机处理器i(i = 1,2,...η)即代表了目标机处理器1到η。本实施例中,对目标机处理器行为的模拟是以目标机处理器节拍为单位进行的,对于第0号宿主进程中的目标机处理器1 η,会按照目标机处理器的编号以轮流的方式对每一个目标机处理器进行一个目标机处理器节拍的行为模拟。具体地,参考图3,每模拟一个目标机处理器的行为,宿主机都会对其相应的标号进行判断,即判断当前目标机处理器的编号i是否为本进程所分配的最后的目标机处理器的编号n,如果当前目标机处理器的编号i不等于n,则将当前目标机处理器的编号i加1, 即i = i+Ι,返回继续模拟编号为i的目标处理器的行为,直至模拟完本进程的最后一个目标机处理器η的行为。至此,通过轮流的方式对第0号宿主进程所分配的目标机处理器1 η的行为进行了一个目标机处理器节拍的行为模拟,第0号宿主进程的节拍数加1。本实施例中优选地第0号宿主进程节拍数的初始值为0,在其他实施例中第0号宿主进程节拍数的初始值也可以为一不为0的自然数。此后,宿主机还会返转回去对第0号宿主进程所分配的目标机处理器继续进行下一个目标机处理器节拍的行为模拟,相应地第0号宿主进程的节拍数会继续加1,即通过轮转的方式对第0号宿主进程所分配的目标机处理器进行多个目标机处理器节拍的行为模拟。需要说明的是,上述模拟过程仅仅是以第0号宿主进程为例进行了相应的说明, 对于本实施例中的第1号至第P-I号宿主进程,分配于其中的目标机处理器行为的模拟过程与上述相类似,不同的仅仅是每个宿主进程所分配的目标机处理器的动态行为并不相同,此处不再赘述。同时,第1号至第P-I号宿主进程节拍数的初始值与第0号宿主进程节拍数的初始值相同,即第0号宿主进程至第P-I号宿主进程节拍数的初始值相同。此外,对于上述的每个宿主进程,对所有分配的目标机处理器的一个目标机处理器节拍的行为模拟过程中,通过锁操作对共享资源进行互斥访问(图3中未示出),本实施例中,所述共享资源为全局事件队列、共享缓存模型和共享主存模型。步骤S13 暂停执行节拍数等于当前的全局时钟值的宿主进程中对所分配的目标机处理器的行为模拟;如上所述,在每次对第0号宿主进程所分配的编号为第1 η号的目标机处理器的行为进行一个目标机处理器节拍的模拟后,第0号宿主进程的节拍数会加1,而对于其他的第1号至第P-I号的每一个宿主进程而言,在对其所分配的编号为第1 η号的目标机处理器的行为进行一个目标机处理器节拍的模拟后,该宿主进程的节拍数也会加1。然而,对于各个并行的第0号至第P-I号宿主进程,由于第0号至第P-I号宿主进程之间的自然不同步,以及分配于第0号至第P-I号宿主进程的目标机处理器动态行为的差异,在相同的时间片内,第0号至第P-I号宿主进程的节拍数会不相同。此处为了描述方便,仅取第0号至第P-I号宿主进程中的前5个宿主进程进行相应的说明。在相同的时间片内,对于第0号宿主进程,其节拍数为5,而对于第1号宿主进程其节拍数为2,其他第2、3、4号宿主进程的节拍数有可能大于5,也有可能小于5。本实施例中,为了避免在执行多个并行的宿主进程的过程中,对每个宿主进程所分配的目标机处理器行为的模拟与实际硬件处理器的行为之间存在较大差异,需要对多个并行宿主进程之间进行松散同步,所述松散同步是指在多个宿主进程的执行中,以设定的同步时间片进行同步,所述同步时间片的单位为目标机处理器节拍。本实施例中通过全局时钟值实现多个并行的宿主进程之间的松散同步。所述全局时钟值为目标机处理器节拍数,所述目标机处理器节拍数是指目标机处理器节拍的个数, 如目标机处理器节拍数为2即指2个目标机处理器节拍。本实施例中全局时钟的初始值大于宿主进程节拍数的初始值,可以根据用户的需求进行相应的设置,优选为所述全局时钟的初始值大于宿主进程节拍数的初始值2个目标机处理器节拍。仍然参考图3,本实施例中以第0号宿主进程到达同步点,并由第0号宿主进程对全局时钟值进行更新为例,对所有进程的之间的松散同步进行相应的说明。若第0号宿主进程的节拍数不等于当前的全局时钟值,即第0号宿主进程仍未到达同步点,则继续对第0号宿主进程所分配的目标机处理器的行为进行模拟,增加第0号宿主进程的节拍数;若第0号进程的节拍数等于当前的全局时钟值,即第0号宿主进程到达同步点,则暂停对第0号进程所分配的目标机处理器的行为模拟。对于第1号至第P-I号宿主进程而言,与第0号进程相类似,若第1号至第P-I号宿主进程的节拍数中有等于当前的全局时钟值,则暂停对该节拍数等于当前全局时钟值的宿主进程中所分配的目标机处理器的行为模拟,等待其他宿主进程到达同步点。步骤S14 在所有宿主进程的节拍数的平均值等于所述当前的全局时钟值,更新全局时钟值,并恢复执行所述暂停的宿主进程中所分配的目标机处理器的行为模拟;所述全局时钟值为目标机处理器节拍数。继续参考图3,判断所有宿主进程的节拍数的平均值与当前的全局时钟值之间的关系,本实施例中,即将第0号宿主进程至第P-I号宿主进程的节拍数相加,除以P,将得到平均值与当前的全局时钟值相比较,为了便于说明,本实施例中设当前的全局时钟值为5, 即5个目标机处理器节拍,若第0号宿主进程的节拍数已经到达5,暂停对第0号宿主进程中所分配的目标机处理器1 η的行为模拟,转而判断所有宿主进程节拍数的平均值,若该平均值等于5,更新全局时钟值,使其大于当前的全局时钟值5。本实施例中优选地采用全局时钟松散同步时间片来对全局时钟值进行相应的更新,所述全局时钟松散同步时间片仍为目标机处理器的节拍数,具体根据用户的需求进行相应的设置。本实施例中,优选地,全局时钟值按照大于等于2的全局时钟松散同步时间片进行更新,全局时钟松散同步时间片大于等于2,可以无需在每个目标机处理器节拍都进行同步,提高了对目标机处理器行为进行模拟的速度。例如全局时钟松散同步时间片可以设置为5或者为10,即全局时钟值按照增加5个或10个目标机处理器节拍进行更新,本实施例中以全局时钟松散同步时间片为10,即10个目标机处理器节拍进行说明。当第0号宿主进程的节拍数到达5且所有宿主进程的节拍数的平均值均等于5后,即所有的宿主进程都到达同步点,由第0号宿主进程执行对全局时钟值5的更新,即将当前的全局时钟值5加上全局时钟松散同步时间片10,当前的全局时钟值更新为15,得到进行下一次松散同步时的全局时钟值15。需要说明的是,本实施例中以全局时钟松散同步时间片来对全局时钟值进行更新只为一优选的实施例,不能以此作为对本发明的限定,在其他实施例中也可以不采用全局时钟松散同步时间片来对全局时钟值进行更新,只要保证更新后的全局时钟值大于当前的全局时钟值即可。至此,第0号宿主进程至第P-I号宿主进程完成了第一次松散同步。恢复对第0 号宿主进程至第P-I号宿主进程中所分配的目标机处理器1 η的行为模拟。若所有宿主进程节拍数的平均值小于5,即在第1号宿主进程至第P-I号宿主进程中,仍有部分宿主进程或全部宿主进程未到达同步点,则仍然暂停对第0号宿主进程及其他已到达同步点的宿主进程中所分配的目标机处理器1 η的行为模拟,即到达同步点的宿主进程均处于等待状态,继续判断所有宿主进程节拍数的平均值与当前的全局时钟值5 之间的关系,直至所有宿主进程节拍数的平均值等于5,更新全局时钟值,恢复对暂停的宿主进程中所分配的目标机处理器1 η的行为模拟。需要说明的是,本实施例中是通过第0号宿主进程对全局时钟值进行更新的,而在其他实施例中,也可以选定另一个宿主进程来对全局时钟值进行更新。在另一实施例中, 也可以启用一个新的进程来对全局时钟值进行更新(该情况适用于所创建的进程并没用完全用于对目标机处理器行为的模拟,仍有空闲的进程存在,或者宿主机的处理器中仍存在空闲的处理器)。此外,需要注意的是,在实际应用过程中,对于第1号 第P-I号宿主进程的终止, 可以通过由0号进程捕获到目标机代码中的终止调用后插入系统退出函数来实现。请参考图4,本实施例还提供一种多处理器结构的模拟器,利用多处理器宿主机对多处理器结构目标机的多个处理器的行为进行模拟,包括创建单元101,创建多个宿主进程,分配每个宿主进程所模拟的目标机处理器;其中,所述宿主进程个数小于等于宿主机处理器的个数,每个宿主进程采用轮转的方式对所分配的目标机处理器进行目标机处理器节拍的行为模拟;关于创建单元101如何分配每个宿主进程所模拟的目标机处理器,及每个宿主进程如何采用轮转的方式对所分配的目标机处理器进行目标机处理器节拍的行为模拟,请参见对多处理器结构的模拟方法实施例中的叙述,此处不再赘述。执行单元103,并行执行多个宿主进程;执行单元103,启动多个宿主进程,使多个宿主进程并行执行,并且执行单元103 还接受控制单元107的控制,暂停或恢复执行多个宿主进程。关于多个宿主进程如何执行, 请参见对多处理器结构的模拟方法实施例中的叙述,此处不再赘述。需要注意的是,执行单元103在对每个宿主进程所分配的目标机处理器的一个目标机处理器节拍的行为模拟过程中,每个宿主进程还会通过锁操作对共享资源单元(图中未示出)实施互斥访问。节拍计数单元105,对各个宿主进程进行节拍计数,其中,对一个宿主进程中所分配的目标机处理器执行一个目标机处理器节拍的行为模拟后,该宿主进程的节拍数加1 ;控制单元107,根据节拍计数单元105输出的各个宿主进程的节拍数,控制单元 107控制所述执行单元103暂停执行节拍数等于当前的全局时钟值的宿主进程中所分配的目标机处理器的行为模拟,直至所有宿主进程的节拍数的平均值等于所述当前的全局时钟值,更新全局时钟值,并由控制单元107控制所述执行单元103恢复执行所述暂停的宿主进程中所分配的目标机处理器的行为模拟;所述全局时钟值为目标机处理器节拍数。综上所述,本发明具体实施例的多处理器结构的模拟方法及模拟器,通过创建宿主机多进程,充分利用了宿主机平台的多处理器资源。对于每个宿主机的处理器仅分配一个宿主进程,均衡分配每一个宿主进程的负载,采用轮转模拟的方法对目标机的多个处理器的行为进行模拟。通过对目标机多处理器的轮转模拟和宿主机多进程的并行相结合,有效地解决了多处理器结构模拟的并行加速问题,提高了并行模拟的速度。通过采用全局时钟值控制多个并行宿主进程之间的松散同步,有效控制了目标机各个处理器模拟进度的差异,能够保持目标机多处理器结构行为模拟的真实性。本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。
权利要求
1.一种多处理器结构的模拟方法,利用多处理器宿主机对多处理器结构目标机的多个处理器的行为进行模拟,其特征在于,包括如下步骤创建多个宿主进程,分配每个宿主进程所模拟的目标机处理器;其中,所述宿主进程个数小于等于宿主机处理器的个数,每个宿主进程采用轮转的方式对所分配的目标机处理器执行目标机处理器节拍的行为模拟;并行执行多个宿主进程,每个宿主进程对所分配的目标机处理器的一个目标机处理器节拍的行为模拟后,该宿主进程的节拍数加1 ;暂停执行节拍数等于当前的全局时钟值的宿主进程中对所分配的目标机处理器的行为模拟;在所有宿主进程的节拍数的平均值等于所述当前的全局时钟值时,更新全局时钟值, 并恢复执行所述暂停的宿主进程中对所分配的目标机处理器的行为模拟;所述全局时钟值为目标机处理器节拍数。
2.如权利要求1所述的一种多处理器结构的模拟方法,其特征在于,所述每个宿主进程所模拟的目标机处理器个数为不超过((目标处理器的个数+宿主进程个数-ι)/宿主进程个数)的最大整数。
3.如权利要求1所述的一种多处理器结构的模拟方法,其特征在于,还包括对每个宿主进程所分配的目标机处理器的一个目标机处理器节拍的行为模拟过程中,对共享资源通过锁操作实施互斥访问。
4.如权利要求3所述的一种多处理器结构的模拟方法,其特征在于,所述共享资源为全局事件队列、共享缓存模型和共享主存模型。
5.如权利要求1所述的一种多处理器结构的模拟方法,其特征在于,所述更新全局时钟值为对所述当前的全局时钟值加上全局时钟松散同步时间片,所述全局时钟松散同步时间片为预设的目标机处理器节拍数。
6.如权利要求5所述的一种多处理器结构的模拟方法,其特征在于,所述全局时钟松散同步时间片为至少2个目标机处理器节拍。
7.一种多处理器结构的模拟器,利用多处理器宿主机对多处理器结构目标机的多个处理器的行为进行模拟,其特征在于,包括创建单元,创建多个宿主进程,分配每个宿主进程所模拟的目标机处理器;其中,所述宿主进程个数小于等于宿主机处理器的个数,每个宿主进程采用轮转的方式对所分配的目标机处理器进行目标机处理器节拍的行为模拟;执行单元,并行执行多个宿主进程;节拍计数单元,对各个宿主进程进行节拍计数,其中,在对一个宿主进程中所分配的目标机处理器执行一个目标机处理器节拍的行为模拟后,该宿主进程的节拍数加1 ;控制单元,根据节拍计数单元输出的各个宿主进程的节拍数,控制所述执行单元暂停执行节拍数等于当前的全局时钟值的宿主进程中所分配的目标机处理器的行为模拟;在所有宿主进程的节拍数的平均值等于所述当前的全局时钟值时,更新全局时钟值,并控制所述执行单元恢复执行所述暂停的宿主进程中所分配的目标机处理器的行为模拟;所述全局时钟值为目标机处理器节拍数。
8.如权利要求7所述的一种多处理器结构的模拟器,其特征在于,所述每个宿主进程所模拟的目标机处理器个数为不超过((目标处理器的个数+宿主进程个数-ι)/宿主进程个数)的最大整数。
9.如权利要求7所述的一种多处理器结构的模拟器,其特征在于,还包括共享资源单元,所述执行单元在对每个宿主进程所分配的目标机处理器的一个目标机处理器节拍的行为模拟过程中,通过锁操作对所述共享资源单元实施互斥访问。
10.如权利要求9所述的一种多处理器结构的模拟器,其特征在于,所述共享资源单元包括全局事件队列、共享缓存模型和共享主存模型。
11.如权利要求7所述的一种多处理器结构的模拟器,其特征在于,所述更新全局时钟值为对所述当前的全局时钟值加上全局时钟松散同步时间片,所述全局时钟松散同步时间片为预设的目标机处理器节拍数。
12.如权利要求11所述的一种多处理器结构的模拟器,其特征在于,所述全局时钟松散同步时间片为至少2个目标机处理器节拍。
全文摘要
一种多处理器结构的模拟方法及模拟器,利用多处理器宿主机对多处理器结构目标机的多个处理器的行为进行模拟,包括创建多个宿主进程,其中,每个宿主进程采用轮转的方式对所分配的目标机处理器执行目标机处理器节拍的行为模拟,并行执行多个宿主进程,每个宿主进程对所分配的目标机处理器的一个目标机处理器节拍的行为模拟后,该宿主进程的节拍数加1;根据每个宿主进程的节拍数及当前的全局时钟值,实现多个进程之间的松散同步,所述当前的全局时钟值为目标机处理器节拍数。本发明的多处理器结构的模拟方法及模拟器提高了并行模拟的速度,有效控制了目标机各个处理器模拟进度的差异,能够保持目标机多处理器结构行为模拟的真实性。
文档编号G06F9/455GK102467406SQ20101053715
公开日2012年5月23日 申请日期2010年11月9日 优先权日2010年11月9日
发明者彭维, 李岱峰, 杨金才, 潘治, 王丹云, 谷洪峰 申请人:无锡江南计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1