JP2598441B2 - ベクトルデータ処理装置 - Google Patents

ベクトルデータ処理装置

Info

Publication number
JP2598441B2
JP2598441B2 JP33024487A JP33024487A JP2598441B2 JP 2598441 B2 JP2598441 B2 JP 2598441B2 JP 33024487 A JP33024487 A JP 33024487A JP 33024487 A JP33024487 A JP 33024487A JP 2598441 B2 JP2598441 B2 JP 2598441B2
Authority
JP
Japan
Prior art keywords
address
register
data
vector
addresses
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
JP33024487A
Other languages
English (en)
Other versions
JPH01173165A (ja
Inventor
克佳 北井
泰弘 稲上
由子 玉置
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP33024487A priority Critical patent/JP2598441B2/ja
Publication of JPH01173165A publication Critical patent/JPH01173165A/ja
Application granted granted Critical
Publication of JP2598441B2 publication Critical patent/JP2598441B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、ベクトル計算機におけるベクトルデータ処
理装置に係わり、特に、同一の主記憶アドレスをアクセ
スするインデクス付きベクトル・ロード/ストア命令や
同一の主記憶アドレスをアクセスする複数個のベクトル
・ロード/ストア命令を効率よく実行するベクトルデー
タ処理装置に関する。
〔従来の技術〕 一般にベクトル計算機で取り扱うベクトル・データに
は、ベクトル・データを構成する要素(通常8バイト単
位)が、主記憶上に一定の間隔で配置されるベクトル・
データと、主記憶上にランダムに配置されるベクトル・
データの2種類がある。これらのベクトル・データの各
要素のアドレスは次のようにして求まる。前者は、ベク
トル・データの先頭アドレスを保持するレジスタ(ベク
トル・ベース・レジスタ、以下VBRと略す)と隣り合う
要素間の距離を保持するレジスタ(ベクトル増分レジス
タ、以下VIRと略す)とにより、ベクトル・データのn
番目の要素のアドレスは、VBRの内容にVIRの内容にnを
乗じた結果を加えたもの(VBR+VIR*n)となる。後者
は、VBRと要素ごとに先頭要素からの距離を表すいわゆ
るリスト・ベクトルを保持するベクトル・レジスタとに
より、ベクトル・データのn番目の要素のアドレスは、
VBRの内容とリスト・ベクトルを保持するベクトル・レ
ジスタのn番目の要素の内容を加えたもの(VBR+VRの
第n要素)となる。
一般にベクトル計算機では、例えば、特許公報昭61−
52512号に記載のように、複数個の同時に動作する演算
パイプラインを設け、大量のベクトル・データを高速に
処理する。また、上記のように主記憶上に配置されてい
るベクトル・データを、演算パイプライン群が必要とす
るデータ量に見合つたスループツトで供給できるよう
に、主記憶を複数個のバンクに分割し、さらに、同時に
動作するロード/ストア・パイプラインを複数個設けて
いる。
1個のベクトル命令の処理を高速化することを考えた
場合、同一種類の同時に動作する複数個の演算パイプラ
インやロード/ストア・パイプラインをたばにして、ベ
クトル・データの各要素を各パイプラインに振り分け、
たばにしたパイプラインの個数に等しい要素数単位で処
理を行う、いわゆる要素並列型のパイプライン構成がと
られることがある。つまり、同一種類のパイプラインが
4個ずつパイプライン0ないしパイプライン3まである
場合には、4n+i(nは0または自然数、iは0〜3)
番目の要素を4要素同時にパイプラインiで処理し、次
に、4(n+1)+i番目の要素を4要素同時にパイプ
ラインiで処理するというように、4要素単位でパイプ
ライン処理を行うものである。
要素並列型のパイプライン構成をとるベクトル計算機
においては、主記憶上にランダムに配置されたベクトル
・データは以下の手順によりパイプライン的にアクセス
される。今、例えば、4要素並列の構成になつているロ
ード/ストア・パイプラインにより、インデクス付きロ
ード命令およびインデクス付きストア命令を実行する場
合を、第7図を用いて説明する。インデクス付きロード
/ストア命令は、リスト・ベクトルを用いて、主記憶上
にランダムに配置されるベクトル・データをロード/ス
トアする命令である。第7図では、簡単のため、主記憶
は4バンクからなるとしている。
第7図において、100はVRAないしVRDからなるベクト
ル・レジスタ(VR)、106はベクトル・ベース・レジス
タ(VBR)、200はアドレス発生部、210aないし210dは加
算器、220は一致検出回路、300は主記憶制御部、310は
メモリ・リクエスタ、400はバンク0ないしバンク3か
らなる主記憶、800はアクセス・データ処理部である。
この例では、ベクトルレジスタ100のVR0部は主記憶上の
アドレス保持用に、VR1以降はベクトル・データ保持用
に使われる。
まず、主記憶上にランダムに配置されているベクトル
・データをベクトル・レジスタへロードするインデクス
付きロード命令を実行する場合について述べる。今、リ
スト・ベクトルVR0、ベクトル・ベース・レジスタVBR0
によつてアドレス付けされるベクトル・データをVR1に
読み出す場合について述べる。
ベクトル・レジスタ100のVRAないしVRDは、それぞ
れ、要素番号が4n,4n+1,4n+2,4n+3のデータを保持
する。インデクス付きロード命令で用いるリスト・ベク
トルを保持するVR0のVRAないしVRDより1要素ずつ、計
4要素分のリスト・ベクトルが読み出され、読み出され
た4要素の各リスト・ベクトルは、アドレス発生部200
へ送られる。
アドレス発生部200は、加算器210aないし210dを用い
て、ベクトル・ベース・レジスタ106のVBR0が保持する
内容と、VR0から読み出された内容を加え、主記憶より
読み出すデータのアドレスを計算する。アドレス発生部
200は、求めた4個のアドレスを主記憶制御部300へ送
る。
主記憶制御部300内のメモリ・リクエスタ310は、主記
憶400が複数個(第7図においては4個)のバンクから
なること、および、アドレス発生部200より同時に複数
個のアクセス要求が送られてくるため、主記憶400のバ
ンク・ビジーのチエツクやアクセス要求の優先順位の決
定などを行う。メモリ・リクエスタ310は、アクセス要
求の優先順位を決定したのち、アドレス発生部200より
送られてきたアドレスが属する主記憶400のバンクに対
してアクセス要求を出す。
今、アドレス発生部200より送られてきた4個のアク
セス要求の中で、同一バンクに対する要求が2個あつた
場合には、いわゆるバンク・コンフリクト(バンク競
合)が生じる。この場合には、まず1個が選択され、バ
ンク・アクセス時間後に、残りの1個が選択されること
となる。つまり、同一のバンクにアクセス要求が複数個
あると、2個目以降のアクセスはバンク・アクセス時間
ずつ遅れることとなり、スループツトは低下する。ま
た、データの読み出し処理または書き込み処理が行われ
ている時(バンク・ビジーの時)にアクセス要求があれ
ば、現在処理中の処理が終わるまで、アクセス要求のあ
つたアドレスに対するデータの読み出しは待たされるこ
ととなる。したがつて、できるだけ同一のバンクにアク
セス要求が集中しないことが望ましい。逆に、バンク・
コンフリクトが生じない限り、毎マシン・サイクル4要
素ずつ送られてくるアクセス要求が処理される。
主記憶400を構成するバンク0ないしバンク3は、メ
モリ・リクエスタ310から送られてきたアドレスのデー
タを読み出し、バンク・サイクル時間後に読み出したデ
ータをアクセス・データ処理部800へ送出する。アクセ
ス・データ処理部800へ送出されたデータは、ベクトル
・レジスタ100のVR1に格納される。
以上の手順により、インデクス付きロード命令は実行
される。
次に、インデクス付きストア命令の場合について、第
7図を用いて説明する。今、リスト・ベクトルVR0、ベ
クトル・ベース・レジスタVBR0によつてアドレス付けさ
れる主記憶に、VR1が保持しているベクトル・データを
書き込む場合について述べる。
ストア命令の場合には、VR0のVRAないしVRDより1要
素ずつ計4要素分のリスト・ベクトルを読み出すと同時
に、ストアするデータもVR1のVRAないしVRDより1要素
ずつ計4要素分読み出す。VR0から読み出されたリスト
ベクトルはアドレス発生部200へ、VR1から読み出された
データはアクセス・データ処理部800へ送られる。
アドレス発生部200は、加算器210aないし210dを用い
て、ベクトル・ベース・レジスタ106のVBR0が保持する
内容と、VR0から読み出された内容を加え、主記憶より
読み出すデータのアドレスを計算する。アドレス発生部
200は、求めた4個のアドレスを主記憶制御部300へ送
る。
主記憶制御部300内のメモリ・リクエスタ310は、アク
セス要求の優先順位を決定したのち、アドレス発生部20
0より送られてきたアドレスが属する主記憶400のバンク
に対してアクセス要求を出す。また、主記憶400のバン
クに対してアクセス要求が出されるのと同期して、アク
セス・データ処理部800は、ストア・データを主記憶400
のバンクに送出する。こうして、インデクス付きストア
命令が実行される。
上記の説明よりわかるように、近隣する要素番号のベ
クトル・データが互いに異なるバンクに存在すれば、1
マシン・サイクル当たり4個のデータを読み出したり書
き込んだりできる。しかし、近隣する要求番号のベクト
ル・データが同一のバンクに存在する場合には、バンク
・コンフリクトのために、1回のバンク・コンフリフト
当たりバンク・サイクル時間の遅延を生じ、主記憶から
のデータの読み出しや書き込みが間欠的になつてしま
う。一般に現在のベクトル計算機では、近隣する要素番
号のベクトル・データが同一のバンクに存在しないよう
にするために、主記憶のバンク数を64ないし256もの大
きな値としている。
しかし、例えば科学技術計算においてよくあらわれる
階段関数をリスト・ベクトルとして主記憶をアクセスす
る場合には、同一のアドレス(同一要素)を連続してア
クセスするために、バンク数を増加させてもバンク・コ
ンフリクトの回数を減らすことはできない。ここで、階
段関数y=f(x)(但しxは整数とする)は、複数個
の連続するxの値に対して、同一のyをとる関数であ
る。
そこで、従来は、公開特許公報昭62−115571号(以下
「文献A」と記す)に記載されているように、第7図に
おいて、ベクトル・レジスタ100の同時に読み出されるV
RAないしVRD対応にアドレス加算器を設けているアドレ
ス発生部200にアドレスの一致検出回路380を設けてい
る。一致検出回路380は、4つの間接アドレス(インデ
クス)について一致するものの有無を検出し、一致情報
をアクセス・データ処理部800とメモリ・リクエスタ310
に送る。メモリ・リクエスタ310は、一致情報を用い
て、同一アドレスに対する2ないし4個のアクセス要求
の中で、ロード命令の場合には要素番号の一番小さいも
の(VRA,VRB,VRC,VRDの順に小さい)以外のアクセス要
求を抑止し、ストア命令の場合には要素番号の一番大き
いもの以外のアクセス要求を抑止する。つまり、要求番
号順で処理をするので、ロードの場合、要素番号の一番
小さいもの(早いもの)で処理すれば早くすみ、又、ス
トアの場合、順に書き込みを重ねて行けば、最後に一番
要素番号の大きなもの(遅いもの)が残るわけである。
アクセス・データ処理部800は、一致情報を用いて、ロ
ード・アクセスの場合には、主記憶400から送られたデ
ータを抑止されたアクセス要求にも分配し、ストア・ア
クセスの場合には、アドレスが一致した要素の中で要素
番号の一番大きい要素のデータのみを主記憶400へ送出
する。
このようにして、ベクトル・レジスタ100のVRAないし
VRDから同時に読み出された4つのリスト・ベクトルに
関しては、一致するものの有無を検出し、同一アドレス
に対する2ないし4個のアクセス要求の中で、ロード命
令の場合には要素番号の一番小さいもの以外のアクセス
要求を抑止し、ストア命令の場合には要素番号の一番大
きいもの以外のアクセス要求を抑止することにより、バ
ンク・コンピユーコンフリクトの発生を防いでいた。
一方、本出願人は、さきに、特開昭61−22650号(以
下、「文献B」と記す)により、複数のベクトル・レジ
スタと、複数のバンクを有する主記憶装置との間で、メ
モリリクエスタを用いてデータの転送を行なうベクトル
・データ処理装置において、シリアルに送られる連続し
たベクトル要素間のアドレスを比較する比較器をパイプ
ラインに対応して設け、ベクトル・ロード時に前記比較
器の比較結果が一致した場合には、後発のリクエスト
(アクセス要求)をキヤンセルするか、ダミーとして処
理し、ベクトル・ストア時に前記比較結果が一致した場
合には、前発のリクエストをキヤンセルすることで、バ
ンク・コンフリクトを防止する方式を提案し、すでに公
開されている。
〔発明が解決しよすとする問題点〕
しかし、上記文献Aに示す従来の技術では、ベクトル
・レジスタ100のVRAないしVRDから同時に読み出された
4つの要素のアドレスに関しては、同時に処理される要
素対応にアドレス加算器が設けられているアドレス発生
部にアドレスの一致検出回路を備えることにより、一致
するものの有無を検出し、同一アドレスに対する複数個
のアクセス要求の中で、ロード抑止命令の場合には要素
番号の一番小さいもの以外のアクセス要求を抑止し、ス
トア命令の場合には要素番号の一番大きいもの以外のア
クセス要求を抑止することにより、バンク・コンフリク
トの発生を防ぐことができるが、同時に読み出された4
つの要素のアドレスと次に同時に読み出された4つの要
素のアドレスとにわたつて、一致するものの有無を検出
し、同一アドレスに対する複数個のアクセス要求を1個
に抑止することは考慮されていなかつた。
このため、例えば、4n個の要素の値がすべて等しいリ
スト・ベクトルを用いて主記憶をアクセスする場合、上
記従来の技術では、n回のバンク・コンフリクトが発生
し、バンク・サイクル時間をTbとした時、n×Tb時間も
の処理時間を要した。
一方、上記文献Bに示す従来の技術では、専らシリア
ルに転送される直前直後の要素間でのバンク・コンフリ
クト問題のみを考慮したものであつて、要素並列型のロ
ード/ストア・パイプラインに対しては何も考慮されて
いないため、この種の要素並列型における並列の要素間
でのバンク・コンフリクトを解決することはできない。
そこで、上記文献Bの装置を、上記文献Aのように要
素並列型に拡張変更することが考えられるが、単に上記
文献Bと上記文献Aと合わせても、実現することはでき
ない。そのわけは、以下に詳しく述べるように、
(1)、上記文献Bの装置は、単に同一ライン上の直前
直後のアドレスを比較するだけであつて、主記憶装置に
リクエストの出されたアドレスを少なくとも各バンク1
個ずつ保持しておく保持手段がないため(この点、上記
文献Aも同様)、後続のリクエストをチエツクしてキヤ
ンセルすることはできないこと、及び、(2)、上記文
献Bの装置は、要素間のアドレスを比較してその一致を
検出する装置(比較器)が(主記憶装置装置内にバンク
対応で設けていなくて)アクセス・パイプライン上に該
アクセスパイプライン対応で設けてあるに過ぎないこと
(この点も上記文献Aと同様)による。
例えば、上記拡張変更したものにおいて、並列要素数
(パイプライン数)及び主記憶上のバンク数を共に4と
し、先発のi,i+1,i+2,i+3と、後発のi+4,i+5,i
+6,i+7の8要素の比較を行つてその一致性を調べる
場合を考える。具体的なアドレス列を、 主記憶4バンク アドレス列1,1,2,2,|2,2,1,1,|1,1,2,2|… とすると、主記憶へのリクエストは、アドレス1とアド
レス2に対して1回ずつ出せばよいが、そのためには、
主記憶へリクエストの出されたアドレスを少なくとも各
バンクに対応して1個ずつ保持しておく必要がある。し
かし、上記文献A及びBでは、この保持手段に関する配
慮はされていないため、この例でのアドレスの一致は検
出できない。文献A,Bを合せても、検出できるのは、同
一ライン上に前後して同一のアドレスが続く場合と、同
時にライン間に同一アドレスが存在する場合に限られ、
それ以外の場合での検出は不可能だからである。
又、具体的なアドレス列として、 1,1,5,5,|5,5,1,1,|1,1,5,5|…… のように、アドレス1とアドレス5とでバンク・コンフ
リクトを生じる場合、アドレス1のデータもアドレス5
のデータも同一のバンク(いずれもバンク#1)から読
み出されることになる。このような場合、アドレス1や
アドレス5のデータがいつ読み出されるかというタイミ
ングを管理しなければ、キヤンセルした要素のデータを
正しくコピーすることはできない。この、いつ読み出さ
れるかというのは、アドレスの一致をアクセス・パイプ
ライン上で検出することによりわかるわけではなく、主
記憶制御装置でプライオリテイをとつた後でなければわ
からない。しかし、上記文献A,Bのいずれでも、一致を
検出する比較器は、アクセスパイプライン対応で設けら
れていて、主記憶制御装置内にバンク対応で設けること
については配慮されていない。
従つて、本発明の目的は、上記各従来技術の問題点を
克服し、最初に読み出された1又は同時複数個(例えば
4個)の要素のアドレスと次に読み出された1又は同時
複数個(例えば4個)の要素のアドレスとにわたつて、
広範囲で、アドレスの一致するものの有無を調べてその
一致するものを洩れなく検出し、同一アドレスに対する
複数個のアクセス要求の中で、1つのアクセス要求を除
く他のアクセス要求(例えば、ロード命令の場合には要
素番号の一番小さいもの以外のアクセス要求、ストア命
令の場合には要素番号の一番大きいもの以外のアクセス
要求)を抑止することにより、より確実にバンク・コン
フリクトの発生を防ぐようにしたベクトルデータ処理装
置(例えば、4n個の要素の値がすべて等しいリスト・ベ
クトルを用いて何回も主記憶をアクセスする場合、バン
ク・サイクル時間をTbとした時、1×Tb時間の処理時間
で処理を行えるようなベクトルデータ処理装置)を提供
することにある。
さらに、要素並列型等のロード/ストア・パイプライ
ンを複数個設け、各々のロード/ストア・パイプライン
で、異なるベクトル・ロード/ストア命令を実行した場
合には、異なるベクトル・ロード/ストア命令が同一の
アドレスを参照し、一つのインデクス付きロード/スト
ア命令を実行する場合と同じく、バンク・コンフリクト
が生じることがある。例えば、ベクトル・データAを最
初の要素から順に100要素ロードする命令と、2番目の
要素から順に100要素ロードする命令が、同時に実行さ
れた場合には上記の問題が生じる。
従つて、本発明の別の目的は、複数個のロード/スト
ア・パイプラインで同時に実行される異なるベクトル・
ロード/ストア命令が、同一のアクセスを参照する場
合、アクセスが一致することを検出し、同一アドレスに
対する複数個のアクセス要求を1個に抑止することによ
り、バンク・コンフリクトの発生を防ぎ、同時に実行さ
れる複数個のベクトル・ロード/ストア命令を効率よく
実行できるようなベクトルデータ処理装置を提供するこ
とにある。
また、同一バンクに対する複数の異なるアドレスがそ
れぞれ間を置いて繰り返されるサクセス要求の出される
ことがある。
従つて、本発明の更に別の目的は、同一バンクに対す
る複数の異なるアドレスが各々間を置いて繰り返し現れ
るようなアクセス要求に対しても、そのようなアクセス
の繰返しをなくし、それぞれの(異なる)アクセス要求
を1回に抑止することで、バンクコンフリクトを防止す
るベクトルデータ処理装置を提供することにある。
〔問題点を解決するための手段〕
上記目的を達成するため、本発明のベクトルデータ処
理装置では、基本構想として、主記憶装置に対してアク
セス要求の出されるアドレスを保持する手段(第2のア
ドレス保持手段)、及び該手段に保持されたアドレスを
その後のアクセス要求によるアドレスと比較してその一
致性を検出する手段をいずれも各バンクに対して順次に
連続して飛び飛びに出される要素のアドレス間に一致す
るものがあるかどうかを、広範囲に亘つて洩れなく調べ
て、その一致するものを確実に検出し、一致するアドレ
スに対するアクセス要求をキヤンセル(抑止)する。
更に詳しく述べると、本発明のベクトルデータ処理装
置は、ベクトルデータ保持手段と複数のバンクからなる
主記憶装置との間で、アクセス要求に従つてロード又は
ストアのためのデータ転送を要素並列形式で行なう装置
において、前記ベクトルデータの要素の主記憶装置上の
アドレスで前記データ転送を行なうデータ転送手段より
並列的に転送される複数のアドレスをその都度保持する
第1のアドレス保持手段350a〜dと、その保持されたア
ドレスの1つを選択する選択手段390と、選択されたア
ドレスを保持する第2のアドレス保持手段362と、第1
及び第2の保持手段にそれぞれ保持された後発及び先発
のアドレスを比較してアドレス相互の一致性(同一性)
を検出する検出手段380と、一致性の検出時にそのアド
レスに対するアクセス要求を1つのみに制限して実行す
るアクセス抑止手段とを備える。そして、第1及び第2
のアドレス保持手段、選択手段、並びに、検出手段は、
いずれもバンク対応で設ける。
本発明は、又、複数の異なるベクトル・ロード又はス
トア命令を実行する場合にも適用され、異なる命令間で
同時又は順次の要素間のアドレスが一致するとき、それ
らのアドレスに対するアクセスを1回に制限するように
構成される。
本発明は、又、同一バンクに対する複数の異なるアド
レスがそれぞれ間を空けて複数回繰り返されるアクセス
要求のある場合にも適用され、そのような場合には、各
々のバンクに対応して、上記の第2アドレス保持手段、
読み出しデータ保持手段、及び、書き込みデータ保持手
段を複数個ずつ(362a,362b,520a〜523a,520b〜523b,73
0a1〜730d1,730a2〜730d2)設けることにより、上記繰
返されるアクセス要求をキヤンセルして、異なるアドレ
ス毎に1個とすることができる。
本発明の好適な実施例において、1つのロードもしく
はストア命令、又は、複数の異なるロードもしくはスト
ア命令に適用される場合、データは要素並列型又は非並
列型のいずれであつてもよい。それら全体として同時
(並列)及び順次に要素が転送される場合、本発明は、
それら同時及び順次の広範囲の要素間でアドレスの一致
性を検出することによつて、同一アドレスに対するアク
セスの繰り返しを確実になくし、バンクコンフリクトを
防止する。
ロード命令の場合、同一アドレスに対するアクセス要
求の中で、処理されるアクセス要求は要素番号の一番小
さい(最先の)ものであり、それ次外のものが抑止され
る。ストア命令の場合、処理されるアクセス要求は要素
番号の一番大きい(最後の)ものであり、それ以外のも
のが抑止される。
〔作用〕
上記構成によると、以下に分説するように、同一のア
ドレスをアクセスするインデクス付きベクトル・ロード
又はストア命令を実行する場合に発生するバンク、コン
フリクトや、同一のアドレスをアクセスする複数個のベ
クトル・ロード又はストア命令を同時に実行する場合に
発生するバンク・コンフリクトを防ぎ、ベクトル・ロー
ド又はストア命令を効率よく実行することができる。
第1に、ベクトル・ロード命令の場合について述べ
る。
主記憶のバンク対応に設けられている上記各手段を具
備したことにより、まず、主記憶に対して読み出し要求
の出されたアドレスを、選択手段390で選択したアドレ
スを保持する手段362(362a,362b)に保持させ、このア
ドレスから読み出されたデータを、バンクから読み出さ
れたデータを保持する手段520〜523(520a,b〜523a,b)
に保持させる。
この時、データを転送する手段から送られてくる1個
以上のアドレスの中で選択手段が選択したアドレスを保
持する手段が保持しているアドレスと一致するものがあ
れば、一致したアドレスに対する種記憶アクセスを抑止
する。選択手段は、どのデータを転送する手段から送ら
れてきたアドレスが一致したかを示す信号と、選択手段
が選択したアドレスを保持する手段の中のどの手段と一
致しているかを示す信号を送出する。これら信号を用い
て、バンクから読み出されたデータを保持する手段か
ら、必要なデータをコピーすることによつて、同一アド
レスに対する読み出し要求を抑止することができる。
また、データを転送する手段から送られてくる1個以
上のアドレスの中で、選択手段が選択したアドレスを保
持する手段が保持しているアドレスと一致するものがな
い場合でも、データを転送する手段から送られてくるア
ドレスの中で、互いに一致するものであれば、一致した
アドレスに対する読み出し要求を1回に抑止する。選択
手段は、どのデータを転送する手段から送られてきたア
ドレスが互いに一致したかを示す信号を送出する。この
信号を用いて、読み出されたデータをコピーすることに
よつて、同一アドレスに対する複数回の読み出し要求を
1回に抑止することができる。前記アドレス保持手段36
2(362a,b)に保持されたアドレスは、その後に同一バ
ンクに対し、前記保持されたアドレスとは別のアドレス
のアクセス要求がある迄保持される。なお、同時に送ら
れて来る互いに異なる複数のアドレスが同一バンクに対
するものであるときは、通常のように、所定の順序で順
次アクセス要求を出す。
このように、主記憶に対して読み出し要求の出された
アドレスと、このアドレスから読み出されたデータを各
バンクに対応して保持することにより、前後する連続的
な又は飛び飛びの同一アドレスの検出を確実にしてこの
アドレスに対する読み出し要求の回数を減らすことがで
き、バンク・コンフリクトによる性能の低下を抑止する
ことができる。
第2に、ベクトル・ストア命令の場合について述べ
る。
主記憶のバンク対応に設けられている上記各手段を具
備したことにより、まず、主記憶に対して書き込みを行
うアドレスを、選択手段が選択したアドレスを保持する
手段に保持させ、このアドレスへ書き込むデータを、バ
ンクへ書き込まれるデータを保持する手段730a〜730d
(730a1〜730d1,730a2〜730d2)に保持させる。
この時、データを転送する手段から送られてくる1個
以上のアドレスの中で、選択手段が選択したアドレスを
保持する手段が保持しているアドレスと一致するものが
あれば、選択手段は、一致したアドレスの中の1つを選
択する。また、選択されたアドレスに対応する書き込み
データを、バンクへ書き込まれるデータを保持する手段
に保持させ、書き込みデータを更新する。一方、このア
ドレスに対する書き込み要求は出さない。
次に、データを転送する手段が送られてくる1個以上
のアドレスの中で、選択手段が選択したアドレスを保持
する手段が保持しているアドレスと一致するものがない
場合において、選択手段が選択したアドレスを保持する
1個以上の手段の中で、未使用のものがある時には、選
択手段は、データを転送する手段から送られてきたアド
レスの中から1個を選択する。そして、選択されたアド
レスと、このアドレスへ書き込むデータを、それぞれ、
選択する手段が選択したアドレスを保持する手段と、バ
ンクへ書き込まれるデータを保持させる手段に保持させ
る。この時には、このアドレスに対する書き込み要求は
出さない。未使用のものがない時には、選択したアドレ
スを保持する手段が保持しているアドレスに対する書き
込み要求を出し、書き込み処理を行う。
このように、主記憶に対して書き込みを行うアドレス
と、このアドレスへ書き込むデータを更新しつつ、各バ
ンクに対応して保持することにより、前後する連続的な
又は飛び飛びの同一のアドレスの検出を確実にしてこの
アドレスに対する書き込み要求の回数を減らすことがで
き、バンク・コンフリクトによる性能の低下を抑止でき
る。
〔実施例〕
第3図は、本発明の主記憶制御装置(ベクトルデータ
処理装置)の1実施例であり、以下、第3図に従つて、
同一のアドレスをアクセスするインデクス付きロード/
ストア命令を実行する場合について説明する。本実施例
では、ロード/ストア・パイプラインは4要素並列の構
成であり、主記憶は、4つのバンクからなる場合につい
て示している。なお、本実施例では、バンク数がたまた
ま並列要素数と一致しているが、両者の数の間に直接関
係はなく、バンク数は通常128程度ある。なお、第1図
は以下で述べるように第3図におけるメモリ・リクエス
タ330の詳細図である。
第3図において、100はVRAないしVRDからなるベクト
ル・レジスタ(VR),106はベクトル・ベース・レジスタ
(VBR),200はアドレス発生部、210aないし210dは加算
器、300は主記憶制御部、330ないし333はメモリ・リク
エスタ、400はバンク0ないしバンク3の4バンクから
なる主記憶、500はフエツチ・データ処理部、600は命令
実行制御部、700はストア・データ処理部、1000はロー
ド/ストア・パイプラインを表す。
なお、第3図で、主記憶制御部300中の、後述するバ
ンク番号デコーダ310a〜310dよりも左方(310a〜310d21
0a〜210d)の部分は、並列要素数に対応して設けられ、
これに対し、メモリリクエスタ330,331,332,333よりも
右方の部分は、バンクの個数に対応して設けられてい
る。
まず、主記憶上にランダムに配置されているベクトル
・データをベクトル・レジスタへロードするインデクス
付きロード命令を実行する場合について述べる。今、リ
スト・ベクトルVR0、ベクトル・ベース・レジスタVBR0
によつてアドレス付けされるベクトル・データをVR1に
読み出す場合について述べる。
ベクトル・レジスタ100のVRAないしVRDは、それぞ
れ、要素番号が4n,4n+1,4n+2,4n+3のデータを保持
する。インデクス付きロード命令で用いるリスト・ベク
トルを保持するVR0のVRAないしVRDより1要素ずつ、計
4要素分のリスト・ベクトルが読み出され、読み出され
た4要素のデータは、104aないし104dを通してアドレス
発生部200へ送られる。
アドレス発生部200は、加算器210aないし210dを用い
て、ベクトル・ベース・レジスタ106のVBR0が保持する
内容と、VR0から読み出された内容を加え、主記憶より
読み出すデータのアドレスを計算する。アドレス発生部
200は、求めたアドレスを302aないし302dを通して主記
憶制御部300へ送る。
ここで、主記憶制御部300の詳細を第4図に示す。第
4図における番号と第3図における番号は対応する。第
4図において、310aないし310dはバンク番号デコーダ、
330ないし333はメモリ・リクエスタ、350aないし350dは
Validビツト付きレジスタ、350a2ないし350dlはValidビ
ツト付きレジスタ、350a2ないし350d2はValidビツト付
きレジスタ、350aないし350d3はValidビツト付きレジス
タ、360,360−1ないし360−3は優先制御回路、370,37
0−1ないし370−3はレジスタ、398はAND回路、399aな
いし399dはレジスタを表す。ここに、Validビツト付き
レジスタは、値がセツトされると値がセツトされるのと
同時にValidビツトが1となり、リセツト信号が入るとV
alidビツトが0となるレジスタである。値のセツトとリ
セツト信号が同時に入つた場合には、リセツト信号は抑
止される。
第4図において、バンク番号デコーダ310aないし310d
は、アドレス発生部200より302aないし302dを通して送
られてきた各アドレスがそれぞれどのバンクに属する
か、それらアドレスが属するバンク番号を求め、バンク
に対応したメモリ・リクエスタ330ないし333の中の1つ
にアドレスを振り分け転送する。なお、第4図では、こ
のメモリ・リクエスタ中の1つに転送するための切換え
手段は図示してない。330ないし333はそれぞれ主記憶の
バンク0ないしバンク3に対するメモリ・リクエスタで
ある。メモリ・リクエスタ331ないし333の詳細はメモリ
・リクエスタ330と同様である。Validビツト付きレジス
タ350aないし350dは、バンク番号デコーダ310aないし31
0dが、メモリ・リクエスタ330へ転送したアドレスを保
持する。Validビツト付きレジスタ350a1ないし350d1
は、バンク番号デコーダ310aないし310dが、メモリ・リ
クエスタ331へ転送したアドレスを保持する。Validビツ
ト付きレジスタ350a2ないし350d2は、バンク番号デコー
ダ310aないし310dが、メモリ・リクエスタ332へ転送し
たアドレスを保持する。Validビツト付きレジスタ350a3
ないし350d3は、バンク番号デコーダ310aないし310d
が、メモリ・リクエスタ333へ転送したアドレスを保持
する。
ここで、メモリ・リクエスタ330の詳細を第1図に示
す。第1図における番号と第4図における番号は対応す
る。第1図において、350aないし350dはValidビツト付
きレジスタ、362はValidビツト付きレジスタ、370はレ
ジスタ、380は一致検出回路、390は選択回路を表す。
Validビツト付きレジスタ350aないし350dは、第4図
におけるバンク番号デコーダ310aないし310dが転送した
アドレスを保持する。Validビツト付きレジスタ350aな
いし350dのValidビツトは、アドレスを保持するとセツ
トされ、306a1ないし306a4が1となるとそれぞれリセツ
トされる。Validビツト付きレジスタ362は、363aが1の
時に選択回路390から出力されるアドレスを保持する。
このアドレスは、次に同一バンクに対し別のアドレスの
アクセス要求がなされる迄保持され続ける。Validビツ
ト付きレジスタ362のValidビツトは、アドレスを保持す
るとセツトされ、365aが1となるとリセツトされる。レ
ジスタ370は、371aが1の時に選択回路390から出力され
るアドレスを保持する。レジスタ370にアドレスがセツ
トされると、340を通して主記憶400のバンク0に対して
アクセス要求とアドレスを送出する。本実施例では、Va
lidビツト付きレジスタ362は、ロード命令の場合にはす
でに主記憶に対して読み出しを要求したアドレスを保持
し、ストア命令の場合には主記憶に対して書き込みを行
うアドレスを保持する。一致検出回路380は、Validビツ
ト付きレジスタ350aないし350dに保持されているアドレ
スと、Validビツト付きレジスタ362に保持されているア
ドレスの合計5つのアドレスを比較し、どのValidビツ
ト付きレジスタに保持されているアドレスが互いに等し
いかを示す信号388を送出する。
一致検出回路380の詳細を第2図に示す。第2図にお
いて、382は比較回路を表す。比較回路392は、Validビ
ツトの付いた2つのアドレスを比較する回路であり、2
つのValidビツトが共に1であり、かつ、2つのアドレ
スが等しい場合に1を出力する。
比較回路382は、5つのValidビツト付きレジスタ350a
ないし350dおよび362の中で、どれとどれとが等しいか
を示す信号388を送出する。
第1図に説明を戻す。選択回路390は、ロード命令の
場合には、次に示す優先順位に従つて、Validビツトが
1のものがなくなるまで、Validビツト付きレジスタ350
aないし350dの中から1つずつ選択する。
第1の優先順位は、Validビツト付きレジスタ350aな
いし350dの中に、Validビツト付きレジスタ362が保持す
るアドレスと等しいアドレスを保持するものがある場合
である。つまり、信号388の中でZ=A,Z=B,Z=C,Z=D
を示す信号の中に1となつているものがある場合であ
る。選択回路390は、Z=Aが1の場合には306a1に1を
送出し、Z=Bが1の場合には306a2に1を送出し、Z
=Cが1の場合には306a3に1を送出し、Z=Dが1の
場合には306a4に1を送出する。Z=A,Z=B,Z=C,Z=D
の中で1のものが2個以上ある場合には、1である信号
Z=AないしZ=Dに対応する306a1ないし306a4のすべ
てに1を送出する。
第2の優先順位は、Validビツト付きレジスタ350aな
いし350dの中に、Validビツト付きレジスタ362が保持す
るアドレスと等しいアドレスを保持するものがない場合
である。選択回路390は、Validビツト付きレジスタ350a
ないし350dの中から、350a,350b,350c,350dの優先順位
で、Valid信号が1となつているValidビツト付きレジス
タ350aないし350dが保持しているアドレスを1つ選択す
る。選択回路390は、選択したアドレスをレジスタ370お
よびValidビツト付きレジスタ362にセツトするために、
371aおよび363aに1を送出する。レジスタ370およびVal
idビツト付きレジスタ362は、選択回路390より送出され
たアドレスを保持する。レジスタ370にセツトされたア
ドレスは、340を通して主記憶400のバンク0へ送られ、
このアドレスに対するデータが主記憶400のバンク0よ
り読み出される。選択回路390は、アドレスを送出する
のと同時に、選択したValidビツト付きレジスタ350aな
いし350dに対応する信号306a1ないし306a4に1を送出す
る。Validビツト付きレジスタ350a,350b,350c,350dには
それぞれ、信号306a1,306a2,306a3,306a4が対応する。
また、信号308aにも1を送出する。さらに、選択回路39
0は信号388によつて、選択回路390が選択したValidビツ
ト付きレジスタが保持しているアドレスと等しいアドレ
スを保持しているValidビツト付きレジスタを検出し、
等しいアドレスを保持しているValidビツト付きレジス
タに対応する信号306a1ないし306a4にも1を送出する。
306a1ないし306a4によつて、それぞれValidビツト付き
レジスタ350aないし350dのValidビツトはリセツトされ
る。
主記憶400のバンク0へアクセス要求が送られると、
バンク・アクセス時間後にアドレスに対応するデータが
読み出される。
説明を第4図に戻す。
レジスタ399aは、306a1ないし306d1のいずれか1つが
1となつた時に1となり、304が1となつた時に0とな
る。レジスタ399bないし399dもレジスタ399aと同様であ
る。したがつて、AND回路398の出力である304は、バン
ク番号デコーダ310aないし310dがメモリ・リクエスタ33
0ないし333に送出した4要素のアドレスがすべて選択回
路360,360−1ないし360−3によつて選択され、これら
の4要素のアドレスに対するアクセス要求がすべて主記
憶へ送られた時に1となる。304の信号が第3図の命令
実行制御部600に送られ、これによつて、新たに4つの
要素のアドレスが、アドレス発生部200より、302aない
し302dを通してバンク番号デコーダ310aないし310dに送
られる。こうして、バンク・コンフリクトが生じない限
り、毎マシン・サイクル4要素ずつアドレスが送られて
くる。
説明を第3図に戻す。
主記憶400を構成するバンク0ないしバンク3は、メ
モリ・リクエスタ330ないし333から送られてきたアドレ
スのデータを読み出し、バンク・サイクル時間後に読み
出したデータを510ないし513へ送出する。
ここで、フエツチ・データ処理部500の詳細を第5図
に示す。第5図における番号と第3図における番号は対
応する。第5図において、520ないし523はバンク対応の
レジスタ、540aないし540dは選択回路、530aないし530d
は並列要素数対応のレジスタを表す。
レジスタ520は、信号308aが1の時に、主記憶400のバ
ンク0から読み出されたデータを保持する。レジスタ52
0が保持するデータは、メモリ・リクエスタ330の詳細を
示す第1図のValidビツト付きレジスタ362が保持するア
ドレスに対応する。レジスタ521ないし523は、レジスタ
520と同様である。メモリ・リクエスタ330ないし333よ
り送られてきた信号308aないし308dは、遅延回路Dによ
つて、主記憶400からデータが読み出されるタイミング
と、レジスタ520ないし523にデータをセツトするタイミ
ングとの同期がとられる。選択回路540aは、選択回路30
6a1が1の場合にはレジスタ520を選択し、選択信号306b
1が1の場合にはレジスタ521を選択し、選択信号306c1
が1の場合にはレジスタ522を選択し、選択信号306d1が
1の場合にはレジスタ523を選択する。ここで、選択信
号306a1ないし306d1の中で2つ以上が1となることはな
い。選択回路540bないし540dも選択回路540aと同様であ
る。レジスタ530aないし530dは、選択回路540aないし54
0dによつて選択されたレジスタ520ないし523が保持する
データを保持する。
再び説明を第3図に戻す。
レジスタ530aないし530dのすべてにデータがセツトさ
れると、102aないし102dを通して、読み出したデータ
は、ベルトル・レジスタ100のVR1に格納される。
以上の手順により、インデクテ付きロード命令は実行
される。
次に、インデクス付きストア命令の場合について、第
3図を用いて説明する。今、リスト・ベクトルVR0、ベ
クトル・ベース・レジスタVBR0によつてアドレス付けさ
れる主記憶に、VR1が保持しているベクトル・データを
書き込む場合について述べる。
インデクス付きストア命令の場合には、フエツチ・デ
ータ処理部500を用いない代わりにストア・データ処理
部700を用いる。
インデクス付きストア命令の場合には、VR0のVRAない
しVRDより1要素ずつ計4要素分のリスト・ベクトルを
読み出すと同時に、ストアするデータもVR1のVRAないし
VRDより1要素ずつ計4要素分読み出す。VR0から読み出
されたデータはアドレス発生部200へ、VR1から読み出さ
れたデータはストア・データ処理部700へ送られる。
ストア・データ処理部700の詳細を第6図に示す。第
6図における番号と第3図における番号は対応する。第
6図において、720aないし720dは並列要素数対応のレジ
スタ、730aないし730dはバンク対応のレジスタ、732aな
いし723dはレジスタ、740aないし740dは選択回路、750a
ないし750dは組み合せ回路を表す。
レジスタ720aないし720dは、ベクトル・レジスタ100
のVRAないしVRDから読み出されたデータ保持する。選択
回路740aは、選択信号752a1が1の場合にはレジスタ720
aを選択し、選択信号752a2が1の場合にはレジスタ720b
を選択し、選択信号752a3が1の場合にはレジスタ720c
を選択し、選択信号752a4が1の場合にはレジスタ720d
を選択する。選択回路740bないし740dは、選択回路740a
と同様である。レジスタ730aは、309aが1の時に選択回
路740aが選択したレジスタ720aないし720dが保持するデ
ータを保持する。レジスタ730aは、第1図においてVali
dビツト付きレジスタ362が保持するアドレスに対応する
書き込みデータを保持する。レジスタ730bないし730d
は、レジスタ730aと同様である。レジスタ732aないし73
2dは、それぞれ371aないし371dが1の場合に、それぞれ
レジスタ730aないし730dが保持するデータを保持する。
組み合せ回路750aは、選択信号306a1ないし306a4の中で
1であるものの中から、306a4,306a3,306a2,306a1の優
先順位で1つを選択し、選択した信号に対応する752a1
ないし752a4には1を送り、選択しなかつた信号に対応
する752a1ないし752a4には0を送る。752a1ないし752a4
は、それぞれ306a1ないし306a4に対応する。選択信号30
6a1ないし306a4がすべて0の場合には、752a1ないし752
a4のすべてに0を送る。組み合せ回路750bないし750d
は、組み合せ回路750aと同様である。
第3図に説明を戻す。
アドレス発生部200は、インデクス付きロード命令の
場合と同様である。
主記憶制御部300の詳細を再び第4図に示す。第4図
において、メモリ・リクエスタ330ないし333を除いて
は、インデクス付きロード命令の場合と同様である。
メモリ・リクエスタ330の詳細を再び第1図に示し、
インデクス付きストア命令の場合について述べる。メモ
リ・リクエスタ331ないし333は、メモリ・リクエスタ33
0と同様である。
選択回路390は、インデクス付きストア命令の場合に
は、次に示す優先順位に従つて、Validビツトが1のも
のがなくなるまで、Validビツト付きレジスタ350aない
し350dの中から、アドレスを1つずつ選択する。
第1の優先順位は、Validビツト付きレジスタ350aな
いし350dの中に、Validビツト付きレジスタ362が保持す
るアドレスと等しいアドレスを保持するものがある場合
である。つまり、信号388の中でZ=A,Z=B,Z=C,Z=D
を示す信号の中に1となつているものがある場合であ
る。選択回路390は、Z=Aが1の場合には306a1に1を
送出し、Z=Bが1の場合には306a2に1を送出し、Z
=Cが1の場合には306a3に1を送出し、Z=Dが1の
場合には306a4に1を送出する。Z=A,Z=B,Z=C,Z=D
の中で1のものが2個以上ある場合には、1である信号
Z=AないしZ=Dに対応する306a1ないし306a4のすべ
てに1を送出する。また、選択回路390は、309aにも1
を送出する。371aには1を送出しない。つまり、レジス
タ370にはアドレスがセツトされないので、主記憶400の
バンク0に対するアクセス要求は出ない。
第2の優先順位は、Validビツト付きレジスタ362のVa
lidビツトが1であり、かつ、Validビツト付きレジスタ
350aないし350dの中に、Validビツト付きレジスタ362が
保持するアクセスと等しいアドレスを保持するものがな
い場合である。選択回路390は、Validビツト付きレジス
タ362を選択し、Validビツト付きレジスタ362が保持す
るアドレスをレジスタ370にセツトするために371aに1
を送出する。レジスタ370は、選択回路390から送出され
たアドレスを保持する。また、第6図において、レジス
タ732aは、371aに1を送出されたことにより、レジスタ
730aが保持するストア・データを保持する。レジスタ37
0にアドレスがセツトされたことにより、主記憶400のバ
ンク0に対するアクセス要求が出され、第6図における
レジスタ732aが保持するデータがストアされる。さら
に、選択回路390は、365aに1を送出し、Validビツト付
きレジスタ362のValidビツトをリセツトする。
第3の優先順位は、Validビツト付きレジスタ362のVa
lidビツトが0の場合である。選択回路390は、Validビ
ツト付きレジスタ350aないし350dの中から、350a,350b,
350c,350dの優先順位で、Valid信号が1となつているVa
lidビツト付きレジスタ350aないし350dを1つ選択す
る。選択回路390は、選択したValidビツト付きレジスタ
350aないし350dに対応する306a1ないし306a4に1を送出
する。Validビツト付きレジスタ350a,350b,350c,350dに
はそれぞれ、306a1,306a2,306a3,306a4が対応する。さ
らに、選択回路390は、信号388によつて、選択したVali
dビツト付きレジスタが保持しているアドレスと等しい
アドレスを保持しているValidビツト付きレジスタを検
出し、等しいアドレスを保持しているValidビツト付き
レジスタに対応する306a1ないし306a4にも1を送出す
る。306a1ないし306a4に1が送出されることにより、選
択されたValidビツト付きレジスタ350aないし350dのVal
idビツトはリセツトされる。選択回路390は、Validビツ
ト付きレジスタ362に選択したアドレスをセツトするた
めに、363aに1を送出する。Validビツト付きレジスタ3
62は、363aに1が送出されたことにより、選択回路390
が送出したアドレスを保持する。選択回路390は、選択
したValidビツト付きレジスタが保持するアドレスに対
応するストア・データを第6図におけるレジスタ730aに
セツトするために、309aにも1を送出する。
第2と第3の優先順位は、互いに繰り返し実行され
る。
インデクス付きストア命令が終了した時、Validビツ
ト付きレジスタ362のValidビツトが1の場合には、選択
回路390は、Validビツト付きレジスタ362を選択し、Val
idビツト付きレジスタ362が保持するアドレスをレジス
タ370にセツトするために371aに1を送出する。レジス
タ370は、選択回路390から送出されたアドレスを保持す
る。また、第6図において、レジスタ732aは、731aに1
を送出されたことにより、レジスタ730aが保持するスト
ア・データを保持する。レジスタ370にアドレスがセツ
トされたことにより、主記憶400のバンク0に対するア
クセス要求が出され、第6図におけるレジスタ732aが保
持するデータがストアされる。さらに、選択回路390
は、365aに1を送出し、Validビツト付きレジスタ362の
Validビツトをリセツトする。このようにして、まだ主
記憶400のバンク0にストアされないままになつていた
データをストアする。
以上の手順により、インデクス付きストア命令は実行
される。
以上のように、インデクス付きロード/ストア命令は
実行される。
次に、具体的な例によつて、本発明による1実施例の
動作を説明する。
(1)リスト・ベクトルVR0、ベクトル・ベース・レジ
スタVBR0によつてアドレス付けされるベクトル・データ
をVR1に読み出す場合。ベクトル・データは12要素から
なるとする。VR0の内容は、要素順に0,0,0,0,0,0,0,0,
0,0,0,0とし、VBR0の内容は4とする。
第3図において、ベクトル・レジスタ100のVR0より最
初の4要素(要素番号が0ないし3の要素)が読み出さ
れ、加算器210aないし210dにおいてベクトル・ベース・
レジスタ106のVBR0の内容が加えられ、302aないし302d
には、それぞれアドレス4,4,4,4が送出される。
第4図において、バンク番号デコーダ310aないし310d
は、302aないし302dに送出されたアドレス4,4,4,4はど
のバンクに属するかを調べる。今、主記憶400は、4つ
のバンクからなるので、アドレス4はバンク0に属す
る。したがつて、バンク番号デコーダ310aないし310d
は、アドレス4,4,4,4それぞれを、メモリ・リクエスタ3
30のValidビツト付きレジスタ350aないし350dにセツト
する。
第1図において、Validビツト付きレジスタ362のVali
dビツトは0である。Validビツト付きレジスタ350aない
し350dそれぞれのValidビツトは1で、アドレスは4で
ある。一致検出回路380は、A=B,A=C,A=Dに対応す
る信号388に1を送出する。選択回路390は、A=B=C
=Dであるので、Validビツト付きレジスタ350aを選択
する。選択回路390は、Validビツト付きレジスタ350aが
保持するアドレス4を、レジスタ370とValidビツト付き
レジスタ362にセツトするために、371aと363aに1を送
出する。レジスタ370はアドレス4を保持する。Validビ
ツト付きレジスタ362もアドレス4を保持し、Validビツ
トは1となる。レジスタ370にアドレスがセツトされた
ので、主記憶400のバンク0に対して、アドレス4の読
み出し要求が出される。また、選択回路390は、306a1と
308aに1を送出すると同時に、A=B,A=C,A=Dに対応
する信号388が1となつているので、306a2ないし306a4
にも1を送出する。
第4図において、360a1ないし306a4がすべて1となつ
たので、304から1が送出される。この信号によつて第
3図において、ベクトル・レジスタ100のVR0から次の4
要素(要素番号が4ないし7の要素)が読み出され、加
算器210aないし210dにおいてベクトル・ベース・レジス
タ106のVBR0の内容が加えられ、302aないし302dに、そ
れぞれアドレス4,4,4,4が送出される。第4図におい
て、バンク番号デコーダ310aないし310dは、302aないし
302dに送出されたアドレス4,4,4,4はどのバンクに属す
るかを調べ、バンク番号0に対応するメモリ・リクエス
タ330のValidビツト付きレジスタ350aないし350dにアド
レス4,4,4,4をセツトする。これらは、最初の4要素に
対応するアドレス4がレジスタ370にセツトされるのと
同時にValidビツト付レジスタ350aないし350dにセツト
される。
一方、第5図において、主記憶400のバンク0へ送出
された最初の4要素(要素番号が0ないし3の要素)の
アドレス4の内容が、バンク・サイクル時間後に読み出
され、信号308aによつてレジスタ520にセツトされる。
選択回路540aないし540dは、選択信号306a1ないし306a4
が1であるので、いずれもレジスタ520ないし523の内、
レジスタ520を選択する。この結果、レジスタ530aない
し530dは、レジスタ520の内容を保持する。レジスタ530
aないし530dの内容は、102aないし102dを通して、ベク
トル・レジスタ100のVR1の最初の4要素(要素番号が0
ないし3の要素)にセツトされる。
次に、第1図において、Validビツト付きレジスタ350
aないし350dは、次の4要素(要素番号が4ないし7の
要素)に対応するアドレス4を保持する。また、Valid
ビツト付きレジスタ362は、Validビツトが1であり、ア
ドレスは4を保持している。一致検出回路380は、Z=
A,Z=B,Z=C,Z=Dに対応する信号388に1を送出する。
選択回路390は、Z=A=B=C=Dなので、最初の4
要素(要素番号が0ないし3の要素)に対応して360a1
ないし306a4に1を送出したのよりも1マシン・サイク
ル遅れで、306a1ないし306a4に1を送出する。
第5図において、レジスタ520は、要素番号0ないし
3の4要素に対して読み出したアドレス4に対するデー
タを保持する。選択回路540aないし540dは、選択信号30
6a1ないし306a4が1であるので、いずれレジスタ520な
いし523の内、レジスタ520を選択する。こうして、レジ
スタ520が保持するデータが、最初の4要素の1マシン
・サイクル遅れでレジスタ530aないし530dにセツトされ
る。レジスタ530aないし530dの内容は、102aないし102d
を通して、ベクトル・レジスタ100のVR1の次の4要素に
最初の4要素の1マシン・サイクル遅れでセツトされ
る。
要素番号4ないし7の4要素と同様にして、要素番号
8ないし11の4要素についても、第5図において、レジ
スタ520が保持するデータが、要素番号4ないし7の4
要素の1マシン・サイクル遅れでレジスア530aないし53
0dにリセツトされ、要素番号4ないし7の4要素の1マ
シン・サイクル遅れでベクトル・レジスタ100のVR1にセ
ツトされる。
以上のように、同時に処理される4つの要素のアドレ
スの間で一致するものの有無を検出するだけではなく、
最初の4つの要素のアドレスと次以降の4つの要素のア
ドレスとにわたつて、一致するものの有無を検出し、同
一アドレスに対する複数個のアクセス要求を最初の1個
のみに抑止するため、最初の4つの要素の読み出し処理
が1回で済むだけではなく、従来は、最初の読み出し処
理が終了するまで次の4要素の読み出し処理を待つてい
たのが(つまり、バンク・サイクル時間の間待ちが生じ
る)、待たなくてもよくなつている。
(2)リスト・ベクトルVR0、ベクトル・ベース・レジ
スタVBR0によつてアドレス付けされるベクトル・データ
をVR1に読み出す場合。ベクトル・データは8要素から
なるとする。VR0の内容は、要素順に0,0,0,0,0,1,4,0と
し、VBR0の内容は4とする。
第3図において、ベクトル・レジスタ100のRV0より最
初の4要素(要素番号が0ないし3の要素)が読み出さ
れ、加算器210aないし210dにおいてベクトル・ベース・
レジスタ106のVBR0の内容が加えられ、302aないし302d
には、それぞれアドレス4,4,4,4が送出される。
第4図において、バンク番号デコーダ310aないし310d
は、302aないし302dに送出されたアドレス4,4,4,4はど
のバンクに属するかを調べる。今、主記憶400は、4つ
のバンクからなるので、アドレス4はバンク0に属す
る。したがつて、バンク番号デコーダ310aないし310d
は、アドレス4,4,4,4それぞれを、メモリ・リクエスタ3
30のValidビツト付きレジスタ350aないし350dにセツト
する。
第1図において、Validビツト付きレジスタ362のVali
dビツトは0である。Validビツト付きレジスタ350aない
し350dそれぞれのValidビツトは1で、アドレスは4で
ある。一致検出回路380は、A=B,A=C,A=Dに対応す
る信号388に1を送出する。選択回路390は、A=B=C
=Dであるので、Validビツト付きレジスタ350aを選択
する。選択回路390は、Validビツト付きレジスタ350aが
保持するアドレス4を、レジスタ370とValidビツト付き
レジスタ362にセツトするために、371aと363aに1を送
出する。レジスタ370はアドレス4を保持する。Validビ
ツト付きレジスタ362もアドレス4を保持し、Validビツ
トは1となる。レジスタ370にアドレスがセツトされた
ので、主記憶400のバンク0に対して、アドレス4の読
み出し要求が出される。また、選択回路390は、306a1と
308aに1を送出すると同時に、A=B,A=C,A=Dに対応
する信号388が1となつているので、306a2ないし306a4
にも1を送出する。
第4図において、306a1ないし306a4がすべて1となつ
たので、304から1が送出される。この信号によつて、
第3図において、ベクトル・レジスタ100のVR0から次の
4要素(要素番号が4ないし7の要素)が読み出され、
加算器210aないし210dにおいてベクトル・ベース・レジ
スタ106のVBR0の内容が加えられ、302aないし302dに、
それぞれアドレス4,5,8,4が送出される。第4図におい
て、バンク番号デコーダ310aないし310dは、302aないし
302dに送出されたアドレス4,5,8,4はどのバンクに属す
るかを調べ、要素番号4,6,7に対応するアドレス4,8,4
を、バンク番号0に対応するメモリ・リクエスタ330のV
alidビツト付きレジスタ350a,350c,350dにセツトし、要
素番号5に対応するアドレス5を、バンク番号1に対応
するメモリ・リクエスタ331のValidビツト付きレジスタ
350b1にセツトする。これらは、最初の4要素に対応す
るアドレス4がレジスタ370にセツトされるのと同時にV
alidビツト付きレジスタ350a,350c,350d,350b1にセツト
される。
一方、第5図において、主記憶400のバンク0へ送出
された最初の4要素(要素番号が0ないし3の要素)の
アドレス4の内容が、バンク・サイクル時間後に読み出
され、信号308aによつてレジスタ520aにセツトされる。
選択回路540aないし540dは、選択信号306a1ないし306a4
が1であるので、いずれもレジスタ520ないし523の内、
レジスタ520を選択する。この結果、レジスタ530aない
し530dは、レジスタ520の内容を保持する。レジスタ530
aないし530dの内容は、102aないし102dを通して、ベク
トル・レジスタ100のVR1の最初の4要素(要素番号が0
ないし3の要素)にセツトされる。
次に、第1図において、Validビツト付きレジスタ350
a,350c,350dは、要素番号4,6,7に対応するアドレス4,8,
4を保持している。Validビツト付きレジスタ350bのVali
dビツトは、306a2によつてリセツトされ0となる。ま
た、Validビツト付きレジスタ362は、Validビツトが1
であり、アドレスは4を保持している。一致検出回路38
0は、Z=A,Z=Dに対応する信号388に1を送出する。
選択回路390は、Z=A=Dなので、最初の4要素(要
素番号が0ないし3の要素)に対して306a1ないし306a4
に1を送出したのよりも1マシン・サイクル遅れで、30
6a1と306a4に1を送出する。
第5図において、レジスタ520は、要素番号0ないし
3の4要素に対して読み出したアドレス4に対するデー
タを保持している。選択回路540aと540dは、それぞれ選
択信号306a1と306a4が1であるので、レジスタ520ない
し523の内、レジスタ520を選択する。こうして、レジス
タ520が保持するデータが、最初の4要素の1マシン・
サイクル遅れでレジスタ530aと530dにセツトされる。
再び、第1図において、Validビツト付きレジスタ350
a,350dのValidビツトは、それぞれ306a1,306a4によつて
リセツトされ0となる。一方、Validビツト付きレジス
タ350cのValidビツトは1である。選択回路390は、最初
の4要素(要素番号が0ないし3の要素)に対する読み
出し処理が終了すると、Validビツト付きレジスタ350c
を選択する。選択回路390は、Validビツト付きレジスタ
350cが保持するアドレスをレジスタ370とValidビツト付
きレジスタ362にセツトするために、371aと363aに1を
送出する。また、選択回路390は、306a3と308aに1を送
出する。バンク・サイクル時間後に、主記憶400のバン
ク0からデータが読み出される。第5図において、レジ
スタ520は、308aが1となるので、主記憶400のバンク0
からデータが読み出されたデータを保持する。選択回路
540cは、306a3が1であるので、レジスタ520を選択す
る。レジスタ530cは、レジスタ520の内容を保持する。
一方、バンク番号1に対応するメモリ・リクエスタ33
1のValidビツト付きレジスタ350b1にセツトされた要素
番号5のアドレスに対するデータは、上で述べたのと同
様にして、まだ、バンク0の読み出し処理と平行して、
主記憶バンク1から読み出され、レジスタ521にセツト
される。レジスタ530bは、選択回路540bがレジスタ521
を選択するので、レジスタ521の内容を保持する。
レジスタ530aないし530dのすべてにデータがセツトさ
れると、レジスタ530aないし530dの内容は、102aないし
102dを通して、ベクトル・レジスタ100のVR1の次の4要
素にセツトされる。
以上のように、必ずしも連続しない要素が同一のアド
レスを指し示していても(この例では、要素番号7)、
主記憶のバンク対応に設けられているメモリ・リクエス
タに一致検出回路を設けているため、連続しない要素間
のアドレスの一致を容易に検出し、同一アドレスに対す
る複数個のアクセス要求を最初の1個のみに抑止するこ
とができる。
(3)リスト・ベクトルVR0、ベクトル・ベース・レジ
スタVBR0によつてアドレス付けされるベクトル・データ
をVR1に読み出す場合。ベクトル・データは8要素から
なるとする。VR0の内容は、要素順に0,0,1,1,0,0,1,1と
し、VBR0の内容は4とする。
第3図において、ベクトル・レジスタ100のVR0より最
初の4要素(要素番号が0ないし3の要素)が読み出さ
れ、加算器210aないし210dにおいてベクトル・ベース・
レジスタ106のVBR0の内容が加えられ、302aないし302d
には、それぞれアドレス4,4,5,5が送出される。
第4図において、バンク番号デコーダ310aないし310d
は、302aないし302dに送出されたアドレス4,4,5,5はど
のバンクに属するかを調べる。今、主記憶400は、4つ
のバンクからなるので、アドレス4はバンク0に属し、
アドレス5はバンク1に属する。したがつて、バンク番
号デコーダ310aと310bは、アドレス4,4それぞれを、メ
モリ・リクエスタ330のValidビツト付きレジスタ350aと
350bにセツトし、バンク番号デコーダ310cと310dは、ア
ドレス5,5それぞれを、メモリ・リクエスタ331のValid
ビツト付きレジスタ350c1と350d1にセツトする。
今、メモリ・リクエスタ330について述べる。
第1図において、Validビツト付きレジスタ362のVali
dビツトは0である。Validビツト付きレジスタ350aと35
0bのValidビツトは1で、アドレスは4である。Validビ
ツト付きレジスタ350cと350dのValidビツトは0であ
る。一致検出回路380は、A=Bに対応する信号388に1
を送出する。選択回路390は、A=Bであるので、Valid
ビツト付きレジスタ350aを選択する。選択回路390は、V
alidビツト付きレジスタ350aが保持するアドレス4を、
レジスタ370とValidビツト付きレジスタ362にセツトす
るために、371aと363aに1を送出する。レジスタ370は
アドレス4を保持する。Validビツト付きレジスタ362も
アドレス4を保持し、Validビツトは1となる。レジス
タ370にアドレスがセツトされたので、主記憶400のバン
ク0に対して、アドレス4の読み出し要求が出される。
また、選択回路390は、306a1と308aに1を送出すると同
時に、A=Bに対応する信号388が1となつているの
で、306a2にも1を送出する。
メモリ・リクエスタ331も、メモリ・リクエスタ330と
同様にして、要素番号2と3のアドレス5に対する読み
出し要求を主記憶400のバンク1に対して出し、306b3と
306b4に1を送出するとともに、308bに1を送出する。
第4図において、306a1,306a2,306b3,306b4が1とな
つたので、304から1が送出される。この信号によつ
て、第3図において、ベクトル・レジスタ100のVR0から
次の4要素(要素番号が4ないし7の要素)が読み出さ
れ、加算器210aないし210dにおいてベクトル・ベース・
レジスタ106のVBR0の内容が加えられ、302aないし302d
に、それぞれアドレス4,4,5,5が送出される。第4図に
おいて、バンク番号デコーダ310aないし310dは、302aな
いし302dに送出されたアドレス4,4,5,5はどのバンクに
属するかを調べる。バンク番号デコーダ310aと310bは、
アドレス4,4それぞれを、メモリ・リクエスタ330のVali
dビツト付きレジスタ350aと350bにセツトし、バンク番
号デコーダ310cと310dは、アドレス5,5それぞれを、メ
モリ・リクエスタ331のValidビツト付きレジスタ350c1
と350d1にセツトする。
一方、第5図において、主記憶400のバンク0へ送出
されたアドレス4の内容と、主記憶400のバンク1へ送
出されたアドレス5の内容が、バンク・サイクル時間後
に読み出される。アドレス4の内容は信号308aによつて
レジスタ520にセツトされ、アドレス5の内容は信号308
bによつてレジスタ521にセツトされる。選択回路540aな
いし540dは、306a1,306a.,306b3,306b4が1であるの
で、それぞれレジスタ520,520,521,521を選択する。レ
ジスタ530aないし530dは、それぞれレジスタ520,520,52
1,521の内容を保持する。レジスタ530aないし530dの内
容は、102aないし102dを通して、ベクトル・レジスタ10
0のVR1の最初の4要素(要素番号が0ないし3の要素)
にセツトされる。
次に、第1図において、Validビツト付きレジスタ350
aと350bのValidビツトは1で、アドレスは4である。Va
lidビツト付きレジスタ350cと350dのValidビツトは0で
ある。また、Validビツト付きレジスタ362は、Validビ
ツトが1であり、アドレスは4を保持している。一致検
出回路380は、Z=A,Z=Bに対応する信号388に1を送
出する。選択回路390は、Z=A=Bなので、要素番号
が0と1の要素に対して306a1ないし306a2に1を送出し
たのよりも1マシン・サイクル遅れで、306a1と306a2に
1を送出する。
メモリ・リクエスタ331も、メモリ・リクエスタ330と
同様にして、306b3と306b4に1を送出する。
第5図において、レジスタ520はアドレス4に対する
データを保持し、レジスタ521はアドレス5に対するデ
ータを保持している。選択回路540aと540bは、それぞれ
選択信号306a1と306a2が1であるので、レジスタ520な
いし523の内、レジスタ520を選択する。こうして、レジ
スタ520が保持するデータが、最初の4要素の1マシン
・サイクル遅れでレジスタ530aと530bにセツトされる。
また、選択回路540cと540dは、それぞれ選択信号306b3
と306b4が1であるので、レジスタ520ないし523の内、
レジスタ521を選択する。こうして、、レジスタ521が保
持するデータが、最初の4要素の1マシン・サイクル遅
れでレジスタ530cと530dにセツトさる。このように、最
初の4要素の1マシン・サイクル遅れで、次の4要素の
データがレジスタ530aないし530dにセツトされる。
レジスタ530aないし530dのすべてにデータがセツトさ
れると、レジスタ530aないし530dの内容は、102aないし
102dを通して、最初の4要素の1マシン・サイクル遅れ
で、ベクトル・レジスタ100のVR1の次の4要素にセツト
される。
以上のように、異なるバンクに属する2つのアドレス
が交互に繰り返していても、主記憶のバンク対応に設け
られているメモリ・リクエスタに一致検出回路を設けて
いるため、バンク対応に設けられているメモリ・リクエ
スタにおいては、同一のアドレスが連続して出現するこ
ととなり、容易にアドレスの一致を検出し、同一アドレ
スに対する複数個のアクセス要求を最初の1個のみに抑
止することができる。
(4)リスト・ベクトルVR0、ベクトル・ベース・レジ
スタVBR0によつてアドレス付けされる主記憶に、VR1が
保持するベクトル・データをストアする場合。ベクトル
・データは8要素からなるとする。VR0の内容は、要素
順に0,0,0,0,0,4,0,0とし、VBR0の内容は4とする。
第3図において、ベクトル・レジスタ100のVR0より最
初の4要素(要素番号が0ないし3の要素)が読み出さ
れ、加算器210aないし210dにおいてベクトル・ベース・
レジスタ106のVBR0の内容が加えられ、302aないし302d
には、それぞれアドレス4,4,4,4が送出される。
第4図において、バンク番号デコーダ310aないし310d
は、302aないし302dに送出されたアドレス4,4,4,4はど
のバンクに属するかを調べ、バンク番号デコーダ310aな
いし310dは、アドレス4,4,4,4それぞれを、メモリ・リ
クエスタ300のValidビツト付きレジスタ350aないし350d
にセツトする。
また、第6図において、ベクトル・レジスタ100のVR1
より最初の4要素(要素番号が0ないし3の要素)が読
みだされ、レジスタ720aないし720dにセツトされる。
第1図において、Validビツト付きレジスタ362のVali
dビツトは0である。Validビツト付きレジスタ350aない
し350dそれぞれのValidビツトは1で、アドレスは4で
ある。一致検出回路380は、A=B,A=C,A=Dに対応す
る信号388に1を送出する。選択回路390は、A=B=C
=Dであるので、Validビツト付きレジスタ350aを選択
する。選択回路390は、Validビツト付きレジスタ350aが
保持するアドレス4を、Validビツト付きレジスタ362に
セツトするために、363aに1を送出する。Validビツト
付きレジスタ362はアドレス4を保持し、Validビツトは
1となる。また、選択回路390は、306a1と309aに1を送
出すると同時に、A=B,A=C,A=Dに対応する信号388
が1となつているので、306a2ないし306a4にも1を送出
する。
第6図において、組み合せ回路750aは、306a1ないし3
06a4がすべて1であるので、752a4には1を、752a1ない
し752a3には0を送出する。選択回路740aは、信号752a4
により、レジスタ720dを選択する。レジスタ730aは、30
9aが1であるのでレジスタ720dが保持する内容を保持す
す。
また、第4図において、306a1ないし306a4がすべて1
となつたので、304から1が送出される。この信号によ
つて、ベクトル・レジスタ100のVR0から次の4要素(要
素番号が4ないし7の要素)が読み出され、加算器210a
ないし210dにおいてベクトル・ベース・レジスタ106のV
BR0の内容が加えられ、302aないし302dに、それぞれア
ドレス4,8,4,4が送出される。さらに、第4図におい
て、バンク番号デコーダ310aないし310dは、302aないし
302dに送出されたアドレス4,8,4,4はどのバンクに属す
るかを調べ、バンク0に対応するメモリ・リクエスタ30
0のValidビツト付きレジスタ350aないし350dにアドレス
4,8,4,4をセツトする。これらは、最初の4要素(要素
番号が0ないし3の要素)に対応するアドレス4がレジ
スタ370にセツトされるのと同時にValidビツト付きレジ
スタ350aないし350dにセツトされる。これらと並行し
て、第6図においても、ベクトル・レジスタ100のVR1か
ら次の4要素が読み出され、レジスタ720aないし720dに
セツトされる。これらは、最初の4要素に対応するデー
タがレジスタ730aにセツトされるのと同時にレジスタ72
0aないし720dにセツトされる。
次に、第1図において、Validビツト付きレジスタ350
aないし350dは、すべてValidビツトが1で、それぞれア
ドレス4,8,4,4を保持している。また、Validビツト付き
レジスタ362は、Validビツトが1であり、アドレスは4
を保持している。一致検出回路380は、Z=A,Z=C,Z=
Dに対応する信号388に1を送出する。選択回路390は、
Z=A=C=Dなので、要素番号が0ないし3の要素に
対して1を送出したものよりも1マシン・サイクル遅れ
で、306a1,306a3,306a4に1を送出する。また、309aに
も1を送出する。
第6図において、組み合せ回路750aは、306a1,306a3,
306a4が1なので、752a4に1を、752a1ないし752a3に0
を送出する。選択回路740aは、752aが1であるのでレジ
スタ720dを選択する。レジスタ730aは、309aが1である
ので、レジスタ720dの内容、つまり、要素番号7のデー
タを保持する。
再び、第1図において、Validビツト付きレジスタ350
a,350c,350dのValidビツトは、それぞれ306a1,306a3,30
6a4によつてリセツトされ0となる。一方、Validビツト
付きレジスタ350bのValidビツトは1である。Validビツ
ト付きレジスタ362はアドレス4を、Validビツト付きレ
ジスタ350bはアドレス8を保持しているので、一致検出
回路380から一致が検出されたという信号はなくなるた
め、選択回路390は、Validビツト付きレジスタ362を選
択する。選択回路390は、Validビツト付きレジスタ362
が保持するアドレスをレジスタ370にセツトするため
に、371aに1を送出する。レジスタ370は、選択回路390
が選択したValidビツト付きレジスタ362が保持するアド
レスを保持する。一方、第6図において、371aが1とな
つたので、レジスタ732aは、レジスタ730aが保持する内
容、つまり、要素番号7のデータを保持する。第1図に
おいて、レジスタ370にアドレスがセツトされたので、
主記憶400のバンク0に対して書き込み要求が出され
る。こうして、アドレスがレジスタ307から主記憶400の
バンク0へ送出されるのと同期して、データもレジスタ
732aから704aを通して主記憶400のバンク0へ送出さ
れ、アドレス4に対するストア処理が実行される。ま
た、選択回路390は、Validビツト付きレジスタ362のVal
idビツトをリセツトするために、365aに1を送出する。
選択回路390は、このストア処理の終了後、Validビツ
ト付きレジスタ350bを選択する。選択回路390は、アド
レスをValidビツト付きレジスタ362にセツトするため
に、363aに1を送出する。また、選択回路390は、306a2
と309aに1を送出する。第6図において、組み合せ回路
750aは、306a2が1なので、752a2に1を送出する。選択
回路740aは、752aが1であるのでレジスタ720bを選択す
る。レジスタ730aは、309aが1であるので、レジスタ72
0bの内容を保持する。
これにより、このストア命令の全ての要素の処理が終
了するので、次のマシン・サイクルで、選択回路390
は、Validビツト付きレジスタ362を選択する。選択回路
390は、Validビツト付きレジスタ362が保持するアドレ
スをレジスタ370にセツトするために、371aに1を送出
する。レジスタ370は、選択回路390が選択したValidビ
ツト付きレジスタ362が保持するアドレスを保持する。
一方、第6図において、371aが1となつたので、レジス
タ732aは、レジスタ730aが保持する内容を保持する。第
1図において、レジスタ370にアドレスがセツトされた
ので、主記憶400のバンク0に対して書き込み要求が出
される。こうして、アドレスがレジスタ370から主記憶4
00のバンク0へ送出されるのと同期して、データもレジ
スタ732aから704aを通して主記憶400のバンク0へ送出
され、残りの要素のストア処理が実行される。
以上のように、同時に処理される4つの要素のアドレ
スの間で一致するものの有無を検出するだけではなく、
最初の4つの要素のアドレスと次の4つの要素のアドレ
スとにわたつて、一致するものの有無を検出し、同一ア
ドレスに対する複数個のアクセス要求を最後の1個のみ
に抑止するため、同一アドレスに対するストア処理を1
回にすることができる。
以上4つの例について説明したように、この実施例に
よれば、同時に読み出された4つの要素のアドレスと次
以後に同時に読み出される4つずつの要素アドレスとに
わたつて、一致するものの有無を検出し、同一アドレス
に対する複数個のアクセス要求の中で、ロード命令の場
合には要素番号の一番小さいもの以外のアクセス要求を
抑止し、ストア命令の場合には要旨番号の一番大きいも
の以外のアクセス要求を抑止することにより、バンク・
コンフリクトの発生を防ぎ、要素並列型のベクトル計算
機におけるインデクス付きロード/ストア命令を効率よ
く実行できる。
以上の実施例では、第1図において、選択回路390が
選択したアドレスを保持する手段であるValidビツト付
きレジスタ362は1個の場合について述べた。しかし、V
alidビツト付きレジスタ362に相当するアドレスを保持
する手段を複数個備え、さらに、主記憶から読み出され
たデータを保持する手段および主記憶へ書き込むデータ
を保持する手段を、アドレスを保持する手段に対応させ
て複数個備えれば、複数個の同一のアドレスに対して送
出されるアクセス要求の回数を減らすことができる。
次に、アドレスを保持する手段、主記憶から読み出さ
れたデータを保持する手段、主記憶へ書き込むデータを
保持する手段を、それぞれ2個備える場合の実施例につ
いて第3図を用いて述べる。
第3図において、100はVRAないしVRDからなるベクト
ル・レジスタ(VR)、106はベクトル・ベース・レジス
タ(VBR)、200はアドレス発生部、210aないし210dは加
算器、300は主記憶制御部、330ないし333はメモリ・リ
クエスタ、400はバンク0ないしバンク3の4バンクか
らなる主記憶、500はフエツチ・データ処理部、600は命
令実行制御部、700はストア・データ処理部を表す。
まず、主記憶上にランダムに配置されているベクトル
・データをベクトル・レジスタへロードするインデクス
付きロード命令を実行する場合について述べる。今、リ
スト・ベクトルVR0、ベクトル・ベース・レジスタVBR0
によつてアドレス付けされるベクトル・データをVR1に
読み出す場合について述べる。
ベクトル・レジスタ100のVRAないしVRDは、それぞ
れ、要素番号が4n,4n+1,4n+2,4n+3のデータを保持
する。インデクス付きロード命令で用いるリスト・ベク
トルを保持するVR0のVRAないしVRDより1要素ずつ、計
4要素分のリスト・ベクトルが読み出され、読み出され
た4要素のデータは、104aないし104dを通してアドレス
発生部200へ送られる。
アドレス発生部200は、加算器210aないし210dを用い
て、ベクトル・ベース・レジスタ106のVBR0が保持する
内容と、VR0から読み出された内容を加え、主記憶より
読み出すデータのアドレスを計算する。アドレス発生部
200は、求めたアドレスを302aないし302dを通して主記
憶制御部300へ送る。
ここで、主記憶制御部300の詳細を第13図に示す。第1
3図における番号と第3図における番号は対応する。第1
3図において、310aないし310dはバンク番号デコーダ、3
30ないし333はメモリ・リクエスタ、350aないし350dはV
alidビツト付きレジスタ、350a1ないし350d1はValidビ
ツト付きレジスタ、350a2ないし350d2はValidビツト付
きレジスタ、350a3ないし350d3はValidビツト付きレジ
スタ、360,360−1ないし360−3は優先制御回路、370,
370−1ないし370−3はレジスタ、398はAND回路、399a
ないし399dはレジスタを表す。
第13図において、バンク番号デコーダ310aないし310d
は、アドレス発生部200より302aないし302dを通して送
られてきたアドレスが属するバンク番号を求め、バンク
に対応したメモリ・リクエスタ330ないし333の中の1つ
にアドレスを転送する。330ないし333はそれぞれ主記憶
のバンク0ないしバンク3に対するメモリ・リクエスタ
である。メモリ・リクエスタ331ないし333の詳細はメモ
リ・リクエスタ330と同様である。Validビツト付きレジ
スタ350aないし350dは、バンク番号デコーダ310aないし
310dが、メモリ・リクエスタ330へ転送したアドレスを
保持する。Validビツト付レジスタ350a1ないし350d1
は、バンク番号デコーダ310aないし310dが、メモリ・リ
クエスタ331へ転送したアドレスを保持する。Validビツ
ト付レジスタ350a2ないし350d2は、バンク番号デコーダ
310aないし310dが、メモリ・リクエスタ332へ転送した
アドレスを保持する。Validビツト付きレジスタ350a3な
いし350d3は、バンク番号デコーダ310aないし310dが、
メモリ・リクエスタ333へ転送したアドレスを保持す
る。
ここで、メモリ・リクエスタ330の詳細を第9図に示
す。第9図における番号と第13図における番号は対応す
る。第9図において、350aないし350dはValidビツト付
きレジスタ、362aないし362bはValidビツト付きレジス
タ、370はレジスタ、380は一致検出回路、390は選択回
路を表す。
Validビツト付きレジスタ350aないし350dは、第13図
におけるバンク番号デコーダ310aないし310dが転送した
アドレスを保持する。Validビツト付きレジスタ350aな
いし350dのValidビツトは、アドレスを保持するとセツ
トされ、306a1ないし306a4が1となるとそれぞれリセツ
トされる。Validビツト付きレジスタ362aは、363a1が1
の時に選択回路390から出力されるアドレスを保持す
る。Validビツト付きレジスタ362aのValidビツトは、ア
ドレスを保持するとセツトされ、365a1が1となるとリ
セツトされる。Validビツト付きレジスタ362bは、363a2
が1の時に選択回路390から出力されるアドレスを保持
する。Validビツト付きレジスタ362aのValidビツトは、
アドレスを保持するとセツトされ、365a2が1となると
リセツトされる。レジスタ370は、371aが1の時に選択
回路390から出力されるアドレスを保持する。レジスタ3
70にアドレスがセツトされると、340を通して主記憶400
のバンク0に対してアクセス要求とアドレスを送出す
る。本実施例では、Validビツト付きレジスタ362aない
し362bは、ロード命令の場合にはすでに主記憶に対して
読み出しを要求したアドレスを保持し、ストア命令の場
合には主記憶に対して書き込みを行うアドレスを保持す
る。一致検出回路380は、Validビツト付きレジスタ350a
ないし350dに保持されているアドレスと、Validビツト
付きレジスタ362aないし362bに保持されているアドレス
の合計6つのアドレスを比較し、どのValidビツト付き
レジスタに保持されているアドレスが互いに等しいかを
示す信号388を送出する。
一致検出回路380の詳細を第10図に示す。第10図にお
いて、382は比較回路を表す。比較回路382は、Validビ
ツトの付いた2つのアドレスを比較する回路であり、2
つのValidビツトが共に1であり、かつ、2つのアドレ
スが等しい場合に1を出力する。
比較回路382は、6つのValidビツト付きレジスタ350a
ないし350dおよび362aないし362bの中で、どれとどれと
が等しいかを示す信号388を送出する。
第9図に説明を戻す。選択回路390は、ロード命令の
場合には、次に示す優先順位に従つて、Validビツトが
1のものでなくなるまで、Validビツト付きレジスタ350
aないし350dの中から1つずつ選択する。
第1の優先順位は、Validビツト付きレジスタ350aな
いし350dの中に、Validビツト付きレジスタ362aが保持
するアドレスと等しいアドレスを保持するものがある場
合である。つまり、信号388の中でZ1=A,Z1=B,Z1=C,Z
1=Dを示す信号の中に1となつているものがある場合
である。選択回路390は、Z1=Aが1の場合には306a1に
1を送出し、Z1=Bが1の場合には306a2に1を送出
し、Z1=Cが1の場合には306a3に1送出し、Z1=Dが
1の場合には306a4に1を送出する。選択回路309は、Z1
=A,Z1=B,Z1=C,Z1=Dの中で1のものが2個以上ある
場合には、1である信号Z1=AないしZ1=Dに対応する
それぞれ306a1ないし306a4のすべてに1を送出する。ま
た、367aに0を送出する。
第2の優先順位は、Validビツト付きレジスタ350aな
いし350dの中に、Validビツト付きレジスタ362bが保持
するアドレスと等しいアドレスを保持するものがある場
合である。つまり、信号388の中でZ2=A,Z2=B,Z2=C,Z
2=Dを示す信号の中に1となつているものがある場合
がある。選択回路390は、Z2=Aが1の場合には306a1に
1を送出し、Z2=Bが1の場合には306a2に1を送出
し、Z2=Cが1の場合には306a3に1を送出し、Z2=D
が1の場合には306a4に1を送出する。選択回路390は、
Z2=A,Z2=B,Z2=C,Z2=Dの中で1のものが2個以上あ
る場合には、1である信号Z2=AないしZ2=Dに対応す
るそれぞれ306a1ないし306a4のすべてに1を送出する。
また、367aに1を送出する。
第3の優先順位は、Validビツト付きレジスタ350aな
いし350dの中に、Validビツト付きレジスタ362aないし3
62bが保持するアドレスと等しいアドレスを保持するも
のがない場合である。選択回路390は、Validビツト付き
レジスタ350aないし350dの中から350a,350b,340c,350d
の優先順位で、Valid信号が1となつているValidビツト
付きレジスタ350aないし350dが保持しているアドレスを
1つ選択する。選択回路390は、選択したアドレスをレ
ジスタ370にセツトするために、371aに1を送出する。
また、選択回路390は、選択したアドレスをValidビツト
付きレジスタ362aまたは362bにセツトする(本実施例で
は、Validビツト付きレジスタ362aとValidビツト付きレ
ジスタ362bには、交互にアドレスをセツトするものとす
る)ために、Validビツト付きレジスタ362aにセツトす
る場合は363a1に1を送出し、Validビツト付きレジスタ
362bにセツトする場合は363a2に1を送出する。レジス
タ370およびValidビツト付きレジスタ362aおよび362bに
1を送出する。レジスタ370およびValidビツト付きレジ
スタ362aまたは362bは、選択回路390より送出されたア
ドレスを保持する。レジスタ370にセツトされたアドレ
スは、340を通して主記憶400のバンク0へ送られ、この
アドレスに対するデータが主記憶400のバンク0より読
み出される。選択回路390は、アドレスを送出するのと
同時に、選択したValidビツト付きレジスタ350aないし3
50dに対応する信号306a1ないし306a4に1を送出する。V
alidビツト付きレジスタ350a,350b,350c,350dにはそれ
ぞれ、信号306a1,306a2,306a3,306a4が対応する。ま
た、363a1に1を送出した場合には308a1に1を送出し、
363a2に1を送出した場合には308a2に1を送出する。さ
らに、選択回路390は信号388によつて、選択回路390が
選択したValidビツト付きレジスタが保持しているアド
レスと等しいアドレスを保持しているValidビツト付き
レジスタを検出し、等しいアドレスを保持しているVali
dビツト付きレジスタに対応する信号306a1ないし306a4
にも1を送出する。306a1ないし306a4によつて、それぞ
れValidピツト付きレジスタ350aないし350dのValidビツ
トはリセツトされる。
主記憶400のバンク0へアクセス要求が送られると、
バンク・アクセス時間後にアドレスに対応するデータが
読み出される。
説明を第13図に戻す。
レジスタ399aは、306a1ないし306d1のいずれか1つが
1となつた時に1となり、304が1となつた時に0とな
る。レジスタ399bないし399dもレジスタ399aと同様であ
る。したがつて、AND回路398の出力である304は、バン
ク番号デコーダ310aないし310dがメモリ・リクエスタ33
0ないし333に送出したアドレスがすべて選択回路360,36
0−1ないし360−3によつて選択され、これらのアドレ
スに対するアクセス要求がすべて主記憶へ送られた時に
1となる。304の信号によつて、新たに4つの要素のア
ドレスが、アドレス発生部200より、302aないし302dを
通してバンク番号デコーダ310aないし310dに送られる。
こうして、バンク・コンフリクトが生じない限り、毎マ
シン・サイクル4要素ずつアドレスが送られてくる。
説明を第3図に戻す。
主記憶400を構成するバンク0ないしバンク3は、メ
モリ・リクエスタ330ないし333から送られてきたアドレ
スのデータを読み出し、バンク・サイクル時間後に読み
出したデータを510ないし513へ送出する。
ここで、フエツチ・データ処理部500の詳細を第11図
に示す。第11図における番号と第3図における番号は対
応する。第11図において、520aないし523a,520bないし5
23bはレジスタ、530aないし530dはレジスタ、540aない
し540dは選択回路、550aないし550dはセレクタを表す。
レジスタ520aは、信号308a1が1の時に、主記憶400の
バンク0から読み出されたデータを保持する。レジスタ
520aが保持するデータは、メモリ・リクエスタ330の詳
細を示す第9図のValidビツト付きレジスタ362aが保持
するアドレスに対応する。レジスタ520bは、信号308a2
が1の時に、主記憶400のバンク0から読み出されたデ
ータを保持する。レジスタ520bが保持するデータは、メ
モリ・リクエスタ300の詳細を示す第9図のValidビツト
付きレジスタ362bが保持するアドレスに対応する。レジ
スタ521aないし523aは、レジスタ520aと同様である。レ
ジスタ521bないしレジスタ523bは、レジスタ520bと同様
である。メモリ・リクエスタ330ないし333より送られて
きた信号308a1ないし308d1および308a2ないし308d2は、
遅延回路Dによつて、主記憶400からデータが読み出さ
れるタイミングと、レジスタ520aないし523aまたはレジ
スタ520bないし523bにデータをセツトするタイミングと
の同期がとられる。セレクタ550aには、367aが0の場合
にはレジスタ520aを選択し、367aが1の場合にはレジス
タ520bを選択する。セレクタ550bないし550dもセレクタ
550aと同様である。選択回路540aは、選択信号306a1が
1の場合にはセレクタ550aを選択し、選択信号306b1が
1の場合にはセレクタ550bを選択し、選択信号306c1が
1の場合にはセレクタ550cを選択し、選択信号306d1が
1の場合にはセレクタ550dを選択する。ここで、選択信
号306a1ないし306d1の中で2つ以上が1となることはな
い。選択回路540bないし540dも選択回路540aと同様であ
る。レジスタ530aないし530dは、選択回路540aないし54
0dによつて選択されたセレクタ550aないし550dが送出す
るデータを保持する。
再び説明を第3図に戻す。
レジスタ530aないし530dのすべてにデータがセツトさ
れると、102aないし102dを通して、読み出したデータ
は、ベルトル・レジスタ100のVR1に格納される。
以上の手順により、インデクス付きロード命令は実行
される。
次に、インデクス付きストア命令の場合について、第
3図を用いて説明する。今、リスト・ベクトルVR0、ベ
クトル・ベース・レジスタVBR0によつてアドレス付けさ
れる主記憶に、VR1が保持しているベクトル・データを
書き込む場合について述べる。
インデクス付きストア命令の場合には、フエツチ・デ
ータ処理部500を用いない代わりにストア・データ処理
部700を用いる。
インデクス付きストア命令の場合には、VR0のVRAない
しVRDより1要素ずつ計4要素分のリスト・ベクトルを
読み出すと同時に、ストアするデータもVR1のVRAないし
VRDより1要素ずつ計4要素分読み出す。VR0から読み出
されたデータはアドレス発生部200へ、VR1から読み出さ
れたデータはストア・データ処理部700へ送られる。
ストア・データ処理部700の詳細を第12図に示す。第1
2図における番号と第3図における番号は対応する。第1
2図において、720aないし720dはレジスタ、730a1ないし
730d1はレジスタ、730a2ないし730d2はレジスタ、732a
ないし732dはレジスタ、734aないし734dはセレクタ、74
0aないし740dは選択回路、750aないし750dは組み合せ回
路を表す。
レジスタ720aないし720dは、ベクトルレジスタ100のV
RAないしVRDから読み出されたデータを保持する。選択
回路740aは、選択信号752a1が1の場合にはレジスタ720
aを選択し、選択信号752a2が1の場合にはレジスタ720b
を選択し、選択信号752a3が1の場合にはレジスタ720c
を選択し、選択信号752a4が1の場合にはレジスタ720d
を選択する。選択回路740bないし740dは、選択回路740a
と同様である。レジスタ730a1は、309a1が1の時に選択
回路740aが選択したデータを保持する。レジスタ730a1
は、第9図においてValidビツト付きレジスタ362aが保
持するアドレスに対応する書き込みデータを保持する。
レジスタ730a2は、309a2が1の時に選択回路740aが選択
したデータを保持する。レジスタ730a2は、第9図にお
いてValidビツト付きレジスタ362bが保持するアドレス
に対応する書き込みデータを保持する。レジスタ730b1
ないし730d1は、レジスタ730a1と同様である。レジスタ
730b2ないし730d2は、レジスタ730a2と同様である。セ
レクタ734aは、367aが0の場合にはレジスタ730a1を選
択し、367aが1の場合にはレジスタ730a2を選択する。
セレクタ734bないし734dは、セレクタ734aと同様であ
る。レジスタ732aないし732dは、それぞれ371aないし37
1dが1の場合に、それぞれセレクタ734aないし734dが出
力するデータを保持する。組み合せ回路750aは、選択信
号306a1ないし306a4の中で1であるものの中から、306a
4,306a3,306a2,306a1の優先順位で1つを選択し、選択
した信号に対応する752a1ないし752a4には1を送り、選
択しなかつた信号に対応する752a1ないし752a4には0を
送る。752a1ないし752a4は、それぞれ306a1ないし306a4
に対応する。選択信号306a1ないし306a4がすべて0の場
合には、752a1ないし752a4のすべてに0を送る。組み合
せ回路750bないし750dは、組み合せ回路750aと同様であ
る。
第3図に説明を戻す。
アドレス発生部200は、インデクス付きロード命令の
場合と同様である。
主記憶制御部300の詳細を再び第13図に示す。第13図
においてメモリ・リクエスタ330ないし333を除いては、
インデクス付きロード命令の場合と同様である。
メモリ・リクエスタ330の詳細を再び第9図に示し、
インデクス付きストア命令の場合について述べる。メモ
リ・リクエスタ331ないし333は、メモリ・リクエスタ33
0と同様である。
選択回路390は、インデクス付きストア命令の場合に
は、次に示す優先順位に従つて、Validビツトが1のも
のがなくなるまで、Validビツト付きレジスタ350aない
し350dの中から、アドレスを1つずつ選択する。
第1の優先順位は、Validビツト付きレジスタ350aな
いし350dの中に、Validビツト付きレジスタ362aが保持
するアドレスと等しいアドレスを保持するものがある場
合である。つまり、信号388の中でZ1=A,Z1=B,Z1=C,Z
1=Dを示す信号の中に1となつているものがある場合
である。選択回路390は、Z1=Aが1の場合には306a1に
1を送出し、Z1=Bが1の場合には306a2に1を送出
し、Z1=Cが1の場合には306a3に1を送出し、Z1=D
が1の場合には306a4に1を送出する。Z1=A,Z1=B,Z1
=C,Z1=Dの中で1のものが2個以上である場合には、
1である信号Z1=AないしZ1=Dに対応する306a1ない
し306a4のすべてに1を送出する。また、選択回路390
は、309a1に1を送出し、367aに0を送出する。371aに
は1を送出しない。つまり、レジスタ370にはアドレス
がセツトされないので、主記憶400のバンク0に対する
アクセス要求は出ない。
第2の優先順位は、Validビツト付きレジスタ350aな
いし350dの中に、Validビツト付きレジスタ362bが保持
するアドレスと等しいアドレスを保持するものがある場
合である。つまり、信号388の中でZ2=A,Z2=B,Z2=C,Z
2=Dを示す信号の中に1となつているものがある場合
である。選択回路390は、Z2=Aが1の場合には306a1に
1を送出し、Z2=Bが1の場合には306a2に1を送出
し、Z2=Cが1の場合には306a3に1を送出し、Z2=D
が1の場合には306a4に1を送出する。Z2=A,Z2=B,Z2
=C,Z2=Dの中で1のものが2個以上ある場合には、1
である信号Z2=AないしZ2=Dに対応する306a1ないし3
06a4のすべてに1を送出する。また、選択回路390は、3
09a2に1を送出し、367aに1を送出する。371aには1を
送出しない。つまり、レジスタ370にはアドレスがセツ
トされないので、主記憶400のバンク0に対するアクセ
ス要求は出ない。
第3の優先順位は、Validビツト付きレジスタ362aと3
62bのValidビツトが共に1であり、かつ、Validビツト
付きレジスタ350aないし350dの中に、Validビツト付き
レジスタ362aまたは362bが保持するアドレスと等しいア
ドレスを保持するものがない場合である。選択回路390
は、Validビツト付きレジスタ362aまたは362bを選択す
る(本実施例では、Validビツト付きレジスタ362aと362
bは交互に選択されるとする)。選択回路390は、選択し
たValidビツト付きレジスタ362aまたは362bが保持する
アドレスをレジスタ370にセツトするために371aに1を
送出する。レジスタ370は、選択回路390から送出された
アドレスを保持する。また、選択回路390は、Validビツ
ト付きレジスタ362aを選択した場合には367aに0を送出
し、Validビツト付きレジスタ362bを選択した場合には3
67aに1を送出する。第12図において、レジスタ732a
は、371aに1を送出されたことにより、367aが0の場合
にはレジスタ730a1が保持するストア・データを保持
し、367aが1の場合にはレジスタ730a2が保持するスト
ア・データを保持する。レジスタ370にアドレスがセツ
トされたことにより、主記憶400のバンク0に対するア
クセス要求が出され、第12図におけるレジスタ732aが保
持するデータがストアされる。さらに、選択回路390
は、Validビツト付きレジスタ362aを選択した場合に
は、365a1に1を送出し、Validビツト付きレジスタ362a
のValidビツトをリセツトする。Validビツト付きレジス
タ362bを選択した場合には、365a2に1を送出し、Valid
ビツト付きレジスタ362bのValidビツトをリセツトす
る。
第4の優先順位は、Validビツト付きレジスタ362aのV
alidビツトが0であるか、または、Validビツト付きレ
ジスタ362bのValidビツトが0である場合である。選択
回路390は、Validビツト付きレジスタ350aないし350dの
中から350a,350b,350c,350dの優先順位で、Valid信号が
1となつているValidビツト付きレジスタ350aないし350
dを1つ選択する。選択回路390は、選択したValidビツ
ト付きレジスタ350aないし350dに対応する306a1ないし3
06a4に1を送出する。Validビツト付きレジスタ350a,35
0b,350c,350dにはそれぞれ、306a1,306a2,306a3,305a4
が対応する。さらに、信号388によつて、選択回路390
は、選択したValidビツト付きレジスタが保持している
アドレスと等しいアドレスを保持しているValidビツト
付きレジスタを検出し、等しいアドレスを保持している
Validビツト付きレジスタに対応する306a1ないし306a4
にも1を送出する。306a1ないし306a4に1が送出される
たとにより、選択されたValidビツト付きレジスタ350a
ないし350dのValidビツトはリセツトされる。選択回路3
90は、Validビツト付きレジスタ362aのValidビツトが0
の場合には363a1に1を送出し、Validビツト付きレジス
タ362aのValidビツトが1でValidビツト付きレジスタ36
2bのValidビツトが0の場合には363a2に1を送出する。
Validビツト付きレジスタ362aは、363a1に1を送出され
た場合には選択回路390が送出したアドレスを保持す
る。Validビツト付きレジスタ362bは、363a2に1を送出
された場合には選択回路390が送出したアドレスを保持
する。選択回路390は、363a1に1を送出した場合には30
9a1にも1を送出し、363a2に1を送出した場合には309a
2にも1を送出する。第12図において、レジスタ730a1
は、309a1に1が送出された場合には選択回路740aが選
択するストア・データを保持し、レジスタ730a2は、309
a2に1が送出された場合には選択回路740aが選択するス
トア・データを保持する。
第3と第4の優先順位は、互いに繰り返し実行され
る。
ストア命令が終了した時、Validビツト付きレジスタ3
62aのValidビツトが1の場合には、選択回路390はValid
ビツト付きレジスタ362aを選択する。選択回路390は、V
alidビツト付きレジスタ362aが保持するアドレスをレジ
スタ370にセットするために371aに1を送出する。レジ
スタ370は、選択回路390から送出されたアドレスを保持
する。また、選択回路390は、367aに0を送出する。第1
2図において、セレクタ734aは、367aが0であるのでレ
ジスタ730a1を選択する。レジスタ732aは、371aに1を
送出されたことにより、レジスタ730a1が保持するスト
ア・データを保持する。レジスタ370にアドレスがセツ
トされたことにより、主記憶400のバンク0に対するア
クセス要求が出され、第12図におけるレジスタ732aが保
持するデータがストアされる。さらに、選択回路390
は、365a1に1を送出し、Validビツト付きレジスタ362a
のValidビツトをリセツトする。このようにして、まだ
主記憶400のバンク0にストアされないままになつてい
たデータをストアする。
次に、Validビツト付きレジスタ362bのValidビツトが
1の場合には、選択回路390は、Validビツト付きレジス
タ362bを選択する。選択回路390は、Validビツト付きレ
ジスタ362bが保持するアドレスをレジスタ370にセツト
するために371aに1を送出する。レジスタ370は、選択
回路390から送出されたアドレスを保持する。また、選
択回路390は、367a1に1を送出する。第12図において、
セレクタ734aは、367aが1であるのでレジスタ730a2を
選択する。レジスタ732aは、371aに1を送出されたこと
により、レジスタ730a2が保持するストア・データを保
持する。レジスタ370にアドレスがセツトされたことに
より、主記憶400のバンク0に対するアクセス要求が出
され、第12図におけるレジスタ732aが保持するデータが
ストアされる。さらに、選択回路390は、365a2に1を送
出し、Validビツト付きレジスタ362bのValidビツトをリ
セツトする。このようにして、まだ主記憶400のバンク
0にストアされないままになつていたデータをストアす
る。
以上の手順により、インデクス付きストア命令は実行
される。
以上のように、インデクス付きロード/ストア命令は
実行される。
次に、具体的な例によつて、本実施例の動作を説明す
る。
(1)リスト・ベクトルVR0、ベクトル・ベース・レジ
スタVBR0によつてアドレス付けされるベクトル・データ
をVR1に読み出す場合。ベクトル・データは12要素から
なるとする。VR0の内容は、要素順に0,0,4,4,0,0,4,4,
0,0,4,4とし、VBR0の内容は4とする。
第3図において、ベクトル・レジスタ100のVR0より最
初の4要素(要素番号が0ないし3の要素)が読み出さ
れ、加算器210aないし210dにおいてベクトル・ベース・
レジスタ106のVBR0の内容が加えられ、302aないし302d
には、それぞれアドレス4,4,8,8が送出される。
第13図において、バンク番号デコーダ310aないし310d
は、302aないし302dに送出されたアドレス4,4,8,8はど
のバンクに属するかを調べる。今、主記憶400は、4つ
のバンクからなるので、アドレス4、アドレス8ともに
バンク0に属する。したがつて、バンク番号デコーダ31
0aないし310dは、アドレス4,4,8,8それぞれを、メモリ
・リクエスタ330のValidビツト付きレジスタ350aないし
350dにセツトする。
第9図において、Validビツト付きレジスタ362aと362
bのValidビツトは0である。Validビツト付きレジスタ3
50aないし350dのValidビツトは1で、アドレスはそれぞ
れ4,4,8,8である。一致検出回路380は、A=B,C=Dに
対応する信号338に1を送出する。選択回路390は、Vali
dビツト付きレジスタ350aのValidビツトが1なので、Va
lidビツト付きレジスタ350aを選択する。選択回路390
は、Validビツト付きレジスタ350aが保持するアドレス
4を、レジスタ370とValidビツト付きレジスタ362aにセ
ツトするために、371aと363a1に1を送出する。レジス
タ370はアドレス4を保持する。Validビツト付きレジス
タ362aもアドレス4を保持し、Validビツトは1とな
る。レジスタ370にアドレスがセツトされたので、主記
憶400のバンク0に対して、アドレス4の読み出し要求
が出される。選択回路390は、306a1に1を送出すると同
時に、A=Bに対応する信号388が1となつているの
で、306a2にも1を送出する。また、選択回路390は、36
3a1に1を送出したので、308a1には1を送出し、367aに
は0を送出する。Validビツト付きレジスタ350aと350b
のValidビツトは、306a1と306a2によつてリセツトされ
る。
第11図において、アドレス4のデータが、バンク・サ
イクル時間後に主記憶400のバンク0から読み出され
る。アドレス4のデータは信号308a1によつてレジスタ5
20aにセツトされる。セレクタ550aは、367aが0である
のでレジスタ520aを選択する。選択回路540aと540bは、
それぞれ306a1と306a2が1であるので、セレクタ550aを
選択する。レジスタ530aと530bは、セレクタ550aが選択
するレジスタ520aの内容を保持する。
再びび、第9図において、アドレス4のデータが主記
憶のバンク0より読み出されると、バンク0がビジー状
態でなくなる。このとき、Validビツト付きレジスタ350
aと350bはValidビツトは0であり、Validビツト付きレ
ジスタ350cと350dはValidビツトは1でアドレス8を保
持し、Validビツト付きレジスタ362aはValidビツトは1
でアドレス4を保持し、Validビツト付きレジスタ362b
のValidビツトは0である。一致検出回路380は、C=D
に対応する信号388に1を送出する。選択回路390は、Va
lidビツト付きレジスタ350cのValidビツトが1なので、
Validビツト付きレジスタ350cを選択する。選択回路390
は、Validビツト付きレジスタ350cが保持するアドレス
8を、レジスタ370とValidビツト付きレジスタ362bにセ
ツトするために、371aと363a2に1を送出する。レジス
タ370はアドレス8を保持する。Validビツト付きレジス
タ362aもアドレス8を保持し、Validビツトは1とな
る。レジスタ370にアドレスがセツトされたので、主記
憶400のバンク0に対して、アドレス8の読み出し要求
が出される。選択回路390は、306a3に1を送出すると同
時に、C=Dに対応する信号388が1となつているの
で、306a4にも1を送出する。また、選択回路390は、36
2a2に1を送出したので、308a2には1を送出し、367aに
は1を送出する。Validビツト付きレジスタ350cと350d
のValidビツトは、306a3と306a4によつてリセツトされ
る。
第11図において、アドレス8のデータが、バンク・サ
イクル時間後に主記憶400のバンク0から読み出され
る。アドレス8のデータは信号308a2によつてレジスタ5
20bにセツトされる。セレクタ550aは、367aが1である
のでレジスタ520bを選択する。選択回路540cと540dは、
それぞれ306a3ないし306a4が1であるので、セレクタ55
0aを選択する。レジスタ530cと530dは、セレクタ550aが
選択するレジスタ520bの内容を保持する。
レジスタ530aないし530dのすべてにデータがセツトさ
れると、レジスタ530aないし530dの内容は102aないし10
2dを通して、ベクトル・レジスタ100のVR1の最初の4要
素(要素番号が0ないし3の要素)にセツトされる。
再び、第13図において、306a1ないし306a4がすべて1
となつたので、304から1が送出される。この信号によ
つて、第3図において、ベクトル・レジスタ100のVR0か
ら次の4要素(要素番号が4ないし7の要素)が読み出
され、加算器210aないし210dにおいてベクトル・ベース
・レジスタ106のVBR0の内容が加えられ、302aないし302
dに、それぞれアドレス4,4,8,8が送出される。
第13図において、バンク番号デコーダ310aないし310d
は、302aないし302dに送出されたアドレス4,4,8,8はど
のバンクに属するかを調べる。アドレス4、アドレス8
ともにバンク0に属するので、バンク番号デコーダ310a
ないし310dは、アドレス4,4,8,8それぞれを、メモリ・
リクエスタ330のValidビツト付きレジスタ350aないし35
0dにセツトする。
次に、第9図において、Validビツト付きレジスタ350
aないし350dのValidビツトは1で、アドレスはそれぞれ
4,4,8,8である。Validビツト付きレジスタ362aは、Vali
dビツトが1であり、アドレスは4を保持している。Val
idビツト付きレジスタ362bは、Validビツトが1であ
り、アドレスは8を保持している。一致検出回路380
は、Z1=A,Z1=B,Z2=C,Z2=Dに対応する信号388に1
を送出する。選択回路390は、まず、Z1=A=Bなので3
06a1と306a2に1を送出するとともに、367aに0を送出
する。Validビツト付きレジスタ350aと350bのValidビツ
トは、306a1と306a2によつてリセツトされる。
第11図において、レジスタ520aはアドレス4に対する
データを保持している。セレクタ550aは、367aが0なの
でレジスタ520aを選択する。選択回路540aと540bは、そ
れぞれ選択信号306a1と306a2が1であるので、セレクタ
550aないし550dの内、セレクタ550aを選択する。この結
果、主記憶へ読み出し要求を出すことなしに、レジスタ
530aと530bは、レジスタ520aが保持するデータを保持す
る。
再び、第9図において、Validビツト付きレジスタ350
aと350bのValidビツトは0であり、Validビツト付きレ
ジスタ350cと350dはValidビツトは1でアドレス8を保
持し、Validビツト付きレジスタ362aはValidビツトは1
でアドレス4を保持し、Validビツト付きレジスタ362b
はValidビツトは1でアドレス8を保持している。一致
検出回路380は、Z2=C,Z2=Dに対応する信号388に1を
送出する。選択回路390は、Z2=C=Dなので306a3と30
6a4に1を送出するとともに、367aに1を送出する。Val
idビツト付きレジスタ350cと350dのValidビツトは、306
a3と306a4によつてリセツトされる。
第11図において、レジスタ520bはアドレス8に対する
データを保持している。セレクタ550aは、367aが1なの
でレジスタ520bを選択する。選択回路540cと540dは、そ
れぞれ選択信号306a3と306a4が1であるので、セレクタ
550aないし550dの内、セレクタ550aを選択する。この結
果、レジスタ530aと530bにデータがセツトされる時間の
1マシン・サイクル遅れで、レジスタ530cと530dは、レ
ジスタ520bが保持するデータを保持する。
こうして、レジスタ530aないし530dのすべてにデータ
がセツトされると、レジスタ530aないし530dの内容は、
102aないし102dを通して、最初の4要素がベクトル・レ
ジスタ100のVR1にセツトされる2マシン・サイクル遅れ
で、VR1の要素番号が4ないし7の4要素にセツトされ
る。
一方、第13図において、306a1ないし306a4がすべて1
となつたので、304から1が送出される。この信号によ
つて、第3図において、ベクトル・レジスタ100のVR0か
ら次の4要素(要素番号が8ないし11の要素)が読み出
され、加算器210aないし210dにおいてベクトル・ベース
・レジスタ106のVBR0の内容が加えられ、302aないし302
dに、それぞれアドレス4,4,8,8が送出される。
要素番号が8ないし11の4要素についても、要素番号
が4ないし7の4要素と同様にして、第11図のレジスタ
520aおよび520bが保持しているアドレス4と8のデータ
を利用することにより、要素番号が4ないし7の4要素
がベクトル・レジスタ100のVR1にセツトされる2マシン
・サイクル遅れで、VR1の要素番号が8ないし11の4要
素にセツトされる。
以上のように、同一のバンクに属する2つのアドレス
を交互にアクセスする場合においても、アドレスを保持
する手段、主記憶から読み出されたデータを保持する手
段、主記憶へ書き込むデータを保持する手段を、それぞ
れ2個備えることにより、同一アドレスに対する複数個
のアクセス要求を最初の1個のみに抑止することができ
る。
(2) リスト・ベクトルVR0、ベクトル・ベース・レ
ジスタVBR0によつてアドレス付けされる主記憶に、VR1
が保持するベクトル・データをストアする場合。ベクト
ル・データは12要素からなるとする。VR0の内容は、要
素順に0,0,4,4,0,0,4,4,4,4,8,8とし、VBR0の内容は4
とする。
第3図において、ベクトル・レジスタ100のVR0より最
初の4要素(要素番号が0ないし3の要素)が読み出さ
れ、加算器210aないし210dにおいてベクトル・ベース・
レジスタ106のVBR0の内容が加えられ、302aないし302d
には、それぞれアドレス4,4,8,8が送出される。
第13図において、バンク番号デコーダ310aないし310d
は、302aないし302dに送出されたアドレス4,4,8,8はど
のバンクに属するかを調べる。今、主記憶400は、4つ
のバンクからなるので、アドレス4、アドレス8ともに
バンク0に属する。したがつて、バンク番号デコーダ31
0aないし310dは、アドレス4,4,8,8それぞれを、メモリ
・リクエスタ330のValidビツト付きレジスタ350aないし
350dにセツトする。
また、第12図において、ベクトル・レジスタ100のVR1
より最初の4要素(要素番号が0ないし3の要素)が読
み出され、レジスタ720aないし720dにセツトされる。
第9図において、Validビツト付きレジスタ362aと362
bのValidビツトは0である。Validビツト付きレジスタ3
50aないし350dのValidビツトは1で、アドレスはそれぞ
れ4,4,8,8である。一致検出回路380は、A=B,C=Dに
対応する信号388に1を送出する。選択回路390は、Vali
dビツト付きレジスタ350aのValidビツトが1なので、Va
lidビツト付きレジスタ350aを選択する。選択回路390
は、Validビツト付きレジスタ350aが保持するアドレス
4を、Validビツトつきレジスタ362aにセツトするため
の363a1に1を送出する。Validビツト付きレジスタ362a
は、アドレス4を保持し、Validビツトは1となる。選
択回路390は、306a1に1を送出すると同時に、A=Bに
対応する信号388が1となつているので、306a2にも1を
送出する。また、選択回路390は、363a1に1を送出した
ので、309a1に1を送出する。Validビツト付きレジスタ
350aと350bのValidビツトは、306a1と306a2によつてリ
セツトされる。レジスタ370にアドレスはセツトされな
いので、主記憶400のバンク0に対する書き込み要求は
出ない。
第12図において、組み合せ回路750aは、306a1と306a2
が1であるので、752a2に1を送出する。選択回路740a
は、752a2が1であるのでレジスタ720bを選択する。レ
ジスタ730a1は、309a1が1であるのでレジスタ720bが保
持する内容を保持する。
再び、第9図において、選択回路390が、Validビツト
付きレジスタ350aと350bを選択した1マシン・サイクル
後には、Validビツト付レジスタ350aと350bのValidビツ
トは0であり、Validビツト付レジスタ350cと350dはVal
idビツトは1でアドレス8で保持し、Validビツト付き
レジスタ362aはValidビツトは1でアドレス4を保持
し、Validビツト付きレジスタ362bのValidビツトは0で
ある。一致検出回路380は、C=Dに対応する信号388に
1を送出する。選択回路390は、Validビツト付きレジス
タ350cのValidビツトが1なので、Validビツト付きレジ
スタ350cを選択する。選択回路390は、Validビツト付き
レジスタ350cが保持するアドレス8を、Validビツト付
きレジスタ362bにセツトするために、362a2に1を送出
する。Validビツト付きレジスタ362aはアドレス8を保
持し、Validビツトは1となる。選択回路390は、306a3
に1を送出すると同時に、C=Dに対応する信号388が
1となつているので、306a4にも1を送出する。また、
選択回路390は、363a2に1を送出したので、309a2に1
を送出する。Validビツト付きレジスタ350cと350dのVal
idビツトは、306a3と306a4によつてリセツトされる。レ
ジスタ370にアドレスはセツトされないので、主記憶400
のバンク0に対する書き込み要求は出ない。
第12図において、組み合せ回路750aは、306a3と306a4
が1であるので、752a4に1を送出する。選択回路740a
は、752a4が1であるので720dを選択する。レジスタ730
a2は、309a2が1であるのでレジスタ720dが保持する内
容を保持する。レジスタ730a1の内容は、309a1に1が送
出されていないので変わらない。
第13図において、306aないし306a4がすべて1となつ
たので、304から1が送出される。この信号によつて、
第3図において、ベクトル・レジスタ100のVR0から次の
4要素(要素番号が4ないし7の要素)が読み出され、
加算器210aないし210dにおいてベクトル・ベース・レジ
スタ106のVBR0の内容が加えられ、302aないし302dに、
それぞれアドレス4,4,8,8が送出される。
第13図において、バンク番号デコーダ310aないし310d
は、302aないし302dに送出されたアドレス4,4,8,8はど
のバンクに属するかを調べる。アドレス4、アドレス8
ともにバンク0に属するので、バンク番号デコーダ310a
ないし310dは、アドレス4,4,8,8それぞれを、メモリ・
リクエスタ330のValidビツト付きレジスタ350aないし35
0dにセツトする。
第9図において、Validビツト付きレジスタ350aない
し350dのValidビツトは1で、アドレスはそれぞれ4,4,
8,8である。Validビツト付きレジスタ362aは、Validビ
ツトが1であり、アドレスは4を保持している。Valid
ビツト付きレジスタ362bは、Validビツトが1であり、
アドレスは8を保持している。一致検出回路380は、Z1
=A,Z1=B,Z2=C,Z2=Dに対応する信号388に1を送出
する。選択回路390は、まず、Z1=A=Bなので306a1と
306a2に1を送出するとともに、309a1に1を送出する。
Validビツト付きレジスタ350aと350bのValidビツトは、
306a1と305a2によつてリセツトされる。レジスタ370に
アドレスはセツトされないので、主記憶400のバンク0
に対する書き込み要求は出ない。
第12図において、組み合せ回路750aは、306a1と306a2
が1であるのて、752a2に1を送出する。選択回路740a
は、752a2が1であるのでレジスタ720bを選択する。レ
ジスタ730a1は、309a1は1であるのでレジスタ720bが保
持する内容を保持する。つまり、レジスタ730a1は、要
素番号5のストア・データを保持する。
再び、第9図において、選択回路390が、Validビツト
付きレジスタ350aと350bを選択した1マシン・サイクル
後には、Validビツト付きレジスタ350aと350bのValidビ
ツトは0であり、Validビツト付きレジスタ350cと350d
はValidビツトは1でアドレス8を保持し、Validビツト
付きレジスタ362aはValidビツトは1でアドレス4を保
持し、Validビツト付きレジスタ362bはValidビツトは1
でアドレス8を保持している。一致検出回路380は、Z2
=C,Z2=Dに対応する信号388に1を送出する。選択回
路390は、Z2=C=Dなので306a3と306a4に1を送出す
るとともに、309a2に1を送出する。Validビツト付きレ
ジスタ350cと350dのValidビツトは、306a3と306a4によ
つてリセツトされる。レジスタ370にアドレスはセツト
されないので、主記憶400のバンク0に対する書き込み
要求は出ない。
第12図において、組み合せ回路750aは、306a3と306a4
が1であるので、752a4に1を送出する。選択回路740a
は、752a4が1であるのでレジスタ720dを選択する。レ
ジスタ730a2は、309a2が1であるのでレジスタ720dが保
持する内容を保持する。つまり、レジスタ730a2は、要
素番号7のストア・データを保持する。
一方、第13図において、306a1ないし306a4がすべて1
となつたので、304から1が送出される。この信号によ
つて、第3図において、ベクトル・レジスタ100のVR0か
ら次の4要素(要素番号が8ないし11の要素)が読み出
され、加算器210aないし210dにおいてベクトル・ベース
・レジスタ106のVBR0の内容が加えられ、302aないし302
dに、それぞれアドレス8,8,12,12が送出される。
第13図において、バンク番号デコーダ310aないし310d
は、302aないし302dに送出されたアドレス8,8,12,12は
どのバンクに属するかを調べる。アドレス8、アドレス
12ともにバンク0に属するので、バンク番号デコーダ31
0aないし310dは、アドレス8,8,12,12それぞれを、メモ
リ・リクエスタ330のValidビツト付きレジスタ350aない
し350dにセツトする。
第9図において、Validビツト付きレジスタ350aない
し350dのValidビツトは1で、アドレスはそれぞれ8,8,1
2,12である。Validビツト付きレジスタ362aは、Validビ
ツトが1であり、アドレスは4を保持している。Valid
ビツト付きレジスタ362bは、Validビツトが1であり、
アドレスは8を保持している。一致検出回路380は、Z2
=A,Z2=B,C=Dに対応する信号388に1を送出する。選
択回路390は、まず、Z2=A=Bなので306a1と306a2に
1を送出するとともに、309a2に1を送出する。Validビ
ツト付きレジスタ350aと350bのValidビツトは、306a1と
306a2によつてリセツトされる。レジスタ370にアドレス
はセツトされないので、主記憶400のバンク0に対する
書き込み要求は出ない。
第12図において、組み合せ回路750aは、306a1と306a2
が1であるので、752a2に1を送出する。選択回路740a
は、752a2が1であるのでレジスタ720bを選択する。レ
ジスタ730a2は、309a2が1であるのでレジスタ720bが保
持する内容を保持する。つまり、レジスタ730a2は、要
素番号9のストア・データを保持する。
再び、第9図において、選択回路390が、Validビツト
付きレジスタ350aと350bを選択した1マシン・サイクル
後には、Validビツト付きレジスタ350aと350bのValidビ
ツトは0であり、Validビツト付きレジスタ350cと350d
はValidビツトは1でアドレス12を保持し、Validビツト
付きレジスタ362aはValidビツトは1でアドレス4を保
持し、Validビツト付きレジスタ362bのValidビツトは1
でアドレス8を保持している。一致検出回路380は、C
=Dに対応する信号388に1を送出する。選択回路390は
Z1≠C=D,Z2≠C=Dであり、Validビツト付きレジス
タ362aと362bのValidビツトがともに1であるので、Val
idビツト付きレジスタ362aを選択する。選択回路390
は、Validビツト付きレジスタ362aが保持するアドレス
をレジスタ370にセツトするために、371aに1を送出す
る。レジスタ370は、選択回路390が選択したValidビツ
ト付きレジスタ362aが保持するアドレスを保持する。ま
た、選択回路390は、367aに0を送出する。一方、第12
図において、セレクタ734aは、367aが0であるのでレジ
スタ730a1を選択する。レジスタ732aは、371aが1とな
つたのでセレクタ734aが選択するレジスタ730a1が保持
する内容を保持する。第9図において、レジスタ370に
アドレスがセツトされたので、主記憶400のバンク0に
対して書き込み要求が出される。こうして、アドレスが
レジスタ370から主記憶400のバンク0へ送出されるのと
同期して、データもレジスタ732aから704aを通して主記
憶400のバンク0へ送出され、アドレス4に対するスト
ア処理が実行される。また、選択回路390は、Validビツ
ト付きレジスタ362aのValidビツトをリセツトするため
に、365a1に1を送出する。
アドレス4のデータの書き込み要求が主記憶400のバ
ンク0へ出されると、主記憶400のバンク0は、バンク
・サイクル時間の間ビジー状態となる。主記憶400のバ
ンク0がビジー状態でなくなつた時、Validビツト付き
レジスタ350aと350bのValidビツトは0であり、Validビ
ツト付きレジスタ350cと350dは、Validビツトは1でア
ドレス12を保持し、Validビツト付きレジスタ362aはVal
idビツトは0で、Validビツト付きレジスタ362bはValid
ビツトは1でアドレス8を保持している。一致検出回路
380は、C=Dに対応する信号388に1を送出する。選択
回路390は、Validビツト付きレジスタ350cのValidビツ
トが1なので、Validビツト付きレジスタ350cを選択す
る。選択回路390は、Validビツト付きレジスタ350cが保
持するアドレス12を、Validビツト付きレジスタ362aに
セツトするために、363a1に1を送出する。Validビツト
付きレジスタ362aはアドレス12を保持し、Validビツト
は1となる。選択回路390は、306a3に1を送出すると同
時に、C=Dに対応する信号388が1となつているの
で、306a4にも1を送出する。また、選択回路390は、36
3a1に1を送出したので、309a1に1を送出する。Valid
ビツト付きレジスタ350cと350dのValidビツトは、306a3
と306a4によつてリセツトされる。レジスタ370にアドレ
スはセツトされないので、主記憶400のバンク0に対す
る書き込み要求は出ない。
第12図において、組み合せ回路750aは、306a3と306a4
が1であるので、752a4に1を送出する。選択回路740a
は、752a4が1であるのでレジスタ720dを選択する。レ
ジスタ730a1は、309a1が1であるのでレジスタ720dが保
持する内容を保持する。
一方、第13図において、306a1ないし306a4がすべて1
となつたので、304から1が送出される。この信号によ
つて、このストア命令の全ての要素の処理が終了する。
このため、第9図において、次のマシン・サイクル
で、選択回路390は、Validビツト付きレジスタ362bを選
択する。選択回路390は、Validビツト付きレジスタ362b
が保持するアドレスをレジスタ370にセツトするため
に、371aに1を送出する。レジスタ370は、選択回路390
が選択したValidビツト付きレジスタ362bが保持するア
ドレスを保持する。また、選択回路390は、367aに1を
送出する。一方、第12図において、セレクタ734aは、36
7aが1であるのでレジスタ730a2を選択する。レジスタ7
32aは、371aが1となつたのでセレクタ734aが選択する
レジスタ730a2が保持する内容を保持する。第9図にお
いて、レジスタ370にアドレスがセツトされたので、主
記憶400のバンク0に対して書き込み要求が出される。
こうして、アドレスがレジスタ370から主記憶400のバン
ク0へ送出されるのと同期して、データもレジスタ732a
から704aを通して主記憶400のバンク0へ送出され、ア
ドレス8に対するストア処理が実行される。また、選択
回路390は、Validビツト付きレジスタ362bのValidビツ
トをリセツトするために、365a2に1を送出する。
アドレス8のデータの書き込み要求が主記憶400のバ
ンク0へ出されると、主記憶400のバンク0は、バンク
・サイクル時間の間ビジー状態となる。主記憶400のバ
ンク0がビジー状態でなくなると、次に、選択回路390
は、Validビツト付きレジスタ362aを選択する。選択回
路390は、Validビツト付きレジスタ362aが保持するアド
レスをレジスタ370にセツトするために、371aに1を送
出する。レジスタ370は、選択回路390が選択したValid
ビツト付きレジスタ362aが保持するアドレスを保持す
る。また、選択回路390は、367aに0を送出する。一
方、第12図において、セレクタ734aは、367aが0である
のでレジスタ730a1を選択する。レジスタ732aは、371a
が1となつたのでセレクタ734aが選択するレジスタ730a
1が保持する内容を保持する。第9図において、レジス
タ370にアドレスがセツトされたので、主記憶400のバン
ク0に対して書き込み要求が出される。こうして、アド
レスがレジスタ370から主記憶400のバンク0へ送出され
るのと同期して、データもレジスタ732aから704aを通し
て主記憶400のバンク0へ送出され、アドレス12に対す
るストア処理が実行される。また、選択回路390は、Val
idビツト付きレジスタ362aのValidビツトをリセツトす
るために、365a1に1を送出する。
以上のようにして、インデクス付きストア命令が実行
される。
以上のように、同一バンクに属する2つのアドレスを
交互にアクセスする場合においても、アドレスを保持す
る手段、主記憶から読み出されたデータを保持する手
段、主記憶へ書き込むデータを保持する手段を、それぞ
れ2個備えることにより、同一アドレスに対する複数個
のストア要求を最後の1個の要素のみに抑止することが
できる。
以上、本実施例では、アドレスを保持する手段、主記
憶から読み出されたデータを保持する手段、主記憶へ書
き込むデータを保持する手段を、それぞれ2個備えてい
るが、これらの手段を2個に限る必要はない。これらの
手段を3個以上ずつ備えることにより、同一のバンクに
属する3つ以上の同一アドレスに対するアクセスの回数
を減らすことができる。
また、本実施例では、4要素並列処理の場合について
述べているが、4要素に限定する必要はない。また、主
記憶のバンク数を4に限定する必要もない。要素並列度
や主記憶のバンク数を増加させることにより、インデク
ス付きロード/ストア命令を一層効率よく処理できる。
以上、1つのインデクス付きロード/ストア命令にお
いて、同一のアドレスをアクセスする場合について述べ
た。しかし、本発明を示す第1図は、2要素並列の2組
のロード/ストア・パイプラインを用いて、同一のアド
レスを参照する2つのロード命令0およびロード命令1
を処理する場合や、2つのストア命令0およびストア命
令1を処理する場合にも適用できる。この場合を第8図
を用いて説明する。
第8図において、100はVRAないしVRBからなるベクト
ル・レジスタ(VR)、106はベクトル・ベース・レジス
タ(VBR)、108はベクトル増分レジスタ(VIR)、200な
いし201はアドレス発生部、210a,210b,211a,211bは加算
器、300は主記憶制御部、330ないし333はメモリ・リク
エスタ、400はバンク0ないしバンク3からなる主記
憶、500はフエツチ・データ処理部、600は命令実行制御
部、700はストア・データ処理部を表す。
2つのベクトル・ロード命令0とベクトル・ロード命
令1が同時に実行される場合について述べる。ベクトル
・ロード命令によつて読み出されるベクトル・データの
アドレスは、加算器210aないし210bによつて2要素ずつ
同時に計算されるか、もしくは加算器211aないし211bに
よつて2要素ずつ同時に計算される。加算器210a,211a
は、要素番号が2nの要素のアドレスを計算し、加算器21
0b,211bは、要素番号が2n+1の要素のアドレスを計算
する。加算器210a,210b,211a,211bは、ベクトル・デー
タが主記憶上に一定の間隔で配置される場合には、ベク
トル・ベース・レジスタ106が保持する内容にベクトル
増分レジスタ108が保持する内容に要素番号を乗じた値
を加える。ベクトル・データが主記憶上にランダムに配
置される場合には、ベクトル・ベース・レジスタ106が
保持する内容にベクトル・レジスタ100のVRAまたはVRB
より読み出されたリスト・ベクトルの内容を加える。
今、ベクトル・ロード命令0によつて読み出されるベク
トル・データのアドレスは、加算器210aないし210bによ
つて2要素ずつ同時に計算され、ベクトルロード命令1
によつて読み出されるベクトル・データのアドレスは、
加算器211aないし211bによつて2要素ずつ同時に計算さ
れる。アドレス発生部200は、加算器210aないし210bに
よつて求められたベクトル・ロード命令0のアドレスを
302aないし302bを通して主記憶制御部300へ送る。アド
レス発生部201は、加算器211aないし211bによつて求め
られたベクトル・ロード命令1のアドレスを302cないし
302dを通して主記憶制御部300へ送る。
主記憶制御部300の中の主記憶のバンク対応に設けら
れたメモリ・リクエスタ330ないし333は、1つのインデ
クス付きロード命令を実行する場合と同様にして、アド
レスの一致の有無を検出し、同一のアドレスに対する主
記憶のアクセス回数を抑止する。つまり、この場合、第
1図のValidビツト付きレジスタ350aおよび350bにはベ
クトル・ロード命令0のアドレスを保持させ、Validビ
ツト付きレジスタ350cおよび350dにはベクトル・ロード
命令1のアドレスを保持させる。
主記憶制御部300へ送られたアドレスに対するデータ
は、1つのインデクス付きロード命令を実行する場合と
同様にして、主記憶400から読み出され、フエツチ・デ
ータ処理部500のレジスタ530aないし530dにセツトされ
る。ベクトル・ロード命令0に対するデータはレジスタ
530aないし530bにセツトされ、102aないし102bを通して
ベクトル・レジスタ100のVRAないしVRBに格納する。ベ
クトル・ロード命令1に対するデータはレジスタ530cな
いし530dにセツトされ、102aないし102bを通してベクト
ル・レジスタ100のVRAないしVRBに格納される。
以上のように、2つのベクトル・ストア命令0とベク
トル・ストア命令1が同時に実行される場合について
も、ベクトル・ロード命令の場合と同様に、本発明によ
つて、同一のアドレスを参照することを検出し、同一の
アドレスに対する主記憶アクセスを1回に抑止できる。
このように、2要素並列の2組のロード/ストア・パ
イプラインを用いて、2つのロード命令0およびロード
命令1を処理する場合や、2つのストア命令0およびス
トア命令1を処理する場合には、2つの命令が同一のア
ドレスをアクセスする場合を検出し主記憶アクセス要求
を抑止するので、ベクトル・ロード/ストア命令は、イ
ンデクス付きロード/ストア命令ではなく、一定間隔に
主記憶上に配置されたベクトル・データをインクリメン
タルにアクセスするものであつてもよい。
また、本実施例は、2要素並列のロード/ストア・パ
イプライン2組に関するものであるが、要素並列の数お
よびロード/ストア・パイプラインの組数を2に限る必
要はない。
〔発明の効果〕
以上詳しく述べたように、本発明によれば、主記憶装
置へリクエストされるアドレスを保持する第2のアドレ
ス保持手段を設けると共に、この第2のアドレス保持手
段と、順次に転送されるアドレス相互の一致性の検出手
段とを特に、バンク対応で設けたので、同時に転送され
る要素間や同一ライン上の順次連続して転送される要素
間でアドレスが一致する場合だけでなく、順次に間を置
いて転送される要素間や順次に異なるラインに跨つて転
送される要素間でアドレスが一致する場合でも、広範囲
に亘つてその一致を確実に検出して、アクセス回数を1
回のみに制限することができ、その結果、同一の主記憶
アドレスを連続してアクセスするインデクス付きロード
/ストア命令や、同一の主記憶アドレスをアクセスする
複数個の同時に実行されるベクトル・ロード/ストア命
令を、バンクコンフリクトを防止して効率よく処理する
ことができる。
【図面の簡単な説明】
第1図は、本発明の1実施例を示すものであつて、第3
図におけるメモリ・リクエスタの詳細回路図、第2図は
第1図における一致検出回路の詳細図、第3図は本発明
を含むベクトル・データ処理装置の1実施例のブロツク
図、第4図は第3図における主記憶制御部の詳細図、第
5図は第3図におけるフエツチ・データ処理部の詳細
図、第6図は第3図におけるストア・データ処理部の詳
細図、第7図は従来のベクトル・データ処理装置のブロ
ツク図、第8図は、本発明の他の1実施例を示すもので
あつて、2組のロード/ストア・パイプラインからなる
ベクトル・データ処理装置のブロツク図、第9図ないし
第13図は本発明の更に他の実施例の詳細図であつて、第
9図は第3図におけるメモリ・リクエスタの詳細図、第
10図は第9図における一致検出回路の詳細図、第11図は
第3図におけるフエツチ・データ処理部の詳細図、第12
図は第3図におけるストア・データ処理部の詳細図、第
13図は第3図における主記憶制御部の詳細図である。 100……ベクトル・レジスタ、106……ベクトル・ベース
・レジスタ、108……ベクトル増分レジスタ、200……ア
ドレス発生部、210aないし210d……加算器、220……一
致検出回路、300……主記憶制御部、310aないし310d…
…バンク番号デコーダ、330ないし333……メモリ・リク
エスタ、350aないし350d,350a1ないし350d1,350a2ない
し350d2,350a3ないし350d3……Validビツト付きレジス
タ、362,362a,362b……Validビツト付きレジスタ、370,
370−1,370−2,370−3……レジスタ、380……一致検出
回路、382……比較回路、390……選択回路、398……AND
回路、399aないし399d……レジスタ、400……主記憶、5
00……フエツチ・データ処理部、520ないし523,520aな
いし523a,520bないし523b……レジスタ、530aないし530
d……レジスタ、540aないし540d……選択回路、550aな
いし550d……セレクタ、600……命令実行制御部、700…
…ストア・データ処理部、720aないし720d……レジス
タ、740aないし740d……選択回路、730aないし730d,730
a1ないし730d1,730a2ないし730d2……レジスタ、732aな
いし732d……レジスタ、750aないし750d……組み合せ回
路、734aないし734d……セレクタ、800……アクセス・
データ処理部。

Claims (11)

    (57)【特許請求の範囲】
  1. 【請求項1】ベクトルデータ保持手段と複数のバンクか
    ららなる主記憶装置との間で、アクセス要求に従つてロ
    ード又はストアのためのデータ転送を行なうベクトルデ
    ータ処理装置において、前記ベクトルデータの要素の前
    記主記憶装置上のアドレスであつて前記データ転送を行
    なうデータ転送手段より転送される複数のアドレスをそ
    の都度保持する第1のアドレス保持手段と、前記第1の
    アドレス保持手段に保持されたアドレスの1つを選択す
    る選択手段と、前記選択手段が選択したアドレスを保持
    する第2のアドレス保持手段と、前記第1及び第2のア
    ドレス保持手段にそれぞれ保持された後発及び先発のア
    ドレスを比較して相互の一致性を検出する検出手段と、
    前記一致性が検出されたときそのアドレスに対するアク
    セス要求を1つのみに制限して実行するアクセス抑止手
    段とを備え、前記第1及び第2のアドレス保持手段、選
    択手段、並びに、検出手段は、前記各バンクに対応して
    設けていることを特徴とするベクトルデータ処理装置。
  2. 【請求項2】ベクトル・ロード命令実行時に、前記選択
    手段により選択され前記第2のアドレス保持手段により
    保持されたアドレスによつて読み出されたデータを保持
    させる読み出しデータ保持手段を備えたことを特徴とす
    る特許請求の範囲第1項記載のベクトルデータ処置装
    置。
  3. 【請求項3】ベクトル・ストア命令実行時に、前記選択
    手段により選択され前記第2のアドレス保持手段により
    保持されたアドレスに書き込むデータを保持させる書き
    込みデータ保持手段を備えたことを特徴とする特許請求
    の範囲第1項記載のベクトルデータ処理装置。
  4. 【請求項4】前記アクセス抑止手段は、ベクトル・ロー
    ド命令実行時に、アドレスの一致するアクセス要求のう
    ち、最先のアクセス要求のみを実行し、他のアクセス要
    求を抑止するように構成された特許請求の範囲第1項記
    載のベクトルデータ処理装置。
  5. 【請求項5】前記アクセル抑止手段は、ベクトル・スト
    ア命令実行時に、アドレスの一致するアクセス要求のう
    ち、最終のアクセス要求のみを実行し、他のアクセス要
    求を抑止するように構成された特許請求の範囲第1項記
    載のベクトルデータ処理装置。
  6. 【請求項6】インデクス付きベクトル・ロード命令を実
    行する場合に、前記第1のアドレス保持手段が保持して
    いるアドレスの中で、前記第2のアドレス保持手段が保
    持しているアドレスと一致するものがあれば、一致する
    アドレスに対する主記憶アクセスを抑止して前記読み出
    しデータ保持手段からデータをコピーするようにし、前
    記第1のアドレス保持手段が保持しているアドレスの中
    で、前記第2のアドレス保持手段が保持しているアドレ
    スと一致するものがなく、かつ前記第1のアドレス保持
    手段が保持しているアドレスの中でアドレスが一致する
    ものがあれば、一致するアドレスに対する主記憶アクセ
    ス回数を減らし、アクセスの実行されたアクセス要求元
    のベクトル・データ保持手段に前記読み出しデータ保持
    手段からデータを転送すると共に、アクセスの実行され
    なかつたアクセス要求元のベクトルデータ保持手段にも
    前記読み出しデータ保持手段からデータをコピーするよ
    うにした特許請求の範囲第2項又は第4項記載のベクト
    ルデータ処理装置。
  7. 【請求項7】インデクス付きベクトル・ストア命令を実
    行する場合に、前記第1のアドレス保持手段が保持して
    いるアドレスの中で、前記第2のアドレス保持手段が保
    持しているアドレスと一致するものがなくなるまで、前
    記第2のアドレス保持手段が保持しているアドレスに対
    する主記憶アクセスを抑止するようにした、特許請求の
    範囲第3項又は第5項記載のベクトルデータ処理装置。
  8. 【請求項8】複数個の異なるベクトル・ロード命令を実
    行する場合に、前記第1のアドレス保持手段に、複数個
    のデータ転送手段から転送されるアドレスを保持させ、
    前記第1のアドレス保持手段が保持しているアドレスの
    中で、前記第2のアドレス保持手段が保持しているアド
    レスと一致するものがあれば、一致するアドレスに対す
    る主記憶アクセスを抑止して前記読み出しデータ保持手
    段からデータをコピーするようにし、前記第1のアドレ
    ス保持手段が保持しているアドレスの中で、前記第2の
    アドレス保持手段が保持しているアドレスと一致するも
    のがなく、かつ、前記第1のアドレス保持手段が保持し
    ているアドレスの中でアドレスが一致するものであれ
    ば、一致するアドレスに対する主記憶アクセス回数を減
    らし、アクセスの実行されたアクセス要求元のベクトル
    データ保持手段に前記読み出しデータ保持手段からデー
    タを転送すると共に、アクセスの実行されなかつたアク
    セス要求元のベクトルデータ保持手段にも前記読み出し
    データ保持手段からデータをコピーするようにした特許
    請求の範囲第2項又は第4項記載のベクトルデータ処理
    装置。
  9. 【請求項9】複数個の異なるベクトル・ストア命令を実
    行する場合に、前記第1のアドレス保持手段に、複数個
    のデータ転送手段から転送されるアドレスを保持させ、
    前記第1のアドレス保持手段が保持しているアドレスの
    中で、前記第2のアドレス保持手段が保持しているアド
    レスと一致するものがなくなるまで、前記第2のアドレ
    ス保持手段が保持しているアドレスに対する主記憶アク
    セスを抑止するようにした特許請求の範囲第3項又は第
    5項記載のベクトルデータ処理装置。
  10. 【請求項10】1つのベクトル・ロード又はストア命令
    に対し、複数の要素が同時に並列的に転送されるように
    構成された特許請求の範囲第1項ないし第9項のいずれ
    か1つに記載のベクトルデータ処理装置。
  11. 【請求項11】ベクトル・データ保持手段と複数のバン
    クからなる主記憶装置との間で、アクセス要求に従つて
    ロード又はストアのためのデータ転送を行なうベクトル
    データデータ処理装置において、前記ベクトルデータの
    要素の前記主記憶装置上のアドレスであつて前記データ
    転送を行なうデータ転送手段より転送される複数のアド
    レスをその都度保持する第1のアドレス保持手段と、前
    記第1のアドレス保持手段に保持されたアドレスの1部
    を選択する選択手段と、前記選択手段が選択したアドレ
    スを保持する第2のアドレス保持手段と、前記第1及び
    第2のアドレス保持手段にそれぞれ保持された後発及び
    先発のアドレスを比較して相互の一致性を検出する検出
    手段と、前記一致性が検出されたときそのアドレスに対
    するアクセス要求を1つに制限して実行するアクセス抑
    止手段と、前記バンクから読み出されたデータを保持す
    る読み出しデータ保持手段と、前記バンクへ書き込まれ
    るデータを保持する書き込みデータ保持手段とを備え、
    前記第1及び第2のアドレス保持手段、選択手段、検出
    手段、読み出しデータ保持手段、並びに、書き込みデー
    タ保持手段は、前記各バンクに対応するように、かつ、
    前記第2のアドレス保持手段、読み出しデータ保持手
    段、及び、書き込みデータ保持手段は、前記各バンクに
    複数個ずつ対応するように設けていることを特徴とする
    ベクトルデータ処理装置。
JP33024487A 1987-12-28 1987-12-28 ベクトルデータ処理装置 Expired - Fee Related JP2598441B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP33024487A JP2598441B2 (ja) 1987-12-28 1987-12-28 ベクトルデータ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP33024487A JP2598441B2 (ja) 1987-12-28 1987-12-28 ベクトルデータ処理装置

Publications (2)

Publication Number Publication Date
JPH01173165A JPH01173165A (ja) 1989-07-07
JP2598441B2 true JP2598441B2 (ja) 1997-04-09

Family

ID=18230471

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33024487A Expired - Fee Related JP2598441B2 (ja) 1987-12-28 1987-12-28 ベクトルデータ処理装置

Country Status (1)

Country Link
JP (1) JP2598441B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07141327A (ja) * 1993-04-13 1995-06-02 Nec Corp ベクトル処理装置
JP3659252B2 (ja) 2003-03-28 2005-06-15 セイコーエプソン株式会社 ベクトルデータのアドレス参照方法およびベクトルプロセッサ
JP5668554B2 (ja) * 2011-03-18 2015-02-12 日本電気株式会社 メモリアクセス制御装置、プロセッサ及びメモリアクセス制御方法

Also Published As

Publication number Publication date
JPH01173165A (ja) 1989-07-07

Similar Documents

Publication Publication Date Title
US5434970A (en) System for distributed multiprocessor communication
US4661900A (en) Flexible chaining in vector processor with selective use of vector registers as operand and result registers
EP1646925B1 (en) Apparatus and method for direct memory access in a hub-based memory system
US4951193A (en) Parallel computer with distributed shared memories and distributed task activating circuits
JP2577865B2 (ja) ベクトル処理装置及びその制御方法
JPH07113903B2 (ja) キャッシュ記憶制御方式
JPS62115571A (ja) ベクトルアクセス制御方式
EP0192366A2 (en) Apparatus and method for improving system bus performance in a data processng system
JP2561261B2 (ja) バッファ記憶アクセス方法
JPH03189843A (ja) データ処理システムおよび方法
JP2598441B2 (ja) ベクトルデータ処理装置
JPH08235143A (ja) クラスタ構成の並列計算機
EP0797803B1 (en) Chunk chaining for a vector processor
EP0251686B1 (en) Method and apparatus for sharing information between a plurality of processing units
JP3808525B2 (ja) ライト及び/もしくはリードアクセス優先順位管理装置
JPH04149653A (ja) 二重化メモリの読出し比較システム
US6839820B1 (en) Method and system for controlling data access between at least two memory arrangements
JPS59214977A (ja) デ−タ処理装置
JP2702274B2 (ja) データ転送制御方式
JP2540844B2 (ja) デ−タ転送制御方法
JPS60142450A (ja) 記憶システム
JPH04175949A (ja) キャッシュ制御方式
JPH05334182A (ja) データ転送システム
JPH0346033A (ja) ジヨブ間データ転送制御方法
JPS60209873A (ja) ベクトル処理装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees