JPH05108697A - Processing system/method for vector instruction with scalar operand - Google Patents

Processing system/method for vector instruction with scalar operand

Info

Publication number
JPH05108697A
JPH05108697A JP26670891A JP26670891A JPH05108697A JP H05108697 A JPH05108697 A JP H05108697A JP 26670891 A JP26670891 A JP 26670891A JP 26670891 A JP26670891 A JP 26670891A JP H05108697 A JPH05108697 A JP H05108697A
Authority
JP
Japan
Prior art keywords
data
scalar
vector
instruction
transfer
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.)
Withdrawn
Application number
JP26670891A
Other languages
Japanese (ja)
Inventor
Hideaki Fujimaki
秀明 藤巻
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP26670891A priority Critical patent/JPH05108697A/en
Publication of JPH05108697A publication Critical patent/JPH05108697A/en
Withdrawn legal-status Critical Current

Links

Landscapes

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

Abstract

PURPOSE:To process a vector instruction at a high speed by carrying out the transfer of the vector data end the vector instruction with a scalar operand. CONSTITUTION:A data transfer switch instruction part 801 detects a vector instruction with a scalar operand and interrupts the transfer of the vector data if a fact that a bus is busy to transfer the vector data. Thus the part 801 produces an instruction to transfer the scalar data instead of the vector data. Then a transfer instruction is started to transfer the vector data to a vector unit 30 from a scalar unit 20 via the bus 40. Then the vector instruction with a scalar operand which includes the scalar data in an input or output operand is started after the transfer of the vector data is started. Thus the transfer of the vector data is interrupted and the scalar data is transferred instead. Then the interrupted transfer of the vector data is started again when the end of the transfer of the scalar data is detected.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明はスカラオペランド付ベク
トル命令処理方式及び方法に係り、特に、主記憶装置か
ら読み出されスカラユニット内に保持されたベクトルデ
ータ、または、スカラユニット内に保持されたスカラデ
ータを、データバスによりベクトルユニットに転送し、
転送されたベクトルデータまたはスカラデータを入力オ
ペランド又は出力オペランドとするベクトル命令の処理
を行うスカラオペランド付ベクトル命令処理装置及び方
法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a vector instruction processing method and method with a scalar operand, and more particularly to vector data read from a main memory and held in a scalar unit or held in a scalar unit. Transfer scalar data to vector unit via data bus,
The present invention relates to a vector instruction processing device and method with a scalar operand for processing a vector instruction in which transferred vector data or scalar data is used as an input operand or an output operand.

【0002】[0002]

【従来の技術】従来、図6に示すように、ベクトルデー
タの格納された主記憶装置1と、読み出されたベクトル
データを保持するロード/ストア部6、スカラデータを
保持するスカラレジスタ7及び指示によりスカラデータ
又はベクトルデータの転送の切換えを行う切換え部65
を有し、スカラデータの処理を行うスカラユニット62
と、スカラデータ又はベクトルデータのどちらか一方の
転送を行うデータバス4と、前記バス4を介して転送さ
れたベクトルデータ又はスカラデータに関する演算を行
う演算部631を有し、ベクトルデータの処理を行うベ
クトルユニット63と、を設けたものである。従来例に
係るスカラユニット付ベクトル命令処理方式にあって
は、ベクトルユニット63の演算部631がベクトル演
算を行うために、前記スカラユニット62を通して前記
主記憶装置1から読み出したベクトルデータをデータバ
ス4を介して転送させる。その際、図5のの(1) に
示されているように、従来例にあっては、前記ベクトル
ユニット63内に設けられた演算部631がベクトル演
算を行う場合には、前記データバス4を介して、オペラ
ンドとしてのベクトルデータが全部べクトルユニット6
3内に転送されてからベクトル演算が行われることにな
る。
2. Description of the Related Art Conventionally, as shown in FIG. 6, a main storage device 1 in which vector data is stored, a load / store unit 6 for holding read vector data, a scalar register 7 for holding scalar data, and Switching unit 65 for switching transfer of scalar data or vector data according to an instruction
And a scalar unit 62 for processing scalar data
And a data bus 4 for transferring either the scalar data or the vector data, and a calculation unit 631 for calculating the vector data or the scalar data transferred via the bus 4 for processing the vector data. And a vector unit 63 for performing. In the vector instruction processing method with the scalar unit according to the conventional example, since the arithmetic unit 631 of the vector unit 63 performs the vector operation, the vector data read from the main storage device 1 through the scalar unit 62 is transferred to the data bus 4. To transfer via. At this time, as shown in (1) of FIG. 5, in the conventional example, when the arithmetic unit 631 provided in the vector unit 63 performs vector arithmetic, the data bus 4 Vector data as operands are all vector units through
The vector operation will be performed after the data is transferred into the area 3.

【0003】[0003]

【発明が解決しようとする課題】ところで、ベクトル演
算には、ベクトルデータをV、スカラデータをSとする
と以下のようにいくつかの組合せが存在する。すなわ
ち、 a. V1 * V2 = V3 b. V1 * S2 = V3 c. V1 * S2 = S3 d. V1 * V2 = S3 ここで、*は演算を示す。 一方、多くのベクトル計算機においてはスカラユニット
とベクトルユニットを持ち、スカラ演算及び命令処理
(デコード、アドレス計算)をスカラユニット(以下S
U)62で、ベクトル演算をベクトルユニット(以下V
U)63で処理し、同時に2つのユニットを動作させて
高速化を図っている。この場合、ベクトルデータはVU
63内のベクトルレジスタ(以下VR)に格納されてV
U63内で使用される。一方、スカラデータは主にSU
62で使用する為、SU62内に備えられる。従って、
上記のb.c.タイプの演算ではS2 をSU62より、
VU63に転送する必要がある。また、c.d.タイプ
の演算ではS3をVU63よりSU62に転送する必要
がある。ベクトル計算機内でVU63とSU62との間
では命令及びデータのやりとりを行う為、それぞれ独立
したバスをもつのが一般的である。データバス4は幅の
広いデータを一度に送るため、ビット数が多く、命令バ
スはそれに比べて狭いのが通常である。ベクトル計算機
ではVRにデータを送る場合、VU63内にデータをロ
ードする方法1と、SU62内のデータフェッチ/スト
ア機能を用いて前述したSU−VU間データバス4を通
してデータをロードする方法2とがある。方法1は高性
能を追求する場合、方法2はローコストをねらう場合に
用いられる。ここで、方法2を採用した場合データのロ
ード/ストア中はSU−VUデータバス4がビジーとな
り、この間、SU−VU間では他のデータのヤリトリが
できなくなる為、並行して動作中の前述のb.c.d.
タイプの演算はこのデータバス4が空くまで、待たされ
るという問題点を有していた。ところで、この問題を解
決するには、新たなデータバスを用意する。スカラ
レジスタのコピーをVU内に持つ。方法1を採用す
る。等の方法があるが、いずれも新たなコストアップを
招き、方法2を採用したローコストというメリットがな
くなってしまうという問題点を有していた。そこで、本
発明では、ベクトルロード/ストアがベクトル長分の長
い時間データバスを占有するのに比べ、スカラオペラン
ド付演算は1つないし2つのスカラデータのロード/ス
トアのみで、データバス占有時間が短いことに着目し、
ベクトルロード/ストアを再開することにより、スカラ
オペランド付演算を待たせることなく処理することを目
的とするものである。
By the way, in the vector operation, there are some combinations as follows, where V is vector data and S is scalar data. That is, a. V 1 * V 2 = V 3 b. V 1 * S 2 = V 3 c. V 1 * S 2 = S 3 d. V 1 * V 2 = S 3 Here, * indicates calculation. On the other hand, many vector computers have a scalar unit and a vector unit, and perform scalar operation and instruction processing (decoding, address calculation) in a scalar unit (hereinafter referred to as S
U) 62, vector operation is performed by a vector unit (hereinafter V
U) 63, and two units are operated at the same time to increase the speed. In this case, the vector data is VU
V is stored in the vector register (hereinafter VR) in 63
Used in U63. On the other hand, scalar data is mainly SU
Since it is used by the 62, it is provided in the SU 62. Therefore,
B. Above. c. In the calculation of the type, S 2 from SU62,
It needs to be transferred to the VU 63. Also, c. d. In the type operation, it is necessary to transfer S 3 from VU 63 to SU 62. In order to exchange instructions and data between the VU 63 and the SU 62 in the vector computer, it is common to have independent buses. Since the data bus 4 sends wide data at one time, it has a large number of bits and the instruction bus is usually narrower than that. When sending data to a VR in a vector computer, there are a method 1 for loading data in the VU 63 and a method 2 for loading data through the SU-VU data bus 4 described above using the data fetch / store function in the SU 62. is there. Method 1 is used for high performance, and Method 2 is used for low cost. When method 2 is adopted, the SU-VU data bus 4 becomes busy during data loading / storing, and during this time, other data cannot be spliced between SU-VU. B. c. d.
The type of operation has a problem that it is kept waiting until the data bus 4 becomes free. By the way, in order to solve this problem, a new data bus is prepared. Have a copy of the scalar register in the VU. Method 1 is adopted. However, all of them have a problem that they bring about new cost increase and lose the merit of low cost of adopting the method 2. Therefore, in the present invention, the vector load / store occupies the data bus for a long time corresponding to the vector length, whereas the operation with a scalar operand only loads / stores one or two scalar data, and the data bus occupation time is long. Focusing on the shortness,
By restarting vector load / store, the purpose is to process an operation with a scalar operand without waiting.

【0004】[0004]

