(57)【特許請求の範囲】
【請求項１】
消去後に書き込み動作を行なうメモリに対するデータ書き込み動作を制御する情報処理装置であって、
前記メモリはデータ領域の配置情報を管理するための第１乃至第３のページで構成される管理テーブルを備え、且つ、前記第１及び第２のページは、自ページの記憶内容の新しさを示す最新性情報フィールドと、配置情報及び最新性情報のデータ書き込みが正常に終了したかどうかを示す有効性情報フィールドをそれぞれ備え、
データ領域のデータ更新に応じて、前記第１又は第２のページのうち一方に有効な配置情報を消去書き込みするページ更新手段と、
前記第１及び第２のページの有効性を判別する有効ページ判別手段と、
前記有効ページ判別手段により有効と判別されたページのデータを前記第３のページに消去書き込みするページ複製手段と、
前記有効性判別手段により無効と判別されたページを消去するページ消去手段と、
を具備し、
前記有効ページ判別手段は、前記第１及び第２のページの各々の最新性情報フィールド及び有効性情報フィールドを参照していずれのページが管理テーブルとして有効であるかを判別し、
前記ページ更新手段は、前記第１又は第２のページのいずれか一方が有効な配置情報を記憶しているときに、データ領域のデータが更新されたことに応答して、前記第１又は第２のページの他方のページに新しい配置情報の消去書き込みを行なう、
ことを特徴とする情報処理装置。
【請求項２】
データ書き込み動作の途中で電源が遮断され次回起動したときに、前記第１乃至第３のページの有効性及び安定性を基に電源遮断が発生した時点でのデータ書き込み段階を判定する段階判定手段をさらに備える、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
電源遮断が発生した時点におけるデータ書き込み段階に応じたページ・データの修復動作を起動する修復手段をさらに備える、
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記段階判定手段は、前記第１又は第２のページのいずれか一方のみが有効且つ安定しており、且つ前記第３のページに前記第１又は第２のページのいずれか一方のコピーが書き込まれている場合には、前記第１又は第２のページのうち無効なページの消去から有効なページへの書き換えの段階に途絶したと判定し、
前記修復手段は、前記第１又は第２のページのうち前記第３のページにコピーが書き込まれている方を有効と判断して修復する、
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記段階判定手段は、前記第１又は第２のページのいずれも有効且つ安定し、且つ前記第３のページが無効である場合には、前記ページ複製手段により前記第３のページに消去書き込みする段階に途絶したと判定し、
前記修復手段は、前記第１又は第２のページのうち前記有効ページ判別手段により有効と判定されたページを有効と判断して修復する、
ことを特徴とする請求項３に記載の情報処理装置。
【請求項６】
前記段階判定手段は、前記第１又は第２のページのいずれも有効であるが一方のみが不安定である場合には、前記第３のページが前記第１又は第２のページのうちいずれのページと等しいかに基づいて前記第３のページの更新開始直後又は更新完了直前の段階に途絶したと判定し、
前記修復手段は、前記第１又は第２のページのうち前記有効ページ判別手段により有効と判定されたページを前記第３のページへ複製するとともに、前記第１又は第２のページのうち無効と判定されたページを消去する、
ことを特徴とする請求項３に記載の情報処理装置。
【請求項７】
消去後に書き込み動作を行なうメモリに対するデータ書き込み動作を制御するための情報処理方法であって、前記メモリはデータ領域の配置情報を管理するための第１乃至第３のページで構成される管理テーブルを備え、且つ、前記第１及び第２のページは、自ページの記憶内容の新しさを示す最新性情報フィールドと、配置情報及び最新性情報のデータ書き込みが正常に終了したかどうかを示す有効性情報フィールドをそれぞれ備えており、
データ領域のデータ更新に応じて、前記第１又は第２のページのうち一方に有効な配置情報を消去書き込みするページ更新ステップと、
前記第１及び第２のページの有効性を判別する有効ページ判別ステップと、
前記有効ページ判別ステップにおいて有効と判別されたページのデータを前記第３のページに消去書き込みするページ複製ステップと、
前記有効性判別ステップにおいて無効と判別されたページを消去するページ消去ステップと、
を有し、
前記有効ページ判別ステップでは、前記第１及び第２のページの各々の最新性情報フィールド及び有効性情報フィールドを参照していずれのページが管理テーブルとして有効であるかを判別し、
前記ページ更新ステップでは、前記第１又は第２のページのいずれか一方が有効な配置情報を記憶しているときに、データ領域のデータが更新されたことに応答して、前記第１又は第２のページの他方のページに新しい配置情報の消去書き込みを行なう、
ことを特徴とする情報処理方法。
【請求項８】
データ書き込み動作の途中で電源が遮断され次回起動したときに、前記第１乃至第３のページの有効性及び安定性を基に電源遮断が発生した時点でのデータ書き込み段階を判定する段階判定ステップをさらに有する、
ことを特徴とする請求項７に記載の情報処理方法。
【請求項９】
電源遮断が発生した時点におけるデータ書き込み段階に応じたページ・データの修復動作を起動する修復ステップをさらに備える、
ことを特徴とする請求項８に記載の情報処理方法。
【請求項１０】
前記段階判定ステップでは、前記第１又は第２のページのいずれか一方のみが有効且つ安定しており、且つ前記第３のページに前記第１又は第２のページのいずれか一方のコピーが書き込まれている場合には、前記第１又は第２のページのうち無効なページの消去から有効なページへの書き換えの段階に途絶したと判定し、
前記修復ステップでは、前記第１又は第２のページのうち前記第３のページにコピーが書き込まれている方を有効と判断して修復する、
ことを特徴とする請求項９に記載の情報処理方法。
【請求項１１】
前記段階判定ステップでは、前記第１又は第２のページのいずれも有効且つ安定し、且つ前記第３のページが無効である場合には、前記ページ複製ステップにより前記第３のページに消去書き込みする段階に途絶したと判定し、
前記修復ステップでは、前記第１又は第２のページのうち前記有効ページ判別ステップにより有効と判定されたページを有効と判断して修復する、
ことを特徴とする請求項９に記載の情報処理方法。
【請求項１２】
前記段階判定ステップでは、前記第１又は第２のページのいずれも有効であるが一方のみが不安定である場合には、前記第３のページが前記第１又は第２のページのうちいずれのページと等しいかに基づいて前記第３のページの更新開始直後又は更新完了直前の段階に途絶したと判定し、
前記修復ステップでは、前記第１又は第２のページのうち前記有効ページ判別ステップにより有効と判定されたページを前記第３のページへ複製するとともに、前記第１又は第２のページのうち無効と判定されたページを消去する、
ことを特徴とする請求項９に記載の情報処理方法。
【請求項１３】
消去後に書き込み動作を行なうメモリに対するデータ書き込み動作を制御するための処理をコンピュータ上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、前記メモリはデータ領域の配置情報を管理するための第１乃至第３のページで構成される管理テーブルを備えており、且つ、前記第１及び第２のページは、自ページの記憶内容の新しさを示す最新性情報フィールドと、配置情報及び最新性情報のデータ書き込みが正常に終了したかどうかを示す有効性情報フィールドをそれぞれ備え、前記コンピュータ・プログラムは、前記コンピュータを、
データ領域のデータ更新に応じて、前記第１又は第２のページのうち一方に有効な配置情報を消去書き込みするページ更新手段、
前記第１及び第２のページの有効性を判別する有効ページ判別手段、
前記有効ページ判別手段により有効と判別されたページのデータを前記第３のページに消去書き込みするページ複製手段、
前記有効性判別手段により無効と判別されたページを消去するページ消去手段、
として機能させ、
前記有効ページ判別手段は、前記第１及び第２のページの各々の最新性情報フィールド及び有効性情報フィールドを参照していずれのページが管理テーブルとして有効であるかを判別し、
前記ページ更新手段は、前記第１又は第２のページのいずれか一方が有効な配置情報を記憶しているときに、データ領域のデータが更新されたことに応答して、前記第１又は第２のページの他方のページに新しい配置情報の消去書き込みを行なう、
ことを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリへのデータの書き込み動作を行なう情報処理装置及び情報処理方法、並びにコンピュータ・プログラムに係り、特に、消去後に書き込み動作を行なうメモリに対するデータ書き込み動作を行なう情報処理装置及び情報処理方法、並びにコンピュータ・プログラムに関する。
【０００２】
さらに詳しくは、本発明は、メモリのあるページに対する消去書き込み動作中に電源遮断が発生しても次回起動時に有効なページを破壊することなく復旧する情報処理装置及び情報処理方法、並びにコンピュータ・プログラムに係り、特に、消去書き込み動作中の電源遮断などにより不安定となったページに対する書き込み時に再度電源遮断が発生しても、ページのデータの破壊を好適に防ぐ情報処理装置及び情報処理方法、並びにコンピュータ・プログラムに関する。
【背景技術】
【０００３】
ＩＣカードに代表される非接触・近接通信システムは、操作上の手軽さから、広範に普及している。例えば、暗証コードやその他の個人認証情報、電子チケットなどの価値情報などをＩＣカードに格納しておくことにより、キャッシュ・ディスペンサやコンサート会場の出入口、駅の改札口などにおいて、入場者や乗車者の認証処理を行なうことができる。
【０００４】
この種の無線通信には、一般に、電磁誘導の原理に基づいて実現される。すなわち、メモリ機能を有するＩＣカードと、ＩＣカードのメモリに対して読み書きアクセスをするカード・リーダ／ライタで構成され、１次コイルとしてのＩＣカード側のループ・コイルと２次コイルとしてのカード・リーダ／ライタ側のアンテナが系として１個のトランスを形成している。そして、カード・リーダ／ライタ側からＩＣカードに対して、電力と情報を同じく電磁誘導作用により伝送し、ＩＣカード側では供給された電力によって駆動してカード・リーダ／ライタ側からの質問信号に対して応答することができる。したがって、ＩＣカード自体は、バッテリなどの駆動電源を持つ必要がない。
【０００５】
ＩＣカードの一般的な使用方法は、利用者がＩＣカードをカード・リーダ／ライタをかざすことによって行なわれる。カード・リーダ／ライタ側では常にＩＣカードをポーリングしており外部のＩＣカードを発見することにより、両者間の通信動作が開始する。
【０００６】
最近では、微細化技術の向上とも相俟って、比較的大容量のメモリを持つＩＣカードが出現している。大容量メモリ付きのＩＣカードによれば、メモリ空間上にファイル・システムを展開し、複数のアプリケーションを同時に格納しておくことができるので、１枚のＩＣカードを複数の用途に利用することができる。例えば、１枚のＩＣカード上に、電子決済を行なうための電子マネーや、特定のコンサート会場に入場するための電子チケットなど、複数のアプリケーションを格納しておくことにより、１枚のＩＣカードをさまざまな用途に適用させることができる。ここで言う電子マネーや電子チケットは、利用者が提供する資金に応じて発行される電子データを通じて決済（電子決済）される仕組み、又はこのような電子データ自体を指す。
【０００７】
ＩＣカード自体は、基本的にはバッテリなど駆動電源を持たない（前述）。このため、内蔵メモリにはＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ Ｅｒａｓａｂｌｅ＆Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）などの、無電源状態でもデータを保持し続けることができる不揮発性メモリが使用される。
【０００８】
ここで、ＩＣカードを利用する際には、ＩＣカードがカード・リーダ／ライタから離れ、あるいはその他の原因により電磁波の受信状態が不良になった場合には、十分な駆動電力が得られなくなる、という問題がある。例えば，ＩＣカード内のメモリへデータの書き込み動作中に電源遮断が発生すると、書き込み動作が正常に完了しない。この結果、書き込み途中のデータ・ブロックは不安定な状態となり、そのページを上書きする際に再度電源の遮断が発生すると、当該データ・ブロックのデータが破壊されてしまう。
【０００９】
このような電源遮断の発生に伴うデータの破壊に対処するために、新たなデータが供給された場合に、前回書き込まれたデータが記憶されているブロック以外のブロックに、その新たなデータを書き込むようにすればよい。この場合、少なくとも、新たなデータの書き込みによる、前回書き込まれたデータの破壊が行なわれないので、最悪の場合でもＩＣカードが使用不可になることはない。
【００１０】
例えば、メモリ内のあるブロックＢ１に記憶されたデータを更新する（ブロックＢ１に記憶されているデータを、他のデータに書き換える）場合、ブロックＢ１自体に、新たなデータを書き込むと（既に記憶されているデータに上書きすると）、その書き込みの最中に、ＩＣカードへの電力の供給が不足したりしたとき、新たなデータは完全に書き込まれず、さらに、ブロックＢ１に記憶されていたデータは破壊されてしまう。例えば、ブロックＢ１に記憶されていたデータが、電子マネーの残金などであって、新たに買い物をして、その代金を差し引いた額を、新たなデータとして書き込むときの上記の事態が生じると、ＩＣカードは使用不可能になる。
【００１１】
そこで、ブロックＢ１に書き込むべき新たなデータを、そのブロックＢ１とは別のブロックＢ２に書き込む。このような場合、ブロックＢ２への書き込みの最中にメモリコラプションが生じたときには、新たなデータの書き込みは完全に行なわれず、その有効性は保証されないが、少なくとも、ブロックＢ１に記憶されていたデータが破壊されることは防止することができる。最後に、ブロックＢ２への書き込みが終了した後、ブロックＢ１に記憶されているデータを消去する。なお、さらに新たなデータが供給されたときには、そのデータは、ブロックＢ２とは異なるブロック（例えばブロックＢ１）に書き込まれる。
【００１２】
また、ＩＣカード内のメモリ空間上には、保存すべきデータを格納するデータ領域の他に、このデータ領域を構成する各データ・ブロックの物理的な配置を管理する管理テーブルが設けられている。ここで言う管理テーブルは、コンピュータ分野において広く知られるＭＳ−ＤＯＳ（Ｍｉｃｓｏｓｏｆｔ−Ｄｉｓｋ  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）（登録商標）のファイル・システムにおいて、ファイル空間上の各データ単位（例えば「セクタ」）の物理的な配置を管理するＦＡＴ（Ｆｉｌｅ  オールｏｃａｔｉｏｎ  Ｔａｂｌｅ）に相当する。本明細書中では、不揮発性メモリにおける管理テーブルのことを、「ルート・テーブル」（Ｒｏｏｔ  Ｔａｂｌｅ）とも呼ぶ。ＩＣカードへのデータ書き込み時における電源遮断の発生と、これに伴うデータ破壊の問題は、データ領域だけでなく、このルート・テーブルにおいても重要である。
【００１３】
ルート・テーブルのページへ書き込み動作中に電源が遮断し、そのページが不安定な状態となり、データが破壊されると、配置情報が失われることから、データ領域にアクセスできなくなってしまう。言い換えれば、ルート・テーブルのデータが破壊することは、データ領域のデータを破壊するものではないが、ＩＣカード自体が使用不能になることに相当する。
【００１４】
例えば、書き込み動作を単独で行なうことができ、且つ、書き込み途中で電源遮断が発生しても書き込み対象でないビットが０に落ちることはないメモリ・デバイスを使用した場合、上述したようなデータ破壊の問題はない。すなわち、書き込みが正常に完了しなかった不安定なページに対し上書きを行なう際、再度電源遮断が発生しても、ページのデータが壊れることはない。
【００１５】
しかしながら、最近利用されている多くの不揮発性メモリにおいては、ページ更新を行なう際に、必ず一旦消去してから書き込みを行なう仕様となっている。このような場合、書き込みが正常に完了しなかった不安定なページに対し上書きを行なう際、再度電源遮断が発生すると、ページのデータが壊れることがある。
【００１６】
このため、消去書き込み動作時における突発的な電源遮断の対策として、ルート・テーブルを２ページの対からなる２面構成とし、各ページを交互に有効ページ及び無効ページとして用い、データの保全を図るという方法が採られている（例えば、特許文献１を参照のこと）。
【００１７】
ここで、２面構成のルート・テーブルにおけるデータの消去書き込み動作の原理について、図１０を参照しながら説明する。但し、同図に示す例では、ルート・テーブルはＡ面及びＢ面の２ページが対となって構成されている。
【００１８】
図１０（Ａ）には、ルート・テーブルの一方のページとしてのＡ面にデータが既に記憶されており、他方のページとしてのＢ面では、データが消去されている様子を示している。
【００１９】
ここで、新たなデータの書き込みを行なう場合、上述したように、前回書き込まれたデータを破壊しないようにするために、図１０（Ｂ）に示すように、データの記録されていないＢ面に書き込まれる。そして、データの書き込みの終了後は、図１０（Ｃ）に示すように、Ａ面に記録されているすべてのデータが消去される。
【００２０】
しかしながら、ルート・テーブルを２面構成とした場合であっても、不安定なページに上書きしようとすると、書き込み途中で電源遮断が発生した場合には、同様にページ・データが破壊される可能性がある。
【００２１】
例えば、図１０（Ａ）及び（Ｂ）の途中の段階として、Ｂ面への書き込み動作中に当該ページ・データが不安定となる状態がある（図１１を参照のこと）。この段階で電源遮断が発生すると、後からＡ面及びＢ面の記憶内容や状態を参照しても、Ｂ面を消去中又は書き込み中のいずれの段階で中断したのかを特定することができないため、適当な修復方法を判断することができない。
【００２２】
また同様に、図１０（Ｂ）及び（Ｃ）の途中の段階として、Ａ面を消去動作中に当該ページ・データが不安定となる状態がある（図１２を参照のこと）。この段階で電源遮断が発生すると、後からＡ面及びＢ面の記憶内容や状態を参照しても、Ａ面を消去中又は書き込み中のいずれの段階で中断したのかを特定することができないため、適当な修復方法を判断することができない。
【００２３】
例えば、２ページの対として構成されるルート・テーブルで、いずれか一方のページに優位性を持たせることで、修復方法を限定するという方法もある。例えば、Ａ面に優位性を与え、Ｂ面にＡ面のデータをコピーするという修復方法をとることができる。しかしながら、この場合、Ａ面が不安定であった場合には、Ａ及びＢ両面のデータを不安定にしてしまう可能性がある。
【００２４】
なお、上述したような消去書き込み動作時における突発的な電源遮断によるデータ破壊の問題は、ＩＣカードのような非接触通信装置に限るものではない。例えば、消去書き込み式の不揮発性メモリを内蔵した携帯電話機やその他の情報機器においても、消去書き込み時に外界からの衝撃を受け、主電源としてのバッテリが突発的に外れてしまうとき、あるいは消去書き込み動作中にメモリ・カートリッジを機器本体から抜き去ろうとする場合にも、同様の問題が発生する。
【００２５】
【特許文献１】特開平１１−２５００３号公報
【発明の開示】
【発明が解決しようとする課題】
【００２６】
本発明の目的は、不揮発性メモリのように一旦消去してから書き込み動作を行なわなければならないメモリに対するデータ書き込み動作を好適に行なうことができる、優れた情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することにある。
【００２７】
本発明のさらなる目的は、メモリのあるページに対する消去書き込み動作中に電源遮断が発生しても次回起動時に有効なページを破壊することなく復旧することができる、優れた情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することにある。
【００２８】
本発明のさらなる目的は、メモリのデータ領域の配置情報を管理する管理データを消去書き込み動作中に電源遮断が発生しても、データの破壊を好適に防ぐことができる、優れた情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することにある。
【００２９】
本発明のさらなる目的は、消去書き込み動作中の電源遮断などにより不安定となったページに対する書き込み時に再度電源遮断が発生しても、ページのデータの破壊を好適に防ぐことができる、優れた情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することにある。
【課題を解決するための手段】
【００３０】
本発明は、上記課題を参酌してなされたものであり、消去後に書き込み動作を行なうメモリに対するデータ書き込み動作を制御する情報処理装置であって、
前記メモリはデータ領域の配置情報を管理するための第１乃至第３のページで構成される管理テーブルを備え、
データ領域のデータ更新に応じて、前記第１又は第２のページのうち一方に有効な配置情報を消去書き込みするページ更新手段と、
前記第１及び第２のページの有効性を判別する有効ページ判別手段と、
前記有効ページ判別手段により有効と判別されたページのデータを前記第３のページに消去書き込みするページ複製手段と、
前記有効性判別手段により無効と判別されたページを消去するページ消去手段と、
を具備することを特徴とする情報処理装置である。
【００３１】
ここで、前記第１又は第２のページのいずれか一方が有効な配置情報を記憶しているときに、データ領域のデータが更新されたことに応答して、前記ページ更新手段は、前記第１又は第２のページの他方のページに新しい配置情報の消去書き込みを行なうようにする。
【００３２】
また、前記第１及び第２のページは、自ページの記憶内容の新しさを示す最新情報フィールドと、配置情報及び最新情報のデータ書き込みが正常に終了したかどうかを示す有効性情報フィールドをそれぞれ備えているものとする。したがって、前記有効性ページ判別手段は、前記第１及び第２のページの各々の最新情報フィールド及び有効性情報フィールドを参照していずれのページが管理テーブルとして有効であるかを判別することができる。例えば、いずれか一方のページのみが有効である場合はそのページが有効であると判定する。また、双方のページの有効性情報が有効であることを示す場合には、最新情報を参照し、より新しさを示す方のページを管理テーブルとして有効であると判定する。
【００３３】
本発明によれば、メモリのデータ領域の配置情報を管理する管理テーブルを、第１乃至第３のページという３面で構成する。そして、第１及び第２のページの対を用い、各ページを交互に有効ページ及び無効ページとして用い、データの保全を図ることに加え、有効なページを第３のページへコピーするという手順を備えている。
【００３４】
このような場合、ページ・データの更新中に電源遮断が発生した場合であっても、次回起動したときには、これら第１乃至第３のページの有効性及び安定性を参照することによって、ページへのデータ書き込み動作のいずれの段階で電源が遮断されたかを判定することができる。したがって、判定されたデータ書き込み段階にとって適当な修復方法を判断することができるので、有効なページを破壊することなく、復旧することができる。
【００３５】
例えば、前記第１又は第２のページのいずれか一方のみが有効且つ安定しており、且つ前記第３のページに前記第１又は第２のページのいずれか一方のコピーが書き込まれている場合には、前記第１又は第２のページのうち無効なページの消去から有効なページへの書き換えの段階に途絶したと判定することができる。このような場合、前記第１又は第２のページのうち前記第３のページにコピーが書き込まれている方を有効と判断して修復することができる。
【００３６】
また、前記第１又は第２のページのいずれも有効且つ安定し、且つ前記第３のページが無効である場合には、前記ページ複製手段により前記第３のページに消去書き込みする段階に途絶したと判定することができる。このような場合、前記修復手段は、前記第１又は第２のページのうち前記有効ページ判別手段により有効と判定されたページを有効と判断して修復することができる。
【００３７】
また、前記第１又は第２のページのいずれも有効であるが一方のみが不安定である場合には、前記第３のページが前記第１又は第２のページのうちいずれのページと等しいかに基づいて前記第３のページの更新開始直後又は更新完了直前の段階に途絶したと判定することができる。このような場合、前記第１又は第２のページのうち前記有効ページ判別手段により有効と判定されたページを前記第３のページへ複製するとともに、前記第１又は第２のページのうち無効と判定されたページを消去することができる。
【００３８】
また、本発明の第２の側面は、消去後に書き込み動作を行なうメモリに対するデータ書き込み動作を制御するための処理をコンピュータ・システム上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、前記メモリはデータ領域の配置情報を管理するための第１乃至第３のページで構成される管理テーブルを備えており、
データ領域のデータ更新に応じて、前記第１又は第２のページのうち一方に有効な配置情報を消去書き込みするページ更新ステップと、
前記第１及び第２のページの有効性を判別する有効ページ判別ステップと、
前記有効ページ判別ステップにおいて有効と判別されたページのデータを前記第３のページに消去書き込みするページ複製ステップと、
前記有効性判別ステップにおいて無効と判別されたページを消去するページ消去ステップと、
を具備することを特徴とするコンピュータ・プログラムである。
【００３９】
本発明の第２の側面に係るコンピュータ・プログラムは、コンピュータ・システム上で所定の処理を実現するようにコンピュータ可読形式で記述されたコンピュータ・プログラムを定義したものである。換言すれば、本発明の第２の側面に係るコンピュータ・プログラムをコンピュータ・システムにインストールすることによって、コンピュータ・システム上では協働的作用が発揮され、本発明の第１の側面に係る情報処理装置と同様の作用効果を得ることができる。
【発明の効果】
【００４０】
本発明によれば、不揮発性メモリのように一旦消去してから書き込み動作を行なわなければならないメモリに対するデータ書き込み動作を好適に行なうことができる、優れた情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することができる。
【００４１】
また、本発明によれば、メモリのあるページに対する消去書き込み動作中に電源遮断が発生しても次回起動時に有効なページを破壊することなく復旧することができる、優れた情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することができる。
【００４２】
また、本発明によれば、メモリのデータ領域の配置情報を管理する管理データを消去書き込み動作中に電源遮断が発生しても、データの破壊を好適に防ぐことができる、優れた情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することができる。
【００４３】
また、本発明によれば、消去書き込み動作中の電源遮断などにより不安定となったページに対する書き込み時に再度電源遮断が発生しても、ページのデータの破壊を好適に防ぐことができる、優れた情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することができる。
【００４４】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【発明を実施するための最良の形態】
【００４５】
以下、図面を参照しながら本発明の実施形態について詳解する。
【００４６】
図１には、本発明を適用可能な非接触ＩＣカード通信システムの構成を模式的に示している。
【００４７】
この非接触カードシステムは、カード・リーダ／ライタ１と、ＩＣカード２と、コントローラ３で構成され、カード・リーダ／ライタ１とＩＣカード２との間では、電磁波を利用して非接触で、データの送受信が行なわれる。すなわち、カード・リーダ／ライタ１がＩＣカード２に所定のコマンドを送信し、ＩＣカード２は受信したコマンドに対応する処理を行なう。そして、ＩＣカード２は、その処理結果に対応する応答データをカード・リーダ／ライタ１に送信する。
【００４８】
カード・リーダ／ライタ１は、所定のインターフェース（例えば、ＲＳ−４８５Ａの規格などに準拠したもの）を介してコントローラ３に接続されている。コントローラ３は、カード・リーダ／ライタ１に対し制御信号を供給することで、所定の処理を行なわせる。
【００４９】
図２には、図１に示したカード・リーダ／ライタ１の構成例を示している。
【００５０】
ＩＣチップ・モジュール２１は、データの処理を行なうＤＰＵ（Ｄａｔａ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）３１と、ＩＣカード２への送信信号及びＩＣカード２からの受信信号の処理を行なうＳＰＵ（Ｓｉｇｎａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）３２と、コントローラ３との通信を行なうＳＣＣ（Ｓｅｒｉａｌ Ｃｏｍｍｕｎｉｃａｔｉｏｎ Ｃｏｎｔｒｏｌｌｅｒ）３３と、データの処理に必要な情報をあらかじめ記憶しているＲＯＭ部４１並びに処理中の作業データを一時的に記憶するＲＡＭ部４２を含んだメモリ部３４で構成され、これらの機能モジュールがバスを介して相互接続されている。また、このバスには、所定のデータを記憶するフラッシュ・メモリ２２も接続されている。
【００５１】
ＤＰＵ３１は、ＩＣカード２への送信コマンドをＳＰＵ３２に出力するとともに、ＩＣカード２から受信した応答データをＳＰＵ３２から受け取り、所定のデータ処理を行なう。
【００５２】
ＳＰＵ３２は、ＩＣカード２への送信コマンドに対し、例えばＢＰＳＫ（ＢｉＰｈａｓｅ Ｓｈｉｆｔ Ｋｅｙｉｎｇ）（ワンチェスタ・コードへのコーディング）などの変調処理を行なった後、変調回路２３に出力するとともに、ＩＣカード２からの応答データを復調回路２５から受け取り、そのデータに対し、ＢＰＳＫなどの所定の復調処理を行なう。
【００５３】
変調回路２３は、発振器２６より供給された所定の周波数（例えば１３．５６ＭＨｚ）の搬送波を、ＳＰＵ３２より供給されたデータでＡＳＫ（Ａｍｐｌｉｔｕｄｅ  Ｓｈｉｆｔ Ｋｅｙｉｎｇ）変調し、生成された変調波をアンテナ２７から電磁波としてＩＣカード２に出力する。このとき、変調回路２３は、変調度を１未満にして、ＡＳＫ変調を行なう。すなわち、データがロー・レベルのときにおいても、変調波の最大振幅がゼロにならないようにする。
【００５４】
復調回路２５は、アンテナ２７を介して受信した変調波（ＡＳＫ変調波）を復調し、復調されたデータをＳＰＵ３２に出力するようになされている。
【００５５】
図３には、図１に示したＩＣカード２の構成例を示している。このＩＣカードは、ＩＣチップ・モジュール５１と、ループ上のアンテナ５３とで構成される。
【００５６】
ＩＣチップ・モジュール５１は、カード・リーダ／ライタ１から送信された変調波を、アンテナ５３を介して受信する。なお、コンデンサ５２は、アンテナ５３とともにＬＣ回路を構成し、所定の周波数（キャリア周波数）の電磁波に同調（共振）するようになされている。
【００５７】
ＩＣチップ・モジュール５１は、ＲＦインターフェース部６１や演算部６４などで構成される。ＲＦインターフェース部６１で、ＡＳＫ復調部８１と、電圧レギュレータ８２と、発振回路８３と、ＡＳＫ変調部８４で構成される。ＡＳＫ復調部８１は、アンテナ５３を介して受信した変調波（ＡＳＫ変調波）を検波して復調し、復調後のデータをＢＰＳＫ復調回路６２及びＰＬＬ（Ｐｈａｓｅ Ｌｏｃｋｅｄ Ｌｏｏｐ）部６３に出力する。電圧レギュレータ８２は、ＡＳＫ復調部８１が検波した信号を安定化し、各回路に直流電力として供給する。
【００５８】
また、ＲＦインターフェース部６１は、発振回路８３でデータのクロック周波数と同一の周波数の信号を発振し、その信号をＰＬＬ部６３に出力する。そして、ＡＳＫ変調部８４は、演算部６４より供給されたデータに対応し、ＩＣカード２の電源としてのアンテナ５３の負荷を変動させる（例えば、データに対応して所定のスイッチング素子をオン／オフさせ、スイッチング素子がオン状態であるときだけ所定の負荷をアンテナ５３に並列に接続する）ことにより、アンテナ５３を介して受信している変調波をＡＳＫ変調し、その変調成分をアンテナ５３を介してカード・リーダ／ライタ１に送信する。ＩＣカード２からデータを送信するときは、カード・リーダ／ライタ１は、その出力する変調波の最大振幅を一定にしており、この変調波が、アンテナ５３の負荷の変動により、ＡＳＫ変調される。また、このデータ送信に伴い、カード・リーダ／ライタ１のアンテナ２７の端子電圧が変動する。
【００５９】
ＰＬＬ部６３は、ＡＳＫ復調部８１より供給されたデータより、そのデータに同期したクロック信号を生成し、そのクロック信号をＢＰＳＫ復調回路６２及びＢＰＳＫ変調回路６８に出力する。
【００６０】
ＢＰＳＫ復調回路６２は、ＡＳＫ復調部８１で復調されたデータがＢＰＳＫ変調されている場合、ＰＬＬ部６３より供給されたクロック信号に従って、そのデータの復調（ワンチェスタ・コードのデコード）を行ない、復調したデータを演算部６４に出力する。
【００６１】
演算部６４は、ＢＰＳＫ復調回路６２より供給されたデータが暗号化されている場合、そのデータを暗号／復号部９２で復号化した後、そのデータをシーケンサ９１で処理する。また、データが暗号化されていない場合、ＢＰＳＫ復調回路６２より供給されたデータは、暗号／復号部９２を介さず、シーケンサ９１に直接供給される。
【００６２】
シーケンサ９１は、そこに供給されるコマンドとしてのデータに対応する処理を行なう。例えば、シーケンサ９１は、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ Ｅｒａｓａｂｌｅ＆Ｐｒｏｇｒａｍｍａｂｌｅ ＲＯＭ）６６に対するデータの書き込みや読み出しなどの処理を行なう。
【００６３】
演算部６４のパリティ演算部９３は、ＥＥＰＲＯＭ６６に記憶されるデータや、ＥＥＰＲＯＭ６６に記憶されているデータから、パリティとしてリードソロモン符号を算出する。さらに、演算部６４は、シーケンサ９１で所定の処理を行なった後、その処理に対応する応答データ（カード・リーダ／ライタ１に送信するデータ）をＢＰＳＫ変調回路６８に出力する。
【００６４】
ＢＰＳＫ変調回路６８は、演算部６４より供給されたデータをＢＰＳＫ変調し、変調後のデータをＲＦインターフェース部６１のＡＳＫ変調部８４に出力する。
【００６５】
ＲＯＭ６５は、シーケンサ９１が行なうべき処理プログラムやその他の必要なデータを恒久的に記憶している。ＲＡＭ６７は、シーケンサ９１が処理を行なうときの作業データなどを一時的に記憶する。
【００６６】
ＥＥＰＲＯＭ６６は、不揮発性のメモリであり、例えば、ＩＣカード２上に電子決済を行なうための電子マネーや、特定のコンサート会場に入場するための電子チケットなど、多数のアプリケーションを格納しておくために利用される。ＩＣカード２自体は基本的にはバッテリなど駆動電源を持たないため、ＩＣカード２がカード・リーダ／ライタ１との通信を終了し、電力供給が停止した後も無電源状態でもデータを保持し続けることができるＥＥＰＲＯＭ６６のような不揮発性メモリが使用される。
【００６７】
次に、カード・リーダ／ライタ１とＩＣカード２間におけるデータの送受信処理について説明する。
【００６８】
カード・リーダ／ライタ１は、アンテナ２７から所定の電磁波を放射して、アンテナ２７の負荷状態を監視し、ＩＣカード２が接近することによる負荷状態の変化が検出されるまで待機する。なお、カード・リーダ／ライタ１は、所定の短いパターンのデータでＡＳＫ変調した電磁波を放射して、ＩＣカード２への呼びかけを、ＩＣカード２からの応答が一定時間内において得られるまで繰り返す処理（ポーリング）を行なうようにしてもよい。
【００６９】
カード・リーダ／ライタ１においてＩＣカード２の接近が検出されると、Ｒ／Ｗ１のＳＰＵ３２は、所定の周波数（例えば、データのクロック周波数の２倍の周波数）の矩形波を搬送波として、ＩＣカード２に送信するデータ（ＩＣカード２に実行させる処理に対応するコマンドやＩＣカード２に書き込むデータなど）でＢＰＳＫ変調を行ない、生成した変調波（ＢＰＳＫ変調信号）（ワンチェスタ・コード）を変調回路２３に出力する。
【００７０】
なお、ＢＰＳＫ変調時においては、差動変換を利用して、変調波の位相の変化に、データを対応させることができる。このようにした場合、ＢＰＳＫ変調信号が反転しても、元のデータに復調されるので、復調するとき変調波の極性を配慮する必要が無くなる。
【００７１】
変調回路２３は、入力されたＢＰＳＫ変調信号で、所定の搬送波を１未満（例えば０．１）の変調度（＝データ信号の最大振幅／搬送波の最大振幅）でＡＳＫ変調し、生成された変調波（ＡＳＫ変調波）を、アンテナ２７を介してＩＣカード２に送信する。
【００７２】
なお、送信を行なわないとき、変調回路２３は、ディジタル信号の２つのレベル（ハイレベルとローレベル）のうちの、例えばハイレベルで変調波を生成する。
【００７３】
ＩＣカード２では、アンテナ５３及びコンデンサ５２で構成されるＬＣ回路において、カード・リーダ／ライタ１のアンテナ２７が放射した電磁波の一部が電気信号に変換され、その電気信号（変調波）がＩＣチップ・モジュール５１のＲＦインターフェース６１に出力される。そして、ＲＦインターフェース６１のＡＳＫ復調部８１は、その変調波を整流平滑化することで包絡線検波を行ない、これにより生成される信号を電圧レギュレータ８２に供給するとともに、その信号の直流成分を抑制してデータ信号を抽出し、そのデータ信号をＢＰＳＫ復調回路６２及びＰＬＬ部６３に出力する。
【００７４】
電圧レギュレータ８２は、ＡＳＫ復調部８１より供給された信号を安定化し、直流電力を生成し、各回路に供給する。
【００７５】
なお、このとき、アンテナ５３の端子電圧Ｖ0 は、例えば次のようになる。
【００７６】
Ｖ0＝Ｖ10（１＋ｋ×Ｖｓ（ｔ））ｃｏｓ（ωｔ）
【００７７】
但し、Ｖ10ｃｏｓ（ωｔ）は搬送波を、ｋは変調度を、Ｖｓ（ｔ）はＳＰＵ３２が出力するデータを、それぞれ表す。
【００７８】
また、ＡＳＫ復調部８１による整流後の電圧Ｖ1におけるローレベルの値ＶLR は、例えば次のようになる。
【００７９】
ＶLR＝Ｖ10（１＋ｋ×（−１））−Ｖｆ
【００８０】
ここで、Ｖｆは、ＡＳＫ復調部８１において、整流平滑化を行なうための整流回路を構成するダイオードにおける電圧降下を示しており、一般に０．７ボルト程度である。
【００８１】
電圧レギュレータ８２は、ＡＳＫ復調部８１により整流平滑化された信号を受信すると、その信号を安定化し、直流電力として、演算部６４を始めとする各回路に供給する。なお、変調波の変調度ｋは１未満なので、整流後の電圧変動（ハイレベルとローレベルの差）が小さい。したがって、電圧レギュレータ８２において、直流電力を容易に生成することができる。
【００８２】
例えば、変調度ｋが５％の変調波を、Ｖ10が３ボルト以上になるように受信した場合、整流後のローレベル電圧ＶLRは２．１５（＝３×（１−０．０５）−０．７）ボルト以上となり、電圧レギュレータ８２は電源として充分な電圧を各回路に供給することができる。この場合、整流後の電圧Ｖ1 の交流成分（データ成分）の振幅２×ｋ×Ｖ10（Ｐｅａｋ−ｔｏ−Ｐｅａｋ値）は０．３（＝２０．０５×３）ボルト以上になり、ＡＳＫ復調部８１は十分高いＳ／Ｎ比でデータの復調を行なうことができる。
【００８３】
このように、変調度ｋが１未満のＡＳＫ変調波を利用することにより、エラーレートの低い（Ｓ／Ｎ比の高い状態で）通信を行なうとともに、電源として十分な直流電圧がＩＣカード２に供給される。
【００８４】
ＢＰＳＫ復調回路６２は、ＡＳＫ復調部８１からデータ信号（ＢＰＳＫ変調信号）を受信すると、そのデータ信号を、ＰＬＬ部６３より供給されるクロック信号に従って復調し、復調したデータを演算部６４に出力する。
【００８５】
演算部６４は、ＢＰＳＫ復調回路６２より供給されたデータが暗号化されている場合は、暗号／復号部９２で復号化した後、そのデータ（コマンド）をシーケンサ９１に供給して処理する。なお、ＩＣカード２にデータを送信後、それに対する返答を受信するまでの間、カード・リーダ／ライタ１は、値が１のデータを送信したまま待機している。したがって、この期間においては、ＩＣカード２は最大振幅が一定である変調波を受信している。
【００８６】
シーケンサ９１は、処理が終了すると、カード・リーダ／ライタ１に送信するデータをＢＰＳＫ変調回路６８に出力する。ＢＰＳＫ変調回路６８は、カード・リーダ／ライタ１側のＳＰＵ３２と同様に、そのデータをＢＰＳＫ変調（ワンチェスタ・コードにコーディング）した後、ＲＦインターフェース部６１のＡＳＫ変調部８４に出力する。
【００８７】
ＡＳＫ変調部８４は、アンテナ５３の両端に接続される負荷を、スイッチング素子を利用して変動させることができる。すなわち、ＢＰＳＫ変調回路６８からのデータに応じて負荷変動させることにより、受信している変調波を送信するデータに応じてＡＳＫ変調し、これによりカード・リーダ／ライタ１のアンテナ２７の端子電圧を変動させて、そのデータをカード・リーダ／ライタ１に送信する。
【００８８】
一方、カード・リーダ／ライタ１側の変調回路２３は、ＩＣカード２からのデータの受信時においては、値が１（ハイレベル）のデータの送信を継続している。そして、復調回路２５において、ＩＣカード２のアンテナ５３と電磁気的に結合しているアンテナ２７の端子電圧の微小な変動（例えば、数十マイクロボルト）から、ＩＣカード２により送信されてきたデータが検出される。
【００８９】
さらに、復調回路２５では、検出した信号（ＡＳＫ変調波）が高利得の増幅器で増幅されて復調され、その結果得られるディジタル・データがＳＰＵ３２に出力される。ＳＰＵ３２は、そのデータ（ＢＰＳＫ変調信号）を復調し、ＤＰＵ３１に出力する。ＤＰＵ３１は、ＳＰＵ３２からのデータを処理し、その処理結果に応じて、通信を終了するか否かを判断する。
【００９０】
そして、再度、通信を行なうと判断した場合、上述した場合と同様にして、カード・リーダ／ライタ１とＩＣカード２との間で通信が行なわれる。一方、通信を終了すると判断した場合、カード・リーダ／ライタ１は、ＩＣカード２との通信処理を終了する。
【００９１】
以上のように、カード・リーダ／ライタ１は、変調度ｋが１未満であるＡＳＫ変調を利用してＩＣカード２にデータを送信する。そして、ＩＣカード２は、そのデータを受け取り、そのデータに対応する処理を行ない、その処理結果に対応するデータをカード・リーダ／ライタ１に返送する。
【００９２】
次に、ＩＣカード２（図３）のシーケンサ９１による、ＥＥＰＲＯＭ６６に対するデータの読み書き処理について説明する。
【００９３】
図４には、ＥＥＰＲＯＭ６６に展開されるメモリ空間の構成を模式的に示している。同図に示すように、このメモリ空間は、データを記憶するデータ領域としての物理ブロックと、データ領域を構成する物理ブロックにおけるデータの配置情報を記憶する管理テーブルとしての物理ブロックで構成される。本実施形態では、管理テーブルは、ページＡ、Ｂ、Ｃという３面で構成されている。各物理ブロックは、例えば１１バイトで構成される。各ブロックは物理ブロック番号と論理ブロック番号を持つ。
【００９４】
図示の例では、データ領域は、物理ブロック番号として＃００Ｈ乃至＃０７Ｈそれぞれが割り当てられた８個の物理ブロックで構成されている（＃は、物理ブロック番号であることを表す）。また、外部からは、４つの論理ブロックが見えるようになされており、各論理ブロックにはそれぞれ論理ブロック番号として％００Ｈ乃至％０３Ｈが割り当てられている。同図に示した状態では、論理ブロック番号％００Ｈ乃至％０３Ｈと、物理ブロック番号＃００Ｈ乃至＃０３Ｈとがそれぞれ対応付けられている。
【００９５】
管理テーブルとしてのページＡ及びページＢを構成する物理ブロックは、その先頭の１バイトが最新性情報フィールドに、終わりの２バイトが有効性情報フィールドに、それぞれ割り当てられている。また、最新性情報と有効性情報との間の８バイトのフィールドは、データ領域におけるブロックの配置情報が割り当てられ、具体的にはデータ領域の物理ブロックの物理ブロック番号、すなわちデータ領域を構成する物理ブロックへのポインタが書き込まれる。
【００９６】
最新性情報（ＣＴＣ）は、そのブロックの記憶内容の新しさ（最新性）を示すもので、例えば、絶対的な日付及び時刻、あるいは時間の大小を表すシーケンシャルな番号その他を用いることができる。すなわち、絶対的な日付及び時刻を用いる場合には、データが記憶された日付及び時刻を最新性情報として記憶するようにし、各ブロックの最新性情報によりデータの記憶がなされた最新のブロックを検出することができる。また、シーケンシャルな番号を用いる場合には、例えば、データの書き込みが行われる度にインクリメントされる番号を最新性情報として記憶するようにし、その値の最も大きいブロックを最新のものとして検出することができる。
【００９７】
有効性情報は、そのブロックの最新性情報及びデータの書き込みが正常に終了したかどうか、すなわち最新性情報及びデータの有効性を示すもので、例えばＣＲＣ（巡回冗長検査）などの誤り訂正符号、あるいは有効／無効を示すその他のデータを用いることができる。
【００９８】
ページＡ及びページＢにおける配置情報フィールドのうち、前半の４バイトにはデータ領域の対象ブロックの物理ブロック番号が配置され、その後半の４バイトにはデータ領域の更新ブロックの物理ブロック番号が配置される。
【００９９】
ここで、対象ブロックとは、情報を書き込む場合に、本来その書き込みの対象となるべき物理ブロックを意味する。上述したように、データ領域においては、ブロックＢ１に記憶されたデータを新しいデータに書き換えるときには、その新しいデータをブロックＢ２に書き込むが、本来新しいデータを書き込むべきブロックＢ１が対象ブロックに相当する。また、更新ブロックとは、ある物理ブロックに情報を書き込み、その記憶内容を更新するときに用いられる更新用の物理ブロックを意味する。すなわち、ブロックＢ１に記憶されたデータを新しいデータに書き換える場合に、その新しいデータを実際に書き込むブロックＢ２が更新ブロックに相当する。
【０１００】
ページＡ及びページＢにおける配置情報フィールドのうち前半の４バイトに配置される４つの物理ブロック番号は、論理ブロック番号と対応付けられるようになされている。図４に示す例では、配置情報フィールドの１乃至４バイト目に配置される物理ブロック番号は、それぞれ論理ブロック番号％００Ｈ乃至％０３Ｈに対応付けられている。
【０１０１】
また、管理テーブルの残りのページであるページＣには、ページＡ又はページＢのうち管理テーブルとして有効となるページの配置情報がコピーされる。したがって、３面のページＡ〜Ｃがそれぞれ保持するデータの多数決を取ることによって、いずれのページ・データが有効であるかを容易に識別することができる。
【０１０２】
ここで、ＩＣカード２がカード・リーダ／ライタ１から離れ、あるいはその他の原因により電磁波の受信状態が不良になった場合には、十分な駆動電力が得られなくなる。このため、ＩＣカード２内のＥＥＰＲＯＭ６６へデータの書き込み動作中に電源遮断が発生すると、書き込み動作が正常に完了しない、という問題がある（前述）。
【０１０３】
データ領域に関しては、電源遮断の発生に伴うデータの破壊に対処するため、新たなデータが供給された場合に、前回書き込まれたデータが記憶されているブロック以外のブロックに、その新たなデータを書き込むようにする。この場合、複数の論理ブロックに関連する複数のデータを書き込むときに、その複数のデータの書き込みが終了するまでにデータの破壊が生じたときには、外部からは、論理ブロックにその関連する複数の古いデータが存在するように見える。したがって、新たなデータの書き込みによる、前回書き込まれたデータの破壊が行なわれないので、最悪の場合でもＩＣカード２が使用不可になることはない。
【０１０４】
例えば、ブロックＢ１に書き込むべき新たなデータを、そのブロックＢ１とは異なるブロックＢ２に書き込む。ブロックＢ２への書き込みの最中にメモリ・コラプションが生じたときには、新たなデータの書き込みは完全に行なわれず、その有効性は保証されないが、少なくとも、ブロックＢ１に記憶されていたデータが破壊されることは防止することができる。最後に、ブロックＢ２への書き込みが終了した後、ブロックＢ１に記憶されているデータを消去する。なお、さらに新たなデータが供給されたときには、そのデータは、ブロックＢ２とは異なるブロック（例えばブロックＢ１）に書き込まれる。
【０１０５】
また、管理テーブルにおいては、ページＡ〜Ｃという３面構成を利用することによって、データ書き込み時における電源遮断の発生の伴うデータ破壊の問題を解決する。すなわち、ページＡとＢの対を用い、各ページを交互に有効ページ及び無効ページとして用いてデータの保全を図ることに加え、さらに有効なページをページＣへコピーするという手順を備えている。
【０１０６】
このような場合、ページ・データの更新中に電源遮断が発生した場合であっても、次回起動したときには、これらページＡ〜Ｃそれぞれについての有効性及び安定性を参照することによって、ページへのデータ書き込み動作のいずれの段階で電源が遮断されたかを判定することができる。したがって、判定されたデータ書き込み段階にとって適当な修復方法を判断することができるので、有効なページを破壊することなく、復旧することができる。
【０１０７】
図５には、メモリのデータ領域の更新に伴って行なわれる、管理テーブルの有効面の切り替え手順を示している。
【０１０８】
同図では、ページＡに有効なデータ（配置情報）が安定に書き込まれている状態において、メモリのデータ領域の更新に伴って、ページＢに有効なデータを書き込むとともに、ページＣにページＢのコピーを書き込む場合の手順が例示されている。この手順は、ページＢの消去、ページＢへの書き込み、ページＣの消去、ページＣへの書き込み、ページＡの消去という複数の手順で構成され、状態１から状態１１への状態遷移を経て有効面の切り替えが実現する。
【０１０９】
状態１では、ページＡのデータは有効である。また、ページＢは前の過程で消去（すなわちオールＦＦ）されているので、無効である。
【０１１０】
ここで、ページＢへの書き込み動作の前処理として同ページの消去動作が開始し、状態２に遷移する。この状態２では、ページＡのデータは有効である。また、ページＢは消去動作の最中であることから、値が不安定（すなわちＣＲＣ（巡回冗長符号）エラーの状態）となる。
【０１１１】
ページＢの消去動作の完了により、状態３に遷移する。この状態３では、ページＡのデータは有効であり、ページＢは無効すなわちオールＦＦである。
【０１１２】
ページＢの消去動作の完了に引き続いて、ページＢへの新しいデータの書き込み動作が開始し、状態４に遷移する。この状態４では、ページＡのデータは有効である。また、ページＢは書き込み動作の最中であることから、値が不安定となる。
【０１１３】
そして、ページＢへの書き込み動作の完了により、状態５へ遷移する。この状態５では、ページＡ及びページＢのデータはともに有効である。
【０１１４】
また、状態１から状態５の間では、前回のデータを保持しているページＡが有効である。したがって、ページＣは、ページＡのコピーが書き込まれた安定な状態を維持している。
【０１１５】
状態５では、ページＡ及びページＢがともに有効にデータを保持しているが、双方のページの最新性情報ＣＴＣを参照すると、ページＢの方が大きく、より最新の情報を持つことが判別される。したがって、有効なページがページＡからページＢに転じることから、ページＢのデータをページＣにコピーするための動作が開始する。このページ・コピー動作は、ページＣの消去と、ページＣへの書き込みで構成される。
【０１１６】
ページＣへの書き込み動作の前処理として同ページの消去動作が開始し、状態６に遷移する。この状態６では、ページＡ及びページＢは有効であるが、ページＣは消去動作の最中であることから、値が不安定となる。
【０１１７】
ページＣの消去動作の完了により、状態７に遷移する。この状態７では、ページＡ及びページＢのデータは有効であり、ページＣは無効すなわちオールＦＦである。
【０１１８】
ページＣの消去動作の完了に引き続いて、ページＣへページＢのデータを書き込む動作が開始し、状態８に遷移する。この状態８では、ページＡ及びページＢのデータは有効である。また、ページＣは書き込み動作の最中であることから、値が不安定となる。
【０１１９】
そして、ページＣへの書き込み動作の完了により、状態９へ遷移する。この状態９では、ページＡ、ページＢ、並びにページＣのデータはともに有効である。
【０１２０】
この段階で、２面の対となって動作するページＡ及びページＢのデータはいずれも有効であるが、それぞれのページの最新性情報ＣＴＣを参照することにより、ページＡは無効に転じていることが判別される。したがって、無効なページＡの消去動作が開始する。
【０１２１】
すなわち、ページＡの消去動作の開始により、状態１０に遷移する。この状態１０では、ページＢ及びページＣは有効であるが、ページＡは消去動作の最中であることから、値が不安定となる。
【０１２２】
ページＡの消去動作の完了により、状態１１に遷移する。この状態１１では、ページＢ及びページＣのデータは有効であり、ページＡは無効すなわちオールＦＦである。
【０１２３】
このような３面のページＡ〜Ｃの消去書き込み動作を行なうことにより、ページＡ〜Ｃがそれぞれ保持するデータの多数決を取ることによって、いずれのページ・データが有効であるかを識別することができる。
【０１２４】
さらに、ページ・データの更新中に電源遮断が発生した場合であっても、次回起動したときには、これらページＡ〜Ｃの有効性及び安定性を参照することによって、ページへのデータ書き込み動作のいずれの段階で電源が遮断されたかを判定することができる。すなわち、図５に示した状態１〜状態１１のいずれで動作が停止しても、ページＡ〜Ｃは常に次のいずれかの状態に分類することができる。
【０１２５】
（１）判定パターン１
ページＡ又はページＢのどちらか一方のみが有効且つ安定しており、ページＣにはそのどちらかのコピーが書かれている。但し、ページＣは不安定である可能性がある。
【０１２６】
（２）判定パターン２
ページＡ及びページＢのどちらも有効且つ安定しているが、ページＣが無効である。
【０１２７】
（３）判定パターン３
ページＡ〜Ｃがいずれも有効であるが、どれか１面のみ不安定である。
【０１２８】
判定パターン１では、ページＡまたはページＢのどちらかの面のコピーがページＣに書き込まれていることから、無効面の消去から有効面へ切り替えるまでの間に途絶したことが判る。したがって、ページＣにコピーが書かれている面を有効面と判断することができる。
【０１２９】
また、判定パターン２では、ページＣのコピー内容を更新する際に途絶したことが判る。したがって、コピー元となる面すなわちページＡ又はページＢで最新性情報ＣＴＣの大きい側が有効面と判断することができる。
【０１３０】
また、判定パターン３では、ページＣがページＡ又はページＢのどちらの面と等しいかに基づいて、ページＣの更新を開始した直後、またはページＣの更新を完了する直前のいずれかで途絶したことが判る。したがって、ページＣのコピー元である面が有効面であると判断することができる。この場合、有効面は安定していることが言えるが、他の２面はどちらかが不安定であるため、ページＣを有効面でコピーし直し、無効面を消去する。
【０１３１】
以上より、ページＡ又はページＢのうち有効面をページＣへコピーする手順を追加することにより、管理テーブルの更新中に電源遮断が発生した場合であっても、次回起動時に有効面を壊してしまうことなく復旧することができる。
【０１３２】
図６には、管理テーブルの有効面切り替え時の状態と、各状態において電源遮断が発生したときの起動時処理を表形式でまとめている。
【０１３３】
状態１は、ページＢへ最新のデータを書き込む動作の基点であり、管理テーブルとしての有効面はページＡである。この状態１で電源遮断が発生した場合、判定パターン１と判別され、次回の起動時は特に復旧動作を必要としない。
【０１３４】
状態２は、書き込み先となるページＢの消去動作を行なっている期間であり、管理テーブルとしての有効面はページＡである。この場合、ページＡのデータは有効で、消去中のページＢが不安定な状態として、オールＦＦ（状態２−１）、オール０（状態２−２）、ＣＲＣエラー（状態２−３）という３つの状態に細分化される。この状態２で電源遮断が発生した場合、判定パターン１と判別され、次回の起動時は特に復旧動作を必要としない。
【０１３５】
状態３は、ページＢの消去動作が完了した時点であり、管理テーブルとしての有効面はページＡで、ページＢはオールＦＦとなっている。この状態３で電源遮断が発生した場合、判定パターン１と判別され、次回の起動時は特に復旧動作を必要としない。
【０１３６】
状態４は、ページＢの書き込み動作を行なっている期間であり、管理テーブルとしての有効面はページＡである。この場合、ページＡのデータは有効で、書き込み中のページＢが不安定な状態として、オールＦＦ（状態４−１）、オール０（状態４−２）、ＣＲＣエラー（状態４−３）、不安定だが管理テーブルとしてページＢが有効面（状態４−４）、という４つの状態に細分化される。
【０１３７】
この状態４で電源遮断が発生した場合、状態４−１〜状態４−３では判定パターン１と判別され、次回の起動時は特に復旧動作を必要としない。また、状態４−４では、判定パターン３、すなわちページＣがページＡと等しいことを判別し、次回の起動時には、ページＡをページＣにコピーするとともに、無効なページＢを消去するという復旧処理を行なう。
【０１３８】
状態５は、ページＢの書き込み動作が完了した時点であり、ページＡ及びページＢのデータはともに有効であるが、ページＣにはまだページＡのコピーが書き込まれているので、多数決により管理テーブルとしての有効面はページＡである。この状態５で電源遮断が発生した場合、判定パターン３、すなわちページＣがページＡと等しいことを判別し、次回の起動時には、ページＡをページＣにコピーするとともに、無効なページＢを消去するという復旧処理を行なう。
【０１３９】
状態６は、ページＣの消去動作を行なっている期間であり、ページＡ及びページＢのいずれのデータも有効であるが、ページＢの最新性情報ＣＴＣが大（すなわち最新）である。この期間中に、管理テーブルとしての有効面がページＡの状態（状態６−１）から、ページＢの状態（状態６−２〜４）へ切り替わる。この場合、ページＡ及びページＢのデータは有効であるが、消去中のページＣが不安定な状態として、ページＡのコピーを保持する状態（状態６−１）、オール００（状態６−２）、ＣＲＣエラー（状態６−３）、オールＦＦ（状態６−４）、という４つの状態に細分化される。
【０１４０】
この状態６で電源遮断が発生した場合、状態６−１では、判定パターン３、すなわちページＣがページＡと等しいことを判別し、次回の起動時には、ページＡをページＣにコピーするとともに、無効なページＢを消去するという復旧処理を行なう。また、状態６−２〜状態６−４では、判定パターン２と判別され、次回の起動時には、ページＡとページＢを比較し、最新性情報ＣＴＣの大きいページＢを有効面と判定してページＣにコピーするとともに、無効面となるページＡを消去するという復旧処理を行なう。
【０１４１】
状態７は、ページＣの消去動作が完了した時点であり、ページＣはオールＦＦとなっている。ページＡ及びページＢのデータはともに有効であるので、最新性情報ＣＴＣがより大きいページＢが管理テーブルの有効面となる。この状態７で電源遮断が発生した場合、判定パターン２と判別し、次回の起動時には、ページＡとページＢを比較し、最新性情報ＣＴＣの大きいページＢを有効面と判定してページＣにコピーするとともに、無効面となるページＡを消去するという復旧処理を行なう。
【０１４２】
状態８は、ページＣの書き込み動作を行なっている期間であり、ページＡ及びページＢのデータはともに有効であるので、最新性情報ＣＴＣがより大きいページＢが管理テーブルの有効面となる。また、書き込み中のページＣが不安定な状態として、オールＦＦ（状態８−１）、オール０（状態８−２）、ＣＲＣエラー（状態８−３）、不安定だが管理テーブルとしてページＢのデータが書き込まれた状態（状態８−４）、という４つの状態に細分化される。
【０１４３】
この状態８で電源遮断が発生した場合、状態８−１〜状態８−３では判定パターン２と判別され、次回の起動時には、ページＡとページＢを比較し、最新性情報ＣＴＣの大きいページＢを有効面と判定してページＣにコピーするとともに、無効面となるページＡを消去するという復旧処理を行なう。また、状態８−４では判定パターン３、すなわちページＣがページＢと等しいことを判別し、次回の起動時には、ページＢをページＣにコピーするとともに、無効なページＡを消去するという復旧処理を行なう。
【０１４４】
状態９は、ページＣの書き込み動作が完了した時点であり、ページＡ及びページＢのデータはともに有効であるが、ページＣにはまだページＢのコピーが書き込まれているので、多数決により管理テーブルとしての有効面はページＢである。この状態９で電源遮断が発生した場合、判定パターン３、すなわちページＣがページＢと等しいことを判別し、次回の起動時には、ページＢをページＣにコピーするとともに、無効なページＡを消去するという復旧処理を行なう。
【０１４５】
状態１０は、無効となったページＡの消去動作を行なっている期間であり、管理テーブルとしての有効面はページＢである。この場合、ページＢのデータは有効で、消去中のページＡが不安定な状態として、不安定だが有効（状態１０−１）、オール０（状態１０−２）、ＣＲＣエラー（状態１０−３）、オールＦＦ（状態１０−４）という４つの状態に細分化される。
【０１４６】
この状態１０で電源遮断が発生した場合、状態１０−１では判定パターン３、すなわちページＣがページＢと等しいことを判別し、次回の起動時には、ページＢをページＣにコピーするとともに、無効なページＡを消去するという復旧処理を行なう。また、状態１０−２〜１０−４では、判定パターン１と判別され、次回の起動時は特に復旧動作を必要としない。
【０１４７】
図７には、メモリのデータ領域の更新に伴って行なわれる管理テーブルの正常な切り替え処理、並びに切り替え処理の途中で電源遮断が発生したときの復旧処理による管理テーブルの状態遷移図を示している。
【０１４８】
ページＢの書き込み起点では、ページＡは有効で、ページＢは無効であり、ページＣはページＡのコピーを保持している状態Ｉである。ここで、ページＢの消去動作期間中はこの状態が維持される。そして、途中で電源が遮断された場合には、判定パターン１と判別され、状態は変わらない。
【０１４９】
次いで、ページＢの書き込み動作が行なわれることによって、ページＡ及びページＢのデータがともに有効で、ページＣがページＡのコピーを保持した状態ＩＩに遷移する。この状態遷移の途中で電源遮断が発生すると、判定パターン３と判別され、次回の起動時に行なわれる修復処理により、前回の状態Ｉに戻される。
【０１５０】
次いで、ページＣの消去動作が行なわれることによって、ページＡ及びページＢのデータがともに有効で、ページＣが無効となった状態ＩＩＩに遷移する。また、管理テーブルとしての有効面は、ページＡからページＢに転じる。この状態遷移の途中で電源遮断が発生すると、判定パターン２と判別され、次回の起動時に行なわれる修復処理により、ページＣへの書き込みを行なった次の状態ＩＶに進む。
【０１５１】
次いで、ページＣの書き込み動作が行なわれることによって、ページＡ及びページＢのデータがともに有効で、ページＣがページＢのコピーを保持した状態Ｖに遷移する。この状態繊維の途中で電源遮断が発生すると、判定パターン３と判別され、次回の起動時に行なわれる修復処理により、ページＡの消去を行なった次の状態ＶＩに進む。
【０１５２】
次いで、ページＡの消去動作が行なわれることによって、ページＡは無効で、ページＢは有効であり、ページＣはページＢのコピーを保持している状態ＶＩに進む。この状態遷移の途中で電源遮断が発生すると、判定パターン１と判別され、状態は変わらない。
【０１５３】
状態ＶＩはページＡの書き込み基点でもあり、以降、ページＡとページＢを逆にして、上述と同様の状態遷移が繰り返し行なわれる。
【０１５４】
図８には、管理テーブルの有効面判定処理と、復旧処理を行なうための処理手順をフローチャートの形式で示している。この処理手順は、例えば電源遮断が発生したときに、次回の起動時において実行される。以下では、ページの状態として、ＣＲＣは正しい状態００（オール００を除く）、ページがオール００となる状態０１、ＣＲＣが不正となる状態１０（オールＦＦを除く）、ページがオールＦＦとなる状態１１という４通りの状態を定義する。
【０１５５】
まず、ページＡ〜ページＣそれぞれの状態を判別し（ステップＳ１）、これらのページの状態の組み合わせ判定を行なう（ステップＳ２）。
【０１５６】
ここで、ページＡが状態００、ページＢが状態００以外、ページＣが状態００である場合には、判定パターン１と判定され、ページＡを有効面として扱われる（ステップＳ３）。
【０１５７】
また、ページＡが状態００以外、ページＢが状態００、ページＣが状態００である場合には、判定パターン１と判定され、ページＢを有効面として扱われる（ステップＳ４）。
【０１５８】
また、ページＡが状態００、ページＢが状態００、ページＣが状態００である場合には、判定パターン３と判定される。この場合、さらに、ページＣがページＡと同じデータを保持しているかどうかをチェックする（ステップＳ５）。そして、ページＣがページＡと同じ場合にはページＡを管理テーブルの有効面として選択するが（ステップＳ７）、ページＣがページＡと異なる場合にはページＢを管理テーブルの有効面として選択する（ステップＳ８）。
【０１５９】
また、ページＡが状態００、ページＢが状態００、ページＣが状態００以外である場合には、判定パターン３と判定される。この場合、さらに、ページＡとページＢの最新性情報ＣＴＣを比較する（ステップＳ６）。そして、ページＡの最新性情報ＣＴＣが大きい（すなわち最新である）場合にはページＡを管理テーブルの有効面として選択するが（ステップＳ７）、そうでない場合にはページＢを管理テーブルの有効面として選択する（ステップＳ８）。
【０１６０】
ページＡを有効面として選択した場合（ステップＳ７）、ページＣにページＡをコピーすなわち消去書き込み動作を行ない（ステップＳ９）、無効面としてのページＢを消去する（ステップＳ１０）。
【０１６１】
また、ページＢを有効面として選択した場合（ステップＳ８）、ページＣにページＢをコピーすなわち消去書き込み動作を行ない（ステップＳ１１）、無効面としてのページＡを消去する（ステップＳ１２）。
【０１６２】
また、各ページＡ〜Ｃの状態の組み合わせが上記以外である場合には、異常と判定し（ステップＳ１３）、本処理ルーチン全体を終了する。
【０１６３】
図９には、図８に示したフローチャートのステップＳ１で行なわれる、各ページＡ〜Ｃの状態を判別するための処理手順をフローチャートの形式で示している。
【０１６４】
まず、処理対象となるページのＣＲＣが正しいかどうかをチェックする（ステップＳ２１）。
【０１６５】
ここで、ページのＣＲＣが正しい場合には、仮にページの状態を状態００とし（ステップＳ２２）、さらに当該ページがオール００であるかどうかをチェックする（ステップＳ２３）。
【０１６６】
そして、当該ページがオール００である場合には、状態を状態０１とする（ステップＳ２４）。
【０１６７】
また、ページのＣＲＣが正しくない場合には（ステップＳ２１）、当該ページの状態を仮に状態１０とし（ステップＳ２５）、さらに当該ページがオールＦＦであるかどうかをチェックする（ステップＳ２６）。
【０１６８】
そして、当該ページがオールＦＦである場合には、状態を状態１１とする（ステップＳ２７）。
【産業上の利用可能性】
【０１６９】
以上、特定の実施形態を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。
【０１７０】
本明細書では、ＩＣカードに内蔵された不揮発性メモリに対するデータの消去書き込み動作を例にとって本発明の実施形態について説明したが、本発明の要旨はこれに限定されるものではない。すなわち、このような消去書き込み動作時における突発的な電源遮断によるデータ破壊の問題は、ＩＣカードのような非接触通信装置に限るものではない。例えば、消去書き込み式の不揮発性メモリを内蔵した携帯電話機やその他の情報機器においても、消去書き込み時に外界からの衝撃を受け、主電源としてのバッテリが突発的に外れてしまうときや、消去書き込み動作中にメモリ・カートリッジを利き本体から抜き去ろうとする場合であっても、本発明が同様に実現可能であることは言うまでもない。
【０１７１】
要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【図面の簡単な説明】
【０１７２】
【図１】図１は、本発明を適用可能な非接触ＩＣカード通信システムの構成を模式的に示した図である。
【図２】図２は、カード・リーダ／ライタ１の構成例を示した図である。
【図３】図３は、ＩＣカード２の構成例を示した図である。
【図４】図４は、ＥＥＰＲＯＭ６６に展開されるメモリ空間の構成を模式的に示した図である。
【図５】図５は、メモリのデータ領域の更新に伴って行なわれる、管理テーブルの有効面の切り替え手順を示した図である。
【図６】図６は、管理テーブルの有効面切り替え時の状態と、各状態において電源遮断が発生したときの起動時処理を示した図である。
【図７】図７は、メモリのデータ領域の更新に伴って行なわれる管理テーブルの正常な切り替え処理、並びに切り替え処理の途中で電源遮断が発生したときの復旧処理による管理テーブルの状態遷移図である。
【図８】図８は、管理テーブルの有効面判定処理と、復旧処理を行なうための処理手順を示したフローチャートである。
【図９】図９は、各ページＡ〜Ｃの状態を判別するための処理手順を示したフローチャートである。
【図１０】図１０は、２面構成のルート・テーブルにおけるデータの消去書き込み動作を説明するための図である。
【図１１】図１１は、２面構成のルート・テーブルにおけるデータの消去書き込み動作を説明するための図である。
【図１２】図１２は、２面構成のルート・テーブルにおけるデータの消去書き込み動作を説明するための図である。
【符号の説明】
【０１７３】
１…カード・リーダ／ライタ
２…ＩＣカード
３…コントローラ
２１…ＩＣチップ・モジュール
２３…変調回路
２５…復調回路
２７…アンテナ
５１…ＩＣチップ・モジュール
５２…コンデンサ
５３…アンテナ
６１…ＲＦインターフェース部
６２…ＢＰＳＫ復調回路
６３…ＰＬＬ部
６４…演算部
６５…ＲＯＭ
６６…ＥＥＰＲＯＭ
６７…ＲＡＭ
６８…ＢＰＳＫ変調回路
８１…ＡＳＫ復調部
８２…電圧レギュレータ
８３…発振回路
８４…ＡＳＫ変調部
９１…シーケンサ
９２…暗号／復号部
９３…パリティ演算部
【図１】
0004701618.tif 000002
【図２】
0004701618.tif 000003
【図３】
0004701618.tif 000004
【図４】
0004701618.tif 000005
【図５】
0004701618.tif 000006
【図６】
0004701618.tif 000007
【図７】
0004701618.tif 000008
【図８】
0004701618.tif 000009
【図９】
0004701618.tif 000010
【図１０】
0004701618.tif 000011
【図１１】
0004701618.tif 000012
【図１２】
0004701618.tif 000013