JP5708228B2 - Icカード及びicカードのリフレッシュ方法 - Google Patents

Icカード及びicカードのリフレッシュ方法 Download PDF

Info

Publication number
JP5708228B2
JP5708228B2 JP2011110067A JP2011110067A JP5708228B2 JP 5708228 B2 JP5708228 B2 JP 5708228B2 JP 2011110067 A JP2011110067 A JP 2011110067A JP 2011110067 A JP2011110067 A JP 2011110067A JP 5708228 B2 JP5708228 B2 JP 5708228B2
Authority
JP
Japan
Prior art keywords
page number
page
refresh
card
command
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011110067A
Other languages
English (en)
Other versions
JP2012242925A (ja
Inventor
正徳 浅野
正徳 浅野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2011110067A priority Critical patent/JP5708228B2/ja
Publication of JP2012242925A publication Critical patent/JP2012242925A/ja
Application granted granted Critical
Publication of JP5708228B2 publication Critical patent/JP5708228B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、半導体集積回路(ICチップ)をもつ記録担体であるICカードに実装されたフラッシュメモリをリフレッシュ処理するための技術に係わる。
半導体集積回路(ICチップ)をもつ記録担体であるICカードには、書き換え可能な不揮発性メモリが搭載され、電源未投入の状態でもデータを保持することが可能で、ICカードに搭載された書き換え可能な不揮発性メモリには暗号鍵などのデータが記憶される。
従来、ICカードに実装されるICチップの書き換え可能な不揮発性メモリとしては、EEPROM (Electrically Erasable Programmable Read-Only Memory)が広く用いられてきたが、大容量化や高集積化を狙いとして、書き換え可能な不揮発性メモリとしてフラッシュメモリ(Flash Memory)が採用されたICチップが近年増加している。
EEPROMとフラッシュメモリでは同じメモリであってものその特性は異なり、フラッシュメモリを実装したICチップを利用する際は、フラッシュメモリの特性に応じたプログラミングが必要になる。例えば、EEPROMとフラッシュメモリではデータの書き込み単位が異なり、EEPROMではデータを1バイト単位でアクセスが可能だが、フラッシュメモリではページ単位(現時点では、1ページは128〜256Bytes程度)でのみアクセスが可能なため、ページ単位でアクセスするためのプログラミングが必要になる。
一方で、ICカードの一つの形態であるSIM (Subscriber Identification Module)の利用分野の一つとして、M2M(Machine to Machine)が近年注目されている。M2Mとは、機器間で相互に通信を行うことにより、各機器の制御を行うための技術で、このM2Mに対し、SIMを用いた携帯電話網による通信形態を適用することにより、新たなサービスやインフラの構築が可能となる。
M2MにSIMを適用する際、SIMは装置に実装されて利用されるため、フラッシュメモリのデータ保持期間(一般的には10年)を超えてデータを保持できることが要求される。データ保持期間はフラッシュメモリへの最後の書き込み時点からの経過時間が基準となることから、データ保持期間を延長する手法として、データをフラッシュメモリへ書き込んだ後、然るべきタイミングでデータを再書き込みするリフレッシュ処理を用いることができるが、SIMに対してリフレッシュ処理を行う場合、リフレッシュ処理を行うタイミングが問題となる。
コンデンサに電荷を蓄えることでデータを保持するメモリであるDRAMであれば、DRAMには常時通電されているため、リフレッシュ処理のタイミングを一定時間の経過とすればよいが、M2MでSIMを利用する場合、不測の電源断が発生する可能性があるため、不測の電源断を考慮してフラッシュメモリをリフレッシュ処理するタイミングを決定する必要がある。
フラッシュメモリをリフレッシュ処理する発明として、例えば、特許文献1において、コマンドメッセージが送信されない時間を利用し、メモリを自律的にリフレッシュ処理する機能を備えたストレージデバイスが開示されている。
しかしながら、特許文献1で開示されている発明をM2Mで利用されるSIMに適用する場合、特許文献1で開示されている発明では自律的にリフレッシュ処理が行われるため、リフレッシュ処理中に不測の電源断が発生した場合、フラッシュメモリに記憶されていた内容が破壊される可能性がある。
また、特許文献2では、ページ単位のデータをフラッシュメモリからRAMに退避させ、RAMに退避させたフラッシュメモリのデータを消去し、再度、RAMからフラッシュメモリに退避させたデータを再書き込みして、ページ単位でリフレッシュすることで、フレッシュメモリに記憶されたデータの劣化を防止する発明が開示されている。
しかしながら、特許文献2で開示されている発明をM2Mで利用されるSIMに適用する場合、特許文献2で開示されている発明では、不測の電源断が発生した場合、RAMの退避されたデータは、RAM及びフラッシュメモリにも残らないため、フラッシュメモリに記憶されていた内容が破壊される可能性がある。
特開2009−99185号公報 特許第3641066号公報
そこで、本発明は、データ保持期間の延長を目的として、ICカードに実装されたフラッシュメモリをリフレッシュ処理する際、リフレッシュ処理中に発生した不測の電源断により、フラッシュメモリに保持されているデータが破損することを防止できるICカード及びICカードのリフレッシュ方法を提供することを目的とする。
上述した課題を解決する第1の発明のICカードは、ICカードに実装されたフラッシュメモリをリフレッシュ処理できるように、フラッシュメモリに保持されているデータを再書き込みするリフレッシュ処理を実行するリフレッシュ手段と、コマンド実行中にリフレッシュ処理を行えるように、外部装置から受信したコマンドの実行回数の規定値を前記トリガー条件として保持し、外部装置からコマンドを受信すると、該コマンドを処理した後、外部装置から受信したコマンドの実行回数をカウントするカウンタをインクリメントし、インクリメントした後の前記カウンタの値が前記規定値になると、前記リフレッシュ手段を呼び出し、前記リフレッシュ手段の処理が終了すると、該コマンドのレスポンスを外部装置へ送信するコマンド管理手段を備えたICカードにおいて、前記ICカードは、データ保持に利用しない空きページが設けられるように論理ページの総数が設定され、論理ページ番号に対応する物理ページ番号を記述したページ管理テーブルと、次にリフレッシュ処理する論理ページの論理ページ番号である次回ページ番号を保持し、前記リフレッシュ手段は、前記コマンド管理手段から呼び出されると、前記ページ管理テーブルを参照し、前記次回ページ番号に対応する物理ページのデータを、所定のアルゴリズムにより決定した前記空ページにページコピーすることで、前記次回ページ番号に対応する物理ページ番号で特定されるページをリフレッシュ処理した後、前記ページ管理テーブルを更新する処理として、前記次回ページ番号で示される論理ページ番号に対応付けられた物理ページ番号を該空ページの物理ページ番号に更新する処理を実行し、更に、前記次回ページ番号を更新する処理として、前記次回ページ番号が最終の論理ページ番号でなければ、前記次回ページ番号を一つインクリメントし、前記次回ページ番号が最終の論理ページ番号であれば、前記次回ページ番号及び前記カウンタを初期化する処理を実行することを特徴とする。
第1の発明によれば、外部装置から受信したコマンドを処理している間は電源断が発生する可能性は低いと想定できるため、コマンド実行中にリフレッシュ処理を行うことで、不足の電源断が発生しにくいタイミングでリフレッシュ処理を行うことができる。また、コマンド実行毎にリフレッシュ処理を行うと、フラッシュメモリのリフレッシュ処理が頻繁に行われ、リフレッシュ処理中にデータが破損する可能性が高くなるため、第1の発明のICカードのように、外部装置から受信したコマンドの実行回数をカウントし、コマンドの実行回数が規定になるとリフレッシュ処理を開始するようにするとよい。また、データ保持に用いられている全ページを一度にリフレッシュ処理を行うと、リフレッシュ処理を行う際、外部装置からコマンドを受信してからレスポンスを返信するまでの時間が長くなり過ぎるため、第1の発明のICカードのように、リフレッシュ処理をページ単位で行うものとし、コマンド実行回数が規定値に達した後は、コマンド実行する毎にページ単位で最終のページまでリフレッシュ処理を行うようにするとよい。また、リフレッシュ処理の対象となるページのデータをRAMに退避させると、不測の電源断がリフレッシュ処理中に発生した場合、リフレッシュ処理の対象となるページのデータが破損する可能性があるため、第1の発明のように、データ保持に利用されていない空きページにリフレッシュ処理の対象となるページのデータをページコピーし、リフレッシュ処理の対象となるページのデータがRAMに退避しないようにするとよい。
更に、第の発明に記載のICカードは、前記リフレッシュ手段は、前記ページ管理テーブルを更新する処理として、前記次回ページ番号で示される論理ページ番号に対応付けられた物理ページ番号を、リフレッシュ処理される前の旧物理ページ番号として該論理ページ番号に対応付けて前記ページ管理テーブルに記憶する処理を行い、前記次回ページ番号を更新する処理を実行する前に、前回の前記旧物理ページ番号が前記ページ管理テーブルに記憶されていれば、該旧物理ページ番号を前記ページ管理テーブルから削除すると共に、該旧物理ページ番号で特定されるページを初期化することを特徴とする第の発明に記載のICカードである。
データ保持に利用されていない空きページにリフレッシュ処理の対象となるページのデータをページコピーするようにした場合、第の発明のように、リフレッシュ処理が完了したページのデータを初期化するようにするとよい。
更に、第3の発明は方法に係る発明で、第3の発明のICカードのリフレッシュ方法では、フラッシュメモリのリフレッシュ処理を行うトリガー条件として、外部装置から受信したコマンドの実行回数の規定値を保持するICカードが、外部装置からコマンドを受信すると、該コマンドを処理した後、外部装置から受信したコマンドの実行回数をカウンタを利用してカウントし、インクリメント後の前記カウンタの値を確認することで、前記トリガー条件が成立しているか確認するステップa、前記ICカードが、インクリメント後の前記カウンタの値が前記規定値になると、前記ICカードに実装されたフラッシュメモリに保持されているデータをページ単位で取得し、フラッシュメモリにページ単位で該データを再書き込みするリフレッシュ処理を実行するステップb、リフレッシュ処理が終了すると、ステップaで受信したコマンドのレスポンスを外部装置へ送信するステップcが実行されるICカードのリフレッシュ方法において、前記ICカードは、データ保持に利用しない空きページが設けられるように論理ページの総数が設定され、論理ページ番号に対応する物理ページ番号を記述したページ管理テーブルと、次にリフレッシュ処理する論理ページの論理ページ番号である次回ページ番号を保持し、前記ステップbにおいて、前記ICカードは、インクリメント後の前記カウンタの値が前記規定値になると、前記ページ管理テーブルを参照し、前記次回ページ番号に対応する物理ページのデータをページ単位で取得し、所定のアルゴリズムにより決定した前記空ページに該データをページ単位で再書き込みすることで、前記次回ページ番号に対応する物理ページ番号で特定されるページをリフレッシュ処理した後、前記ページ管理テーブルを更新する処理として、前記次回ページ番号で示される論理ページ番号に対応付けられた物理ページ番号を該空ページの物理ページ番号に更新する処理と、前記次回ページ番号を更新する処理として、前記次回ページ番号が最終の論理ページ番号でなければ、前記次回ページ番号を一つインクリメントし、前記次回ページ番号が最終の論理ページ番号であれば、前記次回ページ番号及び前記カウンタを初期化する処理を実行することを特徴とする。
更に、第の発明は、前記ステップbにおいて、前記ICカードは、前記ページ管理テーブルを更新する処理として、前記次回ページ番号で示される論理ページ番号に対応付けられた物理ページ番号を、リフレッシュ処理される前の旧物理ページ番号として該論理ページ番号に対応付けて前記ページ管理テーブルに記憶する処理を行い、前記次回ページ番号を更新する処理を実行する前に、前回の前記旧物理ページ番号が前記ページ管理テーブルに記憶されていれば、該旧物理ページ番号を前記ページ管理テーブルから削除すると共に、該旧物理ページ番号で特定されるページを初期化することを特徴とする第の発明に記載のICカードのリフレッシュ方法である。
の発明から第の発明によれば、第1の発明から第の発明と同様の効果が得られる。
このように、本発明によれば、データ保持期間の延長を目的として、ICカードに実装されたフラッシュメモリをリフレッシュ処理する際、リフレッシュ処理中に発生した不測の電源断により、フラッシュメモリに保持されているデータが破損することを防止できるICカード及びICカードのリフレッシュ方法を提供できる。
本実施形態に係るICカードを説明する図。 ICカードに実装されるコンピュータプログラムを説明する図。 フラッシュメモリの内容を説明する図。 コマンド管理モジュールの動作を説明するフロー図。 リフレッシュモジュールの動作を説明するフロー図。 コマンド実行の回数が21回目のケースを説明する図。 初回のリフレッシュ処理が実行されるケースを説明する図。 2回目のリフレッシュ処理が実行されるケースを説明する図。 最終のリフレッシュ処理を行うケースを説明する図。
ここから本発明の実施形態について本発明の技術分野に係わる当業者が発明の内容を理解し発明を実施できる程度に説明する。なお、これから説明する実施形態は本発明の一実施形態にしか過ぎず、本発明はこれから説明する実施形態に限定されることなく、種々の変形や変更が可能である。
図1は、本実施形態に係るICカード1を説明する図である。本実施形態において、ICカード1は、半導体集積回路(ICチップ2)をもつ記録担体で、図1で図示したICカード1には、ICチップ2がモールドされたICモジュールが実装される。
本実施形態ではICカード1の形態を、ICモジュールの近傍を短冊状に切り取った形状のSIMとして図示しているが、本発明は、ICカード1の形態に係る発明でないため、ICカード1の形態は任意でよく、ICカード1の形態はICカード1の用途に依存する。
例えばICカード1の利用用途が金融関係システムの場合、ICカード1はキャッシカード/クレジットカードの形態になり、また、携帯電話/スマートフォンでICカード1を利用する場合、図1に図示した形態と同様のUSIM(Universal Subscriber Identity Module)になる。
ICモジュール1aにモールドされたICチップ2には、CPU2a(Central Processing Unit)、RAM2b(Random Access Memory)、ROM2c(ReadOnly Memory)などに加え、書き換え可能な不揮発性メモリとしてフラッシュメモリ20が実装され、本実施形態では、フラッシュメモリ20をリフレッシュ処理するためのコンピュータプログラムがICカード1のICチップ2に記憶されている。
図2は、ICカード1に実装されるコンピュータプログラムを説明する図である。図2に図示したように、ICカード1には、コンピュータプログラムとして、コマンド実行を管理するコマンド管理手段として機能するコンピュータプログラムであるコマンド管理モジュール10と、外部装置3から受信したコマンドをコマンド処理するためのコンピュータプログラムであるコマンドモジュール11と、フラッシュメモリ20をリフレッシュ処理するリフレッシュ手段として機能するコンピュータプログラムであるリフレッシュモジュール12が少なくとも実装される。
本実施形態において、コマンド管理モジュール10及びリフレッシュモジュール12のプログラムコードはROM2cに実装されるが、コマンド実行とリフレッシュ処理は平行して実施されないため、コマンドモジュール11のプログラムコードを実装するメモリはROM2c又はフラッシュメモリ20のいずれかでよい。
フラッシュメモリ20のデータ保持期間を超えてデータを保持できるようするためには、フラッシュメモリ20をリフレッシュ処理することが必要になるが、ICカード1の場合は不測の電源断が発生する可能性があるため、不足の電源断が生じても、フラッシュメモリ20のデータが破損しないタイミングでリフレッシュ処理を行う必要がある。
このことに対応すべく本発明では、外部装置3から受信したコマンドを処理している間は電源断が発生する可能性は低いと考え、コマンド管理モジュール10は、リフレッシュ処理を行うトリガーをコマンド実行とし、コマンド実行の結果を示すレスポンスを外部装置3へ送信する前に、リフレッシュモジュール12を作動させるトリガー条件が成立していると、リフレッシュモジュール12を作動させてフラッシュメモリ20をリフレッシュ処理させる。
なお、コマンド実行毎にリフレッシュ処理を行うと、フラッシュメモリ20のリフレッシュ処理が頻繁に行われ、リフレッシュ処理中にデータが破損する可能性が高くなるため、本実施形態のコマンド管理モジュール10は、外部装置3から受信したコマンドの実行回数の規定値をトリガー条件として保持しコマンド実行回数が所定値に達するとリフレッシュ処理を開始するようにしている。
更に、データ保持に用いられている全ページを一度にリフレッシュ処理を行うと、リフレッシュ処理を行う際、外部装置3からコマンドを受信してからレスポンスを返信するまでの時間が長くなり過ぎるため、本実施形態では、リフレッシュ処理をページ単位で行うものとし、コマンド実行回数が所定値に達した後は、コマンド実行する毎に1ページ単位で最終のページまでリフレッシュ処理を行うようにしている。なお、コマンドの実行回数をカウントするカウンタは、最終のページをリフレッシュ処理すると、リフレッシュモジュール12によって初期化される。
更に、リフレッシュ処理するページのデータを同一のページに書き込むと、不測の電源断がリフレッシュ処理中に発生した場合、リフレッシュ処理するページのデータが破損する可能性があるため、本実施形態においてリフレッシュモジュール12は、データ保持に利用されていない空きページにリフレッシュ処理するページのデータを書き込むようにすることで、不測の電源断がリフレッシュ処理中に発生しても、リフレッシュ元のデータが発生しないようにしている。
図3は、フラッシュメモリ20の内容を説明する図である。本実施形態では、フラッシュメモリ20は管理領域20aとデータ領域20bに分割される。データ領域20bは、アプリケーションなどが利用するデータのデータ保持に利用される領域で、本実施形態では、データ領域20bに含まれる全てのページ25をデータ保持に利用ず、データ保持に利用されない空きページが設けられる。例えば、図3では、データ領域20bは合計で9ページであるが、データ保持に利用されるページ25は5ページで、残りの4ページが空きページとなる。
なお、リフレッシュ処理の対象となるのは、フラッシュメモリ20のデータ領域20bであるが、管理領域20aは、コマンド実行やリフレッシュ処理が実行される毎に更新されるため、管理領域20aが更新されずに、データ保持期間が短くなることはない。
フレッシュメモリの管理領域20aには、論理ページ番号と物理ページ番号の対応関係を示すページ管理テーブル21と、コマンド実行の回数をカウントするための実行回数カウンタ22と、外部装置3から受信したコマンドの実行回数の規定値で、リフレッシュモジュール12を作動させるトリガー条件となるリフレッシュ開始値23と、次回にリフレッシュを行うページ25の論理ページ番号を示す次回ページ番号24が記憶される。なお、論理ページ番号とは、アプリケーションなどのコマンドから参照されるページ番号で、物理ページ番号とは、ICチップ2のハードウェアが物理的にページ25を識別するためのページ番号である。
実行回数カウンタ22は、コマンド管理モジュール10及びリフレッシュモジュール12によって操作されるカウンタで、コマンド管理モジュール10は、コマンド実行を行う毎に実行回数カウンタ22を一つだけインクリメントし、リフレッシュモジュール12が、データの保存に利用される全てのページ25(ここでは、5ページ)についてリフレッシュ処理が完了すると、実行回数カウンタ22は初期化される。
リフレッシュ開始値23はコマンド管理モジュール10から参照されるデータで、リフレッシュ開始値23によって、リフレッシュモジュール12を作動させる際の実行回数カウンタ22の値が示され、コマンド管理モジュール10は、コマンド実行する毎に実行回数カウンタ22を一つインクリメントした後、実行回数カウンタ22の値がリフレッシュ開始値23以上の場合、リフレッシュモジュール12を作動させてリフレッシュ処理を行う。
リフレッシュモジュール12によって操作される次回ページ番号24は、次にリフレッシュ処理するページ25の論理ページ番号が格納され、リフレッシュモジュール12は、コマンド管理モジュール10から呼び出されると1ページ単位でのリフレッシュ処理を行い、リフレッシュ処理が完了すると、次回ページ番号24を一つだけインクリメントし、データ保持に利用されている全てのページ25(ここでは、5ページ)に全てについてリフレッシュ処理が完了すると、実行回数カウンタ22に加え、次回ページ番号24を初期値(ここでは、「1」)に初期化する。
ページ管理テーブル21には、データ保持に利用するページ数(ここでは、5ページ)に合わせた論理ページ番号(ここでは、1から5)が記述され、ページ管理テーブル21によって、それぞれの論理ページ番号に対応する物理ページ番号が示される。また、本実施形態では、リフレッシュ処理したページ25を空ページにできるように、リフレッシュ処理したページ25の論理ページ番号に対応して、リフレッシュ処理する前の物理ページ番号である旧物理ページ番号が記述される。
ここから、リフレッシュ処理に係るコンピュータプログラムの動作について説明する。図4は、コマンド管理モジュール10の動作を説明するフロー図で、図5は、リフレッシュモジュール12の動作を説明するフロー図である。
まず、図4を参照しながら、コマンド管理モジュール10の動作について説明する。外部装置3からコマンドを受信すると(S1)、コマンド管理モジュール10が動作し、コマンド管理モジュール10は動作すると、外部装置3から受信したコマンドに対応するコマンドモジュール11を呼び出して、外部装置3から受信したコマンドに係る処理を実行する(S2)。
呼び出したコマンドモジュール11の処理が終了すると、コマンド管理モジュール10は、この時点で、コマンド実行に対するレスポンスを送信せずに、実行回数カウンタ22を一つだけインクリメントした後(S3)、実行回数カウンタ22の値がリフレッシュ開始値23以上であるか確認する(S4)。
コマンド管理モジュール10は、実行回数カウンタ22の値がリフレッシュ開始値23以上の場合、リフレッシュモジュール12を呼び出してリフレッシュ処理を実行した後(S5)、リフレッシュ処理が終了すると、外部装置3から受信したコマンドの実行結果を示すレスポンスを外部装置3へ送信して(S6)、この手順は終了する。
また、コマンド管理モジュール10は、実行回数カウンタ22の値がリフレッシュ開始値23未満の場合、リフレッシュモジュール12を呼び出すことなく、外部装置3から受信したコマンドの実行結果を示すレスポンスを外部装置3へ送信して(S6)、この手順は終了する。
次に、図5を参照しながら、リフレッシュモジュール12の動作について説明する。リフレッシュモジュール12は、コマンド管理モジュール10から呼び出されると、次回ページ番号24を参照し、リフレッシュ処理の対象となるページ25の論理ページ番号であるリフレッシュ元の論理ページ番号を取得した後(S10)、ページ管理テーブル21を確認し、リフレッシュ元の論理ページ番号に対応する物理ページ番号をリフレッシュ元の物理ページ番号として特定する(S11)。
リフレッシュモジュール12は、リフレッシュ元の物理ページ番号と特定すると、リフレッシュ元の物理ページ番号のページに保持されているデータをページコピーするページの物理ページ番号であるリフレッシュ先の物理ページ番号を決定する処理を実行する(S12)。
リフレッシュ先の物理ページ番号を決定する方法は様々考えられるが、ここでは、リフレッシュ元の物理ページ番号から番号の大きい順に空きページの物理ページ番号を検索し、最初に検索した空きページの物理ページ番号をリフレッシュ先の物理ページ番号として決定する。なお、リフレッシュ元の物理ページ番号より番号が大きい空きページがない場合、物理ページ番号の先頭に戻り空ページの物理ページ番号を検索する。なお、ページ管理テーブル21において、論理ページ番号に対応付けられていない物理ページ番号が空ページの物理ページ番号になる。
リフレッシュモジュール12は、リフレッシュ先の物理ページ番号を決定すると、リフレッシュ元の物理ページ番号のページ25で保持されているデータをリフレッシュ先の物理ページ番号のページ25へページコピーを行うことで、リフレッシュ処理の対象となるページ25のデータをリフレッシュ処理する(S13)。
なお、ページコピーの処理では、RAM2bにデータが退避されないため、不測の電源断がリフレッシュ処理中に発生しても、リフレッシュ元の物理ページ番号のページに保持されていたデータは破損することはない。
リフレッシュモジュール12は、リフレッシュ処理の対象となるページ25のデータをリフレッシュ処理すると、リフレッシュ処理の対象となるページ25のリフレッシュ処理が正常に完了したことを確定する処理として、ページ管理テーブル21を更新する処理を行う(S14)。なお、ここでは、ページ管理テーブル21を更新する処理として、リフレッシュモジュールは、リフレッシュ元の論理ページ番号に対応する物理ページ番号をリフレッシュ元の物理ページ番号からリフレッシュ先の物理ページ番号に更新し、更に、旧物理ページ番号をリフレッシュ元の物理ページ番号に更新する。
次に、リフレッシュモジュール12は、前回のリフレッシュ処理に係るデータがページ管理テーブル21に残っているかを確認し(S15)、前回のリフレッシュ処理に係るデータが残っていれば、前回のリフレッシュ処理に係るデータを削除する処理を実行する(S16)。具体的には、ページ管理テーブル21に、今回書き込んだ以外の旧物理ページ番号が残っているかを確認し、残っている場合には、今回書き込んだ以外の旧物理ページ番号に加え、該旧物理ページ番号のページ25で保持されているデータを初期化する処理を実行する。
次に、リフレッシュモジュール12は、今回、リフレッシュ処理した論理ページ番号が最終の論理ページ番号であるかを確認することで、今回、リフレッシュ処理したページが最終のページであるか確認する(S17)。
リフレッシュモジュール12は、最終のページでなければ、次回ページ番号24を一つだけインクリメントする処理を行い(S18)、最終のページであれば、次回ページ番号24を先頭の論理ページ番号(ここでは、「1」)に更新し(S19)、更に、実行回数カウンタ22を「0」に初期化する(S20)。
ここから、図4及び図5で図示したフローについて補足説明を行う。まず、図4において、リフレッシュ処理が実行されないときの処理について説明する。図6は、リフレッシュ処理が実行されないケースを説明する図である。
図6は、コマンド実行の回数が21回目のケースを説明する図である。21回目に実行されるコマンドが論理ページ番号(ここでは、「4」)のデータを更新するコマンド処理の場合、図4のS2において、ページ管理テーブル21が参照され、論理ページ番号(ここでは、「4」)に対応する物理ページ番号「5」のページ25に対して書き込み処理が実行された後、図4のS3において、実行回数カウンタ22が一つだけインクリメントされる。
21回目のコマンド処理が実行される前は、実行回数カウンタ22の値は「20」であるため、図4のS3において、実行回数カウンタ22の値は「21」にインクリメントされるが、「21」はリフレッシュ開始値23「100」未満であるため、図4のS5のリフレッシュ処理は実行されない。
次に、初回のリフレッシュ処理が実行される際の処理について説明する。図7は、初回のリフレッシュ処理が実行されるケースを説明する図である。
図7では、リフレッシュ開始値23が「100」であるため、初回のリフレッシュ処理が実行される前は、実行回数カウンタ22の値は「99」で、初回のリフレッシュ処理が実行されるケースでは、図4のS3において、実行回数カウンタ22の値は「100」にインクリメントされ、図5で詳細な手順を説明した図4のS5のリフレッシュ処理が実行される。
図5のS10において、リフレッシュ元の論理ページ番号は次回ページ番号24で示され、ここでは、初回のリフレッシュ処理であるため該論理ページ番号は「1」である。また、リフレッシュ元の論理ページ番号に対応する物理ページ番号は、図7のページ管理テーブル21によれば、リフレッシュ元の物理ページ番号は「1」である。
図5のS12において、リフレッシュ元の物理ページ番号(ここでは、「1」)から番号の大きい順に空きページの物理ページ番号が検索され、最初に検索される空ページの物理ページ番号は「6」になるため、リフレッシュ先の物理ページ番号は「6」として決定され、図5のS13において、リフレッシュ元の物理ページ番号「1」のページ25に保持されているデータがリフレッシュ先の物理ページ番号(ここでは、「6」)のページ25にページコピーされることで、リフレッシュ元の論理ページ番号(ここでは、「1」)のページ25に保持されていたデータがリフレッシュ処理される。
また、リフレッシュ処理の対象となる論理ページ番号(ここでは、「1」)に対応する物理ページ番号は「6」になるため、図5のS14において、リフレッシュ処理の対象となる論理ページ番号(ここでは、「1」)に対応する物理ページ番号は「1」から「6」に更新され、リフレッシュ処理の対象となる論理ページ番号(ここでは、「1」)に対応付けられた旧物理ページ番号に「1」が記述される。
また、ここでは、初回のリフレッシュ処理であるため、図5のS15において、前回のリフレッシュ処理に係るデータはなく、かつ、今回、リフレッシュ処理した論理ページ番号(ここでは、「1」)は最終の論理ページ番号(ここでは、「5」)ではないため、図5のS18において、次回ページ番号24を「1」から「2」へ更新する処理が実行される。
次に、2回目のリフレッシュ処理を行う際の処理について説明する。図8は、2回目のリフレッシュ処理が実行されるケースを説明する図である。
図8では、2回目のリフレッシュ処理を行う際の処理が実行される前、実行回数カウンタ22の値は「100」であるため、図4のS2においてコマンドが実行された後、図4のS3において、実行回数カウンタ22は「100」から「101」にインクリメントされる。
実行回数カウンタ22の値「101」はリフレッシュ開始値23「100」以上であるため、図4のS5のリフレッシュ処理が実行される。図5のS10において、リフレッシュ元の論理ページ番号は次回ページ番号24で示され、ここでは、2回目のリフレッシュ処理であるためリフレッシュ元の論理ページ番号は「2」である。また、図5のS11において、リフレッシュ元の論理ページ番号に対応する物理ページ番号で、リフレッシュ元の物理ページ番号は、図8のページ管理テーブル21によれば「3」になる。
図5のS12において、リフレッシュ元の物理ページ番号(ここでは、「3」)から順に空きページの物理ページ番号を検索し、最初に検索される空ページの物理ページ番号は「7」になるため、リフレッシュ先の物理ページ番号は「7」として決定される。
また、図5のS13において、リフレッシュ元の物理ページ番号(ここでは、「3」)のページ25に保持されているデータがリフレッシュ先の物理ページ番号(ここでは、「7」)のページ25にページコピーされることで、リフレッシュ元の論理ページ番号のページ25に保持されていたデータがリフレッシュ処理される。
また、リフレッシュ処理の対象となる論理ページ番号(ここでは、「2」)に対応する物理ページ番号は「7」に変更されるため、図5のS14において、リフレッシュ処理の対象となる論理ページ番号(ここでは、「2」)に対応する物理ページ番号は「3」から「7」に更新され、リフレッシュ処理の対象となる論理ページ番号(ここでは、「2」)に対応付けられた旧物理ページ番号に「3」が記述される。
また、ここでは、2回目のリフレッシュ処理であるため、図5のS15において、初回のリフレッシュ処理に係るデータが存在し、ここでは、図5のS16において、論理ページ番号「1」に対応付けられている旧物理ページ番号「1」と、旧物理ページ番号「1」のページ25に保持されているデータが初期化される。更に、今回、リフレッシュ処理した論理ページ番号は最終の論理ページ番号(ここでは、「5」)ではないため、図5のS17において、次回ページ番号24を「2」から「3」へ更新する処理が実行される。
次に、最終のリフレッシュ処理を行う際の処理について説明する。図9は、最終のリフレッシュ処理を行うケースを説明する図である。
図9では、最終(ここでは、5回目)のリフレッシュ処理が実行される前、実行回数カウンタ22の値は「103」で、最終のリフレッシュ処理が実行される際、図4のS3において、実行回数カウンタ22は「103」から「104」にインクリメントされる。
実行回数カウンタ22の値「104」はリフレッシュ開始値23「100」以上であるため、図4のS5において、最終(ここでは、5回目)のリフレッシュ処理が実行される。図5のS10において、リフレッシュ処理元の論理ページ番号は次回ページ番号24で示され、ここでは、5回目のリフレッシュ処理であるためリフレッシュ処理元の論理ページ番号は「5」である。また、図5のS11において、リフレッシュ処理元の論理ページ番号に対応する物理ページ番号で、リフレッシュ元の物理ページ番号は、図9のページ管理テーブル21によれば「4」になる。
図5のS12において、リフレッシュ元の物理ページ番号(ここでは、「4」)から番号の大きい順に空きページの物理ページ番号を検索しても、空きページの物理ページ番号は検索されないため、物理ページ番号の先頭に戻り空ページの物理ページ番号が検索され、最初に検索される空ページの物理ページ番号は「1」になるため、リフレッシュ先の物理ページ番号は「1」として決定される。
そして、図5のS13において、リフレッシュ元の物理ページ番号「4」のページ25に保持されているデータがリフレッシュ先の物理ページ番号「1」のページ25へページコピーされることで、リフレッシュ対象となる論理ページ番号(ここでは、「5」)のページ25に保持されているデータがリフレッシュ処理される。
また、リフレッシュ処理の対象となる論理ページ番号(ここでは、「5」)に対応する物理ページ番号は「1」に変更されるため、図5のS14において、リフレッシュ処理の対象となる論理ページ番号(ここでは、「5」)に対応する物理ページ番号は「4」から「1」に更新され、リフレッシュ処理の対象となる論理ページ番号(ここでは、「5」)に対応付けられた旧物理ページ番号に「4」が記述される。
また、最終のリフレッシュ処理であるため、図5のS15において、4回目のリフレッシュ処理に係るデータは存在し、図5のS15において、論理ページ番号「4」に対応付けられている旧物理ページ番号「5」と、旧物理ページ番号「5」のページ25に保持されているデータが初期化される。
また、図5のS17において、最終のリフレッシュ処理すなわち、今回、リフレッシュ処理した論理ページ番号は最終のページ番号であるため、図5のS19において、次回ページ番号24は先頭の論理ページ番号「1」に更新され、更に、図5のS20において、実行回数カウンタ22の値は「0」に初期化される。
1 ICカード
10 コマンド管理モジュール
11 コマンドモジュール
12 リフレッシュモジュール
20 フラッシュメモリ
21 ページ管理テーブル
22 実行回数カウンタ
23 リフレッシュ開始値
24 次ページ番号
25 データ領域のページ

Claims (4)

  1. フラッシュメモリに保持されているデータを再書き込みするリフレッシュ処理を実行するリフレッシュ手段と、外部装置から受信したコマンドの実行回数の規定値を前記トリガー条件として保持し、外部装置からコマンドを受信すると、該コマンドを処理した後、外部装置から受信したコマンドの実行回数をカウントするカウンタをインクリメントし、インクリメントした後の前記カウンタの値が前記規定値になると、前記リフレッシュ手段を呼び出し、前記リフレッシュ手段の処理が終了すると、該コマンドのレスポンスを外部装置へ送信するコマンド管理手段を備えたICカードにおいて、
    前記ICカードは、データ保持に利用しない空きページが設けられるように論理ページの総数が設定され、論理ページ番号に対応する物理ページ番号を記述したページ管理テーブルと、次にリフレッシュ処理する論理ページの論理ページ番号である次回ページ番号を保持し、
    前記リフレッシュ手段は、前記コマンド管理手段から呼び出されると、前記ページ管理テーブルを参照し、前記次回ページ番号に対応する物理ページのデータを、所定のアルゴリズムにより決定した前記空ページにページコピーすることで、前記次回ページ番号に対応する物理ページ番号で特定されるページをリフレッシュ処理した後、前記ページ管理テーブルを更新する処理として、前記次回ページ番号で示される論理ページ番号に対応付けられた物理ページ番号を該空ページの物理ページ番号に更新する処理を実行し、更に、前記次回ページ番号を更新する処理として、前記次回ページ番号が最終の論理ページ番号でなければ、前記次回ページ番号を一つインクリメントし、前記次回ページ番号が最終の論理ページ番号であれば、前記次回ページ番号及び前記カウンタを初期化する処理を実行する、
    ことを特徴とするICカード。
  2. 前記リフレッシュ手段は、前記ページ管理テーブルを更新する処理として、前記次回ページ番号で示される論理ページ番号に対応付けられた物理ページ番号を、リフレッシュ処理される前の旧物理ページ番号として該論理ページ番号に対応付けて前記ページ管理テーブルに記憶する処理を行い、前記次回ページ番号を更新する処理を実行する前に、前回の前記旧物理ページ番号が前記ページ管理テーブルに記憶されていれば、該旧物理ページ番号を前記ページ管理テーブルから削除すると共に、該旧物理ページ番号で特定されるページを初期化することを特徴とする、請求項に記載のICカード。
  3. フラッシュメモリのリフレッシュ処理を行うトリガー条件として、外部装置から受信したコマンドの実行回数の規定値を保持するICカードが、外部装置からコマンドを受信すると、該コマンドを処理した後、外部装置から受信したコマンドの実行回数をカウンタを利用してカウントし、インクリメント後の前記カウンタの値を確認することで、前記トリガー条件が成立しているか確認するステップa、前記ICカードが、インクリメント後の前記カウンタの値が前記規定値になると、前記ICカードに実装されたフラッシュメモリに保持されているデータをページ単位で取得し、フラッシュメモリにページ単位で該データを再書き込みするリフレッシュ処理を実行するステップb、リフレッシュ処理が終了すると、ステップaで受信したコマンドのレスポンスを外部装置へ送信するステップcが実行されるICカードのリフレッシュ方法において、
    前記ICカードは、データ保持に利用しない空きページが設けられるように論理ページの総数が設定され、論理ページ番号に対応する物理ページ番号を記述したページ管理テーブルと、次にリフレッシュ処理する論理ページの論理ページ番号である次回ページ番号を保持し、前記ステップbにおいて、前記ICカードは、インクリメント後の前記カウンタの値が前記規定値になると、前記ページ管理テーブルを参照し、前記次回ページ番号に対応する物理ページのデータをページ単位で取得し、所定のアルゴリズムにより決定した前記空ページに該データをページ単位で再書き込みすることで、前記次回ページ番号に対応する物理ページ番号で特定されるページをリフレッシュ処理した後、前記ページ管理テーブルを更新する処理として、前記次回ページ番号で示される論理ページ番号に対応付けられた物理ページ番号を該空ページの物理ページ番号に更新する処理と、前記次回ページ番号を更新する処理として、前記次回ページ番号が最終の論理ページ番号でなければ、前記次回ページ番号を一つインクリメントし、前記次回ページ番号が最終の論理ページ番号であれば、前記次回ページ番号及び前記カウンタを初期化する処理を実行する、
    ことを特徴とするICカードのリフレッシュ方法。
  4. 前記ステップbにおいて、前記ICカードは、前記ページ管理テーブルを更新する処理として、前記次回ページ番号で示される論理ページ番号に対応付けられた物理ページ番号を、リフレッシュ処理される前の旧物理ページ番号として該論理ページ番号に対応付けて前記ページ管理テーブルに記憶する処理を行い、前記次回ページ番号を更新する処理を実行する前に、前回の前記旧物理ページ番号が前記ページ管理テーブルに記憶されていれば、該旧物理ページ番号を前記ページ管理テーブルから削除すると共に、該旧物理ページ番号で特定されるページを初期化することを特徴とする、請求項に記載のICカードのリフレッシュ方法。
JP2011110067A 2011-05-17 2011-05-17 Icカード及びicカードのリフレッシュ方法 Active JP5708228B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011110067A JP5708228B2 (ja) 2011-05-17 2011-05-17 Icカード及びicカードのリフレッシュ方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011110067A JP5708228B2 (ja) 2011-05-17 2011-05-17 Icカード及びicカードのリフレッシュ方法

Publications (2)

Publication Number Publication Date
JP2012242925A JP2012242925A (ja) 2012-12-10
JP5708228B2 true JP5708228B2 (ja) 2015-04-30

Family

ID=47464608

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011110067A Active JP5708228B2 (ja) 2011-05-17 2011-05-17 Icカード及びicカードのリフレッシュ方法

Country Status (1)

Country Link
JP (1) JP5708228B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102244921B1 (ko) 2017-09-07 2021-04-27 삼성전자주식회사 저장 장치 및 그 리프레쉬 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1139221A (ja) * 1997-07-17 1999-02-12 Hitachi Ltd 不揮発性半導体メモリに対する書き込みアクセス・リフレッシュ制御方法、並びに半導体ファイル記憶装置
JP4058322B2 (ja) * 2002-10-07 2008-03-05 株式会社ルネサステクノロジ メモリカード
JP2008181380A (ja) * 2007-01-25 2008-08-07 Toshiba Corp メモリシステムおよびその制御方法
JP5661227B2 (ja) * 2007-02-07 2015-01-28 株式会社メガチップス メモリコントローラ
EP2077559B1 (en) * 2007-12-27 2012-11-07 Hagiwara Solutions Co., Ltd. Refresh method of a flash memory

Also Published As

Publication number Publication date
JP2012242925A (ja) 2012-12-10

Similar Documents

Publication Publication Date Title
JP2004258946A (ja) メモリカード
WO2018145392A1 (zh) 差分升级方法及装置、终端、存储介质、处理器
CN109213448B (zh) 一种智能卡的擦写数据的方法、装置、设备及存储介质
CN109685190B (zh) 一种ic卡掉电保护方法及装置
JP5225054B2 (ja) Icカード
CN116578327B (zh) 一种程序更新方法、装置及电子设备和存储介质
JP5708228B2 (ja) Icカード及びicカードのリフレッシュ方法
CN110908597A (zh) 适应性锁定范围管理的方法、数据存储装置及其控制器
CN112905498A (zh) 一种处理方法、装置、电子设备及存储介质
CN111090542A (zh) 基于异常掉电的异常块识别方法、装置及计算机设备
CN112988037A (zh) 静态磨损均衡方法、终端和计算机可读存储介质
JP7322923B2 (ja) セキュアエレメント,トランザクション制御方法およびデバイス
JP2015049722A (ja) マイクロコンピュータ及び不揮発性メモリのブロック管理方法
EP4024254A1 (en) Method and device for updating data
CN110618824A (zh) 一种软件升级方法、装置、介质和设备
JP2014203248A (ja) Icカード、ステータスワード出力方法、及びステータスワード出力処理プログラム
JP7068603B2 (ja) 電子情報記憶媒体、icカード、電子情報記憶媒体によるアップデート方法及びアップデートプログラム
JP2016153945A (ja) 電子情報記憶媒体、カウンタ書換方法、及びカウンタ書換プログラム
JP5786702B2 (ja) セキュリティトークン、セキュリティトークンにおける命令の実行方法及びコンピュータプログラム
JP2008305263A (ja) 不揮発性半導体記憶装置及びメモリ管理方法
JP6281302B2 (ja) 情報処理装置、icカード、及びデータ処理方法
JP2007034434A (ja) Icカード、icカードへのデータ書込み方法、および、icカードプログラム
JP6915338B2 (ja) Icカード
CN112698785A (zh) 存储设备的数据更新方法
JP2008146343A (ja) Icカード、および、更新プログラムの呼出し方法

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20130823

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140317

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140905

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140916

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141111

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150216

R150 Certificate of patent or registration of utility model

Ref document number: 5708228

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150