【課題を解決するための手段】以上の技術的課題を解決
するために、第一の発明は図1に示すように、ベクトル
データの格納された主記憶装置10と、読み出されたベ
クトルデータを保持するベクトルデータ保持部60、ス
カラデータを保持するスカラデータ保持部70及び指示
によりスカラデータ又はベクトルデータの転送の切換え
を行う切換え部50を有し、スカラデータの処理を行う
スカラユニット20と、スカラデータ又はベクトルデー
タのどちらか一方の転送を行うデータバス40と、前記
バス40を介して転送されたベクトルデータ又はスカラ
データを入力オペランド又は出力オペランドとするベク
トル命令の処理を行う命令処理部110を有するベクト
ルユニット30と、を有するスカラオペランド付ベクト
ル命令処理方式において、スカラユニット20から送出
された命令が、入力オペランド又は出力オペランドのど
ちらか一方にスカラデータを含むスカラオペランド付ベ
クトル命令であるか否かの検出を行うスカラオペランド
付ベクトル命令検出部802 と、バス40が現在使用中
か否かの検出を行うスカラデータ転送検出部120と、
スカラオペランド付ベクトル命令が検出され、バス40
がベクトルデータの転送に現在使用されていることが検
出された場合には、そのデータの転送を中断し、代わり
にスカラデータの転送に切り換える指示を行うデータ転
送切換え指示部801 を設けたものである。
In order to solve the above technical problems, the first invention is, as shown in FIG. 1, a main storage device 10 in which vector data is stored and read vector data. A scalar data storage unit 60 for storing scalar data, a scalar data storage unit 70 for storing scalar data, and a switching unit 50 for switching transfer of scalar data or vector data according to an instruction, and a scalar unit 20 for processing scalar data. A data bus 40 for transferring either scalar data or vector data, and an instruction processing unit for processing a vector instruction having vector data or scalar data transferred via the bus 40 as an input operand or an output operand. A vector unit 30 having 110 and a vector instruction processing method with a scalar operand having There are instructions sent from the scalar unit 20 is, as with the scalar operand vector instruction detection unit 802 that detects whether or not the a vector instruction with scalar operands containing either one scalar data input operands and output operands A scalar data transfer detection unit 120 for detecting whether or not the bus 40 is currently used,
Vector instruction with scalar operand detected, bus 40
When it is detected that is currently used for the transfer of vector data, the data transfer switching instructing unit 80 1 for interrupting the transfer of the data and for switching to the transfer of the scalar data instead is provided. Is.

【0005】一方、第二の発明は、図2に示すように、
主記憶装置から読み出されたベクトルデータ、または、
スカラデータのどちらか一方を、スカラユニットからデ
ータバスを介してベクトルユニットに転送し(S1)、
転送されたベクトルデータまたはスカラデータを入力オ
ペランドとするベクトル命令の処理を行うスカラオペラ
ンド付ベクトル命令処理方法において、ベクトルデータ
をデータバスを介してスカラユニットからベクトルユニ
ット内に転送させる転送命令が起動され、ベクトルデー
タの転送が開始された(S1)後、入力オペランド又は
出力オペランドのどちらか一方にスカラデータを含むス
カラオペランド付ベクトル命令が起動される(S2)
と、当該ベクトルデータ転送の中断を指示し(S3)、
代わりにスカラデータの転送の指示を行い(S4)、ス
カラデータの転送が終了したことが検出されると(S
5)、中断したベクトルデータの転送を再開する(S
6)ものである。
On the other hand, in the second invention, as shown in FIG.
Vector data read from the main memory, or
Either one of the scalar data is transferred from the scalar unit to the vector unit via the data bus (S1),
In a vector instruction processing method with a scalar operand that processes a vector instruction that uses transferred vector data or scalar data as an input operand, a transfer instruction that transfers vector data from a scalar unit to a vector unit via a data bus is activated. After the transfer of vector data is started (S1), a vector instruction with a scalar operand containing scalar data in either an input operand or an output operand is activated (S2).
And an instruction to suspend the vector data transfer (S3),
Instead, a scalar data transfer instruction is issued (S4), and when it is detected that the scalar data transfer has been completed (S4).
5) Resuming the transfer of the interrupted vector data (S)
6) It is.

【0006】[0006]

【作用】続いて、本発明の動作について説明する。図1
及び図2に示すように、主記憶装置10から読み出さ
れ、先行の命令にしたがって、スカラユニット20に保
持されたベクトルデータまたはスカラユニット20のス
カラデータ保持部70に保持されたスカラデータのどち
らか一方が、ステップS1で、データバス40を介して
ベクトルユニット30への転送が開始される。その後、
ステップS2で、スカラオペランド付命令が起動され、
前記スカラオペランド付命令検出部802 により検出さ
れると、ステップS3で、前記ベクトルデータの転送を
中断させ、ステップS4で、前記スカラユニット20の
切換え部50に対し、データ転送切換え指示部801
よりベクトルデータに換えてスカラデータの転送を指示
することになる。ここで、「スカラオペランド付命令」
とは入力オペランド又は出力オペンラドのどちらか一方
にスカラデータを含む命令であって、「入力オペラン
ド」とは前述したように種々の命令(例えば、演算命
令)の対象となるもの(例えば、被演算子)であり、
「出力オペランド」とは命令実行の結果として得られる
ものであり、例えば、出力オペランドがスカラデータに
なる場合として、ベクトルデータとベクトルデータのベ
クトル内積演算により得られるスカラデータがある。ス
テップS5で前記データ転送検出部120により、スカ
ラデータの転送が終了したことが検出された場合には、
ステップS6に進み、中断されたベクトルデータの転送
が再開されることになる。こうして、ベクトルデータ及
びスカラデータにより、前記命令処理部110は、スカ
ラオペランド付命令の処理を行うことができることにな
る。
Next, the operation of the present invention will be described. Figure 1
As shown in FIG. 2, either the vector data read from the main memory 10 and held in the scalar unit 20 or the scalar data held in the scalar data holding unit 70 of the scalar unit 20 according to the preceding instruction. One of them starts transfer to the vector unit 30 via the data bus 40 in step S1. afterwards,
In step S2, an instruction with a scalar operand is activated,
When detected by the instruction detecting unit with scalar operand 80 2 , the transfer of the vector data is interrupted in step S3, and the data transfer switching instruction unit 80 1 is sent to the switching unit 50 of the scalar unit 20 in step S4. By this, transfer of scalar data instead of vector data is instructed. Where "instruction with scalar operand"
Is an instruction that contains scalar data in either the input operand or the output operand, and the "input operand" is the target of various instructions (for example, operation instruction) as described above (for example, operand Child)
The “output operand” is obtained as a result of instruction execution. For example, when the output operand is scalar data, there is scalar data obtained by vector inner product operation of vector data and vector data. In step S5, when the data transfer detection unit 120 detects that the transfer of the scalar data is completed,
In step S6, the interrupted transfer of vector data is restarted. In this way, the instruction processing unit 110 can process the instruction with the scalar operand by using the vector data and the scalar data.

【0007】[0007]

【実施例】本発明の実施例について説明する。図3に
は、本実施例に係るスカラオペランド付命令処理方式及
び方法に係る全体装置を示すブロック図である。同図に
示すように、本実施例に係る命令処理方式及び方法を実
現するための装置は、主として、ベクトルデータの格納
された主記憶装置1と、スカラデータの処理を行うスカ
ラCPUからなるスカラユニット2と、ベクトルデータ
の処理を行うベクトルユニット3と、スカラユニット2
及びベクトルユニット3間でベクトルデータまたはスカ
ラデータのどちらか一方のデータの転送を行うデータバ
ス4とからなるものである。
EXAMPLES Examples of the present invention will be described. FIG. 3 is a block diagram showing an entire apparatus according to the instruction processing method and method with a scalar operand according to the present embodiment. As shown in the figure, an apparatus for implementing the instruction processing method and method according to the present embodiment is a scalar mainly composed of a main memory 1 in which vector data is stored and a scalar CPU for processing scalar data. Unit 2, vector unit 3 for processing vector data, and scalar unit 2
And a data bus 4 for transferring either the vector data or the scalar data between the vector units 3.

【0008】前記主記憶装置1には、前記データバス4
のデータ転送を中断させるインタロック信号や種々の制
御信号の送出を行う制御部11を有する。また、前記ス
カラユニット2には、同図に示すように、主記憶装置1
から読み出されたベクトルデータをベクトルデータをベ
クトルユニット3に装填(ロード)し、ベクトルユニッ
ト3から転送されたベクトルデータを保持(ストア)す
るベクトルデータ保持部60であるワークレジスタに設
けられたロード/ストア部6と、GR(汎用レジスタ G
eneral Resistor )及びFR(浮動小数点レジスタFloa
ting Resistor)に相当するスカラデータ保持部70で
あるスカラレジスタ7と、主記憶装置1から読み出され
た命令を解読し、前記ベクトルデータに関する命令を前
記ベクトルユニット3に順次送出したり命令に関する種
々の制御を行う命令制御部21と、前記ロード/ストア
部6に保持されたベクトルデータとスカラレジスタ7に
保持されたスカラデータとの間でデータ転送の切換えを
行う切換え部50に相当するマルチプレクサ5と、前記
スカラデータ転送検出部120に相当するとともに、前
記データバス4が使用中か否かを示すバスビジー信号の
出力を行い、かつ、前記主記憶装置1の制御部11から
のインタロック信号または、後述するデータバス制御部
8から出力されたインタロック信号によりデータバス4
のデータ転送を中断したり、前記マルチプレクサ5に対
しデータ転送の切換えの指示を行うデータ制御部22
と、主記憶装置1とデータバス制御部8からのインタロ
ック信号の合成を行うOR素子23とを有するものであ
る。
The data bus 4 is included in the main memory 1.
It has a control unit 11 for sending out an interlock signal and various control signals for interrupting the data transfer. In addition, as shown in FIG.
The vector data read out from the vector unit 3 is loaded (loaded) into the vector unit 3, and the vector data transferred from the vector unit 3 is held (stored). / Store unit 6 and GR (general-purpose register G
eneral Resistor) and FR (Floating point register Floa)
ing register), which is a scalar data holding unit 70 corresponding to a scalar data holding unit 70, and an instruction read from the main storage device 1 are decoded, and instructions relating to the vector data are sequentially transmitted to the vector unit 3 or various instructions are issued. And a multiplexer 5 corresponding to a switching unit 50 for switching data transfer between the vector data held in the load / store unit 6 and the scalar data held in the scalar register 7. Corresponding to the scalar data transfer detection unit 120, outputs a bus busy signal indicating whether or not the data bus 4 is in use, and outputs an interlock signal from the control unit 11 of the main storage device 1. , The data bus 4 by the interlock signal output from the data bus control unit 8 described later.
Data control unit 22 for interrupting the data transfer of the data and for instructing the multiplexer 5 to switch the data transfer.
And an OR element 23 that synthesizes the interlock signals from the main memory device 1 and the data bus controller 8.

