(57)【特許請求の範囲】
【請求項１】
プログラムを含むデータが保持されたメモリとマイクロプロセッサとがバスを介して接続された半導体集積回路において、
前記プログラムのデバッグを支援するデバッガが接続される接続部と、
この接続部に前記デバッガが接続されたことを検出すると接続検出信号をオンする接続検出部と、
この接続検出信号がオンのとき、
前記マイクロプロセッサから出力される前記メモリへのアクセス制御信号がオンされることで前記バスにブレークデータを出力し、このブレークデータと前記アクセス制御信号のオンに伴って前記メモリが前記バスに出力する前記データとを衝突させ、前記バスに伝搬するデータを不定にするバス出力部と、
を備えることを特徴とする半導体集積回路。
【請求項２】
請求項１記載の半導体集積回路において、
前記バスは複数ビットで構成されるパラレルバスであり、
前記ブレークデータは、隣接するビットが異なる値であることを特徴とする半導体集積回路。
【請求項３】
請求項１または請求項２記載の半導体集積回路において、
前記バスは、アドレスバス、もしくはデータバスであることを特徴とする半導体集積回路。
【請求項４】
請求項１〜請求項３のいずれか１項記載の半導体集積回路において
前記バス出力部は、
電流抑制手段を介して前記バスに接続されることを特徴とする半導体集積回路。
【請求項５】
請求項１〜請求項４のいずれか１項記載の半導体集積回路において、
前記接続検出部または前記バス出力部は、
所定の言語でプログラムされたプログラムブルロジックデバイスで構成されることを特徴とする半導体集積回路。
【請求項６】
請求項１〜請求項４のいずれか１項記載の半導体集積回路において、
前記バス出力部は、
自らが選択されるセレクトポートと、前記アクセス制御信号を受信する制御ポートと、前記セレクトポートおよび前記アクセス制御信号の両方が有効になることにより前記ブレークデータを出力する出力ポートと、を有する記憶手段で構成され、
前記接続検出信号を前記セレクトポートに接続し、前記制御信号を前記制御ポートに接続し、前記出力ポートを前記バスに接続することを特徴とする半導体集積回路。
【請求項７】
請求項１〜請求項５のいずれか１項記載の半導体集積回路において、
前記接続検出部は、
前記デバッガから前記接続部を介してコマンドを受信して保持し、該保持したコマンドに基づき前記接続検出信号をオフするコマンド受信手段を備えることを特徴とする半導体集積回路。
【請求項８】
請求項７記載の半導体集積回路において、
前記コマンドは、第１コマンドと第２コマンドとからなり、
前記コマンド受信手段は、
前記第１コマンドを受信してから所定の時間以内に前記第２コマンドを受信することで前記第１コマンドもしくは前記第２コマンドを前記コマンドとして保持することを特徴とする半導体集積回路。
【請求項９】
プログラムを含むデータが保持されたメモリとマイクロプロセッサとがバスを介して接続された半導体集積回路において、
前記プログラムのデバッグを支援するデバッガが接続される接続部と、
この接続部に前記デバッガが接続されたことを検出すると接続検出信号をオンする接続検出部と、
この接続検出信号がオンのとき、
前記マイクロプロセッサから出力される前記メモリへのアクセス制御信号がオンされることで前記マイクロプロセッサにリセット信号を供給するバス出力部と、
を備えることを特徴とする半導体集積回路。
【請求項１０】
プログラムを含むデータが保持された不揮発性メモリと、揮発性メモリと、マイクロプロセッサとがバスを介して接続され、前記揮発性メモリには、前記不揮発性メモリに保持された前記データの少なくとも一部写しが保持された半導体集積回路において、
前記プログラムのデバッグを支援するデバッガが接続される接続部と、
この接続部に前記デバッガが接続されたことを検出すると接続検出信号をオンする接続検出部と、
この接続検出信号がオンのとき、
前記マイクロプロセッサから出力される前記不揮発性メモリまたは前記揮発性メモリへのアクセス制御信号がオンされることで前記バスにブレークデータを出力し、このブレークデータと前記アクセス制御信号のオンに伴って前記不揮発性メモリまたは前記揮発性メモリが前記バスに出力する前記データとを衝突させ、前記バスに伝搬するデータを不定にするバス出力部と、
を備えることを特徴とする半導体集積回路。
【請求項１１】
プログラムを含むデータが保持されたメモリと、このメモリにバスを介して接続され、前記プログラムを実行するマイクロプロセッサと、前記プログラムのデバッグを支援するデバッガが接続される接続部と、を有する半導体集積回路におけるデータ漏洩防止方法であって、
前記接続部に前記デバッガが接続されたことを検出すると接続検出信号をオンする第１のステップと、
この接続検出信号がオンされているとき、
前記マイクロプロセッサから出力される前記メモリへのアクセス制御信号がオンされることで前記バスにブレークデータを出力し、このブレークデータと前記アクセス制御信号のオンに伴って前記メモリが前記バスに出力する前記データとを衝突させ、前記バスに伝搬するデータを不定にする第２のステップと、
を有することを特徴とするデータ漏洩防止方法。
【請求項１２】
請求項１１記載のデータ漏洩防止方法において、
前記第１のステップには、
前記デバッガから前記接続部を介してコマンドを受信して保持し、該保持されたコマンドに基づき前記接続検出信号をオフする第１のサブステップを含むことを特徴とするデータ漏洩防止方法。
【請求項１３】
請求項１２記載のデータ漏洩防止方法において、
前記コマンドは、第１コマンドと第２コマンドとからなり、
前記第１のサブステップにおいて、
前記第１コマンドを受信してから所定の時間以内に前記第２コマンドを受信することで前記第１コマンドもしくは前記第２コマンドを前記コマンドとして保持することを特徴とするデータ漏洩防止方法。
【請求項１４】
プログラムを含むデータが保持されたメモリと、このメモリにバスを介して接続され、前記プログラムを実行するマイクロプロセッサと、前記プログラムのデバッグを支援するデバッガが接続される接続部と、を有する半導体集積回路におけるデータ漏洩方法であって、
前記接続部に前記デバッガが接続されたことを検出し接続検出信号をオンするステップと、
この接続検出信号がオンされているとき、
前記マイクロプロセッサから出力される前記メモリへのアクセス制御信号がオンされることで前記マイクロプロセッサにリセット信号を供給するステップと、
を有することを特徴とするデータ漏洩防止方法。
【請求項１５】
プログラムを含むデータが保持された不揮発性メモリと、揮発性メモリと、マイクロプロセッサとがバスを介して接続され、前記揮発性メモリには、前記不揮発性メモリに保持された前記データの少なくとも一部写しが保持された半導体集積回路におけるデータ漏洩防止方法であって、
接続部にデバッガが接続されたことを検出し接続検出信号をオンするステップと、
この接続検出信号がオンされているとき、
前記マイクロプロセッサから出力される前記不揮発性メモリまたは前記揮発性メモリへのアクセス制御信号がオンされることで前記バスにブレークデータを出力し、このブレークデータと前記アクセス制御信号のオンに伴って前記不揮発性メモリまたは前記揮発性メモリが前記バスに出力する前記データとを衝突させ、前記バスに伝搬するデータを不定にするステップと、
を有することを特徴とするデータ漏洩防止方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、半導体集積回路およびデータ漏洩防止方法に係り、特に、パワーエレクトロニクス技術を応用した電力変換装置の制御装置等の組込みシステムにおいて、プログラムやデータ等の知的財産保護に用いて好適な技術に関する。
【背景技術】
【０００２】
最近の電力変換装置の制御装置等、組込みシステムに使用されるマイクロプロセッサでは、ＪＴＡＧ（Joint Test Action Group）を使用したインタフェースをデバック機能として搭載することが主流になっている。
【０００３】
ところで、ＰＣ（Personal Computer）等、汎用のコンピュータシステムは勿論のこと、組込みシステムにおいても知的財産であるプログラムやデータ等、ソフトウェアの保護は重要な設計事項になっている。しかしながら、上記したＪＴＡＧインタフェースを用いると、半導体集積回路に内蔵されたフラッシュＲＯＭや内蔵ＲＡＭに保持されるプログラムやデータを自由に読みだすことが出来る。
【０００４】
図６に、マイクロプロセッサ１００ａに、外付けフラッシュＲＯＭ１２０と外付けＲＡＭ１３０が、アドレスバス１５０とデータバス１６０経由で接続され、使用される、一般的な組込みシステム（制御装置１００）の構成を示す図である。ＪＴＡＧ−ＩＣＥ（In Circuit Emulator）等のデバッガ２００は、ＪＴＡＧポート１１０を介してマイクロプロセッサ１００ａに接続される。
【０００５】
ソフトウェアの保護機能を持たない制御装置１００の場合、外付けフラッシュＲＯＭ１２０には、暗号化ソフトウェアと、この暗号化ソフトウェアを解読するための復号化ソフトウェアとが保持されている。この理由は、第三者がＰｔ板に半田付けされた外付けフラッシュＲＯＭ１２０をシステムから取り外し、不図示のフラッシュＲＯＭライタ等により保持されたこれらソフトウェアが読み出されることを防ぐためである。
【０００６】
マイクロプロセッサ１００ａは、リセット解除後の初期化処理の過程で、外付けフラッシュＲＯＭ１２０に保持された復号化ソフトウェアを使用して暗号化されたソフトウェアを暗号化前の元のソフトウェアに変換し、外付けＲＡＭ１３０に保持する処理を行う。マイクロプロセッサ１００ａは、上記した処理の後、外付けＲＡＭ１３０に保持された暗号化前のソフトウェアを使用して組込みシステムが持つ本来の処理を行う。
【０００７】
従来、第三者によるＪＴＡＧインタフェースを介したプログラムやデータの読み出しが出来ないような仕組みが開発され、多数特許出願されている。例えば、特許文献１には、内蔵フラッシュＲＯＭにセキュリティビットを設け、このセキュリティビットをＯＮすることでＪＴＡＧインタフェースの機能を禁止してフラッシュＲＯＭに保持されたプログラムの読出しが出来ない仕組みが開示されている。また、特許文献２には、ＪＴＡＧインタフェースにＩＣＥ等のデバッグ機器が接続されているときは、内蔵ＲＡＭのアクセスを禁止することで内蔵ＲＡＭに保持されたプログラムの読み出しが出来ない仕組みが開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００２−３２２６７号公報
【特許文献２】特開２００９−２５９０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上記した電力変換装置に使用される組込みシステムにおいても、最近ではソフトウェアの容量が大規模化し、マイクロプロセッサに外付けフラッシュＲＯＭや外付けＲＡＭ等を使用するケースが多くなって来ている。この組込みシステムにおいてもプログラムやデータの保護が重要になって来ているが、ＪＴＡＧインタフェースからプログラムやデータの読み出しを防止する対象は、特許文献１や特許文献２に開示されているように、マイクロプロセッサに内蔵されたフラッシュＲＯＭやＲＡＭに保持されたものであり、外付けフラッシュＲＯＭや外付けＲＡＭ等の外付けメモリに保持されたものではない。
【００１０】
また、マイクロプロセッサに外付けメモリを接続して使用する場合、フラッシュＲＯＭを内蔵しないマイクロプロセッサを使用することも多い。そのようなマイクロプロセッサでもＪＴＡＧインタフェースが搭載されたものは多いが、ＪＴＡＧインタフェースを介して外付けメモリに保持されたプログラムやデータの漏洩を防止する機能を持つものは存在しなかった。
【００１１】
本発明は上記した課題を解決するためになされたものであり、ＪＴＡＧ等のデバッグインタフェースが搭載されたマイクロプロセッサにバス経由でメモリが接続されるケースにおいても、メモリに保持されたプログラムやデータの読み出し保護が可能な、半導体集積回路およびソフトウェア漏洩防止方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記した課題を解決するために本発明の第１の観点に係る半導体集積回路は、プログラムを含むデータが保持されたメモリとマイクロプロセッサとがバスを介して接続された半導体集積回路において、前記プログラムのデバッグを支援するデバッガが接続される接続部と、この接続部に前記デバッガが接続されたことを検出すると接続検出信号をオンする接続検出部と、この接続検出信号がオンのとき、前記マイクロプロセッサから出力される前記メモリへのアクセス制御信号がオンされることで前記バスにブレークデータを出力し、このブレークデータと前記アクセス制御信号のオンに伴って前記メモリが前記バスに出力する前記データとを衝突させ、前記バスに伝搬するデータを不定にするバス出力部と、を備えることを特徴とする。
【００１３】
本発明の第１の観点に係る半導体集積回路によれば、バス出力部が、デバッガが接続されたことを示す接続検出信号と、マイクロプロセッサからのアクセス制御信号が共に有効である場合に、バスに対して所定のデータを出力する。このため、所定のデータと、メモリに保持されバスに出力されるデータとが衝突することでバスを伝搬するデータが破壊されて不定になるため、マイクロプロセッサにバス経由で接続されるメモリに保持されたプログラムやデータの読み出し保護が可能になる。
本発明の第１の観点に係る半導体集積回路において、前記バスは複数ビットで構成されるパラレルバスであり、前記ブレークデータは、隣接するビットが異なる値であることを特徴とする。
【００１４】
本発明の第１の観点に係る半導体集積回路において、前記バスは、アドレスバス、もしくはデータバスであることを特徴とする。
本発明の第１の観点に係る半導体集積回路において、前記バス出力部は、電流抑制手段を介して前記バスに接続されることを特徴とする。
【００１５】
本発明の第１の観点に係る半導体集積回路において、前記接続検出部または前記バス出力部は、所定の言語でプログラムされたプログラムブルロジックデバイスで構成されることを特徴とする。
【００１６】
本発明の第１の観点に係る半導体集積回路において、前記バス出力部は、自らが選択されるセレクトポートと、前記アクセス制御信号を受信する制御ポートと、前記セレクトポートおよび前記アクセス制御信号の両方が有効になることにより前記ブレークデータを出力する出力ポートと、を有する記憶手段で構成され、前記接続検出信号を前記セレクトポートに接続し、前記制御信号を前記制御ポートに接続し、前記出力ポートを前記バスに接続することを特徴とする。
【００１７】
本発明の第１の観点に係る半導体集積回路において、前記接続検出部は、前記デバッガから前記接続部を介してコマンドを受信して保持し、該保持したコマンドに基づき前記接続検出信号をオフするコマンド受信手段を備えることを特徴とする。本発明によれば、所定のコマンドを受信するとバスへの所定のデータの出力を阻止することで、プログラムやデータの保護が、メーカの保守要員によるデバッグ作業の妨げになることを回避することができる。
【００１８】
本発明の第１の観点に係る半導体集積回路において、前記コマンドは、第１コマンドと第２コマンドとからなり、前記コマンド受信手段は、前記第１コマンドを受信してから所定の時間以内に前記第２コマンドを受信することで前記第１コマンドもしくは前記第２コマンドを前記コマンドとして保持することを特徴とする。本発明によれば、第三者による試行錯誤に基づくコマンド送信の偶然の一致によるバスへの所定のデータの出力阻止を制御することができる。
【００１９】
本発明の第２の観点に係る半導体集積回路は、プログラムを含むデータが保持されたメモリとマイクロプロセッサとがバスを介して接続された半導体集積回路において、前記プログラムのデバッグを支援するデバッガが接続される接続部と、この接続部に前記デバッガが接続されたことを検出すると接続検出信号をオンする接続検出部と、この接続検出信号がオンのとき、前記マイクロプロセッサから出力される前記メモリへのアクセス制御信号がオンされることで前記マイクロプロセッサにリセット信号を供給するバス出力部と、を備えることを特徴とする。
【００２０】
本発明の第２の観点に係る半導体集積回路によれば、バス出力部が、デバッガが接続されたときに接続検出部により出力される接続検出信号がオンのとき、マイクロプロセッサから出力されるメモリへのアクセス制御信号がオンされることでマイクロプロセッサにリセット信号を供給する。このため、マイクロプロセッサは、リセット信号を受信する毎に初期化され、都度初期ルーチンから起動されるため、連続してプログラムが読み込まれることが無くなり、プログラム保護に有効な手段として提供することが出来る。
【００２１】
本発明の第３の観点に係る半導体集積回路は、プログラムを含むデータが保持された不揮発性メモリと、揮発性メモリと、マイクロプロセッサとがバスを介して接続され、前記揮発性メモリには、前記不揮発性メモリに保持された前記データの少なくとも一部写しが保持された半導体集積回路において、前記プログラムのデバッグを支援するデバッガが接続される接続部と、この接続部に前記デバッガが接続されたことを検出すると接続検出信号をオンする接続検出部と、この接続検出信号がオンのとき、前記マイクロプロセッサから出力される前記不揮発性メモリまたは前記揮発性メモリへのアクセス制御信号がオンされることで前記バスにブレークデータを出力し、このブレークデータと前記アクセス制御信号のオンに伴って前記不揮発性メモリまたは前記揮発性メモリが前記バスに出力する前記データとを衝突させ、前記バスに伝搬するデータを不定にするバス出力部と、を備えることを特徴とする。
【００２２】
本発明の第３の観点に係る半導体集積回路によれば、バス出力部は、デバッガが接続されたときに接続検出部により出力される接続検出信号がオンのとき、マイクロプロセッサから出力される不揮発性メモリまたは揮発性メモリへのアクセス制御信号がオンされることでバスにブレークデータを出力し、このブレークデータとアクセス制御信号のオンに伴って不揮発性メモリまたは揮発性メモリがバスに出力するデータとを衝突させ、バスに伝搬するデータを不定にする。したがって、マイクロプロセッサにバス経由で接続される揮発性メモリに保持された不揮発性メモリの少なくとも一部写しであるプログラムやデータの保護が可能になる。
【００２３】
本発明の第４の観点に係るデータ漏洩防止方法は、プログラムを含むデータが保持されたメモリと、このメモリにバスを介して接続され、前記プログラムを実行するマイクロプロセッサと、前記プログラムのデバッグを支援するデバッガが接続される接続部と、を有する半導体集積回路におけるデータ漏洩防止方法であって、前記接続部に前記デバッガが接続されたことを検出すると接続検出信号をオンする第１のステップと、この接続検出信号がオンされているとき、前記マイクロプロセッサから出力される前記メモリへのアクセス制御信号がオンされることで前記バスにブレークデータを出力し、このブレークデータと前記アクセス制御信号のオンに伴って前記メモリが前記バスに出力する前記データとを衝突させ、前記バスに伝搬するデータを不定にする第２のステップと、を有することを特徴とする。
【００２４】
本発明の第４の観点に係るデータ漏洩防止方法において、前記第１のステップには、前記デバッガから前記接続部を介してコマンドを受信して保持し、該保持されたコマンドに基づき前記接続検出信号をオフする第１のサブステップを含むことを特徴とする。
【００２５】
本発明の第４の観点に係るデータ漏洩防止方法において、前記コマンドは、第１コマンドと第２コマンドとからなり、前記第１のサブステップにおいて、前記第１コマンドを受信してから所定の時間以内に前記第２コマンドを受信することで前記第１コマンドもしくは前記第２コマンドを前記コマンドとして保持することを特徴とする。
【００２６】
本発明の第５の観点に係るデータ漏洩防止方法は、プログラムを含むデータが保持されたメモリと、このメモリにバスを介して接続され、前記プログラムを実行するマイクロプロセッサと、前記プログラムのデバッグを支援するデバッガが接続される接続部と、を有する半導体集積回路におけるデータ漏洩方法であって、前記接続部に前記デバッガが接続されたことを検出し接続検出信号をオンするステップと、この接続検出信号がオンされているとき、前記マイクロプロセッサから出力される前記メモリへのアクセス制御信号がオンされることで前記マイクロプロセッサにリセット信号を供給するステップと、を有することを特徴とする。
【００２７】
本発明の第６の観点に係るデータ漏洩防止方法は、プログラムを含むデータが保持された不揮発性メモリと、揮発性メモリと、マイクロプロセッサとがバスを介して接続され、前記揮発性メモリには、前記不揮発性メモリに保持された前記データの少なくとも一部写しが保持された半導体集積回路におけるデータ漏洩防止方法であって、接続部にデバッガが接続されたことを検出し接続検出信号をオンするステップと、この接続検出信号がオンされているとき、前記マイクロプロセッサから出力される前記不揮発性メモリまたは前記揮発性メモリへのアクセス制御信号がオンされることで前記バスにブレークデータを出力し、このブレークデータと前記アクセス制御信号のオンに伴って前記不揮発性メモリまたは前記揮発性メモリが前記バスに出力する前記データとを衝突させ、前記バスに伝搬するデータを不定にするステップと、を有することを特徴とする。
【発明の効果】
【００２８】
本発明によれば、ＪＴＡＧ等のデバッグインタフェースが搭載されたマイクロプロセッサにバス経由でメモリが接続され、使用するケースにおいても、メモリに保持されたプログラムやデータの読み出し保護が可能な、半導体集積回路およびソフトウェア漏洩防止方法を提供することができる。
【図面の簡単な説明】
【００２９】
【図１】本発明の実施の形態に係る半導体集積回路の構成を示すブロック図である。
【図２】本発明の実施の形態に係る半導体集積回路のバス出力部の内部構成の一例を示すブロック図である。
【図３】本発明の実施の形態に係る半導体集積回路において、デバッガが接続されていない場合の動作を示すタイミング図である。
【図４】本発明の実施の形態に係る半導体集積回路において、デバッガが接続された場合の動作を示すタイミング図である。
【図５】本発明の実施の形態に係る半導体集積回路のバス出力部の内部構成の他の例を示すブロック図である。
【図６】一般的な組み込みシステムの構成を示すブロック図である。
【発明を実施するための形態】
【００３０】
以下、添付図面を参照して本発明を実施するための実施の形態（以下、単に本実施形態という）について詳細に説明する。
（実施形態の構成）
図１は、本実施形態に係る半導体集積回路の構成を示すブロック図である。ここでは、半導体集積回路として、電力変換装置の制御装置１等の組み込みシステムを例示して説明する。
【００３１】
図１に示されるように、制御装置１は、マイクロプロセッサ１０と、ＪＴＡＧポート１１と、外付けフラッシュＲＯＭと、外付けＲＡＭ１３と、ＰＬＤ（Programmable Logic Device）１４と、を含み構成される。ＰＬＤ１４を除けば、図６に示した一般的な組み込みシステムと同様の構成を有する。すなわち、マイクロプロセッサ１０に、外付けフラッシュＲＯＭ１２と外付けＲＡＭ１３が、アドレスバス１５とデータバス１６経由で接続されており、また、ＪＴＡＧ−ＩＣＥ等のデバッガ２は、接続部（コネクタ）であるＪＴＡＧポート１１を介してマイクロプロセッサ１０に接続されている。
【００３２】
ＰＬＤ１４は、デバッガ２が接続されたことを示す接続検出信号と、マイクロプロセッサ１０からのアクセス制御信号（ＲＥＡＤまたはＷＲＩＴＥであって、ここではメモリの読み出しを保護するためＲＥＡＤを対象とする）が共に有効である場合に、アドレスバス１５またはデータバス１６に対して所定のデータを出力する機能を有するプログラムロジックデバイスである。このため、所定のデータとして用いられるブレークデータと、メモリ（外付けフラッシュＲＯＭ１２、外付けＲＡＭ１３）に保持され、バスに出力される出力データとが衝突することで、アドレスバス１５またはデータバス１６を伝搬する出力データが破壊されて不定になる。したがって、マイクロプロセッサ１０にバス経由で接続される不揮発性フラッシュＲＯＭ１２や外付けＲＡＭ１３に保持されたプログラムを含むデータの保護が可能になる。
【００３３】
なお、ここで、デバッガ２を介してマイクロプロセッサ１０による読出しを防止して保護する対象は、外付けＲＡＭ１３に保持された暗号化前のプログラム、外付けフラッシュＲＯＭ１２に保持された暗号化プログラム、あるいは不図示のＬＳＩが内蔵するレジスタ（揮発性メモリ）に保持されたデータを含むものとする。
【００３４】
このため、ＰＬＤ１４は、マイクロプロセッサ１０とは、アドレスバス１５、データバス１６経由で接続されると共に、マイクロプロセッサ１０から、外付けフラッシュＲＯＭ１２または外付けＲＡＭ１３のアクセス制御信号であるリード信号（ＲＥＡＤ）をライン１０ａ経由で、自身のチップセレクト信号（ＣＳＰＬＤ）をライン１０ｂ経由で、外付けフラッシュＲＯＭ１２のチップセレクト信号（ＣＳＲＯＭ）をライン１０ｃ経由で、外付けＲＡＭ１３のチップセレクト信号（ＣＳＲＡＭ）をライン１０ｄ経由でそれぞれ取得する。また、ＪＴＡＧポート１１から、ＪＴＡＧ制御信号、ＪＴＡＧデータを、それぞれライン１１ａ、１１ｂ経由で取得する。
【００３５】
なお、ライン１１ａ経由で取得されるＪＴＡＧ制御信号は、ライン１１ｂ経由で取得されるＪＴＡＧデータ、およびマイクロプロセッサ１０からＪＴＡＧポート１１に出力されるＪＴＡＧデータと共に、ＩＥＥＥ１１４９．１で標準化されたＪＴＡＧインタフェースで定義された信号である。特に、ＪＴＡＧ制御信号の中には、ＴＭＳ（Test Mode State）、ＴＲＳＴ（Test Reset）等の信号が含まれ、ＰＬＤ１４は、それらの信号の状態や遷移から、ＪＴＡＧ−ＩＣＥ等のデバッガ２の接続の有無を検出することができる。
【００３６】
図２にＰＬＤ１４の内部構成の一例が示されている。図２によれば、ＰＬＤ１４は、接続検出部１４１と、バス出力部１４２とを含み構成される。接続検出部１４１は、ＪＴＡＧポート１１から、ライン１１ａ経由でＪＴＡＧ制御信号を入力として得、ライン１１ｂ経由でＪＴＡＧデータを入力として得る。接続検出部１４１は、ＪＴＡＧポート１１にデバッガ２が接続されたことを検出すると、接続検出信号を有効にしてバス出力部１４２へ出力する。
【００３７】
バス出力部１４２は、バス出力制御部１４２ａと、アドレスバス出力部１４２ｂと、データバス出力部１４２ｃとを含み構成される。バス出力制御部１４２ａは、マイクロプロセッサ１０から、ライン１０ｃ経由でＣＳＲＯＭ信号、ライン１０ｂ経由でＣＳＲＡＭ信号、ライン１０ａ経由でアクセス制御信号であるＲＥＡＤ信号をそれぞれ取得し、ＲＥＡＤ信号がＯＮ（有効化）されたときに、同じく入力されるＣＳＲＯＭ信号またはＣＳＲＡＭ信号に基づき、外付けフラッシュＲＯＭ１２または外付けＲＡＭ１３を選択するように、アドレスバス出力部１４２ｂ、およびデータバス出力部１４２ｃを制御するイネーブル信号を生成する。
【００３８】
アドレスバス出力部１４２ｂは、ダンピング抵抗１７ａを介してアドレスバス１５に接続されている。アドレスバス出力部１４２ｂは、ライン１４ｂ経由でバス出力制御部１４２ａから出力されるイネーブル信号に基づき、選択された外付けフラッシュＲＯＭ１２、または外付けＲＡＭ１３にアドレスデータを出力する。また、データバス出力部１４２ｃは、ダンピング抵抗１７ｂを介してデータバス１６に接続される。データバス出力部１４２ｃは、ライン１４ｂ経由でバス出力制御部１４２ａから出力されるイネーブル信号に基づき、選択された外付けフラッシュＲＯＭ１２または外付けＲＡＭ１３にデータを出力する。なお、ダンピング抵抗１７ａ、１７ｂは、ブレークデータと出力データとの衝突による電流を抑制し、不図示のドライバやレシーバ等、アドレスバス１５やデータバス１６周辺の素子の破損を防ぐために挿入される。
（実施形態の動作）
図３、図４は、本実施形態に係る半導体集積回路の動作を示すタイミング図であり、デバッガ２が未接続の場合、デバッガ２が接続された場合の、それぞれにおけるバス出力部１４２の動作を示す。図３、図４ともに、（ａ）はマイクロプロセッサ１０から出力される外付けフラッシュＲＯＭのチップセレクト信号（ＣＳＲＯＭ）、（ｂ）はマイクロプロセッサ１０から外付けフラッシュＲＯＭ１２に対して出力されるアクセス制御信号（ＲＥＡＤ）、（ｃ）はアドレスバス出力部１４２ｂの出力データ、（ｄ）は、データバス出力部１４２ｃの出力データ、（ｅ）はアドレスバス１５を伝搬するアドレスデータ、（ｆ）は、データバス１６を伝搬するデータのそれぞれを示す。
【００３９】
以下、図３、図４のタイミング図を参照しながら、図１、図２に示す本実施形態に係る半導体集積回路（制御装置１）の動作、特に、バス出力部１４２の動作について詳細に説明する。
【００４０】
まず、図３のタイミング図を参照しながら、デバッガ２が未接続の場合の制御装置１の動作から説明する。この場合、接続検出部１４１から出力される接続検出信号はＯＦＦになっているため、バス出力部１４２のバス出力制御部１４２ａは、マイクロプロセッサ１０からライン１０ａ経由で取得されるＲＥＡＤ信号、ライン１０ｃ経由で取得されるＣＳＲＯＭ信号、およびライン１０ｂ経由で取得されるＣＳＲＡＭ信号の状態に依存することなく、ライン１４ｂ経由でアドレスバス出力部１４２ｂとデータバス出力部１４２ｃに出力されるイネーブル信号をＯＦＦにする。したがって、アドレスバス出力部１４２ｂとデータバス出力部１４２ｃは、ハイインピーダンス状態（Ｈｉ−Ｚ）を維持する。
【００４１】
この状態で、マイクロプロセッサ１０が、外付けフラッシュＲＯＭ１２や外付けＲＡＭ１３に対してＲＥＡＤアクセスを行った場合、アドレスバス１５には、マイクロプロセッサ１０が読み出したいアドレスデータが出力され、データバス１６には、外付けフラッシュＲＯＭ１２や外付けＲＡＭ１３の先のアドレスに該当するデータが出力される。このことにより、マイクロプロセッサ１０が行うプログラムの読み出しやワーク変数の読出し等の読出し動作は正常に行われ、したがって、メーカの開発要員あるいは保守要員はデバッグによるソフトウェアの開発を行うことが出来る。
【００４２】
一方、デバッガ２がＪＴＡＧポート１１に接続された場合、接続検出部１４１から接続検出信号が出力される。このとき、バス出力部１４２のバス出力制御部１４２ａは、外付けフラッシュＲＯＭ１２や外付けＲＡＭ１３のデータ読出しが行われた場合、すなわち、マイクロプロセッサ１０からリードアクセス信号であるＲＥＡＤ信号が出力され、且つ、ＣＳＲＯＭ信号またはＣＳＲＡＭ信号がＯＮになった場合は、イネーブル信号を生成し、このイネーブル信号をアドレスバス出力部１４１ｂおよびデータバス出力部１４２ｃに供給する。イネーブル信号がＯＮになると、アドレスバス出力部１４２ｂとデータバス出力部１４２ｃは、例えば、０ｘ００００や、０ｘＦＦＦＦ等の固定データからなるプレークデータ（所定のデータ）をアドレスバス１５とデータバス１６にそれぞれ出力する。
【００４３】
一方、マイクロプロセッサ１０が、読み出したいデータのアドレス値をアドレスバス１５に出力すると、外付けフラッシュＲＯＭ１２、または外付けＲＡＭ１３の該当データがデータバス１６に出力される。この場合、出力データとブレークデータの２種類のデータ（信号）が衝突することになり、図４の（ｅ）と（ｆ）に示されるように、アドレスバス１５、データバス１６を伝搬するそれぞれアドレスデータ、および出力データの値は不定になる。したがって、マイクロプロセッサ１０は正常な読出しを行うことが出来ない。このように、ＪＴＡＧ−ＩＣＥ等のデバッカ２が、マイクロプロセッサ１０の読出し機能を使用して、外付けフラッシュＲＯＭ１２、または外付けＲＡＭ１３が保持したプログラムを含むデータを保護し、読み出しを防止することが出来る。
【００４４】
なお、デバッガ２は、本来、マイクロプロセッサ１０が持つデータの読出し機能を使用して、外付けフラッシュＲＯＭ１２または外付けＲＡＭ１３が保持したデータを読み出してプログラム開発を支援するツールである。したがって、例えば、接続検出部１４１が、デバッガ２からＪＴＡＧポート１１を介して所定のコマンドを受信し保持する構成（コマンド受信手段）を有することで、保持された所定のコマンドに基づきブレークデータの出力を阻止し、メーカの保守要員によるデバッグ作業の妨げにならないようにすることができる。
【００４５】
この場合に使用される所定のコマンドとは、第三者が知りえない非公開のコマンドであり、予めコマンド受信手段（ＰＬＤ１４内）にプログラミングされ登録されている。コマンド受信手段は、この予め登録されたコマンドと前述ＪＴＡＧポート１１を介して受信したコマンドとが一致することで、コマンドを保持し、ブレークデータの出力を阻止するようバス出力部１４２に作用する。これについては、接続検出部１４１の接続検出信号１４ａをオフしても良いし、イネーブル信号１４ｂが出力されないようにマスク信号をバス出力部１４２に与えても良い。
【００４６】
また、コマンド受信手段にタイマーを設け、所定のコマンドを、第１コマンドと第２コマンドに区分して管理するような多段コマンド形態とし、接続検出部１４１が、第１コマンドを受信してから所定の時間以内に第２コマンドを受信することで所定のコマンドの保持を許可する構成をとることができる。このことにより、第三者による試行錯誤に基づくコマンド送信の偶然の一致による、アドレスバス１５やデータバス１６へのブレークデータの出力阻止を抑制することができる。第１コマンドと第２コマンドについては、両方とも同じコマンドでも良く、相違したコマンドにしても良い。両方とも同じコマンドとして管理する場合には、第１コマンドと前述コマンド受信手段に予め登録されたコマンドとの一致を検出してから、例えば１０秒以内に第２コマンドを受信し、この受信された第２コマンドと前述コマンド受信手段に予め登録されたコマンドが一致することでコマンドを保持すればよい。バス出力部１４２への作用については前述と同様である。
【００４７】
一方、第１コマンドと第２コマンドのそれぞれをコマンド受信手段（ＰＬＤ１４内）に予め登録する構成とすれば、第１コマンドと第２コマンドとを相違したコマンドとして管理することができる。この場合、受信手段に予め登録された第１コマンドとＪＴＡＧポート１１を介して受信した第１コマンドとの一致を検出してから、例えば１０秒以内に第２コマンドを受信し、この受信された第２コマンドと受信手段に予め登録された第２コマンドが一致することでコマンド（第１コマンドもしくは第２コマンド）を保持すればよい。バス出力部１４２への作用については前述と同様である。
【００４８】
上記のように、ブレークデータの出力を多段コマンドの受信によって解除するように構成することで、第三者による試行錯誤に基づくコマンド送信の偶然の一致による、アドレスバス１５やデータバス１６へのブレークデータの出力阻止をさらに抑制することができる。
【００４９】
また、図２に示す構成では、デバッガ２が接続されたことを示す接続検出信号と、マイクロプロセッサ１０からのアクセス制御信号が共に有効である場合に、アドレスバス１５またはデータバス１６に対してブレークデータを出力するバス出力部１４２を、ＰＬＤ１４で構成するものとして説明したが、ＰＬＤに代わり、ＲＯＭやフラッシュメモリもしくはＲＡＭ等のメモリで代替することができる。この場合の、バス出力部１４２の内部構成例が図５に示されている。
【００５０】
図５によれば、バス出力部１４２は、接続検出信号が入力されて自身が選択されるセレクトポート１４２ｄと、アクセス制御信号であるマイクロプロセッサ１０からのＲＥＡＤ信号を受信する制御ポート１４２ｅと、セレクトポート１４２ｄ、およびアクセス制御信号の両方がＯＮすることでデータを出力する出力ポート１４２ｆとを有する記憶手段で構成される。この構成によっても、アドレスバス１５またはデータバス１６を伝搬するデータに関し、ＲＥＡＤにより出力されるデータにブレークデータを衝突させることで破壊させる仕組みを実現出来、デバッガ２が接続されたときに、外付けフラッシュＲＯＭ１２や外付けＲＡＭ１３からのプログラムを含むデータの読み出しを阻止することができる。
（実施形態の変形例）
なお、上記した本実施形態に係る半導体集積回路では、ＰＬＤ１４は、デバッガ２がＪＴＡＧポート１１に接続されることにより、接続検出部１４１で接続検出信号が出力され、バス出力部１４２でＲＥＡＤ信号がＯＮになることで、アドレスバス１５およびデータバス１６に、固定データからなるプレークデータを出力するものとして説明したが、ブレークデータとして、任意の値を用いても良い。この場合、隣接するビットが異なる値であれば特に都合が良い。
【００５１】
すなわち、マイクロプロセッサ１０と、外付けフラッシュＲＯＭ１２あるいは外付けＲＡＭ１３とを接続するアドレスバス１５とデータバス１６は、複数本のラインが並列に接続されるパラレルバス構成である。このため、パラレルバスを伝搬する複数のビットの内容が同時にスイッチングされると、これに起因して大きな電流の変化が生じる。このとき流れる高周波電流は、マイクロプロセッサ１０を含む各種ＬＳＩの電源やグラウンドに集中し、電位変動を発生させる。この電位変動によってＬＳＩ等の電源電圧が変動すると、不図示のバスドライバの出力電流が変化してレシーバの信号立ち上がり時間が変化し、結果として信号送受信間の信号のタイミングがずれることになる。極端な場合には、閾値の変動により誤作動が発生する可能性がある。したがって、隣接ビットの値を異ならせることで同時にスイッチングが抑制され、誤作動を回避することができる。
【００５２】
また、本実施形態によれば、バス出力制御部１４２ａは、条件（接続検出信号とアクセス制御信号が共に両方がＯＮ）が成立したときに、アドレスバス出力部１４２ｂとデータバス出力部１４２ｃの両方にイネーブル信号を供給し、アドレスバス１５とデータバス１６の双方を有効にしているが、この場合、いずれか一方を有効にするだけで本発明を実現できる。
【００５３】
また、本実施形態によれば、アドレスバス１５とデータバス１６に出力されたプログラムを含むデータをブレークデータと衝突させることで破壊し、不定値とするものとしたが、他に、同じ条件が成立したときにマイクロプロセッサ１０にリセット信号を供給して初期化することで、ＪＴＡＧインタフェース経由でプログラムを含むデータが読み込まれることを防止することができる。
【００５４】
この場合、バス出力部１４２には、接続検出部１４１から出力される接続検出信号とマイクロプロセッサ１０から外付けフラッシュＲＯＭ１２や外付けＲＡＭ１３に対して出力されるアクセス制御信号（ＲＥＡＤ）とを受信し、接続検出信号とアクセス制御信号とがＯＮすることで、マイクロプロセッサ１０にリセット信号を供給するハードウェアが付加される。しかしながら、この場合でも、バスにロジックアナライザ等を接続してトレースすればバスに出力されたプログラムやデータが読まれることは否めない。但し、マイクロプロセッサ１０がリセットされる毎にプログラムがイニシャルルーチンから起動されるため、連続してプログラムが読まれることは少なく、このため、プログラムの保護の観点からは有効に手段となる。
【００５５】
また、本実施形態では、マイクロプロセッサ１０に、アドレスバス１５、データバス１６経由で接続されるメモリとして、外付けフラッシュＲＯＭ１２、あるいは外付けＲＡＭ１３を使用するものとして説明したが、その他ＬＳＩに内蔵されたレジスタ等の揮発性メモリについてもそれらに設定されるデータが保護対象になれば、それらＬＳＩに対して出力されるチップセレクト信号をバス出力部１４２（バス出力制御部１４２ａ）へ供給することで、同様の効果が得られる。
【００５６】
この場合も同様、バス出力部１４２は、デバッガ２が接続されたことを示す接続検出信号と、マイクロプロセッサ１０からのアクセス制御信号（ＲＥＡＤ）が共に有効である場合に、アドレスバス１５およびデータバス１６に対してブレークデータを出力する。このため、上記した揮発性メモリに保持されアドレスバス１５やデータバス１６に出力される出力データとブレークデータとが衝突することでアドレスバス１５やデータバス１６を伝搬するデータが破壊されて不定になる。したがって、マイクロプロセッサ１０にアドレスバス１５やデータバス１６経由で接続される、揮発性メモリに保持された、不揮発性メモリの少なくとも一部写しであるプログラムやデータの保護が可能になる。なお、ここで使用される揮発性メモリとして上記したＬＳＩが内蔵するレジスタの他に、ＳＲＡＭ等が実装されるキャッシュ等の高速メモリが含まれても良い。
（実施形態の効果）
以上説明のように本実施形態に係る半導体集積回路によれば、ＪＴＡＧ等のデバッグインタフェースが搭載されたマイクロプロセッサ１０に、アドレスバス１５およびデータバス１６経由で、例えば、外付けフラッシュＲＯＭ１２や外付けＲＡＭ１３が接続されるケースにおいても、外付けフラッシュＲＯＭ１２や外付けＲＡＭ１３に保持されたプログラムを含むデータ、更にはマイクロプロセッサ１０に内蔵されたレジスタに保持されたデータの読み出しを防止することができる。また、本実施形態に係る半導体集積回路を電力変換装置の制御装置１等の組み込みシステムに適用しても、マイクロプロセッサ１０の動作クロックが高速化され、外付けフラッシュＲＯＭ１２や外付けＲＡＭ１３対する信号の遅延に対する要求仕様も厳しいものになってきている昨今、外付けフラッシュＲＯＭ１２や外付けＲＡＭ１３に入力される信号線の途中に遅延を増加させる素子を挿入することなくプログラムを含むデータ保護を実現するため、高性能な組み込みシステムを提供することができる。
（データ漏洩防止方法）
また、本実施形態に係るデータ漏洩防止方法は、例えば、図１に示されるように、プログラムを含むデータが保持されたメモリ（外付けフラッシュＲＯＭ１２と外付けＲＡＭ１３）と、このメモリにバス（アドレスバス１５とデータバス１６）を介して接続され、前記プログラムを実行するマイクロプロセッサ１０と、前記プログラムのデバッグを支援するデバッガ２が接続される接続部（ＪＴＡＧポート１１）と、を有する半導体集積回路におけるデータ漏洩防止方法である。
【００５７】
そして、接続部にデバッガが接続されたことを検出すると接続検出信号をオンする第１のステップと、この接続検出信号がオンされているとき、マイクロプロセッサから出力されるメモリへのアクセス制御信号（ＲＥＡＤ）がオンされることでバスにブレークデータを出力し、このブレークデータとアクセス制御信号のオンに伴ってメモリがバスに出力するデータとを衝突させ、バスに伝搬するデータを不定にする第２のステップと、を有するものである。
【００５８】
このように本実施形態に係るデータ漏洩防止方法によれば、デバッガ２が接続されたことを示す接続検出信号と、マイクロプロセッサ１０からのアクセス制御信号が共に有効である場合に、バスに対してブレークデータを出力するため、このブレークデータと、メモリに保持されバスに出力される出力データとが衝突することでバスを伝搬するデータが破壊されて不定になる。したがって、マイクロプロセッサ１０にバス経由で接続されるメモリに保持されたプログラムやデータの保護が可能になる。なお、バスに出力されるプレークデータとメモリからの出力データとを衝突させて不定値とする代わりに、同じ条件（デバッガ２が接続されたことを示す接続検出信号と、マイクロプロセッサ１０からのアクセス制御信号が共に有効）が成立したときに、マイクロプロセッサ１０にリセット信号を供給しても同じ効果が得られる。
【００５９】
以上、本実施形態について説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されないことは言うまでもない。上記実施形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。またそのような変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【符号の説明】
【００６０】
１・・制御装置、２・・デバッガ（ＪＴＡＧ−ＩＣＥ）、１０・・マイクロプロセッサ、１１・・ＪＴＡＧポート（接続部）、１２・・外付けフラッシュＲＯＭ、１３・・外付けＲＡＭ、１４・・ＰＬＤ（プログラムロジックデバイス）、１５・・アドレスバス、１６・・データバス、１４１・・接続検出部、１４２・・バス出力部、１４２ａ・・バス出力制御部、１４２ｂ・・アドレスバス出力部、１４２ｃ・・データバス出力部、１４２ｄ・・セレクトポート、１４２ｅ・・制御ポート、１４２ｆ・・出力ポート
【図１】
0005742575.tif 000002
【図２】
0005742575.tif 000003
【図３】
0005742575.tif 000004
【図４】
0005742575.tif 000005
【図５】
0005742575.tif 000006
【図６】
0005742575.tif 000007