JPH06502033A - スカラブル パラレル ベクトル コンピュータシステム - Google Patents
スカラブル パラレル ベクトル コンピュータシステムInfo
- Publication number
- JPH06502033A JPH06502033A JP3516822A JP51682291A JPH06502033A JP H06502033 A JPH06502033 A JP H06502033A JP 3516822 A JP3516822 A JP 3516822A JP 51682291 A JP51682291 A JP 51682291A JP H06502033 A JPH06502033 A JP H06502033A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- processor
- vector
- thread
- crossbar
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8092—Array of vector units
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/461—Saving or restoring of program or task context
- G06F9/462—Saving or restoring of program or task context with multiple register sets
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
- Multi Processors (AREA)
- Advance Control (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。
Description
【発明の詳細な説明】
スカラブルパラレルベクトルコンピュータシステム&−二立野
本発明は、高速デジタルデータ処理システムに関し、より詳しくはベクトル処理
に対して採用されるスカラブルマルチブロセノサによるスーパーコンビニータン
ステム関する。
介■五宣旦
膨大な科学データの処理作業には、整列されたデータアレイの拡張的な算術上の
操作か含まれる。一般に、この種の操作又は“ベクトル”処理には、セットした
データの各々の連続的な要素に対して繰り返し的な同一の動作が含まれる。はと
んどのコンピュータは、メモリおよび入出力部と交信できる、単一の中央処理ユ
ニ、)(CPU)で構成される。数学関数を実行するために、各オペランドは、
メモリからCPtJへ連続的に供給して、関数が実行され、そして処理結果をメ
モリに転送しなくてはならない。しかしながら、指示やデータがメモリユニット
からフエ’7チできる時間よりも短い時間で通常、CPUが指示やデータを処理
する。
この“メモリ固有の呼び出し時間”は、指示やデータがメモリから引き出される
ための待時間のために多くのロス時間をCPUに対して与える結果となる。この
種の機構、つまり、“スカラー”マシーンを利用する装置は、余りにも処理速度
が遅く、かつ、大規模な処理に対して実際に使用されるためには非効率なハード
ウェアとなることが見いだされている。
整列されたデータアレイを扱う時に、処理速度を増し、ハードウェアの効率化を
図るために、“ベクトル“マシーンが開発されている。ベクトルマン−7は、そ
のハードウェア機構の利点により整列されたデータアレイを処理するものであり
、これにより、スカラーマシーンよりも高速の処理速度を得ている。このような
ベクトルマシーンの一つに、クレイ社による1978年10月5日公告の米国特
許4.128.880があり、その開示を参考としてここで述べる。
クレイ社特許のベクトル処理マ/−ンは、ベクトル処理を実行するために特に設
計された3つのベクトル関数ユニットを有する単一プロセッサの装置である。
そのクレイ特許は又、8組みのベクトルレジスタを提供している。ベクトル処理
はベクトルレジスタからのデータを用いて直接に実行できるので、同一データの
繰り返し演算が要求される場合には、メモリアクセス(およびこれにより、メモ
リ固有の呼び出し時間による遅延)における実買的な低減要求が達成される。
クレイ特許は又、指示およびデータを、隠しメモリ固有の呼び出し時間として、
予めフェッチ(ブリフェッチ)する手法を採用している。このテクニックは“パ
イプライン“として知られ、プログラム指示のブリフェッチおよび、先の指示が
実行されて0る間に、n長の指示“バイブの一端へのそれらの書き込みを含む。
前記指示の実行に対して必要な対応するデータも又、メモリからフェッチされ個
別データのパイプラインまたは“チェイン”の一端に書き込まれる。この結果、
指示がバイブの最終読み出しに到達する時間により、メモリから検索されるべき
実行に対して必要にデータが、データチェインの最終読み出しからの処理のため
に、直ちに利用できる。指示のパイプライン化およびデータのチェイン化により
、実行時間の殆どをメモリフェ、チ時開とオーパーラ、ブすることができる。こ
の結果、ブロモ、すの怠は時間が大幅に低減される。
マルチプロセッシング技術の使用により、スカラーおよびベクトルマシーン双方
でのコンピュータの処理速度および効率を更に向上することができる。マルチプ
ロセッシングは、メインメモリのごとく、システムの資源を共用する二つまたは
より多くのプロセッサの使用を含む。異なった仕事または一つの仕事での関連し
た仕事の独立した仕事がマルチのプロセッサで実行されてもよい。各々のプロセ
ッサは、自身の指示に従い、そして、プロセッサはそれらの指示を同時(″並列
”)に行う。プロセッサおよび並列動作するブロモ/すの数を増すことにより、
より短い期間により多(の仕事を達成することができる。
Chenの942の二つのプロセツサマンーンの別の態様として:ま、Chen
およびその池による1987年4月28日発表の米国特許4.661.900が
あり、参考としてここで述へる。4つのプロセッサを用いたマルチブロセノノノ
グベクトルマ/−ン七しては、Schi(flegerによる1988年5月1
7日発表の米国特#4.745.545および、Pribnowによる1988
年6月28日発表の米国特許4.754.398に開示されており、それらの双
方の特許を参考としてここで述べる。上述したすべての特許はクレイ リサーチ
社に譲渡されている。
本発明の謬受入であるクレイ リサーチ社からの別のマルチブロセlンングベク
トルマノーンは、Y−MPベクトルスーパーコンピュータがある。そのY−〜1
Pの様式の詳細な説明は、1989年2月7日出願の07/307.882のタ
イトル名“Y−MPのためのメモリアクセスの矛盾を解決するシステム”の特許
出願に見ることができ、ここで参考として述べる。Y−MPの設計において、各
ベクトルマンセ、す:よ、指示の実行のために一つのパイプラインを持つ。各プ
ロセッサは、完全に接続されたトボロジイ内の共通のメモリにアクセスするのて
、同じエリアにアクセスしようとするブロモ、す間の避けられない衝突が起きる
。そのY−MPは、衝突を最小にするために衝突回避/ステムを用い、かつ、矛
盾を可能な限り迅速に解消する。矛盾解l1il/ステムは、衝突を解決するも
のの内蔵のプロセッサを非活性にし、かつ、ベクトルを封じ込める。プロセッサ
は衝突を回避するために待たなくてはならず、それ故、衝突はブロモ、すに怠は
時間を生じさせる。
この問題のために、Y−MPのスーパーフンピユータは、単に8個の比較的少な
いベクトルプロセッサに制限される。より多くのプロセッサを含むためにY−M
Pの設計を拡張することは、ブロモ、す間のメモリアクセスの矛盾数を増加させ
、これにより、プロセッサに怠は時間を増加させる。Y−MP様式は、それ故、
システム内に数百または数千のブロモ、すを持つことが望ましい、大量の並列ベ
クトル処理に適していない。
マルチプロセッシングは、実行速度を増大するが、その増大は用いられたプロセ
ッサの個数とリニアに関係しない。これはおおまかに二つのファクター 管理調
整用時間および“ロックアウトに起因する。プロセッサおよびプロセッサ機能を
調整するのに要求される制御および同期のレベルが増大するため、重要な管理調
整用時間は、マルチプロセッサ環境では導入されている。両者の交信およびすべ
てのブロモ、すの制御は、マルチプロセッシングのシステムに対して性能の低下
をもたろす。仕事を実行するためにいくつかのプロセッサが共動するとき、両者
のデータの従属およびプロセッサ間のデータの通過は、避けられない。一つのプ
ロセッサが、別のブロモ、すからのデータが当該ブロセ、サヘ通過する時間を待
たねばならない時にプロセッサの怠は時間が生じる。システムの性能はこれによ
り低下する。
マルチプロセッサ/ステムの性能低下の他の重要な要因は、共通の資源を共用す
るマルチプロセッサにつきもののプロセッサのロックアウトまたは“ブロッキン
グである。これは、一つのプロセッサが、既に別のプロセッサが使用している共
用の資源をアクセスしようとした時に起きる。そのプロセッサは、これにより、
共用の資源の使用がブロックされ、他のプロセッサが完了するまで待たなくては
ならない。再びプロセッサの怠は時間が生じ、システムの性能が低下する。
上述した技術の付随的な欠点は、一つのバイブラインの仕事を極めて高速に解決
する方向に向けられ、それ故、多くの仕事において、高いレベルの固有のバラレ
リズム(同時処理)の利点を得ることができない。
いくつかのスカラーマルチブロセッシングマノーンは、別の様式のバラレリズム
をマシーンに導入することにより、より大きな性能を得ようと試み発展してきた
。各々が一つの指示流れを有する、幾つかのブロモ・ノサを用いた標準のマルチ
プロセッシング技術を用いるよりもむしろ、これらのスカラーマシーンが、各々
が多数の指示流れ又は“スレッド(糸)”を有する、いくつかのブロモ/すを用
いる。計算及びメモリ呼び出し時間は、プロセッサ内のスレッド間の“文脈(C
ontext)スイッチ“によりカバーされる。そのような77−ンの一例とし
ては、Denelcor Heterogenous Element Pro
cessor(HE P)がある。
Dene】cor HE Pは、各々が128までのバイブライン化された指示
スレッドを有するプロセッサを16個まで保有する、スカラーマルチブロセノン
ングマノーンである。各スレッドは、レジスタおよび機能的ユニットの目的のた
めに自身のプログラムメモリを備える。そのHEP文脈スイッチは、プロセッサ
内のマルチのスレッドの時間切りにより、つまり、各クロックサイクル毎にプロ
セッサがスレッドをスイッチすることにより、完成される。各クロックサイクル
毎に、円状に配列された次のスレ、ドが指示を出すことを許可する。nクロック
サイクル後、すべてのn個のスレ、ドが指示を出すことを許可される。り0/ク
サイクル(n+1)でプロセッサは文脈を第1のスレッドヘスイッチバックして
そしてそれ自身の処理を繰り返す。例えば、16スレノドの文脈切り替えプロセ
ッサは、特定のスレッドが各16の連続したクロックサイクルにアクティブとな
るので、15またはそれ以下のクロ、り期間長である、あらゆる呼び出し時間を
効率的に隠す。
Denelcor HEPの文脈切り替えの機構は、短いメモリ呼び出し時間を
相対的に隠すことができるが、スレ、ドの個数よりも長い呼び出し時間は、長引
くデータの依存状況または、共用の資源を一つ以上のブロモ、すがアクセスしよ
うとすることに起因するブロックのために、その分割時間の間にスレッドが通過
する結果となる。例えば、高速のクロック/ステムでは、メモリは、プロセッサ
の最良の場合の状況から“隔たった”30又はより以上のクロックサイクルであ
る。そのようなシステムは、メモリアクセスの呼び出し時間をカバーするために
、30またはより多くの独立したプログラムのスレ、ドを必要とする。もし、よ
り少ないスレ、ドが使用されたならば、ブロックされたスレッドへの多くの無駄
なリターンが起きる。この結果、プロセッサに怠は時間および対応して性能の低
下が起きる。
HEPにおけるこのプログラムは、スレッド数を増加することにより解決される
ことは明白であるが、その解決は他の問題を提起させる。第1に、オペレートの
システム管理が、ブロモ、すのプロセッサ数が増大するにつれてより複雑となる
。第2に、16個のプロセッサを効率的に使用するために、十分に関係してい多
くの困難を持つ。このため、一つのプロセンサが、最適なスレッド数より少ない
状態でしばしば実行する。この結果、処理のために再度スレッドが選択されるた
めの時間によって、読み出し時間およびデータの依存状況が解決されないといっ
た同様な9とが次に増大する。
HEPの文脈切り替えによる時間分割の性質は、更にHEPの使用を制限する。
単純な時間分割技術における信頼は、計算およびメモリ呼び出し時間が固定され
たという仮定に基づいている。しかしながら、これは、種々の呼び出し時間があ
るマルチプロセッサの環境下では典型的な場合ではない。
更には、HEPが、最大で16個のみのプロセッサを有する、スカラーマシーン
であるので、多数のスカラーベクトルを有する仕事の処理に適していない。ベク
トル演算を行うためには、スカラーマシーンがより多(の指示およびより多くの
データを要求するので、HEPで実行されるベクトル動作は、より長く、がっよ
り多くの非効率に実行する。又、HEPの設計が比較的少ないプロセッサ数(1
6)に制限されるため、その設計を、数百または数千のプロセッサを持つことが
望ましい並列処理様式に拡張することはできない。
スカラーマルチプロセッサ/マルチスレッドのマシーンの他の例としては、スー
パーコンピユーテイングリサーチセンターおよびテラコンピューターカンパニー
での研究による水平概念の様式がある。水平様式は、その前身、前述したDen
elcorHE Pの様式と密接に関係しており、そこでは各プロセッサは+2
8までのバイブライン化した指示スレッドを何し、かつ、文脈スイッチは、各マ
ン−7サイクル後に起動する。又、水平様式における各スレッドは、自身の一般
的な目的レジスタ、プログラムカウンタおよびプロセッサ状態を有する。
両者の基本的な差異の−っは、HEPが僅かに16個までのプロセッサを有する
のに対して、水平様式は256から1024個までのプロセッサを有することで
ある。しかしながら、その様式がHEP様式と密接に関係しているので、HEP
に見い出される欠点の殆どが水平様式に今なお存在する。再び、プロセッサ当た
りの多数のスレッド数の要求、多数の関連しないプログラムスレッドに見い出さ
れる困難、固定した呼び出し時間の仮定、およびスカラーマ7−ンの限界に含ま
れる問題が、大容量のスカラーベクトルブロセ、ノングの仕事の使用に対して、
水平様式の望ましい選択を少なくする。
7ンーン性能に全体的に影響するマルチブロセ、ンングマシーンの別の態様は、
メモリインクフェイスに対するプロセッサである。マルチプロセッサインタフェ
イスの疑問に対する一つの解決は、BBNシステムおよびテクノロジ−コーホ1
4フ
見いだすことができる。そのモナーチは、スカラー、単一スレッドのマルチブロ
セノ7ング様式であり、ブロモlすとメモリとで交信するために“回路切り替え
”と呼ばれる技術を用いる。回路切り替えのインタフニイス機構では、すべての
プロセッサがメモリに対する同一の経路を共用する。モナーチ設計におけるプロ
セッサがメモリ要求を持った時、プロセッサネットワークからメモリへの全体経
路が開放され、メモリおよびプロセッサか交信を終了するまでその開状態が維持
される。この機構は、回路切り替えネットワークを通じてメモリを参照しようと
する他のプロセッサを抑制して、レファレンス転送速度を制限し、プロセッサの
多(怠は時間を生じさせる。このような設計は、それ故、大量のデータがブロモ
。
すとメモリとの間で転送されるマルチブロモ,す、マルチスレッド、ベクトルブ
ロセノ/ングにおける使用に対して実際的できない。
マルチプロセッサメモリインタフェイスに対する別の解決は、水平手順性機構に
見いたすことができる。水平インクフェイスネットワークは、絶望手順法または
ホットポテト手順法と呼ばれる機構を用いる。水平の絶望手順法は、マルチの入
力部および等価な出力部を有する。この手順法の機構は、各ネ,トワークサイク
ル毎に、各入力部が出力部への手順を得ることである。例えば、もし4個のレフ
ァレンス人力部かあり、その4個のレファレンス入力部が同一の出力を得ようと
しているならば、4個のレファレンス入力部の一つが正しい選択を得て、そして
他のすべての入力部が他の所望されない選択を得る。これは、4個の入力部から
3個のへ内部が、ネットワークを通じてより多数の経路を取ることを意味する。
水平絶望ネットワークは、これらの他のレファレンスが所望の入力部に戻り、そ
して、他の機会が所望の出力を得るように、手順化される。レファレンスがネッ
トワーク内で決して消失しないように、水平手順化機構は、より長いレファレン
スがネットワーク内に存在するような機構を持ち、結果的に同一出力に対して文
脈のレファレンスに打ち勝つようその優先度が上昇する。当業者であれば、この
ような手順化機構は、単一のレファレンスが、所望の終端にいかに得るかのマル
チの可能性を持つ結果となり、多くのレファレンスがネットワーク内で交通と衝
突するために長い時間を費やす。この結果、水平絶望手順化機構は、マルチスレ
ッド化のベクトルブロセク/ングマ/−ンに使用することにも適していない。
それ故、ベクトルブロセノンングの利点を持ち、大容量のスカラーベクトルブロ
セ,シノグの仕事においてバラレリズム固有の程度を極めて高くできる利点を更
に得るために、そして、オペレートシステムまたはプロセッサの拡張的な再設計
を必要とすることなく、任意のプロセッサ数で容易にスカラー計算できる、コン
ピュータマシーンに対する必要性がある。
茜■Ω旦!
上述した限界を克服するために、また、本明細書を読み理解することにより明ら
かになる他の限界を克服するために、本発明は、関連しない多数のプログラムス
レッドが同一のプロセッサ内て指示を実行できる、ベクトルブロセノンングのた
めに適用されたスカラブルマルチブロセノサスーパーコンピュータマノーンを提
供する。コンビ二一夕は、いずれの個数のブロモ、すで構成することができ、モ
ジュラ−の様式の性質は、単純な返答によってマンーンのいがなるスカラーの命
令をも許可する。
この様式は、関係しない多数のプログラムスレッドが同一のプロセッサ内で指示
を実行できる、構成を共用する資源を実行する。多数のスレッドの一つのみがい
ずれかの時間でアクティブとなり、そして、メモリの衝突に起因する出力のブロ
ックが生じるまでアクティブとなる。プロlりが起きた時、プロセッサは現在の
スレッドを非アクティブにし、そして文脈を次のスレ、ドに切り替える。各スレ
ッドはロックが起きるまで実行が許可されるので、又、システムがベクトル処理
のために設計されているので、好ましい実施例における計算およびメモリ呼び出
り時間をカバーするためには、はんのわずかな関係しないプログラムスレッドが
必要となる。以前のマンーンでの可能な処理量より、少ないスレッドを育するよ
り高い情報処理量がこのようにして得られる。
キーンステムの設計仮定は、マルチのプログラムスレッドからの関係しないコー
ドを実行することにより、マルチスレノド化の文脈切り替えブロモ、すがメモリ
アクセスの呼び出し時間をカバーしている。プロセッサ内で他のスレッドと関係
していないコードを有する各スレッドを動作させることは、文脈スイッチに起き
るブロックがローカル(特定のスレッド)であり、プロセッサ内の他のスレッド
の実行に影響を与えない。特定のスレッドは、それの解決されたブロックを持ち
、円の実行サイクル内で池のすべてのスレッドがターンした後、青変、アクティ
ブにされることが期待される。
本発明の様式に用いられた共用されたメインメモリは、いくつかのメモリバンク
に分割される。ブロモlすはマルチ階層のクロスバー不/トワークを通じて共用
されたメモリと交信する。そのクロスバ−ネットワークは、各プロセッサからメ
モリへのボートの独立を保持する。プロセサ間の交信および同期は、共用された
メモリに位置する共用されたレジスタの使用を通じて、そして特定の指示を用い
てクロスバ−ネットワークを通じて達成される。
図面の説明
図面において、いくつかの図を通じて同様なエレメントには同様な番号を付し図
2は図1に示した階層の一つのより詳細なプロ、り図。
図3Aおよび3Bは本発明の好ましい】実施例に使用されたタイプのプロセッサ
のブロック図。
図4A、4Bおよび4Cは本発明のプロセッサ部分に対する入力回路のブロック
図。
1ZI5A、51よび5Cは本発明のプロセッサ部分に対する出力回路のブロッ
ク図。
図6は図1に示した点線に沿った4×4のクロスバ−スイッチのより詳細なブロ
ック図。
図7Aおよび7Bは、本発明の−に使用されたタイプのメモリボードのブロック
図。
好ましい 絶倒の詳細な説明
好ましい実施例の以下の好ましい実施例において、記述は、発明の一部を形成す
る添付図面に対してなされ、その図面には、本発明が実行される特定の実施例の
方法により示している。本発明の本旨からそれることなく、他の実施例が用いら
れ構成されてもよく又は論理的な変化か適用されてもよいことが理解されるであ
ろう。以下の詳細な記述はそれ故、限定した意味に取られることなく、本発明の
本旨は付記したクレームにより限定される。
さて図1を参照すると、本発明の全体様式を簡略化したプロ/り図を示す。図1
は、いくつかのクロスバ−ネットワーク400を通じてコモンメモリ600(こ
インタフェイスされたマル壬のプロセッサネットワーク100を示す。本発明の
好ましい実施例では、プロセッサネットワーク100内の個々のプロセッサ(不
図示)は、コモンメモリに対する3個のボートA、B、Cを持つ。プロセッサ側
から見た時、メモリ容量を最小にし、かつ、プロ、キングするために、3個のボ
ート経路は、コモンメモリ600へのすべての経路で分割される。これは、各ボ
ート−に対して、点111440で示した自身の分離した本国行きのクロスバ−
ネットワークおよび点線420で示した外国行きのクロスパーネットワークに委
ねることにより達成される。(“外国行き”クロスバー不、トワークはプロセッ
サからメモリ関連を扱い、他方、“本国行き”クロスパーネットワークはメモリ
からプロセッサ関連を扱う。)例えば、ブロモ、すネットワーク100における
個々のプロセッサよりの、プロセッサからメモリ関連に対するすべてのボートA
を外国行キの経路402に委ねる。プロセッサからメモリレファレンスに対する
すべてのボートBを外国行きの経路406に委ねる。同様に、メモリからプロセ
ッサレファレンスに対するすべてのボー)Aを本国行きの経路412に委ねる、
等である。
本国行きおよび外国行きポート経路のすべてが分離しているので、本発明の設計
は、すべてのブロモ、すからの3個すべてのボートがメモリに対して同じアクセ
スに対して争うようした設計に対して偉人な利点を持つ。後者のタイプの設計で
は、3個すべてのボートがメモリに対して同じ経路を共用する場合で、次のボー
トまたはプロセッサがブロモ、すからおよびメモリへの途中にメモリレファレン
スを得ようとした時、メモリ経路が抑えられる。本発明の設計では、しかしなが
ら、3個すべてのボートか委ねられた本国行きおよび外国行きクロスバ−ネット
ワークの双方を持つので、経路が抑えられる可能性は極めて低い。それ故、ボー
ト関連が互いに争わないため、ボートはプロセッサから出て行くことができる。
この結果、本発明の設計は、メモリ経路の争いおよびプロセッサの見地からのブ
ロックを低減し、当業者には容易に理解できるように、別の設計に対しても偉人
な利点をもたらす。
本発明の好ましい実施例では、プロセッサネットワーク100内の個々のプロセ
ッサが3個のレファレンスボートを持つが、当業者であれば、各プロセッサが随
意の個数のレファレンスポートを含むことができることを理解できるであろう。
例えば、もし、プロセッサ当たりのレファレンスポート数が10に増加されたな
らば、本国行きのクロスバ−ネットワーク400の個数も10に増加され、外国
行きのクロスバ−ネットワーク数も10個に増加され、その結果、レファレンス
ポートの各セットは、自身の分離した本国行きおよび外国行きのメモリ経路を持
つ。当業者であれば、本発明の本旨からそれることな(、プロセッサ当たりいく
つの個数のレファレンスポートを使用してもよいことが理解されよう。
図2は、単一のプロセッサからメモリへのクロスバ−ネットワーク400のより
詳細なブロック図である。特に図2は、単一のマルチ層によるクロスバ−ネット
ワーク400を通じて、コモンメモリ600にインタフェイスされた本発明の1
6個のプロセッサのバージョンを示す。図示したクロスバ−ネットワーク400
は、すべてのボートAのプロセッサレファレンスに対する、外国行きのブロモ・
/すからメモリへのクロスバ−ネットワークである。本発明の十分な実施例にお
いて、図1におけるボートBおよびCに対するものと同じ外国行きの211以上
のクロスバ−ネットワークが存在し、又、3つのボートの各々に対して本国行き
のレファレンスを扱うために3個以上の同一のクロスパーネットワーク400を
有す本発明の様式は、容易にスカラ演算できるように設計されているので、当業
者にとっては、本発明を随意のプロセッサ数でもって構成できるということを容
易に認識しかつ理解できるであろう。しかし図面の簡略化のために本発明の実施
例では単に16個のプロセッサを図2に示した。
本発明の好ましい実施例では、コモンメモリ800は、メモリボード800に分
割され、クロスバ−ネットワーク400の最終階層における終段出力につき一つ
のメモリボードが存在している。これにより、図2に示した本発明の16個のプ
ロセッサは64個のメモリボード8ooを含む。
本発明や好ましい実施例では、クロスバ−ネットワーク400の各階層は、4×
4個のクロスバ−スイッチ500のモジュールにより構成される。各クロスバ−
スイッチ500は、4つの入力部の一つからのデータを4つの出方部の一つに向
ける能力を持つ。プロセッサネットワーク100と、本発明の4つのプロセッサ
とした実施例(不図示)に対するコモンメモリ600との間のクロスバ−ネット
ワーク400は、4×4個のクロスバ−スイッチ500による単一の階層からな
る。図2に示した本発明の16個のプロセッサとした実施例は、クロスバ−スイ
ッチ500による2階層からなる。クロスバ−スイッチ500の一つの階層は、
最終のものより4倍幅広く、このスイッチ5ooは、プロセッサ101およびメ
モリバンク800の数が4だけ増加するように、ネットワークに加入される。こ
れにより、本発明のプロセッサ1024個とした実施例は、4階層のクロスバ−
λイノチ500からなる。
本発明の好ましい実施例は、4×4個のクロスバ−スイッチ500を使用するが
、当業者であれば、クロスバ−スイッチ500は随意の個数の入力部および出力
部で構成することができることを容易に理解できるであろう。例えば、本発明の
クロスバ−ネットワーク500は、8X8.2X2.2×4.4×2等で構成す
ることができる。更に当業者であれば、メモリボードに対するプロセッサの比率
は、クロスバ−スイッチ内の入力部および出方部の個数の変化に応じて変えるこ
とができることを理解できるであろう。これらの当業者は、本発明の本旨から逸
脱することなく、特定の実施例のために別の他の実施例を代用することができる
ということを理解できるであろう。これらの当業者であれば、本発明のモジュー
ラ一方式および拡張性が様式内で固有である故に、これらは、実行のために選択
された技術と無関係である。
プロセッサの設計
図3Aおよび3Bは、本発明に使用されたタイプのプロセッサ101のブロック
図を示す。本発明の好ましい実施例では、プロセッサ101は、本発明の譲受人
であるクレイリサーチ社製造の改良クレイ2型ブaセツサである。
各プロセッサ101は、8個の指示パイプラインまたは“スレッド” 110a
−hの組みを含む。各スレ、ド1Ioa−hは自身に与えられた8個の指示バ。
ファ112を有する。その指示バッファは、高速の指示メモリによるブロックで
あり、各スレッドに対して指示パイプラインを形成する。単一スレッド化マシー
ンであるクレイリサーチ社の1組みの指示バッファの動作は、同一の譲受人に譲
渡されたクレイ社により1978年12月5日に出願された米国特許4.128
゜880により詳しく開示されているので、参考としてここで述べる。
本発明は、プロセッサ内のスレッド間の文脈切り替えにより、/ステムの呼び出
し時間を隠す。本発明は、“要求に応じた”文脈切り替えの手法を使用し、プロ
セッサ101は、出力を停止するために、スレッドがコモンメモリよりのデータ
に依存性を見い出さない限り、特定のスレ、ドを実行する。本発明の好ましい実
施例のプロセッサは、スレッドがコモンメモリから受け取ったものでないデータ
により起きた出力保持状態に遭遇した時のみ、文脈を切り替える。指示が、コモ
ンメモリからメモリ位置へのロードのために用意されたレジスタの使用を呼び出
した時、あるいは、プロセッサがコモンメモリからの合図信号を待っている時(
つまりブロモ/す同期のための遅延)に、そのような状態が起きる。ブロモ、す
がコモンメモリに読み出しまたは書き込みを試みた時に起きるボートのプロ、り
は、文脈の切り替えを生じさせない。スレッドがコモンメモリからのデータを使
用しようと試みている時および、そのデータがまだ受け取っていない時のみ、文
脈切り替えが起きる。一旦、ブロックに出会うと、ブロモ、す101は、現在の
スレッドを非アクティブにし、文脈を円の順における次のスレッドに切り替える
。
スレッドは、コモツメモリからの出力ブロックに依存するデータのすべてが解決
されるまでは、スレッドはプロセッサへ文脈切り替えは起こらない。
例えば、仮想のプロセッサlotがスレッド110aをアクティブにする。次に
プロセッサ101は、コモンメモリよりの出力データのブロック状態が発生する
まで、スレッド指示バッファに含まれるスレッド110a内の指示を実行し、そ
の時点て、ブロモ、すはスレッド1loaを非アクティブにし、スレッド11o
bのブロックのすべてが解決されたかを調べ、もし解決されたならば、文脈は次
のスレッド110bに切り替わる。プロセッサ101は、コモンメモリよりの出
力データのブロック状態が発生するまで、スレッド指示バッファに含まれるスレ
ッド110b内の指示を実行し、スレッド110cのブロックのすべてが解決さ
れたかを調べ、もし解決されたならば、文脈は次のスレッド110cに切り替わ
り、そのように続く。スレ、ド110hからプロセッサ101は、スレ、ド1]
Oaに文脈を戻す。上述の例で、スレッド110aがブロックに遭遇した時、ス
レッド110bが解決されたそのブロックを持たないならば、プロセッサ101
は、スレッド110cのブロックのすべてが解決されたか否かを単にチェックし
、もしそうならば、文脈をスレッド110c、その他に切り替える。ブロモ。
す101は、プログラムの実行が遂行されるまで、この円の様式内でスレッドを
切り替えることを継続する。
本発明の好ましい実施例では、各プロ七ノサ101内のスレッド110の個数は
、一つのスレッドから別のスレッドに文脈切り替えを生じさせるプロ/りが、プ
ロセッサ101が実行のために再度特定のスレッドを選択する時間によって解決
されることを確実とするために、8個に選択される。データ依存状態に関係する
すべてのメモリの解決は、あらゆるスレッドがアクティブに留まる“典型的な”
時間合計である、プログラムスレッド時間以下で確実に行われなくてはなるない
。4×4のクロスバ−スイッチを用い、かつ、13クロlり期間のメモリバンク
号イクル時間と仮定した本発明の16個のブロモ/すの実施例では、一つの平均
シングルメモリレファレンスの呼び出し時間がほぼ53クロ/り期間であるとい
うシミュレーンヨンが実証された。この結果、もし、システム内の各スレッドか
少な(とも7ブロック期間にブロックに遭遇することなく実行するなら、単に8
個の関係したプログラムスレッドが、53クロック期間の呼び出し時間をカバー
するのに必要となる。本発明は、ベクトル処理を用いるので、単一ベクトル指示
は、64クロ、りまでに対してプロセッサ資源は動作するが、当業者は、一つの
スレッドが7またはより多くのクロック期間に対してアクティブとなる有利な条
件は大幅に改善される。たとえプロググラムが比較的小さいパーセントのベクト
ルコードを含んでも(つまり、単一のスレッドがベクトル指示を含む)、はとん
どすべての呼び出し時間は、まだ隠れている。それ故、本発明の好ましい実施例
におけるプロセッサ101固有のプログラムスレッドの数は、16個のプロセッ
サを有する/ステムに対しては8個が選択される。より多くのブロモ、すおよび
ベクトルコードを同時に含む増加されたスレッド数を持つ高度のパラレルシステ
ムでは、/ステムの呼び出し時間を十分に隠すためには単に4個のスレッドが必
要であるというノミュレーンヨンが実証された。当業者であれば、本発明に用い
たプロセッサ当たりの比較的少ないスレッド数が、操作用システムの取り扱いお
よびコンパイラの割り当て仕事に関連した/ステムの管理調整用時間を大幅に減
しることか理解されよう。 より少ないブロモ、すを存する別の実施例Ji、最
も大きいシステムのメモリ呼び出し時間が隠れている限り、より十分に役立つ。
本発明の他の別の実施例は、それぞれが異なった個数のスレッドを有する、異な
った個数のプロセッサを結合することにより得てもよく、唯一の要求は、上記/
ステムの呼び出し時間が隠れているということである。当業者1ことっては、こ
れらおよび他の実施例が、ここで述べた好ましい実施例と同じ目的を達成すべく
演算し、又、本発明の本旨から逸脱することなく、示した特定の実施例を置き換
えてもよいことが容易に理解されよう。
本発明の好ましい実施例では、文脈切り替えを行う単一のブロックは、メモリ読
み出しデータの依存性、分岐指示、またはプロセッサ同期の遅延である。設計に
より、本発明の文脈切り替えのベクトルプロセッサは、処理時に起こるかもしれ
ない、プロセッサへの内部パイプラインの呼び出し時間をカバーしない。しかし
ながら、関数ユニットの呼び出し時間は、公知の値(浮動小数点の積算の呼び出
し時間または浮動小数点の加算の呼び出り時間のごとき)に固定されている。
完成したコンパイラ技術は、高い正確さを持つベクトル指示に隠れた、並列スレ
ッド内のこれらの公知の呼び出し時間および隠れたスカラー指示に利点を持つ。
これにより、コンパイラは、文脈切り替えの利点を得るためにコードを最大限に
利用する極めた高い効率の仕事を行うことができる。関数ユニットの呼び出し時
間に起因して文脈を切り替えない別の理由は、ベクトル長のクロック期間に対し
て大半の資源を忙しくするベクトルフードの十分な広がりの間に、無意味な文章
の“スピン(回転)”を防止し、これにより、すべてのスレッドに対し、あらゆ
る指示を出力することを効果的に阻止する。
本発明のマルチスレッド化のブロモ、す設計は、又、それ自身特に、プログラマ
−にコードの活用にうまく助力する。プログラマ−はプログラミング時に、コー
ド実行時に起こるデータ依存性をしばしば知っているので、本発明のブロモ。
すの実行時の開に起こる文脈切り替えは、きわめてありきたりなことである。そ
れ故、プログラマ−は、あるフードのスレッドが特定の時間にプロセッサの資源
の制御を完成させるので、本発明のマルチスレッド化した処理の利点を得るため
に、最新技術を導入したプログラミング技術が適用され得る。例えば、プログラ
マ−は、浮動小数点のベクトル加算を実行するためにコードを設計することがで
き、文脈切り替えを生じない関数ユニットの呼び出し時間に起因する浮動小数点
の加算を待っている間に、その後、いくつかのスカラー指示をフードの後ろに隠
す。これを実行するために、プログラマ−は、スカラー指示が同じスレッド内に
あり、そして直ちに浮動ベクトル加算に従うように単にフードを設計すれば良い
。
ブロセノ、す101内の各スレ、ドは、その完全なレジスタ資源の独立しかつ私
的なコピーを要求する。図3Aは、プロセッサ101が8組みのアドレスレジス
タ120a−h、8組みのベクトルレジスタの組み140a−hを含む。各アド
レスレジスタの組み(例えば組み120a)は、8個のアドレスレジスタ122
を含む。同様に、各スカラーレジスタの組み(例えば130a)および各ベクト
ルレジスタの組み(例えば140a)は、8個のスカラーレジスタ132および
8個のベクトルレジスタ142をそれぞれ含む。アドレスレジスタ122、スカ
ラーレジスタ132およびベクトルレジスタ142は、1978年12月5日公
告のクレイ社によるタイトル名“コンピュータ ベクトル レジスタ ブロセッ
ンング“のUS特許第4.128,880および1987年4月28日公告のC
henその他によるタイトル名“FLEXIBLE C1(AI!IING I
ll VECTORPROCESSOI? 11TH5ELECTIVE US
E OF VECTOI? REGIS丁ER3AS 0PERAND An
I’1ESULT REGISTER3”に完全■Rン
ピュータ ベクトル レジスタ プロセ/シングのUS特許第4,661,90
0に開示されており、これらの双方は、本発明の譲受人であるクレイリサーチ社
に譲渡されており、ここで参考として述べる。
つまり、プロセッサ101内の8個のスレッド110a−hの各々は、それ自身
に8組みのアドレスレジスタ!208−h、8組みのスカラーレジスタ130a
−hおよび8組みのベクトルレジスタ140a−hを持つ。これらのレジスタの
各組みは、スレッドに対して私的であり、それ故、本発明のブロモlす+01内
の8組みの独立したレジスタの各々は、異なった指示スレッドに対応する。例え
ば、アドレスレジスタの組み+20a、スカラーレジスタの組み130aおよび
ベクトルレジスタの組み140aすべてが対応し、そして、スレッド110aに
私的であり、アドレスレジスタの組み120b、スカラーレジスタの組み130
bおよびベクトルレジスタの組み140bすへてか対応し、モしてスレ、ド11
0bに私的である、等。当業者であれば、各スレッドに対してレジ゛スタを用意
することは、マルチのスレッドが単一のレジスタの組みを共用する設計では、処
理速度および効率を増すことが理解されよう。該設計は、本発明の好ましい実施
例に使用され、そうでなくば、文脈切り替えが起こる毎に、各スレッドのレジス
タ状態をセーブする処理に長く費やされる時間を排除する。
各スレ、ド1loa−hは、本発明の文脈切り替えプロセッサのメモリ呼び出し
時間の隠れている能力故に、単に8種のレジスタ(アドレス、スカラーおよびベ
クトル)を必要とする。当業者であれば、ブロモ、す当たりのレジスタの少ない
個数が本発明の好ましい実施例に用いられるプロセッサの複雑さおよび物理的な
サイズを大幅に減じることが理解されよう。第1に、出力制御が大幅に簡略化さ
れ、第2に、16ビノト以上の指示単位が避けられ、これにより、バイブライン
化されたスレッドにより多(の指示を詰め込み、そして、指示のフェッチに起因
するクロスバ−内のネットワーク内におけるメモリのやりとりを低減する。
プロセッサ内の各スレッドは、その完全なレジスタの資源の、独立しかつ私的な
コピーを要求するが、8通りのマルチ化回路に沿って、アクティブなスレッドと
関数ユニットとの間でデータを操作するために、すべてのレジスタの制御(ベク
トル長およびアドレスカウンタ、保留フラグ等)の8個のフルコピーは必要でな
い。当業者であれば、ブロモ、すの複雑さにおいて、マルチのスレ・ノド詰め込
みを最小にでき、かつ、ハードウェアレベルで劇的な効果を持つことになる、変
化する妥協レベルがあることが理解されよう。
例えば、本発明の一つの可能な実施例において、単一バンクのRAMは、各レジ
スタに対して使用され、RAMは、レジスタ内のエレメント数の数倍のスレッド
数とサイズが等しい。例えば、8個のスレッドのプロセッサ内のベクトルレジス
タVOに対するRA’、1は、8スレツドの64倍のエレメントまたは512ワ
ードの深さである。単一の基本アドレスレジスタは、RAM内の64エレメント
領域を指示することにより、アクティブなスレッドを選択する。このこの実行は
、スレッド指示器を除き、単一の文脈ブロモ/す以外に、レジスタ制御のノー−
ドウエアを必要としないノ・−ドウエアの利点を持つ。現行のRAMのみが成長
する。
この欠点は、いずれかのスレッドに対するVO上の保留レジスタをすべてのスレ
ッドに対して保留することである。文脈間のメモリ紛争に起因する不必要な出力
ブロックは、関数の資源がフリーであっても、付随的な従属レジスタにより引き
起こされる。
このレジスタは、この従属レジスタは、本発明の第2の実施例で回避することが
でき、この第2の実施例では、各レジスタに対する複数の、<ンクのRAMが用
いられ、各バンクは更に、単一の指示器によって指示される複数のスレ・ノドの
組みを備える。上記単一バンクの例の改良は、2ノインクのRAMを持つことで
あり、その各々が4個のプログラムスレ、ドを含む。一方のノインクは偶数番号
のスレ・ノドを扱い、他のバンクは奇数番号を扱う。アクティブなスレッドは1
.<ンク間で切り替わる。連続的なアクティブのスレッドは、異なったノ〈ンク
に属するので、従属スレッドは、最小化される。レジスタと関数資源との間に単
に、2組みのしする時、本構成の論理的な拡張により、文脈の増大する数を含む
ことができる。
例えば16スレノドが、各4スレツドの4バンク内に属することができ、または
64スレツドが、8スレ、ドの8バンク内に属することができる。このような大
きい数の利用可能な文脈は、コンピュータに極めて大量のバラレリズムを許可し
、共用メモリの呼び出し時間を効果的に隠す。
本発明の好ましい実施例では、プロセッサ101は、アクティブスレッドからの
1クロツク期間にっきl指示を実行し、又、lクロック期間につき2FLOPS
を実行する。これにより、例えば4ナノセカンドのクロック速度でもって本発明
の各プロセッサ101は、250MIPSおよび500MFLOPSのピーク実
行速度ラフ可能である。4ナノセカンドの/ステムのピーク性能(プロセッサ1
024個)は、256GrPSおよび512GFLOPS(!:なる。5]2G
IPSおよびITERAFLOPの1024個のブロモlすを有する対応するシ
ステムのピークに対しては、2ナノセカンドのクロック期間で、プロセッサのピ
ーク速度は500MIPSおよびIGFLOPである。1ナノセカンド設計のク
ロック期間を持つシステムに対してはこれらの数値が2倍になる。
本発明の好ましい実施例では、各スレッド110a−hの各々は、小形ローカル
高速“スクラッチ バッド”メモリ160a−hをアクセスする。もし必要なら
ばレジスタは、これらのスクラッチバッドメモリ160a−hへ流し込むことが
できる。又、スレッドの確認および管理に対する定数、テーブル値、タグ、その
他、も又そこへ保つことができる。スクラッチパッドメモリ160a−hへのア
クセスはリアルタイムであり、それに関連した呼び出し時間は文脈切り替えを生
じない。
本発明のプロセッサ101の8個のスレッド110aないしhは、プロセッサ1
01内の関数ユニ、ト資源を共用する。個別のアドレス関数ユニット200は、
アドレスレジスタ120aないしhの組みと関連し、スカラーレジスタ130a
ないLhの組みは、スカラー関数ユニット202によりサポートされ、そしてベ
クトルレジスタ140aないしhの組みは、ベクトル関数ユニット206により
サポートされる。浮動小数点関数ユニット204は、スカラーおよびベクトルレ
ジスタの組みによって共用される。当業者であれば、関数ユニット資源は、本発
明の本旨から外れることなく、図3Aで示されたものより、より少ないか付随的
な関数ユニット動作を含むために拡張され得ることが理解されよう。本発明の好
ましい実施例では、すべてのオペランドは64ビツト長である。
本発明の好ましい実施例における各プロセッサ101は、コモンメモリへの3個
のボートA、B、C(図1では不図示)を持つ。ボートAは、マルチボートのベ
クトルがメーモリレファレンスを読み出す時、およびI10メモリがレファレン
スを読み出す時に使用される読み出し専用ボートである。ボートBも又、マルチ
ボートのベクトルがメモリレファレンスおよび指示フェッチを読み出す時に使用
される読み出し専用メモリである。ボートCは、読み出し/書き込みボートであ
り、単一のボートベクトルの読み出し、ベクトル書き込み、スカラー読み出し及
び書き込み、およびコモンメモリへのI10書き込みを扱う。各ボートは、二つ
のメイン部、入力回路および出力回路を持つ。
図4Aは、ボートAの入力回路300のブロック図を示し、図4Bは、ボートB
の入力回路302のブロック図を示し、そして、図4Cは、ボートcの入力回路
304のブロック図を示す。読み出し時、メモリボートAおよびB1入力回路3
00および302のみがメモリから1クロツクにつき、88ビツトデータ、16
ビツトのバンクアドレス(失敗記録のための)、16ビツトの行き先コードおよ
び有効ビットからなる、■メツセージを受け取ることができる。読み出し/書き
込み時には、メモリ、ボートC1入力回路304は、メモリから1クロツクにつ
き1メ、セージを受け取る能力を持つ。もし、オリジナルの要求が読み出された
ならば、入力メツセージは、読み出し専用ボートに対する入カメ1セージと同一
の部分、レファレンスが読み出されたことを示すプラス1の付加ビットを持つ。
しかしながら、もし、要求がメモリ書き込みならば、入力メモリビットは、書き
込み完了のカウントのために単に十分な情報、つまり、3ビツトの文脈情報およ
び有効ビットを与えるために、再定義される。書き込み完了のカウントのための
読み出し/書き込み入力ボート上のこの特別なタップを除けば、すべての3つの
入力回路はほぼ同一に見える。各々は、エラー訂正および発見ユニ、)320、
エラーアドレスラッチ314および、メモリデータを、目的コードで記されたプ
ロセッサ資源に向けるための進路方向回路・312を持つ。
C115Aは、ボー)Aの出力回路350のブロック図を示し、図5Bはボート
Bの出力回路352を示し、図5CはボートCの出力回路354を示す。読み出
し専用メモリボートAおよびB1出力回路350および352は、lクロック期
間に一つのメツセージをメモリへ転送することができる。各メツセージは、34
ビ。
トのアドレス、2ビ、トのモード情報(共用されたレジスタに対する)、16ビ
ントの目的コードおよび有効ビットからなる。読み出し/書き込みメモリボート
C1出力回路354は、1クロlりの期間に一つのメツセージをメモリへ送る能
力を持つ。このメツセージは、読み出し要求または書き込み要求で構成してもよ
い。
もしそれが書き込み要求ならば、メツセージは34ビツトのアドレス、88ビ/
トのデータ、2ビツトの共用されたレジスタモード情報、3ビツトの文脈情報(
書き込み完了のカウントのための)、書き込みビットおよび有効ビットを持つ。
もし、メツセージが読み出し要求ならば、データ領域内のビットは、メツセージ
が読み出し専用ボートからの出カメ、セージと同じ情報を伝えられるよう、再割
り当てされる。
入力回路を備えることで、メツセージのビット幅および、異なったボートに同け
られるブロモ、す資源を有する、3つの出力回路の構成は、同様である。これに
より、この明細書は、図5Aを参照してボート出力回路の動作について記述する
。当業者にとっては、以下の記述が図5Bに示したボートBの出力回路352お
よび図5Cに示したボートCの出力回路354にも同様に適用できることが理解
されよう。
図5Aを斧照すると、プロセッサ資源からのデータはメモリポートのアドレス加
算器360ヘマージされる。この加算器360は、1クロツクの間に3つの数を
合計する。第1のクロック期間におけるベクトルまたはブロック転送、これらの
数は、ベースアドレス、方向アドレスおよびインクリメント値である。その後、
その数は、インクリメント値および再循環する絶対アドレスである。スカラーレ
ファレンスアドレスの演算は、加算用ベースアドレス、指示流れからの定数およ
び、絶対アドレスを形成するためにメモリアドレスを表すレジスタ値を含んでも
よい。この絶対アドレスは、ベースアドレスよりも大きいか等しいか、リミット
アドレスより小さいか等しいかかテストされる。そのベースおよびリレミツトア
ドレスは、メモリ内の8個までの安全ブロックの一つを表す。選択されたブロッ
クは、ユーザーの指示により安全にされる。アドレス操作と並行して、エラー訂
正および発見コードのビットが書き込みデータ上に発生される。
各ボートは、これに関連する二つのレファレンスバッファ、A362およびB5
64を持つ。各レファレンスバッファは、もし必要ならば、64エレメントのベ
クトル流れ全体を吸収できる。そのレファレンスバッファは、メモリクロスバ−
ネットワークが1クロツク期間でメツセージを受け取るこ七ができない場合に選
択的に使用される。
各レファレンスバッファA362およびB564への読み出しおよび書き込みポ
インターがある。もし、これらのポインターが等しいならば、そのバッファは空
である。メモリクロスバ−ネットワークがメツセージの流れをボートアドレス加
算器360およびエラー訂正/発見回路からエマーンできない時は、メツセージ
は、書き込みポインタにより指示されたバッファアドレスにてレファレンスバッ
ファ内へ書き込まれ、そのポインタは各メツセージ毎にインクリメントする。第
1の“抵抗”が流れに遭遇する、クロック期間から開始するので、流れ内のすべ
てのメツセージは、レファレンスバッファに書き込まれる。クロスバ−ネットワ
ーク内へ注入されるべきメツセージは、ブロモ、すからのメツセージ流れから直
接の代わりに、読み出しポインタにより指示されたレファレンスバッファアドレ
スから来る。読み出しポインタは、読み出しおよび書き込みポインタが等しくな
り、かつ流れが完了するまで、メツセージがネットワークにより受け取られる毎
にインクリメントする。そのポインタは次のレファレンス流れに先立ちクリアー
される。
一つのレファレンスバッファが空にされるプロセスにあるとき、メモリレファレ
ンスの流れは、他のバックTにロードできる。簗1のバッファが空のとき、第2
のバッファの頭からメツセージが遅延なく、メモリクロスバ−ネットワークへ送
られる。空の第1のバッファは、その後、プロセッサからの次のレファレンス流
れを受け取るために利用される。これにより、ふさがれたメモリボートは、プロ
セッサの検知からの完了を進めるために、二つのフル長さのベクトルレファレン
スを上記ボートに許可する。
本発明の好ましい実施例では、レファレンスバッファA362、B564または
プロセッサからのメモリレファレンスメツセージは、アドレスを指すメノセー/
の下位2ビツトのデコードにより、4組みの象限バッファの一つに向けられる。
象Vaハ、ファの各組みは、3つのバッファからなり、各々が一つのメ・、セー
ジを保持できる。メツセージはバッファC374がもし空ならバッファC374
に入り、もしバッファC374が占有され、バッファB572が空ならバッファ
B572に入り、あるいは、B572およびC374が占有され、A370が空
ならバッファA370に入る。データは又、バッファA370からB572へ、
ノ\。
ファB572からC374へ移動することができる。命令するメツセージは、3
つの象限バッファの間で保たれる。3つすべてのバッファがデータを含み、バ。
ファC374が空ならば、B572はC374へ移動し、A370が8372へ
移動し、そして、いずれかの新しいメツセージがバッファA370へ入る。
メモリメツセージは、それがメモリクロスバ−ネットワーク内の第1のレベルの
4X4クロスバ−スイッチに送信される時、象限バッファC374内の二つのバ
ケットに分割される。象限バッファC374と、クロスバ−ネットワークの第】
のレベルの加入バッファとの間の通信は、以下に述べるように、いずれかの2つ
の4X4クロスバースイ、チと同じである。この二つのバケット経路故に、象限
バッファ間のデータ移動がベストで各2クロック期間毎に起こる。しかし、象限
バッファは、1クロ、りの速度でプロセッサまたはレファレンスバッファから満
たされる。ボートを去るメモリメツセージの二つのバケットの機構は、4の倍数
であるベクトルまたはブロック転送の歩幅が、2クロツク毎にlメ、セージの最
大速度で実行する。lクロlりにつき1メツセージの速度で、奇数の歩幅、■ま
たは2歩幅または二つすべての奇数の倍数が実行する。
ブロモ、すからメモリクロスバ−ネットワーク図6は、本発明の好ましい実施例
の4×4クロスバ−スイッチ500のブロック図を示す。当業者であれば、本発
明のクロスバ−スイッチは、本発明の本旨から外れることなく、8×8.2×2
.2×4.4×2、その他、実質的にいずれかのmxn数の人力部および出力部
で構成することも可能であることが理解されよう。本発明の好ましい実施例に使
用された各4×4クロスバースイツチ500は、4つの入力経路502a−dの
各々から出力経路518a−dの一つにデータを向けることができる。同一のク
ロスバ−スイッチ400が内結合および外結合のクロスバ−ネットワークの双方
に使用される。以下の詳細な記述は単に外結合のクロスバ−ネットワークを通じ
た外結合のブロモ、すからメモリへのレファレンス転送を述べているが、内結合
のクロスバー不、トワークも、以下に述べる外結合のクロスバー不、トワークを
通じて本質的に同じ方法により動作することが当業者であれば理解されよう。
本発明の好ましい実施例では、内結合および外結合のレファレンスは、二つの連
続的なバケット内のクロスバ−ネットワークにより受け取られる。読み出し/書
き込みボートのために、第1のバケットは、モードビット、目的フードバックま
たは方向ビットおよびチップアドレスのごときすべての制御情報を含む。第2の
バケットは、データを含む。読み出し専用ボートのために、第1のバケットは、
モードビット、目的コードおよびハングまたは方向ビットのごとき制御情報を含
む。当業者であれば、二つのバケット間のレファレンスビットを分配する方法は
、本発明のクロスハー不、トワークを実行するために要求される相互接続を最小
にするのに役立つことが理解されよう。
本発明の好ましい実施例では、第2のバケットは、クロック期間に追随した直ち
に第1のバケットに追随し、第1のバケットと同じ経路でもって伝播する。この
理由のために、各データの移動か2クロック期間をとる。第2のバケットは、第
1のバケットよりも正確に1クロック期間後にクロスバ−スイッチ500を切り
替える。
当業者であれば、メモリレファレンスのバケット化およびクロスバ−ネットワー
ク400を通じて連続的にそのバケット化を繰り返すことが、クロスバ−スイッ
チを実行するのに要する相互接続の個数を2桁減じることが理解されよう。現代
の設計では、利用できる相互接続よりもより多いゲートをチップ内部に存在する
。
それ故、相互接続は、多数チップの設計では、乏しい資源である。例えば、内部
に4つの独立した経路および外部に4つの独立した経路および120ビ、ト幅の
メモリレファレンスを持つ、4×4クロスバ−スイッチを仮定する。このような
りロスバースイア千を構成するのに要する相互接続の数は、120の8倍である
。
当業者であれば、単一のチップに適応できる個数よりもかなり多い数であり、事
実、数個のチップに適応できる個数よりも多いことが理解されよう。メモリレフ
ァレンスをバケット化することにより、120ビ、ト幅のメモリレファレンスは
、2桁減じられる。このことは、すべての/ステムの相互接続を同様に2桁減じ
、この減少はきわめて重要である。当業者であれば、本発明に使用されたこのバ
ケット化方法は、システム設計を大幅にコンパクト化でき、クロスバ−スイッチ
はより少ないチップで構成できる。
クロスバ−スイッチ500の入力経路502a−dの各々は、少なくとも一つの
登録バッファで構成される。登録バッファの実際の個数は、クロスバー不、トワ
ーク内でクロスバ−スイッチがいかに離れて位置しているかに依存して変化する
。クロ不バースイ、チ内の登録バッファ数は、クロスバ−スイッチ間の巡回時間
に依存して変化する。各クロック期間が交信時間に加算されるので、付随的な登
録バッファか必要となる。登録バッファの目的は、マルチのメツセージ毎ケ。
トを送出できるよう、クロスバ−スイッチ間の交信時間をカバーするためである
。
それ故、クロスバ−スイッチがIクロ、夕期間で交信する、図6の本発明の好ま
しい実施例では、二つの登録バッファA304およびB508がある。
これらの各バッファ504および506は、1メ、セージの双方のバケットを含
むことができる。人力経路502a−dの一つを通じてクロスバ−スイッチ50
0に入るメツセージは、バッファBが既に他のメツセージを持っていないならば
、上記経路に対して、対応するバッファBに最初にラッチされる。もしバッファ
B506が占有されていたなろば、そのメツセージは代わりにバッファA304
にう、チされる。一旦、バッファB506が空になると、バッファA304に含
まれたメツセージは、バッファB508にラッチされる。もし、双方のバッファ
BおよびAが満杯ならば、別のメツセージがアクセスしようと試みた時、該メツ
セージは、クロスバ−スイッチへ入る前に、バッファが空になるまで単に待つ。
第1のバケットのメツセージがバッファB504へ一旦うノチされると、バッフ
ァB506は、4つの出力518a−dのいずれを発送するかを決定するために
メツセージ方向ビットをデコードする。同様に、本発明の好ましい実施例では、
バッファB506は、双方のパケットのメツセージが存在する前に、メツセージ
全体を方向づけることかできる。
二つのメツビッジ方向ビットをデコードした後、バッファB506は、第1のバ
ケット内の二つのメツセージ方向ビットを、4つの入力経路502a −dから
クロスバ−スイッチ500に入るメツセージを表す二つのビットに置き換える。
同様に、始めるプロセッサヘパ、りさせるためのリターンアドレスは、メツセー
ジがクロスバ−スイッチの連続する層を通じて、その経路上でコモンメモリへ移
動する時に、メツセビッ方向ビ、ト内で構築される。データがメモリから回復さ
れた後、プロセッサリターンアドレスの情報は、回復したデータを元のブロモ。
サヘ戻すために、メツセージ方向ビット内で利用される。同様に、内結合のレフ
ァレンスに対しては、リターンアドレスは、メツセージ方向ビット内で利用され
る。
このように、もし、データにエラーがあると、プロセッサはどのメモリバンクか
らエラーメツセージが来るかを知り、これにより、エラー発生ポイントを指示す
るのに役立つ。
このビット置き換え計画は、/ステムの相互接続およびメツセージ長を減じ、こ
れにより、プロセッサへメツセージと共にリターンアドレスを送る必要性を排除
する。代わりに、本発明の好ましい実施例のビット置き換え計画は、メツセージ
を自動的にブロモ、すに発生させるか、メモリバンクにリターンアドレスを発生
するために、単に同じビットおよび相互接続を用いればよい。
バッファB506でデコードされたメツセージ方向ビットは、バッファB506
を去った後にメツセージが行くべき4つの象限バッファ508−514のいずれ
かを選択する。入力バッファA304およびB506を備えているので、象限バ
ッファ508−514の各々は、一つのメツセージの双方のバケットを持つこと
ができる。もし目的の象限バッファ508−514が空ならば、レファレンスは
バッファB506を去り、適切な象限バッファ508−5]4に入ることかでき
る。
象限バッファ508〜514の目的は、メツセージの紛争およびタロスパーネッ
トワーク内のブロックを低減することにある。例えば、もし、出力経路518a
がブロックされたならば、出力バッファ516aは、メツセージを含み、満杯と
なり、経路をクリアするために待つ。出力経路518aに向けられた別のメソセ
ージが、入力経路502a上のクロスバ−スイッチ500へ入った時、例えば、
該メ・/セージは、出力選択回路516aをクリアするために待機している、象
限バッファ5.08aへ移動する。その後、もし、いずれかの他の経路に対して
予定されている付随的メツセージが経路502aに入ったならば、そのメツセー
ジは単に適切な象限バッファへ移動するので、該メツセージは、その目的の出力
へのアクセスがブロックされない。このようにして、より多くのメツセージがク
ロスバ−ネットワーク内でブロックに“到達”することができる。単に、登録バ
ッファへのすべての入力経路がブロックされたならば、その経路に入るメツセー
ジは、すべての出力経路からブロックされる。もし、本発明のクワスバースイ、
チ500内の象限バッファ508−514がそこに存在しないならば、4個すべ
ての象限がブロックされる。象限バッファ508−514の使用を通じて、4つ
の出力経路の一つのみが上記ポイントでブロックされる。当業者であれば、象限
バッファ50B−514がクロスバ−ネットワーク内のメツセージの紛争およヒ
フロックを大幅に減じることが容易に理解されよう。
メツセージの双方のバケットが象限バッファ508−514の一つに入った後、
そのメツセージは、適切な出力選択回路516a−dに向けられることが適確と
なる。各出力選択回路516は、各入力経路502a−dから対応する象限バッ
ファ508−514からメツセージを探す。例えば、出力選択回路516aが象
限′0”バッファ508a、508b、508dから適確なメツセージを探し、
そのメツセージは、それぞれ入力経路502a、502b、502c、502d
からクロスバ−スイッチ500に入る。もし、適切な象限バッファ50B−51
4内に一つの適確なメツセージがあったならば、出力選択回路516a−dは、
単にその7ノセージを対応する出力経路518へ送信する。本発明の好ましい実
施例では、もし、適切な象限バッファ508−514内に一つ以上の適確なメツ
セージがあれば、出力選択回路516a−dは、円の順序の次のメツセージを、
選択された最後の象限バッファから送信する。例えば、もし出力選択回路516
0が送信のために象限バッファ512bを選択するならば、象限バッファ512
Cが適確な、メツセージを持ち、一つ以上の適確なメツセージが存在するならば
、送信のために次に象限バッファ512Cを選択する。
クロスバ−スイッチ500の出力部B518a−dを通じて一旦メノセージが伝
播すると、そのメツセージは、クロスバ−スイッチ(または、送信するクロスバ
−スイッチが外結合のクロスバ−ネットワークの最終の層ならばコモンメモリ、
または、送信するクロスバ−スイッチが内結合のクロスバ−ネットワークの最終
の層ならばプロセッサ)の次の層に進む。
次のテーブルは、図6のクロスバ−スイッチ500を通じて、入力経路0502
aから他に紛争データを持たない象限3出力経路518dヘメノセージ(メ。
セージの二つのバケットは“バケット0″および“パケット1″)をトレースす
る。
クロックOメツセージバケットOが経路502aバツフアB506aに入る。
クロックl メツセージバケット1が経路502aバツフア8506aに入る。
メ、セージバケy)Oが経路502a象限3バツフア514aに入る。
クロ、り2 メ、セージバケy)1が経路502a象限3バツフア514al、
−入る。
クロ、り3 メツセージバケットOが象限3象限518dに向く。
クロ、り4:メツセージバケットlが象限3i限518dに向く。
本発明のクロスバ−ネットワークの連続する層間のスムーズな交信は、応答ビ。
トの使用により達成される。メツセージがバッファB506から目的のクロスバ
−スイッチ内の象限バッファに移動した後、目的とするクロスバースイ・7チは
、一つの応答ビットを先のクロスバースイlチの出力部に戻す。この方法では、
送信するクロスバ−スイッチは、応答ビットのために待つためにポーズしなけれ
ばならない前に、目的のクロスバ−スイッチに二つ(一つはバッファB506に
入り、二つ目はバッファA304に入る)のメツセージを送ることができること
を′知る”。付随メツセージが送信する前に受信された単一の応答ビットは、目
的のクロスバ−スイッチの登録バッファA304およびB506内の一つまたは
より多くのメツセージのためのルームがあることを意味する。二つの応答ビット
は、目的のクロスバ−スイッチ内に二つのメソセージのためのルームがあること
を意味する。
クロスバ−スイッチ間の円の移動交信は、送信するクロスバ−スイッチから出て
行くレファレンスのための時間と、応答ビットが受信するクロスバースイlチか
ら受け取った時間との合計で決定される。1クロスバ−スイッチに要求される登
録パンファ数は、この円移動の交信時間の1/2である。本発明の好ましい実施
例では、スイッチ間の交信が、送信するスイッチが次のメツセージ(もし一つな
らば)を送る間に応答ビット送信するクロスバ−スイッチにより受信されるよう
、計時される。もし、計時がこのようでないならば、当業者であれば、送信する
クロスバースイlチでのメツセージは待たなくてはならないことが理解されよう
。しかしながら、本発明の計時法を使用することにより、応答ビットは受信し、
これにより、利用できる出力メツセージが直ちに出て行く。
当業者であれば、本発明のクロスバ−ネットワークの設計は、様式のスカラー能
力を増すことが容易に理解され認識されるであろう。各クロスバ−スイッチが隣
接部との交信のみを必要とするのでこの様式は、極めてスカラー能力が高い。
個々のクロスバ−スイッチは、層全体についての情報を持っこと又は二三の層で
何が起こっているかを知る必要がない。各クロスバ−スイッチは、データを調停
し送出するためにローカルな情報のみを必要とする。同様に、ブロモ、すは、メ
モリレファレンスを送る前に全体の知識を持つ必要がない。このように、プロセ
ッサは、メツ、セージを送る前に、プロセッサからメモリバンクへの全体のデー
タ経路が明瞭であることを確かめる必要がない。本発明のクロスバ一方法を用い
ると、ブロモ/すは単に、“始動し、忘れる”。当業者であれば、本発明の様式
は、全体の調停を必要としないので、又、プロセッサ、クロスバ−スイッチまた
はオペレート/ステムのいずれかの再設計が不必要なので、本発明のシステムは
、単純な復製により極めて容易となる。単に、異なった形態で再ホックするのみ
である。
本発明のクロスバ−ネットワークの他の利点は、各クロスバ−スイッチが同様に
作用する限り、どのタイプのプロセッサを使用するか、またはいかに高速なメモ
リであるかは重要ではない。あらゆる複数スレッドのタイプのプロセッサは、本
発明のシステムに適応可能である。たとえ各バンクのメモリが異なった速度であ
っても、複雑な再設計の要なく本発明の様式は動作する。当業者であれば、本発
明の様式は、それ故、この観点で極めてフレキンプルであることが理解されよう
。
本発明の好ましい実施例では、クロスバ−回路は、各クロ、り期間に最大4つの
ロジックレベルを実行できるよう設計される。この設計は、本発明の好ましい実
施例にり1して、ベストケースでクロスバ−スイッチ500を通じ、4クロック
期間の送信時間となる。当業者であれば、1クロック期間に4つのロジックレベ
ルとした設計がより遅い回路技術の使用を許可することを拘束するが、高速のク
ロック速度を保持しているので、その結果、より低いシステムの電源および冷却
要求となり、大サイズの積分レベルの利用を許可することが理解されよう。本発
明のコノピユータマシーンの大きい分数のハードウェアは、クロスバースイチノ
ング不ノトワークからなるので、当業者であれば、本発明の好ましい実施例にお
ける大きいスケールの積分レベルの使用は、膨大な付随のハードウェアの節約、
大電源の節約、および低速、安価のハードウェア技術を可能にすることが理解さ
れよう。
本発明のクロスバ−ネットワークの別の利点は、プロセッサの態様、文脈を切り
替えることである。当業者であれば、文脈切り替えプロセッサは、プロセッサの
怠は時間を大幅に減じ、実質的にブロモ、すの効率を増す。プロセッサは、はと
んどゼロのデッド時間となるので、プロセッサは常にメモリ要求を出すため、信
じられない要求がメモリやクロスバーメそり調停ネットワーク上に位置する。
本発明に使用されたブロモ、すの態様の切り替えのために、プロセンサは最初の
スレッドが待っている間に次のスレッドに切り替えることができるので、ブロモ
。
すは、そのスレッドの一つがそのメモリレファレンスが満たされるために待たな
くてはならないことに対して注意を払わなくてよい。これにより、本発明の文脈
切り替えプロセッサは、時間に感知せず、又、それ故、より大きい呼び出し時間
であっも効率良く動作する。本質的に、本発明の設計は、増大されたバンド幅に
対してメモリ呼び出し時間の要求に取り替えられると、大容量のデータを移動す
ることができる。当業者であれば、このような設計機構は、きわめて高いバンド
幅できわめて高いスルーブツトマシンとなり、その設計は特に高度な並列ベクト
ル処理の仕事に適していることが容易に理解され認識されるであろう。
コモンメモリの設計
図7Aおよび7Bは、本発明の好ましい実施例に使用されたタイプのメモリホー
ド800のブロック図である。メモリボード800は、クロスバ−ネットワーク
、16バンクのメモリおよび、メモリレファレンスメノセーンを、内結合のクロ
スバーネyトワークを通じて元のプロセッサに戻す出力方向回路からプロセッサ
メツセージレファレンスを取り出す、入力回路を含む。
本発明の好ましい実施例では、各メモリバンク840は、23のメモリチップお
よび5つのバイト制御ロジ、クチノブからなる。22個のメモリチップは、サイ
クル時間が13クロック期間以下の4ビツトのスタテイ、りによるRA〜125
6にである。これらの22個のメモリチップは、エラー検出および修正のための
16チエノクビノトを有する64ビツトデータを形成する。その16チエノクビ
ノトは、スタテイ、りRArシ1メモリデバイス内のすべての4ビ、トの失敗の
出来事の訂正を許可する。本発明の好ましい実施例に使用されたエラー検出機構
は、“チップ孤立”として霊位され、その記述は、Schwoererよる、1
989年8月30日発効の米国の特許出願登録第400.071の“BIT D
ETECTION METilOD FORENH入NCED 5EC−DED
ERRORDETECTION AID C0RI!ECTl0N I!l
MULTI−BIT 戟IEMORY DE
VICES”にあり、これは本発明と同じ譲受人に譲渡されており、これを謬考
として述へる。23個のメモリチップは、メモリバンクビノトを格納するIビッ
トチップによる256にである。
当業者であれば、メモリバンク840は、ここで述べた特定の実施例と同じロン
ツク設計で構成される必要はなく、又、同じ目的を達成するために計算されたい
ずれかの構成は、既述した特定の実施例に対して置き換えにれることか容易に理
解されよう。例えば、本発明の様式は、直接アドレス可能メモリである極めて多
数のS RA〜1およびD RA Mを用いたメモリ設計をもサポートする。本
発明の本旨から逸脱することなく、他のメモリ設計も使用することかできる。
本発明の好ましい実施例におけるマルチブロモlすからコモンメモリレファレン
スを同期させる二つの方法がある。これらには、23番目のメモリチップに位置
するメモリ口、クバイト、および5バンクの制御ロジ、クチ/プ内に位置する共
用レジスタがある。そのメモリロックバイトは、個々のメモリ位置を口、りし$
備する。本発明の好ましい実施例では、二つのタイプの指示があり、一つは口。
クバイトを用い、他の一つはそれを用いない。ロックされたメモリ書き込みレフ
ァレンスは、データを口、りされていないメモリ位置へ書き込み、そしてその位
置がロックされるようになる。もし、メモリ位置がロックされたならば、そのメ
モリ位置には、それをロック解除するために適切な読み出しレファレンスが添付
されなくてはならない。当業者であれば、これらのロックビットは、プロセッサ
間でデータ資同期させるために使用され得ることが理解されよう。口、りされた
位置の状態に起因するメモリにより拒絶されたレファレンスは、拒絶コードを伴
ってプロセッサへ戻される。そのブロモIすは、その位置へのアクセスを得るま
で、レファレンスを再出力する必要がある。
プロセッサの同期が達成される第2の方法は、共用レジスタの使用による。各メ
モリバンク内の5バンクの制御ロジックチップは、メモリ系列化回路、メモリロ
ック読み制御および、ブロモ、すの同期のために使用される特殊共用レジスタを
含む。この共用レジスタは、3つのモード、つまりフェッチおよびインクリメン
ト(デクリメント)レジスタとして、アンロックデータレジスタとして、および
合図レジスタとして、いずれかで動作する。合図としてのレジスタの使用例は、
Pribnowにより1988年6月28日発効の米国特許4.754.398
の5YSTEW FORMl:LTIPROCESSORCOMMUWICAT
ION tisING LOCAL AID CO’ff0N SE蓋AoHO
RE AND
INFOR14TIo!i REGISTER3“に見い出すことができ、この
特許は本発明と同じ譲受人に譲渡されており、ここで7考として述べる。
当業者であれば、共用レジスタをメモリバンク上に直接入力持つことはいくつか
の際立った利点があることを容易に理解されよう。このように、プロセッサ間の
共用レジスタに対する調停の主旨は、プロセッサ自身を離陸させ、代わりにクロ
スバ−ネットワークにより敢行させることである。共用レジスタがメモリバンク
上に位置し、各メモリバンク制御の一部であるため、プロセッサ間の調停にアク
セスする共用のレジスタは、メモリレファレンス間を調停するのと同じクロスバ
−ネットワークにより完成される。それ故、共用レジスタのアクセスが、単に別
のメモリレファレンスのごとく見えるので、共用されたメモリに対するプロセッ
サ間の調停を達成するために必要となる付随的なハードウェアは不必要である。
当業者であれば、この構成は、慢数ブロセノサンステムを調整し、同期させるた
めに、個別の経路および個別の調停ネットワークを用いる設計に対して格別な利
点を提供する。
ブロモ、す側よりもむしろ様式のメモリ側に共用レジスタすべてを持つ他の利点
は、設計か極めて容易になることである。それ故、本発明のシステムの設計が変
化した時、個々のブロセ、q内に、または全体の様式に対して再設計を必要とシ
ナイ。(本発明の様式は、全体の調停を必要としないためである)。むしろ、本
発明の共用レジスタの調停は、すべてのプロセッサが、所望される多数のプロセ
ッサと会話でき、合図およびレジスタのいずれをもブロモ、す側に必要としない
。
共用レジスタのフェッチおよびインクリメントのモードでは、ループが種々のプ
ロセッサ間で極めて容易にカウントする。実行することを必要とするすべてのプ
ロセッサは、共用レジスタに読み出され、そしてレジスタを自動的にインクリメ
ントし、プロセッサに更新されたループカウントを与える。次のプロセッサは、
共用レジスタを読み出し、次のループカウントを得て、そしてレジスタを自動的
にインクリメントする。当業者であれば、“自動インクリメント”のフェッチ特
性および共用レジスタのインクリメントモードは、共用レジスタの極めてパワフ
ルな機能であり、過去使用されたループカウントの分配に対するフェッチおよび
インクリメントを実施する別の方法に際立った利点を与える。例えば、一つの古
い手法により、共用レジスタかメモリに位置していないループカウントの分配に
対するフェッチおよびインクリメントを実行する時、ループカウンタである個別
のメモリ位置がなくてはならず、又、合図またはプロセッサがメモリ位置をロッ
クし、メモリ位置をブロモ、す内へ読み出し、インクリメントし、書き込みが停
止され、メモリ位置を解除する。カウンタがロックされる全体のロック時間は、
数十または数百のクロ、り期間である。多数のブロモ、すを有するきわめて高度
な並列システムでは、ループカウントを数百のプロセッサに分配するために、可
変の時間をロックする時間の数百倍かかる。ロックの可変時間を低減するために
、本発明は、ループカウントの自動インクリメントおよび分配のために、メモリ
での共用し?スタを用いる。プロセッサは、又、読み出しを行うことができ、本
発明の好ましい実施例では、各2クロック期間の速度で実行する。それ故、もし
、100個のプロセッサがある場合、それらすべてが200クロック期間内で新
しいループカウントを持つ。この時間は、システムの“粒状化”を決定する。(
この“粒状化“という語は、すべてのシステムのプロセッサが一度に動作できる
最小サイズのループを意味する。)過去の設計スタイルでは、例えば、百のプロ
セッサのクロック期間の数倍の数百クロックとなるので、粒状化は、クロlり期
間の十倍の千となる。本発明のシステムでは、しかしながら、粒状化は、はんの
百または2クロック期間である。当業者であれば、本発明の様式がシステムの粒
状化を大きく低減し、並列可能でより幅広い変化のあるアプリケーションプログ
ラムを可能にすることが理解されよう。
本発明の共用レジスタの調停様式が効果的に機能する理由は、本発明に使用され
たプロセッサの態様を文脈切り替えすることに結びついている。一つのスレ。
ドが共用レジスタをアクセスするために待っている時、プロセッサは、第1のス
レッドが同期が起きるために待っている間に、単に別のスレッドに文脈切り替え
すればよい。共用レジスタが戻るべくアクセスするために待っている間、スレッ
ドは0眠る”ことかできるので、そのスレッドは、共用レジスタがメモリ上に出
て行くことや、レファレンスが戻るために少しの時間を取るといったことに注意
を払わなくてよい。別の例では、本発明の様式かメモリ呼び出し時間に関せず、
極めて効率的に機能することかできる。
本発明の共用レジスタの共用レジスタの同期設計の別の利点は、本発明に使用さ
れたプロセッサ数に比例して極めて多数の共用レジスタを持つことである。本発
明の好ましい実施例ではロック時間が単に2クロック期間に低減されるが、もし
、ループカウントが例えば1000個のプロセッサに分配されるならば、本シス
テムの粒状化が極めて大きいクロック期間となるので、極めて大きい数の共有レ
ジスタは重要である。ソフトウェア技術は、プロセッサをチームに押し込み、プ
ロセッサがそられのループカウンタを異なるレジスタから得ることにより、大き
い数の共用レジスタの利点を得ることかできる。当業者であれば、共用レジスタ
の好ましい大きい数を認識できよう。分離した不、トワーク内で本発明の設計の
共用レジスタで達成されるタイプの機能を持つことで、増減しなくてはならない
極めて大きい個別のハードウェアを必要とする。それ故、本発明の好ましい実施
例は、メモリバンク上に共用レジスタを直接に設けることにより、途方もなくハ
ードウェアを節約する結果となる。
メツセージは、3つのメモリポート入力経路801a−cの一つを通じてメモリ
ボード800へ入る。これらの経路は、プロセッサポートA、BおよびCに対応
する。ボー)AおよびBは、読み出し専用ポートなので、メモリポート入力経路
801aおよび801bに沿って入る各メツセージは、目的のタグに沿ったメモ
リアドレスからなる。ポートCは読み出し/書き込みポートなので、メモリポー
ト入力経路801Cに沿って入るメツセージは、メモリに格納されるデータワー
ドを伴ってもよい。本発明の好ましい実施例では、各プロセッサの3つのレファ
レンスポートは、先に述べたように、各3つのポートへの内結合および外結合の
クロスバ−ネットワークを委ねることにより、すべてがメモリバンク840への
経路である、それ自身の個別の交信経路を持つ。当業者であれば、この設計構成
は、メツセージの紛争およびブロックを最小に低減することが理解されよう。
本発明の好ましい実施例では、メモリボード800へ入るメツセージは、先に述
べた本発明の4X4クロスバ−スイッチのかじとり法と同じ方法を用いて適した
メモリバンク840へ導かれる。3つのメモリ入力経路801a−cの一つの中
にあるメモリボード800へ入るメツセージは、前記経路のためのバッファB8
04が空ならばそこに入る。もしバッファB804が占有されておれば、そのメ
ノセー/はMat2経路に対するバッファA302ヘラノチされる。バッファB
804が一旦空になると、バッファA302の内容がバッファB804へ移動す
る。
第1のバケットのメツセージがバッファB804に一旦入ると、バッファB80
4は、方向ビットのメツセージをデコードし、そして、4つのメモリバンクのグ
ループと関係している上記経路のために、そのメツセージを4グループのバッフ
ァ808.808,810,812の一つに導く。例えば、入力ポート804b
を通してメモリボード800に入り、そしてメモリバンクグループ2へ発送され
るメツセージは、グループ2のバッファ810bへ向けられる。
別のレベルのかじとりは、先に述べたように、メツセージを空のバッファから本
発明の4×4クロスバ−スイッチ内の象限バッファへ移動させたのと同じ方法を
再度用いて、次に実行される。メツセージは、4つのメモリバンクのグループと
関係するグループバッファ806−812から、単一のメモリバンク840と関
係する入力バッファ820へ移動する。このレベルで、メツセージは、メモリバ
ンクまたは共用レジスタのいずれかにアクセスするためにバンク制御ロジックチ
ップにより選択されることで適確なものとなる。
メモリボード800から要求しているプロセッサへ戻すために、レファレンスは
単にメモリバンクから出て、そして、先に述べたように、外結合のクロスバ−ネ
ットワークを通じて外結合のプロセッサからメモリレファレンスへ移動するのと
本質的に同じ方法により、適した内結合のクロスバー不、トワークを通じて元の
プロセッサに戻る。
ここでは特定の実施例について図示し開示したが、当業者であれば、同一の目的
を達成するために計算するいずれの構成であっても、図示した特定の実施例と置
き換えられることが理解されよう。例えば、本発明の様式は、異なった個数のプ
ロセッサ、異なった量のメモリまたは1プロセツサにつき異なった個数のプログ
ラムスレッドでもって達成してもよい。更に、当業者であれば、本発明の様式は
、詳細な説明で述べた、使用した特定のプロセッサのタイプ、メモリの速度また
は特定のロジック設計に依存しないことが理解されよう。例えば、好ましい実施
例は、ここではクレイ2型プロセツサを用いて述べたが、本発明の本旨からそれ
ることなく、異なるタイプのプロセッサを用いることができる。例えば、本発明
の別の実施例として、本発明の譲受人であるクレイリサーチ社製造のツレ4フり
に用いることができる。クレイY−MPのブクブク回路は、Leeその他による
、1989年11月17日発効の米国特許第0 7/4 3 8, 6 7 9
ノ”VECTORBIT MATRIX MITYPLY FUNVTIONA
L IINIT″に見ることができる。クレイ1型プロセツサも図示した特定の
プロセッサで置き換えることができる。クレイ1のブロモ,すのプロ、り図は、
クレイ、Jrによる上述した米国特許第4、128. 880に見ることができ
る。
本出願は、本発明のあらゆる応用および変形をカバーするよう意図されている。
それ故、本発明はクレームおよびそれと等価なもののみによって限定されること
を意図したことが明白である。
FIG. 1
FIG. 2
平成 5年 4月 19日
Claims (19)
- (1)デジタル情報を格納するためのコモンメモリ手段と;スカラーおよびベク トル指示を実行するため、及び多数の指示スレッド間で文脈を切り替えるための ベクトル処理手段と、伝送された情報が可変の呼び出し時間に対処できるように 、コモンメモリ手段とベクトル処理手段との間で情報を伝送するための交信手段 と;を備えたスカラブルパラレルベクトルコンピュータシステム。
- (2)各ベクトル処理手段が、 交信手段から又は交信手段へ情報を受け取る又は送出するための多数のレファレ ンスポートと、 多数の指示スレッドと、 プログラムされた指示を格納するための指示バッファ手段と;通信手段に関連す る可変の呼び出し時間が、実質的に隠され、プロセッサの怠け時間が大幅に減じ られるよう、指示スレッド間で文脈を切り替えるための文脈切り替え手段と、 を備える請求の範囲第1項記載のスカラブルパラレルベクトルコンピュータシス テム。
- (3)各指示スレッドが委ねられた指示バッファの組みを持つよう、指示バッフ ァ手段が多数の指示バッファの組みを含む請求の範囲第2項記載のスカラブルパ ラレルベクトルコンピュータシステム。
- (4)各指示スレッドがアドレスレジスタ、スカラーレジスタおよびベクトルレ ジスタの対応する組みを持つ請求の範囲第3項記載のスカラブルパラレルベクト ルコンピュータシステム。
- (5)多数の指示スレッドがスカラー、ベクトルおよびアドレス関数ユニットの グループを共用する請求の範囲第3項記載のスカラブルパラレルベクトルコンピ ュータシステム。
- (6)出力のブロックが発生するまで、ベクトル処理手段が指示バッファ手段内 の指示を実行する請求の範囲第2項記載のスカラブルパラレルベクトルコンピュ ータシステム。
- (7)文脈切り替えを生じさせる一つの出力ブロックが分岐指示、プロセッサ同 期の遅延およびメモリ読み出し依存データである、請求の範囲第6項記載のスカ ラブルパラレルベクトルコンピユータシステム。
- (8)交信手段が、接続数が増える結果、呼び出し時間が増大する、多数のクロ スバーネットワークを含み、個々のプロセッサの性能に実質的に影響を及ぼすこ となく、より多いかより少ない数のプロセッサおよび、多少のメモリを持つこと ように設計することができる、請求の範囲第2項記載のスカラブルパラレルベク トルコンピュータシステム。
- (9)交信手段が、文脈切り替えプロセッサからコモンメモリヘの交信のために 、1組みの外結合のn個のクロスバーネットワークと、コモンメモリから文脈切 り替えベクトルプロセッサへの交信のため、1組みの内部結合のn個のクロスバ ーネットワークとを備え、nはプロセッサに対するレファレンスポート数に等し い、請求の範囲第8項記載のスカラブルパラレルベクトルコンピュータシステム 。
- (10)クロスバーネットワークが更に少なくとも1段のクロスバースイッチを 含む請求の範囲第9項記載のスカラブルパラレルベクトルコンピュータシステム 。
- (11)各クロスバースイッチが更に、クロスバーネットワーク内での紛争およ びブロックを減じるための象限バッファ手段を含む請求の範囲第10項記載のス カラブルパラレルベクトルコンピユータシステム。
- (12)コモンメモリ手段が更に、デジタル情報を格納するために、多数のメモ リバンクを含む、請求の範囲第1項記載のスカラブルパラレルベクトルコンピュ ータシステム。
- (13)コモンメモリ手段が更に、 プロセッサの同期のために共用された多数のレジスタを備え、該レジスタは個々 のメモリバンクに対応しており、 又、文脈切り替えベクトルプロセッサがメモリバンクを準備できるよう、多数の ロックビットを含む請求の範囲第12項記載のスカラブルパラレルベクトルコン ピュータシステム。
- (14)各々が多数のスカラーおよびベクトル指示を含む、多数の指示スレッド を有する文脈切り替えベクトルプロセッサを扱うための方法であって、(a)指 示スレッドを選択し、 (b)指示スレッド内のスカラーおよびベクトルを実行し、(c)出力ブロック を発生させ、 (d)次のスレッドに文脈を切り替え、(e)すべての指示が敢行されるまで( b)、(c)および(d)のステップを繰り返す、 ステップを含む方法。
- (15)文脈切り替えステップ(d)が、次のスレッドが解決された出力ブロッ クのすべてを持つか否かをチェックするステップを更に含む請求の範囲第14項 記載の方法。
- (16)文脈切り替えステップ(d)が、次の出力ブロックが解決されないなら ば、スレッドをバイパスさせるステップを更に含む請求の範囲第15項記載の方 法。
- (17)次のスレッドが円の順序で選択される請求の範囲第14項記載の方法。
- (18)出力ブロックがプロセッサの同期遅延、分岐指示、またはメモリ読み出 し依存データに起因する時のみ、発生ステップ(c)が起こる、請求の範囲第1 4項記載のスカラブルパラレルベクトルコンピュータシステム。
- (19)次のスレッドがランダムで選択される請求の範囲第14項記載の方法。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US60032890A | 1990-10-19 | 1990-10-19 | |
| US600,328 | 1990-10-19 | ||
| PCT/US1991/007271 WO1992007335A1 (en) | 1990-10-19 | 1991-10-04 | A scalable parallel vector computer system |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH06502033A true JPH06502033A (ja) | 1994-03-03 |
Family
ID=24403170
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3516822A Pending JPH06502033A (ja) | 1990-10-19 | 1991-10-04 | スカラブル パラレル ベクトル コンピュータシステム |
Country Status (6)
| Country | Link |
|---|---|
| EP (1) | EP0553158B1 (ja) |
| JP (1) | JPH06502033A (ja) |
| AT (1) | ATE116456T1 (ja) |
| CA (1) | CA2094269A1 (ja) |
| DE (1) | DE69106384T2 (ja) |
| WO (1) | WO1992007335A1 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000259498A (ja) * | 1999-03-10 | 2000-09-22 | Internatl Business Mach Corp <Ibm> | マルチスレッド・プロセッサの命令キャッシュ |
Families Citing this family (54)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5623698A (en) * | 1993-04-30 | 1997-04-22 | Cray Research, Inc. | Memory interconnect network having separate routing networks for inputs and outputs using switches with FIFO queues and message steering bits |
| ES2116852B1 (es) * | 1994-08-29 | 1999-03-16 | Univ Catalunya Politecnica | Sincronizacion del acceso a memoria en multiprocesadores vectoriales. |
| US6393497B1 (en) | 1998-03-20 | 2002-05-21 | Sun Microsystems, Inc. | Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system |
| US6421704B1 (en) | 1998-03-20 | 2002-07-16 | Sun Microsystems, Inc. | Method, apparatus, and product for leasing of group membership in a distributed system |
| US6282652B1 (en) | 1998-02-26 | 2001-08-28 | Sun Microsystems, Inc. | System for separately designating security requirements for methods invoked on a computer |
| US6938263B2 (en) | 1996-04-23 | 2005-08-30 | Sun Microsystems, Inc. | System and method for facilitating dynamic loading of “stub” information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space |
| US6446070B1 (en) | 1998-02-26 | 2002-09-03 | Sun Microsystems, Inc. | Method and apparatus for dynamic distributed computing over a network |
| US5832529A (en) | 1996-10-11 | 1998-11-03 | Sun Microsystems, Inc. | Methods, apparatus, and product for distributed garbage collection |
| CN1204809A (zh) * | 1997-07-09 | 1999-01-13 | 王迪兴 | 运算、交换、控制、多用平台 |
| US6223208B1 (en) | 1997-10-03 | 2001-04-24 | International Business Machines Corporation | Moving data in and out of processor units using idle register/storage functional units |
| US6957427B1 (en) | 1997-10-15 | 2005-10-18 | Sun Microsystems, Inc. | Remote object activation in a distributed system |
| CN1298502A (zh) * | 1998-02-26 | 2001-06-06 | 太阳微系统公司 | 远程进程的的挂起和继续的方法和设备 |
| US6901518B1 (en) | 1999-04-08 | 2005-05-31 | Sun Microsystems, Inc. | Method and system for establishing trust in downloaded proxy code |
| US7526630B2 (en) | 1999-04-09 | 2009-04-28 | Clearspeed Technology, Plc | Parallel data processing apparatus |
| GB2394815B (en) * | 1999-04-09 | 2004-08-25 | Clearspeed Technology Ltd | Parallel data processing systems |
| US7627736B2 (en) | 1999-04-09 | 2009-12-01 | Clearspeed Technology Plc | Thread manager to control an array of processing elements |
| US7506136B2 (en) | 1999-04-09 | 2009-03-17 | Clearspeed Technology Plc | Parallel data processing apparatus |
| SE9901605L (sv) * | 1999-05-04 | 2000-11-05 | Net Insight Ab | Förfarande och anordning för bufferthantering |
| US6877163B1 (en) | 1999-06-14 | 2005-04-05 | Sun Microsystems, Inc. | Method and system for dynamic proxy classes |
| WO2001016702A1 (en) | 1999-09-01 | 2001-03-08 | Intel Corporation | Register set used in multithreaded parallel processor architecture |
| HK1046049A1 (zh) * | 1999-09-01 | 2002-12-20 | Intel Corporation | 用於多线程处理器的分支指令 |
| US6850979B1 (en) | 2000-05-09 | 2005-02-01 | Sun Microsystems, Inc. | Message gates in a distributed computing environment |
| US7072967B1 (en) | 2000-05-09 | 2006-07-04 | Sun Microsystems, Inc. | Efficient construction of message endpoints |
| US7016966B1 (en) | 2000-05-09 | 2006-03-21 | Sun Microsystems, Inc. | Generating results gates in a distributed computing environment |
| US7080078B1 (en) | 2000-05-09 | 2006-07-18 | Sun Microsystems, Inc. | Mechanism and apparatus for URI-addressable repositories of service advertisements and other content in a distributed computing environment |
| US7395333B1 (en) | 2000-05-09 | 2008-07-01 | Sun Microsystems, Inc. | Method and apparatus to obtain negotiated service advertisement |
| US6898618B1 (en) | 2000-05-09 | 2005-05-24 | Sun Microsystems, Inc. | Client-specified display services in a distributed computing environment |
| US7010573B1 (en) | 2000-05-09 | 2006-03-07 | Sun Microsystems, Inc. | Message gates using a shared transport in a distributed computing environment |
| US7188251B1 (en) | 2000-05-09 | 2007-03-06 | Sun Microsystems, Inc. | System and method for secure message-based leasing of resources in a distributed computing environment |
| US8082491B1 (en) | 2000-05-09 | 2011-12-20 | Oracle America, Inc. | Dynamic displays in a distributed computing environment |
| US6918084B1 (en) | 2000-05-09 | 2005-07-12 | Sun Microsystems, Inc. | Spawning new repository spaces using information provided in advertisement schema messages |
| US7370091B1 (en) | 2000-05-09 | 2008-05-06 | Sun Microsystems, Inc. | Method and apparatus for obtaining space advertisements |
| US7260543B1 (en) | 2000-05-09 | 2007-08-21 | Sun Microsystems, Inc. | Automatic lease renewal with message gates in a distributed computing environment |
| US7577834B1 (en) | 2000-05-09 | 2009-08-18 | Sun Microsystems, Inc. | Message authentication using message gates in a distributed computing environment |
| US6868447B1 (en) | 2000-05-09 | 2005-03-15 | Sun Microsystems, Inc. | Mechanism and apparatus for returning results of services in a distributed computing environment |
| US6970869B1 (en) | 2000-05-09 | 2005-11-29 | Sun Microsystems, Inc. | Method and apparatus to discover services and negotiate capabilities |
| US6917976B1 (en) | 2000-05-09 | 2005-07-12 | Sun Microsystems, Inc. | Message-based leasing of resources in a distributed computing environment |
| US6862594B1 (en) | 2000-05-09 | 2005-03-01 | Sun Microsystems, Inc. | Method and apparatus to discover services using flexible search criteria |
| US7243356B1 (en) | 2000-05-09 | 2007-07-10 | Sun Microsystems, Inc. | Remote method invocation with secure messaging in a distributed computing environment |
| US6973493B1 (en) | 2000-05-09 | 2005-12-06 | Sun Microsystems, Inc. | Mechanism and apparatus for security of newly spawned repository spaces in a distributed computing environment |
| US6950875B1 (en) | 2000-05-09 | 2005-09-27 | Sun Microsystems, Inc. | Message conductors in a distributed computing environment |
| US7200848B1 (en) | 2000-05-09 | 2007-04-03 | Sun Microsystems, Inc. | Migrating processes using data representation language representations of the processes in a distributed computing environment |
| US7065574B1 (en) | 2000-05-09 | 2006-06-20 | Sun Microsystems, Inc. | Messaging system using pairs of message gates in a distributed computing environment |
| US6760815B1 (en) | 2000-06-02 | 2004-07-06 | Sun Microsystems, Inc. | Caching mechanism for a virtual heap |
| US6865657B1 (en) | 2000-06-02 | 2005-03-08 | Sun Microsystems, Inc. | Garbage collector for a virtual heap |
| US6957237B1 (en) | 2000-06-02 | 2005-10-18 | Sun Microsystems, Inc. | Database store for a virtual heap |
| US6941410B1 (en) | 2000-06-02 | 2005-09-06 | Sun Microsystems, Inc. | Virtual heap for a virtual machine |
| US6934755B1 (en) | 2000-06-02 | 2005-08-23 | Sun Microsystems, Inc. | System and method for migrating processes on a network |
| US7296275B2 (en) | 2001-01-04 | 2007-11-13 | Sun Microsystems, Inc. | Method and system for passing objects in a distributed system using serialization contexts |
| US6925643B2 (en) * | 2002-10-11 | 2005-08-02 | Sandbridge Technologies, Inc. | Method and apparatus for thread-based memory access in a multithreaded processor |
| GB2451845B (en) * | 2007-08-14 | 2010-03-17 | Imagination Tech Ltd | Compound instructions in a multi-threaded processor |
| US10452585B2 (en) | 2016-09-16 | 2019-10-22 | Hewlett Packard Enterprise Development Lp | Crossbar switch with pipeline delay registers |
| CN116991764B (zh) * | 2023-08-03 | 2024-04-05 | 广州安凯微电子股份有限公司 | 一种高性能的Flash控制器和嵌入式系统 |
| CN118363916B (zh) * | 2024-04-18 | 2025-02-25 | 清华大学 | 基于指令集合的计算集群消息处理方法、装置及电子设备 |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3676852A (en) * | 1970-07-20 | 1972-07-11 | Ibm | Multiple program digital computer |
| DE68909426T2 (de) * | 1988-01-15 | 1994-01-27 | Quantel Ltd | Datenverarbeitung und -übertragung. |
-
1991
- 1991-10-04 JP JP3516822A patent/JPH06502033A/ja active Pending
- 1991-10-04 EP EP91917879A patent/EP0553158B1/en not_active Expired - Lifetime
- 1991-10-04 DE DE69106384T patent/DE69106384T2/de not_active Expired - Fee Related
- 1991-10-04 WO PCT/US1991/007271 patent/WO1992007335A1/en not_active Ceased
- 1991-10-04 CA CA002094269A patent/CA2094269A1/en not_active Abandoned
- 1991-10-04 AT AT91917879T patent/ATE116456T1/de not_active IP Right Cessation
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000259498A (ja) * | 1999-03-10 | 2000-09-22 | Internatl Business Mach Corp <Ibm> | マルチスレッド・プロセッサの命令キャッシュ |
Also Published As
| Publication number | Publication date |
|---|---|
| DE69106384T2 (de) | 1995-08-10 |
| EP0553158A1 (en) | 1993-08-04 |
| WO1992007335A1 (en) | 1992-04-30 |
| EP0553158B1 (en) | 1994-12-28 |
| CA2094269A1 (en) | 1992-04-20 |
| DE69106384D1 (de) | 1995-02-09 |
| ATE116456T1 (de) | 1995-01-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH06502033A (ja) | スカラブル パラレル ベクトル コンピュータシステム | |
| Flynn | Very high-speed computing systems | |
| US5675757A (en) | Direct match data flow memory for data driven computing | |
| EP0544127B1 (en) | Dynamic multi-mode parallel processor array architecture computer system | |
| US20210011770A1 (en) | Quiesce reconfigurable data processor | |
| US5226131A (en) | Sequencing and fan-out mechanism for causing a set of at least two sequential instructions to be performed in a dataflow processing computer | |
| TWI666551B (zh) | 以複數個引擎作資源與互連結構的分散式分配以支援指令序列的執行 | |
| JPH05508499A (ja) | 特殊目的ブール演算装置のための方法およびその装置 | |
| JP2016528641A (ja) | 汎用ユニットにもとづいた高性能プロセッサ・システムとその方法 | |
| Lee et al. | Architectures for statically scheduled dataflow | |
| JP2008181551A (ja) | ベクトルレジスタを備えたコンピュータにおけるベクトルテールゲーティング | |
| US20180324112A1 (en) | Joining data within a reconfigurable fabric | |
| Coates et al. | FLEETzero: an asynchronous switching experiment | |
| Fisher et al. | VLIW Machines: Multiprocessors We Can Acutally Program. | |
| JPH0799515B2 (ja) | 命令フロ−コンピュ−タ | |
| Lipovski et al. | A fetch-and-op implementation for parallel computers | |
| Hsu et al. | An effective synchronization network for hot-spot accesses | |
| Sakai et al. | Reduced interprocessor-communication architecture and its implementation on EM-4 | |
| Jamil et al. | Design of a tokenless architecture for parallel computations using associative dataflow processor | |
| Guo | Synchronization expressions in parallel programming languages | |
| Staley | Design and Analysis of the CCMP: A Highly Expandable Shared Memory Parallel Computer | |
| Deguchi et al. | Integrated parallel image processings on a pipelined MIMD multi-processor system PSM | |
| Jesshope et al. | Asynchrony in Parallel Computing–A question of Scale | |
| LmuVERSITY | MONTRÉAL. QUEBEC. C-4N. 4DA | |
| Jesshope | Development of Parallel Computing |