【0009】さらに、前記ベクトルユニット3には、同
図に示すように、ベクトルデータ又はスカラデータを入
力オペランド又は出力オペランドとするベクトル演算を
パイプライン処理(複数の小さな機能単位を直列に接続
することによって構成された機能で行う処理で、ある時
間毎にデータの入力と結果の出力が行われる)により行
う演算パイプライン31と、前記バス4を介して伝送さ
れたベクトルデータを一時保持するベクトルレジスタ3
2と、ベクトルユニット3の種々の制御を行う制御部9
とを有する。さらに、前記制御部9は同図に示すよう
に、前記スカラユニット2の命令制御部21から送出さ
れた命令を順次保持し、命令実行の待機を行う命令キュ
ー90と、命令キュー90に待機する命令のうち次に並
行に実行されるべき命令を保持する命令レジスタ91,
92,93と、本実施例により設けられたデータバス制
御部8とを有するものである。
Further, as shown in the figure, the vector unit 3 is pipelined by a vector operation using vector data or scalar data as an input operand or an output operand (a plurality of small functional units are connected in series). And a vector register for temporarily holding the vector data transmitted via the bus 4. The arithmetic pipeline 31 performs the input of data and the output of the result at a certain time in the processing performed by the function configured by Three
2 and a control unit 9 for performing various controls of the vector unit 3
Have and. Further, as shown in the figure, the control unit 9 sequentially holds the commands sent from the command control unit 21 of the scalar unit 2 and waits in the command queue 90 for waiting for command execution and the command queue 90. An instruction register 91 for holding the next instruction to be executed in parallel,
92 and 93, and the data bus control unit 8 provided by this embodiment.

【0010】図4には、当該データバス制御部8を詳細
に示すものである。同図に示すように、データバス制御
部8はスカラユニット2から送出され、命令キュー90
に待機した後、起動された命令が、入力オペランド又は
出力オペランドのどちらか一方にスカラデータを含むス
カラオペランド付ベクトル命令であるか否かの検出を行
うスカラオペランド付ベクトル命令検出部82 と、スカ
ラオペランド付ベクトル命令が検出され、データバス4
がベクトルデータの転送に現在使用されていることが検
出された場合には、そのデータの転送を中断し、代わり
にスカラデータの転送に切り換える指示を行うととも
に、その際、前記演算パイプライン31からの処理要求
信号があってから、スカラデータの送信が終了するまで
の間の命令処理を中断するデータ転送切換え指示部81
を有するものである。さらに、当該スカラオペランド付
ベクトル命令検出部82 には同図に示すように、前記命
令キュー90からの命令を解読するデコーダ84,8
6,88を有し、前記データ転送切換え指示部81
は、デコーダ84,86の出力線及び前記バスビジー信
号線等についての論理積をとるAND素子82,83,
85と、スカラデータが前記データバス4を介して転送
されたことを示すスカラデータ転送信号線をリセット端
子に、及び演算パイプライン31から出力される処理要
求信号若しくは前記AND素子81からの出力をセット
端子に入力して、前記スカラユニット2のデータ制御部
22に対するインタロック信号及び演算パイプライン3
1に対するインタロック信号を出力するセット・リセッ
ト付フリップフロップ(以下「SR付FF」という)8
1,87とを有するものである。
FIG. 4 shows the data bus control section 8 in detail. As shown in the figure, the data bus control unit 8 sends data from the scalar unit 2 to the instruction queue 90.
After waiting for, the activated instruction is a vector instruction detection unit 8 2 with a scalar operand that detects whether or not the activated instruction is a vector instruction with a scalar operand including scalar data in either an input operand or an output operand. Vector instruction with scalar operand detected, data bus 4
When it is detected that is currently used for the transfer of vector data, the transfer of the data is interrupted, and an instruction to switch to the transfer of scalar data is issued instead. At that time, from the operation pipeline 31 Data transfer switching instructing section 8 1 for interrupting the instruction processing from the time when the processing request signal of
Is to have. Further, as shown in the figure, the vector instruction detection unit 8 2 with the scalar operand has decoders 84 and 8 for decoding the instruction from the instruction queue 90.
Has 6,88, the data transferred to the switching instruction portion 8 1, the AND element 82 and 83 for taking a logical product of the output lines of the decoder 84, 86 and the bus busy signal line or the like,
85, a scalar data transfer signal line indicating that scalar data has been transferred through the data bus 4 to the reset terminal, and a processing request signal output from the operation pipeline 31 or an output from the AND element 81. Input to the set terminal, the interlock signal for the data control unit 22 of the scalar unit 2 and the arithmetic pipeline 3
Flip-flop with set / reset that outputs an interlock signal for 1 (hereinafter referred to as "FF with SR") 8
1 and 87.

【0011】続いて、本実施例に係るスカラオペランド
付命令処理方式及び方法の動作の説明を行う。図5
(2) に示すように、スカラユニット2の命令制御部21
から命令バスを介して前記命令キュー90で待機した先
行命令であるベクトルロード命令が起動されると、主記
憶装置1からスカラユニット2内部にあるロード/スト
ア部6に保持されたベクトルデータは、データ制御部2
2の指示によりデータバス4を通ってベクトルユニット
3に転送され、ベクトルユニット3のベクトルレジスタ
32に保持される。このベクトルロード命令の実行が完
了するまでには、データバス4はベクトル長+αだけの
処理時間がかかる。
Next, the operation of the instruction processing method and method with a scalar operand according to this embodiment will be described. Figure 5
As shown in (2), the instruction control unit 21 of the scalar unit 2
When a vector load instruction, which is a preceding instruction waiting in the instruction queue 90 via the instruction bus, is activated from the main memory device 1, the vector data held in the load / store unit 6 inside the scalar unit 2 becomes Data control unit 2
2 is transferred to the vector unit 3 through the data bus 4 and held in the vector register 32 of the vector unit 3. The data bus 4 requires a processing time of vector length + α until the execution of the vector load instruction is completed.

【0012】そのベクトルロード命令の起動中に、ベク
トルロード命令の後続命令“V+S”(ベクトルデータ
とスカラデータとの加算演算)が起動されるが、入力オ
ペランドSはスカラユニット2内のスカラレジスタ7よ
りデータバス4を通して演算パイプライン31に供給さ
れる為、従来であれば、データバス4がビジーの間待た
されてベクトルロード終了後に処理が開始されることに
なる。しかし、本発明に係る実施例にあっては、後続命
令V+Sが起動され、前記データバス制御部8のスカラ
オペランド付命令検出部82 により、後続命令がスカラ
オペランド付命令に相当することが検出され、その旨を
示す信号及びデータバス4が使用中であることを示すビ
ジー信号が図4に示すデータバス制御部8のデータ転送
切換え部81 に入力すると、これらの信号の論理積がと
られ、SR付FF81のセット端子に入力し、インタロ
ック信号が前記スカラユニット2のデータ制御部22に
送出され、ロード/ストア部6からベクトルユニット3
内のベクトルレジスタ32へのデータ転送を一時中断さ
せ、前記マルチプレクサ5に対し、ベクトルデータから
スカラデータの転送に切換えさせる。
While the vector load instruction is being activated, the subsequent instruction "V + S" (addition operation of vector data and scalar data) of the vector load instruction is activated, but the input operand S is a scalar register 7 in the scalar unit 2. Since the data is supplied to the operation pipeline 31 through the data bus 4, in the conventional case, the data bus 4 is kept waiting while busy and the processing is started after the vector loading is completed. However, in the embodiment according to the present invention, the subsequent instruction V + S is activated, and the scalar-operand-added instruction detection unit 8 2 of the data bus control unit 8 detects that the subsequent instruction corresponds to the scalar-operand-added instruction. When a signal indicating that fact and a busy signal indicating that the data bus 4 is in use are input to the data transfer switching unit 8 1 of the data bus control unit 8 shown in FIG. 4, the logical product of these signals is calculated. Then, the interlock signal is input to the set terminal of the FF with SR 81, the interlock signal is sent to the data control unit 22 of the scalar unit 2, and the vector unit 3 is supplied from the load / store unit 6.
Data transfer to the vector register 32 therein is temporarily suspended, and the multiplexer 5 is switched to transfer of vector data to scalar data.

【0013】その際、演算パイプライン31がスカラオ
ペランド付命令を実行するためにスカラオペランドを要
求する処理要求信号をデータ切換え指示部81 に送出す
ると、演算パイプライン31に対し、演算パイプライン
用のインタロック信号を出力し、演算パイプライン31
の実行を中断することになる。こうして、前記スカラレ
ジスタ7から出力されたスカラデータがデータバス4を
介して転送されることにより、スカラデータがベクトル
ユニット3の演算パイプライン31に供給される。当該
処理が終了すると、前記データ制御部22から制御バス
を介してスカラデータ転送信号がデータ転送切換え指示
部81 に入力し、前記FF81がリセット状態となり、
インタロック信号が解除される。インタロック信号が解
除されると、前記データ制御部22により中断されたベ
クトルデータの転送が再開される。これにより、ベクト
ルロードとV+Sの演算命令とが並列実行可能である。
図5(2) には、前記b.タイプ(入力オペランドがベ
クトルデータ及びスカラデータで、出力オペランドがベ
クトルデータの場合)、同図(2) には、前記c.タイ
プ(入力オペランドがベクトルデータ及びスカラデータ
で、出力オペランドがスカラデータの場合)、同図
(2) には、d.タイプ(入力オペランドはベクトルデー
タであって、出力オペランドはスカラデータの場合)に
ついて示している。
[0013] At this time, the operation pipeline 31 sends out the processing request signal for requesting the scalar operands to execute the instruction with scalar operand data switching instruction unit 81, to the operation pipeline 31, for operation pipeline Output the interlock signal of the operation pipeline 31
Execution will be suspended. In this way, the scalar data output from the scalar register 7 is transferred via the data bus 4, whereby the scalar data is supplied to the arithmetic pipeline 31 of the vector unit 3. When the process ends, a scalar data transfer signal is input from the data control unit 22 to the data transfer switching instructing unit 8 1 via the control bus, and the FF 81 enters the reset state,
The interlock signal is released. When the interlock signal is released, the transfer of vector data interrupted by the data control unit 22 is restarted. As a result, vector loading and V + S operation instructions can be executed in parallel.
In FIG. 5 (2), the b. Type (when the input operand is vector data and scalar data and the output operand is vector data), the same c. Type (when input operand is vector data and scalar data and output operand is scalar data), same figure
In (2), d. The type (when the input operand is vector data and the output operand is scalar data) is shown.

【0014】[0014]

【発明の効果】以上説明したように、本発明にあって
は、スカラオペランド付命令が起動され次第、ベクトル
データのロード命令によるデータバスを介してのデータ
転送を一時中断させ、その間にスカラデータの転送を行
い、スカラデータの転送が終了し次第、中断したベクト
ルデータの転送を再開するようにしている。したがっ
て、ベクトルデータの転送と前記スカラオペランド付命
令とを並行実行可能となり、命令の処理を高速化するこ
とができることになる。
As described above, according to the present invention, as soon as the instruction with the scalar operand is activated, the data transfer via the data bus by the load instruction of the vector data is temporarily interrupted, and the scalar data is transferred in the meantime. Is performed, and the interrupted vector data transfer is restarted as soon as the transfer of the scalar data is completed. Therefore, the transfer of vector data and the instruction with the scalar operand can be executed in parallel, and the processing speed of the instruction can be increased.

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

【図1】第一の発明に係る原理ブロック図FIG. 1 is a block diagram of the principle of the first invention.

【図2】第二の発明に係る原理流れ図FIG. 2 is a principle flowchart according to the second invention.

【図3】実施例に係る全体ブロック図FIG. 3 is an overall block diagram according to an embodiment.

【図4】実施例に係るデータバス制御部を示すブロック
FIG. 4 is a block diagram showing a data bus control unit according to the embodiment.

【図5】実施例及び従来例に係るタイムチャートFIG. 5 is a time chart according to an example and a conventional example.

【図6】従来例に係るブロック図FIG. 6 is a block diagram according to a conventional example.

【符号の説明】[Explanation of symbols]

10,1 主記憶装置 20,2 スカラユニット 30,3 ベクトルユニット 40,4 データバス 50,5 切換え部(マルチプレクサ) 60(6) ベクトルデータ保持部(ロード/ストア
部) 70(7) スカラデータ保持部(スカラレジスタ) 801 ,81 データ転送切換え部 802 ,82 スカラオペランド付ベクトル命令検出部 110(31) 命令処理部(演算パイプライン) 120(22) スカラデータ転送検出部(データ制御
部)
10, 1 Main memory 20, 2 Scalar unit 30, 3 Vector unit 40, 4 Data bus 50, 5 Switching unit (multiplexer) 60 (6) Vector data holding unit (load / store unit) 70 (7) Scalar data holding Section (scalar register) 80 1 , 8 1 data transfer switching section 80 2 , 8 2 vector instruction detecting section with scalar operand 110 (31) instruction processing section (arithmetic pipeline) 120 (22) scalar data transfer detecting section (data control Part)

Claims (4)

