JPH11306037A - 並列演算処理装置およびその方法 - Google Patents

並列演算処理装置およびその方法

Info

Publication number
JPH11306037A
JPH11306037A JP10675498A JP10675498A JPH11306037A JP H11306037 A JPH11306037 A JP H11306037A JP 10675498 A JP10675498 A JP 10675498A JP 10675498 A JP10675498 A JP 10675498A JP H11306037 A JPH11306037 A JP H11306037A
Authority
JP
Japan
Prior art keywords
task
synchronization
instruction
count value
arithmetic processing
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
Application number
JP10675498A
Other languages
English (en)
Inventor
Yoshihiko Imamura
義彦 今村
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP10675498A priority Critical patent/JPH11306037A/ja
Priority to US09/292,331 priority patent/US6581089B1/en
Publication of JPH11306037A publication Critical patent/JPH11306037A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 複数のタスクを発生した場合の同期待ちを高
速かつ柔軟に解決できる並列演算処理装置を提供する。 【解決手段】 プロセッサエレメントPE12がPE1
3〜15に対してパイプカウンタを特定して複数のタス
クを呼び出し、同期待ち命令で必要に応じて同期待ちを
行う。アービタ156は、タスク呼び出しが発生すると
対応するパイプカウンタのカウント値を増加し、そのタ
スクが終了すると対応するパイプカウンタのカウント値
を減少させる。プロセッサエレメントPE12は、同期
待ち命令を実行したときに、同期待ち命令に含まれるカ
ウント値と、アービタ156の対応するパイプカウンタ
のカウント値とを比較し、一致した場合に同期待ちを解
除し、一致しない場合に同期待ちとなる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数のタスクを発
生した場合の同期待ちを高速かつ柔軟に解決できる並列
演算処理装置およびその方法に関する。
【0002】
【従来の技術】例えば、複数のプロセッサエレメント
(Processor Element:PE)が独立したプログラムカウ
ンタを持ち、共通バスを介して相互に通信を行いながら
処理を実行するMIMD(Multiple Instruction Multip
le Datastream)型のマルチプロセッサシステムが知られ
ている。このようなマルチプロセッサシステムは、コン
カレント(並行)マルチタスクを行うことを前提として
おり、タスクを生成しようとしているメインプログラム
を実行しているプロセッサエレメントと、新たなタスク
が生成されるプロセッサエレメントとの間で通信を行
う。このとき、タスクを呼んだ(生成した)プログラム
が、呼ばれた(生成された)タスクが終了するまで同期
待ちを行う場合がある。
【0003】図15は、一般的なマルチプロセッサシス
テム1の全体構成図である。図15に示すように、マル
チプロセッサシステム1は、4つのプロセッサエレメン
トPE12,PE13,PE14,PE15と、タスク
の同期を管理するアービタ16とが共通バス11を介し
て接続されている。共通バス11は、プロセッサエレメ
ントPE12〜15の相互間でコマンドなどの制御信号
を送受信するための制御線として機能する。
【0004】また、マルチプロセッサシステム1では、
プロセッサエレメントPE12,PE13,PE14,
PE15と共有メモリ17とがメインバス19を介して
接続されている。共有メモリ17は、外部端子18を介
して、外部メモリ(メインメモリ)に接続されている。
なお、マルチタスクの同期を実現するマルチプロセッサ
システムの構成としては、図15に示す構成以外にも種
々のものがある。例えば、図15に示す例では、アービ
タ16でタスクの同期が集中管理される場合を示した
が、例えば、アービタ16を設けずに、個々のプロセッ
サエレメントPE12〜15にタスクの同期を管理する
機能を持たせてもよい。
【0005】図16は、タスクを生成するプログラム
(メインプログラム25)が同期待ちを行う手法を説明
するための図である。図16に示す例では、プロセッサ
エレメントPE12上で動作するメインプログラム25
が、プロセッサエレメントPE13上にタスク26を生
成している。プロセッサエレメントPE12および13
は、個々のプロセッサ固有のマシン語(機械語)で記述
された命令を実行して動作する。なお、タスクの生成な
らびに同期の解決は、ハードウエアによる順序回路を用
いても可能である。なお、本明細書では、命令によって
同期機能の実現する場合を主に説明する。
【0006】
【発明が解決しようとする課題】ところで、従来のマル
チプロセッサシステムでは、以下に示す理由により、図
16に示すメインプログラム25から複数のタスクを任
意の数だけ生成することが困難であった。すなわち、マ
ルチプロセッサシステムは、コンカレントマルチタスク
を実行するが、このマルチタスク方式では、複数のプロ
グラム(タスク)を複数のプロセッサエレメントPEに
割り当てる必要がある。ここで、シングルプロセッサを
前提としたマルチタスクでは、TSS(Time Sharing S
ystem )方式のように、一つのプロセッサエレメントP
Eに対して時分割で複数のタスクを割り当てることが最
も一般的である。従って、一つのプロセッサエレメント
PEを中心としてタスク管理テーブルを一組だけ用意す
ればよい。このTSS方式を採用する多くの場合、それ
らタスクの切り替え機構を持つUnix(商標名)など
のOS(Operating System)を用いることになる。
【0007】通常、プロセッサエレメントPEは、マル
チタスクを特に意識した同期命令を用意していないこと
が多い。同期命令を用いるよりも、タイマなどの外部割
り込みイベントを通じて例外処理を発生させ、その結
果、タスクの切り替えを行う方式を採用することが多
い。また、タスクの切り替えをより高速に実行するため
に、プロセッサエレメントPE内でハードウエアによる
サポートを行っていることが多いが、基本的にはソフト
ウエアによってタスク切り替え機能が実現される。
【0008】これに対して、マルチプロセッサシステム
では、前述したTSS方式を採用する場合、複数のタス
ク管理テーブルを用意することが必要になる。また、そ
れら複数のタスク管理テーブルを総合的に管理するプロ
グラムを、個々のプロセッサエレメントPEを管理する
プログラムの一階層上に用意する必要があり、かなり複
雑なOSになる。そのため、従来のマルチプロセッサシ
ステムでは、図16に示すメインプログラム25から複
数のタスクを任意の数だけ生成することが困難であっ
た。なお、マルチプロセッサシステムに実装するOS
は、通常、そのマルチプロセッサシステムを使うサイド
(ユーザ)が決定する。
【0009】ところで、マルチタスクの実現方法は、T
SS方式の他にも存在する。例えば、特定のプロセッサ
エレメントPEをコプロセッサとして用いるなどのやや
特殊用途への応用が考えられる。その他にも、特定のプ
ロセッサエレメントPEをコプロセッサとして固定しな
いまでも、コプロセッサで実行するプログラムを常駐さ
せることも、ある分野では非常に有効である。いずれに
しても、マルチプロセッサシステムには、タスクの同期
機構が必要である。
【0010】研究試作段階のマルチプロセッサシステム
では、一般的に、個々のプロセッサエレメントPE毎に
シングルプロセッサと同じOSを搭載している。そし
て、これらプロセッサエレメントPE間の通信を行うこ
とにより、全体としてマルチタスクを達成していること
が多い。この場合、プロセッサエレメントPE相互の通
信の機能の一部に同期機構が用いられる。あるいは、セ
マフォアなどのメモリを介した同期機構も採用可能であ
る。
【0011】しかしながら、タスクの生成とそのタスク
の同期待ちに関しては、いずれの場合にも最終的にはソ
フトウエアによる処理を行っているのでレスポンスが悪
く、せいぜい粗粒度並列プログラムを実行する場合に応
用されるのが現状である。また、仮に、複数のタスクを
生成することが十分可能なシステムであっても、それら
のタスクの終了を待つ(同期待ち)方式に決定的な解決
手段がない。
【0012】メインプログラムから生成された複数のタ
スクのうちどのタスクを待つかなどの条件設定は、ソフ
トウエアによるプログラム記述によれば全ての組み合わ
せが可能であるが、それらの条件判定に費やす時間のオ
ーバーヘッドもかなり大きくなり、高速に同期をとるこ
とができない。一方、このような設定条件を、ハードウ
エアによって決定するものがある。例えば、米国のイン
テル社が開発したマイクロプロセッサ8086とそのプ
ロセッサ専用に設計されたコプロセッサ8087との間
では、ハンドシェークによる同期待ちシステムが確立さ
れている。プロセッサ8086上のメインプログラムの
数値演算用の命令を実行すると、自動的にコプロセッサ
8087はその命令を解釈して演算を始める。通常、数
値演算の実行には複数のクロックサイクルが必要とされ
ていた。従って、その間、プロセッサ8086では当該
命令の次の命令を順次実行する。
【0013】メインプログラムには、タスクの発生命令
から適当な命令数を経た後に同期命令が記述される。そ
して、その同期命令が実行される前に当該数値演算が終
了していれば、プロセッサ8086は数値演算が同期さ
れているものとみなしそのまま命令実行を進める。ま
た、その同期命令が実行される前に当該数値演算が終了
していなければ、コプロセッサ8087の演算が終了す
るまで同期待ちをする。この同期待ちシステムは、簡単
なプロトコルによるハンドシェーク信号を用いており、
きわめて簡単な構成で高速に同期をとることができる。
しかしながら、複数のコプロセッサ8087をひとつの
プロセッサ8086に接続することができず、複数のタ
スクを生成した場合の同期待ちを解決できないという問
題がある。
【0014】本発明は上述した従来技術に鑑みてなさ
れ、複数のタスクを発生した場合の同期待ちを高速かつ
柔軟に解決できる並列演算処理装置およびその方法を提
供することを目的とする。
【0015】
【課題を解決するための手段】本発明は、前述した従来
の同期待ち機構に改良を加えて、マルチタスクシステム
の全体的な性能を向上させるものである。先に記述した
マルチプロセッサシステムにおける同期機構において、
メインプログラムから生成されたタスク(以下、子タス
クとも記す)の終了を認識する際に要する時間が長いと
いう問題があったが、これは、従来のマルチプロセッサ
システムが汎用性を重視するあまり、ソフトウエアによ
る解決方法を選択したことに原因がある。
【0016】本発明は、タスクの生成とその同期に伴う
汎用性をある程度制限している。タスクの生成はほぼ自
由に任意の数分を許すものとし、それら子タスクの稼動
状況/終了を自動的に数値(カウント値)に換算する。
メインプログラムでは、同期命令の実行条件(成立条
件)にその数値を含める。そして、子タスクの数値化さ
れた稼動状況と同期命令を組み合わせて用いる。これ
は、複数のタスクの生成を可能とする。また、同期命令
は、子タスクの終了をハードウエアによって認識させる
方法を採用し、レスポンスの高速化を図る。
【0017】ここで、本発明を実現する手段として、子
タスクを生成する毎にメインプログラムを実行している
プロセッサエレメントは、生成した子タスクの数を記憶
しておくことを提案する。これは、単にレジスタと加減
算器とを組み合わせてもよいし、カウンタを用意するだ
けでもよい。カウンタを例にとると、初期値として0を
セットしておき、子タスクを生成する毎に1だけインク
リメント(増加)させていく。そして、子タスクが終了
すると、しかるべき手続きを経てメインプログラムを実
行しているプロセッサエレメントPEにその旨を通知し
て、先のカウント値を1だけ減ずる。
【0018】メインプログラムのなかの同期命令を実行
するプロセッサエレメントは、同期命令の実行時に前述
したカウント値とその同期命令に付加された引数の値と
を比較する。比較の結果、カウント値のほうが小さいか
あるいは同じ値であれば同期条件が成立したものとみな
し、メインプログラムはその同期命令以降の命令実行に
進む。もし、そうでなければ(カウント値のほうが大き
ければ)、同期条件が満たされるまで同期待ちする。
【0019】同期命令実行後は、次に子タスクの生成に
備えて0に初期化をすることにしてもよい。また、そう
しなくてもよい。これはそのシステムを使用する利用者
の課題である。また、カウンタを設ける位置は特に限定
されない。例えば、メインプログラムを実行するプロセ
ッサエレメント内に存在させるか、あるいは、アービタ
モジュール内に存在させてもよい。
【0020】従来の同期機構では、仮に複数の子タスク
を生成したときには、ソフトウエアによりすべての詳細
な同期条件を記述するか、あるいは、ハードウエアによ
りすべての子タスクの終了を待つかの方法を採用してい
た。これに対して、本発明は、子タスクの終了をハード
ウエアによって認識させるわけであるが、同期待ち命令
に伴う同期条件に制限を付加して、単に同期させるべき
子タスクの数のみを設定する。これにより、同期機構に
ある程度の柔軟性を持たせながら論理回路の規模削減を
図ることができる。
【0021】すなわち、本発明の並列演算処理装置は、
カウント手段を特定するカウント手段特定データをそれ
ぞれ含む単数または複数のタスク呼び出し命令を実行し
た後に、カウント手段特定データと同期解除条件を満た
すカウント値とを含む同期待ち命令で必要に応じて同期
待ちを行う第1の演算処理手段と、前記第1の演算処理
手段から呼び出されたタスクを実行し、当該呼び出され
たタスクが終了したときにタスク終了命令を実行する単
数または複数の第2の演算処理手段と、複数のカウント
手段とを有し、前記第1の演算処理手段による前記タス
ク呼び出し命令の実行に応じて、当該タスク呼び出し命
令に含まれるカウント手段特定データが示す前記カウン
ト手段のカウント値を増加し、前記第2の演算処理手段
の前記タスク終了命令の実行に応じて、その終了したタ
スクを呼び出したタスク呼び出し命令のカウント手段特
定データが示す前記カウント手段のカウント値を減少
し、前記第1の演算処理手段は、前記同期待ち命令に含
まれるカウント値と、当該同期待ち命令に含まれるカウ
ント手段特定データが示す前記カウント手段のカウント
値とを比較し、当該比較の結果に応じて同期待ちを解除
するか否かを決定する。
【0022】また、本発明の並列演算処理装置は、好ま
しくは、前記第1の演算処理手段は、前記同期待ち命令
に含まれるカウント値と、当該同期待ち命令に含まれる
カウント手段特定データが示す前記カウント手段のカウ
ント値とが一致したときに、同期待ちを解除する。
【0023】また、本発明の並列演算処理装置は、好ま
しくは、前記同期待ち命令に含まれるカウント値は、当
該同期待ち命令と同じカウント手段特定データを含むタ
スク呼び出し命令によって呼び出されたタスクの数に比
べて小さい。
【0024】また、本発明の並列演算処理方法は、第1
の演算処理において、複数のカウント手段のうち一のカ
ウント手段を特定するカウント手段特定データをそれぞ
れ含む単数または複数のタスク呼び出し命令を実行し、
カウント手段特定データと同期解除条件を満たすカウン
ト値とを含む同期待ち命令で必要に応じて同期待ちを行
い、単数または複数の第2の演算処理において、前記第
1の演算処理から呼び出されたタスクを実行し、当該呼
び出されたタスクが終了したときにタスク終了命令を実
行し、前記第1の演算処理による前記タスク呼び出し命
令の実行に応じて、当該タスク呼び出し命令に含まれる
カウント手段特定データが示す前記カウント手段のカウ
ント値を増加し、前記第2の演算処理手段の前記タスク
終了命令の実行に応じて、その終了したタスクを呼び出
したタスク呼び出し命令のカウント手段特定データが示
す前記カウント手段のカウント値を減少し、前記第1の
演算処理は、前記同期待ち命令に含まれるカウント値
と、当該同期待ち命令に含まれるカウント手段特定デー
タが示す前記カウント手段のカウント値とを比較し、当
該比較の結果に応じて同期待ちを解除するか否かを決定
する。
【0025】
【発明の実施の形態】以下、本発明の実施形態に係わる
マルチプロセッサシステムを説明する。第1実施形態 図1は、本実施形態のマルチプロセッサシステム51の
構成図である。図1に示すように、マルチプロセッサシ
ステム51は、4つのプロセッサエレメントPE12,
PE13,PE14,PE15と、タスクの同期を管理
するアービタ56とが共通バス11を介して接続されて
いる。また、マルチプロセッサシステム51では、プロ
セッサエレメントPE12,PE13,PE14,PE
15と共有メモリ17とがメインバス19を介して接続
されている。共有メモリ17は、外部端子18を介し
て、外部メモリ(メインメモリ)に接続されている。
【0026】図1において、図15と同じ符号を付した
プロセッサエレメントPE12,PE13,PE14,
PE15、共通バス11、メインバス19、共有メモリ
17および外部端子18は、前述した図15に示す構成
要素と同じである。すなわち、マルチプロセッサシステ
ム51は、アービタ56におけるタスク同期の管理方法
に特徴を有する。アービタ56は、カウンタを備え、例
えば、プロセッサエレメントPE12が子タスクの生成
を伴う命令を実行したときに、カウンタのカウント値を
1だけ増加し、子タスクが終了したときにカウントのカ
ウント値を1だけ減少させる。
【0027】マルチプロセッサシステム51は、プロセ
ッサエレメントPE12〜15が、他のプロセッサエレ
メントPEに対して任意に子タスクを生成することがで
きる。子タスクはそのプログラムの終了時に、当該子タ
スクを呼び出した親のプログラムに対して、子タスクの
終了を示すメッセージを送信する。このメッセージは、
図1の共通バス11を用いて行われるものとするが、そ
の形態はいかなるものであってもよい。プロセッサ間通
信を厳密に規定してもよいし、単に信号線を通じて知ら
せてもよい。
【0028】なお、説明の都合上、子タスクとして生成
されるプログラムのアドレス(メインメモリ上の番地)
は予めメインプログラムの記述のなかで設定されている
ものとする。また、子タスクは、プロセッサエレメント
PE12以外のプロセッサエレメントPE13〜15上
に生成されるものとする。具体的にどのプロセッサエレ
メントPEに生成するかは図1に示すアービタ56が自
動的に決定する。本実施形態では、子タスクの割り当て
方法について触れない。
【0029】子タスクを生成する命令としては、例え
ば、「gen」命令を用いるが、その名前は任意であ
る。従って、「gen」命令がプリミティブなマシン語
ではなく、アセンブラ言語のマクロ命令であっても良
い。子タスクのプログラムの中で、タスク生成やその同
期、終了に関するもの以外の通常の命令を「inst
1」、「inst2」と記述する。これも前記と同様
に、それら命令の名前や構成方法は任意である。また、
子タスクの終了命令を「end」とする。この命令によ
って、子タスクを呼んだプロセッサエレメントPEに対
して、タスクの終了を示すメッセージを自動的に送る。
子タスクで作成したデータその他の情報は、適当に処理
するものとする。また、メインプログラムにおいて、同
期待ちのための命令を「wait」とする。後述する
が、この「wait」命令には引数を設定する事ができ
る。
【0030】以下、マルチプロセッサシステム51の動
作を説明する。単数の子タスクのみを生成する場合 図2はマルチプロセッサシステム51において一つの子
タスクを生成する場合のプロセッサエレメントPE上で
動作するプログラムを説明するための図、図3は図2に
示す場合におけるタスク発生および同期待ち解除のタイ
ミングを説明するための図である。ここで、メインプロ
グラム25の「wait」命令は、アービタ56のカウ
ンタのカウント値が「0」になることを同期解除条件と
している。例えば、図3に示すタイミング「r1」で、
プロセッサエレメントPE12において、図2に示すメ
インプログラム25に含まれる「gen」命令が実行さ
れ、タイミング「n1」でプロセッサエレメントPE1
3上にタスク26が生成される。このとき、アービタ5
6のカウント値が「1」に設定される。そして、プロセ
ッサエレメントPE13において、タスク26の「in
st1」および「inst2」などの命令が実行され
る。また、プロセッサエレメントPE12において、メ
インプログラム25の「gen」命令以降の命令が実行
される。そして、図3に示すタイミング「s1」で、プ
ロセッサエレメントPE12において、図2に示す「w
ait」命令が実行される。このとき、アービタ56の
カウント値が「1」であるため、プロセッサエレメント
PE12は、同期条件が満たされていないと判断し、同
期待ち状態になる。
【0031】そして、図3に示すタイミング「s2」
で、プロセッサエレメントPE13においてタスク26
の「end」命令が実行されると、タスク26が終了す
ると共に、アービタ56がカウント値が1だけ減算され
て「0」になる。これにより、同期条件が成立し、プロ
セッサエレメントPE12は、メインプログラム25の
「wait」命令以降の命令を実行する。なお、図2お
よび図3に示す場合において、プロセッサエレメントP
E12が、メインプログラム25に含まれる「wai
t」命令が実行される前に、プロセッサエレメントPE
がタスク26の「end」命令を実行した場合には、プ
ロセッサエレメントPE12は同期待ち状態にならな
い。
【0032】複数の子タスクを生成する場合(その1) 図4はマルチプロセッサシステム51において複数のタ
スクを生成し、全てのタスクの終了を同期待ちの条件と
した場合の各プロセッサエレメントPE上で動作するプ
ログラムを説明するための図、図5は図4に示す場合に
おけるタスク発生および同期待ち解除のタイミングを説
明するための図である。図4および図5に示す例では、
図4に示すメインプログラム75の「wait」命令が
示す同期待ち解除条件がカウント値「0」となってい
る。この場合には、図5に示すタイミング「r1」で、
プロセッサエレメントPE12において、図4に示すメ
インプログラム75に含まれる「gen1」命令が実行
され、タイミング「r2」でプロセッサエレメントPE
13上にタスク76が生成される。このとき、アービタ
56のカウント値が「1」に設定される。また、図5に
示すタイミング「r2」で、プロセッサエレメントPE
12において、図4に示すメインプログラム75に含ま
れる「gen2」命令が実行され、タイミング「r3」
でプロセッサエレメントPE14上にタスク77が生成
される。このとき、アービタ56のカウント値が「2」
に設定される。また、図5に示すタイミング「r3」
で、プロセッサエレメントPE12において、図4に示
すメインプログラム75に含まれる「gen3」命令が
実行され、タイミング「n1」でプロセッサエレメント
PE15上にタスク78が生成される。このとき、アー
ビタ56のカウント値が「3」に設定される。
【0033】そして、プロセッサエレメントPE13に
おいて、タイミング「r2」から、タスク76に含まれ
る「inst1」および「inst2」などの命令が実
行される。また、プロセッサエレメントPE14におい
て、タイミング「r3」から、タスク77に含まれる
「inst1」および「inst2」などの命令が実行
される。また、プロセッサエレメントPE15におい
て、タイミング「n1」から、タスク78に含まれる
「inst1」および「inst2」などの命令が実行
される。
【0034】そして、図5に示すタイミング「e1」
で、プロセッサエレメントPE13においてタスク76
の「end」命令が実行されると、タスク76が終了す
ると共に、アービタ56のカウント値が1だけ減算され
て「2」になる次に、図5に示すタイミング「s1」
で、プロセッサエレメントPE12において、図4に示
す「wait」命令が実行される。このとき、アービタ
56のカウント値が「2」であることから、同期待ち解
除条件を満たさず、プロセッサエレメントPE12は同
期待ち状態になる。
【0035】次に、図5に示すタイミング「e2」で、
プロセッサエレメントPE15においてタスク78の
「end」命令が実行されると、タスク78が終了する
と共に、アービタ56がカウント値が1だけ減算されて
「1」になる次に、図5に示すタイミング「s2」で、
プロセッサエレメントPE14においてタスク77の
「end」命令が実行されると、タスク77が終了する
と共に、アービタ56がカウント値が1だけ減算されて
「0」になるこれにより、メインプログラム75の「w
ait」命令が示す同期待ち解除条件が満たされ、プロ
セッサエレメントPE12の同期待ちが解除される。
【0036】複数の子タスクを生成する場合(その2) 図6はマルチプロセッサシステム51において複数のタ
スクを生成し、2つのタスクの終了を同期待ちの条件と
した場合の各プロセッサエレメントPE上で動作するプ
ログラムを説明するための図、図7は図6に示す場合に
おけるタスク発生および同期待ち解除のタイミングを説
明するための図である。図6および図7に示す例では、
図6に示すメインプログラム85の「wait」命令が
示す同期待ち解除条件がカウント値「1」となってい
る。この場合には、図7に示すタイミング「r1」で、
プロセッサエレメントPE12において、図6に示すメ
インプログラム85に含まれる「gen1」命令が実行
され、タイミング「r2」でプロセッサエレメントPE
13上にタスク86が生成される。このとき、アービタ
56のカウント値が「1」に設定される。また、図7に
示すタイミング「r2」で、プロセッサエレメントPE
12において、図6に示すメインプログラム85に含ま
れる「gen2」命令が実行され、タイミング「r3」
でプロセッサエレメントPE14上にタスク87が生成
される。このとき、アービタ56のカウント値が「2」
に設定される。また、図7に示すタイミング「r3」
で、プロセッサエレメントPE12において、図6に示
すメインプログラム85に含まれる「gen3」命令が
実行され、タイミング「n1」でプロセッサエレメント
PE15上にタスク88が生成される。このとき、アー
ビタ56のカウント値が「3」に設定される。
【0037】そして、プロセッサエレメントPE13に
おいて、タイミング「r2」から、タスク86に含まれ
る「inst1」および「inst2」などの命令が実
行される。また、プロセッサエレメントPE14におい
て、タイミング「r3」から、タスク87に含まれる
「inst1」および「inst2」などの命令が実行
される。また、プロセッサエレメントPE14におい
て、タイミング「n1」から、タスク88に含まれる
「inst1」および「inst2」などの命令が実行
される。
【0038】そして、図7に示すタイミング「e1」
で、プロセッサエレメントPE13においてタスク86
の「end」命令が実行されると、タスク86が終了す
ると共に、アービタ56のカウント値が1だけ減算され
て「2」になる次に、図7に示すタイミング「s1」
で、プロセッサエレメントPE12において、図6に示
す「wait」命令が実行される。このとき、アービタ
56のカウント値が「2」であることから、同期待ち解
除条件を満たさず、プロセッサエレメントPE12は同
期待ち状態になる。
【0039】次に、図5に示すタイミング「e2」で、
プロセッサエレメントPE15においてタスク88の
「end」命令が実行されると、タスク88が終了する
と共に、アービタ56がカウント値が1だけ減算されて
「1」になる。これにより、メインプログラム75の
「wait」命令が示す同期待ち解除条件が満たされ、
プロセッサエレメントPE12の同期待ちが解除され
る。
【0040】このように、図6および図7に示す例で
は、図6に示すメインプログラム85が生成した3つの
子タスク86,87,88のうち2つの子タスクの終了
を「wait」命令の引数に記述する。その結果、タス
ク86および88が終了すると、タスク87の終了を待
たずに同期待ち状態が解除できる。ここで、タスク87
としては、例えば、仮想記憶をサポートするタスクなど
の長期的に存在するタスクが適用される。
【0041】以上説明したように、マルチプロセッサシ
ステム51によれば、マルチタスクを実現する場合で
も、OSなどによる複雑な管理を行うことなく、複数の
タスクを発生したプログラムの同期待ちを解決すること
ができる。
【0042】しかしながら、上述したマルチプロセッサ
システム51では、例えば、図6に示すように、タスク
87の終了を待たずに、タスク86および88が終了し
た時点でメインプログラム85の「wait」命令によ
る同期待ちを解除したい場合に、プログラマは、「wa
it」命令の引数となるカウント値を設定するために、
タスク86および88の双方が終了した時点でタスク8
7が終了しているか否かを知らなければならない。その
ため、メインプログラム85を開発する際のプログラマ
の負担が大きく、開発期間が長期化するという問題があ
る。また、「wait」命令の引数となるカウント値の
設定するために複数のタスクの終了タイミングを判断す
る作業は煩雑であり、間違いも発生しやすいという問題
がある。特に、タスクの数が多い場合や、複数のタスク
の相互間で特性が異なる場合には、当該終了タイミング
の判断は非常に困難である。
【0043】第2実施形態 本実施形態のマルチプロセッサシステムは、上述した第
1実施形態のマルチプロセッサシステム51の問題点を
解決するものであり、アービタを除いて、基本的に、前
述した図1に示すマルチプロセッサシステム51と同じ
構成をしている。図8は、本実施形態のマルチプロセッ
サシステム151の構成図である。図8に示すように、
マルチプロセッサシステム151は、4つのプロセッサ
エレメントPE12,PE13,PE14,PE15
と、タスクの同期を管理するアービタ156とが共通バ
ス11を介して接続されている。また、マルチプロセッ
サシステム151では、プロセッサエレメントPE1
2,PE13,PE14,PE15と共有メモリ17と
がメインバス19を介して接続されている。共有メモリ
17は、外部端子18を介して、外部メモリ(メインメ
モリ)に接続されている。
【0044】図8において、図1と同じ符号を付したプ
ロセッサエレメントPE12,PE13,PE14,P
E15、共通バス11、メインバス19、共有メモリ1
7および外部端子18は、前述した図1に示す構成要素
と同じである。すなわち、マルチプロセッサシステム1
51は、アービタ156におけるタスク同期の管理方法
に特徴を有する。アービタ156は、図9に示すよう
に、複数のカウント手段としてのm(mは2以上の整
数)個のパイプカウンタp0 〜pm-1 を備えている。各
パイプカウンタp0 〜pm-1 の機能は、基本的に、前述
した第1実施形態のアービタ56のカウンタ機能と同じ
である。ここで、メインプログラムのタスク生成命令
「gen」は、パイプカウンタp0 〜pm-1 を指定する
カウント手段特定データとしての識別子を含んでいる。
【0045】各パイプカウンタp0 〜pm-1 は、例え
ば、図10に示すように、メインプログラム160のタ
スク生成命令「gen」が実行され、当該タスク生成命
令「gen」が自分自身を指定している場合に、カウン
ト値を1だけ増加し、当該タスク生成命令「gen」に
よって生成された子タスク161が終了したときにカウ
ント値を1だけ減少させる。また、各パイプカウンタp
0 〜pm-1 は、メインプログラム160が初期化命令を
実行したときに、カウント値をリセットする。また、各
パイプカウンタp0〜pm-1 は、カウント値を戻り値と
してメインプログラム160に出力する。
【0046】また、メインプログラムに記述される同期
命令(同期待ち命令)である「wait」命令は、同期
条件を満たすカウント値の他に、パイプカウンタを指定
する識別子を含んでいる。プロセッサエレメントPE
は、「wait」命令を実行したときに、当該「wai
t」命令で指定されるパイプカウンタp0 〜pm-1 のカ
ウント値を戻り値として入力し、当該入力したカウント
値と、当該「wait」命令に含まれるカウント値とが
一致したとき、あるいは、当該入力したカウント値の方
が小さいときに同期条件が満たされたと判断する。
【0047】以下、図8に示すマルチプロセッサシステ
ム151の動作について説明する。図11はマルチプロ
セッサシステム151におけるプロセッサエレメントP
E12上で動作するメインプログラム210およびプロ
セッサエレメントPE13〜15上で動作するタスク2
11〜213を説明するための図、図12は図11に示
す場合におけるタスク発生および同期待ち解除のタイミ
ングを説明するための図である。図11において、第1
の演算処理手段としてのプロセッサエレメントPE12
で実行されるメインプログラム210には、タスク生成
命令「gen1」,「gen2」,「gen3」および
同期待ち命令「wait」が記述されている。ここで、
タスク生成命令「gen1」は、第2の演算処理手段と
してのプロセッサエレメントPE13にタスク211を
発生させる命令であり、パイプカウンタp0 を指定して
いる。また、タスク生成命令「gen2」は、第2の演
算処理手段としてのプロセッサエレメントPE14にタ
スク212を発生させる命令であり、パイプカウンタp
1 を指定している。また、タスク生成命令「gen3」
は、第2の演算処理手段としてのプロセッサエレメント
PE15にタスク213を発生させる命令であり、パイ
プカウンタp0 を指定している。また、「wait」命
令は、パイプカウンタp0 のカウント値が「0」になる
ことを同期解除条件として指定している。
【0048】図11に示すメインプログラム210をプ
ロセッサエレメントPE12上で実行すると、図12に
示すタイミング「r1」で、プロセッサエレメントPE
12において、図11に示すメインプログラム210の
「gen1」命令が実行され、タイミング「r2」でプ
ロセッサエレメントPE13上にタスク211が生成さ
れる。このとき、「gen1」命令がパイプカウンタp
0 を指定していることから、パイプカウンタp0 のカウ
ント値が増加されて「1」に設定される。また、図12
に示すタイミング「r2」で、プロセッサエレメントP
E12において、図11に示すメインプログラム210
に含まれる「gen2」命令が実行され、タイミング
「r3」でプロセッサエレメントPE14上にタスク2
12が生成される。このとき、「gen2」命令がパイ
プカウンタp1 を指定していることから、アービタ15
6のパイプカウンタp1 のカウント値が増加されて
「1」に設定される。
【0049】また、図12に示すタイミング「r3」
で、プロセッサエレメントPE12において、図11に
示すメインプログラム210に含まれる「gen3」命
令が実行され、タイミング「n1」でプロセッサエレメ
ントPE15上にタスク213が生成される。このと
き、「gen3」命令がパイプカウンタp0 を指定して
いることから、アービタ156のパイプカウンタp0
カウント値が増加されて「2」に設定される。
【0050】そして、プロセッサエレメントPE13に
おいて、タイミング「r2」から、タスク211に含ま
れる「inst1」および「inst2」などの命令が
実行される。また、プロセッサエレメントPE14にお
いて、タイミング「r3」から、タスク212に含まれ
る「inst1」および「inst2」などの命令が実
行される。また、プロセッサエレメントPE15におい
て、タイミング「n1」から、タスク213に含まれる
「inst1」および「inst2」などの命令が実行
される。
【0051】そして、図12に示すタイミング「e1」
で、プロセッサエレメントPE13においてタスク21
1のタスク終了命令としての「end」命令が実行され
ると、タスク211が終了すると共に、パイプカウンタ
0 のカウント値が1だけ減算されて「1」になる。次
に、図12に示すタイミング「s1」で、プロセッサエ
レメントPE12において、図11に示す「wait」
命令が実行される。このとき、アービタ156のパイプ
カウンタp0 のカウント値が「1」であり、「wai
t」命令の同期解除条件であるパイプカウンタp0 のカ
ウント値「0」を満たしていないため、プロセッサエレ
メントPE12は同期待ち状態になる。
【0052】次に、図5に示すタイミング「e2」で、
プロセッサエレメントPE15においてタスク213の
「end」命令が実行されると、タスク213が終了す
ると共に、パイプカウンタp0 のカウント値が1だけ減
算されて「0」になる。これにより、メインプログラム
210の「wait」命令が示す同期待ち解除条件が満
たされ、プロセッサエレメントPE12の同期待ちが解
除される。
【0053】このように、図11および図12に示す例
では、タスク211および213が終了すると、タスク
212の終了を待たずにメインプログラム210の同期
待ち状態が解除できる。
【0054】また、マルチプロセッサシステム151
は、図12に示す動作と同じ動作を行うために、例え
ば、図13に示すように、タスク生成命令「gen
1」,「gen2」および「gen3」の全てがパイプ
カウンタp0 を指定し、同期命令「wait」における
同期解除条件をパイプカウンタp0 のカウント値「1」
に設定してもよい。
【0055】以上説明したように、マルチプロセッサシ
ステム151によれば、例えば、図11に示すメインプ
ログラム210の「gen1」および「gen3」が発
生したタスク211および213が終了したときに、
「gen3」によって生成されたタスク212の終了を
待たずに、メインプログラム210の同期命令「wai
t」による同期待ちを解除したい場合に、「gen1」
および「gen3」においてパイプカウンタp0 を指定
し、同期命令「wait」においてパイプカウンタp0
のカウント値が「0」になることを同期解除条件とすれ
ば良く、タスク212の終了タイミングを考慮せずに、
同期命令「wait」を記述できる。そのため、マルチ
プロセッサシステム151によれば、プログラマがメイ
ンプログラム210を記述する際の負担を軽減でき、プ
ログラム開発期間を短縮できると共に、ミスの少ない高
品質なプログラムを開発できる。
【0056】また、マルチプロセッサシステム151に
よるタスク管理は、ソフトウエアによるタスクの管理と
比べてやや汎用性に制限が付くものの、同期待ち機構を
ハードウエアで実現することがきわめて容易になる。こ
れは、タスク終了の事実を高速に知るための方法として
有効であり、また、回路規模が小さく実現できるなどの
効果がある。
【0057】また、同期待ち命令である「wait」命
令に引数を記述することにより、メインプログラムと、
当該メインプログラムが生成した子タスクとの間の同期
条件を柔軟に設定できる。例えば、マルチプロセッサシ
ステム151は、図11において、プロセッサエレメン
トPE14上に生成される子タスク212が他の子タス
ク211,213に比べてプログラムが終了するまでの
時間が極めて大きくなることが事前に知ることができて
いて、なおかつ、プロセッサエレメントPE12上の同
じメインプログラム210で子タスクを生成する必要性
にせまられたときなどは特に有効である。
【0058】本実施形態では、意図的に極端な場合を想
定している。しかし、タスクの処理時間に大小の差が存
在することは一般的にいえることである。マルチプロセ
ッサシステム上でマルチタスクを実現するためには、何
らかの方法でプロセッサ資源と各々のスレッド(OS上
の概念でタスクの断片のこと)とを対応づけすることが
求められる。プロセッサ資源を有効に使用するために
は、システム上のプロセッサ稼動状況を的確に把握する
必要があり、また、ある特定のプロセッサの動作状況に
よってシステム全体が影響を受けることはあまり望まし
くはない。従来の技術を用いてマルチプロセッサシステ
ム上にマルチタスクを実現する場合には、前述したよう
に、プロセッサ資源を有効に使用することが困難にな
る。つまり、ソフトウェアによる制御では稼動していな
いプロセッサに対して新たなタスクを割り当てることが
可能であるが、その判断を下すまでに多くの時間を費や
すことになる。結果的に、システム全体が遅く動作する
ことになる。
【0059】これに対して、マルチプロセッサシステム
151によれば、同期待ちの解決手段として、カウンタ
を用いるのみで、複雑なソフトウェアを用いたないた
め、同期待ちを高速に解決でき、リアルタイム性を向上
できる。また、ハードウエアによる従来の技術では、子
タスクの生成とその同期機構を高速にかつ簡単に構成す
ることができる一方で、複数のタスクを生成することが
困難になっている。仮に、複数のタスクが生成できたと
しても、それまでに生成したタスクをすべて待つことに
なる。これに対して、マルチプロセッサシステム151
によれば、「wait」命令に、パイプカウンタおよび
同期待ちを行うタスクの数を引数として設定すること
で、多様かつ柔軟な同期待ちを実現できる。
【0060】OSを実装する上で、新たなタスクを生成
する際にはそれまで生成されているタスクのうちいくつ
までが終了しているかなどを把握し、かつ、それらのタ
スクがどのプロセッサエレメントPEに割り当てられて
いるかを知る必要がある。裏を返せば、すべてのタスク
の終了を待っていては、新たなタスクのプロセッサエレ
メントPEへの割り当てができないことになるか、ある
いは、相当の困難を伴うことになるだろう。従って、上
述したマルチプロセッサシステム151のように、タス
クを生成するべきメインプログラム内でタスクの終了状
態を監視しておきその値を同期機構に反映させることが
できれば、マルチプロセッサシステムの性能を向上させ
ることができる。
【0061】本発明は上述した実施形態には限定されな
い。例えば、上述した実施形態では、単数のメインプロ
グラムから複数の子タスクを生成する場合を例示した
が、複数のメインプログラムからそれぞれ複数の子タス
クを生成するようにしてもよい。この場合には、複数の
メインプログラムに相互に異なるパイプカウンタを割り
当てる。これにより、複数のメインプログラムがそれぞ
れ子タスクを生成し、また、子タスクの終了を待つこと
ができる。一つのメインプログラムが複数のパイプカウ
ンタを使用してもよい。また、子タスクが新たなメイン
プログラムになって更に子タスクを生成するようにして
もよい。これにより、プログラムの自由度を高め、プロ
グラムをより効率的に開発できる。
【0062】また、上述した実施形態では、図1および
図8に示すプロセッサエレメントPE12がタスク生成
命令である「gen」命令を実行する場合を例示した
が、その他のプロセッサエレメントPE13〜15が
「gen」命令を実行してもよい。また、図1および図
8に示す例では、4個のプロセッサエレメントPE12
〜15を設けた場合を例示したが、2以上であればプロ
セッサエレメントPEの数は任意である。
【0063】上述した実施形態では、アービタ56,1
56にタスク同期機能を持たせた場合を例示したが、タ
スク同期機能をその他の構成要素に持たせてもよい。
【0064】また、本発明は、例えば、図14に示すよ
うに、コンピュータ102,103,104,105を
ネットワーク101を介して接続して分散処理を行う並
列分散処理システムにも適用できる。この場合に、例え
ば、コンピュータ102がメインプログラムを実行する
場合には、コンピュータ102内にアービタ106が設
けられる。アービタ106の機能は、前述した図1に示
すアービタ56あるいは図8に示すアービタ156と同
じである。
【0065】
【発明の効果】以上説明したように、本発明の並列演算
処理装置によれば、第1の演算処理手段が複数のタスク
を呼び出した場合の同期待ちを高速かつ柔軟に解決でき
る。また、本発明の並列演算処理装置によれば、第1の
演算処理手段で実行されるプログラムを作成する際のプ
ログラの負担を軽減でき、ミスの少ない高品質なプログ
ラムの作成を可能にする。また、本発明の並列演算処理
方法によれば、第1の演算処理が複数のタスクを呼び出
した場合の同期待ちを高速かつ柔軟に解決できる。ま
た、本発明の並列演算処理方法によれば、第1の演算処
理のプログラムを作成する際のプログラの負担を軽減で
き、ミスの少ない高品質なプログラムの作成を可能にす
る。
【図面の簡単な説明】
【図1】図1は、本発明の第1実施形態のマルチプロセ
ッサシステムの構成図である。
【図2】図2は、図1に示すマルチプロセッサシステム
において一つの子タスクを生成する場合のプロセッサエ
レメントPE上で動作するプログラムを説明するための
図である。
【図3】図3は、図2に示す場合におけるタスク発生お
よび同期待ち解除のタイミングを説明するための図であ
る。
【図4】図4は、図1に示すマルチプロセッサシステム
において複数のタスクを生成し、全てのタスクの終了を
同期待ちの条件とした場合の各プロセッサエレメントP
E上で動作するプログラムを説明するための図である。
【図5】図5は、図4に示す場合におけるタスク発生お
よび同期待ち解除のタイミングを説明するための図であ
る。
【図6】図6は、図1に示すマルチプロセッサシステム
において複数のタスクを生成し、2つのタスクの終了を
同期待ちの条件とした場合の各プロセッサエレメントP
E上で動作するプログラムを説明するための図である。
【図7】図7は、図6に示す場合におけるタスク発生お
よび同期待ち解除のタイミングを説明するための図であ
る。
【図8】図8は、本発明の第2実施形態のマルチプロセ
ッサシステムの構成図である。
【図9】図9は、図8に示すアービタの構成図である。
【図10】図10は、図9に示すパイプカウンタの機能
を説明するための図である。
【図11】図11は、図8に示すマルチプロセッサシス
テムにおけるプロセッサエレメントPE上で動作するメ
インプログラムおよびタスクを説明するための図であ
る。
【図12】図12は、図11に示す場合におけるタスク
発生および同期待ち解除のタイミングを説明するための
図である。
【図13】図13は、図8に示すマルチプロセッサシス
テムにおけるプロセッサエレメントPE上で動作するメ
インプログラムおよびタスクのその他の例を説明するた
めの図である。
【図14】図14は、本発明を適用した並列分散処理シ
ステムの構成図である。
【図15】図15は、一般的なマルチプロセッサシステ
ムの全体構成図である。
【図16】図16は、タスクを生成するプログラムが同
期待ちを行う手法を説明するための図である。
【符号の説明】
1,51…マルチプロセッサシステム、11…共通バ
ス、16,56,156…アービタ、17…共有メモ
リ、19…メインバス、12〜15…プロセッサエレメ
ントPE、18…外部端子、p0 〜pm-1 …パイプカウ
ンタ、100…並列分散処理システム、102〜105
…コンピュータ

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】カウント手段を特定するカウント手段特定
    データをそれぞれ含む単数または複数のタスク呼び出し
    命令を実行した後に、カウント手段特定データと同期解
    除条件を満たすカウント値とを含む同期待ち命令で必要
    に応じて同期待ちを行う第1の演算処理手段と、 前記第1の演算処理手段から呼び出されたタスクを実行
    し、当該呼び出されたタスクが終了したときにタスク終
    了命令を実行する単数または複数の第2の演算処理手段
    と、 複数のカウント手段とを有し、 前記第1の演算処理手段による前記タスク呼び出し命令
    の実行に応じて、当該タスク呼び出し命令に含まれるカ
    ウント手段特定データが示す前記カウント手段のカウン
    ト値を増加し、前記第2の演算処理手段の前記タスク終
    了命令の実行に応じて、その終了したタスクを呼び出し
    たタスク呼び出し命令のカウント手段特定データが示す
    前記カウント手段のカウント値を減少し、 前記第1の演算処理手段は、前記同期待ち命令に含まれ
    るカウント値と、当該同期待ち命令に含まれるカウント
    手段特定データが示す前記カウント手段のカウント値と
    を比較し、当該比較の結果に応じて同期待ちを解除する
    か否かを決定する並列演算処理装置。
  2. 【請求項2】前記第1の演算処理手段は、前記同期待ち
    命令に含まれるカウント値と、当該同期待ち命令に含ま
    れるカウント手段特定データが示す前記カウント手段の
    カウント値とが一致したときに、同期待ちを解除する請
    求項1に記載の並列演算処理装置。
  3. 【請求項3】前記同期待ち命令に含まれるカウント値
    は、当該同期待ち命令と同じカウント手段特定データを
    含むタスク呼び出し命令によって呼び出されたタスクの
    数に比べて小さい請求項2に記載の並列演算処理装置。
  4. 【請求項4】前記第1の演算処理手段における処理およ
    び前記単数または複数の第2の演算処理手段における処
    理とは相互に独立して行われる請求項1に記載の並列演
    算処理装置。
  5. 【請求項5】前記同期待ち命令は、前記カウント手段特
    定データと同期解除条件を満たすカウント値とを引数と
    して持つ請求項1に記載の並列演算処理装置。
  6. 【請求項6】前記第1の演算処理手段および前記単数ま
    たは複数の第2の演算処理手段は、共通のバスを介して
    接続されている請求項1に記載の並列演算処理装置。
  7. 【請求項7】第1の演算処理において、複数のカウント
    手段のうち一のカウント手段を特定するカウント手段特
    定データをそれぞれ含む単数または複数のタスク呼び出
    し命令を実行し、カウント手段特定データと同期解除条
    件を満たすカウント値とを含む同期待ち命令で必要に応
    じて同期待ちを行い、 単数または複数の第2の演算処理において、前記第1の
    演算処理から呼び出されたタスクを実行し、当該呼び出
    されたタスクが終了したときにタスク終了命令を実行
    し、 前記第1の演算処理による前記タスク呼び出し命令の実
    行に応じて、当該タスク呼び出し命令に含まれるカウン
    ト手段特定データが示す前記カウント手段のカウント値
    を増加し、前記第2の演算処理手段の前記タスク終了命
    令の実行に応じて、その終了したタスクを呼び出したタ
    スク呼び出し命令のカウント手段特定データが示す前記
    カウント手段のカウント値を減少し、 前記第1の演算処理は、前記同期待ち命令に含まれるカ
    ウント値と、当該同期待ち命令に含まれるカウント手段
    特定データが示す前記カウント手段のカウント値とを比
    較し、当該比較の結果に応じて同期待ちを解除するか否
    かを決定する並列演算処理方法。
  8. 【請求項8】前記第1の演算処理は、前記同期待ち命令
    に含まれるカウント値と、当該同期待ち命令に含まれる
    カウント手段特定データが示す前記カウント手段のカウ
    ント値とが一致したときに、同期待ちを解除する請求項
    7に記載の並列演算処理方法。
  9. 【請求項9】前記同期待ち命令に含まれるカウント値
    は、当該同期待ち命令と同じカウント手段特定データを
    含むタスク呼び出し命令によって呼び出されたタスクの
    数に比べて小さい請求項8に記載の並列演算処理方法。
  10. 【請求項10】前記第1の演算処理における処理および
    前記単数または複数の第2の演算処理における処理とは
    相互に独立して行われる請求項7に記載の並列演算処理
    方法。
  11. 【請求項11】前記同期待ち命令は、前記カウント手段
    特定データと同期解除条件を満たすカウント値とを引数
    として持つ請求項7に記載の並列演算処理方法。
