JP3668204B2 - 携帯可能電子装置及びデータ領域割当方法 - Google Patents
携帯可能電子装置及びデータ領域割当方法 Download PDFInfo
- Publication number
- JP3668204B2 JP3668204B2 JP2002079303A JP2002079303A JP3668204B2 JP 3668204 B2 JP3668204 B2 JP 3668204B2 JP 2002079303 A JP2002079303 A JP 2002079303A JP 2002079303 A JP2002079303 A JP 2002079303A JP 3668204 B2 JP3668204 B2 JP 3668204B2
- Authority
- JP
- Japan
- Prior art keywords
- application
- data area
- area
- data
- application program
- 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 - Fee Related
Links
Images
Description
【発明の属する技術分野】
本発明は書き換え可能な不揮発性メモリおよびCPUなどの制御素子を有し、外部からのデータ入出力を行う手段を備えたICチップを内蔵した、いわゆるICカードと称される携帯可能電子装置であって不揮発性メモリにアプリケーションプログラムを書込んで実行可能なものに関する。
【0002】
【従来の技術】
不揮発性メモリにアプリケーションプログラムを書込んで実行できるICカードでは、作成したアプリケーションをICカードに書き込んで不揮発性メモリに保存し(以降この処理をロードと称する)、その後書き込んだアプリケーションを実行可能にする(以降この処理をインストールと称する)手続きを経て動作が可能となる。このインストール処理ではアプリケーションの実行を可能にするための登録とアプリケーションプログラムに定義されているデータ領域が不揮発性メモリに確保される。
【0003】
【発明が解決しようとする課題】
データ領域の確保はアプリケーション実行時に確保するようにプログラムすることも可能であるので、インストール以降のアプリケーション実行時にデータ領域が不揮発性メモリに追加で確保される場合も想定される。
【0004】
インストール処理においてデータ領域を必要分一括して確保することは容易であるが、インストール時にデータ領域を確定すると、上記したインストール以降のアプリケーション実行時にデータ領域を順次拡張して追加することは困難である。つまり、条件に応じてデータ領域を追加で拡張するようなプログラムを有するアプリケーションは、従来のICカードに適用することができない。
【0005】
従って本発明は、インストール以降のアプリケーション実行時に、必要に応じてデータ領域を順次拡張して追加することができる携帯可能電子装置を提供することを目的とする。
【0006】
【課題を解決するための手段】
上記目的を達成するために本発明の形態可能電子装置は、アプリケーションプログラムをインストールする際にはデータ領域として不揮発性メモリの連続する全空き領域を割当て、次に別のアプリケーションがロードあるいはインストールされるまではこの全空き領域を使用可能にする。これにより最後にインストールされたアプリケーションはデータ領域をアプリケーション実行時に順次拡張することが容易に行える。
【0007】
【発明の実施の形態】
以下に示す説明はこの発明の実施の形態であって、この発明の装置及び方法を限定するものではない。以下、本発明をICカードに適用した場合の実施形態を説明する。
【0008】
図1は本発明によるICカードを利用するシステムの全体構成を示すブロック図である。ICカード101はカードリーダ/ライタ102に接続され、カードリーダ/ライタ102は端末103に接続され、端末103はホストコンピュータ104と接続されている。従ってICカード101は、カードリーダ/ライタ102、端末103、及びホストコンピュータ104と通信可能ある。
【0009】
図2はICカード101の構成例を示すものであり、制御部としてCPUなどの制御素子201、記憶内容が書換え可能な不揮発性のデータメモリ202、ワーキングメモリ203、制御プログラムメモリ204、及びカードリーダ・ライタ102との通信を行うための通信部205等によって構成され、これらは1つのICチップ内部に組込まれている。このICチップはICカード内に埋設され、接触式の場合にはICカード表面の接点部分を介してカードリーダ/ライタ102と接続する。
【0010】
図3(a)及び図3(b)は不揮発性のデータメモリ202のフォーマットを示している。図3(a)のようにデータメモリ202はアプリケーション管理テーブルを含むシステム領域と、各アプリケーションに割り当てたアプリケーション領域に二分される。アプリケーション領域にはアプリケーションとそのデータ領域が別々に管理して置かれる。
【0011】
図3(a)では次の順で処理が行われた場合を示している。
【0012】
1)アプリケーション#1の書き込み
2)アプリケーション#1のインストールにてデータ領域#1の確保
アプリケーション#1にはデータ領域として残りの全ての領域が与えられているので、以降別のアプリケーションがロード/インストールされるまではアプリケーション#1実行中に新たにデータ領域を確保することが可能である。尚、図3(a)ではデータ領域#1のうち点線で示す領域まで使用されている。
【0013】
図3(b)では図3(a)の状態に対して次の順で処理が行われた結果を示している。
【0014】
1)アプリケーション#2の書き込み(アプリケーション#1のデータ領域の確定)
2)アプリケーション#2のインストールにてデータ領域#2の確保
アプリケーション#2が書き込まれる領域はデータ領域#1がこの時点までに使用した領域の後ろである。
【0015】
この時点でデータ領域#1が確定し、アプリケーション#2がこれに続く領域に書込まれる。
【0016】
アプリケーション#2のインストールにてアプリケーション#2にはデータ領域として連続する残りの全領域が与えられているので、以降別のアプリケーションがロード/インストールされるまではアプリケーション#2実行中に新たにデータ領域を確保することが可能である。つまり本実施形態によれば、条件に応じてデータ領域を追加で拡張するようなプログラムを有するアプリケーションであっても十分に実行可能である。尚、図3(b)ではデータ領域#2のうち点線で示す領域まで使用されている。
【0017】
図4及び図5は不揮発性データメモリ202上のアプリケーション管理テーブル41のフォーマットの例を示している。AIDとはアプリケーション識別子でありアプリケーション毎に付与される。この値はカードに書き込まれた複数のアプリケーションのいずれを選択的に動作させるのか決める際に用いられる。アプリ/データは書き込まれるデータの種類であって、アプリはアプリケーション用のコードデータ、データは目的の数値データである。開始アドレスは書き込まれたアプリケーションの先頭アドレスまたはインストール処理の際に確保されたデータ領域の先頭アドレスを示す。
【0018】
アプリケーション内の参照アドレスは、分岐先アドレス及びデータ参照先アドレス共に相対アドレスが用いられている。つまり、実際の分岐先アドレスはアプリケーション先頭アドレスにアプリケーション内分岐先アドレスを加えたアドレスであり、実際のデータ参照先アドレスはデータ領域先頭アドレスにアプリケーション内データ参照先アドレスを加えたアドレスである。
【0019】
アプリケーション管理テーブル41の最後には、確定していないデータ領域がどこまで使われているかを示すために、どのアプリケーションが対応するかを示すアプリケーション識別子42a及び実使用領域の次のアドレス42bとが書き込まれる。
【0020】
図4は図3(a)の状態の場合を示している。すなわち図4(a)に示すように、管理テーブル41には、ロードされたアプリケーションに関して、アプリケーションの識別子「#1」とデータの種類「アプリ」とそのサイズ「4KB」と書き込み開始アドレス「0100H」が記録されている。データ領域に関して管理テーブル41には、どのアプリケーションに対するデータ領域であるかを示すアプリケーション識別子「#1」とデータの種類「データ」と仮に確保されたデータ領域サイズ「24KB」とデータ領域の開始アドレス「0140H」が記録されている。
【0021】
データ領域サイズ「24KB」は図4(b)に示すように、アプリケーション#がロードされた時点で連続する未使用の領域サイズ43aに対応する。アプリケーションの中で確保すべきデータサイズとして例えば10KBが宣言されている場合でも、「サイズ」として未使用の全領域サイズが記録される。つまり、データ領域#1は領域が確定していないので、未使用領域43bにアプリケーション#1実行中に、新たにデータ領域を追加で確保することが出来る。アプリケーション管理テーブルの最後には、アプリケーション識別子42a、及び実使用領域の次のアドレス(つまり未使用領域43bの先頭アドレス)42bが記録される。
【0022】
図5は図4の状態でアプリケーション#2が書き込まれた場合を示している。アプリケーション#1のデータ領域#1は、アプリケーション#2が書き込まれた時点で確定され、これ以上アプリケーション#1実行中に新たなデータ領域を確保することは出来ない。
【0023】
図5(a)のように、アプリケーション#2が書き込みが完了した直後、アプリケーション#2のデータ領域#2は未使用であるので、アプリケーション識別子42a及び実使用領域の次のアドレス42bの欄は何も記述されていない。また、アプリケーション#2に続く領域は空き領域として管理される。
【0024】
図6は図5の状態でアプリケーション#2がインストール及び実行されされた結果、データ領域が確保されデータが図中点線の位置まで書き込まれた様子を示し、図3(b)の状態に対応している。
【0025】
アプリケーション#2がインストールされると空き領域にデータ領域#2の領域が確保される。図6(a)の「サイズ」の項に記述された16KBは、図6(b)のようにインストール直後の全未使用領域44aを示す。
【0026】
データ領域#2は領域が確定していないので、未使用領域44bにアプリケーション#2実行中に新たにデータ領域を確保することが出来る。この未使用領域44bの先頭アドレスが、アプリケーション管理テーブル41の最後に、実使用領域の次のアドレス42bとして記録される。
【0027】
図7はワーキングメモリ203上に置かれるデータの例を示している。
【0028】
「選択されたアプリケーションのAID」51は、アプリケーションの選択処理にて選択されたアプリケーションの識別子AIDが格納される。「ロードデータ格納アドレス」52はアプリケーションのロード処理(後述される)のとき、データの格納先を示す。
【0029】
図8〜図12は図2の制御プログラムメモリ204に格納されている制御プログラムに従って、制御素子201が外部から入力されるコマンドに対して実行する処理の流れを示している。
【0030】
図8はコマンドを受信後これを解析してそれぞれのコマンドに対応する処理ルーチンへ分岐し、それぞれの処理が終了した後その結果を送信して(S108)、再び外部からのコマンド入力待ちに戻る処理の全体的な流れを示す。制御素子201がコマンドに応じて実行する処理としては、ロード処理(S104)、インストール処理(S105)、アプリケーション選択処理(S106)、アプリケーションの実行(S107)等がある。
【0031】
図9はアプリケーションプログラムの書き込みを実施するロードコマンドの処理(図8のS104)の詳細を示す。
【0032】
アプリケーションプログラムは幾つかのブロック(転送用データパケット)に分割して書き込まれるため、処理は初めのブロックの書き込み、ブロックの書き込み継続、最後のブロックの書き込みの三通りに分けられて実行される。以下、図4に示すようにアプリケーション#1のロード及びインストールが完了し、アプリケーション#1の実行によりデータ領域#1の一部が使用された後に他のアプリケーション#2をロードして、図5の状態になる場合を説明する。
【0033】
アプリケーション#2の初めのブロックの書き込みの際に(ステップS202でYesの場合)、制御素子201はアプリケーション管理テーブルの最後に示された実使用領域の次のアドレス42bを図7のロードデータ格納アドレス52に書き込む(ステップS203)。次に、実使用領域の次のアドレス42b及びデータ領域#の開始アドレスを参照してデータ領域#1のサイズ(図5(a)では4KB)を決定する(S204)。この時点で未確定データ領域#1は確定され、アプリケーション#1の以降の拡張が出来なくなる。
【0034】
ステップS205において制御素子201は、ロードデータ格納アドレス52を格納開始アドレスとして、ロードデータ(アプリケーション#2の最初のブロック)をデータメモリ202に書き込む。次にロードデータ格納アドレス52を更新する(S206)。
【0035】
ロードするアプリケーションのブロックが書き込み継続ブロックであれば(ステップS202でNoの場合)、制御素子201はロードデータ格納アドレス52にロードデータ(アプリケーション#2の2番目以降のブロック)を書き込み(S205)、ロードデータ格納アドレス52を更新する(S206)。
【0036】
ロードするアプリケーションのブロックが最後のブロックであれば(ステップS201でYesの場合)、制御素子201はロードデータ格納アドレス52にロードデータ(アプリケーション#2の最後のブロック)を書き込み(S207)、アプリケーション管理テーブル41のアプリケーション#2についての各項目(「AID」、「アプリ/データ」、「サイズ」、「開始アドレス」)、ならびに空き領域情報を設定する(S208)。
【0037】
図10は書き込まれたアプリケーションプログラムに定義されているデータ領域を確保するインストールコマンドの処理(図8のステップS105)の詳細を示す。
【0038】
インストール処理コマンドを受信すると制御素子201は、指定された識別子と合致するアプリケーションをアプリケーション管理テーブル41より探す(S301)。次にステップS301で検出されたアプリケーションの内容をサーチして、データ定義情報(このアプリケーションで要求されるデータ容量)を検出する(S302)。
【0039】
検出したデータ定義情報に基づいて、制御素子201は図6(a)のように、このアプリケーション(ここでは#2)のデータ領域についての各項目(「AID」、「アプリ/データ」、「サイズ」、「開始アドレス」)を設定する(S303)。ここで「サイズ」としては、データ定義情報として宣言されているデータ容量に関わらず、残りの全空き容量が設定される。例えば4KBがデータ定義情報として宣言されている場合でも、全空き容量(図6(a)では16KB)が設定される。次に制御素子201は、アプリケーション管理テーブル41の最後に、識別子及び使用したデータ領域の次のアドレス42bを設定する(S304)。
【0040】
図11はインストールで実行可能となったアプリケーションを実行する際の選択処理であるアプリケーション選択コマンドの処理(図8のステップS106)の詳細を示す。
【0041】
アプリケーション選択処理コマンドを受信すると、制御素子201はステップS401のように、指定された識別子と合致するアプリケーションをアプリケーション管理テーブル41より検出する。次に制御素子201は、検出されたアプリケーション識別子を図7の「選択されたアプリケーションのAID」51に設定し、該アプリケーションの開始アドレスをロードデータ格納アドレス52に設定する。
【0042】
図12は選択されたアプリケーションにコマンドを解釈させて実行させる処理を示す。
【0043】
前述のロード・インストール・選択コマンドではない場合には、選択されたアプリケーションに外部から入力されたコマンドを解釈・実行させる。特にステップS503のアプリケーション動作において、アプリケーション実行時に新たにデータ領域を確保する際には、アプリケーション管理テーブルの最後に示された識別子42aと自らの識別子が合致するか調べ、合致する際にはそこの次のアドレス42bを参照してデータ領域を確保し、この次のアドレス42bを更新する。
【0044】
図13は本発明の他の実施形態を示す。この実施形態では、新たなアプリケーション(例えばアプリケーション#2)が追加される場合に、図13(b)の53に示すように以前のアプリケーションで使用したデータ領域#1の次の領域にデータの余裕領域#1が設けられる。更にアプリケーション管理テーブル41には、図13(a)のように余裕領域#1に対応する情報54(AID:#1、アプリ/データ:データ、サイズ:2KB、開始アドレス:0180H)が記録されている。
【0045】
この余裕領域を設けることで、アプリケーション#2をロードした後にアプリケーション#1を実行した場合でも、余裕領域#1にアプリケーション#1の実行の結果生じるデータを格納することができる。
【0046】
このような余裕領域を設けるには、例えば図9のステップS203で、以前のアプリケーションで使用されたデータ領域サイズを決定した後、余裕領域に関する上記したような情報54をアプリケーション管理テーブル41に記録する。
【0047】
図14は本発明の更に他の実施形態を示す。この実施形態では、例えばアプリケーション#2のロード、インストール、及び実行の後、アプリケーション#1を実行し、このアプリケーション#1の実行時に新たなデータ領域の確保が要求された場合、図14(b)の56のように追加領域#1が使用済みデータ領域#2の次に確保される。このときデータ領域#2は確定する。アプリケーション管理テーブル41には、図14(a)のように追加領域#1に対応する情報57(AID:#1、アプリ/データ:データ、サイズ:12KB(全空き領域)、開始アドレス:0200H)が記録される。
【0048】
このような追加領域を許容することで、以前にロードした例えばアプリケーション#1が該アプリケーション実行時にデータ領域を追加で確保するようなアプリケーションであっても、アプリケーション#2の実行の後に、アプリケーション#1を実行することができる。
【0049】
【発明の効果】
以上説明したように本発明の携帯可能電子装置は、アプリケーションのインストールが完了した後、該アプリケーションの実行時、必要に応じてデータ領域を順次拡張して追加することができる。
【図面の簡単な説明】
【図1】本発明によるICカードを利用するシステムの全体構成を示すブロック図である。
【図2】ICカード101の構成例を示すブロック図。
【図3】不揮発性のデータメモリ202のフォーマットを示す。
【図4】不揮発性データメモリ202上のアプリケーション管理テーブル41のフォーマットの例を示す。
【図5】不揮発性データメモリ202上のアプリケーション管理テーブル41のフォーマットの他の例を示す。
【図6】図5の状態でアプリケーション#2がインストール及び実行されされた結果、データ領域が確保されデータが図中点線の位置まで書き込まれた様子を示す。
【図7】ワーキングメモリ203上に置かれるデータの例を示す。
【図8】受信したコマンドに対応する処理ルーチンへ分岐し、それぞれの処理が終了した後その結果を送信する処理の全体的な流れを示す。
【図9】アプリケーションプログラムの書き込みを実施するロードコマンドの処理の詳細を示す。
【図10】書き込まれたアプリケーションプログラムに定義されているデータ領域を確保するインストールコマンドの処理の詳細を示す。
【図11】インストールで実行可能となったアプリケーションを実行する際の選択処理であるアプリケーション選択コマンドの処理の詳細を示す。
【図12】選択されたアプリケーションにコマンドを解釈させて実行させる処理を示す。
【図13】本発明の他の実施形態を示す。
【図14】本発明の更に他の実施形態を示す。
Claims (3)
- 内部に書換え可能な不揮発性メモリを持ち、該不揮発性メモリにアプリケーションプログラムを書き込み、外部からコマンドが入力されると該コマンドに対応した処理を実行してその結果を外部へ出力する携帯電子装置において、
アプリケーションプログラム内で定義されたデータ領域を初めて確保する際には、該定義されたデータ領域のサイズに関わらず、前記不揮発性メモリ上の連続する全空領域を該アプリケーション用のデータ領域として割当て、該アプリケーションの実行時にデータ領域の拡張を可能とする領域割当手段と、
別のアプリケーションプログラムを書き込むか、別に書き込まれていたアプリケーションプログラムがデータ領域を確保する場合に、実際に使用している領域までをデータ領域として確定し、該アプリケーションのこれ以降のデータ領域の拡張を不可能とする領域確定手段と、
を具備することを特徴とする携帯可能電子装置。 - 前記領域確定手段は、前記別のアプリケーションプログラムを書き込む場合、既に書き込まれたアプリケーションプログラム用に、該アプリケーションプログラムにより使用されたデータ領域の次に余裕データ領域を設け、この余裕データ領域の後に前記別のアプリケーションを書き込むことを特徴とする請求項1記載の携帯可能電子装置。
- 内部に書換え可能な不揮発性メモリを持ち、該不揮発性メモリにアプリケーションプログラムを書き込み、外部からコマンドを入力されると該コマンドに対応した処理を実行してその結果を外部へ出力する携帯電子装置におけるアプリケーションプログラム用のデータ領域割当方法であって、
アプリケーションプログラム内で定義されたデータ領域を初めて確保する際には、該定義されたデータ領域のサイズに関わらず、前記不揮発性メモリ上の全空領域を該アプリケーション用のデータ領域として割当て、該アプリケーションの実行時にデータ領域の拡張を可能とするステップと、
別のアプリケーションプログラムを書き込むか、別に書き込まれていたアプリケーションプログラムがデータ領域を確保する場合に、実際に使用している領域までをデータ領域として確定し、該アプリケーションのこれ以降のデータ領域の拡張を不可能とするステップと、
を具備することを特徴とするデータ領域割当方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002079303A JP3668204B2 (ja) | 2002-03-20 | 2002-03-20 | 携帯可能電子装置及びデータ領域割当方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002079303A JP3668204B2 (ja) | 2002-03-20 | 2002-03-20 | 携帯可能電子装置及びデータ領域割当方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003281486A JP2003281486A (ja) | 2003-10-03 |
JP3668204B2 true JP3668204B2 (ja) | 2005-07-06 |
Family
ID=29228828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002079303A Expired - Fee Related JP3668204B2 (ja) | 2002-03-20 | 2002-03-20 | 携帯可能電子装置及びデータ領域割当方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3668204B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6013103B2 (ja) * | 2012-09-20 | 2016-10-25 | 株式会社東芝 | Icカード |
-
2002
- 2002-03-20 JP JP2002079303A patent/JP3668204B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003281486A (ja) | 2003-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8296466B2 (en) | System, controller, and method thereof for transmitting data stream | |
JP4888742B2 (ja) | 情報処理装置および方法、並びにプログラム | |
JPH03240127A (ja) | プログラム制御システム | |
JP2010072965A (ja) | 携帯可能電子装置および携帯可能電子装置におけるデータ処理方法 | |
KR940007350B1 (ko) | 휴대가능 전자장치 | |
JP5225054B2 (ja) | Icカード | |
US9069480B2 (en) | Method of creating target storage layout table referenced for partitioning storage space of storage device and related electronic device and machine-readable medium | |
JP4896842B2 (ja) | 携帯可能電子装置 | |
JP3668204B2 (ja) | 携帯可能電子装置及びデータ領域割当方法 | |
JP4703753B2 (ja) | 情報処理装置、半導体記憶装置、及びプログラム | |
KR100737919B1 (ko) | 낸드 플래시 메모리의 프로그램 방법 및 메모리 시스템의프로그램 방법 | |
JP2003281487A (ja) | 携帯可能電子装置、及びアプリケーションとデータ領域をメモリ内に設ける方法 | |
JP7278083B2 (ja) | 半導体装置、制御方法、およびプログラム | |
CN114138176A (zh) | Nor Flash的擦除、升级方法及装置、计算机设备和存储介质 | |
JP2010211516A (ja) | 携帯可能電子装置および携帯可能電子装置におけるアクセス制御方法 | |
JP2016212779A (ja) | 携帯可能電子装置、及びicカード | |
JP4342629B2 (ja) | 携帯可能電子装置とファイル制御情報の記憶方法とファイル制御情報の検索方法 | |
US7346730B2 (en) | Mobile electronic device | |
JP6769150B2 (ja) | 電子情報記憶媒体、情報処理方法、及び情報処理プログラム | |
JP2004348342A (ja) | Icカードとicカードの処理方法 | |
JP4169284B2 (ja) | Icカード | |
JP7439798B2 (ja) | 電子情報記憶媒体、アプリケーション選択処理方法、及びプログラム | |
JP2012133656A (ja) | 携帯可能電子装置及びicカード | |
JP7439847B2 (ja) | 電子情報記憶媒体、鍵データ設定方法、及びプログラム | |
JP2007034434A (ja) | Icカード、icカードへのデータ書込み方法、および、icカードプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050310 |
|
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: 20050405 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050407 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080415 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090415 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |