JPS5852265B2 - data processing equipment - Google Patents

data processing equipment

Info

Publication number
JPS5852265B2
JPS5852265B2 JP52001523A JP152377A JPS5852265B2 JP S5852265 B2 JPS5852265 B2 JP S5852265B2 JP 52001523 A JP52001523 A JP 52001523A JP 152377 A JP152377 A JP 152377A JP S5852265 B2 JPS5852265 B2 JP S5852265B2
Authority
JP
Japan
Prior art keywords
vector
instruction
control means
operand
operands
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
JP52001523A
Other languages
Japanese (ja)
Other versions
JPS5387640A (en
Inventor
峻 河辺
俊彦 小高
千賀彦 泉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP52001523A priority Critical patent/JPS5852265B2/en
Priority to US05/865,485 priority patent/US4172287A/en
Publication of JPS5387640A publication Critical patent/JPS5387640A/en
Publication of JPS5852265B2 publication Critical patent/JPS5852265B2/en
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units

Landscapes

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

Description

【発明の詳細な説明】 本発明はデータ処理装置に関し、特にデータの配列ベク
トルをオペランドとして用いるベクトル命令の処理にも
適したデータ処理装置に関する。
DETAILED DESCRIPTION OF THE INVENTION The present invention relates to a data processing device, and more particularly to a data processing device suitable for processing vector instructions that use array vectors of data as operands.

汎用目的を指向したデータ処理装置において上記のごと
きベクトル命令を処理するにはその高速計算の要求に十
分応えることができない。
In order to process the above-mentioned vector instructions in a general-purpose data processing device, it is not possible to sufficiently meet the demand for high-speed calculation.

従来このようなベクトル命令の処理には、ベクトル命令
処理専用の処理装置によって行なうことで要求に応えて
きた。
Conventionally, the processing of such vector instructions has been met by using a processing device dedicated to vector instruction processing.

しかしながら今日、汎用目的を指向したデータ処理装置
においてもベクトル命令を十分要求に応える速度で処理
するデータ処理装置が待望されている。
However, today, there is a long-awaited demand for a data processing apparatus that can process vector instructions at a speed that satisfies demands even in data processing apparatuses oriented for general purposes.

しかるに本発明の第]の目的は、汎用のデータ処理装置
においてもベクトル命令の高速処理を可能にしたデータ
処理装置を提供することにある。
However, a second object of the present invention is to provide a data processing device that enables high-speed processing of vector instructions even in a general-purpose data processing device.

本発明の他の目的はベクトル命令の処理を高速に処理す
るために、オペランドが連続して使用されるベクタかど
うかをアドレス増加値により検出する装置を有し、連続
して使用する場合は専用のベクトルバッファにオペラン
ドを取り込み、オペランドがとびとびに使用される場合
はバッファメモリによりオペランドを読み出すことによ
ってベクトル命令のオペランドのアクセスを高速化する
ことにある。
Another object of the present invention is to provide a device for detecting whether or not an operand is a vector that is used continuously based on an address increment value, in order to process vector instructions at high speed. The object of the present invention is to speed up access to the operands of vector instructions by loading the operands into a vector buffer, and reading the operands from the buffer memory when the operands are used intermittently.

そのために本発明の主な特徴は、一般の汎用データ処理
装置が備えるメモリ手段、命令制御手段および演算手段
の他に、ベクトル命令のデコードならびにベクトル演算
数の制御を行なうベクトル命令制御手段を備える。
To this end, the main feature of the present invention is that, in addition to the memory means, instruction control means, and arithmetic means included in a general-purpose data processing device, the present invention includes vector instruction control means for decoding vector instructions and controlling the number of vector operations.

本発明におけるメモリ手段は命令語ならびにオペランド
を格納し、命令制御手段は該メモリ手段より命令語を読
み出してデコードを行なう。
The memory means in the present invention stores instruction words and operands, and the instruction control means reads out the instruction words from the memory means and decodes them.

該命令制御手段はさらにデコードされた命令がベクトル
命令以外の場合には該命令に従った演算を演算手段に行
なわせる。
The instruction control means further causes the arithmetic means to perform an operation according to the decoded instruction when the instruction is other than a vector instruction.

しかしデコードされた命令がベクトル命令の場合には以
後の制御をベクトル命令制御手段に引き縦かれる。
However, if the decoded instruction is a vector instruction, subsequent control is deferred to the vector instruction control means.

ベクトル命令制御手段においては、命令制御手段より制
御を引き縦いでベクトル命令のデコードとベクトル演算
数の制御を行ない、これに従って演算手段にベクトル演
算を行なわしめる。
The vector instruction control means decodes vector instructions and controls the number of vector operations under control from the instruction control means, and causes the operation means to perform vector operations accordingly.

従って演算手段はベクトル命令か否かによってその制御
を受ける手段は異なるけれども、いずれの命令によって
も共用されることとなる。
Therefore, although the means controlled by the arithmetic means differs depending on whether the instruction is a vector instruction or not, the arithmetic means is shared by all instructions.

本発明の他の特徴は、ベクトル命令により与えられるベ
クトルオペランドのアドレスとオペランドアドレスの増
分値(インクリメント値)を格納するレジスタを有し、
インクリメント値よりオペランドが連続しているかどう
かを検出し、連続の場合は章用のベクトルバッファを用
いてオペランドをあらかじめ方り込む制御を行なうこと
により、ベクトル命令の演算を高速に処理することを可
能にしている。
Another feature of the present invention is that the invention has a register that stores an address of a vector operand given by a vector instruction and an increment value of the operand address;
It is possible to process vector instruction operations at high speed by detecting whether or not the operands are consecutive based on the increment value, and if they are consecutive, controlling the operands in advance using a chapter vector buffer. I have to.

以下本発明を一実施例により詳細に説明する。The present invention will be explained in detail below using one example.

第1図は本発明による処理装置の一横取例を示す。FIG. 1 shows an example of a processing apparatus according to the present invention.

1は命令制御ユニット、2は演算ユニット、3は記憶制
御ユニット、4はメインメモリ5はベクトル命令制御ユ
ニット、6は保守制御ユニットである。
1 is an instruction control unit, 2 is an arithmetic unit, 3 is a storage control unit, 4 is a main memory 5 is a vector instruction control unit, and 6 is a maintenance control unit.

いまベクトル命令以外の通常の命令語の処理の流れを簡
単に述べる。
We will now briefly describe the processing flow for ordinary commands other than vector commands.

命令語はメインメモリ4に格納されているが、命令制御
ユニット1により記憶制御ユニット3を経由して命令語
が命令制御ユニット1に取り込まれる。
The command word is stored in the main memory 4, and is taken into the command control unit 1 via the storage control unit 3.

この後、命令語は命令制御ユニット1によって命令の解
読(デコード)、オペランド・アドレスの計算が行なわ
れ、オペランドの読み出しと命令の演算が演算ユニット
2によって実行される。
Thereafter, the instruction control unit 1 decodes the instruction and calculates the operand address, and the arithmetic unit 2 reads the operand and executes the operation of the instruction.

オペランドの読み出しは記憶制御ユニット3を経由して
行なわれる。
Reading of the operands takes place via the storage control unit 3.

本発明は、メインメモリ4内の大きな領域をオペランド
とするベクトル命令の処理に対して効果がある。
The present invention is effective for processing vector instructions that use a large area in the main memory 4 as an operand.

ベクトル命令語の処理も通常の命令語の処理と同じく、
命令制御ユニット1によって命令語の取り込み、命令の
解読が行なわれる。
Vector instruction word processing is the same as normal instruction word processing.
The command control unit 1 takes in command words and decodes the commands.

命令の解読によってベクトル命令と認識された場合、そ
の後の命令の制御は本発明の中心をなすベクトル命令制
御ユニット5によって行なわれる。
When the instruction is recognized as a vector instruction by decoding, subsequent instruction control is performed by the vector instruction control unit 5, which is the core of the present invention.

第2図に本実施例におけるベクトル命令101の形式を
示す。
FIG. 2 shows the format of the vector instruction 101 in this embodiment.

命令コード102は、ベクトル命令の場合も通常の命令
語と同様にある命令コード(本実施例ではF34)が与
えられる。
The instruction code 102 is given a certain instruction code (F34 in this embodiment) in the case of a vector instruction as well, as in the case of a normal instruction word.

カウント指定汎用レジスフ番号R1は汎用レジスタGR
の番号を示しているが、R1で示された汎用レジスタの
内容はベクトルのイニシャルカウント107を表わし、
R1+lで示された汎用レジスタの内容G1ベクトルの
演算長108を表わしている。
Count specified general register register number R1 is general register GR
The contents of the general-purpose register indicated by R1 represent the initial count of 107 for the vector,
The content of the general-purpose register indicated by R1+l represents the operation length 108 of the G1 vector.

ベクトル指令指定汎用レジスフ番号B2も汎用レジスタ
の番号を示しているが、この汎用レジスタの内容のベク
トル指令部分110とD2で示されるベクトル指令デー
タ部分が加算動作112で加算されてベクトル指令コー
ド111となる。
The vector command designation general-purpose register number B2 also indicates the number of the general-purpose register, and the vector command part 110 of the contents of this general-purpose register and the vector command data part indicated by D2 are added in an addition operation 112 to become a vector command code 111. Become.

このベクトル指令コード111はベクトル演算の種類コ
ード(加算演算、乗算、除算、内積演算など)を示す。
This vector command code 111 indicates the type of vector operation code (addition operation, multiplication, division, inner product operation, etc.).

アドレスベクトル指令汎用レジスタ番号R3は汎用レジ
スフ番号を示しているが、この汎用レジスタの内容のア
ドレスベクトルのアドレス109によってアドレスベク
トル114のアドレスが指示される。
The address vector command general register number R3 indicates a general register number, and the address of the address vector 114 is specified by the address 109 of the address vector in the contents of this general register.

アドレスベクトル114は本実施例では3つのオぺラン
ドベクトルテーブルアドレスから構成される。
In this embodiment, the address vector 114 is composed of three operand vector table addresses.

3つとは第1オペランドベクトルテーブルアドレス11
5、第2オブランドベクトルテーブルアドレス116、
第3オペランドベクトルテーブルアドレス117を示し
ている。
The three are the first operand vector table address 11.
5, second obland vector table address 116,
A third operand vector table address 117 is shown.

これらは各オペランドのベクトルテーブルのアドレスを
示している。
These indicate the address of the vector table for each operand.

第2図の例では第2オペランドについて図示しているが
、第1オペランド第3オペランドの場合も同様である。
In the example of FIG. 2, the second operand is illustrated, but the same applies to the case of the first operand and the third operand.

第2オペランドベクトルテーブルアドレス116に示さ
れたアドレスによって第2オペランドベクトルテーブル
118が指示される。
The address indicated in second operand vector table address 116 points to second operand vector table 118 .

第2オペランドベクトルテーブル118は第2オペラン
ド先頭ベクトルアドレス119c[2オペランドアドレ
スインクリメント値120から構成される。
The second operand vector table 118 is composed of the second operand start vector address 119c [2 operand address increment value 120].

第2オペランド先頭ベクトルアドレス119は第2オペ
ランドベクタル121の先頭アドレスを示している。
The second operand start vector address 119 indicates the start address of the second operand vector 121.

また、第2オペランドアドレスインクリメント値120
は第2オペランドのベクトルの使用ピッチを示す。
Also, the second operand address increment value is 120
indicates the pitch used for the vector of the second operand.

たとえば本実施例ではlワード−4バイト、アドレスは
バイトアドレスを示すとすれば、もし第2オペランドア
ドレスインクリメント値120の値が4ならば、第2オ
ペランドベクトルはlワードピッチで使用され、また8
ならば第2オペランドベクトルは2ワードピツチで使用
される。
For example, in this embodiment, if l words - 4 bytes and the address indicates a byte address, if the value of the second operand address increment value 120 is 4, the second operand vector is used with l word pitch, and 8
Then the second operand vector is used with a two-word pitch.

このベクトル命令の第2オペランドベクトルは必ずしも
先頭から使用されるとは限らなく、各ベクトルが連続し
て使用されるとも限らない。
The second operand vector of this vector instruction is not necessarily used from the beginning, and each vector is not necessarily used consecutively.

ベクトル命令の第2オペランドベクトルで最初に使用さ
れるベクトルエレメントアドレスは、ベクトルイニシャ
ルカウント107と第2オペランドアドレスインクリメ
ント値120とを乗算動作113で乗算した値に、第2
オペランド先頭ベクトルアドレス119を動作122で
加算したものである。
The vector element address first used in the second operand vector of a vector instruction is the vector initial count 107 multiplied by the second operand address increment value 120 by the multiplication operation 113, plus the second
This is the result of adding the operand head vector address 119 in operation 122.

第2図の例では、第2オペランドベクトル121のエレ
メントは1からnまで示されているが、最初に使用され
るベクトルエレメントは5であることが矢印で示されて
いる。
In the example of FIG. 2, the elements of the second operand vector 121 are shown from 1 to n, but the arrow indicates that the first vector element used is 5.

第3図に本実施例においてベクトル命令が命令制御ユニ
ット1で解読される様子を示す。
FIG. 3 shows how a vector instruction is decoded by the instruction control unit 1 in this embodiment.

命令語が命令レジスタ201に人って命令の解読が開始
され、デコーダ202でベクトル命令であることが解読
されると、まず、B2で示される汎用レジスタ番号がマ
ルチプレクサ203を通って、汎用レジスタ204の内
容であるベクトル指令部分が読み出され、レジスタ20
6にセットされる。
When the instruction word is entered in the instruction register 201 and the instruction is decoded, and the decoder 202 decodes it as a vector instruction, first, the general-purpose register number indicated by B2 passes through the multiplexer 203 and is stored in the general-purpose register 204. The vector command part which is the contents of is read out and stored in the register 20.
Set to 6.

また1)2で示される値はそのままレジスタ205にセ
ットされ、レジスタ206の内容と加算器207で加算
され、ベクトル指令コードとしてレジスタ208にセッ
トされ、L4を介してベクトル命令制御ユニット5に送
られる。
Also, 1) the value indicated by 2 is set as is in the register 205, added to the contents of the register 206 in the adder 207, set in the register 208 as a vector command code, and sent to the vector command control unit 5 via L4. .

次にR3で示される汎用レジスタ番号がマルチプレクサ
203を通って汎用レジスタ204の内容が読み出され
、アドレスベクトルのアドレスとしてレジスタ206に
セットされ、つづいてレジスタ208にセットされL1
4を介してベクトル命令制御ユニット5に送られる。
Next, the general-purpose register number indicated by R3 is passed through the multiplexer 203, the contents of the general-purpose register 204 are read out, set in the register 206 as the address of the address vector, and then set in the register 208, and L1
4 to the vector command control unit 5.

最後にR1およびR1+1で示される汎用レジスタの内
容が、それぞれベクトルイニシャルカウント・ベクトル
演算長としてレジスタ206にセットされ、レジスタ2
08.L4を介してベクトル命令制御ユニット5に送ら
れる。
Finally, the contents of general-purpose registers indicated by R1 and R1+1 are set in register 206 as vector initial count and vector operation length, respectively, and register 206 is set as vector initial count and vector operation length.
08. It is sent to the vector command control unit 5 via L4.

本発明の中心をなすものの1つはベクトル命令制御ユニ
ット5であるが第4図に本発明の一実施例を示すより詳
細なブロック図を示す。
One of the central elements of the present invention is the vector instruction control unit 5, and FIG. 4 shows a more detailed block diagram showing one embodiment of the present invention.

命令制御ユニット1で解読されたベクトル命令の解読情
報はL4を介してベクトル命令制御ユニット5に送られ
、さらに詳細な解読が行なわれる。
The decoding information of the vector instruction decoded by the instruction control unit 1 is sent via L4 to the vector instruction control unit 5 for further detailed decoding.

まず命令制御ユニット1から送られる情報のうち、ベク
トル指令コードは入力レジスタ401を通してデコーダ
402に送られる。
First, among the information sent from the instruction control unit 1, a vector command code is sent to the decoder 402 through the input register 401.

ベクトルイニシャルカウントは人力レジスタ401から
ベクトル力ワンタレジスタ404にセットされる。
The vector initial count is set from the human power register 401 to the vector power want register 404.

ベクトル演算長も入力レジスタ401からベクトル演算
長レジスタ405にセットする。
The vector operation length is also set from the input register 401 to the vector operation length register 405.

これらはベクトルの演算の回数をカウントし終了を制御
するのに用いられる。
These are used to count the number of vector operations and control termination.

アドレスベクトルのアドレスは人力レジスタ401から
ベクトルアドレスレジスタ408にいったんセットされ
、アドレス加算器410を通り、記憶制御ユニットイン
ターフェース制御器412を介し、L6を介して記憶制
御ユニット3に対してメモリリクエストが出される。
The address of the address vector is once set from the manual register 401 to the vector address register 408, passes through the address adder 410, passes through the storage control unit interface controller 412, and issues a memory request to the storage control unit 3 via L6. It will be done.

この読出しテ゛−タは第2図から理解されるようにアド
レスベクトルであり、記憶制御ユニット3よりL13を
介してレジスタ415にセットされる。
This read data is an address vector as understood from FIG. 2, and is set in the register 415 by the storage control unit 3 via L13.

このデータは第1.第2.第3オペランドベクトルテー
ブルアドレスとしてベクトルアドレスレジスタ408の
それぞれにセットされる。
This data is the first. Second. It is set in each of the vector address registers 408 as the third operand vector table address.

このらの値は再びアドレス加算器401、記憶制御イン
タフェース制御器412.L6を介して記憶制御ユニッ
ト3に対してメモリリクエストが出される。
These values are again sent to address adder 401, storage control interface controller 412 . A memory request is issued to the storage control unit 3 via L6.

この読み出しデータはオペランドベクトルテーブルであ
り、記憶制御ユニット3よりL13を介してレジスタ4
15にセットされる。
This read data is an operand vector table, and is sent from the storage control unit 3 to the register 4 via L13.
Set to 15.

オペランドベクトルテーブルは、オペランド先頭ベクト
ルアドレスとオペランドアドレスインクリメント値から
構成されている。
The operand vector table is composed of an operand start vector address and an operand address increment value.

このうちオペランドアドレスインクリメント値はレジス
タ415より演算ユニットインクフェース制器403に
送られると共に、レジスタ401にも移され、ベクトル
アドレスインクリメントレジスタ409にセットされる
Among these, the operand address increment value is sent from the register 415 to the arithmetic unit increment face controller 403, is also transferred to the register 401, and is set in the vector address increment register 409.

オペランド先頭ベクトルアドレスはベクトルカウントレ
ジスタ404内のベクトルイニシャルカウントと共に演
算ユニットインタフェース制御器403へ送うれ、そこ
からこの3つのデータがL5を介して演算ユニット2へ
送られる。
The operand start vector address is sent to the arithmetic unit interface controller 403 together with the vector initial count in the vector count register 404, and from there these three data are sent to the arithmetic unit 2 via L5.

演算ユニット2の内容詳細は省略するが、衆知の汎用大
型ディジタル計算機の演算ユニットと同様に、加算器、
シフター、乗算器、バイト演算器、ワークレジスタなど
から構成されている。
The details of the calculation unit 2 will be omitted, but like the calculation unit of a well-known general-purpose large digital computer, it includes an adder,
It consists of shifters, multipliers, byte arithmetic units, work registers, etc.

ここでベクトル命令制御ユニット5から送られてきたデ
ータの乗算と加算を行ない結果をL14を介してベクト
ル命令制御ユニット5へ送る。
Here, the data sent from the vector instruction control unit 5 is multiplied and added, and the results are sent to the vector instruction control unit 5 via L14.

データは人力レジスタ401に入り、その後ベクトルア
ドレスレジスタ408にセットされる。
Data enters the manual register 401 and is then set into the vector address register 408.

オペランドペクトテーブルは第11第2、第3の3つが
あり、それぞれについて上記の動作が繰り返えされる。
There are three operand pect tables, 11th, 2nd, and 3rd, and the above operation is repeated for each.

