(57)【要約】【課題】ボード実装レベルにおいても、容易に内部信号を外部で観測してデバッグを行なうことのできるデバッグシステムを提供する。【解決手段】半導体情報処理装置においてデバッグサポートユニット（２ａ）からのＣＰＵ動作トレース情報とバスマスタ（７）のメモリアクセス時に出力される内部バス（３）上の内部アクセス情報をデバッグ指示信号に従って選択して外部へ伝達するマルチプレクサ（８，８Ａ）を設けるとともに装置外部にこれらのアクセス情報を格納するメモリ領域を設ける。【選択図】図１
2010231818.tif 000002
【特許請求の範囲】
【請求項１】
内部バスと、
前記内部バスに接続される中央処理装置とバスマスタ装置とを有し、
前記中央処理装置の命令実行に応じて出力されるＣＰＵ動作トレース情報と、前記バスマスタ装置のメモリアクセスに応じて出力されるバスアクセス情報とを、外部から供給されるデバッグ指示信号に応じて選択的に外部へ出力する制御を行うでバッグ支援機能を有する、半導体情報処理装置と、
前記半導体情報処理装置の外部に設けられ、前記ＣＰＵ動作トレース情報および前記バスアクセス情報を格納するメモリ領域とを備えた、デバッグシステム。
【請求項２】
前記バスアクセス情報は、前記内部バスを介して転送されるデータ情報、アドレス情報または制御情報を含む、請求項１記載のデバッグシステム。
【請求項３】
前記デバッグ支援機能は、前記外部から供給されるデバッグ指示信号に応じて、前記ＣＰＵ動作トレース情報と前記バスアクセス情報とを選択的に外部へ出力する制御を行うデバッグ制御回路を備える、請求項１または２記載のデバッグシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、デバッグシステムに関し、特に、半導体情報処理装置のデバッグを容易に行なうことのできるデバッグシステムに関する。
【背景技術】
【０００２】
ＭＰＵ（マイクロ・プロセッサ・ユニット）およびＣＰＵ（セントラル・プロセッサ・ユニット）などのプロセッサにおいては、プログラムの検証およびハードウェアの動作確認などのデバッグ作業が行なわれる。このようなデバッグ作業を容易とするために、従来から、デバッグ作業を支援するためのデバッグサポートユニットが、プロセッサ内に搭載されている。特に、システム・オン・チップと呼ばれるような１チップ上に、プロセッサおよび周辺ＬＳＩ（大規模集積回路装置）が集積化させる構成においては、複雑な内部構成を正確に動作させる必要があり、デバッグ作業が重要となる。
【０００３】
図１５は、従来のプロセッサ内蔵半導体集積回路装置の内部構成およびそのデバッグ環境を概略的に示す図である。図１５において、プロセッサ内蔵半導体集積回路装置（以下、ＣＰＵ内蔵ＬＳＩと称す）１は、与えられた命令に従って指令された処理を行なうためのＣＰＵコア２と、プログラムを格納するための読出専用メモリ（ＲＯＭ）４と、中間データを保持するためのランダム・アクセス・メモリ（ＲＡＭ）５と、装置外部との信号（データを含む）の授受を行なうための入出力回路を含むＩＯモジュール６と、ＲＡＭ５に直接アクセスして、外部とのデータの授受を行なうためのダイレクト・メモリ・アクセス・コントローラ（ＤＭＡＣ）７を含む。これらのＣＰＵコア２、ＲＯＭ４、ＲＡＭ５、ＩＯモジュール６、およびＤＭＡＣ７は、内部バス３を介して相互接続される。
【０００４】
ＣＰＵコア２には、このＣＰＵコア２が実行するソフトウェア（プログラム）のデバッグを容易にするためにデバッグサポートユニット（ＤＳＵ）２ａが搭載される。このデバッグサポートユニット（ＤＳＵ）２ａは、ピン端子１０に接続されるＤＳＵ制御用信号線、ピン端子１１に接続されてＣＰＵが特定の内部状態になったことを外部に通知するためのＣＰＵイベント通知信号線、およびピン端子１２に接続されるＣＰＵの動作状態トレース用信号線に接続される。
【０００５】
このＣＰＵ内蔵ＬＳＩ１は、さらに、ピン端子１９を介して与えられるテストモード指示信号ＴＰに従ってＩＯモジュール６および内部バス３の一方をＩＯ端子１３に接続するデバッグ用マルチプレクサ（ＭＵＸ）１８を含む。内部バス３には、データ、アドレス信号および制御信号を含む信号が伝達される。
【０００６】
このＣＰＵ内蔵ＬＳＩは、内部バス３のバスマスタが、ＣＰＵコア２およびＤＭＡＣ７である。この内部バス３には、さらに、バスアービタなどの周辺回路が接続されるが、これらは図面を簡略化するために示していない。
【０００７】
デバッグ動作時においては、ＣＰＵ内蔵ＬＳＩ１は、ピン端子１０〜１２を介して、外部に設けられたＤＳＵ対応デバッグ装置２０に結合される。このＤＳＵ対応デバッグ装置２０は、ＣＰＵコア２に含まれるデバッグサポートユニット（ＤＳＵ）２ａの動作を制御するための制御部２０ａと、この制御部２０ａの制御の下に、デバッグサポートユニット２ａからピン端子１２を介して出力されるＣＰＵ動作状態トレース信号を格納するトレースデータ格納用メモリ２０ｂを含む。このＤＳＵ対応デバッグ装置２０は、またピン端子２２を介してコンピュータ３０に結合される。したがって、このＤＳＵ対応デバッグ装置２０は、コンピュータ３０の制御の下に、ＣＰＵコア２に含まれるＣＰＵの動作を制御するとともに、このトレースデータ格納用メモリ２０ｂに格納されたトレースデータを、コンピュータ３０の表示画面上に表示することができる。
【０００８】
デバッグ環境下においては、さらに、ＩＯ端子１３が、ロジックアナライザ４０にプローブケーブル４２を介して結合される。このロジックアナライザ４０は、ＩＯ端子１３上の信号の論理レベルのモニタの動作を行なう。
【０００９】
通常動作時においては、デバッグ用マルチプレクサ（ＭＵＸ）１８は、ＩＯモジュール６を選択してＩＯ端子１３に結合し、デバッグ環境下においては、ピン端子１９に与えられるテストモード指示信号ＴＰの活性化に応答して、内部バス３をＩＯ端子１３に結合する。内部バス３をデバッグ用マルチプレクサ（ＭＵＸ）８を介してＩＯ端子１３に結合することにより、デバッグ環境下において、ロジックアナライザ４０により、内部バス３の状態をモニタする。ＣＰＵ内蔵ＬＳＩ１のデバッグ時においては、ＣＰＵコア２の実行するソフトウェアに従って内部バス３にはどのような信号が出力されているかを外部で観測することにより、このソフトウェアが正確に実行されているか否かを識別することが必要となる。この内部バス３の信号値を外部でモニタするために、デバッグ用マルチプレクサ（ＭＵＸ）１８が設けられる。
【００１０】
一方、ＤＳＵ対応デバッグ装置２０は、デバッグ動作時には、ＤＳＵ制御ピン端子１０を介して制御信号をデバッグサポートユニット２ａへ与えて、ＣＰＵコア２に、命令を実行させるとともに、その実行を制御する。このデバッグサポートユニット２ａは、ＣＰＵコア２に含まれるＣＰＵの動作状態をモニタし、ＣＰＵが特定の内部状態になったとき（デバッグ時に指定される）、ＣＰＵイベント通知信号をピン端子１１を介してＤＳＵ対応デバッグ装置２０へ与える。ＤＳＵ対応デバッグ装置２０では、デバッグサポートユニット２ａからピン端子１１を介して与えられるＣＰＵイベント通知信号が活性状態となると、制御部２０ａが、トレースデータ格納用メモリ２０ｂに書込命令を与え、デバッグサポートユニット２ａからピン端子１２を介して与えられるＣＰＵ動作トレース情報をそこに格納する。このトレースデータ格納用メモリ２０ｂに格納されたＣＰＵ動作トレース情報は、ピン端子２２を介してコンピュータ３０へ与えられ、コンピュータ画面上での表示などが実行される。
【００１１】
またデバッグ環境下においては、デバッグ用マルチプレクサ（ＭＵＸ）１８が、内部バス３をＩＯピン１３に結合しており、ロジックアナライザ４０がこのＩＯピン１３およびデバッグ用マルチプレクサ（ＭＵＸ）１８を介して内部バス３の信号値を観測しており、そのモニタ結果をロジックアナライザ４０の表示画面上に表示する。
【００１２】
このコンピュータ３０の表示画面およびロジックアナライザ４０の表示画面上に表示された情報をオペレータが検査することにより、ＣＰＵコア２が正常に動作し、指定された命令を実行しているか否かが判定される。
【００１３】
異常が判定された場合、ＣＰＵ動作トレース情報に基づいて、異常発生原因となった命令が識別され、デバッグが実行される。
【００１４】
外部デバッグ装置としてインサーキットエミュレータを用い、外部バスデバッグインターフェイス部により、このインサーキットエミュレータにより内部バスへアクセス可能として、オンチップ資源に対するバスアクセスに対してデバッグ可能とする構成が、特許文献１（特開平０８−００６９２０号公報）に示されている。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開平０８−００６９２０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
このＣＰＵ内蔵ＬＳＩ１においては、内部バス３のバスマスタが、ＣＰＵコア２およびダイレクト・メモリ・アクセス・コントローラ（ＤＭＡＣ）７である。ダイレクト・メモリ・アクセス・コントローラ（ＤＭＡＣ）７は、ＣＰＵコア２のＣＰＵが演算処理を行なっているとき、その演算処理動作に悪影響を及ぼすことなく、ランダム・アクセス・メモリ（ＲＡＭ）５へアクセスし、外部の共有メモリまたはロジック／プロセッサとの間でデータの転送を実行する。すなわち、このＣＰＵ内蔵ＬＳＩ１においては、ＣＰＵコア２に含まれるＣＰＵおよびダイレクト・メモリ・アクセス・コントローラ（ＤＭＡＣ）７が並列に動作する。このＣＰＵコア２およびダイレクト・メモリ・アクセス・コントローラ（ＤＭＡＣ）７の並列動作に関するデバッグは、データのインテグリティを保証する上で非常に重要である。
【００１７】
しかしながら、この図１５に示す従来のＣＰＵ内蔵ＬＳＩに対するデバッグ環境下においては、内部バス３の信号値は、ロジックアナライザ４０の画面上に表示され、一方、ＣＰＵコア２に含まれるＣＰＵの動作状態についての情報は、コンピュータ３０の画面上に表示される。ロジックアナライザ４０およびコンピュータ３０は個々独立に動作しており、したがって、このＣＰＵコア２に含まれるＣＰＵの動作状態情報と内部バス上の信号値の時間軸を一致させて表示させることは不可能である。したがって、このＣＰＵコア２に含まれるＣＰＵの動作と、ダイレクト・メモリ・アクセス・コントローラ（ＤＭＡＣ）の動作状態とを関連づけて解析するのは困難であり、それゆえ、このＣＰＵおよびダイレクト・メモリ・アクセス・コントローラ（ＤＭＡＣ）の並列動作に関連したデバッグは極めて困難であるという問題があった。
【００１８】
また、ロジックアナライザ４０を使用するため、プローブケーブル４２をＩＯピン端子１３に接続する必要があり、したがって、このＩＯピン端子１３は、基板上に設ける必要があり、たとえばボール・グリッド・アレイ（ＢＧＡ）のような基板下にピン端子が配置されるような構成に対しては、このロジックアナライザ４０を使用することができなくなる。これは、ＣＰＵ内蔵ＬＳＩのＩＯピン端子の配置がこのデバッグのために制約されるという問題が生じる。
【００１９】
また、ＣＰＵコア２に対し、大記憶容量のメモリを同一基板上に集積化する構成の場合、内部バス３のビット幅はピン端子数に制約されないため、そのビット幅は十分広くされる。一方、ＩＯピン端子１３および他のピン端子の数は、このＣＰＵ内蔵ＬＳＩのパッケージによる外部ピン端子数の制約を受けており、上限が存在する。したがって、内部バス３に含まれる信号線上の信号値をすべてロジックアナライザ４０へ与えることはできず、正確に、内部バスの状態を外部で観測することができなくなるという問題が生じる。
【００２０】
また、ＩＯモジュール６は、実動作時においては、データの入出力を行なうための本来の入出力回路として使用される。したがって、このＣＰＵ内蔵ＬＳＩ１を、ボード上に実装した場合、このＩＯピン端子１３は、他の装置のピン端子に配線により接続されており、ＩＯモジュール６が、デバッグ用マルチプレクサ（ＭＵＸ）１８を介してＩＯピン端子１３に接続される。したがって、ボード上実装レベルにおいては、このＩＯピン端子１３にプローブケーブル４２を接続して、ロジックアナライザ４０でこのＩＯピン端子１３の信号値を観測することはできず、ＣＰＵ内蔵ＬＳＩ単体でしか、デバッグを行なうことができなくなるという問題が生じる。
【００２１】
さらに、デバッグ用マルチプレクサ（ＭＵＸ）１８においては、ＩＯピン端子１３を駆
動するためのドライバが設けられる。ＣＰＵ内蔵ＬＳＩ１を有するシステムにおいては、その動作周波数は、たとえば１００ＭＨｚから３００ＭＨｚと高速であり、このような高速のクロックに従ってＩＯピン端子１３を充放電した場合、電磁輻射によるノイズが生じる。したがって、このような輻射ノイズを低減するため、ＩＯピン端子１３を駆動する出力ドライバの駆動能力は、一般に、比較的小さくされ、急速のＩＯピン端子１３の充放電が抑制される。しかしながら、このような場合、ＩＯピン端子１３の充放電速度が比較的遅くなるため、プローブケーブル４２での信号の伝搬遅延が大きくなり、高速のクロック信号に従って伝達される内部バス３上の信号の高速な変化をＩＯピン端子１３およびプローブケーブル４２を介してロジックアナライザ４０で取込むことができず、正確な内部バス３の状態の外部での観測を行なうことができなくなるという問題が生じる。
【００２２】
それゆえ、この発明の目的は、ピン配置の制約を受けることなくデバッグに必要な情報を外部で容易にかつ正確に観測することのできるデバッグシステムを提供することである。
【００２３】
この発明の他の目的は、内部バスのビット幅が広い場合でも、内部バス信号を、ピン数を増加させることなく外部で観測することのできるデバッグシステムを提供することである。
【課題を解決するための手段】
【００２４】
この発明は、要約すれば、ＣＰＵ動作トレース情報出力ピンに、選択的に、ＣＰＵ動作トレース情報および内部バス情報を与える。
【００２５】
すなわち、この発明の一実施の形態に掛かるデバッグシステムは、内部バスと、内部バスに接続される中央処理装置およびバスマスタ装置とを有し、中央処理装置の命令実行に応じて出力されるＣＰＵ動作トレース情報と、バスマスタ装置のメモリアクセスに応じて出力されるバスアクセス情報とを、外部から供給されるデバッグ指示信号に応じて選択的に外部へ出力する制御を行うデバッグ支援機能を有する半導体情報処理装置と、半導体情報処理装置外部に設けられＣＰＵ動作トレース情報およびバスアクセス情報を格納するメモリ領域とを備える。
【発明の効果】
【００２６】
この発明に従えば、デバッグ指示信号に従って、ＣＰＵ動作トレース情報およびバスマスタ装置のメモリアクセス時に出力されるバスアクセス情報とを、選択的に外部へ出力しており、ＩＯピン端子にプローブを接触させて、ロジックアナライザで、内部信号をモニタする必要がなく、ボード上実装レベルにおいても、デバッグ動作を行なうことができる。
【００２７】
内部のバスアクセス情報を、ＣＰＵ動作トレース情報とを選択的に外部へ出力することにより、従来のようなＩＯピン端子を介して内部バス情報を出力する必要がなく、ピン端子配置の制約を受けることなく内部情報を外部で観測することができる。また、外部にＣＰＵ動作トレース情報および内部バスアクセス情報が外部に選択的に伝達されるため、１つのデバッグ装置においてＣＰＵ動作情報および内部バスアクセス情報の時間軸を合わせて解析することが可能となり、複雑なデバッグをも容易に行なうことができる。
【図面の簡単な説明】
【００２８】
【図１】この発明の実施の形態１に従うプロセッサ内蔵半導体集積回路装置およびそのデバッグ環境を概略的に示す図である。
【図２】図１に示すＣＰＵコアの構成を概略的に示す図である。
【図３】図１に示すマルチプレクサの構成を概略的に示す図である。
【図４】図１に示す内部バス信号表示用ソフトウェアの処理シーケンスを示すフロー図である。
【図５】デバッグ対象プログラムの一例を示す図である。
【図６】図５に示すプログラム実行時におけるトレース結果を示す図である。
【図７】この発明の実施の形態２に従うプログラム内蔵半導体集積回路装置の構成を概略的に示す図である。
【図８】図７に示すマルチプレクサの構成を概略的に示す図である。
【図９】図７に示す構成におけるトレース情報のシーケンスの一例を示す図である。
【図１０】この発明の実施の形態３に従うマルチプレクサの構成を概略的に示す図である。
【図１１】図１０に示すマルチプレクサの動作タイミングを示す図である。
【図１２】図１０に示すフリップフロップ回路の構成の一例を示す図である。
【図１３】この発明の実施の形態４に従うマルチプレクサの構成を概略的に示す図である。
【図１４】図１３に示す圧縮回路の構成の一例を示す図である。
【図１５】従来のプロセッサ内蔵半導体集積回路装置の構成およびそのデバッグ環境を示す図である。
【発明を実施するための形態】
【００２９】
［実施の形態１］
図１は、この発明の実施の形態１に従うＣＰＵ内蔵ＬＳＩの構成およびそのデバッグ環境を概略的に示す図である。図１において、ＣＰＵ内蔵ＬＳＩ１は、従来と同様、内部バス３に結合されるＣＰＵコア２、プログラムを格納する読出専用メモリ（ＲＯＭ）４、中間データを格納するためのランダム・アクセス・メモリ（ＲＡＭ）５、および信号（データを含む）の入出力を行なうためのＩＯモジュール６と、ダイレクト・メモリ・アクセス・コントローラ（ＤＭＡＣ）７を含む。これらの構成要素２〜７は、内部バス３を介して相互接続される。ＩＯモジュール６は、また内部ＩＯバス１４を介してＩＯピン端子１３に結合される。この内部ＩＯバス１４は、ＩＯピン端子１３に含まれる端子と同一ビット幅を有する。
【００３０】
ＣＰＵコア２は、また、デバッグサポートユニット（ＤＳＵ）２ａを含む。内部バス３は、内部データを伝達するための内部データバス３ａならびにアドレス信号および制御信号を伝達するための内部信号バス３ｂを含む。
【００３１】
このＣＰＵ内蔵ＬＳＩ１は、内部データバス３ａおよび内部信号バス３ｂ上のそれぞれの１６ビットの信号とデバッグサポートユニット２ａからのＣＰＵ動作トレース情報を受け、ピン端子９から与えられるテストモード指示信号に従って、ＣＰＵ動作トレース情報、内部データおよび内部信号のいずれかを選択してＣＰＵ動作トレース情報用のピン端子１２へ伝達するマルチプレクサ８を含む。この図１に示す構成においては、マルチプレクサ８へは、１６ビットの内部データ、および１６ビットの内部信号が伝達され、また８ビットのＣＰＵ動作トレース情報が与えられ、マルチプレクサ８は、このピン端子９から与えられるテストモード指示信号に従って８ビットの信号を選択して８ビットのＣＰＵ動作トレース用ピン端子１２へ伝達する。
【００３２】
デバッグ環境としては、このＣＰＵ内蔵ＬＳＩ１の外部に、ＤＳＵ対応デバッグ装置２０が設けられる。このＤＳＵ対応デバッグ装置２０は、ＤＳＵ制御ピン端子１０およびＣＰＵイベント通知ピン端子１１を介してデバッグサポートユニット（ＤＳＵ）２ａに結合される制御部２０ａと、ＣＰＵ動作トレース用ピン端子１２を介してマルチプレクサ８からの信号（データを含む）を受けて格納するデータ格納用メモリ２０ｂを含む。
【００３３】
制御部２０ａは、ＤＳＵ制御ピン端子１０を介して、デバッグサポートユニット（ＤＳＵ）２ａとデバッグ動作に必要な制御信号の授受を行ない、またＣＰＵイベント通知ピン端子１１を介してデバッグサポートユニット（ＤＳＵ）２ａから与えられるＣＰＵイベント通知信号を受ける。データ格納用メモリ２０ｂは、また、制御部２０ａの制御のもとにその格納データをピン端子２２を介してコンピュータ３０へ伝達する。
【００３４】
コンピュータ３０は、このピン端子２２を介して制御部２０ａを制御し、従来と同様、ＤＳＵ対応デバッグ装置２０の制御部２０ａを介してデバッグサポートユニット（ＤＳＵ）２ａの動作を制御し、これにより、ＣＰＵコア２の命令の実行を制御することができる。また、従来と同様、コンピュータ３０は、データ格納用メモリ２０ｂに格納されたＣＰＵ動作トレース情報をその表示画面上に表示することができる。
【００３５】
データ格納用メモリ２０ｂには、マルチプレクサ８を介して内部バス３上の信号も格納される。したがって、コンピュータ３０においては、この内部バス３上の信号をコンピュータ画面上に表示するために、内部バス信号表示用ソフトウェア（ＳＷ）がインストールされる。
【００３６】
したがって、図１に示すＣＰＵ内蔵ＬＳＩ１のデバッグ環境においては、従来とは異なり、ロジックアナライザは使用されない。ＤＳＵ対応デバッグ装置２０が、ピン端子１０、１１および１２を介して、このＣＰＵ内蔵ＬＳＩ１に結合される。
【００３７】
次に、この図１に示すＣＰＵ内蔵ＬＳＩ１のデバッグ動作について説明する。まず、デバッグサポートユニット（ＤＳＵ）２ａには、トレースを開始すべき位置（或る命令のプログラム番地）を特定する情報が、ＤＳＵ対応デバッグ装置２０から与えられる。このトレース開始位置情報に従って、デバッグサポートユニット（ＤＳＵ）２ａは、ステータスレジスタにその指定されたトレース開始情報を格納する。次いで、オペレータからのデバッグ開始指示に従って、ＤＳＵ対応デバッグ装置２０が、ＤＳＵ制御ピン端子１０を介して動作開始のための制御信号をデバッグサポートユニット２ａへ与える。この動作開始指示信号に従って、デバッグサポートユニット（ＤＳＵ）２ａが起動され、ＣＰＵコア２のＣＰＵが図示しないプログラムカウンタに従って順次命令を実行する。このＣＰＵの実行命令番地が、デバッグサポートユニット（ＤＳＵ）２ａのステータスレジスタに格納されたトレース開始位置情報と一致すると、デバッグサポートユニット（ＤＳＵ）２ａが、ＣＰＵイベント通知信号をＣＰＵイベント通知ピン端子１１を介してＤＳＵ対応デバッグ装置２０へ与える。このとき、マルチプレクサ８は、既に、ピン端子９から与えられるテストモード指示信号に従って、内部バス３上の信号およびデバッグサポートユニット（ＤＳＵ）２ａからのＣＰＵ動作トレース情報のいずれかを選択する状態に設定されている。
【００３８】
ＤＳＵ対応デバッグ装置２０は、デバッグサポートユニット（ＤＳＵ）２ａからＣＰＵイベント通知信号が与えられると（活性化されると）、制御部２０ａの制御の下に、データ格納用メモリ２０ｂに、ピン端子１２を介してマルチプレクサ８から与えられる信号（データ）を格納する。マルチプレクサ８の接続態様に従って、データ格納用メモリ２０ｂには、ＣＰＵ動作トレース情報、内部データバス３ａ上の内部データ、および内部信号バス３ｂ上のアドレス信号または制御信号のいずれかが格納されている。
【００３９】
コンピュータ３０は、このトレース動作が完了すると、ＤＳＵ対応デバッグ装置２０に対し、ピン端子２２を介して制御部２０ａへアクセス要求を与え、データ格納用メモリ２０ｂに格納された情報を読出す。このコンピュータ３０には、内部バス信号表示用ソフトウェア（ＳＷ）３０ａが新たにインストールされている。したがって、図示しないＣＰＵ動作トレース情報表示用のソフトウェアおよびこの内部バス信号表示用ソフトウェア３０ａを起動することにより、データ格納用メモリ２０ｂから読出されたデータを、このコンピュータ画面上に表示することができ、ＣＰＵ動作トレース情報と時間軸を合わせて、内部バス３上の信号値を表示する。これにより、従来困難であった、ＣＰＵコア２およびダイレクト・メモリ・アクセス・コントローラ（ＤＭＡＣ）の並列動作時におけるＣＰＵコア２の動作状態および内部バス３上の信号値を並列表示して、デバッグを行なうことが可能となる。
【００４０】
また、ＩＯ端子１３には、ロジックアナライザを接続する必要がなく、したがって、このＩＯ端子１３は、外部から接続可能な位置に設ける必要がなく、ピン配置の自由度が高くなり、たとえばボール・グリッド・アレイ（ＢＧＡ）などのピン配置を利用することができる。また、ＩＯモジュール６が、このＩＯ端子１３に接続されているボード上実装レベルにおいても、デバッグ専用の、ピン端子１０、１１および１２を介して内部バス３上の信号値を外部で観測することができるため、ボード上レベルでのデバッグをも行なうことができる。
【００４１】
さらに、内部バス３上の信号値は、ＣＰＵ動作トレース用ピン端子１２を介して外部に設けられたＤＳＵ対応デバッグ装置２０へ与えられており、したがって、内部バス３上の信号値を外部ピン端子数の影響を受けることなく外部へ出力することができる。
【００４２】
また、このマルチプレクサ８からＣＰＵ動作トレース情報をピン端子１２へ伝達するドライバは、図示しない内部クロック信号に同期して動作しているＣＰＵの動作状態を外部に伝搬することができるのに十分なドライブ能力を有している。したがって、この内部クロック信号に同期して変化する内部バス３上の信号値もこのＣＰＵ動作トレース情報をピン端子１２へ伝達するドライバを介して外部に伝達することができ、高速で変化する内部バス３上の信号の状態を外部に設けられたＤＳＵ対応デバッグ装置２０へ正確に伝達することができ、正確なデバッグ動作が保障される。
【００４３】
［各部の構成］
図２は、図１に示すＣＰＵコア２の構成を概略的に示す図である。図２においては、ＣＰＵコア２は、実行すべき命令の番地を指定する命令アドレスを発生するプログラムカウンタ２ｂと、このプログラムカウンタ２ｂからの命令アドレスに従って図示しない命令メモリへアクセスし、指定された命令を実行する命令実行処理部２ｃを含む。この命令実行処理部２ｃは、ＣＰＵ内部バス２ｄを介して制御信号およびアドレス信号およびデータを授受し、ＣＰＵ内部バス２ｄは、図示しないＩＯポートを介して内部バス３に結合される。このＣＰＵコア２においては、必要なデータおよびフラグなどを格納するレジスタ回路が設けられており、また必要なデータをキャッシュするキャッシュメモリも設けられているが、これらは図面を簡略化するために示していない。
【００４４】
デバッグサポートユニット２ａは、ピン端子１０および１１に結合され、ＤＳＵ制御信号およびＣＰＵイベント通知信号を入出力する制御部２ａａと、制御部２ａａの制御の下に、ＣＰＵ動作トレース開始位置情報を格納するステータスレジスタ２ａｂと、ＣＰＵ内部バス２ｄに結合され、制御部２ａａの制御の下に、このＣＰＵの動作状態を示す信号を抽出してピン端子マルチプレクサ８へ与える情報抽出回路２ａｃを含む。
【００４５】
ステータスレジスタ２ａｂには、トレース開始位置を示すプログラムカウンタ２ｂのカウント値が格納され、制御部２ａａはこのプログラムカウンタ２ｂのカウント値がステータスレジスタ２ａｂに格納されたトレース開始位置情報（アドレス）と一致すると、ＣＰＵイベント通知信号を活性状態へ駆動する。制御部２ａａは、また、ＣＰＵ内部バス２ｄを介して命令実行処理部２ｃに対し、デバッグ動作時、命令の実行を起動する制御信号を与える。
【００４６】
なお、情報抽出回路２ａｃは、ＣＰＵ内部データバス２ｄに結合されているが、ＣＰＵの動作状態を表わす信号を受けるように結合されればよく、破線で示すプログラムカウンタ２ｂのカウント値または他のたとえばレジスタ回路の情報を抽出するように構成されてもよい。
【００４７】
図３は、図１に示すマルチプレクサ８の構成を概略的に示す図である。図３に示すように、内部バス３は１６ビットの内部データバス３ａおよび１６ビットの内部信号バス３ｂを含んでおり、合計３２ビット幅を有している。この内部バス３は、それぞれが８ビット幅を有する４つのサブバスＳＤ１〜ＳＤ４に分割される。マルチプレクサ８は、テストモード指示信号ＴＰ１に従ってこれらのサブバスＳＤ１〜ＳＤ４のうちの１つを選択する第１のマルチプレクサ８ａと、第２のテストモード指示信号ＴＰ２に従って、デバッグサポートユニット（ＤＳＵ）２ａから出力されるＣＰＵ動作トレース情報と第１のマルチプレクサ８ａの出力信号の一方を選択してピン端子１２へ伝達する第２のマルチプレクサ８ｂを含む。
【００４８】
ＣＰＵ動作トレース情報は８ビットであり、したがって、ＣＰＵ動作トレース用ピン端子１２も８ビット幅を有している。内部バス３は３２ビット幅を有しており、ＣＰＵ動作トレース用ピン端子１２のビット幅よりも大きい。しかしながら、内部バス３を複数のサブバスＳＤ１〜ＳＤ４に分割することにより、必要な内部信号値を選択して外部で観測することができる。したがって、このテストモード指示信号ＴＰ１を適当に選択状態へ駆動することにより、３２ビット幅の内部バス３上の内部信号の状態を、すべて外部で観測することができる。
【００４９】
第１のテストモード指示信号ＴＰ１は、４つのサブバスＳＤ１〜ＳＤ４から１つを選択する。したがって、単純な形態においては、この第１のテストモード指示信号ＴＰ１は４ビット幅を有する。しかしながら、この第１のマルチプレクサに対し、２ビットデコーダが設けられ、２ビット幅のテストモード指示信号をこのデコーダでデコードして、４つのサブバスＳＤ１〜ＳＤ４の１つが選択される構成が用いられてもよい。
【００５０】
なお、このサブバスＳＤ１〜ＳＤ４については、内部データバス３ａが２つのサブバスに分割され、内部信号バス３ｂが２つのサブバスに分割される。
【００５１】
なお、上述の説明においては、内部バス３は３２ビット幅を有しているとして説明している。しかしながら、この内部バス３のバス幅は、これより大きく、たとえば６４ビット、１２８ビット等、より大きなビット数であってもよい。ＣＰＵ動作トレース情報のビット幅と同じビット幅を有するサブバスに分割して、第１のマルチプレクサで選択することにより、大きなビット幅を有する内部バスの所望の内部信号の状態を外部で観測することができる。
【００５２】
図４は、図１に示す内部バス信号表示用ソフトウェア（ＳＷ）の処理フローを示す図である。以下、この内部バス信号表示用ソフトウェア３０ａの処理フローについて説明する。
【００５３】
まず、この内部バス信号表示処理を実行する前に、ユーザ（オペレータ）は、ＣＰＵコア２のＣＰＵの内部状態のトレースを開始する場所を指定する（ステップＳ１）。これは、オペレータが、ＣＰＵコア２に含まれる命令実行処理部２ｃが実行する命令のアドレスまたは実行の順番（命令番号；プログラム行番号）を指定する。
【００５４】
コンピュータ３０は、このユーザ（オペレータ）により指定された開始位置を示す情報を、ＣＰＵコア２に含まれたデバッグサポートユニット（ＤＳＵ）に対して与え、またこの指定されたソフトウェア（プログラム）の場所で、ＣＰＵイベント通知信号を活性状態へ駆動するように設定する（ステップＳ２）。デバッグサポートユニット（ＤＳＵ）２ａにおいては、ステータスレジスタ２ａｂに、トレース開始位置を示す情報が格納される。
【００５５】
ステップＳ１およびＳ２の処理により、内部バス上の信号を表示するための初期設定が完了する。また、このとき、マルチプレクサ８は、ボード実装時ボード外部から与えられるテストモード指示信号ＴＰ１およびＴＰ２に従って、内部バス３のサブバスＳＤ１〜ＳＤ４のいずれかを選択する状態に設定される。この状態で、ユーザによるトレース開始指示を待つ（ステップＳ３）。
【００５６】
ユーザが、トレース開始を指示すると、コンピュータ３０は、ＤＳＵ対応デバッグ装置２０を介して、デバッグサポートユニット２ａに対し、命令実行開始を指令する（ステップＳ４）。このとき、ＤＳＵ対応デバッグ装置２０に対しては、デバッグサポートユニット（ＤＳＵ）２ａからのイベント通知信号が活性状態となると、トレースを開始し、このデータ格納用メモリ２０ｂの記憶容量が一杯となるまでトレースを行なうような指令を与える。デバッグサポートユニット２ａは、このＤＳＵ対応デバッグ装置２０から、命令実行開始が指定されると、命令実行処理部２ｃ（図２参照）に対し、命令実行を起動する。この起動時においては、デバッグサポートユニット（ＤＳＵ）２ａとＤＳＵ対応デバッグ装置２０の間で、トレース情報の転送が行なわれており、コンピュータ３０は、ＤＳＵ対応デバッグ装置２０を監視し、トレースが終了するのを待つ（ステップＳ５）。
【００５７】
トレースが終了すると、ＤＳＵ対応デバッグ装置２０は、コンピュータ３０に対し、トレース終了指示を、ピン端子２２を介して報知する。コンピュータ３０は、次いで、画面上に、トレース完了を表示し、ユーザ（オペレータ）によるメモリバンクの指定を待つ（ステップＳ６）。ユーザ（オペレータ）は、このトレース完了の表示が与えられると、トレース情報を格納するためのコンピュータ内のメモリバンク（またはファイル）を指定する。メモリバンク（またはファイル）が指定されると、コンピュータ３０は、ＤＳＵ対応デバッグ装置２０に対しデータ格納用メモリ２０ｂに格納されたデータを制御部２０ａの制御の下に読出す。このデータ格納用メモリ２０ｂから読出された（転送された）トレース情報は、指定されたメモリバンク内へ転送されて格納される（ステップＳ７）。
【００５８】
一度にトレース可能なトレース情報は、ＣＰＵ動作トレース用ピン端子１２のピン数により制約される。本実施の形態１においては、１サイクルにおいて、８ビットのトレース情報をマルチプレクサ８を介して、ＤＳＵ対応デバッグ装置２０のトレースデータ格納用メモリ２０ｂへ格納することができる。より多くの情報が必要な場合、テストモード指定用信号ＴＰ１の状態を切換えることにより、選択されるサブバスを変更して、トレースされる信号を変更して、再び、ステップＳ３からの処理を実行して、トレースを実行する。必要なトレース情報がすべて得られると、トレースの実行を終了する。
【００５９】
必要なトレース実行の終了後、コンピュータのメモリバンクには、トレース情報が格納されている。複数のトレースが行なわれた場合、各トレース結果情報は、すべて、同じトレース開始位置からトレースされた信号である。また、このＣＰＵ内蔵ＬＳＩ１は、入力信号の条件が等しければ、プログラムを何度実行しても、同じ動作を再現する。したがって、それぞれのトレース結果信号は、同じトレース開始位置を始点として、同一時刻における内部バス３上の異なった信号の状態を表現していることになる。内部バス信号表示用ソフトウェア３０ａは、各メモリバンクに格納されたトレース結果情報を、波形図として、トレース位置を始点として同時に画面に表示する（ステップＳ８）。
【００６０】
ユーザ（オペレータ）は、このコンピュータ画面に表示された波形図を解析し、正常に動作が行なわれているか否かを判定して、デバッグを実行する。
【００６１】
図５は、デバッグ対象ソフトウェアの一例を示す図である。図５においては、このデバッグ対象プログラムを、Ｃ言語で記述する。行番号０１は、ダイレクトメモリアクセス動作を開始させ、ダイレクト・メモリ・アクセス・コントローラ（ＤＭＡＣ）を起動する命令を示す。行番号２は、或る第１の関数を、ＣＰＵに実行させる命令を示す。行番号３は、データＤａｔａ５をアドレス８に退避させる命令を示す。
【００６２】
行番号４は、ＣＰＵに、データＤａｔａ５に第２の関数処理を施させる命令を示す。行番号５は、またＣＰＵに、別の第３の関数を実行させることを指令する命令を示す。
【００６３】
行番号６は、データＤａｔａ５として、アドレス８に格納されたデータを利用することを指令する命令を示す。すなわち、行番号３の命令により退避されたデータＤａｔａ５が、この行番号６の命令により、再び取出される。
【００６４】
行番号７の命令に従って、この取出したデータＤａｔａ５に対し第４の関数処理を施す。これら一連の処理において、トレース開始位置を、行番号３のデータＤａｔａ５をアドレス８に退避させる命令に指定する。
【００６５】
図６は、この図５に示すデバッグ対象プログラムに対するトレース結果の表示を示す図である。図６においては、ＣＰＵの状態を示す信号すなわちＣＰＵ動作トレース情報として、プログラムカウンタ（ＰＣ）のトレース情報が利用される。内部バス上の信号値として、アドレスおよびデータおよび制御信号がトレースされる。すなわち、内部制御信号として、データの読出／書込を示すリード／ライト指示信号ＲＷおよび内部バスを使用するのがＣＰＵであるのかダイレクト・メモリ・アクセス・コントローラ（ＤＭＡＣ）であるのかを示すマスタ信号Ｍａｓｔｅｒがトレースされる。アドレスは８ビット表示であり、図６においては、１６進表示のアドレスを示す。また、トレースされるデータも８ビットであり、図６において、１６進表示でデータを示す。プログラムカウンタのトレース、アドレスのトレース、内部データのトレース、および内部制御信号のトレースが行番号３の命令をトレース開始位置として行なわれている。これらのトレースは、それぞれテストモード指示信号を切換えて、同じ図５に示すプログラムを実行することにより実施される。同一プログラム実行時においては、内部動作状態は同じとなるためである。
【００６６】
この図６に示すトレース結果は、コンピュータ３０上の画面に表示される。リード／ライト指示信号ＲＷは、ハイレベルがデータ読出動作を示し、ローレベルがデータ書込動作を示す。また、マスタ信号Ｍａｓｔｅｒは、ハイレベルがＣＰＵの内部バスアクセス動作を示し、ローレベルが、ダイレクト・メモリ・アクセス・コントローラの内部バスアクセス動作が行なわれていることを示す。
【００６７】
この図６において、ポイントＰ１において、ＣＰＵがメモリの８番地にデータを“０５Ｈ”を書込み、ポイントＰ２において、同じメモリの８番地に、ダイレクト・メモリ・アクセス・コントローラが、データ“０１Ｈ”を書込んでいるのが理解される。したがって、ポイントＰ３において、メモリの８番地からデータが読出された場合、このダイレクト・メモリ・アクセスにより上書きされたデータ“０１Ｈ”がＣＰＵに読込まれていることが理解される。これにより、ＣＰＵおよびダイレクト・メモリ・アクセス・コントローラの並列動作時においてデータの競合が生じるのが検出され、プログラムの書換を行なうなどのデバッグ処理が行なわれる。したがって、同一ポートを用いてＣＰＵ動作トレース情報および内部バス上の信号値を取込んで表示することにより、ＣＰＵのソフトウェアに従う動作と内部バスの動作を同期させたデバッグが可能となる。
【００６８】
［実施の形態２］
図７は、この発明の実施の形態２に従うＣＰＵ内蔵ＬＳＩの構成を概略的に示す図である。この図７に示すＣＰＵ内蔵ＬＳＩ１においては、内部バス３上の信号とデバッグサポートユニット（ＤＳＵ）２ａからのＣＰＵ動作トレース情報を選択するためのマルチプレクサ８Ａは、その接続切換様態の制御が、ソフトウェアにより実現される。すなわち、マルチプレクサ８Ａの選択様態の設定は、ＣＰＵコア２の制御の下に行なわれる。これにより、テストモードを指定するための信号を外部から入力する必要がなく、テストモード指定用ピン端子を削除することができる。
【００６９】
図８は、図７に示すマルチプレクサ８Ａの構成を概略的に示す図である。図８において、マルチプレクサ８Ａは、サブバスＳＤ１およびＳＤ４から１つのサブバスを選択するための第１のマルチプレクサ８ａと、デバッグサポートユニット（ＤＳＵ）２ａからのＣＰＵ動作トレース情報と第１のマルチプレクサ８ａの出力信号の一方を選択する第２のマルチプレクサ８ｂと、内部バス３上の信号に従ってテスト情報を取込み、テストモード指示信号ＴＰ１およびＴＰ２をそれぞれマルチプレクサ８ａおよび８ｂに出力するレジスタ回路８ｃを含む。
【００７０】
レジスタ回路８ｃは、内部バス３上の特定の信号線上の信号が所定のパターンとなったときにイネーブルされ、特定の内部バス３上の信号線の信号をテストモード指示信号として取込むように構成されればよい。これは、たとえば、現在一般的に用いられている同期型メモリにおいて、動作パラメータを格納するモードレジスタ回路に、所定の動作パラメータを設定する動作様態と同様である。すなわち、内部バス３上の特定の信号線上の信号の組合せに従ってレジスタ回路８ｃに、テストモード指示信号書込指示が与えられ、この指示が与えられるとレジスタ回路８ｃが、予め定められた信号線上の信号を取込みラッチする。このレジスタ回路８ｃは、テストモード指示信号ＴＰ１として、４ビットの信号を出力して、１つのサブバスを選択するように構成されてもよく、また２ビットの信号を格納し、この２ビットの信号をデコードして、テストモード指示信号ＴＰ１として出力して、１つのサブバスを選択するように構成されてもよい。内部バス３へは、ＣＰＵコア２がアクセス可能であり、ＣＰＵコア２がデバッグサポートユニット（ＤＳＵ）２ａの制御の下に、レジスタ回路８ｃの格納されるテストモード指示信号を書換えてもよく、また、コンピュータ３０の制御のもとにデバッグサポートユニット（ＤＳＵ）２ａが、このレジスタ回路８ｃのテストモード指示信号を書換えるように構成されてもよい。
【００７１】
このレジスタ回路８ｃに、デバッグサポートユニット（ＤＳＵ）２ａの制御の下に、テストモード指示信号を設定することができるため、図９に示すように、ＣＰＵのトレース情報としてのプログラムカウンタ値ＰＣ、および内部バス上のアドレス信号ＡＤ、制御信号ＣＴＬおよびデータＤＴを、このＣＰＵ内蔵ＬＳＩの動作を停止させることがなくトレース情報として取込める。すなわち、テストモード設定のために、ＣＰＵサイクルにその間空きが生じるものの、このＣＰＵ内蔵ＬＳＩ１の動作を停止させることなく、トレース情報を切換えることができる。このトレース情報の切換は、コンピュータ３０を利用して、ユーザ（オペレータ）が表示画面を見て、マニュアルで入力してもよく、またデバッグ制御プログラムにおいて、適当な間隔で、このトレース情報を変更する命令が挿入されていてもよい。これにより、ボード上実装レベルにおいて、ボード外部から、ピン端子９を介してテストモード指示信号を与えるために、このＣＰＵ内蔵ＬＳＩの動作を停止させる必要がなく、ＣＰＵ内蔵ＬＳＩの動作実行中においても、このトレース情報をＣＰＵ動作トレース用情報および内部バス信号値を切換えて、コンピュータの表示画面上に表示して、リアルタイムでのデバッグが可能となる。
【００７２】
［実施の形態３］
図１０は、この発明の実施の形態３に従うマルチプレクサ８Ａの構成を概略的に示す図である。図１０に示すマルチプレクサ８Ａにおいては、内部バス３からの内部バス信号が、クロック信号ＣＬＫに同期して転送動作を行なうフリップフロップ（ＦＦ）８ｄに与えられる。このフリップフロップ８ｄの出力する内部バス信号が、４つのサブバスＳＤ１〜ＳＤ４に分割される。また、第１のマルチプレクサ８ａと第２のマルチプレクサ８ｂの間に、同様、クロック信号ＣＬＫに同期して信号の転送を行なうフリップフロップ（ＦＦ）８ｅが設けられる。クロック信号ＣＬＫはＣＰＵコア２の動作周波数を決定する。他の構成は、図８に示す構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
【００７３】
クロック信号ＣＬＫが高速の場合、バスサイクルはクロック信号ＣＬＫにより規定されるため、内部バス３に現われる内部バス信号は、高速で変化する。内部バス３上の信号遅延が大きい場合または第２のマルチプレクサ８ｂの出力信号を外部に出力する出力ドライバの遅延が大きい場合、さらに、第１および第２のマルチプレクサ８ａおよび８ｂにおける遅延が付け加えられるため、このクロック信号ＣＬＫの各サイクルごとに、内部バス信号を出力することができなくなる。
【００７４】
しかしながら、このフリップフロップ８ｄを設けることにより、クロック信号ＣＬＫに同期してフリップフロップ（ＦＦ）８ｄ内に、内部バス信号が取込まれる。このときには、第１のマルチプレクサ８ａの有する遅延は、フリップフロップ（ＦＦ）８ｄの信号取込動作に対し何ら影響を及ぼしていない。また、この第１のマルチプレクサ８ａの出力信号に対しフリップフロップ８ｅを設けているため、ＣＰＵトレース情報出力ピン端子１２における信号遅延は、この第２のマルチプレクサ８ｂおよび出力ドライブ回路ＯＤが有する遅延だけとなる。フリップフロップ（ＦＦ）８ｄおよび８ｅは、それぞれ、与えられた信号を１クロックサイクル遅延して伝達する場合、合計２クロックサイクルの遅延が内部バス信号とこのＣＰＵトレース情報出力ピン端子１２の信号との間に生じるが、この２クロックサイクルの遅延は、ＤＳＵ対応デバッグ装置において認識されているため、何らデバッグを行なう上では問題にならない。内部バス信号のデバッグ時、２クロックサイクルの遅延を考慮してデバッグを行なえばよいためである。
【００７５】
図１１は、図１０に示すマルチプレクサ８Ａの動作を示すタイミングチャート図である。図１１に示すタイミングチャート図においては、クロック信号ＣＬＫの立上がりに同期して、内部バス上に信号が出力される。この内部バス信号ＳＧ０    …が、遅延が大きく、クロック信号ＣＬＫの立上がりに対して、比較的大きな遅延時間経過後、確定状態となった場合においても、フリップフロップ（ＦＦ）８ｄが、このクロック信号ＣＬＫの立下がりに同期してラッチ状態となれば、確定状態の内部バス信号を取込むことができる。このフリップフロップ（ＦＦ）８ｄは、クロック信号ＣＬＫの立上がりに同期して、取込んだ信号を出力する。したがって、このフリップフロップ（ＦＦ）８ｄからは、クロック信号ＣＬＫの１サイクル遅れて、内部バス信号が順次出力される。このとき、フリップフロップ（ＦＦ）８ｄの出力容量は、単に第１のマルチプレクサ８ａの入力ゲート容量だけであり、小さく、高速で、この第１のマルチプレクサ８ａに与えられる信号を確定状態へ駆動することができる。また、フリップフロップ（ＦＦ）８ｅも、同様、クロック信号ＣＬＫの立下がりに同期してラッチ状態となり、かつクロック信号ＣＬＫの立上がりに応答して、取込んだ信号を出力している。したがって、第１のマルチプレクサ８ａにおける遅延が大きい場合においても、クロック信号ＣＬＫの立下がり時においては、第１のマルチプレクサ８ａの出力信号は確定状態にあるため、フリップフロップ（ＦＦ）８ｅは、確実に、確定状態の信号を取込んで、次のサイクルで、取込んだ信号を出力することができる。このフリップフロップ（ＦＦ）８ｅからの信号は、第２のマルチプレクサ８ｂおよび出力ドライブ回路ＯＤを介してＣＰＵ動作トレース情報用ピン端子１２へ伝達される。第２のマルチプレクサ８ｂおよび出力ドライブ回路ＯＤの遅延が存在しても、その遅延は比較的小さく、十分高速のクロック信号ＣＬＫに同期して、信号を出力することができる（出力ドライブ回路ＯＤは高速のＣＰＵ動作トレース情報を出力できる）。
【００７６】
図１２は、この図１０に示すフリップフロップ（ＦＦ）８ｄおよび８ｅの構成の一例を示す図である。図１２において、フリップフロップ（ＦＦ）は、クロック信号ＣＬＫがＨレベルのとき導通し、与えられた信号を通過させるトランスファゲートＴＸ１と、このトランスファゲートＴＸ１から与えられた信号をラッチするラッチ回路ＬＡ１と、ラッチ回路ＬＡ１によりラッチされた信号を、補のクロック信号ＺＣＬＫがＨレベルのときに通過させるトランスファゲートＴＸ２と、トランスファゲートＴＸ２の伝達する信号をラッチするラッチ回路ＬＡ２と、クロック信号ＣＬＫがＨレベルのとき導通し、ラッチ回路ＬＡ２の出力信号を通過させるトランスファゲートＴＸ３を含む。ラッチ回路ＬＡ１およびＬＡ２の構成は、与えられた信号をラッチする構成であればよい。また、トランスファゲートＴＸ１〜ＴＸ３は、ＣＭＯＳトランスミッションゲートで構成されてもよく、またトライステートバッファで構成されてもよい。また、このフリップフロップＦＦは、相補信号を伝達する構成であってもよい。
【００７７】
この図１２に示すフリップフロップＦＦにおいては、クロック信号ＣＬＫがＨレベルのときに、トランスファゲートＴＸ１およびＴＸ３が導通し、ラッチ回路ＬＡ１が新たに与えられた信号をラッチし、一方ラッチ回路ＬＡ２が、ラッチした信号を出力する。クロック信号ＣＬＫが立下がると、補のクロック信号ＺＣＬＫがＨレベルとなり、ラッチ回路ＬＡ１からラッチ回路ＬＡ２への信号の転送が行なわれる。したがって、この図１２に示すフリップフロップＦＦにより、１クロックサイクル遅延して、信号をクロック信号ＣＬＫに同期して転送することができる。
【００７８】
以上のように、内部バスと第１のマルチプレクサの間、および第１および第２のマルチプレクサの間に、クロック信号ＣＬＫに同期して信号の転送を行なうフリップフロップ回路を設けているため、内部信号およびマルチプレクサの遅延に起因する、内部バスの信号値の出力不能を防止することができ、高速クロックに同期して動作するＣＰＵ内蔵ＬＳＩにおいても、正確に、内部信号値を外部で観測することができる。
【００７９】
［実施の形態４］
図１３は、この発明の実施の形態４に従うマルチプレクサ８Ａの構成を概略的に示す図である。図１３に示すマルチプレクサ８Ａにおいては、フリップフロップ（ＦＦ）８ｄからの信号を８ビットの信号に圧縮して第１のマルチプレクサ８ａへ与える圧縮回路８ｆがさらに設けられる。第１のマルチプレクサ８ａは、レジスタ回路８ｃからのテストモード指示信号に従って、この圧縮回路８ｆの出力信号、サブバスＳＤ１〜ＳＤ４の信号のいずれかを選択してフリップフロップ（ＦＦ）８ｅへ与える。
【００８０】
ＣＰＵ動作トレース用ピン端子の数はたとえば８個と限られている。したがって、できるだけ多くの内部信号状態値をできるだけ少ない信号線の数で外部で出力するのが望ましい。この圧縮回路８ｆは、フリップフロップ８ａからの所定の信号をその状態を保存して８ビットの信号に圧縮する。これにより、最大３２ビットの信号を、８ビットの信号として、ＣＰＵ動作トレース用ピン端子１２へ伝達することができ、一度のトレース動作（１クロックサイクルにおいてトレースされる内部信号の数）を内部バスのビット幅にまで拡張することができる。この圧縮回路８ｆは、効率的に、内部バス上の信号を符号化する構成であればよい。
【００８１】
図１４は、圧縮回路８ｆの構成の一例を示す図である。図１４において、圧縮回路８ｆは、フリップフロップ（ＦＦ）８ｄからの３ビットの制御信号をデコードして２ビットの信号を出力する制御信号デコーダ８ｆａと、フリップフロップ（ＦＦ）８ｄからの１３ビットのアドレス信号のうち、上位９ビットをデコードするアドレスデコーダ８ｆｂと、このアドレスデコーダ８ｆｂからの３ビットのデコード信号を２ビットの信号に符号化するエンコーダ８ｆｃを含む。制御信号デコーダ８ｆａは、メモリへのリード／ライトが行なわれているか否かを示すリード・ライト識別信号ＲＷと、バスの占有権がＣＰＵにあるのかダイレクト・メモリ・アクセス・コントローラ（ＤＭＡＣ）にあるのかを示すマスタ信号Ｍａｓｔｅｒを出力する。
【００８２】
アドレスデコーダ８ｆｂは、１６ビットのアドレス信号のうち上位９ビットのアドレス信号をデコードし、アクセス先が読出専用メモリ（ＲＯＭ）４であるのか、ランダム・アクセス・メモリ（ＲＡＭ）５であるのか、またはＩＯモジュール（ＩＯ）６であるのかを示す信号を出力する。通常、これらの読出専用メモリ（ＲＯＭ）４、ランダム・アクセス・メモリ（ＲＡＭ）５およびＩＯモジュール６には、それぞれ特定のアドレス（９ビット幅）が設定されている。この特定アドレス信号をデコードすることにより、内部バスを使用するデータ転送のアクセス先が、いずれであるのかを、アドレスデコーダ８ｆｂで判定する。アドレスデコーダ８ｆｂの判定結果を、エンコーダ８ｆｃによりさらに２ビットの信号に圧縮して出力する。残りの７ビットのアドレス信号のうち下位４ビットのアドレス信号が用いられるのは、データアクセスの場合には、バーストアクセスが行なわれ、連続したアドレスへのアクセスが行なわれ、この下位４ビットが各バスサイクルごとに変化することが多いためである。
【００８３】
これにより、合計８ビットの信号が、１６ビットの内部信号から生成される。これらの８ビットの信号を、外部で観測することにより、内部バスの動作状態を推測することができる。すなわち、内部バス３を利用するアクセス先がいずれであるのか、またそのアクセス先へは、データの書込／読出のいずれが行なわれるのか、およびそのアクセスを行なう主体はいずれであるのかを判定することができ、デバッグを行なうことが可能となる。すなわち、ＣＰＵ内蔵ＬＳＩの動作時において、これらの内部状態が、実行命令どおりに変化しているか否かを判定することができ、これにより、デバッグを行なうことができる。
【００８４】
なお、この図１４に示す構成においては、圧縮回路８ｆは、１６ビットの内部信号（アドレス信号および制御信号）を利用している。しかしながら、この圧縮回路８ｆの出力信号のビット幅が８ビットである限り、フリップフロップ（ＦＦ）８ｄからの任意のビット数の信号を利用することができる。
【００８５】
この圧縮回路８ｆにおいては、アドレスデコーダ８ｆｂによるデコード動作およびエンコーダ８ｆｃによるエンコード動作が行なわれている。しかしながら、２段のフリップフロップ（ＦＦ）８ｄおよび８ｅが設けられているため、このデコード動作およびエンコード動作による遅延が生じても、フリップフロップ（ＦＦ）８ｅからは、正確に、圧縮された信号がクロック信号ＣＬＫに同期して出力され、高速内部信号であっても正確に、圧縮情報を外部で観測することができる。
【００８６】
［他の適用例］
上述の説明においては、ＣＰＵ内蔵ＬＳＩが示されている。しかしながら、このＣＰＵ内蔵ＬＳＩは、与えられた命令に従って処理を実行するプロセッサとメモリが同一半導体チップ上に集積化されている半導体集積回路装置であれば、本発明は適用可能である。たとえば、ロジック（プロセッサ）と大記憶容量のメモリとが集積化されるロジック混載メモリであっても本発明は適用可能である。
【符号の説明】
【００８７】
１  ＣＰＵ内蔵ＬＳＩ、２  ＣＰＵコア、２ａ  デバッグサポートユニット、３  内部バス、８，８Ａ  マルチプレクサ、１０  ＤＳＵ制御ピン端子、１１  イベント通知信号ピン端子、１２  ＣＰＵ動作トレース情報用ピン端子、１３  ＩＯピン端子群、２０  ＤＳＵ対応デバッグ装置、３０  コンピュータ、３０ａ  内部バス信号表示用ソフトウェア、８ａ，８ｂ  マルチプレクサ、８ｄ，８ｅ  フリップフロップ回路、ＯＤ  出力ドライブ回路、８ｆ  圧縮回路。
【図１】
2010231818.tif 000003
【図２】
2010231818.tif 000004
【図３】
2010231818.tif 000005
【図４】
2010231818.tif 000006
【図５】
2010231818.tif 000007
【図６】
2010231818.tif 000008
【図７】
2010231818.tif 000009
【図８】
2010231818.tif 000010
【図９】
2010231818.tif 000011
【図１０】
2010231818.tif 000012
【図１１】
2010231818.tif 000013
【図１２】
2010231818.tif 000014
【図１３】
2010231818.tif 000015
【図１４】
2010231818.tif 000016
【図１５】
2010231818.tif 000017