(57)【要約】【課題】処理装置による処理対象の所定のデータに対する読み出しのアクセス時間を短縮させることのできるデータ先読み装置を提供する。【解決手段】データ先読み装置は、データ記憶手段における処理対象のデータが記憶されている記憶領域のアドレス範囲情報を記憶するアドレス範囲情報記憶手段と、データ記憶手段から先読みされるデータを保持するデータ保持手段と、アドレス範囲情報記憶手段に記憶されているアドレス範囲情報を基にデータ記憶手段からデータを先読みするとともに、該先読みしたデータをデータ保持手段に書き込む制御手段と、処理対象のデータをリード要求する処理装置から出力される当該所定のデータにかかわるアドレス情報を基にデータ保持手段からデータを読み出し、該読み出したデータを前記処理装置に向けて出力するデータ読み出し手段と、を備える。【選択図】図３
2008293387.tif 000002
【特許請求の範囲】
【請求項１】
処理対象の所定のデータを記憶するデータ記憶手段の当該所定のデータが記憶されている記憶領域のアドレス範囲情報を記憶するアドレス範囲情報記憶手段と、
前記データ記憶手段から先読みされるデータを保持するデータ保持手段と、
前記アドレス範囲情報記憶手段に記憶されているアドレス範囲情報を基に前記データ記憶手段からデータを先読みするとともに、該先読みしたデータを前記データ保持手段に書き込む制御手段と、
前記所定のデータに対し所定の処理を実行する処理装置から出力される当該所定のデータにかかわるアドレス情報を基に前記データ保持手段からデータを読み出し、該読み出したデータを前記処理装置に向けて出力するデータ読み出し手段と、
を有することを特徴とするデータ先読み装置。
【請求項２】
前記制御手段は、
前記所定のデータの全てが前記データ保持手段に書き込まれないときは、当該先読みされていないデータについては、前記データ読み出し手段によるデータの読み出し処理が実施された後の前記データ保持手段の空き領域の保持容量に応じて、データの先読み処理および書き込み処理を実施する、
ことを特徴とする請求項１記載のデータ先読み装置。
【請求項３】
前記アドレス範囲情報記憶手段は、
前記所定のデータが分割されて前記データ記憶手段に記憶されている場合に、当該分割後のデータが記憶されている複数の記憶領域に対応する複数のアドレス範囲情報を記憶し、
前記制御手段は、
前記アドレス範囲情報記憶手段に記憶されている複数のアドレス範囲情報を基にデータの先読み処理および書き込み処理を実施する、
ことを特徴とする請求項１または２記載のデータ先読み装置。
【請求項４】
処理対象の所定のデータを記憶するデータ記憶手段と、
前記所定のデータに対し所定の処理を実行する処理装置と、
前記データ記憶手段からデータを先読みし、該先読みしたデータを前記処理装置に向けて出力するデータ先読み装置と、
を有し、
前記データ先読み装置は、
前記データ記憶手段の前記所定のデータが記憶されている記憶領域のアドレス範囲情報を記憶するアドレス範囲情報記憶手段と、
前記データ記憶手段から先読みされるデータを保持するデータ保持手段と、
前記アドレス範囲情報記憶手段に記憶されているアドレス範囲情報を基に前記データ記憶手段からデータを先読みするとともに、該先読みしたデータを前記データ保持手段に書き込む制御手段と、
前記処理装置から出力される前記所定のデータにかかわるアドレス情報を基に前記データ保持手段からデータを読み出し、該読み出したデータを前記処理装置に向けて出力するデータ読み出し手段と、
を備えることを特徴とするデータ処理システム。
【請求項５】
前記制御手段は、
前記所定のデータの全てが前記データ保持手段に書き込まれないときは、当該先読みされていないデータについては、前記データ読み出し手段によるデータの読み出し処理が実施された後の前記データ保持手段の空き領域の保持容量に応じて、データの先読み処理および書き込み処理を実施する、
ことを特徴とする請求項４記載のデータ処理システム。
【請求項６】
前記アドレス範囲情報記憶手段は、
前記所定のデータが分割されて前記データ記憶手段に記憶されている場合に、当該分割後のデータが記憶されている複数の記憶領域に対応する複数のアドレス範囲情報を記憶し、
前記制御手段は、
前記アドレス範囲情報記憶手段に記憶されている複数のアドレス範囲情報を基にデータの先読み処理および書き込み処理を実施する、
ことを特徴とする請求項４または５記載のデータ処理システム。
【請求項７】
前記データ記憶手段は、
前記複数のアドレス範囲情報のうち一部のアドレス範囲情報を記憶し、
前記データ先読み装置は、
前記一部のアドレス範囲情報が記憶されている前記データ記憶手段の記憶場所情報を記憶する記憶場所情報記憶手段と、
前記記憶場所情報記憶手段に記憶されている記憶場所情報を基に、前記データ記憶手段からアドレス範囲情報を読み込むアドレス範囲情報読み込み手段と、
を更に備え、
前記制御手段は、
前記一部のアドレス範囲情報に基づく記憶領域に記憶されているデータについては、前記アドレス範囲情報読み込み手段によって読み込まれたアドレス範囲情報を基にデータの先読み処理および書き込み処理を実施する、
ことを特徴とする請求項６記載のデータ処理システム。
【請求項８】
データ記憶手段における処理対象の所定のデータが記憶されている記憶領域のアドレス範囲情報をアドレス範囲情報記憶手段に予め記憶させる記憶処理過程と、
前記アドレス範囲情報記憶手段に記憶されているアドレス範囲情報を基に前記データ記憶手段からデータの先読み処理を実行する先読み処理過程と、
前記先読み処理過程により先読みされたデータをデータ保持手段に保持させる保持処理過程と、
処理装置から出力される前記所定のデータにかかわるアドレス情報を基に前記データ保持手段からデータを読み出し、該読み出したデータを前記処理装置に向けて出力するデータ読み出し処理過程と、
をコンピュータに実行させることを特徴とするデータ先読み処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ先読み装置、データ処理システム、データ先読み処理プログラムに関する。
【背景技術】
【０００２】
プロセッサなどバスマスターと記憶装置との間に介在し、これらとの間でデータの授受を行う装置、例えばデータ先読み装置やメモリ制御装置やデータ転送装置などの装置は、データを一時的に保持するバッファを備え、バスマスターからの読み出し要求に応じて、記憶装置からのデータの先読み処理、および先読みしたデータのバッファへの書き込み処理を実施する、というデータの先読み機構（データの先読み機能）を有している。
【０００３】
そして、バスマスターからのリードアクセスにかかわるリードアドレスに対応するデータが上記バッファに記憶されている場合、つまりヒットした場合は、そのバッファからヒットしたデータがバスマスターに向けて出力される。
【０００４】
周知のように、バッファは、その記憶容量（保持容量）の制約の観点から、記憶装置に記憶されているデータ全てを先読みデータとして記憶することはできない。そのため、バスマスターから出力されるリードアドレスに対応するデータが上記バッファに記憶されていない場合、つまりヒットミスする場合も有り得る。
【０００５】
なお、データの先読み機構を有する装置としては、例えば特許文献１から特許文献４に開示されたものが知られている。
【特許文献１】特開平６−２４３０３７号公報
【特許文献２】特開２００１−２２９０７４号公報
【特許文献３】特開２００１−２５６１６９号公報
【特許文献４】特開２００３−１７３２９１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、処理装置による処理対象の所定のデータに対する読み出しのアクセス時間を短縮させることのできるデータ先読み装置、データ処理システム、データ先読み処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、請求項１に記載の本発明のデータ先読み装置は、処理対象の所定のデータを記憶するデータ記憶手段の当該所定のデータが記憶されている記憶領域のアドレス範囲情報を記憶するアドレス範囲情報記憶手段と、前記データ記憶手段から先読みされるデータを保持するデータ保持手段と、前記アドレス範囲情報記憶手段に記憶されているアドレス範囲情報を基に前記データ記憶手段からデータを先読みするとともに、該先読みしたデータを前記データ保持手段に書き込む制御手段と、前記所定のデータに対し所定の処理を実行する処理装置から出力される当該所定のデータにかかわるアドレス情報を基に前記データ保持手段からデータを読み出し、該読み出したデータを前記処理装置に向けて出力するデータ読み出し手段と、を有することを特徴とする。
【０００８】
請求項２に記載の発明は、上記請求項１に記載の発明において、前記制御手段は、前記所定のデータの全てが前記データ保持手段に書き込まれないときは、当該先読みされていないデータについては、前記データ読み出し手段によるデータの読み出し処理が実施された後の前記データ保持手段の空き領域の保持容量に応じて、データの先読み処理および書き込み処理を実施する、ことを特徴とする。
【０００９】
請求項３に記載の発明は、上記請求項１または２に記載の発明において、前記アドレス範囲情報記憶手段は、前記所定のデータが分割されて前記データ記憶手段に記憶されている場合に、当該分割後のデータが記憶されている複数の記憶領域に対応する複数のアドレス範囲情報を記憶し、前記制御手段は、前記アドレス範囲情報記憶手段に記憶されている複数のアドレス範囲情報を基にデータの先読み処理および書き込み処理を実施する、ことを特徴とする。
【００１０】
上記課題を解決するため、請求項４に記載の本発明のデータ処理システムは、処理対象の所定のデータを記憶するデータ記憶手段と、前記所定のデータに対し所定の処理を実行する処理装置と、前記データ記憶手段からデータを先読みし、該先読みしたデータを前記処理装置に向けて出力するデータ先読み装置と、を有し、前記データ先読み装置は、前記データ記憶手段の前記所定のデータが記憶されている記憶領域のアドレス範囲情報を記憶するアドレス範囲情報記憶手段と、前記データ記憶手段から先読みされるデータを保持するデータ保持手段と、前記アドレス範囲情報記憶手段に記憶されているアドレス範囲情報を基に前記データ記憶手段からデータを先読みするとともに、該先読みしたデータを前記データ保持手段に書き込む制御手段と、前記処理装置から出力される前記所定のデータにかかわるアドレス情報を基に前記データ保持手段からデータを読み出し、該読み出したデータを前記処理装置に向けて出力するデータ読み出し手段と、を備えることを特徴とする。
【００１１】
請求項５に記載の発明は、上記請求項４に記載の発明において、前記制御手段は、前記所定のデータの全てが前記データ保持手段に書き込まれないときは、当該先読みされていないデータについては、前記データ読み出し手段によるデータの読み出し処理が実施された後の前記データ保持手段の空き領域の保持容量に応じて、データの先読み処理および書き込み処理を実施する、ことを特徴とする。
【００１２】
請求項６に記載の発明は、上記請求項４または５に記載の発明において、前記アドレス範囲情報記憶手段は、前記所定のデータが分割されて前記データ記憶手段に記憶されている場合に、当該分割後のデータが記憶されている複数の記憶領域に対応する複数のアドレス範囲情報を記憶し、前記制御手段は、前記アドレス範囲情報記憶手段に記憶されている複数のアドレス範囲情報を基にデータの先読み処理および書き込み処理を実施する、ことを特徴とする。
【００１３】
請求項７に記載の発明は、上記請求項６に記載の発明において、前記データ記憶手段は、前記複数のアドレス範囲情報のうち一部のアドレス範囲情報を記憶し、前記データ先読み装置は、前記一部のアドレス範囲情報が記憶されている前記データ記憶手段の記憶場所情報を記憶する記憶場所情報記憶手段と、前記記憶場所情報記憶手段に記憶されている記憶場所情報を基に、前記データ記憶手段からアドレス範囲情報を読み込むアドレス範囲情報読み込み手段と、を更に備え、前記制御手段は、前記一部のアドレス範囲情報に基づく記憶領域に記憶されているデータについては、前記アドレス範囲情報読み込み手段によって読み込まれたアドレス範囲情報を基にデータの先読み処理および書き込み処理を実施する、ことを特徴とする。
【００１４】
上記課題を解決するため、請求項８に記載の本発明のデータ先読み処理プログラムは、データ記憶手段における処理対象の所定のデータが記憶されている記憶領域のアドレス範囲情報をアドレス範囲情報記憶手段に予め記憶させる記憶処理過程と、前記アドレス範囲情報記憶手段に記憶されているアドレス範囲情報を基に前記データ記憶手段からデータの先読み処理を実行する先読み処理過程と、前記先読み処理過程により先読みされたデータをデータ保持手段に保持させる保持処理過程と、処理装置から出力される前記所定のデータにかかわるアドレス情報を基に前記データ保持手段からデータを読み出し、該読み出したデータを前記処理装置に向けて出力するデータ読み出し処理過程と、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１５】
請求項１記載の発明によれば、処理装置によって所定の処理が実行される処理対象の所定のデータについては、制御手段が、アドレス範囲情報記憶手段内のアドレス範囲情報に基づきデータ記憶手段内の当該所定のデータを先読みし、かつ先読みしたデータをデータ保持手段に書き込み、処理装置による処理対象の所定のデータに対する読み出しのアクセス時間を短縮させることができる。
【００１６】
請求項２記載の発明によれば、制御手段は、処理対象の所定のデータのデータ量がデータ保持手段の保持容量を超えているときは、データ読み出し手段によるデータの読み出し処理が実施された後のデータ保持手段の空き領域の保持容量に応じて、データの先読み処理および書き込み処理を実施することができる。
【００１７】
請求項３記載の発明によれば、処理対象の所定のデータが分割されてデータ記憶手段の非連続な複数の記憶領域に記憶されている場合であっても、制御手段は、当該複数の記憶領域に対応する複数のアドレス範囲情報を基に、データの先読み処理および書き込み処理を実施することができる。
【００１８】
請求項４記載の発明によれば、処理装置によって所定の処理が実行される処理対象の所定のデータについては、制御手段が、アドレス範囲情報記憶手段内のアドレス範囲情報に基づきデータ記憶手段内の処理対象の所定のデータを先読みし、かつ先読みしたデータをデータ保持手段に書き込み、処理装置による処理対象の所定のデータに対する読み出しのアクセス時間を短縮させることができる。
【００１９】
請求項５記載の発明によれば、制御手段は、処理対象の所定のデータのデータ量がデータ保持手段の保持容量を超えているときは、データ読み出し手段によるデータの読み出し処理が実施された後のデータ保持手段の空き領域の保持容量に応じて、データの先読み処理および書き込み処理を実施することができる。
【００２０】
請求項６記載の発明によれば、処理対象の所定のデータが分割されてデータ記憶手段の非連続な複数の記憶領域に記憶されている場合であっても、制御手段は、当該分割後のデータが記憶されている複数の記憶領域に対応する複数のアドレス範囲情報を基に、データの先読み処理および書き込み処理を実施することができる。
【００２１】
請求項７記載の発明によれば、処理対象の所定のデータが分割されてデータ記憶手段に記憶された場合に、当該分割後のデータが記憶されている複数の記憶領域に対応する複数のアドレス範囲情報の全てをアドレス範囲情報記憶手段に記憶させることができないときは、アドレス範囲情報記憶手段に記憶させることができないアドレス範囲情報については、データ記憶手段に記憶させることができる。
【００２２】
請求項８記載の発明によれば、アドレス範囲情報記憶手段内のアドレス範囲情報に基づきデータ記憶手段内の処理対象の所定のデータを先読みさせ、かつ先読みされたデータをデータ保持手段に保持させ、処理装置による処理対象の所定のデータに対する読み出しのアクセス時間を短縮させるソフトウェアを提供することができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための図面において同一の構成要素には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２４】
（実施の形態１）
【００２５】
図１は、実施の形態１に係るデータ処理システムの構成を示している。
【００２６】
図１に示すように、データ処理システムは、複数のバスマスター１０，２０，３０，４０、システムバス１００、データ先読み装置２００、メモリコントローラ４００および外部記憶装置５００を備えている。
【００２７】
複数のバスマスター１０〜４０とデータ先読み装置２００とはシステムバス１００を介して接続される。
【００２８】
なお、システムバス１００には、複数のバスマスター１０〜４０に加えて他の１つ以上のバスマスター（図示せず）を含む複数のバスマスターが接続されるとともに、バススレーブの一つであるデータ先読み装置２００が他のバススレーブ（図示せず）とともに接続される。
【００２９】
複数のバスマスター１０〜４０は、処理対象のデータに対し所定の処理を実行する処理装置例えば互いに異なる画像処理を実施する画像処理装置であり、処理対象（例えば画像処理対象）の所定のデータ（以下「処理対象データ」という）を含むデータを記憶する外部記憶装置５００に対しアクセスを行う。
【００３０】
具体的には、複数のバスマスター１０〜４０は、外部記憶装置５００から読み出された処理対象データに対し画像処理（所定の処理）を実行するものであり、図２に示すように、バスタマスター１０、バスタマスター２０、バスタマスター３０、バスタマスター４０の並び順に、順次画像処理を実行する。この場合、これらのバスマスターの間のデータの授受は、外部記憶装置５００を介して行われる。
【００３１】
すなわち、バスタマスター１０は、外部記憶装置５００に対するリードアクセスにより得られる処理対象データに対し画像処理を施すとともに、画像処理後の処理対象データをシステムバス１００、データ先読み装置２００（の後述するＤＭＡ制御部３００）およびメモリコントローラ４００を介して外部記憶装置５００に格納する。次に、バスタマスター２０は、外部記憶装置５００に対するリードアクセスにより得られる処理対象データに対し画像処理を施すとともに、画像処理後の処理対象データをシステムバス１００、データ先読み装置２００（の後述するＤＭＡ制御部３００）およびメモリコントローラ４００を介して外部記憶装置５００に格納する。バスタマスター３０，４０も上記同様の処理を行う。
【００３２】
再度、図１を参照して説明する。システムバス１００は、各々のバスマスターに対し任意のタイミングでアクセスを行うことができるとともに、バスアービトレーション（バスの調停）を行う。
【００３３】
システムバス１００からの外部記憶装置５００へのアクセスは、データ先読み装置２００およびメモリコントローラ４００を通して行われる。
【００３４】
データ先読み装置２００は、メモリコントローラ４００を介して、外部記憶装置５００に対するデータの先読み（データのプリフェッチ）処理を実施する。また、データ先読み装置２００は、ダイレクトメモリアクセス（ＤＭＡ）により、メモリコントローラ４００を介して、外部記憶装置５００に対しデータの書き込み処理または読み出し処理を実施する。
【００３５】
メモリコントローラ４００は、データ先読み装置２００からのデータの先読み指示（命令）、ＤＭＡによるデータの書き込み指示（命令）やデータの読み出し指示（命令）に従って、外部記憶装置５００に対しアクセスする。
【００３６】
外部記憶装置５００は、上述したように処理対象データを含むデータを記憶するものであり、例えばＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ：記憶保持動作が必要な随時書き込み読み出しメモリ）で構成される。
【００３７】
次に、データ先読み装置２００の機能構成について、図３を参照して説明する。
【００３８】
データ先読み装置２００は、図３に示すように、入力制御部２１０、一時バッファ管理部２２０、一時バッファ２３０、出力制御部２４０およびＤＭＡ制御部３００を備えている。
【００３９】
入力制御部２１０は、システムバス１００からのアクセスを解析し、データの先読み処理に関するアクセスか、あるいはリードまたはライトに関するアクセスかを判定し、この判定した結果およびアクセス情報をＤＭＡ制御部３００へ出力する。
【００４０】
データの先読み処理に関するアクセスには、例えば外部記憶装置５００に記憶されている処理対象データの記憶領域のアドレス範囲情報（開始アドレスおよび終了アドレス）およびそのアドレス設定の指示が含まれる。これらのアクセス情報（アドレス範囲情報およびアドレス設定の指示）がバスの使用権を獲得したバスマスターから出力されるので、入力制御部２１０は、システムバス１００を介して受信したアクセス情報および判定結果としてのデータの先読み処理に関するアクセスである旨を、ＤＭＡ制御部３００に向けて出力する。
【００４１】
リードに関するアクセスには、処理対象データに対するリードアクセス、および処理対象データ以外のデータに対するリードアクセスが含まれる。なお、処理対象データに対するリードアクセスは、一時バッファ２３０へのリードアクセスを意味する。ライトに関するアクセスには、処理対象データに対するライトアクセス、および処理対象データ以外のデータに対するライトアクセスが含まれる。これらのアクセス情報がバスの使用権を獲得したバスマスターから出力されるので、入力制御部２１０は、システムバス１００を介して受信したアクセス情報および判定結果としてのリードまたはライトに関するアクセスである旨を、ＤＭＡ制御部３００に向けて出力する。
【００４２】
一時バッファ管理部２２０は、外部記憶装置５００から先読みされ一時バッファ２３０に一時的に保持される処理対象データの全部または一部を管理するものであり、当該処理対象データの全部または一部のアドレス（外部記憶装置５００のアドレス空間のアドレス）を一時バッファのアドレス空間のアドレスにマッピングしたマッピング情報、リードポインタおよびライトポインタを記憶する図示いないメモリを備えている。
【００４３】
また、一時バッファ管理部２２０は、次の（１）から（５）の各処理を実施する。
【００４４】
（１）後述するＤＭＡ制御部３００から出力されるアドレス情報（外部記憶装置５０のアドレス空間のアドレス）およびデータの先読み指示を受け付けたときは、出力制御部２４０に対しアドレス情報を渡してデータの先読み処理を依頼する。
【００４５】
（２）後述する出力制御部２４０の先読み処理により外部記憶装置５００から先読みされたデータが一時バッファ２３０に格納された場合は、上記マッピング情報を生成し上記メモリ（図示せず）に格納し、さらにライトポインタを、書き込まれたデータにかかわる最後のアドレス（外部記憶装置５００のアドレス空間のアドレス）を指し示すようにする。また、ライトポインタで示されるアドレス（外部記憶装置５００のアドレス空間のアドレス）および先読み処理中断の旨をＤＭＡ制御部３００へ出力する。
【００４６】
（３）後述するＤＭＡ制御部３００から出力されるリードアドレス情報（外部記憶装置５００のアドレス空間のアドレス）を受け付けたときは、そのリードアドレス情報および上記メモリ（図示せず）に記憶されている上記マッピング情報を基に、一時バッファ２３０に保持されているデータの中に当該リードアドレスに対応するデータが存在することを確認する。その後、一時バッファ２３０に対し、当該リードアドレスに対応する一時バッファ２３０のアドレス空間のアドレスを与えて、該当するデータを入力制御部２１０に向けて出力するよう指示（リード出力指示）する。さらに、リードポインタを、読みだされたデータにかかわる最後のアドレス（外部記憶装置５０のアドレス空間のアドレス）を指し示すようにする。
【００４７】
リードポインタの情報は、一時バッファ管理部２２０によって一時バッファ２３０の空き領域を求めるときに使用される。すなわち、リード出力指示した時点のアドレスからリードポインタで指し示されるアドレスまでのアドレス範囲に対応する記憶領域が空き領域として求められる。
【００４８】
（４）上記（３）の処理により一時バッファ２３０からデータが出力された後の当該一時バッファ２３０の空き領域を求め、この空き領域の保持容量を、ＤＭＡ制御部３００へ通知する。
【００４９】
（５）データの先読み処理を中断している状態で、先読み処理を実施すべく、後述するＤＭＡ制御部３００から出力されるリードアドレス情報（外部記憶装置５０のアドレス空間のアドレス）を受け付けたときは、出力制御部２４０に対しアドレス情報を渡してデータの先読み処理を依頼する。
【００５０】
一時バッファ２３０は、外部記憶装置５００から先読みされた処理対象データを一時的に保持するものであり、例えばＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ：記憶保持動作が不要な随時書き込み読み出しメモリ）で構成される。
【００５１】
出力制御部２４０は、ＤＭＡ制御部３００からリードアクセスの依頼があった場合には、メモリコントローラ４００から返されるリードデータをＤＭＡ制御部３００へ出力し、一方、一時バッファ管理部２２０からリードアクセスの依頼がたった場合は、メモリコントローラ４００から返されるリードデータを一時バッファ２３０に書き込む。
【００５２】
ＤＭＡ制御部３００は、ＤＭＡ制御部内部設定用Ｉ／Ｆ３１０、アドレス管理レジスタ３２０、アドレス判定／生成部３３０、ＤＭＡ処理部３４０を備えている。
【００５３】
ＤＭＡ制御部内部設定用Ｉ／Ｆ３１０は、入力制御部２１０から受け取ったデータ（リードアクセスのためのアドレスやアドレス設定すべきアドレスなど）を基に、アドレス管理レジスタ３２０へのアクセスであるか、あるいはアドレス管理レジスタ３２０以外へのアクセスであるかを判別し、この判別した結果に応じて、所定の処理を実施する。
【００５４】
なお、アドレス管理レジスタ３２０へのアクセスには、データの先読み処理に関するアクセスが含まれる。アドレス管理レジスタ３２０以外へのアクセスには、リードアクセスおよびライトアクセスが含まれる。
【００５５】
ＤＭＡ制御部内部設定用Ｉ／Ｆ３１０は、アドレス管理レジスタ３２０へのアクセスであると判断した場合には、上述したアドレス範囲情報をアドレス管理レジスタ３２０に設定し、アドレス管理レジスタ３２０以外へのアクセスであると判別した場合は、例えばリードアクセスにかかわるリードアドレスをアドレス判定／生成部３３０に向けて出力する。
【００５６】
また、ＤＭＡ制御部内部設定用Ｉ／Ｆ３１０は、処理開始や処理終了をＤＭＡ処理部３４０に向けて出力するとともに、アドレス管理レジスタ３２０に記憶されている情報を入力制御部２１０へ提供する。
【００５７】
アドレス管理レジスタ３２０は、アドレス範囲情報、カレントアドレス、ステータスの３つの情報を記憶する領域が割り当てられている。
【００５８】
アドレス管理レジスタ３２０は、外部記憶装置５００の処理対象データが記憶されている記憶領域のアドレス範囲情報を記憶するアドレス範囲情報記憶手段の機能を有している。
【００５９】
本願明細書では、アドレス範囲情報は、処理対象データが記憶されている記憶領域のアドレス空間（実アドレス空間）の開始アドレスおよび終了アドレスを意味する。
【００６０】
アドレス範囲情報は、画像処理を施した後の処理対象データについてのライトアクセス（書き込み処理）を実施したバスマスターからデータ先読み装置２００に向けて出力され、さらにＤＭＡ制御部３００のＤＭＡ制御部内部設定用Ｉ／Ｆ３１０によってアドレス管理レジスタ３２０に書き込まれる。
【００６１】
カレントアドレスは、外部記憶装置５００に記憶されている処理対象データにかかわるアドレスであって、一時バッファ２３０に記憶されているデータ（先読みデータ）にかかわる最終のアドレスを意味する。つまり、一時バッファ管理部２２０からＤＭＡ制御部３００に対して先読み処理中断の旨とともに通知されるアドレスを意味する。
【００６２】
ステータスは、指定されたアドレス空間に有効なデータが格納された旨を意味する。
【００６３】
アドレス空間に有効なデータが格納された旨は、画像処理を施した後の処理対象データにつてのライトアクセス（書き込み処理）を実施したバスマスターからデータ先読み装置２００に向けて出力され、さらにＤＭＡ制御部３００のＤＭＡ制御部内部設定用Ｉ／Ｆ３１０によってアドレス管理レジスタ３２０に書き込まれる。
【００６４】
すなわち、現在においてバスの使用権を獲得しているバスマスターが、画像処理を施した後の処理対象データが外部記憶装置５００に格納された場合に、外部記憶装置５００のアドレス空間に有効なデータが格納された旨を、ＤＭＡ制御部３００に向けて通知する。そのアドレス空間に有効なデータが格納された旨は、入力制御部２１０およびＤＭＡ制御部内部設定用Ｉ／Ｆ３１０を介してアドレス管理レジスタ３２に記憶される。そして、前記バスマスターがバスの使用権を解放すると、次段のバスマスターがバスの使用権を獲得して、画像処理を実施することになる。
【００６５】
なお、最前段のバスマスター１０は、バスマスター１０に対し画像処理を依頼するバスマスターによってライトアクセス（書き込み処理）された処理対象データについて画像処理を実施することになる。
【００６６】
アドレス判定／生成部３３０は、アドレス管理レジスタ３２０に記憶されているアドレス範囲情報としての開始アドレスおよび終了アドレス、カレントアドレスを基に、外部記憶装置５００へのＤＭＡアクセス用のアドレスを生成するとともに、この生成したアドレスをＤＭＡ処理部３４０へ出力する。
【００６７】
また、アドレス判定／生成部３３０は、ＤＭＡ制御部内部設定用Ｉ／Ｆ３１０からのリードアドレスを受け取った場合は、そのリードアドレスが一時バッファ２３０に対するリードアクセスのためのアドレスであるか否か、すなわちアドレス管理レジスタ３２０に記憶されている開始アドレスから終了アドレスまでのアドレス範囲に含まれるアドレスであるか否かを判定し、この判定した結果およびリードアドレスをＤＭＡ処理部３４０へ出力する。
【００６８】
ＤＭＡ処理部３４０は、外部記憶装置５００のＤＭＡサイクルの管理を行う。
【００６９】
また、ＤＭＡ処理部３４０は、アドレス判定／生成部３３０からの判定結果が上記アドレス範囲に含まれないアドレスである旨のときはリードアドレスを出力制御部２４０へ出力する。
これに対し、ＤＭＡ処理部３４０が受け取ったアドレス判定／生成部３３０からの判定結果が、上記アドレス範囲に含まれるアドレスである旨のときは、ＤＭＡ制御部３００が、ＤＭＡ処理部３４０が受け取ったリードアドレスを一時バッファ管理部２２０に向けて出力する。
【００７０】
なお、ＤＭＡ制御部３００は、上述したＤＭＡ制御部内部設定用Ｉ／Ｆ３１０、アドレス管理レジスタ３２０、アドレス判定／生成部３３０およびＤＭＡ処理部３４０の各構成要素を制御する機能を有している。
【００７１】
実施の形態１では、上述したデータ記憶手段は外部記憶装置５００に対応し、上述したアドレス範囲情報記憶手段はアドレス管理レジスタ３２０に対応し、上述したデータ保持手段は一時バッファ２３０に対応し、上述した制御手段はＤＭＡ制御部３００、一時バッファ管理部２２０および出力制御部２４０に対応し、上述したデータ読み出し手段はＤＭＡ制御部３００および一時バッファ管理部２２０に対応する。
【００７２】
次に、データ先読み装置２００のデータの先読み処理（以下、「データ先読み処理」という）について、図４〜図６を参照して説明する。
【００７３】
図４はそのデータ先読み処理を説明する図であり、図５は図４のＤＭＡ制御部を詳細に示した図であり、図６はデータ先読み処理の一連の流れを説明する図である。
【００７４】
ここでは、一時バッファ２３０の保持容量は処理対象データのデータ量よりも少ないものとする。つまり処理対象データの全てを先読みして、一時バッファ２３０に格納することができないものとする。
【００７５】
処理対象データのライトアクセス（書き込み処理）を実施したバスマスターから出力されたアドレス空間に有効なデータが格納された旨、アドレス範囲情報としての開始アドレスおよび終了アドレスが、システムバス１００を介してデータ先読み装置２００の入力制御部２１０に入力されると、入力制御部２１０は、それらの情報を基にデータ先読み処理に関するアクセスであると判定し、図４および図５に示すように、その判定結果およびシステムバス１００を介して受け取ったバスマスターからの情報をＤＭＡ制御部３００へ出力する（Ｐ１＊１）。
【００７６】
ＤＭＡ制御部３００では、入力制御部２１０からの判定結果、アドレス空間に有効なデータが格納された旨およびアドレス範囲情報を受け取ったＤＭＡ制御部内部設定用Ｉ／Ｆ３１０は、前記判定結果を基にアドレス管理レジスタ３２０へのアクセスであると判別して、図５に示すように、アドレス空間に有効なデータが格納された旨をアドレス管理レジスタ３２０に格納するとともに、アドレス範囲情報としての開始アドレスおよび終了アドレスをアドレス管理レジスタ３２０に格納する（図５のＰ１１）。
【００７７】
また、ＤＭＡ制御部内部設定用Ｉ／Ｆ３１０は、アドレス管理レジスタ３２０のカレントアドレスが記憶される領域の内容をクリア（初期化）する。
【００７８】
そして、ＤＭＡ制御部内部設定用１／Ｆ３１０は、上述したようにしてアドレス範囲情報をアドレス管理レジスタ３２０に格納した場合は、アドレス設定を終了した旨をアドレス判定／生成部３３０へ通知する（図５のＰ１２）。
【００７９】
アドレス設定を終了した旨の通知を受け取ったアドレス判定／生成部３３０は、アドレス管理レジスタ３２０からアドレス範囲情報（開始アドレスおよび終了アドレス）を読み出し（図５のＰ１３）、この読み出した開始アドレスおよび終了アドレスを基に先読みすべきデータのアドレスを生成するとともに、この生成したアドレスをＤＭＡ処理部３４０へ出力する（図５のＰ１４）する。
【００８０】
なお、アドレス判定／生成部３３０は、開始アドレスを基準にして連続するアドレスを生成してＤＭＡ処理部３４０へ出力し、このアドレスの生成処理を、一時バッファ管理部２２０からの先読み中断指示を受け取るまで、または生成するアドレスが終了アドレスに達するまで実施する。
【００８１】
このようにして生成された連続する所定の範囲のアドレスに対応するデータが先読みされる。
【００８２】
ＤＭＡ処理部３４０は、ＤＭＡサイクル信号を出力制御部２４０へ出力する（図５のＰ１５）。
【００８３】
データの先読みのために生成されたアドレス（アドレス情報）をＤＭＡ処理部３４０が受け取ると、ＤＭＡ制御部３００は、図４および図５に示すように、データ先読み指示およびアドレス情報（生成されたアドレス）を一時バッファ管理部２２０へ出力する（Ｐ１＊２）。
【００８４】
データ先読み指示およびアドレス情報（生成されたアドレス）を受け取った一時バッファ管理部２２０は、データ先読み処理であると判別して、アドレス情報およびデータ先読み処理（リードアクセス）の依頼を出力制御部２４０へ出力する（Ｐ１＊３）。
【００８５】
出力制御部２４０が、ＤＭＡ処理部３４０からのＤＭＡサイクル信号に従って、受け取ったアドレス情報とデータの先読み指示とをメモリコントローラ４００に向けて出力すると（Ｐ１＊４）、メモリコントローラ４００は、外部記憶装置５００から前記アドレス情報に対応するデータを読み出し（図４のＰ１＊５）、この先読みデータを出力制御部２４０へ出力する（Ｐ１＊６）。
【００８６】
メモリコントローラ４００からの先読みデータを受け取った出力制御部２４０は、その先読みデータを一時バッファ２３０に格納する（Ｐ１＊７）。
【００８７】
ところで、一時バッファ管理部２２０は、出力制御部２４０に対して先読み処理を依頼した後は、一時バッファ２３０を監視し、出力制御部２４０の先読み処理により外部記憶装置５００から先読みされたデータが一時バッファ２３０に格納された場合は、上記マッピング情報、つまり外部記憶装置５００のアドレス空間のアドレス（ＤＭＡ制御部３００から取得したアドレス）と一時バッファ２３０のアドレス空間のアドレスとのマッピング情報を生成して上記メモリ（図示せず）に格納するとともに、ライトポインタを、書き込まれたデータにかかわる最後のアドレス（外部記憶装置５００のアドレス空間のアドレス）を指し示すようにする。
【００８８】
そして、一時バッファ管理部２２０は、一時バッファ２３０に格納された先読みデータのデータ量が予め設定されるデータ量に達した場合（一時バッファ２３０の規定の保持容量に達した場合）に、一時バッファ２３０に記憶されているデータにかかわる最終のアドレスつまりカレントアドレス（ライトポインタで示されるアドレス）と先読み処理中断の旨とをＤＭＡ制御部３００へ出力し（Ｐ２）、ＤＭＡ制御部３００からリードアクセスの依頼があるまで待機する。
【００８９】
先読み処理中断の旨およびカレントアドレス情報を受け取ったＤＭＡ制御部３００では、アドレス判定／生成部３３０はアドレスの生成処理を中断し、またＤＭＡ制御部内部設定用Ｉ／Ｆ３１０はそのカレントアドレスをアドレス管理レジスタ３２０に格納する。
【００９０】
現在、バスの使用権を獲得しているバスマスターが処理対象データに対するリードアクセスを行うべくリードアドレスをバススレーブとしてのデータ先読み装置２００に向けて出力すると、そのリードアドレスは、システムバス１００を介してデータ先読み装置２００の入力制御部２１０に入力される。
【００９１】
入力制御部２１０は、バスマスターからのリードアドレスを基にリードアクセスであると判定し、図４および図５に示すように、その判定結果およびシステムバス１００を介して受け取ったバスマスターからのリードアドレスをＤＭＡ制御部３００へ出力する（Ｐ３＊１）。
【００９２】
ＤＭＡ制御部３００では、入力制御部２１０からの判定結果、リードアドレスを受け取ったＤＭＡ制御部内部設定用Ｉ／Ｆ３１０は、受け取った判定結果を基にアドレス管理レジスタ３２０以外へのアクセスであると判別し、受け取ったリードアドレスをアドレス判定／生成部３３０へ出力する（図５のＰ３１）。
【００９３】
アドレス判定／生成部３３０は、ＤＭＡ制御部内部設定用Ｉ／Ｆ３１０からのリードアドレスが、アドレス管理レジスタ３２０に記憶されている開始アドレスから終了アドレスまでのアドレス範囲に含まれるアドレスであるか否かを判定し、当該リードアドレスが前記アドレス範囲に含まれるアドレスであると判定した場合は、その判定した結果および当該リードアドレスをＤＭＡ処理部３４０へ出力する（図５のＰ３２）。
【００９４】
アドレス判定／生成部３３０による判定結果が上記アドレス範囲に含まれるアドレスである旨のときは、ＤＭＡ制御部３００は、ＤＭＡ処理部３４０が受け取ったリードアドレスを一時バッファ管理部２２０に向けて出力する（Ｐ３＊２）。
【００９５】
一時バッファ管理部２２０は、ＤＭＡ制御部３００から出力されるリードアドレス情報（外部記憶装置５００のアドレス空間のアドレス）を受け取ったときは、そのリードアドレス情報および上記メモリ（図示せず）に記憶されている上記マッピング情報を基に、一時バッファ２３０に保持されているデータの中に当該リードアドレスに対応するデータが存在することを確認する。
【００９６】
このようにしてリードアドレスが一時バッファ２３０に保持されていることを確認した一時バッファ管理部２２０は、一時バッファ２３０に対し、当該リードアドレスに対応する一時バッファ２３０のアドレス空間のアドレスを与えて、該当するデータを入力制御部２１０に向けて出力するよう指示する（Ｐ３＊３）。
【００９７】
また、一時バッファ管理部２２０は、一時バッファ２３０から出力されるデータを入力制御部２１０が取り込むべきタイミングとして、一時バッファ２３０への出力信号（アドレスおよびリード出力指示）に同期した同期信号を、入力制御部２１０へ出力する（Ｐ３＊４）。
【００９８】
ところで、一時バッファ管理部２２０からのアドレスおよびリード出力指示を受け取った一時バッファ２３０が、そのアドレスに対応するデータ（リードデータ）を入力制御部２１０に向けて出力すると（Ｐ３＊５）、入力制御部２１０は、一時バッファ２３０から出力されたリードデータを一時バッファ管理部２２０からの同期信号に同期して取り込み、この取り込んだリードデータを、システムバス１００を介してリードアクセスの要求元であるバスマスターに向けて出力する。
【００９９】
また、一時バッファ管理部２２０は、リードポインタを、読み出されたデータにかかわる最後のアドレス（外部記憶装置５００のアドレス空間のアドレス）を指し示すようにする。
【０１００】
上述したようにして、一時バッファ管理部２２０からのアドレスを基に一時バッファ２３０からデータ（リードデータ）が読み出されると、当該リードデータが記憶されていた一時バッファ２３０の記憶領域は空き領域となる。
【０１０１】
そこで、一時バッファ管理部２２０は、一時バッファ２３０へリード出力指示を出力した時点のリードポインタで指し示されるアドレスから現在のリードポインタで指し示されるアドレスまでのアドレス範囲に対応する記憶領域つまり空き領域を算出するとともに、この空き領域が予め設定される所定の空き領域に達したときは、先読み再開指示をＤＭＡ制御部３００へ出力する（Ｐ４）。
【０１０２】
先読み再開指示を受け取ったＤＭＡ制御部３００では、アドレス判定／生成部３３０は、アドレス管理レジスタ３２０に記憶されているカレントアドレスの次のアドレスを基に先読みすべきデータのアドレスを生成するとともに（図５のＰ１３参照）、この生成したアドレスをＤＭＡ処理部３４０へ出力する（図５のＰ１４参照）。ＤＭＡ処理部３４０は、ＤＭＡサイクル信号を出力制御部２４０へ出力する（図５のＰ１５参照）。
【０１０３】
なお、アドレス判定／生成部３３０は、カレントアドレスの次のアドレスを基準にして連続するアドレスを生成してＤＭＡ処理部３４０へ出力し、このアドレスの生成処理を、一時バッファ管理部２２０からの先読み中断指示を受け取るまで、または生成するアドレスが終了アドレスに達するまで実施する。
【０１０４】
これ以降は、図４および図５に示すように、上記Ｐ１＊３〜上記Ｐ１＊７の処理と同様の先読み処理が実施される（Ｐ５＊２〜Ｐ５＊６）。
【０１０５】
以上説明したように、バスの使用権を獲得したバスマスターによって、外部記憶装置５００に記憶されている処理対象データに対する画像処理が実施されるときは、データ先読み装置２００は、図６に示すように、Ｐ１〜Ｐ５の処理を実施し、当該処理対象データの全てを一時バッファ２３０に格納できない場合は、Ｐ２〜Ｐ５の各処理を繰り返し、最終的にはＰ３の処理を実施して終了する。
【０１０６】
なお、図６において、Ｐ１〜Ｐ５は、図４および図５に示したＰ１〜Ｐ５の符号に対応し、またＰ１＊１〜Ｐ１＊７、Ｐ３＊１〜Ｐ３＊５、Ｐ５＊１〜Ｐ１＊６は図４および図５に示したそれらの符号に対応する。
【０１０７】
ここで、データ先読み処理の具体例について、図７〜図１１を参照して説明する。
【０１０８】
図７に示すように、外部記憶装置５００は、例えば０ｘ０（１６進法）〜０ｘＦＦＦＦＦＦＦＦ（１６進法）までのアドレス空間となっており、そのアドレス空間の開始アドレスから終了アドレスまでのアドレス範囲に対応する記憶領域に処理対象データを記憶している。この記憶領域は、イメージデータとしての処理対象データを記憶するイメージデータ領域として機能する。
【０１０９】
一方、一時バッファ２３０は、先頭アドレスから最終アドレスまでのアドレス空間となっており、このアドレス空間に対応する保持領域（記憶領域）は規定の保持容量に設定されている。
【０１１０】
上述した図６のＰ１（図４および図６のＰ１＊１〜Ｐ１＊７）の処理が実行されることで、外部記憶装置５００に記憶されている処理対象データに関して、開始アドレスを基準して連続するアドレスに対応し所定のアクセス単位のデータがコピーされ、このコピーされたデータが先読みデータとして一時バッファ２３０に格納される。
【０１１１】
ここで、一時バッファ２３０に格納された先読みデータのデータ量が一時バッファ２３０の保持容量に達したときは、上述した図６のＰ２（図４および図６のＰ２）の処理が実行される。これにより、外部記憶装置５００のアドレス空間の開始アドレスからカレントアドレスまでのアドレス範囲に対応する記憶領域に記憶されている処理対象データＤ１＃が先読みデータとして一時バッファ２３０に格納されたことになる。
【０１１２】
この状態で上述した図６のＰ３（図４および図６のＰ３＊１〜Ｐ１＊５）の処理が実行されることで、図８に示すように、一時バッファ２３０に格納された処理対象データＤ１＃が読み出され、リードアクセスの要求元であるバスマスターに向けて出力される。
【０１１３】
このようにして一時バッファ２３０からデータが読み出され、当該一時バッファ２３０の空き領域が予め設定される所定の空き領域に達したことに起因して、上述した図６のＰ４（図４および図６のＰ４）の処理が実行され、さらに上述した図６のＰ５（図４および図６のＰ５＊１〜Ｐ１＊６）の処理が実行されることで、図９に示すように、外部記憶装置５００に記憶されている処理対象データに関して、前回のカレントアドレス（アドレス管理レジスタ３２０に記憶されているカレントアドレス）を基準して連続するアドレスに対応し所定のアクセス単位のデータがコピーされ、このコピーされたデータが先読みデータとして一時バッファ２３０に格納される。
【０１１４】
ここで、一時バッファ２３０に格納された先読みデータのデータ量が一時バッファ２３０の保持容量に達したときは、上述した図６のＰ２（図４および図６のＰ２）の処理が実行される。これにより、外部記憶装置５００のアドレス空間の前回のカレントアドレスの次のアドレスから今回のカレントアドレスまでのアドレス範囲に対応する記憶領域に記憶されている処理対象データＤ２＃が先読みデータとして一時バッファ２３０に格納されたことになる。
【０１１５】
このように、一時バッファ２３０においては、所定の空き領域が発生する毎に、外部記憶装置５００から先読みされた先読みデータがリフィルされる。
【０１１６】
この状態で、上述した図６のＰ３（図４および図６のＰ３＊１〜Ｐ１＊５）の処理が実行されることで、図１０に示すように、一時バッファ２３０に格納されている処理対象データＤ１＃が読み出され、リードアクセスの要求元であるバスマスターに向けて出力される。
【０１１７】
このようにして一時バッファ２３０からデータが読み出され、当該一時バッファ２３０の空き領域が予め設定される所定の空き領域に達したことに起因して、上述した図６のＰ４（図４および図６のＰ４）の処理が実行され、さらに上述した図６のＰ５（図４および図６のＰ５＊１〜Ｐ１＊６）の処理が実行されることで、図１０に示すように、上述した処理対象データＤ２＃のデータ先読み処理と同様に、外部記憶装置５００に記憶されている処理対象データに関して、前回のカレントアドレスを基準して連続するアドレスに対応し所定のアクセス単位のデータがコピーされ、このコピーされたデータが先読みデータとして一時バッファ２３０に格納されることになる。
【０１１８】
ここで、一時バッファ２３０に格納された先読みデータのデータ量が一時バッファ２３０の保持容量に達したときは、上述した図６のＰ２（図４および図６のＰ２）の処理が実行される。これにより、図１１に示すように、外部記憶装置５００のアドレス空間の前回のカレントアドレスの次のアドレスから今回のカレントアドレスまでのアドレス範囲に対応する記憶領域に記憶されている処理対象データＤ３＃が先読みデータとして一時バッファ２３０に格納されたことになる。
【０１１９】
そして、カレントアドレスが終了アドレスに達するまで、上述した図６のＰ２〜Ｐ５の各処理が繰り返され、最終的にはＰ３の処理が実施される。
【０１２０】
次に、バスの使用権を獲得したバスマスターが、外部記憶装置５００に記憶されている処理対象データ以外のデータに対する所定の処理を実施する場合の、データ先読み装置２００によるリードアクセス処理について説明する。
【０１２１】
データ先読み装置２００においては、上述したＰ３＊１（図４および図５参照）と同様の処理が実施されて、リードアクセスの要求元である上記バスマスターからのリードアドレスがシステムバス１００および入力制御部２１０を介してＤＭＡ制御部３００に入力される。
【０１２２】
ＤＭＡ制御部３００では、上述したＰ３１（図５参照）と同様の処理が実施され、受け付けられたリードアドレスがアドレス判定／生成部３３０に入力される。
【０１２３】
アドレス判定／生成部３３０は、ＤＭＡ制御部内部設定用Ｉ／Ｆ３１０からのリードアドレスが、アドレス管理レジスタ３２０に記憶されている開始アドレスから終了アドレスまでのアドレス範囲に含まれるアドレスであるか否かを判定する。この場合、アドレス判定／生成部３３０は、上記リードアドレスが前記アドレス範囲に含まれないアドレスであると判定し、その判定した結果および受け付けたリードアドレスをＤＭＡ処理部３４０へ出力する。
【０１２４】
ＤＭＡ処理部３４０は、受け取ったアドレス判定／生成部３３０からの判定結果が、上記アドレス範囲に含まれないアドレスである旨のときは、受け取ったリードアドレスおよびＤＭＡサイクル信号を出力制御部２４０に向けて出力する。
【０１２５】
出力制御部２４０が、ＤＭＡ処理部３４０からのＤＭＡサイクル信号に従って、受け取ったリードアドレスと読み出し命令とをメモリコントローラ４００に向けて出力すると、メモリコントローラ４００は、外部記憶装置５００から前記リードアドレスに対応するデータ（処理対象データ以外のデータ）を読み出し、この読みデータ（リードデータ）を出力制御部２４０へ出力する。
【０１２６】
出力制御部２４０が受け取ったリードデータは、ＤＭＡ制御部３００を介して入力制御部２１０に入力され、さらにシステムバス１００を介して上記リードアクセスの要求元であるバスマスターに入力される。
【０１２７】
次に、データ先読み処理装置２００によるデータ先読み処理について、図１２を参照して説明する。
【０１２８】
なお、図１２は、そのデータ先読み処理の処理手順を示すフローチャートである。
【０１２９】
図１２に示すように、データ先読み装置２００では、ＤＭＡ制御部３００は、上述したＰ１１（図５参照）の処理と同様にしてアドレス管理レジスタ３２０に各アドレスを設定（格納）し（ステップＳ１０１）、上述したＰ１２〜Ｐ１５（図５参照）と同様の処理を実施し、さらに上述したＰ１＊２（図５参照）の処理と同様に、データ先読み指示およびアドレス情報（生成されたアドレス）を一時バッファ管理部２２０へ出力する（Ｓ１０２）。
【０１３０】
次に、上述したＰ１＊３〜Ｐ１＊７（図５参照）の処理と同様に、外部記憶装置５００に記憶されている処理対象データに関して、一時バッファ管理部２２０から出力制御部２２０に向けて出力される開始アドレスを基準にした連続するアドレスに対応するデータが先読みされるとともに、この先読みされたデータ（先読みデータ）が一時バッファ２３０に格納される（ステップＳ１０３）。この場合は、先読みデータは、一時バッファ２３０の所定の保持容量に達するまで格納される。
【０１３１】
このようにして一時バッファ２３０に先読みリードが格納され、上述したＰ２（図５参照）の処理が実施されると、入力制御部２１０は、バスマスターからのリードアクセスがあるか否かを判断し（ステップＳ１０４）、リードアクセスがない場合にはリードアクセスがあるまで待機し、一方、リードアクセスがあった場合は、上述したＰ３＊１（図５参照）の処理と同様に、リードアクセスである旨（判定結果）および受け付けたリードアドレスをＤＭＡ制御部３００へ出力する。
【０１３２】
ＤＭＡ制御部３００では、リードアクセスの処理が開始されるべく（ステップＳ１０５）、ＤＭＡ制御部内部設定用Ｉ／Ｆ３１０によって、上述したＰ３１（図５参照）と同様の処理が実施され、さらにアドレス判定／生成部３３０によって、上述したＰ３２（図５参照）の処理と同様に、リードアドレスがアドレス範囲情報に基づくアドレス範囲に含まれるか否かが判断される（ステップＳ１０６）。
【０１３３】
ステップＳ１０６においてリードアドレスがアドレス範囲に含まれると判断された場合は、上述したＰ３＊２〜Ｐ３＊５（図５参照）の処理と同様に、一時バッファ２３０から、指定されるアドレスに対応するデータが読み出されて、リードアクセスの要求元であるバスマスターに向けて出力される（ステップＳ１０７）。
【０１３４】
ステップＳ１０７が実施され、さらに上述したＰ４（図５参照）と同様の処理が実施されると、ＤＭＡ制御部３００では、アドレス判定／生成部３３０は、アドレス管理レジスタ３２０に記憶されているカレントアドレスが終了アドレスに達したか否かを判断する（ステップＳ１０８）。
【０１３５】
ここで、上記カレントアドレスが終了アドレスに達した場合には、外部記憶装置５００に記憶されている処理対象データに関して、終了アドレスまでのデータが先読みされ、一時バッファ２３０に格納されたことを意味し、一方、上記カレントアドレスが終了アドレスに達していない場合は、外部記憶装置５００に記憶されている処理対象データに関して、先読みすべきデータが存在することを意味する。
【０１３６】
さて、ステップＳ１０８において、アドレス管理レジスタ３２０に記憶されているカレントアドレスが終了アドレスに達したと判断された場合には、このデータ先読み処理が終了される。
【０１３７】
一方、ステップＳ１０８において、アドレス管理レジスタ３２０に記憶されているカレントアドレスが終了アドレスに達していないと判断された場合は、上述したＰ１３の処理と同様に、アドレス判定／生成部３３０によって、アドレス管理レジスタ３２０に記憶されているカレントアドレスの次のアドレスを基に先読みすべきデータのアドレスが生成される。この場合、カレントアドレスの次のアドレスを基準にして連続するアドレスが生成される。
【０１３８】
そして、上述したＰ１３、Ｐ１５およびＰ５＊１〜Ｐ５＊６の処理と同様に、外部記憶装置５００から、アドレス判定／生成部３３０によって生成されたアドレスに対応するデータが先読みされ、一時バッファ２３０に格納される（ステップＳ１０９）。この場合、前記生成されたアドレスを基準にして連続するアドレスに対応し所定のアクセス単位のデータが先読みされる。
【０１３９】
ステップＳ１０９を終了した後は、リードアクセスの処理が終了され、ステップＳ１０４に戻る。
【０１４０】
ところで、ステップＳ１０６においてリードアドレスがアドレス範囲に含まれないと判断された場合は、上述したように、バスの使用権を獲得したバスマスターによって処理対象データ以外のデータに対する所定の処理が実施される場合のデータ先読み装置２００によるリードアクセス処理の場合と同様に、外部記憶装置５００に対してリードアクセスが行われ、前記リードアドレスに対応するデータが、リードアクセスの要求元であるバスマスターに向けて出力される（ステップＳ１１１）。その後、ステップＳ１１０に進む。
【０１４１】
なお、上記実施の形態１では、複数のバスマスターがシステムバス１００を介してデータ先読み装置２００にアクセスするようにしているが、各バスマスターからのアクセスの調停を行うバスアービタ（バス調停回路）をデータ先読み装置２００の外部または内部に設けるようにし、前記各バスマスターがバスアービタを介してデータ先読み装置２００にアクセスするようにしても良い。
【０１４２】
また、上記実施の形態１では、所定の処理（例えば画像処理）を実施する複数のバスマスターがシステムバス１００に接続される構成になっているが、所定の処理（例えば画像処理）を実施する１つのバスマスターがシステムバス１００に接続されていてもよい。
【０１４３】
さらに、上記実施の形態１では、データ先読み装置２００内に１つの一時バッファを設けるようにしているが、複数の一時バッファを設けるようにしても良い。
【０１４４】
この場合、一時バッファ管理部２２０は、複数の一時バッファの中の何れの一時バッファに先読みデータを格納すべきかを示す旨を出力制御部２４０に通知するようにし、出力制御部２４０は、メモリコントローラ４００から返される先読みデータを、前記通知された一時バッファに格納する。
【０１４５】
次に、一時バッファ管理部２２０は、外部記憶装置５００から先読みされた先読みデータにかかわるアドレス（外部記憶装置２００のアドレス空間のアドレス）を特定の一時バッファのアドレス空間にマッピングしたマッピング情報を生成する。
【０１４６】
そして、一時バッファ管理部２２０は、バスマスターからのリードアクセスにかかわるリードアドレスに対応するデータの読み出しに際しては、前記マッピング情報を基に、複数の一時バッファの中から前記リードアドレスに対応するデータが格納されている一時バッファを特定し、当該特定した一時バッファに対しリードアドレスを与えてデータを出力させる。
【０１４７】
（実施の形態２）
【０１４８】
実施の形態２に係るデータ処理システムは、図１に示した実施の形態１のデータ処理システムと同様の構成になっている。
【０１４９】
図１３は、実施の形態２に係るデータ先読み装置の機能構成を示している。このデータ先読み装置２００は、図３に示した実施の形態１のデータ先読み装置２００のＤＭＡ制御部３００の構成において、アドレス管理レジスタ３１０をアドレス管理ＲＡＭ６００に変更した構成になっている。
【０１５０】
実施の形態２では、外部記憶装置５００は、図１４に示すように処理対象データを分割して複数の記憶領域に記憶する。
【０１５１】
この例では、処理対象データは４つに分割され、分割後の４つのデータ（分割データ）が４つの記憶領域に分散されて記憶されている。ちなみに、分割データＤ０は記憶領域ＭＡ０に記憶され、分割データＤ１は記憶領域ＭＡ１に記憶され、分割データＤ２は記憶領域ＭＡ２に記憶され、分割データＤ３は記憶領域ＭＡ３に記憶されている。
【０１５２】
開始アドレス０および終了アドレス０は記憶領域ＭＡ０にかかわる開始アドレスおよび終了アドレスを意味し、開始アドレス１および終了アドレス１は記憶領域ＭＡ１にかかわる開始アドレスおよび終了アドレスを意味し、開始アドレス２および終了アドレス２は記憶領域ＭＡ１にかかわる開始アドレスおよび終了アドレスを意味し、開始アドレス３および終了アドレス３は記憶領域ＭＡ３にかかわる開始アドレスおよび終了アドレスを意味する。
【０１５３】
アドレス管理ＲＡＭ６００は、図１３に示すように、外部記憶装置５００の複数の記憶領域に対応する複数のアドレス範囲情報を記憶する。これらのアドレス範囲情報は、実施の形態１の場合と同様に、該当する記憶領域のアドレス空間（実アドレス空間）の開始アドレスおよび終了アドレスを意味する。アドレス管理ＲＡＭ６００は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ：随時書き込み読み出しメモリ）で構成されている。
【０１５４】
実施の形態２では、ＤＭＡ制御部内部設定用Ｉ／Ｆ３１０は、図１５に示すように、複数のアドレス範囲情報のそれぞれと次のアドレス領域へのポインタ情報とを対応付けたアドレスプロファイルを生成し、この生成したアドレスプロファイルをアドレス管理ＲＡＭ６００に格納するようになっている。
【０１５５】
ちなみに、ポインタ１は開始アドレス１および終了アドレス１の組のアドレス範囲情報を、ポインタ２は開始アドレス２および終了アドレス２の組のアドレス範囲情報を、ポインタ２は開始アドレス２のアドレス範囲情報を、ポインタ３は開始アドレス３および終了アドレス３の組のアドレス範囲情報を、それぞれ指し示す値になっている。
【０１５６】
アドレス判定／生成部３３０は、アドレス管理ＲＡＭ６００に格納されているアドレスプロファイル（図１５参照）を基に、先読みすべきデータにかかわるアドレスを生成するようになっている。
【０１５７】
また、アドレス判定／生成部３３０は、リードアクセスの要求元であるバスマスターからのリードアドレスが、各アドレス範囲情報に対応するアドレス範囲に含まれるかを判定することで、当該リードアドレスが処理対象データにかかわるリードアドレスであるかを判定する。
【０１５８】
なお、実施の形態２では、上述したアドレス範囲情報記憶手段はアドレス管理ＲＡＭ６００に対応する。
【０１５９】
次に、データ先読み処理装置２００によるデータ先読み処理について、図１６を参照して説明する。
【０１６０】
なお、図１６は、そのデータ先読み処理の処理手順を示すフローチャートである。このフローチャートは、図１２に示した実施の形態１の処理手順においてステップ２０１を追加した処理手順になっている。
【０１６１】
最初に、図１６に示すようにステップＳ１０１〜Ｓ１０７の処理が実行される。
【０１６２】
この場合、ステップＳ１０１（図５のＰ１１参照）においては、ＤＭＡ制御部３００内のＤＭＡ制御部内部設定用Ｉ／Ｆ３１０がアドレスプロファイルをアドレス管理ＲＡＭ６００に格納する。
【０１６３】
また、上述したステップＳ１０２の処理にかかわるアドレス情報（生成されたアドレス）の生成に際し、アドレス判定／生成部３３０は、アドレス管理ＲＡＭ６００からアドレスアドレスプロファイルの最初のアドレス範囲情報（開始アドレスおよび終了アドレス）を読み出し（図５のＰ１３参照）、この読み出した開始アドレスおよび終了アドレスを基に先読みすべきデータのアドレスを生成するとともに、この生成したアドレスをＤＭＡ処理部３４０へ出力する（図５のＰ１４参照）。
【０１６４】
例えば、図１５に示したアドレスプロファイルの場合、アドレス判定／生成部３３０は、そのアドレスプロファイル内の開始アドレス０および終了アドレス０のアドレス範囲情報を読み出し、このアドレス範囲情報を基に先読みすべきデータのアドレス（アドレス情報）を生成する。
【０１６５】
ところで、ステップＳ１０７が実施され、さらに上述したＰ４（図５参照）と同様の処理が実施されると、ＤＭＡ制御部３００では、アドレス判定／生成部３３０は、アドレス管理ＲＡＭ６００に記憶されているカレントアドレスが、現在の先読み処理にかかわるアドレス範囲情報（開始アドレスおよび終了アドレス）の中の終了アドレスに達したか否かを判断する（ステップＳ１０８）。
【０１６６】
ここで、上記カレントアドレスが終了アドレスに達した場合には、外部記憶装置５００に記憶されている処理対象データにかかわる複数の分割データにおける現在の先読み処理対象の分割データに関して、終了アドレスまでのデータが先読みされ、一時バッファ２３０に格納されたことを意味し、一方、上記カレントアドレスが終了アドレスに達していない場合は、外部記憶装置５００に記憶されている前記複数の分割データにおける先読み処理対象の分割データに関して、先読みすべきデータが存在することを意味する。
【０１６７】
さて、ステップＳ１０８においてカレントアドレスが現在の先読み処理にかかわるアドレス範囲情報の中の終了アドレスに達していないと判断された場合は、ステップＳ１０９に進む。
【０１６８】
このステップＳ１０９においては、現在の先読み処理対象の分割データに関して先読み処理が実施されることになる。
【０１６９】
これに対し、ステップＳ１０８において、アドレス管理ＲＡＭ６００に記憶されているカレントアドレスが、現在の先読み処理にかかわるアドレス範囲情報の中の終了アドレスに達したと判断したアドレス判定／生成部３３０は、アドレスプロファイルにおける現在の先読み処理対象のアドレス範囲情報に対応する次のアドレス領域へのポインタ情報を基に、次のアドレス領域の指定があるか否かを判断する（ステップＳ２０１）。
【０１７０】
ステップＳ２０１において次のアドレス領域の指定があると判断された場合は、ステップＳ１０９に進む。
【０１７１】
このステップＳ１０９においては、アドレス判定／生成部３３０によって、次のアドレス領域へのポインタ情報で指し示される開始アドレスおよび終了アドレスの組のアドレス範囲情報を基に先読みすべきアドレスが生成される。そして、このアドレス情報に対応する分割データに関して先読み処理が実施される。
【０１７２】
例えば、カレントアドレスが、開始アドレス０および終了アドレス０の組のアドレス範囲情報の中の終了アドレスに達した場合、アドレス判定／生成部３３０が、このアドレス範囲情報に対応する次のアドレス領域へのポインタ情報としてのポインタ１で指し示される開始アドレス１および終了アドレス１の組のアドレス範囲情報を基に先読みすべきアドレスを生成するので、ステップＳ１０９においては、その生成されるアドレス情報に対応する分割データに関して先読み処理が実施される。
【０１７３】
ところで、ステップＳ２０１において次のアドレス領域の指定がないと判断された場合は、このデータ先読み処理が終了される。
【０１７４】
例えば、図１５に示したアドレスプロファイルの場合、現在の先読み処理対象のアドレス範囲情報が開始アドレス３および終了アドレス３の組のアドレス範囲情報のときは、このアドレス範囲情報に対応する次のアドレス領域へのポインタ情報は「なし」を示す旨であるので、先読みすべきデータ（処理対象データ）にかかわるアドレスが全て生成され、当該処理対象データについての先読み処理が終了したことを意味する。
【０１７５】
このように、現在の先読み処理対象のアドレス範囲情報に対応する「次のアドレス領域へのポインタ情報＝なし（次のアドレス領域の指定がない）場合は、このデータ先読み処理が終了される。
【０１７６】
（実施の形態３）
【０１７７】
実施の形態３に係るデータ処理システムは、図１に示した実施の形態１のデータ処理システムと同様の構成になっている。
【０１７８】
図１７は、実施の形態３に係るデータ先読み装置の機能構成を示している。このデータ先読み装置２００は、図１３に示した実施の形態２のデータ先読み装置２００のＤＭＡ制御部３００の構成において、ダウンロード制御部７００を追加した構成になっている。
【０１７９】
実施の形態３では、外部記憶装置５００は、実施の形態２の場合と同様に処理対象データを分割して複数の記憶領域に記憶するとともに、当該複数の記憶領域に対応する複数のアドレス範囲情報のうち一部のアドレス範囲情報（単数または複数のアドレス範囲情報）を記憶する。この一部のアドレス範囲情報はアドレスプロファイルとして記憶される。
【０１８０】
処理対象データは、例えば（ｎ＋１）に分割され、記憶領域ＭＡ０、記憶領域ＭＡ１、・・・、記憶領域ＭＡ（ｍ）、・・・、記憶領域ＭＡ（ｎ）、の（ｎ＋１）の記憶領域に記憶される。なお、ｎ、ｍは正の正数であり、「ｎ＞ｍ」の関係が成立している。
【０１８１】
また、アドレス管理ＲＡＭ６００は、上記複数の記憶領域に対応する複数のアドレス範囲情報のうち、上記一部のアドレス範囲情報を除くアドレス範囲情報（複数のアドレス範囲情報）を記憶する。このアドレス範囲情報はアドレスプロファイルとして記憶される。
【０１８２】
複数のアドレス範囲情報は、記憶領域ＭＡ０にかかわる開始アドレス０および終了アドレス０の組みのアドレス範囲情報、記憶領域ＭＡ１にかかわる開始アドレス１および終了アドレス１の組みのアドレス範囲情報、・・・、記憶領域ＭＡ（ｍ）にかかわる開始アドレスｍおよび終了アドレスｍの組みのアドレス範囲情報、・・・、記憶領域ＭＡ（ｎ）にかかわる開始アドレスｎおよび終了アドレスｎの組みのアドレス範囲情報であるとする。
【０１８３】
この場合、「開始アドレス０および終了アドレス０の組のアドレス範囲情報」から「開始アドレスｍおよび終了アドレスｍの組のアドレス範囲情報」までのアドレス範囲情報のアドレスプロファイル（これを第１のアドレスプロファイルとする）が、ＤＭＡ制御部内部設定用Ｉ／Ｆ３１０によって生成されるものとする。この第１のアドレスプロファイルは、ＤＭＡ制御部内部設定用Ｉ／Ｆ３１０によってアドレス管理ＲＡＭ６００に格納される。
【０１８４】
また、上記複数のアドレス範囲情報のうち、「開始アドレス０および終了アドレス０の組のアドレス範囲情報」から「開始アドレスｍおよび終了アドレスｍの組のアドレス範囲情報」までのアドレス範囲情報を除くアドレス範囲情報つまり一部のアドレス範囲情報（単数または複数のアドレス範囲情報）のアドレスプロファイル（これを第２のアドレスプロファイルとする）が、ＤＭＡ制御部内部設定用Ｉ／Ｆ３１０によって生成される。
【０１８５】
なお、実施の形態３では、第２のアドレスプロファイルはアドレス範囲情報ごとに生成されるようになっている。
【０１８６】
この第２のアドレスプロファイルは、ＤＭＡ処理部３４０、出力制御部３４０、メモリコントローラ４００を介して外部記憶装置５００に格納される。
【０１８７】
ここで、ｍ＝３、ｎ＝６の場合、「開始アドレス０および終了アドレス０の組のアドレス範囲情報」から「開始アドレス３および終了アドレス３の組のアドレス範囲情報」までのアドレス範囲情報の第１のアドレスプロファイルがアドレス管理ＲＡＭ６００に格納される（図１５参照）。
【０１８８】
また、図１８に示すように、「開始アドレス４および終了アドレス４の組のアドレス範囲情報」から「開始アドレス６および終了アドレス６の組のアドレス範囲情報」までのアドレス範囲情報ごとの第２のアドレスプロファイルが外部記憶装置５００に格納される。
【０１８９】
なお、第１のアドレスプロファイルおよび第２のアドレスプロファイルは、図１５および図１８に示した例の如く、アドレス範囲情報（開始アドレスおよび終了アドレスの組）と次のアドレス領域へのポインタ情報とが対応付けされた情報になっている。
【０１９０】
ちなみに、第１のアドレスプロファイル内の開始アドレス３および終了アドレス３の組のアドレス範囲情報に対応する次のアドレス領域へのポインタ情報は「なし」を示す旨であり、第２のアドレスプロファイル内の開始アドレス６および終了アドレス６の組のアドレス範囲情報に対応する次のアドレス領域へのポインタ情報は「なし」を示す旨である。
【０１９１】
アドレス管理ＲＡＭ６００に格納されるステータスには、指定されたアドレス空間に有効なデータが格納された旨を意味するステータス情報と、外部記憶装置５００にアドレス範囲情報（第２のアドレスプロファイル）が格納されている旨を意味するステータス情報とが含まれる。
【０１９２】
ダウンロード制御部７００は、上述した第２のアドレスプロファイル（一部のアドレス範囲情報）が記憶されている外部記憶装置５００の記憶場所情報を記憶する記憶場所情報記憶手段の機能を果たすメモリ７１０を備え、このメモリ７１０に記憶されている記憶場所情報を基に、外部記憶装置５００から第２のアドレスプロファイル（一部のアドレス範囲情報）を読み込むアドレス範囲情報読み込み手段の機能を有する。
【０１９３】
また、ダウンロード制御部７００は、外部記憶装置５００から読み出した（ダウンロードした）第２のアドレスプロファイルをメモリ７１０に格納するとともに、第２のアドレスプロファイルがメモリ７１０に格納された旨をアドレス判定／生成部３３０へ通知する。
【０１９４】
実施の形態３では、アドレス判定／生成部３３０は、ダウンロード制御部７００に対し外部記憶装置５００からの第２のアドレスプロファイルの読み込み処理（ダウンロード処理）を依頼するとともに、ダウンロード制御部７００からの第２のアドレスプロファイルが格納された旨の通知を受けて、メモリ７１０に格納されている第２のアドレスプロファイルを読み出すとともに、この読み出した第２のアドレスプロファイルのアドレス範囲情報を基に先読みすべきデータのアドレスを生成する。
【０１９５】
次に、データ先読み処理装置２００によるデータ先読み処理について、図１９を参照して説明する。
【０１９６】
なお、図１９は、そのデータ先読み処理の処理手順を示すフローチャートである。このフローチャートは、図１６に示した実施の形態２の処理手順においてステップ３０１およびステップＳ３０２を追加した処理手順になっている。
【０１９７】
最初に、図１９に示すようにステップＳ１０１〜Ｓ１０８およびステップＳ２０１の処理が実行される。
【０１９８】
ステップＳ２０１において次のアドレス領域の指定がないと判断したアドレス判定／生成部３３０は、外部記憶装置５００からアドレスプロファイル（第２のアドレスプロファイル）を読み込むか否かを判断する（ステップＳ３０１）。
【０１９９】
ステップＳ３０１においては、現在の先読み処理が第１のアドレスプロファイルに基づき実施され、第１のアドレスプロファイルにかかわる「次のアドレス領域へのアドレス情報＝なし」のときは、アドレス管理ＲＡＭ６００に格納されているステータスを基に第２のアドレスプロファイルを読み込むか否かが判断される。
【０２００】
これに対し、現在の先読み処理が第２のアドレスプロファイルに基づき実施されているときは、ダウンロード制御部７００内のメモリ７１０に格納されている第２のアドレスプロファイルにかかわる「次のアドレス領域へのアドレス情報」を基に次の第２のアドレスプロファイルを読み込むか否かが判断される。
【０２０１】
さて、ステップＳ３０１において外部記憶装置５００から第２のアドレスプロファイルを読み込むと判断したアドレス判定／生成部３３０は、ダウンロード制御部７００に対し外部記憶装置５００からの第２のアドレスプロファイルの読み込み処理（ダウンロード処理）を依頼する。
【０２０２】
すると、ダウンロード制御部７００は、メモリ７１０に記憶されている記憶場所情報を基に、ＤＭＡ処理部３４０、出力制御部２４０およびメモリコントローラ４００を介して外部記憶装置５００から第２のアドレスプロファイルを読み込むとともに（ステップＳ３０２）、この読み込んだ第２のアドレスプロファイルをメモリ７１０に格納し、さらに第２のアドレスプロファイルがメモリ７１０に格納された旨をアドレス判定／生成部３３０へ通知する。
【０２０３】
ステップＳ３０２が終了した後はステップＳ１０８に戻り、読み込まれた第２のアドレスプロファイルに基づきデータの先読み処理が実施される。
【０２０４】
すなわち、ステップＳ１０８の判断結果は「ＮＯ」となるので、ダウンロード制御部７００からの第２のアドレスプロファイルが格納された旨の通知を受け取ったアドレス判定／生成部３３０は、メモリ７１０に格納されている第２のアドレスプロファイルを読み出すとともに、この読み出した第２のアドレスプロファイルのアドレス範囲情報を基に先読みすべきデータのアドレスを生成する。
【０２０５】
そして、アドレス判定／生成部３３０によって生成されたアドレスに基づき、外部記憶装置５００からデータが先読みされ、この先読みされたデータが一時バッファ２３０に格納される（ステップＳ１０９）。
【０２０６】
なお、ステップＳ３０１において、現在の先読み処理対象の第２のアドレスプロファイルのアドレス範囲情報に対応する次のアドレス領域へのアドレス情報は「なし」を示す旨であるので、外部記憶装置５００から第２のアドレスプロファイルを読み込まないと判断された場合は、このデータ先読み処理が終了される。
【０２０７】
（実施の形態４）
【０２０８】
図２０は、図３に示した実施の形態１のデータ先読み装置のハードウェア構成を示している。
【０２０９】
データ先読み装置２００は、図２０に示すように、入力制御部２１０（図３参照）の機能を有する入力コントローラ２１００、一時バッファ管理部２２０（図３参照）の機能を有するバッファ管理コントローラ２２００、一時バッファ２３０（図３参照）の機能を有するバッファ２３００、出力制御部２４０（図３参照）の機能を有する出力コントローラ２４００、ＤＭＡ制御部３００の機能を有するＤＭＡコントローラ２５００およびＲＯＭ２６００を備えている。これらの構成要素は内部バス２７００を介して接続される。
【０２１０】
ＤＭＡコントローラ２５００は、アドレス管理レジスタ３２０の機能を有するレジスタ２５１０を備えている。また、ＤＭＡコントローラ２５００は、ＤＭＡ制御内部設定用Ｉ／Ｆ３１０、アドレス判定／生成部３３０およびＤＭＡ処理部３４０の機能を果たす。
【０２１１】
ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ：読み出し専用メモリ)２６００は、次の（１）〜（４）の各処理過程をコンピュータに実行させるデータ先読み処理プログラム（ソフトウェア）２６１０を格納している。
【０２１２】
（１）外部記憶装置（データ記憶手段）５００における処理対象の所定のデータが記憶されている記憶領域のアドレス範囲情報をレジスタ（アドレス範囲情報記憶手段）２５１０に予め記憶させる記憶処理過程。
【０２１３】
（２）レジスタ（アドレス範囲情報記憶手段）２５１０に記憶されているアドレス範囲情報を基に外部記憶装置（データ記憶手段）５００からデータの先読み処理を実行する先読み処理過程。
【０２１４】
（３）先読み処理過程により先読みされたデータをバッファ（データ保持手段）２３００に保持させる保持処理過程。
【０２１５】
（４）要求元のバスマスター（処理装置）から出力される上記処理対象の所定のデータにかかわるアドレス情報を基にバッファ（データ保持手段）２３００からデータを読み出し、該読み出したデータを要求元のバスマスター（処理装置）に向けて出力するデータ読み出し処理過程。
【０２１６】
ところで、入力コントローラ２１００、バッファ管理コントローラ２２００、出力コントローラ２４００およびＤＭＡコントローラ２５００は、それぞれ図示しないＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ：随時書き込み読み出しメモリ)を備え、ＲＯＭ２６００に格納されているデータ先読み処理プログラム２６１０を図示しないＲＡＭに読み込んで実行するようになっている。これらのコントローラが、データ先読み処理プログラム２６１０を実行し協働してデータ先読み処理を実施する。
【０２１７】
なお、コンピュータは、入力コントローラ２１００、バッファ管理コントローラ２２００、出力コントローラ２４００、およびＤＭＡコントローラ２５００を意味する。
【０２１８】
上述した記憶処理過程は、入力コントローラ２１００およびＤＭＡコントローラ２５００の協働により実現され、図５に示したＰ１＊１およびＰ１１の各処理に対応する。
【０２１９】
上述した先読み処理過程は、ＤＭＡコントローラ２５００、バッファ管理コントローラ２２００および出力コントローラ２４００の協働により実現され、図５に示したＰ１３、Ｐ１４、Ｐ１＊２〜Ｐ１＊４、Ｐ１＊６およびＰ２の各処理、あるいは図５に示したＰ４、Ｐ５＊１〜Ｐ５＊３およびＰ５＊５の各処理に対応する。
【０２２０】
上述した保持処理過程は、バッファ管理コントローラ２２００および出力コントローラ２４００の協働により実現され、図５に示したＰ１＊７の処理あるいはＰ５＊６の処理に対応する。
【０２２１】
上述したデータ読出し処理過程は、ＤＭＡコントローラ２５００およびバッファ管理コントローラ２２００の協働により実現され、図５に示したＰ３＊１、Ｐ３１、Ｐ３２、Ｐ３＊２〜Ｐ３＊５の各処理に対応する。
【０２２２】
ところで、実施の形態２および実施の形態３のデータ先読み装置２００も、図２０に示したデータ先読み装置２００と同様のハードウェア構成になっている。
【０２２３】
なお、これらの実施の形態のデータ先読み装置２００において、ＤＭＡコントローラ２５００は、レジスタ２５１０に代替して、アドレス管理ＲＡＭ６００の機能を果たすＲＡＭを備える。
【０２２４】
また、実施の形態３のデータ先読み装置２００において、ＤＭＡコントローラ２５００は、上述した構成要素の機能に加えて、ダウンロード制御部７００の機能も果たすようになっている。このＤＭＡコントローラ２５００は、メモリ７１０の機能を果たす例えばレジスタやバッファを備える。
【０２２５】
本願明細書において、データ先読み装置の各機能を実現し、上記データ先読み処理プログラムを記録媒体としてのＲＯＭに記録する実施形態として説明したが、当該データ先読み処理プログラムを次のようにして提供することも可能である。
【０２２６】
すなわち、上記データ先読み処理プログラムを、ＤＶＤ−ＲＯＭ、ＣＤ−ＲＯＭ、ＭＯ（光磁気ディスク）、フレキシブルディスク、などのコンピュータ読み取り可能な記録媒体に格納して配布するようにしても良い。この場合、その記録媒体に記録されたプログラムをデータ先読み装置がインストールした後、このプログラムを上記各コントローラが実行するようにする。このプログラムのインストール先としては、ＲＡＭ等のメモリやハードディスクなどの記憶装置がある。そして、データ先読み装置は、必要に応じてこの記憶装置に記憶したプログラムを主記憶装置にローディングして実行する。
【０２２７】
さらには、データ先読み装置を通信回線（例えばインターネット）を介してサーバ装置あるいはホストコンピュータ等のコンピュータと接続するようにし、当該データ先読み装置が、サーバ装置あるいはコンピュータから上記データ先読み処理プログラムをダウンロードした後、このプログラムを実行するようにしても良い。この場合、このプログラムのダウンロード先としては、ＲＡＭ等のメモリやハードディスクなどの記憶装置（記録媒体）がある。そして、当該データ先読み装置が、必要に応じてこの記憶装置に記憶された上記プログラムを主記憶装置にローディングして実行するようにする。
【産業上の利用可能性】
【０２２８】
本発明は、単数または複数のバスマスターとしての処理装置によって処理される処理対象のデータの先読みを実施するデータ先読み装置、このデータ先読み装置と前記処理装置とハードディスク装置など外部記憶装置（データ記憶手段）とを有するデータ処理システムに適用することができる。
【図面の簡単な説明】
【０２２９】
【図１】実施の形態１に係るデータ処理システムの構成を示す構成図である。
【図２】実施の形態１に係る複数のバスマスターによる所定の処理にかかわる処理対象データの流れを説明する図である。
【図３】実施の形態１に係るデータ先読み装置の機能構成を示すブロック図である。
【図４】実施の形態１に係るデータ先読み装置のデータ先読み処理を説明する図である。
【図５】実施の形態１に係るデータ先読み装置のデータ先読み処理におけるＤＭＡ制御部の処理を詳細に説明する図である。
【図６】実施の形態１に係るデータ先読み装置のデータ先読み処理の一連の流れを説明する図である。
【図７】実施の形態１に係るデータ先読み装置のデータ先読み処理の具体例を説明する図である。
【図８】実施の形態１に係るデータ先読み装置のデータ先読み処理の具体例を説明する図である。
【図９】実施の形態１に係るデータ先読み装置のデータ先読み処理の具体例を説明する図である。
【図１０】実施の形態１に係るデータ先読み装置のデータ先読み処理の具体例を説明する図である。
【図１１】実施の形態１に係るデータ先読み装置のデータ先読み処理の具体例を説明する図である。
【図１２】実施の形態１に係るデータ先読み装置のデータ先読み処理の処理手順を示すフローチャートである。
【図１３】実施の形態２に係るデータ先読み装置の機能構成を示すブロック図である。
【図１４】実施の形態２に係るデータ処理システムに含まれる外部記憶装置における複数の記憶領域に分割して記憶される処理対象データの割り付けの一例を示す図である。
【図１５】実施の形態２に係るアドレス管理ＲＡＭに記憶されるアドレスプロファイルの一例を示す図である。
【図１６】実施の形態２に係るデータ先読み装置のデータ先読み処理の処理手順を示すフローチャートである。
【図１７】実施の形態３に係るデータ先読み装置の機能構成を示すブロック図である。
【図１８】実施の形態３に係るデータ処理システムに含まれる外部記憶装置に記憶されるアドレスプロファイルの一例を示す図である。
【図１９】実施の形態３に係るデータ先読み装置のデータ先読み処理の処理手順を示すフローチャートである。
【図２０】実施の形態４に係るデータ先読み装置のハードウェア構成を示す構成図である。
【符号の説明】
【０２３０】
１  データ処理システム
１０〜４０  バスマスター
１００  システムバス
２００  データ先読み装置
２１０  入力制御部
２２０  一時バッファ管理部
２３０  一時バッファ
２４０  出力制御部
３００  ＤＭＡ制御部
３１０  ＤＭＡ制御部内部設定用Ｉ／Ｆ
３２０  アドレス管理レジスタ
３３０  アドレス判定／生成部
３４０  ＤＭＡ処理部
４００  メモリコントローラ
５００  外部記憶装置
６００  アドレス管理ＲＡＭ
７００  ダウンロード制御部
７１０  メモリ
２１００  入力コントローラ
２２００  バッファ管理コントローラ
２３００  バッファ
２４００  出力コントローラ
２５００  ＤＭＡコントローラ
２５１０  レジスタ
２６００  ＲＯＭ
２６１０  データ先読み処理プログラム
【図１】
2008293387.tif 000003
【図２】
2008293387.tif 000004
【図３】
2008293387.tif 000005
【図４】
2008293387.tif 000006
【図５】
2008293387.tif 000007
【図６】
2008293387.tif 000008
【図７】
2008293387.tif 000009
【図８】
2008293387.tif 000010
【図９】
2008293387.tif 000011
【図１０】
2008293387.tif 000012
【図１１】
2008293387.tif 000013
【図１２】
2008293387.tif 000014
【図１３】
2008293387.tif 000015
【図１４】
2008293387.tif 000016
【図１５】
2008293387.tif 000017
【図１６】
2008293387.tif 000018
【図１７】
2008293387.tif 000019
【図１８】
2008293387.tif 000020
【図１９】
2008293387.tif 000021
【図２０】
2008293387.tif 000022