JPS6055864B2 - ベクトルプロセツサ - Google Patents

ベクトルプロセツサ

Info

Publication number
JPS6055864B2
JPS6055864B2 JP55098740A JP9874080A JPS6055864B2 JP S6055864 B2 JPS6055864 B2 JP S6055864B2 JP 55098740 A JP55098740 A JP 55098740A JP 9874080 A JP9874080 A JP 9874080A JP S6055864 B2 JPS6055864 B2 JP S6055864B2
Authority
JP
Japan
Prior art keywords
vector
instruction
register
address
length
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
Application number
JP55098740A
Other languages
English (en)
Other versions
JPS5725068A (en
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 JP55098740A priority Critical patent/JPS6055864B2/ja
Priority to EP81105750A priority patent/EP0044563A1/en
Publication of JPS5725068A publication Critical patent/JPS5725068A/ja
Publication of JPS6055864B2 publication Critical patent/JPS6055864B2/ja
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8076Details on data register access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations

Landscapes

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

Description

【発明の詳細な説明】 本発明はベクトル演算を高速に実行可能なベクトルプロ
セッサに関し、特に、ベクトルレジスタ.に格納可能な
ベクトル要素数以上の要素を有するベクトル演算を効率
よく処理するベクトルプロセッサに関する。
ベクトルプロセッサは、たとえば、米国CDC社のST
AR−106のように、すべてのベクトルを!主記憶装
置上に置いて演算するものと、米国CRAYRESEA
RCH社のCRAY−1のように、すべてのベクトルを
プロセッサ内のベクトルレジスタに主記憶装置から一旦
転送し、ベクトルレジスタ間でベクトル演算を行なうも
のに分けること−ができる。
本発明に関わるベクトルプロセッサは、後者の方式を採
用したものである。ベクトルレジスタを有するベクトル
プロセッサの制御方式の一例は、米国特許4128!0
の゜“COMPUTERVECTORREGISTER
PROCESSING′2(Dec.5.l978)に
記述されている。第1図はこのようなベクトルレジスタ
を有するベクトルプロセッサにおけるベクトル演算のよ
うすを示したものである。第2図は、このベクトル演算
に用いられる命令の例を示す。LVR(LOadVec
tOrRegister)命令は、その命令で指定する
ベクトルアドレスレジスタ20にjストアされているア
ドレスをよみ出し、そのアドレスから始まる一連のデー
タ(ベクトル)を、主記憶装置10から読出し、その命
令で指示するベクトルレジスタ30内の位置に転送する
たとえば、第2図のLVR命令1は、ベクトルアドレス
・レジスタ21により指定される主記憶装置10のアド
レス、たとえばXから始まるベクトルを、ベクトルレジ
スタ31に転送する。LVR命令2も同様に、ベクトル
アドレスレジスタ22により指定される主記憶装置10
のアドレス、たとえばY”から始まるベクトルを、ベク
トルレジスタ32に転送する。一方、VADD(Vec
tOrADD)命令は、その命令で指定される3つのベ
クトルレジスタのうち、2番目と3番目に指定されるベ
クトルレジスタ中の対応するデータ(ベクトル要素)を
それぞれ順次加算し、加算結果を1番目に指定されるベ
クトルレジスタに順次ストアする。
たとえば第2図の■,ADD命令3は、ベクトルレジス
タ31,32内のベクトルの加算を行ない、その結果を
、ベクトルレジスタ33に格納する。STVR(StO
reVectOrRegister)命令は、ベクトル
レジスタ30中のデータを主記憶装置に転送する命令で
ある。
たとえば、第2図のSTVR命令4は、ベクトルレジス
タ33内のベクトルを、アドレスレジスタ23内のアド
レスZで指定される主記憶装置10内の位置に格納する
。結局、主記憶装置10内のアドレスX,Yからそれぞ
れ始まるベクトルを加算して、主記憶装置10上のアド
レスZにその結果をストアするには、第2図に示すよう
な4つの命令1〜4が用いられる。
実際には、これらのベクトル命令列を実行する前に、ア
ドレスX,Y,Zをそれぞれベクトルアドレスレジスタ
21,22,23へセットする命令(第2図5〜7)と
、ベクトル長レジス夕40へ演算すべきベクトル要素数
kをセットするための命令SETVL(第2図8)など
のセットアップ命令列の処理が必要である。なお、SE
TVA命令5〜7のX″,Y″,Z″は、アドレスX,
Y,Zを主記憶装置から読出すための間接アドレスであ
る。
同様に、SETVL命令8内のk″はベクトル要素数k
を主記憶装置から読出すための間接アドレスである。こ
れらのセットアップ命令列は、第2図では4ステップに
すぎないが、演算に必要なベクトル数に応じてステップ
数も増加する。また、プログラムが高級言語で記述され
ていて、ベクトルが多次元になつている場合には、ベク
トルアドレスそのものの計算に数〜十数ステップを要し
、必要とするセットアップ命令は、通常は平均でも20
〜30ステップ、多い場合には100ステップを越える
こともあり得る。ここで、演算したいベクトルの要素数
(以下これをベクトル長とよぶ)をk1ベクトルレジス
タの1つに格納可能なベクトル要素数(以下これをベク
トルレジスタ長とよぶ)を1とする。
ベクトル長kはプログラムにより大巾に異なるが、一般
には10から10000以上に及ぶこともある。一方、
ベクトルレジスタ長1は実現するプロセッサのハードウ
ェア上の制約によつて上限が決められ、たとえば先に述
べたCRAY−1ではl=64である。このため、k≦
Iであれば、1回のベクトル演算で必要な処理を終了す
ることができるが、k〉1の楊合には、何らかの対策が
必要である。従来のベクトルプロセッサにおいては、こ
の対策をすべてソフトウェアで処理していた。
すなわち、第2図に示したベクトル命令列はベクトルレ
ジスタ長のみしか処理できないので、第3図に示すよう
な処理を行なう必要があつた。まず、セットアップ命令
列1を処理する。
すなわち、3つのSETVA命令によつてベクトルアド
レスレジスタ21〜23にベクトルアドレスX,Y,Z
をそれぞれセットする。次に、本来処理すべきkと、一
度に処理可能な1を比較し、処理すべきベクトル長とし
て、小さな方の値vをSETVL命令にてベクトル長レ
ジスタ40にセットする。
次に、ベクトル命令列を実行する。次にセットアップ命
令列2を処理する。すなわち、k〉lのとき、1つのベ
クトル命令列が実行されると1個の要素の処理が終了す
るので、kから1を差引いたものをkとして、ベクトル
長レジスタ40にセットし、かつ、処理すべきベクトル
がのこつているかチェックする。kがOまたは負のとき
には処理すべきベクトルがないので次の処理に進むが、
kが正のときには、処理すべきベクトルが残つているの
でX,Y,Zのベクトルアドレスを、それぞれ、処理ず
みのベクトル要素の次の要素を指定するように、増加さ
せる。ここでは、ベクトル長1と主記憶上のX,Y,Z
のそれぞれのベクトルのベクトル間隔1NCX11NC
Y,.INCZの積の分だけ増加させている。この次に
、この値を再びベクトルアドレスレジスタ21,22,
23にセットすべくSETVA命令の発行されている個
所に分岐する。これかられかるように、当初の処理すべ
きベクトル長kに対し、k−m・1≦1となるまでm回
繰返し処理し、最後に(k−m・1)の要素のベクトル
演算を行なつて、本来必要な処理を終了する。この間、
セットアップ命令列1,2が繰り返し実行されるため、
処理速度が遅くなる。このようすを第4図に示す。
第4図は、従来のベクトルプロセッサにて、k=150
のベクトルを1=64のベクトルレジスタを使用して処
理したときのようすを示している。すなわち、二つのベ
クトル命令列により、l要素の演算が行なわれ、次のベ
クトル命令列により、残りの(k−21)個の要素の演
算が行なわれる。これらの演算のためにセットアップ命
令列1,2が3回用いられている。セットアップ命令実
行時間はベクトル長kがL大きくなると何度も実行され
るので無視できないものとなる。しかも、先に述べたよ
うに、セットアップ命令列は、ベクトル数が増加し、ま
た、多次元ベクトルであると1回当りのセットアップで
もますます多くのステップ数を要することにな・る。一
方、ベクトル命令列の実行そのものは、演算器を複数個
設け、並列に演算をさせ、かつ1つの演算器においても
演算バイブラインと称して多数のデータの演算を高速に
実行する手法等の採用により、きわめて高速に処理され
るようになつてフいるが、セットアップ命令を複数回実
行するため、ベクトル演算の高速化が困難である。本発
明は、上述した従来技術の問題点をなくすため、1つの
ベクトル演算において、セットアップ命令列の実行を1
回のみ行うことにより、ベクトル演算の高速化を可能と
するベクトルプロセッサを提供することを目的とする。
本発明によるベクトルプロセッサは、ベクトルレジスタ
長1をこえる要素数kのベクトル演算を行うときに、l
要素を1組のベクトル命令列で処理後、ベクトル演算の
繰返しの必要性を検出する回路と、この回路出力に応答
して、ベクトル命令列を繰返し実行させる回路を有し、
この結果セットアップ命令を何度も実行することを不要
とする。
この結果、第4図に示した例と同じ、K.lの値のベク
トル処理は、第5図に示すように、1つのセットアップ
命令列につづく、3つの連続したベクトル命令列によつ
て実行しうるようになる。
以下、本発明を実施例によつて詳しく説明する。第6図
は、本発明によるベクトルプロセッサの命令実行部分の
回路構成を示したものである。通常の命令の読出し、実
行においては次のように動作する。命令アドレスレジス
タ(以下1ARと略す)R3から読出すべき命令のアド
レスが主記憶制御ユニットBllに送られ、主記憶制御
ユニットBllは主記憶装置(図示せず)から命令を読
出して命令レジスタ(以下1Rと略す)R5にセットし
命令制御ユニットBlOにてデコードし、その実行を制
御する。一方、1.AR.R3中のアドレスは、加算器
B2にて、命令長レジスタB1で指定される命令長と加
算され、レジスタR4にセットされる。命令の実行が開
始されると、IARlR3を更新する信号11が命令制
御ユニットBlOから出て、オアゲートG2を介して、
IAR,.R3に与えられる。IARlR3は、この更
新信号11に応答して、セレクタS1の出力をセットす
る。通常は、選択信号17が0であるので、セレクタS
1は、レジスタR4の内容を選択する。IARlR3の
内容が線1、oを介して、主記憶制御ユニットBllに
送られ、次の命令が読出され、IR..R5にセットさ
れる。このようにして、次々と命令が読出され、実行さ
れていく。さて、第7図に示すような命令列が実行され
たとする。
この命令列の中で、SETVA命令、SETVL命令は
第2図と同じものである。STARTVP命令は、繰返
すべきベクトル命令列の先頭アドレスを指定する命令で
、ここでは、次のLVR命令の存在するアドレスXXが
指定されている。このアドレスXX以降には、第2図と
同じLVR等の命令列がストアされている。これらの命
令列の最後の命令、END命令は、ベクトル命令列の終
了を示す命令で、この命令が実行され、繰返しベクトル
命令列を実行する必要があると判断されたときには、S
TARTVP命令で指定されたアドレスXXから始まる
ベクトル命令列を繰返し実行する。これらの命令の実行
のようすを次に述べる。
まず、命令SETVA2l,X″が主記憶制御ユニット
Bllから読出され、IR..R5にセットされる。命
令制御ユニットBlOは、その内部に設けられたデコー
ダ(図示せず)により、この命令のオペレーションコー
ド(オペコード)を解読し、1R..R5内の命令力G
ETVA命令であることを解読すると、フリップフロッ
プ(FF)F2をセットする。また、この命令のアドレ
スフィールド内の間接アドレスX″が線19を介して主
記憶制御ユニットBllに送られ、このユニットの制御
の”下で、この間接アドレスx゛でもつて、主記憶装置
がアクセスされ、そこから、アドレスXが線12に読出
される。ベクトルアドレスレジスタ回路(以下■AR回
路)B2l,B22,B23は、すべて同じ回路構造を
有し、ベクトルアドレスレジスタ(以下、■AR)と、
この■駅の値を制御する回路とからなる。
FF..F2のセット出力は、VAR回路B2l〜B2
3のセレクタS3に共通に与えられるとともに、オアゲ
ートG8を介してアンドゲートG9に与えられる。セレ
クタS3は、FF..F2のセット出力に応答して、線
1.に選択する。一方、命令制御ユニットBlOは、I
R内の命令がSETVA命令であるとき、その命令内の
VAR指定フィールド内のデータ6“21゛を解読して
、V,AR回路B2l〜B23の内、対応するものを選
択的に起動するためのレジスタ指定信号1,を送出しっ
づける回路(図示せず)を有する。レジスタ指定信号1
4は、V,AR回路B2l内のアンドゲートG9に入力
されているので、ゲートG9が開かれ、■書回路B2l
内の■AR2lにFF..F2のセット信号が供給され
、VAR2lに、線12上のベクトルアドレス64X゛
がストアされる。一方、他のVAR回路B22,B23
には、レジスタ指定信号1,が入力されないので、その
中のVAR22又は23の内容は更新されない。このよ
うにして、命令SETVA2l,X″により、■AR回
路B2lのV,AR2lにアドレス64X″がストアさ
れる。この命令の実行終了後FF..F2はリセットさ
れる。以下、同じようにして、命令SETVA22,Y
″とSETVA23,Z″により、VAR回路B22,
B23内のVAR22,23に、ベクトルアドレスY,
Zがそれぞれセットされる。
VAR2l〜23の出力は、レジスタ指定信号14によ
り指定されたVARの出力が選択されるように動作する
セレクタS4、線6を介して主記憶制御ユニットBll
に送られる。次に、命令SETVLk″がIR..R5
にセットされると、命令制御ユニットBlOがこの命令
のオペコードをデコーダにより解読し、SEVTL命令
であることを知ると、FF..F3をセットする。
この命令内の間接アドレスk″が線19を介して主記憶
制御ユニットBllに送られ、SETVA命令の場合と
同様にベクトル要素数kが線12上に読出される。セレ
クタS2は、FF,.F3のセット出力に応答して、デ
ータ線12をセレクトする。
さらに、セレクタS2の出力は、ベクトル長レジスタV
LR..R6に入力される。
VLR..R6に、FFlF3のセット出力がオアゲー
トG6を介して入力されているので、■LR..R6は
、セレクタS2の出力をストアする。VLR,.R6の
内容と、ベクトルレジスタ長レジスタB5にあらかじめ
ストアされているベクトルレジスタ長1の差k−1が減
算器B6で求められ、その出力は、レジスタR7にスト
アされるとともに、正検出器B7に入力される。正検出
器B7は、その入力が正のときに、FF,.F5をゼッ
トし、その入力が負又はOのときに、FF..F5をリ
セットする。セレクタS5は、VLR..R6とR5の
内、小さい方の値を有するものをセレクトする。すなわ
ち、セレクタS5は、このFF,.F5の出力がセット
出力かリセット出力かに応じて、VLR,.R6又はベ
クトルレジスタ長レジスタB5をセレクトする。セレク
タS5により選択された値は、線18を介して、命令制
御ユニットBlO、主記憶制御ユニットBllに送られ
、その後のベクトル命令の実行に用いられる。SETV
Lk″命令によりベクトル要素数kがVLR,.R6に
セットされた直後では、k〉1又はk≦lに依存して、
それぞれ、1、kが、線18に出力される。この線18
上のデータは、その後のベクトル処理される要素数をア
クセスするために、主記憶制御ユニットBllに入力さ
れる。また、この線1註のデータは、この数のベクトル
要素の処理を制御するために、命令制御ユニットBlO
に送られる。このSETVLk″命令の実行が終了する
と、FF..F3がリセットされる。一方、FFlF5
は、この後の命令が実行されるたびに、正検出器B7の
そのときの出力に応じてセット又はリセットされる。こ
のように回路を構成することにより、第3図に示した従
来技術のセットアップ命令列1による、kと1の内、小
さい方をvとする処理が不要となる。
次に、命令STARTVPXXがIR,.R5にセット
されると、命令制御ユニットBlOのデコーダがこの命
令を解読し、STARTVP命令であることを知るとF
F.,Flをセットする。
また、この命令のアドレスフィールド内のデータ′6X
X1が線19を介して先頭ベクトル命令レジスタ(以下
S■■R)R1に入力される。
SVIR..Rlは、FF,.Flのセット出力に応答
して、このアドレスデータ“゜XX゛をストアする。次
の命令LVR3l,2lが、IR.R5にセットされ、
命令制御ユニットBlOでデコードされ、実行に移され
ると、■,AR2l中のベクトルアドレスが主記憶制御
ユニットBllに送られ、″ベクトルデータの読出しに
用いられる。
一方、この命令のアドレスフィールド内のデータ662
r′で指定されるVAR2l内のベクトルアドレスXは
加算器B9にて、ベクトル要素読出し間隔を示すレジス
タB8の内容と加算され、レジスタR9にーセットされ
る。レジスタB8の内容は命令で変更できるようにする
ことも可能である。命令制御ユニットBlOがこの命令
のアドレスフィールド内データ512r3に応答して、
VAR2l〜23の更新信号13と、■AR2lを指定
するレジスタ指定信l号1,を出力すると、VAR回路
B2l内のレジスタR9の内容(次に読出すべきベクト
ルアドレスを示す)がセレクタS3を経て■AR2lに
セットされる。セレクタS3は、FF..F2がリセッ
ト状態にあるのでレジスタR9をセレクトする。新たに
V,AR2lにセットされたアドレスによつて、次のベ
クトルの読出しを行なう。これを次々に繰返して、ベク
トル要素を主記憶から読出し、この命令のアドレスフィ
ールド内データ′63r5に対応するベクトルレジスタ
(図示していない)に格納していく。読出すべきベクト
ル要素数はあらかじめ主記憶制御ユニット11に信号線
13を介してセレクタS5より与えられた値に等しい。
したがつて、ベクトル要素数kがベクトルレジスタ長l
より大きいときには、読出されるベクトル要素数はlに
等しく、逆の場合は、kに等しい。次の命令LVR32
,22も、VAR22を同じように用い、この命令内の
アドレスデータ“37゛に対応するベクトルレジスタ(
図示せず)に、アドレスYから始まるベクトル要素をス
トアする。次の命令VADD33,3l,32が実行さ
れると、この命令の第2、第3番目のアドレスデータ6
“31−“4323゛に対応するベクトルレジスタの内
容を加算して、この命令の第1番目のアドレスデータ“
゜33゛に対応するベクトルレジスタ(図示せず)に、
その加算結果をストアする。このときの装置動作は、従
来と同じであるので、詳細に説明しない。次の命令ST
VR33,23が実行されると、この命令の第1のアド
レスデータ゜゜33゛に対応するベクトルレジスタの内
容が、この命令の第2のアドレスデータ゜゜23゛に対
応した主記憶装置内位置、すなわち、この第2のアドレ
スデータ゜゜23゛に対応するVAR23内のアドレス
“゜Y゛から始まる領域にストアされる。
このストア動作のとき一のVAR23の更新は、LVR
命令の場合と同じように、命令制御ユニットBlOによ
り制御される。このようにして、LVR命令、STVR
命令の実行が終了すると、VAR2l〜23は更新を完
了し=ており、その後再び、LVR..STVR命令が
実行されるときに主記憶装置から読出す、またはそれに
書込む領域は、先にこれらの■書回路を用いてアクセス
された領域に隣接する領域である。
この結果、第3図に示した従来技術のセットアップ命一
令列2による、ベクトルアドレスの増分計算処理が必要
でなくなる。ベクトル命令が次々ど処理され、命令列の
最後を示すEND命令が訳、R5にセットされ、命令制
御ユニットBlOにて他命令と同様にデコードされ、実
行に移されると、END命令を示すフリップフロップF
4がセットされる。
このフリップフロップF4の出力と正検出器B7の出力
を憶えるフリップフロップF5の出力はアンド・ゲート
G5に入力される。SETVL命令でVLR,.R6に
セットされたベクトル要素数kがベクトルレジスタ長1
より大きい時には、FF,.F5が、SETVL命令で
セットされているので、END命令デコー)ド時には、
アンドゲートG5の出力信号17が“1゛になる。信号
17が“゜1゛になると、まずセレクタS1の制御が切
替えられ、SVlR..Rlの内容゜゜XX゛がセレク
タS1により選択されて1AR..R3にセットされる
。このセットは、オアゲートG2を介して入力される信
号17により行なわれる。また、セレクタS2を制御す
るFF,.F3は、リセットされたままであるので、セ
レクタS2は、レジスタR7をセレクトする。セレクタ
S2で選択されたレジスタR7中の(ベクトル要素長k
−ベクトルレジスタ長1)の値が、■泳、R6にセット
される。
VTR,.R6のセットは、オアゲートG6を介して入
力される信号17により行なわれる。以上によつてIA
R,,R3中には繰返すべきベクトル命令の先頭アドレ
ス“XX゛が入り、また、■LR..R6には、処理す
べき残りのベクトル要素数k−1が入つていることにな
る。
再びベクトル命令列の実行が可能となる。その後、命令
制御ユニットBlOの制御のもとで、ベクトル命令列L
VR3l,2lからEND命令まで実行される。この実
行終了後に、VLR.R6の値(k−1)が、lより大
きいときには、再び命令LVR3l,2lからEND命
令まで繰り返される。
以下、同様のことが、VLR..R6の値がlより小さ
くなり、FF,,F4がセットされなくなるまで行なわ
れる。
以上の説明では、繰返し実行するベクトル命令列の先頭
命令をSTARTVP命令にて指定する方式について述
べた。
このほかに、第8図に示すように、STARTVP命令
は使用せず、END命令にて、繰返し実行すべきベクト
ル命令列の先頭命令のアドレスXXを示す方式も考えら
れる。この場合、SVIRlRlに、END命令でアド
レスXXをセットするように変更すればよく、それ以外
の点については、第6図の構造をほとんどかえる必要は
ない。以上に説明したごとく、本発明によれば、ベクト
ルレジスタに格納可能なベクトル要素数よりも大きい長
さのベクトルに対する演算においても、ベクトルアドレ
スレジスタやベクトル長レジスタへのベクトルアドレス
、ベクトル長のセットアップを1回ですませることがで
き、何度にもわたつてセットアップを繰返すことによる
無駄な処理を省き、効率よくベクトル演算をすることが
可能となる。
【図面の簡単な説明】
第1図はベクトルレジスタを有する従来のベクトルプロ
セッサを示す図、第2図は第1図で使用するベクトル命
令の例、第3図は従来方式による命令処理フローを示す
図、第4図は従来方式で実行したときの実行時間の内訳
を示す図、第5図は本発明による実行時間の内訳を示す
図、第6図は本発明によるベクトルプロセッサの主要部
の回路構成を示す図、第7,8図はそれぞれ本発明で使
用する命令列の例を示す図である。 R1・・・・・・繰返し実行するベクトル命令列の先頭
アドレスを示す先頭ベクトル命令アドレスレジスタ(S
VIR)、R3・・・・・・命令アドレスレジスタ(1
AR)、R5・・・・・・命令レジスタ(IR)、R6
・・・・・・Lベクトル長レジスタ(VIR)、B6・
・・・・・ベクトル長の減算器、B7・・・・・・減算
器の出力が正であることを検出する正検出器、Fl,F
2,F3・・・・・・それぞれSTARTVP命令、S
ETVL命令、END命令がデコードされたことを示す
フリップフロップ、;R8・・・・・・ベクトルアドレ
スレジスタ。

