(57)【要約】【課題】記憶装置の不連続なページにファイルが格納されている場合にも、効率よくファイル読み出しを行う技術を提供することを目的とする。【解決手段】メモリ４には、ファイルが不連続なページアドレスに格納されている。その情報は、メモリ４のＦＡＴに記録されている。ホストシステム２のアプリケーションプログラムがファイル読み出しを実行すると、ＦＡＴシステムがＦＡＴを参照し、ファイルのページインデックスを読み出す。そして、ページインデックスは、メモリコントローラ３が備えるページインデックスバッファ３２に格納される。ＤＭＡＣ２２により読み出しコマンドが出力されると、このコマンドのアドレス部が、ページインデックス転送シーケンサにおいてページインデックスに置き換えられ、メモリ４に対して出力される。【選択図】図１
2007164303.tif 000002
【特許請求の範囲】
【請求項１】
記憶手段に記憶された情報を処理する情報処理装置であって、
前記記憶手段に記憶された情報を処理するホストシステムと、
前記記憶手段に対するアクセスを制御するコントローラと、
を備え、
前記ホストシステムは、
前記記憶手段に記憶された情報を管理するファイルシステム、
を含み、
前記コントローラは、
前記ファイルシステムにより管理されている前記記憶手段に記憶されたファイルのページインデックスを格納するページインデックスバッファと、
前記ホストシステムから前記ファイルに対する読み出しコマンドを入力した場合、前記読み出しコマンドのアドレス部を前記ページインデックスバッファに格納されているページインデックスに順次置き換えた上で、前記記憶手段に対して連続して読み出しコマンドを転送する変換手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、
前記ファイルシステムによって前記記憶手段に格納されている前記ファイルのページインデックスが読み出され、ソフトウェア処理によって読み出されたページインデックスが前記ページインデックスバッファに格納され、前記変換手段がハードウェアによって構成されていることを特徴とする情報処理装置。
【請求項３】
請求項１または請求項２に記載の情報処理装置において、
前記ホストシステムは、
ＤＭＡコントローラ、
を含み、
前記ホストシステムから出力される前記ファイルの読み出しコマンドは、前記ＤＭＡコントローラにより制御され、前記変換手段により順次置き換えられるページインデックスについてバースト転送が行われることを特徴とする情報処理装置。
【請求項４】
請求項３に記載の情報処理装置において、
前記記憶手段に、不連続なページアドレスに格納された不連続ファイルが記憶されており、前記ページインデックスバッファには、前記不連続ファイルの不連続なページインデックスが格納され、前記変換手段によって、読み出しコマンドのアドレス部が不連続なページインデックスに置き換えられることにより、前記ＤＭＡコントローラは、１回のバースト転送により前記不連続ファイルを読み出すことを特徴とする情報処理装置。
【請求項５】
情報処理装置に組み込まれるコントローラであって、
前記情報処理装置は、記憶手段に記憶された情報を処理する装置であって、前記記憶手段に記憶された情報を管理するファイルシステムを含むホストシステムを備えており、
前記コントローラは、
前記ファイルシステムにより管理されている前記記憶手段に記憶されたファイルのページインデックスを格納するページインデックスバッファと、
前記ホストシステムから出力された前記ファイルの読み出しコマンドを入力した場合、前記読み出しコマンドのアドレス部を前記ページインデックスバッファに格納されているページインデックスに順次置き換えた上で、前記記憶手段に対して連続して読み出しコマンドを転送する変換手段と、
を備えることを特徴とするコントローラ。
【請求項６】
請求項５に記載のコントローラにおいて、
前記ファイルシステムによって前記記憶手段に格納されている前記ファイルのページインデックスが読み出され、ソフトウェア処理によって読み出されたページインデックスが前記ページインデックスバッファに格納され、前記変換手段がハードウェアによって構成されていることを特徴とするコントローラ。
【請求項７】
請求項５または請求項６に記載のコントローラにおいて、
前記変換手段が、ＤＭＡコントローラより発生された読み出しコマンドのアドレス部をページインデックスで順次置き換えることにより、置き換えられたページインデックスについてバースト転送が行われることを特徴とするコントローラ。
【請求項８】
記憶手段に格納されたファイルの読み出し方法であって、
ソフトウェア処理によって、前記ファイルが格納されているページインデックスが取得され、前記ページインデックスがバッファに格納される工程と、
演算処理装置により、前記ファイルの読み出しコマンドが生成される工程と、
ハードウェア処理によって、前記読み出しコマンドのアドレス部が、前記バッファに格納されている前記ページインデックスに順次置き換えられ、変換後の読み出しコマンドが連続的に前記記憶手段に出力される工程と、
を備えることを特徴とするファイル読み出し方法。
【請求項９】
請求項８に記載のファイル読み出し方法において、
前記演算処理装置は、ＤＭＡコントローラであり、前記ＤＭＡコントローラによって生成された１回の読み出しコマンドにより、順次置き換えられたページインデックスについてバースト転送が行われることを特徴とするファイル読み出し方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶手段に記録された情報を処理する装置およびコントローラに関する。
【背景技術】
【０００２】
半導体メモリには、データアクセスの高速化を図る目的で、ページ単位での読み出し処理を可能としたものが存在する。たとえば、全メモリ領域が数KByte単位の領域（ページ）に区切られ、ＣＰＵは、各ページの先頭アドレスを指定することで、データの読み出しを行うことが可能となっている。例を挙げると、ＮＯＲ型のＦＬＡＳＨでは、ページアクセスとランダムアクセスの両方が可能となっている。また、ＮＡＮＤ型のＦＬＡＳＨでは、ページアクセスのみ可能となっている。
【０００３】
また、ハードディスクや半導体メモリに格納されたデータにファイル単位でアクセスするために、ファイルシステムが用いられる。ファイルシステムは、ハードディスクや半導体メモリに格納されている各ファイルの格納位置を示す情報を管理している。格納位置を示す情報とは、具体的には、ファイルが格納されているページの論理アドレスのチェーン情報である。ファイルシステムとしてＦＡＴシステムが利用されている場合、これらファイルの格納情報は、記憶装置内に格納されたＦＡＴ（File Allocation Tables）に記録されている。
【０００４】
アプリケーションプログラムにより、あるファイルの読み出し命令が実行されると、ファイルシステムが、指定されたファイルの格納位置を示す論理アドレスのチェーン情報を取得する。そして、ドライバプログラムにより、この論理アドレスで指定されたページを順次読み出すことで、ファイルの読み出しが行われるのである。
【０００５】
そして、一般的には、１つのファイルを構成するデータは、連続するページ、つまり、連続する論理アドレスのページに格納されている。このような場合、ＤＭＡＣ（Direct Memory Access Controller）によるファイル読み出しが有効である。
【０００６】
たとえば、図７に示すように、メモリの連続する４つの論理アドレスＡ１００〜Ａ１０３に、ファイルＸ１が格納されているとする（この場合、物理アドレスと論理アドレスは１対１に対応しているものとする。）。ドライバプログラムは、対象ファイルを構成するデータが、連続するページに格納されているか否か、つまり、連続する論理アドレスの領域に格納されているか否かを確認する。そして、連続するページに格納されている場合には、ドライバプログラムは、ＤＭＡＣを用いて連続読み出しを実行するのである。つまり、ＤＭＡＣは、先頭ページの論理アドレスＡ１００を指定するとともに、４ページ分のデータを読み出すような命令を出力するのである。これにより、ＤＭＡＣから１回の命令が送られることで、４ページ部のデータを連続的に読み出すバースト転送が可能である。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記のように、読み出し対象であるデータが連続したアドレスのページに格納されている場合には、ＤＭＡＣによるバースト転送が可能であり、データ処理速度の向上が図られる。また、ＤＭＡ転送時の割り込み発生の回数を減らすことができるので、処理効率も向上する。
【０００８】
しかし、１つのファイルが不連続な論理アドレスのページに格納される場合がある（論理アドレスと物理アドレスが１対１に対応している場合を考えれば、１つのファイルが不連続な物理アドレスに格納されている場合でもある。）。たとえば、図８に示すように、ファイルＸ１は、不連続なページに格納されている。この場合、ＤＭＡＣは、次に、示す３回の処理を実行することになる。
【０００９】
（１）Ａ１００〜Ａ１０１の連続読み出し（バースト転送）
（２）Ａ１０２の読み出し
（３）Ａ１０３の読み出し
つまり、論理アドレスが連続している区間に関してバースト転送を実行した後、一旦、ＤＭＡ転送を終了し、再び、割り込みを発生させて、次のＤＭＡ転送を実行するのである。つまり、上記の例であれば、３回の割り込み処理が発生し、３回のＤＭＡ転送により、ファイルＸ１を読み出すことになる。このように、ファイルが不連続ページに格納されている場合には、データの転送効率が悪いという問題があった。
【００１０】
そこで、本発明は前記問題点に鑑み、ファイルが不連続ページに格納されている場合にも、効率よくファイル読み出しを行う技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するため、請求項１記載の発明は、記憶手段に記憶された情報を処理する情報処理装置であって、前記記憶手段に記憶された情報を処理するホストシステムと、前記記憶手段に対するアクセスを制御するコントローラと、を備え、前記ホストシステムは、前記記憶手段に記憶された情報を管理するファイルシステム、を含み、前記コントローラは、前記ファイルシステムにより管理されている前記記憶手段に記憶されたファイルのページインデックスを格納するページインデックスバッファと、前記ホストシステムから前記ファイルに対する読み出しコマンドを入力した場合、前記読み出しコマンドのアドレス部を前記ページインデックスバッファに格納されているページインデックスに順次置き換えた上で、前記記憶手段に対して連続して読み出しコマンドを転送する変換手段と、を備えることを特徴とする。
【００１２】
請求項２記載の発明は、請求項１に記載の情報処理装置において、前記ファイルシステムによって前記記憶手段に格納されている前記ファイルのページインデックスが読み出され、ソフトウェア処理によって読み出されたページインデックスが前記ページインデックスバッファに格納され、前記変換手段がハードウェアによって構成されていることを特徴とする。
【００１３】
請求項３記載の発明は、請求項１または請求項２に記載の情報処理装置において、前記ホストシステムは、ＤＭＡコントローラ、を含み、前記ホストシステムから出力される前記ファイルの読み出しコマンドは、前記ＤＭＡコントローラにより制御され、前記変換手段により順次置き換えられるページインデックスについてバースト転送が行われることを特徴とする。
【００１４】
請求項４記載の発明は、請求項３に記載の情報処理装置において、前記記憶手段に、不連続なページアドレスに格納された不連続ファイルが記憶されており、前記ページインデックスバッファには、前記不連続ファイルの不連続なページインデックスが格納され、前記変換手段によって、読み出しコマンドのアドレス部が不連続なページインデックスに置き換えられることにより、前記ＤＭＡコントローラは、１回のバースト転送により前記不連続ファイルを読み出すことを特徴とする。
【００１５】
請求項５記載の発明は、情報処理装置に組み込まれるコントローラであって、前記情報処理装置は、記憶手段に記憶された情報を処理する装置であって、前記記憶手段に記憶された情報を管理するファイルシステムを含むホストシステムを備えており、前記コントローラは、前記ファイルシステムにより管理されている前記記憶手段に記憶されたファイルのページインデックスを格納するページインデックスバッファと、前記ホストシステムから出力された前記ファイルの読み出しコマンドを入力した場合、前記読み出しコマンドのアドレス部を前記ページインデックスバッファに格納されているページインデックスに順次置き換えた上で、前記記憶手段に対して連続して読み出しコマンドを転送する変換手段と、を備えることを特徴とする。
【００１６】
請求項６記載の発明は、請求項５に記載のコントローラにおいて、前記ファイルシステムによって前記記憶手段に格納されている前記ファイルのページインデックスが読み出され、ソフトウェア処理によって読み出されたページインデックスが前記ページインデックスバッファに格納され、前記変換手段がハードウェアによって構成されていることを特徴とする。
【００１７】
請求項７記載の発明は、請求項５または請求項６に記載のコントローラにおいて、前記変換手段が、ＤＭＡコントローラより発生された読み出しコマンドのアドレス部をページインデックスで順次置き換えることにより、置き換えられたページインデックスについてバースト転送が行われることを特徴とする。
【００１８】
請求項８記載の発明は、記憶手段に格納されたファイルの読み出し方法であって、ソフトウェア処理によって、前記ファイルが格納されているページインデックスが取得され、前記ページインデックスがバッファに格納される工程と、演算処理装置により、前記ファイルの読み出しコマンドが生成される工程と、ハードウェア処理によって、前記読み出しコマンドのアドレス部が、前記バッファに格納されている前記ページインデックスに順次置き換えられ、変換後の読み出しコマンドが連続的に前記記憶手段に出力される工程と、
を備えることを特徴とする。
【００１９】
請求項９記載の発明は、請求項８に記載のファイル読み出し方法において、前記演算処理装置は、ＤＭＡコントローラであり、前記ＤＭＡコントローラによって生成された１回の読み出しコマンドにより、順次置き換えられたページインデックスについてバースト転送が行われることを特徴とする。
【発明の効果】
【００２０】
本発明の情報処理装置は、読み出しコマンドのアドレス部をページインデックスに置き換えた上で、記憶手段に対してコマンドを転送する。したがって、演算処理装置が１回の読み出しコマンドを発生させることで、ページインデックスに対応したデータを全て読み出すことが可能である。
【００２１】
また、ページインデックスの読み出しおよびバッファへの書き込みがソフトウェアにより実行され、変換手段が、ハードウェアにより構成されているので、ソフトウェア処理とハードウェア処理がバランスよく負荷分散される。
【００２２】
また、変換手段により置き換えられたページインデックスを１単位としてＤＭＡバースト転送が行われるので、ＣＰＵの負荷を軽減しつつ、効率的なデータ転送を実現する。
【００２３】
また、記憶手段に、不連続なページアドレスに格納された不連続ファイルが記憶されている場合にも、ＤＭＡコントローラは、１回のバースト転送により不連続ファイルを読み出すので、データ転送効率が格段に向上する。
【発明を実施するための最良の形態】
【００２４】
以下、図面を参照しつつ本発明の実施の形態について説明する。図１は、本発明の実施の形態に係る情報処理装置１の機能ブロック図である。情報処理装置１は、メモリ４に格納されているファイルを読み込んで様々な情報処理を行う装置である。本実施の形態において、メモリ４は、フラッシュメモリ等の半導体メモリである。
【００２５】
また、本実施の形態において、情報処理装置１は、メモリ４をＦＡＴファイルシステムによって管理している。メモリ４は、図に示すように、ＦＡＴ領域４１とデータ領域４２を備えている。データ領域４２には、プログラムファイルやデータファイルの実体が格納され、ＦＡＴ領域４１には、ファイルの管理情報が記録されている。
【００２６】
また、図に示すように、メモリ４のデータ領域４２は、複数のページ領域４３，４３・・・に区画されており、メモリ４は、ページ単位でアクセス制御される。つまり、ページ単位で、データの読み出し処理や書き込み処理が実行される。したがって、１つのファイルが複数のページに分割して格納される場合には、ＦＡＴ領域４１には、各ファイルのページチェーン情報が記録される。
【００２７】
情報処理装置１は、たとえば、ゲーム装置である。この場合、メモリ４はゲームカートリッジであり、ゲーム装置である情報処理装置１は、メモリ４に格納されたゲームプログラムを実行する。
【００２８】
情報処理装置１は、ホストシステム２とメモリコントローラ３とを備えている。ホストシステム２は、情報処理装置１の全体制御を行う中枢処理部であり、ＣＰＵ２１、ＤＭＡＣ（Direct Memory Access Controller）２２、ＲＯＭ２３を備えている。ＲＯＭ２３には、後述する各種のソフトウェアが格納されている。また、情報処理装置１は、この他に、各種の入力装置や出力装置などを備えている。情報処理装置１が、ゲーム装置である場合には、出力装置として液晶表示装置やスピーカなどを備える。また、入力装置としては、各種の操作ボタンを備える。
【００２９】
メモリコントローラ３は、ホストインタフェース３１と、ページインデックスバッファ３２と、コマンドテンプレート生成部３３と、ページインデックス転送シーケンサ３４とを備えている。
【００３０】
ホストインタフェース３１は、ホストシステム２との間でコマンドやデータの入出力を行うインタフェースである。つまり、ホストインタフェース３１は、ホストシステム２からアドレス部を指定した読み出しコマンドや書き込みコマンドを入力するインタフェースであり、また、メモリ４から読み出されたデータをホストシステム２に出力するインタフェースである。
【００３１】
ページインデックスバッファ３２は、読み出し対象であるファイルのページインデックスを格納するバッファである。つまり、読み出し対象であるファイルが格納されている全ページの情報が記録されるバッファである。ただし、ページインデックスバッファ３２にファイルの全ページ情報が格納しきれない場合には、一部のページ情報が複数回に分けて格納されることになる。なお、後述するように、ページインデックスバッファ３２に格納されるアドレスは、メモリ４の物理アドレスである。このページインデックスバッファ３２には、不連続なページに格納されたファイルについては、不連続な物理アドレスがそのまま記録される。
【００３２】
コマンドテンプレート生成部３３は、ページインデックス転送シーケンサ３４において生成する読み出しコマンドのテンプレートを作成する。そして、ページインデックス転送シーケンサ３４は、コマンドテンプレート生成部３３によって生成されたコマンドのアドレス部を、ページインデックスバッファ３２に格納されているページインデックスに置き換えた上で、メモリ４に読み出しコマンドを出力する。コマンドテンプレート生成部３３およびページインデックス転送シーケンサ３４は、ハードウェアで構成されている。
【００３３】
図２は、情報処理装置１の構成をソフトウェア層とハードウェア層に分類して示した図である。ソフトウェア層は、図に示すように、上位のアプリケーション層、アプリケーションの下位に位置するＡＰＩ(Application Program Interface)層、ドライバ層から構成され、ドライバ層の下位にハードウェア層が位置している。本実施の形態においては、アプリケーション層は、たとえば、ゲームプログラムなどのアプリケーションプログラムであり、ＡＰＩ層は、ＦＡＴシステムであり、ドライバ層は、メモリコントローラ３を制御するドライバ（デバイスドライバ）である。
【００３４】
なお、アプリケーションプログラムは、メモリ４に格納されている。また、ＦＡＴシステムは、プログラムとメモリ４に記録されているテーブルなどの情報（ＦＡＴ領域４１に格納されている情報）から構成されるが、そのプログラム部分は、ＲＯＭ２３に格納されている。また、ドライバもＲＯＭ２３に格納されている。
【００３５】
以上の構成のもと、本実施の形態の情報処理装置１によるメモリアクセス処理の流れを図３のフローチャートを参照しながら説明する。ここでは、メモリ４には、図４に示すようにファイルが記録されているものとする。具体的には、ファイルＡおよびファイルＢが、データ領域４２のページアドレスＡ０〜Ａ７に格納され、その格納情報が、ＦＡＴ領域４１に記録されている。つまり、ファイルＡが、ページアドレスＡ０，Ａ１，Ａ３，Ａ５，Ａ７に格納されており、ファイルＢが、ページアドレスＡ２，Ａ４，Ａ６に格納されている。つまり、ファイルＡ、ファイルＢとも、不連続なページに格納されている。
【００３６】
なお、ページアドレスＡ０〜Ａ７は、メモリ４のＦＡＴ領域４１に記録された論理アドレスである。ただし、本実施の形態においては、メモリ４のＦＡＴ領域４１に記録された論理アドレスは、メモリ４の物理アドレスと１対１に対応している。したがって、本実施の形態においては、ファイルＡおよびファイルＢは、論理アドレスとしても、また、物理アドレスとしても、不連続なページに格納されている。
【００３７】
アプリケーションプログラムが、ファイルＡを読み出す処理について説明する。まず、アプリケーションプログラムが、ファイルＡを読み出す命令を実行する（ステップＳ１）。実質的には、この命令はＣＰＵ２１によって実行される。
【００３８】
次に、ＦＡＴシステムが、メモリ４にアクセスし、メモリ４に記録されているＦＡＴ領域４１を参照する。そして、ファイルＡが格納されている論理アドレスのチェーン情報（ページアドレスのチェーン情報）を取得する（ステップＳ２）。つまり、ファイルＡが、論理アドレスＡ０，Ａ１，Ａ３，Ａ５，Ａ７に格納されているという情報を取得する。
【００３９】
ＦＡＴシステムが取得したファイルＡの格納アドレス情報は、ドライバに渡される。そして、ドライバは、ファイルＡの格納論理アドレスを物理アドレスに変換する（ステップＳ３）。この論理―物理変換を行うために、ホストシステム２は、ページアドレスの対応テーブルを保持している。
【００４０】
ドライバは、ファイルＡの格納物理アドレスを得ると、この物理アドレスを、ページインデックスバッファ３２に格納する（ステップＳ４）。図５は、ページインデックスバッファ３２に格納されたファイルＡのインデックスを示している。図に示すように、インデックス０〜インデックス４に対応した記憶領域に、物理アドレスＡ０，Ａ１，Ａ３，Ａ５，Ａ７が格納されている。また、上述したように、この実施の形態においては、論理アドレスと物理アドレスとは１対１に対応しているので、ページインデックスバッファ３２に格納されるアドレスの符号についても、説明を簡単にするために、同じアドレスの符号Ａ０，Ａ１，Ａ３，Ａ５，Ａ７を用いている。
【００４１】
また、ドライバは、ファイルＡのページ数情報をページインデックス転送シーケンサ３４に与える（ステップＳ５）。この場合であれば、ファイルＡは、メモリ４の５つのページ領域に格納されているので、ページ数情報「５」をページインデックス転送シーケンサ３４に与える。ページインデッックス転送シーケンサ３４は、バッファを持っており、ドライバから受け取ったファイルのページ数情報を格納する。
【００４２】
さらに、ドライバは、コマンドテンプレート生成部３３に対して、コマンドのテンプレートを設定する（ステップＳ６）。つまり、メモリ４に対する読み出しコマンドのフォーマットを指定する。具体的には、命令部の開始ビット位置、ビット数、アドレス部の開始ビット位置、ビット数などを設定する。
【００４３】
以上で、読み出しコマンドの出力の準備が終わり、次に、ＤＭＡＣ２２によりＤＭＡ転送コマンドが出力される（ステップＳ７）。このコマンドは、ファイルＡを読み出すコマンドであるが、コマンドには、読み出しコマンドを示す命令語を指定するだけでよい。読み出しアドレスは指定する必要はない。
【００４４】
ＤＡＭＣ２２により出力された読み出しコマンドは、ホストインタフェース３１を介して、コマンドテンプレート生成部３３に渡される。ここで、読み出しコマンドは、コマンドテンプレートによりマスクされて、アドレス部がクリアされる（ステップＳ８）。
【００４５】
図６は、読み出しコマンドの変換内容を示す図である。図中、「Command」は、ＤＭＡＣ２２より出力された読み出しコマンドを示している。このコマンドには、“Command ID”として、読み出し命令（Read）を示すコード（“01234567”（１６進数））が指定されている。また、アドレス部は、特に指定する必要がないため、意味のないコード（“11223344”（１６進数））が含まれている。
【００４６】
図中、「Command Template」は、コマンドテンプレート生成部３３において生成されたコマンドテンプレートである。このコマンドテンプレートは、コマンド中の命令部に全てＦ（１６進数）が指定され、アドレス部には、全て０（１６進数）が指定されている。
【００４７】
そして、ＤＭＡＣ２２から出力された「Command」が、「Command Template」でマスクされることによって、得られるのが、「Masked Command」である。つまり、「Command」と「Command Template」で論理積をとることによって、得られるのが「Masked Command」であり、アドレス部が０にクリアされている。
【００４８】
次に、マスクされた読み出しコマンドがページインデックス転送シーケンサ３４に出力される。ページインデックス転送シーケンサ３４は、ドライバから取得したページ数情報に基づいてページインデックスバッファ３２から、ファイルＡのページインデックスを取得する（ステップＳ９）。ここでは、ドライバからページ数情報「５」を得ているので、ページインデックスバッファ３２に格納されている５つの領域のインデックスを取得する。つまり、物理アドレスＡ０，Ａ１，Ａ３，Ａ５，Ａ７を取得する。
【００４９】
そして、ページインデックス転送シーケンサ３４は、ページインデックスバッファ３２から取得したインデックスを、１アドレスずつ、マスクされた読み出しコマンドのアドレス部にセットし、メモリ４に対して出力するのである（ステップＳ１０）。この例であれば、まず、物理アドレスＡ０をアドレス部にセットした読み出しコマンドをメモリ４に出力し、続いて、物理アドレスＡ１をアドレス部にセットした読み出しコマンドをメモリ４に出力し、順に、物理アドレスＡ３，Ａ５，Ａ７をセットした読み出しコマンドをメモリ４に出力するのである。つまり、ページインデックス転送シーケンサ３４は、ＤＭＡＣ２２から１つのファイル読み出しコマンドを受け取ると、ページインデックスバッファ３２から受け取った全てのページインデックスについて連続的に、読み出しコマンドを出力するのである。
【００５０】
これにより、メモリ４からは、順次、物理アドレスＡ０，Ａ１，Ａ３，Ａ５，Ａ７に格納されていたデータが出力される。このデータは、ホストインタフェース３１を介してホストシステム２に渡されるのである。このようにして、ファイルＡの読み出し処理が終了する。
【００５１】
このように、本実施の形態によれば、ファイルが不連続な論理アドレスに格納されている場合にも、ＤＭＡバースト転送が可能であり、ファイルの読み出し速度を向上させることが可能である。上記の例であれば、１回のＤＭＡバースト転送により、ファイルＡを読み出すことが可能であった。なお、図５では、ファイルＡの全ページの情報がページインデックスバッファ３２に格納されているが、ファイルが格納されているページ数がページインデックスバッファ３２のインデックス数を超える場合には、ドライバは、複数回に分けてページ情報をページインデックスバッファ３２に格納するようにすればよい。たとえば、ページサイズが２Kbyteで、ページインデックスバッファ３２が６４個のインデックスを格納可能であれば、一度に読み出せるデータ量は１２８Kbyteになる。したがって、１Mbyteのファイルを読み出す場合には、128Kbyte単位で８回に分けて処理が行うようにすればよい。
【００５２】
また、ページインデックスの取得と、バッファへの格納は、ファイルシステムやドライバなどのソフトウェアによって処理し、コマンドのアドレス部の置き換えは、ハードウェアであるページインデックス転送シーケンサ３４によって処理するようにした。つまり、ハードウェアかに不向きな高位の機能はファイルシステムの一部として実装し、ハードウェアに適した低位な機能である連続ページ読み出し処理は、シーケンサおよびバッファ（レジスタ）として実装することによって、ソフトウェアとハードウェアがそれぞれ得意とする処理がバランスよく負荷分散し、高機能かつ効率のよいシステムが構築される。
【００５３】
なお、上記の実施の形態においては、ページインデックスを置き換えることにより、ＤＭＡバースト転送を行う場合を例に説明したが、本発明は、ＤＭＡ転送のみならず、ＣＰＵによる転送にも適用可能である。つまり、上記の実施の形態において、ＤＭＡＣ２２を用いることなく、ＣＰＵ２１より読み出しコマンドを発生させ、ＣＰＵ２１より発生した読み出しコマンドのアドレス部を、図６等で示したように、ページインデックスで置き換えるようにしてもよい。
【００５４】
また、本発明は、ファイルが格納されているページの論理アドレスが不連続の場合に、効果を奏するものであるが、上記の実施の形態で示したように、論理アドレスと物理アドレスが１対１に対応している場合には、ファイルは、物理アドレスについても不連続なページに格納されている。したがって、論理、物理いずれのアドレスについても不連続な場合にも適用可能である。
【図面の簡単な説明】
【００５５】
【図１】本発明の実施の形態に係る情報処理装置のブロック図である。
【図２】情報処理装置の機能階層を示す図である。
【図３】本実施の形態に係るファイル読み出し処理のフローチャートである。
【図４】不連続なアドレスにファイルが格納されたメモリを示す図である。
【図５】ページインデックスバッファにページインデックスが格納された状態を示す図である。
【図６】コマンドの置き換えイメージを示す図である。
【図７】連続エリアにファイルが格納されているメモリマップを示す図である。
【図８】不連続エリアにファイルが格納されているメモリマップを示す図である。
【符号の説明】
【００５６】
１      情報処理装置
２      ホストシステム
３      メモリコントローラ
４      メモリ
２１    ＣＰＵ
２２    ＤＭＡＣ
３２    ページインデックスバッファ
３３    コマンドテンプレート生成部
３４    ページインデックス転送シーケンサ
【図１】
2007164303.tif 000003
【図２】
2007164303.tif 000004
【図３】
2007164303.tif 000005
【図４】
2007164303.tif 000006
【図５】
2007164303.tif 000007
【図６】
2007164303.tif 000008
【図７】
2007164303.tif 000009
【図８】
2007164303.tif 000010