(57)【要約】【課題】書換回数に限界のある記憶装置では、書込データをメモリ上に蓄積し、あたかも書込を行ったように見せかけることで書換回数を制御し、寿命を制御する。  計算機ではデータはファイルとして扱われ、ファイルへの書込が記憶装置への書込に変換される。この変換において、書込先アドレスが動的に割付けられるため、前記方法では、メモリに無駄が発生する。【解決手段】アプリケーションプログラムからの書込要求に対してシリコンディスク記憶装置に記憶する前にメモリにデータを一時記憶し、所定周期ごとにメモリからシリコンディスク記憶装置にデータを移すようにされた計算機の記憶装置において、メモリは書込む記憶内容をファイル名とデータとして記憶し、シリコンディスク記憶装置に移す際にシリコンディスク記憶装置のアドレスとデータに変換する。【選択図】図１
2011048722.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムからの書込要求に対してシリコンディスク記憶装置に記憶する前にメモリにデータを一時記憶し、所定周期ごとに前記メモリから前記シリコンディスク記憶装置にデータを移すようにされた計算機の記憶装置において、
前記メモリは書き込む記憶内容をファイル名とデータとして記憶し、シリコンディスク記憶装置に移す際に前記シリコンディスク記憶装置のアドレスとデータに変換することを特徴とする計算機の記憶装置。
【請求項２】
請求項１記載の計算機の記憶装置において、
前記アプリケーションプログラムからの書込要求に応じて前記メモリへの書込を行う場合に、ファイル名を確認して同一ファイル名が前記メモリに存在するときにはデータ部分のみ更新し、ファイル名が存在しないときにはファイル名とデータを組にして前記メモリに記憶することを特徴とする計算機の記憶装置。
【請求項３】
請求項１記載の計算機の記憶装置において、
前記メモリは書き込む記憶内容をファイル名とポインタとデータとして記憶することを特徴とする計算機の記憶装置。
【請求項４】
請求項３記載の計算機の記憶装置において、
前記アプリケーションプログラムからの書込要求に応じて前記メモリへの書込を行う場合に、ファイル名とポインタの組を確認して同一の組が前記メモリに存在するときにはデータ部分のみ更新し、同一の組が存在しないときにはファイル名とポインタとデータを組にして前記メモリに記憶することを特徴とする計算機の記憶装置。
【請求項５】
アプリケーションプログラムと、シリコンディスク記憶装置と、前記アプリケーションプログラムからの書込データを該シリコンディスク記憶装置のアドレスに対応付けて一時記憶するディスクバッファを含むメモリと、前記シリコンディスク記憶装置上のデータをファイルとして扱うとともにファイルと前記シリコンディスク記憶装置のアドレスとの間の変換を行いアドレスを動的に変更するファイルシステムと、前記アプリケーションプログラムと前記シリコンディスク記憶装置と前記メモリと前記ファイルシステムとの間のデータ書込、読み出しを制御するシリコンディスク記憶装置アクセスプログラムから構成される計算機の記憶装置において、
前記メモリに、前記アプリケーションプログラムからの書込データを前記ファイルシステムのファイル名に対応付けて一時記憶するファイルシステムバッファを追加し、
前記シリコンディスク記憶装置アクセスプログラムは、計算機の管理情報などシリコンディスク記憶装置に直接書込が必要なデータを前記ディスクバッファに記憶し、ファイル情報を前記ファイルシステムバッファに記憶させるとともに、所定周期で前記ディスクバッファと前記ファイルシステムバッファの記憶内容を前記シリコンディスク記憶装置に移すことを特徴とする計算機の記憶装置。
【請求項６】
請求項５記載の計算機の記憶装置において、
前記シリコンディスク記憶装置アクセスプログラムは、前記アプリケーションプログラムからの書込要求に応じてファイルへの書込を行う場合に、ファイル名を確認して同一ファイル名が前記ファイルシステムバッファに存在するときにはデータ部分のみ更新し、ファイル名が存在しないときにはファイル名とデータを組にして前記ファイルシステムバッファに記憶することを特徴とする計算機の記憶装置。
【請求項７】
請求項５記載の計算機の記憶装置において、
前記シリコンディスク記憶装置アクセスプログラムは、前記アプリケーションプログラムからの書込要求に応じて前記ファイルシステムを介さず直接シリコンディスク記憶装置への書込を行う場合に、アドレスを確認して同一のアドレスが前記ディスクバッファに存在するときにはそのアドレスに対応する前記ディスクバッファのデータを書込データに書換、同一のアドレスが記録されていない場合は、書込要求の書込アドレスと書込データを対で前記ディスクバッファに追加記録することを特徴とする計算機の記憶装置。
【請求項８】
アプリケーションプログラムと、シリコンディスク記憶装置と、前記アプリケーションプログラムからの書込データを一時記憶するメモリと、前記シリコンディスク記憶装置上のデータをファイルとして扱うとともにファイルと前記シリコンディスク記憶装置のアドレスとの間の変換を行いアドレスを動的に変更するファイルシステムと、前記アプリケーションプログラムと前記シリコンディスク記憶装置と前記メモリと前記ファイルシステムとの間のデータ書込、読み出しを制御するシリコンディスク記憶装置アクセスプログラムから構成される計算機の記憶装置において、
前記メモリは、前記アプリケーションプログラムからの書込データを前記ファイルシステムのファイル名に対応付けて一時記憶し、
前記シリコンディスク記憶装置アクセスプログラムは、所定周期で前記メモリの記憶内容を前記シリコンディスク記憶装置に移すことを特徴とする計算機の記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、書換回数に限界のあるシリコンディスク記憶装置を用いる計算機の記憶装置に係り、特に書換回数を遵守しながらかつメモリの使用効率をあげ、より少ないメモリ容量でアクセス制御を実現する計算機の記憶装置に関する。
【背景技術】
【０００２】
近年、産業分野でもパーソナルコンピュータ（以下、PCと記載する）が使われ始めている。PCの記憶装置としては、主にハードディスクが使用されているが、産業分野では耐環境性が求められるため、耐振性に優れたシリコンディスク記憶装置が注目され、採用が検討されている。
【０００３】
しかし、シリコンディスク記憶装置には、書換回数が約100,000回という限界があり、PCの記憶装置のように書換が発生する用途として使用するためには、この限界値内で使用しなければならないという制限がある。また、この限界値は、シリコンディスク記憶装置の容量増加に伴う回路の微細化により、さらに減少する傾向にあり、近年のものでは10,000回というものもある。
【０００４】
また産業用PCにシリコンディスク記憶装置を採用するには、機器に故障が発生した場合の影響が大きく、定期的な保守に加え、その保守期日まで書換回数が限界値に達しないようシリコンディスク記憶装置へのアクセスを制御することが重要である。
【０００５】
そのため、シリコンディスク記憶装置へのアクセスを制御して所望の寿命を得る方法として特許文献1のように、シリコンディスク記憶装置への書込データをメモリ上に保持し、実際にはシリコンディスク記憶装置の書換を行わず、あたかも書込を行ったように見せかけることでシリコンディスク記憶装置の寿命を制御する方法が提案されている。
【０００６】
なお、本発明において使用されるシリコンディスク記憶装置とは、半導体を使用した不揮発性メモリのことであり、一般的にはＳＳＤメモリ（Solid state device）、フラッシュメモリと呼ばれるものを含む。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−５２３１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献1で示されるシリコンディスク記憶装置のアクセス制御では書込データを一時的にメモリに保持し、適宜の周期でメモリの記憶内容をシリコンディスク記憶装置に移すようにしている。この結果、この周期間に複数回の書込が実行されてもこれはメモリに対して行われるのみなので、シリコンディスク記憶装置に対する書込回数としては先の周期で定まる回数に制限することができる。
【０００９】
この場合に、書込データを一時的に記憶しておくメモリは、PC上で動作するプログラムでも使用するため、書込データの保持に使用するメモリ領域のサイズを小さく抑えることが求められるが、以下に示すような効率の悪さがある。
【００１０】
一般にPC上では、プログラムが扱うデータは記憶装置上での位置や記憶装置へのアクセス方法を意識しなくて済むよう、ファイルシステムというプログラムにより抽象化されたファイルとして扱われる。
【００１１】
ファイル内のデータの位置は、ファイルシステムにより、シリコンディスク記憶装置上のアドレスと対応付けされる。この対応付けは固定ではなく、ファイルシステムの仕様により動的に変化するため、プログラムからはファイル内の同一位置のデータ書換であっても、シリコンディスク記憶装置上では書換の度に別アドレスのデータの書換に変換されてしまっている場合がある。
【００１２】
このため、使用しなくなった古い書込データであるにもかかわらず、メモリ上に残ってしまい無駄なメモリ消費が発生してしまっていた。
【００１３】
このように、データをファイルとして扱うPCでは特許文献1の方法は、メモリの使用効率が悪いという問題点がある。
【００１４】
本発明の目的は、この無駄なメモリ消費をなくし、より少ないメモリ容量でシリコンディスク記憶装置の寿命制御を実現することにある。
【課題を解決するための手段】
【００１５】
本発明では、アプリケーションプログラムからの書込要求に対してシリコンディスク記憶装置に記憶する前にメモリにデータを一時記憶し、所定周期ごとにメモリからシリコンディスク記憶装置にデータを移すようにされた計算機の記憶装置において、メモリは書込む記憶内容をファイル名とデータとして記憶し、シリコンディスク記憶装置に移す際にシリコンディスク記憶装置のアドレスとデータに変換する。
【００１６】
また、アプリケーションプログラムからの書込要求に応じてメモリへの書込を行う場合に、ファイル名を確認して同一ファイル名がメモリに存在するときにはデータ部分のみ更新し、ファイル名が存在しないときにはファイル名とデータを組にしてメモリに記憶する。
【００１７】
また、メモリは書き込む記憶内容をファイル名とポインタとデータとして記憶する。
【００１８】
また、アプリケーションプログラムからの書込要求に応じてメモリへの書込を行う場合に、ファイル名とポインタの組を確認して同一の組がメモリに存在するときにはデータ部分のみ更新し、同一の組が存在しないときにはファイル名とポインタとデータを組にしてメモリに記憶する。
【００１９】
本発明では、アプリケーションプログラムと、シリコンディスク記憶装置と、アプリケーションプログラムからの書込データをシリコンディスク記憶装置のアドレスに対応付けて一時記憶するディスクバッファを含むメモリと、シリコンディスク記憶装置上のデータをファイルとして扱うとともにファイルとシリコンディスク記憶装置のアドレスとの間の変換を行いアドレスを動的に変更するファイルシステムと、アプリケーションプログラムとシリコンディスク記憶装置とメモリとファイルシステムとの間のデータ書込、読み出しを制御するシリコンディスク記憶装置アクセスプログラムから構成される計算機の記憶装置において、
メモリに、アプリケーションプログラムからの書込データをファイルシステムのファイル名に対応付けて一時記憶するファイルシステムバッファを追加し、
シリコンディスク記憶装置アクセスプログラムは、計算機の管理情報などシリコンディスク記憶装置に直接書込が必要なデータをディスクバッファに記憶し、ファイル情報をファイルシステムバッファに記憶させるとともに、所定周期でディスクバッファとファイルシステムバッファの記憶内容をシリコンディスク記憶装置に移す。
【００２０】
また、シリコンディスク記憶装置アクセスプログラムは、アプリケーションプログラムからの書込要求に応じてファイルへの書込を行う場合に、ファイル名を確認して同一ファイル名がファイルシステムバッファに存在するときにはデータ部分のみ更新し、ファイル名が存在しないときにはファイル名とデータを組にしてファイルシステムバッファに記憶する。
【００２１】
また、シリコンディスク記憶装置アクセスプログラムは、アプリケーションプログラムからの書込要求に応じてファイルシステムを介さず直接シリコンディスク記憶装置への書込を行う場合に、アドレスを確認して同一のアドレスがディスクバッファに存在するときにはそのアドレスに対応するディスクバッファのデータを書込データに書換、同一のアドレスが記録されていない場合は、書込要求の書込アドレスと書込データを対でディスクバッファに追加記録する。
【００２２】
本発明では、アプリケーションプログラムと、シリコンディスク記憶装置と、アプリケーションプログラムからの書込データを一時記憶するメモリと、シリコンディスク記憶装置上のデータをファイルとして扱うとともにファイルとシリコンディスク記憶装置のアドレスとの間の変換を行いアドレスを動的に変更するファイルシステムと、アプリケーションプログラムとシリコンディスク記憶装置とメモリとファイルシステムとの間のデータ書込、読み出しを制御するシリコンディスク記憶装置アクセスプログラムから構成される計算機の記憶装置において、
メモリは、アプリケーションプログラムからの書込データを前記ファイルシステムのファイル名に対応付けて一時記憶し、シリコンディスク記憶装置アクセスプログラムは、所定周期でメモリの記憶内容をシリコンディスク記憶装置に移す。
【発明の効果】
【００２３】
本発明の方法によれば、PCにおけるシリコンディスク記憶装置の寿命制御をより少ないメモリ消費で実現できる。
【図面の簡単な説明】
【００２４】
【図１】本発明の一実施例である計算機の構成図である。
【図２】ディスク書込処理ルーチンの処理フローである。
【図３】ディスク読込処理ルーチンの処理フローである。
【図４】書出周期設定プログラムの処理フローである。
【図５】ディスクバッファ書出ルーチンの処理フローである。
【図６】従来技術におけるファイル書込時のディスクバッファ内容の変化を示す図である。
【図７】ファイル書込処理ルーチンの処理フローである。
【図８】ファイル読込処理ルーチン１０６の処理フローである。
【図９】本発明におけるファイル書込時のファイルシステムバッファ内容の変化を示す図である。
【図１０】ファイルシステムバッファ書出ルーチンの処理フローである。
【図１１】従来技術における計算機の構成図である。
【発明を実施するための形態】
【００２５】
本発明の一実施例を図を用いて説明する。
【実施例】
【００２６】
図１は本実施例の計算機の構成図である。
【００２７】
本発明の計算機は、記憶装置としてシリコンディスク記憶装置１０２と書換回数に制限のないメモリ１０３を有し、その他にアプリケーションプログラム１００と書出周期設定プログラム１１３とシリコンディスク記憶装置アクセスプログラム１０１などで構成される。このうち、書出周期設定プログラム１１３については、後で図４を用いてその動作を説明する。
【００２８】
メモリ１０３には、後述するファイルシステム１０９への書込データを記録するファイルシステムバッファ１０４と、シリコンディスク記憶装置１０２への書込データを記録するディスクバッファ１０５が領域確保されている。
【００２９】
このうち、ファイルシステムバッファ１０４には、書込対象のファイル名とファイル内のデータの位置を表すポインタと書込むデータが記録される。このファイルシステムバッファ１０４の内容の変化については後で図９を用いて詳細に説明する。
【００３０】
またディスクバッファ１０５には、シリコンディスク記憶装置１０２への書込位置を表すアドレスと書込むデータが記録される。
【００３１】
シリコンディスク記憶装置アクセスプログラム１０１は、シリコンディスク記憶装置１０２上のデータをファイルとして抽象化するファイルシステム１０９を備える。シリコンディスク記憶装置アクセスプログラム１０１の機能は、大きく２つの機能に分けられる。
【００３２】
一つ目の機能は、ファイルシステム１０９に関連してメモリ１０３内のファイルシステムバッファ１０４との間で、処理を行うファイル処理部である。ファイル処理部は、ファイルの読込処理を行うファイル読込処理ルーチン１０６と、ファイルへの書込データをメモリ１０３に記録するファイル書込処理ルーチン１０７と、メモリ１０３に記録されたファイルへの書込データをファイルシステムに書き出すファイルシステムバッファ書出ルーチン１０８とで構成される。
【００３３】
なお、ファイル読込処理ルーチン１０６、ファイル書込処理ルーチン１０７、ファイルシステムバッファ書出ルーチン１０８の処理については後でそれぞれ図８、図７、図１０を用いて詳細に説明する。
【００３４】
二つ目の機能は、シリコンディスク記憶装置１０２に関連してメモリ１０３内のディスクバッファ１０５との間で、処理を行うディスク処理部である。ディスク処理部は、シリコンディスク記憶装置１０２からの読込処理を行うディスク読込処理ルーチン１１０と、シリコンディスク記憶装置への書込データをメモリ１０３に記録するディスク書込処理ルーチン１１１と、メモリ１０３に記録されたシリコンディスク記憶装置１０２への書込データをシリコンディスク記憶装置１０２に書き出すディスクバッファ書出ルーチン１１２からなる。
なお、ディスク読込処理ルーチン１１０、ディスク書込処理ルーチン１１１、ディスクバッファ書出ルーチン１１２の処理については、それぞれ後で図３、図２、図５を用いて詳細に説明する。
【００３５】
以下本発明の詳細な動作について、まず二つ目の機能（シリコンディスク記憶装置１０２に関連してメモリ１０３内のディスクバッファ１０５との間で、処理を行うディスク処理部）から説明をする。
【００３６】
なお、図１においてファイル書込処理ルーチン１０７とファイルシステムバッファ１０４とファイル読込処理ルーチン１０６が存在しない二つ目の機能の部分というのは、実は引用文献１の従来技術の機能と同じである。このため、二つ目の機能の説明終了後にあらためて従来技術における問題点を整理して説明することにする。
【００３７】
図１１は、図1から従来の機能部分のみを取り出したブロック図であり、この図では、ディスク書込処理ルーチン１１１とディスク読込処理ルーチン１１０とディスクバッファ１０５により実現される。また、シリコンディスク記憶装置１０２のデータをファイルとして扱うため、ファイルシステム１０９が動作する。
以下、書込時の動作について説明するが、書込指令は２系統に分かれている。いずれもアプリケーションプログラム１００から発せられるが、直接ディスク書込処理ルーチン１１１に与えられるケースと、ファイルシステム１０９を経由するケースである。
【００３８】
直接ディスク書込処理ルーチン１１１に与えられるケースは、書込データがシリコンディスク記憶装置１０２のパーテイションの情報や、ファイルシステム１０９の管理データの場合である。これらはファイルとしてではなく、PC管理情報としてシリコンディスク記憶装置１０２の特定の領域に格納されており、これらの更新はファイルシステム１０９を介さずに直接ディスク書込処理ルーチン１１１に書込要求が出される。
【００３９】
なお、読込時の動作についても書込時と同じく２系統に分かれている。いずれもアプリケーションプログラム１００から発せられるが、ファイルシステム１０９を経由するケースとしないケースである。しないケースでは、先の書込データがシリコンディスク記憶装置１０２のパーテイションの情報や、ファイルシステム１０９の管理データの場合である。本発明の以下の説明においては、特に必要のない限りファイルシステム１０９を経由するケースについて説明することにする。
【００４０】
図１１において、まずアプリケーションプログラム１００がファイルへの書込を行うと、ファイルシステム１０９がシリコンディスク記憶装置１０２への書込に変換し、ディスク書込処理ルーチン１１１に書込要求を行う。書込要求は書込先アドレスと書込データを含む。
【００４１】
図２は、ディスク書込処理ルーチン１１１の処理フローである。ファイルシステム１０９から書込先アドレスと書込データが入力されると、ステップＳ２００では、ディスクバッファ１０５に取り込んだ書込先アドレスと同一のアドレスが記録されているかをチェックする。
【００４２】
ファイルシステム１０９から入力した書込先アドレスと同一のアドレスが記録されていない場合は、ステップＳ２０１で、入力した書込先アドレスと書込データをディスクバッファ１０５に新規に追加記録する。
【００４３】
書込先アドレスと同一のアドレスが記録されていた場合は、ステップＳ２０２で、ディスクバッファ１０５内のこのアドレスに対応するデータをファイルシステム１０９から入力した書込データに書換る。
【００４４】
このように、ディスク書込処理ルーチン１１１では、書込要求に対して、シリコンディスク記憶装置１０２に直ちに書込を行うのではなく、書込データをディスクバッファ１０５に蓄積し、その都度、シリコンディスク記憶装置１０２への書込を行わないように制御している。
【００４５】
図３は、書込処理が以上のように行われることを前提とするディスク読込処理ルーチン１１０の処理フローである。ファイルシステム１０９から読込アドレスが入力されると、ステップＳ３００では、ディスクバッファ１０５に読込アドレスと同一のアドレスが記録されているかチェックする。
【００４６】
読込アドレスと同一のアドレスがディスクバッファ１０５に記録されていない場合は、ステップＳ３０１で、シリコンディスク記憶装置１０２から読込アドレスのデータを読み込む。
【００４７】
読込アドレスと同一のアドレスがディスクバッファ１０５に記録されている場合は、ステップＳ３０２で、ディスクバッファ１０５内のこのアドレスに対応するデータを読込む。
【００４８】
以上の書込、読込処理を通じてアプリケーションプログラム１００側から見るとシリコンディスク記憶装置１０２に書込をしているように見えるが、その実ディスクバッファ１０５に蓄積されているデータをシリコンディスク記憶装置１０２に書込まれているように見せかける処理を行っている。
【００４９】
とは言いながら、メモリ１０３内のディスクバッファ１０５にも記憶容量の制限があるので、適宜のタイミングでディスクバッファ１０５に蓄積されているデータをシリコンディスク記憶装置１０２に移す操作を行う必要がある。図４は、この場合の移すタイミング、周期を設定する書出周期設定プログラム１１３の処理フローである。
【００５０】
ステップＳ４００では、ディスクバッファ１０５に蓄積されているデータをシリコンディスク記憶装置１０２に移すための書出周期の入力を要求する画面を表示する。PC利用者は、画面表示を見て書出周期を設定する。なおこの設定は最初に行っておけばよいが、周期設定の考え方は以下のようにされる。例えば、このPCを１０年間使用するとして、シリコンディスク記憶装置に対する書込制限回数が10,000回とするなら、年に1,000回程度なので、毎日３回、従って８時間間隔でディスクバッファ１０５に蓄積されているデータをシリコンディスク記憶装置１０２に移せばよいことになる。
【００５１】
ステップＳ４０１では、書出周期が入力されるまで入力待ちとなり、書出周期が入力されると、ステップＳ４０２で、入力された書出周期をシリコンディスク記憶装置アクセスプログラム１０１に通知する。
【００５２】
シリコンディスク記憶装置アクセスプログラム１０１では、この書出周期の指令を、ディスクバッファ書出ルーチン１１２で受けとり、図５の処理フローで処理する。
【００５３】
ステップＳ５００では、書出周期設定プログラム１１３から設定された周期だけスリープする。スリープが完了すると、ステップＳ５０１でディスクバッファ１０５に蓄積されている全てのデータをシリコンディスク記憶装置１０２の対応するアドレスに書込む処理を行う。
【００５４】
書込処理が完了すると、ステップＳ５０２で、ディスクバッファ１０５内のアドレスとデータを全てクリアする。なお、図４並びに図５の処理は適宜の周期（先の例では８時間間隔）で実行されて、ディスクバッファ１０５に蓄積されているデータをシリコンディスク記憶装置１０２に移す処理が行われる。
【００５５】
従来技術ではこのように読み書き制御を行うことで、シリコンディスク記憶装置１０２への書込データをメモリ１０３のディスクバッファ１０５に蓄積し、実際にはシリコンディスク記憶装置１０２への書込は行わない。あたかもシリコンディスク記憶装置１０２に書込んだように見せかけている。そして、使用者が書出周期設定プログラム１１３を介して設定した書出周期でディスクバッファ１０５に蓄積されたデータをまとめてシリコンディスク記憶装置１０２に書き出すことで、シリコンディスク記憶装置１０２の書換回数を制限回数以内に制御する。
【００５６】
図６は、図11の従来技術において、アプリケーションプログラム１００がファイルAに書込を行った場合のディスクバッファ１０５の内容の変化を示したものである。
【００５７】
ファイルへの書込は、対象のファイルのファイル名とファイル内でのデータ位置を表すポインタと書込データをファイルシステム１０９に渡すことで行われる。ファイルシステム１０９内には、ファイル名とポインタをシリコンディスク記憶装置１０２上の位置を表すアドレスに変換する変換テーブルがあり、この変換テーブルにより、ファイルへの書込はシリコンディスク記憶装置１０２への書込に変換される。
【００５８】
ファイルAへの１回目の書込として、ファイル名＝A、ポインタ＝０ｘ１０００、データ＝"aa"なる情報の書込を行ったとする。このファイルAへの書込は、ファイルシステム１０９の変換テーブルによりシリコンディスク記憶装置１０２への書込情報として、アドレス＝０ｘ１１０００、データ＝"aa"に変換される。このシリコンディスク記憶装置１０２への書込は、ディスクバッファ１０５では、アドレス：０ｘ１１０００、データ："aa"なる情報として記録される。
【００５９】
次に、ファイルAへの１回目の書込と同じポインタに対して、２回目の書込（ファイル名＝A、ポインタ＝０ｘ１０００、データ＝"bb"）を行ったとする。
【００６０】
このとき、ファイルシステム１０９によりシリコンディスク記憶装置１０２への書込に変換されるが、変換テーブルは動的に変化するため、シリコンディスク記憶装置１０２への書込（アドレス＝０ｘ２１０００、データ＝"bb"）に変換される。この書込は、ディスクバッファ１０５には、（アドレス：０ｘ２１０００、データ："bb"）として追加記録される。
【００６１】
以上のような動作により、ディスクバッファ１０５には不要となった（アドレス：０ｘ１１０００、データ："aa"）が残ってしまうことになる。このような動作が繰り返されると、従来技術では、ディスクバッファ１０５に不要なデータが蓄積されてしまい、無駄なメモリ消費が発生してしまうという問題がある。
【００６２】
先の例では書出周期が８時間であるため、この間はディスクバッファ１０５に不要なデータが蓄積され続けることになる。産業用のPCの場合、計算機装置は連続運転されるので、この間の不要データも含めたメモリ領域を確保することは本来のPC演算に使用すべきメモリ領域を削減することになり好ましくない。
【００６３】
シリコンディスク記憶装置１０２への同一ファイル名の２回目以降の書込のときに、動的にアドレスを変更せずに同じアドレスを使用すればよいようにも思えるが、この場合にはシリコンディスク記憶装置１０２の同じ領域のみが劣化してしまうという問題になってくる。シリコンディスク記憶装置１０２内をできるだけ均一に使用していくのには動的にアドレスを変更するのが良策である。
【００６４】
ここからは、本発明の方法による無駄なメモリ消費の回避について説明する。
【００６５】
本発明は、第２の機能（シリコンディスク記憶装置１０２に関連してメモリ１０３内のディスクバッファ１０５との間で、処理を行うディスク処理部）はそのままに、第1の機能（ファイルシステム１０９に関連してメモリ１０３内のファイルシステムバッファ１０４との間で、処理を行うファイル処理部）を追加することにより実現される。第1の機能は、図１のファイル書込処理ルーチン１０７とファイルシステムバッファ１０４とファイル読込処理ルーチン１０６により構成される。
【００６６】
図７は、ファイル書込処理ルーチン１０７の処理フローである。ファイル書込処理ルーチン１０７には、アプリケーションプログラム１００から書込先ファイル名、書込先ポインタ、書込データが入力される。
【００６７】
このとき、ステップＳ７００では、取り込まれた書込先ファイル名と書込先ポインタの組と同一のファイル名とポインタの組が、ファイルシステムバッファ１０４に記録されているかチェックする。
【００６８】
同一の組が記録されていない場合は、ステップＳ７０１で、ファイルシステムバッファ１０４に書込先ファイル名と書込先ポインタと書込データを追加記録する。
【００６９】
同一の組が記録されていた場合は、ステップＳ７０２で、ファイルシステムバッファ１０４の対応するデータのみを書込データに書換える。つまり、ファイル名とポインタはそのままにしてデータのみが更新される。
【００７０】
このように、ファイルへの書込データをファイルシステムバッファ１０４に蓄積し、ファイルシステム１０９に書込要求を出さないようにしている。この結果、第２の機能（シリコンディスク記憶装置１０２に関連してメモリ１０３内のディスクバッファ１０５との間で、処理を行うディスク処理部）側には書込要求が伝達されないので、この場面で第２の機能は一切の動作を起こしていない。従って、ディスクバッファ１０５の記憶内容は前回のクリヤ（図５Ｓ５０２）以降、ファイルシステム１０９からの書込要求で使用されることはない。
【００７１】
ディスクバッファ１０５の記憶内容が更新されるのは、図１１で説明したアプリケーションプログラム１００から直接書込を指示されるPC管理情報の書込の場合のみである。つまり、ディスクバッファ１０５には、シリコンディスク記憶装置１０２のパーテイションの情報や、ファイルシステム１０９の管理データのみが記憶されることになる。
【００７２】
図８は、ファイル読込処理ルーチン１０６の処理フローである。このとき、アプリケーションプログラム１００からは読込ファイル名と読込ポインタが入力される。
【００７３】
ステップＳ８００では、読込ファイル名と読込ポインタの組と同一のファイル名とポインタの組が、ファイルシステムバッファ１０４に記録されているかチェックする。
【００７４】
同一の組が記録されていない場合は、ステップＳ８０１で、ファイルシステム１０９に読込ファイル名と読込ポインタに対応したデータの読込を要求する。同一の組が記録されている場合は、ステップＳ８０２で、ファイルシステムバッファ１０４内の対応するデータを読み込む。
【００７５】
なお、図８には示していないが、ファイルシステムバッファ１０４内に対応するデータがない場合には、この命令は図３のディスク読込処理ルーチン１１０に引き継がれ、ディスクバッファ１０５やシリコンディスク記憶装置１０２の中から該当するデータを読み込むことになる。
【００７６】
以上の書込、読込処理を通じてアプリケーションプログラム１００側から見るとシリコンディスク記憶装置１０２に書込をしているように見えるが、その実ファイルシステムバッファ１０４に蓄積されているデータをシリコンディスク記憶装置１０２に書込まれているように見せかける処理を行っている。
【００７７】
図９は、本発明の方法において、プログラム１００がファイルAに書込を行った場合におけるファイルシステムバッファ１０４の内容の変化を示したものである。
【００７８】
図６の例と同様に、ファイルAへの１回目の書込（ファイル名＝A、ポインタ＝０ｘ１０００、データ＝"aa"）を行った後、２回目の書込（ファイル名＝A、ポインタ＝０ｘ１０００、データ＝"bb"）を行ったとする。
【００７９】
１回目の書込完了後は、ファイルシステムバッファ１０４の内容は、ファイル書込処理ルーチン１０７により、（ファイル名：A、ポインタ：０ｘ１０００、データ："aa"）が記録される。
【００８０】
２回目の書込完了後は、ファイルシステムバッファ１０４の内容は、図7のファイル書込処理ルーチン１０７により、１回目の書込データが書換られ（ファイル名：A、ポインタ：０ｘ１０００、データ："bb"）が記録される。続いて、ファイル名＝A、ポインタ＝０ｘ１０００とする３回目以降の書込指令が発生したとしても、ファイルシステムバッファ１０４の内容は、ファイル名とポインタをそのままにして、データのみを書換る。このため、ファイルへの書込をメモリ１０３に蓄積することで不要なデータが残ることがなくなる。
【００８１】
図１０は、ファイルシステムバッファ書出ルーチン１０８の処理フローである。
【００８２】
ステップＳ１０００では、書出周期設定プログラム１１３から設定された周期だけスリープする。スリープが完了すると、ステップＳ１００１でファイルシステムバッファ１０４に蓄積されている全てのデータの書込をファイルシステム１０９に要求する処理を行う。ここで、図1におけるこのファイルシステム１０９に対する書込要求処理というのは、図１１で示したアプリケーションプログラム１００からの書込要求処理に相当するものである。
【００８３】
ところで、ファイルシステムバッファ書出ルーチン１０８においてステップＳ１００１が、ファイルシステムバッファ１０４に蓄積されている全てのデータの書込をファイルシステム１０９に要求する処理を行うと同じタイミングで、図５に示すステップＳ５０１がディスクバッファ１０５に蓄積されている全てのデータをシリコンディスク記憶装置１０２の対応するアドレスに書込む処理を行っている。
【００８４】
従って、ファイルシステムバッファ１０４に蓄積されている全てのデータは、一旦ディスクバッファ１０５に移るように見えるが、同じタイミングでディスクバッファ１０５に蓄積されている全てのデータをシリコンディスク記憶装置１０２に移しているので、結果的にはファイルシステムバッファ１０４に蓄積されているデータもディスクバッファ１０５に蓄積されているデータもシリコンディスク記憶装置１０２に記憶されることになる。
【００８５】
なお、図１０の説明に戻り、書込処理が完了すると、ステップＳ１００２で、ファイルシステムバッファ１０４内のファイル名とポインタとデータを全てクリアする。
【００８６】
本発明の以上の動作説明から明らかなように、ファイルシステムバッファ１０４には図９のようにデータ記憶がされる。従って、２回目以降の書換でも無駄なメモリ使用は発生しない。
【００８７】
またディスクバッファ１０５は、PC管理情報のみが記憶されることになるため、仮に２回目以降の書換が発生した場合であってもムダなメモリ使用は最小限にとどめることができる。
【００８８】
かつ、シリコンディスク記憶装置１０２の書込回数は最初に設定した時間間隔でのみ行われるので、制限回数を遵守することができる。
【００８９】
本発明の方法によれば、以上の動作により、不要となったデータの蓄積による無駄なメモリ消費を防ぎながら、従来技術と同様にシリコンディスク記憶装置１０２の書換回数を制限回数以内に制御し、シリコンディスク記憶装置１０２の寿命制御を行うことができる。
【産業上の利用可能性】
【００９０】
本発明によれば汎用PCにシリコンディスク記憶装置を使用するときの記録回数制限の問題を解消できるので、産業用への利用範囲拡大を可能とする。
【符号の説明】
【００９１】
１００…アプリケーションプログラム
１０１…シリコンディスク記憶装置アクセスプログラム
１０２…シリコンディスク記憶装置
１０３…メモリ
１０４…ファイルシステムバッファ
１０５…ディスクバッファ
１０６…ファイル読込処理ルーチン
１０７…ファイル書込処理ルーチン
１０８…ファイルシステムバッファ書出ルーチン
１０９…ファイルシステム
１１０…ディスク読込処理ルーチン
１１１…ディスク書込処理ルーチン
１１２…ディスクバッファ書出ルーチン
１１３…書出周期設定プログラム
【図１】
2011048722.tif 000003
【図２】
2011048722.tif 000004
【図３】
2011048722.tif 000005
【図４】
2011048722.tif 000006
【図５】
2011048722.tif 000007
【図６】
2011048722.tif 000008
【図７】
2011048722.tif 000009
【図８】
2011048722.tif 000010
【図９】
2011048722.tif 000011
【図１０】
2011048722.tif 000012
【図１１】
2011048722.tif 000013