JP2817524B2 - 命令キャッシュ制御方式 - Google Patents
命令キャッシュ制御方式Info
- Publication number
- JP2817524B2 JP2817524B2 JP4193435A JP19343592A JP2817524B2 JP 2817524 B2 JP2817524 B2 JP 2817524B2 JP 4193435 A JP4193435 A JP 4193435A JP 19343592 A JP19343592 A JP 19343592A JP 2817524 B2 JP2817524 B2 JP 2817524B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- block
- instruction cache
- address
- storage device
- 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 - Fee Related
Links
Landscapes
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
用される命令キャッシュを制御する命令キャッシュ制御
方式に関する。
装置の中には、中央処理装置の処理の一部(例えば、プ
ロセスのディスパッチング等)を主記憶装置の特定領域
に置かれたソフトウェア命令からなるプログラムにより
実現したものがあり、このような従来の情報処理装置等
に於ける命令キャッシュ制御方式には、命令キャッシュ
のミスヒットにより、上記特定領域に置かれたプログラ
ムのブロックを主記憶装置から取り出した場合、そのブ
ロックを他のブロックと同様に命令キャッシュに登録す
るものと、命令キャッシュには全く登録しないものとが
あった。
内、主記憶装置の特定領域に置かれたプログラムのブロ
ックを他の通常のブロックと同様に命令キャッシュに登
録する方式は、特定領域に置かれたプログラムのブロッ
クを主記憶装置から取り出した場合、それ以前の通常の
プログラムの実行により登録されたブロックが命令キャ
ッシュから追い出されてしまうため、特定領域のプログ
ラムから通常のプログラムに制御が戻った場合、命令キ
ャッシュのヒット率が低下してしまうという問題があっ
た。
全く命令キャッシュに登録しない方式は、特定領域のプ
ログラムは一般にサブルーチンを多用した構造になって
いるものが多いため、特定領域のプログラムの実行が非
常に遅くなるという問題があった。即ち、サブルーチン
からリターンした場合、主記憶装置から以前に一度取り
出したことのある上記サブルーチンの呼び出し元のブロ
ックを再び主記憶装置から取り出すという処理が頻繁に
行なわれるため、特定領域のプログラムの実行が非常に
遅くなってしまう。
ブロックの内、再度参照される可能性の高いブロックの
みを命令キャッシュに登録することにより、制御が特定
領域のプログラムから特定領域以外の通常プログラムに
戻った時の命令キャッシュのヒット率をあまり低下させ
ることなく、特定領域のプログラムの実行速度を向上さ
せることができる命令キャッシュ制御方式を提供するこ
とにある。
するため、(A)中央処理装置の処理の一部を主記憶装
置の特定領域に置かれたプログラムによって実現すると
共に、命令キャッシュを有し、前記命令キャッシュがミ
スヒットした場合、ブロック単位で前記主記憶装置から
命令を取り出して前記命令キャッシュに登録する情報処
理装置に於いて、前記主記憶装置から取り出したブロッ
ク内にリンクアドレスを伴う分岐命令が存在するか否か
を判定する判定手段を設け、前記命令キャッシュのミス
ヒットにより、前記主記憶装置の特定領域に置かれたプ
ログラムのブロックを取り出した場合は、前記判定手段
でリンクアドレスを伴う分岐命令がブロック内に存在す
ると判定された場合に限り、前記ブロックを前記命令キ
ャッシュに登録するようにしたものである。
(B)中央処理装置の処理の一部を主記憶装置の特定領
域に置かれたプログラムによって実現すると共に、命令
キャッシュを有し、前記命令キャッシュがミスヒットし
た場合、ブロック単位で前記主記憶装置から命令を取り
出して前記命令キャッシュに登録する情報処理装置に於
いて、前記主記憶装置から取り出したブロック内にリン
クアドレスを伴う分岐命令が存在するか否かを判定する
と共に、その分岐命令が前記ブロックの最後の命令であ
るか否かを判定する判定手段を設け、前記命令キャッシ
ュのミスヒットにより、前記主記憶装置の特定領域に置
かれたプログラムのブロックを取り出した場合は、前記
判定手段でリンクアドレスを伴う分岐命令がブロック内
に存在し、且つ該分岐命令がブロックの最後の命令でな
いと判定された場合に限り、前記ブロックを前記命令キ
ャッシュに登録するようにしたものである。
した場合、主記憶装置から1ブロック分の命令を取り出
し、判定手段によってそのブロック内にリンクアドレス
を伴う分岐命令が存在するか否かを判定する。主記憶装
置から取り出したブロックが主記憶装置の特定領域から
取り出したブロックである場合は、判定手段によってブ
ロック内にリンクアドレスを伴う分岐命令が存在すると
判定された場合に限り、命令キャッシュに登録する。
がミスヒットした場合、主記憶装置から1ブロック分の
命令を取り出し、判定手段によってそのブロック内にリ
ンクアドレスを伴う分岐命令が存在するか否かを判定す
ると共に、その分岐命令がブロックの最後の命令である
か否かを判定する。主記憶装置から取り出したブロック
が主記憶装置の特定領域から取り出したブロックである
場合は、判定手段によってブロック内にリンクアドレス
を伴う分岐命令が存在し、且つその分岐命令がブロック
の最後の命令でないと判定された場合に限り、命令キャ
ッシュに登録する。
詳細に説明する。
り、中央処理装置内の命令キャッシュ制御部の構成を示
したものである。
に、命令キャッシュのアドレスアレイ(IAA)1と、
命令キャッシュのデータアレイ(IDA)2と、リード
データレジスタ(IAR)3と、リードデータレジスタ
(IDR)4と、上位アドレスレジスタ(AU)5と、
下位アドレスレジスタ(AL)6と、命令整列用アドレ
スレジスタ(AL1)7と、デコーダ8,10,22
と、命令バッファレジスタ(IBF)9と、インバータ
11,17と、命令バッファ(IBB)12と、アドレ
スレジスタ(AL2)13と、ライトアドレスレジスタ
(WA)14と、ライト指示信号202を出力するライ
ト指示信号生成回路15と、モード信号203が供給さ
れるフリップフロップ(FF)16と、フリップフロッ
プ(FF)20と、アンドゲート18,21と、オアゲ
ート19と、コンパレータ23と、セレクタ100〜1
06と、命令フェッチアドレス信号線200と、命令信
号線201と、アダー300〜302から構成されてい
る。
のものであり、アドレスアレイ1,データアレイ2,リ
ードデータレジスタ3,4は各々2セットのハードウェ
アから構成されている。
の実行時、中央処理装置の制御部(図示せず)は命令フ
ェッチアドレス信号線200を介してフェッチアドレス
を供給する。このフェッチアドレスの上位部分は上位ア
ドレスレジスタ5に、下位部分はセレクタ100を介し
て下位アドレスレジスタ6にセットされる。
部により制御されるものであり、最初の命令語のフェッ
チ時及び分岐命令の実行時には命令フェッチアドレス信
号線200を選択し、それ以外の場合は下位アドレスレ
ジスタ6の内容を命令キャッシュのリード単位、即ち、
1ワード分インクリメントするアダー300を選択す
る。
スレジスタ6にセットされたフェッチアドレスの下位部
分はセレクタ101を介してアドレスアレイ1及びデー
タアレイ2にリードアドレスとして供給されると共に、
セレクタ101,105を介して命令整列用アドレスレ
ジスタ7にセットされる。
部により制御されるものであり、命令バッファ12の内
容(1ブロック分の命令語)をデータアレイ2に登録す
る場合はライトアドレスレジスタ14を選択し、それ以
外の場合は下位アドレスレジスタ6を選択するものであ
る。また、セレクタ105は中央処理装置の制御部によ
り制御されるものであり、最初の命令のフェッチ時及び
分岐命令の実行時にはセレクタ101を選択し、それ以
外の場合はアダー301を選択する。
されたリードアドレスに対応するデータを出力し、アド
レスアレイ1,データアレイ2から出力されたデータは
各々リードデータレジスタ3,4にセットされる。
らのデータの取り出しは、最初の命令のフェッチ時及び
分岐命令の実行時には中央処理装置の制御部が供給する
フェッチアドレスによって行なわれるが、後続のデータ
の取り出しはセレクタ100がアダー300を選択する
ことから、アダー300によってインクリメイトされる
下位アドレスレジスタ6の内容によってシーケンシャル
に行なわれる。
ータはコンパレータ23に於いて上位アドレスレジスタ
5にセットされているフェッチアドレスの上位部分とを
比較され、ヒット,ミスヒットの判定が行なわれる。
令キャッシュがヒットしたと判定されたとすると、以下
の動作が行なわれる。
がヒットしたと判定されると、セレクタ102はヒット
したコンパートメントに対応したリードデータレジスタ
4を選択する。
レジスタ4の内容はセレクタ103及び命令バッファレ
ジスタ9に加えられる。
データを次のデータが加えられる直前に於いて取り込
む。この命令バッファレジスタ9はワード境界を跨ぐ命
令語の整列に使用される。
スタ7のワード内アドレスをデコードするデコーダ8に
よって制御され、命令語の整列を行なう。
令コードに該当する部分はデコーダ10に入力され、命
令長がデコードされる。デコーダ10のデコード結果は
アダー301の加算数を選択するセレクタ104に対す
る選択指示となり、セレクタ104に命令長に対応した
加算数を選択させる。これにより、命令整列用アドレス
レジスタ7の内容が次の命令語の先頭アドレスに更新さ
れる。そして、更新後の命令整列用アドレスレジスタ7
の内容に基づいて次の命令語の整列がセレクタ103に
於いて行なわれる。
合の動作について説明する。
のミスヒットが検出されると、中央処理装置の制御部は
上位アドレスレジスタ5,命令整列用アドレスレジスタ
7の内容に対応する1ブロック分の命令を主記憶装置
(図示せず)から取り出し、取り出した1ブロック分の
命令を命令信号線201を介して命令バッファ12に格
納する。
ッシュのミスヒットが検出されると、セレクタ102は
命令バッファ12を選択する。
バッファ12の出力がセレクタ103及び命令バッファ
レジスタ9に加えられ、前述したと同様の命令語の整列
が行なわれる。
のミスヒットを検出すると、命令整列用アドレスレジス
タ7の内容がアドレスレジスタ13にセットされ、イン
バータ11の出力が“1”となる。
18及びアンドゲート21に加えられている。
力信号以外にもインバータ17の出力信号が加えられて
いる。
プ16の出力信号を反転するものであり、フリップフロ
ップ16は中央処理装置の処理の一部或いは命令の一部
を実現するために主記憶装置の特定領域に置かれたプロ
グラムの実行中に出力されるモード信号203によって
セットされ、その出力信号を“1”にするものである。
記特定領域以外の領域に置かれたプログラムの命令をフ
ェッチしようとしてミスヒットになった時、“1”にな
る。
1の出力信号以外にもフリップフロップ16の出力信号
及びフリップフロップ20の出力信号が加えられてい
る。
22の出力信号によってセットされるものであり、デコ
ーダ22はセレクタ103の出力の内の命令コードに該
当する部分をデコードし、リンクアドレスを伴う分岐命
令を検出することによりその出力信号を“1”にしてフ
リップフロップ20をセットするものである。尚、リン
クアドレスを伴う分岐命令は、プログラムがサブルーチ
ンをコールする場合に使用する分岐命令であり、サブル
ーチンの先頭アドレスへの分岐を指示すると共に、上記
リンクアドレスを伴う分岐命令の次の命令のアドレス
(リンクアドレス)を格納するレジスタ或いは主記憶装
置のアドレスを指示する命令である。そして、このリン
クアドレスを伴う分岐命令の実行時には、レジスタ等に
リンクアドレスが格納されると共にサブルーチンの先頭
アドレスに分岐し、サブルーチンの実行終了時には、レ
ジスタ等に格納されているリンクアドレスに戻る。
記特定領域に置かれたプログラムの命令をフェッチしよ
うとしてミスヒットになり、且つその時に主記憶装置か
ら命令バッファ12に転送した1ブロック分の命令にリ
ンクアドレスを伴う分岐命令が存在する場合のみ“1”
になる。
ゲート19を介してライト指示信号生成回路15に加え
られる。
19の出力信号が“1”になると、次の命令キャッシュ
のミスヒットを契機にしてライト指示信号202を所定
時間(命令バッファ12に格納されている1ブロック分
の命令をデータアレイ1に登録するのに必要となる時
間)だけ“1”にする。
の命令キャッシュのミスヒット時、アドレスレジスタ1
3の内容(前回ミスヒットした時の命令整列用アドレス
レジスタ7の内容)をライトアドレスレジスタ14にセ
ットすると共に、セレクタ101にライトアドレスレジ
スタ14を選択させ、セレクタ106にライトアドレス
レジスタ14のワードアドレスをインクリメントするア
ダー302を選択させる。
るライト指示信号202が“1”になると、データアレ
イ2にライトアドレスレジスタ14からセレクタ101
を介して供給されるアドレスに従って命令バッファ12
に格納されている1ブロック分の命令が登録され、アド
レスアレイ1に上位アドレスレジスタ5の内容がライト
アドレスレジスタ14から供給されるアドレスに従って
登録される。ここで、ライト指示信号202が“1”と
なるのは、特定領域以外の領域に置かれているプログラ
ムの命令をフェッチしようとしてミスヒットになった場
合(アンドゲート18の出力信号が“1”になった場
合)、特定領域に置かれているプログラムの命令をフェ
ッチしようとしてミスヒットになり、且つフェッチしよ
うとした命令を含むブロックにリンクアドレスを伴う分
岐命令が存在する場合(アンドゲート21の出力信号が
“1”になった場合)だけであるので、命令キャッシュ
への登録も上記した場合だけに行なわれることになる。
ック分の命令がデータアレイ2に格納されると、中央処
理装置の制御部は上位アドレスレジスタ5,命令整列用
アドレスレジスタ7の内容に対応する1ブロック分の命
令を主記憶装置(図示せず)から取り出し、命令信号線
201を介して命令バッファ12に格納する。
れているプログラムの命令をフェッチしようとしてミス
ヒットになった場合は、ミスヒットとなったブロック内
にリンクアドレスを伴う分岐命令が存在する場合に限
り、即ち、ミスヒットとなったブロックが再度参照され
る可能性の高いブロックである場合に限り、命令キャッ
シュへの登録を行なうものであるので、制御が特定領域
のプログラムから特定領域以外のプログラムに戻った時
の命令キャッシュのヒット率をあまり低下させることな
く、特定領域のプログラムの実行速度を向上させること
ができる。
あり、図1と同一符号は同一部分を表している。
令整列用アドレスレジスタ7の内容がブロックの最後の
アドレスであるか否かを判定するデコーダ400と、デ
コーダ400によりブロックの最後のアドレスでないと
判定され、且つデコーダ22によりリンクアドレスを伴
う分岐命令と判定された場合にその出力信号を“1”に
するアンドゲート401を設け、アンドゲート401の
出力信号によってフリップフロップ20をセットするよ
うにした点である。
ムの命令をフェッチしようとしてミスヒットとなった場
合、フェッチしようとした命令を含むブロックにリンク
アドレスを伴う分岐命令が存在し、且つその分岐命令が
ブロックの最後の命令でない場合に限り、アンドゲート
21の出力信号が“1”となり、上位アドレスレジスタ
5の内容,命令バッファ12に格納されている1ブロッ
ク分の命令が各々アドレスアレイ1,データアレイ2に
登録されることになる。
令をフェッチしようとしてミスヒットとなった場合は、
図1の実施例の同様の動作が行なわれる。
伴う分岐命令が存在するブロックであっても、分岐命令
がブロックの最後の命令であった場合、即ち後で参照さ
れる確率が低いブロックであった場合は、命令キャッシ
ュへの登録を行なわないので、図1の実施例に比較して
特定領域のプログラムから通常のプログラムに制御が戻
った時のミスヒット率を少ないものにすることができ
る。
装置の特定領域に置かれているプログラムの命令をフェ
ッチしようとして命令キャッシュがミスヒットとなった
場合、フェッチしようとした命令を含むブロック中にリ
ンクアドレスを伴う分岐命令が存在する場合のみ、その
ブロックを命令キャッシュに登録するようにしたもので
あるので、特定領域に置かれたプログラムから通常のプ
ログラムに制御が戻った時のヒット率をあまり低下させ
ることなく、特定領域のプログラムの実行速度を向上さ
せることができる効果がある。
レスを伴う分岐命令が存在し、且つその分岐命令がブロ
ックの最後の命令でない場合に限り、そのブロックを命
令キャッシュに登録するものであるので、特定領域のプ
ログラムから通常のプログラムに制御が戻った時のヒッ
ト率の低下を更に少ないものにすることができる効果が
ある。
Claims (3)
- 【請求項1】 中央処理装置の処理の一部を主記憶装置
の特定領域に置かれたプログラムによって実現すると共
に、命令キャッシュを有し、前記命令キャッシュがミス
ヒットした場合、ブロック単位で前記主記憶装置から命
令を取り出して前記命令キャッシュに登録する情報処理
装置に於いて、 前記主記憶装置から取り出したブロック内にリンクアド
レスを伴う分岐命令が存在するか否かを判定する判定手
段を有し、 前記命令キャッシュのミスヒットにより、前記主記憶装
置の特定領域に置かれたプログラムのブロックを取り出
した場合は、前記判定手段でリンクアドレスを伴う分岐
命令がブロック内に存在すると判定された場合に限り、
前記ブロックを前記命令キャッシュに登録することを特
徴とする命令キャッシュ制御方式。 - 【請求項2】 中央処理装置の処理の一部を主記憶装置
の特定領域に置かれたプログラムによって実現すると共
に、命令キャッシュを有し、前記命令キャッシュがミス
ヒットした場合、ブロック単位で前記主記憶装置から命
令を取り出して前記命令キャッシュに登録する情報処理
装置に於いて、 前記主記憶装置から取り出したブロック内にリンクアド
レスを伴う分岐命令が存在するか否かを判定すると共
に、その分岐命令が前記ブロックの最後の命令であるか
否かを判定する判定手段を有し、 前記命令キャッシュのミスヒットにより、前記主記憶装
置の特定領域に置かれたプログラムのブロックを取り出
した場合は、前記判定手段でリンクアドレスを伴う分岐
命令がブロック内に存在し、且つ該分岐命令がブロック
の最後の命令でないと判定された場合に限り、前記ブロ
ックを前記命令キャッシュに登録することを特徴とする
命令キャッシュ制御方式。 - 【請求項3】 前記命令キャッシュはアドレスアレイと
データアレイとから構成され、前記ブロックの登録は前
記データアレイに対して行なわれることを特徴とする請
求項1または2記載の命令キャッシュ制御方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4193435A JP2817524B2 (ja) | 1992-06-26 | 1992-06-26 | 命令キャッシュ制御方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4193435A JP2817524B2 (ja) | 1992-06-26 | 1992-06-26 | 命令キャッシュ制御方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0612256A JPH0612256A (ja) | 1994-01-21 |
JP2817524B2 true JP2817524B2 (ja) | 1998-10-30 |
Family
ID=16307941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4193435A Expired - Fee Related JP2817524B2 (ja) | 1992-06-26 | 1992-06-26 | 命令キャッシュ制御方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2817524B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3698137B2 (ja) | 2002-11-26 | 2005-09-21 | セイコーエプソン株式会社 | 表示ドライバ、電気光学装置及び表示ドライバの制御方法 |
JP2013160577A (ja) * | 2012-02-03 | 2013-08-19 | Hioki Ee Corp | 電気化学センサおよび電気化学測定装置 |
-
1992
- 1992-06-26 JP JP4193435A patent/JP2817524B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0612256A (ja) | 1994-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4847753A (en) | Pipelined computer | |
JP2504830Y2 (ja) | デ―タ処理装置 | |
US5961631A (en) | Data processing apparatus and method for pre-fetching an instruction in to an instruction cache | |
JPS58125148A (ja) | 条件付きブランチ命令の予測装置 | |
US5446849A (en) | Electronic computer which executes squash branching | |
JPS62221036A (ja) | 計算装置 | |
EP0655679B1 (en) | Method and apparatus for controlling instruction in pipeline processor | |
JP3486690B2 (ja) | パイプライン方式プロセッサ | |
US5418917A (en) | Method and apparatus for controlling conditional branch instructions for a pipeline type data processing apparatus | |
US20020174303A1 (en) | Branch-prediction driven instruction prefetch | |
US5146570A (en) | System executing branch-with-execute instruction resulting in next successive instruction being execute while specified target instruction is prefetched for following execution | |
EP0297943B1 (en) | Microcode reading control system | |
JPH03129432A (ja) | 分岐制御回路 | |
JP2817524B2 (ja) | 命令キャッシュ制御方式 | |
US6308242B1 (en) | Apparatus for adaptively controlling a prefetch queue based on various flush conditions | |
US5421026A (en) | Data processor for processing instruction after conditional branch instruction at high speed | |
US5463737A (en) | Instruction buffer controller in processor enabling direct refetching of an instruction | |
US6631464B1 (en) | Instruction pipeline with a branch prefetch when the branch is certain | |
US5243705A (en) | System for rapid return of exceptional processing during sequence operation instruction execution | |
US6360310B1 (en) | Apparatus and method for instruction cache access | |
JP2542565B2 (ja) | 分岐予測制御方式 | |
JP2883335B2 (ja) | 情報処理装置 | |
JP2001154845A (ja) | キャッシュミスした後のメモリバスアクセス制御方式 | |
JP2902847B2 (ja) | 自己変更コード実行方式 | |
JPH04348430A (ja) | データ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070821 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080821 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080821 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090821 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090821 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100821 Year of fee payment: 12 |
|
LAPS | Cancellation because of no payment of annual fees |