处理分割装置、模拟器系统、处理分割方法和处理分割程序与流程

文档序号:18888358发布日期:2019-10-15 21:18阅读:108来源:国知局
处理分割装置、模拟器系统、处理分割方法和处理分割程序与流程

本发明涉及对目标系统的动作进行模拟的模拟技术。



背景技术:

存在连接命令集模拟(以后记述为cpu命令模拟)和io模拟而在计算机中进行目标系统的动作模拟的模拟技术。

cpu命令模拟是具有iss(instructionsetsimulator)命令执行部且对命令的处理动作和程序计数器进行模拟的块。io模拟是对目标系统的io(inputoutput)的动作进行模拟的块。目标系统的io是指来自输入装置或网络的输入和针对显示装置或网络的输出。

使用该模拟技术的模拟器能够实现与目标系统相同的周期处理。此外,使用该模拟技术的模拟器通过执行从外部取得的处理,能够与在目标系统中执行处理的情况同样地执行处理,能够输出运算结果。作为具体例,模拟器通过从外部取得加工程序并执行,能够与在目标系统中执行加工程序的情况同样地执行加工程序,能够输出相同的运算结果。

在使模拟器执行大量处理的情况下,输出运算结果花费时间。因此,使用如下的模拟器系统:在使模拟器执行大量处理的情况下,将大量处理分割成多个分割处理,对多个协作模拟器分别分配各分割处理,并行地执行模拟。由此,在模拟器系统中,并行地执行大量处理,因此,能够高速输出运算结果。

存在使用云系统的模拟器系统的实现方法(参照专利文献1)。云系统向用户提供使用硬件资源和软件资源的服务。在云系统中,能够同时启动多个虚拟机。在云系统中启动多个虚拟机,在各虚拟机中并行地执行模拟,由此能够并行地执行模拟。

现有技术文献

专利文献

专利文献1:日本特开2016-103179号公报



技术实现要素:

发明要解决的课题

在云系统中启动多个虚拟机而在各虚拟机中并行地执行模拟的情况下,有时由各虚拟机执行的模拟的处理时间产生偏差。当由各虚拟机执行的模拟的处理时间产生偏差时,整体的处理与处理时间较慢的虚拟机的处理时间相吻合,模拟整体的处理时间也变慢。

在云系统中,有时多个服务同时工作,多个用户共享1个计算机资源进行使用。因此,在云系统中,性能没有保障,实际的性能根据获得计算机资源的时机等而不同。由于该原因,处理时间产生偏差。

本发明的目的在于,抑制模拟器系统的性能降低。

用于解决课题的手段

本发明的处理分割装置具有:权重计算部,其从多个模拟器分别取得性能测定结果,根据所取得的所述性能测定结果计算针对各模拟器的权重;以及分割部,其对对象处理进行分割而生成分配给所述各模拟器的分割处理,使得分配给所述各模拟器的分割处理的处理量成为与针对所述各模拟器的所述权重对应的处理量。

发明效果

在本发明中,逐次取得性能测定结果,根据性能测定结果计算针对各模拟器的权重。然后,对对象处理进行分割而生成分配给各模拟器的分割处理,使得成为与针对各模拟器的权重对应的处理量。由此,动态地对各模拟器分配与性能测定结果对应的处理量的分割处理。其结果是,能够抑制由于一部分模拟器而使模拟整体的处理时间变慢。

附图说明

图1是实施方式1的模拟器系统100进行动作的云系统200的结构图。

图2是实施方式1的物理机300的硬件结构图。

图3是实施方式1的虚拟机400的硬件结构图。

图4是实施方式1的目标机500的硬件结构图。

图5是模拟器系统100的结构图。

图6是示出实施方式1的模拟器系统100的整体动作的流程图。

图7是实施方式1的性能调整参数32的说明图。

图8是示出实施方式1的模拟器20的动作的流程图。

图9是示出实施方式1的性能监视器26的动作的流程图。

图10是实施方式1的性能测定结果33和权重34的说明图。

图11是示出实施方式1的处理分割装置10的动作的流程图。

具体实施方式

实施方式1

***结构的说明***

参照图1说明实施方式1的模拟器系统100进行动作的云系统200的结构。

