JP2009505303A - 組み込みメモリ保護 - Google Patents

組み込みメモリ保護 Download PDF

Info

Publication number
JP2009505303A
JP2009505303A JP2008527571A JP2008527571A JP2009505303A JP 2009505303 A JP2009505303 A JP 2009505303A JP 2008527571 A JP2008527571 A JP 2008527571A JP 2008527571 A JP2008527571 A JP 2008527571A JP 2009505303 A JP2009505303 A JP 2009505303A
Authority
JP
Japan
Prior art keywords
memory
microcontroller
test interface
reset
state
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.)
Withdrawn
Application number
JP2008527571A
Other languages
English (en)
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.)
NXP BV
Original Assignee
NXP BV
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 NXP BV filed Critical NXP BV
Publication of JP2009505303A publication Critical patent/JP2009505303A/ja
Withdrawn 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

Abstract

本発明の一実施例は、組み込みメモリ(46)と、プログラマブルプロセッサ(32)と、テストインターフェース(34)とを含む。メモリ(46)はテストインターフェース(34)を介してアクセス可能である。このマイクロコントローラ(30)のリセットに応答して、カウンタが始動され、テストインターフェース(34)がディセーブル状態に初期設定されるとともに、開始プログラムが実行される。カウンタが所定の値に到達する前に、プロセッサによる開始プログラムコードの実行によってその後のマイクロコントローラの動作中にディセーブル状態が付与されないかぎり、カウンタの所定値到達時に、テストインターフェース(34)がイネーブル状態に変更されてテストインターフェースを介する埋め込みメモリへのアクセスが許可される。

Description

