JP2008269388A - 半導体装置 - Google Patents

半導体装置 Download PDF

Info

Publication number
JP2008269388A
JP2008269388A JP2007112763A JP2007112763A JP2008269388A JP 2008269388 A JP2008269388 A JP 2008269388A JP 2007112763 A JP2007112763 A JP 2007112763A JP 2007112763 A JP2007112763 A JP 2007112763A JP 2008269388 A JP2008269388 A JP 2008269388A
Authority
JP
Japan
Prior art keywords
control signal
debug
chip
built
semiconductor device
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.)
Granted
Application number
JP2007112763A
Other languages
English (en)
Other versions
JP4833907B2 (ja
Inventor
Shinji Niijima
慎司 新島
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.)
NEC Electronics Corp
Original Assignee
NEC Electronics 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 NEC Electronics Corp filed Critical NEC Electronics Corp
Priority to JP2007112763A priority Critical patent/JP4833907B2/ja
Priority to US12/081,823 priority patent/US7917818B2/en
Publication of JP2008269388A publication Critical patent/JP2008269388A/ja
Priority to US13/064,090 priority patent/US8010855B2/en
Priority to US13/137,079 priority patent/US8103923B2/en
Application granted granted Critical
Publication of JP4833907B2 publication Critical patent/JP4833907B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/267Reconfiguring circuits for testing, e.g. LSSD, partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】揮発性メモリ(例えば、命令格納用RAM)を搭載したチップを内蔵した半導体装置において、第三者がデバッガ機能を用いてデータを不正に入手することを防ぐセキュリティ機能を実現する必要があった。
【解決手段】デバッグ機能を有する半導体装置であって、第一命令群を記憶する揮発性メモリ(命令RAM104)と、第一命令群を実行する第一演算処理装置(演算処理装置102)と、第二命令群を記憶する不揮発性メモリと、第二命令群を実行する第二演算処理装置(演算処理装置202)と、第一演算処理装置へのデバッグ機能の実行を許可するか禁止するかを指定する制御信号を出力する制御信号出力手段(例えば、周辺回路部205)と、制御信号に基づいて、第一演算処理装置へのデバッグ機能の実施を制御するデバッグ制御部101と、を備える。
【選択図】図1

Description