JP10675498A 1998-04-16 1998-04-16 並列演算処理装置およびその方法 Pending JPH11306037A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP10675498A JPH11306037A (ja) 1998-04-16 1998-04-16 並列演算処理装置およびその方法
US09/292,331 US6581089B1 (en) 1998-04-16 1999-04-15 Parallel processing apparatus and method of the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10675498A JPH11306037A (ja) 1998-04-16 1998-04-16 並列演算処理装置およびその方法

Publications (1)

Publication Number Publication Date
JPH11306037A true JPH11306037A (ja) 1999-11-05

Family

ID=14441710

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10675498A Pending JPH11306037A (ja) 1998-04-16 1998-04-16 並列演算処理装置およびその方法

Country Status (1)

Country Link
JP (1) JPH11306037A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012059195A (ja) * 2010-09-13 2012-03-22 Renesas Electronics Corp マルチスレッドプロセッサ
WO2012093496A1 (ja) * 2011-01-07 2012-07-12 富士通株式会社 マルチタスクスケジューリング方法、およびマルチコアプロセッサシステム
JP2018521427A (ja) * 2015-07-30 2018-08-02 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 可変レーンアーキテクチャのためのシステムおよび方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012059195A (ja) * 2010-09-13 2012-03-22 Renesas Electronics Corp マルチスレッドプロセッサ
WO2012093496A1 (ja) * 2011-01-07 2012-07-12 富士通株式会社 マルチタスクスケジューリング方法、およびマルチコアプロセッサシステム
JP5720699B2 (ja) * 2011-01-07 2015-05-20 富士通株式会社 マルチタスクスケジューリング方法、およびマルチコアプロセッサシステム
US9563465B2 (en) 2011-01-07 2017-02-07 Fujitsu Limited Multi-task scheduling method for assigning threads based on time slices to multi-core processors and multi-core processor system therefor
JP2018521427A (ja) * 2015-07-30 2018-08-02 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 可変レーンアーキテクチャのためのシステムおよび方法
US10691463B2 (en) 2015-07-30 2020-06-23 Futurewei Technologies, Inc. System and method for variable lane architecture
US10884756B2 (en) 2015-07-30 2021-01-05 Futurewei Technologies, Inc. System and method for variable lane architecture

