[go: up one dir, main page]

JP2002163239A - マルチプロセッサシステムおよびその制御方法 - Google Patents

マルチプロセッサシステムおよびその制御方法

Info

Publication number
JP2002163239A
JP2002163239A JP2000356237A JP2000356237A JP2002163239A JP 2002163239 A JP2002163239 A JP 2002163239A JP 2000356237 A JP2000356237 A JP 2000356237A JP 2000356237 A JP2000356237 A JP 2000356237A JP 2002163239 A JP2002163239 A JP 2002163239A
Authority
JP
Japan
Prior art keywords
command
processor
dma
master processor
commands
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
JP2000356237A
Other languages
English (en)
Inventor
Shigehiro Asano
滋博 浅野
Mitsuo Saito
光男 斎藤
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2000356237A priority Critical patent/JP2002163239A/ja
Priority to US09/989,028 priority patent/US6820187B2/en
Priority to EP01309835A priority patent/EP1209573A3/en
Publication of JP2002163239A publication Critical patent/JP2002163239A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)

Abstract

(57)【要約】 【課題】マスタプロセッサの負荷の増大を招くことな
く、マルチプロセッサシステムのスループットの向上を
図る。 【解決手段】プロセッサエレメント(PE)にはそれぞ
れ複数のコマンドを蓄積可能なコマンドプーリングバッ
ファ121が設けられ、またDMAコントローラにもそ
れぞれ複数のコマンドを蓄積可能なコマンドプーリング
バッファ131が設けられている。マスタプロセッサ
(MP)11からDMAコントローラや各プロセッサエ
レメント(PE)へのコマンドは複数まとめて発行する
ことができ、先に送ったコマンドに対する応答を待たず
に次のコマンドを発行することができる。さらに、発行
済みで応答が返ってきてないコマンドの数の管理はカウ
ンタアレイ111によって行われ、すべての発行済みの
コマンドに対して応答が返ってきたときにそのことがマ
スタプロセッサ(MP)11に通知される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はマルチプロセッサシ
ステムおよびその制御方法に関し、特にグローバルメモ
リと各プロセッサエレメントのローカルメモリとの間で
データ/プログラムの転送をDMA転送によって行うマ
ルチプロセッサシステムおよびその制御方法に関する。
【0002】
【従来の技術】従来より、マルチプロセッサ方式は計算
機を高速化する手法として広く知られている。マルチプ
ロセッサ方式には、メモリを共有する共有メモリ方式
(密結合マルチプロセッサ方式)と、メモリをプロセッ
サに分散して持つ疎結合マルチプロセッサ方式とがあ
る。
【0003】共有メモリ方式では共有メモリを通してプ
ロセッサ間の通信を行うことができるのでプログラミン
グが簡単な反面、データの整合性を保持した状態で各プ
ロセッサが共有メモリを参照できるようにするための共
有メモリアクセスに関する特別な仕組みが必要となり、
ハードウェアが複雑になるという欠点がある。また、疎
結合マルチプロセッサ方式では共有メモリを用いたプロ
セッサ間通信は行われないのでハードウェアはその分簡
単化できるが、プロセッサ間通信のための機能をプロセ
ッサ毎にそれを制御するプログラムによって提供する必
要があり、プログラム作成が困難であるという問題があ
る。
【0004】そこで、疎結合マルチプロセッサ方式の制
御を容易に行うために、各プロセッサの制御を行うため
のマスタプロセッサを設け、そのマスタプロセッサが他
の各プロセッサエレメントにコマンドを送る方法が知ら
れている。マスタプロセッサ上で他の各プロセッサエレ
メントに送るコマンドの順序およびタイミングを制御す
ることで、マルチプロセッサシステム全体の動作を容易
に制御することが可能となる。
【0005】
【発明が解決しようとする課題】ところで、疎結合マル
チプロセッサ方式では各プロセッサエレメントがローカ
ルなメモリを持つが、疎結合マルチプロセッサ方式であ
っても各プロセッサエレメントで共通に使用可能なメモ
リ(グローバルメモリ)が存在した方がプログラミング
は容易であり、また各ローカルメモリのメモリサイズの
縮小化を図ることもできる。
【0006】しかし、一般にローカルメモリに比べ、グ
ローバルメモリに対するアクセスにはバス調停やその他
の要因で多くの時間を要する。メモリアクセスのために
プロセッサ資源が長い間専有されてしまうことはスルー
プットの低下をもたらすことになる。
【0007】これを改善するため、最近では、グローバ
ルメモリと各プロセッサエレメントのローカルメモリと
の間のデータ/プログラムの転送をDMAコントローラ
によって行う仕組みが考えられている。
【0008】この場合、マスタプロセッサで実行される
プログラムは各プロセッサエレメントおよびDMAコン
トローラを制御する手順を記述したものになる。このプ
ログラムをマルチスレッドで記述することにより、複数
のプロセッサエレメントを効率よく使用することができ
る。
【0009】ところが、個々のプロセッサエレメントの
処理時間およびDMAにかかる時間は既知ではないの
で、マスタプロセッサ上で実行されるマルチスレッドプ
ログラムで各プロセッサエレメントおよびDMAコント
ローラを制御する場合でも、各スレッドに対応する処理
動作を該当するプロセッサエレメントに無駄無く割り当
てるのは実際上困難である。空いているプロセッサエレ
メントの時間を減らすためには、次の二つの問題点を解
決しなければならない。
【0010】第1の問題点は、DMAとプロセッサエレ
メントの処理には依存性があるので、この依存性を制御
するためにマスタプロセッサを用いるが、DMAおよび
プロセッサエレメントの処理の終了の度にマスタプロセ
ッサへ割り込みやスレッドの切り替えを起こしたのでは
マスタプロセッサの動作が非効率的であるということで
ある。特に、マスタプロセッサによって制御すべきプロ
セッサエレメントの数が増えると、マスタプロセッサへ
割り込みやスレッドの切り替えの処理が頻繁に発生し、
処理効率が低下することになる。
【0011】第2の問題点は、マスタプロセッサ上で実
行される2以上のスレッドに対応する処理動作をあるプ
ロセッサエレメントに実行させる場合、あるスレッドの
制御でローカルメモリにDMA転送したデータを、別の
スレッドに対応する処理で使ってしまうということが起
こり得る点である。
【0012】例えば、スレッドAとスレッドBがマスタ
プロセッサ上で並列実行されており、それらスレッドそ
れぞれの制御でプロセッサエレメントがローカルメモリ
上のデータを処理する場合を考える。この場合、スレッ
ドAとスレッドBの切り換えのタイミングやDMAおよ
びプロセッサエレメントの処理時間との関係によって
は、グローバルメモリからローカルメモリにDMA転送
されたスレッドA用のデータがスレッドAに対応するプ
ロセッサエレメントの処理動作で実際に処理される前
に、スレッドAからスレッドBへの切り換えが行われ、
プロセッサエレメントのスレッドBに対応する処理動作
でスレッドA用のデータが使われてしまうことがある。
これにより、扱うデータに不整合が生じる。
【0013】本発明は上述の事情を考慮してなされたも
のであり、マスタプロセッサの負荷の増大や、扱うデー
タの不整合に関する問題を招くことなく、空いているプ
ロセッサエレメントの時間を減らしてスループットの向
上を図ることが可能なマルチプロセッサシステムおよび
その制御方法を提供することを目的とする。
【0014】
【課題を解決するための手段】上述の課題を解決するた
め、本発明は、マスタプロセッサと、ローカルメモリを
各々が有し前記マスタプロセッサからのコマンドに従っ
てそれぞれ制御される複数のプロセッサエレメントと、
前記複数のプロセッサエレメントに共有されるグローバ
ルメモリとを具備するマルチプロセッサシステムにおい
て、前記マスタプロセッサからのコマンドに従って、前
記グローバルメモリと前記各プロセッサエレメントのロ
ーカルメモリとの間のDMA転送を行うDMA実行手段
と、前記マスタプロセッサが各コマンドに対する応答を
待つことなく次のコマンドを発行できるように前記DM
A実行手段および前記各プロセッサエレメントにそれぞ
れ対応して設けられたコマンド蓄積用バッファと、発行
済みで応答が返ってきてないコマンドの数を管理し、す
べての発行済みのコマンドに対して応答が返ってきたと
きにそれを前記マスタプロセッサに通知する未応答コマ
ンド数管理手段とを具備することを特徴とする。
【0015】この発明によれば、DMA実行手段および
各プロセッサエレメントにそれぞれコマンド蓄積用バッ
ファが設けられているので、マスタプロセッサからDM
A実行手段や各プロセッサエレメントへのコマンドは複
数まとめて発行することができ、先に送ったコマンドに
対する応答を待たずに次のコマンドを発行することがで
きる。さらに、発行済みで応答が返ってきてないコマン
ドの数の管理が行われ、すべての発行済みのコマンドに
対して応答が返ってきたときにそれがマスタプロセッサ
に通知される。この通知により、はじめてマスタプロセ
ッサにスレッド切り替え等の動作をとらせれば、DMA
と各プロセッサエレメントの処理の依存性を考慮しつ
つ、マスタプロセッサの負荷を低減することができる。
よって、個々のコマンド発行およびそれに対する応答の
度にスレッドの切り換えが行われるシステムに比べ、シ
ステム全体のスループットを向上させることができる。
もちろん、マスタプロセッサ上のプログラムがシングル
スレッドで動作している場合であっても、割り込み処理
等の回数を減らすことが可能となり、マスタプロセッサ
の負荷を低減することができる。
【0016】また、スレッド毎に固有の識別子を設け、
その識別子と共にコマンドを発行し、コマンドに対する
応答も識別子と共に返すようにすることが好ましい。そ
して、発行済みで応答が返ってきてないコマンドの数を
スレッド毎に個々に管理し、すべての発行済みのコマン
ドに対して応答が返ってきたスレッドに対してコマンド
処理の完了を通知することにより、スレッド間の切り換
えをよりスムーズに行うことが可能となる。
【0017】また、本発明は、マスタプロセッサと、ロ
ーカルメモリを各々が有し前記マスタプロセッサからの
コマンドに従ってそれぞれ制御される複数のプロセッサ
エレメントと、前記複数のプロセッサエレメントに共有
されるグローバルメモリとを具備するマルチプロセッサ
システムにおいて、前記マスタプロセッサからのコマン
ドに従って、前記グローバルメモリと前記各プロセッサ
エレメントのローカルメモリとの間のDMA転送を行う
DMA実行手段と、前記マスタプロセッサが各コマンド
に対する応答を待つことなく次のコマンドを発行できる
ように前記DMA実行手段および前記各プロセッサエレ
メントにそれぞれ対応して設けられたコマンド蓄積用バ
ッファと、発行済みで応答が返ってきてないコマンドの
数を管理し、すべての発行済みのコマンドに対して応答
が返ってきたときにそれを前記マスタプロセッサに通知
する手段と、前記マスタプロセッサ上で並列実行される
複数のスレッドそれぞれに固有の識別子を用いて、前記
各コマンドをその発行元のスレッドの識別子と共に前記
マスタプロセッサから前記DMA実行手段または前記各
プロセッサエレメントに発行する手段と、前記発行され
たコマンドに対応する応答を該当するスレッドの識別子
と共に前記DMA実行手段または前記各プロセッサエレ
メントから前記マスタプロセッサに発行する手段と、前
記複数のスレッドそれぞれの識別子を用いて、前記ロー
カルメモリの各記憶領域毎にどのスレッドに対応するプ
ログラムまたはデータが格納されているかを管理する管
理テーブルとを具備し、前記DMA実行手段および前記
各プロセッサエレメントは、それぞれ対応するコマンド
蓄積用バッファに蓄積されている前記各スレッドからの
コマンドの中で、実行可能なコマンドを前記管理テーブ
ルを参照して特定し、その特定したコマンドを実行する
ことを特徴とする。
【0018】この構成によれば、ローカルメモリの各記
憶領域毎にどのスレッドに対応するプログラムまたはデ
ータが格納されているかを管理する管理テーブルが設け
られており、上述の効果に加え、扱うデータの不整合に
関する問題を解消することができる。さらに、DMA実
行手段および各プロセッサエレメントは、それぞれ対応
するコマンド蓄積用バッファに蓄積されている各スレッ
ドからのコマンドの中で、実行可能なコマンドを管理テ
ーブルを参照して特定できるので、実行可能なコマンド
から順に正しく実行することが可能となり、DMA実行
手段および各プロセッサエレメントの空き時間を減らす
ことが可能となる。
【0019】
【発明の実施の形態】以下、図面を参照して本発明の実
施形態を説明する。 [実施形態1]図1には、本発明の第1実施形態に係る
マルチプロセッサシステムの構成が示されている。この
マルチプロセッサシステムは疎結合方式のマルチプロセ
ッサシステムであり、図示のように、バス10、マスタ
プロセッサ(MP)11、および2つのプロセッサエレ
メント(PE)12−1,12−2を備えている。マス
タプロセッサ(MP)11は2つのプロセッサエレメン
ト(PE)12−1,12−2を制御するためのもので
あり、プロセッサエレメント(PE)12−1,12−
2による処理動作は全てマスタプロセッサ(MP)11
から発行されるコマンドに従って実行される。
【0020】2つのプロセッサエレメント(PE)12
−1,12−2の各々はそれぞれ処理対象のプログラム
およびデータを格納するためのローカルメモリを持つ。
プログラムメモリ(PLS:Program Loca
l Storage)13−1およびデータローカルメ
モリ(DLS:Data Local Storag
e)14−1はプロセッサエレメント(PE)12−1
のローカルメモリであり、プログラムローカルメモリ
(PLS)13−1にはプロセッサエレメント(PE)
12−1に実行させるべきプログラムが格納され、また
データローカルメモリ(DLS)14−1にはプロセッ
サエレメント(PE)12−1によって処理させるべき
データ等が格納される。同様に、プログラムメモリ(P
LS:Program Local Storage)
13−2およびデータローカルメモリ(DLS:Dat
a Local Storage)14−2はプロセッ
サエレメント(PE)12−2のローカルメモリであ
り、プログラムローカルメモリ(PLS)13−2には
プロセッサエレメント(PE)12−2に実行させるべ
きプログラムが格納され、またデータローカルメモリ
(DLS)14−2にはプロセッサエレメント(PE)
12−2によって処理させるべきデータ等が格納され
る。
【0021】さらに、バス10にはDMAコントローラ
15−1,15−2が接続されると共に、メモリコント
ローラ16を介してグローバルメモリ(GM)17が接
続されている。グローバルメモリ(GM)17はプロセ
ッサエレメント(PE)12−1,12−2が共通に使
用可能な一種の共有メモリであり、ここにはマスタプロ
セッサ(MP)11によって実行されるプログラムおよ
び処理データが格納されるほか、プロセッサエレメント
(PE)12−1,12−2によって実行されるプログ
ラムおよび処理データも格納される。このグローバルメ
モリ(GM)17から必要なプログラムをプログラムロ
ーカルメモリ(PLS)13−1,13−2にそれぞれ
転送することにより、プログラムローカルメモリ(PL
S)13−1,13−2のメモリサイズを大きくせず
に、比較的大きなプログラムでもそれをプロセッサエレ
メント(PE)12−1,12−2にそれぞれ実行させ
ることができる。
【0022】また、グローバルメモリ(GM)17とデ
ータローカルメモリ(DLS)14−1,14−2それ
ぞれとの間のデータ転送により、処理対象のデータをグ
ローバルメモリ(GM)17からデータローカルメモリ
(DLS)14−1,14−2に転送してプロセッサエ
レメント(PE)12−1,12−2にそれぞれ処理さ
せたり、それぞれの処理結果のデータをデータローカル
メモリ(DLS)14−1,14−2からグローバルメ
モリ(GM)17に転送するなどの制御を容易に行うこ
とができる。
【0023】DMAコントローラ15−1,15−2
は、それぞれマスタプロセッサ(MP)11からのコマ
ンドに従って、対応するローカルメモリとグローバルメ
モリ(GM)17との間でデータ/プログラムのDMA
転送を実行する。これらDMAコントローラ15−1,
15−2の存在により、プロセッサエレメント12−
1,12−2およびマスタプロセッサ(MP)11の資
源を専有することなく、ローカルメモリとグローバルメ
モリ(GM)17との間のデータ/プログラムの転送を
効率よく行うことができる。
【0024】上述したように、プロセッサエレメント1
2−1,12−2の処理およびDMAコントローラ15
−1,15−2の動作は全てマスタプロセッサ(MP)
11によって制御される。この制御処理は、マスタプロ
セッサ(MP)11上で実行されるマルチスレッドプロ
グラムによって実行される。マルチスレッドプログラム
を構成する複数のスレッドはマスタプロセッサ(MP)
11上で並列に実行され、それらスレッド毎に必要な演
算処理等がプロセッサエレメント12−1または12−
2を用いて実行される。つまり、各スレッドはDMAコ
ントローラ15−1または15−2、およびプロセッサ
エレメント12−1または12−2に送るコマンドの順
序およびタイミングを制御することで、必要な演算処理
をプロセッサエレメントに実行させ、その処理結果をグ
ローバルメモリ(GM)17上に転送させることができ
る。基本的には、以下の手順で処理が行われる。
【0025】1)グローバルメモリ(GM)からプログ
ラムローカルメモリ(PLS)へのプログラムのDMA
転送 2)グローバルメモリ(GM)からデータローカルメモ
リ(DLS)への処理対象データのDMA転送 3)プロセッサエレメントによる処理 4)データローカルメモリ(DLS)からグローバルメ
モリ(GM)への処理結果データの転送 本マルチプロセッサシステムは例えば産業用または家庭
用機器への組み込みコンピュータとして使用される。こ
の場合、図1に示した複数の機能モジュールのうち、グ
ローバルメモリ(GM)17を除く他の全てのモジュー
ルは1チップLSI上に集積形成することができる。
【0026】さらに、本マルチプロセッサシステムで
は、一連の制御に必要な幾つかのコマンドをまとめて扱
えるようにするために、プロセッサエレメント(PE)
12−1,12−2にはそれぞれ複数のコマンドを蓄積
可能なコマンドプーリングバッファ121が設けられ、
またDMAコントローラ15−1,15−2にもそれぞ
れ複数のコマンドを蓄積可能なコマンドプーリングバッ
ファ131が設けられている。これらコマンドプーリン
グバッファ121,131の各々は追い越し制御可能な
一種のコマンドキュー(プール)である。
【0027】これらコマンドプーリングバッファ12
1,131の存在により、マスタプロセッサ(MP)1
1からDMAコントローラ15−1,15−2や各プロ
セッサエレメント(PE)へのコマンドは複数まとめて
発行することができ、先に送ったコマンドに対する応答
を待たずに次のコマンドを発行することができる。さら
に、発行済みで応答が返ってきてないコマンドの数の管
理はマスタプロセッサ(MP)11に設けられたカウン
タアレイ111によって行われ、すべての発行済みのコ
マンドに対して応答が返ってきたときにそのことがマス
タプロセッサ(MP)11に通知される。この通知によ
り、はじめてマスタプロセッサ(MP)11にスレッド
切り替え等の動作をとらせることにより、DMAと各プ
ロセッサエレメント12−1,12−2の処理の依存性
を考慮しつつ、マスタプロセッサ(MP)11の負荷を
低減することができる。この場合、実際には、スレッド
間の切り換えをよりスムーズに行うために、発行済みで
応答が返ってきてないコマンドの数の管理はスレッド毎
に行うことが好ましい。
【0028】すなわち、本実施形態では、スレッドごと
に固有の識別子VTID(Virtual Threa
d ID)を付ける。さらに、カウンタアレイ111に
はVTIDごとに固有のカウンタを設け、マスタプロセ
ッサ(MP)11からのコマンドの発行で該当するカウ
ンタをインクリメントする。DMAコントローラ15−
1,15−2やプロセッサエレメント(PE)12−
1,12−2へはコマンドと共にVTIDを送出するよ
うにし、DMAコントローラ15−1,15−2やプロ
セッサエレメント(PE)12−1,12−2からの応
答には対応したVTIDを共に返すようにする。マスタ
プロセッサ(MP)11では応答と共に返ってきたVT
IDに対応したカウンタをデクリメントする。カウンタ
が0になれば、はじめて該当するスレッドにそれを通知
してスリープ状態から実行状態に起こすことにより、実
行スレッドの切り換えをよりスムーズに行うことが可能
となる。図2にこの様子を示す。
【0029】図2(a)は従来の場合に相当するもので
あり、マスタプロセッサ(MP)11上で実行されてい
るスレッドはプロセッサエレメント(PE)へ2回コマ
ンドを発行したことで2回の応答を受けている。この例
ではコマンドを発行したときにスレッドをスリープさ
せ、応答があったときコマンドを再び起こしているが、
これは割り込みであったり、スリープの代わりにビジー
ウェイトであっても構わない。
【0030】図2(b)は本実施形態の場合であり、マ
スタプロセッサ(MP)11上で実行されているスレッ
ドからプロセッサエレメント(PE)に最初にコマンド
をなげた時点でカウンタの値が1になる。その後、2個
目のコマンドをプロセッサエレメント(PE)に投げて
このスレッドをスリープさせる。この時、カウンタの値
は2になっている。その後、プロセッサエレメント(P
E)より最初のコマンドに対する応答が返ってきてカウ
ンタの値は1になる。最後にプロセッサエレメント(P
E)より2個目のコマンドに対応する応答が返ってきて
カウンタの値が0になり、スリープしていたスレッドを
起こす。
【0031】あるスレッドがスリープしている間は他の
スレッドがマスタプロセッサ(MP)11上で実行され
るので、一連の処理に必要な幾つかのコマンド処理待ち
の間にマスタプロセッサ(MP)11は他の処理を行う
ことができる。コマンドをいくつ発生してからスリープ
するかについては各スレッドの記述によって決まる。
【0032】以上のようにカウンタという簡単なハード
ウェアを設けることにより、マスタプロセッサ(MP)
11上のスレッドをスリープさせたり再び起こしたりす
るオーバーヘッドが削減される。もちろん、割り込み
や、ビジーウェイトなどを使った場合も同様にオーバー
ヘッドは削減される。
【0033】このような仕組みを実現するためのハード
ウェアは以下の図3のような構成が考えられる。
【0034】図3ではマスタプロセッサ(MP)11と
それにつながるバス10を示している。マスタプロセッ
サ(MP)11は図示のようにプロセッサモジュール2
01、バスコントローラ202、およびカウンタアレイ
203を備えている。このカウンタアレイ203は図1
のカウンタアレイ111と同じものである。
【0035】プロセッサモジュール201からコマンド
を発行するとき、コマンドは発行元のスレッドのVTI
Dと共にバスコントローラ202に送られる。また、プ
ロセッサモジュール201からカウンタアレイ203に
はVTIDが与えられる。カウンタアレイ203ではV
TIDに対応したカウンタをインクリメントする。一
方、バス10を介してVTIDとともに応答が返ってく
ると、カウンタアレイ203の対応するカウンタをデク
リメントする。カウンタが0になった場合はプロセッサ
モジュール201への通知が行われ、該当するVTID
のスレッドが起こされ、すべての発行済みのコマンドに
対して応答が返ってきたスレッドに対してコマンド処理
の完了が通知される。
【0036】次に、図4および図5のフローチャートを
参照して、マスタプロセッサ(MP)11上で実行され
る各スレッドの動作と、各スレッドからのコマンドで制
御されるDMAコントローラおよびプロセッサエレメン
トの動作について説明する。
【0037】図4は、マスタプロセッサ(MP)11上
で実行される各スレッドの動作を示している。まず、ス
レッドはDMAコントローラ15−1,15−2やプロ
セッサエレメント(PE)12−1,12−2に対し
て、VTIDとコマンドの組をN個順次発行する(ステ
ップS101)。この後、スレッドは、対応するVTI
DのカウンタをNにセットした後(ステップS10
2)、スリープ状態に移行される(ステップS10
3)。そして、カウンタアレイ203から通知が来る
と、カウンタ値が0になったカウンタに対応するVTI
Dのスレッドがスリープ状態から起こされ(ステップS
104)、その起こされたスレッドによる処理が続行さ
れる。
【0038】図5は、DMAコントローラ15−1,1
5−2およびプロセッサエレメント(PE)12−1,
12−2の動作を示している。
【0039】DMAコントローラまたはプロセッサエレ
メントでマスタプロセッサ(MP)11からのコマンド
が受け付けられると(ステップS111)、まずそのコ
マンドに対応するVTIDがセーブされた後(ステップ
S112)、コマンド処理が実行される(ステップS1
13)。このコマンド処理では、DMAコントローラ1
5−1,15−2の場合にはコマンドで指定されたDM
A転送が実行され、プロセッサエレメントの場合にはコ
マンドで指定されたプログラム実行処理が行われること
になる。
【0040】コマンド処理が終了すると、そのコマンド
を実行したDMAコントローラまたはプロセッサエレメ
ントは、そのコマンドに対する応答として、セーブして
おいたVTIDと共にコマンド完了通知をマスタプロセ
ッサ(MP)11に発行する(ステップS114)。
【0041】以上のように、本マルチプロセッサシステ
ムによれば、スレッドごとの識別子VTIDとマスタプ
ロセッサ(MP)11に設けたVTIDごとのカウンタ
によって発行済みで応答のないコマンド数をスレッドご
とに管理し、発行済みのコマンド処理がすべて終わった
ときにマスタプロセッサ(MP)11にそれを通知して
スレッド間切り換えなどのトリガとなるインタラクショ
ンを起こすことで、マスタプロセッサ(MP)11を効
果的に使用することができる。
【0042】なお、本実施形態の仕組みを用いることに
より、マスタプロセッサ(MP)11上のプログラムが
シングルスレッドで動作している場合であっても割り込
み処理等の回数を減らすことが可能となり、マスタプロ
セッサ(MP)11の負荷を低減することができる。
【0043】[実施形態2]次に、本発明の第2実施形
態として、DMA及び各PEの制御に関する具体的な手
順およびローカルメモリ管理のための仕組みについて説
明する。図6には、本第2実施形態のマルチプロセッサ
システムの構成が示されている。本マルチプロセッサシ
ステムでは、ローカルメモリを管理するためのテーブル
を設け、どのVTIDに対応したプログラムやデータが
ローカルメモリに入っているかを管理する。これにより
上述の第1実施形態の効果に加え、扱うデータの不整合
に関する問題を解消することができる。また、DMAコ
ントローラやプロセッサエレメントは、対応するローカ
ルメモリの管理テーブルを参照することにより、コマン
ドのプール中より実行可能なものを特定できるので、実
行可能なコマンドから順に正しく実行することが可能と
なる。以下、具体的に説明する。
【0044】図6に示されているように、DMAコント
ローラ15−1には、プロセッサエレメント(PE)1
2−1のローカルメモリを管理する管理テーブルとして
PLS管理テーブル301とDLS管理テーブル302
が設けられている。
【0045】PLS管理テーブル301はプログラムロ
ーカルメモリ(PLS)13−1の記憶領域毎にどのス
レッドに対応するプログラムが格納されているかを管理
し、またDLS管理テーブル302はデータローカルメ
モリ(DLS)14−1の記憶領域毎にどのスレッドに
対応するデータが格納されているかを管理する。
【0046】また、DMAコントローラ15−1に設け
られたPLSコマンドテーブル303およびDLSコマ
ンドテーブル304は図1のコマンドプーリングバッフ
ァ151に相当するものであり、PLSコマンドテーブ
ル303にはプログラムローカルメモリ(PLS)13
−1とグローバルメモリ(GM)17との間のDMA転
送に関するコマンドが蓄積され、またDLSコマンドテ
ーブル304にはデータローカルメモリ(DLS)14
−1とグローバルメモリ(GM)17との間のDMA転
送に関するコマンドが蓄積される。
【0047】プロセッサエレメント(PE)12−1に
設けられたPEコマンドテーブル305は、図1のコマ
ンドプーリングバッファ121に相当し、ここにはプロ
セッサエレメント(PE)12−1に対するコマンドが
蓄積される。
【0048】同様に、DMAコントローラ15−2に
も、プロセッサエレメント(PE)12−2のローカル
メモリを管理する管理テーブルとしてPLS管理テーブ
ル401とDLS管理テーブル402が設けられてい
る。PLS管理テーブル401はプログラムローカルメ
モリ(PLS)13−2の記憶領域毎にどのスレッドに
対応するプログラムが格納されているかを管理し、また
DLS管理テーブル402はデータローカルメモリ(D
LS)14−2の記憶領域毎にどのスレッドに対応する
データが格納されているかを管理する。また、DMAコ
ントローラ15−2に設けられたPLSコマンドテーブ
ル403およびDLSコマンドテーブル404は図1の
コマンドプーリングバッファ151に相当するものであ
り、PLSコマンドテーブル403にはプログラムロー
カルメモリ(PLS)13−2とグローバルメモリ(G
M)17との間のDMA転送に関するコマンドが蓄積さ
れ、またDLSコマンドテーブル404にはデータロー
カルメモリ(DLS)14−2とグローバルメモリ(G
M)17との間のDMA転送に関するコマンドが蓄積さ
れる。プロセッサエレメント(PE)12−2に設けら
れたPEコマンドテーブル405は、図1のコマンドプ
ーリングバッファ121に相当し、ここにはプロセッサ
エレメント(PE)12−2に対するコマンドが蓄積さ
れる。
【0049】なお、DMAコントローラは必ずしも2つ
設ける必要はなく、図7に示すように一個のDMAコン
トローラ15のみをバス10に接続し、そのDMAコン
トローラ15によってプロセッサエレメント(PE)1
2−1,12−2それぞれのローカルメモリとグローバ
ルメモリ(GM)17との間のDMA転送を行うように
しても良い。これは第1実施形態についても同様であ
る。
【0050】また、一個のDMAコントローラ15のみ
を使用する場合には、プロセッサエレメント(PE)1
2−1側に対応するPLS管理テーブル301、DLS
管理テーブル302、PLSコマンドテーブル303、
DLSコマンドテーブル304と、プロセッサエレメン
ト(PE)12−2側に対応するPLS管理テーブル4
01、DLS管理テーブル402、PLSコマンドテー
ブル403、DLSコマンドテーブル404が全てDM
Aコントローラ15に設けられることになる。また、P
Eコマンドテーブル305,405の実際の実装位置に
ついても必ずしもプロセッサエレメント(PE)12−
1,12−2にする必要はなく、DMAコントローラ1
5に設けても良い。第1実施形態についても同様であ
る。
【0051】次に、各テーブルの具体的な構成について
説明する。本第2実施形態では、複数のスレッドが同じ
プロセッサエレメント(PE)およびそのローカルメモ
リPLS,DLSを使用しながら並列動作することを前
提としている。その為に、プロセッサエレメント(P
E)12−1のプログラムローカルメモリ(PLS)1
3−1およびデータローカルメモリ(DLS)14−1
についてはそれぞれPLS管理テーブル301およびD
LS管理テーブル302によってその使用領域をスレッ
ド毎に管理し、またプロセッサエレメント(PE)12
−2のプログラムローカルメモリ(PLS)13−2お
よびデータローカルメモリ(DLS)14−2について
はそれぞれPLS管理テーブル401およびDLS管理
テーブル402によってその使用領域をスレッド毎に管
理している。
【0052】これらテーブルの構造はプロセッサエレメ
ント(PE)12−1,12−2のどちらについても同
じであるので、以下ではプロセッサエレメント(PE)
12−1および12−2について共通に説明することに
する。
【0053】PLS管理テーブルとDLS管理テーブル
はハードウェア簡単化のため、ページ単位で管理され
る。例えば、ページサイズが4KbyteでPLS,D
LSのサイズがそれぞれ64Kbyteであれば、それ
ぞれ16ページとして管理されることになる。この場
合、PLS管理テーブルはページに対応する16のエン
トリを持ち、それぞれのエントリがそのページに入って
いるプログラムのVTIDを示すことになる。図8にP
LS管理テーブルの例を示す。
【0054】図8では、ページ1,2,3にVTID4
4のプログラムが入っていてその他のページは使われて
いない様子が示されている。
【0055】次に各プロセッサエレメント(PE)で処
理されるデータまたは処理された結果のデータが入るD
LSを管理するためのDLS管理テーブルについて説明
する。図9はDLS管理テーブルの例である。
【0056】図9(a)ではページ0,1はVTID4
4のデータが入っている(Dは処理されるべきデータが
入っていることを示す)。またページ2,3はVTID
44のために領域が予約されていることを示している
(Rは予約されている領域であることを示す)。領域の
予約は、対応するプロセッサエレメント(PE)がこの
領域を処理結果データの書き込みのために使用すること
を示している。予約されたページはプロセッサエレメン
ト(PE)がデータを書き込むとさらにDの部分にビッ
トが立ち図9(b)のようになる。
【0057】次に、PLSコマンドテーブルの構成を図
10に示す。PLSコマンドテーブルはグローバルメモ
リ(GM)17よりプログラムローカルメモリ(PL
S)に転送するDMAのコマンドを入れておくテーブル
である。マスタプロセッサ(MP)11は、プロセッサ
エレメント(PE)に実行させるプログラムをグローバ
ルメモリ(GM)17より制御対象のプロセッサエレメ
ント(PE)のプログラムローカルメモリ(PLS)に
転送するためにこのテーブルにDMAのコマンドを登録
する。
【0058】図10では、PLSコマンドテーブルに二
つのエントリが存在している、一つはVTID44でグ
ローバルメモリ(GM)17のアドレス0×12000
0からプログラムローカルメモリ(PLS)のページ
0,1,2に転送するコマンド、もう一つは、VTID
50でグローバルメモリ(GM)17のアドレス0×1
40000からプログラムローカルメモリ(PLS)の
ページ14,15に転送するコマンドである。PLSコ
マンドテーブルの内容はPLS管理テーブルと比較さ
れ、転送先ページが空いている場合にはそのエントリに
入っているコマンドのDMAが実行され、DMAが実行
されるとそのエントリは消去される。複数のエントリが
DMA実行可能であるときは先入れ先出しし方式で実行
される。エントリの数にはハードウェア的な制約がある
のでエントリがいっぱいのときはマスタプロセッサ(M
P)11のコマンド発行元のスレッドがスリープする
か、エントリが空くまで待つなどの処理を行う。
【0059】PLSコマンドに対するDMAコントロー
ラの処理手順を図11に示す。DMAコントローラは、
まず、PLSコマンドテーブルからコマンドを取得し
(ステップS121)、そのコマンドで指定される転送
先ページがプログラムローカルメモリ(PLS)上で空
いているか否かをPLS管理テーブルを参照して判断す
る(ステップS122)。空いていない場合には、次の
コマンドエントリに対する処理が行われる。一方、空い
ている場合には、DMAコントローラはその取得したコ
マンドの処理、つまりグローバルメモリ(GM)17か
らプログラムローカルメモリ(PLS)へのプログラム
のDMA転送、を実行する(ステップS123)。次い
で、DMAコントローラは、PLS管理テーブルの該当
エントリにDのフラグをセットしてその内容を更新し
(ステップS124)、そしてPLSコマンドテーブル
から該当するコマンドエントリの内容を削除した後に
(ステップS125)、実行したコマンドに対応するV
TIDと共にコマンド完了通知をマスタプロセッサ(M
P)11に発行する(ステップS126)。
【0060】このようにして、DMAコントローラは、
PLSコマンドテーブルに蓄積されている複数のコマン
ドを、実行可能なものから順次実行する。
【0061】次にDLSコマンドテーブルの構成を図1
2に示す。DLSコマンドテーブルはグローバルメモリ
(GM)17よりデータローカルメモリ(DLS)にデ
ータを転送するDMAのコマンドおよびデータローカル
メモリ(DLS)からグローバルメモリ(GM)17に
データを転送するコマンドを、マスタプロセッサ(M
P)11より受け取っていれておくためのテーブルであ
る。
【0062】図12ではDLSコマンドテーブルに二つ
のエントリがある。一つはVTID44でグローバルメ
モリ(GM)17のアドレス0×20000からデータ
ローカルメモリ(DLS)へ転送することを示してい
る。方向フィールドはDMA転送の方向を示す。「D」
がグローバルメモリ(GM)17からデータローカルメ
モリ(DLS)への転送、「G」がデータローカルメモ
リ(DLS)よりグローバルメモリ(GM)17への転
送を示している。また、転送ページのフィールドにおけ
る「D」はデータが転送される領域を、「R」はプロセ
ッサエレメント(PE)による処理結果データの書き込
みに使用すべき予約領域を示している。例ではページ
0,1にGMよりデータが転送され、ページ2,3は書
き込みのために予約されている。
【0063】二つ目のエントリにはPEにより書き込ま
れた処理結果データをグローバルメモリ(GM)17へ
転送するためのコマンドが入っている。同じVTID4
4のスレッドで扱われるのでVTIDは44である。グ
ローバルメモリ(GM)17のアドレスは0×4000
0で今度は転送の方向は「G」となり、データローカル
メモリ(DLS)よりグローバルメモリ(GM)17へ
の転送を示している。転送ページのフィールドではペー
ジ2,3が転送されることを示している。
【0064】PLSコマンドテーブルと同様に、エント
リの数にはハードウェア的な制約があるのでエントリが
いっぱいのときはマルチプロセッサ(MP)のコマンド
発行元のスレッドがスリープするか、エントリが空くま
で待つなどの処理を行う。DLSコマンドテーブルから
DMAコマンドが実行されるのは、次のような条件にな
る。
【0065】(1)方向フィールドがDの時: 転送ペ
ージで示すDおよびRがDLS管理テーブルで空いてお
り、かつPLS管理テーブルに同じVTIDが存在する
時。つまり、DMAを実行した後、プロセッサエレメン
ト(PE)が処理するプログラムがすでにプログラムロ
ーカルメモリ(PLS)に入っていて、しかもデータを
入れたり出したりするデータローカルメモリ(DLS)
の領域が他のスレッドとぶつからないことを保障してい
る。
【0066】(2)方向フィールドがGのとき: 転送
ページで示すDにDLS管理テーブルのDにビットがた
っており、またVTIDが一致していること。すなわち
VTIDで示すスレッドのプロセッサエレメント(P
E)の処理が終わってデータがすでにデータローカルメ
モリ(DLS)に書き込まれてグローバルメモリ(G
M)17に転送すべきデータが揃ったことを保障してい
る。
【0067】DLSコマンドテーブルは同じVTIDに
対しては先入れ先出しで処理されるが、違うVTIDで
の順序は保障する必要はない。
【0068】DLSコマンドに対するDMAコントロー
ラの処理手順を図13に示す。DMAコントローラは、
まず、DLSコマンドテーブルからコマンドを取得し
(ステップS131)、そのコマンドで指定される方向
フィールドをチェックする(ステップS132)。方向
フィールドがD、つまりデータローカルメモリ(DL
S)への転送を示すコマンドであれば、DMAコントロ
ーラは、その取得したコマンドで指定されるD,Rの転
送先ページがデータローカルメモリ(DLS)上で空い
ているか否かをDLS管理テーブルを参照して判断する
(ステップS133)。空いている場合には、さらに、
取得したコマンドのVTIDと同じVTIDを持つプロ
グラムがプログラムローカルメモリ(PLS)に既に存
在しているか否かをPLS管理テーブルを参照して判断
する(ステップS134)。同じVTIDを持つプログ
ラムがプログラムローカルメモリ(PLS)に存在して
いる場合には、上述の(1)の条件が満たされているの
で、DMAコントローラは取得したコマンドの処理、つ
まりグローバルメモリ(GM)17からデータローカル
メモリ(DLS)へのデータのDMA転送、を実行する
(ステップS135)。次いで、DMAコントローラ
は、DLS管理テーブルの該当エントリにD,Rのフラ
グをセットしてその内容を更新し(ステップS13
6)、そしてDLSコマンドテーブルから該当するコマ
ンドエントリの内容を削除した後に(ステップS13
7)、実行したコマンドに対応するVTIDと共にコマ
ンド完了通知をマスタプロセッサ(MP)11に発行す
る(ステップS138)。
【0069】上述の(1)の条件が満たされていない場
合、つまり、取得したコマンドで指定されるD,Rの転
送先ページが空いていない場合や、空いていても同じV
TIDのプログラムが存在しない場合には、コマンド処
理は行われず、次のコマンドエントリに対する処理が行
われる。
【0070】一方、取得したコマンドで指定される方向
フィールドがG、つまりグローバルメモリ(GM)17
への転送を示すコマンドであれば、DMAコントローラ
は、その取得したコマンドのDの転送ページで指定され
るデータローカルメモリ(DLS)上の位置にデータが
既に存在するか否かをDLS管理テーブルを参照して判
断する(ステップS139)。存在する場合には、その
データに対応するVTIDTが取得したコマンドのVT
IDTと一致しているかどうかが判断される(ステップ
S140)。VTIDが一致する場合には、上述の
(2)の条件が満たされているので、DMAコントロー
ラは取得したコマンドの処理、つまりデータローカルメ
モリ(DLS)からグローバルメモリ(GM)17への
データのDMA転送、を実行する(ステップS14
1)。次いで、DMAコントローラは、DLS管理テー
ブルの該当エントリのDフラグをリセットしてその内容
を更新し(ステップS142)、そしてDLSコマンド
テーブルから該当するコマンドエントリの内容を削除し
た後に(ステップS143)、実行したコマンドに対応
するVTIDと共にコマンド完了通知をマスタプロセッ
サ(MP)11に発行する(ステップS144)。
【0071】上述の(2)の条件が満たされていない場
合、つまり、取得したコマンドで指定されるDの転送ペ
ージが存在しない場合や、存在してもVTIDが異なる
場合には、コマンド処理は行われず、次のコマンドエン
トリに対する処理が行われる。
【0072】このようにして、DMAコントローラは、
DLSコマンドテーブルに蓄積されている複数のコマン
ドを、実行可能なものから順次実行する。
【0073】以上で述べたような構造は、DMAコント
ローラ内にあり、ステートマシンで管理更新されてい
る。
【0074】次にPEコマンドテーブルの構成を図14
に示す。PEコマンドテーブルはマスタプロセッサ(M
P)11からプロセッサエレメント(PE)へのコマン
ドを入れておくためのテーブルである。
【0075】図14では1番目のエントリがVTID4
4で開始ページは0。これはプロセッサエレメント(P
E)がプログラムの実行を始めるべきプログラムローカ
ルメモリ(PLS)上のページがかかれている。使用ペ
ージフィールドはプログラムローカルメモリ(PLS)
上のページ毎にデータローカルメモリ(DLS)上のど
のページのデータを使うかが示されている。例では0と
1ページのデータを使うことが示されている。PEコマ
ンドテーブル内のコマンドが実際に実行されるのはPE
コマンドテーブルにある使用ページがDLS管理テーブ
ルのDで示されているページと一致し、且つVTIDが
一致する場合である。すなわち、プロセッサエレメント
(PE)で実行するデータがデータローカルメモリ(D
LS)に揃っていることを意味する。データローカルメ
モリ(DLS)にプロセッサエレメント(PE)で使用
するデータが揃っているということはすでにプログラム
ローカルメモリ(PLS)には対応するプログラムが用
意されているということなのですぐに実行が始められ
る。プロセッサエレメント(PE)で実行が終了したら
PEコマンドテーブルから対応するコマンドを消し、D
LS管理テーブルを更新する(RのところにDも立て
る)。また、このVTIDではプログラムローカルメモ
リ(PLS)に入れたプログラムを必要としないのであ
れば、対応するPLS管理テーブルも更新する。必要と
するかどうかはプログラム中で明示的に指定するものと
する。
【0076】PEコマンドテーブルは同じVTIDに対
しては先入れ先出し方式で処理されるが、違うVTID
での順序は保障する必要はない。DLSコマンドテーブ
ルは同じVTIDに対しては先入れ先出し方式で処理さ
れるが、違うVTIDでの順序は保障する必要はない。
【0077】PEコマンドに対するプロセッサエレメン
ト(PE)の処理手順を図15に示す。プロセッサエレ
メント(PE)は、まず、PEコマンドテーブルからコ
マンドを取得し(ステップS151)、そのコマンドで
指定される使用ページがデータローカルメモリ(DL
S)に存在しているか否かをDLS管理テーブルを参照
して判断する(ステップS152)。存在する場合に
は、そのデータのVTIDが取得したコマンドのVTI
Dに一致するかどうかが判断される(ステップS15
3)。一致するならば、プロセッサエレメント(PE)
は、取得したコマンドで指定される処理、つまりプログ
ラムローカルメモリ(PLS)のプログラムの実行処理
を行う(ステップS154)。このプログラム実行によ
り処理されたデータは該当するデータローカルメモリ
(DLS)上の位置に格納され、DLS管理テーブルの
更新が行われる(RのところにDも立てる)。そして、
実行したコマンドに対応するVTIDと共にコマンド完
了通知をマスタプロセッサ(MP)11に発行する(ス
テップS155)。
【0078】このようにして、プロセッサエレメント
(PE)は、PEコマンドテーブルに蓄積されている複
数のコマンドを、実行可能なものから順次実行する。
【0079】図16には、DMAコントローラおよびプ
ロセッサエレメント(PE)と各テーブルとの関係が示
されている。ここでは、プロセッサエレメント(PE)
12−1側に着目して説明するが、プロセッサエレメン
ト(PE)12−2側についても同様である。
【0080】図16で示すように、マスタプロセッサ
(MP)よりPLSコマンドテーブル303、DLSコ
マンドテーブル304、PEコマンドテーブル305に
コマンドが登録され、DMAコントローラ15−1およ
びプロセッサエレメント(PE)12−1によるコマン
ドの実行に応じてPLS管理テーブル301およびDL
S管理テーブル302が更新される。PLS管理テーブ
ル301およびDLS管理テーブル302がローカルメ
モリの管理を適切に行っているため、実行中のデータが
他のスレッドにより書き換えられたりすることはないよ
うに制御される。
【0081】また、プロセッサエレメント(PE)12
−1に関しては、処理すべきデータが存在する時だけ対
応するプログラムが動作するようになっている。すなわ
ち、本発明によってDMAとプロセッサエレメント(P
E)の処理の依存関係が適切に表現されており、マスタ
プロセッサ(MP)の介在無しに、DMAとプロセッサ
エレメント(PE)を正しい順序関係で動作させること
ができ、マスタプロセッサ(MP)への負荷を減らすこ
とができる。さらに、複数のスレッドが資源を共有する
ことによって、例えばDMA転送によって処理データを
ローカルメモリに用意している間にプロセッサエレメン
ト(PE)を他のスレッドによるプログラム処理で使う
などの効率的な動作が可能になる。この方法は、ローカ
ルメモリをダブルバッファの構造にし、一つのスレッド
に片方のバッファの処理をもう一つのスレッドにもう一
方のバッファの処理を行わせることで特に有効になる。
【0082】図17には、本マルチプロセッサシステム
全体の動作の様子が模式的に示されている。
【0083】マスタプロセッサ(MP)上で実行される
あるスレッドは、まず、そのスレッドのVTID(ここ
ではVTID=1)と一緒にプロセッサエレメントPE
#1に対応するPEテーブルにコマンド(PEコマン
ド)を登録する。次いで、そのスレッドは、プロセッサ
エレメントPE#1に実行させるべきプログラムをデー
タローカルメモリ(DLS)に全て転送するのに必要な
幾つかのコマンド(PLSコマンド)をVTID(ここ
ではVTID=1)と一緒にPLSコマンドテーブルに
登録する。この後、そのスレッドは、プロセッサエレメ
ントPE#1に処理させるべきデータをデータローカル
メモリ(DLS)に全て転送するのに必要な幾つかのコ
マンド(DLSコマンド 方向D)をVTID(ここで
はVTID=1)と一緒にDLSコマンドテーブルに登
録し、また処理結果データをグローバルメモリ(GM)
に全て転送させるために必要な幾つかのコマンド(DL
Sコマンド 方向G)をVTID(ここではVTID=
1)と一緒にDLSコマンドテーブルに登録する。これ
で、スレッドはコマンド処理待ちとなり、スリープ状態
に移行し、他のスレッドがマスタプロセッサ(MP)上
で実行される。もちろん、一連のコマンド登録が途中で
きなくなった場合には、その時点でスレッドの切り換え
を行っても良い。
【0084】DMAコントローラ#1によりプログラム
ローカルメモリ(PLS)へのプログラムのDMA転
送、およびデータローカルメモリ(DLS)への処理対
象データのDMA転送が行われると、プロセッサエレメ
ントPE#1によるPEコマンドの処理が可能となり、
PLS上のプログラムがプロセッサエレメントPE#1
によって実行され、処理結果データがDLSに書き込ま
れる。これにより、DMAコントローラ#1によるコマ
ンド(DLSコマンド 方向G)の処理が可能となり、
処理結果データがグローバルメモリにDMA転送され
る。この時点で、VTID=1に関する未応答のコマン
ドが無くなり、VTID=1のスレッドが再び起こされ
る。
【0085】以上のように、本プロセッサシステムによ
れば、ローカルメモリの各記憶領域毎にどのスレッドに
対応するプログラムまたはデータが格納されているかを
管理することにより、扱うデータの不整合に関する問題
を解消することができる。さらに、DMAコントローラ
および各プロセッサエレメント(PE)は、それぞれ対
応するコマンド蓄積用バッファに蓄積されている各スレ
ッドからのコマンドの中で、実行可能なコマンドを特定
できるので、実行可能なコマンドから順に正しく実行す
ることが可能となり、DMAコントローラおよび各プロ
セッサエレメント(PE)の空き時間を減らすことが可
能となる。
【0086】なお、ここでは本システムを第1実施形態
と第2実施形態に分けて説明したが、各実施形態の機能
は適宜組み合わせて使用することができる。また、マス
タプロセッサ(MP)によって実行されるプログラムは
マルチスレッド型のものであることが最も好ましいが、
並列実行可能な複数のプログラム実行単位の各々が、必
要な演算処理などをプロセッサエレメントを用いて実行
する構成であればよい。さらに、スレッド切り換えなど
の機能はマスタプロセッサ(MP)上で実行されるオペ
レーティングシステムのカーネルに組み込んだり、或い
は専用のプログラムを用いてスレッド切り換えの機能を
実現してもよい。
【0087】また、本発明は、上記各実施形態に限定さ
れるものではなく、実施段階ではその要旨を逸脱しない
範囲で種々に変形することが可能である。更に、上記実
施形態には種々の段階の発明が含まれており、開示され
る複数の構成要件における適宜な組み合わせにより種々
の発明が抽出され得る。例えば、実施形態に示される全
構成要件から幾つかの構成要件が削除されても、発明が
解決しようとする課題の欄で述べた課題の少なくとも1
つが解決でき、発明の効果の欄で述べられている効果が
得られる場合には、この構成要件が削除された構成が発
明として抽出され得る。
【0088】
【発明の効果】以上詳述した如く本発明によれば、マス
タプロセッサの負荷の増大や、扱うデータの不整合に関
する問題を招くことなく、空いているプロセッサエレメ
ントの時間を減らしてスループットの向上を図ることが
可能となる。
【図面の簡単な説明】
【図1】本発明の第1実施形態に係るマルチプロセッサ
システムの構成を示すブロック図。
【図2】同実施形態における未応答コマンド数に応じた
スレッドの状態遷移制御を説明するための図。
【図3】同実施形態におけるマスタプロセッサの構成を
示すブロック図。
【図4】同実施形態におけるマスタプロセッサ上で実行
されるスレッドの動作を示すフローチャート。
【図5】同実施形態におけるDMAコントローラおよび
プロセッサエレメントの動作を示すフローチャート。
【図6】本発明の第2実施形態に係るマルチプロセッサ
システムの構成を示すブロック図。
【図7】同実施形態のマルチプロセッサシステムの他の
構成例を示すブロック図。
【図8】同実施形態におけるPLS管理テーブルの構成
を示す図。
【図9】同実施形態におけるDLS管理テーブルの構成
を示す図。
【図10】同実施形態におけるPLSコマンドテーブル
の構成を示す図。
【図11】同実施形態におけるPLSコマンドに対する
DMAコントローラの処理手順を示すフローチャート。
【図12】同実施形態におけるDLSコマンドテーブル
の構成を示す図。
【図13】同実施形態におけるDLSコマンドに対する
DMAコントローラの処理手順を示すフローチャート。
【図14】同実施形態におけるPEコマンドテーブルの
構成を示す図。
【図15】同実施形態におけるPEコマンドに対するプ
ロセッサエレメントの処理手順を示すフローチャート。
【図16】同実施形態におけるDMAコントローラおよ
びプロセッサエレメントと各テーブルとの関係を示す
図。
【図17】同実施形態におけるマルチプロセッサシステ
ム全体の動作の様子を模式的に示す図。
【符号の説明】
10…バス 11…マスタプロセッサ(MP) 12−1,12−2…プロセッサエレメント(PE) 13−1,13−2…プログラムローカルメモリ(PL
S) 14−1,14−2…データローカルメモリ(DLS) 15−1,15−2…DMAコントローラ 16…メモリコントローラ 17…グローバルメモリ(GM) 111…カウンタアレイ 121,151…コマンドプーリングバッファ 201…プロセッサモジュール 202…バスコントローラ 203…カウンタアレイ 301,401…PLS管理テーブル 302,402…DLS管理テーブル 303,403…PLSコマンドテーブル 304,404…DLSコマンドテーブル 305,405…PEコマンドテーブル
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5B045 BB48 BB54 DD01 GG06 5B061 DD12 GG16 PP05 QQ01 5B098 AA03 AA10 GA05 GB01 GB13 GC16 GD03 GD12 GD14

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 マスタプロセッサと、ローカルメモリを
    各々が有し前記マスタプロセッサからのコマンドに従っ
    てそれぞれ制御される複数のプロセッサエレメントと、
    前記複数のプロセッサエレメントに共有されるグローバ
    ルメモリとを具備するマルチプロセッサシステムにおい
    て、 前記マスタプロセッサからのコマンドに従って、前記グ
    ローバルメモリと前記各プロセッサエレメントのローカ
    ルメモリとの間のDMA転送を行うDMA実行手段と、 前記マスタプロセッサが各コマンドに対する応答を待つ
    ことなく次のコマンドを発行できるように前記DMA実
    行手段および前記各プロセッサエレメントにそれぞれ対
    応して設けられたコマンド蓄積用バッファと、 発行済みで応答が返ってきてないコマンドの数を管理
    し、すべての発行済みのコマンドに対して応答が返って
    きたときにそれを前記マスタプロセッサに通知する未応
    答コマンド数管理手段とを具備することを特徴とするマ
    ルチプロセッサシステム。
  2. 【請求項2】 前記マスタプロセッサ上で並列実行され
    る複数のスレッドそれぞれに固有の識別子を用いて、前
    記各コマンドをその発行元のスレッドの識別子と共に前
    記マスタプロセッサから前記DMA実行手段または前記
    各プロセッサエレメントに発行する手段と、 前記発行されたコマンドに対応する応答を該当するスレ
    ッドの識別子と共に前記DMA実行手段または前記各プ
    ロセッサエレメントから前記マスタプロセッサに発行す
    る手段とをさらに具備し、 前記未応答コマンド数管理手段は発行済みで応答が返っ
    てきてないコマンドの数を前記スレッド毎に個々に管理
    し、すべての発行済みのコマンドに対して応答が返って
    きたスレッドに対してコマンド処理の完了を通知するよ
    うに構成されていることを特徴とする請求項1記載のマ
    ルチプロセッサシステム。
  3. 【請求項3】 マスタプロセッサと、ローカルメモリを
    各々が有し前記マスタプロセッサからのコマンドに従っ
    てそれぞれ制御される複数のプロセッサエレメントと、
    前記複数のプロセッサエレメントに共有されるグローバ
    ルメモリとを具備するマルチプロセッサシステムにおい
    て、 前記マスタプロセッサからのコマンドに従って、前記グ
    ローバルメモリと前記各プロセッサエレメントのローカ
    ルメモリとの間のDMA転送を行うDMA実行手段と、 前記マスタプロセッサが各コマンドに対する応答を待つ
    ことなく次のコマンドを発行できるように前記DMA実
    行手段および前記各プロセッサエレメントにそれぞれ対
    応して設けられたコマンド蓄積用バッファと、 発行済みで応答が返ってきてないコマンドの数を管理
    し、すべての発行済みのコマンドに対して応答が返って
    きたときにそれを前記マスタプロセッサに通知する手段
    と、 前記マスタプロセッサ上で並列実行される複数のスレッ
    ドそれぞれに固有の識別子を用いて、前記各コマンドを
    その発行元のスレッドの識別子と共に前記マスタプロセ
    ッサから前記DMA実行手段または前記各プロセッサエ
    レメントに発行する手段と、 前記発行されたコマンドに対応する応答を該当するスレ
    ッドの識別子と共に前記DMA実行手段または前記各プ
    ロセッサエレメントから前記マスタプロセッサに発行す
    る手段と、 前記複数のスレッドそれぞれの識別子を用いて、前記ロ
    ーカルメモリの各記憶領域毎にどのスレッドに対応する
    プログラムまたはデータが格納されているかを管理する
    管理テーブルとを具備し、 前記DMA実行手段および前記各プロセッサエレメント
    は、それぞれ対応するコマンド蓄積用バッファに蓄積さ
    れている前記各スレッドからのコマンドの中で、実行可
    能なコマンドを前記管理テーブルを参照して特定し、そ
    の特定したコマンドを実行することを特徴とするマルチ
    プロセッサシステム。
  4. 【請求項4】 前記各プロセッサエレメントは、前記管
    理テーブルを参照することにより、対応するコマンド蓄
    積用バッファに蓄積されている各スレッドからのコマン
    ドの中で、ローカルメモリ内に該当するスレッドの処理
    対象データが用意されたコマンドから順に処理を開始す
    ることを特徴とする請求項3記載のマルチプロセッサシ
    ステム。
  5. 【請求項5】 前記管理テーブルは、前記ローカルメモ
    リ内に前記プロセッサエレメントのコマンド処理で得ら
    れた処理結果のデータが用意されたか否かをスレッド毎
    に示す情報を含み、 前記DMA実行手段は、前記管理テーブルを参照するこ
    とにより、コマンド蓄積用バッファに蓄積されている前
    記各スレッドからのコマンドの中で、前記ローカルメモ
    リ内に該当するスレッドの処理結果のデータが用意され
    たコマンドから順に処理を開始して、前記ローカルメモ
    リから前記グローバルメモリへのDMA転送を行うこと
    を特徴とする請求項4記載のマルチプロセッサシステ
    ム。
  6. 【請求項6】 マスタプロセッサと、ローカルメモリを
    各々が有し前記マスタプロセッサからのコマンドに従っ
    てそれぞれ制御される複数のプロセッサエレメントと、
    前記複数のプロセッサエレメントに共有されるグローバ
    ルメモリとを具備するマルチプロセッサシステムの動作
    を制御するための制御方法であって、 前記マルチプロセッサシステムには、前記マスタプロセ
    ッサからのコマンドに従って、前記グローバルメモリと
    前記各プロセッサエレメントのローカルメモリとの間の
    DMA転送を行うDMA実行手段、及び前記DMA実行
    手段および前記各プロセッサエレメントにはそれぞれ前
    記マスタプロセッサが各コマンドに対する応答を待つこ
    となく次のコマンドを発行できるように複数のコマンド
    を蓄積可能なコマンド蓄積用バッファが設けられてお
    り、 前記マスタプロセッサから前記DMA実行手段および前
    記各プロセッサエレメントに対して、各コマンドに対す
    る応答を待つことなく次のコマンドを発行するステップ
    と、 発行済みで応答が返ってきてないコマンドの数を管理
    し、すべての発行済みのコマンドに対して応答が返って
    きたときにそれを前記マスタプロセッサに通知するステ
    ップとを具備することを特徴とするマルチプロセッサシ
    ステムの制御方法。
  7. 【請求項7】 マスタプロセッサと、ローカルメモリを
    各々が有し前記マスタプロセッサからのコマンドに従っ
    てそれぞれ制御される複数のプロセッサエレメントと、
    前記複数のプロセッサエレメントに共有されるグローバ
    ルメモリとを具備するマルチプロセッサシステムの動作
    を制御するための制御方法であって、 前記マルチプロセッサシステムには、前記マスタプロセ
    ッサからのコマンドに従って、前記グローバルメモリと
    前記各プロセッサエレメントのローカルメモリとの間の
    DMA転送を行うDMA実行手段、及び前記DMA実行
    手段および前記各プロセッサエレメントにはそれぞれ前
    記マスタプロセッサが各コマンドに対する応答を待つこ
    となく次のコマンドを発行できるように複数のコマンド
    を蓄積可能なコマンド蓄積用バッファが設けられてお
    り、 発行済みで応答が返ってきてないコマンドの数を管理
    し、すべての発行済みのコマンドに対して応答が返って
    きたときにそれを前記マスタプロセッサに通知するステ
    ップと、 前記マスタプロセッサ上で並列実行される複数のスレッ
    ドそれぞれに固有の識別子を用いて、前記各コマンドを
    その発行元のスレッドの識別子と共に前記マスタプロセ
    ッサから前記DMA実行手段または前記各プロセッサエ
    レメントに発行するステップと、 前記発行されたコマンドに対応する応答を該当するスレ
    ッドの識別子と共に前記DMA実行手段または前記各プ
    ロセッサエレメントから前記マスタプロセッサに発行す
    るステップと、 前記複数のスレッドそれぞれの識別子を用いて、前記ロ
    ーカルメモリの使用領域を管理テーブルによってスレッ
    ド毎に管理するステップとを具備し、 前記DMA実行手段および前記各プロセッサエレメント
    は、それぞれ対応するコマンド蓄積用バッファに蓄積さ
    れている前記各スレッドからのコマンドの中で、実行可
    能なコマンドを前記管理テーブルを参照して特定し、そ
    の特定したコマンドを実行することを特徴とするマルチ
    プロセッサシステムの制御方法。