本発明は、デバッグ機能を有する半導体装置に関し、特に、演算処理装置と不揮発性メモリを含むチップと、演算処理装置と命令格納用RAM(命令RAM)を含むチップとを複数内蔵した半導体装置におけるデバッグ制御に関する。
従来から、半導体装置にオンチップデバッグ装置を接続してデバッグを行う場合にデータの漏洩を防止する技術が開発されている。例えば、特許文献1に、オンチップデバッグ装置として、JTAG−ICEを接続してデバッグを行う場合に、内蔵プログラムまたはデータの漏洩を簡易なシステムで、確実に防止する発明が開示されている。この発明では、半導体装置内部に記憶するアクセスキーと外部から入力されたアクセスキーを比較し、一致した場合に、内部データを外部に出力することを許可している。これにより、内蔵プログラムを含むデータを第三者へ漏洩することを防止する。
近年、半導体装置、例えばシステムLSI(Large Scale Integration)などの組立技術が進み、複数チップを1つのパッケージに収める製品が出てきた。このシステムLSIに命令RAM(Random Access Memory)を内蔵したチップを搭載した場合、そのチップの制御プログラムの漏洩を防ぎたいという要求がある。
ここで、命令RAMを内蔵するチップを用いるメリットとして、制御プログラムを外部からダウンロードしてRAMに格納するため、予め制御プログラムをコード化しなければならないマスクROM(Read Only Memory)に比べ、必要に応じて変更が自由である点がある。従って、ダウンロードするプログラムを外部で変更することから、変更がやりやすく、どのような変更も可能になる。また、マスクROMや書換え可能な不揮発性メモリ(フラッシュメモリ)に比べ、高速動作が実現できる点も挙げられる。さらに、フラッシュメモリに比べ、比較的安価なプロセスで製造でき、低テストコストであるなど供給側のメリットもある。
しかし、制御プログラムを外部からダウンロードして動作する構成であるため、プログラムのセキュリティ確保の面では不利である。ダウンロード中のデータ流出を防いだとしても、ダウンロード完了後、デバッガ(デバッグ装置)からメモリを参照すればダウンロードしたプログラムが読み出されてしまう。デバッガの接続を禁止しようとしても、従来技術のようにアクセスキーを用いる場合、不揮発性メモリを備えていないため、アクセスキーを格納する場所がないなどの問題がある。ここで、アクセスキーの格納場所は、プログラム開発者がアクセス(設定)でき、かつ第三者がその設定値を解読することが困難な場所である必要があり、不揮発性メモリ内部に格納する例が知られている。
そのため、命令RAMを内蔵したチップでは、デバッガ機能自体を非公開にするなどして、プログラム開発効率低下や不具合解析の困難化を招いている。このようなチップおよびデバッガは、上記メリットの実現を優先し、プログラム保護をあきらめ、アクセスキーの照合機能など不正な第三者の接続を防止する構成を持たないことが多い。
上述した複数チップを搭載した半導体装置90(システムLSI)の一例を、図6に示す。図6では、命令RAMを内蔵した内蔵チップA19(例えば、DSP:Digital Signal Processor)と、不揮発性メモリを内蔵した内蔵チップB29(例えば、マイクロコンピュータ)とを収めた製品を示している。ここで内蔵チップA、Bの各々に専用のデバッガ接続が可能であり、内蔵チップA19の制御プログラムは内蔵チップB29の不揮発性メモリに格納され、内蔵チップA19起動時にダウンロードする手段を備えるものとする。動作フローを図7に示す。不揮発性メモリを内蔵した内蔵チップB29のデバッガ接続制御については上述したアクセスキーを用いることでセキュリティを確保している。一方、内蔵チップA10については、制御プログラムのダウンロードはシステムLSI内部で行われるため(S83〜S86、S91〜S94)、漏洩の懸念はないが、デバッガを接続した場合に第三者への漏洩の危険があるのは上述のとおりである。
このようなシステムLSIの内蔵チップA19に対して、制御プログラムの漏洩を防止でき、かつ効率的なデバッグを行うため、第三者によるデバッガ接続を許可/禁止を指定できるデバッガ制御手段が求められる。
特開2003−186693号公報
しかしながら、従来技術では、1つのパッケージに複数のチップが搭載されることを考慮していなかった。従って、従来技術では、1つのパッケージに複数のデバッグ機能を有するチップが搭載された場合の有効なデバッグ接続制御については、言及されていない。特に、搭載する複数チップの一方が、デバッグ接続時にプログラムのセキュリティを確保する仕組みを持たないチップである場合、例えば、命令RAMを搭載したチップではセキュリティ確保を諦めざるを得なかった。
また、従来のデバッガ接続許可/禁止制御は、デバッガ側から解除コードを入力し、内部に格納されているアクセスキーとの照合一致/不一致判定により行われるため、アクセスキーレジスタ、リソースアクセス回路などのハードウェアが増加し、かつデバッガ側制御ソフトが複雑化していた。
既存の設計資産を流用する場合、特に命令RAMを搭載した内蔵チップA10、およびオンチップデバッガを流用する場合、デバッガ制御手段の導入に伴う変更量を最小限にしたいという要望がある。
さらに、デバッガ接続の制御を行わずに、内蔵チップA10の制御プログラム(命令コード)の漏洩を防止するためにデバッグ機能自体を非公開にしてしまうと、プログラム開発時の開発効率や不具合解析時の容易性が損なわれていた。
このように、揮発性メモリ(例えば、命令格納用RAM)を搭載したチップを内蔵した半導体装置において、第三者がデバッガ機能を用いてデータを不正に入手することを防ぐセキュリティ機能を実現する必要があった。
本発明に係る半導体装置の一態様は、デバッグ機能を有する半導体装置であって、第一命令群を記憶する揮発性メモリ(例えば、図1の命令RAM104)と、第一命令群を実行する第一演算処理装置(例えば、図1の演算処理装置102)と、第二命令群を記憶する不揮発性メモリと、第二命令群を実行する第二演算処理装置(例えば、図1の演算処理装置202)と、第一演算処理装置のデバッグ機能の実行を許可するか禁止するかを指定する制御信号を出力する制御信号出力手段(例えば、図3の周辺回路部205、図4のID判定部208)と、制御信号に基づいて、第一演算処理装置のデバッグ機能を制御するデバッグ制御部と、を備える。
本発明によれば、揮発性メモリ(例えば、命令格納用RAM)を搭載したチップを内蔵した半導体装置において、第三者がデバッガ機能を用いてデータを不正に入手することを防ぐセキュリティ機能を提供することが可能となる。これにより、第三者が半導体装置に接続するデバッガ機能を用いて、半導体装置が搭載する揮発性メモリから制御プログラムなどを含むデータの漏洩を防止することができる。
(実施形態1)
以下、本発明の実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。各図面において同一の構成または機能を有する構成要素および相当部分には、同一の符号を付し、その説明は省略する。
図1は、本発明に係る半導体装置(システムLSI)の構成例を示すブロック図である。図1に示すとおり半導体装置1は、内蔵チップA10(第一チップ)と内蔵チップB20(第二チップ)の2チップで構成される。例えば、SiP(System in Package)のように2チップが一つのパッケージに封止される。なお、ここでは、2チップで構成される例を説明するが、一つのチップを第一領域と第二領域の二つの領域に分けて同一チップ上にそれぞれを配置する場合であってもよい。
半導体装置1は、デバッグ機能を有する。ここで、デバッグ機能は、半導体装置1に外部のデバッグ装置を接続して命令の実行を検査する機能である。また、デバッグ機能の制御とは、デバッグ機能の実行を許可するか禁止するかを指定することである。具体的には、プログラムのデバッグ環境として、半導体装置1の外部にデバッグ装置2,3(例えば、オンチップデバッガ)が備えられ、それぞれ内蔵チップA10、内蔵チップB20に接続できる。ここでは、デバッグ装置2は内蔵チップA10用であり、デバッグ装置3は内蔵チップB20用である。
内蔵チップA10は、デバッグ制御部101、演算処理装置(DSP)102、データRAM103、命令RAM104、周辺回路部105、バス106、及びブート制御部107を備える。
デバッグ制御部101は、外部のデバッグ装置2、および演算処理装置(DSP)102と接続し、デバッグ装置2から受信したコマンドに従い演算処理装置(DSP)102の内部状態をデバッグ装置2へ出力する。さらにデバッグ制御部101は、制御信号5のレベルにより動作可能(High)または初期化状態(Low)を指定される。制御信号5は、内蔵チップB20によってレベルが設定され、出力される。ここでは、制御信号のレベルがHigh(1)の場合はデバッグ装置2を接続することを許可し、制御信号のレベルがLow(0)の場合はデバッグ装置2を接続することを禁止する場合を説明する。
演算処理装置(DSP)102は命令RAM104から命令コードをフェッチし実行する。実行によりデータRAM103へのアクセスおよびバス106を介して周辺回路部105へのアクセスを行う。
ブート制御部107は、内蔵チップA10のリセット解除(リセット信号は図示せず)により動作し、演算処理装置(DSP)102が実行すべきプログラム(命令コード群)を外部(図1では内蔵チップB20の不揮発性メモリ)から命令RAM104へロードする。
内蔵チップB20は、デバッグ制御部201、演算処理装置(CPU)202、不揮発性メモリ203、データRAM204、周辺回路部205、バス206、及びID判定部208を備える。不揮発性メモリに格納されたプログラム等のセキュリティは、従来技術にある方法などにより確保される。例えば、内蔵チップB20は、デバッグ装置3の接続許可/禁止をIDコード照合一致/不一致で指定する。具体的には、不揮発性メモリにIDコードを記憶しておき、不揮発性メモリに記憶されていたIDコードと、外部から入力されるIDコード(デバッグ制御部201を経由してデバッグ装置3より入力するIDコード)と照合する。
演算処理装置202は、不揮発性メモリ203に記憶する命令コードをフェッチし実行する。
不揮発性メモリ203は、内蔵チップB20が自己の機能を実現するために実行する命令コードに加え、内蔵チップA10を制御する命令コード、内蔵チップA10へ転送する命令コード、及び、内蔵チップA10のデバッグ機能の制御にかかわる制御情報を記憶する。制御情報は、内蔵チップA10へのデバッグ機能の実行の許可/禁止を指定する情報であり、デバッグ装置2を接続可能にするか否かにかかわる制御情報を記憶する。本実施形態では、制御情報として、演算処理装置202が制御信号の値を設定し、内蔵チップA10のデバッグ制御部101へ出力することを指示する命令コードを記憶している場合を説明する。
周辺回路部205は、演算処理装置202が命令を実行することに伴い、制御信号をデバッグ制御部101へ出力する。
上記で説明した内蔵チップB20の各構成要素が通常有する機能及びその他の内蔵チップB20の構成は、公知の不揮発性メモリ(フラッシュメモリ)搭載マイコンと同様であるため、詳細な説明は省略する。
また、図1の半導体装置1の場合、内蔵チップA10の起動(リセット解除)や停止(リセット入力)、及び命令コード群(制御するプログラム)の提供等を、内蔵チップB20が制御・管理している。さらに、本実施形態では、内蔵チップB20は、制御情報に基づいて、内蔵チップA10に出力する制御信号を生成し、内蔵チップA10へ出力する。従って、内蔵チップB20は、内蔵チップA10にデバッグ装置2の接続を許可するか禁止するかを指定する制御を行うことになる。本実施形態とは異なる制御情報の例については、他の実施形態で説明する。
なお、図1の構成において、内部メモリA10と内部メモリB20に同じ名称の構成要素がある場合、符号で区別するほか、内蔵チップA10の構成要素では「第一」、内部メモリB20が備える構成要素では「第二」をつけて、例えば第一デバッグ制御部として区別することもある。
続いて、半導体装置1の動作を説明する。図2は、本実施形態の半導体装置の動作の一例を示すフローチャートである。
図2を用いて、まず、デバッグ装置2が内蔵チップA10に接続することを許可する動作を説明する。まず、内蔵チップB20は、電源を印加され、その後リセット解除される(S11)。このとき制御信号5は、初期化状態としてLowに設定されている。次に、演算処理装置202は、不揮発性メモリ203から命令をフェッチし、実行する(S12)。これ以降、演算処理装置202が実施する処理は、不揮発性メモリ203からフェッチした命令の実行となる。
このときの命令には、内蔵チップA10を制御する命令コードが含まれる。演算処理装置202は、制御信号5を設定する命令を実行し、制御信号5をHighにする(S13)。設定された制御信号5は、デバッグ制御部101へ通知される。Highに設定された制御信号5がデバッグ制御部101へ通知された段階で、内蔵チップA10は、デバッグ装置2が接続可能な状態になる。図2では、左端の矢印で示す期間では、制御信号5のレベルがHighとなって継続していることを示す。続いて、演算処理装置202は、内蔵チップA10の電源印加を指示する(S14)。この指示により、内蔵チップA10の電源が印加される(S21)。演算処理装置202は、内蔵チップA10のリセット解除を指示する(S15)。この指示により、内蔵チップA10のリセットが解除される(S22)。これにより、ブート制御部107が動作して、内蔵チップB20へプログラムの転送を要求する(S23)。
演算処理装置202は、不揮発性メモリ203に記憶する内蔵チップA10のプログラムを内蔵チップA10の転送を開始する(S16)。転送されたプログラムは、内蔵チップA10で受信され、命令RAM104へ格納される(S24)。内蔵チップB20は、プログラム転送終了後、他の命令コードをフェッチし、実行する(S17)。また、内蔵チップA10は、RAMに格納したプログラムの命令をフェッチし、実行する(S25)。以上がデバッグ装置2を接続することを許可する場合の動作である。
次に、デバッグ装置2が内蔵チップA10に接続することを禁止する場合の動作を説明する。ステップS13を除き同様の動作を行う。ステップ13では、演算処理装置202は、制御信号5を設定する命令を実行し、制御信号5をLowにする。設定された制御信号5は、デバッグ制御部101へ通知される。Lowに設定された制御信号5がデバッグ制御部101へ通知された段階で、内蔵チップA10は、デバッグ装置2が接続禁止状態になる。図2の左端の矢印で示す期間においても初期化状態とかわらず制御信号のレベルはLowであり、デバッグ装置2が接続禁止状態となる初期化状態を継続する。
図3は、本実施形態の内蔵チップAに備えるデバッグ制御部101、内蔵チップB20に備える周辺回路部205、及び制御信号5の構成を詳細に示した図である。このため、図1に示した一部の構成要素は省略している。内蔵チップA10において、デバッグ制御部101は、論理積回路(AND回路)1010と、デバッグ装置2との入出力を制御する入出力I/F部1011とを備える。内蔵チップ20において、周辺回路部205は、IOポートへ設定する値を保持するポートラッチ2050と、ポートラッチ2050に保持された値の出力を指示するI/O制御ビット2051とを備える。
周辺回路部205で制御信号5を生成する。従って、制御信号5を設定する命令を格納する不揮発性メモリ203、命令を実行する演算処理装置202、及びと制御信号5の値を保持して出力する周辺回路部205によって制御信号出力手段を実現している。本実施形態では演算処理装置(CPU)202は、不揮発性メモリ203に格納された命令コードを実行して、周辺回路部205内のIO(Input/Output)ポートのポートラッチ2050に許可/禁止を指定するデータを書込む。ポートラッチ2050は、リセット入力(図示せず)によりLowレベル(0)に初期化されている。一般的なIOポートは、入出力制御の指定もある。制御信号5を出力する場合は、I/O制御ビット2051に0を書込み、出力モードに設定する必要がある。
制御信号5は、リセット解除後はLowレベルであり、ポートラッチ2050に"1"を書込むとHighレベル、"0"を書込むとLowレベルとなる。
デバッグ制御部101は、制御信号5を入力してデバッグ装置2との接続を制御する。本実施形態では、論理積回路1010が外部より入力するRST端子から入力する入力信号と制御信号5の論理積を取る。論理積回路1010の出力は入出力信号1012として入出力I/F部1011へ入力される。入出力I/F部1011は、入出力信号1012に基づいてデバッグ装置2との入出力を制御する。入出力信号1012は、RST端子入力がHighレベル(初期化解除)となっても、制御信号5がLowレベルである限りLowレベル(初期化状態)を継続する。入出力信号1012がHighレベル、かつ、制御信号5がHighレベルになったときにHighレベルとなる。
図3において、入出力信号1012がLowレベル期間中は、デバッグ制御部101は動作しないため、デバッグ装置2からのコマンドは無視され、接続禁止状態が実現できる。入出力信号1012がHighレベルになるとデバッグ制御部101が動作可能になりデバッグ装置2からのコマンド受信よりデバッグ機能が動作する。
全体の動作としては以下の2通りとなる。
(1)ポートラッチ2050=0ライト
→制御信号5=Lowレベル
→RST解除(High)でも入出力信号1012=Lowレベルを継続
→デバッグ装置2接続禁止
(2)ポートラッチ2050=1ライト
→制御信号5=Highレベル
→RST解除により入出力信号1012=Highレベルに変化
→デバッグ装置2接続許可
ポートラッチ2050に"0"をライトするか"1"をライトするかは、内蔵チップB20が搭載する不揮発性メモリ203の格納プログラム(内蔵チップB20の命令コード)で決まる。内蔵チップA10のプログラム開発段階は、デバッグ装置2の接続が可能なように、ポートラッチ2050に"1"をライトする命令コードを格納すれば良い。そして、内蔵チップA10のプログラム開発が完了した後、ポートラッチ2050に"0"をライトする命令コードを不揮発性メモリ203に格納することで、デバッグ装置2の接続が禁止できる。これにより、プログラムの漏洩が防止できる。
従って、不揮発性メモリ203には、内蔵チップB20自身のプログラムと、内蔵チップA10のプログラム、およびポートラッチ2050設定用の命令コード(制御情報の一態様)が格納されることになる。内蔵チップB20の不揮発性メモリ203は従来技術によりセキュリティは確保されており、こちらからプログラムが漏洩することはない。
以上説明したように、本実施形態では、不揮発性メモリ203に格納されたプログラム(制御情報の一態様)に基づいて、内蔵チップB20の演算処理装置202は、制御信号5設定する。内蔵チップA10は、内蔵チップB20から通知される制御信号5によって、デバッグ装置2が接続することを許可するか、禁止するかというデバッグ状態が設定される。このように、内蔵チップA10は、内蔵チップB20の制御に基づいてデバッグ状態が制御される。また、内蔵チップB20の不揮発性メモリ203に記憶された制御情報に基づいてデバッグ状態を設定する。
また、同一の半導体装置1内にある内蔵チップB20からの制御信号5を出力するため、アクセスキーレジスタ、リソースアクセス回路などのハードウェア増加や、デバッグ装置2側制御ソフトを複雑することなく、内蔵チップA10のデバッグ装置接続の許可/禁止制御を行うことができる。
デバッグ装置2の接続制御が行えるため、内蔵チップA10の制御プログラムの漏洩防止と、プログラム開発時の開発効率向上や不具合解析の容易化を実現できる。周辺回路部205のIOポート(ポートラッチ2050およびI/O制御ビット2051)は通常のマイクロコンピュータ(マイコン)には搭載されている機能であるため、内蔵チップB20は特別な変更が不要である。また、デバッグ制御部101への回路増加も微々たるもので実現できる。
なお、本実施形態では、内蔵チップA10は、DSP、内蔵チップB20は、マイクロコンピュータとして説明したが、これらに限られるわけではない。一方に揮発性メモリ、他方に不揮発性メモリを配置し、それぞれ演算処理装置を備える構成であれは、本実施形態を適用することができる。また、メモリの具体例として、揮発性メモリとしてRAM、不揮発性メモリとして、ROM、フラッシュメモリなどがあげられる。
(実施形態2)
実施形態2では、内蔵チップB20のデバッグ状態を制御する信号を用いて内蔵チップA10のデバッグ状態を制御する一態様を説明する。ここでは、内蔵チップB20のデバッグ状態を制御するID判定部208の判定結果に基づいて制御信号5を生成する場合を説明する。
本実施形態の半導体装置6の全体構成は、図1と同様であるため説明を省略する。但し、制御信号5の出力元が異なり、周辺回路部205から出力されず、ID判定部208から出力される信号が分岐して制御信号5となる。従って、周辺回路部205は、図6の周辺回路部295と同様の構成となる。図4は、本実施形態の内蔵チップAに備えるデバッグ制御部101、内蔵チップB20に備えるID判定部208、及び制御信号5の構成を詳細に示した図である。図4に示す内蔵チップB21では、ID判定部の出力が分岐されて制御信号5とすることによって制御信号出力手段を実現している。
ID判定部208は、内蔵チップB20に対するデバッグ装置3の接続の許可/禁止を、IDコード(照合データ)の照合により判定する。ID判定部208は、ID照合レジスタ2080、ID格納レジスタ2081、及び比較回路2082を備えている。
ID照合レジスタ2080には、デバッグ装置3(図1参照)から入力されるIDコードがデバッグ制御部201を介して設定される。
ID格納レジスタ2081には、不揮発性メモリ203から所定アドレスに格納されているIDコード(照合情報)が設定される。
比較回路2082は、ID照合レジスタ2080とID格納レジスタ2081とへ設定されたIDコードを比較し、比較した結果信号2083をデバッグ制御部201へ出力する。ID判定部208は、内蔵チップB20にデバッグ装置3を接続するデバッグ状態を二つのIDコードが一致した場合に許可し、一致しながった場合に禁止する。本実施形態では、この結果信号2083を分岐して制御信号5としてデバッグ制御部101へも供給する。
内蔵チップA10のデバッグ制御部101の構成は図3と同様であるため説明を省略する。
本実施形態では、不揮発性メモリ203に記憶され、内蔵チップB20のデバッグ状態を判定するときに照合するIDコードを、制御信号5のレベル設定(制御信号5の生成)にかかわる制御情報とする一態様を説明した。制御信号5は、内蔵チップB20のデバッグ状態を判定する結果信号2083を用いて生成される。このため、不揮発性メモリ203内に制御信号5を指定するためのプログラムを格納しなくてもよく、内蔵チップB20のデバッグ装置2接続許可/禁止の構成および手続きを利用できる。
このように、従来から内蔵チップB20(すなわち、不揮発性メモリを備えるチップ)が備えている機能を利用して、揮発性メモリを備えるチップのデバッグ状態を制御することができる。但し、内蔵チップA10と内蔵チップB20とのデバッグ状態が連動することになる。このため、内蔵チップA10のデバッグを行う場合には、内蔵チップB20のデバッグ装置2の接続を許可することになる。
なお、本実施形態では、内蔵チップB20へのデバッグ機能の実行を許可するか禁止するかを判定するID判定部208の判定結果を用いて、内蔵チップA10へのデバッグ機能の実行の可否を指定する制御信号を生成する場合を説明した。この態様に限られることなく、不揮発性メモリに記憶する照合データと外部から入力される情報とを照合して制御信号を生成する場合であってもよい。回路構成が増えるものの、内蔵チップB20の判定結果を利用するのではなく、内蔵チップA10へのデバッグ機能の可否を判定する内蔵チップA用照合情報を不揮発性メモリ203へ記憶させ、内蔵チップA用照合情報と外部から入力される情報とを照合する内蔵チップA用照合部(制御信号出力手段)を内蔵チップB20に別途備える構成も可能である。
(実施形態3)
実施形態3では、デバッグ装置2との入出力を制御するデバッグ制御部において特定のメモリに格納されたデータのセキュリティを強化する一態様を説明する。具体的には、制御信号5のレベルに基づいて、デバッグ制御部において特定の揮発性メモリに格納されたデータの漏洩を防止する仕組みの一例を説明する。半導体装置の構成は図1と同様である。但し、制御信号5の出力元は、実施形態1(図1、3)、実施形態2(図4)のいずれの場合であってもよい。デバッグ制御部に備える入出力I/F部の具体的構成が異なっている。
図5は、本実施形態のデバッグ制御部110の構成例を示す図である。図5では、デバッグ制御部110、デバッグ装置2、及び内蔵チップA11内の構成要素の一部との関係を示している。図5に示す入出力I/F部1110は、論理和回路(OR回路)1111、ANDゲート1112、及びシフトレジスタ1113を備える。ANDゲート1112が有する論理積回路の数とシフトレジスタのレジスタの数とは一致する。
まず、デバッグ装置2、デバッグ制御部110、及び演算処理装置109の動作の概略を説明する。内部バス108は、デバッグ制御部110と演算処理装置109とを接続するバスである。デバッグ制御部110は、デバッグ装置2から入力されるコマンドを取り込み、演算処理装置109へアクセス制御信号8(命令RAM104のリード実行指示)を出力する。演算処理装置109は、アクセス制御信号8に基づいて処理を実行(命令RAM104のリード)する。次に演算処理装置109はデバッグ制御部110へ処理実行結果(命令RAMリード値)を内部バス108経由で送る。この際、演算処理装置109は命令RAMリード値出力信号9をアクティブ(Highレベル)にする。命令RAMリード値出力信号9をアクティブ(Highレベル)にする点が、図1に示す演算処理装置102と異なる点である。
続いて、入出力I/F部1110の構成要素を説明する。
入出力I/F部1110は、制御信号5と命令RAMリード値出力信号9を入力し、アクセス制御信号8を出力する。
論理和回路1111は、制御信号5と命令RAMリード値出力信号9とを入力し、論理和をデータマスク信号1114として出力する。
ANDゲート1112では、論理積回路それぞれについて、一方の入力に内部バス108から入力されるデータの1ビット毎が接続され、もう一方にデータマスク信号1114が接続されている。ANDゲートの出力はシフトレジスタ1112にそれぞれ格納される。ここでデータマスク信号1114は、制御信号5と命令RAMリード値出力信号9の論理を取った信号である。シフトレジスタ1113はANDゲート1112の出力を格納し、DO端子からCK信号に同期してデバッグ装置2へ出力する。
次に、データマスク信号1114について説明する。表1にデータマスク信号1114の生成論理の一例を示す。
Figure 2008269388
ここで、制御信号5がLowレベルの場合はデバッグ装置2接続禁止指定である。その状態で命令RAMリード値出力信号9がHighレベルになると、データマスク信号1114がLowレベルになり、ANDゲート出力はLowレベル固定になる。そのためシフトレジスタ1113の格納データは、内部バス108の値によらず常に0となる。このように、制御信号5がLowレベルの場合は、命令RAMをリードしたデータがDO端子から外部に出力されることはなく、命令RAM104に格納されたデータ(命令コード)のセキュリティは守られる。
制御信号5がHighレベルの場合、および制御信号5がLowレベルでかつ命令RAMリード値出力信号9がLowレベルの場合は、内部バス108の値がシフトレジスタ1112に格納され、DO端子からデバッグ装置に出力される。しかし、出力されるデータは、命令RAM104に格納されたデータ以外であるためセキュリティ上の問題はない。このようにして、命令RAM104に格納されたデータのセキュリティが確保できる。
また、本実施形態では、デバッグ制御部110は、制御信号5のレベルがLowであっても、デバッグ装置2から入力される命令のうち、RAM104以外のアクセスの命令波を受け付ける。従って、命令RAM104に格納されたデータ表示以外のデバッグは実行できる。そのため、プログラム情報を知っている設計者であれば、市場投入するために制御信号5=Lowレベルに固定したサンプルでも最低限のデバッグができる。これにより、市場投入前、あるいはその後のクレーム解析などにデバッグ機能を使用する場合に有効である。
このように、本実施形態では、命令RAM104のリード時だけ、内部バス108のデータをデバッグ装置2に出力させない構成を実現できる。このため、命令RAM104に格納されたデータの漏洩を防止することができる。即ち、特定の揮発性メモリに格納されたデータの漏洩を防止することができる。また、特定のメモリのデータ漏洩を防止しつつ、データの漏洩の防止が必要ないメモリへのアクセスについて、デバッグ機能を実行することができる。
以上のように、本発明に係る好適な実施形態によれば、揮発性メモリ、例えば、命令格納用RAM(命令RAM104)を搭載したチップを内蔵した半導体装置において、チップの制御プログラムが不正に漏洩されることを防止できる。また、制御信号に基づいてデバッグ装置の接続ができるため、プログラム開発時の開発効率向上や不具合解析の容易化を実現できる。
また、半導体装置内に配置される他の内蔵チップ(ここでは内蔵チップB20)からの制御信号5を出力するため、アクセスキーレジスタ、リソースアクセス回路などのハードウェア増加や、デバッグ装置2側制御ソフトを複雑することなく上記効果を実現できる。
なお、本発明は上記に示す実施形態に限定されるものではない。本発明の範囲において、上記実施形態の各要素を、当業者であれば容易に考えうる内容に変更、追加、変換することが可能である。
本発明に係る半導体装置(システムLSI)の構成例を示すブロック図である。 実施形態1の半導体装置の動作の一例を示すフローチャートである。 実施形態1の内蔵チップAに備えるデバッグ制御部、内蔵チップBに備える周辺回路部、及び制御信号の構成を詳細に示した図である。 実施形態2の内蔵チップAに備えるデバッグ制御部、内蔵チップBに備えるID判定部、及び制御信号の構成を詳細に示した図である。 実施形態3のデバッグ制御部の構成例を示す図である。 従来の複数チップを搭載したシステムLSIの一例を示す図である。 従来の複数チップを搭載したシステムLSIの動作の一例を示すフローチャートである。
符号の説明
1,6 半導体装置
10、11 内蔵チップA
20、21 内蔵チップB
101 デバッグ制御部
102、109 演算処理装置
103 命令RAM
104 データRAM
105 周辺回路部
106 バス
107 ブート制御部
108 内部バス
201 デバッグ制御部
202 演算処理装置
203 不揮発性メモリ
204 データRAM
205 周辺回路部
206 バス
208 ID判定部
1010 論理積回路
1011、1110 入出力I/F部
1111 論理和回路
1112 ANDゲート
1113 シフトレジスタ
2050 ポートラッチ
2051 I/O制御ビット
2080 ID照合レジスタ
2081 ID格納レジスタ
2082 比較回路
RST、DI、CK 入力端子
DO 出力端子

