(57)【特許請求の範囲】
【請求項１】
複数のプロセッサと、上記プロセッサに対応して配置され、対応する上記プロセッサのデバッグを可能とする複数のデバッグインタフェースと、
上記複数のデバッグインタフェース間で共有される複数の共有端子と、
上記複数のデバッグインタフェースを選択的に上記共有端子に結合可能な選択回路と、
所定のインストラクションに応じて、上記選択回路での選択動作を制御可能なコントローラと、を含み、
上記複数の共有端子はテスト用端子群とされ、
上記選択回路は、上記テスト用端子群における所定端子に、上記複数のデバッグインタフェースを選択的に結合可能な第１選択部と、
上記テスト用端子群における所定端子以外の端子に、上記複数のデバッグインタフェースを選択的に結合可能な第２選択部と、を含むことを特徴とする半導体集積回路装置。
【請求項２】
上記コントローラは、上記所定端子の信号がアサートされることによって、上記テスト用端子群における所定端子以外の端子と、上記デバッグインタフェースとの結合状態を初期状態に戻す請求項１記載の半導体集積回路装置。
【請求項３】
上記コントローラは、上記所定端子に、上記複数のデバッグインタフェースを選択的に結合させるための情報を保持可能な第１選択レジスタと、
上記テスト用端子群における所定端子以外の端子に、上記複数のデバッグインタフェースを選択的に結合させるための情報を保持可能な第２選択レジスタと、を含み、
上記第１選択部は、上記第１選択レジスタの保持情報に基づいて、上記所定端子に、上記複数のデバッグインタフェースを選択的に結合し、
上記第２選択部は、上記第２選択レジスタの保持情報に基づいて上記テスト用端子群における所定端子以外の端子に、上記複数のデバッグインタフェースを選択的に結合する請求項１記載の半導体集積回路装置。
【請求項４】
上記第１選択部は、上記第１選択レジスタの保持情報をデコードするための第１デコーダと、
上記第１デコーダのデコード結果に基づいて、上記所定端子と、上記複数のデバッグインタフェースとの間の信号伝達経路の切り換えを可能とする第１マルチプレクサと、を含む請求項３記載の半導体集積回路装置。
【請求項５】
上記第２選択部は、上記第２選択レジスタの保持情報をデコードするための第２デコーダと、
上記第２デコーダのデコード結果に基づいて、上記テスト用端子群における所定端子以外の端子と、上記複数のデバッグインタフェースとの間の信号伝達経路の切り換えを可能とする第２マルチプレクサと、を含む請求項３記載の半導体集積回路装置。
【請求項６】
上記コントローラは、上記複数のプロセッサのリセット解除後の状態を定義可能な第３レジスタを含む請求項１記載の半導体集積回路装置。
【請求項７】
上記コントローラは、上記複数のプロセッサからの信号出力端子を、上記共有端子に選択的に結合させるための端子制御情報を保持可能な第４レジスタを含む請求項１記載の半導体集積回路装置。
【請求項８】
上記テスト用端子群は、ＪＴＡＧ仕様の端子群であり、
上記ＪＴＡＧ仕様の端子群における所定端子は、リセット端子である請求項１記載の半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のマイクロプロセッサを含む半導体集積回路装置に関し、特にそれにおけるデバッグの容易化を図るための技術に関する。
【背景技術】
【０００２】
複数のマイクロプロセッサが１つの半導体基板に形成された半導体集積回路装置は、近年注目される技術となってきている。
【０００３】
複数のマイクロプロセッサを含む半導体集積回路装置のデバッグ方式として、例えば搭載されているプロセッサの個数と同数のデバッグ用端子群を半導体集積回路装置に設け、各端子群にデバッグ装置をそれぞれ接続することにより、各デバッグ装置を用いて各プロセッサのデバッグを個別的に行う第１技術が知られている。また、一組のデバッグ用端子群を半導体集積回路装置に設け、各プロセッサに接続されている各ＴＡＰコントローラをシリアルに接続することにより、１台のデバッグ装置を用いて全てのプロセッサに関するデバッグを行う第２技術とが知られている（例えば特許文献１の第２段落及び第３段落参照）。
【０００４】
さらに、複数のプロセッサと、この複数のプロセッサのデバッグを実行するデバッグ実行部と、このデバッグ実行部を制御するＴＡＰ（Test Access Port）と、外部のデバッグ装置に接続される一組の端子群と、前記複数のプロセッサの中から、デバックを実行すべき少なくとも一つ又は全部のプロセッサを選択する選択回路とを設け、デバックを実行すべきプロセッサの選択を可能にした第３技術が知られている（例えば特許文献１の第９段落以降を参照）。
【０００５】
【特許文献１】特開２００４−１６４３６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記第１技術によれば、搭載されているプロセッサの個数が増えると、それに応じてデバッグ用端子群及びデバッグ装置を追加する必要があるため、コストの上昇を招く。また、上記第２技術によれば、常に全てのＴＡＰコントローラを経由して全てのプロセッサに関するデバッグが行われるため、デバッグの所要時間が長くなる。これに対して上記第３技術によれば、デバッグ対象とされるプロセッサの切り換えが行われるため、上記第１技術や上記第２技術での不都合は生じない。
【０００７】
しかしながら、上記第３技術について本願発明者が検討したところ、デバッグ対象とされるＣＰＵの数が増えた場合について十分に考慮されているとはいえないことが見いだされた。例えばマイクロコンピュータの仕様の変更などにより、搭載されるＣＰＵの数が増えた場合に、それに対応して選択回路の論理構成が複雑になることが考えられ、ＣＰＵの増大に柔軟に対応することが困難とされる。
【０００８】
本発明の目的は、複数のマイクロプロセッサを含む半導体集積回路装置におけるデバッグの容易化を図るために技術を提供することにある。
【０００９】
また、本発明の別の目的は、１台のエミュレータによってデバッグ可能な半導体集積回路装置において、デバッグ対象とされるＣＰＵの増大に柔軟に対応可能な技術を提供することにある。
【００１０】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１２】
すなわち、複数のプロセッサと、上記プロセッサに対応して配置され、対応する上記プロセッサのデバッグを可能とする複数のデバッグインタフェースと、上記複数のデバッグインタフェース間で共有される複数の共有端子と、上記複数のデバッグインタフェースを選択的に上記共有端子に結合可能な選択回路と、所定のインストラクションに応じて、上記選択回路での選択動作を制御可能なコントローラとを含んで半導体集積回路装置を構成する。このとき、上記複数の共有端子はテスト用端子群とされ、上記選択回路は、上記ＪＴＡＧ仕様の端子群における所定端子に、上記複数のデバッグインタフェースを選択的に結合可能な第１選択部と、上記テスト用の端子群における所定端子以外の端子に、上記複数のデバッグインタフェースを選択的に結合可能な第２選択部とを設ける。
【００１３】
上記の手段によれば、上記デバッグインタフェースとしては、既存のものを利用することができる。しかも、追加インストラクションを使用することにより、上記デバッグインタフェースの選択が可能とされ、このことが、プロセッサの数が増えた場合でも、それに柔軟に対応することができるという、本願発明の目的を達成する。また、それによって、複数のマイクロプロセッサを１つの半導体基板内に内蔵する半導体集積回路装置におけるデバッグの容易化を達成する。
【００１４】
上記コントローラは、上記テスト用端子群における所定端子の信号がアサートされることによって、上記テスト用端子群における所定以外の端子と、上記デバッグインタフェースとの結合状態を初期状態に戻すように構成することができる。
【００１５】
上記コントローラは、上記テスト用の端子群における所定端子に、上記複数のデバッグインタフェースを選択的に結合させるための情報を保持可能な第１選択レジスタと、上記テスト用の端子群における所定端子以外の端子に、上記複数のデバッグインタフェースを選択的に結合させるための情報を保持可能な第２選択レジスタとを含んで構成することができる。このとき、上記第１選択部は、上記第１選択レジスタの保持情報に基づいて、上記テスト用の端子群における所定端子に、上記複数のデバッグインタフェースを選択的に結合し、上記第２選択部は、上記第２選択レジスタの保持情報に基づいて上記テスト用の端子群における所定端子以外の端子に、上記複数のデバッグインタフェースを選択的に結合するように構成することができる。
【００１６】
上記第１選択部は、上記第１選択レジスタの保持情報をデコードするための第１デコーダと、上記第１デコーダのデコード結果に基づいて、上記テスト用の端子群における所定端子と、上記複数のデバッグインタフェースとの間の信号伝達経路の切り換えを可能とする第１マルチプレクサとを含んで構成することができる。
【００１７】
上記第２選択部は、上記第２選択レジスタの保持情報をデコードするための第２デコーダと、上記第２デコーダのデコード結果に基づいて、上記テスト用の端子群における所定端子以外の端子と、上記複数のデバッグインタフェースとの間の信号伝達経路の切り換えを可能とする第２マルチプレクサとを含んで構成することができる。
【００１８】
リセット解除後の状態を任意に変更可能とすることにより多様なシステムデバッグに柔軟に対応できるようにするため、上記コントローラは、上記複数のプロセッサのリセット解除後の状態を定義可能な第３レジスタを含んで構成することができる。
【００１９】
複数のマイクロプロセッサを含む半導体集積回路装置の外部端子が不所望に増大するのを回避するため、上記コントローラは、上記複数のプロセッサからの信号出力端子を、上記共有端子に選択的に結合させるための端子制御情報を保持可能な第４レジスタを含んで構成することができる。
【００２０】
上記テスト用端子群がＪＴＡＧ仕様の端子群とされるとき、上記ＪＴＡＧ仕様の端子群における所定端子は、リセット端子とされる。
【発明の効果】
【００２１】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００２２】
すなわち、複数のマイクロプロセッサを含む半導体集積回路装置において、デバッグ対象とされるマイクロプロセッサの増大に柔軟に対応可能な技術を提供することができる。また、それにより、複数のマイクロプロセッサを含む半導体集積回路装置におけるデバッグの容易化を図ることができる。
【発明を実施するための最良の形態】
【００２３】
図５には、本発明にかかる半導体集積回路装置の一例であるマイクロコンピュータが示される。
【００２４】
図５に示されるマイクロコンピュータ５は、特に制限されないが、選択回路５２、ＴＡＰコントローラ（ＴＡＰＣＴＲＬ）５３、（ｎ＋１）個のＴＡＰ５４−１，５４−２〜５４−ｎ、接続回路５５−１，５５−２〜５５−ｎ、ＣＰＵ（中央処理装置）５６−１，５６−２〜５６−ｎ、ＩＰ(Intellectual Property)５７−１，５７−２を含み、特に制限されないが、公知の半導体集積回路製造技術により、単結晶シリコン基板などの一つの半導体基板に形成される。
【００２５】
上記選択回路５２は、テスト用端子群としてのＪＴＡＧ（ジョイント・テスト・アクション・グループ：Joint Test Action Group）端子群５１の接続先であるＴＡＰ（テスト・アクセス・ポート：Test Access Port）５４−１，５４−２〜５４−ｎの切り換えを行う。この切り換えは、ＴＡＰコントローラ５３から得られる択信号ＳＥＬに従って行われる。ＣＰＵ５６−１，５６−２〜５６−ｎは、予め設定されたプログラムに従って所定の演算処理を行う。ＩＰ５７−１，５７−２は、ＩＰデータを利用して設計された機能モジュールである。上記接続回路５５１−１，５５−２〜５５−ｎは、それぞれ対応するＣＰＵ５６−１，５６−２〜５６−ｎや、機能モジュール５７−１，５７−２と、ＴＡＰ５４−１，５４−２〜５４−ｎとの間で各種信号のやり取りを可能に接続する。ＴＡＰ５４−１，５４−２〜５４−ｎは、それぞれ上記選択回路５２を介して伝達されるデバッグ用信号群に基づいてバウンダリスキャンを実行することにより、対応するＣＰＵやＩＰのデバッグを可能とする。このＴＡＰ５４−１，５４−２〜５４−ｎが、本発明におけるデバッグインタフェースの一例とされる。デバッグ用信号群の入出力を可能とするＪＴＡＧ端子群５１が設けられ、このＪＴＡＧ端子群５１に選択回路５２が結合される。ＪＴＡＧ端子群５１には、ＣＰＵ５６−１，５６−２〜５６−ｎやＩＰ５７−１，５７−２のデバッグを可能とするエミュレータ（図示せず）が接続される。上記エミュレータは、上記ＪＴＡＧ端子群５１を介してマイクロコンピュータ５のデバッグ機能を制御し、上記バウンダリスキャンにより、上記ＣＰＵ５６−１，５６−２〜５６−ｎや、機能モジュール５７−１，５７−２のデバッグのための信号収集を行う。
【００２６】
図１には、上記マイクロコンピュータ５における主要部の構成例が示される。
【００２７】
上記選択回路５２は、ＴＲＳＴ接続ＴＡＰ選択ブロック５２１、及び接続ＴＡＰ選択ブロック５２２を含んで成る。
【００２８】
ＪＴＡＧ端子群５１は、ＪＴＡＧ所定の端子群、すなわち、テスト用リセット端子としてのＴＲＳＴ端子、テスト用モード設定端子としてのＴＭＳ端子、テスト用データ入力端子としてのＴＤＩ端子、テスト用データ出力端子としてのＴＤＯ端子、及びテスト用クロック入力端子としてのＴＣＫ端子を含む。上記ＪＴＡＧ端子群５１は、選択回路５２の介在により、ＴＡＰコントローラ５３とＴＡＰ５４−１〜５４−ｎとで共有される。選択回路５２は、ＴＲＳＴ接続ＴＡＰを選択するためのＴＲＳＴ接続ＴＡＰ選択ブロック５２１と、接続ＴＡＰを選択するための接続ＴＡＰ選択ブロック５２２とを含む。
【００２９】
ＴＡＰコントローラ５３は、上記ＪＴＡＧ端子群５１、すなわちＴＲＳＴ端子、ＴＭＳ端子、ＴＤＩ端子、ＴＤＯ端子、及びＴＣＫ端子の各端子に対応する端子と、ＴＡＰ選択情報の書き込みが可能とされるＴＡＰ選択レジスタ５８１と、ＴＲＳＴ選択情報の書き込みが可能とされるＴＲＳＴ選択レジスタ５８２とを含む。ＴＡＰ５４−１〜５４−ｎは、それぞれ上記ＪＴＡＧ所定の端子、すなわちＴＲＳＴ端子、ＴＭＳ端子、ＴＤＩ端子、ＴＤＯ端子、及びＴＣＫ端子に対応する各端子を含む。この各端子が上記選択回路５２を介して上記ＪＴＡＧ端子群５１に結合されるようになっている。
【００３０】
上記ＴＡＰコントローラ５３は、ＴＡＰ選択情報を保持可能なＴＡＰ選択レジスタ５８１と、ＴＲＳＴ選択情報を保持可能なＴＲＳＴ選択レジスタ５８２とを備える。ＴＡＰ選択レジスタ５８１に保持されたＴＡＰ選択情報は、上記接続ＴＡＰ選択ブロック５２２での接続ＴＡＰ選択制御において参照され、ＴＲＳＴ選択レジスタ５８２に保持されたＴＲＳＴ選択情報は、上記ＴＲＳＴ接続ＴＡＰ選択ブロック５２１でのＴＲＳＴ接続ＴＡＰ選択制御において参照される。
【００３１】
すなわち、接続ＴＡＰ選択ブロック５２２は、ＴＡＰ選択レジスタ５８１の保持情報によって指定されたＴＡＰの各端子を、上記ＪＴＡＧ端子群５１における各端子（ＴＭＳ端子、ＴＤＩ端子、ＴＤＯ端子、及びＴＣＫ端子）に接続する。特に制限されないが、本例においては、パワーオン後、ＴＡＰコントローラ５３がデフォルトで選択されてＪＴＡＧ端子群５１に接続される。ＴＡＰコントローラ５３は、ＴＡＰ５４−１〜５４−ｎを選択指定するためのＴＡＰ選択レジスタへのアクセス（書き込み／読み出し）機能を有する。ＴＡＰ選択レジスタ５８１は、ＴＲＳＴ端子からの信号（ＴＲＳ信号）がアサートされることにより初期化される。
【００３２】
ＴＲＳＴ接続ＴＡＰ選択ブロック５２１は、上記ＴＲＳＴ選択レジスタ５８２の保持情報によって指定されたＴＡＰにＴＲＳＴ端子を接続する。ＴＲＳＴ選択レジスタ５８２によって指定されていないＴＡＰのＴＲＳＴ端子は、誤動作防止のため論理値‘１’又は論理値‘０’に固定される。尚、このＴＲＳＴ選択レジスタ５８２によって複数のＴＡＰを選択することも可能である。
【００３３】
図２には、上記接続ＴＡＰ選択ブロック５２２の構成例が示される。
【００３４】
上記接続ＴＡＰ選択ブロック５２２は、特に制限されないが、ＴＡＰ選択レジスタ５８１に設定されたＴＡＰ選択情報をデコードするためのデコーダ２１と、このデコーダ２１のデコード出力信号に基づいて信号伝達経路の切り換えを可能とするマルチプレクサ２３−１，２３−２，…，２３−ｎ、２４−１，２４−２，…，２４−ｎ、２６−１，２６−２，…，２６−ｎと、上記デコーダ２１のデコード出力信号の論理演算によりＴＤＯ選択信号を形成するＴＤＯ選択回路２２と、このＴＤＯ選択回路２２によって形成されたＴＤＯ選択信号によって動作制御されるマルチプレクサ２５とを含んで成る。マルチプレクサ２３−１，２３−２，…，２３−ｎにより、ＴＭＳ端子がＴＡＰコントローラ５３又はＴＡＰ５４−１〜５４−ｎの何れかに選択的に結合され、マルチプレクサ２４−１，２４−２，…，２４−ｎにより、ＴＤＩ端子がＴＡＰコントローラ５３又はＴＡＰ５４−１〜５４−ｎの何れかに選択的に結合され、マルチプレクサ２６−１，２６−２，…，２６−ｎにより、ＴＣＫ端子がＴＡＰコントローラ５３又はＴＡＰ５４−１〜５４−ｎの何れかに選択的に結合される。また、ＴＡＰコントローラ５３又はＴＡＰ５４−１〜５４−ｎからのＴＤＯ出力信号が、上記マルチプレクサ２５によって選択的にＴＤＯ端子に伝達されるようになっている。さらに上記マルチプレクサ２３−１，２３−２，…，２３−ｎ、２４−１，２４−２，…，２４−ｎ、２６−１，２６−２，…，２６−ｎにおける一方の入力端子が論理値‘１’又は‘０’に固定される。それによりＴＡＰ選択レジスタ５８１によって指定されていない端子が論理不定になるのが防止される。
【００３５】
図３には、上記ＴＲＳＴ接続ＴＡＰ選択ブロック５２１の構成例が示される。
【００３６】
上記ＴＲＳＴ接続ＴＡＰ選択ブロック５２１は、特に制限されないが、ＴＲＳＴ選択レジスタ５８２に設定されたＴＲＳＴ選択情報をデコード可能なデコーダ３１と、このデコーダ３１のデコード出力信号に基づいて信号伝達経路の切り換えを可能とするマルチプレクサ３２，３３とを含んで成る。
【００３７】
次に、上記構成の動作について説明する。
【００３８】
デバッグの基本的な流れは、次の通りである。
【００３９】
図示されないが、ＪＴＡＧ端子群５１にはエミュレータが接続される。ＴＡＰ選択レジスタ５８１へのアクセス機能を有するＴＡＰコントローラ５３がデフォルトで選択され、このＴＡＰコントローラ５３からＴＡＰ選択レジスタ５８１に値が設定されることで所望のＴＡＰが選択され、そのＴＡＰに対応するＣＰＵのデバッグが上記エミュレータにより行われる。そしてそのデバッグが終了すると、上記エミュレータによりＴＲＳＴ信号がアサートされ、それによって上記所望のＴＡＰからＴＡＰコントローラ５３への端子接続に切り換えられる。
【００４０】
次に、上記デバッグを具体的に説明する。一例として、ＴＡＰ５４−１、ＴＡＰ５４−２に対応するＣＰＵを順次デバッグする場合について説明する。
【００４１】
図示されないエミュレータは、パワーオン時にＴＲＳＴ信号をアサートしてマイクロコンピュータ５を初期化する。このときＴＡＰ選択レジスタ５８１の初期値により、ＴＡＰコントローラ５３が選択的にＪＴＡＧ端子群５１のＴＭＳ端子、ＴＤＩ端子、ＴＤＯ端子、及びＴＣＫ端子に結合される。また、ＴＲＳＴ選択レジスタ５８２の初期値により、全てのＴＡＰ５４−１〜５４−ｎにＪＴＡＧ端子群５１におけるＴＲＳＴ端子が接続され、それによって全てのＴＡＰにＴＲＳＴ信号供給される。これによってＴＡＰ５４−１〜５４−ｎが初期化される。
【００４２】
ＪＴＡＧ端子群５１に接続されたエミュレータは、デフォルトで選択されているＴＡＰコントローラ５３に対して、ＪＴＡＧ端子群５１からＴＲＳＴ選択レジスタ５８２へのアクセスインストラクションを設定し、ＴＲＳＴ選択レジスタ５８２への情報設定を行う。
【００４３】
エミュレータは、ＪＴＡＧ端子群５１からＴＡＰ選択レジスタへのアクセスインストラクションを設定し、次にＴＡＰ５４−１を選択することを示す値をＴＡＰ選択レジスタに設定する。その結果、ＪＴＡＧ端子群５１におけるＴＭＳ端子、ＴＤＩ端子、ＴＤＯ端子、ＴＣＫ端子はＴＡＰ５４−１に接続される。
【００４４】
エミュレータは、ＪＴＡＧ端子群５を介してＴＡＰ５４−１に接続され、ＴＡＰ５４−１及び接続回路５５−１を経由してＣＰＵ５６−１のデバッグが行われる。
【００４５】
ＴＡＰ５４−１に対応するＣＰＵ５６−１のデバッグが終了すると、次にＴＡＰ５４−２に対応するＣＰＵ５６−２のデバッグに切り換えられる。
【００４６】
まず、エミュレータはＴＲＳＴをアサートする。これによってＴＡＰ選択レジスタ５８１が初期化され、その結果、ＴＡＰコントローラ５３が選択される。エミュレータは、ＪＴＡＧ端子群５を介してＴＡＰ選択レジスタ５８１へのアクセスインストラクションを設定し、ＴＡＰ２を指定する値をＴＡＰ選択レジスタ５８１に設定する。その結果、上記ＪＴＡＧ端子群５１におけるＴＭ端子、ＴＤＩ端子、ＴＤＯ端子、ＴＣＫ端子がＴＡＰ５４−２に接続される。これにより、エミュレータは、ＪＴＡＧ端子群５１を介してＴＡＰ５４−２に接続され、ＴＡＰ５４−２及び接続回路５５−２を経由してＣＰＵ５６−２のデバッグを行う。
【００４７】
ＴＡＰ５４−２に対応するＣＰＵ５６−２のデバッグが終了すると、エミュレータはＴＲＳＴ端子からＴＲＳＴ信号をアサートする。これによってＴＡＰ選択レジスタ５８１が初期化され、その結果、ＴＡＰ５４−２に代えてＴＡＰコントローラ５３が、ＪＴＡＧ端子群５１におけるＴＭ端子、ＴＤＩ端子、ＴＤＯ端子、ＴＣＫ端子に接続される。
【００４８】
上記ＴＡＰ選択レジスタ５８１やＴＲＳＴ選択レジスタ５８２への情報書込みは、新たなインストラクションにより行うようにする。このとき、上記ＴＡＰコントローラ５３は、図６に示されるように構成する。
【００４９】
図６には、上記ＴＡＰコントローラ５３の別の構成例が示される。
【００５０】
図６に示されるように、上記ＴＡＰコントローラ５３は、上記ＴＤＩ端子及びＴＤＯ端子を介してシリアルデータの入出力を制御するためのＴＡＰ制御部６５と、上記ＴＣＫ端子、ＴＲＳＴ端子、ＴＭＳ端子からの各信号に基づいて上記ＴＡＰ制御部６５を制御可能な状態制御部６４とを含んで成る。
【００５１】
上記ＴＡＰ制御部６５は、クロック信号に同期してデータを順次シフト可能なシフトレジスタ６０、このシフトレジスタ６０をバイパス可能なバイパス経路５９、各種レジスタを含む信号記憶部５８、上記信号記憶部５８における各種レジスタを選択可能な選択制御回路６１、ＪＴＡＧにおけるインストラクションを保持可能なＪＴＡＧインストラクションレジスタ（ＳＤＩＲ）６２、及びＪＴＡＧにおけるデータを保持可能なＪＴＡＧデータレジスタ（ＳＤＤＲ）６３を含む。上記信号記憶部５８には、上記ＴＡＰ選択レジスタ５８１やＴＲＳＴ選択レジスタ５８２が形成される。上記選択制御回路６１は、上記ＳＤＩＲ６２に保持されているインストラクションに従って、上記信号記憶部５８内のレジスタ選択を行う。このレジスタ選択により選択されたものが上記シフトレジスタ６０に結合され、上記シフトレジスタ６０との間でデータのやり取りが行われる。
【００５２】
上記ＴＡＰコントローラ５３において、上記ＴＡＰ選択レジスタ５８１や上記ＴＲＳＴ選択レジスタ５８２へのアクセスは以下のように追加インストラクションにより行うことができる。
【００５３】
ＴＡＰ選択レジスタ５８１やＴＲＳＴ選択レジスタ５８２への第１のアクセス例としては、図９に示されるように、追加インストラクションとして、ＴＡＰ選択レジスタアクセスとＴＲＳＴ選択レジスタアクセスとを設定し、この追加インストラクションによりレジスタアクセスを行うことができる。このとき、エミュレータは、ＴＡＰ選択レジスタアクセスインストラクションや、ＴＲＳＴ選択レジスタアクセスインストラクションを発行する。ＪＴＡＧを介する場合、ＴＡＰ状態遷移のインストラクションレジスタパスが選択され、ＳＤＩＲ６２に、上記ＴＡＰ選択レジスタアクセスインストラクションや、ＴＲＳＴ選択レジスタアクセスインストラクションが設定される。また、ＴＡＰ状態遷移のデータレジスタパスが選択され、ＴＡＰ選択レジスタ５８１やＴＲＳＴ選択レジスタ５８２へ設定される情報がＳＤＤＲ６３に書き込まれる。このＳＤＤＲ６３の保持情報が、ＴＡＰ選択レジスタ５８１やＴＲＳＴレジスタ５８２に転送される。
【００５４】
また、ＴＡＰ選択レジスタ５８１やＴＲＳＴ選択レジスタ５８２への第２のアクセス例としては、図１０に示されるように、追加インストラクションとして、ＴＡＰ選択レジスタアクセス（ＴＡＰ選択値としてｎを指定）と、ＴＲＳＴ選択レジスタアクセス（ＴＲＳＴ選択値としてｎを指定）とを設定し、この追加インストラクションによりレジスタアクセスを行うことができる。このときエミュレータは、選択するＴＡＰを示す値（ここではｎ）を含むＴＡＰ選択レジスタアクセスインストラクションを発行する。ＪＴＡＧを介する場合、ＴＡＰ状態遷移のＩＲパスを選択し、本インストラクションがＳＤＩＲ６２に設定される。これに基づいて、ＴＡＰ選択レジスタ５８１、ＴＲＳＴ選択レジスタ５８２の設定が行われる。
【００５５】
次に、ＴＡＰ選択の別の方式について説明する。
【００５６】
図４には、上記マイクロコンピュータ５における主要部の構成例が示される。
【００５７】
図４に示されるのが、図１に示されるのと大きく相違するのは、ＪＴＡＧ端子群５１におけるＴＭＳ端子、ＴＤＩ端子、ＴＣＫ端子の信号が、常にＴＡＰコントローラ５３に供給される点である。この例では、ＴＲＳＴをＴＡＰ切り換えに用いずに、ひとつ以上のＴＡＰが常時ＪＴＡＧ端子をモニタする方式とされる。この場合、図９に示されるように、追加インストラクションとして、ＴＡＰ選択レジスタアクセスとＴＲＳＴ選択レジスタアクセスとが設定され、この追加インストラクションによりレジスタアクセスが行われる。
【００５８】
ＴＡＰコントローラ５３は、常時ＪＴＡＧ端子をモニタする。ＴＡＰコントローラ５３はＴＡＰ選択レジスタによりＴＡＰコントローラ５３以外のＴＡＰが選択されている期間も常時ＪＴＡＧ端子をモニタし、ＴＡＰ選択レジスタアクセスインストラクションが入力されると、そのインストラクションに従いＴＡＰ選択レジスタ値を更新する。ＴＡＰ選択レジスタアクセスインストラクションは、全てのＴＡＰのインストラクションとは排他的なコードとされる。
【００５９】
上記構成の動作を説明する。本例では、ＴＡＰ１、ＴＡＰ３に接続された機能回路を順に切り換えてデバッグが行われる。
【００６０】
エミュレータは、パワーオン時にＴＲＳＴを操作し初期化する。ＴＡＰ選択レジスタ５８１にはＴＡＰコントローラ５３が接続される値が設定される。ＴＲＳＴ選択レジスタ５８２には、全てのＴＡＰ５４−１〜５４−ｎにＴＲＳＴ端子が接続される値が設定され、全てのＴＡＰ５４−１〜５４−ｎが初期化される。
【００６１】
エミュレータは、デフォルトで選択されているＴＡＰコントローラ５３に対して、ＪＴＡＧ端子からＴＲＳＴ選択レジスタ５８２へのアクセスインストラクションを設定し、次にＴＡＰコントローラ５３にＴＲＳＴを接続することを示す値が設定される。
【００６２】
ミュレータは、ＪＴＡＧ端子群５１を介して、ＴＡＰ選択レジスタ５８１へのアクセスインストラクションを設定し、次にＴＡＰ５４−１を選択することを示す値をＴＡＰ選択レジスタ５８２に設定する。その結果、ＴＭＳ端子、ＴＤＩ端子、ＴＤＯ端子、ＴＣＫ端子がＴＡＰ５４−１に接続される。
【００６３】
エミュレータは、ＪＴＡＧ端子群５１を介してＴＡＰ５４−１に接続される。これによりエミュレータは、ＴＡＰ５４−１に対応するＣＰＵ５６−１のデバッグを行うことができる。
【００６４】
ＴＡＰ５４−１に対応するＣＰＵ５６−１のデバッグが終了すると、次にＴＡＰ５４−２に対応するＣＰＵ５６−２のデバッグが行われる。まず、エミュレータは、ＪＴＡＧ端子からＴＡＰ選択レジスタへのアクセスインストラクションを設定し、次にＴＡＰ３を選択することを示す値をＴＡＰ選択レジスタに設定する。ＴＡＰコントローラ５３は、常時ＪＴＡＧ端子群５１を監視しており、これによって本操作が可能になる。そして、エミュレータは、ＪＴＡＧ端子群５１を介してＴＡＰ５４−２に接続される。これによりエミュレータは、ＴＡＰ５４−２に対応するＣＰＵ５６−２のデバッグを行うことができる。
【００６５】
図１１に示されるように、ＴＡＰコントローラ５３にＴＡＰ選択レジスタ初期化インストラクションを追加し、ＴＡＰ切り換えを行う方式も考えられる。ＴＡＰ選択レジスタ初期化インストラクションは、全てのＴＡＰのインストラクションとは排他的なコードとされる。ＴＡＰコントローラ５３は、ＴＡＰ選択レジスタにより、ＴＡＰコントローラ５３以外のＴＡＰが選択されている期間も常時ＪＴＡＧ端子をモニタし、ＴＡＰ選択レジスタ初期化インストラクションが入力されるとＴＡＰ選択レジスタを初期化する。これによりＴＡＰコントローラ５３が選択される。
【００６６】
このように図４に示される構成例では、図１に示されるのと異なり、ＴＲＳＴをＴＡＰ選択に使用ない。図１に示される例では、各ＴＡＰの制御においてＴＲＳＴ信号の積極的な利用に制限はあるが、動作周波数などは各ＴＡＰ完全独立とできインプリメントの面では利点がある。逆に図４に示される構成では、ＴＡＰ選択インストラクションを全てのＴＡＰで使用されていないものを選択すれば、使用面から見ると、図１に示される例に比べてＴＲＳＴで初期化されない分だけ自由度が高いといえる。
【００６７】
上記の例によれば、以下の作用効果を得ることができる。
【００６８】
（１）マイクロコンピュータ５内に複数のＣＰＵ５６−１〜５６−ｎが存在するにもかかわらず、ＪＴＡＧ対応の１台のエミュレータにより、上記複数のＣＰＵ５６−１〜５６−ｎについてのシステムデバッグが可能とされる。
【００６９】
（２）一般的にマイクロコンピュータにおいてはＣＰＵに対応してＴＡＰが設けられているが、上記ＴＡＰ５４−１〜５４−ｎとしては、この既存のＴＡＰをそのまま利用することができる。しかも、追加インストラクションを使用することにより、ＴＡＰ選択が行われるため、ＣＰＵの数が増えた場合でも、それに柔軟に対応することができる。
【００７０】
（３）上記（１），（２）の作用効果により、マイクロコンピュータにおけるデバッグの容易化を図ることができる。
【００７１】
次に、上記マイクロコンピュータ５の別の構成例について説明する。
【００７２】
図７に示されるように、信号記憶部５８内に動作制御レジスタ５８３や端子制御レジスタ５８４を追加することができる。この動作制御レジスタ５８３や端子制御レジスタ５８４は、上記ＴＡＰ選択レジスタ５８１や上記ＴＲＳＴレジスタ５８２と同様に、上記選択制御回路６１によって選択制御が可能とされる。上記ＴＡＰ選択レジスタアクセスや、上記ＴＲＳＴレジスタアクセスと同等の追加インストラクションにより、上記ＪＴＡＧ端子群５１を介してエミュレータからのアクセスが可能とされる。
【００７３】
上記端子制御レジス５８４は、図７に示されるように、マイクロコンピュータ５における外部端子と内部端子との間に介在された端子制御回路８１を制御するための情報の保持が可能とされる。この保持情報に従って端子制御回路８１は、外部端子と内部端子との接続における対応関係を制御する。換言すれば、上記端子制御レジス５８４の保持情報に基づく上記端子制御回路８１の制御によって、内部端子が選択的に外部端子に結合されるようになっている。ここで内部端子には、ＴＡＰ５４−１〜５４−ｎにおける各端子や、ＣＰＵ５６−１〜５６−ｎにおける各端子、ＩＰ５７−１，５７−２における各端子が含まれる。また、上記外部端子には、上記ＪＴＡＧ端子群５１や、図示されない他の外部端子が含まれる。
【００７４】
複数のＣＰＵが同じような役目の信号を必要とする場合がある。例えばユーザプログラムの実行において所定のブレーク条件が成立した場合に、アサートされるブレーク信号を挙げることができる。このブレーク信号は内蔵されるＣＰＵの数だけ必要であるが、それに対応してマイクロコンピュータ５にブレーク信号出力用の外部端子を設けるのは、ピン数が多くなるため現実的ではない。そこで、上記端子制御回路８１を介在することによって、１個の外部端子を複数のＣＰＵ間で共有することによって、各ＣＰＵからのブレーク信号を選択的に外部出力するようにする。これにより、マイクロコンピュータ５の外部端子が不所望に増大するのを回避することができる。
【００７５】
尚、上記ブレーク信号のみならず、デバッグにおけるトレース用信号などを外部出力する場合においても、上記端子制御回路８１による端子制御は有効とされる。
【００７６】
上記動作制御レジスタ５８３は、例えば図８に示されるように、ＣＰＵ５６−１〜５６−ｎ、ＩＰ５７−１，５７−ｎの初期状態、すなわちリセット解除後の状態を保持する。ここで、上記初期状態には、停電力モードか否か、クロック周波数、リセット状態か否か、動作モードや制御対象となるブロックなどが挙げられる。例えば状態として、（Ａ）リセット解除後はリセットベクタより命令フェッチを開始すること、（Ｂ）リセット解除後はモジュールストップ状態に遷移することを定義することができるものとする。各ＣＰＵのリセット解除前に、このレジスタ５８３をＪＴＡＧ経由で設定する。この設定は、信号記憶部５８内の他のレジスタと同様に、所定インストラクションにより行うことができる。各ＣＰＵ５６−１〜５６−ｎのクロック制御モジュールは、リセット解除後に、先ず本ビットの状態を取り込み、その後の動作を決めることとする。それにより、例えばデバッグ時に、予め定義されている各ＣＰＵ間のマスタ／スレーブの関係を変更したりすることが可能となる。
【００７７】
このように図８に示される構成を採用する場合には、動作制御レジスタ５８３の保持情報に従って、ＣＰＵ５６−１〜５６−ｎ、ＩＰ５７−１，５７−ｎのリセット解除後の状態を任意に変更することができるので、多様なシステムデバッグに柔軟に対応できる。
【００７８】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００７９】
例えば、上記の例では、一つの半導体基板に形成される場合について場合について説明したが、複数の半導体基板により構成される場合もある。
【００８０】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるマイクロコンピュータに適用した場合について説明したが、本発明はそれに限定されるものではなく、複数のプロセッサを含む半導体集積回路装置に広く適用することができる。
【００８１】
本発明は、少なくとも、複数のプロセッサを含むことを条件に適用することができる。
【図面の簡単な説明】
【００８２】
【図１】本発明にかかる半導体集積回路装置の一例とされるマイクロコンピュータにおける主要部の構成例ブロック図である。
【図２】図１における接続ＴＡＰ選択ブロックの詳細な構成例回路図である。
【図３】図１におけるＴＲＳＴ接続ＴＡＰ選択ブロックの詳細な構成例回路図である。
【図４】本発明にかかる半導体集積回路装置の一例とされるマイクロコンピュータにおける主要部の別の構成例ブロック図である。
【図５】上記マイクロコンピュータの全体的な構成例ブロック図である。
【図６】上記マイクロコンピュータにおける主要部の別の構成例ブロック図である。
【図７】図６における動作制御レジスタに関する動作説明図である。
【図８】図６における端子制御レジスタに関する動作説明図である。
【図９】上記マイクロコンピュータにおいて追加されるインストラクションの説明図である。
【図１０】上記マイクロコンピュータにおいて追加されるインストラクションの別の説明図である。
【図１１】上記マイクロコンピュータにおいて追加されるインストラクションの別の説明図である。
【符号の説明】
【００８３】
５  マイクロコンピュータ
５１  ＪＴＡＧ端子群
５２  選択回路
５３  ＴＡＰコントローラ
５４−１〜５４−ｎ  ＴＡＰ
５５−１〜５５−ｎ  接続回路
５６−１〜５６−ｎ  ＣＰＵ
５７−１，５７−２  ＩＰ
５２１  ＴＲＳＴ接続ＴＡＰ選択ブロック
５２２  接続ＴＡＰ選択ブロック
５８１  ＴＡＰ選択レジスタ
５８２  ＴＲＳＴ選択レジスタ
５８３  動作制御レジスタ
５８４  端子制御レジスタ
【図１】
0004450787.tif 000002
【図２】
0004450787.tif 000003
【図３】
0004450787.tif 000004
【図４】
0004450787.tif 000005
【図５】
0004450787.tif 000006
【図６】
0004450787.tif 000007
【図７】
0004450787.tif 000008
【図８】
0004450787.tif 000009
【図９】
0004450787.tif 000010
【図１０】
0004450787.tif 000011
【図１１】
0004450787.tif 000012