JPS63140337A - Instruction taking out device - Google Patents
Instruction taking out deviceInfo
- Publication number
- JPS63140337A JPS63140337A JP28749986A JP28749986A JPS63140337A JP S63140337 A JPS63140337 A JP S63140337A JP 28749986 A JP28749986 A JP 28749986A JP 28749986 A JP28749986 A JP 28749986A JP S63140337 A JPS63140337 A JP S63140337A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- block
- buffer
- word
- address
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 3
- 230000010365 information processing Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Landscapes
- Advance Control (AREA)
Abstract
Description
【発明の詳細な説明】
(産業上の利用分野)
本発明は、高速の情報処理装置における命令取出し装置
に関する。DETAILED DESCRIPTION OF THE INVENTION (Field of Industrial Application) The present invention relates to an instruction fetching device in a high-speed information processing device.
(従来の技術)
近年、高速の情報処理装置においては、命令の実行と並
行して実行中の命令シーケンスに後続した命令シーケン
スをキャッシュメモリより読出し、これを一時記憶する
ための命令バッファを備えることが多い。また、命令バ
ッファからの命令の取出し命令の解読、ならびにオペラ
ンドの準備演算の各過程に対応した一連の処理ステージ
を備え、マシンサイクルの周期で順次命令を上記一連の
ステージに流して処理するパイプライン処理の行われる
ことも多い。(Prior Art) In recent years, high-speed information processing devices are equipped with an instruction buffer for reading an instruction sequence subsequent to an instruction sequence currently being executed from a cache memory and temporarily storing it in parallel with the execution of an instruction. There are many. In addition, the pipeline is equipped with a series of processing stages corresponding to each process of fetching instructions from the instruction buffer, decoding instructions, and preparatory operations on operands, and processes instructions by sequentially passing them through the above series of stages at the cycle of the machine cycle. Processing is often performed.
従来、科学技術計算専用の処理装置における命令取出し
方式には、次の第1および第2の方式が公知である。斯
かる方式の一つとして、命令バッファの容量を、例えば
数にバイト程度に大きくし、これを複数個のブロックに
分割し、記憶装置の命令語エリア内の実行中の命令語を
上記命令バッファ上のブロックへブロック単位に転記し
、同時に命令バッファの各ブロックごとに上記ブロック
に保持されている命令語の命令アドレスを保持するため
のアドレス保持手段を設け、解読すべき命令語の命令ア
ドレスで上記アドレス保持手段のアドレスをサーチする
ことによって命令バッファ上のグロック番号を求め、上
記ブロックから順次、命令をデコードステージに取出す
。従来技術による第1の方式は上記のものである。Conventionally, the following first and second methods are known as methods for fetching instructions in processing devices dedicated to scientific and technical calculations. One such method is to increase the capacity of the instruction buffer to, for example, several bytes, divide it into multiple blocks, and transfer the instruction word being executed in the instruction word area of the storage device to the instruction buffer. At the same time, an address holding means is provided for holding the instruction address of the instruction word held in the above block for each block of the instruction buffer, and the instruction address of the instruction word to be decoded is transferred to the upper block in units of blocks. The clock number on the instruction buffer is determined by searching the address of the address holding means, and instructions are sequentially taken out from the block to the decode stage. The first method according to the prior art is as described above.
この場合、命令バッファ上のアドレスは主記憶のアドレ
スとは異なシ、命令バッファ上のブロック番号とブロッ
ク内ワード番号、ときにはワード内語番号等とから構成
されている。In this case, the address on the instruction buffer is different from the address on the main memory, and consists of a block number on the instruction buffer, a word number within the block, and sometimes a word number within the word.
あるブロックの末尾から他のブロックの最初の命令語に
移るとき(以下、ブロック越えという。)移り先のブロ
ックが命令バッファ上に存在しないというケースがあシ
得る。このようなケースでは従来、ブロック末尾の命令
語を命令バッファから読出しだ後に、主記憶装置に対し
てリフエストラ取出すか、あるいは末尾から予め定めら
れた命令数内に位置する命令語を命令バッファから読出
すと、これによって主記憶装置に対して無条件にリクエ
ストを出す。斯かる方式が従来技術による第2の方式で
ある。When moving from the end of a certain block to the first instruction word of another block (hereinafter referred to as block crossing), there may be a case where the destination block does not exist on the instruction buffer. In such cases, the conventional method is to read the instruction word at the end of the block from the instruction buffer and then retrieve it from the main memory, or to read the instruction word located within a predetermined number of instructions from the end of the block from the instruction buffer. When issued, this causes an unconditional request to the main memory. This method is the second method according to the prior art.
(発明が解決しようとする問題点)
上述した従来の命令取出し方式において、第1の方式の
場合には、移シ先のブロックの最初の命令語を読出すの
に遅延が生じるという問題がある。(Problems to be Solved by the Invention) In the conventional instruction fetching method described above, in the case of the first method, there is a problem that a delay occurs in reading the first instruction word of the transfer destination block. .
第2の方式の場合には、リクエストを送出した後にブロ
ック末尾付近の分岐命令によって命令ストリームが変っ
たならば、既に送出されたリクエスト信号をキャンセル
しなければならないという問題がある。In the case of the second method, if the instruction stream changes due to a branch instruction near the end of a block after sending a request, there is a problem in that the request signal that has already been sent must be canceled.
本発明の目的は、記憶装置より読出された命令語をブロ
ック巣位に命令バッファへ保持しておき、命令バッファ
から読出されている命令語のアドレスの上位ビットを命
令カウンタに保持し、命令バッファから読出されている
命令語のブロック番号とブロック内アドレスとを命令ポ
インタによって指示し、命令バッファのブロックの末尾
から予め定められた命令数内に位置する命令のなかで分
岐命令が存在することを示す分岐命令ビット、および上
記命令数内に位置する命令が以前に命令バッファよ)読
出されたものであるという履歴の存在することを示すア
クセス履歴ビットを有することによって上記欠点を除去
し、特定条件における命令語も容易に取出すことができ
るように構成した命令取出し装置を提供することにある
。An object of the present invention is to hold an instruction word read from a storage device in a block position in an instruction buffer, hold the upper bit of the address of the instruction word read from the instruction buffer in an instruction counter, and store the instruction word in the instruction buffer. The instruction pointer indicates the block number and intra-block address of the instruction word being read from the instruction buffer, and indicates that a branch instruction exists among the instructions located within a predetermined number of instructions from the end of the block in the instruction buffer. The above disadvantages can be eliminated by having a branch instruction bit indicating that the instructions located within the above number of instructions have been previously read (from the instruction buffer), and an access history bit indicating that there is a history that instructions located within the instruction number have been previously read (from the instruction buffer). An object of the present invention is to provide an instruction retrieval device configured to easily retrieve instruction words in the above.
(問題点を解決するための手段)
本発明による命令取出し装置は、命令バッファド、命令
カウンタと、命令ポインタレジスタと、命令レジスタと
、分岐命令ビットF/Fと、アクセス履歴F/Fと、制
御手段とを具備して構成したものである。(Means for Solving the Problems) An instruction fetching device according to the present invention includes an instruction buffer, an instruction counter, an instruction pointer register, an instruction register, a branch instruction bit F/F, an access history F/F, and a control The device is configured to include means.
命令バッファは、記憶装置より読出された命令語をブロ
ック単位に保持するためのものである。The instruction buffer is for holding instruction words read from the storage device in units of blocks.
命令カウンタは、命令バッファから読出されている命令
語のアドレスの上位ビットを保持するためのものである
。The instruction counter is for holding the upper bits of the address of the instruction word being read from the instruction buffer.
命令ポインタレジスタは、命令バッファから読出されて
いる命令語のブロック番号およびブロック内アドレスを
示すためのものである。 ゛命令レジスタは、命令
バッファから読出された命令語を保持するだめのもので
ある。The instruction pointer register is used to indicate the block number and intra-block address of the instruction word being read from the instruction buffer. The instruction register is used to hold the instruction word read from the instruction buffer.
分岐命令ビット F/F’は、命令バッファのブロック
の末尾から予め定められた命令数内に位置する命令のな
かで、分岐命令が存在することを示すだめのものである
。The branch instruction bit F/F' is used to indicate that a branch instruction exists among the instructions located within a predetermined number of instructions from the end of the block of the instruction buffer.
アクセス履歴ビットF/Fは、命令数内に位置する命令
が以前に命令バッファより読出されたものであるという
履歴の存在することを示すだめのものである。The access history bit F/F is used to indicate that there is a history that the instruction located within the number of instructions has been previously read from the instruction buffer.
制御手段は、命令バッファ上のブロックから読出されて
いる命令語のアドレスが上記ブロックの末尾から予め定
められた命令数内に位置していることを検出するととも
に、キャッシュアドレスからみて上記ブロックに連続す
るブロックが命令バッファ上に存場しない場合には、命
令バッファ上のブロックに対応する分岐命令ビットF/
Fの内容、オヨヒアクセス履歴ビットF/Fの内容をチ
ェックし、上記ブロックの末尾までの後続命令がすべて
以前に命令バッファより読出された履歴を有するととも
に、分岐命令が含まれていないという条件が成立つとき
にはキャッシュメモリに対してリクエストを送出し、上
記条件が満足されないときにはキャッシュメモリに対す
るリクエストを抑止するためのものである。The control means detects that the address of the instruction word being read from the block on the instruction buffer is located within a predetermined number of instructions from the end of the block, and also detects that the address of the instruction word being read from the block on the instruction buffer is located within a predetermined number of instructions from the end of the block, and also detects that the address of the instruction word being read from the block on the instruction buffer is located within a predetermined number of instructions from the end of the block, and If the block to be executed does not exist on the instruction buffer, the branch instruction bit F/ corresponding to the block on the instruction buffer is set.
The contents of F and the contents of the Oyohi access history bit F/F are checked, and the conditions are met that all subsequent instructions up to the end of the block have a history that has been previously read from the instruction buffer, and that no branch instructions are included. This is to send a request to the cache memory at times, and to suppress requests to the cache memory when the above conditions are not satisfied.
(実施例)
次に、本発明について図面を参照して説明する。 ′
″第1図は、本発明による命令取出し装置の一実施例を
示すブロック図である。第1図において、1は命令バッ
ファ書込みアドレスレジスタ、2は命令バッファ書込み
データレジスタ、3は命令バッファ、4.14.20は
それぞれ切替え回路、5は命令レジスタ、6は命令ポイ
ンタレジスタ、7、フはそれぞれアクセス履歴ビット、
8は分岐命令ビットF/F、9は指示レジスタ、10は
命令カウンタ、1】はブロック越先きサーチ回路、12
は制御回路、13.Is、16.17.19はそれぞれ
デコーダ、21は+1の加算器である。(Example) Next, the present invention will be described with reference to the drawings. ′
1 is a block diagram showing an embodiment of an instruction fetching device according to the present invention. In FIG. 1, 1 is an instruction buffer write address register, 2 is an instruction buffer write data register, 3 is an instruction buffer, and 4 is an instruction buffer write address register. .14.20 are respectively switching circuits, 5 is an instruction register, 6 is an instruction pointer register, 7 and F are access history bits,
8 is a branch instruction bit F/F, 9 is an instruction register, 10 is an instruction counter, 1] is a block beyond search circuit, 12
13. is a control circuit; Is, 16, 17, and 19 are decoders, respectively, and 21 is a +1 adder.
本実施例では命令長は4バイト、すなわち32ビツトで
あり、命令の論理アドレスは80ビツトのバイトアドレ
スである。In this embodiment, the instruction length is 4 bytes, or 32 bits, and the logical address of the instruction is an 80-bit byte address.
命令バッファ3は82バイト×64ワードの構成で、読
出し/書込みが同時に可能な記憶素子で実現され、16
ワードごとにそれぞれブロックo1ブロック1、ブロッ
ク2、およびブロック8として使用される。各ブロック
には、キャッシュメモリ(図示してない。)にある命令
語情報の1ブロツク、すなわち512バイト境界から始
まる512バイトの情報がロードされる。命令バッファ
書込みアドレスレジスタ2は、上記ロード時にキャッシ
ュメモリからの情報を一度に受け、命令バッファ3に書
込むためのレジスタであり、82バイトの幅を有するも
のである。The instruction buffer 3 has a configuration of 82 bytes x 64 words, and is realized with a memory element that can be read/written simultaneously.
Each word is used as block o1, block 1, block 2, and block 8, respectively. Each block is loaded with one block of instruction word information in a cache memory (not shown), ie, 512 bytes of information starting on a 512 byte boundary. The instruction buffer write address register 2 is a register for receiving information from the cache memory all at once at the time of loading and writing it to the instruction buffer 3, and has a width of 82 bytes.
切替え回路4は、命令バッファ308語よ構成る読出し
出力の内の一つを選択し、その出力は4バイトの命令レ
ジスタSにストローブされる。The switching circuit 4 selects one of the read outputs comprising 308 words of the instruction buffer, and that output is strobed into the 4-byte instruction register S.
命令バッファ3の読出しアドレスカウンタ6は、命令ポ
インタレジスタと呼ばれる。第2図(a)は、命令ポイ
ンタレジスタ6の内容の形式を示す説明図である。第2
図(a)において、ビットo。The read address counter 6 of the instruction buffer 3 is called an instruction pointer register. FIG. 2(a) is an explanatory diagram showing the format of the contents of the instruction pointer register 6. Second
In figure (a), bit o.
1はブロック番号、ビット2〜5はブロック内のワード
番号、ビット6〜8はワード内語番号をそれぞれ示す。1 indicates the block number, bits 2 to 5 indicate the word number within the block, and bits 6 to 8 indicate the word number within the word.
命令バッファ3から順次、命令語を読出しているときに
は、ビット2〜8は+1だけ増分されている。命令バッ
ファ3の書込みアドレスカウンタ1の形式は同一である
。第2図(b゛)はアドレスカウンタlの内容の形式を
示す説明図である。・第2図(b)において、ビットo
、1はブロック番号でアシ、ビット2〜5はワード番号
である。主記憶(図示してない。)またはキャッシュメ
モリから命令バッファ3へ命令語情報をロードしている
ときには、ビット2〜5は+1だけ増分され、命令バッ
ファ3には順次、命令語が書込まれる。When instruction words are read out sequentially from instruction buffer 3, bits 2 to 8 are incremented by +1. The format of the write address counter 1 of the instruction buffer 3 is the same. FIG. 2(b) is an explanatory diagram showing the format of the contents of the address counter l.・In Figure 2(b), bit o
, 1 is the block number, and bits 2 to 5 are the word number. When instruction word information is being loaded from the main memory (not shown) or cache memory to the instruction buffer 3, bits 2 to 5 are incremented by +1, and the instruction words are sequentially written to the instruction buffer 3. .
制御回路12は命令バッファ3からの命令の読出し、命
令の書込み、指示レジスタ9のストローブ、および指示
レジスタ9の入出力切替えの信号を発生するための制御
回路である。The control circuit 12 is a control circuit for generating signals for reading instructions from the instruction buffer 3, writing instructions, strobe the instruction register 9, and switching the input/output of the instruction register 9.
命令カウンタ10には、命令バッファ3から読出されて
いる命令語の記憶装置上のアドレス上位28ビツト、お
よびインストラクションカウンタ初期値の上位23ビツ
トがセットされる。プロッり越先きサーチ回路11の内
部には、命令バッファ3のブロック0からブロック8に
保持されている命令語の記憶装置上のアドレス上位28
ビツトが保持されている。ブロック越え時には命令カウ
ンタlOの値をブロック迷光きサーチ回路11に送シ、
命令バッファ3の各ブロックの先頭アドレスと比較する
。両者が一致したとき、一致出力によりブロック迷光き
の命令語の置かれているブロック番号を求める。The upper 28 bits of the address on the storage device of the instruction word being read from the instruction buffer 3 and the upper 23 bits of the initial value of the instruction counter are set in the instruction counter 10. Inside the plot look-ahead search circuit 11, the upper 28 addresses on the storage device of the instruction words held in blocks 0 to 8 of the instruction buffer 3 are stored.
Bits are retained. When crossing a block, the value of the instruction counter IO is sent to the block stray light search circuit 11,
Compare with the start address of each block in the instruction buffer 3. When the two match, the block number in which the block stray light command is placed is determined from the match output.
次に、第1図を参照して本実施例による命令取出し装置
の動作を説明する。Next, the operation of the instruction fetching device according to this embodiment will be explained with reference to FIG.
制御回路12は命令取出しの開始指示を受けると、イン
ストラクションカウンタ初期値の上位23ピツトを切替
え回路20を介して命令カウンタ10にセットし、イン
ストラクションカウンタ初期値の下位7ビツトを命令ポ
インタレジスタ6のブロック内ワード番号部、およびワ
ード内語番号部にセットする。開始指示を受けた時点で
は、命令バッファ3には有効な命令語はロードされてい
ない。したがって、ブロックθ〜8のうちにヒツトする
ものはないので、命令カウンタ10の値をリクエストア
ドレスとして使用し、キャッシュメモリに対してブロッ
クロード要求を送出している。When the control circuit 12 receives an instruction to start fetching an instruction, it sets the upper 23 bits of the initial value of the instruction counter in the instruction counter 10 via the switching circuit 20, and sets the lower 7 bits of the initial value of the instruction counter to the block of the instruction pointer register 6. Set in the internal word number section and the internal word number section. At the time when the start instruction is received, no valid instruction words are loaded into the instruction buffer 3. Therefore, since there is no hit among blocks θ to 8, the value of the instruction counter 10 is used as the request address, and a block load request is sent to the cache memory.
有効な命令語がロードされていないブロックの内部小ら
若番のロード先のブロック番号が優先的に選択されるの
で、最初はブロックOが選択される。指示レジスタ8は
、命令ポインタ6のブロック番号部に切替え回路14を
介してロード先のブロック番号を供給するレジスタであ
シ、キャッシュメモリに対してリクエストが送出される
ごとに1だけ増分される。Since the smallest load destination block number in a block to which no valid command has been loaded is selected preferentially, block O is selected first. The instruction register 8 is a register that supplies a load destination block number to the block number portion of the instruction pointer 6 via the switching circuit 14, and is incremented by 1 each time a request is sent to the cache memory.
制御回路12はキャッシュメモリから応答を受けると、
データ信号線22全通して送られてくる32パイ1−X
I 6個の情報を命令バッファ3のブロック0の各ワー
ドに書込む。情報は、リクエストアドレスで示される8
2バイトを先頭にして16回送られてくる。When the control circuit 12 receives a response from the cache memory,
32 pi 1-X sent through the entire data signal line 22
I Write 6 pieces of information into each word of block 0 of instruction buffer 3. The information is indicated by the request address8.
It is sent 16 times starting with 2 bytes.
分岐命令ビットF/F8およびアクセス履歴ビットF/
F7,7は、各ブロックに対応して設けられている。キ
ャッシュメモリに対してメモリリクエストが送出された
後に、リプレースされるブロックの分岐命令ビットF/
F8がセットされる。Branch instruction bit F/F8 and access history bit F/
F7, 7 are provided corresponding to each block. After a memory request is sent to the cache memory, the branch instruction bit F/ of the block to be replaced
F8 is set.
セットされた分岐命令ビットに対応するブロックの最終
ワードで分岐命令が読出されると、分岐命令ビットF/
F8がリセットされる。When a branch instruction is read in the last word of the block corresponding to the set branch instruction bit, the branch instruction bit F/
F8 is reset.
すなわち、命令レジスタ5に読出された命令語は、デコ
ーダ13によって分岐命令であるか否かがチェックされ
る。分岐命令であれば、信号線33を介してデコーダ1
6に分岐命令検出信号が送出される。デコーダ16は信
号線33上の情報と信号線18を介して送られてくる命
令ポインタレジスタ6にセットされた値をみて、最終ワ
ードに分岐命令が存在すれば信号線34を介して対応す
る分岐命令ビットF/F8にリセット信号を送出する。That is, the instruction word read into the instruction register 5 is checked by the decoder 13 to see if it is a branch instruction. If it is a branch instruction, it is sent to the decoder 1 via the signal line 33.
6, a branch instruction detection signal is sent out. The decoder 16 looks at the information on the signal line 33 and the value set in the instruction pointer register 6 sent via the signal line 18, and if there is a branch instruction in the final word, a corresponding branch is sent via the signal line 34. Sends a reset signal to instruction bit F/F8.
命令ポインタレジスタ6の下位7ビツトが120を示す
と、当該ブロックの末尾から8番目の命令語のアドレス
がセットされ、デコーダ15から信号線35上への出力
によって当該ブロックのアクセス履歴ビットF/F7が
セットされる。同様に、命令ポインタレジスタ6の下位
7ビツトが127を示すと、当該ブロックの最後の命令
語のアドレスがセットされ、デコーダ15から出力信号
36上に送出された出力によって当該ブロックのアクセ
ス履歴ビットF/F7がセットされる。When the lower 7 bits of the instruction pointer register 6 indicate 120, the address of the eighth instruction word from the end of the block is set, and the access history bit F/F7 of the block is output from the decoder 15 onto the signal line 35. is set. Similarly, when the lower 7 bits of the instruction pointer register 6 indicate 127, the address of the last instruction word of the block is set, and the access history bit F of the block is set by the output sent from the decoder 15 on the output signal 36. /F7 is set.
当該ブロックの他のワード、もしくは他のブロックに存
在する分岐命令によって、最終ワード(命令ポインタレ
ジスタ6の下位7ビツトが120〜127を示すワード
)の途中へ分岐し、且つ、当該最終ワードへのアクセス
が以前行われていなかったものとする。A branch to the middle of the final word (a word in which the lower 7 bits of the instruction pointer register 6 indicate 120 to 127) is caused by another word in the block or a branch instruction existing in another block, and a branch to the final word is executed. Assume that no access has been made previously.
このケースでは、当該ブロックの最終の命令語を読出す
と、対応するアクセス履歴ビットF/F7zIットされ
ていて、アクセス履歴ビットF/F7かリセットされて
いる。このような状態になったことはデコーダ17によ
り検出され、セットされているアクセス履歴ビットF/
F7がリセットされる。In this case, when the last instruction word of the block is read, the corresponding access history bit F/F7zI is set and the access history bit F/F7 is reset. This state is detected by the decoder 17 and the set access history bit F/
F7 is reset.
ココで、ブロック迷光きブロックのサーチについて述べ
る。Here I will talk about searching for stray blocks.
命令ポインタレジスタ6の下位7ビツトが120〜12
7のいずれかを示すと、デコーダ17により検出され、
信号線28を介して命令カウンタ10に+1だけ増分す
るように指示が送出される。命令ポインタレジスタ6は
依然、ブロック0をアクセスしているが、命令語の主記
憶上のアドレス上位28ピツトは先行したブロック迷光
きの命令語のアドレスをセットしていることになる。サ
ーチの結果、ブロック迷光きブロックが命令バッファ3
上に存在するならば、ブロック迷光きブロック番号が信
号線24および切替え回路14を介して命令ポインタレ
ジスタ6の上位2ビツトにセットされる。ブロック迷光
きブロックが命令バッファ3上に存在しない場合、すな
わち、命令バッファ3がミスヒツトする場合には、キャ
ッシュメモリに対してメモリリクエストを送出し、指示
レジスタ9により示されているブロック番号が信号線2
5と切替え回路14とを介して命令ポインタレジスタ6
の上位2ピツトにセットされる。The lower 7 bits of instruction pointer register 6 are 120 to 12.
7 is detected by the decoder 17,
An instruction is sent via signal line 28 to instruction counter 10 to increment by +1. The instruction pointer register 6 is still accessing block 0, but the upper 28 address pits of the instruction word in the main memory are set to the address of the instruction word of the preceding block. As a result of the search, the block with stray light is instruction buffer 3.
If the block number exists on the instruction pointer register 6, the stray block number is set to the upper two bits of the instruction pointer register 6 via the signal line 24 and the switching circuit 14. If a stray block does not exist on the instruction buffer 3, that is, if the instruction buffer 3 misses, a memory request is sent to the cache memory, and the block number indicated by the instruction register 9 is sent to the signal line. 2
5 and the switching circuit 14.
will be set to the top two pits.
このとき、キャッシュメモリに対するメモリリクエスト
のタイミングに本発明の特徴がある。At this time, the present invention is characterized by the timing of the memory request to the cache memory.
以下、上記のリクエストタイミングについて説明する。The above request timing will be explained below.
上述したように命令バッファ3からの読出しがブロック
の末尾に近づくと、ブロック迷光きサーチ回路11で次
ブロックのサーチが行われる。命令バッファ3がミスヒ
ツトした際には、信号線33を介して制御回路12ヘメ
モIJ IJクエストの指示が送出される。このシーケ
ンスと並行してデコーダ17では、命令ポインタレジス
タ6で示されたアドレスから当該ブロックの末尾までの
命令に分岐命令が存在しないか否かをチェックする。As described above, when reading from the instruction buffer 3 approaches the end of a block, the block stray light search circuit 11 searches for the next block. When the instruction buffer 3 misses, a memo IJ IJ quest instruction is sent to the control circuit 12 via the signal line 33. In parallel with this sequence, the decoder 17 checks whether there is a branch instruction among the instructions from the address indicated by the instruction pointer register 6 to the end of the block.
分岐命令が存在していれば、命令ストリームの切替る可
能性があるので、キャッシュメモリに対して次ブロック
をロードするためにメモリリクエストを送出しても無駄
になる可能性がある。デコーダ17は命令バッファ3の
ブロックに対応して設けられ、命令ポインタレジスタ6
の下位7ビツトが120〜127の間を示すと、当該ブ
ロックに対応する分岐命令ビットF/F8とアクセス履
歴ビットF/F7.7とを参照し、上記ビットがすべて
セットされているときのみ制御回路12に対して信号線
27を介してリクエスト許可信号を送出する。この許可
信号が送出されているときには、命令バッファ3上の当
該ブロックには未だ読出されていない、命令が残ってい
るが、残命令のなかには、分岐命令が存在しないので、
キャッシュメモリに対するリクエストが制御回路12に
対して許可される。制御回路12は、上記許可信号と命
令バッファ3のミスヒツトの際にブロック迷光きサーチ
回路11より送出される。メモリリクエストとをみて、
キャッシュメモリに対してメモリリクエストを送出する
。If a branch instruction exists, there is a possibility that the instruction stream will be switched, so it may be useless to send a memory request to load the next block into the cache memory. A decoder 17 is provided corresponding to a block of the instruction buffer 3, and an instruction pointer register 6
If the lower 7 bits of the block indicate a value between 120 and 127, the branch instruction bit F/F8 and access history bit F/F7.7 corresponding to the block are referenced, and control is performed only when all of the above bits are set. A request permission signal is sent to the circuit 12 via the signal line 27. When this permission signal is being sent, there are instructions remaining in the relevant block on the instruction buffer 3 that have not yet been read out, but there are no branch instructions among the remaining instructions.
A request for cache memory is granted to control circuit 12. The control circuit 12 receives a signal from the block stray light search circuit 11 when there is a mismatch between the permission signal and the instruction buffer 3. Look at the memory request,
Send a memory request to cache memory.
当該ブロックの分岐命令ビットF/F8とアクセス履歴
ビットF/F7,7とのうちで、1ビツトでもリセット
されているならば、命令バッファ3からの読出されてい
ない命令のなかに分岐命令が存在するか、あるいは存在
する可能性があるということを示している。If even one bit of the branch instruction bit F/F8 and access history bits F/F7, 7 of the block is reset, a branch instruction exists among the instructions that have not been read from the instruction buffer 3. This indicates that there is a possibility that it exists.
したがって、リクエスト許可信号は送出されずブロック
迷光きサーチ回路11よりメモリリクエストが送出され
てもキャッシュメモリに対するリクエストは、命令スト
リームの変更がないということが確認され、当該ブロッ
クの命令がすべて読出されるまで抑止される。Therefore, even if a memory request is sent from the block stray light search circuit 11 without sending a request permission signal, it is confirmed that the instruction stream of the request to the cache memory has not changed, and all instructions of the block are read out. will be suppressed until
(発明の効果)
以上説明したように本発明は、命令バッファの最終ワー
ドに位置する命令語の読出し履歴、および分岐命令が存
在しないという情報を保持することにより、ブロック越
えのりクエストを従来方式よりも数マシンサイクル早く
送出することかでき。(Effects of the Invention) As explained above, the present invention can improve block crossing quests by retaining the read history of the instruction word located in the final word of the instruction buffer and the information that there is no branch instruction. It can also send several machine cycles earlier.
さらにリクエストのキャンセルを行う必要もないという
効果がある。Another advantage is that there is no need to cancel the request.
第1図は、本発明による命令取出し装置の一実施例を示
すブロック図である。
第2図は、第1図に示す命令ポインタレジスタおよびア
ドレスカウンタにセットされるデータの形式を′示す説
明図である。
1■■■1トー1−t
1・・・命令バッファ書込みアドレスレジスタ2・・・
命令バッファ書込みデータレジスタ3・・・命令バッフ
ァ
4、IS、]7.31・・・切替え回路5@・・命令レ
ジスタ
6・・・命令ポインタレジスタ
フ、フ・・・アクセス履歴ビットF/F8・・・分岐命
令ビットF/F
9・・・指示レジスタ
10・・・命令カウンタ
11・・・ブロック迷光きサーチ回路
12・・・制御回路FIG. 1 is a block diagram showing an embodiment of an instruction fetching device according to the present invention. FIG. 2 is an explanatory diagram showing the format of data set in the instruction pointer register and address counter shown in FIG. 1. 1■■■1to1-t 1...Instruction buffer write address register 2...
Instruction buffer write data register 3...Instruction buffer 4, IS, ]7.31...Switching circuit 5@...Instruction register 6...Instruction pointer register ff, F...Access history bit F/F8...・Branch instruction bit F/F 9 ・Instruction register 10 ・Instruction counter 11 ・Block stray light search circuit 12 ・Control circuit
Claims (1)
るための命令バッファと、前記命令バッファから読出さ
れている命令語のアドレスの上位ビットを保持するため
の命令カウンタと、前記命令バッファから読出されてい
る命令語のブロック番号およびブロック内アドレスを示
すための命令ポインタレジスタと、前記命令バッファか
ら読出された前記命令語を保持するための命令レジスタ
と、前記命令バッファのブロックの末尾から予め定めら
れた命令数内に位置する命令のなかで分岐命令が存在す
ることを示すための分岐命令ビットF/Fと、前記命令
数内に位置する命令が以前に前記命令バッファより読出
されたものであるという履歴の存在することを示すアク
セス履歴ビットF/Fと、前記命令バッファ上のブロッ
クから読出されている命令語のアドレスが前記ブロック
の末尾から予め定められた命令数内に位置していること
を検出するとともに、キャッシュアドレスからみて前記
ブロックに連続するブロックが前記命令バッファ上に存
在しない場合には前記命令バッファ上のブロックに対応
する前記分岐命令ビットF/Fの内容、および前記アク
セス履歴ビットF/Fの内容をチェックし、前記ブロッ
クの末尾までの後続命令がすべて以前に前記命令バッフ
ァより読出された履歴を有するとともに前記分岐命令が
含まれていないという条件が成立つときにはキャッシュ
メモリに対してリクエストを送出し、前記条件が満足さ
れないときには前記キャッシュメモリに対するリクエス
トを抑止するための制御手段とを具備して構成したこと
を特徴とする命令取出し装置。an instruction buffer for holding instruction words read from a storage device in units of blocks; an instruction counter for holding high-order bits of the address of the instruction word being read from the instruction buffer; an instruction pointer register for indicating the block number and intra-block address of the instruction word read from the instruction buffer; and an instruction register for holding the instruction word read from the instruction buffer; A branch instruction bit F/F to indicate that a branch instruction exists among the instructions located within the instruction number, and an instruction located within the instruction number that was previously read from the instruction buffer. an access history bit F/F indicating that a history exists, and that the address of the instruction word read from the block on the instruction buffer is located within a predetermined number of instructions from the end of the block; , and if there is no block on the instruction buffer that follows the block from the cache address, the contents of the branch instruction bit F/F corresponding to the block on the instruction buffer and the access history bit are detected. The contents of the F/F are checked, and if the conditions are met that all subsequent instructions up to the end of the block have a history of having been previously read from the instruction buffer and do not include the branch instruction, then the contents of the F/F are stored in the cache memory. 1. An instruction fetching device comprising: control means for sending a request to the cache memory, and suppressing a request to the cache memory when the condition is not satisfied.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP28749986A JPS63140337A (en) | 1986-12-02 | 1986-12-02 | Instruction taking out device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP28749986A JPS63140337A (en) | 1986-12-02 | 1986-12-02 | Instruction taking out device |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS63140337A true JPS63140337A (en) | 1988-06-11 |
Family
ID=17718134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP28749986A Pending JPS63140337A (en) | 1986-12-02 | 1986-12-02 | Instruction taking out device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS63140337A (en) |
-
1986
- 1986-12-02 JP JP28749986A patent/JPS63140337A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR0182344B1 (en) | System and method for synchronization in split-level data cache system | |
US8332590B1 (en) | Multi-stage command processing pipeline and method for shared cache access | |
US7111127B2 (en) | System for supporting unlimited consecutive data stores into a cache memory | |
JPS63140337A (en) | Instruction taking out device | |
JPH0510694B2 (en) | ||
JPS6236258B2 (en) | ||
JPS63136229A (en) | Instruction extracting device | |
JPS5890244A (en) | Data processor | |
JPS58208982A (en) | Store buffer | |
KR960029986A (en) | Data processing device and cache memory control method | |
JPH0433059B2 (en) | ||
JP2776388B2 (en) | Storage control method and storage device | |
JP2538993B2 (en) | Operand store cache memory store control method | |
CN116700794A (en) | Method and system for acquiring instruction to be executed | |
JPH0248733A (en) | Information processor | |
JP2636564B2 (en) | Move-in control method for cache memory | |
JPH086853A (en) | Storage control method | |
JPS6244838A (en) | Instruction fetching device | |
JPH01305452A (en) | Store control system for buffer memory device | |
JPH02259945A (en) | Storing processing system | |
JPS6055454A (en) | Data transfer control system | |
JPS6240554A (en) | Buffer memory block prefetching system | |
JPS62147530A (en) | Microprogram control system | |
JPH0412858B2 (en) | ||
JPS5890246A (en) | Detecting system for rewriting of instruction word |