Claims (7)

  1. デバッグ機能を有する半導体装置であって、
    第一命令群を記憶する揮発性メモリと、
    前記第一命令群を実行する第一演算処理装置と、
    第二命令群を記憶する不揮発性メモリと、
    前記第二命令群を実行する第二演算処理装置と、
    前記第一演算処理装置へのデバッグ機能の実行を許可するか禁止するかを指定する制御信号を出力する制御信号出力手段と、
    前記制御信号に基づいて、前記第一演算処理装置へのデバッグ機能の実施を制御するデバッグ制御部と、を備える半導体装置。
  2. 前記不揮発性メモリは、前記制御信号のレベル設定にかかわる制御情報を記憶し、
    前記制御信号出力手段は、前記不揮発性メモリに記憶する前記制御情報に基づいて生成した制御信号を前記第一デバッグ制御部へ出力することを特徴とする請求項1記載の半導体装置。
  3. 前記第二命令群は、前記制御信号の値を設定する命令を含み、
    前記制御信号出力手段は、前記第二演算処理装置が命令を実行することによって値が設定された制御信号を前記第一デバッグ制御部へ出力することを特徴とする請求項2記載の半導体装置。
  4. 前記不揮発性メモリは、前記制御情報として、前記第二演算処理装置へのデバッグ機能の実行を許可するか禁止するかを判定するために、外部から入力される情報と照合する照合情報を記憶し、
    前記制御信号出力手段は、前記照合情報と、外部から入力される情報とに基づいて前記第二演算処理装置へのデバッグ機能の可否を判定した判定結果を前記制御信号として前記第一デバッグ制御部へ出力することを特徴とする請求項2記載の半導体装置。
  5. 前記第一デバッグ制御部は、前記揮発性メモリから読み出した第一命令群のデータを設定するレジスタを有し、前記デバッグ機能の実行を禁止されている場合に、前記読み出された第一命令群のデータをレジスタへ設定しないことを特徴とする請求項1乃至4のいずれかに記載の半導体装置。
  6. 前記第一演算処理装置、前記揮発性メモリ、及び前記第一デバッグ制御部は、第一チップへ搭載され、
    前記第二演算処理装置、前記不揮発性メモリ、及び前記制御信号出力手段は、第二チップへ搭載されていることを特徴とする請求項1乃至5のいずれかに記載の半導体装置。
  7. 前記揮発性メモリは、RAM(Random Access Memory)であることを特徴とする請求項1乃至6記載の半導体装置。