本発明は、電子デバイスに関し、特にJATGポートを介するマイクロコントローラの組み込みメモリへのアクセスの制御に関するものであるが、これに限定されない。
集積回路がセキュリティコンシャスアプリケーションにますます適用されるにつれて、集積回路のセキュリティに関心が高まっている。このようなアプリケーションのいくつかの例は、スマートカード、携帯電話及び他の無線通信デバイス、インターネット通信システムなどである。集積回路の一つ以上の部分への不正アクセスを保護する必要がしばしばある。これらのデバイス内のプログラミングコンテンツ又は他のメモリコンテンツへの不正アクセスは特に多くのアプリケーション/プログラムデベロッパが懸念している。
同時に、集積回路に対する情報の入力及び出力に関する許可に関心がもたれている。多くの場合、所定の集積回路をテストし、エミュレートし、デバグするために情報の入力/出力(I/O)が必要とされる。集積回路のデバグ、エミュレーション及び/又はテスト目的に使用される一つの共通標準はJTAG(Joint Test Action Group)IEEE (Institute of Electrical and Electronic Engineers) 1194.1 test access port and boundary scan architectureである。標準JATGインターフェースに加えて、集積回路用の種々の他のデバグ、エミュレーション及び/又はテストインターフェースがある。残念ながら、JTAG又は他の所望のインターフェースのための入力/出力端子は集積回路への不正アクセスパスを与える。その結果、集積回路へのアクセスを保護する必要性と、デバグ、エミュレーション及び/又はテスト機能を提供する必要性が競合する場合がしばしばある。従って、この技術分野には更なる改善が要求されている。
本発明の一つの態様は、集積回路へのアクセスを保護するユニークな技術である。本発明の他の態様は、集積回路の組み込みメモリへのアクセスを制御するデバイス、方法、システム及び装置である。
一つの実施態様では、組み込みメモリと、プログラマブルプロセッサと、前記メモリおよびプロセッサに動作可能に結合されたテストインターフェースとを含むマイクロコントローラをリセットする。このリセットに応答して、テストインターフェースを介する前記メモリへのアクセスをディセーブルし、その後、前記メモリに格納されているコード(以後リセットコードという)の実行を前記プロセッサで開始させる。リセットコードの実行がその後のマイクロコントローラ動作に対してテストインターフェースのディセーブルの続行を設定しない限り、テストインターフェースを介する前記メモリへのアクセスをその後可能にする。
本発明の他の実施態様では、組み込みメモリと、プログラマブルプロセッサと、前記メモリおよびプロセッサに動作可能に結合されたテストインターフェースとを含むマイクロコントローラの動作を開始させ、
前記動作の開始に応答して、カウンタを始動させ、前記テストインターフェースを初期ディセーブル状態に設定して前記テストインターフェースを介する前記メモリへのアクセスをディセーブルし、開始コードを前記プロセッサで実行させ、
前記カウンタが所定のカウント状態に到達したとき、前記開始コードの実行によって、前記カウンタが所定のカウント状態に到達する前に、その後のマイクロコントローラ動作に対して前記ディセーブルの続行が設定されない限り、前記テストインターフェースをイネーブル状態に変化させてメモリアクセスを許可する。
本発明の更に他の実施態様は、プロセッサと、前記プロセッサに動作可能に結合された組み込みメモリと、前記プロセッサおよび前記メモリに動作可能に結合されたマイクロコントローラテストインターフェースとを含むマイクロコントローラ集積回路を備える装置である。前記マイクロコントローラは、リセット信号に応答して、リセットオペレーティングロジックを実行して前記テストインターフェースの初期ディセーブル状態をセットするとともに、カウンタを始動する。前記初期ディセーブル状態は、前記テストインターフェースを介する前記メモリへのアクセスを阻止する。前記プロセッサは、前記初期ディセーブル状態中に、前記メモリに格納されたリセット開始コードを実行して、リセット後のマイクロコントローラ動作に対して前記メモリアクセスディセーブルの続行を選択的に設定することができる。前記リセットオペレーティングロジックは、前記カウンタが前記所定のカウント状態に到達する前に、前記プロセッサによる前記開始コードの実行によって前記メモリアクセスディセーブルの続行状態が設定されない限り、前記所定のカウント状態への到達に応答して前記テストインターフェースのイネーブル状態を設定して、リセット後のマイクロコントローラ動作中前記テストインターフェースを介するメモリアクセスを可能にする。
本発明の更に他の実施態様では、組み込みメモリと、プログラマブルプロセッサと、前記メモリおよびプロセッサに動作可能に結合されたテストインターフェースとを含むマイクロコントローラの初期動作を開始させるステップと、
前記マイクロコントローラの初期動作中に、前記テストインターフェースを、前記テストインターフェースを介する前記メモリへのアクセスをディセーブルする初期ディセーブル状態に設定し、
前記初期ディセーブル状態中に、前記メモリに格納されている開始コードの少なくとも一部分を前記プロセッサで実行させ、前記テストインターフェースのディセーブル続行状態を選択的に設定し、
前記ディセーブル続行状態が前記開始コードに実行により設定されない限り、前記初期動作後も前記テストインターフェースを介するメモリアクセスをマイクロコントローラ動作のためにイネーブルし、
前記ディセーブル続行状態は前記初期動作後の前記マイクロコントローラ動作中も前記テストインターフェースを介するメモリアクセスを許可しない。一例では、前記開始コードは第1部分と第2部分を含み、前記初期ディセーブル状態の設定は前記第1部分を実行することによって達成され、前記開始コードの実行は前記第2部ブロックの実行を含む。
本発明の更に他の実施態様では、組み込みメモリと、プログラマブルプロセッサと、前記メモリおよびプロセッサに動作可能に結合されたテストインターフェースとを含むマイクロコントローラをリセットし、
前記リセットに応答して、前記メモリに格納されているリセットコードを実行し、前記メモリの内容をリセット後のマイクロコントローラ動作中保護すべく前記テストインターフェースを介する前記メモリへのアクセスをディセーブルし、
リセット後のマイクロコントローラ動作中、前記テストインターフェースを介する前記メモリへのアクセスをイネーブルにすべく前記メモリの内容を変更する。
本発明の一つの目的は集積回路の組み込みメモリの内容へのアクセスを制御するユニークなデバイス、方法、システム又は装置を提供することにある。
本発明の他の目的、実施例、形態、特徴及び利点は本明細書及び図面の記載から明らかになる。
本発明は種々の形態に具体化できるが、本発明の原理の理解を促進するために、本発明の原理を、図面に示す実施例について、特定の用語を用いて以下に説明するが、この説明は本発明の範囲を何ら限定するものではない。ここに記載される実施例における種々の代替及び本発明の原理の他の応用が当業者に可能である。
本発明の一実施例は、プロセッサと、プロセッサに動作可能に結合された埋め込みメモリと、プロセッサ及びメモリに動作可能に接続されたマイクロコントローラテストインターフェースとを含むマイクロコントローラ集積回路を備える。マイクロコントローラは、リセット信号に応答して、リセット開始コードを実行し、このリセット開始コードは、テストインターフェースのリセットディセーブル状態を設定すること、及び自由選択(オプション)でテストインターフェースの更なるディセーブル状態(即ちディセーブル状態の続行)を設定することを含む。マイクロコントローラは、リセット開始コードの実行によってディセーブル状態の続行が前もって設定されない限り、その後の動作中テストインターフェースの状態をテストインターフェースを介するメモリアクセスについてイネーブル状態にする。
図1は、集積回路システム20の形態の別の実施例を示す。システム20は集積回路24に動作可能に結合されたテスト装置22を含む。集積回路24はマイクロコントローラ30を提供するように構成される。マイクロコントローラ30はプロセッサ32とテストインターフェース34を含む。ここで使用する「テストインターフェース」は、一以上の設定されたプロトコルに従って試験やデバグやエミュレーション又はそれらの組み合わせを提供する任意の集積器回路インターフェースを広く示す。所定のテストインターフェースは専用の端子を介してアクセスでき、また対応する集積回路の一以上の他のインターフェース、デバイスなどと共通の端子を介してアクセスできる。一実施例では、インターフェース34はJTAG標準に準拠する。その代わりに、またはそれに加えて、異なるテストインターフェースプロトコルを使用できる。フィリップスセミコンダクターズモデルLPC2114及びLPC2124はJTAGA及びエミュレーショントレースポート機能を有するマイクロコントローラデバイスの例であるが、これらに限定されない。
マイクロコントローラ30へのバイナリリセット入力36も図1に示されている。対応するリセット信号はマイクロコントローラ30の動作をリセットし、所定のデフォルトをプロンプトし、所定のブートアップメモリ位置で開始するプログラムの実行を指示する。リセット状態に応答して、マイクロコントローラ32は図2に関連して後述するリセット初期化を実行する。この初期化はプログラミング命令、ハードウエア、又はそれらの組み合わせで実施できる。
プロセッサ32はさらにローカルパス40に結合され、組み込みスタティックランダムアクセスメモリ(SRAM)42および埋め込み不揮発性フラッシュメモリ44への双方向アクセスを提供する。バス40はSRAMメモリ42及び/又はフラッシュメモリ44にメモリ制御ロジック(図示せず)などを介して結合できる。メモリ44は、通常マイクロコントローラの動作中にプロセッサ32で実行されるプログラム命令を格納するのに使用される。メモリ44は、一以上の入力ポート(例えばシリアル通信ポート)を介してプログラムされ、バルク消去コマンドに応答してその内容を消去するように構成されている。メモリ44の消去は、種々の実施例において、外部信号、内部信号またはその両方に応答させることができる。SRAM42は必要に応じデータ及びコードストレージに使用される。SRAM42とメモリ44はまとめて埋め込みマイクロコントローラメモリ46という。
マイクロコントローラ30は、種々の入力デバイス、出力デバイス、入力/出力(I/O)デバイス及び/又は種々の専用内部デバイスを含み、これらはまとめて52で示されている。高速内部バス50がプロセッサ32及びデバイス52に結合され、それらの間の選択的な双方向通信を提供している。一つの特定の例では、デバイス52はインターフェースブリッジ(図示せず)を介してバス50に結合される。デバイス52は、一以上のタイマ、リアルタイムクロック、アナログ−ディジタル(A/D)コンバータ、ディジタル−アナログ(D/A)コンバータ、汎用I/Oピン(GPIO)、汎用非同期送受信回路(UART)インターフェース及び/又は種々の他のシリアル通信ポート、外部割込みパス、パルス幅変調出力などを含むことができる。バス50には割り込み制御ロジック54も結合される。割り込み制御ロジック54はマイクロコントローラ30と関連する内部及び外部割込みを管理する。
テスト装置22は、マイクロコントローラ30のインターフェース34を介して適切な試験、デバグ及び/又はエミュレーションを行うように構成されたタイプのものである。例えば、JTAG形態のインターフェース34の場合、テスト装置22は多数の標準タイプのJTAGデバイスの任意のものとすることができる。テスト装置22を介するマイクロプロセッサ30へのアクセスは多くの場合初期製造中、試験中及び開発中に必要とされるが、メモリ42及び/又は44に格納されたデータ(例えばプログラム)への不正アクセスは多くの場合プログラム部分が消費者への製品に設けられてからの心配事である。実際には、競争者がこのようなプログラム部分の読み出し又はこのようなプログラム部分へのアクセスをできなくする手段を講じることが多くの場合望ましい。従って、マイクロコントローラ30は、リセット時に適切なオペレーティングロジックによって、プログラム開発者にメモリへのアクセスをディセーブルするかしないかのオプションを与えるように構成される。このオプションはユーザ定義プログラムにより実行されるため、テストインターフェースを介するメモリアクセスのディセーブルは、所望の試験/デバグ/エミュレーションが未プログラム部分の製造者及び/又はサプライヤの満足のいくように実行されるまで、実施する必要はない。
マイクロコントローラ30のテストインターフェース34をオプションでディセーブルし得る一つの非限定的な実施例を図2のフローチャートに示す手順120と関連して説明する。この特定の実施例では、テストインターフェース34はJTAGプロトコルに準拠するが、他の実施例では、その代わりに又はそれに加えて、異なるプロトコルを提供できることを理解すべきである。手順120と関連する処理の少なくともいくつかはマイクロコントローラ30のオペレーティングロジックにより実行され、このオペレーティングロジックは、専用ハードウエアの形で、ハードウエア又はファームウエアマイクロコントローラ命令の形で、変更可能なメモリ格納マイクロコントローラ命令の形で、及び/又は、当業者に考えられる他の形で設けることができる。
手順120は処理122で始まり、この処理ではリセット状態が開始される。処理122では、リセット入力36における対応する変化によってバイナリロジックリセット信号がセットされアクティブになる。非限定的な例として、リセット信号は、パワーダウン/パワーオンサイクルから生じるもの(パワーオンリセットPOR)、又は節電状態中に起こるような、電源電圧が所定のしきい値以下になるときに生じるもの(節電リセットBOR)がある。
リセットが処理122で開始されると、手順120は処理124に続き、この処理は、対応するリセット信号が「開放」される前、即ちリセット信号がその不活性状態に戻る前に実行される。処理124では、インターフェース34のJTAGタイプに対応して、論理JTAGディセーブルフラグDIS−JTAGがセットされ、DIS−JTAG=1になる。処理124でこのフラグがセットされると(DIS−JTAG=1)、インターフェース34のJTAG機能が最初にディセーブルされる。この機能をディセーブルすることにより、マイクロコントローラ30のJTAG制御が阻止され、インターフェース34を介してメモリ42又はメモリ44へアクセスすることができなくなる。この初期ディセーブル状態は、リセット状態に応答してマイクロコントローラ30のオペレーティングロジックにより達成され、さもなければリセット中に生じるかもしれないメモリ読み出しウインドウが除去される。
処理124から、手順120は条件判断126に続く。条件判断126は、リセット信号が開放されたか否かを検査する。リセット信号が開放されていない場合には、検査の否定(誤)出力に応答して、条件判断126はループバックして、肯定(真)出力が生じるまで繰り返す。肯定結果が生じたら、手順120は処理128で始まるリセット開始に入る。処理128では、マイクロコントローラ30のための初期リセット期間を計測するディジタルカウンタCNTRが始動される。
処理128から、手順120は処理130に続く。処理130では、プロセッサ32がメモリ44内の予約されたリセット開始位置を指示する。自由選択(オプション)の「ブートブロック」のプログラム命令(コード)がメモリ44内のこの予約位置から適切に格納されている場合、その実行が処理130で行われる。このコードはプロセッサ32で実行されるリセット開始を規定する。このようなリセット開始コードは、図示の実施例では指定されたメモリアドレス範囲に対応する連続するメモリ位置の「ブロック」として格納される。代案として、コードはメモリ42及び/又はメモリ44内の予約された又は予約されてない2つ以上の不連続な位置に格納することもできる。非限定的な例として、予め決められたリセット開始位置を間接アドレッシングなどで格納リセットルーチンを指示することもできる。一般に、リセット開始コードはマイクロコントローラ30のOEM(相手先商標製品製造会社)により指定される。
リセット開始コードの実行中は、手順120の条件判断132が時々実行され、処理128で始動されたカウンタCNTRが所定のカウント状態に到達したか検査する。この所定の状態は、リセット開始コード(存在するとき)の実行時間の少なくとも初期部分に相当するリセット遅延を与えるように選択された期間に対応する。一例では、この所定のカウント状態は、条件判断132の各実行中におけるカウンタCNTRのディジタル出力に匹敵するディジタル決定値である。カウンタCNTRは、数例を挙げると、ハードウエアデバイス又は論理ソフトウエアの形で、マイクロコントローラ30内のタイマ(例えばデバイス52内に含まれるタイマ又はユーザアクセス不能の専用ハードウエア及び/又はソフトウエアタイマ)の形で、又は外部計数装置又はマイクロコントローラ30に供給されるカウンタ信号として設けることができる。処理128および条件判断132は図示の実施例ではマイクロコントローラのオペレーティングロジックによって実行される。
条件判断132の検査が否定(誤)であり、カウンタCNTRが所定のカウント状態に到達していない場合、条件判断132はループバックして、カウンタCNTRが所定のカウント状態に到達するまで繰り返す。この状態に到達すると、条件判断132の検査が肯定(真)となり、手順120は条件判断134に続く。条件判断134は、カウンタCNTRが所定のカウント状態に到達する前の処理130の間に、ブートブロックコード(存在するとき)又はリセット開始の実行によってセキュリティフラグEN−SECURITYがセットされたかを検査する。セキュリティフラグEN−SECURITYのセット(EN−SECURITY=1)はコードデベロッパにより規定されるリセット開始コードの実行により設定されるオプションである。一般に、このコードの開発はマイクロコントローラコンポーネントのOEMにより実行される。リセット開始コードの実行中に、セキュリティフラグEN−SEKURITYは多数の技術の何れかでセットでき、例えば外部信号入力、指定されたメモリ位置の内容、いくつかのメモリ位置のチェックサム、又は安全な他の処理/機能によりセットできる。
条件判断134の検査が否定(誤)である場合、即ち条件判断132が真になるまでの処理130のブートブロックの実行中に、セキュリティフラグEN_SECURITYがセットされなかった場合(En_SECURITY=0)、手順120は処理136に続く。処理136では、インターフェース34のJTAG機能がイネーブルされ、このテストインターフェースポートを介してメモリ42及び/又はメモリ44をアクセスする能力がイネーブルされる。処理136におけるインターフェース134のこのイネーブル状態は、処理124でセットされたインターフェース34の初期ディセーブル状態を有効に除去する。このとき、マイクロコントローラ30はステージ138においてリセット手順120からノーマル動作に進む又は戻る。
他方、条件判断134の検査が肯定(真)である場合、即ち条件判断132が真になるまでの処理130のブートブロックの実行中に、セキュリティフラグEN_SECURITYがイネーブルになった場合(En_SECURITY=1)、手順120は処理136を迂回して直接ステージ138に進む、処理136がバイアスされるために、インターフェース34のディセーブル状態はステージ138からの次のマイクロコントローラ動作中持続する。従って、手順120は、セキュリティフラグEN_SECURITYの肯定設定に対して、メモリアクセスを拒否するインターフェース34の更なるディセーブル状態(即ちディセーブル状態の続行)を設定することによって応答する。条件判断134および処理136は図示の実施例ではマイクロコントローラのオペレーティングロジックにより実行される。
処理138は、テスト/デバグインターフェース34がディセーブルにされたマイクロコントローラ30のその後の公称動作に対応する。手順120は処理136からも処理138を続け、対応するインターフェース34がイネーブル状態にあるマイクロコントローラ30のノーマル動作モードに戻り、ノーマル動作を開始する。
上述したテストインターフェース34及び/又はメモリアクセスのシステム又はイネーブル状態の設定は、設定される所定の状態に変化を与えることにより、又は対応する処置を省くことにより状態を存続させたり変えたりできるようにすることによって達成できる。手順120の特徴は、リセット時にインターフェース34を介するアクセスをディセーブルにしてリセット状態中にインターフェース34を介する不正アサーションを阻止することにある。初期ディセーブル状態は、手順120と関連して記載した実施例ではマイクロコントローラ30のオペレーティングロジックにより与えられるが、これはユーザコード(例えばユーザ指定リセットコード)により又は種々の方法で他の形で与えることができる。カウンタCNTRで遅延期間を設定することによって、ユーザ指定リセットプログラムブロックをインターフェース34のディセーブルの続行を選択的に開始させることができ、このようなイニシアティブがとられない場合にはインターフェース34はカウンタ遅延後にデフォルトでイネーブルにされる。リセット開始コードがない場合には、インターフェース34のこのデフォルト使用可能性もある。従って、リセット開始コードがない限り、及び/又はリセット開始コードがあってもセキュリティフラグEN_SECURITYがセットされない限り、マイクロコントローラ30の制御及び/又はアクセスを製造中、テスト中及び開発中にインターフェース34を介してJTAGオペレーションにより得ることができる。
まれではあるが、EN_SECURITYが予めセットされ(EN_SECURITY=1)インターフェース34を介するアクセスが名目上阻止されている、予めプログラムされたマイクロインターフェース30のテスト、デバグ、エミュレーションなどを実行することが望まれる場合がある。例えば、この望みは、プログラムされたマイクロコントローラ30が故障解析のためにプロダクト/コードデベロッパによりOEMへ戻されることに関連して生じる。この場合には、インターフェース34の続行されるディセーブル状態により保護されているメモリ内容を変更することによって、インターフェース34を介するアクセスを再設定することができる。非限定的な一例では、この変更はメモリ位置の内容を破壊するバルク消去コマンド又は入力信号により達成され、従ってこのような内容は不正アクセスから保護される。その代わりに、又はそれに加えて、この変更は、処理130中に格納されているリセット開始コードの一部分及び/又は関連する任意のメモリ位置を書き変えてセキュリティフラグEN_SECURITYをセットすることができる。ある場合においては、デバイス52に含まれるシリアル通信デバイスはメモリ42及びメモリ44に書き込み専用アクセスを提供し、このアクセスによりこのような変更を行うことができる。このようにすると、デバイスのテスト及びデバグが必要とされる間の任意の時間まで、メモリ42及びメモリ44の内容をプログラマの自由選択で保護でき、この場合にもテストインターフェースアクセスをイネーブルにするために必要とされる変更は、同時に、保護すべき内容を変更するため、保護が続くことになる。
本発明の多くの他の実施例が想定される。例えば、本発明の教示はマイクロコントローラ以外の他のタイプの集積回路に適用できる。その代わりに又はそれに加えて、他のタイプのメモリアクセス制御を使用できる。別の例は、組み込みメモリと、プログラマブルプロセッサと、前記メモリ及びプロセッサに動作可能に結合されたテストインターフェースとを含むマイクロコントローラを備える装置である。このマイクロコントローラは、更に、初期動作中前記テストインターフェースを介するメモリへのアクセスをディセーブルにすべく前記テストインターフェースの初期ディセーブル状態を設定する手段と、初期ディセーブル状態中に前記テストインターフェースのディセーブル状態の続行を自由選択で設定するために前記メモリに格納されているリセットコードの少なくとも一部分をプロセッサで実行する手段と、前記ディセーブル状態の続行が前記リセットコードの実行により設定されていない限り、前記初期動作後のマイクロコントローラ動作に対して前記テストインターフェースを介するメモリアクセスをイネーブルにする手段とを含む。前記ディセーブル状態の続行は、初期動作後のマイクロコントローラ動作中、メモリアクセスをイネーブルする。一例では、リセットコードは第1部分及び第2部分を含み、前記初期ディセーブル状態は第1部分を実行することにより達成され、前記リセットコード実行手段は第2部分を実行する。
更に別の例は、組み込みメモリと、プログラマブルプロセッサと、前記メモリ及びプロセッサに動作可能に結合されたテストインターフェースとを有するマイクロコントローラを含む装置である。このマイクロコントローラは、マイクロコントローラのリセット時に前記メモリに格納されているリセット開始コードをプロセッサで実行する手段を含む。前記開始コードは、リセット後のマイクロコントローラ動作中メモリ内容を保護するために、前記テストインダクタンスを介するメモリへのアクセスをディセーブルにするものである。マイクロコントローラは、更に、リセット後のマイクロコントローラ動作に対して前記テストインターフェースを介するメモリへのアクセスをイネーブルにするために前記メモリの内容を変更する手段を含む。
他の例では、装置は組み込みメモリと、プログラマブルプロセッサと、前記メモリ及びプロセッサに動作可能に結合されたテストインターフェースとを有するマイクロコントローラを含む。このマイクロコントローラは、マイクロコントローラの動作をリセットする手段と、前記リセット手段に応答してカウンタを始動させるとともに、開始プログラムを前記マイクロコントローラにより実行しながら前記テストインターフェースをリセットディセーブル状態に設定する手段手段と、前記カウンタが所定値に到達する前に前記マイクロコントローラがディセーブル状態の続行を設定するプログラムコードを実行しない限り、前記カウンタが所定値に到達する時、前記テストインターフェースをその後のマイクロコントローラ動作に対してイネーブル状態に変更する手段とを含む。
更に他の例では、装置は組み込みメモリと、プログラマブルプロセッサと、前記メモリ及びプロセッサに動作可能に結合されたテストインターフェースとを有するマイクロコントローラを含む。このマイクロコントローラは、リセット手段と、前記リセット手段に応答して前記テストインターフェースを介する前記メモリへのアクセスをディセーブル手段と、前記テストインターフェースがディセーブル手段でディセーブルされた後に前記メモリに格納されたリセット開始コードをプロセッサで実行する手段と、前記リセット開始プログラムの実行によってその後のマイクロコントローラ動作に対して前記テストインターフェースのディセーブルの続行が設定されない限り、前記テストインターフェースを介するメモリアクセスをイネーブルにする手段とを含む。
ここに述べたセオリー、動作メカニズム、プルーフ及び発見事項は本発明の理解を更に高めるためであり、本発明はこのようなセオリー、動作メカニズム、プルーフ及び発見事項に限定されるものではない。本発明は図面に示され発明の詳細な説明において詳細に説明されているが、これらの説明は単なる例示であって、本発明を限定するものではなく、選択された実施例が示され、説明されているに過ぎず、ここに特定される又は添付の特許請求の範囲で特定される本発明の範囲に含まれるすべての等価例、変更例及び変形例も保護されるべきである。
テスト装置に結合されたマイクロコントローラを含む集積回路システムの概略図である。 図1のシステムで実行できる本発明の方法の一つの手順を示すフローチャートである。

