記憶装置のデータをキャッシュするキャッシュメモリ装置であって、複数のキャッシュラインを有する記憶部と、前記複数のキャッシュラインのうち、前記記憶装置に書き込まれていないデータを含むダーティラインの数が予め定めた所定数を超える場合に、前記ダーティラインのデータを前記記憶装置に書き込む制御部と、を備えることを特徴とするキャッシュメモリ装置。前記記憶部は、任意の数のキャッシュラインを有する第1記憶部と、前記所定数のキャッシュラインを有する第2記憶部と、を有し、前記制御部は、前記第2記憶部のキャッシュラインに対してのみデータの書き込みを行い、前記第2記憶部の前記ダーティラインを再利用する場合に、前記ダーティラインのデータを前記記憶装置に書き込むことを特徴とする請求項1に記載のキャッシュメモリ装置。前記制御部は、前記複数のキャッシュラインのいずれかにデータの書き込みを行った結果、前記ダーティラインの数が前記所定数を超える場合に、前記ダーティラインのデータを前記記憶装置に書き込むことを特徴とする請求項1に記載のキャッシュメモリ装置。前記制御部は、任意のタイミングで前記ダーティラインの数をカウントし、カウントした前記ダーティラインの数が前記所定数を超えている場合に、前記ダーティラインのデータを前記記憶装置に書き込むことを特徴とする請求項1に記載のキャッシュメモリ装置。前記記憶部は、前記所定数のキャッシュラインを有する第1記憶部と、任意の数のキャッシュラインを有する第2記憶部と、を有し、前記制御部は、前記第1記憶部を制御する第1制御部と、前記第2記憶部を制御する第2制御部と、を有し、前記第1制御部は、前記第1記憶部のキャッシュラインに対してのみデータの書き込みを行い、前記第1記憶部のダーティラインを再利用する場合に、前記ダーティラインのデータを前記記憶装置に書き込むことを前記第2制御部に指示し、前記第2制御部は、前記第1制御部からの指示に応じて、前記ダーティラインのデータを前記記憶装置に書き込むことを特徴とする請求項1に記載のキャッシュメモリ装置。前記記憶装置は、不揮発性の2次キャッシュメモリ装置であることを特徴とする請求項1~5のいずれか一項に記載のキャッシュメモリ装置。前記ダーティラインのデータを一時的に保持するライトバッファを備え、前記制御部は、前記ダーティラインのデータを前記ライトバッファに出力し、任意のタイミングで前記ライトバッファから前記記憶装置に前記ダーティラインのデータを書き込むことを特徴とする請求項1~6のいずれか一項に記載のキャッシュメモリ装置。記憶装置にアクセスしてプログラムを実行するプロセッサコアと、前記記憶装置のデータをキャッシュするキャッシュメモリ装置と、を備え、前記キャッシュメモリ装置は、複数のキャッシュラインを有する記憶部と、前記複数のキャッシュラインのうち、前記記憶装置に書き込まれていないデータを含むダーティラインの数が予め定めた所定数を超える場合に、前記ダーティラインのデータを前記記憶装置に書き込む制御部と、を備えることを特徴とするプロセッサ。記憶装置と、前記記憶装置にアクセスしてプログラムを実行するプロセッサコアと、前記記憶装置のデータをキャッシュするキャッシュメモリ装置と、を備え、前記キャッシュメモリ装置は、複数のキャッシュラインを有する記憶部と、前記複数のキャッシュラインのうち、前記記憶装置に書き込まれていないデータを含むダーティラインの数が予め定めた所定数を超える場合に、前記ダーティラインのデータを前記記憶装置に書き込む制御部と、を備えることを特徴とする情報処理装置。従来技術では、十分な消費電力の削減が図れない。実施形態のキャッシュメモリ装置は、記憶装置のデータをキャッシュする。このキャッシュメモリ装置は、記憶部と、制御部と、を備える。記憶部は、複数のキャッシュラインを有する。制御部は、前記複数のキャッシュラインのうち、前記記憶装置に書き込まれていないデータを含むダーティラインの数が予め定めた所定数を超える場合に、前記ダーティラインのデータを前記記憶装置に書き込む。以下、実施形態のキャッシュメモリ装置、プロセッサ、および情報処理装置について、図面を参照して説明する。情報処理装置図1は、本実施形態の情報処理装置1の外観を示す図である。この情報処理装置1は、タブレット型の情報端末として構成されている。情報処理装置1は、端末表面に表示部2aを備える。表示部2aには、例えば、低消費電力の反射型液晶ディスプレイ、あるいは電子ペーパーなどが用いられる。また、情報処理装置1は、端末表面の表示部2a以外の部分に太陽電池3を備える。また、情報処理装置1は、表示部2aの表面にポインティングデバイスとして機能するタッチパネル2bを備える。さらに、情報処理装置1は、端末表面の表示部2aと重ならない位置にキーボード4を備える。キーボード4は、太陽電池3の表面に透明なタッチパネル2bを重ねることで実現してもよい。また、透明な素材または遮光性の部分の少ない素材を用いた機械式のキーボード4として実現してもよい。図2は、本実施形態の情報処理装置1のハードウェア構成例を示すブロック図である。情報処理装置1は、主なハードウェア構成として、プロセッサ10と、メインメモリ記憶装置5と、2次ストレージ6と、太陽電池3と、蓄電部7と、電源制御部8と、表示部2aと、タッチパネル2bと、キーボード4と、通信インタフェース通信I/F9と、を備えている。情報処理装置1は、太陽電池3で発電した電力で動作する。しかし、太陽電池3で発電する電力だけでは動作時何らかの処理を実行しているときの情報処理装置1全体のピークの消費電力をまかなえない。このため、アイドル時ユーザからの応答待ちの時間や、情報処理装置1を使用していない時間などに太陽電池3で発電した余剰電力を蓄電部7に充電しておく。そして、動作時には、電源制御部8が、蓄電部7からの電力を情報処理装置1の各部に供給するように制御する。このような電源制御は、ピークシフトとも呼ばれる。蓄電部7は、リチウムイオン電池などのバッテリ、または電気2重層キャパシタなどを、単独で、または組み合わせて実現できる。例えば、太陽電池3で発電した電力をまず電気2重層キャパシタに蓄積し、蓄積した電力をさらにリチウムイオン電池に充電するような組み合わせが可能である。電源制御部8は、蓄電部7に蓄積している電力量を管理し、プロセッサ10などの外部の構成部が蓄電部7に蓄積している電力量を知るための機能を備える。プロセッサ10が蓄電部7に蓄積している電力量を知る機能は、例えば、蓄電部7に蓄積している電力量が予め決められた規定量より少なくなった時点、または多くなった時点で、電源制御部8がプロセッサ10に対して割り込みで伝えるように構成することで実現できる。また、別の実現方法としては、プロセッサ10からのコマンドを受け取ると電源制御部8が現在の電力量をプロセッサ10に送り返すように実装することもできる。プロセッサ10は、アプリケーションプログラムやオペレーティングシステムを実行して情報処理装置1の全体を制御する。本実施形態の情報処理装置1は、例えばLinux登録商標などのオペレーティングシステムを搭載している。プロセッサ10は、プロセッサコア11と、キャッシュメモリ装置100とを備える。プロセッサコア11は、メインメモリ5にアクセスしながらアプリケーションプログラムやオペレーティングシステムを実行する。キャッシュメモリ装置100は、メインメモリ5のデータの一部をキャッシュする。プロセッサ10は、詳細を後述するキャッシュメモリ装置100を備えることで、キャッシュメモリ装置100に対する電源の供給を停止する深い待機モードに積極的に入るようにし、待機モード中の消費電力の大幅な削減を実現する。メインメモリ5は、例えば、高速に読み書きできるMRAMMagnetoresistiveRandomAccessMemoryなどの不揮発メモリで実現する。MRAM以外に、PCMPhaseChangeMemory、PRAMやPCRAMと呼ばれることもあるやReRAMResistanceRandomAccessMemoryをメインメモリ5として用いることもできる。また、待機時の消費電力が小さなローパワーDRAMDynamicRandomAccessMemoryや、通常のDRAMをメインメモリ5として用いるようにしてもよい。2次ストレージ6は、情報処理装置1が必要とするデータやプログラムを記憶する補助記憶部である。例えば、2次ストレージ6は、フラッシュメモリのチップを搭載した記憶部により実現できる。また、2次ストレージ6としてSDカードやSSDを用いることもできる。通信I/F9は、例えば無線LANLocalAreaNetworkなどによる通信を行うためのインタフェースである。通信のプロトコルは無線LANに限られず、有線LAN、Bluetooth登録商標、ZigBee登録商標、赤外線通信、可視光通信、光回線網、電話回線網、およびインターネットなどのあらゆるプロトコルを利用できる。キャッシュメモリ装置の概要次に、本実施形態の情報処理装置1のプロセッサ10が備えるキャッシュメモリ装置100について説明する。図3は、キャッシュメモリ装置100の概要を説明する図である。キャッシュメモリ装置100は、図3に示すように、キャッシュメモリ記憶部110と、キャッシュコントローラ制御部120と、を備える。キャッシュメモリ110は、キャッシュしたデータを記憶するメモリである。キャッシュメモリ110は、複数のキャッシュライン以下、単にラインという。を有する。キャッシュメモリ110の各ラインは、一定のサイズのまとまったデータを記憶するようになっている。各ラインが記憶するデータのサイズをラインサイズと呼び、ラインサイズの代表的な例は64バイトである。キャッシュメモリ110の各ラインのことをエントリと呼ぶ場合もある。キャッシュメモリ110の各ラインは、そのラインに記憶するデータのメインメモリ5上のアドレスを指定するアドレス欄と、そのラインに有効なデータが入っていることを示すバリッドフラグVと、そのラインがダーティラインであることを示すダーティフラグDと、ラインサイズのデータを記憶するデータ欄とを有し、これら4つの情報の組を保持する。ダーティラインとは、プロセッサ10の書き込みデータが記憶され、且つ、その書き込みデータがメインメモリ5にはまだ書き込まれていない状態のラインをいう。なお、後述する実施例においては、ラインのバリッドフラグVが立っていない時はダーティフラグDが下がっているように管理することで、ダーティフラグDをチェックすることでラインがダーティラインであるか否かを簡単に判断できるように実施する方法を示している。ラインのバリッドフラグVが立っていないときはダーティフラグDの値が不定になるように実施する場合は、バリッドフラグVとダーティフラグDの両方が立っていることを確認することで、ラインがダーティラインか否かを判断するように実施できる。キャッシュコントローラ120は、読み出し制御部121と、書き込み制御部122と、を備える。読み出し制御部121は、プロセッサコア11からのメインメモリ5に対するデータ読み出し要求を処理する。書き込み制御部122は、プロセッサコア11からのメインメモリ5に対するデータ書き込み要求を処理する。プロセッサコア11がプログラムの実行に伴って1つの命令でメインメモリ5に対して読み書きするデータのサイズは、例えば、4バイト、1バイト、8バイトといったように、キャッシュメモリ110のラインサイズよりも小さい。プロセッサコア11がメインメモリ5からデータを読み出す場合、キャッシュコントローラ120の読み出し制御部121は、プロセッサコア11からのデータ読み出し要求に従い、まず、指定されたアドレスに対応するラインがキャッシュメモリ110中に存在するか否かを確認する。そして、該当するラインがキャッシュメモリ110中に存在していればヒット、読み出し制御部121は、指定されたアドレスのデータをキャッシュメモリ110から読み出してプロセッサコア11に返す。一方、該当するラインがキャッシュメモリ110中に存在していなければミスヒット、読み出し制御部121は、指定されたアドレスを含むラインサイズ分のデータをメインメモリ5から読み出してキャッシュメモリ110に記憶した後、指定されたアドレスのデータをキャッシュメモリ110から読み出してプロセッサコア11に返す。ミスヒット時にメインメモリ5からキャッシュメモリ110にラインサイズ分のデータをまとめて読み込んでおくことによって、次に近傍のアドレスのデータをアクセス読み出しあるいは書き込みする際は、そのデータは既にキャッシュメモリ110上に読み込まれているため、高速にアクセスできる。また、プロセッサコア11がメインメモリ5にデータを書き込む場合は、キャッシュコントローラ120の書き込み制御部122が、プロセッサコア11からのデータ書き込み要求に従い、まず、指定されたアドレスに対応するラインがキャッシュメモリ110中に存在するか否かを確認する。ここで、データの書き込みは、直前に読み出したデータの上書きかその近傍のアドレスへの書き込みが多い参照局所性が高いため、多くの場合、書き込みたいアドレスに対応するラインがキャッシュメモリ110中に存在する。該当するラインがキャッシュメモリ110中に存在する場合ヒット、書き込み制御部122は、指定されたアドレスにデータを書き込む。一方、該当するラインがキャッシュメモリ110中に存在しない場合はミスヒット、書き込み制御部122は、例えば、指定されたアドレスを含むラインサイズ分のデータをメインメモリ5から読み出してキャッシュメモリ110に記憶した後、指定されたアドレスのデータを書き換える。なお、ミスヒット時に、キャッシュメモリ110のラインをデータ書き込み用に確保して、そのライン中のいずれかのバイトにデータを書き込むとともに、どのバイトにデータを書き込んだかを示すフラグを別途用意することで、メインメモリ5にアクセスすることなくキャッシュメモリ110にデータを書き込めるようにする方法もある。また、ミスヒット時に、キャッシュメモリ110にはデータを書き込まず、メインメモリ5に直接データを書き込む方法もある。本実施形態は、いずれのミスヒット時の処理方式とも組み合わせて実施することができる。一般的に、キャッシュメモリ装置の構成方法としては、フルアソシアティブ型、ダイレクトマッピング型、nウェイセットアソシアティブ型などが知られている。フルアソシアティブ型のキャッシュメモリ装置では、プロセッサコア11がメインメモリ5をアクセスするためのアドレスを上位と下位に分け、上位アドレスでキャッシュメモリ110のアドレス欄を検索し、上位アドレスと同じアドレスのアドレス欄を持つラインがあれば、そのラインのデータ欄の中の下位アドレスで指定される位置のデータをアクセスする。ダイレクトマッピング型あるいはセットアソシアティブ型の場合は、プロセッサコア11がメインメモリ5をアクセスするためのアドレスを上位と中位と下位に分け、中位アドレスでキャッシュメモリ110のラインセットアソシアティブの場合は各ウェイのラインの集合を選択し、選択したラインのうち、アドレス欄が上位アドレスと等しいラインがあれば、そのラインのデータ欄の中の下位アドレスで指定される位置のデータをアクセスする。本実施形態のキャッシュメモリ装置100は、以上の一般的に知られている構成方法をいずれも採用できる。また、本実施形態のキャッシュメモリ装置100は、ライトバック型のデータ書き込み方式を基本とする。すなわち、本実施形態のキャッシュメモリ装置100は、キャッシュメモリ110のダーティフラグが立っているダーティラインのデータを、ダーティラインにデータを書き込んだときよりも後のしかるべき時点で、メインメモリ5に書き込む書き戻す。このダーティラインのデータをメインメモリ5に書き込むタイミングは、プロセッサコア11がアクセスした他のアドレスのデータを格納するためにダーティラインのデータを入れ替えるとき言い換えれば、ダーティラインを再利用するとき、あるいは、プロセッサコア11がキャッシュメモリ110のパージフラッシュとも呼ぶを指示する命令を出したとき、あるいは、マルチコアプロセッサで他のプロセッサコアのキャッシュメモリからアクセスされたときなど、様々である。本実施形態のキャッシュメモリ装置100は、キャッシュメモリ110内に存在するダーティラインの数が予め定めた所定数以下、許容ライン数という。を超えないように管理する。すなわち、本実施形態のキャッシュメモリ装置100では、キャッシュメモリ110内のダーティラインが許容ライン数を超える場合には、ダーティラインのデータをメインメモリ5に書き込む書き戻す機能を、キャッシュコントローラ120に持たせている。このような機能をキャッシュコントローラ120が持つことで、本実施形態のキャッシュメモリ装置100は、ライトバック型の特徴を活かしてメインメモリ5への書き込み頻度を削減し、メインメモリ5への書き込み完了待ちによるプロセッサコア11のストールメインメモリ5への書き込みの完了を待っている間プロセッサコア11が次の命令の実行に進めない状態の発生を有効に抑制しながら、キャッシュメモリ装置100に対する電源の供給を遮断するときに、プロセッサコア11からのパージを指示する命令に応じてキャッシュメモリ110からメインメモリ5に書き戻すデータ量を抑えることができる。したがって、本実施形態のキャッシュメモリ装置100を備えるプロセッサ10は、実行モードから、キャッシュメモリ装置100に対する電源の供給を遮断する深い待機モードに切り替わるのに要する時間と消費電力を削減することができるので、ごく短時間の待機時間であっても深い待機モードに切り替えることができ、大幅な消費電力の削減を図ることができる。また、本実施形態の適用ケースについて説明する。ライトバック型のキャッシュメモリを持つプロセッサでは、キャッシュメモリに対する電源供給を停止する際に、キャッシュメモリ内にのみ書き込まれてメインメモリに書き込まれていないデータをメインメモリに書き込んだ後に、キャッシュメモリに対する電源の供給を遮断する必要がある。このため、ライトバック型のキャッシュメモリは、実行モードから待機モードへの切り替えに要するコスト時間や消費電力が、ライトスルー型のキャッシュメモリに比べて大きい。キャッシュメモリに対する電源の供給を停止する待機モードへの切り替え頻度が少ない場合には、待機モードへ入るためのコストは無視できるが、その頻度が大きくなると無視できなくなる。例えば、消費電力の大幅な削減を実現するために、プロセッサが数ミリ秒乃至は数十ミリ秒単位のごく短い待機時間でもキャッシュメモリに対する電源の供給を停止させる待機モードに入るようにした場合、実行モードから待機モードへの切り替えが頻繁に発生し、切り替えに要するコストが大きいために、期待通りの消費電力の削減が図れない。このようなケースで、本実施形態の発明を適用すると、プログラム実行中のメインメモリへのデータの書き込み頻度が小さく、かつ、実行モードから待機モードへの切り替えに要する時間や消費電力を抑えることができる。以下、本実施形態のキャッシュメモリ装置100の具体例第1実施例乃至第6実施例について、図4乃至図28を参照して説明する。以下では、第1実施例のキャッシュメモリ装置100をキャッシュメモリ装置100a、第2実施例のキャッシュメモリ装置100をキャッシュメモリ装置100b、第3実施例のキャッシュメモリ装置100をキャッシュメモリ装置100c、第4実施例のキャッシュメモリ装置100をキャッシュメモリ装置100d、第5実施例のキャッシュメモリ装置100をキャッシュメモリ装置100e、第6実施例のキャッシュメモリ装置100をキャッシュメモリ装置100fと表記する。第1実施例まず、第1実施例のキャッシュメモリ装置100aについて説明する。図4は、第1実施例のキャッシュメモリ装置100aの構成を示す図である。第1実施例のキャッシュメモリ装置100aは、キャッシュメモリ110aと、キャッシュコントローラ120aと、を備える。キャッシュメモリ110aは、Rキャッシュメモリ第1記憶部111と、Wキャッシュメモリ第2記憶部112と、の2つの記憶部を有する。Rキャッシュメモリ111は、任意の数のラインを有するキャッシュメモリである。Wキャッシュメモリ112は、許容ライン数許容するダーティラインの数のラインを有するキャッシュメモリである。プロセッサ10がメインメモリ5から読み出したデータは、Rキャッシュメモリ111とWキャッシュメモリ112のいずれかに記憶されるが、プロセッサ10がメインメモリ5に書き込むデータは、Wキャッシュメモリ112にのみ記憶される。つまり、第1実施例のキャッシュメモリ装置100aでは、ダーティラインはWキャッシュメモリ112にしか存在させない。そのため、Rキャッシュメモリ111の各ラインには、ダーティフラグD欄は不要である。キャッシュコントローラ120aは、読み出し制御部121aと、書き込み制御部122aと、を備える。読み出し制御部121aは、プロセッサコア11からのメインメモリ5に対するデータ読み出し要求があると、Rキャッシュメモリ111とWキャッシュメモリ112の双方を対象としてデータの読み出しを行う。一方、書き込み制御部122aは、プロセッサコア11からのメインメモリ5に対するデータ書き込み要求があると、Wキャッシュメモリ112のみを対象としてデータの書き込みを行う。そして、書き込み制御部122aは、Wキャッシュメモリ112のラインがすべてダーティラインとなっており、新たなデータを書き込むラインを確保する必要がある場合に、そのダーティラインのデータをメインメモリ5に書き戻してラインを開放した後、そのラインにデータを書き込む。これにより、キャッシュメモリ110a内に存在するダーティラインの数を、常に許容ライン数以下とすることができる。図5は、プロセッサコア11がメインメモリ5に対するデータの読み出し要求を出したときに、キャッシュコントローラ120aの読み出し制御部121aにより実行される処理を示すフローチャートである。プロセッサコア11からのメインメモリ5に対するデータ読み出し要求があると、読み出し制御部121aは、まず、指定されたアドレスに対応するラインがRキャッシュメモリ111中に存在するか否かを判定するステップS101。そして、指定されたアドレスに対応するラインがRキャッシュメモリ111中に存在する場合ステップS101:Yes、読み出し制御部121aは、該当するラインから指定されたアドレスのデータを読み出してプロセッサコア11に返すステップS102。一方、指定されたアドレスに対応するラインがRキャッシュメモリ111中に存在しない場合ステップS101:No、読み出し制御部121aは、次に、指定されたアドレスに対応するラインがWキャッシュメモリ112中に存在するか否かを判定するステップS103。そして、指定されたアドレスに対応するラインがWキャッシュメモリ112中に存在する場合ステップS103:Yes、読み出し制御部121aは、該当するラインから指定されたアドレスのデータを読み出してプロセッサコア11に返すステップS104。一方、指定されたアドレスに対応するラインがWキャッシュメモリ112中に存在しない場合ステップS103:No、読み出し制御部121aは、Rキャッシュメモリ111のいずれかのラインを選択し、指定されたアドレスを含むラインサイズ分のデータをメインメモリ5から読み出して選択したラインに記憶する。そして、読み出し制御部121aは、データを記憶したラインのバリッドフラグVを立て、指定されたアドレスのデータをプロセッサコア11に返すステップS105。なお、以上の例では、ステップS105において、メインメモリ5から新しく読み出したデータを記憶するキャッシュメモリ110のラインをRキャッシュメモリ111に確保するようにしているが、Rキャッシュメモリ111とWキャッシュメモリ112のいずれかから確保するようにしてもよい。その場合、Wキャッシュメモリ112中のダーティフラグDが立っているラインを確保して再利用する際には、そのラインダーティラインに記憶しているデータをメインメモリ5に書き戻してから再利用する必要がある。図6は、プロセッサコア11がメインメモリ5に対するデータの書き込み要求を出したときに、キャッシュコントローラ120aの書き込み制御部122aにより実行される処理を示すフローチャートである。プロセッサコア11からのメインメモリ5に対するデータ書き込み要求があると、書き込み制御部122aは、まず、指定されたアドレスに対応するラインがWキャッシュメモリ112中に存在するか否かを判定するステップS201。そして、指定されたアドレスに対応するラインがWキャッシュメモリ112中に存在する場合ステップS201:Yes、書き込み制御部122aは、該当するラインを書き込み対象のラインとして選択するステップS202。一方、指定されたアドレスに対応するラインがWキャッシュメモリ112中に存在しない場合ステップS201:No、書き込み制御部122aは、Wキャッシュメモリ112内の1つのラインを書き込み対象のラインとして選択するステップS203。このとき、書き込み制御部122aは、Wキャッシュメモリ112内にダーティフラグDが立っていないラインがあれば、そのラインを書き込み対象のラインとして優先的に選択し、Wキャッシュメモリ112内のすべてのラインにダーティフラグDが立っている、つまりWキャッシュメモリ112内のすべてのラインがダーティラインの場合に、ダーティラインのいずれかを書き込み対象のラインとして選択する。次に、書き込み制御部122aは、ステップS203で選択したラインがダーティラインであるか否かを判定するステップS204。そして、ステップS203で選択したラインがダーティラインであればステップS204:Yes、書き込み制御部122aは、ステップS203で選択したラインのデータをメインメモリ5に書き戻すステップS205。一方、ステップS203で選択したラインがダーティラインでなければステップS204:No、ステップS205の処理は行わずに次に進む。次に、書き込み制御部122aは、指定されたアドレスに対応するラインがRキャッシュメモリ111中に存在するか否かを判定するステップS206。そして、指定されたアドレスに対応するラインがRキャッシュメモリ111中に存在しなければステップS206:No、書き込み制御部122aは、指定されたアドレスを含むラインサイズ分のデータをメインメモリ5から読み出して、ステップS203で選択したラインに記憶するステップS207。一方、指定されたアドレスに対応するラインがRキャッシュメモリ111中に存在する場合はステップS206:Yes、書き込み制御部122aは、指定されたアドレスに対応するRキャッシュメモリ111のラインの内容を、ステップS203で選択したラインにコピーする。そして、コピー元のRキャッシュメモリ111のラインのバリッドフラグVを下げ、当該ラインを未使用にするステップS208。次に、書き込み制御部122aは、ステップS202またはステップS203で選択したラインの指定されたアドレスにデータを書き込み、当該ラインのダーティフラグDを立てるステップS209。以上説明した第1実施例のキャッシュメモリ装置100aは、フルアソシアティブ型、ダイレクトマッピング型、セットアソシアティブ型など、従来知られている様々な方式のキャッシュメモリ装置をベースに実現できる。フルアソシアティブ型をベースとしたキャッシュメモリ装置100aは、キャッシュメモリ110aのラインを2つの部分に分けてキャッシュコントローラ120aが管理することで実現することができる。ダイレクトマッピング型をベースとしたキャッシュメモリ装置100aの場合には、Rキャッシュメモリ111とWキャッシュメモリ112の2つダイレクトマッピング型のキャッシュメモリを用意することで実現できる。セットアソシアティブ型をベースとしたキャッシュメモリ装置100aの場合には、セット単位でRキャッシュメモリ111とWキャッシュメモリ112に分けて実現できる。例えば4ウェイセットアソシアティブ型の場合には、3つのウェイをRキャッシュメモリ111に、1つのウェイをWキャッシュメモリ112に対応させると、ダーティラインがキャッシュメモリ110a中の総ライン数の25を超えないように実現することができる。なお、以上説明した第1実施例のキャッシュメモリ装置100aに対して、ライトバッファを付加することも可能である。ライトバッファを付加した場合、図6のステップS205でラインのデータをメインメモリ5に書き戻す代わりに、書き戻すのに必要な情報をライトバッファに入れておく。ライトバッファは、プロセッサ10からメインメモリ5へのアクセスがないタイミングを見計らって、メインメモリ5へデータを書き込む。第2実施例次に、第2実施例のキャッシュメモリ装置100bについて説明する。図7は、第2実施例のキャッシュメモリ装置100bの構成を示す図である。第2実施例のキャッシュメモリ装置100bは、キャッシュメモリ110と、キャッシュコントローラ120bと、を備える。キャッシュメモリ110は、図3に示したキャッシュメモリ110と同様である。キャッシュコントローラ120bは、読み出し制御部121と、書き込み制御部122bと、ダーティラインカウント部123と、を備える。読み出し制御部121は、図3に示した読み出し制御部121と同様である。書き込み制御部122bは、プロセッサコア11からのメインメモリ5に対するデータ書き込み要求があると、指定されたアドレスに対応するキャッシュメモリ110のラインを選択し、そのラインの指定されたアドレスにデータを書き込む。そして、書き込み制御部122bは、選択したラインにデータを書き込んだ結果、キャッシュメモリ110内のダーティラインの数が許容ライン数を超える場合に、ダーティラインのデータをメインメモリ5に書き戻す。これにより、キャッシュメモリ110内に存在するダーティラインの数を許容ライン数以下に保つことができる。ダーティラインカウント部123は、キャッシュメモリ110内のダーティラインの数をカウントする。書き込み制御部122bは、プロセッサコア11からのデータ書き込み要求に応じてデータの書き込みを行った後、ダーティラインカウント部123の出力を参照して、キャッシュメモリ110内のダーティラインの数が許容ライン数を超えるか否かを判定する。なお、第2実施例のキャッシュメモリ装置100bも、第1実施例のキャッシュメモリ装置100aと同様に、フルアソシアティブ型、ダイレクトマッピング型、セットアソシアティブ型など、従来知られている様々な方式のキャッシュメモリ装置をベースに実現できる。図8は、プロセッサコア11がメインメモリ5に対するデータの読み出し要求を出したときに、キャッシュコントローラ120bの読み出し制御部121により実行される処理を示すフローチャートである。プロセッサコア11からのメインメモリ5に対するデータ読み出し要求があると、読み出し制御部121は、指定されたアドレスに対応するラインがキャッシュメモリ110内に存在するか否かを判定するステップS301。そして、指定されたアドレスに対応するラインがキャッシュメモリ110内に存在する場合ステップS301:Yes、読み出し制御部121は、該当するラインから指定されたアドレスのデータを読み出してプロセッサコア11に返すステップS302。一方、指定されたアドレスに対応するラインがキャッシュメモリ110内に存在しない場合ステップS301:No、読み出し制御部121は、キャッシュメモリ110のいずれかのラインを選択するステップS303。そして、読み出し制御部121は、ステップS303で選択したラインのダーティフラグDを参照し、そのラインがダーティラインであるか否かを判定するステップS304。そして、ステップS303で選択したラインがダーティラインであればステップS304:Yes、読み出し制御部121は、ステップS303で選択したラインのデータをメインメモリ5に書き戻すステップS305。一方、ステップS303で選択したラインがダーティラインでなければステップS304:No、ステップS305の処理は行わずに次に進む。次に、読み出し制御部121は、指定されたアドレスを含むラインサイズ分のデータをメインメモリ5から読み出して、そのデータをステップS303で選択したラインに記憶する。そして、読み出し制御部121は、データを記憶したラインのバリッドフラグVを立てるとともにダーティフラグDを下げ、指定されたアドレスのデータをプロセッサコア11に返すステップS306。図9は、プロセッサコア11がメインメモリ5に対するデータの書き込み要求を出したときに、キャッシュコントローラ120bの書き込み制御部122bにより実行される処理を示すフローチャートである。プロセッサコア11からのメインメモリ5に対するデータ書き込み要求があると、書き込み制御部122bは、まず、指定されたアドレスに対応するラインがキャッシュメモリ110内に存在するか否かを判定するステップS401。そして、指定されたアドレスに対応するラインがキャッシュメモリ110内に存在する場合ステップS401:Yes、書き込み制御部122bは、該当するラインを書き込み対象のラインとして選択し、そのライン内の該当箇所通常は書き込みたいデータサイズはラインサイズよりも小さいので、ライン内の書き込むべき位置を、指定されたアドレスから計算するにデータを書き込んで、そのラインのダーティフラグDを立てるステップS402。一方、指定されたアドレスに対応するラインがキャッシュメモリ110内に存在しない場合ステップS401:No、書き込み制御部122bは、キャッシュメモリ110内の1つのラインを書き込み対象のラインとして選択するステップS403。次に、書き込み制御部122bは、ステップS403で選択したラインがダーティラインであるか否かを判定するステップS404。そして、ステップS403で選択したラインがダーティラインであればステップS404:Yes、書き込み制御部122bは、ステップS403で選択したラインのデータをメインメモリ5に書き戻すステップS405。一方、ステップS403で選択したラインがダーティラインでなければステップS404:No、ステップS405の処理は行わずに次に進む。次に、書き込み制御部122bは、指定されたアドレスを含むラインサイズ分のデータをメインメモリ5から読み出して、ステップS403で選択したラインに記憶し、そのラインのバリッドフラグVとダーティフラグDを立てるとともに、そのライン内の該当箇所にデータを書き込むステップS406。次に、書き込み制御部122bは、ダーティラインカウント部123の出力を参照し、キャッシュメモリ110内のダーティラインの数が許容ライン数を超えるか否かを判定するステップS407。そして、キャッシュメモリ110内のダーティラインの数が許容ライン数に達していればステップS407:Yes、書き込み制御部122bは、キャッシュメモリ110内のステップS406でデータを書き込んだライン以外のラインを選択し、そのラインのデータをメインメモリ5に書き戻して、そのラインのダーティフラグDを下げるステップS408。一方、キャッシュメモリ110内のダーティラインの数が許容ライン数を超えなければステップS407:No、ステップS408の処理は行わずに終了する。なお、図9のステップS408において、メインメモリ5にデータを書き戻すダーティラインを選択する際に、ステップS406でデータを書き込んだラインを除外するようにしているのは、データを書き込んだラインに対するアクセスがそのあと続けて発生する確率が高いためである。ただし、ステップS406でデータを書き込んだラインも含めて、キャッシュメモリ110内のすべてのダーティラインの中から、メインメモリ5にデータを書き戻すラインを選択するようにしてもよい。また、図8のステップS303および図9のステップS403でキャッシュメモリ110内の1つのラインを選択する方法は、一般的に知られている方法をいずれも採用できる。例えば、データが書き込まれてから最も時間がたっているラインを選択する方法や、最後に書き込みがあってから最も時間がたっているラインを選択する方法、最後にアクセス読み出しあるいは書き込みがあってから最も時間がたっているラインを選ぶ方法、ダーティフラグDが立っていないラインを優先的に選択する方法、バリッドフラグVが立っていないラインを優先的に選択する方法、ランダムに選ぶ方法、あるいはそれらの組み合わせなど、様々な方法を採用することができる。また、ラインを選択する範囲は、フルアソシアティブ型をベースとしたキャッシュメモリ装置100bであれば、キャッシュメモリ110全体が対象範囲である。ダイレクトマッピング型をベースとしたキャッシュメモリ装置100bであれば、アクセスしたいメインメモリ5のアドレスからラインが一意に決まるので選ぶところは1つになる。セットアソシアティブ型をベースとしたキャッシュメモリ装置100bであれば、アクセスしたいメインメモリ5のアドレスから各ウェイにおけるラインがダイレクトマッピング型と同様に1つずつ決まるので、それらのラインの集合が選択する対象範囲になる。また、図9のステップS408におけるダーティラインの選択は、最後に書き込みがあってから最も時間がたっているラインを選ぶ方法、最後にアクセス読み出しあるいは書き込みがあってから最も時間がたっているラインを選ぶ方法、ランダムに選ぶ方法、あるいはそれらの組み合わせなど、様々な方法を採用することができる。第3実施例次に、第3実施例のキャッシュメモリ装置100cについて説明する。図10は、第3実施例のキャッシュメモリ装置100cの構成を示す図である。第3実施例のキャッシュメモリ装置100cは、キャッシュメモリ110と、キャッシュコントローラ120cと、ライトバッファ130と、を備える。キャッシュメモリ110は、図3に示したキャッシュメモリ110と同様である。キャッシュコントローラ120cは、読み出し制御部121と、書き込み制御部122cと、ダーティラインカウント部123と、を備える。読み出し制御部121は、図3に示した読み出し制御部121と同様である。ダーティラインカウント部123は、図7に示したダーティラインカウント部123と同様である。書き込み制御部122cは、図7に示した書き込み制御部122bと同様に、プロセッサコア11からのメインメモリ5に対するデータ書き込み要求があると、指定されたアドレスに対応するキャッシュメモリ110のラインを選択する。このとき、指定されたアドレスに対応するラインがキャッシュメモリ110内に存在していなければ、書き込み制御部122cは、キャッシュメモリ110から1つのラインを選択し、選択したラインがダーティラインであれば、そのラインのデータをメインメモリ5に書き戻すために必要な情報をライトバッファ130に入れる。また、書き込み制御部122cは、選択したラインの指定されたアドレスにデータを書き込んだ後、ダーティラインカウント部123の出力を参照して、キャッシュメモリ110内のダーティラインの数が許容ライン数を超えるか否かを判定する。そして、書き込み制御部122cは、キャッシュメモリ110内のダーティラインの数が許容ライン数を超える場合に、ダーティラインのデータをメインメモリ5に書き戻すために必要な情報をライトバッファ130に入れる。ライトバッファ130は、メインメモリ5に書き戻すデータを一時的に保持する。ライトバッファ130は、キャッシュメモリ装置の性能向上のために一般的に広く用いられている機構である。ライトバッファ130を備えていないキャッシュメモリ装置では、キャッシュメモリ110内のダーティラインを、新しいアドレスのデータを記憶するために再利用する際などに、ダーティラインのデータをメインメモリ5に書き戻す処理が終了してからでないと新しいアドレスのデータを書き込めないのに対し、ライトバッファ130を備えるキャッシュメモリ装置では、メインメモリ5にデータを書き戻すのに必要な情報、すなわちメインメモリ5上の書き戻すべきアドレスとデータの組からなる情報をライトバッファ130に入れておけば、すぐに新しいアドレスのデータを書き込むことができる。このように、ライトバッファ130を備えるキャッシュメモリ装置は、メインメモリ5に対するデータ書き戻しの完了を待つ必要がないので、プロセッサ10がストールすることがなくなる。また、ライトバッファ130にアドレスとデータの組が入れられると、しかるべきタイミングでメインメモリ5への書き戻しが行われる。この書き戻しは、メインメモリ5に対する他のアクセスがないときに行うことが望ましい。第3実施例のキャッシュメモリ装置100cは、書き込み制御部122cがダーティラインのデータを直接メインメモリ5に書き戻すのではなく、書き戻しに必要な情報をライトバッファ130に入れるようにしている点のみが、第2実施例のキャッシュメモリ装置100bと相違する。したがって、第3実施例のキャッシュメモリ装置100cにおいても、第2実施例のキャッシュメモリ装置100bと同様に、キャッシュメモリ110内に存在するダーティラインの数を許容ライン数以下に保つことができる。また、第3実施例のキャッシュメモリ装置100cは、メインメモリ5へのデータの書き戻しに伴うプロセッサ10のストールを有効に防止できる。図11は、プロセッサコア11がメインメモリ5に対するデータの読み出し要求を出したときに、キャッシュコントローラ120cの読み出し制御部121により実行される処理を示すフローチャートである。なお、図11のフローチャートにおけるステップS501~ステップS504の処理は、図8のフローチャートにおけるステップS301~ステップS304の処理と同じである。また、図11のフローチャートにおけるステップS506の処理は、図8のフローチャートにおけるステップS306の処理と同じである。図11のフローチャートにおいて、図8のフローチャートと相違するのは、ステップS505の処理である。すなわち、キャッシュコントローラ120cの読み出し制御部121は、ステップS503で選択したラインがダーティラインであればステップS504:Yes、ステップS505において、ステップS503で選択したラインのデータをメインメモリ5に書き戻すために必要な情報をライトバッファ130に入れる。図12は、プロセッサコア11がメインメモリ5に対するデータの書き込み要求を出したときに、キャッシュコントローラ120cの書き込み制御部122cにより実行される処理を示すフローチャートである。なお、図12のフローチャートにおけるステップS601~ステップS604の処理は、図9のフローチャートにおけるステップS401~ステップS404の処理と同じである。また、図12のフローチャートにおけるステップS606およびステップS607の処理は、図9のフローチャートにおけるステップS406およびステップS407の処理と同じである。図12のフローチャートにおいて、図9のフローチャートと相違するのは、ステップS605の処理とステップS608の処理である。すなわち、キャッシュコントローラ120cの書き込み制御部122cは、ステップS603で選択したラインがダーティラインであればステップS604:Yes、ステップS605において、ステップS603で選択したラインのデータをメインメモリ5に書き戻すために必要な情報をライトバッファ130に入れる。また、キャッシュコントローラ120cの書き込み制御部122cは、ステップS606におけるデータの書き込み後、キャッシュメモリ110内のダーティラインの数が許容ライン数に達していればステップS607:Yes、ステップS608において、キャッシュメモリ110内のステップS606でデータを書き込んだライン以外のダーティラインを選択し、そのラインのデータをメインメモリ5に書き戻すために必要な情報をライトバッファ130に入れて、そのラインのダーティフラグDを下げる。ライトバッファ130は、一般的に用いられているものと同様の動作を行う。図13は、ライトバッファ130の動作の一例を示すフローチャートである。図13のフローチャートで示す処理は、プロセッサ10がメインメモリ5にアクセスしていないときなど任意のタイミングで実行される。ライトバッファ130は、まず、メインメモリ5に対するデータの書き戻しに必要な情報が入っているか否かを判定するステップS701。そして、メインメモリ5に対するデータの書き戻しに必要な情報が入っていなければステップS701:No、そのまま処理を終了する。一方、メインメモリ5に対するデータの書き戻しに必要な情報が入っていればステップS701:Yes、ライトバッファ130は、プロセッサ10がメインメモリ5にアクセスしている状態か否か、すなわちメインメモリ5に対するデータの読み出し、または書き込みの動作中か否かを判定するステップS702。そして、メインメモリ5に対するデータの読み出し、または書き込みの動作中であればステップS702:Yes、その動作が終了するまで待機する。一方、メインメモリ5に対するデータの読み出しも書き込みも行っていなければステップS702:No、ライトバッファ130は、メインメモリ5に対するデータの書き戻しに必要な情報を1つ取り出し、取り出した情報に基づいて、メインメモリ5に対するデータの書き込みを行うステップS703。その後、ステップS701に戻って、メインメモリ5に対するデータの書き戻しがすべて終了するまで、以降の処理を繰り返す。第4実施例次に、第4実施例のキャッシュメモリ装置100dについて説明する。図14は、第4実施例のキャッシュメモリ装置100dの構成を示す図である。第4実施例のキャッシュメモリ装置100dは、キャッシュメモリ110と、キャッシュコントローラ120dと、を備える。キャッシュメモリ110は、図3に示したキャッシュメモリ110と同様である。キャッシュコントローラ120dは、読み出し制御部121と、書き込み制御部122dと、ダーティラインカウント部123と、書き戻し制御部124と、を備える。読み出し制御部121は、図3に示した読み出し制御部121と同様である。ダーティラインカウント部123は、図7に示したダーティラインカウント部123と同様である。書き込み制御部122dは、プロセッサコア11からのメインメモリ5に対するデータ書き込み要求があると、指定されたアドレスに対応するキャッシュメモリ110のラインを選択し、そのラインの指定されたアドレスにデータを書き込む。書き戻し制御部124は、プロセッサ10がメインメモリ5にアクセスしていないときなどの任意のタイミングでダーティラインカウント部123の出力を参照し、キャッシュメモリ110内のダーティラインの数が許容ライン数を超えているか否かを判定する。そして、書き戻し制御部124は、キャッシュメモリ110内のダーティラインの数が許容ライン数を超えている場合に、ダーティラインのデータをメインメモリ5に書き戻す。これにより、キャッシュメモリ110内に存在するダーティラインの数が一時的に許容ライン数を超えていたとしても、ダーティラインの数を許容ライン数以下に戻すことができる。また、ダーティラインのデータをメインメモリ5に書き戻す処理を任意のタイミングで行うため、メインメモリ5へのデータの書き戻しに伴うプロセッサ10のストールを有効に防止できる。図15は、プロセッサコア11がメインメモリ5に対するデータの書き込み要求を出したときに、キャッシュコントローラ120dの書き込み制御部122dにより実行される処理を示すフローチャートである。なお、図15のフローチャートにおけるステップS801~ステップS806の処理は、図9のフローチャートにおけるステップS401~ステップS406の処理と同じである。図15のフローチャートにおいて、図9のフローチャートと相違するのは、ステップS407およびステップS408に相当する処理を含まない点である。すなわち、キャッシュコントローラ120dの書き込み制御部122dは、ステップS802またはステップS806において、選択したラインの指定されたアドレスにデータを書き込むと、処理を終了する。図16は、キャッシュコントローラ120dの書き戻し制御部124により実行される処理の一例を示すフローチャートである。この図16のフローチャートで示す処理は、プロセッサ10がメインメモリ5にアクセスしていないときなどの任意のタイミングで実行される。処理が開始されると、書き戻し制御部124は、まず、ダーティラインカウント部123の出力を参照し、キャッシュメモリ110内のダーティラインの数が許容ライン数を超えているか否かを判定するステップS901。そして、書き戻し制御部124は、キャッシュメモリ110内のダーティラインの数が許容ライン数以下であればステップS901:No、そのまま処理を終了する。一方、キャッシュメモリ110内のダーティラインの数が許容ライン数を超えている場合ステップS901:Yes、書き戻し制御部124は、キャッシュメモリ110内のいずれかのダーティラインを選択するステップS902。そして、書き戻し制御部124は、ステップS902で選択したダーティラインのデータをメインメモリ5に書き戻しステップS903、そのラインのダーティフラグDを下げるステップS904。その後、ステップS901に戻って、キャッシュメモリ110内のダーティラインの数が許容ライン数以下になるまで、以降の処理を繰り返す。図17は、キャッシュコントローラ120dの書き戻し制御部124により実行される処理の他の例を示すフローチャートである。なお、図17のフローチャートにおけるステップS1001~ステップS1004の処理は、図16のフローチャートにおけるステップS901~ステップS904の処理と同じである。図17のフローチャートにおいて、図16のフローチャートと相違するのは、ステップS1005の処理が追加されている点である。すなわち、書き戻し制御部124は、ステップS1001でキャッシュメモリ110内のダーティラインの数が許容ライン数以下であると判定した場合ステップS1001:No、ステップS1005において、キャッシュメモリ110内のダーティラインの数が目標ライン数を超えているか否かを判定する。ここで、目標ライン数とは、キャッシュメモリ110内のダーティラインの数を減らすときの目標値であり、許容ライン数よりも小さな数である。ステップS1005の判定の結果、キャッシュメモリ110内のダーティラインの数が目標ライン数を超えていればステップS1005:Yes、ステップS1002に進んで、以降の処理を繰り返す。そして、キャッシュメモリ110内のダーティラインの数が目標ライン数以下となった段階でステップS1005:No、処理を終了する。書き戻し制御部124が図17のフローチャートで示す処理を実行した場合、キャッシュメモリ110内のダーティラインが目標ライン数まで減少するので、その後、キャッシュメモリ110内のダーティラインが許容ライン数に達するまでの時間を長くすることができ、メインメモリ5に対するデータの書き戻しの頻度を低下させることができる。第5実施例次に、第5実施例のキャッシュメモリ装置100eについて説明する。図18は、第5実施例のキャッシュメモリ装置100eの構成を示す図である。第5実施例のキャッシュメモリ装置100eは、キャッシュメモリ110と、キャッシュコントローラ120eと、ライトバッファ130と、を備える。キャッシュメモリ110は、図3に示したキャッシュメモリ110と同様である。ライトバッファ130は、図10に示したライトバッファ130と同様である。キャッシュコントローラ120eは、読み出し制御部121と、書き込み制御部122eと、ダーティラインカウント部123と、書き戻し制御部124eと、を備える。読み出し制御部121は、図3に示した読み出し制御部121と同様である。ダーティラインカウント部123は、図7に示したダーティラインカウント部123と同様である。書き込み制御部122eは、図14に示した書き込み制御部122dと同様に、プロセッサコア11からのメインメモリ5に対するデータ書き込み要求があると、指定されたアドレスに対応するキャッシュメモリ110のラインを選択する。このとき、指定されたアドレスに対応するラインがキャッシュメモリ110内に存在していなければ、書き込み制御部122eは、キャッシュメモリ110から1つのラインを選択し、選択したラインがダーティラインであれば、そのラインのデータをメインメモリ5に書き戻すために必要な情報をライトバッファ130に入れる。書き戻し制御部124eは、プロセッサ10がメインメモリ5にアクセスしていないときなどの任意のタイミングでダーティラインカウント部123の出力を参照し、キャッシュメモリ110内のダーティラインの数が許容ライン数を超えているか否かを判定する。そして、書き戻し制御部124eは、キャッシュメモリ110内のダーティラインの数が許容ライン数を超えている場合に、ダーティラインのデータをメインメモリ5に書き戻すために必要な情報をライトバッファ130に入れる。これにより、キャッシュメモリ110内に存在するダーティラインの数が一時的に許容ライン数を超えていたとしても、ダーティラインの数を許容ライン数以下に戻すことができる。また、ダーティラインのデータをメインメモリ5に直接書き戻すのではなく、書き戻しに必要な情報をライトバッファ130に入れるようにしているので、メインメモリ5へのデータの書き戻しに伴うプロセッサ10のストールを有効に防止できる。図19は、プロセッサコア11がメインメモリ5に対するデータの書き込み要求を出したときに、キャッシュコントローラ120eの書き込み制御部122eにより実行される処理を示すフローチャートである。なお、図19のフローチャートにおけるステップS1101~ステップS1104の処理は、図15のフローチャートにおけるステップS801~ステップS804の処理と同じである。また、図19のフローチャートにおけるステップS1106の処理は、図15のフローチャートにおけるステップS806の処理と同じである。図19のフローチャートにおいて、図15のフローチャートと相違するのは、ステップS1105の処理である。すなわち、キャッシュコントローラ120eの書き込み制御部122eは、ステップS1103で選択したラインがダーティラインであればステップS1104:Yes、ステップS1105において、ステップS1103で選択したラインのデータをメインメモリ5に書き戻すために必要な情報をライトバッファ130に入れる。図20は、キャッシュコントローラ120eの書き戻し制御部124eにより実行される処理の一例を示すフローチャートである。なお、図20のフローチャートにおけるステップS1201およびステップS1202の処理は、図16のフローチャートにおけるステップS901およびステップS902の処理と同じである。また、図20のフローチャートにおけるステップS1204の処理は、図16のフローチャートにおけるステップS904の処理と同じである。図20のフローチャートにおいて、図16のフローチャートと相違するのは、ステップS1203の処理である。すなわち、キャッシュコントローラ120eの書き戻し制御部124eは、ステップS1203において、ステップS1202で選択したダーティラインのデータをメインメモリ5に書き戻すために必要な情報をライトバッファ130に入れる。図21は、キャッシュコントローラ120eの書き戻し制御部124eにより実行される処理の他の例を示すフローチャートである。なお、図21のフローチャートにおけるステップS1301およびステップS1302の処理は、図17のフローチャートにおけるステップS1001およびステップS1002の処理と同じである。また、図21のフローチャートにおけるステップS1304およびステップS1305の処理は、図17のフローチャートにおけるステップS1004およびステップS1005の処理と同じである。図21のフローチャートにおいて、図17のフローチャートと相違するのは、ステップS1303の処理である。すなわち、キャッシュコントローラ120eの書き戻し制御部124eは、ステップS1303において、ステップS1302で選択したダーティラインのデータをメインメモリ5に書き戻すために必要な情報をライトバッファ130に入れる。第6実施例次に、第6実施例のキャッシュメモリ装置100fについて説明する。図22は、第6実施例のキャッシュメモリ装置100fの概要を説明する図である。第6実施例のキャッシュメモリ装置は、第1キャッシュメモリ装置100f-1と第2キャッシュメモリ装置100f-2を階層的に組み合わせた構成になっている。プロセッサコア11側の第1キャッシュメモリ装置100f-1は、許容ライン数と同じ数のラインを持つライトバック型のキャッシュメモリ装置として動作する。第1キャッシュメモリ装置100f-1とメインメモリ5の間の第2キャッシュメモリ装置100f-2は、任意の数のラインを持つライトスルー型のキャッシュメモリとして動作する。第2キャッシュメモリ装置100f-2はライトスルー型なので、その中にはダーティなラインは存在しない。この組み合わせにより、第1キャッシュメモリ装置100f-1と第2キャッシュメモリ装置100f-2から構成されるキャッシュメモリ装置100f内のダーティラインの最大数許容ライン数は、第1キャッシュメモリ装置100f-1内のダーティラインの最大数と同じライン数に抑えることができる。図23は、第6実施例のキャッシュメモリ装置100fの構成を示す図である。第6実施例のキャッシュメモリ装置100fは、第1キャッシュメモリ装置100f-1と、第2キャッシュメモリ装置100f-2と、を備える。第1キャッシュメモリ装置100f-1は、第1キャッシュメモリ110f-1と、第1キャッシュコントローラ120f-2と、を備える。第1キャッシュコントローラ120f-1は、第1読み出し制御部121f-1と、第1書き込み制御部122f-1と、を備える。第2キャッシュメモリ装置100f-2は、第2キャッシュメモリ110f-2と、第2キャッシュコントローラ120f-2と、を備える。第2キャッシュコントローラ120f-2は、第2読み出し制御部121f-2と、第2書き込み制御部122f-2と、を備える。図24は、プロセッサコア11がメインメモリ5に対するデータの読み出し要求を出したときに、第1キャッシュコントローラ120f-1の第1読み出し制御部121f-1により実行される処理を示すフローチャートである。プロセッサコア11からメインメモリ5に対するデータ読み出し要求があると、第1読み出し制御部121f-1は、まず、指定されたアドレスに対応するラインが第1キャッシュメモリ110f1内に存在するか否かを判定するステップS1401。そして、指定されたアドレスに対応するラインが第1キャッシュメモリ110f1内に存在する場合ステップS1401:Yes、第1読み出し制御部121f-1は、該当するラインから指定されたアドレスのデータを読み出してプロセッサコア5に返すステップS1402。一方、指定されたアドレスに対応するラインが第1キャッシュメモリ110f-1内に存在しない場合ステップS1401:No、第1読み出し制御部121f-1は、第1キャッシュメモリ110f-1のいずれかのラインを選択するステップS1403。そして、第1読み出し制御部121f-1は、ステップS1403で選択したラインのダーティフラグDを参照し、そのラインがダーティラインであるか否かを判定するステップS1404。そして、ステップS1403で選択したラインがダーティラインであればステップS1404:Yes、第1読み出し制御部121f-1は、ステップS1403で選択したラインに記憶しているデータをメインメモリ5に書き戻すことを第2キャッシュメモリ装置100f-2に依頼するステッS1405。一方、ステップS1403で選択したラインがダーティラインでなければステップS1404:No、ステップS1405の処理は行わずに次に進む。次に、第1読み出し制御部121f-1は、指定されたアドレスを含むラインサイズ分のデータを第2キャッシュメモリ装置100f-2から読み出して、そのデータをステップS1403で選択したラインに記憶する。そして、第1読み出し制御部121f-1は、データを記憶したラインのバリッドフラグVを立てるとともにダーティフラグDを下げ、指定されたアドレスのデータをプロセッサコア5に返すステッS1406。図25は、プロセッサコア11がメインメモリ5に対するデータの書き込み要求を出したときに、第1キャッシュコントローラ120f-1の第1書き込み制御部122f-1により実行される処理の一例を示すフローチャートである。プロセッサコア11からのメインメモリ5に対するデータ書き込み要求があると、第1書き込み制御部122f-1は、まず、指定されたアドレスに対応するラインが第1キャッシュメモリ110f-1内に存在するか否かを判定するステップS1501。そして、指定されたアドレスに対応するラインが第1キャッシュメモリ110f-1内に存在する場合ステップS1501:Yes、第1書き込み制御部122f-1は、該当するラインを書き込み対象のラインとして選択し、そのライン内の該当個所にデータを書き込んで、そのラインのダーティフラグDを立てるステップS1502。一方、指定されたアドレスに対応するラインが第1キャッシュメモリ110f-1内に存在しない場合ステップS1501:No、第1書き込み制御部122f-1は、第1キャッシュメモリ110f-1内の1つのラインを書き込み対象のラインとして選択するステップS1503。次に、第1書き込み制御部122f-1は、ステップS1503で選択したラインのダーティフラグDを参照し、そのラインがダーティラインであるか否かを判定するステップS1504。そして、ステップS1503で選択したラインがダーティラインであればステップS1504:Yes、第1書き込み制御部122f-1は、ステップS1503で選択したラインに記憶しているデータをメインメモリ5に書き戻すことを第2キャッシュメモリ装置100f-2に依頼するステップS1505。一方、ステップS1503で選択したラインがダーティラインでなければステップS1504:No、ステップS1505の処理は行わずに次に進む。次に、第1書き込み制御部122f-1は、指定されたアドレスを含むラインサイズ分のデータを第2キャッシュメモリ装置100f-2から読み出して、ステップS1503で選択したラインに記憶し、そのラインのバリッドフラグVを立てるとともに、そのライン内の該当個所にデータを書き込むステップS1506。図26は、プロセッサコア11がメインメモリ5に対するデータの書き込み要求を出したときに、第1キャッシュコントローラ120f-1の書き込み制御部122f-1により実行される処理の他の例を示すフローチャートである。図25に示した例と図26の例とでは、プロセッサコア11からのメインメモリ5に対するデータ書き込み要求を第1書き込み制御部122f-1が処理する際に、書き込み対象のアドレスのデータに対応するラインが第1キャッシュメモリ110f-1内に存在しない場合、すなわちミスヒット時の処理方式が異なる。図25に示した例は、書き込みのミスヒットが発生すると、該当するアドレスを含むラインサイズ分のデータをメインメモリ5から読み出して新しく確保したラインに書き込むことでミスヒット状態を解消する方式である。一方、図26の例は、書き込みのミスヒットが発生すると、メインメモリ5へのデータの書き込みを第2キャッシュメモリ装置100f-2に依頼する方式である。プロセッサコア11からのメインメモリ5に対するデータ書き込み要求があると、第1書き込み制御部122f-1は、まず、指定されたアドレスに対応するラインが第1キャッシュメモリ110f-1内に存在するか否かを判定するステップS1601。そして、指定されたアドレスに対応するラインが第1キャッシュメモリ110f-1内に存在する場合ステップS1601:Yes、第1書き込み制御部122f-1は、該当するラインを書き込み対象のラインとして選択し、そのライン内の該当個所にデータを書き込んで、そのラインのダーティフラグDを立てるステップS1602。一方、指定されたアドレスに対応するラインが第1キャッシュメモリ110f-1内に存在しない場合ステップS1601:No、第1書き込み制御部122f-1は、メインメモリ5に対するデータの書き込みを第2キャッシュメモリ装置100f-2に依頼するステップS1603。図27は、第1キャッシュメモリ装置100f-1がメインメモリ5に対するデータの読み出し要求を出したときに、第2キャッシュコントローラ120f-2の読み出し制御部121f-2により実行される処理を示すフローチャートである。第1キャッシュメモリ装置100f-1詳しくは第1キャッシュメモリ装置100f-1内の第1キャッシュコントローラ120f-1からメインメモリ5に対するデータ読み出し要求があると、第2読み出し制御部121f-2は、まず、指定されたアドレスに対応するラインが第2キャッシュメモリ110f2内に存在するか否かを判定するステップS1701。そして、指定されたアドレスに対応するラインが第2キャッシュメモリ110f-2内に存在する場合ステップS1701:Yes、第2読み出し制御部121f-2は、該当するラインから指定されたアドレスのデータを読み出して第1キャッシュメモリ装置100f-1に返すステップS1702。一方、指定されたアドレスに対応するラインが第2キャッシュメモリ110f-2内に存在しない場合ステップS1701:No、第2読み出し制御部121f-2は、第2キャッシュメモリ110f-2のいずれかのラインを選択するステップS1703。次に、第2読み出し制御部121f-2は、指定されたアドレスを含むラインサイズ分のデータをメインメモリ5から読み出して、そのデータをステップS1703で選択したラインに記憶する。そして、第2読み出し制御部121f-2は、データを記憶したラインのバリッドフラグVを立て、指定されたアドレスのデータを第1キャッシュメモリ装置100f-1に返すステップS1704。図28は、第1キャッシュメモリ装置100f-1がメインメモリ5に対するデータの書き込み要求を出したときに、第2キャッシュコントローラ120f-2の第2書き込み制御部122f-2により実行される処理を示すフローチャートである。第1キャッシュメモリ装置100f-1詳しくは第1キャッシュメモリ装置100f-1内の第1キャッシュコントローラ120f-1からのメインメモリ5に対するデータ書き込み要求があると、第2書き込み制御部122f-2は、まず、指定されたアドレスに対応するラインが第2キャッシュメモリ110f-2内に存在するか否かを判定するステップS1801。そして、指定されたアドレスに対応するラインが第2キャッシュメモリ110f-2内に存在する場合ステップS1701:Yes、第2書き込み制御部122f-2は、該当するラインを書き込み対象のラインとして選択し、そのライン内の該当個所にデータを書き込むステップS1702。一方、指定されたアドレスに対応するラインが第2キャッシュメモリ110f-2内に存在しない場合ステップS1701:No、ステップS1702の処理は行わずに次に進む。次に、第2書き込み制御部122f-2は、メインメモリ5にデータを書き込むステップS1703。なお、第1キャッシュメモリ装置100f-1は、ライトバッファ130を備える構成であってもよい。また、第2キャッシュメモリ装置100f-2は、ライトバッファ130を備える構成であってもよい。図22に示したように、第6実施例のキャッシュメモリ装置100fが備える第1キャッシュメモリ装置100f-1と第2キャッシュメモリ装置100f-2との関係は、2階層のキャッシュメモリ装置を備えるSoCSystemonaChipあるいはプロセッサにおける、プロセッサコア11に近いレベル1キャッシュと、メインメモリ5に近いレベル2キャッシュとの関係と同じである。よって、レベル1キャッシュとレベル2キャッシュから構成される階層キャッシュメモリ装置を備え、レベル1キャッシュおよびレベル2キャッシュの制御方式をライトバック方式かライトスルー方式かを設定できるSoCあるいはプロセッサを用いれば、レベル1キャッシュのライン数を許容ライン数として、レベル1キャッシュをライトバック方式に、レベル2キャッシュをライトスルー方式に設定することで、本実施例に基づいた動作をさせることができる。プロセッサのバリエーション以上、具体例を挙げて詳細に説明した本実施形態のキャッシュメモリ装置100は、様々な構成のプロセッサ10に適用できる。図29は、情報処理装置1が備えるプロセッサ10のバリエーションを示す図である。図2に示したプロセッサ10の構成は、図29aに示す例と一致している。図29bに示す例は、プロセッサ10が、1次キャッシュメモリ装置200と、2次キャッシュメモリ装置300と、を備える例である。プロセッサ10が図29bに示す構成の場合、1次キャッシュメモリ装置200が、本実施形態のキャッシュメモリ装置100となる。そして、本実施形態のキャッシュメモリ装置100がデータを書き戻す対象は、2次キャッシュメモリ装置300となる。なお、第6実施例を図29bのような変形例で実施する場合、1次キャッシュメモリ装置200がレベル1キャッシュとレベル2キャッシュから構成される階層キャッシュメモリ装置となる。2次キャッシュメモリ装置300は、MRAMやPCMなどの不揮発メモリの技術を用いた不揮発キャッシュメモリ装置として実現することが望ましいが、SRAMを用いた構成でも構わない。また、2次キャッシュメモリ装置300はライトスルー型でもライトバック型でもよい。2次キャッシュメモリ装置300をライトバック型にする方がメインメモリ5へのアクセス頻度を削減することができる。なお、図29bに示す例では、1次キャッシュメモリ装置200と2次キャッシュメモリ装置300との2段のキャッシュメモリ装置を備える構成であるが、3段以上のキャッシュメモリ装置を備える構成であってもよい。3段以上のキャッシュメモリ装置を備える構成の場合も、1次キャッシュメモリ装置200が、本実施形態のキャッシュメモリ装置100となる。図29cに示す例は、プロセッサ10が、第1プロセッサコア11aと第2プロセッサコア11bとを備えるマルチコアプロセッサとして構成された例である。この図29cの例では、第1プロセッサコア11aが第1の1次キャッシュメモリ装置200aを使用し、第2プロセッサコア11bが第2の1次キャッシュメモリ装置200bを使用する。また、第1の1次キャッシュメモリ装置200aと第2の1次キャッシュメモリ装置200bとに共通の2次キャッシュメモリ装置300が設けられている。プロセッサ10が図29cに示す構成の場合、第1の1次キャッシュメモリ装置200aおよび第2の1次キャッシュメモリ装置200bが、本実施形態のキャッシュメモリ装置100となる。そして、本実施形態のキャッシュメモリ装置100がデータを書き戻す対象は、2次キャッシュメモリ装置300となる。なお、図29cに示す例では、第1プロセッサコア11aおよび第2プロセッサコア11bの2つのプロセッサコアを備える構成であるが、3つ以上のプロセッサコアを備える構成であってもよい。3つ以上のプロセッサコアを備える構成の場合も、各プロセッサコアが使用する1次キャッシュメモリ装置が、本実施形態のキャッシュメモリ装置100となる。以上説明したように、本実施形態のキャッシュメモリ装置100は、ライトバック型の書き込み方式を基本にしながら、キャッシュメモリ110内に存在するダーティラインの数を許容ライン数で制限し、ダーティラインの数が許容ライン数に超えるとダーティラインのデータをメインメモリ5に書き戻すようにしている。したがって、プロセッサ10がプログラムを実行している間のメインメモリ5への書き込み頻度を削減できるといったライトバック型の利点を活かしつつ、電源の供給が遮断されるときにキャッシュメモリ110からメインメモリ5に書き戻すデータ量を抑えることができる。したがって、本実施形態のキャッシュメモリ装置100を備えるプロセッサ10は、実行モードから、キャッシュメモリ装置100に対する電源の供給を遮断する深い待機モードに切り替わるのに要する時間と消費電力を削減することができるので、ごく短時間の待機時間であっても深い待機モードに切り替えることができ、大幅な消費電力の削減を図ることができる。以上、本発明の実施形態を説明したが、ここで説明した実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。ここで説明した新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。ここで説明した実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。