JP2007112763A 2007-04-23 2007-04-23 半導体装置 Active JP4833907B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2007112763A JP4833907B2 (ja) 2007-04-23 2007-04-23 半導体装置
US12/081,823 US7917818B2 (en) 2007-04-23 2008-04-22 Semiconductor device controlling debug operation of processing unit in response to permission or prohibition from other processing unit
US13/064,090 US8010855B2 (en) 2007-04-23 2011-03-04 Semiconductor device controlling debug operation of processing unit in response to permission or prohibition from other processing unit
US13/137,079 US8103923B2 (en) 2007-04-23 2011-07-19 Semiconductor device controlling debug operation of processing unit in response to permission or prohibition from other processing unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007112763A JP4833907B2 (ja) 2007-04-23 2007-04-23 半導体装置

Publications (2)

Publication Number Publication Date
JP2008269388A true JP2008269388A (ja) 2008-11-06
JP4833907B2 JP4833907B2 (ja) 2011-12-07

Family

ID=39873395

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007112763A Active JP4833907B2 (ja) 2007-04-23 2007-04-23 半導体装置

Country Status (2)

Country Link
US (3) US7917818B2 (ja)
JP (1) JP4833907B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010160765A (ja) * 2009-01-09 2010-07-22 Oki Semiconductor Co Ltd システムlsi及びこのデバッグ方法
JP2020177467A (ja) * 2019-04-18 2020-10-29 キヤノン株式会社 情報処理装置、情報処理装置の制御方法およびプログラム

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8924795B2 (en) * 2009-09-30 2014-12-30 Freescale Semiconductor, Inc. Distributed debug system
US8504875B2 (en) * 2009-12-28 2013-08-06 International Business Machines Corporation Debugging module to load error decoding logic from firmware and to execute logic in response to an error
US9478502B2 (en) * 2012-07-26 2016-10-25 Micron Technology, Inc. Device identification assignment and total device number detection
CN105842615B (zh) * 2015-01-14 2019-03-05 扬智科技股份有限公司 可于异常状态下进行调试的系统芯片及其调试方法
US9766963B2 (en) * 2015-09-23 2017-09-19 Intel Corporation Secure tunneling access to debug test ports on non-volatile memory storage units
KR102396448B1 (ko) * 2017-10-19 2022-05-11 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 동작 방법
JP7202225B2 (ja) * 2019-03-12 2023-01-11 ローム株式会社 半導体装置及びデバッグシステム
US11593240B2 (en) * 2020-02-12 2023-02-28 Samsung Electronics Co., Ltd. Device and method for verifying a component of a storage device
CN114580329B (zh) * 2022-05-07 2022-07-22 湖南大学 一种数字信号处理器芯片实时调试方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001331340A (ja) * 2000-05-19 2001-11-30 Nec Corp コードチェックによるモード切替方式および方法
JP2003186693A (ja) * 2001-12-18 2003-07-04 Mitsubishi Electric Corp エミュレート機能を有するマイクロコントローラ
JP2004086525A (ja) * 2002-08-27 2004-03-18 Seiko Epson Corp 半導体装置及びそれを用いたインサーキットエミュレータ
JP2005107909A (ja) * 2003-09-30 2005-04-21 Kyocera Mita Corp デバッグ機能を備えるマルチプロセッサシステム及びマルチプロセッサシステムのプログラム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3290280B2 (ja) * 1994-01-13 2002-06-10 株式会社東芝 情報処理装置
JP3666237B2 (ja) * 1998-03-31 2005-06-29 セイコーエプソン株式会社 情報処理装置及び電子機器
US6389383B1 (en) * 1999-08-13 2002-05-14 Texas Instruments Incorporated System and method for interfacing software and hardware
JP2001184212A (ja) * 1999-12-24 2001-07-06 Mitsubishi Electric Corp トレース制御回路
US7072820B1 (en) * 2000-06-02 2006-07-04 Brian Bailey Accessing state information in a hardware/software co-simulation
US6986127B1 (en) * 2000-10-03 2006-01-10 Tensilica, Inc. Debugging apparatus and method for systems of configurable processors
JP2002202900A (ja) * 2000-12-28 2002-07-19 Seiko Epson Corp デバッグ装置
US7823131B2 (en) * 2001-06-29 2010-10-26 Mentor Graphics Corporation Debugger for a hardware-implemented operating system
US7073096B2 (en) * 2002-10-18 2006-07-04 Wind River Systems, Inc. File path resolving debugger
JP2005020349A (ja) * 2003-06-26 2005-01-20 Renesas Technology Corp 半導体集積回路および電子システム
US7401257B2 (en) * 2003-08-28 2008-07-15 Renesas Technology Corp. Microcomputer and method for developing system program
US7437623B2 (en) * 2003-11-05 2008-10-14 Texas Instruments Incorporated Apparatus and method for performing speculative reads from a scan control unit using FIFO buffer units
US7721265B1 (en) * 2003-11-10 2010-05-18 Cisco Technology, Inc. Source code debugging method and apparatus for use in script testing environment
JP2006268727A (ja) * 2005-03-25 2006-10-05 Seiko Epson Corp 集積回路装置、デバッグシステム、マイクロコンピュータ及び電子機器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001331340A (ja) * 2000-05-19 2001-11-30 Nec Corp コードチェックによるモード切替方式および方法
JP2003186693A (ja) * 2001-12-18 2003-07-04 Mitsubishi Electric Corp エミュレート機能を有するマイクロコントローラ
JP2004086525A (ja) * 2002-08-27 2004-03-18 Seiko Epson Corp 半導体装置及びそれを用いたインサーキットエミュレータ
JP2005107909A (ja) * 2003-09-30 2005-04-21 Kyocera Mita Corp デバッグ機能を備えるマルチプロセッサシステム及びマルチプロセッサシステムのプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010160765A (ja) * 2009-01-09 2010-07-22 Oki Semiconductor Co Ltd システムlsi及びこのデバッグ方法
JP2020177467A (ja) * 2019-04-18 2020-10-29 キヤノン株式会社 情報処理装置、情報処理装置の制御方法およびプログラム