Claims (30)

  1. 組み込みメモリと、プログラマブルプロセッサと、前記メモリおよびプロセッサに動作可能に結合されたテストインターフェースとを含むマイクロコントローラをリセットするステップと、
    前記リセットに応答して、前記テストインターフェースを介する前記メモリへのアクセスをディセーブルするステップと、
    前記ディセーブル後に、前記メモリに格納されているリセットコードの実行を前記プロセッサで開始させ、前記リセットコードの実行によってその後のマイクロコントローラ動作に対して前記テストインターフェースのディセーブルの続行が設定されない限り、前記テストインターフェースを介する前記メモリへのアクセスをイネーブルにするステップとを備えることを特徴とするメモリ保護方法。
  2. 前記リセットコードの実行が開始される前にカウンタを始動させるステップを含むことを特徴とする請求項1記載の方法。
  3. 前記カウンタの出力値を所定値と比較し、前記カウンタの出力値が前記所定値に到達するまで前記イネーブルを遅らせるステップを含むことを特徴とする請求項2記載の方法。
  4. 前記ディセーブルの続行は、前記メモリの内容をその後のマイクロコントローラ動作中前記テストインターフェースを介して読み出されないように保護する前記リセットコードの実行によって設定することを特徴とする請求項1記載の方法。
  5. 前記テストインターフェースを介するメモリアクセスを得るために前記メモリの内容をその後のマイクロコントローラ動作中に変更するステップを含むことを特徴とする請求項4記載の方法。
  6. 前記メモリ内容を変更するステップは、前記メモリを消去するステップ及び、外部メモリポートを介して前記メモリに異なる内容を格納するステップの少なく一つを含むことを特徴とする請求項5記載の方法。
  7. 前記テストインターフェースはイネーブル時にJTAGオペレーションを実行することを特徴とする請求項1記載の方法。
  8. 組み込みメモリと、プログラマブルプロセッサと、前記メモリおよびプロセッサに動作可能に結合されたテストインターフェースとを含むマイクロコントローラの動作を開始させるステップと、
    前記動作の開始に応答して、カウンタを始動させ、前記テストインターフェースを初期ディセーブル状態に設定して前記テストインターフェースを介する前記メモリへのアクセスをディセーブルし、開始コードを前記プロセッサで実行させるステップと、
    前記カウンタが所定のカウント状態に到達したとき、前記開始コードの実行によって、前記カウンタが所定のカウント状態に到達する前に、その後のマイクロコントローラ動作に対して前記ディセーブルの続行が設定されない限り、前記テストインターフェースを前記メモリへのアクセスをイネーブルにするイネーブル状態に変化させるステップとを備えることを特徴とするメモリ保護方法。
  9. 前記カウンタはタイマであり、前記所定のカウント状態は所定の時間量であり、前記初期ディセーブル状態の設定は、前記開始コードの実行前に前記マイクロコントローラのオペレーティングロジックにより実行されることを特徴とする請求項8記載の方法。
  10. JTAGプログラムに従って、前記テストインターフェースに結合された外部装置で前記マイクロコントローラにアクセスするステップを含むことを特徴とする請求項8記載の方法。
  11. 前記ディセーブルの続行は、前記メモリの内容をその後のマイクロコントローラ動作中に前記テストインターフェースを介して読み出されないように保護する前記開始コードの実行によって設定することを特徴とする請求項8記載の方法。
  12. 前記テストインターフェースを介するメモリアクセスを得るために前記メモリの内容をその後のマイクロコントローラ動作中に変更するステップを含むことを特徴とする請求項11記載の方法。
  13. 前記メモリ内容を変更するステップは、前記メモリを消去するステップ及び外部メモリポートを介して前記メモリに異なる内容を格納するステップの少なくとも一つを含み、前記開始コードは前記メモリの所定の部分に格納され、前記メモリは不揮発性であることを特徴とする請求項12記載の方法。
  14. 前記メモリへのアクセスは、前記メモリに開始コードが格納されていないときに、前記カウンタの所定のカウント状態への到達に応答してイネーブルにされることを特徴とする請求項13記載の方法。
  15. プロセッサと、前記プロセッサに動作可能に結合された組み込みメモリと、前記プロセッサおよび前記メモリに動作可能に結合されたマイクロコントローラテストインターフェースとを含むマイクロコントローラ集積回路を備える装置であって、
    前記マイクロコントローラは、リセット信号に応答してリセットオペレーティングロジックを実行して、前記テストインターフェースを介する前記メモリへのアクセスを阻止する前記テストインターフェースの初期ディセーブル状態をセットするとともに、カウンタを始動し、
    前記プロセッサは、前記初期ディセーブル状態中に、前記メモリに格納されたリセット開始コードを実行して、リセット後のマイクロコントローラ動作に対して前記メモリアクセスディセーブルの続行を選択的に設定し、
    前記リセットオペレーティングロジックは、前記カウンタが前記所定のカウント状態に到達する前に、前記プロセッサによる前記開始コードの実行によって前記メモリアクセスディセーブルの続行状態が設定されない限り、前記所定のカウント状態への到達に応答して前記テストインターフェースのイネーブル状態を設定して、リセット後のマイクロコントローラ動作中前記テストインターフェースを介するメモリアクセスを可能にすることを特徴とする装置。
  16. 前記リセットオペレーティングロジックは前記プロセッサによる前記開始コードの実行前に、前記初期ディセーブル状態を設定することを特徴とする請求項15記載の装置。
  17. 前記マイクロコントローラは、入力及び出力オペレーションを前記外部装置によってJTAGプロセッサに従って実行する手段を含むことを特徴とする請求項15記載の装置。
  18. 前記マイクロコントローラは、前記メモリアクセスディセーブルの続行状態が設定された後に、一以上の外部しに応答して、前記メモリの内容を変更し、前記テストインターフェースを介するメモリへのアクセスをイネーブルすることを特徴とする請求項15記載の装置。
  19. 前記マイクロコントローラは、前記開始コードの実行によって前記ディセーブルの続行状態が設定された後に、前記メモリの内容を変更する手段を含むことを特徴とする請求項15記載の装置。
  20. 前記メモリは不揮発性フラッシュ型であることを特徴とする請求項15記載の装置。
  21. 組み込みメモリと、プログラマブルプロセッサと、前記メモリおよびプロセッサに動作可能に結合されたテストインターフェースとを含むマイクロコントローラの初期動作を開始させるステップと、
    前記マイクロコントローラの初期動作中に、前記テストインターフェースを、前記テストインターフェースを介する前記メモリへのアクセスをディセーブルする初期ディセーブル状態に設定するステップと、
    前記初期ディセーブル状態中に、前記メモリに格納されている開始コードの少なくとも一部分を前記プロセッサで実行させ、前記テストインターフェースのディセーブル続行状態を選択的に設定するステップと、
    前記ディセーブル続行状態が前記開始コードに実行により設定されない限り、前記初期動作後も前記テストインターフェースを介するメモリアクセスをマイクロコントローラ動作のためにイネーブルするステップとを備え、
    前記ディセーブル続行状態は前記初期動作後の前記マイクロコントローラ動作中も前記テストインターフェースを介するメモリアクセスをディセーブルすることことを特徴とするメモリ保護方法。
  22. 前記初期ディセーブル状態は前記マイクロコントローラの専用のオペレーティングロジックにより実行されることを特徴とする請求項21記載の方法。
  23. 前記マイクロコントローラの前記初期動作中、カウンタを動作させるステップを含むことを特徴とする請求項22記載の方法。
  24. 前記ディセーブル続行状態は、前記カウンタが所定のカウント状態に到達する前に前記開始コードを実行することによって設定されるセキュリティ設定で前記イネーブルを禁止ことによって与えられることを特徴とする請求項23記載の方法。
  25. 前記開始コードは第1部分と第2部分を含み、前記初期ディセーブル状態の設定は前記第1部分を実行することによって達成され、前記開始コードの実行は前記第2部ブロックの実行を含むことを特徴とする請求項21記載の方法。
  26. 組み込みメモリと、プログラマブルプロセッサと、前記メモリおよびプロセッサに動作可能に結合されたテストインターフェースとを含むマイクロコントローラをリセットするステップと、
    前記リセットに応答して、前記メモリに格納されているリセットコードを実行し、前記メモリの内容をリセット後のマイクロコントローラ動作中保護すべく前記テストインターフェースを介する前記メモリへのアクセスをディセーブルするステップと、
    リセット後のマイクロコントローラ動作中、前記テストインターフェースを解する前記メモリへのアクセスをイネーブルにすべく前記メモリの内容を変更するステップとを備えることを特徴とするメモリ保護方法。
  27. 前記リセットコードの実行前に、前記リセットに応答して、前記テストインターフェースの初期ディセーブル状態を設定するステップを含むことを特徴とする請求項26記載の方法。
  28. 前記リセットコードの実行前に、前記リセットに応答して、カウンタを始動させるステップを含むことを特徴とする請求項26記載の方法。
  29. 前記メモリを内容するステップは前記メモリの内容を消去することを特徴とする請求項26記載の方法。
  30. 前記メモリの内容を変更するステップは前記メモリに異なる内容を格納することを特徴とする請求項26記載の方法。
