JPS621067A - ベクトル処理装置 - Google Patents

ベクトル処理装置

Info

Publication number
JPS621067A
JPS621067A JP61035163A JP3516386A JPS621067A JP S621067 A JPS621067 A JP S621067A JP 61035163 A JP61035163 A JP 61035163A JP 3516386 A JP3516386 A JP 3516386A JP S621067 A JPS621067 A JP S621067A
Authority
JP
Japan
Prior art keywords
vector
buffer storage
data
vector data
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP61035163A
Other languages
English (en)
Inventor
Teruo Tanaka
輝雄 田中
Koichiro Omoda
面田 耕一郎
Yasuhiro Inagami
稲上 泰弘
Takayuki Nakagawa
貴之 中川
Mamoru Sugie
杉江 衛
Shigeo Nagashima
長島 重夫
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
Publication of JPS621067A publication Critical patent/JPS621067A/ja
Pending 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はベクトル演算を効率よく実行するために主記憶
からプロセッサへデータを効率よく供給するベクトル処
理装置に関する。゛ 〔従来の技術〕 データ処理の分野における計算機の開発が進む中で、ベ
クトルデータの処理能力を高めるためにさまざまなベク
トル計算機システムが開発されている。この種のシステ
ムとしては、米国特許第4.172,287や米国特許
第4,128,880に記されているものがある。
米国特許第4,172,287の計算機システムにおい
ては、演算器の処理能力にみあった主記憶装置から演算
器へのデータ転送能力が必要となる。
しかしこのデータ転送能力には限度があり主記憶装置か
らのデータ転送の負担を軽くするために、米国特許第4
,128,880では(主記憶装置に比べて相対に演算
器の近くに)主記憶装置からロードしたベクトルデータ
やベクトル演算中の中間結果などを保持するベクトルレ
ジスタが設けられている。
ベクトルレジスタはベクトルデータを処理するパイプラ
イン演算器を効率よく動作させるための有効な手法であ
る。特に−回のベクトル処理において、必要なベクトル
データの数が、ベクトルレジスタ数より少ない場合は、
一度、主記憶からベクトルデータをベクトルレジスタに
ロードしたあとは、ベクトルレジスタ間で演算が行える
ので、ベクトルレジスタの効力は非常に大きい。
〔発明が解決しようとする問題点〕
上記従来技術では、−回のベクトル処理において、必要
なベクトルデータの数がベクトルレジスタ数より多い場
合にはベクトル処理の途中で、主記憶とベクトルレジス
タ間のベクトルデータの転送が必要となり、性能劣化の
大きな要因となる。
汎用の大型計算機システムでは、レジスタと主記憶間の
データ転送の負荷を軽減するために、キャッシュメモリ
が設けられている。一般にキャッシュメモリはスカラデ
ータを対象としているため。
参照キーはアドレス値であり、また、保持単位は必要な
データを含む(たとえば64バイトの連続領域の)ブロ
ックである。このためこのようなキャッシュメモリを、
主記憶とベクトルレジスタ間で用いることは、(1)1
つ1つのデータをアドレス値で参照する必要があること
、(2)非連続なベクトルデータを扱う場合、キャッシ
ュメモリ内が無駄なデータばかりになってしまうことな
どからむずかしい。
本発明の目的は主記憶装置へのベクトルデータ要求の負
担を軽減するベクトル処理装置を提供することである。
〔問題点を解決するための手段〕
上記目的を提供するために、本発明に係るベクトル処理
装置では、ベクトルレジスタを処理装置に設ける場合に
は、ベクトルデータを一時的に保持スるベクトルバッフ
ァストレージを、相対的に主記憶装置よりはベクトルレ
ジスタの近くに設け、かつベクトルバッファストレージ
の各格納場所に格納されるベクトルデータの識別情報を
記憶する記憶手段と、主記憶装置からのベクトルデータ
読出しを要求する命令により指定されるベクトルデータ
識別情報が記憶手段に記憶されているかどうかを検索る
検索手段を備え、ベクトルバッファストレージの読出し
書込みを制御するベクトルバッファストレージ制御手段
とを設ける。ベクトルデータ識別情報としては例えばベ
クトルデータの主記憶装置上の先頭アドレスと増分値を
用いることができる。主記憶装置からのベクトルデータ
読出しを要求する命令に応じてベクトルバッファストレ
ージ制御手段は当該ベクトルデータの識別情報が記憶手
段に記憶されているかどうかを検索し、記憶されている
場合にはベクトルデータをベクトルバッファストレージ
から読出してベクトルレジスタに供給し、記憶されてい
ない場合には主記憶装置からの読出しを指定し、主記憶
装置からベクトルデータをベクトルレジスタにロードす
ると同時にそのベクトルデータをベクトルバッファスト
レージに格納する。
〔作用〕
従来、ベクトル処理装置における主記憶装置からのベク
トルデータ読出し、転送の負担を軽減するためにベクト
ルレジスタが用いられているが。
ベクトルバッファストレージを主記憶装置とベクトルレ
ジスタとの間におくことにより更に主記憶装置からのベ
クトルデータ続出し、転送の負担を軽減することができ
る。
又、主記憶装置とレジスタとの間のデータ転送の負担軽
減のためにキャッシュメモリが従来用いられているが、
キャッシュメモリが連続領域のデータを格納しデータの
アクセス及びメモリ領域の利用度の点で問題があったの
に対し、本発明によればベクトルバッファストレージに
格納されているベクトルデータは、例えば主記憶装置上
の先頭番地及び増分値の如き識別情報を用いて読出すこ
とができベクトルデータ単位毎に読出すことが可能であ
り、又非連続なベクトルデータを扱う場合、必要なデー
タのみをベクトルバッファストレージに格納することが
でき、ベクトルバッファストレージの格納場所の有効利
用を図ることが可能である。
ベクトル処理装置にベクトルレジスタを設けない場合に
はベクトルバッファストレージを主記憶装置と演算装置
との間に設けるが、この場合にも主記憶装置からのベク
トルデータ読出し、転送の負担を軽減することができ、
かつベクトルのアクセス等において上記と同様の利益を
得ることができる。
〔実施例〕
以下、本発明の具体的な実施例を図面を用いて説明する
。第1図はベクトル処理装置の一実施例を示している。
第1図中、10は命令バッファ、11はベクトル長を保
持するレジスタVLR512は主記憶上のベクトルデー
タの先頭アドレスを示しているレジスタVBRの集まり
、13は主記憶上のベクトルデータの増分値を保持して
いるレジスタVIRの集まり、14はベクトル命令、1
9は命令デコーダ、20はベクトルバッファストレージ
制御、21はベクトルバッファストレージ、94はフェ
ッチリクエスタ、95はストアリクエスタ、96は主記
憶、97は記憶制御、98はベクトルレジスタ群、99
はパイプライン演算器群をそれぞれ表わしている。ベク
トルバッファストレージ制御20・およびベクトルバッ
ファストレージ21は本発明で新しく設けた機能である
ベクトルバッファストレージ21の例を第6図に示す。
この場合、最大n個のベクトルデータを保持することが
できる。また、1つのベクトルデータは最大n個の要素
から成る。ベクトルバッファストレージ21上のベクト
ルデータをアクセスするためには、ベクトルバッファス
トレージ制御により、Q41あるいは1242を通して
、アドレスと読み出し信号、あるいはアドレスと書き込
み信号が送られてくる。
たとえば、i番目のエントリのベクトル長mのベクトル
データ(21−1ないし21−mのアドレスで各要素が
アドレスされている)を読み出す場合は、Q41から、
読み出し信号と21−1を示すアドレスが送られてくる
。このアドレスは目的のベクトルデータの第1要素のア
ドレスである。
この21−1の要素が読み出されると1次のタイミング
で、Q41から、読み出し信号と21−2を示すアドレ
スが送られてくる。このアドレスはベクトルデータの第
2要素のアドレスである。これをくりかえして、ベクト
ル長がmの場合、最後に第m要素が読み出される。
主記憶96から記憶制御97を介して送られた命令は命
令バッファ10に蓄えられ1命令ずつ命令レジスタ14
に送られる。ベクトル処理ユニットで実行される命令に
は、ベクトルレジスタ98と主記憶96間のベクトルデ
ータの転送命令(ベクトルロード命令、ベクトルストア
命令など)とベクトルレジスタ間のデータのベトクル演
算命令がある。命令レジスタ14中の命令が後者のベク
トル演算命令であることが命令デコーダ19で解読され
てわかると、命令で指定されたベクトルレジスタ群98
中のベクトルレジスタ及びパイプライン演算器群99中
の演算器を動作させ、命令で指定した演算処理を行う。
これらのベクトル演算命令による処理は従来のベクトル
処理装置での処理と同じである0本発明では、ベクトル
ロード命令およびベクトルストア命令の実行時に新しい
処理を行う。
まずベクトルロード命令が実行される場合を述べる。命
令レジスタ14に取りこまれた命令は14−1ないし1
4−4で示されるような形式となっている、OP  1
4−1  は命令コードで、ここでは命令デコーダ19
で解読されたベクトルロード命令であることがわかる。
R114−2はベクトルデータをロードする先のベクト
ルレジスタの番号を示し、1234を通してベクトルレ
ジスタ群98に送られる。R214−3は主記憶上のベ
クトルデータの先頭アドレスを示しているレジスタVB
Rの番号を示しており、この値を用いて目的のレジスタ
VBRを選択する。複数のレジスタVBRのあつまり1
2を図示しである。R314−4主記憶上のベクトルデ
ータの増分値を示しているレジスタVIRの番号を示し
ており、この値を用いて目的のレジスタVIRを選択す
る。
複数のレジスタVIRの集まり13を図示しである。レ
ジスタVLRI 1はベクトルデータの長さくすなわち
ベクトルデータ中の要素数)を保持している。ベクトル
ロード命令が命令デコーダ19で解読される以前にレジ
スタVLRII、レジスタVBRの集まり12およびレ
ジスタVIRの集まり13にはそれぞれ必要な情報が主
記憶96から送られているとする。ベクトルロード命令
が命令デコーダ19で解読されてその時に発生した起動
信号をR33を通して本発明で新しく加えられた機構で
あるベクトルバッファストレージ制御20に起動をかけ
る。また同時に、レジスタVLRIIからR30を通し
て、ベクトル長がベクトルバッファストレージ制御20
とフェッチリクエスタ94とストアリクエスタ95に送
られる。
レジスタVBRの集まり12からはR214−3で選択
された1つのレジスタVBRの内容が1231を通して
ベクトルバッファストレージ制御とフェッチリクエスタ
94とストアリクエスタ95に送られる。これは主記憶
上のベクトルデータの先頭アドレスを示す。またレジス
タVIRの集まり13からはR314−4で選択された
1つのレジスタVIRの内容がR32を通してベクトル
バッファストレージ制御20とフェッチリクエスタ94
とストアリクエスタ95に送られる。
これはベクトルデータの増分値を示す。この先頭アドレ
スと増分値がベクトルバッファストレージ21上に必要
とするベクトルデータが存在するかどうかを調べるため
のキーとなる。本実施例においてベクトルデータを識別
する情報として先頭アドレスと増分値が用いられている
が識別情報はこれらに限らず他のものを用いてもよい。
ベクトルバッファストレージ制御20で、目的のベクト
ルデータがベクトルバッファストレージ21にあること
がわかると、ベクトルバッファストレージ制御20から
041を通して、ベクトルデータのアドレスと読み出し
信号をベクトルバッファストレージ21に送る。また1
39を通してセレクト信号を送り、セレクタ71を通し
て、ベクトルデータがベクトルバッファストレージ21
からベクトルレジスタ群98に転送される。
逆に、ベクトルバッファストレージ制御20で。
目的のベクトルデータがベクトルバッファストレージ2
1にないことがわかると、ベクトルバッファストレージ
制御20からρ43を通して、フェッチリクエスタ94
に起動をかけ、主記憶96から記憶制御97.Q3B、
セレクタ71を通してベクトルレジスタ群98にベクト
ルデータを送る。
この時、ベクトルバッファストレージ制御20からR4
2を通してベクトルデータのアドレスと書込み信号が送
られ、Q3Bを通して、ベクトルデータがベクトルバッ
ファストレージ21にも書き込まれる。
次に、ベクトルバッファストレージ制御20の詳細な動
作を第2図を用いて説明する。
第2図は本発明で新しく加えられた機構であるベクトル
バッファストレージ制御2oの詳細を示したものである
第2図中、60はエンコーダ、61は比較回路、62は
インデックスアレイ、63は有効ビットアレイ、68は
読出し制御、69は書込み制御、64は登録回路、83
,84.70はAND回路、85.86はOR回路、6
7はNOT回路である。
登録回路64は、82のプライオリエンコーダ、81の
L RU (Least Recar+l:ly Us
ed)回路、80−0乃至80−1023のAND回路
、88−0乃至88−1023のNOT回路および89
のセレクタから構成されている。この機構の動作は前に
述べたように必要としているベクトルデータでベクトル
バッファストレージ21上にある場合とない場合で異な
る。これらについて詳細な説明を行なう。
まず共通の動作について説明を行なう。ベクトルロード
命令が解読されてu33からAND回路84、AND回
路70へ信号が送られる。これでAND回路34.AN
D回路70はAND回路66またはNOT回路67から
の起動指示持ちとなる。Q31からベクトルデータの先
頭アドレスが、またQ32からは増分値がそれぞれ比較
回路6Iに送られてインデックスアレイ62の各先頭ア
ドレスと増分値の組と比較される。ここで比較結果がエ
ンコーダ60に送られる。一致するものが見つかった場
合はまずエンコーダ6oからAND回路66に一致信号
が送られる。次に同じくエンコーダ60より別にセレク
タ73およびセレクタ87に一致したインデックスアレ
イの番号が送られる。セレクタ87では有効指示ビット
アレイ63から比較回路61より送られた番号に対応す
る有効ビットを取り出し、この結果をAND回路66に
送る。AND回路66は一致信号と有効ビット信号を受
は取る。そして両方とも成立すればAND回路70から
読出し制御に起動信号を送る。またどちらか一方でも成
立しなければAND回路84.OR回路86を通して登
録回路64を起動する。
ここから登録回路64が起動される場合とAND回路7
0が読出し制御68を起動する場合についてそれぞれ述
べる。
登録回路64が起動された場合について述べる。
登録回路64の構成は第2図に示しである。OR回路8
6からの信号を受けとると有効ビットアレイ63の中の
各有効ビットを取ってきて、そ九ぞれをNOT回路88
−1及びAND回路80−1を通した信号をプライオリ
ティエンコーダ82に送る。プライオリティエンコーダ
では、有効ビットが無効になっているものを1つ探す。
もし無効ビットが見つからなかった場合つまりインデッ
クスアレイがすべて有効ピッ1−である場合は。
LRU回路81などの公知のアルゴリズムを用いて1つ
を選ぶ。この決定された位置をセレクタ73、インデッ
クスアレイ62に知らせる。また有効指示ビットアレイ
63にも知らせ、その位置を有効にする。インデックス
アレイ62では指示された位置に1231およびQ32
から送られていた先頭アドレスを増分値をセントする。
セレクタ73に送られてきたデータはさらにベクトルバ
ッファストレージ21のエントリ番号を書き込み制御6
9に送る。N OT回路67からはまた主記憶からデー
タを取り出すための起動信号をQ43を通してフェッチ
リクエスタ94へ送る。フェッチリクエスタ94へはこ
の他にQ30.Q31およびQ32からそれぞれベタ1
−ル長、先頭アドレスおよび増分値が送られる。AND
@2384からはさらに書込み制@69にOR回路85
を通して起動信号が送られる。書込み制御69にはまた
主記憶からQ36を通してデータの送り出し信号が送ら
れる。これは書込み制御からベクトルバッファス1−レ
ージ21に送られたアドレスをインクリメントするため
に用いられる。主記憶装置からベクトルデータが読み出
されてρ38を通してベクトルバッファストレージ21
に書込まれる。またセレクタ71を通してベクトルレジ
スタに書きこまれる。
次にAND回路70から読み出し制御68に起!I!!
J信号が出された場合について述べる。インデックスア
レイ62で見つけられた位置をセレクタ73を通して読
出し制91I68に送る。読出し制御68には+230
からベクトル長が送られる。またAND回′1fS70
から起動信号が送られる。読出し制御68からベクトル
バッファストレージ21にアドレスと読み出し信号が送
られ、ベクトルデータが読出される。読出し制御68に
はカウンタ回路があり、ベクトルバッファストレージ2
1に読み出し信号と共に送るアドレスを更新し、その結
果、ベクトルバッファストレージ21から、ベクトルデ
ータの要素を1つずつ読出しセレクタ71(第1図に図
示されている)に送り、さらにベクI−ルレジスタ90
に送る。
このセレクタ71はA、 N D回路70からのQ39
を介したセレクタ4714号により11iII御される
また転送元のベクトルレジスタの番号は034から送ら
れる。
最後にベクトルストア命令が実行される場合について述
べる。第1図において、命令レジスタ14から命令デコ
ーダ19に送られた命令がベクトルストア命令としてデ
コードされると、R35を通して、ベクトルバッファス
トレージ制御20に起動をかける。またストアすべき主
記憶装置上の位置を示すレジスタVBRとレジスタVI
Rがそれぞれ選択されQ3IとQ32を通してベクトル
バッフアメ1−レージ制御20に送られる。以下第2図
を用いて説明を行なう。Q31とQ32から送られてき
た先頭アドレスと増分値は比較回路61に送られ、イン
デックスアレイ62と比較を行なう。もし一致したもの
が見つかった場合は、その位置を登録回路64に知らせ
て、書き込み制御69に起動をかけて対応するベクトル
バッファストレージ21に(そのベグ1−ルデータを主
記憶装置にストアすると同時に)書込む。この時ベタ1
−ルバソフアストレージ21上の同じ位置に保持されて
いたベクトルデータが消去されることに注意されたい。
もし一致したものが見つからなかった場合は有効指示ビ
ットアレイ63から、まだベクトルバッファストレージ
21上にベグ1−ルデータが登録されていない場所をさ
がして、その位置に(そのベクトルデータを主記憶装置
にストアすると同時に)書き込む。
この時同時に対応するインデックスアレイ62の中の位
置に先頭アドレスと増分値を登録し、また対応する有効
ピッI・アレイ63の中の位置を有効にする。
ベクトルストア命令に応じてベクl−ルデータを主記憶
装置及びベクトルバッファストレージ21の双方に書込
むことを上に述べたが、ベクトルデータをベクトルバッ
ファストレージのみに一時的に書込み主記憶装置には書
込まないように構成することもできる。
本発明で示したベク(−ルバツファストレージ21を用
いないで、ベクトルレジスタの数をふやすことにより主
記憶装置へのベクトルデータ要求を軽減することが考え
ら九る。しかし、この場合には2つの問題点が考えられ
る。第1の問題点はベクトルレジスタの数をふやした場
合、ベクトルレジスタをふやす前のロードモジュールや
コンパイラを用いたものではベクトルレジスタの数をふ
やしたことによる効果は得られない。ベタ1−ルバツフ
アス1−レージ21を用いればそれらを変更することも
なく、ベク1へルバソファストレージを用いた効果を得
ることができる。第2の問題点はベクトルレジスタの番
号をベクトル命令のオペランドで指定するようなベクト
ルプロセッサでは命令形式を変更しなければならない場
合がある。現状のベクトル処理装置の命令仕様では命令
フィールドで最大16〜64個までのレジスタしか指定
できない。それ以上の数を指定するためには命令形式を
拡張する必要がある。これに対し、ベクトルバッファス
トレージを導入しても命令形式を変更する必要がまった
くない。
次に第2の実施例について記す。第1の実施例ではベク
トルレジスタを持つベクトルプロセッサたとえば米国特
許第4..128.880のような場合に対しての適用
について記した。第2の実施例では、ベクトルレジスタ
を持たないベクトルプロセッサたとえば、日立製作所の
M 200 HTAPのような場合に対しての適用につ
いて記す。
第3図はベクトルレジスタを用いない場合のベクトル処
理装置の一実施例を示している。
第3図中、21はベクトルバノファスj−レージ。
11はベクトル長を保持するレジスタV L R196
は主記憶、97は記憶制御、99はパイプライン演算器
群で、これらは第1図で示したものと同一である。さら
に、101は命令制御、103゜104はフェッチリク
エスタ、105はストア1fクエスタ、102はベクト
ルバッファストレージ制御、106,107はセレクタ
をそれぞれ示している。
主記憶96から記憶制御97を介して送られた命令はρ
】20を通って命令制御101で解読される。解読され
た命令がベクトル命令の場合は、Ω121を通してベク
トルバッファストレージ制御102に起動をかける。ベ
クトルレジスタを持たないベクトル処理装置、たとえば
M 2001−(丁A、 Pでは、ベクトル命令はS 
S (S I=orageヒO3torage)形式で
あり、1つの命令で主記憶上の2つのベクトルデータを
指定し、その2つのベクトルデータ間でベクトル演算を
行うことを指定し、その結果をストアする主記憶96上
の位置を指定する。主記憶96上のベク1へルデータの
位置は108ないし113で指定される。まず読み出さ
れる2つのベクトルデータのアドレスは、VB1108
、Vll  109およびVB2 110゜VT2 1
11で指定される。ここで、VBはベクトルデータの先
頭アドレス、VTはベクトルデータの増分値を示す。ま
たストアされるべきベタ1−ルデータの主記憶上のアド
レスはVB3 112およびVI31]、3で示される
。このVBI。
VIIはベクトルバッファストレージ制御102とフェ
ッチリクエスタ103に送られる。VB2゜VT2はベ
クトルバッファストレージ制御102とフェッチリクエ
スタ104に送られる。VB3゜VT3は、ベクトルバ
ッファストレージ制御103とストアリクエスタ105
に送られる。
ベクトルバッファストレージ制御102はVBI、VI
Iをキーとして用いて目的のベクトルデータがベクトル
バッファストレージ2】内にあるかどうかを調べる。も
し、ベクトルバッファストレージ21内に目的のベクト
ルデータがある場合には、Ω136を通して、ベクトル
データのアドレスと読み出し信号をベタ1−ルバツフア
ストレージ21に送る。またΩ134を通してセレクト
信号を送り、ベクトルバッファストレージ21からセレ
クタ106を通してベクトルデータをパイプライン演算
器99に送る。逆に、もしベクトルデータがベクトルバ
ッファストレージ21にないことがわかると、Ω129
を通してフェッチリクエスタ103を起動し、主記憶9
6からΩ141を通してベクトルデータをパイプライン
演算器群99に送る。同時にこのとき、このベクトルデ
ータはff141からベクトルバッファストレージにも
送り、Ω137から送られたアドレスと書込み光指示信
号に従って登録する。
もう一つのベクトルデータについても、VB2゜VT2
を用いて行う。
2つのベクトルデータを用いてパイプライン演算器でベ
クトル演算された結果は、ff143を通して主記憶9
6に送られる。このときの主記憶上のストアアドレスは
、VB3112とVIR113をff127.Ω128
を用いて取出し、ストアリクエスタ105を用いて調べ
る。この結果ベクトルデータはΩ143を通ってベクト
ルバッファストレージ21にも格納される。このときの
格納場所は、Q 】27 、Ω128で送られてきたV
B3.VT3をKeyとして用いてベクトルバッファス
トレージ制御102で調べられて、Ω140を通して書
き込み指示およびアドレスがベクトルバッファストレー
ジ21に送られる。
第4図にベクトルバッファストレージ制御102の詳ぼ
を示す。このベクトルバッファストレージ制御102は
第2図のベクトルレジスタを用いた場合のベクトルバッ
ファストレージ制御と同じ機能を持っている。ただし、
信号線Q121〜l1140およびセレクタ201〜2
05が第4図で新しく設けられているので、これらにつ
いて説明する。
第2の実施例ではベクトルバッファストレージ制御10
2において、同時に3つのベタ1−ルデータについて調
べなければならない。しかし、本実施例では1つの比較
回路しかもたないので、3つの処理をシリアルに行う必
要がある。そのためにセレクタ201〜205を設ける
l1121を通して、ベクトルバッファストレージ制御
102に起動かかると、 まず、VBI、VIIで指定されるベクトルデータにつ
いて調べるために、セレクタ201はI2210を、セ
レクタ202はΩ123を、セレクタ203はΩ124
を、セレクタ204はΩ212を、セレクタ205はΩ
214を選択し、VBl、、Vllで指定されるベクト
ルデータがベクトルバッフアメ1〜レージ21中にある
かどうかを調べる6 もし、ベクトルバッファストレージ21上にある場合は
、AND回路1313.AND回路70およびセレクタ
205をへて、読出し制御151に起動をかける。読み
出し制御151には、またエンコーダ60から、ベクト
ルバッファストレージ上のベクトルデータの位置が送ら
れてくる。これらの情報をもとに、読出し制御151は
Ω136を通して、ベタ1−ルデータのアドレスと読み
出し信号をベクトルバッフアメ1−レージ2Iに送る。
もし、ベクトルバッファストレージ21上にない場合に
は、AND回路66、セレクタ204を通して、書き込
み制御1s2tこ起動をかける。書き込み制御152に
は、また、登録回路64から登録すべき位置の情報が送
られてくる。これらの情報をもとに、書き込み制御15
2はΩ157を通して、ベクトルデータのアドレスと書
き込み信号をベクトルバッファストレージ21に送る。
次に、VB2.VI 2で指定されるベクトルデータに
ついて調べるために、セレクタ201はΩ210を、セ
レクタ202はΩ125を、セレクタ203はΩ126
を、セレクタ204はΩ213を、セレクタ205はΩ
245を選択し、VB2.VI2で指定されるベクトル
データがベクトルバッファストレージ21中にあるかど
うかを調べる。
もし、ベクトルバッファストレージ21上にある場合は
、AND回路66、AND回路70およびセレクタ20
5を八て、読み出し制御153に起動をかける。読み出
し制4153には、またエンコーダ60から、ベクトル
バッファストレージ上のベクトルデータの位置が送られ
てくる。これらの情報をもとに、読み出し制御153は
Ω136を通して、ベクトルデータのアドレスと読み出
し信号をベクトルバッファストレージ21に送る。
もし、ベクトルバッファストレージ21上にない場合に
は、AND回路66、セレクタ204を通して、書き込
み制御154に起動をかける。書き込み制御154には
、また登録回路64から登録すべき位置の情報が送られ
てくる。これらの情報をもとに、書き込み制御154は
2137を通して、ベクトルデータのアドレスと書き込
み信号をベクトルバッファストレージ21に送る。
最後に、VB3.VI3で指定さ九るベクトルデータを
主記憶にストアすると同時に、ベクトルバッファストレ
ージに保持するために、VB3゜VI3で指示されるベ
クトルデータがベクトルバッファス1−レージ21中に
すでにあるかどうかを調べるために、セレクタ201は
I2211を、セレクタ2o2はΩ127を、セレクタ
203はΩ125を、選択し、主記憶にストアするベク
トルデータを同時に保持すべき、ベクトルバッファスト
レージ21上の位置を調べる。
このとき、得られた位置は書き込み制御155に送られ
る。また、Ω121からセレクタ201を通って書き込
み制御155に起動をかける。これらの情報をもとに、
書き込み制御155はΩ140を通して、ベクトルデー
タのアドレスと書き込み信号をベクトルバッフアメ1−
レージ21に送る。
ベクトルバッファストレージ中からは、3つのベクトル
データの読み出し、書き込みが同時に並行して行われる
ため、読み出し制御が2個、書き込み制御が3個ある。
以上の動作を1つのベクトル命令で行うことによりベク
トルレジスタがない場合のベクトルバッファストレージ
の機能を実現することができる。
ベクトルバッファストレージ21の構成は第1の実施例
の場合と本質的にかわりはない。第6図のような構成に
なっている。ベクトルバッファストレージ21は一般に
メモリで構成されるがこの場合、1人力、2出力の処理
ないし、3人力の処理が同時に行なわれるので、それら
の動作が無理なく行なえるような多バンク構成にする必
要がある。
最後に第3の実施例について記す。本実施例はベクトル
バッファストレージを並列プロセッサに適用した例であ
る。ベクトル処理を高速に行うために演算パイプライン
方式が用いられている(たとえば第1の実施例)。しか
し、さらに計算機の性能を上げるために、処理するベク
トルデータをいくつかに分割し、並列に処理を行う並列
プロセッサ方式がある。並列プロセッサ方式では、並列
に並べた演算a(この演算器自体がパイプライン演算器
)の台数分だけベクトルデータを分割し、各(パイプラ
イン)演算器を用いて並列処理を行う。しかし、この場
合l?+ffmとなるのは主記憶と各演算器間のデータ
スループッ1〜が並列厚が高くなればなるほどそれに比
例して高くする必要があることである。このデータスル
ープン1−を演算器台数に比例させて増加させることは
困難である。そこで、この並列プロセッサに対して、ベ
クトルバッファストレージを適用する一実施例を第5図
を用いて、説明する。
第5図中、10は命令バッファ、11はベクトル長を保
持するレジスタVLR,12は主記憶上のベクトルデー
タの先頭アドレスを示しているレジスタVBRの集まり
、13は主記憶上のベクトルデータの増分値を保持して
いるレジスタVIRの集まり、14はベクトル命令、1
9は命令デコーダ、20はベクトルバッファストレージ
制御、96は主記憶、97は記憶制御を表わしている。
以上は第1図で用いられたものと基本的構成は変わらな
い。また、200−1,200−2等は並列に実行する
ことができるプロセッサエレメント、298−1および
298−2等はベクトルデータをプロセッサエレメント
の台数分だけ分割した部分ベクトルデータを保持する、
ベクトルレジスタ298を分割した各部分であるベクト
ルレジスタ群である。
具体的には、たとえばベクトルレジスタ中の要素数が2
56、プロセッサエレメントの台数が64台の時には、
各プロセッサエレメントは、要素数8の部分ベクトルを
保持する。つまり、プロセッサエレメント#1は、要素
番号]、65゜工29.・・・、193番のデータを保
持するバク1〜ルレジス5部分を構成し、プロセッサエ
レメント#2は、要素番号2,66.130.・・・、
I94のデータを保持するベクトルレジスタ部分を構成
し、以下同様である。299−1および299−2等に
それぞれパイプライン演算器、221−1および221
−2等はベクトルレジスタ群と対応して分割されたベク
トルデータを保持する、ベクトルバッファ221を分割
した各部分であるベクトルバッファストレージ部分であ
る。
具体的には、先程のベクトルレジスタに対応させると、
第6図に示したベクトルバッファストレージ21のうち
、第1要素の列、第65要素の列。
・・・、第193要素の列が、プロセッサエレメント#
1上に構成され、第2要素の列、第66要素の列、・・
・、第194要素の列が、プロセッサエレメント#2上
に構成され、以下同様である。このようにして、256
台のプロセッサエレメントにベクトルバッファストレー
ジ21は分割保持される。
294はプロセッサエレメントの台数だけ同時にリクエ
ストが出せるフェッチリクエスタ、295はプロセッサ
エレメントの台数だけリクエストが出せるストアリクエ
スタである。
命令バッフ710.VLRI 1.VBRI 2゜VI
RI 3.命令デコーダ19.ベクトルバッファストレ
ージ制御20の動作は第1の実施例で第1図および第2
図を用いて説明した場合と同じなのでここでは省略する
。ここでは、第1の実施例と異なる部分について記す。
まず、ベクトルロード命令が実行され、ベクトルバッフ
ァストレージ部分を221−1ないし221−2中に目
的のベクトルデータがあることがベクトルバッファスト
レージ制御2oを用いてわかった場合、ベクトルバッフ
ァストレージ制御20から読み出し信号およびアドレス
がρ41を通して、各プロセッサエレメント200−1
ないし200−2等内のベクトルバッファストレージ部
分221−1ないし221−2等に送られる。
各プロセッサエレメント200−1ないし20〇−2等
では各ベクトルバッファストレージ部分221−1ない
し221−2等からベクトルデータをセレクタ271−
1ないし271−2等を通して、それぞれベクトルレジ
スタ群298−1ないし298−2等の間のR114−
]で指定されるベクトルレジスタの各部分に送る。
また、ベクトルロード命令が実行され、ベクトルバッフ
ァストレージ部分221−1ないし221−2等中に目
的のベクトルデータがないことがベクトルバッファスト
レージ制御20を用いてわかった場合、ベクトルバッフ
ァストレージ制御20から043を通して、起動信号を
送り、フェッチリクエスタ294を起動する。フェッチ
リクエスタ294はプロセッサエレメント200−1な
いし200−2等の台数分だけ同時に主記憶96に対し
てリクエスト信号を送り、各プロセッサエレメント上の
ベクトルレジスタ群にはそれぞれ主記憶96から同時に
データが送られる。この時同時に、ベクトルバッファス
トレージ制御20からQ42を通して書き込み信号およ
びアドレスがベクトルバッファストレージ部分221−
1ないし221−2等に対して送られ、主記憶96から
送られてきたベクトルデータは分割され、ベクトルレジ
スタに対応して、ベクトルバッファストレー・ジ221
−]ないし221−2に書き込まれる。
ベクトルストア命令が実行された場合は、主記憶96上
のストア先アドレスをストアリクエスタ295でQ45
を通してプロセッサエレメント台数分だけ同時に主記憶
96に対して送り、各プロセッサエレメントにベクトル
レジスタから主記憶96にベクトルデータをストアする
。この時同時に、ベクトルバッファストレージ制御2o
から042を通して、ベクトルデータを保持すべきベク
トルバッファストレージ221−1ないし221−2上
の場所を指示し、ベクトルレジスタから主記憶にストア
するベクトルデータをベクトルバッファストレージ22
1−1ないし221−2にて保持する。ベクトルデータ
を主記憶装置に送らずベクトルバッファストレージにの
み一時記憶するようにしてもよい。
このように、ベクトルレジスター主記憶96のデータ転
送処理の内のいくつかをベクトルレジスタ群298−1
ないし298−2等−ベクトルバッファストレージ22
1−1ないし221−2等と、各プロセッサエレメント
200−1ないし200−2等のそれぞれの内で閉じさ
せることにより、主記憶96に対するデータ要求の一部
を減らすことが可能となる。
このときのベクトルバッファストレージの特長は、ベク
トルデータを保持するベクトルバッファストレージ22
1−1ないし221−2等はベクトルレジスタ群298
−1ないし298−2等に対応させて各プロセッサエレ
メント中に分散配置させるのに対して、この制御系であ
るベクトルバッファストレージ制御では他の制御系と共
に1つですむことである。
〔発明の効果〕
本発明によれば、以上述べたように、主記憶装置へのベ
クトルデータの読出し、書込み要求の負担を軽減するこ
とができる。
従来この効果を得る一つの方法として、ベクトルレジス
タが用いられているが、この場合でもベクトルバッファ
ストレージを、主記憶装置とベクトルレジスタの間にお
くことにより、さらに主記憶装置へのベクトルデータ要
求の負担を軽減することができる。
【図面の簡単な説明】
第1図はベク1へルレジスタを用いたベクトルプロセッ
サの場合のベクトルプロセッサの一実施例の全体構成図
で、特に、命令制御41I構とベクトルバッファストレ
ージ及びその制御機構の間の関係を示す図、第2図は第
1図中のベクトルバッファストレージ制御の詳細を示す
図、第3図は、ベクトルレジスタを用いないベクトルプ
ロセッサの場合のベクトルプロセッサの一実施例の全体
構成図で、第4図は第3図中のベクトルバッファストレ
ージ制御の詳細を示す図、第5図は並列プロセッサ方式
でベクトルプロセッサを実現する場合のベクトルプロセ
ッサの一実施例の全体構成図、第6図はベクトルバッフ
ァストレージの構成を示す図である。 20・・・ベクトルバッファストレージ制御、21・・
・ベクトルバッファストレージ、60・・・エンコーダ
、61・・・比較回路、62・・・インデックスアレイ
、63・・・有効ビットアレイ、64・・・289回路
。 代理人 弁理士 小川勝男と”、パ”)N、 [株]発 明 者  杉  江     衛  国分寺
市東恋ケア央研究所内 @発明者 長島 重夫 国分寺市競何 央研究所内

