JPH0330182B2 - - Google Patents

Info

Publication number
JPH0330182B2
JPH0330182B2 JP59107739A JP10773984A JPH0330182B2 JP H0330182 B2 JPH0330182 B2 JP H0330182B2 JP 59107739 A JP59107739 A JP 59107739A JP 10773984 A JP10773984 A JP 10773984A JP H0330182 B2 JPH0330182 B2 JP H0330182B2
Authority
JP
Japan
Prior art keywords
vector
register
operator
instruction
data
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
JP59107739A
Other languages
English (en)
Other versions
JPS60251470A (ja
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 filed Critical
Priority to JP10773984A priority Critical patent/JPS60251470A/ja
Publication of JPS60251470A publication Critical patent/JPS60251470A/ja
Publication of JPH0330182B2 publication Critical patent/JPH0330182B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】 (a) 産業上の利用分野 本発明は、一つの命令で複数個のエレメントを
順次処理するベクトルデータ処理方式において、
各エレメント対応に、それぞれ任意の演算を施す
ことのできる機能を備えたベクトルデータ処理装
置に関する。
一般のベクトルデータ処理装置は、一つのベク
トル命令によつて、多量のエレメントデータを処
理する、所謂SIMD(Single Instruction
Multiple Data)形式に属するデータ処理手段で
ある。
このベクトルデータ処理方式においては、処理
の高速化を図る為に、主記憶装置と演算パイプラ
インとの間にベクトルレジスタを設け、該主記憶
装置とベクトルレジスタ間には、アクセスパイプ
ライン(ロード/ストアパイプライン)を設け、
上記演算パイプラインにおける処理とは独立に、
処理すべきエレメントデータの主記憶装置からの
ベクトルレジスタへのロード、或いは処理結果の
主記憶装置へのストアを行つている。
そして、実際の演算は、複数個の演算パイプラ
インによつて、上記ベクトルレジスタとの間のみ
で実行できるようにしている。
かかるベクトルデータ処理装置において、ベク
トル長の長いベクトルデータに対して、ベクトル
演算命令を実行中に、特定のエレメント群に対し
て別の演算を実行すると云う操作の操り返しを必
要とする場合、該エレメントデータを複数個のベ
クトル命令に分割して実行する必要があつた。
一方、通常のベクトルデータ処理装置において
は、ベクトルレジスタの各エレメント対応に、マ
スクレジスタが設けられており、実際のベクトル
演算の実行に際して、当該エレメントに対するマ
スクデータによつて、該エレメントに対する演算
の有効/無効を判定する機能がある。
そこで、ベクトルデータ処理装置における、上
記エレメント対応のマスク機能に着目して、該マ
スク機能を高度化する形で、各エレメント対応に
任意の演算を施す機能を付加することにより、単
にエレメント対応のベクトル演算をマスクするだ
けでなく、所謂MIMD(Multiple Instruction
Multiple Data)機能に準じた処理が可能とな
る。
このような機能があると、例えば、多量のエレ
メントデータを処理する画像処理等において、特
定の条件を満たす画素(エレメント)に対しての
み、互いに異なる複数種類の特別な処理を施した
いような場合に、極めて有用となる。
第4図は、該画像処理を行う場合の、特定の条
件を満たす画素に対する演算の種別(演算子)を
画素対応に決め、その演算子によつて各画素対応
に特定の演算を施す処理を流れ図で示したもの
で、第5図は、第4図の処理によつて得られた、
各画素単位に施す演算子の分布の例を示した図で
ある。
先ず、第4図によつて、各ステツプの動作を説
明する。
ステツプ10:各画素に対して特定の演算を行い、
その結果が予め定めてある常数と比較し、大き
いか、小さいか、等しいかを判定し、大きい場
合にはステツプ11に移り、等しい場合にはステ
ツプ12に移り、小さい場合にはステツプ13に移
るように動作する。
ステツプ11:演算子をCOとして、ベクトル演算
命令のR4パートが指定するベクトルレジスタ
の、当該エレメントの位置に格納する。
ステツプ12:演算子をC1として、ベクトル演算
命令のR4パートが指定するベクトルレジスタ
の、当該エレメントの位置に格納する。
ステツプ13:演算子をC1として、ベクトル演算
命令のR4パートが指定するベクトルレジスタ
の、当該エレメントの位置に格納する。
ステツプ14:総ての画素について、上記ステツプ
10〜ステツプ13の処理が終了した時点におい
て、該ベクトル演算命令のR2パートが指定す
るベクトルレジスタの各エレメントと、R3パ
ートが指定するベクトルレジスタの各エレメン
トとの間で、上記R4パートが指定するベクト
ルレジスタの対応するエレメントに格納されて
いる演算子Ciの演算をエレメント対応で行い、
演算結果をR1パートが指定するベクトルレジ
スタの対応するエレメントの位置に格納する。
第5図は、第4図のステツプ10〜ステツプ13迄
の処理によつて得られた各画素対応の演算子の例
を示したもので、●は演算子C1を示し、×は演
算子C0を示し、〇は演算子C2を示している。
このような、各画素対応に演算すべき内容が異
なつているベクトルデータに対して、一つのベク
トル演算命令で効果的に実行する方法が要求され
ていた。
(b) 従来の技術 第2図は、従来方式によるベクトルデータ処理
を模式的に示したもので、イは命令形式を示しロ
は演算回路の構成を示している。
本図において、1は演算パイプラインの演算ス
テージにおけるステージレジスタ、2は演算器、
そして、R1〜R4パートは、ベクトル命令の各フ
イールドを示しており、この例においては、R3
パートで指示したベクトルレジスタのエレメント
(Aデータ)と、R2パートで指定したベクトルレ
ジスタのエレメント(Bデータ)とをステージレ
ジスタ1に続み出して、演算器2において、該ベ
クトル命令の命令コード部が指定する演算を施し
てステージレジスタ1に格納した後、R1パート
で指定したベクトルレジスタにXデータとしてス
トアする場合が示されている。
そして、R4パートが前記演算マスクMで、従
来方式においては、該エレメントに対する演算を
マスクする機能に限定されていた所に特徴があ
る。
(c) 発明が解決しようとする問題点 従つて、一つのベクトル命令を実行中において
は、各エレメントに対して共通の演算が実行でき
るのみであり、ベクトル長の長いベクトルデータ
に対して、特定のエレメントに任意の演算を施し
たい場合には、当該エレメントに対して、別のベ
クトル命令で処理する必要があつた。
本発明は上記従来の欠点に鑑み、ベクトル長の
長いベクトルデータの特定のエレメントに対し
て、エレメント対応に任意の演算を施すようにし
て、従来においては複数のベクトル命令を起動し
なければならなかつた場合にも、一つのベクトル
命令で処理することができる方法を提供すること
を目的とするものである。
(d) 問題を解決する為の手段 そしてこの目的は、本発明によれば、 1つ乃至複数個のバンクを同時にアクセス可能
とするベクトルレジスタ、及び、又はマスクレジ
スタと、前記ベクトルレジスタ又は前記マスクレ
ジスタ間で演算を実行する演算パイプラインを備
えたベクトルデータ処理方式に於いて、 与えられた演算子により演算機能を変化する演
算器からなる演算パイプラインを有し、 ベクトル演算命令として、複数エレメントから
なるベクトルデータが格納されているベクトルレ
ジスタを示すと共にベクトル演算のオペランドデ
ータを指定するレジスタ指定フイールドと、少な
くとも演算条件と複数の演算子を指定する演算条
件フイールドとからなる命令を規定し、 前記レジスタフイールドで指定されるベクトル
レジスタから順次ベクトルエレメントを読出し、
前記演算条件フイールド内の演算条件に基づき演
算パイプラインで第1の演算を行い、前記演算結
果に基づき前記指定された演算子の中から演算子
を決定してベクトルレジスタ又はマスクレジスタ
に前記エレメント対応に演算子を格納し、次い
で、前記オペランドフイールドで指定されるエレ
メントと、第1の演算によつてエレメント毎に決
定されベクトルレジスタに格納された演算子を、
前記エレメントに対応して読出し、前記演算子に
よつて演算器の機能を変化させ、順次エレメント
毎に演算種類を変化させて演算を行うことによ
り、1つのベクトル命令で複数個のエレメントに
対して複数の演算子を決定し、複数個の演算を実
行することによつて達成される。
(c) 作用 即ち、本発明においては、与えられた演算子に
より演算機能を変化する演算器を有する。
本発明は1命令で、前記ベクトル演算で使用さ
れるベクトルデータの各エレメントに対して予め
決められた所定の演算を行い、前記所定の演算の
結果から前記各エレメントに対する演算子を決定
し、前記演算子をベクトル演算のオペライドのエ
レメント対応にベクトルレジスタ又はマスクレジ
スタに格納する。従つて、ベクトル命令内には、
演算子を決める為の所定の演算条件と、演算子が
示されるフイールドが設けられる。例えば、従来
のR4パートの演算マスク機能に対して、命令変
換コードCと、コマンドコードCiと演算条件(例
えば、定数)を付加する。この演算条件によつ
て、各オペランドのエレメントに対して演算を行
い、演算結果によつて、コマンドコードを決定
し、ベクトルレジスタに格納する。格納された後
に、ベクトル演算のオペランドのエレメントと、
前記エレメント対応に先程格納されたコマンドコ
ードを読出し、演算器の機能を前記コマンドコー
ドに従い変化させて、演算を行う。
上述した様に、本発明では、1命令で一連のベ
クトルデータに対して、演算種別を決定すると共
に、前記MIMD形式(即ち、ベクトル一命令起
動時に複数命令、複数データを処理する演算形
式)のベクトル演算ができる効果がある。
(f) 発明の実施例 以下本発明の実施例を図面によつて詳述する。
第1図は本発明によるベクトルデータ処理を模式
的に示したもので、イは命令形式を示し、ロは演
算回路の一実施例を示している。そして、1,2
は第2図で説明したものと同じものである。
本発明を適用したベクトル命令のR4パートに
は、R1〜R3パートの修飾ビツトM1〜M3、
命令変換コードC、及びコマンドコードCiと
言つた演算子が付加されており、単なる演算マス
クビツトMのみではない所にポイントがある。
上記各演算子の意味を説明すると、 M:演算マスクビツトで、各エレメントに対する
演算の有効/無効を決める。
M1〜M3:各パートのエレメントに対する修飾
ビツトで、各パートのエレメントデータをその
侭使用するか/反転して使用するかを決める。
C:命令変換コードで、各エレメントに対する命
令コードとして、ベクトル命令コードをその侭
使用するか、コマンドコードCiに変換して使用
するかを決める。
Ci:コマンドコードn個の中のCi命令を示す。
今、ベクトルデータに対して、 Xi=Ai〇Bi、C ここで、〇は演算記号、Cは演算子を示す。
で示した演算を実行する場合を考えると、 先ず、演算パイプラインの演算ステージにおい
て、データAに各エレメントが、ベクトル命令の
R3パートで指定するベクトルレジスタから、デ
ータBの各エレメントが該ベクトル命令のR2パ
ートで指定するベクトルレジスタから、それぞれ
演算ステージのステージレジスタ1に読み出され
る。
続いて、本発明を実施するのに必要な上記演算
子が、該ベクトル命令のR4パートで指定するベ
クトルレジスタから、上記エレメントに対応で上
記ステージレジスタ1に読み出され、演算器2に
送出され、上記M1〜M3ビツトは演算ゲート
GMに対する制御信号として、Mは演算マスクビ
ツトとして、C,Ciは該演算器2に対する制御信
号として機能し、各エレメント対応に、上記演算
子が指定する演算が実行されることになる。
本発明では、1ベクトル演算命令で、第4図に
示した処理をも行うものである。ベクトル命令の
R4パートには、演算マスクビツトM、修飾ビツ
トM1〜M3、C命令変換コード等の他に、演算
条件が格納されている。第4図の実施例の場合、
演算条件として、定数が格納されている。
本発明のベクトル命令が実行されると、第4図
の様に、例えば、R3パートで指定されるベクト
ルレジスタのエレメントを順次読出し、定数と格
納比較される。そして、前記比較結果により、演
算子(コマンドコード)C0,C1,C2の何れ
かが決定される(第4図の11,12,13)。
そしてその結果は、R4パートで指定されてい
るベクトルレジスタ又は、マスクレジスタに格納
され、次いで、第1図ロで説明されている演算を
行う。即ち、R4パートで指定されるベクトルレ
ジスタに格納されているエレメント毎のコマンド
コードを読出しつつ、オペランド(R2、R3パー
トで指定されるベクトルレジスタのエレメント)
を読みだして、エレメント毎に異なる演算を実行
する。
このような演算子を使用して、本発明によるベ
クトルデータ処理を実行した場合の動作をタイム
チヤート的に示したものが第3図イであり、ロは
その演算結果の一例をエレメント対応で示した図
である。
イ図において、横軸のt0〜tj〜tmは、各エレメ
ント対応の演算サイクルを示し、P1〜Pi〜Pnは
演算パイプライン2における各ステージを示して
いる。
具体的には、 P1ステージ:R3パート続み出しステージ P2ステージ:R2パート続み出しステージ 〓 〓 Piステージ:演算ステージ 〓 〓 Pnステージ:R1パート書き込みステージ である。
ロ図において、横方向はベクトル長を示し、縦
方向は1演算サイクルで処理されるエレメント数
を示している。従つて、この縦方向のエレメント
数は、並列に演算が実行される演算パイプライン
の数に対応する。
又、本図において、A=論理積 OR=論理和 N=論理否定 EOR=排他的論理和 TRN=移動 を示しており、上記コマンドコードCiの一例であ
る。
このような演算結果を、それぞれの演算パイプ
ライン毎に、当該ベクトル命令のR4パートが指
定するベクトルレジスタに書き込むことによつ
て、当該ベクトル命令による一連のベクトルデー
タ処理が完了する。
尚、上記実施例においては、各エレメントに対
する演算のコマンドコード等を指定する演算子
を、ベクトル演算命令のR4パートによつて、ベ
クトルデータが格納されているベクトルレジスタ
とは別のベクトルレジスタに設ける例、即ち、当
該演算子をデータとは別のアドレスで指定する方
法で説明したが、演算対象であるベクトルデータ
を指定するアドレスと同じアドレスで指定して、
演算子を各エレメントデータの中に挿入しても良
いことは云う迄もないことである。
又、上記実施例においては、ベクトルレジスタ
間の演算を例として説明したが、本発明の主旨か
ら考えて、ベクトルレジスタ間の演算に限定する
必要はなく、例えばベクトルレジスタとマスクレ
ジスタ間、或いはマスクレジスタ相互間でベクト
ルデータ処理を実行する場合にも適用できること
は云う迄もないことである。
更に、コマンドコードCiが指定する演算命令と
して、1演算サイクルで処理が完了する論理演算
命令(A,OR,N,EOR、等)で示したが、繰
り返し演算を必要とする命令にも適用できること
は明らかなことである。
(g) 発明の効果 以上、詳細に説明した様に、本発明では、1ベ
クトル演算命令で、ベクトルエレメント毎に演算
子を決定し、各エレメント毎に、異なる演算を行
うことができ、一連のベクトル長を有するベクト
ルデータに対して、一つのベクトル演算命令で、
複数の演算を実行することが可能となり、極め細
かいベクトルデータ処理が実行できる。
【図面の簡単な説明】
第1図は、本発明によるベクトルデータ処理の
例を模式的に示した図、第2図は従来方式による
ベクトルデータ処理の例を模式的に示した図、第
3図は本発明によつてベクトルデータ処理を実行
した時の動作を、タイムチヤート的に示した図、
第4図、第5図は本発明の利用分野の一例を説明
した図、である。 図面において、1は演算パイプラインのステー
ジレジスタ、2は演算器、Mは演算マスクビツ
ト、M1〜M3はR1〜R3パートの修飾ビツト、
Cは命令変換コード、Ciはコマンドコード、P1
〜Pnはパイプラインステージ、A,OR,N,
EOR,TRNはコマンドコマンドの一例、10〜
14は動作ステツプ、をそれぞれ示す。

Claims (1)

  1. 【特許請求の範囲】 1 1つ乃至複数個のバンクを同時にアクセス可
    能とするベクトルレジスタ、及び、又はマスクレ
    ジスタと、前記ベクトルレジスタ又は前記マスク
    レジスタ間で演算を実行する演算パイプラインを
    備えたベクトルデータ処理方式に於いて、 与えられた演算子により演算機能を変化する演
    算器からなる演算パイプラインを有し、 ベクトル演算命令として、複数エレメントから
    なるベクトルデータが格納されているベクトルレ
    ジスタを示すと共にベクトル演算のオペランドデ
    ータを指定するレジスタ指定フイールドと、少な
    くとも演算条件と複数の演算子を指定する演算条
    件フイールドとからなる命令を規定し、 前記レジスタフイールドで指定されるベクトル
    レジスタから順次ベクトルエレメントを読出し、
    前記演算条件フイールド内の演算条件に基づき演
    算パイプラインで第1の演算を行い、前記演算結
    果に基づき前記指定された演算子の中から演算子
    を決定してベクトルレジスタ又はマスクレジスタ
    に前記エレメント対応に演算子を格納し、次い
    で、前記をオペランドフイールドで指定されるエ
    レメントと、第1の演算によつてエレメント毎に
    決定されベクトルレジスタに格納された演算子
    を、前記エレメントに対応して読出し、前記演算
    子によつて演算器の機能を変化させ、順次エレメ
    ント毎に演算種類を変化させて演算を行うことに
    より、1つのベクトル命令で複数個のエレメント
    に対して複数の演算子を決定し、複数種の演算を
    実行することを特徴とするベクトルデータ処理装
    置。 2 上記各エレメントに任意の演算を施す為の演
    算子を、ベクトルレジスタ、又はマスクレジスタ
    に対して、データとは別のアドレスで指定して該
    ベクトルレジスタ、又はマスクレジスタの一部分
    に持つか、或いはデータと同じアドレスで指定し
    て、エレメント対応に持つようにしたことを特徴
    とする特許請求の範囲第1項記載のベクトルデー
    タ処理装置。
JP10773984A 1984-05-28 1984-05-28 ベクトルデ−タ処理装置 Granted JPS60251470A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10773984A JPS60251470A (ja) 1984-05-28 1984-05-28 ベクトルデ−タ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10773984A JPS60251470A (ja) 1984-05-28 1984-05-28 ベクトルデ−タ処理装置

Publications (2)

Publication Number Publication Date
JPS60251470A JPS60251470A (ja) 1985-12-12
JPH0330182B2 true JPH0330182B2 (ja) 1991-04-26

Family

ID=14466726

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10773984A Granted JPS60251470A (ja) 1984-05-28 1984-05-28 ベクトルデ−タ処理装置

Country Status (1)

Country Link
JP (1) JPS60251470A (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5697173A (en) * 1979-12-29 1981-08-05 Fujitsu Ltd Operation processing system by mask

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5697173A (en) * 1979-12-29 1981-08-05 Fujitsu Ltd Operation processing system by mask

Also Published As

Publication number Publication date
JPS60251470A (ja) 1985-12-12

Similar Documents

Publication Publication Date Title
EP0148478B1 (en) A data processor with control of the significant bit lenghts of general purpose registers
US5487159A (en) System for processing shift, mask, and merge operations in one instruction
US6026239A (en) Run-time code compiler for data block transfer
KR960012655B1 (ko) 멀티 프로세서 시스템 및 그것에 사용된 코 프로세서
EP0539595A1 (en) Data processor and data processing method
US20010008563A1 (en) Parallel processor and image processing apparatus
JPS59174948A (ja) 情報処理装置
JPS6024985B2 (ja) デ−タ処理方式
US4833640A (en) Register bank change including register to register transfer in a data processing system
KR920018578A (ko) 데이타 처리 프로세서
US4621324A (en) Processor for carrying out vector operation wherein the same vector element is used repeatedly in succession
EP0164418B1 (en) Microprogram control system
JPH034936B2 (ja)
JPH0330182B2 (ja)
RU2066067C1 (ru) Центральный процессор для многопроцессорной вычислительной системы
JP3512272B2 (ja) 比較演算装置およびグラフィック演算システム
JPS6265133A (ja) 命令先取り装置
US4811213A (en) Vector processor with vector registers
US5893928A (en) Data movement apparatus and method
JPH06309349A (ja) プログラム制御のプロセッサ
JP2793357B2 (ja) 並列演算装置
CA1155232A (en) Pipelined digital signal processor using a common data and control bus
JPS60258647A (ja) 条件分岐制御回路
JPH03273592A (ja) キャッシュメモリ装置
JP3067161B2 (ja) ファジィ演算処理装置