JP2000356237A 2000-11-22 2000-11-22 マルチプロセッサシステムおよびその制御方法 Pending JP2002163239A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2000356237A JP2002163239A (ja) 2000-11-22 2000-11-22 マルチプロセッサシステムおよびその制御方法
US09/989,028 US6820187B2 (en) 2000-11-22 2001-11-21 Multiprocessor system and control method thereof
EP01309835A EP1209573A3 (en) 2000-11-22 2001-11-22 Multiprocessor system and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000356237A JP2002163239A (ja) 2000-11-22 2000-11-22 マルチプロセッサシステムおよびその制御方法

Publications (1)

Publication Number Publication Date
JP2002163239A true JP2002163239A (ja) 2002-06-07

Family

ID=18828521

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000356237A Pending JP2002163239A (ja) 2000-11-22 2000-11-22 マルチプロセッサシステムおよびその制御方法

Country Status (3)

Country Link
US (1) US6820187B2 (ja)
EP (1) EP1209573A3 (ja)
JP (1) JP2002163239A (ja)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007122741A (ja) * 2003-05-22 2007-05-17 Internatl Business Mach Corp <Ibm> 非対称型異種マルチプロセッサ環境でアトミック更新プリミティブを提供するための方法
JP2009217845A (ja) * 2004-11-12 2009-09-24 Sony Computer Entertainment Inc セキュアなデータ処理とデータ伝送とを行う方法および装置
JP2009259209A (ja) * 2008-03-28 2009-11-05 Fujitsu Ltd データ通信制御装置、データ通信制御方法およびそのためのプログラム
US7627697B2 (en) 2004-01-16 2009-12-01 Kabushiki Kaisha Toshiba Device using multiple DMA controllers for transferring data between a storage device and multiple processing units
US7698473B2 (en) 2005-01-05 2010-04-13 Sony Computer Entertainment Inc. Methods and apparatus for list transfers using DMA transfers in a multi-processor system
US7849235B2 (en) 2005-04-01 2010-12-07 Fujitsu Limited DMA controller, node, data transfer control method and storage medium
EP2518628A1 (en) 2011-04-27 2012-10-31 Fujitsu Limited Processing device, controlling unit, and method for processing
WO2013031130A1 (ja) * 2011-09-01 2013-03-07 パナソニック株式会社 情報処理装置、そのアクセス制御方法及び集積回路
KR20160093621A (ko) * 2013-12-03 2016-08-08 로베르트 보쉬 게엠베하 자동차용 제어 장치
JP2016535337A (ja) * 2013-11-05 2016-11-10 オラクル・インターナショナル・コーポレイション ネットワーク環境における効率的なパケット処理モデルおよびパケット処理のための最適化されたバッファ利用をサポートするためのシステムおよび方法
JP2017107423A (ja) * 2015-12-10 2017-06-15 株式会社デンソー 情報処理装置
WO2018138975A1 (ja) * 2017-01-26 2018-08-02 ソニーセミコンダクタソリューションズ株式会社 演算処理装置および情報処理システム
JP2021503113A (ja) * 2017-10-31 2021-02-04 アビニシオ テクノロジー エルエルシー 状態更新の一貫性に基づきコンピュータクラスタを管理すること

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4027189B2 (ja) * 2002-09-05 2007-12-26 キヤノン株式会社 情報処理システム、情報処理装置、情報処理方法、プログラム及び記憶媒体
JP2004171209A (ja) * 2002-11-19 2004-06-17 Matsushita Electric Ind Co Ltd 共有メモリデータ転送装置
JP4100256B2 (ja) * 2003-05-29 2008-06-11 株式会社日立製作所 通信方法および情報処理装置
JP4028444B2 (ja) * 2003-06-27 2007-12-26 株式会社東芝 スケジューリング方法およびリアルタイム処理システム
JP3892829B2 (ja) * 2003-06-27 2007-03-14 株式会社東芝 情報処理システムおよびメモリ管理方法
JP2005056067A (ja) * 2003-08-01 2005-03-03 Matsushita Electric Ind Co Ltd Dma転送制御装置
US20060026308A1 (en) * 2004-07-29 2006-02-02 International Business Machines Corporation DMAC issue mechanism via streaming ID method
US7613886B2 (en) 2005-02-08 2009-11-03 Sony Computer Entertainment Inc. Methods and apparatus for synchronizing data access to a local memory in a multi-processor system
KR100736902B1 (ko) * 2005-06-23 2007-07-10 엠텍비젼 주식회사 복수의 프로세서에 의한 메모리 공유 방법 및 장치
US7613902B1 (en) * 2005-09-22 2009-11-03 Lockheed Martin Corporation Device and method for enabling efficient and flexible reconfigurable computing
US7861060B1 (en) 2005-12-15 2010-12-28 Nvidia Corporation Parallel data processing systems and methods using cooperative thread arrays and thread identifier values to determine processing behavior
US7802073B1 (en) 2006-03-29 2010-09-21 Oracle America, Inc. Virtual core management
US8176265B2 (en) 2006-10-30 2012-05-08 Nvidia Corporation Shared single-access memory with management of multiple parallel requests
US7680988B1 (en) * 2006-10-30 2010-03-16 Nvidia Corporation Single interconnect providing read and write access to a memory shared by concurrent threads
US8108625B1 (en) 2006-10-30 2012-01-31 Nvidia Corporation Shared memory with parallel access and access conflict resolution mechanism
US8219788B1 (en) 2007-07-23 2012-07-10 Oracle America, Inc. Virtual core management
US20090133022A1 (en) * 2007-11-15 2009-05-21 Karim Faraydon O Multiprocessing apparatus, system and method
US20090300629A1 (en) * 2008-06-02 2009-12-03 Mois Navon Scheduling of Multiple Tasks in a System Including Multiple Computing Elements
US8645634B1 (en) * 2009-01-16 2014-02-04 Nvidia Corporation Zero-copy data sharing by cooperating asymmetric coprocessors
US20110041128A1 (en) * 2009-08-13 2011-02-17 Mathias Kohlenz Apparatus and Method for Distributed Data Processing
US8762532B2 (en) * 2009-08-13 2014-06-24 Qualcomm Incorporated Apparatus and method for efficient memory allocation
US8788782B2 (en) 2009-08-13 2014-07-22 Qualcomm Incorporated Apparatus and method for memory management and efficient data processing
US9038073B2 (en) * 2009-08-13 2015-05-19 Qualcomm Incorporated Data mover moving data to accelerator for processing and returning result data based on instruction received from a processor utilizing software and hardware interrupts
US9676511B2 (en) 2009-09-25 2017-06-13 Multi Packaging Solutions, Inc. Foldable packaging container
US7959061B2 (en) 2009-09-25 2011-06-14 Multi Packaging Solutions, Inc. Folded pot cover
US8719455B2 (en) * 2010-06-28 2014-05-06 International Business Machines Corporation DMA-based acceleration of command push buffer between host and target devices
WO2013106032A2 (en) * 2011-04-08 2013-07-18 Altera Corporation Systems and methods for using memory commands
DE102015223331A1 (de) * 2015-11-25 2017-06-01 Robert Bosch Gmbh Mikrocontroller
US11048552B2 (en) * 2018-05-30 2021-06-29 Texas Instruments Incorporated High-speed broadside communications and control system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4641238A (en) * 1984-12-10 1987-02-03 Itt Corporation Multiprocessor system employing dynamically programmable processing elements controlled by a master processor
US5701482A (en) * 1993-09-03 1997-12-23 Hughes Aircraft Company Modular array processor architecture having a plurality of interconnected load-balanced parallel processing nodes
JP3277776B2 (ja) * 1995-11-20 2002-04-22 ミノルタ株式会社 放射温度計の照準装置
JPH10334039A (ja) * 1997-05-27 1998-12-18 Shikoku Nippon Denki Software Kk バースト転送装置
JPH11328383A (ja) * 1998-05-20 1999-11-30 Hitachi Ltd 画像処理装置
JP2001022689A (ja) * 1999-07-06 2001-01-26 Mitsubishi Electric Corp 出力fifoデータ転送制御装置

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007122741A (ja) * 2003-05-22 2007-05-17 Internatl Business Mach Corp <Ibm> 非対称型異種マルチプロセッサ環境でアトミック更新プリミティブを提供するための方法
US7814281B2 (en) 2003-05-22 2010-10-12 International Business Machines Corporation Method to provide atomic update primitives in an asymmetric heterogeneous multiprocessor environment
US7627697B2 (en) 2004-01-16 2009-12-01 Kabushiki Kaisha Toshiba Device using multiple DMA controllers for transferring data between a storage device and multiple processing units
JP2009217845A (ja) * 2004-11-12 2009-09-24 Sony Computer Entertainment Inc セキュアなデータ処理とデータ伝送とを行う方法および装置
US8001377B2 (en) 2004-11-12 2011-08-16 Sony Computer Entertainment Inc. Methods and apparatus for secure data processing and transmission
US7698473B2 (en) 2005-01-05 2010-04-13 Sony Computer Entertainment Inc. Methods and apparatus for list transfers using DMA transfers in a multi-processor system
US7849235B2 (en) 2005-04-01 2010-12-07 Fujitsu Limited DMA controller, node, data transfer control method and storage medium
JP2009259209A (ja) * 2008-03-28 2009-11-05 Fujitsu Ltd データ通信制御装置、データ通信制御方法およびそのためのプログラム
JP4516999B2 (ja) * 2008-03-28 2010-08-04 富士通株式会社 データ通信制御装置、データ通信制御方法およびそのためのプログラム
JP2012230597A (ja) * 2011-04-27 2012-11-22 Fujitsu Ltd 処理装置,制御装置および処理方法
EP2518628A1 (en) 2011-04-27 2012-10-31 Fujitsu Limited Processing device, controlling unit, and method for processing
WO2013031130A1 (ja) * 2011-09-01 2013-03-07 パナソニック株式会社 情報処理装置、そのアクセス制御方法及び集積回路
JP2016535337A (ja) * 2013-11-05 2016-11-10 オラクル・インターナショナル・コーポレイション ネットワーク環境における効率的なパケット処理モデルおよびパケット処理のための最適化されたバッファ利用をサポートするためのシステムおよび方法
KR20160093621A (ko) * 2013-12-03 2016-08-08 로베르트 보쉬 게엠베하 자동차용 제어 장치
JP2017502389A (ja) * 2013-12-03 2017-01-19 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング 車両のための制御装置
KR102269504B1 (ko) * 2013-12-03 2021-06-28 로베르트 보쉬 게엠베하 자동차용 제어 장치
JP2017107423A (ja) * 2015-12-10 2017-06-15 株式会社デンソー 情報処理装置
WO2018138975A1 (ja) * 2017-01-26 2018-08-02 ソニーセミコンダクタソリューションズ株式会社 演算処理装置および情報処理システム
CN110383259A (zh) * 2017-01-26 2019-10-25 索尼半导体解决方案公司 计算处理装置和信息处理系统
US11435928B2 (en) 2017-01-26 2022-09-06 Sony Semiconductor Solutions Corporation Calculation processing apparatus and information processing system
CN110383259B (zh) * 2017-01-26 2023-05-16 索尼半导体解决方案公司 计算处理装置和信息处理系统
JP2021503113A (ja) * 2017-10-31 2021-02-04 アビニシオ テクノロジー エルエルシー 状態更新の一貫性に基づきコンピュータクラスタを管理すること

