JP2000207389A - ベクトルレジスタを備えたコンピュータにおけるベクトルテールゲーティング - Google Patents

ベクトルレジスタを備えたコンピュータにおけるベクトルテールゲーティング

Info

Publication number
JP2000207389A
JP2000207389A JP2000055714A JP2000055714A JP2000207389A JP 2000207389 A JP2000207389 A JP 2000207389A JP 2000055714 A JP2000055714 A JP 2000055714A JP 2000055714 A JP2000055714 A JP 2000055714A JP 2000207389 A JP2000207389 A JP 2000207389A
Authority
JP
Japan
Prior art keywords
vector
vector register
address
signal
register
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
JP2000055714A
Other languages
English (en)
Other versions
JP4144153B2 (ja
Inventor
Seymour R Cray
スィーモアー・アール・クレイ
James R Bedell
ジェイムズ・リチャード・ベデル
Dennis W Kuba
デニス・ダブリュー・クバ
Jr William T Moore
ウィリアム・ティ・ムーア・ジュニア
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cray Research LLC
Original Assignee
Cray Research LLC
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 Cray Research LLC filed Critical Cray Research LLC
Publication of JP2000207389A publication Critical patent/JP2000207389A/ja
Application granted granted Critical
Publication of JP4144153B2 publication Critical patent/JP4144153B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】 【課題】 テールゲーテリング技術により、ベクトル
レジスタコンピュータの処理速度を改良することを目的
とする。 【解決手段】 オペランド要素の順次読み出しに用い
られるアドレスの順次読み出しに同期して、第2の操作
により発生した結果としての要素を、要素のアドレスの
少なくとも1つ分遅らせ、要素のアドレス順番に従い、
順次ベクトルレジスタに記憶する。これにより、オペラ
ンド要素をベクトルレジスタから順次読み出し、この順
次読み出しに同期して、操作結果の要素をベクトルレジ
スタに順次書き込むようにする。また、順次読み出しア
ドレス指定と、順次書き込みアドレス指定は、同じアド
レスが指定されないように、計算されたアドレスオフセ
ットで、両者のアドレス指定は、ずらして行なう。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、高性能ベクトルコ
ンピュータの分野に関するもので、特に、ベクトル算定
における性能上のゲインを与える為に、本明細書で「テ
ールゲーティング」と呼ぶ処理におけるベクトルレジス
タの使用を制御する装置、並びに、その方法に関するも
のである。
【0002】
【従来の技術】通常スーパコンピュータと呼ばれる、大
型で極めて高性能のコンピュータの分野では、オーダさ
れた複数の組のデータ、又は、ベクトルを含む計算にお
いて、非常に高いデータ処理速度を達成する為に、普
通、ベクトル処理構成が設けられる。Seymour R.C
rayに与えられ、Cray Research, Inc.に譲渡され
た米国特許第4,128,880号には、非常に好結果の
スーパコンピュータベクトル処理構成が開示されてい
る。上記の構成においては、オペランドとして機能ユニ
ットに送り、かつ、機能ユニットからの結果としてのベ
クトルを受け取り、かつ、保持する様に、複数のベクト
ルレジスタが、ベクトルを保持する為に設けられてい
る。最大の速度を得る為に、完全にセグメント化された
機能ユニットが設けられ、その内部では、機能ユニット
に達するか、又は、機能ユニット内で移動する全ての情
報は、各時間ピリオドの終わりにおいて捕捉され、か
つ、保持される。所定のベクトルプロセスの為のオペラ
ンドレジスタとして用いたベクトルレジスタは、時間ピ
リオド当り1要素の割合で機能ユニットに個々の要素を
伝送する。一たびスタートアップタイム、又は、機能ユ
ニットタイムが過ぎると、機能ユニットは連続する時間
ピリオドでの連続的結果要素を与え、そして、これらの
要素は、その特定のベクトルプロセスの結果レジスタと
して働いているベクトルレジスタに、結果ベクトルの要
素として伝達される。ベクトルレジスタと主メモリとの
間のベクトル転送も又、時間ピリオド当り1要素の割合
で達成できる。
【0003】
【発明が解決しようとする課題】いずれも、プログラム
命令制御により、どの機能ユニット、又はメモリと連係
させてもよい、いくつかの機能ユニット(例えば、浮動
小数点乗算、整数加算、ロジカル演算等)や、いくつか
のベクトルレジスタ(例えば、8個)を設けることによ
り、米国特許第4,128,880号によるコンピュータ
に、多数の同時に進行するベクトルプロセスを付与し、
それによって、極めて高いデータ処理速度を達成するこ
とができる。
【0004】
【課題を解決するための手段】請求項1においては、オ
ーダされた1組のデータの複数の要素を貯える為の手段
を含む少なくとも1つのベクトルレジスタを有するコン
ピュータ用ベクトル処理装置であって、(イ)コンピュ
ータ内で第1の操作を行うための手段であって、この第
1の操作で使用されるために、オペランド要素が順次ベ
クトルレジスタから読み取られるようになっている第1
の操作手段と、(ロ)コンピュータ内で第2の操作を行
う為の手段であって、この第2の操作により発生された
結果としての要素が、順次ベクトルレジスタに貯えられ
るようになっている第2の操作手段と、(ハ)ベクトル
レジスタからのオペランド要素の順次読み出しに用いら
れるアドレスの順次読み出しに同期して、第2の操作に
より発生した結果としての要素を、要素のアドレス時間
の少なくとも1つ分遅らせ、要素のアドレス順番に従
い、順次ベクトルレジスタに記憶するために、前記第1
と第2の操作手段に結合し、前記第2の操作の開始を第
1の操作に対して同期させる同期化手段とを備えたこと
を特徴とする処理装置である。
【0005】請求項2においては、少なくとも1つのベ
クトルレジスタを備えたコンピュータでのベクトル処理
方法であって、(イ)コンピュータ内で第1の操作を行
うステップと、(ロ)前記第1の操作で用いる為にベク
トルレジスタから少なくとも1つのオペランド要素を順
次読み出すステップと、(ハ)ベクトルレジスタからの
オペランド要素の順次読み出しに用いられるアドレスの
順次読み出しに同期して、第2の操作からの少なくとも
1つの結果としての要素を、要素のアドレス時間の少な
くとも1つ分遅らせ、要素のアドレス順番に従い、順次
ベクトルレジスタに記憶するために、前記第2の操作の
開始を、第1の操作に対して同期させるステップと、
(ニ)前記第2の操作をコンピュータ内で行うステップ
と、(ホ)前記第2の操作よりの結果としての要素を、
ベクトルレジスタに順次記憶させるステップとを含むこ
とを特徴とする処理方法である。
【0006】請求項3においては、請求項2に記載の処
理方法であって、更に、コンピュータ内で少なくとも1
つの中間操作を行うステップを設け、該中間操作は、第
1の操作の後で、かつ、第2の操作の前に行われること
を特徴とする処理方法である。
【0007】請求項4においては、複数のベクトルレジ
スタを有するコンピュータでのベクトルテールゲーティ
ング(vector tailgating)多重操作方法であって、
(イ)コンピュータ内で第1の操作を行うステップと、
(ロ)前記第1の操作で用いる為に、第1のベクトルレ
ジスタから、少なくとも1つの第1オペランド要素を順
次読み取るステップと、(ハ)少なくとも1つの第2の
結果としての要素を作り出す為に、コンピュータ内で第
2の操作を行うステップと、(ニ)前記第2の操作で用
いるために、第2のベクトルレジスタから少なくとも1
つの第2のオペランド要素を順次読み出すステップと、
(ホ)第1のベクトルレジスタからの第1のオペランド
要素の順次読み出しに用いられるアドレスの順次読み出
しに同期して、第2の結果としての要素を、要素のアド
レス時間の少なくとも1つ分遅らせ、要素のアドレス順
番に従い、順次第1のベクトルレジスタに記憶するステ
ップと、(ヘ)少なくとも1つの第3の結果としての要
素を作り出す為に、コンピュータ内での第3の操作を行
うステップと、(ト)第3の結果としての要素を、少な
くとも1つの要素を遅らせて、第2のベクトルレジスタ
からの第2のオペランド要素の順次の読み出しに同期し
て、順次第2のベクトルレジスタに記憶させるステップ
とを含むことを特徴とする操作方法である。
【0008】
【発明の実施の形態】以下の好ましい実施の形態の詳細
な説明においては、説明の1部を構成すると共に、本発
明を実施する2つの特有な実施の形態を図示する添付の
図面を参照する。両実施の形態共、ブロック図とタイミ
ングダイヤグラムに関して説明され、それに基づいて、
当業者に一般に知られている様に、詳細なロジックデザ
イン(図示せず)が構成される。更に、本発明の範囲内
で、他の実施の形態を利用できることや、構成上の変形
を実施することも可能であることが了解されるべきであ
る。
【0009】本発明にかかるベクトル処理及び制御手段
の形態と作動は、本発明を用いるコンピュータシステム
の組織の大略の解説で説明を始めると最も了解が容易で
あると考えられる。次に、本発明の形態と作動の詳細を
説明する。
【0010】図1および図2のブロック図において、コ
ンピュータシステムの計算部が詳細に示される。計算部
は、全体的に参照番号100で示す1組のベクトルレジ
スタよりなる。ベクトルレジスタはデータの高速処理を
与えるので、コンピュータの主要計算レジスタを構成す
る。好ましい両実施の形態において、図1に、V0から
V7として示す、8個の個別ベクトルレジスタがある。
各ベクトルレジスタは、ベクトルレジスタV0におい
て、要素00より77を8進数字で示している様に、6
4の個々の要素よりなっている。各要素は、64ビット
のワードを保持している。
【0011】ベクトル処理に3個の機能ユニットが提供
されている。それらは、整数ユニット110と、ロジカ
ルユニット120と、シフトユニットは130である。
更に、2個の機能ユニットが、コンピュータのベクトル
とスカラ量部分の間で共用されている。これらは、加算
140と掛算150用の浮動小数点機能ユニットであ
る。
【0012】ベクトル演算は、1つ、又は、それ以上の
ベクトルレジスタの第1要素からオペランドを得、それ
らを機能ユニットに配送することにより始められる。各
タイムピリオドにおいて、連続的要素が与えられ、各演
算が行われるにつれて、結果は、宛先ベクトルレジスタ
の連続要素に送られる。ベクトル演算は、命令により行
われた演算の数が、ベクトルレングスレジスタ160の
内容により規定されるカウントと等しくなる迄続けられ
る。
【0013】本発明の図面及び明細書を含むベクトル演
算の記号的表現では、ベクトルレジスタは、サブスクリ
プトi、j及び kにより識別される。サブスクリプトi
は、宛先ベクトルレジスタを識別するのに用いられる。
サブスクリプトjとkは、オペランドベクトルレジスタを
識別するのに用いられる。例えば、 Vi=Vj+Vk ベクトルレジスタの要素は、数字的サブスクリプト(例
えば、V46は、ベクトルレジスタ4の要素6)で識別さ
れる。
【0014】ベクトルレジスタの要素は、オペランドと
して機能ユニットに伝達され、次いで、後続のタイムピ
リオドで前の演算の結果の宛先を与える。レジスタをオ
ペランドレジスタと、それに次いで、宛先レジスタの両
方に用いることにより、2つ、又は、それ以上のベクト
ル演算の「テールゲーティング」を一緒に行うことが可能
となる。このモードでは、タイムピリオド毎に、2つ、
又は、それ以上の結果が作り出される。これらのベクト
ル演算のタイムピリオドは、通常、単一システムクロッ
クピリオドである。
【0015】このテールゲーティングモードを除いて、
ベクトルレジスタは、それらがベクトル計算の含まれる
タイムピリオドの間予約される。同じベクトルレジスタ
を必要とするがテールゲーティングモードで実行できな
い他の指令は、前の指令が完成し、予約が外される迄、
発せられない。しかし、全ての機能ユニットが独立して
いるので、多様な関係のないベクトル処理演算を、異な
る機能ユニットや、異なるオペランドや結果ベクトルレ
ジスタを用いて同時に行うことができる。
【0016】好ましい第1の実施の形態 本発明の好ましい第1の実施の形態を、図3ないし図6
に図示する。 第1の実施の形態のベクトルレジスタ制御の概略ブロッ
ク図を図5に示す。Issueとラベル付した回路301
は、その入力として、アンドゲート302と303から
の反転信号を、その入力とする。両出力は、指令を発し
得る前に待つ必要があることを示すものである。 アンドゲート302への入力は、回路305の出力と、
ラッチ304に保持される信号Vjリードリクエストと
Vkリードリクエストとよりなる。回路305は、Vjと
Vkリードビジイ及びライトビジイビットを調べる。1
リードビジイビット及び1ライトビジイビットが、各ベ
クトルレジスタに与えられる。これらのビットは、必要
とされるオペランドベクトルレジスタが、以前のリード
又はライト演算に対して、現在ビジイであるか否かを示
す。もし、要求されるオペランドベクトルレジスタがビ
ジイでない場合は、アンドゲート302からの反転信号
が、指令の発令を可能とする。
【0017】アンドゲート303からの反転信号は、指
令の発令が行われる迄に、アンドゲート302からの反
転信号に関して調べる必要がある。アンドゲート303
への入力は、回路307よりの出力と、ラッチ306に
おける信号Viライトリクエストである。回路307
は、要求された宛先ベクトルレジスタか、現在書き込み
動作でビジイであるかどうかを決定する為に、Viライ
トビジイビットを調べる。指令の発令には、宛先ベクト
ルレジスタが、前の指令の宛先としてビジイでないこと
が必要である。
【0018】指令の発令が行われると、回路301は、
313の信号を、Vjリードビジイ及びVkリードビジイ
を設定する為に、又、314の信号を、Viライトビジ
イを設定する為に送り出す。又、信号312が、回路3
01から、ベクトルシーケンス制御308へ送られる。
代わって、ベクトルシーケンス制御308は、ゴウリー
ドVj及びゴウリードVk信号316を発生する。これら
の信号は、図6に示す様に、Vj/Vkリードアドレスカ
ウンタ401への入力として働く。信号316は8ビッ
トよりなる(各ベクトルレジスタについて1ビット)信号
316は、ベクトルレジスタの内のどれがリード動作の
為に用いられるべきかを示している。代表的に言えば、
リード動作の間は、VjはVkと異なるであろう。しか
し、本実施の形態では、VjはVkと同じベクトルレジス
タとしてもよいので、ゴウリードVjとゴウリードVk
は、同じ信号であってもよい。
【0019】ベクトルシーケンス制御308は、又、図
5に、参照番号310で表わされるVj/Vkベクトルレ
ングスカウンタをトリガする為に、信号323を送る。
信号323は、8ビットよりなる。(ベクトルレジスタ
と連係する各ベクトルレングスカウンタ310に対して
1ビット)。
【0020】代表的に言えば、ベクトルリード動作の間
は、VjはVkと異なるであろう。しかし、本実施の形態
では、VjはVkと同じベクトルレジスタとしてもよいの
で、VjベクトルレングスカウンタとVkベクトルレング
スカウンタは、同じ装置であってもよい。
【0021】Vj/Vkベクトルレングスカウンタ310
は、応用ソフトウエアにより発せられるプロセサ指令、
ロードベクトルレングスによって初期化される。Vj/
Vkベクトルレングスカウンタ310がゼロに減じる
と、それは、図6のVj/Vkリードアドレスカウンタ4
01をクリアするエンドリードVj/Vk信号317を送
り出す。又、Vj/Vkベクトルレングスカウンタ310
は、対応するリードビジイビットをクリアする為に、リ
リースVj/Vk信号318を送り出す。
【0022】ベクトルシーケンス制御308も、又、V
iライトディレイカウンタ309を作動さす為に信号3
15を発する。信号315は、8ビットよりなる(ベク
トルレジスタと連係する各ライトディレイカウンタ30
9に対して1ビット)。Viライトディレイカウンタ30
9により受けられたゴウ機能ユニット信号322は、使
用中の機能ユニットと、宛先ベクトルレジスタに書き込
む前に要求されるディレイの量を示す。どの機能ユニッ
トのディレイが必要かを決定する知能は、Viライトデ
ィレイカウンタ309に含まれている。
【0023】Viライトディレイカウンタ309がゼロ
に減じると、それは、Viベクトルレングスカウンタ3
11をトリガする信号ゴウライト321を発する。Vi
ベクトルレングスカウンタ311は、図6に示すViラ
イトアドレスカウンタ402とViライトイネイブルラ
ッチ403に入力されるゴウライトVi信号319を送
り出す。
【0024】Viベクトルレングスカウンタ311は、
応用ソフトウエアにより発せられるプロセサ指令、ロー
ドベクトルレングスにより初期化される。リリースVi
信号320と、エンドライトVi信号324は、カウン
タがゼロに減じた時、Viベクトルレングスカウンタ3
11により送り出される。リリースVi信号320は、
Viライトビジイビットをクリアする。その後、そのベ
クトルレジスタを用いて別の指示を発することができ
る。エンドライトVi信号324は、図6のViライトア
ドレスカウンタ402をクリアする。
【0025】第1の実施の形態の為のベクトルレジスタ
メモリの概略ブロック図を図6に示す。ベクトルレジス
タ404は、3つの入力を含む。即ち、6ビットリード
アドレス406と、6ビットライトアドレス407と、
ライト0/1信号408である。ベクトルレジスタ40
4は、代表的メモリ装置が、唯一のアドレス入力を持つ
のみであるという点で独特なものである。この装置は、
2つの別々のアドレス入力、即ち、リードに対して1
つ、そして、ライトに対して1つの入力を有する。各レ
ジスタチップは、64×4ビットである。16のこの様
なチップは、各要素が64ビットを含む64要素のベク
トルレジスタを構成する。
【0026】Vj/Vkリードアドレスカウンタ401
は、ゴウリードVj/Vk信号316を受けると、1だけ
増分し、それが、エンドリードVj/Vk信号317を受
ける迄、タイムピリオド毎に増加しつづける。Viライ
トアドレスカウンタ402は、アクテブゴウライトVi
信号319がある場合、各タイムピリオド毎に1づつ増
分する。ゴウライトVi信号319は、又、Viライトイ
ネイブル403で、結果データ410に合併している。
この合併の為、ライト0/1信号408が生じる。この
信号408は、単にライトストローブであるばかりでは
なく、又、ベクトルレジスタ404が貯える様に指示さ
れた、全64ビットのワードを提供する。
【0027】ベクトルレジスタ404からのリードデー
タ409は、それが書き込まれる為に戻って来る前に機
能ユニット405へ行く必要がある。その為、リードア
ドレス406は、常にライトアドレス407より進んで
いる。リードアドレスカウンタ401が、ライトアドレ
スカウンタ402より少なくとも1だけ大きい限りは、
回路は、テールゲーティングモードで作動することがで
きる。
【0028】指令V0=V0+V0のタイミングダイヤ
グラムであるFig−2は、テールゲーティングの観念を
明らかにする助けとなるであろう。水平軸に沿うグラデ
ーションは、タイムユニットを表わす。ダイヤグラムの
上半分は、オペランドベクトルレジスタの制御シーケン
スを表わす。又、ダイヤグラムの下半分は、宛先ベクト
ルレジスタの制御シーケンスを表わす。
【0029】加算指令を実行する為には、オペランドベ
クトルレジスタを読み取り、その内容を、処理の為、機
能ユニットに伝達する必要がある。タイムピリオドt0
において、V0リードリクエストの信号が発せられる。
この信号は、指令が発せられる前に、指令デューダによ
り発生される。
【0030】V0リードリクエスト信号に関連して、所
望のベクトルの為の2つの状況ビット、即ち、リードビ
ジイビット及びライトビジイビットを調べる必要があ
る。V0リードビジイ及びV0ライトビジイが、ベクト
ルレジスタV0がオペランドとしても、又、宛先として
も用いられていないことを示すと、シグナルイッシュV
0リードが、指令の進行を許す様に指令デコーダに送り
戻される。
【0031】ベクトルレジスタV0をオペランドとして
用い得る様にするには、該ベクトルレジスタは、リード
又はライト操作で、すでにビジイの状態であってはなら
ない。もし、他のベクトルレジスタが、オペランドとし
て用いられているならば、制御シーケンスは、ダイヤグ
ラムの上半分の様な状態になるであろう。しかし、ダイ
ヤグラムは、シーケンスV0=V0+V0に対して完了
している。
【0032】タイムピリオドt0において、V0ライト
リクエストの信号も発信される。ベクトルレジスタV0
は、加算指令の結果の宛先を与える。ライトビジイビッ
トを介して、チェックする必要があるものは、ベクトル
レジスタが、すでに、以前の指令の宛先になっていない
ということである。次いで、シグナルイッシュV0ライ
トが、指令イッシュ制御へ送り返される。
【0033】タイムピリオドt3において、指令の発行
によりV0ベクトルシーケンス制御(タイミングダイヤ
グラム中V0制御とラベル付)が、ゴウリードV0とい
う信号を送り、V0リードビジイをセットする。V0リ
ードアドレスカウンタ(タイミングダイヤグラム中V0
リードアドレスとラベル付)は、すでに、要素0の為に
初期化されている。ゴウリードV0信号は、V0リード
アドレスカウンタを、タイムピリオドt4で増分させ
る。その為、要素0は、ベクトルレジスタから読み取ら
れ、タイムピリオドt5は、要素1の為のアドレスを提
供する。この読み取り及び増分動作は、全ての要素が読
み取られてしまうまで、後続するタイムピリオドを通じ
て続けられる。タイムピリオドt67で全ての64の要
素が読み取られると、V0ベクトルシーケンス制御は、
V0リードビジイをクリアする。エンドリードV0信号
が同じピリオドの間に、要素アドレスをゼロにリセット
するV0リードアドレスカウンタに送られる。
【0034】オペランドは、機能ユニットに伝送され
る。いくらかのタイムピリオドの後に、結果のデータ
が、その宛先であるV0ベクトルレジスタに送り戻され
る。理論的には、ベクトルレジスタより読み取られた要
素は、後続するタイムピリオドで新しいデータで書き込
むことができる。
【0035】図3および図4の下半分を参照して、タイ
ムピリオドt3では、V0ライトアドレスカウンタ(タイ
ミングダイヤグラム中V0ライトアドレスとしてラベル
付)は、エレメントアドレスOを含む。指令の発行によ
り、V0ライトビジイをセットし、V0ベクトルシーケ
ンス制御は、ゴウライトV0信号を発するV0ライトア
ドレスカウンタは、2つのタイムピリオドt3とt4の
間、要素0のままとなる。V0リードアドレスカウンタ
が1で、V0ライトアドレスカウンタが0(タイムピリ
オドt5)になると直に、要素0が新しいデータで書き込
まれる。その為、読み取りと書き込みとの動作の間に、
1タイムピリオドの差がある。通常、読み取りと書き込
み動作の間に、機能ユニットタイムがある。
【0036】機能ユニット遅れ時間により、読み取られ
ている要素は、同じタイムピリオドには書き込まれない
ということが保償される。図3および図4において、V
0ライトアドレスカウンタは、要素アドレス0で、2つ
のタイムピリオドの間、保持されているのが示されてい
る。実際において、Viライトアドレスカウンタは、図
5のViライトディレイカウンタ309により示される
タイムピリオドの数の間、要素アドレスゼロに保持され
る。
【0037】タイムピリオドt5において、一たび書き
込み動作がはじまると、V0ライトアドレスカウンタ
は、V0リードアドレスカウンタと同じ様に、各タイム
ピリオド毎に、歩進する。各要素が、宛先ベクトルレジ
スタに入って来ると、それは、読み取られているアドレ
スよりも常に少なくとも1カウントおくれている、現在
アドレスされている要素内に書き込まれる。V0ライト
アドレスカウンタは、全64要素を通じて、その時点
で、V0ベクトルシーケンス制御がV0ライトビジイを
クリアし、要素アドレスをゼロにリセットするV0ライ
トアドレスカウンタにエンドライトV0信号を伝達する
時点である、タイムピリオドt68迄増分する。
【0038】この実施の形態では、共通メモリは、テー
ルゲーティングの目的で、機能ユニットとして取り扱う
ことができる。共通メモリからベクトルレジスタへ送ら
れつつあるベクトルは、以前の指令で用いられているベ
クトルをテールゲートすることができる。機能ユニット
時間に基づいて、テールゲーティング動作のタイミング
を取るかわりに、メモリトランスファータイムが用いら
れる。
【0039】第2の実施の形態 本発明の第2の実施の形態を図7、図8、図9、図1
0、図11、図12、図13、図14、図15、図1
6、図17、図18、図19、図20に示す。
【0040】第2の実施の形態におけるベクトルレジス
ターは、4バンクに区画されている。図15および図1
6に示すように、これらの4バンクは、それぞれバンク
0、バンク1、バンク2、バンク3として識別してあ
る。また、図15および図16に示すように、各バンク
は、4番目毎のエレメントを得ている。即ち、バンク0
の場合では、エレメント0、エレメント4、エレメント
8、・・・・のようにエレメントを得ている。
【0041】レジスターチップは、高速型16x4メモ
リーである。レジスターチップのサイクル時間は、2期
間(time period)である。レジスターの各バンクには、
4期間おきにアクセスがなされる。従って、テールゲー
トモードで動作しているのでもなければ、バンクは2期
間アクティブになり、2期間休止する。この2期間アク
ティブ、2期間休止のシーケンスは無期限に繰り返され
る。
【0042】各バンクにはそれなりのアドレスレジスタ
ーがあって、図15および図16ではそれをチップアド
レス1001から1004として示してある。エレメン
トアドレスカウンター1005は、6−ビットアドレス
カウンターである。レジスターがアクセスされている
と、そのカウンターは各期間毎にそのカウント値を順次
カウントアップする。アドレスの最下位の2ビットはバ
ンクセレクトビット1006である。最上位の4ビット
は、チップアドレスビット1007である。チップアド
レス1008は、最上位の4ビットを他のバンクに論理
出力するレジスターにすぎない。バンクセレクトデコー
ダー1009は、チップアドレス信号1020がアクセ
スすべきバンクを選択するようになっている。
【0043】テールゲート作用(tailgating)を行うため
には、テールゲート命令のために書込みアドレスを発生
すべく、ベクトルアドレスオフセット1010として示
した下方のパスが利用される。このベクトルアドレスオ
フセット1010は4ビットであって、発生時にレジス
ター1011に送られる。レジスター1011の論理出
力は、アンドゲート1027を介して各ベクトルレジス
ター毎のレジスター1012に供給される。テールゲー
トV0信号1025も発生時に送られる。テールゲート
V0信号1025がアクティブになれば、ベクトルアド
レスオフセットはアンドゲート1028を介して、選択
されたベクトルレジスターに対応するベクトルアドレス
オフセットレジスター1012に保持される。
【0044】テールゲート命令のためにアドレスを発生
するには、チップアドレス1008からの4ビット出力
を減算器1013に供給して、レジスター1012に保
持されているベクトルアドレスオフセットと減算する。
減算器1013の出力は、調整済みアドレス1019と
呼ばれるもので、チップアドレス1001に戻される。
このオフセットは機能ユニットの遅延時間とテールゲー
ト作用に伴う二つの命令が発生される間に経過する時間
とに関係のあるものである。
【0045】バンクサイクル期間は4期間であるから、
エレメント0のアドレスは最初の2期間の間にチップア
ドレス1001に記憶される。調整済みアドレス101
9は、後の2期間の間にチップアドレス1001に記憶
される。減算は、4エレメンとの各グループ毎に一回実
行されるだけで充分である。次のバンクにアクセスする
ためには、最初の調整済みアドレス1019を次のバン
クのチップアドレスに伝送する。各期間毎にエレメンと
が書き込まれるから、減算器は各バンク毎に用意する必
要はない。チップアドレスは最初の4つの標準(referen
ce)に付き同一になることになっていて、次の4つのア
ドレスに付き1だけインクレメントされる。エレメント
アドレスカウンター1005からのバンクセレクトビッ
ト1006は、どのバンクを選択したかを判定するよう
になっている。本実施の形態におけるテールゲート作用
に必要な条件の一つとして、ベクトルレジスターに結果
が各期間毎に順次供給されている必要がある。各期間毎
に結果を順次供給しないような操作では、テールゲート
作用が行われない。
【0046】本実施の形態では、テールゲート作用はマ
ルチプレックス操作である。2期間おきに新たなアドレ
スが、最初は読出し信号が、その後には書込みアドレス
がチップアドレス1001から1004に順次送り込ま
れる。操作がテールゲート作用でない場合、シーケンス
は、2期間読出し叉は書込みアドレス、2期間「構わな
い」("don't care")、2期間読出し叉は書込みアドレ
ス、などと言った具合になる。前述の第1の実施の形態
とは異なって、第2の実施の形態では読出しビジーや書
込みビジーの間、各ベクトル毎に別々の予約ビットを含
んでいない。その代わりに、二つの考えられるバンクサ
イクルの内の一つが使われることで予約の代用をなして
いる。つまり、最初のバンクサイクルにある予約フラグ
があり、後のバンクサイクルにも別の予約フラグがある
のである。
【0047】図17は、一つのベクトルレジスターのた
めのベクトルレジスター予約回路を示している。110
1、1102、1103はそれぞれビジーフラグないし
予約フラグを示す。前述したように、各ベクトルレジス
ターバンクのサイクル時間は2期間であって、4期間お
きにバンクに対してアクセスがなされる。テールゲート
作用時には、最初のサイクルが読出しであり、後のサイ
クルは書込みである。
【0048】V0ビジー−1として示したラッチ110
1は、4期間サイクルの内の最初の2期間を予約したこ
とを示すために使われる。V0ビジー−2として示した
ラッチ1103は、後の2期間を予約するのに用いられ
る。このラッチは、ベクトルレジスターがテールゲート
モードで動作しているときにセットされる。V0ビジー
−3として示したラッチ1102は、タイミングのため
に用いられるコンポジットである。
【0049】V0ビジー−1は、命令発生時(V0ビジ
ー−2 1103はまだセットされていないとして)に
ベクトルレジスターのリクエストをオンにする。V0ビ
ジー−2 1103は、V0ビジー−1 1101が既
にセットされている場合に命令発生時にベクトルレジス
ターのリクエストをオンにする。V0ビジー−3 11
02は、V0ビジー−1 1101がセットされている
間にホールドされており、スロット時が発生するときに
は、V0ビジー3は1期間クリアーされる。V0ビジー
−2 1103が一旦セットされると、リリースV0信
号1104がベクトルアドレスコントロールから入るま
で、セットされたままである。テールゲート作用時に
は、二つのV0リリース信号1104が用いられる。二
番目のリリース信号は、最初のリリース信号がV0ビジ
ー−1 1101をクリアーしている間に、V0ビジー
−2 1103をクリアーする。V0ビジー−2 11
01とV0ビジー−2 1103との両方がクリアーさ
れていると、V0ビジー−31102もクリアーされ
る。
【0050】V0ビジー−1は、アンドゲート1107
と1109との論理和の出力に応じて1108によりセ
ットされる。アンドゲート1107は、リリースV0信
号1104の反転信号がそれをクリアーするまで、V0
ビジー−1の内容をホールドする。他方、アンドゲート
1109は、1105で示すリクエストV0が報知さ
れ、V0ビジー−1 1101が用いられていないとき
に、V0ビジー−1 1101を命令発生時にセットさ
せる。
【0051】V0ビジー−3は、アンドゲート111
0、1112、1113との論理和の出力に応じて11
1によりセットされる。アンドゲート1110には、V
0ビジー−1 1101の出力と信号V0スロット時1
208の反転信号とが入力されている。また、アンドゲ
ート1112は、1105で示すリクエストV0が報知
されると命令発生時1106にV0ビジー−3 110
2をセットする。アンドゲート1113は、V0ビジー
−2 1103がセットされ、且つ、V0ビジー−1
1101がセットされるか、叉は、1104で示すリリ
ースV0が報知されていないときに、V0ビジー−3
1102をホールドする。
【0052】V0ビジー−2 1103は、アンドゲー
ト1116と1113との論理和の出力に応じて111
5によりセットされる。アンドゲート1116は、V0
ビジー−1 1103がセットされ、1105で示すリ
クエストV0が報知されると命令発生時1106にV0
ビジー−2 1103をセットする。他方、アンドゲー
ト1113は、オアゲート1114の出力が1の時にV
0ビジー−1 1103をホールドする。オアゲート1
114には、V0ビジー−1 1101とリリースV0
信号1104の反転信号とが入力されるようになってい
る。
【0053】図18は、テールゲートスロット時回路を
示したものである。テールゲート命令の機能ユニット時
間に応じて、書込み作用がベクトルレジスターに対して
現に進行している読出し作用と同期する頃に命令が発生
していなければならない。図18の回路では、ラッチ1
201、1202、1203、1204を用いてこの同
期機能を達成するために、4つの異なったスロットを利
用している。各スロットは、記憶サイクルにおける4期
間のいずれかの期間に対応している。
【0054】最初の命令が発生した後の2期間におい
て、ラッチ1201、1202、1203、1204か
らなるスロットカウンターは、スロット2において計数
を開始する。ラッチ1205、1206は、次の命令が
早まって発生することがないようにしている。即ち、テ
ールゲート作用時に次の命令に対して2期間の遅延が与
えられている。スロットカウンターは、アンドゲート1
215からの出力によりセットされる。このアンドゲー
ト1215には、1105で示すリクエストV0、V0
書込みリクエスト1317の反転信号、リクエストメモ
リー1207の反転信号、V0ビジー−1 1101の
反転信号、発生が入力されるようになっている。リクエ
ストV0信号1105は、ベクトルレジスターが最初に
リクエストされると時のみ、スロットカウンターをして
計数開始させる。書込みリクエスト信号1317の反転
信号を利用することにより、ベクトルレジスターリクエ
ストが読出し動作のためになされるのであれば、スロッ
トカウンターは計数を開始する。リクエストメモリー信
号1207の反転信号は、共通の記憶動作時にテールゲ
ート作用を阻止するものであって、これが本実施の形態
における唯一の制限である。V0ビジー−1信号110
1の反転信号は、スロットカウンターが動作時に再び初
期化されるのを防いでいる。発生信号1106は、命令
発生時のみにスロットカウンターが初期化されるように
している。
【0055】最初の命令が発生された後、テールゲート
命令が解読、発生されるものと仮定する。この場合、テ
ールゲート命令は、最初の命令の直後に実行される必要
はない。最初の命令の発生時とテールゲート命令の発生
時との間に、いくつかの関係のない命令が実行されるこ
とがある。命令の種類によっては、4つの「リクエスト
スロット」信号の内の何れか一つ(例えば、リクエスト
V0スロットO信号1216)が命令解読器により伝送
される。例えば、ベクトル論理積命令は、スロットOを
リクエストするようになっている。従って、解読プロセ
スにおいては、リクエストV0スロットO信号1216
が伝送される。異なった機能ユニット動作により、書込
み動作を同期させるために別のスロットリクエストがな
されることがある。
【0056】図17におけるV0ビジー−3 1102
により発生された信号は命令の発生を阻止しているか
ら、この信号はテールゲート命令が発生されるために
も、1期間だけ中断しなければならない。図18の下半
分に示したように、リクエストV0スロットO信号12
16は、1209によりラッチ1201からのV0スロ
ットO信号と論理積がとられて、V0スロット時信号12
08を発生する。同様に、他のスロットに対するリクエス
トもそれに対応するラッチ1201、1202、120
3、1204からの出力との論理積がとられるようにな
っている。それに伴って得られる信号はオアゲート12
14を介してV0スロット時信号1208をセットする
ようになっている。
【0057】このV0スロット時信号1208は、図1
7に示したベクトルレジスター予約回路に入力される。
V0スロット時信号1208の反転信号は、1110に
よりV0ビジー−1 1101からの出力と論理積がと
られ、その後1111によりV0ビジー−3 1102
への入力として論理和がとられる。前述のようにV0ビ
ジー−3 1102により伝送された信号は命令発生を
ホールドする。V0スロット時信号1208の反転信号
は、1期間だけV0ビジー−3 1101をクリアーす
るので、他と抵触するものがなければ命令が発生され
る。
【0058】テールゲート命令が発生すると、V0ビジ
ー−2 1103が、発生信号1106とV0ビジー−
1 1101からの出力とに応じて1116による論理
積演算を介してセットされる。V0ビジー−2 110
3は次のテールゲート作用が同一ベクトルレジスターに
対して行われるのを防いでいる。V0ビジー−2 11
03の内容はV0ビジー−1 1101の内容との論理
積がとられて、V0ビジー−3 1102に対する入力
を発生するから、V0ビジー−3 1102が次のV0
スロット時信号1208に応じてクリアーできなくなっ
ている。
【0059】図19において、ベクトルアドレスコント
ロール回路には、エレメントアドレスカウンター100
5と、可変遅延回路1304と、ノーマルベクトル長カ
ウンター1302と、テールゲートベクトル長カウンタ
ー1301とが含まれている。
【0060】可変遅延回路1304は、命令発生時に生
ずる書込みV0信号1317によりトリガーされる。遅
延量は、どの機能ユニットを用いるべきかを示す機能ユ
ニット実行信号(Go Functional Unit signal)1315
とテールゲート信号1330とによって決められる。ノ
ーマル対テールゲート命令(normal vs. tailgating ins
tructions)に対して異なった遅延量が使われている。適
当な時間だけ遅延させると、可変遅延回路1304から
書込み開始信号1328が発生する。ラッチ1328は
この書込み開始信号1318によってセットされて、ベ
クトルレジスターに書込みモード信号を供給する。ラッ
チ1328からのこの書込みモード信号は、伝送された
エレメントアドレスが書込み動作のためのものであると
示している。
【0061】書込み開始信号1318は、1309によ
り命令解読器からの読取り実行V0信号1319との論
理和がとられる。オアゲート1309からの出力はラッ
チ1305をセットするようになっている。従って、ラ
ッチ1305は、読出し動作実行直後か、叉は、ノーマ
ル書込み動作のための所定遅延時間後にセットされる。
ノーマルベクトル長カウンター1302の動作は、ラッ
チ1305からの出力によりイネーブルされる。ノーマ
ルベクトル長カウンター1302が値1をホールとする
と、ラッチ1305がそれによりリセットされて、ノー
マルベクトル長カウンター1302を不動作にする。ノ
ーマルベクトル長カウンター1302は、前述のイネー
ブルが取り消されるまでに0へとカウントダウンする。
【0062】テールゲート作用の最中に、書込み開始信
号1318が1314によりテールゲート信号1330
との論理積がとられ、アンドゲート1314からの出力
によりラッチ1306がセットされる。ラッチ1306
からの出力により、テールゲートベクトル長カウンター
1301がイネーブルされる。テーブルゲートベクトル
長カウンター1301が値1をホールドするようになる
と、ラッチ1306がそれによってリセットされて、テ
ールゲートベクトル長カウンター1301を不動作にす
る。テールゲートベクトル長カウンター1301は、前
述のイネーブルが取り消されるまでに0へとカウントダ
ウンする。
【0063】ノーマルベクトル長カウンター1302と
テールゲートベクトル長カウンター1301とは、何れ
かのカウンターが値1に達するとオアゲート1312を
介してリリースV0信号1104を供給する。入力13
22と1323とで示したように、両方のカウンターは
各期間毎にカウントダウンする。回路1324は、両方
のカウンターが同時に1へとカウントダウンすると、余
分のリリースV0信号1104を発生する。
【0064】テールゲートベクトル長カウンター130
1は、テールゲート作用のみに厳格に利用する。このテ
ールゲートベクトル長カウンター1301は、ノーマル
ベクトル長カウンター1302と基本的には同一の機能
をなす。ノーマルベクトル長カウンター1302につい
ていえば、、テールゲート信号の反転信号1330は、
アンドゲート1310を介してベクトル長データ132
6をそのカウンターにロードする。それに対して、テー
ルゲート信号1310は、アンドゲート1313を介し
てベクトル長データ1326をテールゲートベクトル長
カウンター1301にロードする。実行V0信号132
5は、両方のアンドゲート1310と1313での命令
発生を示す。 ベルト長カウンタ1301又は1302
は、両カウントがゼロでない限りは、エレメントアドレ
スカウンタ1005を使用可能とする。ノーマルベクト
ル長カウンタ1302からの出力は、1329のラッチ
1305からの出力と論理積(AND)される。テールゲ
ートベクトル長カウンタ1301からの出力は、131
1のラッチ1306の出力と論理積される。アンドゲー
ト1329と1311からの出力は、オアゲート130
7に入力を与え、該オアゲートは、代わって、エレメン
トアドレスカウンタ1005とステップV0ラッチ13
08の両方へ使用可能信号を送る。1308で示すステ
ップV0よりの出力は、エレメントアドレスカウンタ1
005の値が有効であることをベクトルレジスタメモリ
に指示する。
【0065】ノーマルベクトルレングスカウンタ130
2は、カウントが値7以下になるといつでも、禁止テー
ルゲート信号1321を発信する。信号1321は、命
令発行に関する問題を防止する為に用いられる。もし、
読み取りカウントが余りにも小さくなると、信号132
1は、テールゲーティング命令の開始を禁止する。その
時点でテールゲーティング命令が進行中の場合は、該命
令は、信号1321により影響を受けない。
【0066】エレメントアドレスカウンタ1005は、
入力1327により指示された各タイムピリオドにおい
て増分する。エレメントアドレスカウンタ1005はリ
リースV0信号1104によってクリアされる。テール
ゲーティングを行う場合は、第1のリリースV0信号1
104は、エレメントアドレスカウンタ1005により
無視される。 テールゲートベクトル長カウンタ130
1からのイネーブル信号1307は、エレメントアドレ
スカウンタ1005に、最初の命令に使われた長さを超
えてカウントさせることができる。この為、テールゲー
ティング命令が、エレメントアドレスカウンタ1005
の値からアドレスオフセットを差し引くことにより、ベ
クトルレジスタにデータを書きこむことを可能にする。
【0067】図20は、ベクトルアドレスオフセット回
路を示す。4ビットレジスタV0アドレスオフセット1
409は、オアゲート1419によりセットされる。オ
アゲート1419は、その入力に、アンドゲート141
8,1420,及び1421からの出力を受ける。アンド
ゲート1421は、命令発行時に、V0アドレスオフセ
ットレジスタ1409を初期化する。アンドゲート14
21への入力は、アンドゲート1422からの出力によ
りゲートされる値2である。アンドゲート1422は、
その入力に、信号,1105で示すリクエストV0,発生
(Issue)1106、及びV0ビジー−1 1101の補
数を受ける。かくして、V0アドレスオフセット140
9は、命令発令時に、ベクトルレジスタV0にリクエス
トがなされ、又、V0がすでにビジーでない限りは、値
2で初期化される。
【0068】V0アドレスオフセット1409の内容
は、アンドゲート1420の出力により保持される。ア
ンドゲート1420への他の2つの入力は、信号V0ビ
ジー−1 1101とV0スロット1 1202の補数
である。その為、V0アドレスオフセット1409の
「ラップ アラウンド」(wrap around)を生じ、一方、ベ
クトルレジスタV0は、ビジーのままであり、V0スロ
ットカウンタは、スロット1を指示しない。
【0069】V0アドレスオフセット1409に保持さ
れた値は、V0スロットカウンタがスロット1を指示す
る度毎に増分される。アンドゲート1418は、その入
力に、信号V0スロット1 1202と、加算器140
8により、1つだけ増分されたV0アドレスオフセット
1409からの値を受ける。
【0070】全てのベクトルレジスタに対するアドレス
オフセットは、単一の選定ネットワーク1401にファ
ンイン(fan in)される。所望のアドレスオフセットは、
宛先ベクトルレジスタを識別するi−デジダネータ信号
1417によって選ばれる。アドレスオフセットは、送
出され、レジスタ1407に保持される。ベクトルアド
レスオフセット1010は、命令発令時においてのみ送
られるので、唯一つのアドレスオフセットを1401で
選ぶ必要があるのみである。次いで、ベクトルアドレス
オフセット1011に保持された値は、図15および図
16に示す様に、全ての8個のベクトルレジスタにファ
ンアウト(fan out)される。ベクトルアドレスオフセッ
トレジスタ1012(8個の中の1つ)は、対応するテー
ルゲート信号1025(8個の内の1つ)が存在しさえす
れば、命令発令時に、ロードされる。
【0071】レジスタ1407からの出力は、4つのア
ダー1402,1403,1404及び1405に送られ
る。これらのアダーからの出力は、選定ネットワーク1
406に入力を与える。命令発令時に、4つの信号の1
つは、アダー出力のうちのどれを選ぶかを指示する。こ
れらの信号は、図20では、調整オフセット+3 14
23、調整オフセット+2 1424、調整オフセット
+1 1425、及び調整オフセット+0 1426と
して、ラベル付されている。1つの信号のみが、常にア
クチブとなっている。次いで、各信号は、1組のラッチ
1415に保持され、信号1416を介して、選定ネッ
トワーク1406を制御する。
【0072】図15および図16にも示される、結果と
してのベクトルアドレスオフセット1010は、テール
ゲーティング演算で調整アドレス1019に到達する為
にチップアドレス1020から差し引く必要がある数で
ある。調整アドレス1019により測定されるものは、
第1命令の発令とテールゲーティング命令の発令との間
の時間の量と、テールゲーティング命令の機能ユニット
の遅れ時間との和である。その間に、命令が如何なる回
数でも発せられる可能性がある。図20に示す様に、第
1の命令が発せられると、ベクトルアドレス1409
は、値2で初期化され、スロット1信号1202によっ
て4期間毎に増分される。最終時に、テールゲーティン
グ命令が発せられる。テールゲーティング命令の発令時
に、アドレスオフセット1409は、値0,1,2,又は
3により調整される。この最終調整は、テールゲーティ
ング命令の機能ユニットタイムに左右される。
【0073】図7ないし図14のタイミングダイヤグラ
ムは、第2の実施の形態において実施されたテールゲー
ティングに関する発明の説明の助けとなるであろう。
【0074】図7は、代表的なテールゲーティング動作
を図示するタイミングダイヤグラムである。ダイヤグラ
ムは、第1命令(V2=V0+V1)をテールゲートする第
2命令(V0=V3&V4)、及び、第2命令をテールゲー
トする第3命令(V3=V5>Ak)を示す。図7のタイミ
ングダイヤグラムでは、水平軸心に沿ったグラデーショ
ンは、期間を表わす。3セグメント(ダッシュ、実線、
ダッシュ)に分断された水平方向の線は、それぞれ、オ
ペランドを機能ユニットに送るのに要する時間、機能ユ
ニットが必要とするタイムピリオドの数、及び、結果を
宛先ベクトルへ送るのに要するタイムピリオドの数を表
わす。伝達時間は、機能ユニットが、ベクトルレジスタ
と同じモジュールにあるかどうかによって変動する場合
がある。これは、例えば、ロジカル機能ユニットを用い
る第2命令において、そうである。
【0075】図7のタイムピリオドでは、ベクトルレジ
スタV0とV1は、オペランドを整数機能ユニットへ供
給しはじめる。図7の続く線は、後続の要素及び命令を
介するサイクルを示している。オペランドは、期間当り
1要素の割合で供給される。期間t14において、結果
が、第2命令、V0テールゲーティング命令から戻り始
める。その為、ベクトルレジスタV0は、期間t14に
おいて、書き込み動作の準備ができている必要がある。
第1の結果である要素ゼロは、第1命令に対して要素8
を読み取るのに続くピリオドの間に書き込まれる。要素
9が読み取られた後で、要素1が書き込まれる。要素1
0が読み取られた後で、要素2が書き込まれる。これ
は、テールゲーティング操作の間、ベクトルレジスタV
0への、又は、ベクトルレジスタV0からのデータの基
本的な流れを示す。
【0076】命令発行制御では、テールゲーティング命
令を調べて機能ユニットが起す遅れの量を知り、どの期
間で、第1の結果が、要素ゼロでベクトルレジスタに貯
えられる様に戻るかを決定する必要がある。この情報に
基づいて、ベクトルレジスタ制御は、それが、ベクトル
レジスタのバンクサイクル(bank cycle)と同期化する迄
第2の命令を遅らせる。
【0077】第2の好ましい実施の形態では、最も速い
場合、コンピュータは、2つの期間毎に、1度命令を発
することができる。テールゲーティング命令の場合、第
2の命令が発し得る最も早い期間は、期間t5である。
図7の例では、第2の命令は、それが、バンクサイクル
と同期化していることを確認する為に、更に追加のもう
1期間の間、保持される。これにより、ベクトルレジス
タ要素の読み取りと、書き込みが、正しい、シーケンス
で行われることが確実となる。図7は、テールゲーティ
ングに対して同期化する為の保持命令発行に関して画く
ことができる。
【0078】テールゲーティングが無い場合は、第1命
令の全結果要素が貯えられる迄、第2命令の発行を押え
る様にするレジスタの衝突が生じるであろう。
【0079】図8および図9の命令発行タイミングダイ
ヤグラムでは、タイムt0で、加算命令が発せられる。
加算命令は、V0ビジー−1とV0のビジー−3とをセ
ットする。V0ビジー−3が、テールゲーティング命令
を発令させる単一の期間の間クリアする場合を除いて、
両者は、加算操作の間セットされたままとなる。第3の
ラインは、テールゲートスロットタイム操作を示す。2
つの初期遅れを生じ、ついで、V0スロットカウンタ
は、リングカウンタとして作動を始める。第4のライン
は、V0アドレスオフセットを示す。それは、常に2の
値で初期化され、次いで、V0スロット1がV0スロッ
トカウンタにより指示される度毎に、V0オフセット
は、1だけ増分される。第5のラインは、信号リクエス
トV0スロット3を示す。リクエストV0スロット3の
信号は、発行を待っているテールゲート命令により発生
される。信号ゴウリードV0は、加算命令により発生さ
れ、ベクトルレジスタV0の各要素を読み取る様に、エ
レメントアドレスカウンタ(タイミングダイヤグラム中
V0エレメントアドレスとラベル付)をトリガする。最
後のラインは、ベクトルレジスタから各エレメントが読
み取られるにつれて、減少するノーマルベルトル長カウ
ンタ(タイミングダイヤグラム中V0長カウンタとラベ
ル付)内の100(オクタル−octal)のベルトル長を仮定
する。
【0080】タイムピリオドt4で、V0スロット3が
示され、信号リクエストV0スロット3がアクチブとな
る。これらの2つの信号の論理和により、他の全発行条
件が合致すれば、テールゲーティング命令の発令を可能
とする単一期間の間、V0ビジー−3がクリアされる。
この命令の発行によりV0ビジー−2、ライトV0がセ
ットされ、期間t7でテールゲートベクトル長カウンタ
(タイミングダイヤグラム中V0T.G.長カウンタとラ
ベル付)が初期化される。
【0081】期間t5のスロット0の表示V0は、もう
一度V0ビジー−3をセットし、V0アドレスオフセッ
トを1カウントだけ増分する。1たび、第2命令が発せ
られると、調整V0アドレスオフセットはベクトルレジ
スタへ伝送される。調整は、命令の発行と同じ期間に行
われる。かくして、調整アドレスに用いられるV0アド
レスオフセットは、値2を含む前の期間からのV0アド
レスオフセットである。この点から、スロットカウンタ
とV0アドレスオフセットは重要ではない。次に、図1
0および図11を参照して、期間t4までに、エレメン
トアドレスカウンタは、エレメントアドレス2にある。
同じ期間に、ノーマルベクトル長カウンタは、値75
(オクタル)迄減じている。ダイヤグラムの上部の4ライ
ンは、4つのベクトルレジスタバンクの各々に生じるベ
クトルレジスタメモリ作動を図示する。初めの2つの期
間の間、データは、ベクトルレジスタバンクから読み取
られる。次の2つの期間の間では、バンクは、休止状態
にあるが、又は、テールゲーティング動作が生じるにつ
れて新しいデータを書き込んでいる。期間t8,t9及びt
10は、テールゲートベクトル長カウンタが、減少を始
める前に、3期間の間保持されていることを示してい
る。図10および図11にも示す期間t9のボックス
は、V0アドレスオフセットである。伝播(propagatio
n)及びファンアウト(fan out)の遅れにより、調整オフ
セットの実際の発行と、それが、ラッチされ保持される
迄の間には、期間が存在する。
【0082】次いで図12および図13を参照して、期
間t14では、最初の書き込み動作が開始される。期間t
13に示す減算は、有効な減算を示し、他の時点でも減
算は行われているが、それは、ただ使用されないままと
なっている。後続の書き込み動作の為の正しいV0チッ
プアドレスを与える為に、4期間毎に、V0チップアド
レスから、V0アドレスオフセットが差し引かれてい
る。期間t14から前方では、ベクトルレジスタバンク
は、同じ期間で読み取り及び書き込みを行い、それによ
り、本発明のテールゲーティングが図示されている。此
の例では、読み取り動作は、書き込み動作の前に完了す
るが、読み取りと書き込みのベクトル長は、完全に別個
のものであるので、読み取り動作の前に、書き込み動作
を完了することもできる。
【0083】次に図14を参照して、ベクトルレジスタ
の予約は、2つの動作の最後が完了する迄保持される。
両長カウンタは、独立して、ゼロに減じ、ついでリリー
スV0信号を送出する。この例では、読み取り動作によ
り発生した最初のリリース信号は、V0ビジー−1をク
リヤする。又、この例では、書き込み動作により発生し
た第2のリリースV0信号は、V0ビジー−2及びV0
ビジー−3をクリヤする。
【0084】本明細書に開示のテールゲーティング技術
は、代表的な応用において遭遇するタイプの計算におい
て、処理スピードの向上に有意義な改善をもたらす。テ
ールゲーティングは、前述の米国特許第4,128,88
0に開示した連鎖(chaining)技術とは別個の独立したも
のであるが、必要に応じて、又、論理的スペースが許容
されるならば、性能を更に改良する為連鎖(chaining)に
関連して用いてもよい。
【0085】以上、2つの特定のコンピュータハードウ
エアの形状を、本明細書における本発明の好ましい実施
の形態とに図示し、かつ、説明したが、同様の目的を達
成する様に計画されたコンピュータハードウエアのどの
様な構成でも、図示の形状に、かえて用いることができ
ることは、当業者に明らかであろう。したがって、ここ
に開示した本発明は、"発明の詳細な説明"において述べ
た部品と異なる部品を用いても実施できるものである。
本出願は、本発明の種々の適応、又は、変形等を包含す
ることを意図している。それ故、本発明が、請求の範囲
及びその同等項によってのみ限定されるということが明
らかに意図されているものである。
【0086】
【発明の効果】本発明は、本明細書中では、テールゲー
ティングと呼ぶ技術により、上述のタイプのベクトルレ
ジスタコンピュータの処理速度を、更に、改良するもの
である。簡単に述べると、テールゲーティングは、ベク
トルレジスタの更に能率的な利用技術に関し、該技術に
おいては、ベクトルレジスタに前もって貯えられた他の
ベクトルを、該ベクトルレジスタから読み出すと同時
に、ベクトルを、その中に書き込むこともできる。レジ
スタに書き込まれるテールゲーティングベクトルは、機
能ユニット、又は、共通メモリから取りこんでもよい。
上記技術は、時間ピリオド当りの1ベクトル要素の読み
取り及び書き込みを用い、書き込みは、未だ読み取られ
ていない要素を書き込みすぎない様に、読み取り動作よ
りも、1又はそれ以上の要素分だけおくれて行われる様
にする。この技術により、所定のベクトルレジスタを、
同じベクトル演算に対して、オペランドレジスタ及び結
果レジスタの両者として用いることができる。換言すれ
ば、ベクトルレジスタは、以前にロードされたベクトル
が、未だ用いられ、要素毎にベクトルレジスタから読み
出されている間に、要素毎にベクトルをロードすること
ができる。この技術によれば、以前に発せられたベクト
ル指令中に含まれる特別なベクトルレジスタの使用を求
めるプログラム中のベクトル指令を、以前のベクトル指
令の完了を待たずに直に発することができる。1ベクト
ルを、要素毎に読みとると、ベクトルレジスタの各要素
は、他のベクトルの要素毎の書き込みに利用できる様に
なる。
【図面の簡単な説明】
【図1】 本発明を組み込んだコンピュータの計算部の
詳細ブロックダイヤグラムの一部
【図2】 本発明を組み込んだコンピュータの計算部の
詳細ブロックダイヤグラムの一部
【図3】 第1の実施の形態において実施したテールゲ
ーティング指令V0=V0+V0のタイミングダイヤグ
ラムの一部
【図4】 第1の実施の形態において実施したテールゲ
ーティング指令V0=V0+V0のタイミングダイヤグ
ラムの一部
【図5】 第1の実施の形態のベクトルレジスタ制御の
概略ブロック図
【図6】 第1の実施の形態のベクトルレジスタメモリ
の概略ブロック図
【図7】 第2の実施の形態において実施した3指令テ
ールゲーティングシーケンスのタイミングダイヤグラム
【図8】 組合せると、図7の指令シーケンスの間に起
るイベントを、更に示すタイミングダイヤグラム
【図9】 組合せると、図7の指令シーケンスの間に起
るイベントを、更に示すタイミングダイヤグラム
【図10】 組合せると、図7の指令シーケンスの間に
起るイベントを、更に示すタイミングダイヤグラム
【図11】 組合せると、図7の指令シーケンスの間に
起るイベントを、更に示すタイミングダイヤグラム
【図12】 組合せると、図7の指令シーケンスの間に
起るイベントを、更に示すタイミングダイヤグラム
【図13】 組合せると、図7の指令シーケンスの間に
起るイベントを、更に示すタイミングダイヤグラム
【図14】 組合せると、図7の指令シーケンスの間に
起るイベントを、更に示すタイミングダイヤグラム
【図15】 第2の実施の形態のベクトルレジスタメモ
リの概略ブロック図の一部
【図16】 第2の実施の形態のベクトルレジスタメモ
リの概略ブロック図の一部
【図17】 第2の実施の形態のベクトルレジスタ予約
制御の概略ブロック図
【図18】 第2の実施の形態のテールゲートスロット
タイム制御の概略ブロック図
【図19】 第2の実施の形態のベクトルアドレス制御
の概略ブロック図
【図20】第2の実施の形態のベクトルアドレスオフセ
ット制御の概略ブロック図
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジェイムズ・リチャード・ベデル アメリカ合衆国54729ウィスコンシン、チ ッペワ・フォールズ、ダブリュー・セント ラル・ストリート515番 (72)発明者 デニス・ダブリュー・クバ アメリカ合衆国54729ウィスコンシン、チ ッペワ・フォールズ、ボックス396、ルー ト2番 (72)発明者 ウィリアム・ティ・ムーア・ジュニア アメリカ合衆国54739ウィスコンシン、エ ルク・マウンド、ボックス380エー、ルー ト2番

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 オーダされた1組のデータの複数の要素
    を貯える為の手段を含む少なくとも1つのベクトルレジ
    スタを有するコンピュータ用ベクトル処理装置であっ
    て、(イ)コンピュータ内で第1の操作を行うための手
    段であって、この第1の操作で使用されるために、オペ
    ランド要素が順次ベクトルレジスタから読み取られるよ
    うになっている第1の操作手段と、(ロ)コンピュータ
    内で第2の操作を行う為の手段であって、この第2の操
    作により発生された結果としての要素が、順次ベクトル
    レジスタに貯えられるようになっている第2の操作手段
    と、(ハ)ベクトルレジスタからのオペランド要素の順
    次読み出しに用いられるアドレスの順次読み出しに同期
    して、第2の操作により発生した結果としての要素を、
    要素のアドレス時間の少なくとも1つ分遅らせ、要素の
    アドレス順番に従い、順次ベクトルレジスタに記憶する
    ために、前記第1と第2の操作手段に結合し、前記第2
    の操作の開始を第1の操作に対して同期させる同期化手
    段とを備えたことを特徴とする処理装置。
  2. 【請求項2】 少なくとも1つのベクトルレジスタを備
    えたコンピュータでのベクトル処理方法であって、
    (イ)コンピュータ内で第1の操作を行うステップと、
    (ロ)前記第1の操作で用いる為にベクトルレジスタか
    ら少なくとも1つのオペランド要素を順次読み出すステ
    ップと、(ハ)ベクトルレジスタからのオペランド要素
    の順次読み出しに用いられるアドレスの順次読み出しに
    同期して、第2の操作からの少なくとも1つの結果とし
    ての要素を、要素のアドレス時間の少なくとも1つ分遅
    らせ、要素のアドレス順番に従い、順次ベクトルレジス
    タに記憶するために、前記第2の操作の開始を、第1の
    操作に対して同期させるステップと、(ニ)前記第2の
    操作をコンピュータ内で行うステップと、(ホ)前記第
    2の操作よりの結果としての要素を、ベクトルレジスタ
    に順次記憶させるステップとを含むことを特徴とする処
    理方法。
  3. 【請求項3】 請求項2に記載の処理方法であって、更
    に、コンピュータ内で少なくとも1つの中間操作を行う
    ステップを設け、該中間操作は、第1の操作の後で、か
    つ、第2の操作の前に行われることを特徴とする処理方
    法。
  4. 【請求項4】 複数のベクトルレジスタを有するコンピ
    ュータでのベクトルテールゲーティング(vector tailga
    ting)多重操作方法であって、(イ)コンピュータ内で
    第1の操作を行うステップと、(ロ)前記第1の操作で
    用いる為に、第1のベクトルレジスタから、少なくとも
    1つの第1オペランド要素を順次読み取るステップと、
    (ハ)少なくとも1つの第2の結果としての要素を作り
    出す為に、コンピュータ内で第2の操作を行うステップ
    と、(ニ)前記第2の操作で用いるために、第2のベク
    トルレジスタから少なくとも1つの第2のオペランド要
    素を順次読み出すステップと、(ホ)第1のベクトルレ
    ジスタからの第1のオペランド要素の順次読み出しに用
    いられるアドレスの順次読み出しに同期して、第2の結
    果としての要素を、要素のアドレス時間の少なくとも1
    つ分遅らせ、要素のアドレス順番に従い、順次第1のベ
    クトルレジスタに記憶するステップと、(ヘ)少なくと
    も1つの第3の結果としての要素を作り出す為に、コン
    ピュータ内での第3の操作を行うステップと、(ト)第
    3の結果としての要素を、少なくとも1つの要素を遅ら
    せて、第2のベクトルレジスタからの第2のオペランド
    要素の順次の読み出しに同期して、順次第2のベクトル
    レジスタに記憶させるステップとを含むことを特徴とす
    る操作方法。
JP2000055714A 1988-05-10 2000-03-01 ベクトルレジスタを備えたコンピュータにおけるベクトルテールゲーティング Expired - Lifetime JP4144153B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US19221088A 1988-05-10 1988-05-10
US192,210 1988-05-10

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP01505020A Division JP3095393B2 (ja) 1988-05-10 1989-04-07 ベクトルレジスタを備えたコンピュータにおけるベクトルテールゲーティング

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008065320A Division JP2008181551A (ja) 1988-05-10 2008-03-14 ベクトルレジスタを備えたコンピュータにおけるベクトルテールゲーティング

Publications (2)

Publication Number Publication Date
JP2000207389A true JP2000207389A (ja) 2000-07-28
JP4144153B2 JP4144153B2 (ja) 2008-09-03

Family

ID=22708706

Family Applications (3)

Application Number Title Priority Date Filing Date
JP01505020A Expired - Fee Related JP3095393B2 (ja) 1988-05-10 1989-04-07 ベクトルレジスタを備えたコンピュータにおけるベクトルテールゲーティング
JP2000055714A Expired - Lifetime JP4144153B2 (ja) 1988-05-10 2000-03-01 ベクトルレジスタを備えたコンピュータにおけるベクトルテールゲーティング
JP2008065320A Pending JP2008181551A (ja) 1988-05-10 2008-03-14 ベクトルレジスタを備えたコンピュータにおけるベクトルテールゲーティング

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP01505020A Expired - Fee Related JP3095393B2 (ja) 1988-05-10 1989-04-07 ベクトルレジスタを備えたコンピュータにおけるベクトルテールゲーティング

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2008065320A Pending JP2008181551A (ja) 1988-05-10 2008-03-14 ベクトルレジスタを備えたコンピュータにおけるベクトルテールゲーティング

Country Status (7)

Country Link
US (1) US5349677A (ja)
EP (1) EP0419499B1 (ja)
JP (3) JP3095393B2 (ja)
AT (1) ATE81731T1 (ja)
CA (1) CA1321027C (ja)
DE (1) DE68903280T2 (ja)
WO (1) WO1989011129A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1992009968A1 (en) * 1990-11-27 1992-06-11 Cray Research, Inc. VECTOR WORD SHIFT BY Vo SHIFT COUNT IN VECTOR SUPERCOMPUTER PROCESSOR
US5669013A (en) * 1993-10-05 1997-09-16 Fujitsu Limited System for transferring M elements X times and transferring N elements one time for an array that is X*M+N long responsive to vector type instructions
US5848286A (en) * 1994-03-29 1998-12-08 Cray Research, Inc. Vector word shift by vo shift count in vector supercomputer processor
US5623685A (en) * 1994-12-01 1997-04-22 Cray Research, Inc. Vector register validity indication to handle out-of-order element arrival for a vector computer with variable memory latency
US6922760B2 (en) * 2002-12-05 2005-07-26 Lsi Logic Corporation Distributed result system for high-performance wide-issue superscalar processor
JP2004302647A (ja) * 2003-03-28 2004-10-28 Seiko Epson Corp ベクトルプロセッサおよびレジスタのアドレス指定方法
US7845820B2 (en) 2008-10-02 2010-12-07 Life+Gear, Inc. Multipurpose lighting device with electronic glow stick
EP2347168A4 (en) 2008-10-02 2014-01-15 Life & Gear Inc FLASHLIGHT AND LAMPED BACK SECTION WITH DOUBLE-SIDED LIGHTING MODULE
US8113682B2 (en) 2008-10-02 2012-02-14 Life+Gear, Inc. Multipurpose waterproof lighting device with electronic glow stick
EP2757468A1 (en) * 2013-01-22 2014-07-23 Siemens Aktiengesellschaft Apparatus and method for managing a software development and maintenance system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5725069A (en) * 1980-07-21 1982-02-09 Hitachi Ltd Vector data processing equipment
JPH0652530B2 (ja) * 1982-10-25 1994-07-06 株式会社日立製作所 ベクトル・プロセッサ
JPS5998365A (ja) * 1982-11-27 1984-06-06 Shigeto Suzuki 複数同時アクセス型記憶装置
US4674032A (en) * 1984-04-02 1987-06-16 Unisys Corporation High-performance pipelined stack with over-write protection
US4720780A (en) * 1985-09-17 1988-01-19 The Johns Hopkins University Memory-linked wavefront array processor
US4766535A (en) * 1985-12-20 1988-08-23 International Business Machines Corporation High-performance multiple port memory
US4760518A (en) * 1986-02-28 1988-07-26 Scientific Computer Systems Corporation Bi-directional databus system for supporting superposition of vector and scalar operations in a computer

Also Published As

Publication number Publication date
JP3095393B2 (ja) 2000-10-03
JP2008181551A (ja) 2008-08-07
JP4144153B2 (ja) 2008-09-03
CA1321027C (en) 1993-08-03
EP0419499A1 (en) 1991-04-03
WO1989011129A1 (en) 1989-11-16
US5349677A (en) 1994-09-20
ATE81731T1 (de) 1992-11-15
DE68903280D1 (de) 1992-11-26
JPH03504293A (ja) 1991-09-19
EP0419499B1 (en) 1992-10-21
DE68903280T2 (de) 1993-05-27

Similar Documents

Publication Publication Date Title
US5499349A (en) Pipelined processor with fork, join, and start instructions using tokens to indicate the next instruction for each of multiple threads of execution
JP2008181551A (ja) ベクトルレジスタを備えたコンピュータにおけるベクトルテールゲーティング
US5353418A (en) System storing thread descriptor identifying one of plural threads of computation in storage only when all data for operating on thread is ready and independently of resultant imperative processing of thread
US5675757A (en) Direct match data flow memory for data driven computing
US4980819A (en) Mechanism for automatically updating multiple unit register file memories in successive cycles for a pipelined processing system
JPH10187443A (ja) 複数の非分岐命令と分岐命令とを有する基本ブロックにおける分岐実行システムおよび方法
JPH0622034B2 (ja) マルチポートベクトルレジスタファイル
US5440717A (en) Computer pipeline including dual-ported, content-addressable writebuffer
JPH08509082A (ja) マルチフェーズ、マルチアクセスパイプラインメモリシステム
NZ201809A (en) Microprocessor
US5226128A (en) Horizontal computer having register multiconnect for execution of a loop with a branch
US5428810A (en) Allocation of resources of a pipelined processor by clock phase for parallel execution of dependent processes
US4958274A (en) System with a N stages timing silo and P stages information silo for soloing information
JPH07121437A (ja) コンピュータシステム
JPH06318178A (ja) キャッシュタグメモリ用キャッシュタグ制御装置及び制御方法
US4430708A (en) Digital computer for executing instructions in three time-multiplexed portions
US5526500A (en) System for operand bypassing to allow a one and one-half cycle cache memory access time for sequential load and branch instructions
US5623685A (en) Vector register validity indication to handle out-of-order element arrival for a vector computer with variable memory latency
US11061817B2 (en) Memory node with cache for emulated shared memory computers
US4792893A (en) Selectively recursive pipelined parallel vector logical operation system
US20030061468A1 (en) Forwarding the results of operations to dependent instructions quickly
US6963961B1 (en) Increasing DSP efficiency by independent issuance of store address and data
JP3473506B2 (ja) パイプライン処理装置
JPH07111683B2 (ja) タスク切換機能付プロセッサ
JPS62251829A (ja) シンボリツク処理システムおよび方法

Legal Events

Date Code Title Description
A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20031209

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20031215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040308

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060412

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060417

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060718

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080314

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20080314

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20080314

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080609

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20090627

Year of fee payment: 1

EXPY Cancellation because of completion of term