JPS62154172A - Processor for vector instruction - Google Patents

Processor for vector instruction

Info

Publication number
JPS62154172A
JPS62154172A JP29462685A JP29462685A JPS62154172A JP S62154172 A JPS62154172 A JP S62154172A JP 29462685 A JP29462685 A JP 29462685A JP 29462685 A JP29462685 A JP 29462685A JP S62154172 A JPS62154172 A JP S62154172A
Authority
JP
Japan
Prior art keywords
vector
operand
scalar data
instruction
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
JP29462685A
Other languages
Japanese (ja)
Inventor
Hajime Fukuzawa
福澤 一
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP29462685A priority Critical patent/JPS62154172A/en
Publication of JPS62154172A publication Critical patent/JPS62154172A/en
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)

Abstract

PURPOSE:To attain the optimum processing for vector instructions with the scalar data use to an operand by changing an arithmetic processing means after checking the value of the scalar data. CONSTITUTION:When a scalar data indicating bit 31 or 32 of an operand is equal to the value '1' which indicates the scalar data, the scalar data of the relevant operand is sent to the scalar check circuits 41 and 42 for check of such values like '0', '1', etc. The output checking results of both circuits 41 and 42 are delivered to a vector arithmetic processing changing circuit 50 together with the types of vector arithmetic which are held by an arithmetic designating register 10. The circuit 50 checks whether the vector arithmetic processing can be changed or not. If said arithmetic processing change is possible, the circuit 50 uniforms the contents of the vector arithmetic processing change to an arithmetic part via a signal line together with a vector arithmetic processing change request.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はベクトル命令処理装置に関し、特にオペランド
にスカラデータが用いられているベクトル命令において
ベクトル演算の種類とスヵラデータの値とからベクトル
演算の処理を変更することによりベクトル演算の高速処
理を可能にするベクトル命令処理装置に関する。
DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to a vector instruction processing device, and particularly to a vector instruction processing device that uses scalar data as an operand. The present invention relates to a vector instruction processing device that enables high-speed processing of vector operations by changing the .

〔従来の技術〕[Conventional technology]

従来、この種のベクトル命令処理装置は、例えば Vl(I)xV2(1)−V3(1) のベクトル命令を処理する場合は、オペランド1(Vl
)、オペランド2(V2)に対応するベクトル要素を順
次記憶装置から読み出し、演算部で所定の演算を順次処
理すべき要素数回だけ繰り返し実行して、その演算結果
をオペランド3 (V3)として記憶装置上のオペラン
ド3 (■3)の対応するアドレス位置に順次格納して
いる。
Conventionally, when processing a vector instruction of Vl (I) x V2 (1) - V3 (1), this type of vector instruction processing device has conventionally
), the vector elements corresponding to operand 2 (V2) are sequentially read from the storage device, the arithmetic unit repeatedly executes a predetermined operation as many times as the number of elements to be sequentially processed, and the result of the operation is stored as operand 3 (V3). They are sequentially stored in the address locations corresponding to operand 3 (■3) on the device.

オペランド2 (V2)がスヵラデータを示すベクトル
命令 Vl(1)XA2−V3(+) である場合でも、上述の処理を処理すべき要素数回だけ
繰り返し実行していた。つまり、オペランドにすべてベ
クトル要素が用いられていようがオペランドにスカラデ
ータが用いられていようが、ベクトル命令語で措定され
た所定のベクトル演算の処理をただ単に処理すべき要素
数回だけ繰り返し実行するのみであった。
Even when operand 2 (V2) is a vector instruction Vl(1)XA2-V3(+) indicating scalar data, the above-described process is repeatedly executed as many times as the number of elements to be processed. In other words, whether all vector elements are used for the operands or scalar data are used for the operands, the processing of the predetermined vector operation specified by the vector instruction word is simply executed repeatedly for the number of elements to be processed. It was only.

〔発明が解決しようセする問題点〕[Problems that the invention attempts to solve]

上述した従来のベクトル命令処理装置は、たとえオペラ
ンドにスカラデータが用いられている場合でもベクトル
命令で指定された所定のベクトル演算の処理をただ単に
処理すべき要素数回だけ繰り返し実行するようになって
いるので、例えばオペランド2  (V2)がスカラデ
ータを示すベクトル命令 Vl(+)XA2−V3(1) でかつスカラデータA2の値が0とか1であり、予めベ
クトル演算の結果が予測される場合であってもベクトル
演算の処理性能を容易に向上できないという欠点がある
The conventional vector instruction processing device described above simply repeatedly executes a predetermined vector operation specified by a vector instruction as many times as the number of elements to be processed, even if scalar data is used as an operand. Therefore, for example, operand 2 (V2) is a vector instruction Vl (+) However, even in cases where this method is used, there is a drawback that the processing performance of vector operations cannot be easily improved.

本発明の目的は、上述の点に鑑み、オペランドにスカラ
データを用いるベクトル命令の処理の最適化を可能にし
ベクトル命令の性能を最大限に向上できるようにしだベ
クトル命令処理装置を提供することにある。
In view of the above-mentioned points, an object of the present invention is to provide a vector instruction processing device that can optimize the processing of vector instructions that use scalar data as operands, and can maximize the performance of vector instructions. be.

〔問題点を解決するための手段〕[Means for solving problems]

本発明のベクトル命令処理装置は、複数のベクトル要素
を記憶装置より順次読み出して共通な演算処理を繰り返
し実行する演算処理装置において、ベクトル演算の種類
を指定するコードを保持する種類コード保持手段と、オ
ペランドにスカラデータが指定されている場合にこのス
カラデータの値をチェックするスカラデータチェック手
段と、前記ベクトル演算の種類を指定するコードと前記
スカラデータチェック手段の結果とからベクトル演算の
処理を変更させる処理変更手段とを有する。
The vector instruction processing device of the present invention is an arithmetic processing device that sequentially reads a plurality of vector elements from a storage device and repeatedly executes common arithmetic processing, and includes a type code holding unit that holds a code specifying a type of vector operation; A scalar data check means for checking the value of scalar data when scalar data is specified as an operand, a code for specifying the type of vector operation, and a result of the scalar data check means to change the processing of the vector operation. and processing change means for changing the process.

〔実施例〕〔Example〕

次に、本発明について図面を参照して説明する。 Next, the present invention will be explained with reference to the drawings.

第2図は、本発明のベクトル命令処理装置を含む演算処
理装置全体の構成の一例を示すブロック図である。この
演算処理装置は、命令の読出し、解読およびアドレス計
算を行う命令制御部1と、論理アドレスから実アドレス
へのアドレス変換とメモリアクセス制御とを行うバッフ
ァ制御部2と、命令の演算を行う演算部3と、各制御部
の制御を行う制御記憶部4と、本発明のベクトル命令処
理装置の要部をなすベクトル命令制御部5と、主記憶装
置7の制御、システム制御および診断制御を行うシステ
ム制御装置6と、主記憶装置7とから構成されている。
FIG. 2 is a block diagram showing an example of the configuration of the entire arithmetic processing device including the vector instruction processing device of the present invention. This arithmetic processing unit includes an instruction control unit 1 that reads and decodes instructions and performs address calculations, a buffer control unit 2 that performs address conversion from logical addresses to real addresses and memory access control, and an arithmetic operation unit that performs instruction operations. 3, a control storage unit 4 which controls each control unit, a vector instruction control unit 5 which is a main part of the vector instruction processing device of the present invention, and which controls the main storage 7, system control and diagnostic control. It consists of a system control device 6 and a main storage device 7.

なお、符号L1〜L15は、上述の各部あるいは装置を
接続する信号線である。
Note that symbols L1 to L15 are signal lines that connect the above-mentioned parts or devices.

ここで、第2図を用いてベクトル命令以外の通常の命令
語の処理の概要について説明する。命令語は主記憶装置
7に格納されており、命令制御部1によりバッファ制御
部2およびシステム制御装置6を経由して主記憶装置7
から命令語が命令制御部1に取り込まれる。命令制御部
1に取り込まれた命令語は、命令制御部1によって命令
語の解読とオペランドアドレスの計算が行われ、バッフ
ァ制御部2によってオペランドが読み出され、演算部3
によって命令の演算が実行される。
Here, an outline of processing of normal instruction words other than vector instructions will be explained using FIG. The instruction word is stored in the main memory 7, and is sent to the main memory 7 by the instruction control unit 1 via the buffer control unit 2 and the system control unit 6.
A command word is taken into the command control unit 1 from the command line. The instruction word taken into the instruction control unit 1 is decoded by the instruction control unit 1 and the operand address is calculated, the operand is read out by the buffer control unit 2, and then sent to the arithmetic unit 3.
The operation of the instruction is executed.

ベクトル命令の場合も、通常の命令語と同様に命令制御
部1によって命令語の取込みと命令語の解読とが行われ
る。
In the case of a vector instruction as well, the instruction control unit 1 takes in the instruction word and decodes the instruction word as in the case of a normal instruction word.

第3図は本実施例のベクトル命令処理装置におけるベク
トル命令形式を示す図である。
FIG. 3 is a diagram showing the vector instruction format in the vector instruction processing device of this embodiment.

命令コード(OP)201は、通常の命令語と同様に与
えられる命令コードであり、本実施例ではC7である。
The instruction code (OP) 201 is an instruction code given in the same way as a normal instruction word, and is C7 in this embodiment.

ベクトル命令コード(VOP)205は、ベクトル演算
の種類コード(加算、減算、乗算、除算、内積演算・・
・等)を示す演算指定部分206と、オペランドとして
スカラデータを指定するフラグ(Sl ) 207およ
びフラグ(S2)208とからなっている。
The vector instruction code (VOP) 205 is a vector operation type code (addition, subtraction, multiplication, division, inner product operation, etc.).
. . . ), a flag (Sl) 207 and a flag (S2) 208 that designate scalar data as an operand.

フラグ207および208は、それぞれオペランド1お
よび2に対応し、それぞれ対応するオペランドに関して
0のときにオペランドがベクトル要素であることを示し
、lのときにスカラデータであることを示す。
Flags 207 and 208 correspond to operands 1 and 2, respectively, and when 0 indicates that the operand is a vector element, and when 1 indicates that the operand is scalar data.

ベクトル記述子アドレス指令基底レジスク番号(BR)
203は、基底レジスタ番号を示しており、この基底レ
ジスタの内容のベクトル記述子アドレスの基底アドレス
209と相対変位アドレス204とが加算器230で加
算されて、ベクトル記述子アドレスの格納アドレスが指
示される。本実施例では、オペランド1用、オペランド
2用およびオペランド3用の3つのベクトル記述子アド
レスが格納されている。
Vector descriptor address command base registration number (BR)
203 indicates a base register number, and an adder 230 adds the base address 209 of the vector descriptor address of the contents of this base register and the relative displacement address 204, and specifies the storage address of the vector descriptor address. Ru. In this embodiment, three vector descriptor addresses for operand 1, operand 2, and operand 3 are stored.

