JP4546127B2 - マイクロコントローラ - Google Patents

マイクロコントローラ Download PDF

Info

Publication number
JP4546127B2
JP4546127B2 JP2004102076A JP2004102076A JP4546127B2 JP 4546127 B2 JP4546127 B2 JP 4546127B2 JP 2004102076 A JP2004102076 A JP 2004102076A JP 2004102076 A JP2004102076 A JP 2004102076A JP 4546127 B2 JP4546127 B2 JP 4546127B2
Authority
JP
Japan
Prior art keywords
cpu
rom
signal
data
circuit
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
Application number
JP2004102076A
Other languages
English (en)
Other versions
JP2005285053A (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.)
Kawasaki Microelectronics Inc
Original Assignee
Kawasaki Microelectronics Inc
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 Kawasaki Microelectronics Inc filed Critical Kawasaki Microelectronics Inc
Priority to JP2004102076A priority Critical patent/JP4546127B2/ja
Publication of JP2005285053A publication Critical patent/JP2005285053A/ja
Application granted granted Critical
Publication of JP4546127B2 publication Critical patent/JP4546127B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Microcomputers (AREA)
  • Storage Device Security (AREA)

Description

本発明は、CPU(セントラル・プロセッシング・ユニット)と、CPUが使用するデータが記憶されているROM(リード・オンリ・メモリ)と、デバッグ用回路とを備えるシステムを搭載するマイクロコントローラに関するものである。
例えば、携帯電話の制御部などのように、CPUと、このCPUが使用するデータが記憶されている、マスクROMやフラッシュROMなどのROMとを備えるシステムを搭載するマイクロコントローラが知られている。
特許文献1に示されているように、マイクロコントローラの内部には、CPUやROMの他に、プログラムの動作検証およびハードウェアの動作確認のために、デバッグ作業支援を目的としたデバッグ用の回路ブロック、例えばTAP(テスト・アクセス・ポート)やJTAG(ジョイント・テスト・アクション・グループ)制御回路などがあらかじめ搭載されているのが一般的である。
ところで、従来のマイクロコントローラでは、外部のデバッガから、その内部に搭載されているデバッグ用回路を経由して、ROMに記憶されているデータ(プログラムコードが主である)を直接的に読み出す、あるいは外部からデバッグ用回路を経由してCPUにメモリリード命令を与えることによって、ROMに記憶されているデータをCPUを経由して間接的に読み出すことが可能であった。
このことは、ROMの内容が第三者に読み出されるという、セキュリティ上の問題が存在することを意味する。特許文献1は、ROMに記憶されているデータが直接的に読み出されることを防止するものではあるが、ROMに記憶されているデータがCPUを経由して間接的に読み出されることを防止することはできない。このため、簡単にROMの内容を読み出すことができるという問題があった。
特開2002−32267号公報
本発明の目的は、前記従来技術に基づく問題点を解消し、ROMに記憶されているデータが、外部からCPUを経由して間接的に読み出されるのを防止することができるマイクロコントローラを提供することにある。
上記目的を達成するために、本発明は、CPUと、このCPUが使用するデータが記憶されているROMと、デバッグ用回路とを備えるマイクロコントローラであって、
外部から、前記デバッグ用回路を経由して与えられる命令に従って、前記CPUが前記ROMに記憶されているデータを読み出す時に、前記CPUから供給される、インストラクション・フェッチ・サイクルである場合にアクティブ状態となるIF信号が非アクティブ状態である場合、前記ROMから読み出されるデータをマスク、もしくは暗号化して出力するマスク/暗号化回路と、
前記インストラクション・フェッチ・サイクルである場合に加えて、割り込み処理の時に、前記CPUが前記ROMに記憶されている割り込みテーブルのデータを読み出す場合にもアクティブ状態となるIF信号を生成するIF信号生成回路とを備え
前記マスク/暗号化回路は、前記IF信号生成回路から供給されるIF信号に応じて動作することを特徴とするマイクロコントローラを提供するものである。
本発明のマイクロコントローラでは、例えば外部のデバッガなどから、デバッグ用回路を経由してCPUにメモリリード命令を与えても、ROMに記憶されているデータをCPUを経由して間接的に読み出すことはできない。このため、本発明によれば、非常に簡単かつ経済的な手法で、第三者に対するセキュリティを確保することができる。
以下に、添付の図面に示す好適実施形態に基づいて、本発明のマイクロコントローラを詳細に説明する。
図1は、本発明のマイクロコントローラの内部構成を表す一実施形態のブロック図である。同図に示すマイクロコントローラ10は、例えば外部のデバッガなどから、CPUを経由して、ROMに記憶されているデータを間接的に読み出すことを禁止する機構を有するもので、CPU12と、このCPU12が使用するデータが記憶されているROM14と、デバッグ用回路であるJTAG制御回路及びTAP16と、IF信号生成回路18と、マスク/暗号化回路20とを備えている。
マイクロコントローラ10において、CPU12、ROM14、およびJTAG制御回路及びTAP16は、従来公知の構成要素であるから、ここではその詳細な説明は省略する。
ここで、JTAG制御回路及びTAP16は、マイクロコントローラ10のJTAG端子と相互に接続されている。また、CPU12は、JTAG制御回路及びTAP16と相互に接続されているとともに、内部のデータバスとも相互に接続され、CPU12の出力信号はIF信号生成回路18に入力されている。また、ROM14から読み出されるデータ出力はマスク/暗号化回路20に入力されている。
ROM14には、CPU12が使用する各種のデータが記憶されている。ROM14に記憶されるデータは、CPU12が使用するどのようなデータであってもよいし、そのビット幅やメモリ容量も何ら限定されない。本実施形態の場合、ROM14の内部には、CPU12を動作させるためのプログラムコードと、割り込み処理の時に使用する割り込みテーブルのデータとを含む、各種のデータが記憶されている。
IF信号生成回路18は、CPU12の出力信号(CPU12から出力されるIF信号、割り込み処理関連の信号を含む)に従って、インストラクション・フェッチ・サイクル(以下、IFサイクルという)である場合に加えて、割り込み処理の時に、CPU12がROM14から割り込みテーブルのデータを読み出す場合にもアクティブ状態となるIF信号を生成する。このIF信号は、マスク/暗号化回路20に入力されている。
ここで、CPU12が、ROM14に記憶されているデータを読み出す場合、命令コード(インストラクション)として読み出す(フェッチする)場合と、単純にデータとして読み出す(リードする)場合の2通りがある。CPUが命令を実行する場合、まず、命令コードをROM14からフェッチするが、このサイクルをIFサイクルと呼ぶ。本実施形態では、IF信号がアクティブ状態である場合、論理「1」となる。
一般的に、CPU12の内部では、IFサイクルであることを表すIF信号が使用されている。従って、CPU12の内部で使用されているIF信号をCPU12の外部に出力して使用することができる。割り込み処理の場合を考慮しないときには、CPU12から出力されるIF信号を直接マスク/暗号化回路20に入力すればよい。
なお、IF信号生成回路18は、CPU12の出力信号、例えばCPU12内部のステートマシンの情報をCPU12から出力し、これをデコードすることで実現することができる。しかし、IF信号生成回路18の具体的な回路構成は何ら限定されず、上記と同様の機能を果たす各種の回路構成のものを使用することができる。また、IF信号の極性も適宜変更してもよい。
続いて、マスク/暗号化回路20は、CPU12がROM14に記憶されているデータを読み出す時に、CPU12又はIF信号生成回路18から供給されるIF信号がアクティブ状態である場合、ROM14から読み出されるデータ出力をそのままデータバス上に出力し、IF信号生成回路18から供給されるIF信号が非アクティブ状態である場合、ROM14から読み出されるデータ出力をマスク、もしくは暗号化してデータバス上に出力する。
図2は、ROM14の出力データが32ビットの場合のマスク/暗号化回路20の例であり、図示省略しているが、実際には32個のANDゲート22で構成されている。32個のANDゲート22の一方の入力端子にはCPU12又はIF信号生成回路18から供給されるIF信号が入力され、その他方の入力端子には、ROM14のデータ出力[31:0]がそれぞれ入力されている。また、図示省略しているが、ANDゲート22のデータ出力[31:0]は、CPU12がROM14のデータを読み出した場合にデータバス上に出力される。
図2に示すマスク/暗号化回路20は、IF信号がアクティブ状態である論理「1」の時、ROM14のデータ出力[31:0]が、ANDゲート22のデータ出力[31:0]としてそのまま出力される。一方、IF信号が非アクティブ状態である論理「0」の時、ROM14のデータ出力[31:0]はマスクされ、ANDゲート22のデータ出力[31:0]は全て論理「0」となる。
なお、マスク/暗号化回路20は図示例の構成に限定されず、IF信号に従って、ROM14のデータ出力をどのようにマスクしてもよいし、あるいはROM14のデータ出力をさらに複雑に暗号化するものでもよい。
また、図1に示すマイクロコントローラ10において、実際には、CPU12からROM14に対して、アドレスや、メモリリード信号、メモリライト信号などが入力されているが、図面の煩雑さを避けるために省略してある。また、マイクロコントローラ10は、通常、例えばRAM(ランダム・アクセス・メモリ)などの他の各種の構成要素を含んでいるが、これも図面の煩雑さを避けるために省略してある。
次に、図1に示すマイクロコントローラ10の動作を説明する。
図3のタイミングチャートの左側部に示すように、CPU12がROM14からデータを読み出す場合に、IFサイクルである、もしくは割り込み処理の時に、割り込みテーブルのデータを読み出す場合であれば、システムクロックに同期してCPU12から出力されるメモリリード信号(ローアクティブ)がローレベルになるとともに、CPU12又はIF信号生成回路18から出力されるIF信号が論理「1」となる。この場合、マスク/暗号化回路20からは、ROM14の有効(VALID)なデータ出力[31:0]が、マスク/暗号化回路20のデータ出力[31:0]としてそのままデータバス上に出力される。
すなわち、CPU12は、ROM14から正しいデータ(命令コード、もしくは割り込みテーブルのデータ)を読み出すことができる。従って、マイクロコントローラ10では、CPU12がROM14に記憶されている命令コードを実行する通常動作の場合、および割り込み処理の場合、マスク/暗号化回路20は、CPU12およびROM14の動作に何ら影響を与えない。
一方、図3のタイミングチャートの右側部に示すように、CPU12がROM14からデータを読み出す場合に、メモリリード信号はローレベルになるが、IFサイクルではなく、また割り込み処理の時に割り込みテーブルのデータを読み出す場合でもなければ、IF信号は論理「0」となる。この場合、マスク/暗号化回路20からは、ROM14のデータ出力[31:0]に関わらず、マスク/暗号化回路20のデータ出力[31:0]として、全て論理「0」のデータがデータバス上に出力される。
すなわち、CPU12は、ROM14から正しいデータを読み出すことができない。例えば、外部のデバッガなどから、JTAG制御回路及びTAP16を経由してCPU12にメモリリード命令を与えても、ROM14に記憶されているデータをCPU12を経由して間接的に読み出すことはできない。このため、マイクロコントローラ10は、非常に簡単かつ経済的な手法で、第3者に対するセキュリティを確保することができる。
次に、マイクロコントローラ10の割り込み処理の場合の動作を説明する。
マイクロコントローラ10は、図4のタイミングチャートに示すように、割り込み信号を除きシステムクロックに同期して動作する。また、例えばCPU12が、PC(プログラムカウンタ)に対応するROM14のアドレスからデータ(命令コード)を読み出す(フェッチする)場合(*4)に示すように、メモリリード信号はローアクティブの信号であり、IF信号はハイアクティブの信号とする。また、割り込み信号はローアクティブの信号とする。
割り込み処理の場合、CPU12に対して入力される割り込み信号がローレベルになると、外部I/O(入出力)から割り込みベクトルの読み込みが行われる(*5)。次いで、現在実行中のPCの値が、スタック(スタックポインタSPに対応するRAM(図示省略)のアドレス)に退避(データライト)するためにCPU12からデータバス上に出力される(外部データ出力)。
続いて、割り込みベクトルによって指定される、ROM14内部の割り込みテーブルのアドレスに記憶されている、割り込みルーチンの先頭アドレスの下位アドレスおよび上位アドレスの読み込みが順次行われる(*1および*6,*2および*7)。続いて、*6,*7で読み込まれた割り込みルーチンの先頭アドレスにジャンプする。すなわち、ROM14から割り込みルーチンの先頭アドレスのデータがCPU12に読み込まれる(*3および*8)。
図4のタイミングチャートに示すように、マイクロコントローラ10では、割り込みルーチンの先頭アドレスの下位アドレスおよび上位アドレスの読み込み(*1および*6,*2および*7)、および割り込みルーチンの先頭アドレスのデータの読み込み(*3および*8)の期間、上記メモリリード信号はローレベルとなり、IF信号はハイレベルとなる。
図4のタイミングチャートにおいて、IF信号のうち、点線で示す部分は、CPU12から出力されるIF信号と等しい部分を表す。すなわち、CPU12からは、割り込み処理の場合、割込認識サイクルの*3および*8において、割り込みルーチンの先頭アドレスの命令コードを読み出す時(IFサイクル)だけIF信号が出力される。これに対し、本実施形態のIF信号生成回路18からは、*1および*6,*2および*7の、割り込みルーチンの先頭アドレスを読み出す場合(データリード)もIF信号が出力される。
これにより、割り込み処理を利用するシステムであって、割り込み処理の時に使用する割り込みテーブルのデータがROM14内部に記憶されている場合も、マスク/暗号化回路20が設けられていない場合と同様に正常に動作させることができる。
なお、本発明では、外部から、JTAG制御回路及びTAP16を経由して、ROM14に記憶されたデータが直接的に読み出されるのを防止するために、例えば特許文献1に記載の手法を含む、従来公知の各種の手法を利用することができる。
本発明は、基本的に以上のようなものである。
以上、本発明のマイクロコントローラについて詳細に説明したが、本発明は上記実施形態に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。
本発明のマイクロコントローラの内部構成を表す一実施形態のブロック図である。 図1に示すマスク/暗号化回路の内部構成を表す回路図である。 図1に示すマイクロコントローラの動作を表すタイミングチャートである。 図1に示すマイクロコントローラの動作を表すタイミングチャートである。
符号の説明
10 マイクロコントローラ
12 CPU
14 ROM
16 JTAG制御回路及びTAP
18 IF信号生成回路
20 マスク/暗号化回路
22 ANDゲート

Claims (1)

  1. CPUと、このCPUが使用するデータが記憶されているROMと、デバッグ用回路とを備えるマイクロコントローラであって、
    外部から、前記デバッグ用回路を経由して与えられる命令に従って、前記CPUが前記ROMに記憶されているデータを読み出す時に、前記CPUから供給される、インストラクション・フェッチ・サイクルである場合にアクティブ状態となるIF信号が非アクティブ状態である場合、前記ROMから読み出されるデータをマスク、もしくは暗号化して出力するマスク/暗号化回路と、
    前記インストラクション・フェッチ・サイクルである場合に加えて、割り込み処理の時に、前記CPUが前記ROMに記憶されている割り込みテーブルのデータを読み出す場合にもアクティブ状態となるIF信号を生成するIF信号生成回路とを備え
    前記マスク/暗号化回路は、前記IF信号生成回路から供給されるIF信号に応じて動作することを特徴とするマイクロコントローラ。
JP2004102076A 2004-03-31 2004-03-31 マイクロコントローラ Expired - Fee Related JP4546127B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004102076A JP4546127B2 (ja) 2004-03-31 2004-03-31 マイクロコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004102076A JP4546127B2 (ja) 2004-03-31 2004-03-31 マイクロコントローラ

Publications (2)

Publication Number Publication Date
JP2005285053A JP2005285053A (ja) 2005-10-13
JP4546127B2 true JP4546127B2 (ja) 2010-09-15

