(57)【特許請求の範囲】
【請求項１】
所定の領域を一のページとして、一又は複数のページに区画される記憶部を備え、更新要求に基づいて、前記記憶部の指定されたページの指定された領域に記憶されるデータを更新するＩＣチップであって、
前記データを更新する領域である更新領域が属するページのうち、当該更新領域以外の領域である非更新領域に記憶されるデータを保護する第１の保護手段と、
特定の一連の更新処理の開始前又は終了後の何れかにおける記憶部に記憶されるデータを保護可能とするトランザクションの実行中に、更新前の更新領域及び非更新領域が属するページの全ての領域を更新領域として、当該ページに記憶される全てのデータを前記記憶部に記憶させ、当該ページに非更新領域が存在しないものとして第１の保護手段を機能させない第２の保護手段と、
を備え、
前記第２の保護手段は、
更新要求があった場合には、前記トランザクションの実行中であるものとして、更新前の更新領域及び非更新領域が属するページの全ての領域を更新領域として、当該ページに記憶される全てのデータを前記記憶部に記憶させ、当該ページに非更新領域が存在しないものとして前記第１の保護手段を機能させないことを特徴とするＩＣチップ。
【請求項２】
請求項１に記載のＩＣチップであって、
前記第１の保護手段は、ＩＣチップの基本的な動作を管理するオペレーティングシステムが備える基本的な機能であって、当該オペレーティングシステムの制御に基づいて実行され、
前記第２の保護手段は、前記オペレーティングシステム上で動作し、前記ＩＣチップに所定の機能を実行させるアプリケーションの要求に応じた前記オペレーティングシステムの制御に基づいて実行されることを特徴とするＩＣチップ。
【請求項３】
請求項１又は２に記載のＩＣチップであって、
更新が終了した場合には、前記第２の保護手段によって記憶されたデータを消去するバックアップデータ消去手段をさらに備えることを特徴とするＩＣチップ。
【請求項４】
請求項３に記載のＩＣチップであって、
前記バックアップデータ消去手段は、前記第２の保護手段によって記憶されたデータが記憶される前記記憶部の記憶容量が上限に達した場合には、当該データを消去することを特徴とするＩＣチップ。
【請求項５】
請求項１乃至４の何れか一項に記載のＩＣチップと、ＩＣカード基体と、を備えることを特徴とするＩＣカード。
【請求項６】
所定の領域を一のページとして、一又は複数のページに区画される記憶部を備え、更新要求に基づいて、前記記憶部の指定されたページの指定された領域に記憶されるデータを更新するＩＣチップにおいて実行されるＩＣチップにおける処理方法であって、
前記ＩＣチップは、
前記データを更新する領域である更新領域が属するページのうち、当該更新領域以外の領域である非更新領域に記憶されるデータを保護する第１の保護手段と、
特定の一連の更新処理の開始前又は終了後の何れかにおける記憶部に記憶されるデータを保護可能とするトランザクションの実行中に、更新前の更新領域及び非更新領域が属するページの全ての領域を更新領域として、当該ページに記憶される全てのデータを前記記憶部に記憶させ、当該ページに非更新領域が存在しないものとしてオペレーティングシステムに通知して、前記第１の保護手段を機能させない第２の保護手段と、
を備え、
前記第２の保護手段が、更新要求があった場合には、前記トランザクションの実行中であるものとして、更新前の更新領域及び非更新領域が属するページの全ての領域を更新領域として、当該ページに記憶される全てのデータを前記記憶部に記憶させ、当該ページに非更新領域が存在しないものとして前記オペレーティングシステムに通知して、前記第１の保護手段を機能させない工程を含むことを特徴とするＩＣチップにおける処理方法。
【請求項７】
所定の領域を一のページとして、一又は複数のページに区画される記憶部を備え、更新要求に基づいて、前記記憶部の指定されたページの指定された領域に記憶されるデータを更新するＩＣチップに含まれるコンピュータを、
前記データを更新する領域である更新領域が属するページのうち、当該更新領域以外の領域である非更新領域に記憶されるデータを保護する第１の保護手段、
特定の一連の更新処理の開始前又は終了後の何れかにおける記憶部に記憶されるデータを保護可能とするトランザクションの実行中に、更新前の更新領域及び非更新領域が属するページの全ての領域を更新領域として、当該ページに記憶される全てのデータを前記記憶部に記憶させ、当該ページに非更新領域が存在しないものとして前記第１の保護手段を機能させない第２の保護手段、
として機能させ、
前記第２の保護手段は、
更新要求があった場合には、前記トランザクションの実行中であるものとして、更新前の更新領域及び非更新領域が属するページの全ての領域を更新領域として、当該ページに記憶される全てのデータを前記記憶部に記憶させ、当該ページに非更新領域が存在しないものとして前記第１の保護手段を機能させないことを特徴とするＩＣチップ用処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを管理する装置及び方法等の技術分野に関する。
【背景技術】
【０００２】
ＩＣカードを用いた商取引等では、ＩＣカードに搭載されたＩＣチップの不揮発性メモリ等に記憶される種々の重要なデータ（例えば、決済処理に用いられる個人情報等）が、必要に応じて読み出され、消去され、又は、新たなデータに書き換えられる。
【０００３】
この不揮発性メモリは、電力を失ってもデータを保持し続ける特性があるが、ＩＣカードの処理中、例えば、当該不揮発性メモリに対してデータが書き込まれている間は、書き込み中のデータを保障することができない。
【０００４】
具体的には、ＩＣカードがリーダライタ装置に挿入され、当該不揮発性メモリに対してデータが書き込まれている間に、利用者によってＩＣカードがリーダライタ装置から強制的に引き抜かれた場合（所謂、利用者による引き抜き）や、ＩＣカードとリーダライタ装置との端子間で接触不良が生じた場合等の瞬断が発生した場合には、ＩＣカードにおける処理が中断され、カード内の大切なデータが破壊される虞がある。
【０００５】
このため、一般的なＩＣカードは、瞬断によるデータの破壊を防止すべく、瞬断を考慮した保護機能（専用の保護機能）が搭載されている。
【０００６】
そして、上述した瞬断を考慮した保護機能は、メモリ管理者としてカードＯＳの基本的な機能として提供されている。以下、この瞬断を考慮した保護機能を単に「カードＯＳによる非更新領域の保護機能」と称する。
【０００７】
この「カードＯＳによる非更新領域の保護機能」の概要は、更新されるデータ以外のデータである非更新領域のデータを保護するため、当該データのバックアップを、予め他の領域（例えば、不揮発性メモリに設定されたバックアップ領域等）に書き込んだ後、実際にデータの更新（書き込みを含む）を行う。更新作業が完了した場合は、バックアップ領域に更新が成功した情報を追加する。そして、バックアップ領域に記憶された当該データのバックアップを消去する。一方、更新の途中に処理が中断（瞬断）されたならば、次にカードが活性化した直後にバックアップ領域の内容を調べ、更新作業が完了していないデータに対して実際のデータ領域（この場合、非更新領域）に書き戻すようになっている。
【０００８】
また、特許文献１では、書き込み領域縮小化及びバックアップの処理時間の短縮化の観点から、バックアップ対象として、非更新領域のデータのみを、予め他の領域にコピーする技術が開示されている。
【０００９】
一方、更新領域の保護に関しては、ＪＡＶＡ（登録商標）カードが有する機能において提供されている。
【００１０】
ＪＡＶＡカードは、公知の技術であるため詳しい説明は省略するが、一般的なＩＣカードのＯＳの上にバーチャルマシン（Virtual Machine）をのせたＩＣカードであり、所定のプラットフォームのもと、ＪＡＶＡ言語でＩＣカードのアプリケーションを作成することが可能となっている。このプラットフォームは、例えば、ＪＡＶＡ  ＣＡＲＤ  ３．０等で規格化されている。
【００１１】
そして、ＪＡＶＡカードでは、更新領域の保護に関してトランザクション（Transaction）という仕組みが利用されている。トランザクションとは、特定の一連の処理の開始前もしくは終了後の何れかの状態のみを取り得る仕組みをいう。
【００１２】
上述した「カードＯＳの保護機能における非更新領域の保護機能」は、一度の更新（例えば、一のデータの書き込み）に対して有効であるのに対して、このトランザクションによる更新領域の保護では、予め定められた一又は複数の書き込み（以下、単に「連続した書き込み」と称する。）において、連続した書き込みの保障が可能である。この連続した書き込みの保障とは、更新前の更新領域の状態、又は更新後の更新領域の状態の何れかの状態を取り得ることができることをいう。以下、トランザクションにおける更新領域の保護について、単に、「トランザクションによる更新領域の保護機能」と称する。
【００１３】
この「トランザクションによる更新領域の保護機能」の一例として、上記更新前の更新領域の状態を取り得ることを可能とするため、不揮発性メモリに記憶されたデータのうち、更新される領域に既に記憶されているデータをバックアップ領域へ書き込む。そして、更新の途中に処理が中断されたならば、次にカードが活性化した直後にバックアップ領域の内容を調べ、更新作業が完了していないデータに対して、バックアップ領域へ書き込まれたデータを、実際のデータ領域（この場合、更新領域）へ書き戻すようになっている。一方、上記連続した書き込みが完了した場合には、バックアップ領域に記憶された当該データのバックアップが消去される。
【００１４】
また、従来のＩＣカードでは、不揮発性メモリに対してページ単位でデータが更新されるのであるが、このページあたりに記憶されるデータの容量（単位）が１ｂｙｔｅ、２ｂｙｔｅ、又は４ｂｙｔｅ、と小さいことが通常であり、更新（データの書き込み及び消去等）される時間も短かった。
【００１５】
そのため、従来のＩＣカードでは、「カードＯＳによる非更新領域の保護機能」（記憶領域の更新領域を保護する機能）と「トランザクションによる更新領域の保護機能」（非更新領域を保護する機能）が別々に定義されており、ＩＣカードがデータを更新する際に、「カードＯＳによる非更新領域の保護機能」と、「トランザクションによる更新領域の保護機能」がそれぞれ機能するようになっていた。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開２００８−１３４９４５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１７】
近年、不揮発性メモリの大容量化が進み、ページあたりに記憶されるデータの容量が１２８ｂｙｔｅ、又は２５６ｂｙｔｅと増加している。このページあたりに記憶されるデータの容量の増加に伴い、バックアップされる更新領域及び非更新領域のデータも拡大しており、更新やバックアップに要する処理時間が増加している。
【００１８】
さらに、「カードＯＳによる非更新領域の保護機能」と、「トランザクションによる更新領域の保護機能」がそれぞれ機能すると、更新やバックアップに要する処理時間はさらに増加し、ユーザの利便性を損なうといった問題点がある。
【００１９】
そこで、「カードＯＳによる非更新領域の保護機能」と、「トランザクションによる更新領域の保護機能」を統合して、適切な保護機能によってデータを保護することにより、データの保護機能による処理時間の短縮を図るといった考え方もある。
【００２０】
この統合では、上記トランザクションの実行中に、「トランザクションによる更新領域の保護機能」によって、前記更新前の更新領域及び非更新領域が属するページの全ての領域を更新領域として、当該ページに記憶される全てのデータを前記記憶部に記憶させ、当該ページに非更新領域が存在しないものとしてカードＯＳに通知して、「カードＯＳによる非更新領域の保護機能」を機能させないようになっている。
【００２１】
しかしながら、この統合は、上記トランザクションの実行中でなければ働かない。従って、連続した書き込みとして定義されない書き込み要求が、連続してなされた場合には、当該書き込み要求毎に「カードＯＳによる非更新領域の保護機能」が働き、バックアップ領域に対してデータの記憶及び当該データの消去が繰り返され、更新やバックアップに要する処理時間が増加するといった問題点がある。
【００２２】
そこで、本発明は、このような点等に鑑みてなされたものであり、データの保護機能を複数備えるＩＣチップにおいて、適切な保護機能によってデータを保護することにより、データの保護機能による処理時間の短縮を図るＩＣチップ、ＩＣチップにおける処理方法、ＩＣチップ用処理プログラム、及びＩＣカード等を提供することを目的とする。
【課題を解決するための手段】
【００２３】
上記課題を解決するために、請求項１に記載の発明は、所定の領域を一のページとして、一又は複数のページに区画される記憶部を備え、更新要求に基づいて、前記記憶部の指定されたページの指定された領域に記憶されるデータを更新するＩＣチップであって、前記データを更新する領域である更新領域が属するページのうち、当該更新領域以外の領域である非更新領域に記憶されるデータを保護する第１の保護手段と、特定の一連の更新処理の開始前又は終了後の何れかにおける記憶部に記憶されるデータを保護可能とするトランザクションの実行中に、更新前の更新領域及び非更新領域が属するページの全ての領域を更新領域として、当該ページに記憶される全てのデータを前記記憶部に記憶させ、当該ページに非更新領域が存在しないものとして第１の保護手段を機能させない第２の保護手段と、備え、前記第２の保護手段は、更新要求があった場合には、前記トランザクションの実行中であるものとして、更新前の更新領域及び非更新領域が属するページの全ての領域を更新領域として、当該ページに記憶される全てのデータを前記記憶部に記憶させ、当該ページに非更新領域が存在しないものとして前記第１の保護手段を機能させないことを特徴とする。
【００２４】
請求項２に記載の発明は、請求項１に記載のＩＣチップであって、前記第１の保護手段は、ＩＣチップの基本的な動作を管理するオペレーティングシステムが備える基本的な機能であって、当該オペレーティングシステムの制御に基づいて実行され、前記第２の保護手段は、前記オペレーティングシステム上で動作し、前記ＩＣチップに所定の機能を実行させるアプリケーションの要求に応じた前記オペレーティングシステムの制御に基づいて実行されることを特徴とする。
【００２５】
請求項３に記載の発明は、請求項１又は２に記載のＩＣチップであって、更新が終了した場合には、前記第２の保護手段によって記憶されたデータを消去するバックアップデータ消去手段をさらに備えることを特徴とする。
【００２６】
請求項４に記載の発明は、請求項３に記載のＩＣチップであって、前記バックアップデータ消去手段は、前記第２の保護手段によって記憶されたデータが記憶される前記記憶部の記憶容量が上限に達した場合には、当該データを消去することを特徴とする。
【００２７】
請求項５に記載の発明は、請求項１乃至４の何れか一項に記載のＩＣチップと、ＩＣカード基体と、を備えることを特徴とする。
【００２８】
請求項６に記載の発明は、所定の領域を一のページとして、一又は複数のページに区画される記憶部を備え、更新要求に基づいて、前記記憶部の指定されたページの指定された領域に記憶されるデータを更新するＩＣチップにおいて実行されるＩＣチップにおける処理方法であって、前記ＩＣチップは、前記データを更新する領域である更新領域が属するページのうち、当該更新領域以外の領域である非更新領域に記憶されるデータを保護する第１の保護手段と、特定の一連の更新処理の開始前又は終了後の何れかにおける記憶部に記憶されるデータを保護可能とするトランザクションの実行中に、更新前の更新領域及び非更新領域が属するページの全ての領域を更新領域として、当該ページに記憶される全てのデータを前記記憶部に記憶させ、当該ページに非更新領域が存在しないものとしてオペレーティングシステムに通知して、前記第１の保護手段を機能させない第２の保護手段と、備え、前記第２の保護手段が、更新要求があった場合には、前記トランザクションの実行中であるものとして、更新前の更新領域及び非更新領域が属するページの全ての領域を更新領域として、当該ページに記憶される全てのデータを前記記憶部に記憶させ、当該ページに非更新領域が存在しないものとして前記オペレーティングシステムに通知して、前記第１の保護手段を機能させない工程を含むことを特徴とする。
【００２９】
請求項７に記載の発明は、所定の領域を一のページとして、一又は複数のページに区画される記憶部を備え、更新要求に基づいて、前記記憶部の指定されたページの指定された領域に記憶されるデータを更新するＩＣチップに含まれるコンピュータを、前記データを更新する領域である更新領域が属するページのうち、当該更新領域以外の領域である非更新領域に記憶されるデータを保護する第１の保護手段、特定の一連の更新処理の開始前又は終了後の何れかにおける記憶部に記憶されるデータを保護可能とするトランザクションの実行中に、更新前の更新領域及び非更新領域が属するページの全ての領域を更新領域として、当該ページに記憶される全てのデータを前記記憶部に記憶させ、当該ページに非更新領域が存在しないものとして前記第１の保護手段を機能させない第２の保護手段、として機能させ、前記第２の保護手段は、更新要求があった場合には、前記トランザクションの実行中であるものとして、更新前の更新領域及び非更新領域が属するページの全ての領域を更新領域として、当該ページに記憶される全てのデータを前記記憶部に記憶させ、当該ページに非更新領域が存在しないものとして前記第１の保護手段を機能させないことを特徴とする。
【発明の効果】
【００３０】
本発明によれば、データの保護機能を複数備えるＩＣチップにおいて、適切な保護機能によってデータを保護することにより、データの保護機能による処理時間の短縮を図ることができる。
【図面の簡単な説明】
【００３１】
【図１】本実施形態にかかるＩＣカードの構成及び機能概要を示すブロック図である。
【図２】ＩＣカードのソフトウェア構成を模式的に示す図である。
【図３】カードＯＳによる非更新領域の保護機能が適用される場合のＣＰＵ６の動作の概要を示すフローチャートである。
【図４】不揮発性メモリ５のデータ領域にデータが記憶される状態を示す概念図である。
【図５】ページ単位で不揮発性メモリ５のデータ領域にデータが記憶される状態を示す概念図である。
【図６】トランザクションによる更新領域の保護機能が適用される場合のＣＰＵ６の動作の概要を示すフローチャートである。
【図７】ＩＣカードによって更新されるデータを概念的に示す図である。
【図８】ページあたりに記憶されるデータの容量が大容量である場合に、ＩＣカードによって更新されるデータを概念的に示す図である。
【図９】「バックアップ検索機能」が適用されない場合のバックアップ領域に書き込まれるデータ構造を概念的に示す図である。
【図１０】連続した書き込みとして定義されない複数の更新要求があった場合のＣＰＵ６の動作を示すフローチャートである。
【図１１】複数の更新要求を概念的に示す図である。
【図１２】複数の更新要求と「カードＯＳによる保護機能」の詳細を概念的に示す図である。
【図１３】本実施形態のＣＰＵ６の動作の詳細を示すフローチャートである。
【発明を実施するための形態】
【００３２】
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、ＩＣカードの一例としての上述したＪＡＶＡカードに対して本発明を適用した場合の実施の形態である。以下、ＪＡＶＡカードに対応したＩＣカードを、単にＩＣカードと称する。
【００３３】
［１．ＩＣカードのハードウェア構成及び機能概要］
まず、図１を参照して、本願のＩＣカードのハードウェア構成及び機能概要について説明する。本実施形態にかかるＩＣカードの構成及び機能概要を示すブロック図である。
【００３４】
図１は、本実施形態にかかるＩＣカードの構成及び機能概要を示すブロック図である。
【００３５】
図１に示すように、ＩＣカード８は、ＩＣチップ１をカード基体７に備えている。
【００３６】
そして、ＩＣチップ１は、Ｉ／Ｏ回路２、ＲＯＭ（Read Only Memory）３、ＲＡＭ（Random Access Memory）４、本願の記憶部の一例としての不揮発性メモリ（例えば、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory））５、ＣＰＵ(Central Processing Unit)６等を備えて構成されている。なお、Ｉ／Ｏ回路２を介した外部機器とのデータ通信は、接触方式と非接触方式の何れの方式であってもよい。
【００３７】
Ｉ／Ｏ回路２は、図示しない外部機器とデータ通信するための処理回路である。
【００３８】
ＲＯＭ３は、ＣＰＵ６によって実行されるべきプログラムが記憶されており、ＣＰＵ６は、このプログラムに基づいてＩＣチップ１を統括的に制御する。
【００３９】
また、ＲＯＭ３に記憶されるプログラムとしては、カードＯＳ（本願のオペレーティングシステムの一例）、複数種類のアプリケーションプログラム、及び本発明のＩＣチップ用処理プログラムがある。なお、本発明のＩＣチップ用処理プログラムは、カードＯＳ又はアプリケーションプログラムの一機能として組み込まれてもよい。また、これらのプログラムは、不揮発性メモリ５に記憶されるようにしてもよい。
【００４０】
ＲＡＭ４は、ＣＰＵ６がＩＣチップ１を統括的に制御等するために作業領域として使用する記憶領域である。
【００４１】
不揮発性メモリ５は、不揮発性半導体メモリの一種であり、記憶領域に記憶されるデータを消去し、何度でも再記憶ができるＰＲＯＭ(Programmable Rom)である。
【００４２】
また、本実施形態における不揮発性メモリ５は、各領域にアドレスが付されており、所定の領域を１のページとして、一又は複数のページに区画される。
【００４３】
そして、不揮発性メモリ５は、ＣＰＵ６により各種データが書き込まれる（記憶される）データ領域と、詳しくは後述するがバックアップデータが書き込まれるバックアップ領域を有する。
【００４４】
ＣＰＵ６は、上述したようにプログラムに基づいてＩＣチップ１全体の動作を統括的に制御するとともに、その機能の一部として、データ領域の指定されたページの指定された領域のデータを更新し、さらに、本願の第１の保護手段、第２の保護手段、又は、バックアップデータ消去手段等として機能する。
【００４５】
なお、更新といった場合には、少なくともデータ領域等に記憶されたデータを書き換えることのみならず、新たにデータを書き込むことを含むものとする。
【００４６】
［２．ＩＣカードのソフトウェア構成及び機能概要］
次に、図２を参照して、ＩＣカードのソフトウェア構成について説明する。
【００４７】
図２は、ＩＣカードのソフトウェア構成を模式的に示す図である。
【００４８】
図２に示すように、ＩＣカードのハードウェアを構成するＲＡＭ４、不揮発性メモリ５、及びＣＰＵ６等のハードウェア層２１は、ＯＳ（オペレーティング）層２２のカードＯＳによって制御される。
【００４９】
ＯＳ層２２は、ＪＡＶＡカードを動作させるための環境を含めたバーチャルマシン（Virtual Machine）、アプリケーション（アプレット）の管理をするＩ．Ｓ．Ｄ．（Issuer  Security  Domain）、アプレットの関数であるＡＰＩといったモジュールがカードＯＳにのった状態となっていて、アプリケーション（アプレット）層２３が最上位に位置する。
【００５０】
このカードＯＳは、当該ＩＣカードの基本的な動作を管理するプログラムであり、ハードウェア層２１の各ハードウェアを制御したり、各ハードウェアからの処理結果などの情報を受けて動作するプログラムである。
【００５１】
そして、上述した「カードＯＳによる非更新領域の保護機能」は、メモリ管理者としてカードＯＳの基本的な機能として提供される。
【００５２】
この「カードＯＳによる非更新領域の保護機能」は、ＣＰＵ６を、本願の第１の保護手段として機能させ、本願のカードＯＳの制御に基づいて、不揮発性メモリ５に記憶されるデータを更新する領域である更新領域が属するページのうち、当該更新領域以外の領域である非更新領域に記憶されるデータを保護するようになっている。
【００５３】
アプリケーション層２３は、カードＯＳ上で動作し、ＣＰＵ６に所定の機能を実行させるための各種のアプリケーション（アプリケーションＡ、アプリケーションＢ等。本願のアプリケーションの一例、以下単に「アプリケーション」とする。）から構成される。
【００５４】
そして、上述した「トランザクションによる更新領域の保護機能」は、アプリケーション層２３のアプリケーションの機能として提供されている。
【００５５】
この「トランザクションによる更新領域の保護機能」は、ＣＰＵ６を、本願の第２の保護手段として機能させ、上記アプリケーションの要求に応じたカードＯＳの制御に基づいて、更新前の前記更新領域に記憶されるデータを保護するようになっている。
【００５６】
ここで、「カードＯＳによる非更新領域の保護機能」及び「トランザクションによる更新領域の保護機能」の詳細について説明する。
【００５７】
まず、図３を参照して、「カードＯＳによる非更新領域の保護機能」が適用される場合のＣＰＵ６の動作の概要について説明する。
【００５８】
図３は、カードＯＳによる非更新領域の保護機能が適用される場合のＣＰＵ６の動作の概要を示すフローチャートである。
【００５９】
なお、カードＯＳが備える機能（例えば、後述する保護機能動作）、及びアプリケーションが備える機能（例えは、後述するコマンドの処理）は、当該カードＯＳ又はアプリケーションの制御に基づいてＣＰＵ６によって実行される。すなわち、カードＯＳが備える機能、及びアプリケーションが備える機能が実行される場合の動作主体は、ＩＣカードのＣＰＵ６である。しかし、本実施形態においては、説明の便宜上、カードＯＳが備える機能が実行される場合の動作主体をカードＯＳとし、アプリケーションが備える機能が実行される場合の動作主体をアプリケーションとする。
【００６０】
図３に示すように、まず、カードＯＳ（ＣＰＵ６）が、例えばＩ／Ｏ回路２を介して、コマンドを受信すると（ステップＳ１０１）、カードＯＳは、受信したコマンドをどのアプリケーションへ渡すか決定する（ステップＳ１０２）。そして、カードＯＳは、受信したコマンドを、決定されたアプリケーションへ渡す。アプリケーション（ＣＰＵ６）は、コマンドを取得すると（ステップＳ１０３）、コマンドを処理して（例えば、コマンド解釈等）（ステップＳ１０４）、必要があれば不揮発性メモリ５のデータを更新する（不揮発性メモリ５へデータを書き込ませる）（ステップＳ１０５）。
【００６１】
この不揮発性メモリ５のデータを更新（不揮発性メモリ５への書き込み）は、カードＯＳが提供する機能の一部になっているので、実際には、カードＯＳへ、更新の依頼をする（ステップＳ１０６）。
【００６２】
ここで、図４及び図５を参照して、一般的な不揮発性メモリに記憶されるデータの更新について説明する。
【００６３】
図４は不揮発性メモリのデータ領域にデータが記憶される状態を示す概念図であり、図５はページ単位で不揮発性メモリのデータ領域にデータが記憶される状態を示す概念図である。
【００６４】
一般的に、ＩＣカードの不揮発性メモリのデータの更新は、初期化を行ってから更新される。
【００６５】
具体的に、この更新は、不揮発性メモリのデータ領域に記憶されるデータの値を、０から１、又は１から０へ、一方向へ値を書き込むことをいう。そして、不揮発性メモリでは、初期状態の値が０か１に必ず決定されている。即ち、この更新は、初期状態が０の場合は１へ、初期状態が１であれば０へ値を書き込むことをいう。
【００６６】
初期状態の値にないもの、例えば、初期状態の値が０で、その領域に１の値が書き込まれているものに対して、さらにその値を０と書き込みたいときは、書き込みというよりも初期状態に戻すという（クリアする）概念になっている。
【００６７】
ここで、この書き込みについて図４を参照して説明すると、不揮発性メモリのデータ領域（記憶領域）に、０ｘＡＡの値が書き込まれているものに対して（図４（Ａ））、０ｘ５５の値を書き込む場合（図４（Ｃ））には、初期化が行われて、０ｘＦＦという初期値に戻される（図４（Ｂ））。その上で改めて、０の値にしなければならないところに対して、０の値が書き込まれるため、書き込みの動作は、データを一度消去して、書き込むといった２段階の動作を伴うものとなっている。
【００６８】
このとき、一度に初期化される領域を１ページとすると、図５に示すように更新領域Ｘ（データが書き込まれる領域）が３ページにわたる場合、上述したように不揮発性メモリのデータが更新される際には一度初期化が行われるため、ページＡ、ページＢ、及びページＣの全てのデータが一度消去されることとなる。
【００６９】
このページＡ及びページＣには、更新データ以外のデータＹ（非更新領域Ｙ）が含まれているが、ページ単位でしか消去されないため、この非更新領域に記憶されるデータが消去の対象となり、もともと存在していたデータが消されてしまうこととなる。
【００７０】
この処理の最中、即ち、非更新領域が一度消されたときに瞬断が発生してしまうと、当該非更新領域のデータは消去されたまま（０ｘＦＦのまま）になってしまうので、こういった非更新領域を保護、即ち、消去される前の状態に戻そうというのが上述した「カードＯＳによる非更新領域の保護機能」である。
【００７１】
具体的に、図５においては、非更新領域のデータＹは、ページＡ及びページＣに記憶されている。従って、保護されるべきデータは、データＹである。従って、ページＡ及びページＣがページ単位で保護対象（バックアップ対象）として、例えば、バックアップ領域等に書き込まれる。以下に、保護対象としてバックアップ領域に書き込まれたデータを、バックアップデータと称する。
【００７２】
このようにして、「カードＯＳによる非更新領域の保護機能」によって、非更新領域が保護されるようになっている。
【００７３】
図３のフローチャートの説明に戻り、カードＯＳは、この保護機能を使って、瞬断に備えた更新を行う（ステップＳ１０６）。
【００７４】
そして、アプリケーションは、残りの処理があれば、コマンド処理をして（ステップＳ１０７）、レスポンスデータを送信するのはカードＯＳの処理となるため、カードＯＳへレスポンスデータを通知する（ステップＳ１０８）。そして、カードＯＳはレスポンスデータを取得すると（ステップＳ１０９）、例えば、外部装置（リーダライタ装置等）へレスポンスデータを送信する（ステップＳ１１０）。
【００７５】
次に、図６を参照して、「トランザクションによる更新領域の保護機能」が適用される場合のＣＰＵ６の動作の概要について説明する。
【００７６】
図６は、「トランザクションによる更新領域の保護機能」が適用される場合のＣＰＵ６の動作の概要を示すフローチャートである。
【００７７】
上述したように、「トランザクションによる更新領域の保護機能」は、トランザクションにより実現されており、このトランザクションは例えば、上記アプリケーションの機能として提供されている。
【００７８】
この「トランザクションによる更新領域の保護機能」について説明すると、あるコマンド処理の中で、不揮発性メモリに対して、３回の連続した書き込み（書き込み１、書き込み２、書き込み３）が行われる場合を考える。そして、書き込み１及び書き込み２が、連続した書き込みとして定義されているとする。
【００７９】
この場合、「トランザクションによる更新領域の保護機能」として連続した書き込みの保障がなされる。具体的に、書き込み１及び書き込み２は、連続した書き込みの保障として、書き込み１と書き込み２の両方を更新する前の更新領域の状態、又は、書き込み１と書き込み２の両方を更新した後の更新領域の状態何れかの状態が保障される。
【００８０】
具体的には、書き込み２の途中で引き抜き等の瞬断が発生した場合、書き込み１を実施する前の書き込み１と書き込み２の更新領域の状態へ戻るようになっている。一方、書き込み３は、予め定められた書き込みとして定義されていないため、連続した書き込みの保障に含まれない。従って、書き込み３の途中に引き抜き等の瞬断が発生しても、書き込み３が書き込まれる前の状態に戻るだけである。
【００８１】
ここで、図６のフローチャートを説明する。
【００８２】
図６に示すフローチャートでは、書き込み１及び書き込み２が連続した書き込みとして定義されているものとする。この連続した書き込みとは、例えば、会員登録において氏名と会員番号に関連性を持たせてカードＯＳに登録させる場合が想定できる。会員登録における氏名と会員番号の登録は、関連した処理であると想定でき、これらの登録を統括して管理するために、連続した書き込みとして定義するのである。
【００８３】
図６で示すフローチャートの説明として、まず、カードＯＳが、例えばインターフェースを介して、コマンドを受信すると（ステップＳ２０１）、カードＯＳは、受信したコマンドをどのアプリケーションへ渡すか決定する。そして、カードＯＳは、受信したコマンドを、決定されたアプリケーションへ渡す（ステップＳ２０２）。アプリケーションは、コマンドを取得すると（ステップＳ２０３）、コマンドを処理（例えば、コマンド解釈等）する（ステップＳ２０４）。
【００８４】
そして、アプリケーションは、取得したコマンドが連続した書き込みとして定義された書き込み命令であると判断した場合には、カードＯＳへ、"Begin transaction"と称されるトランザクション機能を開始させる指示を与える（ステップＳ２０５）。
【００８５】
このトランザクション機能とは、上述した「トランザクションによる更新領域の保護機能」のことをいい、カードＯＳへ、上述した連続した書き込みの保障させるものである。以下、カードＯＳによって連続した書き込みの保障が開始された状態を、「transaction開始」と称する。
【００８６】
カードＯＳによる「transaction開始」の状態では（ステップＳ２０６）、記憶領域のうち、連続した書き込みとしての書き込み１（ステップＳ２０７）及び書き込み２（ステップＳ２０９）が書き込まれる領域（更新領域）のデータがバックアップ（予め他の領域にコピー）される。そして、トランザクション機能が終了した状態である「Commit transaction」の状態にある場合には（ステップＳ２１１）、カードＯＳは、トランザクション機能を停止する（ステップＳ２１２）。
【００８７】
このステップＳ２０５〜ステップＳ２１２のアプリケーション及びカードＯＳの処理の一例としては、書き込み１（ステップＳ２０７）及び書き込み２（ステップＳ２０９）が行われる間に、引き抜き等の瞬断が発生すると、「transaction開始」の前の状態、又は、トランザクション機能が終了した状態である「Commit transaction」の状態にある場合にはトランザクション機能が終了した状態の何れかの状態となる（ステップＳ２０８及びステップＳ２０９のtransaction機能／保護機能動作。）。
【００８８】
ここで、「transaction開始」の前の状態とは、バックアップされた書き込み１及び書き込み２が書き込まれる領域のデータが読み込まれ、例えば、データ領域に書き込まれることをいう。また、「transaction開始」の前の状態とは、書き込み１及び書き込み２が書き込まれた後（即ち更新された後）に、データ領域に書き込まれたデータが維持されることをいう。
【００８９】
次に、アプリケーションは、他に受信したコマンドがあれば、コマンドを処理する（ステップＳ２１３）。ここでは、コマンドの処理Ｂとして、連続した書き込みとして定義されていない書き込み命令が実行される場合を説明する。
【００９０】
この場合、「トランザクションによる更新領域の保護機能」は働かず、通常の「カードＯＳによる非更新領域の保護機能」が働くこととなる。
【００９１】
そして、アプリケーションは、カードＯＳへ、書き込みの依頼をする（ステップＳ２１４）。カードＯＳは、この保護機能を使って、瞬断に備えた書き込みを行う（ステップＳ２１５の保護機能動作）。
【００９２】
そして、アプリケーションは、処理が終了すると、カードＯＳへレスポンスデータを通知する（ステップＳ２１６）。そして、カードＯＳは、レスポンスデータを取得すると（ステップＳ２１７）、例えば、外部装置（リーダライタ装置等）へレスポンスデータを送信する（ステップＳ２１８）。
【００９３】
このように、従来のＩＣカードでは、「カードＯＳによる非更新領域の保護機能」（記憶領域の更新領域を保護する機能）と「トランザクションによる更新領域の保護機能」（非更新領域を保護する機能）が別々に定義されていた。
【００９４】
そして、従来のＩＣカードでは、ＩＣカードがデータを更新する際に、「カードＯＳによる非更新領域の保護機能」と、「トランザクションによる更新領域の保護機能」がそれぞれ機能するようになっていた。
【００９５】
ここで、図７を参照して、「カードＯＳによる非更新領域の保護機能」と、「トランザクションによる更新領域の保護機能」がそれぞれ機能する場合のＣＰＵ６の動作の詳細について説明する。
【００９６】
図７は、ＩＣカードによって更新されるデータを概念的に示す図である。
【００９７】
図７では、不揮発性メモリ５のデータ領域が概念的に示されている。この図７では、１ｂｙｔｅを１ブロックとして２つのブロックに区切られた領域を一のページ（例えば、Ｐａｇｅ−ａ等）、として、複数のページに区画されたＩＣカードの不揮発性メモリ５のデータ領域が示されている。図７では、複数のページの一例として、Ｐａｇｅ−ａからＰａｇｅ−ｅが示されている。
【００９８】
そして、この不揮発性メモリ５に対する更新として、Ａ）書き込み１、Ｂ）書き込み２、及び、Ｃ）書き込み３、が行われる場合を説明する。
【００９９】
これらの書き込みは、不揮発性メモリ５の指定されたページ（Ｐａｇｅ−ａ等）の指定された領域（１ブロック目か２ブロック目等）に記憶されるデータを更新するものである。また、書き込み１及び書き込み２は、上述した連続した書き込みとして定義されているものとする。
【０１００】
具体的には、書き込み１はＰａｇｅ−ａの２ブロック目からＰａｇｅ−ｂの１ブロック目までの２ページにわたる２ｂｙｔｅの領域の書き込み（図７の１１及び１２参照）を、書き込み２はＰａｇｅ−ｃ全体に対して２ｂｙｔｅの領域の書き込み（図７の２１及び２２参照）を、書き込み３はＰａｇｅ−ｄの２ブロック目からＰａｇｅ−ｅ全体に対して２ページにわたる３ｂｙｔｅの領域の書き込み（図７の３１、３２、及び３３参照）を、それぞれ実施させるものとする。
【０１０１】
Ａ）書き込み１について
Ａ−１）「トランザクションによる更新領域の保護機能」について
書き込み１及び書き込み２は、連続した書き込みとして定義されているため、上述した「トランザクションによる更新領域の保護機能」が働く。この場合、アプリケーションは、書き込み１を実施する前の書き込み１と書き込み２の更新領域の状態を取り得ることを可能とするため、書き込み１が実施される前のＰａｇｅ−ａの２ブロック目からＰａｇｅ−ｂの１ブロック目までに記憶されたデータをバックアップさせる。
【０１０２】
具体的には、例えば、アプリケーションは、書き込み１が実施される前のＰａｇｅ−ａの２ブロック目からＰａｇｅ−ｂの１ブロック目までに記憶されたデータ（図７の１１及び１２参照）をＲＡＭ４に一時的に記憶し、その後バックアップ領域へ当該データを、カードＯＳに書き込ませる。
【０１０３】
Ａ−２）「カードＯＳによる非更新領域の保護機能」について
次に、「カードＯＳによる非更新領域の保護機能」が働く。具体的には、カードＯＳは、以下のａ）〜ｊ）の動作を実施する。
【０１０４】
ａ）まず、カードＯＳは、Ｐａｇｅ−ａにおける非更新領域のデータを保護するため、Ｐａｇｅ−ａに記憶されるデータを、ページ単位でＲＡＭ４へ書き込む。説明の便宜上、このＲＡＭ４に書き込まれたデータを、Ｐａｇｅ−ａＲとする。
【０１０５】
ｂ）次に、カードＯＳは、Ｐａｇｅ−ａＲをバックアップする。具体的には、カードＯＳは、不揮発性メモリ５に設定されたバックアップ領域へＰａｇｅ−ａＲを書き込む。
【０１０６】
ｃ）次に、カードＯＳは、Ｐａｇｅ−ａＲの２ブロック目に、書き込み１で書き込まれるべきデータを書き込む（図７の１１のデータを更新する）。すなわち、カードＯＳは、ＲＡＭ４に記憶されたＰａｇｅ−ａＲを更新する。
【０１０７】
ｄ）次に、カードＯＳは、更新されたＰａｇｅ−ａＲを、不揮発性メモリ５のＰａｇｅ−ａへ書き込む。すなわち、カードＯＳは、不揮発性メモリ５に記憶されたＰａｇｅ−ａを更新する。
【０１０８】
ｅ）次に、カードＯＳは、バックアップ領域に書き込まれたＰａｇｅ−ａＲを消去する。
【０１０９】
ｆ）次に、カードＯＳは、Ｐａｇｅ−ｂにおける非更新領域のデータを保護するため、Ｐａｇｅ−ｂに記憶されるデータを、ページ単位でＲＡＭ４へ書き込む。説明の便宜上、このＲＡＭ４に書き込まれたデータを、Ｐａｇｅ−ｂＲとする。
【０１１０】
ｇ）次に、カードＯＳは、Ｐａｇｅ−ｂＲをバックアップする。具体的には、カードＯＳは、バックアップ領域へＰａｇｅ−ｂＲを書き込む。
【０１１１】
ｈ）次に、カードＯＳは、Ｐａｇｅ−ｂＲの１ブロック目に、書き込み１で書き込まれるべきデータを書き込む（図７の１２のデータを更新する）。すなわち、カードＯＳは、ＲＡＭ４に記憶されたＰａｇｅ−ｂＲを更新する。
【０１１２】
ｉ）次に、カードＯＳは、更新されたＰａｇｅ−ｂＲを、不揮発性メモリ５のＰａｇｅ−ｂへ書き込む。すなわち、カードＯＳは、不揮発性メモリ５に記憶されたＰａｇｅ−ｂを更新する。
【０１１３】
ｊ）次に、カードＯＳは、バックアップ領域に書き込まれたＰａｇｅ−ｂＲを消去する。
【０１１４】
以上で、書き込み１が実施されたこととなる。
【０１１５】
Ｂ）書き込み２について
Ｂ−１）「トランザクションによる更新領域の保護機能」について
書き込み２も同様に、連続した書き込みとして定義されているため、上述した「トランザクションによる更新領域の保護機能」が働く。この場合、アプリケーションは、書き込み１を実施する前の書き込み１と書き込み２の更新領域の状態を取り得ることを可能とするため、書き込み２が実施される前のＰａｇｅ−ｃの全てに記憶されたデータをバックアップさせる。
【０１１６】
具体的には、例えば、アプリケーションは、書き込み１が実施される前のＰａｇｅ−ｃに記憶されたデータ（図７の２１及び２２のデータ）をＲＡＭ４に一時的に記憶し、バックアップ領域へ当該データを、カードＯＳに書き込ませる。
【０１１７】
Ｂ−２）「カードＯＳによる非更新領域の保護機能」について
書き込み２ではＰａｇｅ−ｃに記憶される全てのデータが更新対象であるため、Ｐａｇｅ−ｃには非更新領域が存在しない。従って、「カードＯＳによる非更新領域の保護機能」は働かないこととなる。この場合、カードＯＳは、以下のａ）〜ｃ）の動作を実施する。
【０１１８】
ａ）まず、カードＯＳは、Ｐａｇｅ−ｃに記憶されるデータを、ページ単位でＲＡＭ４へ書き込む。説明の便宜上、このＲＡＭ４に書き込まれたデータを、Ｐａｇｅ−ｃＲとする。ここでは、例えば、Ａ−２）「カードＯＳによる非更新領域の保護機能」でＰａｇｅ−ａＲ及びＰａｇｅ−ｂＲがバックアップされたのとは異なり、Ｐａｇｅ−ｃＲはバックアップされないこととなる。
【０１１９】
ｂ）次に、カードＯＳは、Ｐａｇｅ−ｃＲに、書き込み２で書き込まれるべきデータを書き込む（図７の２１及び２２のデータを更新する）。すなわち、カードＯＳは、ＲＡＭ４に記憶されたＰａｇｅ−ｃＲを更新する。
【０１２０】
ｃ）次に、カードＯＳは、更新されたＰａｇｅ−ｃＲを、不揮発性メモリ５のＰａｇｅ−ｃへ書き込む。すなわち、カードＯＳは、不揮発性メモリ５に記憶されたＰａｇｅ−ｃを更新する。
【０１２１】
以上で、書き込み２が実施されたこととなる。
【０１２２】
そして、書き込み２が実施されたことで、「トランザクションによる更新領域の保護機能」は終了する。従って、カードＯＳは、バックアップ領域に記憶された書き込み１が実施される前のＰａｇｅ−ａからＰａｇｅ−ｃに記憶された更新領域のデータ（図７の１１、１２、２１、及び２２）を消去する。
【０１２３】
Ｃ）書き込み３について
Ｃ−１）「トランザクションによる更新領域の保護機能」について
書き込み３では、連続した書き込みとして定義されていないため、上述した「トランザクションによる更新領域の保護機能」は働かず、「カードＯＳによる非更新領域の保護機能」のみが働くこととなる。
【０１２４】
Ｃ−２）「カードＯＳによる非更新領域の保護機能」について
具体的に、カードＯＳは、以下のａ）〜ｈ）の動作を実施する。
【０１２５】
ａ）まず、カードＯＳは、Ｐａｇｅ−ｄにおける非更新領域のデータを保護するため、Ｐａｇｅ−ｄに記憶されるデータを、ページ単位でＲＡＭ４へ書き込む。説明の便宜上、このＲＡＭ４に書き込まれたデータを、Ｐａｇｅ−ｄＲとする。
【０１２６】
ｂ）次に、カードＯＳは、Ｐａｇｅ−ｄＲをバックアップする。具体的には、カードＯＳは、不揮発性メモリ５に設定されたバックアップ領域へＰａｇｅ−ｄＲを書き込む。
【０１２７】
ｃ）次に、カードＯＳは、Ｐａｇｅ−ｄＲの２ブロック目に、書き込み２で書き込まれるべきデータを書き込む（図７の２１及び２２のデータを更新する）。すなわち、カードＯＳは、ＲＡＭ４に記憶されたＰａｇｅ−ｄＲを更新する。
【０１２８】
ｄ）次に、カードＯＳは、更新されたＰａｇｅ−ｄＲを、不揮発性メモリ５のＰａｇｅ−ｄへ書き込む。すなわち、カードＯＳは、不揮発性メモリ５に記憶されたＰａｇｅ−ｄを更新する。
【０１２９】
ｅ）次に、カードＯＳは、バックアップ領域に書き込まれたＰａｇｅ−ｄＲを消去する。
【０１３０】
また、書き込み３のうちＰａｇｅ−ｅに記憶されるデータを更新する場合には、Ｐａｇｅ−ｅに記憶される全てのデータが更新対象であるため、Ｐａｇｅ−ｅには非更新領域が存在しない。従って、「カードＯＳによる非更新領域の保護機能」は働かないこととなる。この場合、カードＯＳは、以下のｆ）〜ｈ）の動作を実施する。
【０１３１】
ｆ）まず、カードＯＳは、Ｐａｇｅ−ｅに記憶されるデータを、ページ単位でＲＡＭ４へ書き込む。説明の便宜上、このＲＡＭ４に書き込まれたデータを、Ｐａｇｅ−ｅＲとする。
【０１３２】
ｂ）次に、カードＯＳは、Ｐａｇｅ−ｅＲに、書き込み３で書き込まれるべきデータを書き込む。すなわち、カードＯＳは、ＲＡＭ４に記憶されたＰａｇｅ−ｅＲを更新する。
【０１３３】
ここでは、Ｐａｇｅ−ｅＲはバックアップされないこととなる。
【０１３４】
ｃ）次に、カードＯＳは、更新されたＰａｇｅ−ｅＲを、不揮発性メモリ５のＰａｇｅ−ｅへ書き込む。すなわち、カードＯＳは、不揮発性メモリ５に記憶されたＰａｇｅ−ｅを更新する。
【０１３５】
以上で、書き込み３が実施されたこととなる。
【０１３６】
また、不揮発性メモリ５のページあたりに記憶されるデータの容量が、１２８ｂｙｔｅ、又は２５６ｂｙｔｅと大容量である場合がある。このページあたりに記憶されるデータの容量の増加に伴い、同一ページ内に対する更新が連続したり、複数のページに跨る更新が発生するケースが増加する。
【０１３７】
ここで、図８を参照して、ページあたりに記憶されるデータの容量が大容量である場合に、「カードＯＳによる非更新領域の保護機能」と、「トランザクションによる更新領域の保護機能」がそれぞれ機能する場合のＣＰＵ６の動作の詳細について説明する。
【０１３８】
図８は、ページあたりに記憶されるデータの容量が大容量である場合に、ＩＣカードによって更新されるデータを概念的に示す図である。
【０１３９】
図８では、不揮発性メモリ５の領域が概念的に示されている。この図８では、１ｂｙｔｅを１ブロックとして２５６のブロックに区切られた領域を一のページ（例えば、Ｐａｇｅ−ｘ等）、として、複数のページに区画されたＩＣカードの不揮発性メモリ５が示されている。図８では、複数のページの一例として、Ｐａｇｅ−ｘとＰａｇｅ−ｙが示されている。
【０１４０】
そして、この不揮発性メモリ５に対する更新として、Ａ）書き込み１、Ｂ）書き込み２、及び、Ｃ）書き込み３、が行われる場合を説明する。
【０１４１】
これらの書き込みは、不揮発性メモリ５の指定されたページ（Ｐａｇｅ−ｘ等）の指定された領域（１ブロック目か２ブロック目等）に記憶されるデータを更新するものである。また、書き込み１及び書き込み２は、上述した連続した書き込みとして定義されているものとする。
【０１４２】
具体的には、書き込み１は、Ｐａｇｅ−ｘの領域のうち連続する２ブロックに対して、２ｂｙｔｅの領域の書き込み（図８の１１及び１２参照）を、書き込み２は、Ｐａｇｅ−ｘの２５６ブロック目からＰａｇｅ−ｙの１ブロック目までの２ページにわたる２ｂｙｔｅの領域の書き込み（図８の２１及び２２参照）を、書き込み３は、Ｐａｇｅ−ｙの領域のうち連続する３ブロックに対して、３ｂｙｔｅの領域の書き込み（図８の３１、３２、及び３３参照）を、それぞれ実施させるものとする。
【０１４３】
Ａ）書き込み１について
Ａ−１）「トランザクションによる更新領域の保護機能」について
書き込み１及び書き込み２は、連続した書き込みとして定義されているため、上述した「トランザクションによる更新領域の保護機能」が働く。この場合、アプリケーションは、書き込み１を実施する前の書き込み１と書き込み２の更新領域の状態を取り得ることを可能とするため、書き込み１が実施される前のデータであるＰａｇｅ−ｘの領域のうち連続する２ブロックに記憶されたデータ（図８の１１及び１２参照）をバックアップする。
【０１４４】
具体的には、例えば、アプリケーションは、書き込み１が実施される前のＰａｇｅ−ｘの領域のうち連続する２ブロックに記憶されたデータをＲＡＭ４に一時的に記憶し、バックアップ領域へ当該データを、カードＯＳに書き込ませる。
【０１４５】
Ａ−２）「カードＯＳによる非更新領域の保護機能」について
次に、「カードＯＳによる非更新領域の保護機能」が働く。具体的には、カードＯＳは、以下のａ）〜ｊ）の動作を実施する。
【０１４６】
ａ）まず、カードＯＳは、Ｐａｇｅ−ｘにおける非更新領域のデータを保護するため、Ｐａｇｅ−ｘに記憶されるデータを、ページ単位でＲＡＭ４へ書き込む。説明の便宜上、このＲＡＭ４に書き込まれたデータを、Ｐａｇｅ−ｘＲとする。
【０１４７】
ｂ）次に、カードＯＳは、Ｐａｇｅ−ｘＲをバックアップする。具体的には、カードＯＳは、不揮発性メモリ５に設定されたバックアップ領域へＰａｇｅ−ｘＲを書き込む。
【０１４８】
ｃ）次に、カードＯＳは、Ｐａｇｅ−ｘＲの領域のうち連続する２ブロックに、書き込み１で書き込まれるべきデータを書き込む（図８の１１及び１２のデータを更新する）。すなわち、カードＯＳは、ＲＡＭ４に記憶されたＰａｇｅ−ｘＲを更新する。
【０１４９】
ｄ）次に、カードＯＳは、更新されたＰａｇｅ−ｘＲを、不揮発性メモリ５のＰａｇｅ−ｘへ書き込む。すなわち、カードＯＳは、不揮発性メモリ５に記憶されたＰａｇｅ−ｘを更新する。
【０１５０】
ｅ）次に、カードＯＳは、バックアップ領域に書き込まれたＰａｇｅ−ｘＲを消去する。
【０１５１】
以上で、書き込み１が実施されたこととなる。
【０１５２】
Ｂ）書き込み２について
Ｂ−１）「トランザクションによる更新領域の保護機能」について
書き込み２も同様に、連続した書き込みとして定義されているため、上述した「トランザクションによる更新領域の保護機能」が働く。従って、アプリケーションは、書き込み１が実施される前のＰａｇｅ−ｘの２５６ブロック目からＰａｇｅ−ｙの１ブロック目までに記憶されたデータ（図８の２１及び２２のデータを更新する）を、ＲＡＭ４に一時的に記憶し、その後不揮発性メモリ５に設定されたバックアップ領域へ当該データを書き込む。
【０１５３】
Ｂ−２）「カードＯＳによる非更新領域の保護機能」について
次に、「カードＯＳによる非更新領域の保護機能」が働く。具体的には、カードＯＳは、以下のａ）〜ｊ）の動作を実施する。
【０１５４】
ａ）まず、カードＯＳは、Ｐａｇｅ−ｘにおける非更新領域のデータを保護するため、Ｐａｇｅ−ｘに記憶されるデータを、ページ単位でＲＡＭ４へ書き込む。説明の便宜上、このＲＡＭ４に書き込まれたデータを、Ｐａｇｅ−ｘＲとする。
【０１５５】
ｂ）次に、カードＯＳは、Ｐａｇｅ−ｘＲをバックアップする。具体的には、カードＯＳは、不揮発性メモリ５に設定されたバックアップ領域へＰａｇｅ−ｘＲを書き込む。
【０１５６】
ｃ）次に、カードＯＳは、Ｐａｇｅ−ｘＲの２５６ブロック目に、書き込み２で書き込まれるべきデータを書き込む（図８の２１のデータを更新する）。すなわち、カードＯＳは、ＲＡＭ４に記憶されたＰａｇｅ−ｘＲを更新する。
【０１５７】
ｄ）次に、カードＯＳは、更新されたＰａｇｅ−ｘＲを、不揮発性メモリ５のＰａｇｅ−ｘへ書き込む。すなわち、カードＯＳは、不揮発性メモリ５に記憶されたＰａｇｅ−ｘを更新する。
【０１５８】
ｅ）次に、カードＯＳは、バックアップ領域に書き込まれたＰａｇｅ−ｘＲを消去する。
【０１５９】
ｆ）次に、カードＯＳは、Ｐａｇｅ−ｙにおける非更新領域のデータを保護するため、Ｐａｇｅ−ｂに記憶されるデータを、ページ単位でＲＡＭ４へ書き込む。説明の便宜上、このＲＡＭ４に書き込まれたデータを、Ｐａｇｅ−ｙＲとする。
【０１６０】
ｇ）次に、カードＯＳは、Ｐａｇｅ−ｙＲをバックアップする。具体的には、カードＯＳは、バックアップ領域へＰａｇｅ−ｙＲを書き込む。
【０１６１】
ｈ）次に、カードＯＳは、Ｐａｇｅ−ｙＲの１ブロック目に、書き込み２で書き込まれるべきデータを書き込む（図８の２２のデータを更新する）。すなわち、カードＯＳは、ＲＡＭ４に記憶されたＰａｇｅ−ｙＲを更新する。
【０１６２】
ｉ）次に、カードＯＳは、更新されたＰａｇｅ−ｙＲを、不揮発性メモリ５のＰａｇｅ−ｙへ書き込む。すなわち、カードＯＳは、不揮発性メモリ５に記憶されたＰａｇｅ−ｙを更新する。
【０１６３】
以上で、書き込み２が実施されたこととなる。
【０１６４】
そして、書き込み２が実施されたことで、「トランザクションによる更新領域の保護機能」は終了する。従って、カードＯＳは、バックアップ領域に記憶された書き込み１が実施される前のＰａｇｅ−ｘからＰａｇｅ−ｙに記憶された更新領域のデータ（図８の１１、１２、２１、及び２２）を消去する。
【０１６５】
Ｃ）書き込み３について
Ｃ−１）「トランザクションによる更新領域の保護機能」について
書き込み３は、連続した書き込みとして定義されていないため、上述した「トランザクションによる更新領域の保護機能」は働かず、「カードＯＳによる非更新領域の保護機能」のみが働くこととなる。
【０１６６】
Ｃ−２）「カードＯＳによる非更新領域の保護機能」について
具体的に、カードＯＳは、以下のａ）〜ｅ）の動作を実施する。
【０１６７】
ａ）まず、カードＯＳは、Ｐａｇｅ−ｙにおける非更新領域のデータを保護するため、Ｐａｇｅ−ｙに記憶されるデータを、ページ単位でＲＡＭ４へ書き込む。説明の便宜上、このＲＡＭ４に書き込まれたデータを、Ｐａｇｅ−ｙＲとする。
【０１６８】
ｂ）次に、カードＯＳは、Ｐａｇｅ−ｙＲをバックアップする。具体的には、カードＯＳは、不揮発性メモリ５に設定されたバックアップ領域へＰａｇｅ−ｙＲを書き込む。
【０１６９】
ｃ）次に、カードＯＳは、Ｐａｇｅ−ｙＲの２ブロック目に、書き込み３で書き込まれるべきデータ（図８の３１、３２、及び３３）を書き込む。すなわち、カードＯＳは、ＲＡＭ４に記憶されたＰａｇｅ−ｙＲを更新する。
【０１７０】
ｄ）次に、カードＯＳは、更新されたＰａｇｅ−ｙＲを、不揮発性メモリ５のＰａｇｅ−ｙへ書き込む。すなわち、カードＯＳは、不揮発性メモリ５に記憶されたＰａｇｅ−ｙを更新する。
【０１７１】
ｅ）次に、カードＯＳは、バックアップ領域に書き込まれたＰａｇｅ−ｙＲを消去する。
【０１７２】
以上で、書き込み３が実施されたこととなる。
【０１７３】
［３．「カードＯＳによる非更新領域の保護機能」と、「トランザクションによる更新領域の保護機能」の統合について］
上述したように、「カードＯＳによる非更新領域の保護機能」及び「トランザクションによる更新領域の保護機能」では、更新毎（例えば、上記書き込み１、又は上記書き込み２毎）に、当該更新の対象となるデータが属するページの非更新領域及び更新領域のデータがバックアップされる。従って、同一のページに記憶されたデータに対して連続する個別の更新が行われる場合には、同一のページのバックアップが重複して行われることとなる。また、隣り合うページに記憶されたデータに対して一の更新（例えば、上記書き込み１のみ）が行われる場合には、２ページ分の非更新領域及び更新領域のデータがバックアップされることとなる。不揮発性メモリのページあたりに記憶されるデータの容量が、１２８ｂｙｔｅ、又は２５６ｂｙｔｅと大容量である場合には、ＲＡＭ４や不揮発性メモリ５への書き込み、バックアップ、消去等のページ操作が非常に重い処理になってくる（ＣＰＵ６等の処理負担の増加を招く）。
【０１７４】
そこで、本実施形態においては、「カードＯＳによる非更新領域の保護機能」と「トランザクションによる更新領域の保護機能」が働くＩＣカード８において、「カードＯＳによる非更新領域の保護機能」と「トランザクションによる更新領域の保護機能」と、を統合させるようにした。
【０１７５】
上述したように、「カードＯＳによる非更新領域の保護機能」では、ページにおいて非更新領域が存在しない場合（ページ全てのデータを更新する場合）には、「カードＯＳによる非更新領域の保護機能」は働かない。また、「トランザクションによる更新領域の保護機能」では、バックアップされるデータは、ページにおいて更新領域のデータのみである。
【０１７６】
そこで、上記の点に着目し、アプリケーションが、更新の対象となるページにおいて、当該ページに記憶されるデータ全てを更新するものとしてカードＯＳへ通知して、「カードＯＳによる非更新領域の保護機能」を機能させないようにする。そして、アプリケーションが、更新の対象となるページに記憶されるデータ全て（ページ全て）を、バックアップするようにした。
【０１７７】
具体的には、本発明のＩＣチップ用処理プログラムの制御によって、第２の保護手段としてのＣＰＵ６は、上記トランザクションの実行中に、更新前の更新領域及び非更新領域が属するページの全ての領域を更新領域として、当該ページに記憶される全てのデータを不揮発性メモリ５に書き込み（記憶し）、当該ページに非更新領域が存在しないものとしてカードＯＳに通知して、「カードＯＳによる非更新領域の保護機能」を機能させないようになっている。以下、この動作を、「transaction機能／保護機能付き書き込み」と称する。
【０１７８】
これによって、一のバックアップ処理のみが行われるため、データの保護機能による処理時間の短縮を図ることができる。
【０１７９】
ここで、図８を参照して、「transaction機能／保護機能付き書き込み」が適用された場合のＣＰＵ６の動作の詳細について説明する。
【０１８０】
なお、ここでは、上述した本発明のＩＣチップ用処理プログラムが備える機能が実行される場合の動作主体をＣＰＵ６として説明する。
【０１８１】
また、ここで説明する例では、図８で定義される不揮発性メモリ５に対する更新として、Ａ）書き込み１、Ｂ）書き込み２、及び、Ｃ）書き込み３、が行われるものとし、これらの書き込み条件（例えば、上述した連続した書き込みとして定義されていること等）は、図８で定義された条件と同一の条件を適用するものとする。
【０１８２】
Ａ）書き込み１について
「transaction機能／保護機能付き書き込み」が働く。具体的には、ＣＰＵ６は、以下のａ）〜ｄ）の動作を実施する。
【０１８３】
ａ）まず、ＣＰＵ６は、Ｐａｇｅ−ｘに記憶される全てのデータを保護するため、Ｐａｇｅ−ｘに記憶されるデータを、ページ単位でＲＡＭ４へ書き込む。説明の便宜上、このＲＡＭ４に書き込まれたデータを、Ｐａｇｅ−ｘＲとする。
【０１８４】
この場合、ＣＰＵ６は、書き込み１で更新の対象となるＰａｇｅ−ｘに記憶される全てのデータをＲＡＭ４へ書き込み、その後、不揮発性メモリ５へ書き込むことで、Ｐａｇｅ−ｘに記憶される全てのデータを更新の対象とし、非更新領域が存在しないものとしてカードＯＳへ通知する。
【０１８５】
この通知を受けたカードＯＳは、「カードＯＳによる非更新領域の保護機能」を機能させないようになっている。
【０１８６】
ｂ）次に、ＣＰＵ６は、Ｐａｇｅ−ｘＲをバックアップする。具体的には、ＣＰＵ６は、不揮発性メモリ５に設定されたバックアップ領域へＰａｇｅ−ｘＲを書き込む。
【０１８７】
ｃ）次に、ＣＰＵ６は、Ｐａｇｅ−ｘＲの領域のうち連続する２ブロックに、書き込み１で書き込まれるべきデータを書き込む（図８の１１及び１２のデータを更新する）。すなわち、ＣＰＵ６は、ＲＡＭ４に記憶されたＰａｇｅ−ｘＲを更新する。
【０１８８】
ｄ）次に、ＣＰＵ６は、更新されたＰａｇｅ−ｘＲを、不揮発性メモリ５のＰａｇｅ−ｘへ書き込む。すなわち、ＣＰＵ６は、不揮発性メモリ５に記憶されたＰａｇｅ−ｘを更新する。
【０１８９】
以上で、書き込み１が実施されたこととなる。
【０１９０】
Ｂ）書き込み２について
「transaction機能／保護機能付き書き込み」が働く。具体的には、ＣＰＵ６は、以下のａ）〜ｈ）の動作を実施する。
【０１９１】
ａ）まず、ＣＰＵ６は、Ｐａｇｅ−ｘに記憶される全てのデータを保護するため、Ｐａｇｅ−ｘに記憶されるデータを、ページ単位でＲＡＭ４へ書き込む。
【０１９２】
なお、ここで書き込まれたＰａｇｅ−ｘに記憶されるデータは、上述した書き込み１で更新されたもの（図８の１１及び１２が更新されたもの）である。従って、上述したＡ）書き込み１についてａ）で、ＲＡＭ４に書き込まれたＰａｇｅ−ｘとは異なるデータである。以後、説明の便宜上、Ｂ）書き込み２についてａ）でＰａｇｅ−ｘに記憶される全てのデータをＰａｇｅ−ｘ´と、ＲＡＭ４に書き込まれるデータを、Ｐａｇｅ−ｘ´Ｒとする。
【０１９３】
ｂ）次に、ＣＰＵ６は、Ｐａｇｅ−ｘ´Ｒをバックアップする。具体的には、ＣＰＵ６は、不揮発性メモリ５に設定されたバックアップ領域へＰａｇｅ−ｘ´Ｒを書き込む。
【０１９４】
ｃ）次に、ＣＰＵ６は、Ｐａｇｅ−ｘ´Ｒの２５６ブロック目に、書き込み２で書き込まれるべきデータを書き込む（図８の２１のデータを更新する）。すなわち、カードＯＳは、ＲＡＭ４に記憶されたＰａｇｅ−ｘ´Ｒを更新する。
【０１９５】
ｄ）次に、カードＯＳは、更新されたＰａｇｅ−ｘ´Ｒを、不揮発性メモリ５のＰａｇｅ−ｘ´へ書き込む。すなわち、カードＯＳは、不揮発性メモリ５に記憶されたＰａｇｅ−ａを更新する。
【０１９６】
ｅ）次に、ＣＰＵ６は、Ｐａｇｅ−ｙにおける非更新領域のデータを保護するため、Ｐａｇｅ−ｂに記憶されるデータを、ページ単位でＲＡＭ４へ書き込む。説明の便宜上、このＲＡＭ４に書き込まれたデータを、Ｐａｇｅ−ｙＲとする。
【０１９７】
ｆ）次に、ＣＰＵ６は、Ｐａｇｅ−ｙＲをバックアップする。具体的には、ＣＰＵ６は、バックアップ領域へＰａｇｅ−ｙＲを書き込む。
【０１９８】
ｇ）次に、ＣＰＵ６は、Ｐａｇｅ−ｙＲの１ブロック目に、書き込み２で書き込まれるべきデータを書き込む（図８の２２のデータを更新する）。すなわち、ＣＰＵ６は、ＲＡＭ４に記憶されたＰａｇｅ−ｙＲを更新する。
【０１９９】
ｈ）次に、ＣＰＵ６は、更新されたＰａｇｅ−ｙＲを、不揮発性メモリ５のＰａｇｅ−ｙへ書き込む。すなわち、ＣＰＵ６は、不揮発性メモリ５に記憶されたＰａｇｅ−ｙを更新する。
【０２００】
以上で、書き込み２が実施されたこととなる。
【０２０１】
そして、書き込み２が実施されたことで、「トランザクションによる更新領域の保護機能」は終了する。
【０２０２】
そこで、ＣＰＵ６は、バックアップ領域に記憶された書き込み１が実施される前のＰａｇｅ−ｘに記憶された全てのデータであるＰａｇｅ−ｘＲ、書き込み２が実施される前のＰａｇｅ−ｘ´に記憶された全てのデータであるＰａｇｅ−ｘ´Ｒ、書き込み２が実施される前のＰａｇｅ−ｙに記憶された全てのデータであるＰａｇｅ−ｙＲをそれぞれ消去する。
【０２０３】
Ｃ）書き込み３について
「transaction機能／保護機能付き書き込み」が働く。具体的には、ＣＰＵ６は、以下のａ）〜ｅ）の動作を実施する。
【０２０４】
ａ）まず、ＣＰＵ６は、Ｐａｇｅ−ｙに記憶される全てのデータを保護するため、Ｐａｇｅ−ｙに記憶されるデータを、ページ単位でＲＡＭ４へ書き込む。説明の便宜上、このＲＡＭ４に書き込まれたデータを、Ｐａｇｅ−ｙＲとする。
【０２０５】
ｂ）次に、ＣＰＵ６は、Ｐａｇｅ−ｙＲをバックアップする。具体的には、ＣＰＵ６は、不揮発性メモリ５に設定されたバックアップ領域へＰａｇｅ−ｙＲを書き込む。
【０２０６】
ｃ）次に、ＣＰＵ６は、Ｐａｇｅ−ｙＲの２ブロック目に、書き込み３で書き込まれるべきデータ（図８の３１、３２、及び３３）を書き込む。すなわち、ＣＰＵ６は、ＲＡＭ４に記憶されたＰａｇｅ−ｙＲを更新する。
【０２０７】
ｄ）次に、ＣＰＵ６は、更新されたＰａｇｅ−ｙＲを、不揮発性メモリ５のＰａｇｅ−ｙへ書き込む。すなわち、ＣＰＵ６は、不揮発性メモリ５に記憶されたＰａｇｅ−ｙを更新する。
【０２０８】
ｅ）次に、ＣＰＵ６は、バックアップ領域に書き込まれたＰａｇｅ−ｙＲを消去する。
【０２０９】
以上で、書き込み３が実施されたこととなる。
【０２１０】
なお、上述した「transaction機能／保護機能付き書き込み」は、連続した書き込みとして定義された書き込みの間（即ち、上記トランザクションが実行されている間）、働かせるようにしてもよい。
【０２１１】
この場合、ＣＰＵ６は、トランザクションの実行状態、即ち、連続した書き込みとして定義された書き込みが行われているか否かを監視する。
【０２１２】
そして、ＣＰＵ６は、連続した書き込みとして定義された書き込みが行われている間、「transaction機能／保護機能付き書き込み」を働かせるようになっている。
【０２１３】
なお、上述した例では、「transaction機能／保護機能付き書き込み」は、ＩＣチップ用処理プログラムの制御によりＣＰＵ６が実行することとして説明したが、これに限られず、例えば、「transaction機能／保護機能付き書き込み」は、「トランザクションによる更新領域の保護機能」をＣＰＵ６に実行させるアプリケーションによって実行させるようにしてもよい。
【０２１４】
次に、図８及び図９を参照して、「バックアップ検索機能」について説明する。
【０２１５】
この「バックアップ検索機能」とは、これから更新されるページと同一のページのバックアップデータが既に書き込まれているか否かを検索し、既に書き込まれている場合には、これから更新されるページのバックアップデータを書き込まない構成を追加した点である。以下、この構成を「バックアップ検索機能」と称する。
【０２１６】
まず、図９を参照して、「バックアップ検索機能」が適用されない場合のバックアップ領域に書き込まれるデータについて説明する。
【０２１７】
図９は、「バックアップ検索機能」が適用されない場合のバックアップ領域に書き込まれるデータ構造を概念的に示す図である。
【０２１８】
なお、既に説明した実施形態と少なくとも同様の機能を果たす部分には、同一の符号を付して、重複する説明や図面を省略する。
【０２１９】
図９に示すように、「バックアップ検索機能」が適用されない場合のバックアップ領域に書き込まれるデータは、Ｐａｇｅ−ｘのバックアップデータとしてのＰａｇｅ−ｘＲ（Ａ）書き込み１についてｂ）参照）と、Ｐａｇｅ−ｘ´（図８の１１及び１２が更新されたもの）のバックアップデータとしてのＰａｇｅ−ｘ´Ｒ（Ｂ）書き込み２についてｂ）参照）と、Ｐａｇｅ−ｙのバックアップデータとしてのＰａｇｅ−ｙＲ（Ｂ）書き込み２についてｂ）参照）の３つである。
【０２２０】
ここで、「トランザクションによる更新領域の保護機能」として保障されるのは、連続した書き込みの保証として、書き込み１と書き込み２の両方を更新する前の更新領域の状態である。
【０２２１】
そして、例えば、書き込み１で瞬断が発生した場合には、書き込み１と書き込み２の両方を更新する前の更新領域の状態として、Ｐａｇｅ−ｘＲとＰａｇｅ−ｙＲが不揮発性メモリ５に書き込まれることとなる。
【０２２２】
ここで、Ｐａｇｅ−ｘＲは、と同一のページであり、Ｐａｇｅ−ｘ´Ｒは「トランザクションによる更新領域の保護機能」を機能させる際に省略することができるバックアップデータであることに気が付く。
【０２２３】
そこで、「バックアップ検索機能」が適用される場合には、ＣＰＵ６は、更新領域が属するページが、バックアップ管理領域を参照して、バックアップ領域に既に書き込まれている（記憶されている）か否かを検索し、前記更新領域が属するページが、バックアップ領域に既に書き込まれていることが検索されなかった場合には、第２の保護手段としてのＣＰＵ６は、当該更新領域が属するページに記憶される全てのデータを、バックアップ領域に記憶するようになっている。
【０２２４】
ここで、図８及び図９を参照して、「バックアップ検索機能」が適用された場合のＣＰＵ６の動作の詳細について説明する。
【０２２５】
また、ここで説明する例では、図８で定義される不揮発性メモリ５に対する更新として、Ａ）書き込み１、Ｂ）書き込み２、及び、Ｃ）書き込み３、が行われるものとし、これらの書き込み条件（例えば、上述した連続した書き込みとして定義されていること等）は、図８で定義された条件と同一の条件を適用するものとする。
【０２２６】
Ａ）書き込み１について
「transaction機能／保護機能付き書き込み」が働く。具体的には、ＣＰＵ６は、以下のａ）〜ｄ）の動作を実施する。
【０２２７】
ａ）まず、ＣＰＵ６は、Ｐａｇｅ−ｘに記憶される全てのデータを保護するため、Ｐａｇｅ−ｘに記憶されるデータを、ページ単位でＲＡＭ４へ書き込む。説明の便宜上、このＲＡＭ４に書き込まれたデータを、Ｐａｇｅ−ｘＲとする。
【０２２８】
この場合、ＣＰＵ６は、書き込み１で更新の対象となるＰａｇｅ−ｘに記憶される全てのデータをＲＡＭ４へ書き込み、その後、不揮発性メモリ５へ書き込むことで、Ｐａｇｅ−ｘに記憶される全てのデータを更新の対象とし、非更新領域が存在しないものとしてカードＯＳへ通知するのは、第１の実施形態の場合と同様である。
【０２２９】
この通知を受けたカードＯＳは、「カードＯＳによる非更新領域の保護機能」を機能させないようになっている。
【０２３０】
ｂ）次に、ＣＰＵ６は、Ｐａｇｅ−ｘＲをバックアップする。具体的には、ＣＰＵ６は、不揮発性メモリ５に設定されたバックアップ領域へＰａｇｅ−ｘＲを書き込む。
【０２３１】
ｃ）次に、ＣＰＵ６は、Ｐａｇｅ−ｘＲの領域のうち連続する２ブロックに、書き込み１で書き込まれるべきデータを書き込む（図８の１１及び１２のデータを更新する）。すなわち、ＣＰＵ６は、ＲＡＭ４に記憶されたＰａｇｅ−ｘＲを更新する。
【０２３２】
ｄ）次に、ＣＰＵ６は、更新されたＰａｇｅ−ｘＲを、不揮発性メモリ５のＰａｇｅ−ｘへ書き込む。すなわち、ＣＰＵ６は、不揮発性メモリ５に記憶されたＰａｇｅ−ｘを更新する。
【０２３３】
以上で、書き込み１が実施されたこととなる。
【０２３４】
Ｂ）書き込み２について
「transaction機能／保護機能付き書き込み」が働く。具体的には、ＣＰＵ６は、以下のａ）〜ｇ）の動作を実施する。
【０２３５】
ａ）まず、ＣＰＵ６は、Ｐａｇｅ−ｘに記憶される全てのデータを保護するため、Ｐａｇｅ−ｘに記憶されるデータを、ページ単位でＲＡＭ４へ書き込む。
【０２３６】
ここで、ＣＰＵ６は、バックアップ管理領域を参照して、更新領域が属するページとしてのＰａｇｅ−ｘがバックアップ領域に既に記憶されているか否かを検索する。
【０２３７】
ここでは、バックアップ管理領域に、Ａ）書き込み１についてｂ）において、既にＰａｇｅ−ｘのバックアップデータが記憶されていることが示されている。
【０２３８】
そこで、ＣＰＵ６は、現在のＰａｇｅ−ｘに記憶されるデータである書き込み１で更新された（図８の１１及び１２が更新された）Ｐａｇｅ−ｘ´のバックアップデータを書き込まないようになっている。
【０２３９】
ｂ）次に、ＣＰＵ６は、Ｐａｇｅ−ｘ´Ｒの２５６ブロック目に、書き込み２で書き込まれるべきデータを書き込む（図８の２１のデータを更新する）。すなわち、ＣＰＵ６は、ＲＡＭ４に記憶されたＰａｇｅ−ｘ´Ｒを更新する。
【０２４０】
ｃ）次に、カードＯＳは、更新されたＰａｇｅ−ｘ´Ｒを、不揮発性メモリ５のＰａｇｅ−ｘ´へ書き込む。すなわち、カードＯＳは、不揮発性メモリ５に記憶されたＰａｇｅ−ａを更新する。
【０２４１】
ｄ）次に、ＣＰＵ６は、Ｐａｇｅ−ｙにおける非更新領域のデータを保護するため、Ｐａｇｅ−ｂに記憶されるデータを、ページ単位でＲＡＭ４へ書き込む。説明の便宜上、このＲＡＭ４に書き込まれたデータを、Ｐａｇｅ−ｙＲとする。
【０２４２】
ｅ）次に、ＣＰＵ６は、Ｐａｇｅ−ｙＲをバックアップする。具体的には、ＣＰＵ６は、バックアップ領域へＰａｇｅ−ｙＲを書き込む。
【０２４３】
ｆ）次に、ＣＰＵ６は、Ｐａｇｅ−ｙＲの１ブロック目に、書き込み２で書き込まれるべきデータを書き込む（図８の２２のデータを更新する）。すなわち、ＣＰＵ６は、ＲＡＭ４に記憶されたＰａｇｅ−ｙＲを更新する。
【０２４４】
ｇ）次に、ＣＰＵ６は、更新されたＰａｇｅ−ｙＲを、不揮発性メモリ５のＰａｇｅ−ｙへ書き込む。すなわち、ＣＰＵ６は、不揮発性メモリ５に記憶されたＰａｇｅ−ｙを更新する。
【０２４５】
以上で、書き込み２が実施されたこととなる。
【０２４６】
そして、書き込み２が実施されたことで、「トランザクションによる更新領域の保護機能」は終了する。
【０２４７】
そこで、ＣＰＵ６は、バックアップ領域に記憶された書き込み１が実施される前のＰａｇｅ−ｘに記憶された全てのデータであるＰａｇｅ−ｘＲ、書き込み２が実施される前のＰａｇｅ−ｘ´に記憶された全てのデータであるＰａｇｅ−ｘ´Ｒ、書き込み２が実施される前のＰａｇｅ−ｙに記憶された全てのデータであるＰａｇｅ−ｙＲをそれぞれ消去する。
【０２４８】
Ｃ）書き込み３について
「transaction機能／保護機能付き書き込み」が働く。具体的には、ＣＰＵ６は、以下のａ）〜ｅ）の動作を実施する。
【０２４９】
ａ）まず、ＣＰＵ６は、Ｐａｇｅ−ｙに記憶される全てのデータを保護するため、Ｐａｇｅ−ｙに記憶されるデータを、ページ単位でＲＡＭ４へ書き込む。説明の便宜上、このＲＡＭ４に書き込まれたデータを、Ｐａｇｅ−ｙＲとする。
【０２５０】
ｂ）次に、ＣＰＵ６は、Ｐａｇｅ−ｙＲをバックアップする。具体的には、ＣＰＵ６は、不揮発性メモリ５に設定されたバックアップ領域へＰａｇｅ−ｙＲを書き込む。
【０２５１】
ｃ）次に、ＣＰＵ６は、Ｐａｇｅ−ｙＲの２ブロック目に、書き込み３で書き込まれるべきデータ（図８の３１、３２、及び３３）を書き込む。すなわち、ＣＰＵ６は、ＲＡＭ４に記憶されたＰａｇｅ−ｙＲを更新する。
【０２５２】
ｄ）次に、ＣＰＵ６は、更新されたＰａｇｅ−ｙＲを、不揮発性メモリ５のＰａｇｅ−ｙへ書き込む。すなわち、ＣＰＵ６は、不揮発性メモリ５に記憶されたＰａｇｅ−ｙを更新する。
【０２５３】
ｅ）次に、ＣＰＵ６は、バックアップ領域に書き込まれたＰａｇｅ−ｙＲを消去する。
【０２５４】
以上で、書き込み３が実施されたこととなる。
【０２５５】
［４．第１の実施形態］
上述した統合では、上記トランザクションの実行中に、「トランザクションによる更新領域の保護機能」によって、前記更新前の更新領域及び非更新領域が属するページの全ての領域を更新領域として、当該ページに記憶される全てのデータを前記記憶部に記憶させ、当該ページに非更新領域が存在しないものとしてカードＯＳに通知して、「カードＯＳによる非更新領域の保護機能」を機能させないようになっている。
【０２５６】
しかしながら、この統合は、上記トランザクションの実行中でなければ働かない。従って、連続した書き込みとして定義されない書き込み要求が、複数連続してあった場合には、当該書き込み要求毎に「カードＯＳによる非更新領域の保護機能」が働き、書き込み要求毎に、バックアップ領域に対してデータの記憶及び当該データの消去が繰り返され、更新やバックアップに要する処理時間が増加する。
【０２５７】
ここで、図１０〜図１２を参照して、上述した統合が適用された場合に、連続した書き込みとして定義されない複数の書き込み要求（更新要求）があった場合のＣＰＵ６の動作の詳細について説明する。
【０２５８】
図１０は連続した書き込みとして定義されない複数の更新要求があった場合のＣＰＵ６の動作を示すフローチャートであり、図１１は複数の更新要求を概念的に示す図であり、図１２は複数の更新要求と「カードＯＳによる保護機能」の詳細を概念的に示す図である。
【０２５９】
なお、ここでも図３と同様に、説明の便宜上、カードＯＳが備える機能が実行される場合の動作主体をカードＯＳとし、アプリケーションが備える機能が実行される場合の動作主体をアプリケーションとする。
【０２６０】
図１０に示すように、まず、カードＯＳ（ＣＰＵ６）が、例えばＩ／Ｏ回路２を介して、コマンドを受信すると（ステップＳ３０１）、カードＯＳは、受信したコマンドをどのアプリケーションへ渡すか決定する（ステップＳ３０２）。そして、カードＯＳは、受信したコマンドを、決定されたアプリケーションへ渡す。アプリケーション（ＣＰＵ６）は、コマンドを取得すると（ステップＳ３０３）、コマンドを処理して（例えば、コマンド解釈等）（ステップＳ３０４）、必要があれば不揮発性メモリ５のデータを更新する（不揮発性メモリ５へデータを書き込ませる）。
【０２６１】
ここでは、コマンドの処理Ａ（ステップＳ３０４）及びコマンドの処理Ｂ（ステップＳ３１１）において、連続した書き込みとして定義されない更新要求としての書き込み１〜書き込み５が要求されたことを解釈したものとする。
【０２６２】
この書き込み１〜書き込み５の詳細は、図１１に示すように、書き込み１は不揮発性メモリ５のＰａｇｅ−ａの所定の領域のデータを更新するものであり、書き込み２は不揮発性メモリ５のＰａｇｅ−ｂの所定の領域のデータを更新するものであり、書き込み３は不揮発性メモリ５のＰａｇｅ−ｂの所定の領域のデータを更新するものであり、書き込み４は不揮発性メモリのＰａｇｅ−ｃの所定の領域のデータを更新するものであり、書き込み５は不揮発性メモリのＰａｇｅ−ｃの所定の領域のデータを更新するものである。
【０２６３】
そして、この書き込み１〜書き込み５（ステップＳ３０５等）は、連続した書き込みとして定義されていないため、「トランザクションによる更新領域の保護機能」は働かず、通常の「カードＯＳによる非更新領域の保護機能」が働く（ステップＳ３０６の保護機能等）。
【０２６４】
ここで、図１２を参照して、Ａ）書き込み１〜Ｅ）書き込み５と「カードＯＳによる保護機能」の詳細について、図１０のフローチャートと対比して説明する。
【０２６５】
Ａ）書き込み１について（ステップＳ３０５）
Ａ−１）「トランザクションによる更新領域の保護機能」について
書き込み１は、連続した書き込みとして定義されていないため、上述した「トランザクションによる更新領域の保護機能」は働かず、「カードＯＳによる非更新領域の保護機能」のみが働くこととなる。
【０２６６】
Ａ−２）「カードＯＳによる非更新領域の保護機能」について（ステップＳ３０６）
具体的に、カードＯＳは、以下のａ）〜ｅ）の動作を実施する。
【０２６７】
ａ）まず、カードＯＳは、Ｐａｇｅ−ａにおける非更新領域のデータを保護するため、Ｐａｇｅ−ａに記憶されるデータを、ページ単位でＲＡＭ４へ書き込む。説明の便宜上、このＲＡＭ４に書き込まれたデータを、Ｐａｇｅ−ａＲとする。
【０２６８】
ｂ）次に、カードＯＳは、Ｐａｇｅ−ａＲをバックアップする。具体的には、カードＯＳは、不揮発性メモリ５に設定されたバックアップ領域へＰａｇｅ−ａＲを書き込む。
【０２６９】
ｃ）次に、カードＯＳは、Ｐａｇｅ−ａＲの所定の領域に、書き込み１で書き込まれるべきデータ（図１２の１）を書き込む。すなわち、カードＯＳは、ＲＡＭ４に記憶されたＰａｇｅ−ａＲを更新する。
【０２７０】
ｄ）次に、カードＯＳは、更新されたＰａｇｅ−ａＲを、不揮発性メモリ５のＰａｇｅ−ａへ書き込む。すなわち、カードＯＳは、不揮発性メモリ５に記憶されたＰａｇｅ−ｙを更新する。
【０２７１】
ｅ）次に、カードＯＳは、バックアップ領域に書き込まれたＰａｇｅ−ａＲを消去する。
【０２７２】
以上で、書き込み１が実施されたこととなる。
【０２７３】
Ｂ）書き込み２について（ステップＳ３０７）
Ｂ−１）「トランザクションによる更新領域の保護機能」について
書き込み１は、連続した書き込みとして定義されていないため、上述した「トランザクションによる更新領域の保護機能」は働かず、「カードＯＳによる非更新領域の保護機能」のみが働くこととなる。
【０２７４】
Ｂ−２）「カードＯＳによる非更新領域の保護機能」について（ステップＳ３０８）
具体的に、カードＯＳは、以下のａ）〜ｅ）の動作を実施する。
【０２７５】
ａ）まず、カードＯＳは、Ｐａｇｅ−ｂにおける非更新領域のデータを保護するため、Ｐａｇｅ−ｂに記憶されるデータを、ページ単位でＲＡＭ４へ書き込む。説明の便宜上、このＲＡＭ４に書き込まれたデータを、Ｐａｇｅ−ｂＲとする。
【０２７６】
ｂ）次に、カードＯＳは、Ｐａｇｅ−ｂＲをバックアップする。具体的には、カードＯＳは、不揮発性メモリ５に設定されたバックアップ領域へＰａｇｅ−ｂＲを書き込む。
【０２７７】
ｃ）次に、カードＯＳは、Ｐａｇｅ−ｂＲの所定の領域に、書き込み２で書き込まれるべきデータ（図１２の２）を書き込む。すなわち、カードＯＳは、ＲＡＭ４に記憶されたＰａｇｅ−ｂＲを更新する。
【０２７８】
ｄ）次に、カードＯＳは、更新されたＰａｇｅ−ｂＲを、不揮発性メモリ５のＰａｇｅ−ｂへ書き込む。すなわち、カードＯＳは、不揮発性メモリ５に記憶されたＰａｇｅ−ｂを更新する。
【０２７９】
ｅ）次に、カードＯＳは、バックアップ領域に書き込まれたＰａｇｅ−ｂＲを消去する。
【０２８０】
以上で、書き込み２が実施されたこととなる。
【０２８１】
Ｃ）書き込み３について（ステップＳ３０９）
Ｂ−１）「トランザクションによる更新領域の保護機能」について
書き込み１は、連続した書き込みとして定義されていないため、上述した「トランザクションによる更新領域の保護機能」は働かず、「カードＯＳによる非更新領域の保護機能」のみが働くこととなる。
【０２８２】
Ｃ−２）「カードＯＳによる非更新領域の保護機能」について（ステップＳ３１０）
具体的に、カードＯＳは、以下のａ）〜ｅ）の動作を実施する。
【０２８３】
ａ）まず、カードＯＳは、Ｐａｇｅ−ｂにおける非更新領域のデータを保護するため、Ｐａｇｅ−ｂに記憶されるデータを、ページ単位でＲＡＭ４へ書き込む。説明の便宜上、このＲＡＭ４に書き込まれたデータを、Ｐａｇｅ−ｂＲとする。
【０２８４】
ｂ）次に、カードＯＳは、Ｐａｇｅ−ｂＲをバックアップする。具体的には、カードＯＳは、不揮発性メモリ５に設定されたバックアップ領域へＰａｇｅ−ｂＲを書き込む。
【０２８５】
ｃ）次に、カードＯＳは、Ｐａｇｅ−ｂＲの所定の領域に、書き込み３で書き込まれるべきデータ（図１２の３）を書き込む。すなわち、カードＯＳは、ＲＡＭ４に記憶されたＰａｇｅ−ｂＲを更新する。
【０２８６】
ｄ）次に、カードＯＳは、更新されたＰａｇｅ−ｂＲを、不揮発性メモリ５のＰａｇｅ−ｂへ書き込む。すなわち、カードＯＳは、不揮発性メモリ５に記憶されたＰａｇｅ−ｂを更新する。
【０２８７】
ｅ）次に、カードＯＳは、バックアップ領域に書き込まれたＰａｇｅ−ｂＲを消去する。
【０２８８】
以上で、書き込み３が実施されたこととなる。
【０２８９】
Ｄ）書き込み４について（ステップＳ３１２）
Ｄ−１）「トランザクションによる更新領域の保護機能」について
書き込み１は、連続した書き込みとして定義されていないため、上述した「トランザクションによる更新領域の保護機能」は働かず、「カードＯＳによる非更新領域の保護機能」のみが働くこととなる。
【０２９０】
Ｄ−２）「カードＯＳによる非更新領域の保護機能」について（ステップＳ３１３）
具体的に、カードＯＳは、以下のａ）〜ｅ）の動作を実施する。
【０２９１】
ａ）まず、カードＯＳは、Ｐａｇｅ−ｃにおける非更新領域のデータを保護するため、Ｐａｇｅ−ｂに記憶されるデータを、ページ単位でＲＡＭ４へ書き込む。説明の便宜上、このＲＡＭ４に書き込まれたデータを、Ｐａｇｅ−ｃＲとする。
【０２９２】
ｂ）次に、カードＯＳは、Ｐａｇｅ−ｃＲをバックアップする。具体的には、カードＯＳは、不揮発性メモリ５に設定されたバックアップ領域へＰａｇｅ−ｃＲを書き込む。
【０２９３】
ｃ）次に、カードＯＳは、Ｐａｇｅ−ｃＲの所定の領域に、書き込み４で書き込まれるべきデータ（図１２の４）を書き込む。すなわち、カードＯＳは、ＲＡＭ４に記憶されたＰａｇｅ−ｃＲを更新する。
【０２９４】
ｄ）次に、カードＯＳは、更新されたＰａｇｅ−ｃＲを、不揮発性メモリ５のＰａｇｅ−ｃへ書き込む。すなわち、カードＯＳは、不揮発性メモリ５に記憶されたＰａｇｅ−ｃを更新する。
【０２９５】
ｅ）次に、カードＯＳは、バックアップ領域に書き込まれたＰａｇｅ−ｃＲを消去する。
【０２９６】
以上で、書き込み４が実施されたこととなる。
【０２９７】
Ｅ）書き込み５について（ステップＳ３１４）
Ｅ−１）「トランザクションによる更新領域の保護機能」について
書き込み１は、連続した書き込みとして定義されていないため、上述した「トランザクションによる更新領域の保護機能」は働かず、「カードＯＳによる非更新領域の保護機能」のみが働くこととなる。
【０２９８】
Ｅ−２）「カードＯＳによる非更新領域の保護機能」について（ステップＳ３１５）
具体的に、カードＯＳは、以下のａ）〜ｅ）の動作を実施する。
【０２９９】
ａ）まず、カードＯＳは、Ｐａｇｅ−ｃにおける非更新領域のデータを保護するため、Ｐａｇｅ−ｂに記憶されるデータを、ページ単位でＲＡＭ４へ書き込む。説明の便宜上、このＲＡＭ４に書き込まれたデータを、Ｐａｇｅ−ｃＲとする。
【０３００】
ｂ）次に、カードＯＳは、Ｐａｇｅ−ｃＲをバックアップする。具体的には、カードＯＳは、不揮発性メモリ５に設定されたバックアップ領域へＰａｇｅ−ｃＲを書き込む。
【０３０１】
ｃ）次に、カードＯＳは、Ｐａｇｅ−ｃＲの所定の領域に、書き込み４で書き込まれるべきデータ（図１２の５）を書き込む。すなわち、カードＯＳは、ＲＡＭ４に記憶されたＰａｇｅ−ｃＲを更新する。
【０３０２】
ｄ）次に、カードＯＳは、更新されたＰａｇｅ−ｃＲを、不揮発性メモリ５のＰａｇｅ−ｃへ書き込む。すなわち、カードＯＳは、不揮発性メモリ５に記憶されたＰａｇｅ−ｃを更新する。
【０３０３】
ｅ）次に、カードＯＳは、バックアップ領域に書き込まれたＰａｇｅ−ｃＲを消去する。
【０３０４】
以上で、書き込み５が実施されたこととなる。
【０３０５】
そして、アプリケーションは、処理が終了すると、カードＯＳへレスポンスデータを通知する（ステップＳ３１６）。そして、カードＯＳは、レスポンスデータを取得すると（ステップＳ３１７）、例えば、外部装置（リーダライタ装置等）へレスポンスデータを送信する（ステップＳ３１８）。
【０３０６】
このように、連続した書き込みとして定義されない複数の書き込み要求がなされると、上述した統合は、上記トランザクションの実行中でなければ働かない。従って、当該書き込み要求毎に「カードＯＳによる非更新領域の保護機能」が働き、バックアップ領域に対してデータの記憶及び当該データの消去が繰り返され、更新やバックアップに要する処理時間が増加する。
【０３０７】
上述した例では、書き込み毎（書き込み１〜５）に、カードＯＳは、バックアップ領域に書き込まれたＰａｇｅ−ａＲ〜Ｐａｇｅ−ａＲを消去（上記Ａ−２）ｅ）等）しているため、不要な消去が繰り返しなされている。
【０３０８】
そこで、本実施形態では、更新要求があった場合には、ＣＰＵ６に「transaction機能／保護機能付き書き込み」を実行させるようになっている。
【０３０９】
具体的には、本発明のＩＣチップ用処理プログラムの制御によって、第２の保護手段としてのＣＰＵ６は、更新要求としての書き込み要求があった場合には、当該書き込みを連続した書き込みとして定義されたものとしてトランザクションを実行させる。そして、ＣＰＵ６は、更新前の更新領域が属するページの全ての領域を更新領域として、当該ページに記憶される全てのデータを不揮発性メモリ５に書き込み（記憶し）、当該ページに非更新領域が存在しないものとしてカードＯＳに通知して、「カードＯＳによる非更新領域の保護機能」を機能させないようになっている。
【０３１０】
ここで、図１０及び図１３を参照して、本実施形態のＣＰＵ６の動作の詳細について説明する。なお、ここでは、上述した本発明のＩＣチップ用処理プログラムが備える機能が実行される場合の動作主体をＣＰＵ６として説明する。
【０３１１】
また、ここで説明する例では、図１０で定義される不揮発性メモリ５に対する更新として、Ａ）書き込み１〜Ｅ）書き込み５、が行われるものとし、これらの書き込み条件（例えば、連続した書き込みとして定義されない更新要求としての書き込み１〜書き込み５が要求されること等）は、図１０で定義された条件と同一の条件を適用するものとする。
【０３１２】
図１３は、本実施形態のＣＰＵ６の動作の詳細を示すフローチャートである。
【０３１３】
図１３に示すように、まず、カードＯＳ（ＣＰＵ６）が、例えばＩ／Ｏ回路２を介して、コマンドを受信すると（ステップＳ４０１）、カードＯＳは、受信したコマンドをどのアプリケーションへ渡すか決定する（ステップＳ４０２）。そして、カードＯＳは、受信したコマンドを、決定されたアプリケーションへ渡す。アプリケーション（ＣＰＵ６）は、コマンドを取得すると（ステップＳ４０３）、コマンドを処理して（例えば、コマンド解釈等）（ステップＳ４０４）、必要があれば不揮発性メモリ５のデータを更新する（不揮発性メモリ５へデータを書き込ませる）。
【０３１４】
ここでは、コマンドの処理Ａ（ステップＳ４０４）及びコマンドの処理Ｂ（ステップＳ４１３）において、連続した書き込みとして定義されない更新要求としての書き込み１〜書き込み５が要求されたものとする。
【０３１５】
すると、ＣＰＵ６は、トランザクションの実行中であるか否かを、カードＯＳへ問い合わせる（ステップＳ４０６）。
【０３１６】
そして、トランザクションの実行中でない場合には（ステップＳ４０６：ＮＯ）、ＣＰＵ６は、トランザクションを強制的に実行させる（ステップＳ４０７）。すなわち、ＣＰＵ６は、Ａ）書き込み１〜Ｅ）書き込み５を、連続して定義された書き込みと擬制し、「transaction機能／保護機能付き書き込み」を実行する（ステップＳ４０８等）。
【０３１７】
ここで、図１２を参照して、Ａ）書き込み１〜Ｅ）書き込み５と「transaction機能／保護機能付き書き込み」の詳細について、図１３のフローチャートと対比して説明する。
【０３１８】
Ａ）書き込み１について（ステップＳ４０５）
「transaction機能／保護機能付き書き込み」が働く。具体的には、ＣＰＵ６は、以下のａ）〜ｄ）の動作を実施する（ステップ４０８）。
【０３１９】
ａ）まず、ＣＰＵ６は、Ｐａｇｅ−ａに記憶される全てのデータを保護するため、Ｐａｇｅ−ａに記憶されるデータを、ページ単位でＲＡＭ４へ書き込む。説明の便宜上、このＲＡＭ４に書き込まれたデータを、Ｐａｇｅ−ａＲとする。
【０３２０】
この場合、ＣＰＵ６は、書き込み１で更新の対象となるＰａｇｅ−ａに記憶される全てのデータをＲＡＭ４へ書き込み、その後、不揮発性メモリ５へ書き込むことで、Ｐａｇｅ−ａに記憶される全てのデータを更新の対象とし、非更新領域が存在しないものとしてカードＯＳへ通知する。
【０３２１】
この通知を受けたカードＯＳは、「カードＯＳによる非更新領域の保護機能」を機能させないようになっている。
【０３２２】
ｂ）次に、ＣＰＵ６は、Ｐａｇｅ−ａＲをバックアップする。具体的には、ＣＰＵ６は、不揮発性メモリ５に設定されたバックアップ領域へＰａｇｅ−ａＲを書き込む。
【０３２３】
ｃ）次に、ＣＰＵ６は、Ｐａｇｅ−ａＲの所定の領域に、書き込み１で書き込まれるべきデータを書き込む（図１２の１のデータを更新する）。すなわち、ＣＰＵ６は、ＲＡＭ４に記憶されたＰａｇｅ−ａＲを更新する。
【０３２４】
ｄ）次に、ＣＰＵ６は、更新されたＰａｇｅ−ａＲを、不揮発性メモリ５のＰａｇｅ−ａへ書き込む。すなわち、ＣＰＵ６は、不揮発性メモリ５に記憶されたＰａｇｅ−ａを更新する。
【０３２５】
以上で、書き込み１が実施されたこととなる。
【０３２６】
Ｂ）書き込み２について（ステップＳ４０９）
「transaction機能／保護機能付き書き込み」が働く。具体的には、ＣＰＵ６は、以下のａ）〜ｄ）の動作を実施する（ステップ４１０）。
【０３２７】
ａ）まず、ＣＰＵ６は、Ｐａｇｅ−ｂに記憶される全てのデータを保護するため、Ｐａｇｅ−ｂに記憶されるデータを、ページ単位でＲＡＭ４へ書き込む。説明の便宜上、このＲＡＭ４に書き込まれたデータを、Ｐａｇｅ−ｂＲとする。
【０３２８】
この場合、ＣＰＵ６は、書き込み２で更新の対象となるＰａｇｅ−ｂに記憶される全てのデータをＲＡＭ４へ書き込み、その後、不揮発性メモリ５へ書き込むことで、Ｐａｇｅ−ｂに記憶される全てのデータを更新の対象とし、非更新領域が存在しないものとしてカードＯＳへ通知する。
【０３２９】
この通知を受けたカードＯＳは、「カードＯＳによる非更新領域の保護機能」を機能させないようになっている。
【０３３０】
ｂ）次に、ＣＰＵ６は、Ｐａｇｅ−ｂＲをバックアップする。具体的には、ＣＰＵ６は、不揮発性メモリ５に設定されたバックアップ領域へＰａｇｅ−ｂＲを書き込む。
【０３３１】
ｃ）次に、ＣＰＵ６は、Ｐａｇｅ−ｂＲの所定の領域に、書き込み２で書き込まれるべきデータを書き込む（図１２の２のデータを更新する）。すなわち、ＣＰＵ６は、ＲＡＭ４に記憶されたＰａｇｅ−ｂＲを更新する。
【０３３２】
ｄ）次に、ＣＰＵ６は、更新されたＰａｇｅ−ｂＲを、不揮発性メモリ５のＰａｇｅ−ｂへ書き込む。すなわち、ＣＰＵ６は、不揮発性メモリ５に記憶されたＰａｇｅ−ｂを更新する。
【０３３３】
以上で、書き込み２が実施されたこととなる。
【０３３４】
Ｃ）書き込み３について（ステップＳ４１１）
「transaction機能／保護機能付き書き込み」が働く。具体的には、ＣＰＵ６は、以下のａ）〜ｄ）の動作を実施する（ステップ４１２）。
【０３３５】
ａ）まず、ＣＰＵ６は、Ｐａｇｅ−ｂに記憶される全てのデータを保護するため、Ｐａｇｅ−ｂに記憶されるデータを、ページ単位でＲＡＭ４へ書き込む。説明の便宜上、このＲＡＭ４に書き込まれたデータを、Ｐａｇｅ−ｂＲとする。
【０３３６】
この場合、ＣＰＵ６は、書き込み３で更新の対象となるＰａｇｅ−ｂに記憶される全てのデータをＲＡＭ４へ書き込み、その後、不揮発性メモリ５へ書き込むことで、Ｐａｇｅ−ｂに記憶される全てのデータを更新の対象とし、非更新領域が存在しないものとしてカードＯＳへ通知する。
【０３３７】
この通知を受けたカードＯＳは、「カードＯＳによる非更新領域の保護機能」を機能させないようになっている。
【０３３８】
ｂ）次に、ＣＰＵ６は、Ｐａｇｅ−ｂＲをバックアップする。具体的には、ＣＰＵ６は、不揮発性メモリ５に設定されたバックアップ領域へＰａｇｅ−ｂＲを書き込む。
【０３３９】
なお、上述した「バックアップ検索機能」が働く場合には、Ｐａｇｅ−ｂＲのバックアップは、既に、Ｂ）書き込み２ｂ）で記憶されているため、ここでは、ＣＰＵ６は、Ｐａｇｅ−ｂＲをバックアップしない。
【０３４０】
ｃ）次に、ＣＰＵ６は、Ｐａｇｅ−ｂＲの所定の領域に、書き込み３で書き込まれるべきデータを書き込む（図１２の３のデータを更新する）。すなわち、ＣＰＵ６は、ＲＡＭ４に記憶されたＰａｇｅ−ｂＲを更新する。
【０３４１】
ｄ）次に、ＣＰＵ６は、更新されたＰａｇｅ−ｂＲを、不揮発性メモリ５のＰａｇｅ−ｂへ書き込む。すなわち、ＣＰＵ６は、不揮発性メモリ５に記憶されたＰａｇｅ−ｂを更新する。
【０３４２】
以上で、書き込み３が実施されたこととなる。
【０３４３】
Ｄ）書き込み４について（ステップＳ４１４）
「transaction機能／保護機能付き書き込み」が働く。具体的には、ＣＰＵ６は、以下のａ）〜ｄ）の動作を実施する（ステップ４１５）。
【０３４４】
ａ）まず、ＣＰＵ６は、Ｐａｇｅ−ｃに記憶される全てのデータを保護するため、Ｐａｇｅ−ｃに記憶されるデータを、ページ単位でＲＡＭ４へ書き込む。説明の便宜上、このＲＡＭ４に書き込まれたデータを、Ｐａｇｅ−ｃＲとする。
【０３４５】
この場合、ＣＰＵ６は、書き込み４で更新の対象となるＰａｇｅ−ｃに記憶される全てのデータをＲＡＭ４へ書き込み、その後、不揮発性メモリ５へ書き込むことで、Ｐａｇｅ−ｃに記憶される全てのデータを更新の対象とし、非更新領域が存在しないものとしてカードＯＳへ通知する。
【０３４６】
この通知を受けたカードＯＳは、「カードＯＳによる非更新領域の保護機能」を機能させないようになっている。
【０３４７】
ｂ）次に、ＣＰＵ６は、Ｐａｇｅ−ｃＲをバックアップする。具体的には、ＣＰＵ６は、不揮発性メモリ５に設定されたバックアップ領域へＰａｇｅ−ｃＲを書き込む。
【０３４８】
ｃ）次に、ＣＰＵ６は、Ｐａｇｅ−ｃＲの所定の領域に、書き込み４で書き込まれるべきデータを書き込む（図１２の４のデータを更新する）。すなわち、ＣＰＵ６は、ＲＡＭ４に記憶されたＰａｇｅ−ｃＲを更新する。
【０３４９】
ｄ）次に、ＣＰＵ６は、更新されたＰａｇｅ−ｃＲを、不揮発性メモリ５のＰａｇｅ−ｃへ書き込む。すなわち、ＣＰＵ６は、不揮発性メモリ５に記憶されたＰａｇｅ−ｃを更新する。
【０３５０】
以上で、書き込み４が実施されたこととなる。
【０３５１】
Ｅ）書き込み５について（ステップＳ４１６）
「transaction機能／保護機能付き書き込み」が働く。具体的には、ＣＰＵ６は、以下のａ）〜ｄ）の動作を実施する（ステップ４１７）。
【０３５２】
ａ）まず、ＣＰＵ６は、Ｐａｇｅ−ｃに記憶される全てのデータを保護するため、Ｐａｇｅ−ｃに記憶されるデータを、ページ単位でＲＡＭ４へ書き込む。説明の便宜上、このＲＡＭ４に書き込まれたデータを、Ｐａｇｅ−ｃＲとする。
【０３５３】
この場合、ＣＰＵ６は、書き込み５で更新の対象となるＰａｇｅ−ｃに記憶される全てのデータをＲＡＭ４へ書き込み、その後、不揮発性メモリ５へ書き込むことで、Ｐａｇｅ−ｃに記憶される全てのデータを更新の対象とし、非更新領域が存在しないものとしてカードＯＳへ通知する。
【０３５４】
この通知を受けたカードＯＳは、「カードＯＳによる非更新領域の保護機能」を機能させないようになっている。
【０３５５】
ｂ）次に、ＣＰＵ６は、Ｐａｇｅ−ｃＲをバックアップする。具体的には、ＣＰＵ６は、不揮発性メモリ５に設定されたバックアップ領域へＰａｇｅ−ｃＲを書き込む。
【０３５６】
なお、上述した「バックアップ検索機能」が働く場合には、Ｐａｇｅ−ｃＲのバックアップは、既に、Ｄ）書き込み４ｂ）で記憶されているため、ここでは、ＣＰＵ６は、Ｐａｇｅ−ｃＲをバックアップしない。
【０３５７】
ｃ）次に、ＣＰＵ６は、Ｐａｇｅ−ｃＲの所定の領域に、書き込み５で書き込まれるべきデータを書き込む（図１２の５のデータを更新する）。すなわち、ＣＰＵ６は、ＲＡＭ４に記憶されたＰａｇｅ−ｃＲを更新する。
【０３５８】
ｄ）次に、ＣＰＵ６は、更新されたＰａｇｅ−ｃＲを、不揮発性メモリ５のＰａｇｅ−ｃへ書き込む。すなわち、ＣＰＵ６は、不揮発性メモリ５に記憶されたＰａｇｅ−ｃを更新する。
【０３５９】
以上で、書き込み５が実施されたこととなる。
【０３６０】
このように、本実施形態におけるＣＰＵ６は、図１０のフローチャートのステップＳ３０６の説明におけるＡ−２）ｅ）、図１０のフローチャートのステップＳ３０８の説明におけるＢ−２）ｅ）、図１０のフローチャートのステップＳ３１０の説明におけるＣ−２）ｅ）、図１０のフローチャートのステップＳ３１２の説明におけるＤ−２）ｅ）、図１０のフローチャートのステップＳ３１４の説明におけるＥ−２）ｅ）のように、書き込み毎（書き込み１〜５）に、カードＯＳは、バックアップ領域に書き込まれたＰａｇｅ−ａＲ〜Ｐａｇｅ−ａＲを消去するといった不要な消去が繰り返しなされることはないため、更新やバックアップに要する処理時間が短縮される。
【０３６１】
そして、アプリケーションは、処理が終了すると、カードＯＳへレスポンスデータを通知する（ステップＳ４１８）。そして、カードＯＳは、レスポンスデータを取得すると（ステップＳ４１９）、トランザクションの開始状態にあるかないか判断し（ステップＳ４２０）、トランザクションの開始状態にない場合には（ステップＳ４２０：ＮＯ）、トランザクションを停止して（ステップＳ４２１）、例えば、外部装置（リーダライタ装置等）へレスポンスデータを送信する（ステップＳ４２２）。
【０３６２】
なお、これらの更新が終了した場合に、バックアップデータ消去手段としてのＣＰＵ６は、バックアップ領域に記憶されたバックアップデータを消去するように構成してもよい。
【０３６３】
また、バックアップデータ消去手段としてのＣＰＵ６は、バックアップ領域に記憶可能な情報量である記憶容量を監視し、バックアップ領域の記憶容量が上限（任意に設定可能）に達した場合には、バックアップデータを消去するように構成してもよい。
【０３６４】
この消去の方法としては種々の方法を適用することができ、例えば、バックアップ領域に記憶されたバックアップデータのうち、当該記憶された日時（バックアップ領域に追加された日時）が古いものから順に消去するようにしてもよいし、当該バックアップデータのうち、データのサイズ（ファイルサイズ）に応じて（例えば、データのサイズが大きいものを優先的に消去等）消去するようにしてもよい。また、バックアップ領域に記憶されたバックアップデータが所定の数量に達した場合に、消去するようにしてもよい。
【０３６５】
以上説明したように、本実施形態におけるＩＣチップ１は、所定の領域を一のページとして、一又は複数のページに区画される不揮発性メモリ５を備え、更新要求に基づいて、不揮発性メモリ５の指定されたページの指定された領域に記憶されるデータを更新し、ＩＣチップの基本的な動作を管理するカードＯＳが備える基本的な機能であって、当該カードＯＳの制御に基づいて、前記データを更新する領域である更新領域が属するページのうち、当該更新領域以外の領域である非更新領域に記憶されるデータをバックアップ領域へ書き込む「カードＯＳによる非更新領域の保護機能」と、上記トランザクションの実行中に、前記カードＯＳ上で動作し前記ＣＰＵ６に所定の機能を実行させるアプリケーションの要求に応じた前記カードＯＳの制御に基づいて、更新前の前記更新領域に記憶されるデータをバックアップ領域へ書き込む「トランザクションによる更新領域の保護機能」とを備え、「トランザクションによる更新領域の保護機能」は、更新要求があった場合には、前記更新前の更新領域及び非更新領域が属するページの全ての領域を更新領域として、当該ページに記憶される全てのデータを前記バックアップ領域に書き込み、当該ページに非更新領域が存在しないものとして前記カードＯＳに通知して、「カードＯＳによる非更新領域の保護機能」を機能させないように構成したので、適切な保護機能によってデータをバックアップすることにより、不要なバックアップ処理を行わないため、データの保護機能による処理時間の短縮を図ることができる。
【０３６６】
なお、上述した例では、ＣＰＵ６を本願の第２の保護手段として機能させる「トランザクションによる更新領域の保護機能」は、アプリケーションが備える機能として説明したが、これに限定されることはなく、種々の形態を採ることができる。例えば、上記「トランザクションによる更新領域の保護機能」を、カードＯＳが備える機能とするようにしても良いし、バーチャルマシン（図２参照）や、ＯＳ層２２（図２参照）に新たに設けられるモジュールに備えるようにしても良い。
【０３６７】
同様に、ＣＰＵ６を本願の第１の保護手段として機能させる「カードＯＳによる非更新領域の保護機能」は、カードＯＳが備える機能として説明したが、これに限定されることはなく、種々の形態を採ることができる。例えば、上記「カードＯＳによる非更新領域の保護機能」を、アプリケーションが備える機能とするようにしても良いし、バーチャルマシン（図２参照）や、ＯＳ層２２（図２参照）に新たに設けられるモジュールに備えるようにしても良い。
【０３６８】
また、上記実施形態においては、ＪＡＶＡカードに対応したＩＣカード８を適用したがこれに限られず、カードＯＳ上で所定の機能を実行するアプリケーションが搭載できるＩＣカードであれば種々のＩＣカードを適用することができる。
【符号の説明】
【０３６９】
１  ＩＣチップ
２  Ｉ／Ｏ回路
３  ＲＯＭ
４  ＲＡＭ
５  不揮発性メモリ
６  ＣＰＵ
７  カード基体
８  ＩＣカード
【図１】
0005853590.tif 000002
【図２】
0005853590.tif 000003
【図３】
0005853590.tif 000004
【図４】
0005853590.tif 000005
【図５】
0005853590.tif 000006
【図６】
0005853590.tif 000007
【図７】
0005853590.tif 000008
【図８】
0005853590.tif 000009
【図９】
0005853590.tif 000010
【図１０】
0005853590.tif 000011
【図１１】
0005853590.tif 000012
【図１２】
0005853590.tif 000013
【図１３】
0005853590.tif 000014