Claims (1)

  1. 【特許請求の範囲】 1 命令列内の各ベクトル命令により処理されるべきベ
    クトル長を記憶するための第1のレジスタと、該ベクト
    ル命令によるベクトル処理に用いられるベクトルレジス
    タの長さを記憶するための第2のレジスタと、該第1、
    第2のレジスタに結合され、該ベクトル長が該ベクトル
    レジスタ長より大きいか否かを検出する手段と、該第1
    、第2のレジスタに結合され、該ベクトル長と該ベクト
    ルレジスタ長の内、小さい方を選択する手段と、該第1
    、第2のレジスタに結合され、該ベクトル長から該ベク
    トルレジスタ長を減算する手段と、それぞれ主記憶装置
    の複数のベクトル要素を順次アクセスするための、複数
    のベクトルアドレス発生回路であつて、各々が、主記憶
    装置上のベクトル要素のアドレスを記憶するためのベク
    トルアドレスレジスタと該ベクトルレジスタにアクセス
    すべき先頭ベクトル要素アドレスをセットする手段と、
    起動されたときに該ベクトルアドレスレジスタの内容を
    、該主記憶装置上のベクトル要素のアクセスに同期して
    、所定数ずつ更新する手段とを有するものと、複数のベ
    クトル命令を含む命令列の実行を制御する手段であつて
    、該命令列内の該主記憶装置へのアクセスを要求する複
    数のベクトル命令の各々に応答して、該ベクトルアドレ
    ス発生回路の一つを選択的に起動し、該起動されたベク
    トルアドレス発生回路から出力される、ベクトルアドレ
    スを用いて該主記憶装置に対するアクセスを実行する手
    段と、繰り返し実行されるべき命令列の部分の最後の命
    令に応答して、該検出手段が、該ベクトル長が該ベクト
    ルレジスタ長より大きいことを示している条件下で、該
    減算手段の出力を該第1のレジスタにセットし、かつ、
    該命令列部分の先頭の命令を実行するごとく、命令実行
    の順序を制御する手段とからなり、該ベクトルアドレス
    発生回路の各々は、該命令列部分の実行が繰り返された
    ときには、該命令列部分の先の実行時に発生したベトク
    ルアドレスに続くベトトルアドレスを発生するものであ
    るベクトルプロセッサ。 2 該検出手段は、該減算手段の出力に応答して該ベク
    トル長が該ベクトルレジスタ長より大きいか否かを検出
    するものである第1項のベクトルプロセッサ。 3 該選択手段は、該検出手段の出力に応答するもので
    ある第1項又は第2項のベクトルプロセッサ。 4 該ストア手段は、該減算手段の出力をストアする第
    3のレジスタと、該命令列部分に先立つて使用される所
    定のセット命令に応答して出力されるベクトル長の初期
    値と、該第3のレジスタの出力とをセレクトするデータ
    セレクタと、該セット命令に応答して該初期値を選択し
    、該最後の命令に応答して該第3のレジスタを選択する
    ごとく、該データセレクタを制御する手段とを有する第
    1項のベクトルプロセッサ。 5 該順序制御手段は、次に実行すべき命令アドレスを
    記憶する命令アドレスレジスタと、該命令アドレスレジ
    スタで指定された命令を該主記憶装置より読み出し、該
    命令列部分の先頭の命令のアドレスを記憶する手段と、
    所定数ずつ該命令アドレスレジスタの内容を更新させた
    アドレスを発生する手段と、該更新アドレスを記憶する
    手段と、該先頭命令アドレス記憶手段の出力と該更新ア
    ドレス記憶手段の出力を選択するアドレスセレクタと、
    該最後の命令以外の命令に応答して該更新アドレス記憶
    手段の出力をセレクトし、該最後の命令に応答して該検
    出手段が該ベクトル長が該ベクトルレジスタ長より大き
    いことを示しているときに該先頭命令アドレスをセレク
    トするごとく該アドレスセレクタを制御する手段とを有
    する第1項又は第4項のベクトルプロセッサ。
