JPH10502756A - ベクトルプロセッサのためのチャンク連鎖 - Google Patents

ベクトルプロセッサのためのチャンク連鎖

Info

Publication number
JPH10502756A
JPH10502756A JP8518729A JP51872996A JPH10502756A JP H10502756 A JPH10502756 A JP H10502756A JP 8518729 A JP8518729 A JP 8518729A JP 51872996 A JP51872996 A JP 51872996A JP H10502756 A JPH10502756 A JP H10502756A
Authority
JP
Japan
Prior art keywords
vector
elements
register
valid
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.)
Granted
Application number
JP8518729A
Other languages
English (en)
Other versions
JP3789937B2 (ja
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 JPH10502756A publication Critical patent/JPH10502756A/ja
Application granted granted Critical
Publication of JP3789937B2 publication Critical patent/JP3789937B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/8053Vector processors
    • G06F15/8076Details on data register access
    • G06F15/8084Special arrangements thereof, e.g. mask or switch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution

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)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】 コンピュータシステムでのベクトル処理方法および装置。ベクトルレジスタ内の要素群の最後の要素(チャンクと呼ばれる)がメモリからロードされると、チャンク全体が妥当であるとマーク付けされるとともに、後続の或いは継続中の処理による使用のため利用可能であるとされる。ベクトル処理装置は、各々が複数の要素を保持する複数のベクトルレジスタを有する。各ベクトルレジスタについて、妥当性インジケータが設けられ、各妥当性インジケータは、対応するベクトルレジスタの妥当である要素の部分集合を指示する。チャンク妥当性コントローラは妥当となる複数の要素に対応して妥当性インジケータの値を調整するように妥当性インジケータに組合わされる。算術論理機能ユニット(ALFU)は、プログラムのインストラクションによって指定される機能を実行するためベクトルレジスタに結合される。ベクトルレジスタコントローラは選択されたベクトルレジスタの妥当要素が上記ALFUに連続的に送られるように、プログラムのインストラクションにしたがってベクトルレジスタを制御し、ベクトルレジスタからの妥当な要素の利用可能性によって決まる速度で要素が上記ALFUを通して流れるようにする。上記ALFUは連続する処理のためのオペランドに対応する要素アドレスを受信しつつ、未完了の処理のオペランドに対応する要素アドレスを保持するアドレスパイプラインをオプションとして備える。

Description