云系统200具有负载均衡器210、网络服务器220、管理服务器230、处理分割用虚拟机240、多个模拟器用虚拟机250、数据库服务器260。

负载均衡器210、网络服务器220、管理服务器230、处理分割用虚拟机240、各模拟器用虚拟机250、数据库服务器260经由网络270连接。

负载均衡器210是将用户上传的数据和请求经由网络270分配给网络服务器220、管理服务器230、处理分割用虚拟机240、各模拟器用虚拟机250的装置。

网络服务器220是用于向用户输出运算结果的虚拟机。

管理服务器230是经由网络270控制云系统200的虚拟机。

处理分割用虚拟机240是实现处理分割装置10的虚拟机。

模拟器用虚拟机250是实现模拟器20的虚拟机。

数据库服务器260是存储由处理分割装置10和模拟器20输出的数据的存储装置。

参照图2说明实施方式1的网络服务器220、管理服务器230、处理分割用虚拟机240、多个模拟器用虚拟机250进行动作的物理机300的硬件结构。

物理机300具有通信接口310、hdd320(harddiskdrive)、cpu330(centralprocessingunit)、存储器340、显示接口350、输入接口360。

通信接口310是用于与其他装置进行通信的接口。作为具体例,通信接口310是ethernet(注册商标)的端口。

hdd320是保管数据的存储装置。物理机300也可以代替hdd320而具有ssd(solidstatedrive)。此外,物理机300也可以代替hdd320而具有sd(注册商标、securedigital)存储卡、cf(compactflash)、nand闪存、软盘、光盘、高密度盘、蓝光(注册商标)盘、dvd(digitalversatiledisk)这样的移动存储介质。

cpu330是进行运算处理的ic(integratedcircuit)。物理机300也可以代替cpu330或在cpu330的基础上具有dsp(digitalsignalprocessor)、gpu(graphicsprocessingunit)。

存储器340是暂时存储数据的存储装置。作为具体例,存储器340是sram(staticrandomaccessmemory)、dram(dynamicrandomaccessmemory)。

显示接口350是连接显示装置351的接口。作为具体例,显示接口350是hdmi(注册商标、high-definitionmultimediainterface)的端口。

输入接口360是连接输入装置361的接口。作为具体例,输入接口360是usb(universalserialbus)的端口。

另外,负载均衡器210和数据库服务器260也可以是与物理机300相同的硬件结构。数据库服务器260也可以具有多个hdd,设为raid(redundantarraysofinexpensivedisks)结构。

参照图3对实施方式1的网络服务器220、管理服务器230、处理分割用虚拟机240、多个模拟器用虚拟机250的虚拟机400的硬件结构进行说明。

虚拟机400具有通信接口410、hdd420、cpu430、存储器440、显示接口450、输入接口460。

通信接口410、hdd420、cpu430、存储器440、显示接口450、输入接口460分别是实现虚拟机400的物理机300所具有的通信接口310、hdd320、cpu330、存储器340、显示接口350、输入接口360。在hdd420中存储有用于实现虚拟机400的os421、程序组422、文件组423。

参照图4对实施方式1的目标机500的硬件结构进行说明。

目标机500是通过模拟器系统100被模拟动作的装置。目标机500例如与伺服机构进行伺服通信,实现周期处理。

目标机500具有cpu510、高速存储器520、低速存储器530、io组540、hdd550。

与cpu330同样,cpu510是进行运算处理的ic。cpu510具有l1高速缓存511和l2高速缓存512,能够比较高速地执行处理。

与存储器340同样,高速存储器520和低速存储器530是暂时存储数据的存储装置。作为具体例,高速存储器520是sram,低速存储器530是dram。

io组540是与周边设备进行输入输出的装置组。作为具体例,io组540是与伺服机构进行伺服通信的装置。

与hdd320同样,hdd550是保管数据的存储装置。与hdd320同样,hdd550可以是ssd或移动存储介质。在hdd550中存储有实现目标机500的功能的程序组551。

参照图5对模拟器系统100的结构进行说明。

模拟器系统100具有处理分割装置10和多个模拟器20。

