(58)【調査した分野】(Int.Cl.,DB名)
データ消去の単位である記憶領域を6以上含む電気的に書き換え可能な不揮発性半導体メモリの、前記6以上の記憶領域を、最初の前記記憶領域を最後の前記記憶領域の次の前記記憶領域として、リング状に順番を認識し、前記不揮発性半導体メモリにおける不安定状態の復旧を指示する復旧要求に基づいて、データが記録されていない状態である、消去済み、と判定した前記記憶領域のデータを消去し、最新データが記録されていると判定した前記記憶領域のデータを消去し、データを消去された前記記憶領域以外に、データが記録されている状態である、データ有と判定された前記記憶領域が2以上存在する場合に、前記2以上存在する前記記憶領域のそれぞれに記憶されているデータの内の最新データを、有効データとして選定するための復旧処理手段と、
前記6以上の記憶領域を前記リング状に順番を認識し、前記不揮発性半導体メモリへ新たなデータの書き込みを指示する更新要求に基づいて、前記消去済みの前記記憶領域が2以下の場合、最旧データを記憶している前記記憶領域のデータを消去し、次に、データ有の前記記憶領域の次の、前記消去済みの前記記憶領域へのデータ書き込みを実行するための更新処理手段と、を含む
フラッシュメモリ制御装置。
前記更新処理手段は、前記消去済みの前記記憶領域が3以下の場合、前記消去済みの前記記憶領域が4つになるように、記憶しているデータが相対的に古い前記記憶領域から順番にデータを消去し、次に、データ有の前記記憶領域の次の2つの、前記消去済みの前記記憶領域へ、同一データのデータ書き込みを実行する
ことを特徴とする請求項1記載のフラッシュメモリ制御装置。
前記復旧処理手段は、前記不揮発性半導体メモリのデータの読み出しを指示する読み出し要求を受け取った場合、前記有効データとして選定されたデータのみを読み出し、出力する
ことを特徴とする請求項1乃至3のいずれか1項に記載のフラッシュメモリ制御装置。
データ消去の単位である記憶領域を6以上含む電気的に書き換え可能な不揮発性半導体メモリの、前記6以上の記憶領域を、最初の前記記憶領域を最後の前記記憶領域の次の前記記憶領域として、リング状に順番を認識し、
前記不揮発性半導体メモリにおける不安定状態の復旧を指示する復旧要求に基づいて、データが記録されていない状態である、消去済み、と判定した前記記憶領域のデータを消去し、最新データが記録されていると判定した前記記憶領域のデータを消去し、データを消去された前記記憶領域以外に、データが記録されている状態である、データ有と判定された前記記憶領域が2以上存在する場合に、前記2以上存在する前記記憶領域のそれぞれに記憶されているデータの内の最新データを、有効データとして選定し、
前記不揮発性半導体メモリへ新たなデータの書き込みを指示する更新要求に基づいて、前記消去済みの前記記憶領域が2以下の場合、最旧データを記憶している前記記憶領域のデータを消去し、次に、データ有の前記記憶領域の次の、前記消去済みの前記記憶領域へのデータ書き込みを実行する処理をコンピュータに実行させる
プログラム。
【背景技術】
【0002】
フラッシュメモリ制御に関し、さまざまな関連技術が知られている。フラッシュメモリは、フラッシュロム(Flash ROM(Read Only Memory))、フラッシュEEPROM(Electrically Erasable Programmable Read Only Memory))とも呼ばれる。
【0003】
フラッシュメモリは、書き換え可能な、不揮発性の半導体メモリである。ここで、不揮発性とは、電源が供給されなくなっても、記憶されたデータが消えないことを言う。
【0004】
フラッシュメモリは、フラッシュメモリ内蔵機器(コンピュータや制御装置、その他の任意の装置及び機器)のシステムメモリに使用されることも多い。その理由として、フラッシュメモリが、ROMの交換作業が必要であったファームウェア更新を、機器のきょう体内部の機構への物理的なアクセスを不要とし、容易に行えるようにしたことが挙げられる。
【0005】
フラッシュメモリにデータを書き込む場合、そのデータを書き込む領域は、データが書き込まれていない領域、即ち消去済みの領域でなければない。従って、フラッシュメモリに記憶されたデータを書き換える場合、予めブロックと呼ばれる単位で、その書き込みの対象領域を含む領域の既存のデータを消去し、そのブロックを消去済みブロックとする必要がある。その後、その消去済みブロックに新たなデータの書き込みを行うことが可能になる。
【0006】
フラッシュメモリは、消去及び書き込みを実行されている最中に電源を切断された場合、絶縁ゲートへの電荷移動が中途半端な状態になる。そのため、フラッシュメモリは、読み込みするごとに値が変わる不安定な状態になる場合がある。
【0007】
フラッシュメモリ内蔵機器のシステムメモリに使用されているフラッシュメモリが不安定な状態になった場合、そのフラッシュメモリ内蔵機器が起動できないなどの致命的な障害となってしまうことが考えられる。
【0008】
このような問題点を解決する技術が特許文献1及び2に記載されている。
【0009】
特許文献1は、フラッシュメモリ搭載電子装置の一例を開示する。特許文献1のフラッシュメモリ搭載電子装置は、フラッシュメモリの任意の1ブロックを履歴エリアとし、この履歴エリアに、他の各内部ブロックへのデータ書き換えの進捗情報を記録する。そのフラッシュメモリ搭載電子装置は、履歴エリアの情報をビットごとに書き換えることで、履歴エリアへの書き込み時間を短縮する。
【0010】
特許文献1は、そのフラッシュメモリ搭載電子装置が、履歴エリアにその進捗情報を保存することで、電源再投入時に容易に前回の終了状態が検出可能にするとしている。また、特許文献1は、そのフラッシュメモリ搭載電子装置が、履歴エリアへの情報保存を通常のフラッシュメモリの書き換えに要する時間よりも短くすることで、履歴エリア書き換え中に電源が遮断されるリスクを回避するとしている。
【0011】
また、特許文献2は、情報記録読出装置の一例を開示する。特許文献2の情報記録読出装置は、データ消去の単位となるセクタを複数有する不揮発性メモリとその不揮発性メモリを制御する制御部とを備える。
【0012】
それら複数のセクタのそれぞれは、複数のブロックに分割され、それらブロックのそれぞれは、データ記録領域、ブロック長管理領域及びブロック状態管理領域と、を有する。ブロック長管理領域は、そのデータ記録領域へ記録したデータ量をブロック長として記録する。ブロック状態管理領域は、データ記録の状態を記録する。そして、それら複数のセクタのそれぞれは、ひとつ手前のセクタのデータ消去の状態を記録する前セクタ消去状態管理領域を設けられる。
【0013】
その制御部は、そのブロック長管理領域とブロック状態管理領域及び前セクタ消去状態管理領域それぞれに対しブロック長または状態を記録する。そして、その制御部は、それらの記録された情報に基づいて、複数のセクタ全体にわたるブロックのデータ記録領域に対し環状の順序に従ったデータの記録と、記録データの読み出し及びセクタごとの記録データの一括消去を実行する。更に、その制御部は、ブロック長管理領域、ブロック状態管理領域及び前セクタ消去状態管理領域それぞれの記録データを更新する。
【0014】
特許文献2は、その情報記録読出装置が、上述の構成を有することで、更新データの記録が中断されたかどうかを検知することができるとしている。
【発明を実施するための形態】
【0026】
本発明を実施するための形態について図面を参照して詳細に説明する。尚、各図面及び明細書記載の各実施形態において、同様の構成要素には同様の符号を付与し、適宜説明を省略する。
【0028】
図1は、本発明の第1の実施形態に係るフラッシュメモリ制御装置100の構成を示すブロック図である。
図1に示すように、本実施形態に係るフラッシュメモリ制御装置100は、復旧処理部110と更新処理部120とを含む。尚、
図1に示す各構成要素は、機能単位に分割された構成要素であって、物理的構成を限定するものではない。即ち、
図1に示す各構成要素は、ハードウェア単位の回路でも、コンピュータ装置の機能単位に分割された構成要素でもよい。
【0029】
図2は、フラッシュメモリ制御装置100によって制御される、電気的に書き換え可能な、フラッシュメモリ(不揮発性半導体メモリとも呼ばれる)170の構成の一例を示す図である。
図2に示すように、フラッシュメモリ170は、少なくとも6つの記憶領域171を含む。記憶領域171内の「データ有」及び「消去済」の記載は、各記憶領域171の状態を示す。ここで、記憶領域171は、フラッシュメモリ170における、データ消去の単位である。尚、フラッシュメモリ170は、6以上の任意の数の記憶領域171を含んでよい。
【0030】
フラッシュメモリ制御装置100は、フラッシュメモリ170に含まれる記憶領域171をリング状に順番を認識して、動作する。具体的には、その順番は、第1記憶領域である記憶領域171の、次の記憶領域171を、第2記憶領域である記憶領域171とする。以後、第n(nは、1乃至6)記憶領域の記憶領域171を第n記憶領域171と記載する。また、その順番は、第2記憶領域171、第3記憶領域171、第4記憶領域171及び第5記憶領域171のそれぞれの、次の記憶領域171を、第3記憶領域171、第4記憶領域171、第5記憶領域171及び第6記憶領域171とする。また、その順番は、第6記憶領域171の次の記憶領域171を、第1記憶領域171とする。
【0031】
従って、
図2においては、第6記憶領域171が、最旧のデータを格納する記憶領域171であり、第3記憶領域171が最新データを格納する記憶領域171である。ここで、「最新データ」は、最後にデータを記録された記憶領域171に、記憶されているデータである。
【0032】
===復旧処理部110===
復旧処理部110は、上述のように、フラッシュメモリ170に含まれる記憶領域171をリング状に順番を認識して、動作する。即ち、復旧処理部110は、最初の記憶領域171(
図2に示す第1記憶領域171)を、最後の記憶領域171(
図2に示す第6記憶領域171)の次の記憶領域171として扱う。
【0033】
復旧処理部110は、フラッシュメモリ170における不安定状態の復旧を指示する復旧要求811に基づいて、以下の第1から第3の処理を実行する。復旧処理部110は、例えば、電源装置(不図示)からの異常な電源切断が発生したことを示す情報を、復旧要求811と見なしてよい。復旧処理部110は、外部の管理装置(不図示)から、復旧要求811を受信してもよい。また、復旧処理部110は、図示しない入力手段を介して、保守作業者などから入力された復旧要求811を受け付けてもよい。
【0034】
第1に、復旧処理部110は、データが記録されていない状態である、消去済み、と判定した記憶領域171(例えば、
図2に示す第4記憶領域171及び第5記憶領域171)のデータを消去する。ここで、「記憶領域171を消去する」とは、記憶領域171の記憶している値を初期状態(例えば、データの全てのビット値が「1」である状態)にすることを示す。即ち、「消去済み」は、記憶領域171が初期状態であることを示す。この第1の処理は、消去済みと判定された記憶領域171が不安定な状態である可能性を消去するための処理である。
【0035】
第2に、復旧処理部110は、最新のデータが記録されていると判定した記憶領域171(例えば、
図2に示す第3記憶領域171)のデータを消去する。具体的には、復旧処理部110は、消去済みと判定された記憶領域171の1つ前の記憶領域171のデータを消去する。この第2の処理は、データが記録されている状態である、データ有と判定された記憶領域171が不安定な状態である可能性を消去するための処理である。
【0036】
第3に、復旧処理部110は、それらのデータを消去された記憶領域171以外に、データ有と判定された記憶領域171が2以上存在するか否かを判定する。続けて、その記憶領域171が2以上存在する場合、復旧処理部110は、その2以上存在する記憶領域171のそれぞれに記憶されているデータの内、最新データを有効データとして選定する。そのデータを消去されたデータ有と判定された記憶領域171(例えば、
図2に示す第3記憶領域171)以外の、データ有と判定された記憶領域171は、例えば、
図2に示す第1記憶領域171、第2記憶領域171及び第6記憶領域171である。そして、復旧処理部110は、リング状の順番で記憶領域171を認識するため、第2記憶領域171に記憶されているデータを最新データであると判定し、有効データとして選定する。
【0037】
===更新処理部120===
更新処理部120は、上述のように復旧処理部110と同様にフラッシュメモリ170に含まれる記憶領域171をリング状に順番を認識して、動作する。
【0038】
更新処理部120は、フラッシュメモリ170へ新たなデータの書き込みを指示する更新要求812に基づいて、以下の第1及び第2の処理を実行する。更新処理部120は、例えば、上位ユニット(不図示)から更新要求812を受信する。
【0039】
第1に、更新処理部120は、消去済みの記憶領域171(例えば、
図2に示す第4記憶領域171及び第5記憶領域171)が2以下の場合、最旧データを記憶している記憶領域171(例えば、
図2に示す第6記憶領域171)のデータを消去する。第2に、更新処理部120は、データ有の記憶領域171の次の、消去済みの記憶領域171へのデータ書き込みを実行する。
【0040】
図3は、フラッシュメモリ制御装置100の内部構成の一例を示すブロック図である。
図3に示すように、復旧処理部110は、復旧処理制御部111と読み出し部130と消去部140とを含む。そして、更新処理部120は、更新処理制御部121と消去部140と書き込み部150とを含む。尚、
図3の例に係わらず、復旧処理部110と更新処理部120のそれぞれは、専用の消去部140を含んでもよい。
【0041】
図4は、フラッシュメモリ制御装置100とフラッシュメモリ170との接続関係を示すブロック図である。
図4において、フラッシュメモリ制御装置100は、
図3に示す読み出し部130、消去部140及び書き込み部150と、処理制御部101と、として示される。ここで、処理制御部101は、
図3に示す復旧処理制御部111及び更新処理制御部121を含む。
【0042】
===復旧処理制御部111===
復旧処理制御部111は、復旧要求811を受信すると、記憶領域171のそれぞれのデータの読み出しを指示する、読み出し指示824を読み出し部130に出力する。次に、復旧処理制御部111は、読み出されたデータのそれぞれに基づいてそれらの各記憶領域171がデータ有か消去済みかを判定する。例えば、復旧処理制御部111は、記憶領域171ごとに、個別にデータの読み出しを指示してよい。また、復旧処理制御部111は、全ての記憶領域171について、一括でデータを読み出すように指示してもよい。更に、復旧処理制御部111は、データ有の記憶領域171及び消去済みの記憶領域171はそれぞれ連続していることを前提に、全ての記憶領域171についてデータ有か消去済みかを判定するのに必要な、記憶領域171のデータの読み出しを指示してよい。
【0043】
次に、復旧処理制御部111は、消去済みと判定した記憶領域171のデータの消去を指示する、消去指示821を消去部140に出力する。
【0044】
次に、復旧処理制御部111は、最新データが記憶されているはずと判定した記憶領域171のデータの消去を指示する、消去指示821を消去部140に出力する。
【0045】
次に、復旧処理制御部111は、そのデータを消去されたデータ有と判定された記憶領域171以外に、データ有と判定された記憶領域171が2以上存在する場合、有効データを選定する。同時に、復旧処理制御部111は、有効データを格納する記憶領域171、更新要求812に基づいてデータを消去される記憶領域171及びデータを書き込まれる記憶領域171を指すポインターを更新する。
【0046】
図5は、図示しない記憶手段に格納される、ポインターテーブル800の一例を示す図である。
図5に示すように、ポインターテーブル800は、消去ポインター801、書き込みポインター802及び読み出しポインター(有効データポインター)804を含む。尚、読み出しポインター804と書き込みポインター802とは連続する記憶領域171を指す。従って、ポインターテーブル800は、読み出しポインター804及び書き込みポインター802いずれか一方を含まなくてもよい。
【0047】
例えば、上述の処理の結果として、フラッシュメモリ170が
図6に示すような状態になった場合、復旧処理制御部111は、第2記憶領域171を特定するアドレス「2」を読み出しポインター804の値とする。同様に、復旧処理制御部111は、第3記憶領域171を特定するアドレス「3」を書き込みポインター802の値とする。更に、復旧処理制御部111は、第6記憶領域171を特定するアドレス「6」を消去ポインター801の値とする。
【0048】
更に、復旧処理制御部111は、上位ユニット(不図示)からのフラッシュメモリ170のデータの読み出しを要求する読み出し要求814を受信した場合、その読み出し要求814に基づいて、読み出し指示824を読み出し部130へ出力してよい。
【0049】
===更新処理制御部121===
更新処理制御部121は、更新要求812受信すると、消去済の記憶領域171が2以下か否かを判定する。具体的には、書き込みポインター802と消去ポインター801とに基づいて、消去済みの記憶領域171の数を取得し、その数が2以下か否かを判定する。
【0050】
次に、更新処理制御部121は、消去済みの記憶領域171が2以下の場合、最旧データを記憶している記憶領域171(消去ポインター801で指される記憶領域171)のデータの消去を指示する、消去指示821を消去部140に出力する。同時に、更新処理制御部121は、消去ポインター801を、現在指している記憶領域171の、次の記憶領域171を指すように更新する。
【0051】
次に、更新処理制御部121は、データ有の記憶領域171の次の、消去済みの記憶領域171(書き込みポインター802で指される記憶領域171)へのデータ書き込みを指示する、書き込み指示822を書き込み部150へ出力する。同時に、更新処理制御部121は、書き込みポインター802及び読み出しポインター804のそれぞれを、現在指している記憶領域171の、次の記憶領域171を指すように更新する。
【0052】
===読み出し部130===
読み出し部130は、復旧処理制御部111が出力する読み出し指示824に基づいて、フラッシュメモリ170へ読み出し制御信号834を出力する。
【0053】
更に、読み出し部130は、フラッシュメモリ170が出力するデータを、読み出しデータ864として上位ユニットへ出力してよい。
【0054】
===消去部140===
消去部140は、復旧処理制御部111及び更新処理制御部121が出力する消去指示821に基づいて、フラッシュメモリ170へ消去制御信号831を出力する。
【0055】
===書き込み部150===
書き込み部150は、更新処理制御部121が出力する書き込み指示822に基づいて、フラッシュメモリ170へ書き込み制御信号832及び書き込みデータ833を出力する。
【0056】
次に本実施形態の更新処理の動作について、図面を参照して詳細に説明する。
【0057】
図7は、本実施形態のフラッシュメモリ制御装置100の、更新処理における動作を示すフローチャートである。
【0058】
更新処理部120は、更新要求812を受け取ったことを契機に、
図7に示す動作を開始する。ここでは、更新処理部120は、フラッシュメモリ170が
図2に示す状態である時点に、更新要求812を受け取ったとする。
【0059】
更新処理部120は、消去済みの記憶領域171が2以下か否かを判定する(ステップS601)。
【0060】
消去済みの記憶領域171が2を超える場合(ステップS601でNO)、処理はステップS603へ進む。
【0061】
消去済みの記憶領域171が2以下の場合(ステップS601でYES)、更新処理部120は、消去ポインター801で指される記憶領域171のデータを消去し、消去ポインター801を更新する(ステップS602)。ここでは、
図8に示すように、フラッシュメモリ170の状態は、第6記憶領域171が消去済となる。そして、消去ポインター801は、第1記憶領域171を指す「1」に更新される。
【0062】
次に、更新処理部120は、更新要求812に基づいて、記憶領域171で指される記憶領域171にデータを書き込み、書き込みポインター802及び読み出しポインター804を更新する(ステップS603)。ここでは、
図9に示すように、フラッシュメモリ170の状態は、第4記憶領域171がデータ有となる。そして、書き込みポインター802の値は、第5記憶領域171を指す「5」に、読み出しポインター804の値は、第4記憶領域171を指す「4」に、更新される。
【0063】
次に本実施形態の復旧処理の動作について、図面を参照して詳細に説明する。
【0064】
図10は、
図2の状態にあるフラッシュメモリ170に対して、
図7に示すフローチャートのステップS602の処理を、更新処理部120が実行中に、電源が供給されなくなった場合のフラッシュメモリ170の状態を示す図である。
図10に示すように、更新処理部120が、第6記憶領域171のデータを消去中であったため、第6記憶領域171が不安定な状態となる。
【0065】
図11は、
図8の状態にあるフラッシュメモリ170に対して、
図7に示すフローチャートのステップS603の処理を、更新処理部120が実行中に、電源が供給されなくなった場合のフラッシュメモリ170の状態を示す図である。
図11に示すように、更新処理部120が、第4記憶領域171にデータを書き込み中であったため、第4記憶領域171が不安定な状態となる。
【0066】
図12は、本実施形態のフラッシュメモリ制御装置100の、復旧処理における動作を示すフローチャートである。
【0067】
復旧処理部110は、フラッシュメモリ170が搭載された装置の起動時に、
図12に示す動作を開始する。ここでは、フラッシュメモリ170が
図10及び
図11のいずれかの状態となった状態で、その装置が起動されたとする。
【0068】
復旧処理部110は、復旧要求811の有無を判定する(ステップS611)。
【0069】
復旧要求811を受け取っていない場合(ステップS611でNO)、処理は終了する。
【0070】
復旧要求811を受け取った場合(ステップS611でYES)、復旧処理部110は、各記憶領域171についてデータ有か消去済みかを判定する(ステップS612)。
【0071】
図13は、上述の「フラッシュメモリ170が
図10及び
図11のいずれかの状態となった状態で、その装置が起動された」場合の、フラッシュメモリ170の状態を示す図である。
図13は、各記憶領域171に対する判定結果(「データ有」及び「消去済」)と、その記憶領域171が不安定な状態であることと、を示す。
図13に示すように、この場合のフラッシュメモリ170の状態は、異常1乃至4の、4通りである可能性がある。
【0072】
次に、復旧処理部110は、消去済みであると判定した記憶領域171のデータを消去する(ステップS613)。
【0073】
次に、復旧処理部110は、最新データが記憶されているはずと判定した記憶領域171のデータを消去する(ステップS614)。
【0074】
次に、復旧処理部110は、ステップS614でデータを消去された記憶領域171以外に、データ有と判定された記憶領域171が2以上存在するか否かを判定する(ステップS615)。
【0075】
否の場合(ステップS615でNO)、処理は終了する。
【0076】
その2以上の記憶領域171が存在する場合(ステップS615でYES)、復旧処理部110は、その2以上の記憶領域171のそれぞれに記憶されているデータの内、最新データを有効データとして選定する(ステップS616)。
【0077】
次に、復旧処理部110は、読み出しポインター804、書き込みポインター802及び消去ポインター801を更新する(ステップS617)。
【0078】
図14は、
図12に示す復旧処理による、異常1の状態のフラッシュメモリ170の、状態の変化を示す図である。
図14に示すように、第4記憶領域171及び第5記憶領域171のデータが、消去される(
図12のステップ613)。第3記憶領域171のデータが、消去される(
図12のステップ614)。第2記憶領域171のデータが有効データとして選定される(
図12のステップ616)。尚、第6記憶領域171は、不安定な状態のままであるが、その後の更新処理によってデータを消去される。従って、問題はない。
【0079】
図15は、
図12に示す復旧処理による、異常2の状態のフラッシュメモリ170の、状態の変化を示す図である。
図15に示すように、第4記憶領域171、第5記憶領域171及び第6記憶領域171のデータが、消去される(
図12のステップ613)。第3記憶領域171のデータが、消去される(
図12のステップ614)。第2記憶領域171のデータが有効データとして選定される(
図12のステップ616)。
【0080】
図16は、
図12に示す復旧処理による、異常3の状態のフラッシュメモリ170の、状態の変化を示す図である。
図16に示すように、第5記憶領域171及び第6記憶領域171のデータが、消去される(
図12のステップ613)。第4記憶領域171のデータが、消去される(
図12のステップ614)。第3記憶領域171のデータが有効データとして選定される(
図12のステップ616)。
【0081】
図17は、
図12に示す復旧処理による、異常4の状態のフラッシュメモリ170の、状態の変化を示す図である。
図17に示すように、第4記憶領域171、第5記憶領域171及び第6記憶領域171のデータが、消去される(
図12のステップ613)。第3記憶領域171のデータが、消去される(
図12のステップ614)。第2記憶領域171のデータが有効データとして選定される(
図12のステップ616)。
【0082】
<<<第1の実施形態の第1の変形例>>>
更新処理部120は、消去済みの記憶領域171が3以下の場合、消去済みの記憶領域171が4つになるように、記憶しているデータが相対的に古い記憶領域171から順番に、データを消去する。次に、更新処理部120は、データ有の記憶領域171の次の2つの、消去済みの記憶領域171へ、同一データのデータ書き込みを実行する。
【0083】
具体的には、フラッシュメモリ170が
図2に示す状態である場合に、更新処理部120が更新要求812を受け取った場合、更新処理部120は、以下のように動作する。第1に、更新処理部120は、第6記憶領域171と第1記憶領域171のデータを消去する。第2に、更新処理部120は、第4記憶領域171及び第5記憶領域171に、更新要求812に基づいて、同一データを書き込む。この場合、更新処理部120は、消去ポインター801の値を「2」に、書き込みポインター802の値を「6」に、読み出しポインター804の値を「5」に、更新する。
【0084】
本変形例において、例えば
図12に示す異常1の場合に復旧処理部110が復旧処理を実行した場合、第3記憶領域171と第2記憶領域171には同じ最新データが記憶されている。そのため、第3記憶領域171のデータが消去されても、第2記憶領域171に記憶されている最新データが、有効データとして選定される。
【0085】
尚、更新処理部120は、更に処理を拡張して、3つ以上の記憶領域171へ、同一データのデータ書き込みを実行してもよい。
【0086】
<<<第1の実施形態の第2の変形例>>>
復旧処理部110は、選定した有効データの識別情報を出力する。例えば、記憶領域171に格納されるデータが、フラッシュメモリ170を搭載する機器の制御プログラムである場合、その識別情報は、例えば、その制御プログラムの版数(レビジョン)であってよい。
【0087】
復旧処理部110は、例えば図示しない出力手段に、その識別情報を出力してよい。また、復旧処理部110は、図示しない通信手段を介して、他の装置にその識別情報を送信してよい。
【0088】
<<<第1の実施形態の第3の変形例>>>
復旧処理部110は、読み出し要求814を受け取った場合に、有効データとして選定されたデータのみが出力されるように、読み出し制御信号834を出力する。換言すると、復旧処理部110は、常に、読み出し要求814に対して、フラッシュメモリ170が有効データを記憶する唯一の記憶領域171を有しているかのごとく動作する。
【0089】
上述した本実施形態における第1の効果は、フラッシュメモリ170のデータを更新中に電源切断が発生した場合であっても、そのフラッシュメモリ170のデータをより確実に利用することが可能になる点である。
【0090】
その理由は、以下のような構成を含むからである。即ち、第1に、更新処理部120が更新処理後の消去済みの記憶領域171を2以上に保つ。第2に、復旧処理部110が、消去済みの記憶領域171のデータを消去し、最新データを格納する記憶領域171のデータを消去し、残ったデータ有の記憶領域171の内の最新データを有効データとする。
【0091】
上述した本実施形態における第2の効果は、復旧処理により最新データが失われてしまうことを防止することが可能になる点である。
【0092】
その理由は、更新処理部120が、2つ以上の記憶領域171へ、同一データのデータ書き込みを実行するからである。
【0093】
上述した本実施形態における第3の効果は、利用者や保守作業者などに対して、有効データの状況を提示することが可能になる点である。
【0094】
その理由は、復旧処理部110が選定した有効データの識別情報を出力するからである。
【0095】
上述した本実施形態における第4の効果は、上位ユニットがフラッシュメモリ170に格納されているデータの状態を意識する必要をなくすことが可能になる点である。
【0096】
その理由は、読み出し要求814を受け取った場合に、有効データとして選定されたデータのみが出力されるように、読み出し制御信号834を出力するからである。
【0098】
次に、本発明の第2の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
【0099】
図18は、本発明の第2の実施形態に係るフラッシュメモリ内蔵機器200の構成を示すブロック図である。
図18に示すように、本実施形態におけるフラッシュメモリ内蔵機器200は、フラッシュメモリ制御部210とフラッシュメモリ部220とを含む。
【0100】
===フラッシュメモリ制御部210===
フラッシュメモリ制御部210は、
図3に示す復旧処理制御部111と更新処理制御部121とを含む。即ち、フラッシュメモリ制御部210は、
図4に示す処理制御部101と同等である。フラッシュメモリ制御部210は、ハードウェア単位の回路でも、コンピュータ装置の機能単位に分割された構成要素でもよい。ここでは、フラッシュメモリ制御部210は、コンピュータ装置の機能単位に分割された構成要素として説明する。
【0101】
===フラッシュメモリ部220===
フラッシュメモリ部220は、読み出し部130、消去部140、書き込み部150及びフラッシュメモリ170を含む。これらの各構成要素は、
図4に示す同一符号の各構成要素と同等である。
【0102】
以上が、フラッシュメモリ内蔵機器200の機能単位の各構成要素についての説明である。
【0103】
次に、フラッシュメモリ内蔵機器200のハードウェア単位の構成要素について説明する。
【0104】
図19は本実施形態におけるフラッシュメモリ内蔵機器200に含まれ、フラッシュメモリ制御部210を実現するコンピュータ700のハードウェア構成を示す図である。
【0105】
図19に示すように、コンピュータ700は、CPU(Central Processing Unit)701、記憶部702、ドライブ装置703、入力部704、出力部705、通信部706及びフラッシュメモリ部220を含む。更に、コンピュータ700は、外部から供給される記録媒体(または記憶媒体)707を含む。例えば、記録媒体707は、情報を非一時的に記憶する不揮発性記録媒体(非一時的記録媒体)である。また、記録媒体707は、情報を信号として保持する、一時的記録媒体であってもよい。
【0106】
CPU701は、オペレーティングシステム(不図示)を動作させて、コンピュータ700の全体の動作を制御する。例えば、CPU701は、記憶ドライブ703に装着された記録媒体707から、そのプログラムやデータを読み込み、読み込んだそのプログラムやそのデータを記憶部702に書き込む。ここで、そのプログラムは、例えば、
図7及び
図12に示すフローチャートの動作をコンピュータ700に実行させるためのプログラムである。
【0107】
そして、CPU701は、その読み込んだプログラムに従って、またその読み込んだデータに基づいて、
図18に示すフラッシュメモリ制御部210として各種の処理を実行する。
【0108】
尚、CPU701は、通信網(不図示)に接続される外部コンピュータ(不図示)から、記憶部702にそのプログラムやそのデータをダウンロードしてもよい。
【0109】
記憶部702は、そのプログラムやそのデータを記憶する。記憶部702は、例えば、ポインターテーブル800や、受け取った復旧要求811、更新要求812及び読み出し要求814などを記憶してよい。また、記憶部702は、ROM部を含み、そのプログラムをROM部に記憶してよい。
【0110】
ドライブ装置703は、CPU701からの要求に従って、記録媒体707をアクセスする。
【0111】
入力部704は、オペレータ(利用者、保守作業者などを含む)による操作の入力や外部からの情報の入力を受け付ける。入力操作に用いられるデバイスは、例えば、マウスや、キーボード、内蔵のキーボタン、タッチパネル及び押しボタンなど、任意のものである。
【0112】
出力部705は、例えばディスプレイで実現される。出力部705は、例えばGUI(GRAPHICAL User Interface)によるオペレータへの入力要求や、オペレータに対する出力提示などのために用いられる。また、出力部705は、発行ダイオードなど、任意のものであってよい。
【0113】
通信部706は、上位ユニットや他の装置などとのインタフェースを実現する。
【0114】
以上説明したように、
図18に示すフラッシュメモリ制御部210は、
図19に示すハードウェア構成のコンピュータ700によって実現される。但し、コンピュータ700が備える各部の実現手段は、上記に限定されない。すなわち、コンピュータ700は、物理的に結合した1つの装置により実現されてもよいし、物理的に分離した2以上の装置を有線または無線で接続し、これら複数の装置により実現されてもよい。
【0115】
尚、上述のプログラムのコードを記録した記録媒体707が、コンピュータ700に供給される場合、CPU701は、記録媒体707に格納されたそのプログラムのコードを読み出して実行してもよい。或いは、CPU701は、記録媒体707に格納されたそのプログラムのコードを、記憶部702に格納してもよい。すなわち、本実施形態は、コンピュータ700(CPU701)が実行するそのプログラム(ソフトウェア)を、一時的にまたは非一時的に、記憶する記録媒体707の実施形態を含む。尚、情報を非一時的に記憶する記憶媒体は、不揮発性記憶媒体とも呼ばれる。
【0116】
以上が、本実施形態におけるフラッシュメモリ制御部210を実現するコンピュータ700の、ハードウェア単位の各構成要素についての説明である。
【0117】
尚、本実施形態を実現するための、最小限の構成のコンピュータ700は、CPU701と記憶部702とフラッシュメモリ部220とを含むコンピュータ700であってよい。そして、コンピュータ700の各構成要素は、フラッシュメモリ内蔵機器200の機器としての本来の機能を実現するための構成要素と共通であってよい。
【0118】
本実施形態の動作は、
図3に示すフラッシュメモリ制御装置100の動作と同様である。
【0119】
上述した本実施形態における効果は、第1の実施形態の効果に加えて、本発明を実施するための設計を容易にし、また、より安価に実現できる点である。
【0120】
その理由は、フラッシュメモリ制御部210を、コンピュータの機能として実現するようにしたからである。
【0121】
以上、各実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しえるさまざまな変更をすることができる。