Similar Documents

Publication Publication Date Title
TWI407373B (zh) 用於管理多核心架構之資源的方法和設備
US5056000A (en) Synchronized parallel processing with shared memory
US5666523A (en) Method and system for distributing asynchronous input from a system input queue to reduce context switches
WO2001046804A1 (en) System of reusable software parts for implementing concurrency and hardware access, and methods of use
JP2009265963A (ja) 情報処理システム及びタスクの実行制御方法
JPH03230225A (ja) プロセス分散方法
JP2005267118A (ja) シングルプロセッサ向けosによる並列処理システムにおけるプロセッサ間通信システム及びプログラム
US6581089B1 (en) Parallel processing apparatus and method of the same
JPH11306038A (ja) 並列演算処理装置およびその方法
JPH11306037A (ja) 並列演算処理装置およびその方法
JP3644042B2 (ja) マルチタスク処理装置
JPH11306149A (ja) 並列演算処理装置およびその方法
JP2780623B2 (ja) 情報処理装置
JP2708172B2 (ja) 並列処理方法
Socci et al. A timed-automata based middleware for time-critical multicore applications
Agron et al. Hardware microkernels for heterogeneous manycore systems
US20230305872A1 (en) Efficient central processing unit overcommit for virtual machines with symmetric multi-processing
Cataldo et al. Subutai: Speeding Up Legacy Parallel Applications Through Data Synchronization
JPH10111857A (ja) マルチプロセッサ
JP2018147126A (ja) 並列プロセス実行方法
Mauroner et al. Remote instruction call: An RPC approach on instructions for embedded multi-core systems
JP2018049406A (ja) 複数プロセッサ間のタスク連携装置
Verhulst The rationale for distributed semantics as a topology independent embedded systems design methodology and its implementation in the virtuoso rtos
JPH04102158A (ja) 密結合マルチプロセッサ
JPH0981526A (ja) マルチプロセッサシステム