JP2682759B2 - Instruction fetch circuit - Google Patents
Instruction fetch circuitInfo
- Publication number
- JP2682759B2 JP2682759B2 JP3136365A JP13636591A JP2682759B2 JP 2682759 B2 JP2682759 B2 JP 2682759B2 JP 3136365 A JP3136365 A JP 3136365A JP 13636591 A JP13636591 A JP 13636591A JP 2682759 B2 JP2682759 B2 JP 2682759B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- buffer
- fetch
- circuit
- pipeline
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Landscapes
- Advance Control (AREA)
Description
【0001】[0001]
【産業上の利用分野】本発明は、記憶制御装置から読み
出した命令ストリーム(命令列)をパイプラインに投入
してシーケンシャルに実行する情報処理装置に使用され
る命令フェッチ回路に関する。パイプライン制御により
命令を実行する情報処理装置において処理を高速化する
ためには、命令実行パイプラインを待たせることなく次
々と淀みなく命令実行パイブラインに命令を供給する必
要がある。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an instruction fetch circuit used in an information processing apparatus for inputting an instruction stream (instruction string) read from a storage controller into a pipeline and executing it sequentially. In order to speed up the processing in an information processing apparatus that executes instructions by pipeline control, it is necessary to supply instructions to the instruction execution pipeline without waiting for the instruction execution pipeline.
【0002】しかし、従来の命令フェッチ回路は命令実
行パイプラインで現在実行している命令系列しかフェッ
チできず、特に予測分岐制御における分岐命令の確定に
より現在パイプラインで実行中の命令ストリームからの
他の命令ストリームに分岐した場合には、新たな命令ス
トリームをフェッチして供給するまでに命令実行パイプ
ランは待たされることとなり、この点の改善が望まれ
る。However, the conventional instruction fetch circuit can fetch only the instruction sequence currently being executed in the instruction execution pipeline, and in particular, by determining the branch instruction in the predictive branch control, other instruction streams currently being executed in the pipeline can be fetched. In the case of branching to the instruction stream of, the instruction execution pipeline is kept waiting until a new instruction stream is fetched and supplied, and improvement of this point is desired.
【0003】[0003]
【従来の技術】従来、パイプライン制御方式を採用した
情報処理装置にあっては、命令フェッチ制御部により記
憶制御部の命令キャッシャから命令をフェッチして命令
バッファに格納した後、命令実行部の命令実行パイプラ
インに供給して実行させている。2. Description of the Related Art Conventionally, in an information processing apparatus employing a pipeline control system, an instruction fetch control unit fetches an instruction from an instruction cache of a storage control unit and stores it in an instruction buffer, and then an instruction execution unit It is supplied to the instruction execution pipeline and executed.
【0004】通常、命令フェッチ動作は数ステートから
成る命令フェッチパイプラインで行われ、命令フェッチ
要求を送出してからデータが送られて来るまで数τ(但
し、τはマシンサイクル)を要す。しかし、1回の命令
フェッチ分の容量しか持たない命令バッファでは、命令
バッファ内の命令列が消費されてから命令フェッチ要求
を出すため、フェッチに要す時間が命令実行パイプライ
ンの空ステージとなって現れる。Normally, an instruction fetch operation is performed in an instruction fetch pipeline consisting of several states, and it takes several τ (where τ is a machine cycle) from sending an instruction fetch request to sending data. However, in an instruction buffer that has a capacity for only one instruction fetch, an instruction fetch request is issued after the instruction string in the instruction buffer is consumed, so the time required for fetching is an empty stage of the instruction execution pipeline. Appears.
【0005】このような命令フェッチ回路では、命令バ
ッファ内の命令列が消費され新たにフェッチされる毎に
パイプラインが待たされる可能性があり、命令実行パイ
プラインの高速性を生かすことができない。この問題を
解決するため命令バッファの容量を増し複数回の連続フ
ェッチにより1つの命令ストリームを格納できるように
した命令フェッチ回路が提案されている。In such an instruction fetch circuit, there is a possibility that the pipeline is kept waiting each time an instruction string in the instruction buffer is consumed and a new fetch is performed, and the high speed of the instruction execution pipeline cannot be utilized. In order to solve this problem, an instruction fetch circuit has been proposed in which the capacity of the instruction buffer is increased and one instruction stream can be stored by a plurality of consecutive fetches.
【0006】[0006]
【発明が解決しようとする課題】しかしながら、単一系
列の命令バッファしか持たない従来の命令フェッチ回路
では、1つの命令ストリームをフェッチできても、分岐
命令のように実行命令ストリームを変更するような命令
が実行される場合、分岐命令がパイプラインへ投入され
分岐が確定した時点より分岐先命令列のフェッチ要求を
出すので、その間、命令実行パイプラインが待たされる
という問題が生ずる。However, in the conventional instruction fetch circuit having only a single series of instruction buffers, even if one instruction stream can be fetched, the execution instruction stream is changed like a branch instruction. When an instruction is executed, a branch instruction is input to the pipeline and a fetch request for the branch destination instruction string is issued from the time when the branch is confirmed, so that the instruction execution pipeline waits during that time.
【0007】そこで、パイプラインへの命令投入に先立
ち、現在実行パイプラインで実行中の命令ストリームに
ついては複数回のフェッチ命令をバッファリングでき、
更に分岐先に対しては1回までのフェッチを行える命令
フェッチ回路が考えられている。このような命令フェッ
チ回路では、分岐命令がパイプラインに投入され分岐が
確定した時点より、既にフェッチ済みの分岐先命令の後
続命令列に対してフェッチ要求が出されることになる。
しかし、後続する分岐命令のフェッチにも数τを要する
ため、この間に命令バッファ内の命令が消費され、パイ
プラインへの命令投入が遅れる可能性がある。Therefore, prior to the instruction input to the pipeline, fetch instructions can be buffered a plurality of times for the instruction stream currently being executed in the execution pipeline.
Furthermore, an instruction fetch circuit that can fetch the branch destination up to once is considered. In such an instruction fetch circuit, a fetch request is issued to a subsequent instruction string of a branch destination instruction that has already been fetched from the time when the branch instruction is input to the pipeline and the branch is confirmed.
However, since fetching a subsequent branch instruction also requires several τ, the instructions in the instruction buffer are consumed during this period, which may delay the instruction input to the pipeline.
【0008】以上のように従来の命令フェッチ回路の命
令バッファでは、命令ストリームが変更された場合に命
令実行パイプラインへの命令投入が遅れ、パイプライン
に空ステージを生じさせ、処理性能の低下につながる問
題があり、特に処理の高速化を意図した分岐予測の制御
における命令の投入遅れにより、分岐予測制御の効果自
体が減じられてしまう問題があった。As described above, in the conventional instruction buffer of the instruction fetch circuit, when the instruction stream is changed, the instruction input to the instruction execution pipeline is delayed, and an empty stage occurs in the pipeline, resulting in deterioration of processing performance. However, there is a problem in that the effect of branch prediction control itself is diminished due to the delay in the instruction input in the control of branch prediction intended to speed up processing.
【0009】本発明は、このような従来の問題点に鑑み
てなされたもので、複数系列の命令ストリームの連続し
た命令実行パイプラインへの投入を可能として処理性能
を向上させる命令フェッチ回路を提供することを目的と
する。The present invention has been made in view of the above-mentioned conventional problems, and provides an instruction fetch circuit capable of inputting a plurality of series of instruction streams into a continuous instruction execution pipeline to improve processing performance. The purpose is to do.
【0010】[0010]
【課題を解決するための手段】図1は本発明の原理説明
図である。まず本発明は、命令フェッチ制御部1により
記憶制御装置3から命令をフェッチして命令バッファ回
路2に格納した後に命令実行部4の命令実行パイプライ
ンに供給して実行させる命令フェッチ回路を対象とす
る。FIG. 1 is a diagram illustrating the principle of the present invention. First, the present invention is directed to an instruction fetch circuit that fetches an instruction from the storage control device 3 by the instruction fetch control unit 1 and stores it in the instruction buffer circuit 2 and then supplies it to the instruction execution pipeline of the instruction execution unit 4 for execution. To do.
【0011】このような命令フェッチ回路として本発明
にあっては、命令バッファ回路2として並列に複数系列
の命令バッファ2−1〜2−nを設けると共に各命令バ
ッファ2−1〜2−nによる系列を識別子ID1〜nに
より識別する。このような複数系列の命令バッファ2−
1〜2nに対応して、命令バッファ制御部1は、命令バ
ッファ2−1〜2−nの各系列毎に独立に記憶制御装置
3に対して命令フェッチ要求を出し、フェッチ要求を行
った命令バッファの系列が飽和するまで命令フェッチ要
求をシーケンシャルに繰り返し、命令実行部4の命令実
行パイプラインに対して複数の命令ストリームを用意で
きるようにしたことを特徴とする。In the present invention as such an instruction fetch circuit, a plurality of series of instruction buffers 2-1 to 2-n are provided in parallel as the instruction buffer circuit 2 and the instruction buffers 2-1 to 2-n are used. The series is identified by the identifiers ID1 to ID. Such a plurality of series of instruction buffers 2-
Corresponding to 1 to 2n, the instruction buffer control unit 1 issues an instruction fetch request to the storage control device 3 independently for each series of the instruction buffers 2-1 to 2-n, and the instruction that has issued the fetch request. It is characterized in that the instruction fetch request is sequentially repeated until the buffer sequence is saturated, and a plurality of instruction streams can be prepared for the instruction execution pipeline of the instruction execution unit 4.
【0012】ここで、複数系列の命令バッファ2−1〜
2−nは、記憶制御装置3からの一回の命令フェッチに
必要な記憶容量よりも大きな容量を持ったバッファを複
数備え、複数回の命令フェッチに対してそのフェッチデ
ータをバッファリングして保持できるようにする。また
命令バッファ2−1〜2−nのそれぞれにつき自系列バ
ッファ内での命令ストリームの先頭を指し示すポインタ
を持ち、命令フェッチ制御部2により自系列が選択され
た場合に、命令実行部4の命令実行パイプラインへ投入
すべき前記ポインタを先頭位置として始まる命令ストレ
ームを提示する。Here, a plurality of series of instruction buffers 2-1 to 2-1.
The 2-n includes a plurality of buffers having a storage capacity larger than a storage capacity required for one instruction fetch from the storage control device 3, and buffers and holds the fetch data for a plurality of instruction fetches. It can be so. Further, each of the instruction buffers 2-1 to 2-n has a pointer that points to the head of the instruction stream in the own sequence buffer, and when the own sequence is selected by the instruction fetch control unit 2, the instruction of the instruction execution unit 4 An instruction stream is presented which starts with the pointer to be put into the execution pipeline as the head position.
【0013】このポインタの更新としては、命令フェッ
チ制御部2により自系列に新たに記憶制御装置3から命
令がフェッチされた時に、1つの命令バッファの容量分
だけポインタを更新する。また命令フェッチ制御部2に
より複数系列の命令バッファ2−1〜2−nのいずれか
から命令実行部4の命令実行パイプラインへの命令投入
されて命令が消費された時に、ポインタを投入命令のサ
イズ分だけ更新する。As for updating the pointer, when the instruction fetch control unit 2 newly fetches an instruction from the storage control device 3 in its own sequence, the pointer is updated by the capacity of one instruction buffer. Further, when an instruction is consumed by the instruction fetch control unit 2 from any one of the plurality of series of instruction buffers 2-1 to 2-n and the instruction is input to the instruction execution pipeline of the instruction execution unit 4, the pointer is input. Update only the size.
【0014】[0014]
【作用】このような構成を備えた本発明の命令フェッチ
回路にれば次の作用が得られる。本発明の命令フェッチ
回路は、命令バッファ2−1〜2−nを並列に複数系列
持っており、各系列を識別子により識別し、これにより
現在パイプラインで実行中の命令ストリームの他に例え
ば複数の分岐先命令ストリームを、各系列が独立にフェ
ッチしてバッファリングする。According to the instruction fetch circuit of the present invention having such a configuration, the following action can be obtained. The instruction fetch circuit of the present invention has a plurality of series of instruction buffers 2-1 to 2-n in parallel, each series is identified by an identifier, and in addition to the instruction stream currently being executed in the pipeline, for example, a plurality of series are provided. Each branch independently fetches and buffers the branch target instruction stream of.
【0015】各命令バッファ2−1〜2−nの系列はそ
れぞれ一回の命令フェッチ量よりも大きな容量のバッフ
ァを持っており、複数回の命令フェッチによる1命令ス
トリーム分の内容をバッファリングできる。また各命令
バッファ2−1〜2−nの系列はそれぞれ、自系列命令
キューの先頭命令の自系列バッファ内での位置を指示す
るポインタを持ち、命令フェッチ制御部に対して命令提
示を行う。Each of the instruction buffers 2-1 to 2-n has a buffer having a capacity larger than the amount of one instruction fetch, and the contents of one instruction stream by a plurality of instruction fetches can be buffered. . Each of the instruction buffers 2-1 to 2-n has a pointer that indicates the position of the head instruction of its own instruction queue in the own instruction buffer, and presents an instruction to the instruction fetch control unit.
【0016】命令フェッチ制御部1は、各命令バッファ
2−1〜2−nの系列から提示されている命令のうち、
実行されるべき命令ストリームを選択し命令実行パイプ
ラインに投入する。また、命令先頭位置を示すポインタ
により各系列の命令バッファ内の命令量を認識できるの
で、各命令バッファ2−1〜2−nから系列から独立に
逐次命令フェッチ要求を出すことができる。The instruction fetch control unit 1 selects from among the instructions presented from the series of the instruction buffers 2-1 to 2-n.
Select the instruction stream to be executed and put it into the instruction execution pipeline. Further, since the instruction amount in the instruction buffer of each series can be recognized by the pointer indicating the instruction head position, it is possible to issue a sequential instruction fetch request from each instruction buffer 2-1 to 2-n independently from the series.
【0017】この結果、複数の命令ストリームをバッフ
ァリングでき、特に分岐履歴からの分岐予測制御を行っ
た場合は、分岐確定以前に分岐先命令ストリームがパイ
プラインに投入されるため、分岐確定後の命令フェッチ
によるパイプラインの命令投入待ちが防止でき、分岐予
測制御本来の性能を十分に引き出すことができる。As a result, a plurality of instruction streams can be buffered, and especially when branch prediction control from the branch history is performed, the branch destination instruction stream is input to the pipeline before the branch is determined, so that after the branch is determined. It is possible to prevent waiting for pipeline instruction input due to instruction fetch, and to sufficiently bring out the original performance of branch prediction control.
【0018】[0018]
【実施例】図2は本発明の一実施例を示した実施例構成
図である。図2において、10は本発明の命令フェッチ
回路を内蔵した情報処理装置としてのCPU装置であ
る。CPU装置10は、命令キャッシュ5を備えた記憶
制御部置3、命令フェッチ制御部1と命令バッファ回路
2を備えた命令フェッチ部6、更に命令実行パイプライ
ン7を備えた命令実行部4が設けられる。FIG. 2 is a block diagram showing an embodiment of the present invention. In FIG. 2, reference numeral 10 is a CPU device as an information processing device incorporating the instruction fetch circuit of the present invention. The CPU device 10 is provided with a storage control unit 3 including an instruction cache 5, an instruction fetch unit 6 including an instruction fetch control unit 1 and an instruction buffer circuit 2, and an instruction execution unit 4 including an instruction execution pipeline 7. To be
【0019】また記憶制御部3には命令フェッチパイプ
ライン8が設けられ、命令フェッチパイプライン8を動
作させることにより記憶制御部3の命令キャッシュ5よ
り命令を命令バッファ回路2にフェッチした後に命令実
行部4の命令実行パイプライン7へ投入する。更に命令
フェッチ制御部1は、命令フェッチパイプライン8の実
行に伴い命令キャッシュ5に対する命令フェッチ要求と
命令フェッチアドレスの送出、送られてくる命令のバッ
ファリング制御、命令実行パイプライン7への命令投入
制御を行う。The memory control unit 3 is provided with an instruction fetch pipeline 8. By operating the instruction fetch pipeline 8, an instruction is fetched from the instruction cache 5 of the memory control unit 3 into the instruction buffer circuit 2 and then the instruction is executed. Input to the instruction execution pipeline 7 of the section 4. Further, the instruction fetch control unit 1 sends an instruction fetch request and an instruction fetch address to the instruction cache 5 as the instruction fetch pipeline 8 is executed, controls the buffering of an instruction sent, and inputs an instruction to the instruction execution pipeline 7. Take control.
【0020】図3は図2の命令フェッチ部6の回路構成
の一例を示した実施例回路図である。図3において、本
発明による命令フェッチ回路は、並列に複数のバッファ
系列2−1〜2−nをもつ、各バッファ系列には識別子
としてIDを付けている。この実施例の命令フェッチ回
路は、A,B,Cの3つのバッファ系列からなる場合を
例にとっており、各バッファ系列はそれぞれ、 系列A ID=00 系列B ID=01 系列C ID=10 により識別される。FIG. 3 is a circuit diagram of an embodiment showing an example of the circuit configuration of the instruction fetch unit 6 of FIG. In FIG. 3, the instruction fetch circuit according to the present invention has a plurality of buffer series 2-1 to 2-n in parallel, and each buffer series is given an ID as an identifier. The instruction fetch circuit of this embodiment takes as an example the case of being composed of three buffer sequences A, B and C, and each buffer sequence is identified by the sequence A ID = 00 sequence B ID = 01 sequence C ID = 10. To be done.
【0021】これら3つのバッファ系列A〜Cの内の1
つは、現在、命令実行パイプライン7で実行されている
命令ストリーム(命令列)のフェッチに使用する。他の
2つのバッファ系列は、分岐命令のように現在実行して
いる命令ストリームを変更するような命令に対応して分
岐命令ストリームをフェッチする。命令ストリームをフ
ェッチする際のターゲットアドレスは、命令実行パイプ
ライン7のオペランドアドレス生成ステージから得られ
る場合や分岐履歴から得られる場合がある。One of these three buffer sequences A to C
One is used for fetching the instruction stream (instruction string) currently executed in the instruction execution pipeline 7. The other two buffer series fetch the branch instruction stream in response to an instruction that changes the currently executed instruction stream, such as a branch instruction. The target address for fetching the instruction stream may be obtained from the operand address generation stage of the instruction execution pipeline 7 or may be obtained from the branch history.
【0022】3つのバッファ系列A〜Cのそれぞれは、
1回の命令フェッチ量よりも大きな容量のバッファを持
つ。この実施例では、1つの命令フェッチ要求に対して
命令キャッシュ5から送られてくる命令量を8バイトと
する。従って、各バッファ系列A〜Cはそれぞれ8バイ
ト単位の命令バッファレジスタを直列に4段持ち、この
命令バッファレジスタを例えばバッファ系列Aを例にと
るとIBRA0,IBRA1,IBRA2,IBRA3
で示している。Each of the three buffer sequences A to C is
It has a buffer with a capacity larger than the amount of one instruction fetch. In this embodiment, the amount of instructions sent from the instruction cache 5 for one instruction fetch request is 8 bytes. Therefore, each of the buffer series A to C has four stages of 8-byte unit instruction buffer registers in series. For example, the buffer series A is IBRA0, IBRA1, IBRA2, and IBRA3.
It shows with.
【0023】これにより各バッファ系列A〜Cは、複数
回の命令フェッチに対応したフェッチデータ、即ち少な
くとも1つの命令ストリームを保持できる。命令キャッ
シュ5からバッファ系列Aにフェッチされてきた命令列
は、最初、命令バッファレジスタIBRA3にセットさ
れる。従って、後続する命令のフェッチについては、後
続命令を命令バッファレジスタIBRA3にセットする
以前に、命令バッファレジスタIBRA3内のデータを
次段の命令バッファレジスタIBRA2の方向へ一斉に
シフトする。このシフト動作をバブルアップという。As a result, each of the buffer series A to C can hold fetch data corresponding to a plurality of instruction fetches, that is, at least one instruction stream. The instruction string fetched from the instruction cache 5 to the buffer series A is initially set in the instruction buffer register IBRA3. Therefore, for fetching a subsequent instruction, the data in the instruction buffer register IBRA3 is simultaneously shifted toward the instruction buffer register IBRA2 in the next stage before the subsequent instruction is set in the instruction buffer register IBRA3. This shift operation is called bubble up.
【0024】この実施例でのバブルアップのシフト量
は、一回のフェッチ量の8バイトとなる。このように各
バッファ系列A〜Cは、直列に複数段の命令バッファレ
ジスタでなる命令バッファを持ち、命令バッファのシフ
ト動作を行うことにより自系列に送られてくる命令列を
逐次バッファリングする。The bubble-up shift amount in this embodiment is 8 bytes, which is the fetch amount for one time. As described above, each of the buffer series A to C has an instruction buffer composed of a plurality of stages of instruction buffer registers in series, and sequentially shifts the instruction sequence sent to itself by performing the shift operation of the instruction buffer.
【0025】また各バッファ系列A〜Cは、自系列の命
令キューの先頭命令を提示する命令提示回路11A,1
1B,11Cを備える。命令フェッチ制御部1は、各バ
ッファ系列A〜Cの命令提示回路11A〜11Cから提
示されている命令のうちから、命令実行パイプライン7
へ投入すべき系列のものを選択して投入する。Further, each buffer series A to C presents an instruction presenting circuit 11A, 1 for presenting the head instruction of its own instruction queue.
It is equipped with 1B and 11C. The instruction fetch control unit 1 selects the instruction execution pipeline 7 from the instructions presented by the instruction presentation circuits 11A to 11C of the buffer series A to C.
Select the series that should be input to.
【0026】更に提示されている命令の命令バッファ内
での位置を認識するために、命令バッファレジスタIB
RA0〜A3、B0〜B3、C0〜C3には、図4に代
表して示す命令バッファレジスタIBR0〜3のよう
に、命令サイズである半語単位で番地00〜10(16
進)をふっている。再び図3を参照するに、各バッファ
系列A〜CはそれぞれNSIカウンタ12A,12B,
12Cの内容で示されるポインタを持ち、このポインタ
により自系列が提示している命令ストリームの命令バッ
ファレジスタIBRA0〜A3、B0〜B3、C0〜C
3中での先頭位置を指し示す。In order to recognize the position in the instruction buffer of the further presented instruction, the instruction buffer register IB
RA0 to A3, B0 to B3, and C0 to C3 have addresses 00 to 10 (16) in units of half words, which is an instruction size, as in the instruction buffer registers IBR0 to 3 representatively shown in FIG.
). Referring again to FIG. 3, each of the buffer sequences A to C has an NSI counter 12A, 12B,
12C has a pointer indicated by the contents of 12C, and the instruction buffer registers IBRA0 to A3, B0 to B3, and C0 to C of the instruction stream presented by the own sequence by this pointer.
3 indicates the head position.
【0027】NSIカウンタ12A〜12Cは図4のN
SIカウンタ12に示すように、ビットE及びビット0
〜3の5ビットからなり、ビット0〜3で命令バッファ
レジスタIBR0〜3上の番地00〜10を表わし、ビ
ットEで自系列命令バッファ内の命令列が有効か無効か
を表わす。命令提示回路11で次の命令を提示する際に
は、NSIカウンタ12にデコーダ13で発生した現提
示命令のサイズILCを加算した番地から抽出する。The NSI counters 12A to 12C are the N of FIG.
As shown in SI counter 12, bit E and bit 0
3 to 5 bits, bits 0 to 3 represent addresses 00 to 10 on the instruction buffer registers IBR0 to 3, and bit E represents whether the instruction sequence in the local sequence instruction buffer is valid or invalid. When the instruction presenting circuit 11 presents the next instruction, the NSI counter 12 is extracted from the address obtained by adding the size ILC of the currently presented instruction generated in the decoder 13.
【0028】デコーダ13による命令サイズILCの発
生は、命令提示回路11に格納された現提示命令の斜線
で示すオペコード部をデコードすることによって得る。
命令先頭位置を示すポインタを得るNSIカウンタ12
は次の2つを契機に更新される。 (1)命令フェッチ制御部1より、次の命令の提示要求
信号が発信された場合、NSIカウンタ12は現在提示
している命令のサイズILC分だけインクリメントされ
る。The generation of the instruction size ILC by the decoder 13 is obtained by decoding the operation code part indicated by the diagonal lines of the present presentation instruction stored in the instruction presentation circuit 11.
NSI counter 12 that obtains a pointer indicating the instruction start position
Will be updated in the following two occasions. (1) When the instruction fetch control unit 1 issues a next instruction presentation request signal, the NSI counter 12 is incremented by the size ILC of the currently presented instruction.
【0029】(2)バブルアップを行った場合、本回路
では8バイトのシフト量に対応してNSIカウンタ12
は4つデクリメントされる。このようなNSIカウンタ
12を図3に示すように各バッファ系列A〜CがISN
カウンタ12A〜12Cとして持つことにより、各バッ
ファ系列A〜Cから命令提示を行うと共に、命令フェッ
チ制御部1は各系列の命令バッファ内での命令量を把握
し、系列ごとのIDをつけて命令フェッチ要求を命令キ
ャッシュ5へ送出する。(2) When bubble up is performed, the NSI counter 12 corresponds to the shift amount of 8 bytes in this circuit.
Is decremented by 4. As shown in FIG. 3, each of the buffer series A to C has the NSN counter 12 of
By having the counters 12A to 12C, each buffer series A to C presents an instruction, and the instruction fetch control unit 1 grasps the instruction amount in each instruction buffer of each series and assigns an ID for each series to give an instruction. The fetch request is sent to the instruction cache 5.
【0030】次に、図5に示す命令フェッチパイプライ
ンを参照してバブルアップを行うタイミングを説明す
る。図5において、命令フェッチパイプライン8のIス
テートでは、命令フェッチ制御部1から記憶制御部3へ
送出されていた命令フェッチ要求のプライオリティが決
定され、命令フェッチ制御部1へ通知される。Next, the timing of bubble-up will be described with reference to the instruction fetch pipeline shown in FIG. In the I state of the instruction fetch pipeline 8 in FIG. 5, the priority of the instruction fetch request sent from the instruction fetch control unit 1 to the storage control unit 3 is determined and notified to the instruction fetch control unit 1.
【0031】命令フェッチ制御部1は命令フェッチ禁止
条件がないことを確認し、命令フェッチ要求の有効性を
示す信号(IF REQ VAL)と命令フェッチアド
レスを記憶制御部3へ送出し、記憶制御部3のP,T,
B,Rでなる命令フェッチパイプライン8を起動する。
ITステートは記憶制御部3でのアドレス変換に対応す
る。IBステートでは記憶制御部3が命令キャッシュ5
をアクセスし、フェッチした命令を命令バッファ回路2
に送出してくる。IRステートではフェッチデータの有
効性をチェックし、命令実行パイプライン7の命令デコ
ードステージを有効にして命令を投入する。The instruction fetch controller 1 confirms that there is no instruction fetch prohibition condition, sends a signal (IF REQ VAL) indicating the validity of the instruction fetch request and the instruction fetch address to the memory controller 3, and the memory controller 3 3 P, T,
The instruction fetch pipeline 8 consisting of B and R is activated.
The IT state corresponds to address conversion in the storage control unit 3. In the IB state, the storage control unit 3 causes the instruction cache 5
To access and fetch the fetched instruction to the instruction buffer circuit 2
Sent to. In the IR state, the validity of fetch data is checked, the instruction decode stage of the instruction execution pipeline 7 is validated, and an instruction is input.
【0032】Iステートで送出された命令フェッチ要求
の有効性を示す信号(IF REQVAL)はタグとな
って図5のように命令フェッチパイプライン8を流れて
いく。また命令フェッチ要求の有効性を示す信号(IF
REQ VAL)の送出時には、同時に、この信号が
どの系列の命令ストリームのフェッチ要求であるかを表
わす系列ID信号(IF REQ ID)が送出され、
同様に命令フェッチパイプライン8を流れる。The signal (IF REQVAL) indicating the validity of the instruction fetch request transmitted in the I state becomes a tag and flows through the instruction fetch pipeline 8 as shown in FIG. In addition, a signal (IF
At the same time when the REQ VAL) is sent, a series ID signal (IF REQ ID) indicating which series of instruction stream fetch request this signal is sent,
Similarly, it flows through the instruction fetch pipeline 8.
【0033】記憶制御部3は命令フェッチ制御部1から
の系列ID信号(IF REQ ID)を保持し、IB
ステートで、命令フェッチデータ及びクロックイネーブ
ルと共に、系列ID信号(BREQ ID)を命令フェ
ッチ制御部1に返す。このため系列ID信号によって選
択された系列の命令バッファにフェッチされたデータが
セットされる。The storage controller 3 holds the sequence ID signal (IF REQ ID) from the instruction fetch controller 1 and
In the state, the sequence ID signal (BREQ ID) is returned to the instruction fetch control unit 1 together with the instruction fetch data and the clock enable. Therefore, the fetched data is set in the instruction buffer of the series selected by the series ID signal.
【0034】バブルアップは、IBステートを抜けるこ
とを表わす信号(IB REL)のタイミングで、系列
ID信号(BREQ ID)により選択される系列の命
令バッファにおいて行われる。尚、上記の実施例は、分
岐予測制御を予定して命令バッファ回路2に3つの命令
バッファ系列A〜Cを設けた場合を例にとるものであっ
たが、命令バッファ系列の数は必要に応じて適宜に定め
ることができる。The bubble up is performed in the instruction buffer of the sequence selected by the sequence ID signal (BREQ ID) at the timing of the signal (IB REL) indicating the exit from the IB state. In the above embodiment, the branch prediction control is scheduled and the instruction buffer circuit 2 is provided with three instruction buffer series A to C. However, the number of instruction buffer series is required. It can be appropriately determined depending on the situation.
【0035】[0035]
【発明の効果】以上説明したように本発明によれば、1
回の命令フェッチに必要な記憶容量の整数倍の容量を有
するバッファを並列に複数系列設けることにより、複数
の命令ストリームをバッファが飽和するまでシーケンシ
ャルにフェッチして命令実行パイプラインに対し複数の
命令ストリームを準備することができ、予測分岐制御等
により命令ストリームが変更されても、連続的に変更し
た命令ストリームをパイプライン投入することができ、
かつ各命令バッファの系列を識別子により識別している
ので、シーケンシャルに構成されている命令ストリーム
から必要な命令を短時間でパイプラインに投入すること
ができるという効果を有する。As described above, according to the present invention, 1
Has a capacity that is an integer multiple of the storage capacity required for one instruction fetch
Instructions by providing a plurality series buffers in parallel, it is possible to prepare a plurality of instruction streams to the instruction execution pipeline to fetch sequentially until the multiple instruction stream buffer is saturated, the predicted branch control such that Even if the stream is changed, the continuously changed instruction stream can be injected into the pipeline,
Moreover, since the sequence of each instruction buffer is identified by the identifier, there is an effect that necessary instructions can be input to the pipeline in a short time from the instruction stream that is sequentially configured.
【図1】本発明の原理説明図FIG. 1 is a diagram illustrating the principle of the present invention.
【図2】本発明の実施例構成図FIG. 2 is a configuration diagram of an embodiment of the present invention.
【図3】本発明の命令バッファ回路の実施例回路図FIG. 3 is a circuit diagram of an embodiment of an instruction buffer circuit of the present invention.
【図4】本発明の命令バッファ回路の一系統を取出して
詳細に説明した実施例回路図FIG. 4 is a circuit diagram of an embodiment in which a system of an instruction buffer circuit of the present invention is taken out and described in detail.
【図5】本発明の命令バッファ回路におけるバルブアッ
プのタイミングを示した命令フェッチパイプラインの動
作タイムチャートFIG. 5 is an operation time chart of the instruction fetch pipeline showing the valve up timing in the instruction buffer circuit of the present invention.
1:命令フェッチ制御部 2:命令バッファ回路 2−1〜2−n:命令バッファ 3:記憶制御装置(記憶制御部) 4:命令実行部 5:命令キャッシュ 6:命令フェッチ部 7:命令実行パイプライン 8:命令フェッチパイプライン 10:CPU装置 11,11A〜11c:命令提示回路 12,12A〜12C:NSIカウンタ 13:デコーダ 1: Instruction fetch control unit 2: Instruction buffer circuit 2-1 to 2-n: Instruction buffer 3: Storage control device (storage control unit) 4: Instruction execution unit 5: Instruction cache 6: Instruction fetch unit 7: Instruction execution pipe Line 8: Instruction fetch pipeline 10: CPU device 11, 11A to 11c: Instruction presentation circuit 12, 12A to 12C: NSI counter 13: Decoder
Claims (1)
装置(3)から命令をフェッチして命令バッファ回路
(2)に格納した後に命令実行部(4)の命令実行パイ
プラインに供給して実行させる命令フェッチ回路に於い
て、複数のバッファレジスタを直列に構成することにより複
数の命令を格納し新たな命令がフェッチされる度にすで
に格納されていた命令が次段のバッファレジスタにシフ
トされるバッファ列を並列に複数系列設けて構成した命
令バッファ(2−1〜2−n)と、 該命令バッファ(2−1〜2−n)に格納されている命
令ストリームの先頭を指定するため前記命令バッファ
(2−1〜2−n)毎に備えたポインタ(12)と、 前記命令バッファ(2−1〜2−n)に格納された命令
ストリームのうち前記ポインタ(12)によって指定さ
れた先頭命令を提示するため前記命令バッファ(2−1
〜2−n)毎に備えた命令提示回路(11)と、 該命令提示回路(11)によって提示された命令のうち
識別子(ID)によって決まる命令を選択して前記命令
実行パイプラインに供給する命令フェッチ制御部(1)
とを備えた ことを特徴とする命令フェッチ回路。1. An instruction fetch control unit (1) fetches an instruction from a storage controller (3), stores it in an instruction buffer circuit (2), and then supplies it to an instruction execution pipeline of an instruction execution unit (4). In the instruction fetch circuit to be executed, multiple buffer registers are configured in series to duplicate.
Store a number of instructions and each time a new instruction is fetched
The instruction stored in is shifted to the buffer register in the next stage.
Of multiple buffers to be stored in parallel.
Command buffers (2-1 to 2-n) and instructions stored in the instruction buffers (2-1 to 2-n).
Command buffer to specify the beginning of the command stream
A pointer (12) provided for each (2-1 to 2-n) and an instruction stored in the instruction buffer (2-1 to 2-n)
Pointed to by the pointer (12) in the stream
The instruction buffer (2-1
To 2-n) instructions presented circuit provided for each (11), among the instructions presented by the instruction presented circuit (11)
The instruction is selected by selecting an instruction determined by an identifier (ID).
Instruction fetch control unit (1) supplied to the execution pipeline
Instruction fetch circuit comprising the and.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3136365A JP2682759B2 (en) | 1991-06-07 | 1991-06-07 | Instruction fetch circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3136365A JP2682759B2 (en) | 1991-06-07 | 1991-06-07 | Instruction fetch circuit |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04361329A JPH04361329A (en) | 1992-12-14 |
JP2682759B2 true JP2682759B2 (en) | 1997-11-26 |
Family
ID=15173467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3136365A Expired - Lifetime JP2682759B2 (en) | 1991-06-07 | 1991-06-07 | Instruction fetch circuit |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2682759B2 (en) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS57121740A (en) * | 1981-01-21 | 1982-07-29 | Hitachi Ltd | Data processor |
JPS61122754A (en) * | 1984-11-19 | 1986-06-10 | Oki Electric Ind Co Ltd | Microprocessor |
JPH0224720A (en) * | 1988-07-13 | 1990-01-26 | Nec Corp | Address mapping system for instruction buffer |
JPH03269625A (en) * | 1990-03-19 | 1991-12-02 | Nec Corp | Data processor |
-
1991
- 1991-06-07 JP JP3136365A patent/JP2682759B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH04361329A (en) | 1992-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5832259A (en) | Apparatus for superscalar instruction pre-decoding using cached instruction lengths | |
JP2815237B2 (en) | A device that processes instructions inside a computer system | |
EP0686912B1 (en) | Data processor with an execution unit for performing load instructions and method of operation | |
KR920006275B1 (en) | Data processing apparatus | |
JPS59128670A (en) | Vector processor | |
JP3469469B2 (en) | Information processing device | |
JPH02287626A (en) | Pipeline system branch instruction controller | |
JPH0650465B2 (en) | Branch control circuit | |
JP2001100995A (en) | Device and method for write control over branch history information | |
JP2682759B2 (en) | Instruction fetch circuit | |
JP2636088B2 (en) | Information processing device | |
US3644900A (en) | Data-processing device | |
JP3554211B2 (en) | Instruction control device and method using microprogram | |
JP3082944B2 (en) | Pipeline processing equipment | |
EP0465847B1 (en) | Memory access control having commonly shared pipeline structure | |
US5146599A (en) | System for fetching a plurality vector-data groups using a plurality of addressing device | |
JP2001166934A (en) | Instruction fetch controller | |
JP2812615B2 (en) | Instruction buffer circuit control method | |
JP2689914B2 (en) | Information processing device | |
JP2668987B2 (en) | Data processing device | |
JPH03147134A (en) | Instruction sequence controller | |
JPH10111798A (en) | Information processor | |
JPH07200406A (en) | Cache system | |
JP4049490B2 (en) | Information processing device | |
JP3558481B2 (en) | Data processing device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 19970221 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 19970715 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080808 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090808 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090808 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100808 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110808 Year of fee payment: 14 |
|
EXPY | Cancellation because of completion of term |