(57)【特許請求の範囲】
【請求項１】
フラッシュメモリに保持されているデータを再書き込みするリフレッシュ処理を実行するリフレッシュ手段と、外部装置から受信したコマンドの実行回数の規定値を前記トリガー条件として保持し、外部装置からコマンドを受信すると、該コマンドを処理した後、外部装置から受信したコマンドの実行回数をカウントするカウンタをインクリメントし、インクリメントした後の前記カウンタの値が前記規定値になると、前記リフレッシュ手段を呼び出し、前記リフレッシュ手段の処理が終了すると、該コマンドのレスポンスを外部装置へ送信するコマンド管理手段を備えたＩＣカードにおいて、
前記ＩＣカードは、データ保持に利用しない空きページが設けられるように論理ページの総数が設定され、論理ページ番号に対応する物理ページ番号を記述したページ管理テーブルと、次にリフレッシュ処理する論理ページの論理ページ番号である次回ページ番号を保持し、
前記リフレッシュ手段は、前記コマンド管理手段から呼び出されると、前記ページ管理テーブルを参照し、前記次回ページ番号に対応する物理ページのデータを、所定のアルゴリズムにより決定した前記空ページにページコピーすることで、前記次回ページ番号に対応する物理ページ番号で特定されるページをリフレッシュ処理した後、前記ページ管理テーブルを更新する処理として、前記次回ページ番号で示される論理ページ番号に対応付けられた物理ページ番号を該空ページの物理ページ番号に更新する処理を実行し、更に、前記次回ページ番号を更新する処理として、前記次回ページ番号が最終の論理ページ番号でなければ、前記次回ページ番号を一つインクリメントし、前記次回ページ番号が最終の論理ページ番号であれば、前記次回ページ番号及び前記カウンタを初期化する処理を実行する、
ことを特徴とするＩＣカード。
【請求項２】
前記リフレッシュ手段は、前記ページ管理テーブルを更新する処理として、前記次回ページ番号で示される論理ページ番号に対応付けられた物理ページ番号を、リフレッシュ処理される前の旧物理ページ番号として該論理ページ番号に対応付けて前記ページ管理テーブルに記憶する処理を行い、前記次回ページ番号を更新する処理を実行する前に、前回の前記旧物理ページ番号が前記ページ管理テーブルに記憶されていれば、該旧物理ページ番号を前記ページ管理テーブルから削除すると共に、該旧物理ページ番号で特定されるページを初期化することを特徴とする、請求項１に記載のＩＣカード。
【請求項３】
フラッシュメモリのリフレッシュ処理を行うトリガー条件として、外部装置から受信したコマンドの実行回数の規定値を保持するＩＣカードが、外部装置からコマンドを受信すると、該コマンドを処理した後、外部装置から受信したコマンドの実行回数をカウンタを利用してカウントし、インクリメント後の前記カウンタの値を確認することで、前記トリガー条件が成立しているか確認するステップａ、前記ＩＣカードが、インクリメント後の前記カウンタの値が前記規定値になると、前記ＩＣカードに実装されたフラッシュメモリに保持されているデータをページ単位で取得し、フラッシュメモリにページ単位で該データを再書き込みするリフレッシュ処理を実行するステップｂ、リフレッシュ処理が終了すると、ステップａで受信したコマンドのレスポンスを外部装置へ送信するステップｃが実行されるＩＣカードのリフレッシュ方法において、
前記ＩＣカードは、データ保持に利用しない空きページが設けられるように論理ページの総数が設定され、論理ページ番号に対応する物理ページ番号を記述したページ管理テーブルと、次にリフレッシュ処理する論理ページの論理ページ番号である次回ページ番号を保持し、前記ステップｂにおいて、前記ＩＣカードは、インクリメント後の前記カウンタの値が前記規定値になると、前記ページ管理テーブルを参照し、前記次回ページ番号に対応する物理ページのデータをページ単位で取得し、所定のアルゴリズムにより決定した前記空ページに該データをページ単位で再書き込みすることで、前記次回ページ番号に対応する物理ページ番号で特定されるページをリフレッシュ処理した後、前記ページ管理テーブルを更新する処理として、前記次回ページ番号で示される論理ページ番号に対応付けられた物理ページ番号を該空ページの物理ページ番号に更新する処理と、前記次回ページ番号を更新する処理として、前記次回ページ番号が最終の論理ページ番号でなければ、前記次回ページ番号を一つインクリメントし、前記次回ページ番号が最終の論理ページ番号であれば、前記次回ページ番号及び前記カウンタを初期化する処理を実行する、
ことを特徴とするＩＣカードのリフレッシュ方法。
【請求項４】
前記ステップｂにおいて、前記ＩＣカードは、前記ページ管理テーブルを更新する処理として、前記次回ページ番号で示される論理ページ番号に対応付けられた物理ページ番号を、リフレッシュ処理される前の旧物理ページ番号として該論理ページ番号に対応付けて前記ページ管理テーブルに記憶する処理を行い、前記次回ページ番号を更新する処理を実行する前に、前回の前記旧物理ページ番号が前記ページ管理テーブルに記憶されていれば、該旧物理ページ番号を前記ページ管理テーブルから削除すると共に、該旧物理ページ番号で特定されるページを初期化することを特徴とする、請求項３に記載のＩＣカードのリフレッシュ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路（ＩＣチップ）をもつ記録担体であるＩＣカードに実装されたフラッシュメモリをリフレッシュ処理するための技術に係わる。
【背景技術】
【０００２】
半導体集積回路（ＩＣチップ）をもつ記録担体であるＩＣカードには、書き換え可能な不揮発性メモリが搭載され、電源未投入の状態でもデータを保持することが可能で、ＩＣカードに搭載された書き換え可能な不揮発性メモリには暗号鍵などのデータが記憶される。
【０００３】
従来、ＩＣカードに実装されるＩＣチップの書き換え可能な不揮発性メモリとしては、ＥＥＰＲＯＭ (Electrically Erasable Programmable Read-Only Memory)が広く用いられてきたが、大容量化や高集積化を狙いとして、書き換え可能な不揮発性メモリとしてフラッシュメモリ(Flash Memory)が採用されたＩＣチップが近年増加している。
【０００４】
ＥＥＰＲＯＭとフラッシュメモリでは同じメモリであってものその特性は異なり、フラッシュメモリを実装したＩＣチップを利用する際は、フラッシュメモリの特性に応じたプログラミングが必要になる。例えば、ＥＥＰＲＯＭとフラッシュメモリではデータの書き込み単位が異なり、ＥＥＰＲＯＭではデータを1バイト単位でアクセスが可能だが、フラッシュメモリではページ単位(現時点では、１ページは１２８〜２５６Ｂｙｔｅｓ程度)でのみアクセスが可能なため、ページ単位でアクセスするためのプログラミングが必要になる。
【０００５】
一方で、ＩＣカードの一つの形態であるＳＩＭ (Subscriber Identification Module)の利用分野の一つとして、Ｍ２Ｍ(Machine to Machine)が近年注目されている。Ｍ２Ｍとは、機器間で相互に通信を行うことにより、各機器の制御を行うための技術で、このＭ２Ｍに対し、ＳＩＭを用いた携帯電話網による通信形態を適用することにより、新たなサービスやインフラの構築が可能となる。
【０００６】
Ｍ２ＭにＳＩＭを適用する際、ＳＩＭは装置に実装されて利用されるため、フラッシュメモリのデータ保持期間（一般的には１０年）を超えてデータを保持できることが要求される。データ保持期間はフラッシュメモリへの最後の書き込み時点からの経過時間が基準となることから、データ保持期間を延長する手法として、データをフラッシュメモリへ書き込んだ後、然るべきタイミングでデータを再書き込みするリフレッシュ処理を用いることができるが、ＳＩＭに対してリフレッシュ処理を行う場合、リフレッシュ処理を行うタイミングが問題となる。
【０００７】
コンデンサに電荷を蓄えることでデータを保持するメモリであるＤＲＡＭであれば、ＤＲＡＭには常時通電されているため、リフレッシュ処理のタイミングを一定時間の経過とすればよいが、Ｍ２ＭでＳＩＭを利用する場合、不測の電源断が発生する可能性があるため、不測の電源断を考慮してフラッシュメモリをリフレッシュ処理するタイミングを決定する必要がある。
【０００８】
フラッシュメモリをリフレッシュ処理する発明として、例えば、特許文献１において、コマンドメッセージが送信されない時間を利用し、メモリを自律的にリフレッシュ処理する機能を備えたストレージデバイスが開示されている。
【０００９】
しかしながら、特許文献１で開示されている発明をＭ２Ｍで利用されるＳＩＭに適用する場合、特許文献１で開示されている発明では自律的にリフレッシュ処理が行われるため、リフレッシュ処理中に不測の電源断が発生した場合、フラッシュメモリに記憶されていた内容が破壊される可能性がある。
【００１０】
また、特許文献２では、ページ単位のデータをフラッシュメモリからＲＡＭに退避させ、ＲＡＭに退避させたフラッシュメモリのデータを消去し、再度、ＲＡＭからフラッシュメモリに退避させたデータを再書き込みして、ページ単位でリフレッシュすることで、フレッシュメモリに記憶されたデータの劣化を防止する発明が開示されている。
【００１１】
しかしながら、特許文献２で開示されている発明をＭ２Ｍで利用されるＳＩＭに適用する場合、特許文献２で開示されている発明では、不測の電源断が発生した場合、ＲＡＭの退避されたデータは、ＲＡＭ及びフラッシュメモリにも残らないため、フラッシュメモリに記憶されていた内容が破壊される可能性がある。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００９−９９１８５号公報
【特許文献２】特許第３６４１０６６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
そこで、本発明は、データ保持期間の延長を目的として、ＩＣカードに実装されたフラッシュメモリをリフレッシュ処理する際、リフレッシュ処理中に発生した不測の電源断により、フラッシュメモリに保持されているデータが破損することを防止できるＩＣカード及びＩＣカードのリフレッシュ方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上述した課題を解決する第１の発明のＩＣカードは、ＩＣカードに実装されたフラッシュメモリをリフレッシュ処理できるように、フラッシュメモリに保持されているデータを再書き込みするリフレッシュ処理を実行するリフレッシュ手段と、コマンド実行中にリフレッシュ処理を行えるように、外部装置から受信したコマンドの実行回数の規定値を前記トリガー条件として保持し、外部装置からコマンドを受信すると、該コマンドを処理した後、外部装置から受信したコマンドの実行回数をカウントするカウンタをインクリメントし、インクリメントした後の前記カウンタの値が前記規定値になると、前記リフレッシュ手段を呼び出し、前記リフレッシュ手段の処理が終了すると、該コマンドのレスポンスを外部装置へ送信するコマンド管理手段を備えたＩＣカードにおいて、前記ＩＣカードは、データ保持に利用しない空きページが設けられるように論理ページの総数が設定され、論理ページ番号に対応する物理ページ番号を記述したページ管理テーブルと、次にリフレッシュ処理する論理ページの論理ページ番号である次回ページ番号を保持し、前記リフレッシュ手段は、前記コマンド管理手段から呼び出されると、前記ページ管理テーブルを参照し、前記次回ページ番号に対応する物理ページのデータを、所定のアルゴリズムにより決定した前記空ページにページコピーすることで、前記次回ページ番号に対応する物理ページ番号で特定されるページをリフレッシュ処理した後、前記ページ管理テーブルを更新する処理として、前記次回ページ番号で示される論理ページ番号に対応付けられた物理ページ番号を該空ページの物理ページ番号に更新する処理を実行し、更に、前記次回ページ番号を更新する処理として、前記次回ページ番号が最終の論理ページ番号でなければ、前記次回ページ番号を一つインクリメントし、前記次回ページ番号が最終の論理ページ番号であれば、前記次回ページ番号及び前記カウンタを初期化する処理を実行することを特徴とする。
【００１５】
第１の発明によれば、外部装置から受信したコマンドを処理している間は電源断が発生する可能性は低いと想定できるため、コマンド実行中にリフレッシュ処理を行うことで、不足の電源断が発生しにくいタイミングでリフレッシュ処理を行うことができる。また、コマンド実行毎にリフレッシュ処理を行うと、フラッシュメモリのリフレッシュ処理が頻繁に行われ、リフレッシュ処理中にデータが破損する可能性が高くなるため、第１の発明のＩＣカードのように、外部装置から受信したコマンドの実行回数をカウントし、コマンドの実行回数が規定になるとリフレッシュ処理を開始するようにするとよい。また、データ保持に用いられている全ページを一度にリフレッシュ処理を行うと、リフレッシュ処理を行う際、外部装置からコマンドを受信してからレスポンスを返信するまでの時間が長くなり過ぎるため、第１の発明のＩＣカードのように、リフレッシュ処理をページ単位で行うものとし、コマンド実行回数が規定値に達した後は、コマンド実行する毎にページ単位で最終のページまでリフレッシュ処理を行うようにするとよい。また、リフレッシュ処理の対象となるページのデータをＲＡＭに退避させると、不測の電源断がリフレッシュ処理中に発生した場合、リフレッシュ処理の対象となるページのデータが破損する可能性があるため、第１の発明のように、データ保持に利用されていない空きページにリフレッシュ処理の対象となるページのデータをページコピーし、リフレッシュ処理の対象となるページのデータがＲＡＭに退避しないようにするとよい。
【００１６】
更に、第２の発明に記載のＩＣカードは、前記リフレッシュ手段は、前記ページ管理テーブルを更新する処理として、前記次回ページ番号で示される論理ページ番号に対応付けられた物理ページ番号を、リフレッシュ処理される前の旧物理ページ番号として該論理ページ番号に対応付けて前記ページ管理テーブルに記憶する処理を行い、前記次回ページ番号を更新する処理を実行する前に、前回の前記旧物理ページ番号が前記ページ管理テーブルに記憶されていれば、該旧物理ページ番号を前記ページ管理テーブルから削除すると共に、該旧物理ページ番号で特定されるページを初期化することを特徴とする第１の発明に記載のＩＣカードである。
【００１７】
データ保持に利用されていない空きページにリフレッシュ処理の対象となるページのデータをページコピーするようにした場合、第２の発明のように、リフレッシュ処理が完了したページのデータを初期化するようにするとよい。
【００１８】
更に、第３の発明は方法に係る発明で、第３の発明のＩＣカードのリフレッシュ方法では、フラッシュメモリのリフレッシュ処理を行うトリガー条件として、外部装置から受信したコマンドの実行回数の規定値を保持するＩＣカードが、外部装置からコマンドを受信すると、該コマンドを処理した後、外部装置から受信したコマンドの実行回数をカウンタを利用してカウントし、インクリメント後の前記カウンタの値を確認することで、前記トリガー条件が成立しているか確認するステップａ、前記ＩＣカードが、インクリメント後の前記カウンタの値が前記規定値になると、前記ＩＣカードに実装されたフラッシュメモリに保持されているデータをページ単位で取得し、フラッシュメモリにページ単位で該データを再書き込みするリフレッシュ処理を実行するステップｂ、リフレッシュ処理が終了すると、ステップａで受信したコマンドのレスポンスを外部装置へ送信するステップｃが実行されるＩＣカードのリフレッシュ方法において、前記ＩＣカードは、データ保持に利用しない空きページが設けられるように論理ページの総数が設定され、論理ページ番号に対応する物理ページ番号を記述したページ管理テーブルと、次にリフレッシュ処理する論理ページの論理ページ番号である次回ページ番号を保持し、前記ステップｂにおいて、前記ＩＣカードは、インクリメント後の前記カウンタの値が前記規定値になると、前記ページ管理テーブルを参照し、前記次回ページ番号に対応する物理ページのデータをページ単位で取得し、所定のアルゴリズムにより決定した前記空ページに該データをページ単位で再書き込みすることで、前記次回ページ番号に対応する物理ページ番号で特定されるページをリフレッシュ処理した後、前記ページ管理テーブルを更新する処理として、前記次回ページ番号で示される論理ページ番号に対応付けられた物理ページ番号を該空ページの物理ページ番号に更新する処理と、前記次回ページ番号を更新する処理として、前記次回ページ番号が最終の論理ページ番号でなければ、前記次回ページ番号を一つインクリメントし、前記次回ページ番号が最終の論理ページ番号であれば、前記次回ページ番号及び前記カウンタを初期化する処理を実行することを特徴とする。
【００１９】
更に、第４の発明は、前記ステップｂにおいて、前記ＩＣカードは、前記ページ管理テーブルを更新する処理として、前記次回ページ番号で示される論理ページ番号に対応付けられた物理ページ番号を、リフレッシュ処理される前の旧物理ページ番号として該論理ページ番号に対応付けて前記ページ管理テーブルに記憶する処理を行い、前記次回ページ番号を更新する処理を実行する前に、前回の前記旧物理ページ番号が前記ページ管理テーブルに記憶されていれば、該旧物理ページ番号を前記ページ管理テーブルから削除すると共に、該旧物理ページ番号で特定されるページを初期化することを特徴とする第３の発明に記載のＩＣカードのリフレッシュ方法である。
【００２０】
第３の発明から第４の発明によれば、第１の発明から第２の発明と同様の効果が得られる。
【発明の効果】
【００２１】
このように、本発明によれば、データ保持期間の延長を目的として、ＩＣカードに実装されたフラッシュメモリをリフレッシュ処理する際、リフレッシュ処理中に発生した不測の電源断により、フラッシュメモリに保持されているデータが破損することを防止できるＩＣカード及びＩＣカードのリフレッシュ方法を提供できる。
【図面の簡単な説明】
【００２２】
【図１】本実施形態に係るＩＣカードを説明する図。
【図２】ＩＣカードに実装されるコンピュータプログラムを説明する図。
【図３】フラッシュメモリの内容を説明する図。
【図４】コマンド管理モジュールの動作を説明するフロー図。
【図５】リフレッシュモジュールの動作を説明するフロー図。
【図６】コマンド実行の回数が２１回目のケースを説明する図。
【図７】初回のリフレッシュ処理が実行されるケースを説明する図。
【図８】２回目のリフレッシュ処理が実行されるケースを説明する図。
【図９】最終のリフレッシュ処理を行うケースを説明する図。
【発明を実施するための形態】
【００２３】
ここから、本発明の実施形態について、本発明の技術分野に係わる当業者が、発明の内容を理解し、発明を実施できる程度に説明する。なお、これから説明する実施形態は本発明の一実施形態にしか過ぎず、本発明は、これから説明する実施形態に限定されることなく、種々の変形や変更が可能である。
【００２４】
図１は、本実施形態に係るＩＣカード１を説明する図である。本実施形態において、ＩＣカード１は、半導体集積回路（ＩＣチップ２）をもつ記録担体で、図１で図示したＩＣカード１には、ＩＣチップ２がモールドされたＩＣモジュールが実装される。
【００２５】
本実施形態ではＩＣカード１の形態を、ＩＣモジュールの近傍を短冊状に切り取った形状のＳＩＭとして図示しているが、本発明は、ＩＣカード１の形態に係る発明でないため、ＩＣカード１の形態は任意でよく、ＩＣカード１の形態はＩＣカード１の用途に依存する。
【００２６】
例えば、ＩＣカード１の利用用途が金融関係システムの場合、ＩＣカード１はキャッシカード／クレジットカードの形態になり、また、携帯電話／スマートフォンでＩＣカード１を利用する場合、図１に図示した形態と同様のＵＳＩＭ(Universal Subscriber Identity Module)になる。
【００２７】
ＩＣモジュール１ａにモールドされたＩＣチップ２には、ＣＰＵ２ａ(Central Processing Unit)、ＲＡＭ２ｂ（Random Access Memory）、ROM２ｃ（ReadOnly Memory）などに加え、書き換え可能な不揮発性メモリとしてフラッシュメモリ２０が実装され、本実施形態では、フラッシュメモリ２０をリフレッシュ処理するためのコンピュータプログラムがＩＣカード１のＩＣチップ２に記憶されている。
【００２８】
図２は、ＩＣカード１に実装されるコンピュータプログラムを説明する図である。図２に図示したように、ＩＣカード１には、コンピュータプログラムとして、コマンド実行を管理するコマンド管理手段として機能するコンピュータプログラムであるコマンド管理モジュール１０と、外部装置３から受信したコマンドをコマンド処理するためのコンピュータプログラムであるコマンドモジュール１１と、フラッシュメモリ２０をリフレッシュ処理するリフレッシュ手段として機能するコンピュータプログラムであるリフレッシュモジュール１２が少なくとも実装される。
【００２９】
本実施形態において、コマンド管理モジュール１０及びリフレッシュモジュール１２のプログラムコードはＲＯＭ２ｃに実装されるが、コマンド実行とリフレッシュ処理は平行して実施されないため、コマンドモジュール１１のプログラムコードを実装するメモリはＲＯＭ２ｃ又はフラッシュメモリ２０のいずれかでよい。
【００３０】
フラッシュメモリ２０のデータ保持期間を超えてデータを保持できるようするためには、フラッシュメモリ２０をリフレッシュ処理することが必要になるが、ＩＣカード１の場合は不測の電源断が発生する可能性があるため、不足の電源断が生じても、フラッシュメモリ２０のデータが破損しないタイミングでリフレッシュ処理を行う必要がある。
【００３１】
このことに対応すべく本発明では、外部装置３から受信したコマンドを処理している間は電源断が発生する可能性は低いと考え、コマンド管理モジュール１０は、リフレッシュ処理を行うトリガーをコマンド実行とし、コマンド実行の結果を示すレスポンスを外部装置３へ送信する前に、リフレッシュモジュール１２を作動させるトリガー条件が成立していると、リフレッシュモジュール１２を作動させてフラッシュメモリ２０をリフレッシュ処理させる。
【００３２】
なお、コマンド実行毎にリフレッシュ処理を行うと、フラッシュメモリ２０のリフレッシュ処理が頻繁に行われ、リフレッシュ処理中にデータが破損する可能性が高くなるため、本実施形態のコマンド管理モジュール１０は、外部装置３から受信したコマンドの実行回数の規定値をトリガー条件として保持し、コマンド実行回数が所定値に達するとリフレッシュ処理を開始するようにしている。
【００３３】
更に、データ保持に用いられている全ページを一度にリフレッシュ処理を行うと、リフレッシュ処理を行う際、外部装置３からコマンドを受信してからレスポンスを返信するまでの時間が長くなり過ぎるため、本実施形態では、リフレッシュ処理をページ単位で行うものとし、コマンド実行回数が所定値に達した後は、コマンド実行する毎に１ページ単位で最終のページまでリフレッシュ処理を行うようにしている。なお、コマンドの実行回数をカウントするカウンタは、最終のページをリフレッシュ処理すると、リフレッシュモジュール１２によって初期化される。
【００３４】
更に、リフレッシュ処理するページのデータを同一のページに書き込むと、不測の電源断がリフレッシュ処理中に発生した場合、リフレッシュ処理するページのデータが破損する可能性があるため、本実施形態においてリフレッシュモジュール１２は、データ保持に利用されていない空きページにリフレッシュ処理するページのデータを書き込むようにすることで、不測の電源断がリフレッシュ処理中に発生しても、リフレッシュ元のデータが発生しないようにしている。
【００３５】
図３は、フラッシュメモリ２０の内容を説明する図である。本実施形態では、フラッシュメモリ２０は管理領域２０ａとデータ領域２０ｂに分割される。データ領域２０ｂは、アプリケーションなどが利用するデータのデータ保持に利用される領域で、本実施形態では、データ領域２０ｂに含まれる全てのページ２５をデータ保持に利用せず、データ保持に利用されない空きページが設けられる。例えば、図３では、データ領域２０ｂは合計で９ページであるが、データ保持に利用されるページ２５は５ページで、残りの４ページが空きページとなる。
【００３６】
なお、リフレッシュ処理の対象となるのは、フラッシュメモリ２０のデータ領域２０ｂであるが、管理領域２０ａは、コマンド実行やリフレッシュ処理が実行される毎に更新されるため、管理領域２０ａが更新されずに、データ保持期間が短くなることはない。
【００３７】
フレッシュメモリの管理領域２０ａには、論理ページ番号と物理ページ番号の対応関係を示すページ管理テーブル２１と、コマンド実行の回数をカウントするための実行回数カウンタ２２と、外部装置３から受信したコマンドの実行回数の規定値で、リフレッシュモジュール１２を作動させるトリガー条件となるリフレッシュ開始値２３と、次回にリフレッシュを行うページ２５の論理ページ番号を示す次回ページ番号２４が記憶される。なお、論理ページ番号とは、アプリケーションなどのコマンドから参照されるページ番号で、物理ページ番号とは、ＩＣチップ２のハードウェアが物理的にページ２５を識別するためのページ番号である。
【００３８】
実行回数カウンタ２２は、コマンド管理モジュール１０及びリフレッシュモジュール１２によって操作されるカウンタで、コマンド管理モジュール１０は、コマンド実行を行う毎に実行回数カウンタ２２を一つだけインクリメントし、リフレッシュモジュール１２が、データの保存に利用される全てのページ２５（ここでは、５ページ）についてリフレッシュ処理が完了すると、実行回数カウンタ２２は初期化される。
【００３９】
リフレッシュ開始値２３はコマンド管理モジュール１０から参照されるデータで、リフレッシュ開始値２３によって、リフレッシュモジュール１２を作動させる際の実行回数カウンタ２２の値が示され、コマンド管理モジュール１０は、コマンド実行する毎に実行回数カウンタ２２を一つインクリメントした後、実行回数カウンタ２２の値がリフレッシュ開始値２３以上の場合、リフレッシュモジュール１２を作動させてリフレッシュ処理を行う。
【００４０】
リフレッシュモジュール１２によって操作される次回ページ番号２４は、次にリフレッシュ処理するページ２５の論理ページ番号が格納され、リフレッシュモジュール１２は、コマンド管理モジュール１０から呼び出されると１ページ単位でのリフレッシュ処理を行い、リフレッシュ処理が完了すると、次回ページ番号２４を一つだけインクリメントし、データ保持に利用されている全てのページ２５（ここでは、５ページ）に全てについてリフレッシュ処理が完了すると、実行回数カウンタ２２に加え、次回ページ番号２４を初期値（ここでは、「１」）に初期化する。
【００４１】
ページ管理テーブル２１には、データ保持に利用するページ数（ここでは、５ページ）に合わせた論理ページ番号（ここでは、１から５）が記述され、ページ管理テーブル２１によって、それぞれの論理ページ番号に対応する物理ページ番号が示される。また、本実施形態では、リフレッシュ処理したページ２５を空ページにできるように、リフレッシュ処理したページ２５の論理ページ番号に対応して、リフレッシュ処理する前の物理ページ番号である旧物理ページ番号が記述される。
【００４２】
ここから、リフレッシュ処理に係るコンピュータプログラムの動作について説明する。図４は、コマンド管理モジュール１０の動作を説明するフロー図で、図５は、リフレッシュモジュール１２の動作を説明するフロー図である。
【００４３】
まず、図４を参照しながら、コマンド管理モジュール１０の動作について説明する。外部装置３からコマンドを受信すると（Ｓ１）、コマンド管理モジュール１０が動作し、コマンド管理モジュール１０は動作すると、外部装置３から受信したコマンドに対応するコマンドモジュール１１を呼び出して、外部装置３から受信したコマンドに係る処理を実行する（Ｓ２）。
【００４４】
呼び出したコマンドモジュール１１の処理が終了すると、コマンド管理モジュール１０は、この時点で、コマンド実行に対するレスポンスを送信せずに、実行回数カウンタ２２を一つだけインクリメントした後（Ｓ３）、実行回数カウンタ２２の値がリフレッシュ開始値２３以上であるか確認する（Ｓ４）。
【００４５】
コマンド管理モジュール１０は、実行回数カウンタ２２の値がリフレッシュ開始値２３以上の場合、リフレッシュモジュール１２を呼び出してリフレッシュ処理を実行した後（Ｓ５）、リフレッシュ処理が終了すると、外部装置３から受信したコマンドの実行結果を示すレスポンスを外部装置３へ送信して（Ｓ６）、この手順は終了する。
【００４６】
また、コマンド管理モジュール１０は、実行回数カウンタ２２の値がリフレッシュ開始値２３未満の場合、リフレッシュモジュール１２を呼び出すことなく、外部装置３から受信したコマンドの実行結果を示すレスポンスを外部装置３へ送信して（Ｓ６）、この手順は終了する。
【００４７】
次に、図５を参照しながら、リフレッシュモジュール１２の動作について説明する。リフレッシュモジュール１２は、コマンド管理モジュール１０から呼び出されると、次回ページ番号２４を参照し、リフレッシュ処理の対象となるページ２５の論理ページ番号であるリフレッシュ元の論理ページ番号を取得した後（Ｓ１０）、ページ管理テーブル２１を確認し、リフレッシュ元の論理ページ番号に対応する物理ページ番号をリフレッシュ元の物理ページ番号として特定する（Ｓ１１）。
【００４８】
リフレッシュモジュール１２は、リフレッシュ元の物理ページ番号と特定すると、リフレッシュ元の物理ページ番号のページに保持されているデータをページコピーするページの物理ページ番号であるリフレッシュ先の物理ページ番号を決定する処理を実行する（Ｓ１２）。
【００４９】
リフレッシュ先の物理ページ番号を決定する方法は様々考えられるが、ここでは、リフレッシュ元の物理ページ番号から番号の大きい順に空きページの物理ページ番号を検索し、最初に検索した空きページの物理ページ番号をリフレッシュ先の物理ページ番号として決定する。なお、リフレッシュ元の物理ページ番号より番号が大きい空きページがない場合、物理ページ番号の先頭に戻り空ページの物理ページ番号を検索する。なお、ページ管理テーブル２１において、論理ページ番号に対応付けられていない物理ページ番号が空ページの物理ページ番号になる。
【００５０】
リフレッシュモジュール１２は、リフレッシュ先の物理ページ番号を決定すると、リフレッシュ元の物理ページ番号のページ２５で保持されているデータをリフレッシュ先の物理ページ番号のページ２５へページコピーを行うことで、リフレッシュ処理の対象となるページ２５のデータをリフレッシュ処理する（Ｓ１３）。
【００５１】
なお、ページコピーの処理では、ＲＡＭ２ｂにデータが退避されないため、不測の電源断がリフレッシュ処理中に発生しても、リフレッシュ元の物理ページ番号のページに保持されていたデータは破損することはない。
【００５２】
リフレッシュモジュール１２は、リフレッシュ処理の対象となるページ２５のデータをリフレッシュ処理すると、リフレッシュ処理の対象となるページ２５のリフレッシュ処理が正常に完了したことを確定する処理として、ページ管理テーブル２１を更新する処理を行う（Ｓ１４）。なお、ここでは、ページ管理テーブル２１を更新する処理として、リフレッシュモジュールは、リフレッシュ元の論理ページ番号に対応する物理ページ番号をリフレッシュ元の物理ページ番号からリフレッシュ先の物理ページ番号に更新し、更に、旧物理ページ番号をリフレッシュ元の物理ページ番号に更新する。
【００５３】
次に、リフレッシュモジュール１２は、前回のリフレッシュ処理に係るデータがページ管理テーブル２１に残っているかを確認し（Ｓ１５）、前回のリフレッシュ処理に係るデータが残っていれば、前回のリフレッシュ処理に係るデータを削除する処理を実行する（Ｓ１６）。具体的には、ページ管理テーブル２１に、今回書き込んだ以外の旧物理ページ番号が残っているかを確認し、残っている場合には、今回書き込んだ以外の旧物理ページ番号に加え、該旧物理ページ番号のページ２５で保持されているデータを初期化する処理を実行する。
【００５４】
次に、リフレッシュモジュール１２は、今回、リフレッシュ処理した論理ページ番号が最終の論理ページ番号であるかを確認することで、今回、リフレッシュ処理したページが最終のページであるか確認する（Ｓ１７）。
【００５５】
リフレッシュモジュール１２は、最終のページでなければ、次回ページ番号２４を一つだけインクリメントする処理を行い（Ｓ１８）、最終のページであれば、次回ページ番号２４を先頭の論理ページ番号（ここでは、「１」）に更新し（Ｓ１９）、更に、実行回数カウンタ２２を「0」に初期化する（Ｓ２０）。
【００５６】
ここから、図４及び図５で図示したフローについて補足説明を行う。まず、図４において、リフレッシュ処理が実行されないときの処理について説明する。図６は、リフレッシュ処理が実行されないケースを説明する図である。
【００５７】
図６は、コマンド実行の回数が２１回目のケースを説明する図である。２１回目に実行されるコマンドが論理ページ番号（ここでは、「４」）のデータを更新するコマンド処理の場合、図４のＳ２において、ページ管理テーブル２１が参照され、論理ページ番号（ここでは、「４」）に対応する物理ページ番号「５」のページ２５に対して書き込み処理が実行された後、図４のＳ３において、実行回数カウンタ２２が一つだけインクリメントされる。
【００５８】
２１回目のコマンド処理が実行される前は、実行回数カウンタ２２の値は「２０」であるため、図４のＳ３において、実行回数カウンタ２２の値は「２１」にインクリメントされるが、「２１」はリフレッシュ開始値２３「１００」未満であるため、図４のＳ５のリフレッシュ処理は実行されない。
【００５９】
次に、初回のリフレッシュ処理が実行される際の処理について説明する。図７は、初回のリフレッシュ処理が実行されるケースを説明する図である。
【００６０】
図７では、リフレッシュ開始値２３が「１００」であるため、初回のリフレッシュ処理が実行される前は、実行回数カウンタ２２の値は「９９」で、初回のリフレッシュ処理が実行されるケースでは、図４のＳ３において、実行回数カウンタ２２の値は「１００」にインクリメントされ、図５で詳細な手順を説明した図４のＳ５のリフレッシュ処理が実行される。
【００６１】
図５のＳ１０において、リフレッシュ元の論理ページ番号は次回ページ番号２４で示され、ここでは、初回のリフレッシュ処理であるため該論理ページ番号は「１」である。また、リフレッシュ元の論理ページ番号に対応する物理ページ番号は、図７のページ管理テーブル２１によれば、リフレッシュ元の物理ページ番号は「１」である。
【００６２】
図５のＳ１２において、リフレッシュ元の物理ページ番号（ここでは、「１」）から番号の大きい順に空きページの物理ページ番号が検索され、最初に検索される空ページの物理ページ番号は「６」になるため、リフレッシュ先の物理ページ番号は「６」として決定され、図５のＳ１３において、リフレッシュ元の物理ページ番号「１」のページ２５に保持されているデータがリフレッシュ先の物理ページ番号（ここでは、「６」）のページ２５にページコピーされることで、リフレッシュ元の論理ページ番号（ここでは、「１」）のページ２５に保持されていたデータがリフレッシュ処理される。
【００６３】
また、リフレッシュ処理の対象となる論理ページ番号（ここでは、「１」）に対応する物理ページ番号は「６」になるため、図５のＳ１４において、リフレッシュ処理の対象となる論理ページ番号（ここでは、「１」）に対応する物理ページ番号は「１」から「６」に更新され、リフレッシュ処理の対象となる論理ページ番号（ここでは、「１」）に対応付けられた旧物理ページ番号に「１」が記述される。
【００６４】
また、ここでは、初回のリフレッシュ処理であるため、図５のＳ１５において、前回のリフレッシュ処理に係るデータはなく、かつ、今回、リフレッシュ処理した論理ページ番号（ここでは、「１」）は最終の論理ページ番号（ここでは、「５」）ではないため、図５のＳ１８において、次回ページ番号２４を「１」から「２」へ更新する処理が実行される。
【００６５】
次に、２回目のリフレッシュ処理を行う際の処理について説明する。図８は、２回目のリフレッシュ処理が実行されるケースを説明する図である。
【００６６】
図８では、２回目のリフレッシュ処理を行う際の処理が実行される前、実行回数カウンタ２２の値は「１００」であるため、図４のＳ２においてコマンドが実行された後、図４のＳ３において、実行回数カウンタ２２は「１００」から「１０１」にインクリメントされる。
【００６７】
実行回数カウンタ２２の値「１０１」はリフレッシュ開始値２３「１００」以上であるため、図４のＳ５のリフレッシュ処理が実行される。図５のＳ１０において、リフレッシュ元の論理ページ番号は次回ページ番号２４で示され、ここでは、２回目のリフレッシュ処理であるためリフレッシュ元の論理ページ番号は「２」である。また、図５のＳ１１において、リフレッシュ元の論理ページ番号に対応する物理ページ番号で、リフレッシュ元の物理ページ番号は、図８のページ管理テーブル２１によれば「３」になる。
【００６８】
図５のＳ１２において、リフレッシュ元の物理ページ番号（ここでは、「３」）から順に空きページの物理ページ番号を検索し、最初に検索される空ページの物理ページ番号は「７」になるため、リフレッシュ先の物理ページ番号は「７」として決定される。
【００６９】
また、図５のＳ１３において、リフレッシュ元の物理ページ番号（ここでは、「３」）のページ２５に保持されているデータがリフレッシュ先の物理ページ番号（ここでは、「７」）のページ２５にページコピーされることで、リフレッシュ元の論理ページ番号のページ２５に保持されていたデータがリフレッシュ処理される。
【００７０】
また、リフレッシュ処理の対象となる論理ページ番号（ここでは、「２」）に対応する物理ページ番号は「７」に変更されるため、図５のＳ１４において、リフレッシュ処理の対象となる論理ページ番号（ここでは、「２」）に対応する物理ページ番号は「３」から「７」に更新され、リフレッシュ処理の対象となる論理ページ番号（ここでは、「２」）に対応付けられた旧物理ページ番号に「３」が記述される。
【００７１】
また、ここでは、２回目のリフレッシュ処理であるため、図５のＳ１５において、初回のリフレッシュ処理に係るデータが存在し、ここでは、図５のＳ１６において、論理ページ番号「１」に対応付けられている旧物理ページ番号「１」と、旧物理ページ番号「１」のページ２５に保持されているデータが初期化される。更に、今回、リフレッシュ処理した論理ページ番号は最終の論理ページ番号（ここでは、「５」）ではないため、図５のＳ１７において、次回ページ番号２４を「２」から「３」へ更新する処理が実行される。
【００７２】
次に、最終のリフレッシュ処理を行う際の処理について説明する。図９は、最終のリフレッシュ処理を行うケースを説明する図である。
【００７３】
図９では、最終（ここでは、５回目）のリフレッシュ処理が実行される前、実行回数カウンタ２２の値は「１０３」で、最終のリフレッシュ処理が実行される際、図４のＳ３において、実行回数カウンタ２２は「１０３」から「１０４」にインクリメントされる。
【００７４】
実行回数カウンタ２２の値「１０４」はリフレッシュ開始値２３「１００」以上であるため、図４のＳ５において、最終（ここでは、５回目）のリフレッシュ処理が実行される。図５のＳ１０において、リフレッシュ処理元の論理ページ番号は次回ページ番号２４で示され、ここでは、５回目のリフレッシュ処理であるためリフレッシュ処理元の論理ページ番号は「５」である。また、図５のＳ１１において、リフレッシュ処理元の論理ページ番号に対応する物理ページ番号で、リフレッシュ元の物理ページ番号は、図９のページ管理テーブル２１によれば「４」になる。
【００７５】
図５のＳ１２において、リフレッシュ元の物理ページ番号（ここでは、「４」）から番号の大きい順に空きページの物理ページ番号を検索しても、空きページの物理ページ番号は検索されないため、物理ページ番号の先頭に戻り空ページの物理ページ番号が検索され、最初に検索される空ページの物理ページ番号は「１」になるため、リフレッシュ先の物理ページ番号は「１」として決定される。
【００７６】
そして、図５のＳ１３において、リフレッシュ元の物理ページ番号「４」のページ２５に保持されているデータがリフレッシュ先の物理ページ番号「１」のページ２５へページコピーされることで、リフレッシュ対象となる論理ページ番号（ここでは、「５」）のページ２５に保持されているデータがリフレッシュ処理される。
【００７７】
また、リフレッシュ処理の対象となる論理ページ番号（ここでは、「５」）に対応する物理ページ番号は「１」に変更されるため、図５のＳ１４において、リフレッシュ処理の対象となる論理ページ番号（ここでは、「５」）に対応する物理ページ番号は「４」から「１」に更新され、リフレッシュ処理の対象となる論理ページ番号（ここでは、「５」）に対応付けられた旧物理ページ番号に「４」が記述される。
【００７８】
また、最終のリフレッシュ処理であるため、図５のＳ１５において、４回目のリフレッシュ処理に係るデータは存在し、図５のＳ１５において、論理ページ番号「４」に対応付けられている旧物理ページ番号「５」と、旧物理ページ番号「５」のページ２５に保持されているデータが初期化される。
【００７９】
また、図５のＳ１７において、最終のリフレッシュ処理すなわち、今回、リフレッシュ処理した論理ページ番号は最終のページ番号であるため、図５のＳ１９において、次回ページ番号２４は先頭の論理ページ番号「１」に更新され、更に、図５のＳ２０において、実行回数カウンタ２２の値は「０」に初期化される。
【符号の説明】
【００８０】
１    ＩＣカード
１０  コマンド管理モジュール
１１  コマンドモジュール
１２  リフレッシュモジュール
２０  フラッシュメモリ
２１  ページ管理テーブル
２２  実行回数カウンタ
２３  リフレッシュ開始値
２４  次ページ番号
２５  データ領域のページ
【図１】
0005708228.tif 000002
【図２】
0005708228.tif 000003
【図３】
0005708228.tif 000004
【図４】
0005708228.tif 000005
【図５】
0005708228.tif 000006
【図６】
0005708228.tif 000007
【図７】
0005708228.tif 000008
【図８】
0005708228.tif 000009
【図９】
0005708228.tif 000010