JP4705600B2 - Icカード - Google Patents

Icカード Download PDF

Info

Publication number
JP4705600B2
JP4705600B2 JP2007082928A JP2007082928A JP4705600B2 JP 4705600 B2 JP4705600 B2 JP 4705600B2 JP 2007082928 A JP2007082928 A JP 2007082928A JP 2007082928 A JP2007082928 A JP 2007082928A JP 4705600 B2 JP4705600 B2 JP 4705600B2
Authority
JP
Japan
Prior art keywords
address
application program
memory
built
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 - Lifetime
Application number
JP2007082928A
Other languages
English (en)
Other versions
JP2007200350A (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.)
Nippon Telegraph and Telephone Corp
Sharp Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Sharp 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
Application filed by Nippon Telegraph and Telephone Corp, Sharp Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2007082928A priority Critical patent/JP4705600B2/ja
Publication of JP2007200350A publication Critical patent/JP2007200350A/ja
Application granted granted Critical
Publication of JP4705600B2 publication Critical patent/JP4705600B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、内蔵メモリ内に複数のアプリケーションプログラムを格納し、それらを実行する1チップマイクロコンピュータおよびそれを内蔵したICカードに関するものである。
従来、プログラム用メモリを内蔵し、そのプログラム用メモリに格納されたアプリケーションプログラムを実行する1チップマイクロコンピュータが知られている。この種の従来の1チップマイクロコンピュータでは、プログラム用メモリの容量の制限などから、1つの1チップマイクロコンピュータにおいて実行できるアプリケーションプログラムが通常1種類に限定されていた。
また、複数のアプリケーションプログラムに対応可能な1チップマイクロコンピュータであっても、プログラム用メモリの固定されたアドレスを先頭アドレスとしてアプリケーションプログラムを格納しておき、その中から1つのアプリケーションプログラムを選択して実行できるに留まっていた。
一方、近年において、1チップマイクロコンピュータに内蔵されるプログラム用メモリとしては、記憶容量の増大とともに、その種類も従来の読み出し専用メモリ(ROM)の他に、フラッシュメモリなどの大容量の不揮発性メモリ等が開発され、多様化している。
また、上記のような1チップマイクロコンピュータを内蔵した電子カード、即ちICカードにおいては、電子現金、電子チケット、電子社員証など、複数のアプリケーションプログラムを動作可能にしたいという要望が高まっている。このような要望に対応するためには、ICカードに内蔵される1チップマイクロコンピュータにおいて、それに格納される各アプリケーションプログラムの実行制御を柔軟に行い得ることが必要である。
上記従来の1チップマイクロコンピュータにおいて、複数のアプリケーションプログラムを実行することは、次のような手法により実現することができる。
まず、1チップマイクロコンピュータに搭載されたオペレーティングシステムなどのシステムプログラムにおいて、各アプリケーションプログラムのスタートアドレスと、アプリケーションプログラム1つ当たりのサイズとをあらかじめ決めておく。
次に、上記スタートアドレスからアプリケーションプログラムの実行コードが配置されるように、あらかじめパーソナルコンピュータ(PC)等の端末装置上において、1チップマイクロコンピュータ用のクロス開発環境を用いて実行コードを生成し、これを1チップマイクロコンピュータのプログラム用メモリに配置する。
そして、ICカードのシステムプログラムは、PC側のプログラムから所定のアプリケーションプログラムの実行指令を受け取ると、そのアプリケーションプログラムが格納されたアドレスへの分岐命令を実行する。また、他のアプリケーションプログラムを実行するときには、そのアプリケーションに割り当てられたアドレスヘの分岐命令を実行する。
一方、特許第2909109号公報には、図9に示すように、連続したメモリ領域への異種データの格納およびアクセスを柔軟に行うために、バッテリによりバックアップされたシステムメモリ(図示せず)とアドレスデコーダ101、バックアップデータの先頭アドレスを示すベースレジスタ102、バンク切り替え用のページレジスタ103、アドレス加算器、即ちアダー104およびセレクタ105からなるメモリ制御装置が開示されている。
上記装置において、アドレスデコーダ101は、入力されたアドレスが変換対象アドレスか否かを判別する。ベースレジスタ102はアドレス変換用の先頭アドレスを格納している。ページレジスタ103はバンク切り替えによってアドレス変換を行う。アダー104は、ベースレジスタ102に設定されたベースアドレス値に、ベースレジスタ102に設定されたバンクアドレスを加えて、加算アドレス106を生成する。セレクタ105は、アドレスデコーダ101の判別結果に基づいて、加算アドレス106と非加算アドレス107との何れか一方をメモリアドレスとして出力する。
上記のメモリ制御装置では、バックアップ対象データをシステムメモリから読み出すときに非加算アドレス107をメモリアドレスとして与え、バックアップすべきデータをシステムメモリに書き込むときに加算アドレス106をメモリアドレスとして与えることにより、連続したメモリ空間に対して異種データを格納できるようにしている。
特許第2909109号公報(発行日:1999年6月23日)
1つの1チップマイクロコンピュータが複数のアプリケーションプログラムに対応するには、それぞれ独立して開発されたアプリケーションプログラムを同一メモリの連続したアドレス空間上に混在させることになる。この場合には、各アプリケーションプログラムに対し、それぞれのアプリケーションプログラムが使用するアドレス空間同士が干渉し合わないように、固有のアドレス空間を割り当てる必要がある。
通常、アプリケーションプログラムは、プログラム開発者がコード生成したアドレスに正しく配置されなければ、正常に動作しない。
また、1チップマイクロコンピュータのメモリ構成が、バンク切り替え(前記公報に記載)やセグメント分割で管理される場合には、各バンク単位あるいは各セグメント単位毎にアプリケーションプログラムを配置させることも考えられる。しかしながら、この場合にはプログラムの格納数がシステムで許容されるバンク数あるいはセグメント数に限定されてしまう。
また、格納するアプリケーションプログラムのサイズが1つのバンク単位あるいはセグメント単位よりも十分小さい場合には、プログラムメモリの多くの部分が無駄になってしまう。
また、フラッシュメモリやEEPROMなどの不揮発性メモリをプログラムメモリとして搭載した多目的ICカードのように、仕様や用途に応じて使用するアプリケーションに複数の組み合わせがある場合、各アプリケーションプログラムの配置順や配置アドレスはICカード毎に異なる。
また、ICカードが発行された後に、新しいアプリケーションプログラムをICカードのプログラムメモリへ追加する場合、追加するアプリケーションプログラムのコードをICカードのプログラムメモリの空いた領域に対応させて、ICカード発行者が再構築させる必要がある。このような操作は非常に複雑であり、セキュリティの面からも好ましくない。
また、前記公報に記載の構成では、ベースレジスタ102とページレジスタ103との出力を加算して得られた加算アドレスをメモリアドレスの一部としてメモリへ与えることにより、異種データの格納、格納データサイズの増減が行えるとされているものの、この装置の目的はデータのバックアップであり、それぞれの領域に格納したデータをプログラムとして実行するようには構成されていない。
したがって、本発明は、アプリケーションプログラム開発時には、そのプログラムが1チップマイクロコンピュータ上で配置されるアドレスを考慮することなく独立して開発できることを可能にし、かつ1チップマイクロコンピュータ上に配置する際に複雑なマッピング作業を発生させず、さらに1チップマイクロコンピュータ内でそのプログラムが実行される際に、CPUが各アプリケーションプログラムが配置されているアドレスを考慮することなくソフトウエアを実行できることを可能にするICカードの提供を目的としている。
本発明のICカードは、数のアプリケーションプログラムを格納可能な内蔵メモリを備え、前記内蔵メモリのアドレスは、セグメント部と前記セグメント部より下位に位置するアドレス部から構成され、前記内蔵メモリには基準アドレス部が設定されており、カード発行後に、前記基準アドレス部から配置されるようにコード化されたアプリケーションプログラムを前記内蔵メモリの任意のアドレス部にダウンロードして追加可能なメモリ管理手段を備え、発行後にアプリケーションプログラムをダウンロードして追加可能なICカードであって、ベースレジスタと、所定の基準アドレスと前記複数のアプリケーションプログラムの先頭アドレスとの差分値を、実行する各アプリケーションプログラム毎にベースレジスタに設定する差分値設定手段と、前記基準アドレスおよびこれとは異なる出力アドレスを供給するアドレス供給手段と、ベースレジスタが保持する前記差分値とアドレス供給手段から供給される出力アドレスとを加算する加算手段と、前記加算手段により生成された加算アドレスとアドレス供給手段から供給された出力アドレスとの何れか一方を内蔵メモリのアドレスの少なくとも一部として選択するアドレス選択手段とを備え、前記アドレス選択手段は、前記加算アドレスと前記出力アドレスとの何れを選択するかを設定可能であるとともに、前記出力アドレスの値に関係なく前記出力アドレスを選択する動作と、前記出力アドレスのセグメント部がアプリケーションプログラム領域である場合に前記加算アドレスを出力し、当該セグメント部がアプリケーションプログラム領域以外である場合に前記出力アドレスを出力する動作とのいずれかの動作を設定可能であることを特徴としている
発明のICカードは、前記メモリ管理手段は、ダウンロードするアプリケーションプログラムのサイズに基づいて前記内蔵メモリの格納アドレスを決定して、該格納アドレスに前記ダウンロードするアプリケーションプログラムを格納させ、前記メモリ管理手段を用いて、カード発行後にアプリケーションプログラムをダウンロードして前記内蔵メモリに追加する構成であってもよい。
本発明のICカードは、前記メモリ管理手段が、前記ダウンロードするアプリケーションプログラムのサイズを受信し、前記受信したアプリケーションプログラムのサイズに基づいて前記格納アドレスを決定する構成であってもよい。
本発明のICカードは、前記内蔵メモリは前記アプリケーションプログラムを格納するプログラム格納領域を有し、前記内蔵メモリの所定の基準アドレスと、前記プログラム格納領域に格納された複数のアプリケーションプログラムの先頭アドレスとの差分値を、実行するアプリケーションプログラム毎に設定し、前記各差分値に基づいて各アプリケーションプログラムを実行する構成であってもよい。
本発明によれば、ICカード内でアプリケーションプログラムを実行する際に、それを実行するCPUは、各アプリケーションプログラムが配置されている、各アプリケーションプログラム毎に異なるアドレスを考慮することなく実行することができる。さらに、本発明によれば、アプリケーションプログラム開発時には、そのプログラムがICカードのメモリに配置されるアドレスを考慮することなく独立して開発することができる。また、本発明によれば、アプリケーションプログラムをICカードのメモリに配置する際には、複雑なマッピング作業が不要である。
本発明の実施の一形態を図1ないし図8に基づいて以下に説明する。本発明の実施の形態において、1チップマイクロコンピュータは、図2に示すICカード1に搭載されている。同図は、ICカードシステムを示すブロック図であり、このシステムはICカード1、情報端末装置としての例えばパーソナルコンピュータ(以下、PCと略称する)2、ICカード1のリーダ・ライタ3から構成される。なお、リーダ・ライタ3は、独立したものとせず、PC2のICカードスロットに内蔵されている構成であってもよい。
PC2は、ICカード応用システムのPC側プログラムを搭載しており、ICカード1にアプリケーションプログラムコードをダウンロードしたり、ICカード1に対してコマンドの送受信を行うようになっている。また、リーダ・ライタ3に対してコマンドの送受信を行うようになっている。
図3に示すように、ICカード1に搭載された1チップマイクロコンピュータ11は、CPU(差分値設定手段、アドレス供給手段、メモリ管理手段)12、内蔵メモリ13、ベースアドレス加算制御回路14、UART(Universal Asynchronous Receiver Transmitter :汎用非同期送受信回路)15および周辺回路16を備えている。
上記CPU12は、システムプログラムやアプリケーションプログラムを実行するものである。内蔵メモリ13は、システムプログラムやアプリケーションプログラムを格納したり、CPU12の作業領域として使用され、不揮発性領域を含む。ベースアドレス加算制御回路14は、後述のように、アドレスの制御を行うものである。UART15はリーダ・ライタ3と通信を行うためのものである。周辺回路16はタイマ等からなる。これら各ブロックは、CPU12が入出力するアドレス線(出力のみ)やデータ線、データ読出し・書込みやブロック活性化のための制御線などで接続されている。
上記のCPU12、ベースアドレス加算制御回路14および内蔵メモリ13の関係を詳細に示すと図1に示すものとなる。
同図に示すように、ベースアドレス加算制御回路14は、ベースレジスタ21、加算器(加算手段)22、制御レジスタ23、制御回路24およびセレクタ25を備えている。上記ベースレジスタ21および制御レジスタ23はメモリマップドI/O方式のものとなっている。また、制御レジスタ23、制御回路24およびセレクタ25はアドレス選択手段を構成している。
上記のベースレジスタ21は、アプリケーションプログラムを内蔵メモリ13に配置するときの先頭アドレスと所定の基準アドレスとの差分値を格納する。このベースレジスタ21への書き込みは内蔵メモリ13に格納されたシステムプログラムに基づいてCPU12が行う。
加算器22は、CPU12から出力されるCPU出力アドレスA1 とベースレジスタ21から得られる差分アドレス、即ち差分値A2 とを加算し、加算アドレスA3 を生成する。
セレクタ25は、制御回路からの制御信号に基づいて、内蔵メモリ13に出力する信号を選択する。
制御レジスタ23は、内蔵メモリ13の使用されるメモリ領域に応じて、内蔵メモリ13に加算アドレスA3 または非加算アドレス(CPU出力アドレスA1)が入力されるように選択制御を行う(選択制御オン)か、もしくはこの選択制御を行わずに、使用するメモリ領域がどのメモリ領域であっても常にCPU出力アドレスA1 が入力されるようにするかを選択し、その選択結果を制御回路24に出力する。この制御レジスタ23の制御はCPU12が行う。
制御回路24は、制御レジスタ23の上記選択結果に基づき、内蔵メモリ13に格納されているシステムプログラムといくつかのアプリケーションプログラムとのうちのシステムプログラムをCPU12が実行するときに、CPU出力アドレスA1 が内蔵メモリ13のアドレス(実効アドレスA4 ) として出力され、CPU12がアプリケーションプログラムを実行するときに、加算アドレスA3が内蔵メモリ13のアドレス(実効アドレスA4 ) として出力されるように、セレクタ25を制御する。
この場合、制御回路24は、CPU出力アドレスA1 を入力しており、制御レジスタ23の設定がセレクタ25の選択制御オンであるとき、アドレス信号(CPU出力アドレスA1 )をデコードしてセレクタ25への制御信号を作成する。
図4は、1チップマイクロコンピュータ11の内蔵メモリ13のマップである。内蔵メモリ13はn個のセグメントから構成されている。
セグメント0は、システムプログラム領域31とCPU12に内蔵のレジスタ領域32とに割り当てられている。システムプログラム領域31は、ROMやフラッシュメモリなどの不揮発性メモリからなる。レジスタ領域32は、ベースレジスタ21および制御レジスタ23を含み、これらに対してはCPU12のメモリアクセス命令により、容易にアクセス可能となっている。
セグメントnは、CPU12の作業領域34であり、RAMに割り当てられている。
これらシステムプログラム領域31、レジスタ領域32および作業領域34のアドレスについては、ベースレジスタ21が保持する差分値A2 を加算せずに内蔵メモリ13に与えられる。
上記のセグメント0、n以外のセグメント1〜(n−1)は、複数のアプリケーションプログラム領域(プログラム格納領域)33であり、不揮発性メモリやRAMに割り当てられている。このアプリケーションプログラム領域33のアドレスについては、CPU出力アドレスA1 にベースレジスタ21が保持する差分値A2 を加算して内蔵メモリ13に与えられる。
図5は、任意の1セグメントのアプリケーションプログラム領域33内に複数のアプリケーションプログラムを格納したときのメモリマップである。ここでは、1セグメント64KByteのアプリケーションプログラム領域内に256Byte毎に最大256種類のアプリケーションプログラムを格納している。
上記の構成において、1チップマイクロコンピュータ11は、内蔵メモリ13のアプリケーションプログラム領域33に格納されたアプリケーションプログラムの1つを実行する場合、まず、例えば実行対象のアプリケーションプログラムが格納されたアプリケーションプログラム領域33の先頭アドレスを基準アドレスとし、この基準アドレスとアプリケーションプログラム領域33に配置されているアプリケーションプログラムの先頭アドレスとの差分値をベースレジスタ21に格納する。この処理は、システムプログラム領域31に格納されたシステムプログラムによって、即ちシステムプログラムに基づきCPU12によって行われる。このとき、内蔵メモリ13には、CPU出力アドレスA1 が入力される。
次に、システムプログラムが内蔵メモリ13のアプリケーションプログラムが格納されたアプリケーションプログラム領域33の前記基準アドレスヘの分岐命令を実行すると、このとき以後、内蔵メモリ13には加算アドレスA3 が実効アドレスA4 として入力される。
その後、アプリケーションプログラムが終了し、システムプログラムヘの分岐命令を実行すると、このとき以後、内蔵メモリ13には再びCPU出力アドレスA1 がアドレスとして入力される。
また、内蔵メモリ13に格納された別のアプリケーションプログラムを実行する場合には、ベースレジスタ21にそのアプリケーションプログラムについての差分値A2 を格納する。そして、処理を基準アドレスに分岐させると、そのアプリケーションプログラムが実行される。
このことは、上記差分値A2 をベースレジスタ21に格納することにより、異なるアプリケーションプログラムをこのプログラムが格納されたアプリケーションプログラム領域33における実際の配置アドレスに依存せずに実行できることを示している。
図6には、CPU出力アドレスA1 およびベースアドレス加算制御回路14の構成をさらに詳細に示している。
同図に示すように、CPU出力アドレスA1 は、a23〜a0 の24Bitから構成されている。このうちa23〜a16の8Bitは、セグメント部として割り当てられており、 CPU12がアクセス可能な連続したアドレス空間を64KByte単位で分割できるように構成されている。この8Bitは、実効アドレスA4 の一部となり、制御回路24にも入力される。アドレス上位a15〜a8 の8Bitは、セレクタ25と加算器22に入力される。この8Bitに、ベースレジスタ21に設定された差分値A2 を加算した値は、実効アドレスA4 の一部となる。アドレス下位a7 〜a0 の8Bitは、そのまま実効アドレスA4 の一部となる。
本実施の形態では、ベースレジスタ21を8Bit構成としており、CPU12のセグメント64KByte内において、アプリケーションプログラムを再配置可能な最小256バイト毎に、アドレスを分割できるようになっている。
例えば、セグメント部が01H、アドレス上位が00H、ベースレジスタが00H、アドレス下位が00Hのとき、実効アドレスA4 は、010000Hとなる。また、ベースレジスタが01Hのとき、実効アドレスA4 は、010100Hとなる。
制御レジスタ23は、1Bitで構成されており、制御回路24を動作させてセレクタ25を制御する。
本実施の形態では、制御レジスタ23に0をセットしたとき、制御回路24はCPU出力アドレスA1 に関係なく0を出力し、セレクタ25は常に0側を選択する。したがって、このときのアドレス上位a15〜a8 は、そのまま実効アドレスA4 の一部となる。
また、制御レジスタ23に1をセットしたとき、制御回路24は、CPU出力アドレスA1 の8Bitのセグメント部a23〜a16を判別し、セグメント部a23〜a16がシステムプログラム領域、内蔵メモリ13内におけるCPU12のレジスタ領域、または作業用のRAM領域を示していれば、0を出力する。一方、アプリケーションプログラム領域であれば1を出力する。
セレクタ25は、制御回路24の出力に応じ、その出力が0であればアドレス上位a15〜a8 (0側)を選択し、その出力が1であれば加算アドレスA3 (1側)を選択して、それぞれ実効アドレスA4 の一部とする。
次に、図6の構成においてアプリケーションプログラムを実行する手順を示す。なお、ここでのセグメントの値は01Hとし、ベースレジスタ21は8Bit構成とする。
まず、制御レジスタ23には、図4に示した内蔵メモリ13の各領域に対してアドレス(差分値A2 )の加算/非加算が機能するように、システムプログラムにより予め1がセットされる。
図5に示す例えばアプリケーションプログラムAP1 を実行する場合、CPU12はシステムプログラムにおいて、ベースレジスタ21に01Hをセットする。
次に、システムプログラムにおいて、内蔵メモリ13におけるアプリケーションプログラム領域33の基準アドレス010000H番地への分岐命令(たとえば、ジャンプ命令やサブルーチンコール命令)を実行する。
上記の分岐命令を実行中、CPU出力アドレスA1 がセグメント01Hを示した時から、アプリケーションプログラム領域33には、実効アドレスA4 として、ベースレジスタ21の内容(01H)とCPU出力アドレスA1 とを加算して得られた加算アドレスA3 が与えられる。従って、アプリケーションプログラムAP1 が格納されている010100H番地に処理が分岐することになる。
また、別のアドレスに格納されたアプリケーションプログラムを実行するには、システムプログラムにおいて、上記と同様に、ベースレジスタ21にそのアプリケーションプログラムに応じた差分値A2 を格納した後、基準アドレス010000H番地への分岐命令を実行すればよい。
そして、複数のアプリケーションプログラムを作成して、各アプリケーションプログラムをコード化するとき、各アプリケーションプログラムは、その配置アドレスを考慮することなく、全て基準アドレスから配置されるようにコード化しておけばよい。
次に、内蔵メモリ13へのアプリケーションプログラムの格納処理とアプリケーションプログラムの実行処理の手順をそれぞれ図7と図8のフローチャートにより説明する。なお、両図において、左側はPC2側の処理であり、右側は1チップマイクロコンピュータ11側のシステムプログラムの処理である。また、ここでは、図2に示したリーダ・ライタ3がPC2に内蔵されているものとする。
1チップマイクロコンピュータ11にプログラムを格納する場合には、図7に示すように、PC2がアプリケーションプログラムAPn のサイズを送信し(S1)、1チップマイクロコンピュータ11がそれを受信し、保存する(S11)。
次に、1チップマイクロコンピュータ11のシステムプログラムが、そのメモリ管理機能を用いて、アプリケーションプログラムAPn のアプリケーションプログラム領域33における格納アドレスを決定する。この場合、格納アドレスは、例えばアプリケーションプログラムのサイズに基づいて決定される。
次に、PC2が1チップマイクロコンピュータ11にアプリケーションプログラムAPn を送信し(S2)、1チップマイクロコンピュータ11がこれを受信し、内蔵メモリ13内のアプリケーションプログラム領域33におけるS12において決定したアドレスに、アプリケーションプログラムAPn を書き込む。
上記のようにして1チップマイクロコンピュータ11の内蔵メモリ13に格納されたアプリケーションプログラムAPn を実行する場合には、図8に示すように、PC2がアプリケーションプログラムAPn の実行指令を1チップマイクロコンピュータ11へ送信する(S21)。
上記の実行指令を受信すると、1チップマイクロコンピュータ11のCPU12はシステムプログラムに基づいて、制御レジスタ23に1をセットする(S31)。これにより、ベースレジスタ21のアドレス加算、即ち加算アドレスA3が有効となる。
次に、CPU12は、実行するアプリケーションプログラムAPn が格納されているアドレスに応じた差分値A2 をベースレジスタ21にセットする(S32)。
次に、CPU12がシステムプログラムに基づいて基準アドレスへの分岐命令を実行する(S33)。これにより、実行するアプリケーションプログラムヘの分岐が完了し、そのアプリケーションプログラムが実行される。
なお、本発明は、1チップマイクロコンピュータに係る発明として表現することもできる。
本発明の1チップマイクロコンピュータは、メモリ空間内におけるアプリケーションプログラムの動的な配置を一括して管理するメモリ管理機能を備え、複数のアプリケーションプログラムを内蔵メモリのプログラム格納領域における任意のアドレスに格納するシステムプログラム(メモリ管理手段)を備えている構成としてもよい。
上記の構成によれば、メモリ管理手段は、アプリケーションプログラムを作成する端末側、例えばパーソナルコンピュータから転送されて来た複数のアプリケーションプログラムを内蔵メモリの任意の領域に任意のサイズで格納する。
このようにして複数のアプリケーションプログラムが内蔵メモリに書き込まれた場合であっても、本1チップマイクロコンピュータでは、各アプリケーションプログラムを容易に実行することができる。
また、アプリケーションプログラム作成時には、そのプログラムが配置される内蔵メモリ上のアドレスを考慮する必要がなく、各アプリケーションプログラムを独立かつ自由に開発することができる。
また、本発明の1チップマイクロコンピュータは、出力アドレスとベースレジスタの内容(差分値)を加算したアドレスへの分岐命令を実行する実行制御機能を備え、内蔵メモリのプログラム格納領域に複数のプログラムが格納されているときに、任意のプログラムを実行可能なシステムプログラムを搭載していることを特徴としている。
上記の構成によれば、システムプログラムにおいて、アプリケーションプログラムを実行する前に、ベースレジスタに、そのアプリケーションプログラムの先頭アドレスと基準アドレスとの差分値を格納し、分岐命令を実行する。
これにより、内蔵メモリに格納された複数のアプリケーションプログラムのうちの一つを選択して実行することが可能となる。
また、本1チップマイクロコンピュータにおいては、内蔵メモリがフラッシュメモリやEEPROMなどの書き換え可能な不揮発性領域を含んでいる構成としてもよい。
上記構成によれば、システムプログラムに対し、必要な内容を書き換えたり追加したりすることが可能となる。
本発明の1チップマイクロコンピュータは、アプリケーションプログラム領域を有する内蔵メモリを備え、所定の基準アドレスと前記アプリケーションプログラム領域に格納された複数のアプリケーションプログラムの先頭アドレスとの差分値を、実行する各アプリケーションプログラム毎に設定し、各差分値に基づいて各アプリケーションプログラムを実行する構成であってもよい。
これにより、アプリケーションプログラム領域に格納された複数のアプリケーションプログラムの何れかを実行する場合には、そのアプリケーションプログラムの先頭アドレスと所定の基準アドレスとの差分値が設定され、この差分値に基づいて、アプリケーションプログラムが実行される。
したがって、アプリケーションプログラム領域の異なるアドレスに格納された任意のアプリケーションプログラムを容易に実行することができる。
即ち、1チップマイクロコンピュータ内でアプリケーションプログラムを実行する際に、それを実行するCPUは、各アプリケーションプログラムが配置されている、各アプリケーションプログラム毎に異なるアドレスを考慮することなく実行することができる。
また、アプリケーションプログラム開発時には、そのプログラムが1チップマイクロコンピュータ上で配置されるアドレスを考慮することなく独立して開発することができる。
また、アプリケーションプログラムを1チップマイクロコンピュータ上に配置する際には、複雑なマッピング作業が不要である。
また、本発明の1チップマイクロコンピュータは、アプリケーションプログラム領域を有する内蔵メモリと、ベースレジスタと、所定の基準アドレスと前記アプリケーションプログラム領域に格納された複数のアプリケーションプログラムの先頭アドレスとの差分値を、実行する各アプリケーションプログラム毎にベースレジスタに設定する差分値設定手段と、前記基準アドレスおよびこれとは異なる出力アドレスを供給するアドレス供給手段と、ベースレジスタが保持する前記差分値とアドレス供給手段から供給される出力アドレスとを加算する加算手段と、前記加算手段により生成された加算アドレスとアドレス供給手段から供給された出力アドレスとの何れか一方を内蔵メモリのアドレスの少なくとも一部として選択するアドレス選択手段とを備えている構成としてもよい。
上記の構成によれば、プログラム格納領域に格納された複数のアプリケーションプログラムの何れかを実行する場合には、そのアプリケーションプログラムの先頭アドレスと所定の基準アドレスとの差分値が差分値設定手段によりベースレジスタに設定される。
また、アドレス供給手段は、基準アドレスおよびこれとは異なる出力アドレスを供給する。加算手段は、ベースレジスタが保持する差分値とアドレス供給手段から供給される出力アドレスとを加算する。アドレス選択手段は、加算手段により生成された加算アドレスとアドレス供給手段から供給された出力アドレスとの何れか一方を内蔵メモリのアドレスの少なくとも一部として選択する。
即ち、アドレス選択手段は、アプリケーションプログラムを実行する場合、加算アドレスを内蔵メモリのアドレスの少なくとも一部として選択し、アプリケーションプログラム以外の例えばシステムプログラムを実行する場合、出力アドレスを内蔵メモリのアドレスの少なくとも一部として選択する。
したがって、プログラム格納領域の異なるアドレスに格納された任意のアプリケーションプログラムを容易に実行することができる。
即ち、1チップマイクロコンピュータ内でアプリケーションプログラムを実行する際に、それを実行するCPUは、各アプリケーションプログラムが配置されている、各アプリケーションプログラム毎に異なるアドレスを考慮することなく実行することができる。
また、アプリケーションプログラム開発時には、そのプログラムが1チップマイクロコンピュータ上で配置されるアドレスを考慮することなく独立して開発することができる。
また、アプリケーションプログラムを1チップマイクロコンピュータ上に配置する際には、複雑なマッピング作業が不要である。
上記の1チップマイクロコンピュータにおいて、前記プログラム格納領域は、複数のセグメントの領域からなり、一つのセグメント内に複数のアプリケーションプログラムが格納される構成としてもよい。
上記の構成によれば、内蔵メモリに格納可能なアプリケーションプログラムの数が例えばセグメント数に限定されることなく、セグメント数を超えて多数個格納可能である。また、例えば1セグメントの領域にこの領域の容量に比べて大きさの小さいアプリケーションプログラムが一つのみ格納されて、残りのメモリ領域が無駄になる事態を確実に防止することができる。
また、上記の1チップマイクロコンピュータは、メモリ空間内におけるアプリケーションプログラムの配置を管理し、複数のアプリケーションプログラムを内蔵メモリのプログラム格納領域における任意のアドレスに格納するメモリ管理手段を備えている構成としてもよい。
上記の構成によれば、メモリ管理手段は、アプリケーションプログラムを作成する端末側、例えばパーソナルコンピュータから転送されて来た複数のアプリケーションプログラムを内蔵メモリの任意の領域に任意のサイズで格納する。
このようして複数のアプリケーションプログラムが内蔵メモリに書き込まれた場合であっても、本1チップマイクロコンピュータでは、各アプリケーションプログラムを容易に実行することができる。
また、アプリケーションプログラム作成時には、そのプログラムが配置される内蔵メモリ上のアドレスを考慮する必要がなく、各アプリケーションプログラムを独立かつ自由に開発することができる。
また、上記の1チップマイクロコンピュータは、前記選択手段がその選択動作を制御するための制御レジスタを有し、この制御レジスタおよび前記ベースレジスタがメモリマップドI/O方式である構成としてもよい。
上記の構成によれば、ベースレジスタや制御レジスタに対して値を書き込んだり読み出したりする場合、これらが配置されているアドレスに対してメモリアクセス命令を発行するのみでよい。したがって、これらレジスタの制御が容易である。
また、本発明のICカードは、上記の何れかの1チップマイクロコンピュータを内蔵している構成である。
上記の構成によれば、複数のアプリケーションプログラムを1チップマイクロコンピュータの内蔵メモリ上に柔軟に構成可能なICカードを実現することができる。
本発明によれば、各アプリケーションプログラム毎に異なるアドレスを考慮することなく実行することができる。さらに、本発明によれば、そのプログラムがICカードのメモリに配置されるアドレスを考慮することなく独立してアプリケーションプログラムを開発することができる。また、本発明によれば、アプリケーションプログラムをICカードのメモリに配置する際に、複雑なマッピング作業が不要である。
本発明の実施の一形態の1チップマイクロコンピュータを示すものであって、図3におけるベースアドレス加算制御回路の構成を詳細に示したブロック図である。 本発明の実施の一形態における1チップマイクロコンピュータを内蔵するICカードを備えたICカードシステムを示すブロック図である。 図2に示したICカードの構成を示す概略のブロック図である。 図1に示した内蔵メモリのシステムプログラム領域、レジスタ領域、アプリケーションプログラム領域および作業領域を示すメモリマップである。 図4に示したアプリケーションプログラム領域の構成を示すメモリマップである。 図1に示した1チップマイクロコンピュータにおける、CPU出力アドレスおよびベースアドレス加算制御回路の構成を詳細に示すブロック図である。 図1に示した内蔵メモリへのアプリケーションプログラムの格納処理を示すフローチャートである。 図1に示した内蔵メモリに格納されているアプリケーションプログラムの実行処理を示すフローチャートである。 従来のメモリ制御装置の構成を示すブロック図である。
1 ICカード
2 パーソナルコンピュータ
3 リーダ・ライタ
11 1チップマイクロコンピュータ
12 CPU(差分値設定手段、アドレス供給手段、メモリ管理手段)
13 内蔵メモリ
14 ベースアドレス加算制御回路
15 UART
16 周辺回路
21 ベースレジスタ
22 加算器(加算手段)
23 制御レジスタ(アドレス選択手段)
24 制御回路(アドレス選択手段)
25 セレクタ(アドレス選択手段)
31 システムプログラム領域
32 レジスタ領域
33 アプリケーションプログラム領域(プログラム格納領域)
34 作業領域
1 CPU出力アドレス
2 差分値
3 加算アドレス
4 実効アドレス

Claims (4)

  1. 数のアプリケーションプログラムを格納可能な内蔵メモリを備え、
    前記内蔵メモリのアドレスは、セグメント部と前記セグメント部より下位に位置するアドレス部から構成され、
    前記内蔵メモリには基準アドレス部が設定されており、カード発行後に、前記基準アドレス部から配置されるようにコード化されたアプリケーションプログラムを前記内蔵メモリの任意のアドレス部にダウンロードして追加可能なメモリ管理手段を備え
    発行後にアプリケーションプログラムをダウンロードして追加可能なICカードであって、
    ベースレジスタと、
    所定の基準アドレスと前記複数のアプリケーションプログラムの先頭アドレスとの差分値を、実行する各アプリケーションプログラム毎にベースレジスタに設定する差分値設定手段と、
    前記基準アドレスおよびこれとは異なる出力アドレスを供給するアドレス供給手段と、
    ベースレジスタが保持する前記差分値とアドレス供給手段から供給される出力アドレスとを加算する加算手段と、
    前記加算手段により生成された加算アドレスとアドレス供給手段から供給された出力アドレスとの何れか一方を内蔵メモリのアドレスの少なくとも一部として選択するアドレス選択手段とを備え、
    前記アドレス選択手段は、前記加算アドレスと前記出力アドレスとの何れを選択するかを設定可能であるとともに、前記出力アドレスの値に関係なく前記出力アドレスを選択する動作と、前記出力アドレスのセグメント部がアプリケーションプログラム領域である場合に前記加算アドレスを出力し、当該セグメント部がアプリケーションプログラム領域以外である場合に前記出力アドレスを出力する動作とのいずれかの動作を設定可能であるICカード。
  2. 前記メモリ管理手段は、ダウンロードするアプリケーションプログラムのサイズに基づいて前記内蔵メモリの格納アドレスを決定して、該格納アドレスに前記ダウンロードするアプリケーションプログラムを格納させ、
    前記メモリ管理手段を用いて、カード発行後にアプリケーションプログラムをダウンロードして前記内蔵メモリに追加することを可能とする請求項1に記載のICカード。
  3. 前記メモリ管理手段は、前記ダウンロードするアプリケーションプログラムのサイズを受信し、前記受信したアプリケーションプログラムのサイズに基づいて前記格納アドレスを決定する請求項1または2に記載のICカード。
  4. 前記内蔵メモリは前記アプリケーションプログラムを格納するプログラム格納領域を有し、
    前記内蔵メモリの所定の基準アドレスと、前記プログラム格納領域に格納された複数のアプリケーションプログラムの先頭アドレスとの差分値を、実行するアプリケーションプログラム毎に設定し、前記各差分値に基づいて各アプリケーションプログラムを実行する請求項1〜のいずれかに記載のICカード。
