JPH05506113A - 並列プロセッサメモリシステム - Google Patents

並列プロセッサメモリシステム

Info

Publication number
JPH05506113A
JPH05506113A JP91504101A JP50410191A JPH05506113A JP H05506113 A JPH05506113 A JP H05506113A JP 91504101 A JP91504101 A JP 91504101A JP 50410191 A JP50410191 A JP 50410191A JP H05506113 A JPH05506113 A JP H05506113A
Authority
JP
Japan
Prior art keywords
memory
processor
data
bus
address
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
JP91504101A
Other languages
English (en)
Inventor
キム、ウォン・エス
バルファー、デイビッド・エム
ニコルズ、ジョン・アール
ブランク、ダブリュ・トーマス
ファイゲル、ハンネス
Original Assignee
マスパー・コンピューター・コーポレイション
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 マスパー・コンピューター・コーポレイション filed Critical マスパー・コンピューター・コーポレイション
Publication of JPH05506113A publication Critical patent/JPH05506113A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17393Indirect interconnection networks non hierarchical topologies having multistage networks, e.g. broadcasting scattering, gathering, hot spot contention, combining/decombining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8015One dimensional arrays, e.g. rings, linear arrays, buses

Abstract

(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。

Description

【発明の詳細な説明】 並列プロセッサメモリシステム 関連量8のクロスレファレンス 本願と同日に出願されかつ同一の譲受は人に譲渡された継続中の以下の特許出願 に言及することをもって本件出願の一部とする。Ni cko 1 ] sらに よる“5calable Inter−Processor and Pr。
cessor to Ilo Messaging System for P arallel Processing Arrays”を名称とする1990 年1月5日付は米国特許出願第07/461.492号、Taylorによる’ Network and Method forInterconnecing  Router Elements Within Parallel Com puter System’を名称とする1990年1月5日付は米国特許出願 第07/461.572号、Zap 1sekによるRouter Chip  with Quad−Crossbar and Hyperbar Pers onalities”を名称とする1990年1月5日付は米国特許出願第07 /461,551号。
本発明は大規模並列プロセッサのためのデータ転送システムに関し、特にクラス タとして配列された複数のSIMD 412列プロセッサと共通のクラスタメモ リとの間でデータのアドレス及びデータの転送を行なうためのデータ転送システ ムに関する。
発明の背景 並列プロセッサは、対応するデータストリームに対して動作する多数の比較的単 純なプロセッサ要素により同一の命令を同時に実行することに基づくものとして 開発された。
単一命令複数データ(SIMD)プロセッサとして知られるこれらのプロセッサ は、イメージ処理、信号処理、人工知能、データベース操作及びシミュレーショ ン等の用途に於て有用である。
通常、SIMDプロセッサは、プロセッサ要素アレイと、プロセッサ要素と■0 デバイスとの間で計算及び演算の結果をやりとりするためのラウティングネット ワーク(r。
ut ing network)とを有する。プロセッサ要素及びラウティング ネットワークの動作は、コンピュータサブシステムから供給される命令及びデー タに基づき、別途設けられた制御プロセッサにより制御される。
最近のSrMDプロセッサが、1982年2月2日にBa t che rに付 与された米国特許第4.314,349号に記載されている。処理要素は、基本 的なユニットとしてのブロックからなり、各処理要素が、双方向データバスによ り、それぞれ対応する固有のランダムアクセスメモリに接続されている。データ バスは、処理要素のための主データバスをなしている。各マシーンサイクルの間 に、1ビツトのデータが、6つのソース源、即ちRAMから読出されたビット、 BSC,PまたはSレジスタの状態、或いは等価機能の状態から転送される。デ ータバスに於けるデータビットの目的地は、例えば次のようなものからなる。R AMに於けるアドレス位置、A、GまたはSレジスタ、Pレジスタに対応するロ ジック、sum−ORツリーへの入力、パリティ−ツリーへの入力。容易に理解 されるように、メモリIO動作の間に、バスはメモリデータのために振向けられ 、バスへのアクセスを必要とする他の動作を行なうことはできない。
1989年2月14日にHillisらに付与された米国特許第4,805,1 73号に記載されたSIMDプロセッサは、複数のプロセッサ及び複数のコンピ ュータメモリの間で作動するエラー制御及び修正技術に関する記載を含んでいる 。各集積回路は、メモリインタフェースを介して、対応するメモリに接続された 16個のプロセッサを備えている。メモリは、22個の4に×1ビットRAMを なしている。16個の4に×1スライスのそれぞれは、16個のプロセッサの異 なる1つのためのメモリとして機能し、残りの6個の4に×1ビットスライスは 16個のプロセッサのメモリに記憶されているデータのためのパリティまたはシ ンドロームビットを記憶する。アドレスデコーダにより指定されたアドレスに於 ける各集積回路に対して並列デ−タが読出し或いは書込みされる。メモリ読出し 動作に於て、一時に一列づつ並列に読出され、16個の出力ラインにデータを出 力し、更に6つの出力ラインにパリティ出力を発生する。これらの信号は、パリ ティエラーを検出し修正するためエラー制御回路に並列に供給される。メモリ書 込み動作に於ては、16個のプロセッサから与えられたアドレスに於ける16個 のメモリスライスに向けて並列に書込まれ、6つのシンドローム出力が同一のア ドレスの6つの他のメモリスライスに書込まれ、同時にシンドローム出力を発生 するために用いられたデータが16個のメモリスライスに記憶される。容易に理 解されるように、エラー制御及び修正技術のためには、16個のメモリスライス の全てを並列に読出し或いは書込みする必要がある。
Hillisらによる第4.805.173号プロセッサに関連するSIMDプ ロセッサが、1988年12月13日にHillisに付与された米国特許第4 ,791゜641号に記載されている。Hillis特許に於けるエラー修正シ ステムは、複数のプロセッサに対応する複数のメモリのためのデータを単一のデ ータワードとして取扱い、この単一のデータワードのためのエラーコードを発生 する。
容易に理解されるように、エラー修正システムは、単一のデータワードを1つの ユニットとして読み出し或いは書込むことを予定するものである。
並列プロセッサシステムに於ては、各プロセッサ要素当りのメモリの大きさが小 さい傾向がある。しかしながら、多数のプロセッサ要素か用いられることから、 並列プロセッサにより必要とされるメモリの総量は大きい。残念ながら、単純な マイクロプロセッサと同等の速度を有するSRAMは比較的高価である。残念な がら、DRAM等比較的廉価なメモリは低速であって、それを並列プロセッサに 用いた場合には、メモリ動作が完了するまで、プロセッサ要素が待機しなければ ならなくなり、その性能を損なうことが予想される。
発明の開示 本発明に基づくメモリシステムの構造は、メモリとプロセッサとの間のデータ転 送動作が、並列処理動作と同時に進行するのを可能にする。並列プロセッサの全 体的な速度をそれほど低下させることなく比較的低速のディスクリートメモリを 使うことができる。DRAMムを用いるある実施例に於ては、メモリは、シーケ ンシャルページモード及びランダムモードの両者に於て最大メモリバンド幅また はその近傍に於いて利用される。
本発明に基づくメモリシステムの構造は、プロセッサ要素によるそのメモリ空間 へのアドレスが、アレイ制御ユニットにより全てのプロセッサ要素に供給される アドレスに基づき、またはそのプロセッサ要素自体により局地的(ローカル)に 計算されたアドレスに基づいて行なわれる。このようなアドレス方法は、データ ビット及びエラー検出及び修正ビットを含むメモリワードに対しても適用可能で ある。
このような或いは他の利点は、本発明、即ちそれぞれ複数のプロセッサを有する 複数のクラスタを備える並列プロセッサ等に適するメモリシステムにより達成さ れる。成る実施例に於ては、各プロセッサ要素はイネーブルフラッグを有する。
メモリシステムは、1つのプロセッサユニットにそれぞれ対応する複数のメモリ フラッグを有する。メモリシステムはまた、1つのプロセッサ要素にそれぞれ対 応する複数のステージレジスタを有している。メモリが提供され、クラスタデー タバスが、クラスタのステージレジスタのそれぞれをメモリに接続する。更に、 ポーリングネットワーク(polling network)に接続された複数 の許可リクエストフラッグが提供される。各許可リクエストフラグは、1つのプ ロセッサ要素に対応しており、ポーリングネットワークに於ける信号及び対応す るメモリフラッグの状態に応答して、対応するデータレジスタとメモリとの間の ■0動作を決定する。
成る実施例に於ては、複数のアドレスレジスタが提供され、それぞれ1つのプロ セッサ要素に対応している。アドレスレジスタは、クラスタアドレスバスを介し てメモリに接続されており、各許可リクエストフラッグは、対応するアドレスレ ジスタの内容に基づき、対応するデータレジストとメモリとの間の■0動作を決 定するべく、ポーリングネットワーク及び対応するメモリフラッグの状態に応答 する。
更に別の変形例に於ては、アドレスバスが、並列プロセッサの制御ユニットから のメモリに接続されている。各許可リクエストフラッグはアドレスバスの内容に 応じて、対応するデータレジスタとメモリとの間のIO動作を決定するべく−ポ ーリングネットワーク及び対応するメモリフラッグの状態に応答する。更に別の 変形実施例に於ては、エラーパスがメモリに接続されており、複数のエラーレジ スタが設けられている。各エラーレジスタは、1つのプロセッサ要素に対応して おり、それに接続されると共にエラーパスにも接続される。各許可リクエストフ ラッグは、対応するエラーレジスタと対応するメモリとの間の■0動作を決定す るべく、ポーリングネットワーク及び関連するメモリフラッグの状態に応答する 。
更に別の実施例に基づくメモリシステムに於ては、所定の幅を有するデータバス がクラスタ内のプロセッサ要素のそれぞれに接続されている。更に、エラーパス がクラスタ内の各プロセッサ要素に接続されており、同じく予め定められた幅を 有する。クラスタのためのメモリも設けられており、その各ワードは、データバ ス及びエラーパスの幅の和に等しい幅を有する。クラスタのためのアドレスバス も設けられ、そのクラスタメモリがアドレスバスの内容に基づきデータバス及び エラーパスに対する■0動作を行なうためのイネーブル信号に応答する。成る変 形実施例に於ては、アドレスバスがクラスタ内の各プロセッサ要素に接続されて いる。更に別の変形実施例に於ては、アドレスバスが並列プロセッサのアレイ制 御ユニットに接続されている。
これらの変形例に於ては、アドレスバスは、クラスタ内の各プロセッサ要素に接 続された識別バスを備えるものであってよい。識別バスは、各プロセッサ要素に 於ける固定された或いはプログラム可能なレジスタにより駆動されるものであっ てよい。
本発明の更に別の実施例によれば、並列プロセッサに於てデータは次のようにし て転送される。プロセッサ要素のクラスタとクラスタメモリとの間に共通のデー タバスが設けられており、プロセッサ要素のそれぞれのメモリフラッグが並列に 評価され、メモリフラッグの値が、対応する許可リクエストフラッグに供給され る。ポーリング信号が許可リクエストフラッグの選ばれた1つに加えられ、この フラッグは、共通のデータバスに於ける選択された許可リクエストフラッグに対 応するデータレジスタとメモリとの間のIO動作を決定するべく、対応するメモ リフラッグの値及びポーリング信号に応答する。
上記した実施例の成る変形実施例に於ては、アドレスが、選択された許可リクエ ストフラッグに対応するアドレスレジスタから、メモリに向けて、該メモリに接 続された共通のアドレスバスを介して供給される。選択された許可リクエストフ ラッグは、与えられたアドレスに基づき選択された許可リクエストフランクに対 応するデータレジスタとメモリとの間に於ける共通のデータバスに於ける■0動 作を決定するために、その対応するメモリフラッグの値及びポーリング信号に応 答する。更に別の変形例に於ては、アドレスが、プロセッサ制御ユニットから、 放送バスを介してメモリに供給される。選択された許可リクエストフラッグは、 与えられたアドレスに基づき、共通のデータバスに於ける、許可リクエストフラ ッグに対応するデータレジスタとメモリとの間の■0動作を決定するべ(対応す るメモリフラッグの値及びポーリング信号に応答する。
図面の簡単な説明 添付の図面中に於いて対応する部分には同様の符号を付した。
第1図は大規模並列プロセッサのダイヤグラム図である。
第2図はプロセッサ要素のプリント基板のダイヤグラム図である。
第3図は並列プロセッサの実行及びデータバスサイクルのフロー図である。
第4図はプロセッサ要素の一例のデータフローバスを示すブロック図である。
第5図は第4図に示された演算処理ユニットの一例のためのデータフローバスの ブロック図である。
第6図はクラスタ内の全てのプロセッサ要素に共通なデータフローバスのブロッ ク図である。
第7図は第6図のクラスタメモリの模式的論理ダイヤグラム図である。
第8図は第6図のアドレスコントローラの模式的論理ダイヤグラム図である。
第9図は第6図のエラー修正ロジックの模式的論理ダイヤグラム図である。
第10図は第4図のステージレジスタの模式的論理ダイヤグラム図である。
第11図は第4図及び第5図に示されたエクスポーホント/アドレスレジスタの 模式的論理ダイヤグラム図である。
第12図は第4図の許可リクエストフラッグ回路の模式的論理ダイヤグラム図で ある。
第13図は第4図及び第5図に於けるE及びMフラッグ回路の模式的論理ダイヤ グラム図である。
第14図は第5図に示されたPEレジスタ回路の模式的論理ダイヤグラム図であ る。
第15図は第5図のORツリーラッチ回路の模式的論理ダイヤグラム図である。
第16図は第6図のクラスタメモリのための構造を示すダイヤグラム図である。
好適実施例及びその他の実施例の説明 大規模並列プロセッサが第1図に示されている。並列プロセッサの中心部には、 符号10a、10b等により示されるプロセッサ要素用ボードLに設けられた複 数の個別のプロセッサ要素を備えたプロセッサ要素アレイ10が設けられている 。並列プロセッサは、所望に応じて、l、2.4.8若しくは16個のプロセッ サ要素からなるものとして構成(configure)することができる。並列 プロセッサは更に、ラウタ(router)14.16.18を備えるラウタネ ットワーク12を備えている。適当なラウタネットワークが、前記したZap  i s ekによる特許出願明細書中に記載されている。PEアレイ10は、ア レイ制御ユニット(ACU)20の制御下にある。ユーザは、UNIXオペレー ティングシステムに基づくサブシステム24を介してACU20に接続されたユ ーザコンソール20から並列プロセッサに対してアクセスすることができる。サ ブシステム24は、Ethernet (商標名)ネットワーク26を介して他 のコンピュータと通信することができる。人力及び出力動作は、ACU20を、 10プロセツサ及びI ORAMメモリ30、フレームバッファ32及び、対応 するディスプレイ33、高速チャンネル34及び対応するH8Cインタフェース ライン35,0.35゜1、ユーザにより定義されたl036及び対応するイン タフェースライン37、ディスクアレイシステム38に接続されたバスを介して 行なわれる。
ボード10a、10b等のようなプロセッサ要素プリント回路基板(PEボード )が第2図に示されている。PEボードは、チップ当り2つのクラスタが配列さ れた64個の概ね同一なPEクラスタ40.00〜40.63を備えており、1 つのPEボード当り32PEクラスタチツプを有する。各クラスタ40.00〜 40.63は、成る実施例に於ては、256キロバイトのメモリを含むクラスタ メモリ54を備えていることにより、各PEボードは16メガバイトのメモリを 有することとなる。従って、16個のPEボードを組合わせてなる並列プロセッ サは、容易に入手可能な1メガビツトのメモリチップを用いた場合256メガバ イトのメモリを有することとなり、4メガビツトのメモリチップを用いた場合に は1ギガバイトのメモリを有することとなる。
メモリシステムの概要 概念的には、クラスタ40.00は16個の概ね同一のプロセッサ要素50.0 0〜50.15を有し、プロセッサ要素は、対応する双方向ローカルデータバス により、対応するステージレジスタ52.00〜52.15に接続された対応す るプロセッサ49.00〜49.15を有する。
ステージレジスタ52.00〜52.15は共通のデータバス53を介してクラ スタメモリ54に接続されている。
プロセッサ要素50.00〜50.15は7ナノ秒のクロック周期を有する。
概念的には、ACU20は、並列プロセッサコントローラ56及び独立の転送コ ントローラ62を有する。実際、両コントローラ56.62は、標準的なRAM またはROMに基づくマイクロコード化されたシーケンシャル状態マシンからな るものであってよい。ACU20は、全てのPEボード及び各PEボード上の全 てのクラスタ即ちクラスタ40.00〜40.63に対して、幾つもあるものの 内の4本の制御ライン58.60.64.66を介して通信し、これらの制御ラ インは何本かの物理的なラインにより構成される。プロセッサ49.00〜49 .15は、図示されない調停機構により決定される、どちらのコントロー−yh <ライン58を支配するかに応じて、プロセッサコントローラ56及び転送コン トローラ62のいずれかにより、ライン58を介して制御される。ステージレジ スタ52゜00〜52.15は、同じく図示されない調停機構により決定される 、どのコントローラがライン6oを支配するかに応じて、プロセッサコントロー ラ56または転送コントローラ62により、ライン60を介して制御される。更 に転送コントローラ62は、ライン64を介してステージレジスタ リ54は、転送コントローラ62により、ライン66を介して制御される。並列 プロセッサコントローラ56及び独立の転送コントローラ62は、それぞれ何本 かの物理的なラインにより構成されるハンドシェーキングライン68.69によ り互いに接続されている。
次に並列プロセッサメモリシステムの作動の概要を第3図に示された簡単な実行 シーケンスについて説明する。ステップ102〜104.106〜107及び1 09は並列プロセッサコントローラ56の制御の下にプロセッサ要素50.00 〜50.15により実行される従来形式の並列プロセッサによる実行サイクルで ある。ステップ105.108は、対応するシーケンシャルメモリ読取み動作1 10〜111及びシーケンシャルメモリ読取り動作112〜113が、ステージ ングレジスタ52.00〜52. 15及びクラスタメモリ54の間で実行され るべきステージングレジスタサイクルである。これが一旦開始されると、シーケ ンシャル動作110〜113は、ライン68.69に於けるハンドシェーキング 動作を除いて、並列プロセッサの実行ステップ106〜107とは独立して進行 する。
次にメモリ入力(書込み)動作を考える。プロセッサコントローラ56は、ライ ン58を介してプロセッサ49゜00〜49.15に対して適当な要領をもって データをセットするように命令し、ライン69がビジィ(b u s y)信号 を発していなければ、ライン68を介して転送コントローラ62に対してメモリ 書込み動作を行なう命令を発する。ステップ105に示されるように、転送コン トローラ62はビジィ信号をライン69に送り、ライン6つに於てプロセッサコ ントローラに対する割込み動作を行ない、2回のサイクルで、データをプロセッ サ49.00〜49゜15からステージレジスタ52.00〜52.15へ転送 しく以下に於けるプロセッサ要素のデータバスに関する記載から明らかなように 、1サイクル当り1ニブルづつ転送する)、次いでプロセッサコントローラ56 に対する割込み動作を解除する。次に、プロセッサコントローラ56は、プロセ ッサ49.00〜49.15に対して、(ステップ106により示される)並列 処理動作を継続するように命令し、これらの動作が、ライン69に於けるビジィ 状態により妨げられない限り継続される。転送コントローラ62は、ライン64 を介してステージレジスタ52.00〜52.15に対し、(ステップ110〜 111に示されるように)一時に1ステージレジスタの割合で、ライン64を介 してステージレジスタ52.00〜52.15に対してデータを転送し、ライン 66を介してメモリ54に対してデータを受取るようにそれぞれ命令する。参加 しているステージレジスタ52.00〜52.15の全てからのデータが全て転 送されると、転送コントローラ62は、ライン69に対してオールクリア信号を 発する。
要素200に於けるPEデータバスを示す第4図、演算処理ユニットAPUを詳 細に示す第5図及びプロセッサ要素200に関連するクラスタレベルの要素を示 す第6図について説明する。
プロセッサ要素200の構造は、2つのクラスの命令を処理することができる。
第1のクラスは、アキュムレータ204、エクスポーネントレジスタ206及び PEレジスタアセット220等、第5図に示されたAPU201の内部レジスタ のみを使用する通常の演算命令を含む。このような命令を補助するだめの構造を 、第5図について説明する。第2のクラスの命令は、APU201とクラスタメ モリ260との間でデータを移動するロード及び記憶命令を含む。このような命 令を補助するための構造が、「クラスタメモリデータ転送」及び[クラスタメモ リアドレス」をサブタイトルとする以下の部分に於て第4図及び第6図について 説明する。
各プロセッサ要素の中心部には演算処理ユニット(APU)201が設けられて いる。第5図に示されるように、APU201は、演算論理ユニット(ALU) 202、プール論理ユニット(BLU)320及び、対応するレジスタ並びにフ ラッグ等の幾つかの従来形式の要素を備えている。
ALU202は、4ビツトライン210を介してALU202に向けてデータを 供給する4ビツト幅の内部データバス208の回りに形成されている。データバ ス208は、各クロックサイクルの間に2分の1バイト(1ニブル)のデータを 転送するものであることから、以下の記載に於てはニブルバス208と呼ぶもの とする。或いは、1バイトの幅を有するバス或いはその約数乃至は倍数の幅のバ スを用いることもできる。ALU202に対する他の入ツノとしては、4ビツト ライン211から送られてくる64ビ・ノトンミュレータ204の下位4桁(下 位ニブル)及び、4ビツトライン234から送られてくるPEレジスタ220か らのニブルがある。
ALU202の4ビツト出力は、4ビ・ソトライン218を介して、アキュムレ ータ204の下位ニブル、アキュムレータ204の上位4桁(上位ニブル)に、 更にエクスポーネント/アドレスレジスタ206の上位4桁へと送られる。ライ ン212は、ニブルバス208とアキュムレータ204の下位4桁との間の4ビ ・ソトの接続を提供し、ライン214は、アキュムレータ204の上位4桁とニ ブルレノくス208との間の4ビツトの接続、ライン216は、エクスポーネン ト/アドレスレジスタ206の下位4桁からニブルバス208への4ビツトの接 続を提供する。
ALU202の1ビツト出力は、ライン354を介してキャリー(C)ビット3 30へ、ライン352を介してゼロ(Z)ビット332に、ライン350を介し てオーツくフo−(V)ビット334へとそれぞれ送られる。負(N)ビットは 、アキュムレータ204の最上位桁から得られる。
Cビット330の出力は、ライン356を介してALU202の入力に送られる 。
BLU320は、ライン322を介してBLU320の1つの人力を提供するビ ットノくスと呼ばれる1ビ・ント幅の内部バス300の回りに構築されている。
フラ・ソクノ\ス324がBLU320の別の人力をなしている。典型的にはA LU202の状態を表わす幾つかの1ビツトレジスタがフラッグバス324の出 力を提供し、これらのレジスタとしてZビット332、■ビット334、Eビッ ト336及びMビット338がある。BLU320の第3の人力は、ライン32 6を介してLビットレジスタ340により提供され、これはアキュムレータの1 ビツト等価データである。
BLU320の1ビツト出力は、ライン328を介して、Zビット332、Vビ ット334、Eビット336、Mビット338及びLビット342に送られる。
ALU202のためのローカルメモリが、Pレジスタ220として知られるワー キンクルジスタのセ・ノドにより提供される。Pレジスタ222は、512X4 或いは2048×1のメモリにより構成された64個の32ビ・ノドレジスタを 含み、これは、第4図について説明するように従来形式のSRAMメモリ等を用 いて実現することができる。
コントローラ228は、4ビツトライン230を介してPEレジスタに接続され ている。データは、4ビツトライン234を介してニブルバス208との間でや りとりされ、更にライン210を介してALU202に提供され、更にライン2 33を介してビットバス300とやり取りされる。
PEレジスタ220は、11ビツトライン224を介して放送バス250から送 られるアドレス情報に基づきACU20の制御の下にロード或いはアンロードさ れる。
追加の4ビツトバス232が、コントローラ228からALU202の入力に向 けて設けられている。バス232は、ALU202に対して入力オペランドを提 供し、1クロツク中に於てPEレジスタセット220に於ける同一のワードの読 み出し及び書込みを可能にする。ニブルバス208からのデータは、バス232 を介してPEレジスタセット220からのデータがALU202により読出され るのと同時に、バス234を介してPEレジスタセット220に書込まれる。こ の動作は、例えばアキュムレータ204に於けるデータ(その最も上位または下 位ニブル)を1クロック周期中に於て、PEレジスタセット220のデータと交 換し得るものであるのが好ましい。
単純な加算及び比較の例について、APU201により実行される演算及び論理 動作について以下に説明するユ演算動作については、オペランドAがアキュムレ ータ204内にあってオペランドBがPEレジスタ220の1つにあるものとす る。シーケンスに於ける最初のクロ・ンクノ<バスに於て、アキュムレータ20 4からの下位ニブルがニブルバス211を介してALU202に供給され、PE レジスタ220(ライン224に於てアドレスされたもの)の適当な1つからの 下位ニブルが、ライン234及びニブルバス208を介して、ライン210に於 けるALU202に供給される。アキュムレータ204が、4ビツト右にシフト される。4ビツトの加算が、ALU202により実行され、4ビツトの和がアキ ュムレータ204の上位ニブルに読出され、その間に1ビツトフラツグがアップ デートされる。この一連の動作が、32ビツトのワードについて8回繰り返され る。
プロセッサ要素イネーブル/ディスエーブル決定動作のような論理動作について は、1つの数から他の数が減算され、その答がアキュムレータ204、Cビット 330、Zビット332及びVピント334に表れるものとする。イネーブル/ ディスエーブル決定は、例えば、1つの数字が他の数字に等しいか、小さいか或 いは大きいかに応じてなされるもので、その決定動作は、(アキュムレータ20 4からの)Nビット、Cビット330.2ビツト332及びVビット334の状 態に基づく論理演算を伴なう。しばしば、このような計算が、ある与えられたプ ロセッサ要素が次に放送された命令を実行するか否かを決定するため行なわれ、 その場合には、演算結果がEビット336に記憶さプロセッサ要素200に於け るラウタ接続が4図及び第5図に示されている。プロセッサ要素200は、(ラ イン408を介してアキュムレータ204に接続されている)ラウタ反転回路4 06、(ライン418を介してアキュムレータ204に接続されている)ラウタ 前進回路416、及び(4ビツトバス432を介してアキュムレータ204に接 続されている)PEマツチ回路430を含む構造に於て、グローバルラウタライ ン400(ラウタイン)及び410(ラウタアウト)を介して適当なラウタシス テムに接続されている。適当なラウタシステムの設計及び動作が前記したZap  i s ekによる特許出願明細書に記載されている。
プロセッサ要素200は、例えば1982年2月2日に付与された米国特許第4 ,314,349号明細書等に記載された適当なローカル相互接続システムに接 続される。
4本のネットワーク人力ライン420及び4本のネットワーク出力ライン424 が用いられている。入力ライン420は、ライン408を介して入力マルチプレ クサ422によりアキュムレータ204に向けてマルチプレックスされ、アキュ ムレータ204は、ライン418に於ける出力マルチプレクサ426により出力 ライン424に対してマルチプレックスされている。
ニブルバス208は、ORツリー372に対して成る値をラッチするために、ラ ッチ372に至る4ビツト接続を備えている。ORツリーは、並列プロセッサの 各プロセッサ要素を含むグローバルなORを提供する一般的な計算機能を果たす ものである。ORツリー372は、並列プロセッサに於ける全てのプロセッサ要 素の4ビツトニブルのグローバルORとして機能する。当業者によく知られるよ うにエラー及びオーバフローのチェックを含む多くの目的のためにORツリー動 作が用いられている。
プロセッサ要素 −クラスタメモリデータバス各クラスタメモリ260は256 キロワードのメモリを備えている。各ワードは12ビツトの幅を有し、8個のデ ータビットと4個のチェックビットとを有する。各ワードは、プロセッサ要素5 0.00〜50.15の1つにユニークに対応している。例えば、ワード0.1 6は、プロセッサ50.00に対応しており、ワード1.17はプロセッサ50 1に対応し、以下同様である。このメモリの構造が第16図に示されており、要 素712は、クラスタメモリ260の構造を示しており、要素710は、クラス タメモリ260に於けるフルアドレスを表わしており、これは、4ビツトプロセ ッサ要素識別番号PE ID及び識別されたプロセッサ要素のメモリ空間内のア ドレスを示す部分アドレスからなる。要素714は、与えられたアドレス及び与 えられたプロセッサ要素についてのクラスタメモリ260から読出されたフル3 2ビツトワードを示している。例えば、プロセッサ要素識別番号PEIに対応す るフル32ビツトワードクラスタメモリ260のアドレス1から得るためには、 メモリ構造712内のワード1.17.33.49が、プロセッサ要素PEIの ための32ビツトワード714を形成するべく対応するニブルとして得られる。
このようなメモリ構造の意味については後記する。
メモリ260として適するメモリとしては種々の形式のものがある。1つの適当 な形式のものとしては、約1ナノ秒のランダムモードアクセス時間及び約70ナ ノ秒のページモードアクセスタイムを有するDRAMがある。物理的には、メモ リ260は、3個の4X256キロビツトペ一ジモードDRAMチップを含み、 これによって8データビツト及び4チエツクビツトを取扱うことができる。デー タ及びチェックビットは、クラスタに対応するECCCCロブタ回路270(第 6図)により処理され、かつ2つの状態ビットを有する8ビツトデータバイトと して(後記するように2状態ビツトとはエラー検出ビット及び非修正エラービッ トからなる)リクエストを行なうプロセッサ要素とやりとりされる。他の可能な 構造としては、5つのチェックビットを用いたものが考えられる。
データはクラスタメモリ260とAPU201との間を、プロセッサ要素ステー ジレジスタ251及びクラスタECCロジック270を介して転送され、これは エラー修正機能を果たす。ライン252.253は、APU201のニブルバス 200と、ステージレジスタ251の上位4ビツト及び下位4ビツトにそれぞれ 4ビツトの接続を提供する。
ライン254は、ステージレジスタ251とクラスタデータバス255との間の 8ビツトの接続を提供し、これはECCロジック270及びメモリ260と共に 、当該クラスタに対応している。ライン272は、クラスタデータバス255と ECCロジック270との間の8ビツトの接続を提供する。ECCロジック27 0とクラスタメモリ260との間の接続構造は、それぞれ上位4ビツト及び下位 4ビツトのデータビットのための4ビツトライン262.264を含み、更にチ ェックビットのための4ビツトライン266を含む(5ビット或いは他の実施例 も可能である)。
これらのラインは、メモリ読出し動作の状態を記録するためにERR信号及びU NC信号状態ビットを発−生するために用いられる。
ステータス信号ERR及びUNCは、ERRバス302及びUNCバス304か らなる2本の1ビツトクラスタ用バスにより提供される。エラーが発生したか否 かを示すERR信号は次のように伝達される。ライン306は、ECCロジック 270からERRバス302への1ビツトの接続を提供し、ライン308は、E RRバス302からエラー状態レジスタ310への1ビツトの接続を提供し、ラ イン312はECCレジスタ310からAPU201のビットバス300への1 ビツトの接続を提供する。エラーが修正不能か否かを示すUNC信号は次のよう に伝達される。
ライン314は、ECCロジック270からUNCバス304への1ビツトの接 続を提供し、ライン316はUNCバス304からECCレジスタ310への1 ビツトの接続を提供し、ライン318は、ECCレジスタ310からAPU20 1のビットバス300への1ビツトの接続を提供する。
APU201のMビット338の状態は、対応するプロセッサ要素200がメモ リロード/記憶命令を実行するか否かを決定する。上記したように、プール演算 は、次に放送される命令をプロセッサ要素200が実行するか否かを決定するた めにBLU320により行なわれ、この演算の結果がEビット336に記憶され る。同様に、BLU320により行なわれるプール演算は、プロセッサ要素20 0が次のメモリロード/記憶動作を行なうか否かをも決定するためにBLU32 0により行なわれ、この演算の結果がMビット338に記憶される。通常は、M ビット338が、IFo、THEN、 、ELSEステートメントに基づき、B LU320によりセット及びリセットされる。例えば、並列プロセッサ内の各プ ロセッサ要素が、対応するデータについてのメモリロード/記憶等に関連するI F、、THEN、、ELSEステートメントを実行した時に、アクティブなプロ セッサ要素のセットが、個々の実行結果が真または真でないかに応じて発生する 。Mビットがセ・ントされたプロセッサ要素のみが、次にACU20により放送 されるロード/記憶命令を実行する。
Mビット338は、許可リクエストビット(GR)211により、クラスタメモ リ260からステージレジスタ251へのデータの転送を制御する。ライン36 0は、ロード/記憶動作の開始に際してMビット338をGRビット211にコ ピーする働きをカバーするGRピッ211はディジーチェーン内に位置しており 、ライン362は、プロセンサ要素200に先行するプロセッサ要素のGRビッ トを開始点とし、ライン364は、プロセッサ要素200に続くプロセッサ要素 のGRビットに於て終息する。ディジーチェーンからなる実施例は、オンチップ ラウティングが考慮された場合には特に有利であるが、ラウントロピンスケシュ リング等他の実施例も可能である。例えば、クラスタ40.00に於て(第2図 )、プロセッサ要素50.00〜50.15のそれぞれ毎に幾つかのバイトを伴 なうロード/記憶動作の間に、プロセッサ要素50.00〜50゜15それぞれ のMビットの状態(セット/リセット)が、各バイトロード/記憶動作の開始と 共にプロセッサ要素50.00〜50.15の対応するGRビットにコピーされ る。各バイトロード/記憶の間に16個の16クロツクパルスが順次発生し、そ れぞれがクラスタ内の各プロセッサ要素に対応している。システムがリセットさ れた後、ディジーチェーンがプロセッサ要素50.00に於て開始する。
従って、50.00のGRビットがセットされたものとすると、プロセッサ要素 50.00は、まずクラスタデータバス255の使用をリクエストする。プロセ ッサ要素50゜00のステージレジスタ52.00へのバイト転送が完了すると 、プロセッサ要素50.00のGRビットがリセ・ントされる。クラスタデータ バス255をリクエストするディン−チェーン内の次のプロセッサは、GRビッ トかセットされたものからなり、それらの間に位置するGRビットがリセットさ れたプロセッサ要素は参加しない。従って、異なるクラスタ内にあっては、デー タ転送動作に参加するステージレジスタ251の数は異なるものであってよい。
しかも、各サイクル内に於て、対応するクラスタのアクティブな許可リクエスト ビットは、異なったプロセッサ要素の数に対応するものであってよい。
成る変形実施例に於ては、クラスタ当りのアクティブな許可リクエストビットの 数が16未満であるような状態が検出される。これは、ORツリー372または (図示されない)専用のORツリーにより達成することができる。この条件が検 出された時、最大数のアクティブな許可リクエストビットを存するクラスタに於 けるアクティブな許可リクエストビットの数について、サイクルが最適化される 。
データ転送動作に参加するステージレジスタ251の数が、クラスタ内のステー ジレジスタ251の総数と異なり得ることから、クラスタメモリ260内のデー タワードの幅は、クラスタ内のステージレジスタ251の幅及び並列プロセッサ のアドレス幅と対応するように選択されるのが好ましい。さもないと、データの 転送に参加していないプロセッサ要素のためにデータ転送動作が行なわれ、その ために、例えばデータが書込まれるたびに、読出し変更書込みサイクルが必要と なる。クラスタメモリ260のために選択されたアドレスの単位は、8ピツトチ データワードであり、これはステージレジスタ251の大きさ、転送ワードに必 要となるサイクル数及びエラー修正のために必要となるエラー及びチェックビッ トの数の間の妥協の結果である。この構造は、レジスタの大きさを好適に小さく するが、ワードを転送するためのメモリサイクルの数及び1ワード当りのエラー 修正ビットの数(即ち、シングルビットエラー修正のためには、32ビツトのワ ードは6つのチェックビットのみを必要とするのに対し、48ビツトワードは4 ×4即ち16個のチェックビットを必要とする)をいずれも増大させる。いうま でもなく、本発明によればメモリサイクルを極少化し、チェックビットの数を減 少させ或いはこれらの特性の異なるバランスを達成するために他の構造を用いる こともできる。
並列プロセッサは、許可リクエスト機構としてディジーチェーン構造を用いるの が特に好ましいロード/記憶単一(Sol 1tary)命令をもサポートする ものである。ロード/記憶単一命令は、ロード/記憶動作を開始するためにクラ スタ内の2つ以上のプロセッサ要素を必要としない。そのような動作の例として は、ラウタからのデータがメモリから得られるような、ラウタネットワークとの 通信に向けられたコードシーケンス(第1図のラウタ14.16.18)がある 。例えば、ラウタネットワーク14.16.18から送られたデータを記憶する 場合を考える。各クラスタは、そのアクティブなプロセッサ要素に駐在するデー タを得ることとなり、全てのアクティブなプロセッサ要素からのデータを同時に 記憶するのが好ましい。クラスタ当り1つのGRビットのみがロード単−動作内 にセットされることから、記憶動作は、全てのクラスタからのデータを同時に記 憶することとなる。ディジーチェーン構造を、例えば、データの同時転送を行な う前にクラスタ当り最大16個のプロセッサ要素を検査する必要があるラウント ロピンスケジューリング構造と比較されたい。
ERR信号及びUNC信号は、エラー分析を行なうためにロード命令の終りに用 いられる。プロセッサ要素エラー状態レジスタ310のERRビットまたはUN Cビットをクロックサイクル内にビット300にクロックさせることができ、そ れは、BLU320及びORツリー372により利用可能である。ERRビット の使用例が次に示される。
各プロセッサ要素のERRビットがビットバス300に置かれ、ラッチ370に ラッチされる。ラッチされた、ERRビットを含むニブルは並列プロセッサの他 の全てのプロセッサ要素のニブルに対してORされ、その結果がACU20に供 給される。エラーが検出された場合には、各プロセッサ要素のUNCビットがビ ットバス300に置かれ、ラッチ372にラッチされる。UNCビットを含むラ ッチされたニブルは、並列プロセッサの他の全てのプロセッサ要素のニブルに対 してORされ、その結果がACU20に供給される。修正不可能なエラーが示さ れた場合には、システム故障が伝達される。さもなければ、エラーがログされる 。エラーカウントか所定の閾値を越えると、システム故障が伝達される。このよ うな動作及びそれらを制御するプログラムは当該技術分野に於てよく知られてい る。
クラスタメモリアドレス 同一のクラスタに属する全てのプロセッサ要素により共有されるクラスタメモリ 260のアドレスは、マルチプレックスされた10ビツトラインにより実現され た、20ビツトの幅のパス240を介してアドレスコントローラ240(第6図 )によって行われる。(ECCロジック270からの)ライン243は、クラス タメモリ260のDRAMに制御信号を供給し、行アドレスストローブ、列アド レスストローブ、書込みイネーブル及びチップイネーブルなどの機能を果す。ラ イン243は、通常、用いられたメモリデバイスに応じていくつかの物理的ライ ンより構成される。
アドレス情報は、プロセッサ要素または、ACU20のいずれかからアドレスコ ントローラ240に送られる。アドレスは、アドレスレジスタ内に駐在するプロ セッサ要素により提供される。プロセッサ要素200に於て、レジスタ206は 、通常のエクスポーネントレジスタ及びアドレスレジスタの両者として機能し、 プロセッサ要素200のダイの大きさを低減することができる。或いは、別個の 16ビツトの物理レジスタを専用のアドレスレジスタとして用いることもできる 。ライン244は、エクスポーホント/アドレスレジスタ206から20ビツト クラスタアドレスバス246への16ビツトの接続を提供する。クレームアドレ スバス246の他の4ビツトは、ライン245により供給され、これは、クラス タ内のプロセッサ要素200をユニークに特定するために、ハードウェア要素2 03により発生した部分アドレス信号を伝達する。或いは、要素203は、ニブ ルバス208またはライン218からローカルにロードされることによりセット されるレジスタからなるものであっても良い。この場合、ライン245は、同一 のクラスタ内の別のプロセッサ要素に属するメモリに対するアクセスを達成する べく駆動される。これは、同一のクラスタ内のプロセッサ要素間に於ける迅速な 通信を可能にする。ライン247は、クラスタアドレスバス246から、アドレ スコントローラ240の上位16ビツトの16ビツト接続を提供し、4つの追加 のプロセッサ要素識別ビットが、アドレスコントローラ240の下位4ビツトへ ライン249を介して供給される。
ACU20から発生したアドレスは、16ビツト部分アドレスとして、並列プロ セッサ内の全てのプロセッサ要素に向けて、放送パス250を介して放送される 。放送パス250は、61ビツトバスとして構成され、これらのラインのあるも のは、幾つかの目的を果すためにマルチプレックスされる。バス250は、AC U20により幾つもの目的に用いられ、そのような目的としは、直接アドレスモ ード動作に於ける部分アドレスの放送及び並列プロセッサに於ける全てのプロセ ッサ要素への命令信号の放送などがある。ライン248は、放送パス250から アドレスコントローラ上位16ビツトの接続を提供する。アドレスを完成するた めに、更に、4つのプロセッサ要素識別ビットが、ライン249を介してアドレ スコントローラ240の下位4桁に提供される。
クラスタメモリ260は、直接または間接的にアドレスされる。直接アドレスに ついてプロセッサ要素は、そのクラスタ内に於ける識別番号即ち4ビツト量をA CU20により全てのプロセッサ要素に供給される部分アドレスにアペンドする 。(ローカルアドレスとしても知られる)間接アドレスに於いては、プロセッサ 要素は、そのPE識別番号を、それによってローカルに計算された部分アドレス にアペンドする。間接アドレスの一変形として、与えられたプロセッサ要素が、 クラスタ内の別のプロセッサ要素のPE識別番号を計算し、この識別番号をロー カルに計算された部分アドレスにアペンドする。
直接アドレスは、次のようにして行われる。ACU20は、16ビツト部分アド レスを放送バス250を介して放送する。ACU20は、データから或いは、計 算を行うことにより16ビツト部分アドレスを得る。プロセッサ要素200は、 PE番号として知られるそれ自身のユニークな番号からなる4ビット部分アドレ スを、クラスタメモリ260内の、その物理的アドレス空間を特定するために提 供する。例えばクラスタ40.00に於いて、プロセッサ要素50.00〜50 .15は、それぞれのPE番号を、クラスタメモリ260内のそれぞれの対応す るアドレス空間を完全に特定するために提供する。
アドレスコントローラ240からは、物理的に20ビツトのアドレス情報が行/ 列マルチプレックスされた形で提供される。従って、10本の物理的なワイヤの みが用いられる。間接アドレスに際してファーストページモード(即ちスタチッ クコラムモード)DRAMクラスタメモリ260に於けるメモリの効率は、次の ようにクラスタメモリ260をプロセッサ要素50.00〜50.15内にイン ターリーブ(interleave)することにより改善することができる、即 ち、プロセッサ要素50.00〜50゜15がそれぞれ間接アドレスモードによ り同一の論理アドレスをアドレスした場合、それらは、実際には物理的メモリに 於ける16個の連続したワードのブロックをアクセスすることとなる。例えばプ ロセッサ要素50.00は、ワード0.16.32.48などをアクセスし、プ ロセッサ要素50.01は、ワード1.17.33.49などをアクセスし、プ ロセッサ要素50.15は、ワード15.31.47.63などをアクセスする 、従って、プロセッサ要素50.00〜50.15が、例えば0論理アドレスを アドレスする場合、物理的にはクラスタメモリ260に於けるワード0〜15が アドレスされることとなる。このようにして、DRAMメモリの殆ど最大限のペ ージモードバンド幅を達成することができる。
DRAMの内部に於いて、メモリの列アドレスは、行アドレスよりも頻繁に変化 する。これは、行アドレスが放送パス250に於けるACU20により放送され た部分アドレスにその全体が含まれるのに対して、列アドレスは、クラスタ(例 えば40.00)に於ける16個のプロセッサ要素(即ち50.00〜50.1 5)の1つを特定する部分アドレスを含むことによるものである。多くの場合、 行アドレスは、DRAMに於いて内部的にラッチされ、列アドレスのみが変更さ れる。典型的な1メガビツトペ一ジモードDRAMチップに於いては、ラッチさ れた行アドレスごとに512個の位置が利用可能である。
例として、直接ロード動作の詳細について考える。直接記憶のためのステップは 同様である。直接ロード動作は、2つのネスト(入れ子)されたループを有し、 ファーストページモードに於ける各クラスタ内の各プロセッサ要素(即ちクラス タ40.00のプロセッサ要素50.11〜50.15)をサービスし、転送さ れるべきオペランドを構成する各メモリワードをシーケンス的に取扱う。内側ル ープは、クラスタメモリ(即ちメモリ260)と、連続するプロセッサ要素のス テージレジスタ(即ちページレジスタ52.00〜52.15)との間で、デー タ及びエラー状態信号を転送する。外側ループは、ステージレジスタのそれぞれ と、そのワーキングレジスタセット(即ちステージレジスタ251とプロセッサ 要素200のPEレジスタ220)との間でデータを並列に転送する、この転送 は、その度に外側ループに於ける実行動作を中断し、プロセッサ(即ちプロセッ サ49.00〜49.15)を借りて転送を行う、並列プロセッサの全てのプロ セッサ要素が同時にデータの転送を行うことから、オーバヘッドが小さくなる。
ステージレジスタ転送動作に際して、メモリ読み出し動作は、メモリ制御システ ムに用いられビットバス300を介して全てのプロセッサ要素からエラー状態の 論理ORをも計算する。
直接ロードのためのステップが以下の表1に与えられている。
(以下余白) ! 1000000000−+++OOO++い 1ト に これから、典型的な直接ロード/記憶のための時間の総計がtRAS+ ((n PEs)(tcAs)+tSR)(OPLEN)により表わされることが分かる 。但し、tRAS及びtCASは、行及び列アドレスをセットするために必要と なる時間であり、nPE5は、クラスタに於けるプロセッサ要素の数であり、t sRは、ステージレジスタを、PEレジスタファイルに転送するための時間であ り、0PLENは、ロードまたは、記憶されるべきオペランドに於けるメモリの 数である。D RA M行変更サイクルは、この性能をやや低下させる場合があ る。
間接即ちローカルアドレスは次のようにして行われる。
クラスタの各プロセッサ要素は、アドレスを計算し、このアドレスを対応するエ クスポーホント/アドレスレジスタに置く。例えば代表的なプロセッサ要素20 0に対して、ALU200には、アドレスを計算し、ライン218を介してそれ をエクスポーホント/アドレスレジスタ206にロードする。このエクスポーホ ント/アドレスレジスタ206に駐在するアドレスは、次に、必要に応じてライ ン244及びクラスタアドレスバス246を介してアドレスコントローラ240 に供給される。
容易に理解されるように、間接的ロード/記憶動作に際して、間接アドレスのた めにエクスポーホント/アドレスレジスタ206を用いることにより、ある不動 小数点動作が不可能となるが、ダイの面積が極小化される。実際、エクスポーネ ントレジスタのデータバス及び制御特性の多くは、間接アドレスの目的に良く適 している。エクスポーネントは、メモリアドレスと同様にかなり広いレジスタを 必要とする。このメモリ構造に於いては、エクスポーネント及びアドレスの両者 がシフトすることにより形成され、従ってシフトレジスタ機構を必要とする。更 に、エクスポーネント及びアドレスの両者の正規化または非正規化に際しては、 エクスポーネントを、またシーケンシャルアドレスを歩進する場合には、アドレ スを、それぞれ時折インクリメントしなければならない。或いは、不動小数点動 作及び間接アドレス動作のために別個のレジスタを用いるとにより完全なフレキ シビリティを得ることができるが、このような追加のアドレスレジスタを必要と することにより、所要のダイ面積が増大する。
例として、間接ロード動作の詳細を考える。間接記憶動作のためのステップは同 様である。ファースト間接ロード動作は、直接ロード動作と略同様に実行される が、隣接プロセッサ要素が隣接しないメモリアドレスをアクセスし得ることから 、ファーストページモードを用いることができず、転送される各メモリワードの ために新なりRAM行アドレスが生成される。しかしながら間接ロード動作は、 DRAMメモリのランダムアクセスモードのピークバンド幅に近いバンド幅をも ってデータを転送し、移動されるワードのクラスタあたり、2つのPEサイクル にプル幅とワード幅との比)を失うのみである。
間接ロード動作のためステップが以下の表2に与えられている。
(以下余白) い 1ト 区 容易に理解されるように、間接ロードル記憶動作のために必要となる時間の総計 は((nPEs)(tRAS+tCAS)+tSR)(OPLEN)である。但 し、tRAS及びtCASは、行及び列アドレスをセットするために必要となる 時間であり、nPE5は、クラスタに於けるプロセッサ要素の数であり、tsR は、ステージレジスタを、PEレジスタファイルに転送するための時間であり、 oPLENは、ロードまたは、記憶されるべきオペランドに於けるメモリの数で ある。DRAM行変更サイクルは、この性能をやや低下させる場合がある。
メモリシステム動作 メモリシステムの動作をメモリ書込み及びメモリ読み出しの両者について説明す る。直接及び間接アドレスの両者について考慮する。
本発明に於ける並列プロセッサのプログラムコンパイルに際して、ロードされる べきものは、コンピュータプログラムに表われるのに先立って機械語により記述 される。以下に詳しく説明するように、ロード転送を完了するためには、多数の プロセッササイクルが必要であるが、データがロードされる必要がないことを条 件に、並列動作をロード転送と同時に進行させることができる。従って、データ の必要性に先立ってデータをロードすることにより、プロセッサの効率を最大化 することができる。
ロード/記憶動作は、演算動作と同時に実行される。ロード/記憶動作がACU 20に取込まれると、これらが、コントローラ62に於いて順番待ちされる、こ の順番待ちの列は、32個までのロードまたは記憶命令を収容することかできる 。ロードまたは記憶命令が転送コントローラ62により順番待ち行列から引抜か れると、ロードまたは記憶動作を行うべく、それによりライン58.60.64 及び66上に制御信号が発せらる。
各PE200に於けるEビット336は、演算のためのプロセッサ要素・を作動 させる。各プロセッサ要素200に於けるMビット338は、ロード及び記憶メ モリ動作のためにそのプロセッサ要素を作動させる。ロード及び記憶動作の実行 は、順番待ちにより遅延することがあるために、演算のためにアクティブなプロ セッサ要素は、ロードまたは記憶動作のためのアクティブなプロセッサ要素とは 異なることが考えられる。そこで、アクティブなセットが異なることに対処する ために、Mビットの順番待ち行列が各プロセッサ要素のレジスタ220に保持さ れる。ACUが、概念的にプロセッサ要素Mビット338を変更する命令を受け 取った場合、この動作は、各プロセッサ要素のMビットの待ち行列に新たな値を 記録し、待ち行列がアンロードされた時に、実際のプロセッサ要素のMビット3 38が、適当な待ち行列をなすMビットからロードされるように、転送コントロ ーラに於けるロード/記憶待ち行列に命令を加えることにより遅延される。
通常、プログラマ−がプロセッサ要素200に対してEビット338の再計算を 命じた場合に、プログラマ−はEビットを概念的なMビットにコピーする、AC Uはマイクロコード化された制御信号を発し、Eビットがプロセッサ要素レジス タ220に於けるMビットの待ち行列にコピーされるようにする。更に、待ち行 列中のいずれかの先行する命令が終了した時に、その値が、ビット338にロー ドされるようにする。次に、プログラマ−は、概念的Mビットを直接的に計算す ることができ、この値も上記したようにMビット待ち行列に記憶される。
Mビットの値はBLU320により計算され、Lビット340及びライン340 からビットバス300に送られ、更に、ライン223を介してプロセッサ要素レ ジスタセット220に送られる。Mビットの待ち行列は、放送バス61及びプロ セッサ要素レジスタのアドレスバス224を介して、当業者に良く知られた方法 をもって、転送コントローラ62に於けるマイクロコード化されたシーケンスに 従ってアドレスされる。次いで、実際のMビット338が、プロセッサ要素レジ スタ220から、ライン233、ビットバス300、パス322、BLU320 及びパス328を介してロードされる。
以下の記載に於いて、Mビット338は、直接的に参照され、Mビット待ち行列 の動作は、インプリジットに行われる。ロード及び記憶命令を待ち行列として行 うことは、Mビットの変更の待ち行列化と共に、PE実行とオーバーラツプされ るべきロード及び記憶命令を可能にし、与えられたロードまたは記憶命令に参加 しなければならないアクティブなプロセッサ要素のセットを不適当に変更するこ となく、Eビット計算により、アクティブプロセッサ要素のセットを変更するの を可能にする。
ロードまたは記憶が不適当に早期に行われのを防ぐために、アレイ制御ユニット 20は、256X2ビツトアレイを有する。各N番目のビット対が並列プロセッ サに於ける全てのPEレジスタアレイ(即ちプロセッサ要素200の220)の N番目のバイトに対応するロードタグ及び記憶タグをなしている。これらは、第 2図について上記したハンドシェーキングライン68.69を介して通信される 状態信号を具現化するものである。各PEレジスタアレイ220は、256バイ トを有することから、ACU20は、並列プロセッサ全体のために256対のロ ード/記憶タグビットを必要する。
ロード/記憶ラダレジスタは、(第2図の)ACU20の概念的なプロセッサコ ントローラ56と転送コントローラ62との間のインターロック機構として機能 する。ロードタグは、SETである場合には、PEレジスタアレイ220の対応 するバイトが書込まれつつあり、現時点に於いて読み出すべきでないことを示し ている。記憶タグは、SETである場合には、PEレジスタアレイ220の対応 するバイトが記憶されつつあり、現時点に於いて変更するべきでないことを示し ている。ロードまたは、記憶命令の実行が開始される度ごとに、ACU20は、 適宜、全ての関連するPEレジスタバイトのためのロードまたは記憶タグをセッ トする。ロードまたは記憶が完了すると予めセットされたタグはクリア(リセッ ト)される。実行中の命令は、その動作がタグの内容と矛盾する場合には、AC U20内の対応するロード/記憶タグの1つを有するPEレジスタ220のバイ トに対して作用しない。例えば、ADD命令がACU20内の対応するロードタ グにより示されるように、PEレジスタアレイ220の与えられたバイトにロー ドされつつあるオペランドを必要とする場合、ADD命令は、ACU20内の対 応するロードタグがクリアされるまで実行されない。
直接アドレスによりメモリ書込み動作を行う際(即ち記憶命令)、Mビット(即 ちPE200の338)がセットされたクラスタの全てのプロセッサ要素は、− 回のまたは複数回のサイクルの間に、PEデータバスの相対的な幅(即ちプロセ ッサ要素200のデータバス208は1/2バイト幅である)及びステージレジ スタの相対的幅(PE200の251は、1バイト幅であり、従って1バイトあ たり2サイクル、即ち32ビツトワードあたり8サイルが必要となる)に応じて 、それらのステージレジスタにデータを並列にロードする。この並列転送動作に 際して、アクティブなプロセッサ要素(Mビットセット)は、対応するメモリン ステム許可リクエストフラッグ(即ちPE200のGRビット211)をセット する。ディジーチェーン許可機構(PE200のライン362.364を参照) を用いてクラスタ転送コントローラ(クラスタ40.00の62)は、更に別の 並列動作とは独立に、アクティブにステージレジスタ(即ちPE200の251 )を、クラスタメモリバス即ち255)に、シーケンス的にアンロードし、EC Cロジック(即ち270)に於いてECCチェックビットを生成し、8ビツトバ イト及び4チエツクビツトをクラスタメモリ (即ち260)に書込む。メモリ アドレスはクラスタ(PE200の203)内のPE数及び、放送バス250  (PE200のライン248を参照)を介して、アレイ制御ユニット20により 放送されたアドレスから形成される。
この過程は、迅速にオフチップクラスタメモリを駆動することが困難であること から、パイプラインされるのが好ましい。書込みパイプラインは、クラスタとオ フチップクラスタメモリ260との間で、対応するクラスタアドレスバス246 及びクラスタデータバス255に於いてクロックされたラッチを用いることによ り達成される。メモリ書込みに際して最初のクロックで、アドレス及びデータが 対応するアドレスバスラッチ及びデータバスラッチにそれぞれラッチされ、第2 のタロツクにより、アドレス及びデータがそれぞれアドレスコントローラ及びE CCロジックによりラッチされる。
間接アドレスによりメモリ書込みを行う際、プロセッサ要素のアドレスレジスタ のビット(P E 200のエクスポーホント/アドレスレジスタ206)は、 部分クラスタメモリアドレスとして扱われ、放送バス250のライン248のビ ットが無視される。他のクラスタメモリアドレスビットは、PE ID要素20 3或いは(上記したように)レジスタにより提供される。転送されたデータのユ ニットが正しく1つのプロセッサ要素に属するものであり、メモリ内の1ワード であることから、ECCチェックビット(ライン166のビット)を、クラスタ ECCロジック(270)によって、クラスタメモリ(260)を読むことなく 、ステージレジスタ251から得られたデータにより生成することができる。
直接アドレスによりメモリ読み出しを行う際に(ロード命令)、Mビットがセッ トされたクラスタ内の全てのアドレスプロセッサ要素は、それぞれのメモリシス テム許可リクエストフラッグ(P E 200のGR211)をセットする。ク ラスタ転送コントローラ(クラッチロータ40,00の62)は、別の並列動作 とは独立に、4チエツクピツト(ライン262.264のデータ及びライン26 6のチェックビット)と共に、リクエストされたバイトをクラスタメモリ(26 0)から、クラスタECCロジック(270)に読み出す。各クラスタFCCロ ジック(270)は、エラー修正を行うためにFCCチェックビットを用い、修 正されたデータを選択されたステージレジスタ(クラスタデータバス255を介 してPE200の251)に書込み、エラー状態を、選択されたエラー状態ステ ージレジスタ(クラスタデータバス302及びクラスタデータバス304を介し PE200の310)に書込む。メモリアドレスは、クラスタ(P E 200 の203)内のPE数及び放送バス250を介してアレイ制御ユニット20によ るアドレス放送から生成される(PE200の248参照)。
この過程はオフチップクラスタメモリを迅速に駆動することが困難であるから、 パイプラインされるのが好ましい。
読み出しパイプラインは、クラスタ及びオフチップクラスタメモリ260の間に 於いて、クラスタアドレスバス246及びクラスタデータバス255に於ける図 示されないクロックされたラッチを用いることにより達成される。時刻tに於い て、ステージレジスタ251にラッチされたデータは、時刻t−2に於いてアド レスされなればならない。
これは、時刻t−2に於いて、アドレスバスがアドレスバスラッチにラッチされ ており、時刻t−1に於けるアドレスがアドレスコントローラ240及びクラス タ260にラッチされ、データがデータバスラッチにラッチされており、概ね時 刻tに於いてデータがステージレジスタ251にラッチされているからである。
間接アドレスによるメモリ読み出しに際して、プロセッサ要素のアドレスレジス タビット(P E 200のエクスポーネント/アドレスレジスタのビット2o 6)は、部分クラスタメモリアドレスとして取扱われ、放送バス250のライン 248のビットが無視される。他のクラスタメモリアドレスビットは、PE I D要素20B或いは上記したようにレジスタにより提供される。クラスタ転送コ ントローラ(クラスタ40.00の62)が、アクティブなプロセッサ要素のス テージレジスタのロードを終了した時に、アドレスプロセッサ要素は、データを 、対応するステージレジスタ(P E 200の251)から、対応する内部デ ータバス(PE200のバス208)に並列に転送し、更に、ワーキングレジス タ(PEレジスタアレイ220の選択されたレジスタ)に転送される。この並列 転送サイクルに際して、エラー状態レジスタの全てに対して、クラスタビットバ ス300上に於けるORが取られ、転送コントローラ(クラスタ40.00の6 2)に戻される。
メモリからメモリへの移動命令は、内側及び外側コントローラループを用いてロ ード及び記憶動作と同様に実行されるが、データは、メモリからステージレジス タに向けて、何らプロセッサ要素レジスタセットを用いることなく転送されるこ とができる。また、プロセッサ要素の通常の並列実行を何ら中断することがない 。
更に、第7図に詳しく示されているクラスタメモリ260は、例えば256kX 4ビット或いは1024kX4ビツトといった適当な容量を有する3頁モードD RAM集積回路500.502.504を含む。クラスタメモリ260の読出し または書込み状態は、DRAM500.502.504の書込みイネーブルピン WEバーに接続されたライン243により決定される。各DRAM500.50 2.504のビットA9〜AOは、ライン242を介してアドレスされ、この場 合、ライン242は、行或いは列アドレスのいずれかを提供する10ビツトのマ ルチプレックスさレタラインとして構成されている。アドレスの形式は、オンボ ードRAS/CASジェネレータ506からの別個のRASバー及びCASバー 信号によりDRAM500.502.504に対して特定され、これらの信号は 、それぞれ各DRAM500.502.504のRASバー及びCASバー人力 に送られる。RAS/CASジェネレータ506は、ライン250a上のアサー トRAS信号、ライン250b上のアサートCAS信号及びライン250c上の リフレッシュ信号により駆動される。ライン250a、250b及び250cは 、放送バス250の一部をなす。
アドレスコントローラ240が更に詳しく第8図に示されている。直接アドレス モードに於いては、10ビツトライン248b上に10ビツトの行または列アド レスがある。
ライン248cに間接アドレス信号がない場合には、インバータ520が直接ア ドレス信号DIRをマルチプレクサ512の5ELAに供給し、このマルチプレ クサは、ライン248bのビット<9:4>を選択する。直接アドレス信号DI Rは、ANDゲートにも供給され、これは、他方の人力に加えられたEN RO W ADDR信号(直接アドレスが行アドレスである場合、第12図参照)及び DIR信号に応答して、マルチプレクサ514の5ELAに信号を供給し、ライ ン248bのビット<3:Q>を選択スる。直接アドレスが列アドレスである場 合、マルチプレクサ514は、マルチプレクサ510の出力を選択し、ENRO W ADDR信号がない場合には、ライン249上のプロセッサ識別番号を選択 する。マルチプレクサ512.514の出力は、(クロックされたANDゲート 524を介して供給される)ライン248d上のロードハイアドレス信号LD  HI ADDRl及び(クロックされたλNDゲート5265を介して加えられ た)ライン248e上のロードローアドレス信号LD LOADDRにそれぞれ 基づき、クロックパルスCLKに於いて、ラッチ516.518よりラッチされ る。ラッチ516の6ビツト出力及びラッチ518の4ビツト出力は、それぞれ <9:4>及び<3:Q>として10ビツトライン242上にて組合される。ラ イン248c上にINDIRECT信号が存在する場合、マルチプレクサ512 がマルチプレクサ508の出力を選択し、マルチプレクサ514がマルチプレク サ510の出力を選択する。マルチプレクサ508は、EN−ROW ADDR の状態に応じて、クラスタアドレスバスのライン247上のビット<15:10 >またはビット<5:0>を選択する。同様に、マルチプレクサ510は、EN  ROW ADDRの状態に応じて、ライン249上のPE識別信号または、ラ イン247のビット<9 : 6>を選択する。マルチプレクサ512.514 の出力は、上記したように、ライン242に加えられる。
エラー修正ロジック270は、第9図に更に詳しく示されており、クラスタメモ リ210に対する読出し及び書込みに際してアクティブとなる。4つのチェック ビットがライン262.264を介して2つのニブル(4ビツトセグメント)と して伝達され、バイトに対応してライン266上を伝送される。メモリ書込み動 作に際して、これらのチェックビットは、データバイトから、ECCロジック2 72より生成される。メモリ読み出し動作に際して、これらのチェックビットは ECCロジック270により、ERRビット及びUNCビットにデコードされる 。
メモリ260に対する書込み動作の場合、ライン272上の8ビツトデータは、 データ出力ラッチ530により保フリップフロップ537によりゲートされる。
フリップフロップ537の入力は信号WR及び信号GRANT OUTのAND を取ることにより、ゲート531に於いて形成され、後者の信号は、フリップフ ロップ533及びインバータ535を介して、ANDゲート531に加えられる 。
アクティブにされた時に、バッファ532はライン262.264上に於けるメ モリ260に対してデータを供給し、データ入力ラッチ544にもデータを供給 する。8ビツトデータも、5ELAに於ける信号WRに応じてマルチプレクサ5 34により選択され、FCCチェックビットパリティ−ジェネレータ532に供 給される。適当なパリティ−ジェネレータ532の設計は、良く知られており、 その全体が、HlS、5tone、’Discrete Mathematic al 5tructures anclTheir Applications ’、 5cience Re5earch As5ociates、Inc。
、Chicago、 IL、1973に記載され、その記載内容を言及すること をもって本出願の一部と見なすものとする。パリティ−ジェネレータ536の4 ビツト出力は、チェックビット出力ラッチ540により保持され、フリップフロ ップ537の出力に応答して、バッファ542を介してライン266上のメモリ 260に伝達される。パリティ−ジェネレータ536の4ビツト出力の、データ 入力ラッチ544からの8ビツトデータと共に、FCC検出及び修正回路538 に供給され、ECC回路538は、ライン306.314上にERRビット及び UNCビットを生成する。適当なECCロジック回路270の設計は、良く知ら れており、上記した引例に記載されており、その内容を、言及することをちって 本出願の一部と見なすものとする。それに代わる構造としては、8ビツトデータ に対する単一ビットエラー検出に加えて5つのチェックビットを用いてダブルビ ットエラー検出を行うことがある。
メモリ260からの読み出し動作に際して、ライン262.264上の8ビツト データは、データ入力ラッチ544により保持され、メモリ260から読み出さ れ、かつラッチ546により保持された4つの対応するチェックビットと共に、 ECC回路538に加えられる。FCC回路は、ライン306.314上にER Rビット及びUNCビットを生成し、更に、その出力に8ビツト修正データを提 供する。8ビツトデータは、信号WRバーに応答して、バッファ548によりラ イン278に供給される。信号WRバーは、インバータ550を介して信号WR から得られる。
フリップフロップ537からの出力は、インバータ539により反転されライン 243に供給される。
ステージレジスタ251及びエラーレジスタ310が第10図に更に詳しく示さ れている。データは、APU201からステージレジスタ251に次のようにし て読み込まれる。ライン250g上の選択されたニブルバス信号SEL NIB に応答して、マルチプレクサ552.554が、4ビツトのニブルバス208を 選択する。ORゲート556及びりσツクされてANDゲート558を介してラ イン258iに加えられたロードSO信号LD SOに応答して、SOがラッチ 560に保持され、8ビツトデータのビット<3:Q>を形成する。ORゲート 562及びクロックされたANDゲータ564を介してライン250hに加えら れたロードS1信号LD SLに応答して、Slがラッチ566により保持され 、8ビツトデータのビット〈7:4〉を形成する。データは、ステージ251か らAPU251に向けて次のように読み込まれる。SOからの出力は、SODR IVE NIBBLE BUS信号に応答して、バッファ568を介して、ニブ ルバス208に供給される。
Slの出力は、SI DRIVE NIBBLE BUS信号に応答して、バッ ファ570を介して、ニブルバス208に供給される。
データは、クラスタメモリ260からステージレジスタ251に次のようにして 読み込まれる。信号SEL NIBがアサートされていない場合、マルチプレク サ522.554は、ライン254の対応するビット<7:4>及び<3:Q> を選択する。書込み信号WR及び行信号EN−ROW ADDR(第12図参照 )がアサートされていない場合、ANDゲート入力に加えられた許可リクエスト 信号GOT GRANTが、ANDゲート572の出力に於けるLATCHRE AD DATA信号を構成する。LATCHREAD DATA信号は、読み出 しパイプライン遅延回路574を経て伝達され、この回路は、例えば、2つのク ロックされたラッチを有するもので、この信号は、ORゲート556及びクロッ クされたANDゲート558を介して、ラッチ560に加えられ、ORゲート5 52及びクロックされたANDゲート564を介してラッチ566に加えられる 。次に、ラッチ566.560は、マルチプレクサ552.554の出力を保持 する。データは、次のようにステージレジスタ251から読み出される。ラッチ 560.566の4ビツト出力は、いずれも8ビツトライン254に供給され、 更に、GOT GRANT信号とANDゲート578に於けるWR倍信号AND したものに応答して、バッファ576を介して、クラスタデータバス255に供 給される。
ERRビット及びUNCビットが、対応するクラスタビットバス302.304 からエラーレジスタ310に読み込まれ、更に、次のようにしてビットバス30 0に読み込まれる。ライン308に於けるERRビットは、ANDゲ−1580 を介してSRフリップフロップ582のSET入力にクロックされる。ライン3 16上のUNCビットは、ANDゲート586を介して、SRフリップフロップ 588のSET人力にクロックされるう両フリップフロップ582.588は、 クロックされたANDゲート584を介して、対応するRESET入力に加えら れたエラー信号CLRECC信号に応答して、適当な時点に於いてクリアされる 。所望に応じて、フリップフロップ582.588の出力は、信号ERRDRI VE BIT BUS及び信号UNCDRIVE BIT BUSに応答して、 それぞれバッファ590.592により、ビットバス300に供給される。
エクスポーホント/アドレスレジスタ206が、アドレスレジスタとして機能す る場合が第11図に更に詳しく示されている。エクスポーホント/アドレスレジ スタ206は4つの4ビツトシフトレジスタ/インクリメンタ600.602. 604.606を有する。ライン250mから発生し、クロックされたANDゲ ート608を介して加えられたシフト信号SHI FTに応答して、各シフトレ ジスタ600.602.604.606のデータがラッチされ、かつシフトされ る。4つのこのようなサイクルの後、エクスポーホント/アドレスレジスタ20 6は、完全な16ビツトアドレスを有し、シフトレジスタ600は、ビット<1 5:12>を有し、シフトレジスタ602は、ビット〈11:8〉を有し、シフ トレジスタ604は、ビット<7:4>を有し、シフトレジスタ606は、ビッ ト〈3:0〉を有する。16ビツトアドレスは、GOT GRANT信号に応答 して、バッファ610によりライン244上に供給される。更に、GOT GR ANT信号に応答して、プロセッサ要素識別番号がバッファ612によりライン 245上に供給される。前記したように、PE ID番号を、固定し或いは、プ ロセッサ要素内でローカルに計算することがてきる。エクスポーホント/アドレ スレジスタ206に記憶されたアドレスは、各シフトレジスタ600.602. 604.606の入力を、クロックされたANDゲート614を介してインクリ メントするものであって良い。
許可リクエスト回路に於いて発生したGOT GRANT信号が、更に、詳しく 第12図に示されている。Mビット338は、ライン254上のロード許可ビッ ト信号LDGRに応答して、GRビットフリップフロップ616にコピーされ、 クロックされたANDゲート618を介してフリップフロップ616に加えられ る。次いで、GRANT IN信号が発生すると、ANDゲート620がフリッ プフロップ622をセットし、GOT GRANT信号を発生する。更に、AN Dゲート620の出力は、クロックされたANDゲート624を介してフリップ フロップ616のリセットを駆動し、LD GR倍信号びROW信号のいずれも がアサートされていないことを条件として、フリップフロップ616をリセット する。フリップフロップ616のリセット出力は、また1サイクルの後にAND ゲート620を介してフリップフロップ622をリセットし、インバータ617 及びANDゲート619を介してGRANT OUT信号を発生し、それらに対 してGRANT−IN信号も加えられる。パイプラインを行う目的で、フリップ フロップにより信号行が遅延され、信号EN ROWMビット338に対応する 回路が更に詳しく第13図に示されている。Eビット336か、フリップフロッ プ624の出力に示されており、Mビット338がフリップフロップ626の出 力に示されている。フリップフロップ624.626は、クロックされたAND ゲートを介して、信号LD EBIT及びLD MBITに応答して、BLU3 20からのライン328の状態に応じて、セット/リセットされる。フリップフ ロップ624の出力(Eビット336)が、信号DRIVE EBIT FLA G BUSに応答して、バッファ632を介してフラッグバス324に供給サレ 、信号DRIVE EBIT BIT BUSに応答して、バッファ634を介 してビットバス300に供給される。フリップフロップ626の出力(Mビット 338)は、信号DRIVE MBIT FLAG BUSに応答して、バッフ ァ636を介して、フラッグバス324に供給され、信号DRIVE MBIT  BIT BUSに応答して、バッファ630を介して、ビットバス300に供 給される。フリップフロップ626の出力は、ライン360を介して、許可リク エスト回路211に供給される。Eビット336Mまたはビット338は、マル チプレクサ640を介して選択され、信号ENE BITがアサートされている か否かに応じてプロセッサ要素200をイネーブルする。
PEレジスタ220及びPEレジスタアレイコントローラ228が更に詳しく第 14図に示されている。PEレジスタ220は、4つの従来形式の512X1ビ ットSRAMメモリ回路をチップ上に有しており、これらは、PREG ADR のビット<10:2>を保持する9ビツトアドレスライン225を介してアドレ スされる。
ニブルバス208からのメモリ書込みは、どのマルチプレクサ652.654. 650.658によりニブルバス208のビットく3〉、〈2〉、〈1〉、〈0 〉を選択し、かつそれらを、どのSRAM642.644.646.648のデ ータイン(DI)入力に供給するかに応じて、ライン259上に信号NIB W Eがアサートされた時に行われる。同時に、NIB WE倍信号、ORゲート6 62.664.660.668を介して、SRAM642.644.646.6 48のライトイネーブル(WE)入力に伝達される。ビットバス300からのメ モリ書込み動作は、信号BITWEがライン250r上にアサートされた時に行 われる。信号NIB WEがアサートされていない場合、マルチプレクサ652 .654.656.658は、ビットバス300を選択し、このビットをSRA M642.644.646.648のデータインD1人力に供給する。
信号BIT WEは、ANDゲートグループ670に供給され、そこで、ライン 226を介して、PREG ADRの人力ビット<l:Q>を受けるデコーダ6 60の4つの出力ラインとそれぞれANDされる。デコーダ660の出力に基づ き、信号BITWEはORゲート662.664.666.668の1つを介し てSRAM642.644.646.648の書込みイネーブル(WE)人力の 1つに伝達される。
ニブルバス208へのメモリ読込みは、どのバッファ672.674.676. 678により、SRAM642.644.646.648のデータアウト(Do )出力を、ビット〈3〉、〈2〉、〈1〉、〈0〉としてニブルバス208上に 駆動するかに応じて、信号PREG DRIVE NIB BUSがライン25 0s上にアサートされたときに行われる。ビットバス300へのメモリ読み出し は、信号PREG DRIVE BIT BUSがライン250を上にアサート されたときに行われる。信号PREG−DRIVE NIB BUSがANDゲ ートグループ680に加えられ、そこで、ライン226上のPREG ADRの ビット<l:Q>を入力として受けるデコーダ660の4つの出力ラインのそれ ぞれとANDされる。デコーダ660の出力に基づき、信号PREG DRIV E BIT BIT BUSは、選択されたSRAM642.644.646. 648のデータアウト(DO)出力をビットバス300に送り出すバッファ68 2.684.686.688の1つへと伝達される。
ORツリーラッチ370が第15図に詳しく示されている。ニブルバス208か らの完全なニブルをORツリー372へとラッチするために、ロード信号LD  0RTREE NIBBLE BUSがライン250u上にアサートされる。信 号LD 0RTREE NIBBLE BUSは、クロックされたANDゲート 700を介して、フリップフロップ692.694.696に加えられ、ORゲ ート702及びクロックされたANDゲート704を介して、フリップフロップ 698に加えられる。信号LD 0RTREE NIBBLE BUSは、マル チプレクサ690にも加えられ、該マルチプレクサはニブルバス208のビット 〈0〉を選択し、それをフリップフロップ698に供給する。信号LD 0RT REE NIBBLE BUSに応答して、フリップフロップ692.694. 696.698はビットく3〉、〈2〉、〈1〉、〈0〉をそれぞれ0RTRE E OUTとして供給する。ビットバスからの単一ビットをラッチするために、 ロード信号LD 0RTREE LSB BIT BUSが、ライン250V上 にアサートされる。信号LD 0RTREE LSB BIT BUSは、オア ケート702及びクロックされたANDゲート704を介して、遅延フリップフ ロップ698に加えられる。信号LD−〇RTREE NIBBLE−BUSが アサートされていないため、マルチプレクサ690は、ビットバス300を選択 し、フリップフロップ698は信号LD 0RTREE LSB BIT BU Sに応答することをもって、ビットバスの状態をORT RE E。
OUTのビット〈0〉に供給する。
以上本発明を特定の実施例について説明したが、ここに記載されなかった他の実 施例及び変形例も本発明の範囲に含まれる。例えば、本発明は特定のワードの大 きさ、メモリの大きさ、クラスタメモリ内のDRAMの数或いはアドレスの大き さにより何ら限定されない。また、本発明は、特定の数のクラスタ、或いはクラ スタ当たりの特定のプロセッサ要素の数により限定されるものではない。従って 、本明細書に記載されなかった他の実施例及び変形例も、以下のクレームにより 定義される本発明の範囲内に含まれるものである。
FIG、 1 + −−−−−−−−−−−−−−−K r−一呻−+−一+11+++φ−− ・−一−へ要約 複数のクラスタ40を含む大規模並列プロセッサ。各クラスタはプロセッサ要素 50.00〜50.15 (PE)及びクラスタメモリ54を有する。各PE2 00はアドレスレジスタ206、ステージレジスタ251、エラーレジスタ31 01イネーブルフラツグ336、メモリフラッグ338及び許可リクエストフラ ッグ211を有する。クラスタデータバス225及びエラーパス302.304 は、クラスタのステージレジスタ及びエラーレジスタをそれぞれメモリ260に 接続する。クラスタの許可リクエストフラッグは、ポーリングネットワーク36 2.364により相互接続されており、このネットワークは、許可リクエストフ ラッグを一時に1つずつポーリングする。ポーリングネットワーク362.36 4上の信号及びメモリフラッグ338の状態に応答して、許可リクエストフラッ グ211が、クラスタデータバス255を介して行われるデータレジスタ251 とクラスタメモリ260との間の■0動作を定める。データ及びエラーピットは それぞれ対応するプロセッサ要素200に関連付けられている。シーケンシャル メモリ動作110〜113は、並列プロセッサ動作102〜109と並列に行わ れ、待ち行列を形成しても良い。直接アドレスモードに於いては、PE200は 、そのPE番号203を、放送バス250により供給された放送部分アドレスに アペンドすることによりそのアドレス空間をアドレスする。PE番号203は、 クラスターアドレスバス246により供給される。間接アドレスモードに於いて は、PE200は、部分アドレスをローカルに計算し、それを、クラスター内の それ自身のまたは他のPE番号203にアペンドすることにより、クラスター内 のそれ自身のまたは他のPEのアドレス空間をアドレスする。完全なアドレスは 、クラスターアドレスバス246により供給される。
国際調査報告 la+euv+m−^−””””・T’ffi/ITQQ1/(X’X’)7日

