タグアドレスを記憶するタグメモリと、第1のダーティビットを記憶する第1のダーティビットメモリと、有効ビットを記憶する有効ビットメモリと、データを記憶するデータメモリと、を含む複数のキャッシュラインを有する1または複数のウエイと、前記キャッシュラインを特定するためのラインインデックスを記憶するラインインデックスメモリと、前記ウエイを特定する第1のビットデータおよび前記ラインインデックスを特定する第2のビットデータを記憶するローメモリと、前記データメモリへの所定単位のライトに対応したビット単位の第2のダーティビットを記憶する第2のダーティビットメモリと、登録された順番を規定するFIFO情報を記憶するFIFOメモリと、を含む複数のラインを有するDBLB管理部と、を備え、前記第2のダーティビットに基づいて、対応するウエイのキャッシュラインのデータをライトバックすることを特徴とするキャッシュメモリ。前記第2のダーティビットの全てのビットがライトされたことを示した場合に、前記対応するウエイのキャッシュラインのデータをライトバックすることを特徴とする請求項1に記載のキャッシュメモリ。前記DBLB管理部での処理は、前記データメモリへの書き込み処理と並行して実行することを特徴とする請求項1または2に記載のキャッシュメモリ。前記DBLB管理部は、ラインに空きがない場合、前記FIFO情報に基づいて、一番古く登録されたラインをクリアし、新規のラインとして前記第2のダーティビットおよび前記FIFO情報を更新することを特徴とする請求項1ないし3のいずれか一項に記載のキャッシュメモリ。コアと、前記コアにバスを介して接続されたキャッシュメモリと、前記キャッシュメモリにバスを介して接続された外部メモリと、を備え、前記キャッシュメモリは、タグアドレスを記憶するタグメモリと、第1のダーティビットを記憶する第1のダーティビットメモリと、有効ビットを記憶する有効ビットメモリと、データを記憶するデータメモリと、を含む複数のキャッシュラインを有する1または複数のウエイと、前記キャッシュラインを特定するためのラインインデックスを記憶するラインインデックスメモリと、前記ウエイを特定する第1のビットデータおよび前記ラインインデックスを特定する第2のビットデータを記憶するローメモリと、前記データメモリへの所定単位のライトに対応したビット単位の第2のダーティビットを記憶する第2のダーティビットメモリと、登録された順番を規定するFIFO情報を記憶するFIFOメモリと、を含む複数のラインを有するDBLB管理部と、を備え、前記第2のダーティビットに基づいて、対応するウエイのキャッシュラインのデータをライトバックすることを特徴とするキャッシュシステム。面積の増大を抑制しつつ、高速化することが可能なキャッシュシメモリを提供する。本発明の実施例に従ったキャッシュメモリは、タグアドレスを記憶するタグメモリと、第1のダーティビットを記憶する第1のダーティビットメモリと、有効ビットを記憶する有効ビットメモリと、データを記憶するデータメモリ105と、を含む複数のキャッシュラインを有する複数のウエイを備える。また、キャッシュメモリは、前記キャッシュラインを特定するためのラインインデックスを記憶するラインインデックスメモリを備える。また、キャッシュメモリは、前記ウエイを特定する第1のビットデータおよび前記ラインインデックスを特定する第2のビットデータを記憶するローメモリと、前記データメモリへのバイト単位のライトに対応したビット単位の第2のダーティビットを記憶する第2のダーティビットメモリと、登録された順番を規定するFIFO情報を記憶するFIFOメモリと、を含む複数のラインを有するDBLBシステムと、を備える。キャッシュメモリは、前記第2のダーティビットに基づいて、対応するデータメモリのキャッシュラインをライトバックさせる。以下、本発明の実施例について図面に基づいて説明する。図1は、本発明の実施例に係るキャッシュシステム100の構成例を示す図である。キャッシュシステム100は、コア1と、キャッシュメモリ2と、外部メモリ3と、バス4、5と、を備える。コア1は、フラッシュ命令、ライトアクセス指令、リードアクセス命令等のソフトウェア命令を実行する。キャッシュメモリ2は、バス4を介して、コア1に接続されている。外部メモリ3は、バス5を介して、キャッシュメモリ2に接続されている。図2は、キャッシュシメモリ2の構成例を示す図である。キャッシュメモリ2は通常、下位レベルの記憶装置より小容量で高速なSRAMを用いて構成される。キャッシュメモリ2は、データ本体の一部とそのアドレス、フラグなどの属性情報を固定容量のメモリに格納する構造で、データ構造、ライン入替え、データ更新方式などに多数のアーキテクチャが存在する。キャッシュメモリ2は、複数のキャッシュラインを有する複数のWayと、キャッシュラインを特定するためのラインインデックスを記憶するラインインデックスメモリ101と、LRULeastRecentlyUsedメモリ102と、を備える。図2のキャッシュメモリ2は、4-WaySetAssociative方式の、4セットタグにより構成されるデータ格納構造を有する。各Wayは、タグアドレスTagを記憶するタグメモリ103と、ダーティビットDを記憶するダーティビットメモリ106と、有効ビットVを記憶する有効ビットメモリ107と、256バイトのデータを記憶するデータメモリ105と、を有する。ここで、キャッシュメモリ2のキャッシュサイズを例えば128KBとする。キャッシュメモリ2は、128のキャッシュラインから構成される。タグメモリ103には、32ビットのライン単位アドレスの上位ビット[31:15]タグアドレス部である17ビットのタグアドレスTagが格納されている。キャッシュメモリ2は、コア1からアクセス要求があると、検索エントリアドレスのタグアドレス部と、タグメモリ103に記憶されたタグアドレスTagとを比較し、キャッシュのヒットを判定する。キャッシュラインの入替えリフィルは、該当エントリアドレスの全キャッシュラインにデータが格納されていて、且つ、同一エントリ新規タグアドレスが入力されてキャッシュミスしたヒットしなかった場合に発生する。この場合、どのキャッシュラインを追い出して新規アドレスと入れ替えるかは、例えばLRUアルゴリズムが用いられる。LRUアルゴリズムは、最も古くアクセスされたキャッシュラインをリフィルする方法である。さらに、本発明のキャッシュメモリ2は、DBLBDirtyBitLook-UpBlock管理部201を備える。図3は、DBLB管理部201の構成例を示す図である。DBLB管理部201は、該当するキャッシュラインを認識するためのデータRowを記憶するローメモリ202と、データメモリ105の全バイト毎のダーティビットを記録するダーティビットメモリ203と、FIFOメモリ204と、を有する。ダーティビットメモリ203のダーティビットは、データメモリ105へのライト書き込みに対応したバイト単位のビット情報である。さらに、DBLB管理部201は、DBLBが溢れた時の追い出し対象のキャッシュラインを決めるアルゴリズムとして、例えばFIFOFirstInFirstOutを実現する。FIFOメモリ204は、そのラインが登録された順番を規定するFIFO情報を記憶する。例えば、8エントリのDBLB構造において、FIFO情報は3ビットである。なお、入れ替え方式は、エントリ間の入れ替え優先順位を決められれば良いので、他の方式、例えばLRU方式でも構わない。ローメモリ202のデータRowは、Wayを特定するビットデータと、ラインインデックスを特定するビットデータである。ここでは、Way0~Way4を示す2ビットと、ラインインデックス0~127を示す7ビットと、の計9ビットの情報を記憶する。データRowにより、あるキャッシュラインのデータと該当するDBLBシステムのラインが対応づけられる。ダーティビットメモリ203は、データメモリ105に記憶されたデータのデータ単位に対応したダーティビットを保存する。ダーティビットが示すデータ単位は、キャッシュラインサイズよりも小さい単位であればよく、ここではバイト単位としている。すなわち、256バイトのデータに対して、256ビットのダーティビットが保存される。ここで、コア1からキャッシュメモリ2に8バイトのライトアクセスが要求され、要求されたアドレスがキャッシュメモリ2にヒットしたとする。例えば、ラインインデックス値2とWay値0にヒットした場合について説明する。図5は、コア1からキャッシュメモリ2にライトアクセスが要求され、要求されたアドレスがヒットした場合の例を示す図である。コア1からキャッシュメモリ2に8バイトのライトアクセスが要求されると、要求された検索エントリアドレスのタグアドレス部と、タグメモリ103のタグアドレスTagとを比較する。比較の結果、ラインインデックス2、Way0にヒットする。そして、キャッシュメモリ2は、Way0のデータメモリ105にライト動作を実行する。このとき、キャッシュメモリ2は、該当するキャッシュラインのダーティビットDを1にする302。また、キャッシュヒットした、Way値とラインインデックス値に基づいて、DBLB管理部201のローメモリ202のデータRowと比較する。同じ値が存在する場合には、キャッシュメモリ2はDBLBヒットしたと判定する。そして、ライトする8バイトのデータに対応するダーティビットメモリ203のダーティビット8ビットを1にする303。ライトアクセスされたキャッシュラインに対応するダーティビットメメモリ203のダーティビットが全て1になってない時は、キャッシュメモリ2は、自動ライトバックを発生しない。すなわち、ライトアクセスされたキャッシュラインのダーティビットが全て1になった時304、該キャッシュラインのデータの自動ライトバックが行われる。なお、本発明は、データメモリ105へのライト401と、ダーティビットメモリ203のダーティビットの更新402と、を並行して実行する図6。また、コア1は、同じキャッシュラインへ連続してライトアクセスを行う可能性が高い。したがって、コア1から通常のキャッシュライトアクセスをする場合と比べて、速度が落ちることはない。自動ライトバックのタイミングは、通常のライトアクセス性能を保つために、データキャッシュのライト処理が終わるまで、ライトバック処理を待つ。キャッシュメモリ2は、ダーティビットメモリ203のダーティビットに基づいてすなわち、該ダーティビットが対応するキャッシュライン全体にライトがされた場合には、キャッシュラインをロックして、対応するデータメモリ105のキャッシュラインを外部メモリ3へライトバックを行う。ライトバックが終わったら、対応するキャッシュラインのダーティビットおよびDBLB管理部201のダーティビットを全て0に更新する。図8は、キャッシュメモリ2でヒットしたキャッシュラインが、DBLB管理部201を検索しても存在しない場合DBLBミスの動作の一例を示す図である。キャッシュメモリ2においてヒットしたキャッシュラインが、DBLB管理部201を検索しても存在しない場合がある。DBLBに空きがない場合は、DBLB管理部201のラインの入替えを行う。本発明では、例えば一番古い登録順のラインを入れ替え対象のラインにするFIFOアルゴリズムを用いる。FIFOメモリ204に記憶されたFIFO値に基づき、入れ替え対象ラインを決定する。入れ替え対象ラインはFIFO値が一番大きい値111のラインすなわち、一番古く登録されたライン601であり図8a、このラインに新規キャッシュラインの情報を登録する。入れ替え対象ラインのRowを新規キャッシュラインのWayとラインインデックスに対応した値に書き換える。さらに、ダーティビットを新規キャッシュラインのデータの状態に対応した値に書き換える。そして、DBLB管理部201の全てのラインのFIFOに1を加算する。入れ替え対象ラインのFIFO値は000にする図8b。なお、DBLB管理部201に空きがある場合は、空いているラインのローメモリ202、ダーティビットメモリ203、FIFOメモリ204に所定のデータが記憶される。一方、コア1からキャッシュメモリ2にライトアクセスする時、キャッシュミスする場合がある。次に、キャッシュミスした場合における、DBLB管理部201の動作を説明する。図9は、キャッシュミスした場合における、DBLB管理部201の動作の一例を示す図である。キャッシュミスした場合、外部メモリ3にそのアドレスのリードアクセスを要求し、新規キャッシュラインとして入れ替えReplaceするエントリ701を決める。入れ替え対象エントリに、外部メモリ3からのリードデータを書き込み、その後、コア1からのライトデータを書き込む。なお、そのエントリに記憶されていた既存データのライトバックが必要な場合には、ライトバッファ図示せずにアドレスとデータを退避しておく。その後、外部メモリ3にライトアクセスを要求し、データのライトバックを行う。また、キャッシュミスした場合、対応するタグアドレスTagが存在しないため、DBLB管理部201にもミス動作が発生ローメモリ202に対応するラインが存在しないする702。そこで、DBLB管理部201に空きがない場合は、入れ替え対象ラインを決めて703、このラインのダーティビットを全部クリアする704。空きがある場合は、空いているラインに新規情報として登録する。そして、コア1からのライトデータをキャッシュメモリ2に書き込む時に、該入れ替え対象ラインの対応するダーティビットを更新する705。次に、図9に示すDBLB管理部201の動作タイミングについて説明する。キャッシュメモリ2でキャッシュミスした場合、入れ替え対象のWayの番号を決めてから、キャッシュメモリ2にリフィルを発生させる。その後、並行して、コア1からキャッシュメモリ2に上書き処理と、DBLB管理部201の新規ラインの登録及びコア1からのライトアクセスによるダーティビットの更新処理が実行される。次に、キャッシュミスした場合に、追い出すラインインデックスとWayを決定したとき、このラインインデックスとWayの値がローメモリ202のビットと一致する場合もあり得る。以下、図11を参照しながら、この場合について説明する。キャッシュミスし、入れ替え対象エントリを決定したとき、このエントリがDBLB管理部201にすでに登録されていたとする901と、このラインのダーティビットは古いラインのダーティビット902となる。したがって、ダーティビットを全部クリアして903、コア1からのライトデータをキャッシュメモリ2に書き込み、DBLB管理部201のダーティビットを更新する904。なお、DBLB管理部201への新規登録ラインは無いので、FIFO値は更新しなくてもよい。しかしながら、DBLB管理部201のヒット率を高めるために、FIFO値を更新してもよい。例えば、全エントリのFIFO値に1を加算する905。そして、ヒットしたラインのFIFO値図11では011を、000に戻ったエントリのFIFO値と交換する906。これにより、一番古く登録されたラインが交換され、より新しい情報がDBLB管理部201に登録されていることになる。このように、キャッシュメモリ2は、ライトアクセスに対してキャッシュミスした場合に、リフィルされるキャッシュラインに対応する新規ラインを、DBLB管理部201の一番古く登録されたラインと入れ替える。以上のような機能を有するキャッシュメモリ2の動作をまとめて説明する。図12は、本発明のキャッシュメモリ2の動作の一例を示すフローチャートである。先ず、キャッシュメモリ2は、コア1からライトアクセスされるとS1、タグメモリ102を参照するS2。検索エントリアドレスのタグアドレス部と、タグメモリ103のタグアドレスTagとを比較しS3、一致した場合には、キャッシュがヒットしたものと判定される。一致した場合、一致したタグアドレスTagからWayとラインインデックスを得るS4。そして、得たWayのキャッシュラインのデータメモリ105にライトデータを書き込むS5。また、DBLB管理部201のローメモリ202のビット情報と、ヒットしたタグアドレスTagのWayとラインインデックスと、が一致するか否かを判定するS6。なお、S5とS6の動作は、並列処理される。S6で一致する場合S6-Yes、DBLB管理部201のヒットしたラインの該当するダーティビットを更新するS7。次に、キャッシュメモリ2は、DBLB管理部201の該当するラインの全てのダーティビットが1になったかを判定するS8。全てのダーティビットが1と判定された場合S8-Yes、自動ライトバックを実行するS9。一方、全てのダーティビットが1でない場合S8-No、ライトバックは行わずに処理を終了する。次に、S9の後、ヒットしたキャッシュラインのダーティビットおよびDBLB管理部201のヒットしたラインのダーティビットを全て0に更新するS10。また、DBLB管理部201のローメモリ202のビット情報と、ヒットしたタグアドレスTagのWayとラインインデックスと、が一致しないS6-No場合は、DBLB管理部201に空のラインがあるか否かを判定するS12。空のラインが無い場合S12-No、DBLB管理部201のラインの入替えを行うS13。一方、空のラインが在る場合S12-Yes、新規ラインの情報をDBLBシステムの空のラインに記憶するS14。S13、S14の後、DBLB管理部201の新規ラインのビット情報、ダーティビットを更新するS15。すなわち、ローメモリ202のビットを新規ラインに対応するキャッシュラインのWayとラインインデックスに対応した値に書き換える。また、ダーティビットメモリ203を新規ラインに対応するキャッシュラインのデータの状態に対応したダーティビットに書き換える。次に、キャッシュメモリ2は、DBLB管理部201の該新規ラインのダーティビットメモリ203の全てのダーティビットが1であるかを判定するS16。全て1の場合S16-Yes、ヒットしたキャッシュラインのダーティビットおよびDBLB管理部201の該新規ラインのダーティビットを全て0に更新するS17。一方、全て1でない場合S16-No、処理を終了する。なお、コア1のフラッシュ命令を実行する場合、キャッシュメモリ2はダーティビットメモリ106のビットがダーティのとき、外部メモリ3へ書き戻す。この場合は、普通のキャッシュメモリと全く同じように動作するが、本発明では、本来ライトバックが必要なラインも、すでに自動でライトバックしている場合があるので、フラッシュ命令を早く終了することができる。フラッシュしたいアドレスのキャッシュメモリ2のラインインデックスとWayが、DBLB管理部201のローメモリ202に存在する場合、該当エントリのダーティビットを全て0にする。本発明の実施例は、DBLB管理部201の1つのエントリの全ダーティビットが1になった時、すなわち、対応するキャッシュラインの全バイトがダーティになった時、自動的にライトバックすることができる。よって、未だクリーンなバイトが残っているにも拘わらずライトバックされるといった現象を抑制し、グローバルバスへの無駄なバンド幅の消費を削減できる。また、特に一定領域を書き潰すようなアクセスは基本まとまって行われるため、バイト単位のダーティビットを保持する専用のキャッシュBDLB管理部201を持つことで、キャッシュメモリ2の面積増加を抑えることができる。DBLB管理部201の動作パイプライン処理は、通常のキャッシュメモリと完全に別のパイプライン処理で動作しているので、キャッシュアクセスの速度に影響は殆どない。ハードウエア実現にもDBLBシステムのロジックを従来のキャッシュメモリに簡単に付けられる。本発明の実施例のDBLB管理部201は、DBLBのエントリ数が8、1つのラインで268ビット約34バイト、キャッシュメモリ64~512×260バイトに対して、非常に小さい面積1.6~0.204となる。さらに、無駄なデータライトバックアクセスが減ることによるDynamic電力現象が期待できる。また、DBLB管理部201は、オーバーヘッドが少なく、実現が容易であり、従来技術によりも十分効果があるシステムである。以上のように、本発明の実施例に係るキャッシュメモリによれば、面積の増大を抑制しつつ、高速化することができる。なお、実施形態は例示であり、発明の範囲はそれらに限定されない。