(57)【要約】【課題】システムＬＳＩまたはその搭載システムの評価の容易性向上を図る。【解決手段】複数のＣＰＵを内蔵するシステムＬＳＩのリセットおよび割込みを制御するＣＰＵ制御回路１３は、外部からストラップ情報が設定されるストラップ取込み回路１３１と、ＣＰＵのうち一方をターゲットＣＰＵ１１に、他方をデバッガＣＰＵ１２に指定し、ＣＰＵ１２に対しリセット／デバッグ割込み信号を出力し、ＣＰＵ１２の起動後、ＣＰＵ１１のリセットを解除するとともに、機能ブロック１４〜１６にもリセット信号を出力するデバッグ制御回路１３２と、機能ブロックおよび外部からの割込み信号とＣＰＵ１２からの割込み要求信号とを入力し、ＣＰＵ１１およびＣＰＵ１２に割込みをかける割込み制御回路１３４と、共通バスライン１７からＣＰＵ１１およびＣＰＵ１２の情報を取り込むバストレース手段１３３とを備える。【選択図】      図２
2004164113.tif 000002
【特許請求の範囲】
【請求項１】
複数のＣＰＵを内蔵するシステムＬＳＩのリセットおよび割込みを制御するＣＰＵ制御手段を備え、前記ＣＰＵ制御手段が、前記複数のＣＰＵのうちの一つを、通常動作用のプログラムをデバッグプログラムに置き換えたデバッガ手段に設定する機能を有することを特徴とするマルチＣＰＵのリセット回路。
【請求項２】
前記ＣＰＵ制御手段によって前記デバッガ手段に置き換えられた前記ＣＰＵが、他方のＣＰＵをターゲットＣＰＵとしてデバッグする機能を有する請求項１記載のマルチＣＰＵのリセット回路。
【請求項３】
３個以上のＣＰＵを内蔵するシステムＬＳＩのリセットおよび割込みを制御するＣＰＵ制御手段を備え、前記ＣＰＵ制御手段による前記ＣＰＵの選択結果に対応して、前記３個以上のＣＰＵのうちの１個がデバッガ手段として他方をデバッグする相互デバッグ機能を有することを特徴とするマルチＣＰＵのリセット回路。
【請求項４】
前記ＣＰＵ制御手段は、前記デバッガ手段として設定されたＣＰＵとターゲット側ＣＰＵおよび各機能ブロックとを予め定めた一定の時間差でリセット解除し、前記デバッガとして設定されたＣＰＵを前記ターゲット側ＣＰＵおよび前記各機能ブロックよりも先に起動させる機能を有する請求項１または３記載のマルチＣＰＵのリセット回路。
【請求項５】
前記一定の時間差に代えて、デバッガの起動後に前記制御回路に割込み信号で通知するタイミングとする請求項４記載のマルチＣＰＵのリセット回路。
【請求項６】
前記ＣＰＵ制御手段は、リセット信号の活性化以前に予め外部で設定されたストラップ情報をストラップ取込み手段により取り込み、取り込んだ前記ストラップ情報に基づきデバッグ制御手段により前記第１および前記第２のＣＰＵを一方はデバッガＣＰＵに他方はターゲットＣＰＵに起動状態を切り替えるとともに、前記切り替え結果に応じて前記デバッガＣＰＵと前記ターゲットＣＰＵおよび前記機能ブロックとを時間差をもってリセット解除し、通常動作時またはデバッグ動作時ともに外部からの割込みまたは内部の機能ブロックからの割込みを割込み制御手段により検知して前記デバッガＣＰＵおよび前記ターゲットＣＰＵに割込みをかけ、さらにデバッグ時には前記デバッガＣＰＵからの割込み要求を受けて前記ターゲットＣＰＵに対して割込み制御を行う機能を有する請求項１または３記載のマルチＣＰＵのリセット回路。
【請求項７】
前記ＣＰＵ制御手段は、前記ＣＰＵそれぞれがインタフェースするバスラインの情報を取り込む機能を有する請求項１〜５または６記載のマルチＣＰＵのリセット回路。
【請求項８】
外部メモリと接続するバスラインと、前記バスラインを介して相互に接続される、第１のＣＰＵ、第２のＣＰＵ、機能ブロック群およびＣＰＵ制御手段を有し、前記ＣＰＵ制御手段は、外部からストラップ情報が設定されるストラップ取込み手段と、前記ＣＰＵのうち一方をターゲットＣＰＵに、他方をデバッガ手段としてのデバッガＣＰＵに指定し、前記デバッガＣＰＵに指定されたＣＰＵに対しリセットおよびデバッグ割込み信号を出力し、前記デバッガＣＰＵの起動後、前記ターゲットＣＰＵのリセットを解除するとともに、前記機能ブロックにもリセット信号を出力するデバッグ制御手段と、前記機能ブロックからの割込み信号と外部からの割込み信号と前記デバッガＣＰＵからの割込み要求信号を入力し、前記ターゲットＣＰＵおよび前記ターゲットＣＰＵに割込みをかける割込み制御回路と、前記共通バスラインから前記デバッガＣＰＵおよび前記ターゲットＣＰＵの情報を取り込むバストレース手段と、を備えることを特徴とするマルチＣＰＵのリセット回路。
【請求項９】
前記ストラップ情報の取り込み端子は、前記ＣＰＵ制御手段によるリセット信号の活性化が解除された後の非活性化期間中は他の信号の入力、出力または入出力端子となる請求項６記載のマルチＣＰＵのリセット回路。
【請求項１０】
複数のＣＰＵを内蔵するシステムＬＳＩのリセットおよび割込みを制御するＣＰＵ制御手段を用いて、前記複数のＣＰＵのうちの一つを、通常動作用のプログラムをデバッグプログラムに置き換えたデバッガ手段に設定して、他方の前記ＣＰＵをデバッグすることを特徴とするマルチＣＰＵのリセット方法。
【請求項１１】
３個以上のＣＰＵを内蔵するシステムＬＳＩのリセットおよび割込みを制御するＣＰＵ制御手段の有する相互デバッグ機能により、前記ＣＰＵの選択結果に対応して、前記３個以上のＣＰＵのうちの選択された１個のＣＰＵがデバッガ手段として残りのＣＰＵをデバッグすることを特徴とするマルチＣＰＵのリセット方法。
【請求項１２】
ステムＬＳＩに内蔵するＣＰＵ制御手段が、動作環境を設定するためにリセット信号の活性化以前に予め外部で設定されたストラップ情報の取り込み手段と、前記ＣＰＵをデバッガ手段とするかターゲット側とするかの起動状態を切り替える切り換え手段と、前記ＣＰＵとともに内蔵する機能ブロックのリセットを制御する内部制御手段と、通常動作時またはデバッグ動作時に外部または内部からの割込みを検知して前記ＣＰＵそれぞれに対して割込み制御を行う割込み制御手段とを有し、前記ＣＰＵ制御手段により、
前記リセット信号を検知すると内部の各機能ブロックに対してリセット信号を発行する処理と、
外部で設定された前記ストラップ情報を取り込み、前記ＣＰＵの動作設定を読み取るとともに、読みとった内容が通常動作を指定している場合は内部の全てのリセットを解除し、デバッグモードを指定している場合は、前記ＣＰＵのいずれかを前記デバッガ手段のＣＰＵに指定する処理と、
前記デバッガ手段に指定したＣＰＵに対するリセットを他のブロックよりも先に解除し、リセットを解除された前記ＣＰＵを起動してデバッグプログラムを読み込ませる処理と、前記ＣＰＵにデバッグプログラムを実行させてデバッグを行う準備が整った後に、残りのＣＰＵおよび内部の前記機能ブロックそれぞれのリセットを解除して、通常動作を起動させる処理と、を有することを特徴とするマルチＣＰＵのリセット方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はマルチＣＰＵのリセット回路およびリセット方法に係わり、特にシステムＬＳＩに内蔵する複数のＣＰＵを切り替えて相互にデバッグ可能とするマルチＣＰＵのリセット回路およびリセット方法に関する。
【０００２】
【従来の技術】
近年、半導体素子の微細化技術の進展に伴い、これらの半導体素子で構成したメモリ、マイクロコンピュータ等の半導体装置（ＬＳＩ）の機能も複雑、かつ大規模化しているが、これら複数のＬＳＩを１チップに搭載したシステムＬＳＩであるシステムオンチップ（ＳＯＣ：Ｓｙｓｔｅｍ  Ｏｎ  Ｃｈｉｐ）などでは、ある特定の目的のために種々の回路を構成する場合が多い。
【０００３】
上述したシステムＬＳＩのうちＣＰＵを複数個内蔵するシステムＬＳＩを搭載したマイコン応用製品開発も仕様の複雑化とともにプログラム容量の増加による開発時間も当然のことながら増大してきているが、市場の要求に答えるためには、複雑化したプログラム開発に短時間で対処しなければならないため、デバッグを効率的に行えるように予め対策したシステムＬＳＩが必要となる。
【０００４】
一方、前述したシステムＬＳＩでは、例えば、トランスポートストリーム（ＴＳ：Ｔｒａｓｐｏｒｔ  Ｓｔｒｅａｍ）デコーダ、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅｓ  Ｅｘｐｅｒｔ  Ｇｒｏｕｐ）ビデオデコーダ、オーディオデコーダ、メモリ転送、表示系に分かれて、それぞれ個別にハードウェアロジックを構成していたが、近年はＣＰＵの処理能力の向上に伴って、ハードウェアロジックに相当する処理を行う別のＣＰＵを内蔵することも可能になっている。
【０００５】
上述した従来のシステムＬＳＩの一例の構成を示した図７を参照すると、システムＬＳＩ３１は、ＣＰＵ−Ａ：３１１と、ＣＰＵ−Ｂ（機能ブロック４）：３１２と、機能ブロック１：３１３〜機能ブロック３：３１５とが共通バスライン３１６で相互に接続され、共通バスライン３１６は外部メモリ３２にも接続されている。
【０００６】
また、外部の機器とは外部入出力（パラレル／シリアル）信号線３１７を介してインタフェースする。
【０００７】
外部メモリ３２にはＣＰＵ−Ａ用のプログラム３３とＣＰＵ−Ｂ用のプログラム（機能ブロック４の動作プログラム）とが格納されている。
【０００８】
ところで、上述した従来の構成を備えるシステムＬＳＩのデバッグ方法は、以下のようにして行うのが一般的である。
【０００９】
システムＬＳＩ３１が内蔵する機能ブロック１：３１３が例えばＪＴＡＧ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ）などのデバッグポートを経由して、内部メモリ、外部メモリ、各種レジスタなどの情報を設定し、または出力させる。
【００１０】
上述のＪＴＡＧと呼ばれるテスト手法は、デバイスのほとんど全てのピンに、あらかじめシリコンのテストプローブが内蔵されているもので、シリコンのテストプローブは、例えばＬＳＩ内部の機能ブロックと入出力ピンとの間にセルと称するシフトレジスタを配置することにより、セルにデータを入出力することができ、セルにテスト時に用いるテスタのテストプローブと等価な役割を持たせたものである。
【００１１】
上述した従来の構成を備え、かつＪＴＡＧを利用したシステムＬＳＩの一例を示した図８を参照すると、ＪＴＡＧからの出力情報は、信号線４６を介しそれを接続したロジックアナライザや、汎用のＰＣ等評価用機器４５に出力または蓄積する。
【００１２】
この例においては、次のようなデバッグ手法も行われる。すなわち、内蔵するＣＰＵ−Ｂ（機能ブロック４）４１１でデバッグ用のプログラムを実行しておき、シリアルないしパラレルのポートにより信号線４７を介して評価用機器４５に評価用のプログラムを転送して実行する。その結果は、外部のＰＣ等に出力され、割込み等をトリガーとして観測する。上述したＪＴＡＧ、外部インタフェースを有する例では例えば特開平７−１８２２０４号公報がある（特許文献１参照）。
【００１３】
また、他の方法の一例として、ＪＴＡＧを利用し、かつＲＯＭシミュレータも利用したたシステムＬＳＩの一例を示した図９を参照すると、ＲＯＭエミュレータ５２等を接続し、ＣＰＵ−Ａ評価用のプログラム５５１をＣＰＵ−Ｂ：５１２の起動時に信号線５８からバス５８を介してＲＯＭエミュレータ５２に読み込ませ、評価を実行する。その動作結果は外部入出力（シリアル／パラレル）のポートから信号線５７を介して外部のＰＣ等に出力され、割込み等の信号をトリガーとして観測する。この例では例えば特開２００２−２６８９１１号公報がある（特許文献２参照）。
【００１４】
あるいは、ＪＴＡＧを利用したシステムＬＳＩのさらに他の一例を示した図１０を参照すると、システムＬＳＩ６１内部に動作状況を記録する専用のトレースＲＡＭ（トレースメモリ）６１４とトレース制御部６１３とを設け、システムＬＳＩ６１内部に保有する専用の回路によって内部の動作を逐次記録しておき、不正なアクセスまたは外部からの割込み等によって記録を停止し、その後トレースＲＡＭ６１４からシステムＬＳＩ６１の外部に読み出して動作を解析するという方法がある。この例では例えば特許第２７５２５９２号公報がある（特許文献３参照）。
【００１５】
一方、複数のプロセッサや機能ブロックからなるシステムＬＳＩにおいては、構成する各ＬＳＩブロックのでバッグ時のリセットを、デバッグ対象の指定に応じて適切に制御する必要があるが、特開２００２−７３３６３号公報では、ＬＳＩデバッグ装置のチップを複数使用し、それぞれのＬＳＩブロックのデバッグ機能を提供すると同時に、全体ではＬＳＩデバッグ装置の本来の全ＬＳＩ端子機能を実現することにより、ＬＳＩブロックのデバッグ時のリセットを、デバッグ対象の指定に応じて適切に制御する（特許文献４参照）。
【００１６】
本発明が関るシステムＬＳＩにおいては、近年次のような環境状態にある。
【００１７】
ＬＳＩの動作スピードが向上していること、半導体素子の微細化の進展によりＬＳＩ集積度が向上し機能が複雑化していること、チップサイズの更なる縮小（コスト削減）への要求があること等である。
【００１８】
【特許文献１】
特開平７−１８２２０４号公報（段落番号「００２０」「００２３」〜「００２４」、図１，図２）
【特許文献２】
特開２００２−２６８９１１号公報（段落番号「００１７」〜「００２１」、図３）
【特許文献３】
特許第２７５２５９２号公報（段落番号「０００４」「０００９」、図３）
【特許文献４】
特開２００２−７３３６３号公報（段落番号「００３４」「００３５」「００３６」、図４）
【００１９】
【発明が解決しようとする課題】
従来のシステムＬＳＩは、上述した環境状態にあるという背景に照らし合わせると、以下のような問題点を有する。
【００２０】
システムの動作スピードが向上して、外部端子経由での実動作の測定が困難になる。
【００２１】
システムの動作が複雑化して、固定化したトレースＲＡＭ等では測定の限界に達する。
【００２２】
通常動作に寄与しない回路の増大があり、コストがかかる。
【００２３】
上述の問題点が生じる理由を、以下に述べる。
【００２４】
まず、ＪＴＡＧやＲＯＭエミュレータを介してのデバッグ作業は、転送速度等に限界があり、ＣＰＵをはじめとするシステムＬＳＩの動作速度が向上するにしたがい、実際と同じ状態での動作を観測することが難しくなっている。  また、障害のひとつにシステム立ち上げ時の動作不良という問題がしばしば発生する。その場合、従来の方法ではシステムが正常に動作している状態において観測が可能である。すなわち、システムが起動することを前提にしているため、システムを起動するときの動作については観測することができない。
【００２５】
これに関する解決策のひとつが、デバッグのためにトレース用のメモリを搭載することである。この方法では、構成しだいでシステムの起動時における種々の動作を観測・記憶することが可能である。
【００２６】
しかし、システムの動作速度が向上し、かつ複雑化しているために、トレースメモリにおいて観測できる範囲および時間が限定されてしまう問題が挙げられる。また、トレース専用の回路とＲＡＭを載せることで通常動作に寄与しない回路規模が増大し、チップサイズ縮小といったコスト削減の要求を満たすことができない。
【００２７】
また、上記特許文献４におけるリセットの方法では、通常動作時とデバッグ時とのリセット制御端子が異なるので端子割り当てに余裕が必要である。
【００２８】
本発明の目的は、上述した従来の欠点に鑑みなされたものであり、システムＬＳＩに内蔵した複数のＣＰＵのうちの一つを、通常動作用のプログラムをデバッグプログラムに置き換えることとあわせて、従来技術でトレースのために用いていた回路とトレースメモリをＣＰＵの処理によって代替することを可能とし、また複数のＣＰＵを切り替えて相互にデバッグを可能とすることによって、当該システムＬＳＩないしそれを組み込んだシステムにおける評価の容易性向上を図ることにある。
【００２９】
【課題を解決するための手段】
本発明のマルチＣＰＵのリセット回路は、複数のＣＰＵを内蔵するシステムＬＳＩのリセットおよび割込みを制御するＣＰＵ制御手段を備え、前記ＣＰＵ制御手段が、前記複数のＣＰＵのうちの一つを、通常動作用のプログラムをデバッグプログラムに置き換えたデバッガ手段に設定する機能を有することを特徴とする。
【００３０】
また、前記ＣＰＵ制御手段によって前記デバッガ手段に置き換えられた前記ＣＰＵが、他方のＣＰＵをターゲットＣＰＵとしてデバッグする機能を有することができる。
【００３１】
本発明のマルチＣＰＵのリセット回路の他の特徴は、３個以上のＣＰＵを内蔵するシステムＬＳＩのリセットおよび割込みを制御するＣＰＵ制御手段を備え、前記ＣＰＵ制御手段による前記ＣＰＵの選択結果に対応して、前記３個以上のＣＰＵのうちの１個がデバッガ手段として他方をデバッグする相互デバッグ機能を有することにある。
【００３２】
また、前記ＣＰＵ制御手段は、前記デバッガ手段として設定されたＣＰＵとターゲット側ＣＰＵおよび各機能ブロックとを予め定めた一定の時間差でリセット解除し、前記デバッガとして設定されたＣＰＵを前記ターゲット側ＣＰＵおよび前記各機能ブロックよりも先に起動させる機能を有することができる。
【００３３】
また、前記一定の時間差に代えて、デバッガの起動後に前記制御回路に割込み信号で通知するタイミングとする。
【００３４】
さらに、前記ＣＰＵ制御手段は、リセット信号の活性化以前に予め外部で設定されたストラップ情報をストラップ取込み手段により取り込み、取り込んだ前記ストラップ情報に基づきデバッグ制御手段により前記第１および前記第２のＣＰＵを一方はデバッガＣＰＵに他方はターゲットＣＰＵに起動状態を切り替えるとともに、前記切り替え結果に応じて前記デバッガＣＰＵと前記ターゲットＣＰＵおよび前記機能ブロックとを時間差をもってリセット解除し、通常動作時またはデバッグ動作時ともに外部からの割込みまたは内部の機能ブロックからの割込みを割込み制御手段により検知して前記デバッガＣＰＵおよび前記ターゲットＣＰＵに割込みをかけ、さらにデバッグ時には前記デバッガＣＰＵからの割込み要求を受けて前記ターゲットＣＰＵに対して割込み制御を行う機能を有する。
【００３５】
さらにまた、前記ＣＰＵ制御手段は、前記ＣＰＵそれぞれがインタフェースするバスラインの情報を取り込む機能を有する。
【００３６】
本発明のマルチＣＰＵのリセット方法の特徴は、外部メモリと接続するバスラインと、前記バスラインを介して相互に接続される、第１のＣＰＵ、第２のＣＰＵ、機能ブロック群およびＣＰＵ制御手段を有し、前記ＣＰＵ制御手段は、外部からストラップ情報が設定されるストラップ取込み手段と、前記ＣＰＵのうち一方をターゲットＣＰＵに、他方をデバッガ手段としてのデバッガＣＰＵに指定し、前記デバッガＣＰＵに指定されたＣＰＵに対しリセットおよびデバッグ割込み信号を出力し、前記デバッガＣＰＵの起動後、前記ターゲットＣＰＵのリセットを解除するとともに、前記機能ブロックにもリセット信号を出力するデバッグ制御手段と、前記機能ブロックからの割込み信号と外部からの割込み信号と前記デバッガＣＰＵからの割込み要求信号を入力し、前記ターゲットＣＰＵおよび前記ターゲットＣＰＵに割込みをかける割込み制御回路と、前記共通バスラインから前記デバッガＣＰＵおよび前記ターゲットＣＰＵの情報を取り込むバストレース手段と、を備えることにある。
【００３７】
また、前記ストラップ情報の取り込み端子は、前記ＣＰＵ制御手段によるリセット信号の活性化が解除された後の非活性化期間中は他の信号の入力、出力または入出力端子とすることにある。
【００３８】
本発明のマルチＣＰＵのリセット方法のさらに他の特徴は、複数のＣＰＵを内蔵するシステムＬＳＩのリセットおよび割込みを制御するＣＰＵ制御手段を用いて、前記複数のＣＰＵのうちの一つを、通常動作用のプログラムをデバッグプログラムに置き換えたデバッガ手段に設定して、他方の前記ＣＰＵをデバッグすることを特徴とする。
【００３９】
本発明のマルチＣＰＵのリセット方法のさらにまた他の特徴は、３個以上のＣＰＵを内蔵するシステムＬＳＩのリセットおよび割込みを制御するＣＰＵ制御手段の有する相互デバッグ機能により、前記ＣＰＵの選択結果に対応して、前記３個以上のＣＰＵのうちの選択された１個のＣＰＵがデバッガ手段として残りのＣＰＵをデバッグすることにある。
【００４０】
本発明のマルチＣＰＵのリセット方法のまた他の特徴は、ステムＬＳＩに内蔵するＣＰＵ制御手段が、動作環境を設定するためにリセット信号の活性化以前に予め外部で設定されたストラップ情報の取り込み手段と、前記ＣＰＵをデバッガ手段とするかターゲット側とするかの起動状態を切り替える切り換え手段と、前記ＣＰＵとともに内蔵する機能ブロックのリセットを制御する内部制御手段と、通常動作時またはデバッグ動作時に外部または内部からの割込みを検知して前記ＣＰＵそれぞれに対して割込み制御を行う割込み制御手段とを有し、前記ＣＰＵ制御手段により、
前記リセット信号を検知すると内部の各機能ブロックに対してリセット信号を発行する処理と、
外部で設定された前記ストラップ情報を取り込み、前記ＣＰＵの動作設定を読み取るとともに、読みとった内容が通常動作を指定している場合は内部の全てのリセットを解除し、デバッグモードを指定している場合は、前記ＣＰＵのいずれかを前記デバッガ手段のＣＰＵに指定する処理と、
前記デバッガ手段に指定したＣＰＵに対するリセットを他のブロックよりも先に解除し、リセットを解除された前記ＣＰＵを起動してデバッグプログラムを読み込ませる処理と、前記ＣＰＵにデバッグプログラムを実行させてデバッグを行う準備が整った後に、残りのＣＰＵおよび内部の前記機能ブロックそれぞれのリセットを解除して、通常動作を起動させる処理と、を有することにある。
【００４１】
【発明の実施の形態】
まず、本発明のマルチＣＰＵのリセット回路およびリセット方法の概要を述べると、複数のＣＰＵを内蔵するシステムＬＳＩに、図１に示すようなリセット等を制御する手段を付加し、この手段によって、システムＬＳＩに内蔵した複数のＣＰＵのうちの一つを、通常動作用のプログラムをデバッグプログラムに置き換えることができるものである。
【００４２】
すなわち、従来のシステムＬＳＩのデバッグを行うためには、ＬＳＩ外部端子を経由して内部・外部メモリ、そしてレジスタ等の情報をＬＳＩ外部あるいはシステムの外部から観測する方法、またはトレースのために専用の回路とトレース専用の内部メモリを用いて記録する方法などがあった。
【００４３】
これに対し、本発明では、これらを内蔵ＣＰＵの処理によって代替することを可能とし、また複数のＣＰＵを切り替えて相互にデバッグを可能とする手段を提供するものである。
【００４４】
したがって、本発明によって、システムＬＳＩないしそれを組み込んだシステムにおける評価の容易性を向上させることができる。
【００４５】
次に、本発明の第１の実施の形態を図面を参照しながら説明する。
【００４６】
本発明の第１の実施の形態におけるシステムＬＳＩの主要構成を示した図１を参照すると、本発明のシステムＬＳＩ１と、システムＬＳＩ１の共通バスラインと接続し外部に配置される外部メモリ２と、外部メモリ２に格納される、システムＬＳＩ１内部のＣＰＵ−Ａ用のプログラム３およびＣＰＵ−ＡをデバッグするためＣＰＵ−Ｂに格納されるデバッグ用のプログラム４とで構成される。
【００４７】
システムＬＳＩ１は、ターゲットとなるＣＰＵ−Ａ：１１と、トレース機能およびデバッグ機能を有するデバッガ手段として指定されるＣＰＵ−Ｂ：１２と、複数のＣＰＵを持つシステムＬＳＩのリセットおよび割込み等を制御するＣＰＵ制御回路１３と、外部機器とインタフェースする機能ブロック１：１４と、その他の機能ブロック２：１５，機能ブロック３：１６と、これらの各ＣＰＵ−Ａ：１１、ＣＰＵ−Ｂ：１２ＣＰＵ制御回路、各機能ブロックおよび外部メモリを相互に接続する共通バスライン１７とから構成される。
【００４８】
ＣＰＵ制御回路１３の構成を示した図２を参照すると、このＣＰＵ制御回路１３は、外部に配置されるストラップ情報設定手段１８から入力するストラップ等の情報を取り込むストラップ取込み回路１３１と、ストラップ取込み回路１３１からの信号に応答して、ＣＰＵ−Ａ：１１およびＣＰＵ−Ｂ：１２にリセットおよび割込み信号をそれぞれ与えるとともに、その他の機能ブロックへのリセット信号を供給するデバッグ制御回路１３２と、共通バスライン１７を監視し、ＣＰＵの起動状態を切り替えるとともにＣＰＵ−Ａ：１１およびＣＰＵ−Ｂ：１２からの情報を収集するバストレース機能用ブロック１３３と、ＣＰＵ−Ａ：１１およびＣＰＵ−Ｂ：１２からの割込み要求信号と機能ブロック１：１４〜機能ブロック３：１６からの割込み信号と外部からの割込み信号を検知するとともに、ＣＰＵ−Ａ：１１およびＣＰＵ−Ｂ：１２に対して割込みをかける割込み制御回路１３４とを有する。
【００４９】
なお、デバッグ制御回路１３２から出力するリセット／デバッグ割込み信号１３９および１４０と、割込み要求信号１４６および１４７と、デバッガＣＰＵ起動後のリセット解除信号１４１および１４２とは、デバッグ時にはそれぞれ排他的に供給され、または入力する。
【００５０】
つまり、例えばＣＰＵ−Ａ：１１がターゲット側、ＣＰＵ−Ｂ：１２がデバッグ側の時は、図中実線で示した信号が入出力され、その逆の場合は点線で示した信号が入出力される。
【００５１】
ここでストラップは、当該ＬＳＩの基本的な動作環境を設定するためにＬＳＩの動作の立ち上がりより以前に外部で設定されている情報を指す。その設定は、主としてＬＳＩの外部端子を用いて、リセット期間においてＬＳＩ内部の取込み回路によって読み込まれ、ハイレベル・ローレベル、およびそれらの組み合わせで行う。リセットを解除した後は、通常の外部端子として機能する。
【００５２】
デバッグ制御回路１３２は、ＬＳＩの組み込まれたシステムにおいてリセット、ここでは電源の投入、またはリセットボタンの押下などを感知し、内部の各ブロックに対してクロックに同期化させたリセットの発行と停止を行って、各ブロックの初期化と起動を行わせるものである。
【００５３】
割込み制御回路１３４は、システムＬＳＩ１またはそれを含むシステムにおいて障害が発生した場合、またはデバッグを行う時などにおいて、システムＬＳＩ内部または外部端子を通じてシステムから割込み要求を受けた時に、ＣＰＵ−Ａ：１１またはＣＰＵ−Ｂ：１２に対して動作の停止を指示する等の機能をもっている。
【００５４】
当該システムＬＳＩ１においては、ＣＰＵは複数存在するため、割込みを要求するＣＰＵを選択する機能をもっている。
【００５５】
例えば通常の動作時においては、この制御回路１３は、複数のＣＰＵ−Ａ：１１およびＣＰＵ−Ｂ：１２と各機能ブロック１：１４〜機能ブロック３：１６とに対して同時にリセットを発行、解除する機能をもっている。
【００５６】
しかし、どちらか一方のＣＰＵで、ストラップ等によってデバッグを行うよう設定された場合は、この制御回路１３はリセットに関して特別な動作を行う。
【００５７】
すなわち、デバッグを行う状態において、デバッグ用プログラムを実行する方のＣＰＵを例えばデバッガＣＰＵ−Ｂ：１２とし、他方のＣＰＵ−Ａ：１１をターゲット側ＣＰＵとして区別する。
【００５８】
図１においては、ＣＰＵ−Ａ：１１をターゲット側、ＣＰＵ−Ｂ：１２をデバッガ側としているが、各々はストラップ等の設定によってその役割を交換することが可能である。そのため、信号配線は両ＣＰＵに対して同じような信号線が予め平列に接続されている。
【００５９】
デバッグ制御回路１３２は、デバッガＣＰＵ−Ｂ：１２とターゲット側ＣＰＵ−Ａ：１１および各機能ブロック１：１４〜機能ブロック３：１６とを、予め定める一定の時間差でリセット解除するように制御する。
【００６０】
すなわち、デバッガＣＰＵ−Ｂ：１２は、ストラップ情報に応答してリセットを検出すると、他のブロックよりも先に起動する。これはＣＰＵ−Ａ：１１のブートアップから監視するために、デバッガＣＰＵ−Ｂ：１２を先に起動して監視の準備を行うためである。
【００６１】
加えて、制御回路１３は、前述したバストレース機能用ブロック１３３によって、ＣＰＵ−Ａ：１１およびＣＰＵ−Ｂ：１２が属する共通バスライン１７の情報を取り込むことができる。
【００６２】
したがって、外部メモリ２に格納するデバッグ用のプログラム４は、通常動作時のためのプログラムと同様に、あらかじめ外部メモリ２に配置しておき、デバッガＣＰＵ−Ｂ：１２は起動時に共通バスライン１７を介して、これを読み込んで実行する。
【００６３】
ターゲット側ＣＰＵ−Ａ：１１は、デバッガＣＰＵ−Ｂ：１２の起動が完了した後にリセットが解除され、通常の手順で起動し、通常の動作を行う。
【００６４】
以下、本実施の形態の動作を図１および図２と、通常の起動状態におけるＣＰＵ制御回路の動作説明用タイミングチャートを示した図３と、デバッグモードでの起動状態におけるＣＰＵ制御回路の動作説明用タイミングチャートを示した図４をそれぞれ参照しながら説明する。
【００６５】
まず、図１，図２および図３において、ＣＰＵ制御回路１３は、まず、タイミングｔ１で、ストラップ取込み回路１３１により、ハードウェアリセットを検知すると、タイミングｔ２において、ＬＳＩ内部のＣＰＵ−Ａ：１１，ＣＰＵ−Ｂ：１２および各機能ブロック１：１４〜機能ブロック３：１６に対してリセットを発行する。
【００６６】
次に、タイミングｔ３において、外部のストラップ情報を取り込み、ハードウェアの動作設定を読み取る。ここで、ストラップによる設定が通常動作を示している場合は、制御回路１３はシステムＬＳＩ１が通常動作状態で動作するよう、タイミングｔ４において各ブロックのリセットを解除する。
【００６７】
一方、ストラップ設定がデバッグモードを示した場合は、その動作をＣＰＵ−Ａ：１１またはＣＰＵ−Ｂ：１２のいずれかに行わせるための作業を行う。
【００６８】
すなわち、図１，図２および図４において、制御回路１３は、２個あるＣＰＵ−Ａ：１１およびＣＰＵ−Ｂ：１２のうち、デバッガとして動作させる方のＣＰＵをタイミングｔ３において決定する。この決定はストラップの取り込み等による。
【００６９】
タイミングｔ３においてデバッガとするＣＰＵを、例えばＣＰＵ−Ｂ：１２に決定した制御回路１３は、タイミングｔ４においてそのＣＰＵ−Ｂ：１２に対するリセットを、他のブロックに先駆けて解除する。リセットを解除されたＣＰＵ−Ｂ：１２は、起動してプログラムを読み込み実行する。
【００７０】
ＣＰＵ−Ｂ：１２がプログラムを実行してデバッグを行う準備が整った後に、タイミングｔ５において制御回路１３は他方のＣＰＵ−Ａ：１１および内部の各機能ブロック１：１４〜機能ブロック３：１６のリセットを解除する。解除されたブロックは通常と同じ手順にて起動する。
【００７１】
デバッガＣＰＵ−Ｂ：１２の起動と他のブロックの起動との間に設ける時間（タイミングｔ４〜ｔ５）は、デバッガがその準備を終えるのに十分な時間であり、これはハードウェアの設定として一定の時間であってもよいし、デバッガが起動した後に、制御回路１３に対して準備ができたことを割込み等によって通知する方法を取ってもよい。
【００７２】
これら一連の動作は、相互に交換可能なようになっており、ＣＰＵ−Ａ：１１をデバッガとして使用する場合はＣＰＵ−Ａ：１１を先に起動させ、一方、ＣＰＵ−Ｂ：１２を使用する場合はＣＰＵ−Ｂ：１２を先に起動させることができるものである。
【００７３】
次に、本実施の形態におけるリセット方法をフローチャートにより説明する。
【００７４】
本発明のリセット回路のリセット方法をフローチャートで示した図３と、図１および図２を併せて参照すると、まず、処理ステップＳ１においてＣＰＵ制御回路１３がハードウェアリセットを検知する。
【００７５】
ハードウェアリセットを検知すると、処理ステップＳ２においてデバッグ制御回路１３２が、内部の各機能ブロック１：１４〜機能ブロック３：１６にリセットを発行する。
【００７６】
次に処理ステップＳ２においてストラップ取込み回路１３１が、ストラップ等の外部設定情報を読み込む。
【００７７】
処理ステップＳ３において、読み込んだストラップ情報に基づき、通常動作かデバッグ動作かを判断し、通常動作であれば、処理ステップＳ４においてデバッグ制御回路１３２が、読み込んだストラップ情報に基づきＣＰＵ−Ａ：１１およびＣＰＵ−Ｂ：１２と各機能ブロック１：１４〜機能ブロック３：１６のリセットを解除する。
【００７８】
処理ステップＳ５においては、前の処理でのリセット解除を受けて各機能ブロック１：１４〜機能ブロック３：１６はリセット後の動作を開始することになる。
【００７９】
一方、この回路を用いてシステム起動時をデバッグするときの一連の動作は以下のとおりである。
【００８０】
前述したように、処理ステップＳ１からＳ２でＣＰＵ制御回路１３がハードウェアリセットを検知し、処理ステップＳ３でデバッグ制御回路１１が内部の各機能ブロック１４〜１７にリセットを発行すると、ストラップ取込み回路１３１は、ストラップ等外部設定情報を読み込む。
【００８１】
処理ステップＳ３において、ストラップ等外部設定情報がデバッグを指定していると、処理ステップＳ６のでバッグ処理を実行する。
【００８２】
処理ステップＳ６では、まず、処理ステップＳ６１では、デバッグ制御回路１３２によるデバッガの選定結果を判断する。判断結果がデバッガとしてＣＰＵ−Ｂ：１２を選定していると、処理ステップＳ６２において、デバッグ制御回路１３２がストラップにより選択されたＣＰＵ−Ｂ：１２のリセットを解除する。
【００８３】
リセットを解除することにより、処理ステップＳ６３でデバッガＣＰＵ−Ｂ：１２が起動し、処理ステップＳ６４で立ち上がり動作が完了すると、処理ステップＳ６５でターゲット側ＣＰＵ−Ａ：１１および各機能ブロックをリセットを解除する。
【００８４】
処理ステップＳ６１の判断結果がデバッガとしてＣＰＵ−Ａ：１１を選定していると、処理ステップＳ６６において、デバッグ制御回路１３２がストラップにより選択されたＣＰＵ−Ａ：１１のリセットを解除する。
【００８５】
リセットを解除することにより、処理ステップＳ６７でデバッガＣＰＵ−Ａ：１１が起動し、処理ステップＳ６８で立ち上がり動作が完了すると、処理ステップＳ６９でターゲット側ＣＰＵ−Ｂ：１２および各機能ブロックのリセットを解除する。
【００８６】
上述した第１の実施の形態では、システムＬＳＩ内部の回路を用いて内蔵した複数のＣＰＵを時間差をもって起動をさせることができ、システム立ち上がり時の動作を従来より詳細に観測することができる。
【００８７】
また、２つのＣＰＵの機能動作を相互に入れ替えられるように制御回路を構成しているので、必要に応じて観測の範囲を変化させることが可能である。
【００８８】
さらにこの回路を持ったシステムＬＳＩにおいては、外部の測定機器を用いることなくシステムＬＳＩのデバッグを進めることが可能になる。その理由は、内部でＣＰＵによって必要な部分の観測を行うことができるためである。
【００８９】
そしてこの制御回路は、システムＬＳＩの回路規模縮小に寄与することができる。それは、観測用の回路を専用回路ではなく汎用ＣＰＵを用いているので、通常動作時に不要な回路をＬＳＩに配置する必要がないからである。
【００９０】
本発明の第２の実施の形態を説明する。
【００９１】
本発明の第２の実施の形態におけるシステムＬＳＩの主要構成を示した図６を参照すると、システムＬＳＩ２１と、システムＬＳＩ２１の共通バスラインと接続し外部に配置される外部メモリ２２と、外部メモリ２２に格納される、システムＬＳＩ２１内部のＣＰＵ−Ａ，Ｃ，Ｄ，Ｅのプログラム用メモリ２３およびＣＰＵ−Ｂ用のデバッグプログラムを格納するメモリ２４とで構成される。
【００９２】
システムＬＳＩ１は、ターゲットとなるＣＰＵ−Ａ：２１１と、トレース機能およびデバッグ機能を有するデバッガ手段として指定されるＣＰＵ−Ｂ：２１２と、複数のＣＰＵを持つシステムＬＳＩ２１のリセットおよび割込み等を制御するＣＰＵ制御回路２１６と、外部機器とインタフェースする機能ブロック１：２１７と、その他の機能ブロック２：２１８，機能ブロック３：２１９と、これらの各ＣＰＵ、ＣＰＵ制御回路、各機能ブロックおよび外部メモリを相互に接続する共通バスライン２２０とから構成される。
【００９３】
基本的構成は前述した第１の実施の形態と同様であるが、内蔵するＣＰＵの個数が３個以上、ここでは例えば５個であっても回路の構成によって同等の効果が得られる。すなわち任意の個数のＣＰＵにおいて、そのいずれか１つを先行して起動し、デバッガとして動作させることができる。
【００９４】
また、当該回路の動作において、複数のＣＰＵが互いに完全に独立した動作を行う場合については言うまでもないが、それ以外に、本発明においてデバッグ用プログラムが交換可能であることを利用して、複数のＣＰＵが、互いに協調して動作を行う場合についても、デバッガＣＰＵに相応の動作、つまり、複数のＣＰＵに実際に協調動作をさせる機能あるいは疑似的に協調動作をさせる機能のプログラムを格納しておくことで、デバッグＣＰＵにそのプログラムを実行させることもできる。
【００９５】
【発明の効果】
上述したように、本発明のマルチＣＰＵのリセット回路およびリセット方法は、複数のＣＰＵを内蔵するシステムＬＳＩに、リセット等を制御する手段を付加し、この手段によって、システムＬＳＩに内蔵した複数のＣＰＵのうちの一つの通常動作用のプログラムを、デバッグプログラムに置き換えることができる。
【００９６】
また、従来は、ＬシステムＳＩの外部端子を経由して内部・外部メモリ、レジスタ等の情報をＬＳＩ外部あるいはシステムの外部から観測したり、トレースのために専用の回路とトレース専用の内部メモリを用いて記録していたが、本発明では、これらを内蔵ＣＰＵの処理によって代替することを可能にし、また複数のＣＰＵを切り替えて相互にデバッグが出来るようにした。
【００９７】
したがって、システムＬＳＩ内部の回路を用いて内蔵した複数のＣＰＵを時間差をもって起動をさせることができ、システム立ち上がり時の動作を従来より詳細に観測することができる。
【００９８】
また、２つのＣＰＵの機能動作を相互に入れ替えられるように制御回路を構成しているので、必要に応じて観測の範囲を変化させることが可能である。
【００９９】
さらに、内部ＣＰＵによって必要な部分の観測を行うことができるため外部の測定機器を用いることなくシステムＬＳＩのデバッグを進めることができる。
【０１００】
さらにまた、観測用の回路を専用回路ではなく汎用ＣＰＵを用いているので、通常動作時に不要な回路をＬＳＩに配置する必要がなく、システムＬＳＩの回路規模縮小に寄与することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態におけるシステムＬＳＩの主要構成を示した図である。
【図２】図１におけるＣＰＵ制御回路の構成図である。
【図３】通常の起動状態における制御回路の動作説明用のタイミングチャートである。
【図４】ハードウェアリセット時における制御回路の動作説明用のタイミングチャートである。
【図５】ＣＰＵ制御回路を含むシステムＬＳＩのリセット方法を示したフローチャートである。
【図６】本発明の第２の実施の形態におけるシステムＬＳＩの主要構成を示した図である。
【図７】従来のシステムＬＳＩの一例の構成を示した図である。
【図８】従来の構成を備え、かつＪＴＡＧを利用したシステムＬＳＩの一例を示した図である。
【図９】ＪＴＡＧを利用し、かつＲＯＭシミュレータも利用したシステムＬＳＩの一例を示した図である。
【図１０】ＪＴＡＧを利用したシステムＬＳＩのさらに他の一例を示した図である。
【符号の説明】
１    システムＬＳＩ
２    外部メモリ
３    ＣＰＵ−Ａ用のプログラム
４    デバッグ用のプログラム
１１    ＣＰＵ−Ａ
１２    ＣＰＵ−Ｂ
１３    ＣＰＵ制御回路
１４    機能ブロック１
１５    機能ブロック２
１６    機能ブロック３
１７    共通バスライン
１８    ストラップ情報設定手段
１３１    ストラップ取込み回路
１３２    デバッグ制御回路
１３３    バストレース機能用ブロック
１３４    割込み制御回路
１３９，１４０    リセット／デバッグ割込み信号
１４１，１４２    デバッガＣＰＵ起動後のリセット解除信号
１４６，１４７    割込み要求信号
【図１】
2004164113.tif 000003
【図２】
2004164113.tif 000004
【図３】
2004164113.tif 000005
【図４】
2004164113.tif 000006
【図５】
2004164113.tif 000007
【図６】
2004164113.tif 000008
【図７】
2004164113.tif 000009
【図８】
2004164113.tif 000010
【図９】
2004164113.tif 000011
【図１０】
2004164113.tif 000012