JP4312272B2 - 内部メモリへのアクセスを制限するマイクロコントローラ - Google Patents

内部メモリへのアクセスを制限するマイクロコントローラ Download PDF

Info

Publication number
JP4312272B2
JP4312272B2 JP28313196A JP28313196A JP4312272B2 JP 4312272 B2 JP4312272 B2 JP 4312272B2 JP 28313196 A JP28313196 A JP 28313196A JP 28313196 A JP28313196 A JP 28313196A JP 4312272 B2 JP4312272 B2 JP 4312272B2
Authority
JP
Japan
Prior art keywords
address
internal
confidential
rom
microcontroller
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
JP28313196A
Other languages
English (en)
Other versions
JPH09171488A (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.)
Motorola Solutions Inc
Original Assignee
Motorola 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 Motorola Inc filed Critical Motorola Inc
Publication of JPH09171488A publication Critical patent/JPH09171488A/ja
Application granted granted Critical
Publication of JP4312272B2 publication Critical patent/JP4312272B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1433Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a module or a part of a module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microcomputers (AREA)
  • Storage Device Security (AREA)

Description

【0001】
【産業上の利用分野】
本発明は、データ・プロセッサに関し、さらに詳しくは、外部アクセス・ポートを有するマイクロコントローラ用のセキュリティ機能に関する。
【0002】
【従来の技術】
マイクロコントローラとは、中央処理装置(CPU),ランダム・アクセス・メモリ(RAM),リード・オンリ・メモリ(ROM)および周辺装置を含む、コンピュータ・システムに関連するいくつかの要素をオンチップで内蔵する集積回路のことである。CPUのオペレーティング・システムを格納するため不揮発性メモリが用いられる。多くの場合、オンチップ不揮発性メモリは、マイクロコントローラのプログラムのすべてを内蔵する十分な大きさである。この場合、マイクロコントローラは、動作するためにオフチップ・メモリにアクセスする必要はない。しかし、プログラムが大きすぎて、オンチップ不揮発性メモリに収まりきらない場合があり、マイクロコントローラはプログラムの一部をオフチップでフェッチできなければならない。この可能性に対処するため、一般的なマイクロコントローラは、拡張バスとして知られるものを有し、この拡張バスとは、外部メモリまたはメモリ・マップド周辺装置をアクセス可能にする、データ・ラインおよびアドレス・ラインを具備するバスのことである。
【0003】
【発明が解決しようとする課題】
「ハッカー」がオンチップ・プログラムの知見を得ることを防ぐため、マイクロコントローラにセキュリティ機能を内蔵することが望ましい場合が多い。例えば、Wilkieらによって発明され、本明細書の譲受人に譲渡された米国特許第4,698,750号は、セキュリティ・モードになると不揮発性メモリの内容を外部ソースによって読み出すことを防ぐ、セキュリティ・モードを具備するマイクロコンピュータについて教示する。Sibigtrothらによって発明され、本明細書の譲受人に譲渡された米国特許第5,251,304号によって教示される別の方法は、マイクロコントローラが拡張バスと動作する場合に有用である。米国特許第5,251,304号は、オフチップ命令アクセスがディセーブルされる機密モードを具備するマイクロコントローラについて教示する。この教示は、オンチップ不揮発性メモリがオペレーティング・プログラムのすべてを格納するのに十分大きい場合に有用である。しかし、オペレーティング・プログラムが大きすぎて、実際的大きさのオンチップ不揮発性メモリに格納できない場合、新たな問題が生じる。例えば、ハッカーであれば、プログラムの外部部分のセグメントを書き直して、CPUに内部不揮発性メモリの内容を読み出させることができる。
【0004】
【課題を解決するための手段】
従って、改善されたセキュリティを具備するマイクロコントローラが望ましい。
【0005】
【実施例】
マイクロコントローラは、拡張バスに結合された拡張ポートを有する。マイクロコントローラは、内部ROM,RAMおよびEEPROM(electronically erasable read only memory)ならびに拡張バスに結合された外部拡張ポートを含む。内部EEPROMは、CPUが内部ROM内で命令を実行している場合にのみ、プログラム可能である。さらに、内部ROMに格納された機密動作に関連する命令は、まず機密動作の開始命令を実行しないとアクセスできない。有効なエントリ・アドレス以外のポイントで機密動作の実行を開始する試み、例えば、他のポイントで機密動作にJMP,JSR,RTSまたはRTを行う試みは、内部ROMをディセーブルさせる。
【0006】
マイクロコントローラ100(図1)は、アドレス信号をアドレス・バス104に与え、データ・バス106を介してデータを双方向に交信する中央処理装置(CPU)102を含むシングル・チップ・マイクロコントローラである。メモリ108,109,110は、アドレス・バス104およびデータ・バス106に接続される。これらのメモリは、ランダム・アクセス・メモリ(RAM)108,EEPROM109およびROM110を含む。CPU,RAM,ROMおよびEEPROMの動作は一般に当業者に周知であり、ここでは詳しく説明しない。本発明では、EEPROM109に格納される情報の一部は、ある状況下で変更できる機密データを含み、内部ROM110は、機密な固定オペレーティング命令を格納する。例えば、機密EEPROMは、マイクロコントローラが内部ROMからコードを実行する際にのみ読み出すことができ、機密内部ROMは、以下で詳しく説明するように、内部ROMからコードを実行する場合にのみマイクロコントローラによって読み出すことができる。
【0007】
外部ポート112は、マイクロコントローラ100を外部拡張バス114に接続することを可能にする。マイクロコントローラ100を外部バスに接続することが望ましい状況の一つとして、オペレーティング・プログラムを格納するためにEEPROM109またはROM110を十分に大きくできない場合がある。例えば、マイクロコントローラ上のEEPROMは、32〜48キロバイト(Kbyte)の範囲にサイズが一般に制限されるが、高度なアプリケーション・プログラムには100Kbyteを越えるサイズを必要とするものがある。これらの大きなサイズのプログラムは、利用可能な技術を利用してオンチップで実施することはほぼ不可能である。
【0008】
EEPROM109および内部ROM110内のデータの健全性を保護しつつ、外部バス114に接続された外部メモリに対するプログラム・アクセスを可能にするため、マイクロコントローラ100はセキュリティ論理(security logic)116を内蔵する。セキュリティ論理116は、バス117上でCPU102からいくつかの制御信号を受ける。セキュリティ論理は、ROM110に結合されたコンダクタ118上でROM制御信号を出力し、EEPROM109に結合されたコンダクタ120上でEEPROM制御信号を出力する。ROMおよびEEPROM制御信号は、ROM110およびEEPROM109をそれぞれ選択的にイネーブルまたはディセーブルする。CPU102およびセキュリティ論理116は、マイクロコントローラの内部コントローラ119を形成する。セキュリティ論理116は、ソフトウェアにより、あるいはCPUに対して外部の回路を利用することによって、構成できる。
【0009】
動作時に、CPU102が内部ROM110に対して外部のコードまたはマイクロコントローラ110に対して外部のコードを実行中に、EEPROMをプログラムすることを試みるとき、セキュリティ論理116はEEPROM109へのアクセスをディセーブルする。また、セキュリティ論理116は、CPU102が開始アドレスにおいて命令を実行せずに、機密動作に関連するROM110内のコードを実行することを試みるとき、内部ROM110へのアクセスをディセーブルする。さらに、内部ROM110以外の場所でコードが実行されるときにはいつでも、内部ROM110へのアクセスはディセーブルされる。
【0010】
これらのセキュリティ動作を実行するため、セキュリティ論理116は、図2ないし図5に示すROMセキュリティ論理と、図6に示すEEPROMセキュリティ論理とを含む。ROMセキュリティ論理は、カレント・アドレス比較器202(図2)を含む。カレント・アドレス比較器は、バス203を介してプログラム・カウンタ204と、バス205を介して機密アドレス・レンジ・レジスタ(secured address range register)206とに結合される。プログラム・カウンタ204は、現在実行中の命令のアドレスを格納する、市販のマイクロコントローラにおけるレジスタである。機密アドレス・レンジ・レジスタ206は、機密動作のアドレス・レンジを格納する。例えば、機密アドレス・レンジ・レジスタ206は、機密レンジの開始アドレスより1だけ小さい第1アドレスと、機密動作の終了アドレスより1だけ高い第2アドレスとを格納し、ここで機密動作は内部ROM110の順次アドレス番地に格納される。カレント・アドレス比較器202は、プログラム・カウンタ204におけるカレント・アドレスを機密アドレス・レンジ・レジスタにおける第1アドレスおよび第2アドレスと比較する。プログラム・カウンタ・アドレスが第1アドレスよりも大きく、かつ第2アドレスよりも小さい場合、カレント・アドレスは機密アドレス・レンジ内にあると判断される。カレント・アドレス比較器202は、カレント・アドレスが機密アドレス・レンジ内の場合に高論理レベル信号を出力し、機密アドレス・レンジ内でない場合に低論理レベル信号を出力する。複数のアドレス・レンジを採用する場合、各レンジについてそれぞれ比較器が設けられる。当業者であれば、カレント・アドレス比較器202は2つの大きさ比較回路(magnitude comparator circuit)と、これらの大きさ比較回路の出力を論理的に合成するANDゲートとを利用して構成できることが理解される。また、機密アドレス・レンジは内部ROM110のアドレス・レンジ全体でもよいことが理解される。
【0011】
前回アドレス比較器(previous address comparator) 210は、バス205を介して機密アドレス・レンジ・レジスタ206と、バス214を介して前回プログラム・カウンタ・アドレス・レジスタ212とに結合される。前回プログラム・カウンタ・アドレス・レジスタ212は、一つのアドレス、すなわち、前回のプログラム・カウンタ・アドレスを格納するメモリである。前回プログラム・カウンタ・アドレス・レジスタ212は、バス203を介してプログラム・カウンタ204に結合される。プログラム・カウンタが旧アドレスから新アドレスに変化する毎に、プログラム・カウンタからの旧アドレスは前回プログラム・カウンタ・アドレス・レジスタ212に格納される。前回プログラム・カウンタ・アドレスが機密アドレス・レンジ内の場合、前回アドレス比較器210は、高論理レベル信号を出力する。それ以外の場合には、前回アドレス比較器210は低論理レベル信号を出力する。前回アドレス比較器210は、カレント・アドレス比較器202がプログラム・カウンタ・アドレスを機密アドレス・レンジと比較するのと同じように、前回プログラム・カウンタ・アドレス・レジスタ212におけるアドレスを機密アドレス・レンジと比較し、そのためこれについては説明しない。
【0012】
第1アドレス比較器216は、バス220を介して第1アドレス・レジスタ218と、バス203を介してプログラム・カウンタ204とに結合される。第1アドレス・レジスタ218は、ROM110に格納される各機密動作の第1アドレスを格納する。第1アドレス比較器216は、プログラム・カウンタ・アドレスを、第1アドレス・レジスタ218に格納されたアドレスと比較する。プログラム・カウンタ204のアドレスが第1アドレス・レジスタ218におけるアドレスと一致した場合、第1アドレス比較器216は高論理レベルを出力する。それ以外の場合には、第1アドレス比較器は低論理レベルを出力する。
【0013】
論理回路230は、コンダクタ224を介して前回アドレス比較器210の出力と、コンダクタ226を介してカレント・アドレス比較器202の出力と、コンダクタ228を介して第1アドレス比較器216の出力とに結合される。論理回路230の出力は、論理回路230がROM110の動作をイネーブルするように、ROMのチップ・イネーブル入力に接続される。カレント・アドレス比較器202の出力が低論理レベルで、カレント命令が機密アドレス・レンジ内でないことを示すと、論理回路230の出力は低論理レベルを有し、ROM110の動作をイネーブルする。内部ROM110のチップ・イネーブル入力上のこの低レベル信号は、内部ROMをイネーブルする。カレント・アドレス比較器202の出力が高論理レベルで、カレント命令が機密アドレス・レンジ内であることを示すと、ROMをイネーブルするためには、以下の2つの状態のうちいずれか一方を満たさなければならない。すなわち、前回アドレス比較器210が高論理レベルを出力して、前回プログラム・カウンタ・アドレスが機密アドレス・レンジ内であることを示すか、あるいは第1アドレス比較器216が高論理レベルを有して、プログラム・カウンタ204におけるカレント命令アドレスが機密動作の第1アドレスであることを示さなければならない。それ以外の場合には、ROM110の動作はディセーブルされる。
【0014】
ROMセキュリティ論理の別の実施例を図3ないし図5に示す。セキュリティ論理は、バス220を介して第1アドレス・レジスタ218と、バス203を介してプログラム・カウンタ204とに結合された第1アドレス比較器216(図3)を含む。第1アドレス・レジスタは、各機密動作の第1アドレスを格納する。第1アドレス比較器216は、上で説明したようにプログラム・カウンタ・アドレスが第1アドレス・レジスタに格納された第1アドレスと一致した場合に、高論理レベルを出力する。カレント・アドレス比較器202は、バス205を介して機密アドレス・レンジ・レジスタ206と、バス203を介してプログラム・カウンタ204とに結合される。カレント・アドレス比較器202は、プログラム・カウンタ・アドレスをレジスタ206に格納された機密アドレス・レンジと比較する。アドレスが機密アドレス・レンジ外の場合、カレント・アドレス比較器202の出力は低論理レベルである。それ以外の場合には、カレント・アドレス比較器202の出力は高論理レベルである。
【0015】
電源回路302(図3)は、コンダクタ306によって第1アドレス比較器216の出力と、コンダクタ304によってカレント・アドレス比較器202の出力とに結合される。電源回路302は、コンダクタ318によって内部ROM110の電源入力に接続され、比較器202,212の出力に応じてコンダクタ310,318をROM110の電源に選択的に接続する。
【0016】
電源回路302は、RSフリップフロップ402(図4)を含む。RSフリップフロップ402のS入力は、コンダクタ306に接続される。RSフリップフロップ402のR入力は、インバータ404を介してコンダクタ304に接続される。RSフリップフロップ402の反転Q出力は、ANDゲート408の一方の入力に接続される。ANDゲート408の他方の入力は、インバータ404の出力に接続される。RSフリップフロップ402のQ出力およびANDゲート408の出力は、ORゲート410のそれぞれの入力に接続される。ORゲートの出力は、MOSFETスイッチ426のゲートに接続される。MOSFETスイッチ426のソースおよびドレインは、ROM110の電源Vsと、ROM110の電源入力に接続されたコンダクタ318との間に接続される。
【0017】
動作時に、RSフリップフロップ402は、機密状態と非機密状態との間でトグルする。コンダクタ306上の信号が高論理レベルを有し、プログラム・カウンタ・アドレスが機密動作の開始アドレスであることを示すと、コンダクタ304上の信号も高論理レベルを有し、プログラム・カウンタ・アドレスが機密アドレス・レンジ内であることを示す。従って、S入力は1で、R入力は0であり、これは図5に示すようにQ出力を高論理レベルに設定する。ORゲート410は、この高論理レベルをMOSFETゲートまで通過させ、MOSFETを導通状態に保持する。Q出力は、フリップフロップがリセットされるまでこの高論理レベルのままである。フリップフロップ402は、コンダクタ306,304上の信号がともに低レベル信号の場合にリセットされ、これはプログラム・カウンタが機密アドレス・レンジ内の信号を有していない場合に生じる。次に、S入力は値0を有し、R入力は値1を有する。これは、Q出力を値0にし、反転Q出力を値1にし、インバータ404の出力を値1にする。その結果、ANDゲート408の出力は高論理レベルを有し、この信号はORゲート410を介してMOSFETスイッチ426のゲートに送られる。
【0018】
コンダクタ306が高論理レベルに変化せずに、コンダクタ304上の信号が高論理レベルに変化して、最初に開始アドレス命令を実行せずに機密アドレスを実行することを示すと、S入力は値0を有し、R入力は値0を有する。RSフリップフロップの出力は、状態を変化しない(図5参照)。さらに、ANDゲート408の出力は0に変化する。そのため、ORゲート410の出力は低論理レベルを有し、MOSFETは非導通状態となり、ROMへの電源供給を遮断する。従って、ROMはディセーブルされる。
【0019】
ORゲート410の出力は、図2の論理回路230の出力の場合と同様に、ROMをイネーブルおよびディセーブルするためにROM110に接続できることがわかる。あるいは、図2における論理回路230の出力は、MOSFET426のゲートを駆動できる。また、ANDゲート408およびORゲート410は、図4の回路から省くことができ、この場合、機密アドレス・レンジはROMの全アドレス・レンジとなることがわかる。この実施例では、RSフリップフロップ402のQ出力は、ROM110に格納されていないコードが実行されるときにはいつでもROMがディセーブルされるように、MOSFET426のゲートを駆動する。
【0020】
EEPROMセキュリティ回路600(図6)は、EEPROM109の動作を選択的にイネーブルする。この回路は、バス203を介してプログラム・カウンタ204に接続された比較器601を含む。この比較器は、プログラム・カウンタ・アドレスをROM110(図1)のアドレス・レンジと比較する。プログラム・カウンタ・アドレスがROMアドレス・レンジ内の場合、比較器の出力は高論理レベルを有する。比較器の出力は、コンダクタ604を介して論理回路606に接続される。また、論理回路は、コンダクタ602上でEEPROMリード/ライト(R/W)信号を受ける。EEPROM R/W信号は、マイクロコントローラによって内部生成され、CPUがEEPROMから読み出し中か書き込み中であることを示す。論理回路606の出力は、コンダクタ120を介してEEPROM109に接続される。論理回路は、プログラム・カウンタが内部ROM110のアドレスのレンジ内の場合に、ライト・サイクルについてのみEEPROMをイネーブルする。そのため、EEPROMは、内部ROM110に格納された命令を実行中の際にのみプログラムできる。あるいは、論理回路606は、プログラム・カウンタ204がROMアドレス・レンジ内でない場合には必ずEEPROMをディセーブルできる。これは、マイクロコントローラがROM110内のプログラムを実行していないときに、EEPROMが読み出されたり、書き込まれることを防ぐ。
【0021】
ROMおよびEEPROMセキュリティ論理について、ディスクリート回路を利用して構成されるものとして説明してきたが、当業者であれば、この論理は好ましくはマイクロコントローラ・チップ内に集積されることが理解される。また、セキュリティ論理116は、デジタル・プロセッサを利用して構成できることも想定される。デジタル・プロセッサを利用した場合、デジタル・プロセッサは、図7のブロック700に示すように、プログラム・カウンタ204のアドレスが機密動作レンジ内であるかどうかを判定する。プログラム・カウンタが機密アドレス・レンジ内でない場合、プロセッサはブロック703に示すように内部ROM110をイネーブルする。これは、ROM110がディセーブルされた後にマイクロコントローラ100が非機密アドレス・レンジに戻った場合に、ROM110がイネーブルされることを保証する。次に、デジタル・プロセッサは、ブロック702に示すように、次のプログラム・カウンタ(PC)アドレスにて命令を入力する。プログラム・カウンタが機密アドレス・レンジ内にない場合、デジタル・プロセッサは、判定ブロック704に示すように、プログラム・カウンタ・アドレスが機密アドレス・レンジの開始アドレス内にあるかどうかを判定する。開始アドレス内にない場合には、プロセッサはブロック706に示すようにROMをディセーブルする。アドレスが第1アドレスである場合、プロセッサは、プログラム・カウンタが機密動作のままである限り、ブロック708に示すようにアドレスを入力し、プログラム・カウンタ・アドレスが機密アドレス・レンジ内であるかどうかを判定することにより、ROMをイネーブルし続ける。プログラム・カウンタ・アドレスが機密アドレス・レンジ内でなくなると、プロセッサはブロック702に進む。
【0022】
図8は、デジタル・プロセッサを利用して、内部ROM命令が実行されないときに必ず内部ROM110をディセーブルするように構成されるセキュリティ論理116のプログラムを示す。ブロック800において判定されるように、プログラム・カウンタ204のアドレスが機密アドレス・レンジ内にない場合、プロセッサはブロック802に示すようにROM110をディセーブルする。プロセッサは、ブロック804に示すように、プログラム・カウンタ204の次のアドレスを入力する。プロセッサは、プログラム・カウンタがROMアドレス・レンジ内になるまで、ROM110をディセーブルしたまま動作し続ける。プログラム・カウンタ204のアドレスがROMアドレス・レンジ内であると判定されると、判定ブロック806に示すように、プロセッサは、プログラム・カウンタ・アドレスが機密動作の開始アドレスであるかどうかを判定する。開始アドレスでない場合、デジタル・プロセッサは判定ブロック800に戻る。プログラム・カウンタ204のアドレスが機密動作の開始アドレスである場合、プロセッサはブロック808に示すようにROM110をイネーブルする。プロセッサは、ブロック810においてアドレスを入力し、かつ判定ブロック812においてプログラム・カウンタ・アドレスが機密アドレス・レンジ内であるかどうかを判定することによって判定されるように、プログラム・カウンタが機密動作のままである限り、ROMをイネーブルし続ける。プログラム・カウンタ・アドレスが機密アドレス・レンジ内でなくなると、プロセッサはブロック802で示すようにROMをディセーブルする。
【0023】
以上、マイクロコントローラ用の改善されたセキュリティが開示されることがわかる。改善されたセキュリティは、マイクロコントローラの複雑性またはコストを実質的に増加せずに、マイクロコントローラに格納された情報について提供される。
【図面の簡単な説明】
【図1】拡張バスを有するマイクロコントローラを示す、ブロック図形式の回路図である。
【図2】図1によるマイクロコントローラ用のセキュリティ論理を示す、ブロック図形式の回路図である。
【図3】セキュリティ論理の別の実施例を示す、ブロック図形式の回路図である。
【図4】図3による回路用の電源回路を示す回路図である。
【図5】図4のRSフリップフロップの論理テーブルである。
【図6】図2のセキュリティ論理における別の回路を示す、ブロック図形式の回路図である。
【図7】プロセッサ実施セキュリティ論理(processor implemented security logic)を採用する別の実施例を示すフローチャートである。
【図8】プロセッサ実施セキュリティ論理を採用する別の実施例を示すフローチャートである。
【符号の説明】
100 マイクロコントローラ
102 中央処理装置(CPU)
104 アドレス・バス
106 データ・バス
108 RAM
109 EEPROM
110 ROM
112 外部ポート
114 外部拡張バス
116 セキュリティ論理
118,120 コンダクタ
119 内部コントローラ
202 カレント・アドレス比較器
203,205 バス
204 プログラム・カウンタ
206 機密アドレス・レンジ・レジスタ
210 前回アドレス比較器
212 前回プログラム・カウンタ・アドレス・レジスタ
214,220 バス
216 第1アドレス比較器
218 第1アドレス・レジスタ
224,226,228 コンダクタ
230 論理回路
302 電源回路
304,306 コンダクタ
310 コンダクタ
318 コンダクタ
402 RSフリップフロップ
404 インバータ
408 ANDゲート
410 ORゲート
426 MOSFETスイッチ
600 EEPROMセキュリティ回路
601 プログラム・カウンタ
602,604 コンダクタ
606 論理回路

