(57)【特許請求の範囲】
【請求項１】
ブロックデータ単位でのデータ消去が可能な不揮発性メモリへのデータ書き込み方法であって、
前記不揮発性メモリ内に存在して現在書き込み状態にあってオープンしているファイルに対するファイルアクセスを終了させるファイルクローズ命令が発行され、かつ、このファイルクローズ命令の発行によってクローズ対象となるファイル以外にオープンしているファイルが存在しない場合に、
前記不揮発性メモリよりもアクセス速度が高速なキャッシュメモリに記憶されているデータを、前記不揮発性メモリ内の対応するエリアに記憶させる、ことを特徴とする不揮発性メモリへのデータ書き込み方法。
【請求項２】
データ書き込み命令を発行可能な情報処理装置であって、
ブロック単位でのデータ消去が可能な不揮発性メモリと、
前記不揮発性メモリよりもアクセス速度が高速なキャッシュメモリと、
前記キャッシュメモリに記憶されているデータが属するブロックの識別情報を記憶する識別情報記憶手段と、
データの書き込み動作を制御する書き込み制御手段と、
前記不揮発性メモリ内に存在するファイルを管理する管理情報を記憶するファイル管理テーブルと、を備え、
前記書き込み制御手段は、
データ書き込み命令が発行されると、この命令で書き込み対象となるデータが属するブロックの識別情報を求め、この求めた識別情報と前記識別情報記憶手段が記憶する識別情報とが異なる場合には、前記キャッシュメモリに記憶されているデータを、前記不揮発性メモリ内の対応するエリアに記憶させ、
これ以外の場合には、前記書き込み対象となるデータで前記キャッシュメモリの記憶内容を更新する手段と、
前記ファイル管理テーブルが記憶する管理情報を参照して、現在書き込み状態にあってオープンしているファイルに対するファイルアクセスを終了させるファイルクローズ命令が発行され、かつ、このファイルクローズ命令の発行によってクローズ対象となるファイル以外にオープンしているファイルが存在しないと判断した場合に、前記キャッシュメモリに記憶されているデータを、前記不揮発性メモリ内の対応するエリアに記憶させる手段と、を含むことを特徴とする情報処理装置。
【請求項３】
ブロック単位でのデータ消去が可能な不揮発性メモリへのデータ書き込みを行なうためのデータ書き込み制御プログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記不揮発性メモリよりもアクセス速度が高速なキャッシュメモリに記憶されているデータが属するブロックの識別情報を記憶しておく処理と、
前記不揮発性メモリへのデータ書き込みを行なう際に、この書き込みデータが属するブロックの識別情報と、前記記憶しておいた識別情報とに基づいて、前記キャッシュメモリに記憶されているデータを、前記不揮発性メモリ内の対応するエリアに記憶させるか否かを決定する処理と、
現在書き込み状態にあってオープンしているファイルに対するファイルアクセスを終了させるファイルクローズ命令が発行され、かつ、このファイルクローズ対象となるファイル以外に書き込み状態にあってオープンしているファイルが存在しないと判断した場合に、
前記キャッシュメモリに記憶されているデータを、前記不揮発性メモリ内の対応するエリアに記憶させる処理と、をコンピュータに実行させるためのデータ書き込み制御プログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ブロック単位でのデータ消去が可能な不揮発性メモリへのデータ書き込み方法およびそれを実現する情報処理装置ならびにそのためのデータ書き込み制御プログラムを記録した記録媒体に関する。
【０００２】
【従来の技術】
一般に、フラッシュメモリに代表される不揮発性メモリにあっては、データの書き込み／読み出しは、ワード単位で行なうことができるが、データ消去は、複数ワード単位、即ち、ブロック単位で行なわなければならない。したがって、或るアドレスのデータを書き換える場合には、この書き換え対象となるアドレスに対応するブロックのデータを、一旦、不揮発メモリよりも高速にアクセス可能なキャッシュメモリにコピーする。そして、書き換えデータでキャッシュメモリの記憶内容を更新しておいて、前記書き換え対象となるアドレスに対応するブロックのデータを不揮発性メモリから消去し、キャッシュメモリに記憶されているデータを、不揮発性メモリ内の対応するエリアにブロック単位で書き込むといった複雑な処理が必要である。
【０００３】
このような複雑な処理を行なうため、不揮発性メモリへのアクセスが頻繁に発生してしまうため、キャッシュメモリを利用した効率の良いデータ書き込み手法について様々なものが提案されてきた。例えば、特開平５−２８０３９号公報によれば、この種の記憶装置が開示されている。この記憶装置にあっては、キャッシュメモリを使用して、以下のようにしてデータ書き込み処理を行なう。即ち、書き込み命令を受けると、不揮発性メモリから、書き込み対象アドレスに対応するブロックのデータを読み出し、このブロックのデータを前記書き込み命令で指定されたデータで更新し、一旦、キャッシュメモリに記憶させる。次に、先に読み出した、不揮発性メモリ内のブロックのデータを消去する。そして、キャッシュメモリに記憶しておいたデータの不揮発性メモリの対応するエリアへの書き込み処理は、所定のタイミングで行なうようにしてあった。この所定のタイミングとは、所定時間の間、このブロックへのアクセス要求がない場合、キャッシュメモリの容量に余裕がなくなってきた場合、装置電源の遮断状態が検出された場合等とされている。
【発明が解決しようとする課題】
しかし、この従来技術にあっては、キャッシュメモリに記憶されているデータを不揮発性メモリへ書き込むタイミングを、所定時間の間、ブロックへのアクセス要求がない場合等としている。これらは、いわば、時間経過をトリガとしてキャッシュメモリに記憶されているデータを不揮発性メモリへ書き込むものであるので、最後に書き込み命令を受けた後、キャッシュメモリに記憶されているデータを不揮発性メモリへ書き込むまでの、処理オーバーヘッドが問題となっていた。
【０００４】
また、この従来装置において、例えばキャシュメモリ容量が１ブロック分であるとすれば、書き込み命令が発行される毎に、キャッシュメモリに記憶されているデータを不揮発性メモリの対応するエリアに記憶させる必要があったので、不揮発性メモリへのアクセス回数が多くなってり、これによっても処理オーバーヘッドが問題となっていた。
【０００５】
本発明は、このような従来の課題を解決するためになされたもので、不揮発性メモリへのアクセス回数の低減等を図って、処理オーバーヘッドを低減するようにした、ブロック単位でのデータ消去が可能な不揮発性メモリへのデータ書き込み方法およびそれを実現する情報処理装置ならびに、そのためのデータ書き込み制御プログラムを記録した記録媒体を提供することを目的とする。
【課題を解決するための手段】
上記目的を達成するために、請求項１に係る不揮発性メモリへのデータ書き込み方法は、ブロック単位でのデータ消去が可能な不揮発性メモリへのデータ書き込み方法であって、
前記不揮発性メモリ内に存在して現在書き込み状態にあってオープンしているファイルに対するファイルアクセスを終了させるファイルクローズ命令が発行され、かつ、このファイルクローズ命令の発行によってクローズ対象となるファイル以外にオープンしているファイルが存在しない場合に、
前記不揮発性メモリよりもアクセス速度が高速なキャッシュメモリに記憶されているデータを、前記不揮発性メモリ内の対応するエリアに記憶させる、ことを特徴としている。
【０００６】
この請求項１に係る発明においては、不揮発性メモリ内に存在してオープンしているファイルに対するファイルクローズ命令が発行され、かつ、このファイルクローズ命令の発行によってクローズ対象となるファイル以外にオープンしているファイルが存在しない場合には、キャッシュメモリに記憶されているデータを、不揮発性メモリ内の対応するエリアに記憶させるので、従来のように時間経過をトリガとして、キャッシュメモリに記憶されているデータを不揮発性メモリに書き込むことがなくなるため、処理オーバーヘッドが低減される。
【００１７】
また、請求項２に係る発明は、データ書き込み命令を発行可能な情報処理装置であって、
ブロック単位でのデータ消去が可能な不揮発性メモリと、
前記不揮発性メモリよりもアクセス速度が高速なキャッシュメモリと、
前記キャッシュメモリに記憶されているデータが属するブロックの識別情報を記憶する識別情報記憶手段と、
データの書き込み動作を制御する書き込み制御手段と、
前記不揮発性メモリ内に存在するファイルを管理する管理情報を記憶するファイル管理テーブルと、を備え、
前記書き込み制御手段は、
データ書き込み命令が発行されると、この命令で書き込み対象となるデータが属するブロックの識別情報を求め、この求めた識別情報と前記識別情報記憶手段が記憶する識別情報とが異なる場合には、前記キャッシュメモリに記憶されているデータを、前記不揮発性メモリ内の対応するエリアに記憶させ、
これ以外の場合には、前記書き込み対象となるデータで前記キャッシュメモリの記憶内容を更新する手段と、
更に、前記ファイル管理テーブルが記憶する管理情報を参照して、現在書き込み状態にあってオープンしているファイルに対するファイルアクセスを終了させるファイルクローズ命令が発行され、かつ、このファイルクローズ命令の発行によってクローズ対象となるファイル以外にオープンしているファイルが存在しないと判断した場合に、
前記キャッシュメモリに記憶されているデータを、前記不揮発性メモリ内の対応するエリアに記憶させる手段と、を含むことを特徴とする。
【００１８】
この請求項２に係る発明によれば、書き込み制御手段は、更に、ファイル管理テーブルが記憶する管理情報を参照して、ファイルクローズ命令が発行され、かつ、このファイルクローズ命令の発行によってクローズ対象となるファイル以外にオープンしているファイルが存在しないと判断した場合に、キャッシュメモリに記憶されているデータを不揮発性メモリ内の対応するエリアに記憶させるので、従来のように時間経過をトリガとして、キャッシュメモリに記憶されているデータを不揮発性メモリに書き込むことがなくなるため、処理オーバーヘッドが低減される。
【００２１】
また、請求項３に係る発明は、ブロック単位でのデータ消去が可能な不揮発性メモリへのデータ書き込みを行なうためのデータ書き込み制御プログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記不揮発性メモリよりもアクセス速度が高速なキャッシュメモリに記憶されているデータが属するブロックの識別情報を記憶しておく処理と、
前記不揮発性メモリへのデータ書き込みを行なう際に、この書き込みデータが属するブロックの識別情報と、前記記憶しておいた識別情報とに基づいて、前記キャッシュメモリに記憶されているデータを、前記不揮発性メモリ内の対応するエリアに記憶させるか否かを決定する処理と、
現在書き込み状態にあってオープンしているファイルに対するファイルアクセスを終了させるファイルクローズ命令が発行され、かつ、このファイルクローズ対象となるファイル以外に書き込み状態にあってオープンしているファイルが存在しないと判断した場合に、
前記キャッシュメモリに記憶されているデータを、前記不揮発性メモリ内の対応するエリアに記憶させる処理と、をコンピュータに実行させるためのデータ書き込み制御プログラムを記録した記録媒体である。
【００２２】
この請求項３に係る発明においても、ファイルクローズ命令が発行され、かつ、このファイルクローズ命令の発行によってクローズ対象となるファイル以外にオープンしているファイルが存在しないと判断した場合に、キャッシュメモリに記憶されているデータを不揮発性メモリ内の対応するエリアに記憶させるので、従来のように時間経過をトリガとして、キャッシュメモリに記憶されているデータを不揮発性メモリに書き込むことがなくなるため、処理オーバーヘッドが低減される。
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照しつつ説明する。図１は、本発明の実施の形態に係る情報処理装置のブロック構成図である。図１に示すように、この情報処理装置は、情報処理手段１０と、アクセス手段２０と、ファイル管理テーブル３０と、書き込み制御手段４０と、消去制御手段５０と、読み出し制御手段６０と、不揮発性メモリ７０と、キャッシュメモリ８０と、ブロック番号記憶部９０とを有して構成される。なお、図中の矢印「→」は、その矢先が制御対象側または参照対象側となることを示している。
【００２３】
次に、この装置の各構成要素の構成や動作について説明する。情報処理手段１０は、ファイルへのアクセスを開始する命令である「ファイルオープン命令」、ファイルへのアクセスを終了させる命令である「ファイルクローズ命令」、ファイルを削除する命令である「ファイル削除命令」、ファイル名を変更する命令である「ファイル名変更命令」、ファイルへのデータ書き込みを行わせる命令である「ファイル書き込み命令」、ファイルからのデータ読み出しを行なわせる「ファイル読み出し命令」等の複数種類のファイルアクセスの内のいずれを採用するかを決定する機能や、前記決定されたファイルアクセスを実行させるための制御情報を付加し、このファイルアクセスを実行させるためのデータ書き込み／読み出し命令を、アクセス手段２０に対して発行する機能等を有する。
【００２４】
アクセス手段２０は、情報処理手段１０から発行された命令が書き込み／読み出しのいずれの命令であるかを判断し、判断結果に対応する処理を実行する機能や、ファイルアクセスの種類に基づいてファイル管理テーブル３０を更新する機能等を有している。この判断結果に対応する処理としては、ファイルアクセスの種類とファイル管理テーブル３０の記憶内容とを参照して、後に説明する「ファイルクローズ書き込み条件」や「ファイルクローズ外書き込み条件」の有効・無効を設定する処理や、書き込み制御手段４０や読み出し制御手段６０へ書き込み命令や読み出し命令を発行する処理等がある。
【００２５】
図１７に示すように、ファイル管理テーブル３０は、不揮発性メモリ７０内に存在するファイルのファイル名と、そのファイルが「オープン状態」にあるか「クローズ状態」にあるかを示す情報と、そのファイルが「書き込み状態」にあるか「読み出し状態」にあるかを示す情報を管理情報として記憶し、これらはアクセス手段２０によって適宜更新される。図１７に示す例では、ファイル名が「Ａ」、「Ｂ」、「Ｃ」の３つのファイルが存在しており、ファイル「Ａ」は、現在「書き込み状態」でファイルが「オープン状態」であり、ファイル「Ｂ」、「Ｃ」は共に現在「読み出し状態」でファイルが「クローズ状態」にある場合のファイル管理テーブル３０の管理情報の記憶状態例を示している。
【００２６】
書き込み制御手段４０は、「ファイルクローズ書き込み条件」や「ファイルクローズ外書き込み条件」の有効・無効を判断して、判断結果に対応する処理を実行する機能等を有する。この判断結果に対応する処理としては、書き込み命令で指定されたアドレスに基づいて算出されるブロック番号に対応した、不揮発性メモリ７０内のエリアにブロック単位でデータを書き込む処理、消去制御手段５０に対して消去命令を発行して消去制御を行なう処理、読み出し制御手段６０に対して読み出し命令を発行して読み出し制御を行なう処理、キャッシュメモリ８０のデータを更新する処理、および、ブロック番号記憶部９０に記憶されているブロック番号を、キャッシュメモリ８０に記憶されているデータが属するブロックのブロック番号で更新する処理等がある。
【００２７】
消去制御手段５０は、消去命令で指定されたブロック番号に対応した、不揮発性メモリ７０内のデータをブロック毎消去する機能を有する。読み出し制御手段６０は、ブロック番号記憶部９０の記憶内容を参照して、読み出し命令で指定されたアドレスのデータを、キャッシュメモリ６０が記憶している否かを判断し、記憶している場合にはキャッシュメモリ６０からデータを読み出し、一方、記憶していない場合には、不揮発性メモリ７０からデータを読み出す機能等を有する。不揮発性メモリ７０は、フラッシュメモリ等のメモリであって、ブロック単位（複数ワード単位）でデータ消去可能であると共に、ワード単位（複数ビット単位）でデータの読み書きが可能である。この不揮発性メモリ７０は、ファイルの管理情報と共に、複数のファイルを格納可能となっている。キャッシュメモリ８０は、この不揮発性メモリ７０よりもアクセス速度が高速なメモリであって、不揮発性メモリ７０に書き込むデータを一時的に記憶する。そして、ブロック番号記憶部９０は、キャッシュメモリ９０が記憶するデータが属するブロック番号を記憶する。
【００２８】
（第１の動作例）
次に本装置の第１の動作例について説明する。なお、本発明の実施の形態においては、ＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅｓ）フォーマットでのファイル管理を行なう場合を想定している。図３に示すように、このＦＡＴフォーマットでは、メモリ領域が、ファイル管理領域とファイルデータ領域とに分割される。ファイル管理領域には、ファイル名、ファイルサイズ、ファイルの更新日時、ファイルのデータ内容等の管理情報が記憶される領域であり、また、ファイルデータ領域には、ファイルのデータ内容が書き込まれる領域である。
【００２９】
さて、図４乃至図８を参照しつつ、図１の各構成要素の動作を詳細に説明する。なお、この第１の動作説明においては、キャッシュメモリ８０の容量を１ブロック、即ち、８ＫＢとし、図２に示すようなメモリ構成を有する不揮発性メモリ７０を採用するものとする。図２に示すように、この不揮発性メモリ７０は、１ブロック８ＫＢでなっていて、各ブロックのブロック番号が「０」から順に設定されている。また、各ブロックのアドレス範囲で示す「０ｘ」は１６進数を表現する。この不揮発性メモリ７０においては、書き込み／読み出しは１バイト単位で行なうことができると共に、消去は１ブロック単位、即ち、８ＫＢ単位で行なう。書き込み／読み出しを行なうためには、例えば、アドレス「０ｘ００４０Ｆ０」から８バイトといったようにアドレスを指定し、消去を行なうためには、消去対象となるブロックに対応するアドレス範囲の内の任意の一つのアドレスを指定すればよいようになっている。例えば、ブロック番号「３」のブロックを消去するのであれば、このブロック番号「３」のアドレス範囲「０ｘ００６０００〜０ｘ００７ＦＦＦ」の内の任意の１つのアドレス、例えば、「０ｘ００６０００」を指定すればよい。
【００３０】
さて、まず、図４を参照して、情報処理手段１０の処理動作を説明する。情報処理手段１０は、ファイルオープン命令、ファイル書き込み命令、ファイル読み出し命令、ファイルクローズ命令、ファイル名変更命令、ファイル削除命令等のファイルアクセスの種類を決定する（ステップＳ１）。ここで、ファイルオープン命令、ファイル削除命令、ファイル名変更命令では、ファイル管理領域に記憶されている管理情報を書き換えるために、書き込み命令を発行する必要があり、ファイル書き込み命令では、ファイルデータ領域に記憶されているデータを書き換えるために、書き込み命令を発行する必要がある。ファイルクローズ命令では、書き込み途中のファイルが存在しなければ、キャッシュメモリ８０に記憶されているデータを不揮発性メモリ９０内の対応するエリアに書き込みための書き込み命令を発行する。したがって、情報処理手段１０は、これら決定されたファイルアクセスを実行させるための制御情報（例えば、書き換え対象領域等を指定する情報）を付加して、このファイルアクセスを実行させるための書き込み／読み出し命令をアクセス手段２０に対して発行する（ステップＳ２）。
【００３１】
次に、図５を参照して、アクセス手段２０の処理動作を説明する。アクセス手段２０は、情報処理手段１０から発行された、書き込み／読み出し命令を受けると、受けた命令が、不揮発性メモリ７０からのデータ読み出しか否かを判断する（ステップＳ１１）。読み出し命令の場合（ステップＳ１１のＹｅｓ）、読み出し対象となるアドレスとデータとを指定して、読み出し制御手段６０に対して、データ読み出し命令を発行する（ステップＳ１２）。一方、書き込み命令の場合（ステップＳ１１のＮｏ）、ファイルアクセスの種類がファイルクローズ命令か否かを判断する（ステップＳ１３）。ファイルクローズ命令の場合（ステップＳ１３のＹｅｓ）、ファイル管理テーブル３０の記憶内容を参照して、このファイルクローズ命令によってクローズされるファイル以外に、ファイルの作成や書き込みを行なうためにファイルオープン命令を受けてオープン状態のファイルが存在しないか否かを判断する（ステップＳ１４）。存在しない場合（ステップＳ１４のＹｅｓ）、「ファイルクローズ書き込み条件」を有効にして（ステップＳ１５）、書き込み制御手段４０にデータ書き込み命令を発行し（ステップＳ１６）、書き込み制御手段４０による書き込み処理終了後、「ファイルクローズ書き込み条件」を無効にする（ステップＳ１７）。一方、存在する場合（ステップＳ１４のＮｏ）、アクセス手段２０による処理を終了する。したがって、ステップＳ１３、ステップＳ１４によって、不揮発性メモリ７０内に存在してオープンしているファイルに対するファイルクローズ命令が発行され、かつ、このファイルクローズ命令の発行によってクローズ対象となるファイル以外にオープンしているファイルが存在しないと判断された場合には、キャッシュメモリ８０に記憶されているデータを、不揮発性メモリ７０内の対応するエリアに記憶させるので、従来のように所定時間経過するまでの処理オーバーヘッドが生ずることがない。ファイル管理テーブル３０の記憶内容が図１７に示すような状態の場合、ファイル名「Ａ」に対してファイルクローズ命令が発行されると、キャッシュメモリ８０に記憶されているデータを、不揮発性メモリ７０内の対応するエリアに記憶させる。
【００３２】
次に、ファイルアクセスの種類がファイルクローズ命令でない場合（ステップＳ１３のＮｏ）、ファイルアクセスの種類が、ファイル削除命令か、ファイル名変更命令かを判断する（ステップＳ１８、Ｓ１９）。ファイルアクセスの種類が、ファイル削除命令、または、ファイル名変更命令である場合（ステップＳ１８、Ｓ１９のＹｅｓ）、「ファイルクローズ外書き込み条件」を有効にして（ステップＳ２０）、書き込み制御手段４０に対して、書き込み対象となるデータとアドレスとを指定して書き込み命令を発行し（ステップＳ２１）、書き込み制御手段４０による書き込み処理終了後、「ファイルクローズ外書き込み条件」を無効にする（ステップＳ２２）。なお、ファイルアクセスの種類が、ファイル削除命令やファイル名変更命令でない場合（ステップＳ１８、Ｓ１９のＮｏ）、書き込み制御手段４０に対して、書き込み対象となるデータとアドレスを指定して書き込み命令を発行する（ステップＳ２３）。一般に、ファイル削除命令、ファイル名変更命令は、ファイルオープン命令の実行の有無に係わらず実行することが可能であり、これらの命令においては、ファイル管理領域のみの書き換えを行なう。即ち、情報処理手段１０は、ファイルクローズ命令を必ずしも実行するわけではない。したがって、書き込み条件を設けておかないと、キャッシュメモリ８０内に不揮発性メモリ７０への書き込みを実行していないデータが残る場合があるので、「ファイルクローズ外書き込み条件」の有効、無効を行なうようにした。なお、このフローチャートでは図示はしないが、アクセス手段２０は、情報処理手段１０から発行される命令に基づいて、先に説明したファイル管理テーブル３０の記憶内容を適宜更新する。
【００３３】
次に、図６を参照して、書き込み制御手段４０の処理動作を説明する。この処理動作は、図５におけるステップＳ１６、Ｓ２１、Ｓ２３に対応して行なわれる。書き込み制御手段４０は、データ書き込み命令を受けると、「ファイルクローズ書き込み条件」が有効か否かを判断する（ステップＳ３１）。有効な場合（ステップＳ３１のＹｅｓ）、消去制御手段５０に対して消去命令を発行して、ブロック番号記憶部９０に記憶されているブロック番号に対応した、不揮発性メモリ７０のエリアのデータを消去し（ステップＳ３２）、この消去したエリアに、フラッシュメモリ８０に記憶されているデータをブロック毎書き込む（ステップＳ３３）。
【００３４】
一方、「ファイルクローズ書き込み条件」が無効な場合（ステップＳ３１のＮｏ）、書き込み命令を受けたデータをブロック番号毎に分割し、ブロック番号順に書き込み処理を開始する（ステップＳ３４）。次に、キャッシュメモリ８０が空状態か否かを判断し（ステップＳ３５）、不揮発性メモリ７０から読み出したデータを記憶しておらずキャッシュメモリ８０が空状態である場合（ステップＳ３５のＹｅｓ）、読み出し制御手段６０に対して読み出し命令を発行し、書き込み命令を受けたアドレスから算出されるブロック番号に対応する不揮発性メモリ７０内のデータをブロック毎読み出して、キャッシュメモリ８０にコピーし、ブロック番号記憶部９０の記憶内容を、この読み出したブロックのブロック番号で更新する（ステップＳ３６）。なお、キャッシュメモリ８０が空状態であるのは、初期状態等、一度も書き込み命令を受けたことがない場合である。次に、キャッシュメモリ８０に記憶されているデータの内の、書き込み命令を受けたアドレスに該当するデータを、書き込み命令を受けたデータで書き換えて（ステップＳ３７）、ステップＳ４３の処理に移行する。
【００３５】
一方、キャッシュメモリ８０が空状態でない場合（ステップＳ３５のＮｏ）、書き込み命令を受けたアドレスから算出されるブロック番号とブロック番号記憶部９０に記憶されているブロック番号が一致するか否かを判断する（ステップＳ３８）。一致する場合（ステップＳ３８のＹｅｓ）、書き込み命令を受けたアドレスに該当する不揮発性メモリ７０のデータが、キャッシュメモリ８０にコピーされているので、ステップＳ３７の処理を実行する。また、一致しない場合（ステップＳ３８のＮｏ）、消去制御手段５０を制御して、ブロック番号記憶部９０に記憶されているブロック番号に対応した不揮発性メモリ７０内のデータを消去し（ステップＳ３９）、ブロック番号記憶部９０に記憶されているブロック番号に対応した不揮発性メモリ７０内のエリアに、キャッシュメモリ８０に記憶されているデータをブロック毎書き込む（ステップＳ４０）。そして、読み出し制御手段６０に対して読み出し命令を発行して、書き込み命令を受けたアドレスから算出されるブロック番号に対応する不揮発性メモリ７０内のデータをブロック毎読み出し、キャッシュメモリ８０にコピーし、ブロック番号記憶部９０のデータを、この読み出したブロック番号で更新し（ステップＳ４１）、キャッシュメモリ８０に記憶されているデータの内の、書き込み命令を受けたアドレスに該当するデータを、書き込み命令を受けたデータで書き換えて（ステップＳ４２）、ステップＳ４３に移行する。
【００３６】
ステップＳ４３においては、書き込み命令を受けたデータが、まだ残っているか否かを判断する。書き込み命令を受けたデータが、まだ残っている場合（ステップＳ４３のＹｅｓ）、ステップＳ３８に戻って同様な処理を行なう。例えば、アクセス手段２０から、ブロック番号「４」〜「６」までの３ブロック分の書き込み命令を受けた場合、ステップＳ４３からステップＳ３８に少なくとも２回は戻ることになる。一方、書き込み命令を受けたデータが残っていない場合（ステップＳ４３のＮｏ）、「ファイルクローズ外書き込み条件」が有効か否かを判断する（ステップＳ４４）。有効である場合（ステップＳ４４のＹｅｓ）、消去制御手段５０を制御して、ブロック番号記憶部９０に記憶されているブロック番号に対応した不揮発性メモリ７０内のデータを消去し（ステップＳ４５）、ブロック番号記憶部９０に記憶されているブロック番号に対応した不揮発性メモリ７０内のエリアに、キャッシュメモリ８０に記憶されているデータをブロック毎書き込む（ステップＳ４６）。また、無効である場合（ステップＳ４４のＮｏ）、書き込み制御手段４０による処理を終了する。
【００３７】
次に、図７を参照して、消去制御手段５０の処理動作を説明する。この処理動作は、図６におけるステップＳ３２、Ｓ３９、Ｓ４５に対応して行なわれる。消去制御手段５０は、消去命令を受けると、指定されたブロック番号に対応する不揮発性メモリ７０内のデータをブロック毎消去する（ステップＳ５１）。次に、図８を参照して、読み出し制御手段６０の処理動作を説明する。この処理動作は、図６におけるステップＳ３６、Ｓ４１に対応して行なわれる。読み出し制御手段６０は、データ読み出し命令を受けると、読み出し命令を受けたアドレスから算出されるブロック番号とブロック番号記憶部９０に記憶されているブロック番号とが一致するか否かを判断する（ステップＳ６１）。一致する場合（ステップＳ６１のＹｅｓ）、読み出し命令を受けたアドレスのデータをキャッシュメモリ８０が記憶しているので、キャッシュメモリ８０に記憶されているデータをメモリコピーして、読み出しデータとして出力する（ステップＳ６２）。この場合、不揮発性メモリ７０よりも高速にアクセスできるキャッシュメモリ８０からデータを読み出すことができるので、高速読み出し処理を実行できる。一方、一致しない場合（ステップＳ６１のＮｏ）、不揮発性メモリ７０内の指定されたアドレスからデータを読み出し、読み出したデータを出力する（ステップＳ６３）。この場合、キャッシュメモリ８０のデータの書き換えは行なわない。
【００３８】
以上説明してきたように、この実施の形態によれば、書き込み制御手段４０は、データ書き込み命令が発行されると、この命令で書き込み対象となるデータが属するブロック番号を求める。そして、この求めたブロック番号とブロック番号記憶部９０が記憶するブロック番号とに基づいて、キャッシュメモリ８０に記憶されているデータを不揮発性メモリ７０内の対応するエリアに記憶させるか否かを決定するので、従来のように時間経過をトリガとして、キャッシュメモリに記憶されているデータを不揮発性メモリに書き込むことがなくなるため、処理オーバーヘッドが低減される。
【００３９】
また、書き込み制御手段４０は、求めたブロック番号と、ブロック番号記憶部９０に記憶しておいたブロック番号とが異なる場合には、キャッシュメモリ８０に記憶されているデータを不揮発性メモリ７０内の対応するエリアに記憶させる。一方、これ以外の場合には、書き込み対象となるデータでキャシュメモリ８０の記憶内容を更新すると共に、求めたブロック番号でブロック番号記憶部９０の記憶内容を更新する。したがって、両ブロック番号が異なる場合に限って、キャッシュメモリ８０に記憶されているデータを、不揮発性メモリ７０内の対応するエリアに記憶させるので、不揮発性メモリ７０へのアクセス回数が低減できると共に、両ブロック番号が同一の場合には、書き込みデータでキャシュメモリ８０の記憶内容を更新するので、この場合にも不揮発性メモリ７０へのアクセス回数が低減できて、処理オーバーヘッドを低減できる。
【００４０】
また、書き込み制御手段４０は、更に、ファイル管理テーブル３０が記憶する管理情報を参照して、ファイルクローズ命令が発行され、かつ、このファイルクローズ命令の発行によってクローズ対象となるファイル以外にオープンしているファイルが存在しないと判断した場合に、キャッシュメモリ８０に記憶されているデータを不揮発性メモリ７０内の対応するエリアに記憶させるので、従来のように時間経過をトリガとして、キャッシュメモリに記憶されているデータを不揮発性メモリに書き込むことがなくなるため、処理オーバーヘッドが低減される。
【００４１】
次に、より具体的に動作例を説明して発明理解の容易化を図る。図９は、情報処理手段１０の動作例の模式的説明図である。情報報処理手段１０が、ファイルアクセスの種類を決定し、アクセス手段２０に対して、書き込み／読み出し処理を指示した場合の動作例を示している。図９（ａ）に示すように、新規ファイル作成をする場合には、「ファイルオープン命令」、「ファイル書き込み命令」。「ファイルクローズ命令」を順に実行させる必要がある。この際、各ファイルアクセス命令を実行させるために、アクセス手段２０に対し、図中右側に記載されているような動作を行なわせるための制御情報を付加して、データ書き込み／読み出し命令を発行する（図３のステップＳ１、Ｓ２）。同様に、図９（ｂ）に示すように、ファイル削除命令を実行させる場合は、ファイル管理領域のみのデータ書き換えを行なうために、アクセス手段２０に対し、図中右側に記載されているような動作を行なわせるための制御情報を付加して、データ書き込み／読み出し命令を発する（図３のステップＳ１、Ｓ２）。
【００４２】
図１０は、書き込み制御手段４０の動作例の模式的説明図である。「ファイルクローズ条件」、「ファイル外クローズ条件」が共に無効であり、キャッシュメモリ８０がブロック「５２」に書き込むためのデータを記憶している状態で、書き込み制御手段４０が、ファイルデータ領域（０ｘ００４０００〜０ｘ００４ＦＦＦ）の書き込み命令を受けたことを想定する。まず、書き込み命令を受けたデータのアドレス（０ｘ００４０００〜０ｘ００４ＦＦＦ）から、ブロック番号が「２」であると算出される。ブロック番号記憶部９０記憶内容は「５２」となっている。したがって、書き込み命令を受けたアドレスから算出されるブロック番号「２」とブロック番号記憶部９０の記憶内容「５２」とは一致しないので、キャッシュメモリ８０に記憶されているデータを、ブロック番号「５２」に対応する不揮発性メモリ７０内のエリアに書き込む（図６のステップＳ３１、Ｓ３４、Ｓ３５、Ｓ３８、Ｓ３９、Ｓ４０）。次に、読み出し制御手段６０に読み出し命令を発行し、ブロック番号「２」に対応した不揮発性メモリ７０のデータを読み出し、キャッシュメモリ８０にコピーして、キャッシュメモリ８０に記憶されているデータの内のアドレス（０ｘ００４０００〜０ｘ００４ＦＦＦ）に該当するデータである４ＫＢ分のデータを更新し（図６のステップＳ４１、Ｓ４２）、書き込み制御手段４０の処理動作を終了する（図６のステップＳ４３、Ｓ４４）。図１０に示したキャッシュメモリの縦線部が、データ更新された部分である。
【００４３】
次に、「ファイルクローズ条件」、「ファイル外クローズ条件」が共に無効のままで、ファイルデータ領域（０ｘ００５０００〜０ｘ００５ＦＦＦ）の書き込み命令を受けたことを想定する。まず、書き込み命令を受けたデータのアドレス（０ｘ００５０００〜０ｘ００５ＦＦＦ）から、ブロック番号が「４」であると算出される。ブロック番号記憶部９０には「４」が記憶されている。したがって、書き込み命令を受けたアドレスから算出されるブロック番号「４」と、ブロック番号記憶部９０の記憶内容「４」とは一致するので、キャッシュメモリ８０に記憶されているデータの内のアドレス（０ｘ００５０００〜０ｘ００５ＦＦＦ）に該当するデータである４ＫＢ分のデータを更新し（図６のステップＳ３１、Ｓ３４、Ｓ３５、Ｓ３８、Ｓ３７）、書き込み制御手段４０の処理動作を終了する（図６のステップＳ４３、Ｓ４４）。この処理においては、図１０に示したキャッシュメモリの横線部が、データ更新された部分である。
【００４４】
このように、不揮発性メモリ７０へのデータ書き込みを行なう際に、書き込みデータが属するブロック番号と、キャッシュメモリ８０に記憶されているデータが属するブロック番号とに基づいて、キャッシュメモリ８０に記憶されているデータを、不揮発性メモリ７０内の対応するエリアに記憶させるか否かを決定するので、従来のように時間経過をトリガとすることがないので処理オーバーヘッドが低減される。特に、書き込みデータが属するブロック番号と、ブロック番号記憶部９０に記憶しておいたブロック番号とが異なる場合には、即ち、両ブロック番号が異なる場合には、キャッシュメモリ８０に記憶されているデータを、不揮発性メモリ７０内の対応するエリアに記憶させるので、不揮発性メモリへのアクセス回数が低減できて、この結果、処理オーバーヘッドを低減できる。また、特に、両ブロック番号が同一の場合には、書き込みデータでキャシュメモリ８０の記憶内容を更新するので、不揮発性メモリ７０へのアクセス回数が低減できて、この結果、処理オーバーヘッドを低減できる。
【００４５】
（第２の動作例）
この動作例では、図１１に示すようなメモリ構造を有する不揮発性メモリ７０を用いることを想定する。図１１に示す不揮発性メモリ７０は、１ブロックが１６ページからなり、セクタ番号が順に設定されている。この不揮発性メモリ７０では、セクタ番号とアドレスとによりアクセス領域を指定する。例えば、書き込み／読み出しは、セクタ「２６」、アドレス「０ｘ１００」から２５６バイトといったように指定する。消去は、消去対象となるブロックのいずれかのセクタを指定する。例えば、ブロック番号「２」のブロックを消去する場合には、ブロック「２」に該当するセクタ「３２」〜「４７」の内の任意の１つのセクタ、例えば、セクタ「３３」を指定する。書き込み／読み出しは、１バイト単位で行なえるが、複数のページに渡る書き込み／読み出しを１度に行なうことはできない。したがって、３ページ分のデータを読み出す場合には、ページ単位の読み出しを３回繰り返す必要がある。消去は１ブロック単位、即ち８ＫＢ単位で行なうことができる。また、この動作例の説明においては、図１２に示すように、ファイル管理領域ブロック専用に２ブロック、ファイルデータ領域用に１ロックの合計３ブロックを用意したＦＡＴを採用する。一般に、ファイル書き込み命令、ファイル削除命令、ファイル名変更命令等のデータの書き込みを伴うファイルアクセスが行なわれると、ファイル管理領域の記憶内容は必ず書き換えられてしまう。したがって、１ブロック当たりのアクセス回数は、ファイルデータ領域に比べ、ファイル情報領域の方が圧倒的に多い。以上の理由により、アクセス回数を考慮して、キャッシュメモリを割り当てることで、データの書き込み処理の一層の効率化を図ることもできる。
【００４６】
さて、本動作例が、図１、図４、図５、図６、図７、図８の動作例と異なる点は、図１におけるキャッシュメモリ８０の容量が３ブロック分の２４ＫＢになった点と、アクセス手段２０と書き込み制御手段４０の処理動作に新たな処理が加わった点である。ブロック番号記憶部９０には、ファイルデータ領域用のキャッシュメモリ８０に記憶されたデータの、不揮発性メモリ７０におけるブロック番号が記憶される。
【００４７】
まず、図１３を参照して、アクセス手段２０の処理動作を説明する。図５と比較すると、「ファイルクローズ外書き込み条件」を有効にする場合として、ファイル移動命令（ステップＴ１）と、ファイル複製命令（ステップＴ１）とが追加された点が異なるのみで、その他に異なる点はない。ファイル移動命令とファイル複製命令とは、ファイル削除命令と同様に、ファイルオープン命令の実行の有無に係わらず実行することができ、ファイル管理領域の記憶内容のみを書き換える。即ち、情報処理手段１０は、ファイルクローズ命令を必ずしも実行することはない。したがって、ファイル移動命令とファイル複製命令のファイルアクセスによる、データ書き込み命令の場合には、「ファイルクローズ外書き込み条件」を有効に設定するようにした。なお、図１３を参照しての詳細な動作説明は重複説明になるので省略する。
【００４８】
次に、図１４を参照して、書き込み制御手段４０の処理動作を説明する。この処理は、図１３におけるステップＳ１６、Ｓ２１、Ｓ２３に対応する処理である。書き込み制御手段４０は、データ書き込み命令を受けると、「ファイルクローズ書き込み条件」が有効か否かを判断する（ステップＳ１０１）。有効な場合（ステップＳ１０１のＹｅｓ）、消去制御手段５０に消去命令を発行して、不揮発性メモリ７０のファイル管理領域であるブロック「０」とブロック「１」の２ブロック分を消去し（ステップＳ１０２）、キャッシュメモリ８０のファイル管理領域のブロック「０」、ブロック「１」データを、不揮発性メモリ７０の該当領域に夫々ブロック毎書き込む（ステップＳ１０３）。次に、再度、消去制御手段５０に消去命令を発行して、ブロック番号記憶部９０に記憶されているブロック番号に対応した不揮発性メモリ７０のデータを消去し（ステップＳ１０４）、ブロック番号記憶部９０に記憶されているブロック番号に対応した不揮発性メモリ７０のエリアに、キャッシュメモリ８０に記憶されているデータをブロック毎書き込む（ステップＳ１０５）。
【００４９】
一方、「ファイルクローズ書き込み条件」が無効な場合（ステップＳ１０１のＮｏ）、書き込み命令を受けたデータをブロック番号毎に分割し、ブロック番号順に書き込み処理を開始する（ステップＳ１０６）。次に、書き込み命令を受けたアドレスが、ファイル管理領域またはファイルデータ領域のいずれであるかを判断する（ステップＳ１０７）。なお、アクセス手段２０は、書き込み制御手段４０に対して、一度に、ファイル管理領域およびファイルデータ領域の双方の領域のデータに対する書き込み命令を発しないものとする。アクセス手段２０が、双方の領域に書き込み命令を発する場合は、領域毎に書き込み命令を発する必要がある。書き込み命令を受けたアドレスが、ファイル管理領域のものである場合、書き込み命令を受けたファイル管理領域のブロックに対応する、キャッシュメモリ８０内のエリアが空状態か否かを判断する（ステップＳ１０８）。ファイル管理領域用のキャッシュメモリ８０内のエリアが空状態である場合（ステップＳ１０８のＹｅｓ）、読み出し制御手段６０に読み出し命令を発行し、書き込み命令を受けたアドレスから算出されるブロック番号に対応する不揮発性メモリ７０のデータをブロック毎読み出し、ファイル管理領域用のキャッシュメモリ８０のエリアにコピーし（ステップＳ１０９）、ファイル管理領域用のキャッシュメモリ８０のエリアに記憶されているデータの内の書き込み命令を受けたアドレスに該当するデータを、書き込み命令を受けたデータで書き換え（ステップＳ１１０）、ステップＳ１１１の処理に移行する。また、ファイル管理領域用のキャッシュメモリ８０のエリアが空状態でない場合（ステップＳ１０８のＮｏ）、ステップＳ１１０の処理を実行して、ステップＳ１１１の処理に移行する。一度、ファイル管理領域のデータを読み出せば、ブロック「０」、ブロック「１」、各々のファイル管理領域用のキャッシュメモリ８０のデータが保存／更新され続けるので、リセット等が掛からない限り、不揮発性メモリ７０から読み出す必要はない。
【００５０】
ステップＳ１１１の処理では、書き込み命令を受けたデータが、まだ残っているか否かを判断する。書き込み命令を受けたデータが、まだ残っている場合は（ステップＳ１１１のＹｅｓ）、ステップＳ１１０の処理に戻る。例えば、ファイル管理領域のブロック「０」、ブロック「１」の書き換え命令を受けた場合、初めにブロック「０」を書き換え、ブロック「０」用のキャッシュメモリ８０の更新が終了した後、書き込み命令を受けたデータが、まだ残っているか否かを判断すると、ブロック「１」のデータが残っていることになり、再度、ステップＳ１１０の処理に戻る。書き込み命令を受けたデータが、残っていない場合（ステップＳ１１１のＮｏ）、「ファイルクローズ外書き込み条件」が有効か否かを判断し（ステップＳ１１２）、有効である場合（ステップＳ１１２のＹｅｓ）、消去制御手段５０に対して消去命令を発行して、不揮発性メモリ７０のファイル管理領域であるブロック「０」とブロック「１」の２ブロック分のデータを消去し（ステップＳ１１３）、キャッシュメモリ８０におけるファイル管理領域のブロック「０」、ブロック「１」のデータを、フラッシュメモリ７０の該当領域に夫々ブロック毎書き込む（ステップＳ１１４）。また、「ファイルクローズ外書き込み条件」が無効である場合（ステップＳ１１２のＮｏ）、書き込み制御手段４０の処理動作を終了する。本動作例では、「ファイルクローズ外書き込み条件」が有効である場合、ファイルデータ領域を書き換えないファイルアクセスによるデータ書き込み命令が発行されたことになるので、ファイルデータ領域用のキャッシュメモリ８０のデータを不揮発性メモリ７０へ書き込むことは行わない。
【００５１】
一方、書き込み命令を受けたアドレスがファイル管理領域のものでない場合（ステップＳ１０７のＮｏ）、ファイルデータ領域用のキャッシュメモリ８０が空状態か否かを判断する（ステップＳ１１５）。フラッシュメモリ８０から読み出したデータを記憶しておらずファイルデータ領域用のキャッシュメモリ８０が空状態である場合（ステップＳ１１５のＹｅｓ）、読み出し制御手段６０に対して読み出し命令を発行して、書き込み命令を受けたアドレスから算出されるブロック番号に対応する不揮発性メモリ７０のデータをブロック毎読み出し、ファイルデータ領域用のキャッシュメモリ８０にコピーし、ブロック番号記憶部９０の記憶内容を、この読み出したブロックのブロック番号で更新する（ステップＳ１１６）。次に、ファイルデータ領域用のキャッシュメモリ８０に記憶されているデータの内の書き込み命令を受けたアドレスに該当するデータを、書き込み命令を受けたデータで書き換えて（ステップＳ１１７）、ステップＳ１２３の処理に移行する。
【００５２】
ファイルデータ領域用のキャッシュメモリ８０が空状態でない場合（ステップＳ１１５のＮｏ）、書き込み命令を受けたアドレスから算出されるブロック番号とブロック番号記憶部９０に記憶されているブロック番号とが一致するか否かを判断し（ステップＳ１１８）、一致する場合（ステップＳ１１８のＹｅｓ）、ステップＳ１１７の処理を実行する。一方、一致しない場合（ステップＳ１１８のＮｏ）、消去制御手段５０を制御して、ブロック番号記憶部９０に記憶されているブロック番号に対応した不揮発性メモリ７０のデータを消去し（ステップＳ１１９）、ブロック番号記憶部９０に記憶されているブロック番号に対応した不揮発性メモリ７０内のエリアに、ファイルデータ領域用のキャッシュメモリ８０に記憶されているデータをブロック毎書き込む（ステップＳ１２０）。次に、読み出し制御手段６０に読み出し命令を発行し、書き込み命令を受けたアドレスから算出されるブロック番号に対応する不揮発性メモリ７０のデータをブロック毎読み出し、ファイルデータ領域用のキャッシュメモリ８０にコピーし、ブロック番号記憶部９０のデータを、この読み出したブロックのブロック番号で更新し（ステップＳ１２１）、ファイルデータ領域用のキャッシュメモリ８０に記憶されているデータの内の書き込み命令を受けたアドレスに該当するデータを、書き込み命令で指定されたデータで書き換えて（ステップＳ１２２）、ステップＳ１２３の処理に移行する。ステップＳ１２３の処理では、書き込み命令を受けたデータが、まだ残っているか否かを判断する。書き込み命令を受けたデータが、まだ残っている場合（ステップＳ１２３のＹｅｓ）には、ステップＳ１１８の処理に戻り、一方、書き込み命令を受けたデータが、残っていない場合（ステップＳ１２３のＮｏ）には、書き込み制御手段４０の処理動作を終了する。
【００５３】
なお、ステップＳ１０２、Ｓ１０４、Ｓ１１３、Ｓ１１９における消去制御手段５０が行なう消去処理は、先に図７を参照して説明したものと同一である。また、ステップＳ１０９、Ｓ１１６、Ｓ１２２における読み出し制御手段６０が行なう読み出し処理は、先に図８を参照して説明したものと同一である。
【００５４】
次に、より具体的に動作例を説明して発明理解の容易化を図る。図１５は、書き込み制御手段４０の動作例の模式的説明図である。書き込み制御手段４０は、書き込み命令をセクタ単位で受けるものとする。例えば、セクタ「３２」の書き込み命令を受けると、セクタ「３２」（ブロック「２」、ページ「０」）のアドレス「０ｘ００００〜０ｘ１ＦＦＦ」の５１２バイト分のデータの書き込みを受けることである。さて、「ファイルクローズ書き込み条件」と「ファイルクローズ外書き込み条件」とが無効となっていて、ファイルデータ領域用のキャッシュメモリ８０にブロック「３９」に書き込むデータが記憶されている状態で、書き込み制御手段４０が、ファイルデータ領域（セクタ「６４」からセクタ「７１」まで）の書き込み命令を受けるもとする。
【００５５】
まず、書き込み命令を受けたセクタの範囲から、ブロック番号が「４」であり、ファイルデータ領域への書き込みであると判断される。ブロック番号記憶部９０のデータは「３９」が記憶されている。したがって、書き込み命令を受けたアドレスから算出されるブロック番号「４」とブロック番号記憶部の記憶内容「３９」とは一致しないので、ファイルデータ領域用のキャッシュメモリ８０に記憶されているデータを、ブロック番号「３９」に対応するフラッシュメモリ内のエリアに書き込む（ステップＳ１０１、Ｓ１０６、Ｓ１０７，１１５、１１８、１１９１２０）。次に、読み出し制御手段６０に対して読み出し命令を発行して、ブロック番号「４」に対応した不揮発性メモリ７０のデータを読み出し、キャッシュメモリ８０にコピーし、キャッシュメモリ８０に記憶されているデータの内で、セクタ「６４」からセクタ「７１」に該当するデータ、４ＫＢ分を更新し（ステップＳ１２１、Ｓ１２２）、書き込み制御手段４０の処理動作を終了する（ステップＳ１２３）。ここで、図１５に示すように、キャッシュメモリ８０の右上がり斜線部がデータ更新が行われた部分である。図から分かるように、領域Ｃ（ファイルデータ領域）には、セクタ「６４」〜「７１」までの８ページ分のデータが新たに記憶された。
【００５６】
次に、このファイルデータ領域（セクタ「７２」からセクタ「７５」まで）に対する書き込み命令を受けたとする。まず、書き込み命令を受けたセクタの範囲から、ブロック番号が「４」であり、ファイルデータ領域への書き込みであると判断される。ブロック番号記憶部の記憶内容は「４」であるので、書き込み命令を受けたアドレスから算出されるブロック番号「４」と、ブロック番号記憶部９０の記憶内容「４」とは一致する。しあたがって、キャッシュメモリ８０に記憶されているデータの内のセクタ「７２」からセクタ「７５」に該当するデータ、２ＫＢ分を更新し（ステップＳ１０１、Ｓ１０６、Ｓ１０７、Ｓ１１５、Ｓ１１８、Ｓ１１７）、書き込む制御手段４０の処理動作を終了する（ステップＳ１２３）。ここで、図１５のキャッシュメモリ８０の右下がり斜線分が、データ更新が行われた部分（４ページ分）である。
【００５７】
したがって、この動作例においても、書き込みデータが属するブロック番号と、ブロック番号記憶部９０に記憶しておいたブロック番号とが異なる場合には、即ち、両ブロック番号が異なる場合には、キャッシュメモリ８０に記憶されているデータを、不揮発性メモリ７０内の対応するエリアに記憶させるので、不揮発性メモリへのアクセス回数が低減できて、この結果、処理オーバーヘッドを低減できる。また、両ブロック番号が同一の場合には、書き込みデータでキャシュメモリ８０の記憶内容を更新するので、不揮発性メモリ７０へのアクセス回数が低減できて、この結果、処理オーバーヘッドを低減できる。
【００５８】
図１６は、この発明の実施の形態の情報処理装置のハードウエア構成図である。このハードウエア構成では、ＣＰＵ１００と、ＲＯＭ１１０と、キャッシュ領域を設けたＲＡＭ１２０と、不揮発性メモリ７０としてのフラッシュメモリ１３０とを有していて、各デバイスは相互に所要の情報を授受可能にバスで接続されている。半導体記録媒体としてのＲＯＭ１１０には、以上説明してきたような動作手順を記述したデータ書き込み制御プログラムが記録されている。ＲＡＭ１２０のキャッシュ領域がキャッシュメモリ８０になると共に、キャッシュ領域以外のワークエリアには、図１のファイル管理テーブル３０、ブロック番号記憶部９０が格納される。そして、ＣＰＵ１００が、ＲＯＭ１１０に記録されているデータ書き込み制御プログラムを実行することによって、情報処理手段１０、アクセス手段２０、書き込み制御手段４０、消去制御手段５０、読み出し制御手段６０が実現されて、フローチャートや模式的説明図を参照して説明してきたようなデータ書き込み制御が行われることになる。
【００５９】
なお、図１６に示すハードウエア構成例では、記録媒体としてＲＯＭ１１０を用いる場合を示しているが、コンピュータ読み取り可能な他の記録媒体であっても良い。例えば、ＩＣカード等の半導体記録媒体、ＣＤＲＯＭ、ＤＶＤＲＯＭ等の光記録媒体、ＭＯ等の磁気光記録媒体、ＦＤ、ハードディスク等の磁気記録媒体等を用いても良い。
【００６０】
以上、本発明の実施の形態を説明してきたが、本発明の要旨はこれらに限定されるものではなく、上記実施の形態に対して種々の変形や変更を施しうることは言うまでもない。
【発明の効果】
以上説明したきたように、本発明によれば、不揮発性メモリへのアクセス回数の低減を図るようにしたり、所定時間の経過をデータ書き込みのトリガとすることを不要としたりしため、不揮発性メモリへのデータ書き込み処理の処理オーバーヘッドを低減できるという効果が得られる。
【図面の簡単な説明】
【図１】本発明の実施の形態の情報処理装置のブロック構成図である。
【図２】第１の動作例の説明で用いる不揮発性メモリ７０のメモリ構造を示す説明図である。
【図３】ＦＡＴの説明図である。
【図４】情報処理手段１０の動作説明のためのフローチャートである。
【図５】アクセス手段２０の第１の動作例を説明するためのフローチャートである。
【図６】書き込み制御手段４０の第１の動作例を説明するためのフローチャートである。
【図７】消去制御手段５０の動作説明のためのフローチャートである。
【図８】読み出し制御手段６０の動作説明のためのフローチャートである。
【図９】情報処理手段１０の動作説明のための説明図である。
【図１０】第１の動作例の模式的説明図である。
【図１１】第２の動作例の説明で用いる不揮発性メモリ７０のメモリ構造を示す説明図である。
【図１２】第２の動作例において採用するＦＡＴの説明図である。
【図１３】アクセス手段２０の第２の動作例を説明するためのフローチャートである。
【図１４】書き込み制御手４０の第２の動作例を説明するためのフローチャートである。
【図１５】第２の動作例の模式的説明図である。
【図１６】本発明の実施の形態の情報処理装置のハードウエア構成図である。
【図１７】ファイル管理テーブル３０の説明図である。
【符号の説明】
１０  情報処理手段
２０  アクセス手段
３０  ファイル管理テーブル
４０  書き込み制御手段
５０  消去制御手段
６０  読み出し制御手段
７０  不揮発性メモリ
８０  キャッシュメモリ
９０  ブロック番号記憶部
１００  ＣＰＵ
１１０  ＲＯＭ
１２０  ＲＡＭ
１３０  フラッシュメモリ
【図１】
0003578265.tif 000002
【図２】
0003578265.tif 000003
【図３】
0003578265.tif 000004
【図４】
0003578265.tif 000005
【図５】
0003578265.tif 000006
【図６】
0003578265.tif 000007
【図７】
0003578265.tif 000008
【図８】
0003578265.tif 000009
【図９】
0003578265.tif 000010
【図１０】
0003578265.tif 000011
【図１１】
0003578265.tif 000012
【図１２】
0003578265.tif 000013
【図１３】
0003578265.tif 000014
【図１４】
0003578265.tif 000015
【図１５】
0003578265.tif 000016
【図１６】
0003578265.tif 000017
【図１７】
0003578265.tif 000018