(57)【特許請求の範囲】
【請求項１】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、バスを介して前記ＣＰＵと接続される外部メモリと、前記バスを介さずに前記ＣＰＵと接続され、前記外部メモリに格納されているデータの少なくとも一部のデータの複製を所定サイズのデータブロック単位で格納する内部メモリとを備える情報処理装置に含まれ、
前記ＣＰＵにより前記外部メモリに格納されているいずれかのデータの読み出しが要求された場合に、読み出し対象データの複製が前記内部メモリに格納されているか否かを判定する複製データ判定部と、
前記読み出し対象データの複製が前記内部メモリに格納されていない場合に、前記読み出し対象データを前記外部メモリから読み出し、読み出した前記読み出し対象データを前記ＣＰＵに供給する第１のデータ処理部と、
前記読み出し対象データの複製が前記内部メモリに格納されていない場合に、前記第１のデータ処理部が前記読み出し対象データを前記ＣＰＵに供給した後に、前記読み出し対象データを含むデータブロックを前記外部メモリから読み出し、読み出したデータブロックを前記内部メモリに格納する第２のデータ処理部とを有することを特徴とするメモリ制御システム。
【請求項２】
前記メモリ制御システムは、
前記データブロックと同じサイズのデータ格納ブロックに区分され、１つのデータ格納ブロックに１つのデータブロックを格納する内部メモリを備える情報処理装置に含まれ、
前記第２のデータ処理部は、
前記外部メモリから読み出したデータブロックをいずれかのデータ格納ブロックに格納する際に、当該データ格納ブロックにデータブロックが格納されているか否かが表される有効／無効情報を当該データ格納ブロックにデータブロックが格納されていることを表す設定にすることを特徴とする請求項１に記載のメモリ制御システム。
【請求項３】
前記第２のデータ処理部は、
データブロックのデータ格納ブロックへの格納と、データ格納ブロックの有効／無効情報の設定を１トランザクションで行うことを特徴とする請求項２に記載のメモリ制御システム。
【請求項４】
前記第２のデータ処理部は、
前記外部メモリからのデータブロックをいずれかのデータ格納ブロックに格納する際に、当該データ格納ブロックの有効／無効情報の設定を参照して当該データ格納ブロックに既に他のデータブロックが格納されているか否かを判断し、当該データ格納ブロックに既に他のデータブロックが格納されている場合に、当該データ格納ブロックの有効／無効情報の設定をデータブロックが格納されていないことを表す設定に更新し、前記外部メモリから読み出したデータブロックを前記他のデータブロックに置き換えて格納し、当該データ格納ブロックの有効／無効情報の設定をデータブロックが格納されていることを表す設定に更新することを特徴とする請求項２又は３に記載のメモリ制御システム。
【請求項５】
前記メモリ制御システムは、
前記データブロックと同じサイズのデータ格納ブロックに区分され、１つのデータ格納ブロックに１つのデータブロックを格納する内部メモリを備える情報処理装置に含まれ、
前記第２のデータ処理部は、
前記外部メモリからのデータブロックをいずれかのデータ格納ブロックに格納する際に、当該データ格納ブロックにデータブロックが格納されているか否かが表される有効／無効情報を当該データ格納ブロックにデータブロックが格納されていることを表す設定にするとともに、当該データ格納ブロックへのデータブロックの格納が完了しているか否かが表される転送完了情報を当該データ格納ブロックへのデータブロックの格納が未完了であることを表す設定にし、前記外部メモリから読み出したデータブロックの格納が完了した際に、当該データ格納ブロックの転送完了情報の設定をデータブロックの格納が完了したことを表す設定に更新することを特徴とする請求項１〜４のいずれかに記載のメモリ制御システム。
【請求項６】
前記複製データ判定部は、
データ格納ブロックごとの有効／無効情報及び転送完了情報の設定を参照して、前記読み出し対象データを含むデータブロックが前記内部メモリに含まれるか否か及び前記読み出し対象データを含むデータブロックの格納が完了しているかを判定し、
前記読み出し対象データを含むデータブロックが前記内部メモリに含まれるが前記読み出し対象データを含むデータブロックの格納が未完了の場合は、前記読み出し対象データを含むデータブロックの格納が完了した時点で前記読み出し対象データを含むデータブロックを前記内部メモリから取得し、
前記読み出し対象データを含むデータブロックが前記内部メモリに含まれない場合は、前記第１のデータ処理部に処理を移行させることを特徴とする請求項５に記載のメモリ制御システム。
【請求項７】
前記第２のデータ処理部は、
前記外部メモリから読み出したデータブロックをいずれかのデータ格納ブロックに格納する際に、前記外部メモリから読み出したデータブロックに対応する前記外部メモリ上のアドレスを当該データ格納ブロックに対して設定し、
前記複製データ判定部は、
データ格納ブロックごとの有効／無効情報の設定及び前記外部メモリ上のアドレスの設定を参照して、前記読み出し対象データを含むデータブロックが前記内部メモリに含まれるか否かを判定し、前記読み出し対象データを含むデータブロックが前記内部メモリに含まれる場合は、前記読み出し対象データを含むデータブロックを前記内部メモリから取得し、前記読み出し対象データを含むデータブロックが前記内部メモリに含まれない場合は、前記第１のデータ処理部に処理を移行させることを特徴とする請求項２〜６のいずれかに記載のメモリ制御システム。
【請求項８】
前記第２のデータ処理部は、
前記読み出し対象データを含むデータブロックをＷＲＩＴＥコマンドのバースト転送により前記内部メモリに転送して、前記読み出し対象データを含むデータブロックを前記内部メモリに格納することを特徴とする請求項１〜７のいずれかに記載のメモリ制御システム。
【請求項９】
前記メモリ制御システムは、
前記バスを介して前記外部メモリと接続される、前記ＣＰＵ以外のＣＰＵである他ＣＰＵと、前記バスを介さずに前記他ＣＰＵと接続され、前記外部メモリに格納されているデータの少なくとも一部のデータの複製を所定サイズのデータブロック単位で格納するデバイス用内部メモリとを備える情報処理装置に含まれ、
前記複製データ判定部は、
前記ＣＰＵにより前記外部メモリに格納されているいずれかのデータの読み出しが要求された場合に、前記ＣＰＵの読み出し対象データの複製が前記ＣＰＵの内部メモリに格納されているか否かを判定するとともに、前記他ＣＰＵにより前記外部メモリに格納されているいずれかのデータの読み出しが要求された場合に、前記他ＣＰＵの読み出し対象データの複製が前記デバイス用内部メモリに格納されているか否かを判定し、
前記第２のデータ処理部は、
前記ＣＰＵの読み出し対象データの複製が前記ＣＰＵの内部メモリに格納されていない場合及び前記他ＣＰＵの読み出し対象データの複製が前記デバイス用内部メモリに格納されていない場合のいずれにおいても、読み出し対象データを含むデータブロックを前記外部メモリから読み出し、読み出したデータブロックを前記ＣＰＵの内部メモリ及び前記デバイス用内部メモリの双方に格納することを特徴とする請求項１〜８のいずれかに記載のメモリ制御システム。
【請求項１０】
前記メモリ制御システムは、
前記バスを介して前記外部メモリと接続される、前記ＣＰＵ以外のＣＰＵである他ＣＰＵと、前記バスを介さずに前記他ＣＰＵと接続され、前記外部メモリに格納されているデータの少なくとも一部のデータの複製を所定サイズのデータブロック単位で格納するデバイス用内部メモリとを備える情報処理装置に含まれ、
前記複製データ判定部は、
前記ＣＰＵにより前記外部メモリに格納されているいずれかのデータの読み出しが要求された場合に、前記ＣＰＵの読み出し対象データの複製が前記ＣＰＵの内部メモリに格納されているか否かを判定するとともに、前記他ＣＰＵにより前記外部メモリに格納されているいずれかのデータの読み出しが要求された場合に、前記他ＣＰＵの読み出し対象データの複製が前記デバイス用内部メモリに格納されているか否かを判定し、
前記第２のデータ処理部は、
前記ＣＰＵの読み出し対象データの複製が前記ＣＰＵの内部メモリに格納されていない場合に、前記ＣＰＵの読み出し対象データを含むデータブロックを前記外部メモリから読み出し、読み出したデータブロックを前記ＣＰＵの内部メモリにのみ格納し、前記他ＣＰＵの読み出し対象データの複製が前記デバイス用内部メモリに格納されていない場合に、前記他ＣＰＵの読み出し対象データを含むデータブロックを前記外部メモリから読み出し、読み出したデータブロックを前記デバイス用内部メモリにのみ格納することを特徴とする請求項１〜９のいずれかに記載のメモリ制御システム。
【請求項１１】
前記メモリ制御システムは、
前記ＣＰＵの内部メモリとして、前記データブロックと同じサイズのデータ格納ブロックに区分され１つのデータ格納ブロックに１つのデータブロックを格納するメモリを備え、更に、前記外部メモリにデータを書き込む、前記ＣＰＵ以外のＣＰＵである他ＣＰＵを備える情報処理装置に含まれ、
前記第２のデータ処理部は、
前記他ＣＰＵにより前記外部メモリにデータの書き込みが行われた場合に、前記他ＣＰＵによりデータ書き込みが行われた前記外部メモリ上のアドレスに対応する前記ＣＰＵの内部メモリのデータ格納ブロックを抽出し、抽出したデータ格納ブロックにデータブロックが格納されているか否かが表される有効／無効情報を、抽出したデータ格納ブロックにはデータブロックが格納されていないことを表す設定にすることを特徴とする請求項１〜１０のいずれかに記載のメモリ制御システム。
【請求項１２】
前記第２のデータ処理部は、
前記他ＣＰＵにより前記外部メモリにデータの書き込みが行われた場合の有効／無効情報の設定を前記内部メモリにおいて行い、既に有効／無効情報の設定が行われているデータ格納ブロックに対応する前記外部メモリ上のアドレスへのデータの書き込みが前記他ＣＰＵにより再度行われた場合に、前記内部メモリへの再度の設定を省略することを特徴とする請求項１１に記載のメモリ制御システム。
【請求項１３】
前記メモリ制御システムは、
前記バスを介さずに前記ＣＰＵ以外のＣＰＵである他ＣＰＵと接続され、前記外部メモリに格納されているデータの少なくとも一部のデータの複製を所定サイズのデータブロック単位で格納し、前記データブロックと同じサイズのデータ格納ブロックに区分され、１つのデータ格納ブロックに１つのデータブロックを格納するデバイス用内部メモリを備える情報処理装置に含まれ、
前記第２のデータ処理部は、
前記ＣＰＵにより前記外部メモリにデータの書き込みが行われた場合に、前記ＣＰＵによりデータ書き込みが行われた前記外部メモリ上のアドレスに対応する前記デバイス用内部メモリのデータ格納ブロックを抽出し、抽出したデータ格納ブロックにデータブロックが格納されているか否かが表される有効／無効情報を、抽出したデータ格納ブロックにはデータブロックが格納されていないことを表す設定にすることを特徴とする請求項１〜１２のいずれかに記載のメモリ制御システム。
【請求項１４】
前記メモリ制御システムは、
前記ＣＰＵの内部メモリとして、前記データブロックと同じサイズのデータ格納ブロックに区分され１つのデータ格納ブロックに１つのデータブロックを格納するメモリを備え、更に、前記外部メモリにデータを書き込む、前記ＣＰＵ以外のＣＰＵである他ＣＰＵを備える情報処理装置に含まれ、
前記第２のデータ処理部は、
前記他ＣＰＵにより前記外部メモリにデータの書き込みが行われた場合に、前記他ＣＰＵによりデータ書き込みが行われた前記外部メモリ上のアドレスに対応する前記ＣＰＵの内部メモリのデータ格納ブロックを抽出し、抽出したデータ格納ブロックに前記他ＣＰＵにより前記外部メモリに書き込まれたデータの複製を格納することを特徴とする請求項１〜１３のいずれかに記載のメモリ制御システム。
【請求項１５】
前記メモリ制御システムは、
前記バスを介さずに前記ＣＰＵ以外のＣＰＵである他ＣＰＵと接続され、前記外部メモリに格納されているデータの少なくとも一部のデータの複製を所定サイズのデータブロック単位で格納し、前記データブロックと同じサイズのデータ格納ブロックに区分され、１つのデータ格納ブロックに１つのデータブロックを格納するデバイス用内部メモリを備える情報処理装置に含まれ、
前記第２のデータ処理部は、
前記ＣＰＵにより前記外部メモリにデータの書き込みが行われた場合に、前記ＣＰＵによりデータ書き込みが行われた前記外部メモリ上のアドレスに対応する前記デバイス用内部メモリのデータ格納ブロックを抽出し、抽出したデータ格納ブロックに前記ＣＰＵにより前記外部メモリに書き込まれたデータの複製を格納することを特徴とする請求項１〜１４のいずれかに記載のメモリ制御システム。
【請求項１６】
前記メモリ制御システムは、
前記外部メモリに格納されている全てのデータの複製が前記ＣＰＵの内部メモリに格納されている情報処理装置に含まれていることを特徴とする請求項１〜１５のいずれかに記載のメモリ制御システム。
【請求項１７】
前記複製データ判定部と、前記第１のデータ処理部と、前記第２のデータ処理部が、前記ＣＰＵにより実行されるプログラムであることを特徴とする請求項１〜１６のいずれかに記載のメモリ制御システム。
【請求項１８】
前記複製データ判定部と前記第１のデータ処理部が、前記ＣＰＵにより実行されるプログラムであり、
前記第２のデータ処理部が、前記ＣＰＵと前記外部メモリとの間に配置されたメモリ制御装置であることを特徴とする請求項１〜１６のいずれかに記載のメモリ制御システム。
【請求項１９】
前記第１のデータ処理部は、
前記外部メモリから読み出した前記読み出し対象データを、前記内部メモリに格納することなく、前記ＣＰＵに供給することを特徴とする請求項１に記載のメモリ制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）によるメモリアクセスを効率化する技術に関する。
【背景技術】
【０００２】
従来ＣＰＵと周辺機器、メモリを接続する拡張バスとしてＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスがある。
ＰＣＩは３２ｂｉｔまたは６４ｂｉｔのパラレルバスで３３ＭＨｚまたは６６ＭＨｚで動作し、１３３Ｍバイト／秒〜５３３Ｍバイト／秒でデータを転送する。
ＣＰＵやストレージの高速化によりバスの伝送速度の向上が要求されるようになっている。
ＰＣＩのようなパラレルバスを高速化する手法としてはデータのビット幅を広げる方法やクロック周波数を引き上げる方法がある。
しかし、ビット幅が増えることで信号線の数も多くなり、基板面積やデバイスの端子数、コネクタのピン数も多く必要になる。
また、クロック周波数を引き上げると信号の長さや負荷の違いによるタイミングのずれ（スキュー）が無視できない要素になり、速度を上げるのが難しくなる。これらの理由により、パラレルバスの高速化の限界がでてきている。
【０００３】
そこで、シリアルバスが注目されるようになり、ＰＣＩ  Ｅｘｐｒｅｓｓ（以下、ＰＣＩｅ）が規格化された。
シリアルバスでは１本の信号線でデータ転送を行うため、スキューや基板上の問題がなく、パラレルバスよりも高速な伝送を行うことができる。
ＰＣＩｅの１レーンあたりのデータ転送速度はＰＣＩｅ１．ｘでは２５０Ｍバイト／秒、ＰＣＩｅ２．０で５００Ｍバイト／秒となっており、複数のレーンを束ねて１つの伝送路とすることで高速にデータ転送を行うことができる。
以上の背景（ＰＣＩをはじめとするパラレルバスによる伝送速度の限界と高速なシリアルバスであるＰＣＩｅの規格化）に関しては、ＣＱ出版社発行のＩｎｔｅｒｆａｃｅ  ２００９年２月号の「特集  インターフェース規格のすぐに役立つ基礎知識」の「第１章  標準拡張バス／スロット仕様のいろいろ」に記されている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ｉｎｔｅｒｆａｃｅ  ２００９年２月号  「特集  インターフェース規格のすぐに役立つ基礎知識」「第１章  標準拡張バス／スロット仕様のいろいろ」、２００９年２月、ＣＱ出版社、ｐｐ４０〜ｐｐ５１
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、ＰＣＩｅでは大量のデータを一度に送るバースト転送では高速にデータを転送できるものの、コマンドを発行してからデータが到達するまでのレイテンシが大きい。
ＤＲＡＭやＳＲＡＭのメモリアクセス時間は数十ナノ秒程度なのに対し、ＰＣＩｅでは１回のデータ転送に１マイクロ秒程度発生する。
一般にＣＰＵがメモリのデータに対してＲＥＡＤ要求を発行した場合、ＣＰＵはデータを取得するまで処理を停止（ストール）する。
ＣＰＵの処理時間と比較してメモリアクセス時間は数倍〜数十倍程度の差があるため、メモリアクセス時間が性能に及ぼす影響は大きい。
その上、ＰＣＩｅを経由してデータにアクセスするとＣＰＵのストール時間はさらに増加し、処理効率が低下する。
【０００６】
この発明は、上記のような課題を解決することを主な目的の一つとしており、ＣＰＵのメモリへのアクセス時間を短縮するシステムを提供することを主な目的とする。
【課題を解決するための手段】
【０００７】
本発明に係るメモリ制御システムは、
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、バスを介して前記ＣＰＵと接続される外部メモリと、前記バスを介さずに前記ＣＰＵと接続され、前記外部メモリに格納されているデータの少なくとも一部のデータの複製を所定サイズのデータブロック単位で格納する内部メモリとを備える情報処理装置に含まれ、
前記ＣＰＵにより前記外部メモリに格納されているいずれかのデータの読み出しが要求された場合に、読み出し対象データの複製が前記内部メモリに格納されているか否かを判定する複製データ判定部と、
前記読み出し対象データの複製が前記内部メモリに格納されていない場合に、前記読み出し対象データを前記外部メモリから読み出し、読み出した前記読み出し対象データを前記ＣＰＵに供給する第１のデータ処理部と、
前記読み出し対象データの複製が前記内部メモリに格納されていない場合に、前記第１のデータ処理部が前記読み出し対象データを前記外部メモリから読み出した後に、前記読み出し対象データを含むデータブロックを前記外部メモリから読み出し、読み出したデータブロックを前記内部メモリに格納する第２のデータ処理部とを有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、読み出し対象データの複製が内部メモリに格納されていない場合に、ＣＰＵに読み出し対象データを供給するために読み出し対象データを外部メモリから読み出した後に、読み出し対象データを含むデータブロックを外部メモリから読み出し、読み出したデータブロックを内部メモリに格納するので、外部メモリからのデータブロックの読み出し及び読み出したデータブロックの内部メモリへの格納を待つことなくＣＰＵに読み出し対象データを供給することができ、ＣＰＵのメモリアクセス時間を短縮することができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１に情報処理装置の構成例を示す図。
【図２】実施の形態１に係る情報処理装置の構成例を示す図。
【図３】実施の形態１に係る内部メモリにおけるデータ配置例を示す図。
【図４】実施の形態１に係るＲＥＡＤ時のフローチャート図。
【図５】実施の形態１に係るＷＲＩＴＥ時のフローチャート図。
【図６】実施の形態１に係る外部メモリへのアクセス用関数例を示す図。
【図７】実施の形態２に係るメモリ制御装置の構成例を示す図。
【図８】実施の形態２に係る複製情報管理回路の構成例を示す図。
【図９】実施の形態２に係るアドレス変換回路の構成例を示す図。
【図１０】実施の形態２に係るＲＥＡＤ監視回路の構成例を示す図。
【図１１】実施の形態２に係るＷＲＩＴＥ監視回路の構成例を示す図。
【図１２】実施の形態２に係る内部メモリにおけるデータ配置例を示す図。
【図１３】実施の形態２に係るＲＥＡＤ時のフローチャート図。
【図１４】実施の形態２に係るデータ転送回路の動作例を示すフローチャート図。
【図１５】実施の形態２に係るデータ無効化回路の動作例を示すフローチャート図。
【図１６】実施の形態２に係るＷＲＩＴＥ時のフローチャート図。
【図１７】実施の形態３に係るメモリ制御装置の構成例を示す図。
【図１８】実施の形態４に係るメモリ制御装置の構成例を示す図。
【図１９】実施の形態５に係る内部メモリにおけるデータ配置例を示す図。
【図２０】実施の形態５に係るＲＥＡＤ時のフローチャート図。
【図２１】実施の形態５に係るＷＲＩＴＥ時のフローチャート図。
【図２２】実施の形態１又は５に係る情報処理装置の構成の変形例を示す図。
【図２３】実施の形態２及び３に係る情報処理装置の構成例を示す図。
【図２４】実施の形態４に係る情報処理装置の構成例を示す図。
【発明を実施するための形態】
【００１０】
実施の形態１．
図１は、本実施の形態に係る情報処理装置１００の内部構成例を示す。
図１に示すように、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１、ＣＰＵ２０２、外部メモリ２０３、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）デバイス２０４、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラ７０３がバスコントローラたるバスブリッジ回路２１１を経由して接続されている。
ＣＰＵ２０１とＣＰＵ２０２はそれぞれ高速なシリアルバス２０５でバスブリッジ回路２１１に接続されている。
バスブリッジ回路２１１は外部メモリ２０３を制御するＤＭＡコントローラ７０３やＣＰＵ２０１、ＣＰＵ２０２、Ｉ／Ｏデバイス２０４との通信を行う機能を備えている。
ＣＰＵ２０２及びＩ／Ｏデバイス２０４は、デバイスの例である。
ＣＰＵ２０１には内部メモリ２０６が直接接続されており、バス２０５を経由せずにアクセスできる。
つまり、ＣＰＵ２０１は、バス２０５及びバスブリッジ回路２１１を介して外部メモリ２０３と接続している一方で、内部メモリ２０６とはバス２０５及びバスブリッジ回路２１１を介さずに接続している。
本実施の形態では、ＣＰＵ２０１が外部メモリ２０３にアクセスする時間を短縮するため、ＣＰＵ２０１に接続している内部メモリ２０６に外部メモリ２０３のデータの少なくとも一部を格納し、内部メモリ２０６にアクセスして外部メモリ２０３のデータのＲＥＡＤ／ＷＲＩＴＥを行う。
ＣＰＵ２０２はＣＰＵ２０１のようにデータの複製を持たない。
また、ＤＭＡコントローラ７０３は、外部メモリ２０３のデータを内部メモリ２０６へ転送する。
【００１１】
図２は、図１に示した構成をより詳細に説明する図である。
【００１２】
内部メモリ２０６は、複製データ領域２０７と複製状態管理情報２０８を持つ。
複製データ領域２０７は外部メモリ２０３の一部または全てのデータの複製を格納する領域であり、複製状態管理情報２０８は複製データ領域２０７に外部メモリ２０３のデータの複製が含まれるかを示す情報が格納されている。
【００１３】
図３は内部メモリ２０６における、複製データ領域２０７と複製状態管理情報２０８のメモリ配置例を示す。
複製データ領域２０７は所定サイズのＮ個のデータ格納ブロック３０３（以下、単にブロックともいう）に区分されている。また、外部メモリ２０３のデータの複製は、所定サイズのデータブロック単位でデータ格納ブロックに格納される。１つのデータ格納ブロックには１つのデータブロックが格納される。データ格納ブロックとデータブロックは同じデータサイズである。
複製状態管理情報２０８にはデータ格納ブロックごとにデータブロックの複製元のアドレスを表す外部メモリアドレス３０１とデータブロックが有効かどうかを示す有効／無効情報３０２が格納されている。
外部メモリアドレス３０１には、例えば、データ格納ブロックに格納されているデータブロックに対応する外部メモリアドレスのうちの先頭アドレスが示される。
有効／無効情報３０２は、そのデータ格納ブロックに外部メモリのデータブロック（複製）が格納されているかどうかを示す識別子（ｖａｌｉｄ  ｂｉｔ）であり、有効であればそのデータ格納ブロックには外部メモリアドレス３０１で示すアドレスのデータブロック（複製）が格納されており、無効であればそのデータ格納ブロックには外部メモリのどのデータも格納されていないことを示す。
【００１４】
ＣＰＵ２０１では、アドレス変換プログラム２０９とメモリアクセス制御プログラム２１０を実行する。
アドレス変換プログラム２０９は、外部メモリ２０３のアドレスと内部メモリ２０６のアドレスとの間での変換を行うプログラムである。
メモリアクセス制御プログラム２１０は、複製データ判定部、第１のデータ処理部及び第２のデータ処理部の例である。
すなわち、メモリアクセス制御プログラム２１０では、ＣＰＵ２０１で実行されている他のプログラム（不図示）により外部メモリ２０３に格納されているいずれかのデータの読み出しが要求された場合に、読み出し対象データの複製が内部メモリ２０６に格納されているか否かを判定し（複製データ判定部の動作）、読み出し対象データの複製が内部メモリ２０６に格納されていない場合に、読み出し対象データを外部メモリ２０３から読み出し、読み出した読み出し対象データをＣＰＵ２０１で実行されている他のプログラム（読み出しの要求元のプログラム）に供給する（第１のデータ処理部の動作）。
更に、メモリアクセス制御プログラム２１０では、読み出し対象データの複製が内部メモリ２０６に格納されていない場合に、読み出し対象データが外部メモリ２０３から読み出された後に、読み出し対象データを含むデータブロックを外部メモリから読み出し、ＤＭＡコントローラ７０３（第２のデータ処理部の一部）を用いて、読み出したデータブロックを内部メモリ２０６のデータ格納ブロック３０３に格納する（第２のデータ処理部の動作）。
このように、本実施の形態では、ＣＰＵ２０１自体がメモリ制御システムとして機能する。
【００１５】
なお、以下では、「アドレス変換プログラム２０９が・・・する」や「メモリアクセス制御プログラム２１０が・・・する」といった記述を行うが、これらは、「アドレス変換プログラム２０９が実行され、アドレス変換プログラム２０９のプロセス又はタスクが・・・する」、「メモリアクセス制御プログラム２１０が実行され、メモリアクセス制御プログラム２１０のプロセス又はタスクが・・・する」という意味である。
【００１６】
図４は、ＣＰＵ２０１が外部メモリ２０３のデータをＲＥＡＤする時の動作を示したフローチャートである。
以下、図４の各ステップを説明する。
【００１７】
まず、ＣＰＵ２０１の他のプログラムより特定のデータのＲＥＡＤ要求があった場合にメモリアクセス制御プログラム２１０が実行され、メモリアクセス制御プログラム２１０は、複製状態管理情報２０８を参照し、ＲＥＡＤするデータ（読み出し対象データ）の複製が複製データ領域２０７に格納されているかを調べる（ステップＳ４０１）。より具体的には、有効／無効情報３０２が有効であり、読み出し対象データの外部メモリ２０３上のアドレスが外部メモリアドレス３０１に示されているデータ格納ブロックが存在するかどうかを調べる。
データの複製が複製データ領域２０７にあると判定した場合は、アドレス変換プログラム２０９が実行され、外部メモリ２０３のアドレスが複製データ領域のアドレスに変換され（ステップＳ４０２）、メモリアクセス制御プログラム２１０により複製データ領域２０７に格納されているデータがＲＥＡＤ要求を行った他のプログラムに返される（ステップＳ４０３）。
一方、データの複製が複製データ領域２０７にないと判定した場合は、メモリアクセス制御プログラム２１０により外部メモリ２０３からＲＥＡＤ対象のデータが取得され、ＲＥＡＤ要求を行った他のプログラムに返される（ステップＳ４０４）。
また、メモリアクセス制御プログラム２１０は、ＲＥＡＤ対象データを含むデータブロックを外部メモリ２０３から読み出して複製データ領域２０７に格納するよう、ＤＭＡコントローラ７０３を用いて、ＤＭＡ転送を行う（ステップＳ４０５）。
さらに、メモリアクセス制御プログラム２１０は、ステップＳ４０５で転送したデータブロックのデータ格納ブロックを有効にするよう複製状態管理情報２０８の有効／無効情報３０２を更新し（有効にする）、また、ステップＳ４０５で転送したデータブロックに対応する外部メモリ２０３のアドレスを外部メモリアドレス３０１に設定する（ステップＳ４０６）。
【００１８】
図５は、ＣＰＵ２０１が外部メモリ２０３のデータをＷＲＩＴＥする時の動作を示したフローチャートである。
【００１９】
まず、ＣＰＵ２０１の他のプログラムより特定のデータのＷＲＩＴＥ要求があった場合にメモリアクセス制御プログラム２１０が実行され、メモリアクセス制御プログラム２１０により外部メモリ２０３にＷＲＩＴＥ対象のデータを書き込む（ステップＳ５０１）。
その後、メモリアクセス制御プログラム２１０が、複製状態管理情報２０８を用いて、外部メモリ２０３に書き込んだアドレス（外部メモリのアドレス）のデータが複製データ領域２０７にあるかを調べる（ステップＳ５０２）。
データがある場合は、アドレス変換プログラム２０９により、外部メモリ２０３のアドレスが複製データ領域のアドレスに変換され（ステップＳ５０３）、メモリアクセス制御プログラム２１０により複製データ領域２０７のデータが外部メモリ２０３に書き込まれたデータに変更される（ステップＳ５０４）。
【００２０】
図６はメモリアクセス制御プログラム２１０に相当する、ＣＰＵ２０１から外部メモリ２０３にアクセスする際のアクセス関数例を示す。
ＣＰＵ２０１が外部メモリのデータへＲＥＡＤするときはｍｅｍ＿ｒｅａｄ関数６０１を、ＷＲＩＴＥするときはｍｅｍ＿ｗｒｉｔｅ関数６０２を呼び出してアクセスする。
ｍｅｍ＿ｒｅａｄ関数６０１の動作は図４のフローチャートで、ｍｅｍ＿ｗｒｉｔｅ関数６０２の動作は図５のフローチャートで示す通りである。
【００２１】
このように、本実施の形態によれば、外部メモリ２０３のデータが内部メモリ２０６内の複製データ領域２０７にある場合は複製データ領域２０７からデータをＲＥＡＤする。内部メモリ２０６はＣＰＵ２０１とバス２０５を経由せず直接アクセスすることができるため、高速にデータを読み出すことができる。
【００２２】
従来のキャッシュメモリではキャッシュミスが発生するとキャッシュミスをしたデータを含むブロックをキャッシュメモリに格納する動作とＣＰＵにキャッシュミスをしたデータを返す動作を同時に行うが、本実施の形態ではキャッシュミスが発生すると外部メモリからキャッシュミスをしたデータを取得してＣＰＵに返した後、ＤＭＡによって内部メモリにキャッシュミスをしたデータを含むデータブロックを内部メモリに転送する。
つまり、従来のキャッシュメモリではキャッシュミスしたデータを含むデータブロックをＲＥＡＤしてその中の必要なデータをＣＰＵに返すが、本実施の形態では、まず必要なデータをＲＥＡＤした後にキャッシュミスしたデータを含むデータブロックのＲＥＡＤを行う。  このため、本実施の形態によれば、キャッシュが発生してからＣＰＵにデータを供給するまでの時間が従来に比べて短時間となり、ＣＰＵの処理性能を向上させることができる。
【００２３】
さらに、複製データ領域２０７に複製があるデータをＷＲＩＴＥする場合は外部メモリ２０３と複製データ領域２０７の両方を更新することで外部メモリ２０３のデータは常に複製データ領域２０７と同じになっている。
そのため、ＣＰＵ２０２やＩ／Ｏデバイス２０４が外部メモリ２０３のデータに対していつＲＥＡＤアクセスを行っても正しいデータにアクセスすることができる。
【００２４】
外部メモリ２０３のデータの内部メモリ２０６の格納場所の決定方法に関しては明確にしなかったが、外部メモリ２０３のＸＸ番地からＸＸ＋ＳＩＺＥ番地までのデータを内部メモリ２０６のＹＹ番地からＹＹ＋ＳＩＺＥ番地に格納するといったように格納場所を固定してもよい。
格納場所を固定した場合、外部メモリ２０３のアドレスを内部メモリ２０６のアドレスに一意に変換できるため、図３の各ブロックの外部メモリアドレス３０１の要素はなくてもよい。
また、キャッシュメモリで利用されるダイレクトマップ方式のようにアドレスの一部をインデックスとして格納するブロックを決定してもよい。
【００２５】
本実施の形態ではＣＰＵ２０２やＩ／Ｏデバイス２０４が外部メモリ２０３のデータを書き換えた場合、外部メモリ２０３と内部メモリ２０６とのデータの整合性を保つことはできない。
しかし、ＣＰＵ２０２やＩ／Ｏデバイス２０４が外部メモリ２０３のデータを書き換えない場合においては本実施の形態にて外部メモリ２０３へのアクセス高速化を実現することができる。
また、ＣＰＵ２０２やＩ／Ｏデバイス２０４が外部メモリ２０３のデータを書き換える場合にいては、実施の形態２で説明する。
【００２６】
本実施の形態では、外部メモリ２０３にＲＥＡＤアクセスした際に複製データ領域２０７に複製データがなければＤＭＡを用いて外部メモリ２０３のデータを複製データ領域２０７に転送したが、データの読み出しが要求される前にあらかじめ複製データ領域２０７にデータを転送しておいてもよい。
つまり、外部メモリ２０３のサイズと同じサイズ（または外部メモリ２０３内のプログラムが使用している領域のサイズ）を内部メモリ２０６内に確保することで、外部メモリ２０３の全てのデータの複製を内部メモリ２０６に格納するようにしてもよい。
その場合、図４のステップＳ４０５、ステップＳ４０６の処理は不要になる。
【００２７】
実施の形態２．
図２３は、実施の形態２におけるシステムの構成例を示す。
実施の形態１の図２と同じ構成部品に関しては同じ番号を振り、説明は省略する。
実施の形態２ではバスブリッジ回路２１１と外部メモリ２０３の間にメモリ制御装置７０１を備えている。
本実施の形態では、ＣＰＵ２０１のメモリアクセス制御プログラム２１０が複製データ判定部及び第１のデータ処理部に相当し、メモリ制御装置７０１が第２のデータ処理部に相当する。
このため、本実施の形態では、ＣＰＵ２０１及びメモリ制御装置７０１の組合せがメモリ制御システムに相当する。
【００２８】
本実施の形態では、ＣＰＵ２０１で実行されている他のプログラム（不図示）により外部メモリ２０３に格納されているいずれかのデータの読み出しが要求された場合に、メモリアクセス制御プログラム２１０により、読み出し対象データの複製が内部メモリ２０６に格納されているか否かが判定され（複製データ判定部の動作）、読み出し対象データの複製が内部メモリ２０６に格納されていない場合に、読み出し対象データを外部メモリ２０３から読み出し、読み出した読み出し対象データをＣＰＵ２０１で実行されている他のプログラム（読み出しの要求元のプログラム）に供給する（第１のデータ処理部の動作）。
更に、メモリ制御装置７０１は、メモリアクセス制御プログラム２１０により読み出し対象データが外部メモリ２０３から読み出された後に、読み出し対象データを含むデータブロックを外部メモリから読み出し、読み出したデータブロックを内部メモリ２０６のデータ格納ブロックに格納する（第２のデータ処理部の動作）。
【００２９】
また、本実施の形態では、メモリ制御装置７０１は、外部メモリ２０３から読み出したデータブロックを内部メモリ２０６内のいずれかのデータ格納ブロックに格納する際に、当該データ格納ブロックの有効／無効情報３０２の設定を参照して当該データ格納ブロックに既に他のデータブロックが格納されているか否かを判断し、有効／無効情報３０２が有効である場合（当該データ格納ブロックに既に他のデータブロックが格納されている場合）に、当該データ格納ブロックの有効／無効情報３０２の設定を無効（データブロックが格納されていないことを表す設定）に更新し、外部メモリ２０３から読み出したデータブロックを他のデータブロックに置き換えて格納し、当該データ格納ブロックの有効／無効情報３０２の設定を有効（データブロックが格納されていることを表す設定）に更新する。
【００３０】
図７は、図２３に示したメモリ制御装置７０１の内部構成例を示す。
メモリ制御装置７０１は、バスＩ／Ｆ（Ｉｎｔｅｒｆａｃｅ）７０２、ＤＭＡコントローラ７０３、ＲＥＡＤ監視回路７０４、データ転送回路７０５、アドレス変換回路７０６、複製情報管理回路７０７、ＷＲＩＴＥ監視回路７０８、データ無効化回路７０９を備えている。
【００３１】
バスＩ／Ｆ７０２は、バス２０５を経由してきた外部メモリ２０３へのアクセスを受信し、アドレス信号７１０、アクセス要求元を表すイニシエータ情報信号７１１、ＲＷ信号７１２を出力する。
また、ＤＭＡコントローラ７０３、データ転送回路７０５、データ無効化回路７０９から出力されたアドレス信号、データ信号、制御信号をもとにバス２０５または外部メモリ２０３のデータ転送を制御する。
【００３２】
ＤＭＡコントローラ７０３はデータ転送回路７０５から起動され、外部メモリ２０３のデータを複製データ領域２０７へ転送する。
【００３３】
複製情報管理回路７０７は複製データ領域２０７に格納されている複製データの外部メモリ２０３のアドレスと有効情報を管理する。
複製情報管理回路７０７の構成を図８に示す。
複製情報管理回路７０７は入力された外部メモリアドレス信号７１８のデータを格納するアドレスレジスタ８０１、データ格納ブロックの情報を格納するメモリ８０２、出力する外部メモリアドレス信号のデータを作成するためのアドレスレジスタ８０３から構成される。
アドレスレジスタ８０１、８０３はそれぞれタグ部、インデックス部、オフセット部に分けることができる。
本実施の形態では複製データを格納する領域（データ格納ブロック）をキャッシュメモリの格納方式の一種であるダイレクトマップ方式で決定する。  ダイレクトマップ方式はアドレスの一部から複製データ（データブロック）を格納するデータ格納ブロックを決定する方式であり、本実施の形態ではアドレスレジスタ８０１のインデックス部によって複製データを格納するデータ格納ブロックを決定する。
そのため、メモリ８０２には、データ格納ブロックごとに、格納されている外部メモリ２０３のアドレスのタグ部とそのデータ格納ブロックが有効であるかを示す有効情報が格納されている。
メモリ８０２は制御信号７２０がＲＥＡＤ信号の場合、アドレスレジスタ８０１のインデックス部に対応するデータ格納ブロックのタグアドレスと有効情報を出力する。
出力されたタグアドレスはアドレスレジスタ８０３のタグ部に格納され、外部メモリアドレス信号７２１として出力される。有効情報は有効信号７２２として出力される。
制御信号７２０がＷＲＩＴＥ信号の場合はアドレスレジスタ８０１のタグ部と入力された有効信号７１９がメモリ８０２に書き込まれる。
【００３４】
アドレス変換回路７０６は外部メモリ２０３のアドレスから、そのアドレスのデータの複製が格納されている可能性のある複製データ領域２０７のアドレスとその複製データ領域２０７に対するデータ格納ブロックの複製状態管理情報２０８のアドレスを出力する。
【００３５】
アドレス変換回路７０６の構成を図９に示す。
アドレス変換回路７０６には外部メモリアドレス信号７１５のデータを格納するレジスタ９０１と乗算器９０２、９０３、加算器９０４、９０５、複製状態管理情報２０８と複製データ領域２０７のそれぞれのデータ格納ブロックのアドレス間隔が格納されているブロックサイズレジスタ９０６、９０７、複製状態管理情報と複製データ領域のそれぞれの先頭アドレスが格納されているベースレジスタ９０８、９０９がある。
複製状態管理情報アドレス信号７１７は、外部メモリアドレス信号７１５から入力されたアドレスのインデックス部からブロック番号を生成し、そのブロックの複製状態管理情報が格納されているアドレスを乗算器９０２、加算器９０４、ブロックサイズレジスタ９０６、ベースレジスタ９０８をもとに生成する。
内部メモリアドレス信号７１４に関しても、外部メモリアドレス信号７１５から入力されたアドレスのインデックス部からブロック番号を生成し、そのブロックのデータが格納されているアドレスからオフセット部だけ加算したアドレスを乗算器９０３、加算器９０５、ブロックサイズレジスタ９０７、ベースレジスタ９０９をもとに生成する。
【００３６】
ＲＥＡＤ監視回路７０４はバスＩ／Ｆ７０２から出力されたアドレス信号７１０、イニシエータ情報信号７１１、ＲＷ信号７１２をもとにＣＰＵ２０１から外部メモリ２０３へＲＥＡＤアクセスが発生した場合に（バスＩ／Ｆ７０２から出力された）アドレス信号７１３とイベント信号７１４を出力する。
ＲＥＡＤ監視回路７０４の内部構成を図１０に示す。
ＲＥＡＤ監視回路７０４はイニシエータ情報を格納するレジスタ１００１、ＲＥＡＤ信号を表すレジスタ１００２、比較器１００３、１００４、ＡＮＤ回路１００５から構成される。
イニシエータ情報レジスタ１００１には、ＣＰＵ２０１を示す情報が格納されており、比較器１００３は入力されたイニシエータ情報信号７１１がイニシエータ情報レジスタ１００１と一致すれば‘１’を出力する。
また、ＲＷ信号７１２とＲＥＡＤ信号レジスタ１００２の内容が一致すれば比較器１００４は‘１’を出力する。
したがって、イニシエータ情報信号７１１にＣＰＵ２０１を示す情報、ＲＷ信号７１２にＲＥＡＤ信号が入力されるとＡＮＤ回路１００５が‘１’になり、イベント信号７１４が‘１’（有効）になる。
バスＩ／Ｆ７０２から入力されたアドレス信号７１０はアドレス信号７１３としてそのまま出力される。
【００３７】
データ転送回路７０５はＲＥＡＤ監視回路７０４がイベント信号７１４を有効にすると、アドレス信号７１３で示すアドレスを含むブロックの外部メモリ２０３のデータを複製データ領域２０７に転送するようにＤＭＡコントローラ７０３を制御する。
また、複製情報管理回路７０７の該当ブロックの有効状態を有効にする。データ転送回路７０５の詳細な動作の説明は後述する。
【００３８】
ＷＲＩＴＥ監視回路７０８はバスＩ／Ｆ７０２から出力されたアドレス信号７１０、イニシエータ情報信号７１１、ＲＷ信号７１２をもとに、ＣＰＵ２０２またはＩ／Ｏデバイス２０４から外部メモリ２０３へＷＲＩＴＥアクセスが発生した場合に（バスＩ／Ｆ７０２から出力された）アドレス信号７２３とイベント信号７２４を出力する。
ＷＲＩＴＥ監視回路７０８の内部構成を図１１に示す。
ＷＲＩＴＥ監視回路７０８はイニシエータ情報を格納するレジスタ１１０１、ＷＲＩＴＥ信号を表すレジスタ１１０２、比較器１１０３、１１０４、ＡＮＤ回路１１０５から構成される。
イニシエータ情報レジスタ１１０１には、ＣＰＵ２０２またはＩ／Ｏデバイス２０４であることを示す情報が格納されており、比較器１１０３は入力されたイニシエータ情報信号７１１がイニシエータ情報レジスタ１１０１と一致すれば‘１’を出力する。また、ＲＷ信号７１２とＷＲＩＴＥ信号レジスタ１１０２の内容が一致すれば比較器１１０４は‘１’を出力する。
したがって、イニシエータ情報信号７１１にＣＰＵ２０２またはＩ／Ｏデバイス２０４を示す情報、ＲＷ信号７１２にＷＲＩＴＥ信号が入力されるとＡＮＤ回路１１０５が‘１’になり、イベント信号７２４が‘１’（有効）になる。
バスＩ／Ｆ７０２から入力されたアドレス信号７１０はアドレス信号７２３としてそのまま出力される。
【００３９】
データ無効化回路７０９はイベント信号７２４が有効になると、アドレス信号７２３で指定したデータを含むブロックの複製データを無効化するように複製情報管理回路７０７を更新し、さらに複製状態管理情報２０８のデータを更新するようバスＩ／Ｆ７０２にアドレス信号７２３とデータ信号７２４と制御信号７２５を出力する。
データ無効化回路７０９の詳細な動作の説明は後述する。
【００４０】
図１２に本実施の形態における内部メモリ２０６内の複製データ領域２０７と複製状態管理情報２０８のメモリ配置を示す。実施の形態１と同様、複製データ領域２０７はＮ個のデータ格納ブロックに分割されて格納される。
本実施の形態では各データ格納ブロックのデータ領域の後にそのデータ格納ブロックに格納されているデータの複製元のある外部メモリのアドレス１２０２と有効／無効情報１２０３が配置されている。
【００４１】
本構成における動作を説明する。
ＣＰＵ２０１が外部メモリ２０３のデータをＲＥＡＤする時（動作１）、ＷＲＩＴＥする時（動作２）、ＣＰＵ２０２が外部メモリ２０３のデータをＲＥＡＤする時（動作３）、ＷＲＩＴＥする時（動作４）の４つの場合の動作をそれぞれ説明する。
【００４２】
（動作１）ＣＰＵ２０１が外部メモリ２０３のデータをＲＥＡＤする時
ＣＰＵ２０１が外部メモリ２０３へＲＥＡＤアクセスを行ったときのＣＰＵ２０１の動作を図１３のフローチャートに示す。
図１３のフローチャートは図４のフローチャートのステップＳ４０５、Ｓ４０６を除いたものと同一である。
図４と同様に、ＣＰＵ２０１では、メモリアクセス制御プログラム２１０がＲＥＡＤ対象のデータの複製が内部メモリ２０６の複製データ領域２０７に格納されているかを判断し（Ｓ４０１）、アクセスするデータが複製データ領域２０７にある場合は、アドレス変換プログラム２０９が外部メモリ２０３のアドレスを内部メモリ２０６のアドレスに変換し（ステップＳ４０２）、メモリアクセス制御プログラム２１０が複製データ領域２０７にアクセスしてデータを取得する（ステップＳ４０３）。
ステップＳ４０３にてＣＰＵ２０１が複製データ領域２０７からデータを取得した時は、メモリ制御装置７０１は何も動作しない。
一方、アクセスするデータが複製データ領域２０７にない場合は、メモリアクセス制御プログラム２１０が外部メモリ２０３にアクセスしてＲＥＡＤ対象データを取得する（ステップＳ４０４）。
なお、本実施の形態では、メモリアクセス制御プログラム２１０は、外部メモリ２０３のデータブロックをＤＭＡコントローラ７０３を用いて転送する動作（図４のＳ４０５）と、複製状態管理情報２０８を更新する動作（図４のＳ４０６）は行わない。
【００４３】
次に、ステップＳ４０４にてＣＰＵ２０１が外部メモリ２０３にＲＥＡＤアクセスした後のメモリ制御装置７０１の動作を図７を用いて説明する。
【００４４】
ＣＰＵ２０１が外部メモリ２０３にアクセスした際、バスＩ／Ｆ７０２はアドレス信号７１０にＣＰＵ２０１がアクセスした外部メモリ２０３のアドレス、イニシエータ情報信号７１１にＣＰＵ２０１を示す情報、ＲＷ信号７１２にＲＥＡＤ情報を出力する。
ＲＥＡＤ監視回路７０４はイニシエータ情報信号７１１がＣＰＵ２０１、ＲＷ信号７１２がＲＥＡＤ情報であるためイベント信号７１４を有効にする。
ＷＲＩＴＥ監視回路７０８はイベント信号７２４を有効にはしない。
【００４５】
イベント信号７１４が有効になったときのデータ転送回路７０５の動作を示すフローチャートを図１４に示す。
【００４６】
データ転送回路７０５は、イベント信号７１４が有効になると（ステップＳ１４０１）、外部メモリアドレス信号７１８にアドレス信号７１３の値、制御信号７２０にＲＥＡＤ信号を出力して複製情報管理回路７０７から外部メモリのアドレスが入るブロックの外部メモリアドレス信号７２１と有効信号７２２を取得する（ステップＳ１４０２）。
データ転送回路７０５は、複製情報管理回路７０７から出力された外部メモリアドレス信号７２１のアドレスとアドレス信号７１３のアドレスが同一であり、かつ、有効信号７２２が有効であったならば（ステップＳ１４０３）、ＣＰＵ２０１からＲＥＡＤアクセスされたデータのアドレスはすでに複製データ領域２０７にあるため、何も行わずにステップＳ１４０１に戻り、次にイベント信号７１４が有効になるまで待つ。
ＣＰＵ２０１が図１３のフローチャートのステップＳ４０１にて複製データ領域２０７にデータがないのにも関わらず、ステップＳ１４０３でデータが複製データ領域２０７にあると判定される状況としては、直前にＣＰＵ２０１が外部メモリ２０３にＲＥＡＤアクセスしたときのデータ転送がまだ終わっていない場合などがある。
ステップＳ１４０３にて複製データ領域２０７にデータがないと判定された場合（外部メモリアドレス信号７２１のアドレスとアドレス信号７１３のアドレスが同一でない又は有効信号７２２が有効でない場合）は、データ転送回路７０５は、外部メモリアドレス信号７１５にアドレス信号７１３から入力されたアドレスを出力し、アドレス変換回路７０６からアドレス信号７１３に対応する内部メモリアドレスと複製状態管理情報２０８のアドレスを取得する（ステップＳ１４０４）。
【００４７】
ステップＳ１４０５では、ステップＳ１４０２にて取得した有効信号７２２が有効であるかを見ることで、他の外部メモリのデータブロックがそのデータ格納ブロックに格納されているかを調べている。より具体的には、有効信号７２２が有効であって、外部メモリアドレス信号７２１のアドレスとアドレス信号７１３のアドレスが同一でない場合は、他の外部メモリのデータブロックが当該データ格納ブロックに格納されていると判断できる。
格納したいデータ格納ブロックに他のデータブロックが格納されていれば（Ｓ１４０５でＹＥＳ）、そのデータブロックを無効にするようアドレス信号７２６に複製状態管理情報アドレス信号７１７、データ信号７２７に無効情報、制御信号７２８にＷＲＩＴＥ信号を出力して複製状態管理情報２０８を無効にする（ステップＳ１４０６）。
その後、外部メモリ２０３のデータを複製データ領域２０７にＷＲＩＴＥコマンドで転送するようにＤＭＡコントローラ７０３を設定してデータ転送を行い（ステップＳ１４０７）、複製状態管理情報２０８の該当ブロックのメモリアドレスにアドレス信号７１３のアドレスを書き込み（ステップＳ１４０８）、複製状態管理情報２０８の該当ブロックを有効にするようデータ転送を行う（ステップＳ１４０９）。
【００４８】
次に、図１４のステップＳ１４０５〜ステップＳ１４０９の具体例を内部メモリ２０６の内容の変遷とともに説明する。
本説明では、内部メモリ２０６の複製データ領域２０７内のデータ格納ブロックｎ（以下、ブロックｎと表記）に外部メモリ２０３のアドレスＡのデータを含むデータブロックが格納されている状況で、このブロックｎに外部メモリ２０３のアドレスＢのデータを含むデータブロックを格納するときの動作を説明する。
なお、以下では、アドレスＡのデータを含むデータブロックをアドレスＡのデータ、アドレスＢのデータを含むデータブロックをアドレスＢのデータと表記する。
【００４９】
ステップＳ１４０５の時点では、内部メモリ２０６の当該ブロックｎの内容は以下の通りになる。
［ブロックｎのデータ１２０１］［有効／無効情報１２０２］［外部メモリのアドレス１２０３］
＝［アドレスＡのデータ］［有効］［Ａ］
【００５０】
ステップＳ１４０５がＹＥＳとなり、ステップＳ１４０６において、当該ブロックｎの有効／無効情報を無効にする。
［ブロックｎのデータ１２０１］［有効／無効情報１２０２］［外部メモリのアドレス１２０３］
＝［アドレスＡのデータ］［無効］［Ａ］
【００５１】
また、ステップＳ１４０７において、外部メモリ２０３のアドレスＢのデータを含むデータブロックを当該ブロックｎのデータ１２０１に転送する。
［ブロックｎのデータ１２０１］［有効／無効情報１２０２］［外部メモリのアドレス１２０３］
＝［アドレスＢのデータ（転送中はアドレスＡのデータも混在）］［無効］［Ａ］
【００５２】
更に、ステップＳ１４０８において、当該ブロックｎの外部メモリ２０３のアドレス１２０３をＢに変更する。
［ブロックｎのデータ１２０１］［有効／無効情報１２０２］［外部メモリのアドレス１２０３］
＝［アドレスＢのデータ］［無効］［Ｂ］
【００５３】
そして、ステップＳ１４０９において、当該ブロックｎを有効にする。
［ブロックｎのデータ１２０１］［有効／無効情報１２０２］［外部メモリのアドレス１２０３］
＝［アドレスＢのデータ］［有効］［Ｂ］
【００５４】
なお、ステップＳ１４０６においてブロックｎの有効／無効情報を無効にするのは、有効のままではデータ転送中にＣＰＵ２０１がブロックｎのデータにアクセスしてしまうと正しいデータを得ることができないためである。
上記の例で、有効／無効情報を無効にしなかった場合、ステップＳ１４０７での内部メモリ２０６のブロックｎの内容は以下の通りになる。
［ブロックｎのデータ１２０１］［有効／無効情報１２０２］［外部メモリのアドレス１２０３］
＝［アドレスＢのデータ］［有効］［Ａ］
このとき、ＣＰＵ２０１がアドレスＡのデータをＲＥＡＤすると図１３のステップＳ４０１でブロックｎの有効／無効情報が有効でかつアドレスがＡになっていることから、ステップＳ４０３でブロックｎのデータを取得する。しかし、実際はブロックｎのデータにはアドレスＢのデータが格納されているため、正しいデータを取得できない。
このようにステップＳ１４０７のデータ転送中にＣＰＵからアクセスされないようにするために、ステップＳ１４０６でデータを無効にしている。
【００５５】
また、本実施の形態では、図１２のメモリ配置にあるように、各エントリのデータと複製状態管理情報の領域は連続している。そこで、ステップＳ１４０７、Ｓ１４０８、Ｓ１４０９は１回の転送にてデータを書き換えるようＤＭＡコントローラ７０３を設定し、起動させる。
【００５６】
最後に、外部メモリアドレス信号７１８にアドレス信号７１３、有効信号７１９に有効情報、制御信号７２０にＷＲＩＴＥ信号を出力して複製情報管理回路７０７を更新する（ステップＳ１４１０）。
【００５７】
以上が、（動作１）における動作例である。
【００５８】
（動作２）ＣＰＵ２０１が外部メモリ２０３にデータをＷＲＩＴＥする時
ＣＰＵ２０１が外部メモリのデータをＷＲＩＴＥする時の動作は図５に示したフローチャートと同じである。
複製データ領域２０７にデータがある場合は複製データ領域２０７のデータと外部メモリ２０３の両方にデータを書き込み、複製データ領域２０７にデータがない場合は外部メモリ２０３にのみデータを書き込む。
【００５９】
（動作３）ＣＰＵ２０２またはＩ／Ｏデバイス２０４が外部メモリ２０３のデータをＲＥＡＤする時
ＣＰＵ２０２またはＩ／Ｏデバイス２０４は外部メモリ２０３へ直接ＲＥＡＤアクセスを行う。動作２でも示した通り、ＣＰＵ２０１がデータを変更しても常に最新のデータが外部メモリ２０３に書き込まれているため、データの整合性は保たれている。
【００６０】
（動作４）ＣＰＵ２０２またはＩ／Ｏデバイス２０４が外部メモリ２０３にデータをＷＲＩＴＥする時
ここではＣＰＵ２０２が外部メモリ２０３にデータをＷＲＩＴＥした時の動作を説明する。
Ｉ／Ｏデバイス２０４が外部メモリ２０３にデータをＷＲＩＴＥした時の動作も同じである。
【００６１】
ＣＰＵ２０２が外部メモリ２０３へＷＲＩＴＥするとバスＩ／Ｆ７０２はアドレス信号７１０にＣＰＵ２０２がアクセスした外部メモリ２０３のアドレス、イニシエータ情報信号７１１にＣＰＵ２０２を示す情報、ＲＷ信号７１２にＷＲＩＴＥ情報を出力する。
ＷＲＩＴＥ監視回路７０８はイニシエータ情報信号７１１がＣＰＵ２０２、ＲＷ信号７１２がＷＲＩＴＥ情報であるためイベント信号７２４を有効にする。ＲＥＡＤ監視回路７０４はイベント信号７１４を有効にはしない。
【００６２】
イベント信号７２４が有効になったときのデータ無効化回路７０９の動作を示すフローチャートを図１５に示す。
図１５のステップＳ１５０１〜Ｓ１５０４の動作は図１４のステップＳ１４０１〜Ｓ１４０４と同じである。
ただし、データ無効化回路７０９がアドレス信号７２３で指定されたデータのエントリを無効化するため、ステップＳ１５０３で複製データ領域２０７にアドレス信号７２３で指定されたデータがある場合はステップＳ１５０４を実行し、データがない場合はステップＳ１５０１に戻る。
複製データ領域２０７にアドレス信号７２３で指定されたアドレスのデータがある場合は、アドレス信号７２９に複製状態管理情報アドレス信号７１７から入力されたアドレス、データ信号７３０に無効情報、制御信号７２５にＷＲＩＴＥ信号を出力し、複製状態管理情報２０８のデータを無効化する（ステップＳ１５０５）。
また、外部メモリアドレス信号７１８にアドレス信号７２３、有効信号７１９に無効情報、制御信号７２０にＷＲＩＴＥ信号を出力することで複製情報管理回路７０７を更新する（ステップ１５０６）。
【００６３】
以上のように動作することで、ＣＰＵ２０１は外部メモリ２０３のデータの複製を内部メモリ２０６内の複製データ領域２０７に保持することができ、ＣＰＵ２０１から外部メモリ２０３へのアクセス時間を短縮することができる。
【００６４】
なお、図１４のステップＳ１４０７〜ステップＳ１４０９のデータの転送は外部メモリ２０３のデータから複製データ領域２０７へ書き込むＷＲＩＴＥコマンドで転送する。
【００６５】
また、本実施の形態ではＣＰＵ２０１から外部メモリ２０３へのＲＥＡＤアクセスを検知するとＲＥＡＤ監視回路７０４とデータ転送回路７０５により、外部メモリ２０３のデータを内部メモリ２０６内へ転送するため、ＣＰＵ２０１が外部メモリ２０３から内部メモリ２０６へデータを転送する処理を行う必要がない。
【００６６】
また、ＣＰＵ２０１は外部メモリ２０３のデータをＷＲＩＴＥした場合は常に外部メモリ２０３へも書き込むため、ＣＰＵ２０２やＩ／Ｏデバイス２０４が外部メモリ２０３にＲＥＡＤアクセスしてもデータの整合性を保つことができる。
【００６７】
さらに、ＷＲＩＴＥ監視回路７０８とデータ無効化回路７０９により、ＣＰＵ２０２やＩ／Ｏデバイス２０４が外部メモリ２０３のデータを変更すると複製データ領域２０７のデータを無効化するよう複製状態管理情報２０８を書き換えるため、ＣＰＵ２０１が古いデータにアクセスすることがなくなる。
【００６８】
本実施の形態では、ＣＰＵ２０２やＩ／Ｏデバイス２０４が外部メモリ２０３へデータをＷＲＩＴＥしたことをＷＲＩＴＥ監視回路７０８が検知し、データ無効化回路７０９が複製状態管理情報２０８にデータを無効化するようにした。
ＣＰＵ２０２やＩ／Ｏデバイス２０４が外部メモリ２０３にデータをＷＲＩＴＥしない場合は、ＷＲＩＴＥ監視回路７０８とデータ無効化回路７０９がなくてもよい。
さらに、ＣＰＵ２０２やＩ／Ｏデバイス２０４が外部メモリ２０３のデータにＲＥＡＤもＷＲＩＴＥもしない場合は、図１６のように、ＣＰＵ２０１は複製データ領域２０７に外部メモリ２０３のデータがない場合にのみ外部メモリ２０３にデータを書き込み（ステップＳ５０１）、複製データ領域２０７に外部メモリ２０３のデータがある場合は複製データ領域２０７にのみ書き込むようにしてもよい（ステップＳ５０３、Ｓ５０４）。
この場合、ＤＭＡによって定期的に複製データ領域２０７のデータを外部メモリ２０３に書き込むことで外部メモリ２０３と複製データ領域２０７とのデータの同期化を行う。
この方法ではＣＰＵ２０１が外部メモリ２０３へＷＲＩＴＥする回数を削減することができ、バス２０５の負荷を低減することができる。
【００６９】
本実施の形態では複製データの各ブロックの末尾に有効無効情報を備える（図１２）ことで、ＤＭＡで複製データと有効無効情報を１トランザクションで転送するようにしたが、実施の形態１のように、複製データ領域と有効無効情報を別のメモリ領域に配置してもよい（図３）。
その場合、図１４のステップＳ１４０７のデータ転送とステップＳ１４０８、ステップＳ１４０９の複製状態管理情報２０８の２回の転送を行う。
【００７０】
本実施の形態では、複製データ領域２０７にデータを格納方法としてダイレクトマップ方式を用いたが、実施の形態１のように格納できる領域を固定していてもよい。
【００７１】
本実施の形態では、ＣＰＵ２０２またはＩ／Ｏデバイス２０４が外部メモリ２０３にデータをＷＲＩＴＥした場合、データ無効化回路７０９が複製データ領域２０７のデータを無効化するよう複製状態管理情報２０８を更新していたが、データを無効化する代わりに変更されたデータを複製データ領域２０７に書き込むようにしてもよい。
データを無効化する場合は、無効化されたブロックのデータをＣＰＵ２０１が再びアクセスすると内部メモリ２０６にデータが存在しないので外部メモリ２０３にアクセスしてしまう。
しかし、ＣＰＵ２０２またはＩ／Ｏデバイス２０４が変更したデータを書き込むようにすることでＣＰＵ２０１は複製データ領域２０７にアクセスしてデータを取得できるので、メモリアクセスによるＣＰＵのストール時間を短くすることができる。
【００７２】
また、実施の形態１で図２に示した構成において、ＣＰＵ２０１のメモリアクセス制御プログラム２１０が図１４のステップＳ１４０５〜ステップＳ１４０９の動作を行うようにしてもよい。
つまり、メモリアクセス制御プログラム２１０は、図４のステップＳ４０４の実行後、外部メモリ２０３から読み出すデータブロックの格納先となるデータ格納ブロックに他のデータが格納されているか否かを有効／無効情報を参照して判断し（Ｓ１４０５）、他のデータが格納されている場合は、当該データ格納ブロックを無効にして（Ｓ１４０６）、外部メモリ２０３から読み出したデータブロックを当該データ格納ブロックに転送し（Ｓ１４０７）、外部メモリ２０３から読み出したデータブロックを他のデータに置き換えて当該データ格納ブロックに格納し（Ｓ１４０８）、当該データ格納ブロックを有効にする（Ｓ１４０９）。
【００７３】
実施の形態３．
本実施の形態に係る情報処理装置１００の構成例は図２３に示したものと同様である。
図１７は本実施の形態に係るメモリ制御装置７０１の構成例を示す。
図１７は図７の実施の形態２の構成から複製情報管理回路７０７を除いた構成と同じである。
【００７４】
実施の形態３では、外部メモリ２０３のＸＸ番地からＸＸ＋ＳＩＺＥ番地までのデータを内部メモリ２０６のＹＹ番地からＹＹ＋ＳＩＺＥ番地に格納するといったように格納場所を固定する。
そのため、実施の形態２にあった複製情報管理回路７０７のようにどのブロックに外部メモリ２０３のどのデータが格納されているかの情報は必要ない。
また、ＣＰＵ２０１が外部メモリ２０３にＲＥＡＤアクセスするのは、複製データ領域２０７にデータがない場合であるため、ＲＥＡＤ監視回路７０４からイベント信号７１４が出力されれば、データ転送回路７０５は外部メモリ２０３のデータを複製データ領域２０７に転送するようにすればよい。
また、ＣＰＵ２０２やＩ／Ｏデバイス２０４が外部メモリ２０３にデータをＷＲＩＴＥし、イベント信号７２４が有効になった場合もデータ無効化回路７０９がアドレス信号７２３に対応する複製状態管理情報２０８の有効情報を無効化すればよい。
【００７５】
実施の形態３では複製情報管理回路７０７がなく有効情報を管理しないため、ＣＰＵ２０２やＩ／Ｏデバイス２０４が外部メモリ２０３の同一ブロックのデータに対して連続して何度もＷＲＩＴＥアクセスがあった場合、内部メモリ２０６の複製状態管理情報２０８を無効化するために内部メモリ２０６へのデータ転送が何度も発生する。つまり、ＣＰＵ２０２やＩ／Ｏデバイス２０４が外部メモリ２０３にＷＲＩＴＥしたデータを含むデータブロックが内部メモリ２０６のいずれかのデータ格納ブロックに格納されており、当該データ格納ブロックに対応する外部メモリ２０３のデータブロックに対してＣＰＵ２０２やＩ／Ｏデバイス２０４が連続して何度もＷＲＩＴＥアクセスを行った場合は、ＷＲＩＴＥアクセスがある度に、該当するデータ格納ブロックの有効／無効情報を無効にするためにデータ無効化回路７０９が内部メモリ２０６にアクセスする必要がある。
しかしながら、無効化のためのデータ転送回数を減らすため、データ無効化回路７０９は同じブロックに対するイベント信号７２４が一定時間内に複数回有効になっても２回目以降は無効化しないようにしてもよい。
このように同一のデータ格納ブロックに対する２回目以降の無効化の設定を省略することで、無効化する回数を削減することができ、バス２０５のトラフィックを削減することができる。
【００７６】
なお、本実施の形態では、ＣＰＵ２０２やＩ／Ｏデバイス２０４が外部メモリ２０３へデータをＷＲＩＴＥしたことをＷＲＩＴＥ監視回路７０８が検知し、データ無効化回路７０９が複製状態管理情報２０８のデータを無効化するようにしているが、ＣＰＵ２０２やＩ／Ｏデバイス２０４が外部メモリ２０３のデータをＷＲＩＴＥすることがない場合は、ＷＲＩＴＥ監視回路７０８とデータ無効化回路７０９がなくてもよい。
【００７７】
実施の形態４．
図２４は、実施の形態４に係る情報処理装置１００の構成例を示す。
【００７８】
実施の形態４では、ＣＰＵ２０２に内部メモリ１８０１が接続されている。
内部メモリ１８０１は、ＣＰＵ２０２に対して内部メモリ２０６と同様の機能を果たす。
つまり、内部メモリ１８０１はｎ個のデータ格納ブロックに区分され、各データ格納ブロックに外部メモリ２０３のデータをデータブロック単位で格納しており、ＣＰＵ２０２は外部メモリ２０３の代わりに内部メモリ１８０１にアクセスすることによりデータ取得時間を短縮することができる。
なお、内部メモリ１８０１は、デバイス用内部メモリの例である。
【００７９】
ＣＰＵ２０２内部にはアドレス変換プログラム１８０２、メモリアクセス制御プログラム１８０３があり、内部メモリ１８０１には複製データ領域１８０４と複製状態管理情報１８０５が格納されており、ＣＰＵ２０２の内部メモリ１８０１の複製データ領域１８０４にも外部メモリ２０３のデータを格納する。
複製データ領域１８０４と複製データ領域２０７、複製状態管理情報１８０５と複製状態管理情報２０８はそれぞれ同一の構成であり、アドレス変換プログラム１８０２とアドレス変換プログラム２０９の動作、メモリアクセス制御プログラム１８０３とメモリアクセス制御プログラム２１０の動作は同じである。
【００８０】
図１８は、本実施の形態に係るメモリ制御装置７０１の構成例を示す。
【００８１】
本実施の形態では、メモリアクセス制御プログラム２１０は、外部メモリ２０３に格納されているいずれかのデータの読み出しが要求された場合に、読み出し対象データの複製が内部メモリ２０６に格納されているか否かを判定し、また、メモリアクセス制御プログラム１８０３は、外部メモリ２０３に格納されているいずれかのデータの読み出しが要求された場合に、読み出し対象データの複製が内部メモリ１８０１に格納されているか否かを判定する。
メモリ制御装置７０１は、読み出し対象データの複製が内部メモリ２０６に格納されていない場合及び読み出し対象データの複製が内部メモリ１８０１に格納されていない場合のいずれにおいても、読み出し対象データを含むデータブロックを外部メモリ２０３から読み出し、読み出したデータブロックを内部メモリ２０６及び内部メモリ１８０１の双方に格納する。
【００８２】
つまり、実施の形態２におけるＲＥＡＤ監視回路７０４は、ＣＰＵ２０１からのＲＥＡＤアクセスを検知するとイベント信号７１４を有効にしたが、本実施の形態では、ＣＰＵ２０１またはＣＰＵ２０２からのＲＥＡＤアクセスがあった場合、イベント信号７１４を有効にする。
データ転送回路７０５はイベント信号７１４が有効になると複製データ領域２０７と複製データ領域１８０４の両方に外部メモリ２０３のデータを転送し、複製状態管理情報２０８、複製状態管理情報１８０５を更新する。
【００８３】
また、本実施の形態では、ＣＰＵ２０２により外部メモリ２０３にデータの書き込みが行われた場合は、ＣＰＵ２０１、ＣＰＵ２０２両方の複製データ領域を無効化するようにする。また、ＣＰＵ２０２またはＩ／Ｏデバイス２０４により外部メモリ２０３にデータの書き込みが行われた場合も、ＣＰＵ２０１、ＣＰＵ２０２両方のデータ格納ブロックの有効／無効情報を無効にする。
【００８４】
つまり、ＷＲＩＴＥ監視回路７０８は、ＣＰＵ２０２またはＩ／Ｏデバイス２０４に加え、ＣＰＵ２０１に関してもＷＲＩＴＥアクセスが発生するとイベント信号７２４を有効にする。
またデータ無効化回路７０９はイベント信号７２４が有効になると、複製状態管理情報２０８と複製状態管理情報１８０５のアドレス信号７２３で指定されたデータのエントリを無効化する。
【００８５】
このように、本実施の形態によれば、複製データ領域２０７と複製データ領域１８０４で複製状態を同じにすると、複製情報管理回路７０７が管理する外部メモリアドレスと有効情報を一元に管理することができる。
【００８６】
また、上記の説明では、複製データ領域２０７、複製データ領域１８０４に格納されているデータの複製状態を共通で管理しているが、複製情報管理回路７０７を複数備え、複製状態を個別に管理すれば、ＣＰＵ２０１とＣＰＵ２０２が外部メモリ２０３の異なる領域のデータにアクセスする場合、各ＣＰＵに必要なデータしか複製データ領域２０７、複製データ領域１８０４に格納されないため、内部メモリ２０６、内部メモリ１８０１を効率的に利用できる。
この場合、データ転送回路７０５はイベント信号７１４が有効になるとＲＥＡＤアクセスのあったＣＰＵの複製データ領域にのみ外部メモリ２０３のデータを転送する。
つまり、メモリ制御装置７０１は、ＣＰＵ２０１の読み出し対象データの複製がＣＰＵ２０１の内部メモリ２０６に格納されていない場合に、ＣＰＵ２０１の読み出し対象データを含むデータブロックを外部メモリ２０３から読み出し、読み出したデータブロックをＣＰＵ２０１の内部メモリ２０６にのみ格納し、ＣＰＵ２０２の読み出し対象データの複製がＣＰＵ２０２の内部メモリ１８０１に格納されていない場合に、ＣＰＵ２０２の読み出し対象データを含むデータブロックを外部メモリ２０３から読み出し、読み出したデータブロックをＣＰＵ２０２の内部メモリ１８０１にのみ格納する。
【００８７】
また、ＷＲＩＴＥについては、ＣＰＵ２０２により外部メモリ２０３にデータの書き込みが行われた場合は、実施の形態２と同様に、メモリ制御装置７０１は、ＣＰＵ２０２によりデータ書き込みが行われた外部メモリ２０３のアドレスに対応するＣＰＵ２０１の内部メモリ２０６のデータ格納ブロックを抽出し、抽出したデータ格納ブロックにはデータブロックが格納されていないことを表す識別子を設定する（有効／無効情報を無効にする）。
一方、ＣＰＵ２０１により外部メモリ２０３にデータの書き込みが行われた場合は、メモリ制御装置７０１は、ＣＰＵ２０１によりデータ書き込みが行われた外部メモリ２０３上のアドレスに対応するＣＰＵ２０２の内部メモリ１８０１のデータ格納ブロックを抽出し、抽出したデータ格納ブロックにはデータブロックが格納されていないことを表す識別子を設定する（有効／無効情報を無効にする）。
【００８８】
更に、データ無効化回路７０９はイベント信号７２４が有効になった場合に各複製データ領域２０７、複製データ領域１８０４に格納されているデータを無効化する代わりに変更されたデータをそれぞれの複製データ領域２０７、複製データ領域１８０４に書き込むようにしてもよい。
つまり、ＣＰＵ２０２により外部メモリ２０３にデータの書き込みが行われた場合は、実施の形態２と同様に、メモリ制御装置７０１は、ＣＰＵ２０２によりデータ書き込みが行われた外部メモリ２０３上のアドレスに対応するＣＰＵ２０１の内部メモリ２０６のデータ格納ブロックを抽出し、抽出したデータ格納ブロックにＣＰＵ２０２により外部メモリ２０３に書き込まれたデータの複製を格納し、ＣＰＵ２０１により外部メモリ２０３にデータの書き込みが行われた場合は、メモリ制御装置７０１は、ＣＰＵ２０１によりデータ書き込みが行われた外部メモリ２０３上のアドレスに対応するＣＰＵ２０２の内部メモリ１８０１のデータ格納ブロックを抽出し、抽出したデータ格納ブロックにＣＰＵ２０１により外部メモリ２０３に書き込まれたデータの複製を格納するようにしてもよい。
【００８９】
以上のように構成することで、ＣＰＵ２０１だけでなく、ＣＰＵ２０２にも外部メモリ２０３のデータを各ＣＰＵに接続している内部メモリ２０６、内部メモリ１８０１に格納することができ、ＣＰＵ２０１、ＣＰＵ２０２からの外部メモリ２０３のデータへのアクセス時間を短縮することができる。
【００９０】
実施の形態５．
実施の形態５の構成図は図２と同じである。内部メモリ２０６の内容の一部を図１９に示す。
【００９１】
内部メモリ２０６には、複製データ領域２０７と複製状態管理情報２０８が格納されている。
複製データ領域２０７はある一定のサイズのＮ個のデータ格納ブロック（３０３ａ、３０３ｂ、３０３ｃ）に分割されており、各データ格納ブロックのデータ３０３の直後に対応するデータ格納ブロックの複製状態管理情報２０８が格納されている。
本実施の形態では、各データ格納ブロックの複製状態管理情報２０８には外部メモリのアドレス３０１、有効／無効情報３０２に加えて複製データ領域２０７への外部メモリ２０３のデータの転送が完了しているか（データブロックの格納が完了しているか）を示す転送完了情報１９０１が追加されている点が実施の形態１と異なる。
転送完了情報１９０１はそのブロックのデータ３０３への外部メモリ２０３のデータの転送が完了しているかどうかを表す識別子であり、“完了”または“未完了”のいずれかの値をとる。
“完了”はそのデータ格納ブロックに外部メモリアドレス３０１で指定されたアドレスのデータブロックが全て格納されている状態を表しており、“未完了”は複製データ領域２０７の該当するデータ格納ブロックのデータ３０３に外部メモリ２０３のデータブロックが格納されていない状態を表している。
有効／無効情報３０２が“有効”で転送完了情報１９０１が“未完了”の場合はそのデータ格納ブロックにデータブロックを転送中であることを表す。
また、有効／無効情報３０２が“無効”の場合は転送完了情報１９０１は必ず“未完了”になっている。
【００９２】
ＣＰＵ２０１は外部メモリ２０３のデータブロックを複製データ領域２０７に転送するようＤＭＡコントローラ７０３を起動した時に転送完了情報１９０１を“未完了”とセットする。
そして複製データ領域２０７への外部メモリ２０３のデータブロックのＤＭＡ転送が完了するとＤＭＡコントローラ７０３が転送完了情報１９０１を“完了”にセットする。
【００９３】
図２０はＣＰＵ２０１が外部メモリ２０３のデータをＲＥＡＤした時のフローチャートである。
【００９４】
まずステップＳ２００１にて、メモリアクセス制御プログラム２１０が、ＲＥＡＤするデータが複製データ領域２０７にあり、かつそのデータが含まれているブロックへのデータ転送が完了しているかを調べる。
具体的には、ＲＥＡＤするデータを含むデータブロックのアドレスが外部メモリアドレス３０１と一致し、かつ、そのデータ格納ブロックの転送完了情報１９０１が“完了”になっているかを調べる。
ＲＥＡＤするデータを含むデータブロックのアドレスと外部メモリアドレス３０１が一致し、かつ、そのデータ格納ブロックの転送完了情報１９０１が“完了”であれば、そのデータ格納ブロックにＲＥＡＤしたいデータがあり、かつ外部メモリ２０３のデータの転送が完了しているので（転送完了情報１９０１が“完了”になるのは有効／無効情報３０２が有効である場合のみのため有効／無効情報３０２の情報を確認する必要はない）、メモリアクセス制御プログラム２１０は、外部メモリ２０３のアドレスをアドレス変換プログラム２０９にて複製データ領域２０７のアドレスに変換して複製データ領域２０７内のブロックのデータ３０３からデータを読んで返す（ステップＳ２００２）。
【００９５】
ＲＥＡＤするデータを含むデータブロックのアドレスと外部メモリアドレス３０１が一致し、かつ転送完了情報１９０１が“完了”になっているデータ格納ブロックがない場合（ステップＳ２００１がＮＯの場合）は、メモリアクセス制御プログラム２１０は、ＲＥＡＤするデータを含むデータ格納ブロックが複製データ領域２０７にあるかを調べるためにＲＥＡＤするデータを含むデータブロックのアドレスが外部メモリアドレス３０１と一致し、かつ有効／無効情報３０２が有効であるデータ格納ブロックがあるかを調べる（ステップＳ２００３）。
ステップＳ２００３がＹＥＳの場合はそのデータブロックのＤＭＡ転送が完了していない状態であるのでステップＳ２００１に戻り、ＤＭＡ転送が完了するまでステップＳ２００１とステップＳ２００３の判定を続ける。
【００９６】
ステップＳ２００３がＮＯの場合は、複製データ領域２０７にＲＥＡＤするデータの複製がない状態であるため、メモリアクセス制御プログラム２１０は、外部メモリ２０３からＲＥＡＤしたいデータを取得する（ステップＳ２００４）。
そしてＲＥＡＤするデータを含むデータブロックを複製データ領域２０７に格納するため、メモリアクセス制御プログラム２１０は、格納するデータ格納ブロックの外部メモリアドレス３０１を転送するデータブロックの外部メモリ２０３のアドレスに変更し、有効／無効情報３０２を有効、転送完了情報１９０１を“未完了”にして複製状態管理情報２０８を更新する（ステップＳ２００５）。
そして、メモリアクセス制御プログラム２１０は、外部メモリ２０３のデータブロックを複製データ領域２０７のデータ格納ブロックに転送するように転送元アドレス、転送先アドレス、転送サイズをＤＭＡコントローラ７０３に設定し、また転送完了後に該当するデータ格納ブロックの転送完了情報１９０１を“完了”にするよう転送完了情報１９０１のアドレスと書き込む値“完了”をＤＭＡコントローラ７０３に設定し、ＤＭＡコントローラ７０３の起動を行う（ステップＳ２００６）。
【００９７】
外部メモリ２０３から複製データ領域２０７へのデータ転送はステップＳ２００６のＣＰＵ２０１からの起動処理によってＤＭＡコントローラ７０３が行う。
ＤＭＡコントローラ７０３はＣＰＵ２０１によって指定された転送元アドレス、転送先アドレス、転送サイズにしたがって外部メモリ２０３のデータを読み出して複製データ領域２０７へデータを書き込む。
ＤＭＡコントローラ７０３は転送が完了すると、ＣＰＵ２０１によって指定された転送完了情報１９０１に“完了”を書き込む。
【００９８】
このように本実施の形態では、ＲＥＡＤ時の最初に転送完了情報１９０１と外部メモリアドレス３０１によって複製データ領域２０７にＲＥＡＤするデータがあり、かつ、ＤＭＡ転送が完了していることを判定することで複製データ領域２０７にデータがある場合の処理を高速化している。
【００９９】
また、各ブロックのデータ３０３と転送完了情報１９０１が連続領域となっているため、外部メモリ２０３から複製データ領域２０７へのデータ転送と、転送完了情報の書き込みを１トランザクションで行うことができるため、ブロックのデータ３０３と転送完了情報が連続していない場合よりも高速にデータを転送することができる。
【０１００】
以上が、ＣＰＵ２０１が外部メモリ２０３のデータをＲＥＡＤした時の動作である。
【０１０１】
ＣＰＵ２０１から外部メモリ２０３のデータをＷＲＩＴＥした場合の動作は図２１のようになる。
【０１０２】
ＷＲＩＴＥ時は、メモリアクセス制御プログラム２１０は、まず外部メモリ２０３にデータを書き込み（ステップＳ２１０１）、次に書き込んだアドレスのデータの複製が複製データ領域２０７にあるかを調べるため、ＷＲＩＴＥしたデータのアドレスを含むブロックのアドレスが外部メモリアドレス３０１と一致し、かつそのブロックの有効／無効情報３０２が有効であるブロックがあるかを調べる（ステップＳ２１０２）。
ステップＳ２１０２がＮＯの場合はＷＲＩＴＥしたデータの複製が複製データ領域２０７にないため、処理を終了する。
ステップＳ２１０２がＹＥＳの場合は、メモリアクセス制御プログラム２１０は、そのブロックの転送完了情報１９０１が“完了”になっているかを調べてＤＭＡ転送が完了しているかを確認する（ステップＳ２１０３）。
ステップＳ２１０３がＮＯの場合は、ＤＭＡ転送が完了して転送完了情報１９０１が“完了”になるまでステップＳ２１０３の判定を続ける。
ステップＳ２１０３がＹＥＳになれば外部メモリ２０３のアドレスを複製データ領域２０７の該当するアドレスにアドレス変換プログラム２０９によって変換して、複製データ領域２０７の対応するブロックのデータ３０３にデータを書き込む（ステップＳ２１０４）。
【０１０３】
以上がＣＰＵ２０１が外部メモリ２０３のデータをＷＲＩＴＥした時の動作である。
【０１０４】
本実施の形態では、ＣＰＵ２０１は外部メモリ２０３から複製データ領域２０７へデータを転送するＤＭＡの起動を行った後、データ転送の完了を待たずに元の処理に戻ることができるため、ＣＰＵ２０１の処理の効率を高くすることができる。
【０１０５】
本実施の形態では、外部メモリ２０３のデータを複製データ領域２０７のどのブロックに格納するかについて規定していないが、実施の形態１と同様に外部メモリ２０３のＸＸ番地からＸＸ＋ＳＩＺＥ−１番地までのデータを内部メモリ２０６のＹＹ番地からＹＹ＋ＳＩＺＥ−１番地に格納するといったようにアドレスによって格納場所を固定してもよいし、キャッシュメモリで利用されるダイレクトマップ方式やセットアソシアティブ方式のようにアドレスの一部をインデックスとして格納するブロックを決定してもよい。
これらの格納方式ではアドレスによって格納されるブロックが１つ（セットアソシアティブ方式の場合はウェイの数）に絞られるため、図２０のステップＳ２００１、ステップＳ２００３、図２１のステップＳ２１０２、ステップＳ２１０３では全てのブロックの複製状態管理情報２０８を調べる必要がなく、外部メモリ２０３のアドレスによって決定された１つ（またはウェイの数）のブロックの複製状態管理情報２０８を調べるだけでよい。
【０１０６】
また複製データ領域２０７の大きさが外部メモリ２０３と同じ大きさである場合は、外部メモリ２０３に対応する複製データ領域２０７のアドレスは一意に変換できるため、複製状態管理情報２０８の外部メモリアドレス３０１は不要になる。
そのため、図２０のステップＳ２００１やステップＳ２００３、図２１のステップＳ２１０２やステップＳ２１０３ではそれぞれＲＥＡＤするアドレスに対応するブロックの転送完了情報１９０１または有効／無効情報３０２のみを参照すればよい。
【０１０７】
さらに、複製データ領域２０７の大きさが外部メモリ２０３と同じ大きさであり、システムの起動時に外部メモリ２０３のデータを複製データ領域２０７に転送しておく場合は必ず外部メモリ２０３のデータが複製データ領域２０７に存在することになるので複製状態管理情報２０８の有効／無効情報３０２も不要である。
このとき、図２０のステップＳ２００３ではＲＥＡＤするデータの複製が複製データ領域２０７にあると判定されるため、ステップＳ２００４、ステップＳ２００５、ステップＳ２００６は実行されない。また、外部メモリ２０３から複製データ領域２０７へのデータ転送が完了してからアクセスする場合は転送完了情報１９０１も不要であり、ステップＳ２００１がＮＯの場合は再びステップＳ２００１を実行する。
【０１０８】
また、本実施の形態では、実施の形態１の構成（メモリ制御装置７０１を含まない構成）において内部メモリ２０６に転送完了情報を設ける例について説明したが、実施の形態２〜４の構成（メモリ制御装置７０１を含む構成）でも内部メモリ２０６に転送完了情報を設け、上記と同様の処理を行うようにしてもよい。
【０１０９】
また、本実施の形態では、外部メモリ２０３から複製データ領域２０７へデータを転送する処理をＤＭＡコントローラ７０３を用いて行ったが、ＤＭＡコントローラ７０３を用いず、ＤＭＡコントローラ７０３の機能を、外部メモリ２０３から複製データ領域２０７へのデータ転送を行い、転送完了情報１９０１の更新を行う、ＣＰＵ２０１またはＣＰＵ２０２のスレッドとして実現してもよい。
その場合は図２２のようにＣＰＵ２０１またはＣＰＵ２０２には、外部メモリ２０３から内部メモリ２０６の複製データ領域２０７にデータを転送し、複製状態管理情報２０８の転送完了情報１９０１を“完了”にするデータ転送プログラム２１２が備わる。
図２２の構成においては、メモリアクセス制御プログラム２１０とデータ転送プログラム２１２が第２のデータ処理部の役割を担う。
また、ＤＭＡコントローラ７０３を使わずにマルチコア構成の別のＣＰＵコアに外部メモリ２０３から複製データ領域２０７への転送を行わせてもＤＭＡコントローラ７０３と同じ効果がある。
なお、図２２の構成は、実施の形態１にも適用することができる。
【０１１０】
最後に、実施の形態１〜５で説明したメモリ制御システムの概要を再度説明する。
【０１１１】
実施の形態１〜５では、
ＣＰＵとＣＰＵから高速なシリアルバス経由でアクセスされる外部メモリと、ＣＰＵから高速なシリアルバスを経由せずに直接アクセスでき、さらに外部メモリのデータの一部または全部を複製として格納する内部メモリとを備えた情報処理装置において以下の手段または方式を備えたシステムを説明した。
（ａ）ＣＰＵが内部メモリに格納されている外部メモリのデータの複製状態を管理する複製状態管理手段
（ｂ）外部メモリにアクセスするかわりにデータの複製が格納されている内部メモリにアクセスするため、外部メモリのアドレスを内部メモリのアドレスに変換するアドレス変換手段
（ｃ）以下の特徴を持つメモリアクセス制御手段。
ＣＰＵが外部メモリのデータをＲＥＡＤする際に、内部メモリにデータの複製がある場合は内部メモリからデータを取得し、内部メモリに複製がない場合は外部メモリにアクセスしてデータを取得する。またＣＰＵが外部メモリのデータをＷＲＩＴＥする際も、内部メモリにデータの複製がある場合は内部メモリと外部メモリの両方に書き込み、内部メモリに複製データがない場合は外部メモリにのみ書き込む。
【０１１２】
また、前記の（ａ）〜（ｃ）の手段をプログラム化したシステムを説明した。
【０１１３】
また、ＣＰＵが外部メモリのデータにアクセスを開始する前にあらかじめ内部メモリにデータを格納しておくデータを転送する手段（ｄ）を備えるシステムを説明した。
【０１１４】
また、メモリアクセス制御手段（ｃ）は、内部メモリにデータの複製がない場合は、外部メモリにアクセスしてデータを取得し、その後、取得したデータを含むブロックのデータを内部メモリに格納するシステムを説明した。
【０１１５】
また、前記の（ａ）〜（ｃ）に加え、以下の手段を備えたシステムを説明した。
（ｅ）ＣＰＵから外部メモリにＲＥＡＤアクセスされたことを検知する検知手段
（ｆ）前記検知手段（ｅ）によってＣＰＵから外部メモリへのＲＥＡＤアクセスを検知するとアクセスされたデータを含む周囲のデータと複製状態を内部メモリに転送する複製データ転送手段
（ｇ）前記複製データ転送手段（ｆ）によって内部メモリに外部メモリのデータの複製があるかを管理する複製情報管理手段
（ｈ）前記複製データ転送手段（ｆ）が内部メモリに外部メモリのデータを転送する際に転送先のアドレスを決定するアドレス変換手段。
【０１１６】
また、前記複製データ転送手段（ｆ）は、外部メモリから内部メモリへのデータの転送をＷＲＩＴＥのバースト転送で行うことを説明した。
【０１１７】
また、前記複製データ転送手段（ｆ）は、内部メモリへのデータの転送と情報更新を１トランザクションで行うことを説明した。
【０１１８】
前記メモリアクセス制御手段（ｃ）は、ＣＰＵが外部メモリのデータをＷＲＩＴＥする際には内部メモリにそのデータの複製がある場合は内部メモリと外部メモリの両方には書き込まず、内部メモリにのみ書き込むことを説明した。
さらに、ＤＭＡを用いて定期的に内部メモリに格納されているデータを外部メモリに書き込むことで外部メモリと内部メモリとのデータの整合性を保つためのデータ同期化手段を持つことを説明した（データ同期化手段はソフトウェアのみで構成するときは定期的にＤＭＡをたたくプログラムを示す。専用ハードウェアがある場合は定期的にＤＭＡをたたく専用回路としてもよい）。
【０１１９】
また、以下の手段を備えたシステムを説明した。
（ｉ）前記ＣＰＵとは異なるＣＰＵ（他ＣＰＵ）やＩ／Ｏから外部メモリにデータを書き込まれたことを検知する検知手段
（ｊ）前記（ｉ）検知手段が他ＣＰＵやＩ／Ｏからの外部メモリへのデータ書き込みを検知すると内部メモリに格納されている複製データを無効化するよう前記（ｂ）と（ｇ）の情報を書き換えるデータ無効化手段。
【０１２０】
また、以下の手段を備えたシステムを説明した。
（ｉ）前記ＣＰＵとは異なるＣＰＵ（他ＣＰＵ）やＩ／Ｏから外部メモリにデータを書き込まれたことを検知する検知手段
（ｋ）前記（ｉ）検知手段が他ＣＰＵやＩ／Ｏからの外部メモリへのデータ書き込みを検知すると内部メモリに格納されている複製データを更新するデータ更新手段。
【０１２１】
前記（ａ）〜（ｃ）に加え、以下の手段を備えたシステムを説明した。
（ｅ）ＣＰＵから外部メモリにＲＥＡＤアクセスされたことを検知する検知手段
（ｆ）前記（ｅ）検知手段によってＣＰＵから外部メモリへのＲＥＡＤアクセスを検知するとアクセスされたデータを含む周囲のデータと複製状態を内部メモリに転送する複製データ転送手段
（ｈ）前記（ｆ）が内部メモリに外部メモリのデータを転送する際に転送先のアドレスを決定するアドレス変換手段。
【０１２２】
また、以下の（ｉ），（ｊ１）の手段を備えたシステムを説明した。
（ｉ）前記ＣＰＵとは異なるＣＰＵ（他ＣＰＵ）やＩ／Ｏから外部メモリにデータを書き込まれたことを検知する検知手段
（ｊ１）前記（ｉ）検知手段が他ＣＰＵやＩ／Ｏからの外部メモリへのデータ書き込みを検知すると内部メモリに格納されている複製データを無効化するよう複製情報を書き換えるデータ無効化手段。
【０１２３】
また、前記（ｊ１）データ無効化手段は、前記（ｉ）検知手段により、他のＣＰＵやＩ／Ｏが外部メモリのデータを書きかえたことを検知した際に、アクセスされたデータのアドレスを記憶しておき、内部メモリにある同じブロックのデータが一定時間内に何度も更新された場合は２回目以降の複製情報の書き換えを行わないことを説明した。
【０１２４】
また、複数のＣＰＵと前記複数のＣＰＵから高速なシリアルバス経由でＲＥＡＤアクセスされる外部メモリと、ＣＰＵから高速なシリアルバスを経由せずに直接アクセスでき、さらに外部メモリのデータの一部または全部を複製として格納する内部メモリとを備えた情報処理装置において、各ＣＰＵ、内部メモリ内に前記（ａ）〜（ｃ）を備えるシステムを説明した。
【０１２５】
また、以下の手段を備えたシステムを説明した。
（ｅ１）各ＣＰＵから外部メモリにＲＥＡＤアクセスされたことを検知する検知手段
（ｆ１）前記（ｅ１）検知手段によってＣＰＵから外部メモリへのＲＥＡＤアクセスを検知するとアクセスされたデータを含む周囲のデータと複製状態を全ての内部メモリに転送する複製データ転送手段
（ｇ）内部メモリに外部メモリのデータの複製状態を管理するための複製情報管理手段
（ｈ）前記（ｆ１）が内部メモリに外部メモリのデータを転送する際に転送先のアドレスを決定するアドレス変換手段。
【０１２６】
また、前記（ｆ１）の複製データ転送手段は、前記（ｅ１）で検知されたＣＰＵに直結している内部メモリにのみデータと複製状態を転送する手段であり、
前記（ｇ）複製情報管理手段は内部メモリごとに複製状態を保持しておく手段であることを説明した。
【０１２７】
また、以下の手段を備えたシステムを説明した。
（ｉ１）ＣＰＵやＩ／Ｏから外部メモリにデータを書き込まれたことを検知する検知手段（ｊ３）前記（ｉ１）検知手段が外部メモリへのデータ書き込みを検知すると内部メモリに格納されている複製データを無効化するよう複製状態の情報を書き換えるデータ無効化手段。
【０１２８】
また、以下の手段を備えたシステムを説明した。
（ｉ１）ＣＰＵやＩ／Ｏから外部メモリにデータを書き込まれたことを検知する検知手段（ｋ１）前記（ｉ１）検知手段が外部メモリへのデータ書き込みを検知すると内部メモリに格納されている複製データを更新するデータ更新手段。
【０１２９】
また、ＣＰＵとＣＰＵから高速なシリアルバス経由でアクセスされる外部メモリと、ＣＰＵから高速なシリアルバスを経由せずに直接アクセスでき、さらに外部メモリのデータの一部または全部を複製としてブロック単位で格納する内部メモリとを備えた情報処理装置において以下の手段または方式を備えたシステムを説明した。
（ａ１）各ブロックに格納されている外部メモリのアドレスとそのブロックが有効であるかどうかを示す有効／無効情報に加え、データの転送が完了しているかどうかを示す転送完了情報が備わっている複製状態管理手段
（ｂ）ＣＰＵが外部メモリにアクセスする代わりにデータの複製が格納されている内部メモリにアクセスするための外部メモリのアドレスを内部メモリのアドレスに変換するアドレス変換手段
（ｃ１）以下の動作を行う、外部メモリへのメモリアクセス制御手段
ＣＰＵから外部メモリのデータをＲＥＡＤする場合は複製管理手段（ａ１）を参照して内部メモリに外部メモリの複製データがあるか、データ転送が完了しているかを調べる。内部メモリにデータの複製があり、かつ、データ転送が完了している場合は内部メモリからデータを取得する。内部メモリにデータの複製があるが、データ転送が完了していない場合は転送が完了するまで待った後、内部メモリにアクセスしてデータを取得する。内部メモリにデータの複製がない場合は、外部メモリにアクセスしてデータを取得し、その後、取得したデータを含むブロックのデータを内部メモリに格納するよう起動処理を行った後、元の処理に戻る。
ＣＰＵから外部メモリのデータをＷＲＩＴＥする場合は、複製管理手段（ａ１）を参照して内部メモリに外部メモリの複製データがあるか、また、データ転送が完了しているかを調べ、内部メモリに複製があり、データ転送が完了している場合は外部メモリと内部メモリにデータを書き込む。内部メモリにデータの複製があるがデータ転送が完了していない場合は外部メモリにデータを書き込んだ後、データ転送が完了するまで待ってから内部メモリにデータを書き込む。また、内部メモリにデータの複製がない場合は外部メモリにのみデータを書き込む。
（ｌ）ＣＰＵの起動処理によって外部メモリのデータを内部メモリへ転送し、転送完了情報を書き換える手段（ＤＭＡまたは転送を行うスレッド）。
【符号の説明】
【０１３０】
１００  情報処理装置、２０１  ＣＰＵ、２０２  ＣＰＵ、２０３  外部メモリ、２０４  Ｉ／Ｏデバイス、２０５  バス、２０６  内部メモリ、２０７  複製データ領域、２０８  複製状態管理情報、２０９  アドレス変換プログラム、２１０  メモリアクセス制御プログラム、２１１  バスブリッジ回路、２１２  データ転送プログラム、７０１  メモリ制御装置、７０２  バスＩ／Ｆ、７０３  ＤＭＡコントローラ、７０４  ＲＥＡＤ監視回路、７０５  データ転送回路、７０６  アドレス変換回路、７０７  複製情報管理回路、７０８  ＷＲＩＴＥ監視回路、７０９  データ無効化回路、１８０１  内部メモリ、１８０２  アドレス変換プログラム、１８０３  メモリアクセス制御プログラム、１８０４  複製データ領域、１８０５  複製状態管理情報。
【図１】
0005452148.tif 000002
【図２】
0005452148.tif 000003
【図３】
0005452148.tif 000004
【図４】
0005452148.tif 000005
【図５】
0005452148.tif 000006
【図６】
0005452148.tif 000007
【図７】
0005452148.tif 000008
【図８】
0005452148.tif 000009
【図９】
0005452148.tif 000010
【図１０】
0005452148.tif 000011
【図１１】
0005452148.tif 000012
【図１２】
0005452148.tif 000013
【図１３】
0005452148.tif 000014
【図１４】
0005452148.tif 000015
【図１５】
0005452148.tif 000016
【図１６】
0005452148.tif 000017
【図１７】
0005452148.tif 000018
【図１８】
0005452148.tif 000019
【図１９】
0005452148.tif 000020
【図２０】
0005452148.tif 000021
【図２１】
0005452148.tif 000022
【図２２】
0005452148.tif 000023
【図２３】
0005452148.tif 000024
【図２４】
0005452148.tif 000025