Also Published As

Publication number Publication date
US20080263298A1 (en) 2008-10-23
US7917818B2 (en) 2011-03-29
US8103923B2 (en) 2012-01-24
US8010855B2 (en) 2011-08-30
US20110283094A1 (en) 2011-11-17
US20110161735A1 (en) 2011-06-30
JP4833907B2 (ja) 2011-12-07

Similar Documents

Publication Publication Date Title
JP4833907B2 (ja) 半導体装置
JP6433198B2 (ja) 安全なブートromパッチのためのシステム及び方法
US8156317B2 (en) Integrated circuit with secure boot from a debug access port and method therefor
US7917753B2 (en) Transferring control between programs of different security levels
US8176281B2 (en) Controlling access to an embedded memory of a microcontroller
US8683191B2 (en) Reconfiguring a secure system
US8065512B2 (en) Embedded memory protection
US8621298B2 (en) Apparatus for protecting against external attack for processor based on arm core and method using the same
US20080148343A1 (en) Debugging security mechanism for soc asic
US20100115202A1 (en) Methods and systems for microcode patching
US20020018380A1 (en) Semiconductor circuit
US7774758B2 (en) Systems and methods for secure debugging and profiling of a computer system
JP2008123106A (ja) マイクロコンピュータ及びマイクロコンピュータのデバッグ方法
JP2010231607A (ja) エミュレータ
US20070069012A1 (en) Security protected circuit
TWI472948B (zh) 控制系統及其安全檢查方法
JP2009506416A (ja) プロセッサハードウェアおよびソフトウェア
JP2007064762A (ja) 半導体装置、テストモード制御回路
JP2011243015A (ja) マイクロプロセッサ
US20070220612A1 (en) Protection of a program against a trap
KR20090128672A (ko) 다중 부팅 모드를 지원하는 장치 및 방법
JPH11120081A (ja) マイクロコンピュータシステム及びそのセキュリティ制御方法
JP2006107040A (ja) 半導体集積回路
JPS62251841A (ja) シングルチツプマイクロコンピユ−タ
JP2009070195A (ja) プログラム処理システムおよびプログラム処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100312

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110602

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110614

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110808

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4833907

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140930

Year of fee payment: 3

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