Claims (1)

  1. 【特許請求の範囲】 1、それぞれベクトルデータを格納する複数のエリアか
    らなるベクトルバッファストレージと、ベクトルデータ
    の読出し要求および書込み要求に応答し、前記ベクトル
    バッファストレージの読出し書込みを制御するベクトル
    バッファストレージ制御手段であって、前記ベクトルバ
    ッファストレージの各格納場所に格納されるベクトルデ
    ータの識別情報を記憶する記憶手段と、ベクトルデータ
    の読出し要求または書込み要求により指示されるベクト
    ルデータの識別情報が前記記憶手段に記憶されているか
    否かを検索する検索手段と、前記ベクトルバッファスト
    レージにおけるベクトルデータを新たに格納するべき位
    置を選ぶ選択手とを備え、主記憶装置からのベクトルデ
    ータの読出しに応じて、読出すべきベクトルデータに対
    する識別情報が、前記記憶手段に記憶されているか否か
    を検索し、記憶されている場合には前記ベクトルバッフ
    ァストレージから読出し、また、主記憶装置へベクトル
    データを書込み要求に応じて、前記選択手段で決定され
    る前記ベクトルバッファストレージ内の位置にベクトル
    データを書込むことを指示する前記ベクトルバッファス
    トレージ制御手段を有するベクトル処理装置。 2、第1項のベクトル処理装置において、前記識別情報
    として、ベクトルデータの主記憶装置上の先頭番地およ
    びベクトルデータ内のとなり合うベクトル要素間のアド
    レスの距離としての増分値を用いるベクトル処理装置。