Claims (69)

    【特許請求の範囲】
  1. 1.それぞれイネーブルフラッグを備える複数のプロセッサ要素を有する少なく とも1つのクラスタを含む並列プロセッサのためのデータ転送システムであって 、それぞれ1つのプロセッサ要素に対応する複数のメモリフラッグと、 メモリと、 前記メモリに接続されたデータバスと、それぞれ前記プロセッサ要素の1つに対 応し、それに接続された1つのポートと、前記データバスに接続された別のポー トを有する複数のデータレジスタと、ポーリングネットワークに接続された複数 の許可リクエストフラッグとを有し、 前記許可リクエストフラッグが、それぞれ前記プロセッサ要素の1つに対応し、 対応するデータレジスタと前記メモリとの間でのIO動作を決定するために、前 記ポーリングネットワーク上の信号及び対応するメモリフラッグの状態に応答す るものであることを特徴とするデータ転送システム。
  2. 2.前記メモリに接続されたアドレスバスと、前記プロセッサ要素にそれぞれ対 応し、それに接続された1つのポートと、前記アドレスバスに接続されたもう1 つのポートとを有する複数のアドレスレジスタとを備え、前記許可リクエストフ ラッグのそれぞれが、前記した対応するアドレスレジスタの内容に応じて、対応 するデータレジスタと前記メモリとの間のIO動作を決定するために、前記ポー リングネットワーク及び対応するメモリフラッグの状態に応答することを特徴と する請求項1に記載のシステム。
  3. 3.前記メモリに接続されかつ、前記並列プロセッサのアレイ制御ユニットに接 続された第2のラインのサブセットを有するアドレスバスと、 前記プロセッサ要素の1つにそれぞれ対応しかつ前記アドレスバスの第2のライ ンのサブセットに接続された複数のプロセッサ要素識別レジスタを更に有し、前 記許可リクエストフラッグのそれぞれが、前記したアドレスバスの前記第1及び 第2のラインのサブセットの内容に応じて、対応するデータレジスタと前記メモ リとの間の10動作を決定するために、前記ポーリングネットワーク及び対応す るメモリフラッグの状態に応答することを特徴とする請求項1に記載のシステム 。
  4. 4.前記メモリに接続されたエラーバスと、前記プロセッサ要素の1つにそれぞ れ対応しかつそれに接続されたポート及び前記エラーバスに接続された別のポー トを有する複数のエラーレジスタとを有し、前記許可リクエストフラッグが、対 応するデータレジスタと前記メモリとの間でのIO動作を決定するために、前記 ポーリングネットワーク及び対応するメモリフラッグの状態に応答するものであ ることを特徴とする請求項1に記載のシステム。
  5. 5.クラスタとして配列された複数のプロセッサ要素を有する並列プロセッサの ためのデータ転送システムであって、予め選択された幅を有しかつ前記プロセッ サ要素のそれぞれに接続されたデータバスと、 予め選択された幅を有しかつ前記プロセッサ要素のそれぞれに接続されたエラー バスと、 前記データバス及び前記エラーバスの幅の和と概ね等しい幅のワードを有するメ モリと、 アドレスバスとを有し、 前記メモリが、前記アドレスバスの内容に応じて、前記データバス及び前記エラ ーバスに対するIO動作を行うためのイネーブル信号に応答するものであること を特徴とするデータ転送システム。
  6. 6.前記アドレスバスが前記クラスタ内の前記プロセッサ要素のそれぞれに接続 されていることを特徴とする請求項5に記載のシステム。
  7. 7.前記アドレスバスが前記並列プロセッサのアレイ制御ユニットに接続されて いることを特徴とする請求項5に記載のシステム。
  8. 8.前記アドレスバスが、前記クラスタ内の前記プロセッサ要素のそれぞれに接 続された識別バス及び前記並列プロセッサのアレイ制御ユニットに接続されたA CUバスとを有することを特徴とする請求項5に記載のシステム。
  9. 9.並列プロセッサに於いてデータを転送するための方法であって、 プロセッサ要素のクラスタとメモリとの間の共通のデータバスを提供する過程と 、 前記プロセッサ要素のそれぞれのメモリフラッグを並列に評価する過程と、 前記メモリフラッグの値を、対応する許可リクエストフラッグに供給する過程と 、 前記許可リクエストフラッグの選択された1つに対してポーリング信号を加える 過程とを有し、前記した選択された許可リクエストフラッグが、前記した選択さ れた許可リクエストフラッグに対応するデータレジスタと前記メモリとの間の、 前記共通データバスを介して行われるIO動作を決定するために、その対応する メモリフラッグの値及び前記ポーリング信号に応答することを特徴とするデータ 転送方法。
  10. 10.前記選択された許可リクエストフラッグに対応するアドレスレジスタから 前記メモリに向けて、該メモリに接続された共通のアドレスバスを介してアドレ スを提供する過程を更に有し、前記した選択された許可リクエストフラッグが、 前記したように提供されたアドレスに基づき、前記した選択された許可リクエス トフラッグに対応するデータレジスタと前記メモリとの間の共通のデータバス上 のIO動作を決定するために、対応するメモリフラッグの値及び前記ポーリング 信号に応答することを特徴とする請求項9に記載の方法。
  11. 11.プロセッサ制御ユニットから前記メモリに向けて、放送バスを介してアド レスを提供する過程を更に有し、前記した選択された許可リクエストフラッグが 、前記したように提供されたアドレスに基づき、前記した選択された許可リクエ ストフラッグに対応するデータレジスタと前記メモリとの間の共通のデータバス 上のIO動作を決定するために、対応するメモリフラッグの値及び前記ポーリン グ信号に応答することを特徴とする請求項9に記載の方法。
  12. 12.並列プロセッサのメモリシステムに於いてメモリ位置をアクセスするため の方法であって、メモリをN個のプロセッサ要素からなるクラスタと関連付ける 過程と、 部分アドレスに基づきそれ自身の内部にN個の隣接したメモリ位置を有するメモ リ領域を選択する過程と、プロセッサ要素の特定過程に基づき前記したN個の隣 接するメモリ位置の1つを選択する過程とを有することを特徴とするメモリ位置 のアクセス方法。
  13. 13.前記したPE要素のクラスタが第1の集積回路上に配置されており、前記 メモリが第2の集積回路上に配置されたダイナミックランダムアクセスメモリか らなり、前記第1及び第2の集積回路が共通のプリント基板上に配置されている ことを特徴とする請求項12に記載の方法。
  14. 14.前記メモリがページモードで作動することを特徴とする請求項13に記載 の方法。
  15. 15.N個の追加のプロセッサ要素からなる第2のクラスタに対して第2のメモ リを関連付ける過程と、前記部分アドレスに基づき、その内部にN個の隣接する メモリ位置を有する第2のメモリ領域を選択する過程と、第2のプロセッサ要素 の特定過程に基づき前記したN個の隣接する第2のメモリ位置の1つを選択する 過程とを更に有することを特徴とする請求項13に記載の方法。
  16. 16.前記した第2のクラスタをなすプロセッサ要素が第3の集積回路上に配置 されており、前記メモリが第4の集積回路上に配置されたダイナミックランダム アクセスメモリからなり、前記第3及び第4の集積回路が第2の共通のプリント 基板上に配置されていることを特徴とする請求項15に記載の方法。
  17. 17.前記第2のメモリがページモードメモリであることを特徴とする請求項1 6に記載の方法。
  18. 18.前記メモリがアドレスポートを有し、前記部分アドレスが前記メモリ領域 を選択するために前記メモリアドレスポートの上位ビットに供給され、前記プロ セッサ要素識別手段が、前記したn個の隣接するメモリ位置の1つを選択するた めに前記メモリアドレスポートの下位ビットに供給されることを特徴とする請求 項12に記載の方法。
  19. 19.プロセッサコントローラと、転送コントローラと、それぞれプロセッサを 有する複数のプロセッサ要素と、メモリとを有する並列プロセッサメモリシステ ムに於いてメモリ書き込み動作を行うための方法であって、前記方法が、前記プ ロセッサ要素内に、前記プロセッサにそれぞれ接続されたステージレジスタを提 供する過程と、前記メモリが関連付けられるべきクラスタ内に前記した複数のプ ロセッサ要素を配置する過程と、前記プロセッサ要素のサブセットを選択する過 程と、前記プロセッサコントローラを割り込み状態とする過程と、 前記プロセッサコントローラが前記した割り込み状態にある間に、前記した選択 されたプロセッサ要素のプロセッサから、前記した選択されたプロセッサ要素の 前記ステージレジスタにデータを並列に転送する過程と、前記したプロセッサか らステージレジスタヘのデータ転送過程に引き続き、前記プロセッサコントロー ラを非割り込み状態とする過程と、 前記転送コントローラをメモリビジー状態にする過程と、前記したプロセッサか らステージレジスタヘのデータ転送過程の終了に引き続き、前記した選択された プロセッサ要素の前記ステージレジスタから前記メモリへデータをシリアルに転 送する過程と、 前記したステージレジスタからメモリヘのデータ転送過程の終了に引き続き、前 記転送コントローラを非メモリビジー状態とする過程とを有することを特徴とす る方法。
  20. 20.前記サブセットが前記プロセッサ要素の全てからなることを特徴とする請 求項19に記載の方法。
  21. 21.前記サブセットが前記プロセッサ要素の全てよりも小さいことを特徴とす る請求項19に記載の方法。
  22. 22.プロセッサコントローラと、転送コントローラと、それぞれプロセッサを 有する複数のプロセッサ要素と、メモリとを有する並列プロセッサメモリシステ ムに於いてメモリ読み出し動作を行うための方法であって、前記方法が、前記プ ロセッサ要素内に、前記プロセッサにそれぞれ接続されたステージレジスタを提 供する過程と、前記メモリが関連付けられるべきクラスタ内に前記した複数のプ ロセッサ要素を配置する過程と、前記プロセッサ要素のサブセットを選択する過 程と、前記転送コントローラをメモリビジー状態にする過程と、前記したプロセ ッサからステージレジスタヘのデータ転送過程の終了に引き続き、前記メモリか ら、前記した選択されたプロセッサ要素の前記ステージレジスタへデータをシリ アルに転送する過程と、 前記したメモリからステージレジスタヘのデータ転送過程の終了に引き続き、前 記転送コントローラを非メモリビジー状態とする過程と、 前記プロセッサコントローラを割り込み状態とする過程と、 前記プロセッサコントローラが前記した割り込み状態にある間に、前記した選択 されたプロセッサ要素のステージレジスタから、前記した選択されたプロセッサ 要素の前記プロセッサにデータを並列に転送する過程と、前記したステージレジ スタからプロセッサヘのデータ転送過程に引き続き、前記プロセッサコントロー ラを非割り込み状態とする過程とを有することを特徴とする方法。
  23. 23.前記サブセットが前記プロセッサ要素の全てからなることを特徴とする請 求項22に記載の方法。
  24. 24.前記サブセットが前記プロセッサ要素の全てよりも小さいことを特徴とす る請求項22に記載の方法。
  25. 25.並列プロセッサであって、 それぞれアドレスレジスタ及びステージレジスタを有するプロセッサ要素からな る第1のクラスタと、第1のアドレスバスを介して前記第1のクラスタの前記ア ドレスレジスタに接続されたアドレスポートと第1のデータバスを介して前記第 1のクラスタの前記ステージレジスタに接続されたデータポートとを有する第1 のメモリと、それぞれアドレスレジスタ及びステージレジスタを有するプロセッ サ要素からなる第2のクラスタと、第2のアドレスバスを介して前記第2のクラ スタの前記アドレスレジスタに接続されたアドレスポートと第2のデータバスを 介して前記第2のクラスタの前記ステージレジスタに接続されたデータポートと を有する第2のメモリとを有し、 前記ステージレジスタが、前記したプロセッサ要素のそれぞれと共に並列データ 転送動作に選択的に参加するべく適合されており、 前記第1のクラスタの前記ステージレジスタが、前記第1のメモリと共にデータ 転送動作に選択的かつディスクリートに参加するべく適合されており、 前記第2のクラスタの前記ステージレジスタが、前記第2のメモリと共にデータ 転送動作に選択的にかつディスクリートに参加するべく適合されていることを特 徴とする並列プロセッサ。
  26. 26.前記プロセッサ要素がそれぞれプロセッサ要素データバスを備えており、 前記ステージレジスタがそれぞれ戦記プロセッサ要素データバスに接続されてい ることを特徴とする請求項25に記載の並列プロセッサ。
  27. 27.前記第1及び第2のデータバスがNビット幅を有し、前記ステージレジス タがNビット幅を有し、前記プロセッサ要素データバスが2分のNビット幅を有 することを特徴とする請求項26に記載の並列プロセッサ。
  28. 28.前記プロセッサ要素がそれぞれERRレジスタ及びUNCレジスタを有し 、更に 前記第1のクラスタの前記ERRレジスタに接続された第1のERRバスと、 前記第1のクラスタの前記UNCレジスタに接続された第1のUNCバスと、 前記第1のデータバスと、前記第1のERRバス、前記第1のUNCバス及び前 記第1のメモリの前記データポートとの間に配置された第1のエラー修正コード 回路と、前記第2のクラスタの前記ERRレジスタに接続された第2のERRバ スと、 前記第2のクラスタの前記UNCレジスタに接続された第2のUNCバスと、 前記第2のデータバスと、前記第2のERRバス、前記第2のUNCバス及び前 記第2のメモリの前記データポートとの間に配置された第2のエラー修正コード 回路とを更に有することを特徴とする請求項25に記載の並列プロセッサ。
  29. 29.前記第1のエラー修正コード回路が、前記第1のメモリに接続されたチェ ックビットポートと、前記第1のメモリに接続された前記第1のエラー修正コー ド回路の前記チェックビットポートに対応するデータポートと、前記第1のER Rバスに接続されたERRポートと、前記第1のUNCバスに接続されたUNC ポートと、前記第1のデータバスに接続された前記第1のエラー修正コード回路 の前記ERRポート及びUNCポートに関連するデータポートとを有し、 前記第2のエラー修正コード回路が、前記第2のメモリに接続されたチェックビ ットポートと、前記第2のメモリに接続された前記第2のエラー修正コード回路 の前記チェックビットポートに対応するデータポートと、前記第2のERRバス に接続されたERRポートと、前記第2のUNCバスに接続されたUNCポート と、前記第2のデータバスに接続された前記第2のエラー修正コード回路の前記 ERRポート及びUNCポートに関連するデータポートとを有することを特徴と する請求項28に記載の並列プロセッサ。
  30. 30.前記第1のクラスタの前記プロセッサ要素が、前記第1のクラスタの前記 ステージレジスタが前記第1のメモリと共にデータ転送動作に参加しているか否 かを示すためのMフラッグを更に有し、 前記第2のクラスタの前記プロセッサ要素が、前記第2のクラスタの前記ステー ジレジスタが前記第2のメモリと共にデータ転送動作に参加しているか否かを示 すためのMフラッグを更に有することを特徴とする請求項25に記載の並列プロ セッサ。
  31. 31.(a)前記第1のメモリと共にデータ転送動作に参加していることが示さ れた前記第1のクラスタのステージレジスタの数及び(b)前記第2のメモリと 共にデータ転送動作に参加していることが示された前記第2のクラスタのステー ジレジスタの数の最大値を決定するための、前記Mフラッグに応答するORツリ ーを更に含むことを特徴とする請求項30に記載の並列プロセッサ。
  32. 32.前記プロセッサ要素が更に、前記プロセッサ要素を算術演算のためにアク ティブにするためのEフラッグを有することを特徴とする請求項30に記載の並 列プロセッサ。
  33. 33.前記プロセッサ要素が更にそれぞれ許可リクエストフラッグを有し、 前記第1のクラスタが更に、第1のメモリ転送動作に参加するべき前記第1のク ラスタのプロセッサ要素を選択するために、前記第1のクラスタの許可リクエス トフラッグの状態に応答する第1のポーリングシステムを備え、前記第2のクラ スタが更に、第2のメモリ転送動作に参加するべき前記第2のクラスタのプロセ ッサ要素を選択するために、前記第2のクラスタの許可リクエストフラッグの状 態に応答する第2のポーリングシステムを備え、前記第1及び第2のメモリ転送 動作が概ね同時に行われることを特徴とする請求項30に記載の並列プロセッサ 。
  34. 34.前記第1及び第2のポーリングシステムがデイジチェーンからなることを 特徴とする請求項33に記載の並列プロセッサ。
  35. 35.前記第1及び第2のポーリングシステムがラウンドロビンシステムからな ることを特徴とする請求項33に記載の並列プロセッサ。
  36. 36.メモリ要素のクラスタを有する並列プロセッサに於けるメモリ転送動作を 制御するための方法であって、前記クラスタにクラスタメモリを関連付ける過程 と、第1のクラスタメモリデータ転送動作に参加するべき前記第1のクラスタの プロセッサ要素からプロセッサ要素のサブセットを選択する過程と、 前記プロセッサ要素のサブセットから選択された個々のプロセッサ要素と前記メ モリとの間でシーケンス的にデータを転送する過程とを有することを特徴とする 方法。
  37. 37.前記プロセッサ要素が、それぞれ対応する第1及び第2のフラッグを有し ており、 前記プロセッサ要素のサブセットを選択する過程が、前記選択されたサブセット の前記プロセッサ要素の第1のフラッグをセットし、かつ前記選択されたセット 以外の前記プロセッサ要素の前記第1のフラッグをリセットする過程と、 前記第2のフラッグの状態を、それに対応する前記第1のフラッグの状態に対応 するように確立する過程とを有し、前記データ転送過程が、 (a)前記第2のフラッグの対応する1つがセットされた前記選択されたサブセ ットのプロセッサ要素を特定する過程と、 (b)特定された前記プロセッサ要素と前記クラスタメモリとの間でデータを転 送する過程と、 (c)前記特定されたプロセッサ要素の前記第2のフラッグをリセットする過程 と、 (d)前記第2のフラッグが全てリセットされるまで前記過程(a)〜(c)を 繰り返す過程とを有することを特徴とする請求項36に記載の方法。
  38. 38.前記プロセッサ要素を特定する過程が、特定された前記プロセッサ要素の 前記第2のフラッグをデイジーチェーン式に尋問する過程を有することを特徴と する請求項37に記載の方法。
  39. 39.前記したプロセッサ要素のサブセットの大きさが1であることを特徴とす る請求項36に記載の方法。
  40. 40.それぞれ演算処理ユニットを有する複数の概ね同様のプロセッサ要素と、 プロセッサコントローラと、転送コントローラと、メモリとを有する並列プロセ ッサのためのプロセッサ要素であって、前記演算処理ユニットが、内部マルチビ ットバスと、 前記内部バスに接続された演算ロジックユニットと、前記内部バス及び前記演算 ロジックユニットに接続されたレジスタセットと、 内部ビットバスと、 前記ビットバスに接続されたブールロジックユニットと、前記ビットバスに接続 されたEフラッグとを有することを特徴とするプロセッサ要素。
  41. 41.前記プロセッサ要素の前記アドレスレジスタが、それぞれプロセッサ要素 アドレスセギュメント及びプロセッサ要素識別セグメントとを有し、 前記第1のアドレスバスが、前記第1のクラスタの前記アドレスレジスタの前記 プロセス要素アドレスセグメントに接続されたプロセッサ要素アドレスセグメン トバスと、前記第1のクラスタの前記アドレスレジスタの前記プロセッサ要素識 別セグメントに接続されたプロセッサ要素識別セグメントバスとを有し、 前記第2のアドレスバスが、前記第2のクラスタの前記アドレスレジスタの前記 プロセス要素アドレスセグメントに接続されたプロセッサ要素アドレスセグメン トバスと、前記第2のクラスタの前記アドレスレジスタの前記プロセッサ要素識 別セグメントに接続されたプロセッサ要素識別セグメントバスとを有し、 前記並列プロセッサが更に、 前記第1のメモリの前記アドレスポートと前記第1のアドレスバスとの間に配置 された第2のアドレスコントローラと、 前記第2のメモリの前記アドレスポートと前記第2のアドレスバスとの間に配置 された第2のアドレスコントローラと、 アレイ制御ユニットと、 前記アレイ制御ユニットを前記第1及び第2のアドレスコントローラに接続する 放送バスとを有し、前記第1のアドレスコントローラが、前記第1のメモリの前 記アドレスポートを、前記第1のアドレスバスの前記プロセッサ要素アドレスセ グメントバス及び前記放送バスの選択された1つに制御可能に接続し、前記第2 のアドレスコントローラが、前記第2のメモリの前記アドレスポートを、前記第 2のアドレスバスの前記プロセッサ要素アドレスセグメントバス及び前記放送バ スの選択された一方に制御可能に接続することを特徴とする請求項25に記載の 並列プロセッサ。
  42. 42.前記アドレスレジスタがエクスポーメントレジスタからなることを特徴と する請求項41に記載の並列プロセッサ。
  43. 43.前記アドレスレジスタが専用レジスタからなることを特徴とする請求項4 1に記載の並列プロセッサ。
  44. 44.前記サブセット内の前記プロセッサ要素のそれぞれが部分アドレス及びプ ロセッサ要素識別値を提供し、更にそれぞれのプロセッサ要素の部分アドレス及 びプロセッサ要素識別値をシーケンス的に前記メモリに供給する過程を有し、か つ前記したシーケンス的なデータの転送過程がそれと同期して実行されることを 特徴とする請求項36に記載の方法。
  45. 45.前記メモリが前記プロセッサ要素間にインターリーブされていることを特 徴とする請求項44に記載の方法。
  46. 46.前記プロセッサ要素の前記プロセッサ要素識別値が、それぞれのプロセッ サ要素についてユニークに定められていることを特徴とする請求項44に記載の 方法。
  47. 47.前記プロセッサ要素の前記プロセッサ要素識別値が制御可能に定められて いることを特徴とする請求項44に記載の方法。
  48. 48.前記サブセットの前記プロセッサ要素のそれぞれが、プロセッサ要素識別 値を供給し、更に 部分アドレスを前記メモリに供給する過程と、対応するプロセッサ要素のプロセ ッサ要素識別値を前記メモリに供給する過程とを有し、かつ前記シーケンス的な データ転送過程がそれと同期して行われることを特徴とする請求項36に記載の 方法。
  49. 49.前記メモリが前記プロセッサ要素間にインターリーブされていることを特 徴とする請求項48に記載の方法。
  50. 50.前記プロセッサ要素の前記プロセッサ要素識別値が、それぞれのプロセッ サ要素についてユニークに定められていることを特徴とする請求項48に記載の 方法。
  51. 51.前記プロセッサ要素の前記プロセッサ要素識別値が制御可能に定められて いることを特徴とする請求項48に記載の方法。
  52. 52.前記サブセット内の前記プロセッサ要素が部分アドレス及びプロセッサ要 素識別値を供給し、アレイ制御ユニットが部分アドレスを提供し、前記データ転 送過程が更に、直接及び間接アドレスモードの内から選択されたモードにより前 記メモリをアドレスする過程を有し、 前記直接アドレスモードが、部分アドレスを前記メモリに供給し、それぞれのプ ロセッサ要素のプロセッサ要素識別値を前記メモリにシーケンス的に提供する過 程を有し、前記シーケンス的データ転送過程がそれに同期して行われ、前記間接 アドレスモードが、それぞれのプロセッサ要素の部分アドレス及びプロセッサ要 素識別値を前記メモリにシーケンス的に提供する過程を有し、前記シーケンス的 データ転送過程がそれに同期して行われることを特徴とする請求項36に記載の 方法。
  53. 53.前記メモリが前記プロセッサ要素間にインターリーブされていることを特 徴とする請求項52に記載の方法。
  54. 54.前記プロセッサ要素の前記プロセッサ要素識別値がそれぞれのプロセッサ 要素に基づきユニークに定められていることを特徴とする請求項52に記載の方 法。
  55. 55.前記プロセッサ要素の前記プロセッサ要素識別値が制御可能に定められて いることを特徴とする請求項52に記載の方法。
  56. 56.前記プロセッサ要素のそれぞれが前記イネーブルフラッグの1つに対応す るイネーブルフラッグビットと、前記メモリフラッグの1つに対応するメモリフ ラッグビットとをそれぞれ対応するように備えていることを特徴とする請求項1 に記載のメモリシステム。
  57. 57.前記イネーブルフラッグビットと前記メモリフラッグビットとが異なるビ ットからなることを特徴とする請求項56に記載のメモリシステム。
  58. 58.前記イネーブルフラッグビットと前記メモリフラッグビットとが同一のビ ットからなることを特徴とする請求項56に記載のメモリシステム。
  59. 59.複数ののクラスタに区分された並列プロセッサに於て、1つのクラスタが 、 それぞれ対応するようにステージレジスタ及びメモリ転送イネーブルフラッグを 有する複数のプロセッサと、クラスタメモリと、 前記プロセッサの前記ステージレジスタと前記クラスタメモリとを相互接続する ためのクラスタデータバスと、クラスタアドレスバスとを有し、 前記クラスタデータバスが、前記メモリ転送イネーブルフラッグの状態に応じて 定められた前記プロセッサの1つのステージレジスタと、前記クラスタアドレス バスの内容に基づき選択された前記クラスタメモリのワードとの間のデータ転送 動作をサポートすることを特徴とするクラスタ。
  60. 60.前記クラスタアドレスバスが、前記クラスタメモリと前記プロセッサとを 相互接続することを特徴とする請求項59に記載のクラスタ。
  61. 61.前記プロセッサが、それぞれ対応するアドレスレジスタを有し、前記クラ スタアドレスバスが、前記クラスタメモリと前記プロセッサの前記アドレスレジ スタとを相互接続することを特徴とする請求項60に記載のクラスタ。
  62. 62.前記プロセッサ要素が、それぞれERRレジスタ及びUNCレジスタを有 し、前記ORツリーが、前記ERRレジスタ及びUNCレジスタに応答するもの であることを特徴とする請求項31に記載の並列プロセッサ。
  63. 63.前記ビットバスに接続されたMフラッグを更に有することを特徴とする請 求項40に記載のプロセッサ要素。
  64. 64.前記ブールロジックユニットに接続された内部フラッグバスを更に有し、 前記Eフラッグが前記フラッグバスに接続されており、前記Mフラッグが前記フ ラッグバスに接続されていることを特徴とする請求項63に記載のプロセッサ要 素。
  65. 65.それぞれレジスタアレイ及びデータデバイスを有する複数のプロセッサ要 素を備える並列プロセッサに於けるデータ転送動作を制御するための方法であっ て、データイン/データアウトタグの対を同一の相対アレイ位置を有する前記レ ジスタアレイのレジスタに関連付ける過程と、 データ転送動作の開始に伴い、同一の相対アレイ位置を有するレジスタに関連付 けられかつ少なくともいずれか一方が前記したデータ転送動作に参加するような 、タグの対のデータイン及びデータアウトタグの一方をセットする過程と、 データ転送動作の完了に伴い、前記したデータイン及びデータアウトタグの前記 したようにセットされたものをリセットする過程とを有し、 前記したデータ転送動作に関連するオペランドを必要とする命令が、前記データ イン及びデータアウトタグのセットされた状態に基づき保留されることを特徴と する方法。
  66. 66.前記データデバイスがメモリからなり、前記データイン及びデータアウト タグがメモリロード/記憶タグからなることを特徴とする請求項65に記載の方 法。
  67. 67.複数のクラスタに区分された並列プロセッサに於て、クラスタが、 それぞれデータレジスタ及びデータ転送ニブルフラッグを対応するように備えた 複数のプロセッサと、データインターフェース回路と、 前記データインターフェース回路を前記プロセッサの前記データレジスタに相互 接続するためのクラスタデータバスとを有し、 前記クラスタデータバスが、前記データ転送イネーブルフラッグの状態に基づき 選択された前記プロセッサの1つの前記データレジスタと前記データインターフ ェース回路との間のデータ転送動作をサポートすることを特徴とする並列プロセ ッサ。
  68. 68.前記クラスタが更にクラスタアドレスバスを有し、前記データ転送動作が 、前記クラスタアドレスバスの内容に基づき前記データインターフェース回路と 前記選択されたデータレジスタとの間で行われることを特徴とする請求項67に 記載の並列プロセッサ。
  69. 69.前記データインターフェース回路がメモリトランシーバー回路を有し、前 記クラスタアドレスバスがメモリを駆動するべく適合されていることを特徴とす る請求項68に記載の並列プロセッサ。
