(57)【要約】【課題】  異なるアプリケーション間の境界での書き込みエラー時の波及範囲を小さくし、また、エリアの利用効率を上げることを可能にする。【解決手段】  ＥＥＰＲＯＭが書き込み単位を有するＩＣカードにおいて、コマンド受信手段と、ファイルエリア割当の種類の情報が設定されたファイル作成コマンドを受信したとき、前記ファイルエリア割当の種類の情報に基づいてファイルエリア割当の種類を判定する判定手段と、判定手段による判定結果に基づいてファイルエリアを割り当てる割当手段とを備え、前記判定手段が書き込み単位に依存すると判定したとき、既に割当られているファイルエリアの最後のアドレスを示しているポインタを書き込み単位の先頭まで増加させ、前記判定手段が書き込み単位に依存しないと判定したとき、ポインタはそのままとすることを特徴とする。【選択図】        図５
2007073070.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーション領域と、ファイルエリアの最後のアドレスを示すポインタがセットされるシステム領域とを有するＥＥＰＲＯＭを備え、前記ＥＥＰＲＯＭが書き込み単位を有するＩＣカードにおいて、
コマンド受信手段と、ファイルエリアの割り当てが書き込み単位に依存するか依存しないかを示すファイルエリア割当の種類の情報が設定されたファイル作成コマンドを受信したとき、前記ファイルエリア割当の種類の情報に基づいてファイルエリア割当の種類を判定する判定手段と、前記判定手段による判定結果に基づいてファイルエリアを割り当てる割当手段とを備え、
前記判定手段が書き込み単位に依存すると判定したとき、既に割当られているファイルエリアの最後のアドレスを示しているポインタを書き込み単位の先頭まで増加させ、前記判定手段が書き込み単位に依存しないと判定したとき、ポインタはそのままとすることを特徴とするＩＣカード。
【請求項２】
前記ポインタの制御後、ファイルエリアの割当と、ファイルの制御情報であるディレクトリの登録を行い、アプリケーション領域のエリア残容量を計算してレスポンスをリーダ／ライタへ返すことを特徴とする請求項１記載のＩＣカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＥＥＰＲＯＭ（Electrically Erasable and Programable Read Only Memory）を有するＩＣカードに係り、特にＥＥＰＲＯＭにファイルエリアを割り当てる場合、割当て方法を指定するようにしたＩＣカードに関する。
【背景技術】
【０００２】
図６に示すように、リーダ／ライタ１はＩＣカード２に対してコマンドを送信し、これを受信したＩＣカードは、コマンドを解釈して書き込み／読み出し等の処理を実行し、処理結果をレスポンスとしてリーダ／ライタ１へ返すようになっている。
【０００３】
図７に示すように、ＩＣカード２は、ＣＰＵ２ａ、ＲＡＭ２ｂ、ＲＯＭ２ｃ、ＥＥＰＲＯＭ２ｄを有しており、ＲＯＭ２ｃに記憶されているプログラムをＣＰＵ２ａに読み込み、リーダ／ライタ１から送信されるコマンドをＩ／Ｏポートを通して受信すると、コマンドとともに送信されたデータを読み込んで必要な処理を行い、結果をＥＥＰＲＯＭ２ｄの所定のファイルエリアに書き込み、Ｉ／Ｏポートを通してレスポンスを出力する。
【０００４】
次に、ＥＥＰＲＯＭ２ｄに異なるアプリケーションのファイルエリアを割り当てる従来の方法を図８（ａ）、（ｂ）により説明する。
【０００５】
ＥＥＰＲＯＭへの書き込みは、３２バイト、６４バイトといった単位で一括して書き込み、この書き込み単位でしか書けないようになっている。図８において、３はＥＥＰＲＯＭを示しており、例えば、３２バイトの書き込みレジスタ４にセットしたデータを、ＥＥＰＲＯＭの３２バイトのエリアに一括して書き込み、連続して３２バイト単位で順次書き込んでいく。この場合の書き込み方法は、書き込みエリアに既に書かれているデータを一旦レジスタ４に格納（このとき書き込みエリアの内容はそのまま）した後、レジスタ４に書き込む内容をセットし、書き込みエリアの内容を消去すると同時にレジスタの内容を書き込むというプロセスで行っている。
【０００６】
図８（ａ）において、書き込むべきアプリケーションＡがＥＥＰＲＯＭのファイルエリア３ａ〜３ｃ及び３ｄの途中（ａバイト）までの範囲（図の斜線部分）にわたるものであるとすると、上記した方法でエリア３ａ〜３ｃまで３２バイト単位で書き込んでいく。エリア３ｄにおいても同様に、一旦、ＥＥＰＲＯＭのデータをレジスタ４に格納した後、レジスタにアプリケーションＡの内容（ａバイト）をセットし、次いで、ＥＥＰＲＯＭのエリア３ｄの内容を消去すると同時にレジスタの内容を書き込む。こうして、アプリケーションＡはポインタＰで示される領域まで書き込まれる。次いで、アプリケーションＢを書き込む場合、アプリケーションＡに連続して書き込まれる。そのため、図８（ｂ）において、まず、エリア３ｄの内容をレジスタに格納した後、ａバイト目より３２バイト目までアプリケーションＢの内容をセットし、次いでＥＥＰＲＯＭのエリア３ｄの内容を消去すると同時にレジスタの内容を書き込む。以後、順次エリア３ｆ、３Ｇ……と同様に書き込んでいく。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記したように、異なるアプリケーションに対するファイルエリア割り当て方法は、書き込み単位に依存せず、エリア３ｄの書き込みのように連続なエリア割当を行っていた。このため、異なるサービスシステム（アプリケーション）のファイルの境界（図３のＡとＢの境界）が１個の書き込み単位の中に収まってしまうことになる。すると、エリア境界を含む書き込み単位に書き込みエラーが生じると、１個のサービスシステムのエリアが壊れるだけでなく、関係のないサービスシステムのエリアを破壊してしまう。上記した例で言えば、アプリケーションＡが書き込まれているエリア３ｄに、続けてアプリケーションＢの内容を書き込むとき、エリア３ｄにおけるアプリケーションＡの内容も一旦レジスタに格納し、次いでエリア３ｄの内容を消去した後、書き込んでいるので、この途中で電圧低下等があると、アプリケーションＢの内容のみならず、アプリケーションＡの内容も壊れることになる。
【０００８】
なお、ファイルエリアを割り当てる場合、論理アドレス上は書き込み単位という概念はないが、エリアの利用効率という物理的な制限により書き込み単位という概念がでてくるので、最初から書き込み単位を意識してファイルをデザインしていけば、上記したような問題は回避可能であるが、その場合は物理アドレスを意識してデザインしなければならなかった。
【０００９】
本発明は上記課題を解決するためのもので、異なるアプリケーション間の境界での書き込みエラー時の波及範囲を小さくし、また、エリアの利用効率の向上も可能にすることを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、アプリケーション領域と、ファイルエリアの最後のアドレスを示すポインタがセットされるシステム領域とを有するＥＥＰＲＯＭを備え、前記ＥＥＰＲＯＭが書き込み単位を有するＩＣカードにおいて、コマンド受信手段と、ファイルエリアの割り当てが書き込み単位に依存するか依存しないかを示すファイルエリア割当の種類の情報が設定されたファイル作成コマンドを受信したとき、前記ファイルエリア割当の種類の情報に基づいてファイルエリア割当の種類を判定する判定手段と、前記判定手段による判定結果に基づいてファイルエリアを割り当てる割当手段とを備え、前記判定手段が書き込み単位に依存すると判定したとき、既に割当られているファイルエリアの最後のアドレスを示しているポインタを書き込み単位の先頭まで増加させ、前記判定手段が書き込み単位に依存しないと判定したとき、ポインタはそのままとすることを特徴とする。
また、本発明は、前記ポインタの制御後、ファイルエリアの割当と、ファイルの制御情報であるディレクトリの登録を行い、アプリケーション領域のエリア残容量を計算してレスポンスをリーダ／ライタへ返すことを特徴とする。
【発明の効果】
【００１１】
本発明によれば、ファイルエリア割当が書き込み単位に依存すると判定したとき、既に割当られているファイルエリアの最後のアドレスを示しているポインタを書き込み単位の先頭まで増加させ、ファイルエリア割当が書き込み単位に依存しないと判定したとき、ポインタはそのままとすることでファイルエリアの割当を行い、サービス間の境界での書き込みエラー時の波及範囲を小さくし、また、書き込みエラー時の波及を認めてもエリアを数多くとりたいサービスにも対応可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態について説明する。
【００１３】
図１はＩＣカードのＥＥＰＲＯＭを説明する図、図２はディレクトリの構成を説明する図、図３はコマンドの構成を説明する図、図４は本発明におけるＥＥＰＲＯＭへのファイル割当てを説明する図、図５はファイル割当て処理フローを説明する図である。なお、本発明のＩＣカードの構成は、図７に示したものと同じであるので、その構成の説明は省略する。
【００１４】
図１はアプリケーション領域とシステム領域からなるＥＥＰＲＯＭ３を示したもので、アプリケーション領域の先頭アドレスから、アプリケーションＡ、Ｂ、Ｃのファイルをこの順で割り当てるときに、同時に、ファイルエリアの割当て順に、アプリケーション領域の最後から先頭に向かってＡディレクトリ、Ｂディレクトリ、Ｃディレクトリが形成される。ディレクトリはファイルの制御情報であり、図２に示すように、ファイルを識別するためのファイルＩＤ、ファイルが記憶される先頭アドレス、エリア容量、属性情報（リード／ライトのアクセス権（キー）の情報）、チェックコードからなっている。
【００１５】
図１において、アプリケーションの領域に続いたＯＳが管理するシステム領域には、ディレクトリに示された先頭アドレスとエリア容量から、割り当てられたファイルエリアの最後のアドレスを示すポインタがセットされ、ファイルエリアが割り当てられるごとにその最後のアドレスを示すようになっている。ポインタＰが示すアドレスとディレクトリとの間の領域がさらに割り当て可能なメモリ領域である。
【００１６】
リーダ／ライタからのコマンドは、図３に示すように、コマンドの分類（ＣＬＡ）、命令（ＩＮＳ）、パラメータＰ１、Ｐ２にデータ長Ｌｃおよびデータ部（ファイルＩＤ、エリア容量、属性情報）が付加されたものであり、ファイルの割り当ては、クリエイト・ファイル命令で行われる。
【００１７】
本発明ではクリエイト・ファイル命令によるファイルの割り当てが、書き込み単位に依存する場合と依存しない場合を指定可能にし、書き込み単位に依存する場合には、書き込み単位の先頭からエリアを割り当て、書き込み単位に依存しない場合には、前のファイルエリアに続けて連続してエリアを割り当てるようになっている。
【００１８】
ファイルの割り当てが書き込み単位に依存するか、依存しないかの種類を指定する方法は、パラメータＰ１、Ｐ２で指定する。したがって、ＣＰＵではクリエイト・ファイル命令の場合にはパラメータＰ１、Ｐ２をみて割当の種類が書き込み単位に依存するのかしないのか判定した後、エリアの割当てを行う。ファイルエリアの割当ての種類の指定方法としては、コマンドの中に１ビット設けてこのフラグにより判定するようにしてもよい。
【００１９】
図４（ａ）は、ファイルの割り当てが書き込み単位に依存しない場合を示しており、アプリケーションＡに続いて、連続してアプリケーションＢが割当られている。
【００２０】
図４（ｂ）は、ファイルエリアの割り当てが書き込み単位に依存する場合を示しており、アプリケーションＡが書き込み単位の途中で終わっており、アプリケーションＢは書き込み単位の先頭から割当られている。
【００２１】
図４で示すファイルの割当処理を、図５の処理フローにより説明する。
【００２２】
ＩＣカードがリーダ／ライタからコマンドを受信すると、ＣＰＵにおいてエリア割当の種類を判定する。この判定は、前述したようにコマンドのパラメータを見て行う。エリアの割当が書き込み単位の先頭からである場合には、既に割当られているファイルエリアの最後のアドレスを示しているポインタを、書き込み単位の先頭まで増加させる。エリアの割当が前のファイルエリアに連続させるものである場合には、ポインタはそのままである。次いで、エリアの割当と、ディレクトリの登録を行い、アプリケーション領域のエリア残容量を計算してレスポンスをリーダ／ライタに返す。
【図面の簡単な説明】
【００２３】
【図１】ＥＥＰＲＯＭの構成を説明する図である。
【図２】ディレクトリの構成を説明する図である。
【図３】コマンドの構成を説明する図である。
【図４】本発明のファイルの割当方法を説明する図である。
【図５】ファイルの割当処理フローを説明する図である。
【図６】リーダ／ライタとＩＣカードの通信を説明する図である。
【図７】ＩＣカードの構成を説明する図である。
【図８】従来のファイルエリア割当方法を説明する図である。
【符号の説明】
【００２４】
１…リーダ／ライタ、２…ＩＣカード、３…ＥＥＰＲＯＭ、４…書き込みレジスタ。
【図１】
2007073070.tif 000003
【図２】
2007073070.tif 000004
【図３】
2007073070.tif 000005
【図４】
2007073070.tif 000006
【図５】
2007073070.tif 000007
【図６】
2007073070.tif 000008
【図７】
2007073070.tif 000009
【図８】
2007073070.tif 000010