处理分割装置10具有权重计算部11和分割部12作为功能结构要素。权重计算部11和分割部12的功能通过软件实现。

在实现处理分割装置10的虚拟机400的hdd420中存储有实现权重计算部11和分割部12的功能的程序作为程序组422。该程序通过cpu430读入到存储器440,通过cpu430来执行。由此,实现权重计算部11和分割部12的功能。

各模拟器20具有控制部21、接口部22、cpu命令模拟器23、资源模型部24、io模拟器25、性能监视器26作为功能结构要素。控制部21、接口部22、cpu命令模拟器23、资源模型部24、io模拟器25、性能监视器26的功能通过软件实现。

在实现模拟器20的虚拟机400的hdd420中存储有实现控制部21、接口部22、cpu命令模拟器23、资源模型部24、io模拟器25、性能监视器26的功能的程序作为程序组422。该程序通过cpu430读入到存储器440,通过cpu430来执行。由此,实现控制部21、接口部22、cpu命令模拟器23、资源模型部24、io模拟器25、性能监视器26的功能。

***动作的说明***

参照图6~图11对实施方式1的模拟器系统100的动作进行说明。

实施方式1的模拟器系统100的动作中的处理分割装置10的动作相当于实施方式1的处理分割方法。此外,实施方式1的模拟器系统100的动作中的处理分割装置10的动作相当于实施方式1的处理分割程序的处理。

参照图6对实施方式1的模拟器系统100的整体动作进行说明。

(步骤s11:信息取得处理)

云系统200的管理服务器230取得要执行的处理即对象处理31和与模拟器系统100的设定有关的参数即性能调整参数32。

具体而言,通过用户将对象处理31和性能调整参数32上传到模拟器系统100。管理服务器230取得所上传的对象处理31和性能调整参数32,将其写入数据库服务器260中。

如图7所示,性能调整参数32包含初次性能测定参数、处理分割数、并行数。

初次性能测定参数表示性能监视器26进行初次的性能测定时的测定区间。在图7中,在初次性能测定参数中设定100,因此,性能监视器26在进行初次的性能测定时,进行100个周期的性能测定。

处理分割数表示执行处理分割的次数。在图7中,在处理分割数中设定3,因此,执行3次处理分割。

并行数是并行地执行模拟的模拟器20的数量。在图7中,在并行数中设定10,因此,由10台模拟器20执行模拟。

(步骤s12:模拟开始处理)

云系统200的管理服务器230起动处理分割装置10,并且起动步骤s11中取得的性能调整参数32中包含的并行数的模拟器20。于是,在被起动的各模拟器20中,开始进行目标机500的模拟。

(步骤s13:初次监视器处理)

步骤s12中起动的各模拟器20的性能监视器26测定步骤s12中开始的模拟的性能,生成性能测定结果33。性能监视器26将所生成的性能测定结果33写入数据库服务器260中。

(步骤s14:权重设定处理)

处理分割装置10的权重计算部11取得步骤s13中生成的性能测定结果33。具体而言,权重计算部11从数据库服务器260读出性能测定结果33。

然后,权重计算部11根据所取得的性能测定结果33计算针对各模拟器的权重34。权重计算部11将计算出的权重34写入数据库服务器260中。

(步骤s15:分割处理)

处理分割装置10的分割部12取得步骤s14中计算出的权重34。具体而言,分割部12从数据库服务器260读出权重34。

然后,分割部12对对象处理31进行分割而生成分配给各模拟器20的分割处理35,使得分配给各模拟器20的分割处理35的处理量成为与针对各模拟器20的权重34对应的处理量。分割部12将所生成的各分割处理35与对象的模拟器20的标识符对应起来写入数据库服务器260中。

(步骤s16:处理执行处理)

各模拟器20取得步骤s15中生成的分割处理35。具体而言,模拟器20从数据库服务器260读出与自身的标识符对应的分割处理35。然后,各模拟器20执行所取得的分割处理35。各模拟器20输出执行分割处理35的结果而得到的运算结果36。

(步骤s17:监视器处理)

步骤s12中起动的各模拟器20的性能监视器26测定步骤s16中执行分割处理35时的性能,生成性能测定结果33。性能监视器26将所生成的性能测定结果33写入数据库服务器260中。