Family

ID=35183321

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004102076A Expired - Fee Related JP4546127B2 (ja) 2004-03-31 2004-03-31 マイクロコントローラ

Country Status (1)

Country Link
JP (1) JP4546127B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8912814B2 (en) * 2012-11-12 2014-12-16 Chaologix, Inc. Clocked charge domain logic

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0934795A (ja) * 1995-07-20 1997-02-07 Nasuka:Kk Cpuプログラムのコピープロテクト法
JP2002032267A (ja) * 2000-07-18 2002-01-31 Oki Micro Design Co Ltd 半導体回路

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0934795A (ja) * 1995-07-20 1997-02-07 Nasuka:Kk Cpuプログラムのコピープロテクト法
JP2002032267A (ja) * 2000-07-18 2002-01-31 Oki Micro Design Co Ltd 半導体回路

Also Published As

Publication number Publication date
JP2005285053A (ja) 2005-10-13

Similar Documents

Publication Publication Date Title
JP4737592B2 (ja) データ処理装置
JP2008009721A (ja) 評価システム及びその評価方法
JPH03204737A (ja) 信号処理プロセッサのデバッグ回路
KR100267410B1 (ko) 정보 처리 장치 및 이의 인터럽트 신호 발생 방법
JP2581018B2 (ja) データ処理装置
JP4546127B2 (ja) マイクロコントローラ
JP2007058588A (ja) プログラム保護機能を持つプロセッサ
JPH0475137A (ja) データ処理装置
JPH0588884A (ja) 状態モード設定方式
US5687311A (en) Microcomputer with detection of predetermined data for enabling execution of instructions for stopping supply of clock
KR100468615B1 (ko) 내부 프로그램 코드 보호 장치
US20060190675A1 (en) Control apparatus
JP2012079152A (ja) 半導体装置
JPS642177Y2 (ja)
JP2008197810A (ja) 情報処理装置およびicカード装置
KR940009427B1 (ko) 어드레스공간 변경방법 및 장치
KR100295647B1 (ko) 메모리데이터보호회로
KR100200487B1 (ko) 파이프라인 구조를 가진 중앙처리장치 및 점프/호출 실행방법
JP2005292899A (ja) マイクロプロセッサ
KR940006816B1 (ko) 피엘씨의 명령어 수행 속도 단축회로
JPH0683987A (ja) マイクロコンピュータ
JP2006318172A (ja) マイクロコンピュータ
JPH0784827A (ja) トレース装置
JPS6286442A (ja) デ−タ処理装置
JPH05101203A (ja) マイクロ・プロセツサ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100420

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100610

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100701

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130709

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4546127

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

LAPS Cancellation because of no payment of annual fees