(57)【要約】【課題】メモリへのデータ書込みを意味のあるデータ単位で保証することが可能で、通常のデータ書込みと比べ冗長時間も少なく、処理の高速化のためにも有効な携帯可能電子装置を提供する。【解決手段】書換えが可能な不揮発性メモリ、および、この不揮発性メモリに対してデータの読出しあるいは書込みを行なうための制御素子を有し、外部との間でデータの入出力を行なうＩＣカードにおいて、不揮発性メモリ内に２重化されたデータを格納する領域、および、どちらの領域が最新データであるかを識別するための識別情報を格納する領域を持ち、識別情報に基づき最新データでない領域へのデータ書込みを行ない、このデータ書込みが正常に終了した場合に識別情報の更新を行なう。【選択図】      図７
2005338926.tif 000002
【特許請求の範囲】
【請求項１】
外部からコマンドが入力されると、そのコマンドに対応した所定の処理を実行してその処理結果を外部へ出力する機能を有する携帯可能電子装置において、
記憶内容が書換え可能なメモリと、
このメモリ内に設けられ、データを格納する２重化されたデータ格納領域と、
前記メモリ内に設けられ、前記データ格納領域においてどちらの領域が最新データであるかを識別するための識別情報を格納する識別情報格納領域と、
外部からデータ書込みコマンドが入力されると、前記識別情報格納領域内の識別情報に基づき前記データ格納領域の最新データでない領域に対しデータの書込みを行なうデータ書込み手段と、
このデータ書込み手段によるデータの書込みが正常に終了した場合に、前記識別情報格納領域内の識別情報を更新する識別情報更新手段と、
を具備したことを特徴とする携帯可能電子装置。
【請求項２】
前記２重化されたデータ格納領域は複数存在し、これら複数のデータ格納領域に対し１回の処理において複数のコマンドによりデータの書込みを行なう場合、複数のデータ格納領域に対しデータの書込みが全て正常に終了した場合に、前記識別情報格納領域内の識別情報を更新することを特徴とする請求項１記載の携帯可能電子装置。
【請求項３】
外部からコマンドが入力されると、そのコマンドに対応した所定の処理を実行してその処理結果を外部へ出力する機能を有する携帯可能電子装置において、
記憶内容が書換え可能なメモリと、
このメモリ内に設けられ、データを格納する２重化されたデータ格納領域と、
前記メモリ内に設けられ、前記２重化されたデータ格納領域に対応させて２重化されていて、当該データ格納領域に対するデータ書込み処理回数を示す処理回数情報、および、当該データ格納領域の最新データがどちらの領域に書込まれているかを識別するための識別情報を有して構成される管理情報を格納する管理情報格納領域と、
外部からデータ書込みコマンドが入力されると、前記管理情報格納領域に格納された２重化された管理情報内の処理回数情報を比較し、値の大きい方を最新の管理情報と判定する判定手段と、
この判定手段により判定された最新の管理情報内の識別情報に基づき前記データ格納領域の最新データでない領域に対しデータの書込みを行なうデータ書込み手段と、
このデータ書込み手段によるデータの書込みが正常に終了した場合に、前記管理情報格納領域内の管理情報を更新する管理情報更新手段と、
を具備したことを特徴とする携帯可能電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば、書込み、書換えが可能な不揮発性メモリおよびＣＰＵなどの制御素子を有し、外部からのデータの入出力を行なう手段を備えたＩＣチップを内蔵した、いわゆるＩＣカードと称される携帯可能電子装置に関する。
【背景技術】
【０００２】
この種のＩＣカードの処理において、上位装置（カードリーダ・ライタ）側から供給される電源が不安定であったなどの要因により、不揮発性メモリに対するデータの書込みが失敗する場合がある。これを回避するための方法として、元のデータ（書換え前のデータ）を不揮発性メモリ内の別エリアに退避させた後に書込みを行なうなどのデータ書込み保証方法が提案されている（たとえば、特許文献１参照）。
【特許文献１】特開２００３−１１４８３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来のＩＣカードにおいて、データ書込み保証を行なう場合、データ書込み保証を行なわない場合と比べて、不揮発性メモリの物理ページサイズごとに、３倍程度の書込み回数の増大が発生している。すなわち、不揮発性メモリへの書込み回数が増大するため、結果としてＩＣカードの処理時間も長くなるという問題がある。
【０００４】
従来のデータ書込み保証方法とは、不揮発性メモリに書込まれていたデータを別エリアに退避し、対象エリアに書込みたいデータを記録し、最後に書込み完了ステータスを記録するという方法を指している。本手法でのメリットは、データの書込みを不揮発性メモリの物理的なページ単位で保証するため、データ退避エリア、完了ステータスエリアとして、それぞれ１ページ分確保すればよいという、少ないリソースで実現できることである。
【０００５】
しかし、近年のＩＣカードへの要求として、データ書込み保証とともに、処理時間の短縮化（高速化）が要求されており、上記のように不揮発性メモリへの書込み回数が書込みページごとに３倍となるような方式では、高速化を実現することが難しい。また、ＬＳＩ開発技術の進歩に伴い、不揮発性メモリの物理的なリソースは拡大してきている。
【０００６】
また、従来のデータ書込み保証方法は、不揮発性メモリへのデータ書込みを物理的なページ単位で保証する方法であり、１つの意味のあるデータが複数のページにまたがっている場合、あるいは、複数のファイルに分割して格納されている場合には、意味のあるデータとして保証することが難しい。
【０００７】
そこで、本発明は、メモリへのデータ書込みを意味のあるデータ単位で保証することが可能で、通常のデータ書込みと比べ冗長時間も少なく、処理の高速化のためにも有効な携帯可能電子装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の携帯可能電子装置は、外部からコマンドが入力されると、そのコマンドに対応した所定の処理を実行してその処理結果を外部へ出力する機能を有する携帯可能電子装置において、記憶内容が書換え可能なメモリと、このメモリ内に設けられ、データを格納する２重化されたデータ格納領域と、前記メモリ内に設けられ、前記データ格納領域においてどちらの領域が最新データであるかを識別するための識別情報を格納する識別情報格納領域と、外部からデータ書込みコマンドが入力されると、前記識別情報格納領域内の識別情報に基づき前記データ格納領域の最新データでない領域に対しデータの書込みを行なうデータ書込み手段と、このデータ書込み手段によるデータの書込みが正常に終了した場合に、前記識別情報格納領域内の識別情報を更新する識別情報更新手段とを具備している。
【発明の効果】
【０００９】
本発明によれば、メモリへのデータ書込みを意味のあるデータ単位で保証することが可能で、通常のデータ書込みと比べ冗長時間も少なく、処理の高速化のためにも有効な携帯可能電子装置を提供できる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態について図面を参照して説明する。  
図１は、本実施の形態に係る携帯可能電子装置としてのＩＣカードを取扱うＩＣカードシステムの構成例を示すものである。このＩＣカードシステムは、ＩＣカード１１をカードリーダ・ライタ１２を介してパーソナルコンピュータなどの端末装置１３と接続可能にするとともに、端末装置１３にキーボード１４、ＣＲＴ表示部１５、プリンタ１６を接続して構成される。
【００１１】
図２は、ＩＣカード１１の構成を示すもので、制御部としての制御素子（たとえば、ＣＰＵ）１０１、記憶内容が書換え可能な記憶手段（メモリ）としてのデータメモリ１０２、ワーキングメモリ１０３、プログラムメモリ１０４、および、カードリーダ・ライタ１２との電気的接触を得るためのコンタクト部１０５によって構成されている。そして、これらのうち、破線内の部分（制御素子１０１、データメモリ１０２、ワーキングメモリ１０３、プログラムメモリ１０４）は１つ（あるいは複数）のＩＣチップで構成され、さらに、このＩＣチップとコンタクト部１０５とが一体的にＩＣモジュール化されて、ＩＣカード本体内に埋設されている。
【００１２】
データメモリ１０２は、各種データの記憶に使用され、たとえば、ＥＥＰＲＯＭなどの記憶内容が書換え可能な不揮発性メモリで構成されている。  
ワーキングメモリ１０３は、制御素子１０１が処理を行なう際の処理データなどを一時的に保持するための作業用メモリであり、たとえば、ＲＡＭなどで構成される。  
プログラムメモリ１０４は、たとえば、マスクＲＯＭなどの記憶内容が書換え不可能な不揮発性メモリで構成されており、制御素子１０１の制御プログラム、および、複数のアプリケーションプログラムなどを記憶するものである。
【００１３】
図３は、データメモリ１０２の構成を示している。データメモリ１０２は、複数のアプリケーションに関するデータがファイル構造で記憶されている。図２の例では、たとえば、代表して１つのアプリケーションが登録された状態を示している。
【００１４】
すなわち、アプリケーションごとに設定されるフォルダとしてアプリケーションファイル（ＡＤＦ：Ａｐｐｌｉｃａｔｉｏｎ  Ｄｅｄｉｃａｔｅｄ  Ｆｉｌｅ、ＤＦ番号：０１）２０１が設けられ、その配下には、実際にアプリケーションで使われるユーザデータ等の格納に使用されるエレメンタリファイル（ＥＦ：Ｅｌｅｍｅｎｔａｒｙ  Ｆｉｌｅ）、たとえば、第１データファイル（ＥＦ番号：０１）２０２および第２データファイル（ＥＦ番号：０２）２０３が設けられている構成となっている。
【００１５】
図４は、データメモリ１０２のデータ格納例を示しており、ファイル構成は図３と対応している。第１データファイル２０２のデータを格納する領域を２重化し、第１データファイル２０２ａ（以降、データファイル１Ａともいう）、第１データファイル２０２ｂ（以降、データファイル１Ｂともいう）として、データメモリ１０２内に設定する。同様に、第２データファイル２０３のデータを格納する領域を２重化し、第２データファイル２０３ａ（以降、データファイル２Ａともいう）、第２データファイル２０３ｂ（以降、データファイル２Ｂともいう）として、データメモリ１０２内に設定する。
【００１６】
また、データファイルＡとデータファイルＢのどちらに最新のデータが書込まれているかを管理する情報としてデータ管理情報を持ち、このデータ管理情報も同様にデータ管理情報Ａ、データ管理情報Ｂとして２重化し、これらを格納する領域２０４ａ，２０４ｂをデータメモリ１０２内に設定する。なお、図４において符号２０５は未使用領域を示している。
【００１７】
図５は、データ管理情報の具体例を示している。データ管理情報は、データの書込み処理回数を示す処理回数情報３０１、第１データファイル２０２ａの最新データがデータファイル１Ａ、データファイル１Ｂのどちらに書込まれているかを示す第１データファイル判定情報（識別情報）３０２、同様に、第２データファイル２０２ｂの最新データがデータファイル２Ａ、データファイル２Ｂのどちらに書込まれているかを示す第２データファイル判定情報（識別情報）３０３から構成される。
【００１８】
本実施の形態に係るＩＣカードの処理は、端末装置１３からカードリーダ・ライタ１２を経由してＩＣカード１１へコマンドが送信されることから開始される。この際、ＩＣカード１１では、送信されたコマンドに対応した処理を行ない、その処理結果をレスポンスとして、カードリーダ・ライタ１２を経由して端末装置１３へ返送する。  
具体的なＩＣカード１１の処理としては、たとえば、データメモリ１０２等に格納されたデータを外部へ応答するデータ読出し処理と、コマンドで送信されたデータをデータメモリ１０２へ書込むデータ書込み処理とに分類することができる。
【００１９】
本発明は、不揮発性メモリ（データメモリ１０２）等へのデータ書込みを行なう際に、データ書込み保証を行なう方法に関するものであり、以下の例では、データ書込み処理についての説明を行なう。
【００２０】
以下、１回の処理において１つのデータファイルに対してデータ書込みを行なう場合の処理方法について、図６に示すメモリ内のデータ更新状況および図７に示すフローチャートを参照して説明する。
【００２１】
第１データファイル２０２に対するデータ書込みコマンドを、カードリーダ・ライタ１２から受信すると、制御素子１０１は、まず、データメモリ１０２内のデータ管理情報Ａ、データ管理情報Ｂをそれぞれ取得する（ステップＳ１）。次に、制御素子１０１は、データ管理情報Ａ、Ｂそれぞれに設定された処理回数情報３０１を比較し（ステップＳ２）、値の大きい方を最新のデータ管理情報とし、以降の処理において使用する。
【００２２】
たとえば、図６に示すように、データ管理情報Ａの処理回数情報３０１が「２」、データ管理情報Ｂの処理回数情報３０１が「３」となっている場合、データ管理情報Ｂの方を最新のデータと判定する（ステップＳ３）。また、データ管理情報Ａの処理回数情報３０１がデータ管理情報Ｂの処理回数情報３０１よりも大きい場合、データ管理情報Ａの方を最新のデータと判定する（ステップＳ４）。  
なお、処理回数情報３０１は、上限値を設定せず、たとえば、処理回数を１０進数２桁で使用する場合には、「９９」よりも「００」の方が大きいと判定する。
【００２３】
最新のデータ管理情報の判定を行なった後、制御素子１０１は、その最新のデータ管理情報（すなわち、書込み対象データファイル）の第１データファイル判定情報３０２および第２データファイル判定情報３０３をそれぞれ取得する（ステップＳ５）。  
第１データファイル判定情報３０２には、第１データファイル２０２の最新データがデータファイル１Ａ、データファイル１Ｂのどちらに格納されているかを識別するための情報が格納されている。また、第２データファイル判定情報３０３には、第２データファイル２０３の最新データがデータファイル２Ａ、データファイル２Ｂのどちらに格納されているかを識別するための情報が格納されている。
【００２４】
たとえば、第１データファイル判定情報３０２が「Ａ」であった場合、第１データファイル２０２については、データファイル１Ａが最後に書込まれたデータ（最新データ）であると判定する（ステップＳ６）。  
同様に、第２データファイル判定情報３０３が「Ａ」であった場合、第２データファイル２０３については、データファイル２Ａが最後に書込まれたデータ（最新データ）であると判定する（ステップＳ６）。
【００２５】
このようにして、最新のデータが格納されたデータファイルを判定した後、制御素子１０１は、最新でないデータが書込まれているデータファイルを書込み対象エリアと判定する（ステップＳ７）。上記例のように、たとえば、第１データファイル２０２について、データファイル１Ａが最新データである場合、データファイル１Ｂが今回の書込み対象エリアであると判定する。
【００２６】
次に、制御素子１０１は、ステップＳ７で判定した書込み対象エリア（本例ではデータファイル１Ｂ）に対して、今回書込みたいデータの書込み処理を実施する（ステップＳ８）。
【００２７】
今回の第１データファイル２０２に対するデータの書込み処理が正常に終了した場合（ステップＳ９）、制御素子１０１は、同様に最新でないデータが書込まれたデータ管理情報（上記例では、データ管理情報Ａ）を、今回の書込み処理に基づき更新する（ステップＳ１０，Ｓ１１）。
【００２８】
具体的には、処理回数情報３０１を「＋１」する（上記例では、３＋１＝４とする）とともに、第１データファイル判定情報３０２を今回書込みが行なわれたエリアを示す情報（上記例では、「Ｂ」）に書換え、さらに、第２データファイル判定情報３０３は、今回書込み処理が行なわれなかったため、前回と同じ側が最新であることを示す情報（上記例では、「Ａ」）を書込む。
【００２９】
以上説明したデータ書込み処理におけるデータメモリ１０２内のデータ更新状況を示すと図６のようになり、同図（ａ）はデータ書込み前の状況を示し、同図（ｂ）はデータ書込み正常終了後の状況を示している。
【００３０】
以上説明したような処理であれば、たとえば、第１データファイル２０２のデータ書込み処理が開始された後に何らかの要因で当該処理が中断された場合、データファイル１Ｂへのデータ書込みが完了していないため、データファイル１Ｂのデータは正しいデータとして使用できない。このような場合、本実施の形態による処理では、データファイル１Ｂへのデータ書込みは開始された状態であるが、その後のデータ管理情報の更新処理が行なわれていないため、制御素子１０１は、データファイル１Ｂが最新であるとは判断せず、その１つ前のデータが格納されているデータファイル１Ａが最新であると判断する。このような処理により、データ書込み中断時に直前のデータを保証することが可能である。
【００３１】
また、上述したようにデータ書込み保証を用いたデータファイルに対して、データの読出し処理を行なう場合は、前述したデータ書込み処理の場合と同じく、データ管理情報から最新のデータがどちらのデータファイルに書込まれているかを判定し、最新データが格納されたデータファイルからデータを読出し、カードリーダ・ライタ１２へ応答する。
【００３２】
さらに、たとえば、１回の処理において複数のコマンドによる複数のデータファイルへのデータ書込みが発生する場合があるが、データの整合性を保つため、１回の取引ごとのデータ書込み保証を行なう場合についても対応が可能である。このような例は、たとえば、ＩＣカードを利用した入退室管理などが想定される。ここでは、複数のコマンドにより行なわれる一連の処理をまとめて取引と呼ぶこととする。
【００３３】
上記のように、取引ごとのデータ整合性を保証する必要がある場合には、前述した１つのデータファイルに対するデータ書込みの例を応用し、複数のデータファイルへのデータ書込み処理が全て正常に終了した場合、たとえば、１つの取引の最終処理において、データ管理情報の更新を行なう。このようにすることで、１つの取引内でのデータ書込み処理が全て正常に終了した場合のみ、データ管理情報が更新されるため、取引の途中でデータ書込み処理が中断された場合には、データ管理情報が更新されず、結果として、前回正常に取引が終了した際のデータ管理情報が残されることになる。
【００３４】
以上説明したように、上記実施の形態によれば、たとえば、ＩＣカードにおいて、データメモリ１０２へのデータ書込みを意味のあるデータ単位で保証することが可能である。また、通常のデータ書込みと比べ冗長時間も少なく、データ書込み保証機能を持ったＩＣカード処理の高速化のためにも極めて有効である。
【００３５】
なお、前記実施の形態では、接触式ＩＣカードを利用した処理を用いて例示を行なったが、たとえば、非接触式ＩＣカードなどへの応用も可能であり、また、携帯可能電子装置の形状もカード状に限らず、ブロック状や棒状など、他の形状であってもよい。
【図面の簡単な説明】
【００３６】
【図１】本発明の実施の形態に係る携帯可能電子装置としてのＩＣカードを取扱うＩＣカードシステムの構成例を示すブロック図。
【図２】ＩＣカードの構成を概略的に示すブロック図。
【図３】データメモリの構成を模式的に示す図。
【図４】データメモリのデータ格納例を示図。
【図５】データ管理情報の構成を示す図。
【図６】データ書込み処理におけるデータメモリ内のデータ更新状況を示す図。
【図７】１回の処理において１つのデータファイルに対してデータ書込みを行なう場合の処理を説明するフローチャート。
【符号の説明】
【００３７】
１１…ＩＣカード、１２…カードリーダ・ライタ、１３…端末装置、１４…キーボード、１５…ＣＲＴ表示部、１６…プリンタ、１０１…制御素子（制御部）、１０２…データメモリ（メモリ）、１０３…ワーキングメモリ、１０４…プログラムメモリ、１０５…コンタクト部、２０１…アプリケーションファイル、２０２…第１データファイル、２０３…第２データファイル、２０２ａ，２０２ｂ，２０３ａ，２０３ｂ…データ格納領域、２０４ａ，２０４ｂ…管理情報格納領域、３０１…処理回数情報、３０２…第１データファイル判定情報（識別情報）、３０３…第２データファイル判定情報（識別情報）。
【図１】
2005338926.tif 000003
【図２】
2005338926.tif 000004
【図３】
2005338926.tif 000005
【図４】
2005338926.tif 000006
【図５】
2005338926.tif 000007
【図６】
2005338926.tif 000008
【図７】
2005338926.tif 000009