JP91504101A 1990-01-05 1991-01-04 並列プロセッサメモリシステム Pending JPH05506113A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US46156790A 1990-01-05 1990-01-05
US461,567 1990-01-05
PCT/US1991/000078 WO1991010200A1 (en) 1990-01-05 1991-01-04 Parallel processor memory system

Publications (1)

Publication Number Publication Date
JPH05506113A true JPH05506113A (ja) 1993-09-02

Family

ID=23833100

Family Applications (1)

Application Number Title Priority Date Filing Date
JP91504101A Pending JPH05506113A (ja) 1990-01-05 1991-01-04 並列プロセッサメモリシステム

Country Status (6)

Country Link
US (1) US5581777A (ja)
EP (1) EP0509055A4 (ja)
JP (1) JPH05506113A (ja)
AU (1) AU645785B2 (ja)
CA (1) CA2073185A1 (ja)
WO (1) WO1991010200A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08235141A (ja) * 1995-02-28 1996-09-13 Kofu Nippon Denki Kk 情報処理システム
JP2010531502A (ja) * 2007-06-26 2010-09-24 テールズ 並列プロセッサ用のアドレス指定装置
JP2011522325A (ja) * 2008-05-30 2011-07-28 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド ローカル及びグローバルのデータ共有

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5428803A (en) * 1992-07-10 1995-06-27 Cray Research, Inc. Method and apparatus for a unified parallel processing architecture
US5542074A (en) * 1992-10-22 1996-07-30 Maspar Computer Corporation Parallel processor system with highly flexible local control capability, including selective inversion of instruction signal and control of bit shift amount
US5696922A (en) * 1993-12-10 1997-12-09 Cray Research, Inc. Recursive address centrifuge for distributed memory massively parallel processing systems
US5765181A (en) * 1993-12-10 1998-06-09 Cray Research, Inc. System and method of addressing distributed memory within a massively parallel processing system
WO1995016239A1 (en) * 1993-12-10 1995-06-15 Cray Research, Inc. Memory addressing for massively parallel processing systems
US5790879A (en) * 1994-06-15 1998-08-04 Wu; Chen-Mie Pipelined-systolic single-instruction stream multiple-data stream (SIMD) array processing with broadcasting control, and method of operating same
JPH0830577A (ja) * 1994-07-15 1996-02-02 Mitsubishi Electric Corp Simdプロセッサ
US6038644A (en) * 1996-03-19 2000-03-14 Hitachi, Ltd. Multiprocessor system with partial broadcast capability of a cache coherent processing request
DE59814280D1 (de) * 1997-07-21 2008-10-23 Anton Gunzinger Verfahren zur schnellen Kommunikation in einem parallelen Computersystem und mit diesem Verfahren betriebenes paralleles Computersystem
JP3864509B2 (ja) * 1997-08-19 2007-01-10 株式会社日立製作所 マルチプロセッサシステム
JP4099561B2 (ja) * 1998-05-14 2008-06-11 ソニー株式会社 マルチプロセッサおよびそのバス調停方法
US6167501A (en) * 1998-06-05 2000-12-26 Billions Of Operations Per Second, Inc. Methods and apparatus for manarray PE-PE switch control
US6356994B1 (en) * 1998-07-09 2002-03-12 Bops, Incorporated Methods and apparatus for instruction addressing in indirect VLIW processors
JP2000132529A (ja) * 1998-10-23 2000-05-12 Sony Corp 並列処理装置、並列処理方法および記録媒体
US6282585B1 (en) * 1999-03-22 2001-08-28 Agere Systems Guardian Corp. Cooperative interconnection for reducing port pressure in clustered microprocessors
US7506136B2 (en) 1999-04-09 2009-03-17 Clearspeed Technology Plc Parallel data processing apparatus
GB2349484A (en) * 1999-04-09 2000-11-01 Pixelfusion Ltd Parallel data processing system with SIMD array
US7627736B2 (en) 1999-04-09 2009-12-01 Clearspeed Technology Plc Thread manager to control an array of processing elements
GB2348974B (en) * 1999-04-09 2004-05-12 Pixelfusion Ltd Parallel data processing systems
US7526630B2 (en) 1999-04-09 2009-04-28 Clearspeed Technology, Plc Parallel data processing apparatus
US6728843B1 (en) * 1999-11-30 2004-04-27 Hewlett-Packard Development Company L.P. System and method for tracking and processing parallel coherent memory accesses
US7191310B2 (en) * 2000-01-19 2007-03-13 Ricoh Company, Ltd. Parallel processor and image processing apparatus adapted for nonlinear processing through selection via processor element numbers
US7225320B2 (en) * 2000-12-28 2007-05-29 Koninklijke Philips Electronics N.V. Control architecture for a high-throughput multi-processor channel decoding system
JP2002259352A (ja) * 2001-03-01 2002-09-13 Handotai Rikougaku Kenkyu Center:Kk マルチプロセッサシステム装置
US7516334B2 (en) 2001-03-22 2009-04-07 Sony Computer Entertainment Inc. Power management for processing modules
US7231500B2 (en) 2001-03-22 2007-06-12 Sony Computer Entertainment Inc. External data interface in a computer architecture for broadband networks
US7093104B2 (en) * 2001-03-22 2006-08-15 Sony Computer Entertainment Inc. Processing modules for computer architecture for broadband networks
US6526491B2 (en) * 2001-03-22 2003-02-25 Sony Corporation Entertainment Inc. Memory protection system and method for computer architecture for broadband networks
US7233998B2 (en) * 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
US6961803B1 (en) * 2001-08-08 2005-11-01 Pasternak Solutions Llc Sliced crossbar architecture with no inter-slice communication
US20030059850A1 (en) * 2001-09-26 2003-03-27 Psychiatric Genomics, Inc. Fluorescence proximity assay
US20040006667A1 (en) * 2002-06-21 2004-01-08 Bik Aart J.C. Apparatus and method for implementing adjacent, non-unit stride memory access patterns utilizing SIMD instructions
WO2005017765A2 (en) * 2003-08-15 2005-02-24 Koninklijke Philips Electronics N.V. Parallel processing array
US7343470B1 (en) * 2003-09-26 2008-03-11 Altera Corporation Techniques for sequentially transferring data from a memory device through a parallel interface
US8224639B2 (en) 2004-03-29 2012-07-17 Sony Computer Entertainment Inc. Methods and apparatus for achieving thermal management using processing task scheduling
US7215808B2 (en) * 2004-05-04 2007-05-08 Kla-Tencor Technologies Corporation High throughout image for processing inspection images
US7681104B1 (en) * 2004-08-09 2010-03-16 Bakbone Software, Inc. Method for erasure coding data across a plurality of data stores in a network
US7681105B1 (en) * 2004-08-09 2010-03-16 Bakbone Software, Inc. Method for lock-free clustered erasure coding and recovery of data across a plurality of data stores in a network
US7398368B2 (en) * 2005-12-01 2008-07-08 Sony Computer Entertainment Inc. Atomic operation involving processors with different memory transfer operation sizes
US7509463B2 (en) * 2005-12-01 2009-03-24 Sony Computer Entertainment, Inc. Cell processor atomic compare and swap using dedicated synergistic processor element
US7712076B2 (en) * 2006-09-13 2010-05-04 International Business Machines Corporation Register indirect access of program floating point registers by millicode
US8024521B2 (en) * 2007-03-13 2011-09-20 Sony Computer Entertainment Inc. Atomic operation on non-standard sized data using external cache
US8332865B2 (en) * 2008-02-21 2012-12-11 International Business Machines Corporation Adjunct processor load balancing
US8572276B2 (en) 2010-04-29 2013-10-29 International Business Machines Corporation Pipelining protocols in misaligned buffer cases
US8806294B2 (en) * 2012-04-20 2014-08-12 Freescale Semiconductor, Inc. Error detection within a memory
US20170116154A1 (en) * 2015-10-23 2017-04-27 The Intellisis Corporation Register communication in a network-on-a-chip architecture
US10922258B2 (en) * 2017-12-22 2021-02-16 Alibaba Group Holding Limited Centralized-distributed mixed organization of shared memory for neural network processing
RU2681365C1 (ru) * 2018-08-03 2019-03-06 Общество с ограниченной ответственностью "Центр инженерной физики при МГУ имени М.В. Ломоносова" Вычислительный модуль для многостадийной многопоточной обработки цифровых данных и способ обработки с использованием данного модуля

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3863233A (en) * 1969-12-29 1975-01-28 Goodyear Aerospace Corp Magnetic memory array
US3800289A (en) * 1972-05-15 1974-03-26 Goodyear Aerospace Corp Multi-dimensional access solid state memory
US3936806A (en) * 1972-07-12 1976-02-03 Goodyear Aerospace Corporation Solid state associative processor organization
US3812467A (en) * 1972-09-25 1974-05-21 Goodyear Aerospace Corp Permutation network
US3987419A (en) * 1974-12-05 1976-10-19 Goodyear Aerospace Corporation High speed information processing system
US4447877A (en) * 1978-11-08 1984-05-08 Data General Corporation Memory bus interface system
US4316244A (en) * 1978-11-08 1982-02-16 Data General Corporation Memory apparatus for digital computer system
US4462073A (en) * 1978-11-08 1984-07-24 Data General Corporation Apparatus for fetching and decoding instructions
US4481580A (en) * 1979-11-19 1984-11-06 Sperry Corporation Distributed data transfer control for parallel processor architectures
US4314349A (en) * 1979-12-31 1982-02-02 Goodyear Aerospace Corporation Processing element for parallel array processors
BG35575A1 (en) * 1982-04-26 1984-05-15 Kasabov Multimicroprocessor system
US4598400A (en) * 1983-05-31 1986-07-01 Thinking Machines Corporation Method and apparatus for routing message packets
US4709327A (en) * 1983-05-31 1987-11-24 Hillis W Daniel Parallel processor/memory circuit
US4754394A (en) * 1984-10-24 1988-06-28 International Business Machines Corporation Multiprocessing system having dynamically allocated local/global storage and including interleaving transformation circuit for transforming real addresses to corresponding absolute address of the storage
US4805091A (en) * 1985-06-04 1989-02-14 Thinking Machines Corporation Method and apparatus for interconnecting processors in a hyper-dimensional array
US4719621A (en) * 1985-07-15 1988-01-12 Raytheon Company Packet fastbus
US4860249A (en) * 1985-10-04 1989-08-22 Saxpy Computer Corporation Multizone array processor implementing two sided zone buffers with each side being dynamically configured as a working or I/O side
US4797815A (en) * 1985-11-22 1989-01-10 Paradyne Corporation Interleaved synchronous bus access protocol for a shared memory multi-processor system
US4852048A (en) * 1985-12-12 1989-07-25 Itt Corporation Single instruction multiple data (SIMD) cellular array processing apparatus employing a common bus where a first number of bits manifest a first bus portion and a second number of bits manifest a second bus portion
IT1184013B (it) * 1985-12-13 1987-10-22 Elsag Memoria ad elevata capacita accessibile a diverse agenti
US4773038A (en) * 1986-02-24 1988-09-20 Thinking Machines Corporation Method of simulating additional processors in a SIMD parallel processor array
SE451219B (sv) * 1986-03-05 1987-09-14 Stiftelsen Inst Mikrovags Dataanordning fremst avsedd for exekvering av program i form av soktred, s k or parallel execution
US4783738A (en) * 1986-03-13 1988-11-08 International Business Machines Corporation Adaptive instruction processing by array processor having processor identification and data dependent status registers in each processing element
US5010476A (en) * 1986-06-20 1991-04-23 International Business Machines Corporation Time multiplexed system for tightly coupling pipelined processors to separate shared instruction and data storage units
US4805173A (en) * 1986-09-15 1989-02-14 Thinking Machines Corporation Error control method and apparatus
US4791641A (en) * 1986-09-15 1988-12-13 Thinking Machines Corporation Parallel processor error checking
US4827403A (en) * 1986-11-24 1989-05-02 Thinking Machines Corporation Virtual processor techniques in a SIMD multiprocessor array
US5165023A (en) * 1986-12-17 1992-11-17 Massachusetts Institute Of Technology Parallel processing system with processor array and network communications system for transmitting messages of variable length
US4891787A (en) * 1986-12-17 1990-01-02 Massachusetts Institute Of Technology Parallel processing system with processor array having SIMD/MIMD instruction processing
US4873626A (en) * 1986-12-17 1989-10-10 Massachusetts Institute Of Technology Parallel processing system with processor array having memory system included in system memory
WO1988006764A2 (en) * 1987-02-24 1988-09-07 Digital Equipment Corporation Massively parallel array processing system
US4980854A (en) * 1987-05-01 1990-12-25 Digital Equipment Corporation Lookahead bus arbitration system with override of conditional access grants by bus cycle extensions for multicycle data transfers

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08235141A (ja) * 1995-02-28 1996-09-13 Kofu Nippon Denki Kk 情報処理システム
JP2010531502A (ja) * 2007-06-26 2010-09-24 テールズ 並列プロセッサ用のアドレス指定装置
JP2011522325A (ja) * 2008-05-30 2011-07-28 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド ローカル及びグローバルのデータ共有
US9619428B2 (en) 2008-05-30 2017-04-11 Advanced Micro Devices, Inc. SIMD processing unit with local data share and access to a global data share of a GPU
US10140123B2 (en) 2008-05-30 2018-11-27 Advanced Micro Devices, Inc. SIMD processing lanes storing input pixel operand data in local register file for thread execution of image processing operations