JP2008527571A 2005-08-22 2006-08-22 組み込みメモリ保護 Withdrawn JP2009505303A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US71064805P 2005-08-22 2005-08-22
PCT/IB2006/052905 WO2007023457A2 (en) 2005-08-22 2006-08-22 Embedded memory protection

Publications (1)

Publication Number Publication Date
JP2009505303A true JP2009505303A (ja) 2009-02-05

Family

ID=37692615

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008527571A Withdrawn JP2009505303A (ja) 2005-08-22 2006-08-22 組み込みメモリ保護

Country Status (5)

Country Link
US (1) US8065512B2 (ja)
EP (1) EP1920377A2 (ja)
JP (1) JP2009505303A (ja)
CN (1) CN101243451B (ja)
WO (1) WO2007023457A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016076106A (ja) * 2014-10-07 2016-05-12 セイコーエプソン株式会社 半導体装置及び電子機器
JP2019145070A (ja) * 2017-12-07 2019-08-29 新唐科技股▲ふん▼有限公司 メモリー保護装置および方法

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8046571B1 (en) * 2006-12-18 2011-10-25 Marvell International Ltd. System-on-a-chip (SoC) security using one-time programmable memories
US9141776B2 (en) * 2008-04-30 2015-09-22 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for secure hardware analysis
US8332641B2 (en) * 2009-01-30 2012-12-11 Freescale Semiconductor, Inc. Authenticated debug access for field returns
US8484451B2 (en) 2010-03-11 2013-07-09 St-Ericsson Sa Method and apparatus for software boot revocation
US8255578B2 (en) 2010-06-14 2012-08-28 Microsoft Corporation Preventing access to a device from an external interface
KR101301022B1 (ko) * 2011-12-23 2013-08-28 한국전자통신연구원 암 코어 기반의 프로세서를 위한 외부 공격 방어 장치 및 이를 이용한 방법
US9390278B2 (en) 2012-09-14 2016-07-12 Freescale Semiconductor, Inc. Systems and methods for code protection in non-volatile memory systems
TW201516424A (zh) * 2013-10-31 2015-05-01 Hon Hai Prec Ind Co Ltd 伺服器開關機測試方法及系統
DE102015110729A1 (de) * 2014-07-21 2016-01-21 Dspace Digital Signal Processing And Control Engineering Gmbh Anordnung zur teilweisen Freigabe einer Debuggingschnittstelle
GB2543804A (en) * 2015-10-29 2017-05-03 Nordic Semiconductor Asa Microprocessor interfaces
US10613955B2 (en) * 2017-12-28 2020-04-07 Intel Corporation Platform debug and testing with secured hardware
US10719607B2 (en) * 2018-03-19 2020-07-21 Nxp B.V. Data integrity verification in a non-volatile memory

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7103782B1 (en) * 2000-09-27 2006-09-05 Motorola, Inc. Secure memory and processing system having laser-scribed encryption key
US6976136B2 (en) * 2001-05-07 2005-12-13 National Semiconductor Corporation Flash memory protection scheme for secured shared BIOS implementation in personal computers with an embedded controller
US7149854B2 (en) * 2001-05-10 2006-12-12 Advanced Micro Devices, Inc. External locking mechanism for personal computer memory locations
EP1276033B1 (de) * 2001-07-10 2012-03-14 Trident Microsystems (Far East) Ltd. Speichereinrichtung mit Datenschutz in einem Prozessor
US7117352B1 (en) * 2002-02-13 2006-10-03 Lsi Logic Corporation Debug port disable mechanism
JP4526111B2 (ja) * 2003-12-19 2010-08-18 インターナショナル・ビジネス・マシーンズ・コーポレーション マイクロコンピュータおよびデバッグ方法
CA2536610C (en) * 2004-02-05 2013-04-30 Research In Motion Limited Debugging port security interface
US7386774B1 (en) * 2004-02-26 2008-06-10 Integrated Device Technology, Inc. Memory unit with controller managing memory access through JTAG and CPU interfaces

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016076106A (ja) * 2014-10-07 2016-05-12 セイコーエプソン株式会社 半導体装置及び電子機器
JP2019145070A (ja) * 2017-12-07 2019-08-29 新唐科技股▲ふん▼有限公司 メモリー保護装置および方法

