JP6165016B2 - Load balancing controller - Google Patents

Load balancing controller Download PDF

Info

Publication number
JP6165016B2
JP6165016B2 JP2013209407A JP2013209407A JP6165016B2 JP 6165016 B2 JP6165016 B2 JP 6165016B2 JP 2013209407 A JP2013209407 A JP 2013209407A JP 2013209407 A JP2013209407 A JP 2013209407A JP 6165016 B2 JP6165016 B2 JP 6165016B2
Authority
JP
Japan
Prior art keywords
unit
packet
processing
arithmetic
calculation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2013209407A
Other languages
Japanese (ja)
Other versions
JP2015075778A (en
Inventor
伊藤 大
大 伊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Olympus Corp
Original Assignee
Olympus Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Olympus Corp filed Critical Olympus Corp
Priority to JP2013209407A priority Critical patent/JP6165016B2/en
Publication of JP2015075778A publication Critical patent/JP2015075778A/en
Application granted granted Critical
Publication of JP6165016B2 publication Critical patent/JP6165016B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、負荷分散制御装置に関する。   The present invention relates to a load distribution control device.

従来から、複数のプロセッサで構成されるマルチプロセッサシステムがある。このようなマルチプロセッサシステムにおいては、各プロセッサの稼働率を向上することが望まれる。このため、例えば、特許文献1のように、マスタプロセッサと複数のスレーブプロセッサとを備えたマルチプロセッサシステムにおいて、マスタプロセッサが、それぞれのスレーブプロセッサが実行したジョブの数やジョブを実行していないアイドリング状態となった回数を監視することによって、それぞれのスレーブプロセッサにおける処理の負荷を分散する負荷分散制御装置の技術が開示されている。   Conventionally, there are multiprocessor systems composed of a plurality of processors. In such a multiprocessor system, it is desired to improve the operation rate of each processor. For this reason, for example, as in Patent Document 1, in a multiprocessor system including a master processor and a plurality of slave processors, the master processor does not execute the number of jobs executed by each slave processor or idling. There is disclosed a technology of a load distribution control device that distributes the processing load in each slave processor by monitoring the number of times a state is reached.

特許文献1に開示された負荷分散制御装置では、それぞれのスレーブプロセッサ内に、実行したジョブの数をカウントするジョブ数カウンタと、処理がアイドリング状態となった回数をカウントする負荷カウンタとを設け、負荷の分散制御を行うマスタプロセッサが、内部に備えたインターバルタイマに基づいた一定時間毎に、それぞれのスレーブプロセッサからジョブ数カウンタのカウント値と負荷カウンタのカウント値とを取得する。そして、マスタプロセッサは、取得したジョブ数カウンタのカウント値が最小であるスレーブプロセッサを、負荷が少ないスレーブプロセッサであると判定する。このとき、ジョブ数カウンタのカウント値が最小であるスレーブプロセッサが複数ある場合には、マスタプロセッサは、これらのスレーブプロセッサの中で負荷カウンタのカウント値が大きい、すなわち、アイドリング状態となった回数が多いスレーブプロセッサを、負荷が少ないスレーブプロセッサであると判定する。その後、マスタプロセッサは、負荷が少ないと判定したスレーブプロセッサに、次のジョブを投入する。   In the load distribution control device disclosed in Patent Document 1, each slave processor is provided with a job number counter that counts the number of executed jobs, and a load counter that counts the number of times that the process is in an idling state, The master processor that performs load distribution control acquires the count value of the job number counter and the count value of the load counter from each slave processor at regular intervals based on an interval timer provided therein. Then, the master processor determines that the slave processor having the smallest count value of the acquired job number counter is a slave processor with a low load. At this time, when there are a plurality of slave processors having the smallest count value of the job number counter, the master processor has a large count value of the load counter among these slave processors, that is, the number of times of being in an idling state. A large number of slave processors are determined to be slave processors with a low load. Thereafter, the master processor submits the next job to the slave processor determined to have a low load.

このように、特許文献1に開示された負荷分散制御装置では、実行したジョブの数が少ないスレーブプロセッサに次のジョブを投入することによって、それぞれのスレーブプロセッサが実行する処理の負荷を分散している。   As described above, the load distribution control device disclosed in Patent Document 1 distributes the load of processing executed by each slave processor by submitting the next job to a slave processor with a small number of executed jobs. Yes.

特公平5−019742号公報Japanese Patent Publication No. 5-019742

しかしながら、特許文献1に開示された従来の負荷分散制御装置では、マスタプロセッサにおける処理の効率が一定時間毎に低下してしまうことがあると考えられる。これは、マスタプロセッサが一定時間毎に負荷が少ないスレーブプロセッサの判定を行っているため、例えば、この判定の処理をソフトウェアで実現した場合には、判定処理のルーチンが一定時間毎に読み出されることになり、マスタプロセッサがこれまでに実行していた処理中断して負荷分散の制御を行う必要があるからである。   However, in the conventional load distribution control device disclosed in Patent Document 1, it is considered that the processing efficiency of the master processor may decrease at regular intervals. This is because the master processor determines a slave processor with a low load at regular time intervals. For example, when the determination process is realized by software, the determination process routine is read at regular time intervals. This is because it is necessary to control the load distribution by interrupting the processing executed so far by the master processor.

また、特許文献1に開示された従来の負荷分散制御装置では、スレーブプロセッサに投入されるジョブを処理する際の負荷のばらつきが考慮されていないため、全てのジョブの負荷が同じである場合には、適正な負荷分散の制御を行うことができると考えられるが、処理を実行する際の負荷がジョブ毎に異なる場合には、本来の目的である負荷分散の制御を正しく行えないことがあると考えられる。これは、特許文献1に開示された従来の負荷分散制御装置による負荷が少ないスレーブプロセッサの判定では、最初に、ジョブ数カウンタのカウント値を用いて判定が行われ、それぞれのスレーブプロセッサにおける負荷のバランスは、ジョブ数カウンタのカウント値が最小であるスレーブプロセッサが複数ある場合にのみ、アイドリング状態となった回数が考慮されるからである。   Further, in the conventional load distribution control device disclosed in Patent Document 1, since variation in load when processing a job input to a slave processor is not taken into consideration, the load of all jobs is the same. Is considered to be able to perform appropriate load balancing control, but if the load at the time of executing the process varies from job to job, the load balancing control that is the original purpose may not be performed correctly. it is conceivable that. This is because in the determination of a slave processor with a low load by the conventional load distribution control device disclosed in Patent Document 1, the determination is first made using the count value of the job number counter, and the load of each slave processor is determined. This is because the number of idling states is taken into account only when there are a plurality of slave processors having the smallest count value of the job number counter.

例えば、負荷の軽いジョブが数多く投入されているスレーブプロセッサと、負荷の重いジョブが少ない数だけ投入されているスレーブプロセッサとがあった場合を考える。この場合にそれぞれのスレーブプロセッサの負荷を判定すると、ジョブ数カウンタのカウント値が小さい値である、負荷の重いジョブが少ない数だけ投入されているスレーブプロセッサの方が、負荷が少ないスレーブプロセッサであると判定されてしまい、負荷を適正に分散させることができない。   For example, consider a case where there are slave processors in which a large number of lightly loaded jobs are input and slave processors in which a small number of heavily loaded jobs are input. In this case, when the load of each slave processor is determined, the slave processor in which the count value of the job number counter is small and a small number of jobs with a heavy load are input is a slave processor with a light load. It is determined that the load cannot be properly distributed.

このように、従来の負荷分散制御装置では、実際に負荷が少ないスレーブプロセッサを正しく判定することができず、適正な負荷分散制御によって、それぞれのスレーブプロセッサの稼働率を向上させることができるとは必ずしもいえない、という問題がある。   As described above, in the conventional load distribution control device, it is not possible to correctly determine the slave processor that is actually lightly loaded, and it is possible to improve the operation rate of each slave processor by appropriate load distribution control. There is a problem that cannot always be said.

本発明は、上記の課題認識に基づいてなされたものであり、複数のプロセッサが連携して処理を行うマルチプロセッサシステムにおいて、それぞれのプロセッサの負荷を適正に分散することができる負荷分散制御装置を提供することを目的としている。   The present invention has been made on the basis of the above problem recognition, and in a multiprocessor system in which a plurality of processors cooperate to perform processing, a load distribution control device capable of appropriately distributing the load of each processor is provided. It is intended to provide.

上記の課題を解決するため、本発明の負荷分散制御装置は、要求する演算処理の内容と、該演算処理を行う対象の入力データとを含むパケットを順次格納し、入力された前記パケットの出力要求に応じて、格納されている前記パケットを、前記パケットが格納された順番で出力するパケットキューイング部と、入力された前記パケットに応じた演算処理が完了した後、次に演算処理を実行する前記パケットの前記出力要求を、前記パケットキューイング部に出力し、前記出力要求に応じて前記パケットキューイング部から入力された前記パケットに応じた演算処理を実行する複数の演算処理部と、を備え、前記演算処理部のそれぞれは、入力された前記パケットに含まれる入力データに対して、該パケットに含まれる前記演算処理の内容に応じた演算を実行する演算部と、前記演算部が演算を実行中であるか否かを判定し、該演算部が演算を実行中でない場合に前記出力要求を出力し、該出力要求に応じて入力された前記パケットを、前記演算部に出力するキュー読み出し部と、前記キュー読み出し部によって加算され、前記演算部によって減算されるカウント値を出力するカウンタ部と、を備え、前記パケットは、要求するフィードバック処理における一連の前記演算処理の内容が複数の処理内容に分割されて含まれており、前記演算部は、前記パケットに含まれる前記処理内容の数と同じ数の演算ユニットが直列に接続されたパイプラインが構成され、前記パイプラインを構成する前記演算ユニットのそれぞれは、前記パケットに含まれる異なる前記処理内容のそれぞれに対応し、対応する前記処理内容に応じた演算を順次実行し、前記カウンタ部は、初期値から前記パイプラインを構成する前記演算ユニットの数までの間でカウントした前記カウント値を出力し、前記キュー読み出し部は、前記パイプラインの先頭に配置された前記演算ユニットが演算を実行中であるか否かを判定し、該演算ユニットが演算を実行中でない場合に、前記出力要求を出力し、前記パイプラインの先頭に配置された前記演算ユニットに、対応する前記処理内容を出力したときに前記カウント値を加算させ、前記演算部は、前記パイプラインの最終段に配置された前記演算ユニットが、対応する前記処理内容に応じた演算を完了し、該完了した演算の結果が、予め定めた前記フィードバック処理の打ち切り条件を満足する場合に前記カウント値を減算させ、該完了した演算の結果が前記打ち切り条件を満足さない場合に、該完了した演算の結果を前記入力データとして前記フィードバック処理を継続するための前記パケットを出力する、ことを特徴とする。 In order to solve the above-described problem, the load distribution control device according to the present invention sequentially stores packets including the contents of requested arithmetic processing and input data to be subjected to the arithmetic processing, and outputs the input packets. Upon request, the packet that is stored, a packet queuing unit for outputting in the order in which the packet is stored, after the processing corresponding to the input the packet is complete, then processing the A plurality of arithmetic processing units that output the output request of the packet to be executed to the packet queuing unit, and execute arithmetic processing according to the packet input from the packet queuing unit in response to the output request; Each of the arithmetic processing units responds to input data included in the input packet according to the content of the arithmetic processing included in the packet. A calculation unit that executes the calculation, and whether or not the calculation unit is executing the calculation, and outputs the output request when the calculation unit is not executing the calculation, and according to the output request A queue reading unit that outputs the input packet to the arithmetic unit; and a counter unit that outputs a count value that is added by the queue reading unit and subtracted by the arithmetic unit. The content of the series of arithmetic processing in the feedback processing is divided into a plurality of processing contents, and the arithmetic unit is connected in series with the same number of arithmetic units as the number of processing contents included in the packet. Pipelines are configured, and each of the arithmetic units constituting the pipeline corresponds to each of the different processing contents included in the packet. The counter unit sequentially executes operations according to the corresponding processing contents, and the counter unit outputs the count value counted from an initial value to the number of the arithmetic units constituting the pipeline, and reads the queue The unit determines whether or not the arithmetic unit arranged at the head of the pipeline is executing an operation, and outputs the output request when the arithmetic unit is not executing an operation. When the corresponding processing content is output to the arithmetic unit arranged at the head of the line, the count value is added, and the arithmetic unit corresponds to the arithmetic unit arranged at the last stage of the pipeline. When the calculation according to the processing content to be completed is completed, and the result of the completed calculation satisfies a predetermined condition for aborting the feedback processing, the counting is performed. Output the packet for continuing the feedback process with the result of the completed operation as the input data when the result of the completed operation does not satisfy the abort condition. Features.

本発明によれば、複数のプロセッサが連携して処理を行うマルチプロセッサシステムにおいて、それぞれのプロセッサの負荷を適正に分散することができるという効果が得られる。   According to the present invention, in a multiprocessor system in which a plurality of processors perform processing in cooperation with each other, it is possible to appropriately distribute the load on each processor.

本発明の第1の実施形態における負荷分散制御装置の概略構成の一例を示したブロック図である。It is the block diagram which showed an example of schematic structure of the load distribution control apparatus in the 1st Embodiment of this invention. 本第1の実施形態の負荷分散制御装置における動作のタイミングの一例を模式的に示した図である。It is the figure which showed typically an example of the timing of the operation | movement in the load distribution control apparatus of the 1st embodiment. 本発明の第2の実施形態における負荷分散制御装置の概略構成の一例を示したブロック図である。It is the block diagram which showed an example of schematic structure of the load distribution control apparatus in the 2nd Embodiment of this invention. 本第2の実施形態の負荷分散制御装置における動作のタイミングの一例を模式的に示した図である。It is the figure which showed typically an example of the timing of the operation | movement in the load distribution control apparatus of the 2nd embodiment. 本第2の実施形態の負荷分散制御装置における動作のタイミングと第1の実施形態の負荷分散制御装置における動作のタイミングとを比較して説明する図である。It is a figure which compares and demonstrates the operation timing in the load distribution control apparatus of this 2nd Embodiment, and the operation timing in the load distribution control apparatus of 1st Embodiment. 本発明の第3の実施形態における負荷分散制御装置の概略構成の一例を示したブロック図である。It is the block diagram which showed an example of schematic structure of the load distribution control apparatus in the 3rd Embodiment of this invention. 本第3の実施形態の負荷分散制御装置における動作のタイミングの一例を模式的に示した図である。It is the figure which showed typically an example of the timing of the operation | movement in the load distribution control apparatus of the 3rd embodiment.

<第1の実施形態>
以下、本発明の第1の実施形態について、図面を参照して説明する。図1は、本第1の実施形態における負荷分散制御装置の概略構成の一例を示したブロック図である。図1に示した負荷分散制御装置10は、1つのホストプロセッサ11と、3つのプロセッサエレメント部12a〜プロセッサエレメント部12cと、パケットキューイング部13と、調停部14と、を備えている。負荷分散制御装置10は、当該負荷分散制御装置10の外部から要求された演算処理を、プロセッサエレメント部12a〜プロセッサエレメント部12cのそれぞれで分担して行う、マルチプロセッサシステムの演算装置である。なお、以下の説明においては、プロセッサエレメント部12a〜プロセッサエレメント部12cのそれぞれを区別せずに表す場合には、「プロセッサエレメント部12」という。
<First Embodiment>
A first embodiment of the present invention will be described below with reference to the drawings. FIG. 1 is a block diagram illustrating an example of a schematic configuration of the load distribution control device according to the first embodiment. The load distribution control apparatus 10 illustrated in FIG. 1 includes one host processor 11, three processor element units 12a to 12c, a packet queuing unit 13, and an arbitrating unit 14. The load balancing control device 10 is a computing device of a multiprocessor system that performs computation processing requested from outside the load balancing control device 10 by the processor element unit 12a to the processor element unit 12c. In the following description, when each of the processor element unit 12a to the processor element unit 12c is expressed without distinction, it is referred to as a “processor element unit 12”.

ホストプロセッサ11は、負荷分散制御装置10における主のプロセッサである。ホストプロセッサ11は、負荷分散制御装置10の外部からの演算処理の要求を受け付け、演算処理の結果を負荷分散制御装置10の外部に出力する。ホストプロセッサ11は、要求された演算処理の演算内容と、演算処理を行う対象の入力データとを含むパケットを、パケットキューイング部13に書き込む。   The host processor 11 is a main processor in the load distribution control device 10. The host processor 11 receives a calculation processing request from the outside of the load distribution control device 10 and outputs the result of the calculation processing to the outside of the load distribution control device 10. The host processor 11 writes a packet including the requested computation content of the computation processing and the input data to be subjected to the computation processing into the packet queuing unit 13.

なお、ホストプロセッサ11には、負荷分散制御装置10の外部からそれぞれのパケットが直接入力される構成であっても、負荷分散制御装置10の外部から入力された演算要求に応じたパケット生成する構成であってもよい。図1においては、ホストプロセッサ11が、パケットP1をパケットキューイング部13に出力している状態を示している。なお、本第1の実施形態においては、パケットの構成や、パケットに基づいて行う演算処理の内容および入力データの形式に関しては、何ら限定しない。   The host processor 11 is configured to generate a packet in response to a calculation request input from the outside of the load distribution control device 10 even if each packet is directly input from the outside of the load distribution control device 10. It may be. FIG. 1 shows a state where the host processor 11 is outputting the packet P1 to the packet queuing unit 13. In the first embodiment, the configuration of the packet, the content of the arithmetic processing performed based on the packet, and the format of the input data are not limited at all.

パケットキューイング部13は、例えば、パケットを格納する記憶領域を複数備えたFIFO(First In,First Out)メモリで構成される待ち行列のメモリである。パケットキューイング部13には、ホストプロセッサ11によって書き込まれたパケットが、書き込まれた順番で順次格納される。また、パケットキューイング部13に格納されたそれぞれのパケットは、調停部14によって、格納された順番で順次読み出される。   The packet queuing unit 13 is, for example, a queuing memory composed of a FIFO (First In, First Out) memory having a plurality of storage areas for storing packets. Packets written by the host processor 11 are sequentially stored in the packet queuing unit 13 in the order of writing. Each packet stored in the packet queuing unit 13 is sequentially read out by the arbitrating unit 14 in the stored order.

調停部14は、プロセッサエレメント部12a〜プロセッサエレメント部12cのそれぞれから入力された、次のパケットの出力を要求する出力要求信号REQに応じて、パケットキューイング部13に格納されているパケットを読み出し、読み出したパケットを、出力要求信号REQを入力してきたプロセッサエレメント部12a〜プロセッサエレメント部12cのいずれかに出力する。   The arbitration unit 14 reads out the packet stored in the packet queuing unit 13 in response to the output request signal REQ that requests the output of the next packet input from each of the processor element unit 12a to the processor element unit 12c. The read packet is output to any one of the processor element unit 12a to the processor element unit 12c that has received the output request signal REQ.

調停部14は、同時に複数のプロセッサエレメント部12から出力要求信号REQが入力された場合には、出力要求信号REQを受け付けるプロセッサエレメント部12を調停し、いずれか1つのプロセッサエレメント部12から入力された出力要求信号REQを受け付ける。そして、出力要求信号REQを受け付けたいずれか1つのプロセッサエレメント部12に、読み出したパケットを出力する。   The arbitration unit 14 arbitrates the processor element unit 12 that receives the output request signal REQ when the output request signal REQ is input from a plurality of processor element units 12 at the same time, and is input from any one of the processor element units 12. The output request signal REQ is received. Then, the read packet is output to any one of the processor element units 12 that has received the output request signal REQ.

なお、調停部14による出力要求信号REQを受け付けるプロセッサエレメント部12の調停方法としては、例えば、それぞれのプロセッサエレメント部12に付与された識別番号が小さい順(図1においては、プロセッサエレメント部12aが最も識別番号が小さく、プロセッサエレメント部12cが最も識別番号が大きい)に出力要求信号REQを受け付けるなどの方法や、が考えられる。また、調停部14による調停方法としては、それぞれのプロセッサエレメント部12に付与された優先順位に基づいて調停するなど、様々な方法が考えられる。本第1の実施形態においては、調停部14による調停方法に関しては、何ら限定しない。   The arbitration method of the processor element unit 12 that receives the output request signal REQ by the arbitration unit 14 is, for example, in ascending order of identification numbers assigned to the processor element units 12 (in FIG. 1, the processor element unit 12a A method of accepting the output request signal REQ at the lowest identification number and the highest identification number in the processor element section 12c is conceivable. Further, as an arbitration method by the arbitration unit 14, various methods such as arbitration based on the priority assigned to each processor element unit 12 can be considered. In the first embodiment, the arbitration method by the arbitration unit 14 is not limited at all.

プロセッサエレメント部12a〜プロセッサエレメント部12cのそれぞれは、同じ処理機能を持ったプロセッサ(演算処理部)である。プロセッサエレメント部12a〜プロセッサエレメント部12cのそれぞれは、調停部14を介して入力された、パケットキューイング部13に格納されたパケットに応じた演算処理の演算(タスク)を実行する。   Each of the processor element unit 12a to the processor element unit 12c is a processor (arithmetic processing unit) having the same processing function. Each of the processor element unit 12a to the processor element unit 12c executes an arithmetic operation (task) according to a packet input to the arbitration unit 14 and stored in the packet queuing unit 13.

また、プロセッサエレメント部12a〜プロセッサエレメント部12cのそれぞれは、入力されたパケットに応じて実行しているタスクがなくなり、すなわち、今回実行しているタスクの処理が完了し、次のタスクを実行する準備が整ったときに、次のパケットの出力を要求する出力要求信号REQを、調停部14に出力する。そして、調停部14から次に実行するパケットが入力されると、入力されたパケットに応じた演算処理の実行を開始する。このように、プロセッサエレメント部12a〜プロセッサエレメント部12cのそれぞれは、実行中の演算処理が完了した後、自発的に次のパケットを要求して、次のパケットに応じた演算処理のタスクを実行する。   In addition, each of the processor element unit 12a to the processor element unit 12c has no task being executed according to the input packet, that is, the task currently being executed is completed and the next task is executed. When preparation is complete, an output request signal REQ for requesting output of the next packet is output to the arbitration unit 14. Then, when a packet to be executed next is input from the arbitration unit 14, execution of arithmetic processing corresponding to the input packet is started. As described above, each of the processor element unit 12a to the processor element unit 12c voluntarily requests the next packet after the operation processing being executed is completed, and executes the task of the operation processing according to the next packet. To do.

プロセッサエレメント部12aは、キュー読み出し部121aと演算部122aとを備えている。また、プロセッサエレメント部12bは、キュー読み出し部121bと演算部122bとを備えている。また、プロセッサエレメント部12cは、キュー読み出し部121cと演算部122cとを備えている。プロセッサエレメント部12a〜プロセッサエレメント部12cのそれぞれに備えたキュー読み出し部121a〜キュー読み出し部121cのそれぞれは、同じ機能を持った構成要素である。また、プロセッサエレメント部12a〜プロセッサエレメント部12cのそれぞれに備えた演算部122a〜演算部122cのそれぞれは、同じ機能を持った構成要素である。   The processor element unit 12a includes a queue reading unit 121a and a calculation unit 122a. The processor element unit 12b includes a queue reading unit 121b and a calculation unit 122b. The processor element unit 12c includes a queue reading unit 121c and a calculation unit 122c. Each of the queue reading unit 121a to the queue reading unit 121c included in each of the processor element unit 12a to the processor element unit 12c is a component having the same function. In addition, each of the calculation units 122a to 122c included in each of the processor element unit 12a to the processor element unit 12c is a component having the same function.

以下の説明においては、キュー読み出し部121a〜キュー読み出し部121cのそれぞれを区別せずに表す場合には、「キュー読み出し部121」という。また、演算部122a〜演算部122cのそれぞれを区別せずに表す場合には、「演算部122」という。また、以下の説明においては、プロセッサエレメント部12を代表して、プロセッサエレメント部12aに備えた構成要素について説明する。なお、プロセッサエレメント部12bに備えた構成要素や、プロセッサエレメント部12cに備えた構成要素も、以下に説明するプロセッサエレメント部12aに備えた構成要素と同様の動作である。   In the following description, when each of the queue reading unit 121a to the queue reading unit 121c is expressed without distinction, it is referred to as a “queue reading unit 121”. Further, when each of the calculation units 122a to 122c is expressed without distinction, it is referred to as a “calculation unit 122”. Moreover, in the following description, the component provided in the processor element part 12a is demonstrated on behalf of the processor element part 12. FIG. The constituent elements provided in the processor element unit 12b and the constituent elements provided in the processor element unit 12c also operate in the same manner as the constituent elements provided in the processor element unit 12a described below.

キュー読み出し部121aは、調停部14から入力されたパケットを、演算部122aに出力する。また、キュー読み出し部121aは、演算部122aが実行しているタスクがない場合、次のパケットの出力を要求する出力要求信号REQを調停部14に出力し、出力した出力要求信号REQに応じて入力された次のパケットを、演算部122aに出力する。   The queue reading unit 121a outputs the packet input from the arbitration unit 14 to the calculation unit 122a. Further, when there is no task being executed by the arithmetic unit 122a, the queue reading unit 121a outputs an output request signal REQ requesting output of the next packet to the arbitrating unit 14, and according to the output request signal REQ thus output. The input next packet is output to the arithmetic unit 122a.

なお、キュー読み出し部121aが、演算部122aが実行しているタスクがあるか否かを判定する方法としては、例えば、演算部122aが出力する演算完了信号を検出する方法や、演算部122aから入力される読み出し指示信号に応じて判定する方法などが考えられる。本第1の実施形態においては、キュー読み出し部121aによる演算部122aが実行しているタスクがあるか否かの判定方法に関しては、何ら限定しない。   As a method for determining whether or not the queue reading unit 121a has a task being executed by the calculation unit 122a, for example, a method of detecting a calculation completion signal output from the calculation unit 122a, or from the calculation unit 122a A method of determining according to an input read instruction signal can be considered. In the first embodiment, the method for determining whether or not there is a task being executed by the calculation unit 122a by the queue reading unit 121a is not limited.

演算部122aは、キュー読み出し部121aから入力されたパケットに含まれる入力データに対して、このパケットに含まれる演算内容に応じた演算(タスク)を実行する。演算部122aは、タスクの実行が完了すると、例えば、タスクの実行が完了したことを表す演算完了信号を出力する。また、演算部122aは、タスクの実行が完了すると、次のパケットに応じたタスクを実行するため、例えば、次のパケットの読み出しを指示する読み出し指示信号を、キュー読み出し部121aに出力する。   The calculation unit 122a performs a calculation (task) corresponding to the calculation content included in the packet on the input data included in the packet input from the queue reading unit 121a. When the execution of the task is completed, the calculation unit 122a outputs, for example, a calculation completion signal indicating that the execution of the task is completed. Further, when the execution of the task is completed, the arithmetic unit 122a outputs, for example, a read instruction signal instructing reading of the next packet to the queue reading unit 121a in order to execute the task corresponding to the next packet.

このような構成によって、負荷分散制御装置10では、要求された演算処理を複数のプロセッサエレメント部12のそれぞれで分担して行う際に、それぞれのプロセッサエレメント部12が実行する演算処理の負荷を分散することによって、いずれかのプロセッサエレメント部12のみに負荷が集中してしまうことを回避することができる。   With such a configuration, the load distribution control device 10 distributes the load of the arithmetic processing executed by each processor element unit 12 when the requested arithmetic processing is shared by each of the plurality of processor element units 12. By doing so, it is possible to avoid the concentration of the load only on one of the processor element units 12.

なお、図1に示した負荷分散制御装置10の構成では、調停部14が、プロセッサエレメント部12のそれぞれから入力された出力要求信号REQの受付を調停する構成を示したが、負荷分散制御装置10の構成は、図1に示した構成のみに限定されるものではない。例えば、負荷分散制御装置10に備えたそれぞれのプロセッサエレメント部12を順番に指定し、実行しているタスクがないプロセッサエレメント部12が、指定されたタイミングでのみ出力要求信号REQを出力する構成であれば、負荷分散制御装置10に備えた全てのプロセッサエレメント部12で、出力要求信号REQを出力するタイミングが重複することがなくなる。このため、負荷分散制御装置10に調停部14を備えない構成にすることもできる。   In the configuration of the load distribution control device 10 illustrated in FIG. 1, the configuration is shown in which the arbitration unit 14 arbitrates reception of the output request signal REQ input from each of the processor element units 12. The configuration of 10 is not limited to the configuration shown in FIG. For example, the processor element units 12 included in the load distribution control device 10 are designated in order, and the processor element unit 12 having no task being executed outputs the output request signal REQ only at the designated timing. If there is, the timing for outputting the output request signal REQ is not duplicated in all the processor element units 12 provided in the load distribution control apparatus 10. For this reason, it can also be set as the structure which does not provide the arbitration part 14 in the load distribution control apparatus 10.

より具体的には、予め定めたタイミング毎に“0”から負荷分散制御装置10に備えたプロセッサエレメント部12の数までカウントするカウンタを備える。そして、このカウンタのカウント値とそれぞれのプロセッサエレメント部12に付与された識別番号とがあっているときに、このプロセッサエレメント部12が出力要求信号REQを出力することを許可する構成にする。この構成によって、複数のプロセッサエレメント部12から同時に出力要求信号REQが出力されることはなくなる。なお、このような構成の場合、それぞれのプロセッサエレメント部12(キュー読み出し部121)は、パケットキューイング部13に直接アクセスして、パケットキューイング部13に格納されているパケットを読み出す構成になる。   More specifically, a counter that counts from “0” to the number of processor element units 12 provided in the load distribution control device 10 at predetermined timings is provided. When the count value of the counter matches the identification number assigned to each processor element unit 12, the processor element unit 12 is allowed to output the output request signal REQ. With this configuration, the output request signals REQ are not simultaneously output from the plurality of processor element units 12. In the case of such a configuration, each processor element unit 12 (queue read unit 121) directly accesses the packet queuing unit 13 and reads a packet stored in the packet queuing unit 13.

次に、負荷分散制御装置10の動作について説明する。図2は、本第1の実施形態の負荷分散制御装置10における動作のタイミングの一例を模式的に示した図である。なお、図2においては、図2(a)に、従来の負荷分散制御装置の動作のタイミングの一例を示し、図2(b)に、本第1の実施形態の負荷分散制御装置10の動作のタイミングの一例を示している。   Next, the operation of the load distribution control device 10 will be described. FIG. 2 is a diagram schematically illustrating an example of the operation timing in the load distribution control apparatus 10 of the first embodiment. In FIG. 2, FIG. 2 (a) shows an example of the operation timing of the conventional load distribution control device, and FIG. 2 (b) shows the operation of the load distribution control device 10 of the first embodiment. An example of the timing is shown.

まず、図2(a)を用いて、従来の負荷分散制御装置における動作を説明する。図2(a)には、本第1の実施形態の負荷分散制御装置10と同様に、3つのスレーブプロセッサa〜スレーブプロセッサcを備えている構成の従来の負荷分散制御装置におけるそれぞれのスレーブプロセッサのジョブ数カウンタのカウント値と、それぞれのスレーブプロセッサがジョブを実行している期間とを示している。   First, the operation of the conventional load distribution control device will be described with reference to FIG. FIG. 2A shows each slave processor in a conventional load distribution control apparatus having three slave processors a to c as in the load distribution control apparatus 10 of the first embodiment. The count value of the job number counter and the period during which each slave processor is executing a job are shown.

従来の負荷分散制御装置では、マスタプロセッサが、一定時間毎に取得したそれぞれのスレーブプロセッサのジョブ数カウンタのカウント値に基づいて、次のジョブを投入するスレーブプロセッサを判定する。このため、図2(a)に示したようなタイミングで、それぞれのスレーブプロセッサのジョブ数カウンタのカウント値に基づいた、負荷が少ないスレーブプロセッサの判定が行われる。   In the conventional load distribution control device, the master processor determines the slave processor to which the next job is to be input based on the count value of the job number counter of each slave processor acquired at regular intervals. For this reason, at the timing as shown in FIG. 2A, the slave processor with a low load is determined based on the count value of the job number counter of each slave processor.

図2(a)に示したタイミングでは、スレーブプロセッサaのジョブ数カウンタのカウント値が“3”、スレーブプロセッサbのジョブ数カウンタのカウント値が“2”、スレーブプロセッサcのジョブ数カウンタのカウント値が“1”である。このため、従来の負荷分散制御装置に備えたマスタプロセッサは、ジョブ数カウンタのカウント値が最小であるスレーブプロセッサcを、負荷が少ないスレーブプロセッサであると判定し、スレーブプロセッサcに、次のジョブを投入することになる。   At the timing shown in FIG. 2A, the count value of the job number counter of the slave processor a is “3”, the count value of the job number counter of the slave processor b is “2”, and the count of the job number counter of the slave processor c is The value is “1”. For this reason, the master processor provided in the conventional load distribution control apparatus determines that the slave processor c having the smallest count value of the job number counter is a slave processor having a low load, and sends the next job to the slave processor c. Will be input.

しかし、図2(a)を見てわかるように、スレーブプロセッサaとスレーブプロセッサbとは、ジョブ数カウンタのカウント値は最小ではないが、それぞれが実行するジョブの負荷がかるいため、スレーブプロセッサcよりも早く実行しているジョブが完了し、ジョブを実行していないアイドリング状態となる。しかし、マスタプロセッサは、次のジョブをスレーブプロセッサcに投入しているため、スレーブプロセッサaとスレーブプロセッサbとは、アイドリング状態が解消されることなく、次のジョブがスレーブプロセッサcによって実行されることになる。   However, as can be seen from FIG. 2A, the slave processor a and the slave processor b do not have the smallest count value of the job number counter, but the load of jobs to be executed by each of them is heavy. The job that is being executed earlier is completed, and the idling state in which the job is not executed is entered. However, since the master processor has submitted the next job to the slave processor c, the slave processor a and the slave processor b execute the next job by the slave processor c without releasing the idling state. It will be.

このように、従来の負荷分散制御装置における負荷分散の制御では、アイドリング状態となるスレーブプロセッサ(図2(a)においては、スレーブプロセッサa)に正しくジョブが投入されない、すなわち、適正な負荷分散の制御を行うことができない。   As described above, in the load distribution control in the conventional load distribution control device, the job is not correctly input to the slave processor that is in the idling state (slave processor a in FIG. 2A). Control cannot be performed.

これに対して、本第1の実施形態の負荷分散制御装置10では、適正な負荷分散の制御を行うことができる。次に、図2(b)を用いて、本第1の実施形態の負荷分散制御装置10における動作を説明する。図2(b)には、図1に示した3つのプロセッサエレメント部12それぞれが、入力されたパケットに応じたタスクを実行している期間を示している。   On the other hand, in the load distribution control device 10 of the first embodiment, appropriate load distribution can be controlled. Next, the operation of the load distribution control apparatus 10 according to the first embodiment will be described with reference to FIG. FIG. 2B shows a period in which each of the three processor element units 12 shown in FIG. 1 is executing a task corresponding to the input packet.

負荷分散制御装置10では、それぞれのプロセッサエレメント部12が自発的に調停部14に次のパケットを要求して、次のパケットに応じた演算処理のタスクを実行する。このため、図2(b)に示したように、プロセッサエレメント部12bは、今回実行しているタスクの処理が完了し、次のタスクを実行する準備が整ったときに、次のパケットを取得し、次のパケットに応じた演算処理のタスクを実行する。   In the load distribution control device 10, each processor element unit 12 voluntarily requests the arbitration unit 14 for the next packet, and executes an arithmetic processing task corresponding to the next packet. For this reason, as shown in FIG. 2B, the processor element unit 12b acquires the next packet when the processing of the task currently being executed is completed and the next task is ready to be executed. Then, an arithmetic processing task corresponding to the next packet is executed.

このように、負荷分散制御装置10における負荷分散の制御では、実行しているタスクの処理が完了した、すなわち、演算処理が空いているプロセッサエレメント部12が自発的に次のパケットを取得することにより、この空いているプロセッサエレメント部12にパケットが入力され、適正な負荷分散の制御を行うことができる。   As described above, in the load balancing control in the load balancing control apparatus 10, the processing of the task being executed is completed, that is, the processor element unit 12 that is free of arithmetic processing acquires the next packet spontaneously. Thus, a packet is input to this vacant processor element unit 12, and appropriate load distribution control can be performed.

また、図2(a)と図2(b)とにおける全ての処理が完了するタイミングを比較してわかるように、負荷分散制御装置10では、適正な負荷分散の制御を行うことによって、従来の負荷分散制御装置よりも早く全ての処理を完了することができる。   Further, as can be seen by comparing the timings at which all the processes in FIG. 2A and FIG. 2B are completed, the load distribution control apparatus 10 performs the conventional load distribution control, thereby performing the conventional process. All processes can be completed earlier than the load distribution control device.

このように、負荷分散制御装置10では、演算処理が空いているそれぞれのプロセッサエレメント部12が、自発的に次のパケットを取得して演算処理を実行する。これにより、負荷分散制御装置10では、それぞれのパケット毎に処理を実行する際の負荷のばらつきがある場合でも、確実に空いているプロセッサエレメント部12にパケットが入力されるように、負荷分散の制御を行うことができる。このように、負荷分散制御装置10では、動的な負荷分散の制御を行うことによって、それぞれのプロセッサエレメント部12の稼働率を向上させ、結果的に全ての演算処理に要する時間、すなわち、負荷分散制御装置10が実行する演算処理のスループットを短縮することができる。   As described above, in the load distribution control device 10, each of the processor element units 12 that have an empty calculation process voluntarily acquires the next packet and executes the calculation process. As a result, the load distribution control device 10 can perform load distribution so that a packet is surely input to the vacant processor element unit 12 even when there is a variation in load when processing is performed for each packet. Control can be performed. In this way, the load distribution control device 10 improves the operating rate of each processor element unit 12 by performing dynamic load distribution control, resulting in the time required for all arithmetic processing, that is, the load The throughput of arithmetic processing executed by the distributed control device 10 can be shortened.

また、負荷分散制御装置10では、演算処理が空いているそれぞれのプロセッサエレメント部12が、自発的に次のパケットを取得するため、従来の負荷分散制御装置に備えたマスタプロセッサのように、次のパケットの投入先を判定するための構成は不要になる。これにより、負荷分散制御装置10では、ホストプロセッサ11は、実行している処理を中断して他の処理を実行することにより、処理効率が低下してしまうことがなくなる。   Further, in the load distribution control device 10, each processor element unit 12 that is free of arithmetic processing spontaneously acquires the next packet, and therefore, as in the master processor provided in the conventional load distribution control device, The configuration for determining the input destination of the packet becomes unnecessary. As a result, in the load distribution control apparatus 10, the host processor 11 does not decrease the processing efficiency by interrupting the process being executed and executing another process.

なお、本第1の実施形態の負荷分散制御装置10では、それぞれのプロセッサエレメント部12が、入力されたパケットに応じた演算処理のタスクを1つずつ実行する構成について説明した。しかし、それぞれのプロセッサエレメント部12が、複数の演算処理のタスクを同時に実行する構成にすることもでき、このような構成であっても、本第1の実施形態の負荷分散制御装置10と同様に、本発明における負荷分散制御の考え方を適用することができる。   In the load distribution control device 10 according to the first embodiment, the configuration in which each processor element unit 12 executes a task of arithmetic processing according to an input packet one by one has been described. However, each of the processor element units 12 can be configured to simultaneously execute a plurality of arithmetic processing tasks. Even in such a configuration, the load distribution control device 10 of the first embodiment is the same. In addition, the concept of load distribution control in the present invention can be applied.

<第2の実施形態>
次に、本発明の第2の実施形態について説明する。本第2の実施形態の負荷分散制御装置は、負荷分散制御装置に備えたそれぞれのプロセッサエレメント部が、複数の演算処理のタスクを同時に実行する構成の負荷分散制御装置である。図3は、本第2の実施形態における負荷分散制御装置の概略構成の一例を示したブロック図である。図3に示した負荷分散制御装置20は、1つのホストプロセッサ11と、3つのプロセッサエレメント部22a〜プロセッサエレメント部22cと、パケットキューイング部13と、調停部14と、を備えている。なお、以下の説明においては、プロセッサエレメント部22a〜プロセッサエレメント部22cのそれぞれを区別せずに表す場合には、「プロセッサエレメント部22」という。
<Second Embodiment>
Next, a second embodiment of the present invention will be described. The load distribution control apparatus according to the second embodiment is a load distribution control apparatus configured such that each processor element unit included in the load distribution control apparatus simultaneously executes a plurality of arithmetic processing tasks. FIG. 3 is a block diagram illustrating an example of a schematic configuration of the load distribution control device according to the second embodiment. The load distribution control device 20 illustrated in FIG. 3 includes one host processor 11, three processor element units 22a to 22c, a packet queuing unit 13, and an arbitrating unit 14. In the following description, when each of the processor element unit 22a to the processor element unit 22c is expressed without distinction, it is referred to as a “processor element unit 22”.

負荷分散制御装置20は、第1の実施形態の負荷分散制御装置10と同様に、当該負荷分散制御装置20の外部から要求された演算処理を、プロセッサエレメント部22a〜プロセッサエレメント部22cのそれぞれで分担して行う、マルチプロセッサシステムの演算装置である。ただし、負荷分散制御装置20は、それぞれのプロセッサエレメント部22内で、複数の演算処理のタスクを同時に実行することが、第1の実施形態の負荷分散制御装置10と異なる。つまり、負荷分散制御装置20では、それぞれのプロセッサエレメント部22内で複数の演算処理のタスクを同時に実行するための機能が、ホストプロセッサ11およびそれぞれのプロセッサエレメント部22に加わること以外は、負荷分散制御装置20の構成要素や動作は、第1の実施形態の負荷分散制御装置10と同様である。従って、図3においては、図1に示した第1の実施形態の負荷分散制御装置10の構成要素と同様の構成要素には、同一の符号を付加している。以下の説明においては、第1の実施形態の負荷分散制御装置10と同様の構成要素や動作に関する説明は省略し、第1の実施形態の負荷分散制御装置10と異なる構成要素や動作について説明する。   As with the load distribution control device 10 of the first embodiment, the load distribution control device 20 performs arithmetic processing requested from the outside of the load distribution control device 20 in each of the processor element units 22a to 22c. It is an arithmetic device of a multiprocessor system that is shared. However, the load distribution control device 20 is different from the load distribution control device 10 of the first embodiment in that a plurality of arithmetic processing tasks are simultaneously executed in each processor element unit 22. That is, in the load distribution control device 20, load distribution is performed except that a function for simultaneously executing a plurality of arithmetic processing tasks in each processor element unit 22 is added to the host processor 11 and each processor element unit 22. The components and operations of the control device 20 are the same as those of the load distribution control device 10 of the first embodiment. Therefore, in FIG. 3, the same reference numerals are given to the same components as the components of the load distribution control device 10 of the first embodiment shown in FIG. In the following description, description of the same components and operations as those of the load distribution control device 10 of the first embodiment will be omitted, and components and operations different from those of the load distribution control device 10 of the first embodiment will be described. .

ホストプロセッサ11は、負荷分散制御装置20の外部からの演算処理の要求を受け付け、要求された演算処理の演算内容と、演算処理を行う対象の入力データとを含むパケットを、パケットキューイング部13に書き込む。ただし、負荷分散制御装置20では、それぞれのプロセッサエレメント部22内で複数の演算処理のタスクを同時に実行するため、ホストプロセッサ11は、要求された複数の演算処理の演算内容と、演算処理を行う対象の入力データ(それぞれの演算処理に対応した複数の入力データであってもよい)とを含むパケットを、パケットキューイング部13に書き込む。   The host processor 11 receives a request for calculation processing from the outside of the load distribution control device 20, and sends a packet including calculation contents of the requested calculation processing and input data to be subjected to calculation processing to the packet queuing unit 13. Write to. However, since the load distribution control device 20 simultaneously executes a plurality of arithmetic processing tasks in each processor element unit 22, the host processor 11 performs the arithmetic contents of the requested arithmetic processing and the arithmetic processing. A packet including target input data (may be a plurality of input data corresponding to each arithmetic processing) is written in the packet queuing unit 13.

なお、図3においては、ホストプロセッサ11が、パイプライン的に処理を実行する演算内容が分割され、3つの演算処理の演算内容(処理1〜3)として含まれたパケットP2をパケットキューイング部13に出力している状態を示している。しかし、本第2の実施形態の負荷分散制御装置20においては、第1の実施形態の負荷分散制御装置10と同様に、演算処理が外部から要求される際の形式や、パケットの構成や、パケットに基づいて行う演算処理の内容および入力データの形式に関しては、何ら限定しない。   In FIG. 3, the host processor 11 divides the operation contents to be executed in a pipeline manner, and the packet queuing unit includes the packet P2 included as the operation contents (processing 1 to 3) of the three operation processes. 13 shows the output state. However, in the load distribution control device 20 of the second embodiment, like the load distribution control device 10 of the first embodiment, the format when the arithmetic processing is requested from the outside, the packet configuration, The contents of the arithmetic processing performed based on the packet and the format of the input data are not limited at all.

プロセッサエレメント部22a〜プロセッサエレメント部22cのそれぞれは、同じ処理機能を持ったプロセッサ(演算処理部)である。プロセッサエレメント部22a〜プロセッサエレメント部22cのそれぞれは、調停部14を介して入力された、パケットキューイング部13に格納されたパケットに応じた複数の演算処理の演算(タスク)を、同時に実行する。以下の説明においては、プロセッサエレメント部22を代表して、プロセッサエレメント部22aについて説明する。   Each of the processor element unit 22a to the processor element unit 22c is a processor (arithmetic processing unit) having the same processing function. Each of the processor element unit 22a to the processor element unit 22c simultaneously executes a plurality of arithmetic processing operations (tasks) according to the packets stored in the packet queuing unit 13 input via the arbitration unit 14. . In the following description, the processor element unit 22a will be described on behalf of the processor element unit 22.

プロセッサエレメント部22aは、入力されたパケットに含まれる先頭(最初)の演算内容(処理1)に応じて実行しているタスクの処理が完了し、次のタスクを実行する準備が整ったときに、次のパケットの出力を要求する出力要求信号REQを、調停部14に出力する。そして、調停部14から次に実行するパケットが入力されると、入力されたパケットに含まれる最初の演算内容(処理1)に応じた演算処理から、順次演算(タスク)の実行を開始する。このように、プロセッサエレメント部22aは、入力されたパケットに含まれる全ての演算内容(処理2および処理3)が完了していない状態であっても、実行中の演算内容(処理1)が完了した後、自発的に次パケットを要求して、次のパケットに応じた演算処理のタスクを実行する。   When the processing of the task being executed according to the first (first) calculation content (processing 1) included in the input packet is completed and the processor element unit 22a is ready to execute the next task The output request signal REQ for requesting the output of the next packet is output to the arbitration unit 14. Then, when the next packet to be executed is input from the arbitration unit 14, the execution of the calculation (task) is sequentially started from the calculation process corresponding to the first calculation content (process 1) included in the input packet. In this way, the processor element unit 22a completes the operation content being processed (Process 1) even if all the operation details (Process 2 and Process 3) included in the input packet have not been completed. After that, the next packet is requested voluntarily, and the task of the arithmetic processing corresponding to the next packet is executed.

プロセッサエレメント部22aは、キュー読み出し部121aと演算部222aとを備えている。なお、プロセッサエレメント部22bや、プロセッサエレメント部22cも、プロセッサエレメント部22aと同様に、キュー読み出し部121と演算部222とを備えており、プロセッサエレメント部22bに備えた構成要素や、プロセッサエレメント部22cに備えた構成要素も、以下に説明するプロセッサエレメント部22aに備えた構成要素と同様の動作である。   The processor element unit 22a includes a queue reading unit 121a and a calculation unit 222a. Similarly to the processor element unit 22a, the processor element unit 22b and the processor element unit 22c also include a queue reading unit 121 and a calculation unit 222. The components and processor element units included in the processor element unit 22b The components provided in 22c also operate in the same manner as the components provided in the processor element unit 22a described below.

キュー読み出し部121aは、調停部14から入力されたパケットを、演算部222aに出力する。また、キュー読み出し部121aは、演算部222aから次のパケットの読み出しを指示する読み出し指示信号が入力されると、次のパケットの出力を要求する出力要求信号REQを調停部14に出力し、出力した出力要求信号REQに応じて入力された次のパケットを、演算部222aに出力する。   The queue reading unit 121a outputs the packet input from the arbitration unit 14 to the calculation unit 222a. In addition, when a read instruction signal instructing reading of the next packet is input from the arithmetic unit 222a, the queue reading unit 121a outputs an output request signal REQ requesting output of the next packet to the arbitrating unit 14, and outputs The next packet input in response to the output request signal REQ is output to the arithmetic unit 222a.

演算部222aは、キュー読み出し部121aから入力されたパケットに含まれる入力データに対して、このパケットに含まれる演算内容(処理1〜3)に応じたそれぞれの演算(タスク)を順次実行する。演算部222a内では、パケットに含まれる3つの演算内容のそれぞれに対応する3つの演算ユニット2221a〜演算ユニット2223aを直列に接続した、演算ユニットのパイプラインが構成されている。   The calculation unit 222a sequentially executes each calculation (task) corresponding to the calculation contents (processing 1 to 3) included in the packet with respect to the input data included in the packet input from the queue reading unit 121a. In the arithmetic unit 222a, a pipeline of arithmetic units is configured in which three arithmetic units 2221a to 2223a corresponding to the three arithmetic contents included in the packet are connected in series.

演算ユニット2221a〜演算ユニット2223aのそれぞれは、入力されたパケットに含まれるそれぞれの演算内容(処理1〜3)に対応し、対応する演算内容に応じた演算(タスク)を順次実行する。つまり、パイプラインの先頭に配置された演算ユニット2221aが演算内容(処理1)に応じたタスクを実行し、このタスクの処理が完了すると、パイプラインの2番目に配置された演算ユニット2222aが演算内容(処理2)に応じたタスクを実行する。そして、演算ユニット2222aが演算内容(処理2)に応じたタスクの処理が完了すると、パイプラインの最終段に配置された演算ユニット2223aが演算内容(処理3)に応じたタスクを実行する。そして、演算ユニット2223aが演算内容(処理3)に応じたタスクの処理が完了すると、演算内容(処理3)の演算処理の結果を、プロセッサエレメント部22a(演算部222a)の演算結果として出力する。   Each of the arithmetic units 2221a to 2223a corresponds to the respective arithmetic contents (processing 1 to 3) included in the input packet and sequentially executes arithmetic operations (tasks) corresponding to the corresponding arithmetic contents. That is, the arithmetic unit 2221a arranged at the head of the pipeline executes a task corresponding to the operation content (Process 1), and when the processing of this task is completed, the arithmetic unit 2222a arranged second in the pipeline calculates A task corresponding to the content (processing 2) is executed. When the arithmetic unit 2222a completes processing of the task according to the arithmetic content (processing 2), the arithmetic unit 2223a arranged at the final stage of the pipeline executes the task according to the arithmetic content (processing 3). When the arithmetic unit 2223a completes the processing of the task according to the calculation content (processing 3), the calculation processing result of the calculation content (processing 3) is output as the calculation result of the processor element unit 22a (calculation unit 222a). .

演算ユニット2221aは、対応する演算内容(処理1)に応じたタスクの実行が完了し、次のタスクを実行する準備が整ったときに、次のパケットの読み出しを指示する読み出し指示信号を、キュー読み出し部121aに出力する。この読み出し指示信号に応じてキュー読み出し部121aは、次のパケットの出力を要求する出力要求信号REQを調停部14に出力し、調停部14を介して入力された次のパケットを、演算部222aに出力する。これにより、演算ユニット2221aは、次のパケットの対応する演算内容(処理1)に応じたタスクの実行を開始する。   The arithmetic unit 2221a, when the execution of the task corresponding to the corresponding operation content (Process 1) is completed and ready to execute the next task, the arithmetic unit 2221a The data is output to the reading unit 121a. In response to this read instruction signal, the queue reading unit 121a outputs an output request signal REQ requesting the output of the next packet to the arbitrating unit 14, and the next packet input via the arbitrating unit 14 is calculated by the arithmetic unit 222a. Output to. As a result, the arithmetic unit 2221a starts executing a task according to the corresponding operation content (processing 1) of the next packet.

演算ユニット2222aおよび演算ユニット2223aのそれぞれは、対応する演算内容(処理2および処理3)に応じたタスクが完了した場合でも、読み出し指示信号を出力しない。この点以外の動作は、演算ユニット2221aの動作と同様であるため、詳細な説明は省略する。   Each of the arithmetic unit 2222a and the arithmetic unit 2223a does not output a read instruction signal even when a task corresponding to the corresponding arithmetic content (processing 2 and processing 3) is completed. Since the operation other than this point is the same as the operation of the arithmetic unit 2221a, detailed description thereof is omitted.

このように、負荷分散制御装置20では、それぞれのプロセッサエレメント部22に備えた演算部222内に複数の演算ユニットを備え、この複数の演算ユニットでパイプラインを構成する。このような構成によって、負荷分散制御装置20では、入力されたパケットに含まれる複数の演算処理のタスクを、パイプラインを構成するそれぞれの演算ユニットで同時に実行することができる。   As described above, the load distribution control device 20 includes a plurality of arithmetic units in the arithmetic units 222 included in the respective processor element units 22, and the plurality of arithmetic units constitute a pipeline. With such a configuration, the load distribution control device 20 can simultaneously execute a plurality of arithmetic processing tasks included in an input packet in each arithmetic unit constituting the pipeline.

また、負荷分散制御装置20では、要求された演算処理を複数のプロセッサエレメント部22のそれぞれで分担して行う際に、第1の実施形態の負荷分散制御装置10と同様に、それぞれのプロセッサエレメント部22が実行する演算処理の負荷を分散することによって、いずれかのプロセッサエレメント部22のみに負荷が集中してしまうことを回避することができる。   Further, in the load distribution control device 20, when the requested arithmetic processing is shared by each of the plurality of processor element units 22, as with the load distribution control device 10 of the first embodiment, each processor element By distributing the load of the arithmetic processing executed by the unit 22, it is possible to avoid the concentration of the load only on one of the processor element units 22.

なお、図3に示した負荷分散制御装置20の構成でも、調停部14が、プロセッサエレメント部22のそれぞれから入力された出力要求信号REQの受付を調停する構成を示したが、負荷分散制御装置20の構成は、第1の実施形態の負荷分散制御装置10と同様に、図3に示した構成のみに限定されるものではない。   In the configuration of the load distribution control device 20 illustrated in FIG. 3, the configuration in which the arbitration unit 14 arbitrates reception of the output request signal REQ input from each of the processor element units 22 is illustrated. The configuration of 20 is not limited to the configuration shown in FIG. 3 as with the load distribution control device 10 of the first embodiment.

次に、負荷分散制御装置20の動作について説明する。図4は、本第2の実施形態の負荷分散制御装置20における動作のタイミングの一例を模式的に示した図である。以下の説明においては、説明を容易にするため、1つのプロセッサエレメント部22aの動作に着目して説明を行う。   Next, the operation of the load distribution control device 20 will be described. FIG. 4 is a diagram schematically illustrating an example of operation timing in the load distribution control device 20 according to the second embodiment. In the following description, in order to facilitate the description, the description will be given focusing on the operation of one processor element unit 22a.

なお、図3に示した負荷分散制御装置20では、プロセッサエレメント部22a(キュー読み出し部121a)が、演算ユニット2221aから出力された読み出し指示信号に応じて調停部14に出力要求信号REQを出力する。そして、調停部14が、プロセッサエレメント部22a(キュー読み出し部121a)から出力された出力要求信号REQに応じてパケットキューイング部13に格納されているパケットを読み出し、読み出したパケットをプロセッサエレメント部22a(キュー読み出し部121a)に出力する。このような動作によって、プロセッサエレメント部22a(キュー読み出し部121a)に、調停部14がパケットキューイング部13から読み出したパケットがプロセッサエレメント部22a(キュー読み出し部121a)に入力される。しかし、以下の説明においては、説明を容易にするため、キュー読み出し部121aがパケットキューイング部13に直接アクセスして、パケットキューイング部13に格納されているパケットを読み出す構成であるものとして説明する。   In the load distribution control device 20 shown in FIG. 3, the processor element unit 22a (queue read unit 121a) outputs an output request signal REQ to the arbitration unit 14 in response to the read instruction signal output from the arithmetic unit 2221a. . Then, the arbitrating unit 14 reads the packet stored in the packet queuing unit 13 in accordance with the output request signal REQ output from the processor element unit 22a (queue reading unit 121a), and reads the read packet to the processor element unit 22a. The data is output to (queue reading unit 121a). By such an operation, the packet read from the packet queuing unit 13 by the arbitration unit 14 is input to the processor element unit 22a (queue reading unit 121a) and the processor element unit 22a (queue reading unit 121a). However, in the following description, for ease of explanation, it is assumed that the queue reading unit 121a directly accesses the packet queuing unit 13 and reads a packet stored in the packet queuing unit 13. .

図4には、図3に示したプロセッサエレメント部22a内のキュー読み出し部121aが(調停部14を介して)読み出すパケットと、プロセッサエレメント部22a内の演算部222aに備えた3つの演算ユニット2221a〜演算ユニット2223aのそれぞれが、入力されたパケットに含まれる、対応する演算内容に応じたタスクを実行している期間とを示している。   4 shows a packet read by the queue reading unit 121a in the processor element unit 22a shown in FIG. 3 (via the arbitration unit 14), and three arithmetic units 2221a provided in the arithmetic unit 222a in the processor element unit 22a. Each of the calculation units 2223a indicates a period during which a task corresponding to the corresponding calculation content is included in the input packet.

演算ユニット2221aが出力した読み出し指示信号に応じてキュー読み出し部121aが読み出したパケットP21が演算部222aに入力されると、演算部222aに備えた演算ユニット2221aは、入力されたパケットP21に含まれる最初の演算内容(処理1)に応じたタスクを実行する。   When the packet P21 read by the queue reading unit 121a is input to the calculation unit 222a according to the read instruction signal output from the calculation unit 2221a, the calculation unit 2221a included in the calculation unit 222a is included in the input packet P21. A task corresponding to the first calculation content (processing 1) is executed.

そして、演算ユニット2221aがパケットP21の演算内容(処理1)に応じたタスクの処理が完了すると、演算ユニット2222aは、入力されたパケットP21に含まれる2番目の演算内容(処理2)に応じたタスクの実行を開始する。その後、演算ユニット2222aがパケットP21の演算内容(処理2)に応じたタスクの処理が完了すると、演算ユニット2223aは、入力されたパケットP21に含まれる最後の演算内容(処理3)に応じたタスクの実行を開始する。そして、演算ユニット2223aは、パケットP21の演算内容(処理3)に応じたタスクの処理が完了すると、パケットP21の演算内容(処理3)の演算処理の結果を出力する。   When the arithmetic unit 2221a completes the task processing according to the operation content (processing 1) of the packet P21, the operation unit 2222a responds to the second operation content (processing 2) included in the input packet P21. Start the task execution. Thereafter, when the arithmetic unit 2222a completes the processing of the task according to the calculation content (processing 2) of the packet P21, the arithmetic unit 2223a performs the task according to the last calculation content (processing 3) included in the input packet P21. Start running. Then, when the processing of the task corresponding to the calculation content (processing 3) of the packet P21 is completed, the calculation unit 2223a outputs the result of the calculation processing of the calculation content (processing 3) of the packet P21.

また、演算ユニット2221aは、パケットP21の演算内容(処理1)に応じたタスクの処理が完了したことにより、実行しているタスクがなくなったため、次のタスクを実行する準備が整ったときに、読み出し指示信号をキュー読み出し部121aに出力する。キュー読み出し部121aは、演算ユニット2221aから入力された読み出し指示信号に応じて、パケットP22を読み出し、読み出したパケットP22を、演算ユニット2221aに出力する。演算ユニット2221aは、キュー読み出し部121aからパケットP22が入力されると、入力されたパケットP22に含まれる最初の演算内容(処理1)に応じたタスクを実行する。   In addition, the arithmetic unit 2221a has completed the processing of the task according to the arithmetic operation content (processing 1) of the packet P21, so that there is no task being executed. A read instruction signal is output to the queue reading unit 121a. The queue reading unit 121a reads the packet P22 in response to the read instruction signal input from the arithmetic unit 2221a, and outputs the read packet P22 to the arithmetic unit 2221a. When the packet P22 is input from the queue reading unit 121a, the arithmetic unit 2221a executes a task corresponding to the first calculation content (processing 1) included in the input packet P22.

そして、演算ユニット2221aがパケットP22の演算内容(処理1)に応じたタスクの処理が完了すると、演算ユニット2222aは、入力されたパケットP22に含まれる2番目の演算内容(処理2)に応じたタスクの実行を開始する。その後、演算ユニット2222aがパケットP22の演算内容(処理2)に応じたタスクの処理が完了すると、演算ユニット2223aは、入力されたパケットP22に含まれる最後の演算内容(処理3)に応じたタスクの実行を開始する。そして、演算ユニット2223aは、パケットP22の演算内容(処理3)に応じたタスクの処理が完了すると、パケットP22の演算内容(処理3)の演算処理の結果を出力する。   Then, when the arithmetic unit 2221a completes the task processing according to the operation content (processing 1) of the packet P22, the operation unit 2222a responds to the second operation content (processing 2) included in the input packet P22. Start the task execution. Thereafter, when the arithmetic unit 2222a completes the task processing according to the operation content (processing 2) of the packet P22, the operation unit 2223a performs the task according to the last operation content (processing 3) included in the input packet P22. Start running. Then, when the processing of the task corresponding to the operation content of packet P22 (processing 3) is completed, operation unit 2223a outputs the result of the operation processing of operation content of packet P22 (processing 3).

また、演算ユニット2221aは、パケットP22の演算内容(処理1)に応じたタスクの処理が完了したことにより、実行しているタスクがなくなったため、次のタスクを実行する準備が整ったときに、読み出し指示信号をキュー読み出し部121aに出力する。キュー読み出し部121aは、演算ユニット2221aから入力された読み出し指示信号に応じて、パケットP23を読み出し、読み出したパケットP23を、演算ユニット2221aに出力する。演算ユニット2221aは、キュー読み出し部121aからパケットP23が入力されると、入力されたパケットP23に含まれる最初の演算内容(処理1)に応じたタスクを実行する。   In addition, the arithmetic unit 2221a has completed the processing of the task according to the arithmetic operation content (processing 1) of the packet P22, so that there is no task being executed, and when the preparation for executing the next task is ready, A read instruction signal is output to the queue reading unit 121a. The queue reading unit 121a reads the packet P23 in response to the read instruction signal input from the arithmetic unit 2221a, and outputs the read packet P23 to the arithmetic unit 2221a. When the packet P23 is input from the queue reading unit 121a, the arithmetic unit 2221a executes a task corresponding to the first calculation content (processing 1) included in the input packet P23.

以降、同様に、演算ユニット2222aが、演算ユニット2221aが最初の演算内容(処理1)のタスクの処理を完了したパケットの2番目の演算内容(処理2)に応じたタスクの実行、および演算ユニット2223aが、同じパケットの最後の演算内容(処理3)に応じたタスクの実行を繰り返す。   Thereafter, similarly, the arithmetic unit 2222a executes the task according to the second arithmetic content (processing 2) of the packet for which the arithmetic unit 2221a has completed the processing of the task of the first arithmetic content (processing 1), and the arithmetic unit. 2223a repeats the execution of the task according to the last calculation content (processing 3) of the same packet.

また、演算ユニット2221aは、最初の演算内容(処理1)のタスクの処理を完了したパケットの次のパケットの読み出し指示信号のキュー読み出し部121aへの出力、およびキュー読み出し部121aから入力された次のパケットに含まれる最初の演算内容(処理1)に応じたタスクの実行を繰り返す。   In addition, the arithmetic unit 2221a outputs the read instruction signal of the packet next to the packet that has completed the processing of the task of the first calculation content (processing 1) to the queue reading unit 121a and the next input from the queue reading unit 121a. The execution of the task according to the first calculation content (processing 1) included in the packet is repeated.

このように、負荷分散制御装置20では、演算処理が空いているそれぞれのプロセッサエレメント部22が、自発的に次のパケットを取得するため、第1の実施形態の負荷分散制御装置10と同様に、それぞれのプロセッサエレメント部22が実行する演算処理の負荷を分散し、いずれかのプロセッサエレメント部22のみに負荷が集中してしまうことを回避することができる。   As described above, in the load distribution control device 20, each processor element unit 22 that has an empty calculation process voluntarily acquires the next packet, and thus, similarly to the load distribution control device 10 of the first embodiment. The load of the arithmetic processing executed by each processor element unit 22 can be distributed to avoid the concentration of the load only on one of the processor element units 22.

また、負荷分散制御装置20では、演算処理が空いているそれぞれのプロセッサエレメント部22が、自発的に次のパケットを取得し、それぞれのプロセッサエレメント部22に備えた演算部内でパイプラインを構成する複数の演算ユニットのそれぞれが、入力されたパケットに含まれる、対応する演算内容に応じたタスクを実行する。これにより、負荷分散制御装置20では、パイプラインを構成するそれぞれの演算ユニットが同時に、対応するタスクを並列に実行することができる。このことにより、負荷分散制御装置20では、第1の実施形態の負荷分散制御装置10よりもさらに、実行する演算処理のスループットを短縮することができる。   Further, in the load distribution control device 20, each processor element unit 22 that is free of arithmetic processing spontaneously acquires the next packet, and configures a pipeline in the arithmetic unit provided in each processor element unit 22. Each of the plurality of calculation units executes a task corresponding to the corresponding calculation content included in the input packet. Thereby, in the load distribution control apparatus 20, each arithmetic unit which comprises a pipeline can simultaneously perform a corresponding task in parallel. As a result, the load distribution control device 20 can further reduce the throughput of the arithmetic processing to be executed, as compared with the load distribution control device 10 of the first embodiment.

ここで、負荷分散制御装置20におけるスループットと、第1の実施形態の負荷分散制御装置10におけるスループットについて説明する。図5は、本第2の実施形態の負荷分散制御装置20における動作のタイミングと第1の実施形態の負荷分散制御装置10における動作のタイミングとを比較して説明する図である。なお、以下の説明においては、説明を容易にするため、1つのプロセッサエレメント部12aまたはプロセッサエレメント部22aが、3つの演算処理の演算内容(処理1〜3)を実行するものとして説明を行う。   Here, the throughput in the load distribution control apparatus 20 and the throughput in the load distribution control apparatus 10 of the first embodiment will be described. FIG. 5 is a diagram illustrating the operation timing in the load distribution control device 20 according to the second embodiment and the operation timing in the load distribution control device 10 according to the first embodiment. In the following description, for ease of explanation, it is assumed that one processor element unit 12a or processor element unit 22a executes the calculation contents (processing 1 to 3) of three calculation processes.

図5においては、図5(a)に、第1の実施形態の負荷分散制御装置10において、3つの演算処理の演算内容(処理1〜3)を1つのパケットで実行するように構成した場合の動作のタイミングの一例を示し、図5(b)に、第1の実施形態の負荷分散制御装置10において、3つの演算処理の演算内容(処理1〜3)を3つのパケットで実行するように構成した場合の動作のタイミングの一例を示している。また、図5(c)に、本第2の実施形態の負荷分散制御装置20の動作のタイミングの一例を示している。なお、図5(c)に示した負荷分散制御装置20の動作のタイミングの一例は、図4に示した負荷分散制御装置20の動作のタイミングの一例と同じである。   In FIG. 5, when the load distribution control device 10 according to the first embodiment is configured to execute the calculation contents (processing 1 to 3) of three calculation processes in one packet in FIG. An example of the operation timing is shown in FIG. 5B. In the load distribution control device 10 of the first embodiment, the calculation contents (processing 1 to 3) of the three calculation processes are executed in three packets. An example of the operation timing when configured as shown in FIG. FIG. 5C shows an example of the operation timing of the load distribution control device 20 of the second embodiment. An example of the operation timing of the load distribution control device 20 shown in FIG. 5C is the same as the operation timing of the load distribution control device 20 shown in FIG.

まず、図5(a)を用いて、第1の実施形態の負荷分散制御装置10において、3つの演算処理の演算内容(処理1〜3)を1つのパケットで実行する場合の動作を説明する。図5(a)には、第1の実施形態の負荷分散制御装置10に備えたプロセッサエレメント部12a内のキュー読み出し部121aが(調停部14を介して)読み出すパケットと、プロセッサエレメント部12a内の演算部122aが、入力されたパケットに含まれる3つの演算処理の演算内容(処理1〜3)を1つにまとめた演算内容に応じたタスクを実行している期間とを示している。   First, with reference to FIG. 5A, an operation when the calculation contents (processing 1 to 3) of three calculation processes are executed in one packet in the load distribution control device 10 of the first embodiment will be described. . FIG. 5A illustrates a packet read by the queue reading unit 121a in the processor element unit 12a included in the load distribution control device 10 of the first embodiment (via the arbitration unit 14), and the processor element unit 12a. The calculation unit 122a indicates a period during which a task corresponding to the calculation content is performed by combining the calculation contents (processing 1 to 3) of the three calculation processes included in the input packet.

第1の実施形態の負荷分散制御装置10では、演算部122aが実行中のタスクの処理が完了した後、自発的に次のパケットを要求して、次のパケットに応じた演算処理のタスクを実行する。このため、1つのパケットに3つの演算処理の演算内容(処理1〜3)が含まれている場合には、演算部122aがタスクを実行している期間が長くなる。   In the load distribution control device 10 according to the first embodiment, after the processing of the task being executed by the arithmetic unit 122a is completed, the next packet is voluntarily requested and the task of the arithmetic processing corresponding to the next packet is performed. Run. For this reason, when the calculation content (processing 1-3) of three calculation processes is contained in one packet, the period when the calculating part 122a is performing the task becomes long.

より具体的には、図5(a)に示したように、パケットP21に含まれる3つの演算処理の演算内容(処理1〜3)に応じたタスクの処理が完了し、次のタスクを実行する準備が整ったときに、次のパケットP22を取得し、次のパケットP22に含まれる3つの演算処理の演算内容(処理1〜3)に応じたタスクを実行する。   More specifically, as shown in FIG. 5A, the task processing corresponding to the calculation contents (processing 1 to 3) of the three calculation processes included in the packet P21 is completed, and the next task is executed. When ready to perform, the next packet P22 is acquired, and a task corresponding to the calculation contents (processing 1 to 3) of the three calculation processes included in the next packet P22 is executed.

次に、図5(b)を用いて、第1の実施形態の負荷分散制御装置10において、3つの演算処理の演算内容(処理1〜3)を3つのパケットで実行する場合の動作を説明する。図5(b)には、第1の実施形態の負荷分散制御装置10に備えたプロセッサエレメント部12a内のキュー読み出し部121aが(調停部14を介して)読み出すパケットと、プロセッサエレメント部12a内の演算部122aが、入力されたパケットに含まれる3つの演算処理の演算内容(処理1〜3)のいずれか1つの演算内容に応じたタスクを実行している期間とを示している。   Next, with reference to FIG. 5B, the operation in the case where the calculation contents (processing 1 to 3) of the three calculation processes are executed in three packets in the load distribution control device 10 of the first embodiment will be described. To do. FIG. 5B illustrates a packet read by the queue reading unit 121a in the processor element unit 12a included in the load distribution control device 10 of the first embodiment (via the arbitration unit 14), and the processor element unit 12a. The calculation unit 122a indicates a period during which a task corresponding to any one of the calculation contents (processing 1 to 3) of the three calculation processes included in the input packet is being executed.

第1の実施形態の負荷分散制御装置10では、演算部122aが実行中のタスクの処理が完了した後、自発的に次のパケットを要求して、次のパケットに応じた演算処理のタスクを実行するため、3つの演算処理の演算内容(処理1〜3)のいずれか1つの演算内容に応じたタスクを、順次パケットを読み出して実行する。このため、キュー読み出し部121aが(調停部14を介して)パケットを読み出す間隔が短く、そして、パケットを読み出す回数が多くなる。   In the load distribution control device 10 according to the first embodiment, after the processing of the task being executed by the arithmetic unit 122a is completed, the next packet is voluntarily requested and the task of the arithmetic processing corresponding to the next packet is performed. In order to execute, the task corresponding to the calculation content of any one of the three calculation processes (processing 1 to 3) is sequentially read out and executed. For this reason, the interval at which the queue reading unit 121a reads the packet (via the arbitration unit 14) is short, and the number of times the packet is read increases.

より具体的には、図5(b)に示したように、パケットP21−1に含まれる1つの演算処理の演算内容(処理1)に応じたタスクの処理が完了し、次のタスクを実行する準備が整ったときに、次のパケットP21−2を取得し、次のパケットP21−2に含まれる1つの演算処理の演算内容(処理2)に応じたタスクを実行する。その後、パケットP21−2に含まれる1つの演算処理の演算内容(処理2)に応じたタスクの処理が完了した後に、次のパケットP21−3を取得して、このパケットP21−3に含まれる1つの演算処理の演算内容(処理3)に応じたタスクを実行する。このようにして、第1の実施形態の負荷分散制御装置10では、それぞれのパケットに含まれる1つの演算処理の演算内容に応じたタスクを、順次実行する。   More specifically, as shown in FIG. 5B, the task processing corresponding to the calculation content (processing 1) of one calculation process included in the packet P21-1 is completed, and the next task is executed. When ready to perform, the next packet P21-2 is acquired, and a task corresponding to the calculation content (processing 2) of one calculation process included in the next packet P21-2 is executed. Thereafter, after the task processing corresponding to the calculation content (processing 2) of one calculation process included in the packet P21-2 is completed, the next packet P21-3 is acquired and included in the packet P21-3. A task corresponding to the calculation content (processing 3) of one calculation process is executed. In this way, the load distribution control device 10 according to the first embodiment sequentially executes tasks according to the calculation contents of one calculation process included in each packet.

ここで、図5(a)と図5(b)とを比べてわかるように、3つの演算処理の演算内容(処理1〜3)を3つのパケットで実行する場合(図5(b))には、3つの演算処理の演算内容(処理1〜3)を1つのパケットで実行する場合(図5(a))に比べて、演算処理のスループットが長くなってしまう。より具体的には、図5(a)においてパケットP22に含まれる3つの演算処理の演算内容(処理1〜3)に応じたタスクの処理が完了したタイミングでは、図5(b)に示したように、パケットP22−2に含まれる1つの演算処理の演算内容(処理2)に応じたタスクまでしか処理が完了していない。   Here, as can be seen by comparing FIG. 5 (a) and FIG. 5 (b), the operation contents (processing 1 to 3) of the three operation processes are executed in three packets (FIG. 5 (b)). In this case, the throughput of the arithmetic processing becomes longer than that in the case where the arithmetic contents (processing 1 to 3) of the three arithmetic processing are executed in one packet (FIG. 5A). More specifically, in FIG. 5A, the task processing corresponding to the calculation contents (processing 1 to 3) of the three calculation processes included in the packet P22 is shown in FIG. 5B. As described above, the processing is completed only up to the task corresponding to the calculation content (processing 2) of one calculation processing included in the packet P22-2.

このため、1つのパケットに含まれる演算処理の演算内容が多いことが望ましいと考えられるが、このようなパケットは、演算部122aに対する負荷が重いため、タスクを実行している期間が長くなり、負荷分散の制御が難しくなってしまう可能性がある。   For this reason, it is thought that it is desirable that there is a lot of calculation content of the calculation processing included in one packet. However, since such a packet has a heavy load on the calculation unit 122a, a period during which the task is executed becomes long. It may be difficult to control load distribution.

これに対して、本第2の実施形態の負荷分散制御装置20では、図5(c)に示したように、3つの演算処理の演算内容(処理1〜3)のそれぞれに対応した、プロセッサエレメント部22a内の演算部222aに備えた演算ユニット2221a〜演算ユニット2223aのそれぞれが同時に、対応するタスクを並列に実行することができる。また、1つのパケットに含まれるそれぞれの演算内容(処理1〜3)を、演算ユニット2221a〜演算ユニット2223aのそれぞれに対する負荷が軽い演算内容にすることができる。   On the other hand, in the load distribution control device 20 of the second embodiment, as shown in FIG. 5C, a processor corresponding to each of the calculation contents (processing 1 to 3) of the three calculation processes. Each of the arithmetic units 2221a to 2223a included in the arithmetic unit 222a in the element unit 22a can simultaneously execute corresponding tasks in parallel. In addition, each calculation content (processing 1 to 3) included in one packet can be set to a calculation content with a light load on each of the calculation units 2221a to 2223a.

このため、プロセッサエレメント部22aは、入力されたパケットに含まれる全ての演算内容(パケットP21に含まれる処理2および処理3)に応じたタスクが完了していない状態であっても、実行中の演算内容(処理1)に応じたタスクが完了した段階で、次パケットを要求することができる。図5(c)に示したタイミングでは、1つのパケットの1/3の処理が完了した段階で、次パケットを要求することができる。   For this reason, the processor element unit 22a is executing even if the task corresponding to all the calculation contents (processing 2 and processing 3 included in the packet P21) included in the input packet is not completed. The next packet can be requested when the task corresponding to the calculation content (Process 1) is completed. At the timing shown in FIG. 5C, the next packet can be requested at the stage where 1/3 of one packet has been processed.

これにより、負荷分散制御装置20では、第1の実施形態の負荷分散制御装置10よりもさらに、それぞれのプロセッサエレメント部22が実行する演算処理の負荷を分散しやすくなり、負荷分散制御装置20が実行する演算処理のスループットの短縮を容易にすることができる。より具体的には、図5(a)および図5(b)と、図5(c)とを比べてわかるように、第1の実施形態の負荷分散制御装置10がパケットP22またはパケットP22−1に含まれる演算処理の演算内容に応じたタスクの処理を実行しているときに、負荷分散制御装置20では、パケットP22に含まれる最後の演算内容(処理3)に応じたタスクの処理が完了する。また、第1の実施形態の負荷分散制御装置10がパケットP22に含まれる3つの演算処理の演算内容(処理1〜3)またはパケットP22−2に含まれる1つの演算処理の演算内容(処理2)に応じたタスクの処理が完了したタイミングでは、図5(c)に示したように、パケットP24に含まれる2番目の演算処理の演算内容(処理2)に応じたタスクまで処理を完了することができる。   As a result, the load distribution control device 20 can more easily distribute the load of the arithmetic processing executed by each processor element unit 22 than the load distribution control device 10 of the first embodiment. It is possible to easily reduce the throughput of the arithmetic processing to be executed. More specifically, as can be seen by comparing FIG. 5 (a) and FIG. 5 (b) with FIG. 5 (c), the load distribution control device 10 of the first embodiment performs the packet P22 or the packet P22−. When the task processing corresponding to the calculation content of the calculation processing included in 1 is being executed, the load distribution control device 20 performs task processing according to the last calculation content (processing 3) included in the packet P22. Complete. Further, the load distribution control device 10 of the first embodiment calculates the calculation contents (processing 1 to 3) of three calculation processes included in the packet P22 or the calculation contents (processing 2) of one calculation process included in the packet P22-2. ) At the timing when the processing of the task corresponding to () is completed, as shown in FIG. 5C, the processing is completed up to the task corresponding to the operation content (processing 2) of the second operation processing included in the packet P24. be able to.

なお、第1の実施形態の負荷分散制御装置10において、本第2の実施形態の負荷分散制御装置20に備えた全ての演算ユニットと同じ数のプロセッサエレメント部12を備えることによって、第1の実施形態の負荷分散制御装置10でも、本第2の実施形態の負荷分散制御装置20と同様のスループットを得る構成を実現することができるとも考えられる。例えば、図3に示した負荷分散制御装置20では、3つのプロセッサエレメント部22内の演算部に3つの演算ユニットを備えているため、図1に示した第1の実施形態の負荷分散制御装置10の構成において9つのプロセッサエレメント部12を備える構成であっても、負荷分散制御装置20と同様のスループットを得る構成を実現することができるとも考えられる。しかし、負荷分散制御装置10に備えるプロセッサエレメント部12の数が多くなるに従って、調停部14が出力要求信号REQを受け付けるプロセッサエレメント部12を調停する際の処理が複雑になることによる回路規模の増大、調停部14とそれぞれのプロセッサエレメント部12との接続(インターフェース)部分の個数や回路規模の増大など、負荷分散制御装置10のコストの増大に繋がるような様々な問題が出てくると考えられる。このため、本第2の実施形態の負荷分散制御装置20の構成の方が、有利であると考えられる。   In addition, in the load distribution control device 10 of the first embodiment, the same number of processor element units 12 as all the arithmetic units included in the load distribution control device 20 of the second embodiment are provided, so that the first It is also considered that the load distribution control device 10 of the embodiment can also realize a configuration that obtains the same throughput as that of the load distribution control device 20 of the second embodiment. For example, since the load distribution control device 20 shown in FIG. 3 includes three calculation units in the calculation units in the three processor element units 22, the load distribution control device of the first embodiment shown in FIG. Even in the configuration with nine processor element units 12 in the ten configurations, it is conceivable that a configuration for obtaining the same throughput as that of the load distribution control device 20 can be realized. However, as the number of processor element units 12 provided in the load distribution control device 10 increases, the circuit scale increases due to the complicated processing when the arbitrating unit 14 arbitrates the processor element unit 12 that receives the output request signal REQ. It is considered that various problems such as an increase in the number of connections (interfaces) between the arbitration unit 14 and each processor element unit 12 and an increase in circuit scale will lead to an increase in the cost of the load distribution control device 10. . For this reason, it is considered that the configuration of the load distribution control device 20 of the second embodiment is more advantageous.

また、第1の実施形態の負荷分散制御装置10および本第2の実施形態の負荷分散制御装置20では、入力されたそれぞれのパケットに応じた1つの演算処理のタスクまたは複数の演算処理のタスクで、演算処理が完結する場合について説明した。しかし、演算処理の中には、例えば、固有値問題におけるヤコビ法のように、演算結果が予め定めた条件を満足するまで、つまり、演算結果が収束するまで、同様の演算処理を反復するフィードバック処理を行うものもある。このようなフィードバック処理を第1の実施形態の負荷分散制御装置10および本第2の実施形態の負荷分散制御装置20で実行する場合、第1の実施形態の負荷分散制御装置10および本第2の実施形態の負荷分散制御装置20では特に規定していないが、例えば、プロセッサエレメント部12またはプロセッサエレメント部22が演算処理の結果を出力した後に、同様の処理内容のパケットを別のパケットとして再び入力することにより、フィードバック処理の演算処理を実行することになる。つまり、フィードバック処理における1回の演算処理の処理内容を含む同様のパケットの処理を、複数回繰り返すことになる。しかし、負荷分散制御装置を、それぞれのプロセッサエレメント部が、フィードバック処理における演算結果が収束するまで、同様の演算処理のタスクを複数回繰り返して実行する構成にすることもでき、このような構成であっても、第1の実施形態の負荷分散制御装置10および本第2の実施形態の負荷分散制御装置20と同様に、本発明における負荷分散制御の考え方を適用することができる。   Further, in the load distribution control device 10 of the first embodiment and the load distribution control device 20 of the second embodiment, one arithmetic processing task or a plurality of arithmetic processing tasks corresponding to each inputted packet The case where the arithmetic processing is completed has been described. However, in the arithmetic processing, for example, as in the Jacobian method in the eigenvalue problem, a feedback processing that repeats the same arithmetic processing until the arithmetic result satisfies a predetermined condition, that is, until the arithmetic result converges. Some do. When such a feedback process is executed by the load distribution control device 10 of the first embodiment and the load distribution control device 20 of the second embodiment, the load distribution control device 10 of the first embodiment and the second For example, after the processor element unit 12 or the processor element unit 22 outputs the result of the arithmetic processing, a packet having the same processing content is again set as another packet. By inputting, the calculation process of the feedback process is executed. That is, the same packet processing including the processing contents of one arithmetic processing in the feedback processing is repeated a plurality of times. However, the load distribution control device can also be configured such that each processor element unit repeatedly executes the same arithmetic processing task a plurality of times until the arithmetic result in the feedback processing converges. Even in this case, the concept of load distribution control according to the present invention can be applied in the same manner as the load distribution control device 10 of the first embodiment and the load distribution control device 20 of the second embodiment.

<第3の実施形態>
次に、本発明の第3の実施形態について説明する。本第3の実施形態の負荷分散制御装置は、フィードバック処理を行う際に、1回の演算処理の演算処理の結果を一旦出力することなく、プロセッサエレメント部内で同様の演算処理のタスクを複数回繰り返して実行する構成の負荷分散制御装置である。図6は、本第3の実施形態における負荷分散制御装置の概略構成の一例を示したブロック図である。図6に示した負荷分散制御装置30は、1つのホストプロセッサ11と、3つのプロセッサエレメント部32a〜プロセッサエレメント部32cと、パケットキューイング部13と、調停部14と、を備えている。なお、以下の説明においては、プロセッサエレメント部32a〜プロセッサエレメント部32cのそれぞれを区別せずに表す場合には、「プロセッサエレメント部32」という。
<Third Embodiment>
Next, a third embodiment of the present invention will be described. When performing the feedback process, the load distribution control apparatus according to the third embodiment performs the same arithmetic processing task in the processor element unit a plurality of times without outputting the result of the arithmetic processing of one arithmetic process once. This is a load balancing control device configured to be repeatedly executed. FIG. 6 is a block diagram illustrating an example of a schematic configuration of the load distribution control device according to the third embodiment. The load distribution control device 30 illustrated in FIG. 6 includes one host processor 11, three processor element units 32a to 32c, a packet queuing unit 13, and an arbitrating unit 14. In the following description, when each of the processor element unit 32a to the processor element unit 32c is expressed without distinction, it is referred to as a “processor element unit 32”.

負荷分散制御装置30は、第1の実施形態の負荷分散制御装置10および第2の実施形態の負荷分散制御装置20と同様に、当該負荷分散制御装置30の外部から要求された演算処理を、プロセッサエレメント部32a〜プロセッサエレメント部32cのそれぞれで分担して行う、マルチプロセッサシステムの演算装置である。ただし、負荷分散制御装置30は、第2の実施形態の負荷分散制御装置20と同様に、それぞれのプロセッサエレメント部32内で、複数の演算処理のタスクを同時に実行することができる。さらに、負荷分散制御装置30は、それぞれのプロセッサエレメント部32内で、同様の演算処理のタスクを複数回繰り返して実行するフィードバック処理を実行することが可能であることが、第2の実施形態の負荷分散制御装置20と異なる。つまり、負荷分散制御装置30では、それぞれのプロセッサエレメント部32内でフィードバック処理を実行するための機能が、それぞれのプロセッサエレメント部32に加わること以外は、負荷分散制御装置30の構成要素や動作は、第2の実施形態の負荷分散制御装置20と同様である。従って、図6においては、図3に示した第2の実施形態の負荷分散制御装置20の構成要素と同様の構成要素には、同一の符号を付加している。以下の説明においては、第2の実施形態の負荷分散制御装置20と同様の構成要素や動作に関する説明は省略し、第2の実施形態の負荷分散制御装置20と異なる構成要素や動作について説明する。   Similar to the load distribution control device 10 of the first embodiment and the load distribution control device 20 of the second embodiment, the load distribution control device 30 performs arithmetic processing requested from the outside of the load distribution control device 30. This is an arithmetic unit of a multiprocessor system that is shared by each of the processor element unit 32a to the processor element unit 32c. However, the load distribution control device 30 can simultaneously execute a plurality of arithmetic processing tasks in the respective processor element units 32, similarly to the load distribution control device 20 of the second embodiment. Furthermore, the load distribution control device 30 can execute feedback processing in each processor element unit 32 by repeatedly executing a similar arithmetic processing task a plurality of times in the second embodiment. Different from the load balancing control device 20. That is, in the load distribution control device 30, the components and operations of the load distribution control device 30 are the same except that a function for executing feedback processing in each processor element unit 32 is added to each processor element unit 32. This is the same as the load distribution control device 20 of the second embodiment. Therefore, in FIG. 6, the same reference numerals are given to the same components as the components of the load distribution control device 20 of the second embodiment shown in FIG. In the following description, description of the same components and operations as those of the load distribution control device 20 of the second embodiment will be omitted, and components and operations different from those of the load distribution control device 20 of the second embodiment will be described. .

ホストプロセッサ11は、負荷分散制御装置30の外部からの演算処理の要求を受け付け、要求された演算処理の演算内容と、演算処理を行う対象の入力データとを含むパケットを、パケットキューイング部13に書き込む。ただし、負荷分散制御装置30では、それぞれのプロセッサエレメント部32内でフィードバック処理における一連の演算処理のタスクを実行するため、ホストプロセッサ11は、要求されたフィードバック処理の一連の演算内容と、フィードバック処理を行う対象の入力データ(それぞれの演算処理に対応した複数の入力データであってもよい)とを含むパケットを、パケットキューイング部13に書き込む。   The host processor 11 receives a request for calculation processing from the outside of the load distribution control device 30, and sends a packet including calculation contents of the requested calculation processing and input data to be subjected to calculation processing to the packet queuing unit 13. Write to. However, since the load distribution control device 30 executes a series of arithmetic processing tasks in the feedback processing within each processor element unit 32, the host processor 11 performs a series of calculation contents of the requested feedback processing and the feedback processing. A packet including input data to be performed (may be a plurality of input data corresponding to each arithmetic processing) is written in the packet queuing unit 13.

なお、図6においては、ホストプロセッサ11が、一連のフィードバック処理においてパイプライン的に処理を実行する演算内容が分割され、3つの演算処理の演算内容(処理F1〜F3)として含まれたパケットP3をパケットキューイング部13に出力している状態を示している。しかし、本第3の実施形態の負荷分散制御装置30においては、第1の実施形態の負荷分散制御装置10および第2の実施形態の負荷分散制御装置20と同様に、演算処理が外部から要求される際の形式や、パケットの構成や、パケットに基づいて行う演算処理の内容および入力データの形式に関しては、何ら限定しない。   In FIG. 6, the operation contents that the host processor 11 executes in a pipeline manner in a series of feedback processes are divided, and a packet P3 included as the operation contents (processes F1 to F3) of three operation processes. Is output to the packet queuing unit 13. However, in the load distribution control device 30 according to the third embodiment, similar to the load distribution control device 10 according to the first embodiment and the load distribution control device 20 according to the second embodiment, computation processing is requested from the outside. There is no limitation on the format used when the packet is generated, the configuration of the packet, the content of the arithmetic processing performed based on the packet, and the format of the input data.

プロセッサエレメント部32a〜プロセッサエレメント部32cのそれぞれは、同じ処理機能を持ったプロセッサ(演算処理部)である。プロセッサエレメント部32a〜プロセッサエレメント部32cのそれぞれは、調停部14を介して入力された、パケットキューイング部13に格納されたパケットに応じた複数の演算処理の演算(タスク)を、同時に実行する。また、プロセッサエレメント部32a〜プロセッサエレメント部32cのそれぞれは、入力されたパケットに含まれる複数の演算処理の演算内容が、フィードバック処理の一連の演算内容である場合には、フィードバック処理における演算処理の反復を終了する状態になるまで、当該フィードバック処理における一連の演算処理を繰り返す。つまり、フィードバック処理を打ち切って抜け出すための予め定めた打ち切り条件を満足するまで、フィードバック処理を継続する。以下の説明においては、プロセッサエレメント部32を代表して、プロセッサエレメント部32aについて説明する。   Each of the processor element unit 32a to the processor element unit 32c is a processor (arithmetic processing unit) having the same processing function. Each of the processor element unit 32a to the processor element unit 32c simultaneously executes a plurality of arithmetic processing operations (tasks) corresponding to the packets stored in the packet queuing unit 13 input via the arbitration unit 14. . In addition, each of the processor element unit 32a to the processor element unit 32c, when the calculation contents of a plurality of calculation processes included in the input packet are a series of calculation contents of the feedback process, A series of arithmetic processing in the feedback processing is repeated until the iteration is finished. That is, the feedback process is continued until a predetermined stop condition for stopping the feedback process and exiting is satisfied. In the following description, the processor element unit 32a will be described on behalf of the processor element unit 32.

プロセッサエレメント部32aは、入力されたパケットに含まれる先頭(最初)の演算内容(処理F1)に応じた演算処理から、順次演算(タスク)を実行する。そして、プロセッサエレメント部32aは、同じパケットの最後の演算内容(処理F3)に応じたタスクの処理が完了したときに、処理が完了した演算内容(処理F3)に応じたタスクの処理の結果が、打ち切り条件を満足するか否かを判定し、演算内容(処理F1〜F3)に応じた演算処理を反復するか否か、すなわち、フィードバック処理を行うか否かを決定する。   The processor element unit 32a sequentially performs calculations (tasks) from the calculation process according to the first (first) calculation content (process F1) included in the input packet. Then, when the processing of the task according to the last calculation content (processing F3) of the same packet is completed, the processor element unit 32a displays the result of the task processing according to the calculation content (processing F3) that has been processed. Then, it is determined whether or not the abort condition is satisfied, and it is determined whether or not to repeat the calculation process according to the calculation contents (processes F1 to F3), that is, whether or not to perform the feedback process.

プロセッサエレメント部32aは、判定の結果、演算処理を反復する(フィードバック処理を行う)場合には、入力データを演算内容(処理F3)の演算処理の結果に置き換えて(アップデートして)、演算内容(処理F1)に応じた演算処理から順次、同じタスクの処理を繰り返す。   As a result of the determination, the processor element unit 32a, when repeating the calculation process (performs the feedback process), replaces (updates) the input data with the calculation process result of the calculation contents (process F3) to update the calculation contents. The process of the same task is repeated sequentially from the calculation process according to (Process F1).

また、プロセッサエレメント部32aは、判定の結果、演算処理を反復しない(フィードバック処理を行わない)場合には、第2の実施形態の負荷分散制御装置20に備えたプロセッサエレメント部22aと同様に、演算内容(処理F3)の演算処理の結果を、プロセッサエレメント部32aの演算結果として出力し、次のパケットの出力を要求する出力要求信号REQを、調停部14に出力する。そして、調停部14から次に実行するパケットが入力されると、入力されたパケットに含まれる最初の演算内容(処理F1)に応じた演算処理から、順次演算(タスク)の実行を開始する。   Further, when the processor element unit 32a does not repeat the arithmetic processing (does not perform feedback processing) as a result of the determination, similarly to the processor element unit 22a included in the load distribution control device 20 of the second embodiment, The calculation processing result (processing F3) is output as a calculation result of the processor element unit 32a, and an output request signal REQ requesting output of the next packet is output to the arbitration unit 14. Then, when the next packet to be executed is input from the arbitration unit 14, the execution of the calculation (task) is started sequentially from the calculation processing corresponding to the first calculation content (processing F1) included in the input packet.

このように、プロセッサエレメント部32aは、フィードバック処理を行わない場合には、自発的に次パケットを要求して、次のパケットに応じた演算処理のタスクを実行し、フィードバック処理を行う場合には、同じタスクのフィードバック処理を繰り返す。   As described above, the processor element unit 32a voluntarily requests the next packet when the feedback process is not performed, executes the arithmetic processing task corresponding to the next packet, and performs the feedback process. Repeat the feedback process for the same task.

プロセッサエレメント部32aは、キュー読み出し部321aと、演算部322aと、セレクタ部323aと、カウンタ部324aと、を備えている。なお、プロセッサエレメント部32bや、プロセッサエレメント部32cも、プロセッサエレメント部32aと同様に、キュー読み出し部321と、演算部322と、セレクタ部323と、カウンタ部324と、を備えており、プロセッサエレメント部32bに備えた構成要素や、プロセッサエレメント部32cに備えた構成要素も、以下に説明するプロセッサエレメント部32aに備えた構成要素と同様の動作である。   The processor element unit 32a includes a queue reading unit 321a, a calculation unit 322a, a selector unit 323a, and a counter unit 324a. Similarly to the processor element unit 32a, the processor element unit 32b and the processor element unit 32c also include a queue reading unit 321, an operation unit 322, a selector unit 323, and a counter unit 324, and the processor element The components provided in the unit 32b and the components provided in the processor element unit 32c also operate in the same manner as the components provided in the processor element unit 32a described below.

キュー読み出し部321aは、調停部14から入力されたパケットを、セレクタ部323aに出力する。また、キュー読み出し部321aは、カウンタ部324aのカウント値に基づいて、次のパケットの出力を要求する出力要求信号REQを調停部14に出力し、出力した出力要求信号REQに応じて入力された次のパケットを、セレクタ部323aに出力する。また、キュー読み出し部321aは、調停部14から入力されたパケットのセレクタ部323aへの出力が完了すると、カウンタ部324aのカウント値を加算(インクリメント)するためのインクリメント信号を、カウンタ部324aに出力する。   The queue reading unit 321a outputs the packet input from the arbitration unit 14 to the selector unit 323a. Further, the queue reading unit 321a outputs an output request signal REQ requesting output of the next packet to the arbitrating unit 14 based on the count value of the counter unit 324a, and is input according to the output request signal REQ output. The next packet is output to the selector unit 323a. In addition, when the queue reading unit 321a completes the output of the packet input from the arbitration unit 14 to the selector unit 323a, the queue reading unit 321a outputs an increment signal for adding (incrementing) the count value of the counter unit 324a to the counter unit 324a. To do.

演算部322aは、セレクタ部323aから入力されたパケットに含まれる入力データに対して、このパケットに含まれる演算内容(処理F1〜F3)に応じたそれぞれの演算(タスク)を順次実行する。演算部322a内では、パケットに含まれる3つの演算内容のそれぞれに対応する3つの演算ユニット3221a〜演算ユニット3223aを直列に接続した、演算ユニットのパイプラインが構成されている。   The calculation unit 322a sequentially executes each calculation (task) corresponding to the calculation contents (processing F1 to F3) included in the packet with respect to the input data included in the packet input from the selector unit 323a. In the arithmetic unit 322a, a pipeline of arithmetic units is configured in which three arithmetic units 3221a to 3223a corresponding to the three arithmetic contents included in the packet are connected in series.

演算ユニット3221a〜演算ユニット3223aのそれぞれは、入力されたパケットに含まれるそれぞれの演算内容(処理F1〜F3)に対応し、対応する演算内容に応じた演算(タスク)を順次実行する。つまり、パイプラインの先頭に配置された演算ユニット3221aが演算内容(処理F1)に応じたタスクを実行し、このタスクの処理が完了すると、パイプラインの2番目に配置された演算ユニット3222aが演算内容(処理F2)に応じたタスクを実行する。そして、演算ユニット3222aが演算内容(処理F2)に応じたタスクの処理が完了すると、パイプラインの最終段に配置された演算ユニット3223aが演算内容(処理F3)に応じたタスクを実行する。そして、演算ユニット3223aが演算内容(処理F3)に応じたタスクの処理が完了すると、演算内容(処理F3)の演算処理の結果を、プロセッサエレメント部32a(演算部322a)の演算結果として出力する。   Each of the arithmetic units 3221a to 3223a corresponds to the respective arithmetic contents (processing F1 to F3) included in the input packet, and sequentially executes arithmetic operations (tasks) corresponding to the corresponding arithmetic contents. In other words, the arithmetic unit 3221a arranged at the head of the pipeline executes a task according to the calculation content (processing F1), and when the processing of this task is completed, the arithmetic unit 3222a arranged second in the pipeline calculates A task corresponding to the content (processing F2) is executed. When the arithmetic unit 3222a completes processing of the task according to the arithmetic content (processing F2), the arithmetic unit 3223a arranged at the final stage of the pipeline executes the task according to the arithmetic content (processing F3). When the arithmetic unit 3223a completes the task processing according to the calculation content (processing F3), the calculation processing result of the calculation content (processing F3) is output as the calculation result of the processor element unit 32a (calculation unit 322a). .

演算ユニット3221aは、対応する演算内容(処理F1)に応じたタスクが完了した場合でも、読み出し指示信号を出力しない点以外の動作は、第2の実施形態の負荷分散制御装置20に備えたプロセッサエレメント部22a内の演算部222aに備えた演算ユニット2221aの動作と同様であるため、詳細な説明は省略する。また、演算ユニット3222aも、第2の実施形態の負荷分散制御装置20に備えたプロセッサエレメント部22a内の演算部222aに備えた演算ユニット2222aの動作と同様であるため、詳細な説明は省略する。   The arithmetic unit 3221a operates in the processor provided in the load distribution control device 20 of the second embodiment except that the read instruction signal is not output even when the task corresponding to the corresponding calculation content (processing F1) is completed. Since the operation is the same as that of the arithmetic unit 2221a provided in the arithmetic unit 222a in the element unit 22a, detailed description thereof is omitted. The arithmetic unit 3222a is the same as the operation of the arithmetic unit 2222a included in the arithmetic unit 222a in the processor element unit 22a included in the load distribution control device 20 of the second embodiment, and thus detailed description thereof is omitted. .

演算ユニット3223aは、対応する演算内容(処理F3)に応じたタスクの処理が完了したときに、実行した演算内容(処理F3)に応じたタスクの処理の結果が、打ち切り条件を満足するか否かを判定する。この判定の結果、演算内容(処理F3)に応じたタスクの処理の結果が、打ち切り条件を満足しない場合、すなわち、演算処理の反復を打ち切らずにフィードバック処理を行う場合には、入力データを演算内容(処理F3)の演算処理の結果に置き換えた(アップデートした)パケットを、フィードバック処理を行う次のパケットとしてセレクタ部323aに出力する。   The arithmetic unit 3223a determines whether or not the result of the task processing corresponding to the executed operation content (processing F3) satisfies the abort condition when the task processing corresponding to the corresponding operation content (processing F3) is completed. Determine whether. As a result of this determination, when the result of the task processing according to the operation content (processing F3) does not satisfy the abort condition, that is, when the feedback processing is performed without stopping the operation processing iteration, the input data is calculated. The packet replaced (updated) with the result of the operation processing of the content (processing F3) is output to the selector unit 323a as the next packet for performing the feedback processing.

また、演算ユニット3223aは、判定の結果、演算内容(処理F3)に応じたタスクの処理の結果が、打ち切り条件を満足する場合、すなわち、演算処理の反復を打ち切ってフィードバック処理を終了する場合には、演算内容(処理F3)の演算処理の結果を、演算部322aの演算結果として出力する。このとき、演算ユニット3223aは、カウンタ部324aのカウント値を減算(デクリメント)するためのデクリメント信号を、カウンタ部324aに出力する。   In addition, the arithmetic unit 3223a determines that the result of the determination indicates that the task processing result corresponding to the operation content (processing F3) satisfies the abort condition, that is, the operation processing is terminated and the feedback processing is terminated. Outputs the result of the calculation processing (processing F3) as the calculation result of the calculation unit 322a. At this time, the arithmetic unit 3223a outputs a decrement signal for subtracting (decrementing) the count value of the counter unit 324a to the counter unit 324a.

セレクタ部323aは、キュー読み出し部321aから入力されたパケット、または演算部322a内の演算ユニット3223aから入力されたパケットのいずれか一方のパケットを、演算部322a内の演算ユニット3221aに出力する。   The selector unit 323a outputs either the packet input from the queue reading unit 321a or the packet input from the arithmetic unit 3223a in the arithmetic unit 322a to the arithmetic unit 3221a in the arithmetic unit 322a.

なお、セレクタ部323aは、キュー読み出し部321aから入力されたパケット、および演算ユニット3223aから入力されたパケットのそれぞれが同時期に入力された場合に対応し、それぞれのパケットを入力された順番で一時的に記憶する機能を備えている。そして、セレクタ部323aは、演算ユニット3221aが実行しているタスクがない場合、一時的に記憶されたそれぞれのパケットを、記憶された順番で順次演算ユニット3221aに出力する。   The selector unit 323a corresponds to the case where the packet input from the queue reading unit 321a and the packet input from the arithmetic unit 3223a are input at the same time, and temporarily receives each packet in the input order. The function to memorize automatically. Then, when there is no task being executed by the arithmetic unit 3221a, the selector unit 323a sequentially outputs the temporarily stored packets to the arithmetic unit 3221a in the stored order.

なお、セレクタ部323aが、演算ユニット3221aが実行しているタスクがあるか否かを判定する方法としては、例えば、演算ユニット3221aが出力する演算完了信号を検出する方法や、演算ユニット3221aに読み出し指示信号を出力させて判定する方法などが考えられる。本第3の実施形態においては、セレクタ部323aによる演算ユニット3221aが実行しているタスクがあるか否かの判定方法に関しては、何ら限定しない。   The selector unit 323a determines whether or not there is a task being executed by the arithmetic unit 3221a. For example, the selector unit 323a detects a calculation completion signal output from the arithmetic unit 3221a or reads the calculation unit 3221a. A method of determining by outputting an instruction signal is conceivable. In the third embodiment, the method for determining whether or not there is a task executed by the arithmetic unit 3221a by the selector unit 323a is not limited.

カウンタ部324aは、初期値が“0”で、この初期値=“0”から演算部322aに備えた演算ユニットの数までの間でカウントするカウンタである。カウンタ部324aは、キュー読み出し部321aから入力されたインクリメント信号に応じて、当該カウンタ部324aのカウント値を加算(インクリメント)し、演算部322a内の演算ユニット3223aから入力されたデクリメント信号に応じて、当該カウンタ部324aのカウント値を減算(デクリメント)する。そして、カウンタ部324aは、当該カウンタ部324aのカウント値を、キュー読み出し部321aに出力する。   The counter unit 324a is a counter that has an initial value “0” and counts from the initial value = “0” to the number of arithmetic units included in the arithmetic unit 322a. The counter unit 324a adds (increments) the count value of the counter unit 324a according to the increment signal input from the queue reading unit 321a, and according to the decrement signal input from the arithmetic unit 3223a in the arithmetic unit 322a. Then, the count value of the counter unit 324a is subtracted (decremented). Then, the counter unit 324a outputs the count value of the counter unit 324a to the queue reading unit 321a.

上述したように、キュー読み出し部321aは、カウンタ部324aのカウント値に基づいて、次のパケットの出力を要求する出力要求信号REQを調停部14に出力する。ここで、キュー読み出し部321aによる出力要求信号REQの出力制御の方法について説明する。   As described above, the queue reading unit 321a outputs the output request signal REQ for requesting the output of the next packet to the arbitrating unit 14 based on the count value of the counter unit 324a. Here, a method of controlling output of the output request signal REQ by the queue reading unit 321a will be described.

キュー読み出し部321aは、カウンタ部324aのカウント値が、演算部322aに備えた演算ユニットの数未満の値である、すなわち、本第3の実施形態の負荷分散制御装置30では、カウンタ部324aのカウント値が“0”〜“2”の間であるときには、次のパケットの出力を要求する出力要求信号REQを調停部14に出力し、出力した出力要求信号REQに応じて入力された次のパケットを、セレクタ部323aに出力する。   The queue reading unit 321a has a count value of the counter unit 324a that is less than the number of arithmetic units included in the arithmetic unit 322a. That is, in the load distribution control device 30 of the third embodiment, the counter unit 324a When the count value is between “0” and “2”, the output request signal REQ for requesting the output of the next packet is output to the arbitration unit 14, and the next input that is input according to the output request signal REQ that is output. The packet is output to the selector unit 323a.

また、キュー読み出し部321aは、カウンタ部324aのカウント値が、演算部322aに備えた演算ユニットの数と同じ値である、すなわち、本第3の実施形態の負荷分散制御装置30では、カウンタ部324aのカウント値が“3”であるときには、調停部14に次のパケットの出力を要求しない。   In addition, the queue reading unit 321a has a count value of the counter unit 324a equal to the number of arithmetic units provided in the arithmetic unit 322a. That is, in the load distribution control device 30 of the third embodiment, the counter unit When the count value of 324a is “3”, the arbitration unit 14 is not requested to output the next packet.

このように、負荷分散制御装置30では、第2の実施形態の負荷分散制御装置20と同様に、それぞれのプロセッサエレメント部32に備えた演算部322内に複数の演算ユニットを備え、この複数の演算ユニットでパイプラインを構成する。このような構成によって、負荷分散制御装置30では、第2の実施形態の負荷分散制御装置20と同様に、入力されたパケットに含まれる複数の演算処理のタスクを、パイプラインを構成するそれぞれの演算ユニットで同時に実行することができる。   As described above, in the load distribution control device 30, similarly to the load distribution control device 20 of the second embodiment, a plurality of calculation units are provided in the calculation units 322 included in the respective processor element units 32. A pipeline is composed of arithmetic units. With such a configuration, in the load distribution control device 30, similarly to the load distribution control device 20 of the second embodiment, a plurality of arithmetic processing tasks included in the input packet are each processed in the pipeline. Can be executed simultaneously on the arithmetic unit.

また、負荷分散制御装置30では、それぞれのプロセッサエレメント部32に備えた演算部322で反復(フィードバック)処理を行うか否かを判定し、判定した結果をカウンタ部324aのカウント値に反映する。そして、それぞれのプロセッサエレメント部32に備えたキュー読み出し部321aが、カウンタ部324aのカウント値に基づいて、調停部14に次のパケットの出力を要求するか否かを決定する。このような動作によって、負荷分散制御装置30では、それぞれのプロセッサエレメント部32内でフィードバック処理を実行する。   Further, in the load distribution control device 30, it is determined whether or not the iterative (feedback) processing is performed by the arithmetic units 322 included in the respective processor element units 32, and the determined result is reflected in the count value of the counter unit 324a. Then, the queue reading unit 321a included in each processor element unit 32 determines whether to request the arbitration unit 14 to output the next packet based on the count value of the counter unit 324a. With such an operation, the load distribution control device 30 executes feedback processing in each processor element unit 32.

また、負荷分散制御装置30では、要求された演算処理を複数のプロセッサエレメント部32のそれぞれで分担して行う際に、第1の実施形態の負荷分散制御装置10および第2の実施形態の負荷分散制御装置20と同様に、それぞれのプロセッサエレメント部32が実行する演算処理の負荷を分散することによって、いずれかのプロセッサエレメント部32のみに負荷が集中してしまうことを回避することができる。   Further, in the load distribution control device 30, when the requested arithmetic processing is shared by each of the plurality of processor element units 32, the load distribution control device 10 of the first embodiment and the load of the second embodiment are performed. Similar to the distributed control device 20, by distributing the load of the arithmetic processing executed by each processor element unit 32, it is possible to avoid the concentration of the load only on one of the processor element units 32.

なお、図6に示した負荷分散制御装置30の構成でも、調停部14が、プロセッサエレメント部32のそれぞれから入力された出力要求信号REQの受付を調停する構成を示したが、負荷分散制御装置30の構成は、第1の実施形態の負荷分散制御装置10および第2の実施形態の負荷分散制御装置20と同様に、図6に示した構成のみに限定されるものではない。   In the configuration of the load distribution control device 30 shown in FIG. 6, the configuration in which the arbitration unit 14 arbitrates reception of the output request signal REQ input from each of the processor element units 32 is shown. The configuration of 30 is not limited to the configuration illustrated in FIG. 6 as in the load distribution control device 10 of the first embodiment and the load distribution control device 20 of the second embodiment.

また、図6に示した負荷分散制御装置20の構成では、キュー読み出し部321aから入力されたパケットと、演算ユニット3223aから入力されたパケットとのそれぞれが同時期に入力された場合に対応するため、セレクタ部323aが、それぞれのパケットを入力された順番で一時的に記憶する機能を備えている構成を示した。しかし、それぞれのパケットを演算ユニット3221aに出力するタイミングを調整する構成は、図6に示した構成のみに限定されるものではない。例えば、上述したように、カウンタ部324aのカウント値が、演算部322aに備えた演算ユニットの数と同じ値である場合には、キュー読み出し部321aは、次のパケットを調停部14に要求せず、次のパケットを読み出さない。このため、演算ユニット3221aによる演算内容に応じたタスクの実行が待たされる可能性があるパケットは、演算ユニット3223aが出力するフィードバック処理のパケットのみである。従って、演算ユニット3223aが出力するフィードバック処理のパケットのみを一時的に記憶する構成とし、セレクタ部323aに、それぞれのパケットを一時的に記憶する機能を備えない構成にすることもできる。   Further, in the configuration of the load distribution control device 20 illustrated in FIG. 6, it corresponds to a case where a packet input from the queue reading unit 321a and a packet input from the arithmetic unit 3223a are input at the same time. The configuration in which the selector unit 323a has a function of temporarily storing each packet in the input order is shown. However, the configuration for adjusting the timing for outputting each packet to the arithmetic unit 3221a is not limited to the configuration shown in FIG. For example, as described above, when the count value of the counter unit 324a is the same value as the number of arithmetic units provided in the arithmetic unit 322a, the queue reading unit 321a requests the arbitration unit 14 for the next packet. The next packet is not read out. For this reason, the only packet that may wait for the execution of the task according to the calculation content by the arithmetic unit 3221a is the packet of the feedback process output by the arithmetic unit 3223a. Accordingly, only the feedback processing packet output from the arithmetic unit 3223a may be temporarily stored, and the selector unit 323a may not have a function of temporarily storing each packet.

より具体的には、演算ユニット3223aの後段に、演算ユニット3223aが出力するフィードバック処理のパケットを一時的に記憶する、例えば、バッファを設ける。そして、キュー読み出し部321aが、カウンタ部324aのカウント値に基づいて、調停部14を介してパケットキューイング部13から次のパケットを読み出すか、バッファからフィードバック処理のパケット読み出すかを切り替え、読み出したいずれかのパケットを、演算ユニット3221aに直接出力する構成にすることもできる。この場合のキュー読み出し部321aの動作も、上述したキュー読み出し部321aの動作と同様に、カウンタ部324aのカウント値が演算部322aに備えた演算ユニットの数未満の値である場合に、パケットキューイング部13から次のパケットを読み出し、カウンタ部324aのカウント値が演算部322aに備えた演算ユニットの数と同じ値である場合に、バッファからフィードバック処理のパケット読み出す動作となる。   More specifically, for example, a buffer is provided in the subsequent stage of the arithmetic unit 3223a to temporarily store a feedback processing packet output from the arithmetic unit 3223a. Based on the count value of the counter unit 324a, the queue reading unit 321a switches between reading out the next packet from the packet queuing unit 13 or reading out the packet for feedback processing from the buffer via the arbitration unit 14, Any one of the packets may be directly output to the arithmetic unit 3221a. The operation of the queue reading unit 321a in this case is also the packet queue when the count value of the counter unit 324a is less than the number of arithmetic units provided in the arithmetic unit 322a, similar to the operation of the queue reading unit 321a described above. When the next packet is read out from the ingesting unit 13 and the count value of the counter unit 324a is the same as the number of arithmetic units provided in the arithmetic unit 322a, an operation of reading out a packet for feedback processing from the buffer is performed.

次に、負荷分散制御装置30の動作について説明する。図7は、本第3の実施形態の負荷分散制御装置30における動作のタイミングの一例を模式的に示した図である。以下の説明においては、説明を容易にするため、1つのプロセッサエレメント部32aの動作に着目して説明を行う。   Next, the operation of the load distribution control device 30 will be described. FIG. 7 is a diagram schematically illustrating an example of operation timing in the load distribution control device 30 according to the third embodiment. In the following description, in order to facilitate the description, the description will be given focusing on the operation of one processor element unit 32a.

なお、図6に示した負荷分散制御装置30では、プロセッサエレメント部32a(キュー読み出し部321a)が、カウンタ部324aのカウント値に基づいて、調停部14に出力要求信号REQを出力するか否かを決定する。そして、プロセッサエレメント部32a(キュー読み出し部321a)が調停部14に出力要求信号REQを出力した場合、調停部14が、プロセッサエレメント部32a(キュー読み出し部321a)から出力された出力要求信号REQに応じてパケットキューイング部13に格納されているパケットを読み出し、読み出したパケットをプロセッサエレメント部32a(キュー読み出し部321a)に出力する。このような動作によって、プロセッサエレメント部32a(キュー読み出し部321a)に、調停部14がパケットキューイング部13から読み出したパケットがプロセッサエレメント部32a(キュー読み出し部321a)に入力される。しかし、以下の説明においては、説明を容易にするため、キュー読み出し部321aが、カウンタ部324aのカウント値に基づいて調停部14に出力要求信号REQを出力すると判定したとき、すなわち、次のパケットを読み出すと判定したときは、キュー読み出し部321aがパケットキューイング部13に直接アクセスして、パケットキューイング部13に格納されているパケットを読み出す構成であるものとして説明する。   In the load distribution control device 30 shown in FIG. 6, whether or not the processor element unit 32a (queue read unit 321a) outputs the output request signal REQ to the arbitration unit 14 based on the count value of the counter unit 324a. To decide. When the processor element unit 32a (queue read unit 321a) outputs the output request signal REQ to the arbitration unit 14, the arbitration unit 14 uses the output request signal REQ output from the processor element unit 32a (queue read unit 321a). In response, the packet stored in the packet queuing unit 13 is read, and the read packet is output to the processor element unit 32a (queue reading unit 321a). By such an operation, the packet read from the packet queuing unit 13 by the arbitrating unit 14 is input to the processor element unit 32a (queue reading unit 321a) and the processor element unit 32a (queue reading unit 321a). However, in the following description, for ease of explanation, when the queue reading unit 321a determines to output the output request signal REQ to the arbitration unit 14 based on the count value of the counter unit 324a, that is, the next packet. In the following description, it is assumed that the queue reading unit 321a directly accesses the packet queuing unit 13 and reads the packet stored in the packet queuing unit 13.

図7には、図6に示したプロセッサエレメント部32a内のキュー読み出し部321aが(調停部14を介して)読み出すパケットと、プロセッサエレメント部32a内でフィードバック処理を行うために演算部322aから出力されるパケットと、キュー読み出し部321aが(調停部14を介して)パケットを読み出すか否かを判定するためのカウンタ部324aのカウント値とを示している。また、図7には、図6に示したプロセッサエレメント部32a内の演算部322aに備えた3つの演算ユニット3221a〜演算ユニット3223aのそれぞれが、入力されたパケットに含まれる、対応する演算内容に応じたタスクを実行している期間を示している。   FIG. 7 shows a packet read by the queue reading unit 321a in the processor element unit 32a shown in FIG. 6 (via the arbitration unit 14) and an output from the arithmetic unit 322a to perform feedback processing in the processor element unit 32a. And the count value of the counter unit 324a for determining whether or not the queue reading unit 321a reads the packet (via the arbitration unit 14). Further, FIG. 7 shows that each of the three arithmetic units 3221a to 3223a included in the arithmetic unit 322a in the processor element unit 32a shown in FIG. 6 includes the corresponding arithmetic contents included in the input packet. The period during which the corresponding task is executed is shown.

まず、キュー読み出し部321aが、カウンタ部324aのカウント値に基づいて次のパケットを読み出すか否かを判定する。ここでは、カウンタ部324aのカウント値=“0”(初期値)であるため、キュー読み出し部321aは、次のパケットを読み出すと判定し、パケットP31を読み出す。そして、キュー読み出し部321aは、読み出したパケットP31が演算部322aに入力されると、インクリメント信号をカウンタ部324aに出力して、カウンタ部324aのカウント値を加算(インクリメント)する。これにより、カウンタ部324aのカウント値は“1”になる。また、演算部322aに備えた演算ユニット3221aは、セレクタ部323aを介して入力されたパケットP31に含まれる最初の演算内容(処理F1)に応じたタスクを実行する。   First, the queue reading unit 321a determines whether or not to read the next packet based on the count value of the counter unit 324a. Here, since the count value of the counter unit 324a = “0” (initial value), the queue reading unit 321a determines to read the next packet, and reads the packet P31. Then, when the read packet P31 is input to the arithmetic unit 322a, the queue reading unit 321a outputs an increment signal to the counter unit 324a and adds (increments) the count value of the counter unit 324a. As a result, the count value of the counter unit 324a becomes “1”. In addition, the arithmetic unit 3221a included in the arithmetic unit 322a executes a task corresponding to the first arithmetic content (processing F1) included in the packet P31 input via the selector unit 323a.

以降、演算ユニット3221aがパケットP31の演算内容(処理F1)に応じたタスクの処理が完了すると、演算ユニット3222aは、入力されたパケットP31に含まれる2番目の演算内容(処理F2)に応じたタスクの実行を開始する。その後、演算ユニット3222aがパケットP31の演算内容(処理F2)に応じたタスクの処理が完了すると、演算ユニット3223aは、入力されたパケットP31に含まれる最後の演算内容(処理F3)に応じたタスクの実行を開始する。   Thereafter, when the arithmetic unit 3221a completes the task processing according to the operation content (processing F1) of the packet P31, the operation unit 3222a responds to the second operation content (processing F2) included in the input packet P31. Start the task execution. Thereafter, when the arithmetic unit 3222a completes the task processing according to the calculation content (processing F2) of the packet P31, the arithmetic unit 3223a performs the task according to the last calculation content (processing F3) included in the input packet P31. Start running.

また、演算ユニット3221aがパケットP31の演算内容(処理F1)に応じたタスクの処理が完了したことにより、実行しているタスクがなくなったため、キュー読み出し部321aは、カウンタ部324aのカウント値に基づいて次のパケットを読み出すか否かを判定する。ここでは、カウンタ部324aのカウント値=“1”であるため、キュー読み出し部321aは、次のパケットを読み出すと判定し、次のパケットP32を読み出す。そして、キュー読み出し部321aは、読み出したパケットP32が演算部322aに入力されると、インクリメント信号をカウンタ部324aに出力して、カウンタ部324aのカウント値をさらに加算(インクリメント)する。これにより、カウンタ部324aのカウント値は“2”になる。また、演算ユニット3221aは、セレクタ部323aを介して入力されたパケットP32に含まれる最初の演算内容(処理F1)に応じたタスクを実行する。   In addition, since the task is not executed because the operation unit 3221a has completed the task processing according to the operation content (processing F1) of the packet P31, the queue reading unit 321a is based on the count value of the counter unit 324a. To determine whether to read the next packet. Here, since the count value of the counter unit 324a = “1”, the queue reading unit 321a determines that the next packet is read, and reads the next packet P32. Then, when the read packet P32 is input to the arithmetic unit 322a, the queue reading unit 321a outputs an increment signal to the counter unit 324a, and further adds (increments) the count value of the counter unit 324a. As a result, the count value of the counter unit 324a becomes “2”. The arithmetic unit 3221a executes a task corresponding to the first calculation content (processing F1) included in the packet P32 input via the selector unit 323a.

以降、演算ユニット3221aがパケットP32の演算内容(処理F1)に応じたタスクの処理が完了すると、演算ユニット3222aは、入力されたパケットP32に含まれる2番目の演算内容(処理F2)に応じたタスクの実行を開始する。その後、演算ユニット3222aがパケットP31の演算内容(処理F2)に応じたタスクの処理が完了すると、演算ユニット3223aは、入力されたパケットP32に含まれる最後の演算内容(処理F3)に応じたタスクの実行を開始する。   Thereafter, when the arithmetic unit 3221a completes the task processing according to the operation content (processing F1) of the packet P32, the operation unit 3222a responds to the second operation content (processing F2) included in the input packet P32. Start the task execution. Thereafter, when the arithmetic unit 3222a completes the task processing according to the operation content (processing F2) of the packet P31, the operation unit 3223a performs the task according to the last operation content (processing F3) included in the input packet P32. Start running.

また、演算ユニット3221aがパケットP32の演算内容(処理F1)に応じたタスクの処理が完了したことにより、実行しているタスクがなくなったため、キュー読み出し部321aは、カウンタ部324aのカウント値に基づいて次のパケットを読み出すか否かを判定する。ここでは、カウンタ部324aのカウント値=“2”であるため、キュー読み出し部321aは、次のパケットを読み出すと判定し、次のパケットP33を読み出す。そして、キュー読み出し部321aは、読み出したパケットP33が演算部322aに入力されると、インクリメント信号をカウンタ部324aに出力して、カウンタ部324aのカウント値をさらに加算(インクリメント)する。これにより、カウンタ部324aのカウント値は“3”になる。また、演算ユニット3221aは、セレクタ部323aを介して入力されたパケットP33に含まれる最初の演算内容(処理F1)に応じたタスクを実行する。   In addition, since the task is not executed because the operation unit 3221a has completed the task processing according to the operation content (processing F1) of the packet P32, the queue reading unit 321a is based on the count value of the counter unit 324a. To determine whether to read the next packet. Here, since the count value of the counter unit 324a = “2”, the queue reading unit 321a determines that the next packet is read, and reads the next packet P33. Then, when the read packet P33 is input to the arithmetic unit 322a, the queue reading unit 321a outputs an increment signal to the counter unit 324a, and further adds (increments) the count value of the counter unit 324a. As a result, the count value of the counter unit 324a becomes “3”. The arithmetic unit 3221a executes a task corresponding to the first calculation content (processing F1) included in the packet P33 input via the selector unit 323a.

以降、演算ユニット3221aがパケットP33の演算内容(処理F1)に応じたタスクの処理が完了すると、演算ユニット3222aは、入力されたパケットP33に含まれる2番目の演算内容(処理F2)に応じたタスクの実行を開始する。その後、演算ユニット3222aがパケットP33の演算内容(処理F2)に応じたタスクの処理が完了すると、演算ユニット3223aは、入力されたパケットP33に含まれる最後の演算内容(処理F3)に応じたタスクの実行を開始する。   Thereafter, when the arithmetic unit 3221a completes the task processing corresponding to the operation content (processing F1) of the packet P33, the operation unit 3222a responds to the second operation content (processing F2) included in the input packet P33. Start the task execution. After that, when the arithmetic unit 3222a completes the task processing according to the operation content (processing F2) of the packet P33, the operation unit 3223a performs the task according to the last operation content (processing F3) included in the input packet P33. Start running.

その後、演算ユニット3223aは、最初に入力されたパケットP31の演算内容(処理F3)に応じたタスクの処理が完了すると、実行した演算内容(処理F3)に応じたタスクの処理の結果が、打ち切り条件を満足するか否かを判定する。ここでは、パケットP31がフィードバック処理を行うパケットであるものとする。このため、演算ユニット3223aは、実行した演算内容(処理F3)に応じたタスクの処理の結果が打ち切り条件を満足しない、すなわち、フィードバック処理を行う(=反復あり)と判定する。この判定結果に応じて、演算ユニット3223aは、パケットP31の入力データを演算内容(処理F3)の演算処理の結果に置き換えた(アップデートした)、フィードバック処理のパケットPF31を、セレクタ部323aに出力する(図7の経路FB1参照)。   Thereafter, when the processing of the task according to the operation content (processing F3) of the packet P31 input first is completed, the arithmetic unit 3223a aborts the task processing result according to the executed operation content (processing F3). It is determined whether or not the condition is satisfied. Here, it is assumed that the packet P31 is a packet for performing feedback processing. For this reason, the arithmetic unit 3223a determines that the result of the task processing corresponding to the executed operation content (processing F3) does not satisfy the abort condition, that is, performs feedback processing (= repetition). In accordance with this determination result, the arithmetic unit 3223a replaces (updates) the input data of the packet P31 with the result of the arithmetic processing (processing F3), and outputs the packet PF31 of the feedback processing to the selector unit 323a. (See route FB1 in FIG. 7).

また、演算ユニット3221aがパケットP33の演算内容(処理F1)に応じたタスクの処理が完了したことにより、実行しているタスクがなくなったため、キュー読み出し部321aは、カウンタ部324aのカウント値に基づいて次のパケットを読み出すか否かを判定する。ここでは、カウンタ部324aのカウント値=“3”であるため、キュー読み出し部321aは、次のパケットを読み出さないと判定し、次のパケットP34の読み出しを行わない。これにより、演算ユニット3221aには、フィードバック処理のパケットPF31がセレクタ部323aを介して入力される(図7の経路FB2参照)。このとき、キュー読み出し部321aは、フィードバック処理のパケットPF31の演算部322aへの入力であるため、インクリメント信号をカウンタ部324aに出力せず、カウンタ部324aの現在のカウント値を保持させる。これにより、カウンタ部324aのカウント値は“3”が保持される。そして、演算ユニット3221aは、セレクタ部323aを介して入力されたフィードバック処理のパケットPF31に含まれる最初の演算内容(処理F1)に応じたタスクを実行する。   In addition, since the task is not executed because the operation unit 3221a has completed the task processing according to the operation content (processing F1) of the packet P33, the queue reading unit 321a is based on the count value of the counter unit 324a. To determine whether to read the next packet. Here, since the count value of the counter unit 324a = “3”, the queue reading unit 321a determines that the next packet is not read, and does not read the next packet P34. Thus, the feedback processing packet PF31 is input to the arithmetic unit 3221a via the selector unit 323a (see the path FB2 in FIG. 7). At this time, since the queue reading unit 321a is an input to the arithmetic unit 322a of the packet PF31 for feedback processing, the queue reading unit 321a does not output the increment signal to the counter unit 324a, but holds the current count value of the counter unit 324a. Accordingly, “3” is held as the count value of the counter unit 324a. The arithmetic unit 3221a executes a task corresponding to the first calculation content (processing F1) included in the packet PF31 for feedback processing input via the selector unit 323a.

その後、演算ユニット3223aは、2番目に入力されたパケットP32の演算内容(処理F3)に応じたタスクの処理が完了すると、実行した演算内容(処理F3)に応じたタスクの処理の結果が、打ち切り条件を満足するか否かを判定する。ここでは、パケットP32がフィードバック処理を行わないパケットであるものとする。このため、演算ユニット3223aは、実行した演算内容(処理F3)に応じたタスクの処理の結果が打ち切り条件を満足する、すなわち、フィードバック処理を行う(=反復なし)と判定する。この判定結果に応じて、演算ユニット3223aは、パケットP32の入力データを演算内容(処理F3)の演算処理の結果を、演算部322aの演算結果として出力する。そして、演算ユニット3223aは、演算部322aの演算結果が出力されると、デクリメント信号をカウンタ部324aに出力して、カウンタ部324aのカウント値を減算(デクリメント)する。これにより、カウンタ部324aのカウント値は“2”になる。   After that, when the processing of the task according to the operation content (processing F3) of the second input packet P32 is completed, the operation unit 3223a displays the result of the task processing according to the executed operation content (processing F3). It is determined whether or not the abort condition is satisfied. Here, it is assumed that the packet P32 is a packet for which feedback processing is not performed. For this reason, the arithmetic unit 3223a determines that the result of the task processing corresponding to the executed arithmetic content (processing F3) satisfies the abort condition, that is, performs feedback processing (= no repetition). In accordance with this determination result, the arithmetic unit 3223a outputs the result of the arithmetic processing of the operation content (processing F3) for the input data of the packet P32 as the arithmetic result of the arithmetic unit 322a. When the calculation result of the calculation unit 322a is output, the calculation unit 3223a outputs a decrement signal to the counter unit 324a and subtracts (decrements) the count value of the counter unit 324a. As a result, the count value of the counter unit 324a becomes “2”.

その後、演算ユニット3221aがパケットPF31の演算内容(処理F1)に応じたタスクの処理が完了すると、演算ユニット3222aは、フィードバック処理のパケットPF31に含まれる2番目の演算内容(処理F2)に応じたタスクの実行を開始する。そして、演算ユニット3222aがパケットPF31の演算内容(処理F2)に応じたタスクの処理が完了すると、演算ユニット3223aは、フィードバック処理のパケットPF31に含まれる最後の演算内容(処理F3)に応じたタスクの実行を開始する。   Thereafter, when the arithmetic unit 3221a completes the processing of the task according to the operation content (processing F1) of the packet PF31, the operation unit 3222a responds to the second operation content (processing F2) included in the packet PF31 of the feedback processing. Start the task execution. When the arithmetic unit 3222a completes the processing of the task according to the operation content (processing F2) of the packet PF31, the operation unit 3223a performs the task according to the last operation content (processing F3) included in the packet PF31 of the feedback processing. Start running.

また、演算ユニット3221aがフィードバック処理のパケットPF31の演算内容(処理F1)に応じたタスクの処理が完了したことにより、実行しているタスクがなくなったため、キュー読み出し部321aは、カウンタ部324aのカウント値に基づいて次のパケットを読み出すか否かを判定する。ここでは、カウンタ部324aのカウント値=“2”であるため、キュー読み出し部321aは、次のパケットを読み出すと判定し、次のパケットP34を読み出す。そして、キュー読み出し部321aは、読み出したパケットP34が演算部322aに入力されると、インクリメント信号をカウンタ部324aに出力して、カウンタ部324aのカウント値を加算(インクリメント)する。これにより、カウンタ部324aのカウント値は“3”になる。また、演算ユニット3221aは、セレクタ部323aを介して入力されたパケットP34に含まれる最初の演算内容(処理F1)に応じたタスクを実行する。   In addition, the queue reading unit 321a counts the counter unit 324a because there is no task being executed because the processing unit 3221a has completed the processing of the task according to the calculation content (processing F1) of the packet PF31 of the feedback processing. It is determined whether to read the next packet based on the value. Here, since the count value of the counter unit 324a is “2”, the queue reading unit 321a determines to read the next packet, and reads the next packet P34. Then, when the read packet P34 is input to the arithmetic unit 322a, the queue reading unit 321a outputs an increment signal to the counter unit 324a and adds (increments) the count value of the counter unit 324a. As a result, the count value of the counter unit 324a becomes “3”. The arithmetic unit 3221a executes a task corresponding to the first calculation content (processing F1) included in the packet P34 input via the selector unit 323a.

以降、演算ユニット3221aがパケットP34の演算内容(処理F1)に応じたタスクの処理が完了すると、演算ユニット3222aは、入力されたパケットP34に含まれる2番目の演算内容(処理F2)に応じたタスクの実行を開始する。その後、演算ユニット3222aがパケットP34の演算内容(処理F2)に応じたタスクの処理が完了すると、演算ユニット3223aは、入力されたパケットP34に含まれる最後の演算内容(処理F3)に応じたタスクの実行を開始する。   Thereafter, when the arithmetic unit 3221a completes the task processing according to the operation content (processing F1) of the packet P34, the operation unit 3222a responds to the second operation content (processing F2) included in the input packet P34. Start the task execution. Thereafter, when the arithmetic unit 3222a completes the task processing according to the operation content (processing F2) of the packet P34, the operation unit 3223a performs the task according to the last operation content (processing F3) included in the input packet P34. Start running.

また、演算ユニット3221aがパケットP34の演算内容(処理F1)に応じたタスクの処理が完了したことにより、実行しているタスクがなくなったため、キュー読み出し部321aは、カウンタ部324aのカウント値に基づいて次のパケットを読み出すか否かを判定する。ここでは、カウンタ部324aのカウント値=“3”であるため、キュー読み出し部321aは、次のパケットを読み出さないと判定し、次のパケットP35(不図示)の読み出しを行わないで待機する。   In addition, since the task is not executed because the operation unit 3221a has completed the task processing according to the operation content (processing F1) of the packet P34, the queue reading unit 321a is based on the count value of the counter unit 324a. To determine whether to read the next packet. Here, since the count value of the counter unit 324a = “3”, the queue reading unit 321a determines that the next packet is not read, and waits without reading the next packet P35 (not shown).

その後、演算ユニット3223aは、3番目に入力されたパケットP33の演算内容(処理F3)に応じたタスクの処理が完了すると、実行した演算内容(処理F3)に応じたタスクの処理の結果が、打ち切り条件を満足するか否かを判定する。ここでは、パケットP33がフィードバック処理を行うパケットであるものとする。このため、演算ユニット3223aは、実行した演算内容(処理F3)に応じたタスクの処理の結果が打ち切り条件を満足しない、すなわち、フィードバック処理を行う(=反復あり)と判定する。この判定結果に応じて、演算ユニット3223aは、パケットP33の入力データを演算内容(処理F3)の演算処理の結果に置き換えた(アップデートした)、フィードバック処理のパケットPF33を、セレクタ部323aに出力する(図7の経路FB3参照)。   Thereafter, when the processing of the task according to the operation content (processing F3) of the third input packet P33 is completed, the operation unit 3223a obtains the result of the task processing according to the executed operation content (processing F3). It is determined whether or not the abort condition is satisfied. Here, it is assumed that the packet P33 is a packet for performing feedback processing. For this reason, the arithmetic unit 3223a determines that the result of the task processing corresponding to the executed operation content (processing F3) does not satisfy the abort condition, that is, performs feedback processing (= repetition). In accordance with the determination result, the arithmetic unit 3223a replaces (updates) the input data of the packet P33 with the result of the arithmetic processing (processing F3), and outputs the packet PF33 of the feedback processing to the selector unit 323a. (See route FB3 in FIG. 7).

また、演算ユニット3221aは、パケットP34の演算内容(処理F1)に応じたタスクの処理がすでに完了している状態であるため、演算ユニット3221aには、フィードバック処理のパケットPF33がセレクタ部323aを介して入力される(図7の経路FB4参照)。このとき、キュー読み出し部321aは、フィードバック処理のパケットPF33の演算部322aへの入力であるため、インクリメント信号をカウンタ部324aに出力せず、カウンタ部324aの現在のカウント値を保持させる。これにより、カウンタ部324aのカウント値は“3”が保持される。そして、演算ユニット3221aは、セレクタ部323aを介して入力されたフィードバック処理のパケットPF33に含まれる最初の演算内容(処理F1)に応じたタスクを実行する。   In addition, since the arithmetic unit 3221a has already completed the task processing according to the operation content (processing F1) of the packet P34, the arithmetic unit 3221a receives the packet PF33 for feedback processing via the selector unit 323a. (See path FB4 in FIG. 7). At this time, since the queue reading unit 321a is an input to the arithmetic unit 322a of the packet PF33 for feedback processing, the queue reading unit 321a does not output the increment signal to the counter unit 324a, but holds the current count value of the counter unit 324a. Accordingly, “3” is held as the count value of the counter unit 324a. The arithmetic unit 3221a executes a task corresponding to the first arithmetic content (processing F1) included in the packet PF33 for feedback processing input via the selector unit 323a.

このように、負荷分散制御装置30では、それぞれのプロセッサエレメント部32に備えた演算部322で反復(フィードバック)処理を行うか否かを判定し、それぞれのプロセッサエレメント部32に備えたキュー読み出し部321aが、カウンタ部324aのカウント値に基づいて、次のパケットを読み出すか否かを判定することによって、負荷分散制御装置30に備えたそれぞれのプロセッサエレメント部32内でフィードバック処理を実行する。   As described above, in the load distribution control device 30, it is determined whether or not iterative (feedback) processing is performed by the arithmetic unit 322 included in each processor element unit 32, and the queue reading unit included in each processor element unit 32. 321a determines whether or not to read the next packet based on the count value of the counter unit 324a, thereby executing feedback processing in each processor element unit 32 included in the load distribution control device 30.

また、負荷分散制御装置30では、演算処理が空いているそれぞれのプロセッサエレメント部32が、自発的に次のパケットを取得し、それぞれのプロセッサエレメント部32に備えた演算部内でパイプラインを構成する複数の演算ユニットのそれぞれが、入力されたパケットに含まれる、対応する演算内容に応じたタスクを実行する。これにより、負荷分散制御装置30では、第2の実施形態の負荷分散制御装置20と同様に、パイプラインを構成するそれぞれの演算ユニットが同時に、対応するタスクを並列に実行することができる。このことにより、負荷分散制御装置30では、フィードバック処理においても、第2の実施形態の負荷分散制御装置20と同様に、実行する演算処理のスループットを短縮することができる。   Further, in the load distribution control device 30, each processor element unit 32 that is free of arithmetic processing spontaneously acquires the next packet, and configures a pipeline in the arithmetic unit provided in each processor element unit 32. Each of the plurality of calculation units executes a task corresponding to the corresponding calculation content included in the input packet. Thereby, in the load distribution control device 30, as in the load distribution control device 20 of the second embodiment, the respective arithmetic units constituting the pipeline can simultaneously execute corresponding tasks in parallel. As a result, the load distribution control device 30 can also reduce the throughput of the arithmetic processing to be executed in the feedback processing, similarly to the load distribution control device 20 of the second embodiment.

また、負荷分散制御装置30では、フィードバック処理を行わない場合に、演算処理が空いているそれぞれのプロセッサエレメント部32が、自発的に次のパケットを取得する。これにより、負荷分散制御装置30では、フィードバック処理においても、第1の実施形態の負荷分散制御装置10および第2の実施形態の負荷分散制御装置20と同様に、それぞれのプロセッサエレメント部32が実行する演算処理の負荷を分散し、いずれかのプロセッサエレメント部32のみに負荷が集中してしまうことを回避することができる。   Further, in the load distribution control device 30, when the feedback process is not performed, each processor element unit 32 in which the calculation process is empty spontaneously acquires the next packet. Thereby, in the load distribution control device 30, also in the feedback processing, each processor element unit 32 executes the same as in the load distribution control device 10 of the first embodiment and the load distribution control device 20 of the second embodiment. Thus, it is possible to avoid the concentration of the load on only one of the processor element units 32.

上記に述べたとおり、本発明を実施するための形態によれば、複数のプロセッサ(演算処理部)が連携して処理を行うマルチプロセッサシステムの演算装置において、演算処理が空いているそれぞれのプロセッサが、自発的に次のパケットを取得して演算処理を実行する。これにより、本発明を実施するための形態では、それぞれのパケット毎に処理を実行する際の負荷のばらつきがある場合でも、確実に空いているプロセッサにパケットが入力されるように負荷分散の制御を行うことができ、いずれかのプロセッサのみに負荷が集中してしまうことを回避することができる。このことにより、本発明を実施するための形態では、動的な負荷分散の制御を行うことによって、それぞれのプロセッサの稼働率を向上させ、結果的に全ての演算処理のスループットを短縮することができる。   As described above, according to an embodiment for carrying out the present invention, each processor in which arithmetic processing is vacant in an arithmetic device of a multiprocessor system in which a plurality of processors (arithmetic processing units) cooperate to perform processing. However, the next packet is acquired spontaneously and the arithmetic processing is executed. As a result, in the embodiment for carrying out the present invention, even when there is a variation in load when processing is performed for each packet, load distribution control is performed so that the packet is surely input to an empty processor. It is possible to prevent the load from being concentrated on only one of the processors. As a result, in the embodiment for carrying out the present invention, by performing dynamic load balancing control, it is possible to improve the operating rate of each processor and consequently reduce the throughput of all arithmetic processing. it can.

また、本発明を実施するための形態では、演算処理が空いているそれぞれのプロセッサが、自発的に次のパケットを取得するため、従来の負荷分散制御装置に備えたマスタプロセッサのように、次のパケットの投入先を判定するための構成は不要であり、マスタプロセッサが実行している処理を中断して他の処理を実行することによる処理効率の低下などが起こらない。   Further, in the embodiment for carrying out the present invention, each processor that has no computation process voluntarily acquires the next packet, so that the next processor like the master processor provided in the conventional load distribution control device. The configuration for determining the input destination of the packet is not necessary, and the processing efficiency is not lowered by interrupting the processing executed by the master processor and executing other processing.

また、本発明を実施するための形態によれば、それぞれのプロセッサ内の構成を、パイプラインを構成する複数の演算ユニットで構成し、入力されたパケットに含まれるそれぞれの演算内容を、対応する演算ユニットが実行する。これにより、本発明を実施するための形態では、パイプラインを構成するそれぞれの演算ユニットが同時に、対応する演算内容のタスクを並列に実行することができ、それぞれのプロセッサが実行する演算処理のスループットを短縮することができる。   Moreover, according to the form for implementing this invention, the structure in each processor is comprised by the some arithmetic unit which comprises a pipeline, and each calculation content contained in the input packet respond | corresponds. The arithmetic unit executes. Thereby, in the form for implementing this invention, each arithmetic unit which comprises a pipeline can simultaneously perform the task of the corresponding arithmetic content in parallel, and the throughput of the arithmetic processing which each processor performs Can be shortened.

また、本発明を実施するための形態によれば、それぞれのプロセッサで反復(フィードバック)処理を行うか否かを判定し、次のパケットを読み出すか否かを判定することにより、フィードバック処理を行うパケットを一旦プロセッサの外部に出力せずに、フィードバック処理を実行することができる。   Further, according to the embodiment for carrying out the present invention, it is determined whether each processor performs iterative (feedback) processing, and feedback processing is performed by determining whether or not to read the next packet. The feedback process can be executed without once outputting the packet to the outside of the processor.

これらにより、本発明を実施するための形態では、負荷分散制御装置を備えたシステムにおける処理時間の短縮を図ることができ、負荷分散制御装置を備えたシステムの性能を向上させることができる。   As a result, in the embodiment for carrying out the present invention, it is possible to shorten the processing time in the system including the load distribution control device, and to improve the performance of the system including the load distribution control device.

なお、本実施形態においては、負荷分散制御装置に3つのプロセッサエレメント部を備えている構成について説明したが、負荷分散制御装置に備えるプロセッサエレメント部の数は、本発明を実施するための形態で示した構成のみに限定されるものではない。また、本実施形態においては、3つの演算処理の演算内容(処理1〜3)が含まれたパケットP2、および一連のフィードバック処理における3つの演算処理の演算内容(処理F1〜F3)が含まれたパケットP3の例を示したが、それぞれのパケットに含まれる演算処理の演算内容の数は、負荷分散制御装置に備えるプロセッサエレメント部に対応していることが望ましい。   In the present embodiment, the configuration in which the load distribution control device includes three processor element units has been described. However, the number of processor element units included in the load distribution control device is a form for carrying out the present invention. It is not limited to the configuration shown. Further, in the present embodiment, the packet P2 including the calculation contents of the three calculation processes (processes 1 to 3) and the calculation contents of the three calculation processes (processes F1 to F3) in the series of feedback processes are included. Although the example of the packet P3 is shown, it is desirable that the number of calculation contents of the calculation processing included in each packet corresponds to the processor element unit included in the load distribution control device.

なお、本実施形態においては、負荷分散制御装置に備えたホストプロセッサ11は、負荷分散制御装置の外部からの演算処理の要求を受け付け、演算処理の結果を負荷分散制御装置の外部に出力する処理を実行しており、外部から入力された演算要求に応じたパケット生成してパケットキューイング部13に書き込む処理を実行しない場合には、負荷分散の制御に直接関わっていない。従って、ホストプロセッサ11が外部から入力された演算要求に応じたパケット生成する処理を実行しない構成である場合には、例えば、負荷分散制御装置にホストプロセッサ11を設けず、外部からの演算処理の要求に応じたそれぞれのパケットを、直接パケットキューイング部13に格納する構成にすることもできる。また、例えば、ホストプロセッサ11も、プロセッサエレメント部と同様に、パケットに含まれる演算処理の演算内容に応じたタスクを実行する構成にすることもできる。   In the present embodiment, the host processor 11 provided in the load distribution control apparatus receives a calculation process request from outside the load distribution control apparatus and outputs the result of the calculation process to the outside of the load distribution control apparatus. Is not directly related to the control of load distribution when the packet generation according to the calculation request inputted from the outside and the process of writing to the packet queuing unit 13 are not executed. Therefore, when the host processor 11 is configured not to execute processing for generating a packet in response to a calculation request input from the outside, for example, the host processor 11 is not provided in the load distribution control device, and calculation processing from the outside is performed. Each packet according to the request can be directly stored in the packet queuing unit 13. Further, for example, the host processor 11 can also be configured to execute a task according to the calculation content of the calculation process included in the packet, similarly to the processor element unit.

また、本実施形態においては、それぞれのプロセッサエレメント部の処理機能に関して説明していないが、例えば、負荷分散制御装置を、撮像装置などの撮像システム内に備えている場合には、それぞれのプロセッサエレメント部は、撮像システムにおける画像処理の演算を実行するものと考えることができる。ここで、画像処理の演算は、例えば、画像のヒストグラムを生成する演算などが考えられる。   In this embodiment, the processing function of each processor element unit is not described. For example, when the load distribution control device is provided in an imaging system such as an imaging device, each processor element is provided. The unit can be considered to execute an image processing operation in the imaging system. Here, the calculation of the image processing may be, for example, a calculation for generating a histogram of the image.

以上、本発明の実施形態について、図面を参照して説明してきたが、具体的な構成はこの実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲においての種々の変更も含まれる。   The embodiment of the present invention has been described above with reference to the drawings. However, the specific configuration is not limited to this embodiment, and includes various modifications within the scope of the present invention. It is.

10,20,30・・・負荷分散制御装置
11・・・ホストプロセッサ
12a,12b,12c・・・プロセッサエレメント部(演算処理部)
121a,121b,121c・・・キュー読み出し部(演算処理部,キュー読み出し部)
122a,122b,122c・・・演算部(演算処理部,演算部)
13・・・パケットキューイング部
14・・・調停部(パケットキューイング部)
22a,22b,22c・・・プロセッサエレメント部(演算処理部)
222a・・・演算部(演算処理部,演算部)
2221a,2222a,2223a・・・演算ユニット(演算処理部,演算部,演算ユニット)
32a,32b,32c・・・プロセッサエレメント部(演算処理部)
321a・・・キュー読み出し部(演算処理部,キュー読み出し部)
322a・・・演算部(演算処理部,演算部)
3221a,3222a,3223a・・・演算ユニット(演算処理部,演算部,演算ユニット)
323a・・・セレクタ部(演算処理部,キュー読み出し部)
324a・・・カウンタ部(演算処理部,カウンタ部)
10, 20, 30 ... load distribution control device 11 ... host processors 12a, 12b, 12c ... processor element section (arithmetic processing section)
121a, 121b, 121c... Queue reading unit (arithmetic processing unit, queue reading unit)
122a, 122b, 122c ... arithmetic unit (arithmetic processing unit, arithmetic unit)
13: Packet queuing unit 14: Arbitration unit (packet queuing unit)
22a, 22b, 22c... Processor element section (arithmetic processing section)
222a... Arithmetic unit (arithmetic processing unit, arithmetic unit)
2221a, 2222a, 2223a ... arithmetic unit (arithmetic processing unit, arithmetic unit, arithmetic unit)
32a, 32b, 32c... Processor element section (arithmetic processing section)
321a: Queue reading unit (arithmetic processing unit, queue reading unit)
322a ... arithmetic unit (arithmetic processing unit, arithmetic unit)
3221a, 3222a, 3223a... Arithmetic unit (arithmetic processing unit, arithmetic unit, arithmetic unit)
323a... Selector unit (arithmetic processing unit, queue reading unit)
324a ... counter unit (arithmetic processing unit, counter unit)

Claims (2)

要求する演算処理の内容と、該演算処理を行う対象の入力データとを含むパケットを順次格納し、入力された前記パケットの出力要求に応じて、格納されている前記パケットを、前記パケットが格納された順番で出力するパケットキューイング部と、
入力された前記パケットに応じた演算処理が完了した後、次に演算処理を実行する前記パケットの前記出力要求を、前記パケットキューイング部に出力し、前記出力要求に応じて前記パケットキューイング部から入力された前記パケットに応じた演算処理を実行する複数の演算処理部と、
を備え、
前記演算処理部のそれぞれは、
入力された前記パケットに含まれる入力データに対して、該パケットに含まれる前記演算処理の内容に応じた演算を実行する演算部と、
前記演算部が演算を実行中であるか否かを判定し、該演算部が演算を実行中でない場合に前記出力要求を出力し、該出力要求に応じて入力された前記パケットを、前記演算部に出力するキュー読み出し部と、
前記キュー読み出し部によって加算され、前記演算部によって減算されるカウント値を出力するカウンタ部と、
を備え、
前記パケットは、
要求するフィードバック処理における一連の前記演算処理の内容が複数の処理内容に分割されて含まれており、
前記演算部は、
前記パケットに含まれる前記処理内容の数と同じ数の演算ユニットが直列に接続されたパイプラインが構成され、
前記パイプラインを構成する前記演算ユニットのそれぞれは、
前記パケットに含まれる異なる前記処理内容のそれぞれに対応し、対応する前記処理内容に応じた演算を順次実行し、
前記カウンタ部は、
初期値から前記パイプラインを構成する前記演算ユニットの数までの間でカウントした前記カウント値を出力し、
前記キュー読み出し部は、
前記パイプラインの先頭に配置された前記演算ユニットが演算を実行中であるか否かを判定し、該演算ユニットが演算を実行中でない場合に、前記出力要求を出力し、
前記パイプラインの先頭に配置された前記演算ユニットに、対応する前記処理内容を出力したときに前記カウント値を加算させ、
前記演算部は、
前記パイプラインの最終段に配置された前記演算ユニットが、対応する前記処理内容に応じた演算を完了し、該完了した演算の結果が、予め定めた前記フィードバック処理の打ち切り条件を満足する場合に前記カウント値を減算させ、該完了した演算の結果が前記打ち切り条件を満足さない場合に、該完了した演算の結果を前記入力データとして前記フィードバック処理を継続するための前記パケットを出力する、
ことを特徴とする負荷分散制御装置。
The contents of the arithmetic processing of requesting, sequentially stores the packet including the input data of the target of the calculation process, in response to the output request of the inputted packet, the packet that is stored, the packet is A packet queuing unit that outputs in the stored order;
After the arithmetic processing corresponding to the input packet is completed, the output request of the packet to be executed next is output to the packet queuing unit, and the packet queuing unit is output in response to the output request A plurality of arithmetic processing units for performing arithmetic processing according to the packet input from
With
Each of the arithmetic processing units
An arithmetic unit that performs an operation on input data included in the input packet according to the content of the arithmetic processing included in the packet;
It is determined whether or not the calculation unit is executing a calculation, and when the calculation unit is not executing a calculation, the output request is output, and the packet input in response to the output request is output as the calculation A queue reading unit to output to the unit,
A counter unit that outputs a count value that is added by the queue reading unit and subtracted by the arithmetic unit;
With
The packet is
The content of the series of the arithmetic processing in the requested feedback processing is divided and included in a plurality of processing contents,
The computing unit is
A pipeline in which the same number of arithmetic units as the number of processing contents included in the packet is connected in series is configured,
Each of the arithmetic units constituting the pipeline is
Corresponding to each of the different processing contents included in the packet, sequentially performing operations according to the corresponding processing contents,
The counter unit is
Output the count value counted from the initial value to the number of the arithmetic units constituting the pipeline,
The queue reading unit
It is determined whether or not the arithmetic unit arranged at the head of the pipeline is executing an operation, and when the arithmetic unit is not executing an operation, the output request is output,
When the corresponding processing content is output to the arithmetic unit arranged at the top of the pipeline, the count value is added,
The computing unit is
When the arithmetic unit arranged in the final stage of the pipeline completes the operation according to the corresponding processing content, and the result of the completed operation satisfies a predetermined condition for aborting the feedback processing When the count value is subtracted, and the result of the completed operation does not satisfy the abort condition, the packet for continuing the feedback process is output with the result of the completed operation as the input data,
A load balancing control device characterized by that.
前記キュー読み出し部は、
前記カウント値が、前記パイプラインを構成する前記演算ユニットの数未満である場合に前記出力要求を出力し、該出力要求に応じて入力された前記パケットに含まれる、前記パイプラインの先頭に配置された前記演算ユニットに対応する前記処理内容を、該パイプラインの先頭に配置された前記演算ユニットに出力し、
前記カウント値が、前記パイプラインを構成する前記演算ユニットの数と同じ値である場合に、前記フィードバック処理を継続するための前記パケットに含まれる、前記パイプラインの先頭に配置された前記演算ユニットに対応する前記処理内容を、該パイプラインの先頭に配置された前記演算ユニットに出力する、
ことを特徴とする請求項1に記載の負荷分散制御装置。
The queue reading unit
The output request is output when the count value is less than the number of the arithmetic units constituting the pipeline, and is arranged at the head of the pipeline included in the packet input in response to the output request Output the processing content corresponding to the arithmetic unit to the arithmetic unit arranged at the top of the pipeline;
When the count value is the same value as the number of the arithmetic units constituting the pipeline, the arithmetic unit arranged at the head of the pipeline included in the packet for continuing the feedback processing Output the processing content corresponding to the processing unit arranged at the top of the pipeline,
The load distribution control device according to claim 1.
JP2013209407A 2013-10-04 2013-10-04 Load balancing controller Expired - Fee Related JP6165016B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013209407A JP6165016B2 (en) 2013-10-04 2013-10-04 Load balancing controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013209407A JP6165016B2 (en) 2013-10-04 2013-10-04 Load balancing controller

Publications (2)

Publication Number Publication Date
JP2015075778A JP2015075778A (en) 2015-04-20
JP6165016B2 true JP6165016B2 (en) 2017-07-19

Family

ID=53000629

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013209407A Expired - Fee Related JP6165016B2 (en) 2013-10-04 2013-10-04 Load balancing controller

Country Status (1)

Country Link
JP (1) JP6165016B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6996099B2 (en) * 2017-03-24 2022-01-17 日本電気株式会社 Data processing system and data processing method
WO2019074185A1 (en) * 2017-10-12 2019-04-18 Samsung Electronics Co., Ltd. Electronic apparatus and control method thereof

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060044595A1 (en) * 2004-08-24 2006-03-02 Sharp Laboratories Of America Inc. Imaging job monitoring and pipelining
JP4566772B2 (en) * 2005-02-14 2010-10-20 キヤノン株式会社 Image processing apparatus, image processing method, and program
JP2013186745A (en) * 2012-03-08 2013-09-19 Fuji Xerox Co Ltd Processing system and program

Also Published As

Publication number Publication date
JP2015075778A (en) 2015-04-20

Similar Documents

Publication Publication Date Title
US20190114533A1 (en) Machine learning runtime library for neural network acceleration
JP2007034414A5 (en)
JP6169615B2 (en) Method, integrated circuit and system for dynamically managing FIFO command queue of system controller
US20160313947A1 (en) On-chip traffic prioritization in memory
KR20200011958A (en) Continuous Analysis Tasks for GPU Task Scheduling
JP6146128B2 (en) Data processing device
JP2019525324A (en) Memory request arbitration
JPWO2011135759A1 (en) Information processing apparatus and task switching method
WO2017033289A1 (en) Rendering control device
JP6165016B2 (en) Load balancing controller
US9172839B2 (en) Image forming apparatus, control method and storage medium
US11941528B2 (en) Neural network training in a distributed system
WO2017088456A1 (en) Pipeline data synchronization apparatus and method for multi-input multi-output processor
US9830195B2 (en) Apparatus and method for controlling execution of processes in a parallel computing system
JP5056668B2 (en) Data transfer apparatus and data transfer method
KR101421054B1 (en) Method and system for distributing operation by using buffer
US20050066093A1 (en) Real-time processor system and control method
JP2006215621A (en) Dma controller
KR20230059536A (en) Method and apparatus for process scheduling
US9632834B2 (en) Assigning priorities to computational work streams by mapping desired execution priorities to device priorities
JP2018005851A (en) Electronic equipment
JP6295700B2 (en) Arbitration circuit and processing method of the arbitration circuit
KR101414453B1 (en) Control apparatus of memory and control method thereof, and recording medium storing program for executing method of the same in computer
US20240069965A1 (en) Systems and methods for executing compute functions
WO2021056277A1 (en) Program execution method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160627

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170307

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170425

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20170426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170509

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170530

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20170531

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170613

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170620

R151 Written notification of patent or utility model registration

Ref document number: 6165016

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees