(57)【要約】【課題】  本発明は、メモリカードとそのカードを読取るためのリーダを含むカードトランザクションシステムにおけるデータ変更のための方法に関する。【解決手段】  カードは、第１メモリ（ＲＡＭ）及びデータ記録が占有するロケーションを有する第２メモリ（ＥＰＲＯＭ）を含む。トランザクション毎にデータロケーション少なくも１つの変更又は新規記録の追加を伴う。本方法は、以下の、ａ）空きロケーションのアドレスを、ＥＰＲＯＭメモリ内の第１固定ロケーションに置かれる前回制御レジスタから読取るステップ（１７）、ｂ）新規の変更記録又は追加を空きロケーションに書込むステップ（１８）、変更又は追加すべき新規記録毎にステップａ）及びｂ）を繰返すステップ、及びＥＰＲＯＭメモリ内の第２固定ロケーションに、次のトランザクションにおいて使用するため、ＥＰＲＯＭメモリ内の空きロケーションのアドレスを含む新規制御レジスタを書込むステップ（２２）を含む。
2005524133.tif 000002
【特許請求の範囲】
【請求項１】
メモリカードと、前記カードをリーダに対し所定の位置に置くとき前記カードを読取る能力のあるリーダと、を備えるカードに基づくトランザクションシステムにおけるデータ変更のための処理手順であって、前記カードは第１ＲＡＭメモリと第２不揮発性消去可能かつ書換可能メモリとを備え、後者が前記カードを用いておこなうトランザクション関連のデータ記録を含むロケーションを含み、トランザクション毎に少なくも１つの前記データロケーションの変更、又は新規レコードの追加が発生するとき、
ａ．変更すべきデータレコード又は追加すべきレコードのため、前記第２メモリの空きロケーションのアドレスを、前記第２メモリの第１確定ロケーションに置かれる前回チェックレジスタ内から読取るステップ（１７）と、
ｂ．新規に変更又は追加するレコードを前記空きロケーションに書込むステップ（１８）と、
ｃ．変更又は追加すべき新規レコード毎に、ステップａ）とｂ）とを繰り返すステップと、
ｄ．前記第２メモリの第２確定ロケーションにおいて、次のトランザクションにおいて使用すべき前記第２メモリの空きロケーションのアドレスを含む新規チェックレジスタに書込むステップ（２２）と、
の各ステップを特徴とする処理手順。
【請求項２】
ステップａ）の前に実行する次のステップ
ｉ）変更又は追加すべきレコードが置かれるロケーションの番号を前記第１ＲＡＭに書込むステップ（１６）を、
も含む、請求項１に記載の処理手順。
【請求項３】
実行すべき操作が追加すべきレコードに関するとき、前記第１ＲＡＭに書込む前記ロケーション番号が仮想番号である、請求項２に記載の処理手順。
【請求項４】
トランザクションを初期化するとき、０に設定されてレコードの変更又は追加操作の度に１宛増加することが出来る第１変数（ＮｂＵｐｄａｔｅｓ）と、０に設定されてトランザクションが進行中のとき０から１に変更することの出来る第２変数（ＴｒａｎｓａｃｔｉｏｎＬｅｖｅｌ）との、２つの変数をメモリに記録するステップを含む、請求項１又は２又は３に記載の処理手順。
【請求項５】
トランザクションを終了するとき、変更済み又は追加済みのレコードを含むロケーションを消去するステップ（２６）を含む、請求項１乃至４のうちいずれか１つに記載の処理手順。
【請求項６】
トランザクションを終了するとき、前回チェックレジスタを含む前記第１確定ロケーションを消去するステップ（２４）を含む、請求項５に記載の処理手順。
【請求項７】
トランザクションを終了するとき、変更済み又は追加済みレコードを含む前記ロケーションの番号を、前記第１ＲＡＭから前記新規レジスタに書込むステップを含む、請求項６に記載の処理手順。
【請求項８】
トランザクションを終了するとき、前記第１ＲＡＭの前記変数を０にリセットするステップ（２８）を含む、請求項７に記載の処理手順。
【請求項９】
前記新規チェックレジスタのフィールド（ＦｌａｇＣｌｏｓｅ）を、前記前回チェックレジスタの前に０にリセットし、変更済み又は追加済みの前記レコードを、これら操作の実行後、消去して別の値（Ａ５）に設定するステップを含む、請求項８に記載の処理手順。
【請求項１０】
請求項１乃至９のうちいずれか１つに記載の処理手順のステップを実行するため適応する手段を含むシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カード上に記憶されるデータレコードの一部が、カードリーダを用いるトランザクションの間に変更されるシステムに関し、より明確にはリーダを用いるトランザクションの間にメモリカードデータを変更するための処理手順に関する。
【背景技術】
【０００２】
スマートカードとも呼ばれるメモリカードは、カード所持者関連のデータのサポートとして次第に使用が増加している。これらのカードの中でも、カード中に収容されるアンテナと関連するリーダとの間の遠隔電磁結合により情報を交換する非接触型カードは、入場制限区域に対する入場手段として、個人識別の手段又はさらに電子財布として開発された。
スマートカード内でデータを含むメモリは、通常、不揮発性、消去可能で書換可能のメモリであり、ＥＥＰＲＯＭ型であるのが好ましい。この型のメモリは、３２バイトなど確定長のデータレコードを含む複数のロケーションに分割される。
【０００３】
トランザクションの間に、カードのメモリに含まれるレコードの幾つかは、トランザクションの結果生じる新条件に適応させるため一般的には変更されなければならない。残念乍ら、メモリ、特にＥＥＰＲＯＭ型のメモリは、比較的長い消去／書込時間（５ｍｓなど）を要し、その間の電源異常によりレコードに含まれるデータを消失することがある。
加えて、各種トランザクション操作は、その間に若干のデータレコードが変更され、オン／オフ形態で作動する。トランザクション安全上の配慮から、操作中に電源異常があるときは、トランザクション全部を繰り返さなければならない。もし、トランザクションを最初から繰り返すことが出来ないと、細心の注意が必要なデータ（電子財布の預金残高など）を永久に失う危険を伴う。
【０００４】
上述の問題に対処するため、データを変更する前にバッファメモリにデータレコードを記録する１つの試みが為された。変更全部を完了した後、古いレコードをバッファメモリから消去する。
残念乍ら、この方法は、各レコードに付き４つの作業、即ちバッファ領域へのセーブ、変更すべきレコードの消去、書換え、及びバッファ領域の古いレコードの消去、が必要である。場合に依って、トランザクションが、８個の操作など、多数の操作を含むときは、トランザクションに長時間掛かることがあり、カード所持者がカードをリーダに提示するため掛けられる時間に相応しなくなる。加えて、この方法の大きい欠点は、データ領域にあるレコードが常に同一位置に置かれること、及びバッファ領域がメモリ内の固定場所に置かれることである。これはメモリ上の「負荷」を増加し、実行されるトランザクション数を、操作数がシリコン製造者の保証する所与の値に限定される程度に、制限する。
【０００５】
上述の問題を更に難しくする別の問題は、変更レコードを置くための空きセクタの指定に関連する。在来の方法は、空きセクタを発見するためメモリを走査することを含む。この作業は、それが記録及び消去に関する記述の作業に要する時間に加算されるので、時間が掛かる。しかしこの時間は、変更すべきレコードが数個あり、したがって空きセクタに関する検索が数回あるときは、極めて重要でトランザクション時間と両立しなくなる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
これは、本発明の目的が、トランザクションの間にメモリカードデータを変更するための処理手順を作成することである理由である。その処理手順は、変更のオン／オフ形態の同期が、トランザクションの間カードに対して制限されるアクセス時間と両立する短時間で、トランザクションの間に行うことが出来る一方で、メモリの一部をデータセーブ用バッファとして使用することを避け、それによりデータを常に同一メモリ領域に書込むことから生じる「負荷」を避ける。
【課題を解決するための手段】
【０００７】
本発明はしたがって、メモリカードがリーダに対し所定の位置に置かれるとき、メモリカード及びカードを読取る能力のあるリーダの特徴であって、カードに基づくトランザクションシステムにおけるデータ変更のための処理手順に関する。カードは、第１メモリ（ＲＡＭ）及び第２不揮発性消去可能書換可能メモリ（ＥＥＰＲＯＭ）を含み、後者は、カードが実行するトランザクション、各トランザクションはデータロケーション最低１つの変更及び新規レコードの追加を生じる、に関するデータレコードを含むロケーションを有する。
【０００８】
本発明による方法は、以下のステップを含む;
ａ）変更すべきデータレコード又は追加すべきレコードのため、第２メモリの空きロケーションのアドレスを、第２メモリの第１確定ロケーションに置かれる前回チェックレジスタ内から読取るステップ、
ｂ）新規に変更又は追加するレコードを空きロケーションに書込むステップ、
ｃ）変更又は追加すべき新規レコード毎に、ステップａ）とｂ）とを繰り返すステップ、
ｄ）第２メモリの第２確定ロケーションにおいて、次のトランザクションにおいて使用すべき第２メモリの空きロケーションのアドレスを含む新規チェックレジスタに書込むステップ。
【発明を実施するための最良の形態】
【０００９】
本発明の目的、対象及び特徴は、本発明による処理手順の流れ図をあらわす唯一の図面との関連で取上げるとき、以下の記述からより明らかになるであろう。
【００１０】
以下の記述において、トランザクションのため用いるスマートカードは、３２バイトなど全く同一のセクタに分割済みのＥＥＰＲＯＭメモリを備えると仮定する。本発明の本質的な特徴は、メモリのセクタのうち１つを占めるチェックレジスタの使用である。このチェックレジスタは、トランザクションをおこなうため使用する目的のデータを含み、その中には新規データを記録するため使用されるメモリの空きセクタの識別番号がある。このチェックレジスタは、詳細には以下のフィールドを含む。
【００１１】
−ＦｌａｇＯｐｅｎ：  トランザクションが開いているか否かを示す。
−ＯｌｄＳｅｃｔ：  セクタの変更前にセクタ番号を示す。
−ＰｒｅｖＲｅｇ：  前回チェックレジスタが置かれたセクタ番号を示す。
−ＮｅｘｔＲｅｇ：  前回チェックレジスタが置かれたセクタ番号を示す。
−ＦｌａｇＣｌｏｓｅ：  トランザクションが閉じられているか否かを示す。
−ＮｅｗＳｅｃｔ：  新規変更のための空きセクタ番号を示す。  
トランザクションが実行されていると仮定すると、本発明による処理手順は、単１図面に示す流れ図にしたがって行われる。最初に初期化ステップ（ステップ１０）がある。これは、カードのＲＡＭメモリの中で変数４つを初期化することを含む。
【００１２】
−チェックレジスタアドレス：チェックレジスタが置かれるセクタの番号。
−ＮｂＵｐｄａｔｅｓ：レコード変更又は新規レコード追加の後に１増える変数。
−ＴｒａｎｓａｃｔｉｏｎＬｅｖｅｌ：トランザクションが進行中であることを示すビット。
−ＯｌｄＳｅｃｔｏｒ：トランザクションを通じてデータが記録されるセクタ番号を示す。
【００１３】
２番目のステップは、トランザクション開始ステップ（ステップ１２）で、この間にＲＡＭメモリのＴｒａｎｓａｃｔｉｏｎＬｅｖｅｌビットが０から１に変わり、０であったチェックレジスタのＦｌａｇＯｐｅｎフィールドが１６進数値Ａ５に設定される。
次のステップでは、メモリロケーションに変更又は追加すべきレコードがあるか否かを判定する（ステップ１４）。ある場合は、旧セクタの番号をＲＡＭメモリに書込み（ステップ１６）、新規レコードを書込まなければならないセクタのアドレスをチェックレジスタ内に読取り（ステップ１７）、チェックレジスタ内に読取る番号により識別されるセクタに新規レコードを書込み（ステップ１８）、ＲＡＭメモリ内のチェックデータの変更を実行する（ステップ２０）。別のレコードを変更又は追加すべきときは、処理手順は判定に戻る（ステップ１４）。
【００１４】
本発明の利点は、主として、トランザクションが殆ど常に幾つかのレコード変更を必要とする事実にあることに注目しなければならない。本発明により、空きセクタを検索する必要がなくチェックレジスタの中に示されるので、時間を消失することなくチェックレジスタを利用することが出来る。
レコード追加であってレコード変更でない場合には、このセクタが存在しないので、ＲＡＭ内のセクタ番号は記憶されず、代わりに仮想番号０が記憶されることに注意しなければならない。
【００１５】
【表１】
2005524133.tif 000003
【００１６】
メモリに書込むレコードがもはやないとき、新規データを含む新規チェックレジスタが、旧チェックレジスタの与える番号の空きセクタに書込まれ（ステップ１８）、旧チェックレジスタは消去され（ステップ２０）、変更を生じたレコードを含む旧セクタが消去され（ステップ２２）、ＲＡＭチェック変数が０にリセットされる（ステップ２４）。
【００１７】
本発明の処理手順を示すため、以下の例を考察することが出来る。ここでＥＥＰＲＯＭメモリはトランザクションの前に次の形を成している。
セクタ５に置かれるチェックレジスタは下記のデータを含む。
−ＦｌａｇＯｐｅｎ：    ００
−ＯｌｄＳｅｃｔ：      ０、０、０、０、０、０、０、０、０
−ＰｒｅｖＲｅｇ：        ０
−ＮｅｘｔＲｅｇ：      ６
−ＦｌａｇＣｌｏｓｅ：  Ａ５
−ＮｅｗＳｅｃｔ：      ７、８、９、１０、１１、１２、１３、１４
トランザクションが連続的な４つの変更、
−  レコード２の変更
−  レコード３の変更
−  レコード５の追加
−  レコード２の２度目の変更
を含むと仮定する。
【００１８】
初期化ステップに続いて、処理手順のステップは次の通りである。
−  トランザクションの開始：カレントレジスタで１６進Ａ５にあるＦｌａｇＯｐｅｎフィールドに書込み、変数を初期化、
＞ＮｂＵｐｄａｔｅｓ  ＝  ０
＞ＴｒａｎｓａｃｔｉｏｎＬｅｖｅｌ  ＝  １
＞ＯｌｄＳｅｃｔ［８］  ＝｛０、０、０、０、  、０、０、０、０｝
−  レコード＃２の変更：旧セクタ＃２をＲＡＭに記憶し、新規レコードをセクタ＃７に書込む。ＲＡＭ変数は、
＞ＮｂＵｐｄａｔｅｓ  ＝  １
＞ＴｒａｎｓａｃｔｉｏｎＬｅｖｅｌ  ＝  １
＞ＯｌｄＳｅｃｔ［８］  ＝｛２、０、０、０、０、０、０、０、０｝
【００１９】
−  レコード＃３の変更：旧セクタ＃３をＲＡＭに記憶し、新規レコードをセクタ＃８に書込む。ＲＡＭ変数は、
＞ＮｂＵｐｄａｔｅｓ  ＝  ２
＞ＴｒａｎｓａｃｔｉｏｎＬｅｖｅｌ  ＝  １
＞ＯｌｄＳｅｃｔ［８］  ＝｛２、３、０、０、０、０、０、０、０｝
−  レコード＃５の追加：旧セクタ＃０をＲＡＭに記憶し（０は欠如旧セクタを意味する）、新規レコードをセクタ＃９に書込む。ＲＡＭ変数は、
＞ＮｂＵｐｄａｔｅｓ  ＝  ３
＞ＴｒａｎｓａｃｔｉｏｎＬｅｖｅｌ  ＝  １
＞ＯｌｄＳｅｃｔ［８］  ＝｛２、３、０、０、０、０、０、０、０｝
【００２０】
−  レコード＃２の２度目の変更：旧セクタ＃７をＲＡＭに記憶し、新規レコードをセクタ＃１０に書込む。ＲＡＭ変数は、
＞ＮｂＵｐｄａｔｅｓ  ＝  ４
＞ＴｒａｎｓａｃｔｉｏｎＬｅｖｅｌ  ＝  １
＞ＯｌｄＳｅｃｔ［８］  ＝｛２、３、０、７、０、０、０、０、０｝
−  トランザクションの終了：
＞ＴｒａｎｓａｃｔｉｏｎＬｅｖｅｌを減らす。
＞セクタ＃６にある新規レジスタにＦｌａｇＣｌｏｓｅ＝０を書込む
＞旧チェックレジスタを消去
＞旧セクタ＃２、＃３、＃７を消去
＞＄Ａ５にＦｌａｇＣｌｏｓｅを書込む
＞初期化：
・ＮｂＵｐｄａｔｅｓ  ＝  ０
・ＴｒａｎｓａｃｔｉｏｎＬｅｖｅｌ  ＝  ０
・ＯｌｄＳｅｃｔ［８］  ＝｛ｘ、ｘ、ｘ、ｘ、ｘ、ｘ、ｘ、ｘ、ｘ｝
【００２１】
トランザクションの後、ＥＥＰＲＯＭメモリは次の形を取る。
新しいチェックレジスタは下記のデータを含む。
−ＦｌａｇＯｐｅｎ：    ００
−ＯｌｄＳｅｃｔ：      ２、３、０、７、０、０、０、０、
−ＰｒｅｖＲｅｇ：        ５
−ＮｅｘｔＲｅｇ：      １１
【表２】
2005524133.tif 000004
−ＦｌａｇＣｌｏｓｅ：  Ａ５
−ＮｅｗＳｅｃｔ：      １２、１３、１４、１５、１６、１７
【００２２】
新チェックレジスタが、その値をＲＡＭが与えた旧セクタの識別番号と、旧チェックレジスタが置かれていたセクタの識別番号と、次のチェックレジスタを置くべきセクタの識別番号と、次の変更を書込むべき空きセクタの番号と、トランザクションを閉じていることの指示（ＦｌａｇＣｌｏｓｅ）と、を含むことが判る。
ＥＥＰＲＯＭメモリに対し変更をおこなっている最中に電源故障が起こると、ＲＡＭの内容は失われるけれども、データの状態により、細心の注意が必要なデータを消失する危惧を持つことなくいずれのトランザクションをも０から繰り返すことが出来る。チェックレジスタ内で「空き」とラベルされているセクタ全部を消去するか、又はその内容を走査して書込まれたか否か（されていないとき、これらは０を含む）を点検した後、書込まれたものだけを消去するかのいずれかにより、新規データを用いて書込んだと思われるセクタ全部を単純に消去しなければならない。
【００２３】
トランザクション終了の最中に電源故障が起こると、新規チェックレジスタのＦｌａｇＣｌｏｓｅフィールドに０を置いてあることがトランザクションを終了していないことを示すこと、及び最後から２番目の作業で消去された旧セクタの内容を考慮に入れなければならないこと、最後の作業はトランザクションの終了を示すＦｌａｇＣｌｏｓｅの書込みであること、に注意しなければならない。
本発明の処理手順は、データをバッファメモリにセーブする処理手順に比較して少数のサイクルを使用する。在来の処理手順においては、データ変更毎に、バッファメモリ領域への書込み、将来ロケーションの消去、このロケーションへの新規データ書込み及びバッファメモリ領域内のロケーションの消去、と４回のＥＥＰＲＯＭ操作が必要である。その先頭に、バッファメモリ管理及び記憶すべきデータに関する情報の管理をもまた追加しなければならない。
【００２４】
本発明による処理手順は、変更毎に２回のＥＥＰＲＯＭ操作、即ち新規セクタへの新規データの書込みと旧セクタの消去とを要するのに対し、従来は４回の一般操作、即ち最初のチェックレジスタへのＦｌａｇＣｌｏｓｅの書込みと、旧チェックレジスタの消去と、新規チェックレジスタの書込みと、チェックレジスタへのＦｌａｇＣｌｏｓｅの書込みと、を必要とする。
このような方法で、Ｎ個の変更について、在来処理手順と本発明による処理手順におけるＥＥＰＲＯＭメモリ操作数を示すと同時に、得られる節約を示す下記の比較表を作ることが出来る。
【表３】
2005524133.tif 000005
【００２５】
ＥＥＰＲＯＭメモリへの書込み又は消去操作が５ｍｓ続くときは、最低４操作でなされる節約は３０ｍｓとなる。
回数の利得のほかに、空きセクタがチェックレジスタに示されるとの事実のため、４個の空きセクタを見出すためＥＥＰＲＯＭを走査することが不要になるとの事実から生じる時間の利得をも加算しなければならない。
【図面の簡単な説明】
【００２６】
【図１】本発明方法による処理手順を示す流れ図。
【図１】
2005524133.tif 000006
【国際調査報告】
2005524133.tif 000007
2005524133.tif 000008
2005524133.tif 000009
2005524133.tif 000010
2005524133.tif 000011
2005524133.tif 000012