JP2007082928A 2007-03-27 2007-03-27 Icカード Expired - Lifetime JP4705600B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007082928A JP4705600B2 (ja) 2007-03-27 2007-03-27 Icカード

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007082928A JP4705600B2 (ja) 2007-03-27 2007-03-27 Icカード

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2007001836A Division JP2007141257A (ja) 2007-01-09 2007-01-09 Icカードおよびリーダ・ライタ

Publications (2)

Publication Number Publication Date
JP2007200350A JP2007200350A (ja) 2007-08-09
JP4705600B2 true JP4705600B2 (ja) 2011-06-22

Family

ID=38454822

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007082928A Expired - Lifetime JP4705600B2 (ja) 2007-03-27 2007-03-27 Icカード

Country Status (1)

Country Link
JP (1) JP4705600B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58197545A (ja) * 1982-05-14 1983-11-17 Hitachi Ltd 自動切換装置
JPS6091460A (ja) * 1983-10-22 1985-05-22 Sony Corp メモリのアドレス制御装置
JPH04245536A (ja) * 1991-01-31 1992-09-02 Matsushita Graphic Commun Syst Inc 情報処理装置
FR2683357A1 (fr) * 1991-10-30 1993-05-07 Philips Composants Microcircuit pour carte a puce a memoire programmable protegee.
JPH05324016A (ja) * 1992-05-15 1993-12-07 Sharp Corp プログラマブルコントローラ

Also Published As

Publication number Publication date
JP2007200350A (ja) 2007-08-09

Similar Documents

Publication Publication Date Title
US7213117B2 (en) 1-chip microcomputer having controlled access to a memory and IC card using the 1-chip microcomputer
US7640418B2 (en) Dynamic field patchable microarchitecture
CN100517228C (zh) 执行嵌入系统的引导程序代码的方法和装置
JP2011040074A (ja) 無線通信装置中の1組の記憶位置に機能を独立的にダウンロードするためのシステムおよび方法
KR940007350B1 (ko) 휴대가능 전자장치
CN100485810C (zh) 逻辑与非快闪存储器芯片存取方法及与非快闪存储器芯片
CN115220758B (zh) 一种单片机固件在线升级的方法
EP0483978A2 (en) I.C. card
CN101465754A (zh) 加载复位配置字的方法、设备及通信单板
JP5754264B2 (ja) プログラム実行装置、画像処理装置およびプログラム
JP2007141257A (ja) Icカードおよびリーダ・ライタ
JP4705600B2 (ja) Icカード
JP4742469B2 (ja) 複数のosを用いるicカード、icカード処理装置および処理方法
US6148362A (en) Microcomputer using nonvolatile semiconductor memory to store user code/data
JP4840553B2 (ja) 無線通信機と、そのブートプログラム書き換え方法及びプログラム
KR100737919B1 (ko) 낸드 플래시 메모리의 프로그램 방법 및 메모리 시스템의프로그램 방법
EP0408361B1 (en) Electronic equipment operable by a plurality of control programs
EP2228734A1 (en) Portable electronic device and access control method in portable electronic device
JP2008158964A (ja) メモリ用アドレスマッピング方法、それを適用したメモリデバイス
CN101896885B (zh) 复制保护软件卡盒
CN100456243C (zh) 存储设备及控制该存储设备操作的方法
JP2001209763A (ja) 1チップマイクロコンピュータおよびそれを内蔵したicカード
EP1050028A1 (en) Codelets
JP6662140B2 (ja) Icカード及びicカードにおけるメモリ制御方法
JP2010218147A (ja) 携帯可能電子装置および携帯可能電子装置におけるメモリ制御方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100323

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101214

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110208

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: 20110301

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110311

R150 Certificate of patent or registration of utility model

Ref document number: 4705600

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term