(57)【特許請求の範囲】
【請求項１】
所定の演算を行う演算処理回路及び所定の機能を有するＭ個（Ｍは、自然数）の機能ブロックを具備し、外部のデバッグツールに接続されたときに、前記機能ブロック内のデータ又はプログラムを前記デバッグツールに送信する半導体装置であって、
前記Ｍ個の機能ブロックの内の所定のＮ個（Ｎは、Ｍ以下の自然数）の機能ブロックと前記演算処理回路との間にそれぞれ接続され、指示に応じて、前記Ｎ個の機能ブロックと前記演算処理回路との間のデータ又はプログラムの転送をそれぞれ行うＮ個の第１の回路と、
前記デバッグツールに接続されたときに、前記デバッグツールからの指示に応じて前記演算処理回路を制御するとともに、前記Ｎ個の第１の回路に対して、前記Ｎ個の機能ブロックと前記演算処理回路との間のデータ又はプログラムの転送を行わないように指示する第２の回路と、
所定の複数のデータ又は信号を受信したときに、前記Ｎ個の第１の回路の内の前記複数のデータ又は信号に応じた第１の回路に対し、前記機能ブロックと前記演算処理回路との間のデータ又はプログラムの転送を行わないようにする前記第２の回路の指示を、解除するように指示する第３の回路と、
前記デバッグツールに接続されていないときに、前記Ｍ個の機能ブロックとの間でデータ又はプログラムを送受信しながら所定の演算を行い、前記デバッグツールに接続されたときに、前記（Ｍ−Ｎ）個の機能ブロック内のデータ又はプログラム、並びに、前記Ｎ個の第１の回路の内のデータ又はプログラムの転送を行う第１の回路に接続された機能ブロック内のデータ又はプログラムを読み取って前記デバッグツールに送信する前記演算処理回路と、
を具備する半導体装置。
【請求項２】
前記第３の回路が、エンコードされたデータ又は信号を受信し、前記エンコードされたデータ又は信号をデコードし、前記Ｎ個の第１の回路の内のデコードされたデータ又は信号に応じた第１の回路に対し、前記機能ブロックと前記演算処理回路との間のデータ又はプログラムの転送を行わないようにする前記第２の回路の指示を、解除するように指示することを特徴とする請求項１記載の半導体装置。
【請求項３】
所定の演算を行う演算処理回路及び所定の機能を有するＭ個（Ｍは、自然数）の機能ブロックを具備し、外部のデバッグツールに接続されたときに、前記機能ブロック内のデータ又はプログラムを前記デバッグツールに送信する半導体装置であって、
前記Ｍ個の機能ブロックの内の所定のＮ個（Ｎは、Ｍ以下の自然数）の機能ブロックと前記演算処理回路との間にそれぞれ接続され、指示に応じて、前記Ｎ個の機能ブロックと前記演算処理回路との間のデータ又はプログラムの転送をそれぞれ行うＮ個の第１の回路と、
前記デバッグツールに接続されたときに、前記デバッグツールからの指示に応じて前記演算処理回路を制御するとともに、前記Ｎ個の第１の回路に対して、前記Ｎ個の機能ブロックと前記演算処理回路との間のデータ又はプログラムの転送を行わないように指示する第２の回路と、
複数のレジスタを具備し、前記レジスタがアクセスされた場合に、前記Ｎ個の第１の回路の内のアクセスされたレジスタに応じた第１の回路に対し、前記機能ブロックと前記演算処理回路との間のデータ又はプログラムの転送を行わないようにする前記第２の回路の指示を、解除するように指示する第３の回路と、
前記デバッグツールに接続されていないときに、前記Ｍ個の機能ブロックとの間でデータ又はプログラムを送受信しながら所定の演算を行い、前記デバッグツールに接続されたときに、前記（Ｍ−Ｎ）個の機能ブロック内のデータ又はプログラム、並びに、前記Ｎ個の第１の回路の内のデータ又はプログラムの転送を行う第１の回路に接続された機能ブロック内のデータ又はプログラムを読み取って前記デバッグツールに送信する前記演算処理回路と、
を具備する半導体装置。
【請求項４】
所定の演算を行う演算処理回路及び所定の機能を有するＭ個（Ｍは、自然数）の機能ブロックを具備し、外部のデバッグツールに接続されたときに、前記機能ブロック内のデータ又はプログラムを前記デバッグツールに送信する半導体装置であって、
前記Ｍ個の機能ブロックの内の所定のＮ個（Ｎは、Ｍ以下の自然数）の機能ブロックと前記演算処理回路との間にそれぞれ接続され、指示に応じて、前記Ｎ個の機能ブロックと前記演算処理回路との間のデータ又はプログラムの転送をそれぞれ行うＮ個の第１の回路と、
前記デバッグツールに接続されたときに、前記デバッグツールからの指示に応じて前記演算処理回路を制御するとともに、前記Ｎ個の第１の回路に対して、前記Ｎ個の機能ブロックと前記演算処理回路との間のデータ又はプログラムの転送を行わないように指示する第２の回路と、
複数のレジスタを具備し、前記複数のレジスタのいずれか又は全てに所定のデータが書き込まれた場合に、前記Ｎ個の第１の回路の内のアクセスされたレジスタ又は前記レジスタに書き込まれたデータに応じた第１の回路に対し、前記機能ブロックと前記演算処理回路との間のデータ又はプログラムの転送を行わないようにする前記第２の回路の指示を、解除するように指示する第３の回路と、
前記デバッグツールに接続されていないときに、前記Ｍ個の機能ブロックとの間でデータ又はプログラムを送受信しながら所定の演算を行い、前記デバッグツールに接続されたときに、前記（Ｍ−Ｎ）個の機能ブロック内のデータ又はプログラム、並びに、前記Ｎ個の第１の回路の内のデータ又はプログラムの転送を行う第１の回路に接続された機能ブロック内のデータ又はプログラムを読み取って前記デバッグツールに送信する前記演算処理回路と、
を具備する半導体装置。
【請求項５】
前記データ又は信号が、前記演算処理回路又は外部から供給されることを特徴とする請求項１又は２記載の半導体装置。
【請求項６】
前記レジスタが、前記演算処理回路又は外部によってアクセスされることを特徴とする請求項３又は４記載の半導体装置。
【請求項７】
外部から所定のプロトコルでデータを受信する第４の回路を更に具備し、前記第４の回路が、外部から受信したデータに基づいて、前記第３の回路にデータ又は信号を出力することを特徴とする請求項１〜６のいずれか１項に記載の半導体装置。
【請求項８】
請求項１〜７のいずれか１項に記載の半導体装置と、
前記半導体装置内の前記演算処理回路及び前記第２の回路に接続されたデバッグツールと、
を具備するインサーキットエミュレータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、外部のデバッグツールに接続されたときに、内部のデータ又はプログラムをデバッグツールに送信する半導体装置に関する。さらに、本発明は、そのような半導体装置を用いたインサーキットエミュレータに関する。
【０００２】
【従来の技術】
シングルチップマイクロコンピュータ、ユーザの仕様に応じたカスタム品であるシステムＬＳＩ（Large Scale Integrated circuit）等の半導体装置において、主にソフトウェア（プログラム）のデバッグを容易にするためのデバッグ回路を搭載することが行われている。このようなデバッグ回路を搭載した半導体装置は、外部のデバッグツールに接続されたときに、半導体装置内部のＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、レジスタ等の内容（データ又はプログラム）をデバッグツールに送信する。ソフトウェアのデバッグを行うユーザは、デバッグツールを介して半導体装置内部のＲＯＭ、ＲＡＭ、レジスタ等の内容を知ることができ、ソフトウェアのデバッグを容易に行うことができる。
【０００３】
ところで、半導体装置によっては、ソフトウェアのデバッグを行うユーザ以外の者（以下、「第三者」という）に知られることが望ましくないデータ又はプログラムを内部に有する場合がある。例えば、半導体装置内部のＲＯＭが、所定の暗号を解除するための暗号解除キーを格納しており、この暗号解除キーを第三者に知られたくない場合等がある。
このような場合に、半導体装置内部のデータ等が第三者に知られることを防止するために、（ｉ）半導体装置にデバッグ回路を搭載しない、（ｉｉ）半導体装置にデバッグ回路を搭載してはいるが、デバッグ回路の使用方法を公開しない等の対策が考えられる。
【０００４】
しかしながら、上記（ｉ）の対策では、ソフトウェアのデバッグを行うユーザが半導体装置の内部データ等を知ることができないため、ソフトウェアのデバッグが困難となる。
また、上記（ｉｉ）の対策では、第三者が半導体装置を解析することにより、デバッグ回路の使用方法が第三者に知られてしまった場合に、半導体装置内部のデータ等が第三者に知られてしまうこととなる。
【０００５】
ところで、日本国特許公開公報（特開）平１０−１３３９０６号公報（以下、「文献１」ともいう）には、メモリ空間がプログラム，データを格納するプログラムメモリ領域，データメモリ領域に分けられ且つそれぞれに対応したアドレスバスを有するマイクロコンピュータをエミュレーションするとき、プログラムメモリ領域内にマッピングされた各マッピング領域の属性などを示すマッピングデータと、データメモリ領域内に割り当てられた各特殊機能レジスタに対するアクセス許可／不許可を示すプロテクトデータと、を予め設定し、各マッピング領域，各特殊機能レジスタに対する不正アクセスを検出し、エミュレーション停止するインサーキットエミュレータにおいて、各アドレスバスのバス信号を入力しそれらの１つのバス信号を制御信号により選択出力する選択手段と、この選択手段のバス信号出力をアドレス入力しマッピングデータおよびプロテクトデータを予め設定および格納する記憶手段と、を備えることを特徴としたインサーキットエミュレータが掲載されている。
【０００６】
しかしながら、文献１に掲載されたインサーキットエミュレータは、プログラムメモリ領域内にマッピングされた各マッピング領域の属性などを示すマッピングデータと、データメモリ領域内に割り当てられた各特殊機能レジスタに対するアクセス許可／不許可を示すプロテクトデータと、を予め設定し、プログラムメモリ領域，データメモリ領域それぞれに対応したアドレスバスのバス信号を入力しそれらの１つのバス信号を制御信号により選択する選択手段と、この選択手段のバス信号出力をアドレス入力しマッピングデータおよびプロテクトデータを予め設定および格納する記憶手段と、を備え、各マッピング領域，各特殊機能レジスタに対する不正アクセスを検出し、エミュレーション停止することにより、マッピングメモリとＳＦＲプロテクトメモリを１個のプロテクトメモリにまとめるものであり、ソフトウェアのデバッグを行うユーザが半導体装置内のデータ等を読み取ることができるようにし、第三者が半導体装置内のデータ等を読み取ることができないようにするものではない。
【０００７】
また、特開２０００−３４７９４２号公報（以下、「文献２」ともいう）には、ユーザにより個別に設定可能なユーザプログラムからなるセキュリティ解除プログラムを記憶情報に含み、外部に設けられたエミュレータによる不正アクセスから保護する情報を記憶するメモリと、エミュレータに接続されて、エミュレータと情報処理装置との間でデバッグに必要な信号の入出力制御を行い、情報処理装置のデバッグをサポートするオンチップデバッグ回路と、電源投入時に情報処理装置をリセットするパワーオンリセット信号を受けて、オンチップデバッグ回路の機能を無効化してセキュリティを設定し、エミュレータによるメモリの記憶情報の読み出しを禁止し、セキュリティ指定ビットと、このセキュリティ指定ビットのリセットをイネーブルとするイネーブルコードとを受けて、オンチップデバッグ回路の機能を有効化してセキュリティを解除し、エミュレータによるメモリの記憶情報の読み出しを可能にするセキュリティ回路とを有することを特徴とす る情報処理装置が掲載されている。
【０００８】
しかしながら、文献２に掲載された情報処理装置は、メモリに記憶された情報を、外部に設けられたエミュレータによる不正アクセスから保護するためのものではあるが、ユーザにより個別に設定可能なユーザプログラムからなるセキュリティ解除プログラムを記憶情報に含むものである。
【０００９】
【発明が解決しようとする課題】
そこで、上記の点に鑑み、本発明は、デバッグツールに接続されたときに、所定のデータ又は信号が入力された場合に、内部のデータ又はプログラムを読み取ることが可能な半導体装置を提供することを目的とする。さらに、本発明は、そのような半導体装置を具備するインサーキットエミュレータを提供することを更なる目的とする。
【００１０】
【課題を解決するための手段】
以上の課題を解決するため、本発明の第１の観点に係る半導体装置は、所定の演算を行う演算処理回路及び所定の機能を有するＭ個（Ｍは、自然数）の機能ブロックを具備し、外部のデバッグツールに接続されたときに、機能ブロック内のデータ又はプログラムをデバッグツールに送信する半導体装置であって、Ｍ個の機能ブロックの内の所定のＮ個（Ｎは、Ｍ以下の自然数）の機能ブロックと演算処理回路との間にそれぞれ接続され、指示に応じて、Ｎ個の機能ブロックと演算処理回路との間のデータ又はプログラムの転送をそれぞれ行うＮ個の第１の回路と、デバッグツールに接続されたときに、デバッグツールからの指示に応じて演算処理回路を制御するとともに、Ｎ個の第１の回路に対して、Ｎ個の機能ブロックと演算処理回路との間のデータ又はプログラムの転送を行わないように指示する第２の回路と、所定の複数のデータ又は信号を受信したときに、Ｎ個の第１の回路の内の複数のデータ又は信号に応じた第１の回路に対し、機能ブロックと演算処理回路との間のデータ又はプログラムの転送を行わないようにする第２の回路の指示を、解除するように指示する第３の回路と、デバッグツールに接続されていないときに、Ｍ個の機能ブロックとの間でデータ又はプログラムを送受信しながら所定の演算を行い、デバッグツールに接続されたときに、（Ｍ−Ｎ）個の機能ブロック内のデータ又はプログラム、並びに、Ｎ個の第１の回路の内のデータ又はプログラムの転送を行う第１の回路に接続された機能ブロック内のデータ又はプログラムを読み取ってデバッグツールに送信する演算処理回路とを具備する。
【００１１】
ここで、第３の回路が、エンコードされたデータ又は信号を受信し、エンコードされたデータ又は信号をデコードし、Ｎ個の第１の回路の内のデコードされたデータ又は信号に応じた第１の回路に対し、機能ブロックと演算処理回路との間のデータ又はプログラムの転送を行わないようにする第２の回路の指示を、解除するように指示することとしても良い。
【００１２】
また、本発明の第２の観点に係る半導体装置は、所定の演算を行う演算処理回路及び所定の機能を有するＭ個（Ｍは、自然数）の機能ブロックを具備し、外部のデバッグツールに接続されたときに、機能ブロック内のデータ又はプログラムをデバッグツールに送信する半導体装置であって、Ｍ個の機能ブロックの内の所定のＮ個（Ｎは、Ｍ以下の自然数）の機能ブロックと演算処理回路との間にそれぞれ接続され、指示に応じて、Ｎ個の機能ブロックと演算処理回路との間のデータ又はプログラムの転送をそれぞれ行うＮ個の第１の回路と、デバッグツールに接続されたときに、デバッグツールからの指示に応じて演算処理回路を制御するとともに、Ｎ個の第１の回路に対して、Ｎ個の機能ブロックと演算処理回路との間のデータ又はプログラムの転送を行わないように指示する第２の回路と、複数のレジスタを具備し、レジスタがアクセスされた場合に、Ｎ個の第１の回路の内のアクセスされたレジスタに応じた第１の回路に対し、機能ブロックと演算処理回路との間のデータ又はプログラムの転送を行わないようにする第２の回路の指示を、解除するように指示する第３の回路と、デバッグツールに接続されていないときに、Ｍ個の機能ブロックとの間でデータ又はプログラムを送受信しながら所定の演算を行い、デバッグツールに接続されたときに、（Ｍ−Ｎ）個の機能ブロック内のデータ又はプログラム、並びに、Ｎ個の第１の回路の内のデータ又はプログラムの転送を行う第１の回路に接続された機能ブロック内のデータ又はプログラムを読み取ってデバッグツールに送信する演算処理回路とを具備する。
【００１３】
また、本発明の第３の観点に係る半導体装置は、所定の演算を行う演算処理回路及び所定の機能を有するＭ個（Ｍは、自然数）の機能ブロックを具備し、外部のデバッグツールに接続されたときに、機能ブロック内のデータ又はプログラムをデバッグツールに送信する半導体装置であって、Ｍ個の機能ブロックの内の所定のＮ個（Ｎは、Ｍ以下の自然数）の機能ブロックと演算処理回路との間にそれぞれ接続され、指示に応じて、Ｎ個の機能ブロックと演算処理回路との間のデータ又はプログラムの転送をそれぞれ行うＮ個の第１の回路と、デバッグツールに接続されたときに、デバッグツールからの指示に応じて演算処理回路を制御するとともに、Ｎ個の第１の回路に対して、Ｎ個の機能ブロックと演算処理回路との間のデータ又はプログラムの転送を行わないように指示する第２の回路と、複数のレジスタを具備し、複数のレジスタのいずれか又は全てに所定のデータが書き込まれた場合に、Ｎ個の第１の回路の内のアクセスされたレジスタ又はレジスタに書き込まれたデータに応じた第１の回路に対し、機能ブロックと演算処理回路との間のデータ又はプログラムの転送を行わないようにする第２の回路の指示を、解除するように指示する第３の回路と、デバッグツールに接続されていないときに、Ｍ個の機能ブロックとの間でデータ又はプログラムを送受信しながら所定の演算を行い、デバッグツールに接続されたときに、（Ｍ−Ｎ）個の機能ブロック内のデータ又はプログラム、並びに、Ｎ個の第１の回路の内のデータ又はプログラムの転送を行う第１の回路に接続された機能ブロック内のデータ又はプログラムを読み取ってデバッグツールに送信する演算処理回路とを具備する。
【００１４】
また、データ又は信号が、演算処理装置又は外部から供給されることとしても良い。また、レジスタが、演算処理装置又は外部によってアクセスされることとしても良い。
【００１５】
また、外部から所定のプロトコルでデータを受信する第４の回路を更に具備し、第４の回路が、外部から受信したデータに基づいて、第３の回路にデータ又は信号を出力することとしても良い。
【００１６】
また、本発明に係るインサーキットエミュレータは、本発明に係る半導体装置と、半導体装置内の演算処理回路及び第２の回路に接続されたデバッグツールとを具備する。
【００１７】
上記のように構成した本発明によれば、所定のデータ又は信号が入力された場合に、内部のデータ又はプログラムを読み取ることが可能となる。これにより、ソフトウェアのデバッグを行うユーザが内部のデータ等を読み取ること、及びその他のユーザが内部のデータ等を読み取ることができないことを容易に実現することができる。
【００１８】
【発明の実施の形態】
以下、図面に基づいて本発明の実施の形態について説明する。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
図１は、本発明の一実施形態に係るインサーキットエミュレータを示す図である。図１に示すように、インサーキットエミュレータ１は、システムＬＳＩ（Large Scale Integrated circuit）１０と、デバッグツール４０とを具備する。システムＬＳＩ１０は、ＣＰＵ（Central Processing Unit）１１と、デバッグ回路１２と、プロテクト解除回路１３と、ＲＯＭ（Read Only Memory）２１と、ＲＡＭ（Random Access Memory）２２と、レジスタ２３と、ユーザ回路２４と、プロテクト回路３１〜３４とを含んでいる。
【００１９】
ＲＯＭ２１は、ＣＰＵ１１が実行するソフトウェア（プログラム）、ＣＰＵ１１が用いるデータ等を格納する。ＲＡＭ２２及びレジスタ２３は、テンポラリデータ等を格納する。ユーザ回路２４は、ユーザの仕様を満たす動作を行う。
ＣＰＵ１１は、デバッグツール４０に接続されていない場合には、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、又は、ユーザ回路２４内部のデータ又はプログラムを読み取って所定の演算を行う。また、ＣＰＵ１１は、デバッグツール４０に接続されている場合には、デバッグツール４０及びデバッグ回路１２の指示に従い、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、又は、ユーザ回路２４内部のデータ等を読み取ってデバッグツール４０に出力する。本実施形態においては、ＣＰＵ１１は、デバッグツール４０に接続されているので、デバッグツール４０及びデバッグ回路１２の指示に従い、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、又は、ユーザ回路２４内部のデータ等を読み取ってデバッグツール４０に出力する。
【００２０】
プロテクト回路３１〜３４は、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４とＣＰＵ１１との間にそれぞれ接続されており、デバッグ回路１２又はプロテクト解除回路１３の指示に応じて、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、又は、ユーザ回路２４とＣＰＵ１１との間のデータ又はプログラムの転送を行う。
なお、ＣＰＵ１１とプロテクト回路３１〜３４との間、並びに、プロテクト回路３１〜３４とＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４との間は、８ビット幅のバスでそれぞれ接続されている。
【００２１】
デバッグ回路１２は、デバッグツール４０に接続されている場合には、デバッグツール４０の指示に応じてＣＰＵ１１を制御するとともに、ハイレベルのプロテクト有効信号をプロテクト回路３１〜３４に出力し、デバッグツール４０に接続されていない場合には、ローレベルのプロテクト有効信号をプロテクト回路３１〜３４に出力する。本実施形態においては、デバッグ回路１２は、デバッグツール４０に接続されているので、ハイレベルのプロテクト有効信号をプロテクト回路３１〜３４に出力する。
プロテクト解除回路１３には、外部から制御信号が入力される。プロテクト解除回路１３は、外部から入力される制御信号がローレベルの場合には、ローレベルのプロテクト解除信号をプロテクト回路３１〜３４に出力する。また、プロテクト解除回路１３は、外部から入力される制御信号がハイレベルの場合には、ハイレベルのプロテクト解除信号をプロテクト回路３１〜３４に出力する。なお、制御信号は、システムＬＳＩ１０の取扱説明書において「未使用」又は「予約済み」と記載されている端子から入力される。
【００２２】
図２は、プロテクト回路３１〜３４の内部構成を示す図である。図２に示すように、プロテクト回路３１〜３４は、入出力バッファ５１〜５８と、ＡＮＤゲート回路５９とを含んでいる。
ＡＮＤゲート回路５９は、プロテクト有効信号とプロテクト解除信号を反転した信号との論理積演算を行い、結果として得られた信号を入出力バッファ５１〜５８に出力する。
【００２３】
図３は、入出力バッファ５１〜５８の内部構成を示す図である。図３に示すように、入出力バッファ５１〜５８は、出力イネーブル機能付きのバッファ６１、６２を含んでいる。バッファ６１は、入力がＣＰＵ１１に接続されており、出力がＲＯＭ２１、ＲＡＭ２２、レジスタ２３、又は、ユーザ回路２４に接続されている。また、バッファ６２は、入力がバッファ６１の出力に接続されており、出力がバッファ６２の入力に接続されている。
バッファ６１、６２は、ＡＮＤゲート回路５９の出力信号がローレベルの場合にオンとなり、ＡＮＤゲート回路５９の出力信号がハイレベルの場合にオフとなる。
【００２４】
図４は、バッファ６１、６２の動作を表す真理値表である。図４に示すように、プロテクト有効信号がローレベルの場合には、プロテクト解除信号がハイレベルであるかローレベルであるかにかかわらず、ＡＮＤゲート回路５９の出力信号はローレベルとなり、バッファ６１、６２はオンとなる。
プロテクト有効信号がハイレベルであり、プロテクト解除信号がローレベルの場合には、ＡＮＤゲート回路５９の出力信号はハイレベルとなり、バッファ６１、６２はオフとなる。
プロテクト有効信号及びプロテクト解除信号がハイレベルの場合には、ＡＮＤゲート回路５９の出力信号はローレベルとなり、バッファ６１、６２はオンとなる。
【００２５】
このように、インサーキットエミュレータ１によれば、ハイレベルの制御信号がプロテクト解除回路１３に入力された場合には、プロテクト回路３１〜３４内のバッファ６１、６２がオンとなり、ＣＰＵ１１が、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４内部のデータ等を読み取ってデバッグツール４０に送信することができる。これにより、ユーザが、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４内部のデータ等を読み取ることができる。また、ローレベルの制御信号がプロテクト解除回路１３に入力された場合には、プロテクト回路３１〜３４内のバッファ６１、６２がオフとなり、ＣＰＵ１１が、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４内部のデータ等を読み取ることはできない。これにより、ユーザがＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４内部のデータ等を読み取ることを防止することができる。
【００２６】
ここで、システムＬＳＩ１０において制御信号を入力するための端子（取扱説明書において「未使用」又は「予約済み」と掲載されている端子）を、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４内部のデータ等を読み取らせても構わないユーザ（例えば、ソフトウェアのデバッグを行う技術者等）にのみ知らせることとし、その他のユーザには知らせないこととすることができる。このようにすれば、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４内部のデータ等を読み取らせても構わないユーザがデバッグを容易にすることができ、その他のユーザがＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４内部のデータ等を読み取ることを防止することができる。
【００２７】
また、システムＬＳＩ１０において制御信号を入力するための端子が取扱説明書において「未使用」又は「予約済み」と記載されているので、制御信号を入力するための端子を知らされていないユーザが、システムＬＳＩ１０がデバッグツール４０に接続されている場合にバッファ６１、６２をオフにさせるため、システムＬＳＩ１０を解析することは困難である。従って、システムＬＳＩ１０がデバッグツール４０に接続されている場合に、制御信号を入力するための端子を知らされていないユーザがＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４内部のデータ等を読み取ることは、非常に困難となる。
【００２８】
また、システムＬＳＩ１０がデバッグツール４０に接続されている場合に、ハイレベルの制御信号をプロテクト解除回路１３に入力する以外にバッファ６１、６２をオンにさせることはできないので、他の方法又は装置を用いてＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４内部のデータ等を読み取ることはできない。
【００２９】
なお、本実施形態においては、１本の制御信号がハイレベルとなった場合に、プロテクト回路３１〜３４内のバッファ６１、６２がオンになることとしているが、例えば、第１〜第４の制御信号が入力されることとし、第１の制御信号がハイレベルとなった場合に、プロテクト回路３１内のバッファ６１、６２がオンになることとし、第２の制御信号がハイレベルとなった場合に、プロテクト回路３２内のバッファ６１、６２がオンになることとし、第３の制御信号がハイレベルとなった場合に、プロテクト回路３３内のバッファ６１、６２がオンになることとし、第４の制御信号がハイレベルとなった場合に、プロテクト回路３１内のバッファ６１、６２がオンになることとしても良い。これにより、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４のデータ等の読み取りにセキュリティレベルを設け、セキュリティレベルに応じたデータ等の読み取りを実現することができる。
さらに、第１〜第４の制御信号がエンコードされており、プロテクト解除回路１３が第１〜第４の制御信号をデコードし、デコード結果に応じて、プロテクト回路３１〜３４のいずれか又は全てのバッファ６１、６２がオンになることとしても良い。
【００３０】
また、プロテクト解除回路１３が、レジスタを内部に有しており、このレジスタに対するアクセスが外部からあった場合に、ハイレベルのプロテクト解除信号を出力することとしても良い。
さらに、プロテクト解除回路１３が、レジスタを内部に有しており、このレジスタに所定の値のデータ（解除キー）が外部から書き込まれた場合に、書き込まれたデータに応じて、プロテクト回路３１〜３４のいずれか又は全てのバッファ６１、６２がオンになることとしても良い。これにより、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４のデータ等の読み取りにセキュリティレベルを設け、セキュリティレベルに応じたデータ等の読み取りを実現することができる。
【００３１】
また、プロテクト解除回路１３が、複数のレジスタを内部に有しており、これらのレジスタに対するアクセスが外部からあった場合に、アクセスされたレジスタに応じて、プロテクト回路３１〜３４のいずれか又は全てのバッファ６１、６２がオンになることとしても良い。これにより、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４のデータ等の読み取りにセキュリティレベルを設け、セキュリティレベルに応じたデータ等の読み取りを実現することができる。
さらに、プロテクト解除回路１３が、複数のレジスタを内部に有しており、これらのレジスタに所定の値のデータ（解除キー）が外部から書き込まれた場合に、書き込みが行われたレジスタ又は書き込まれたデータに応じて、プロテクト回路３１〜３４のいずれか又は全てのバッファ６１、６２がオンになることとしても良い。これにより、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４のデータ等の読み取りに、セキュリティレベルを設け、セキュリティレベルに応じたデータ等の読み取りを実現することができる。
【００３２】
また、本実施形態においては、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４とＣＰＵ１１との間にプロテクト回路３１〜３４を接続しているが、例えば、ＲＯＭ２１内部のデータ等の読み取りだけを防止する場合には、ＲＯＭ２１とＣＰＵ１１との間にプロテクト回路３１を接続し、プロテクト回路３２〜３４を不要とすることができる。
【００３３】
なお、システムＬＳＩ１０がデバッグツール４０に接続されていない場合には、ＣＰＵ１１は、所定の演算処理を行うことができる。
【００３４】
次に、本発明の第２の実施の形態について説明する。図５は、本発明の第２の実施の形態に係るインサーキットエミュレータを示す図である。
図５に示すように、インサーキットエミュレータ７１は、システムＬＳＩ７２と、デバッグツール４０とを具備する。
システムＬＳＩ７２は、ＣＰＵ１１と、デバッグ回路１２と、プロテクト解除回路１３と、ＲＯＭ２１と、ＲＡＭ２２と、レジスタ２３と、ユーザ回路２４と、プロテクト回路３１〜３４とを含んでいる。
【００３５】
ＣＰＵ１１は、デバッグツール４０に接続されていない場合には、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、又は、ユーザ回路２４内部のデータ又はプログラムを読み取って所定の演算を行う。また、ＣＰＵ１１は、デバッグツール４０に接続されている場合には、デバッグツール４０及びデバッグ回路１２の指示に従い、ハイレベル又はローレベルの制御信号をプロテクト解除回路１３に出力する。本実施形態においては、ＣＰＵ１１は、デバッグツール４０に接続されているので、デバッグツール４０及びデバッグ回路１２の指示に従い、ハイレベル又はローレベルの制御信号をプロテクト解除回路１３に出力する。
プロテクト解除回路１３には、ＣＰＵ１１から制御信号が入力される。プロテクト解除回路１３は、制御信号がローレベルの場合には、ローレベルのプロテクト解除信号をプロテクト回路３１〜３４に出力する。また、プロテクト解除回路１３は、制御信号がハイレベルの場合には、ハイレベルのプロテクト解除信号をプロテクト回路３１〜３４に出力する。
【００３６】
このように、インサーキットエミュレータ７１によれば、ＣＰＵ１１がデバッグツール４０又はデバッグ回路１２の指示に応じてハイレベルの制御信号をプロテクト解除回路１３に出力する場合には、プロテクト回路３１〜３４内のバッファ６１、６２がオンとなり、ＣＰＵ１１が、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４内部のデータ等を読み取ってデバッグツール４０に送信する。これにより、ユーザが、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４内部のデータ等を読み取ることができる。また、ＣＰＵ１１がデバッグツール４０又はデバッグ回路１２の指示に応じてローレベルの制御信号をプロテクト解除回路１３に出力する場合には、プロテクト回路３１〜３４内のバッファ６１、６２がオフとなり、ＣＰＵ１１が、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４内部のデータ等を読み取ることはできない。これにより、ユーザがＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４内部のデータ等を読み取ることを防止することができる。
【００３７】
ここで、ＣＰＵ１１にハイレベルの制御信号を出力させるためのコマンド等を、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４内部のデータ等を読み取らせても構わないユーザ（例えば、ソフトウェアのデバッグを行う技術者等）にのみ知らせることとし、その他のユーザには知らせないこととすることができる。このようにすれば、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４内部のデータ等を読み取らせても構わないユーザのデバッグを容易にすることができ、その他のユーザがＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４内部のデータ等を読み取ることを防止することができる。
【００３８】
また、ＣＰＵ１１にハイレベルの制御信号を出力させるためのコマンド等を知らされていないユーザが、システムＬＳＩ７２がデバッグツール４０に接続されている場合にバッファ６１、６２をオフにさせるため、システムＬＳＩ７２を解析することは困難である。そのため、ＣＰＵ１１にハイレベルの制御信号を出力させるためのコマンド等を知らされていないユーザが、システムＬＳＩ７２がデバッグツール４０に接続されている場合に、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４内部のデータ等を読み取ることが、非常に困難となる。
【００３９】
また、システムＬＳＩ７２がデバッグツール４０に接続されている場合に、ＣＰＵ１１にハイレベルの制御信号を出力させる以外にバッファ６１、６２をオンにさせることはできないので、他の方法又は装置を用いてＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４内部のデータ等を読み取ることはできない。
【００４０】
なお、本実施形態においては、１本の制御信号がハイレベルとなった場合に、プロテクト回路３１〜３４内のバッファ６１、６２がオンになることとしているが、例えば、ＣＰＵ１１が第１〜第４の制御信号をプロテクト解除回路１３に出力することとし、第１の制御信号がハイレベルとなった場合に、プロテクト回路３１内のバッファ６１、６２がオンになることとし、第２の制御信号がハイレベルとなった場合に、プロテクト回路３２内のバッファ６１、６２がオンになることとし、第３の制御信号がハイレベルとなった場合に、プロテクト回路３３内のバッファ６１、６２がオンになることとし、第４の制御信号がハイレベルとなった場合に、プロテクト回路３１内のバッファ６１、６２がオンになることとしても良い。これにより、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４のデータ等の読み取りにセキュリティレベルを設け、セキュリティレベルに応じたデータ等の読み取りを実現することができる。
さらに、第１〜第４の制御信号がエンコードされており、プロテクト解除回路１３が第１〜第４の制御信号をデコードし、デコード結果に応じて、プロテクト回路３１〜３４のいずれか又は全てのバッファ６１、６２がオンになることとしても良い。
【００４１】
また、プロテクト解除回路１３が、レジスタを内部に有しており、このレジスタがＣＰＵ１１によってアクセスされた場合に、ハイレベルのプロテクト解除信号を出力することとしても良い。
さらに、プロテクト解除回路１３が、レジスタを内部に有しており、このレジスタに所定の値のデータ（解除キー）がＣＰＵ１１から書き込まれた場合に、書き込まれたデータに応じて、プロテクト回路３１〜３４のいずれか又は全てのバッファ６１、６２がオンになることとしても良い。これにより、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４のデータ等の読み取りにセキュリティレベルを設け、セキュリティレベルに応じたデータ等の読み取りを実現することができる。
【００４２】
また、プロテクト解除回路１３が、複数のレジスタを内部に有しており、これらのレジスタがＣＰＵ１１によってアクセスされた場合に、アクセスされたレジスタに応じて、プロテクト回路３１〜３４のいずれか又は全てのバッファ６１、６２がオンになることとしても良い。これにより、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４のデータ等の読み取りにセキュリティレベルを設け、セキュリティレベルに応じたデータ等の読み取りを実現することができる。
さらに、プロテクト解除回路１３が、複数のレジスタを内部に有しており、これらのレジスタに所定の値のデータ（解除キー）がＣＰＵ１１によって書き込まれた場合に、書き込みが行われたレジスタ又は書き込まれたデータに応じて、プロテクト回路３１〜３４のいずれか又は全てのバッファ６１、６２がオンになることとしても良い。これにより、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４のデータ等の読み取りにセキュリティレベルを設け、セキュリティレベルに応じたデータ等の読み取りを実現することができる。
【００４３】
また、本実施形態においては、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４とＣＰＵ１１との間にプロテクト回路３１〜３４を接続しているが、例えば、ＲＯＭ２１内部のデータ等の読み取りだけを防止する場合には、ＲＯＭ２１とＣＰＵ１１との間にプロテクト回路３１を接続し、プロテクト回路３２〜３４を不要とすることができる。
【００４４】
また、インサーキットエミュレータ７１においては、インサーキットエミュレータ１のように、プロテクト解除回路１３に外部から制御信号を入力する必要がないので、制御信号を入力するための端子、制御信号を入力するための特別な装置等が不要である。
【００４５】
なお、システムＬＳＩ７２がデバッグツール４０に接続されていない場合には、ＣＰＵ１１は、所定の演算処理を行うことができる。
【００４６】
次に、本発明の第３の実施の形態について説明する。図６は、本発明の第３の実施の形態に係るインサーキットエミュレータを示す図である。
図６に示すように、インサーキットエミュレータ８１は、システムＬＳＩ８２と、デバッグツール４０とを具備する。
システムＬＳＩ８２は、ＣＰＵ１１と、デバッグ回路１２と、プロテクト解除回路１３と、ＲＯＭ２１と、ＲＡＭ２２と、レジスタ２３と、ユーザ回路２４と、プロテクト回路３１〜３４と、シリアルインタフェース回路８３とを含んでいる。
【００４７】
シリアルインタフェース回路８３は、外部からシリアル信号を所定のプロトコルで受信し、このシリアル信号に基づいて、ハイレベル又はローレベルの制御信号をプロテクト解除回路１３に出力する。
プロテクト解除回路１３には、シリアルインタフェース回路８３から制御信号が入力される。プロテクト解除回路１３は、制御信号がローレベルの場合には、ローレベルのプロテクト解除信号をプロテクト回路３１〜３４に出力する。また、プロテクト解除回路１３は、制御信号がハイレベルの場合には、ハイレベルのプロテクト解除信号をプロテクト回路３１〜３４に出力する。
【００４８】
このように、インサーキットエミュレータ８１によれば、シリアルインタフェース回路８３が外部から入力されるシリアル信号に基づいてハイレベルの制御信号をプロテクト解除回路１３に出力する場合には、プロテクト回路３１〜３４内のバッファ６１、６２がオンとなり、ＣＰＵ１１が、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４内部のデータ等を読み取ってデバッグツール４０に送信する。これにより、ユーザが、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４内部のデータ等を読み取ることができる。また、シリアルインタフェース回路８３が外部から入力されるシリアル信号に基づいてローレベルの制御信号をプロテクト解除回路１３に出力する場合には、プロテクト回路３１〜３４内のバッファ６１、６２がオフとなり、ＣＰＵ１１が、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４内部のデータ等を読み取ることができない。これにより、ユーザがＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４内部のデータ等を読み取ることを防止することができる。
【００４９】
ここで、シリアルインタフェース回路８３にハイレベルの制御信号を出力させるためのシリアル信号及びプロトコルを、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４内部のデータ等を読み取らせても構わないユーザ（例えば、ソフトウェアのデバッグを行う技術者等）にのみ知らせることとし、その他のユーザには知らせないこととしても良い。このようにすれば、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４内部のデータ等を読み取らせても構わないユーザのデバッグを容易にすることができ、その他のユーザがＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４内部のデータ等を読み取ることを防止することができる。
【００５０】
また、シリアルインタフェース回路８３にハイレベルの制御信号を出力させるためのシリアル信号及びプロトコルを知らされていないユーザが、システムＬＳＩ８２がデバッグツール４０に接続されている場合にバッファ６１、６２をオフにさせるため、システムＬＳＩ８２を解析することは困難である。そのため、シリアルインタフェース回路８３にハイレベルの制御信号を出力させるためのシリアル信号を知らされていないユーザが、システムＬＳＩ８２がデバッグツール４０に接続されている場合に、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４内部のデータ等を読み取ることが、非常に困難となる。
【００５１】
また、システムＬＳＩ８２がデバッグツール４０に接続されている場合に、シリアルインタフェース回路８３にハイレベルの制御信号を出力させる以外にバッファ６１、６２をオンにさせることはできないので、他の方法又は装置を用いてＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４内部のデータ等を読み取ることはできない。
【００５２】
なお、本実施形態においては、１本の制御信号がハイレベルとなった場合に、プロテクト回路３１〜３４内のバッファ６１、６２がオンになることとしているが、例えば、シリアルインタフェース回路８３が第１〜第４の制御信号をプロテクト解除回路１３に出力することとし、第１の制御信号がハイレベルとなった場合に、プロテクト回路３１内のバッファ６１、６２がオンになることとし、第２の制御信号がハイレベルとなった場合に、プロテクト回路３２内のバッファ６１、６２がオンになることとし、第３の制御信号がハイレベルとなった場合に、プロテクト回路３３内のバッファ６１、６２がオンになることとし、第４の制御信号がハイレベルとなった場合に、プロテクト回路３１内のバッファ６１、６２がオンになることとしても良い。これにより、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４のデータ等の読み取りにセキュリティレベルを設け、セキュリティレベルに応じたデータ等の読み取りを実現することができる。
【００５３】
さらに、第１〜第４の制御信号がエンコードされており、プロテクト解除回路１３が第１〜第４の制御信号をデコードし、デコード結果に応じて、プロテクト回路３１〜３４のいずれか又は全てのバッファ６１、６２がオンになることとしても良い。これにより、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４のデータ等の読み取りにセキュリティレベルを設け、セキュリティレベルに応じたデータ等の読み取りを実現することができる。
【００５４】
なお、本実施形態においては、シリアルインタフェース回路８３を用いているが、パラレルインタフェース回路を用いることとしても良い。
【００５５】
また、本実施形態においては、ＲＯＭ２１、ＲＡＭ２２、レジスタ２３、及び、ユーザ回路２４とＣＰＵ１１との間にプロテクト回路３１〜３４を接続しているが、例えば、ＲＯＭ２１内部のデータ等の読み取りだけを防止する場合には、ＲＯＭ２１とＣＰＵ１１との間にプロテクト回路３１を接続し、プロテクト回路３２〜３４を不要とすることができる。
【００５６】
なお、システムＬＳＩ８２がデバッグツール４０に接続されていない場合には、ＣＰＵ１１は、所定の演算処理を行うことができる。
【００５７】
また、第１〜第３の実施形態において、プロテクト回路３１〜３４が入出力バッファ５１〜５８（図３参照）を有することとしているが、必要に応じて、プロテクト回路３１〜３４が、図７に示す出力バッファ９１〜９８を有することとしても良いし、プロテクト回路３１〜３４が、図８に示す入力バッファ１０１〜１０８を有することとしても良い。
また、プロテクト回路３１〜３４が、図９に示すように、バッファ６１、６２、ＮＡＮＤゲート回路８４、８５を含む入出力バッファ１１１〜１１８を有することとしても良い。
【００５８】
【発明の効果】
以上述べた様に、本発明によれば、所定のデータ又は信号が入力された場合に、内部のデータ又はプログラムを読み取ることが可能となる。これにより、ソフトウェアのデバッグを行うユーザが内部のデータ等を読み取ること、及びその他のユーザが内部のデータ等を読み取ることができないことを容易に実現することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係るインサーキットエミュレータを示す図である。
【図２】図１のプロテクト回路の内部構成を示す図である。
【図３】図２の入出力バッファの内部構成の一例を示す図である。
【図４】図３のバッファの動作を表す真理値表を示す図である。
【図５】本発明の第２の実施形態に係るインサーキットエミュレータを示す図である。
【図６】本発明の第３の実施形態に係るインサーキットエミュレータを示す図である。
【図７】図２の入出力バッファの内部構成の他の例を示す図である。
【図８】図２の入出力バッファの内部構成の他の例を示す図である。
【図９】図２の入出力バッファの内部構成の他の例を示す図である。
【符号の説明】
１、７１、８１  インサーキットエミュレータ
１０、７２、８２  システムＬＳＩ
１１  ＣＰＵ
１２  デバッグ回路
１３  プロテクト解除回路
２１  ＲＯＭ
２２  ＲＡＭ
２３  レジスタ
２４  ユーザ回路
３１〜３４  プロテクト回路
４０  デバッグツール
５１〜５８、１１１〜１１８  入出力バッファ
５９  ＡＮＤゲート回路
６１、６２  バッファ
８３  シリアルインタフェース回路
８４、８５  ＮＡＮＤゲート回路
９１〜９８  出力バッファ
１０１〜１０８  入力バッファ
【図１】
0003705255.tif 000002
【図２】
0003705255.tif 000003
【図３】
0003705255.tif 000004
【図４】
0003705255.tif 000005
【図５】
0003705255.tif 000006
【図６】
0003705255.tif 000007
【図７】
0003705255.tif 000008
【図８】
0003705255.tif 000009
【図９】
0003705255.tif 000010