JP2792699B2 - コンピュータシステム、アライン制御装置および方法 - Google Patents
コンピュータシステム、アライン制御装置および方法Info
- Publication number
- JP2792699B2 JP2792699B2 JP1502292A JP50229289A JP2792699B2 JP 2792699 B2 JP2792699 B2 JP 2792699B2 JP 1502292 A JP1502292 A JP 1502292A JP 50229289 A JP50229289 A JP 50229289A JP 2792699 B2 JP2792699 B2 JP 2792699B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- alignment
- signal
- align
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Preparation Of Compounds By Using Micro-Organisms (AREA)
Description
【発明の詳細な説明】 技術分野 本発明は、複数のプロセッサを有するコンピュータシ
ステムに関し、該複数のプロセッサのオペレーションを
アラインさせるアライン制御装置および方法に関する。
ステムに関し、該複数のプロセッサのオペレーションを
アラインさせるアライン制御装置および方法に関する。
背景技術 多数のマルチプロセッサが当技術分野で公知である。
A.WangおよびF.A.Brigg著「並列処理におけるコンピュ
ータ・アーキテクチャ」(McGraw Hill社、1984年発
行)を参照されたい。例示しているこのようなシステム
には、Illiac−IVと、Burroughs社(現Unisys社)製のB
urroughs Scientific Processor(BSP)と、NASA Godda
rd Space Flight Centerで開発されGoodyear Aerospace
社により製造された超並列プロセッサ(Massively Para
llel Processor;MPP)と、ICL of England社製のDAP
と、Goodyear Aerospace社により設計されたSTARANと、
International Business Machines社製のIBM370/168MP
およびIBM3081/3084と、Sperry Univac社(現Unisys
社)製のUnivac1100/80と、Tandem−16Nonstop、Burrou
ghs社(現Unisys社)製のD−825と、Denelcore社製のH
EPと、Cray Research社製のCray X−MPおよびCray−2
と、Carnegie Mellon大学で開発されたCm*およびC.mmp
が含まれる。
A.WangおよびF.A.Brigg著「並列処理におけるコンピュ
ータ・アーキテクチャ」(McGraw Hill社、1984年発
行)を参照されたい。例示しているこのようなシステム
には、Illiac−IVと、Burroughs社(現Unisys社)製のB
urroughs Scientific Processor(BSP)と、NASA Godda
rd Space Flight Centerで開発されGoodyear Aerospace
社により製造された超並列プロセッサ(Massively Para
llel Processor;MPP)と、ICL of England社製のDAP
と、Goodyear Aerospace社により設計されたSTARANと、
International Business Machines社製のIBM370/168MP
およびIBM3081/3084と、Sperry Univac社(現Unisys
社)製のUnivac1100/80と、Tandem−16Nonstop、Burrou
ghs社(現Unisys社)製のD−825と、Denelcore社製のH
EPと、Cray Research社製のCray X−MPおよびCray−2
と、Carnegie Mellon大学で開発されたCm*およびC.mmp
が含まれる。
最近、何千個ものプロセッサが並列にオペレートされ
るマルチプロセッサが紹介された。このようなプロセッ
サの1つに、本願の譲受人が製造販売しているConnecti
on Machine Computerがあり、この詳細は米国特許第4,5
98,400号に記載してある。ここに、米国特許第4,598,40
0号の番号を付して本明細書の一部とする。このConnect
ion Machine Computerのうち現在入手可能なものは、1
つの中心コンピュータと、1つのマイクロコントローラ
と、65536個の並列プロセッサを備えている。この中心
コンピュータは、適正にプログラムされた市販のコンピ
ュータ、例えば、Symbolics 3600−series LISP Machin
eのようなコンピュータでもよい。このマイクロコント
ローラは、32ビットの並列バスにより並列プロセッサ・
アレイに供給される命令のシーケンスを生成する慣用の
設計の命令シーケンサである。このマイクロコントロー
ラは、データ出力とステータス情報として用いることが
できる汎用シグナル、すなわち、GLOBAL(大域)シグナ
ルであるシグナルを、並列処理アレイから受信する。
るマルチプロセッサが紹介された。このようなプロセッ
サの1つに、本願の譲受人が製造販売しているConnecti
on Machine Computerがあり、この詳細は米国特許第4,5
98,400号に記載してある。ここに、米国特許第4,598,40
0号の番号を付して本明細書の一部とする。このConnect
ion Machine Computerのうち現在入手可能なものは、1
つの中心コンピュータと、1つのマイクロコントローラ
と、65536個の並列プロセッサを備えている。この中心
コンピュータは、適正にプログラムされた市販のコンピ
ュータ、例えば、Symbolics 3600−series LISP Machin
eのようなコンピュータでもよい。このマイクロコント
ローラは、32ビットの並列バスにより並列プロセッサ・
アレイに供給される命令のシーケンスを生成する慣用の
設計の命令シーケンサである。このマイクロコントロー
ラは、データ出力とステータス情報として用いることが
できる汎用シグナル、すなわち、GLOBAL(大域)シグナ
ルであるシグナルを、並列処理アレイから受信する。
個々のマルチプロセッサが情報を交換することができ
るように、マルチプロセッサのオペレーションを同期さ
せるという問題は、全てのマルチプロセッサに共通した
問題である。これらの問題は回避することができる。SI
MD(single operation stream,multiple data stream)
環境、すなわち、全ての処理ユニットが異なるデータに
対してオペレートするが、同一の命令ストリームを並列
に受信する環境で、マルチプロセッサの全てのプロセッ
サをオペレートして回避することができる。しかし、各
プロセッサがMIMD(muliple instruction stream,multi
ple data stream)環境で各自の命令ストリームに対し
てオペレートする限り、マルチプロセッサの複数のプロ
セッサを独立にオペレートさせることは利点がある。
るように、マルチプロセッサのオペレーションを同期さ
せるという問題は、全てのマルチプロセッサに共通した
問題である。これらの問題は回避することができる。SI
MD(single operation stream,multiple data stream)
環境、すなわち、全ての処理ユニットが異なるデータに
対してオペレートするが、同一の命令ストリームを並列
に受信する環境で、マルチプロセッサの全てのプロセッ
サをオペレートして回避することができる。しかし、各
プロセッサがMIMD(muliple instruction stream,multi
ple data stream)環境で各自の命令ストリームに対し
てオペレートする限り、マルチプロセッサの複数のプロ
セッサを独立にオペレートさせることは利点がある。
同期とは、各プロセッサが各自のプログラムのある点
に到達したときに、各プロセッサがビットをレジスタに
セットすることであり、この場合、各プロセッサが他の
プロセッサとアライン(align)される。この同期点に
達すると同時に、各プロセッサはレジスタをテストし
て、全てのビットが適正にセットされたかどうかを判定
し、このようなビットが全てセットされるまで、プロセ
ッサはそのプログラムを先に進ませない。このような手
法を用いると、各プロセッサが、各同期点で、予め定め
たオペレーションを同時に行うように、プロセッサを厳
密に時間同期させることができる。
に到達したときに、各プロセッサがビットをレジスタに
セットすることであり、この場合、各プロセッサが他の
プロセッサとアライン(align)される。この同期点に
達すると同時に、各プロセッサはレジスタをテストし
て、全てのビットが適正にセットされたかどうかを判定
し、このようなビットが全てセットされるまで、プロセ
ッサはそのプログラムを先に進ませない。このような手
法を用いると、各プロセッサが、各同期点で、予め定め
たオペレーションを同時に行うように、プロセッサを厳
密に時間同期させることができる。
発明の開示 多くのオペレーションでは、複数のプロセッサのオペ
レーションを厳密に時間同期させる必要はない。むし
ろ、任意のプロセッサが別の指示されたタスクの実施を
開始することができる前に、各プロセッサが指定された
タスクを実施したことを保証するだけで充分である。そ
れ程厳密でないこの同期形態を、本明細書では、アライ
ン(align)と呼ぶ。本発明によれば、複数のマルチプ
ロセッサをアラインする方法および装置が発明された。
本装置は、各プロセッサと関係付けをした1つのアライ
ン・ユニットと、アライン・ユニットの出力を組み合わ
せ、アライン・ユニットに情報をブロードキャストする
ロジック・ネットワークとを備えるのが好ましい。アラ
インされるプロセッサからの命令ストリームにアライン
要求を挿入し、このようなプロセッサを、このようなプ
ロセッサが全てアライン要求を行い、任意の必要なオペ
レーションを完了するまで、待機させる、ことによりア
ラインされる。
レーションを厳密に時間同期させる必要はない。むし
ろ、任意のプロセッサが別の指示されたタスクの実施を
開始することができる前に、各プロセッサが指定された
タスクを実施したことを保証するだけで充分である。そ
れ程厳密でないこの同期形態を、本明細書では、アライ
ン(align)と呼ぶ。本発明によれば、複数のマルチプ
ロセッサをアラインする方法および装置が発明された。
本装置は、各プロセッサと関係付けをした1つのアライ
ン・ユニットと、アライン・ユニットの出力を組み合わ
せ、アライン・ユニットに情報をブロードキャストする
ロジック・ネットワークとを備えるのが好ましい。アラ
インされるプロセッサからの命令ストリームにアライン
要求を挿入し、このようなプロセッサを、このようなプ
ロセッサが全てアライン要求を行い、任意の必要なオペ
レーションを完了するまで、待機させる、ことによりア
ラインされる。
各プロセッサと関係付けをしたアライン・ユニット
は、命令ストリームをモニタし、アライン要求を検出す
る。ロジック・ネットワークは説明上はANDゲートであ
り、各アライン・ユニットをテストして、アライン要求
を検出したかどうかを判定し、プロセッサおよび/また
は相互結合ネットワークをテストして、必要なオペレー
ションが全て完了したどうかを判定するものである。全
てのユニットがこのような要求を行い、しかも、必要な
オペレーションが全て完了したとき、ロジック・ネット
ワークはアライン・ユニットに通知し、アライン・ユニ
ットはプロセッサに通知する。
は、命令ストリームをモニタし、アライン要求を検出す
る。ロジック・ネットワークは説明上はANDゲートであ
り、各アライン・ユニットをテストして、アライン要求
を検出したかどうかを判定し、プロセッサおよび/また
は相互結合ネットワークをテストして、必要なオペレー
ションが全て完了したどうかを判定するものである。全
てのユニットがこのような要求を行い、しかも、必要な
オペレーションが全て完了したとき、ロジック・ネット
ワークはアライン・ユニットに通知し、アライン・ユニ
ットはプロセッサに通知する。
本発明の上記および他の目的、特徴、および利点は、
本発明の詳細な説明から容易に明らかになるであろう。
本発明の詳細な説明から容易に明らかになるであろう。
図面の簡単な説明 第1図は本発明を適用したマルチプロセッサの実施の
形態を示すブロック図である。
形態を示すブロック図である。
第2図は本発明に係るアライン・ユニットの実施の形
態を示すブロック図である。
態を示すブロック図である。
第3図は本発明の組合わせロジックの1ユニットの例
を示す図である。
を示す図である。
第4図は第2図に示すアライン・ユニットのオペレー
ションを示す状態図である。
ションを示す状態図である。
第5図は本発明の第2の実施の形態を示すブロック図
である。
である。
発明を実施するための最良の形態 第1図に示すように、図示した本発明に係る装置は、
プロセッサ10のアレイと、アライン・ユニット20のアレ
イと、組合わせ論理セル30のアレイと、相互結合ネット
ワーク40と、制御装置50とを備えている。図示したプロ
セッサは、それぞれ、演算理論ユニットと、読出し/書
込みメモリと、入出力手段とを含む。多くのこのような
プロセッサは当技術分野では周知のものである。図示の
プロセッサとしては、8038タイプのマイクロプロセッ
サ、例えば、Intel社製のマイクロプロセッサがある。
プロセッサ10のアレイと、アライン・ユニット20のアレ
イと、組合わせ論理セル30のアレイと、相互結合ネット
ワーク40と、制御装置50とを備えている。図示したプロ
セッサは、それぞれ、演算理論ユニットと、読出し/書
込みメモリと、入出力手段とを含む。多くのこのような
プロセッサは当技術分野では周知のものである。図示の
プロセッサとしては、8038タイプのマイクロプロセッ
サ、例えば、Intel社製のマイクロプロセッサがある。
相互結合ネットワーク40は、プロセッサ間通信を行
う。特に、相互結合ネットワーク40は、プロセッサとプ
ロセッサの間で、データおよび制御情報を交換すること
ができる。多数の相互結合ネットワークが当技術分野で
は公知である。例えば、C.WuおよびT.Feng著「並列およ
び分散処理のための相互結合ネットワーク」(IEEE,198
4年)を参照されたい。図示の通信ネットワークは、各
プロセッサと、各プロセッサの最も近い近傍のプロセッ
サとを、2次元以上の直交アレイになるように接続した
構成である。2つのこのようなネットワークは米国特許
第4,598,400号に記載してあるが、他の多くのネットワ
ークも当技術分野では公知である。
う。特に、相互結合ネットワーク40は、プロセッサとプ
ロセッサの間で、データおよび制御情報を交換すること
ができる。多数の相互結合ネットワークが当技術分野で
は公知である。例えば、C.WuおよびT.Feng著「並列およ
び分散処理のための相互結合ネットワーク」(IEEE,198
4年)を参照されたい。図示の通信ネットワークは、各
プロセッサと、各プロセッサの最も近い近傍のプロセッ
サとを、2次元以上の直交アレイになるように接続した
構成である。2つのこのようなネットワークは米国特許
第4,598,400号に記載してあるが、他の多くのネットワ
ークも当技術分野では公知である。
図示のプロセッサと相互結合ネットワークは、典型的
には、幾つかのタイプの制御装置50の制御によりオペレ
ートされる。Connection Machine Computerのプロセッ
サおよび相互結合ネットワークの場合には、図示したよ
うな制御装置は、Symbolics 3600 Series LISPマシンで
あり、マイクロコントローラである。他の多くの制御装
置が他のマルチプロセッサとともに用いられている。
には、幾つかのタイプの制御装置50の制御によりオペレ
ートされる。Connection Machine Computerのプロセッ
サおよび相互結合ネットワークの場合には、図示したよ
うな制御装置は、Symbolics 3600 Series LISPマシンで
あり、マイクロコントローラである。他の多くの制御装
置が他のマルチプロセッサとともに用いられている。
マルチプロセッサのプロセッサ間で通信がある場合、
別のプロセッサがある指定されたオペレーションをパフ
ォームする前に、そのプロセッサによりパフォームされ
るオペレーションがあるステップに達したことを保証す
ることは、多分必要なことである。例えば、データが第
1のプロセッサからフェッチされ、第2のプロセッサに
渡された場合、データがフェッチされる前に、そのデー
タが第1のプロセッサに存在していることを保証するこ
とは必要なことである。必要なときに、そのデータが存
在することを保証するには、個々のプロセッサをアライ
ンすることが必要である。このことは、全てのプロセッ
サがSIMD環境で厳密に並列にオペレートすることにより
達成することができる。しかし、プロセッサをMIMD環境
でオペレートし、必要な場合にのみアラインさせること
は、多くの場合、多分利点がある。
別のプロセッサがある指定されたオペレーションをパフ
ォームする前に、そのプロセッサによりパフォームされ
るオペレーションがあるステップに達したことを保証す
ることは、多分必要なことである。例えば、データが第
1のプロセッサからフェッチされ、第2のプロセッサに
渡された場合、データがフェッチされる前に、そのデー
タが第1のプロセッサに存在していることを保証するこ
とは必要なことである。必要なときに、そのデータが存
在することを保証するには、個々のプロセッサをアライ
ンすることが必要である。このことは、全てのプロセッ
サがSIMD環境で厳密に並列にオペレートすることにより
達成することができる。しかし、プロセッサをMIMD環境
でオペレートし、必要な場合にのみアラインさせること
は、多くの場合、多分利点がある。
本発明によれば、あるプロセッサ・グループのプロセ
ッサ間のアラインは、各プロセッサの命令ストリーム
に、追加の命令を2つ挿入することにより行われる。2
つの追加の命令とは、アライン要求命令と、アラインが
達成されたどうかのテスト命令である。典型的には、ア
ライン要求命令の発行は、プロセッサ群のプロセッサ
に、プロセッサがアラインするように要求する命令(通
信命令のような命令)を、命令ストリームが発行した以
後に、行われる。テスト命令は、命令ストリームにおい
て、アラインが達成されなければならなかった時点の直
前に、発行される。
ッサ間のアラインは、各プロセッサの命令ストリーム
に、追加の命令を2つ挿入することにより行われる。2
つの追加の命令とは、アライン要求命令と、アラインが
達成されたどうかのテスト命令である。典型的には、ア
ライン要求命令の発行は、プロセッサ群のプロセッサ
に、プロセッサがアラインするように要求する命令(通
信命令のような命令)を、命令ストリームが発行した以
後に、行われる。テスト命令は、命令ストリームにおい
て、アラインが達成されなければならなかった時点の直
前に、発行される。
例えば、プロセッサ・グループの各プロセッサから、
各プロセッサの近傍のプロセッサに、データが転送さ
れ、そのデータとプロセッサに存在するデータと組合わ
されるものと仮定する。このグループに属する近傍のプ
ロセッサ対を、プロセッサi−1と、プロセッサiとし
て識別した場合は、各プロセッサのこのようなデータと
組合わせるため、次に記載する命令ストリームを、プロ
セッサ・グループの各プロセッサに供給することができ
る。
各プロセッサの近傍のプロセッサに、データが転送さ
れ、そのデータとプロセッサに存在するデータと組合わ
されるものと仮定する。このグループに属する近傍のプ
ロセッサ対を、プロセッサi−1と、プロセッサiとし
て識別した場合は、各プロセッサのこのようなデータと
組合わせるため、次に記載する命令ストリームを、プロ
セッサ・グループの各プロセッサに供給することができ
る。
01プロセッサi−1からのデータをプロセッサiのレジ
スタAに送信する 02プロセッサiのレジスタBからのデータをレジスタC
に移動する 03レジスタAの内容をプロセッサiのレジスタCの内容
に加える 適正なデータがレジスタCの内容に加えられる前に、
この適正なデータがレジスタAに存在することが、必要
なことは明らかである。このことを保証するには、プロ
セッサのオペレーションをアラインする必要がある。
スタAに送信する 02プロセッサiのレジスタBからのデータをレジスタC
に移動する 03レジスタAの内容をプロセッサiのレジスタCの内容
に加える 適正なデータがレジスタCの内容に加えられる前に、
この適正なデータがレジスタAに存在することが、必要
なことは明らかである。このことを保証するには、プロ
セッサのオペレーションをアラインする必要がある。
本発明によれば、このようなアラインは、アライン要
求命令およびテスト命令を命令ストリームに挿入するこ
とにより達成される。上述の例では、命令ストリームは
次のようになる。すなわち、 01プロセッサi−1からのデータをプロセッサiのレジ
スタAに送信する 02アラインを要求する 03データをプロセッサiのレジスタBからレジスタCに
移動する。
求命令およびテスト命令を命令ストリームに挿入するこ
とにより達成される。上述の例では、命令ストリームは
次のようになる。すなわち、 01プロセッサi−1からのデータをプロセッサiのレジ
スタAに送信する 02アラインを要求する 03データをプロセッサiのレジスタBからレジスタCに
移動する。
04アラインされたかどうかテストする 05偽である場合は、テストを再実行する 06真である場合は、レジスタAの内容をプロセッサiの
レジスタCの内容に加える 本発明によれば、アライン要求命令およびテスト命令
は、アラインされる各プロセッサからの命令ストリーム
に挿入され、全てのプロセッサがアライン要求命令をア
サート(assert)するまで、これらのプロセッサはテス
ト命令を求めて待機する。
レジスタCの内容に加える 本発明によれば、アライン要求命令およびテスト命令
は、アラインされる各プロセッサからの命令ストリーム
に挿入され、全てのプロセッサがアライン要求命令をア
サート(assert)するまで、これらのプロセッサはテス
ト命令を求めて待機する。
このようなアライン要求命令およびテスト命令を処理
する好ましい装置は、第1図のアライン・ユニット20
と、組合わせ論理セル30を備えている。第1図に示すよ
うに、各プロセッサ10はアライン・ユニットにそれぞれ
接続してあり、アライン・ユニットにシグナルを送信
し、アライン・ユニットからシグナルを受信する。第2
図に示すように、アライン・ユニット20は、それぞれ、
4つのDタイプ・フリップフロップ21、22、23、24を備
えるとともに、表1に示す入出力テーブルをインプリメ
ントする組合わせロジック26を備えている。第3図に示
すように、論理セル30は、それぞれ、ANDゲート33を備
えているが、2つのDタイプ・フリップフロップ35、36
は任意指定である。論理セルは2分木状に接続してあ
り、2分木の最下位レベルの各論理セルは、1対のアラ
イン・ユニット20に接続してある。
する好ましい装置は、第1図のアライン・ユニット20
と、組合わせ論理セル30を備えている。第1図に示すよ
うに、各プロセッサ10はアライン・ユニットにそれぞれ
接続してあり、アライン・ユニットにシグナルを送信
し、アライン・ユニットからシグナルを受信する。第2
図に示すように、アライン・ユニット20は、それぞれ、
4つのDタイプ・フリップフロップ21、22、23、24を備
えるとともに、表1に示す入出力テーブルをインプリメ
ントする組合わせロジック26を備えている。第3図に示
すように、論理セル30は、それぞれ、ANDゲート33を備
えているが、2つのDタイプ・フリップフロップ35、36
は任意指定である。論理セルは2分木状に接続してあ
り、2分木の最下位レベルの各論理セルは、1対のアラ
イン・ユニット20に接続してある。
各アライン・ユニットは、各アライン・ユニットが接
続されたプロセッサから、当該プロセッサにより実行さ
れている命令ストリームINSTを受信する。表1の入出力
テーブルでは、以下にさらに詳細に説明するが、各アラ
イン・ユニットは、当該プロセッサに、アラインが達成
されたかどうかを表すシグナルALIGN(アライン)を供
給する。さらに、各アライン・ユニットも、各アライン
・ユニットが接続された論理セルの入力に、出力シグナ
ルASSERTを供給し、その論理セルからシグナルREADY
(レディ)を受信する。このシグナルREADYはフリップ
フロップ21に供給され、ついで、組合わせロジック26に
供給される。
続されたプロセッサから、当該プロセッサにより実行さ
れている命令ストリームINSTを受信する。表1の入出力
テーブルでは、以下にさらに詳細に説明するが、各アラ
イン・ユニットは、当該プロセッサに、アラインが達成
されたかどうかを表すシグナルALIGN(アライン)を供
給する。さらに、各アライン・ユニットも、各アライン
・ユニットが接続された論理セルの入力に、出力シグナ
ルASSERTを供給し、その論理セルからシグナルREADY
(レディ)を受信する。このシグナルREADYはフリップ
フロップ21に供給され、ついで、組合わせロジック26に
供給される。
論理セル30のANDゲート33は、入力線31、32からシグ
ナルASSERTを受信し、出力線34上に(フリップフロップ
36を介するか否かは、任意指定である)、出力シグナル
ASSERTを出力する。第3図に示す本発明に係る実施の形
態では、ANDゲート33への両入力線31、32上の論理ハイ
のシグナルがアサートされるまで、出力線34上の論理ハ
イのシグナルはアサートされない。2つの論理セルから
の出力ASSERTシグナルは、2分木の次に上位のレベルの
論理セル30の2つの入力として供給される。
ナルASSERTを受信し、出力線34上に(フリップフロップ
36を介するか否かは、任意指定である)、出力シグナル
ASSERTを出力する。第3図に示す本発明に係る実施の形
態では、ANDゲート33への両入力線31、32上の論理ハイ
のシグナルがアサートされるまで、出力線34上の論理ハ
イのシグナルはアサートされない。2つの論理セルから
の出力ASSERTシグナルは、2分木の次に上位のレベルの
論理セル30の2つの入力として供給される。
ANDツリーの最上位のセルは、相互結合ネットワーク
が空であることを表すシグナルであって相互結合ネット
ワーク40からのシグナルを有するとともに、ANDゲート6
0に入力される出力線34を有する。この相互結合ネット
ワークは、このネットワークを介してメッセージがルー
ティングされていない場合は、常に、空である。相互結
合ネットワークの中には、この状態が存在するか否かの
テストが、慣用のテストであるものもあり、ネットワー
クが空であることを表すシグナルを供給することは、当
技術分野の通常の技術の範囲内である。第1図に示す好
ましい実施の形態では、空のネットワークが存在するか
否かのテストは、相互結合ネットワーク上のメッセージ
・トラフィックが完了したことを保証するために行われ
る。
が空であることを表すシグナルであって相互結合ネット
ワーク40からのシグナルを有するとともに、ANDゲート6
0に入力される出力線34を有する。この相互結合ネット
ワークは、このネットワークを介してメッセージがルー
ティングされていない場合は、常に、空である。相互結
合ネットワークの中には、この状態が存在するか否かの
テストが、慣用のテストであるものもあり、ネットワー
クが空であることを表すシグナルを供給することは、当
技術分野の通常の技術の範囲内である。第1図に示す好
ましい実施の形態では、空のネットワークが存在するか
否かのテストは、相互結合ネットワーク上のメッセージ
・トラフィックが完了したことを保証するために行われ
る。
論理ハイの空シグナルが、最上位のセルのアサート出
力線34上の論理ハイのシグナルと一致すると、レディシ
グナルがANDゲート60により2分木の最上位のセルの入
力レディ線37に供給される。このレディシグナルは、2
分木の次に下位のレベルの2つのセルの入力レディ線37
にそれぞれ接続された2つの出力レディ線38、39に供給
される(フリップフロップ35を介するか否かは、任意指
定である)。READYシグナルがアライン・ユニット20の
アレイ全体にブロードキャストされるように、この2分
木の最下位レベルで、READYシグナルは、各セルによ
り、2つのアライン・ユニット20に供給される。
力線34上の論理ハイのシグナルと一致すると、レディシ
グナルがANDゲート60により2分木の最上位のセルの入
力レディ線37に供給される。このレディシグナルは、2
分木の次に下位のレベルの2つのセルの入力レディ線37
にそれぞれ接続された2つの出力レディ線38、39に供給
される(フリップフロップ35を介するか否かは、任意指
定である)。READYシグナルがアライン・ユニット20の
アレイ全体にブロードキャストされるように、この2分
木の最下位レベルで、READYシグナルは、各セルによ
り、2つのアライン・ユニット20に供給される。
一般的に、アライン・ユニット20および論理セル30の
オペレーションは、あるアライン・ユニットが、当該ア
ライン・ユニットで受信された命令ストリームにおい
て、アラインREQUEST(要求)シグナルを検出すると、
当該アライン・ユニットからのASSERT線上に、論理ハイ
のシグナルが出力されるようなオペレーションである。
各アライン・ユニットがアラインREQUESTシグナルを検
出した場合か、検出した場合にのみ、2分木の最上位の
レベルの論理セル30からの出力線34が論理ハイになる。
相互結合ネットワーク40上のメッセージ・トラフィック
が、アラインREQUESTシグナルを全てのプロセッサが発
行した後のある時点で完了した場合には、空シグナルが
論理ハイとなるとともに、ANDゲート60の出力も論理ハ
イとなる。その結果、論理ハイのREADYシグナルは、論
理セル30を直通して全てのアライン・ユニットにブロー
ドキャストされ、全てのアライン・ユニットで、論理ハ
イのREADYシグナルがGRANT(認可)シグナルとして認識
される。
オペレーションは、あるアライン・ユニットが、当該ア
ライン・ユニットで受信された命令ストリームにおい
て、アラインREQUEST(要求)シグナルを検出すると、
当該アライン・ユニットからのASSERT線上に、論理ハイ
のシグナルが出力されるようなオペレーションである。
各アライン・ユニットがアラインREQUESTシグナルを検
出した場合か、検出した場合にのみ、2分木の最上位の
レベルの論理セル30からの出力線34が論理ハイになる。
相互結合ネットワーク40上のメッセージ・トラフィック
が、アラインREQUESTシグナルを全てのプロセッサが発
行した後のある時点で完了した場合には、空シグナルが
論理ハイとなるとともに、ANDゲート60の出力も論理ハ
イとなる。その結果、論理ハイのREADYシグナルは、論
理セル30を直通して全てのアライン・ユニットにブロー
ドキャストされ、全てのアライン・ユニットで、論理ハ
イのREADYシグナルがGRANT(認可)シグナルとして認識
される。
このGRANTシグナルは各アライン・ユニットにより処
理され、プロセッサからの命令ストリームの各TEST(テ
スト)命令ごとに、1つの論理ハイのALIGN命令をプロ
セッサに出力する。命令ストリームのTESTシグナルの前
に、GRANTシグナルが受信された場合には、各アライン
・ユニットは、このGRANTシグナルを単にストアして待
機する。このTESTシグナルが最初に受信された場合は、
アライン・ユニットも同様に待機する。TESTシグナルお
よびGRANTシグナルの両方のシグナルを受信すると直ち
に、アライン・ユニットはプロセッサに論理ハイのALIG
Nシグナルを発行し、ついで、そのプロセッサはイネー
ブルされ、アラインが要求するオペレーションを行う。
理され、プロセッサからの命令ストリームの各TEST(テ
スト)命令ごとに、1つの論理ハイのALIGN命令をプロ
セッサに出力する。命令ストリームのTESTシグナルの前
に、GRANTシグナルが受信された場合には、各アライン
・ユニットは、このGRANTシグナルを単にストアして待
機する。このTESTシグナルが最初に受信された場合は、
アライン・ユニットも同様に待機する。TESTシグナルお
よびGRANTシグナルの両方のシグナルを受信すると直ち
に、アライン・ユニットはプロセッサに論理ハイのALIG
Nシグナルを発行し、ついで、そのプロセッサはイネー
ブルされ、アラインが要求するオペレーションを行う。
表1と、第4図の状態図は、アライン・ユニット20
と、その組合わせロジック26と、フリップフロップ22〜
24のオペレーションを表しているので、アライン・ユニ
ットのオペレーションの詳細は、表1と、第4図の状態
図と協働して説明するのが最も良い。第4図に示すよう
に、アライン・ユニットを、6つの状態、すなわち、ID
LE(アイドル)と、PEND(保留)と、BLOCK(ブロッキ
ング)と、QUEUE(キュー)と、GOT(取得)と、SAVE
(保管)のうちのいずれかの状態にすることができる。
アライン・ユニットの状態は、フリップフロップ22、2
3、24に2進符号化形式でストアされ、組合わせロジッ
ク26の入力として、プロセッサからの命令ストリームIN
STと、フリップフロップ21からのGRANTシグナルととも
に供給される。この命令ストリームはプロセッサに供給
される命令シーケンスであり、本発明によれば、3つの
タイプの命令、すなわち、アラインREQUESTと、TEST
と、第4図でそれぞれ記号Rと、Tと、Oにより表わさ
れる全てのOTHER命令を含む。論理ハイのGRANTシグナル
は、第4図にGで示し、論理ローのGRANTシグナルは
で示す。
と、その組合わせロジック26と、フリップフロップ22〜
24のオペレーションを表しているので、アライン・ユニ
ットのオペレーションの詳細は、表1と、第4図の状態
図と協働して説明するのが最も良い。第4図に示すよう
に、アライン・ユニットを、6つの状態、すなわち、ID
LE(アイドル)と、PEND(保留)と、BLOCK(ブロッキ
ング)と、QUEUE(キュー)と、GOT(取得)と、SAVE
(保管)のうちのいずれかの状態にすることができる。
アライン・ユニットの状態は、フリップフロップ22、2
3、24に2進符号化形式でストアされ、組合わせロジッ
ク26の入力として、プロセッサからの命令ストリームIN
STと、フリップフロップ21からのGRANTシグナルととも
に供給される。この命令ストリームはプロセッサに供給
される命令シーケンスであり、本発明によれば、3つの
タイプの命令、すなわち、アラインREQUESTと、TEST
と、第4図でそれぞれ記号Rと、Tと、Oにより表わさ
れる全てのOTHER命令を含む。論理ハイのGRANTシグナル
は、第4図にGで示し、論理ローのGRANTシグナルは
で示す。
組合わせロジック26の入力の異なる組合わせは、表1
の左側の3つの列に示す。。これらの入力に応答して、
組合わせロジック26により生成された出力は、表1の右
側の3つの列に示す。表1に示すように、1つの出力は
アライン・ユニットの次の状態を指定し、他の2つ出力
はALIGN線およびASSERT線の論理レベルを指定する。入
力の幾つかの組合わせが不可能である場合は、次の状態
がERRORであることが示され、ALIGNレベルおよびASSERT
レベルは定義されない。
の左側の3つの列に示す。。これらの入力に応答して、
組合わせロジック26により生成された出力は、表1の右
側の3つの列に示す。表1に示すように、1つの出力は
アライン・ユニットの次の状態を指定し、他の2つ出力
はALIGN線およびASSERT線の論理レベルを指定する。入
力の幾つかの組合わせが不可能である場合は、次の状態
がERRORであることが示され、ALIGNレベルおよびASSERT
レベルは定義されない。
第1図に示す装置は、アライン・ユニットをIDLE状態
に初期設定する。通常は、各アライン・ユニットはIDLE
状態であり、プロセッサからの命令ストリームで任意の
命令(REQUEST命令を除く)を受信しても、IDLE状態で
ある。このことは、Oとラベルを付したループにより
示される。IDLE状態にある間、ALIGNおよびASSERTの両
方の出力は論理ローである。アライン・ユニットは、以
下に詳細に述べるが、REQUESTシグナルを受信すると直
ちに、PEND状態に変化し、PEND状態にある場合は、ASSE
RT出力を論理ハイにする。全てのアライン・ユニットの
ASSERT出力が論理ハイとなり、相互結合ネットワークが
空である場合、GRANTシグナルは論理ハイになり、GRANT
シグナルが論理ハイになると、アライン・ユニットは、
表1で指定されるように出力シグナルを生成する。TEST
命令および論理ローのGRANTシグナルが受信された場合
には、アライン・ユニットは最終的にIDLE状態になるこ
とになる。
に初期設定する。通常は、各アライン・ユニットはIDLE
状態であり、プロセッサからの命令ストリームで任意の
命令(REQUEST命令を除く)を受信しても、IDLE状態で
ある。このことは、Oとラベルを付したループにより
示される。IDLE状態にある間、ALIGNおよびASSERTの両
方の出力は論理ローである。アライン・ユニットは、以
下に詳細に述べるが、REQUESTシグナルを受信すると直
ちに、PEND状態に変化し、PEND状態にある場合は、ASSE
RT出力を論理ハイにする。全てのアライン・ユニットの
ASSERT出力が論理ハイとなり、相互結合ネットワークが
空である場合、GRANTシグナルは論理ハイになり、GRANT
シグナルが論理ハイになると、アライン・ユニットは、
表1で指定されるように出力シグナルを生成する。TEST
命令および論理ローのGRANTシグナルが受信された場合
には、アライン・ユニットは最終的にIDLE状態になるこ
とになる。
表1に示すように、REQUESTシグナルが命令ストリー
ムで検出され、しかも、論理ハイのGRANTシグナルが論
理セルから受信されなかった場合には、アライン・ユニ
ットは、第4図に線Rで示すとともに、表1の3行目
に示すように、IDLE状態からPEND状態に変化する。一
旦、PEND状態になると、論理ハイのGRANTシグナルが受
信されない場合は、アライン・ユニットの状態は変化し
ないことになる。PEND状態にある間、組合わせロジック
26は入力シグナルの可能な任意の組合わせに対しても、
論理ハイのASSERTシグナルを発行することになる。ASSE
RTシグナルは論理セル30の入力に供給される。全てのAS
SERTシグナルが論理ハイであり、しかも、相互結合ネッ
トワークが空である場合、論理ハイREADYシグナルが全
てのアライン・ユニットにブロードキャストされ、全て
のプロセッサが完了する必要がある命令(例えば、通信
命令)を、全てのプロセッサが完了したことを示し、従
って、アラインされたことを示す。この論理ハイのREAD
Yシグナルは表1の論理ハイのGRANTシグナルである。論
理ハイのGRANTシグナルがOTHER命令とともに受信された
場合、このアライン・ユニットは、第4図に線OGで示す
とともに、表1の12行目に示すように、GOT状態に変化
し、引き続き論理ハイのASSERTシグナルを発行している
間、論理ハイのALIGNシグナルを発行する。
ムで検出され、しかも、論理ハイのGRANTシグナルが論
理セルから受信されなかった場合には、アライン・ユニ
ットは、第4図に線Rで示すとともに、表1の3行目
に示すように、IDLE状態からPEND状態に変化する。一
旦、PEND状態になると、論理ハイのGRANTシグナルが受
信されない場合は、アライン・ユニットの状態は変化し
ないことになる。PEND状態にある間、組合わせロジック
26は入力シグナルの可能な任意の組合わせに対しても、
論理ハイのASSERTシグナルを発行することになる。ASSE
RTシグナルは論理セル30の入力に供給される。全てのAS
SERTシグナルが論理ハイであり、しかも、相互結合ネッ
トワークが空である場合、論理ハイREADYシグナルが全
てのアライン・ユニットにブロードキャストされ、全て
のプロセッサが完了する必要がある命令(例えば、通信
命令)を、全てのプロセッサが完了したことを示し、従
って、アラインされたことを示す。この論理ハイのREAD
Yシグナルは表1の論理ハイのGRANTシグナルである。論
理ハイのGRANTシグナルがOTHER命令とともに受信された
場合、このアライン・ユニットは、第4図に線OGで示す
とともに、表1の12行目に示すように、GOT状態に変化
し、引き続き論理ハイのASSERTシグナルを発行している
間、論理ハイのALIGNシグナルを発行する。
任意のOTHER命令が引き続き受信され、GRANTシグナル
が引き続き論理ハイである場合は、組み合わせロジック
はGOT状態のままであるが、ASSERTシグナルは論理ロー
になる。その結果、GRANTシグナルは論理ローになる。O
THER命令が受信されている間、このGRANTシグナルが論
理ローである場合、アライン・ユニットはSAVE状態に切
換わる。このSAVE状態は、TEST命令が受信されるまで変
化しない。ついで、アライン・ユニットはIDLE状態に戻
る。
が引き続き論理ハイである場合は、組み合わせロジック
はGOT状態のままであるが、ASSERTシグナルは論理ロー
になる。その結果、GRANTシグナルは論理ローになる。O
THER命令が受信されている間、このGRANTシグナルが論
理ローである場合、アライン・ユニットはSAVE状態に切
換わる。このSAVE状態は、TEST命令が受信されるまで変
化しない。ついで、アライン・ユニットはIDLE状態に戻
る。
しかし、アライン・ユニットがGOT状態にある間に、T
EST命令が受信された場合は、アライン・ユニットは、
(GRANTシグナルが論理ハイである場合は、)BLOCK状態
に変化し、(GRANTシグナルが論理ローである場合
は、)IDLE状態に変化し、その結果、AASSERTシグナル
が論理ローになる。
EST命令が受信された場合は、アライン・ユニットは、
(GRANTシグナルが論理ハイである場合は、)BLOCK状態
に変化し、(GRANTシグナルが論理ローである場合
は、)IDLE状態に変化し、その結果、AASSERTシグナル
が論理ローになる。
BLOCK状態により、他のアライン・オペレーションの
実施が阻止される。このアライン・ユニットがBLOCK状
態にあり、しかも、GRANTシグナルが論理ローである間
に、このアライン・ユニットでOTHER命令が受信される
と直ちに、このアライン・ユニットは、BLOCK状態とIDL
E状態の間の線Oで示すように、IDLE状態に戻る。し
かし、別のREQUEST命令が受信された場合は、アライン
・ユニットは、GRANTシグナルが論理ローである場合
は、PEND状態に戻り、GRANTシグナルが論理ハイである
場合は、QUEUE状態に戻る。アライン・ユニットは、GRA
NTシグナルが論理ハイである限り、QUEUE状態のままで
あり、GRANTシグナルが論理ローになると、PEND状態に
戻ることになる。
実施が阻止される。このアライン・ユニットがBLOCK状
態にあり、しかも、GRANTシグナルが論理ローである間
に、このアライン・ユニットでOTHER命令が受信される
と直ちに、このアライン・ユニットは、BLOCK状態とIDL
E状態の間の線Oで示すように、IDLE状態に戻る。し
かし、別のREQUEST命令が受信された場合は、アライン
・ユニットは、GRANTシグナルが論理ローである場合
は、PEND状態に戻り、GRANTシグナルが論理ハイである
場合は、QUEUE状態に戻る。アライン・ユニットは、GRA
NTシグナルが論理ハイである限り、QUEUE状態のままで
あり、GRANTシグナルが論理ローになると、PEND状態に
戻ることになる。
あるいはまた、PEND状態であって、GRANTシグナルが
論理ハイである間に、アライン・ユニットがTEST命令を
受信した場合は、このアライン・ユニットはBLOCK状態
に変化することになる。BLOCK状態でのオペレーション
は、上述したオペレーションと同一である。
論理ハイである間に、アライン・ユニットがTEST命令を
受信した場合は、このアライン・ユニットはBLOCK状態
に変化することになる。BLOCK状態でのオペレーション
は、上述したオペレーションと同一である。
本発明の別の実施例の形態を第5図に示す。第5図に
示すように、本装置は、プロセッサ110のアレイと、ア
ライン・ユニット120のアレイと、組合わせ論理セル130
のアレイと、相互結合ネットワーク140とを備えてい
る。プロセッサ110と、アライン・ユニット120と、組合
わせ論理セル130は、第1図に示すプロセッサ10と、ア
ライン・ユニット20と、論理セル30と同一でも良い。プ
ロセッサ110は図示しない制御装置により制御すること
ができる。しかし、相互結合ネットワーク140は、個々
のルータ142と、各プロセッサ対間のコネクション・パ
ス144の形態で実現される点でネットワーク40と異な
る。
示すように、本装置は、プロセッサ110のアレイと、ア
ライン・ユニット120のアレイと、組合わせ論理セル130
のアレイと、相互結合ネットワーク140とを備えてい
る。プロセッサ110と、アライン・ユニット120と、組合
わせ論理セル130は、第1図に示すプロセッサ10と、ア
ライン・ユニット20と、論理セル30と同一でも良い。プ
ロセッサ110は図示しない制御装置により制御すること
ができる。しかし、相互結合ネットワーク140は、個々
のルータ142と、各プロセッサ対間のコネクション・パ
ス144の形態で実現される点でネットワーク40と異な
る。
このような場合、プロセッサごとに、プロセッサを検
査することにより、相互結合ネットワーク上のメッセー
ジ・トラフィックが存在しないか否かをテストすること
ができる。従って、各プロセッサに対するルータは出力
信号を生成する。この出力信号は、互いに関係付けをし
たプロセッサ間のコネクション・パス上にメッセージ・
トラフィックが存在しない場合、論理ハイになる。この
信号はANDゲートの1つの入力として供給される。ANDゲ
ートには、別の1つの入力として、そのプロセッサと関
係付けをしたアライン・ユニット130の出力が入力され
る。その結果、そのプロセッサと関係付けをした相互結
合ネットワークの一部におけるメッセージ・トラフィッ
クが存在しない場合は、論理ハイのシグナルがANDゲー
ト146により論理セル130に供給され、論理ハイのASSERT
シグナルがアライン・ユニットにより生成される。当
然、このため、第1図の論理セル30の2分木の最上位セ
ルから、第5図の論理セル130の2分木の最下位セルへ
のメッセージ・トラフィックが存在するか否かをテスト
する場所が変更される。他の点では、アライン・ユニッ
トと、論理セルのオペレーションは、第1図ないし第4
図に関する説明と同様である。
査することにより、相互結合ネットワーク上のメッセー
ジ・トラフィックが存在しないか否かをテストすること
ができる。従って、各プロセッサに対するルータは出力
信号を生成する。この出力信号は、互いに関係付けをし
たプロセッサ間のコネクション・パス上にメッセージ・
トラフィックが存在しない場合、論理ハイになる。この
信号はANDゲートの1つの入力として供給される。ANDゲ
ートには、別の1つの入力として、そのプロセッサと関
係付けをしたアライン・ユニット130の出力が入力され
る。その結果、そのプロセッサと関係付けをした相互結
合ネットワークの一部におけるメッセージ・トラフィッ
クが存在しない場合は、論理ハイのシグナルがANDゲー
ト146により論理セル130に供給され、論理ハイのASSERT
シグナルがアライン・ユニットにより生成される。当
然、このため、第1図の論理セル30の2分木の最上位セ
ルから、第5図の論理セル130の2分木の最下位セルへ
のメッセージ・トラフィックが存在するか否かをテスト
する場所が変更される。他の点では、アライン・ユニッ
トと、論理セルのオペレーションは、第1図ないし第4
図に関する説明と同様である。
本発明は、数多くの環境で、実施することができる。
例えば、プロセッサがIntel 80386マイクロプロセッサ
である場合は、80386命令セットのうちのINおよびOUT命
令を用いて、アライン・ユニットに命令を供給し、アラ
イン・ユニットからALIGNシグナルを受信することによ
り、本発明を実施することができる。
例えば、プロセッサがIntel 80386マイクロプロセッサ
である場合は、80386命令セットのうちのINおよびOUT命
令を用いて、アライン・ユニットに命令を供給し、アラ
イン・ユニットからALIGNシグナルを受信することによ
り、本発明を実施することができる。
例示的なコードは次のようなコードを備えている。す
なわち、 1.MOV AL,5 データが送信されるプロ
セッサのアドレス5をロード 2.OUT sending device,AL 送信装置によりデータを
送信 3.ADD AL,CL メッセージのデータを計
算 4.OUT sending device,AL 送信装置によりデータを
送信 5.MOV AL,1 アライン要求を表わす1
のビットをALにロード 6.OUT align unit,AL レジスタALの1のビット
をアライン・ユニット20に送信 ・ ・ ・ 20.IN AL,align unit アライン・ユニットから
のALIGNシグナルをレジスタALにロード 21.TEST AL,1 レジスタALのシグナルが
1のビットであるか否かをテスト 22.INE 20 1のビットでない場合、
行番号20の命令に戻る 23.IN AL,receiving device 1のビットである場合
は、受信装置からのシグナルをレジスタALにロードする
ことにより、例示したように、プログラムを続ける 本発明の実施に際して、プロセッサがそのプログラム
を続けることができる前に、プロセッサ間の通信が完了
することが必要である時は、常に、アラインの要求が各
プロセッサにより行われる。上記のコード例では、アラ
インの要求は行番号6で行われる。アラインの要求は、
各プロセッサと関係付けをしたアライン・ユニット20に
より処理され、論理ハイのASSERTシグナルとして、論理
セル30にフォワーディングされる。これらの要求は、論
理セル30によりAND演奏され、全てのプロセッサがこの
ような要求を行うと、論理ハイのシグナルがANDゲート6
0に供給される。相互結合ネットワークが空である場合
は、論理ハイのREADYシグナルがANDゲート60により、論
理セル30を介して、全てのアライン・ユニット20にブロ
ードキャストされる。
なわち、 1.MOV AL,5 データが送信されるプロ
セッサのアドレス5をロード 2.OUT sending device,AL 送信装置によりデータを
送信 3.ADD AL,CL メッセージのデータを計
算 4.OUT sending device,AL 送信装置によりデータを
送信 5.MOV AL,1 アライン要求を表わす1
のビットをALにロード 6.OUT align unit,AL レジスタALの1のビット
をアライン・ユニット20に送信 ・ ・ ・ 20.IN AL,align unit アライン・ユニットから
のALIGNシグナルをレジスタALにロード 21.TEST AL,1 レジスタALのシグナルが
1のビットであるか否かをテスト 22.INE 20 1のビットでない場合、
行番号20の命令に戻る 23.IN AL,receiving device 1のビットである場合
は、受信装置からのシグナルをレジスタALにロードする
ことにより、例示したように、プログラムを続ける 本発明の実施に際して、プロセッサがそのプログラム
を続けることができる前に、プロセッサ間の通信が完了
することが必要である時は、常に、アラインの要求が各
プロセッサにより行われる。上記のコード例では、アラ
インの要求は行番号6で行われる。アラインの要求は、
各プロセッサと関係付けをしたアライン・ユニット20に
より処理され、論理ハイのASSERTシグナルとして、論理
セル30にフォワーディングされる。これらの要求は、論
理セル30によりAND演奏され、全てのプロセッサがこの
ような要求を行うと、論理ハイのシグナルがANDゲート6
0に供給される。相互結合ネットワークが空である場合
は、論理ハイのREADYシグナルがANDゲート60により、論
理セル30を介して、全てのアライン・ユニット20にブロ
ードキャストされる。
上記のコード例では、READYシグナルまたはGRANTシグ
ナルの論理レベルは、それぞれ、このシグナルレベルを
個々に読み出す線20、21、22上の命令によりモニタさ
れ、論理レベルが1のビット、すなわち、論理ハイであ
るかどうかをテストし、この1のビットが受信されなか
った場合は、再循環する。これらの命令は、表1のTEST
命令と、ALIGNシグナルの機能を与える。
ナルの論理レベルは、それぞれ、このシグナルレベルを
個々に読み出す線20、21、22上の命令によりモニタさ
れ、論理レベルが1のビット、すなわち、論理ハイであ
るかどうかをテストし、この1のビットが受信されなか
った場合は、再循環する。これらの命令は、表1のTEST
命令と、ALIGNシグナルの機能を与える。
全プロセッサはREADYシグナルが論理ハイになった時
にアラインされる。すなわち、READYシグナルの論理ハ
イは、行番号6でのアライン要求と、例えば、行番号20
〜23でテストを開始してレジスタALに1のビットが存在
するときの間の時点で生じる。しかし、各プロセッサが
同時にこのようなテストを行う必要はなく、また、最初
にこのようなテストをREADYシグナルが論理ハイになっ
た後に行う必要はない。プログラムが行番号20〜21に到
達する前に、論理ハイのREADYシグナルが受信された場
合は、アライン・ユニットはこれらの行番号に到達する
まで、この情報を保管する。アライン・ユニットは、プ
ログラムが行番号20に到達したとき、READYシグナルが
依然として論理ローである場合は、READYグナルが論理
ハイになるまで、プログラムは行番号20〜22の命令を単
に繰り返すだけである。
にアラインされる。すなわち、READYシグナルの論理ハ
イは、行番号6でのアライン要求と、例えば、行番号20
〜23でテストを開始してレジスタALに1のビットが存在
するときの間の時点で生じる。しかし、各プロセッサが
同時にこのようなテストを行う必要はなく、また、最初
にこのようなテストをREADYシグナルが論理ハイになっ
た後に行う必要はない。プログラムが行番号20〜21に到
達する前に、論理ハイのREADYシグナルが受信された場
合は、アライン・ユニットはこれらの行番号に到達する
まで、この情報を保管する。アライン・ユニットは、プ
ログラムが行番号20に到達したとき、READYシグナルが
依然として論理ローである場合は、READYグナルが論理
ハイになるまで、プログラムは行番号20〜22の命令を単
に繰り返すだけである。
当業者にとって当然であるが、本発明を実施する際
に、多くの変更を行なうことができる。例えば、本発明
は相互結合ネットワーク上の通信が完了したか否かをテ
ストする装置(ANDゲート60)に関して記載したが、こ
のような通信ネットワークのテストの代わりに行なう
か、あるいは、このようなテストに加えて、他のテスト
を行うことも望ましい。従って、コンピュータ・システ
ムが数値計算コプロセッサを含む場合か、あるいは、ソ
フトウェアが種々のサブルーチンを含み、これらサブル
ーチンの出力がプロセッサからプロセッサに通信される
データを変更した場合、このような装置あるいはオペレ
ーションがプロセッサにREADYシグナルを発行する前
に、それらのタスクを完了したことを保証するため、こ
のような装置およびオペレーションをテストすることが
望ましい。このようなテストは次のようにして容易に行
なうことができる。すなわち、プログラムを続けること
ができる前にオペレーションが完了しなければならない
各ハードウエアまたはソフトウエア・エレメントと関係
付けをしたアクティビティ・フラッグの状態を、グロー
バルORネットワークを用いてテストすることは、容易に
行うことができる。
に、多くの変更を行なうことができる。例えば、本発明
は相互結合ネットワーク上の通信が完了したか否かをテ
ストする装置(ANDゲート60)に関して記載したが、こ
のような通信ネットワークのテストの代わりに行なう
か、あるいは、このようなテストに加えて、他のテスト
を行うことも望ましい。従って、コンピュータ・システ
ムが数値計算コプロセッサを含む場合か、あるいは、ソ
フトウェアが種々のサブルーチンを含み、これらサブル
ーチンの出力がプロセッサからプロセッサに通信される
データを変更した場合、このような装置あるいはオペレ
ーションがプロセッサにREADYシグナルを発行する前
に、それらのタスクを完了したことを保証するため、こ
のような装置およびオペレーションをテストすることが
望ましい。このようなテストは次のようにして容易に行
なうことができる。すなわち、プログラムを続けること
ができる前にオペレーションが完了しなければならない
各ハードウエアまたはソフトウエア・エレメントと関係
付けをしたアクティビティ・フラッグの状態を、グロー
バルORネットワークを用いてテストすることは、容易に
行うことができる。
フロントページの続き (58)調査した分野(Int.Cl.6,DB名) G06F 15/163 JOIS EPAT DIALOG WPI
Claims (14)
- 【請求項1】コンピュータシステムの備える複数のプロ
セッサでありそれぞれ個々の命令ストリームを処理する
複数のプロセッサのオペレーションをアラインさせる方
法であり、前記各命令ストリームが、アライン要求タイ
プと、アライン・テスト・タイプと、少なくとも1つの
他の命令タイプとを含む複数の命令タイプの命令を含
み、前記各命令ストリームが、該命令ストリームに位置
するアライン要求タイプの少なくとも1つの命令であっ
てある時点で実行される命令を含むとともに、前記命令
ストリームに位置するアライン・テスト・タイプの少な
くとも1つの命令であって前記アライン要求タイプの命
令より後の時点で実行される命令を含み、前記命令スト
リームに位置する別の命令タイプの少なくとも1つの命
令であってアライン要求タイプの命令を実行する時点
と、アライン・テスト・タイプの命令を実行する時点と
の間で実行される命令を含むアライン制御方法であっ
て、 A.前記複数のプロセッサが、それぞれ、前記アライン要
求タイプの個々の命令ストリームからの命令を実行する
と直ちに、要求指示を生成し、その後、引き続き命令を
実行するステップと、 B.前記複数のプロセッサが、それぞれ、前記アライン・
テスト・タイプの個々の命令ストリームからの命令を実
行しても、アライン指示がない場合、前記命令ストリー
ムのその後の命令の処理をディセーブルするステップ
と、 C.前記複数のプロセッサが全て前記要求指示を生成した
とき、アライン指示を生成し、前記複数のプロセッサを
イネーブルにして、前記アライン・テスト・タイプの命
令の後の個々の命令ストリームからの命令を実行するス
テップと を備えたことを特徴とする複数のプロセッサをアライン
させる方法。 - 【請求項2】コンピュータシステムにおいて、 A.個々の命令ストリームを処理する複数のプロセッサで
あって、各命令ストリームは、アライン要求タイプと、
アライン・テスト・タイプと、少なくとも1つの他の命
令タイプを含む複数の異なる命令タイプの命令のシーケ
ンスを含み、各命令ストリームは、該命令ストリームに
位置するアライン要求タイプの少なくとも1つの命令で
あってある時点で実行される命令を含むとともに、前記
命令ストリームに位置するアライン・テスト・タイプの
少なくとも1つの命令であって前記アライン要求タイプ
の命令より後の時点で実行される命令を含み、前記命令
ストリームに位置する別の命令タイプの少なくとも1つ
の命令であってアライン要求タイプの命令を実行する時
点と、アライン・テスト・タイプの命令を実行する時点
の間で実行される命令を有する少なくとも幾つかの命令
ストリームを含み、各プロセッサは、前記アライン要求
タイプの命令を処理する間、アライン要求指示を生成
し、各プロセッサは、前記アライン・テスト・タイプの
命令を処理する間、アライン・テスト指示を生成し、ア
ライン指示を受信したか否かをモニタし、各プロセッサ
は、アライン指示受信後まで、前記アライン・テスト・
タイプの前記命令の後の命令を処理することが禁止され
る複数のプロセッサと、 B.前記全プロセッサによりアライン要求指示が生成され
た後に、各プロセッサからのアライン・テスト指示を受
信したとき、この受信に応答して、前記各プロセッサに
対して、アライン指示を生成するアライン・ネットワー
クと を備えたことを特徴とするコンピュータ・システム。 - 【請求項3】請求の範囲第2項に記載のコンピュータ・
システムにおいて、前記アライン・ネットワークは、 A.各プロセッサに関係付けをした状態制御回路であっ
て、 i.第1状態と、アライン状態回路がアライン要求を生成
する第2状態と、前記アライン状態回路がアライン指示
を生成する第3状態とを有するアライン状態回路と、 ii.該アライン状態回路をイネーブルにして、 a.前記第1状態から前記第2状態にシフトし、命令スト
リームに位置するアライン要求タイプの命令を、関係付
けをしたプロセッサが受信したとき、この受信に応答し
て、アライン要求を生成し、 b.前記第2状態から前記第3状態にシフトし、レディシ
グナルのアサートと、命令ストリームに位置するアライ
ン・テスト・タイプの命令の前記プロセッサによる受信
が一致したとき、それに応答して、アライン指示を生成
し、 c.前記レディ信号のネゲーションに応答して、前記第3
状態から前記第1状態にシフトする 状態制御回路と、 B.アライン要求を生成する前記全プロセッサに関係付け
をした前記アライン状態回路に応答して、前記アサート
・シグナルをアサートし、そうでない場合には、前記レ
ディシグナルをネゲートされた状態に維持する一致テス
ト手段と を備えたことを特徴とするコンピュータ・システム。 - 【請求項4】請求の範囲第3項に記載のコンピュータシ
ステムにおいて、前記一致テスト手段は、前記全プロセ
ッサからのアライン要求が一致したとき、前記レディシ
グナルを生成することを特徴とするコンピュータ・シス
テム。 - 【請求項5】請求の範囲第4項において、前記一致テス
ト手段は、 ルート論理セルと、複数のリーフ論理セルを定義する木
構造状に結合された複数の論理セルであって、複数の子
から入力シグナルを受信すると、その受信に応答して、
親に結合されている出力シグナルを生成する一致回路を
それぞれ含む論理セルであり、前記アサート・シグナル
をルートセルに伝播する論理セルと、 予め定めた数のアライン状態回路からのアライン要求信
号を入力信号として有し、アサート・シグナルを出力シ
グナルとしてそれぞれ生成するリーフセルと、 前記全アライン状態制御回路に結合するためのレディ指
示を生成するレディ指示生成回路を含むルートセルと を備えたことを特徴とするコンピュータ・システム。 - 【請求項6】請求の範囲第5項において、前記論理セル
は、それぞれ、クロックシグナルに応答して前記一致回
路からの出力シグナルをラッチするラッチ回路であっ
て、ルートセルに向けて伝播されている前記アサート・
シグナルを備えたラッチされた出力シグナルを生成する
ラッチ回路をさらに含むことを特徴とするコンピュータ
・システム。 - 【請求項7】請求の範囲第5項において、前記論理セル
は、それぞれ、クロックシグナルに応答して親論理セル
からのレディ指示をラッチするラッチであって、ラッチ
されたレディ指示を子に伝送し、該レディ指示を、前記
ルート論理セルからリーフ論理セルに伝播するラッチを
含むレディ指示分配回路をさらに含み、前記リーフ論理
セルは、前記ラッチによりラッチされたレディ指示を、
前記ラッチに結合されているアライン状態回路に伝送す
ることを特徴とするコンピュータ・システム。 - 【請求項8】請求の範囲第2項において、前記プロセッ
サ間でメッセージを転送する相互結合手段であって、選
択されたステータス状態を示すステータス情報シグナル
をさらに生成する相互結合手段をさらに備え、前記アラ
イン・ネットワークは、前記ステータス情報シグナルに
応答して、前記各プロセッサに対するアライン指示をさ
らに生成することを特徴とするコンピュータ・システ
ム。 - 【請求項9】コンピュータシステムの備える複数のプロ
セッサでありそれぞれ命令ストリームを定義している自
分の命令シーケンスを実行する複数のプロセッサのオペ
レーションをアラインさせるアライン制御装置であっ
て、前記各命令ストリームが、アライン要求タイプと、
アライン・テスト・タイプと、少なくとも1つの他の命
令タイプを含む複数のタイプの命令を含み、前記各命令
ストリームが、該命令ストリームに位置するアライン要
求タイプの少なくとも1つの命令であってある時点で実
行される命令を含むとともに、前記命令ストリームに位
置するアライン・テスト・タイプの少なくとも1つの命
令であって前記アライン要求タイプの命令より後の時点
で実行される命令を含み、前記命令ストリームに位置す
る別の命令タイプの少なくとも1つの命令であってアラ
イン要求タイプの命令を実行する時点と、アライン・テ
スト・タイプの命令を実行する時点の間で実行される命
令を有する少なくとも幾つかの命令ストリームを含むア
ライン制御装置において、 A.当該プロセッサの個々の命令ストリームからの命令を
当該プロセッサが処理するのに応答して、当該プロセッ
サにそれぞれ関係付けをした複数のテスト手段であっ
て、前記命令をテストして、該命令がアライン要求タイ
プの命令か、アライン・テスト・タイプの命令かを判定
する複数のテスト手段と、 B.該全テスト手段がアライン要求タイプの命令を検出し
たと判定し、このような判定を用いて、レディシグナル
の生成を制御する判定手段と、 C.当該プロセッサと関係付けをした複数の禁止手段であ
って、前記レディシグナルが前記判定手段により生成さ
れるまで、前記アライン・テスト・タイプの命令を越え
て、前記関係付けをしたプロセッサが命令を実行するこ
とを禁止する複数の禁止手段と を備えたことを特徴とするアライン制御装置。 - 【請求項10】請求の範囲第9項において、前記テスト
手段は、それぞれ、 A.アライン・プロセスの現状態の指示をストアする手段
と、 B.レディシグナルと、前記プロセッサからの命令ストリ
ームの実行を表すシグナルと、前記現状態を表すシグナ
ルとに応答して、前記アライン・プロセスの次の状態
と、アサート・シグナルと、アラインが達成されたか否
かを示すシグナルとを識別するシグナルを生成する手段
と を備えたことを特徴とするアライン制御装置。 - 【請求項11】請求の範囲第9項において、前記判定手
段は、前記プロセッサからのアライン要求が一致したと
きレディシグナルを生成することを特徴とするアライン
制御装置。 - 【請求項12】請求の範囲第11項において、前記判定手
段は、 ルート論理セルと、複数のリーフ論理セルを定義する木
構造状に結合された複数の論理セルであって、複数の子
から入力シグナルを受信すると、その受信に応答して、
親に結合されている出力シグナルを生成する一致回路を
それぞれ含む論理セルと、 予め定めた数のアライン状態回路からのアライン要求信
号を入力信号として有し、アサート・シグナルを出力シ
グナルとしてそれぞれ生成するリーフセルと、 前記アサート・シグナルをルートセルに伝播する論理セ
ルと、 前記全アライン状態制御回路に結合するためのレディ指
示を生成するレディ指示生成回路を含むルートセルと を備えたことを特徴とするアライン制御装置。 - 【請求項13】請求の範囲第12項において、それぞれ、
クロックシグナルに応答して前記一致回路からの出力シ
グナルをラッチするラッチ回路であって、ルートセルに
向けて伝播されている前記アサート・シグナルを備えた
ラッチされた出力シグナルを生成するラッチ回路をさら
に含むことを特徴とするアライン制御装置。 - 【請求項14】請求の範囲第12項において、前記論理セ
ルは、それぞれ、クロックシグナルに応答して親論理セ
ルからのレディ指示をラッチするラッチであって、ラッ
チされたレディ指示を子に伝送し、該レディ指示を、前
記ルート論理セルからリーフ論理セルに伝播するラッチ
を含むレディ指示分配回路をさらに含み、前記リーフ論
理セルは、前記ラッチによりラッチされたレディ指示
を、前記ラッチに結合されているアライン状態回路に伝
送することを特徴とするアライン制御装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15138688A | 1988-02-02 | 1988-02-02 | |
US151,386 | 1988-02-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04505675A JPH04505675A (ja) | 1992-10-01 |
JP2792699B2 true JP2792699B2 (ja) | 1998-09-03 |
Family
ID=22538534
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1502292A Expired - Lifetime JP2792699B2 (ja) | 1988-02-02 | 1989-02-01 | コンピュータシステム、アライン制御装置および方法 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP0394362B1 (ja) |
JP (1) | JP2792699B2 (ja) |
AT (1) | ATE155264T1 (ja) |
DE (1) | DE68928164T2 (ja) |
WO (1) | WO1989007299A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5420034A (en) * | 1986-07-31 | 1995-05-30 | Calgene, Inc. | Seed-specific transcriptional regulation |
IE920032A1 (en) * | 1991-01-11 | 1992-07-15 | Marconi Gec Ltd | Parallel processing apparatus |
US5442797A (en) * | 1991-12-04 | 1995-08-15 | Casavant; Thomas L. | Latency tolerant risc-based multiple processor with event driven locality managers resulting from variable tagging |
WO2012127629A1 (ja) | 2011-03-22 | 2012-09-27 | 富士通株式会社 | サーバシステム及びクロスバボードの活性保守方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2253421A5 (ja) * | 1973-11-30 | 1975-06-27 | Honeywell Bull Soc Ind | |
US4229790A (en) * | 1978-10-16 | 1980-10-21 | Denelcor, Inc. | Concurrent task and instruction processor and method |
US4342083A (en) * | 1980-02-05 | 1982-07-27 | The Bendix Corporation | Communication system for a multiple-computer system |
US4399504A (en) * | 1980-10-06 | 1983-08-16 | International Business Machines Corporation | Method and means for the sharing of data resources in a multiprocessing, multiprogramming environment |
US4554626A (en) * | 1981-05-22 | 1985-11-19 | Data General Corporation | Digital data processing system |
US4733353A (en) * | 1985-12-13 | 1988-03-22 | General Electric Company | Frame synchronization of multiply redundant computers |
US4775934A (en) * | 1986-06-17 | 1988-10-04 | Yeda Research And Development Co. | Method for concurrent logic program |
JPH0630094B2 (ja) * | 1989-03-13 | 1994-04-20 | インターナショナル・ビジネス・マシーンズ・コーポレイション | マルチプロセツサ・システム |
-
1989
- 1989-02-01 EP EP89902461A patent/EP0394362B1/en not_active Expired - Lifetime
- 1989-02-01 AT AT89902461T patent/ATE155264T1/de not_active IP Right Cessation
- 1989-02-01 WO PCT/US1989/000395 patent/WO1989007299A1/en active IP Right Grant
- 1989-02-01 DE DE68928164T patent/DE68928164T2/de not_active Expired - Lifetime
- 1989-02-01 JP JP1502292A patent/JP2792699B2/ja not_active Expired - Lifetime
Non-Patent Citations (1)
Title |
---|
Droc.of ASPLOS▲III▼ Vol.24 Spelssve 1989 P.54−63 |
Also Published As
Publication number | Publication date |
---|---|
DE68928164T2 (de) | 1998-01-08 |
EP0394362B1 (en) | 1997-07-09 |
JPH04505675A (ja) | 1992-10-01 |
ATE155264T1 (de) | 1997-07-15 |
DE68928164D1 (de) | 1997-08-14 |
WO1989007299A1 (en) | 1989-08-10 |
EP0394362A1 (en) | 1990-10-31 |
EP0394362A4 (en) | 1992-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5222237A (en) | Apparatus for aligning the operation of a plurality of processors | |
US5805915A (en) | SIMIMD array processing system | |
US6216174B1 (en) | System and method for fast barrier synchronization | |
US5193187A (en) | Fast interrupt mechanism for interrupting processors in parallel in a multiprocessor system wherein processors are assigned process ID numbers | |
JP2989518B2 (ja) | 多重プロセッサ・エミュレーション・システム | |
US5872987A (en) | Massively parallel computer including auxiliary vector processor | |
US8375197B2 (en) | Performing an allreduce operation on a plurality of compute nodes of a parallel computer | |
US5815723A (en) | Picket autonomy on a SIMD machine | |
CN102640131B (zh) | 并行线程处理器中的一致分支指令 | |
US5828894A (en) | Array processor having grouping of SIMD pickets | |
US7051180B2 (en) | Masterless building block binding to partitions using identifiers and indicators | |
US9009312B2 (en) | Controlling access to a resource in a distributed computing system with a distributed access request queue | |
US7895260B2 (en) | Processing data access requests among a plurality of compute nodes | |
US4006466A (en) | Programmable interface apparatus and method | |
US8122228B2 (en) | Broadcasting collective operation contributions throughout a parallel computer | |
US9294551B1 (en) | Collective engine method and apparatus | |
US20110270986A1 (en) | Optimizing Collective Operations | |
US20080040574A1 (en) | Super-reconfigurable fabric architecture (surfa): a multi-fpga parallel processing architecture for cots hybrid computing framework | |
US7577874B2 (en) | Interactive debug system for multiprocessor array | |
KR101056153B1 (ko) | 배리어 동작들의 조건부 브로드캐스트를 위한 방법 및 장치 | |
JP2004326784A (ja) | 分散型ノード・トポロジにおけるクロス・チップ通信機構 | |
US11036546B1 (en) | Multi-threaded shared memory functional simulation of dataflow graph | |
JP2792699B2 (ja) | コンピュータシステム、アライン制御装置および方法 | |
US8843728B2 (en) | Processor for enabling inter-sequencer communication following lock competition and accelerator registration | |
US20030131154A1 (en) | Building block removal from partitions |