Also Published As

Publication number Publication date
US20020062352A1 (en) 2002-05-23
EP1209573A2 (en) 2002-05-29
US6820187B2 (en) 2004-11-16
EP1209573A3 (en) 2007-01-31

Similar Documents

Publication Publication Date Title
JP2002163239A (ja) マルチプロセッサシステムおよびその制御方法
US5257372A (en) Methods for efficient distribution of parallel tasks to slave processes in a multiprocessing system
US6363453B1 (en) Parallel processor with redundancy of processor pairs
CN109997113B (zh) 用于数据处理的方法和装置
JPH04348451A (ja) 並列計算機
JPS6040067B2 (ja) 分散制御型多重処理システム
US20110265093A1 (en) Computer System and Program Product
US20040148606A1 (en) Multi-thread computer
US20150268985A1 (en) Low Latency Data Delivery
JP6207342B2 (ja) 情報処理システムおよび情報処理システムの制御方法
US6418540B1 (en) State transfer with throw-away thread
JPH02242434A (ja) タスクのスケジューリング方法
JP3990569B2 (ja) データメモリ制御装置
JP2017161954A (ja) データ処理システム及びデータ処理方法及びプログラム
JPH01137359A (ja) プロセッサの制御方法
JP2010026575A (ja) スケジューリング方法およびスケジューリング装置並びにマルチプロセッサシステム
JPH05233525A (ja) I/o処理装置
JPH05128078A (ja) 並列処理装置
JPS6223895B2 (ja)
JPS6143369A (ja) マルチプロセツサシステム
JP2926873B2 (ja) 計算機システム
JP2677069B2 (ja) データ処理システム
JPS6352240A (ja) デ−タ処理装置
JPH03257634A (ja) プログラム並列実行方法とその装置
JPH03182945A (ja) 主記憶内データ転送方式