【発明の詳細な説明】 ベクトルプロセッサのためのチャンク連鎖 発明の分野 本発明は、高速コンピュータにおけるメモリアクセス方法及び装置に関し、よ り詳細には、高速ベクトルプロセッサにおける妥当性連鎖に関する。 発明の背景 ベクトルプロセッサを有する高速コンピュータ(ベクトルコンピュータ)はメ モリ内のデータへの高速アクセスを必要とする。この種のコンピュータで最大か つ最高速のものはスーパーコンピュータとして知られている。コンピュータを高 速化する一つの方法は、パイプライン化法と呼ばれており、入力と出力の間のコ ンピュータのデジタル論理が複数のシリアルに接続された連続ステージに分割さ れる。データは、先のデータ入力がコンピュータの出力ステージを通して完全に 処理される前にコンピュータの入力ステージに供給される。入力段と出力段との 間には多数の中間段が存在する。各段は先行段で実行された機能に加えて、所望 の全体機能のいくらかを実行する。このようにして、データの多数の部分が入力 段と出力段の間の各連続段における処理の種々の連続ステージに存在する。各個 別段は、全体の機能のごく一部のみを実行するに過ぎないので、システムクロッ クは短くすることができる。各連続クロックはパイプライン内でデータを一段ず つ進める。 パイプライン化の結果、システムクロックはパイプライン化されていないシス テムのシステムクロックより高速のレートで動作することができる。今日の幾つ かのコンピュータデザインでは、システムクロック周期は2ナノ秒(ns)とい う高速であり、このことは、単一の機能ユニットについてではあるが、毎秒50 0×100万回の演算が行えることを意味する。各プロセッサ内の並列機能ユニ ットおよび単一のシステム内の並列のプロセッサはさらに多量のスループットを 可能にする。しかしながら、高性能スループットの達成は、データが各パイプラ イ ンにシステムクロックレートに近い高速で供給される場合にのみ可能である。 スーパーコンピュータに関し、性能を向上するいま一つの方法は、各中央演算 処理ユニット(CPU)が互いに結合された多数プロセッサのシステムを構成す ることである。いくつかの多数プロセッサシステムでは、CPU間で1又は複数 の共通メモリ補助システムを共有する。幾つかのシステムは、1より多いベクト ル演算を同時に実行することができる数個の独立したベクトルプロセッサを各々 が有する複数のCPUを持っている。 処理速度が高速化されるにしたがって、コンピュータシステム内のメモリサイ ズは、より高性能のプロセッサがより大きいプログラムとより多量のデータを処 理できるので、飛躍的に増大される。更に、エラー訂正回路が信頼性を向上する ためメモリパス内に配置される。メモリアクセス速度は、時間については改善さ れたが、メモリサイズの増大とエラー訂正回路の複雑さはメモリアクセス時間は ほぼ一定のままであることを意味する。例えば、典型的なスーパーコンピュータ のシステムクロックレートは、3世代にわたって8nsから4nsへ4nsから 2nsへと改善された。同じ時間周期にわたって、メモリアクセス時間はほぼ9 6nsのままになっている。この時間は8nsのプロセッサは12クロックでメ モリをアクセスし、4nsのプロセッサでは24クロック、2nsプロセッサで は48クロックでアクセスすることを意味する。メモリ全体からランダムにデー タをアクセスするコンピュータでは、より高速化されたシステムクロックレート による速度の改善が何ら見られない。 1つの解決策は、ベクトルの各要素(データ)がそれに関して実行される同様 の演算を有する複数のベクトルにデータを編成することである。コンピュータの 設計者はベクトルの種々の要素を同時に取り込むためにメモリの種々の部分を設 計しており、これら取り込まれた要素は連続するクロックサイクルで1又はそれ 以上の並行パイプラインに取り込まれる。この種のデザイン例は、クレイ(Cray )に対し、1978年12月5日に発行された米国特許第4,128,880号( 880特許)、チェン等(Chen et al.)に対し、1987年4月28日に発行 された米国特許第4,661,900号およびクレイ等(Cray et al.)に対し、 1 994年9月20日に発行された米国特許第5,349,667号−これら各特許 は、本発明の譲受人であるクレイリサーチインコーポレイテッド(Cray Researc h Inc.)に譲渡されている−に記載されている。 例えば、ベクトル要素は、メモリ内のベクトルイメージ内の連続した要素位置 からベクトルレジスタへとパイプラインにロードされる。単一のCPUは並行に 動作することができる数個のベクトルプロセッサを含んでいる。パイプライン化 されたメモリからのベクトルロードにオーバーラップして、あるベクトルプロセ ッサにパイプラインを通して第3のベクトルレジスタに供給された結果のベクト ルを供給するために、2つの他のベクトルレジスタからデータを取り出す他のパ イプラインが存在する。これらのベクトルロードにオーバーラップして、いま1 つのベクトルプロセッサにパイプラインを通して更にいま1つのベクトルレジス タに供給された結果のベクトルを供給するため、他の2つのベクトルレジスタか らデータを取り込む他のパイプラインが存在する。この種のデザインの良好に調 整されたシステムにおいては、2nsパイプラインクロックを用いると、比較的 低速のメモリアクセス時間にも拘わらず、ベクトルプロセッサ内の並行機能ユニ ットと、高性能の全体パフォーマンスを備えたマルチプロセッサシステム内の並 行ベクトルプロセッサを具備したプロセッサ内において、スループットは単一の ベクトル機能ユニットについて毎秒500×100万回の演算に達しうる。 クレイに対する'880特許に記述されたシステムにおいては、各ベクトルレ ジスタに連係する単一のカウンタが任意のベクトル演算について当該ベクトルレ ジスタにおける要素をアドレスするのに使用されている。ベクトル演算はゼロ番 の要素(ベクトルレジスタの第1要素)で始まり、ベクトル長レジスタで特定さ れる数の要素が処理されるまで続行される。“連鎖(chaining)”と呼ばれるプ ロセスでは、次の(即ち第2の)ベクトル演算において先の(第1の)ベクトル 演算から得られた結果をオペランドとしてのベクトルとして使用する必要がある 場合、第2の演算は第1のベクトル演算の結果がベクトルレジスタに到達すると 同時に開始(発行)される。第2のインストラクションは、それ故、第1のイン ストラクションに連鎖“chained”されている。'880特許に応じて構成される システムでは、第1の機能ユニットにおいて実行される第1ベクトル演算の結果 得られる要素は、結果のベクトルレジスタに格納されると同時に、第2の機能ユ ニットに渡される。この種のシステムにおいて、クロック周期毎に発生するベク トルレジスタに対し、唯一の演算(読出し又は書込み)のみがなされるので、連 鎖は第1のインストラクションについて結果の書込み動作がベクトルレジスタに 対して行われた時に発生し、同時にその要素の値はあたかも同じレジスタから読 み出されたように第2の機能ユニットに渡される。このようにして、単一のクロ ック期間の間に第2のインストラクションが発行(実行が開始)されるとともに 第1のインストラクションに連鎖される。この単一クロック期間は連鎖スロット 時間(chain slot time)と名付けられ、各ベクトルインストラクションについ て1回だけ生ずる。次にインストラクションが先の機能ユニットもしくはオペラ ンドレジスタ予約の故に連鎖スロット時間に正確に発せられなかった場合には、 次のインストラクションは先の演算の全ての要素の結果が結果のベクトルレジス タに格納され、レジスタ予約が解除されるまで待機される。更に、次の1つの要 素は、第1機能ユニットによって要素が利用可能となるように、クロック毎に第 2の機能ユニットによって受け入れられなければならない。 チェン等に対して与えられた米国特許第4,661,900(,900特許)に 記述されたシステムでは、第1のベクトル演算からの第1要素の書込みから次の ベクトル演算の第1要素の読出しへの連鎖は、各ベクトルレジスタに連係する2 つの個別カウンタ(1つは読出し用、1つは書込み用)を設けることにより結合 が解除されている。これらカウンタは、そのベクトルレジスタにおいて、夫々読 出しの要素のアドレス指定及び書込みの要素のアドレス指定に使用される。“フ レキシブル連鎖(flexible chaining)”と呼ばれるプロセスでは、相続く演算 が連鎖スロット時間に正確に開始されるように強制されてはおらず、第1の結果 の要素が相続く演算のオペランドレジスタとして指定されている結果のベクトル レジスタに書き込まれた後の任意の時間に発行される。再び、各ベクトル演算は 、ゼロ番の要素(ベクトルレジスタの第1要素)から開始され、ベクトル長レジ スタで指定される数の要素が処理されるまで続行される。ベクトル要素の列は2 つ の列(偶数の要素と奇数の要素)に分割される。偶数要素の書込み動作は、偶数 列に行き、同じクロック期間に奇数番の要素の書込み動作は奇数列に行く。次の クロック期間において、次の奇数の要素の次の読出し動作は奇数列に行き、次の 偶数の要素の次の書込み動作は偶数列に行く。この方法で、2つの演算は各クロ ック期間毎、各ベクトルレジスタについてスケジュールされる。 本発明の譲受人であうクレイリサーチインコーポレイテッドによって製作され たCray Y−MPC90の如く、超高速ベクトルプロセッサでは、コンピュ ータシステムは、各々一つ以上のベクトルプロセッサを有する多数の中央演算ユ ニット(CPU)を有する。更に、コンピュータシステムはCPUによって使用 されるプログラムとデータを格納する多数の共通メモリを有する。ベクトルデー タはCPUに流し込まれ、即ちパイプライン化され、長いアクセス時間による遅 延は単一のリクエストの結果として、相続くサイクルで多数の要素を処理するこ とによって補償される。ベクトルプロセッサを通してのベクトルデータの流れの 挙動を向上する一つの方法は、特定のベクトルレジスタのどの要素が利用できる か又は妥当であるかをモニタ又は追跡するとともに、要素をそれらが利用可能に なると、算術もしくは論理ベクトル演算により処理するための算術/論理機能ユ ニット(ALFU)に流すことである。 先行技術第4図及び第5図を参照して、ベクトルレジスタ内の要素が、例えば 、そのベクトルレジスタ内において第1の演算による結果として利用可能となる や否や(又はその後の任意の時間)それら要素が“オペランド”として第2の演 算に連鎖されるように、数回の連続的なベクトル演算が“フレキシブル連鎖”に よって実行される。このようなシステムの一つが上記'900特許に記述されて いる。このようなアプローチはベクトルレジスタへのデータ読み込みがシーケン ス外で(例えばメモリ内における潜伏時間により)生ずる情況においては、限ら れた価値しかない。 必要なのは、メモリ内における相当の潜伏時間を補償することができる、ベク トルコンピュータシステムのための改良されたベクトル連鎖システムであり、ベ クトルプロセッサへの、を通しての、およびからのベクトルデータ処理能力を向 上することができる方法である。 発明の要旨 本発明は、コンピュータシステムにおけるベクトル処理のための方法および装 置を教示する。ベクトルレジスタ内の要素群の最後の要素[チャンク(Chunk) ]がメモリからロードされると、チャンク全体が妥当(valid)であるとしてマ ークされるとともに、次に続くもしくは継続中の演算による使用が可能とされる 。 ベクトル処理装置は、各ベクトルレジスタが複数の要素を保持する複数のベク トルレジスタを有する。ベクトルレジスタの各々について、妥当性インジケータ が設けられ、妥当性レジスタが妥当である対応ベクトルレジスタ内の要素のサブ セット(部分集合)を指示する。チャンク妥当性コントローラは、妥当となった 複数の要素に対応して、妥当性インジケータの値を調整するために動作する妥当 性インジケータに結合される。算術論理機能ユニット(ALFU)はプログラム のインストラクションにより特定される機能を実行するためベクトルレジスタに 結合される。ベクトルレジスタコントローラは、選択されたベクトルレジスタの 妥当な要素が連続的に上記ALFUに伝送されるように、プログラムのインスト ラクションに応じてベクトルレジスタを制御するために接続されており、これら 要素はALFUを通してベクトルレジスタからの妥当な要素の利用可能性によっ て決定される速度で流される。 本発明の一つの態様によれば、ALFUは連続的な演算のためのオペランドを 受信しながら、未だ完了していない演算用オペランドデータを保持するためのプ ロセッサパイプラインをさらに備える。 本発明のいま一つの態様によれば、ALFUはさらに、連続的な演算のための オペランドに対応する要素アドレスを受信しながら、未だ完了していない演算用 オペランドに対応する要素アドレスを保持するためのアドレスパイプラインをさ らに備える。 本発明のさらにいま一つの態様によれば、コンピュータシステムは、ALFU を通してオペランドとしてのデータを送信するため個々のベクトルレジスタを選 択的に接続するため、プログラムのインストラクションに対応したオペランドパ スセレクタと、ALFUからの結果を受信するためプログラムのインストラクシ ョンに対応した結果のパスセレクタとをさらに備える。 ベクトル処理方法は、複数のベクトルレジスタの各々について複数の要素を保 持するステップ、妥当性インジケータにおいて妥当である要素の部分セットを指 示するステップ、妥当になった複数の要素に対応して妥当性インジケータの値を 修正するステップ、算術論理機能ユニット(ALFU)を用意するステップ、選 択されたベクトルレジスタの妥当な要素をALFUに連続的に送信させるために プログラムのインストラクションに応答してベクトルレジスタ手段を制御し、ベ クトルレジスタからの妥当な要素の利用可能性によって決まる速度で要素をAL FUを通して流すようにするステップからなる。 本発明のベクトル処理方法のいま一つの態様によれば、本方法は、さらに、プ ログラムのインストラクションに応答してALFUを通してオペランドとしての 要素を送信するため個々のベクトルレジスタを選択的に接続するステップとプロ グラムのインストラクションに応答してALFUから結果を受信するステップか らなる。 図面の簡単な説明 第1図は本発明の一例としての実施例を図示する図式ダイアグラムである。 第2図は本発明の一例の実施例にしたがった、要素162とチャンク161か らなるベクトルレジスタ160を示す図式ダイアグラムである。 第3A図はメモリからベクトルレジスタにベクトル要素を取り込む動作と、そ の直後にそれらの要素をオペランド要素として読み取るいま1つの動作のタイミ ングダイアグラムを示す。 第3B図はメモリからベクトルレジスタにベクトル要素を取り込む動作と、数 クロック周期後にそれらの要素をオペランド要素として読み取るいま1つの動作 のタイミングダイアグラムを示す。 第3C図はメモリからベクトルレジスタにベクトル要素を取り込む動作と、そ れらの要素をオペランド要素として要素が要素列に書き込まれるのと同じ周期で 使用するいま一つの動作のタイミングダイアグラムを示す。 第3D図は第3C図に示すモードでスタートし、後に第3A図に示すモードに 変更する動作のタイミングダイアグラムを示す。 第3E図はメモリからベクトルレジスタに要素の順番とは違って到着するベク トル要素を取り込む動作と、本発明にしたがってチャンク連鎖を用いてそれらの 要素をオペランド要素として読み取るいま一つの動作のタイミングダイアグラム である。 第4図は従来の機能ユニットパイプラインを図示する図式ダイアグラムである 。 第5図は従来のベクトルレジスタアレイと制御を示す図式ダイアグラムである 。 第6図は第1図に示したベクトルレジスタ160のアレイと制御の一実施例の 詳細を図示する図式ダイアグラムである。 第7図は第1図に示したベクトルレジスタ160のアレイと制御のいま一つの 実施例の詳細を図示する図式ダイアグラムである。 第8図はチャンク連鎖コントローラの一実施例の詳細を示す図式ダイアグラム である。 第9図はチャンク連鎖コントローラの他の実施例の詳細を示す図式ダイアグラ ムである。 第10図は複数のベクトルレジスタ160によって共有される単一のチャンク 妥当性コントローラ500を図示する図式ダイアグラムである。 第11図は複数のベクトルレジスタ160の各々に接続される個別のチャンク 妥当性コントローラ500を示す図式ダイアグラムである。 好ましい例示的実施例の記述 以下の好ましい例示的実施例の詳細な記述において、記述の一部をなす添付の 図面が参照され、これら図面においては、本発明が実施される特定の例示的実施 例を図示している。本発明の範囲を逸脱することなしに、他の例示的実施例を利 用することができ、構造的変更をなしうることを承知すべきである。 メモリサブシステムが大規模かつ、より複雑化され、プロセッサがより高速と なると、ある演算の各成分の時間寄与がより重要となる。多数の独立したメモリ サブシステムを備えたマルチプロセッサシステムにおいては、ベクトル要素は、 種々の部品間の競合や使用のために、あるメモリサブシステムからは他のメモリ サブシステムより早く到達する。性能を最高にするためには、あるベクトルのあ る要素が他の要素の到着より早く到着するという利点を利用することが好ましい 。したがって、上記したシステムにおけるように、零番目の要素から出発して順 番通りに要素を処理することに固執するよりは、それらの要素が利用可能になり 次第、ベクトルの要素を処理することが好ましい。 第1図は本発明にしたがって構成されたスカラー/ベクトルスーパーコンピュ ータ10の例示的実施例を示す図式ダイアグラムであり、共通メモリインターフ ェース112を介して共通メモリ602.1〜602.Mに接続されたスカラー/ ベクトルプロセッサCPUからなる。共通メモリ602.1〜602.Mのための “Xメモリ”は、キャッシュメモリ、ダイナミックランダムアクセスメモリ(D RAM)、スタティックランダムアクセスメモリ(SRAM)、同期ダイナミッ クランダムアクセスメモリ(SDRAM)およびビデオランダムアクセスメモリ (VRAM)等で形成されるメインメモリ、ハード磁気ディスク、光ディスク及 び磁気テープ装置等の大量格納装置を含みうる。第1図において、CPU100 はベクトルプロセッサ165、スカラープロセッサ125、アドレスプロセッサ 135、ベクトルレジスタ160.1〜160.N、Sレジスタ120、Tレジス タ140、Aレジスタ130、Bレジスタ150、インストラクションバッファ 170、スカラーデータキャッシュ110、およびアドレスセレクタ111から なる。共通メモリインターフェース112はスカラー/ベクトルプロセッサCP U100の共通メモリのセット602へのアクセスを与える。1つの実施例では 、共通メモリ602.1〜602.Mは共通メモリインターフェース112を介し てマルチプロセッサ、マルチメモリシステムを形成するCPU100と同様の他 の複数のスカラー/ベクトルプロセッサCPUに接続される。 スカラーデータキャッシュ110は、CPU100内の少なくとも1つのレジ スタによって高速にアクセス可能な共通メモリセット602内の一部のデータの 局所的キャッシュコピーを与える。スカラーデータキャッシュ110をCPU1 00内の全てのレジスタにアクセス可能とすることは、そのようなアクセスが付 加的なローディングと配線の複雑化をもたらすので得策ではない。第1図に示し た実施例では、スカラーSレジスタ120とアドレスAレジスタ130は、スカ ラーデータキャッシュ110からライト・スルー(write-through)(ストアス ルーとも呼ばれる)でデータ取込みを行うことができる一方、他の全てのレジス タは共通メモリインターフェース112を介して共通メモリ602からデータを 直接にアクセスしなければならない。 スカラーデータキャッシュ110は、本発明の譲受人に譲渡された、“ベクト ルプロセッサ用ライトスルー能力を備えた連係スカラーデータキャッシュ”と題 する同時係属中の出願により詳細に説明されている。 '900特許において記述されたデザインでは、各ベクトルレジスタに連係し た別個のカウンタ(少なくとも1つのベクトルレジスタからの要素の読出しのた めのもの、例えばリードアドレスカウンタ812と少なくとも1つの要素のベク トルレジスタへの書込みのためのもの、例えばライトアドレスレジスタ822) が、そのベクトルレジスタ内において、夫々読取り動作および書込み動作のため 要素をアドレス指定するのに使用される。“フレキシブル連鎖”と呼ばれる従来 のプロセスでは、連続的な演算は連鎖スロット時間に正確に開始することが強制 されておらず、その代わり、第1の結果の要素が、相続く演算のためのオペラン ドレジスタとして指定された結果のベクトルレジスタに書き込まれた後、任意の 時間に発行される。各ベクトル演算は、ゼロ番の要素から開始され、ベクトル長 レジスタによって特定される数の要素が処理されるまで続行される。要素はメモ リから取り込まれ、要素の配列順にベクトルレジスタに戻される(即ち、要素ゼ ロ番は時間的に次に要素1番に後続され、時間的に次に要素2番に後続される等 々)。 記述される第1の演算モードは、“ライト(書込み)に続くリード(読出し) (read-following-write)”と呼ばれる。リード動作(コンピュータ内で実行さ れているプログラムの相続くインストラクションによって惹起される)は、ライ ト動作の後に生ずるように連鎖される、即ち、書き込まれる先の結果に依存する 相続くリード動作は、必要とされる要素が書き込まれるとともに妥当となるまで 強制的に待機させられる。このようにシステムの一実施例では、ライトアドレス レジスタ822は(a)ライトコントロール回路にゼロ番の要素が次に書き込ま れるべきことを指示し、(b)リードコントロール回路にゼロ番の要素(偶数バ ンク810の)および全ての大きいアドレスの要素(バンク810と820の) が、それら要素が未だ書き込まれていないのでオペランドとして用いることが妥 当でないということを指示するため、特定のライト動作の開始において、ライト アドレスレジスタ822がゼロにリセットされる。ゼロ番の要素への書込みが完 了すると、ライトアドレスレジスタ822は、(a)ライトコントロール回路に 、次に番号1の要素が書き込まれること、(b)リードコントロール回路に番号 1およびそれ以上の番号の要素は、それらが未だ書き込まれていないので妥当で ないことを指示するため、1だけ増加される。この動作のためのベクトルライト 長レジスタ836における数に対応する要素が書き込まれると、ライト動作は完 了したものと考えられる。このように、ライトアドレスレジスタ822は、続く リード動作のために妥当かつ利用可能である要素の数を指示するとともにライト 動作の完了状態を指示する妥当性インジケータとして用いられる。 演算の第2のモードは、読取りに続く書込み(write−following−read)と呼 ばれる。ライト動作(多分、コンピュータ内で実行されているプログラムの相続 くインストラクションによって惹起される)は、リード動作後に生ずるように連 鎖される−即ち、先の動作で読取られたオペランド要素を上書きするライト動作 は必要な要素が読み取られ、最早何も必要でなくなる迄、待機するように強制さ れる。リードカウンタ812は、特定のリード動作の開始に際して、(a)リー ドコントロール回路に、ゼロ番の要素が次に読み取られるべきこと、および(b )ライトコントロール回路に、ゼロ番の要素およびそれ以上の順番の要素の全て は、それらが読み出されていない(即ち、それら要素のデータは依然必要である )ので、いかなる後続のライト動作においても書き込まれてはならないことを指 示するため、ゼロにリセットされる。ゼロ番の要素(偶数要素アレイ)からの読 込みが完了すると、リードカウンタ812は、(a)リードコントロール回路に 番号1の要素が次に読み取られるべきことを指示し、ライトコントロール回路に 1番 の要素は現在書き込み可能であるが、1番およびそれ以上の番の要素は、それら が未だ読み取られていないので書き込むことはできないことを指示するために、 1だけ歩進される。この動作のためのベクトル・リード長レジスタ835内の数 に対応する要素が読取られると、読取り動作は、完了したと考えられる。 このようにして、リード動作は、リードカウンタが、予め計画された(かつ現 在動作中)の当該ベクトルレジスタへの書込み動作によって指定された要素に達 するまで実行することが許される。即ち、ライトアドレスレジスタ822によっ て指定された要素まで、各要素はデータを書き込まれ妥当となる一方、より大き い番地の要素は依然妥当でないとされる。同様に、ライト動作は、当該ベクトル レジスタへの先に予定された(現在動作中の)読取り動作によって指定された要 素にライトアドレスレジスタ822が達するまで、実行が許される。その場合、 リードカウンタ812によって指定された要素までの各要素は読み取られ書込み のため利用可能となる一方、より大きい順番の要素は依然利用可能でないとされ る。従来のシステムでは、要素の処理およびどの要素が利用可能か、依然必要で あるかの指示は、要素順に到着する要素に依存しており、ライトカウンタは、書 き込まれるべき次の要素および最下位の順番の妥当ではない要素を指定する。先 に述べたように、ベクトル要素をシーケンシャルに受取るように規制されたシス テムでは、相当な潜伏タイミングを持つメモリを用いる場合、効率的な動作を期 待することはできない。 第1図に示す本発明の実施例では、スカラー/ベクトルスーパーコンピュータ 10は1又はそれ以上のスカラー/ベクトルプロセッサCPU100を有し、こ れらは、共通メモリ602と総称される、複数の共通メモリ602.1〜602. Mに共通メモリインターフェース112を介して接続されている。この種の一実 施例では、共通メモリ602.1〜602.Mは共通メモリインターフェース11 2を介して、マルチプロセッサ・マルチメモリシステムを構成する、CPU10 0と同様の複数の他のスカラー/ベクトルプロセッサCPU(図示せず)にも接 続される。共通メモリ602.1〜602.Mは、複数のスカラー/ベクトルプロ セッサのうちの1つが特定の共通メモリ602.nに対する動作をスケジュール し、他のスカラー/ベクトルプロセッサに対しては一般的には短時間だけ当該共 通メモリをロックすることにより締め出す。1より多くのCPU100が同時に 共通メモリ602に対して、もしくはそれからの実行中の動作を持つことが可能 である。幾つかの実施例では、共通メモリ602に対してより高速又は低速のア クセスタイミングを有するメモリサブシステムを付加することが好ましい。 特定のメモリサブシステムへのアクセスについてのCPUの競合や種々のメモ リサブシステムのアクセス時間の変化等の多数の要因により、データが共通メモ リ602からベクトルレジスタヘ返ってくる時間にはある範囲がある。このこと は、あるベクトルの要素−これらは一般的には数個のメモリサブシステムに跨っ て分散されている−は、そのベクトルを要求するCPU100にきわめて多くの 場合、要素順通りでなく戻ってくることを意味する。第5図に示した、アドレス レジスタ822がメモリから読まれた要素の到着ごとに1だけ増加されるシステ ムでは、要素の順番から外れて到着する要素を取扱うことはできない。 本発明は、パフォーマンスを改善するとともに、順番外れで到着するベクトル エレメントを取扱うため、“チャンク連鎖(chunk chaining)”と命名された方 法および装置を提供する。第1図と第2図を参照して、ベクトルレジスタ160 .1〜160.Nの各々(個々にはベクトルレジスタ160で表される)は、複数 のチャンク161を含んでおり、各チャンク161は1つもしくはそれ以上の要 素162からなる。チャンクは、必ずしもそうである必要はないが、他のチャン クと同じサイズでありうる。要素162をベクトルレジスタ160にロードする 読取り動作において、要素はベクトルレジスタ160にランダムな時間順序で到 着することが許される。一つの実施例では、到着する各要素は、到着した要素が ロードされるべきレジスタと当該レジスタ内の要素の指定を伴っている。特定の チャンク161の全ての要素162がベクトルレジスタ160にロードされると 、チャンク161の全体が妥当(valid)としてマーク付けされるとともに、そ の内部の各要素162は、当該レジスタ160をオペランドとして使用すること を求める機能もしくはプロセスによって使用可能となる。メモリのライト動作で は、特定のチャンク161を構成する要素162の全てがベクトルレジスタ16 2か ら書込まれると、そのチャンク161の全体が非妥当(invalid)(“現在空白 でデスティネーションとして使用可能である”ことを意味する)としてマーク付 けされる。それは、その後、新しい要素162を当該レジスタ160にロードす るために待機しているプロセスもしくはメモリによって使用される。 多くの場合、ベクトルの所定のベクトル長までの全ての要素162が処理され る限り、ベクトルレジスタ内のベクトルの要素162は、得られる結果に影響を 及ぼすことなく、いかなるベクトル演算、いかなる順序でも処理することができ る。チャンクを基本とする場合、妥当性(validity)[および利用可能性(avail ability)]の指示を与えることによって、本発明にかかるベクトルチャンク連鎖 の方式は、順番外れでランダムな時間に到着するベクトルの要素を処理すること を可能にするとともに、要素の順序はどうであれ、“先に(early)”到着する要 素は“遅く(late)”到着する要素にベクトルレジスタ160に格納するようにす れば優れたパフォーマンスという利点を得ることができる。 極端な場合、各チャンクは単一の要素のみからなり、ベクトル全体の各要素は 完全にランダムな順序で処理され、各要素はその順序に無関係に、それが利用可 能になるや否や処理される。他の極端な場合、ベクトル全体(ベクトル長レジス タに指定された長さまでの)が一つのチャンクであり、レジスタ160全体が、 一つの単位として妥当もしくは利用可能としてマーク付けされる。 第6図に示された実施例では、ベクトルの内部処理は、以下に記す例外を除い て、'900特許に用いられた手法と大略同じ手法によって連鎖される。第6図 のダイアグラムは、単一のベクトルレジスタ160についてのフローと制御を図 式的に示しており、かかる論理はベクトルレジスタ160.1〜160.Nの各々 について繰返し実行される。ベクトルの偶数要素は、偶数要素バンク810に保 持され、奇数要素は奇数要素バンク820に保持される。妥当な要素がバンク8 10と820に格納されると、ベクトルライトコントローラ831は、特定のベ クトルレジスタ160の相続く妥当な要素の最大アドレスを反映させるためライ トアドレスレジスタ822内の値を調整する。(順序外れで到着するより大きい アドレスのいくつかの要素も同様に妥当である。)かくして、ライトアドレスレ ジスタ822は、ベクトルレジスタ160内の各々が妥当である要素の部分集合 (subset)を指示する妥当性インジケータとして使用することができ、これら要 素の全てが有効であるので、これら要素はALFU演算によりオペランドとして 使用される。同時に、この部分集合以外の要素の少なくとも幾つかは非妥当であ り、それらが妥当となるまでオペランドとして使用されるべきではない。 例えば、共通メモリ602から到着する要素162のデータは、メモリ・要素 アドレス・パイプライン/シンクロナイザ826を介して到着する対応要素アド レスを伴って、メモリ・データ・パイプライン/シンクロナイザ827を介して 到着する。ベクトルライトコントローラ831は、パイプライン/シンクロナイ ザ826と827の遅延を調整するので、これらパイプラインを経由して到着す る要素と機能ユニットパイプライン856と850を経由して到着する要素との 間に時間的な衝突はない。 特定のベクトルレジスタ160の要素162をオペランドとして使用するベク トル演算(即ち、要素が書き込まれた後それら要素をレジスタから読み取る)は 、このベクトル演算の期間このベクトルレジスタ160をオペランドとして予約 しておくためベクトル・リードコントローラ830に対するベクトルオペランド 信号の発行を活性化することによりスタートする。このオペランド予約は、これ ら要素がオペランド予約操作によりオペランドとして参照される前に、次に続く 演算でベクトルの要素の値を変えることを防止するのに使用される。ベクトル・ リード長レジスタ835にはベクトル内の要素の数がロードされている。リード アドレスカウンタ812はゼロ(即ち、読まれるべき第1の要素のアドレス)が ロードされている。 先の演算は、このベクトルレジスタ160を結果のレジスタとして設定する( 例えば、インストラクションにより、このレジスタをメモリ読出しのデスティネ ーションもしくはベクトル演算の結果として指定する)。要素が妥当であるとさ れると(例えば、メモリリードからロードされることにより)、ベクトルライト コントローラ831は書き込まれた、妥当とされた最大のアドレスを反映させる ためライトアドレスレジスタ822を更新する。ベクトル・リードコントローラ 8 30は、ゼロ番の要素からライトアドレスレジスタ822に指示されて要素迄続 けて要素をバンク810と820から読出すことができる。 一つのベクトル算術/論理機能ユニット(VALFU)(第1図の165)は この演算のために確保されている。各CPU100内には数個のVALFUがあ り、各VALFUは、各CPUサイクルの間にベクトル演算が同時的に生ずるよ うに、他のVALFUと平行して動作する。VALFU165はN個の連続ステ ージを有するプロセッサパイプライン850で表されている。D個の連続ステー ジを有するゴーライト(Go−write)パイプライン856は、要素セレクタ84 0によってプロセッサパイプラインに供給される各要素オペランドについて、対 応するゴーライト信号がゴーライトセレクタ849によってゴーライトパイプラ イン856に供給されるようにプロセッサパイプライン850と連係して動作す る。ゴーライトパイプライン856のステージの数Dは、プロセッサパイプライ ンのステージ数Nと等しく設定される。このようにして、各結果の要素がプロセ ッサパイプライン850から出力されると、対応するゴーライト信号がゴーライ トパイプライン856からベクトルライトコントローラ831に同時に出力され 、“結果(result)”のベクトルレジスタ160に結果の要素を書き込むことを制 御するのに使用される。ベクトルライトコントローラ831は書き込まれている 要素のアドレスを指示するためにライトアドレスレジスタ822を更新する。 結果の要素162がパイプライン850から結果のベクトルレジスタ160に 出力されると、結果の要素は、ベクトルライトデータセレクタ160、選択的に 要素遅延回路834を介して、偶数ライトデータセレクタ811および奇数ライ トデータセレクタ821に、そして更に、偶数番と奇数番の要素のための偶数要 素バンク810と奇数要素バンク820に夫々供給される。 バンク810と820に対する要素の読出しと書込みは、1回の読出しと1回 の書込みが各CPUクロック周期内に実行されるように交互に行われる。例えば 、一つのクロック周期nの間にゼロ番の偶数要素が書き込まれ、次のクロック周 期n+1の間に、1番の奇数要素が書き込まれると同時に、ゼロ番の偶数要素が 読み出され、次のクロック周期n+2の間に偶数要素2番が書き込まれ、奇数要 素 1番が読出されるという具合である。各クロック周期の間に、最大2回のバンク 演算、即ち、1回のバンクに対する要素読出し動作と1回の他のバンクへの要素 書込み動作とが実行できる。次のクロック周期では、最大2回のバンク演算、即 ち先に読出しが行われたバンクに対する書込みと先に書込みが行われたバンクに 対する読出しとが実行される。要素バンクを用いて実行される次のベクトル読出 し動作は、(1つの要素分という少ない遅れで−即ち、要素、N+1を書き込み ながら要素Nを読み出すとともにある不確定の時間の後−即ち、当該ベクトルレ ジスタ160からオペランドベクトルの第1の要素を読み出す以前にベクトルレ ジスタ160に結果のベクトルの全ての要素を書き込んだ後)必要とされる要素 を与えるベクトルライト動作を後続させる。第3A図は、データ(ベクトル要素 )をメモリから取り込んでベクトルレジスタ160に書き込むためのクロック周 期C0で発行される動作のタイミングダイアグラムを示す。これらデータをベク トルレジスタ160から読出すベクトル演算はクロック周期C1で発行されるか 、クロック周期C7までいま一つの要求されたオペランドを待つため不実行状態 に保持される。メモリの潜伏に対応する時間の経過後、ベクトル要素は、クロッ ク周期C6において到着し始め(ゼロ番目の要素がクロック周期C6で偶数要素バ ンク810に書き込まれる)。以後、相続くクロック周期に後続の要素が到着す る。クロック周期C7では、ゼロ番の要素が偶数要素バンク810から読出され 、要素1番が奇数要素バンク820に書き込まれる。クロック周期C8では要素 1番が奇数要素バンク820から読み出され、要素2番が偶数要素バンク810 に書き込まれるという具合である。 第3B図は、メモリからデータを取り込んでベクトルレジスタ160に書き込 むためクロック周期C0で発行される動作についてのタイミングダイアグラムで ある。ベクトルレジスタ160からこれら要素を読み出すベクトル演算は、クロ ック周期C10で発行されるか、偶数要素バンク810(クロック周期C10では要 素4番を書き込むことでビジイである)がクロック周期C11まで1クロックの間 利用可能となるまで待機すべく不実行に保持される。メモリ潜伏に対応する時間 の後、ベクトル要素はクロック周期C6でメモリから到着し始め(要素ゼロ番が 偶 数要素バンク810に書き込まれる)、その後の後続のクロック周期において後 続の要素が到着する。クロック周期C7では要素1番が奇数要素バンク820に 書き込まれる。クロック周期C8では要素2番が偶数要素バンク810に書き込 まれるといった具合である。クロック周期C10で、要素4番が偶数要素バンク8 10に書き込まれ、一方、リード動作はそうでなければ発行される(および要素 ゼロ番を読出す)であろうが、偶数要素バンク810がクロック周期C11で利用 可能となるまで不実行状態に保持される。クロック周期C11では、要素ゼロ番が 読み出されるとともに要素5番が奇数要素バンク840に書き込まれる等々。 これに代り、ベクトル・ライト・データセレクタ829からリード要素セレク タ840までのデータ経路を用いることで、要素バンクを迂回する次の読出しを 必要な要素を与えるベクトル書込み動作と同時に後続させることができる(偶数 要素オペランドは同じクロック周期において偶数要素結果から与えられる)。し かしながら、この方式では、要求される他のオペランドとVALFUはオペラン ドとして連鎖される結果の要素と一緒に直ちに利用可能でなければならない。第 3C図はメモリからデータを取込んでベクトルレジスタ160に書き込むため、 クロック周期C0で発行される動作のタイミングダイアグラムである。ベクトル レジスタ160からこれらの要素を読み出す動作はクロック周期C1に発行され るが、クロック周期C6までこのオペランドを待機するよう不実行に保持される 。メモリ潜伏に対応する時間の後、ベクトル要素は、クロック周期C4において 到着し始め(要素0番がクロック周期C6で偶数要素バンク810に書込まれる )、後続の書込み要素は後続のクロック周期に到着する。クロック周期C6にお いて要素ゼロ番が読出し動作のための要素ゼロ番オペランドとして使用される。 クロック周期C7では要素1番が奇数要素バンク820に書込まれるとともに読 取り動作のための要素1番オペランドとして使用される。クロック周期C8では 要素2番が偶数要素バンク820に書き込まれ、読出し動作のための要素2番オ ペランドとして使用される。もしも衝突又はその他の要因で、ベクトルの後続の 要素のオペランドの利用可能性が遅れる場合には、この代りの方式では、上記し た要素バンク810と820を経由する偶数奇数ルートに復帰する。第3D図は かかる 場合のタイミングダイアグラムを示しており、クロック周期C8において、読出 し動作のために要求された他の一つのオペランドの要素2番のデータは2クロッ ク遅延され、クロック周期C10において到着する。2オペランド・1結果VAL FU演算の両方のオペランドはVALFUパイプラインの各入力に同時に供給さ れなければならない。そのため、他の要素2番オペランドがクロック周期C10ま で利用可能でないので、このオペランドの要素2番の読出しはクロック周期C10 まで遅延される。クロック周期C10においても、要素4番の書込みデータは到着 しようとしているが、要素2番の読出しと要素4番の書込みは偶数要素バンク8 10を用いるので、1クロックだけ遅延(第6図の遅延回路834によって)さ れなければならず、クロック周期C11において書き込まれる。各後続の競合要素 書き込みは同様に1クロック周期遅延される。 各要素が読み出されると、その都度、ベクトルリード長レジスタ835は1だ けデクリメントされる。ベクトル長レジスタ835がゼロになった(この動作の ための要素の全てが処理された)ときに、オペランド予約は解除される。 ある特定のレジスタ160の要素162を結果として使用するベクトル演算( 即ち、レジスタに要素を書き込む)は、このベクトル演算の間、このベクトルレ ジスタ160を結果のレジスタとして予約するためベクトル結果信号をベクトル ライトコントローラ831に対して発行することにより開始される。このオペラ ンド予約は、後続の演算がこれら要素が結果予約演算により結果として書き込ま れる前にこのベクトルの要素から値を読み出すことを防止するために使用される 。ベクトル書込み長レジスタ836には、ベクトルの要素数がロードされている 。ライトアドレスカウンタ822には、ゼロ(即ち、書き込まれるべき第1の要 素のアドレス)がセットされている。 プロセッサパイプライン850から来る要素はゴーライトパイプライン856 から来るゴーライト信号を伴っており、このゴーライト信号は要素の書込みとラ イトアドレスカウンタ822のインクリメントを制御する。メモリ要素パイプラ イン827から来る要素はメモリ要素アドレスパイプライン826から来るベク トルライトアドレス信号を伴っており、このベクトルライトアドレス信号は要素 の書込みを制御する。しかしながら、ライトアドレスカウンタ822は以下に述 べるように異なった取り扱いが必要である。 各要素が書き込まれると、ベクトル書き込み長レジスタ836は1だけデクリ メントされる。ベクトル書き込み長レジスタ836がゼロになる(即ち、この演 算について要素の全てが書き込まれる)と、上記結果予約は解除される。 チャンク連鎖 要素は順序外れでメモリから到着するのでベクトルライトアドレスカウンタ8 22は各要素の到着毎に単純にインクリメントすることはできない。ベクトルラ イトアドレスカウンタ822は、前述したように、ベクトルレジスタ160内の 妥当な要素のエクステントを指示するために、相続く演算において使用される。 ベクトルライトアドレスカウンタ822はメモリリード/ベクトルライト演算に よって書き込まれた最大妥当隣接アドレスを含まなければならない。後続の読出 し動作では、ベクトルライトアドレスカウンタ822における値まで任意の要素 をオペランドとして使用することができる。 例えば、第3E図を参照して、時間Xにおいて要素1,8,3,4,5,0が その順序で到着してベクトルレジスタ160に書き込まれていたとすると、ベク トルライトアドレスカウンタ822は多くても1の値を持つ。要素2番が未だ到 着しておらず、それが到着する迄は、後続の演算においてオペランドとして使用 されない。後の時間Yにおいて要素7,9,2がこの順序で到着しベクトルレジ スタ160に書き込まれていたとすると、ベクトルライトアドレスカウンタ82 2は最大5の値を持つ。要素6番が未だ到着していないので、後続の演算におい てそれが到着する迄オペランドとして使用することはできない。後の順序Zにお いて、要素6番が到着してベクトルレジスタ160に書き込まれていたとすると 、ベクトルライトアドレスカウンタ822は、要素0〜9の全てが妥当になって いるので、9の値を持つ。時間Xにおいて、ベクトルライトコントローラ813 に対するチャンク妥当信号は要素1番を介しての要素のチャンクが妥当であるこ とを指示する。時間Yにおいて、ベクトルライトコントローラ813に対するチ ャンク妥当信号は、要素5番を介しての要素のチャンクが妥当であることを指示 す る。時間Zではベクトルライトコントローラ813に対するチャンク妥当信号は 、要素9番を介しての要素のチャンクが妥当であることを指示する。 ある実施例において、各ベクトルレジスタ160(第2図)は16個のチャン ク161からなり、各チャンク161は8個の要素162からなり(各チャンク は同一サイズである)、合計ではベクトルレジスタ160当たり128個の要素 162となる。第8図は、チャンク妥当性コントローラ500の一実施例を示す 。メモリインターフェース112は、現在進行中の取込み動作を受持つ各デステ ィネーションレジスタについて16個のチャンクカウンタのグループ116を含 む。デスティネーション指示レジスタ118は、このチャンクカウンタグループ のどのデスティネーションレジスタが使用されているかを指示する。各要素が共 通メモリ602から到着すると、デスティネーションレジスタと要素アドレスの 両方に関する指示がチャンクカウンタ選択回路114に与えられ、該選択回路1 14はこのデスティネーションレジスタと要素アドレスに対応するチャンクカウ ンタをインクリメントする。メモリからのベクトル取り込みの開始に際して、取 り込まれるべき各チャンクのカウンタは、ゼロにセットされる。特定のチャンク 161について各要素が取り込まれると、対応するチャンクカウンタは1だけイ ンクリメントされる。チャンクカウンタが8に達すると(そのチャンクの全ての 要素が取り込まれた)、チャンク妥当信号(このレジスタについてのこのチャン クは今や妥当であることを指示する。)がベクトルライトコントローラ831に 送られる。このような実施例において、この信号はチャンク妥当ビット(CVB chunk valid bit)アレイコントローラ131に行き、CVBアレイ133内の 適当なビットをセットする。この実施例において、CVBアレイ133は8個の ベクトルレジスタの各々について16個のチャンク161の各々について妥当性 指示を与えるべく16×8個のビットアレイからなる。エンコーダ135は、各 ベクトルレジスタについてCVBアレイによって妥当であると指示された要素に 対応してライトアドレスの値を与える。第6図の実施例を参照すると、このライ トアドレス値はベクトルライトコントローラ831からライトアドレスレジスタ 822に与えられる。第7図の実施例を参照すると、このライトアドレス値はベ クト ルライトコントローラ831から最大妥当アドレスレジスタ825に与えられる 。この場合、最大妥当アドレスレジスタ825は、妥当な要素の数を指示する妥 当性インジケータとして使用することができる。 第9図に示されたいま一つの実施例では、任意のサイズのチャンクが設けられ る。第9図はチャンク妥当性コントローラ500のいま一つの例を示す。共通メ モリ602から各要素が到着すると、デスティネーションレジスタと要素アドレ スの両方に対応する指示が要素妥当性ビット(Element validity bit EVB) アレイコントローラ512に与えられ、該コントローラはこのデスティネーショ ンレジスタと要素アドレスに対応して、EVBアレイ514の個々のビットをセ ットする。メモリからのベクトル取込みの開始に際して、取り込まれるべきベク トルレジスタ160に対応する全てのEVBアレイビットはゼロにセットされる 。各要素162が取り込まれると、対応するEVBアレイビットは1にセットさ れる。かかる実施例において、8個のベクトルレジスタ180の各々について、 128個の要素160の各々に妥当性指示を与えるため、EVBアレイ514は 128×8ビットアレイからなる。エンコーダ135は各ベクトルレジスタ16 0についてEVBアレイによって妥当と指示された要素に対応してライトアドレ ス値を与える。チャンクエンコーダ516は、任意のサイズのチャンク内の最大 の連続妥当要素にジャンプすることができるので、この実施例では変化するサイ ズチャンクを設けることができる。この実施例は第6図に示した実施例と第7図 に示した実施例のいずれかと共用することができる。第6図の実施例を参照する と、各エンコーダ516からのライトアドレス値はベクトルライトコントローラ 831からライトアドレスレジスタ822に与えられる。第7図の実施例では、 このライトアドレス値はベクトルライトコントローラ831から最大妥当アドレ スレジスタ825に与えられる。 第7図はベクトルレジスタ160のコントローラおよび要素アレイについて第 6図の実施例に代わる実施例を示している。第7図に示す実施例において、外は 第6図のものと同一であるが、要素アドレスはゴーライト信号の一部としてゴー ライトパイプライン856を介して与えられる。この方法で、プロセッサパイプ ライン850から出力される結果の要素はゴーライトパイプライン856から出 力される対応の要素アドレスを伴っている。ライトアドレスレジスタ822とラ イトアドレスインクリメンタ886は、要素がオペランドとして妥当か否かの指 示を与えるためコンパレータ832と連係して使用される最大妥当アドレスレジ スタ825で置換えられる。第7図に示す実施例では、プロセッサパイプライン 850と856から夫々来る要素と対応する要素アドレス、同様にメモリパイプ ライン827と826から夫々来る要素と要素アドレスを取り扱う。 第10図は、複数のベクトルレジスタ160によって共有される単一のチャン ク妥当性コントローラ500を有する実施例を示す。第11図は複数のベクトル レジスタ160各々に接続された個別のチャンク妥当性コントローラ500を有 する代わりの実施例を示す。他の実施例では複数のベクトルレジスタ160によ って共有され、かつ接続される種々の数のチャンク妥当性コントローラ500を 有する。 パイプライン化されたいかなるコンピュータもそのパイプラインに存在するデ ータを修正するためのインストラクションを備えなければならない。したがって 、いかなる格納操作は、あるパイプラインに存在するかもしれないデータを考慮 しなければならない(例えば、スカラーレジスタに格納されたデータは、取り込 まれるとともに、ベクトルレジスタによる相続く演算のためパイプライン中に存 在するデータ中に反映されなければならない)。ある実施例では、そのようなパ イプラインの保守はメモリインターフェースの排他的制御をプロセッサのベクト ル部分又はスカラー部分のいずれかに交互に与えるという手法を用いることによ って達成される。例示的な実施例では、インストラクションバッファ170に関 連する発行制御(issue-control)回路は、処理中のスカラー演算の完了までベ クトル演算の発行を阻止するとともに、同様に実行中のベクトル演算の完了まで いかなるスカラー演算の発行を阻止することによってプログラマを保護する。ス カラー演算は他のスカラー演算と重なることは許されるが、ベクトル演算とは許 されない。同様に、ベクトル演算は他のベクトル演算と重なることは許されるが 、スカラー演算との重なりは許可されない。共通メモリインターフェース112 は、 ベクトル書込み処理といかなる先行のベクトル読出し処理とが両方の処理が同じ ストライド(stride)(ベクトル内の連続する要素のアドレス間のアドレス差を ストライドと呼ぶ)を有する限り、重ならないようにベクトル書込み処理を制御 する、即ち、後に発行される書込み処理は要素が読出されてしまった後まで、先 に発行された読出し処理の要素に対して、書込みを行うことは許可されない。こ の実施例では、異なるストライドを持つ処理間の衝突は検出されえず、プログラ マ又はコンパイラはベクトル読出し処理が完了するまで書込み処理をホールドす る特別なインストラクションを使用しなければならない(例えば、1000から始め て1000,1001,…,1007等連続したメモリ位置から要素を読出すベクトル読出し処 理に、1001から始まって1001,1004,1007等3個目毎に書込みを行う書込み処理が 後続する場合、書込み処理は読出し処理が所望のデータを読出す以前に1004又は 1007の位置に書込みを行う。このようにして、プログラマもしくはコンパイラは ベクトル読出し処理後およびベクトル書込み処理前に特別な同期インストラクシ ョンの一つを挿入しなければならない。このインストラクションは可干渉性の書 込み処理の開始が許可される以前に読出し処理が完了することを保証するため、 共通メモリリクエスト(読出し処理からの)がクリアされる迄、待機される)。 第1図に示す実施例では、ベクトルレジスタ160は8個のベクトルレジスタ からなり、各々は1要素当たり64ビットのベクトル要素を128まで収納する ことができる。ベクトルプロセッサ165は、連続するクロック周期で連続した ベクトル要素をパイプライン化された方法で連続的に処理する。例えば、ソース ベクトルレジスタVjの128個の各要素はソースベクトルレジスタVkの128 個の各要素に128個の連続クロックで加えられ、これら128個の演算の結果 がデスティネーションベクトルレジスタViの128個の要素にロードされるコ ンピュータ回路はパイプラインを初期にロードするのに数サイクル(周期)を要 するが、その後は、クロック毎に1回の処理が実行される。 第1図に示す実施例では、Sレジスタ120は各々64ビットを持つ8個のス カラーレジスタからなる。スカラープロセッサ125は連続したクロック周期で 連続したスカラーレジスタを処理するが、上述のベクトルプロセッサで使用され る方法よりはいささか非効率的なパイプライン処理方式が用いられる。 第1図に示す実施例では、Tレジスタ140は、各々64ビットを持つ64個 のスカラーレジスタからなる。Tレジスタ140の内容はSレジスタ120との 間および共通メモリ602のセットとの間でやりとりされる。 第1図に示す実施例において、Aレジスタ130は各々64ビットを持つ8個 のアドレスレジスタからなる。アドレスプロセッサ135は連続するクロック周 期で連続するアドレスレジスタを処理するが、上記したベクトルプロセッサによ り用いられる方法よりはいささか非効率的なパイプライン処理方式が用いられる 。 第1図に示す実施例において、Bレジスタ150は各々64ビットを持つ64 個のスカラーレジスタからなる。Bレジスタ150の内容は、Aレジスタ130 との間および共通メモリ602のセットとの間でやりとりされる。 第1図に示す実施例において、インストラクションIバッファ170は1グル ープ当たり32個のインストラクションバッファからなる計8グループからなり 、各インストラクションバッファレジスタは64ビットを持つ。インストラクシ ョンは実行のためIバッファ170内のグループに取り込まれる。データはIバ ッファ170に取り込まれるだけで格納されることはなく、スカラーデータキャ ッシュ110はIバッファ170へのデータ転送を無視する。 本明細書で用いられている“翻訳された(translated)”なる用語は1つのメ モリセット内のデータを指すアドレスがいま一つのメモリに存在するデータのコ ピーを指す他のアドレスにマップされるアドレスマッピング処理に適用される。 例えば、論理アドレスは、コンパイラおよびディスク格納サブシステムによって データを追跡し、プログラマにとってフレキシブルなインターフェースを与える ために使用される“論理アドレス空間”内のデータを指すのに使用される。これ らのデータが共通メモリ602にロードされると、データを配置するのに物理ア ドレスが使用される。 第1図に示す実施例において、論理アドレスはデジタル論理ハードウエアによ って共通メモリ602のセット内のデータをアクセスするのに使用される物理ア ドレスに翻訳される。このようなアドレス変換はプログラマがインストラクショ ン 取り込み、データ取り込み又はデータ格納のためデータをアクセスするのに使用 するためのよりフレキシブルなインターフェースを提供する。 マルチプロセッサシステムにおけるいま一つの重要なパフォーマンス上の制約 はマルチプルプロセッサが共通のリソースを共有する場合に生ずるプロセッサ“ ロックアウト”又は“ブロッキング”である。ある実施例では、通常のロード、 格納、ベクトルロード、ベクトル格納処理は、マルチプロセッサシステムにおい て、あるプロセッサから他のプロセッサへブロック又はロックされることはない 。その代わり、アトミックテストアンドセットインストラクション(atomic tes t and set instructions)の如き従来の同期インストラクションがある共有され たリソースが使用中か利用可能である場合に、プロセッサ間で信号をやりとりす るのに使用される。プログラム作成上の規約やコンパイラの制約は、衝突してい るコードの実行を共有のリソースの障害が解決されるまで不実行保持するのに使 用される。いずれかの適当な方法が、プロセッサ対プロセッサの衝突があるか否 かを決定し、後続の衝突しないインストラクションの実行を許可し、或はブロッ クするのに使用しうる。 以上の記述は図示のために意図されたものであり、制限的でないことが了解さ れるべきである。多くの他の実施例は、以上の記述を参照すれば、当業者にとっ ては明らかであろう。本発明の範囲は、添付のクレームを参照し、クレームが包 含する均等物の全範囲を含んで決められるべきである。
【手続補正書】 【提出日】1997年7月30日 【補正内容】 (1)明細書中、第5頁第5行目と、第6行目の間に以下の文章を挿入します。 「長島等の発明で日立に譲渡された英国特許GB2113878号は、先行する インストラクションのライトアドレスの通過に対してリードアドレスを制限する 回路を有するベクトル処理装置を開示している。」 (2)請求の範囲を別紙の通り補正します。 請求の範囲 1.算術論理機能ユニット(ALFU)(165)とALFU(165)に結合 された複数のベクトルレジスタ(160)とを含む、コンピュータ(10)のた めのベクトル処理装置は以下のものからなる: 各ベクトルレジスタ(160)に対して複数のチャンク(161)と、各チ ャンク(161)に対して複数の要素(162); 上記ベクトルレジスタ(160)の各々に対応した妥当性インジケータ(8 32,822,825)、各妥当性インジケータ(832,822,825)は 妥当である上記対応するベクトルレジスタ(160)内の上記要素(162)の 隣接する部分集合を指示する; チャンク妥当性コントローラ(500)、該チャンク妥当性コントローラ( 500)はチャンク(161)内の最後の2もしくはそれ以上の要素(162) がロードされた後、各チャンク(161)を妥当としてマークし、かつ該チャン ク妥当性コントローラ(500)は上記各妥当性インジケータ(832,822 ,825)に結合される; および 上記複数のベクトルレジスタ(160)から選択されたベクトルレジスタ( 160)の妥当な要素がオペランドとして上記ALFU(165)に連続的に送 信されるようにプログラムのインストラクションに応じてベクトルレジスタ(1 60)を制御するために接続されたベクトルレジスタコントローラ(830,8 31)。 2.上記ALFU(165)は上記連続演算のオペランドに対応する要素アドレ スを受信しながら、未完了の演算のオペランドに対応する要素アドレスをホール ドするように動作するアドレスパイプライン(856)をさらに備え、請求項1 に記載のベクトル処理装置。 3.プログラムインストラクションに応答してオペランド要素アドレスを上記A LFU(165)の上記アドレスパイプライン(856)を介して送信するオペ ランドパスセレクタ(849);および 上記ALFU(165)のアドレスパイプライン(856)から結果の要素 アドレスをプログラムインストラクションに応じて受信する結果パスセレクタ( 831)をさらに備える、請求項2に記載のベクトル処理装置。 4.メインメモリ(602)をさらに備え、該メインメモリからベクトルレジス タ(160)のためのシーケンシャルな要素が非シーケンシャルな順序で到着す る、請求項1,2,3のいずれかに記載のベクトル処理装置。 5.複数のベクトルレジスタ(160)の各々が順序付けされたデータセットを 保持する、請求項1,2,3,4のいずれかに記載のベクトル処理装置。 6.妥当性インジケータ(832,822,825)は、妥当性ポインタ(82 5)を含み、該妥当性ポインタは、各々が妥当で非シーケンシャルな順序で妥当 となりうる上記ベクトルレジスタ(160)内の連続する要素(162)の範囲 を指示する、請求項1,2,3,4のいずれかに記載のベクトル処理装置。 7.上記妥当性ポインタ(825)に結合されたチャンク妥当性コントローラ( 500)は妥当になる複数の連続要素に対応して、妥当性ポインタの値を調整す る、請求項6に記載のベクトル処理装置。 8.上記妥当性インジケータ(832、822,825)によって指示されるベ クトルレジスタ(160)からの妥当な要素(162)の適用可能性に基づいて 、要素が上記ベクトルレジスタコントローラ(830,831)によってシーケ ンシャルな順序で上記ALFU(165)を通して流されるとともに、ベクトル レジスタ(160)のためのシーケンシャルな要素は、上記メインメモリ(60 2)から非シーケンシャルな順序で到着する、請求項1,2,3,4,5,6, 7のいずれかに記載のベクトル処理装置。 9.メインメモリ(602)をさらに含み、上記複数のベクトルレジスタ(16 0)は上記メインメモリ(602)に結合され、上記ベクトルレジスタ(160 )の各々は、順序付けられたデータセットの複数の要素(162)を保持すると ともに、上記ベクトルレジスタ(160)の各々は複数のチャンク(161)か らなり、各チャンク(161)は少なくとも一つの要素からなり、チャンク妥当 性コントローラ(500)は各チャンク(161)に対して、当該チャンク(1 6 1)の全ての要素(162)が適用可能でかつ妥当である場合にのみ当該チャン クが適用可能であることを指示する、請求項3に記載のベクトル処理装置。 10.上記ベクトルレジスタコントローラ(830,831)は要素(162) が送信される度毎に、ゴーライト信号を接続された上記ALFU(165)に与 え、上記ALFU(165)の各々は要素遅延回路(834)をさらに含み、該 要素遅延回路は上記ゴーライト信号を受信して、演算を実行するのに上記ALF U(165)により使用されるクロック周期の数に対応するクロック周期数遅延 させるとともに、遅延させたゴーライト信号を上記ベクトルレジスタコントロー ラ(830,831)に連続的に送り返し、ここで上記ALFU(165)によ って生成された各結果は、上記ベクトルレジスタコントローラ(830,831 )へのゴーライト信号の返信により通報される、請求項9に記載のベクトル処理 装置。 11.メインメモリ(602)と、複数のベクトルレジスタ(160)と算術論 理機能ユニット(ALFU)(165)とを有するコンピュータ(10)におけ るベクトル処理方法は以下のステップからなる: 複数のベクトルレジスタ(160)の各々に対して複数のチャンク(161) を包含し、各チャンク(161)は複数の要素(162)を包含する; 妥当性インジケータ(832,822,825)において、妥当である要素の 連続的な部分集合を指示する; 妥当になる複数の要素(162)に応答して上記妥当性インジケータ(832 ,822,825)の値を調整する、ここで各チャンク(161)はチャンク( 161)内の最後の2又はそれ以上の要素(162)が上記メモリ(602)か らロードされた後に妥当であるとしてマークされる;および 選択されたベクトルレジスタ(160)の妥当な要素が上記算術論理機能ユニ ット(ALFU)(165)に連続的に送信されるようにプログラムのインスト ラクションに対応して上記複数のベクトルレジスタ(160)の一つを制御する 。 12.連続的な演算のためのオペランドに対応する要素アドレスを受信する一方 、 上記ALFU(165)のアドレスパイプライン(856)内において完了して いない演算のためのオペランドに対応する要素アドレスを保持するステップをさ らに含む、請求項11に記載のベクトル処理方法。 13.プログラムインストラクションに応答して上記ALFU(165)の上記 アドレスパイプライン(856)を介してオペランド要素アドレスを送信すべく 個々のベクトルレジスタ(160)を選択的に接続するステップと、 プログラムインストラクションに応答して上記ALFU(165)の上記アド レスパイプライン(856)から結果の要素アドレスを受信するステップとをさ らに含む、請求項12に記載のベクトル処理方法。 14.ベクトルレジスタ(160)のためのシーケンシャルな要素は、メインメ モリから、非シーケンシャルな順序で到着する、請求項11,12,13のいず れかに記載のベクトル処理方法。 15.複数の要素(162)は順序付けられたデータセットを含む、11,12 ,13,14のいずれかに記載のベクトル処理方法。