(步骤s18:残留判定处理)

处理分割装置10的分割部12判定对象处理31中是否残留有未执行的处理。

分割部12在残留有未执行的处理的情况下,使处理返回步骤s14。另一方面,分割部12在未残留有未执行的处理的情况下,使处理进入步骤s19。

(步骤s19:结束判定处理)

管理服务器230判定是否结束模拟器系统100的利用。作为具体例,在用户未输入新的处理的执行指示的情况下,判定为结束利用,在输入了新的处理的执行指示的情况下,判定为不结束利用。

管理服务器230在不结束利用的情况下,使处理返回步骤s11。另一方面,管理服务器230在结束利用的情况下,结束处理。

参照图8对实施方式1的模拟器20的动作进行说明。

步骤s21~步骤s22的处理相当于图6的步骤s12的处理。此外,步骤s23~步骤s24的处理相当于图6的步骤s12~步骤s13的处理和步骤s16~步骤s17的处理。

(步骤s21:初始设定处理)

在步骤s12中起动模拟器20后,控制部21进行初始设定。

具体而言,控制部21将目标机500的程序载入资源模型部24中。资源模型部24是模拟目标机500的cpu510中的l1高速缓存和l2高速缓存以及高速存储器520和低速存储器530等的动作的功能。控制部21设定程序计数器。控制部21设定cpu命令模拟器23和io模拟器25的切换时机。例如,通过执行命令数的阈值设定切换时机。控制部21设定周期处理时间和执行命令数的阈值。周期处理时间是定期执行io模拟的时间间隔。执行命令数的阈值是cpu命令模拟器23在1次命令模拟中执行的命令数的上限。

(步骤s22:监视器设定处理)

控制部21起动性能监视器26。性能监视器26起动后,设定步骤s11中取得的性能调整参数32中包含的初次性能测定参数所表示的测定区间。此外,性能监视器26将周期计数器设定为初始值即0。

(步骤s23:cpu命令处理)

cpu命令模拟器23执行命令模拟。cpu命令模拟器23是模拟命令的处理动作和程序计数器的功能。

具体而言,控制部21起动cpu命令模拟器23。cpu命令模拟器23起动后,使用所设定的程序计数器从资源模型部24取得命令,执行命令模拟。

cpu命令模拟器23在生成了分割处理35的情况下,经由接口部22取得分割处理35并执行。cpu命令模拟器23在开始执行分割处理35的情况下,将处于正在执行分割处理35的状态写入资源模型部24的状态地址中。cpu命令模拟器23将执行分割处理35而得到的运算结果36写入资源模型部24的结果地址中。

此时,cpu命令模拟器23根据要执行的处理调出io模拟器25,使其执行io模拟。

cpu命令模拟器23记录已执行的命令数。cpu命令模拟器23在已执行的命令数达到执行命令数的阈值后,记录该时点的程序计数器的值,停止命令模拟,将执行权限转移到控制部21。

(步骤s24:io处理)

io模拟器25执行io模拟。io模拟器25是模拟键盘、显示装置、伺服通信、网络这样的目标机500的io的功能。以模拟对象的io的数量分别存在io模拟器25。

具体而言,控制部21起动io模拟器25。io模拟器25起动后,使用步骤s23中由cpu命令模拟器23执行的命令数,计算所经过的虚拟时间。虚拟时间是目标机500中的假设经过时间。io模拟器25在所经过的虚拟时间达到周期处理时刻后,执行伺服通信这样的io模拟。io模拟器25结束io模拟后,将执行权限转移到控制部21。

此时,io模拟器25通过参照资源模型部24的状态地址,确定是否处于执行了分割处理35的状态。io模拟器25在处于执行了分割处理35的状态的情况下,从资源模型部24的结果地址取得运算结果36并输出。

(步骤s25:结束判定处理)

控制部21判定是否结束处理。具体而言,控制部21在步骤s18中判定为残留有未执行的处理的情况下,使处理返回步骤s33。另一方面,控制部21在步骤s18中判定为未残留有未执行的处理的情况下,结束处理。

参照图9对实施方式1的性能监视器26的动作进行说明。

步骤s31的处理相当于图8的步骤s22的处理。

