(57)【要約】【課題】中央処理装置（ＣＰＵ）が次に読み込むべき命令データを、プログラムメモリから高速の命令キャッシュに予め取り込んでおき、該命令キャッシュから命令データを読み出す命令キャッシュシステムに関し、小容量の命令キャッシュで命令データのミスヒットを無くし、マイクロプロセッサの性能向上を図る。【解決手段】命令キャッシュ１−２を２面構成とし、一方の面から中央処理装置（ＣＰＵ）が命令データをフェッチしている間に、他方の面に次のプログラムの命令データを主記憶プログラムメモリ１−６から転送し、スイッチ１−３，１−４の切り替えにより、各面を交互に切り替えながら、命令フェッチと次のプログラムの命令データの転送とを並行して行う。また、プログラムを、命令キャッシュ１−２の１面の容量に収まるようにプログラム片に分割し、各プログラム片は、その実行が当該プログラム片内で完結するプログラム構造としておく。【選択図】      図１
2005266997.tif 000002
【特許請求の範囲】
【請求項１】
中央処理装置が実行するプログラムの命令データを、予め主記憶プログラムメモリから命令キャッシュに取り込み、該命令キャッシュから命令データを中央処理装置に転送する命令キャッシュシステムにおいて、
前記命令キャッシュを２面構成とし、一方の面の命令キャッシュから中央処理装置が命令データをフェッチして実行する動作と並行して、他方の面の命令キャッシュへ次のプログラムの命令データを前記主記憶プログラムメモリから転送し、前記一方の面の命令キャッシュからフェッチした命令データの実行が終了した後に、前記一方の面の命令キャッシュと前記他方の面の命令キャッシュの接続を切り替え、前記他方の面の命令キャッシュから中央処理装置が命令データをフェッチして実行する動作と並行して、前記一方の面の命令キャッシュへ次のプログラムの命令データを前記主記憶プログラムメモリから転送する動作を、前記命令キャッシュの一方及び他方の面を交互に切り替えながら繰り返す手段を備え、
前記プログラムを前記命令キャッシュの１つの面の容量以内に収まるプログラム片に分割し、かつ、各プログラム片内においてプログラムの実行が他のプログラム片に跨ることなく完結するプログラム構造とし、該プログラム片を単位として前記命令キャッシュに転送することを特徴とする命令キャッシュシステム。
【請求項２】
前記次のプログラムの命令データを前記主記憶プログラムメモリから命令キャッシュへ転送し終えたことを示す転送完了フラグを設定する手段を備え、該転送完了フラグを監視して次のプログラムの命令データが命令キャッシュへ転送し終えた後に、前記命令キャッシュの一方の面と他方の面の接続の切り替えを行うことを特徴とする請求項１に記載の命令キャッシュシステム。
【請求項３】
前記中央処理装置を含むマイクロプロセッサのリセット直後の初期化ルーチンプログラム実行中に、前記命令キャッシュの一方の面にメインプログラムの先頭アドレスのプログラム片を転送しておき、該初期化ルーチンプログラムからメインプログラムに処理が移行した際に、命令キャッシュからメインプログラムの先頭アドレスのプログラム片をフェッチして実行することを特徴とする請求項１又は２に記載の命令キャッシュシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は命令キャッシュシステムに関し、より詳しくは、中央処理装置（ＣＰＵ）が次に読み込むべき命令データを、プログラムメモリから高速のバッファメモリである命令キャッシュに予め取り込んでおき、中央処理装置（ＣＰＵ）が該命令キャッシュから命令データを読み出すことにより処理を高速化させる技術に関する。
【背景技術】
【０００２】
半導体技術の進歩に伴い、マイクロプロセッサの処理速度が向上し、マイクロプロセッサによるデータ処理量が益々増大しつつある。マイクロプロセッサの処理速度が上がるにつれて、プログラムメモリと中央処理装置（ＣＰＵ）との間の命令データの転送時間が無視できないほどになり、特にリアルタイム処理が要求される処理システムでは、この転送時間の長短がマイクロプロセッサの性能として顕著に現れている。
【０００３】
命令データの転送に要する時間による処理効率の影響を低下させる技術として、図８に示すように、主記憶のプログラムメモリ８−３より高速な命令キャッシュ８−２を、主記憶のプログラムメモリ８−３と中央処理装置（ＣＰＵ）８−１との間に備え、該命令キャッシュ８−２に命令データを予めプログラムメモリ８−３から取り込んでおき、該命令キャッシュ８−２から中央処理装置（ＣＰＵ）８−１へ命令データを転送する命令キャッシュシステムを組み込んだマイクロプロセッサが知られている。
【０００４】
このような命令キャッシュを備えるマイクロプロセッサでは、予め命令キャッシュ８−２に取込む命令データのヒット率を高めるために、命令キャッシュ８−２の容量又はキャッシュブロックサイズを大きくする工夫が一般的に行われている。なお、命令キャッシュ８−２に取込んだ命令データがミスヒットである場合に、その命令データだけを主記憶のプログラムメモリ８−３から命令キャッシュ８−２にリプレースするのではなく、或る纏まった単位（４バイト、８バイト、・・・等）の命令データをリプレースする。このリプレースする纏まった命令データの単位をキャッシュブロックサイズ或いは単にブロックサイズと称している。
【０００５】
一方、最近ではコストパフォーマンスの追求のために、比較的小容量の命令キャッシュ８−２を搭載したマイクロプロセッサが数多く出現しているが、小容量の命令キャッシュ８−２を搭載したマイクロプロセッサでは、命令キャッシュ容量が小さいことによるミスヒットが多発し、このミスヒット時の処理負担（リプレース時のオーバーヘッド）が全体のプログラム処理の実行速度を大幅に低下させてしまう。
【０００６】
主記憶のプログラムメモリ８−３から命令データの転送中は、中央処理装置（ＣＰＵ）８−１の動作が完全に停止してしまうため、マイクロプロセッサ（ＣＰＵ）全体の性能低下の要因となる。一例として、大容量・低速の主記憶プログラムメモリ８−３は１ワードのアクセスに５クロックサイクルを要し、小容量・高速の命令キャッシュ８−２は１ワードのアクセスに１クロックサイクルを要し、キャッシュブロックサイズを４ワードとした場合、予め取込んだ命令データがミスヒットであるとき、リプレースに５×４＝２０クロックサイクルの停止時間が発生する。
【０００７】
図９に命令キャッシュヒット時とミスヒット時の動作のタイミングチャートを示す。命令キャッシュに取り込んだ命令データがヒットしている場合は、図９の（ａ）に示すように、パイプライン処理の命令データがスムーズに流れ、１クロックサイクルで１命令が実行され、マイクロプロセッサは性能を最大限に発揮することができる。
【０００８】
しかし、命令キャッシュに取り込んだ命令データがミスヒットした場合、図９の（ｂ）に示すように、主記憶プログラムメモリ８−３からブロックサイズ（４ワード）分の命令を命令キャッシュ８−２に転送するのに５×４＝２０クロックサイクル必要とし、この転送が完了するまでの間、パイプライン処理による命令の実行は停止（ストール）するため、マイクロプロセッサの性能を著しく低下させてしまう。即ち、１クロックサイクルで実行される命令が２０クロックサイクルを必要とすることになり、２０倍の性能劣化となる。
【０００９】
また、下記の特許文献１に記載の命令キャッシュのリプレース装置などのように、キャッシュブロックサイズと同容量のＦＩＦＯを搭載し、ＦＩＦＯに命令データを先読みして格納しておき、ＦＩＦＯから命令キャッシュに命令データを送る構成では、ミスヒット時の処理負担を削減することができるが、命令キャッシュのミスヒットを避けることはできない。
【００１０】
また、下記の特許文献２のキャッシュメモリシステム、特許文献３の先行制御方式、特許文献４の情報処理装置、特許文献５の命令バッファシステムなどは、ミスヒット時の処理負担を削減し、ミスヒットの発生を低下させることはできるが、ミスヒットの確率をゼロにすることはできず、従って安定した動作性能を保証することはできない。
【００１１】
近年、種々の車載用センサ等にマイクロプロセッサが使用され、特に安全性の維持向上に係るデータ処理システム等に用いられるマイクロプロセッサでは、性能の低下が重大な事故や人命の損傷に繋がることもあり、安定した確実な動作性能が保証されるマイクロプロセッサが要求されている。
【００１２】
上述のキャッシュシステムに関する特許文献は下記のとおりである。
【特許文献１】特開平７−１０５０９８号公報
【特許文献２】特開平１１−１４３７７５号公報
【特許文献３】特開平３−１３７７２９号公報
【特許文献４】特開平４−９００２７号公報
【特許文献５】特開平１−２０５２２８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
上述したように、中央処理装置（ＣＰＵ）への命令データの転送時間は、マイクロプロセッサの処理効率に大きく影響し、また、予め命令キャッシュに取り込む命令データのミスヒットの発生により、命令データのリプレースのために中央処理装置（ＣＰＵ）の処理が停止し、これによりマイクロプロセッサの処理性能の低下を招く。
【００１４】
本発明は、中央処理装置（ＣＰＵ）への命令データの転送時間を短縮すると共に、小容量の命令キャッシュを用いて、命令キャッシュに取り込む命令データのミスヒットを無くし、マイクロプロセッサの性能向上を図ることを目的とする。また、命令の実行（プログラムの処理）の時間に揺らぎがあり、次の命令データの転送が完了する前に、現在実行中のプログラム処理が終了してしまう場合があるが、次の命令データが命令キャッシュに完全に取り込まれた後、直ちに命令フェッチを行うことを可能とし、命令データの転送時間を短縮すると共に、命令フェッチのミスヒットを無くし、マイクロプロセッサの性能向上を図ることを目的とする。
【課題を解決するための手段】
【００１５】
本発明の命令キャッシュシステムは、（１）中央処理装置（ＣＰＵ）が実行するプログラムの命令データを、予め主記憶プログラムメモリから命令キャッシュに取り込み、該命令キャッシュから命令データを中央処理装置（ＣＰＵ）に転送する命令キャッシュシステムにおいて、前記命令キャッシュを２面構成とし、一方の面の命令キャッシュから中央処理装置（ＣＰＵ）が命令データをフェッチして実行する動作と並行して、他方の面の命令キャッシュへ次のプログラムの命令データを前記主記憶プログラムメモリから転送し、前記一方の面の命令キャッシュからフェッチした命令データの実行が終了した後に、前記一方の面の命令キャッシュと前記他方の面の命令キャッシュの接続を切り替え、前記他方の面の命令キャッシュから中央処理装置（ＣＰＵ）が命令データをフェッチして実行する動作と並行して、前記一方の面の命令キャッシュへ次のプログラムの命令データを前記主記憶プログラムメモリから転送する動作を、前記命令キャッシュの一方及び他方の面を交互に切り替えながら繰り返す手段を備え、前記プログラムを前記命令キャッシュの１つの面の容量以内に収まるプログラム片に分割し、かつ、各プログラム片内においてプログラムの実行が他のプログラム片に跨ることなく完結するプログラム構造とし、該プログラム片を単位として前記命令キャッシュに転送することを特徴とするものである。
【００１６】
また、（２）前記次のプログラムの命令データを前記主記憶プログラムメモリから命令キャッシュへ転送し終えたことを示す転送完了フラグを設定する手段を備え、該転送完了フラグを監視して次のプログラムの命令データが命令キャッシュへ転送し終えた後に、前記命令キャッシュの一方の面と他方の面の接続の切り替えを行うことを特徴とするものである。
【００１７】
また、（３）前記中央処理装置（ＣＰＵ）を含むマイクロプロセッサのリセット直後の初期化ルーチンプログラム実行中に、前記命令キャッシュの一方の面にメインプログラムの先頭アドレスのプログラム片を転送しておき、該初期化ルーチンプログラムからメインプログラムに処理が移行した際に、命令キャッシュからメインプログラムの先頭アドレスのプログラム片をフェッチして実行することを特徴とするものである。
【発明の効果】
【００１８】
本発明によれば、命令キャッシュとして、中央処理装置（ＣＰＵ）が命令データを命令キャッシュからフェッチする面と、主記憶プログラムメモリから命令キャッシュへ命令データを転送する面とを備え、中央処理装置（ＣＰＵ）の命令データのフェッチと次のプログラムの命令データの命令キャッシュへの転送を並列に行い、かつ、プログラムを命令キャッシュの１面の容量に収まるプログラム片に分割し、該プログラム片の中で分岐処理等の実行が他のプログラム片に跨ることなく完結するプログラム構造とすることにより、膨大なプログラムを小容量の命令キャッシュにより、命令データの転送時間を削減するとともに、フェッチした命令データのヒット率を１００％にすることができ、マイクロプロセッサの安定した動作性能を保証することができ、性能を向上させることができる。
【００１９】
例えば、５１２ＫＢのプログラムを実行する場合に、本発明によれば、該プログラムを例えば４ＫＢのプログラム片に分割し、４ＫＢの命令キャッシュを２個搭載するだけで、キャッシュした命令データのヒット率１００％を実現することができ、高い動作性能を保証することができる。
【００２０】
また、主記憶プログラムメモリから命令キャッシュへの命令データの転送完了を示すフラグを監視し、該フラグがセットされてから命令キャッシュの面切り替えを行うことにより、次のプログラム片の命令データの転送完了する前に、現行のプログラム片の実行が終了した場合でも、命令データの転送途中に面切り替えが行われることなく、面切り替え後にフェッチする命令データは必ずヒットし、マイクロプロセッサの性能を向上させることができる。
【００２１】
また、初期化ルーチンプログラムを実行中にメインプログラムの最初のプログラム片を命令キャッシュに転送しておくことにより、メインプログラムの開始時における命令データの転送時間を短縮すると共に、命令データのミスフェッチを無くすことができ、マイクロプロセッサの性能を向上させることができる。
【発明を実施するための最良の形態】
【００２２】
図１に本発明の命令キャッシュシステムの構成を示す。同図において、１−１は中央処理装置（ＣＰＵ）、１−２は２面構成の命令キャッシュ、１−３，１−４は命令キャッシュの面切り替えを行うスイッチ（選択回路）、１−５は面切り替えを制御するＡＣＴレジスタ、１−６は主記憶プログラムメモリ、１−７は主記憶プログラムメモリ１−６から命令キャッシュ１−２へ転送する命令データのアドレスを管理するアドレス管理部である。
【００２３】
命令キャッシュ１−２は、スイッチ１−３の選択によって中央処理装置（ＣＰＵ）１−１側に接続されるアクティブ面と、スイッチ１−４の選択によって主記憶プログラムメモリ１−６に接続されるスタンバイ面とから成る。命令キャッシュ１−２のアクティブ面及びスタンバイ面はそれぞれｎＫＢの容量（ｎは０より大きい数値）であるとする。
【００２４】
主記憶プログラムメモリ１−６には、１回のフェッチにより取り込まれる命令のプログラムコード量が、命令キャッシュ１−２の１面（アクティブ面又はスタンバイ面）の容量であるｎＫＢに収まるようにプログラムを分割して格納しておく。この分割したプログラムの単位をプログラム片と称することとする。
【００２５】
上記の各プログラム片は、分岐処理やジャンプ処理が他のプログラム片に跨ることなく、当該プログラム片内で完結するように元のプログラムに改変を行っておく。このプログラムの改変の具体例を図７に示す。図７はｉｆ文による分岐処理を１つのプログラム片内で完結させる場合の例である。
【００２６】
図７の（ａ）はプログラム分割前の元のプログラムの例を示し、コード量は３ｎＫＢであるとする。該プログラムは、先頭のｉｆ文判定が真のときは(1)〜(6)の処理を行い、先頭のｉｆ文判定が偽のときは(1)’〜(6)’の処理を実行するプログラムである。このようなプログラムに対して、本発明では図７の（ｂ）に示すように、コード量が命令キャッシュ容量ｎＫＢ以内に収まるように、ｉｆ文の構文を３つのプログラム片７−１，７−２，７−３に３分割する。
【００２７】
そして、各プログラム片７−１，７−２，７−３は、自プログラム片内でｉｆ文の分岐処理が完結するよう元のプログラムを改変し、プログラム片７−１は(1)〜(2)，(1)’〜(2)’の処理を行い、プログラム片７−２は(3)〜(4)，(3)’〜(4)’の処理を行い、プログラム片７−３は(5)〜(6)，(5)’〜(6)’の処理を行うよう、プログラムの構成を変更する。
【００２８】
なお、各プログラム片７−１，７−２，７−３の最後に、命令キャッシュの各面が交互にアクティブ面となるようにＡＣＴレジスタ１−５を設定するためのａｃｔ変数の代入処理(7)、(8)、(9)を追加する。なお、ここでは説明を簡明にするため、ｉｆ文による分岐判定の追加やａｃｔ変数の代入処理のコード量は無視し、各プログラム片のコード量がｎＫＢとなるように分割した例を示している。
【００２９】
図２に本発明による命令キャッシュシステムの動作シーケンスを示す。同図において、中央処理装置（ＣＰＵ）１−１は、今、命令キャッシュ１−２のアクティブ面（Ａ面）からプログラム片(1)をフェッチし、該プログラム片(1)の命令データをデコードして処理を実行しているが、この動作と並行して、次ぎに実行されるべきプログラム片(2)を、主記憶プログラムメモリ１−６から命令キャッシュ１−２のスタンバイ面（Ｂ面）に取り込む。
【００３０】
つまり、中央処理装置（ＣＰＵ）１−１が命令キャッシュ１−２のアクティブ面（Ａ面）から命令データをフェッチし、プログラム(1)を実行している間に、プログラム(1)の最終アドレス（Ｘ）の次アドレス（Ｘ＋４）から始まるプログラム(2)の命令群を主記憶プログラムメモリ１−６から命令キャッシュ１−２のスタンバイ面（Ｂ面）に転送する。なお、この動作例ではマイクロプロセッサは３２ビットＣＰＵを用いている例を示している。そのため、各アドレスに１バイト（８ビット）のデータを記憶する主記憶メモリ１−６から命令データをフェッチ際のアドレスは＋４ずつインクリメントされる。
【００３１】
中央処理装置（ＣＰＵ）１−１はプログラム(1)の処理の最後に「ａｃｔ＝１；」というコードを実行し、ＡＣＴレジスタ１−５に‘１’を書き込む。ＡＣＴレジスタ１−５に‘１’が書き込まれると、スイッチ１−３及びスイッチ１−４は、図１に示す接続状態と反対側の接続状態に切り替えられ、命令キャッシュ１−２のアクティブ面とスタンバイ面とが切り替わる。
【００３２】
命令キャッシュ１−２の面切り替えの後、中央処理装置（ＣＰＵ）１−１はプログラム(2)の処理を実行し、それと並行して命令キャッシュのスタンバイ面（Ａ面）に次に実行すべきプログラム(3)の命令群を主記憶プログラムメモリ１−６から転送する。以下、同様にして順々に後続のプログラムの処理を実行していく。
【００３３】
従って、プログラム(1)が中央処理装置（ＣＰＵ）１−１で実行されている間に、プログラム(2)が命令キャッシュ１−２のスタンバイ面に転送され、プログラム(1)の実行が終わり、次のプログラム(2)を開始しようとするときに、命令キャッシュ１−２の面切り替えが行われ、命令キャッシュ１−２のアクティブ面にはプログラム(2)の命令が既に格納されていることになり、命令キャッシュ１−２への命令データの転送時間を削減することができる。
【００３４】
また、プログラムを命令キャッシュ１−２の１面（アクティブ面又はスタンバイ面）の容量（ｎＫＢ）以内に収まるように分割し、かつ、その分割したプログラム片の中で分岐処理が完結し、命令フェッチの順に従って次々にプログラムを実行すればよいようにプログラムを編成することにより、面切り替え間で実行される各プログラム片は、実行すべき命令データが必ず当該プログラム片内に存在することになり、全体として膨大な処理プログラム（ｍ×ｎＫＢ  ｍは相当大きな数）でも、小容量の命令キャッシュ（２×ｎＫＢ）を用いてフェッチ命令のヒット率１００％を達成することができる。
【００３５】
次に転送完了フラグを設けた本発明の実施形態について説明する。図３は該実施形態の構成を示す。この実施形態は、図１の構成に更に主記憶プログラムメモリ１−６から命令キャッシュ１−２への命令データの転送完了を示す転送完了フラグを格納する転送完了フラグ部３−１を備えたものである。
【００３６】
図４にこの実施形態の動作シーケンスを示す。同図において、図２のシーケンスと同様に、中央処理装置（ＣＰＵ）１−１は、命令キャッシュ１−２のアクティブ面（Ａ面）からプログラム片(1)をフェッチし、該プログラム片(1)の命令データをデコードして処理を実行し、この動作と並行して、次ぎに実行されるべきプログラム片(2)を、主記憶プログラムメモリ１−６から命令キャッシュ１−２のスタンバイ面（Ｂ面）に取り込む。
【００３７】
該プログラム片(2)のスタンバイ面（Ｂ面）への転送完了は、プログラム(1)上で監視する。この動作例では、プログラム(1)内のＷｈｉｌｅＬｏｏｐ文「ｗｈｉｌｅ（！ｆｌａｇ）｛｝」により、転送完了フラグ部３−１に転送完了を示すフラグがセットされるまで、面切り替えを待機（Ｗａｉｔ）させる。
【００３８】
上述のプログラム片(2)のスタンバイ面（Ｂ面）への転送が完了し、転送完了を示すフラグがセットされると、プログラム(1)はｗｈｉｌｅＬｏｏｐ文を抜け出し、次行の「ｆｌａｇ＝０；」のコードにより転送完了フラグをクリアし、次行の「ａｃｔ＝１；」のコードにより面切り替えを行う。以降の動作シーケンスは、図２に示した動作シーケンスと同様であるので重複した説明は省略する。
【００３９】
各プログラム片はそれぞれ分岐処理等の有無により処理の実行時間に揺らぎがあり、次のプログラム片(2)の転送が完了するまでに、現在実行中のプログラム(1)の処理が終了してしまう場合があるが、そのような場合でも、転送完了フラグを監視して面切り替えを行うことにより、プログラム片の転送途中に面切り替えが行われてしまうようなることはなく、スタンバイ面に命令データが完全に転送された後に面切り替えが行われるため、面切り替え後のフェッチ命令データは必ずヒットすることになる。
【００４０】
次に初期化ルーチンプログラム実行中にスタンバイ面に命令データを転送する実施形態について説明する。図５にこの実施形態の構成を示す。この実施形態は、ブート用リードオンリメモリ（ＲＯＭ）５−１に初期化ルーチンプログラムを格納し、マイクロプロセッサのリセット後に初期化ルーチン（スタートアップルーチン）が実行されている間に、主記憶プログラムメモリ１−６に記憶されたメインプログラムの先頭プログラムのプログラム片(1)を命令キャッシュ１−２のスタンバイ面（Ａ面）へ転送する。
【００４１】
図６にこの実施形態の動作シーケンスを示す。同図に示すように、初期化ルーチンプログラムの最後にＷｈｉｌｅＬｏｏｐ文「ｗｈｉｌｅ（！ｆｌａｇ）｛｝」のコードを記述し、該コードにより前述の図４の動作シーケンスと同様に、プログラム片(1)の転送が完了したかどうかを、転送完了フラグ部３−１にセットされるフラグにより監視し、転送完了を示すフラグがセットされると、ｗｈｉｌｅＬｏｏｐ文を抜け出し、次行の「ｆｌａｇ＝０；」のコードにより転送完了フラグをクリアし、次行の「ａｃｔ＝１；」のコードにより面切り替えを行う。以降の動作シーケンスは、図４に示した動作シーケンスと同様であるので重複した説明は省略する。
【００４２】
このように初期化ルーチンの実行中にスタンバイ面に命令データを転送することにより、マイクロプロセッサのリセット後、初期化プログラムを実行し終え、メインプログラムに制御を渡した場合に、命令キャッシュ１−２のアクティブ面には既に実行すべきプログラム(1)の命令が格納されており、命令データの転送時間が短縮されると共に、スタンバイ面に命令データが完全に転送された後に面切り替えが行われるため、面切り替え後のフェッチ命令データは必ずヒットすることになる。
【図面の簡単な説明】
【００４３】
【図１】本発明の命令キャッシュシステムの構成を示す図である。
【図２】本発明の命令キャッシュシステムの動作シーケンスを示す図である。
【図３】本発明の転送完了フラグを設けた実施形態の構成を示す図である。
【図４】本発明の転送完了フラグを設けた実施形態の動作シーケンスを示す図である。
【図５】本発明の初期化ルーチンプログラム実行中にスタンバイ面に命令データを転送する実施形態の構成を示す図である。
【図６】本発明の初期化ルーチンプログラム実行中にスタンバイ面に命令データを転送する実施形態の動作シーケンスを示す図である。
【図７】プログラムを各プログラム片内で実行が完結するように改変した具体例を示す図である。
【図８】従来の命令キャッシュシステムの構成を示す図である。
【図９】命令キャッシュヒット時とミスヒット時の動作のタイミングチャートを示す図である。
【符号の説明】
【００４４】
１−１  中央処理装置（ＣＰＵ）
１−２  ２面構成の命令キャッシュ
１−３，１−４  命令キャッシュの面切り替えを行うスイッチ（選択回路）
１−５  面切り替えを制御するＡＣＴレジスタ
１−６  主記憶プログラムメモリ
１−７  転送する命令データのアドレスを管理するアドレス管理部
【図１】
2005266997.tif 000003
【図２】
2005266997.tif 000004
【図３】
2005266997.tif 000005
【図４】
2005266997.tif 000006
【図５】
2005266997.tif 000007
【図６】
2005266997.tif 000008
【図７】
2005266997.tif 000009
【図８】
2005266997.tif 000010
【図９】
2005266997.tif 000011