Claims (1)

  1. 【特許請求の範囲】 1. メモリおよびベクトル処理装置からなるコンピュータシステムであって、 ベクトル処理装置は以下のものからなる: 複数のベクトルレジスタ、各ベクトルレジスタは複数の要素を保持する; チャンク妥当性コントローラ; 上記複数のベクトルレジスタの各々に対応する妥当性インジケータ、各イ ンジケータは対応するベクトルレジスタの妥当である要素の部分集合を指示する とともに各妥当性インジケータはチャンク妥当性コントローラに接続されている ; 上記複数のベクトルレジスタに結合された算術論理機能ユニット(ALF U);および 上記複数のベクトルレジスタを制御するために接続され、上記複数のベク トルレジスタから選ばれたベクトルレジスタの妥当である要素を連続的に上記A LFUに送信するためにプログラムのインストラクションに対応して動作するベ クトルレジスタコントローラ。 2. 上記ALFUは、連続処理のオペランドに対応する要素アドレスを受信し ながら、未完了の処理のオペランドに対応する要素アドレスを保持するように動 作するアドレスパイプラインを更に備える、請求項1のコンピュータシステム。 3. 更に、プログラムのインストラクションに対応して、上記ALFUのアド レスパイプラインを介して要素アドレスをオペランドとして送信するため個々の ベクトルレジスタを選択的に接続するオペランドパスセレクタと、 プログラムのインストラクションに対応して、上記ALFUのアドレスパイプ ラインから結果のアドレスを受信する結果のパスセレクタとを備える、請求項2 のコンピュータシステム。 4. 主メモリを有するコンピュータのためのベクトル処理装置は以下のものか らなる: 複数の要素を各々保持する複数のベクトルレジスタ; チャンク妥当性コントローラ; 上記複数のベクトルレジスタの各々に対応する妥当性インジケータ、各妥当性 インジケータは対応するベクトルレジスタの妥当な要素の部分集合を指示すると ともに、各妥当性インジケータは上記チャンク妥当性コントローラに接続されて いる; 上記複数のベクトルレジスタに結合された算術論理機能ユニット(ALFU) ;およびプログラムのインストラクションに応答して上記ベクトルレジスタを制 御するために接続され、上記複数のベクトルレジスタから選択されたベクトルレ ジスタの妥当な要素を連続的に上記ALFUに送信する。 5. 上記ALFUは、更に、連続処理のオペランドに対応した要素アドレスを 受信しながら、未完了の処理のオペランドに対応する要素アドレスを保持するよ うに動作するアドレスパイプラインを備える、請求項4のベクトル処理装置。 6. プログラムのインストラクションに対応して、上記ALFUのアドレスパ イプラインを介してオペランド要素アドレスを送信するための個々のベクトルレ ジスタを選択的に接続するオペランドパスセレクタと、プログラムのインストラ クションに対応して、上記ALFUのアドレスパイプラインから結果の要素アド レスを受信する結果のパスセレクタとを更に備える、請求項5のベクトル処理装 置。 7. 主メモリを有するコンピュータにおいてベクトルを処理する方法は以下の ステップからなる: 複数のベクトルレジスタの各々について複数の要素を保持する; 妥当性インジケータ内で妥当性である要素の部分集合を指示する; 妥当となる複数の要素に対応して妥当性インジケータの値を調整する;および プログラムのインストラクションに応答して、選択されたベクトルレジスタの 妥当な要素を連続的に算術論理機能ユニットに送信させるために、要素が上記一 つのベクトルレジスタからの妥当な要素の利用可能性によって決定される速度で 上記ALFUを通して流れるように、上記複数のベクトルレジスタの一つを制御 する。 8. 上記ALFUは、連続処理のためのオペランドに対応して要素アドレスを 受信しながら未完了の処理のオペランドに対応する要素アドレスを保持するアド レスパイプラインをさらに備える、請求項7のベクトル処理方法。 9. 更に、プログラムのインストラクションに対応して上記ALFUのアドレ スパイプラインを介してオペランド要素アドレスを送信するため個々のベクトル レジスタを選択的に接続するステップ、および プログラムのインストラクションに対応して上記ALFUのアドレスパイプラ インからの結果の要素アドレスを受信するステップを備える、請求項8に記載の ベクトル処理方法。 10. 主メモリを有するコンピュータのためのベクトル処理装置は以下のもの からなる: 複数のベクトルレジスタ、各レジスタは順序付けられたデータセットの複数の 要素を保持する; 上記複数のベクトルレジスタの少なくとも一つについて、当該ベクトルレジス タの各々が妥当である連続要素の範囲を指示する妥当性ポインタ; 妥当となった複数の連続要素に応答して上記妥当性ポインタの値を調整するた めに妥当性ポインタに結合されたチャンク妥当性コントローラ; 上記複数のベクトルレジスタの少なくとも一つに結合された算術論理機能ユニ ット(ALFU);および ベクトルレジスタからの妥当要素の利用可能性によって決まる速度で要素が上 記ALFUを通して流れるように、ある選択されたオペランドベクトルレジスタ が妥当要素の範囲内の全ての要素を連続的に上記ALFUに送信するように、プ ログラムのインストラクションに応答して上記ベクトルレジスタを制御するベク トルレジスタコントローラ。
