JP2003006047A - 1チップマイクロコンピュータ及びそれを用いたicカード - Google Patents

1チップマイクロコンピュータ及びそれを用いたicカード

Info

Publication number
JP2003006047A
JP2003006047A JP2001190206A JP2001190206A JP2003006047A JP 2003006047 A JP2003006047 A JP 2003006047A JP 2001190206 A JP2001190206 A JP 2001190206A JP 2001190206 A JP2001190206 A JP 2001190206A JP 2003006047 A JP2003006047 A JP 2003006047A
Authority
JP
Japan
Prior art keywords
address
signal
access
circuit
storage means
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
JP2001190206A
Other languages
English (en)
Inventor
Kenji Ono
謙次 大野
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.)
Sharp Corp
Original Assignee
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 Sharp Corp filed Critical Sharp Corp
Priority to JP2001190206A priority Critical patent/JP2003006047A/ja
Publication of JP2003006047A publication Critical patent/JP2003006047A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Credit Cards Or The Like (AREA)
  • Storage Device Security (AREA)
  • Microcomputers (AREA)

Abstract

(57)【要約】 【課題】 アクセス違反が発生するアドレスを容易に検
出することができる1チップマイクロコンピュータを提
供する。 【解決手段】 プログラムを格納する不揮発性メモリ5
と、不揮発性メモリ5に格納されたプログラムを実行す
るCPU1と、不揮発性メモリ5へのアクセスを許可す
るアドレス範囲を設定するアクセス許可アドレス範囲設
定回路2と、不揮発性メモリ5に対するアクセスを制御
するアクセス制御回路3と、CPU1がアクセスするア
ドレスを監視するとともにアクセス許可アドレス範囲設
定回路2から出力されるアクセス違反信号が検出された
ときのアドレスの値を保持するアドレス格納回路4と、
を備える1チップマイクロコンピュータ。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、メモリに1つ以上
のアプリケーションプログラムを搭載した1チップマイ
クロコンピュータ及びそれを用いたICカードに関する
ものである。
【0002】
【従来の技術】大容量不揮発性メモリを搭載するICカ
ード用1チップマイクロコンピュータは、大容量不揮発
性メモリ上にICカードのメモリ管理やファイル管理、
外部装置との通信制御等を行うためのシステムプログラ
ムを予め格納している。さらに、ICカード用1チップ
マイクロコンピュータは、リーダ/ライタやパーソナル
コンピュータ等の外部装置から各種用途のアプリケーシ
ョンプログラムを大容量不揮発性メモリにダウンロード
する。そして、ICカード用1チップマイクロコンピュ
ータは、ICカードの用途に合わせてアプリケーション
プログラムを選択して実行する。
【0003】ICカード用1チップマイクロコンピュー
タのCPU(Central Processor Unit)は、ダウンロー
ドされたアプリケーションプログラムのプログラムコー
ドを取り込んで動作するので、CPUからアクセス可能
な範囲であればどのアプリケーションプログラムを実行
していても他のアプリケーションプログラムの格納領域
やICカード上の秘密性の高いデータの格納領域へ許可
なくアクセスできる。このようなアクセス違反によっ
て、プログラムデータや秘密性の高いデータの改ざん、
破壊、及び漏洩が可能となるという問題があった。
【0004】このような問題点を解決するために、従来
の1チップマイクロコンピュータでは、メモリアクセス
に制限を設けていた。このような解決手段としては、例
えば特開平8−55204号公報に開示されている1チ
ップマイクロコンピュータが挙げられる。
【0005】
【発明が解決しようとする課題】アクセス違反は、実行
するアプリケーションプログラムに不具合がある場合や
悪意あるアプリケーションプログラムをダウンロードし
それを実行した場合等に起こり、その発生原因を追及す
るにはアクセス違反の原因となるアドレスを検出する必
要がある。しかしながら、従来の1チップマイクロコン
ピュータではアプリケーションプログラムのどの部分で
アクセス違反が発生しているかを検出することは困難で
あった。
【0006】本発明は、上記の問題点に鑑み、アクセス
違反が発生するアドレスを容易に検出することができる
1チップマイクロコンピュータ及びそれを用いたICカ
ードを提供することを目的とする。
【0007】
【課題を解決するための手段】上記目的を達成するため
に、本発明に係る1チップマイクロコンピュータにおい
ては、プログラムを格納する記憶手段と、該記憶手段に
格納されたプログラムを実行する演算処理装置と、前記
記憶手段へのアクセスを許可するアドレス範囲を設定す
るアクセス許可アドレス範囲設定手段と、該アクセス許
可アドレス範囲設定手段によって設定されたアドレス範
囲以外にアクセスされたときにアクセス違反検出信号を
出力するアクセス違反検出手段と、前記演算処理装置が
アクセスするアドレスを監視するとともに前記アクセス
違反信号が検出されたときのアドレスの値を保持するア
ドレス格納手段と、を備えるようにする。
【0008】また、前記演算処理装置から出力される命
令フェッチ信号を入力し、前記命令フェッチ信号に基づ
き前記演算処理装置が前記記憶手段から命令を読み込む
動作を行っていないと判断したときは、前記アドレス格
納手段が監視中のアドレスを更新しないように制御する
制御手段を備えるようにしてもよい。
【0009】また、前記アドレス格納手段が、少なくと
もアドレス信号を伝達するアドレス信号線の本数分の数
をそれぞれ有するセレクタ回路とデータラッチ回路との
組からなり、前記アドレス格納手段の入力データが前記
セレクタ回路の一方の入力端子に入力され、前記セレク
タ回路の他方の入力端子に前記データラッチ回路の出力
端子が接続され、前記セレクタ回路の選択信号入力端子
に前記アクセス違反信号が入力され、前記データラッチ
回路のデータ入力端子に前記セレクタ回路の出力端子が
接続され、前記データラッチ回路の出力端子から前記ア
ドレス格納手段の出力データが出力されるようにしても
よい。
【0010】また、前記アドレス格納手段を複数有し、
前記複数のアドレス格納手段がシフトレジスタ状に接続
されるように2段目以降のアドレス格納手段の入力が前
段のアドレス格納手段の出力に接続されてもよい。
【0011】また、前記アドレス格納手段が前記演算処
理装置と共通のクロック信号を入力し、前記アドレス格
納手段が前記クロック信号に同期してラッチ動作を行っ
てもよい。
【0012】また、前記記憶手段が書き換え可能な不揮
発性半導体記憶装置であるとともに、外部信号に基づき
前記記憶手段の内容を書き換える手段を備えるようにし
てもよい。
【0013】また、上記目的を達成するために、本発明
に係るICカードにおいては、上記いずれかの構成の1
チップマイクロコンピュータを備えるようにする。
【0014】
【発明の実施の形態】本発明の一実施形態について図面
を参照して説明する。本実施形態においては、不揮発性
メモリを搭載したICカード用1チップマイクロコンピ
ュータに本発明を適用した場合について説明する。
【0015】本発明に係る1チップマイクロコンピュー
タの回路ブロック図を図1に示す。本発明に係る1チッ
プマイクロコンピュータは、システムプログラムやアプ
リケーションプログラムを実行するCPU1、アクセス
できるアドレス空間を設定するアクセス許可アドレス範
囲設定回路2、アクセス動作を制限するアクセス制御回
路3、アクセス違反が起こったときのアドレスを保持す
るアドレス格納回路4、システムプログラムやアプリケ
ーションプログラム及び秘密性の高いデータ等を格納す
る不揮発性メモリ5、CPU1の作業用のRAM(Rand
om Access Memory)6、外部装置との通信を行うための
UART(Universal Asynchronous Reciver Transmitt
er)等の外部通信インターフェイス回路7、及びタイマ
やベースレジスタ等の周辺回路8を備えている。これら
の回路ブロックは、CPU1が入出力するアドレス線、
データ線、データ読み出しや書き込みのための制御線等
で接続される。
【0016】図2は、図1中のCPU1、アクセス許可
アドレス範囲設定回路2、アクセス制御回路3、アドレ
ス格納回路4、及び不揮発性メモリ5について詳細に説
明するブロック図である。
【0017】CPU1は内部にプログラムカウンタ21
を有している。アクセス許可アドレス範囲設定回路2
は、所定のアドレス空間に格納されているシステムプロ
グラムが動作しているか否かを識別するモニタフラグ2
2、各アプリケーションプログラムに対するアクセス許
可領域のアドレス範囲を設定するレジスタを有するアク
セス許可領域検出回路24、アプリケーションプログラ
ムがアクセス可能なアドレス空間以外のアクセスを許可
するか否かを設定するアクセス許可設定レジスタ25、
及びアクセス許可領域検出回路24内のアクセス許可ア
ドレス領域設定レジスタ及びアクセス許可設定レジスタ
25に対する書き込み信号の伝達を制御するレジスタ書
き込み制御回路23を備えている。
【0018】そして、アドレス制限回路3は、不揮発性
メモリ5に対する読み出し信号の伝達を制御するメモリ
読み出し制御回路26及び不揮発性メモリ5に対する書
き込み信号の伝達を制限するメモリ書き込み制御回路2
7を備えている。
【0019】モニタフラグ22は、CPU1が不揮発性
メモリ5の所定のアドレス空間に格納されているシステ
ムプログラムを実行しているか否かの判別を行うための
フラグである。モニタフラグ22にはCPU1から出力
されるアドレスバス信号S4と命令の第1サイクルを表
す命令フェッチ信号S1とが入力される。モニタフラグ
22は、CPU1が所定のアドレス空間に格納されてい
るシステムプログラムを実行しているときはモニタフラ
グ出力信号S6を“1”にしてレジスタ書き込み制御回
路23に出力し、所定のアドレス空間以外に格納されて
いるアプリケーションプログラムを実行しているときは
モニタフラグ出力信号S6を“0”にしてレジスタ書き
込み制御回路23に出力する。
【0020】レジスタ書き込み制御回路23は、CPU
1から出力される書き込み基準信号S3と、上述したモ
ニタフラグ22から出力されるモニタフラグ出力信号S
6を入力する。尚、書き込み基準信号S3は、CPU1
が書き込みアクセス時に1チップマイクロコンピュータ
に内蔵されているレジスタ及びメモリに対して出力する
信号である。レジスタ書き込み制御回路23では、書き
込み基準信号S3をアクセス許可領域検出回24内のア
クセス許可アドレス領域設定レジスタとアクセス許可設
定レジスタ25とに伝達するか否かの制御を行う。
【0021】モニタフラグ出力信号S6が“1”の場
合、レジスタ書き込み制御回路23は所定のアドレス空
間に格納されているシステムプログラムの実行中に書き
込み動作が発生したと判断して、書き込み基準信号S3
をレジスタ書き込み信号S7としてアクセス許可領域検
出回路24内のアクセス許可アドレス領域設定レジスタ
とアクセス許可設定レジスタ25とに伝達する。これに
より、アクセス許可領域検出回路24内のアクセス許可
アドレス領域設定レジスタとアクセス許可設定レジスタ
25への書き込みが可能となる。
【0022】一方、モニタフラグ出力信号S6が“0”
の場合、レジスタ書き込み制御回路23は所定のアドレ
ス空間以外に格納されているアプリケーションプログラ
ムの実行中に書き込み動作が発生したと判断して、レジ
スタ書き込み信号S7をアクセス許可領域検出回路24
内のアクセス許可アドレス領域設定レジスタとアクセス
許可設定レジスタ25とに伝達しない。これにより、ア
クセス許可領域検出回路24内のアクセス許可アドレス
領域設定レジスタとアクセス許可設定レジスタ25への
書き込みは禁止される。
【0023】そして、アクセス許可領域検出回路24
は、CPU1より出力されるアドレスバス信号S4、デ
ータバス信号S5、CPU1より出力される読み出し基
準信号S2、及びレジスタ書き込み制御回路23から出
力されるレジスタ書き込み信号S7を入力する。
【0024】アクセス許可領域検出回路24は、不揮発
性メモリ5に対して読み出し書き込みの制約を解除する
アドレス領域を指定するアクセス許可アドレス領域設定
レジスタ(図示せず)と、該レジスタに設定した値と実
行中のアドレスとを比較するアドレス比較回路(図示せ
ず)を備えている。アクセス許可アドレス領域設定レジ
スタは、アクセス許可範囲を設定できるようにスタート
アドレスとエンドアドレスを格納するレジスタを設けて
アクセス許可範囲を指定可能としている。ただし、上述
したようにレジスタ書き込み信号S7によって書き込み
が許可されるので、CPU1が所定のアドレス空間に格
納されたシステムプログラムを実行しているときのみ書
き込みが可能となる。
【0025】CPU1は、システムプログラムからアプ
リケーションプログラムにプログラムの実行処理を移す
前に、すなわちシステムプログラムの実行中に、アクセ
ス許可領域検出回路24内のアクセス許可アドレス領域
設定レジスタにスタートアドレス及びエンドアドレスを
設定してアプリケーションプログラムがアクセス可能な
アドレス空間を予め定めておく。アクセス許可領域検出
回路24は、CPU1がこの領域内をアクセスしたとき
はアクセス許可アドレス領域出力信号S8を“1”にし
て、CPU1がこの領域以外をアクセスしたときはアク
セス許可アドレス領域出力信号S8を“0”にして、メ
モリ読み出し制御回路26及びメモリ書き込み制御回路
27に出力する。
【0026】アクセス許可設定レジスタ25は、読み出
し基準信号S2、アドレスバス信号S4、データバス信
号S5、及びレジスタ書き込み制御回路23の出力信号
であるレジスタ書き込み信号S7を入力する。アクセス
許可設定レジスタ25は、アクセス許可領域検出回路2
4内のアクセス許可アドレス領域設定レジスタによって
設定されたアクセス可能なアドレス空間以外に格納され
ているアプリケーションプログラムに対して、読み出
し、書き込みのアクセスを許可するか否かを設定するレ
ジスタである。尚、アクセス許可設定レジスタ25は、
レジスタ書き込み信号S7により書き込みが行われるた
め、CPU1が所定のアドレス空間に格納されたシステ
ムプログラムを実行しているときのみ書き込みが可能で
ある。
【0027】アクセス許可設定レジスタ25が“0”に
設定されているときはアクセス許可信号S9は“0”と
なり、アクセス許可設定レジスタ25が“1”に設定さ
れているときはアクセス許可信号S9は“1”となる。
後述するメモリ読みだし制御回路26及びメモリ書き込
み制御回路27の動作によって、アクセス許可信号S9
が“0”の場合、アプリケーションプログラムの実行中
にアクセス許可領域検出回路24内のアクセス許可アド
レス領域設定レジスタに設定したアクセス可能な空間以
外への読み出し書き込みは不可能となる。一方、アクセ
ス許可信号S9が“1”の場合、全てのメモリ領域への
読み出し書き込みが可能となる。
【0028】メモリ読み出し制御回路26は、CPU1
から出力される読み出し基準信号S2、アクセス許可ア
ドレス領域出力信号S8、及びアクセス許可信号S9を
入力する。メモリ読み出し制御回路26は、アクセス許
可アドレス領域出力信号S8とアクセス許可信号S9の
論理和であるアクセス違反信号S12を生成し、アクセ
ス違反信号S12が“1”のときは読み出し基準信号S
2を不揮発性メモリ5へ与え、アクセス違反信号S12
が“0”のときは読み出し基準信号S2を不揮発性メモ
リ5へ与えない。
【0029】メモリ書き込み制御回路27は、CPU1
から出力される書き込み基準信号S3、アクセス許可ア
ドレス領域出力信号S8、及びアクセス許可信号S9を
入力する。メモリ書き込み制御回路27は、アクセス許
可アドレス領域出力信号S8とアクセス許可信号S9の
論理和であるアクセス違反信号S12を生成し、アクセ
ス違反信号S12が“1”のときは書き込み基準信号S
3を不揮発性メモリ5へ与え、アクセス違反信号S12
が“0”のときは書き込み基準信号S3を不揮発性メモ
リ5へ与えない。
【0030】図2に示した回路ブロックが上述したよう
に動作することによって、不揮発性メモリ上に1以上の
アプリケーションプログラムをダウンロードして任意の
アプリケーションプログラムを実行する場合でも、実行
中のアプリケーションプログラムが他のアプリケーショ
ンプログラム領域やシステムプログラム領域や秘密性の
高いデータを格納する領域へのアクセスを不可能として
改ざんや破壊、及び漏洩を防ぐことができる。従って、
セキュリティー性が高くなり、かつ不正なアクセス違反
が発生したことを検出可能となる。ただし、アクセス許
可設定レジスタ25は“0”に設定する必要がある。
【0031】また、図2に示した回路ブロックが上述し
たように動作することによって、システムプログラムの
実行中であればアプリケーションプログラム毎のアクセ
ス可能なアドレス空間範囲を設定することができるの
で、ICカード上にダウンロードしたアプリケーション
プログラムで共有に使用できるライブラリプログラムを
アプリケーションプログラムとしてリーダ/ライタやパ
ーソナルコンピュータ等の外部装置からダウンロードす
れば、実行アプリケーションプログラムから一旦システ
ムプログラムを介すことで他のアプリケーションプログ
ラムを実行することが可能となり、この場合でもセキュ
リティー性を高く保つことが可能となる。
【0032】さらに、アドレス格納回路4は、メモリ読
み出し制御回路26及びメモリ書き込み制御回路27か
らアドレス違反信号S12を入力する。これにより、ア
ドレス格納回路4はアクセス違反を起こしたときのアド
レスを保持することができる。尚、不揮発性メモリ5へ
の読み出しと書き込みとは同時に行われないので、メモ
リ読み出し制御回路26及びメモリ書き込み制御回路2
7からのアドレス違反信号S12を入力するOR回路を
設け、アドレス違反信号S12を一つにまとめるとよ
い。
【0033】次に、アドレス格納回路4について図3を
参照して詳細に説明する。図3は、アドレス格納回路4
の構成を示した回路ブロック図である。尚、上述したO
R回路は省略する。また、以下の説明では適宜図1又は
図2の部分に付した符号を用いることにする。
【0034】アドレス格納回路4は、選択信号生成回路
31、セレクタ部32、アドレス格納レジスタ33、セ
レクタ部34、及びアドレス格納レジスタ35を備えて
いる。
【0035】まず、選択信号生成回路31の構成につい
て説明する。選択信号生成回路31はフリップフロップ
FF1とアンド回路AN1を有している。フリップフロ
ップFF1の反転出力端子はアンド回路AN1の第2入
力端子に接続される。アンド回路AN1の第1入力端子
には命令フェッチ信号S1が入力される。フリップフロ
ップFF1のクロック入力端子にはアドレス違反信号S
12が入力され、フリップフロップFF1のデータ入力
端子には定電圧VCCが供給され、フリップフロップFF
1のリセット端子にはリセット信号S13が入力され
る。そして、アンド回路AN1は出力端子から選択信号
S14を出力する。
【0036】すなわち、選択信号生成回路31は、CP
U1から送出される命令フェッチ信号S1、メモリ読み
出し回路26とメモリ書き込み回路27から送出される
アクセス違反信号S12、及び状態設定のためのリセッ
ト信号S13を入力し、セレクタ部32及びセレクタ部
34を制御するための選択信号S14を出力する。尚、
以下の説明では状態設定のためのリセット動作が行わ
れ、リセット信号S13が非アクティブ状態にある場合
について説明する。
【0037】このような構成の選択信号生成回路31
は、次のように動作する。CPU1が不揮発性メモリ5
や作業用RAM6等から命令コードを取り込む場合命令
フェッチ信号S1は“1”となり、命令コードを取り込
まない場合“0”となる。また、上述したようにアクセ
ス違反信号S12は、アプリケーションプログラムがア
クセス可能領域以外をアクセスした場合“1”となり、
アクセス可能領域をアクセスした場合“0”となる。
【0038】そして、命令フェッチ信号S1が“1”で
且つアクセス違反信号S12が“0”の場合選択信号S
14は“1”となる。すなわち、CPU1がシステムプ
ログラム実行中に命令フェッチ動作を行っている場合又
はCPU1がアプリケーションプログラム実行中にアク
セス可能領域内で命令フェッチ動作を行っている場合、
選択信号S14は“1”となる。逆に、CPU1がシス
テムプログラム又はアプリケーションプログラム実行中
に命令コードを取り込んでいない場合又はCPU1がア
プリケーションプログラム実行中に命令コードを取り込
んでいるがアクセス違反を起こした場合、選択信号S1
4は“0”となる。
【0039】選択信号生成回路31では、アクセス違反
信号S12が一度“1”になれば、フリップフロップF
F1の出力は“1”から“0”となり、その後選択信号
生成回路31がリセットされない限りその状態を保持す
る。従って、アクセス違反信号S12が一度“1”にな
れば選択信号S14は“0”に保持される。
【0040】次に、選択信号生成回路31が選択信号S
14をセレクタ部32及び34に出力することにより、
アクセス違反が発生したときのアドレスがアドレス格納
レジスタに取り込まれ、保持されることを説明する。
【0041】アプリケーションプログラムのアドレスに
CPU1から出力される絶対アドレスを用いる場合、C
PU1から出力されるアドレス信号をセレクタ部32に
入力されるアドレス信号A0〜アドレス信号Anとする。
一方、アプリケーションプログラムを任意のアドレスに
配置している場合には、配置アドレスを相対的に指定し
たCPU1から出力されるアドレスを周辺回路8内のベ
ースレジスタにより絶対アドレスに変換し、その変換し
た信号をセレクタ部32に入力されるアドレス信号A0
〜アドレス信号Anとする。
【0042】アドレス信号A0〜アドレス信号Anで構成
されるアドレス線のビット幅は、CPU1がアクセスで
きるメモリ空間分に対応する幅を持つ。例えばアドレス
線のビット幅が16本であれば、セレクタ部32にはア
ドレス信号A0〜アドレス信号A15が入力される。
【0043】従って、セレクタ部32はn+1個のセレ
クタ回路で構成されており、各セレクタ回路は入力端子
A、入力端子B、及び出力端子Cを有している。各セレ
クタ回路の入力端子AにはCPU1又は周辺回路8のベ
ースレジスタから出力されるアドレス信号が入力され、
入力端子Bにはアドレス格納レジスタ33の出力信号が
入力される。各セレクタ回路は、アドレス信号とアドレ
ス格納レジスタ33の出力信号とのいずれかを選択信号
S14に基づいて選択して出力端子Cから出力信号とし
て出力する。セレクタ部32を構成する各セレクタ回路
は選択信号S14が“1”の場合は入力端子Aに入力さ
れるアドレス信号を選択して出力し、選択信号S14が
“0”の場合は入力端子Bに入力されるアドレス格納レ
ジスタ33の出力信号を選択して出力する。
【0044】アドレス格納レジスタ33はセレクタ部3
2の出力信号を1チップマイクロコンピュータ内部のク
ロック信号CLKに同期して各フリップフロップにアド
レスデータとして取り込む。これにより、CPU1が正
常に命令コードを取り込んだ最新のアドレスをアドレス
格納レジスタ33に取り込むことができる。しかし、一
旦アクセス違反が発生すれば選択信号S14は“0”に
保持され、各セレクタ回路はアドレス格納レジスタ33
の出力信号を選択するのでアドレス格納レジスタ33の
値は更新されなくなる。
【0045】同様にセレクタ部34は、アドレス格納レ
ジスタ33からの出力信号とアドレス格納レジスタ35
からの出力信号のどちらかを選択信号S14に基づいて
選択して出力する。アドレス格納レジスタ35はセレク
タ部34の出力信号を1チップマイクロコンピュータ内
部のクロック信号CLKに同期して各フリップフロップ
に取り込む。そして、アドレス格納レジスタ33と同様
アクセス違反が発生すればアドレス格納レジスタ35の
値は更新されなくなる。
【0046】この状態において、CPU1はアプリケー
ションプログラムの実行を停止する。これにより、アド
レス違反発生時の命令フェッチのアドレスがアドレス格
納レジスタ33に保持され、その直前の正常な命令フェ
ッチのアドレスがアドレス格納レジスタ35に保持され
る。
【0047】アドレス格納レジスタ33及び35を1チ
ップマイクロコンピュータの特定アドレスに割り付け、
CPU1がその特定アドレスを指定してアドレス格納レ
ジスタ33及び35の内容を読み出すようにするとよ
い。このような構成にすると、CPU1が各アドレス格
納レジスタの出力信号をデータバスを通して取り込むこ
とができ、1チップマイクロコンピュータ内で任意に配
置されたアプリケーションプログラムに含まれるアクセ
ス違反を起こした絶対アドレスを認識することができ
る。
【0048】また、CPU1は、後述するシステムプロ
グラムの割り込み処理を実行することで、アドレス格納
レジスタ33及び35の絶対アドレスとアクセス違反を
起こしたアプリケーションプログラムのダウンロード開
始アドレスとに基づいて、アクセス違反を起こした命令
コードの不揮発性メモリ5にダウンロードされる前のア
プリケーションプログラムにおける絶対アドレスを検出
することができる。
【0049】このように、CPU1がアクセス違反の起
こったアドレスを検出するので、ICカードのように出
力端子数が少ない場合においてもアクセス違反の起こっ
たアドレスを検出することができる。また、本発明に係
る1チップマイクロコンピュータを出力端子数に制限が
無い装置に搭載した場合には、アドレス格納レジスタ3
3及び35の各出力をLED等に接続することでCPU
1を経由せずともユーザがアクセス違反の起こったアド
レスを認識することができる。
【0050】尚、本実施形態では、セレクタ部及びアド
レス格納レジスタを2段構成にしシフトレジスタ状に接
続したが、その段数を増加させる程アクセス違反の発生
原因がつかみやすくなるので更に段数を増加させること
が望ましい。アプリケーションプログラムに不具合があ
ってCPUが暴走したときや悪意あるアプリケーション
プログラムによってジャンプやサブルーチンが行われア
クセス可能領域外にプログラム実行処理が移行してしま
い、アクセス違反領域で命令コードの取り込みが行われ
るような場合、どこから処理が移行してきたかを調べる
にはセレクタ部及びアドレス格納レジスタを少なくとも
2段構成にする必要がある。ただし、セレクタ部及びア
ドレス格納レジスタを1段構成にした場合も本発明に含
まれ、この場合は実行権を与えられたアプリケーション
プログラム内の命令実行中にアクセス違反が発生したと
きのアドレスのみを確認することができる。
【0051】次に、CPU1が、アドレス格納レジスタ
33及び35の絶対アドレスとアクセス違反を起こした
アプリケーションプログラムのダウンロード開始アドレ
スとに基づいて、アクセス違反を起こした命令コードの
不揮発性メモリ5にダウンロードされる前のアプリケー
ションプログラムにおける絶対アドレスを検出する動作
について説明する。
【0052】システムプログラム及びアプリケーション
プログラムを不揮発性メモリ5上にそれぞれ割り付けた
一例であるメモリ割付マップを図4に示す。図4に示す
メモリ割付マップは、システムプログラムがアドレス0
x000000番地(以下、数字の先頭の0xは16進
数を意味するものとする)から4Kバイト予め書き込ま
れていて、CPU1がシステムプログラムを実行してア
プリケーションプログラムを不揮発性メモリ5のアドレ
ス0x001000番地からダウンロードした後のメモ
リ割付を示している。
【0053】CPU1がシステムプログラムを実行して
不揮発性メモリ5にアプリケーションプログラムをダウ
ンロードする際、まずCPU1は不揮発性メモリ5の空
き領域及びその空き領域の先頭アドレスを予め取得して
おく。次にリーダ/ライタやパーソナルコンピュータ等
の外部装置からアプリケーションプログラムのダウンロ
ード要求を検出すると、CPU1は不揮発性メモリ5の
空き領域に基づいてアプリケーションプログラムが不揮
発性メモリ5にダウンロード可能であるか否かを判断
し、ダウンロード可能な場合はダウンロード開始アドレ
スを不揮発性メモリ5の特定領域に保存しておく。
【0054】アクセス違反を起こした命令コードの不揮
発性メモリ5にダウンロードされる前のアプリケーショ
ンプログラムにおける絶対アドレスを算出する際のCP
U1の動作を図5のフローチャートを参照して説明す
る。この処理の実行タイミングは特に規定しないが、本
実施形態ではメモリ読み出し制御回路26及びメモリ書
き込み制御回路27からアクセス違反信号S12がCP
U1に伝達され、アクセス違反信号S12が“1”のと
きにCPU1が実行中のアプリケーションプログラムの
実行処理を中断し、システムプログラム内の割り込み処
理で図5のフローチャートに示す処理を行っているもの
とする。
【0055】ステップ#10では、CPU1がシステム
プログラムを実行しリーダ/ライタやパーソナルコンピ
ュータ等の外部装置からのダウンロード要求によりアプ
リケーションプログラムを不揮発性メモリ5にダウンロ
ードした際に不揮発性メモリ5の特定領域に格納したア
プリケーションプログラムダウンロード開始アドレスを
RAM6に取り出す。ステップ#20では、アドレス格
納レジスタ33の出力するアドレスデータをRAM6に
取り出す。
【0056】ステップ#30では、ステップ#20で取
り出したアドレスデータがアクセス可能領域内であるか
を確認する。尚、本実施形態では0x001000番地
〜0x002000番地をアクセス可能領域としている
(図4参照)。アドレスデータがアクセス可能領域外で
あった場合(ステップ#30のNo)、実行権を与えら
れたアプリケーションプログラムとは異なるプログラム
の命令コードを取り込んだと判断でき、その命令コード
のダウンロード前の絶対アドレスは必要ないのでステッ
プ#50に移行する。
【0057】一方、アドレスデータがアクセス可能領域
であった場合(ステップ#30のYes)、例えばアド
レスデータが0x001C00番地であった場合、ステ
ップ#40に移行する。
【0058】ステップ#40では、実行権を与えられた
アプリケーションプログラム内の命令コードを実行する
ことでアクセス違反が発生したと判断し、その命令コー
ドの不揮発性メモリ5にダウンロードされる前のアプリ
ケーションプログラムにおける絶対アドレスを(1)式
によって求める。ただし、ADはアクセス違反が発生し
た命令コードの不揮発性メモリ5にダウンロードされる
前のアプリケーションプログラムにおける絶対アドレ
ス、AD33はアドレス格納レジスタ33の値、ADDL
はアプリケーションプログラムをダウンロードした際の
ダウンロード開始アドレスである。 AD=AD33−ADDL…(1) そして、算出したアクセス違反が発生した命令コードの
不揮発性メモリ5にダウンロードされる前のアプリケー
ションプログラムにおける絶対アドレスADをRAM6
へ格納する。
【0059】ステップ#50では、アドレス格納レジス
タ35のアドレスデータをRAM6へ取り出す。このア
ドレスはアクセス違反を発生させる命令コードの一つ前
に実行した命令コードが存在するアドレスで、特にステ
ップ#20において取り出したアドレスがアクセス可能
領域外であった場合、ステップ#20で取り出したアド
レスがどのアドレスから移行したきたのかを判断するの
に有効である。
【0060】ステップ#60では、アクセス違反を発生
させる命令コードの一つ前に実行した命令コードの不揮
発性メモリ5にダウンロードされる前のアプリケーショ
ンプログラムにおける絶対アドレスを算出する。算出方
法はステップ#40の場合と同じである。算出した絶対
アドレスをRAM6へ格納してアクセス違反アドレス検
出処理を終了する。ただし、AD’はアクセス違反を発
生させる命令コードの一つ前に実行した命令コードの不
揮発性メモリ5にダウンロードされる前のアプリケーシ
ョンプログラムにおける絶対アドレス、AD35はアドレ
ス格納レジスタ35の値である
【0061】算出した絶対アドレスの利用に関しては、
外部から要求があった場合やアクセス違反検出時のレス
ポンスとして応答することが考えられるが、本実施形態
では特に規定しない。
【0062】また、アクセス違反を起こしたアプリケー
ションプログラムに対しての処理についても、アクセス
違反アプリケーションプログラムの実行権の削除、メモ
リからの削除等が考えられるが、これについても本実施
形態では特に規定しない。
【0063】
【発明の効果】本発明に係る1チップマイクロコンピュ
ータによると、プログラムを格納する記憶手段と、該記
憶手段に格納されたプログラムを実行する演算処理装置
と、前記記憶手段へのアクセスを許可するアドレス範囲
を設定するアクセス許可アドレス範囲設定手段と、該ア
クセス許可アドレス範囲設定手段によって設定されたア
ドレス範囲以外にアクセスされたときにアクセス違反検
出信号を出力するアクセス違反検出手段と、前記演算処
理装置がアクセスするアドレスを監視するとともに前記
アクセス違反信号が検出されたときのアドレスの値を保
持するアドレス格納手段と、を備えるので、アクセス違
反が発生したときのアドレスを検出して保持することが
できる。これにより、アクセス違反発生の原因を従来よ
り容易に究明することができる。
【0064】また、本発明に係る1チップマイクロコン
ピュータによると、前記演算処理装置から出力される命
令フェッチ信号を入力し、前記命令フェッチ信号に基づ
き前記演算処理装置が前記記憶手段から命令を読み込む
動作を行っていないと判断したときは、前記アドレス格
納手段が監視中のアドレスを更新しないように制御する
制御手段を備えるので、正常に命令コードを取り込んだ
ときのみ前記アドレス格納手段がアドレスを更新する。
これにより、前記アドレス格納手段における不要なアド
レス更新がなくなる。
【0065】また、本発明に係る1チップマイクロコン
ピュータによると、前記アドレス格納手段が、少なくと
もアドレス信号を伝達するアドレス信号線の本数分の数
をそれぞれ有するセレクタ回路とデータラッチ回路との
組からなり、前記アドレス格納手段の入力データが前記
セレクタ回路の一方の入力端子に入力され、前記セレク
タ回路の他方の入力端子に前記データラッチ回路の出力
端子が接続され、前記セレクタ回路の選択信号入力端子
に前記アクセス違反信号が入力され、前記データラッチ
回路のデータ入力端子に前記セレクタ回路の出力端子が
接続され、前記データラッチ回路の出力端子から前記ア
ドレス格納手段の出力データが出力されるので、前記ア
ドレス格納手段を簡単な回路構成にすることができる。
これにより、前記アドレス格納手段の集積回路化が容易
になる。
【0066】また、本発明に係る1チップマイクロコン
ピュータによると、前記アドレス格納手段を複数有し、
前記複数のアドレス格納手段がシフトレジスタ状に接続
されるように2段目以降のアドレス格納手段の入力が前
段のアドレス格納手段の出力に接続されるので、アクセ
ス違反を発生させる命令コードの直前に実行した命令コ
ードが存在するアドレスも検出することができる。従っ
て、アプリケーションプログラムに不具合があり前記演
算処理装置が暴走したときや悪意あるアプリケーション
プログラムがジャンプやサブルーチンしてアクセス可能
領域外にプログラム実行処理が移行してしまい、アクセ
ス違反領域で命令コードの取り込みを行うような場合に
特に有効である。
【0067】また、本発明に係る1チップマイクロコン
ピュータによると、前記アドレス格納手段が前記演算処
理装置と共通のクロック信号を入力し、前記アドレス格
納手段が前記クロック信号に同期してラッチ動作を行う
ので、前記演算処理装置によってアドレス信号が変化す
るタイミングと同期して前記アドレス格納手段がアドレ
スの更新動作を行うことができる。
【0068】また、本発明に係る1チップマイクロコン
ピュータによると、前記記憶手段が書き換え可能な不揮
発性半導体記憶装置であるとともに、外部信号に基づき
前記記憶手段の内容を書き換える手段を備えるので、外
部から新たなアプリケーションプログラム等をダウンロ
ードすることができる。これにより、1チップマイクロ
コンピュータの用途が拡がる。
【0069】また、本発明に係るICカードによると、
上記いずれかの構成の1チップマイクロコンピュータを
備えるので、不正なプログラムによってアクセス違反が
生じた場合にアクセス違反が発生するアドレスを容易に
検出することができるICカードを実現することができ
る。
【図面の簡単な説明】
【図1】 本発明に係る1チップマイクロコンピュ
ータの構成を示す図である。
【図2】 図1の1チップマイクロコンピュータが
備えるアクセス許可アドレス範囲設定回路の構成を示す
図である。
【図3】 図1の1チップマイクロコンピュータが
備えるアドレス格納回路の構成を示す図である。
【図4】 図1の1チップマイクロコンピュータが
備える不揮発性メモリのメモリ割付を示す図である。
【図5】 アクセス違反アドレスを算出するフロー
チャート図である。
【符号の説明】
1 CPU 2 アクセス許可アドレス範囲設定回路 3 アクセス制御回路 4 アドレス格納回路 5 不揮発性メモリ 22 モニタフラグ 23 レジスタ書き込み制御回路 24 アクセス許可領域検出回路 25 アクセス許可設定レジスタ 31 選択信号生成回路 32、34 セレクタ部 33、35 アドレス格納レジスタ

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】プログラムを格納する記憶手段と、 該記憶手段に格納されたプログラムを実行する演算処理
    装置と、 前記記憶手段へのアクセスを許可するアドレス範囲を設
    定するアクセス許可アドレス範囲設定手段と、 該アクセス許可アドレス範囲設定手段によって設定され
    たアドレス範囲以外にアクセスされたときにアクセス違
    反検出信号を出力するアクセス違反検出手段と、 前記演算処理装置がアクセスするアドレスを監視すると
    ともに前記アクセス違反信号が検出されたときのアドレ
    スの値を保持するアドレス格納手段と、 を備えることを特徴とする1チップマイクロコンピュー
    タ。
  2. 【請求項2】前記演算処理装置から出力される命令フェ
    ッチ信号を入力し、前記命令フェッチ信号に基づき前記
    演算処理装置が前記記憶手段から命令を読み込む動作を
    行っていないと判断したときは、前記アドレス格納手段
    が監視中のアドレスを更新しないように制御する制御手
    段を備える請求項1に記載の1チップマイクロコンピュ
    ータ。
  3. 【請求項3】前記アドレス格納手段が、少なくともアド
    レス信号を伝達するアドレス信号線の本数分の数をそれ
    ぞれ有するセレクタ回路とデータラッチ回路との組から
    なり、前記アドレス格納手段の入力データが前記セレク
    タ回路の一方の入力端子に入力され、前記セレクタ回路
    の他方の入力端子に前記データラッチ回路の出力端子が
    接続され、前記セレクタ回路の選択信号入力端子に前記
    アクセス違反信号が入力され、前記データラッチ回路の
    データ入力端子に前記セレクタ回路の出力端子が接続さ
    れ、前記データラッチ回路の出力端子から前記アドレス
    格納手段の出力データが出力される請求項1又は請求項
    2に記載の1チップマイクロコンピュータ。
  4. 【請求項4】前記アドレス格納手段を複数有し、前記複
    数のアドレス格納手段がシフトレジスタ状に接続される
    ように、2段目以降のアドレス格納手段の入力が前段の
    アドレス格納手段の出力に接続される請求項1〜3のい
    ずれかに記載の1チップマイクロコンピュータ。
  5. 【請求項5】前記アドレス格納手段が前記演算処理装置
    と共通のクロック信号を入力し、前記アドレス格納手段
    が前記クロック信号に同期してラッチ動作を行う請求項
    1〜4のいずれかに記載の1チップマイクロコンピュー
    タ。
  6. 【請求項6】前記記憶手段が書き換え可能な不揮発性半
    導体記憶装置であるとともに、外部信号に基づき前記記
    憶手段の内容を書き換える手段を備える請求項1〜5の
    いずれかに記載の1チップマイクロコンピュータ。
  7. 【請求項7】請求項1〜6のいずれかに記載の1チップ
    マイクロコンピュータを備えることを特徴とするICカ
    ード。
JP2001190206A 2001-06-22 2001-06-22 1チップマイクロコンピュータ及びそれを用いたicカード Pending JP2003006047A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001190206A JP2003006047A (ja) 2001-06-22 2001-06-22 1チップマイクロコンピュータ及びそれを用いたicカード

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001190206A JP2003006047A (ja) 2001-06-22 2001-06-22 1チップマイクロコンピュータ及びそれを用いたicカード

Publications (1)

Publication Number Publication Date
JP2003006047A true JP2003006047A (ja) 2003-01-10

Family

ID=19029018

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001190206A Pending JP2003006047A (ja) 2001-06-22 2001-06-22 1チップマイクロコンピュータ及びそれを用いたicカード

Country Status (1)

Country Link
JP (1) JP2003006047A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007128319A (ja) * 2005-11-04 2007-05-24 Hitachi Ltd ユニバーサルメモリ,ユニバーサルメモリモジュール及びこれを用いた情報処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007128319A (ja) * 2005-11-04 2007-05-24 Hitachi Ltd ユニバーサルメモリ,ユニバーサルメモリモジュール及びこれを用いた情報処理装置

Similar Documents

Publication Publication Date Title
KR100319677B1 (ko) 메모리액세스제어회로
JP4324810B2 (ja) マイクロコンピュータ、電子機器及びフラッシュメモリのプロテクト方式
US5862148A (en) Microcontroller with improved debug capability for internal memory
JPH02267634A (ja) 割込み処理装置
KR20090065531A (ko) 메모리 액세스 보안 관리
US7404019B2 (en) Method and apparatus for endianness control in a data processing system
CN114721493B (zh) 芯片启动方法、计算机设备及可读存储介质
US5168559A (en) Emulation system capable of complying with microcomputers having different on-chip memory capacities
JP5622429B2 (ja) マイクロコンピュータ
JPS58197553A (ja) プログラム監視装置
JP2000194551A (ja) フラッシュメモリ書換え回路
JP2021515308A (ja) デバイスをデバッグするときにメタデータにアクセスするための装置及び方法
JP2003006047A (ja) 1チップマイクロコンピュータ及びそれを用いたicカード
US5586336A (en) Microcomputer capable of monitoring internal resources from external
JP2002073418A (ja) マイクロプロセッサ
EP0864983A2 (en) Computer system including memory adress management circuit for protecting memory from illegal writing
JPS6074059A (ja) 記憶装置アクセス制御方式
JP2607319B2 (ja) プログラマブルコントローラ
JPS6362778B2 (ja)
JP2011150457A (ja) 情報処理装置およびメモリアクセス制御方法
JP5823000B2 (ja) マイクロコンピュータ
JP2003058522A (ja) 内部ramモニタ装置および方法
JP2847729B2 (ja) 情報処理装置
JPS6011934A (ja) 動作モ−ド表示装置
JPH11110210A (ja) 拡張bios保護システム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050913

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050927

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060124

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060425