一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

信息处理装置、计算机、计算机系统、信息处理方法及信息处理程序与流程

2021-11-06 00:38:00 来源:中国专利 TAG:


1.本发明涉及对程序进行分割的技术。


背景技术:

2.在使用了微控制器或者lsi(large

scale integration)的嵌入系统的开发中,由硬件的时钟频率提高实现的执行速度改善正接近极限。因此,正在使用通过并行执行多台计算机而提高执行速度的多核方式。
3.就工厂自动化而言,也存在相同的倾向,提出了专利文献1所记载的方法以及专利文献2所记载的方法。
4.在专利文献1中记载了通过使多台计算机(plc:programmable logic controller)分散地执行定序程序,降低各计算机的处理负荷,从而缩短程序的执行时间的方法。
5.另外,在专利文献2中记载了将多个plc通过共享存储器以及总线而彼此连接,控制量具有余力的plc取代控制量没有裕量的plc而进行控制,由此作为控制系统整体而使控制效率提高的方法。
6.专利文献1:国际公开第2017/141332号小册子
7.专利文献2:日本特开2010-079355号公报


技术实现要素:

8.专利文献1所记载的方法以及专利文献2所记载的方法为了在计算机之间进行协同动作,都需要经由共享存储器或者总线而在计算机之间对信息进行共享。但是,共享存储器以及总线通常经由计算机的外部接口,因此访问延迟大。
9.另外,各计算机所控制的控制对象也由于计算机的输入输出等的制约而受到限制。
10.由此,即使将程序分散于多台计算机,使多台计算机协同地执行程序,也由于用于信息共享的访问延迟以及输入输出的制约,系统开销(overhead)增大。由于这样的系统开销的增大,会妨碍由程序的分散以及多台计算机的协同执行而实现的高速化、处理负荷的分散以及控制效率的提高。
11.本发明就是鉴于上述情况而提出的,其主要目的在于实现系统开销少的高效的程序的分割。
12.本发明涉及的信息处理装置具有:
13.第1分割部,其将程序以容许所述程序的一部分的处理共存于2个以上候选程序块中的方式分割为多个候选程序块;
14.候选程序块判定部,其对所述程序的一部分的处理是否共存于所述多个候选程序块中的2个以上候选程序块中进行判定;
15.方式选择部,其在所述程序的一部分的处理共存于2个以上候选程序块中的情况下,将通过并行执行方式而执行所述程序的情况下的执行时间与通过共享执行方式而执行所述程序的情况下的执行时间进行对比,选择所述并行执行方式和所述共享执行方式中的执行时间更短的方式,其中,所述并行执行方式是使共存于2个以上候选程序块中的所述程序的一部分的处理即共存处理由与所述2个以上候选程序块相同数量的2台以上计算机并行地执行的执行方式,所述共享执行方式是使所述2台以上计算机中的1台计算机执行所述共存处理而将所述1台计算机的执行结果与所述2台以上计算机中的其它计算机共享的执行方式;以及
16.第2分割部,其基于所述多个候选程序块和由所述方式选择部选择出的方式,将所述程序分割为多个程序块。
17.发明的效果
18.在本发明中,选择并行执行方式和共享执行方式中的执行时间更短的方式。因此,根据本发明,能够实现系统开销少的高效的程序的分割。
附图说明
19.图1是表示实施方式1涉及的控制系统(1台计算机)的结构例的图。
20.图2是表示实施方式1涉及的控制系统(3台计算机)的结构例的图。
21.图3是表示实施方式1涉及的计算机的功能结构例的图。
22.图4是表示实施方式1涉及的程序代码分配装置的图。
23.图5是表示实施方式1涉及的程序代码分配装置的硬件结构例的图。
24.图6是表示实施方式1涉及的程序代码分配装置的功能结构例的图。
25.图7是表示实施方式1涉及的程序代码分配装置的动作的概要的流程图。
26.图8是表示实施方式1涉及的程序执行顺序信息的例子的图。
27.图9是表示实施方式1涉及的程序代码的分割候选的例子的图。
28.图10是表示实施方式1涉及的程序代码的分割例的图。
29.图11是表示实施方式1涉及的程序代码的分割候选的例子的图。
30.图12是表示实施方式1涉及的程序代码的分割例的图。
31.图13是表示实施方式1涉及的程序代码的固定执行部分以及动态执行部分的例子的图。
32.图14是表示实施方式1涉及的程序代码分配装置的动作例的流程图。
33.图15是表示实施方式1涉及的程序代码分配装置的动作例的流程图。
34.图16是表示实施方式1涉及的程序代码分配装置的动作例的流程图。
35.图17是表示实施方式1涉及的程序代码分配装置的动作例的流程图。
36.图18是表示实施方式1涉及的计算机的动作例的流程图。
具体实施方式
37.下面,使用附图对本发明的实施方式进行说明。在以下的实施方式的说明以及附图中,标注了相同标号的部分示出相同的部分或者相应的部分。
38.另外,下面,还将程序代码简称为程序。
39.实施方式1.
40.***前提***
41.首先,对成为本实施方式的前提的控制系统进行说明。
42.图1示出使用1台计算机的控制系统的结构例。
43.在图1中,计算机100执行用于对控制对象设备(a)300、控制对象设备(b)301以及控制对象设备(c)302进行控制的程序代码102。计算机100通过执行程序代码102而对控制对象设备(a)300、控制对象设备(b)301以及控制对象设备(c)302进行控制。
44.计算机100经由共享总线200而与控制对象设备(a)300、控制对象设备(b)301以及控制对象设备(c)302连接。
45.计算机100具有程序存储器101。程序存储器101对程序代码102进行储存。
46.计算机100经由共享总线200而读取控制对象设备(a)300、控制对象设备(b)301以及控制对象设备(c)302各自的动作状态。另外,计算机100使用控制对象设备(a)300、控制对象设备(b)301以及控制对象设备(c)302各自的动作状态而生成针对控制对象设备(a)300、控制对象设备(b)301以及控制对象设备(c)302各自的控制信号。另外,计算机100将针对控制对象设备(a)300、控制对象设备(b)301以及控制对象设备(c)302各自的控制信号经由共享总线200而写入至控制对象设备(a)300、控制对象设备(b)301以及控制对象设备(c)302各自。由此,计算机100对控制对象设备(a)300、控制对象设备(b)301以及控制对象设备(c)302各自进行控制。
47.接下来,对使用多台计算机的控制系统进行说明。
48.图2示出使用3台计算机的控制系统的结构例。
49.在图2中,3台计算机(计算机(a)110、计算机(b)120以及计算机(c)130)与共享总线200连接。
50.图1的程序代码102被分割为程序代码(a)112、程序代码(b)122以及程序代码(c)132。并且,程序代码(a)112配置于计算机(a)110的程序存储器111。另外,程序代码(b)122配置于计算机(b)120的程序存储器121。并且,程序代码(c)132配置于计算机(c)130的程序存储器131。
51.计算机(a)110执行程序代码(a)112而经由共享总线200对控制对象设备(a)300、控制对象设备(b)301以及控制对象设备(c)302进行控制。计算机(b)120执行程序代码(b)122而经由共享总线200对控制对象设备(a)300、控制对象设备(b)301以及控制对象设备(c)302进行控制。计算机(c)130执行程序代码(c)132而经由共享总线200对控制对象设备(a)300、控制对象设备(b)301以及控制对象设备(c)302进行控制。
52.在为了生成控制信号而需要在计算机(a)110、计算机(b)120以及计算机(c)130之间对数据进行共享的情况下,使用共享存储器201而在计算机(a)110、计算机(b)120以及计算机(c)130之间对数据进行共享。
53.通常,在计算机内存在用于预先对为了执行程序代码所需的中间计算结果等进行存储的工作区域(工作存储器)。该工作区域由缓存器或者高速sram(static random access memory)构成,能够高速访问。
54.另一方面,在图2中示出的共享存储器201由于经由共享总线200而访问,因此访问速度非常慢。因此,使用了共享存储器201的计算机间的数据共享存在性能上的短板。因此,
为了使性能比程序代码分割前更好,需要考虑减少执行分割后的程序代码的计算机(a)110、计算机(b)120以及计算机(c)130访问共享存储器201的机会。
55.另外,在使用plc作为计算机的控制系统中,以被称为扫描时间的周期,反复执行相同的程序代码。扫描时间越短,越可以对控制对象设备进行更细致的控制指示。因此,扫描时间越短,作为控制系统,性能越高。
56.在使用多台计算机进行控制对象设备的控制的情况下,扫描时间受限于计算最慢的计算机的执行时间。因此,在使用多台计算机进行控制对象设备的控制的情况下,需要考虑使得各计算机中的分割后的程序代码的执行时间在计算机之间相等。
57.***结构的说明***
58.图3示出本实施方式涉及的控制系统的结构例。在图3中,出于绘图上的原因,设为本实施方式涉及的控制系统由计算机(a)110和计算机(b)120这2台计算机构成。另外,设为程序代码102被分割为程序代码(a)112和程序代码(b)122。另外,作为控制对象设备,设为存在控制对象设备(a)300和控制对象设备(b)301。
59.此外,图3所示的控制系统是计算机系统的例子。
60.在计算机(a)110中包含程序存储器111、处理器115、命令执行控制部命令执行控制部116和命令执行控制信息117。
61.在计算机(b)120中包含程序存储器121、处理器125、命令执行控制部126和命令执行控制信息127。
62.程序存储器111对程序代码(a)112进行存储。另外,程序存储器121对程序代码(b)122进行存储。
63.程序代码(a)112由固定执行部分113和动态执行部分114构成。
64.固定执行部分113是由计算机(a)110固定地执行的部分。即,固定执行部分113仅由计算机(a)110执行。
65.程序代码(b)122也由固定执行部分123和动态执行部分124构成。固定执行部分123由计算机(b)120固定地执行。即,固定执行部分123仅由计算机(b)120执行。
66.动态执行部分114以及动态执行部分124是相同的处理。动态执行部分114以及动态执行部分124的执行方式随条件而变动。更具体而言,根据条件的成立与否,可能产生:(1)动态执行部分114仅由计算机(a)110执行的情况,(2)动态执行部分114由计算机(a)110执行,动态执行部分124由计算机(b)120执行的情况,(3)仅动态执行部分124由计算机(b)120执行的情况。按照命令执行控制部116以及命令执行控制信息117,对执行动态执行部分114以及动态执行部分124的哪一个进行控制。
67.在命令执行控制信息117中,将用于使得动态执行部分114由计算机(a)110执行、动态执行部分124由计算机(b)120执行的条件定义为执行条件。另外,在命令执行控制信息117中示出在执行条件成立的情况下,计算机(a)110执行动态执行部分114的哪个部分。
68.同样地,在命令执行控制信息127中定义了执行条件,示出在执行条件成立的情况下,计算机(b)120执行动态执行部分124的哪个部分。
69.还将由计算机(a)110和计算机(b)120分担地执行的处理(动态执行部分114和动态执行部分124)称为分担执行处理。
70.执行条件例如是与控制对象设备(a)300的状态或者控制对象设备(b)301的状态
相关的条件、与if语句、case语句等条件分支相关的条件。
71.命令执行控制信息117以及命令执行控制信息127是针对每个执行条件,以使各计算机执行的命令量(处理量)均等的方式事先对程序代码102进行解析而生成的。
72.命令执行控制信息117以及命令执行控制信息127各自相当于执行条件信息。
73.命令执行控制部116执行程序代码(a)112。
74.更具体而言,命令执行控制部116执行被固有地分配给计算机(a)110的处理即固定执行部分113。另外,命令执行控制部116参照命令执行控制信息117,对执行条件是否成立进行判定。而且,在执行条件成立的情况下,命令执行控制部116与计算机(b)120分担地执行分担执行处理。命令执行控制部116相当于条件判定部以及处理执行部。
75.具体而言,命令执行控制部116是由处理器115执行的程序。
76.同样地,命令执行控制部126执行程序代码(b)122。
77.更具体而言,命令执行控制部126执行被固有地分配给计算机(b)120的处理即固定执行部分123。另外,命令执行控制部126参照命令执行控制信息127,对执行条件是否成立进行判定。而且,在执行条件成立的情况下,命令执行控制部126与计算机(a)110分担地执行分担执行处理。命令执行控制部126也相当于条件判定部以及处理执行部。
78.具体而言,命令执行控制部126也是由处理器125执行的程序。
79.接下来,对程序代码分配装置500进行说明。程序代码分配装置500将程序代码102分割为程序代码(a)112和程序代码(b)122,另外,生成命令执行控制信息117以及命令执行控制信息127。
80.图4示出程序代码分配装置500。程序代码分配装置500是计算机。
81.另外,程序代码分配装置500是信息处理装置的例子。并且,由程序代码分配装置500进行的动作相当于信息处理方法及信息处理程序。
82.程序代码分配装置500参照程序代码102、计算机信息401以及共享存储器访问性能信息402,将程序代码102分割为程序代码(a)112和程序代码(b)122。另外,程序代码分配装置500生成命令执行控制部116以及命令执行控制信息117。
83.在计算机信息401中示出控制系统所包含的计算机的数量。下面,设为在计算机信息401中示出如图3所示那样控制系统中包含计算机(a)110和计算机(b)120这2台计算机的情况。另外,在计算机信息401中示出计算机(a)110的性能和计算机(b)120的性能。
84.在共享存储器访问性能信息402中示出计算机(a)110以及计算机(b)120访问共享存储器201时的访问性能(访问延迟)。
85.图5示出程序代码分配装置500的硬件结构例。
86.作为硬件,程序代码分配装置500具有处理器901、主存储装置902、辅助存储装置903以及通信装置904。
87.处理器901是进行处理的ic(integrated circuit)。
88.处理器901是cpu(central processing unit)、dsp(digital signal processor)等。
89.主存储装置902是ram(random access memory)。
90.辅助存储装置903是rom(read only memory)、闪存、hdd(hard disk drive)等。
91.通信装置904是执行数据的通信处理的电子电路。
92.通信装置904例如是通信芯片或者nic(network interface card)。
93.在辅助存储装置903中存储有实现后述的第1分割部501、候选程序块判定部502、方式选择部503以及第2分割部504的功能的程序。
94.这些程序被从辅助存储装置903加载至主存储装置902。而且,处理器901执行这些程序而进行第1分割部501、候选程序块判定部502、方式选择部503以及第2分割部504的动作。
95.在图5中,示意性地表示处理器901执行实现第1分割部501、候选程序块判定部502、方式选择部503以及第2分割部504的功能的程序的状态。
96.在辅助存储装置903中还存储有os(operating system)。
97.而且,os的至少一部分由处理器901执行。
98.处理器901一边执行os的至少一部分,一边执行实现第1分割部501、候选程序块判定部502、方式选择部503以及第2分割部504的功能的程序。
99.处理器901通过执行os而进行任务管理、存储器管理、文件管理、通信控制等。
100.另外,表示第1分割部501、候选程序块判定部502、方式选择部503以及第2分割部504的处理结果的信息、数据、信号值以及变量值中的至少任一者被存储于主存储装置902、辅助存储装置903、处理器901内的寄存器以及缓存器中的至少任一者。
101.另外,实现第1分割部501、候选程序块判定部502、方式选择部503以及第2分割部504的功能的程序也可以被储存于磁盘、软盘、光盘、高密度盘、蓝光(注册商标)盘、dvd等便携式记录介质。并且,可以使储存有实现第1分割部501、候选程序块判定部502、方式选择部503以及第2分割部504的功能的程序的便携式记录介质商业性地流通。
102.另外,可以将第1分割部501、候选程序块判定部502、方式选择部503以及第2分割部504的“部”改称为“电路”或者“工序”或者“流程”或者“处理”。
103.另外,程序代码分配装置500也可以由处理电路实现。处理电路例如是逻辑ic(integrated circuit)、ga(gate array)、asic(application specific integrated circuit)、fpga(field

programmable gate array)。
104.在这种情况下,第1分割部501、候选程序块判定部502、方式选择部503以及第2分割部504分别作为处理电路的一部分而实现。
105.此外,在本说明书中,将处理器与处理电路之间的上位概念称为“处理线路”。
106.即,处理器和处理电路分别是“处理线路”的具体例。
107.图6示出程序代码分配装置500的功能结构例。
108.第1分割部501以容许程序代码102的一部分的处理共存于2个以上候选程序块中的方式将程序代码102分割为多个候选程序块。
109.此外,由第1分割部501进行的处理相当于第1分割处理。
110.候选程序块判定部502对程序代码102的一部分的处理是否共存于多个候选程序块中的2个以上候选程序块中进行判定。将共存于2个以上候选程序块中的程序代码102的一部分的处理称为共存处理。
111.另外,候选程序块判定部502对执行时间随条件而变动的处理即负荷变动处理是否包含于程序代码102进行判定。具体而言,负荷变动处理是动态执行部分114所记述的处理(分担执行处理)。
112.此外,由候选程序块判定部502进行的处理相当于候选程序块判定处理。
113.方式选择部503在程序代码102的一部分的处理共存于2个以上候选程序块中的情况下,选择并行执行方式和共享执行方式的任一者。
114.并行执行方式是使共存于2个以上候选程序块中的程序代码102的一部分的处理即共存处理由与2个以上候选程序块相同数量的2台以上计算机并行地执行的方式。
115.共享执行方式是使2台以上计算机中的1台计算机执行共存处理而将1台计算机的执行结果与2台以上计算机中的其他计算机共享的方式。
116.另外,方式选择部503在负荷变动处理包含于程序代码102的情况下,选择单独执行方式和分担执行方式的任一者。
117.单独执行方式是使多台计算机中的1台计算机执行负荷变动处理的方式。
118.分担执行方式是使多台计算机分担地执行负荷变动处理的方式。
119.由方式选择部503进行的处理相当于方式选择处理。
120.第2分割部504基于多个候选程序块和由方式选择部503选择出的方式而将程序代码102分割为多个程序块。而且,第2分割部504将通过分割得到的各程序块作为程序代码(a)112以及程序代码(b)122而输出。
121.另外,第2分割部504生成命令执行控制部116以及命令执行控制信息117,将生成的命令执行控制部116以及命令执行控制信息117输出。
122.***动作的说明***
123.图7是表示程序代码分配装置500的动作的概要的流程图。
124.参照图7,对程序代码分配装置500的动作的概要进行说明。
125.在步骤s51中,第1分割部501将程序代码102分割为多个候选程序块。
126.第1分割部501通过参照计算机信息401而识别出在本实施方式涉及的控制系统中存在计算机(a)110和计算机(b)120。因此,在本实施方式中,第1分割部501将程序代码102分割为2个候选程序块。
127.另外,第1分割部501对程序代码102进行解析,确定构成程序代码102的多个处理。另外,第1分割部501确定构成程序代码102的处理的执行顺序。然后,第1分割部501基于执行顺序而将程序代码102分割为2个候选程序块。此外,当存在多个将程序代码102分割为2个候选程序块的模式的情况下,第1分割部501选择多个模式中的程序代码102的执行时间最短的模式。然后,第1分割部501以选择出的模式将程序代码102分割为2个候选程序块。
128.此外,第1分割部501不需要实际上将程序代码102分割为2个候选程序块,只要将程序代码102逻辑上分割为2个候选程序块即可。
129.接下来,在步骤s52中,候选程序块判定部502对在程序代码102中是否存在共存处理进行判定。另外,候选程序块判定部502对在程序代码102是否存在负荷变动处理进行判定。
130.接下来,在步骤s53中,方式选择部503对方式进行选择。
131.在步骤s52中,当判定为在程序代码102中存在共存处理的情况下,方式选择部503选择并行执行方式以及共享执行方式中的任一者作为程序代码102的分割方式。更具体而言,方式选择部503将通过并行执行方式而执行程序代码102的情况下的执行时间与通过共享执行方式而执行程序代码102的情况下的执行时间进行对比。然后,方式选择部503选择
并行执行方式和共享执行方式中的执行时间更短的方式。
132.另外,在步骤s52中,当判定为在程序代码102中存在负荷变动处理的情况下,方式选择部503选择单独执行方式以及分担执行方式中的任一者作为程序代码102的分割方式。更具体而言,方式选择部503针对每个条件,将通过单独执行方式而执行程序代码102的情况下的执行时间与通过分担执行方式而执行程序代码102的情况下的执行时间进行对比。然后,方式选择部503针对每个条件,选择单独执行方式和分担执行方式中的执行时间更短的方式。
133.接下来,在步骤s54中,第2分割部504将程序代码102分割为2个程序块。
134.更具体而言,当在步骤s53中由方式选择部503选择了并行执行方式的情况下,第2分割部504基于2个候选程序块,以共存处理由计算机(a)110和计算机(b)120并行地执行的方式将程序代码102分割为2个程序块。
135.当在步骤s53中由方式选择部503选择了共享执行方式的情况下,第2分割部504基于2个候选程序块,以共存处理仅由计算机(a)110或者计算机(b)120执行的方式将程序代码102分割为2个程序块。
136.另外,当在步骤s53中由方式选择部503选择了单独执行方式的情况下,第2分割部504基于2个候选程序块,以负荷变动处理仅由计算机(a)110或者计算机(b)120执行的方式将程序代码102分割为2个程序块。
137.另外,当在步骤s53中由方式选择部503选择了分担执行方式的情况下,第2分割部504基于2个候选程序块,以负荷变动处理由计算机(a)110和计算机(b)120分担地执行的方式将程序代码102分割为2个程序块。另外,第2分割部504生成命令执行控制信息117和命令执行控制信息127。
138.然后,第2分割部504将2个程序块作为程序代码(a)112和程序代码(b)122而输出,另外,将命令执行控制信息117和命令执行控制信息127输出。
139.图8示出本实施方式涉及的程序执行顺序信息403的例子。在程序执行顺序信息403中,将程序代码102所包含的处理和处理的执行顺序以数据流图(dfg)形式示出。第1分割部501能够通过对程序代码102进行解析而识别图8所示的结构。
140.第1分割部501通过将图8所示的结构分割为2个部分,从而能够将程序代码102在逻辑上分割为2个候选程序块。
141.在图8中,“a”至“r”表示为了生成针对控制对象设备(a)300以及控制对象设备(b)3012的控制信号而所需的处理。
142.第1分割部501通过将程序代码102的各处理的命令量(处理量)分别除以计算机信息401所示的计算机(a)110的处理性能以及计算机(b)120的处理性能,从而能够得到计算机(a)110的各处理的执行时间以及计算机(b)120的各处理的执行时间。此外,这里,为了简化说明,设为全部处理的执行时间在计算机(a)110和计算机(b)120中是共通的,一律为1t。
143.参照图8及图14,对第1分割部501的动作例进行说明。
144.图14是表示图4所示的步骤s51的详情的流程图。
145.在步骤s511中,第1分割部501对程序代码102进行解析,对程序代码102所包含的处理进行提取。另外,第1分割部501对处理的执行顺序进行确定。
146.作为步骤s511的结果,得到图8所例示的程序执行顺序信息403。
147.接下来,在步骤s512中,第1分割部501对生成图8所示的输出0至输出3所需的处理进行确定。在图8的例子中,生成输出0所需的处理是(a、b、e、f、i、j、n)。另外,生成输出1所需的处理是(b、c、d、f、g、h、k、o)。另外,生成输出2所需的处理是(d、h、l、p)。另外,生成输出3所需的处理的(d、h、m、r)。
148.作为步骤s512的结果,得到输出关系处理信息404。
149.在输出关系处理信息404中示出输出与生成输出所需的处理的组合。
150.接下来,在步骤s513中,第1分割部501将程序代码102分割为候选程序块。
151.在本实施方式中,第1分割部501将程序代码102分割为2个候选程序块。
152.即,第1分割部501将生成输出0所需的处理分配给计算机(a)110以及计算机(b)120的某一者。另外,第1分割部501将生成输出1所需的处理分配给计算机(a)110以及计算机(b)120的某一者。另外,第1分割部501将生成输出2所需的处理分配给计算机(a)110以及计算机(b)120的某一者。另外,第1分割部501将生成输出3所需的处理分配给计算机(a)110以及计算机(b)120的某一者。
153.另外,如步骤s514所示,当存在多个将程序代码102分割为候选程序块的模式的情况下,第1分割部501选择多个模式中的程序代码102的执行时间(扫描时间)最小的模式。
154.第1分割部501能够通过参照计算机信息401而得到程序代码102的各处理的执行时间(扫描时间)。此外,在本实施方式中,如前所述,为了简化说明,各处理的执行时间一律假设为1t。
155.在判明了执行时间(扫描时间)最小的模式的情况下,第1分割部501生成示出该模式下的候选程序块的候选程序块信息405。然后,第1分割部501将候选程序块信息405输出至候选程序块判定部502。
156.此外,第1分割部501也可以取代选择执行时间(扫描时间)最短的模式,而选择执行时间(扫描时间)小于或等于阈值的模式。
157.在图8的例子中,将生成输出0至输出3所需的处理(4种)分配给计算机(a)110以及计算机(b)120的组合为2^4=16种。
158.图9示出16种模式中的执行时间最小的模式。即,图9示出候选程序块信息405的例子。
159.在图9的例子中,计算机(a)110执行处理(a、b、e、f、i、j、n和d、h、m、r)。另外,计算机(b)120执行处理(b、c、d、f、g、h、k、l、o、p)。
160.在图9的例子中,计算机(a)110的执行时间为11t。另一方面,计算机(b)120的执行时间为10t。扫描时间受限于计算机(a)110的执行时间和计算机(b)120的执行时间中的较大者。因此,在图9的例子中,程序代码102的整体的执行时间(=扫描时间)为11t。
161.接下来,参照图15及图16,对候选程序块判定部502以及方式选择部503的动作例进行说明。
162.图15及图16是表示图4所示的步骤s52以及步骤s53的详情的流程图。步骤s52x是步骤s52的详情。步骤s53x是步骤s53的详情。
163.候选程序块判定部502如果取得候选程序块信息405,则对候选程序块信息405进行解析,通过步骤s521,对共存处理的有无进行确认。
164.当存在共存处理的情况下(在步骤s522为yes),处理进入步骤s530。此外,在这种
情况下,候选程序块判定部502将共存处理通知给方式选择部503。
165.另一方面,当不存在共存处理的情况下(在步骤s522中为no),处理进入图16的步骤s523。
166.在步骤s530中,方式选择部503针对每个方式而计算执行时间。
167.即,方式选择部503对并行执行方式的执行时间和共享执行方式的执行时间进行计算。
168.然后,方式选择部503在步骤s531中对并行执行方式的执行时间是否大于共享执行方式的执行时间进行判定。
169.在并行执行方式的执行时间大于共享执行方式的执行时间的情况下(在步骤s531中为yes),即在共享执行方式的执行时间小于或等于并行执行方式的执行时间的情况下,在步骤s532中,方式选择部503选择共享执行方式。
170.另一方面,在并行执行方式的执行时间小于或等于共享执行方式的执行时间的情况下(在步骤s531为no),方式选择部503在步骤s533中对当前正关注的共存处理标注确认完成标记。标注有确认完成标记的共存处理不成为后续的步骤s521的对象。
171.在步骤s534中,方式选择部503将候选程序块信息405与共享执行方式相匹配而进行更新。
172.在针对全部共存处理进行步骤s530及其以后的处理为止,重复步骤s521及其以后的处理。
173.在图9的例子中,处理(b)、处理(f)、处理(d)和处理(h)共存于计算机(a)110的候选程序块和计算机(b)120的候选程序块,是共存处理。
174.处理(b)的结果在处理(f)和处理(e)(由计算机(a)110执行)中被使用。
175.处理(f)的结果在处理(j)(由计算机(a)110执行)和处理(k)(由计算机(b)120执行)中被使用。
176.处理(d)的结果在处理(h)中被使用。
177.另外,处理(h)的结果在处理(m)(由计算机(a)110执行)、处理(k)和处理(l)(都由计算机(b)120执行)中被使用。
178.处理(b)的结果在处理(f)中被使用,因此优选处理(b)和处理(f)由相同的计算机执行。
179.这里,作为共享执行方式,设想例如使处理(b)和处理(f)仅由计算机(b)120执行,计算机(a)110共享处理(f)的结果。在这种情况下,在计算机(a)110中,也可以不执行2t的量的处理。因此,有可能计算机(a)110的执行时间能够短于11t。
180.但是,如前所述,计算机间的信息的共享需要经由共享存储器201。在使用共享存储器201的情况下,产生系统开销。因此,关于是否将处理(b)和处理(f)分配给计算机(b)120,需要考虑该系统开销。
181.在实施方式中,该系统开销是计算机(a)110以及计算机(b)120的对共享存储器201的访问时间。对共享存储器201的访问时间依赖于共享的数据的量。将该系统开销设为处理x的数据量x的函数(o(x))。即,在使用共享存储器201而共享处理(f)的结果的情况下的系统开销为o(f)。
182.可以根据计算机(a)110的处理(a、e、i、j、n和d、h、m、r以及o(f))所需的时间与计
算机(b)120的处理(b、c、d、f、g、h、k、l、o、p)所需的时间中的较大者是否大于不考虑共享的情况下(不使用共享存储器201的情况)的扫描时间(11t),对是否仅由计算机(b)120执行处理(b)和处理(f)进行判定。即,如果计算机(a)110的处理(a、e、i、j、n和d、h、m、r以及o(f))所需的时间与计算机(b)120的处理(b、c、d、f、g、h、k、l、o、p)所需的时间中的较大者小于不考虑共享的情况下(不使用共享存储器201的情况)的扫描时间(11t),则能够缩短扫描时间。因此,在这种情况下,优选仅由计算机(b)120执行处理(b)和处理(f)(共享执行方式)。如果计算机(a)110的处理(a、e、i、j、n和d、h、m、r以及o(f))所需的时间与计算机(b)120的处理(b、c、d、f、g、h、k、l、o、p)所需的时间中的较大者大于或等于不考虑共享的情况下(不使用共享存储器201的情况)的扫描时间(11t),则扫描时间没有变化或者扫描时间增大,因此优选计算机(a)110以及计算机(b)120各自执行处理(b)和处理(f)(并行执行方式)。
183.为了简化说明,这里,设为o(f)=1t。
184.在仅由计算机(b)120执行处理(b)和处理(f),使用共享存储器201而共享处理(f)的执行结果的情况下,计算机(a)110的全部处理的执行所需的时间为10t。因此,计算机(a)110不执行处理(b)和处理(f)的情况下的计算机(a)110的执行时间小于计算机(a)110执行处理(b)和处理(f)的情况下的扫描时间(11t)。在这种情况下,能够判定仅由计算机(b)120执行处理(b)和处理(f)为优选。
185.同样地,也考虑处理(d)和处理(h)。
186.仅由计算机(a)110执行处理(d)和处理(h)的情况下的计算机(a)110的执行时间为10t,计算机(b)120的执行时间为9t。
187.仅由计算机(b)120执行处理(d)和处理(h)的情况下的计算机(a)110的执行时间为9t,计算机(b)120的执行时间为10t,无论哪一种情况,较大的执行时间都为10t,因此扫描时间都为10t。因此,可以选择仅由计算机(a)110执行处理(d)和处理(h)的情况以及仅由计算机(b)120执行处理(d)和处理(h)的情况的任一者。
188.作为一个例子,图10示出处理(b)和处理(f)仅由计算机(b)120执行,处理(d)和处理(h)仅由计算机(a)110执行的情况下的候选程序块的例子。
189.接下来,对图16的步骤s523及其以后的处理进行说明。
190.在步骤s523中,候选程序块判定部502参照候选程序块信息405而对负荷变动处理的有无进行确认。
191.当存在负荷变动处理的情况下(在步骤s524为yes),处理进入步骤s535。此外,在这种情况下,候选程序块判定部502将负荷变动处理通知给方式选择部503。
192.另一方面,当不存在负荷变动处理的情况下(在步骤s524中为no),处理进入图17的步骤s541。
193.在步骤s535中,方式选择部503针对每个方式而对执行时间进行计算。
194.即,方式选择部503对单独执行方式的执行时间和分担执行方式的执行时间进行计算。
195.然后,方式选择部503在步骤s536中对单独执行方式的执行时间是否大于分担执行方式的执行时间进行判定。
196.在单独执行方式的执行时间大于分担执行方式的执行时间的情况下(在步骤s536中为yes),即分担执行方式的执行时间小于或等于单独执行方式的执行时间的情况下,在
步骤s537中,方式选择部503选择分担执行方式。
197.另一方面,在单独执行方式的执行时间小于或等于分担执行方式的执行时间的情况下(在步骤s536为no),方式选择部503在步骤s538中对当前正关注的负荷变动处理标注确认完成标记。标注有确认完成标记的负荷变动处理不成为后续的步骤s523的对象。
198.在步骤s539中,方式选择部503将候选程序块信息405与分担执行方式相匹配而进行更新。
199.另外,在这种情况下,方式选择部503将选择了分担执行方式和选择了分担执行方式的负荷变动处理通知给第2分割部504。
200.在针对全部负荷变动处理进行步骤s535及其以后的处理为止,重复步骤s523及其以后的处理。
201.图11示出存在负荷变动处理的程序代码102的例子。
202.在图11中,处理(h)是负荷变动处理。
203.在图11的例子中,设为处理(h)的处理量根据处理(d)的结果而发生变化。具体而言,设为在处理(d)的结果与基准α吻合的情况下,即,在处理(d)的结果与基准α吻合这一条件成立的情况下,处理(h)的执行时间为2t。另一方面,设为在处理(d)的结果与基准α不吻合的情况下,即,在处理(d)的结果与基准α吻合这一条件不成立的情况下,处理(h)的执行时间保持为1t。
204.在这样的情况下,方式选择部503对是使处理(h)由计算机(a)110和计算机(b)120分担(是选择分担执行方式),还是由计算机(a)110单独地执行处理(h)(还是选择单独执行方式)进行判定。
205.在使处理(h)仅由计算机(a)110执行的情况下(单独执行方式)的计算机(a)110的执行时间和计算机(b)120的执行时间如下所述。
206.(1)在处理(d)的结果与基准α吻合的情况下,
207.计算机(a)110的执行时间
208.=处理(a、e、i、j、n、o(f)) 处理(d、2*h、m、r)=6t 5t
209.=11t
210.计算机(b)120的执行时间
211.=处理(b、c、f、g、k、l、o、p o(h))=9t
212.(2)在处理(d)的结果与基准α不吻合的情况下,
213.计算机(a)110的执行时间
214.=处理(a、e、i、j、n、o(f)) 处理(d、h、m、r)=6t 4t
215.=10t
216.计算机(b)120的执行时间
217.=处理(b、c、f、g、k、l、o、p o(h))=9t
218.接下来,在将处理(h)分配给计算机(a)110和计算机(b)120,处理(d)的结果与基准α吻合,执行时间增大的情况下,使计算机(a)110和计算机(b)120各自分担1t的处理(h)的情况下(分担执行方式)的计算机(a)110的执行时间和计算机(b)120的执行时间如下所述。
219.(1)在处理(d)的结果与基准α吻合的情况下,
220.计算机(a)110的执行时间
221.==处理(a、e、i、j、n、o(f)) 处理(d、h、m、r)=6t 4t
222.=10t
223.计算机(b)120的执行时间
224.=处理(b、c、f、g、k、l、o、p h)=9t
225.(2)在处理(d)的结果与基准α不吻合的情况下,
226.计算机(a)110的执行时间
227.=处理(a、e、i、j、n、o(f)) 处理(d、h、m、r)=6t 4t
228.=10t
229.计算机(b)120的执行时间
230.=处理(b、c、f、g、k、l、o、p h)=9t
231.在上述例子中,处理(d)的结果与基准α吻合的情况下的分担执行方式的计算机(a)110的执行时间(10t)短于处理(d)的结果与基准α吻合的情况下的单独执行方式的计算机(a)110的执行时间(11t)。因此,在上述例子中,如果选择分担执行方式,则能够缩短扫描时间,因此,方式选择部503选择分担执行方式。
232.图12示出选择了分担执行方式的情况下的候选程序块信息405的例子。
233.接下来,对图17的步骤s541及其以后的处理进行说明。
234.图17示出图4的步骤s54的详情。
235.在步骤s541中,第2分割部504按照候选程序块信息405而将程序代码102分割为程序块。
236.接下来,在步骤s542中,第2分割部504对是否通过方式选择部503选择了分担执行方式进行判定。
237.在未选择分担执行方式的情况下(在步骤s542中为no),第2分割部504在步骤s543中将通过分割得到的程序代码(a)112和程序代码(b)122输出。
238.另一方面,在选择了分担执行方式的情况下(在步骤s542中为yes),第2分割部504在步骤s545中生成命令执行控制信息117以及命令执行控制信息127。
239.在图12所示的例子中,第2分割部504在处理(d)的结果与基准α吻合这一条件成立的情况下,生成使处理(h)由计算机(a)110和计算机(b)120分担这一主旨的命令执行控制信息117和命令执行控制信息127。
240.在命令执行控制信息117中例如作为动态执行部分而记述处理(h),作为执行条件而记述处理(d)的结果与基准α吻合这一条件。另外,在命令执行控制信息117中,作为执行条件成立的情况下的动作,记述由计算机(a)110执行处理(h)的前半部分这一内容,作为执行条件不成立的情况下的动作,记述执行处理(h)的全部这一内容。
241.在命令执行控制信息127中例如作为动态执行部分而记述处理(h),作为执行条件而记述处理(d)的结果与基准α吻合这一条件。另外,在命令执行控制信息127中,作为执行条件成立的情况下的动作,记述由计算机(b)120执行处理(h)的后半部分这一内容,作为执行条件不成立的情况下的动作,记述不执行处理(h)这一内容。
242.并且,第2分割部504在步骤s545中将程序代码(a)112、程序代码(b)122、命令执行控制信息117和命令执行控制信息127输出。
243.图13示出将图12的程序代码的分配结果记述于图3的固定执行部分113、动态执行部分114、固定执行部分123以及动态执行部分124的例子。
244.即,在固定执行部分113中记述处理(a、e、i、j、n、d、m、r),在动态执行部分114中记述处理(h)。另一方面,在固定执行部分123中记述处理(b、c、f、g、k、l、o、p),在动态执行部分124中记述处理(h)。
245.接下来,参照图18,对计算机(a)110以及计算机(b)120的动作例进行说明。
246.下面,说明计算机(a)110的动作,但以下的说明也适用于计算机(b)120。
247.首先,在步骤s61中,命令执行控制部116对接下来要执行的处理进行确定。具体而言,命令执行控制部116根据程序计数器所示的值而对接下来要执行的处理进行确定。
248.接下来,在步骤s62中,命令执行控制部116对接下来要执行的处理是否为固定执行部分113进行判定。
249.具体而言,命令执行控制部116对接下来要执行的处理是否与在命令执行控制信息117中被记述为动态执行部分的处理一致进行判定。在接下来要执行的执行的处理与在命令执行控制信息117中被记述为动态执行部分的处理不一致的情况下,命令执行控制部116判定为接下来要执行的处理是固定执行部分113。
250.在接下来要执行的处理是固定执行部分113的情况下(在步骤s62中为yes),处理进入步骤s63。
251.另一方面,在接下来要执行的处理不是固定执行部分113的情况下(在步骤s62为no),处理进入步骤s64。
252.在步骤s63中,命令执行控制部116执行固定执行部分113即下一个处理。
253.在步骤s64中,命令执行控制部116参照命令执行控制信息117的执行条件。
254.然后,在步骤s65中,命令执行控制部116对执行条件是否成立进行判定。
255.在执行条件成立的情况下(在步骤s65中为yes),处理进入步骤s66。
256.另一方面,在执行条件不成立的情况下(在步骤s65中为no),处理进入步骤s67。
257.在步骤s66中,命令执行控制部116进行执行条件成立的情况下的动作。在前述的例子中,命令执行控制部116执行处理(h)的前半部分。
258.在步骤s67中,命令执行控制部116进行执行条件不成立的情况下的动作。在前述的例子中,命令执行控制部116执行处理(h)的整体。
259.***实施方式的效果的说明***
260.如上所述,在本实施方式中,当存在共存处理的情况下,选择并行执行方式和共享执行方式中的执行时间更短的方式。另外,在本实施方式中,当存在负荷变动处理的情况下,选择单独执行方式和分担执行方式中的执行时间更短的方式。
261.因此,根据本实施方式,能够实现系统开销少的高效的程序的分割。
262.另外,在本实施方式中,由各计算机执行以如上方式被分割的程序代码。因此,能够以少的系统开销而高效地对控制对象设备进行控制。
263.标号的说明
264.100计算机,101程序存储器,102程序代码,110计算机(a),111程序存储器,112程序代码(a),113固定执行部分,114动态执行部分,115处理器,116命令执行控制部,117命令执行控制信息,120计算机(b),121程序存储器,122程序代码(b),123固定执行部分,124动
态执行部分,125处理器,126命令执行控制部,127命令执行控制信息,130计算机(c),131程序存储器,132程序代码(c),200共享总线,201共享存储器,300控制对象设备(a),301控制对象设备(b),302控制对象设备(c),401计算机信息,402共享存储器访问性能信息,403程序执行顺序信息,404输出关系处理信息,405候选程序块信息,500程序代码分配装置,501第1分割部,502候选程序块判定部,503方式选择部,504第2分割部,901处理器,902主存储装置,903辅助存储装置,904通信装置。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献