JP51872996A 1994-12-01 1995-08-01 ベクトルプロセッサのためのチャンク連鎖 Expired - Fee Related JP3789937B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/347,953 US5623685A (en) 1994-12-01 1994-12-01 Vector register validity indication to handle out-of-order element arrival for a vector computer with variable memory latency
US08/347,953 1994-12-01
PCT/US1995/009661 WO1996017308A1 (en) 1994-12-01 1995-08-01 Chunk chaining for a vector processor

Publications (2)

Publication Number Publication Date
JPH10502756A true JPH10502756A (ja) 1998-03-10
JP3789937B2 JP3789937B2 (ja) 2006-06-28

Family

ID=23366006

Family Applications (1)

Application Number Title Priority Date Filing Date
JP51872996A Expired - Fee Related JP3789937B2 (ja) 1994-12-01 1995-08-01 ベクトルプロセッサのためのチャンク連鎖

Country Status (5)

Country Link
US (1) US5623685A (ja)
EP (1) EP0797803B1 (ja)
JP (1) JP3789937B2 (ja)
DE (1) DE69529689T2 (ja)
WO (1) WO1996017308A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6195747B1 (en) * 1998-09-28 2001-02-27 Mentor Arc Inc. System and method for reducing data traffic between a processor and a system controller in a data processing system
US20100122044A1 (en) * 2006-07-11 2010-05-13 Simon Ford Data dependency scoreboarding
US8239659B2 (en) * 2006-09-29 2012-08-07 Intel Corporation Vector completion mask handling
US8028257B2 (en) * 2007-03-01 2011-09-27 International Business Machines Corporation Structure for data bus bandwidth scheduling in an FBDIMM memory system operating in variable latency mode
US8826252B2 (en) * 2009-06-12 2014-09-02 Cray Inc. Using vector atomic memory operation to handle data of different lengths
US8583898B2 (en) * 2009-06-12 2013-11-12 Cray Inc. System and method for managing processor-in-memory (PIM) operations
WO2013166101A1 (en) * 2012-05-02 2013-11-07 Massachusetts Institute Of Technology Managing buffer memory
US9606803B2 (en) * 2013-07-15 2017-03-28 Texas Instruments Incorporated Highly integrated scalable, flexible DSP megamodule architecture

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4128880A (en) * 1976-06-30 1978-12-05 Cray Research, Inc. Computer vector register processing
JPS58114274A (ja) * 1981-12-28 1983-07-07 Hitachi Ltd デ−タ処理装置
US4661900A (en) * 1983-04-25 1987-04-28 Cray Research, Inc. Flexible chaining in vector processor with selective use of vector registers as operand and result registers
US4636942A (en) * 1983-04-25 1987-01-13 Cray Research, Inc. Computer vector multiprocessing control
US4901230A (en) * 1983-04-25 1990-02-13 Cray Research, Inc. Computer vector multiprocessing control with multiple access memory and priority conflict resolution method
JPS6089274A (ja) * 1983-10-20 1985-05-20 Nec Corp ベクトルマスク制御システム
JPS60134974A (ja) * 1983-12-23 1985-07-18 Hitachi Ltd ベクトル処理装置
CA1233260A (en) * 1985-03-13 1988-02-23 Chuck H. Ngai High performance parallel vector processor having a modified vector register/element processor configuration
US4745547A (en) * 1985-06-17 1988-05-17 International Business Machines Corp. Vector processing
US4745545A (en) * 1985-06-28 1988-05-17 Cray Research, Inc. Memory reference control in a multiprocessor
US4754398A (en) * 1985-06-28 1988-06-28 Cray Research, Inc. System for multiprocessor communication using local and common semaphore and information registers
JPS62115571A (ja) * 1985-11-15 1987-05-27 Fujitsu Ltd ベクトルアクセス制御方式
JPS6462764A (en) * 1987-09-03 1989-03-09 Agency Ind Science Techn Vector computer
DE68903280T2 (de) * 1988-05-10 1993-05-27 Cray Research Inc Vektorschlange in computern mit vektorregister.
US5142638A (en) * 1989-02-07 1992-08-25 Cray Research, Inc. Apparatus for sharing memory in a multiprocessor system
US5247637A (en) * 1990-06-01 1993-09-21 Cray Research, Inc. Method and apparatus for sharing memory in a multiprocessor system
DE69113639T2 (de) * 1991-03-28 1996-03-07 Cray Research Inc Echtzeit-input/output-methode fuer ein vektor-prozessor-system.
JP3176093B2 (ja) * 1991-09-05 2001-06-11 日本電気株式会社 マイクロプロセッサの割込み制御装置
US5442797A (en) * 1991-12-04 1995-08-15 Casavant; Thomas L. Latency tolerant risc-based multiple processor with event driven locality managers resulting from variable tagging

