(57)【要約】【課題】書き換え不可能なメモリに格納されたプログラムやデータに対して修正、改良を加えるための技術を提供することを課題とする。【解決手段】ＯＴＰメモリ２０には、当初、ファイルＡが記録されている。ファイルＡに修正が必要となった時点で修正ファイルＢが追記される。修正ファイルＢの格納情報もＦＡＴ領域、ディレクトリエントリに追記される。アプリケーションプログラム３２がファイルＡに対する読み出し要求を行うと（Ｓ１）、ファイルシステム３１がＦＡＴ領域およびディレクトリエントリを参照して修正ファイルＢの存在を確認し、データ領域からファイルＡと修正ファイルＢを読み出す（Ｓ５）。そして、修正ファイルＢに従ってファイルＡを修正し（Ｓ６）、修正したファイルをＲＡＭ１１２に格納する（Ｓ７）。アプリケーションプログラム３２はＲＡＭ１１２に格納されたファイルにアクセスする（Ｓ８）。【選択図】図５
2007257399.tif 000002
【特許請求の範囲】
【請求項１】
記憶領域に対して１回のみデータ書き込み可能な追記型メモリを利用する情報処理装置であって、
プログラムを実行する制御部と、
ファイルシステムと、
を備え、
前記追記型メモリは、
データの実体が格納されるデータ記憶領域と、
前記データ記憶領域に格納されているファイルの格納情報が記録されるファイル管理情報記憶領域と、
を備え、
前記データ記憶領域に第１ファイルが記録されるとともに前記ファイル管理情報記憶領域に前記第１ファイルの格納情報が記録された後、前記第１ファイルに対する修正の必要性が生じたところで、前記データ記憶領域に前記第１ファイルに対する修正情報が記録された第２ファイルが追記されるとともに前記ファイル管理情報記憶領域に前記第２ファイルの格納情報が追記され、
前記ファイルシステムは、
前記プログラムにより前記第１ファイルに対するアクセス要求が発生すると、前記ファイル管理情報記憶領域を参照して前記第１ファイルとともに前記第２ファイルを読み出し、前記第２ファイルに基づいて前記第１ファイルを修正する修正手段、
を備え、
前記プログラムは前記ファイルシステムによって修正されたファイルにアクセスすることを特徴とする情報処理装置。
【請求項２】
記憶領域に対して１回のみデータ書き込み可能な追記型メモリを利用する情報処理装置であって、
プログラムを実行する制御部と、
ファイルシステムと、
を備え、
前記追記型メモリは、
データの実体が格納されるデータ記憶領域と、
前記データ記憶領域に格納されているファイルの格納情報が記録されるファイル管理情報記憶領域と、
前記データ記憶領域内の所定の領域であって修正用データの格納情報が記録される修正情報記憶領域と、
を備え、
前記データ記憶領域に第１ファイルが記録されるとともに前記ファイル管理情報記憶領域に前記第１ファイルの格納情報が記録された後、前記第１ファイルに対する修正の必要性が生じたところで、前記データ記憶領域に前記第１ファイルに対する修正情報が記録された第２ファイルが追記されるとともに前記修正情報記憶領域に前記第２ファイルの格納情報が追記され、
前記ファイルシステムは、
前記プログラムにより前記第１ファイルに対するアクセス要求が発生すると、前記ファイル管理情報記憶領域および前記修正情報記憶領域を参照して前記第１ファイルとともに前記第２ファイルを読み出し、前記第２ファイルに基づいて前記第１ファイルを修正する修正手段、
を備え、
前記プログラムは前記ファイルシステムによって修正されたファイルにアクセスすることを特徴とする情報処理装置。
【請求項３】
記憶領域に対して１回のみデータ書き込み可能な追記型メモリを利用する情報処理装置であって、
プログラムを実行する制御部と、
ファイルシステムと、
を備え、
前記追記型メモリは、
データの実体が格納されるデータ記憶領域と、
前記データ記憶領域に格納されているファイルの格納情報が記録されるファイル管理情報記憶領域と、
前記データ記憶領域内の所定の領域であって修正用のデータが格納される修正データ記憶領域と、
を備え、
前記データ記憶領域に第１ファイルが記録されるとともに前記ファイル管理情報記憶領域に前記第１ファイルの格納情報が記録された後、前記第１ファイルに対する修正の必要性が生じたところで、前記修正データ記憶領域に前記第１ファイルに対する修正情報が記録された第２ファイルが追記され、
前記ファイルシステムは、
前記プログラムにより前記第１ファイルに対するアクセス要求が発生すると、前記ファイル管理情報記憶領域および前記修正データ記憶領域を参照して前記第１ファイルとともに前記第２ファイルを読み出し、前記第２ファイルに基づいて前記第１ファイルを修正する修正手段、
を備え、
前記プログラムは前記ファイルシステムによって修正されたファイルにアクセスすることを特徴とする情報処理装置。
【請求項４】
請求項１ないし請求項３のいずれかに記載の情報処理装置において、
前記ファイルシステムは前記プログラムに対して前記第２ファイルの情報を公開しないことを特徴とする情報処理装置。
【請求項５】
請求項１ないし請求項４のいずれかに記載の情報処理装置において、
前記第２ファイルが前記第１ファイルの差し替えファイルである場合には、前記修正手段は前記第１ファイルを修正することなく前記第２ファイルを前記第１ファイルに置き換えることを特徴とする情報処理装置。
【請求項６】
記憶領域に対して１回のみデータ書き込み可能な追記型メモリを利用する方法であって、前記追記型メモリには修正が必要な第１ファイルが格納されており、
前記第１ファイルに対する修正情報が記録された第２ファイルを前記追記型メモリのデータ記憶領域に追記する工程と、
前記追記型メモリのファイル管理情報記憶領域に前記第２ファイルの格納情報を追記する工程と、
プログラムから前記第１ファイルに対するアクセス要求が発生したとき、前記ファイル管理情報記憶領域を参照することで前記第２ファイルの存在を確認し、前記第１ファイルと合わせて前記第２ファイルを読み出す工程と、
読み出した前記第２ファイルに基づいて前記第１ファイルを修正する修正工程と、
前記プログラムが修正後のファイルにアクセスする工程と、
を備えることを特徴とする追記型メモリ利用方法。
【請求項７】
記憶領域に対して１回のみデータ書き込み可能な追記型メモリを利用する方法であって、前記追記型メモリには修正が必要な第１ファイルが格納されており、
前記第１ファイルに対する修正情報が記録された第２ファイルを前記追記型メモリのデータ記憶領域に追記する工程と、
前記追記型メモリのデータ記憶領域内に予約されている修正情報記憶領域に前記第２ファイルの格納情報を追記する工程と、
プログラムから前記第１ファイルに対するアクセス要求が発生したとき、前記修正情報記憶領域を参照することで前記第２ファイルの存在を確認し、前記第１ファイルと合わせて前記第２ファイルを読み出す工程と、
読み出した前記第２ファイルに基づいて前記第１ファイルを修正する修正工程と、
前記プログラムが修正後のファイルにアクセスする工程と、
を備えることを特徴とする追記型メモリ利用方法。
【請求項８】
記憶領域に対して１回のみデータ書き込み可能な追記型メモリを利用する方法であって、前記追記型メモリには修正が必要な第１ファイルが格納されており、
前記第１ファイルに対する修正情報が記録された第２ファイルを前記追記型メモリのデータ記憶領域内に予約されている修正データ記憶領域に追記する工程と、
プログラムから前記第１ファイルに対するアクセス要求が発生したとき、前記修正データ記憶領域を参照することで前記第２ファイルの存在を確認し、前記第１ファイルと合わせて前記第２ファイルを読み出す工程と、
読み出した前記第２ファイルに基づいて前記第１ファイルを修正する修正工程と、
前記プログラムが修正後のファイルにアクセスする工程と、
を備えることを特徴とする追記型メモリ利用方法。
【請求項９】
請求項６ないし請求項８のいずれかに記載の追記型メモリ利用方法において、
前記第２ファイルが前記第１ファイルの差し替えファイルである場合には、前記修正工程は前記第１ファイルを修正することなく前記第２ファイルを前記第１ファイルに置き換えることを特徴とする追記型メモリ利用方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶領域に対して１回のみデータ書き込み可能な追記型メモリを利用する技術に関する。
【背景技術】
【０００２】
電子機器の制御プログラム、設定データなどを格納する媒体としてマスクＲＯＭが用いられている。また、ゲーム装置に装着するゲームカートリッジにもゲームプログラムが格納されたマスクＲＯＭが用いられている。マスクＲＯＭに対しては工場でプログラムやデータが記録されユーザに供給される。マスクＲＯＭに対して情報処理装置はデータを読み込むことしかできないが、書き換え可能なメモリに比べて製造コストが低いというメリットがある。また、誤ってデータが消去されないというメリットもある。このような理由から、従来から組み込みシステムを内蔵した電子機器やゲームカートリッジなどには、マスクＲＯＭが利用されている。
【０００３】
また、ユーザによって記憶領域に対して１回のみデータ書き込み可能なタイプのメモリが存在する。一般には、ＯＴＰ（One Time Programmable）メモリと呼ばれている。ＯＴＰメモリに格納されているプログラムやデータもマスクＲＯＭと同様に消去されないという特徴がある。最近では大容量且つ安価なＯＴＰメモリが製造可能となっており、書き換え可能なフラッシュメモリなどと比較してコストを低くできるというメリットがある。また、マスクＲＯＭに比べてＯＴＰメモリによるプログラムの提供は短ＴＡＴを実現できる点でメリットがある。このような背景から、最近ではマスクＲＯＭに代えてＯＴＰメモリに対してプログラムやデータを格納してユーザに提供するという方法もとられている。
【０００４】
【特許文献１】特開平３−１８６９２７号公報
【特許文献２】特開２００１−１１７７６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述したように、データの提供にマスクＲＯＭが用いられることにより、組み込み機器のシステムやゲームカートリッジを安価に提供できる。しかし、マスクＲＯＭに格納されているプログラムやデータに修正を加えることができないというデメリットがある。このため、基本的には、マスクＲＯＭに格納されるプログラムは修正が必要とならないようテストを重ねるよりほかない。しかし、完全にバグを無くすということは不可能であり、実際にバグが発見された場合にはマスクＲＯＭ自体を交換するなどの方法がとられる。
【０００６】
マスクＲＯＭを利用したプログラムの提供にはこのような問題が内在しているが、一方でプログラムの複雑化に伴い、リリース後の製品に対して問題点の修正、機能追加を行いたいという要請が高くなっている。
【０００７】
マスクＲＯＭに対するプログラム修正技術も存在するが、特殊なハードウェアが必要であるとか、アセンブラの知識が必要であるなど障壁が高かった。上記特許文献１では、マスクＲＯＭとは別のＥＥＰＲＯＭを用意し、ＥＥＰＲＯＭにプログラムコードの修正モジュールとプログラムの修正アドレスとを格納するようにしている。そして、プログラムカウンタが修正アドレスに一致したところで、ＥＥＰＲＯＭに格納されていた修正モジュールを実行するようにしている。この方法では、マスクＲＯＭとは別に修正モジュールを格納するための書き換え可能なメモリが必要である。また、プログラムカウンタを操作する方法であるので、プログラムコードの修正は可能であるが、データの修正を行うことができない。
【０００８】
上記特許文献２においても、マスクＲＯＭとは別に差し替えモジュールを格納するフラッシュメモリが用意されている。ＣＰＵがマスクＲＯＭに格納されたプログラムを実行する際には、バグが発見されたモジュールを迂回し、フラッシュメモリに格納されている差し替えモジュールを読み込むようにしている。この方法も、やはり、差し替えモジュールを格納するためのフラッシュメモリを別に用意する必要があり、コスト高となる。また、装置構成を増大させる要因ともなる。また、バグが発生するか否かに関わらず、全ての組み込みシステムのチップやゲームカートリッジに予め余分なフラッシュメモリを搭載する必要がある。
【０００９】
そこで、本発明は前記問題点に鑑み、コスト高、装置構成の増大化という問題を引き起こすことなく、書き換え不可能なメモリに格納されたプログラムやデータに対して修正を加えるための技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するため、請求項１記載の発明は、記憶領域に対して１回のみデータ書き込み可能な追記型メモリを利用する情報処理装置であって、プログラムを実行する制御部と、ファイルシステムと、を備え、前記追記型メモリは、データの実体が格納されるデータ記憶領域と、前記データ記憶領域に格納されているファイルの格納情報が記録されるファイル管理情報記憶領域と、を備え、前記データ記憶領域に第１ファイルが記録されるとともに前記ファイル管理情報記憶領域に前記第１ファイルの格納情報が記録された後、前記第１ファイルに対する修正の必要性が生じたところで、前記データ記憶領域に前記第１ファイルに対する修正情報が記録された第２ファイルが追記されるとともに前記ファイル管理情報記憶領域に前記第２ファイルの格納情報が追記され、前記ファイルシステムは、前記プログラムにより前記第１ファイルに対するアクセス要求が発生すると、前記ファイル管理情報記憶領域を参照して前記第１ファイルとともに前記第２ファイルを読み出し、前記第２ファイルに基づいて前記第１ファイルを修正する修正手段、を備え、前記プログラムは前記ファイルシステムによって修正されたファイルにアクセスすることを特徴とする。
【００１１】
請求項２記載の発明は、記憶領域に対して１回のみデータ書き込み可能な追記型メモリを利用する情報処理装置であって、プログラムを実行する制御部と、ファイルシステムと、を備え、前記追記型メモリは、データの実体が格納されるデータ記憶領域と、前記データ記憶領域に格納されているファイルの格納情報が記録されるファイル管理情報記憶領域と、前記データ記憶領域内の所定の領域であって修正用データの格納情報が記録される修正情報記憶領域と、を備え、前記データ記憶領域に第１ファイルが記録されるとともに前記ファイル管理情報記憶領域に前記第１ファイルの格納情報が記録された後、前記第１ファイルに対する修正の必要性が生じたところで、前記データ記憶領域に前記第１ファイルに対する修正情報が記録された第２ファイルが追記されるとともに前記修正情報記憶領域に前記第２ファイルの格納情報が追記され、前記ファイルシステムは、前記プログラムにより前記第１ファイルに対するアクセス要求が発生すると、前記ファイル管理情報記憶領域および前記修正情報記憶領域を参照して前記第１ファイルとともに前記第２ファイルを読み出し、前記第２ファイルに基づいて前記第１ファイルを修正する修正手段、を備え、前記プログラムは前記ファイルシステムによって修正されたファイルにアクセスすることを特徴とする。
【００１２】
請求項３記載の発明は、記憶領域に対して１回のみデータ書き込み可能な追記型メモリを利用する情報処理装置であって、プログラムを実行する制御部と、ファイルシステムと、を備え、前記追記型メモリは、データの実体が格納されるデータ記憶領域と、前記データ記憶領域に格納されているファイルの格納情報が記録されるファイル管理情報記憶領域と、前記データ記憶領域内の所定の領域であって修正用のデータが格納される修正データ記憶領域と、を備え、前記データ記憶領域に第１ファイルが記録されるとともに前記ファイル管理情報記憶領域に前記第１ファイルの格納情報が記録された後、前記第１ファイルに対する修正の必要性が生じたところで、前記修正データ記憶領域に前記第１ファイルに対する修正情報が記録された第２ファイルが追記され、前記ファイルシステムは、前記プログラムにより前記第１ファイルに対するアクセス要求が発生すると、前記ファイル管理情報記憶領域および前記修正データ記憶領域を参照して前記第１ファイルとともに前記第２ファイルを読み出し、前記第２ファイルに基づいて前記第１ファイルを修正する修正手段、を備え、前記プログラムは前記ファイルシステムによって修正されたファイルにアクセスすることを特徴とする。
【００１３】
請求項４記載の発明は、請求項１ないし請求項３のいずれかに記載の情報処理装置において、前記ファイルシステムは前記プログラムに対して前記第２ファイルの情報を公開しないことを特徴とする。
【００１４】
請求項５記載の発明は、請求項１ないし請求項４のいずれかに記載の情報処理装置において、前記第２ファイルが前記第１ファイルの差し替えファイルである場合には、前記修正手段は前記第１ファイルを修正することなく前記第２ファイルを前記第１ファイルに置き換えることを特徴とする。
【００１５】
請求項６記載の発明は、記憶領域に対して１回のみデータ書き込み可能な追記型メモリを利用する方法であって、前記追記型メモリには修正が必要な第１ファイルが格納されており、前記第１ファイルに対する修正情報が記録された第２ファイルを前記追記型メモリのデータ記憶領域に追記する工程と、前記追記型メモリのファイル管理情報記憶領域に前記第２ファイルの格納情報を追記する工程と、プログラムから前記第１ファイルに対するアクセス要求が発生したとき、前記ファイル管理情報記憶領域を参照することで前記第２ファイルの存在を確認し、前記第１ファイルと合わせて前記第２ファイルを読み出す工程と、読み出した前記第２ファイルに基づいて前記第１ファイルを修正する修正工程と、前記プログラムが修正後のファイルにアクセスする工程と、を備えることを特徴とする。
【００１６】
請求項７記載の発明は、記憶領域に対して１回のみデータ書き込み可能な追記型メモリを利用する方法であって、前記追記型メモリには修正が必要な第１ファイルが格納されており、前記第１ファイルに対する修正情報が記録された第２ファイルを前記追記型メモリのデータ記憶領域に追記する工程と、前記追記型メモリのデータ記憶領域内に予約されている修正情報記憶領域に前記第２ファイルの格納情報を追記する工程と、プログラムから前記第１ファイルに対するアクセス要求が発生したとき、前記修正情報記憶領域を参照することで前記第２ファイルの存在を確認し、前記第１ファイルと合わせて前記第２ファイルを読み出す工程と、読み出した前記第２ファイルに基づいて前記第１ファイルを修正する修正工程と、前記プログラムが修正後のファイルにアクセスする工程と、を備えることを特徴とする。
【００１７】
請求項８記載の発明は、記憶領域に対して１回のみデータ書き込み可能な追記型メモリを利用する方法であって、前記追記型メモリには修正が必要な第１ファイルが格納されており、前記第１ファイルに対する修正情報が記録された第２ファイルを前記追記型メモリのデータ記憶領域内に予約されている修正データ記憶領域に追記する工程と、プログラムから前記第１ファイルに対するアクセス要求が発生したとき、前記修正データ記憶領域を参照することで前記第２ファイルの存在を確認し、前記第１ファイルと合わせて前記第２ファイルを読み出す工程と、読み出した前記第２ファイルに基づいて前記第１ファイルを修正する修正工程と、前記プログラムが修正後のファイルにアクセスする工程と、を備えることを特徴とする。
【００１８】
請求項９記載の発明は、請求項６ないし請求項８のいずれかに記載の追記型メモリ利用方法において、前記第２ファイルが前記第１ファイルの差し替えファイルである場合には、前記修正工程は前記第１ファイルを修正することなく前記第２ファイルを前記第１ファイルに置き換えることを特徴とする。
【発明の効果】
【００１９】
本発明の情報処理装置は、プログラムにより追記型メモリに格納された第１ファイルに対するアクセス要求が発生すると、ファイルシステムがファイル管理情報記憶領域を参照して第１ファイルを読み出し、さらに、追記型メモリに追記された第２ファイルを読み出す。そして、第２ファイルに基づいて第１ファイルを修正する。
【００２０】
これにより、１回のみデータ書き込み可能な追記型メモリにプログラムやデータを格納して供給した後、それらプログラムやデータに修正や改良を加えることが可能である。また、第２ファイルは追記型メモリの記憶領域に追記されるので、修正データ格納用の別のメモリを用意する必要がない。したがって、装置構成を増大させることや、コストを高くすることなくプログラムやデータの修正を行うことが可能である。
【００２１】
また、本発明の情報処理装置は、特殊なハードウェアを利用せずファイルシステムを利用して第１ファイルに対する修正を加えるものであり、開発コストを低く抑えることが可能である。また、プログラムカウンタを操作するような方法ではないので、プログラムのみならずデータに対しても修正、改良を加えることが可能である。
【００２２】
さらに、プログラムは、第２ファイルの存在を意識することなく第１ファイルにアクセスすればよいので、プログラムの開発を複雑化させることがない。
【発明を実施するための最良の形態】
【００２３】
｛第１の実施の形態｝
以下、図面を参照しつつ本発明の実施の形態について説明する。図１は、実施の形態に係る情報処理装置１０のブロック図である。情報処理装置１０は、制御部１１、メモリ１２、メモリインタフェース１３、操作部１４、モニタ１５、メモリスロット１６を備えている。制御部１１は、ＣＰＵ１１１、ＲＡＭ１１２を備え、プログラムを実行することで、情報処理装置１０の全体制御を行う。メモリ１２は、たとえばフラッシュメモリであり、ファイルシステム３１やその他のプログラムやデータが格納されている。
【００２４】
メモリスロット１６には、ＯＴＰ（One Time Programmable）メモリ２０が装着されている。制御部１１は、メモリインタフェース１３を介してＯＴＰメモリ２０にアクセスする。予め製造工程でデータが作り込まれるマスクＲＯＭと異なり、ＯＴＰメモリはユーザが電気的にデータを書き込むことが可能なＰＲＯＭであるが、各記憶領域には１回のみデータを書き込むことが可能である。本実施の形態におけるＯＴＰメモリ２０は、追記型のＯＴＰメモリである。つまり、ＯＴＰメモリ２０の記憶領域に対してユーザは１回のみデータを書き込むことが可能であるが、空き領域に対してはデータを追記していくことが可能である。言い換えると、ＯＴＰメモリ２０に書き込まれたプログラムやデータを修正したり消去したりすることはできないが、空き領域に対しては別のプログラムやデータを追記していくことが可能である。
【００２５】
また、本実施の形態においては、ＯＴＰメモリ２０の記憶領域はファイルシステム３１によって管理される。本実施の形態においてファイルシステム３１はＦＡＴ（File allocation tables）ファイルシステムを採用している。図２は、ＯＴＰメモリ２０のメモリマップを示す図である。ＯＴＰメモリ２０の記憶領域はＦＡＴ領域２０Ｆ、ルートディレクトリエントリ２０Ｅ、データ領域２０Ｄ等に区分されて管理されている。データ領域２０Ｄは、プログラムファイルやデータファイルなどの実体が格納される領域である。ルートディレクトリエントリ２０Ｅにはルートディレクトリに存在するファイルのファイル名や先頭クラスタ位置の情報などが記録される。ＦＡＴ領域２０Ｆには、データ領域２０Ｄに格納されているプログラムファイルやデータファイルなどのクラスタチェーン情報が記録されている。
【００２６】
なお、サブディレクトリに格納されているファイルのファイル名や先頭クラスタ位置情報は、データ領域２０Ｄ内のディレクトリエントリ（図示省略）に記録されているが、構造はルートディレクトリエントリと同様であるので説明を省略する。以下において、適宜、ルートディレクトリエントリ２０Ｅとサブディレクトリのディレクトリエントリとを総称してディレクトリエントリとして説明する。
【００２７】
このように、ＯＴＰメモリ２０内に格納されているファイルの格納情報は、ＦＡＴ領域２０Ｆおよびディレクトリエントリに記録されている。つまり、本発明におけるファイル管理情報記憶領域とは、ＦＡＴ領域２０Ｆのみならずディレクトリエントリの記憶領域も含んでいる。
【００２８】
この実施の形態においては、ＯＴＰメモリ２０のデータ領域２０Ｄには、ファイルＡ（file1.abc）が格納されている。このファイルＡは、プログラムファイルであってもよいし、データファイルであってもよい。つまり、ここで言うファイルとは、プログラムコード及びプログラム実行に必要なデータが格納されているデータ構造全般を示している。
【００２９】
情報処理装置１０は、ＯＴＰメモリ２０に格納されているプログラムを実行することで動作する装置である。つまり、ＯＴＰメモリ２０に格納されているプログラムファイルやデータファイルを読み込んでＣＰＵ１１１、ＲＡＭ１１２などのハードウェア資源を利用して処理を実行する装置である。たとえば、情報処理装置１０がゲーム装置であれば、ＯＴＰメモリ２０はゲームカートリッジに対応している。つまり、ゲームカートリッジであるＯＴＰメモリ２０にファイルＡや、その他プログラムファイルやデータファイルが格納されて供給されるのである。ユーザは、このＯＴＰメモリ２０をゲーム装置である情報処理装置１０に装着することでゲームを楽しむことができる。この場合、操作部１４は、ゲームコントローラに該当し、モニタ１５にゲームの映像が表示される。
【００３０】
そして、このファイルＡには修正すべき点が存在している。たとえば、ファイルＡがプログラムファイルであれば、プログラムにバグが見つかった場合やプログラムを改良したい場合などである。あるいは、ファイルＡがデータファイルであれば、プログラムの設定情報を修正したい場合などである。
【００３１】
そこで、データ領域２０Ｄには、このファイルＡを修正するための修正情報が記録された修正ファイルＢ（file1.p00）が追記されているのである。つまり、出荷当初においては記録されていなかった修正ファイルＢが、ファイルＡの修正が必要となった時点で追記されているのである。たとえば、ユーザがファイルＡが記録されているＯＴＰメモリ２０を店頭などに持っていくと、店頭に設置された記録装置（アップデート装置）が、修正ファイルＢをデータ領域２０Ｄに追記するのである。また、ＦＡＴ領域２０Ｆおよびディレクトリエントリには、修正ファイルＢの格納情報が追記される。具体的には、修正ファイルＢのファイル名や格納クラスタの位置情報が追記される。
【００３２】
つまり、ＯＴＰメモリ２０が出荷される時点では、データ領域２０ＤにファイルＡが記録され、ＦＡＴ領域２０ＦおよびディレクトリエントリにはファイルＡの格納情報が記録される。たとえば、図３に示すように、ファイルＡ（file1.abc）は、ルートディレクトリに記録されている。そして、ファイルＡに修正を加える必要性が生じた場合に、データ領域２０Ｄに修正ファイルＢを追記し、ＦＡＴ領域２０ＦおよびディレクトリエントリにファイルＢの格納情報を追記するのである。たとえば、図４に示すように、ルートディレクトリの下に「Ｐａｔｃｈ」ディレクトリを作成し、そのディレクトリ下に修正ファイルＢを格納する。このように、本実施の形態においては、ＯＴＰメモリ２０は追記型のメモリであるので、修正ファイルＢとその格納情報を後から追記することが可能である。
【００３３】
次に、図５および図６を参照しながら、上記のような形式でファイルＡおよび修正ファイルＢが格納されたＯＴＰメモリ２０に対して情報処理装置１０がアクセスする方法について説明する。図５は、ファイルの読み出し方法のイメージ図であり、図６は当該処理のフローチャートである。図５におけるＳ１、Ｓ５などの符号は、図６のフローチャートにおけるステップに対応している。
【００３４】
図５に示すように、情報処理装置１０では、制御部１１がファイルシステム３１およびアプリケーションプログラム３２を実行する。アプリケーションプログラム３２は、ファイルシステム３１を利用してＯＴＰメモリ２０に格納されたプログラムファイルやデータファイルにアクセスする。アプリケーションプログラム３２は、ＯＴＰメモリ２０から読み出されたプログラムである。あるいは、アプリケーションプログラム３２は、メモリ１２から読み出されたプログラムであってもよい。このアプリケーションプログラム３２は、ＯＴＰメモリ２０に格納されているファイルＡを読み出して利用するプログラムである。
【００３５】
図６のフローチャートに沿って説明する。まず、アプリケーションプログラム３２が、ファイルＡ（file1.abc）の読み出し要求をファイルシステム３１に対して実行する（ステップＳ１）。
【００３６】
ファイルシステム３１は、読み出し要求を受けるとファイルＡに対する修正ファイルが存在するかどうかをチェックする（ステップＳ２）。ファイルシステム３１が修正ファイルの存在の有無を判断するため、本実施の形態においてはファイル名（拡張子を除く）を共通化させるようにしている。図４に示すように、ファイルＡのファイル名がfile1.abcであるのに対して、修正ファイルＢのファイル名はfile1.p00としている。つまり、拡張子を除いたファイル名を共通化させているので、ファイルシステム３１はディレクトリエントリを参照し、ファイルＡと同一のファイル名のファイルを検索することで、修正ファイルの存在を確認することが可能である。図４で例示した実施の形態の例であれば、修正ファイルは「Ｐａｔｃｈ」ディレクトリに格納されるルールとなっている。したがって、ファイルシステム３１は「Ｐａｔｃｈ」ディレクトリの中で、ファイルＡの拡張子を除いたファイル名(file1)を検索するのである。
【００３７】
そして、修正ファイルが存在しない場合（ステップＳ３でＮＯ）には、ファイルＡを読み出す（ステップＳ４）。修正ファイルが存在しないので、ファイルシステム３１は通常処理としてファイルＡを読み出すのである。
【００３８】
修正ファイルが存在する場合（ステップＳ３でＹＥＳ）、ファイルシステム３１は、ＯＴＰメモリ２０からファイルＡと修正ファイルＢの両方のファイルを読み出す（ステップＳ５）。
【００３９】
次に、ファイルシステム３１は、修正ファイルＢに記録されている修正情報に基づいてファイルＡの内容を修正する（ステップＳ６）。つまり、ファイルシステム３１は、修正ファイルに記録されている修正情報の内容を解読し、修正情報に従って被修正ファイルを修正する機能を備えている。修正ファイルに記録される修正情報のフォーマットは特に限定されるものではない。そのフォーマットにファイルシステム３１が対応していればよい。一般的には、被修正ファイルに対する差分情報を修正情報とすればよい。
【００４０】
そして、ファイルシステム３１は、修正後のファイルＡをＲＡＭ１１２に格納するのである（ステップＳ７）。このようにして、アプリケーションプログラム３２は、ＲＡＭ１１２に格納された修正後のファイルＡにアクセスすることができるのである。
【００４１】
このように、本実施の形態の情報処理装置１０およびＯＴＰメモリ２０を利用することで、ＯＴＰメモリ２０に格納されたファイルＡに対する修正を行うことができる。そして、修正情報が記録された修正ファイルＢは、ファイルＡと同じＯＴＰメモリ２０の記憶領域に格納される。したがって、修正ファイルを格納するために別のフラッシュメモリ等書き換え可能なメモリを用意する必要はない。つまり、情報処理装置１０やＯＴＰメモリ２０のパッケージに修正ファイル格納用の別のメモリを用意する必要はないので、装置やパッケージの部品点数を増大させることなく、またコストを高くすることなく、ファイルの修正を実現するのである。また、本実施の形態によれば、プログラムファイルのみならずデータファイルについても修正を加えることが可能である。
【００４２】
従来、マスクＲＯＭに格納されたプログラムにパッチを適用するには、アセンブラ等の特殊な知識が必要であった。また、データについては修正ができないといった適応範囲の狭い修正方法しかなかったが、本発明であれば容易にリリース後の製品に格納されたプログラムコードやデータに対してパッチを適応させることが可能である。
【００４３】
また、本発明の方法であれば、修正ファイルＢはデータ領域２０Ｄの空き領域であれば、どの領域に書き込んでもよい。ＯＴＰメモリ２０が、誤りのあるメモリ（誤り訂正の必要なメモリ）である場合がある。誤りのあるメモリとは、１ビット誤り、複数ビット誤り（ワード誤り）、ビットライン誤り、ブロック誤りなどを含むメモリである。記録されている情報に誤りがある場合と、記録されている情報は正しいが読み出し時に正常に読み出されないという場合がある。ＯＴＰメモリ２０が、このような誤りのあるメモリである場合、不良領域を別の領域で代替使用する場合があり、そもそもファイルＡを含め、初期状態（出荷時）のファイル配置が固体間で異なることになる。その場合でも、本発明の方法であれば、修正ファイルＢを空き領域のどこに格納してもよいので、誤りがあるメモリにも対応可能である。
【００４４】
また、修正ファイルは被修正ファイルとの差分情報さえ記録されていればよい。したがって、修正ファイルのサイズを最小に抑えることが可能である。
【００４５】
さらに、ファイルシステム３１が、ファイルＡと修正ファイルＢからファイルＡを修正してアプリケーションプログラム３２に渡すので、アプリケーションプログラム３２は、修正ファイルＢの存在を意識することなく、修正前と同様にファイルＡを読み出す要求を行えばよい。したがって、アプリケーションプログラム３２の開発を複雑化させることもない。
【００４６】
ファイルシステム３１は修正ファイルＢに関する情報をアプリケーションプログラム３２に公開してもよい。しかし、本実施の形態においては、ファイルシステム３１は、修正ファイルＢに関する情報をアプリケーションプログラム３２に公開しないようにしている。言い換えると、ファイルシステム３２は、アプリケーションプログラム３２に対してファイルＢに関する情報を提供せず、その存在を隠すようにしている。つまり、アプリケーションプログラム３２は、修正ファイルＢの存在を意識することなく、ファイルＡにアクセスできるので、不必要な情報を提供しないようにし、誤ったファイルアクセスなどが発生しないようにしている。
【００４７】
ファイルと修正ファイルを対応付けるため上記の実施の形態においては、ファイル名を共通化させるようにした。これ以外に、ディレクトリ名で対応付けるようにしてもよい。たとえば、ファイルＡ（file1.abc）に対する修正ファイルは、「file1」あるいは「file1_mod」などのディレクトリを作成して、そのディレクトリの中に格納するのである。ファイルシステム３１は、ファイルＡのファイル名と関連付けられた名称のディレクトリを検索することで、修正ファイルが存在することを確認することが可能である。
【００４８】
あるいは、修正ファイルのヘッダ部に被修正ファイルとの対応付けを記録するようにしてもよい。
【００４９】
ファイルＡに対して複数回の修正が発生した場合には、複数の修正ファイルを作成し、修正ファイルのファイル名に適応順序を指定するようにすればよい。たとえば、図４で示した例では、修正ファイルＢのファイル名はfile1.p00であった。そして、修正ファイルＢが反映されたファイルＡにさらに修正が必要な場合は、その修正ファイルのファイル名をfile1.p01とするのである。以降、修正が加わるたびにファイル名の拡張子をp02,p03,P04・・・とインクリメントしていくのである。そして、ファイルシステム３１は、ファイルＡを読み出す際には、これら全ての修正ファイル（file1.p00,file1.p01,file1.p02・・・）を読み出し、file1.p00から順に修正情報を適用していくのである。このようにすれば、実質上制限なくファイルＡに修正を加え、整合性を保つことが可能である。
【００５０】
また、上記のように修正ファイルのヘッダ部に被修正ファイルとの対応付けを記録する方法をとった場合には、ヘッダ部に適応順序に関する情報も記載すればよい。これにより、複数回の修正にも対応可能である。
【００５１】
｛第２の実施の形態｝
図７は、第２の実施の形態における修正ファイルＢの格納方法を示す図である。第２の実施の形態においては、修正ファイルＢは、第１の実施の形態と同様データ領域２０Ｄに追記される。しかし、修正ファイルＢのファイル格納情報はＦＡＴ領域２０Ｆおよびディレクトリエントリには追記されない。修正ファイルＢに関する情報は、データ領域２０Ｄの中に記録されている修正情報テーブル２０Ｔに追記される。
【００５２】
この修正情報テーブル２０Ｔは、修正ファイルの格納情報が追記可能なテーブル構造となっている。したがって、修正ファイルＢをデータ領域２０Ｄに追記する記録装置（アップデート装置）は、合わせて修正ファイルＢの格納情報を修正情報テーブル２０Ｔに追記するのである。なお、修正情報テーブル２０Ｔの格納クラスタ位置は予め決められている。
【００５３】
情報処理装置１０がファイルＡにアクセスする方法は、第１の実施の形態と同様である。ただし、ファイルシステム３１は、ＦＡＴ領域２０Ｆおよびディレクトリエントリを参照して修正ファイルＢの存在を確認するのではなく、修正情報テーブル２０Ｔを参照して修正ファイルＢの存在を確認するのである。その他の処理の内容、方法は第１の実施の形態と同様である。
【００５４】
なお、第２の実施の形態においては、修正ファイルＢの格納情報がＦＡＴ領域２０Ｆやディレクトリエントリに存在しないので、必然的に修正ファイルＢの存在をアプリケーションプログラム３２に対して隠すことができる。
【００５５】
｛第３の実施の形態｝
図８は、第３の実施の形態における修正ファイルＢの格納方法を示す図である。第３の実施の形態においては、修正ファイルＢは、第１の実施の形態と同様データ領域２０Ｄに追記される。しかし、修正ファイルＢは、データ領域２０Ｄの自由な領域に格納されるのではなく、予め予約された修正情報領域２０Ｍに格納される。また、修正ファイルＢの格納情報はＦＡＴ領域２０Ｆやディレクトリエントリには追記されない。
【００５６】
情報処理装置１０がファイルＡにアクセスする方法は、第１の実施の形態と同様である。ただし、ファイルシステム３１は、ＦＡＴ領域２０Ｆやディレクトリエントリを参照して修正ファイルＢの存在を確認するのではなく、修正情報領域２０Ｍをサーチすることで修正ファイルＢの存在を確認するのである。つまり、修正情報領域２０Ｍに格納されているファイル名を順番にチェックし、第１の実施の形態と同様例えば拡張子を除いたファイル名が同一のファイルを検索するのである。その他の処理の内容、方法は第１の実施の形態と同様である。
【００５７】
第３の実施の形態においても、修正ファイルＢの格納情報がＦＡＴ領域２０Ｆやディレクトリエントリに存在しないので、必然的に修正ファイルＢの存在をアプリケーションプログラム３２に対して隠すことができる。
【００５８】
｛変形例｝
上記の実施の形態においては、修正ファイルＢは、ファイルＡの一部を修正する修正情報（差分情報）が記録されたファイルであると説明した。しかし、本発明の方法によれば、修正ファイルＢをファイルＡと置き換えることが可能である。つまり、ファイルＡの差し替えを行うことが可能である。
【００５９】
非常に修正が多くなった場合、膨大な数の修正情報（差分情報）を記録した修正ファイルＢを作成し、この修正情報からファイルＡを修正するという処理は煩雑である。また、処理に要する時間も長くなる。そこで、修正ファイルＢをファイルＡの差し替えファイルとしてデータ領域２０Ｄに格納しておくのである。
【００６０】
そして、修正ファイルＢが差し替えファイルである場合には、拡張子あるいはヘッダ情報にその情報を記載しておく。たとえば、拡張子がp99であれば差し替えファイルであるという規則にすればよい。この場合、ファイルシステム３１は、ファイルＡを修正する処理は行わず、修正ファイルＢをファイルＡに代えて読み出すのである。アプリケーションプログラム３２は、読み出された修正ファイルＢをファイルＡとしてアクセスするのである。
【００６１】
なお、情報処理装置１０が内蔵ＯＴＰメモリを備え、ファイルシステム３１が情報処理装置１０内のＯＴＰメモリに格納されているのであれば、このファイルシステム３１についても、本発明と同様の方法で修正を加えることが可能である。それにより、様々なパッチ形式にも順次対応させることが可能である。
【図面の簡単な説明】
【００６２】
【図１】実施の形態に係る情報処理装置のブロック図である。
【図２】第１の実施の形態におけるＯＴＰメモリに対する修正ファイルの格納イメージを示す図である。
【図３】被修正ファイルの格納イメージを示す図である。
【図４】修正ファイルの格納イメージを示す図である。
【図５】パッチの適用手順を示すイメージ図である。
【図６】パッチの適用処理のフローチャートである。
【図７】第２の実施の形態におけるＯＴＰメモリに対する修正ファイルの格納イメージを示す図である。
【図８】第３の実施の形態におけるＯＴＰメモリに対する修正ファイルの格納イメージを示す図である。
【符号の説明】
【００６３】
１０    情報処理装置
１１    制御部
２０    ＯＴＰメモリ
２０Ｄ  データ領域
２０Ｅ  ルートディレクトリエントリ
２０Ｆ  ＦＡＴ領域
２０Ｍ  修正情報領域
２０Ｔ  修正情報テーブル
３１    ファイルシステム
３２    アプリケーションプログラム
１１２  ＲＡＭ
【図１】
2007257399.tif 000003
【図２】
2007257399.tif 000004
【図３】
2007257399.tif 000005
【図４】
2007257399.tif 000006
【図５】
2007257399.tif 000007
【図６】
2007257399.tif 000008
【図７】
2007257399.tif 000009
【図８】
2007257399.tif 000010