Also Published As

Publication number Publication date
CN101243451B (zh) 2010-10-13
EP1920377A2 (en) 2008-05-14
US8065512B2 (en) 2011-11-22
US20090222652A1 (en) 2009-09-03
WO2007023457A3 (en) 2007-06-07
CN101243451A (zh) 2008-08-13
WO2007023457A2 (en) 2007-03-01

Similar Documents

Publication Publication Date Title
JP2009505303A (ja) 組み込みメモリ保護
US8176281B2 (en) Controlling access to an embedded memory of a microcontroller
JP6433198B2 (ja) 安全なブートromパッチのためのシステム及び方法
US7266848B2 (en) Integrated circuit security and method therefor
US6587916B2 (en) Microcomputer with built-in programmable nonvolatile memory
JP4728237B2 (ja) デバッグ回路のセキュリティを確保する方法及び装置
CN109656869B (zh) 用于管理产品返回以供分析的方法和相应的产品
US7930535B1 (en) Method and apparatus for loading configuration data
CN111226215B (zh) 透明附接的闪存存储器安全性
WO2020063975A1 (zh) 一种非易失性存储器的分区保护方法及装置
US9542113B2 (en) Apparatuses for securing program code stored in a non-volatile memory
CN114721493B (zh) 芯片启动方法、计算机设备及可读存储介质
US7881813B2 (en) System and method for sharing reset and background communication on a single MCU pin
JP2001075941A (ja) フラッシュメモリ内蔵マイクロコンピュータおよびその動作方法
CN115827347A (zh) 一种嵌入式设备的控制方法及嵌入式设备
US7340575B2 (en) Method and a circuit for controlling access to the content of a memory integrated with a microprocessor
JP3912447B2 (ja) メモリシステムおよび外部不揮発メモリの使用方法
CN117472808A (zh) 数据保护方法、装置及系统
KR20020053266A (ko) 시스템 초기화 제어장치 및 방법
JP2010170579A (ja) データ処理装置

Legal Events

Date Code Title Description
A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20090907