Also Published As

Publication number Publication date
AU7328991A (en) 1991-07-24
EP0509055A4 (en) 1994-07-27
WO1991010200A1 (en) 1991-07-11
CA2073185A1 (en) 1991-07-06
US5581777A (en) 1996-12-03
AU645785B2 (en) 1994-01-27
EP0509055A1 (en) 1992-10-21

Similar Documents

Publication Publication Date Title
JPH05506113A (ja) 並列プロセッサメモリシステム
AU628525B2 (en) Write back buffer with error correcting capabilities
US5634099A (en) Direct memory access unit for transferring data between processor memories in multiprocessing systems
US5016167A (en) Resource contention deadlock detection and prevention
US4768148A (en) Read in process memory apparatus
US5224215A (en) Message queue processing among cooperative processors having significant speed differences
US5146607A (en) Method and apparatus for sharing information between a plurality of processing units
JPS6231465A (ja) 複数の緊密結合プロセツサを採用したマルチプロセツサ・コンピユ−タ・システム
JPH02500307A (ja) 自動サイズ決めメモリシステム
JPH05158890A (ja) 多重プロセッサ・データ処理システム及びその動作方法
SE517214C2 (sv) Metod och anordning för automatisk rättning av ECC-fel i ett minne med hjälp av hårdvara
JPS6230665B2 (ja)
JPS603653B2 (ja) 内部プログラム式データ処理装置
JPH0128409B2 (ja)
JPH02223091A (ja) コンピュータメモリシステム
WO1990010907A1 (en) Controller for direct memory access
WO1988003292A1 (en) Data alignment system
JPS62102497A (ja) ランダム・アクセス・メモリ
EP0723705A1 (en) Method for combining a plurality of independently operating circuits within a single package
US4953079A (en) Cache memory address modifier for dynamic alteration of cache block fetch sequence
US7552247B2 (en) Increased computer peripheral throughput by using data available withholding
JPH07191901A (ja) データ情報保持装置
EP0479919A1 (en) Method and circuit for programmable element sequence selection
EP0150523A2 (en) Data processing system with improved memory system
JPS603049A (ja) バスインタ−フエ−ス装置