【特許請求の範囲】[Claims] 【請求項1】 ベクトルデータの格納された主記憶装置
(10)と、読み出されたベクトルデータを保持するベ
クトルデータ保持部(60)、スカラデータを保持する
スカラデータ保持部(70)及び指示によりスカラデー
タ又はベクトルデータの転送の切換えを行う切換え部
(50)を有し、スカラデータの処理を行うスカラユニ
ット(20)と、スカラデータ又はベクトルデータのど
ちらか一方の転送を行うデータバス(40)と、前記バ
ス(40)を介して転送されたベクトルデータ又はスカ
ラデータを入力オペランド又は出力オペランドとするベ
クトル命令の処理を行う命令処理部(110)を有する
ベクトルユニット(30)と、を有するスカラオペラン
ド付ベクトル命令処理方式において、 スカラユニット(20)から送出された命令が、入力オ
ペランド又は出力オペンラドのどちらか一方にスカラデ
ータを含むスカラオペランド付ベクトル命令であるか否
かの検出を行うスカラオペランド付ベクトル命令検出部
(802 )と、 バス(40)が現在使用中か否かの検出を行うスカラデ
ータ転送検出部(120)と、 スカラオペランド付ベクトル命令が検出され、バス(4
0)がベクトルデータの転送に現在使用されていること
が検出された場合には、そのデータの転送を中断し、代
わりにスカラデータの転送に切り換える指示を行うデー
タ転送切換え指示部(801 )を設けたことを特徴とす
るスカラオペランド付ベクトル命令処理方式。
1. A main storage device (10) in which vector data is stored, a vector data holding unit (60) holding the read vector data, a scalar data holding unit (70) holding scalar data, and an instruction. Has a switching unit (50) for switching transfer of scalar data or vector data by means of a scalar unit (20) for processing scalar data, and a data bus for transferring either scalar data or vector data ( 40) and a vector unit (30) having an instruction processing unit (110) for processing a vector instruction having vector data or scalar data transferred via the bus (40) as an input operand or an output operand. In the vector instruction processing method with a scalar operand, the scalar unit (20) sends Instructions, input operands or with a scalar operand vector instruction detection unit that detects whether or not the a vector instruction with scalar operands containing scalar data to either the output Openrado and (80 2), the bus (40) is currently A scalar data transfer detection unit (120) for detecting whether or not it is in use, and a vector instruction with a scalar operand are detected, and a bus (4
If it is detected that 0) is currently used for vector data transfer, the data transfer switching instructing section (80 1 ) for interrupting the data transfer and instructing to switch to the scalar data transfer instead. A vector instruction processing method with a scalar operand characterized by being provided.
【請求項2】 前記データ転送切換え指示部(801
は、スカラオペランド付ベクトル命令が検出され、バス
(40)がベクトルデータの転送に現在使用されている
ことが検出された場合には、そのデータの転送を中断
し、代わりにスカラデータの転送に切り換える指示を行
うとともに、その際、演算等の命令処理を行う命令処理
部(110)からの処理要求信号があってから、スカラ
データの送信が終了するまでの間の命令処理を中断する
ことを特徴とする請求項1記載のスカラオペランド付ベ
クトル命令処理方式。
2. The data transfer switching instruction unit (80 1 )
If a vector instruction with a scalar operand is detected and it is detected that the bus (40) is currently used for the transfer of vector data, the transfer of that data is interrupted, and instead the transfer of scalar data is performed. At the same time as issuing an instruction to switch, it is possible to interrupt the instruction processing from the time when there is a processing request signal from the instruction processing unit (110) that performs instruction processing such as calculation until the transmission of scalar data ends. The vector instruction processing system with a scalar operand according to claim 1, characterized in that.
【請求項3】 前記命令処理部として演算パイプライン
であることを特徴とする請求項1及び請求項2記載のス
カラオペランド付ベクトル命令処理方式。
3. The vector instruction processing method with a scalar operand according to claim 1, wherein the instruction processing unit is an arithmetic pipeline.
【請求項4】 主記憶装置から読み出されたベクトルデ
ータ、または、スカラデータのどちらか一方を、スカラ
ユニットからデータバスを介してベクトルユニットに転
送し(S1)、転送されたベクトルデータまたはスカラ
データを入力オペランドとするベクトル命令の処理を行
うスカラオペランド付ベクトル命令処理方法において、 ベクトルデータをデータバスを介してスカラユニットか
らベクトルユニット内に転送させる転送命令が起動さ
れ、ベクトルデータの転送が開始された(S1)後、入
力オペランド又は出力オペランドのどちらか一方にスカ
ラデータを含むスカラオペランド付ベクトル命令が起動
される(S2)と、 当該ベクトルデータ転送の中断を指示し(S3)、 代わりにスカラデータの転送の指示を行い(S4)、 スカラデータの転送が終了したことが検出されると(S
5)、 中断したベクトルデータの転送を再開する(S6)こと
を特徴とするスカラオペランド付ベクトル命令処理方
法。
4. Either the vector data read from the main memory or the scalar data is transferred from the scalar unit to the vector unit via the data bus (S1), and the transferred vector data or the scalar data is transferred. In the vector instruction processing method with a scalar operand that processes a vector instruction that uses data as an input operand, a transfer instruction that transfers vector data from the scalar unit to the inside of the vector unit via the data bus is activated, and the transfer of vector data starts. After that (S1), when a vector instruction with a scalar operand that contains scalar data in either the input operand or the output operand is activated (S2), the interruption of the vector data transfer is instructed (S3). Instruct to transfer scalar data (S4) When the transfer of data is completed is detected (S
5) A vector instruction processing method with a scalar operand, characterized in that the transfer of the interrupted vector data is restarted (S6).
JP26670891A 1991-10-16 1991-10-16 Processing system/method for vector instruction with scalar operand Withdrawn JPH05108697A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP26670891A JPH05108697A (en) 1991-10-16 1991-10-16 Processing system/method for vector instruction with scalar operand

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP26670891A JPH05108697A (en) 1991-10-16 1991-10-16 Processing system/method for vector instruction with scalar operand

Publications (1)

Publication Number Publication Date
JPH05108697A true JPH05108697A (en) 1993-04-30

Family

ID=17434583

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26670891A Withdrawn JPH05108697A (en) 1991-10-16 1991-10-16 Processing system/method for vector instruction with scalar operand

Country Status (1)

Country Link
JP (1) JPH05108697A (en)

Similar Documents

Publication Publication Date Title
EP0087978B1 (en) Information processing unit
JPH06105460B2 (en) Multiprocessor processor switching device
JP2531760B2 (en) Vector processor
JPH02156334A (en) Information processor
JPH0332818B2 (en)
JPS6142308B2 (en)
JPH10301779A (en) Method for fetching and issuing dual word or plural instruction and device therefor
EP0385136B1 (en) Microprocessor cooperating with a coprocessor
JPH05108697A (en) Processing system/method for vector instruction with scalar operand
JP2577023B2 (en) Address extension control method for information processing equipment
JP2643931B2 (en) Information processing device
JPS6134188B2 (en)
JP2876791B2 (en) Exception handling device and exception handling method
JPS60250438A (en) Information processor
JP2702137B2 (en) Vector operation instruction processing method
JP2965045B2 (en) Semiconductor integrated circuit device
JPH05197743A (en) Vector processor
JP2968321B2 (en) Data processing device
JPH06139071A (en) Parallel computers
JP2871171B2 (en) Microcomputer
JP2583614B2 (en) Vector arithmetic unit
JPH052485A (en) Pipeline control system
JPH0279122A (en) Floating point arithmetic mechanism
JPH0685166B2 (en) Instruction control method for multiprocessor system
JPH02235175A (en) Scalar data fetching system for additional type vector processor

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19990107