JP2001209763A - 1チップマイクロコンピュータおよびそれを内蔵したicカード - Google Patents

1チップマイクロコンピュータおよびそれを内蔵したicカード

Info

Publication number
JP2001209763A
JP2001209763A JP2000015060A JP2000015060A JP2001209763A JP 2001209763 A JP2001209763 A JP 2001209763A JP 2000015060 A JP2000015060 A JP 2000015060A JP 2000015060 A JP2000015060 A JP 2000015060A JP 2001209763 A JP2001209763 A JP 2001209763A
Authority
JP
Japan
Prior art keywords
address
application program
memory
chip microcomputer
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.)
Pending
Application number
JP2000015060A
Other languages
English (en)
Inventor
Junichi Okamoto
純一 岡本
Ryuichi Ogawa
竜一 小川
Kazuhiro Yaekawa
和宏 八重川
Susumu Kurioka
進 栗岡
Kenji Ono
謙次 大野
Tadao Takeda
忠雄 竹田
Masaaki Tomizawa
雅彰 富沢
Masaaki Tanno
雅明 丹野
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 JP2000015060A priority Critical patent/JP2001209763A/ja
Publication of JP2001209763A publication Critical patent/JP2001209763A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)

Abstract

(57)【要約】 【課題】 各アプリケーションプログラムを、それが配
置されている内蔵メモリのアドレスを考慮することなく
実行できるようにする。 【解決手段】 アプリケーションプログラム領域33を
有する内蔵メモリ13を備え、所定の基準アドレス(C
PU出力アドレスA1 )とアプリケーションプログラム
領域33に格納された複数のアプリケーションプログラ
ムの先頭アドレスとの差分値A2 を、実行する各アプリ
ケーションプログラム毎に設定し、基準アドレスと各差
分値A2 とに基づいて各アプリケーションプログラムを
実行する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、内蔵メモリ内に複
数のアプリケーションプログラムを格納し、それらを実
行する1チップマイクロコンピュータおよびそれを内蔵
したICカードに関するものである。
【0002】
【従来の技術】従来、プログラム用メモリを内蔵し、そ
のプログラム用メモリに格納されたアプリケーションプ
ログラムを実行する1チップマイクロコンピュータが知
られている。この種の従来の1チップマイクロコンピュ
ータでは、プログラム用メモリの容量の制限などから、
1つの1チップマイクロコンピュータにおいて実行でき
るアプリケーションプログラムが通常1種類に限定され
ていた。
【0003】また、複数のアプリケーションプログラム
に対応可能な1チップマイクロコンピュータであって
も、プログラム用メモリの固定されたアドレスを先頭ア
ドレスとしてアプリケーションプログラムを格納してお
き、その中から1つのアプリケーションプログラムを選
択して実行できるに留まっていた。
【0004】一方、近年において、1チップマイクロコ
ンピュータに内蔵されるプログラム用メモリとしては、
記憶容量の増大とともに、その種類も従来の読み出し専
用メモリ(ROM)の他に、フラッシュメモリなどの大
容量の不揮発性メモリ等が開発され、多様化している。
【0005】また、上記のような1チップマイクロコン
ピュータを内蔵した電子カード、即ちICカードにおい
ては、電子現金、電子チケット、電子社員証など、複数
のアプリケーションプログラムを動作可能にしたいとい
う要望が高まっている。このような要望に対応するため
には、ICカードに内蔵される1チップマイクロコンピ
ュータにおいて、それに格納される各アプリケーション
プログラムの実行制御を柔軟に行い得ることが必要であ
る。
【0006】上記従来の1チップマイクロコンピュータ
において、複数のアプリケーションプログラムを実行す
ることは、次のような手法により実現することができ
る。
【0007】まず、1チップマイクロコンピュータに搭
載されたオペレーティングシステムなどのシステムプロ
グラムにおいて、各アプリケーションプログラムのスタ
ートアドレスと、アプリケーションプログラム1つ当た
りのサイズとをあらかじめ決めておく。
【0008】次に、上記スタートアドレスからアプリケ
ーションプログラムの実行コードが配置されるように、
あらかじめパーソナルコンピュータ(PC)等の端末装
置上において、1チップマイクロコンピュータ用のクロ
ス開発環境を用いて実行コードを生成し、これを1チッ
プマイクロコンピュータのプログラム用メモリに配置す
る。
【0009】そして、ICカードのシステムプログラム
は、PC側のプログラムから所定のアプリケーションプ
ログラムの実行指令を受け取ると、そのアプリケーショ
ンプログラムが格納されたアドレスへの分岐命令を実行
する。また、他のアプリケーションプログラムを実行す
るときには、そのアプリケーションに割り当てられたア
ドレスヘの分岐命令を実行する。
【0010】一方、特許第2909109号公報には、
図9に示すように、連続したメモリ領域への異種データ
の格納およびアクセスを柔軟に行うために、バッテリに
よりバックアップされたシステムメモリ(図示せず)と
アドレスデコーダ101、バックアップデータの先頭ア
ドレスを示すベースレジスタ102、バンク切り替え用
のページレジスタ103、アドレス加算器、即ちアダー
104およびセレクタ105からなるメモリ制御装置が
開示されている。
【0011】上記装置において、アドレスデコーダ10
1は、入力されたアドレスが変換対象アドレスか否かを
判別する。ベースレジスタ102はアドレス変換用の先
頭アドレスを格納している。ページレジスタ103はバ
ンク切り替えによってアドレス変換を行う。アダー10
4は、ベースレジスタ102に設定されたベースアドレ
ス値に、ベースレジスタ102に設定されたバンクアド
レスを加えて、加算アドレス106を生成する。セレク
タ105は、アドレスデコーダ101の判別結果に基づ
いて、加算アドレス106と非加算アドレス107との
何れか一方をメモリアドレスとして出力する。
【0012】上記のメモリ制御装置では、バックアップ
対象データをシステムメモリから読み出すときに非加算
アドレス107をメモリアドレスとして与え、バックア
ップすべきデータをシステムメモリに書き込むときに加
算アドレス106をメモリアドレスとして与えることに
より、連続したメモリ空間に対して異種データを格納で
きるようにしている。
【0013】
【発明が解決しようとする課題】1つの1チップマイク
ロコンピュータが複数のアプリケーションプログラムに
対応するには、それぞれ独立して開発されたアプリケー
ションプログラムを同一メモリの連続したアドレス空間
上に混在させることになる。この場合には、各アプリケ
ーションプログラムに対し、それぞれのアプリケーショ
ンプログラムが使用するアドレス空間同士が干渉し合わ
ないように、固有のアドレス空間を割り当てる必要があ
る。
【0014】通常、アプリケーションプログラムは、プ
ログラム開発者がコード生成したアドレスに正しく配置
されなければ、正常に動作しない。
【0015】また、1チップマイクロコンピュータのメ
モリ構成が、バンク切り替え(前記公報に記載)やセグ
メント分割で管理される場合には、各バンク単位あるい
は各セグメント単位毎にアプリケーションプログラムを
配置させることも考えられる。しかしながら、この場合
にはプログラムの格納数がシステムで許容されるバンク
数あるいはセグメント数に限定されてしまう。
【0016】また、格納するアプリケーションプログラ
ムのサイズが1つのバンク単位あるいはセグメント単位
よりも十分小さい場合には、プログラムメモリの多くの
部分が無駄になってしまう。
【0017】また、フラッシュメモリやEEPROMな
どの不揮発性メモリをプログラムメモリとして搭載した
多目的ICカードのように、仕様や用途に応じて使用す
るアプリケーションに複数の組み合わせがある場合、各
アプリケーションプログラムの配置順や配置アドレスは
ICカード毎に異なる。
【0018】また、ICカードが発行された後に、新し
いアプリケーションプログラムをICカードのプログラ
ムメモリへ追加する場合、追加するアプリケーションプ
ログラムのコードをICカードのプログラムメモリの空
いた領域に対応させて、ICカード発行者が再構築させ
る必要がある。このような操作は非常に複雑であり、セ
キュリティの面からも好ましくない。
【0019】また、前記公報に記載の構成では、ベース
レジスタ102とページレジスタ103との出力を加算
して得られた加算アドレスをメモリアドレスの一部とし
てメモリへ与えることにより、異種データの格納、格納
データサイズの増減が行えるとされているものの、この
装置の目的はデータのバックアップであり、それぞれの
領域に格納したデータをプログラムとして実行するよう
には構成されていない。
【0020】したがって、本発明は、アプリケーション
プログラム開発時には、そのプログラムが1チップマイ
クロコンピュータ上で配置されるアドレスを考慮するこ
となく独立して開発できることを可能にし、かつ1チッ
プマイクロコンピュータ上に配置する際に複雑なマッピ
ング作業を発生させず、さらに1チップマイクロコンピ
ュータ内でそのプログラムが実行される際に、CPUが
各アプリケーションプログラムが配置されているアドレ
スを考慮することなくソフトウエアを実行できることを
可能にする1チップマイクロコンピュータおよびそれを
内蔵したICカードの提供を目的としている。
【0021】
【課題を解決するための手段】本発明の1チップマイク
ロコンピュータは、プログラム格納領域を有する内蔵メ
モリを備え、所定の基準アドレスと前記プログラム格納
領域に格納された複数のアプリケーションプログラムの
先頭アドレスとの差分値を、実行する各アプリケーショ
ンプログラム毎に設定し、前記基準アドレスと各差分値
とに基づいて各アプリケーションプログラムを実行する
ことを特徴としている。
【0022】上記構成によれば、プログラム格納領域に
格納された複数のアプリケーションプログラムの何れか
を実行する場合には、そのアプリケーションプログラム
の先頭アドレスと所定の基準アドレスとの差分値が設定
され、この差分値と前記基準アドレスとに基づいて、ア
プリケーションプログラムが実行される。
【0023】したがって、プログラム格納領域の異なる
アドレスに格納された任意のアプリケーションプログラ
ムを容易に実行することができる。
【0024】即ち、1チップマイクロコンピュータ内で
アプリケーションプログラムを実行する際に、それを実
行するCPUは、各アプリケーションプログラムが配置
されている、各アプリケーションプログラム毎に異なる
アドレスを考慮することなく実行することができる。
【0025】また、アプリケーションプログラム開発時
には、そのプログラムが1チップマイクロコンピュータ
上で配置されるアドレスを考慮することなく独立して開
発することができる。
【0026】また、アプリケーションプログラムを1チ
ップマイクロコンピュータ上に配置する際には、複雑な
マッピング作業が不要である。
【0027】また、本発明の1チップマイクロコンピュ
ータは、プログラム格納領域を有する内部メモリと、ベ
ースレジスタと、所定の基準アドレスと前記プログラム
格納領域に格納された複数のアプリケーションプログラ
ムの先頭アドレスとの差分値を、実行する各アプリケー
ションプログラム毎にベースレジスタに設定する差分値
設定手段と、前記基準アドレスおよびこれとは異なる非
加算アドレスを供給するアドレス供給手段と、ベースレ
ジスタが保持する前記差分値とアドレス供給手段から供
給される基準アドレスとを加算する加算手段と、前記加
算手段により生成された加算アドレスとアドレス供給手
段から供給された非加算アドレスとの何れか一方を内蔵
メモリのアドレスの少なくとも一部として選択するアド
レス選択手段とを備えていることを特徴としている。
【0028】上記の構成によれば、プログラム格納領域
に格納された複数のアプリケーションプログラムの何れ
かを実行する場合には、そのアプリケーションプログラ
ムの先頭アドレスと所定の基準アドレスとの差分値が差
分値設定手段によりベースレジスタに設定される。
【0029】また、アドレス供給手段は、基準アドレス
およびこれとは異なる非加算アドレスを供給する。加算
手段は、ベースレジスタが保持する差分値とアドレス供
給手段から供給される基準アドレスとを加算する。アド
レス選択手段は、加算手段により生成された加算アドレ
スとアドレス供給手段から供給された非加算アドレスと
の何れか一方を内蔵メモリのアドレスの少なくとも一部
として選択する。
【0030】即ち、アドレス選択手段は、アプリケーシ
ョンプログラムを実行する場合、加算アドレスを内蔵メ
モリのアドレスの少なくとも一部として選択し、アプリ
ケーションプログラム以外の例えばシステムプログラム
を実行する場合、非加算アドレスを内蔵メモリのアドレ
スの少なくとも一部として選択する。
【0031】したがって、プログラム格納領域の異なる
アドレスに格納された任意のアプリケーションプログラ
ムを容易に実行することができる。
【0032】即ち、1チップマイクロコンピュータ内で
アプリケーションプログラムを実行する際に、それを実
行するCPUは、各アプリケーションプログラムが配置
されている、各アプリケーションプログラム毎に異なる
アドレスを考慮することなく実行することができる。
【0033】また、アプリケーションプログラム開発時
には、そのプログラムが1チップマイクロコンピュータ
上で配置されるアドレスを考慮することなく独立して開
発することができる。
【0034】また、アプリケーションプログラムを1チ
ップマイクロコンピュータ上に配置する際には、複雑な
マッピング作業が不要である。
【0035】上記の1チップマイクロコンピュータにお
いて、前記プログラム格納領域は、複数のセグメントの
領域からなり、一つのセグメント内に複数のアプリケー
ションプログラムが格納される構成としてもよい。
【0036】上記の構成によれば、内蔵メモリに格納可
能なアプリケーションプログラムの数が例えばセグメン
ト数に限定されることなく、セグメント数を超えて多数
個格納可能である。また、例えば1セグメントの領域に
この領域の容量に比べて大きさの小さいアプリケーショ
ンプログラムが一つのみ格納されて、残りのメモリ領域
が無駄になる事態を確実に防止することができる。
【0037】また、上記の1チップマイクロコンピュー
タは、メモリ空間内におけるアプリケーションプログラ
ムの配置を管理し、複数のアプリケーションプログラム
を内蔵メモリのプログラム格納領域における任意のアド
レスに格納するメモリ管理手段を備えている構成として
もよい。
【0038】上記の構成によれば、メモリ管理手段は、
アプリケーションプログラムを作成する端末側、例えば
パーソナルコンピュータから転送されて来た複数のアプ
リケーションプログラムを内蔵メモリの任意の領域に任
意のサイズで格納する。
【0039】このようして複数のアプリケーションプロ
グラムが内部メモリに書き込まれた場合であっても、本
1チップマイクロコンピュータでは、各アプリケーショ
ンプログラムを容易に実行することができる。
【0040】また、アプリケーションプログラム作成時
には、そのプログラムが配置される内蔵メモリ上のアド
レスを考慮する必要がなく、各アプリケーションプログ
ラムを独立かつ自由に開発することができる。
【0041】また、上記の1チップマイクロコンピュー
タは、前記選択手段がその選択動作を制御するための制
御レジスタを有し、この制御レジスタおよび前記ベース
レジスタがメモリマップドI/O方式である構成として
もよい。
【0042】上記の構成によれば、ベースレジスタや制
御レジスタに対して値を書き込んだり読み出したりする
場合、これらが配置されているアドレスに対してメモリ
アクセス命令を発行するのみでよい。したがって、これ
らレジスタの制御が容易である。
【0043】また、本発明のICカードは、上記の何れ
かの1チップマイクロコンピュータを内蔵している構成
である。
【0044】上記の構成によれば、複数のアプリケーシ
ョンプログラムを1チップマイクロコンピュータの内蔵
メモリ上に柔軟に構成可能なICカードを実現すること
ができる。
【0045】
【発明の実施の形態】本発明の実施の一形態を図1ない
し図8に基づいて以下に説明する。本発明の実施の形態
において、1チップマイクロコンピュータは、図2に示
すICカード1に搭載されている。同図は、ICカード
システムを示すブロック図であり、このシステムはIC
カード1、情報端末装置としての例えばパーソナルコン
ピュータ(以下、PCと略称する)2、ICカード1の
リーダ・ライタ3から構成される。なお、リーダ・ライ
タ3は、独立したものとせず、PC2のICカードスロ
ットに内蔵されている構成であってもよい。
【0046】PC2は、ICカード応用システムのPC
側プログラムを搭載しており、ICカード1にアプリケ
ーションプログラムコードをダウンロードしたり、IC
カード1に対してコマンドの送受信を行うようになって
いる。また、リーダ・ライタ3に対してコマンドの送受
信を行うようになっている。
【0047】図3に示すように、ICカード1に搭載さ
れた1チップマイクロコンピュータ11は、CPU(差
分値設定手段、アドレス供給手段、メモリ管理手段)1
2、内蔵メモリ13、ベースアドレス加算制御回路1
4、UART(Universal Asynchronous Receiver Tran
smitter :汎用非同期送受信回路)15および周辺回路
16を備えている。
【0048】上記CPU12は、システムプログラムや
アプリケーションプログラムを実行するものである。内
蔵メモリ13は、システムプログラムやアプリケーショ
ンプログラムを格納したり、CPU12の作業領域とし
て使用され、不揮発性領域を含む。ベースアドレス加算
制御回路14は、後述のように、アドレスの制御を行う
ものである。UART15はリーダ・ライタ3と通信を
行うためのものである。周辺回路16はタイマ等からな
る。これら各ブロックは、CPU12が入出力するアド
レス線(出力のみ)やデータ線、データ読出し・書込み
やブロック活性化のための制御線などで接続されてい
る。
【0049】上記のCPU12、ベースアドレス加算制
御回路14および内蔵メモリ13の関係を詳細に示すと
図1に示すものとなる。
【0050】同図に示すように、ベースアドレス加算制
御回路14は、ベースレジスタ21、加算器(加算手
段)22、制御レジスタ23、制御回路24およびセレ
クタ25を備えている。上記ベースレジスタ21および
制御レジスタ23はメモリマップドI/O方式のものと
なっている。また、制御レジスタ23、制御回路24お
よびセレクタ25はアドレス選択手段を構成している。
【0051】上記のベースレジスタ21は、アプリケー
ションプログラムを内蔵メモリ13に配置するときの先
頭アドレスと所定の基準アドレスとの差分値を格納す
る。このベースレジスタ21への書き込みは内蔵メモリ
13に格納されたシステムプログラムに基づいてCPU
12が行う。
【0052】加算器22は、CPU12から出力される
CPU出力アドレスA1 (基準アドレス)とベースレジ
スタ21から得られる差分アドレス、即ち差分値A2
を加算し、加算アドレスA3 を生成する。
【0053】セレクタ25は、制御回路からの制御信号
に基づいて、内蔵メモリ13に出力する信号を選択す
る。
【0054】制御レジスタ23は、内蔵メモリ13の使
用されるメモリ領域に応じて、内蔵メモリ13に加算ア
ドレスA3 または非加算アドレス(CPU出力アドレス
1)が入力されるように選択制御を行う(選択制御オ
ン)か、もしくはこの選択制御を行わずに、使用するメ
モリ領域がどのメモリ領域であっても常にCPU出力ア
ドレスA1 が入力されるようにするかを選択し、その選
択結果を制御回路24に出力する。この制御レジスタ2
3の制御はCPU12が行う。
【0055】制御回路24は、制御レジスタ23の上記
選択結果に基づき、内蔵メモリ13に格納されているシ
ステムプログラムといくつかのアプリケーションプログ
ラムとのうちのシステムプログラムをCPU12が実行
するときに、CPU出力アドレスA1 が内蔵メモリ13
のアドレス(実効アドレスA4 ) として出力され、CP
U12がアプリケーションプログラムを実行するとき
に、加算アドレスA3 が内蔵メモリ13のアドレス(実
効アドレスA4 ) として出力されるように、セレクタ2
5を制御する。
【0056】この場合、制御回路24は、CPU出力ア
ドレスA1 を入力しており、制御レジスタ23の設定が
セレクタ25の選択制御オンであるとき、アドレス信号
(CPU出力アドレスA1 )をデコードしてセレクタ2
5への制御信号を作成する。
【0057】図4は、1チップマイクロコンピュータ1
1の内蔵メモリ13のマップである。内蔵メモリ13は
n個のセグメントから構成されている。
【0058】セグメント0は、システムプログラム領域
31とCPU12に内蔵のレジスタ領域32とに割り当
てられている。システムプログラム領域31は、ROM
やフラッシュメモリなどの不揮発性メモリからなる。レ
ジスタ領域32は、ベースレジスタ21および制御レジ
スタ23を含み、これらに対してはCPU12のメモリ
アクセス命令により、容易にアクセス可能となってい
る。
【0059】セグメントnは、CPU12の作業領域3
4であり、RAMに割り当てられている。
【0060】これらシステムプログラム領域31、レジ
スタ領域32および作業領域34のアドレスについて
は、ベースレジスタ21が保持する差分値A2 を加算せ
ずに内蔵メモリ13に与えられる。
【0061】上記のセグメント0、n以外のセグメント
1〜(n−1)は、複数のアプリケーションプログラム
領域(プログラム格納領域)33であり、不揮発性メモ
リやRAMに割り当てられている。このアプリケーショ
ンプログラム領域33のアドレスについては、CPU出
力アドレスA1 にベースレジスタ21が保持する差分値
2 を加算して内蔵メモリ13に与えられる。
【0062】図5は、任意の1セグメントのアプリケー
ションプログラム領域33内に複数のアプリケーション
プログラムを格納したときのメモリマップである。ここ
では、1セグメント64KByteのアプリケーション
プログラム領域内に256Byte毎に最大256種類
のアプリケーションプログラムを格納している。
【0063】上記の構成において、1チップマイクロコ
ンピュータ11は、内蔵メモリ13のアプリケーション
プログラム領域33に格納されたアプリケーションプロ
グラムの1つを実行する場合、まず、例えば実行対象の
アプリケーションプログラムが格納されたアプリケーシ
ョンプログラム領域33の先頭アドレスを基準アドレス
とし、この基準アドレスとアプリケーションプログラム
領域33に配置されているアプリケーションプログラム
の先頭アドレスとの差分値をベースレジスタ21に格納
する。この処理は、システムプログラム領域31に格納
されたシステムプログラムによって、即ちシステムプロ
グラムに基づきCPU12によって行われる。このと
き、内蔵メモリ13には、CPU出力アドレスA1 が入
力される。
【0064】次に、システムプログラムが内蔵メモリ1
3のアプリケーションプログラムが格納されたアプリケ
ーションプログラム領域33の前記基準アドレスヘの分
岐命令を実行すると、このとき以後、内蔵メモリ13に
は加算アドレスA3 が実効アドレスA4 として入力され
る。
【0065】その後、アプリケーションプログラムが終
了し、システムプログラムヘの分岐命令を実行すると、
このとき以後、内蔵メモリ13には再びCPU出力アド
レスA1 がアドレスとして入力される。
【0066】また、内蔵メモリ13に格納された別のア
プリケーションプログラムを実行する場合には、ベース
レジスタ21にそのアプリケーションプログラムについ
ての差分値A2 を格納する。そして、処理を基準アドレ
スに分岐させると、そのアプリケーションプログラムが
実行される。
【0067】このことは、上記差分値A2 をベースレジ
スタ21に格納することにより、異なるアプリケーショ
ンプログラムをこのプログラムが格納されたアプリケー
ションプログラム領域33における実際の配置アドレス
に依存せずに実行できることを示している。
【0068】図6には、CPU出力アドレスA1 および
ベースアドレス加算制御回路14の構成をさらに詳細に
示している。
【0069】同図に示すように、CPU出力アドレスA
1 は、a23〜a0 の24Bitから構成されている。こ
のうちa23〜a16の8Bitは、セグメント部として割
り当てられており、 CPU12がアクセス可能な連続し
たアドレス空間を64KByte単位で分割できるよう
に構成されている。この8Bitは、実効アドレスA 4
の一部となり、制御回路24にも入力される。アドレス
上位a15〜a8 の8Bitは、セレクタ25と加算器2
2に入力される。この8Bitに、ベースレジスタ21
に設定された差分値A2 を加算した値は、実効アドレス
4 の一部となる。アドレス下位a7 〜a0 の8Bit
は、そのまま実効アドレスA4 の一部となる。
【0070】本実施の形態では、ベースレジスタ21を
8Bit構成としており、CPU12のセグメント64
KByte内において、アプリケーションプログラムを
再配置可能な最小256バイト毎に、アドレスを分割で
きるようになっている。
【0071】例えば、セグメント部が01H、アドレス
上位が00H、ベースレジスタが00H、アドレス下位
が00Hのとき、実効アドレスA4 は、010000H
となる。また、ベースレジスタが01Hのとき、実効ア
ドレスA4 は、010100Hとなる。
【0072】制御レジスタ23は、1Bitで構成され
ており、制御回路24を動作させてセレクタ25を制御
する。
【0073】本実施の形態では、制御レジスタ23に0
をセットしたとき、制御回路24はCPU出力アドレス
1 に関係なく0を出力し、セレクタ25は常に0側を
選択する。したがって、このときのアドレス上位a15
8 は、そのまま実効アドレスA4 の一部となる。
【0074】また、制御レジスタ23に1をセットした
とき、制御回路24は、CPU出力アドレスA1 の8B
itのセグメント部a23〜a16を判別し、セグメント部
23〜a16がシステムプログラム領域、内蔵メモリ13
内におけるCPU12のレジスタ領域、または作業用の
業RAM領域を示していれば、0を出力する。一方、ア
プリケーションプログラム領域であれば1を出力する。
【0075】セレクタ25は、制御回路24の出力に応
じ、その出力が0であればアドレス上位a15〜a8 (0
側)を選択し、その出力が1であれば加算アドレスA3
(1側)を選択して、それぞれ実効アドレスA4 の一部
とする。
【0076】次に、図6の構成においてアプリケーショ
ンプログラムを実行する手順を示す。なお、ここでのセ
グメントの値は01Hとし、ベースレジスタ21は8B
it構成とする。
【0077】まず、制御レジスタ23には、図4に示し
た内蔵メモリ13の各領域に対してアドレス(差分値A
2 )の加算/非加算が機能するように、システムプログ
ラムにより予め1がセットされる。
【0078】図5に示す例えばアプリケーションプログ
ラムAP1 を実行する場合、CPU12はシステムプロ
グラムにおいて、ベースレジスタ21に01Hをセット
する。
【0079】次に、システムプログラムにおいて、内蔵
メモリ13におけるアプリケーションプログラム領域3
3の基準アドレス010000H番地への分岐命令(た
とえば、ジャンプ命令やサブルーチンコール命令)を実
行する。
【0080】上記の分岐命令を実行中、CPU出力アド
レスA1 がセグメント01Hを示した時から、アプリケ
ーションプログラム領域33には、実効アドレスA4
して、ベースレジスタ21の内容(01H)とCPU出
力アドレスA1 とを加算して得られた加算アドレスA3
が与えられる。従って、アプリケーションプログラムA
1 が格納されている010100H番地に処理が分岐
することになる。
【0081】また、別のアドレスに格納されたアプリケ
ーションプログラムを実行するには、システムプログラ
ムにおいて、上記と同様に、ベースレジスタ21にその
アプリケーションプログラムに応じた差分値A2 を格納
した後、基準アドレス010000H番地への分岐命令
を実行すればよい。
【0082】そして、複数のアプリケーションプログラ
ムを作成して、各アプリケーションプログラムをコード
化するとき、各アプリケーションプログラムは、その配
置アドレスを考慮することなく、全て基準アドレスから
配置されるようにコード化しておけばよい。
【0083】次に、内蔵メモリ13へのアプリケーショ
ンプログラムの格納処理とアプリケーションプログラム
の実行処理の手順をそれぞれ図7と図8のフローチャー
トにより説明する。なお、両図において、左側はPC2
側の処理であり、右側は1チップマイクロコンピュータ
11側のシステムプログラムの処理である。また、ここ
では、図2に示したリーダ・ライタ3がPC2に内蔵さ
れているものとする。
【0084】1チップマイクロコンピュータ11にプロ
グラムを格納する場合には、図7に示すように、PC2
がアプリケーションプログラムAPn のサイズを送信し
(S1)、1チップマイクロコンピュータ11がそれを
受信し、保存する(S11)。
【0085】次に、1チップマイクロコンピュータ11
のシステムプログラムが、そのメモリ管理機能を用い
て、アプリケーションプログラムAPn のアプリケーシ
ョンプログラム領域33における格納アドレスを決定す
る。この場合、格納アドレスは、例えばアプリケーショ
ンプログラムのサイズに基づいて決定される。
【0086】次に、PC2が1チップマイクロコンピュ
ータ11にアプリケーションプログラムAPn を送信し
(S2)、1チップマイクロコンピュータ11がこれを
受信し、内蔵メモリ13内のアプリケーションプログラ
ム領域33におけるS12において決定したアドレス
に、アプリケーションプログラムAPn を書き込む。
【0087】上記のようにして1チップマイクロコンピ
ュータ11の内蔵メモリ13に格納されたアプリケーシ
ョンプログラムAPn を実行する場合には、図8に示す
ように、PC2がアプリケーションプログラムAPn
実行指令を1チップマイクロコンピュータ11へ送信す
る(S21)。
【0088】上記の実行指令を受信すると、1チップマ
イクロコンピュータ11のCPU12はシステムプログ
ラムに基づいて、制御レジスタ23に1をセットする
(S31)。これにより、ベースレジスタ21のアドレ
ス加算、即ち加算アドレスA3が有効となる。
【0089】次に、CPU12は、実行するアプリケー
ションプログラムAPn が格納されているアドレスに応
じた差分値A2 をベースレジスタ21にセットする(S
32)。
【0090】次に、CPU12がシステムプログラムに
基づいて基準アドレスへの分岐命令を実行する(S3
3)。これにより、実行するアプリケーションプログラ
ムヘの分岐が完了し、そのアプリケーションプログラム
が実行される。
【0091】本発明の1チップマイクロコンピュータ
は、メモリ空間内におけるアプリケーションプログラム
の動的な配置を一括して管理するメモリ管理機能を備
え、複数のアプリケーションプログラムを内蔵メモリの
プログラム格納領域における任意のアドレスに格納する
システムプログラム(メモリ管理手段)を備えている構
成としてもよい。
【0092】上記の構成によれば、メモリ管理手段は、
アプリケーションプログラムを作成する端末側、例えば
パーソナルコンピュータから転送されて来た複数のアプ
リケーションプログラムを内蔵メモリの任意の領域に任
意のサイズで格納する。
【0093】このようして複数のアプリケーションプロ
グラムが内部メモリに書き込まれた場合であっても、本
1チップマイクロコンピュータでは、各アプリケーショ
ンプログラムを容易に実行することができる。
【0094】また、アプリケーションプログラム作成時
には、そのプログラムが配置される内蔵メモリ上のアド
レスを考慮する必要がなく、各アプリケーションプログ
ラムを独立かつ自由に開発することができる。
【0095】また、本発明の1チップマイクロコンピュ
ータは、基準アドレスとベースレジスタの内容(差分
値)を加算したアドレスへの分岐命令を実行する実行制
御機能を備え、内蔵メモリのプログラム格納領域に複数
のプログラムが格納されているときに、任意のプログラ
ムを実行可能なシステムプログラムを搭載していること
を特徴としている。
【0096】上記の構成によれば、システムプログラム
において、アプリケーションプログラムを実行する前
に、ベースレジスタに、そのアプリケーションプログラ
ムの先頭アドレスと基準アドレスとの差分値を格納し、
分岐命令を実行する。
【0097】これにより、内蔵メモリに格納された複数
のアプリケーションプログラムのうちの一つを選択して
実行することが可能となる。
【0098】また、本1チップマイクロコンピュータに
おいては、内蔵メモリがフラツシユメモリやEEPRO
Mなどの書き換え可能な不揮発性領域を含んでいる構成
としてもよい。
【0099】上記構成によれば、システムプログラムに
対し、必要な内容を書き換えたり追加したりすることが
可能となる。
【0100】
【発明の効果】本発明の1チップマイクロコンピュータ
は、アプリケーションプログラム領域を有する内蔵メモ
リを備え、所定の基準アドレスと前記アプリケーション
プログラム領域に格納された複数のアプリケーションプ
ログラムの先頭アドレスとの差分値を、実行する各アプ
リケーションプログラム毎に設定し、前記基準アドレス
と各差分値とに基づいて各アプリケーションプログラム
を実行する構成である。
【0101】これにより、アプリケーションプログラム
領域に格納された複数のアプリケーションプログラムの
何れかを実行する場合には、そのアプリケーションプロ
グラムの先頭アドレスと所定の基準アドレスとの差分値
が設定され、この差分値と前記基準アドレスとに基づい
て、アプリケーションプログラムが実行される。
【0102】したがって、アプリケーションプログラム
領域の異なるアドレスに格納された任意のアプリケーシ
ョンプログラムを容易に実行することができる。
【0103】即ち、1チップマイクロコンピュータ内で
アプリケーションプログラムを実行する際に、それを実
行するCPUは、各アプリケーションプログラムが配置
されている、各アプリケーションプログラム毎に異なる
アドレスを考慮することなく実行することができる。
【0104】また、アプリケーションプログラム開発時
には、そのプログラムが1チップマイクロコンピュータ
上で配置されるアドレスを考慮することなく独立して開
発することができる。
【0105】また、アプリケーションプログラムを1チ
ップマイクロコンピュータ上に配置する際には、複雑な
マッピング作業が不要である。
【0106】また、本発明の1チップマイクロコンピュ
ータは、アプリケーションプログラム領域を有する内部
メモリと、ベースレジスタと、所定の基準アドレスと前
記アプリケーションプログラム領域に格納された複数の
アプリケーションプログラムの先頭アドレスとの差分値
を、実行する各アプリケーションプログラム毎にベース
レジスタに設定する差分値設定手段と、前記基準アドレ
スおよびこれとは異なる非加算アドレスを供給するアド
レス供給手段と、ベースレジスタが保持する前記差分値
とアドレス供給手段から供給される基準アドレスとを加
算する加算手段と、前記加算手段により生成された加算
アドレスとアドレス供給手段から供給された非加算アド
レスとの何れか一方を内蔵メモリのアドレスの少なくと
も一部として選択するアドレス選択手段とを備えている
構成である。
【0107】上記の構成によれば、アドレス選択手段
は、アプリケーションプログラムを実行する場合、基準
アドレスと差分値とを加算して得られる加算アドレスを
内蔵メモリのアドレスの少なくとも一部として選択し、
アプリケーションプログラム以外の例えばシステムプロ
グラムを実行する場合、加算アドレスとは異なる非加算
アドレスを内蔵メモリのアドレスの少なくとも一部とし
て選択する。
【0108】したがって、アプリケーションプログラム
領域の異なるアドレスに格納された任意のアプリケーシ
ョンプログラムを容易に実行することができる。
【0109】即ち、1チップマイクロコンピュータ内で
アプリケーションプログラムを実行する際に、それを実
行するCPUは、各アプリケーションプログラムが配置
されている、各アプリケーションプログラム毎に異なる
アドレスを考慮することなく実行することができる。
【0110】また、アプリケーションプログラム開発時
には、そのプログラムが1チップマイクロコンピュータ
上で配置されるアドレスを考慮することなく独立して開
発することができる。
【0111】また、アプリケーションプログラムを1チ
ップマイクロコンピュータ上に配置する際には、複雑な
マッピング作業が不要である。
【0112】上記の1チップマイクロコンピュータにお
いて、前記アプリケーションプログラム領域は、複数の
セグメントの領域からなり、一つのセグメント内に複数
のアプリケーションプログラムが格納される構成として
もよい。
【0113】上記の構成によれば、内蔵メモリに格納可
能なアプリケーションプログラムの数が例えばセグメン
ト数に限定されることなく、セグメント数を超えて多数
個格納可能である。また、例えば1セグメントの領域に
この領域の容量に比べて大きさの小さいアプリケーショ
ンプログラムが一つのみ格納されて、残りのメモリ領域
が無駄になる事態を確実に防止することができる。
【0114】また、上記の1チップマイクロコンピュー
タは、メモリ空間内におけるアプリケーションプログラ
ムの配置を管理し、複数のアプリケーションプログラム
を内蔵メモリのプログラム格納領域における任意のアド
レスに格納するメモリ管理手段を備えている構成として
もよい。
【0115】上記の構成によれば、メモリ管理手段は、
アプリケーションプログラムを作成する端末側、例えば
パーソナルコンピュータから転送されて来た複数のアプ
リケーションプログラムを内蔵メモリの任意の領域に任
意のサイズで格納する。
【0116】このようして複数のアプリケーションプロ
グラムが内部メモリに書き込まれた場合であっても、本
1チップマイクロコンピュータでは、各アプリケーショ
ンプログラムを容易に実行することができる。
【0117】また、アプリケーションプログラム作成時
には、そのプログラムが配置される内蔵メモリ上のアド
レスを考慮する必要がなく、各アプリケーションプログ
ラムを独立かつ自由に開発することができる。
【0118】また、上記の1チップマイクロコンピュー
タは、前記選択手段がその選択動作を制御するための制
御レジスタを有し、この制御レジスタおよび前記ベース
レジスタがメモリマップドI/O方式である構成として
もよい。
【0119】上記の構成によれば、ベースレジスタや制
御レジスタに対して値を書き込んだり読み出したりする
場合、これらが配置されているアドレスに対してメモリ
アクセス命令を発行するのみでよい。したがって、これ
らレジスタの制御が容易である。
【0120】また、本発明のICカードは、上記の何れ
かの1チップマイクロコンピュータを内蔵している構成
である。
【0121】上記の構成によれば、複数のアプリケーシ
ョンプログラムを1チップマイクロコンピュータの内蔵
メモリ上に柔軟に構成可能なICカードを実現すること
ができる。
【図面の簡単な説明】
【図1】本発明の実施の一形態の1チップマイクロコン
ピュータを示すものであって、図3におけるベースアド
レス加算制御回路の構成を詳細に示したブロック図であ
る。
【図2】本発明の実施の一形態における1チップマイク
ロコンピュータを内蔵するICカードを備えたICカー
ドシステムを示すブロック図である。
【図3】図2に示したICカードの構成を示す概略のブ
ロック図である。
【図4】図1に示した内蔵メモリのシステムプログラム
領域、レジスタ領域、アプリケーションプログラム領域
および作業領域を示すメモリマップである。
【図5】図4に示したアプリケーションプログラム領域
の構成を示すメモリマップである。
【図6】図1に示した1チップマイクロコンピュータに
おける、CPU出力アドレスおよびベースアドレス加算
制御回路の構成を詳細に示すブロック図である。
【図7】図1に示した内蔵メモリへのアプリケーション
プログラムの格納処理を示すフローチャートである。
【図8】図1に示した内蔵メモリに格納されているアプ
リケーションプログラムの実行処理を示すフローチャー
トである。
【図9】従来のメモリ制御装置の構成を示すブロック図
である。
【符号の説明】
1 ICカード 2 パーソナルコンピュータ 3 リーダ・ライタ 11 1チップマイクロコンピュータ 12 CPU(差分値設定手段、アドレス供給手段、
メモリ管理手段) 13 内蔵メモリ 14 ベースアドレス加算制御回路 15 UART 16 周辺回路 21 ベースレジスタ 22 加算器(加算手段) 23 制御レジスタ(アドレス選択手段) 24 制御回路(アドレス選択手段) 25 セレクタ(アドレス選択手段) 31 システムプログラム領域 32 レジスタ領域 33 アプリケーションプログラム領域(プログラム
格納領域) 34 作業領域 A1 CPU出力アドレス(基準アドレス) A2 差分値 A3 加算アドレス A4 実効アドレス
───────────────────────────────────────────────────── フロントページの続き (72)発明者 小川 竜一 大阪府大阪市阿倍野区長池町22番22号 シ ャープ株式会社内 (72)発明者 八重川 和宏 大阪府大阪市阿倍野区長池町22番22号 シ ャープ株式会社内 (72)発明者 栗岡 進 大阪府大阪市阿倍野区長池町22番22号 シ ャープ株式会社内 (72)発明者 大野 謙次 大阪府大阪市阿倍野区長池町22番22号 シ ャープ株式会社内 (72)発明者 竹田 忠雄 東京都千代田区大手町二丁目3番1号 日 本電信電話株式会社内 (72)発明者 富沢 雅彰 東京都千代田区大手町二丁目3番1号 日 本電信電話株式会社内 (72)発明者 丹野 雅明 東京都千代田区大手町二丁目3番1号 日 本電信電話株式会社内 Fターム(参考) 5B033 AA20 CA02 DA01 DA04 DD05 5B035 AA00 BB09 CA29 5B060 AA13 AB26 AC05 BA16 5B062 CC01 DD05 DD10

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】プログラム格納領域を有する内蔵メモリを
    備え、所定の基準アドレスと前記プログラム格納領域に
    格納された複数のアプリケーションプログラムの先頭ア
    ドレスとの差分値を、実行する各アプリケーションプロ
    グラム毎に設定し、前記基準アドレスと各差分値とに基
    づいて各アプリケーションプログラムを実行することを
    特徴とする1チップマイクロコンピュータ。
  2. 【請求項2】プログラム格納領域を有する内部メモリ
    と、 ベースレジスタと、 所定の基準アドレスと前記プログラム格納領域に格納さ
    れた複数のアプリケーションプログラムの先頭アドレス
    との差分値を、実行する各アプリケーションプログラム
    毎にベースレジスタに設定する差分値設定手段と、 前記基準アドレスおよびこれとは異なる非加算アドレス
    を供給するアドレス供給手段と、 ベースレジスタが保持する前記差分値とアドレス供給手
    段から供給される基準アドレスとを加算する加算手段
    と、 前記加算手段により生成された加算アドレスとアドレス
    供給手段から供給された非加算アドレスとの何れか一方
    を内蔵メモリのアドレスの少なくとも一部として選択す
    るアドレス選択手段とを備えていることを特徴とする1
    チップマイクロコンピュータ。
  3. 【請求項3】前記プログラム格納領域は、複数のセグメ
    ントの領域からなり、一つのセグメント内に複数のアプ
    リケーションプログラムが格納されることを特徴とする
    請求項1または2に記載の1チップマイクロコンピュー
    タ。
  4. 【請求項4】メモリ空間内におけるアプリケーションプ
    ログラムの配置を管理し、複数のアプリケーションプロ
    グラムを内蔵メモリのプログラム格納領域における任意
    のアドレスに格納するメモリ管理手段を備えていること
    を特徴する請求項1から3の何れかに記載の1チップマ
    イクロコンピュータ。
  5. 【請求項5】前記選択手段がその選択動作を制御するた
    めの制御レジスタを有し、この制御レジスタおよび前記
    ベースレジスタがメモリマップドI/O方式であること
    を特徴とする請求項1から4の何れかに記載の1チップ
    マイクロコンピュータ。
  6. 【請求項6】請求項1から5の何れかに記載の1チップ
    マイクロコンピュータを内蔵していることを特徴とする
    ICカード。
JP2000015060A 2000-01-24 2000-01-24 1チップマイクロコンピュータおよびそれを内蔵したicカード Pending JP2001209763A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000015060A JP2001209763A (ja) 2000-01-24 2000-01-24 1チップマイクロコンピュータおよびそれを内蔵したicカード

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000015060A JP2001209763A (ja) 2000-01-24 2000-01-24 1チップマイクロコンピュータおよびそれを内蔵したicカード

Related Child Applications (1)

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

Publications (1)

Publication Number Publication Date
JP2001209763A true JP2001209763A (ja) 2001-08-03

Family

ID=18542416

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000015060A Pending JP2001209763A (ja) 2000-01-24 2000-01-24 1チップマイクロコンピュータおよびそれを内蔵したicカード

Country Status (1)

Country Link
JP (1) JP2001209763A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104063343A (zh) * 2014-06-20 2014-09-24 珠海市杰理科技有限公司 数据总线扩展的单片机

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104063343A (zh) * 2014-06-20 2014-09-24 珠海市杰理科技有限公司 数据总线扩展的单片机
CN104063343B (zh) * 2014-06-20 2017-03-29 珠海市杰理科技股份有限公司 数据总线扩展的单片机

Similar Documents

Publication Publication Date Title
US7640418B2 (en) Dynamic field patchable microarchitecture
CN1343431B (zh) 用于独立下载特征程序到无线通信装置中一组存储单元的系统和方法
EP1132819A2 (en) Memory controller
CN100367306C (zh) 非易失性存储卡
US20010027511A1 (en) 1-chop microcomputer and IC card using same
US6868505B2 (en) Memory exchange
EP0483978B1 (en) I.C. card
US5127096A (en) Information processor operative both in direct mapping and in bank mapping, and the method of switching the mapping schemes
CN101465754A (zh) 加载复位配置字的方法、设备及通信单板
US6000005A (en) Method of writing a flash memory including dynamically switching and allocating memory spaces to the flash memory blocks
US6934537B2 (en) Radio communication device, method of and program for rewriting boot program therefor
US6023750A (en) Microcontroller having dedicated hardware for memory address space expansion via auxilliary address signal generation
JP2001209763A (ja) 1チップマイクロコンピュータおよびそれを内蔵したicカード
US6148362A (en) Microcomputer using nonvolatile semiconductor memory to store user code/data
JP2007141257A (ja) Icカードおよびリーダ・ライタ
JP4705600B2 (ja) Icカード
KR100470822B1 (ko) 마이크로 컨트롤러의 메모리 어드레싱 방법 및 페이지매핑장치
CN100520711C (zh) 存储器接口、存储器设置以及控制存储器存取的方法
EP1244007A2 (en) Dynamic microcode patching
JP2006509288A (ja) マイクロプロセッサおよび補助演算ユニットを有するデータ処理デバイスおよび関連方法
JPH1055278A (ja) メモリ混載マイコン
JPH1050086A (ja) Eepromを有するマイクロコンピュータ及びその書換方法
JP2003303132A (ja) 半導体メモリ制御装置
JP2001134429A (ja) 情報記憶装置
JP2002041494A (ja) シングルチップマイクロコンピュータ

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040608

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040622

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040823

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20041207

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20050107

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050207

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20050222

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20050325

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070109