Also Published As

Publication number Publication date
JP3789937B2 (ja) 2006-06-28
EP0797803B1 (en) 2003-02-19
EP0797803A1 (en) 1997-10-01
WO1996017308A1 (en) 1996-06-06
US5623685A (en) 1997-04-22
DE69529689D1 (de) 2003-03-27
DE69529689T2 (de) 2003-09-18

Similar Documents

Publication Publication Date Title
US4524416A (en) Stack mechanism with the ability to dynamically alter the size of a stack in a data processing system
CN100378655C (zh) 并行处理器中的多线程执行
US5664215A (en) Data processor with an execution unit for performing load instructions and method of operation
US5632025A (en) Method for preventing multi-level cache system deadlock in a multi-processor system
US5251306A (en) Apparatus for controlling execution of a program in a computing device
US5185868A (en) Apparatus having hierarchically arranged decoders concurrently decoding instructions and shifting instructions not ready for execution to vacant decoders higher in the hierarchy
EP1214661B1 (en) Sdram controller for parallel processor architecture
US6606704B1 (en) Parallel multithreaded processor with plural microengines executing multiple threads each microengine having loadable microcode
US4933837A (en) Methods and apparatus for optimizing instruction processing in computer systems employing a combination of instruction cache and high speed consecutive transfer memories
US7743235B2 (en) Processor having a dedicated hash unit integrated within
US20040162933A1 (en) Sram controller for parallel processor architecture including an address and command queue and method for controlling access to a RAM
US5265233A (en) Method and apparatus for providing total and partial store ordering for a memory in multi-processor system
EP1202180A1 (en) Scalar data cache for a vector processor
JPH02208729A (ja) マイクロコード式実行装置での並列動作による複数機能装置の制御
JPH02206837A (ja) パイプライン方式のコンピューターシステムにおける色々な個数の潜在的メモリーアクセス矛盾を解決する方法及び装置
KR100346515B1 (ko) 수퍼파이프라인된수퍼스칼라프로세서를위한임시파이프라인레지스터파일
JPH02255932A (ja) マルチプロセツサ・システム
JPH05143443A (ja) データ処理装置
JPH05508495A (ja) 多重プロセッサ用大域レジスタ
JP2008181551A (ja) ベクトルレジスタを備えたコンピュータにおけるベクトルテールゲーティング
US5696939A (en) Apparatus and method using a semaphore buffer for semaphore instructions
US6012135A (en) Computer having multiple address ports, each having logical address translation with base and limit memory management
US20020169933A1 (en) Scalble memory
EP0533427A1 (en) Computer memory control system
JP3789937B2 (ja) ベクトルプロセッサのためのチャンク連鎖

Legal Events

Date Code Title Description
A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060330

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060301

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060522

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090407

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100407

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110407

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120407

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees