(57)【要約】【課題】不良領域の存在するメモリに格納されたファイルに効率良くアクセスするための技術を提供すること、および、メモリがノンパーフェクトメモリであるか否かによってパフォーマンスに差が生じないシステムを提供することを課題とする。【解決手段】メモリ４のファイル管理情報領域４１は、ＦＡＴ４１１と代替情報テーブル４１２を含む。ＦＡＴ４１１には、ファイルＡのチェーン情報が記録され、代替情報テーブル４１２には、不良領域の代替情報が記録される。ファイルの読み出し時、ファイルシステムがＦＡＴ４１１および代替情報テーブル４１２を読み出して、ファイルＡのインデックスを作成し、インデックスバッファに格納する。メモリコントローラでは、読み出しコマンドのアドレス部がインデックスバッファに格納されたインデックスに順次置き換えられ、読み出しコマンドが連続的にメモリ４に転送される。【選択図】図３
2007179286.tif 000002
【特許請求の範囲】
【請求項１】
ファイルが格納される記憶装置であって、
ファイル管理情報を格納する第１領域と、
ファイルの実体データが格納される第２領域と、
を備え、
前記第２領域は、
ファイルの実体データが格納されるデータ領域と、
前記データ領域の中に代替を必要とする領域が存在する場合に、代替的に実体データの格納領域として使用される代替領域と、
を備え、
前記ファイル管理情報は、前記記憶装置にアクセスするファイルシステムによって読み出される情報であり、前記ファイル管理情報には、前記代替を必要とする領域と前記代替領域との対応情報が含まれることを特徴とする記憶装置。
【請求項２】
請求項１に記載の記憶装置において、
前記ファイル管理情報には、前記代替を必要とする領域がないとした場合のファイルのチェーン情報と、前記代替を必要とする領域と前記代替領域との対応情報とが含まれることを特徴とする記憶装置。
【請求項３】
請求項１に記載の記憶装置において、
前記ファイル管理情報には、前記代替を必要とする領域が前記代替領域に代替された結果のファイルのチェーン情報を含むことを特徴とする記憶装置。
【請求項４】
請求項１ないし請求項３のいずれかに記載の記憶装置において、
前記記憶装置は半導体メモリであって、ページ単位で前記代替を必要とする領域が前記代替領域に代替されることを特徴とする記憶装置。
【請求項５】
請求項１ないし請求項４のいずれかに記載の記憶装置に記憶された情報を処理する情報処理装置であって、
前記記憶装置に記憶された情報を処理するホストシステムと、
前記記憶装置に対するアクセスを制御するコントローラと、
を備え、
前記ホストシステムは、
前記記憶装置に記憶された情報を管理するファイルシステム、
を含み、
前記コントローラは、
前記ファイル管理情報から得られたファイルのページインデックスを格納するページインデックスバッファと、
前記ホストシステムから前記ファイルに対する読み出しコマンドを入力した場合、前記読み出しコマンドのアドレス部を前記ページインデックスバッファに格納されているページインデックスに順次置き換えた上で、前記記憶装置に対して連続して読み出しコマンドを転送する変換手段と、
を備えることを特徴とする情報処理装置。
【請求項６】
請求項５に記載の情報処理装置において、
前記ファイルシステムによって前記記憶装置に格納されている前記ファイルのページインデックスが読み出され、ソフトウェア処理によって読み出されたページインデックスが前記ページインデックスバッファに格納され、前記変換手段がハードウェアによって構成されていることを特徴とする情報処理装置。
【請求項７】
請求項５または請求項６に記載の情報処理装置において、
前記ホストシステムは、
ＤＭＡコントローラ、
を含み、
前記ホストシステムから出力される前記ファイルの読み出しコマンドは、前記ＤＭＡコントローラにより制御され、前記変換手段により順次置き換えられるページインデックスについてバースト転送が行われることを特徴とする情報処理装置。
【請求項８】
請求項７に記載の情報処理装置において、
前記記憶装置には代替を必要とする領域が存在することにより、不連続なページアドレスに格納された不連続ファイルが記憶されており、前記ページインデックスバッファには、前記不連続ファイルの不連続なページインデックスが格納され、前記変換手段によって、読み出しコマンドのアドレス部が不連続なページインデックスに置き換えられることにより、前記ＤＭＡコントローラは、１回のバースト転送により前記不連続ファイルを読み出すことを特徴とする情報処理装置。
【請求項９】
請求項１ないし請求項４のいずれかに記載の記憶装置において、
前記代替を必要とする領域は、
前記データ領域の中の不良領域、
を含むことを特徴とする記憶装置。
【請求項１０】
請求項１ないし請求項４のいずれかに記載の記憶装置において、
前記代替を必要とする領域は、
更新が必要とされるデータが記録されている領域、
を含み、
前記代替領域に更新後のデータが記録されることによって、データ更新が行われることを特徴とする記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置に対するファイルの格納技術に関する。
【背景技術】
【０００２】
メモリの大容量化に伴い、メモリの記憶領域の一部に不良領域が存在するメモリ（以降ノンパーフェクトメモリと呼ぶ。）が広く利用されている。
【０００３】
このようなメモリにおいては、一般的にページ単位で不良領域に対する代替処理が必要であり、その情報（代替ページ情報）は、メモリの記憶領域の一部に格納されている。ここで言う代替ページ情報とは、どのページに故障があって、どのページに差し替えるかの情報である。
【０００４】
図７は、記憶領域の一部に代替ページ情報を格納したメモリを示す図である。このメモリは、ファイル管理情報領域９１とデータ領域９２と予備領域９３を備えている。データ領域９２および予備領域９３は、図に示すように、ページ単位のエリアで管理されている。ファイル管理情報領域９１には、ＦＡＴ（File Allocation Table）が記録されている。ＦＡＴは、データ領域９２に格納されたファイルのチェーン情報を管理している。つまり、１つのファイルが、データ領域９２の複数のページ領域に格納されており、ＦＡＴには、ファイルが格納されているページのチェーン情報が記録されるのである。
【０００５】
たとえば、ファイルＸ１が、ページアドレスＡ０からページアドレスＡ５までの６つのページ領域に格納されているとする。この場合、ＦＡＴには、ファイルＸ１の格納情報としてＡ０→Ａ１→Ａ２→Ａ３→Ａ４→Ａ５というページのチェーン情報が記録されるのである。これにより、ファイルシステムは、ＦＡＴを参照することで、ファイルを読み出すことが可能となる。
【０００６】
そして、データ領域９２の各記憶領域には、それぞれ代替情報格納領域９２ａが設けられている。データ領域９２の記憶領域が不良領域である場合には、その不良領域に対応する代替情報格納領域９２ａに予備領域９３のアドレス情報が記録されるのである。これにより、データ領域９２に不良領域が存在した場合にも、代替情報格納領域９２ａを参照することで、ファイルを読み出すことが可能となるのである。図では、たとえば、ページアドレスＡ１の代替情報格納領域９２ａに、ｒｐＡ０と記録されている。したがって、ページアドレスＡ１が不良領域であり、ページアドレスＡ１に格納すべきデータが、予備領域９３のページアドレスｒｐＡ０に格納されていることを示している。
【０００７】
一般的にこのようなメモリを使用する場合、システムは、メモリへのアクセスの際に代替ページ情報をキャッシュに確保するようにしている。そして、ファイルの読み出し時には、まず、ＦＡＴを参照して、ページアドレスのチェーン情報を取得し、次に、キャッシュしている代替ページ情報を参照してページアドレスがヒットするかどうか確認するようにしている。このように、代替ページに格納されたファイルにアクセスする手段をソフトウェア実装することにより、低コストでノンパーフェクトメモリを利用できるようにしている。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、上述したように、代替ページ情報をキャッシュし、ソフトウェア処理により、ページがヒットするかどうかを演算する方法は、ソフトウェア処理のオーバーヘッドが発生するという問題があった。
【０００９】
また、不良部分に対する代替処理に伴いアドレスが不連続になった場合には、システムとして転送効率の良いＤＭＡ転送を有効に利用できないという問題があった。
【００１０】
たとえば、図７で示したファイルＸ１をメモリに格納する場合を考える。まず、メモリがパーフェクトメモリ（不良領域の存在しないメモリ）である場合には、データ領域９２の連続領域Ａ０，Ａ１，Ａ２，Ａ３，Ａ４，Ａ５にファイルＸ１が格納される。したがって、アドレスのインクリメントを行うことにより、１回のＤＭＡ転送により、ファイルＸ１を読み出すことが可能である。
【００１１】
ところが、メモリがノンパーフェクトメモリであって、図に示したように、アドレスＡ１が不良領域であり、アドレスｒｐＡ０に代替されている場合、
（１）Ａ０の読み出し、
（２）ｒｐＡ０の読み出し、
（３）Ａ２，Ａ３，Ａ４，Ａ５の読み出し、
というように、ファイルＸ１を読み出すためには、３回のＤＭＡ転送が必要となる。つまり、連続アドレスに格納されている場合には、アドレスのインクリメントを行うことにより、ＤＭＡバースト転送が可能であるが、アドレスが不連続な場合には、一旦ＤＭＡ転送を終了し、再び割り込みを発生させた後、ＤＭＡ転送を行う必要があるからである。
【００１２】
また、メモリがノンパーフェクトメモリであり、アドレスＡ１がアドレスｒｐＡ０に代替されるだけでなく、さらに、アドレスＡ３がアドレスｒｐＡ１に代替されていれば、ファイルＸ１を読み出すために５回のＤＭＡ転送が必要となる。
【００１３】
開発効率、製造効率の面から、同じプログラムについては、同一のＲＯＭコードを用いることが好ましい。また、管理上の観点からも同一のＲＯＭコードが用いられることが好ましい。しかし、同一のＲＯＭコードを用いてプログラムをメモリに格納した場合、上記の理由から、メモリがパーフェクトメモリである場合とノンパーフェクトメモリである場合とで、パフォーマンスに差が生じるという問題があった。
【００１４】
この他にノンパーフェクトメモリを使用したシステムのパフォーマンスを上げる方法として、代替ページ処理の全てをハードウェアで行う方法が考えられる。しかし、ハードウェア実装は、コストが高くなるという問題がある。
【００１５】
そこで、本発明は前記問題点に鑑み、不良領域の存在するメモリに格納されたファイルに効率良くアクセスするための技術を提供することを目的とする。さらには、メモリがノンパーフェクトメモリであるか否かによってパフォーマンスに差が生じないシステムを提供することを課題とする。
【課題を解決するための手段】
【００１６】
請求項１記載の発明は、ファイルが格納される記憶装置であって、ファイル管理情報を格納する第１領域と、ファイルの実体データが格納される第２領域と、を備え、前記第２領域は、ファイルの実体データが格納されるデータ領域と、前記データ領域の中に代替を必要とする領域が存在する場合に、代替的に実体データの格納領域として使用される代替領域と、を備え、前記ファイル管理情報は、前記記憶装置にアクセスするファイルシステムによって読み出される情報であり、前記ファイル管理情報には、前記代替を必要とする領域と前記代替領域との対応情報が含まれることを特徴とする。
【００１７】
請求項２記載の発明は、請求項１に記載の記憶装置において、前記ファイル管理情報には、前記代替を必要とする領域がないとした場合のファイルのチェーン情報と、前記代替を必要とする領域と前記代替領域との対応情報とが含まれることを特徴とする。
【００１８】
請求項３記載の発明は、請求項１に記載の記憶装置において、前記ファイル管理情報には、前記代替を必要とする領域が前記代替領域に代替された結果のファイルのチェーン情報を含むことを特徴とする。
【００１９】
請求項４記載の発明は、請求項１ないし請求項３のいずれかに記載の記憶装置において、前記記憶装置は半導体メモリであって、ページ単位で前記代替を必要とする領域が前記代替領域に代替されることを特徴とする。
【００２０】
請求項５記載の発明は、請求項１ないし請求項４のいずれかに記載の記憶装置に記憶された情報を処理する情報処理装置であって、前記記憶装置に記憶された情報を処理するホストシステムと、前記記憶装置に対するアクセスを制御するコントローラと、を備え、前記ホストシステムは、前記記憶装置に記憶された情報を管理するファイルシステム、を含み、前記コントローラは、前記ファイル管理情報から得られたファイルのページインデックスを格納するページインデックスバッファと、前記ホストシステムから前記ファイルに対する読み出しコマンドを入力した場合、前記読み出しコマンドのアドレス部を前記ページインデックスバッファに格納されているページインデックスに順次置き換えた上で、前記記憶装置に対して連続して読み出しコマンドを転送する変換手段と、を備えることを特徴とする。
【００２１】
請求項６記載の発明は、請求項５に記載の情報処理装置において、前記ファイルシステムによって前記記憶装置に格納されている前記ファイルのページインデックスが読み出され、ソフトウェア処理によって読み出されたページインデックスが前記ページインデックスバッファに格納され、前記変換手段がハードウェアによって構成されていることを特徴とする。
【００２２】
請求項７記載の発明は、請求項５または請求項６に記載の情報処理装置において、前記ホストシステムは、ＤＭＡコントローラ、を含み、前記ホストシステムから出力される前記ファイルの読み出しコマンドは、前記ＤＭＡコントローラにより制御され、前記変換手段により順次置き換えられるページインデックスについてバースト転送が行われることを特徴とする。
【００２３】
請求項８記載の発明は、請求項７に記載の情報処理装置において、前記記憶装置には代替を必要とする領域が存在することにより、不連続なページアドレスに格納された不連続ファイルが記憶されており、前記ページインデックスバッファには、前記不連続ファイルの不連続なページインデックスが格納され、前記変換手段によって、読み出しコマンドのアドレス部が不連続なページインデックスに置き換えられることにより、前記ＤＭＡコントローラは、１回のバースト転送により前記不連続ファイルを読み出すことを特徴とする。
【００２４】
請求項９記載の発明は、請求項１ないし請求項４のいずれかに記載の記憶装置において、前記代替を必要とする領域は、前記データ領域の中の不良領域、を含むことを特徴とする。
【００２５】
請求項１０記載の発明は、請求項１ないし請求項４のいずれかに記載の記憶装置において、前記代替を必要とする領域は、更新が必要とされるデータが記録されている領域、を含み、前記代替領域に更新後のデータが記録されることによって、データ更新が行われることを特徴とする。
【発明の効果】
【００２６】
本発明の記憶装置は、ファイル管理情報に、代替を必要とする領域と代替領域との対応情報が含まれるので、ファイルシステムが代替情報を取得することが可能である。これにより、ファイルアクセス処理の上位の工程において、代替情報が処理され、効率のよいファイルアクセスが行われる。
【００２７】
また、本発明の情報処理装置は、読み出しコマンドのアドレス部をページインデックスバッファに格納されているページインデックスに順次置き換えた上で、記憶装置に対して連続して読み出しコマンドを転送するので、不良領域の存在により、不連続なエリアに格納されているファイルに対しても効率良くアクセスすることが可能である。
【発明を実施するための最良の形態】
【００２８】
以下、図面を参照しつつ本発明の実施の形態について説明する。図１は、本発明の実施の形態に係る情報処理装置１の機能ブロック図である。情報処理装置１は、メモリ４に格納されているファイルを読み込んで様々な情報処理を行う装置である。本実施の形態において、メモリ４は、フラッシュメモリ等の半導体メモリである。
【００２９】
また、本実施の形態において、情報処理装置１は、メモリ４をＦＡＴファイルシステムによって管理している。メモリ４は、図に示すように、ファイル管理情報領域４１とデータ領域４２と予備領域４３を備えている。
【００３０】
データ領域４２は、複数のページ領域４２１に区画されており、プログラムファイルやデータファイルの実体が格納される。そして、このメモリ４には、ページ単位でデータのアクセスが行われる。また、予備領域４３は、複数のページ領域４３１に区画されて管理されている。本実施の形態において、メモリ４は、その一部の格納領域に不良領域が存在する可能性のあるメモリを対象としている。つまり、データ領域４２に含まれるページ領域の中に不良領域が存在する可能性がある。そして、データ領域４２に不良領域が存在した場合に、その代替領域として利用されるのが予備領域４３である。
【００３１】
ファイル管理情報領域４１には、ＦＡＴ（File Allocation Table）４１１と代替情報テーブル４１２が格納されている。ＦＡＴ４１１は、ファイルの格納情報が記録されている。具体的には、ファイルが格納されているページのチェーン情報が記録されている。代替情報テーブル４１２については、後で詳しく説明する。
【００３２】
情報処理装置１は、たとえば、ゲーム装置である。この場合、メモリ４はゲームカートリッジであり、ゲーム装置である情報処理装置１は、メモリ４に格納されたゲームプログラムを実行する。
【００３３】
情報処理装置１は、ホストシステム２とメモリコントローラ３とを備えている。ホストシステム２は、情報処理装置１の全体制御を行う中枢処理部であり、ＣＰＵ２１、ＤＭＡＣ（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」であり、アドレス部が０にクリアされている。
【００５９】
次に、マスクされた読み出しコマンドがページインデックス転送シーケンサ３４に出力される。ページインデックス転送シーケンサ３４は、ドライバから取得したページ数情報に基づいてページインデックスバッファ３２から、ファイルＡのページインデックスを取得する（ステップＳ９）。ここでは、ドライバからページ数情報「５」を得ているので、ページインデックスバッファ３２に格納されている５つの領域のインデックスを取得する。つまり、物理アドレスＡ０，ｒｐＡ０，Ａ２，Ａ３，Ａ４を取得する。
【００６０】
そして、ページインデックス転送シーケンサ３４は、ページインデックスバッファ３２から取得したインデックスを、１アドレスずつ、マスクされた読み出しコマンドのアドレス部にセットし、メモリ４に対して出力するのである（ステップＳ１０）。この例であれば、まず、物理アドレスＡ０をアドレス部にセットした読み出しコマンドをメモリ４に出力し、続いて、物理アドレスｒｐＡ０をアドレス部にセットした読み出しコマンドをメモリ４に出力し、順に、物理アドレスＡ２，Ａ３，Ａ４をセットした読み出しコマンドをメモリ４に出力するのである。つまり、ページインデックス転送シーケンサ３４は、ＤＭＡＣ２２から１つのファイル読み出しコマンドを受け取ると、ページインデックスバッファ３２から受け取った全てのページインデックスについて連続的に、読み出しコマンドを出力するのである。
【００６１】
これにより、メモリ４からは、順次、物理アドレスＡ０，ｒｐＡ０，Ａ２，Ａ３，Ａ４に格納されていたデータが出力される。このデータは、ホストインタフェース３１を介してホストシステム２に渡されるのである。このようにして、ファイルＡの読み出し処理が終了する。
【００６２】
このように、本実施の形態によれば、ファイルが不連続な論理アドレスに格納されている場合にも、ＤＭＡバースト転送が可能であり、ファイルの読み出し速度を向上させることが可能である。
【００６３】
また、本実施の形態のメモリ４および情報処理装置１を利用することにより、パーフェクトメモリとノンパーフェクトメモリとで同一のＲＯＭコードを利用可能である。つまり、図３で示したＦＡＴ４１１に記録されるデータとデータ領域４２に格納されるデータとを共通のＲＯＭコードとして製作するのである。そして、パーフェクトメモリに格納される場合には、このＲＯＭコードが記録されたメモリが、そのままプログラムメモリとなる。一方、ノンパーフェクトメモリに格納される場合には、この共通のＲＯＭコード部分に、代替情報テーブル４１２と予備領域４３に記録される情報が付加されればよいのである。これにより、たとえばゲームプログラムを格納したメモリの製造工程において、生産性の向上、コストの削減などを図ることが可能である。
【００６４】
なお、上記の実施の形態においては、メモリ４がノンパーフェクトメモリであり、代替情報テーブル４１２には、不良領域に対する代替情報が書き込まれることを説明した。たとえば、情報処理装置１がゲーム機であり、メモリ４が、１回のみデータ書き込み可能なＯＴＰ（One Time Programmable）メモリである場合などが考えられる。つまり、ＯＴＰメモリにゲームプログラムを格納してユーザに供給するという形態である。大容量化の進むＯＴＰメモリには、不良領域が含まれている場合があるが、ゲームプログラムは、共通のＲＯＭコードを製作するだけでよい。この共通のＲＯＭコードを用いて、ノンパーフェクトメモリであるＯＴＰメモリにゲームプログラムを格納してもよいし、他のパーフェクトメモリにゲームプログラムを格納してもよい。
【００６５】
また、この発明の応用例として、代替情報テーブル４１２を利用して、ファイルの更新処理を行うことが可能である。ＯＴＰメモリを利用してプログラムメモリを供給することを説明したが、ＯＴＰメモリには、追記が可能なものがある。この場合、ＦＡＴの情報を修正することはできないため、ファイルの追加は不可能であるが、最初にＦＡＴに記録されたファイルについては、代替情報テーブル４１２および予備領域４３に情報を追記することで、ファイルの内容を実質的に更新することが可能である。
【００６６】
言い換えると、本発明は、メモリに不良領域が存在する場合のみならず、広い意味で代替が必要な領域が存在する場合に、有効な発明である。代替を必要とする領域が、不良領域である場合には、上述したように、ＲＯＭコードの作成時に生産性が向上するなど、メーカー側にとって多くのメリットが存在する。これに対して、代替を必要とする領域が、更新が必要なデータが格納されている領域である場合には、追記可能なＯＴＰメモリにおいて、ファイルの更新が可能となり、ユーザにとって多くのメリットがある。
【００６７】
また、上記の実施の形態において、ページインデックスの取得と、バッファへの格納は、ファイルシステムやドライバなどのソフトウェアによって処理し、コマンドのアドレス部の置き換えは、ハードウェアであるページインデックス転送シーケンサ３４によって処理するようにした。つまり、ハードウェアかに不向きな高位の機能はファイルシステムの一部として実装し、ハードウェアに適した低位な機能である連続ページ読み出し処理は、シーケンサおよびバッファ（レジスタ）として実装することによって、ソフトウェアとハードウェアがそれぞれ得意とする処理がバランスよく負荷分散し、高機能かつ効率のよいシステムが構築される。
【００６８】
なお、上記の実施の形態においては、ページインデックスを置き換えることにより、ＤＭＡバースト転送を行う場合を例に説明したが、本発明は、ＤＭＡ転送のみならず、ＣＰＵによる転送にも適用可能である。つまり、上記の実施の形態において、ＤＭＡＣ２２を用いることなく、ＣＰＵ２１より読み出しコマンドを発生させ、ＣＰＵ２１より発生した読み出しコマンドのアドレス部を、図６等で示したように、ページインデックスで置き換えるようにしてもよい。
【００６９】
また、本発明は、ファイルが格納されているページの論理アドレスが不連続の場合に、効果を奏するものであるが、上記の実施の形態で示したように、論理アドレスと物理アドレスが１対１に対応している場合には、ファイルは、物理アドレスについても不連続なページに格納されている。したがって、論理、物理いずれのアドレスについても不連続な場合にも適用可能である。
【図面の簡単な説明】
【００７０】
【図１】本発明の実施の形態に係る情報処理装置のブロック図である。
【図２】情報処理装置の機能階層を示す図である。
【図３】不良領域の存在するメモリにファイルが格納された状態を示す図である。
【図４】本実施の形態に係るファイル読み出し処理のフローチャートである。
【図５】ページインデックスバッファにページインデックスが格納された状態を示す図である。
【図６】コマンドの置き換えイメージを示す図である。
【図７】記憶領域の一部に代替情報を記録する従来のメモリを示す図である。
【符号の説明】
【００７１】
１      情報処理装置
２      ホストシステム
３      メモリコントローラ
４      メモリ
４１    ファイル管理情報領域
４２    データ領域
４３    予備領域
４１１  ＦＡＴ
４１２  代替情報テーブル
【図１】
2007179286.tif 000003
【図２】
2007179286.tif 000004
【図３】
2007179286.tif 000005
【図４】
2007179286.tif 000006
【図５】
2007179286.tif 000007
【図６】
2007179286.tif 000008
【図７】
2007179286.tif 000009