JP3749798B2 - Icカードにおけるデータ書込方法およびicカードにおけるデータ読込方法 - Google Patents

Icカードにおけるデータ書込方法およびicカードにおけるデータ読込方法 Download PDF

Info

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
Application number
JP34183898A
Other languages
English (en)
Other versions
JP2000172804A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=18349148&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP3749798(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP34183898A priority Critical patent/JP3749798B2/ja
Priority to EP19990118897 priority patent/EP1006478B1/en
Priority to DE1999633841 priority patent/DE69933841T8/de
Publication of JP2000172804A publication Critical patent/JP2000172804A/ja
Application granted granted Critical
Publication of JP3749798B2 publication Critical patent/JP3749798B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms 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/10Mechanisms 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/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment 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/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment 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/355Personalisation of cards for use
    • G06Q20/3552Downloading or loading of personalisation data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment 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/357Cards having a plurality of specified features
    • G06Q20/3576Multiple 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

【0001】
【産業上の利用分野】
この発明は、インターネットなどのネットワーク上でプログラムを実行するための環境を組み込んでアプリケーションのロード機能を有する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の読み込み動作を図のフローチャートを参照して説明する。
【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)

  1. RAMとEEPROMとプロセッサとを有し、前記RAMと前記EEPROMの一部領域とからなるコミットバッファを設け、前記EEPROMの一部領域にパーシステントストレジを設け、前記プロセッサがプログラムを実行するプログラム実行環境部およびデータを管理するコミットバッファ管理部として機能するICカードにおいて、前記プログラム実行環境部から要求に応じて前記コミットバッファ管理部が前記RAMあるいは前記EEPROMにデータを書き込むデータ書込方法であって、
    前記プログラム実行環境部からnバイトのデータの書き込み要求を受けた前記コミットバッファ管理部が前記コミットバッファにnバイトのデータが書き込めるか否かを判断し
    この判断により前記nバイトのデータ前記コミットバッファに書き込めないと判断した場合、前記コミットバッファ管理部が、当該ICカードがブロックトランザクション中か否かを判断し
    この判断によりブロックトランザクション中でないと判断した場合、前記コミットバッファ管理部が、前記RAMにコミット情報を書き込み、前記コミットバッファのデータを前記パーシステントストレジに移動し、前記コミットバッファに前記nバイトのデータを書き込み、
    前記判断によりブロックトランザクション中であると判断した場合、前記コミットバッファ管理部が、前記RAMにアボート情報を書き込んで当該書き込み要求に対する処理を終了し、
    前記nバイトのデータがコミットバッファに書き込めると判断した場合、前記コミットバッファ管理部が、前記コミットバッファに前記nバイトのデータを書き込む、
    ことを特徴とするICカードにおけるデータ書込方法。
  2. RAMとEEPROMとプロセッサとを有し、前記RAMと前記EEPROMの一部領域とからなるコミットバッファを設け、前記EEPROMの一部領域にパーシステントストレジを設け、前記プロセッサがプログラムを実行するプログラム実行環境部およびデータを管理するコミットバッファ管理部として機能するICカードにおいて、前記プログラム実行環境部から要求に応じて前記コミットバッファ管理部が前記RAMあるいは前記EEPROMからデータを読み込むデータ読込方法であって、
    前記プログラム実行環境部からデータ読み込み要求を受けた前記コミットバッファ管理部が前記RAMにアボート情報があるか否かを判断し
    この判断により前記RAMにアボート情報がないと判断した場合、前記コミットバッファ管理部が、前記コミットバッファにおける指定アドレスデータが存在するか否かを判断し
    前記RAMにアボート情報がなく、前記コミットバッファにおける指定アドレスデータが存在しないと判断した場合、前記コミットバッファ管理部が、前記パーシステントデータストレジからデータを読み込み、
    前記RAMにアボート情報がなく、前記コミットバッファにおける指定アドレスデータが存在すると判断した場合、前記コミットバッファ管理部が、前記コミットバッファにおける指定アドレスからデータを読み込み、
    前記RAMにアボート情報があると判断した場合、前記コミットバッファ管理部が、前記パーシステントデータストレジからデータを読み込む、
    ことを特徴とするICカードにおけるデータ読込方法。
JP34183898A 1998-12-01 1998-12-01 Icカードにおけるデータ書込方法およびicカードにおけるデータ読込方法 Expired - Lifetime JP3749798B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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