説明

データ記憶制御装置

【課題】二次記憶手段としてメモリ部及びコントローラ部と有する記憶手段CFを用い、CFのデータ書き換え動作中に電源遮断が生じてもデータ消失が発生せずデータ書き換え動作を正確に再実行可能なデータ記憶制御装置を実現する。
【解決手段】主記憶メモリ135のバックアップデータ130を二次記憶装置としてのCF145の記憶ブロック単位と同一の記憶ブロック単位に分割し、CF145へのデータ書き込み時にはバックアップデータ130領域における、データ書き込みセクタを含むブロックにフラグをセットする。セクタ単位の書き込みデータがCF145に転送されるが、CF145ではその書き込みデータを含むブロック全体の書き込みを実行する。CF145のデータ書き込み途中で電源遮断が発生した場合はバックアップデータ130領域におけるフラグがセットされた位置のブロック全体の書き込みをCF145に対して行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ記憶制御装置に係わり、特に、データ書き込み中に発生した意図しない電力遮断によって、不良状態となったメモリを、正常状態へと復旧する機能を有するデータ記憶制御装置に関する。
【背景技術】
【0002】
フラッシュメモリを用いたデータ記憶制御装置において、データ書き込み中に発生した意図しない電力遮断によって、不良状態となったメモリを正常状態へと復旧する方法が知られている。
【0003】
この復旧方法の一例として、ファイルシステムに工夫を凝らしたものがある。代表的なファイルシステムであるFATファイルシステムに適用可能な方法の一つとして、特許文献1に記載された技術がある。
【0004】
この特許文献1に記載された技術は、FATファイルシステムを構成する3種類の情報、すなわちFAT情報、ノード情報(ディレクトリエントリ)、ファイルデータ情報のいずれの書き込み中に電力遮断が発生しても、次回復電時には、これら3情報の関係に生じた矛盾から復旧し、書き込み前の状態にロールバックすることを可能とするものである。
【0005】
特許文献1に記載の技術は、データ書き換えの際に、書き換え対象領域を上書きするのではなく、まず、空き領域に更新後データを書き込んで冗長性を持たせた状態をつくり、しかる後に、更新前データを削除することで、電力遮断に対する耐性を向上する技術である。
【0006】
また、フラッシュメモリの性質を考慮した技術として、特許文献2に記載された技術がある。この特許文献2に記載された技術は、フラッシュメモリと、それを制御する制御部とを接続するバスの情報を、所定のタイミングで記録する補助不揮発性メモリを有しており、復電時には補助不揮発性メモリに保存されている情報に基づいて復旧処理を実施するものである。
【0007】
また、特許文献3に記載された技術は、不揮発性メモリからフラッシュメモリへのデータ書き込み中に、電源の瞬断があった場合に、電源再投入時に自己診断を行い、エラー処理を行う技術である。
【0008】
この特許文献3に記載の技術においては、不揮発性メモリの記憶領域内に、フラッシュメモリの記憶領域の書き込み状態を記憶するフラグ領域を有している。そして、電源瞬断があった場合、不揮発性メモリのフラグ領域のデータに基づき、フラッシュメモリへの書き込みエラーを判断している。
【0009】
【特許文献1】特開2004−102660号公報
【特許文献2】特開2000−99405号公報
【特許文献3】特開2001−344156号公報
【発明の開示】
【発明が解決しようとする課題】
【0010】
ところで、フラッシュメモリを用いた外部記憶装置は、小型軽量・低価格・高信頼などの優れた特徴により、主にデジタルカメラ向けの記憶装置として一般に普及している。
【0011】
一方、産業用の組み込みコントローラの分野においても、信頼性が要求されるコントローラでは、回転式ハードディスクと異なり機械的な稼動部がないため信頼性の高いフラッシュメモリを、ハードディスクの代替とするなどの採用が進んでいる。
【0012】
特に、高信頼の要求されるプラント制御装置においては、トレンドデータ蓄積や障害情報蓄積用の大容量外部二次記憶装置としてフラッシュメモリは好適である。
【0013】
ここで、フラッシュメモリチップとコントローラチップとを搭載する二次記憶手段(CF)をハードディスクに代替することができれば便利である。
【0014】
しかしながら、CFには回転式ハードディスクにはない特有の問題がある。それは、データ書き換えに要する時間が長いため、書き込み中の意図しない電力遮断に対する信頼性が低いという問題である。
【0015】
書き込み中に電力遮断した場合、次復旧電時には、書き込み前の状態に戻っていることが望ましいが、現実には、不定の状態になり、書き込み後のデータのみならず、書き込み前のデータをも消失してしまう。
【0016】
データの消失は、高信頼の要求されるプラント制御装置等では許容されるものではない。そこで、このような場合にとられる従来からの方法として、無停電電源装置を適用することが考えられる。
【0017】
しかしながら、プラント制御装置等にも高い経済性が要求される近年においては、装置の高価格化につながる無停電電源装置は敬遠されつつある。
【0018】
そこで、特許文献1記載の技術を用いて、CFが有する上記問題点を解消することが考えられる。
【0019】
しかしながら、特許文献1記載の技術は、FAT情報を始めとするファイルシステム管理情報に生じた矛盾の修復を想定しているため、CFにおけるECCエラーの如き記録メディアのエラーから復旧することは困難な場合が多い。
【0020】
その理由として、CFは、内部のフラッシュメモリを書き換える際に、CF制御ソフトウェアからの書き込み要求サイズ(セクタ単位での書き込み要求サイズ)に関わらず、一般的にブロックとよばれる、セクタより大きな単位で書き換えを行っていることが挙げられる。
【0021】
なお、CFではなく、一般のフラッシュメモリの場合は、書き換え要求自体がブロック単位でなされるようなインターフェースが設けられ、書き込み要求サイズと実際の書き換えサイズとは一致している。
【0022】
CFの場合における、このような書き込み要求サイズと実際の書き換えサイズとの相違は、通常はCF内部のフラッシュメモリコントローラによって隠蔽され、データの整合性を保持するよう適切に制御されてはいるものの、書き込み中の電力遮断によってフラッシュメモリが不良状態となった場合はその限りではない。
【0023】
すなわち、セクタ単位で書き換え要求した側は、CFが、その書き換え要求されたセクタを含むブロック全体として書き換えを実行していることは認識しえず、書き換え中に電力遮断が、生じた場合は、書き換え要求したセクタから書き換ええ再開となる。このような状況では、CFが書き換え中であったブロックの内容は復旧できず、最大でブロックサイズ分の記憶領域が不良状態となる可能性があるのである。
【0024】
特許文献1に記載の技術をCFに適用したときの問題点は、具体的には次のとおりである。
【0025】
更新後データの書き込み中に電力遮断が発生し、且つ更新後データを書き込むために選択された空き領域が、更新前データと同一のフラッシュメモリ消去ブロックに含まれていた場合は、更新後データと更新前データの両方が消失してしまい、正常状態にロールバックできない可能性がある。
【0026】
また、特許文献2記載の技術は、特にフラッシュメモリに対して有効だが、実施するにはフラッシュメモリとそれを制御する制御部とを接続するバスに、補助不揮発性メモリを接続する必要がある。
【0027】
しかし、フラッシュメモリとその制御部とがパッケージ化され、すでに一体となったCFに対して、補助不揮発性メモリを接続することは、CF利用者の立場では不可能なことである。
【0028】
また、特許文献3記載の技術を、適用したとしても、主記憶装置側では、セクタ単位でデータ書き換え要求をしているので、フラグ領域も、CFの実際の書き換え単位であるブロックとは対応しておらず、このフラグ領域のみの記憶情報からでは、CFの消失したデータを復活させることはきない。
【0029】
本発明の目的は、二次記憶手段として、メモリ部及びコントローラ部と有する記憶手段CFを用い、このCFにデータ書き換え動作中に電源遮断が生じても、データの消失が発生せず、データ書き換え動作を正確に再実行可能な、フラッシュメモリを用いたデータ記憶制御装置を実現することである。
【課題を解決するための手段】
【0030】
本発明においては、主記憶メモリのバックアップデータを、二次記憶装置としてのCFの記憶ブロック単位と、同一の記憶ブロック単位に分割し、CFへのデータ書き込み時には、バックアップデータ領域における、データ書き込みセクタを含むブロックにフラグをセットする。セクタ単位の書き込みデータがCFに転送されるが、CFではその書き込みデータを含むブロック全体の書き込みを実行する。
【0031】
CFのデータ書き込み途中で電源遮断が発生した場合は、バックアップデータ領域におけるフラグがセットされた位置のブロック全体の書き込みをCFに対して行う。
【0032】
CFへのデータ書き込みが終了したら、バックアップデータ領域の上記フラグは、リセットされる。
【0033】
本発明は次のように構成される。
(1)主記憶手段と、メモリ部及びコントローラ部と有する二次記憶手段と、上記主記憶手段及び二次記憶手段へのデータの読み書きを制御するデータ制御手段とを備えるデータ記憶制御装置において、このデータ記憶制御装置への供給電力が遮断したか否かと電力供給が復旧したことを検出する電力遮断検出手段を備え、上記データ制御手段は、上記主記憶手段に、バックアップデータ領域が形成され、このバックアップデータ領域は、上記二次記憶手段のデータ書き換え単位であるブロックサイズの倍数をデータ格納単位とし、上記バックアップデータ領域から上記二次記憶手段にデータの書き込みを実行するとき、バックアップデータ領域の書き込みデータが存在するブロックを示す位置情報を記憶し、上記電力遮断検出手段が、データ書き込み中に電力遮断を検出し、その後、電力の復旧を検出すると、記憶した位置情報のブロック単位で、二次記憶手段に対してデータの書き込みを再度実行する。
【0034】
(2)好ましくは、上記(1)において、上記二次記憶手段からのデータ読み出しの際に、実際の二次記憶手段からのデータ読み出しに先んじて、上記バックアップデータ領域を検索し、読み出し対象領域に対応する二次記憶手段のデータ記録位置がバックアップデータ領域内に存在した場合は、バックアップデータを読み出し、バックアップデータ領域内に上記二次記憶手段のデータ記録位置が存在しなかった場合は、読み出し対象領域を二次記憶手段から読み出し、読み出したデータを後の読み出し要求のためにバックアップデータとして主記憶手段に格納する。
【0035】
(3)また、好ましくは、上記(1)において、上記データ制御装置は、上記二次記憶手段へのデータ書き込みの際に、データ書き込みに先んじて、上記バックアップデータ領域を検索し、書き込み対象領域に対応する上記二次記憶手段の記録位置がバックアップデータ領域内に存在しなかった場合は、書き込み対象領域が含まれる上記二次記憶手段の消去ブロックの全部の記録情報を読み出してバックアップデータとし、書き込み対象領域がバックアップデータ領域内に存在するが、書き込み対象領域が含まれる上記二次記憶手段の消去ブロックの一部の記録情報しか存在しない場合は、不足している記録情報を上記二次記憶手段から読み出して補うことで、上記二次記憶手段書き込みコマンド発行前には書き込み対象領域が含まれる上記二次記憶手段の消去ブロックの全部の記録情報が、バックアップデータとして主記憶手段に格納される。
【0036】
(4)また、好ましくは、上記(1)〜(3)において、上記,主記憶手段は、不揮発性メモリであり、上記二次記憶手段はフラッシュメモリを有する。
【発明の効果】
【0037】
本発明によれば、二次記憶装置としてCFを用いた場合でも、データの消失が発生せず、データ書き換え動作を正確に再実行可能な、フラッシュメモリを用いたデータ記憶制御装置を実現することができる。
【0038】
また、本発明をプラント制御装置に適用すれば、一般に流通している安価なCFを用いて、意図しない電力遮断によるデータ消失に対して耐性のあるプラント制御装置を、簡便に実現できる。
【発明を実施するための最良の形態】
【0039】
以下、本発明の実施形態を添付図面を参照して説明する。
なお、以下に説明する実施形態は、本発明を、プラント制御装置のコントローラに適用した場合の例であり、電源投入後の起動時間を短縮するために不揮発性の主記憶メモリを有し、また、トレンドデータ蓄積や障害情報蓄積のための大容量二次記憶装置として、メモリ部及びコメントローラ部と有する記憶手段(CF)を有する例である。
【0040】
図1は、本発明の一実施形態であるフラッシュメモリを用いたデータ記憶制御装置であるコントローラの概略ブロック図であり、図6は本発明が適用されるプラント制御装置の全体概略図である。
【0041】
まず、図6を参照して、プラント制御装置の全体構成を説明する。
図6において、操作卓600とコントローラ100とが通信路605によって接続され、操作卓600からの指示に基づいて、プラント610を構成するセンサやバルブ等のI/O制御をコントローラ100が行う。
【0042】
落雷等によってコントローラ100への電力供給の瞬断が発生した場合でも、速やかに制御を回復するために、プラント制御装置向けコントローラ100には、電源投入後に短時間で立ち上げ処理を完了できる機能を有している。
【0043】
この高速立ち上げ機能実現のための手段として、コントローラ100にはバッテリを接続し、電源が遮断しても、後述する主記憶メモリの内容が保持されるようになっている。
【0044】
この不揮発性の主記憶メモリによって、一般的な情報処理装置の如き外部二次記憶装置からの基本ソフトのローディングといった時間のかかる処理が不要となり、1秒以内に立ち上げ処理が完了する。また、コントローラ100には、トレンドデータの蓄積や障害情報の蓄積のためのCFが装着されている。
【0045】
次に、図1を参照して、コントローラ100の構成を説明する。
図1において、コントローラ100は、アプリケーションプログラム105と、ファイルシステム110と、バックアップデータ作成手段115と、電力遮断検出手段120と、復旧手段125と、CF制御ソフトウェア140と、不揮発性の主記憶メモリ135とを備えている。このコントローラ100には、外部二次記憶装置として、CF145が接続されている。
【0046】
不揮発性の主記憶メモリ135には、バックアップデータ130が格納されている。このバックアップデータ130は、バックアップデータ作成手段115、電力遮断検出手段120、復旧手段125によって管理される。
【0047】
図2(a)は、CF145に内蔵されているフラッシュメモリ145の内容説明図である。図2(a)に示すように、フラッシュメモリ145は、複数のブロック200から構成されていることを表している。
【0048】
ここで、ブロックとは、フラッシュメモリにおける消去・書き込みの単位である。また、ブロックの大きさと個数は、フラッシュメモリの品種により異なるが、この例では、1ブロック32KB、ブロック数16K個としている。ゆえに、CFの総記録容量は、32KB×16K=512MBである。
【0049】
図2(b)は、主記憶メモリ135におけるバックアップデータ130のデータ構造の概略を表している。図2(b)に示すように、バックアップデータ130は、複数のブロックキャッシュ205と、ブロックキャッシュ205を管理する複数のブロックキャッシュ管理情報210とを備えている。
【0050】
ブロックキャッシュ205の大きさは、後述するように、本発明ではブロックサイズの倍数でなければならないため、この例ではブロック200のサイズと同じく32KBとしている。
【0051】
ブロックキャッシュ130の個数について特に制約は設けないが、本発明においてはブロックキャッシュ130はCFの読み取り性能向上のためのディスクキャッシュとしての役割も併せ持つため、数が多いほど性能の向上が期待できる。実施形態では8個としている。ブロックキャッシュ管理情報210も、ブロックキャッシュ130と同数設ける必要がある。
【0052】
図3は、一実施形態におけるブロックキャッシュ管理情報210の具体的なデータ項目を示す図である。図3に示すように、ブロックキャッシュ管理情報は5つの項目から構成されている。
【0053】
すなわち、リスト構造を成すための「次の管理情報へのポインタ300」と、管理情報に一対一で対応するブロックキャッシュ205を指し示す「ブロックキャッシュへのポインタ305」と、ブロックキャッシュ205に格納されているデータの先頭のセクタ番号を表す「先頭セクタ番号310」と、ブロックキャッシュ205内の実際の格納状況を表す「格納済みセクタマップ315」と、CFへ書き込み中か否かを表す「書き込み状態フラグ320」とである。
【0054】
ここで、一実施形態例では、書き込み状態フラグの値が0の時に「書き込み中ではない」ことを意味し、書き込み状態フラグの値が1の時に「書き込み中である」ことを意味している。
【0055】
図4は、一実施形態におけるブロックキャッシュ管理情報210とブロックキャッシュ205との関係を示す図である。図4に示すように、複数のブロックキャッシュ管理情報210と複数のブロックキャッシュ205とは、一つのブロックキャッシュに対して、一つのブロックキャッシュ管理情報が対応し、一対一の関係がある。
【0056】
また、ブロックキャッシュ管理情報210は、「次の管理情報へのポインタ」に基づいたリスト構造を成しており、先頭のブロックキャッシュ管理情報210のアドレスから、順次リストを手繰ってゆくことで、すべての管理情報と「ブロックキャッシュへのポインタ」によって示されるブロックキャッシュへアクセスすることができるようになっている。
【0057】
次に、「先頭セクタ番号」と「格納済みセクタマップ」の用途について図5を参照して説明する。
本発明の一実施形態では、図5に示すように、格納済みセクタマップ315はA〜Dに4等分されており、A〜Dの各領域は、このブロックキャッシュ管理情報210に対応するブロックキャッシュ205を同じく4等分した時の、ブロックキャッシュ205の各領域A〜D(各領域8KB)について、その内容が、対応するCF領域からキャッシュされたものであるかどうかを表している。
【0058】
図5に示した例においては、格納済みセクタマップ315が、A〜Dの順に0、1、0、1となっているので、値0が未格納、値1が格納済みを表すものとすれば、領域Aはデータ未格納、領域Bはデータは可能済み、領域Cはデータ未格納、領域Dはデータは可能済みとなる。
【0059】
先頭セクタ番号310は、領域Aの先頭のセクタ番号を表している。ここで、セクタとは、CFの記録位置を表現する座標であり、一般的にはセクタ番号0が先頭の記録位置に対応し、以下1セクタ=512バイトとして、セクタ番号と記録位置は一対一対応する。セクタ番号は、CFを読み書きする際に、CF制御ソフトウェアが指示し、CFが参照する。
【0060】
図5に示した例では、先頭セクタ番号は64を示しているため、領域Aはセクタ64〜79(計16セクタ=8KB)、領域Bはセクタ80〜95、領域Cはセクタ96〜111、領域Dはセクタ112〜127に対応している。
【0061】
なお、図5に示した例では、格納済みセクタマップ315を4等分しているが、最適な読み出し性能を達成するために、さらに粗くしたり(2等分など)、逆にさらに細かくしたり(8等分など)しても良い。
【0062】
次に、本発明の一実施形態の動作について説明する。
まず、CFからのデータ読み取り時の動作について説明する。
【0063】
図7は、CFからのデータ読み取り時の動作フローチャートである。
ブロックキャッシュ205を検索して、格納用ブロックキャッシュ205があるか否かを検索する(ステップ700)。
【0064】
ステップ700で、格納用ブロックキャッシュが検索できなかった場合、ステップ705に進み、新たに格納用ブロックキャッシュ205を割付ける。ブロックキャッシュ205の割付けにおいては、有限個の(一実施形態においては8個の)ブロックキャッシュ205のなかから置換すべきキャッシュ205を1つ選択しなければならない(置換エントリ決定)。
【0065】
選択の基準は、参照頻度の高低に基づいたり、あるいは乱数で決定することも考えられる。次に、ステップ710に進み、読み取り対象のセクタ位置を、ブロックキャッシュサイズで丸めることで先頭セクタ番号を算出し、選択したブロックキャッシュ管理情報の先頭セクタ番号に格納する。また、格納済みセクタマップをゼロクリアする。そして、ステップ715に進む。
【0066】
ステップ700において、格納用ブロックキャッシュが検索された場合には、ステップ715において、読み取り対象領域が、検索したブロックキャッシュにすでに格納されているかどうか判別する。この判別は、読み取り対象セクタ位置からブロックキャッシュ内相対位置A〜Dを算出し、これに対応する格納済みセクタマップの領域の値が0か1かで判別する。
【0067】
読み取り対象領域が格納されていなかった場合、CFから対象領域を読み出し、ブロックキャッシュへ格納し、格納済みセクタマップに1を設定することで、対象領域が格納済みであることをマークする(ステップ720、725)。そして、ステップ730に進む。
【0068】
この時点で、読み取り対象領域は必ずブロックキャッシュに格納されている。そして、ブロックキャッシュから、対象領域を読み出して処理を完了する(ステップ730)。
【0069】
なお、置換キャッシュエントリの決定を、キャッシュへの参照頻度の高低に基づいて行う場合は、ここで参照頻度情報を更新しても良い。
【0070】
次に、図8を参照してブロックキャッシュ検索動作について説明する。
ブロックキャッシュの検索は、そのブロックキャッシュが読み書き要求セクタを含むか否かで検索する。つまり、対象セクタ位置と、各ブロックキャッシュ管理情報の先頭セクタ位置を比較することで行う(ステップ800)。
【0071】
先頭セクタ位置は、ブロックキャッシュに含まれるすべてのセクタを代表するものであるため、比較においては、対象セクタ位置が、先頭セクタ位置によって代表されるセクタ範囲に含まれるか否かの判別を行う。例えば、対象セクタ位置が80だったと仮定して、先頭セクタ位置が64なるブロックキャッシュが存在すれば、このキャッシュはセクタ64〜127に対応しているため、検索ヒットとなる。
【0072】
このような比較演算を、検索ヒットするかまたは未検索ブロックキャッシュがなくなるまで繰り返し実施する(ステップ805)。検索ヒットしなかった場合は、ミスヒットとなる。
【0073】
以上説明したように、ブロックキャッシュをCFからのデータ読み取りの際のディスクキャッシュとして活用することで、見かけ上のCF読み取り性能を向上することができる。
【0074】
次に、CFへのデータ書き込み時の動作について説明する。
【0075】
図9はCFへのデータ書き込み動作フローチャートである。
書き込み要求セクタ位置に対応するブロックキャッシュが存在するか否か検索し、存在しなかった場合は新たなキャッシュを割付けるところまでは、読み取り時の動作と同じである(ステップ900、905、910)。
【0076】
続いて、検索したキャッシュブロックのA〜Dの各領域について、すべての領域がキャッシュに格納されていることを確認する(ステップ915)。ステップ915で、未格納領域があれば、CFからデータを読み取り(ステップ920)、格納済みセクタマップを更新する(ステップ925)。全領域が終了するまで、ステップ915、920、925を繰り返す(ステップ930)。こうして、すべての領域が格納されるようにする。
【0077】
次に、書き込み要求位置のブロックキャッシュ内の対応領域に、書き込みデータを上書きする(ステップ935)。この時点で、書き込み対象領域を含むCFの消去ブロックの全データ情報と書き込み位置情報とが、ブロックキャッシュに格納されている。これがバックアップデータとなる。
【0078】
続いて、実際のCFへの書き込みを行うが、その前に書き込み状態フラグを1にセットする(ステップ940)。
【0079】
そして、CFへ書き込みコマンドを発行し、実際にCFにデータを書き込む(ステップ945)。ここで書き込むサイズは、書き込み要求サイズ分のみを書き込む。
【0080】
書き込みコマンドが完了したら、書き込み状態フラグを0にセットして、書き込み処理を完了する(950)。
【0081】
以上の動作によって、CFへの書き込みコマンド発行前に、書き込み対象領域を含むフラッシュメモリの消去ブロックの、書き込みデータ情報と書き込み位置情報とが、バックアップデータとして不揮発性の主記憶メモリに作成される。
【0082】
そして、書き込み状態フラグの操作によって、電力遮断検出手段によるデータ書き込み中の意図しない電力遮断の検出を可能としている。
【0083】
最後に、電力遮断検出処理/復旧処理の動作について、図10を参照して説明する。なお、検出/復旧処理は、コントローラへの電源投入を起点として数えたときの、最初のCFアクセスに先んじて実施されるものである。
【0084】
図10において、書き込み状態フラグが1になっているブロックキャッシュ管理情報を検索する(ステップ955)。ここで、書き込み状態フラグの値1が意味するところは、そのブロックキャッシュに含まれる一部または全部のデータをCFへ書き込んでいる最中に、電力遮断が発生したことを表している。
【0085】
ステップ955で、もし、そのような管理情報が見つかれば、その管理情報の「ブロックキャッシュへのポインタ」が指し示すブロックキャッシュの全データ情報を(一実施形態では32KB)、先頭セクタ情報によって示されるCFの記録位置へ、再度書き込みを行う(ステップ960)。
【0086】
電力遮断によって不良状態となる可能性のある記録領域は、最大でブロックサイズであるため、再書き込み処理においては、ここで示したようにブロック単位で実施することが重要である。
【0087】
再書き込み完了後、書き込み状態フラグを0に戻し、検出/復旧処理を終了する(ステップ965)。
【0088】
以上の処理を、書き込み状態フラグが1の管理情報が見つかるかまたは未検索の管理情報が無くなるまで繰り返す(ステップ970)。
【0089】
なお、上述した例は、本発明を、プラント制御装置のコントローラに適用した場合の例であるが、これに限らず、二次記憶手段としてCFを用いたデータ記憶制御装置に適用可能である。
【図面の簡単な説明】
【0090】
【図1】本発明の一実施形態におけるコントローラの概略ブロック図である。
【図2】CF内蔵されているフラッシュメモリの内容と、主記憶メモリに格納されたバックアップデータの内部構造を示す図である。
【図3】ブロックキャッシュ管理情報の構成図である。
【図4】ブロックキャッシュ管理情報とブロックキャッシュの関係図である。
【図5】先頭セクタ情報と格納済みセクタマップの構成図である。
【図6】本発明を適用したプラント制御装置の全体概略構成図である。
【図7】CFからのデータ読み取り操作を説明する動作フローチャートである。
【図8】ブロックキャッシュ検索処理を説明する動作フローチャートである。
【図9】CFへのデータ書込み操作を説明する動作フローチャートである。
【図10】CFの復旧処理を説明する動作フローチャートである。
【符号の説明】
【0091】
100 コントローラ
105 アプリケーションプログラム
110 ファイルシステム
115 バックアップデータ作成手段
120 電力遮断検出手段
125 復旧手段
130 バックアップデータ
135 不揮発性の主記憶メモリ
140 CF制御ソフトウェア
145 メモリ部及びコメントローラ部とを有する二次記憶手段(CF)
200 フラッシュメモリの消去ブロック
205 ブロックキャッシュ
210 ブロックキャッシュ管理情報
300 次の管理情報のポインタ
305 ブロックキャシュへのポインタ
310 先頭セクタ番号
315 格納済みセクタマップ
320 書き込み状態フラグ
600 操作卓
605 通信路
610 プラント装置

【特許請求の範囲】
【請求項1】
主記憶手段と、メモリ部及びコントローラ部と有する二次記憶手段と、上記主記憶手段及び二次記憶手段へのデータの読み書きを制御するデータ制御手段とを備えるデータ記憶制御装置において、
このデータ記憶制御装置への供給電力が遮断したか否かと電力供給が復旧したことを検出する電力遮断検出手段を備え、
上記データ制御手段は、上記主記憶手段に、バックアップデータ領域が形成され、このバックアップデータ領域は、上記二次記憶手段のデータ書き換え単位であるブロックサイズの倍数をデータ格納単位とし、上記バックアップデータ領域から上記二次記憶手段にデータの書き込みを実行するとき、バックアップデータ領域の書き込みデータが存在するブロックを示す位置情報を記憶し、上記電力遮断検出手段が、データ書き込み中に電力遮断を検出し、その後、電力の復旧を検出すると、記憶した位置情報のブロック単位で、二次記憶手段に対してデータの書き込みを再度実行することを特徴とするデータ記憶制御装置。
【請求項2】
請求項1記載のデータ記憶制御装置において、上記二次記憶手段からのデータ読み出しの際に、実際の二次記憶手段からのデータ読み出しに先んじて、上記バックアップデータ領域を検索し、読み出し対象領域に対応する二次記憶手段のデータ記録位置がバックアップデータ領域内に存在した場合は、バックアップデータを読み出し、バックアップデータ領域内に上記二次記憶手段のデータ記録位置が存在しなかった場合は、読み出し対象領域を二次記憶手段から読み出し、読み出したデータを後の読み出し要求のためにバックアップデータとして主記憶手段に格納することを特徴とするデータ記憶制御装置。
【請求項3】
請求項1記載のデータ記憶制御装置において、上記データ制御装置は、
上記二次記憶手段へのデータ書き込みの際に、データ書き込みに先んじて、上記バックアップデータ領域を検索し、書き込み対象領域に対応する上記二次記憶手段の記録位置がバックアップデータ領域内に存在しなかった場合は、書き込み対象領域が含まれる上記二次記憶手段の消去ブロックの全部の記録情報を読み出してバックアップデータとし、
書き込み対象領域がバックアップデータ領域内に存在するが、書き込み対象領域が含まれる上記二次記憶手段の消去ブロックの一部の記録情報しか存在しない場合は、不足している記録情報を上記二次記憶手段から読み出して補うことで、上記二次記憶手段書き込みコマンド発行前には書き込み対象領域が含まれる上記二次記憶手段の消去ブロックの全部の記録情報が、バックアップデータとして主記憶手段に格納されることを特徴とするデータ記憶制御装置。
【請求項4】
請求項1から3のうちのいずれか一項記載のデータ記憶制御装置において、上記,主記憶手段は、不揮発性メモリであり、上記二次記憶手段はフラシュメモリを有することを特徴とするデータ記憶制御装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2006−113841(P2006−113841A)
【公開日】平成18年4月27日(2006.4.27)
【国際特許分類】
【出願番号】特願2004−301047(P2004−301047)
【出願日】平成16年10月15日(2004.10.15)
【出願人】(501387839)株式会社日立ハイテクノロジーズ (4,325)
【Fターム(参考)】