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

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

Info

Publication number
JP3095393B2
JP3095393B2 JP01505020A JP50502089A JP3095393B2 JP 3095393 B2 JP3095393 B2 JP 3095393B2 JP 01505020 A JP01505020 A JP 01505020A JP 50502089 A JP50502089 A JP 50502089A JP 3095393 B2 JP3095393 B2 JP 3095393B2
Authority
JP
Japan
Prior art keywords
vector
signal
address
busy
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP01505020A
Other languages
English (en)
Other versions
JPH03504293A (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 JPH03504293A publication Critical patent/JPH03504293A/ja
Application granted granted Critical
Publication of JP3095393B2 publication Critical patent/JP3095393B2/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

Description

【発明の詳細な説明】 技術分野 本発明は、高性能ベクトルコンピュータの分野に関す
るもので、特に、ベクトル算定における性能上のゲイン
を与える為に、本明細書で「テールゲーティング」と呼
ぶ処理におけるベクトルレジスタの使用を制御する装
置、並びに、その方法に関するものである。
背景技術 通常スーパコンピュータと呼ばれる、大型で極めて高
性能のコンピュータの分野では、オーダされた複数の組
のデータ、又は、ベクトルを含む計算において、非常に
高いデータ処理速度を達成する為に、普通、ベクトル処
理構成が設けられる。seymour R.Crayに与えられ、Cra
y Research,Inc.に譲渡された米国特許第4,128,880号
には、非常に好結果のスーパコンピュータベクトル処理
構成が開示されている。上記の構成においては、オペラ
ンドとして機能ユニットに送り、かつ、機能ユニットか
らの結果としてのベクトルを受け取り、かつ、保持する
様に、複数のベクトルレジスタが、ベクトルを保持する
為に設けられている。最大の速度を得る為に、完全にセ
グメント化された機能ユニットが設けられ、その内部で
は、機能ユニットに達するか、又は、機能ユニット内で
移動する全ての情報は、各時間ピリオドの終わりにおい
て捕捉され、かつ、保持される。所定のベクトルプロセ
スの為のオペランドレジスタとして用いたベクトルレジ
スタは、時間ピリオド当り1要素の割合で機能ユニット
に個々の要素を伝送する。一たびスタートアップタイ
ム、又は、機能ユニットタイムが過ぎると、機能ユニッ
トは連続する時間ピリオドでの連続的結果要素を与え、
そして、これらの要素は、その特定のベクトルプロセス
の結果レジスタとして働いているベクトルレジスタに、
結果ベクトルの要素として伝達される。ベクトルレジス
タと主メモリとの間のベクトル転送も又、時間ピリオド
当り1要素の割合で達成できる。
いずれも、プログラム命令制御により、どの機能ユニ
ット、又はメモリと連係させてもよい、いくつかの機能
ユニット(例えば、浮動小数点乗算、整数加算、ロジカ
ル演算等)や、いくつかのベクトルレジスタ(例えば、
8個)を設けることにより、米国特許第4,128,880号に
よるコンピュータに、多数の同時に進行するベクトルプ
ロセスを付与し、それによって、極めて高いデータ処理
速度を達成することができる。
発明の開示 本発明は、本明細書中では、テーブルゲーティングと
呼ぶ技術により、上述のタイプのベクトルレジスタコン
ピュータの処理速度を、更に、改良するものである。簡
単に述べると、テールゲーティングは、ベクトルレジス
タの更に能率的な利用技術に関し、該技術においては、
ベクトルレジスタに前もって貯えられた他のベクトル
を、該ベクトルレジスタから読み出すと同時に、ベクト
ルを、その中に書き込むこともできる。レジスタに書き
込まれるテールゲーティングベクトルは、機能ユニッ
ト、又は、共通メモリから取りこんでもよい。上記技術
は、時間ピリオド当りの1ベクトル要素の読み取り及び
書き込みを用い、書き込みは、未だ読み取られていない
要素を書き込みすぎない様に、読み取り動作よりも、1
又はそれ以上の要素分だけおくれて行われる様にする。
この技術により、所定のベクトルレジスタを、同じベク
トル演算に対して、オペランドレジスタ及び結果レジス
タの両者として用いることができる。換言すれば、ベク
トルレジスタは、以前にロードされたベクトルが、未だ
用いられ、要素毎にベクトルレジスタから読み出されて
いる間に、要素毎にベクトルをロードすることができ
る。この技術によれば、以前に発せられたベクトル指令
中に含まれる特別なベクトルレジスタの使用を求めるプ
ログラム中のベクトル指令を、以前のベクトル指令の完
了を待たずに直に発することができる。1ベクトルを、
要素毎に読みとると、ベクトルレジスタの各要素は、他
のベクトルの要素毎の書き込みに利用できる様になる。
図面の簡単な説明 以下の図面中、同様の図番は、同様の部材を示す。
第1図は、本発明を組み込んだコンピュータの計算部
の詳細ブロックダイヤグラムで、 第2図は、第1実施例において実施したテールゲーテ
ィング指令V0=V0+V0のタイミングダイヤグラムで、 第3図は、第1実施例のベクトルレジスタ制御の概略
ブロック図で、 第4図は、第1実施例のベクトルレジスタメモリの概
略ブロック図で、 第5図は、第2実施例において実施した3指令テール
ゲーティングシーケンスのタイミングダイヤグラムで、 第6、7、8及び9図は、組合せると、第5図の指令
シーケンスの間に起るイベントを、更に示すタイミング
ダイヤグラムで、 第10図は、第2実施例のベクトルレジスタメモリの概
略ブロック図で、 第11図は、第2実施例のベトルレジスタ予約制御の概
略ブロック図で、 第12図は、第2実施例のテールゲートスロットタイム
制御の概略ブロック図で、 第13図は、第2実施例のベクトルアドレス制御の概略
ブロック図で、 第14図は、第2実施例のベクトルアドレスオフセット
制御の概略ブロック図である。
好ましい実施例の詳細な説明 以下の好ましい実施例の詳細な説明においては、説明
の1部を構成すると共に、本発明を実施する2つの特有
な実施例を図示する添付の図面を参照する。両実施例
共、ブロック図とタイミングダイヤグラムに関して説明
され、それに基づいて、当業者に一般に知られている様
に、詳細なロジックデザイン(図示せず)が構成され
る。更に、本発明の範囲内で、他の実施例を利用できる
ことや、構成上の変形を実施することも可能であること
が了解されるべきである。
本発明にかかるベクトル処理及び制御手段の形態と作
動は、本発明を用いるコンピュータシステムの組織の大
略の解説で説明を始めると最も了解が容易であると考え
られる。次に、本発明の形態と作動の詳細を説明する。
第1図のブロック図において、コンピュータシステム
の計算部が詳細に示される。計算部は、全体的に参照番
号100で示す1組のベクトルレジスタよりなる。ベクト
ルレジスタはデータの高速処理を与えるので、コンピュ
ータの主要計算レジスタを構成する。好ましい両実施例
において、第1図に、V0からV7として示す、8個の個別
ベクトルレジスタがある。各ベクトルレジスタは、ベク
トルレジスタV0において、要素00より77を8進数字で示
している様に、64の個々の要素よりなっている。各要素
は、64ビットのワードを保持している。
ベクトル処理に3個の機能ユニットが提供されてい
る。それらは、整数ユニット110と、ロジカルユニット1
20と、シフトユニットは130である。更に、2個の機能
ユニットが、コンピュータのベクトルとスカラ量部分の
間で共用されている。これらは、加算140と掛算150用の
浮動小数点機能ユニットである。
ベクトル演算は、1つ、又は、それ以上のベクトルレ
ジスタの第1要素からオペランドを得、それらを機能ユ
ニットに配送することにより始められる。各タイムピリ
オドにおいて、連続的要素が与えられ、各演算が行われ
るにつれて、結果は、宛先ベクトルレジスタの連続要素
に送られる。ベクトル演算は、命令により行われた演算
の数が、ベクトルレングスレジスタ160の内容により規
定されるカウントと等しくなる迄続けられる。
本発明の図面及び明細書を含むベクトル演算の記号的
表現では、ベクトルレジスタは、サブスクリプトi、j
及びkにより識別される。サブスクリプトiは、宛先ベ
クトルレジスタを識別するのに用いられる。サブスクリ
プトjとkは、オペランドベクトルレジスタを識別する
のに用いられる。例えば、 Vi=Vj+Vk ベクトルレジスタの要素は、数字的サブスクリプト
(例えば、V46は、ベクトルレジスタ4の要素6)で識
別される。
ベクトルレジスタの要素は、オペランドとして機能ユ
ニットに伝達され、次いで、後続のタイムピリオドで前
の演算の結果の宛先を与える。レジスタをオペランドレ
ジスタと、それに次いで、宛先レジスタの両方に用いる
ことにより、2つ、又は、それ以上のベクトル演算の
「テールゲーティング」を一緒に行うことが可能とな
る。このモードでは、タイムピリオド毎に、2つ、又
は、それ以上の結果が作り出される。これらのベクトル
演算のタイムピリオドは、通常、単一システムクロック
ピリオドである。
このテールゲーティングモードを除いて、ベクトルレ
ジスタは、それらがベクトル計算の含まれるタイムピリ
オドの間予約される。同じベクトルレジスタを必要とす
るがテールゲーティングモードで実行できない他の指令
は、前の指令が完成し、予約が外される迄、発せられな
い。しかし、全ての機能ユニットが独立しているので、
多様な関係のないベクトル処理演算を、異なる機能ユニ
ットや、異なるオペランドや結果ベクトルレジスタを用
いて同時に行うことができる。
好ましい第1実施例 本発明の好ましい第1実施例を、第2、3及び4図に
図示する。
第1実施例のベクトルレジスタ制御の概略ブロック図
を第3図に示す。Issueとラベル付した回路301は、その
入力として、アンドゲート302と303からの反転信号を、
その入力とする。両出力は、指令を発し得る前に持つ必
要があることを示すものである。
アンドゲート302への入力は、回路305の出力と、ラッ
チ304に保持される信号VjリードリクエストとVkリード
リクエストとよりなる。回路305は、VjとVkリードビジ
イ及びライトビジイビットを調べる。1リードビジイビ
ット及び1ライトビジイビットが、各ベクトルレジスタ
に与えられる。これらのビットは、必要とされるオペラ
ンドベクトルレジスタが、以前のリード又はライト演算
に対して、現在ビジイであるか否かを示す。もし、要求
されるオペランドベクトルレジスタがビジイでない場合
は、アンドゲート302からの反転信号が、指令の発令を
可能とする。
アンドゲート303からの反転信号は、指令の発令が行
われる迄に、アンドゲート302からの反転信号に関して
調べる必要がある。アンドゲート303への入力は、回路3
07よりの出力と、ラッチ306における信号Viライトリク
エストである。回路307は、要求された宛先ベクトルレ
ジスタか、現在書き込み動作でビジイであるかどうかを
決定する為に、Viライトビジイビットを調べる。指令の
発令には、宛先ベクトルレジスタが、前の指令の宛先と
してビジイでないことが必要である。
指令の発令が行われると、回路301は、313の信号を、
Vjリードビジイ及びVkリードビジイを設定する為に、
又、314の信号を、Viライトビジイを設定する為に送り
出す。又、信号312が、回路301から、ベクトルシーケン
ス制御308へ送られる。代わって、ベクトルシーケンス
制御308は、ゴウリードVj及びゴウリードVk信号316を発
生する。これらの信号は、第4図に示す様に、Vj/Vkリ
ードアドレスカウンタ401への入力として働く。信号316
は8ビットよりなる(各ベクトルレジスタについて1ビ
ット)信号316は、ベクトルレジスタの内のどれがリー
ド動作の為に用いられるべきかを示している。代表的に
言えば、リード動作の間は、VjはVkと異なるであろう。
しかし、本実施例では、VjはVkと同じベクトルレジスタ
としてもよいので、ゴウリードVjとゴウリードVkは、同
じ信号であってもよい。
ベクトルシーケンス制御308は、又、第3図に、参照
番号310で表わされるVj/Vkベクトルレングスカウンタを
トリガする為に、信号323を送る。信号323は、8ビット
よりなる。(ベクトルレジスタと連係する各ベクトルレ
ングスカウンタ310に対して1ビット)。
代表的に言えば、ベクトルリード動作の間は、VjはVk
と異なるであろう。しかし、本実施例では、VjはVkと同
じベクトルレジスタとしてもよいので、Vjベクトルレン
グスカウンタとVkベクトルレングスカウンタは、同じ装
置であってもよい。
Vj/Vkベクトルレングスカウンタ310は、応用ソフトウ
エアにより発せられるプロセサ指令、ロードベクトルレ
ングスによって初期化される。Vj/Vkベクトルレングス
カウンタ310がゼロに減じると、それは、第4図のVj/Vk
リードアドレスカウンタ401をクリアするエンドリードV
j/Vk信号317を送り出す。又、Vj/Vkベクトルレングスカ
ウンタ310は、対応するリードビジイビットをクリアす
る為に、リリースVj/Vk信号318を送り出す。
ベクトルシーケンス制御308も、又、Viライトディレ
イカウンタ309を作動さす為に信号315を発する。信号31
5は、8ビットよりなる(ベクトルレジスタと連係する
各ライトディレイカウンタ309に対して1ビット)。Vi
ライトディレイカウンタ309により受けられたゴウ機能
ユニット信号322は、使用中の機能ユニットと、宛先ベ
クトルレジスタに書き込む前に要求されるディレイの量
を示す。どの機能ユニットのディレイが必要かを決定す
る知能は、Viライトディレイカウンタ309に含まれてい
る。
Viライトディレイカウンタ309がゼロに減じると、そ
れは、Viベクトルレングスカウンタ311をトリガする信
号ゴウライト321を発する。Viベクトルレングスカウン
タ311は、第4図に示すViライトアドレスカウンタ402と
Viライトイネイブルラッチ403に入力されるゴウライトV
i信号319を送り出す。
Viベクトルレングスカウンタ311は、応用ソフトウエ
アにより発せられるプロセサ指令、ロードベクトルレン
グスにより初期化される。リリースVi信号320と、エン
ドライトVi信号324は、カウンタがゼロに減じた時、Vi
ベクトルレングスカウンタ311により送り出される。リ
リースVi信号320は、Viライトビジイビットをクリアす
る。その後、そのベクトルレジスタを用いて別の指示を
発することができる。エンドライトVi信号324は、第4
図のViライトアドレスカウンタ402をクリアする。
第1実施例の為のベクトルレジスタメモリの概略ブロ
ック図を第4図に示す。ベクトルレジスタ404は、3つ
の入力を含む。即ち、6ビットリードアドレス406と、
6ビットライトアドレス407と、ライト0/1信号408であ
る。ベクトルレジスタ404は、代表的メモリ装置が、唯
一のアドレス入力を持つのみであるという点で独特なも
のである。この装置は、2つの別々のアドレス入力、即
ち、リードに対して1つ、そして、ライトに対して1つ
の入力を有する。各レジスタチップは、64×4ビットで
ある。16のこの様なチップは、各要素が64ビットを含む
64要素のベクトルレジスタを構成する。
Vj/Vkリードアドレスカウンタ401は、ゴウリードVj/V
k信号316を受けると、1だけ増分し、それが、エンドリ
ードVj/Vk信号317を受ける迄、タイムピリオド毎に増加
しつづける。Viライトアドレスカウンタ402は、アクテ
ブゴウライトVi信号319がある場合、各タイムピリオド
毎に1づつ増分する。ゴウライトVi信号319は、又、Vi
ライトイネイブル403で、結果データ410に合併してい
る。この合併の為、ライト0/1信号408が生じる。この信
号408は、単にライトストローブであるばかりではな
く、又、ベクトルレジスタ404が貯える様に指示され
た、全64ビットのワードを提供する。
ベクトルレジスタ404からのリードデータ409は、それ
が書き込まれる為に戻って来る前に機能ユニット405へ
行く必要がある。その為、リードアドレス406は、常に
ライトアドレス407より進んでいる。リードアドレスカ
ウンタ401が、ライトアドレスカウンタ402より少なくと
も1だけ大きい限りは、回路は、テールゲーティングモ
ードで作動することができる。
指令V0=V0+V0のタイミングダイヤグラムであるFig
−2は、テールゲーティングの観念を明らかにする助け
となるであろう。水平軸に沿うグラデーションは、タイ
ムユニットを表わす。ダイヤグラムの上半分は、オペラ
ンドベクトルレジスタの制御シーケンスを表わす。又、
ダイヤグラムの下半分は、宛先ベクトルレジスタの制御
シーケンスを表わす。
加算指令を実行する為には、オペランドベクトルレジ
スタを読み取り、その内容を、処理の為、機能ユニット
に伝達する必要がある。タイムピリオドt0において、V0
リードリクエストの信号が発せられる。この信号は、指
令が発せられる前に、指令デューダにより発生される。
V0リードリクエスト信号に関連して、所望のベクトル
の為の2つの状況ビット、即ち、リードビジイビット及
びライトビジイビットを調べる必要がある。V0リードビ
ジイ及びV0ライトビジイが、ベクトルレジスタV0がオペ
ランドとしても、又、宛先としても用いられていないこ
とを示すと、シグナルイッシュV0リードが、指令の進行
を許す様に指令デコーダに送り戻される。
ベクトルレジスタV0をオペランドとして用い得る様に
するには、該ベクトルレジスタは、リード又はライト操
作で、すでにビジイの状態であってはならない。もし、
他のベクトルレジスタが、オペランドとして用いられて
いるならば、制御シーケンスは、ダイヤグラムの上半分
の様な状態になるであろう。しかし、ダイヤグラムは、
シーケンスV0=V0+V0に対して完了している。
タイムピリオドt0において、V0ライトリクエストの信
号も発信される。ベクトルレジスタV0は、加算指令の結
果の宛先を与える。ライトビジイビットを介して、チェ
ックする必要があるものは、ベクトルレジスタが、すで
に、以前の指令の宛先になっていないということであ
る。次いで、シグナルイッシュV0ライトが、指令イッシ
ュ制御へ送り返される。
タイムピリオドt3において、指令の発行によりV0ベク
トルシーケンス制御(タイミングダイヤグラム中V0制御
とラベル付)が、ゴウリードV0という信号を送り、V0リ
ードビジイをセットする。V0リードアドレスカウンタ
(タイミングダイヤグラム中V0リードアドレスとラベル
付)は、すでに、要素0の為に初期化されている。ゴウ
リードV0信号は、V0リードアドレスカウンタを、タイム
ピリオドt4で増分させる。その為、要素0は、ベクトル
レジスタから読み取られ、タイムピリオドt5は、要素1
の為のアドレスを提供する。この読み取り及び増分動作
は、全ての要素が読み取られてしまうまで、後続するタ
イムピリオドを通じて続けられる。タイムピリオドt67
で全ての64の要素が読み取られると、V0ベクトルシーケ
ンス制御は、V0リードビジイをクリアする。エンドリー
ドV0信号が同じピリオドの間に、要素アドレスをゼロに
リセットするV0リードアドレスカウンタに送られる。
オペランドは、機能ユニットに伝送される。いくらか
のタイムピリオドの後に、結果のデータが、その宛先で
あるV0ベクトルレジスタに送り戻される。理論的には、
ベクトルレジスタより読み取られた要素は、後続するタ
イムピリオドで新しいデータで書き込むことができる。
第2図の下半分を参照して、タイムピリオドt3では、
V0ライトアドレスカウンタ(タイミングダイヤグラム中
V0ライトアドレスとしてラベル付)は、エレメントアド
レスOを含む。指令の発行により、V0ライトビジイをセ
ットし、V0ベクトルシーケンス制御は、ゴウライトV0信
号を発するV0ライトアドレスカウンタは、2つのタイム
ピリオドt3とt4の間、要素0のままとなる。V0リードア
ドレスカウンタが1で、V0ライトアドレスカウンタが0
(タイムピリオドt5)になると直に、要素0が新しいデ
ータで書き込まれる。その為、読み取りと書き込みとの
動作の間に、1タイムピリオドの差がある。通常、読み
取りと書き込み動作の間に、機能ユニットタイムがあ
る。
機能ユニット遅れ時間により、読み取られている要素
は、同じタイムピリオドには書き込まれないということ
が保償される。第2図において、V0ライトアドレスカウ
ンタは、要素アドレス0で、2つのタイムピリオドの
間、保持されているのが示されている。実際において、
Viライトアドレスカウンタは、第3図のViライトディレ
イカウンタ309により示されるタイムピリオドの数の
間、要素アドレスゼロに保持される。
タイムピリオドt5において、一たび書き込み動作がは
じまると、V0ライトアドレスカウンタは、V0リードアド
レスカウンタと同じ様に、各タイムピリオド毎に、歩進
する。各要素が、宛先ベクトルレジスタに入って来る
と、それは、読み取られているアドレスよりも常に少な
くとも1カウントおくれている、現在アドレスされてい
る要素内に書き込まれる。V0ライトアドレスカウンタ
は、全64要素を通じて、その時点で、V0ベクトルシーケ
ンス制御がV0ライトビジイをクリアし、要素アドレスを
ゼロにリセットするV0ライトアドレスカウンタにエンド
ライトV0信号を伝達する時点である、タイムピリオドt6
8迄増分する。
この実施例では、共通メモリは、テールゲーティング
の目的で、機能ユニットとして取り扱うことができる。
共通メモリからベクトルレジスタへ送られつつあるベク
トルは、以前の指令で用いられているベクトルをテール
ゲートすることができる。機能ユニット時間に基づい
て、テールゲーティング動作のタイミングを取るかわり
に、メモリトランスファータイムが用いられる。
第2実施例 本発明の第2実施例を第5図、第6図、第7図、第8
図、第9図、第10図、第11図、第12図、第13図、第14図
に示す。
第2実施例におけるベクトルレジスターは、4バンク
に区画されている。第10図に示すように、これらの4バ
ンクは、それぞれバンク0、バンク1、バンク2、バン
ク3として識別してある。また、第10図に示すように、
各バンクは、4番目毎のエレメントを得ている。即ち、
バンク0の場合では、エレメント0、エレメント4、エ
レメント8、‥‥のようにエレメントを得ている。
レジスターチップは、高速型16x4メモリーである。レ
ジスターチップのサイクル時間は、2期間(time perio
d)である。レジスターの各バンクには、4期間おきに
アクセスがなされる。従って、テールゲートモードで動
作しているのでもなければ、バンクは2期間アクティブ
になり、2期間休止する。この2期間アクティブ、2期
間休止のシーケンスは無期限に繰り返される。
各バンクにはそれなりのアドレスレジスターがあっ
て、第10図ではそれをチップアドレス1001から1004とし
て示してある。エレメントアドレスカウンター1005は、
6−ビットアドレスカウンターである。レジスターがア
クセスされていると、そのカウンターは各期間毎にその
カウント値を順次カウントアップする。アドレスの最下
位の2ビットはバンクセレクトビット1006である。最上
位の4ビットは、チップアドレスビット1007である。チ
ップアドレス1008は、最上位の4ビットを他のバンクに
論理出力するレジスターにすぎない。バンクセレクトデ
コーダー1009は、チップアドレス信号1020がアクセスす
べきバンクを選択するようになっている。
テールゲート作用(tailgating)を行うためには、テ
ールゲート命令のために書込みアドレスを発生すべく、
ベクトルアドレスオフセット1010として示した下方のパ
スが利用される。このベクトルアドレスオフセット1010
は4ビットであって、発生時にレジスター1011に送られ
る。レジスター1011の論理出力は、アンドゲート1027を
介して各ベクトルレジスター毎のレジスター1012に供給
される。テールゲートV0信号1025も発生時に送られる。
テールゲートV0信号1025がアクティブになれば、ベクト
ルアドレスオフセットはアンドゲート1028を介して、選
択されたベクトルレジスターに対応するベクトルアドレ
スオフセットレジスター1012に保持される。
テールゲート命令のためにアドレスを発生するには、
チップアドレス1008からの4ビット出力を減算器1013に
供給して、レジスター1012に保持されているベクトルア
ドレスオフセットと減算する。減算器1013の出力は、調
整済みアドレス1019と呼ばれるもので、チップアドレス
1001に戻される。このオフセットは機能ユニットの遅延
時間とテールゲート作用に伴う二つの命令が発生される
間に経過する時間とに関係のあるものである。
バンクサイクル期間は4期間であるから、エレメント
0のアドレスは最初の2期間の間にチップアドレス1001
に記憶される。調整済みアドレス1019は、後の2期間の
間にチップアドレス1001に記憶される。減算は、4エレ
メンとの各グループ毎に一回実行されるだけで充分であ
る。次のバンクにアクセスするためには、最初の調整済
みアドレス1019を次のバンクのチップアドレスに伝送す
る。各期間毎にエレメンとが書き込まれるから、減算器
は各バンク毎に用意する必要はない。チップアドレスは
最初の4つの標準(reference)に付き同一になること
になっていて、次の4つのアドレスに付き1だけインク
レメントされる。エレメントアドレスカウンター1005か
らのバンクセレクトビット1006は、どのバンクを選択し
たかを判定するようになっている。本実施例におけるテ
ールゲート作用に必要な条件の一つとして、ベクトルレ
ジスターに結果が各期間毎に順次供給されている必要が
ある。各期間毎に結果を順次供給しないような操作で
は、テールゲート作用が行われない。
本実施例では、テールゲート作用はマルチプレックス
操作である。2期間おきに新たなアドレスが、最初は読
出し信号が、その後には書込みアドレスがチップアドレ
ス1001から1004に順次送り込まれる。操作がテールゲー
ト作用でない場合、シーケンスは、2期間読出し叉は書
込みアドレス、2期間「構わない」(“don't car
e")、2期間読出し叉は書込みアドレス、などと言った
具合になる。
前述の第1実施例とは異なって、第2実施例では読出
しビジーや書込みビジーの間、各ベクトル毎に別々の予
約ビットを含んでいない。その代わりに、二つの考えら
れるバンクサイクルの内の一つが使われることで予約の
代用をなしている。つまり、最初のバンクサイクルにあ
る予約フラグがあり、後のバンクサイクルにも別の予約
フラグがあるのである。
第11図は、一つのベクトルレジスターのためのベクト
ルレジスター予約回路を示している。1101、1102、1103
はそれぞれビジーフラグないし予約フラグを示す。前述
したように、各ベクトルレジスターバンクのサイクル時
間は2期間であって、4期間おきにバンクに対してアク
セスがなされる。テールゲート作用時には、最初のサイ
クルが読出しであり、後のサイクルは書込みである。
V0ビジー−1として示したラッチ1101は、4期間サイ
クルの内の最初の2期間を予約したことを示すために使
われる。V0ビジー−2として示したラッチ1103は、後の
2期間を予約するのに用いられる。このラッチは、ベク
トルレジスターがテールゲートモードで動作していると
きにセットされる。V0ビジー−3として示したラッチ11
02は、タイミングのために用いられるコンポジットであ
る。
V0ビジー−1は、命令発生時(V0ビジー−2 1103は
まだセットされていないとして)にベクトルレジスター
のリクエストをオンにする。V0ビジー−2 1103は、V0
ビジー−1 1101が既にセットされている場合に命令発
生時にベクトルレジスターのリクエストをオンにする。
V0ビジー−3 1102は、V0ビジー−1 1101がセットさ
れている間にホールドされており、スロット時が発生す
るときには、V0ビジー3は1期間クリアーされる。V0ビ
ジー−2 1103が一旦セットされると、リリースV0信号
1104がベクトルアドレスコントロールから入るまで、セ
ットされたままである。テールゲート作用時には、二つ
のV0リリース信号1104が用いられる。二番目のリリース
信号は、最初のリリース信号がV0ビジー−1 1101をク
リアーしている間に、V0ビジー−2 1103をクリアーす
る。V0ビジー−2 1101とV0ビジー−2 1103との両方
がクリアーされていると、V0ビジー−3 1102もクリア
ーされる。
V0ビジー−1は、アンドゲート1107と1109との論理和
の出力に応じて1108によりセットされる。アンドゲート
1107は、リリースV0信号1104の反転信号がそれをクリア
ーするまで、V0ビジー−1の内容をホールドする。他
方、アンドゲート1109は、1105で示すリクエストV0が報
知され、V0ビジー−1 1101が用いられていないとき
に、V0ビジー−1 1101を命令発生時にセットさせる。
V0ビジー−3は、アンドゲート1110、1112、1113との
論理和の出力に応じて111によりセットされる。アンド
ゲート1110には、V0ビジー−1 1101の出力と信号V0ス
ロット時1208の反転信号とが入力されている。また、ア
ンドゲート1112は、1105で示すリクエストV0が報知され
ると命令発生時1106にV0ビジー−3 1102をセットす
る。アンドゲート1113は、V0ビジー−2 1103がセット
され、且つ、V0ビジー−1 1101がセットされるか、叉
は、1104で示すリリースV0が報知されていないときに、
V0ビジー−3 1102をホールドする。
V0ビジー−2 1103は、アンドゲート1116と1113との
論理和の出力に応じて1115によりセットされる。アンド
ゲート1116は、V0ビジー−1 1103がセットされ、1105
で示すリクエストV0が報知されると命令発生時1106にV0
ビジー−2 1103をセットする。他方、アンドゲート11
13は、オアゲート1114の出力が1の時にV0ビジー−1
1103をホールドする。オアゲート1114には、V0ビジー−
1 1101とリリースV0信号1104の反転信号とが入力され
るようになっている。
第12図は、テールゲートスロット時回路を示したもの
である。テールゲート命令の機能ユニット時間に応じ
て、書込み作用がベクトルレジスターに対して現に進行
している読出し作用と同期する頃に命令が発生していな
ければならない。第12図の回路では、ラッチ1201、120
2、1203、1204を用いてこの同期機能を達成するため
に、4つの異なったスロットを利用している。各スロッ
トは、記憶サイクルにおける4期間のいずれかの期間に
対応している。
最初の命令が発生した後の2期間において、ラッチ12
01、1202、1203、1204からなるスロットカウンターは、
スロット2において計数を開始する。ラッチ1205、1206
は、次の命令が早まって発生することがないようにして
いる。即ち、テールゲート作用時に次の命令に対して2
期間の遅延が与えられている。
スロットカウンターは、アンドゲート1215からの出力
によりセットされる。このアンドゲート1215には、1105
で示すリクエストV0、V0書込みリクエスト1317の反転信
号、リクエストメモリー1207の反転信号、V0ビジー−1
1101の反転信号、発生が入力されるようになってい
る。リクエストV0信号1105は、ベクトルレジスターが最
初にリクエストされると時のみ、スロットカウンターを
して計数開始させる。書込みリクエスト信号1317の反転
信号を利用することにより、ベクトルレジスターリクエ
ストが読出し動作のためになされるのであれば、スロッ
トカウンターは計数を開始する。リクエストメモリー信
号1207の反転信号は、共有メモリ動作時にテールゲート
作用を阻止するものであって、これが本実施例における
唯一の制限である。V0ビジー1信号1101の反転信号は、
スロットカウンターが動作時に再び初期化されるのを防
いでいる。発生信号1106は、命令発生時のみにスロット
カウンターが初期化されるようにしている。
最初の命令が発生された後、テールゲート命令が解
読、発生されるものと仮定する。この場合、テールゲー
ト命令は、最初の命令の直後に実行される必要はない。
最初の命令の発生時とテールゲート命令の発生時との間
に、いくつかの関係のない命令が実行されることがあ
る。命令の種類によっては、4つの「リクエストスロッ
ト」信号の内の何れか一つ(例えば、リクエストV0スロ
ットO信号1216)が命令解読器により伝送される。例え
ば、ベクトル論理積命令は、スロットOをリクエストす
るようになっている。従って、解読プロセスにおいて
は、リクエストV0スロットO信号1216が伝送される。異
なった機能ユニット動作により、書込み動作を同期させ
るために別のスロットリクエストがなされることがあ
る。
第11図におけるV0ビジー−3 1102により発生された
信号は命令の発生を阻止しているから、この信号はテー
ルゲート命令が発生されるためにも、1期間だけ中断し
なければならない。第12図の下半分に示したように、リ
クエストV0スロットO信号1216は、1209によりラッチ12
01からのV0スロットO信号と論理積がとられて、V0スロ
ット時信号1208を発生する。同様に、他のスロットに対
するリクエストもそれに対応するラッチ1201、1202、12
03、1204からの出力との論理積がとられるようになって
いる。それに伴って得られる信号はオアゲート1214を介
してV0スロット時信号1208をセットするようになってい
る。
このV0スロット時信号1208は、第11図に示したベクト
ルレジスター予約回路に入力される。V0スロット時信号
1208の反転信号は、1110によりV0ビジー−1 1101から
の出力と論理積がとられ、その後1111によりV0ビジー−
3 1102への入力として論理和がとられる。前述のよう
にV0ビジー−3 1102により伝送された信号は命令発生
をホールドする。V0スロット時信号1208の反転信号は、
1期間だけV0ビジー−3 1101をクリアーするので、他
と抵触するものがなければ命令が発生される。
テールゲート命令が発生すると、V0ビジー−2 1103
が、発生信号1106とV0ビジー−1 1101からの出力とに
応じて1116による論理積演算を介してセットされる。V0
ビジー−2 1103は次のテールゲート作用が同一ベクト
ルレジスターに対して行われるのを防いでいる。V0ビジ
ー−2 1103の内容はV0ビジー1 1101の内容との論理
積がとられて、V0ビジー−3 1102に対する入力を発生
するから、V0ビジー−3 1102が次のV0スロット時信号
1208に応じてクリアーできなくなっている。
第13図において、ベクトルアドレスコントロール回路
には、エレメントアドレスカウンター1005と、可変遅延
回路1304と、ノーマルベクトル長カウンター1302と、テ
ールゲートベクトル長カウンター1301とが含まれてい
る。
可変遅延回路1304は、命令発生時に生ずる書込みV0信
号1317によりトリガーされる。遅延量は、どの機能ユニ
ットを用いるべきかを示す機能ユニット実行信号(Go F
unctional Unit signal)1315とテールゲート信号1330
とによって決められる。ノーマル対テールゲート命令
(normal vs.tailgating instructions)に対して異な
った遅延量が使われている。適当な時間だけ遅延させる
と、可変遅延回路1304から書込み開始信号1328が発生す
る。ラッチ1328はこの書込み開始信号1318によってセッ
トされて、ベクトルレジスターに書込みモード信号を供
給する。ラッチ1328からこの書込みモード信号は、伝送
されたエレメントアドレスが書込み動作のためのもので
あると示している。
書込み開始信号1318は、1309により命令解読器からの
読取り実行V0信号1319との論理和がとられる。オアゲー
ト1309からの出力はラッチ1305をセットするようになっ
ている。従って、ラッチ1305は、読出し動作実行直後
か、叉は、ノーマル書込み動作のための所定遅延時間後
にセットされる。ノーマルベクトル長カウンター1302の
動作は、ラッチ1305からの出力によりイネーブルされ
る。ノーマルベクトル長カウンター1302が値1をホール
とすると、ラッチ1305がそれによりリセットされて、ノ
ーマルベクトル長カウンター1302を不動作にする。ノー
マルベクトル長カウンター1302は、前述のイネーブルが
取り消されるまでに0へとカウントダウンする。
テールゲート作用の最中に、書込み開始信号1318が13
14によりテールゲート信号1330との論理積がとられ、ア
ンドゲート1314からの出力によりラッチ1306がセットさ
れる。ラッチ1306からの出力により、テールゲートベク
トル長カウンター1301がイネーブルされる。テーブルゲ
ートベクトル長カウンター1301が値1をホールドするよ
うになると、ラッチ1306がそれによってリセットされ
て、テールゲートベクトル長カウンター1301を不動作に
する。テールゲートベクトル長カウンター1301は、前述
のイネーブルが取り消されるまでに0へとカウントダウ
ンする。
ノーマルベクトル長カウンター1302とテールゲートベ
クトル長カウンター1301とは、何れかのカウンターが値
1に達するとオアゲート1312を介してリリースV0信号11
04を供給する。入力1322と1323とで示したように、両方
のカウンターは各期間毎にカウントダウンする。回路13
24は、両方のカウンターが同時に1へとカウントダウン
すると、余分のリリースV0信号1104を発生する。
テールゲートベクトル長カウンター1301は、テールゲ
ート作用のみに厳格に利用する。このテールゲートベク
トル長カウンター1301は、ノーマルベクトル長カウンタ
ー1302と基本的には同一の機能をなす。ノーマルベクト
ル長カウンター1302についていえば、、テールゲート信
号の反転信号1330は、アンドゲート1310を介してベクト
ル長データ1326をそのカウンターにロードする。それに
対して、テールゲート信号1310は、アンドゲート1313を
介してベクトル長データ1326をテールゲートベクトル長
カウンター1301にロードする。実行V0信号1325は、両方
のアンドゲート1310と1313での命令発生を示す。
ベルト長カウンタ1301又は1302は、両カウンタがゼロ
でない限りは、エレメントアドレスカウンタ1005を使用
可能とする。ノーマルベクトル長カウンタ1302からの出
力は、1329のラッチ1305からの出力と論理積(AND)さ
れる。テールゲートベクトル長カウンタ1301からの出力
は、1311のラッチ1306の出力と論理積される。アンドゲ
ート1329と1311からの出力は、オアゲート1307に入力を
与え、該オアゲートは、代わってエレメントアドレスカ
ウンタ1005とステップV0ラッチ1308の両方へ使用可能信
号を送る。1308で示すステップV0よりの出力は、エレメ
ントアドレスカウンタ1005の値が有効であることをベク
トルレジスタメモリに指示する。
ノーマルベクトルレングスカウンタ1302は、カウント
が値7以下になるといつでも、禁止テールゲート信号13
21を発信する。信号1321は、命令発行に関する問題を防
止する為に用いられる。もし、読み取りカウントが余り
にも小さくなると、信号1321は、テールゲーティング命
令の開始を禁止する。その時点でテールゲーティング命
令が進行中の場合は、該命令は、信号1321により影響を
受けない。
エレメントアドレスカウンタ1005は、入力1327により
指示された各タイムピリオドにおいて増分する。エレメ
ントアドレスカウンタ1005はリリースV0信号1104によっ
てクリアされる。テールゲーティングを行う場合は、第
1のリリースV0信号1104は、エレメントアドレスカウン
タ1005により無視される。
テールゲートベクトル長カウンタ1301からのイネーブ
ル信号1307は、エレメントアドレスカウンタ1005に、最
初の命令に使われた長さを超えてカウントさせることが
できる。この為、テールゲーティング命令が、エレメン
トアドレスカウンタ1005の値からアドレスオフセットを
差し引くことにより、ベクトルレジスタにデータを書き
こむことを可能にする。
第14図は、ベクトルアドレスオフセット回路を示す。
4ビットレジスタV0アドレスオフセット1409は、オアゲ
ート1419によりセットされる。オアゲート1419は、その
入力に、アンドゲート1418,1420,及び1421からの出力を
受ける。アンドゲート1421は、命令発行時に、V0アドレ
スオフセットレジスタ1409を初期化する。アンドゲート
1421への入力は、アンドゲート1422からの出力によりゲ
ートされる値2である。アンドゲート1422は、その入力
に、信号,1105で示すリクエストV0,発生(Issue)116
0、及びV0ビジー−1 1101の補数を受ける。かくし
て、V0アドレスオフセット1409は、命令発令時に、ベク
トルレジスタV0にリクエストがなされ、又、V0がすでに
ビジーでない限りは、値2で初期化される。
V0アドレスオフセット1409の内容は、アンドゲート14
20の出力により保持される。アンドゲート1420への他の
2つの入力は、信号V0ビジー−1 1101とV0スロット1
1202の補数である。その為、V0アドレスオフセット14
09の「ラップ アラウンド」(wrap around)を生じ、
一方、ベクトルレジスタV0は、ビジーのままであり、V0
スロットカウンタは、スロット1を指示しない。
V0アドレスオフセット1409に保持された値は、V0スロ
ットカウンタがスロット1を指示する度毎に増分され
る。アンドゲート1418は、その入力に、信号V0スロット
1 1202と、加算器1408により、1つだけ増分されたV0
アドレスオフセット1409からの値を受ける。
全てのベクトルレジスタに対するアドレスオフセット
は、単一の選定ネットワーク1401にファンイン(fan i
n)される。所望のアドレスオフセットは、宛先ベクト
ルレジスタを識別するi−デジタネータ信号1417によっ
て選ばれる。アドレスオフセットは、送出され、レジス
タ1407に保持される。ベクトルアドレスオフセット1010
は、命令発令時においてのみ送られるので、唯一つのア
ドレスオフセットを1401で選ぶ必要があるのみである。
次いで、ベクトルアドレスオフセット1011に保持された
値は、第10図に示す様に、全ての8個のベクトルレジス
タにファンアウト(fan out)される。ベクトルアドレ
スオフセットレジスタ1012(8個の中の2つ)は、対応
するテールゲート信号1025(8個の内の1つ)が存在し
さえすれば、命令発令時に、ロードされる。
レジスタ1407からの出力は、4つのアダー1402,1403,
1404及び1405に送られる。これらのアダーからの出力
は、選定ネットワーク1406に入力を与える。命令発令時
に、4つの信号の1つは、アダー出力のうちのどれを選
ぶかを指示する。これらの信号は、第14図では、調整オ
フセット+3 1423、調整オフセット+2 1424、調整
オフセット+1 1425、及び調整オフセット+0 1426
として、ラベル付されている。1つの信号のみが、常に
アクチブとなっている。次いで、各信号は、1組のラッ
チ1415に保持され、信号1416を介して、選定ネットワー
ク1406を制御する。
第10図にも示される、結果としてのベクトルアドレス
オフセット1010は、テーブルゲーティング演算で調整ア
ドレス1019に到達する為にチップアドレス1020から差し
引く必要がある数である。調整アドレス1019により測定
されるものは、第1命令の発令とテールゲーティング命
令の発令との間の時間の量と、テールゲーティング命令
の機能ユニットの遅れ時間との和である。その間に、命
令が如何なる回数でも発せられる可能性がある。第14図
に示す様に、第1の命令が発せられると、ベクトルアド
レス1409は、値2で初期化され、スロット1信号1202に
よって4期間毎に増分される。最終時に、テールゲーテ
ィング命令が発せられる。テールゲーティング命令の発
令時に、アドレスオフセット1409は、値0,1,2,又は3に
より調整される。この最終調整は、テールゲーティング
命令の機能ユニットタイムに左右される。
第5,6,7,8,及び9図のタイミングダイヤグラムは、第
2実施例において実施されたテールゲーティングに関す
る発明の説明の助けとなるであろう。
第5図は、代表的なテールゲーティング動作を図示す
るタイミングダイヤグラムである。ダイヤグラムは、第
1命令(V2=V0+V1)をテールゲートする第2命令(V0
=V3 & V4)、及び、第2命令をテールゲートする第3
命令(V3=V5>Ak)を示す。第5図のタイミングダイヤ
グラムでは、水平軸心に沿ったグラデーションは、期間
を表わす。3セグメント(ダッシュ、実線、ダッシュ)
に分断された水平方向の線は、それぞれ、オペランドを
機能ユニットに送るのに要する時間、機能ユニットが必
要とするタイムピリオドの数、及び、結果を宛先ベクト
ルへ送るのに要するタイムピリオドの数を表わす。伝達
時間は、機能ユニットが、ベクトルレジスタと同じモジ
ュールにあるかどうかによって変動する場合がある。こ
れは、例えば、ロジカル機能ユニットを用いる第2命令
において、そうである。
第5図のタイムピリオドでは、ベクトルレジスタV0と
V1は、オペランドを整数機能ユニットへ供給しはじめ
る。第5図の続く線は、後続の要素及び命令を介するサ
イクルを示している。オペランドは、期間当り1要素の
割合で供給される。期間t14において、結果が、第2命
令、V0テールゲーティング命令から戻り始める。その
為、ベクトルレジスタV0は、期間t14において、書き込
み動作の準備ができている必要がある。第1の結果であ
る要素ゼロは、第1命令に対して要素8を読み取るのに
続くピリオドの間に書き込まれる。要素9が読み取られ
た後で、要素1が書き込まれる。要素10が読み取られた
後で、要素2が書き込まれる。これは、テールゲーティ
ング操作の間、ベクトルレジスタV0への、又は、ベクト
ルレジスタV0からのデータの基本的な流れを示す。
命令発行制御では、テールゲーティング命令を調べて
機能ユニットが起す遅れの量を知り、どの期間で、第1
の結果が、要素ゼロでベクトルレジスタに貯えられる様
に戻るかを決定する必要がある。この情報に基づいて、
ベクトルレジスタ制御は、それが、ベクトルレジスタの
バンクサイクル(bank cycle)と同期化する迄第2の命
令を遅らせる。
第2の好ましい実施例では、最も速い場合、コンピュ
ータは、2つの期間毎に、1度命令を発することができ
る。テールゲーティング命令の場合、第2の命令が発し
得る最も早い期間は、期間t5である。第5図の例では、
第2の命令は、それが、バンクサイクルと同期化してい
ることを確認する為に、更に追加のもう1期間の間、保
持される。これにより、ベクトルレジスタ要素の読み取
りと、書き込みが、正しい、シーケンスで行われること
が確実となる。第5図は、テールゲーティングに対して
同期化する為の保持命令発行に関して画くことができ
る。
テールゲーティングが無い場合は、第1命令の全結果
要素が貯えられる迄、第2命令の発行を押える様にする
レジスタの衝突が生じるであろう。
第6図の命令発行タイミングダイヤグラムでは、タイ
ム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)のベクトル長を
仮定する。
タイムピリオドt4で、V0スロット3が示され、信号リ
クエストV0スロット3がアクチブとなる。これらの2つ
の信号の論理和により、他の全発行条件が合致すれば、
テールゲーティング命令の発令を可能とする単一期間の
間、V0ビジー−3がクリアされる。この命令の発行によ
りV0ビジー−2、ライトV0がセットされ、期間t7でテー
ルゲートベクトル長カウンタ(タイミングダイヤグラム
中V0T.G.長カウンタとラベル付)が初期化される。
期間t5のスロット0の表示V0は、もう一度V0ビジー−
3をセットし、V0アドレスオフセットを1カウントだけ
増分する。1たび、第2命令が発せられると、調整V0ア
ドレスオフセットはベクトルレジスタへ伝送される。調
整は、命令の発行と同じ期間に行われる。かくして、調
整アドレスに用いられるV0アドレスオフセットは、値2
を含む前の期間からのV0アドレスオフセットである。こ
の点から、スロットカウンタとV0アドレスオフセットは
重要ではない。次に、第7図を参照して、期間t4まで
に、エレメントアドレスカウンタは、エレメントアドレ
ス2にある。同じ期間に、ノーマルベクトル長カウンタ
は、値75(オクタル)迄減じている。ダイヤグラムの上
部の4ラインは、4つのベクトルレジスタバンクの各々
に生じるベクトルレジスタメモリ作動を図示する。初め
の2つの期間の間、データは、ベクトルレジスタバンク
から読み取られる。次に2つの期間の間では、バンク
は、休止状態にあるが、又は、テールゲーティング動作
が生じるにつれて新しいデータを書き込んでいる。期間
t8,t9及びt10は、テールゲートベクトル長カウンタが、
減少を始める前に、3期間の間保持されていることを示
している。第7図にも示す期間t9のボックスは、V0アド
レスオフセットである。伝播(propagation)及びファ
ンアウト(fan out)の遅れにより、調整オフセットの
実際の発行と、それが、ラッチされ保持される迄の間に
は、期間が存在する。
次いで第8図を参照して、期間t14では、最初の書き
込み動作が開始される。期間t13に示す減算は、有効な
減算を示し、他の時点でも減算は行われているが、それ
は、ただ使用されないままとなっている。後続の書き込
み動作の為の正しいV0チップアドレスを与える為に、4
期間毎に、V0チップアドレスから、V0アドレスオフセッ
トが差し引かれている。期間t14から前方では、ベクト
ルレジスタバンクは、同じ期間で読み取り及び書き込み
を行い、それにより、本発明のテールゲーティングが図
示されている。此の例では、読み取り動作は、書き込み
動作の前に完了するが、読み取りと書き込みのベクトル
長は、完全に別個のものであるので、読み取り動作の前
に、書き込み動作を完了することもできる。
次に第9図を参照して、ベクトルレジスタの予約は、
2つの動作の最後が完了する迄保持される。両長カウン
タは、独立して、ゼロに減じ、ついでリリースV0信号を
送出する。この例では、読み取り動作により発生した最
初のリリース信号は、V0ビジー−1をクリヤする。又、
この例では、書き込み動作により発生した第2のリリー
スV0信号は、V0ビジー−2及びV0ビジー−3をクリヤす
る。
本明細書に開示のテールゲーティング技術は、代表的
な応用において遭遇するタイプの計算において、処理ス
ピードの向上に有意義な改善をもたらす。テールゲーテ
ィングは、前述の米国特許第4,128,880に開示した連鎖
(chaining)技術とは別個の独立したものであるが、必
要に応じて、又、論理的スペースが許容されるならば、
性能を更に改善する為連鎖(chaining)に関連して用い
てもよい。
以上、2つの特定のコンピュータハードウエアの形状
を、本明細書における本発明の好ましい実施例とに図示
し、かつ、説明したが、同様の目的を達成する様に計画
されたコンピュータハードウエアのどの様な構成でも、
図示の形状に、かえて用いることができることは、当業
者に明らかであろう。したがって、ここに開示した本発
明は、“発明の詳細な説明”において述べた部品と異な
る部品を用いても実施できるものである。本出願は、本
発明の種々の適応、又は、変形等を包含することを意図
している。それ故、本発明が、請求の範囲及びその同等
項によってのみ限定されるということが明らかに意図さ
れているものである。
フロントページの続き (72)発明者 ベデル、ジェイムズ・リチャード アメリカ合衆国 54729 ウィスコンシ ン、チッペワ・フォールズ、ダブリュ ー・セントラル・ストリート 515番 (72)発明者 クバ、デニス・ダブリュー アメリカ合衆国 54729 ウィスコンシ ン、チッペワ・フォールズ、ボックス 396、ルート 2番 (72)発明者 ムーア、ウィリアム・ティ,ジュニア アメリカ合衆国 54739 ウィスコンシ ン、エルク・マウンド、ボックス 380 エー、ルート 2番 (56)参考文献 特開 昭60−15770(JP,A) 米国特許4636942(US,A) (58)調査した分野(Int.Cl.7,DB名) G06F 17/16

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】コンピュータでベクトルを処理する方法で
    あって、 (イ)コンピュータ内で第1の操作を行うステップと、 (ロ)第1の操作の為に第1の要素アドレスを順次計算
    し、これにより、前記第1の要素アドレスが連続的にイ
    ンクリメントするステップと、 (ハ)上記順次計算された第1の要素アドレスに従っ
    て、第1のベクトルレジスタの少なくとも1つの第1要
    素を読み取るステップと、 (ニ)コンピュータ内で第2の操作を行うステップと、 (ホ)第2の操作が開始されてから少なくとも1つの結
    果が発生するまでのタイムディレイ(time delay)
    と、、第1の操作の開始と第2の操作の開始との間の経
    過時間とに基づいてアドレスオフセットとを計算するス
    テップと、 (ヘ)第1要素アドレスから上記アドレスオフセットを
    差し引くことにより第2の要素アドレスを順次計算する
    ステップと、 (ト)第1のベクトルレジスタからの第1の要素の順次
    読み出しに用いられるアドレスの順次読み出しに同期し
    て、順次計算された第2の要素アドレスに従って、前記
    第2の結果を、要素のアドレス時間の少なくとも1つ分
    遅らせ、要素のアドレス順番に従い、順次第1のベクト
    ルレジスタに記憶するステップとを含むことを特徴とす
    る処理方法。
JP01505020A 1988-05-10 1989-04-07 ベクトルレジスタを備えたコンピュータにおけるベクトルテールゲーティング Expired - Fee Related JP3095393B2 (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 Child Applications (1)

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

Publications (2)

Publication Number Publication Date
JPH03504293A JPH03504293A (ja) 1991-09-19
JP3095393B2 true JP3095393B2 (ja) 2000-10-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 After (2)

Application Number Title Priority Date Filing Date
JP2000055714A Expired - Lifetime JP4144153B2 (ja) 1988-05-10 2000-03-01 ベクトルレジスタを備えたコンピュータにおけるベクトルテールゲーティング
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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8113682B2 (en) 2008-10-02 2012-02-14 Life+Gear, Inc. Multipurpose waterproof lighting device with electronic glow stick
US8186846B2 (en) 2008-10-02 2012-05-29 Life+Gear, Inc. Multipurpose lighting device with electronic glow stick
US8360596B2 (en) 2008-10-02 2013-01-29 Life+Gear, Inc. Flashlight and illuminated rear section with two-sided lighting module

Families Citing this family (7)

* 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 ベクトルプロセッサおよびレジスタのアドレス指定方法
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

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8113682B2 (en) 2008-10-02 2012-02-14 Life+Gear, Inc. Multipurpose waterproof lighting device with electronic glow stick
US8186846B2 (en) 2008-10-02 2012-05-29 Life+Gear, Inc. Multipurpose lighting device with electronic glow stick
US8360596B2 (en) 2008-10-02 2013-01-29 Life+Gear, Inc. Flashlight and illuminated rear section with two-sided lighting module
US8529087B2 (en) 2008-10-02 2013-09-10 Square 1 Bank Multipurpose lighting device with electronic glow stick
US8545040B2 (en) 2008-10-02 2013-10-01 Life+Gear, Inc. Flashlight and illuminated rear section with two-sided lighting module

Also Published As

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

Similar Documents

Publication Publication Date Title
JP2008181551A (ja) ベクトルレジスタを備えたコンピュータにおけるベクトルテールゲーティング
US5499349A (en) Pipelined processor with fork, join, and start instructions using tokens to indicate the next instruction for each of multiple threads of execution
US4507728A (en) Data processing system for parallel processing of different instructions
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
WO1994003860A1 (en) Massively parallel computer including auxiliary vector processor
US5440717A (en) Computer pipeline including dual-ported, content-addressable writebuffer
JP3797570B2 (ja) セマフォ命令用のセマフォ・バッファを用いた装置と方法
US5924120A (en) Method and apparatus for maximizing utilization of an internal processor bus in the context of external transactions running at speeds fractionally greater than internal transaction times
US5237702A (en) System for prefetching vector data based on the status of the vector registers
US4958274A (en) System with a N stages timing silo and P stages information silo for soloing information
JPH0581119A (ja) レジスタ間接モードを用いる汎用メモリ・アクセス方式
JPH06318178A (ja) キャッシュタグメモリ用キャッシュタグ制御装置及び制御方法
US6161171A (en) Apparatus for pipelining sequential instructions in synchronism with an operation clock
US5623685A (en) Vector register validity indication to handle out-of-order element arrival for a vector computer with variable memory latency
JPS6077242A (ja) メモリ書込み回路
WO1982004148A1 (en) Digital computer for executing instructions in three time-multiplexed portions
JPH0345420B2 (ja)
JPH02235289A (ja) 自己刻時レジスターファイル
US5058007A (en) Next microinstruction generator in a microprogram control unit
JP2668987B2 (ja) データ処理装置
JP3169878B2 (ja) メモリ制御回路
US6963961B1 (en) Increasing DSP efficiency by independent issuance of store address and data
JPH07111683B2 (ja) タスク切換機能付プロセッサ
JPS6229813B2 (ja)
JPS62251829A (ja) シンボリツク処理システムおよび方法

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20080804

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees