(57)【要約】【課題】大容量のキャッシュメモリに対するアクセス効率を向上できる。【解決手段】キャッシュメモリシステムは、ｋ次のキャッシュメモリと、ｋ次のキャッシュメモリよりもメモリ容量が大きく、かつメインメモリよりも高速アクセスが可能な不揮発性メモリを用いた大容量キャッシュメモリと、プロセッサが発行する仮想アドレスから物理アドレスへのアドレス変換情報と、ｋ次のキャッシュメモリのアクセス単位であるキャッシュラインよりもデータ量の多いページ単位で大容量キャッシュメモリにデータが格納されているか否かを記録するフラグ情報と、を格納するトランスレーション・ルックアサイド・バッファと、を備える。【選択図】図１
2015060571.tif 000002
【特許請求の範囲】
【請求項１】
ｋ次（ｋ＝１からｎまでのすべての整数、ｎは１以上の整数）のキャッシュメモリと、
前記ｋ次のキャッシュメモリよりもメモリ容量が大きく、かつメインメモリよりも高速アクセスが可能な不揮発性メモリを用いた大容量キャッシュメモリと、
プロセッサが発行する仮想アドレスから物理アドレスへのアドレス変換情報と、前記ｋ次のキャッシュメモリのアクセス単位であるキャッシュラインよりもデータ量の多いページ単位で前記大容量キャッシュメモリにデータが格納されているか否かを記録するフラグ情報と、を格納するトランスレーション・ルックアサイド・バッファと、を備えるキャッシュメモリシステム。
【請求項２】
前記トランスレーション・ルックアサイド・バッファは、前記ｋ次のキャッシュメモリよりも先に、プロセッサによりアクセスされる請求項１に記載のキャッシュメモリシステム。
【請求項３】
前記ｋ次のキャッシュメモリは、前記大容量キャッシュメモリよりも優先してプロセッサによりアクセスされる請求項２に記載のキャッシュメモリシステム。
【請求項４】
前記大容量キャッシュメモリは、前記ｋ次のキャッシュメモリに格納されているすべてのデータを格納する請求項２または３に記載のキャッシュメモリシステム。
【請求項５】
前記トランスレーション・ルックアサイド・バッファは、プロセッサにより、前記ｋ次のキャッシュメモリの中の１次のキャッシュメモリの次にアクセスされる請求項１に記載のキャッシュメモリシステム。
【請求項６】
前記大容量キャッシュメモリは、前記ｋ次のキャッシュメモリの中の１次のキャッシュメモリ以外のすべてのキャッシュメモリに格納されているすべてのデータを格納する請求項５に記載のキャッシュメモリシステム。
【請求項７】
前記ｋ次のキャッシュメモリの中の１次のキャッシュメモリよりも高次の特定のキャッシュメモリと、前記大容量キャッシュメモリとは、プロセッサにより並行してアクセスされ、
前記特定のキャッシュメモリと前記大容量キャッシュメモリとは、互いに異なるアドレスに対応するデータを格納する請求項１または２に記載のキャッシュメモリシステム。
【請求項８】
前記トランスレーション・ルックアサイド・バッファは、各ページ内のキャッシュラインごとに前記特定のキャッシュメモリにデータが格納されているか否かを示す情報をページ単位で格納するアクセスマップを有する請求項７に記載のキャッシュメモリシステム。
【請求項９】
前記トランスレーション・ルックアサイド・バッファは、前記大容量キャッシュメモリをアクセスするためのアドレス情報をページ単位で格納する請求項１乃至８のいずれかに記載のキャッシュメモリシステム。
【請求項１０】
前記トランスレーション・ルックアサイド・バッファは、前記大容量キャッシュメモリ内のデータを前記メインメモリに書き戻したか否かを示すダーティ情報をページ単位で有する請求項１乃至９のいずれかに記載のキャッシュメモリシステム。
【請求項１１】
前記トランスレーション・ルックアサイド・バッファは、仮想アドレスの一部のビットをインデックスとしたセットアソシアティブ構成を有する請求項１乃至１０のいずれかに記載のキャッシュメモリシステム。
【請求項１２】
前記トランスレーション・ルックアサイド・バッファに格納しきれなかったアドレス変換情報およびフラグ情報を格納する、前記メインメモリよりも高速アクセスが可能なページテーブルを備える請求項１乃至１１のいずれかに記載のキャッシュメモリシステム。
【請求項１３】
前記ページテーブルは、プロセッサにより、前記ｋ次のキャッシュメモリへのアクセスの後にアクセスされ、
前記大容量キャッシュメモリは、プロセッサにより、前記ページテーブルへのアクセスの後にアクセスされる請求項１２に記載のキャッシュメモリシステム。
【請求項１４】
プロセッサと、
メインメモリと、
ｋ次（ｋ＝１からｎまでのすべての整数、ｎは１以上の整数）のキャッシュメモリと、
前記ｋ次のキャッシュメモリよりもメモリ容量が大きく、かつメインメモリよりも高速アクセスが可能な不揮発性メモリを用いた大容量キャッシュメモリと、
前記プロセッサが発行する仮想アドレスから物理アドレスへのアドレス変換情報と、前記ｋ次のキャッシュメモリのアクセス単位であるキャッシュラインよりもデータ量の多いページ単位で前記大容量キャッシュメモリにデータが格納されているか否かを記録するフラグ情報と、を格納するトランスレーション・ルックアサイド・バッファと、を備えるプロセッサシステム。
【請求項１５】
前記プロセッサは、
読み出し要求アドレスが前記トランスレーション・ルックアサイド・バッファにヒットしたか否かを判定し、ヒットしなければ、前記メインメモリから前記読み出し要求アドレスに関するアドレス変換情報をロードして前記トランスレーション・ルックアサイド・バッファを更新する第１処理と、
前記第１処理後に、前記読み出し要求アドレスに対応するデータが前記ｋ次のキャッシュメモリに格納されているかを、低次のキャッシュメモリから順に調べて、格納されていれば、格納されているデータを読み出す第２処理と、
前記読み出し要求アドレスに対応するデータが前記ｋ次のキャッシュメモリのいずれにも格納されていなければ、前記読み出し要求アドレスに対応するデータが前記大容量キャッシュメモリに格納されているか否かを前記トランスレーション・ルックアサイド・バッファが保持する前記フラグ情報に基づいて判定し、前記大容量キャッシュメモリに格納されていれば、前記大容量キャッシュメモリから前記読み出し要求アドレスに対応するデータを読み出すとともに、前記読み出し要求アドレスに対応するキャッシュライン分のデータを前記ｋ次のキャッシュメモリに格納する第３処理と、
前記第３処理でヒットしなければ、前記メインメモリから前記読み出し要求アドレスに対応するデータを読み出すとともに、前記読み出し要求アドレスに対応するページ単位のデータを前記大容量キャッシュメモリに格納し、かつ前記読み出し要求アドレスに対応するキャッシュライン分のデータを前記ｋ次のキャッシュメモリに格納し、かつ前記読み出し要求アドレスに基づいて前記トランスレーション・ルックアサイド・バッファを更新する第４処理と、を実行する請求項１４に記載のプロセッサシステム。
【請求項１６】
前記ｋ次のキャッシュメモリの中の１次のキャッシュメモリよりも高次の特定のキャッシュメモリと、前記大容量キャッシュメモリとは、プロセッサにより並行してアクセスされ、
前記トランスレーション・ルックアサイド・バッファは、各ページ内のキャッシュラインごとに前記特定のキャッシュメモリにデータが格納されているか否かを示す情報をページ単位で格納するアクセスマップを有し、
前記プロセッサは、
読み出し要求アドレスが前記トランスレーション・ルックアサイド・バッファにヒットしたか否かを判定し、ヒットしなければ、前記メインメモリから前記読み出し要求アドレスに関するアドレス変換情報をロードして前記トランスレーション・ルックアサイド・バッファを更新する第１処理と、
前記第１処理後に、前記読み出し要求アドレスに対応するデータが前記ｋ次のキャッシュメモリの中の１次のキャッシュメモリに格納されているかを調べて、格納されていれば、格納されているデータを読み出す第２処理と、
前記第２処理で前記１次のキャッシュメモリに格納されていないと判定されると、前記読み出し要求アドレスに対応するデータが前記大容量キャッシュメモリに格納されているか否かを前記トランスレーション・ルックアサイド・バッファが保持する前記フラグ情報に基づいて判定し、前記大容量キャッシュメモリに格納されていれば、前記大容量キャッシュメモリから前記読み出し要求アドレスに対応するデータを読み出すとともに、前記読み出し要求アドレスに対応するキャッシュライン分のデータを前記１次のキャッシュメモリに格納する第３処理と、
前記第３処理で前記トランスレーション・ルックアサイド・バッファにヒットしなかったと判定されると、前記読み出し要求アドレスが前記ｋ次のキャッシュメモリの中の２次以上の高次のキャッシュメモリにヒットするか否かを順に判定し、ヒットすれば、前記高次のキャッシュメモリから前記読み出し要求アドレスに対応するデータを読み出す第４処理と、
前記第４処理で前記高次のキャッシュメモリに格納されていないと判定されると、前記メインメモリから前記読み出し要求アドレスに対応するデータを読み出す第５処理と、
前記トランスレーション・ルックアサイド・バッファ内の前記アクセスマップの前記読み出し要求アドレスに対応するページを参照して、前記特定のキャッシュメモリにデータが格納されている数が所定の閾値を超える場合には、対応するページの全データを前記大容量キャッシュメモリに格納して前記特定のキャッシュメモリ内のデータを無効化し、かつ前記読み出し要求アドレスに対応するキャッシュライン分のデータを前記メインメモリから読み出して前記１次のキャッシュメモリに格納し、かつ前記トランスレーション・ルックアサイド・バッファを更新する第６処理と、
前記第６処理で前記所定の閾値を超えないと判定されると、前記読み出し要求アドレスに対応するキャッシュライン分のデータを前記メインメモリから読み出して前記特定のキャッシュメモリに格納する第７処理と、を実行する請求項１４に記載のプロセッサシステム。
【請求項１７】
前記トランスレーション・ルックアサイド・バッファに格納しきれなかったアドレス変換情報およびフラグ情報を格納する、前記メインメモリよりも高速アクセスが可能なページテーブルを備え、
前記プロセッサは、
読み出し要求アドレスが前記トランスレーション・ルックアサイド・バッファにヒットしたか否かを判定し、ヒットしなければ、前記メインメモリから前記読み出し要求アドレスに関するアドレス変換情報をロードして前記トランスレーション・ルックアサイド・バッファを更新する第１処理と、
前記第１処理後に、前記読み出し要求アドレスに対応するデータが前記ｋ次のキャッシュメモリに格納されているかを、低次のキャッシュメモリから順に調べて、格納されていれば、格納されているデータを読み出す第２処理と、
前記読み出し要求アドレスに対応するデータが前記ｋ次のキャッシュメモリのいずれにも格納されていなければ、前記読み出し要求アドレスが前記ページテーブルにヒットするか否かを判定し、ヒットすれば、前記大容量キャッシュメモリから前記読み出し要求アドレスに対応するデータを読み出すとともに、前記読み出し要求アドレスに対応するキャッシュライン分のデータを前記１次のキャッシュメモリおよび前記２次のキャッシュメモリに格納する第３処理と、
前記第３処理でヒットしなければ、前記メインメモリから前記読み出し要求アドレスに対応するデータを読み出すとともに、前記読み出し要求アドレスに対応するページ単位のデータを前記大容量キャッシュメモリに格納し、かつ前記読み出し要求アドレスに対応するキャッシュライン分のデータを前記ｋ次のキャッシュメモリに格納し、かつ前記読み出し要求アドレスに基づいて前記トランスレーション・ルックアサイド・バッファおよび前記ページテーブルを更新する第４処理と、を実行する請求項１４に記載のプロセッサシステム。
【請求項１８】
前記ｋ次のキャッシュメモリの中の１次のキャッシュメモリよりも高次の特定のキャッシュメモリと、前記大容量キャッシュメモリとは、プロセッサにより並行してアクセスされ、
前記トランスレーション・ルックアサイド・バッファは、各ページ内のキャッシュラインごとに前記特定のキャッシュメモリにデータが格納されているか否かを示す情報をページ単位で格納するアクセスマップを有し、
前記プロセッサは、
前記読み出し要求アドレスに対応するデータが前記ｋ次のキャッシュメモリの中の１次のキャッシュメモリに格納されているかを調べて、格納されていれば、格納されているデータを読み出す第１処理と、
読み出し要求アドレスに対応するデータが前記１次のキャッシュメモリに格納されていなければ、前記読み出し要求アドレスが前記トランスレーション・ルックアサイド・バッファにヒットするか否かを判定し、ヒットしなければ、前記メインメモリから前記読み出し要求アドレスに関するアドレス変換情報をロードして前記トランスレーション・ルックアサイド・バッファを更新する第２処理と、
前記第２処理の終了後に、前記読み出し要求アドレスに対応するデータが前記大容量キャッシュメモリに格納されているか否かを前記トランスレーション・ルックアサイド・バッファが保持する前記フラグ情報に基づいて判定し、前記大容量キャッシュメモリに格納されていれば、前記大容量キャッシュメモリから前記読み出し要求アドレスに対応するデータを読み出すとともに、前記読み出し要求アドレスに対応するキャッシュライン単位のデータを前記１次のキャッシュメモリに格納する第３処理と、
前記第３処理で前記トランスレーション・ルックアサイド・バッファに格納されていないと判定されると、前記読み出し要求アドレスが前記ｋ次のキャッシュメモリの中の１次のキャッシュよりも高次のキャッシュメモリにヒットするか否かを順に判定し、ヒットすれば、前記高次のキャッシュメモリから前記読み出し要求アドレスに対応するデータを読み出す第４処理と、
前記第４処理で前記高次のキャッシュメモリに格納されていないと判定されると、前記メインメモリから前記読み出し要求アドレスに対応するデータを読み出す第５処理と、
前記トランスレーション・ルックアサイド・バッファ内の前記アクセスマップの前記読み出し要求アドレスに対応するページを参照して、前記特定のキャッシュメモリにデータが格納されている数が所定の閾値を超える場合には、対応するページの全データを前記大容量キャッシュメモリに格納して前記特定のキャッシュメモリ内のデータを無効化し、かつ前記読み出し要求アドレスに対応するキャッシュライン分のデータを前記１次のキャッシュメモリに格納し、かつ前記トランスレーション・ルックアサイド・バッファを更新する第６処理と、
前記第６処理で前記所定の閾値を超えないと判定されると、前記読み出し要求アドレスに対応するキャッシュライン分のデータを前記ｋ次のキャッシュメモリに格納する第７処理と、を実行する請求項１４に記載のプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、不揮発性メモリを用いたキャッシュメモリシステムおよびプロセッサシステムに関する。
【背景技術】
【０００２】
キャッシュメモリは、メインメモリよりもアクセス速度が高速であり、プロセッサの処理能力に直接的な影響を与えることから、キャッシュメモリの大容量化は今後も進むと見込まれている。
【０００３】
キャッシュメモリが大容量になると、キャッシュメモリ内のデータを管理するタグ情報も膨大になり、プロセッサが読み出し要求を行ったデータがキャッシュメモリ内にあるか否かの判定処理に時間がかかってしまう。この判定処理に時間がかかると、メインメモリへのアクセスにも時間がかかり、プロセッサの処理能力の低下につながる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００２−５３６７１５号公報
【特許文献２】特表２００２−５３６７１６号公報
【特許文献３】特表２００２−５３６７１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする課題は、大容量のキャッシュメモリに対するアクセス効率を向上可能なキャッシュメモリシステムおよびプロセッサシステムを提供することである。
【課題を解決するための手段】
【０００６】
本実施形態では、ｋ次（ｋ＝１からｎまでのすべての整数、ｎは１以上の整数）のキャッシュメモリと、
前記ｋ次のキャッシュメモリよりもメモリ容量が大きく、かつメインメモリよりも高速アクセスが可能な不揮発性メモリを用いた大容量キャッシュメモリと、
プロセッサが発行する仮想アドレスから物理アドレスへのアドレス変換情報と、前記ｋ次のキャッシュメモリのアクセス単位であるキャッシュラインよりもデータ量の多いページ単位で前記大容量キャッシュメモリにデータが格納されているか否かを記録するフラグ情報と、を格納するトランスレーション・ルックアサイド・バッファと、を備えるキャッシュメモリシステムが提供される。
【図面の簡単な説明】
【０００７】
【図１】本発明の第１の実施形態に係るプロセッサシステム１の概略構成を示す図。
【図２】第１の実施形態におけるＴＬＢ３、各キャッシュメモリ４〜６およびメインメモリ７のアクセス優先度を示す図。
【図３】第１の実施形態におけるＴＬＢ３の内部構成を示す図。
【図４】セットアソシアティブ構成のＴＬＢ３の内部構成を示す図。
【図５】第１の実施形態によるＣＰＵ２が読み出し要求アドレスを発行する場合の処理手順を示すフローチャート。
【図６】第２の実施形態に係るプロセッサシステム１の概略構成を示すブロック図。
【図７】第２の実施形態におけるＴＬＢ３、各キャッシュメモリ４〜６およびメインメモリ７のアクセス優先度を示す図。
【図８】第２の実施形態におけるＴＬＢ３の内部構成を示す図。
【図９】第２の実施形態によるＣＰＵ２が読み出し要求アドレスを発行する場合の処理手順を示すフローチャート。
【図１０】第３の実施形態に係るプロセッサシステム１の概略構成を示すブロック図。
【図１１】第３の実施形態におけるＴＬＢ３、ページテーブル１０、各キャッシュメモリ４〜６およびメインメモリ７のアクセス優先度を示す図。
【図１２】第３の実施形態によるＣＰＵ２が読み出し要求アドレスを発行する場合の処理手順を示すフローチャート。
【図１３】第４の実施形態に係るプロセッサシステム１の概略構成を示すブロック図。
【図１４】第４の実施形態におけるＴＬＢ３、各キャッシュメモリおよびメインメモリ７のアクセス優先度を示す図。
【図１５】第４の実施形態によるＣＰＵ２が読み出し要求アドレスを発行する場合の処理手順を示すフローチャート。
【発明を実施するための形態】
【０００８】
以下、図面を参照しながら、本発明の実施形態を説明する。
【０００９】
（第１の実施形態）
図１は本発明の第１の実施形態に係るプロセッサシステム１の概略構成を示す図である。図１のプロセッサシステム１は、プロセッサ（ＣＰＵ）２と、トランスレーション・ルックアサイド・バッファ（ＴＬＢ：Translation Lookaside Buffer）３と、１次キャッシュメモリ（Ｌ１キャッシュ）４と、２次キャッシュメモリ（Ｌ２キャッシュ）５と、大容量キャッシュメモリ（ページマッピングキャッシュ）６と、メインメモリ７とを備えている。
【００１０】
メインメモリ７以外のプロセッサ２、ＴＬＢ３、Ｌ１キャッシュ４、Ｌ２キャッシュ５、およびページマッピングキャッシュ６は例えば一つのチップ８に集積される。また、ＴＬＢ３、Ｌ１キャッシュ４、Ｌ２キャッシュ５、およびページマッピングキャッシュ６はメモリシステム９に対応する。
【００１１】
Ｌ１キャッシュ４とＬ２キャッシュ５は、メインメモリ７よりも高速アクセスが可能な半導体メモリ（例えば、ＳＲＡＭ）で構成されている。ページマッピングキャッシュ６は、メインメモリ７よりも高速アクセスが可能で、かつＬ１キャッシュ４とＬ２キャッシュ５よりもメモリ容量が大きい不揮発性メモリ（例えば、ＭＲＡＭ）で構成されている。本明細書では、ページマッピングキャッシュ６を、低消費電力のスピン注入磁化反転型ＭＲＡＭ（ＳＴＴ−ＭＲＡＭ）で構成する例を説明する。
【００１２】
ＴＬＢ３は、ＣＰＵ２が発行する仮想アドレスから物理アドレスへのアドレス変換情報と、ｋ（ｋ＝１からｎまでのすべての整数、ｎは１以上の整数）次のキャッシュメモリのアクセス単位であるキャッシュラインよりもデータ量の多いページ単位でページマッピングキャッシュ６にデータが格納されているか否かを記録するフラグ情報と、を格納する。本実施形態によるＴＬＢ３は、Ｌ１キャッシュ４とＬ２キャッシュ５に優先してＣＰＵ２によりアクセスされるため、高速のメモリ（例えばＳＲＡＭ）で構成されている。
【００１３】
メインメモリ７は、メモリシステム９内のどのメモリよりもメモリ容量が大きいことから、チップ８の外部、もしくはパッケージ積層化技術を用いて、例えばＤＲＡＭで構成されている。
【００１４】
図２は第１の実施形態におけるＴＬＢ３、各キャッシュメモリ４〜６およびメインメモリ７のアクセス優先度を示す図である。図示のように、ＣＰＵ２は、ＴＬＢ３、Ｌ１キャッシュ４、Ｌ２キャッシュ５、ページマッピングキャッシュ６およびメインメモリ７の順にアクセスする。アクセス頻度の高いメモリ内のデータはアクセス頻度の低いメモリにも格納される。すなわち、Ｌ１キャッシュ４内のデータはＬ２キャッシュ５にも格納され、Ｌ２キャッシュ５内のデータはページマッピングキャッシュ６にも格納され、ページマッピングキャッシュ６内のデータはメインメモリ７にも格納される。このように、各メモリ４〜７は階層関係を維持しており、これらのメモリにアクセスするためのアドレス変換情報等をＴＬＢ３が保持する。
【００１５】
図２は、ＣＰＵ２をＭＯＳトランジスタを組み合わせたフリップフロップ（Ｆ／Ｆ）等で構成し、ＴＬＢ３、Ｌ１キャッシュ４およびＬ２キャッシュ５をＳＲＡＭで構成し、ページマッピングキャッシュ６をＳＴＴ−ＭＲＡＭで構成し、メインメモリ７をＤＲＡＭで構成する例を示している。
【００１６】
図３は第１の実施形態におけるＴＬＢ３の内部構成を示す図である。図３のＴＬＢ３は、ページ単位で、Ｖａｌｉｄ情報、Ｄｉｒｔｙ情報、仮想アドレス情報（ＶＰＮ：Virtual Page Number）、物理アドレス情報（ＰＰＮ：Physical Page Number）、フラグ情報（Ｆｌａｇ）と、キャッシュアドレス情報（ＣＰＮ：Cache Page Number）とを格納している。
【００１７】
ＣＰＵ２が読み出し要求をするアドレスは仮想アドレスであり、この仮想アドレスは、図３に示すように、仮想アドレス情報ＶＰＮとページオフセットとを含んでいる。ＴＬＢ３は、ＣＰＵ２からの仮想アドレスを物理アドレスに変換する。変換した物理アドレスは、図３に示すように、物理アドレス情報ＰＰＮとページオフセットとを含んでいる。物理アドレス中のページオフセットは、ＣＰＵ２が要求した仮想アドレス中のページオフセットと同じである。
【００１８】
ＴＬＢ３には、図３に示すようにキャッシュアドレス情報が格納されており、ＴＬＢ３は、このキャッシュアドレス情報を利用して、ページマッピングキャッシュ６をアクセスする。このキャッシュアドレス情報は、図３に示すように、キャッシュページ番号ＣＰＮとページオフセットとを有する。キャッシュアドレス中のページオフセットは、ＣＰＵ２が要求した仮想アドレス中のページオフセットと同じである。
【００１９】
図３に示すように、ＴＬＢ３の内部にキャッシュアドレス情報が含まれていれば、そのキャッシュアドレス情報にてページマッピングキャッシュ６にアクセスできるため、アクセス効率がよくなるが、ページマッピングキャッシュ６のメモリ容量（ページエントリ数）が大きくなるほど、ＴＬＢ３に格納すべきキャッシュアドレス情報が増えてしまい、ＴＬＢ３が大容量化して検索にも時間がかかってしまう。よって、ページマッピングキャッシュ６のメモリ容量が大きい場合には、ＴＬＢ３からキャッシュアドレス情報を削除して、ＴＬＢ３の情報量の削減を図ってもよい。ただし、この場合、ＴＬＢ３の物理アドレスを用いてページマッピングキャッシュ６にアクセスしなければならないため、ＴＬＢ３にキャッシュアドレス情報が含まれる場合よりも、アクセスに時間がかかってしまう。
【００２０】
ＣＰＵ２が実行するオペ-レーティングシステム（ＯＳ）のタスク（プロセス）が切り替わると、ＴＬＢ３の情報を書き換える（フラッシュする）必要がある。これは、タスクごとに、仮想アドレスと物理アドレスとの対応関係が異なっており、同じ仮想アドレスであっても、物理アドレスが異なるためである。このため、タスクが切り替わると、ＴＬＢ３のすべてのページエントリを無効化する必要が生じる。ＴＬＢ３のサイズが小さい場合は大した問題ではないが、ＴＬＢ３のサイズが大きい場合は、ＴＬＢ３の更新に時間がかかるために、ＣＰＵ２の処理遅延が生じてしまう。このような処理遅延を解消するために、各タスクの仮想空間を識別するアドレス空間ＩＤ（ＡＳＩＤ）を設けて、予めＴＬＢ３に、アドレス空間ＩＤごとにページ情報を格納しておけば、タスクが切り替わるごとにＴＬＢ３をフラッシュする必要がなくなる。
【００２１】
また、ページマッピングキャッシュ６の容量が増大すると、ＴＬＢ３のエントリ数も増えるため、ＴＬＢ３の検索遅延が生じてしまう。そこで、ＴＬＢ３のエントリ数が多い場合は、ＴＬＢ３を複数の階層構造にしたり、仮想アドレス情報ＶＰＮの一部のビット（例えば下位側１０ビット）をインデックスにしたセットアソシアティブ構成にして、ＴＬＢ３の検索遅延を削減するのが望ましい。
【００２２】
図４はセットアソシアティブ構成のＴＬＢ３の内部構成を示す図である。図４のＴＬＢ３は、仮想アドレス情報ＶＰＮの一部のビットをインデックスにして、複数のウェイを有する。セットアソシアティブのインデックスとして用いる仮想アドレス情報ＶＰＮの一部のビット（例えば下位側１０ビット）は、同一セット内では重複しているが、仮想アドレス情報ＶＰＮの残りのビットはウェイ毎に異なる。そのためＴＬＢ３が出力する物理アドレス情報ＰＰＮはそれぞれ異なっている。
【００２３】
図４のＴＬＢ３では、ＣＰＵ２が読み出し要求をした仮想アドレスの一部によりＴＬＢ３内のセットを選択し、仮想アドレスの残りの部分が選択したセット内の各ウェイが保持している仮想アドレス情報ＶＰＮと一致する場合には、対応する物理アドレス情報ＰＰＮを出力する。
【００２４】
図５は第１の実施形態によるＣＰＵ２が読み出し要求アドレスを発行する場合の処理手順を示すフローチャートである。まず、ＣＰＵ２が発行した読み出し要求アドレスがＴＬＢ３内の仮想アドレス情報ＶＰＮにヒットするか否かを判定する（ステップＳ１）。ヒットしなければ、メインメモリ７内の不図示のページテーブルエントリ（ＰＴＥ）からアドレス変換情報をロードして、ＴＬＢ３内の情報を更新する（ステップＳ２）。これらステップＳ１，Ｓ２の処理は第１処理に対応する。
【００２５】
ステップＳ１でヒットしたと判定された場合、あるいはステップＳ２の処理が終了した場合、ＣＰＵ２が発行した読み出し要求アドレスがＬ１キャッシュ４内のタグ情報にヒットするか否かを判定する（ステップＳ３）。ヒットすれば、Ｌ１キャッシュ４に格納されている対応データを読み出してＣＰＵ２に転送し、図５の処理を終了する（ステップＳ４）。なお、Ｌ１キャッシュ４のインデックスがページ内のアドレスで構成されている場合には、第１処理と同時に投機的にＬ１キャッシュ４のタグメモリにアクセスすることも可能であるが、ヒットしたかどうかの判定は、第１処理終了後でなければならない。
【００２６】
ステップＳ３でヒットしなかったと判定されると、ＣＰＵ２が発行した読み出し要求アドレスがＬ２キャッシュ５内のタグ情報にヒットするか否かを判定する（ステップＳ５）。ヒットすれば、Ｌ２キャッシュ５に格納されているデータを読み出してＣＰＵ２に転送し、図５の処理を終了する（ステップＳ６）。これらステップＳ３〜Ｓ６の処理は第２処理に対応する。
【００２７】
ステップＳ５でヒットしなかったと判定されると、ＣＰＵ２が発行した読み出し要求アドレスに対応するデータがページマッピングキャッシュ６に格納されているか否かをＴＬＢ３が保持するフラグ情報に基づいて判定する（ステップＳ７）。格納されている場合は、このアドレスに対応するページ分のデータをページマッピングキャッシュ６から読み出してＣＰＵ２に転送するとともに、このアドレスに対応するキャッシュライン分のデータをＬ１キャッシュ４とＬ２キャッシュ５に転送する（ステップＳ８）。これらステップＳ７およびＳ８の処理は第３処理に対応する。
【００２８】
ステップＳ７で格納されていないと判定されると、ＣＰＵ２が発行した読み出し要求アドレスに対応するデータをメインメモリ７から読み出してＣＰＵ２に転送するとともに、このアドレスに対応するページ分のデータをページマッピングキャッシュ６に転送し、かつこのアドレスに対応するキャッシュライン分のデータをＬ１キャッシュ４とＬ２キャッシュ５に転送し、かつＴＬＢ３を更新する（ステップＳ９）。このステップＳ９の処理は第４処理に対応する。
【００２９】
このように、第１の実施形態では、Ｌ１キャッシュ４やＬ２キャッシュ５よりも大容量で、かつメインメモリ７よりも高速アクセスが可能なページマッピングキャッシュ６を設けて、このページマッピングキャッシュ６のタグ情報を既存のＴＬＢ３にページ単位で格納する。タグ情報をページ単位でＴＬＢ３に格納することで、Ｌ１キャッシュ４やＬ２キャッシュ５のようにキャッシュライン単位でタグ情報を格納するよりも情報量を削減でき、ページマッピングキャッシュ６に専用のタグメモリを設ける必要がなくなる。すなわち、本実施形態によれば、大容量かつ高速のページマッピングキャッシュ６のタグ情報を既存のＴＬＢ３に格納できる。
【００３０】
また、本実施形態では、ページマッピングキャッシュ６よりも優先してＬ１キャッシュ４とＬ２キャッシュ５にアクセスするため、Ｌ１キャッシュ４とＬ２キャッシュ５に迅速にアクセスできる。さらに、Ｌ１キャッシュ４とＬ２キャッシュ５に入りきれないデータを大容量かつ高速のページマッピングキャッシュ６に格納するため、メインメモリ７にアクセスするよりも高速にデータの読み書きを行える。
【００３１】
また、本実施形態では、ＴＬＢ３の内部に、ページマッピングキャッシュ６用のキャッシュアドレス情報を有するため、Ｌ２キャッシュ５にヒットしなかったときに、このキャッシュアドレス情報を用いて、ページマッピングキャッシュ６から迅速に所望のデータを読み出すことができる。
【００３２】
（第２の実施形態）
以下に説明する第２の実施形態は、Ｌ２キャッシュ５とページマッピングキャッシュ６へのアクセスを並列化するものである。
【００３３】
本実施形態は、ページマッピングキャッシュ６のアクセスレイテンシがＬ２キャッシュ５に匹敵するほど高速である場合、あるいはページマッピングキャッシュ６のメモリ容量がＬ２キャッシュ５のメモリ容量の数倍から数十倍の場合に特に有効である。
【００３４】
ページマッピングキャッシュ６とＬ２キャッシュ５は、それぞれ異なる物理アドレスのデータを格納する。すなわち、ページマッピングキャッシュ６とＬ２キャッシュ５は、互いに排他的にデータを格納する。
【００３５】
本実施形態のページマッピングキャッシュ６は、ページ全体に渡ってアクセスが頻繁に発生するデータを格納する。これに対して、Ｌ２キャッシュ５は、ページ内のある特定のラインだけアクセスが頻発する場合にこのラインのデータを格納する。
【００３６】
このように、本実施形態では、一つのページ内で、ページマッピングキャッシュ６とＬ２キャッシュ５のどちらにデータを格納するかを動的に切り替える。
【００３７】
図６は第２の実施形態に係るプロセッサシステム１の概略構成を示すブロック図である。図６のプロセッサシステム１は、ＣＰＵ２によりＬ２キャッシュ５とページマッピングキャッシュ６が並列的にアクセスされることが図１と異なっている。
【００３８】
図７は第２の実施形態におけるＴＬＢ３、各キャッシュメモリ４〜６およびメインメモリ７のアクセス優先度を示す図である。図示のように、ＣＰＵ２は、ＴＬＢ３とＬ１キャッシュ４の順にアクセスし、Ｌ１キャッシュ４の後はＬ２キャッシュ５とページマッピングキャッシュ６に並列にアクセスし、その後メインメモリ７にアクセスする。
【００３９】
図８は第２の実施形態におけるＴＬＢ３の内部構成を示す図である。図８のＴＬＢ３は、図３のＴＬＢ３の構成に加えて、ページ単位でアクセスマップを有する。アクセスマップは、例えば各ページごとに、ページ内のすべてのライン分のビットを有する。Ｌ２キャッシュ５にデータが格納されると、対応するラインのビットが例えば１に設定される。そして、アクセスマップ内の１ページ分の全ビットのうち、１になったビットの数が予め定めた閾値を超えた場合には、そのページについては、ページマッピングキャッシュ６に格納することにし、Ｌ２キャッシュ５内の対応データは無効化する。
【００４０】
図８のＴＬＢ３は、図２のＴＬＢ３と同様に、ページマッピングキャッシュ６にアクセスするためのキャッシュアドレス情報を有するが、このキャッシュアドレス情報は必ずしも必須ではない。また、ページマッピングキャッシュ６のエントリ数が多い場合には、ＴＬＢ３をセットアソシアティブ構成にしてもよい。また、データがＬ２キャッシュ５に格納されているときはキャッシュアドレス情報が不要で、反対に、データがページマッピングキャッシュ６に格納されている時は、アクセスマップは不要となるので、ＴＬＢ３内のアクセスアップ用のビットとキャッシュアドレス情報用のビットを共有することができ、ＴＬＢ３の容量を節約することができる。
【００４１】
図９は第２の実施形態によるＣＰＵ２が読み出し要求アドレスを発行する場合の処理手順を示すフローチャートである。ステップＳ１１〜Ｓ１４は図５のステップＳ１〜Ｓ４と同様である。ステップＳ１３でＬ１キャッシュ４にヒットしなかったと判定されると、読み出し要求アドレスに対応するデータがページマッピングキャッシュ６に格納されているか否かをＴＬＢ３が保持するフラグ情報に基づいて判定する（ステップＳ１５）。格納されている場合は、このアドレスに対応するページ分のデータをページマッピングキャッシュ６から読み出してＣＰＵ２に転送するとともに、このアドレスに対応するキャッシュライン分のデータをＬ１キャッシュ４に転送する（ステップＳ１６）。ステップＳ１１，Ｓ１２の処理は第１処理に対応する。ステップＳ１３，Ｓ１４の処理は第２処理に対応する。ステップＳ１５，Ｓ１６の処理は第３処理に対応する。
【００４２】
ステップＳ１５で格納されていないと判定されると、ＣＰＵ２が発行した読み出し要求アドレスがＬ２キャッシュ５内のタグ情報にヒットするか否かを判定する（ステップＳ１７）。ヒットすれば、Ｌ２キャッシュ５に格納されているデータを読み出してＣＰＵ２に転送する（ステップＳ１８）。ステップＳ１７，Ｓ１８の処理は第４処理に対応する。なお、ステップＳ１５は、ステップＳ１１でＴＬＢ３にアクセスした時点であらかじめ必要な情報をＴＬＢ３から読み出しているため、ページマッピングキャッシュ６を持たないメモリシステムと比べて、Ｌ２キャッシュ５にアクセスするタイミングが遅延することはない。
【００４３】
ステップＳ１７でヒットしなかったと判定されると、ＣＰＵ２が発行した読み出し要求アドレスに対応するデータをメインメモリ７から読み出してＣＰＵ２に転送するとともに、このアドレスに対応するページ分のデータをページマッピングキャッシュ６に転送し、かつこのアドレスに対応するキャッシュライン分のデータをＬ１キャッシュ４とＬ２キャッシュ５に転送する（ステップＳ１９）。ステップＳ１９の処理は第５処理に対応する。
【００４４】
次に、ＴＬＢ３内のアクセスマップの対応ページをチェックする（ステップＳ２０）。すなわち、メインメモリ７から読み出したデータをＬ２キャッシュ５に書き込んで、ＴＬＢ３内のアクセスマップを更新した場合に、アクセスマップ内の対応ページのビットが１になった数が閾値を超えるか否かをチェックする（ステップＳ２０、Ｓ２１）。
【００４５】
閾値を超えると判定された場合は、対応ページ内の全ラインのデータをＬ２キャッシュ５とメインメモリ７からページマッピングキャッシュ６に転送し、対応ページ内の全ラインのＬ２キャッシュ５のデータは無効化し、ＴＬＢ３を更新する。このとき、ページマッピングキャッシュ６内で追い出されたデータを必要に応じてメインメモリ７にライトバックする。また、ＣＰＵ２が発行した読み出し要求アドレスに対応するデータをＬ１キャッシュ４に転送する（ステップＳ２２）。ステップＳ２０〜Ｓ２２の処理は第６処理に対応する。
【００４６】
ステップＳ２０で超えなかったと判定されると、ＣＰＵ２が発行した読み出し要求アドレスに対応するデータをＬ１キャッシュ４とＬ２キャッシュ５に転送する（ステップＳ２３）。ステップＳ２３の処理は第７処理に対応する。
【００４７】
このように、第２の実施形態では、Ｌ２キャッシュ５とページマッピングキャッシュ６へのアクセスを並列化して行うため、対応ページの全体に渡ってアクセスが頻繁に発生するか、対応ページ内の特定のラインにアクセスが集中するかによって、Ｌ２キャッシュ５とページマッピングキャッシュ６のどちらにデータを格納するかを切り替えることができる。よって、Ｌ２キャッシュ５とページマッピングキャッシュ６を効率よく使い分けることができる。
【００４８】
（第３の実施形態）
以下に説明する第３の実施形態は、ＴＬＢ３とは別個に、ページテーブルを備えるものである。ページマッピングキャッシュ６のエントリ数が増えると、すべてのエントリに関するアドレス変換情報やフラグ情報等をＴＬＢ３に格納しきれなくなるおそれがある。そこで、本実施形態では、ＴＬＢ３に入りきれなかった情報をページテーブルに格納する。
【００４９】
図１０は第３の実施形態に係るプロセッサシステム１の概略構成を示すブロック図である。図１０のプロセッサシステム１は、図１と比較して、Ｌ２キャッシュ５とページマッピングキャッシュ６の間に新たにページテーブル１０を配置している。ページテーブル１０には、ＴＬＢ３に格納しきれなかったアドレス変換情報やフラグ情報等が格納される。よって、ページテーブル１０は、基本的にはＴＬＢ３と同じ内部構成を有する。ページテーブル１０は、ページマッピングキャッシュ６と同様に、メインメモリ７より高速アクセスが可能なメモリ（例えばＭＲＡＭ）で構成される。
【００５０】
図１１は第３の実施形態におけるＴＬＢ３、ページテーブル１０、各キャッシュメモリ４〜６およびメインメモリ７のアクセス優先度を示す図である。図示のように、ＣＰＵ２は、ＴＬＢ３、Ｌ１キャッシュ４、Ｌ２キャッシュ５、ページテーブル１０、ページマッピングキャッシュ６、およびメインメモリ７の順にアクセスする。
【００５１】
ＣＰＵ２の読み出し要求アドレスがＴＬＢ３にヒットしなかったときに、メインメモリ７にアクセスする前に、ページテーブル１０内を検索し、ページテーブル１０にヒットすれば、メインメモリ７にアクセスせずにアドレス変換情報をロードすることができ、Ｌ１キャッシュ４、Ｌ２キャッシュ５に該当データがなかった場合、対応データをページマッピングキャッシュ６から取り出す。これにより、メインメモリ７へのアクセス頻度を減らすことができる。
【００５２】
ページテーブル１０は、上述したように、基本的にはＴＬＢ３と同じ内部構成を有し、ページマッピングキャッシュ６に直接アクセスするためのキャッシュアドレス情報を有するのが望ましい。また、ページマッピングキャッシュ６のエントリ数が多い場合には、ページテーブル１０をセットアソシアティブ構成にするのが望ましい。また、ＣＰＵ２が実行するタスクを切り替えたときに、ページテーブル１０全体を無効化して更新しなくて済むように、各タスクごとにアドレス空間ＩＤ（ＡＳＩＤ）を割り振ってアドレス変換情報等を管理してもよい。
【００５３】
図１２は第３の実施形態によるＣＰＵ２が読み出し要求アドレスを発行する場合の処理手順を示すフローチャートである。ステップＳ３１〜Ｓ３６は、図５のステップＳ１〜Ｓ６と同様である。ステップＳ３１，Ｓ３２は第１処理に対応する。ステップＳ３３〜Ｓ３６は第２処理に対応する。
【００５４】
ステップＳ３５でＬ２キャッシュ５にミスしたと判定されると、ＣＰＵ２の読み出し要求アドレスがページテーブル１０にヒットしたか否かを判定する（ステップＳ３７）。ヒットしたと判定されると、ページマッピングキャッシュ６から該当するデータを読み出してＣＰＵ２に転送するとともに、読み出し要求アドレスに対応するキャッシュライン分のデータをＬ１キャッシュ４とＬ２キャッシュ５に転送する（ステップＳ３８）。ステップＳ３７，Ｓ３８は第３処理に対応する。
【００５５】
ステップＳ３７でミスしたと判定されると、ＣＰＵ２が発行した読み出し要求アドレスに対応するデータをメインメモリ７から読み出してＣＰＵ２に転送するとともに、このアドレスに対応するページ分のデータをページマッピングキャッシュ６に転送し、かつこのアドレスに対応するキャッシュライン分のデータをＬ１キャッシュ４とＬ２キャッシュ５に転送し、かつＴＬＢ３とページテーブル１０を更新する（ステップＳ３９）。ステップＳ３９は第４処理に対応する。
【００５６】
このように、第３の実施形態では、ＴＬＢ３とは別個にページテーブル１０を設けるため、ページマッピングキャッシュ６のエントリ数が増えて、アドレス変換情報等をＴＬＢ３に格納しきれなくなっても、ページテーブル１０に格納でき、ページマッピングキャッシュ６の大容量化に対応可能となる。
【００５７】
（第４の実施形態）
上述した第１〜第３の実施形態では、ＣＰＵ２はまずＴＬＢ３にアクセスして、その後に各キャッシュメモリ４〜６とメインメモリ７に順にアクセスしている。このため、ＴＬＢ３が大容量化すると、ＴＬＢ３内の検索に時間がかかり、Ｌ１キャッシュ４に迅速にアクセスできなくなる。そこで、以下の第４の実施形態では、ＣＰＵ２がＴＬＢ３よりも先にＬ１キャッシュ４にアクセスするようにしたものである。
【００５８】
図１３は第４の実施形態に係るプロセッサシステム１の概略構成を示すブロック図、図１４は第４の実施形態におけるＴＬＢ３、各キャッシュメモリおよびメインメモリ７のアクセス優先度を示す図である。本実施形態では、図６および図７と比較して、Ｌ１キャッシュ４とＴＬＢ３を入れ替えている。
【００５９】
ＣＰＵ２は、読み出し要求アドレスを発行したときに、まずはＬ１キャッシュ４にアクセスする。図１３のＬ１キャッシュ４は、ＣＰＵ２が発行した仮想アドレスからなる読み出し要求アドレスで直接アクセス可能とされている。Ｌ１キャッシュ４にミスした場合に、ＣＰＵ２はＴＬＢ３にアクセスすることになる。
【００６０】
本実施形態のように、Ｌ１キャッシュ４に仮想アドレスでアクセスする場合、ＣＰＵ２がタスクを切り替えると、Ｌ１キャッシュ４全体を無効化（フラッシュ）しなければならない。ただし、Ｌ１キャッシュ４に格納されているデータは、Ｌ２キャッシュ５とページマッピングキャッシュ６のどちらかに格納されているため、メインメモリ７にアクセスする必要はほとんどなく、高速にアドレス空間の切替を行うことができる。
【００６１】
図１５は第４の実施形態によるＣＰＵ２が読み出し要求アドレスを発行する場合の処理手順を示すフローチャートである。図１５のフローチャートは図９のフローチャートと比べて、図９のステップＳ１１とＳ１３の判定処理を入れ替えた構成になっている。すなわち、ＣＰＵ２が発行した読み出し要求アドレスがＬ１キャッシュ４にヒットするか否かを判定し（ステップＳ４１）、ヒットすれば、Ｌ１キャッシュ４から読み出したデータをＣＰＵ２に転送する（ステップＳ４２）。ヒットしなければ、ＣＰＵ２が発行した読み出し要求アドレスがＴＬＢ３にヒットするか否かを判定し（ステップＳ４３）、ヒットしなければ、メインメモリ７内のページテーブルエントリからアドレス変換情報をロードしてＴＬＢ３内のデータを更新する（ステップＳ４４）。ステップＳ４１，Ｓ４２は第１処理に対応する。ステップＳ４３，Ｓ４４は第２処理に対応する。
【００６２】
ステップＳ４３で格納されていると判定された場合、あるいはステップＳ４４の処理が終了した場合は、ＣＰＵ２が発行した読み出し要求アドレスに対応するデータがページマッピングキャッシュ６に格納されているか否かをＴＬＢ３が保持するフラグ情報に基づいて判定する（ステップＳ４５）。その後は、図９のステップＳ１７以降と同様の処理が行われる（ステップＳ４６〜Ｓ５３）。ステップＳ４５，Ｓ４６は第３処理に対応する。ステップＳ４７，Ｓ４８は第４処理に対応する。ステップＳ４９は第５処理に対応する。ステップＳ５０〜Ｓ５２は第６処理に対応する。ステップＳ５３は第７処理に対応する。
【００６３】
本実施形態においても、ＴＬＢ３にアドレス空間識別ＩＤ（ＡＳＩＤ）を設けて、各タスクごとにアドレス変換情報等を管理してもよい。
【００６４】
図１３は、Ｌ２キャッシュ５とページマッピングキャッシュ６が並列化している例を示したが、図１や図１０のように、Ｌ２キャッシュ５とページマッピングキャッシュ６が並列化していない場合において、Ｌ１キャッシュ４とＴＬＢ３のアクセス順序を入れ替えてもよい。
【００６５】
このように、第４の実施形態では、ＴＬＢ３よりも先にＬ１キャッシュ４にアクセスするようにしたため、ＴＬＢ３が大容量化してＴＬＢ３のアクセスに時間がかかる場合でも、Ｌ１キャッシュ４に迅速にアクセスできる。
【００６６】
なお、Ｌ１キャッシュ４だけでなく、Ｌ２キャッシュ５も、ＴＬＢ３より先にアクセスするようにしてもよい。
【００６７】
上述した実施形態では、２階層のキャッシュメモリであるＬ１キャッシュ４とＬ２キャッシュ５を設ける例を説明したが、３階層以上のキャッシュメモリを設けてもよい。ｋ（ｋ＝１からｎまでのすべての整数、ｎは１以上の整数）次のキャッシュメモリを設ける場合、図５の処理では、すべてのキャッシュメモリでミスした場合に、ページマッピングキャッシュ６にアクセスすることになる。また、図９の処理では、ステップＳ１５でミスした後、Ｌ２キャッシュ５以上の高次のキャッシュメモリすべてでミスした場合に、ステップＳ１９以降の処理を行うことになる。また、図１２の処理では、すべてのキャッシュメモリでミスした後に、ステップＳ３７の処理を行うことになる。また、図１５の処理では、ステップＳ４５でミスした後、Ｌ２キャッシュ５以上の高次のキャッシュメモリすべてでミス場合に、ステップＳ４９以降の処理を行うことになる。
【００６８】
上述した各実施形態では、Ｌ２キャッシュ５７のメモリセルがＭＲＡＭセルの例を説明したが、他の不揮発性メモリ（例えば、ＲｅＲＡＭメモリセル、Ｐｈａｓｅ ｃｈａｎｇｅ ＲＡＭ（ＰＲＡＭやＰＣＭ）メモリセル、ＮＡＮＤフラッシュメモリセル）で構成されていてもよい。また、上述した各実施形態において、メモリ制御回路１の一部あるいは全部は、Ｌ１キャッシュ４６またはＬ２キャッシュ５７に内蔵してもよい。さらに、上述した各実施形態において、特定のメモリに対する電源を遮断する際には、特定のメモリ以外のｎ次（ｎは２以上の整数）のキャッシュメモリとメインメモリ７８のうち、電源を遮断可能なメモリ内の一部または全部をすべて一括で遮断してもよい。あるいは、特定のメモリを含めてｎ次のキャッシュメモリのうち不揮発性メモリのそれぞれについて、個別に電源遮断のタイミングを制御してもよい。
【００６９】
上述した実施形態で説明したプロセッサシステム１の少なくとも一部は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合には、プロセッサシステム１の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやＣＤ−ＲＯＭ等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。
【００７０】
また、プロセッサシステム１の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線（無線通信も含む）を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
【００７１】
本発明の態様は、上述した個々の実施形態に限定されるものではなく、当業者が想到しうる種々の変形も含むものであり、本発明の効果も上述した内容に限定されない。すなわち、特許請求の範囲に規定された内容およびその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲で種々の追加、変更および部分的削除が可能である。
【符号の説明】
【００７２】
１  プロセッサシステム、２  ＣＰＵ、３  ＴＬＢ、４  Ｌ１キャッシュ、５  Ｌ２キャッシュ、６  ページマッピングキャッシュ、７  メインメモリ、９  メモリシステム、１０  ページテーブル
【図１】
2015060571.tif 000003
【図２】
2015060571.tif 000004
【図３】
2015060571.tif 000005
【図４】
2015060571.tif 000006
【図５】
2015060571.tif 000007
【図６】
2015060571.tif 000008
【図７】
2015060571.tif 000009
【図８】
2015060571.tif 000010
【図９】
2015060571.tif 000011
【図１０】
2015060571.tif 000012
【図１１】
2015060571.tif 000013
【図１２】
2015060571.tif 000014
【図１３】
2015060571.tif 000015
【図１４】
2015060571.tif 000016
【図１５】
2015060571.tif 000017