(57)【要約】      （修正有）【課題】メモリアクセス効率に優れたメモリ制御技術を提供すること。【解決手段】メモリ制御装置は、バスマスタから入力された読出しの対象となるデータのアドレス情報と、予め設定されているメモリのデータ領域のアドレスを定義する複数のディスクリプタ情報との比較を行う比較部と、比較に基づき、読出しの対象となるデータの格納領域にアクセスするためのディスクリプタ情報を取得する取得部と、取得されたディスクリプタ情報に基づき、メモリにアクセスし、メモリの格納領域からデータを読出す第１の読出し部と、取得されたディスクリプタ情報に基づき、次のアクセスに対応したデータを事前にメモリからデータを読出すための次ディスクリプタ情報を生成する生成部と、生成された次ディスクリプタ情報に基づき、メモリにアクセスし、メモリの格納領域からデータを読出す第２の読出し部と、第２の読出し部により読出されたデータを格納する格納部とを備える。【選択図】図１
2008305093.tif 000002
【特許請求の範囲】
【請求項１】
バスマスタからのアクセスに基づきメモリからデータの読み出しを行うメモリ制御装置であって、
前記バスマスタから入力された読み出しの対象となるデータのアドレス情報と、予め設定されているメモリのデータ領域のアドレスを定義する複数のディスクリプタ情報との比較を行う比較手段と、
前記比較に基づき、読み出しの対象となるデータの格納領域にアクセスするためのディスクリプタ情報を取得する取得手段と、
前記取得手段により取得されたディスクリプタ情報に基づき、前記メモリにアクセスし、当該メモリの格納領域からデータを読み出す第１の読み出し手段と、
前記取得手段により取得されたディスクリプタ情報に基づき、次のアクセスに対応したデータを事前に前記メモリからデータを読み出すための次ディスクリプタ情報を生成する生成手段と、
前記生成手段により生成された前記次ディスクリプタ情報に基づき、前記メモリにアクセスし、当該メモリの格納領域からデータを読み出す第２の読み出し手段と、
前記第２の読み出し手段により読み出されたデータを格納する格納手段と、を備え、
前記バスマスタからの次のアクセスに基づきデータを読み出す場合に、前記第１の読み出し手段は、前記メモリへのアクセスに先立ち、前記格納手段に読み出しの対象となるデータが格納されているか判定し、当該格納手段に読み出しの対象となるデータが格納されている場合、前記メモリにアクセスせずに当該格納手段に格納されているデータを読み出して出力することを特徴とするメモリ制御装置。
【請求項２】
入力された前記アドレス情報が、前記複数のディスクリプタ情報のいずれかに該当する場合、前記取得手段は、該当するディスクリプタ情報を取得することを特徴とする請求項１に記載のメモリ制御装置。
【請求項３】
入力された前記アドレス情報が、前記複数のディスクリプタ情報のいずれにも該当しない場合、
前記取得手段は、前記メモリのディスクリプタ情報を格納する領域にアクセスして、入力された前記アドレス情報に対応するディスクリプタ情報を取得することを特徴とする請求項１に記載のメモリ制御装置。
【請求項４】
バスマスタからのアクセスに基づきメモリからデータの読み出しを行うためのメモリ制御装置の制御方法であって、
比較手段が、前記バスマスタから入力された読み出しの対象となるデータのアドレス情報と、予め設定されているメモリのデータ領域のアドレスを定義する複数のディスクリプタ情報との比較を行う比較工程と、
取得手段が、前記比較に基づき、読み出しの対象となるデータの格納領域にアクセスするためのディスクリプタ情報を取得する取得工程と、
第１の読み出し手段が、前記取得工程により取得されたディスクリプタ情報に基づき、前記メモリにアクセスし、当該メモリの格納領域からデータを読み出す第１の読み出し工程と、
生成手段が、前記取得工程により取得されたディスクリプタ情報に基づき、次のアクセスに対応したデータを事前に前記メモリからデータを読み出すための次ディスクリプタ情報を生成する生成工程と、
第２の読み出し手段が、前記生成工程により生成された前記次ディスクリプタ情報に基づき、前記メモリにアクセスし、当該メモリの格納領域からデータを読み出す第２の読み出し工程と、
前記第２の読み出し工程により読み出されたデータを格納手段に格納する格納工程と、を備え、
前記バスマスタからの次のアクセスに基づきデータを読み出す場合に、前記第１の読み出し工程では、前記メモリへのアクセスに先立ち、前記格納手段に読み出しの対象となるデータが格納されているか判定し、当該格納手段に読み出しの対象となるデータが格納されている場合、前記メモリにアクセスせずに当該格納手段に格納されているデータを読み出して出力することを特徴とするメモリ制御装置の制御方法。
【請求項５】
入力された前記アドレス情報が、前記複数のディスクリプタ情報のいずれかに該当する場合、前記取得工程では、該当するディスクリプタ情報を取得することを特徴とする請求項４に記載のメモリ制御装置の制御方法。
【請求項６】
入力された前記アドレス情報が、前記複数のディスクリプタ情報のいずれにも該当しない場合、
前記取得工程では、前記メモリのディスクリプタ情報を格納する領域にアクセスして、入力された前記アドレス情報に対応するディスクリプタ情報を取得することを特徴とする請求項４に記載のメモリ制御装置の制御方法。
【請求項７】
請求項４乃至６のいずれか１項に記載のメモリ制御装置の制御方法をコンピュータに実行させることを特徴とするプログラム。
【請求項８】
請求項７に記載のプログラムを格納したことを特徴とするコンピュータ可読の記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリ制御技術に関する。
【背景技術】
【０００２】
従来におけるメモリ制御システムの構成例を図６に示す。メモリ制御システムは、バスマスタ６０１、６０２、６０３、６０４と、メモリコントローラ６０５と、メモリデバイス６０６と、を有する。メモリコントローラ６０５は、バスインタフェース（Bus I/F）６０７、リードデータ制御回路６１１、メモリコマンド制御回路６１２を有する。メモリデバイス６０６は、ディスクリプタ領域６１７とデータ領域６１８とを有する。
【０００３】
例えば、バスマスタ６０１からメモリデバイス６０６のディスクリプタ領域６１７のディスクリプタ情報を読み出す場合、Bus I/F６０７、メモリコマンド制御回路６１２を介して、メモリデバイス６０６にアクセスする。そして、ディスクリプタ領域６１７からディスクリプタ情報を読み出す。
【０００４】
ディスクリプタ情報は、データ領域６１８に格納されているデータを特定するための情報であり、ディスクリプタ情報によりデータのアドレスとデータサイズより読み出すデータのデータ領域とが特定される。
【０００５】
上述の従来技術として、例えば、以下の特許文献１に示されるものがある。
【特許文献１】特開２００５−１８２５３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、複数のバスマスタの動作が競合して異なった領域へのアクセスが発生した場合には、メモリデバイス６０６へのアクセス時にページングミスの発生頻度が増加し、メモリアクセス効率が低下するという問題が生じる。
【課題を解決するための手段】
【０００７】
本発明に係るメモリ制御装置は、バスマスタからのアクセスに基づきメモリからデータの読み出しを行うメモリ制御装置であって、
バスマスタから入力された読み出しの対象となるデータのアドレス情報と、予め設定されているメモリのデータ領域のアドレスを定義する複数のディスクリプタ情報との比較を行う比較手段と、
前記比較に基づき、読み出しの対象となるデータの格納領域にアクセスするためのディスクリプタ情報を取得する取得手段と、
前記取得手段により取得されたディスクリプタ情報に基づき、前記メモリにアクセスし、当該メモリの格納領域からデータを読み出す第１の読み出し手段と、
前記取得手段により取得されたディスクリプタ情報に基づき、次のアクセスに対応したデータを事前に前記メモリからデータを読み出すための次ディスクリプタ情報を生成する生成手段と、
前記生成手段により生成された前記次ディスクリプタ情報に基づき、前記メモリにアクセスし、当該メモリの格納領域からデータを読み出す第２の読み出し手段と、
前記第２の読み出し手段により読み出されたデータを格納する格納手段と、を備え、
前記バスマスタからの次のアクセスに基づきデータを読み出す場合に、前記第１の読み出し手段は、前記メモリへのアクセスに先立ち、前記格納手段に読み出しの対象となるデータが格納されているか判定し、当該格納手段に読み出しの対象となるデータが格納されている場合、前記メモリにアクセスせずに当該格納手段に格納されているデータを読み出して前記バスマスタに出力することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、メモリアクセス効率に優れたメモリ制御技術の提供が可能になる。
【発明を実施するための最良の形態】
【０００９】
以下、図面を参照して、本発明の好適な実施形態を例示的に詳しく説明する。ただし、この実施の形態に記載されている構成要素はあくまで例示であり、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
【００１０】
図１は、本発明の実施形態にかかるメモリ制御装置の構成を例示する図である。バスマスタ１０１、１０２、１０３、１０４と、メモリコントローラ１０５、メモリデバイス１０６がバス構造により接続される。
【００１１】
メモリコントローラ１０５は、バスマスタからデータの入出力を行うバスインタフェース（Bus I/F）１０７、バスマスタからの読み出しに先立ちデータのプリフェッチ処理を制御するためのフェッチ制御回路１１０を有する。また、メモリコントローラ１０５は、メモリデバイス１０６から、あるいはフェッチ制御回路１１０からデータを読み出すためのリードデータ制御回路１１１、メモリデバイス１０６へのコマンドを発行するためのメモリコマンド制御回路１１２を有する。Bus I/F１０７には、メモリデバイス１０６のディスクリプタ領域１１７の情報を含んだディスクリプタ領域リスト１０８、アドレス判定部（アドレス判定手段）１０９が含まれる。
【００１２】
ディスクリプタ領域リスト１０８には、例えば、図４Ａに示すように、ディスクリプタ領域の設定例として、スタートアドレス４０１、次アドレス４０２、データサイズ４０３を含む情報が設定される。スタートアドレス４０１は、データ領域を特定するため先頭アドレス（スタートアドレス）を示す。次アドレス４０２は、データが分散して格納されているかいなかを判定することが可能な判定情報であり、データが分散して格納されている場合に、次に参照するべきデータ領域の先頭アドレスを示す。また、データサイズ４０３は、データ領域１１８（データ格納領域）において該当するデータのデータサイズを示す。ディスクリプタ領域の設定は、個別の処理に対応したディスクリプタ領域情報を数値情報として定義したものであり、通常、レジスタ等のBufferにより構成することが可能である。
【００１３】
アドレス判定部１０９は、バスマスタからメモリデバイス１０６のディスクリプタ領域へアクセスする際のアドレス情報と、ディスクリプタ領域リスト１０８に格納されている情報との比較を行う。入力されたアドレス情報と、ディスクリプタ領域リスト１０８に格納されている情報とが一致する場合、フェッチ制御回路１１０、メモリコマンド制御回路１１２、リードデータ制御回路１１１が起動される。
【００１４】
メモリコマンド制御回路１１２、リードデータ制御回路１１１は、メモリデバイス１０６からデータを読み取る読み取り回路（読み取り手段）として機能することが可能である。入力されたアドレス情報と、ディスクリプタ領域リスト１０８に格納されている情報とが一致する場合、メモリコマンド制御回路１１２は、ディスクリプタ領域リスト１０８に格納されている情報に基づいて、データの読み取り処理を行うことが可能である。リードデータ制御回路１１１の制御の下、メモリコマンド制御回路１１２は、ディスクリプタ領域リスト１０８に格納されている情報からデータ領域１１８のスタートアドレスを読み出す。
【００１５】
一方、メモリコマンド制御回路１１２、リードデータ制御回路１１１によるデータの読み取りに対応してフェッチ制御回路１１０によりプリフェッチ処理が実行される。プリフェッチ処理とは、最初にバスマスタより発行されるトランザクションに対して、次に必要な処理に先立ってデータを先に読み出す処理をいう。この処理により、複数のバスマスタからメモリデバイスに対するアクセスが競合する場合であっても、処理レイテンシを削減して処理性能を向上させることが可能になる。
【００１６】
フェッチ制御回路１１０は、アドレス判定部１０９で判定された結果から、ディスクリプタ領域１１７における次エントリを参照するためのディスクリプタコマンド制御部１１３を有する。また、フェッチ制御回路１１０は、参照したディスクリプタ領域１１７の次エントリをデコードするためのディスクリプタデコーダ１１４、次エントリのデータ領域１１８を判別するためのデータプリフェッチコマンド制御部１１５を有する。更に、フェッチ制御回路１１０は、判別したデータ領域１１８のデータをプリフェッチの対象として保持するためのプリフェッチバッファ１１６を有する。
【００１７】
メモリデバイス１０６は、ディスクリプタ領域１１７とデータ領域１１８とを有する。ディスクリプタ領域１１７には、ディスクリプタ情報として、例えば、図４Ａのディスクリプタ領域の設定例に示されるスタートアドレス４０１、次アドレス４０２、データサイズ４０３の値が設定されている。ディスクリプタ情報に対応するデータがディスクリプタ領域リスト１０８にも設定されている。スタートアドレス４０１を参照することにより、データ領域１１８において読み取るべきデータが格納されている領域の先頭アドレスを特定することができる。
【００１８】
メモリコマンド制御回路１１２、リードデータ制御回路１１１は、ディスクリプタ領域１１７の情報に基づいて、データ領域１１８へアクセスしてデータの読み取り処理を行うことも可能である。
【００１９】
入力されたアドレス情報と、ディスクリプタ領域リスト１０８に格納されている情報とが一致しない場合、アドレス判定部１０９はディスクリプタ領域リスト１０８に格納されていない領域に対するアクセス要求と判定する。この場合、メモリコマンド制御回路１１２は、メモリデバイス１０６のディスクリプタ領域１１７からディスクリプタ情報を読み出し、読み出したディスクリプタ情報に基づいてデータ領域１１８からデータの読み出しを行う。
【００２０】
図２は、メモリデバイス１０６のディスクリプタ領域１１７及びデータ領域１１８の構造を示す図である。ディスクリプタ領域１１７には、各処理に対応した複数のディスクリプタ領域３０１〜３０８が定義されており、データ領域１１８には、各処理に対応した複数のデータ領域３１１〜３１８が定義されている。それぞれのディスクリプタ領域３０１〜３０８には、例えば、図４Ａに示すように、ディスクリプタ情報として、スタートアドレス４０１と、次アドレス４０２及び、メモリデバイス１０６上のデータサイズ４０３の各情報によって構成される。
【００２１】
ディスクリプタ領域１１７は、例えば、図２に示すように、ディスクリプタ領域１（３０１）からディスクリプタ領域８（３０８）まで連続した領域で定義されている。ここで、ディスクリプタ領域２（３０２）はアドレス“０１００”〜“０２００”と定義される。入力されたアドレス情報と、ディスクリプタ領域リスト１０８に格納されている情報とが一致しているとアドレス判定部１０９が判定すると、メモリコマンド制御回路１１２は、該当するディスクリプタ領域からデータ領域１１８のスタートアドレスを読み出す。
【００２２】
図４Ａに示すディスクリプタ領域の設定例には、ディスクリプタ領域２の設定として、データ領域２（３１２）のスタートアドレス４０１が“１２００”として設定されている。データサイズ４０３は“０００００３００”に設定されており、スタートアドレス４０１の設定“１２００”にデータサイズ４０３の値を加算して、データ領域のエンドアドレス "１５００"を算出することができる。エンドアドレス"１５００"は、「処理１（データ２）」の読み出し処理（Ｓ５０４）に使用することが可能である。
【００２３】
図３は、データが分散して格納される場合のディスクリプタ領域１１７及びデータ領域１１８の構造を示す図である。図３において、ディスクリプタ領域１１９は、ディスクリプタ領域１（３２１）からディスクリプタ領域８（３２８）まで連続した領域で定義される。ここで、ディスクリプタ領域４は、ディスクリプタ領域４−１（３２７）と、ディスクリプタ領域４−２（３２５）とに分散して格納されている。ディスクリプタ領域４−１（３２７）はアドレス“０６００”〜“０７００”に定義され、ディスクリプタ領域４−２（３２５）は、アドレス“０４００”〜“０５００”に定義される。
【００２４】
ディスクリプタ領域４−１と、ディスクリプタ領域４−２の設定例を図４Ｂに示す。ディスクリプタ領域４−１に対応するデータ領域４−１（３３２）のスタートアドレスは“１２００”と設定されている。この場合、メモリデバイス１０６において対応するデータ領域４−１（３３２）の読み出しアドレスは“１２００”となる。また、データ領域４−１のデータサイズ４０６は、“０００００３００”であることから、データ領域４−１（３３２）のエンドアドレスは、スタートアドレス“１２００"にデータサイズ"３００"を加算した"１５００"となる。リードデータ制御回路１１１の制御の下、メモリコマンド制御回路１１２は、スタートアドレス“１２００"からデータの読み出しを開始して、終了アドレス"１５００"までデータの読み出し処理を実行する。
【００２５】
メモリコマンド制御回路１１２は、次アドレスの設定を参照して、データが分散して格納されているか否かを判定することが可能である。例えば、メモリコマンド制御回路１１２は、次アドレスに“００００”以外のデータが設定されている場合、分散して格納されているデータを特定するためのディスクリプタ領域の先頭アドレスと判定する。メモリコマンド制御回路１１２は、最初にスタートアドレスにより特定されるデータの読み出しを行う。そして、読み出しが完了した後、次アドレスにより特定されるディスクリプタ領域の設定により特定されるデータの読み出しを開始することが可能である。
【００２６】
図４Ｂのディスクリプタ領域４−１（３２７）における次アドレス４０５の設定では、“００００"以外のデータとして"０４００"が設定されている。メモリコマンド制御回路１１２は、データの読み出しがデータ領域のアドレス"１５００"まで完了した後に、次アドレス"０４００"を参照して次ディスクリプタ領域であるディスクリプタ領域４−２（３２５）を参照する。
【００２７】
ディスクリプタ領域４−２（３２５）には、対応するデータ領域４−２（３３５）のスタートアドレス４０７が“１８００”と設定されている。リードデータ制御回路１１１の制御の下、メモリコマンド制御回路１１２は、このスタートアドレスの参照により、データの読み出しは、アドレス“１８００”から読み出し処理を開始する。そして、メモリコマンド制御回路１１２は、データの読み出し開始のアドレス“１８００”にデータサイズ“１００”を加算したエンドアドレス“１９００”まで、読み出し処理を実行する。
【００２８】
ディスクリプタ領域４−２（３２５）の次アドレス４０８には、“００００”が設定されているため、メモリコマンド制御回路１１２は、更なるデータ領域の分散はないと判定する。エンドアドレス“１９００”まで、読み出し処理が終了した後、処理は終了となる。
【００２９】
（メモリ制御装置の動作）
次に、本発明の実施形態にかかるメモリ制御装置の動作を説明する。図５は、メモリ制御装置の処理の流れを説明する図である。
【００３０】
Ｓ５０１において、バスマスタ１０１のリクエストに基づき、メモリコントローラ１０５は、ディスクリプタ領域１に設定されているデータ（ディスクリプタ情報）の取得処理（「処理１（ディスクリプタ１）」）を行う。本処理において、バスマスタ１０１からのメモリアクセスのアドレス情報は、Bus I/F１０７内のアドレス判定部１０９に入力される。アドレス判定部１０９は、入力されたアドレス情報と、ディスクリプタ領域リスト１０８に格納されている情報との比較を行う。入力されたアドレス情報と、ディスクリプタ領域リスト１０８に格納されている情報とが一致している場合、メモリコマンド制御回路１１２は、該当するディスクリプタ領域からデータ領域１１８のスタートアドレス（アドレス情報）を読み出す。
【００３１】
入力されたアドレス情報と、ディスクリプタ領域リスト１０８に格納されている情報とが一致しない場合、アドレス判定部１０９はディスクリプタ領域リスト１０８に格納されていない領域に対するアクセス要求と判定する。この場合、メモリコマンド制御回路１１２は、メモリデバイス１０６のディスクリプタ領域１１７からディスクリプタ情報を読み出し、ディスクリプタ情報に基づいてデータ領域１１８からデータの読み出しを行う。
【００３２】
Ｓ５０２において、メモリコマンド制御回路１１２は、先のＳ５０１で読み出されたデータにより示されるデータ領域のアドレスポインタを用いてデータ領域１１８のデータを読み出す処理（「処理１（データ１）」）を行う。この場合、メモリコマンド制御回路１１２は、第１の読み出し手段として機能する。
【００３３】
例えば、図４Ａのディスクリプタ領域２の設定に対して、スタートアドレス“１２００”から終了アドレス“１５００”までのデータの読み取りが実行される。また、図４Ｂのディスクリプタ領域４−１の設定に対して、スタートアドレス“１２００”から終了アドレス“１５００”までデータの読み出しが実行される。その後、次アドレスにより特定されるスタートアドレス“１８００”から終了アドレス“１９００”までのデータの読み出しが実行される。
【００３４】
Ｓ５０３で、先のＳ５０１で特定されたディスクリプタの情報がディスクリプタコマンド制御部１１３に入力される。ディスクリプタコマンド制御部１１３は、入力されたディスクリプタ情報から、次のアクセスでメモリデバイス１０６からデータを読み出すためのディスクリプタの情報（次ディスクリプタ情報）を生成する。
【００３５】
ディスクリプタデコーダ１１４は、ディスクリプタコマンド制御部１１３により生成された次ディスクリプタ情報に基づいて、次ディスクリプタ情報のアドレスを生成する。ディスクリプタデコーダ１１４は、メモリコマンド制御回路１１２を介してメモリデバイス１０６のディスクリプタ領域１１７から対応するディスクリプタ情報の読み出しを行う（「処理１（ディスクリプタ２）」）。
【００３６】
Ｓ５０４で、ディスクリプタデコーダ１１４は、ディスクリプタ領域１１７から読み出したディスクリプタ情報をデータプリフェッチコマンド制御部１１５に入力する。データプリフェッチコマンド制御部１１５は、先のＳ５０３で読み出された次ディスクリプタ情報に基づいて、データ領域１１８からデータを読み出す（「処理１（データ２）」）。この場合、データプリフェッチコマンド制御部１１５は、第２の読み出し手段として機能する。そして、メモリコントローラ１０５は、読み出したデータをプリフェッチバッファ１１６に格納する。プリフェッチバッファ１１６には、Ｓ５０３で読み出されたディスクリプタ情報と、Ｓ５０４で読み出されたデータとが対となり格納される。
【００３７】
バスマスタからのメモリアクセスがプリフェッチバッファ１１６に格納されているアドレス情報と一致する場合、フェッチ制御回路１１０は、プリフェッチバッファ１１６に格納されているデータをリードデータとして出力する。この場合、フェッチ制御回路１１０は、メモリコマンド制御回路１１２を介さず、プリフェッチバッファ１１６に格納されているデータを、リードデータ制御回路１１１を介してバスマスタに出力する。
【００３８】
一方、Ｓ５０２における処理が終了すると、バスマスタ１０１のリクエストに基づき、メモリコントローラ１０５は、次のディスクリプタ領域２に設定されているデータの読出し処理（「処理１（ディスクリプタ２）」）を行う。
【００３９】
Ｓ５０５において、バスマスタ１０１のリクエストに基づき、リードデータ制御回路１１１の制御の下、メモリコマンド制御回路１１２は、次のディスクリプタ情報の読み出し処理を行う（「処理１（ディスクリプタ２）」）。
【００４０】
Ｓ５０６において、リードデータ制御回路１１１の制御の下、メモリコマンド制御回路１１２は、先のＳ５０５で読み出されたディスクリプタ情報に基づいて、データ領域１１８のデータを読み出す処理（「処理１（データ２）」）を行う。
【００４１】
この際、リードデータ制御回路１１１は、アクセスすべきデータのディスクリプタ情報が、プリフェッチバッファ１１６内に既に格納されているかいなか判定する。プリフェッチバッファ１１６内に既にアクセスして読み出すべきデータが格納されている場合、メモリコマンド制御回路１１２を介さず、プリフェッチバッファ１１６に格納されているデータを読み出してバスマスタに出力する。以下同様の処理が繰り返される。
【００４２】
メモリデバイス１０６にアクセスする際に、読み出し先を事前に検出し、該当するデータがプリフェッチバッファ１１６に格納されている場合は、プリフェッチバッファ１１６に格納されているデータを処理に使用する。これにより、メモリアクセスによるページミスの発生を抑制し、メモリアクセス効率の改善を図ることが可能になる。
【００４３】
バスマスタ１０１、１０２、１０３、１０４からのメモリアクセスが発生した場合でも、読み出し先の事前検出に基づき、プリフェッチバッファ１１６に格納されているデータを処理に使用する。これにより、メモリアクセスが競合した場合でもページングミスの発生を抑制し、メモリアクセス効率の改善を図ることが可能になる。
【００４４】
尚、本実施形態では、１つのメモリデバイス１０６に対するアクセスを例に説明したが、この例に限定されず、例えば、種々のメモリデバイスを組み合わせたて一つのメモリデバイスとして扱う構成に対しても適用可能である。また、プリフェッチバッファ１１６を１つとする構成に限定されず、優先順位を付けて、複数に分割し、接続してプリフェッチバッファ１１６を構成することも可能である。
【００４５】
（他の実施形態）
なお、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録したコンピュータ可読の記憶媒体を、システムあるいは装置に供給することによっても、達成されることは言うまでもない。また、システムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【００４６】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００４７】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００４８】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現される。また、プログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００４９】
【図１】実施形態にかかるメモリ制御装置の構成を例示する図である。
【図２】メモリデバイス１０６のディスクリプタ領域１１７及びデータ領域１１８の構造を示す図である。
【図３】データが分散して格納される場合のディスクリプタ領域１１７及びデータ領域１１８の構造を示す図である。
【図４Ａ】ディスクリプタ領域の設定例を示す図である。
【図４Ｂ】ディスクリプタ領域の設定例を示す図である。
【図５】実施形態にかかるメモリ制御装置の処理の流れを説明する図である。
【図６】従来におけるメモリ制御システムの構成例を示す図である。
【符号の説明】
【００５０】
１０５  メモリコントローラ
１０８  ディスクリプタ領域リスト
１０９  アドレス判定部
１１０  フェッチ制御回路
１１１  リードデータ制御回路
１１２  メモリコマンド制御回路
【図１】
2008305093.tif 000003
【図２】
2008305093.tif 000004
【図３】
2008305093.tif 000005
【図４Ａ】
2008305093.tif 000006
【図４Ｂ】
2008305093.tif 000007
【図５】
2008305093.tif 000008
【図６】
2008305093.tif 000009