JPH11353291A - マルチプロセッサシステム及びタスク交換プログラムを記録した媒体 - Google Patents
マルチプロセッサシステム及びタスク交換プログラムを記録した媒体Info
- Publication number
- JPH11353291A JPH11353291A JP16321998A JP16321998A JPH11353291A JP H11353291 A JPH11353291 A JP H11353291A JP 16321998 A JP16321998 A JP 16321998A JP 16321998 A JP16321998 A JP 16321998A JP H11353291 A JPH11353291 A JP H11353291A
- Authority
- JP
- Japan
- Prior art keywords
- task
- memory
- processor
- tasks
- exchange
- 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.)
- Pending
Links
Landscapes
- Multi Processors (AREA)
Abstract
(57)【要約】
【課題】 プロセッサの遊びを少なくし、システム全体
の処理能力を向上させること。 【解決手段】 各プロセッサ1は、外部からタスク交換
要求を受けたとき、自己のタスクメモリ2に格納されて
いるタスクの数がm/nに近くなるように、自己のタス
クメモリ2に格納されているタスクをタスク交換メモリ
5に移動し、又は、タスク交換メモリ5に格納されてい
るタスクを自己のタスクメモリ2に移動するタスク交換
機能を備えている。
の処理能力を向上させること。 【解決手段】 各プロセッサ1は、外部からタスク交換
要求を受けたとき、自己のタスクメモリ2に格納されて
いるタスクの数がm/nに近くなるように、自己のタス
クメモリ2に格納されているタスクをタスク交換メモリ
5に移動し、又は、タスク交換メモリ5に格納されてい
るタスクを自己のタスクメモリ2に移動するタスク交換
機能を備えている。
Description
【0001】
【発明の属する技術分野】本発明は、マルチプロセッサ
システム及びタスク交換プログラムを記録したプロセッ
サ読み取り可能な媒体に係り、特に、一つの処理をタス
ク単位に分割し、このタスクを複数のプロセッサで並列
処理するマルチプロセッサシステム及びタスク交換プロ
グラムを記録したプロセッサ読み取り可能な媒体に関す
る。
システム及びタスク交換プログラムを記録したプロセッ
サ読み取り可能な媒体に係り、特に、一つの処理をタス
ク単位に分割し、このタスクを複数のプロセッサで並列
処理するマルチプロセッサシステム及びタスク交換プロ
グラムを記録したプロセッサ読み取り可能な媒体に関す
る。
【0002】
【従来の技術】上記のようなマルチプロセッサシステム
では、各プロセッサ毎にタスクメモリが与えられ、各プ
ロセッサは、自己のタスクメモリに分配されたタスクの
みを処理するようになっている。ここで、処理される複
数のタスクは、もともと一つの処理を完了するために必
要なものであって、例えば、あるタスクの処理結果が他
のタスクの処理に用いられる場合がある。
では、各プロセッサ毎にタスクメモリが与えられ、各プ
ロセッサは、自己のタスクメモリに分配されたタスクの
みを処理するようになっている。ここで、処理される複
数のタスクは、もともと一つの処理を完了するために必
要なものであって、例えば、あるタスクの処理結果が他
のタスクの処理に用いられる場合がある。
【0003】
【発明が解決しようとする課題】ここで、各プロセッサ
のタスクメモリに等しい数のタスクが均等に分配された
としても、各タスク処理の計算量(負荷)や、各プロセ
ッサの処理性能の差によって、各プロセッサ間のタスク
処理の進度に差を生じることがある。例えば、図6に示
すように、タスク処理の途中の段階で、プロセッサ
(1)のタスクメモリ51には、処理すべきタスクがま
だ4つ残っている(T1〜T4)。一方、プロセッサ
(2)のタスクメモリ52にはタスクT5だけが残って
いる。また、プロセッサ(3)のタスクメモリ53には
タスクT6とT7の2つが残っている。
のタスクメモリに等しい数のタスクが均等に分配された
としても、各タスク処理の計算量(負荷)や、各プロセ
ッサの処理性能の差によって、各プロセッサ間のタスク
処理の進度に差を生じることがある。例えば、図6に示
すように、タスク処理の途中の段階で、プロセッサ
(1)のタスクメモリ51には、処理すべきタスクがま
だ4つ残っている(T1〜T4)。一方、プロセッサ
(2)のタスクメモリ52にはタスクT5だけが残って
いる。また、プロセッサ(3)のタスクメモリ53には
タスクT6とT7の2つが残っている。
【0004】このような状態になったとき、例えば、タ
スクT6の処理にタスクT4の処理結果が必要である場
合、プロセッサ(3)は、プロセッサ(1)がタスクT
1〜T3までを処理し次にようやくタスクT4の処理を
終えるまで、タスクT6の処理を待たなければならな
い。
スクT6の処理にタスクT4の処理結果が必要である場
合、プロセッサ(3)は、プロセッサ(1)がタスクT
1〜T3までを処理し次にようやくタスクT4の処理を
終えるまで、タスクT6の処理を待たなければならな
い。
【0005】また、その間に、プロセッサ(2)はタス
クT5の処理を終了してしまい、以降遊んでしまう。
クT5の処理を終了してしまい、以降遊んでしまう。
【0006】このような状況が生じると、システム全体
の処理能力が低下するという不都合があった。
の処理能力が低下するという不都合があった。
【0007】
【発明の目的】本発明は、かかる従来例の有する不都合
を改善し、特に、プロセッサの遊びを少なくし、システ
ム全体の処理能力を向上させたマルチプロセッサシステ
ムを提供することを、その目的とする。
を改善し、特に、プロセッサの遊びを少なくし、システ
ム全体の処理能力を向上させたマルチプロセッサシステ
ムを提供することを、その目的とする。
【0008】
【課題を解決するための手段】上記目的を達成するた
め、請求項1記載の発明は、n個のプロセッサと、各プ
ロセッサに割り当てられたn個のタスクメモリとを備
え、各プロセッサがそれぞれ自己に割り当てられている
タスクメモリのタスクを処理するマルチプロセッサシス
テムである。これに、システムに含まれるプロセッサの
総数nを記憶するプロセッサ総数メモリと、各タスクメ
モリに格納されているタスクの総数mを記憶するタスク
総数メモリと、タスク交換メモリとを備えている。そし
て、各プロセッサは、外部からタスク交換要求を受けた
とき、自己のタスクメモリに格納されているタスクの数
がm/nに近くなるように、自己のタスクメモリに格納
されているタスクをタスク交換メモリに移動し、又は、
タスク交換メモリに格納されているタスクを自己のタス
クメモリに移動するタスク交換機能を備えた、という構
成を採っている。
め、請求項1記載の発明は、n個のプロセッサと、各プ
ロセッサに割り当てられたn個のタスクメモリとを備
え、各プロセッサがそれぞれ自己に割り当てられている
タスクメモリのタスクを処理するマルチプロセッサシス
テムである。これに、システムに含まれるプロセッサの
総数nを記憶するプロセッサ総数メモリと、各タスクメ
モリに格納されているタスクの総数mを記憶するタスク
総数メモリと、タスク交換メモリとを備えている。そし
て、各プロセッサは、外部からタスク交換要求を受けた
とき、自己のタスクメモリに格納されているタスクの数
がm/nに近くなるように、自己のタスクメモリに格納
されているタスクをタスク交換メモリに移動し、又は、
タスク交換メモリに格納されているタスクを自己のタス
クメモリに移動するタスク交換機能を備えた、という構
成を採っている。
【0009】請求項2記載の発明では、前記各プロセッ
サは、外部からタスク交換要求を受けたときプロセッサ
総数メモリのプロセッサ総数を1加算する初期設定機能
を備えた、という構成を採っている。
サは、外部からタスク交換要求を受けたときプロセッサ
総数メモリのプロセッサ総数を1加算する初期設定機能
を備えた、という構成を採っている。
【0010】請求項3記載の発明では、前記各プロセッ
サは、外部からタスク交換要求を受けたときタスク総数
メモリのタスク総数に自己のタスクメモリに格納されて
いるタスクの数を加算する初期設定機能を備えた、とい
う構成を採っている。
サは、外部からタスク交換要求を受けたときタスク総数
メモリのタスク総数に自己のタスクメモリに格納されて
いるタスクの数を加算する初期設定機能を備えた、とい
う構成を採っている。
【0011】請求項4記載の発明は、プロセッサ総数メ
モリからプロセッサ総数nを読み込む処理と、タスク総
数メモリからタスク総数mを読み込む処理と、1プロセ
ッサあたりの平均タスク数m/nを算出する処理と、自
己のタスクメモリに格納されているタスクの数が、m/
nに近くなるように、自己のタスクメモリに格納されて
いるタスクを前記タスク交換メモリに移動し、又は、タ
スク交換メモリに格納されているタスクを自己のタスク
メモリに移動するタスク交換処理とをプロセッサに実行
させるためのタスク交換プログラムを記録したプロセッ
サ読み取り可能な媒体である。
モリからプロセッサ総数nを読み込む処理と、タスク総
数メモリからタスク総数mを読み込む処理と、1プロセ
ッサあたりの平均タスク数m/nを算出する処理と、自
己のタスクメモリに格納されているタスクの数が、m/
nに近くなるように、自己のタスクメモリに格納されて
いるタスクを前記タスク交換メモリに移動し、又は、タ
スク交換メモリに格納されているタスクを自己のタスク
メモリに移動するタスク交換処理とをプロセッサに実行
させるためのタスク交換プログラムを記録したプロセッ
サ読み取り可能な媒体である。
【0012】請求項5記載の発明は、外部からタスク交
換要求を受けたとき前記プロセッサ総数メモリのプロセ
ッサ総数を1加算する初期設定処理をプロセッサに実行
させるためのタスク交換プログラムを記録した請求項4
記載のプロセッサ読み取り可能な媒体である。
換要求を受けたとき前記プロセッサ総数メモリのプロセ
ッサ総数を1加算する初期設定処理をプロセッサに実行
させるためのタスク交換プログラムを記録した請求項4
記載のプロセッサ読み取り可能な媒体である。
【0013】請求項6記載の発明は、外部からタスク交
換要求を受けたとき前記タスク総数メモリのタスク総数
に自己のタスクメモリに格納されているタスクの数を加
算する初期設定処理をプロセッサに実行させるためのタ
スク交換プログラムを記録した請求項4記載のプロセッ
サ読み取り可能な媒体である。これらにより、前述した
目的を達成しようとするものである。
換要求を受けたとき前記タスク総数メモリのタスク総数
に自己のタスクメモリに格納されているタスクの数を加
算する初期設定処理をプロセッサに実行させるためのタ
スク交換プログラムを記録した請求項4記載のプロセッ
サ読み取り可能な媒体である。これらにより、前述した
目的を達成しようとするものである。
【0014】
【発明の実施の形態】以下、本発明の一実施形態を図1
乃至図5に基づいて説明する。
乃至図5に基づいて説明する。
【0015】図1に示すマルチプロセッサシステムは、
n個のプロセッサ1と、各プロセッサ1に割り当てられ
たn個のタスクメモリ2とを備えている。そして、各プ
ロセッサ1は、それぞれ自己に割り当てられているタス
クメモリ2のタスクを処理するようになっている。ま
た、図1のマルチプロセッサシステムは、システムに含
まれるプロセッサ1の総数nを記憶するプロセッサ総数
メモリ3と、各タスクメモリ2に格納されているタスク
の総数mを記憶するタスク総数メモリ4と、タスク交換
メモリ5とを備えている。
n個のプロセッサ1と、各プロセッサ1に割り当てられ
たn個のタスクメモリ2とを備えている。そして、各プ
ロセッサ1は、それぞれ自己に割り当てられているタス
クメモリ2のタスクを処理するようになっている。ま
た、図1のマルチプロセッサシステムは、システムに含
まれるプロセッサ1の総数nを記憶するプロセッサ総数
メモリ3と、各タスクメモリ2に格納されているタスク
の総数mを記憶するタスク総数メモリ4と、タスク交換
メモリ5とを備えている。
【0016】各プロセッサ1は、外部からタスク交換要
求を受けたとき、自己のタスクメモリ2に格納されてい
るタスクの数がm/nに近くなるように、自己のタスク
メモリ2に格納されているタスクをタスク交換メモリ5
に移動し、又は、タスク交換メモリ5に格納されている
タスクを自己のタスクメモリ2に移動するタスク交換機
能を備えている。
求を受けたとき、自己のタスクメモリ2に格納されてい
るタスクの数がm/nに近くなるように、自己のタスク
メモリ2に格納されているタスクをタスク交換メモリ5
に移動し、又は、タスク交換メモリ5に格納されている
タスクを自己のタスクメモリ2に移動するタスク交換機
能を備えている。
【0017】また、本実施形態において、各プロセッサ
1は、外部からタスク交換要求を受けたときプロセッサ
総数メモリ3のプロセッサ総数を1加算する第1の初期
設定機能を備えている。更に、各プロセッサ1は、外部
からタスク交換要求を受けたときタスク総数メモリ4の
タスク総数に自己のタスクメモリ2に格納されているタ
スクの数を加算する第2の初期設定機能を備えている。
1は、外部からタスク交換要求を受けたときプロセッサ
総数メモリ3のプロセッサ総数を1加算する第1の初期
設定機能を備えている。更に、各プロセッサ1は、外部
からタスク交換要求を受けたときタスク総数メモリ4の
タスク総数に自己のタスクメモリ2に格納されているタ
スクの数を加算する第2の初期設定機能を備えている。
【0018】また、符号6は、各プロセッサ1の処理状
態等を監視する状態監視装置であって、所定のタイミン
グで各プロセッサ1にタスク交換要求を出力する機能
と、各プロセッサの処理状態(処理中、停止中等)を取
得する機能とを備えている。
態等を監視する状態監視装置であって、所定のタイミン
グで各プロセッサ1にタスク交換要求を出力する機能
と、各プロセッサの処理状態(処理中、停止中等)を取
得する機能とを備えている。
【0019】これを更に詳述すると、本実施形態におい
て、各プロセッサ1は、タスク交換要求を受けたときタ
スク交換プログラムを実行する。このタスク交換プログ
ラムは、プロセッサ(コンピュータ)読み取り可能な媒
体から読み出されたものであってもよい。この場合、当
該媒体は、プロセッサ総数メモリ3からプロセッサ総数
nを読み込む処理と、タスク総数メモリ4からタスク総
数mを読み込む処理と、1プロセッサあたりの平均タス
ク数m/nを算出する処理と、自己のタスクメモリ2に
格納されているタスクの数が、m/nに近くなるよう
に、自己のタスクメモリ2に格納されているタスクをタ
スク交換メモリ4に移動し、又は、タスク交換メモリ4
に格納されているタスクを自己のタスクメモリ2に移動
するタスク交換処理とをプロセッサ1に実行させるため
のタスク交換プログラムを記録したプロセッサ読み取り
可能な媒体である。
て、各プロセッサ1は、タスク交換要求を受けたときタ
スク交換プログラムを実行する。このタスク交換プログ
ラムは、プロセッサ(コンピュータ)読み取り可能な媒
体から読み出されたものであってもよい。この場合、当
該媒体は、プロセッサ総数メモリ3からプロセッサ総数
nを読み込む処理と、タスク総数メモリ4からタスク総
数mを読み込む処理と、1プロセッサあたりの平均タス
ク数m/nを算出する処理と、自己のタスクメモリ2に
格納されているタスクの数が、m/nに近くなるよう
に、自己のタスクメモリ2に格納されているタスクをタ
スク交換メモリ4に移動し、又は、タスク交換メモリ4
に格納されているタスクを自己のタスクメモリ2に移動
するタスク交換処理とをプロセッサ1に実行させるため
のタスク交換プログラムを記録したプロセッサ読み取り
可能な媒体である。
【0020】この媒体には、外部からタスク交換要求を
受けたときプロセッサ総数メモリ3のプロセッサ総数を
1加算する第1の初期設定処理をプロセッサ1に実行さ
せるためのタスク交換プログラムを記録してもよい。ま
た、外部からタスク交換要求を受けたときタスク総数メ
モリ4のタスク総数に自己のタスクメモリ2に格納され
ているタスクの数を加算する第2の初期設定処理をプロ
セッサ1に実行させるためのタスク交換プログラムを記
録してもよい。
受けたときプロセッサ総数メモリ3のプロセッサ総数を
1加算する第1の初期設定処理をプロセッサ1に実行さ
せるためのタスク交換プログラムを記録してもよい。ま
た、外部からタスク交換要求を受けたときタスク総数メ
モリ4のタスク総数に自己のタスクメモリ2に格納され
ているタスクの数を加算する第2の初期設定処理をプロ
セッサ1に実行させるためのタスク交換プログラムを記
録してもよい。
【0021】プロセッサ総数メモリ3,タスク総数メモ
リ4,タスク交換メモリは、物理的に複数のメモリであ
る必要はなく、対応する記憶領域が確保されていればよ
い。各タスクメモリ2には、予め幾つかのタスクが格納
されているものとする。また、プロセッサ総数メモリ3
に記憶されたプロセッサ総数の初期値は0になってい
る。また、タスク総数メモリ4に記憶されたタスク総数
の初期値も0になっている。
リ4,タスク交換メモリは、物理的に複数のメモリであ
る必要はなく、対応する記憶領域が確保されていればよ
い。各タスクメモリ2には、予め幾つかのタスクが格納
されているものとする。また、プロセッサ総数メモリ3
に記憶されたプロセッサ総数の初期値は0になってい
る。また、タスク総数メモリ4に記憶されたタスク総数
の初期値も0になっている。
【0022】次に、本実施形態の動作を説明する。
【0023】プロセッサ1が稼動状態に設定されると、
各プロセッサ1は、自己のタスクメモリ2に格納された
タスクを一つずつ取り出して処理する。また、各プロセ
ッサは並列に処理を行う。この結果、図6の従来例で説
明したように、各プロセッサ1が処理すべきの残りタス
クの数に差を生じることがある。
各プロセッサ1は、自己のタスクメモリ2に格納された
タスクを一つずつ取り出して処理する。また、各プロセ
ッサは並列に処理を行う。この結果、図6の従来例で説
明したように、各プロセッサ1が処理すべきの残りタス
クの数に差を生じることがある。
【0024】状態監視装置6は、各プロセッサ1による
タスク処理が開始された後、所定のタイミングでタスク
交換要求を出力する。このタスク交換要求を受けた各プ
ロセッサ1は、図2のフローチャートに示すタスク交換
処理を実行する。
タスク処理が開始された後、所定のタイミングでタスク
交換要求を出力する。このタスク交換要求を受けた各プ
ロセッサ1は、図2のフローチャートに示すタスク交換
処理を実行する。
【0025】まず、各プロセッサ1は、プロセッサ総数
メモリ3に対し、システムに含まれるプロセッサ総数n
を設定する(S1)。即ち、各プロセッサ1は、タスク
交換要求を受けたとき、交互にプロセッサ総数メモリ3
を専有し、プロセッサ総数を1ずつ加算してゆく。この
動作を総てのプロセッサ1が完了したとき、プロセッサ
総数nがプロセッサ総数メモリ3に設定される。ここ
で、各プロセッサ1がプロセッサ総数メモリ3を専有す
るタイミングをずらす必要がある。この方法として、状
態監視装置6が各プロセッサ1毎にタスク交換要求の出
力タイミングをずらすようにしてもよいし、各プロセッ
サ1が予め設定されたずらし時間の経過を待ってプロセ
ッサ総数メモリ3を専有するなど、種々の方法が考えら
れる。
メモリ3に対し、システムに含まれるプロセッサ総数n
を設定する(S1)。即ち、各プロセッサ1は、タスク
交換要求を受けたとき、交互にプロセッサ総数メモリ3
を専有し、プロセッサ総数を1ずつ加算してゆく。この
動作を総てのプロセッサ1が完了したとき、プロセッサ
総数nがプロセッサ総数メモリ3に設定される。ここ
で、各プロセッサ1がプロセッサ総数メモリ3を専有す
るタイミングをずらす必要がある。この方法として、状
態監視装置6が各プロセッサ1毎にタスク交換要求の出
力タイミングをずらすようにしてもよいし、各プロセッ
サ1が予め設定されたずらし時間の経過を待ってプロセ
ッサ総数メモリ3を専有するなど、種々の方法が考えら
れる。
【0026】続いて、各プロセッサ1は、タスク総数メ
モリ4に対し総タスク数mの設定を行う(S2)。この
ため、各プロセッサ1は、自己のタスクメモリ2に格納
されているタスクの数を検査し、その数をタスク総数メ
モリ4に交互に加算してゆく。総てのプロセッサ1が加
算を終えたとき、タスク総数メモリ4にタスク総数mが
設定される。ここでも、各プロセッサ1がタスク総数メ
モリ4を交互に専有する必要があるが、衝突を避ける方
法としてプロセッサ総数メモリ3の場合と同じ方法を採
用することができる。
モリ4に対し総タスク数mの設定を行う(S2)。この
ため、各プロセッサ1は、自己のタスクメモリ2に格納
されているタスクの数を検査し、その数をタスク総数メ
モリ4に交互に加算してゆく。総てのプロセッサ1が加
算を終えたとき、タスク総数メモリ4にタスク総数mが
設定される。ここでも、各プロセッサ1がタスク総数メ
モリ4を交互に専有する必要があるが、衝突を避ける方
法としてプロセッサ総数メモリ3の場合と同じ方法を採
用することができる。
【0027】ここまでの初期設定処理が終了した後、各
プロセッサ1は、S3以降のタスク交換処理に移る。S
3〜S8までの処理は、各プロセッサ毎に繰り返し実行
される。ここからの説明は、図3乃至図5も加え具体的
な例をもって説明する。
プロセッサ1は、S3以降のタスク交換処理に移る。S
3〜S8までの処理は、各プロセッサ毎に繰り返し実行
される。ここからの説明は、図3乃至図5も加え具体的
な例をもって説明する。
【0028】いま、図3に示すように、システムに3つ
のプロセッサ(1)〜(3)があって、プロセッサ
(1)のタスクメモリには、4つのタスクT1,T2,
T3,T4が格納されているものとする。また、プロセ
ッサ(2)のタスクメモリには、1つのタスクT5が、
プロセッサ(3)のタスクメモリには2つのタスクT
6,T7がそれぞれ格納されているものとする。このた
め、ここまでの処理により、プロセッサ総数メモリ3に
はプロセッサ総数n=3が設定され、タスク総数メモリ
4にはタスク総数m=7が設定されている。
のプロセッサ(1)〜(3)があって、プロセッサ
(1)のタスクメモリには、4つのタスクT1,T2,
T3,T4が格納されているものとする。また、プロセ
ッサ(2)のタスクメモリには、1つのタスクT5が、
プロセッサ(3)のタスクメモリには2つのタスクT
6,T7がそれぞれ格納されているものとする。このた
め、ここまでの処理により、プロセッサ総数メモリ3に
はプロセッサ総数n=3が設定され、タスク総数メモリ
4にはタスク総数m=7が設定されている。
【0029】まず、プロセッサ(1)は、プロセッサ総
数メモリ3からプロセッサ総数n=3を読み出し、ま
た、タスク総数メモリ4からタスク総数m=7を読み出
す。そして、1プロセッサあたりの平均タスク数m/n
を算出する(S3)。図3の例では、約2.3タスクが
算出される。次に、プロセッサ(1)は、自己のタスク
メモリにあるタスク数が平均タスク数より多いか判断す
る(S4)。図3の例では、プロセッサ(1)のタスク
はT1〜T4の4つであり、平均タスク数の2.3より
も多い。このため、プロセッサ(1)は、S5に進み、
余分なタスクをタスク交換メモリ5に移動する(S
5)。
数メモリ3からプロセッサ総数n=3を読み出し、ま
た、タスク総数メモリ4からタスク総数m=7を読み出
す。そして、1プロセッサあたりの平均タスク数m/n
を算出する(S3)。図3の例では、約2.3タスクが
算出される。次に、プロセッサ(1)は、自己のタスク
メモリにあるタスク数が平均タスク数より多いか判断す
る(S4)。図3の例では、プロセッサ(1)のタスク
はT1〜T4の4つであり、平均タスク数の2.3より
も多い。このため、プロセッサ(1)は、S5に進み、
余分なタスクをタスク交換メモリ5に移動する(S
5)。
【0030】ここで、「余分なタスク」の数は、先の平
均タスク数aの計算で端数を生じなかった場合は現在自
己のタスクメモリにあるタスク数tから平均タスク数a
を引いた数t−aであり、先の平均タスク数の計算で端
数を生じた場合は現在自己のタスクメモリにあるタスク
数tから平均タスク数の整数部分aより1多い数を引い
た値t−(a+1)である。図3の例では、平均タスク
数は約2.3で端数が出るため、プロセッサ(1)の余
計なタスクの数は、4−(2+1)=1タスクとなる。
均タスク数aの計算で端数を生じなかった場合は現在自
己のタスクメモリにあるタスク数tから平均タスク数a
を引いた数t−aであり、先の平均タスク数の計算で端
数を生じた場合は現在自己のタスクメモリにあるタスク
数tから平均タスク数の整数部分aより1多い数を引い
た値t−(a+1)である。図3の例では、平均タスク
数は約2.3で端数が出るため、プロセッサ(1)の余
計なタスクの数は、4−(2+1)=1タスクとなる。
【0031】そこで、プロセッサ(1)は、最終に処理
する予定であったタスクT4をタスク交換メモリ5に移
動する。この様子を図4に示す。これにより、プロセッ
サ(1)のタスクメモリに格納されたタスクは3つに減
少する。
する予定であったタスクT4をタスク交換メモリ5に移
動する。この様子を図4に示す。これにより、プロセッ
サ(1)のタスクメモリに格納されたタスクは3つに減
少する。
【0032】これで、プロセッサ(1)についてのタス
ク交換処理は終了する。続いて、プロセッサ(2)によ
ってS3からの処理が実行される(S6)。ここで、各
プロセッサがS3からの処理を開始するタイミングは、
状態監視装置6によって制御されてもよい。また、S3
からの処理を開始するプロセッサの順序も、状態監視装
置6から制御することが可能である。この場合、状態監
視装置6が、各プロセッサのタスクメモリに格納されて
いるタスク数の情報を取得し、残りタスク数の多いプロ
セッサから順番に選択してS3からの処理を実行させる
ようにしてもよい。このようにすると、各プロセッサ1
がS3からの処理を1回実行するだけで、各プロセッサ
間の残りタスク数を確実に均すことができる。
ク交換処理は終了する。続いて、プロセッサ(2)によ
ってS3からの処理が実行される(S6)。ここで、各
プロセッサがS3からの処理を開始するタイミングは、
状態監視装置6によって制御されてもよい。また、S3
からの処理を開始するプロセッサの順序も、状態監視装
置6から制御することが可能である。この場合、状態監
視装置6が、各プロセッサのタスクメモリに格納されて
いるタスク数の情報を取得し、残りタスク数の多いプロ
セッサから順番に選択してS3からの処理を実行させる
ようにしてもよい。このようにすると、各プロセッサ1
がS3からの処理を1回実行するだけで、各プロセッサ
間の残りタスク数を確実に均すことができる。
【0033】プロセッサ(2)は、プロセッサ(1)と
同様に平均タスク数m/nを算出し(S3)、自己のタ
スクメモリに格納されているタスクの数が平均タスク数
より多いか判断する(S4)。図4に示すように、プロ
セッサ(2)のタスクメモリに格納されているタスクは
T5だけなので、平均タスク数2.3よりも少ない。よ
って、プロセッサ(2)はS7に進み、自己のタスクメ
モリに格納されているタスクの数が平均タスク数よりも
少ないか判断する。すると、この条件を満たすので、タ
スク交換メモリ5から不足タスクを補充する(S8)。
同様に平均タスク数m/nを算出し(S3)、自己のタ
スクメモリに格納されているタスクの数が平均タスク数
より多いか判断する(S4)。図4に示すように、プロ
セッサ(2)のタスクメモリに格納されているタスクは
T5だけなので、平均タスク数2.3よりも少ない。よ
って、プロセッサ(2)はS7に進み、自己のタスクメ
モリに格納されているタスクの数が平均タスク数よりも
少ないか判断する。すると、この条件を満たすので、タ
スク交換メモリ5から不足タスクを補充する(S8)。
【0034】ここで、「不足タスク」の数は、平均タス
ク数の整数部分aから自己のタスクメモリに格納されて
いるタスクの数tを引いた値a−tである。図4の例で
は、2−1=1タスクとなる。そこで、プロセッサ
(2)は、タスク交換メモリ5に格納されていたタスク
T4を自己のタスクメモリに移動する。この様子を図5
に示す。これにより、プロセッサ(2)のタスク数は2
タスクとなる。
ク数の整数部分aから自己のタスクメモリに格納されて
いるタスクの数tを引いた値a−tである。図4の例で
は、2−1=1タスクとなる。そこで、プロセッサ
(2)は、タスク交換メモリ5に格納されていたタスク
T4を自己のタスクメモリに移動する。この様子を図5
に示す。これにより、プロセッサ(2)のタスク数は2
タスクとなる。
【0035】次に、プロセッサ(3)がS3からの処理
を実行する。この結果、プロセッサ(3)のタスク数
は、もともと2つ(T6,T7)であるため、S7の判
断がノーとなり、タスクの交換なしに処理を完了する。
これによって、すべてのプロセッサがS3からの処理を
完了したため、タスク交換プログラムの実行が終了す
る。ここで、S4,S7の判断は、平均タスク数の整数
部分のみを用いて行う。
を実行する。この結果、プロセッサ(3)のタスク数
は、もともと2つ(T6,T7)であるため、S7の判
断がノーとなり、タスクの交換なしに処理を完了する。
これによって、すべてのプロセッサがS3からの処理を
完了したため、タスク交換プログラムの実行が終了す
る。ここで、S4,S7の判断は、平均タスク数の整数
部分のみを用いて行う。
【0036】この結果、プロセッサ(1)のタスク数は
3、プロセッサ(2)のタスク数は2、プロセッサ
(3)のタスク数は2となり、各プロセッサ間でタスク
数(負荷)が平均的になる。また例えば、タスクT6が
タスクT4の処理結果を利用する処理である場合、図3
の状態においてタスクT4がプロセッサ(1)に処理さ
れるまでの待ち時間よりも、図5の状態のようにタスク
T4がプロセッサ(2)に処理されるまでの時間のほう
が短くなるので、タスクT6を処理するプロセッサ
(3)の待ち時間も減少し、システム全体の処理能力を
向上することができる。また、プロセッサ(2)は、タ
スクT5の後にタスクT4を与えられたので、タスクT
5を完了した後に遊んでしまう時間がなくなり、この点
からもシステム全体の処理能力を向上することができ
る。
3、プロセッサ(2)のタスク数は2、プロセッサ
(3)のタスク数は2となり、各プロセッサ間でタスク
数(負荷)が平均的になる。また例えば、タスクT6が
タスクT4の処理結果を利用する処理である場合、図3
の状態においてタスクT4がプロセッサ(1)に処理さ
れるまでの待ち時間よりも、図5の状態のようにタスク
T4がプロセッサ(2)に処理されるまでの時間のほう
が短くなるので、タスクT6を処理するプロセッサ
(3)の待ち時間も減少し、システム全体の処理能力を
向上することができる。また、プロセッサ(2)は、タ
スクT5の後にタスクT4を与えられたので、タスクT
5を完了した後に遊んでしまう時間がなくなり、この点
からもシステム全体の処理能力を向上することができ
る。
【0037】ここで、各プロセッサが図2のS3からの
処理を実行するタイミングは、次のように制御されても
よい。各プロセッサは、タスクを処理する毎に自己のタ
スクメモリに残っているタスクの数を状態監視装置6に
通知する。状態監視装置6は、この通知に示された各プ
ロセッサの残りタスクの数を管理する。そして、状態監
視装置6は、残りタスクがプロセッサあたりの平均タス
ク数を越えたプロセッサを発見すると、そのプロセッサ
に対し図2のS3からの処理の実行を命令する(タスク
交換要求)。この命令を受けたプロセッサは、上述した
動作により余分なタスクをタスク交換メモリに移動す
る。そして、移動が終了すると、状態監視装置6に対
し、タスクの移動が完了した旨又は移動したタスクの数
を通知する。この通知を受けた状態監視装置6は、タス
クメモリのタスク数が平均タスク数より少ないプロセッ
サを抽出し、そのプロセッサに図2のS3からの処理を
実行するよう命令する(タスク交換要求)。この命令を
受けたプロセッサは、上述した動作により、不足タスク
をタスク交換メモリから移動する。このようにすると、
各プロセッサが、タスク交換処理を無駄なく実行するこ
とができ、システム全体の処理能力を更に高めることが
できる。
処理を実行するタイミングは、次のように制御されても
よい。各プロセッサは、タスクを処理する毎に自己のタ
スクメモリに残っているタスクの数を状態監視装置6に
通知する。状態監視装置6は、この通知に示された各プ
ロセッサの残りタスクの数を管理する。そして、状態監
視装置6は、残りタスクがプロセッサあたりの平均タス
ク数を越えたプロセッサを発見すると、そのプロセッサ
に対し図2のS3からの処理の実行を命令する(タスク
交換要求)。この命令を受けたプロセッサは、上述した
動作により余分なタスクをタスク交換メモリに移動す
る。そして、移動が終了すると、状態監視装置6に対
し、タスクの移動が完了した旨又は移動したタスクの数
を通知する。この通知を受けた状態監視装置6は、タス
クメモリのタスク数が平均タスク数より少ないプロセッ
サを抽出し、そのプロセッサに図2のS3からの処理を
実行するよう命令する(タスク交換要求)。この命令を
受けたプロセッサは、上述した動作により、不足タスク
をタスク交換メモリから移動する。このようにすると、
各プロセッサが、タスク交換処理を無駄なく実行するこ
とができ、システム全体の処理能力を更に高めることが
できる。
【0038】ここで、本発明において、初期設定機能又
は初期設定処理の起動は、タスク交換要求が発生する度
に常に行わなければならないものではない。
は初期設定処理の起動は、タスク交換要求が発生する度
に常に行わなければならないものではない。
【0039】
【発明の効果】本発明は、以上のように構成され機能す
るので、これによると、タスク負荷の高いプロセッサの
タスクをタスク交換メモリに移動させ、タスク負荷の低
いプロセッサがタスク交換メモリから自己のタスクメモ
リに不足タスクを補充するようにしたので、各プロセッ
サ間の負荷を均一化することができ、各プロセッサの遊
び時間を抑制することで、システム全体の処理能力の向
上を図ることができる。
るので、これによると、タスク負荷の高いプロセッサの
タスクをタスク交換メモリに移動させ、タスク負荷の低
いプロセッサがタスク交換メモリから自己のタスクメモ
リに不足タスクを補充するようにしたので、各プロセッ
サ間の負荷を均一化することができ、各プロセッサの遊
び時間を抑制することで、システム全体の処理能力の向
上を図ることができる。
【0040】特に、請求項2又は5記載の発明では、各
プロセッサが、タスク交換要求を受けたときにプロセッ
サ総数メモリの値を1ずつ加算するので、システムに含
まれるプロセッサ総数を自動的に設定することができ
る。
プロセッサが、タスク交換要求を受けたときにプロセッ
サ総数メモリの値を1ずつ加算するので、システムに含
まれるプロセッサ総数を自動的に設定することができ
る。
【0041】また、請求項3又は6記載の発明では、各
プロセッサが、タスク交換要求を受けたときに自己のタ
スクメモリに格納されているタスクの数をタスク総数メ
モリに加算してゆくので、タスク総数を自動的に設定す
ることができる、という従来にない優れたマルチプロセ
ッサシステム及びタスク交換プログラムを記録したプロ
セッサ読み取り可能な媒体を提供することができる。
プロセッサが、タスク交換要求を受けたときに自己のタ
スクメモリに格納されているタスクの数をタスク総数メ
モリに加算してゆくので、タスク総数を自動的に設定す
ることができる、という従来にない優れたマルチプロセ
ッサシステム及びタスク交換プログラムを記録したプロ
セッサ読み取り可能な媒体を提供することができる。
【図1】本発明の一実施形態の構成を示すブロック図で
ある。
ある。
【図2】図1の各プロセッサが実行するタスク交換プロ
グラムのフローチャートである。
グラムのフローチャートである。
【図3】図2のフローチャートの処理を説明するための
説明図である。
説明図である。
【図4】図2のフローチャートの処理を説明するための
説明図である。
説明図である。
【図5】図2のフローチャートの処理を説明するための
説明図である。
説明図である。
【図6】従来例を説明するための説明図である。
1 プロセッサ 2 タスクメモリ 3 プロセッサ総数メモリ 4 タスク総数メモリ 5 タスク交換メモリ 6 状態監視装置 S1,S2 初期設定処理 S3〜S8 タスク交換処理
Claims (6)
- 【請求項1】 n個のプロセッサと、各プロセッサに割
り当てられたn個のタスクメモリとを備え、各プロセッ
サがそれぞれ自己に割り当てられているタスクメモリの
タスクを処理するマルチプロセッサシステムにおいて、 システムに含まれるプロセッサの総数nを記憶するプロ
セッサ総数メモリと、各タスクメモリに格納されている
タスクの総数mを記憶するタスク総数メモリと、タスク
交換メモリとを備え、 前記各プロセッサは、外部からタスク交換要求を受けた
とき、自己のタスクメモリに格納されているタスクの数
がm/nに近くなるように、自己のタスクメモリに格納
されているタスクを前記タスク交換メモリに移動し、又
は、タスク交換メモリに格納されているタスクを自己の
タスクメモリに移動するタスク交換機能を備えているこ
とを特徴としたマルチプロセッサシステム。 - 【請求項2】 前記各プロセッサは、外部からタスク交
換要求を受けたとき前記プロセッサ総数メモリのプロセ
ッサ総数を1加算する初期設定機能を備えていることを
特徴とした請求項1記載のマルチプロセッサシステム。 - 【請求項3】 前記各プロセッサは、外部からタスク交
換要求を受けたとき前記タスク総数メモリのタスク総数
に自己のタスクメモリに格納されているタスクの数を加
算する初期設定機能を備えていることを特徴とした請求
項1記載のマルチプロセッサシステム。 - 【請求項4】 プロセッサ総数メモリからプロセッサ総
数nを読み込む処理と、タスク総数メモリからタスク総
数mを読み込む処理と、1プロセッサあたりの平均タス
ク数m/nを算出する処理と、自己のタスクメモリに格
納されているタスクの数が、m/nに近くなるように、
自己のタスクメモリに格納されているタスクを前記タス
ク交換メモリに移動し、又は、タスク交換メモリに格納
されているタスクを自己のタスクメモリに移動するタス
ク交換処理とをプロセッサに実行させるためのタスク交
換プログラムを記録したプロセッサ読み取り可能な媒
体。 - 【請求項5】 外部からタスク交換要求を受けたとき前
記プロセッサ総数メモリのプロセッサ総数を1加算する
初期設定処理をプロセッサに実行させるためのタスク交
換プログラムを記録した請求項4記載のプロセッサ読み
取り可能な媒体。 - 【請求項6】 外部からタスク交換要求を受けたとき前
記タスク総数メモリのタスク総数に自己のタスクメモリ
に格納されているタスクの数を加算する初期設定処理を
プロセッサに実行させるためのタスク交換プログラムを
記録した請求項4記載のプロセッサ読み取り可能な媒
体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP16321998A JPH11353291A (ja) | 1998-06-11 | 1998-06-11 | マルチプロセッサシステム及びタスク交換プログラムを記録した媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP16321998A JPH11353291A (ja) | 1998-06-11 | 1998-06-11 | マルチプロセッサシステム及びタスク交換プログラムを記録した媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH11353291A true JPH11353291A (ja) | 1999-12-24 |
Family
ID=15769582
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP16321998A Pending JPH11353291A (ja) | 1998-06-11 | 1998-06-11 | マルチプロセッサシステム及びタスク交換プログラムを記録した媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH11353291A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2007132746A1 (ja) * | 2006-05-11 | 2009-09-24 | パナソニック株式会社 | 処理装置 |
GB2490766A (en) * | 2011-04-16 | 2012-11-14 | Mark Henrik Sandstrom | Switching processing tasks between cores by moving memory segments between core memory and task memory using a multiplexer based fabric |
US8561078B2 (en) | 2011-09-27 | 2013-10-15 | Throughputer, Inc. | Task switching and inter-task communications for multi-core processors |
US10061615B2 (en) | 2012-06-08 | 2018-08-28 | Throughputer, Inc. | Application load adaptive multi-stage parallel data processing architecture |
US10133599B1 (en) | 2011-11-04 | 2018-11-20 | Throughputer, Inc. | Application load adaptive multi-stage parallel data processing architecture |
US10318353B2 (en) | 2011-07-15 | 2019-06-11 | Mark Henrik Sandstrom | Concurrent program execution optimization |
-
1998
- 1998-06-11 JP JP16321998A patent/JPH11353291A/ja active Pending
Cited By (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4759614B2 (ja) * | 2006-05-11 | 2011-08-31 | パナソニック株式会社 | 処理装置 |
JP2011175656A (ja) * | 2006-05-11 | 2011-09-08 | Panasonic Corp | 処理装置 |
US8180182B2 (en) | 2006-05-11 | 2012-05-15 | Panasonic Corporation | Processing device for processing plurality of polygon meshes, the device including plurality of processors for performing coordinate transformation and gradient calculations and an allocation unit to allocate each polygon to a respective processor |
US8331734B2 (en) | 2006-05-11 | 2012-12-11 | Panasonic Corporation | Processing method and device for processing a polygon mesh that approximates a three-dimensional object with use of a polygonal shape |
JPWO2007132746A1 (ja) * | 2006-05-11 | 2009-09-24 | パナソニック株式会社 | 処理装置 |
GB2490766A (en) * | 2011-04-16 | 2012-11-14 | Mark Henrik Sandstrom | Switching processing tasks between cores by moving memory segments between core memory and task memory using a multiplexer based fabric |
GB2490766B (en) * | 2011-04-16 | 2013-04-24 | Mark Henrik Sandstrom | Task switching and inter-task communications for multi-core processors |
US10318353B2 (en) | 2011-07-15 | 2019-06-11 | Mark Henrik Sandstrom | Concurrent program execution optimization |
US10514953B2 (en) | 2011-07-15 | 2019-12-24 | Throughputer, Inc. | Systems and methods for managing resource allocation and concurrent program execution on an array of processor cores |
US8561078B2 (en) | 2011-09-27 | 2013-10-15 | Throughputer, Inc. | Task switching and inter-task communications for multi-core processors |
US10133599B1 (en) | 2011-11-04 | 2018-11-20 | Throughputer, Inc. | Application load adaptive multi-stage parallel data processing architecture |
US10310901B2 (en) | 2011-11-04 | 2019-06-04 | Mark Henrik Sandstrom | System and method for input data load adaptive parallel processing |
US10310902B2 (en) | 2011-11-04 | 2019-06-04 | Mark Henrik Sandstrom | System and method for input data load adaptive parallel processing |
US10963306B2 (en) | 2011-11-04 | 2021-03-30 | Throughputer, Inc. | Managing resource sharing in a multi-core data processing fabric |
US10430242B2 (en) | 2011-11-04 | 2019-10-01 | Throughputer, Inc. | Task switching and inter-task communications for coordination of applications executing on a multi-user parallel processing architecture |
US10437644B2 (en) | 2011-11-04 | 2019-10-08 | Throughputer, Inc. | Task switching and inter-task communications for coordination of applications executing on a multi-user parallel processing architecture |
US11928508B2 (en) | 2011-11-04 | 2024-03-12 | Throughputer, Inc. | Responding to application demand in a system that uses programmable logic components |
US10133600B2 (en) | 2011-11-04 | 2018-11-20 | Throughputer, Inc. | Application load adaptive multi-stage parallel data processing architecture |
US10620998B2 (en) | 2011-11-04 | 2020-04-14 | Throughputer, Inc. | Task switching and inter-task communications for coordination of applications executing on a multi-user parallel processing architecture |
US11150948B1 (en) | 2011-11-04 | 2021-10-19 | Throughputer, Inc. | Managing programmable logic-based processing unit allocation on a parallel data processing platform |
US10789099B1 (en) | 2011-11-04 | 2020-09-29 | Throughputer, Inc. | Task switching and inter-task communications for coordination of applications executing on a multi-user parallel processing architecture |
US20210303354A1 (en) | 2011-11-04 | 2021-09-30 | Throughputer, Inc. | Managing resource sharing in a multi-core data processing fabric |
US10061615B2 (en) | 2012-06-08 | 2018-08-28 | Throughputer, Inc. | Application load adaptive multi-stage parallel data processing architecture |
USRE47945E1 (en) | 2012-06-08 | 2020-04-14 | Throughputer, Inc. | Application load adaptive multi-stage parallel data processing architecture |
USRE47677E1 (en) | 2012-06-08 | 2019-10-29 | Throughputer, Inc. | Prioritizing instances of programs for execution based on input data availability |
US10942778B2 (en) | 2012-11-23 | 2021-03-09 | Throughputer, Inc. | Concurrent program execution optimization |
US11036556B1 (en) | 2013-08-23 | 2021-06-15 | Throughputer, Inc. | Concurrent program execution optimization |
US11188388B2 (en) | 2013-08-23 | 2021-11-30 | Throughputer, Inc. | Concurrent program execution optimization |
US11347556B2 (en) | 2013-08-23 | 2022-05-31 | Throughputer, Inc. | Configurable logic platform with reconfigurable processing circuitry |
US11385934B2 (en) | 2013-08-23 | 2022-07-12 | Throughputer, Inc. | Configurable logic platform with reconfigurable processing circuitry |
US11500682B1 (en) | 2013-08-23 | 2022-11-15 | Throughputer, Inc. | Configurable logic platform with reconfigurable processing circuitry |
US11687374B2 (en) | 2013-08-23 | 2023-06-27 | Throughputer, Inc. | Configurable logic platform with reconfigurable processing circuitry |
US11816505B2 (en) | 2013-08-23 | 2023-11-14 | Throughputer, Inc. | Configurable logic platform with reconfigurable processing circuitry |
US11915055B2 (en) | 2013-08-23 | 2024-02-27 | Throughputer, Inc. | Configurable logic platform with reconfigurable processing circuitry |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5214537B2 (ja) | マルチプロセッサシステム | |
JP2007148582A (ja) | タスク実行制御装置、タスク実行制御方法、及びプログラム | |
JP2003263331A (ja) | マルチプロセッサシステム | |
US20130036426A1 (en) | Information processing device and task switching method | |
JPS61267871A (ja) | 情報処理装置 | |
JPH11353291A (ja) | マルチプロセッサシステム及びタスク交換プログラムを記録した媒体 | |
CN117785306A (zh) | 上下文切换系统、方法、电子设备和计算机存储介质 | |
CN111310638B (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
JPH0798663A (ja) | 非同期i/o制御方式 | |
JPH1139171A (ja) | マルチタスク処理装置、マルチタスク処理制御方法及び制御プログラム記憶媒体 | |
JP2000215068A (ja) | マルチタスクスケジュ―リング装置 | |
US20220156074A1 (en) | Electronic device and multiplexing method of spatial | |
CN111143078B (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
JPH09218859A (ja) | マルチプロセッサ制御システム | |
JPH11327681A (ja) | 仮想システム時刻管理方式、管理方法および管理プログラムを記録した記録媒体 | |
JP4107278B2 (ja) | プロセッサ制御回路および情報処理装置 | |
JP2731740B2 (ja) | 通信レジスタ付並列計算機 | |
JP2006059303A (ja) | コンピュータシステム | |
JP2002278753A (ja) | データ処理システム | |
JPH0764960A (ja) | データフロープロセサ | |
JPH07325800A (ja) | データフロープロセサ | |
JP2549410B2 (ja) | 主記憶参照順序制御方式 | |
JPH02254563A (ja) | ベクトルデータ処理方式 | |
JPH05341995A (ja) | プロセッサにおける命令制御方法及びプロセッサ | |
JP3259503B2 (ja) | データ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20001219 |