JP61035163A 1985-02-25 1986-02-21 ベクトル処理装置 Pending JPS621067A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP3435385 1985-02-25
JP60-34353 1985-02-25

Publications (1)

Publication Number Publication Date
JPS621067A true JPS621067A (ja) 1987-01-07

Family

ID=12411784

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61035163A Pending JPS621067A (ja) 1985-02-25 1986-02-21 ベクトル処理装置

Country Status (2)

Country Link
US (1) US4910667A (ja)
JP (1) JPS621067A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6507894B1 (en) 1998-12-10 2003-01-14 Nec Corporation Information processing apparatus and process

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3585972D1 (de) * 1984-07-02 1992-06-11 Nec Corp Rechner-vektorregisterverarbeitung.
US5367654A (en) * 1988-04-13 1994-11-22 Hitachi Ltd. Method and apparatus for controlling storage in computer system utilizing forecasted access requests and priority decision circuitry
JPH0792779B2 (ja) * 1988-10-08 1995-10-09 日本電気株式会社 データ転送制御装置
DE69031865T2 (de) * 1990-02-28 1998-08-06 Texas Instruments Inc Ein SIMD-Prozessor als digitales Filter
JP2899986B2 (ja) * 1990-08-08 1999-06-02 株式会社日立製作所 データ格納方法,ベクトルデータバッファ装置およびベクトルデータ処理装置
US5617575A (en) * 1991-03-19 1997-04-01 Hitachi, Ltd. Interprocessor priority control system for multivector processor
US5265233A (en) * 1991-05-17 1993-11-23 Sun Microsystems, Inc. Method and apparatus for providing total and partial store ordering for a memory in multi-processor system
US5881302A (en) * 1994-05-31 1999-03-09 Nec Corporation Vector processing unit with reconfigurable data buffer
US5689653A (en) * 1995-02-06 1997-11-18 Hewlett-Packard Company Vector memory operations
US5961628A (en) * 1997-01-28 1999-10-05 Samsung Electronics Co., Ltd. Load and store unit for a vector processor
US7197625B1 (en) * 1997-10-09 2007-03-27 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
US6112319A (en) * 1998-02-20 2000-08-29 Micron Electronics, Inc. Method and system for verifying the accuracy of stored data
US6813701B1 (en) * 1999-08-17 2004-11-02 Nec Electronics America, Inc. Method and apparatus for transferring vector data between memory and a register file
US6665749B1 (en) * 1999-08-17 2003-12-16 Nec Electronics, Inc. Bus protocol for efficiently transferring vector data
KR20020064357A (ko) 1999-12-22 2002-08-07 시게이트 테크놀로지 엘엘씨 디스크 드라이브내 버퍼 내부 및 외부 데이터 전송 관리용버퍼 관리 시스템
US6862151B2 (en) * 2000-11-15 2005-03-01 Seagate Technologies Llc Method and apparatus for read error recovery
US7299338B2 (en) * 2002-12-04 2007-11-20 Agere Systems Inc. Vector indexed memory unit and method
WO2005046802A2 (en) * 2003-11-12 2005-05-26 Sweeney Holdings Llc Improved topography linked golf aid
US7850400B2 (en) * 2004-11-25 2010-12-14 Freyssinet International (Stup) Stabilized soil structure and facing elements for its construction
US7447873B1 (en) * 2005-11-29 2008-11-04 Nvidia Corporation Multithreaded SIMD parallel processor with loading of groups of threads
US7594095B1 (en) * 2005-11-29 2009-09-22 Nvidia Corporation Multithreaded SIMD parallel processor with launching of groups of threads
US20070216685A1 (en) * 2006-03-15 2007-09-20 Microsoft Corporation Scene write-once vector and triangle rasterization
US8635431B2 (en) 2010-12-08 2014-01-21 International Business Machines Corporation Vector gather buffer for multiple address vector loads
US10275247B2 (en) * 2015-03-28 2019-04-30 Intel Corporation Apparatuses and methods to accelerate vector multiplication of vector elements having matching indices
CN115794671B (zh) * 2023-02-07 2023-04-14 成都申威科技有限责任公司 一种兼容向量数据的访存***及方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5927995A (ja) * 1982-08-10 1984-02-14 ライオン株式会社 高濃度界面活性剤スラリ−

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4128880A (en) * 1976-06-30 1978-12-05 Cray Research, Inc. Computer vector register processing
US4166289A (en) * 1977-09-13 1979-08-28 Westinghouse Electric Corp. Storage controller for a digital signal processing system
JPS5725069A (en) * 1980-07-21 1982-02-09 Hitachi Ltd Vector data processing equipment
KR860001434B1 (ko) * 1980-11-21 1986-09-24 후지쑤 가부시끼가이샤 데이타 처리시 스템
JPS57155666A (en) * 1981-03-20 1982-09-25 Fujitsu Ltd Instruction controlling system of vector processor
JPS59160267A (ja) * 1983-03-02 1984-09-10 Hitachi Ltd ベクトル処理装置
JPS61210477A (ja) * 1984-05-25 1986-09-18 Hitachi Ltd ベクトル型連想メモリシステム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5927995A (ja) * 1982-08-10 1984-02-14 ライオン株式会社 高濃度界面活性剤スラリ−

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6507894B1 (en) 1998-12-10 2003-01-14 Nec Corporation Information processing apparatus and process

Also Published As

Publication number Publication date
US4910667A (en) 1990-03-20

Similar Documents

Publication Publication Date Title
JPS621067A (ja) ベクトル処理装置
US6266755B1 (en) Translation lookaside buffer with virtual address conflict prevention
US7707393B2 (en) Microprocessor with high speed memory integrated in load/store unit to efficiently perform scatter and gather operations
JP2776132B2 (ja) オペランド内の情報のスタティックおよびダイナミック・マスキングを兼ね備えるデータ処理システム
US4370710A (en) Cache memory organization utilizing miss information holding registers to prevent lockup from cache misses
US4679140A (en) Data processor with control of the significant bit lengths of general purpose registers
US5717895A (en) Associative scalar data cache with write-through capabilities for a vector processor
US5019965A (en) Method and apparatus for increasing the data storage rate of a computer system having a predefined data path width
US5347636A (en) Data processor which efficiently accesses main memory and input/output devices
US20070022428A1 (en) Context switching method, device, program, recording medium, and central processing unit
WO1996012227A1 (en) An address queue capable of tracking memory dependencies
US8046568B2 (en) Microprocessor with integrated high speed memory
CN101379481A (zh) 处理元件、混合模式并行处理器***、处理元件方法、混合模式并行处理器方法、处理元件程序、以及混合模式并行处理器程序
US5155828A (en) Computing system with a cache memory and an additional look-aside cache memory
US5226169A (en) System for execution of storage-immediate and storage-storage instructions within cache buffer storage
US5313613A (en) Execution of storage-immediate and storage-storage instructions within cache buffer storage
US5226132A (en) Multiple virtual addressing using/comparing translation pairs of addresses comprising a space address and an origin address (sto) while using space registers as storage devices for a data processing system
US6012135A (en) Computer having multiple address ports, each having logical address translation with base and limit memory management
US6477635B1 (en) Data processing system including load/store unit having a real address tag array and method for correcting effective address aliasing
EP0459233A2 (en) Selectively locking memory locations within a microprocessor's on-chip cache
US5197145A (en) Buffer storage system using parallel buffer storage units and move-out buffer registers
JPH0410102B2 (ja)
US5752271A (en) Method and apparatus for using double precision addressable registers for single precision data
US5687350A (en) Protocol and system for performing line-fill address during copy-back operation
EP0375883A2 (en) Cache storage system