在执行图8的步骤s23~步骤s24的处理时执行步骤s32~步骤s39处理。特别地,在执行与图6的步骤s12~步骤s13相当的图8的步骤s23~步骤s24的处理时执行步骤s32~步骤s35的处理。此外,在执行与图6的步骤s16~步骤s17相当的图8的步骤s23~步骤s24的处理时执行步骤s36~步骤s39的处理。

(步骤s31:初始设定处理)

如步骤s22中说明的那样,性能监视器26设定步骤s11中取得的性能调整参数32中包含的初次性能测定参数所表示的测定区间。此外,性能监视器26将周期计数器设定为初始值即0。

(步骤s32:开始检测处理)

性能监视器26监视io模拟器25的动作,检测周期处理的开始。具体而言,性能监视器26通过监视伺服通信这样的io模拟的执行状态和资源模型部24的所决定的地址,监视io模拟器25的动作。由此,性能监视器26检测周期处理的开始。

性能监视器26检测到周期处理的开始后,开始进行实际时间计测。此外,性能监视器26使周期计数器的值增加1。

(步骤s33:测定结束判定处理)

性能监视器26判定周期计数器的值是否达到步骤s11中取得的性能调整参数32中包含的初次性能测定参数所表示的值。

性能监视器26在未达到初次性能测定参数所表示的值的情况下,使处理进入步骤s34。另一方面,性能监视器26在周期计数器的值达到初次性能测定参数所表示的值的情况下,使处理进入步骤s35。

在图7的例子中,在周期计数器的值成为100的情况下,处理进入步骤s35。

(步骤s34:周期计数处理)

性能监视器26监视io模拟器25的动作,当执行io模拟后,使周期计数器的值增加1。然后,性能监视器26使处理进入步骤s33。

(步骤s35:测定结束处理)

性能监视器26结束实际时间计测,根据计测出的实际时间计算每1个周期的处理时间。即,每1个周期的处理时间=实际时间/初次性能测定参数所表示的值。性能监视器26将计算出的每1个周期的处理时间作为性能测定结果33写入数据库服务器260中。由此,生成图10的(a)中的1行的信息。

性能监视器26将周期计数器的值初始化为0。

(步骤s36:开始检测处理)

性能监视器26通过定期监视资源模型部24的状态地址,检测成为执行了分割处理35的状态。

性能监视器26检测到成为执行了分割处理35的状态后,开始进行实际时间计测。

(步骤s37:周期计数处理)

性能监视器26监视io模拟器25的动作,当执行io模拟后,使周期计数器的值增加1。

(步骤s38:测定结束判定处理)

性能监视器26通过定期监视资源模型部24的状态地址,检测执行了分割处理35的状态结束。性能监视器26检测到执行了分割处理35的状态结束后,使处理进入步骤s39。

(步骤s39:测定结束处理)

性能监视器26结束实际时间计测,根据计测出的实际时间计算每1个周期的处理时间。即,每1个周期的处理时间=实际时间/周期计数器的值。性能监视器26将计算出的每1个周期的处理时间作为性能测定结果33写入数据库服务器260中。由此,生成图10的(b)中的1行的信息。

性能监视器26将周期计数器的值初始化为0。

(步骤s40:结束判定处理)

性能监视器26判定是否结束处理。具体而言,性能监视器26在步骤s18中判定为残留有未执行的处理的情况下,使处理返回步骤s36。另一方面,性能监视器26在步骤s18中判定为未残留有未执行的处理的情况下,结束处理。

参照图11对实施方式1的处理分割装置10的动作进行说明。

步骤s41~步骤s44的处理相当于图6的步骤s14的处理。步骤s45~步骤s48的处理相当于图6的步骤s15的处理。

(步骤s41:初始设定处理)

权重计算部11取得步骤s11中取得的性能调整参数32中包含的处理分割数和并行数。权重计算部11在分割计数器中设定处理分割数。

在图7的例子中,取得3作为处理分割数,取得10作为并行数。

(步骤s42:性能取得处理)

权重计算部11取得各模拟器20的性能测定结果33。具体而言,权重计算部11读出图9的步骤s35或步骤s39中写入数据库服务器260中的性能测定结果33。