Claims (7)

  1. アドレス・バス;
    データ・バス;
    前記アドレス・バスと、前記データ・バスに接続され、外部メモリに結合する外部アドレス・ポート;
    機密アドレス・レンジに機密動作のための命令を格納する内部ROMであって、前記機密アドレス・レンジは開始アドレスを含む、内部ROM;および
    前記データ・バス,前記アドレス・バスおよび前記内部ROMに結合された内部コントローラであって、前記内部コントローラは、前記内部ROMの機密アドレス・レンジに格納された命令を実行することによって前記機密動作のための命令を実行するものであるが、前記内部コントローラは、前記機密動作のための命令の実行が、前記開始アドレスから開始されるのではない場合、前記命令の実行を阻止する、内部コントローラ;
    によって構成されることを特徴とするマイクロコントローラ。
  2. 前記内部コントローラは、セキュリティ論理と、前記セキュリティ論理に結合されたCPUとを含むことを特徴とする請求項1記載のマイクロコントローラ。
  3. 前記CPUは、プログラム・カウンタを含み、前記セキュリティ論理は、前記プログラム・カウンタに結合され、前記CPUを監視し、前記プログラム・カウンタのカレント・アドレスが前記機密アドレス・レンジ内にあるかどうかを判定することを特徴とする請求項2記載のマイクロコントローラ。
  4. 前記セキュリティ論理は、前記プログラム・カウンタの前回アドレスを前記機密アドレス・レンジと比較する回路と、前記カレント・アドレスを前記開始アドレスと比較する回路とを含み、
    前記カレント・アドレスが前記機密アドレス・レンジ内の場合に、前記前回アドレスは前記機密アドレス・レンジ内ではなく、かつ前記カレント・アドレスは前記開始アドレスではないとき、前記内部コントローラは、前記機密アドレス・レンジ内の命令を実行しないことを特徴とする請求項3記載のマイクロコントローラ。
  5. 前記マイクロコントローラは内部EEPROMを含み、
    前記セキュリティ論理はEEPROMセキュリティ論理を含み、
    前記CPUはプログラム・カウンタを含み、
    前記EEPROMセキュリティ論理は、前記プログラム・カウンタのカレント・アドレスを前記内部ROMのアドレス・レンジと比較する回路を含み、前記CPUが前記内部ROMのアドレス・レンジ内のコードを実行していない場合に前記内部EEPROMのプログラミングをディセーブルする
    ことを特徴とする請求項記載のマイクロコントローラ。
  6. 電源と前記内部ROMとの間に接続されたスイッチであって、前記スイッチは、前記内部コントローラに結合され、前記内部コントローラによって制御されて、電源を前記内部ROMに選択的に供給し、前記スイッチは前記内部コントローラ,前記電源および前記内部ROMに結合され、前記スイッチは前記内部ROMから前記電源を遮断して前記内部ROMをディセーブルするスイッチをさらに含んで構成されることを特徴とする請求項1記載のマイクロコントローラ。
  7. 前記内部コントローラ,電源および前記内部ROMに結合されたスイッチをさらに含んで構成され、前記内部ROMは前記スイッチを介して給電され、前記スイッチは前記内部ROMから前記電源を遮断して前記内部ROMをディセーブルすることを特徴とする請求項1記載のマイクロコントローラ。