アドレスインクリメントレジスタ409にはオペランド
ベクトルアドレスのインクリメント値が第1、第2、第
3オペランドについて格納されている。
The address increment register 409 stores increment values of the operand vector address for the first, second, and third operands.

これらの値がレジスタにセットされる際にアドレス連続
検出器411により単精度(lワード)演算でインクリ
メント値が4ならドレス連続と見なし、倍精度(2ワー
ド)演算でインクリメント値が8ならアドレス連続と見
なし、第1、第2、第3オペランドのそれぞれに対しラ
ッチ416、ラッチ417、ラッチ418をセットする
When these values are set in the register, the address continuity detector 411 determines that if the increment value is 4 in single precision (l word) operation, it is considered as continuous address, and if the increment value is 8 in double precision (2 word) operation, it is considered as continuous address. latches 416, 417, and 418 are set for the first, second, and third operands, respectively.

i1% 第2、第3オペランドアドレスはベクトルアド
レスレジスタ408に人っており、これとベクトルアド
レスインクリメントレジスタ409の内容を加算したも
のが記憶制御ユニットインクフェース制御器412を通
ってL6を介してオペランドリクエストとして記憶制御
ユニット3へ送られる。
i1% The second and third operand addresses are stored in the vector address register 408, and the sum of these and the contents of the vector address increment register 409 is passed through the memory control unit ink face controller 412 and sent to the operand via L6. It is sent to the storage control unit 3 as a request.

記憶制御ユニット3の内容詳細は省略するが、汎用大型
ディジタル計算機の記憶制御ユニットと同様にアドレス
変換機構、高速小容量メモリ(バッファメモリ)などか
ら構成されている。
Although the details of the storage control unit 3 will be omitted, it is composed of an address translation mechanism, a high-speed small capacity memory (buffer memory), etc., similar to the storage control unit of a general-purpose large digital computer.

本発明の重要な点はベクトル命令制御ユニット5から記
憶制御ユニット3に対しオペランドリクエストを出す際
に、アドレスが連続の場合即ち、ラッチ416〜418
がセットされている場合はベクトルバッファ413,4
14を用い、そうでないアドレスが非連続の場合はバッ
ファメモリを利用する点である。
An important point of the present invention is that when issuing an operand request from the vector instruction control unit 5 to the storage control unit 3, if the addresses are consecutive, latches 416 to 418
is set, the vector buffer 413,4
14, and if the addresses are non-contiguous, a buffer memory is used.

たとえば第2オペランドを例にとると、アドレスが連続
しているかどうかはラッチ417に反映されている。
For example, taking the second operand as an example, whether or not the addresses are consecutive is reflected in the latch 417.

これを用いてアドレス連続時は、メインメモリ4のデー
タを記憶制御ユニット3を経由して第1ベクトルバツフ
ア413に入れ、第1ベクトルバツフア413が満杯に
なるまでリクエストが続けられる。
Using this, when addresses are continuous, the data in the main memory 4 is put into the first vector buffer 413 via the storage control unit 3, and requests are continued until the first vector buffer 413 is full.

演算ユニット2がオペランドを必要とする時は演算ユニ
ット2内でラッチ416〜418をテストし、連続を示
しているときは第1ベクトルバツフア413に演算ユニ
ット2から読み出し要求を出して第1ベクトルバツフア
413の内容が読み出され、演算ユニットインタフェー
ス制御器403を通しL5を介して演算ユニット2に送
られる。
When the arithmetic unit 2 requires an operand, the latches 416 to 418 are tested within the arithmetic unit 2, and if continuity is indicated, a read request is issued from the arithmetic unit 2 to the first vector buffer 413 to read the first vector. The contents of buffer 413 are read and sent to computing unit 2 via L5 through computing unit interface controller 403.

第4図には第1ベクトルバツフア413と第2ベクトル
バツフア414がある。
In FIG. 4, there are a first vector buffer 413 and a second vector buffer 414.

これは実施例のベクトル命令が3オペランド形式で2オ
ペランドがフェッチ用に1オペランドがストア用に用い
られ、このうちのフェッチ用のベクトルバッファとして
2つ存在する。
This is because the vector instruction in this embodiment has a three-operand format, two operands are used for fetching, and one operand is used for storing, and two of these operands exist as vector buffers for fetching.

これらのベクトルバッファはオペランドデータのプリフ
ェッチ用に用いられ、演算に必要なとき読み出され、L
5を介して演算ユニットに送られる。
These vector buffers are used for prefetching operand data, are read out when necessary for an operation, and are
5 to the arithmetic unit.

アドレスが非連続の場合は演算ユニット2から記憶制御
ユニットインターフェース制御器412に要求を出して
オペランドアドレスを記憶制御ユニット3に送り出し、
オペランドがバッファメモリにある場合はバッファメモ
リから演算ユニット2にオペランドを送る。
If the addresses are non-consecutive, the arithmetic unit 2 issues a request to the storage control unit interface controller 412 to send the operand address to the storage control unit 3,
If the operand is in the buffer memory, the operand is sent from the buffer memory to the arithmetic unit 2.

