(57)【要約】【課題】　プロセッサの動作速度を向上させるキャッシュ構造を有するプロセッサ及びキャッシュ管理方法を提供する。【解決手段】　キャッシュメモリ及び命令語レジスタを具備し、（ａ）キャッシュメモリをノーマルプログラム用キャッシュと例外プログラム用キャッシュとに分ける段階と、（ｂ）ノーマルプログラム実行のための命令語及び／またはデータはノーマルプログラム用キャッシュに、例外プログラム実行のための命令語及び／またはデータは例外プログラム用キャッシュに記憶する段階と、（ｃ）プロセッサがノーマルプログラムを実行中なのか例外プログラムを実行中なのかを判断して、ノーマルプログラム用キャッシュと例外プログラム用キャッシュのうちいずれか一つから命令語をフェッチして命令語レジスタに入力する段階とを具備する。【選択図】　　　図２
2004103012.tif 000002
【特許請求の範囲】
【請求項１】
　所定のノーマルプログラム実行のための命令語を記憶するノーマルプログラム用キャッシュメモリと、所定の例外プログラム実行のための命令語を記憶する例外プログラム用キャッシュメモリと、
　前記ノーマルプログラム用キャッシュメモリと前記例外プログラム用キャッシュメモリとのうちいずれか１つから命令語をフェッチして記憶する命令語レジスタと、
を具備するプロセッサであって、
　現在実行中のプログラムが前記ノーマルプログラムなのか前記例外プログラムなのかを判断し、前記ノーマルプログラム用キャッシュメモリと前記例外プログラム用キャッシュメモリとのうちいずれか１つから命令語をフェッチして、前記命令語レジスタに入力することを特徴とするプロセッサ。
【請求項２】
　前記プロセッサが、
　所定の制御信号を発し、さらに、
　前記制御信号に従って前記ノーマルプログラム用キャッシュメモリと前記例外プログラム用キャッシュメモリとが提供する命令語のうち１つを選択し、前記命令語レジスタに提供するマルチプレクサを具備することを特徴とする請求項１に記載のプロセッサ。
【請求項３】
　前記所定の制御信号が、前記現在実行中のプログラムの形態に基づいていることを特徴とする請求項２に記載のプロセッサ。
【請求項４】
　前記例外プログラムが、
　割り込み処理ルーチンと、
　例外処理ルーチンと、
　リセット処理ルーチンと、
を含むことを特徴とする請求項１に記載のプロセッサ。
【請求項５】
　前記例外プログラムが、
　ノーマルプログラムのための所定のサブルーチンをさらに含むことを特徴とする請求項４に記載のプロセッサ。
【請求項６】
　（ａ）キャッシュメモリをノーマルプログラム用キャッシュメモリと例外プログラム用キャッシュメモリとに分ける段階と、
　（ｂ）ノーマルプログラム実行のための命令語及び／又はデータを前記ノーマルプログラム用キャッシュメモリに、例外プログラム実行のための命令語及び／又はデータを前記例外プログラム用キャッシュメモリに記憶する段階と、
　（ｃ）現在実行中のプログラムがノーマルプログラムなのか例外プログラムなのかを判断し、前記ノーマルプログラム用キャッシュメモリと前記例外プログラム用キャッシュメモリとのうちいずれか１つから命令語及び／又はデータをフェッチして命令語レジスタに入力する段階と、
を具備することを特徴とするプロセッサのキャッシュメモリ管理方法。
【請求項７】
　前記キャッシュメモリ管理方法において、
　（ｄ）キャッシュミスが発生した場合、下位メモリで所望の命令語及び／又はデータを検索し、見つかった場合には、前記ノーマルプログラム用キャッシュメモリと前記例外プログラム用キャッシュメモリとのうちいずれか１つに記憶する段階をさらに具備することを特徴とする請求項６に記載のキャッシュメモリ管理方法。
【請求項８】
　前記例外プログラムが、
　割り込み処理ルーチンと、
　例外処理ルーチンと、
　リセット処理ルーチンと、
を含むことを特徴とする請求項６に記載のキャッシュメモリ管理方法。
【請求項９】
　前記例外プログラムが、
　ノーマルプログラムのための所定のサブルーチンをさらに含むことを特徴とする請求項８に記載のプロセッサ。
【請求項１０】
　プロセッサのキャッシュメモリ管理方法であって、
　（ａ）キャッシュメモリをノーマルプログラム用キャッシュメモリと例外プログラム用キャッシュメモリとに分ける段階と、
　（ｂ）現在実行中のプログラムがノーマルプログラムなのか例外プログラムなのかを判断する段階と、
　（ｃ）キャッシュルックアップ動作を行って所望の命令語及び／又はデータを見つける段階と、
　（ｄ）前記段階（ｃ）の結果キャッシュミスが発生した場合、下位メモリで所望の命令語及び／又はデータを検索し、見つかった場合には、前記ノーマルプログラム用キャッシュメモリと前記例外プログラム用キャッシュメモリとのうちいずれか１つに、段階（ｂ）の判断結果に従って所望の命令語及び／又はデータを記憶する段階と、
をさらに具備することを特徴とする方法。
【請求項１１】
　前記段階（ｃ）が、
　前記段階（ｂ）において現在実行中のプログラムが前記ノーマルプログラムであると判断すれば前記ノーマルプログラム用キャッシュメモリで、前記例外プログラムであると判断すれば前記例外プログラム用キャッシュメモリで前記キャッシュルックアップ動作を行うことを特徴とする請求項１０に記載のプロセッサのキャッシュメモリ管理方法。
【請求項１２】
　前記例外プログラムが、
　割り込み処理ルーチンと、
　例外処理ルーチンと、
　リセット処理ルーチンと、
を含むことを特徴とする請求項１０に記載のキャッシュメモリ管理方法。
【請求項１３】
　前記例外プログラムが、
　ノーマルプログラムのための所定のサブルーチンをさらに含むことを特徴とする請求項１２に記載のプロセッサのキャッシュメモリ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
　本発明はコンピュータシステムに係り、より詳細にはプロセッサのキャッシュ構造及びキャッシュ管理方法に関する。
【背景技術】
【０００２】
　一般的に、コンピュータシステムはプロセッサとメモリとを含む。多くの場合、プロセッサの動作速度はメモリの動作速度を上回る。これは、動作速度が速いメモリは高価であるため、大抵のコンピュータシステムにおいて数が不十分であることに起因する。
【０００３】
　したがって、大部分のコンピュータシステムは、図１に示したように、階層的なメモリ構造を具備する。これはすなわち、キャッシュメモリ１２及び１４のような高速のメモリ、メインメモリ１６のような中速のメモリ、ハードディスク１８のような低速のメモリを階層的に具備するということを示している。動作速度が遅いほどそのコストは抑えられる。そのため、大部分のコンピュータシステムは、大量の低速及び中速メモリを備えることによって、システムのコストを抑えつつ総メモリ容量を増やしている。
【０００４】
　一方、キャッシュメモリ１２及び１４自体も階層的な構造を有する。キャッシュメモリ１２はプロセッサチップ１０の内部に備えられるオン−チップキャッシュであり、キャッシュメモリ１４はチップ外部に位置するオフ−チップキャッシュである。オン−チップキャッシュ１２を一般的に１次キャッシュまたはＬ１キャッシュといい、オフ−チップキャッシュ１４を２次キャッシュまたはＬ２キャッシュという。
　通常、キャッシュメモリ１２、１４は、メインメモリ１６から持ってきた命令語及び／またはデータを記憶する。
【０００５】
　プロセッサ１０は、まず１次キャッシュメモリ１２でキャッシュルックアップ動作を行い、所望する命令語及び／又はデータを検索する。所望の命令語及び／又はデータが１次キャッシュメモリ１２に存在しなければ、すなわち、キャッシュミスが発生すれば、２次キャッシュメモリ１４またはメインメモリ１６のような下位レベルのメモリで検索する。そして、検索した命令語及び／又はデータが見つかった場合には、１次キャッシュメモリ１２に記憶する。
【０００６】
　一方プロセッサ１０は、所定のノーマルプログラムの実行中に、割り込み処理ルーチン、例外処理ルーチン、リセット処理ルーチンなどの例外的なプログラム（以下、例外プログラムと称す）を処理しなければならない場合が多い。こうした場合、プロセッサは一時的にノーマルプログラムの実行を中断して、例外プログラムを処理した後、再びノーマルプログラムを実行する。
　その際、プロセッサ１０が必要とする命令語及び／又はデータは絶えず変化し、特定の時点で不要な命令語及び／又はデータは１次キャッシュメモリ１２から削除することが多い。
【０００７】
　削除済みの命令語及び／又はデータが再び必要となった場合、１次キャッシュメモリには存在しない。この場合、２次キャッシュメモリ１４や下位レベルのメモリ内を検索しなければならず、時間がかかる。その結果、プロセッサ１０の例外プログラムへの応答速度が遅くなり、高速動作を妨害する要因となる。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
　したがって、本発明が解決しようとする技術的課題は、ノーマルプログラムと例外プログラムとの間の実行の転換時にかかる時間を短縮することによって、プロセッサの動作速度を向上させるキャッシュ構造を有するプロセッサを提供することである。
　本発明が解決しようとする他の技術的課題は、プロセッサの動作速度を向上させるキャッシュ管理方法を提供することである。
【課題を解決するための手段】
【０００９】
　本発明が提供するプロセッサは、ノーマルプログラム実行のための命令語を記憶するノーマルプログラム用キャッシュメモリと、例外プログラム実行のための命令語を記憶する例外プログラム用キャッシュメモリと、命令語レジスタとを具備する。
　プロセッサは、現在実行中のプログラムがノーマルプログラムなのか例外プログラムなのかを判断し、ノーマルプログラム用キャッシュメモリと例外プログラム用キャッシュメモリとのうちいずれか１つから命令語をフェッチして命令語レジスタに入力する。
　プロセッサは、所定の制御信号を発するとともに、マルチプレクサも具備するのが望ましい。マルチプレクサは、前記制御信号に従ってノーマルプログラム用キャッシュメモリと例外プログラム用キャッシュメモリとから提供される命令語のうち１つを選択し、前記命令語レジスタに提供する。
【００１０】
　本発明がさらに提供するプロセッサのキャッシュメモリ管理方法は、（ａ）キャッシュメモリをノーマルプログラム用キャッシュメモリと例外プログラム用キャッシュメモリとに分ける段階と、（ｂ）ノーマルプログラム実行のための命令語及び／またはデータを前記ノーマルプログラム用キャッシュメモリに、例外プログラム実行のための命令語及び／またはデータを前記例外プログラム用キャッシュメモリに記憶する段階と、（ｃ）現在実行中のプログラムがノーマルプログラムなのか例外プログラムなのかを判断し、それに基づいてノーマルプログラム用キャッシュメモリと例外プログラム用キャッシュメモリのうちいずれか１つから命令語及び／又はデータをフェッチして命令語レジスタに入力する段階と、を具備する。
【００１１】
　キャッシュメモリ管理方法は、（ｄ）キャッシュミスが発生した場合、下位メモリで所望の命令語及び／又はデータを検索し、見つかった場合には、ノーマルプログラム用キャッシュメモリと例外プログラム用キャッシュメモリとのうちいずれか１つに記憶する段階をさらに具備するのが望ましい。
【００１２】
　本発明がさらに提供するプロセッサのキャッシュメモリ管理方法は、（ａ）キャッシュメモリをノーマルプログラム用キャッシュメモリと例外プログラム用キャッシュメモリとに分ける段階と、（ｂ）現在実行中のプログラムがノーマルプログラムなのか例外プログラムなのかを判断する段階と、（ｃ）キャッシュルックアップ動作を行って所望の命令語及び／又はデータを見つける段階と、（ｄ）前記段階（ｃ）のキャッシュルックアップ動作の結果キャッシュミスが発生した場合、下位メモリで所望の命令語及び／またはデータを検索し、見つかった場合には、段階（ｂ）の判断結果に従って、ノーマルプログラム用キャッシュメモリと例外プログラム用キャッシュメモリとのうちいずれか１つに記憶する段階と、を具備する。
【００１３】
　段階（ｃ）は、段階（ｂ）の判断結果に従って、ノーマルプログラムを実行中であればノーマルプログラム用キャッシュメモリで、例外プログラムを実行中であれば例外プログラム用キャッシュメモリで、各々キャッシュルックアップ動作を行うのが望ましい。
　本発明と本発明の動作上の利点及び本発明の実施によって達成される目的を十分に理解するためには、本発明の望ましい実施例を例示する添付図面及び添付図面に記載された内容を参照せねばならない。
【発明の効果】
【００１４】
　本発明によれば、ノーマルプログラム用キャッシュメモリと例外プログラム用キャッシュメモリとを別途に管理することによって、ノーマルプログラム実行と例外プログラム実行との転換時にかかる時間を減らすことができる。したがって、プロセッサの動作速度及び例外的な状況に対する応答速度が向上する。
【発明を実施するための最良の形態】
【００１５】
　以下、添付した図面を参照して本発明の好適な実施例を説明することによって、本発明を詳細に説明する。各図面に提示された同じ参照符号は同じ部材を表す。
　図２は、本発明の一実施例によるプロセッサのキャッシュ構造を表すブロック図である。これを参照すれば、本発明の一実施例によるプロセッサ２０は、キャッシュメモリ２２及び２４と、マルチプレクサ２６と、命令語レジスタ２８とを具備する。
【００１６】
　キャッシュメモリ２２及び２４は、ノーマルプログラム用キャッシュメモリ２２と、例外プログラム用キャッシュメモリ２４とを含む。ノーマルプログラム用キャッシュメモリ２２は、ノーマルプログラムを実行するのに必要な命令語を記憶する。一方、例外プログラム用キャッシュメモリ２４は、例外プログラムを実行するのに必要な命令語を記憶する。例外プログラムとは、割り込み処理ルーチン、リセット処理ルーチン、例外処理ルーチンなどを指す。
　割り込み処理ルーチンは、入／出力デバイス要求のようにプロセッサ外部で発生する予期せぬイベントが誘因となって発生する。また、例外処理ルーチンは、演算オーバーフローのようにプロセッサ内部で発生する予期せぬイベントによって引き起こされる。
【００１７】
　前記のような例外プログラムは、ノーマルプログラムに比べて小さい。したがって、このような例外プログラムを実行するのに必要な命令語は全て、例外プログラム用キャッシュメモリ２４に記憶することができる。
　また、例外プログラム用キャッシュメモリには、ノーマルプログラムでよく使われるサブルーチンが記憶されることもある。例えば、ノーマルプログラムで頻繁に呼び出される‘ｐｒｉｎｔｆ’のようなサブルーチンは、例外プログラムと共に、ノーマルプログラム用キャッシュメモリ２２ではなく例外プログラム用キャッシュメモリ２４に記憶されることがある。
【００１８】
　プロセッサ２０は、プログラムの実行に必要な命令語をフェッチするために、キャッシュメモリ２２及び２４に対してキャッシュルックアップ動作を行う。プロセッサ２０は実行中のプログラムがノーマルプログラムなのか例外プログラムなのかを判断し、ノーマルプログラムの実行中であればノーマルプログラム用キャッシュメモリ２２で、例外プログラムの実行中であれば例外プログラム用キャッシュメモリ２４でキャッシュルックアップ動作を行うことが望ましい。
【００１９】
　キャッシュルックアップ動作の結果、キャッシュミスが発生すれば、プロセッサ２０は２次キャッシュメモリまたはメインメモリのような下位メモリ３０で命令語を検索する。所望の命令語が見つかると、プロセッサ２０はノーマルプログラム用キャッシュメモリ２２と例外プログラム用キャッシュメモリのうちいずれか一つに記憶する。
　ノーマルプログラム用キャッシュメモリ２２や例外プログラム用キャッシュメモリ２４に記憶されている命令語は、マルチプレクサ２６を通じて命令語レジスタ２８に提供される。マルチプレクサ２６は、ノーマルプログラム用キャッシュメモリ２２と例外プログラム用キャッシュメモリ２４が提供する命令語のうち一つを選択し、命令語レジスタ２８に提供する。
【００２０】
　プロセッサ２０は制御信号ＣＮＴを用いてマルチプレクサ２６を制御し、ノーマルプログラムの実行中にはノーマルプログラム用キャッシュメモリ２２から命令語レジスタ２８に、例外プログラムの実行中には例外プログラム用キャッシュメモリ２４から命令語レジスタ２８に命令語を入力する。
　命令語レジスタ２８は現在実行中の命令の内容を記憶するレジスタである。
【００２１】
　図３は、本発明の一実施例によるキャッシュメモリ管理方法を表すフローチャートである。図３に示すキャッシュメモリ管理方法は、図２のプロセッサ２０が実行する。
　まず、キャッシュメモリはノーマルプログラム用キャッシュメモリと例外プログラム用キャッシュメモリとに分割される（段階３１）。ノーマルプログラム用キャッシュメモリはノーマルプログラム実行用命令語を記憶するためのキャッシュメモリであり、例外プログラム用キャッシュメモリは前述した例外プログラムを実行するための命令語を記憶するためのキャッシュメモリである。
【００２２】
　次に、プロセッサは実行中のプログラムがノーマルプログラムなのか例外プログラムなのかを判断する（段階３２）。判断の結果、ノーマルプログラムを実行中であればノーマルプログラム用キャッシュメモリで、例外プログラムを実行中であれば例外プログラム用キャッシュメモリでキャッシュルックアップ動作を行う（段階３３、３４）。
　キャッシュルックアップ動作の結果キャッシュミスが発生すると、下位メモリで所望の命令語を検索し、見つかった場合には、前記段階３２の判断結果に従って、ノーマルプログラム用キャッシュメモリと例外プログラム用キャッシュメモリとのうちいずれか１つに記憶する（段階３５）。
【００２３】
　上述したように、ノーマルプログラムと例外プログラムとの間の実行転換に必要な時間は、実行中の例外プログラムに必要な命令語及び／又はデータを別々のキャッシュメモリに記憶し、管理することで短縮できる。
　本発明は図面に図示された好適な一実施例を参考として説明された。これは例示的なものに過ぎず、本技術分野の当業者であれば、形や詳細について多様変更が可能であるという点を理解できる。したがって、本発明の真の技術的保護範囲は特許請求の範囲の技術的思想により決まらねばならない。
【産業上の利用可能性】
【００２４】
　本実施例では命令語記憶キャッシュメモリをノーマルプログラム用と例外プログラム用とに分けたが、データ記憶キャッシュメモリも同様に分けることができる。
【図面の簡単な説明】
【００２５】
【図１】従来のコンピュータシステムでの階層的なメモリ構造を示す図面である。
【図２】本発明の一実施例によるプロセッサのキャッシュ構造を示すブロック図である。
【図３】本発明の一実施例によるキャッシュメモリ管理方法を示すフローチャートである。
【符号の説明】
【００２６】
　　　　２０　　プロセッサ
　　　　２２、２４　　キャッシュメモリ
　　　　２６　　マルチプレクサ
　　　　２８　　命令語レジスタ
　　　　３０　　下位メモリ
【図１】
2004103012.tif 000003
【図２】
2004103012.tif 000004
【図３】
2004103012.tif 000005