JP3749798B2 - Icカードにおけるデータ書込方法およびicカードにおけるデータ読込方法 - Google Patents
Icカードにおけるデータ書込方法およびicカードにおけるデータ読込方法 Download PDFInfo
- Publication number
- JP3749798B2 JP3749798B2 JP34183898A JP34183898A JP3749798B2 JP 3749798 B2 JP3749798 B2 JP 3749798B2 JP 34183898 A JP34183898 A JP 34183898A JP 34183898 A JP34183898 A JP 34183898A JP 3749798 B2 JP3749798 B2 JP 3749798B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- commit buffer
- ram
- commit
- eeprom
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F7/00—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
- G07F7/08—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
- G07F7/10—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
- G07F7/1008—Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/34—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
- G06Q20/341—Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/34—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
- G06Q20/355—Personalisation of cards for use
- G06Q20/3552—Downloading or loading of personalisation data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/34—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
- G06Q20/357—Cards having a plurality of specified features
- G06Q20/3576—Multiple memory zones on card
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Networks & Wireless Communication (AREA)
- Accounting & Taxation (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【産業上の利用分野】
この発明は、インターネットなどのネットワーク上でプログラムを実行するための環境を組み込んでアプリケーションのロード機能を有するICカードにおけるデータ書込方法およびICカードにおけるデータ読込方法に関する。
【0002】
【従来の技術】
従来のICカードでは、ICカード内データの読み書きはすべてCOS(Card Operating System)に任されていた。COSはデータの構造が既知であるので、データ更新のアトミシティ(原子性:中間段がない状態、途中状態がない)は、データ構造を生かしてCOS固有に実現可能であった。
【0003】
近年、インターネットなどのネットワーク上でプログラムを実行するための環境(Java)が登場し、折りからのインターネットブームに乗って急速に普及している。そこで、この環境を組み込んだICカードの開発が進められている。
【0004】
上記環境を組み込んだICカードの場合、アプリケーション自体がデータを直接読み書きでき、そのデータ更新のアトミシティが保証されることが望まれる。合わせて、ブロックトランザクション機能が要求されている。COSは、アプリケーションのデータ構造を知ることができないため、アプリケーションによるデータ更新のアトミシティはデータ構造に依存しない汎用的なものでなければならない。
【0005】
上記環境を組み込んだICカードでは、ブロックトランザクション機能の実装が要求されている。更に、ブロックトランザクション以外でも、1バイト、2バイト、4バイト、nバイトのデータ更新のアトミシティが要求されている。
【0006】
また、ブロックトランザクション機能を提供するために、コミットバッファという概念が提唱されている。一般にコミットバッファはEEPROM等のパーシステントなメモリ空間に取られるが、EEPROMには書き込み耐用件数が限られ、書き込みに時間がかかっている。
【0007】
【発明が解決しようとする課題】
上記したように、インターネットなどのネットワーク上でプログラムを実行するための環境を組み込んだICカードにおいて、アプリケーション自体がデータを直接読み書きでき、そのデータ更新のアトミシティが保証されることが望まれ、ブロックトランザクション機能が要求され、アプリケーションによるデータ更新のアトミシティはデータ構造に依存しない汎用的なものでなければならず、データ更新のアトミシティが要求され、さらにブロックトランザクション機能を提供するためにEEPROM(不揮発性メモリ)には書き込み耐用件数が限られ、書き込みに時間がかかるという問題があった。
【0008】
そこで、この発明は、不揮発性メモリへの書き込みを少なくすると共に汎用的なアトミシティ管理を行うことのできるICカードにおけるデータ書込方法およびICカードにおけるデータ読込方法を提供することを目的とする。
【0009】
【課題を解決するための手段】
この発明のICカードにおけるデータ書込方法は、RAMとEEPROMとプロセッサとを有し、前記RAMと前記EEPROMの一部領域とからなるコミットバッファを設け、前記EEPROMの一部領域にパーシステントストレジを設け、前記プロセッサがプログラムを実行するプログラム実行環境部およびデータを管理するコミットバッファ管理部として機能するICカードにおいて、前記プログラム実行環境部から要求に応じて前記コミットバッファ管理部が前記RAMあるいは前記EEPROMにデータを書き込むデータ書込方法であって、前記プログラム実行環境部からnバイトのデータの書き込み要求を受けた前記コミットバッファ管理部が前記コミットバッファにnバイトのデータが書き込めるか否かを判断し、この判断により前記nバイトのデータが前記コミットバッファに書き込めないと判断した場合、前記コミットバッファ管理部が、当該ICカードがブロックトランザクション中か否かを判断し、この判断によりブロックトランザクション中でないと判断した場合、前記コミットバッファ管理部が、前記RAMにコミット情報を書き込み、前記コミットバッファのデータを前記パーシステントストレジに移動し、前記コミットバッファに前記nバイトのデータを書き込み、前記判断によりブロックトランザクション中であると判断した場合、前記コミットバッファ管理部が、前記RAMにアボート情報を書き込んで当該書き込み要求に対する処理を終了し、前記nバイトのデータがコミットバッファに書き込めると判断した場合、前記コミットバッファ管理部が、前記コミットバッファに前記nバイトのデータを書き込む。
【0010】
この発明のICカードにおけるデータ読込方法は、RAMとEEPROMとプロセッサとを有し、前記RAMと前記EEPROMの一部領域とからなるコミットバッファを設け、前記EEPROMの一部領域にパーシステントストレジを設け、前記プロセッサがプログラムを実行するプログラム実行環境部およびデータを管理するコミットバッファ管理部として機能するICカードにおいて、前記プログラム実行環境部から要求に応じて前記コミットバッファ管理部が前記RAMあるいは前記EEPROMからデータを読み込むデータ読込方法であって、前記プログラム実行環境部からデータ読み込み要求を受けた前記コミットバッファ管理部が前記RAMにアボート情報があるか否かを判断し、この判断により前記RAMにアボート情報がないと判断した場合、前記コミットバッファ管理部が、前記コミットバッファにおける指定アドレスにデータが存在するか否かを判断し、前記RAMにアボート情報がなく、前記コミットバッファにおける指定アドレスにデータが存在しないと判断した場合、前記コミットバッファ管理部が、前記パーシステントデータストレジからデータを読み込み、前記RAMにアボート情報がなく、前記コミットバッファにおける指定アドレスにデータが存在すると判断した場合、前記コミットバッファ管理部が、前記コミットバッファにおける指定アドレスからデータを読み込み、前記RAMにアボート情報があると判断した場合、前記コミットバッファ管理部が、前記パーシステントデータストレジからデータを読み込む。
【0019】
【発明の実施の形態】
以下、この発明の一実施の形態について図面を参照して説明する。
【0020】
図1は、ICカードシステムの概略構成を示している。
【0021】
このICカードシステムは、端末装置11とICカード12とにより構成される。端末装置11は、演算および人間からの入力を司る演算装置111と、ICカード12との入出力を司るリーダライタ112が結線113により接続されている。
【0022】
演算装置111は、演算を行うためのプロセッサを持ち、また人間系を含む外部よりの入力手段を持っている。ICカード12への要求と、結果ステータスの処理をここで行う。
【0023】
リーダライタ112は、演算装置111より要求を受け、その要求をカード挿入口120に挿入されているICカード12へと発行する。同様にICカード12からのステータスを受け取り、その結果を演算装置111へと報告する。
【0024】
ICカード12は、図1、図2に示すように、外部との接点となるコンタクト20、および演算、制御を行うプロセッサ21、一時データを配置するための揮発性メモリ(RAM)22、永続的にデータを保存するための不揮発性メモリ(EEPROM)23、プロセッサ21を補佐するコプロセッサ24、カードオペレーティングシステム(COS)やアプリケーションのロード/インストールの実行を行うカードドメインやアプリケーションのバイトコードをインタープリタするバーチャルマシンが搭載されているROM25を持つ。またコンタクト20を通じてリーダライタ112と通信を行う。上記不揮発性メモリ23としては、フラッシュメモリ、FRAM等を用いても良い。
【0025】
プロセッサ21は、端末装置11からロードされるアプリケーションをICカード12用のデータに変換するカードアプレットCAPを有している。
【0026】
上記プロセッサ21の制御のもと、2種類のメモリ、揮発性メモリ22と不揮発性メモリ23が管理される。また、特に負荷の生じる演算を行うためのコプロセッサ24を持つこともあり、これはプロセッサ21の指示のもと演算を行う。
【0027】
データは、図1におけるコンタクト20より入力され、一般にRAM22内に格納される。ここで受信されたデータは、プロセッサ21により解析され、処理される。ここで、保存が必要なデータはプロセッサ21の指示のもとEEPROM23に書き込まれ、特殊な演算が可能なものはコプロセッサ24へと処理の指示が送られる。また、RAM22では格納しきれない大きなデータなどが一時的に、EEPROM23の別領域に書き込まれることがある。
【0028】
上記EEPROM23は、図3、図4に示すように、カードID等が記録されるシステム領域31、領域チェック用のBCC領域32、コミットバッファ領域としてのCB領域33、スロットを管理するスロット管理テーブル34aやアプリケーション間の許可状態を示す共有テーブル34bが記録されるカードデータ領域34、複数スロットからなり各スロットごとにアプリケーションが記録できるユーザアプリケーション領域35により構成されている。BCC領域32は、カードデータ領域34、ユーザアプリケーション領域35の正しさをチェックするための領域である。
【0029】
ユーザアプリケーション領域35は、たとえば、図4に示すように、#0〜#7の8つのスロットにより構成されており、各スロット単位で、ユーザアプリケーションが記録されるようになっている。
【0030】
まず、図5のプログラムを用いて、ブロックトランザクション内外におけるアトミシティ管埋機能について説明する。
【0031】
COSは、端末装置11からC−APDUを受信後に自動的にトランザクションを開始する(101)
また、端末装置11にR−APDUを送信する前に自動的にトランザクションを終了する(105)。
【0032】
COS動作中は、常に連鎖トランザクション(処理)状態にある。
【0033】
トランザクションの同期点は、次のとおりである。
【0034】
ユーザがブロックトランザクションを開始した時点(102)
ユーザがブロックトランザクションを終了した時点(103)
コミットバッファが次のデータ更新を行うとオーバーフローすることを検出した時点(104)
ユーザがコールしたメソッドが、コミットバッファの反映を必要とするものであった時点(104)
図6は、データの読み込み、書き込み手順を示すものである。すなわち、プログラム201を読み出し、プロセッサ21のプログラム実行環境部202で実行し、コミットバッファ管理部203でコミットバッファ204を管理してパーシステントデータストレジ205に読み込み、書き込みを行う。なお、コミットバッファは、詳しくは後述するが、EEPROM23のほかにRAM22にも設けられる。
【0035】
次に、図6を参照してプログラムからのデータ読み出し手順の概要を説明する。
【0036】
プログラム201からプログラム実行環境部202へ要求された処理がデータの読み出しの場合、プログラム実行環境部202は、コミットバッファ管理部203へデ一タ読み出しを依頼する。プログラム実行環境部202は、読み出したいデ一タのアドレス及びデータ長を指定して、コミットバッファ管理部203へデータ読み出しを依頼する。
【0037】
コミットバッファ管理部203では、まずコミットバッファ204からのデータの読み出しを試行し、次にパーシステントデータストレジ205からの読み出しを試行する。コミットバッファ管理部203は、読み出した値をプログラム実行環境部202に返却する。プログラム実行環境部202は、読み出した値をプログラム201に返却する。
【0038】
次に、図6を参照してプログラムからのデータ書き込み手順の概要を説明する。
【0039】
プログラム201からプログラム実行環境部202へ要求された処理がデ一タの書き込みの場合、プログラム実行環境部202は、コミットバッファ管理部203へデータ書き込みを依頼する。プログラム実行環境部202は、書き込みたいデータのアドレス、値、及びデータ長を指定して、コミットバッファ管理部203へ書き込みを依頼する。
【0040】
コミットバッファ管埋部203では、まずコミットバッファ204からデータの書き込みを試行し、次にパーシステントストレジ205からデータの書き込みを試行する。
【0041】
プログラム実行環境部202は、プログラム201から要求されたデ一タ読み込み及び書き込みが何バイトであるかを知ることができる。プログラム実行環境部202は、データ更新を行う際、コミットバッファ管埋部203へ更新したいデ一タ数を通知する。コミットバッファ管理部203は、コミットバッファ204がオーバーフローするならば、同期点処理を行う。
【0042】
次に、コミットバッファ管理部203の書き込み動作を図7のフローチャートを参照して説明する。
【0043】
まず、nバイト(Byte)の書き込み要求を受けた際(ST1)、nバイト(Byte)書き込みがコミットバッファ204に入るかを確認し(ST2)、入らない場合、ブロックトランザクション中かを確認する(ST3)。ブロックトランザクション中でなければRAM22にコミット情報を残し(ST4)、コミットバッファ204のデータをパーシステントストレジ205に反映し(ST5)、コミットバッファ204にnバイト(Byte)のデータを書き込む(ST6)。
【0044】
また、ステップST2で、nバイト(Byte)書き込みがコミットバッファ204に入る場合は、ステップST6に進んでコミットバッファ204にnバイト(Byte)のデータを書き込む(ST6)。
【0045】
また、ステップST3で、ブロックトランザクション中であれば、RAM22にアボート情報を残して終了する(ST7)。
【0046】
次に、コミットバッファ管理部203の読み込み動作を図8のフローチャートを参照して説明する。
【0047】
まず、RAM22にアボート情報があるかを確認し(ST11)、アボート情報がない場合は、コミットバッファ204に指定アドレスのデータ(AI)が存在するかを確認し(ST12)、指定アドレスのデータ(AI)が存在しない場合はパーシステントデータストレジ205から値を読み込む(ST13)。
【0048】
また、ステップST11で揮発性メモリ(RAM)22にアボート情報がある場合は、ステップST13に進んでパーシステントデータストレジ205から値を読み込む(ST13)。
【0049】
また、ステップST12でコミットバッファ204に指定アドレスのデータが存在する場合、コミットバッファ204から値を読み込む(ST14)。
【0050】
次に、図9と図10を用いてコミットバッファ204の制御について説明する。コミットバッファ204には、図9に示すRAM22上のコミットバッファ300と図10に示すEEPROM23上のコミットバッファ400が存在する。
【0051】
図9のRAM22上のコミットバッファ300は、TID領域301と、アドレス情報領域302と、アフターイメージ(A1と略す)領域303と、BCC(バイトチェック)領域304からなる。アドレス情報領域302とA1領域303は組みになっていて、RAM22上のコミットバッファ300はそれらのn組から構成されている。現在までに登録されている組の数は、RAM22上のCBRカウンタ305に保存されている。
【0052】
図10のEEPROM23上のコミットバッファ400は、RAM22上のコミットバッファ300と同じ構造をもつm個の短編から構成されている。EEPROM23上のコミットバッファ400は、その先頭であるCB_TOP401から、その終端であるCB_BTM404の区間に存在する。CB_STA403は現在のトランザクションにおけるEEPROM22上のコミットバッファ204の開始位置を、CB_END402は現在のトランザクションにおけるEEPROM22上のコミットバッファ204の次回開始位置を示す。
【0053】
コミットバッファ400は、CB_STA403からCB_END402で囲まれる領域である。RAM22上のコミットバッファ300は、EEPROM23上のコミットバッファ400に追記する方式で書かれていく。RAM22上のコミットバッファ300は、長さがEEPROM23上のコミットバッファ400の1頁となるように設計されている。現トランザクションに関するコミットバッファ400は、CB_TOP401からCB_BTM404の間で循環するように使われ、CB_STA403及びCB_END402も、CB_TOP401からCB_BTM404の間で循環する。
【0054】
図9と図10を用いて、指定アドレスからのデ一タ読み込みについて詳述する。
【0055】
コミットバッファ管理部203は、次の手順でデータ値を得る。
1.RAM22上のコミットバッファ300に指定アドレスのデータがあるかを調べ、存在したならばそのA1を返却する。
2.EEPROM23上のコミットバッファ400に指定アドレスのデータがあるかを調べ、存在したならばそのA1を返却する。
3.EEPROM23上の指定アドレスのデータを返却する。
【0056】
図6、図9、図10を用いて、指定アドレスへのデータ書き込みについて詳述する。
【0057】
コミットバッファ管理部203は、次の手順でデータを書き込む。
1.更新情報をRAM22上のコミットバッファ300に反映する。
2.RAM22上のコミットバッファ300がオーバーフローするならば、RAM22上のコミットバッファ300をEEPROM23上のコミットバッファ400に反映する。
3.EEPROM23上のコミットバッファ400がオーバーフローするならば、EEPROM23上のコミットバッファ400をパーシステントデータストレジ205へ反映する。
【0058】
ブロックトランザクションのコミットが要求された場合や、アトミックなデータ更新が要求された場合には、上記1〜3の処理がオーバーフローと関係なく行われる。
【0059】
次に、有効なコミットバッファの構造と検出について説明する。
【0060】
TIDのMSBは、各トランザクションにおけるコミットバッファの終端フラグとなっている。EEPROM23上のコミットバッファ400は、ROM22上のコミットバッファ300の形式でm頁分あり、循環形式で使用する。RAM22上のコミットバッファ300がオーバーフローした場合は、EEPROM23上のCB_END402の示す頁に書き込まれ、CB_END402は次の頁を指すように更新される。
【0061】
[CB_STA403〜CB_END402)までが、現在のコミットバッファ上のデータである。なお、上記かぎかっこ「[」は、「以上、以下」の意味を示し、上記まるかっこ「)」は、「未満」の意味を示している。
【0062】
上記の同期点に達すると、TIDのコミット終端フラグが立った頁が書き込まれ、TIDが+1される。TIDはEEPROM23上のコミットバッファ頁数よりも十分大きな値でもって循環するものとする。
【0063】
1Cカード12が処理中に引き抜かれた場合、次回の1Cカード12が起動された時点でEEPROM23上のコミットバッファ400の検査が行われる。EEPROM23上のコミットバッファ400のTID301の終端フラグが立っている頁の検索が行われる。その頁の次の頁のTIDが該当T1DのT1D+1でない場合、コミットバッファ管理部203は、EEPROM23に未反映かもしれない有効なコミットバッファが存在すると判断する。そして該当TIDを持つEEPROMコミットバッファ204を実EEPROM205へ反映(ロールフォワード)させる。有効なコミットバッファが存在しない場合、実EEPROM205への反映は行われない(ロールバックする)。
【0064】
R−APDUを送信する直前に、コミットバッファ管理部203は、無効と判断されるような頁をEEPROM23のコミットバッファ400に書き込む。これにより、カード起動時に無駄なロールフォワードが発生しないようになる。
【0065】
以上説明したコミットバッファの構造とその処理方法は、EEPROM23への書き込みが少なく、また平均的にEEPROMコミットバッファが使われるようになる。
【0066】
また、コミットバッファの構造を図6のような構造とすることにより、ストリングサーチが早くできるCPUの場合、指定アドレスのデ一タの位置検索のためのアドレス302の走査がすばやくできる構造になる。
【0067】
次に、RAM22上のコミットバッファ300をEEPROM23上のコミットバッファ400に書き込む動作を図11のフローチャートを参照して説明する。
【0068】
コミットバッファ管理部203は、まずRAM22上にアボート情報があるかを確認し(ST21)、ある場合は終了する。ない場合は、RAM22上のコミットバッファ300を、EEPROM23上のコミットバッファ400に書き込むタイミングかを確認し(ST22)、書き込むタイミングであれば、EEPROM23上のコミットバッファ400をパーシステントストレジ205に書き込むタイミングかを確認し(ST23)、書き込むタイミングであれば、TID301のコミットバッファ終端フラグをたてる(ST24)。
【0069】
RAM22上のコミットバッファ300をEEPROM23上のコミットバッファ400のCB_END402からの領域に書き込む(ST25)。
【0070】
EEPROM23上のコミットバッファ400のCB_STA403〜CB_END402データをパーシステントストレジ205に書き込む(ST26)。
【0071】
続いて、CB_STA403をCB_END402の値とする(ST27)。そして、CB_END402をシフトさせ、CB_END402がCB_BTM404に達した場合、CB_END402はCB_TOP401の位置として終了する(ST28)。
【0072】
また、ステップST22で書き込むタイミングでない場合、RAM22上のコミットバッファ300にアドレス302とAI303を追加して終了する(ST29)。
【0073】
また、ステップST23で書き込むタイミングでない場合、RAM22上のコミットバッファ300をEEPROM23上のコミットバッファ400のCB_END402からの領域に書き込む(ST30)。そして、CB_END402をシフトさせ、CB_END402がCB_BTM404に達した場合、CB_END402はCB_TOP401の位置として終了する(ST31)。
【0074】
なお、ステップST22におけるRAM22上のコミットバッファ300をEEPROM23上のコミットバッファ400に書き込むタイミングとは、RAM22上のコミットバッファ300が次の書き込みでオーバーフローする場合、もしくはブロックトランザクションの開始前後の場合である。
【0075】
また、ステップST23におけるEEPROM23上のコミットバッファ400をパーシステントストレジ205に書き込むタイミングとは、EEPROM23上のコミットバッファ400が次の書き込みでオーバーフローする場合、もしくはブロックトランザクションの開始前後の場合である。
【0076】
次に、ICカード起動時に有効なコミットバッファを検索する動作を図12のフローチャートを参照して説明する。
【0077】
まず、CB_TOP401からCB_BTM404までの間で、TID301のコミット終端フラグを検索し(ST41)、ループ中であればCB_END404値を現在の短冊の位置とし(ST42)、EEPROM23上のコミットバッファ400にて、TID301のコミット終端フラグが立っているか確認し(ST43)、コミット終端フラグが立っていない場合はステップST41へ戻り、コミット終端フラグが立っている場合はEEPROM23上のコミットバッファ400にて次のTIDを取り出し、それが予定された値(現TID値+1)以外かを確認し(ST44)、予定された値であればステップST41へ戻り、予定された値以外であれば同じTIDをもつ短冊をCB_END404からAI走査方向へ調べる(ST45)。
【0078】
同じTIDをもつ一番古いセグメント位置をCB_STA403とする(ST46)。そして、EEPROM23上のコミットバッファ400をパーシステントストレジ205に反映する(ST47)。
【0079】
また、ステップST41において、コミット終端フラグを検索してループ終了ならば、CB_STA403値をCB_END402位置とする(ST48)。
【0080】
ステップST47、またはステップST48の後、終了してC−APDU受信状態へ進む。
【0081】
以上説明したように上記発明の実施の形態によれば、機器の動作中のデータ更新のアトミシティが常に保証される。
【0082】
また、コミットバッファへの書き込みが平均化されるため、パーシステントなデータストレジの書き込み耐用件数を少なくすることができる。
【0083】
また、パーシステントなデータストレジのコミットバッファの1頁の容量効率が上がり、書き込み耐用件数及び書き込み回数を低減させることができる。
【0084】
また、パーシステントストレジ上のコミットバッファ頁群から、有効なコミットバッファを検出できる上に、パーシステントストレジの特定領域への書き込みの大量発生を防ぐことができる。
【0085】
コミットバッファからのデータ読み込みトライ時間が早くなり、特にノーヒットだった場合に著しく速度が向上し、また、ヒットした場合にも速度が向上する。
【0086】
【発明の効果】
以上詳述したように、この発明によれば、不揮発性メモリへの書き込みを少なくすると共に汎用的なアトミシティ管理を行うことのできるICカードにおけるデータ書込方法、および、ICカードにおけるデータ読込方法を提供できる。
【図面の簡単な説明】
【図1】ICカードシステムの概略構成を示す図。
【図2】ICカードの概略構成を示すブロック図。
【図3】EEPROMの概略構成を示す図。
【図4】EEPROMのユーザアプリケーション領域の概略構成を示す図。
【図5】ブロックトランザクション内外におけるアトミシティ管埋機能を説明するための図。
【図6】データの読み込み、書き込み手順を示す図。
【図7】コミットバッファ管理部の書き込み動作を説明するためのフローチャート。
【図8】コミットバッファ管理部の読み込み動作を説明するためのフローチャート。
【図9】RAM上のコミットバッファを示す図。
【図10】EEPROM上のコミットバッファを示す図。
【図11】RAM上のコミットバッファをEEPROM上のコミットバッファに書き込む動作を説明するためのフローチャート。
【図12】ICカード起動時に有効なコミットバッファを検索する動作を説明するためのフローチャート。
【符号の説明】
11…端末装置
12…ICカード
21…プロセッサ(設定手段、処理手段、制御手段)
22…揮発性メモリ(RAM)
23…不揮発性メモリ(EEPROM)
Claims (2)
- RAMとEEPROMとプロセッサとを有し、前記RAMと前記EEPROMの一部領域とからなるコミットバッファを設け、前記EEPROMの一部領域にパーシステントストレジを設け、前記プロセッサがプログラムを実行するプログラム実行環境部およびデータを管理するコミットバッファ管理部として機能するICカードにおいて、前記プログラム実行環境部から要求に応じて前記コミットバッファ管理部が前記RAMあるいは前記EEPROMにデータを書き込むデータ書込方法であって、
前記プログラム実行環境部からnバイトのデータの書き込み要求を受けた前記コミットバッファ管理部が前記コミットバッファにnバイトのデータが書き込めるか否かを判断し、
この判断により前記nバイトのデータが前記コミットバッファに書き込めないと判断した場合、前記コミットバッファ管理部が、当該ICカードがブロックトランザクション中か否かを判断し、
この判断によりブロックトランザクション中でないと判断した場合、前記コミットバッファ管理部が、前記RAMにコミット情報を書き込み、前記コミットバッファのデータを前記パーシステントストレジに移動し、前記コミットバッファに前記nバイトのデータを書き込み、
前記判断によりブロックトランザクション中であると判断した場合、前記コミットバッファ管理部が、前記RAMにアボート情報を書き込んで当該書き込み要求に対する処理を終了し、
前記nバイトのデータがコミットバッファに書き込めると判断した場合、前記コミットバッファ管理部が、前記コミットバッファに前記nバイトのデータを書き込む、
ことを特徴とするICカードにおけるデータ書込方法。 - RAMとEEPROMとプロセッサとを有し、前記RAMと前記EEPROMの一部領域とからなるコミットバッファを設け、前記EEPROMの一部領域にパーシステントストレジを設け、前記プロセッサがプログラムを実行するプログラム実行環境部およびデータを管理するコミットバッファ管理部として機能するICカードにおいて、前記プログラム実行環境部から要求に応じて前記コミットバッファ管理部が前記RAMあるいは前記EEPROMからデータを読み込むデータ読込方法であって、
前記プログラム実行環境部からデータ読み込み要求を受けた前記コミットバッファ管理部が前記RAMにアボート情報があるか否かを判断し、
この判断により前記RAMにアボート情報がないと判断した場合、前記コミットバッファ管理部が、前記コミットバッファにおける指定アドレスにデータが存在するか否かを判断し、
前記RAMにアボート情報がなく、前記コミットバッファにおける指定アドレスにデータが存在しないと判断した場合、前記コミットバッファ管理部が、前記パーシステントデータストレジからデータを読み込み、
前記RAMにアボート情報がなく、前記コミットバッファにおける指定アドレスにデータが存在すると判断した場合、前記コミットバッファ管理部が、前記コミットバッファにおける指定アドレスからデータを読み込み、
前記RAMにアボート情報があると判断した場合、前記コミットバッファ管理部が、前記パーシステントデータストレジからデータを読み込む、
ことを特徴とするICカードにおけるデータ読込方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34183898A JP3749798B2 (ja) | 1998-12-01 | 1998-12-01 | Icカードにおけるデータ書込方法およびicカードにおけるデータ読込方法 |
EP19990118897 EP1006478B1 (en) | 1998-12-01 | 1999-09-24 | IC card and data updating method for IC card |
DE1999633841 DE69933841T8 (de) | 1998-12-01 | 1999-09-24 | Chipkarte und Datenaktualisierungsverfahren für eine Chipkarte |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34183898A JP3749798B2 (ja) | 1998-12-01 | 1998-12-01 | Icカードにおけるデータ書込方法およびicカードにおけるデータ読込方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000172804A JP2000172804A (ja) | 2000-06-23 |
JP3749798B2 true JP3749798B2 (ja) | 2006-03-01 |
Family
ID=18349148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP34183898A Expired - Lifetime JP3749798B2 (ja) | 1998-12-01 | 1998-12-01 | Icカードにおけるデータ書込方法およびicカードにおけるデータ読込方法 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP1006478B1 (ja) |
JP (1) | JP3749798B2 (ja) |
DE (1) | DE69933841T8 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10320062A1 (de) | 2003-05-06 | 2004-12-16 | Giesecke & Devrient Gmbh | Speicherverwaltung bei einem tragbaren Datenträger |
KR100951949B1 (ko) | 2007-11-15 | 2010-04-09 | 주식회사 케이티 | 스마트 카드에서의 데이터베이스 관리 시스템을 이용한정보 관리 방법 및 장치 |
JP2009251818A (ja) * | 2008-04-03 | 2009-10-29 | Dainippon Printing Co Ltd | Icチップ用データ書き込み装置及びデータ書き込み方法 |
JP5259513B2 (ja) | 2009-07-15 | 2013-08-07 | 株式会社東芝 | 携帯可能電子装置、icカードおよび携帯可能電子装置の制御方法 |
JP5971713B2 (ja) * | 2012-09-20 | 2016-08-17 | 株式会社東芝 | Icカード |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2701578B1 (fr) * | 1993-02-16 | 1995-03-31 | Gemplus Card Int | Procédé d'écriture dans une mémoire non volatile, notamment dans une carte à mémoire. |
KR100329063B1 (ko) * | 1996-10-25 | 2002-03-18 | 디디어 레묀 | 마이크로컨트롤러를 이용한 고급 프로그래밍 언어 사용 |
US6488211B1 (en) * | 1997-05-15 | 2002-12-03 | Mondex International Limited | System and method for flexibly loading in IC card |
-
1998
- 1998-12-01 JP JP34183898A patent/JP3749798B2/ja not_active Expired - Lifetime
-
1999
- 1999-09-24 EP EP19990118897 patent/EP1006478B1/en not_active Revoked
- 1999-09-24 DE DE1999633841 patent/DE69933841T8/de active Active
Also Published As
Publication number | Publication date |
---|---|
EP1006478A2 (en) | 2000-06-07 |
DE69933841T2 (de) | 2007-03-08 |
DE69933841D1 (de) | 2006-12-14 |
EP1006478B1 (en) | 2006-11-02 |
JP2000172804A (ja) | 2000-06-23 |
EP1006478A3 (en) | 2001-02-28 |
DE69933841T8 (de) | 2007-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7840785B1 (en) | Transparent concurrent atomic execution | |
US5410700A (en) | Computer system which supports asynchronous commitment of data | |
JP5284103B2 (ja) | ソフトウェアトランザクショナルメモリ動作の最適化 | |
US5930807A (en) | Apparatus and method for fast filtering read and write barrier operations in garbage collection system | |
WO2000045257B1 (en) | Executing programs for a first computer architecture on a computer of a second architecture | |
MXPA97002265A (en) | Method and apparatus for processing memory type information within a microprocess | |
US8397045B2 (en) | Memory management device, memory management method, and memory management program | |
TWI812750B (zh) | 交易式比較及丟棄指令 | |
JP3749798B2 (ja) | Icカードにおけるデータ書込方法およびicカードにおけるデータ読込方法 | |
JP4398619B2 (ja) | Icカードとこのicカードにおける揮発性メモリの管理方法 | |
CN113760193B (zh) | 用于资源受限制装置的数据读写方法、装置及指令集 | |
EP1573517B1 (en) | Method and apparatus for processing transactions in a data processing system | |
EP0969358A2 (en) | Information processing device and method for performing parallel processing | |
JP3515417B2 (ja) | 非持続メモリ内にオブジェクトを作成する方法および装置、ならびにオブジェクトへのアクセス可能性を維持する方法 | |
Oestreicher | Transactions in java card | |
WO2002091189A2 (en) | Identifying and tracking object references in a java programming environment | |
EP2102748B1 (en) | System and method for recovery of memory transactions | |
CN110471626B (zh) | 应用于Java Card的Nor Flash管理层及方法 | |
JP3991443B2 (ja) | タスク切り替え方法及びデータ処理装置 | |
WO2002091172A2 (en) | Identifying references to objects during bytecode verification | |
JP2004348342A (ja) | Icカードとicカードの処理方法 | |
JP4195822B2 (ja) | Icカード及びicカードプログラム | |
JP2000148945A (ja) | Icカード | |
CN117472803B (zh) | 原子指令执行方法、装置及电子设备 | |
US20120131634A1 (en) | Method of executing an application embedded in a portable electronic device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040810 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041012 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050830 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051031 |
|
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: 20051129 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051205 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091209 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091209 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101209 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111209 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121209 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121209 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131209 Year of fee payment: 8 |
|
EXPY | Cancellation because of completion of term |