JP55098740A 1980-07-21 1980-07-21 ベクトルプロセツサ Expired JPS6055864B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP55098740A JPS6055864B2 (ja) 1980-07-21 1980-07-21 ベクトルプロセツサ
EP81105750A EP0044563A1 (en) 1980-07-21 1981-07-21 Vector processor with vector registers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP55098740A JPS6055864B2 (ja) 1980-07-21 1980-07-21 ベクトルプロセツサ

Publications (2)

Publication Number Publication Date
JPS5725068A JPS5725068A (en) 1982-02-09
JPS6055864B2 true JPS6055864B2 (ja) 1985-12-06

Family

ID=14227878

Family Applications (1)

Application Number Title Priority Date Filing Date
JP55098740A Expired JPS6055864B2 (ja) 1980-07-21 1980-07-21 ベクトルプロセツサ

Country Status (2)

Country Link
EP (1) EP0044563A1 (ja)
JP (1) JPS6055864B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5975365A (ja) * 1982-10-22 1984-04-28 Hitachi Ltd ベクトル処理装置
JPS59128670A (ja) * 1983-01-12 1984-07-24 Hitachi Ltd ベクトル処理装置
JPS6123275A (ja) * 1984-07-11 1986-01-31 Nec Corp ベクトル処理装置
US4745547A (en) * 1985-06-17 1988-05-17 International Business Machines Corp. Vector processing
US4858115A (en) * 1985-07-31 1989-08-15 Unisys Corporation Loop control mechanism for scientific processor
US11544214B2 (en) * 2015-02-02 2023-01-03 Optimum Semiconductor Technologies, Inc. Monolithic vector processor configured to operate on variable length vectors using a vector length register

Also Published As

Publication number Publication date
JPS5725068A (en) 1982-02-09
EP0044563A1 (en) 1982-01-27

Similar Documents

Publication Publication Date Title
JPS6028015B2 (ja) 情報処理装置
JPH0348536B2 (ja)
JPH0348537B2 (ja)
JPS6055864B2 (ja) ベクトルプロセツサ
KR100188374B1 (ko) 연산처리장치
JPS581246A (ja) 命令処理順序制御方式
JPH0512751B2 (ja)
JP2552738B2 (ja) データ処理装置
JPS60108973A (ja) 配列要素の最小値および最小要素の要素番号を求める方法
JPH0616287B2 (ja) マスク付きベクトル演算処理装置
JPS6242301B2 (ja)
JPH06162067A (ja) ベクトル命令制御装置および制御方法
JPH05143447A (ja) デイジタルプロセツサ及びその制御方法
JPS5896346A (ja) 階層型演算方式
JP2583614B2 (ja) ベクトル演算装置
JPH0222417B2 (ja)
JPH0248733A (ja) 情報処理装置
JPH0234058B2 (ja)
JPH07191845A (ja) 即値データ転送装置
JPH05250156A (ja) Riscプロセッサ
JPH0916399A (ja) 計算機
JPH0348931A (ja) 情報処理装置
JPS6028014B2 (ja) マイクロプロセツサ
JPH08297583A (ja) 割り込み処理装置およびその方法
JPS5875250A (ja) デジタル情報処理装置