JP28313196A 1995-10-06 1996-10-04 内部メモリへのアクセスを制限するマイクロコントローラ Expired - Fee Related JP4312272B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US53991495A 1995-10-06 1995-10-06
US539914 1995-10-06

Publications (2)

Publication Number Publication Date
JPH09171488A JPH09171488A (ja) 1997-06-30
JP4312272B2 true JP4312272B2 (ja) 2009-08-12

Family

ID=24153176

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28313196A Expired - Fee Related JP4312272B2 (ja) 1995-10-06 1996-10-04 内部メモリへのアクセスを制限するマイクロコントローラ

Country Status (2)

Country Link
US (1) US5809544A (ja)
JP (1) JP4312272B2 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0898747B1 (en) * 1996-11-15 2008-01-09 Nxp B.V. A protection method against eeprom-directed intrusion into a mobile communication device that has a processor, and a device having such protection mechanism
US5954817A (en) * 1996-12-31 1999-09-21 Motorola, Inc. Apparatus and method for securing electronic information in a wireless communication device
US5893923A (en) * 1997-05-12 1999-04-13 Lexmark International, Inc. Microcontroller utilizing a circuit to select during reset process an internal or external memory as base memory
US5987557A (en) * 1997-06-19 1999-11-16 Sun Microsystems, Inc. Method and apparatus for implementing hardware protection domains in a system with no memory management unit (MMU)
US6304970B1 (en) * 1997-09-02 2001-10-16 International Business Mcahines Corporation Hardware access control locking
US6003133A (en) * 1997-11-17 1999-12-14 Motorola, Inc. Data processor with a privileged state firewall and method therefore
US6339815B1 (en) * 1998-08-14 2002-01-15 Silicon Storage Technology, Inc. Microcontroller system having allocation circuitry to selectively allocate and/or hide portions of a program memory address space
WO2000010074A1 (en) * 1998-08-14 2000-02-24 Silicon Storage Technology, Inc. Microcontroller having allocation circuitry to selectively allocate and/or hide portions of a program memory address space
US6505279B1 (en) * 1998-08-14 2003-01-07 Silicon Storage Technology, Inc. Microcontroller system having security circuitry to selectively lock portions of a program memory address space
US6615324B1 (en) 2000-01-07 2003-09-02 Cygnal Integrated Products, Inc. Embedded microprocessor multi-level security system in flash memory
ES2180391B1 (es) * 2000-09-25 2003-12-16 Telesincro S A Circuito integrado.
JP2004013556A (ja) * 2002-06-07 2004-01-15 Matsushita Electric Ind Co Ltd プロセッサ装置、コンパイル装置及びその方法
US7117398B2 (en) * 2002-11-22 2006-10-03 Texas Instruments Incorporated Program counter range comparator with equality, greater than, less than and non-equal detection modes
EP1783649A1 (fr) * 2005-10-10 2007-05-09 Nagracard S.A. Microprocesseur sécurisé avec vérification des sauts
GB2442023B (en) * 2006-09-13 2011-03-02 Advanced Risc Mach Ltd Memory access security management
JP5070137B2 (ja) * 2008-06-05 2012-11-07 ローム株式会社 記憶装置及びデータ書込装置
JP5070136B2 (ja) * 2008-06-05 2012-11-07 ローム株式会社 記憶装置
JP2010211388A (ja) * 2009-03-09 2010-09-24 Canon Inc 検索装置及び検索方法
JP5784656B2 (ja) * 2013-02-22 2015-09-24 株式会社東芝 マイクロプロセッサ
US20160378691A1 (en) * 2015-06-25 2016-12-29 Intel Corporation System, apparatus and method for protecting a storage against an attack

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4087856A (en) * 1976-06-30 1978-05-02 International Business Machines Corporation Location dependence for assuring the security of system-control operations
FR2401459A1 (fr) * 1977-08-26 1979-03-23 Cii Honeywell Bull Support d'information portatif muni d'un microprocesseur et d'une memoire morte programmable
JPS5694451A (en) * 1979-12-27 1981-07-30 Fujitsu Ltd Microprocessor incorporating memory
JPS5745636A (en) * 1980-08-29 1982-03-15 Hitachi Ltd Control processing system for character pattern
US4590552A (en) * 1982-06-30 1986-05-20 Texas Instruments Incorporated Security bit for designating the security status of information stored in a nonvolatile memory
JPS6068441A (ja) * 1983-09-22 1985-04-19 Fujitsu Ltd ワンチツプ・マイクロ・コンピユ−タ
JPH0738187B2 (ja) * 1984-03-23 1995-04-26 株式会社日立製作所 Lsiに構成されたマイクロコンピュータ
US4698750A (en) * 1984-12-27 1987-10-06 Motorola, Inc. Security for integrated circuit microcomputer with EEPROM
JPS6341163A (ja) * 1986-08-06 1988-02-22 Nec Corp 印字装置
JPS6376095A (ja) * 1986-09-19 1988-04-06 Matsushita Electric Ind Co Ltd Icカ−ド
JP2569514B2 (ja) * 1986-12-12 1997-01-08 株式会社日立製作所 情報処理装置
JPS63163929A (ja) * 1986-12-26 1988-07-07 Nec Corp マイクロプロセツサ
JPH0740244B2 (ja) * 1987-08-05 1995-05-01 三菱電機株式会社 マイクロプロセツサ
US5134700A (en) * 1987-09-18 1992-07-28 General Instrument Corporation Microcomputer with internal ram security during external program mode
JP3023425B2 (ja) * 1987-10-09 2000-03-21 株式会社日立製作所 データ処理装置
JP2589713B2 (ja) * 1987-11-20 1997-03-12 株式会社日立製作所 データプロセッサ及びデータ処理システム
JPH0724029B2 (ja) * 1988-04-13 1995-03-15 日本電気株式会社 エミュレーション装置
US5014191A (en) * 1988-05-02 1991-05-07 Padgaonkar Ajay J Security for digital signal processor program memory
JPH0758502B2 (ja) * 1988-06-30 1995-06-21 三菱電機株式会社 Icカード
JP2501874B2 (ja) * 1988-06-30 1996-05-29 三菱電機株式会社 Icカ―ド
JPH02219149A (ja) * 1989-02-20 1990-08-31 Nec Corp マイクロプロセッサ内蔵のメモリカード
JPH0711793B2 (ja) * 1989-07-13 1995-02-08 株式会社東芝 マイクロプロセッサ
US5210841A (en) * 1990-01-30 1993-05-11 Advanced Micro Devices, Inc. External memory accessing system
US5379443A (en) * 1990-02-09 1995-01-03 Intel Corporation Microprocessor providing encoded information on byte enable lines indicating whether reading code or data, location of code/data on data lines, and bit width of code/data
US5247621A (en) * 1990-09-26 1993-09-21 Advanced Micro Devices, Inc. System and method for processor bus use
US5251304A (en) * 1990-09-28 1993-10-05 Motorola, Inc. Integrated circuit microcontroller with on-chip memory and external bus interface and programmable mechanism for securing the contents of on-chip memory
US5276839A (en) * 1991-03-07 1994-01-04 United States Of America As Represented By The Secretary Of The Air Force System for programming EEPROM with data loaded in ROM by sending switch signal to isolate EEPROM from host system
US5333295A (en) * 1991-04-11 1994-07-26 Dallas Semiconductor Corp. Memory control system
GB9109301D0 (en) * 1991-04-30 1991-06-19 Motorola Israel Ltd Electronic equipment
DE4115152C2 (de) * 1991-05-08 2003-04-24 Gao Ges Automation Org Kartenförmiger Datenträger mit einer datenschützenden Mikroprozessorschaltung
JPH0546473A (ja) * 1991-08-13 1993-02-26 Oki Electric Ind Co Ltd マイクロプロセツサにおけるメモリ空間拡張回路
FR2683357A1 (fr) * 1991-10-30 1993-05-07 Philips Composants Microcircuit pour carte a puce a memoire programmable protegee.
JPH0612321A (ja) * 1992-06-26 1994-01-21 Oki Electric Ind Co Ltd 書換可能メモリのオンボード書換回路
US5557743A (en) * 1994-04-05 1996-09-17 Motorola, Inc. Protection circuit for a microprocessor

