(57)【要約】  【課題】  メモリの入れ替えに要するメモリ転送を削減でき且つ消費電力を低減できるようにする。  【解決手段】  ページ１４は、それぞれが例えば１６キロバイトに分割されてなり、各ページ１４にはアドレス等の情報を保持するタグ１５がそれぞれ対応して設けられている。ここでは、４つのページ１４をまとめて１つのバンク１６を構成し、該バンク１６を４つ分設けた４バンク構成としている。ページ１４ごとにタグ１５を持たせ、プログラム又はデータの入れ替えをプログラムの処理フローに合わせてスケジューリングし且つ実行する。処理フローに合わせて事前にメモリ入れ替えを行なうことにより、大規模プログラム又はデータを高速にアクセス可能となる。【選択図】      図２
2004310739.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
前記プロセッサによりアクセスされる第１の記憶部と、
前記第１の記憶部と比べて前記プロセッサによる高速なアクセスが可能な第２の記憶部が、キャッシュメモリを構成するラインの記憶容量よりも大きい記憶容量ごとに分割されてなる複数のページ記憶部と、
前記第１の記憶部におけるアドレス値を示すタグ情報及び入れ替え優先度を示す優先度情報を前記各ページ記憶部に付加するタグと、
前記プロセッサからのアクセス要求を受け、前記第１の記憶部におけるアドレス値と前記タグが保持するタグ情報とを比較するタグ比較器と、
前記各ページ記憶部の内容を入れ替える入替制御部とを備えていることを特徴とする半導体装置。
【請求項２】
前記プロセッサが実行する応用プログラムの機能ごとに、前記各ページ記憶部を割り当てる割り当て数を管理する分配管理部をさらに備えていることを特徴とする請求項１に記載の半導体装置。
【請求項３】
前記複数のページ記憶部は、それぞれが所定数ごとにまとめられて複数のバンクメモリを構成しており、
前記複数のバンクメモリを管理するバンク制御部をさらに備えていることを特徴とする請求項１又は２に記載の半導体装置。
【請求項４】
前記入替制御部は、前記ページ記憶部に対するアクセス要求を受け、要求されたページ記憶部のアドレス情報が前記タグに保持されているか否かを判定し、該アドレス情報が保持されていない場合には、前記複数のページ記憶部のなかから前記第１の記憶部との間で情報転送量が少ないページ記憶部を選択し、選択されたページ記憶部を解放し、解放されたページ記憶部に要求されたアドレスのデータを読み込むことを特徴とする請求項３に記載の半導体装置。
【請求項５】
前記入替制御部は、前記ページ記憶部に対するアクセス要求を受け、要求されたページ記憶部のアドレス情報が前記タグに保持されているか否かを判定し、該アドレス情報が保持されていない場合には、あらかじめ指定された入れ替え情報に基づいて前記複数のページ記憶部のなかから１つのページ記憶部を選択し、選択されたページ記憶部を解放し、解放されたページ記憶部に要求されたアドレスのデータを読み込むことを特徴とする請求項３に記載の半導体装置。
【請求項６】
前記入替制御部は、前記ページ記憶部に対するアクセス要求を受け、要求されたページ記憶部のアドレス情報が前記タグに保持されているか否かを判定し、該アドレス情報が保持されていない場合には、前記複数のページ記憶部のなかからアクセス周期が長いページ記憶部を選択し、選択されたページ記憶部を解放し、解放されたページ記憶部に要求されたアドレスのデータを読み込むことを特徴とする請求項３に記載の半導体装置。
【請求項７】
前記入替制御部は、実行される応用プログラムが変更された場合に、動作する応用プログラムに空きメモリを均等となるように再配分することを特徴とする請求項４〜６のうちのいずれか１項に記載の半導体装置。
【請求項８】
前記入替制御部は、実行される応用プログラムが変更された場合に、動作する応用プログラムにあらかじめ規定され且つ前記タグに保持された前記優先度情報に従って空きメモリを再配分することを特徴とする請求項４〜６のうちのいずれか１項に記載の半導体装置。
【請求項９】
前記入替制御部は、実行される応用プログラムが変更された場合に、動作する応用プログラムのうち動作周期が短い応用プログラムから順に空きメモリを再配分することを特徴とする請求項４〜６のうちのいずれか１項に記載の半導体装置。
【請求項１０】
前記入替制御部は、実行される応用プログラムが変更された場合に、動作する応用プログラムのうち単位時間当たりの転送量が多い応用プログラムから順に空きメモリを再配分することを特徴とする請求項４〜６のうちのいずれか１項に記載の半導体装置。
【請求項１１】
前記入替制御部は、新たなメモリ確保要求を受けた場合に、動作中の応用プログラムに割り当てられた空きメモリのうち、前記各ページ記憶部又は前記各バンクメモリと前記第１の記憶部との間の情報転送量が少ない空きメモリを選択して解放することを特徴とする請求項７〜１０のうちのいずれか１項に記載の半導体装置。
【請求項１２】
前記入替制御部は、応用プログラムの動作周期の１周期分でページ記憶部の確保及び解放を行ない、その周期中は空きメモリの確保を行なわず、１周期後に割り振られた空きメモリを解放できる状態とすることを特徴とする請求項７〜１０のうちのいずれか１項に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、広義のプロセッサにメモリ入れ替え機構を有する半導体装置に関する。
【背景技術】
【０００２】
従来のメモリ搭載プロセッサは、搭載するプログラムの大規模化が直接にメモリ搭載量の増加につながるため、コストが増加し且つ動作速度が低下するという問題がある。
【０００３】
これに対し、メモリの入れ替え機構を設けることにより、主記憶メモリとして動作は低速であるが安価な大規模メモリで構成し、プロセッサには小容量のメモリを搭載する構成が提案されている。この構成において、小容量メモリと主記憶メモリとの間でメモリの入れ替えを行なうことによりプログラムを実行する。このような従来のメモリ入れ替え機構には、いわゆるキャッシュメモリを用いるのが主流となっている。
【０００４】
以下、従来の基本的なキャッシュメモリについて説明する。
【０００５】
プロセッサによる命令又はデータを参照する際のメモリ参照は、単位時間で見た場合には局所的なメモリ領域に集中する。これをプログラムの参照局所性という。この参照局所性を利用し、メモリ参照が頻繁に集中する領域を主記憶メモリよりも小容量で且つ高速動作可能なバッファメモリに常駐させることにより、メモリアクセスを高速化する手法がある。この小容量のバッファメモリは、一般にキャッシュメモリと呼ばれ、頻繁に参照されるデータをキャッシュメモリに常駐させる際のデータ転送はハードウェアにより実行される。
【０００６】
以下、従来のプロセッサにキャッシュメモリを組み合わせた半導体装置について図２７を参照しながら説明する。
【０００７】
図２７に示すように、従来のキャッシュメモリを有する半導体装置は、プロセッサ２０１と、該プロセッサ２０１が低速でアクセス可能な大容量の主記憶メモリ２０２と、該主記憶メモリ２０２との間にＤＭＡコントローラ２０３を介して接続され、プロセッサ２０１にアクセスされるキャッシュメモリ２０４とを有している。
【０００８】
キャッシュメモリ２０４は、それぞれが数十バイト程度のラインＡ、Ｂ、Ｃ、Ｄに分割されてなり、各ラインＡ〜Ｄにはアドレス等の情報を保持するタグ２０５がそれぞれ対応して設けられている。通常、ラインには複数の命令又はデータが格納されている。
【０００９】
また、プロセッサ２０１がアクセス要求を行なったアドレスと、各タグ２０５が保持するアドレスとを比較し、一致しない場合には、ＤＭＡコントローラ２０３にアドレスデータの入れ替えを判定結果として要求するタグ比較器２０６を有している。
【００１０】
以下、このような構成を採る従来の半導体装置の動作を簡単に説明する。
【００１１】
（ステップ１）
プロセッサ２０１がメモリアクセス要求を発行する。
【００１２】
（ステップ２）
プロセッサ２０１に要求されたメモリアドレスがタグ比較器２０６に通知され、タグ比較器２０６は、タグ２０５のアドレス中に要求アドレスが含まれているか否かを比較する。
【００１３】
（ステップ３）
タグ２０５のいずれかに要求アドレスが含まれている場合は、プロセッサ２０１はそのままキャッシュメモリ２０４にアクセスする。この場合は、アクセスが成立して終了となり、ステップ４以降は実行されない。このように、要求されたアドレスがキャッシュメモリ２０４に保持されている場合をキャッシュヒット、又は単にヒットと呼ぶ。また、キャッシュヒット率はプログラムの処理効率に影響し、キャッシュヒット率が高ければメモリへの平均アクセス時間が短縮されるため、処理効率は向上する。
【００１４】
（ステップ４）
タグ２０５に要求アドレスが含まれていなかった場合は、タグ比較器２０６は後述する優先順位に基づいて、キャッシュメモリ２０４から適当な１ページを選択し、書き換えを行なうための判定結果情報を生成する。因みに、アドレスが保持されていなかった場合をキャッシュミスヒット、または単にミスヒットと呼ぶ。ここで、タグの比較を行なう際の優先順位決定アルゴリズムには、ＬＲＵ（Least Recently Used)が一般に知られている。この方式では、最も遠い過去に参照されたラインＡ〜Ｄを置換対象に選択する。この他にも、ＦＩＦＯ(First In First Out）方式や、Ｒａｎｄｏｍ方式等がある。また、優先度の決定基準となる情報をプロセッサ２０１の命令コード内に埋め込み、その情報を元に優先度を決定する方法もある（例えば、特許文献１参照。）。
【００１５】
（ステップ５）
タグ比較器２０６が生成した判定結果情報はＤＭＡコントローラ２０３に通知され、主記憶メモリ２０２から要求アドレスを含む１ライン分のデータをキャッシュメモリ２０４に転送する。
【００１６】
（ステップ６）
キャッシュメモリ２０４へのデータ転送が完了した後、プロセッサ２０１はキャッシュメモリ２０４に対してアクセスを行なう。
【特許文献１】特開平６−５９９７７号公報（第１図）
【発明の開示】
【発明が解決しようとする課題】
【００１７】
しかしながら、前記従来の半導体装置は、回路規模が増大しやすいという問題がある。キャッシュメモリ２０４はアドレス等の情報を保持するタグ２０５が、数十バイト単位のラインＡ〜Ｄのそれぞれに対応して設けられる。また、タグ２０５は、図２７においては４個であるが、大規模集積回路の場合には１０００個程度にもなり、ＳＲＡＭ(Static Random Access Memory）と比べて、周辺回路の規模が大幅に増大する。さらに、タグ２０５の数だけのタグ比較器２０６が常時動作しており、面積の増大と併せて消費電力も大幅に増大する。
【００１８】
また、キャッシュメモリ２０４を用いた場合は、キャッシュヒット率の予測が困難であり、あるプログラムを実行するとそのプログラムの処理内容によってキャッシュヒット率が変動するため、処理効率の劣化が予測できない。
【００１９】
これらの問題は、組み込み系のプロセッサで且つリアルタイム性を保証する場合や、モバイル機器等で低消費電力化が必須である分野の開発等において顕著となる。
【００２０】
本発明は、前記従来の問題を解決し、メモリの入れ替えに要するメモリ転送を削減でき且つ消費電力を低減できるようにすることを目的とする。
【課題を解決するための手段】
【００２１】
前記の目的を達成するため、本発明は、通常のキャッシュメモリが数十バイト程度の単位で、いわゆるラインを構成するのに対し、数キロバイト程度の単位でライン（以下、本発明のラインをページと呼ぶ。）を構成することにより、回路規模を削減する。また、通常のラインよりも大きい記憶容量を持つページを用いるため、該ページに比較的に理解し易い処理機能、例えばモジュール、タスク又はスレッド等のオペレーションシステム（ＯＳ）が管理できる実行単位で格納することができるので、プログラムの処理フローに合わせたページのメモリ入れ替えスケジューリングの設計が容易となる。以下、ＯＳが管理できる実行単位を便宜上スレッドと呼ぶ。
【００２２】
さらに、ページのメモリ入れ替え時に発生するメモリ入れ替え対象の優先順位の選択を、対象とするページのメモリ入れ替え時に発生する情報転送量又はメモリ入れ替え周期の値を優先度の基準として用いることにより、入れ替え時の情報転送量を抑制し、メモリ入れ替え時に消費する電力を抑えることが可能となる。
【００２３】
具体的に、本発明に係る半導体装置は、プロセッサと、該プロセッサによりアクセスされる第１の記憶部と、該第１の記憶部と比べてプロセッサによる高速なアクセスが可能な第２の記憶部がキャッシュメモリを構成するラインの記憶容量よりも大きい記憶容量ごとに分割されてなる複数のページ記憶部と、第１の記憶部におけるアドレス値を示すタグ情報及び入れ替え優先度を示す優先度情報を各ページ記憶部に付加するタグと、プロセッサからのアクセス要求を受け、第１の記憶部におけるアドレス値とタグが保持するタグ情報とを比較するタグ比較器と、各ページ記憶部の内容を入れ替える入替制御部とを備えている。
【００２４】
本発明の半導体装置によると、第１の記憶部と比べてプロセッサによる高速なアクセスが可能な第２の記憶部がキャッシュメモリを構成するラインの記憶容量よりも大きい記憶容量ごとに分割されてなる複数のページ記憶部を備えているため、メモリの入れ替えに要するメモリ転送量を削減できる。その上、ページ記憶部の設定個数は従来のキャッシュメモリ（ライン）の設定個数よりも少なくなるため、各ページ記憶部と対応して設けられるタグの個数をも必然的に減らすことができるので、回路規模を削減できるようになり、その結果、消費電力を低減することができる。
【００２５】
本発明の半導体装置は、プロセッサが実行する応用プログラムの機能ごとに、各ページ記憶部に対して割り当てられる割り当て数を管理する分配管理部をさらに備えていることが好ましい。
【００２６】
本発明の半導体装置において、複数のページ記憶部は、それぞれが所定数ごとにまとめられて複数のバンクメモリを構成しており、複数のバンクメモリを管理するバンク制御部をさらに備えていることが好ましい。
【００２７】
本発明の半導体装置は、複数のバンクメモリを制御するバンク制御部を備えている場合に、入替制御部は、ページ記憶部に対するアクセス要求を受け、要求されたページ記憶部のアドレス情報がタグに保持されているか否かを判定し、該アドレス情報が保持されていない場合には、複数のページ記憶部のなかから第１の記憶部との間で情報転送量が少ないページ記憶部を選択し、選択されたページ記憶部を解放し、解放されたページ記憶部に要求されたアドレスのデータを読み込むことが好ましい。
【００２８】
また、この場合に、入替制御部は、ページ記憶部に対するアクセス要求を受け、要求されたページ記憶部のアドレス情報がタグに保持されているか否かを判定し、該アドレス情報が保持されていない場合には、あらかじめ指定された入れ替え情報に基づいて複数のページ記憶部のなかから１つのページ記憶部を選択し、選択されたページ記憶部を解放し、解放されたページ記憶部に要求されたアドレスのデータを読み込むことが好ましい。
【００２９】
また、この場合に、入替制御部は、ページ記憶部に対するアクセス要求を受け、要求されたページ記憶部のアドレス情報がタグに保持されているか否かを判定し、該アドレス情報が保持されていない場合には、複数のページ記憶部のなかからアクセス周期が長いページ記憶部を選択し、選択されたページ記憶部を解放し、解放されたページ記憶部に要求されたアドレスのデータを読み込むことが好ましい。
【００３０】
この場合に、入替制御部は、実行される応用プログラムが変更された場合に、動作する応用プログラムに空きメモリを均等となるように再配分することが好ましい。
【００３１】
また、この場合に、入替制御部は、実行される応用プログラムが変更された場合に、動作する応用プログラムにあらかじめ規定され且つタグに保持された優先度情報に従って空きメモリを再配分することが好ましい。
【００３２】
また、この場合に、入替制御部は、実行される応用プログラムが変更された場合に、動作する応用プログラムのうち動作周期が短い応用プログラムから順に空きメモリを再配分することが好ましい。
【００３３】
また、この場合に、入替制御部は、実行される応用プログラムが変更された場合に、動作する応用プログラムのうち単位時間当たりの転送量が多い応用プログラムから順に空きメモリを再配分することが好ましい。
【００３４】
この場合に、入替制御部は、新たなメモリ確保要求を受けた場合に、動作中の応用プログラムに割り当てられた空きメモリのうち、各ページ記憶部又は各バンクメモリと第１の記憶部との間の情報転送量が少ない空きメモリを選択して解放することが好ましい。
【００３５】
また、この場合に、入替制御部は、応用プログラムの動作周期の１周期分でページ記憶部の確保及び解放を行ない、その周期中は空きメモリの確保を行なわず、１周期後に割り振られた空きメモリを解放できる状態とすることが好ましい。
【発明の効果】
【００３６】
本発明に係る半導体装置によると、メモリの入れ替えに要するメモリ転送量を削減することができる。その上、ページ記憶部の個数は従来のキャッシュメモリ（ライン）の個数よりも少なくなるため、各ページ記憶部と対応して設けられるタグの個数をも減らすことができるので、回路規模を削減でき、その結果、消費電力を低減することができる。
【発明を実施するための最良の形態】
【００３７】
まず、本発明の実施形態で用いる用語を説明する。
【００３８】
（１）擬似キャッシュ
数キロバイト単位で１つのページを構成する擬似的なキャッシュメモリであり、従来のそれぞれが数十バイト程度の容量を持つ複数のラインからなるキャッシュメモリとは異なる。また、高速アクセスが可能なメモリデバイスからなり、例えば、比較的小容量のＳＲＡＭ等により構成することが好ましい。
【００３９】
（２）ページ
ページは最も小さなメモリ領域単位である。擬似キャッシュメモリの実現に必要なタグは各ページに１つずつ割り当てられる。主記憶メモリ空間の擬似キャッシュ空間へのマッピングはページ単位で行なうことが可能である。
【００４０】
（３）バンク
バンクは複数のページにより構成されている。異なるバンクに対するプロセッサの命令又はデータへのアクセスと、主記憶メモリと擬似キャッシュとの間（以下、主記憶メモリ−擬似キャッシュ間と呼ぶ。）の転送（ＤＭＡ転送）は同時に実行することができる。しかしながら、１つのバンクに対してプロセッサからのアクセスと、主記憶メモリ−擬似キャッシュ間の転送のアクセスとが同時に発生した場合は、どちらかのアクセスが待たされるか又はキャンセルされるかのペナルティが発生する。
【００４１】
（４）メモリエリア
メモリエリアは、使用目的、すなわち格納対象である命令又はデータを領域単位と一致させた複数のバンクからなるメモリ領域である。
【００４２】
図１はページ、バンク及びメモリエリアの一構成例を示す。図１に示すように、メモリエリアは、例えば１バンク当たり２ページで構成されたメモリ領域であり、１ページ当たり１６Ｋｂｙｔｅの容量を持つ。なお、これらの構成は一例であり、図１に示す構成に限られないことはいうまでもない。
【００４３】
次に、本発明の一実施形態に係る半導体装置の構成について図面を参照しながら説明する。
【００４４】
図２は本発明の一実施形態に係る半導体装置のブロック構成を示している。図２に示すように、プログラムを実行するプロセッサ１１と、該プロセッサ１１が低速でアクセス可能な大容量の主記憶メモリ１２と、該主記憶メモリ１２との間でＤＭＡ(Direct Memery Access）コントローラ１３によりデータ転送され、プロセッサ１１にアクセスされる擬似キャッシュメモリからなる複数のページ１４とを有している。
【００４５】
ページ１４は、それぞれが例えば１６キロバイトに分割されてなり、各ページ１４にはアドレス等の情報を保持するタグ１５がそれぞれ対応して設けられている。ここでは、４つのページ１４をまとめて１つのバンク１６を構成し、さらに４つのバンク１６を設けた４バンク構成としている。
【００４６】
また、プロセッサ１１がアクセス要求を行なったアドレスと、各タグ１５が保持するアドレスとを比較し、一致しない場合には、プロセッサ１１にアドレスデータの入れ替えを判定結果として要求するタグ比較器１７を有している。
【００４７】
プロセッサ１１には、各ページ１４の内容を入れ替えるアクセス制御を行なう入替制御部及びバンク管理部としての擬似キャッシュマネージャ１８が接続されている。
【００４８】
擬似キャッシュマネージャ１８は、プログラムであって、擬似キャッシュメモリの入れ替えを管理して実行するメモリ管理機能と、バンク１６及びページ１４における未使用メモリ領域を利用してメモリ使用効率を向上させ、擬似キャッシュ−主記憶メモリ間の情報転送量を抑制するエクストラメモリ管理機能とを備える。さらに、擬似キャッシュマネージャ１８は、プロセッサ１１が実行する応用プログラムの機能ごとに、各ページ１４を割り当てる割り当て数を管理する分配管理部としての機能をも備えている。なお、メモリ管理機能及びエクストラメモリ管理機能は後述する。
【００４９】
以下、前記のように構成された半導体装置の動作を説明する。
【００５０】
（ステップ１）
プロセッサ１１がメモリアクセス要求を発行する。
【００５１】
（ステップ２）
プロセッサ１１に要求されたメモリアドレスがタグ比較器１７に通知され、タグ比較器１７は、各タグ１５が保持するアドレス中に要求アドレスが含まれているか否かを比較する。
【００５２】
（ステップ３）
タグ１５のいずれかに要求アドレスが含まれている場合は、プロセッサ１１は要求アドレスを格納したタグ１５と対応するページ１４にアクセスする。この場合は、アクセスが成立して終了となり、従って、ステップ４以降は実行されない。
【００５３】
（ステップ４）
タグ１５のいずれにも要求アドレスが含まれていなかった場合は、タグ比較器１７はアドレス不一致という判定結果情報を生成してプロセッサ１１に出力する。
【００５４】
（ステップ５）
プロセッサ１１は、タグ比較器１７からの判定結果情報に基づいて、擬似キャッシュマネージャ１８が保持するプログラムによってＤＭＡコントローラ１３にデータの転送を指示する。プロセッサ１１からの指示を受けたＤＭＡコントローラ１３は、要求アドレスが指す１ページ分のデータを主記憶メモリ１２からページ１４のいずれかに転送する。
【００５５】
（ステップ６）
ＤＭＡコントローラ１３によるページ１４へのデータ転送が完了した後、プロセッサ１１は、データが転送されたページ１４に対してアクセスを行なう。
【００５６】
以上のようにして、プロセッサ１１のページ１４に対するアクセスは実行される。
【００５７】
以下、擬似キャッシュマネージャ１８が有するメモリ管理機能及びエクストラメモリ管理機能を説明する。
【００５８】
（メモリ管理機能）
まず、バンク１６及びページ１４に対するメモリ管理機能を説明する。
【００５９】
１）バンク管理機能
メモリの獲得及びメモリの解放はバンク単位で行なう。すなわち、応用プログラムからのバンク確保要求によりバンク１６の獲得を行ない、バンク解放要求によりバンク１６の解放を行なう。
【００６０】
確保されたバンク１６には４つのバンク１６を識別するバンク指定子が割り当てられ、バンク１６に対する操作はバンク指定子を指定して行なう。１つのバンク確保要求で複数のバンク１６を確保することが可能であり、この場合にはバンク指定子はそれぞれのバンク１６に１つずつ割り当てられる。この点は、後述するページ指定子とは異なる。また、確保したバンク１６に対して、バンク情報要求を行なうことにより、要求されたバンク１６の内容（バンク情報）を取得することができる。バンク情報には、バンク属性、バンク状態及びＦＲＥＥページ数がある。ここで、バンク属性はバンク１６の確保（獲得）時に設定される属性であり、バンク状態は下記のバンク状態を表わす情報である。また、ＦＲＥＥページ数は、バンク１６を構成するページ１４のうち未だ確保されていないページ１４の数である。
【００６１】
バンク状態には、ＦＲＥＥ（フリー）状態、ＡＬＬＯＣ（アロック）状態及びＡＬＬＯＣＤＩＲＴＹ（アロックダーティ）状態の３状態がある。
【００６２】
ＦＲＥＥ状態は、スレッドに確保されていないバンク１６の状態であり、ここでは、ＦＲＥＥバンクと呼ぶ。バンク１６がスレッドにより確保されると、ＡＬＬＯＣ状態に遷移する。このＡＬＬＯＣ状態は内部状態であり、外部から確認することはできない。
【００６３】
ＡＬＬＯＣ状態は、スレッドによって確保され、且つバンク１６を構成するページ１４の状態がすべてＦＲＥＥ状態であるバンクの状態であり、ＡＬＬＯＣバンクと呼ぶ。ＡＬＬＯＣバンクからページ１４が確保されるとＡＬＬＯＣＤＩＲＴＹ状態に遷移し、バンク１６の解放によってＦＲＥＥ状態に遷移する。
【００６４】
ＡＬＬＯＣＤＩＲＴＹ状態は、スレッドによって確保され、且つバンク１６を構成するページ１４のうち少なくとも１つのページの状態がＦＲＥＥ状態ではないバンク１６の状態をいう。この状態のバンク１６をＡＬＬＯＣＤＩＲＴＹバンクと呼び、バンク１６を構成するページ１４がすべてＦＲＥＥ状態となった場合にＡＬＬＯＣ状態に遷移する。なお、ＡＬＬＯＣＤＩＲＴＹ状態のバンク１６に対してバンクの解放を行なうとエラーとなる。
【００６５】
２）ページ
スレッドからのページ１４に対するマッピング要求によりページ１４のマッピングを行ない、また、ページ１４のアンマッピング要求によりページ１４のアンマッピングを行なう。
【００６６】
ページ１４に対するマッピングは、主記憶メモリ１２の擬似キャッシュメモリ空間（領域）へのマッピングの有効化であり、マッピングが行なわれた擬似キャッシュメモリ空間を擬似キャッシュメモリページと呼ぶ。ページのマッピング時に行なう処理の詳細は、バンク１６からのページ１４の確保と、主記憶メモリ１２の内容のページ１４への転送（プリロード）と、タグ１５の有効化とである。
【００６７】
ページ１４に対するアンマッピングは、主記憶メモリ１２の擬似キャッシュメモリ空間へのマッピングの無効化であり、ページのアンマッピング時に行なう処理の詳細は、タグ１５の無効化と、ページ１４の内容の主記憶メモリ１２への転送（ライトバック）と、バンク１６へのページ１４の解放とである。
【００６８】
プリロード及びライトバックは、ページ１４と主記憶メモリ１２との間の同期を取る処理であり、ページのマッピング時とページのアンマッピング時にのみ行なわれるため、ページのマッピング後に主記憶メモリ１２の内容を書き換えた場合には、同期処理（プリロード）は行なわない。なお、プリロード及びライトバックはＤＭＡ転送により行なう。
【００６９】
タグ１５は、前述したように、各ページ１４に１つずつ割り当てられている。４つのタグ１５のうちの１つに主記憶メモリアドレスを設定してタグを有効化すると、タグ１５と対応するページ１４を用いて主記憶メモリ１２と擬似キャッシュメモリとの対応付けが行なわれ、主記憶メモリアドレスを擬似キャッシュメモリアドレスとして使用することが可能となる。これ以後は、主記憶メモリアドレスと同一である擬似キャッシュメモリアドレスへのアクセスは、擬似キャッシュメモリアドレスと対応するタグ１５を持つページ１４へのアクセスとなる。ページ１４へのアクセスは、主記憶メモリ１２に対するアクセスよりも高速であるため、スレッドをより高速に実行することができる。
【００７０】
マッピングが行なわれた擬似キャッシュメモリページには、ページ指定子が割り当てられる。ページ指定子が割り当てられた後は、擬似キャッシュメモリページに対する操作はページ指定子を指定して行なう。ここで、ページのマッピング時には複数のページ１４を確保することが可能であり、この場合には、擬似キャッシュメモリページは複数のページ１４から構成されることになる。但し、バンク指定子とは異なり、割り当てられるページ指定子は１つである。
【００７１】
ページ指定子は、メモリ管理機能の管理領域からアドレスにより参照されているため、コピーはできない。また、既に擬似キャッシュメモリページに割り当てられているページ指定子を別の擬似キャッシュメモリページに割り当てる場合は、ページのアンマッピングを行なうだけでなく、擬似キャッシュメモリページの状態がＦＲＥＥ状態であること、すなわちライトバックが終了したことを確認した後に、他の擬似キャッシュメモリページに割り当てる必要がある。
【００７２】
ページ１４に対するマッピング要求によるマッピング時に、擬似キャッシュメモリページを構成するページ１４の属性を設定することができる。
【００７３】
ページ属性には、プリロード属性、ライトバック属性及びアクセス周期属性がある。
【００７４】
プリロード属性は、ページ１４に対するマッピング時に主記憶メモリ１２の内容を擬似キャッシュメモリページにプリロードする必要があるか否かを示す属性である。プリロードはＤＭＡ転送により行なわれる。
【００７５】
ライトバック属性は、ページ１４に対するアンマッピング時に擬似キャッシュメモリページを構成するページ１４の内容を主記憶メモリ１２にライトバックする必要があるか否かを示す属性である。ライトバックはＤＭＡ転送により行なわれる。
【００７６】
アクセス周期属性は、ページ１４に対するアクセス周期を示す属性であり、周期の長さの比較判定に用いる。なお、ページ属性は、ページ１４に対するマッピング時にのみ設定可能である。
【００７７】
また、ページ状態には、ＦＲＥＥ（フリー）状態、ＰＲＥ−ＡＬＬＯＣ（プレアロック）状態、ＡＬＬＯＣ（アロック）状態及びＰＲＥ−ＦＲＥＥ（プレフリー）状態の４つの状態がある。
【００７８】
ＦＲＥＥ状態は、スレッドによる確保がなされておらず擬似キャッシュメモリページを構成していないページの状態であり、ＦＲＥＥページと呼ぶ。このＦＲＥＥ状態は内部状態であり、外部から確認することはできない。ページ１４に対するマッピングが行なわれると、ＰＲＥ−ＡＬＬＯＣ状態に遷移する。
【００７９】
ＰＲＥ−ＡＬＬＯＣ状態は、ページ１４に対するマッピングは行なわれたが、プリロードが終了していない擬似キャッシュメモリページを構成するページの状態をいう。これをＰＲＥ−ＡＬＬＯＣページと呼び、プリロード属性が設定されていない場合は、タグ１５が有効とされた後にＡＬＬＯＣ状態に遷移する。プリロード属性が設定されている場合は、プリロードを行ない、タグ１５の有効化が行なわれた後に、ＡＬＬＯＣ状態に遷移する。
【００８０】
ＡＬＬＯＣ状態は、アクセス可能な擬似キャッシュメモリページを構成するページの状態をいう。これをＡＬＬＯＣページと呼び、ページ１４に対してアンマッピングが行なわれると、タグ１５が無効とされた後に、ＰＲＥ−ＦＲＥＥ状態に遷移する。
【００８１】
ＰＲＥ−ＦＲＥＥ状態は、ページ１４に対してアンマッピングが行なわれたが、未だライトバックが終了していない擬似キャッシュメモリページを構成するページの状態をいう。これをＰＲＥ−ＦＲＥＥページと呼び、ライトバック属性が設定されていない場合は、ページのアンマッピングが行われた後にＦＲＥＥ状態に遷移する。また、ライトバック属性が設定されている場合は、ライトバックを行ない、ページのアンマッピングが行なわれた後にＦＲＥＥ状態に遷移する。
【００８２】
ここで、擬似キャッシュミス例外を説明する。
【００８３】
マッピング要求によるページのマッピング時に、プリロード属性を設定しておくとプリロードが発生する。このプリロードが終了する前にページ内の擬似キャッシュメモリアドレスにアクセスするとキャッシュミス例外が発生する。キャッシュミス例外が発生した場合は、スレッドはプリロードが終了するまでその実行を停止する。なお、キャッシュミス例外を起こさないようにするには、擬似キャッシュメモリページを構成するページ状態がＡＬＬＯＣ状態であることを確認した後に、擬似キャッシュメモリページが保持するアドレスにアクセスするようにすれば良い。
【００８４】
本実施形態に係るメモリ管理機能は、キャッシュミスしたアドレスに対して新たなページをマッピングする機能を有していないため、スレッド自身がキャッシュミスしたアドレスに対するページのマッピングを行なう必要がある。
【００８５】
以下、本実施形態に係るメモリ管理機能の具体例として３種類のメモリ入れ替え方法を説明する。
【００８６】
（第１のメモリ入れ替え方法）
以下、前記のメモリ管理機能に情報転送量の重み付けを付与した第１のメモリ入れ替え方法について図面を参照しながら説明する。
【００８７】
図３は本実施形態に係る半導体装置の第１のメモリ入れ替え方法の処理フローを表わしている。
【００８８】
まず、図３に示すように、工程Ｓ０１において、スレッドからページのマッピング要求が発行されたとする。
【００８９】
次に、工程Ｓ０２において、工程Ｓ０１で要求されたデータのアドレスがページ１４の各タグ１５の中に存在する（保持されている）か否かをタグ比較器１７により判定する。ここで、タグ１５のいずれかに要求されたアドレスが存在すれば（タグの一致という。）、要求されたデータがページ１４に保持されていることになるため、メモリ入れ替えを行なわずに、最後の工程Ｓ０６に移り、該当するページ１４からデータを読み込んで処理を終了する。
【００９０】
また、タグ１５のいずれにも要求されたアドレスが存在しなければ（タグの不一致という。）、次の工程Ｓ０３において、ページ属性であるプリロード属性及びライトバック属性の有無を判定して、図４に示す判定表から情報転送量の重み付けを決定し、重みの値が最も小さいページ１４を選択する。例えば、図４に示すように、ライトバック属性及びプリロード属性を共に有さない場合の重みの値は０であり、いずれか一方の属性を有する場合の重みの値は１であり、両方の属性を有する場合の重みの値は２である。
【００９１】
次に、工程Ｓ０４において、工程Ｓ０３で選択されたページ１４がライトバック属性を有する場合は、ライトバックを要求するＤＭＡ転送設定をＤＭＡコントローラ１３に対して行ない、さらに、ページ状態をＰＲＥ−ＦＲＥＥ状態に遷移して、データ転送が終了するまで待つ。
【００９２】
次に、工程Ｓ０５において、工程Ｓ０４におけるデータ転送（情報転送）が終了した後、マッピング要求されたページ１４がプリロード属性を有する場合は、プリロードを要求するＤＭＡ転送設定をＤＭＡコントローラ１３に対して行ない、さらに、ＰＲＥ−ＡＬＬＯＣ状態に遷移して、データ転送が終了するまで待つ。
【００９３】
次に、工程Ｓ０６において、工程Ｓ０５におけるデータ転送が終了した後、ページ状態をＡＬＬＯＣ状態とし、該当するページ１４からデータを読み込んで処理を終了する。
【００９４】
以上説明したように、第１のメモリ入れ替え方法は、データの転送量（情報転送量）の多さを優先順位の判定基準としてページ１４を入れ替える。なお、ここでは、情報転送量を、プリロードの有無、及びライトバックの有無という簡単な情報で表現したが、具体的な転送バイト数、例えば３キロバイト等という数値を優先度の判定基準としても良い。この場合でもプリロードの情報転送量とライトバックの情報転送量との和が判定基準の値となる。
【００９５】
（第２のメモリ入れ替え方法）
次に、あらかじめ指定された入れ替え情報を用いる第２のメモリ入れ替え方法について図面を参照しながら説明する。
【００９６】
図５は本実施形態に係る半導体装置の第２のメモリ入れ替え方法の処理フローを表わしている。
【００９７】
あらかじめ擬似キャッシュマネージャ１８には、ページメモリ確保要求時に確保対象とするページ１４が指定されるように、ページ１４に対するマッピング要求を設定しておく。
【００９８】
図５に示すように、工程Ｓ１１において、スレッドからページのマッピング要求が発行されたとする。
【００９９】
次に、工程Ｓ１２において、工程Ｓ１１で要求されたデータのアドレスがページ１４の各タグ１５の中に存在するか否かをタグ比較器１７により判定する。ここで、タグ１５のいずれかに要求されたアドレスが存在してタグが一致すれば、、要求されたデータがページ１４に保持されていることと同義であるため、メモリ入れ替えを行なわずに、最後の工程Ｓ１６に移り、該当するページ１４からデータを読み込んで処理を終了する。
【０１００】
一方、タグが不一致である場合は、次の工程Ｓ１３において、マッピング要求と同時に指定されたページ１４を選択する。
【０１０１】
次に、工程Ｓ１４において、工程Ｓ１３で選択されたページ１４がライトバック属性を有する場合は、ライトバックを要求するＤＭＡ転送設定をＤＭＡコントローラ１３に対して行ない、さらに、ページ状態をＰＲＥ−ＦＲＥＥ状態に遷移して、データ転送が終了するまで待つ。
【０１０２】
次に、工程Ｓ１５において、工程Ｓ１４におけるデータ転送が終了した後、マッピング要求されたページ１４がプリロード属性を有する場合は、プリロードを要求するＤＭＡ転送設定をＤＭＡコントローラ１３に対して行ない、さらに、ＰＲＥ−ＡＬＬＯＣ状態に遷移して、データ転送が終了するまで待つ。
【０１０３】
次に、工程Ｓ１６において、工程Ｓ１５におけるデータ転送が終了した後、ページ状態をＡＬＬＯＣ状態とし、該当するページ１４からデータを読み込んで処理を終了する。
【０１０４】
以上説明したように、第２のメモリ入れ替え方法は、擬似キャッシュマネージャ１８に対して、ページ１４の入れ替え情報をあらかじめ設定し且つ管理することにより、ページ１４を入れ替える。
【０１０５】
なお、ここでは、転送要求時にページ１４を選択する構成としたが、これに限られず、入れ替え対象となるページ１４をあらかじめテーブルに登録しておき、適当なタイミングで該テーブルを参照するテーブル参照方式としてもよい。
【０１０６】
（第３のメモリ入れ替え方法）
次に、メモリ管理機能におけるページ属性のうちのアクセス周期属性を用いる第３のメモリ入れ替え方法について図面を参照しながら説明する。
【０１０７】
図６は本実施形態に係る半導体装置の第３のメモリ入れ替え方法の処理フローを表わしている。
【０１０８】
ここでは、各ページ１４におけるページ属性であるアクセス周期属性は、マッピング要求時に所定の周期情報が設定される。
【０１０９】
図６に示すように、工程Ｓ２１において、スレッドからページのマッピング要求が発行されたとする。
【０１１０】
次に、工程Ｓ２２において、工程Ｓ２１で要求されたデータのアドレスがページ１４の各タグ１５の中に存在するか否かをタグ比較器１７により判定する。ここで、タグ１５のいずれかに要求されたアドレスが存在してタグが一致すれば、、要求されたデータがページ１４に保持されていることと同義であるため、メモリ入れ替えを行なわずに、最後の工程Ｓ２６に移り、該当するページ１４からデータを読み込んで処理を終了する。
【０１１１】
一方、タグが不一致である場合は、次の工程Ｓ２３において、マッピングされているページ１４のうちアクセス周期属性に設定された周期が最も長いページ１４を選択する。
【０１１２】
次に、工程Ｓ２４において、工程Ｓ２３で選択されたページ１４がライトバック属性を有する場合は、ライトバックを要求するＤＭＡ転送設定をＤＭＡコントローラ１３に対して行ない、さらに、ページ状態をＰＲＥ−ＦＲＥＥ状態に遷移して、データ転送が終了するまで待つ。
【０１１３】
次に、工程Ｓ２５において、工程Ｓ２４におけるデータ転送が終了した後、マッピング要求されたページ１４がプリロード属性を有する場合は、プリロードを要求するＤＭＡ転送設定をＤＭＡコントローラ１３に対して行ない、さらに、ＰＲＥ−ＡＬＬＯＣ状態に遷移して、データ転送が終了するまで待つ。
【０１１４】
次に、工程Ｓ２６において、工程Ｓ２５におけるデータ転送が終了した後、ページ状態をＡＬＬＯＣ状態とし、該当するページ１４からデータを読み込んで処理を終了する。
【０１１５】
以上説明したように、第３のメモリ入れ替え方法は、ページ属性のうちアクセス周期属性に設定されている周期が最も長いページ１４を優先して入れ替える。
【０１１６】
（空きメモリの配分方法）
次に、応用プログラム（以下、単にアプリケーションと呼ぶ。）が変更された場合に、他のアプリケーションを含め各アプリケーションに対する空きメモリ（＝ＦＲＥＥバンク）の再配分方法について図面を参照しながら説明する。
【０１１７】
１）均等配分法
第１の再配分方法は、アプリケーションが変更された場合に、各アプリケーションに対して空きメモリを均等に再配分する。
【０１１８】
図７（ａ）に示すように、まず、１０個の空きメモリが存在している状態で、第１のアプリケーション（Ａ）には４個の空きメモリが割り当てられ、第２のアプリケーション（Ｂ）には３個の空きメモリが割り当てられ、さらに、第３のアプリケーション（Ｃ）には３個の空きメモリが割り当てられているとする。
【０１１９】
あるタイミングで、第４のアプリケーション（Ｄ）が空きメモリ要求を発行したとすると、１アプリケーション当たりのメモリ数は２．５個となるが、メモリ（ページ）は分割できないため、図７（ｂ）に示すように、ここでは、第１及び第２のアプリケーション（Ａ）及び（Ｂ）にそれぞれ３個ずつのメモリを割り当て、第３及び第４のアプリケーション（Ｃ）及び（Ｄ）にそれぞれ２個ずつのメモリを割り当てる。
【０１２０】
第１の再配分方法の一般的な処理フローを図８に示す。
【０１２１】
図８に示すように、工程Ｓ３１において、新たなアプリケーションからの空きメモリ要求が出されたとすると、次の工程Ｓ３２において、既に割り当てられているアプリケーションの数と新たなアプリケーションの数とから１アプリケーション当たりの空きメモリ数（平均値）を算出する。
【０１２２】
次に、工程Ｓ３３、Ｓ３４及びＳ３５において、１アプリケーションごとに空きメモリの平均個数を割り当てる。このとき、平均値が整数でない場合は、平均値に対する切り上げ又は切り下げを必要なアプリケーションに対して施す。
【０１２３】
このように、第１の再配分方法によると、割り当てルールが簡単であるため、実装も容易となる。
【０１２４】
２）優先順配分法
第２の再配分方法は、アプリケーションが変更された場合に、各アプリケーションに対してそれぞれの優先度に応じて空きメモリを再配分する。
【０１２５】
図９（ａ）に示すように、まず、１０個の空きメモリが存在している状態で、優先度が１（小さい方が高い）である第１のアプリケーション（Ａ）には４個の空きメモリが割り当てられ、優先度が２である第２のアプリケーション（Ｂ）には４個の空きメモリが割り当てられ、さらに、優先度が３である第３のアプリケーション（Ｃ）には２個の空きメモリが割り当てられているとする。ここで、各優先度はそれぞれ対応するタグ１５に保持されている。また、各アプリケーション（Ａ）〜（Ｃ）に与えられた望ましいメモリ数（希望メモリ数）はいずれも４であるとする。
【０１２６】
あるタイミングで、優先度が１で希望メモリ数が４である第４のアプリケーション（Ｄ）が空きメモリ要求を発行したとする。ここでは、優先度が高い順に希望メモリ数と未だ割り当てられていない空きメモリ数とを比較して、そのうちの小さい方を各アプリケーションに割り当てる。従って、図９（ｂ）に示すように、ここでは、第１及び第４のアプリケーション（Ａ）及び（Ｄ）に４個ずつのメモリが割り当てられ、第２のアプリケーション（Ｂ）に２個のメモリが割り当てられる。また、優先度が３で最も低い第３のアプリケーション（Ｃ）には１つの空きメモリも割り当てられない。
【０１２７】
第２の再配分方法の一般的な処理フローを図１０に示す。
【０１２８】
図１０に示すように、工程Ｓ４１において、新たなアプリケーションからの空きメモリ要求が出されたとすると、次の工程Ｓ４２において、新たなアプリケーション及び既に割り当てられているアプリケーションを優先度が高い順、すなわち優先度の値が小さい順に並べ替える。
【０１２９】
次に、工程Ｓ４３、Ｓ４４及びＳ４５において、並べ替えられたアプリケーション順に、割り当て希望数及び未割り当て空きメモリ数のうち少ない方の数だけ空きメモリを割り当てる。
【０１３０】
このように、第２の再配分方法によると、空きメモリを最も必要とするアプリケーションに割り当てられる可能性が高くなるため、メモリの使用効率が向上する。
【０１３１】
３）動作周期順配分法
第３の再配分方法は、アプリケーションが変更された場合に、各アプリケーションに対してそれぞれの動作周期に応じて空きメモリを再配分する。
【０１３２】
図１１（ａ）に示すように、まず、１０個の空きメモリが存在している状態で、動作周期が２０ｍｓである第１のアプリケーション（Ａ）には４個の空きメモリが割り当てられ、動作周期が３０ｍｓである第２のアプリケーション（Ｂ）には４個の空きメモリが割り当てられ、さらに、動作周期が６０ｍｓである第３のアプリケーション（Ｃ）には２個の空きメモリが割り当てられているとする。ここで、各アプリケーション（Ａ）〜（Ｃ）に与えられた希望メモリ数はいずれも４であるとする。
【０１３３】
あるタイミングで、動作周期が２０ｍｓで希望メモリ数が４である第４のアプリケーション（Ｄ）が空きメモリ要求を発行したとする。ここでは、動作周期が小さい順に希望メモリ数と未だ割り当てられていない空きメモリ数とを比較して、そのうちの小さい方を各アプリケーションに割り当てる。従って、図１１（ｂ）に示すように、ここでは、第１及び第４のアプリケーション（Ａ）及び（Ｄ）に４個ずつのメモリが割り当てられ、第２のアプリケーション（Ｂ）に２個のメモリが割り当てられる。また、動作周期が６０ｍｓで最も大きい第３のアプリケーション（Ｃ）には１つの空きメモリも割り当てられない。
【０１３４】
第３の再配分方法の一般的な処理フローを図１２に示す。
【０１３５】
図１２に示すように、工程Ｓ５１において、新たなアプリケーションからの空きメモリ要求が出されたとすると、次の工程Ｓ５２において、新たなアプリケーション及び既に割り当てられているアプリケーションをそれぞれの動作周期が小さい順に並べ替える。
【０１３６】
次に、工程Ｓ５３、Ｓ５４及びＳ５５において、並べ替えられたアプリケーション順に、割り当て希望数及び未割り当て空きメモリ数のうち少ない方の数だけ空きメモリを割り当てる。
【０１３７】
このように、第３の再配分方法によると、各アプリケーションの動作周期は、リアルタイム処理では一般に一意に決まるため、判断基準である動作周期を容易に決定することができる。
【０１３８】
４）情報転送量順配分法
第４の再配分方法は、アプリケーションが変更された場合に、各アプリケーションに対してそれぞれの単位時間当たりの情報転送量に応じて空きメモリを再配分する。
【０１３９】
図１３（ａ）に示すように、まず、１０個の空きメモリが存在している状態で、単位時間当たりの転送量情報が３である第１のアプリケーション（Ａ）には４個の空きメモリが割り当てられ、単位時間当たりの転送量情報が２である第２のアプリケーション（Ｂ）には４個の空きメモリが割り当てられ、さらに、単位時間当たりの転送量情報が１である第３のアプリケーション（Ｃ）には２個の空きメモリが割り当てられているとする。ここで、各アプリケーション（Ａ）〜（Ｃ）に与えられた希望メモリ数はいずれも４であるとする。
【０１４０】
あるタイミングで、単位時間当たりの転送量情報が３で希望メモリ数が４である第４のアプリケーション（Ｄ）が空きメモリ要求を発行したとする。ここでは、転送量情報の値が大きい順に、希望メモリ数と未だ割り当てられていない空きメモリ数とを比較して、そのうちの小さい方を各アプリケーションに割り当てる。従って、図１３（ｂ）に示すように、ここでは、第１及び第４のアプリケーション（Ａ）及び（Ｄ）に４個ずつのメモリが割り当てられ、第２のアプリケーション（Ｂ）に２個のメモリが割り当てられる。また、転送量情報が１で最も小さい第３のアプリケーション（Ｃ）には１つの空きメモリも割り当てられない。
【０１４１】
第４の再配分方法の一般的な処理フローを図１４に示す。
【０１４２】
図１４に示すように、工程Ｓ６１において、新たなアプリケーションからの空きメモリ要求が出されたとすると、次の工程Ｓ６２において、新たなアプリケーション及び既に割り当てられているアプリケーションをそれぞれの単位時間当たりの転送量情報が大きい順に並べ替える。
【０１４３】
次に、工程Ｓ６３、Ｓ６４及びＳ６５において、並べ替えられたアプリケーション順に、割り当て希望数及び未割り当て空きメモリ数のうち少ない方の数だけ空きメモリを割り当てる。
【０１４４】
このように、第４の再配分方法によると、情報転送量が多い順に空きメモリを割り当てるため、プリロード又はライトバックが必要となるアプリケーションの情報転送量は少なくなるので、ＤＭＡ転送時の情報転送量を抑制することができる。
【０１４５】
（エクストラメモリ管理機能）
次に、情報転送量を削減可能なエクストラメモリ管理機能を説明する。
【０１４６】
エクストラメモリとは、アプリケーションに確保されていないＦＲＥＥバンクをいう。
【０１４７】
従って、エクストラメモリ管理機能は、ＦＲＥＥバンクを要求するアプリケーションに分配する空きメモリの有効活用と、ページのキャッシングを行なうこととにより、ページ属性であるプリロード属性又はライトバック属性に伴うＤＭＡ転送による情報転送量の削減を図る機能である。
【０１４８】
また、ページのキャッシングとは、ページのアンマッピング時に、ページ１４のタグ情報を無効とするだけで、ページ１４の内容は廃棄せずに保存しておくことをいう。このようにすることにより、主記憶メモリ１２における同一のメモリ部分を指定してページのマッピングが行なわれた場合には、該当するページ１４がキャッシングされている場合はそのタグ１５を有効とするだけでページのマッピングを行なえるため、ページのマッピング処理及びページのアンマッピング処理の高速化を図ることができる。
【０１４９】
ところで、エクストラメモリ管理機能は、バンク１６に対してＦＲＥＥバンクを示す属性とページ１４に対する属性とを設定するだけで有効にすることができる。
【０１５０】
以下、エクストラメモリ管理機能について、エクストラ属性を有する場合と有さない場合とを対比しながら説明する。続いて、エクストラメモリ管理機能の詳細として、エクストラ属性が設定されたページ１４及び使用されるバンク１６の各属性及び状態について説明する。
【０１５１】
（１回目のページのマッピング）
まず、１回目のページのマッピング時の動作について図１５（ａ）〜図１５（ｃ）を参照しながら説明する。
【０１５２】
図１５（ａ）において、１つのバンクに属するページの全ページ状態がＦＲＥＥ状態であるバンク１０１を指定したページのマッピング要求が発行されたとする。
【０１５３】
次に、図１５（ｂ）に示すように、エクストラ属性が設定されていない場合のページ（Ａ0 ）は、マッピング要求により、状態が１０１であるバンク（自バンク）から獲得（確保）されるため、最初のＦＲＥＥページがＡＬＬＯＣページ（Ａ0 ）となってバンクの状態は１０２となる。
【０１５４】
これに対し、図１５（ｃ）に示すように、状態が１０１であるバンクを指定して、エクストラ属性が設定されたページ（Ａ1 ）に対してマッピング要求を行なうと、ＦＲＥＥ状態のバンクの有無と、ページのマッピング要求時に指定された自バンクが所有するバンクの数を判定する。その結果、ＦＲＥＥ状態のバンクが存在し、自バンクが所有するバンクが最大所有バンク数を超えていない場合（ここでは、１回目のマッピングであるため、所有バンクはない。）には、ＦＲＥＥ状態のバンクは自バンクが所有するバンクとなる。ここで、自バンクによって所有されたバンクをエクストラバンクと呼ぶ。
【０１５５】
次に、ページを獲得するバンクを確定する。対象となるバンクは、自バンクと該自バンクが所有するエクストラバンクとである。なお、ページを獲得するバンクの確定方法については後述する。
【０１５６】
次に、条件に合致したバンクからページの獲得を行ない、プリロードとタグ１５の有効化を図る。これにより、エクストラ属性が設定されたページにマッピング要求が発行された後の自バンクの状態は１０３となり、自バンクが所有するエクストラバンクの状態は１０４となる。
【０１５７】
ここで、エクストラ属性が設定された擬似キャッシュメモリページをエクストラページと呼ぶ。また、ページのマッピングが行なわれ、タグ１５が有効となったエクストラページを構成するページの状態はＥＸＴＲＡ状態に遷移する。この状態のページをＥＸＴＲＡページと呼ぶ。
【０１５８】
（ページのアンマッピング）
次に、ページのアンマッピング時の動作について図１６（ａ）〜図１６（ｄ）を参照しながら説明する。
【０１５９】
図１６（ａ）に示すように、まず、エクストラ属性が設定されていない場合は、ページ（Ａ0 ）に対してアンマッピング要求を行なうと、該ページ（Ａ0 ）は解放されてＦＲＥＥ状態となるため、図１６（ｂ）に示すように、ページ（Ａ0 ）のアンマッピング要求を行なった後のバンクの状態は１０１となる。
【０１６０】
これに対し、図１６（ｃ）に示すように、状態が１０３である自バンクを指定して、エクストラ属性が設定されたページ（Ａ1 ）に対してアンマッピング要求を行なうと、図１６（ｄ）に示すように、自バンクが所有するエクストラバンク内のページ（Ａ1 ）はタグ１５を無効とされ、ページ（Ａ1 ）の状態はキャッシングされたＥＸＴＲＡＦＲＥＥ（エクストラフリー）状態となる。このＥＸＴＲＡＦＲＥＥ状態のページをＥＸＴＲＡＦＲＥＥページと呼ぶ。また、ライトバック属性が設定されたエクストラページを構成するページであっても、ライトバックは行なわない。従って、エクストラ属性が設定されたページのアンマッピング要求を行なった後の自バンクの状態は１０６となり、自バンクが所有するエクストラバンクの状態は１０７となる。
【０１６１】
（２回目以降のページのマッピング）
次に、２回目以降のページのマッピング時の動作について図１７（ａ）〜図１７（ｄ）を参照しながら説明する。
【０１６２】
図１７（ａ）に示すように、に示すように、まず、状態が１０１であるバンクを指定して、エクストラ属性が設定されていないページ（Ａ0 ）に対して２回目のマッピング要求を行なうと、図１７（ｂ）に示すように、ページ（Ａ0 ）は状態が１０１であるバンクから獲得されるため、ページ（Ａ0 ）に対してマッピング要求を行なった後のバンク状態は１０２となる。すなわち、１回目と動作は同じである。
【０１６３】
これに対し、図１７（ｃ）に示すように、状態が１０６である自バンクを指定して、エクストラ属性が設定されたページ（Ａ1 ）に対して２回目のマッピング要求を行なうと、始めに自バンクと、該自バンクが所有する状態が１０７であるエクストラバンクを構成するページ（Ａ1 ）に要求された内容がキャッシングされているか否かを判定する。すなわち、ＥＸＴＲＡＦＲＥＥページが存在していないかを探す。なお、キャッシュヒットの条件については後述する。
【０１６４】
キャッシングされている場合は、図１７（ｄ）に示すように、タグ１５を有効とするだけでページ（Ａ1 ）のマッピングを行なうことができる。一方、キャッシングされていない場合は、１回目のページのマッピングと同様にページを獲得するバンクの確定を行ない、確定したバンクからのページを獲得して、続いて主記憶メモリ１２とのマッピングを行なう。さらに、プリロード属性が設定されている場合はプリロード処理を行なう。
【０１６５】
従って、エクストラ属性が設定されたページに対して、２回目又はそれ以降のマッピング要求を行なった後は、自バンクの状態は１０３となり、自バンクが所有するエクストラバンクの状態は１０４となる。
【０１６６】
次に、ページ（Ａ0 又はＡ1 ）をマッピングした状態で、これらのページとは異なる他のページ（Ｂ0 又はＢ1 ）をマッピングする際の動作について以下の４種類の場合について説明する。
【０１６７】
１）エクストラバンクにＥＸＴＲＡＦＲＥＥページがある場合
ページ（Ａ0 又はＡ1 ）の他にページ（Ｂ0 又はＢ1 ）をマッピングする第１の場合について図１８（ａ）〜図１８（ｄ）を参照しながら説明する。
【０１６８】
図１８（ａ）に示すように、状態が１０２であるバンクを指定して、エクストラ属性が設定されていないページ（Ｂ0 ）に対してマッピング要求を行なうと、ページ（Ｂ0 ）は状態が１０２であるバンクから獲得されるため、図１８（ｂ）に示すように、ページ（Ｂ0 ）のマッピング要求を行なった後のバンク状態は１０９となる。
【０１６９】
これに対し、図１８（ｃ）に示すように、状態が１０３である自バンクを指定して、エクストラ属性が設定されたページ（Ｂ1 ）に対してマッピング要求を行なうと、始めに状態が１０３である自バンクと該自バンクが所有するエクストラバンクを構成するページに、要求された内容がキャッシングされているか否かを判定する。キャッシングされている場合はタグ１５を有効とするだけでページ（Ｂ1 ）をマッピングすることができる。ここでは、ページ（Ｂ1 ）は自バンクが所有する状態が１０８であるエクストラバンクにキャッシングされているとする。従って、図１８（ｄ）に示すように、ページ（Ｂ1 ）のマッピング要求を行なった後の自バンクの状態は、２つのＦＲＥＥページを持つ１１０となり、自バンクが所有するエクストラバンクの状態はＥＸＴＲＡページ（Ａ1 ）及び（Ｂ1 ）を持つ１１１となる。
【０１７０】
２）エクストラバンクにＦＲＥＥページがある場合
ページ（Ａ1 ）の他にページ（Ｂ1 ）をマッピングする第２の場合について図１９（ａ）及び図１９（ｂ）を参照しながら説明する。なお、第２〜第４の場合は、エクストラ属性が設定されているページの場合のみを説明する。
【０１７１】
図１９（ａ）に示すように、第２の場合は、エクストラバンクを構成するページがキャッシングされていない場合は、状態が１０３である自バンクが所有するエクストラバンクから要求された数分のページを獲得することを試みる。１回目のページのマッピングとは異なり、自バンクは既に状態が１０４であるエクストラバンクを所有しているとする。ここでは、エクストラバンクから１つのページを獲得できる。従って、図１９（ｂ）に示すように、ページ（Ｂ1 ）のマッピングを行なった後の自バンクの状態は、２つのＦＲＥＥページを持つ１１０となり、自バンクが所有するエクストラバンクの状態はＥＸＴＲＡページ（Ａ1 ）及び（Ｂ1 ）を持つ１１１となる。
【０１７２】
３）エクストラバンクにＦＲＥＥページがない場合
ページ（Ａ1 ）の他にページ（Ｂ1 ）をマッピングする第３の場合について図２０（ａ）及び図２０（ｂ）を参照しながら説明する。
【０１７３】
図２０（ａ）に示すように、状態が１１０である自バンクが既に所有する、状態が１１２であるエクストラバンクにはＦＲＥＥページが存在せず、これ以上マッピングを行なえない場合は、新たなエクストラバンクの獲得を試みる。１回目のページのマッピングと同様に、ＦＲＥＥ状態のバンクの有無と、呼び出し時に指定したバンクが所有するバンクの数とを判定する。その結果、ＦＲＥＥ状態のバンクがあり、自バンクが所有するバンクが最大所有バンク数を超えていない場合は、ＦＲＥＥ状態である他のバンクを獲得して新たなエクストラバンクとし、このバンクからページ（Ｂ1 ）の獲得を行ない、さらに、プリロード処理を行ない且つタグ１５を有効とする。従って、第３の場合は、図２０（ｂ）に示すように、ページ（Ｂ1 ）のマッピングを行った後の自バンクの状態は、２つのＦＲＥＥページを持つ１１０となり、自バンクが所有する２つのエクストラバンクの状態は、それぞれ、ＥＸＴＲＡページ（Ａ1 ）及び（Ｃ1 ）を持つ１１２と、ＥＸＴＲＡページ（Ｂ1 ）及びＦＲＥＥページを持つ１１３となる。
【０１７４】
４）エクストラバンクにＦＲＥＥページがない場合
ページ（Ａ1 ）の他にページ（Ｂ1 ）をマッピングする第４の場合について図２１（ａ）及び図２１（ｂ）を参照しながら説明する。
【０１７５】
図２１（ａ）に示すように、第３の場合とは異なり、新たなエクストラバンクを獲得できなかった場合は、状態が１１２であるエクストラバンクからではなく、状態が１１０である自バンクからページ（Ｂ1 ）の獲得を行ない、その後、プリロード処理を行ない且つタグ１５を有効とする。従って、第４の場合は、図２１（ｂ）に示すように、ページ（Ｂ1 ）のマッピングを行なった後の自バンクの状態は、ＥＸＴＲＡページ（Ｂ1 ）及びＦＲＥＥページを持つ１１４となり、自バンクが所有するエクストラバンクの状態は、ＥＸＴＲＡページ（Ａ1 ）及び（Ｃ1 ）を持つ１１２となる。
【０１７６】
以下、エクストラメモリ管理機能に必要となる制御情報について説明する。
【０１７７】
エクストラバンクには、バンク属性設定要求によって各バンク１６にバンク属性を設定することができる。従って、バンク属性にエクストラ属性が設定されたバンク１６に対してエクストラメモリ管理機能が有効となり、エクストラメモリ管理機能を使用できるページの獲得を可能とする。
【０１７８】
最大エクストラバンク数は、所有できるエクストラバンクの最大値を表わす。
【０１７９】
エクストラページに付与されるページ属性は、ページ１４に対するマッピング要求によるページのマッピング時に、エクストラページを構成するページに付与可能な属性である。ページ１４にエクストラ属性が設定されると、プリロード属性及びライトバック属性の意味が以下のように変更される。
【０１８０】
バンク１６に付与するエクストラ属性を設定すると、ページ１４にエクストラメモリ管理機能を使用することを宣言する。従って、ページのマッピング時にエクストラバンク属性が設定されていないバンク１６を指定するとエラーとなる。
【０１８１】
プリロード属性が設定されていると、ページ１４に対するマッピング時において、そのページ１４がキャッシングされていないページである場合は、マッピングする主記憶メモリ１２に格納されている内容をエクストラページであるページ１４にプリロードする。ページ１４の獲得時にそのページ１４がキャッシングされているページである場合は、既にプリロードされているとみなしてＤＭＡ転送は行なわない。
【０１８２】
ライトバック属性が設定されていると、ページ１４に対するアンマッピング時にタグ１５を無効とする。ある条件によりアンキャッシュされる時には、ページ１４の内容を主記憶メモリ１２にライトバックする。エクストラ属性が設定された擬似キャッシュメモリページを構成するページ１４はアンキャッシュされるまではライトバックを行なわない。また、キャッシングされている場合はプリロードを行なわない。
【０１８３】
以下、エクストラページのページ状態を説明する。
【０１８４】
ＦＲＥＥ（フリー）状態（ページ状態と共通）とは、スレッドにより確保（獲得）されておらずエクストラページを構成していないページ１４の状態をいい、ＦＲＥＥページと呼ぶ。このＦＲＥＥ状態は内部状態であり、外部から確認することはできない。ページ１４が確保されるとＰＲＥ−ＥＸＴＲＡ（プレエクストラ）状態に遷移する。
【０１８５】
ＰＲＥ−ＥＸＴＲＡ状態とは、エクストラ属性及びプリロード属性が設定されてページのマッピングが行なわれ、プリロードが終了していないエクストラページを構成するページ１４の状態をいう。この状態をＰＲＥ−ＥＸＴＲＡページと呼び、プリロード属性が設定されていない場合は、タグ１５が有効とされた後に、ＥＸＴＲＡ（エクストラ）状態に遷移する。また、プリロード属性が設定されている場合は、プリロードが終了するとタグ１５が有効とされた後にＥＸＴＲＡ状態に遷移する。
【０１８６】
ＥＸＴＲＡ状態とは、エクストラ属性が設定されて、アクセス可能なエクストラページを構成するページの状態をいう。この状態をＥＸＴＲＡページと呼び、ページのアンマッピングが行なわれると、タグ１５が無効とされた後にキャッシングされたＥＸＴＲＡＦＲＥＥ（エクストラフリー）状態に遷移する。
【０１８７】
ＥＸＴＲＡＦＲＥＥ状態とは、エクストラ属性が設定されて、ページのアンマッピングが行なわれたページの状態をいう。この状態をＥＸＴＲＡＦＲＥＥページと呼び、ライトバック属性が設定されたＥＸＴＲＡＦＲＥＥページがアンキャッシュされるとライトバックが行なわれ、ＰＲＥ−ＦＲＥＥ（プレフリー）状態に遷移する。また、エクストラ属性が設定されていないページのマッピングによってＰＲＥ−ＡＬＬＯＣ（プレアロック）状態に遷移する。エクストラ属性が設定されたページのマッピング時にキャッシュヒットすると、タグ１５が有効化とされた後にＥＸＴＲＡ状態に遷移する。
【０１８８】
ＰＲＥ−ＦＲＥＥ状態とは、ページのアンマッピングは行なわれたがライトバックが終了していないエクストラページを構成するページの状態をいう。この状態をＰＲＥ−ＦＲＥＥページと呼び、ライトバック属性が設定されていない場合は、ページの解放が行なわれた後にＦＲＥＥ状態に遷移する。また、ライトバック属性が設定されている場合は、ライトバックが終了すると、ページの解放が行なわれた後にＦＲＥＥ状態に遷移する。
【０１８９】
ここで、エクストラページ状態は、エクストラページ情報に含まれる。また、自バンクが所有可能なエクストラバンク数とは、エクストラ属性が設定されたバンク数をいう。また、ＦＲＥＥバンクがエクストラバンクとして所有されるものの、エクストラ属性が設定されたバンク１６が複数である場合は、それぞれのバンク１６に均等に配分される。
【０１９０】
エクストラページのキャッシュヒット条件は、ページのマッピング要求を行なった時に指定したアドレスとページ数とが、キャッシングされているページのアドレスとページ数とに一致することである。
【０１９１】
前述したように、エクストラページの重みと入れ替え判定とにおいて、エクストラ属性が設定された擬似キャッシュメモリページを構成するページ１４はアンキャッシュされるまでライトバックを行なわない。また、キャッシングされている場合はプリロードを行なわない。さらに、ＤＭＡ転送量を削減するために、プリロード属性又はライトバック属性が設定されたページ１４を優先的にキャッシュに残すことが必要となる。そこで、エクストラ属性が設定されたページ１４のそれぞれに対して重みを算出する。この重みをキャッシュ入れ替えの判定に用いることにより、キャッシュの最適化を行なう。なお、複数のページ１４により構成されたエクストラページの一部のページ１４が解放される場合には、エクストラページを構成する残部のすべてがアンキャッシングされる。
【０１９２】
主記憶メモリ１２とエクストラページとの同期タイミングに関し、エクストラメモリ管理機能を有効にした場合の物理領域とエクストラページとの同期は、ページのマッピング時及びページのアンマッピング時ではなく、プリロードとライトバックとが発生したタイミングとなる。なお、エクストラメモリ管理機能を使用しない場合は、ページのマッピングとページのアンマッピングとを行なった時点でプリロードとライトバックとが発生するが、エクストラメモリ管理機能を使用した場合は、他のページのマッピング又はページのアンキャッシングを行なうことによってキャッシュが無効となる場合に、プリロードとライトバックとが発生する。
【０１９３】
エクストラページを確保するバンクの確定方法に関し、ページを獲得する対象となるバンク１６を以下のように４種類に分類する。
［Ａ］ページ指定子で指定されたページ
［Ｂ］自バンク
［Ｃ］自バンクが所有するエクストラバンク
［Ｄ］ＦＲＥＥバンク
次に、各バンク１６に対して行なう確定条件を５種類に分類する。
［１］物理アドレスとページ数とが一致（キャッシュヒット）
［２］ＦＲＥＥページから必要なページ数を確保可能
［３］ＦＲＥＥページ、及び重み０のＥＸＴＲＡＦＲＥＥページから必要なページ数を獲得可能
［４］ＦＲＥＥページ、重み０のＥＸＴＲＡＦＲＥＥページ、及び重み１のＥＸＴＲＡＦＲＥＥページから必要なページ数を確保可能
［５］なし（必ず確保可能）
上記のように分類されたバンク１６に対して確定条件を、例えば図２２に示される順に適用することにより、ページ１４を確保するバンク１６を確定する。
【０１９４】
（エクストラバンクの解放方法）
次に、エクストラバンクの解放方法について説明する。
【０１９５】
まず、自バンクが所有可能なエクストラバンクのバンク数が減少した場合に、解放するエクストラバンクの選択方法について説明する。
【０１９６】
エクストラバンクを解放しなければならない場合とは、スレッドがバンク１６を確保する際に、エクストラバンクとして使用されていないＦＲＥＥバンクだけではバンク数が足りない場合と、エクストラ属性が設定されたバンク数が増加し、各バンク１６に対するエクストラバンクの割り当てが変更された場合とである。
【０１９７】
これらの場合は、自バンクがそれぞれ所有できるエクストラページの数は再計算される。また、自バンクが所有できるエクストラバンクのバンク数が減少した場合は、各エクストラバンクの重み（以後、バンク重みと呼ぶ。）によって解放するエクストラバンクを決定する。エクストラバンクのバンク重みには、エクストラバンクを構成するページ１４の重みを合計した値を用い、このバンク重みが小さいエクストラバンクから解放する。
【０１９８】
以下、一例として、自バンクが３つのエクストラバンクを所有する状態から、自バンクが所有可能なエクストラバンク数が１つとなる場合に、解放されるバンクの選択方法について図２３（ａ）及び図２３（ｂ）に基づいて説明する。
【０１９９】
図２３（ａ）に示すように、状態が１２０である自バンクは、状態がそれぞれ１２１、１２２及び１２３である３つのエクストラバンクを所有している。状態が１２１であるエクストラバンク１は、重み２を持つページ（Ａ1 ）と重み１を持つページ（Ｂ1 ）とを含むため、そのバンク重みは３である。状態が１２２であるエクストラバンク２は、重み１を持つページ（Ａ1 ）と重み１を持つページ（Ｂ1 ）とを含むため、そのバンク重みは２である。また、状態が１２３であるエクストラバンク３は、重み１を持つページ（Ａ1 ）と重み０を持つページ（Ｂ1 ）とを含むため、そのバンク重みは１である。
【０２００】
ここで、状態が１２０である自バンクの所有可能なエクストラバンク数が減少して、３から１になったと仮定する。状態が１２０である自バンクは、それぞれバンク重み３、バンク重み２及びバンク重み１の３つのエクストラバンクを所有しているため、３つのうち重みが小さい２つのエクストラバンク、すなわち状態が１２２でその重みが２であるエクストラバンク２と、状態が１２３でその重みが１であるエクストラバンク３とを解放する決定がされる。従って、図２３（ｂ）に示すように、エクストラバンク２、３は解放が要求されている状態に遷移し、エクストラバンク２の状態は１２４となり、エクストラバンク３の状態は１２５となる。
【０２０１】
次に、エクストラバンクの解放方法について説明する。
【０２０２】
まず、エクストラバンクに対する解放要求が行なわれる前の動作について図２４（ａ）及び図２４（ｂ）を用いて説明する。
【０２０３】
ここで、一のスレッドが周期的に動作を行ない、且つその１周期内でページＡ1 、ページＢ1 及びページＣ1 の３つのページ１４に対して、マッピング要求及びアンマッピング要求を行なって２つのバンク１６を獲得していると仮定する。
【０２０４】
図２４（ａ）のタイミングチャートに示すように、一のスレッドがページ（Ａ1 ）に対するマッピング要求を行なうと、該ページ（Ａ1 ）に対するアンマッピング要求が出されるまでの間は、ページ（Ａ1 ）はエクストラ状態となる。その後、ページ（Ｂ1 ）に対するマッピング要求を行なって、該ページ（Ｂ1 ）に対するアンマッピング要求が出されるまでの間は、ページ（Ｂ1 ）はエクストラ状態となる。続いて、ページ（Ｃ1 ）に対するマッピング要求を行なって、該ページ（Ｃ1 ）に対するアンマッピング要求が出されるまでの間は、ページ（Ｃ1 ）はエクストラ状態となる。
【０２０５】
ここでは、図２４（ｂ）に示すように、各ページ（Ａ1 ）〜ページ（Ｃ1 ）は互いに重複することなく、状態が１３０である自バンクと、状態が１３１であるエクストラバンクとに確保されているため、各ページ（Ａ1 ）〜ページ（Ｃ1 ）に対するそれぞれのマッピング要求時にはいずれもキャッシングが有効となるので、アンマッピング要求時にはキャッシングされる。従って、プリロード及びライトバックは実行されない。ここで、図２４（ｂ）は、ページ（Ｃ1 ）に対するアンマッピング要求を行なった後の自バンクの状態を示している。
【０２０６】
次に、他のスレッドによってバンク１６に対する獲得要求が行なわれ、状態が１３１であるエクストラバンクを解放するまでの動作について図２５（ａ）及び図２５（ｂ）を用いて説明する。
【０２０７】
図２５（ａ）に示すように、一のスレッドが、ページ（Ａ1 ）及びページ（Ｂ1 ）に対して順次マッピング要求及びアンマッピング要求を行ない、さらに、ページ（Ｃ1 ）に対してマッピング要求を行なって、ページ（Ｃ1 ）がＥＸＴＲＡ状態に遷移する。ここで、ページ（Ｃ1 ）がＥＸＴＲＡ状態にある期間に、他のスレッドがバンク１６に対する獲得要求を行ない、状態が１３０である自バンクの所有可能なエクストラバンク数が１から０になったとする。この時点で、状態が１３２であるエクストラバンクにはその解放要求がなされていることが登録される。
【０２０８】
次に、他のスレッドによるバンクの獲得要求がなされて以降、解放が要求され且つ状態が１３２であるエクストラバンク内にあるページは、ページのアンマッピング要求時にライトバックされ、該ライトバックの終了後に解放される。ここで、図２５（ｂ）は、ページ（Ｃ1 ）に対するアンマッピング要求を行なった後の自バンクの状態を示している。
【０２０９】
次に、スレッドの動作中にエクストラバンクが解放されるまでの動作について図２６（ａ）及び図２６（ｂ）を用いて説明する。
【０２１０】
まず、図２６（ａ）において、ページ（Ａ1 ）に対するマッピング要求時及びアンマッピング要求時の動作を説明する。ページ（Ａ1 ）に対するマッピング要求時には、該ページ（Ａ1 ）はキャッシングされているため、キャッシングされているページ１４を獲得し、さらに対応するタグ１５を有効とするだけで、ページ（Ａ1 ）のマッピングが可能となる。次に、ページ（Ａ1 ）に対するアンマッピング要求時には、ページ（Ａ1 ）が含まれるエクストラバンクに対して解放要求がなされているか否かを判定する。ここでは、解放要求がなされている場合を想定しているため、ページ（Ａ1 ）に対するライトバックが期間１８０で実行され、その結果、ページの状態はＦＲＥＥ状態となる。
【０２１１】
同様に、ページ（Ｂ1 ）に対するアンマッピング要求時には、ページ（Ｂ1 ）が含まれるエクストラバンクに対して解放要求がなされているか否かを判定する。ここでも解放要求がなされているため、該ページ（Ｂ1 ）に対するライトバックが期間１８１で実行され、ページの状態はＦＲＥＥ状態となる。
【０２１２】
この時点で、状態が１３０である自バンクが所有するエクストラバンクの状態は１３３となり、エクストラバンクを構成するページの状態がすべてＦＲＥＥ状態となるため、バンクの解放を行なう。
【０２１３】
ここで、解放要求がなされたページ（Ａ1 ）及びページ（Ｂ1 ）はいずれもエクストラバンクに含まれているため、アンマッピング要求時にはライトバックされてしまうのに対し、ページ（Ｃ1 ）は自バンクに含まれているため、ページのアンマッピング要求時にもキャッシングされる結果、ライトバックはされない。
【０２１４】
ここで、図２６（ｂ）において、符号１３０は、ページ（Ｃ1 ）に対するアンマッピング要求を行なった後の自バンクの状態を示し、自バンクが所有するエクストラバンクは、ページ（Ｂ1 ）に対するアンマッピング要求を行なった後に状態が１３３となるため、解放されており、以後のスレッドの実行は自バンクのみで行なわれることになる。
【０２１５】
以上説明したように、本実施形態によると、エクストラメモリとして空きメモリを活用することにより、さらにメモリ転送量を削減することができる。
【０２１６】
その上、キャッシングされるメモリ容量が比較的に大きいため、従来のキャッシュメモリと比較して回路規模を削減できる。また、プログラム作成者はキャッシュのスケジューリングが容易となるため、キャッシュミスによる処理効率の低下を回避することができる。
【０２１７】
なお、本実施形態においては、タグ比較器１７等はハードウェアで構成し、擬似キャッシュマネージャ１８はプロセッサ１１のプログラムにより構成する例を示したが、同様の機能を実現できれば、ハードウェアかソフトウェアかは問われない。
【産業上の利用可能性】
【０２１８】
本発明に係る半導体装置は、メモリの入れ替えに要するメモリ転送量を削減することができると共に、回路規模を削減できるという効果を有し、広義のプロセッサにメモリ入れ替え機構を有する半導体装置等として有用である。ここで、広義のプロセッサとは、基本的にはリアルタイム性を有する電子機器に搭載されるプロセッサを指す。また、具体的な装置の形態としては、ＤＶＤ（デジタルバーサタイル（ビデオ）ディスク）、ＣＤ（コンパクトディスク）及びＭＤ（ミニディスク）等のディスクを記録媒体とした録画（録音）再生装置、ＤＶＣ（デジタルビデオカメラ）、ＤＳＣ（デジタルスチルカメラ）等の光学機器、又はＳＤメモリカード等を記録媒体としたＩＣレコーダ、又は携帯電話機、携帯型情報端末等が挙げられる。
【図面の簡単な説明】
【０２１９】
【図１】本発明の一実施形態に係る半導体装置を構成するページ、バンク及びメモリエリアの一例を示すブロック図である。
【図２】本発明の一実施形態に係る半導体装置を示すブロック図である。
【図３】本発明の一実施形態に係る半導体装置における第１のメモリ入れ替え方法を示すフロ図である。
【図４】本発明の一実施形態に係る半導体装置における情報転送量の重み付けを登録する判定表である。
【図５】本発明の一実施形態に係る半導体装置における第２のメモリ入れ替え方法を示すフロー図である。
【図６】本発明の一実施形態に係る半導体装置における第３のメモリ入れ替え方法を示すフロー図である。
【図７】（ａ）及び（ｂ）は本発明の一実施形態に係る半導体装置において応用プログラムが変更された場合に、他の応用プログラムを含め各応用プログラムに対する空きメモリの再配分方法における第１の再配分方法を示し、（ａ）は新たな空きメモリ要求の発行前の割り当てメモリ数を示す表であり、（ｂ）は新たな空きメモリ要求の発行後の割り当てメモリ数を示す表である。
【図８】本発明の一実施形態に係る半導体装置において応用プログラムが変更された場合の第１の再配分方法を示すフロー図である。
【図９】（ａ）及び（ｂ）は本発明の一実施形態に係る半導体装置において応用プログラムが変更された場合に、他の応用プログラムを含め各応用プログラムに対する空きメモリの再配分方法における第２の再配分方法を示し、（ａ）は新たな空きメモリ要求の発行前の割り当てメモリ数を示す表であり、（ｂ）は新たな空きメモリ要求の発行後の割り当てメモリ数を示す表である。
【図１０】本発明の一実施形態に係る半導体装置において応用プログラムが変更された場合の第２の再配分方法を示すフロー図である。
【図１１】（ａ）及び（ｂ）は本発明の一実施形態に係る半導体装置において応用プログラムが変更された場合に、他の応用プログラムを含め各応用プログラムに対する空きメモリの再配分方法における第３の再配分方法を示し、（ａ）は新たな空きメモリ要求の発行前の割り当てメモリ数を示す表であり、（ｂ）は新たな空きメモリ要求の発行後の割り当てメモリ数を示す表である。
【図１２】本発明の一実施形態に係る半導体装置において応用プログラムが変更された場合の第３の再配分方法を示すフロー図である。
【図１３】（ａ）及び（ｂ）は本発明の一実施形態に係る半導体装置において応用プログラムが変更された場合に、他の応用プログラムを含め各応用プログラムに対する空きメモリの再配分方法における第４の再配分方法を示し、（ａ）は新たな空きメモリ要求の発行前の割り当てメモリ数を示す表であり、（ｂ）は新たな空きメモリ要求の発行後の割り当てメモリ数を示す表である。
【図１４】本発明の一実施形態に係る半導体装置において応用プログラムが変更された場合の第４の再配分方法を示すフロー図である。
【図１５】（ａ）〜（ｃ）は本発明の一実施形態に係る半導体装置におけるエクストラメモリ管理機能を説明する概念図であって、（ａ）はページに対するマッピング要求がなされる前のバンクの状態を示す図であり、（ｂ）はエクストラ属性を有さない場合のページのマッピング後のバンクの状態を示す図であり、（ｃ）はエクストラ属性を有する場合のページのマッピング後のバンクの状態を示す図である。
【図１６】（ａ）〜（ｄ）は本発明の一実施形態に係る半導体装置におけるエクストラメモリ管理機能を説明する概念図であって、（ａ）はエクストラ属性を有さない場合のページに対するアンマッピング要求がなされる前のバンクの状態を示す図であり、（ｂ）は（ａ）の場合におけるページのアンマッピング要求後のバンクの状態を示す図であり、（ｃ）はエクストラ属性を有する場合のページに対するアンマッピング要求がなされる前のバンクの状態を示す図であり、（ｄ）は（ｃ）の場合におけるページのアンマッピング要求後のバンクの状態を示す図である。
【図１７】（ａ）〜（ｄ）は本発明の一実施形態に係る半導体装置におけるエクストラメモリ管理機能を説明する概念図であって、（ａ）はエクストラ属性を有さない場合のページに対する２回目以降のマッピング要求がなされる前のバンクの状態を示す図であり、（ｂ）は（ａ）の場合における２回目以降のページのマッピング要求後のバンクの状態を示す図であり、（ｃ）はエクストラ属性を有する場合の２回目以降のページのマッピング要求がなされる前のバンクの状態を示す図であり、（ｄ）は（ｃ）の場合における２回目以降のページのマッピング要求後のバンクの状態を示す図である。
【図１８】（ａ）〜（ｄ）は本発明の一実施形態に係る半導体装置におけるエクストラメモリ管理機能で、エクストラバンクにＥＸＴＲＡＦＲＥＥページがある場合の概念図であって、（ａ）はエクストラ属性を有さない場合の他のページに対するマッピング要求がなされる前のバンクの状態を示す図であり、（ｂ）は（ａ）の場合における他のページのマッピング要求後のバンクの状態を示す図であり、（ｃ）はエクストラ属性を有する場合の他のページに対するマッピング要求がなされる前のバンクの状態を示す図であり、（ｄ）は（ｃ）の場合における他のページのマッピング要求後のバンクの状態を示す図である。
【図１９】（ａ）及び（ｂ）は本発明の一実施形態に係る半導体装置におけるエクストラメモリ管理機能で、エクストラバンクにＦＲＥＥページがある場合の概念図であって、（ａ）はエクストラ属性を有する場合の他のページに対するマッピング要求がなされる前のバンクの状態を示す図であり、（ｂ）は（ａ）の場合における他のページのマッピング要求後のバンクの状態を示す図である。
【図２０】（ａ）及び（ｂ）は本発明の一実施形態に係る半導体装置におけるエクストラメモリ管理機能で、エクストラバンクにＦＲＥＥページがない場合の概念図であって、（ａ）はエクストラ属性を有する場合の他のページに対するマッピング要求がなされる前のバンクの状態を示す図であり、（ｂ）は（ａ）の場合における他のページのマッピング要求後のバンクの状態を示す図である。
【図２１】（ａ）及び（ｂ）は本発明の一実施形態に係る半導体装置におけるエクストラメモリ管理機能で、エクストラバンクにＦＲＥＥページがない場合の他の概念図であって、（ａ）はエクストラ属性を有する場合の他のページに対するマッピング要求がなされる前のバンクの状態を示す図であり、（ｂ）は（ａ）の場合における他のページのマッピング要求後のバンクの状態を示す図である。
【図２２】本発明の一実施形態に係る半導体装置におけるエクストラメモリ管理機能であって、エクストラページを確保するバンクの確定方法とその確定条件を示す表である。
【図２３】（ａ）及び（ｂ）は発明の一実施形態に係る半導体装置におけるエクストラメモリ管理機能のうちエクストラバンクの解放方法を説明する概念図である。
【図２４】（ａ）は本発明の一実施形態に係る半導体装置におけるエクストラメモリ管理機能のうちエクストラバンクの解放方法を説明するタイミング図である。（ｂ）は本発明の一実施形態に係る半導体装置におけるエクストラメモリ管理機能のうちエクストラバンクの解放方法を説明する概念図である。
【図２５】（ａ）は本発明の一実施形態に係る半導体装置におけるエクストラメモリ管理機能のうちエクストラバンクの解放方法を説明する他のタイミング図である。（ｂ）は本発明の一実施形態に係る半導体装置におけるエクストラメモリ管理機能のうちエクストラバンクの解放方法を説明する他の概念図である。
【図２６】（ａ）は本発明の一実施形態に係る半導体装置におけるエクストラメモリ管理機能のうちエクストラバンクの解放方法を説明する他のタイミング図である。（ｂ）は本発明の一実施形態に係る半導体装置におけるエクストラメモリ管理機能のうちエクストラバンクの解放方法を説明する他の概念図である。
【図２７】従来のキャッシュメモリを有する半導体装置を示すブロック図である。
【符号の説明】
【０２２０】
１１  プロセッサ
１２  主記憶メモリ（第１の記憶部）
１３  ＤＭＡコントローラ
１４  ページ（第２の記憶部）
１５  タグ
１６  バンク
１７  タグ比較器
１８  擬似キャッシュマネージャ（入替制御部／バンク制御部／分配管理部）
【図１】
2004310739.tif 000003
【図２】
2004310739.tif 000004
【図３】
2004310739.tif 000005
【図４】
2004310739.tif 000006
【図５】
2004310739.tif 000007
【図６】
2004310739.tif 000008
【図７】
2004310739.tif 000009
【図８】
2004310739.tif 000010
【図９】
2004310739.tif 000011
【図１０】
2004310739.tif 000012
【図１１】
2004310739.tif 000013
【図１２】
2004310739.tif 000014
【図１３】
2004310739.tif 000015
【図１４】
2004310739.tif 000016
【図１５】
2004310739.tif 000017
【図１６】
2004310739.tif 000018
【図１７】
2004310739.tif 000019
【図１８】
2004310739.tif 000020
【図１９】
2004310739.tif 000021
【図２０】
2004310739.tif 000022
【図２１】
2004310739.tif 000023
【図２２】
2004310739.tif 000024
【図２３】
2004310739.tif 000025
【図２４】
2004310739.tif 000026
【図２５】
2004310739.tif 000027
【図２６】
2004310739.tif 000028
【図２７】
2004310739.tif 000029