JPH0222418B2 - - Google Patents

Info

Publication number
JPH0222418B2
JPH0222418B2 JP4231481A JP4231481A JPH0222418B2 JP H0222418 B2 JPH0222418 B2 JP H0222418B2 JP 4231481 A JP4231481 A JP 4231481A JP 4231481 A JP4231481 A JP 4231481A JP H0222418 B2 JPH0222418 B2 JP H0222418B2
Authority
JP
Japan
Prior art keywords
vector
instruction
scalar
data
vector instruction
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
JP4231481A
Other languages
English (en)
Other versions
JPS57157373A (en
Inventor
Shigeo Nagashima
Shunichi Torii
Koichiro Omoda
Yasuhiro Inagami
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 JP4231481A priority Critical patent/JPS57157373A/ja
Priority to US06/361,478 priority patent/US4541046A/en
Priority to GB8208643A priority patent/GB2098371B/en
Priority to DE19823210816 priority patent/DE3210816A1/de
Publication of JPS57157373A publication Critical patent/JPS57157373A/ja
Publication of JPH0222418B2 publication Critical patent/JPH0222418B2/ja
Granted 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/8061Details on data memory 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
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set

Landscapes

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

Description

【発明の詳細な説明】 (発明の利用分野) 本発明は、ベクトル演算が高速で実行可能なベ
クトル処理向きデイジタル形電子計算機(以下こ
れをベクトルプロセツサとよぶ)に関する。
(従来技術とその問題点) ベクトルプロセツサは、主記憶装置上に配置さ
れた一連の順序づけられたデータ(これをまとめ
てベクトルデータ又は単にベクトルとよぶ)とも
う一方のベクトル間の演算を高速で実行できるプ
ロセツサである。
第1図は、ベクトルBとCの加算によりベクト
ルAを得る場合を模式的に示す。この例ではベク
トルBとCの対応する要素bijとcijの加算により
ベクトルAの要素aijが求められる。一般にベク
トルプロセツサは、このような本来のベクトルデ
ータ間の演算の他に、ベクトル演算の準備に必要
な処理(たとえばベクトル演算開始アドレスの計
算)や通常のスカラ演算、あるいは入出力処理ま
で実行できるようになつているものが多い。この
ようなベクトルプロセツサとしては、たとえば、
米国CDC社のSTAR―100や、
CRAYRESEARCHINC社のCRAY―1がその代
表的な例である。
ところで、2重ループを有するフオートランプ
ログラムの処理をベクトル演算の形式で行なう場
合は、最内側のDOループのみがベクトル処理さ
れ、その外側のループはソフトウエアでループさ
せて処理するのが通常である。
この結果、従来のベクトルプロセツサではベク
トル処理とスカラ処理とが時系列的に実行され
る。たとえば第2図の処理は、第3図に示すよう
に処理される。第3図において各処理の末尾につ
けたV又はSはそれぞれベクトル処理又はスカラ
処理を表わす。以下、この処理の内容を説明す
る。
ステツプ1:処理すべきベクトルの長さを計算
する(スカラ処理)。今の例では、Jの範囲から
この長さは100となる。
ステツプ2:このベクトル長をSETVL命令に
よりベクトル長レジスタ(VLR)にセツトする
(スカラ処理)。
ステツプ3:ベクトルBの処理開始ベクトルの
アドレス(ここでは要素B(1,1)のアドレス)
を計算する(スカラ処理)。
ステツプ4:このアドレスをSETVAR命令に
よりベクトルアドレスレジスタ(VAR)にセツ
トする(スカラ処理)。
ステツプ5:ベクトルBのベクトル要素間のア
ドレスの増分値(今の例では2つおきに配置され
ているので3)を計算する(スカラ処理)。
ステツプ6:求めた増分値をSETVAIR命令に
より、ベクトルアドレス増分レジスタ(VAIR)
にセツトする(スカラ処理)。
ステツプ7:LOADVR命令により、レジスタ
VAR,VAIR,VLRの内容にもとづいてベクト
ルBを主記憶より読出し、第0番のベクトルレジ
スタ(VRO)にロードする(ベクトル処理)。
ステツプ8〜11:ベクトルCについて、それぞ
れステツプ3〜6の処理と同じ処理を行なう(ス
カラ処理)。
ステツプ12:LOADVR命令により、VAR,
VAIR,VLRの内容に基づき、ベクトルCを主
記憶より読出し、第1番号のベクトルレジスタ
(VR1)にロードする(ベクトル処理)。
ステツプ13:ADDVR命令により、ベクトルレ
ジスタVR0とVR1の中にそれぞれあるベクト
ルBとCの要素の加算を、ベクトルレングスレジ
スタVLRで指定されるベクトル長に等しい要素
数について行ない、結果を第2番目のベクトルレ
ジスタVR2に格納する(ベクトル処理)。
ステツプ14〜17:ベクトルAについて、それぞ
れステツプ3〜6と同様の処理を行なう(スカラ
処理)。
ステツプ18:STOREVR命令により、レジス
タVAR,VAIR,VLRの内容に基づいてベクト
ルレジスタVR2の内容を主記憶に格納する(ベ
クトル処理)。
ステツプ19:更にINCREMENT命令により
(指数Iを1だけ増加させ、COMPARE命令によ
り増加後のIと100とを比較し、BRANCH命令
により、Iが100以下のときにはステツプ3に戻
る(スカラ処理)。
その後、Iが100に達つするまでステツプ3〜
19が繰り返えされる。このとき処理開始ベクトル
アドレスは最初のB(1,1)からB(1,2),
B(3,1)……と繰返すたびに変更される。ベ
クトルC,Aについても同じである。
この例では、スカラ処理は全処理時間約10%を
占める。この割合は処理すべきベクトル要素数に
依存する。通常は処理ベクトル要素数は10程度か
ら1000以上にも及ぶ。更に、実際には、1回のベ
クトル処理でつづけて処理できるベクトル要素数
は1つのベクトルレジスタに保持できるベクトル
要素数(ベクトルレジスタ長)が上限となり、処
理すべきベクトル要素数がベクトルレジスタ長よ
り大きな場合には、ベクトル処理を何回かに分け
て実行しなければならない。たとえば、ベクトル
レジスタ長を64とすれば、100要素のベクトルの
処理は第2図に示した処理が2回繰返かえされ
(第1回目で64ベクトル要素、第2回目は36ベク
トル要素)て、はじめて終了することになる。こ
の場合、スカラ処理の全処理に占める割合(オー
バヘツド)は20%にも達する。一般に、現在の計
算機のハードウエア技術では、スカラ処理あるい
はベクトル処理をそれぞれより高速化することは
必ずしも容易でない。このことが、ベクトル演算
の高速化上の大きな制約になり、従来技術ではベ
クトル演算の高速化が困難である。
(発明の目的) 本発明は、上述した問題を解消するために、ベ
クトルプロセツサ中のスカラ処理とベクトル処理
を並列的に実行させることができ、それによりス
カラ処理のオーバヘツドを実質的に減少させ、も
つてベクトル演算を実質的に高速化できるベクト
ルプロセツサを提供することを目的とする。
(発明の総括的説明) 上記の目的を達成するために、本発明のベクト
ルプロセツサにおいては、目的とする処理を実行
するための命令列をスカラ命令列とベクトル命令
列に分けて主記憶上に置き、スカラ命令列とベク
トル命令列をそれぞれ別個に読出し、デコード
し、実行するスカラ処理ユニツトとベクトル処理
ユニツトとを設け、これらにより、スカラ処理と
ベクトル処理をオーバラツプして実行させる。
(実施例) 以下実施例により本発明を説明する。第4図に
示すように、本発明によるベクトルプロセツサ
は、スカラ処理ユニツトU1、ベクトル処理ユニ
ツトU2、これらに共通に設けられた主記憶装置
(MS)C3、主記憶制御回路(SCU)C1を有
する。主記憶装置C3には、スカラ処理ユニツト
U1が実行するためのスカラ命令列と、ベクトル
処理ユニツトU2が実行するためのベクトル命令
列とが区分して記憶され、それ以外にベクトル
と、スカラデータがストアされていて、これら
は、主記憶制御回路C1によりアクセスされる。
記憶制御ユニツトC1は、スカラ処理ユニツト
U1からのデータ又はスカラ命令の読出し要求に
応答して、そのユニツトU1から与えられるアド
レスにて指定されるデータ又はスカラ命令を主記
憶装置C3から読出し、スカラ処理ユニツトUへ
送出する。また、記憶制御ユニツトC1は、スカ
ラ処理ユニツトU1からのデータの書込み要求に
応答して、そのユニツトU1から与えられるアド
レスにて指定される主記憶装置C3内の位置に、
そのユニツトU1から与えられるデータを格納す
る。同様に、記憶制御ユニツトC1は、ベクトル
処理ユニツトU2からのデータ又はベクトル命令
の読出し要求に応答して、主記憶装置C3をアク
セスし、読出したデータ又はベクトル命令をベク
トル処理ユニツトU2に送出する。記憶制御ユニ
ツトC1は、また、ベクトル処理ユニツトU2か
らのデータ書込み要求に応答して、主記憶装置C
3をアクセスする。
このように、本発明による記憶制御ユニツトU
2は、スカラ処理ユニツトU1とベクトル処理ユ
ニツトU2からのアクセス要求に、別々に応答す
るように構成されている。
スカラ処理ユニツトU1は、スカラ命令レジス
タSIR,R2、汎用レジスタGR,R3、スカラ
演算器C7とこれらを制御する制御部SCを有し、
これらにより主記憶装置C3内のスカラ命令列を
実行する。このスカラ命令列には、一般的なスカ
ラ命令、たとえばIBM社発行のマニユアル
「System/370Principles of Operation」(GC―
22―7000)に記載されている命令が含まれる。ス
カラ処理ユニツトU1は、これらの命令により汎
用レジスタ(GR)R3又は主記憶装置C3内の
スカラデータについてのスカラ演算を行い、その
結果を、GR,R3又は主記憶装置C3に格納す
る。
本発明によるスカラ処理ユニツトU1は、これ
らのスカラ命令以外に、ベクトル処理ユニツトU
2が動作するに必要な情報を汎用レジスタ
(GR)R3から読出し、このユニツトU2に与
えるための複数のスカラ命令およびベクトル処理
ユニツトU2の起動を指示するスカラ命令を実行
する。この結果、ベクトル処理ユニツトU2が行
うベクトル演算に必要なスカラデータ、ベクトル
演算すべきベクトルデータの要素数(ベクトル
長)、ベクトルデータの先頭要素のアドレス、ベ
クトルデータ要素間のアドレス増分値(インクリ
メント値)がそれぞれ、スカラレジスタ(SR)
R8、ベクトル長レジスタ(VLR)R4、ベク
トルアドレスレジスタ(VAR)R6、ベクトル
アドレスインクリメントレジスタ(VAIR)R7
にセツトされ、更に、実行されるべきベクトル命
令列の先頭の命令のアドレスがベクトル命令アド
レスレジスタ(VIAR)R5にセツトされる。ベ
クトル処理ユニツトU2は、スカラ処理ユニツト
U2により起動されると、VAR:R6,
VAIR:R7,SR,R8の内容をそれぞれ、作
業用のVAR(WVAR)R9、作業用のVAIR
(WVAIR)R10、作業用のSR(WSR)R11
に転送し、これらの作業用のレジスタと、VLR,
R4に基づき、VIAR,R5にて指定されるベク
トル命令から始まるベクトル命令列を制御部VC
の制御Fで、記憶制御装置C1を介して、主記憶
装置C3より読出し、ベクトルレジスタ(VR)
R13とWSR,R11を用いて、ベクトル演算
器C6でベクトル演算を実行する。
スカラ処理ユニツトU1は、ベクトル処理ユニ
ツトを起動後、次のベクトル処理のために必要な
データを汎用レジスタから読出すスカラ命令を実
行し、これらのデータをVAR:R6,VAIR:
R7,SR:R8にカセツトする。
このように、ベクトル処理ユニツトU2が起動
され、ベクトル演算を行つている間、これに並列
にスカラ処理ユニツトU1が次のベクトル処理の
ためのスカラ処理を行う。
第5図、第6図はそれぞれ、スカラ処理ユニツ
トU1、ベクトル処理ユニツトU2の詳細を示
す。以下、これらの装置の動作の詳細を第7図の
フローチヤートに基づき説明する。なお、第5図
において、一般のスカラ命令の処理に関する部分
は簡単化のために図示されていない。
スカラ処理ユニツトU1が実行するスカラ命令
の内、本発明に特に関連する6つの命令について
説明する。これらの命令は、命令コードフイール
ドと、第1、第2のレジスタオペランドをそれぞ
れ指定する二つのフイールドR1,R2からな
る。
(1) Start Vector Processer(SVP)命令 これはベクトル処理ユニツトU2を起動し、ベ
クトル長とベクトル命令アドレスをそれぞれ、ベ
クトル長レジスタ(VLR)R4とベクトル命令
アドレスレジスタ(VIAR)R7にセツトする命
令である。この命令のR1フイールドはベクトル
長が格納されている汎用レジスタR3の番号を、
またR2フイールドは起動されるベクトル命令列
の主記憶装置C3のアドレスが格納されている汎
用レジスタR3の番号を指定する。
(2) Set Vector Address Register(SVAR)命
令 これは処理すべきベクトルデータの先頭アドレ
スをベクトル処理ユニツトU2内のベクトルアド
レスレジスタ(VAR)R6にセツトする命令で
ある。この命令のR1フイールドはセツトすべき
アドレスが格納されているVAR,R6の番号を
R2フイールドは、処理すべきベクトルデータの
先頭アドレスが格納されている汎用レジスタR3
の番号を指定する。
(3) Set Vector Address Increment Register
(SVAIR)命令 これは処理すべきベクトル要素のアドレスの増
分値をベクトル処理ユニツトU2のベクトルアド
レス増分レジスタ(VAIR)R7にセツトする命
令である。この命令のR1フイールドはアドレス
増分値をセツトすべきVAIRの番号を、R2フイ
ールドはセツトすべきベクトルアドレスの増分値
が格納されている汎用レジスタR3の番号を指定
する。
(4) Set Scalar Register(SSR)命令 これはベクトル処理に用いるスカラデータをス
カラレジスタ(SR)R8にセツトする命令であ
る。命令のR1フイールドは、このスカラデータ
をセツトすべきSR,R8の番号を、R2フイー
ルドはセツトすべきスカラ・データが格納されて
いる汎用レジスタR3の番号を指定する。
(5) Read Scalar Register(RSR)命令 これは先行するベクトル処理の結果スカラ・デ
ータが得られた場合(たとえば内積、総和演算命
令などにより)において、結果のスカラデータを
スカラ処理ユニツトU1が読出して汎用レジスタ
R3にセツトする命令である。命令のR1フイー
ルドはスカラデータを読出すべきSRの番号を、
R2フイールドはスカラデータを格納すべき汎用
レジスタR3の番号を指定する。
(6) Test Vector Processor(TVP)命令 これはベクトル処理ユニツトU2の状態をテス
トし、条件コードに反映する命令である。この命
令のR1,R2フイールドは利用されない。ベク
トル処理ユニツトU2が動作中のときには、条件
コードは1に、動作中でないときには0にセツト
される。条件コードは、IBM社発行のマニユア
ル「System/370Principles of Operation(GC
―22―7000)」に記載されているような条件付き
分岐命令により利用される。
さて、第5図を参照するに、スカラ処理ユニツ
トU1においては、スカラ命令アドレスレジスタ
(以下SIARと略す)R1中にあるスカラ命令ア
ドレスが線50を介して主記憶制御回路C1にお
くられ、回路C1により主記憶装置C3中のスカ
ラ命令がよみ出されて線52を介してスカラ命令
レジスタ(以下SIRと略す)R2にセツトされ
る。この命令の命令コード部R21がデコーダL
2でデコードされてこの命令に対応するフリツプ
フロツプ(以下FFと略す)F1〜F6の一つが
セツトされ、その出力がスカラ命令制御回路C2
に送られ、その命令の実行制御に使用される。同
時にSIAR,R1の内容は定数加算回路L1によ
つて次の命令がポイントするようにプラス1さ
れ、再びSIAR,R1にセツトされる。これら一
連の動作はスカラ命令制御回路C2で制御され、
次々と命令がよみ出されてはSIR,R2にセツト
され、実行されていく。ここでは、本発明にかか
わる前述のb命令のみについて説明し、その他の
命令については詳細な説明を省略する。FF,F
1〜F6はそれぞれSVP命令、SVAR命令、
SVAIR命令、SSR命令、RSP命令、TVP命令に
よりセツトされる。
第7図のベクトル処理(1)をベクトル処理ユニツ
トU2にて開始させるにあたり、スカラ処理ユニ
ツトU1は、ベクトル処理(1)に必要なアドレスと
データを準備するために、ステツプS1〜S5(第7
図)を行なう。
(ステツプS1) まず、SSR命令がSIR,R2にセツトされ、そ
の命令コード指定部R21がデコーダL2で解読
されると、FF,F4がセツトされ、線4を介し
てスカラ命令制御回路C2に知らされ、命令が実
行される。SIR,R2中のR2フイールド指定部
R23は、セレクタL5に入力され、セレクタL
5はGR,R3の内、この命令で指定される。一
つのレジスタから、スカラデータを線6上に読出
す。このスカラデータは、ベクトル処理(1)に必要
なデータである。SIR,R2中のR1フイールド
指定部R22は、セレクタL7に入力される。セ
レクタL7は、線9を介してFF,F5に接続さ
れ、FF,F5がセツトされていないときは、R
1フイールド指定部R22の出力を選択し、FF,
F5がセツトされているときは、R2フイールド
指定部R23の出力を選択し、選択した信号を線
5上に出力するものである。従つて、SSR命令に
対しては、R1フイールド指定部R22の出力
は、セレクタL7により選択される。この結果、
SSR命令により指定されるスカラレジスタ番号が
線5を介して、ベクトル処理ユニツトU2内のデ
コーダL10(第6図)に入力される。デコーダ
L10には線4を介してFF,F4の出力が入力
されているが、SSR命令の場合、FF,F4はセ
ツト状態にあるので、デコーダL10は、この
FF,F4のセツト出力により起動され、線5を
介して入力されたスカラレジスタ番号を解読す
る。SR,R8内の各レジスタに対応して一つの
ORゲートL19と、一つのセレクタL17が設
けられている。デコーダL10は、入力されたス
カラレジスタ番号に対応する一つのレジスタに、
線6上のスカラデータを書込むために、その一つ
のレジスタに対応するORゲートL19の一つと
セレクタL17の一つに“1”信号を送る。その
一つのセレクタL17は、この、デコーダL10
からの“1”信号に応答して、線6上のスカラデ
ータを選択して、対応する一つのスカラレジスタ
SR,R8に出力する。その一つのスカラレジス
タSR,R8は、ORゲートL19の出力に応答し
て、セレクタL17から入力されるデータを記憶
する。このようにして、SR,R8内に、ベクト
ル処理(1)の実行に必要なスカラデータがセツトさ
れる。なお、このSSR命令は、ベクトル処理(1)の
ためにあらかじめ用意する必要のあるスカラデー
タが、SR,R8にセツトされるまで、繰り返し
用いられる。なお、SR,R8に接続されたセレ
クタL17は、後述するように、ベクトル演算器
C6の出力と、線6上のデータを切り換えて、
SR,R8に入力するために設けられている。
(ステツプS2) 次にSVAR命令がSIR,R2にセツトされ、こ
の命令によりFF,F2がセツトされる。FF,F
2の出力は線2を介してスカラ命令制御回路C2
に入力され、この回路C2の制御によりこの命令
が実行される。この命令のR2フイールド指定部
R23は、セレクタL5に送られ、このセレクタ
L5の作用により、GR,R3の内の、このR2
フイールドで指定される一つのレジスタの内容が
線6に出力され、VAR,R6(第6図)に入力
される。線6上のデータは、ベクトル処理(1)に必
要なベクトルデータの記憶アドレスである。ま
た、この命令のR1フイールドはVAR番号を表
わし、セレクタL7により選択され、線5を介し
てデコーダL8(第6図)に入力される。デコー
ダL8は、線2上の、FF,F2のセツトにより
起動され、このR1フイールドで指定される
VAR番号を解読し、VAR,R6の内の対応する
一つのレジスタに線6上のベクトルデータのアド
レスを書込む。こうして、VAR,R6の一つに、
ベクトル処理(1)のためにあらかじめ用意する必要
のあるベクトルデータの記憶アドレスがストアさ
れる。なお、このSVAR命令は、ベクトル処理
(1)のためにあらかじめ用意する必要のあるベクト
ルデータの記憶アドレスがすべて、VAR,R6
にセツトされるまで繰り返し用いられる。
(ステツプS3) 次に、SVAIR命令がSIR,R2にセツトされ、
この命令により、FF,F3がセツトされる。こ
のFF,F3のセツト出力は、線3を介してスカ
ラ命令制御回路C2に入力され、そこで命令実行
の制御に用いられるとともに、デコーダL9(第
6図)を起動するのに用いられる。この命令のR
2フイールドは、セレクタL5の作用により、
GR,R3から、ベクトル処理(1)に必要なベクト
ルデータアドレスの増分値を線6上に読出し、
VAIR,R7(第6図)に入力するのに用いられ
る。一方、この命令のR1フイールドは、セレク
タL7により選択され、線5を介して、デコーダ
L9(第6図)に入力される。デコーダL9は、
線5上の、VAIR番号により指定される、
VAIR,R7の一つに、線6上のデータをセツト
する。この命令も、必要な回数だけ繰り返し用い
られる。
(ステツプS4) VAR:R6,VAIR:R7,SR:R8へのセ
ツトアツプが完了すると、ベクトル処理ユニツト
U2に対し、ベクトル命令の実行の開始を指示す
るためのSVR命令が実行される。SVP命令が
SIR,R2にセツトされると、FF,F1がセツ
トされ、その出力“1”が命令制御ユニツトC2
に入力されるとともに信号線1により、ベクトル
処理ユニツトU2に送られる。このとき、ベクト
ル処理ユニツトU2が動作中であると、動作中で
あることを示す信号“1”が後述するように、信
号線14にあるので、この信号によりアンドゲー
トL23が閉じられ、FF,F1の出力がベクト
ル処理ユニツトU2に伝達されるのが阻止され
る。オアゲートL22から線20を介して入力さ
れるFF,F1のセツト出力に応答して、信号線
14の内容をそのままセツトする。この結果、
SVP命令が出されたときに、ベクトル処理ユニ
ツトU2がすでに動作中のときには、FF,F7
には1がセツトされ、ユニツトU2が非動作中の
ときには、FF,F7には0がセツトされる。さ
らに、SIR,R2内の第1、第2レジスタ指定部
R22,R23の内容は、それぞれGR,R3の
出力を選択するセレクタL4,L5に送られ、こ
れらのセレクタによりGR,R3の内、これらの
指定部の出力により指定されるレジスタから、処
理ベクトル長および、ベクトル命令先頭アドレス
がよみ出され、それぞれ信号線7,6を介してベ
クトル処理ユニツトU2に送出される。第6図の
ベクトル処理ユニツトU2は、そのとき非動作中
であれば、SVP命令が実行されたことを示す信
号が線1を介して入力されるので、この信号に応
答して以下の動作を行なう。まず、ベクトル長レ
ジスタ(VLR)R4は、線1上の信号に応答し
て、信号線7にのせられている処理ベクトルと長
をストアする。次に、セレクタL21は、線1上
の“1”信号に応答して信号線6にのせられてい
るベクトル命令先頭アドレスを選択し、ベクトル
命令アドレスレジスタ(VIAR)R5は、この選
択されたアドレスを、線1上の信号に応答してス
トアする。作業用ベクトルアドレスレジスタ(以
下WVARと略す)R9は、線1上の“1”信号
に応答して、VAR,R6のすべてのレジスタの
内容を複写する。このために、WVARの各々は、
線1とVAR,R6内の一つのレジスタに接続さ
れており、線1上の信号“1”に応答して、対応
する、VAR,R6内の一つのレジスタの内容を
記憶する。作業用ベクトルアドレス増分レジスタ
(WVAIR)R10も、VAIR,R7と線1に同
じように接続されており、VAIR,R7中の対応
する一つのレジスタの内容をWVAIR,R10の
各々が線1上の信号“1”に応答して複写する。
また、上記と同様、SR,R8の内容を作業用ス
カラレジスタ(WSR)R11に複写する。
WSR,R11にも、SR,R8と同様、ベクトル
処理ユニツトU2内のベクトル演算器C6からの
出力線10の内容を入力しなければならないの
で、SR,R8の各レジスタからの出力線と、ベ
クトル演算器C6からの出力線10とを選択する
セレクタL18が、WSR,R11の各レジスタ
の入力端子に接続されている。このセレクタL1
8は、信号線1上の信号が“1”のときに、SR,
R8の出力を選択する。WSR,R11の各レジ
スタは、それぞれに対応して設けられたオアゲー
トL20の出力に応答して対応するセレクタL1
8の出力をストアする。このオアゲートL20の
各々には、信号線1が接続されている。従つて、
信号線1上に“1”信号が出力されたときに、
WSR,R11の各々は、SR,R8の対応する一
つのレジスタの内容をストアする。なお
WVAR:R9,WVAIR:R10,WSR:R1
1はそれぞれVAR:R6,VAIR:R7,SR:
R8と同数のレジスタからなることは言うまでも
ない。最後に信号線1はFF,F10にも入力さ
れ、これをセツトし、そのセツト出力がベクトル
命令制御回路C4に入力され、ベクトル処理の実
行開始を指示する。
以上からわかるように、スカラ処理ユニツトU
1によりSVP命令が実行されると、ベクトル長
がVLR,R4にセツトされ、ベクトル命令先頭
アドレスがVIAR,R5にセツトされるととも
に、VAR:R6,VAIR:R7,SR:R8のす
べての内容がそれぞれWVAR:R9,
WVAIR:R10,WSR:R11に複写され、
その後、ベクトル命令処理(1)が開始可能となる。
なお、SVP命令が解読された時、ベクトル処
理ユニツトがすでに動作中であれば、FF,F7
に1がセツトされるのみで、他の処理、実質的に
行なわれない。
(ステツプS5) スカラ処理ユニツトU1は、SVP命令により
ベクトル処理ユニツトU2が起動されたか否かを
調べるために、条件付分岐命令(Branch on
Condition命令)を発行する。この命令がデコー
ダL2により解読されると、スカラ命令制御回路
C2は、この命令実行のために、条件コードを示
すFF,F7の出力を線18により検出する。先
に、ステツプS4で説明したように、FF,F5
の出力が1のときは、SVP命令が解読された時
点ですでに、ベクトル処理ユニツトU2が動作中
であり、従つて、SVP命令による起動が不成功
であつたことを示す。スカラ命令制御回路C2
は、従つて、FF,F5の出力が1のときには、
再び先のSVP命令を実行し、FF,F5の出力が
0のときは、次のスカラ命令ルーチンへ分岐する
ように、SIAR,R1の内容を制御するように構
成されている。なお、スカラ処理ユニツトU1の
内、この分岐は命令の実行のための回路は両単化
のために図示していないが、公知の技術により実
現されている。
(ステツプS6〜S12) この条件付分岐命令の実行により、ベクトル処
理ユニツトU2の起動が成功したことを検出する
と、スカラ処理ユニツトU1は、次のベクトル処
理(2)を実行するために必要な、スカラデータ、ベ
クトルアドレス、ベクトルアドレスの増分値をそ
れぞれ、SR:R8,VAR:R6,VAIR:R7
にセツトする処理(ステツプS7〜S8)を、ステ
ツプS1〜S3と同じように行う。先のSVP命令に
より、それまでSR:R8,VAR:R6,
VAIR:R7にストアされていた内容が、
WSR:R11,WVAR:R9,WVAIR:R1
0にすでに退避されているので、ベクトル処理(1)
が実行されるのに並行して、スカラ処理ユニツト
(1)がこのようなスカラ処理を行いうる。スカラ処
理ユニツトU1は、ステツプS8の終了後、前述
と同じくSVP命令を実行し(ステツプS9)、その
後、条件付分岐命令を実行し(ステツプ10)、ベ
クトル処理が実行中であるため起動不成功と知つ
たときは、再度SVP命令、条件付分岐命令を実
行し(ステツプS11,12)、起動成功と知ると次
のステツプへと進む。
次に、ベクトル処理ユニツトU2の動作を説明
する。
ベクトル処理ユニツトU2は、第3図に示され
たフローチヤートで用いられている命令とその他
の命令が実行可能であるが、以下では、本発明の
理解に必要な命令とその命令によるベクトル処理
ユニツトU2の動作についてのみ説明する。
(ステツプV11) スカラ処理ユニツトU1において、前述したご
とく、SVP命令が実行されると、線1上の信号
“1”が、ベクトル処理ユニツトU2内のFF,F
10をセツトし、このFF,F10の出力がベク
トル命令制御回路C4を起動する。このとき、
FF,F10の出力が線14を介して、スカラ処
理ユニツトU1に送られ、ベクトル処理ユニツト
U2が動作中であることをそれに教える。ベクト
ル命令制御回路C4が起動されると、先に
VIAR,R5内にセツトされた、ベクトル命令ア
ドレスが線80を介して、SCUC1に送られ、こ
のアドレスに基づき、主記憶装置C3内のベクト
ル命令列の先頭の命令が読出され、SCU,C1
と線82を介してVIR,R12にセツトされる。
ベクトル命令制御回路C4は、VIR,R12内の
命令を解読し、その実行を制御する、公知の回路
を有する。VIR,R12にLOADVR命令がセツ
トされると、ベクトル命令制御回路C4は、
VLR,R4内のベクトルデータ長と、この命令
で指定される、VAR番号とを線78を介してベ
クトル参照制御回路C5に送出し、これを起動す
る。回路C5は、セレクタL11を制御すること
により、このVAR番号と同じ番号を有する、
WVAR,R9内の一つのレジスタから、ベクト
ルデータの先頭アドレス(たとえばベクトルデー
タBの先頭の要素B(1)の記憶アドレス)を線15
を介して読み出し、さらに、セレクタL12を制
御することにより、このVAR番号と同じ番号を
有する、WVAIR,R10内の一つのレジスタか
らベクトルデータアドレスの増分値を、線16を
介して読み出し、これらの読出しデータに基づ
き、ベクトルデータBの要素を指定されたベクト
ルデータ長だけ読み出すための記憶アドレスを線
84を介してSCU,C1に順次入力する。この
結果、線88上に、ベクトルデータBの要素が順
次読出される。一方、ベクトル命令制御回路C4
は、LOADVR命令により指定される。ベクトル
レジスタ(VR)R13の一つに、読出されたベ
クトルデータBをセツトする制御を線90を介し
て行なう。このLOAD VR命令は、ベクトル処
理(1)に必要なベクトルデータがVR,R13にス
トアされるまで繰り返えされる。こうして、
VR,R13にはベクトルデータたとえばAとB
がストアされる。
ベクトル命令制御回路C4は、+1加算回路C
9からセレクタL21を介して入力される次の命
令アドレスをVIAR,R5にセツトする制御を繰
り返す。この結果、VIAR,R5の新しいアドレ
スが線80を介してSCU,C1に順次送られ、
主記憶装置C3からベクトル命令が順次読出さ
れ、VIR,R12にセツトされる。こうして、ベ
クトル命令列が実行される。ベクトル演算命令、
たとえば、ADDVR命令がVIR,R12にセツト
されると、ベクトル命令制御回路C4は、公知の
技術によりセレクタL16,L27,L28を制
御して、この命令で指定される二つのベクトル、
たとえばA,Bをベクトルレジスタ(VR),R
13から一要素づつ連続して読出し、ベクトル演
算器C6へ送る。
(ステツプV12) ベクトル演算器C6は、入力されたベクトルデ
ータの各要素について、公知のパイプラインモー
ドで演算を行う。
(ステツプV13) ベクトル命令制御回路C4は、ベクトル演算の
結果が出力され次第、その演算結果を、公知の技
術によりこの命令で指定されるVR,R13の一
つにストアする。
ベクトルデータのある要素iについての演算
と、その前の要素(i−1)についての演算結果
の格納は、並列に行なわれる。
また、STORE VR命令が実行されると、
LOAD VR命令の場合と同じく、ベクトル参照
制御回路C5により、WVAIR,R9と
WVAIR,R10とから、主記憶装置C3上の、
ベクトルを格納すべきアドレスが各要素に対して
順次発生され、線84,SCU,C1を介して主
記憶装置C3に送られる。また格納すべきベクト
ルが、VR,R13から一要素づつ順次読出さ
れ、セレクタL16と線86とSCU,C2を介
して主記憶装置C3に送られ、ベクトル参照制御
回路C5から出力されるアドレスに基づいてスト
アされる。
(ステツプV14) ベクトル命令制御回路C4は、ベクトル命令列
の最後のベクトル命令の実行を完了したことを検
出する公知の回路(図示せず)を有し、さらに、
この検出回路の出力により、FF,F10を線9
2を介してリセツトする回路(図示せず)を有す
る。したがつて、ベクトル命令列の実行が完了し
た時点で、FF,F10はリセツトされ、その出
力が線14を介して、スカラ処理ユニツトU1に
送出される。こうして、ベクトル処理(1)が終了
し、ベクトル処理ユニツトU2は非動作中とな
る。
この状態で、SVP命令がスカラ処理ユニツト
U1で実行される(ステツプS11)と、ベクトル
処理ユニツトU2のVAR:R6,VAIR:R7,
SR:R8に、次のベクトル処理(2)を実行するた
めのデータがセツトされる。
(ステツプV21,22) 新たに起動されたベクトル処理(2)が、WSR,
R11内のスカラデータと、VR,R13内のベ
クトルデータを用いたベクトル演算を必要とする
ときには、ベクトル命令制御回路C4は、セレク
タL13とL27を制御して、解読した命令で指
定されるWSR,R11の一つから、スカラデー
タを読出し、ベクトル演算器C6へ送るととも
に、セレクタL16,L28を制御して、ベクト
ルデータを解読した命令で指定されるVR,R1
3の一つから読出し、ベクトル演算器C6へ送
る。こうして、スカラデータとベクトルデータと
の演算が行なわれる。このベクトル処理(2)の中
で、スカラデータのみを用いたスカラ演算を行う
場合は、二つのスカラデータが、セレクタL13
に読出され、セレクタL27,L28を介して演
算器C6に送られる。演算器C6は勿論、スカラ
演算も実行できる。
(ステツプV23,24) ステツプV20,21で実行した命令が、演算結果
としてスカラデータを求める演算命令の場合、た
とえば、ベクトルデータの内積を求める命令の場
合、ベクトル命令制御ユニツトC4は、その命令
で指定されるスカラレジスタ番号を線11を介し
てデコーダL14に送出するとともに、デコーダ
L14を起動する信号を線12に送出する。この
ための回路は簡単化のために図示していない。デ
コーダL14は、WSR,R11の各々に対応し
て設けられたオアゲート20の内、入力されたス
カラレジスタ番号に対応する一つに信号“1”を
送る。各WSR,R11に接続されたセレクタL
18の制御信号は線1より与えられる。すでに述
べたように、ベクトル処理ユニツトU2が動作中
のときは、この線1上の信号は“0”であるの
で、各セレクタL18は、演算器C6の出力線1
0上のデータを選択して、各WSR,R11に入
力する。こうして、命令で指定される。レジスタ
番号を有するWSR,R11の一つに、演算で得
られたスカラデータが格納される。本発明では、
スカラデータは、WSR,R11へのセツトと同
時に、SR,R8にも次のようにしてセツトされ
る。すなわち、デコーダL14の各出力線は、オ
アゲートL19の対応する一つに接続されてい
る。したがつて、SR,R8の内、命令で指定さ
れたスカラレジスタ番号を有するSR,R8の一
つに、信号“1”が入力される。各SR,R8の
入力端に接続されたセレクタL17の各々の制御
信号は、デコーダL10から出力される信号であ
るが、この信号は、ベクトル処理ユニツトU2が
動作中は、“0”である。したがつて、セレクタ
L17は、演算器C6の出力線10上のデータを
選択する。こうして、SR,R8の内、命令で指
定されたスカラレジスタ番号を有するものに、演
算で得られたスカラデータが書き込まれる。
WSR,R11にスカラデータが書込むのは、
このベクトル処理(2)の中で、このスカラデータを
用いた演算が行えるようにするためである。ま
た、SR,R8に同じスカラデータを書込むのは、
このベクトル処理(2)につづく、別のベクトル処理
において、ベクトル処理(2)で得られたスカラデー
タが利用可能にするためである。すでに述べたご
とく、次のベクトル処理が起動されるときは、
SR,R8の内容が、WSR,R11に転写される
ため、SR,R8に書込まれたスカラデータが次
のベクトル処理で利用可能となる。こうして、ス
カラデータの格納が終了すると、ベクトル命令制
御ユニツトC4は、ステツプV14と同じ終了処理
をする。こうしてベクトル処理(2)が終了する。
(ステツプS13〜S18) スカラ処理ユニツトU1が、ベクトル処理(2)を
起動した後、このユニツトU1が、ベクトル処理
(2)の結果として得られるスカラデータを参照した
い場合、まず、スカラ処理ユニツトU1は、ベク
トル処理ユニツトU2が動作中か否かを知るため
に、TVP命令を実行する。
第5図において、SIR,R2にTVP命令がセ
ツトされると、デコーダL2によりデコードされ
て、FF,F6がセツトされる。FF,F6の出力
は線19を介してスカラ命令制御回路C2に送出
されると同時に、オアゲートL22と線20を経
てFF,F7にデータのセツトを指令する。FF,
F7のデータ入力には、ベクトル処理ユニツトU
2より送出されているベクトル処理が動作中か否
かを示す信号線14が入力されており、ベクトル
処理が動作中のときにはFF,F7は1に、非動
作中のときには0がセツトされる。FF,F7は
条件コードの一部をなしており、その出力は線1
8を介してスカラ命令制御回路C2に送られる
(ステツプS12)。
その後、条件付分岐命令がSIR,R2に読出さ
れ、FF,F7の出力が1か0かを検出する(ス
テツプS14)。FF,F7の出力が1のときは、
TVP命令と条件付分岐命令が繰り返される(ス
テツプS13〜S19)。
(ステツプS19) ベクトル処理(2)が終了したため、FF,F7に
0がセツトされると、分岐成功として、RSR命
令が実行される。
第5図において、RSR命令がIR,R2にセツ
トされると、デコードされてFF,F5がセツト
される。FF,F5の出力は、線9を介してスカ
ラ命令制御回路C2に送られるとともに、セレク
タL7の制御端に入力される。セレクタL7は、
信号線9が“1”であるのでIR,R2の第2レ
ジスタ指定部R23の内容を選択して信号線5を
介してベクトル処理ユニツトU2に送る。第6図
のベクトル処理ユニツトU2において、信号線5
はセレクタL15に接続されている。セレクタL
15は、SR,R8の中から命令で指定されたレ
ジスタの出力を選択して信号線8にのせ、それを
スカラ処理ユニツトU1に送る。再び第5図のス
カラ処理ユニツトU1においては、信号線8のデ
ータはセレクタL0を経てGR,R3に入力され
る。セレクタL0は、FF,F5の出力が0か1
かに応じてスカラ処理ユニツトU1内の演算器C
7の信号線13又はSR,R8に接続されたデー
タ線8を選択するように構成されている。今の例
では、線8が選ばれる。GR,R3のいずれのレ
ジスタに書込むかは、IR,R2中の第1レジス
タ指定部R22の内容をデコードするデコーダL
3により指定される。すなわち、信号線9が
“1”になるとデコーダL3が有効となり、この
デコーダL3から汎用レジスタR3中の、命令で
指定された一つのレジスタに書込み信号が送出さ
れ、今の例では、線8上のスカラデータが書き込
まれる。
以上述べたように、本発明を用いることによ
り、ベクトル処理とスカラ処理を並列して行なう
ことができる。しかもセツトアツプに使用される
ベクトルアドレスレジスタやベクトルアドレス増
分レジスタ、スカラレジスタの2重化により、ベ
クトル処理と並行して、次のベクトル処理のため
のセツトアツプを行なうことができ、セツトアツ
プのオーバヘツドを減少させることができる。こ
のため、ベクトル処理が実質的に高速化される。
特に、ベクトルアドレス、ベクトルアドレスの増
分およびスカラデータは、一つのベクトル処理の
ために、それぞれ複数個用意する必要がある場合
が多いため、これらのデータに関するレジスタを
それぞれ2重化することは、ベクトル処理の高速
化に対して有効である。なお、本発明の実施例で
は、ベクトル長レジスタとベクトル命令アドレス
レジスタは2重化していない。これは、これらの
レジスタにセツトすべきデータは、SVP命令一
つで準備できるため、この準備のための時間が少
ないことによる。したがつて、ベクトル処理を高
速化するためには、これらのレジスタも2重化す
ることも有効である。すなわち、新たにこれらの
データのためのレジスタを設け、かつ、新たに命
令を設けて、SVP命令の実行の前にこの新たな
命令により、ベクトル長とベクトル命令アドレス
をスカラ制御ユニツトU1の汎用レジスタから読
出し、ベクトル処理ユニツトU2内の新たに設け
たレジスタにストアする。その後SVP命令を実
行する。この際、SVP命令は勿論、ベクトル長
とベクトル命令アドレスを汎用レジスタから読出
す必要はない。
また、本発明の実施例では、ベクトル処理ユニ
ツトにセツトすべきデータをスカラ処理ユニツト
がそのセツトの前に、主記憶装置より読出し、汎
用レジスタに記憶し、データセツトの命令によ
り、この記憶されたデータを汎用レジスタから読
出し、ベクトル処理ユニツトにセツトしていた。
しかし、これらのセツト命令が、ベクトル処理ユ
ニツトにセツトすべきデータを主記憶装置から読
出すように、これらの命令を改良し、かつ、スカ
ラ処理ユニツトが、主記憶装置から読出されたこ
れらのデータを、これらのセツト命令に応答し
て、汎用レジスタを介さない直接ベクトル処理ユ
ニツトに送るように、スカラ処理ユニツトを改良
すれば、セツトアツプがより高速化される。
また、本発明の実施例で2重化して設けられた
レジスタ以外に、ベクトル処理ユニツトの動作時
間を指定するカウンタを2重化し、スカラ処理ユ
ニツトにおいて、この一方に指定時間をセツト
し、ベクトル処理ユニツトにおいて、動作中に、
他方のカウンタをカウントダウンすることによ
り、ベクトル処理ユニツトの動作時間が、この指
定時間に達つしたときに、ベクトル処理ユニツト
の動作を停止するようにもできる。この場合で
も、スカラ処理ユニツトが、ベクトル処理ユニツ
トの動作中に、次のベクトル処理の時間を指定で
きる。
【図面の簡単な説明】
第1図は、ベクトル処理の概様を示す図、第2
図は、ベクトル処理される演算のFORTRANプ
ログラムを示す図、第3図は、従来のベクトルプ
ロセツサの処理フロー図、第4図は、本発明にお
けるベクトルプロセツサの全体構成図、第5図
は、本発明におけるスカラ処理ユニツトの構成を
示す図、第6図は、本発明におけるベクトル処理
ユニツトの構成を示す図、第7図は、本発明によ
るスカラ処理およびベクトル処理のフロー図であ
る。 SIR:スカラ命令レジスタ、GR:汎用レジス
タ、VIAR:ベクトル命令アドレスレジスタ、
VLR:ベクトルレングスレジスタ、VAR:ベク
トルアドレスレジスタ、WVAR:作業用ベクト
ルアドレスレジスタ、VAIR:ベクトルアドレス
増分レジスタ、WVAIR:作業用ベクトルアドレ
ス増分レジスタ、SR:スカラレジスタ、WSR:
作業用スカラレジスタ、VR:ベクトルレジス
タ。

Claims (1)

  1. 【特許請求の範囲】 1 主記憶装置であつて、ベクトルデータとスカ
    ラデータを記憶するとともに、ベクトル命令列と
    スカラ命令列を区分して記憶するものと、該主記
    憶装置から該スカラ命令列およびスカラデータを
    読出し、該読出されたスカラ命令を解読し、実行
    し、該実行によつて得られるスカラデータを該主
    記憶装置に格納するスカラ命令実行手段と、該主
    記憶装置から、該ベクトル命令列およびベクトル
    データを読出し、該読出されたベクトル命令を解
    読し、実行し、該実行によつて得られたベクトル
    データを該主記憶装置に格納するベクトル命令実
    行手段であつて、該スカラ命令実行手段の動作と
    並行して動作しうるものとを有し、該スカラ命令
    実行手段は、該ベクトル命令実行手段がベクトル
    命令列を実行しているのに並行して、該実行中の
    ベクトル命令列につづく次のベクトル命令列の実
    行に必要なデータを、該スカラ命令に応答して発
    生する手段を有し、該ベクトル命令実行手段は、
    該発生されたデータを用いて、該次のベクトル命
    令列を実行する手段を有するベクトルプロセツ
    サ。 2 該データ発生手段は、該次のベクトル命令列
    の実行に用いられるベクトルデータの先頭の要素
    に関する、該主記憶装置内のアドレスを発生する
    手段を有する第1項のベクトルプロセツサ。 3 該データ発生手段は、該次のベクトル命令列
    の実行に用いられるベクトルデータの、該主記憶
    装置内のアドレスのインクリメント値を発生する
    手段を有する第1項又は第2項のベクトルプロセ
    ツサ。 4 該データ発生手段は、該次のベクトル命令列
    の実行に用いられるスカラデータを発生する手段
    を有する第1項から第3項のいずれか一つのベク
    トルプロセツサ。 5 該データ発生手段は、該次のベクトル命令列
    の先頭の命令のアドレスを発生する手段を有する
    第1項から第4項のいずれか一つのベクトルプロ
    セツサ。 6 該データ発生手段は、該次のベクトル命令列
    で処理されるべきベクトルデータの要素数を発生
    する手段を有する第1項から第5項のいずれか一
    つのベクトルプロセツサ。 7 該ベクトル命令実行手段は、相互に接続され
    た第1、第2の記憶手段を有し、該データ発生手
    段は、該発生したデータを該第1の記憶手段にス
    トアする手段と、該次のベクトル命令列の実行前
    に、該第1の記憶手段にストアされたデータを該
    第2の記憶手段に転送する手段とを有し、該ベク
    トル命令実行手段は、該第2の記憶手段内のデー
    タを用いて、該次のベクトル命令列を実行するも
    のである第1項のベクトルプロセツサ。 8 該第1、第2の記憶手段は、それぞれ該次の
    ベクトル命令列の実行に用いられるベクトルデー
    タの先頭の要素に関する。該主記憶装置内のアド
    レスを記憶する複数のレジスタを有する第7項の
    ベクトルプロセツサ。 9 該第1、第2の記憶手段は、それぞれ、該次
    のベクトル命令列の実行に用いられるベクトルデ
    ータの、該主記憶装置内のアドレスのインクリメ
    ント値を記憶する複数のレジスタを有する第7項
    又は第8項のベクトルプロセツサ。 10 該第1、第2の記憶手段は、それぞれ、該
    次のベクトル命令列の実行に用いられるスカラデ
    ータを記憶する複数のレジスタを有する第7項か
    ら、第9項のいずれか一つのベクトルプロセツ
    サ。 11 該スカラ命令実行手段は、該ベクトル命令
    実行手段に、該次のベクトル命令列の実行開始を
    指示する信号を送出する指示手段を有し、該転送
    手段は、該実行開始指示信号に応答して、該デー
    タ転送を行うものである第7項から第10項のい
    ずれか一つのベクトルプロセツサ。 12 該指示手段は、該ベクトル命令実行手段
    が、動作中でないことを条件として、該実行開始
    指示信号を送出する手段である第11項のベクト
    ルプロセツサ。 13 該ベクトル命令実行手段は、自己が動作中
    か否かを表示する手段を有し、該指示手段は、該
    実行開始指示信号を発生する手段と、誤表示手段
    が、該ベクトル命令実行手段が動作中でないこと
    を表示していることを条件として、該指示信号を
    該ベクトル命令実行手段に送出する手段を有する
    第12項のベクトルプロセツサ。 14 該スカラ命令実行手段は、次のベクトル命
    令列の先頭の命令のアドレスを発生する手段と、
    該実行開始指示信号の送出時に、該ベクトル命令
    実行手段に送出する手段を有する第11項から第
    13項のいずれか一つのベクトルプロセツサ。 15 該スカラ命令実行手段は、該次のベクトル
    命令列により処理されるべきベクトルデータの要
    素数を発生する手段と、該実行開始指示信号の送
    出時に該要素数を該ベクトル命令実行手段に送出
    する手段を有する第11項から第14項のいずれ
    か一つのベクトルプロセツサ。 16 該ベクトル命令実行手段は、該次のベクト
    ル命令列の実行によつて得たスカラデータを、該
    第1、第2の記憶手段内の、互いに対応する該ス
    カラデータ記憶用レジスタに記憶する手段を有す
    る第10項のベクトルプロセツサ。 17 該スカラ命令実行手段は、該スカラ命令の
    一つに応答して、該第1の記憶手段内の該スカラ
    データ記憶用レジスタ内のスカラデータを読出す
    手段を有する第16項のベクトルプロセツサ。 18 該スカラ命令実行手段は、該データの発生
    後でかつ、該ベクトル命令実行手段が動作中が否
    かに無関係に、該発生したデータを該ベクトル命
    令実行手段に送出する手段と、該ベクトル命令実
    行手段が動作中でないことを条件として該ベクト
    ル命令実行手段に、該次のベクトル命令列の実行
    開始を指示する手段とを有し、該ベクトル命令実
    行手段は、該送出手段から送出された該データ
    を、自己が動作中か否かに無関係に記憶する手段
    と、該指示手段からの指示により起動され、該記
    憶されたデータに基づき、該次のベクトル命令列
    の実行を制御するとともに、該ベクトル命令実行
    手段が動作中であることを、該指示手段に通知す
    る制御手段を有する第1項のベクトルプロセツ
    サ。 19 該記憶手段は、第1、第2の記憶手段と、
    該第1、第2の記憶手段に該送出されたデータを
    書込む手段とからなり、該制御手段は、起動さ
    れ、一つのベクトル命令列を実行中は、該第1、
    第2の記憶手段のいずれか一方から、そこに記憶
    されたデータを読出す手段を有し、該書込み手段
    は、該制御手段が動作中に該送出手段から該デー
    タが送出されたときは、該第1、第2の記憶手段
    の内、該制御手段が読出しに用いていない一方の
    記憶手段に該データを書込む手段である第18項
    のベクトルプロセツサ。 20 該制御手段は、該第2の記憶手段からのみ
    データを読出すものであり、該書込み手段は、該
    第1の記憶手段に、該ベクトル命令実行手段が動
    作中か否かに無関係に書込む手段と、該指示手段
    からの指示に応答して、該第1の記憶手段の内容
    を該第2の記憶手段に転送する手段とを有する第
    19項のベクトルプロセツサ。 21 該データ発生手段は、該次のベクトル命令
    列の演算に用いられるスカラオペランドを発生す
    る手段を有し、該第1の記憶手段は、複数の、ス
    カラオペランド記憶用の複数の第1のスカラレジ
    スタを有し、該第2の記憶手段は、該第1のスカ
    ラレジスタの各々に対応して設けられた複数の第
    2のスカラレジスタを有し、該ベクトル命令実行
    手段は、ベクトル命令の実行により、スカラオペ
    ランドを発生する手段と、該発生されたスカラオ
    ペランドを該第1、第2のスカラレジスタの内、
    互いに対応するものに書込む手段を有する第20
    項のベクトルプロセツサ。 22 該スカラ命令実行手段は、該スカラ命令の
    一つに応答して、該第1のスカラレジスタの任意
    の一つを読出す手段を有する第21項のベクトル
    プロセツサ。 23 該読出し手段は、該ベクトル命令実行手段
    が動作中でないことを条件として該スカラレジス
    タを読出すものである第22項のベクトルプロセ
    ツサ。
JP4231481A 1981-03-25 1981-03-25 Vector processor Granted JPS57157373A (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP4231481A JPS57157373A (en) 1981-03-25 1981-03-25 Vector processor
US06/361,478 US4541046A (en) 1981-03-25 1982-03-23 Data processing system including scalar data processor and vector data processor
GB8208643A GB2098371B (en) 1981-03-25 1982-03-24 Data processing system including scalar data processor and vector data processor
DE19823210816 DE3210816A1 (de) 1981-03-25 1982-03-24 Datenverarbeitungssystem mit getrennten einrichtungen zur verarbeitung von skalar- und vektordaten

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4231481A JPS57157373A (en) 1981-03-25 1981-03-25 Vector processor

Publications (2)

Publication Number Publication Date
JPS57157373A JPS57157373A (en) 1982-09-28
JPH0222418B2 true JPH0222418B2 (ja) 1990-05-18

Family

ID=12632551

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4231481A Granted JPS57157373A (en) 1981-03-25 1981-03-25 Vector processor

Country Status (1)

Country Link
JP (1) JPS57157373A (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6079468A (ja) * 1983-10-07 1985-05-07 Nec Corp デ−タ処理装置
JPS60250476A (ja) * 1984-05-25 1985-12-11 Nec Corp 処理装置
US9168429B2 (en) 2013-03-14 2015-10-27 Karsten Manufacturing Corporation Golf club heads with optimized characteristics and related methods
US10434381B2 (en) 2013-03-14 2019-10-08 Karsten Manufacturing Corporation Club head having balanced impact and swing performance characteristics

Also Published As

Publication number Publication date
JPS57157373A (en) 1982-09-28

Similar Documents

Publication Publication Date Title
US4541046A (en) Data processing system including scalar data processor and vector data processor
CA1242281A (en) Vector processing
US4476525A (en) Pipeline-controlled data processing system capable of performing a plurality of instructions simultaneously
US5235686A (en) Computer system having mixed macrocode and microcode
US4574349A (en) Apparatus for addressing a larger number of instruction addressable central processor registers than can be identified by a program instruction
US4740893A (en) Method for reducing the time for switching between programs
US4584640A (en) Method and apparatus for a compare and swap instruction
JP3120152B2 (ja) コンピューターシステム
US4679140A (en) Data processor with control of the significant bit lengths of general purpose registers
US5680338A (en) Method and system for vector processing utilizing selected vector elements
US5386531A (en) Computer system accelerator for multi-word cross-boundary storage access
JPH02190930A (ja) ソフトウエア命令実行装置
JPS5852265B2 (ja) デ−タ処理装置
JPS619760A (ja) ベクトル処理システム
JPH02140831A (ja) データ処理装置
JPH0512750B2 (ja)
US3624616A (en) Dynamic allocation of multidimensional array memory space
EP0163279B1 (en) Vector processor
JPH0222418B2 (ja)
US7100029B2 (en) Performing repeat string operations
EP0509558A2 (en) Information processing system with support means responsive to an overall system control
JP2798492B2 (ja) リストベクトル処理装置
JP2716254B2 (ja) リストベクトル処理装置
JPS58137081A (ja) ベクトルプロセツサ
JP3205092B2 (ja) 情報処理装置