并行模拟多个处理器的方法及系统、调度器的制作方法

文档序号:6433008阅读:154来源:国知局
专利名称:并行模拟多个处理器的方法及系统、调度器的制作方法
技术领域
本发明实施例涉及模拟技术,尤其涉及一种并行模拟多个处理器的方法及系统、
调度器。
背景技术
SIMICS模拟器是一款高性能的系统模拟器,可以模拟单处理器系统和多处理器系统。SIMICS模拟器模拟多处理器系统时,采用单一处理器调度方式进行调度,即每次调度一个处理器执行相应的指令,以实现串行模拟多个处理器。然而,由于每次调度一个处理器,所以无法实现并行模拟多个处理器,导致了模拟效率的降低,同时现有技术中也无法实现并行模拟多个处理器时的调试。

发明内容
本发明实施例提供一种并行模拟多个处理器的方法及系统、调度器,用以提高模拟效率和实现并行模拟多个处理器时的调试。一方面提供了一种并行模拟多个处理器的方法,包括调度器将需要调试的待模拟的处理器的调试接口信息映射到所述调度器上;所述调度器利用主线程创建至少一个从线程,并确定所述主线程和所述至少一个从线程对应的待模拟的处理器,得到确定的对应的待模拟的处理器,其中,所述主线程对应的待模拟的处理器包括所述需要调试的待模拟的处理器;所述调度器利用所述主线程和所述至少一个从线程,通过第一运行接口调用所述确定的对应的待模拟的处理器执行相应的指令,并利用所述主线程,通过所述需要调试的待模拟的处理器的调试接口调试所述需要调试的待模拟的处理器,所述第一运行接口通过
所述确定的对应的待模拟的处理器向所述调度器注册,所述调试接口信息指向所述调试接□。另一方面提供了一种调度器,包括映射单元,用于将需要调试的待模拟的处理器的调试接口信息映射到所述调度器上;创建单元,用于利用主线程创建至少一个从线程,并确定所述主线程和所述至少一个从线程对应的待模拟的处理器,得到确定的对应的待模拟的处理器,其中,所述主线程对应的待模拟的处理器包括所述需要调试的待模拟的处理器;调用单元,用于利用所述主线程和所述创建单元创建的所述至少一个从线程,通过第一运行接口调用所述创建单元确定的对应的待模拟的处理器执行相应的指令,并利用所述主线程,通过所述需要调试的待模拟的处理器的调试接口调试所述需要调试的待模拟的处理器,所述第一运行接口通过所述确定的对应的待模拟的处理器向所述调度器注册, 所述映射单元映射的调试接口信息指向所述调试接口。另一方面提供了一种并行模拟多个处理器的系统,包括待模拟的处理器和上述调度器。由上述技术方案可知,通过调度器利用主线程创建至少一个从线程,并确定上述主线程和上述至少一个从线程对应的待模拟的处理器,使得调度器能够利用上述主线程和上述至少一个从线程,通过上述确定的对应的待模拟的处理器向上述调度器注册的第一运行接口,调用上述确定的对应的待模拟的处理器执行相应的指令,由于每次能够利用主线程和至少一个从线程调度待模拟的处理器,所以能够实现并行模拟多个处理器,避免了现有技术中由于每次调度一个待模拟的处理器而导致的无法实现并行模拟多个处理器的问题,从而提高了模拟效率;同时能够充分利用调度器所在宿主机的处理器资源,从而提高了资源利用效率。另外,通过调度器将需要调试的待模拟的处理器的调试接口信息映射到该调度器上,使得调度器能够利用主线程,通过该调试接口信息指向的需要调试的待模拟的处理器的调试接口调试该需要调试的待模拟的处理器,实现了并行模拟多个处理器时的调试ο


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明一实施例提供的并行模拟多个处理器的方法的流程示意图;图2为本发明另一实施例提供的并行模拟多个处理器的方法的流程示意图;图3为图2对应的实施例所适用的系统架构示意图;图4为本发明另一实施例提供的调度器的结构示意图;图5为本发明另一实施例提供的调度器的结构示意图;图6为本发明另一实施例提供的调度器的结构示意图;图7为本发明另一实施例提供的并行模拟多个处理器的系统的结构示意图;图8为本发明另一实施例提供的并行模拟多个处理器的系统的结构示意图;图9为本发明另一实施例提供的并行模拟多个处理器的系统的结构示意图;图10为本发明另一实施例提供的并行模拟多个处理器的系统的结构示意图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图1为本发明一实施例提供的并行模拟多个处理器的方法的流程示意图,如图1 所示,本实施例的并行模拟多个处理器的方法可以包括101、调度器将需要调试的待模拟的处理器的调试接口信息映射到该调度器上;102、上述调度器利用主线程创建至少一个从线程,并确定上述主线程和上述至少一个从线程对应的待模拟的处理器,得到确定的对应的待模拟的处理器;
其中,上述主线程对应的待模拟的处理器包括上述需要调试的待模拟的处理器。其中,主线程只有一个,从线程最多可以等于调度器所在宿主机的处理器的个数减去1,以使得每个线程对应一个宿主机的处理器。具体地,调度器可以根据配置文件,利用主线程创建至少一个从线程,并确定上述主线程和上述至少一个从线程对应的待模拟的处理器。配置文件中可以包括但不限于创建从线程的个数、需要调试的待模拟的处理器的编号信息和线程(主线程或从线程)与待模拟的处理器的映射关系。103、上述调度器利用上述主线程和上述至少一个从线程,通过第一运行接口 (execute interface)调用上述确定的对应的待模拟的处理器执行相应的指令,并利用上述主线程,通过上述需要调试的待模拟的处理器的调试接口调试该需要调试的待模拟的处理器。其中,上述第一运行接口通过上述确定的对应的待模拟的处理器向上述调度器注册;上述调试接口信息指向上述调试接口。可以理解的是每个线程可以对应一个待模拟的处理器,或者还可以对应多个待模拟的处理器,本实施例对此不进行限定,但是,主线程所对应的待模拟的处理器中必须包含需要调试的待模拟的处理器。如果每个线程对应多个待模拟的处理器,在102中,调度器每次通过主线程和从线程调度待模拟的处理器执行相应的指令时,则可以先并行调度每个线程中的一个待模拟的处理器,然后在每个线程内部再串行调度该线程中的其他待模拟的处理器。可选地,上述指令可以包括但不限于下列指令中的至少一个访问内存的指令,用于访问同一内存或不同内存的指令;访问外设的指令,用于访问同一外设或不同外设的指令。可选地,上述指令还可以为原子指令,则在102中,调度器具体可以利用互斥锁操作,调用上述确定的对应的待模拟的处理器执行相应的指令。可选地,本实施例中,调度器还可以进一步利用上述主线程和上述至少一个从线程,通过第一周期接口(cycle interface)向上述确定的对应的待模拟的处理器下发周期参数,以控制上述调度器利用上述主线程和上述至少一个从线程同步调用对应的待模拟的处理器,从而保证了待模拟的处理器之间的调度一致。其中,上述第一周期接口通过上述确定的对应的待模拟的处理器向上述调度器注册。可选地,上述101 103的执行主体调度器可以为SIMICS模拟器中的调度单元。 相应地,调度器可以将需要调试的待模拟的处理器的调试接口的地址赋给该调度器的调试接口指针。具体地,可以包括但不限于下列情况中的至少一项调度器将需要调试的待模拟的处理器的单步运行接口(st印interface)的地址赋给该调度器的单步运行接口指针;调度器将需要调试的待模拟的处理器的断点查询接口(breakpoint query interface)的地址赋给该调度器的断点查询接口指针;调度器将需要调试的待模拟的处理器的断点触发接口(breakpoint trigger interface)的地址赋给该调度器的物理内存触发器接口指针。可选地,为了将操作者所设置的断点更新操作通知给需要调试的待模拟的处理器,调度器还可以进一步将需要调试的待模拟的处理器的断点控制接口(breakpoint change interface)的地址赋给该调度器的断点控制接口指针,以使得调度器利用断点控制接口指针,调用需要调试的待模拟的处理器,以通知断点更新操作,例如设置断点、取消断点等。可选地,为了获得断点信息,调度器还可以进一步将调度器的断点查询接口 (breakpoint query interface)的地址赋给需要调试的待模拟的处理器的断点查询接口指针,以使得需要调试的待模拟的处理器利用断点查询接口指针,调用调度器,以获得断点信息,例如断点起始地址、断点终止地址、断点触发属性等。相应地,为了触发调度器停止调用需要调试的待模拟的处理器,调度器还可以进一步将调度器的断点触发接口(breakpoint trigger interface)的地址赋给需要调试的待模拟的处理器的断点触发接口指针,以使得需要调试的待模拟的处理器利用断点触发接口指针,调用调度器,以触发调度器停止调用需要调试的待模拟的处理器。例如需要调试的待模拟的处理器获得断点信息之后,在每个运行周期中,还可以进一步检查当前的运行状态是否符合断点信息所对应的条件,如果不符合,需要调试的待模拟的处理器则继续运行下一个周期;如果符合,需要调试的待模拟的处理器则利用断点触发接口指针,调用调度
ο可选地,上述101 103的执行主体调度器还可以为一个独立设置的控制单元。相应地,调度器可以将需要调试的待模拟的处理器的调试接口的地址赋给该调度器的调试接口指针,并将该调度器的调试接口指针赋给SMICS模拟器的调试接口指针。具体地,可以包括但不限于下列情况中的至少一项调度器将需要调试的待模拟的处理器的单步运行接口的地址赋给该调度器的单步运行接口指针,并将该调度器的单步运行接口指针赋给SIMICS模拟器的单步运行接口指针;调度器将需要调试的待模拟的处理器的状态查询接口的地址赋给该调度器的状态查询接口指针,并将该调度器的状态查询接口指针赋给SIMICS模拟器的状态查询接口指针;调度器将需要调试的待模拟的处理器的状态设置接口的地址赋给该调度器的状态设置接口指针,并将该调度器的状态设置接口指针赋给SIMICS模拟器的状态设置接口指针。可选地,为了将操作者所设置的断点更新操作通知给需要调试的待模拟的处理器,调度器还可以进一步将需要调试的待模拟的处理器的断点控制接口的地址赋给该调度器的断点控制接口指针,并将该调度器的断点控制接口指针赋给SIMICS模拟器的断点控制接口指针,以使得SIMICS模拟器利用断点控制接口指针,调用需要调试的待模拟的处理器,以通知断点更新操作,例如设置断点、取消断点等。可选地,为了获得断点信息,调度器还可以进一步将SIMICS模拟器的断点查询接口的地址赋给调度器的断点查询接口指针,以使得调度器利用断点查询接口指针,调用 SIMICS模拟器,以获得断点信息,例如断点起始地址、断点终止地址、断点触发属性等。相应地,为了触发调度器停止调用需要调试的待模拟的处理器,调度器还可以进一步将SIMICS模拟器的断点触发接口的地址赋给调度器的断点触发接口指针,以使得调度器利用断点触发接口指针,调用SIMICS模拟器,以触发调度器停止调用需要调试的待模拟的处理器。例如调度器获得断点信息之后,在每个运行周期中,还可以进一步检查需要调试的待模拟的处理器当前的运行状态是否符合断点信息所对应的条件,如果不符合,需要调试的待模拟的处理器则继续运行下一个周期;如果符合,调度器则利用断点触发接口指针,调用SIMICS模拟器。可选地,为了获得断点信息,调度器还可以进一步将SIMICS模拟器的断点查询接口的地址赋给调度器的断点查询接口指针,并将调度器的断点查询接口指针赋给需要调试的待模拟的处理器的断点查询接口指针,以使得需要调试的待模拟的处理器利用断点查询接口指针,调用SIMICS模拟器,以获得断点信息,例如断点起始地址、断点终止地址、断点触发属性等。相应地,为了触发调度器停止调用需要调试的待模拟的处理器,调度器还可以进一步将SIMICS模拟器的断点触发接口的地址赋给调度器的断点触发接口指针,并将调度器的断点触发接口指针赋给需要调试的待模拟的处理器的断点触发接口指针,以使得需要调试的待模拟的处理器利用断点触发接口指针,调用SIMICS模拟器,以触发SIMICS模拟器停止调用需要调试的待模拟的处理器。例如需要调试的待模拟的处理器获得断点信息之后,在每个运行周期中,还可以进一步检查当前的运行状态是否符合断点信息所对应的条件,如果不符合,需要调试的待模拟的处理器则继续运行下一个周期;如果符合,需要调试的待模拟的处理器则利用断点触发接口指针,调用SIMICS模拟器。进一步地,调度器还可以进一步向SIMICS模拟器中的调度单元注册对应的第二运行接口,以使上述调度单元通过上述第二运行接口调度上述调度器利用主线程创建至少一个从线程。相应地,调度器还可以进一步向上述SIMICS模拟器中的调度单元注册对应的第二周期接口,以使上述调度单元利用上述主线程,通过上述第二周期接口向上述调度器下发周期参数,以使上述调度器利用上述主线程和上述至少一个从线程,通过第一周期接口向上述确定的对应的待模拟的处理器下发上述周期参数,以控制上述调度器利用上述主线程和上述至少一个从线程同步调用对应的待模拟的处理器,上述第一周期接口通过上述确定的对应的待模拟的处理器向上述调度器注册。本实施例中,通过调度器利用主线程创建至少一个从线程,并确定上述主线程和上述至少一个从线程对应的待模拟的处理器,使得调度器能够利用上述主线程和上述至少一个从线程,通过上述确定的对应的待模拟的处理器向上述调度器注册的第一运行接口, 调用上述确定的对应的待模拟的处理器执行相应的指令,由于每次能够利用主线程和至少一个从线程调度待模拟的处理器,所以能够实现并行模拟多个处理器,避免了现有技术中由于每次调度一个待模拟的处理器而导致的无法实现并行模拟多个处理器的问题,从而提高了模拟效率;同时能够充分利用调度器所在宿主机的处理器资源,从而提高了资源利用效率。另外,通过调度器将需要调试的待模拟的处理器的调试接口信息映射到该调度器上, 使得调度器能够利用主线程,通过该调试接口信息指向的需要调试的待模拟的处理器的调试接口调试该需要调试的待模拟的处理器,实现了并行模拟多个处理器时的调试。为使得本发明实施例提供的方法更加清楚,下面将以101 103的执行主体调度器为一个独立设置的控制(Controller)单元作为举例。图2为本发明另一实施例提供的并行模拟多个处理器的方法的流程示意图,本实施例所适用的系统架构可以如图3所示。如图2所示,本实施例的并行模拟多个处理器的方法可以包括201、控制单元创建一个调试对象,该调试对象的数据结构与待模拟的处理器的数据结构一致,并将需要调试的待模拟的处理器的调试接口的地址赋给该控制单元创建的调试对象的调试接口指针,以及将该控制单元创建的调试对象的调试接口指针赋给SIMICS 模拟器的调试接口指针;其中,调试接口可以包括但不限于单步运行接口、状态查询接口和状态设置接口中的至少一项。可选地,控制单元还可以进一步将需要调试的待模拟的处理器的断点控制接口的地址赋给该调度器的断点控制接口指针,并将该调度器的断点控制接口指针赋给SIMICS 模拟器的断点控制接口指针,以使得SIMICS模拟器利用断点控制接口指针,调用需要调试的待模拟的处理器,以通知断点更新操作,例如设置断点、取消断点等。可选地,控制单元还可以进一步将SIMICS模拟器的断点查询接口的地址赋给控制单元的断点查询接口指针,并将控制单元的断点查询接口指针赋给需要调试的待模拟的处理器的断点查询接口指针,以使得需要调试的待模拟的处理器利用断点查询接口指针, 调用SIMICS模拟器,以获得断点信息,例如断点起始地址、断点终止地址、断点触发属性等。相应地,控制单元还可以进一步将SIMICS模拟器的断点触发接口的地址赋给控制单元的断点触发接口指针,并将控制单元的断点触发接口指针赋给需要调试的待模拟的处理器的断点触发接口指针,以使得需要调试的待模拟的处理器利用断点触发接口指针, 调用SIMICS模拟器,以触发SIMICS模拟器停止调用需要调试的待模拟的处理器。例如需要调试的待模拟的处理器获得断点信息之后,在每个运行周期中,还可以进一步检查当前的运行状态是否符合断点信息所对应的条件,如果不符合,需要调试的待模拟的处理器则继续运行下一个周期;如果符合,需要调试的待模拟的处理器则利用断点触发接口指针,调用SIMICS模拟器。202、控制单元向SIMICS模拟器中的调度单元注册该控制单元对应的运行接口和周期接口 ;203、待模拟的处理器向控制单元注册该待模拟的处理器对应的运行接口和周期接口 ;204、控制单元根据配置文件,利用主线程创建至少一个从线程,并确定上述主线程和上述至少一个从线程对应的待模拟的处理器,以及在所在宿主机上为待模拟的处理器申请内存;例如主线程对应待模拟的处理器0和待模拟的处理器6,其中,待模拟的处理器0 为需要调试的待模拟的处理器,即可以记为需要调试的待模拟的处理器0 ;从线程1对应待模拟的处理器1和待模拟的处理器3 ;从线程2对应待模拟的处理器2和待模拟的处理器4 ;从线程3对应待模拟的处理器5和待模拟的处理器7。可选地,控制单元可以在所在宿主机上为待模拟的处理器申请同一个内存,用以实现模拟多个待模拟的处理器共同访问同一内存,或者还可以在所在宿主机上为待模拟的处理器申请不同内存,用以实现模拟多个待模拟的处理器访问不同内存。
205、调度单元利用主线程,调用控制单元注册的运行接口 ;206、控制单元利用主线程和创建的至少一个从线程,调用待模拟的处理器注册的运行接口,以调用对应的待模拟的处理器执行相应的指令;例如控制单元利用主线程,调用需要调试的待模拟的处理器0注册的运行接口, 再调用待模拟的处理器6注册的运行接口;控制单元利用从线程1,调用待模拟的处理器1注册的运行接口,再调用待模拟的处理器3注册的运行接口;控制单元利用从线程2,调用待模拟的处理器2注册的运行接口,再调用待模拟的处理器4注册的运行接口;控制单元利用从线程3,调用待模拟的处理器5注册的运行接口,再调用待模拟的处理器7注册的运行接口。207、如果控制单元在206中所调用的是需要调试的待模拟的处理器,该需要调试的待模拟的处理器检查当前的运行状态是否符合断点信息所对应的条件,如果不符合,需要调试的待模拟的处理器则继续运行下一个周期;如果符合,需要调试的待模拟的处理器则利用断点触发接口指针,调用SIMICS模拟器,以触发SIMICS模拟器停止调用需要调试的待模拟的处理器;如果控制单元在206中所调用的不是需要调试的待模拟的处理器,结束流程。208、SIMICS模拟器的调度单元根据操作者的单步执行指令,利用单步运行接口指针、状态查询指针和状态设置指针中的至少一个,调用控制单元;209、控制单元利用上述主线程,利用对应的接口指针,调试该需要调试的待模拟的处理器。例如操作者通过SIMICS模拟器的调度单元设置断点后,SIMICS模拟器则可以利用断点控制接口指针,调用需要调试的待模拟的处理器,以通知断点设置操作。相应地, 需要调试的待模拟的处理器则利用断点查询接口指针,调用SIMICS模拟器,以获得断点信息,例如断点起始地址、断点终止地址、断点触发属性等。需要调试的待模拟的处理器获得断点信息之后,在每个运行周期中,检查当前的运行状态是否符合断点信息所对应的条件, 如果不符合,需要调试的待模拟的处理器则继续运行下一个周期;如果符合,需要调试的待模拟的处理器则利用断点触发接口指针,调用SIMICS模拟器,以触发SIMICS模拟器停止调用需要调试的待模拟的处理器。然后,SIMICS模拟器的调度单元根据操作者的单步执行指令,利用单步运行接口指针、状态查询指针和状态设置指针中的至少一个,调试该需要调试的待模拟的处理器。可选地,在205中,调度单元还可以进一步利用主线程,调用控制单元注册的周期接口,以向控制单元下发周期参数(例如处理器切换时间(cpu-switch-time)参数,用于指示执行指令的指定条数等),以使该控制单元进一步利用主线程和创建的至少一个从线程,调用待模拟的处理器注册的周期接口,以向待模拟的处理器下发时间推进的目标值,用以控制上述主线程和上述至少一个从线程调用对应的待模拟的处理器的同步,例如从线程上的待模拟的处理器执行完指定条数的指令之后通知主线程上的控制单元,并进入睡眠状态;主线程上的控制单元接收到全部的从线程上的待模拟的处理器的通知之后,退出运行接口,等待重新执行205。
本实施例中,通过控制单元被SIMICS模拟器中的调度单元调用之后利用主线程创建至少一个从线程,并确定上述主线程和上述至少一个从线程对应的待模拟的处理器, 使得控制单元能够利用上述主线程和上述至少一个从线程,通过待模拟的处理器向上述控制单元注册的第一运行接口,调用上述确定的对应的待模拟的处理器执行相应的指令,由于每次能够利用主线程和至少一个从线程调度待模拟的处理器,所以能够实现并行模拟多个处理器,避免了现有技术中由于每次调度一个待模拟的处理器而导致的无法实现并行模拟多个处理器的问题,从而提高了模拟效率;同时能够充分利用调度器所在宿主机的处理器资源,从而提高了资源利用效率。另外,通过控制单元将需要调试的待模拟的处理器的调试接口信息映射到该控制单元创建的调试对象上,使得控制单元能够利用主线程,通过该调试接口信息指向的需要调试的待模拟的处理器的调试接口调试该需要调试的待模拟的处理器,实现了并行模拟多个处理器时的调试。需要说明的是对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。图4为本发明另一实施例提供的调度器的结构示意图,如图4所示,本实施例的调度器可以包括映射单元41、创建单元42和调用单元43。其中,映射单元41用于将需要调试的待模拟的处理器的调试接口信息映射到该调度器上;创建单元42用于利用主线程创建至少一个从线程,并确定上述主线程和上述至少一个从线程对应的待模拟的处理器,得到确定的对应的待模拟的处理器,其中,上述主线程对应的待模拟的处理器包括上述需要调试的待模拟的处理器;调用单元43用于利用上述主线程和上述创建单元创建的上述至少一个从线程,通过第一运行接口调用上述创建单元确定的对应的待模拟的处理器执行相应的指令,并利用上述主线程,通过上述需要调试的待模拟的处理器的调试接口调试该需要调试的待模拟的处理器。其中,上述第一运行接口通过上述确定的对应的待模拟的处理器向上述调度器注册,上述映射单元映射的调试接口信息指向上述调试接口。上述图1对应的实施例中调度器的功能可以由本实施例提供的调度器实现。可选地,本实施例中的调用单元43调用上述创建单元确定的对应的待模拟的处理器执行相应的指令可以包括但不限于下列指令中的至少一个访问内存的指令,用于访问同一内存或不同内存的指令;访问外设的指令,用于访问同一外设或不同外设的指令。可选地,本实施例中的调用单元43调用上述创建单元确定的对应的待模拟的处理器执行相应的指令还可以为原子指令,则调用单元43具体可以利用互斥锁操作,调用上述创建单元确定的对应的待模拟的处理器执行相应的指令。可选地,调用单元43还可以进一步利用上述主线程和上述至少一个从线程,通过第一周期接口(cycle interface)向上述确定的对应的待模拟的处理器下发周期参数,以控制上述调度器利用上述主线程和上述至少一个从线程同步调用对应的待模拟的处理器,从而保证了待模拟的处理器之间的调度一致。其中,上述第一周期接口通过上述确定的对应的待模拟的处理器向上述调度器注册。可选地,本实施例提供的调度器可以为SIMICS模拟器中的调度单元。相应地,本实施例中的映射单元41具体可以将需要调试的待模拟的处理器的调试接口的地址赋给该调度器的调试接口指针。例如如图5所示,映射单元41可以包括但不限于下列子单元中的至少一个第一映射子单元51,用于将需要调试的待模拟的处理器的单步运行接口的地址赋给上述调度器的单步运行接口指针;第二映射子单元52,用于将需要调试的待模拟的处理器的状态查询接口的地址赋给上述调度器的状态查询接口指针;第三映射子单元53,用于将需要调试的待模拟的处理器的状态设置接口的地址赋给上述调度器的状态设置接口指针。需要指出的是,图5中仅示出了同时包括第一映射子单元51、第二映射子单元52 和第三映射子单元53的情况,在可选的实施例中,也可以仅包括上述三个子单元中的任意一个和两个。可选地,如图6所示,本实施例中的映射单元41还可以进一步包括第四映射子单元61,用于将需要调试的待模拟的处理器的断点控制接口的地址赋给所述调度器的断点控制接口指针。可选地,本实施例中的映射单元41还可以进一步用于将所述调度器的断点查询接口的地址赋给需要调试的待模拟的处理器的断点查询接口指针;以及将所述调度器的断点触发接口的地址赋给需要调试的待模拟的处理器的断点触发接口指针。可选地,本实施例提供的调度器还可以为一个独立设置的控制单元。相应地,本实施例中的映射单元41具体可以将需要调试的待模拟的处理器的调试接口的地址赋给该调度器的调试接口指针,并将该调度器的调试接口指针赋给SIMICS模拟器的调试接口指针。 例如如图7所示,映射单元41可以包括但不限于下列子单元中的至少一个第五映射子单元71,用于将需要调试的待模拟的处理器的单步运行接口的地址赋给上述调度器的单步运行接口指针,并将该调度器的单步运行接口指针赋给SIMICS模拟器的单步运行接口指针;第六映射子单元72,用于将需要调试的待模拟的处理器的状态查询接口的地址赋给上述调度器的状态查询接口指针,并将该调度器的状态查询接口指针赋给SIMICS模拟器的状态查询接口指针;第七映射子单元73,用于将需要调试的待模拟的处理器的状态设置接口的地址赋给上述调度器的状态设置接口指针,并将该调度器的状态设置接口指针赋给SIMICS模拟器的状态设置接口指针。需要指出的是,图7中仅示出了同时包括第五映射子单元71、第六映射子单元72 和第七映射子单元73的情况,在可选的实施例中,也可以仅包括上述三个子单元中的任意一个和两个。可选地,如图8所示,本实施例中的映射单元41还可以进一步包括第八映射子单元81,用于将需要调试的待模拟的处理器的断点控制接口的地址赋给所述调度器的断点控制接口指针,并将该调度器的断点控制接口指针赋给SIMICS模拟器的断点控制接口指针。可选地,本实施例中的映射单元41还可以进一步将SIMICS模拟器的断点查询接口的地址赋给所述调度器的断点查询接口指针;以及将SIMICS模拟器的断点触发接口的地址赋给所述调度器的断点触发接口指针,以使得调度器检查需要调试的待模拟的处理器的运行状态是否符合断点信息所对应的条件。可选地,本实施例中的映射单元41还可以进一步将所述调度器的断点查询接口指针赋给需要调试的待模拟的处理器的断点查询接口指针;以及将所述调度器的断点触发接口指针赋给该调度器的断点触发接口指针,以使得需要调试的待模拟的处理器检查自身的运行状态是否符合断点信息所对应的条件。进一步地,如图9所示,本实施例提供的调度器还可以进一步包括注册单元91,用于向SIMICS模拟器中的调度单元注册对应的第二运行接口,以使上述调度单元通过上述第二运行接口调度上述调度器利用主线程创建至少一个从线程。相应地,注册单元91还可以进一步向上述SIMICS模拟器中的调度单元注册对应的第二周期接口,以使上述调度单元利用上述主线程,通过上述第二周期接口向上述调度器下发周期参数,以使上述调用单元利用上述主线程和上述至少一个从线程,通过第一周期接口向上述确定的对应的待模拟的处理器下发上述周期参数,以控制上述调用单元利用上述主线程和上述至少一个从线程同步调用对应的待模拟的处理器。其中,上述第一周期接口通过上述确定的对应的待模拟的处理器向上述调度器注册。本实施例中,调度器通过创建单元利用主线程创建至少一个从线程,并确定上述主线程和上述至少一个从线程对应的待模拟的处理器,使得调用单元能够利用上述主线程和上述至少一个从线程,通过上述创建单元确定的对应的待模拟的处理器向上述调度器注册的第一运行接口,调用上述创建单元确定的对应的待模拟的处理器执行相应的指令,由于每次能够利用主线程和至少一个从线程调度待模拟的处理器,所以能够实现并行模拟多个处理器,避免了现有技术中由于每次调度一个待模拟的处理器而导致的无法实现并行模拟多个处理器的问题,从而提高了模拟效率;同时能够充分利用调度器所在宿主机的处理器资源,从而提高了资源利用效率。另外,通过映射单元将需要调试的待模拟的处理器的调试接口信息映射到该控制单元创建的调试对象上,使得调用单元能够利用主线程,通过该调试接口信息指向的需要调试的待模拟的处理器的调试接口调试该需要调试的待模拟的处理器,实现了并行模拟多个处理器时的调试。图10为本发明另一实施例提供的并行模拟多个处理器的系统的结构示意图,如图10所示,本实施例的并行模拟多个处理器的系统可以包括待模拟的处理器1001和调度器1002。其中,调度器可以为图4、图5、图6、图7、图8和图9对应的实施例中任一实施例提供的调度器,详细描述可以参见对应实施例中的相关内容,此处不再赘述。本实施例中,通过调度器利用主线程创建至少一个从线程,并确定上述主线程和上述至少一个从线程对应的待模拟的处理器,使得调度器能够利用上述主线程和上述至少一个从线程,通过上述调度器确定的对应的待模拟的处理器向上述调度器注册的第一运行接口,调用上述调度器确定的对应的待模拟的处理器执行相应的指令,由于每次能够利用主线程和至少一个从线程调度待模拟的处理器,所以能够实现并行模拟多个处理器,避免了现有技术中由于每次调度一个待模拟的处理器而导致的无法实现并行模拟多个处理器的问题,从而提高了模拟效率;同时能够充分利用调度器所在宿主机的处理器资源,从而提高了资源利用效率。另外,通过调度器将需要调试的待模拟的处理器的调试接口信息映射到该调度器上,使得调度器能够利用主线程,通过该调试接口信息指向的需要调试的待模拟的处理器的调试接口调试该需要调试的待模拟的处理器,实现了并行模拟多个处理器时的调试。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统, 装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括U盘、移动硬盘、只读存储器(Read-only Memory,简称 ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
权利要求
1.一种并行模拟多个处理器的方法,其特征在于,包括调度器将需要调试的待模拟的处理器的调试接口信息映射到所述调度器上;所述调度器利用主线程创建至少一个从线程,并确定所述主线程和所述至少一个从线程对应的待模拟的处理器,得到确定的对应的待模拟的处理器,其中,所述主线程对应的待模拟的处理器包括所述需要调试的待模拟的处理器;所述调度器利用所述主线程和所述至少一个从线程,通过第一运行接口调用所述确定的对应的待模拟的处理器执行相应的指令,并利用所述主线程,通过所述需要调试的待模拟的处理器的调试接口调试所述需要调试的待模拟的处理器,所述第一运行接口通过所述确定的对应的待模拟的处理器向所述调度器注册,所述调试接口信息指向所述调试接口。
2.根据权利要求1所述的方法,其特征在于,所述指令包括下列指令中的至少一个访问内存的指令,用于访问同一内存或不同内存的指令;访问外设的指令,用于访问同一外设或不同外设的指令。
3.根据权利要求1所述的方法,其特征在于,所述指令为原子指令,所述调度器调用所述确定的对应的待模拟的处理器执行相应的指令,包括所述调度器利用互斥锁操作,调用所述确定的对应的待模拟的处理器执行相应的指令。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括所述调度器利用利用所述主线程和所述至少一个从线程,通过第一周期接口向所述确定的对应的待模拟的处理器下发周期参数,以控制所述调度器利用所述主线程和所述至少一个从线程同步调用所述确定的对应的待模拟的处理器,所述第一周期接口通过所述确定的对应的待模拟的处理器向所述调度器注册。
5.根据权利要求1至4任一权利要求所述的方法,其特征在于,所述调度器为SIMICS 模拟器中的调度单元。
6.根据权利要求5所述的方法,其特征在于,所述调度器将需要调试的待模拟的处理器的调试接口信息映射到所述调度器上,包括下列情况中的至少一项所述调度器将需要调试的待模拟的处理器的单步运行接口的地址赋给所述调度器的单步运行接口指针;所述调度器将需要调试的待模拟的处理器的状态查询接口的地址赋给所述调度器的状态查询接口指针;所述调度器将需要调试的待模拟的处理器的状态设置接口的地址赋给所述调度器的状态设置接口指针。
7.根据权利要求6所述的方法,其特征在于,所述调度器将需要调试的待模拟的处理器的调试接口信息映射到所述调度器上,进一步包括所述调度器将需要调试的待模拟的处理器的断点控制接口的地址赋给所述调度器的断点控制接口指针。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括所述调度器将所述调度器的断点查询接口的地址赋给需要调试的待模拟的处理器的断点查询接口指针;以及所述调度器将所述调度器的断点触发接口的地址赋给需要调试的待模拟的处理器的断点触发接口指针。
9.根据权利要求1至4任一权利要求所述的方法,其特征在于,所述调度器将需要调试的待模拟的处理器的调试接口信息映射到所述调度器上,包括下列情况中的至少一项所述调度器将需要调试的待模拟的处理器的单步运行接口的地址赋给所述调度器的单步运行接口指针,并将所述调度器的单步运行接口指针赋给SIMICS模拟器的单步运行接口指针;所述调度器将需要调试的待模拟的处理器的状态查询接口的地址赋给所述调度器的状态查询接口指针,并将所述调度器的状态查询接口指针赋给SIMICS模拟器的状态查询接口指针;所述调度器将需要调试的待模拟的处理器的状态设置接口的地址赋给所述调度器的状态设置接口指针,并将所述调度器的状态设置接口指针赋给SIMICS模拟器的状态设置接口指针。
10.根据权利要求9所述的方法,其特征在于,所述调度器将需要调试的待模拟的处理器的调试接口信息映射到所述调度器上,进一步包括所述调度器将需要调试的待模拟的处理器的断点控制接口的地址赋给所述调度器的断点控制接口指针,并将所述调度器的断点控制接口指针赋给SIMICS模拟器的断点控制接口指针。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括所述调度器将SIMICS模拟器的断点查询接口的地址赋给所述调度器的断点查询接口指针;以及所述调度器将SIMICS模拟器的断点触发接口的地址赋给所述调度器的断点触发接口指针。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括所述调度器将所述调度器的断点查询接口指针赋给需要调试的待模拟的处理器的断点查询接口指针;以及所述调度器将所述调度器的断点触发接口指针赋给所述调度器的断点触发接口指针。
13.根据权利要求1至4任一权利要求所述的方法,其特征在于,所述方法还包括所述调度器向SIMICS模拟器中的调度单元注册对应的第二运行接口,以使所述调度单元通过所述第二运行接口调度所述调度器利用主线程创建至少一个从线程。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括所述调度器向所述SIMICS模拟器中的调度单元注册对应的第二周期接口,以使所述调度单元利用所述主线程,通过所述第二周期接口向所述调度器下发周期参数,以使所述调度器利用所述主线程和所述至少一个从线程,通过第一周期接口向所述确定的对应的待模拟的处理器下发所述周期参数,以控制所述调度器利用所述主线程和所述至少一个从线程同步调用所述确定的对应的待模拟的处理器,所述第一周期接口通过所述确定的对应的待模拟的处理器向所述调度器注册。
15.根据权利要求1至4任一权利要求所述的方法,其特征在于,所述方法还包括所述调度器获得断点信息,用以当所述需要调试的待模拟的处理器的运行状态满足所述断点信息时,触发所述调度器利用所述主线程,通过所述需要调试的待模拟的处理器的调试接口调试所述需要调试的待模拟的处理器;或者所述需要调试的待模拟的处理器获得断点信息,用以当所述需要调试的待模拟的处理器的运行状态满足所述断点信息时,触发所述调度器利用所述主线程,通过所述需要调试的待模拟的处理器的调试接口调试所述需要调试的待模拟的处理器。
16.一种调度器,其特征在于,包括映射单元,用于将需要调试的待模拟的处理器的调试接口信息映射到所述调度器上;创建单元,用于利用主线程创建至少一个从线程,并确定所述主线程和所述至少一个从线程对应的待模拟的处理器,得到确定的对应的待模拟的处理器,其中,所述主线程对应的待模拟的处理器包括所述需要调试的待模拟的处理器;调用单元,用于利用所述主线程和所述创建单元创建的所述至少一个从线程,通过第一运行接口调用所述创建单元确定的对应的待模拟的处理器执行相应的指令,并利用所述主线程,通过所述需要调试的待模拟的处理器的调试接口调试所述需要调试的待模拟的处理器,所述第一运行接口通过所述确定的对应的待模拟的处理器向所述调度器注册,所述映射单元映射的调试接口信息指向所述调试接口。
17.根据权利要求16所述的调度器,其特征在于,所述调用单元调用所述创建单元确定的对应的待模拟的处理器执行相应的指令包括下列指令中的至少一个访问内存的指令,用于访问同一内存或不同内存的指令;访问外设的指令,用于访问同一外设或不同外设的指令。
18.根据权利要求16所述的调度器,其特征在于,所述调用单元调用所述创建单元确定的对应的待模拟的处理器执行相应的指令为原子指令,所述调用单元具体用于利用互斥锁操作,调用所述创建单元确定的对应的待模拟的处理器执行相应的指令。
19.根据权利要求16所述的调度器,其特征在于,所述调用单元还用于利用所述主线程和所述至少一个从线程,通过第一周期接口向所述确定的对应的待模拟的处理器下发周期参数,以控制所述调度器利用所述主线程和所述至少一个从线程同步调用所述确定的对应的待模拟的处理器,所述第一周期接口通过所述确定的对应的待模拟的处理器向所述调度器注册。
20.根据权利要求16至19任一权利要求所述的调度器,其特征在于,所述调度器为 SIMICS模拟器中的调度单元。
21.根据权利要求20所述的调度器,其特征在于,所述映射单元包括下列子单元中的至少一个第一映射子单元,用于将需要调试的待模拟的处理器的单步运行接口的地址赋给所述调度器的单步运行接口指针;第二映射子单元,用于将需要调试的待模拟的处理器的状态查询接口的地址赋给所述调度器的状态查询接口指针;第三映射子单元,用于将需要调试的待模拟的处理器的状态设置接口的地址赋给所述调度器的状态设置接口指针。
22.根据权利要求21所述的调度器,其特征在于,所述映射单元还包括第四映射子单元,用于将需要调试的待模拟的处理器的断点控制接口的地址赋给所述调度器的断点控制接口指针。
23.根据权利要求22所述的调度器,其特征在于,所述映射单元还用于将所述调度器的断点查询接口的地址赋给需要调试的待模拟的处理器的断点查询接口指针;以及将所述调度器的断点触发接口的地址赋给需要调试的待模拟的处理器的断点触发接口指针。
24.根据权利要求16至19任一权利要求所述的调度器,其特征在于,所述映射单元包括下列子单元中的至少一个第五映射子单元,用于将需要调试的待模拟的处理器的单步运行接口的地址赋给所述调度器的单步运行接口指针,并将所述调度器的单步运行接口指针赋给SIMICS模拟器的单步运行接口指针;第六映射子单元,用于将需要调试的待模拟的处理器的状态查询接口的地址赋给所述调度器的状态查询接口指针,并将所述调度器的状态查询接口指针赋给SIMICS模拟器的状态查询接口指针;第七映射子单元,用于将需要调试的待模拟的处理器的状态设置接口的地址赋给所述调度器的状态设置接口指针,并将所述调度器的状态设置接口指针赋给SIMICS模拟器的状态设置接口指针。
25.根据权利要求24所述的调度器,其特征在于,所述映射单元还包括第八映射子单元,用于将需要调试的待模拟的处理器的断点控制接口的地址赋给所述调度器的断点控制接口指针,并将所述调度器的断点控制接口指针赋给SIMICS模拟器的断点控制接口指针。
26.根据权利要求25所述的调度器,其特征在于,所述映射单元还用于将SIMICS模拟器的断点查询接口的地址赋给所述调度器的断点查询接口指针;以及将SIMICS模拟器的断点触发接口的地址赋给所述调度器的断点触发接口指针。
27.根据权利要求26所述的调度器,其特征在于,所述映射单元还用于将所述调度器的断点查询接口指针赋给需要调试的待模拟的处理器的断点查询接口指针;以及将所述调度器的断点触发接口指针赋给所述调度器的断点触发接口指针。
28.根据权利要求16至19任一权利要求所述的调度器,其特征在于,所述调度器还包括注册单元,用于向SIMICS模拟器中的调度单元注册对应的第二运行接口,以使所述调度单元通过所述第二运行接口调度所述调度器利用主线程创建至少一个从线程。
29.根据权利要求28所述的调度器,其特征在于,所述注册单元还用于向所述SIMICS模拟器中的调度单元注册对应的第二周期接口,以使所述调度单元利用所述主线程,通过所述第二周期接口向所述调度器下发周期参数,以使所述调用单元利用所述主线程和所述至少一个从线程,通过第一周期接口向所述确定的对应的待模拟的处理器下发所述周期参数,以控制所述调度器利用所述主线程和所述至少一个从线程同步调用所述确定的对应的待模拟的处理器,所述第一周期接口通过所述确定的对应的待模拟的处理器向所述调度器注册。
30.根据权利要求16至19任一权利要求所述的调度器,其特征在于,调用单元还用于获得断点信息,用以当所述需要调试的待模拟的处理器的运行状态满足所述断点信息时,触发所述调度器利用所述主线程,通过所述需要调试的待模拟的处理器的调试接口调试所述需要调试的待模拟的处理器;或者
31. 一种并行模拟多个处理器的系统,包括待模拟的处理器,其特征在于,还包括权利要求16 30任一权利要求所述的调度器。
全文摘要
本发明提供一种并行模拟多个处理器的方法及系统、调度器,本实施例能够实现在并行模拟多个处理器中,通过调度器将需要调试的待模拟的处理器的调试接口信息映射到该调度器上,使得调度器能够利用主线程,通过该调试接口信息指向的需要调试的待模拟的处理器的调试接口调试该需要调试的待模拟的处理器,实现了并行模拟多个处理器时的调试。
文档编号G06F11/26GK102331961SQ201110269208
公开日2012年1月25日 申请日期2011年9月13日 优先权日2011年9月13日
发明者叶寒栋, 叶笑春, 曹炯, 王达 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1