JP2002297566A - Passing circuit for vector gathering command - Google Patents

Passing circuit for vector gathering command

Info

Publication number
JP2002297566A
JP2002297566A JP2001103989A JP2001103989A JP2002297566A JP 2002297566 A JP2002297566 A JP 2002297566A JP 2001103989 A JP2001103989 A JP 2001103989A JP 2001103989 A JP2001103989 A JP 2001103989A JP 2002297566 A JP2002297566 A JP 2002297566A
Authority
JP
Japan
Prior art keywords
instruction
vector
vector gather
circuit
load
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.)
Granted
Application number
JP2001103989A
Other languages
Japanese (ja)
Other versions
JP3789315B2 (en
Inventor
Yuki Date
結城 伊達
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Computertechno Ltd
Original Assignee
NEC Computertechno 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 NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP2001103989A priority Critical patent/JP3789315B2/en
Publication of JP2002297566A publication Critical patent/JP2002297566A/en
Application granted granted Critical
Publication of JP3789315B2 publication Critical patent/JP3789315B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To efficiently process memory access request with eliminating waste idle time in a generating circuit for memory access request. SOLUTION: In a passing circuit for vector gathering command, registers 400-403 form a command buffer. A decoder 500 judges an inputted command to be a vector gathering command, and a decoder 501 judges the inputted command to be a vector loading command. A judgment circuit 502 for issue of vector gathering command judges whether a situation for an issue of the gathering command is allowed or not. A generating circuit 503 for select signal judges whether a passing of the gathering command is allowed or not with referring to a variety of information flags 100-1 to 103-1, 200-1 to 203-1, 300-1 to 303-1 to generate a select signal 503-1 for selecting a command to send to the generating circuit for memory access request. A selector 504 sends a command corresponding to the signal 503-1 to the generating circuit for memory access request.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明はベクトルギャザー命
令追い越し回路に関し、特にスカラユニット,ベクトル
ユニットおよびメモリアクセスリクエスト生成回路を備
えるベクトル処理装置におけるベクトルギャザー命令追
い越し回路に関する。
The present invention relates to a vector gather instruction overtaking circuit, and more particularly to a vector gather instruction overtaking circuit in a vector processing apparatus having a scalar unit, a vector unit and a memory access request generating circuit.

【0002】[0002]

【従来の技術】近年、CPU(Central Pro
cesser Unit)の処理能力の向上は、インテ
ル社のチップに代表されるようにすさまじいものがある
が、ベクトル処理装置のCPUについても同じことがい
える。ベクトルデータはそのデータ量からCPU内のキ
ャッシュに納めることができないため、常にメモリにア
クセスする必要があり、メモリアクセス性能に対する比
重も高い。つまり、ベクトル処理装置においては、CP
U性能だけでなく、CPUに供給するデータの転送速度
とのバランスが重要であり、CPUとメモリ間のデータ
転送を効率よく行うことが望まれている。
2. Description of the Related Art In recent years, CPUs (Central Pro
Although the processing capability of the processor unit has been remarkably improved as represented by an Intel chip, the same can be said for the CPU of the vector processing device. Since vector data cannot be stored in the cache in the CPU due to the amount of data, it is necessary to always access the memory, and the weight of the memory access performance is high. That is, in the vector processing device, CP
It is important to balance not only the U performance but also the transfer rate of data supplied to the CPU, and it is desired to efficiently transfer data between the CPU and the memory.

【0003】従来から、ベクトルストア命令(主記憶へ
ライトするためのデータをメモリアクセスリクエスト生
成回路に供給するために待ち時間が必要)の追い越しに
関する技術が数多く提案されている。
Conventionally, there have been proposed many techniques relating to overtaking of a vector store instruction (a wait time is required to supply data for writing to a main memory to a memory access request generation circuit).

【0004】たとえば、このような先行技術として、特
開平10−269199号公報に開示された「命令追い
越し処理回路」がある。この回路は、先行する主記憶ア
クセス命令のアクセス領域と後続する主記憶アクセス命
令のアクセス領域とを比較し、両領域が重ならない場合
には、先行する主記憶アクセス命令よりも先に後続する
主記憶アクセス命令を実行させるようにしたものであ
る。
[0004] For example, as such a prior art, there is an "instruction overtaking processing circuit" disclosed in Japanese Patent Laid-Open No. Hei 10-269199. This circuit compares the access area of the preceding main storage access instruction with the access area of the following main storage access instruction, and, if the two areas do not overlap, the main storage access instruction that precedes the preceding main storage access instruction. The storage access instruction is executed.

【0005】また、他の先行技術として、特開平09−
231203号公報に開示された「ベクトルストア追い
越し制御回路」がある。この回路は、ベクトルストア命
令に対する後続のロード系命令のメモリアクセスに関す
る追い越しチェックの結果を待つことなく、後続のメモ
リリクエストを受け付けることができるようにしたもの
である。
As another prior art, Japanese Patent Application Laid-Open No.
There is a “vector store overtaking control circuit” disclosed in Japanese Patent No. 231203. This circuit can accept a subsequent memory request without waiting for the result of an overtake check on memory access of a subsequent load instruction to a vector store instruction.

【0006】しかし、上記2件の先行技術では、ベクト
ルストア命令を後続の命令が追い越すためには、主記憶
のアクセスエリアが重複しているかどうか等の判断が必
要になり、追い越すためのハードウェア量や追い越し可
否判断時間も多くかかっていた。
However, in the above two prior arts, in order for the succeeding instruction to overtake the vector store instruction, it is necessary to determine whether or not the access area of the main memory is duplicated. It took a lot of time and time to judge whether to pass.

【0007】一方、ベクトルロード命令の追い越しに関
する先行技術としては、特許第2741717号に開示
された「ベクトル処理装置」がある。この装置は、ベク
トルロードデータをスカラユニットを経由してベクトル
ユニットのベクトルレジスタに格納するものであり、ま
た、ベクトルロード命令のアドレス計算をスカラユニッ
トの加算器を使用して算出しているものである。
On the other hand, as a prior art relating to overtaking of a vector load instruction, there is a "vector processing apparatus" disclosed in Japanese Patent No. 2741717. This apparatus stores vector load data in a vector register of a vector unit via a scalar unit, and calculates an address of a vector load instruction using an adder of the scalar unit. is there.

【0008】ところで、ベクトル処理装置では、間接ア
ドレッシングのベクトルロード命令、言い換えれば、ロ
ードアドレスにベクトルレジスタの内容を使用してベク
トルデータの1要素毎に任意のアドレスが指定できる命
令(以下、ベクトルギャザー命令という)が使用されて
いる。
In the vector processing apparatus, a vector load instruction for indirect addressing, in other words, an instruction that can specify an arbitrary address for each element of vector data using the contents of a vector register as a load address (hereinafter referred to as a vector gather instruction). Instructions) are used.

【0009】ここで、図10(a)および(b)を参照
して、通常のロード命令とベクトルギャザー命令との処
理経路の違いを説明する。図10(a)は通常のロード
命令の処理経路、図10(b)はベクトルギャザー命令
の処理経路を表したものである。通常のロード命令は、
図10(a)に示すように、スカラレジスタの内容ある
いは即値をアドレスとして使用するため、スカラユニッ
トSU内でアドレスを生成でき、そこから命令をメモリ
アクセスリクエスト生成回路MAへ送出できる。これに
対して、ベクトルギャザー命令は、図10(b)に示す
ように、ベクトルレジスタの内容をアドレスとして使用
するため、ベクトルレジスタからアドレスをデータとし
て読み出しメモリアクセスリクエスト生成回路MAに送
出する必要があり、メモリアクセスリクエスト生成回路
MAにアドレスが揃うまで、ここで余分な時間を費やし
てしまうことがわかる。
Here, with reference to FIGS. 10 (a) and 10 (b), the difference in the processing path between a normal load instruction and a vector gather instruction will be described. FIG. 10A illustrates a processing path of a normal load instruction, and FIG. 10B illustrates a processing path of a vector gather instruction. A normal load instruction is
As shown in FIG. 10A, since the contents or immediate value of the scalar register is used as the address, an address can be generated in the scalar unit SU, and an instruction can be sent to the memory access request generation circuit MA therefrom. On the other hand, since the vector gather instruction uses the contents of the vector register as an address as shown in FIG. 10B, it is necessary to read the address from the vector register as data and send it to the memory access request generation circuit MA. It can be seen that extra time is spent here until the addresses are aligned in the memory access request generation circuit MA.

【0010】そこで、間接アドレッシングのベクトルロ
ード命令であるベクトルギャザー命令を後続のロード命
令が追い越すことができるベクトル処理装置が望まれる
が、上記特許第2741717号に開示されたベクトル
処理装置では追い越すことはできなかった。なぜなら
ば、ベクトルギャザー命令のアドレスは、1要素ずつラ
ンダムなアドレスであり、ベクトルレジスタに格納され
ているため、スカラユニットSUの加算器を使用して求
まるものではないからである。
In view of this, a vector processing apparatus capable of succeeding a vector gather instruction, which is a vector load instruction of indirect addressing, by a subsequent load instruction is desired. However, the vector processing apparatus disclosed in the above-mentioned Japanese Patent No. 2741717 does not. could not. This is because the address of the vector gather instruction is a random address for each element and is stored in the vector register, and thus cannot be obtained using the adder of the scalar unit SU.

【0011】[0011]

【発明が解決しようとする課題】上述した従来のベクト
ル処理装置では、メモリアクセス処理を高速に行い、C
PUとメモリ間のデータ転送を効率よく行うことができ
ないという問題点があった。その理由は、間接アドレッ
シングのベクトルロード命令であるベクトルギャザー命
令を後続のロード命令が追い越すことができなかったか
らである。
In the above-described conventional vector processing apparatus, memory access processing is performed at high speed, and C
There has been a problem that data transfer between the PU and the memory cannot be performed efficiently. The reason is that the subsequent load instruction cannot overtake the vector gather instruction which is the vector load instruction of the indirect addressing.

【0012】本発明の目的は、先行するベクトルギャザ
ー命令を後続のロード命令が追い越すことができるよう
にしたベクトルギャザー命令追い越し回路を提供するこ
とにある。
It is an object of the present invention to provide a vector gather instruction overtaking circuit in which a preceding load instruction can overtake a preceding vector gather instruction.

【0013】本発明の他の目的は、先行するベクトルギ
ャザー命令を後続のロード命令が追い越すことができる
ようにしたベクトルギャザー命令追い越し回路を備える
ベクトル処理装置を提供することにある。
Another object of the present invention is to provide a vector processing apparatus having a vector gather instruction overtaking circuit in which a preceding load instruction can overtake a preceding vector gather instruction.

【0014】[0014]

【課題を解決するための手段】本発明のベクトルギャザ
ー命令追い越し回路は、スカラユニットから命令を入力
するとともにベクトルユニットからベクトルギャザー命
令発行許可を入力し、ベクトルギャザー命令が入力され
たときに該ベクトルギャザー命令に対する命令発行許可
がなければ該ベクトルギャザー命令を保持し、ロード命
令が入力されたときに該ロード命令に先行するベクトル
ギャザー命令が保持されていれば該ロード命令を先行す
るベクトルギャザー命令を追い越してメモリアクセスリ
クエスト生成回路に対して発行することを特徴とする。
A vector gather instruction overtaking circuit according to the present invention receives an instruction from a scalar unit, inputs a vector gather instruction issuance permission from a vector unit, and outputs the vector gather instruction when the vector gather instruction is input. If there is no instruction issue permission for the gather instruction, the vector gather instruction is held, and if the load instruction is input and the vector gather instruction preceding the load instruction is held, the vector gather instruction preceding the load instruction is held. The overwriting is issued to the memory access request generation circuit.

【0015】また、本発明のベクトルギャザー命令追い
越し回路は、スカラユニット,ベクトルユニットおよび
メモリアクセスリクエスト生成回路を備えるベクトル処
理装置において、前記ベクトルユニットでベクトルギャ
ザー命令のアドレスが揃うまで該ベクトルギャザー命令
および後続の命令が待ち合わせるための命令バッファ
と、前記命令バッファの各段に格納された命令の有効/
無効を示す命令有効フラグを保持する第1のフリップフ
ロップ群と、前記スカラユニットから入力された命令が
ベクトルギャザー命令であるかどうかを判断する第1の
デコーダと、前記第1のデコーダの出力信号に基づいて
前記命令バッファの各段に格納された命令がベクトルギ
ャザー命令であるかどうかを示すベクトルギャザー命令
フラグを保持する第2のフリップフロップ群と、前記ス
カラユニットから入力された命令がロード命令であるか
どうかを判断する第2のデコーダと、前記第2のデコー
ダの出力信号に基づいて前記命令バッファの各段に格納
された命令がロード命令であるかどうかを示すロード命
令フラグを保持する第3のフリップフロップ群と、前記
ベクトルユニットからのベクトルギャザー命令発行許可
をカウントし前記命令バッファに格納されているベクト
ルギャザー命令の発行可否状態を判断するベクトルギャ
ザー命令発行判断回路と、前記ベクトルギャザー命令発
行判断回路の出力信号,前記命令有効フラグ,前記ベク
トルギャザー命令フラグおよび前記ロード命令フラグに
基づいて後続するロード命令による先行するベクトルギ
ャザー命令の追い越しの可否を判定し、入力された命令
および前記命令バッファに蓄積された命令から前記メモ
リアクセスリクエスト生成回路に送出する命令を選択す
るためのセレクト信号を生成するセレクト信号生成回路
と、前記セレクト信号生成回路からのセレクト信号に基
づいて入力された命令および前記命令バッファに蓄積さ
れた命令から前記メモリアクセスリクエスト生成回路へ
送出する命令を選択するセレクタとを有することを特徴
とする。
According to another aspect of the present invention, there is provided a vector processing apparatus including a scalar unit, a vector unit, and a memory access request generating circuit, wherein the vector gather instruction and the address of the vector gather instruction are aligned in the vector unit. An instruction buffer for waiting for subsequent instructions, and valid / invalid instructions stored in each stage of the instruction buffer.
A first flip-flop group that holds an instruction valid flag indicating invalidity, a first decoder that determines whether an instruction input from the scalar unit is a vector gather instruction, and an output signal of the first decoder A second flip-flop group that holds a vector gather instruction flag indicating whether the instruction stored in each stage of the instruction buffer is a vector gather instruction, and a load instruction that is an instruction input from the scalar unit. And a load instruction flag indicating whether an instruction stored in each stage of the instruction buffer is a load instruction based on an output signal of the second decoder. Counting a third flip-flop group and a vector gather instruction issuance permission from the vector unit; A vector gather instruction issuance determination circuit for determining whether the vector gather instruction issuable or not stored in the instruction buffer is issued, an output signal of the vector gather instruction issuance determination circuit, the instruction valid flag, the vector gather instruction flag, and the load instruction Determining whether or not a preceding load instruction can be overtaken by a subsequent load instruction based on a flag, and selecting an instruction to be sent to the memory access request generation circuit from the input instruction and the instruction stored in the instruction buffer; A select signal generating circuit for generating a select signal, and selecting an instruction to be transmitted to the memory access request generating circuit from an instruction input based on the select signal from the select signal generating circuit and an instruction stored in the instruction buffer. Selector and Characterized in that it has.

【0016】さらに、本発明のベクトルギャザー命令追
い越し回路は、スカラユニット,ベクトルユニットおよ
びメモリアクセスリクエスト生成回路を備えるベクトル
処理装置において、前記ベクトルユニットでベクトルギ
ャザー命令のアドレスが揃うまで該ベクトルギャザー命
令および後続の命令が待ち合わせるための命令バッファ
と、前記命令バッファの各段に格納された命令の有効/
無効を示す命令有効フラグを保持する第1のフリップフ
ロップ群と、前記スカラユニットから入力された命令が
ベクトルギャザー命令であるかどうかを判断する第1の
デコーダと、前記第1のデコーダの出力信号に基づいて
前記命令バッファの各段に格納された命令がベクトルギ
ャザー命令であるかどうかを示すベクトルギャザー命令
フラグを保持する第2のフリップフロップ群と、前記ス
カラユニットから入力された命令がロード命令であるか
どうかを判断する第2のデコーダと、前記第2のデコー
ダの出力信号に基づいて前記命令バッファの各段に格納
された命令がロード命令であるかどうかを示すロード命
令フラグを保持する第3のフリップフロップ群と、前記
ベクトルユニットからのベクトルギャザー命令発行許可
をカウントし前記命令バッファに格納されているベクト
ルギャザー命令の発行可否状態を判断するベクトルギャ
ザー命令発行判断回路と、前記ベクトルギャザー命令発
行判断回路の出力信号,前記命令有効フラグ,前記ベク
トルギャザー命令フラグ,前記第2のデコーダの出力信
号および前記ロード命令フラグに基づいて後続するロー
ド命令による先行するベクトルギャザー命令の追い越し
の可否を判定し、入力された命令および前記命令バッフ
ァに蓄積された命令から前記メモリアクセスリクエスト
生成回路に送出する命令を選択するためのセレクト信号
を生成するセレクト信号生成回路と、前記セレクト信号
生成回路からのセレクト信号に基づいて入力された命令
および前記命令バッファに蓄積された命令から前記メモ
リアクセスリクエスト生成回路へ送出する命令を選択す
るセレクタとを有することを特徴とする。
Further, the vector gather instruction passing circuit of the present invention is a vector processing apparatus comprising a scalar unit, a vector unit, and a memory access request generation circuit, wherein the vector gather instruction and the address of the vector gather instruction are aligned in the vector unit. An instruction buffer for waiting for subsequent instructions, and valid / invalid instructions stored in each stage of the instruction buffer.
A first flip-flop group that holds an instruction valid flag indicating invalidity, a first decoder that determines whether an instruction input from the scalar unit is a vector gather instruction, and an output signal of the first decoder A second flip-flop group that holds a vector gather instruction flag indicating whether the instruction stored in each stage of the instruction buffer is a vector gather instruction, and a load instruction that is an instruction input from the scalar unit. And a load instruction flag indicating whether an instruction stored in each stage of the instruction buffer is a load instruction based on an output signal of the second decoder. Counting a third flip-flop group and a vector gather instruction issuance permission from the vector unit; A vector gather instruction issuance determination circuit for determining whether or not the vector gather instruction stored in the instruction buffer can be issued; an output signal of the vector gather instruction issuance determination circuit; the instruction valid flag; the vector gather instruction flag; It is determined whether or not the preceding vector gather instruction can be overtaken by the subsequent load instruction based on the output signal of the decoder and the load instruction flag, and the memory access request generation is performed from the input instruction and the instruction stored in the instruction buffer. A select signal generation circuit for generating a select signal for selecting an instruction to be sent to the circuit; and a memory access from an instruction input based on a select signal from the select signal generation circuit and an instruction stored in the instruction buffer. Send to request generation circuit And having a selector for selecting an instruction to be.

【0017】さらにまた、本発明のベクトルギャザー命
令追い越し回路は、前記命令バッファが、複数段のレジ
スタでなることを特徴とする。
Further, in the vector gather instruction overtaking circuit of the present invention, the instruction buffer comprises a plurality of stages of registers.

【0018】また、本発明のベクトルギャザー命令追い
越し回路は、前記命令バッファが、RAMでなることを
特徴とする。
In the vector gather instruction overtaking circuit according to the present invention, the instruction buffer is a RAM.

【0019】一方、本発明のベクトル処理装置は、命令
を出力するスカラユニットと、前記スカラユニットから
命令を入力してベクトルギャザー命令発行許可およびア
ドレスを出力するベクトルユニットと、前記スカラユニ
ットから命令を入力するとともに前記ベクトルユニット
からベクトルギャザー命令発行許可を入力し、ベクトル
ギャザー命令が入力されたときに該ベクトルギャザー命
令に対する命令発行許可がなければ該ベクトルギャザー
命令を保持し、ロード命令が入力されたときに該ロード
命令に先行するベクトルギャザー命令が保持されていれ
ば該ロード命令を先行するベクトルギャザー命令を追い
越して発行するベクトルギャザー命令追い越し回路と、
前記ベクトルギャザー命令追い越し回路から命令を入力
するとともに前記ベクトルユニットから該ベクトルギャ
ザー命令のアドレスを入力して、メモリアクセスリクエ
ストを生成するメモリアクセスリクエスト生成回路とを
備えることを特徴とする。
On the other hand, a vector processing apparatus according to the present invention comprises a scalar unit for outputting an instruction, a vector unit for inputting an instruction from the scalar unit and outputting a vector gather instruction issuance permission and an address, and an When a vector gather instruction is issued from the vector unit and the instruction is not issued for the vector gather instruction when the vector gather instruction is input, the vector gather instruction is held and the load instruction is input. A vector gather instruction overtaking circuit that issues the load instruction overtaking the preceding vector gather instruction if the vector gather instruction preceding the load instruction is held;
A memory access request generating circuit for generating a memory access request by inputting an instruction from the vector gather instruction overtaking circuit and inputting an address of the vector gather instruction from the vector unit.

【0020】[0020]

【発明の実施の形態】以下、本発明の実施の形態につい
て図面を参照して詳細に説明する。
Embodiments of the present invention will be described below in detail with reference to the drawings.

【0021】(1)第1の実施の形態 図2は、アドレスが揃うのを待つベクトルギャザー命令
に後続するロード命令が存在する場合に、後続するロー
ド命令の無駄な待ち時間を削除するために、ベクトルギ
ャザー命令追い越し回路VGを設ける場合のベクトル処
理装置における配置関係を説明するブロック図である。
通常のロード命令は、スカラユニットSUからベクトル
データの先頭のアドレスとデータ間の距離(要素間距
離)とをもらい、これらから各要素のアドレスをメモリ
アクセスリクエスト生成回路MAで作り出す。一方、ベ
クトルギャザー命令は、そのアドレスが要素毎にランダ
ムであり、しかもベクトルユニットVU内のベクトルレ
ジスタに保存されているために、ベクトルユニットVU
からアドレスを入力する。また、ベクトルユニットVU
からベクトルギャザー命令追い越し回路VGにベクトル
ギャザー命令発行許可を入力する。
(1) First Embodiment FIG. 2 shows a method for eliminating a useless waiting time of a subsequent load instruction when there is a load instruction following a vector gather instruction which waits for the alignment of addresses. FIG. 10 is a block diagram illustrating an arrangement relationship in a vector processing device when a vector gather instruction overtaking circuit VG is provided.
In a normal load instruction, the start address of vector data and the distance between data (distance between elements) are obtained from the scalar unit SU, and the address of each element is created by the memory access request generation circuit MA from these. On the other hand, the vector gather instruction has a random address for each element and is stored in a vector register in the vector unit VU.
Enter the address from. Also, the vector unit VU
Input the permission to issue a vector gather instruction to the vector gather instruction passing circuit VG.

【0022】図3(a)を参照すると、通常のロード命
令の一例であるベクトルロード命令(ベクトルギャザー
命令を除く)のフォーマットは、命令コードOPと、デ
ータを書き込むベクトルレジスタ番号Xと、要素間距離
が格納されているスカラレジスタ番号Yと、ベクトルデ
ータの先頭要素のアドレスが格納されているスカラレジ
スタ番号Zとから構成されている。
Referring to FIG. 3A, the format of a vector load instruction (excluding a vector gather instruction), which is an example of a normal load instruction, includes an instruction code OP, a vector register number X for writing data, and a It is composed of a scalar register number Y storing the distance and a scalar register number Z storing the address of the head element of the vector data.

【0023】図3(b)を参照すると、ベクトルギャザ
ー命令のフォーマットは、命令コードOPと、データを
書き込むベクトルレジスタ番号Xと、ベクトルデータの
アドレスが格納されているベクトルレジスタ番号Yとか
ら構成されている。
Referring to FIG. 3B, the format of the vector gather instruction comprises an instruction code OP, a vector register number X for writing data, and a vector register number Y in which the address of the vector data is stored. ing.

【0024】なお、先行するベクトルギャザー命令と後
続のロード命令とがあった場合、プログラムがコンパイ
ラによって事前にコンパイルされているので、先行する
ベクトルギャザー命令と後続のロード命令との間でレジ
スタの重複使用は事前に排除されている。このため、先
行するベクトルギャザー命令を後続のロード命令が追い
越す場合、使用するレジスタのチェックは必要ない。
When there is a preceding vector gather instruction and a subsequent load instruction, since the program has been compiled in advance by the compiler, register duplication between the preceding vector gather instruction and the subsequent load instruction is performed. Use has been excluded in advance. Therefore, when the succeeding load instruction overtakes the preceding vector gather instruction, it is not necessary to check the register to be used.

【0025】図1は、本発明の第1の実施の形態に係る
ベクトルギャザー命令追い越し回路の構成を示す回路ブ
ロック図である。本実施の形態に係るベクトルギャザー
命令追い越し回路は、ベクトルギャザー命令のアドレス
が揃うまで待ち合わせるための命令バッファを形成する
レジスタ400〜403(この例では4ワード)と、ベ
クトルギャザー命令を追い越すために必要な各種情報フ
ラグを保持するフリップフロップ(以後、FFと略記す
る)100〜103,200〜203,および300〜
303と、入力された命令がベクトルギャザー命令であ
ることを判断するデコーダ500と、入力された命令が
ベクトルロード命令であることを判断するデコーダ50
1と、ベクトルギャザー命令の発行可否状態を判断する
ベクトルギャザー命令発行判断回路502と、ベクトル
ギャザー命令の追い越し可否を判定し、メモリアクセス
リクエスト生成回路MAに送出する命令を選択するため
のセレクト信号503−1を生成するセレクト信号生成
回路503と、セレクト信号生成回路503からのセレ
クト信号に基づいて入力された命令および命令バッファ
に蓄積された命令からメモリアクセスリクエスト生成回
路MAへ送出する命令を選択し、メモリアクセスリクエ
スト生成回路MAへ送出する命令を選択するセレクタ5
04とから構成されている。
FIG. 1 is a circuit block diagram showing a configuration of a vector gather instruction overtaking circuit according to the first embodiment of the present invention. The vector gather instruction overtaking circuit according to the present embodiment requires registers 400 to 403 (4 words in this example) forming an instruction buffer for waiting until the address of the vector gather instruction is aligned, and is necessary for overtaking the vector gather instruction. Flip-flops (hereinafter abbreviated as FFs) 100 to 103, 200 to 203, and 300 to
303, a decoder 500 for determining that the input instruction is a vector gather instruction, and a decoder 50 for determining that the input instruction is a vector load instruction
1; a vector gather instruction issuance determination circuit 502 for determining whether the vector gather instruction can be issued; and a select signal 503 for determining whether to pass the vector gather instruction and selecting an instruction to be sent to the memory access request generation circuit MA. A select signal generation circuit 503 for generating -1 and an instruction to be transmitted to the memory access request generation circuit MA from instructions input based on the select signal from the select signal generation circuit 503 and instructions stored in the instruction buffer are selected. Selector 5 for selecting an instruction to be sent to memory access request generation circuit MA
04.

【0026】FF100〜103は、命令バッファのワ
ード0であるレジスタ400からワード3であるレジス
タ403に対応した命令有効フラグ100−1〜103
−1を保持する。例えば、FF100が保持する命令有
効フラグ100−1が“1”のとき、対応するレジスタ
400の命令は有効と見なす。FF100〜103は、
レジスタ400〜403に対応した命令有効フラグ、つ
まり、どこのワード(レジスタ400〜403)に有効
な命令が存在するかを示すフラグである。命令000―
1が有効である場合に、何らかの要因でメモリアクセス
リクエスト生成回路MAに送出できなかったときに、レ
ジスタ400〜403でなる命令バッファに一時的に命
令が格納される。この要因には3つあり、1つ目は命令
000―1がベクトルギャザー命令であった場合、2つ
目は入力された命令000―1に先行する命令がレジス
タ400〜403でなる命令バッファに存在する場合、
3つ目は先行する命令はレジスタ400〜403でなる
命令バッファに存在しないが、メモリアクセスリクエス
ト生成回路MAが命令を受け付けられない状態であった
場合であり、これらの場合に命令000―1はレジスタ
400〜403でなる命令バッファに一時的に格納され
る。
The FFs 100 to 103 correspond to the instruction valid flags 100-1 to 103 corresponding to the register 403 as the word 3 from the register 400 as the word 0 in the instruction buffer.
Holds -1. For example, when the instruction valid flag 100-1 held by the FF 100 is “1”, the instruction in the corresponding register 400 is regarded as valid. FF100-103,
An instruction valid flag corresponding to the registers 400 to 403, that is, a flag indicating in which word (registers 400 to 403) a valid instruction exists. Instruction 000-
When 1 is valid and an instruction cannot be sent to the memory access request generation circuit MA for some reason, an instruction is temporarily stored in an instruction buffer including the registers 400 to 403. There are three causes for this. The first is that if instruction 000-1 is a vector gather instruction, the second is that the instruction preceding input 000-1 is stored in an instruction buffer consisting of registers 400 to 403. If there,
The third is a case where the preceding instruction does not exist in the instruction buffer including the registers 400 to 403, but the memory access request generation circuit MA cannot accept the instruction. In these cases, the instruction 000-1 is It is temporarily stored in an instruction buffer including registers 400 to 403.

【0027】次に、レジスタ400〜403でなる命令
バッファへの命令の格納のされ方は、通常のFIFOバ
ッファと同じで、初めの命令はレジスタ400に格納さ
れ、次の命令はレジスタ401に、さらに次の命令はレ
ジスタ402に、またさらに次の命令はレジスタ403
にと順に格納されていく。レジスタ400の命令がメモ
リアクセスリクエスト生成回路MAに送出されると、レ
ジスタ401の命令がレジスタ400に、レジスタ40
2の命令がレジスタ401に、レジスタ403の命令が
レジスタ402にと順に移動されていく。ただし、ベク
トルギャザー命令の追い越しのタイミングだけは、命令
の順番が入れ替わる。これらの命令の動きに対応して、
FF100〜103の命令有効フラグ100−1〜10
3−1等も制御される。
Next, instructions are stored in the instruction buffer consisting of the registers 400 to 403 in the same manner as in a normal FIFO buffer. The first instruction is stored in the register 400, and the next instruction is stored in the register 401. The next instruction is in register 402 and the next instruction is in register 403.
Are stored in order. When the instruction of the register 400 is sent to the memory access request generation circuit MA, the instruction of the register 401 is stored in the register 400,
The second instruction is moved to the register 401 and the instruction of the register 403 is moved to the register 402 in order. However, only the overtaking timing of the vector gather instruction changes the order of the instructions. In response to the movement of these instructions,
Instruction valid flags 100-1 to 100-3
3-1 and the like are also controlled.

【0028】FF200〜203は、レジスタ400〜
403に対応し、レジスタ400〜403に格納された
命令がベクトルギャザー命令か否かを示すベクトルギャ
ザー命令フラグ200−1〜203−1を保持する。
The FFs 200 to 203 include registers 400 to
403 holds vector gather instruction flags 200-1 to 203-1 indicating whether the instructions stored in the registers 400 to 403 are vector gather instructions.

【0029】セレクタ210〜212は、FF200〜
202に保持するベクトルギャザー命令フラグ200−
1〜202−1を選択的に切り換えるための回路であ
り、命令有効フラグ101−1〜103−1に応じてデ
コーダ500の出力信号500−1または前段のベクト
ルギャザー命令フラグ201−1〜203−1をFF2
00〜202に出力する。
The selectors 210 to 212 are connected to the FF 200 to
Vector gather instruction flag 200-
This is a circuit for selectively switching between Nos. 1 and 202-1. The output signal 500-1 of the decoder 500 or the vector gather instruction flags 201-1 to 203- of the preceding stage according to the instruction valid flags 101-1 to 103-1. 1 to FF2
Output to 00-202.

【0030】FF300〜303は、レジスタ400〜
403に対応し、レジスタ400〜403に格納された
命令がロード命令か否かを示すロード命令フラグ300
−1〜303−1を保持する。
The FFs 300 to 303 are registers 400 to
A load instruction flag 300 corresponding to 403 and indicating whether the instruction stored in the registers 400 to 403 is a load instruction or not.
-1 to 303-1 are held.

【0031】セレクタ310〜312は、FF300〜
302に保持するロード命令フラグ300−1〜302
−1を選択的に切り換えるための回路であり、命令有効
フラグ101−1〜103−1に応じてデコーダ501
の出力信号501−1または前段のロード命令フラグ3
01−1〜303−1をFF300〜302に出力す
る。
The selectors 310 to 312 are connected to the FFs 300 to
Load instruction flags 300-1 to 302 held in 302
-1 is a circuit for selectively switching -1 and the decoder 501 according to the instruction valid flags 101-1 to 103-1.
Output signal 501-1 or the preceding stage load instruction flag 3
01-1 to 303-1 are output to the FFs 300 to 302.

【0032】レジスタ400〜403は、命令を保持す
るためのレジスタで、ワード0〜3に対応している。
Registers 400 to 403 are registers for holding instructions, and correspond to words 0 to 3.

【0033】セレクタ410〜412は、レジスタ40
0〜402に保持する命令を選択的に切り換えるための
回路であり、命令有効フラグ101−1〜103−1に
応じて入力された命令コード000−1または前段のレ
ジスタ401〜403に保持された命令を後段のレジス
タ400〜402に出力する。
The selectors 410 to 412 are connected to the register 40
This is a circuit for selectively switching the instructions held in 0 to 402, and is stored in the instruction code 000-1 input according to the instruction valid flags 101-1 to 103-1 or the registers 401 to 403 in the preceding stage. The instruction is output to registers 400 to 402 at the subsequent stage.

【0034】デコーダ500は、スカラユニットSUか
ら入力された命令000―1がベクトルギャザー命令で
あるかどうかを判断するデコーダであり、命令000―
1がベクトルギャザー命令のときに“1”となる出力信
号500−1を出力する。
The decoder 500 determines whether or not the instruction 000-1 input from the scalar unit SU is a vector gather instruction.
An output signal 500-1 which becomes "1" when 1 is a vector gather instruction is output.

【0035】デコーダ501は、スカラユニットSUか
ら入力された命令000―1がロード命令であるかどう
かを判断するデコーダであり、命令000―1がロード
命令のときに“1”となる出力信号501−1を出力す
る。
The decoder 501 is a decoder for determining whether or not the instruction 000-1 input from the scalar unit SU is a load instruction. The output signal 501 becomes "1" when the instruction 000-1 is a load instruction. Outputs -1.

【0036】ベクトルギャザー命令発行判断回路502
は、ベクトルギャザー命令のアドレスがメモリアクセス
リクエスト生成回路MAに揃ったときにカウントアップ
するカウンタ(以下、ベクトルギャザー命令発行許可数
カウンタという)の値が“0”か否かを判断する回路で
ある。ベクトルギャザー命令発行判断回路502の出力
信号502−1が“0”のとき、先頭のベクトルギャザ
ー命令は発行できる状態にあると判断する。ベクトルギ
ャザー命令の発行許可を制御できるのはベクトルユニッ
トVUのみであり、ベクトルギャザー命令がアドレスと
して使用するベクトルレジスタのデータが確定している
かどうかという条件を検出して、ベクトルギャザー命令
の処理を開始できるかどうかを判断する。ベクトルギャ
ザー命令に先行する命令が、後続のベクトルギャザー命
令がアドレスとして使用するベクトルレジスタを更新し
ようとする場合に、先行する命令が終了するのを待たな
ければならない。このようにベクトルユニットVU内
で、ベクトルギャザー命令が使用するベクトルレジスタ
のデータが確定しているかどうかを判断し、発行許可と
いう形で、ベクトルギャザー命令発行判断回路502に
送り込まれ、ここでベクトルギャザー命令発行許可数カ
ウンタのカウントアップを行う。ベクトルギャザー命令
をメモリアクセスリクエスト生成回路MAに送出したな
らば、ベクトルギャザー命令発行許可数カウンタの値を
1だけカウントダウンする。これにより、実行待ちのベ
クトルギャザー命令が存在しないときは、ベクトルギャ
ザー命令発行判断回路502内のベクトルギャザー命令
発行許可数カウンタは“0”になっている。
Vector gather instruction issue determination circuit 502
Is a circuit that determines whether or not the value of a counter that counts up when the address of the vector gather instruction is aligned with the memory access request generating circuit MA (hereinafter, referred to as a vector gather instruction issuable number counter) is “0”. . When the output signal 502-1 of the vector gather instruction issuance determination circuit 502 is "0", it is determined that the head vector gather instruction can be issued. Only the vector unit VU can control the permission to issue the vector gather instruction. The vector gather instruction detects the condition of whether the data of the vector register used as the address is determined, and starts the processing of the vector gather instruction. Determine if you can. When an instruction preceding a vector gather instruction attempts to update a vector register used as an address by a subsequent vector gather instruction, it must wait for the preceding instruction to finish. As described above, it is determined whether or not the data of the vector register used by the vector gather instruction is determined in the vector unit VU, and is sent to the vector gather instruction issuance determination circuit 502 in a form of permitting the issuance. The instruction issue permission counter is counted up. When the vector gather instruction is sent to the memory access request generation circuit MA, the value of the vector gather instruction issuance permitted counter is counted down by one. As a result, when there is no vector gather instruction awaiting execution, the vector gather instruction issuance permitted number counter in the vector gather instruction issuance determination circuit 502 is "0".

【0037】セレクト信号生成回路503は、FF10
0〜103の命令有効フラグ100−1〜103−1,
FF200〜203のベクトルギャザー命令フラグ20
0−1〜203−1,FF300〜303のロード命令
フラグ300−1〜303−1,およびベクトルギャザ
ー命令発行判断回路502の出力信号502−1からレ
ジスタ400〜403でなる命令バッファあるいはベク
トルギャザー命令追い越し回路に入力された命令000
−1のいずれかを選択するためのセレクト信号503−
1を生成する回路である。
The select signal generation circuit 503 is connected to the FF 10
Instruction valid flags 100-1 to 103-1, 0 to 103
Vector gather instruction flag 20 of FFs 200 to 203
0-1 to 203-1, the load instruction flags 300-1 to 303-1 of the FFs 300 to 303, and the output signal 502-1 of the vector gather instruction issuance determination circuit 502 from the instruction buffer or the vector gather instruction composed of registers 400 to 403. Instruction 000 input to the overtaking circuit
Select signal 503 for selecting any one of
1 is a circuit for generating the “1.

【0038】セレクタ504は、セレクト信号生成回路
503からのセレクト信号503−1に基づいて、スカ
ラユニットSUから入力された命令000−1およびレ
ジスタ400〜403でなる命令バッファに蓄積された
命令からメモリアクセスリクエスト生成回路MAへ送出
する命令を選択する回路である。
The selector 504, based on the select signal 503-1 from the select signal generation circuit 503, converts the instruction 000-1 input from the scalar unit SU and the instruction stored in the instruction buffer consisting of the registers 400 to 403 into a memory. This is a circuit for selecting an instruction to be sent to the access request generation circuit MA.

【0039】図4は、セレクト信号生成回路503の論
理を表すテーブルである。このテーブルは、ベクトルギ
ャザー命令発行判断回路502の出力信号502−1,
FF100〜103の命令有効フラグ100−1〜10
3−1,FF200〜203のベクトルギャザー命令フ
ラグ200−1〜203−1,およびFF300〜30
3のロード命令フラグ300−1〜303−1の値を用
いて、メモリアクセスリクエスト生成回路MAへ送出す
る命令を判断する。ベクトルギャザー命令と後続のロー
ド命令との間に、ベクトルギャザー命令以外の命令が存
在する場合には、追い越しを行わないことを示している
が、ベクトルギャザー命令が2命令あるいは3命令連続
している場合に、後続のロード命令は、この2命令ある
いは3命令のベクトルギャザー命令を1マシンサイクル
で追い越すことができることも示している。
FIG. 4 is a table showing the logic of the select signal generation circuit 503. This table stores the output signals 502-1 and 502-1 of the vector gather instruction issuance determination circuit 502.
Instruction valid flags 100-1 to 100-3
3-1, vector gather instruction flags 200-1 to 203-1 of FFs 200 to 203, and FFs 300 to 30
3, the instruction to be sent to the memory access request generation circuit MA is determined using the values of the load instruction flags 300-1 to 303-1. If an instruction other than the vector gather instruction exists between the vector gather instruction and the subsequent load instruction, it indicates that no overtaking is performed, but two or three consecutive vector gather instructions are performed. In this case, the subsequent load instruction also indicates that the two or three vector gather instructions can pass in one machine cycle.

【0040】図5は、レジスタ401のベクトルロード
命令がレジスタ400のベクトルギャザー命令を追い越
す場合のタイムチャートを、従来の技術による同様の場
合と比較して示す図である。
FIG. 5 is a diagram showing a time chart when the vector load instruction of the register 401 overtakes the vector gather instruction of the register 400 in comparison with a similar case according to the prior art.

【0041】図6は、レジスタ402のベクトルロード
命令がレジスタ400および401のベクトルギャザー
命令を追い越す場合のタイムチャートを、従来の技術に
よる同様の場合と比較して示す図である。
FIG. 6 is a diagram showing a time chart when the vector load instruction of the register 402 overtakes the vector gather instruction of the registers 400 and 401 in comparison with a similar case according to the prior art.

【0042】図7は、レジスタ403のベクトルロード
命令がレジスタ400,401および402のベクトル
ギャザー命令を追い越す場合のタイムチャートを、従来
の技術による同様の場合と比較して示す図である。
FIG. 7 is a diagram showing a time chart when the vector load instruction of the register 403 overtakes the vector gather instruction of the registers 400, 401 and 402 in comparison with a similar case according to the prior art.

【0043】次に、このように構成された第1の実施の
形態に係るベクトルギャザー命令追い越し回路の動作に
ついて、図1ないし図7を参照して説明する。
Next, the operation of the vector gather instruction overtaking circuit according to the first embodiment thus configured will be described with reference to FIGS.

【0044】まず、レジスタ400〜403でなる命令
バッファに命令が存在しない場合の動作について説明す
る。
First, the operation when there is no instruction in the instruction buffer including the registers 400 to 403 will be described.

【0045】レジスタ400〜403でなる命令バッフ
ァに他の命令が存在しない場合、ベクトルギャザー命令
以外の命令はアドレスが揃うのを待つ必要がないため、
入力された命令000―1は、レジスタ400〜403
に格納されることなく、セレクタ504を抜け、メモリ
アクセスリクエスト生成回路MAへ送出される。
When there is no other instruction in the instruction buffer including the registers 400 to 403, instructions other than the vector gather instruction do not need to wait until the addresses are aligned.
The input instruction 000-1 is stored in registers 400 to 403.
Through the selector 504 without being stored in the memory access request generation circuit MA.

【0046】次に、レジスタ400〜403でなる命令
バッファにベクトルギャザー命令以外の命令が1命令で
も存在する場合の動作について説明する。
Next, the operation when an instruction other than the vector gather instruction is present in the instruction buffer including the registers 400 to 403 will be described.

【0047】レジスタ400〜403でなる命令バッフ
ァにベクトルギャザー命令以外の命令が1命令でも存在
する場合、レジスタ400〜403でなる命令バッファ
は通常のFIFOバッファと同じ動きをするため、入力
された命令000−1は先行する最終命令の次のワード
に書き込まれ、先行する命令がメモリアクセスリクエス
ト生成回路MAに送出されるたびに前段のワードへ移動
される。このとき、FF100〜103の命令有効フラ
グ100−1〜103−1,FF200〜203のベク
トルギャザー命令フラグ200−1〜203−1,およ
びFF300〜303のロード命令フラグ300−1〜
303−1も命令と同期して移動される。
When at least one instruction other than the vector gather instruction exists in the instruction buffer including the registers 400 to 403, the instruction buffer including the registers 400 to 403 operates in the same manner as a normal FIFO buffer. 000-1 is written to the next word of the preceding last instruction, and is moved to the preceding word every time the preceding instruction is sent to the memory access request generation circuit MA. At this time, the instruction valid flags 100-1 to 103-1 of the FFs 100 to 103, the vector gather instruction flags 200-1 to 203-1 of the FFs 200 to 203, and the load instruction flags 300-1 to 300-1 of the FFs 300 to 303.
303-1 is also moved in synchronization with the instruction.

【0048】例えば、レジスタ400および401に先
行する命令が存在する場合、入力された命令000−1
はレジスタ402に格納され、レジスタ400の命令が
メモリアクセスリクエスト生成回路MAへ送出されたタ
イミングで、レジスタ401の命令はレジスタ400
へ、レジスタ402の命令はレジスタ401へ移動され
る。レジスタ400の命令がメモリアクセスリクエスト
生成回路MAへ送出されたタイミングで、レジスタ40
1の命令はレジスタ400へ移動される。レジスタ40
0の命令がメモリアクセスリクエスト生成回路MAへ送
出されると、レジスタ400〜403でなる命令バッフ
ァ内は空となり、次の命令000−1が入力されるま
で、待機状態となる。
For example, if there is an instruction preceding registers 400 and 401, input instruction 000-1
Are stored in the register 402, and at the timing when the instruction of the register 400 is sent to the memory access request generation circuit MA, the instruction of the register 401 is
The instruction in register 402 is moved to register 401. At the timing when the instruction of the register 400 is sent to the memory access request generation circuit MA, the register 40
One instruction is moved to register 400. Register 40
When the instruction of 0 is sent to the memory access request generation circuit MA, the instruction buffer including the registers 400 to 403 becomes empty and enters a standby state until the next instruction 000-1 is input.

【0049】続いて、ベクトルギャザー命令の追い越し
の動作について説明する。
Next, the overtaking operation of the vector gather instruction will be described.

【0050】レジスタ400〜403でなる命令バッフ
ァにベクトルギャザー命令が存在する場合でも、ベクト
ルギャザー命令がレジスタ400に格納されるまでは、
前述した通常のFIFOバッファと同じ動作を行うた
め、説明は省略する。
Even if a vector gather instruction exists in the instruction buffer consisting of the registers 400 to 403, until the vector gather instruction is stored in the register 400,
Since the same operation as that of the above-mentioned ordinary FIFO buffer is performed, the description is omitted.

【0051】第1の実施の形態に係るベクトルギャザー
命令追い越し回路では、ベクトルギャザー命令の追い越
しには、3つのパタンが存在する。以下、ロード命令の
一例であるベクトルロード命令(ベクトルギャザー命令
を除く)が、ベクトルギャザー命令を追い越す3つのパ
タンについて説明する。
In the vector gather instruction overtaking circuit according to the first embodiment, there are three patterns for overtaking the vector gather instruction. Hereinafter, three patterns in which a vector load instruction (excluding the vector gather instruction), which is an example of the load instruction, overtakes the vector gather instruction will be described.

【0052】図5は、第1の追い越しパタンを示す。図
5(a)は本発明による追い越しを行った場合のタイム
チャートであり、図5(b)は従来技術によるタイムチ
ャートを示す。
FIG. 5 shows a first overtaking pattern. FIG. 5A is a time chart when passing is performed according to the present invention, and FIG. 5B is a time chart according to the related art.

【0053】図5(a)において、マシンサイクル0で
すでにレジスタ400にベクトルギャザー命令VGT0
が存在し、マシンサイクル1でレジスタ401にベクト
ルロード命令VLD0が格納されたものとする。する
と、命令有効フラグ100−1および101−1が
“1”および“1”、ベクトルギャザー命令フラグ20
0−1および201−1が“1”および“0”、ロード
命令フラグ300−1および301−1が“0”および
“1”となる。この時点では、まだベクトルギャザー命
令VGT0が発行できない状態であると仮定すると、ベ
クトルギャザー命令発行許可数カウンタの値が“0”で
あるため、ベクトルギャザー命令発行判断回路502の
出力信号502−1が“1”となる。このため、セレク
ト信号生成回路503は、レジスタ401の出力を選択
するセレクト信号503−1をセレクタ504に出力す
る(図4参照)。セレクタ504は、レジスタ401に
格納されているベクトルロード命令VLD0を選択し
て、メモリアクセスリクエスト生成回路MAに送出す
る。
In FIG. 5A, the vector gather instruction VGT0 is already stored in the register 400 in the machine cycle 0.
Exists, and the vector load instruction VLD0 is stored in the register 401 in the machine cycle 1. Then, the instruction valid flags 100-1 and 101-1 become "1" and "1", and the vector gather instruction flag 20
0-1 and 201-1 are "1" and "0", and the load instruction flags 300-1 and 301-1 are "0" and "1". At this time, assuming that the vector gather instruction VGT0 cannot be issued yet, the output signal 502-1 of the vector gather instruction issuance determination circuit 502 is output because the value of the vector gather instruction issuance permitted counter is "0". It becomes “1”. Therefore, the select signal generation circuit 503 outputs a select signal 503-1 for selecting the output of the register 401 to the selector 504 (see FIG. 4). The selector 504 selects the vector load instruction VLD0 stored in the register 401 and sends it to the memory access request generation circuit MA.

【0054】ベクトルギャザー命令VGT0の発行が可
能な状態になり、マシンサイクル4においてベクトルギ
ャザー命令発行許可数カウンタの値が“1”となると、
ベクトルギャザー命令発行判断回路502の出力信号5
02−1は“0”となる。このため、セレクト信号生成
回路503は、レジスタ400の出力を選択するセレク
ト信号503−1をセレクタ504に出力する(図4参
照)。セレクタ504は、レジスタ400に格納されて
いるベクトルギャザー命令VGT0を選択し、メモリア
クセスリクエスト生成回路MAに送出する。
When it becomes possible to issue the vector gather instruction VGT0 and the value of the vector gather instruction issuable number counter becomes "1" in machine cycle 4,
Output signal 5 of vector gather instruction issue determination circuit 502
02-1 is "0". Therefore, the select signal generation circuit 503 outputs a select signal 503-1 for selecting the output of the register 400 to the selector 504 (see FIG. 4). The selector 504 selects the vector gather instruction VGT0 stored in the register 400 and sends it to the memory access request generation circuit MA.

【0055】図5(a)と図5(b)とを比べると、本
発明による追い越しを行った場合のタイムチャートの方
が、従来の技術によるタイムチャートより、ベクトルロ
ード命令VLD0がメモリアクセスリクエスト生成回路
MAに送出されるタイミングが4マシンサイクル早くな
っている。この違いは、ベクトルギャザー命令の発行が
可能になるタイミングが遅くなればなるほど、広がって
いく。
When comparing FIG. 5A and FIG. 5B, the time chart in the case where the overtaking according to the present invention is performed is larger than the time chart according to the prior art in that the vector load instruction VLD0 has a memory access request. The timing of transmission to the generation circuit MA is earlier by four machine cycles. This difference spreads as the timing at which the issue of the vector gather instruction becomes possible becomes later.

【0056】図6は、第2の追い越しパタンを示す。図
6(a)は本発明による追い越しを行った場合のタイム
チャートであり、図6(b)は従来の技術によるタイム
チャートを示す。
FIG. 6 shows a second overtaking pattern. FIG. 6A is a time chart when passing is performed according to the present invention, and FIG. 6B is a time chart according to a conventional technique.

【0057】図6(a)において、マシンサイクル0で
すでにレジスタ400および401にそれぞれにベクト
ルギャザー命令VGT0およびVGT1が存在し、マシ
ンサイクル1でレジスタ402にベクトルロード命令V
LD0が格納されたものとする。すると、命令有効フラ
グ100−1,101−1および102−1が“1”,
“1”および“1”、ベクトルギャザー命令フラグ20
0−1,201−1および202−1が“1”,“1”
および“0”、ロード命令フラグ300−1,301−
1および302−1が“0”,“0”および“1”とな
る。この時点では、まだベクトルギャザー命令VGT0
およびVGT1が発行できない状態と仮定すると、ベク
トルギャザー命令発行許可数カウンタの値が“0”であ
るため、ベクトルギャザー命令発行判断回路502の出
力信号502−1が“1”となる。このため、セレクト
信号生成回路503は、レジスタ402の出力を選択す
るセレクト信号503−1をセレクタ504に出力する
(図4参照)。セレクタ504は、レジスタ402に格
納されているベクトルロード命令VLD0を選択して、
メモリアクセスリクエスト生成回路MAに送出する。
In FIG. 6A, vector gather instructions VGT0 and VGT1 already exist in registers 400 and 401 respectively in machine cycle 0, and vector load instruction VGT in register 402 in machine cycle 1.
It is assumed that LD0 is stored. Then, the instruction valid flags 100-1, 101-1 and 102-1 become "1",
“1” and “1”, vector gather instruction flag 20
0-1, 201-1 and 202-1 are "1", "1"
And "0", the load instruction flags 300-1, 301-
1 and 302-1 become "0", "0" and "1". At this point, the vector gather instruction VGT0 is still
Assuming that VGT1 and VGT1 cannot be issued, the output signal 502-1 of the vector gather instruction issue determination circuit 502 becomes "1" because the value of the vector gather instruction issue permitted number counter is "0". Therefore, the select signal generation circuit 503 outputs a select signal 503-1 for selecting the output of the register 402 to the selector 504 (see FIG. 4). The selector 504 selects the vector load instruction VLD0 stored in the register 402,
It is sent to the memory access request generation circuit MA.

【0058】ベクトルギャザー命令VGT0の発行が可
能な状態になり、マシンサイクル4においてベクトルギ
ャザー命令発行許可数カウンタの値が“1”となると、
ベクトルギャザー命令発行判断回路502の出力信号5
02−1は“0”となる。このため、セレクト信号生成
回路503は、レジスタ400の出力を選択するセレク
ト信号503−1をセレクタ504に出力する(図4参
照)。セレクタ504は、レジスタ400に格納されて
いるベクトルギャザー命令VGT0を選択して、メモリ
アクセスリクエスト生成回路MAに送出する。このと
き、レジスタ401に格納されているベクトルギャザー
命令VGT1はレジスタ400に移動され、ベクトルギ
ャザー命令発行許可数カウンタの値が“0”にカウント
ダウンされる。
When it becomes possible to issue the vector gather instruction VGT0 and the value of the vector gather instruction issuable number counter becomes "1" in machine cycle 4,
Output signal 5 of vector gather instruction issue determination circuit 502
02-1 is "0". Therefore, the select signal generation circuit 503 outputs a select signal 503-1 for selecting the output of the register 400 to the selector 504 (see FIG. 4). The selector 504 selects the vector gather instruction VGT0 stored in the register 400 and sends it to the memory access request generation circuit MA. At this time, the vector gather instruction VGT1 stored in the register 401 is moved to the register 400, and the value of the vector gather instruction issuance permitted number counter is counted down to “0”.

【0059】ベクトルギャザー命令VGT1の発行が可
能な状態になり、マシンサイクル9においてベクトルギ
ャザー命令発行許可数カウンタの値が“1”となると、
ベクトルギャザー命令発行判断回路502の出力信号5
02−1は“0”となる。このため、セレクト信号生成
回路503は、レジスタ400の出力を選択するセレク
ト信号503−1をセレクタ504に出力する(図4参
照)。セレクタ504は、レジスタ400に格納されて
いるベクトルギャザー命令VGT1を選択して、メモリ
アクセスリクエスト生成回路MAに送出する。このと
き、ベクトルギャザー命令発行許可数カウンタの値が
“0”にカウントダウンされる。
When it becomes possible to issue the vector gather instruction VGT 1 and the value of the vector gather instruction issue number counter becomes “1” in machine cycle 9,
Output signal 5 of vector gather instruction issue determination circuit 502
02-1 is "0". Therefore, the select signal generation circuit 503 outputs a select signal 503-1 for selecting the output of the register 400 to the selector 504 (see FIG. 4). The selector 504 selects the vector gather instruction VGT1 stored in the register 400 and sends it to the memory access request generation circuit MA. At this time, the value of the vector gather instruction issue permitted number counter is counted down to “0”.

【0060】図6(a)と図6(b)と比べると、本発
明による追い越しを行った場合のタイムチャートの方
が、従来の技術によるタイムチャートより、ベクトルロ
ード命令VLD0がメモリアクセスリクエスト生成回路
MAに送出されるタイミングが9マシンサイクル早くな
っている。この違いは、ベクトルギャザー命令の発行が
可能になるタイミングが遅くなればなるほど、広がって
いく。
Compared with FIGS. 6A and 6B, the time chart in the case where the overtaking is performed according to the present invention is different from the time chart according to the conventional technique in that the vector load instruction VLD0 generates the memory access request. The timing of sending to the circuit MA is 9 machine cycles earlier. This difference spreads as the timing at which the issue of the vector gather instruction becomes possible becomes later.

【0061】図7は、第3の追い越しパタンを示す。図
7(a)は本発明による追い越しを行った場合のタイム
チャート、図7(b)は従来の技術によるタイムチャー
トを示す。
FIG. 7 shows a third overtaking pattern. FIG. 7A is a time chart when passing is performed according to the present invention, and FIG. 7B is a time chart according to a conventional technique.

【0062】図7(a)において、マシンサイクル0で
すでにレジスタ400,401および402にそれぞれ
にベクトルギャザー命令VGT0,VGT1およびVG
T2が存在し、マシンサイクル1でレジスタ403にベ
クトルロード命令VLD0が格納されたものとする。す
ると、命令有効フラグ100−1,101−1,102
−1および103−1が“1”,“1”,“1”および
“1”、ベクトルギャザー命令フラグ200−1,20
1−1,202−1および203−1が“1”,
“1”,“1”および“0”、ロード命令フラグ300
−1,301−1,302−1および303−1が
“0”,“0”,“0”および“1”となる。この時点
では、まだベクトルギャザー命令VGT0,VGT1お
よびVGT2が発行できない状態と仮定すると、ベクト
ルギャザー命令発行許可数カウンタの値が“0”である
ため、ベクトルギャザー命令発行判断回路502の出力
信号502−1が“1”となる。このため、セレクト信
号生成回路503は、レジスタ403の出力を選択する
セレクト信号503−1をセレクタ504に出力する
(図4参照)。セレクタ504は、レジスタ403に格
納されているベクトルロード命令VLD0を選択して、
メモリアクセスリクエスト生成回路MAに送出する。
In FIG. 7A, in machine cycle 0, vector gather instructions VGT0, VGT1 and VG are already stored in registers 400, 401 and 402, respectively.
It is assumed that T2 exists and the vector load instruction VLD0 is stored in the register 403 in the machine cycle 1. Then, the instruction valid flags 100-1, 101-1, and 102
-1 and 103-1 are "1", "1", "1" and "1", and the vector gather instruction flags 200-1, 20
1-1, 202-1 and 203-1 are "1",
“1”, “1” and “0”, load instruction flag 300
-1, 301-1, 302-1 and 303-1 become "0", "0", "0" and "1". At this point, assuming that the vector gather instructions VGT0, VGT1 and VGT2 cannot be issued yet, since the value of the vector gather instruction issuance permitted counter is "0", the output signal 502-of the vector gather instruction issuance determination circuit 502 is determined. 1 becomes “1”. Therefore, the select signal generation circuit 503 outputs a select signal 503-1 for selecting the output of the register 403 to the selector 504 (see FIG. 4). The selector 504 selects the vector load instruction VLD0 stored in the register 403,
It is sent to the memory access request generation circuit MA.

【0063】ベクトルギャザー命令VGT0の発行が可
能な状態になり、マシンサイクル4においてベクトルギ
ャザー命令発行許可数カウンタの値が“1”となると、
ベクトルギャザー命令発行判断回路502の出力信号5
02−1は“0”となる。このため、セレクト信号生成
回路503は、レジスタ400の出力を選択するセレク
ト信号503−1をセレクタ504に出力する。セレク
タ504は、レジスタ400に格納されているベクトル
ギャザー命令VGT0を選択し、メモリアクセスリクエ
スト生成回路MAに送出する(図4参照)。このとき、
レジスタ401に格納されているベクトルギャザー命令
VGT1はレジスタ400に、レジスタ402に格納さ
れているベクトルギャザー命令VGT2はレジスタ40
1にそれぞれ移動され、ベクトルギャザー命令発行許可
数カウンタの値が“0”にカウントダウンされる。
When it becomes possible to issue the vector gather instruction VGT 0 and the value of the vector gather instruction issue permitted number counter becomes “1” in machine cycle 4,
Output signal 5 of vector gather instruction issue determination circuit 502
02-1 is "0". Therefore, the select signal generation circuit 503 outputs a select signal 503-1 for selecting the output of the register 400 to the selector 504. The selector 504 selects the vector gather instruction VGT0 stored in the register 400 and sends it to the memory access request generation circuit MA (see FIG. 4). At this time,
The vector gather instruction VGT1 stored in the register 401 is stored in the register 400, and the vector gather instruction VGT2 stored in the register 402 is stored in the register 40.
The number is moved to 1, and the value of the vector gather instruction issue permitted number counter is counted down to “0”.

【0064】ベクトルギャザー命令VGT1の発行が可
能な状態になり、マシンサイクル9においてベクトルギ
ャザー命令発行許可数カウンタの値が“1”となると、
ベクトルギャザー命令発行判断回路502の出力信号5
02−1は“0”となる。このため、セレクト信号生成
回路503は、レジスタ400の出力を選択するセレク
ト信号503−1をセレクタ504に出力する。セレク
タ504は、レジスタ400に格納されているベクトル
ギャザー命令VGT1を選択し、メモリアクセスリクエ
スト生成回路MAに送出する(図4参照)。このとき、
レジスタ401に格納されているベクトルギャザー命令
VGT2はレジスタ400に移動され、ベクトルギャザ
ー命令発行許可数カウンタの値が“0”にカウントダウ
ンされる。
When it becomes possible to issue the vector gather instruction VGT 1 and the value of the vector gather instruction issuable number counter becomes “1” in machine cycle 9,
Output signal 5 of vector gather instruction issue determination circuit 502
02-1 is "0". Therefore, the select signal generation circuit 503 outputs a select signal 503-1 for selecting the output of the register 400 to the selector 504. The selector 504 selects the vector gather instruction VGT1 stored in the register 400 and sends it to the memory access request generation circuit MA (see FIG. 4). At this time,
The vector gather instruction VGT2 stored in the register 401 is moved to the register 400, and the value of the vector gather instruction issuable number counter is counted down to “0”.

【0065】ベクトルギャザー命令VGT2の発行が可
能な状態になり、マシンサイクル15においてベクトル
ギャザー命令発行許可数カウンタの値が“1”となる
と、ベクトルギャザー命令発行判断回路502の出力信
号502−1は“0”となる。このため、セレクト信号
生成回路503は、レジスタ400の出力を選択するセ
レクト信号503−1をセレクタ504に出力する。セ
レクタ504は、レジスタ400に格納されているベク
トルギャザー命令VGT2を選択し、メモリアクセスリ
クエスト生成回路MAに送出する。このとき、ベクトル
ギャザー命令発行許可数カウンタの値が“0”にカウン
トダウンされる。
When it becomes possible to issue the vector gather instruction VGT2 and the value of the vector gather instruction issuance permitted counter becomes "1" in the machine cycle 15, the output signal 502-1 of the vector gather instruction issuance determination circuit 502 becomes It becomes “0”. Therefore, the select signal generation circuit 503 outputs a select signal 503-1 for selecting the output of the register 400 to the selector 504. The selector 504 selects the vector gather instruction VGT2 stored in the register 400 and sends it to the memory access request generation circuit MA. At this time, the value of the vector gather instruction issue permitted number counter is counted down to “0”.

【0066】図7(a)と図7(b)とを比べると、本
発明による追い越しを行った場合のタイムチャートの方
が、従来の技術によるタイムチャートより、ベクトルロ
ード命令VLD0がメモリアクセスリクエスト生成回路
MAに送出されるタイミングが14マシンサイクル早く
なっている。この違いは、ベクトルギャザー命令の発行
が可能になるタイミングが遅くなればなるほど、広がっ
ていく。
When comparing FIG. 7A and FIG. 7B, the time chart in the case where the overtaking according to the present invention is performed is larger than the time chart according to the prior art in that the vector load instruction VLD0 has a memory access request. The timing of sending to the generation circuit MA is earlier by 14 machine cycles. This difference spreads as the timing at which the issue of the vector gather instruction becomes possible becomes later.

【0067】(2) 第2の実施の形態 ところで、第1の実施の形態に係るベクトルギャザー命
令追い越し回路では、先行するベクトルギャザー命令に
後続するロード命令を必ずレジスタ401〜403でな
る命令バッファに一度格納してから追い越しを行うよう
にしたが、命令バッファに格納せずに、セレクタ504
に直接入力してメモリアクセスリクエスト生成回路MA
に送出することも可能である。
(2) Second Embodiment In the vector gather instruction overtaking circuit according to the first embodiment, a load instruction following a preceding vector gather instruction is always stored in an instruction buffer including registers 401 to 403. Although passing is performed after storing once, the selector 504 is not stored in the instruction buffer.
Memory access request generation circuit MA
Can also be sent to

【0068】図8は、このようにした本発明の第2の実
施の形態に係るベクトルギャザー命令追い越し回路の構
成を示す回路ブロック図である。本実施の形態に係るベ
クトルギャザー命令追い越し回路は、図1に示した第1
の実施の形態に係るベクトルギャザー命令追い越し回路
に対して、デコーダ501の出力信号501−1がセレ
クト信号生成回路503に直接入力されている点だけが
異なる。したがって、その他の部分は、同一符号を付し
て詳しい説明を割愛する。
FIG. 8 is a circuit block diagram showing the configuration of the vector gather instruction passing circuit according to the second embodiment of the present invention. The vector gather instruction overtaking circuit according to this embodiment is the first gathering circuit shown in FIG.
The difference is that the output signal 501-1 of the decoder 501 is directly input to the select signal generation circuit 503 with respect to the vector gather instruction overtaking circuit according to the embodiment. Therefore, the other parts are denoted by the same reference numerals and detailed description is omitted.

【0069】図9は、第2の実施の形態に係るベクトル
ギャザー命令追い越し回路におけるセレクト信号生成回
路503の論理を表すテーブルである。このテーブル
は、図4に示した第1の実施の形態に係るベクトルギャ
ザー命令追い越し回路におけるセレクト信号生成回路5
03の論理を表すテーブルに対して、デコーダ501の
出力信号501−1が判断の1要素として加味されてい
る点だけが異なっている。
FIG. 9 is a table showing the logic of the select signal generation circuit 503 in the vector gather instruction overtaking circuit according to the second embodiment. This table corresponds to the select signal generation circuit 5 in the vector gather instruction overtaking circuit according to the first embodiment shown in FIG.
The difference is that the output signal 501-1 of the decoder 501 is added to the table representing the logic of 03 as one element of the judgment.

【0070】このように構成された第2の実施の形態に
係るベクトルギャザー命令追い越し回路では、デコーダ
501の出力信号501−1をセレクト信号生成回路5
03に直接入力することにより、セレクト信号生成回路
503は、入力された命令000―1がロード命令であ
るかどうかを直ちに判断できる。また、セレクト信号生
成回路503では、FF200〜203のベクトルギャ
ザー命令フラグ200−1〜203−1からどこのワー
ドにベクトルギャザー命令が存在しているかを判断で
き、さらにベクトルギャザー命令発行判断回路502の
出力信号502−1からベクトルギャザー命令の発行許
可がきているかどうかも判断できる。したがって、命令
000―1がロード命令で、先行するベクトルギャザー
命令を追い越せる場合は、セレクタ504が命令000
―1を選択するように制御することにより、後続のロー
ド命令を命令バッファに格納せずにセクタ504に直接
入力し、メモリアクセスリクエスト生成回路MAに送出
することが実現できる。
In the vector gather instruction overtaking circuit according to the second embodiment configured as described above, the output signal 501-1 of the decoder 501 is output to the select signal generation circuit 5
By directly inputting the data to the instruction 03, the select signal generation circuit 503 can immediately determine whether the input instruction 000-1 is a load instruction. The select signal generation circuit 503 can determine from which vector gather instruction flag exists the vector gather instruction flags 200-1 to 203-1 of the FFs 200 to 203. It can also be determined from the output signal 502-1 whether issuance of the vector gather instruction has been permitted. Therefore, if the instruction 000-1 is a load instruction and can overtake the preceding vector gather instruction, the selector 504 sets the instruction 000
By controlling to select “−1”, it is possible to directly input the subsequent load instruction to the sector 504 without storing it in the instruction buffer, and to transmit it to the memory access request generation circuit MA.

【0071】ところで、上記各実施の形態では、命令バ
ッファを4ワードとしたが、命令バッファのワード数は
任意に設定することができる。
In the above embodiments, the instruction buffer has four words. However, the number of words in the instruction buffer can be set arbitrarily.

【0072】また、上記各実施の形態では、命令バッフ
ァをレジスタ400〜403で構成するようにしたが、
RAM(Random Access Memory)
で構成することも可能である。ここでいうRAMは、一
般のCPU内のキャッシュなどに使用されている記憶回
路であり、容量はそれほど大きくなくてよく、幅は命令
分、ワードは数ワードあれば十分である。
In the above embodiments, the instruction buffer is constituted by the registers 400 to 403.
RAM (Random Access Memory)
It is also possible to configure with. The RAM referred to here is a storage circuit used for a cache or the like in a general CPU, and its capacity does not need to be so large. It is sufficient if the width is equal to the instruction and the word is several words.

【0073】[0073]

【発明の効果】第1の効果は、少量のハードウェアで、
メモリアクセスリクエストを効率良く処理することが可
能になることである。その理由は、ベクトルギャザー命
令をメモリアクセスリクエスト生成回路に送出できない
場合に、後続のロード命令をベクトルギャザー命令に先
行してメモリアクセスリクエスト生成回路に送出するこ
とにより、メモリアクセスリクエスト生成回路の無駄な
空き時間を無くすことができるためである。
The first effect is that with a small amount of hardware,
It is possible to efficiently process a memory access request. The reason is that when the vector gather instruction cannot be sent to the memory access request generation circuit, the subsequent load instruction is sent to the memory access request generation circuit prior to the vector gather instruction, so that the memory access request generation circuit is wasted. This is because idle time can be eliminated.

【0074】第2の効果は、ベクトルギャザー命令を後
続のロード命令が追い越すため、メモリのアクセスエリ
アのチェックも必要なく、少量のハードウェアでかつ追
い越し可否判断時間も短いことである。その理由は、プ
ログラムがコンパイラによって事前にコンパイルされて
いるので、先行するベクトルギャザー命令と後続のロー
ド命令との間でレジスタの重複使用をチェックする必要
がないからである。
The second effect is that since the subsequent load instruction overtakes the vector gather instruction, there is no need to check the memory access area, the amount of hardware is small, and the time for determining whether or not overtaking is possible is short. The reason is that because the program has been pre-compiled by the compiler, there is no need to check for duplicate register usage between the preceding vector gather instruction and the subsequent load instruction.

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

【図1】本発明の第1の実施の形態に係るベクトルギャ
ザー命令追い越し回路の構成を示す回路ブロック図であ
る。
FIG. 1 is a circuit block diagram showing a configuration of a vector gather instruction overtaking circuit according to a first embodiment of the present invention.

【図2】本発明によるベクトルギャザー命令追い越し回
路の配置関係を説明するブロック図である。
FIG. 2 is a block diagram illustrating an arrangement relationship of a vector gather instruction overtaking circuit according to the present invention.

【図3】(a)はベクトルロード命令のフォーマット
を、(b)はベクトルギャザー命令のフォーマットをそ
れぞれ示す図である。
3A is a diagram illustrating a format of a vector load instruction, and FIG. 3B is a diagram illustrating a format of a vector gather instruction.

【図4】図1中のセレクト信号生成回路の論理を表すテ
ーブルである。
FIG. 4 is a table showing logic of a select signal generation circuit in FIG. 1;

【図5】(a)はベクトルロード命令がベクトルギャザ
ー命令を追い越す場合のタイムチャート、(b)は従来
の技術による同様の場合のタイムチャートである。
FIG. 5A is a time chart in a case where a vector load instruction overtakes a vector gather instruction, and FIG. 5B is a time chart in a similar case according to a conventional technique.

【図6】(a)はベクトルロード命令が2つのベクトル
ギャザー命令を追い越す場合のタイムチャート、(b)
は従来の技術による同様の場合のタイムチャートであ
る。
6A is a time chart when a vector load instruction overtakes two vector gather instructions, and FIG.
Is a time chart in a similar case according to the prior art.

【図7】(a)はベクトルロード命令が3つのベクトル
ギャザー命令を追い越す場合のタイムチャート、(b)
は従来の技術による同様の場合のタイムチャートであ
る。
7A is a time chart when a vector load instruction overtakes three vector gather instructions, and FIG.
Is a time chart in a similar case according to the prior art.

【図8】本発明の第2の実施の形態に係るベクトルギャ
ザー命令追い越し回路の構成を示す回路ブロック図であ
る。
FIG. 8 is a circuit block diagram illustrating a configuration of a vector gather instruction overtaking circuit according to a second embodiment of the present invention.

【図9】図8中のセレクト信号生成回路の論理を表すテ
ーブルである。
FIG. 9 is a table showing logic of a select signal generation circuit in FIG. 8;

【図10】(a)は通常のロード命令の処理経路、
(b)は従来のベクトルギャザー命令の処理経路を説明
するブロック図である。
FIG. 10A shows a processing path of a normal load instruction,
FIG. 2B is a block diagram illustrating a processing path of a conventional vector gather instruction.

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

100〜103 フリップフロップ 100−1〜103−1 命令有効フラグ 200〜203 フリップフロップ 200−1〜203−1 ベクトルギャザー命令フラグ 210〜212 セレクタ 300〜303 フリップフロップ 300−1〜303−1 ロード命令フラグ 310〜312 セレクタ 400〜403 レジスタ 410〜413 セレクタ 500 デコーダ 500−1 出力信号 501 デコーダ 501−1 出力信号 502 ベクトルギャザー命令発行判断回路 502−1 出力信号 503 セレクト信号生成回路 503−1 セレクト信号 504 セレクタ MA メモリアクセスリクエスト生成回路 SU スカラユニット VG ベクトルギャザー命令追い越し回路 VU ベクトルユニット 100 to 103 flip-flops 100-1 to 103-1 instruction valid flags 200 to 203 flip-flops 200-1 to 203-1 vector gather instruction flags 210 to 212 selectors 300 to 303 flip-flops 300-1 to 303-1 load instruction flags 310 to 312 selector 400 to 403 register 410 to 413 selector 500 decoder 500-1 output signal 501 decoder 501-1 output signal 502 vector gather instruction issue determination circuit 502-1 output signal 503 select signal generation circuit 503-1 select signal 504 selector MA Memory access request generation circuit SU Scalar unit VG Vector gather instruction overtaking circuit VU vector unit

Claims (6)

【特許請求の範囲】[Claims] 【請求項1】スカラユニットから命令を入力するととも
にベクトルユニットからベクトルギャザー命令発行許可
を入力し、ベクトルギャザー命令が入力されたときに該
ベクトルギャザー命令に対する命令発行許可がなければ
該ベクトルギャザー命令を保持し、ロード命令が入力さ
れたときに該ロード命令に先行するベクトルギャザー命
令が保持されていれば該ロード命令を先行するベクトル
ギャザー命令を追い越してメモリアクセスリクエスト生
成回路に対して発行することを特徴とするベクトルギャ
ザー命令追い越し回路。
An instruction is input from a scalar unit and a permission to issue a vector gather instruction is input from a vector unit. If the instruction to issue a vector gather instruction is not granted when the vector gather instruction is input, the vector gather instruction is issued. When the load instruction is input, if the vector gather instruction preceding the load instruction is held, the load instruction is issued to the memory access request generation circuit overtaking the preceding vector gather instruction. Characteristic vector gather instruction overtaking circuit.
【請求項2】スカラユニット,ベクトルユニットおよび
メモリアクセスリクエスト生成回路を備えるベクトル処
理装置において、前記ベクトルユニットでベクトルギャ
ザー命令のアドレスが揃うまで該ベクトルギャザー命令
および後続の命令が待ち合わせるための命令バッファ
と、前記命令バッファの各段に格納された命令の有効/
無効を示す命令有効フラグを保持する第1のフリップフ
ロップ群と、前記スカラユニットから入力された命令が
ベクトルギャザー命令であるかどうかを判断する第1の
デコーダと、前記第1のデコーダの出力信号に基づいて
前記命令バッファの各段に格納された命令がベクトルギ
ャザー命令であるかどうかを示すベクトルギャザー命令
フラグを保持する第2のフリップフロップ群と、前記ス
カラユニットから入力された命令がロード命令であるか
どうかを判断する第2のデコーダと、前記第2のデコー
ダの出力信号に基づいて前記命令バッファの各段に格納
された命令がロード命令であるかどうかを示すロード命
令フラグを保持する第3のフリップフロップ群と、前記
ベクトルユニットからのベクトルギャザー命令発行許可
をカウントし前記命令バッファに格納されているベクト
ルギャザー命令の発行可否状態を判断するベクトルギャ
ザー命令発行判断回路と、前記ベクトルギャザー命令発
行判断回路の出力信号,前記命令有効フラグ,前記ベク
トルギャザー命令フラグおよび前記ロード命令フラグに
基づいて後続するロード命令による先行するベクトルギ
ャザー命令の追い越しの可否を判定し、入力された命令
および前記命令バッファに蓄積された命令から前記メモ
リアクセスリクエスト生成回路に送出する命令を選択す
るためのセレクト信号を生成するセレクト信号生成回路
と、前記セレクト信号生成回路からのセレクト信号に基
づいて入力された命令および前記命令バッファに蓄積さ
れた命令から前記メモリアクセスリクエスト生成回路へ
送出する命令を選択するセレクタとを有することを特徴
とするベクトルギャザー命令追い越し回路。
2. A vector processing apparatus comprising a scalar unit, a vector unit, and a memory access request generation circuit, comprising: an instruction buffer for waiting the vector gather instruction and a subsequent instruction until the vector gather instruction addresses are aligned in the vector unit. The validity of the instruction stored in each stage of the instruction buffer /
A first flip-flop group that holds an instruction valid flag indicating invalidity, a first decoder that determines whether an instruction input from the scalar unit is a vector gather instruction, and an output signal of the first decoder A second flip-flop group that holds a vector gather instruction flag indicating whether the instruction stored in each stage of the instruction buffer is a vector gather instruction, and a load instruction that is an instruction input from the scalar unit. And a load instruction flag indicating whether an instruction stored in each stage of the instruction buffer is a load instruction based on an output signal of the second decoder. Counting a third flip-flop group and a vector gather instruction issuance permission from the vector unit; A vector gather instruction issuance determination circuit for determining whether the vector gather instruction issuable or not stored in the instruction buffer is issued, an output signal of the vector gather instruction issuance determination circuit, the instruction valid flag, the vector gather instruction flag, and the load instruction Determining whether or not a preceding load instruction can be overtaken by a subsequent load instruction based on a flag, and selecting an instruction to be sent to the memory access request generation circuit from the input instruction and the instruction stored in the instruction buffer; A select signal generating circuit for generating a select signal, and selecting an instruction to be transmitted to the memory access request generating circuit from an instruction input based on the select signal from the select signal generating circuit and an instruction stored in the instruction buffer. Selector and Vector gather instruction overtaking circuit, characterized in that it comprises.
【請求項3】スカラユニット,ベクトルユニットおよび
メモリアクセスリクエスト生成回路を備えるベクトル処
理装置において、前記ベクトルユニットでベクトルギャ
ザー命令のアドレスが揃うまで該ベクトルギャザー命令
および後続の命令が待ち合わせるための命令バッファ
と、前記命令バッファの各段に格納された命令の有効/
無効を示す命令有効フラグを保持する第1のフリップフ
ロップ群と、前記スカラユニットから入力された命令が
ベクトルギャザー命令であるかどうかを判断する第1の
デコーダと、前記第1のデコーダの出力信号に基づいて
前記命令バッファの各段に格納された命令がベクトルギ
ャザー命令であるかどうかを示すベクトルギャザー命令
フラグを保持する第2のフリップフロップ群と、前記ス
カラユニットから入力された命令がロード命令であるか
どうかを判断する第2のデコーダと、前記第2のデコー
ダの出力信号に基づいて前記命令バッファの各段に格納
された命令がロード命令であるかどうかを示すロード命
令フラグを保持する第3のフリップフロップ群と、前記
ベクトルユニットからのベクトルギャザー命令発行許可
をカウントし前記命令バッファに格納されているベクト
ルギャザー命令の発行可否状態を判断するベクトルギャ
ザー命令発行判断回路と、前記ベクトルギャザー命令発
行判断回路の出力信号,前記命令有効フラグ,前記ベク
トルギャザー命令フラグ,前記第2のデコーダの出力信
号および前記ロード命令フラグに基づいて後続するロー
ド命令による先行するベクトルギャザー命令の追い越し
の可否を判定し、入力された命令および前記命令バッフ
ァに蓄積された命令から前記メモリアクセスリクエスト
生成回路に送出する命令を選択するためのセレクト信号
を生成するセレクト信号生成回路と、前記セレクト信号
生成回路からのセレクト信号に基づいて入力された命令
および前記命令バッファに蓄積された命令から前記メモ
リアクセスリクエスト生成回路へ送出する命令を選択す
るセレクタとを有することを特徴とするベクトルギャザ
ー命令追い越し回路。
3. A vector processing apparatus comprising a scalar unit, a vector unit, and a memory access request generation circuit, comprising: an instruction buffer for waiting the vector gather instruction and a subsequent instruction until addresses of the vector gather instruction are aligned in the vector unit. The validity of the instruction stored in each stage of the instruction buffer /
A first flip-flop group that holds an instruction valid flag indicating invalidity, a first decoder that determines whether an instruction input from the scalar unit is a vector gather instruction, and an output signal of the first decoder A second group of flip-flops that hold a vector gather instruction flag indicating whether the instruction stored in each stage of the instruction buffer is a vector gather instruction, and a load instruction that is input from the scalar unit. And a load instruction flag indicating whether an instruction stored in each stage of the instruction buffer is a load instruction based on an output signal of the second decoder. Counting the permission of issuing a vector gather instruction from the third flip-flop group and the vector unit; A vector gather instruction issuance determination circuit for determining whether or not the vector gather instruction stored in the instruction buffer can be issued; an output signal of the vector gather instruction issuance determination circuit; the instruction valid flag; the vector gather instruction flag; It is determined whether or not the preceding vector gather instruction can be overtaken by the subsequent load instruction based on the output signal of the decoder and the load instruction flag. A select signal generation circuit for generating a select signal for selecting an instruction to be sent to the circuit; and a memory access from an instruction input based on a select signal from the select signal generation circuit and an instruction stored in the instruction buffer. Send to request generation circuit Vector gather instruction overtaking circuit, characterized in that a selector for selecting an instruction to be.
【請求項4】 前記命令バッファが、複数段のレジスタ
でなることを特徴とする請求項2または請求項3記載の
ベクトルギャザー命令追い越し回路。
4. The vector gather instruction overtaking circuit according to claim 2, wherein the instruction buffer comprises a plurality of stages of registers.
【請求項5】 前記命令バッファが、RAMでなること
を特徴とする請求項2または請求項3記載のベクトルギ
ャザー命令追い越し回路。
5. The vector gather instruction passing circuit according to claim 2, wherein the instruction buffer is a RAM.
【請求項6】 命令を出力するスカラユニットと、前記
スカラユニットから命令を入力してベクトルギャザー命
令発行許可およびアドレスを出力するベクトルユニット
と、前記スカラユニットから命令を入力するとともに前
記ベクトルユニットからベクトルギャザー命令発行許可
を入力し、ベクトルギャザー命令が入力されたときに該
ベクトルギャザー命令に対する命令発行許可がなければ
該ベクトルギャザー命令を保持し、ロード命令が入力さ
れたときに該ロード命令に先行するベクトルギャザー命
令が保持されていれば該ロード命令を先行するベクトル
ギャザー命令を追い越して発行するベクトルギャザー命
令追い越し回路と、前記ベクトルギャザー命令追い越し
回路から命令を入力するとともに前記ベクトルユニット
から該ベクトルギャザー命令のアドレスを入力して、メ
モリアクセスリクエストを生成するメモリアクセスリク
エスト生成回路とを備えることを特徴とするベクトル処
理装置。
6. A scalar unit for outputting an instruction, a vector unit for receiving an instruction from the scalar unit and outputting a vector gather instruction issuance permission and an address, and receiving an instruction from the scalar unit and receiving a vector from the vector unit. A gather instruction issuance permission is input, and if there is no instruction issue permission for the vector gather instruction when the vector gather instruction is input, the vector gather instruction is held, and when the load instruction is input, the load instruction precedes the load instruction. If a vector gather instruction is held, a vector gather instruction overtaking circuit that issues the load instruction overtaking a preceding vector gather instruction, an instruction is input from the vector gather instruction overtaking circuit, and the vector gather is issued from the vector unit. And a memory access request generation circuit for generating a memory access request by inputting an address of a user instruction.
JP2001103989A 2001-04-03 2001-04-03 Vector gather instruction overtaking circuit Expired - Fee Related JP3789315B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001103989A JP3789315B2 (en) 2001-04-03 2001-04-03 Vector gather instruction overtaking circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001103989A JP3789315B2 (en) 2001-04-03 2001-04-03 Vector gather instruction overtaking circuit

Publications (2)

Publication Number Publication Date
JP2002297566A true JP2002297566A (en) 2002-10-11
JP3789315B2 JP3789315B2 (en) 2006-06-21

Family

ID=18956920

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001103989A Expired - Fee Related JP3789315B2 (en) 2001-04-03 2001-04-03 Vector gather instruction overtaking circuit

Country Status (1)

Country Link
JP (1) JP3789315B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7526629B2 (en) 2004-02-23 2009-04-28 Nec Corporation Vector processing apparatus with overtaking function to change instruction execution order
JP2012150634A (en) * 2011-01-19 2012-08-09 Nec Corp Vector instruction control circuit and overtaking control method for list vector

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7526629B2 (en) 2004-02-23 2009-04-28 Nec Corporation Vector processing apparatus with overtaking function to change instruction execution order
JP2012150634A (en) * 2011-01-19 2012-08-09 Nec Corp Vector instruction control circuit and overtaking control method for list vector

Also Published As

Publication number Publication date
JP3789315B2 (en) 2006-06-21

Similar Documents

Publication Publication Date Title
CN100430886C (en) Data processing in which concurrently executed processes communicate via a FIFO buffer
JP3444154B2 (en) Memory access control circuit
US6473821B1 (en) Multiple processor interface, synchronization, and arbitration scheme using time multiplexed shared memory for real time systems
TW449720B (en) Routing dependent instructions to clustered execution units
JP4314528B2 (en) Multiprocessor system and memory access method
JP3789315B2 (en) Vector gather instruction overtaking circuit
US8631173B2 (en) Semiconductor device
JP2003316571A (en) Parallel processor
JP3145545B2 (en) Memory access device
US6581144B1 (en) Method and logic for initializing the forward-pointer memory during normal operation of the device as a background process
JPH0877143A (en) Vector data processor
JP2626154B2 (en) Memory access control device
JP2878160B2 (en) Competitive mediation device
JP3169878B2 (en) Memory control circuit
JP2003228512A (en) Data transfer device
JP3201439B2 (en) Direct memory access control circuit
JP2000010856A (en) Memory controller
EP1193606B1 (en) Apparatus and method for a host port interface unit in a digital signal processing unit
JP2001222463A (en) Memory device
JPH01209556A (en) Data processing system
JPH11306073A (en) Information processor
JPH04178869A (en) Interruption control device for multiprocessor system and its interruption communication method
JPH08297646A (en) Parallel computer
JP2000010855A (en) Memory controller
JPH06149735A (en) Data reception controller

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050127

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20050127

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050314

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050715

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050726

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050913

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060307

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060328

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100407

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110407

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120407

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120407

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130407

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees