JPS5852265B2 - data processing equipment - Google Patents
data processing equipmentInfo
- 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
Links
- 239000013598 vector Substances 0.000 claims description 164
- 239000000872 buffer Substances 0.000 claims description 24
- 238000000034 method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8061—Details on data memory access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent 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.
第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)
、演算手段と、上記メモリ手段および演算手段に接続さ
れ、上記メモリ手段から読出された命令語をデコードし
、該命令がベクトル命令以外の命令であれば、該命令に
従った演算を上記演算手段に行なわせるために、上記演
算手段を制御するための命令制御手段と、該命令制御手
段および上記演算手段に接続され、上記命令制御手段で
デコードされた命令がベクトル命令であることによって
、該ベクトル命令に従ったベクトル演算を上記演算手段
に行なわせるために、上記演算手段を制御するためのベ
クトル命令制御手段とからなり、上記ベクトル命令制御
手段は、上記命令制御手段からのベクトル命令に従った
ベクトル演算を上記演算手段に行なわせるよう指示する
ための手段と、上記命令制御手段からのベクトル命令に
基いて、上記ベクトル演算のためのオペランドの読出し
を制御し、かつベクトル演算の回数を制御するためのベ
クトル演算数制御手段とを有することを特徴とするデー
タ処理装置。 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.
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5028733A (en) * | 1973-07-13 | 1975-03-24 |
Family Cites Families (4)
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 |
-
1977
- 1977-01-12 JP JP52001523A patent/JPS5852265B2/en not_active Expired
- 1977-12-29 US US05/865,485 patent/US4172287A/en not_active Expired - Lifetime
Patent Citations (1)
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 |