JPS63140337A - 命令取出し装置 - Google Patents
命令取出し装置Info
- 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
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
(産業上の利用分野)
本発明は、高速の情報処理装置における命令取出し装置
に関する。
に関する。
(従来の技術)
近年、高速の情報処理装置においては、命令の実行と並
行して実行中の命令シーケンスに後続した命令シーケン
スをキャッシュメモリより読出し、これを一時記憶する
ための命令バッファを備えることが多い。また、命令バ
ッファからの命令の取出し命令の解読、ならびにオペラ
ンドの準備演算の各過程に対応した一連の処理ステージ
を備え、マシンサイクルの周期で順次命令を上記一連の
ステージに流して処理するパイプライン処理の行われる
ことも多い。
行して実行中の命令シーケンスに後続した命令シーケン
スをキャッシュメモリより読出し、これを一時記憶する
ための命令バッファを備えることが多い。また、命令バ
ッファからの命令の取出し命令の解読、ならびにオペラ
ンドの準備演算の各過程に対応した一連の処理ステージ
を備え、マシンサイクルの周期で順次命令を上記一連の
ステージに流して処理するパイプライン処理の行われる
ことも多い。
従来、科学技術計算専用の処理装置における命令取出し
方式には、次の第1および第2の方式が公知である。斯
かる方式の一つとして、命令バッファの容量を、例えば
数にバイト程度に大きくし、これを複数個のブロックに
分割し、記憶装置の命令語エリア内の実行中の命令語を
上記命令バッファ上のブロックへブロック単位に転記し
、同時に命令バッファの各ブロックごとに上記ブロック
に保持されている命令語の命令アドレスを保持するため
のアドレス保持手段を設け、解読すべき命令語の命令ア
ドレスで上記アドレス保持手段のアドレスをサーチする
ことによって命令バッファ上のグロック番号を求め、上
記ブロックから順次、命令をデコードステージに取出す
。従来技術による第1の方式は上記のものである。
方式には、次の第1および第2の方式が公知である。斯
かる方式の一つとして、命令バッファの容量を、例えば
数にバイト程度に大きくし、これを複数個のブロックに
分割し、記憶装置の命令語エリア内の実行中の命令語を
上記命令バッファ上のブロックへブロック単位に転記し
、同時に命令バッファの各ブロックごとに上記ブロック
に保持されている命令語の命令アドレスを保持するため
のアドレス保持手段を設け、解読すべき命令語の命令ア
ドレスで上記アドレス保持手段のアドレスをサーチする
ことによって命令バッファ上のグロック番号を求め、上
記ブロックから順次、命令をデコードステージに取出す
。従来技術による第1の方式は上記のものである。
この場合、命令バッファ上のアドレスは主記憶のアドレ
スとは異なシ、命令バッファ上のブロック番号とブロッ
ク内ワード番号、ときにはワード内語番号等とから構成
されている。
スとは異なシ、命令バッファ上のブロック番号とブロッ
ク内ワード番号、ときにはワード内語番号等とから構成
されている。
あるブロックの末尾から他のブロックの最初の命令語に
移るとき(以下、ブロック越えという。)移り先のブロ
ックが命令バッファ上に存在しないというケースがあシ
得る。このようなケースでは従来、ブロック末尾の命令
語を命令バッファから読出しだ後に、主記憶装置に対し
てリフエストラ取出すか、あるいは末尾から予め定めら
れた命令数内に位置する命令語を命令バッファから読出
すと、これによって主記憶装置に対して無条件にリクエ
ストを出す。斯かる方式が従来技術による第2の方式で
ある。
移るとき(以下、ブロック越えという。)移り先のブロ
ックが命令バッファ上に存在しないというケースがあシ
得る。このようなケースでは従来、ブロック末尾の命令
語を命令バッファから読出しだ後に、主記憶装置に対し
てリフエストラ取出すか、あるいは末尾から予め定めら
れた命令数内に位置する命令語を命令バッファから読出
すと、これによって主記憶装置に対して無条件にリクエ
ストを出す。斯かる方式が従来技術による第2の方式で
ある。
(発明が解決しようとする問題点)
上述した従来の命令取出し方式において、第1の方式の
場合には、移シ先のブロックの最初の命令語を読出すの
に遅延が生じるという問題がある。
場合には、移シ先のブロックの最初の命令語を読出すの
に遅延が生じるという問題がある。
第2の方式の場合には、リクエストを送出した後にブロ
ック末尾付近の分岐命令によって命令ストリームが変っ
たならば、既に送出されたリクエスト信号をキャンセル
しなければならないという問題がある。
ック末尾付近の分岐命令によって命令ストリームが変っ
たならば、既に送出されたリクエスト信号をキャンセル
しなければならないという問題がある。
本発明の目的は、記憶装置より読出された命令語をブロ
ック巣位に命令バッファへ保持しておき、命令バッファ
から読出されている命令語のアドレスの上位ビットを命
令カウンタに保持し、命令バッファから読出されている
命令語のブロック番号とブロック内アドレスとを命令ポ
インタによって指示し、命令バッファのブロックの末尾
から予め定められた命令数内に位置する命令のなかで分
岐命令が存在することを示す分岐命令ビット、および上
記命令数内に位置する命令が以前に命令バッファよ)読
出されたものであるという履歴の存在することを示すア
クセス履歴ビットを有することによって上記欠点を除去
し、特定条件における命令語も容易に取出すことができ
るように構成した命令取出し装置を提供することにある
。
ック巣位に命令バッファへ保持しておき、命令バッファ
から読出されている命令語のアドレスの上位ビットを命
令カウンタに保持し、命令バッファから読出されている
命令語のブロック番号とブロック内アドレスとを命令ポ
インタによって指示し、命令バッファのブロックの末尾
から予め定められた命令数内に位置する命令のなかで分
岐命令が存在することを示す分岐命令ビット、および上
記命令数内に位置する命令が以前に命令バッファよ)読
出されたものであるという履歴の存在することを示すア
クセス履歴ビットを有することによって上記欠点を除去
し、特定条件における命令語も容易に取出すことができ
るように構成した命令取出し装置を提供することにある
。
(問題点を解決するための手段)
本発明による命令取出し装置は、命令バッファド、命令
カウンタと、命令ポインタレジスタと、命令レジスタと
、分岐命令ビットF/Fと、アクセス履歴F/Fと、制
御手段とを具備して構成したものである。
カウンタと、命令ポインタレジスタと、命令レジスタと
、分岐命令ビットF/Fと、アクセス履歴F/Fと、制
御手段とを具備して構成したものである。
命令バッファは、記憶装置より読出された命令語をブロ
ック単位に保持するためのものである。
ック単位に保持するためのものである。
命令カウンタは、命令バッファから読出されている命令
語のアドレスの上位ビットを保持するためのものである
。
語のアドレスの上位ビットを保持するためのものである
。
命令ポインタレジスタは、命令バッファから読出されて
いる命令語のブロック番号およびブロック内アドレスを
示すためのものである。 ゛命令レジスタは、命令
バッファから読出された命令語を保持するだめのもので
ある。
いる命令語のブロック番号およびブロック内アドレスを
示すためのものである。 ゛命令レジスタは、命令
バッファから読出された命令語を保持するだめのもので
ある。
分岐命令ビット F/F’は、命令バッファのブロック
の末尾から予め定められた命令数内に位置する命令のな
かで、分岐命令が存在することを示すだめのものである
。
の末尾から予め定められた命令数内に位置する命令のな
かで、分岐命令が存在することを示すだめのものである
。
アクセス履歴ビットF/Fは、命令数内に位置する命令
が以前に命令バッファより読出されたものであるという
履歴の存在することを示すだめのものである。
が以前に命令バッファより読出されたものであるという
履歴の存在することを示すだめのものである。
制御手段は、命令バッファ上のブロックから読出されて
いる命令語のアドレスが上記ブロックの末尾から予め定
められた命令数内に位置していることを検出するととも
に、キャッシュアドレスからみて上記ブロックに連続す
るブロックが命令バッファ上に存場しない場合には、命
令バッファ上のブロックに対応する分岐命令ビットF/
Fの内容、オヨヒアクセス履歴ビットF/Fの内容をチ
ェックし、上記ブロックの末尾までの後続命令がすべて
以前に命令バッファより読出された履歴を有するととも
に、分岐命令が含まれていないという条件が成立つとき
にはキャッシュメモリに対してリクエストを送出し、上
記条件が満足されないときにはキャッシュメモリに対す
るリクエストを抑止するためのものである。
いる命令語のアドレスが上記ブロックの末尾から予め定
められた命令数内に位置していることを検出するととも
に、キャッシュアドレスからみて上記ブロックに連続す
るブロックが命令バッファ上に存場しない場合には、命
令バッファ上のブロックに対応する分岐命令ビットF/
Fの内容、オヨヒアクセス履歴ビットF/Fの内容をチ
ェックし、上記ブロックの末尾までの後続命令がすべて
以前に命令バッファより読出された履歴を有するととも
に、分岐命令が含まれていないという条件が成立つとき
にはキャッシュメモリに対してリクエストを送出し、上
記条件が満足されないときにはキャッシュメモリに対す
るリクエストを抑止するためのものである。
(実施例)
次に、本発明について図面を参照して説明する。 ′
″第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の加算器である。
″第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の加算器である。
本実施例では命令長は4バイト、すなわち32ビツトで
あり、命令の論理アドレスは80ビツトのバイトアドレ
スである。
あり、命令の論理アドレスは80ビツトのバイトアドレ
スである。
命令バッファ3は82バイト×64ワードの構成で、読
出し/書込みが同時に可能な記憶素子で実現され、16
ワードごとにそれぞれブロックo1ブロック1、ブロッ
ク2、およびブロック8として使用される。各ブロック
には、キャッシュメモリ(図示してない。)にある命令
語情報の1ブロツク、すなわち512バイト境界から始
まる512バイトの情報がロードされる。命令バッファ
書込みアドレスレジスタ2は、上記ロード時にキャッシ
ュメモリからの情報を一度に受け、命令バッファ3に書
込むためのレジスタであり、82バイトの幅を有するも
のである。
出し/書込みが同時に可能な記憶素子で実現され、16
ワードごとにそれぞれブロックo1ブロック1、ブロッ
ク2、およびブロック8として使用される。各ブロック
には、キャッシュメモリ(図示してない。)にある命令
語情報の1ブロツク、すなわち512バイト境界から始
まる512バイトの情報がロードされる。命令バッファ
書込みアドレスレジスタ2は、上記ロード時にキャッシ
ュメモリからの情報を一度に受け、命令バッファ3に書
込むためのレジスタであり、82バイトの幅を有するも
のである。
切替え回路4は、命令バッファ308語よ構成る読出し
出力の内の一つを選択し、その出力は4バイトの命令レ
ジスタSにストローブされる。
出力の内の一つを選択し、その出力は4バイトの命令レ
ジスタSにストローブされる。
命令バッファ3の読出しアドレスカウンタ6は、命令ポ
インタレジスタと呼ばれる。第2図(a)は、命令ポイ
ンタレジスタ6の内容の形式を示す説明図である。第2
図(a)において、ビットo。
インタレジスタと呼ばれる。第2図(a)は、命令ポイ
ンタレジスタ6の内容の形式を示す説明図である。第2
図(a)において、ビットo。
1はブロック番号、ビット2〜5はブロック内のワード
番号、ビット6〜8はワード内語番号をそれぞれ示す。
番号、ビット6〜8はワード内語番号をそれぞれ示す。
命令バッファ3から順次、命令語を読出しているときに
は、ビット2〜8は+1だけ増分されている。命令バッ
ファ3の書込みアドレスカウンタ1の形式は同一である
。第2図(b゛)はアドレスカウンタlの内容の形式を
示す説明図である。・第2図(b)において、ビットo
、1はブロック番号でアシ、ビット2〜5はワード番号
である。主記憶(図示してない。)またはキャッシュメ
モリから命令バッファ3へ命令語情報をロードしている
ときには、ビット2〜5は+1だけ増分され、命令バッ
ファ3には順次、命令語が書込まれる。
は、ビット2〜8は+1だけ増分されている。命令バッ
ファ3の書込みアドレスカウンタ1の形式は同一である
。第2図(b゛)はアドレスカウンタlの内容の形式を
示す説明図である。・第2図(b)において、ビットo
、1はブロック番号でアシ、ビット2〜5はワード番号
である。主記憶(図示してない。)またはキャッシュメ
モリから命令バッファ3へ命令語情報をロードしている
ときには、ビット2〜5は+1だけ増分され、命令バッ
ファ3には順次、命令語が書込まれる。
制御回路12は命令バッファ3からの命令の読出し、命
令の書込み、指示レジスタ9のストローブ、および指示
レジスタ9の入出力切替えの信号を発生するための制御
回路である。
令の書込み、指示レジスタ9のストローブ、および指示
レジスタ9の入出力切替えの信号を発生するための制御
回路である。
命令カウンタ10には、命令バッファ3から読出されて
いる命令語の記憶装置上のアドレス上位28ビツト、お
よびインストラクションカウンタ初期値の上位23ビツ
トがセットされる。プロッり越先きサーチ回路11の内
部には、命令バッファ3のブロック0からブロック8に
保持されている命令語の記憶装置上のアドレス上位28
ビツトが保持されている。ブロック越え時には命令カウ
ンタlOの値をブロック迷光きサーチ回路11に送シ、
命令バッファ3の各ブロックの先頭アドレスと比較する
。両者が一致したとき、一致出力によりブロック迷光き
の命令語の置かれているブロック番号を求める。
いる命令語の記憶装置上のアドレス上位28ビツト、お
よびインストラクションカウンタ初期値の上位23ビツ
トがセットされる。プロッり越先きサーチ回路11の内
部には、命令バッファ3のブロック0からブロック8に
保持されている命令語の記憶装置上のアドレス上位28
ビツトが保持されている。ブロック越え時には命令カウ
ンタlOの値をブロック迷光きサーチ回路11に送シ、
命令バッファ3の各ブロックの先頭アドレスと比較する
。両者が一致したとき、一致出力によりブロック迷光き
の命令語の置かれているブロック番号を求める。
次に、第1図を参照して本実施例による命令取出し装置
の動作を説明する。
の動作を説明する。
制御回路12は命令取出しの開始指示を受けると、イン
ストラクションカウンタ初期値の上位23ピツトを切替
え回路20を介して命令カウンタ10にセットし、イン
ストラクションカウンタ初期値の下位7ビツトを命令ポ
インタレジスタ6のブロック内ワード番号部、およびワ
ード内語番号部にセットする。開始指示を受けた時点で
は、命令バッファ3には有効な命令語はロードされてい
ない。したがって、ブロックθ〜8のうちにヒツトする
ものはないので、命令カウンタ10の値をリクエストア
ドレスとして使用し、キャッシュメモリに対してブロッ
クロード要求を送出している。
ストラクションカウンタ初期値の上位23ピツトを切替
え回路20を介して命令カウンタ10にセットし、イン
ストラクションカウンタ初期値の下位7ビツトを命令ポ
インタレジスタ6のブロック内ワード番号部、およびワ
ード内語番号部にセットする。開始指示を受けた時点で
は、命令バッファ3には有効な命令語はロードされてい
ない。したがって、ブロックθ〜8のうちにヒツトする
ものはないので、命令カウンタ10の値をリクエストア
ドレスとして使用し、キャッシュメモリに対してブロッ
クロード要求を送出している。
有効な命令語がロードされていないブロックの内部小ら
若番のロード先のブロック番号が優先的に選択されるの
で、最初はブロックOが選択される。指示レジスタ8は
、命令ポインタ6のブロック番号部に切替え回路14を
介してロード先のブロック番号を供給するレジスタであ
シ、キャッシュメモリに対してリクエストが送出される
ごとに1だけ増分される。
若番のロード先のブロック番号が優先的に選択されるの
で、最初はブロックOが選択される。指示レジスタ8は
、命令ポインタ6のブロック番号部に切替え回路14を
介してロード先のブロック番号を供給するレジスタであ
シ、キャッシュメモリに対してリクエストが送出される
ごとに1だけ増分される。
制御回路12はキャッシュメモリから応答を受けると、
データ信号線22全通して送られてくる32パイ1−X
I 6個の情報を命令バッファ3のブロック0の各ワー
ドに書込む。情報は、リクエストアドレスで示される8
2バイトを先頭にして16回送られてくる。
データ信号線22全通して送られてくる32パイ1−X
I 6個の情報を命令バッファ3のブロック0の各ワー
ドに書込む。情報は、リクエストアドレスで示される8
2バイトを先頭にして16回送られてくる。
分岐命令ビットF/F8およびアクセス履歴ビットF/
F7,7は、各ブロックに対応して設けられている。キ
ャッシュメモリに対してメモリリクエストが送出された
後に、リプレースされるブロックの分岐命令ビットF/
F8がセットされる。
F7,7は、各ブロックに対応して設けられている。キ
ャッシュメモリに対してメモリリクエストが送出された
後に、リプレースされるブロックの分岐命令ビットF/
F8がセットされる。
セットされた分岐命令ビットに対応するブロックの最終
ワードで分岐命令が読出されると、分岐命令ビットF/
F8がリセットされる。
ワードで分岐命令が読出されると、分岐命令ビットF/
F8がリセットされる。
すなわち、命令レジスタ5に読出された命令語は、デコ
ーダ13によって分岐命令であるか否かがチェックされ
る。分岐命令であれば、信号線33を介してデコーダ1
6に分岐命令検出信号が送出される。デコーダ16は信
号線33上の情報と信号線18を介して送られてくる命
令ポインタレジスタ6にセットされた値をみて、最終ワ
ードに分岐命令が存在すれば信号線34を介して対応す
る分岐命令ビットF/F8にリセット信号を送出する。
ーダ13によって分岐命令であるか否かがチェックされ
る。分岐命令であれば、信号線33を介してデコーダ1
6に分岐命令検出信号が送出される。デコーダ16は信
号線33上の情報と信号線18を介して送られてくる命
令ポインタレジスタ6にセットされた値をみて、最終ワ
ードに分岐命令が存在すれば信号線34を介して対応す
る分岐命令ビットF/F8にリセット信号を送出する。
命令ポインタレジスタ6の下位7ビツトが120を示す
と、当該ブロックの末尾から8番目の命令語のアドレス
がセットされ、デコーダ15から信号線35上への出力
によって当該ブロックのアクセス履歴ビットF/F7が
セットされる。同様に、命令ポインタレジスタ6の下位
7ビツトが127を示すと、当該ブロックの最後の命令
語のアドレスがセットされ、デコーダ15から出力信号
36上に送出された出力によって当該ブロックのアクセ
ス履歴ビットF/F7がセットされる。
と、当該ブロックの末尾から8番目の命令語のアドレス
がセットされ、デコーダ15から信号線35上への出力
によって当該ブロックのアクセス履歴ビットF/F7が
セットされる。同様に、命令ポインタレジスタ6の下位
7ビツトが127を示すと、当該ブロックの最後の命令
語のアドレスがセットされ、デコーダ15から出力信号
36上に送出された出力によって当該ブロックのアクセ
ス履歴ビットF/F7がセットされる。
当該ブロックの他のワード、もしくは他のブロックに存
在する分岐命令によって、最終ワード(命令ポインタレ
ジスタ6の下位7ビツトが120〜127を示すワード
)の途中へ分岐し、且つ、当該最終ワードへのアクセス
が以前行われていなかったものとする。
在する分岐命令によって、最終ワード(命令ポインタレ
ジスタ6の下位7ビツトが120〜127を示すワード
)の途中へ分岐し、且つ、当該最終ワードへのアクセス
が以前行われていなかったものとする。
このケースでは、当該ブロックの最終の命令語を読出す
と、対応するアクセス履歴ビットF/F7zIットされ
ていて、アクセス履歴ビットF/F7かリセットされて
いる。このような状態になったことはデコーダ17によ
り検出され、セットされているアクセス履歴ビットF/
F7がリセットされる。
と、対応するアクセス履歴ビットF/F7zIットされ
ていて、アクセス履歴ビットF/F7かリセットされて
いる。このような状態になったことはデコーダ17によ
り検出され、セットされているアクセス履歴ビットF/
F7がリセットされる。
ココで、ブロック迷光きブロックのサーチについて述べ
る。
る。
命令ポインタレジスタ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ピツトにセットされる。
7のいずれかを示すと、デコーダ17により検出され、
信号線28を介して命令カウンタ10に+1だけ増分す
るように指示が送出される。命令ポインタレジスタ6は
依然、ブロック0をアクセスしているが、命令語の主記
憶上のアドレス上位28ピツトは先行したブロック迷光
きの命令語のアドレスをセットしていることになる。サ
ーチの結果、ブロック迷光きブロックが命令バッファ3
上に存在するならば、ブロック迷光きブロック番号が信
号線24および切替え回路14を介して命令ポインタレ
ジスタ6の上位2ビツトにセットされる。ブロック迷光
きブロックが命令バッファ3上に存在しない場合、すな
わち、命令バッファ3がミスヒツトする場合には、キャ
ッシュメモリに対してメモリリクエストを送出し、指示
レジスタ9により示されているブロック番号が信号線2
5と切替え回路14とを介して命令ポインタレジスタ6
の上位2ピツトにセットされる。
このとき、キャッシュメモリに対するメモリリクエスト
のタイミングに本発明の特徴がある。
のタイミングに本発明の特徴がある。
以下、上記のリクエストタイミングについて説明する。
上述したように命令バッファ3からの読出しがブロック
の末尾に近づくと、ブロック迷光きサーチ回路11で次
ブロックのサーチが行われる。命令バッファ3がミスヒ
ツトした際には、信号線33を介して制御回路12ヘメ
モIJ IJクエストの指示が送出される。このシーケ
ンスと並行してデコーダ17では、命令ポインタレジス
タ6で示されたアドレスから当該ブロックの末尾までの
命令に分岐命令が存在しないか否かをチェックする。
の末尾に近づくと、ブロック迷光きサーチ回路11で次
ブロックのサーチが行われる。命令バッファ3がミスヒ
ツトした際には、信号線33を介して制御回路12ヘメ
モIJ IJクエストの指示が送出される。このシーケ
ンスと並行してデコーダ17では、命令ポインタレジス
タ6で示されたアドレスから当該ブロックの末尾までの
命令に分岐命令が存在しないか否かをチェックする。
分岐命令が存在していれば、命令ストリームの切替る可
能性があるので、キャッシュメモリに対して次ブロック
をロードするためにメモリリクエストを送出しても無駄
になる可能性がある。デコーダ17は命令バッファ3の
ブロックに対応して設けられ、命令ポインタレジスタ6
の下位7ビツトが120〜127の間を示すと、当該ブ
ロックに対応する分岐命令ビットF/F8とアクセス履
歴ビットF/F7.7とを参照し、上記ビットがすべて
セットされているときのみ制御回路12に対して信号線
27を介してリクエスト許可信号を送出する。この許可
信号が送出されているときには、命令バッファ3上の当
該ブロックには未だ読出されていない、命令が残ってい
るが、残命令のなかには、分岐命令が存在しないので、
キャッシュメモリに対するリクエストが制御回路12に
対して許可される。制御回路12は、上記許可信号と命
令バッファ3のミスヒツトの際にブロック迷光きサーチ
回路11より送出される。メモリリクエストとをみて、
キャッシュメモリに対してメモリリクエストを送出する
。
能性があるので、キャッシュメモリに対して次ブロック
をロードするためにメモリリクエストを送出しても無駄
になる可能性がある。デコーダ17は命令バッファ3の
ブロックに対応して設けられ、命令ポインタレジスタ6
の下位7ビツトが120〜127の間を示すと、当該ブ
ロックに対応する分岐命令ビットF/F8とアクセス履
歴ビットF/F7.7とを参照し、上記ビットがすべて
セットされているときのみ制御回路12に対して信号線
27を介してリクエスト許可信号を送出する。この許可
信号が送出されているときには、命令バッファ3上の当
該ブロックには未だ読出されていない、命令が残ってい
るが、残命令のなかには、分岐命令が存在しないので、
キャッシュメモリに対するリクエストが制御回路12に
対して許可される。制御回路12は、上記許可信号と命
令バッファ3のミスヒツトの際にブロック迷光きサーチ
回路11より送出される。メモリリクエストとをみて、
キャッシュメモリに対してメモリリクエストを送出する
。
当該ブロックの分岐命令ビットF/F8とアクセス履歴
ビットF/F7,7とのうちで、1ビツトでもリセット
されているならば、命令バッファ3からの読出されてい
ない命令のなかに分岐命令が存在するか、あるいは存在
する可能性があるということを示している。
ビットF/F7,7とのうちで、1ビツトでもリセット
されているならば、命令バッファ3からの読出されてい
ない命令のなかに分岐命令が存在するか、あるいは存在
する可能性があるということを示している。
したがって、リクエスト許可信号は送出されずブロック
迷光きサーチ回路11よりメモリリクエストが送出され
てもキャッシュメモリに対するリクエストは、命令スト
リームの変更がないということが確認され、当該ブロッ
クの命令がすべて読出されるまで抑止される。
迷光きサーチ回路11よりメモリリクエストが送出され
てもキャッシュメモリに対するリクエストは、命令スト
リームの変更がないということが確認され、当該ブロッ
クの命令がすべて読出されるまで抑止される。
(発明の効果)
以上説明したように本発明は、命令バッファの最終ワー
ドに位置する命令語の読出し履歴、および分岐命令が存
在しないという情報を保持することにより、ブロック越
えのりクエストを従来方式よりも数マシンサイクル早く
送出することかでき。
ドに位置する命令語の読出し履歴、および分岐命令が存
在しないという情報を保持することにより、ブロック越
えのりクエストを従来方式よりも数マシンサイクル早く
送出することかでき。
さらにリクエストのキャンセルを行う必要もないという
効果がある。
効果がある。
第1図は、本発明による命令取出し装置の一実施例を示
すブロック図である。 第2図は、第1図に示す命令ポインタレジスタおよびア
ドレスカウンタにセットされるデータの形式を′示す説
明図である。 1■■■1トー1−t 1・・・命令バッファ書込みアドレスレジスタ2・・・
命令バッファ書込みデータレジスタ3・・・命令バッフ
ァ 4、IS、]7.31・・・切替え回路5@・・命令レ
ジスタ 6・・・命令ポインタレジスタ フ、フ・・・アクセス履歴ビットF/F8・・・分岐命
令ビットF/F 9・・・指示レジスタ 10・・・命令カウンタ 11・・・ブロック迷光きサーチ回路 12・・・制御回路
すブロック図である。 第2図は、第1図に示す命令ポインタレジスタおよびア
ドレスカウンタにセットされるデータの形式を′示す説
明図である。 1■■■1トー1−t 1・・・命令バッファ書込みアドレスレジスタ2・・・
命令バッファ書込みデータレジスタ3・・・命令バッフ
ァ 4、IS、]7.31・・・切替え回路5@・・命令レ
ジスタ 6・・・命令ポインタレジスタ フ、フ・・・アクセス履歴ビットF/F8・・・分岐命
令ビットF/F 9・・・指示レジスタ 10・・・命令カウンタ 11・・・ブロック迷光きサーチ回路 12・・・制御回路
Claims (1)
- 記憶装置より読出された命令語をブロック単位に保持す
るための命令バッファと、前記命令バッファから読出さ
れている命令語のアドレスの上位ビットを保持するため
の命令カウンタと、前記命令バッファから読出されてい
る命令語のブロック番号およびブロック内アドレスを示
すための命令ポインタレジスタと、前記命令バッファか
ら読出された前記命令語を保持するための命令レジスタ
と、前記命令バッファのブロックの末尾から予め定めら
れた命令数内に位置する命令のなかで分岐命令が存在す
ることを示すための分岐命令ビットF/Fと、前記命令
数内に位置する命令が以前に前記命令バッファより読出
されたものであるという履歴の存在することを示すアク
セス履歴ビットF/Fと、前記命令バッファ上のブロッ
クから読出されている命令語のアドレスが前記ブロック
の末尾から予め定められた命令数内に位置していること
を検出するとともに、キャッシュアドレスからみて前記
ブロックに連続するブロックが前記命令バッファ上に存
在しない場合には前記命令バッファ上のブロックに対応
する前記分岐命令ビットF/Fの内容、および前記アク
セス履歴ビットF/Fの内容をチェックし、前記ブロッ
クの末尾までの後続命令がすべて以前に前記命令バッフ
ァより読出された履歴を有するとともに前記分岐命令が
含まれていないという条件が成立つときにはキャッシュ
メモリに対してリクエストを送出し、前記条件が満足さ
れないときには前記キャッシュメモリに対するリクエス
トを抑止するための制御手段とを具備して構成したこと
を特徴とする命令取出し装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP28749986A JPS63140337A (ja) | 1986-12-02 | 1986-12-02 | 命令取出し装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP28749986A JPS63140337A (ja) | 1986-12-02 | 1986-12-02 | 命令取出し装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS63140337A true JPS63140337A (ja) | 1988-06-11 |
Family
ID=17718134
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP28749986A Pending JPS63140337A (ja) | 1986-12-02 | 1986-12-02 | 命令取出し装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS63140337A (ja) |
-
1986
- 1986-12-02 JP JP28749986A patent/JPS63140337A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR0182344B1 (ko) | 스플릿 레벨의 데이타 개시 시스템의 동기성을 위한 시스템과 그 방법 | |
| US8954681B1 (en) | Multi-stage command processing pipeline and method for shared cache access | |
| WO2011023679A1 (en) | Transactional memory system with efficient cache support | |
| US7111127B2 (en) | System for supporting unlimited consecutive data stores into a cache memory | |
| JPH0510694B2 (ja) | ||
| JPS6236258B2 (ja) | ||
| JPH0646381B2 (ja) | 命令取出し装置 | |
| JPS5890244A (ja) | デ−タ処理装置 | |
| JPS58208982A (ja) | ストアバツフア | |
| KR960029986A (ko) | 데이타처리장치 및 캐쉬메모리제어방법 | |
| JPH0433059B2 (ja) | ||
| JPH0248733A (ja) | 情報処理装置 | |
| JP2776388B2 (ja) | 記憶制御方法及び記憶装置 | |
| JPH0210450A (ja) | キヤツシユメモリの先行フエツチ制御方式 | |
| CN116700794A (zh) | 一种获取待执行指令的方法及系统 | |
| JPS6141019B2 (ja) | ||
| JPH07105098A (ja) | 命令キャッシュのリプレース装置 | |
| JPH01305452A (ja) | バッファ記憶装置のストア制御方式 | |
| JPH086853A (ja) | 記憶制御方法 | |
| JPH02259945A (ja) | ストア処理方式 | |
| JPH10254698A (ja) | 情報処理装置 | |
| JPS6240554A (ja) | バツフアメモリブロツク先取り方式 | |
| JPS62147530A (ja) | マイクロプログラム制御方式 | |
| JPH0412858B2 (ja) | ||
| JPS5890246A (ja) | 命令語書替え検出方式 |