バッファメモリにない場合はメインメモリ4からバッフ
ァメモリに転送し、そこからオペランドを演算ユニット
2に送る。
If the operand is not in the buffer memory, it is transferred from the main memory 4 to the buffer memory, and from there the operand is sent to the arithmetic unit 2.

なおメインメモリとバッファメモリは実質的に一つのメ
モリ手段としてとらえることができる。
Note that the main memory and buffer memory can be regarded as substantially one memory means.

ベクトルカウントレジスタ404には第2図で示したベ
クトルイニシャルカウント107がセットされ、ベクト
ル演算数レジスタ405には第2図で示したベクトル演
算数108がセットされる。
The vector count register 404 is set with the vector initial count 107 shown in FIG. 2, and the vector operation number register 405 is set with the vector operation number 108 shown in FIG.

1つの演算が終了するごとにベクトルカウントレジスタ
404の内容がカウンタ406で+1され、ベクトル演
算数レジスタ405の内容と比較器407で比較される
Each time one operation is completed, the contents of the vector count register 404 are incremented by 1 by a counter 406, and compared with the contents of the vector operation number register 405 by a comparator 407.

比較器407で比較され、内容が一致した場合は、演算
ユニットインタフェース制御器403とL5を介して演
算ユニットに演算の終了を制御する信号が送られる。
The comparator 407 compares them, and if the contents match, a signal is sent to the arithmetic unit via the arithmetic unit interface controller 403 and L5 to control the end of the arithmetic operation.

カウンタ406出力はベクトルカウントレジスタ404
にセットされ、該レジスタ404の内容を更新する。
The counter 406 output is the vector count register 404
is set to update the contents of the register 404.

以上説明したごとく本発明によれば、汎用の命令語を処
理するデータ処理装置にベクトル命令の演算を指令する
コードを解読するデコーダとベクトル演算数を制御する
装置を付加することによってデータの配列ベクトルをオ
ペランドとして用いるベクトル命令の処理を行なうこと
が可能になる。
As described above, according to the present invention, by adding a decoder for decoding a code for commanding vector instruction operations and a device for controlling the number of vector operations to a data processing device that processes general-purpose instruction words, data array vectors can be processed. It becomes possible to process vector instructions that use .

また使用するオペランドが連続している場合には専用の
ベクトルバッファを用いてブリフェッチを行すい、連続
していない場合はバッファメモリ(もしくはメインメモ
リ)を用いることによってオペランドのアクセスを高速
にすることが可能になる。
Also, if the operands to be used are consecutive, a dedicated vector buffer is used to perform the pre-fetch, and if they are not consecutive, access to the operands can be made faster by using buffer memory (or main memory). It becomes possible.

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

第1図は本発明の一実施例を示すデータ処理装置の全体
ブロック図、第2図は本実施例におけるベクトル命令形
式と各種レジスタ、オペランドとの関係を示す模式図、
第3図は本発明の主要な装置の一実施例を示すブロック
図、第4図は本発明の最も主要な装置の一実施例を示す
一層詳細なブロック図である。 第1図:1・・・・・・命令制御ユニット、2・・・・
・・演算ユニット、3・・・・・・記憶制御ユニット、
4・・・・・・メインメモリ、5・・・・・・ベクトル
命h 制御ユニット。 第4図;402・・・・・・デコーダ、404・・・・
・・ベクトルカウントレジスタ、405・・・・・・ベ
クトル演算数レジスタ、406・・・・・・カウンタ、
407・・・・・・比較器、408・・・・・・ベクト
ルアドレスレジスタ、409・・・・・・ベクトルアド
レスインクリメントレジスタ、410・・・・・・アド
レス加算器、411・・・・・・アドレス連続検出器、
413および414・・・・・・ベクトルバッファ。
FIG. 1 is an overall block diagram of a data processing device showing one embodiment of the present invention, and FIG. 2 is a schematic diagram showing the relationship between the vector instruction format, various registers, and operands in this embodiment.
FIG. 3 is a block diagram showing one embodiment of the main device of the present invention, and FIG. 4 is a more detailed block diagram showing one embodiment of the most main device of the invention. Figure 1: 1... command control unit, 2...
... Arithmetic unit, 3... Memory control unit,
4...Main memory, 5...Vector instruction h control unit. Fig. 4; 402... decoder, 404...
...Vector count register, 405...Vector operation number register, 406...Counter,
407...Comparator, 408...Vector address register, 409...Vector address increment register, 410...Address adder, 411...・Address continuity detector,
413 and 414...Vector buffer.

Claims (1)