Also Published As

Publication number Publication date
JPH09171488A (ja) 1997-06-30
US5809544A (en) 1998-09-15

Similar Documents

Publication Publication Date Title
JP4312272B2 (ja) 内部メモリへのアクセスを制限するマイクロコントローラ
US5892826A (en) Data processor with flexible data encryption
US5737760A (en) Microcontroller with security logic circuit which prevents reading of internal memory by external program
US5446864A (en) System and method for protecting contents of microcontroller memory by providing scrambled data in response to an unauthorized read access without alteration of the memory contents
EP0851358B1 (en) Processing system security
JP3710671B2 (ja) 1チップマイクロコンピュータ及びそれを用いたicカード、並びに1チップマイクロコンピュータのアクセス制御方法
US4590552A (en) Security bit for designating the security status of information stored in a nonvolatile memory
US5199032A (en) Microcontroller having an EPROM with a low voltage program inhibit circuit
JP3461234B2 (ja) データ保護回路
JP3023425B2 (ja) データ処理装置
US8607061B2 (en) Flash device security method utilizing a check register
JPH0812646B2 (ja) 半導体集積回路
JPH04262438A (ja) プログラム可能な制御対象セキュリティ機能を有するメモリを具備したデータ・プロセッサ
EP0614550A1 (en) Self-programming microcontroller with stored instruction to command program from external memory
JPH1050078A (ja) 電気的に消去およびプログラムが可能なリード・オンリ・メモリの消去およびプログラミング保護方法および装置
EP0109504A2 (en) Protection system for storage and input/output facilities and the like
US20080034150A1 (en) Data processing circuit
KR19980054349A (ko) 옵션 자동 설정 회로
JPH11184724A (ja) インサーキットエミュレータ及び半導体集積回路
KR930011347B1 (ko) 이동체 단말기의 전원 온/오프에 의한 불휘발성 메모리 오동작 보호회로
JP3912447B2 (ja) メモリシステムおよび外部不揮発メモリの使用方法
JPH05341970A (ja) 制御装置
JPH0269844A (ja) メモリのページ切換方式
JPS63106833A (ja) デ−タ処理装置
JPH0373042A (ja) メモリを内蔵した半導体集積回路

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070925

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20071225

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20071228

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080125

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080201

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080325

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080402

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20080708

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090225

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20090317

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

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

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

Free format text: PAYMENT UNTIL: 20120522

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120522

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

Free format text: PAYMENT UNTIL: 20120522

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20130522

Year of fee payment: 4

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20130522

Year of fee payment: 4

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20130522

Year of fee payment: 4

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

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees