(57)【特許請求の範囲】
【請求項１】
ＩＣカード内のプログラムから前記ＩＣカード内のメモリの前記プログラムが指定する所定のアドレスに対する書き込み要求が電源投入後初回であったとき、前記メモリよりも読み書きの高速な前記ＩＣカード内の一時メモリヘ一時的にデータを書き込み、前記一時メモリの書き込み先のアドレスを保持し、
前記プログラムから該プログラムが指定する前記所定のアドレスヘの書き込み要求が次以降にあったとき、前記一時メモリの、前記所定のアドレスに対するデータが書き込まれている同じ場所へ、書き込みを再度行い、
また、前記プログラムからあるアドレスの読み込み要求があったとき、前記一時メモリに書き込まれたデータの読み出しを行い、このアドレスが前記一時メモリに登録されていないときは、前記メモリからデータの読み出しを行い、
前記一時メモリが満杯になったとき、または外部からのコマンドに対するレスポンスを送信する前に、前記一時メモリに書き込まれたデータをすべて前記メモリへ格納し、その後、前記一時メモリに書き込まれたデータをすべてクリアし、
前記プログラムからの要求により、前記プログラムの要求する時点に、前記一時メモリに書き込まれたデータをすべて前記メモリに書き込み、データの更新を行い、または前記一時メモリに書き込まれたデータをすべてクリアするトランザクション処理を行うことを特徴とするＩＣカード内メモリアクセス制御方法。
【請求項２】
ＩＣカード内メモリに対するプログラムからの書き込みあるいは読み込み要求と、一時メモリに一時的に書き込まれたデータのすべてを前記メモリへ更新し、あるいは前記一時メモリに書き込まれたデータの全てを廃棄する要求を検出する読み書き検出手段と、
一時的に書き込まれるデータを前記一時メモリに格納する一時データ格納手段と、
前記一時メモリに一時的に書き込んだアドレスを管理する一時データ格納アドレス記憶手段と、
アクセス要求されたアドレスのデータが前記一時データ格納アドレス記憶手段に格納されている場合に、前記一時データ格納手段からデータを読み書きし、アクセス要求されたアドレスのデータが前記一時データ格納アドレス記憶手段に格納されていない場合に、前記アクセス要求が読み込み要求のときには前記メモリから読み出し、前記アクセス要求が書き込み要求のときには前記一時データ格納手段にデータを書き込み、かつ、書き込み要求されたアドレスを前記一時データ格納アドレス記憶手段に記憶する一時データアクセス制御手段とを備えたことを特徴とする請求項１記載のＩＣカード内メモリアクセス制御方法に使用するＩＣカード内メモリアクセス制御装置。
【請求項３】
ＩＣカード内のプログラムから前記ＩＣカード内のメモリの前記プログラムが指定する所定のアドレスに対する書き込み要求が電源投入後初回であったとき、前記メモリよりも読み書きの高速な前記ＩＣカード内の一時メモリヘ一時的にデータを書き込み、前記一時メモリの書き込み先のアドレスを保持し、
前記プログラムから該プログラムが指定する前記所定のアドレスヘの書き込み要求が次以降にあったとき、前記一時メモリの、前記所定のアドレスに対するデータが書き込まれている同じ場所へ、書き込みを再度行い、
また、前記プログラムからあるアドレスの読み込み要求があったとき、前記一時メモリに書き込まれたデータの読み出しを行い、このアドレスが前記一時メモリに登録されていないときは、前記メモリからデータの読み出しを行い、
前記一時メモリが満杯になったとき、または外部からのコマンドに対するレスポンスを送信する前に、前記一時メモリに書き込まれたデータをすべて前記メモリへ格納し、その後、前記一時メモリに書き込まれたデータをすべてクリアし、
前記プログラムからの要求により、前記プログラムの要求する時点に、前記一時メモリに書き込まれたデータをすべて前記メモリに書き込み、データの更新を行い、または前記一時メモリに書き込まれたデータをすべてクリアするトランザクション処理をＩＣカード内の制御部に実行させるためのアクセスプログラムを格納したことを特徴とするプログラム記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＩＣカード内メモリアクセス制御方法および装置並びにプログラム記憶媒体に関する。
【０００２】
【従来の技術】
プラスチック・カードに半導体チップを組み込んだ高性能ＩＣカードの需要が高まっている。また、様々な環境でのＩＣカードの利用が求められるようになってきており、それにしたがって、様々なデバイス（ＣＰＵやメモリなど）がＩＣカードに用いられるようになっている。
【０００３】
図１０は従来のＩＣカード内メモリアクセス制御システムを示す図である。
【０００４】
１００はＩＣカード、１０１は外部機器、１０２はＩＣカード１００内の制御部、１０３はＩＣカード１００内のメモリアクセス部、１０４はＩＣカード１００内のメモリ（アクセスが比較的低速）、１０５は外部機器１０１から制御部１０２へのコマンド送信、１０６は制御部１０２から外部機器１０１へのレスポンス受信、１０７は制御部１０２とメモリアクセス部１０３間のメモリ読み書き、１０８はメモリアクセス部１０３とメモリ１０４間のメモリ読み書きである。
【０００５】
図１０に示すようなＩＣカード１００内のメモリ１０４ヘの読み書きを処理する従来のＩＣカード内メモリアクセス制御においては、メモリ１０４ヘの読み書き要求が発生するごとに、メモリ１０４ヘ読み書きを行っていた。
【０００６】
【発明が解決しようとする課題】
従来、外部機器１０１から電源が供給されるＩＣカードは、アクセス処理の途中で電源が切れたり、やり直しの要求が発生したりする異常が発生することが多く、処理途中での不整合が多いという問題がある。アクセス処理の途中で、電源断が発生したり、やり直しの要求が発生した場合、電源断時には次の電源投入時に、やり直し要求が発生したときはそのときに、それまで書き込んでいたデータを再び書き込む処理が必要であった。
【０００７】
従来では、上記のように、メモリ１０４ヘの読み書き要求が発生するごとに、メモリ１０４ヘ読み書きを行っていたので、全体の処理時間に比べて、メモリ読み書きにかかる処理時間が大きい場合、読み書きが比較的低速なメモリ１０４に読み書きすると、全体としてかなり処理速度が低下する。また、処理時間が長くなる場合、途中で上記異常が発生しやすかった。加えて、上記異常発生時のメモリ１０４の不整合を修正するために、長い処理時間を要していた。
【０００８】
本発明は、上述したような従来のシステムに有する問題に鑑みてなされたもので、その目的は、アクセスが比較的低速なＩＣカード内メモリに対する読み書きを極力減らし、メモリアクセス処理時間の総和を極力少なくすることができるＩＣカード内メモリアクセス制御方法および装置並びにプログラム記憶媒体を提供することにある。
【０００９】
また、本発明の別の目的は、トランザクション処理を付加することで、ＩＣカード内メモリに不整合が発生しにくく、かつ、高速に前の状態へ復帰し、あるいは完了することができるＩＣカード内メモリアクセス制御方法および装置並びにプログラム記憶媒体を提供することにある。
【００１０】
上記の目的を達成するために、本発明のＩＣカード内メモリアクセス制御方法は、ＩＣカード内のプログラムから前記ＩＣカード内のメモリの前記プログラムが指定する所定のアドレスに対する書き込み要求が電源投入後初回であったとき、前記メモリよりも読み書きの高速な前記ＩＣカード内の一時メモリヘ一時的にデータを書き込み、前記一時メモリの書き込み先のアドレスを保持し、前記プログラムから該プログラムが指定する前記所定のアドレスヘの書き込み要求が次以降にあったとき、前記一時メモリの、前記所定のアドレスに対するデータが書き込まれている同じ場所へ、書き込みを再度行い、また、前記プログラムからあるアドレスの読み込み要求があったとき、前記一時メモリに書き込まれたデータの読み出しを行い、このアドレスが前記一時メモリに登録されていないときは、前記メモリからデータの読み出しを行い、前記一時メモリが満杯になったとき、または外部からのコマンドに対するレスポンスを送信する前に、前記一時メモリに書き込まれたデータをすべて前記メモリへ格納し、その後、前記一時メモリに書き込まれたデータをすべてクリアし、前記プログラムからの要求により、前記プログラムの要求する時点に、前記一時メモリに書き込まれたデータをすべて前記メモリに書き込み、データの更新を行い、または前記一時メモリに書き込まれたデータをすべてクリアするトランザクション処理を行うことを特徴とする。
【００１２】
また、本発明のＩＣカード内メモリアクセス制御装置は、ＩＣカード内メモリに対するプログラムからの書き込みあるいは読み込み要求と、一時メモリに一時的に書き込まれたデータのすべてを前記メモリへ更新し、あるいは前記一時メモリに書き込まれたデータの全てを廃棄する要求を検出する読み書き検出手段と、一時的に書き込まれるデータを前記一時メモリに格納する一時データ格納手段と、前記一時メモリに一時的に書き込んだアドレスを管理する一時データ格納アドレス記憶手段と、アクセス要求されたアドレスのデータが前記一時データ格納アドレス記憶手段に格納されている場合に、前記一時データ格納手段からデータを読み書きし、アクセス要求されたアドレスのデータが前記一時データ格納アドレス記憶手段に格納されていない場合に、前記アクセス要求が読み込み要求のときには前記メモリから読み出し、前記アクセス要求が書き込み要求のときには前記一時データ格納手段にデータを書き込み、かつ、書き込み要求されたアドレスを前記一時データ格納アドレス記憶手段に記憶する一時データアクセス制御手段とを備えたことを特徴とする。
【００１３】
さらに本発明のプログラム記録媒体は、ＩＣカード内のプログラムから前記ＩＣカード内のメモリの前記プログラムが指定する所定のアドレスに対する書き込み要求が電源投入後初回であったとき、前記メモリよりも読み書きの高速な前記ＩＣカード内の一時メモリヘ一時的にデータを書き込み、前記一時メモリの書き込み先のアドレスを保持し、前記プログラムから該プログラムが指定する前記所定のアドレスヘの書き込み要求が次以降にあったとき、前記一時メモリの、前記所定のアドレスに対するデータが書き込まれている同じ場所へ、書き込みを再度行い、また、前記プログラムからあるアドレスの読み込み要求があったとき、前記一時メモリに書き込まれたデータの読み出しを行い、このアドレスが前記一時メモリに登録されていないときは、前記メモリからデータの読み出しを行い、前記一時メモリが満杯になったとき、または外部からのコマンドに対するレスポンスを送信する前に、前記一時メモリに書き込まれたデータをすべて前記メモリへ格納し、その後、前記一時メモリに書き込まれたデータをすべてクリアし、前記プログラムからの要求により、前記プログラムの要求する時点に、前記一時メモリに書き込まれたデータをすべて前記メモリに書き込み、データの更新を行い、または前記一時メモリに書き込まれたデータをすべてクリアするトランザクション処理をＩＣカード内の制御部に実行させるためのアクセスプログラムを格納したことを特徴とする。
【００１４】
本発明では、ＩＣカード内に例えばフラッシュメモリなどの大容量でアクセスの比較的低速なメモリと、ＲＡＭなどの小容量でアクセスの比較的高速な一時メモリを併せ持たせ、比較的アクセスの低速なメモリのアクセス速度改善とトランザクション機能の追加を図る。すなわち、まず、ＩＣカード内の比較的低速なメモリに対するメモリ読み書き要求を検出する。読み込みの場合、比較的高速な一時メモリに一時的に格納されたデータがあるかどうか確認し、あればそのデータを返し、なければＩＣカード内メモリ制御部にデータ読み出し要求を出し、そのデータを返す。一方、書き込みの場合、一時メモリに一時的な書き込みデータがあれば、その同じ場所に書き込みデータを格納し（上書きし）、なければ新しく格納する。また、データ更新要求を受け取ったときに、一時的に格納されたデータをすべてＩＣカード内のメモリに書き込み、クリアする。
【００１５】
従来、ＩＣカード内のメモリヘの読み書きが発生するごとにメモリヘ読み書きしていたのを、本発明では、比較的高速なＩＣカード内の一時メモリヘ一時的に読み書きを行うことで、１回当たりの読み書きの処理速度を向上させる。処理全体として、１回当たりの読み書き処理時間の減少分の合計から、最後にＩＣカード内のメモリに、一時的に格納したデータをすべて更新する処理時間を差し引いた時間だけ全体的に処理速度が向上することになる。
【００１６】
また、本発明では、前記一時メモリに一時的に書き込まれたデータを強制的に前記メモリに書き込み（トランザクションコミット）、以降前記一時メモリに対して読み書きを行い、前記プログラムの要求する時点と外部からのコマンドに対するレスポンスを送信するときに、前記一時メモリに書き込まれたデータをすべて前記メモリに書き込み、データの更新を行うことで、データの更新前に電源断が発生しても前記メモリに不整合が発生しない、あるいは、前記一時メモリに書き込まれたデータをすべてクリアする（トランザクションアボート）ことで、強制的に前記メモリに書き込む前の状態に復帰することにより、メモリにアクセスするプログラムを実行している際、電源断ややり直しの要求等の異常が発生した場合、一時メモリヘ書き込む前の状態に即座に戻り、始めから処理をやり直すことが可能となる。
【００１７】
【発明の実施の形態】
以下、図面を用いて本発明の実施の形態について詳細に説明する。なお、以下で説明する図面で、同一機能を有するものは同一符号を付け、その繰り返しの説明は省略する。
【００１８】
図１は本発明の実施の形態のＩＣカード内メモリアクセス制御システムを示す図である。
【００１９】
１０はＩＣカード、１１は外部機器、１２はＩＣカード１０内の制御部、１３は読み書き検出手段、１４はメモリアクセス部、１５はメモリ（アクセスが比較的低速）、１６は一時データアクセス制御手段、１７は一時データ格納手段、１８は一時データ格納アドレス記憶手段、１９は一時メモリアクセスモジュール、２０は一時メモリ（アクセスが比較的高速）、２１は外部機器１１から制御部１２へのコマンド送信、２２は制御部１２から外部機器１１へのレスポンス受信、２３は制御部１２と読み書き検出手段１３間のメモリ読み書き、２４はメモリアクセス部１４とメモリ１５間のメモリ読み書き、２５は一時メモリアクセスモジュール１９と一時メモリ２０間のメモリ読み書きである。
【００２０】
メモリ１５は例えばフラッシュメモリなどの大容量でアクセスの比較的低速なメモリであり、一時メモリ２０はＲＡＭなどの小容量でアクセスの比較的高速な一時メモリである。
【００２１】
本実施の形態においては、ＩＣカード１０の内部は制御部１２、メモリアクセス部１４、メモリ１５からなる従来と同様の構成に加えて、読み書き検出手段１３、一時データアクセス制御手段１６、一時データ格納手段１７、一時データ格納アドレス記憶手段１８、一時メモリアクセスモジュール１９、および一時メモリ２０を備える。
【００２２】
制御部１２は、外部機器１１からのコマンドを受け付け、内部のプログラムを実行し、レスポンスを外部機器１１に送信するモジュールである。メモリアクセス部１４は、メモリ１５に対して読み書きを行うモジュールである。一時メモリアクセスモジュール１９は、一時メモリ２０に対して読み書きを行うモジュールである。
【００２３】
図２は本実施の形態のＩＣカード内メモリアクセス制御のメインルーチンの流れを示す図、図３は読み込み処理の流れを示す図、図４は書き込み処理の流れを示す図、図５は更新処理の流れを示す図、図６は廃棄処理の流れを示す図である。
【００２４】
以下、図１〜図６を用いて本実施の形態のＩＣカード内メモリアクセス制御の流れについて説明する。
【００２５】
外部機器１１（図１）からコマンドを受信すると（図２のステップ２０１）、ＩＣカード１０内の制御部１２は、電源投入後初めての内部プログラム実行であれば、一時メモリ２０を一時メモリアクセスモジュール１９を用いて初期化する（ステップ２０２）。ここで、一時メモリデバイスの特性によっては、一時メモリ２０は電源投入時に初期化されている場合があるため、この初期化処理は不必要な場合がある。
【００２６】
その後、内部プログラムを実行する（ステップ２０３）。
【００２７】
読み書き検出手段１３は、制御部１２が実行するプログラムから発生するメモリ１５および一時メモリ２０への読み込み、書き込み、更新、廃棄の要求を受け（フックし）（ステップ２０４）、一時データアクセス制御手段１６に通知する。
【００２８】
もし、読み込み要求である場合（ステップ２０５）、読み込み処理が開始される（ステップ２０６）。読み込み処理（図３のステップ３０１）では、一時メモリ２０に読み込み先アドレスが登録されているかを、一時データ格納アドレス記憶手段１８に間い合わせる（ステップ３０２）。一時データ格納アドレス記憶手段１８は、一時メモリアクセスモジュール１９を用いてそのアドレスが格納されているかを一時メモリ２０から検索し、有無を返す。有りの場合、一時データアクセス制御手段１６は、一時データ格納手段１７にそのアドレスのデータを読み出すように要求する（ステップ３０４）。一時データ格納手段１７は、一時メモリアクセスモジュール１９を用いて、そのアドレスのデータを一時メモリ２０から読み出し、一時データアクセス制御手段１６に返す。無しの場合は、メモリアクセス部１４を用いてメモリ１５からそのアドレスのデータを読み出す（ステップ３０３）。
【００２９】
読み込み要求ではなく、書き込み要求である場合（図２のステップ２０７）、書き込み処理が開始される（ステップ２０８）。書き込み処理（図４のステップ４０１）では、一時メモリ２０に書き込み先アドレスが登録されているかを一時データ格納アドレス記憶手段１８に間い合わせる（ステップ４０２）。一時データ格納アドレス記憶手段１８は、一時メモリアクセスモジュール１９を用いて一時メモリ２０からそのアドレスが格納されているかを検索し、有無を返す。有りの場合、一時データ格納手段１７に一時メモリ２０のそのアドレスのデータ部に書き込むように要求する（ステップ４０４）。一時データ格納手段１７は、一時メモリアクセスモジュール１９を用いて、そのアドレスのデータを一時メモリ２０に書き込む。無しの場合、一時データ格納アドレス記憶手段１８にそのアドレスを登録するように要求する（ステップ４０３）。一時データ格納アドレス記憶手段１８は、一時メモリアクセスモジュール１９を用いて、そのアドレスを登録（書き込み）する。そして、一時データ格納手段１７は、書き込むデータを一時メモリアクセスモジュール１９を用いて一時メモリ２０にデータを書き込む（ステップ４０４）。
【００３０】
書き込み要求ではなく、更新要求である場合（図２のステップ２０９）、更新処理が開始される（ステップ２１０）。更新処理（図５のステップ５０１）では、格納されている全てのアドレスを一時データ格納アドレス記憶手段１８から読み出し、かつ、そのアドレスに対応するデータをすべて一時データ格納手段１７から読み出し、メモリアクセス部１４を用いてメモリ１５にすべて書き出す（ステップ５０２）。その後、一時データ格納手段１７に対して一時メモリ２０に格納されているすべてのデータのクリアを要求し（ステップ５０３）、一時データ格納アドレス記憶手段１８に対して登録されているアドレスのすべてのクリアを要求する（ステップ５０４）。一時データ格納アドレス記憶手段１８と一時データ格納手段１７は、一時メモリアクセスモジュール１９を用いて一時メモリ２０のクリア処理を行う。
【００３１】
更新要求ではなく、廃棄要求である場合（図２のステップ２１１）、廃棄処理が開始される（ステップ２１２）。廃棄処理（図６のステップ６０１）では、一時データ格納手段１７に対して格納されているすべてのデータのクリアを要求し（ステップ６０３）、一時データ格納アドレス記憶手段１８に対して登録されているアドレスのすべてクリアを要求する（ステップ６０２）。一時データ格納アドレス記憶手段１８と一時データ格納手段１７は、一時メモリアクセスモジュール１９を用いて一時メモリ２０のクリア処理を行う。
【００３２】
以上の要求を読み書き検出手段１３によりすべて検出（フック）し、ＩＣカード１０内の制御部１２による内部プログラム実行が終了するまで繰り返す。内部プログラムが終了した場合（図２のステップ２１３）、更新処理を行う（ステップ２１４）。最後に、制御部１２は、外部機器１１に対してレスポンスを送信して終了する（ステップ２１５）。
【００３３】
図７は、本実施の形態のＩＣカード内メモリアクセス制御のトランザクションを使っている場合のメインルーチンの流れを示す図、図８は書き込み処理の流れを示す図、図９（ａ）はトランザクション開始処理の流れを示す図、（ｂ）はトランザクション更新処理の流れを示す図、（ｃ）はトランザクション廃棄処理の流れを示す図である。なお、読み込み処理、更新処理、廃棄処理の流れを示す図はそれぞれ図３、図５、図６と同様であるので、図示は省略する。
【００３４】
以下、図７〜図９、および図３、図５、図６を用いて本実施の形態のトランザクションを使っている場合のＩＣカード内メモリアクセス制御の流れについて説明する。
【００３５】
外部機器１１（図１）からコマンドを受信すると（図７のステップ７０１）、ＩＣカード１０内の制御部１２は、電源投入後初めての内部プログラム実行であれば、一時メモリ２０を一時メモリアクセスモジュール１９を用いて初期化する（ステップ７０２）。ここで、一時メモリデバイスの特性によっては、一時メモリ２０は電源投入時に初期化されている場合があるため、この初期化処理は不必要な場合がある。
【００３６】
その後、内部プログラムを実行する（ステップ７０３）。
【００３７】
読み書き検出手段１３は、制御部１２が実行するプログラムから発生するメモリ１５および一時メモリ２０への読み込み、書き込み、更新、廃棄の要求を受け（フックし）（ステップ７０４）、一時データアクセス制御手段１６に通知する。
【００３８】
トランザクション開始要求である場合（ステップ７０５）、トランザクション開始処理が開始される（ステップ７０６）。トランザクション開始処理が開始され（図９（ａ）のステップ９０１）、開始処理がされ（ステップ９０２）、トランザクション中フラグをオンにし（ステップ９０３）、トランザクション開始処理を終了する（ステップ９０４）。トランザクション開始前に、一時メモリ２０にあるデータをすべて書き出す。トランザクション廃棄、あるいは電源断時に、トランザクション開始前の状態に復帰できるようにするためである。トランザクション中フラグは、一時メモリ２０が満杯になったとき、内部的にメモリ１５に書き出すことを回避するためのものである。もし、回避しなかった場合、トランザクション開始前の状態に復帰できなくなる。
【００３９】
トランザクション更新要求である場合（ステップ７０７）、トランザクション更新処理が開始される（ステップ７０８）。トランザクション更新処理が開始され（図９（ｂ）のステップ９０５）、更新処理がされ（ステップ９０６）、トランザクション中フラグをオフにし（ステップ９０７）、トランザクション更新処理を終了する（ステップ９０８）。
【００４０】
トランザクション廃棄要求である場合（ステップ７０９）、トランザクション廃棄処理が開始される（ステップ７１０）。トランザクション廃棄処理が開始され（図９（ｃ）のステップ９０９）、廃棄処理がされ（ステップ９１０）、トランザクション中フラグをオフにし（ステップ９１１）、トランザクション廃棄処理を終了する（ステップ９１２）。
【００４１】
もし、読み込み要求である場合（ステップ７１１）、読み込み処理が開始される（ステップ７１２）。読み込み処理（図３のステップ３０１）では、一時メモリ２０に読み込み先アドレスが登録されているかを、一時データ格納アドレス記憶手段１８に間い合わせる（ステップ３０２）。一時データ格納アドレス記憶手段１８は、一時メモリアクセスモジュール１９を用いてそのアドレスが格納されているかを一時メモリ２０から検索し、有無を返す。有りの場合、一時データアクセス制御手段１６は、一時データ格納手段１７にそのアドレスのデータを読み出すように要求する（ステップ３０４）。一時データ格納手段１７は、一時メモリアクセスモジュール１９を用いて、そのアドレスのデータを一時メモリ２０から読み出し、一時データアクセス制御手段１６に返す。無しの場合は、メモリアクセス部１４を用いてメモリ１５からそのアドレスのデータを読み出す（ステップ３０３）。
【００４２】
読み込み要求ではなく、書き込み要求である場合（図７のステップ７１３）、書き込み処理が開始される（ステップ７１４）。書き込み処理（図８のステップ８０１）では、一時メモリ２０に書き込み先アドレスが登録されているかを一時データ格納アドレス記憶手段１８に間い合わせる（ステップ８０２）。一時データ格納アドレス記憶手段１８は、一時メモリアクセスモジュール１９を用いて一時メモリ２０からそのアドレスが格納されているかを検索し、有無を返す。有りの場合、一時データ格納手段１７に一時メモリ２０のそのアドレスのデータ部に書き込むように要求する（ステップ８０８）。一時データ格納手段１７は、一時メモリアクセスモジュール１９を用いて、そのアドレスのデータを一時メモリ２０に書き込む。無しの場合、一時メモリ２０の空き容量がないかを問い合わせ（ステップ８０３）、空き容量がある場合、一時データ格納アドレス記憶手段１８にそのアドレスを登録するように要求する（ステップ８０７）。一時データ格納アドレス記憶手段１８は、一時メモリアクセスモジュール１９を用いて、そのアドレスを登録（書き込み）する。そして、一時データ格納手段１７は、書き込むデータを一時メモリアクセスモジュール１９を用いて一時メモリ２０にデータを書き込む（ステップ８０８）。一時メモリ２０の空き容量がない場合、トランザクション中フラグがオンであるかを問い合わせ（ステップ８０４）、オフの場合は更新処理を行う（ステップ８０５）。オンの場合は、内部プログラムにエラーを通知する（ステップ８０６）。
【００４３】
書き込み要求ではなく、更新要求である場合（図７のステップ７１５）、更新処理が開始される（ステップ７１６）。更新処理（図５のステップ５０１）では、格納されている全てのアドレスを一時データ格納アドレス記憶手段１８から読み出し、かつ、そのアドレスに対応するデータをすべて一時データ格納手段１７から読み出し、メモリアクセス部１４を用いてメモリ１５にすべて書き出す（ステップ５０２）。その後、一時データ格納手段１７に対して一時メモリ２０に格納されているすべてのデータのクリアを要求し（ステップ５０３）、一時データ格納アドレス記憶手段１８に対して登録されているアドレスのすべてのクリアを要求する（ステップ５０４）。一時データ格納アドレス記憶手段１８と一時データ格納手段１７は、一時メモリアクセスモジュール１９を用いて一時メモリ２０のクリア処理を行う。
【００４４】
更新要求ではなく、廃棄要求である場合（図７のステップ７１７）、廃棄処理が開始される（ステップ７１８）。廃棄処理（図６のステップ６０１）では、一時データ格納手段１７に対して格納されているすべてのデータのクリアを要求し（ステップ６０３）、一時データ格納アドレス記憶手段１８に対して登録されているアドレスのすべてクリアを要求する（ステップ６０２）。一時データ格納アドレス記憶手段１８と一時データ格納手段１７は、一時メモリアクセスモジュール１９を用いて一時メモリ２０のクリア処理を行う。
【００４５】
以上の要求を読み書き検出手段１３によりすべて検出（フック）し、ＩＣカード１０内の制御部１２による内部プログラム実行が終了するまで繰り返す。内部プログラムが終了した場合（図７のステップ７１９）、更新処理を行う（ステップ７２０）。最後に、制御部１２は、外部機器１１に対してレスポンスを送信して終了する（ステップ７２１）。
【００４６】
以上のように、本実施の形態のＩＣカード内メモリアクセス制御方法は、ＩＣカード１０内のプログラムからＩＣカード１０内のメモリ１５の前記プログラムが指定する所定のアドレスに対する書き込み要求が電源投入後初回であったとき、メモリ１５よりも読み書きの高速なＩＣカード１０内の一時メモリ２０ヘ一時的にデータを書き込み、一時メモリ２０の書き込み先のアドレスを保持し、前記プログラムから該プログラムが指定する前記所定のアドレスヘの書き込み要求が次以降にあったとき、一時メモリ２０ヘ書き込みを再度行い、また、前記プログラムからあるアドレスの読み込み要求があったとき、一時メモリ２０に書き込まれたデータの読み出しを行い、このアドレスが一時メモリ２０に登録されていないときは、メモリ１５からデータの読み出しを行い、一時メモリ２０が満杯になったとき、または外部からのコマンドに対するレスポンスを送信するときに、一時メモリ２０に書き込まれたデータをすべてメモリ１５へ格納し、その後、一時メモリ２０に書き込まれたデータをすべてクリアし、前記プログラムからの要求により、前記プログラムの要求する時点に、一時メモリ２０に書き込まれたデータをすべてメモリ１５に書き込み、データの更新を行い、または一時メモリ２０に書き込まれたデータをすべてクリアするトランザクション処理を行う。
【００４８】
また、本実施の形態のＩＣカード内メモリアクセス制御装置は、ＩＣカード１０内メモリ１５に対するプログラムからの書き込みあるいは読み込み要求と、一時メモリ２０に一時的に書き込まれたデータのすべてをメモリ１５ヘ更新し、あるいは一時メモリ２０に書き込まれたデータのすべてを廃棄する要求を検出（フック）する読み書き検出手段１３と、一時的に書き込まれるデータを一時メモリ２０に格納する一時データ格納手段１７と、一時メモリ２０に一時的に書き込んだアドレスを管理する一時データ格納アドレス記憶手段１８と、アクセス要求されたアドレスのデータが一時データ格納アドレス記憶手段１８に格納されている場合、一時データ格納手段１７からデータを読み書きし、アクセス要求されたアドレスのデータが一時データ格納アドレス記憶手段１８に格納されていない場合、メモリ１５から読み出し、一時データ格納手段１７にデータを書き込み、かつ、アクセス要求されたアドレスを一時データ格納アドレス記憶手段１８に記憶する一時データアクセス制御手段１６とを備えている。
【００４９】
さらに、本実施の形態のプログラム記憶媒体は、ＩＣカード１０内のプログラムからＩＣカード１０内のメモリ１５の前記プログラムが指定する所定のアドレスに対する書き込み要求が電源投入後初回であったとき、メモリ１５よりも読み書きの高速なＩＣカード１０内の一時メモリ２０ヘ一時的にデータを書き込み、一時メモリ２０の書き込み先のアドレスを保持し、前記プログラムから該プログラムが指定する前記所定のアドレスヘの書き込み要求が次以降にあったとき、一時メモリ２０ヘ書き込みを再度行い、また、前記プログラムからあるアドレスの読み込み要求があったとき、一時メモリ２０に書き込まれたデータの読み出しを行い、このアドレスが一時メモリ２０に登録されていないときは、メモリ１５からデータの読み出しを行い、一時メモリ２０が満杯になったとき、または外部からのコマンドに対するレスポンスを送信するときに、一時メモリ２０に書き込まれたデータをすべてメモリ１５へ格納し、その後、一時メモリ２０に書き込まれたデータをすべてクリアし、前記プログラムからの要求により、前記プログラムの要求する時点に、一時メモリ２０に書き込まれたデータをすべてメモリ１５に書き込み、データの更新を行い、または一時メモリ２０に書き込まれたデータをすべてクリアするトランザクション処理を行うアクセスプログラムを格納したものである。
【００５０】
本発明では、ＩＣカード１０内に例えばフラッシュメモリなどの大容量でアクセスの比較的低速なメモリ１５と、ＲＡＭなどの小容量でアクセスの比較的高速な一時メモリ２０を併せ持たせ、比較的アクセスの低速なメモリ１５のアクセス速度改善とトランザクション機能の追加を図るものである。
【００５１】
従来、ＩＣカード内のメモリヘの読み書きが発生するごとにメモリヘ読み書きしていたのを、本発明では、一時的に比較的高速なＩＣカード内の一時メモリ２０ヘ読み書きを行うことで、１回当たりの読み書きの処理速度を向上させる。処理全体として、１回当たりの読み書き処理時間の減少分の合計から、最後にＩＣカード１０内のメモリ１５に、一時的に格納したデータをすべて更新する処理時間を差し引いた時間だけ全体的に処理速度が向上することになる。
【００５２】
また、本実施の形態では、一時メモリ２０に一時的に書き込まれたデータを強制的にメモリ１５に書き込み、以降一時メモリ２０に対して読み書きを行い、プログラムの要求する時点と外部からのコマンドに対するレスポンスを送信するときに、一時メモリ２０に書き込まれたデータをすべてメモリ１５に書き込み、データの更新を行うことで、データの更新前に電源断が発生してもメモリ１５に不整合が発生しない、あるいは、一時メモリ２０に書き込まれたデータをすべてクリアすることで、強制的にメモリ１５に書き込む前の状態に復帰することにより、メモリアクセスするプログラムを実行している際、電源断ややり直しの要求等の異常が発生した場合、一時メモリ２０ヘ書き込む前の状態に即座に戻り、始めから処理をやり直すことが可能となる。なお、ＲＡＭから構成される一時メモリ２０は、電源断により書き込み中のデータは自動的にクリアされる。
【００５３】
以上のように、本実施の形態では、▲１▼比較的低速なＩＣカード１０内のメモリ１５に対する読み書きを高速に行うことができ、▲２▼異常発生時の復元処理ややり直し処理時の廃棄処理、更新処理を高速に行うことができる、という効果が得られる。
【００５４】
以上本発明を実施の形態に基づいて具体的に説明したが、本発明は上記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは勿論である。
【００５５】
【発明の効果】
以上説明したように、本発明によれば、▲１▼比較的低速なＩＣカード内メモリに対する読み書きを高速に行うことができ、▲２▼異常発生時の復元処理ややり直し処理時の廃棄処理、更新処理を高速に行うことができる、という効果が得られる。
【図面の簡単な説明】
【図１】図１は本発明の実施の形態のＩＣカード内メモリアクセス制御システムを示す図である。
【図２】本実施の形態のＩＣカード内メモリアクセス制御のメインルーチンの流れを示す図である。
【図３】本実施の形態のＩＣカード内メモリアクセス制御の読み込み処理の流れを示す図である。
【図４】本実施の形態のＩＣカード内メモリアクセス制御の書き込み処理の流れを示す図である。
【図５】本実施の形態のＩＣカード内メモリアクセス制御の更新処理の流れを示す図である。
【図６】本実施の形態のＩＣカード内メモリアクセス制御の廃棄処理の流れを示す図である。
【図７】本実施の形態のＩＣカード内メモリアクセス制御のトランザクションを使っている場合のメインルーチンの流れを示す図である。
【図８】本実施の形態のトランザクションを使っている場合の書き込み処理の流れを示す図である。
【図９】（ａ）は本実施の形態のトランザクション開始処理の流れを示す図、（ｂ）はトランザクション更新処理の流れを示す図、（ｃ）はトランザクション廃棄処理の流れを示す図である。
【図１０】従来のＩＣカード内メモリアクセス制御システムを示す図である。
【符号の説明】
１０…ＩＣカード、１１…外部機器、１２…制御部、１３…読み書き検出手段、１４…メモリアクセス部、１５…メモリ（アクセスが比較的低速）、１６…一時データアクセス制御手段、１７…一時データ格納手段、１８…一時データ格納アドレス記憶手段、１９…一時メモリアクセスモジュール、２０…一時メモリ（アクセスが比較的高速）、２１…コマンド送信、２２…レスポンス受信、２３、２４、２５…メモリ読み書き。
【図１】
0004140750.tif 000002
【図２】
0004140750.tif 000003
【図３】
0004140750.tif 000004
【図４】
0004140750.tif 000005
【図５】
0004140750.tif 000006
【図６】
0004140750.tif 000007
【図７】
0004140750.tif 000008
【図８】
0004140750.tif 000009
【図９】
0004140750.tif 000010
【図１０】
0004140750.tif 000011