【特許請求の範囲】 1 命令語ならびにオペランドを格納したメモリ手段と
、演算手段と、上記メモリ手段および演算手段に接続さ
れ、上記メモリ手段から読出された命令語をデコードし
、該命令がベクトル命令以外の命令であれば、該命令に
従った演算を上記演算手段に行なわせるために、上記演
算手段を制御するための命令制御手段と、該命令制御手
段および上記演算手段に接続され、上記命令制御手段で
デコードされた命令がベクトル命令であることによって
、該ベクトル命令に従ったベクトル演算を上記演算手段
に行なわせるために、上記演算手段を制御するためのベ
クトル命令制御手段とからなり、上記ベクトル命令制御
手段は、上記命令制御手段からのベクトル命令に従った
ベクトル演算を上記演算手段に行なわせるよう指示する
ための手段と、上記命令制御手段からのベクトル命令に
基いて、上記ベクトル演算のためのオペランドの読出し
を制御し、かつベクトル演算の回数を制御するためのベ
クトル演算数制御手段とを有することを特徴とするデー
タ処理装置。 2 命令語ならびにオペランドを格納したメモリ手段と
、命令制御手段と、ベクトル命令制御手段と、演算手段
とからなり、 上記命令制御手段は上記メモリ手段より命令語を読み出
してデコードし、該命令語がベクトル命令を指示してい
るとき、以後の制御を上記ベクトル命令制御手段へ引き
縦ぎ、ベクトル命令以外を指示しているとき、該命令に
従った演算を上記演算手段に行なわしめ、 上記ベクトル命令制御手段は上記命令制御手段から上記
の制御を引き継いでベクトル命令のデコードとベクトル
演算数の制御を行なうと共に、ベクトル命令から与えら
れる指令よりオペランドが連続しているかどうかを検出
し、連続している場合はオペランドを上記メモリ手段か
ら専用のベクトルバッファに予め取り込ませ、上記演算
手段は該ベクトル命令制御手段の制御のもとに上記ベク
トルバッファからオペランドを読み出してベクトル演算
を行ない、非連続の場合は上記メモリ手段からオペラン
ドを読み出してベクトル演算を行なうことを特徴とする
データ処理装置。
[Scope of Claims] 1. A memory means storing instruction words and operands, an arithmetic means, connected to the memory means and the arithmetic means, and decoding the instruction word read from the memory means, and decoding the instruction word as a vector instruction. If the instruction is other than the instruction, the instruction control means is connected to the instruction control means and the operation means for controlling the operation means, and the instruction control means is connected to the instruction control means and the operation means in order to cause the operation means to perform the operation according to the instruction. Since the instruction decoded by the control means is a vector instruction, the above-mentioned vector instruction control means controls the arithmetic means in order to cause the arithmetic means to perform a vector operation according to the vector instruction; The vector instruction control means includes means for instructing the arithmetic means to perform a vector operation in accordance with the vector instruction from the instruction control means, and means for instructing the arithmetic means to perform the vector operation based on the vector instruction from the instruction control means. 1. A data processing device comprising: vector operation number control means for controlling readout of operands for processing and controlling the number of vector operations. 2. Consisting of a memory means storing instruction words and operands, an instruction control means, a vector instruction control means, and an arithmetic means, the instruction control means reads out an instruction word from the memory means and decodes it, and the instruction word is When a vector instruction is specified, subsequent control is passed to the vector instruction control means, and when a vector instruction is specified, the calculation means is made to perform an operation according to the instruction, and the vector instruction is executed. The control means takes over the above control from the instruction control means and decodes the vector instruction and controls the number of vector operations, and also detects whether or not the operands are continuous based on the instructions given from the vector instruction, and determines whether the operands are continuous. In this case, the operand is loaded in advance from the memory means into a dedicated vector buffer, and the operation means reads the operand from the vector buffer and performs vector operation under the control of the vector instruction control means. A data processing device characterized in that it reads operands from the memory means and performs vector operations.
JP52001523A 1977-01-12 1977-01-12 data processing equipment Expired JPS5852265B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP52001523A JPS5852265B2 (en) 1977-01-12 1977-01-12 data processing equipment
US05/865,485 US4172287A (en) 1977-01-12 1977-12-29 General purpose data processing apparatus for processing vector instructions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP52001523A JPS5852265B2 (en) 1977-01-12 1977-01-12 data processing equipment

Publications (2)

Publication Number Publication Date
JPS5387640A JPS5387640A (en) 1978-08-02
JPS5852265B2 true JPS5852265B2 (en) 1983-11-21

Family

ID=11503855

Family Applications (1)

Application Number Title Priority Date Filing Date
JP52001523A Expired JPS5852265B2 (en) 1977-01-12 1977-01-12 data processing equipment

Country Status (2)

Country Link
US (1) US4172287A (en)
JP (1) JPS5852265B2 (en)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4302818A (en) * 1979-07-10 1981-11-24 Texas Instruments Incorporated Micro-vector processor
JPS5725069A (en) * 1980-07-21 1982-02-09 Hitachi Ltd Vector data processing equipment
JPS6057090B2 (en) * 1980-09-19 1985-12-13 株式会社日立製作所 Data storage device and processing device using it
US4371951A (en) * 1980-09-29 1983-02-01 Control Data Corporation Apparatus for converting serial input sparse vector format to parallel unpacked format for input to tandem arithmetic logic units
JPS57209570A (en) * 1981-06-19 1982-12-22 Fujitsu Ltd Vector processing device
JPS58181165A (en) * 1982-04-16 1983-10-22 Hitachi Ltd Vector operating processor
JPS5975365A (en) * 1982-10-22 1984-04-28 Hitachi Ltd Vector processing device
JPS59111569A (en) * 1982-12-17 1984-06-27 Hitachi Ltd Vector processing device
US4594682A (en) * 1982-12-22 1986-06-10 Ibm Corporation Vector processing
JPS59174948A (en) * 1983-03-25 1984-10-03 Toshiba Corp Information processing device
JPS6079468A (en) * 1983-10-07 1985-05-07 Nec Corp Data processor
US4791555A (en) * 1983-10-24 1988-12-13 International Business Machines Corporation Vector processing unit
JPH077385B2 (en) * 1983-12-23 1995-01-30 株式会社日立製作所 Data processing device
US4771380A (en) * 1984-06-22 1988-09-13 International Business Machines Corp. Virtual vector registers for vector processing system
US4704680A (en) * 1984-08-15 1987-11-03 Tektronix, Inc. Address computation system for updating starting addresses of data arrays in an array processor within an instruction cycle
US4890220A (en) * 1984-12-12 1989-12-26 Hitachi, Ltd. Vector processing apparatus for incrementing indices of vector operands of different length according to arithmetic operation results
JPS61173345A (en) * 1985-01-29 1986-08-05 Hitachi Ltd Computer system
CA1233260A (en) * 1985-03-13 1988-02-23 Chuck H. Ngai High performance parallel vector processor having a modified vector register/element processor configuration
US4745547A (en) * 1985-06-17 1988-05-17 International Business Machines Corp. Vector processing
US4760525A (en) * 1986-06-10 1988-07-26 The United States Of America As Represented By The Secretary Of The Air Force Complex arithmetic vector processor for performing control function, scalar operation, and set-up of vector signal processing instruction
JPS6353678A (en) * 1986-08-22 1988-03-07 Hitachi Ltd Vector processor
JP2760790B2 (en) * 1986-10-09 1998-06-04 株式会社日立製作所 Data processing device
WO1989003091A1 (en) * 1987-09-25 1989-04-06 Hitachi, Ltd. Method of sorting vector data and a vector processor adapted thereto
US4949250A (en) * 1988-03-18 1990-08-14 Digital Equipment Corporation Method and apparatus for executing instructions for a vector processing system
EP0334627A3 (en) * 1988-03-23 1991-06-12 Du Pont Pixel Systems Limited Multiprocessor architecture
EP0340901A3 (en) * 1988-03-23 1992-12-30 Du Pont Pixel Systems Limited Access system for dual port memory
US5056015A (en) * 1988-03-23 1991-10-08 Du Pont Pixel Systems Limited Architectures for serial or parallel loading of writable control store
US5210834A (en) * 1988-06-01 1993-05-11 Digital Equipment Corporation High speed transfer of instructions from a master to a slave processor
US5471593A (en) * 1989-12-11 1995-11-28 Branigin; Michael H. Computer processor with an efficient means of executing many instructions simultaneously
US5809552A (en) * 1992-01-29 1998-09-15 Fujitsu Limited Data processing system, memory access device and method including selecting the number of pipeline stages based on pipeline conditions
US5418973A (en) * 1992-06-22 1995-05-23 Digital Equipment Corporation Digital computer system with cache controller coordinating both vector and scalar operations
US11544214B2 (en) 2015-02-02 2023-01-03 Optimum Semiconductor Technologies, Inc. Monolithic vector processor configured to operate on variable length vectors using a vector length register

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5028733A (en) * 1973-07-13 1975-03-24

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3440611A (en) * 1966-01-14 1969-04-22 Ibm Parallel operations in a vector arithmetic computing system
US3794984A (en) * 1971-10-14 1974-02-26 Raytheon Co Array processor for digital computers
US3979728A (en) * 1973-04-13 1976-09-07 International Computers Limited Array processors
US3900723A (en) * 1974-05-28 1975-08-19 Control Data Corp Apparatus for controlling computer pipelines for arithmetic operations on vectors

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5028733A (en) * 1973-07-13 1975-03-24

Also Published As

Publication number Publication date
JPS5387640A (en) 1978-08-02
US4172287A (en) 1979-10-23

Similar Documents

Publication Publication Date Title
JPS5852265B2 (en) data processing equipment
US5168571A (en) System for aligning bytes of variable multi-bytes length operand based on alu byte length and a number of unprocessed byte data
JPH02227768A (en) Data processing system
JPH0412503B2 (en)
JPS623461B2 (en)
JPH03233630A (en) Information processor
KR920002573B1 (en) Data processor
JPS5925264B2 (en) Vector instruction processing method
JPS6134188B2 (en)
JPS61173345A (en) Computer system
JPH07110769A (en) Vliw type computer
JP2583614B2 (en) Vector arithmetic unit
JPS6028014B2 (en) microprocessor
JPH05173778A (en) Data processor
JPS5999552A (en) Microcomputer
JPS6047617B2 (en) information processing equipment
JPS6079468A (en) Data processor
JPS617976A (en) Vector operation processor
JPS5972545A (en) Microprogram control system
JPH03164945A (en) Data processor
JPH0234058B2 (en)
JPS6112287B2 (en)
JPS61143848A (en) Microprogram controller
JPS63153637A (en) Data processor
JPS58169247A (en) High-speed instruction reading system