JPH0562390B2 - - Google Patents

Info

Publication number
JPH0562390B2
JPH0562390B2 JP58243943A JP24394383A JPH0562390B2 JP H0562390 B2 JPH0562390 B2 JP H0562390B2 JP 58243943 A JP58243943 A JP 58243943A JP 24394383 A JP24394383 A JP 24394383A JP H0562390 B2 JPH0562390 B2 JP H0562390B2
Authority
JP
Japan
Prior art keywords
vector
exception
instruction
register
address
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 - Lifetime
Application number
JP58243943A
Other languages
English (en)
Other versions
JPS60136872A (ja
Inventor
Yaoko Yoshida
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 JP58243943A priority Critical patent/JPS60136872A/ja
Priority to US06/685,112 priority patent/US4777593A/en
Priority to DE8484116394T priority patent/DE3485119D1/de
Priority to EP84116394A priority patent/EP0147858B1/en
Publication of JPS60136872A publication Critical patent/JPS60136872A/ja
Publication of JPH0562390B2 publication Critical patent/JPH0562390B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3865Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Landscapes

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

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は、並列実行可能な複数の機能要素を有
し、かつベクトルレジスタに格納可能なベクトル
要素以上の要素を有するベクトル演算を処理する
ベクトル処理装置に関する。
〔発明の背景〕
複数のベクトルレジスタと、複数のベクトル演
算器と、複数のベクトルデータフエツチ又はスト
ア用メモリリクエスタを備え、これらを並列に動
作させることにより、高速にベクトル演算を処理
することが可能なベクトル処理装置が提案されて
いる。
このようなベクトル処理装置は、1命令で複数
のベクトル要素をを処理するベクトル命令をもつ
ている。ベクトル命令とは、例えば、ベクトルA
(i)とベクトルB(i)の要素ごとの加算を行う、ベク
トル加算命令のようなもののことをいう。例え
ば、このベクトル加算命令の実行において複数の
ベクトル要素でオーバフロー例外が検出されるこ
とがある。このような場合、ソフトウエアに対し
て、命令アドレスが何番地のベクトル加算命令で
オーバフロー例外がおきたかを報告するだけでは
不充分であり、何番目と何番目のベクトル要素で
例外がおきたかをも報告する必要がある。ところ
が、ベクトルプロセサにおいては、複数のベクト
ル命令が並列に実行されている為に、複数の例外
が同時に検出され得る。又、命令アドレス順に命
令の実行が終了するとは限らない為に、若い命令
アドレスのベクトル命令の例外が、後続の命令ア
ドレスのベクトル命令の例外より後に検出され得
る。
これらの例外が、どのベクトル命令によつて検
出されたかを判別し、ベクトル命令毎の割込処理
を行うことは、煩雑であり、性能を低下させる可
能性がある。
〔発明の目的〕
本発明の目的は、ベクトル命令の実行性能を損
うことなくベクトル要素レベルで概念的に最初に
発生した例外を選択できるベクトル処理装置を提
供することにある。
〔発明の概要〕
本発明の典型的な例では、ベクトル命令で処理
する先頭ベクトル要素番号のスタツクと、ベクト
ル命令アドレスのスタツクと、ベクトルレジスタ
内アドレスカウンタとを各演算器対応に設け、演
算器で例外が検出されると、該演算器内からこれ
らの情報を読み出す。そして例外を検出したベク
トル要素番号を生成し、既に保持されている例外
のベクトル要素番号及び命令アドレスと、新たに
報告された例のベクトル要素番号及び命令アドレ
スとを比較し、最終的に保持する例外情報を選択
することにより、ベクトル要素レベルで概念的に
最初に発生した例外を選択することを可能にす
る。
〔発明の実施例〕
以下、本発明の一実施例を、図に従い説明す
る。
第1図は本発明の一実施例を示すベクトル処理
装置全体の概略構成図である。主記憶装置4から
ベクトル命令列の処理開始を指示する命令が記憶
制御装置5を介してスカラ処理装置6に読み出さ
れると、スカラ処理装置6は、ベクトル処理制御
部7に、ベクトル命令開始アドレスと、ベクトル
処理要素数及びParallel Processモードでベクト
ル処理を行うか否かを指示し、ベクトル処理制御
部7を起動する。ベクトル処理制御部7は指示さ
れたベクトル命令開始アドレスからベクトル命令
列を読み出し解読し、解読結果に従い、ベクトル
レジスタ10〜17(VR0〜VR7)あるいは
ベクトルデータフエツチ用メモリリクエスタ20
〜35(F0〜F3)あるいはベクトルデータス
トア用メモリリクエスタ24〜25(S0〜S
1)あるいはパイプライン演算器30〜33(E
0〜E3)に、ベクトル要素命令の実行を指示す
る。ベクトルデータフエツチ用メモリリクエスト
F0〜F3は、ベクトルアドレスレジスタ群2を
用いて主記憶上のベクトルデータアドレスを計算
し、主記憶装置4から記憶制御装置5を介してベ
クトルデータを読み出し、ベクトルレジスタVR
0〜VR7にベクトルデータを転送する。ベクト
ルレジスタVR0〜VR7は、各々、VMAX個の
ベクトル要素を保持することができ、書き込み中
に読み出しが可能であるとする。パイプライン演
算器E0〜E3は、ベクトルレジスタVR0〜
VR7内のベクトルデータに対し演算を施し、結
果をベクトルレジスタに書き込む。ベクトルデー
タストア用メモリリクエスタS0〜S1は、ベク
トルアドレスレジスタ群2を用いて主記憶上のベ
クトルデータアドレスを計算し、ベクトルレジス
タVR0〜VR7内のベクトルデータを記憶制御
装置5を介して主記憶装置4に格納する。以上説
明したベクトルデータフエツチ用メモリリクエス
タF0〜F3、ベクトルデータストア用メモリリ
クエスタS0〜S1及びパイプライン演算器E0
〜E3は、並列に動作が可能である。これらのメ
モリリクエスタ、パイプライン演算器をデータの
正当性が保たれる範囲で並列に動作するよう制御
することによつてベクトル処理の高速化を図るこ
とが一般に行なわれている。
Parallel Processモード指示フリツプフロツプ
9は、ベクトル処理制御部7の起動時に、スカラ
処理装置6からの指示に従いセツトされる。
Parallel Processモード指示フリツプフロツプ9
が‘1'の時は、命令の並列実行度を高める為に、
メモリリクエスタあるいはパイプライン演算器の
2つを対にして、1つのベクトル命令を実行す
る。Parallel Processモード指示フリツプフロツ
プ9が‘0'の時は、1つのメモリリクエスタある
いはパイプライン演算器で1つのベクトル命令を
実行する。このモードを、Parallel Processモー
ドに対し、Single Processモードとよぶことにす
る。
本実施例のように、複数のベクトル命令の処理
が時間的に並行して行なわれる処理装置において
は、例えば、命令解読の過程で生ずる命令例外、
指定例外、メモリリクエスタによるアクセス例
外、演算器による演算例外のような複数の例外が
相前後して生ずることがある。これら複数の例外
に対し、例外が検出された時点でベクトル命令の
処理全体又は一部を中断し、例外情報を抽出し、
再実行させることは煩雑であり性能を低下させる
おそれがあるので、1ベクトル命令ごとの割込処
理は必ずしも得策ではない。そのため、1ベクト
ル命令ごとの割込処理は行わず、一連のベクトル
命令列単位に割込処理を行う方法が考えられる。
そこで割込処理制御回路8は一連のベクトル命令
列単位の割込処理を可能とする為に、一連のベク
トル命令列処理中に並列的に発生する各パイプラ
イン演算器E0〜E3からの例外検出信号l30
〜l33及び各メモリリクエスタF0〜F3,S
0〜S1からの例外検出信号(図示せず)及び命
令解読ユニツト(図示せず)からの例外検出信号
(図示せず)のうち、最も優先順位の高い例外を
選択し、選択された演算器又はメモリリクエスタ
又は命令解読ユニツトから必要な例外情報を採取
し保持する機能をもつている。
以下、第1図に示したベクトル処理装置におい
て、第2図aで示したFORTRANプログラムの
DOループを処理する場合について説明する。第
2図aで示したFORTRANのDOループをベクト
ル命令列に変換すると第2図bの様になる。命令
は、FORTRANプログラム中のベクトルA(i),
i=0,1023のベクトルレジスタVR0へのベク
トルロード、命令はベクトルB(i)、i=0,
1023のベクトルレジスタVR2へのベクトルロー
ド、命令はベクトルC(i)、i=0,1023のベク
トルレジスタVR4からのベクトルストアに相当
する。ここで、VAR0,2,4は、ベクトルデ
ータの格納されている先頭アドレスを保持するレ
ジスタであり、VIR0,2,4はベクトル要素の
アドレス間隔を保持するレジスタである。この例
では、第2図Cに示すように、ベクトルAは
10000番地から8バイト間隔に1024要素、ベクト
ルBは12000番地から8バイト間隔で1024要素格
納されており、ベクトルAとベクトルBの和ベク
トルCは、14000番地から8バイト間隔にに1024
要素格納されるものとする。命令は、ベクトル
レジスタVR0とVR2内にロードされたベクト
ルデータの要素毎の加算を行い、結果を指定され
たベクトルレジスタVR4に書き込む命令であ
る。命令は、ベクトル命令列の終了を示す制御
命令であり、実質的なベクトル処理を伴わない。
以下、ベクトルレジスタの要素の個数VMAX
を256として、Single Processモード及び
Parallel Processモードで処理する場合について
説明する。Single Processモード時は、1024個の
ベクトル要素の加算を、第2図bのベクトル命令
列を4回繰り返し実行することにより行う。以下
1回の処理を1ループとよぶことにする。この繰
り返し処理をハード的に行う為に、ベクトル処理
制御部7内には、処理すべき残りのベクトル要素
数を保持するレジスタVLRが設けてある。残り
処理要素数が256以上の場合は、例えばのVL命
令はフエツチ用メモリリクエスタF0、のVL
命令はフエツチ用メモリリクエスタF1、の
VEA命令は演算器E0、のVST命令はストア
用メモリリクエスタS0を用いて、256個のベク
トル要素の処理がなされる。従つてVEND命令
をデコードすると、VLRは256減算され、VAR
0,2,4にはVIR×256の値が加算される。
VLRを減算した結果が正ならば、加算された
VAR0,2,4を用いてベクトル命令列の先頭
から処理が続行され、VLRを減算した結果が負
ならば、終処理に入る。
Parallel Processモード時は、1024のベクトル
要素の加算は、第2図bのベクトル命令列を2回
繰り返して実行することにより行う。これは、1
つのベクトル命令であらかじめ組になると決めら
れている2つのベクトルレジスタ、2つのパイプ
ライン演算器、2つのメモリリクエスタ等が対に
なつて使用される為、1ループで512個のベクト
ル要素の処理が可能であるからである。この
Parallel Processモードにおいては、のVL命
令では、例えばフエツチ用メモリリクエスタF0
により、A(0),A2,…A(510)の256個のベ
クトルデータがベクトルレジスタVR0に、フエ
ツチ用メモリリクエスタF1によりA(1),A(3),
…A(511)の256個のベクトルデータがベクトル
レジスタVR1に転送される。以下、同様に、
のVL命令では、ベクトルレジスタVR2にベク
トルBの偶数要素が、ベクトルレジスタVR3に
ベクトルBの奇数要素がロードされ、のVEA
命令で、ベクトルレジスタVR4にベクトルレジ
スタVR0とVR2の和、ベクトルレジスタVR5
にベクトルレジスタVR1とVR3の和が求まり、
のVST命令でベクトルレジスタVR4内のベク
トルデータがベクトルC(0),C(2),…,C
(510)として、ベクトルレジスタVR5内のベク
トルデータがベクトルC(1),C(3),…C(511)と
してストアされる。以上のように1ループで512
個のベクトル要素の処理がなされ、従つて
VEND命令をデコードすると、VLRは512減算さ
れ、VARにはVIRX512の値が加算される。VLR
の減算結果に伴う処理は、Single Processモード
時と同様である。
以上説明した様に、第2図aの如きDOループ
が一連のベクトル命令列bとして実行されるわけ
であるから、一連のベクトル命令列単位に1つの
割込処理を行う為には、第2図aのようなDOル
ープで起こり得る複数の例外のうち、1つを選択
する必要性が生じる。選択の優先順位としては、
例外の種類に着目し、命令・指定例外をアクセス
例外・演算例外より優先する方式、最も若いアド
レスのベクトル命令に関する例外を優先する方
式、最小のベクトル要素番号に関する例外を優先
する方式等、種々考えられるが、本実施例では、
要素番号最小かつ最も若いアドレスの例外を優先
して選択する方式を実現している。本方式を採用
した理由は、DOループをスカラ命令を用いてシ
リアルに実行する場合に、最も早く検出されるで
あろう例外と同じ例外を選択すべきだと考えたか
らである。
第3図は、Single Processモードのみを行うと
考えた場合の、例外情報選択回路を表わしてい
る。メモリリクエスタ、パイプライン演算器とも
にベクトル命令の実行途中に例外を検出し得る
が、例外命令アドレス及び例外要素番号の確定は
演算器と全く同様の方式で実現できるので、図示
していない。以下、第3図について説明する。
ベクトル処理制御部7はベクトル命令を解読
し、命令で指定されたベクトルレジスタと当該命
令で使用するタイプのパイプライン演算器又はメ
モリリクエスタのどれかが使用可能と判断できる
場合には、使用するパイプライン演算器又はメモ
リリクエスタを割り付け、当該命令を起動する。
ベクトル処理制御部7内には、先頭ベクトル命令
のアドレスを保持するレジスタSIAR72と、起
動された命令のアドレスを示すレジスタVIAR7
1がある。以下、レジスタVIARの更新について
述べる。ベクトル処理制御部7の起動時に、スカ
ラ処理装置6から指示された先頭ベクトル命令ア
ドレスが、レジスタSIAR次いでレジスタVIAR
にセツトされる。以後は、ベクトル命令起動に伴
い、レジスタVIARに命令語長が加算器76及び
セレクタ77を介して加算される。VEND命令
がデコードされると、レジスタVIARにはレジス
タSIARに保持されていた先頭命令アドレスがセ
ツトされる。以上のように制御することによつて
レジスタVIARは起動されたベクトル命令のアド
レスを示すことができる。
ベクトル処理制御部7内には、起動された命令
で処理する先頭ベクトル要素番号を指示する為
に、処理済ベクトルに要素数を示すレジスタ
VER70がある。以下、このレジスタVERの更
新について述べる。ベクトル処理制御部7の起動
時にレジスタVERには‘0'がセツトされる。以
後、VEND命令がデコードされるたびにレジス
タVERにベクトルレジスタ長VMAXが加算器7
8及びセレクタ79を介して加算される。以上の
ように制御することによつて、レジスタVERは
先頭ベクトル要素番号を示すことができる。
次に、各パイプライン演算器で検出した例外に
関するベクトル命令アドレス及びベクトル要素番
号の求め方について説明する。ベクトル処理制御
部7から、ベクトル命令の起動にうけたパイプラ
イン演算器30〜33は、起動時にベクトル命令
の実行に伴う情報とともに、該ベクトル命令のア
ドレスをレジスタ306に、又先頭ベクトル要素
番号をレジスタ302に保持する。また、命令起
動に際し、その中のベクトルレジスタ内アドレス
カウンタ301は、VMAXにセツトされる。処
理すべきベクトルデータの最初の要素が演算パイ
プライン300の第1ステージに入ると、先頭ベ
クトル要素番号が入つているレジスタ302の内
容はレジスタ303へ、ベクトル命令アドレスが
入つているレジスタ306の内容はレジスタ30
7へコピーされる。以後、データが演算パイプラ
イン300の第2、第3ステージへと移動するに
従い、先頭ベクトル要素番号はレジスタ304,
305へ、又ベクトル命令アドレスはレジスタ3
08,309へ移動する。最初のベクトル要素が
第3ステージ、即ち最終ステージに達すると、1
ベクトル要素の演算が終了し、ベクトルレジスタ
内のアドレスカウンタ301は加算器310及び
セレクタ311を介して+1され‘00'となる。
(すなわち、このカウンタ301はVMAXに+1
すると0にラツプアラウンドする。)‘00'は第1
番目の要素を意味する。ここで、もし演算の過程
において例外が検出されていた場合は、例外検出
信号が割込処理制御部8に報告される。同時に、
この例外検出信号によりレジスタ305,30
9、ベクトルレジスタ内アドレスカウンタ301
の以後の更新は禁止される。第2番目以後の要素
も第1番目の要素と同様に処理が行われ、例外が
検出されない限り、演算が1要素終了する毎にベ
クトルレジスタ内アドレスカウンタ301が加算
器310及びセレクタ311を介して+1されて
ゆく。演算パイプライン300のステージ対応
に、先頭ベクトル要素番号及びベクトル命令アド
レスを保持する理由は、演算パイプライン300
内に存在する異なるベクトル命令と識別しなけれ
ばならないからである。従つて、演算パイプライ
ン300で2つ以上の命令が共存することがない
装置の場合は、ステージ対応にレジスタを設ける
必要はないことに注意されたい。
以上の様にして、各パイプライン演算器30〜
33は、最初に検出した例外のベクトル命令アド
レスをレジスタ309に、ベクトル要素番号をレ
ジスタ305及び301に求めることができる。
ベクトル処理制御部7は、ベクトル命令アドレス
順にベクトル命令を起動し、各パイプライン演算
器30〜33は最も若い要素から順に演算を実行
する為、演算器が最初に検出した例外は、該パイ
プライン演算器30〜33が検出し得る例外の
内、要素番号最小かつ最も若いアドレスの例外と
考えられる。
次に、複数のパイプライン演算器から相前後し
て報告される例外要因のうち、要素番号最小かつ
最も若いアドレスの例外を割込処理制御部8が選
択する方法について説明する。割込処理制御部8
は、演算器30〜33から例外検出信号が報告さ
れると、例外検出信号受付部80においてその1
つを選択して受付け、その例外情報を割込処理制
御部8内にとりこむ。即ち、ベクトル命令アドレ
スはセレクタ83を通してレジスタ86にセツト
される。また先頭ベクトル要素番号、ベクトルレ
ジスタ内アドレスはそれぞれセレクタ81,82
でセレクトされ、更に先頭ベクトル要素番号とベ
クトルレジスタ内アドレスが加算器89で加算さ
れて例要素番号レジスタ84にセツトされる。割
込処理制御部8に最初に報告された例外の時は、
無条件にレジスタ84の内容がレジスタ85に、
レジスタ86の内容がレジスタ87にセツトされ
る。最初に報告された例外でない場合には、以前
に検出された例外の例外要素番号がレジスタ85
に、例外命令アドレスがレジスタ87に、既にセ
ツトされているはずであるから、レジスタ84と
レジスタ85の内容を比較器90を用いて、レジ
スタ86とレジスタ87の内容を比較器91を用
いて比較する。新たに報告された例外の例外要素
番号84が、以前に検出された例外の例外要素番号
85より小さい時、信号線92が‘1'となり、OR
ゲート93が成立する。新たに報告された例外の
例外要素番号84が、以前に検出された例外の例外
要素番号85と等しく、かつ、新たに報告された例
外の例外命令アドレス86が、以前に検出された
例外の例外命令アドレスより若いならば、AND
ゲート94の出力が‘1'となり、ORゲート93
が成立する。ORゲート93が成立すると、レジ
スタ84の内容がレジスタ85に、レジスタ86
の内容がレジスタ87に、セツトされる。以上の
様にして各パイプライン演算器からの例外検出信
号を次々と受け付け、以前に検出されている例外
と比較選択することにより、ベクトルレジスタに
格納可能な要素以上の要素を有するベクトルに演
算を行うベクトル処理装置において、ベクトル要
素番号最小かつ最も若いアドレスの例外を選択
し、それの例外要素番号、例外命令アドレス及び
割込コード(図示せず)等の例外情報を保持する
ことが可能になる。
以上、Single Processモードのみを行う場合の
例外情報選択回路について第3図により説明した
が、次にParallel Processモードも行う場合の例
外情報選択回路について、第4図を用いて説明す
る。第4図と第3図の相異点は、処理済ベクトル
要素数レジスタ70のカウントアツプ値を、
Parallel Processモード指示フリツプフロツプ9
でり替えるセレクタ73が存在する点と、第3図
では、レジスタ84への例外ベクトル要素番号を
求めるのに単純にセレクタ81と82の加算を行
なつているのを、第4図では例外要素番号生成回
路88を備えている点である。それ以外は、第3
図と同一である。また、第4図中の例外要素生成
回路88の詳細は、第5図を用いて後に述べる。
Parallel Processモード指示フリツプフロツプ
9が‘0'の時、即ちSingle Processモード時は、
VERカウントアツプ値セレクタ73がVMAXを
選択し、かつ例外要素番号生成回路88が、セレ
クタ81の出力とセレクタ82の出力の加算回路
として働く為、第4図は第3図と等価に機能す
る。Parallel Processモード指示フリツプフロツ
プ9が‘1'の時、即ちParallel Processモード時
は、VERカウントアツプ値セレクタ73は
VMAXの2倍を出力する倍数器75を選択し、
かつ、例外要素番号生成回路88が、各パイプラ
イン演算器30〜33が報告してきたベクトルレ
ジスタ内アドレスに補正を加えて先頭ベクトル要
素番号と加算するよう働くことにより、Parallel
Processモード時においてもSingle Processモー
ド時と同様に、ベクトル要素番号最小かつ最も若
いアドレスの例外を選択することができる。以
下、Parallel Processモード時特有の動作につい
て説明する。
Parallel Processモード時は、第2図を用いて
説明した様に、1ベクトル命令の処理に対して2
つのパイプライン演算器が一方は偶数番号要素の
処理、他方が奇数番号要素の処理という具合に対
になつて使用される為に、1ループで最大
VMAX×2個のベクトル要素の処理がなされる。
従つて、処理済ベクトル要素数レジスタ70を、
VEND命令をデコードする度に、VMAX×2だ
け加算することによつて、あるループで起動され
たベクトル命令の先頭ベクトル要素番号を得るこ
とができる。各パイプライン演算器は、直接主記
憶装置にアクセスすることをしないので、
Parallel Processモード指定に関係なく動作し、
例外を検出したベクトル要素のベクトルレジスタ
内アドレスを、割込処理制御部8に報告してく
る。割込処理制御部8は例外を報告してまたパイ
プライン演算器が、偶数番要素を処理しているか
あるいは奇数番番要素を処理しているかを識別
し、例外要素番号生成回路88において、偶番要
素を処理している演算器ならばベクトルレジスタ
内アドレスを2倍したものを、奇数番要素を処理
している演算器ならばベクトルレジスタ内アドレ
スを2倍して+1したものを、それぞれ先頭ベク
トル要素番号に加算し、受け付けられた例外要素
番号レジスタ84にセツトする。
以下、例外要素号レジスタ85を4バイト長、
ベクトルレジスタ長VMAXを256とした場合の例
外要素番号生成回路中88の詳細を第5図を用い
て説明する。第5図中のpp,n,i0−2,0−
7,l0−7,e0−2,0−7の各ニモニツク
は、例外要素番号成回路88内のニモニツクに相
当している。各パイプライン演算器でスタツクす
べき先頭要素番号4バイトのうち、下1バイトは
必ず0であるから、各パイプライン演算器は先頭
要素番号として、上3バイトのみを報告する(i
0−2,0−7)。また、ベクトルレジスタ内ア
ドレスとしては、1バイト必要である(l0−
7)。Parallel Processモード指定かどうかを示
すのが信号ppであり、例外報告元のパイプライ
ン演算器が奇番号要素を処理していることを示す
信号線がnである。求めるべき例外要素番号4バ
イトはl0−3,0−7で示される。Single
Processモード時における先頭要素番号とベクト
ルレジスタ内アドレスの加算は、単純にi0−
2,0−7とl0−7をマージすることによつて
実現される。この時、シフタ880はpp=0で
ある為シフト動作を行わない。Parallel Process
モード時における例外要素番号の生成は、パイプ
ライン演算器が報告してきたベクトルレジスタ内
アドレスを2倍する動作、奇数番要素を処理する
パイプライン演算器からの報告の場合は+1する
動作、先頭要素番号に加算する動作によつて成さ
れるが、これらの動作はシフタ880及びORゲ
ート881によつて実現される。すなわち、パイ
プライン演算器が報告してきたベクトルレジスタ
内のアドレスを補正する(2倍して1加える)為
に、シフタ880はpp=1の時 shift out=x0 z0−z6=x1−x7 z7=shift iu となる様構成されている。又、補正されたベクト
ルレジスタ内アドレスを、先頭要素番号に加算す
る為には、シフタ880の出力をe30〜e37
とし、Parallel Processモード時は常にi27=0
であることより、ORゲート881を設けてe27
を求める。以上述べた様に、VMAX=256の時の
例外要素番号生成回路88は、第5図の様な比較
的簡単な回路で実現できる。
〔発明の効果〕
本発明によれば、ベクトル命令の実行性能を損
うことなく、ベクトル要素レベルで概念的に最初
に発生した例外を選択できるので、ソフトウエア
に対して、従来のスカラ処理マシンとほぼ同等の
例外情報を提供することができる。
【図面の簡単な説明】
第1図は本発明の一実施例を示すベクトル処理
装置全体の概略構成図、第2図aはFORTRAN
プログラムのDOループ例を示す図、第2図bは
第2図aに対応するベクトル命令列を示す図、第
2図cは、第2図a,bに対応する主記憶装置上
のベクトルデータを示す図、第3図はSingle
Processモード時の例外情報選択回路図、第4図
は、Parallel Processモードサポート時の例外情
報選択回路図、第5図は、第4図中の例外要素番
号生成回路の詳細回路図である。 第1図、10〜17…ベクトルレジスタ(VR
0〜VR7)、20〜23…ベクトルデータフエ
ツチ用メモリリクエスタ(F0〜F3)、24〜
25…ベクトルデータストア用メモリリクエスタ
(S0〜S1)、30〜33…パイプライン演算器
(E0〜E3)、4…主記録装置、5…記憶制御装
置、6…スカラ処理装置、7…ベクトル処理制御
部、8…割込処理制御部、9…Parallel Process
モード指示フリツプフロツプ、第3図、7…ベク
トル処理制御部、70…処理済ベクトル要素数レ
ジスタ(VER)、71…ベクトル命令アドレスレ
ジスタ(VIAR)、30〜33…パイプライン演
算器、301…ベクトルレジスタ内アドレスカウ
ンタ、300…演算パイプライン、8…割込処理
制御部、80…例外検出信号受付論理、90,9
1…比較器、第4図、88…例外要素番号生成回
路、9…Paralell Processモード指示フリツプフ
ロツプ。

Claims (1)

  1. 【特許請求の範囲】 1 並列実行可能な複数の機能要素を有し、複数
    のベクトル要素の演算を該複数の機能要素で並列
    に実行可能なベクトル処理装置であつて、 各機能要素が処理中の命令アドレス、各機能要
    素が例外を検出したベクトル要素のベクトルレジ
    スタ内アドレスとをそれぞれ機能要素対応に保持
    する手段と、各機能要素からの例外検出報告に基
    づき対応する前記保持手段内の保持情報を読み出
    し、最も優先順位の高い例外の命令アドレス及び
    例外要素番号を生成する手段とを設けたことを特
    徴とするベクトル処理装置。 2 前記生成手段は、生成した前記命令アドレス
    及び前記例外要素番号を記憶する手段と、前記機
    能要素で新たに発生した例外の前記命令アドレス
    と前記例外要素番号と該記憶手段の内容とを比較
    する手段とからなることを特徴とする特許請求の
    範囲第1項記載のベクトル処理装置。 3 ベクトル要素を記憶する複数のベクトルレジ
    スタと、並列実行可能な複数のパイプライン演算
    器とを少なくとも有し、該複数のベクトルレジス
    タの複数のベクトル要素の演算を該複数のパイプ
    ライン演算器で並列に実行可能なベクトル処理装
    置において、 前記複数のパイプライン演算器の各々に対応
    し、各パイプライン演算器が処理中の命令アドレ
    スと、当該命令で処理する先頭ベクトル要素番号
    と、各パイプライン演算器が例外を検出したベク
    トル要素の前記ベクトルレジスタ内のアドレスと
    を情報としてそれぞれ保持する保持手段と、各パ
    イプライン演算器からの例外検出信号により対応
    する該保持手段から読みだした該保持情報に基づ
    き最も優先順位の高い例外の例外要素番号を生成
    する手段とを少なくとも有する割込み処理制御部
    とを設けたことを特徴とするベクトル処理装置。
JP58243943A 1983-12-26 1983-12-26 ベクトル処理装置 Granted JPS60136872A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP58243943A JPS60136872A (ja) 1983-12-26 1983-12-26 ベクトル処理装置
US06/685,112 US4777593A (en) 1983-12-26 1984-12-21 Vector processing apparatus including means for identifying the occurrence of exceptions in the processing of vector elements
DE8484116394T DE3485119D1 (de) 1983-12-26 1984-12-27 Vektorverarbeitungsgeraet.
EP84116394A EP0147858B1 (en) 1983-12-26 1984-12-27 Vector processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58243943A JPS60136872A (ja) 1983-12-26 1983-12-26 ベクトル処理装置

Publications (2)

Publication Number Publication Date
JPS60136872A JPS60136872A (ja) 1985-07-20
JPH0562390B2 true JPH0562390B2 (ja) 1993-09-08

Family

ID=17111339

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58243943A Granted JPS60136872A (ja) 1983-12-26 1983-12-26 ベクトル処理装置

Country Status (4)

Country Link
US (1) US4777593A (ja)
EP (1) EP0147858B1 (ja)
JP (1) JPS60136872A (ja)
DE (1) DE3485119D1 (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5063497A (en) * 1987-07-01 1991-11-05 Digital Equipment Corporation Apparatus and method for recovering from missing page faults in vector data processing operations
JPH0769783B2 (ja) * 1987-11-16 1995-07-31 日本電気株式会社 例外処理方式
EP0333365A3 (en) * 1988-03-18 1991-05-08 Digital Equipment Corporation Method and apparatus for handling asynchronous memory management exceptions by a vector processor
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
US4969117A (en) * 1988-05-16 1990-11-06 Ardent Computer Corporation Chaining and hazard apparatus and method
US4935849A (en) * 1988-05-16 1990-06-19 Stardent Computer, Inc. Chaining and hazard apparatus and method
JP3076044B2 (ja) * 1988-07-27 2000-08-14 日本電気株式会社 パイプラインのエラー情報記憶方式
JP2858140B2 (ja) * 1988-10-19 1999-02-17 アポロ・コンピューター・インコーポレーテッド パイプラインプロセッサ装置および方法
JP2810068B2 (ja) 1988-11-11 1998-10-15 株式会社日立製作所 プロセッサシステム、コンピュータシステム及び命令処理方法
JP2550213B2 (ja) * 1989-07-07 1996-11-06 株式会社日立製作所 並列処理装置および並列処理方法
JP2607689B2 (ja) * 1989-07-10 1997-05-07 株式会社日立製作所 ベクトル処理装置
US5197138A (en) * 1989-12-26 1993-03-23 Digital Equipment Corporation Reporting delayed coprocessor exceptions to code threads having caused the exceptions by saving and restoring exception state during code thread switching
US5119324A (en) * 1990-02-20 1992-06-02 Stardent Computer Apparatus and method for performing arithmetic functions in a computer system
US5053986A (en) * 1990-02-21 1991-10-01 Stardent Computer, Inc. Circuit for preservation of sign information in operations for comparison of the absolute value of operands
US5206952A (en) * 1990-09-12 1993-04-27 Cray Research, Inc. Fault tolerant networking architecture
US5392443A (en) * 1991-03-19 1995-02-21 Hitachi, Ltd. Vector processor with a memory assigned with skewed addresses adapted for concurrent fetching of a number of vector elements belonging to the same vector data
JP2925818B2 (ja) * 1991-04-05 1999-07-28 株式会社東芝 並列処理制御装置
JPH04336378A (ja) * 1991-05-14 1992-11-24 Nec Corp 情報処理装置
US5761407A (en) * 1993-03-15 1998-06-02 International Business Machines Corporation Message based exception handler
DE4434895C2 (de) * 1993-12-23 1998-12-24 Hewlett Packard Co Verfahren und Vorrichtung zur Behandlung von Ausnahmebedingungen
EP0681236B1 (en) * 1994-05-05 2000-11-22 Conexant Systems, Inc. Space vector data path
JP3495173B2 (ja) * 1996-02-14 2004-02-09 富士通株式会社 演算処理方法および演算処理装置
US6304963B1 (en) * 1998-05-14 2001-10-16 Arm Limited Handling exceptions occuring during processing of vector instructions
US9411584B2 (en) * 2012-12-29 2016-08-09 Intel Corporation Methods, apparatus, instructions, and logic to provide vector address conflict detection functionality
US9823924B2 (en) 2013-01-23 2017-11-21 International Business Machines Corporation Vector element rotate and insert under mask instruction
US9804840B2 (en) 2013-01-23 2017-10-31 International Business Machines Corporation Vector Galois Field Multiply Sum and Accumulate instruction
US9513906B2 (en) 2013-01-23 2016-12-06 International Business Machines Corporation Vector checksum instruction
US9715385B2 (en) * 2013-01-23 2017-07-25 International Business Machines Corporation Vector exception code
US9778932B2 (en) 2013-01-23 2017-10-03 International Business Machines Corporation Vector generate mask instruction
US9471308B2 (en) 2013-01-23 2016-10-18 International Business Machines Corporation Vector floating point test data class immediate instruction
US20170177351A1 (en) * 2015-12-18 2017-06-22 Intel Corporation Instructions and Logic for Even and Odd Vector Get Operations
US10338920B2 (en) 2015-12-18 2019-07-02 Intel Corporation Instructions and logic for get-multiple-vector-elements operations
GB2546510B (en) 2016-01-20 2018-09-26 Advanced Risc Mach Ltd Vector atomic memory update instruction
US10216515B2 (en) * 2016-10-18 2019-02-26 Oracle International Corporation Processor load using a bit vector to calculate effective address

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4025771A (en) * 1974-03-25 1977-05-24 Hughes Aircraft Company Pipe line high speed signal processor
US4101960A (en) * 1977-03-29 1978-07-18 Burroughs Corporation Scientific processor
JPS6024985B2 (ja) * 1978-08-31 1985-06-15 富士通株式会社 デ−タ処理方式
JPS55110340A (en) * 1979-02-16 1980-08-25 Fujitsu Ltd Data processing system
US4302818A (en) * 1979-07-10 1981-11-24 Texas Instruments Incorporated Micro-vector processor
US4298936A (en) * 1979-11-15 1981-11-03 Analogic Corporation Array Processor
JPS5688560A (en) * 1979-12-21 1981-07-18 Fujitsu Ltd Vector arithmetic unit
JPS6019032B2 (ja) * 1979-12-26 1985-05-14 富士通株式会社 ベクトル演算処理装置
US4338675A (en) * 1980-02-13 1982-07-06 Intel Corporation Numeric data processor
JPS57134774A (en) * 1981-02-13 1982-08-20 Hitachi Ltd Vector operating device
JPS60103482A (ja) * 1983-10-24 1985-06-07 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション ベクトル処理能力を有するデ−タ処理装置

Also Published As

Publication number Publication date
EP0147858B1 (en) 1991-09-25
US4777593A (en) 1988-10-11
JPS60136872A (ja) 1985-07-20
EP0147858A2 (en) 1985-07-10
EP0147858A3 (en) 1988-04-20
DE3485119D1 (de) 1991-10-31

Similar Documents

Publication Publication Date Title
JPH0562390B2 (ja)
US4882701A (en) Lookahead program loop controller with register and memory for storing number of loop times for branch on count instructions
US4745547A (en) Vector processing
US6564314B1 (en) Computer instruction compression
EP0368332B1 (en) Pipeline data processor
EP0155211A2 (en) System for by-pass control in pipeline operation of computer
JPS5911943B2 (ja) デ−タ処理装置の為のトラツプ機構
JPS60179851A (ja) デ−タ処理装置
US5097407A (en) Artificial intelligence processor
EP0094535B1 (en) Pipe-line data processing system
JPH0414385B2 (ja)
US5349671A (en) Microprocessor system generating instruction fetch addresses at high speed
CA1308490C (en) Operation apparatus
US4969117A (en) Chaining and hazard apparatus and method
EP0061586B1 (en) Data processing apparatus with extended general purpose registers
US4616315A (en) System memory for a reduction processor evaluating programs stored as binary directed graphs employing variable-free applicative language codes
US6513053B1 (en) Data processing circuit and method for determining the first and subsequent occurences of a predetermined value in a sequence of data bits
US4935849A (en) Chaining and hazard apparatus and method
JPS62159230A (ja) 命令先取り装置
JP2812610B2 (ja) パイプライン制御方式
JPH07110769A (ja) Vliw型計算機
JP2778610B2 (ja) パイプライン演算制御方法およびシステム
JP3278441B2 (ja) ベクトル処理装置
JPS62159231A (ja) 命令先取り装置
JP2782471B2 (ja) データ転送のリトライ制御方式