ベクトル記述子アドレス210および211は、それぞ
れ対応するオペランドがスカラデータの場合は8亥当す
るスカラデータ219および220を、ベクトル要素の
場合はベクトル記述子210および211を指定する。
Vector descriptor addresses 210 and 211 respectively specify 8 corresponding scalar data 219 and 220 when the corresponding operand is scalar data, and specify vector descriptors 210 and 211 when the corresponding operand is a vector element.

オペランドがスカラデータであるかベクトル要素である
かは、それぞれオペランドとしてスカラデータを指定す
るフラグ207および208で指示される。
Whether an operand is scalar data or a vector element is indicated by flags 207 and 208, which designate scalar data as the operand, respectively.

オペランド3に対応するスカラデータは存在せず、ベク
トル記述子アドレス212はベクトル記述子3を指定す
る。ベクトル記述子1.2および3のそれぞれは、対応
するオペランドのベクトル要素の先頭アドレス213.
215および217とベクトル要素間距離214.21
6および218とから構成されている。
There is no scalar data corresponding to operand 3, and vector descriptor address 212 specifies vector descriptor 3. Each of vector descriptors 1.2 and 3 contains the start address 213. of the vector element of the corresponding operand.
215 and 217 and vector element distance 214.21
6 and 218.

ここで、例えば vl(+)xV2(1)−V3(1) の場合を考えると、Vl(1)、V2(1)およびV3
(1)がそれぞれオペランド1.2および3に対応する
。オペランド2のベクトル要素の先頭アドレス215は
V2(1)のベクトル要素の先頭アドレスを示し、ベク
トル要素間距離216はある一定間隔で連続的に配置さ
れているオペランド2のベクトル要素同士の間隔を示す
、したがって、ベクトル要素の先頭アドレス215にベ
クトル要素間距離216を加算して得られるアドレスは
、次に用いられるオペランド2のベクトル要素のアドレ
スを示す。
For example, considering the case of vl(+)xV2(1)-V3(1), Vl(1), V2(1) and V3
(1) correspond to operands 1.2 and 3, respectively. The start address 215 of the vector element of operand 2 indicates the start address of the vector element of V2 (1), and the distance between vector elements 216 indicates the interval between vector elements of operand 2 that are consecutively arranged at a certain interval. , Therefore, the address obtained by adding the inter-vector element distance 216 to the start address 215 of the vector element indicates the address of the vector element of operand 2 to be used next.

オペランド1およびオペランド3に対しても、オペラン
ド2と同様である。
The same applies to operand 1 and operand 3.

第1図は本発明のベクトル命令処理装置の要部をなすベ
クトル命令制御部5をより詳細に示すブロック図である
。このベクトル命令制御部5は、演算指定レジスタ10
、ベクトルアドレスデータレジスタ11および12、ベ
クトルアドレスレジスタ13、ベクトル要素間距離レジ
スタ21.22および23、スカラデータ指示ビット3
1および32、スカラデータチェック回路41および4
2、ベクトル演算処理変更回路50、ベクトルバッファ
61および62、レジスタ71および72、加算器80
、レジスタ81およびセレクタ31〜S7から構成され
ている。
FIG. 1 is a block diagram showing in more detail the vector instruction control section 5 which constitutes the main part of the vector instruction processing device of the present invention. This vector instruction control unit 5 has an operation specification register 10
, vector address data registers 11 and 12, vector address register 13, vector element distance registers 21, 22 and 23, scalar data instruction bit 3
1 and 32, scalar data check circuits 41 and 4
2. Vector arithmetic processing change circuit 50, vector buffers 61 and 62, registers 71 and 72, adder 80
, register 81 and selectors 31 to S7.

ベクトルアドレスデータレジスタ11および12ならび
にベクトルアドレスレジスタ13は、オペランドがベク
トル要素の場合はベクトル要素の先頭アドレスと順次先
行して生成されるベクトル要素のアドレスとを、スカラ
データの場合はスカラデータをそれぞれ対応するオペラ
ンドに対して保持するレジスタである。
Vector address data registers 11 and 12 and vector address register 13 store the start address of the vector element and the address of the vector element generated sequentially in advance when the operand is a vector element, and the scalar data when the operand is scalar data. This is a register held for the corresponding operand.

ベクトル要素間距離レジスタ21.22および23は、
それぞれのオペランドのベクトル要素の先頭アドレスに
対応するベクトル要素間距離を保持するレジスタである
Vector element distance registers 21, 22 and 23 are
This register holds the distance between vector elements corresponding to the start address of the vector element of each operand.

演算指定レジスタ10は、ベクトル演算の種類コードを
示す演算指定部分206を保持するレジスタである。
The operation designation register 10 is a register that holds an operation designation part 206 indicating the type code of vector operation.

スカラデータ指定ビフト31および32は、オペランド
としてスカラデータを指定するフラグ207および20
8をそれぞれ保持するレジスタである。
Scalar data specification bits 31 and 32 are flags 207 and 20 that specify scalar data as operands.
These registers each hold 8.

スカラデータチェック回路41および42は、オペラン
ド1および2のスカラデータの値をそれぞれチェックす
る回路である。
Scalar data check circuits 41 and 42 are circuits that check the values of scalar data of operands 1 and 2, respectively.

ベクトル演算処理変更回路50は、スカラデータチェッ
ク回路41および42の出力結果と演算指定レジスタ1
0に保持されているベクトル演算の種類コード(演算指
定部分206)とからベクトル演算の処理を変更させる
回路である。
The vector operation processing change circuit 50 receives the output results of the scalar data check circuits 41 and 42 and the operation specification register 1.
This circuit changes the vector operation processing based on the vector operation type code (operation designation part 206) held at 0.

加算器80は、ベクトル要素の先頭アドレスに対応する
ベクトル要素間距離を逐次足し込んで先行するベクトル
要素のアドレスを順次発生させるアドレス加算器である
The adder 80 is an address adder that sequentially adds distances between vector elements corresponding to the start addresses of vector elements to sequentially generate addresses of preceding vector elements.

レジスタ81は、加算器80で生成されたベクトル要素
のアドレスを受けるインタフェースレジスタである。
Register 81 is an interface register that receives the address of the vector element generated by adder 80.

ベクトルバッファ61および62は、主記憶装置7より
読み出された先行するオペランド1および2のベクトル
要素をそれぞれ保持するバッファ記憶である。
Vector buffers 61 and 62 are buffer memories that hold vector elements of preceding operands 1 and 2 read from main memory 7, respectively.

レジスタ71および72は、ベクトルバッファ61およ
び62から読み出されたオペランドlおよび2のベクト
ル要素もしくはベクトルアドレスデータレジスタ11お
よび12に保持されているオペランド1および2のスカ
ラデータを保持するインタフェースレジスタである。
Registers 71 and 72 are interface registers that hold vector elements of operands 1 and 2 read from vector buffers 61 and 62 or scalar data of operands 1 and 2 held in vector address data registers 11 and 12. .

セレクタ81〜S7は、入力信号を必要に応じて選択す
るセレクタである。
Selectors 81 to S7 are selectors that select input signals as necessary.

次に、このように構成された本実施例のベクトル命令処
理装置の動作について説明する。
Next, the operation of the vector instruction processing device of this embodiment configured as described above will be explained.

まず、 Vl(N xV2(r)=V3(+) のように、オペランド1.2および3がともにベクトル
要素を示す通常の場合の動作について説明する。この場
合は、スカラデータ指示ビット31および32はともに
0である。
First, we will explain the operation in the normal case where operands 1.2 and 3 both indicate vector elements, such as Vl(N x V2(r) = V3(+). In this case, scalar data instruction bits 31 and 32 are both 0.

オペランド2のベクトル要素の先行読出しを行うには、
ヘクトルアドレスデータレジスタ12に保持されている
オペランド2のベクトル要素の先頭アドレス215をセ
レクタS4と加算器80とを素通りさせてレジスタ81
にセットして、レジスタ81からオペランド2の先頭ベ
クトル要素の続出しリクエストが送出される。
To pre-read the vector element of operand 2,
The start address 215 of the vector element of operand 2 held in the hector address data register 12 is passed through the selector S4 and the adder 80, and the register 81
, and a request to continue reading the first vector element of operand 2 is sent from the register 81.

次に、読み出すべきオペランド2のベクトル要素の読出
しリクエストを生成するためには、ベクトルアドレスデ
ータレジスタ12に保持されているオペランド2のベク
トル要素の先頭アドレス215と、ベクトル要素間距離
レジスタ22に保持されているオペランド2のベクトル
要素間距離216とがそれぞれセレクタS4およびS5
を介して加算器80で加算されて次に読み出すべきオペ
ランド2のベクトル要素の読出しリクエストが生成され
てレジスタ81にセントされるとともに、セレクタS2
を介してベクトルアドレスデータレジスタ12の値が更
新される。
Next, in order to generate a read request for the vector element of operand 2 to be read, the start address 215 of the vector element of operand 2 held in the vector address data register 12 and the start address 215 of the vector element of operand 2 held in the vector element distance register 22 are required. The vector element distance 216 of operand 2 is selected by selectors S4 and S5, respectively.
A read request for the vector element of operand 2 to be added and read next by the adder 80 is generated and sent to the register 81 via the selector S2.
The value of the vector address data register 12 is updated via the vector address data register 12.

以後、同様にベクトルアドレスデータレジスタ12のオ
ペランド2のベクトル要素のアドレスとベクトル要素間
距離レジスタ22に保持されているオペランド2のベク
トル要素間距離216とが加算器80で逐次足し込まれ
ることにより、順次オペランド2のベクトル要素の読出
しリクエストが生成されてレジスタ81より送出される
Thereafter, the adder 80 sequentially adds the address of the vector element of operand 2 in the vector address data register 12 and the vector element distance 216 of operand 2 held in the vector element distance register 22 in the same manner. A read request for the vector element of operand 2 is sequentially generated and sent from the register 81.

レジスタ81から送出されたオペランド2のベクトル要
素の続出しリクエストは、信号線L3を介してバッファ
tui部2に送られ、主記憶装置7よりオペランド2の
該当ベクトル要素が読み出される。
A request to continue reading the vector element of operand 2 sent from the register 81 is sent to the buffer tui section 2 via the signal line L3, and the corresponding vector element of operand 2 is read out from the main storage device 7.

以上の動作はスカラデータ指示ビット32が0のときに
のみ行われる。オペランド1および3に対してもリクエ
ストの生成と送出とは同じである。
The above operation is performed only when the scalar data instruction bit 32 is 0. The generation and sending of requests are the same for operands 1 and 3.

主記憶装置7から読み出されたオペランド1および2の
ベクトル要素は、バッファ制御部2を経由して信号線L
3を介してベクトル命令制御部5に送られ、それぞれベ
クトルバッファ61および62に蓄えられる。
The vector elements of operands 1 and 2 read from the main memory 7 are transferred to the signal line L via the buffer control unit 2.
3 to the vector instruction control unit 5, and stored in vector buffers 61 and 62, respectively.

ベクトルバッファ61および62に蓄えられたオペラン
ドlおよび2のベクトル要素は、それぞれセレクタS6
およびS7を介してレジスタ71および72に読み出さ
れ、信号線L4を介して演算部3に供給され、演算指定
部分206で指定された所定の演算が行われる。
The vector elements of operands l and 2 stored in vector buffers 61 and 62 are transferred to selector S6, respectively.
The data is read out to the registers 71 and 72 via S7, and supplied to the arithmetic unit 3 via the signal line L4, where a predetermined arithmetic operation specified by the arithmetic operation specification section 206 is performed.

これと同時に、次に用いられるオペランドlおよび2の
ベクトル要素がベクトルバッファ61および62からそ
れぞれレジスタ71および72に読み出され、順次演算
部3に供給される。
At the same time, vector elements of operands 1 and 2 to be used next are read from vector buffers 61 and 62 to registers 71 and 72, respectively, and are sequentially supplied to calculation unit 3.

演算結果は、オペランド3のベクトル要素のリクエスト
を受けたバッフ1制御部2とシステム制御装置6との制
御により、主記憶装置7の該当するアドレス位置に順次
格納される。
The calculation results are sequentially stored in the corresponding address locations of the main storage device 7 under the control of the buffer 1 control unit 2 and the system control device 6 that have received the request for the vector element of the operand 3.

以上の処理を処理すべき要素数回だけ繰り返し実行する
ことにより、命令語中の演算指定部分206で指定され
たベクトル演算が完了される。
By repeating the above process as many times as the number of elements to be processed, the vector operation specified by the operation specification part 206 in the instruction word is completed.

なお、命令語中の演算指定部分206は、命令制御部1
でのベクトル命令語の解読に伴って演算部3に通知され
る。
Note that the operation specification part 206 in the instruction word is
The calculation unit 3 is notified of the decoding of the vector instruction word at step.

次に、 Vl(1)XA2=V3(1) のようにオペランド2がスカラデータである場合、つま
りスカラデータ指示ビット311J<O、スカラデータ
指示ビット32が1の場合の動作について説明する。
Next, the operation when operand 2 is scalar data as in Vl(1)XA2=V3(1), that is, when scalar data instruction bit 311J<O and scalar data instruction bit 32 is 1, will be described.

スカラデータ指示ビット32の制御により、ベクトルア
ドレスデータレジスタ12に保持されているオペラン−
ド2のスカラデータ220がスカラデータチェック回路
42に送られ、オペランド2のスカラデータ220の値
がチェックされる。スカラデータチェノク回路42の出
力結果は、演算指定レジスタ10に保持されているベク
トル演算の種類コードとともにベクトル演算処理変更回
路50に送出される。
The operand data held in the vector address data register 12 is controlled by the scalar data instruction bit 32.
The scalar data 220 of operand 2 is sent to the scalar data check circuit 42, and the value of the scalar data 220 of operand 2 is checked. The output result of the scalar data check circuit 42 is sent to the vector operation processing change circuit 50 together with the vector operation type code held in the operation designation register 10.

ベクトル演算処理変更回路50では、ベクトル演算の処
理の変更が可能であるか否かのチェ7りが行われ、処理
の変更が可能な場合にはベクトル演算処理変更要求とと
もにベクトル演算の処理の変更内容がベクトル演算処理
変更回路50から信号線L4を介して演算部3に通知さ
れる。
The vector arithmetic processing change circuit 50 checks whether or not the vector arithmetic process can be changed. If the process can be changed, a vector arithmetic process change request is sent and the vector arithmetic process is changed. The contents are notified from the vector arithmetic processing change circuit 50 to the arithmetic unit 3 via the signal line L4.

いま、オペランド2がスカラデータであるVl(1) 
 XA2=V3(+) のベクトル命令において、スカラデータチェノク回路4
2でのオペランド2のスカラデータ220の値A2のチ
ェックの出力結果が0であったとする。
Now, Vl(1) where operand 2 is scalar data
In the vector instruction of XA2=V3(+), the scalar data chenok circuit 4
Assume that the output result of checking the value A2 of the scalar data 220 of the operand 2 in step 2 is 0.

この場合、オペランド1のベクトル要素の主記憶装置7
からの続出しが抑止されるとともに、ベクトルアドレス
レジスタ13に保持されているオペランド3のベクトル
要素の先頭アドレス217とベクトル要素間距離レジス
タ23に保持されているオペランド3のベクトル要素間
距離218とがセレクタS4およびS5を介して加算器
80で逐次足し込まれ、順次オペランド3のベクトル要
素のアドレスが生成される。オペランド3のベクトル要
素のアドレスは、順次レジスタ81および信号線L3を
介してバッファ制御部2に供給される。
In this case, the main memory 7 of the vector element of operand 1
The start address 217 of the vector element of operand 3 held in the vector address register 13 and the inter-vector element distance 218 of operand 3 held in the inter-vector element distance register 23 are suppressed. The adder 80 sequentially adds the addresses via selectors S4 and S5, and the addresses of the vector elements of operand 3 are sequentially generated. The addresses of the vector elements of operand 3 are sequentially supplied to buffer control unit 2 via register 81 and signal line L3.

演算部3はベクトル演算の結果であるOを発生させ、オ
ペランド3のベクトル要素のリクエストを受けたバッフ
ァ制御部2とシステム制?il装置6との制御により、
主記憶装置7の該当するアドレス位置にベクトル演算の
結果0が順次格納されてベクトル演算が完了する。
The arithmetic unit 3 generates O, which is the result of the vector operation, and communicates with the buffer control unit 2, which received the request for the vector element of the operand 3, and the system system? By controlling with the il device 6,
The vector operation results 0 are sequentially stored in the corresponding address locations of the main storage device 7, and the vector operation is completed.

AIXV2(+)=V3(1) や A1+V2(1)−V3(r) 等のベクトル命令において、A1の値が0であることが
検出された場合にも上述と同様の処理が行われる。
In a vector instruction such as AIXV2(+)=V3(1) or A1+V2(1)-V3(r), the same processing as described above is performed when it is detected that the value of A1 is 0.

その他、 Vl(1)XA2=V3(1)。others, Vl(1)XA2=V3(1).

AIXV2(1)−V3(1)。AIXV2(1)-V3(1).

Vl(1)÷A2−V3(f) 等のベクトル命令において、AIおよびA2の値が1で
あることが検出された場合には、Vl(1)=V3(1
) もしくは V2(+)−V3([) のヘクトル移送命令に変更される。
In a vector instruction such as Vl(1)÷A2-V3(f), if it is detected that the values of AI and A2 are 1, then Vl(1)=V3(1
) or changed to V2(+)-V3([) hector transfer command.

オペランドとしてスカラデータが用いられている乗算お
よび除算のベクトル演算において、スカラデータの値が
2″であること力<1食出された場合には、乗算および
除算のベクトル演算の代わりにシフト演算に変更される
場合もある。
In multiplication and division vector operations where scalar data is used as an operand, if the value of the scalar data is 2'' and a force < 1 is encountered, a shift operation is used instead of the multiplication and division vector operations. Subject to change.

次に、オペランドlおよび2がともにスヵラデータであ
るような SR+ΣAlxA2=SR (内積演算)のベクトル命令について述べる。SRは科
学演算レジスタである。この場合は、スヵらデータ指示
ビット31および32の値はともに1である。
Next, a vector instruction of SR+ΣAlxA2=SR (inner product operation) in which operands 1 and 2 are both scalar data will be described. SR is a scientific operation register. In this case, the values of SCAR to data indication bits 31 and 32 are both 1.

スカラデータ指示ビフト31および32の制御によりベ
クトルアドレスデータレジスタ11および12に保持さ
れているスカラデータAlおよびA2がそれぞれスカラ
データチェック回路41および42に送られ、スカラデ
ータA1およびA2の値がチェックされる。
Under the control of scalar data instruction bits 31 and 32, scalar data Al and A2 held in vector address data registers 11 and 12 are sent to scalar data check circuits 41 and 42, respectively, and the values of scalar data A1 and A2 are checked. Ru.

いま、スカラデータA1およびA2の値のチェック結果
がともに0でなかったとする。スヵラデークチェノク回
路41および42の出力結果は、演算指定レジスタ1o
に保持されているベクトル演算の種類コードとともにベ
クトル演算処理変更回路5゜に送出され、ベクトル演算
処理変更要求とともにベクトル演算の処理の変更内容か
ベクトル演算処理変更回路50から信号線L4を介して
演算部3に通知される。
Now, assume that the results of checking the values of scalar data A1 and A2 are both not 0. The output results of the scalar data check circuits 41 and 42 are stored in the operation specification register 1o.
It is sent to the vector operation processing change circuit 5° along with the vector operation type code held in the vector operation processing change circuit 50, and the vector operation processing change request is sent to the vector operation processing change circuit 50 via the signal line L4. Department 3 will be notified.

これと同時に、ヘクトルアドレスデータレジスタ11お
よび12に保持されているオペランド1および2のスカ
ラデータA1およびA2がセレクタS6およびS7を介
してそれぞれレジスタ71および72に読み出され、ベ
クトル演算処理変更回路50の制御により演算部3に供
給される。セレクタs6およびS7は、スカラデータ指
示ビ7ト31および32の値1によってそれぞれベクト
ルアドレスデータレジスタ11および12側を向いてい
る。
At the same time, scalar data A1 and A2 of operands 1 and 2 held in vector address data registers 11 and 12 are read out to registers 71 and 72 via selectors S6 and S7, respectively, and vector operation processing change circuit 50 The signal is supplied to the arithmetic unit 3 under the control of. Selectors s6 and S7 are directed toward vector address data registers 11 and 12, respectively, due to the value 1 of scalar data instruction bits 31 and 32.

オペランドlおよび2のスカラデータA1およびA2を
受は取った演算部3は、ベクトル演算処理変更回路50
によって示された新たなベクトル演算処理過程に従って
、まずAlXA2の演算を行い、その結果に処理すべき
要素数の値を乗じる。
The arithmetic unit 3 that has received the scalar data A1 and A2 of the operands l and 2 is connected to the vector arithmetic processing change circuit 50.
According to the new vector arithmetic processing process shown by, first the AlXA2 arithmetic is performed, and the result is multiplied by the value of the number of elements to be processed.

次に、上記演算で得られた結果と科学演算レジスタSR
の値とを足し込み、結果を科学演算レジスタSRに格納
してベクトル命令を終了させる。
Next, the result obtained from the above operation and the scientific operation register SR
and the result is stored in the scientific operation register SR, and the vector instruction is completed.

もし、スカラデータA1およびA2のいずれか一方のイ
直がOであることがベクトルデータチェック回路41も
しくは42で検出された場合は、ベクトル演算処理変更
回路50は即座にベクトル命令を終了させる。
If the vector data check circuit 41 or 42 detects that the value of one of the scalar data A1 and A2 is O, the vector arithmetic processing change circuit 50 immediately terminates the vector instruction.

以上述べた例は、はんの−例であり、オペランドにスカ
ラデータが用いられているベクトル命令において性能向
上が可能な各種のベクトル演算処理変更パターンがベク
トル演算処理変更回路50で用意されている。
The above-mentioned example is a basic example, and the vector arithmetic processing change circuit 50 prepares various vector arithmetic processing change patterns that can improve the performance of vector instructions that use scalar data as operands. .

前述のオペランド2がスカラデータであるVIH)xA
2=V3(1) のベクトル命令において、ベクトル演算処理変更を行わ
ない場合は、通常のベクトル命令の処理と同様に、オペ
ランド1のベクトル要素の続出しリクエストがヘクトル
アドレスデータレジスタ11に保持されているオペラン
ド1のベクトル要素の先頭アドレス213とベクトル要
素間距離レジスタ21に保持されているオペランド1の
ベクトル要素間距離214とから逐次加算器80で生成
され、レジスタ81を介してバッファ制御部2に送出さ
れ、上記j171置7からオペランド1のベクトル要素
の先行続出しが行われる。
VIH)xA where the above operand 2 is scalar data
2=V3(1), if the vector operation processing is not changed, the request for successive vector elements of operand 1 is held in the hector address data register 11, as in normal vector instruction processing. It is generated by the adder 80 sequentially from the start address 213 of the vector element of the operand 1 stored in the operand 1 and the inter-vector element distance 214 of the operand 1 held in the inter-vector element distance register 21, and sent to the buffer control unit 2 via the register 81. The vector elements of operand 1 are sequentially read out from j171 and 7.

この動作と並行して、スカラデータ指示ビフト32がセ
レクタS7を制御して、ベクトルアドレスデータレジス
タ12に保持されているオペランド2のスカラデータ2
20がレジスタ72に読み出される。
In parallel with this operation, the scalar data instruction bit 32 controls the selector S7 to select the scalar data 2 of the operand 2 held in the vector address data register 12.
20 is read into register 72.

ヘクトルバソファ61にオペランド1のベクトル要素が
蓄えられ始めると、セレクタs6を介してオペランドl
のベクトル要素がレジスタ71に読み出され、オペラン
ドlのベクトル要素とオペランド2のスカラデータ22
0とが演算部3に供給され、演算指定部分206で指定
された所定の演算が行われる。
When the vector elements of operand 1 begin to be stored in the hector bus sofa 61, operand l is
The vector element of operand l and the scalar data 22 of operand 2 are read out to the register 71.
0 is supplied to the calculation section 3, and a predetermined calculation specified by the calculation specification section 206 is performed.

これと同時に、次に用いられるオペランド1のベクトル
要素がヘクトルバソファ61からレジスタ71に読み出
され、オペランドlのベクトル要素とオペランド2のス
カラデータ220とが順次演算部3に供給される。
At the same time, the vector element of operand 1 to be used next is read from the hector bath sofa 61 to the register 71, and the vector element of operand 1 and the scalar data 220 of operand 2 are sequentially supplied to the calculation unit 3.

演算結果は、オペランド1と同様に送出されるオペラン
ド3のベクトル要素のリクエストを受けたバッファ制御
部2とシステム制御装置6との制御により、主記憶装置
7の該当するアドレス位置に順次格納される。
The operation results are sequentially stored in the corresponding address locations of the main storage device 7 under the control of the buffer control unit 2 and the system control device 6, which have received a request for the vector element of the operand 3, which is sent out in the same way as the operand 1. .

〔発明の効果〕〔Effect of the invention〕

以上説明したように本発明は、スカラデータの値をチェ
ックするスカラデータチェック手段と、ベクトル演算の
種類を指定するコードとスカラデータチェンク回路の結
果とからベクトル演算の処理を変更させる処理変更手段
とを設けることにより、オペランドにスカラデータを用
いるベクトル命令の処理の最適化を可能にし、ベクトル
命令の性能を最大限に向上できる効果がある。
As explained above, the present invention includes a scalar data checking means for checking the value of scalar data, and a processing changing means for changing the processing of a vector operation based on a code specifying the type of vector operation and the result of a scalar data change circuit. By providing this, it is possible to optimize the processing of vector instructions that use scalar data as operands, and there is an effect that the performance of vector instructions can be improved to the maximum.

【図面の簡単な説明】[Brief explanation of drawings]

第1図は本発明の一実施例のベクトル命令処理装置の要
部をなすベクトル命令制御部を詳細に示すブロック図、 第2図は本発明の一実施例のベクトル命令処理装置を含
む演算処理装置全体のブロック図、第3図は本実施例の
ベクトル命令処理装置におけるベクトル命令形式を示す
図である。 図において、 l・・・・・命令制御部、 2・・・・・バッファ制御部、 3・・・・・演算部、 4・・・・・制御記憶部、 5・・・・・ベクトル命令制御部、 6・・・・・システム制御装置、 7・・・・・主記憶装置、 lO・・・・・演算指定レジスタ、 11、12・・・ベクトルアドレスデータレジスタ、I
3・・・・・ベクトルアドレスレジスタ、21、22.
23・ベクトル要素間距離レジスタ、31、32・・・
スカラデータ指示ビット、41、42・・・スカラデー
タチェック回路、50・・・・・ベクトル演算処理変更
回路、61、62・・・ベクトルバッファ、 80・・・・・加算器、 ?1.72.8トレジスタ、 81〜S7・セレクタ、 201  ・ ・ ・ ・命令コード、203  ・・
・・基底レジスタ番号、204  ・・・・相対変位ア
ドレス、205  ・ ・ ・ ・ベクトル命令コード
、206  ・・・・演算指定部分、 207.208  ・・スカラデータを指定するフラグ
、209  ・・・・ベクトル記述子アドレスの基底ア
ドレス、 210.211.212  ・ベクトル記述子アドレス
、213.215,217  ・ベクトル要素の先頭ア
ドレス、214.216,218  ・ベクトル要素間
距離、219.220 ・・・スカラデータ、230 
 ・・・・・加算器である。
FIG. 1 is a block diagram showing in detail a vector instruction control unit that is a main part of a vector instruction processing device according to an embodiment of the present invention, and FIG. 2 is a calculation process including the vector instruction processing device according to an embodiment of the present invention. FIG. 3, a block diagram of the entire device, is a diagram showing the vector instruction format in the vector instruction processing device of this embodiment. In the figure, l...Instruction control unit, 2...Buffer control unit, 3...Arithmetic unit, 4...Control storage unit, 5...Vector instruction Control unit, 6...System control device, 7...Main storage, lO...Operation designation register, 11, 12...Vector address data register, I
3...Vector address register, 21, 22.
23・Vector element distance register, 31, 32...
Scalar data instruction bits, 41, 42...scalar data check circuit, 50...vector arithmetic processing change circuit, 61, 62...vector buffer, 80...adder, ? 1.72.8 register, 81-S7 selector, 201 ・ ・ ・ ・ instruction code, 203 ・ ・
...Base register number, 204 ...Relative displacement address, 205 ...Vector instruction code, 206 ...Arithmetic specification part, 207.208 ...Flag specifying scalar data, 209 ... Base address of vector descriptor address, 210.211.212 ・Vector descriptor address, 213.215,217 ・Start address of vector element, 214.216,218 ・Distance between vector elements, 219.220 ... Scalar data , 230
...It is an adder.

Claims (1)

【特許請求の範囲】 複数のベクトル要素を記憶装置より順次読み出して共通
な演算処理を繰り返し実行する演算処理装置において、 ベクトル演算の種類を指定するコードを保持する種類コ
ード保持手段と、 オペランドにスカラデータが指定されている場合にこの
スカラデータの値をチェックするスカラデータチェック
手段と、 前記ベクトル演算の種類を指定するコードと前記スカラ
データチェック手段の結果とからベクトル演算の処理を
変更させる処理変更手段と、を含むことを特徴とするベ
クトル命令処理装置。
[Scope of Claim] An arithmetic processing device that sequentially reads a plurality of vector elements from a storage device and repeatedly executes common arithmetic processing, comprising a type code holding means that holds a code specifying a type of vector operation, and a scalar operand. a scalar data checking means for checking the value of the scalar data when data is specified; and a process change for changing the processing of the vector operation based on a code specifying the type of the vector operation and the result of the scalar data checking means. A vector instruction processing device comprising: means.
JP29462685A 1985-12-27 1985-12-27 Processor for vector instruction Pending JPS62154172A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP29462685A JPS62154172A (en) 1985-12-27 1985-12-27 Processor for vector instruction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP29462685A JPS62154172A (en) 1985-12-27 1985-12-27 Processor for vector instruction

Publications (1)

Publication Number Publication Date
JPS62154172A true JPS62154172A (en) 1987-07-09

Family

ID=17810190

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29462685A Pending JPS62154172A (en) 1985-12-27 1985-12-27 Processor for vector instruction

Country Status (1)

Country Link
JP (1) JPS62154172A (en)

Similar Documents

Publication Publication Date Title
US4704678A (en) Function set for a microcomputer
EP0426393B1 (en) Instructing method and execution system
US4001788A (en) Pathfinder microprogram control system
JPH0371337A (en) Microprocessor circuit
US3668651A (en) Working device code method of i/o control
EP0080901A2 (en) Data processing apparatus
JP3237858B2 (en) Arithmetic unit
US4954947A (en) Instruction processor for processing branch instruction at high speed
JPH0332818B2 (en)
JPH03286332A (en) Digital data processor
JPH0319986B2 (en)
US5390306A (en) Pipeline processing system and microprocessor using the system
JPS5826584B2 (en) data processing equipment
US6584514B1 (en) Apparatus and method for address modification in a direct memory access controller
US4723258A (en) Counter circuit
JPS62154172A (en) Processor for vector instruction
JPH0830971B2 (en) Programmable controller
JP3511529B2 (en) Complex arithmetic processing unit
JP3710798B2 (en) Compound processing unit
JPH0522935B2 (en)
JPS62159272A (en) Processor for vector instruction
JPS59189430A (en) Interruption controlling system
JP2895892B2 (en) Data processing device
JPH0588887A (en) Data processor
JP2576589B2 (en) Virtual storage access control method