(57)【要約】【課題】揮発性メモリ（例えば、命令格納用ＲＡＭ）を搭載したチップを内蔵した半導体装置において、第三者がデバッガ機能を用いてデータを不正に入手することを防ぐセキュリティ機能を実現する必要があった。【解決手段】デバッグ機能を有する半導体装置であって、第一命令群を記憶する揮発性メモリ（命令ＲＡＭ１０４）と、第一命令群を実行する第一演算処理装置（演算処理装置１０２）と、第二命令群を記憶する不揮発性メモリと、第二命令群を実行する第二演算処理装置（演算処理装置２０２）と、第一演算処理装置へのデバッグ機能の実行を許可するか禁止するかを指定する制御信号を出力する制御信号出力手段（例えば、周辺回路部２０５）と、制御信号に基づいて、第一演算処理装置へのデバッグ機能の実施を制御するデバッグ制御部１０１と、を備える。【選択図】図１
2008269388.tif 000002
【特許請求の範囲】
【請求項１】
デバッグ機能を有する半導体装置であって、
第一命令群を記憶する揮発性メモリと、
前記第一命令群を実行する第一演算処理装置と、
第二命令群を記憶する不揮発性メモリと、
前記第二命令群を実行する第二演算処理装置と、
前記第一演算処理装置へのデバッグ機能の実行を許可するか禁止するかを指定する制御信号を出力する制御信号出力手段と、
前記制御信号に基づいて、前記第一演算処理装置へのデバッグ機能の実施を制御するデバッグ制御部と、を備える半導体装置。
【請求項２】
前記不揮発性メモリは、前記制御信号のレベル設定にかかわる制御情報を記憶し、
前記制御信号出力手段は、前記不揮発性メモリに記憶する前記制御情報に基づいて生成した制御信号を前記第一デバッグ制御部へ出力することを特徴とする請求項１記載の半導体装置。
【請求項３】
前記第二命令群は、前記制御信号の値を設定する命令を含み、
前記制御信号出力手段は、前記第二演算処理装置が命令を実行することによって値が設定された制御信号を前記第一デバッグ制御部へ出力することを特徴とする請求項２記載の半導体装置。
【請求項４】
前記不揮発性メモリは、前記制御情報として、前記第二演算処理装置へのデバッグ機能の実行を許可するか禁止するかを判定するために、外部から入力される情報と照合する照合情報を記憶し、
前記制御信号出力手段は、前記照合情報と、外部から入力される情報とに基づいて前記第二演算処理装置へのデバッグ機能の可否を判定した判定結果を前記制御信号として前記第一デバッグ制御部へ出力することを特徴とする請求項2記載の半導体装置。
【請求項５】
前記第一デバッグ制御部は、前記揮発性メモリから読み出した第一命令群のデータを設定するレジスタを有し、前記デバッグ機能の実行を禁止されている場合に、前記読み出された第一命令群のデータをレジスタへ設定しないことを特徴とする請求項１乃至４のいずれかに記載の半導体装置。
【請求項６】
前記第一演算処理装置、前記揮発性メモリ、及び前記第一デバッグ制御部は、第一チップへ搭載され、
前記第二演算処理装置、前記不揮発性メモリ、及び前記制御信号出力手段は、第二チップへ搭載されていることを特徴とする請求項１乃至５のいずれかに記載の半導体装置。
【請求項７】
前記揮発性メモリは、RAM（Random Access Memory）であることを特徴とする請求項１乃至６記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバッグ機能を有する半導体装置に関し、特に、演算処理装置と不揮発性メモリを含むチップと、演算処理装置と命令格納用ＲＡＭ（命令ＲＡＭ）を含むチップとを複数内蔵した半導体装置におけるデバッグ制御に関する。
【背景技術】
【０００２】
従来から、半導体装置にオンチップデバッグ装置を接続してデバッグを行う場合にデータの漏洩を防止する技術が開発されている。例えば、特許文献１に、オンチップデバッグ装置として、ＪＴＡＧ−ＩＣＥを接続してデバッグを行う場合に、内蔵プログラムまたはデータの漏洩を簡易なシステムで、確実に防止する発明が開示されている。この発明では、半導体装置内部に記憶するアクセスキーと外部から入力されたアクセスキーを比較し、一致した場合に、内部データを外部に出力することを許可している。これにより、内蔵プログラムを含むデータを第三者へ漏洩することを防止する。
【０００３】
近年、半導体装置、例えばシステムＬＳＩ（Large Scale Integration）などの組立技術が進み、複数チップを１つのパッケージに収める製品が出てきた。このシステムＬＳＩに命令ＲＡＭ（Random Access Memory）を内蔵したチップを搭載した場合、そのチップの制御プログラムの漏洩を防ぎたいという要求がある。
【０００４】
ここで、命令ＲＡＭを内蔵するチップを用いるメリットとして、制御プログラムを外部からダウンロードしてＲＡＭに格納するため、予め制御プログラムをコード化しなければならないマスクＲＯＭ（Read Only Memory）に比べ、必要に応じて変更が自由である点がある。従って、ダウンロードするプログラムを外部で変更することから、変更がやりやすく、どのような変更も可能になる。また、マスクＲＯＭや書換え可能な不揮発性メモリ（フラッシュメモリ）に比べ、高速動作が実現できる点も挙げられる。さらに、フラッシュメモリに比べ、比較的安価なプロセスで製造でき、低テストコストであるなど供給側のメリットもある。
【０００５】
しかし、制御プログラムを外部からダウンロードして動作する構成であるため、プログラムのセキュリティ確保の面では不利である。ダウンロード中のデータ流出を防いだとしても、ダウンロード完了後、デバッガ（デバッグ装置）からメモリを参照すればダウンロードしたプログラムが読み出されてしまう。デバッガの接続を禁止しようとしても、従来技術のようにアクセスキーを用いる場合、不揮発性メモリを備えていないため、アクセスキーを格納する場所がないなどの問題がある。ここで、アクセスキーの格納場所は、プログラム開発者がアクセス（設定）でき、かつ第三者がその設定値を解読することが困難な場所である必要があり、不揮発性メモリ内部に格納する例が知られている。
【０００６】
そのため、命令ＲＡＭを内蔵したチップでは、デバッガ機能自体を非公開にするなどして、プログラム開発効率低下や不具合解析の困難化を招いている。このようなチップおよびデバッガは、上記メリットの実現を優先し、プログラム保護をあきらめ、アクセスキーの照合機能など不正な第三者の接続を防止する構成を持たないことが多い。
【０００７】
上述した複数チップを搭載した半導体装置９０（システムＬＳＩ）の一例を、図６に示す。図６では、命令ＲＡＭを内蔵した内蔵チップＡ１９（例えば、ＤＳＰ：Digital Signal Processor）と、不揮発性メモリを内蔵した内蔵チップＢ２９（例えば、マイクロコンピュータ）とを収めた製品を示している。ここで内蔵チップＡ、Ｂの各々に専用のデバッガ接続が可能であり、内蔵チップＡ１９の制御プログラムは内蔵チップＢ２９の不揮発性メモリに格納され、内蔵チップＡ１９起動時にダウンロードする手段を備えるものとする。動作フローを図７に示す。不揮発性メモリを内蔵した内蔵チップＢ２９のデバッガ接続制御については上述したアクセスキーを用いることでセキュリティを確保している。一方、内蔵チップＡ１０については、制御プログラムのダウンロードはシステムＬＳＩ内部で行われるため（Ｓ８３〜Ｓ８６、Ｓ９１〜Ｓ９４）、漏洩の懸念はないが、デバッガを接続した場合に第三者への漏洩の危険があるのは上述のとおりである。
【０００８】
このようなシステムＬＳＩの内蔵チップＡ１９に対して、制御プログラムの漏洩を防止でき、かつ効率的なデバッグを行うため、第三者によるデバッガ接続を許可／禁止を指定できるデバッガ制御手段が求められる。
【特許文献１】特開２００３−１８６６９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、従来技術では、１つのパッケージに複数のチップが搭載されることを考慮していなかった。従って、従来技術では、１つのパッケージに複数のデバッグ機能を有するチップが搭載された場合の有効なデバッグ接続制御については、言及されていない。特に、搭載する複数チップの一方が、デバッグ接続時にプログラムのセキュリティを確保する仕組みを持たないチップである場合、例えば、命令ＲＡＭを搭載したチップではセキュリティ確保を諦めざるを得なかった。
【００１０】
また、従来のデバッガ接続許可／禁止制御は、デバッガ側から解除コードを入力し、内部に格納されているアクセスキーとの照合一致／不一致判定により行われるため、アクセスキーレジスタ、リソースアクセス回路などのハードウェアが増加し、かつデバッガ側制御ソフトが複雑化していた。
【００１１】
既存の設計資産を流用する場合、特に命令ＲＡＭを搭載した内蔵チップＡ１０、およびオンチップデバッガを流用する場合、デバッガ制御手段の導入に伴う変更量を最小限にしたいという要望がある。
【００１２】
さらに、デバッガ接続の制御を行わずに、内蔵チップＡ１０の制御プログラム（命令コード）の漏洩を防止するためにデバッグ機能自体を非公開にしてしまうと、プログラム開発時の開発効率や不具合解析時の容易性が損なわれていた。
【００１３】
このように、揮発性メモリ（例えば、命令格納用ＲＡＭ）を搭載したチップを内蔵した半導体装置において、第三者がデバッガ機能を用いてデータを不正に入手することを防ぐセキュリティ機能を実現する必要があった。
【課題を解決するための手段】
【００１４】
本発明に係る半導体装置の一態様は、デバッグ機能を有する半導体装置であって、第一命令群を記憶する揮発性メモリ（例えば、図１の命令ＲＡＭ１０４）と、第一命令群を実行する第一演算処理装置（例えば、図１の演算処理装置１０２）と、第二命令群を記憶する不揮発性メモリと、第二命令群を実行する第二演算処理装置（例えば、図１の演算処理装置２０２）と、第一演算処理装置のデバッグ機能の実行を許可するか禁止するかを指定する制御信号を出力する制御信号出力手段（例えば、図３の周辺回路部２０５、図４のＩＤ判定部２０８）と、制御信号に基づいて、第一演算処理装置のデバッグ機能を制御するデバッグ制御部と、を備える。
【発明の効果】
【００１５】
本発明によれば、揮発性メモリ（例えば、命令格納用ＲＡＭ）を搭載したチップを内蔵した半導体装置において、第三者がデバッガ機能を用いてデータを不正に入手することを防ぐセキュリティ機能を提供することが可能となる。これにより、第三者が半導体装置に接続するデバッガ機能を用いて、半導体装置が搭載する揮発性メモリから制御プログラムなどを含むデータの漏洩を防止することができる。
【発明を実施するための最良の形態】
【００１６】
（実施形態１）
以下、本発明の実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。各図面において同一の構成または機能を有する構成要素および相当部分には、同一の符号を付し、その説明は省略する。
【００１７】
図１は、本発明に係る半導体装置（システムＬＳＩ）の構成例を示すブロック図である。図１に示すとおり半導体装置１は、内蔵チップＡ１０（第一チップ）と内蔵チップＢ２０（第二チップ）の２チップで構成される。例えば、ＳｉＰ（System in Package）のように２チップが一つのパッケージに封止される。なお、ここでは、２チップで構成される例を説明するが、一つのチップを第一領域と第二領域の二つの領域に分けて同一チップ上にそれぞれを配置する場合であってもよい。
【００１８】
半導体装置１は、デバッグ機能を有する。ここで、デバッグ機能は、半導体装置１に外部のデバッグ装置を接続して命令の実行を検査する機能である。また、デバッグ機能の制御とは、デバッグ機能の実行を許可するか禁止するかを指定することである。具体的には、プログラムのデバッグ環境として、半導体装置１の外部にデバッグ装置２，３（例えば、オンチップデバッガ）が備えられ、それぞれ内蔵チップＡ１０、内蔵チップＢ２０に接続できる。ここでは、デバッグ装置２は内蔵チップＡ１０用であり、デバッグ装置３は内蔵チップＢ２０用である。
【００１９】
内蔵チップＡ１０は、デバッグ制御部１０１、演算処理装置（ＤＳＰ）１０２、データＲＡＭ１０３、命令ＲＡＭ１０４、周辺回路部１０５、バス１０６、及びブート制御部１０７を備える。
【００２０】
デバッグ制御部１０１は、外部のデバッグ装置２、および演算処理装置（ＤＳＰ）１０２と接続し、デバッグ装置２から受信したコマンドに従い演算処理装置（ＤＳＰ）１０２の内部状態をデバッグ装置２へ出力する。さらにデバッグ制御部１０１は、制御信号５のレベルにより動作可能（Ｈｉｇｈ）または初期化状態（Ｌｏｗ）を指定される。制御信号５は、内蔵チップＢ２０によってレベルが設定され、出力される。ここでは、制御信号のレベルがＨｉｇｈ（１）の場合はデバッグ装置２を接続することを許可し、制御信号のレベルがＬｏｗ（０）の場合はデバッグ装置２を接続することを禁止する場合を説明する。
【００２１】
演算処理装置（ＤＳＰ）１０２は命令ＲＡＭ１０４から命令コードをフェッチし実行する。実行によりデータＲＡＭ１０３へのアクセスおよびバス１０６を介して周辺回路部１０５へのアクセスを行う。
【００２２】
ブート制御部１０７は、内蔵チップＡ１０のリセット解除（リセット信号は図示せず）により動作し、演算処理装置（ＤＳＰ）１０２が実行すべきプログラム（命令コード群）を外部（図１では内蔵チップＢ２０の不揮発性メモリ）から命令ＲＡＭ１０４へロードする。
【００２３】
内蔵チップＢ２０は、デバッグ制御部２０１、演算処理装置（ＣＰＵ）２０２、不揮発性メモリ２０３、データＲＡＭ２０４、周辺回路部２０５、バス２０６、及びＩＤ判定部２０８を備える。不揮発性メモリに格納されたプログラム等のセキュリティは、従来技術にある方法などにより確保される。例えば、内蔵チップＢ２０は、デバッグ装置３の接続許可／禁止をＩＤコード照合一致／不一致で指定する。具体的には、不揮発性メモリにＩＤコードを記憶しておき、不揮発性メモリに記憶されていたＩＤコードと、外部から入力されるＩＤコード（デバッグ制御部２０１を経由してデバッグ装置３より入力するＩＤコード）と照合する。
【００２４】
演算処理装置２０２は、不揮発性メモリ２０３に記憶する命令コードをフェッチし実行する。
不揮発性メモリ２０３は、内蔵チップＢ２０が自己の機能を実現するために実行する命令コードに加え、内蔵チップＡ１０を制御する命令コード、内蔵チップＡ１０へ転送する命令コード、及び、内蔵チップＡ１０のデバッグ機能の制御にかかわる制御情報を記憶する。制御情報は、内蔵チップＡ１０へのデバッグ機能の実行の許可／禁止を指定する情報であり、デバッグ装置２を接続可能にするか否かにかかわる制御情報を記憶する。本実施形態では、制御情報として、演算処理装置２０２が制御信号の値を設定し、内蔵チップＡ１０のデバッグ制御部１０１へ出力することを指示する命令コードを記憶している場合を説明する。
【００２５】
周辺回路部２０５は、演算処理装置２０２が命令を実行することに伴い、制御信号をデバッグ制御部１０１へ出力する。
上記で説明した内蔵チップＢ２０の各構成要素が通常有する機能及びその他の内蔵チップＢ２０の構成は、公知の不揮発性メモリ（フラッシュメモリ）搭載マイコンと同様であるため、詳細な説明は省略する。
【００２６】
また、図１の半導体装置１の場合、内蔵チップＡ１０の起動（リセット解除）や停止（リセット入力）、及び命令コード群（制御するプログラム）の提供等を、内蔵チップＢ２０が制御・管理している。さらに、本実施形態では、内蔵チップＢ２０は、制御情報に基づいて、内蔵チップＡ１０に出力する制御信号を生成し、内蔵チップＡ１０へ出力する。従って、内蔵チップＢ２０は、内蔵チップＡ１０にデバッグ装置２の接続を許可するか禁止するかを指定する制御を行うことになる。本実施形態とは異なる制御情報の例については、他の実施形態で説明する。
【００２７】
なお、図１の構成において、内部メモリＡ１０と内部メモリＢ２０に同じ名称の構成要素がある場合、符号で区別するほか、内蔵チップＡ１０の構成要素では「第一」、内部メモリＢ２０が備える構成要素では「第二」をつけて、例えば第一デバッグ制御部として区別することもある。
【００２８】
続いて、半導体装置１の動作を説明する。図２は、本実施形態の半導体装置の動作の一例を示すフローチャートである。
図２を用いて、まず、デバッグ装置２が内蔵チップＡ１０に接続することを許可する動作を説明する。まず、内蔵チップＢ２０は、電源を印加され、その後リセット解除される（Ｓ１１）。このとき制御信号５は、初期化状態としてＬｏｗに設定されている。次に、演算処理装置２０２は、不揮発性メモリ２０３から命令をフェッチし、実行する（Ｓ１２）。これ以降、演算処理装置２０２が実施する処理は、不揮発性メモリ２０３からフェッチした命令の実行となる。
【００２９】
このときの命令には、内蔵チップＡ１０を制御する命令コードが含まれる。演算処理装置２０２は、制御信号５を設定する命令を実行し、制御信号５をＨｉｇｈにする（Ｓ１３）。設定された制御信号５は、デバッグ制御部１０１へ通知される。Ｈｉｇｈに設定された制御信号５がデバッグ制御部１０１へ通知された段階で、内蔵チップＡ１０は、デバッグ装置２が接続可能な状態になる。図２では、左端の矢印で示す期間では、制御信号５のレベルがＨｉｇｈとなって継続していることを示す。続いて、演算処理装置２０２は、内蔵チップＡ１０の電源印加を指示する（Ｓ１４）。この指示により、内蔵チップＡ１０の電源が印加される（Ｓ２１）。演算処理装置２０２は、内蔵チップＡ１０のリセット解除を指示する（Ｓ１５）。この指示により、内蔵チップＡ１０のリセットが解除される（Ｓ２２）。これにより、ブート制御部１０７が動作して、内蔵チップＢ２０へプログラムの転送を要求する（Ｓ２３）。
【００３０】
演算処理装置２０２は、不揮発性メモリ２０３に記憶する内蔵チップＡ１０のプログラムを内蔵チップＡ１０の転送を開始する（Ｓ１６）。転送されたプログラムは、内蔵チップＡ１０で受信され、命令ＲＡＭ１０４へ格納される（Ｓ２４）。内蔵チップＢ２０は、プログラム転送終了後、他の命令コードをフェッチし、実行する（Ｓ１７）。また、内蔵チップＡ１０は、ＲＡＭに格納したプログラムの命令をフェッチし、実行する（Ｓ２５）。以上がデバッグ装置２を接続することを許可する場合の動作である。
【００３１】
次に、デバッグ装置２が内蔵チップＡ１０に接続することを禁止する場合の動作を説明する。ステップＳ１３を除き同様の動作を行う。ステップ１３では、演算処理装置２０２は、制御信号５を設定する命令を実行し、制御信号５をＬｏｗにする。設定された制御信号５は、デバッグ制御部１０１へ通知される。Ｌｏｗに設定された制御信号５がデバッグ制御部１０１へ通知された段階で、内蔵チップＡ１０は、デバッグ装置２が接続禁止状態になる。図２の左端の矢印で示す期間においても初期化状態とかわらず制御信号のレベルはＬｏｗであり、デバッグ装置２が接続禁止状態となる初期化状態を継続する。
【００３２】
図３は、本実施形態の内蔵チップＡに備えるデバッグ制御部１０１、内蔵チップＢ２０に備える周辺回路部２０５、及び制御信号５の構成を詳細に示した図である。このため、図１に示した一部の構成要素は省略している。内蔵チップＡ１０において、デバッグ制御部１０１は、論理積回路（ＡＮＤ回路）１０１０と、デバッグ装置２との入出力を制御する入出力Ｉ／Ｆ部１０１１とを備える。内蔵チップ２０において、周辺回路部２０５は、ＩＯポートへ設定する値を保持するポートラッチ２０５０と、ポートラッチ２０５０に保持された値の出力を指示するＩ／Ｏ制御ビット２０５１とを備える。
【００３３】
周辺回路部２０５で制御信号５を生成する。従って、制御信号５を設定する命令を格納する不揮発性メモリ２０３、命令を実行する演算処理装置２０２、及びと制御信号５の値を保持して出力する周辺回路部２０５によって制御信号出力手段を実現している。本実施形態では演算処理装置（ＣＰＵ）２０２は、不揮発性メモリ２０３に格納された命令コードを実行して、周辺回路部２０５内のＩＯ（Input/Output）ポートのポートラッチ２０５０に許可／禁止を指定するデータを書込む。ポートラッチ２０５０は、リセット入力（図示せず）によりＬｏｗレベル（０）に初期化されている。一般的なＩＯポートは、入出力制御の指定もある。制御信号５を出力する場合は、Ｉ／Ｏ制御ビット２０５１に０を書込み、出力モードに設定する必要がある。
制御信号５は、リセット解除後はＬｏｗレベルであり、ポートラッチ２０５０に"１"を書込むとＨｉｇｈレベル、"０"を書込むとＬｏｗレベルとなる。
【００３４】
デバッグ制御部１０１は、制御信号５を入力してデバッグ装置２との接続を制御する。本実施形態では、論理積回路１０１０が外部より入力するＲＳＴ端子から入力する入力信号と制御信号５の論理積を取る。論理積回路１０１０の出力は入出力信号１０１２として入出力Ｉ／Ｆ部１０１１へ入力される。入出力Ｉ／Ｆ部１０１１は、入出力信号１０１２に基づいてデバッグ装置２との入出力を制御する。入出力信号１０１２は、ＲＳＴ端子入力がＨｉｇｈレベル（初期化解除）となっても、制御信号５がＬｏｗレベルである限りＬｏｗレベル（初期化状態）を継続する。入出力信号１０１２がＨｉｇｈレベル、かつ、制御信号５がＨｉｇｈレベルになったときにＨｉｇｈレベルとなる。
【００３５】
図３において、入出力信号１０１２がＬｏｗレベル期間中は、デバッグ制御部１０１は動作しないため、デバッグ装置２からのコマンドは無視され、接続禁止状態が実現できる。入出力信号１０１２がＨｉｇｈレベルになるとデバッグ制御部１０１が動作可能になりデバッグ装置２からのコマンド受信よりデバッグ機能が動作する。
【００３６】
全体の動作としては以下の２通りとなる。
（１）ポートラッチ２０５０＝０ライト
→制御信号５＝Ｌｏｗレベル
→ＲＳＴ解除（Ｈｉｇｈ）でも入出力信号１０１２＝Ｌｏｗレベルを継続
→デバッグ装置２接続禁止
（２）ポートラッチ２０５０＝１ライト
→制御信号５＝Ｈｉｇｈレベル
→ＲＳＴ解除により入出力信号１０１２＝Ｈｉｇｈレベルに変化
→デバッグ装置２接続許可
【００３７】
ポートラッチ２０５０に"０"をライトするか"１"をライトするかは、内蔵チップＢ２０が搭載する不揮発性メモリ２０３の格納プログラム（内蔵チップＢ２０の命令コード）で決まる。内蔵チップＡ１０のプログラム開発段階は、デバッグ装置２の接続が可能なように、ポートラッチ２０５０に"１"をライトする命令コードを格納すれば良い。そして、内蔵チップＡ１０のプログラム開発が完了した後、ポートラッチ２０５０に"０"をライトする命令コードを不揮発性メモリ２０３に格納することで、デバッグ装置２の接続が禁止できる。これにより、プログラムの漏洩が防止できる。
【００３８】
従って、不揮発性メモリ２０３には、内蔵チップＢ２０自身のプログラムと、内蔵チップＡ１０のプログラム、およびポートラッチ２０５０設定用の命令コード（制御情報の一態様）が格納されることになる。内蔵チップＢ２０の不揮発性メモリ２０３は従来技術によりセキュリティは確保されており、こちらからプログラムが漏洩することはない。
【００３９】
以上説明したように、本実施形態では、不揮発性メモリ２０３に格納されたプログラム（制御情報の一態様）に基づいて、内蔵チップＢ２０の演算処理装置２０２は、制御信号５設定する。内蔵チップＡ１０は、内蔵チップＢ２０から通知される制御信号５によって、デバッグ装置２が接続することを許可するか、禁止するかというデバッグ状態が設定される。このように、内蔵チップＡ１０は、内蔵チップＢ２０の制御に基づいてデバッグ状態が制御される。また、内蔵チップＢ２０の不揮発性メモリ２０３に記憶された制御情報に基づいてデバッグ状態を設定する。
【００４０】
また、同一の半導体装置１内にある内蔵チップＢ２０からの制御信号５を出力するため、アクセスキーレジスタ、リソースアクセス回路などのハードウェア増加や、デバッグ装置２側制御ソフトを複雑することなく、内蔵チップＡ１０のデバッグ装置接続の許可／禁止制御を行うことができる。
【００４１】
デバッグ装置２の接続制御が行えるため、内蔵チップＡ１０の制御プログラムの漏洩防止と、プログラム開発時の開発効率向上や不具合解析の容易化を実現できる。周辺回路部２０５のＩＯポート（ポートラッチ２０５０およびＩ／Ｏ制御ビット２０５１）は通常のマイクロコンピュータ（マイコン）には搭載されている機能であるため、内蔵チップＢ２０は特別な変更が不要である。また、デバッグ制御部１０１への回路増加も微々たるもので実現できる。
【００４２】
なお、本実施形態では、内蔵チップＡ１０は、ＤＳＰ、内蔵チップＢ２０は、マイクロコンピュータとして説明したが、これらに限られるわけではない。一方に揮発性メモリ、他方に不揮発性メモリを配置し、それぞれ演算処理装置を備える構成であれは、本実施形態を適用することができる。また、メモリの具体例として、揮発性メモリとしてＲＡＭ、不揮発性メモリとして、ＲＯＭ、フラッシュメモリなどがあげられる。
【００４３】
（実施形態２）
実施形態２では、内蔵チップＢ２０のデバッグ状態を制御する信号を用いて内蔵チップＡ１０のデバッグ状態を制御する一態様を説明する。ここでは、内蔵チップＢ２０のデバッグ状態を制御するＩＤ判定部２０８の判定結果に基づいて制御信号５を生成する場合を説明する。
【００４４】
本実施形態の半導体装置６の全体構成は、図１と同様であるため説明を省略する。但し、制御信号５の出力元が異なり、周辺回路部２０５から出力されず、ＩＤ判定部２０８から出力される信号が分岐して制御信号５となる。従って、周辺回路部２０５は、図６の周辺回路部２９５と同様の構成となる。図４は、本実施形態の内蔵チップＡに備えるデバッグ制御部１０１、内蔵チップＢ２０に備えるＩＤ判定部２０８、及び制御信号５の構成を詳細に示した図である。図４に示す内蔵チップＢ２１では、ＩＤ判定部の出力が分岐されて制御信号５とすることによって制御信号出力手段を実現している。
【００４５】
ＩＤ判定部２０８は、内蔵チップＢ２０に対するデバッグ装置３の接続の許可／禁止を、ＩＤコード（照合データ）の照合により判定する。ＩＤ判定部２０８は、ＩＤ照合レジスタ２０８０、ＩＤ格納レジスタ２０８１、及び比較回路２０８２を備えている。
【００４６】
ＩＤ照合レジスタ２０８０には、デバッグ装置３（図１参照）から入力されるＩＤコードがデバッグ制御部２０１を介して設定される。
ＩＤ格納レジスタ２０８１には、不揮発性メモリ２０３から所定アドレスに格納されているＩＤコード（照合情報）が設定される。
【００４７】
比較回路２０８２は、ＩＤ照合レジスタ２０８０とＩＤ格納レジスタ２０８１とへ設定されたＩＤコードを比較し、比較した結果信号２０８３をデバッグ制御部２０１へ出力する。ＩＤ判定部２０８は、内蔵チップＢ２０にデバッグ装置３を接続するデバッグ状態を二つのＩＤコードが一致した場合に許可し、一致しながった場合に禁止する。本実施形態では、この結果信号２０８３を分岐して制御信号５としてデバッグ制御部１０１へも供給する。
内蔵チップＡ１０のデバッグ制御部１０１の構成は図３と同様であるため説明を省略する。
【００４８】
本実施形態では、不揮発性メモリ２０３に記憶され、内蔵チップＢ２０のデバッグ状態を判定するときに照合するＩＤコードを、制御信号５のレベル設定（制御信号５の生成）にかかわる制御情報とする一態様を説明した。制御信号５は、内蔵チップＢ２０のデバッグ状態を判定する結果信号２０８３を用いて生成される。このため、不揮発性メモリ２０３内に制御信号５を指定するためのプログラムを格納しなくてもよく、内蔵チップＢ２０のデバッグ装置２接続許可／禁止の構成および手続きを利用できる。
【００４９】
このように、従来から内蔵チップＢ２０（すなわち、不揮発性メモリを備えるチップ）が備えている機能を利用して、揮発性メモリを備えるチップのデバッグ状態を制御することができる。但し、内蔵チップＡ１０と内蔵チップＢ２０とのデバッグ状態が連動することになる。このため、内蔵チップＡ１０のデバッグを行う場合には、内蔵チップＢ２０のデバッグ装置２の接続を許可することになる。
【００５０】
なお、本実施形態では、内蔵チップＢ２０へのデバッグ機能の実行を許可するか禁止するかを判定するＩＤ判定部２０８の判定結果を用いて、内蔵チップＡ１０へのデバッグ機能の実行の可否を指定する制御信号を生成する場合を説明した。この態様に限られることなく、不揮発性メモリに記憶する照合データと外部から入力される情報とを照合して制御信号を生成する場合であってもよい。回路構成が増えるものの、内蔵チップＢ２０の判定結果を利用するのではなく、内蔵チップＡ１０へのデバッグ機能の可否を判定する内蔵チップＡ用照合情報を不揮発性メモリ２０３へ記憶させ、内蔵チップＡ用照合情報と外部から入力される情報とを照合する内蔵チップＡ用照合部（制御信号出力手段）を内蔵チップＢ２０に別途備える構成も可能である。
【００５１】
（実施形態３）
実施形態３では、デバッグ装置２との入出力を制御するデバッグ制御部において特定のメモリに格納されたデータのセキュリティを強化する一態様を説明する。具体的には、制御信号５のレベルに基づいて、デバッグ制御部において特定の揮発性メモリに格納されたデータの漏洩を防止する仕組みの一例を説明する。半導体装置の構成は図１と同様である。但し、制御信号５の出力元は、実施形態１（図１、３）、実施形態２（図４）のいずれの場合であってもよい。デバッグ制御部に備える入出力Ｉ／Ｆ部の具体的構成が異なっている。
【００５２】
図５は、本実施形態のデバッグ制御部１１０の構成例を示す図である。図５では、デバッグ制御部１１０、デバッグ装置２、及び内蔵チップＡ１１内の構成要素の一部との関係を示している。図５に示す入出力Ｉ／Ｆ部１１１０は、論理和回路（ＯＲ回路）１１１１、ＡＮＤゲート１１１２、及びシフトレジスタ１１１３を備える。ＡＮＤゲート１１１２が有する論理積回路の数とシフトレジスタのレジスタの数とは一致する。
【００５３】
まず、デバッグ装置２、デバッグ制御部１１０、及び演算処理装置１０９の動作の概略を説明する。内部バス１０８は、デバッグ制御部１１０と演算処理装置１０９とを接続するバスである。デバッグ制御部１１０は、デバッグ装置２から入力されるコマンドを取り込み、演算処理装置１０９へアクセス制御信号８（命令ＲＡＭ１０４のリード実行指示）を出力する。演算処理装置１０９は、アクセス制御信号８に基づいて処理を実行（命令ＲＡＭ１０４のリード）する。次に演算処理装置１０９はデバッグ制御部１１０へ処理実行結果（命令ＲＡＭリード値）を内部バス１０８経由で送る。この際、演算処理装置１０９は命令ＲＡＭリード値出力信号９をアクティブ（Ｈｉｇｈレベル）にする。命令ＲＡＭリード値出力信号９をアクティブ（Ｈｉｇｈレベル）にする点が、図１に示す演算処理装置１０２と異なる点である。
【００５４】
続いて、入出力Ｉ／Ｆ部１１１０の構成要素を説明する。
入出力Ｉ／Ｆ部１１１０は、制御信号５と命令ＲＡＭリード値出力信号９を入力し、アクセス制御信号８を出力する。
論理和回路１１１１は、制御信号５と命令ＲＡＭリード値出力信号９とを入力し、論理和をデータマスク信号１１１４として出力する。
【００５５】
ＡＮＤゲート１１１２では、論理積回路それぞれについて、一方の入力に内部バス１０８から入力されるデータの１ビット毎が接続され、もう一方にデータマスク信号１１１４が接続されている。ＡＮＤゲートの出力はシフトレジスタ１１１２にそれぞれ格納される。ここでデータマスク信号１１１４は、制御信号５と命令ＲＡＭリード値出力信号９の論理を取った信号である。シフトレジスタ１１１３はＡＮＤゲート１１１２の出力を格納し、ＤＯ端子からＣＫ信号に同期してデバッグ装置２へ出力する。
【００５６】
次に、データマスク信号１１１４について説明する。表１にデータマスク信号１１１４の生成論理の一例を示す。
【表１】
2008269388.tif 000003
【００５７】
ここで、制御信号５がＬｏｗレベルの場合はデバッグ装置２接続禁止指定である。その状態で命令ＲＡＭリード値出力信号９がＨｉｇｈレベルになると、データマスク信号１１１４がＬｏｗレベルになり、ＡＮＤゲート出力はＬｏｗレベル固定になる。そのためシフトレジスタ１１１３の格納データは、内部バス１０８の値によらず常に０となる。このように、制御信号５がＬｏｗレベルの場合は、命令ＲＡＭをリードしたデータがＤＯ端子から外部に出力されることはなく、命令ＲＡＭ１０４に格納されたデータ（命令コード）のセキュリティは守られる。
【００５８】
制御信号５がＨｉｇｈレベルの場合、および制御信号５がＬｏｗレベルでかつ命令ＲＡＭリード値出力信号９がＬｏｗレベルの場合は、内部バス１０８の値がシフトレジスタ１１１２に格納され、ＤＯ端子からデバッグ装置に出力される。しかし、出力されるデータは、命令ＲＡＭ１０４に格納されたデータ以外であるためセキュリティ上の問題はない。このようにして、命令ＲＡＭ１０４に格納されたデータのセキュリティが確保できる。
【００５９】
また、本実施形態では、デバッグ制御部１１０は、制御信号５のレベルがＬｏｗであっても、デバッグ装置２から入力される命令のうち、ＲＡＭ１０４以外のアクセスの命令波を受け付ける。従って、命令ＲＡＭ１０４に格納されたデータ表示以外のデバッグは実行できる。そのため、プログラム情報を知っている設計者であれば、市場投入するために制御信号５＝Ｌｏｗレベルに固定したサンプルでも最低限のデバッグができる。これにより、市場投入前、あるいはその後のクレーム解析などにデバッグ機能を使用する場合に有効である。
【００６０】
このように、本実施形態では、命令ＲＡＭ１０４のリード時だけ、内部バス１０８のデータをデバッグ装置２に出力させない構成を実現できる。このため、命令ＲＡＭ１０４に格納されたデータの漏洩を防止することができる。即ち、特定の揮発性メモリに格納されたデータの漏洩を防止することができる。また、特定のメモリのデータ漏洩を防止しつつ、データの漏洩の防止が必要ないメモリへのアクセスについて、デバッグ機能を実行することができる。
【００６１】
以上のように、本発明に係る好適な実施形態によれば、揮発性メモリ、例えば、命令格納用ＲＡＭ（命令ＲＡＭ１０４）を搭載したチップを内蔵した半導体装置において、チップの制御プログラムが不正に漏洩されることを防止できる。また、制御信号に基づいてデバッグ装置の接続ができるため、プログラム開発時の開発効率向上や不具合解析の容易化を実現できる。
【００６２】
また、半導体装置内に配置される他の内蔵チップ（ここでは内蔵チップＢ２０）からの制御信号５を出力するため、アクセスキーレジスタ、リソースアクセス回路などのハードウェア増加や、デバッグ装置２側制御ソフトを複雑することなく上記効果を実現できる。
【００６３】
なお、本発明は上記に示す実施形態に限定されるものではない。本発明の範囲において、上記実施形態の各要素を、当業者であれば容易に考えうる内容に変更、追加、変換することが可能である。
【図面の簡単な説明】
【００６４】
【図１】本発明に係る半導体装置（システムＬＳＩ）の構成例を示すブロック図である。
【図２】実施形態１の半導体装置の動作の一例を示すフローチャートである。
【図３】実施形態１の内蔵チップＡに備えるデバッグ制御部、内蔵チップＢに備える周辺回路部、及び制御信号の構成を詳細に示した図である。
【図４】実施形態２の内蔵チップＡに備えるデバッグ制御部、内蔵チップＢに備えるＩＤ判定部、及び制御信号の構成を詳細に示した図である。
【図５】実施形態３のデバッグ制御部の構成例を示す図である。
【図６】従来の複数チップを搭載したシステムＬＳＩの一例を示す図である。
【図７】従来の複数チップを搭載したシステムＬＳＩの動作の一例を示すフローチャートである。
【符号の説明】
【００６５】
１，６  半導体装置
１０、１１  内蔵チップＡ
２０、２１  内蔵チップＢ
１０１  デバッグ制御部
１０２、１０９  演算処理装置
１０３  命令ＲＡＭ
１０４  データＲＡＭ
１０５  周辺回路部
１０６  バス
１０７  ブート制御部
１０８  内部バス
２０１  デバッグ制御部
２０２  演算処理装置
２０３  不揮発性メモリ
２０４  データＲＡＭ
２０５  周辺回路部
２０６  バス
２０８  ＩＤ判定部
１０１０  論理積回路
１０１１、１１１０  入出力Ｉ／Ｆ部
１１１１  論理和回路
１１１２  ＡＮＤゲート
１１１３  シフトレジスタ
２０５０  ポートラッチ
２０５１  Ｉ／Ｏ制御ビット
２０８０  ＩＤ照合レジスタ
２０８１  ＩＤ格納レジスタ
２０８２  比較回路
ＲＳＴ、ＤＩ、ＣＫ  入力端子
ＤＯ  出力端子
【図１】
2008269388.tif 000004
【図２】
2008269388.tif 000005
【図３】
2008269388.tif 000006
【図４】
2008269388.tif 000007
【図５】
2008269388.tif 000008
【図６】
2008269388.tif 000009
【図７】
2008269388.tif 000010