(步骤s43:权重计算处理)

权重计算部11根据步骤s42中取得的性能测定结果33计算针对各模拟器的权重34。

具体而言,权重计算部11将各模拟器20作为对象,将从各模拟器取得的性能测定结果33所表示的值的平均值除以从对象的模拟器20取得的性能测定结果所表示的值,计算针对对象的模拟器20的权重34。

如果是图10的(a)所示的例子,则10台模拟器20的性能测定结果33所表示的值的平均值为1.946。因此,如图10的(c)所示,模拟器20a的权重为19.46/2.00=0.973≒0.97。

(步骤s44:权重输出处理)

权重计算部11输出步骤s43中计算出的针对各模拟器20的权重34和分割计数器。具体而言,权重计算部11将针对各模拟器20的权重34和分割计数器写入数据库服务器260中。

(步骤s45:权重取得处理)

分割部12取得步骤s44中输出的针对各模拟器20的权重34和分割计数器。具体而言,分割部12从数据库服务器260读出针对各模拟器20的权重34和分割计数器。

(步骤s46:处理分割处理)

分割部12根据步骤s45中取得的针对各模拟器20的权重34,对步骤s11中取得的对象处理31进行分割,生成分配给各模拟器20的分割处理35。

具体而言,分割部12对对象处理31进行分割而生成分配给各模拟器20的分割处理35,使得分配给各模拟器20的分割处理35的处理量成为与针对各模拟器20的权重34对应的处理量。即,分割部12以使得权重的值越大则分割处理35的处理量越多的方式生成分割处理35。另外,有时能够对对象处理31进行分割的位置等存在限制,因此,分割处理35的处理量也可以不是严格地与权重34一致。

(步骤s47:分割计数处理)

分割部12使分割计数器减少1。

(步骤s48:结束判定处理)

分割部12判定分割计数器是否为0。

分割部12在分割计数器为0的情况下,结束处理。另一方面,在分割计数器不是0的情况下,使处理返回步骤s42。

***实施方式1的效果***

如上所述,实施方式1的模拟器系统100在多个模拟器20中并行地执行模拟的情况下,逐次取得性能测定结果,根据性能测定结果33计算针对各模拟器20的权重34。然后,实施方式1的模拟器系统100动态地对对象处理31进行分割而生成分配给各模拟器20的分割处理35,使得成为与针对各模拟器20的权重34对应的处理量。由此,能够抑制由于一部分模拟器20而使模拟整体的处理时间变慢。即,通过消除各模拟器20的处理时间的偏差,能够抑制模拟整体的处理时间变慢。

云系统由多个用户进行使用。因此,计算机资源分配动态变化,模拟器20的性能也动态变化。即,即使最初进行性能测定而进行负荷分散,在模拟执行中,由于其他用户新使用计算机资源,各模拟器20能够使用的计算机资源也与最初不同,模拟器20的性能变化。实施方式1的模拟器系统100动态地进行负荷分散,因此,能够抑制模拟整体的处理时间变慢。

***其他结构***

<变形例1>

在实施方式1中,经由数据库服务器260进行各装置间的数据的交换和各功能结构要素间的数据的交换。但是,也可以通过经由网络270发送接收数据来进行各装置间的数据的交换。此外,可以通过进程间通信进行各功能结构要素间的数据的交换。

标号说明

10:处理分割装置;11:权重计算部;12:分割部;20:模拟器;21:控制部;22:接口部;23:cpu命令模拟器;24:资源模型部;25:io模拟器;26:性能监视器;31:对象处理;32:性能调整参数;33:性能测定结果;34:权重;35:分割处理;100:模拟器系统;200:云系统;210:负载均衡器;220:网络服务器;230:管理服务器;240:处理分割用虚拟机;250:模拟器用虚拟机;260:数据库服务器;270:网络;300:物理机;310:通信接口;320:hdd;330:cpu;340:存储器;350:显示接口;360:输入接口;400:虚拟机;410:通信接口;420:hdd;430:cpu;440:存储器;450:显示接口;460:输入接口;500:目标机;510:cpu;520:高速存储器;530:低速存储器;540:io组;550:hdd。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1