JP4197798B2 - デバッグ能力を有するチップ - Google Patents
デバッグ能力を有するチップ Download PDFInfo
- Publication number
- JP4197798B2 JP4197798B2 JP13332699A JP13332699A JP4197798B2 JP 4197798 B2 JP4197798 B2 JP 4197798B2 JP 13332699 A JP13332699 A JP 13332699A JP 13332699 A JP13332699 A JP 13332699A JP 4197798 B2 JP4197798 B2 JP 4197798B2
- Authority
- JP
- Japan
- Prior art keywords
- chip
- mode
- debug
- signal
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
【発明の属する技術分野】
本発明は、一般的にはコンピュータチップおよびコンピュータ装置に関し、より詳細には、プログラムデバッギングに完全に適したコンピュータチップおよび装置に関し、デバッギングシステムにも関する。
【0002】
【従来技術】
新しいコンピュータプログラムの開発する際の重要な工程は、プログラムエラーを訂正するためにプログラムをデバッグすることである。このプログラムデバッギングはコンピュータ上でプログラムを実行し、コンピュータと周辺機器との間で外部で通信されるだけでなく、コンピュータの異なる回路の間で内部で通信される異なる信号をモニタすることによって行われる。かかる回路としては、例えば中央処理ユニット(CPU)と、ダイレクトメモリアクセス(DMA)ユニットと、メインメモリと、入出力(I/O)インターフェース回路とが挙げられる。コンピュータを作動させながらプログラムのデバッギングを可能にするために、これまでコンピュータ回路が搭載されたサーキットボードにプローブによってロジックアナライザを接続していた。
【0003】
メモリアクセスをスピードアップするため、一般にコンピュータにはキャッシュメモリが設けられている。このメモリは主にCPUによって高速の、すなわちアクセス時間の短い一時メモリとして使用される。この一時メモリは、最も頻繁に使用され、最も最近に使用されたメインメモリのアドレスおよびデータしかホールドしない。CPUメインメモリのすべてのアクセスの主要な部分はキャッシュメモリによってしか処理されず、アクセスの主要でない部分だけがメインメモリとキャッシュメモリとの間のデータ交換によりメインメモリを使用している。従って、プログラムの実行ではCPUとキャッシュメモリとの間の信号のやり取りが中心となるので、この信号のやり取りをデバッグをすることが好ましい。
【0004】
しかしながら、最新のコンピュータ構造ではコンピュータ回路のできるだけ多くを1つのチップに集積しようとする傾向がある。とりわけ一般に、CPUとキャッシュメモリの双方を同じチップに集積化するが、他方、通常、メインメモリは同じサーキットボードに搭載され、チップに対して外付けされる。このメインメモリは通常、いくつかの相互に接続されたチップから製造される。ワンチップに集積化することにより、CPUとメインメモリとの間だけをデバッギングしながら、CPUとキャッシュメモリとの信号のやり取りをモニタすることは不可能となっている。
【0005】
この問題を解決しようとするいくつかの試みがこれまでなされている。従来の1つの解決案は、デバッギング操作中にキャッシュメモリをオフにすることである。こうしてすべてのメモリアクセスはメインメモリに対してなされ、モニタが可能となる。しかしながら、このことは真の状況でプログラムをモニタする可能性が失われ、すべての実行レートが低下することを意味する。かかる状況では、わからないいくつかのタイプのエラー状の動きがある。キャッシュの取り扱いはプログラムの動作の重要な部分となっている。
【0006】
他の従来の解決案は、通常のチップの特別バージョンであるいわゆるボンドアウトチップを製造することであり、この特別バージョンのチップは、チップの内部バスに接続されるエクストラチップを有する。この解決案は通常のチップに平行して特殊なチップを製造しなければならないので、高価な解決案となる。更にこの方法によって、とりわけ引出し線が延びていることに起因し、クロック周波数が低下する。従って、リアルタイムのデバッギングは行えず、これによりリアルタイムで実行する際にエラーを生じさせる所定のバグを検出できない状態となり得る。
【0007】
従来の更に別の解決案は、デバッグサポートを可能にする所定のレジスタを設けることである。ブレークポイントレジスタと称されることが多いこれらレジスタはプログラム実行の所定の点でソフトウェアブレークポイントを使用できるようにするものである。これらブレークポイントではモニタシステムによって読み出しすべきブレークポイントレジスタ内に現在アドレスおよびデータ情報がロードされる。この解決案は、プログラムの実行が安全にこれらブレークポイントに達したかどうかを検出することを可能にするものである。しかしながら、主な欠点は、リアルタイムでデバッギングを行えないことである。更に、ブレークポイントの間で何が生じているかはモニタできない。
【0008】
【発明が解決しようとする課題】
従って、コンピュータをフルクロックレートで作動させながら、同一チップに集積化されたCPUとキャッシュメモリとの間の信号のやり取りもモニタできるようにする新しいコンピュータ装置が望まれている。
【0009】
本発明の目的は、デバッギングのために特別なバージョンのチップを設けることなく、フルクロックレートでCPUを作動させながら、すなわちリアルタイムでデバッギングしながら、従来可能であったよりも広範にプログラムの実行をモニタすることを可能にすることにある。
【0010】
【課題を解決するための手段】
本発明によれば、上記目的は相互に接続されたCPUとキャッシュシステムとが集積化され、少なくとも2つの異なる作動モード、例えばデバイステスト(DUT)モードである第1モードと、MONITOR(モニタ)モードである第2モードのいずれかに設定可能なコンピュータチップ、および少なくとも1つの同期化ユニットにより達成される。上記MONITORモードとDUTモードとは相補的である。このチップはチップを相補的なモードに設定しながら、チップと別のチップとをパラレルに作動できるようにする信号をやり取りするよう、もう1つの同一チップに接続可能なデバッグバスを含む。これら信号は前記同期化ユニットによって発生される同期化信号を含む。
【0011】
デバッグ動作するようにこのように構成されたコンピュータチップは、デバッグ用の特別バージョンのチップを製造する過剰なコストをなくすことができる。デバッグバスと同期化回路との組み合わせはMONITORモード、すなわちデバッグモードに設定されるもう1つの同一のチップに本質的な信号の小さい組を効率的に交換できることを考慮したものである。これら異なるモードが準備されているので、プログラム実行に関するフル情報を得るフルレートのデバッグを行うことができる。
【0012】
【実施の形態】
図1は、デバッグ能力が高められたチップのテストコンフィギュレーションのハードウェアブロック図である。本発明の一実施例におけるこのチップは中央プロセッサ、キャッシュ、DMAユニット、ローカルバスおよびメモリマネージャを含む「チップ上のコンピュータ」の基本的機能のすべてを有する。更にこのチップは、マスターモード(デバイステスト中として(DUT)モードまたはいくつかのスレーブ(例えばMONITOR)モードのうちの任意のモードのいずれかで機能できるようにする回路を含む。DUTモードとなっているチップの内部での作動およびプログラムコードの実行は、MONITORモードに対してイネーブルされる1つ以上の同一チップを使って現される。MONITORモードではDUTモードのチップの内部状態が現されるので、DUTモードのチップおよび/またはこのDUTモードチップで作動するプログラムコードをデバッグする作業が簡略化される。
【0013】
いくつかの同一チップは共通する組のバス上で結合されている。同じチップがMONITORモードで作動する間、1つのチップがマスターモードとなるように構成されている。システムバスのアドレス部分を制御するよう、チップにマスターモード、例えばデバイステスト中(DUT)モードとなるようにさせることによりデバッグが行われる。DUTモードとなっているチップはアドレスバスマスターとしてアドレスバス上に存在するアドレス、従ってすべてのマスターモードおよびスレーブモードチップを含むシステムに対するメモリおよびデバイスアクセスリクエストを制御する。システムバスのデータ部分にはスレーブモードおよびマスターモードの双方のすべてのチップが接続されているので、すべてのチップはシステムバスのデータ部分を通して同一のデータおよびプログラムコードを受信し、処理する。更にすべてのチップはプログラムコードおよびデータの同期的処理を保証するための同期化回路を含む。
【0014】
マスターモードのチップはアドレスバスにアドレス情報を出力する機能を奏するので、アドレスバスにアドレス情報を出力するのにスレーブ/モニタモードのチップのアドレスラインは必要ではない。その代わりMONITORモードとなっているチップの各々のアドレスライン出力は、MONITORモードのチップのアドレスライン/ピンを外部ピン接続が設けられていないチップの内部の種々の部品または信号ラインに切替可能に接続することにより、チップ内部からの情報を「外部」へ搬送するのに使用される。これら部品または信号ラインは、キャッシュ、ローカルバスデータおよびアドレスライン、インタラプトユニットおよびDMAユニットを含む。通常、かかる情報は利用できないので、チップおよび/またはこのチップ上で作動するプログラムコードをデバッグすることが困難となる。
【0015】
図1は、コンピュータシステム98、モニタ100、ロジックアナライザ102、コンピュータ104およびネットワーク106を備えたテストコンフィギュレーションを示す。コンピュータシステム98は、計算システムのコアとして働くDUTモードのチップ110Cを含む。この計算システム98は発信機120、パワーオンリセット118、関連するシステムハードウェア112、メモリ114および入出力(I/O)ユニット116も含む。本例においてDUTモードに構成され、デバッグ能力の高められたチップ110Cは、ローカルバス130C、コーデック(Codec)ユニット132Cおよびメモリ制御ユニット134Cを含む。このメモリ制御ユニットは第1ローカルバスのデバッグスイッチ136Cを含む。モニタ100はMONITORモードに構成され、デバッグ能力が高められた2つのチップ110A〜Bを含む。すべてのチップ110A〜Cはそれぞれ添え字A〜Cの付いた番号で表示された同様な部品を有する。
【0016】
図示された実施例では、共通バスが計算システム98とモニタ100とを接続している。これらバスはコーデックバス/デバッグバス/符号化された事象バス140と、リセットおよび発振器バス142A〜Bと、非同期事象バス164と、モード選択バス144と、システムバス146〜148のデータ/命令部分148である。DUTモードのデバッグチップ110Cはデータライン152Cおよびアドレスライン160Cを介し、システムバス146〜148のデータ部分148およびアドレス部分146にそれぞれ接続されている。データライン152A〜Bを介してシステムバスのデータ部分にはそれぞれMONITORモードのチップ110A〜Bも結合されている。システムバス146〜148はシステムハードウェア112、メモリ114およびI/Oユニット116にも結合されている。DUTモードのデバッグチップ110CおよびMONITORモードのチップ110A〜Bは、バス142A〜Bを介し、パワーオンリセット118および発振器120にも結合されている。更にMONITORモードおよびDUTモードのチップ110A〜Cはそれぞれモード選択モード入力ピン150A〜Cをそれぞれ介し、各チップの作動モードをセットするためのモード選択バス144にも結合されている。また、DUTモードおよびMONITORモードのチップは非同期事象バス164にも結合されている。最終的に、デバッグバス140はパワーオンリセット、インタラプト、ウエイトステート、DMAアクセスおよびその他の非同期事象を含む活動を同期化するために、すべてのチップ110A〜Cに結合されている。
【0017】
DUTモードのデバッグチップ110Cのアドレスライン160Cと対照的に、デバッグチップ110A〜Cのそれぞれの対応するアドレスライン160A〜Bはその代わりにロジックアナライザ102に結合されている。コンピュータ104上に表示し、ここで分析するためのロジックアナライザ102にDUTモードのデバッグチップ110C内のチップのローカルバスの活動および/またはインタラプト、すなわちDMA活動に対応する信号が送られるのは、これらライン160A〜Bを通してである。
【0018】
能力が高められたデバッグチップ110A〜Cの各々は、作動時にメモリ114に記憶されたプログラムコード180から生じた同一のプロセス170を実行する。本発明の一実施例では、すべてのチップ110A〜Cはメインメモリ内の同一のアドレスにブート(起動)する。しかしながら、DUTモードにされたデバッグチップ110Cしか、システムバス146〜148のアドレス部分146に結合されたアドレスを有しない。従って、システムバスのアドレス部分のマスターとして働くのはこのチップ110Cである。バスマスターチップ110Cはアドレスバス上でどのアクセスリクエストを処理するかを決定し、従って、システムバスのデータ部分148にどのデータおよび/またはプログラムコードが存在するかを決定する。システムバスのデータ部分を通してチップ110A〜Cの各々に与えられる代表的なプログラムシーケンスは特定アドレスへの読み出しまたは書き込み命令を含み、この命令の次には上記チップの各々によりこの特定アドレスから読み出したり、または書き込んだりするデータが続く。従って、MONITORモードのチップ110A〜Bの各々は同一のデータおよび命令を受信し、メインメモリに記憶されている、例えばプログラムコード180に応答し、同一の動作170Cを実行するマスターチップ110Cの活動をシャドー化する。モニタチップのどれも、外部メモリ114への書き込みを行わない。常にDUTモードのデバッグチップ110Cによってしか、外部メモリへの書き込みは行われない。
【0019】
チップ自体、および/またはこのチップで作動するプログラムコードをデバッグするには、ピン接続のないチップの内部の種々の部品および信号ラインにアクセスし、これらのステートをモニタすることが有利である。一般に、このコンピュータチップおよびその他のチップ、例えば論理ユニット、デジタル信号プロセッサ、グラフィックプロセッサ等の計算活動の大部分は、外部ピンでは得られない。図示した実施例、例えばデバッグ能力が高められた「コンピュータ」チップ110A〜Cでは、ローカルバス130A〜Cとして知られるメモリ制御ユニット136A〜Cの上流部でかかる活動が行われる。図示した実施例では、ローカルバスは同期部品、例えばキャッシュメモリと非同期部品、例えばDMAおよびインタラプトユニットとを結合している。チップの各々における処理のほとんどは、そのCPUとキャッシュメモリとの間のローカルバスで生じることができる。すなわちシステムバスではDMAユニットとその活動が表示されることはない。
【0020】
一般にプログラムコードの実行はシステムバスのデータ部分148からチップ110A〜Cの各々によって受信された命令と関連している。プログラムコードにより各チップの中央処理ユニットCPUは論理的および代数的演算を実行し、更にプログラムコードは、これら操作を行うのにシステムバスのデータ部分を通し、メモリ114との間でデータを読み書きすることを求めることがある。これらチップの各々は同一プログラムコードおよび同一シーケンスで作動するので、1つのチップがバスをマスター制御するだけでよく、図示された実施例ではDUTモードに構成されたチップ110Cがこのチップとなっている。システムバス146〜148のアドレス部分146には、そのチップの読み出しおよび書き込みリクエストが記憶されており、よってそのバスのデータ部分148の内容を決定する。
【0021】
各チップ110A〜Cはそれぞれモード入力ピン150A〜C上の信号によりDUTモードまたはいくつかのMONITORモードのいずれかに構成される。デバイスのポート上の2進シーケンス「000」に対応するデジタルシーケンスにより、デバイスをDUTモードとすることができる。また、2進シーケンス「001〜111」に対応する信号により、デバイスをいくつかのMONITORモードのいずれかにすることができる。個々の各モード信号に応答し、多数の内部ステートの変更が行われる。これら変更の1つとして、チップの各々のデバッグスイッチ136A〜Cを接続することが挙げられる。チップ110CはDUTモードとなっており、この場合、そのデバッグスイッチ136Cはメモリ制御ユニット134C内のメモリインターフェースユニット110C(図3参照)を介し、ローカルバス130Cのアドレス部分にアドレス出力160Cを結合する。このモードでは、キャッシュポリシーおよびチップのオンチップキャッシュメモリ244C(図2参照)のステートに関連し、適当な場合にはアドレス出力160C上にはローカルバスのアドレス部分に生じるアドレスしか発生しない。これとは逆に、モニタモードに構成された1つ以上のデバッグチップ、例えばデバッグチップ110A〜Bは、メモリ制御によるフィルタリングを行うことなく、ローカルバスのアドレス部分およびローカルバスのデータ部分に接続された関連するデバッグスイッチ136A〜Bを有する。これらラインの活動は、これらチップのアドレス出力ライン160A〜Bによりロジックアナライザ102に与えられる。これらMONITORモードのチップ110A〜Bの各々では、ローカルバスアドレスラインは関連するアドレスにより読み出しおよび書き込みコマンドを表示し続ける。MONITORモードのこれらチップとDUTモードのチップ110Cとの違いは、MONITORモードのチップではローカルアドレス上に存在するアドレスがシステムバスのアドレス部分146に到達せず、従って、インターフェアレンスを除き、システムバスのデータ部分148上で利用できるデータを制御しないということである。むしろその代わりに、データバス上のデータは実際にはマスターモードまたはDUTモードに構成されたチップ110Cによって得られたアドレスによって実際にデータバス上のデータが決定される。従って、システムバスのアドレス部分をマスターし、(従って、システムバスのデータ部分148の内容を決定するように)チップを構成できるようにすることにより、MONITORモードのチップの活動がDUTモードのチップの活動をシャドー化するようにできる。次の図面および明細書では、チップのモードに従属した別の機能について説明する。従って、インタラプトおよびDMAアクセスステートの外部化、およびいくつかのチップの処理の同期化について開示する。
【0022】
当業者には明らかなように、チップ上の専用モード選択ピンを用いることなく、モード選択を行うこともできる。本発明の別の実施例では、チップのデバッグ部品の構成を始動時のチップまたはチップ上に存在する多重化ピンによって受信されるデータシーケンスにより行うことができる。
【0023】
図2は、図1の実施例を参照してこれまで説明したデバッグチップ110A〜Cの代表的なチップ、例えばチップ110Cの詳細なブロック図である。このチップはクロック232Cと、CPU238Cと、キャッシュコントローラ242Cおよびキャッシュメモリ244Cを含むキャッシュシステム240Cと、DMAコントローラ248C、DMAアービトレータ250Cおよび関連するDMAI/Oバッファ252Cを含むDMAユニット246Cを含む。更にこのチップは図1を参照してこれまで説明したように、DUTモードまたはいくつかのMONITORモードのいずれかでチップを作動できるようにする次のデバッグ部品を含む。これらデバッグ部品としては、インタラプトユニット236Cを含む第1同期化回路/ユニット234Cと、第2同期化回路/ユニット230Cと、コーデック132Cと、デバッグスイッチ136Cとがある。このデバッグスイッチはチップのアドレスピンを通して外部へ同期および非同期処理ステートを送る。デバッグ部品の各々をモード入力ピン150Cへ結合する制御接続部を有する。各部品の構成はモード入力ピン150C上のモード信号に応答して変わる。モード信号は各部品をDUTモードまたはいくつかのMONITORモードのいずれかにする。
【0024】
チップ自体はバス280Cを通してネットワークインターフェース200に接続され、リセットライン142Aを通してリセットユニット118に接続され、発振器信号ライン142Bを通して発振器120に接続され、デバッグバス140を通してコーデック132Cおよび関連するシスターチップ、すなわち110A〜Bに接続され、システムバスのアドレス部分146およびデータ部分148を介してメモリ114およびI/Oユニット116に接続され、モード入力ピン150Cを介し、モード選択バス144に接続され、DMA I/Oインターフェース254Cを介し、周辺DMAデバイスに接続され、最終的に非同期事象バス164を介し、シスターチップ110A〜Bに接続されるように示されている。本発明の一実施例では、ネットワークインターフェースはネットワークインターフェースバス288Cを介し、チップ110Cに結合しており、このインターフェースバスは例えばIEEE規格802.3のMIIバスである。
【0025】
チップ内ではCPU238Cおよびキャッシュシステム240Cがローカルバス130Cに結合されている。キャッシュコントローラ242Cはライトスルーおよびコピーバッグを含む多数のキャッシュポリシーのうちのいずれか1つを実行できる。本発明の一実施例では、チップは関連するI/Oバッファ252Cを備えたオンボードDMAユニット246Cの別の特徴を提供し、I/Oバッファ252Cは多数の周辺デバイス(図示せず)との間でアクセスを行うよう、外部DMA I/Oインターフェース254Cに結合している。この新規なDMAユニット246Cの更なる細部については、米国特許出願第09/160,513号として発明者ジャン・ベンクツォン、ケニー・ラナーアップ、パー・ザンダーにより1998年10月9日に「DMAユニットによる改良されたメモリアクセスのための方法およびコンピュータシステム」を発明の名称とする係属中の米国特許出願に記載されている。この米国特許出願を引用によってここに含める。
【0026】
クロック232CはCPU238Cだけでなく第1同期化ユニット234Cおよび第2同期化ユニット230Cにも結合している。第1同期化ユニット234Cは信号ライン166C上の外部インタラプト信号を受け入れ、DMAユニット246Cから信号ライン278Cを介し、デバッグバス140上のDMA情報のための時間スロットをリザーブするための入力信号を受け入れることができる。この第1同期化ユニットは信号ライン274Cを介し、メモリ制御ユニット134Cへ出力信号を与える。更にこの第1同期化ユニットは信号ライン282Cを通し、CPU238Cへ出力信号を送り、信号ライン926Cを通してコーデック132Cへ出力信号を送る。第2同期化ユニット230Cは、I/Oユニット116から信号ライン164を介し、非同期入力信号を受信する。この第2同期化ユニットの出力端はコーデックおよびCPUに結合されており、DMA信号ライン276Cを介し、コーデック132CにDMAユニット246Cが結合されている。
【0027】
モード入力ピン150C上のモード信号は作動時にデバイスがマスター/DUTモードで作動するのか、またはMONITORモードで作動するのかを判断する。MONITORモードの場合、モード入力ピン150Cへの入力信号はデバッグスイッチ136C、第1同期化ユニット234C、第2同期化ユニット230Cおよびコーデック132Cのステートを決定する。
【0028】
モード入力ピン150C上のモード信号がマスター/DUTモードに設定されると、第1同期化ユニット234Cおよび第2同期化ユニット230Cは非同期入力信号例えばインタラプト信号およびDMAアクセスをを受け入れ、モニタユニット110A〜Bの同期化を可能にするのに十分な数のクロックサイクルの間、その入力信号の処理を支援する。この同期化は次の図8に示されるように実行できる。DUT/マスターモードでは、デバッグスイッチ136Cは従来どおりキャッシュメモリ244Cの書き込みおよび読み出しにしか関係しないローカルバスのアドレス活動のシステムアドレスバス部分からアイソレートするように、ローカルアドレスバスにデバッグスイッチ136Cが結合される。
【0029】
上記のように、チップ110A〜Bは、図2に示されたチップ110Cと同一である。唯一の違いは、これら違いのデバッグ部分、例えばコーデック132A〜B第1同期化ユニット234Aおよび第2同期化ユニット230C、およびデバッグスイッチ136A〜Bがそれらの活動とデバッグスイッチ110Cとの活動を同期化させるだけでなく、通常は外部に現れない対応するチップの所定の内部ステートを現すように構成されている。これら機能の第1機能、例えばシスターチップと同期化する機能は、第1および第2同期化ユニットならびにコーデックによって得られる。
【0030】
図示した実施例における、主にMONITORモードでは、チップ110A〜Bの内部には多数の異なるステートがあり、これらはロジックアナライザ102による処理を行うためのアドレス出力160A〜Bのいずれかで表示できる(図1参照)。これらステートにはローカルデータバス300A〜Bまたはローカルアドレスバス302A〜Bのうちの所定の1つを、対応するデバッグスイッチ136A〜Bに結合することを含む。これら出力はロジックアナライザによる処理を行うために、チップの対応するアドレス出力、例えば160A/Bで利用できる(図1参照)。従って、マスター/デバイステストモードに構成されたチップ110Cが完全な特徴の計算ユニットとしてDUTモードで作動する間、MONITORモードに構成されたそのシスターチップは同一のプログラムコードを実行し、バスマスターとして構成されたDUTモードのデバッグチップ110Cに同じ態様で非同期事象に応答することにより、DUTモードのチップで実行される処理に関連した内部ステートを露出する。
【0031】
本発明では、第1チップはテスト中のデバイスとして構成されており、このアドレス出力がどのメモリロケーションとの間で読み出し、書き込みを行うかを制御し、従って、データバス上で、どの時点でどのデータおよび命令を与えるか、という意味でバスマスターとなっている。MONITORモードで作動するように構成されたシスターチップはマスターモードのチップのエンドデータアクセス活動をシャドー化し、同じ処理をこれに同期化させて実行する。従って、デバッグ機能専用の最小の付加的オンボードリアルエステートと、モード入力ピン150A〜Cおよびデバッグバス140に関連したピンを除き、デバッグ機能を有しない従来のチップのそれに類似するピンアウトとを含むテストおよび製造に適した単一チップを製造できる。
【0032】
図3は、図1に示されたメモリ制御ユニット134A〜Cの詳細な実施例を示す。メモリ制御ユニットの各々はメモリインターフェースユニット110A〜Cとデバッグスイッチ136A〜Cとを含む。メモリインターフェースユニット310A〜Cの各々は制御バス(図示せず)を通してキャッシュコントローラ242A〜C、CPU238A〜CおよびDMAユニット246A〜Cのうちの対応する1つに結合されている(図2参照)。ローカルバス側では制御ユニットはローカルバスのアドレスバス部分300A〜Cおよびデータバス部分302A〜Cに結合されている。システムバス側では制御ユニットはデータライン152A〜Cおよび中間システムアドレスバス104A〜Cに結合されている。デバッグスイッチ136A〜Cの各々はモード入力ピン150A〜Cの対応する1つに結合されている。図示された実施例では、デバッグスイッチはアドレス出力160A〜Cを直接ローカルバスに結合するか、またはメモリインターフェースユニット310A〜Cからの中間システムアドレスバス304A〜Cを介して間接的にローカルバスに結合する。メモリ制御ユニットに直接結合されている時は、チップはキャッシュコントローラ242A〜Cおよびキャッシュメモリ244A〜Cの任意の時点における内容によって実行されるキャッシュポリシーによって決定されるアドレス出力ライン160A〜Cとローカルバスのアドレス部分との間が結合されたDUTコンピュータとして働く。これとは異なり、デバッグスイッチ136Cはローカルデータバス300A〜C、ローカルアドレスバス302A〜Cまたは信号ライン上のすべての活動をモニタするように構成できる。本発明の別の実施例では、内部事象ライン306A〜Cを通して、例えばCPUまたはキャッシュコントローラのステータスもモニタできる(図3参照)。これら出力は対応するアドレス出力ライン160A〜Cを通して直接得られる。
【0033】
当業者には明らかとなるように、本明細書に開示した装置はモード選択可能なデバッグスイッチングおよび同期化機能をチップに組み込むことにより、複雑な集積回路の計算チップの内部ステートを現す。このデバッグ能力が高められたチップはローカルバスを有する必要はない。その代わり、デバッグスイッチは内部信号ラインおよび/またはモニタの必要なチップ上の部品にスイッチの入力端を接続するだけでよい。デバッグスイッチの出力はチップのアドレスラインに接続されている。本発明の一実施例では、同期化回路は共通クロックのように単純な何かを含むことができる。例えばチップによって非同期事象を処理しないような場合には、このことは実際的になり得る。チップが非同期事象を取り扱うような本発明の別の実施例では、図9に示し、説明した同期化回路が適当となる。この同期化回路はチップ上の非同期信号入力端およびピンの数を低減する多重化機能を備えたデバッグバスに接続される。最後に、デバッグスイッチおよび同期化回路の双方は、それ自身がDUTステートまたはいくつかのMONITORステートのうちの1つにするよう、チップ上のモードピンにおけるモード信号に応答し得る。上記スイッチを使って多数のタイプのチップおよびこのチップ上で使用するようになっているプログラムコードをデバッグできる。これらチップはデジタル信号プロセッサ、グラフィックスプロセッサ、ビデオプロセッサ、信号プロセッサ、パターンプロセッサ、プログラマブルロジックデバイス、フィールドプログラマブルデバイス、マイクロコントローラ....等を含むが、これらのみに限定されるものではない。MONITORモードのいくつかのチップをDUTモードのチップに結合することにより、MONITORモードのチップはそのアドレスラインにDUTモードのチップの内部処理ステートを出力しながら、DUTモードチップ上で生じる処理を表示することができる。MONITORモードのチップの各々を別のモニタモードに設定することにより、DUTモードチップの2つ以上の内部ステートを同時に得ることができる。MONITORモードチップのアドレスラインをロジックアナライザに接続することにより、内部ステートを詳細に評価できる。
【0034】
次に図4を参照すると、デバッグバス140は5つのパス(path)しか含まない。これら5つのパスのうちの1つであるBCLKは入出力(I/O)ユニットに接続されたバスを通してシステムバス146〜148に接続されたI/Oユニットからの外部非同期信号、例えばDMAリクエスト信号またはウエイト信号上の同期化情報を送信するための第2同期化回路230Cによって使用される。外部非同期信号はI/Oユニット116により第2同期化回路230Cおよびモニタ100へ送られる。I/Oユニット116によって発生される外部インタラプトリクエストは第1同期化回路234Cへ送られる。
【0035】
他の4つのパスBS0〜BS3はDUTモードのデバッグチップ110Cからモニタ100へのCPUおよびDMAステータス情報の送信に使用される。更に、これらデバッグバスパスBS0〜BS3は、対応するコードが第1同期化回路234Cから発生される場合、システムリセット動作中にモニタ100とDUTモードデバッグチップ110Cとの上記同期化に使用される。
【0036】
従って、デジタル的に総計16の異なる4ビットワードまたはコードを利用できる。本実施例で使用される10本のDMAチャンネルに対応する下位の10個のコード、すなわち論理的に0〜9のコードがDMAステータスの送信に使用される。この情報はどのDMAチャンネルを受け入れるか、更にいつ読み出しが行われるのか、必要な場合にはどれだけ多くのバイトが受信に残されているのかを伝える。データはブロック状、本例では4バイトのブロックで受信され、更にモニタ100へDMAステータス情報を送信するための時間により必要である。従って、I/Oユニットから受信するように残されているデータが8バイト以下であり、かつデータのI/Oユニット信号の終了部である場合、その情報をモニタ100へ送信しなければならない。このステータス情報はデバッグバス140を通してアービトレータ250CからDMAコントローラ248Bへ送信されるだけでなく、DMA信号ライン276Cを通してDMAコントローラ248Cへも送られる。
【0037】
コード10〜15は次のような第1同期化回路234Cによって発生されるCPUインタラプトステータスに対して使用される。
10 外部ベクトル番号を備えたIRQ、NMIなし
11 外部ベクトル番号を備えたIRQおよびNMI
12 IROなし、NMIなし
13 NMI、IRQなし
14 内部ベクトル番号を備えたIRO、NMIなし
15 内部ベクトル番号を備えたIRQおよびNMI
【0038】
IRQとはインタラプトリクエストを意味し、NMIとはノンマスカブルインタラプトを意味する。モニタ100に対してDUTモードのデバッグチップ110C内でのインタラプトの取り扱いをアンバランスにさせないように、DMAユニット246Cがデバッグバス140を使用しようとしている時に、DMAユニット246Cにより、第1同期化回路234Cへ信号が送信される。この信号により、第1同期化回路234Cはインタラプトステータスをホールドする。DMAユニット246Cによりデバッグバス140が解放されて初めて、DUTモードのデバッグチップ110Cおよびモニタ100のそれぞれのCPU238C、238A〜Bへ新しいインタラプトステータス情報が送信される。
【0039】
オンボードDMAユニット246CはDUTのバッファ252C内で同期化され、アービトレータ250C内で優先順序が決定される。この同期化およびアービトレーションの結果はDMAコントローラ248Cへ与えられ、更にコーデック132C、デバッグバス140およびコーデック132A〜Bを介し、DMA制御ユニット248A〜Bへ送られる。従って、オンボードDMAの動作の制御部分はMONITORモードのチップ110A〜B内でミラー化される。オンボードDMAのデータ部分は外部メモリデータバスを通してすべてのDMAデータを出すことにより処理される。次にこのデータは、MONITORモードのチップに対して利用できる。
【0040】
チップ上に集積化されたキャッシュシステム240Cにかかわらず、DUTモードのデバッグチップ110Cが作動している間、完全なデータ、アドレスおよび非同期の事象情報を備えたロジックアナライザを設けるように、本デバッグシステム98〜100が構成されているので、後述するように、メモリ制御ユニット134Cによりメモリアクセスを改善することが可能である。
【0041】
図5は、図1〜2に示された性能の高められたデバッグチップのメモリ制御ユニットとメインメモリとの間のインターフェースの詳細なハードウェアブロック図である。本発明の一実施例では、メインメモリは一般にいくつかのDRAM、すなわちダイナミックランダムアクセスメモリを含む。各DRAM550A〜Cは2つの部分のアドレス(ここで下方部分は列アドレス554であり、上方部分552は行アドレスである)によってアドレス指定される、マトリックス状に配置されたメモリエリア556を有する。好ましい実施例では、メモリ制御ユニット134A〜Cは更に改良されたメモリアクセスを実行し、その後のメモリアクセスは頻繁にその後のアドレスに関係するという事実を活用する。従って、メモリ制御ユニット134Cにはメインメモリ114の各DRAM回路550A〜Cのための別個の行アドレスレジスタ500A〜Cおよび比較ユニット502A〜Cが設けられている。フルメインメモリアドレスをホールドするメモリ制御ユニット134Cのアドレスバッファ504A〜Cは2つの部分に分割されており、各部分はそれぞれ別個にメインメモリへボード可能となっている。その後のメインメモリアクセスに対し、その後のメインメモリアドレスの行アドレスは先のアクセスに対するのと同じであるが、列アドレス部分504Bをロードするだけでよい。このことは、その都度、全アドレスをロードすること、すなわち最初に行アドレスをロードし、次に列アドレスをロードすることと比較して時間の節約となる。行アドレスが先のアドレスと同じであるかどうかを判断するために、比較ユニットは行アドレス部分504Aと現在作動中のDRAMの行アドレスレジスタの内容とを比較する。一致していれば、列アドレス部分504Bを入力するだけであり、一致していなければ行アドレスと列アドレスの双方を入力し、同時にレジスタを更新する。これら2つのバッファ部分504A〜Bはメモリ制御ユニット134A〜Cのデバッグスイッチ136A〜Cによってシステムバス146〜148に多重化されている。
【0042】
図6は、図1〜2に示された、能力の高められたデバッグチップと低速周辺デバイスとの間のインターフェースを示すブロック略図である。特に、低速周辺ユニット710、主に古いユニットに対しては、外部再実行ユニット700を利用できる。データ伝送時間が長くなりすぎる場合、過度に長い時間、システムバス146〜148が占有され、これにより別のユニットが時間にクリティカルなアクセスに従属するという問題が生じ得る。以下、再実行ユニットと称す再実行ユニット700は、かかる低速周辺ユニットにおける読み出しおよび書き込み操作時にCPU238Cを補助する。例えば周辺ユニット710からデータを読み出すと仮定する。
【0043】
CPUのアクセスの開始より、この再実行ユニット700はアドレスバッファ116Bにおいてアドレス情報をバッファ化し、タイムアウトを設定し、CUP238Cへ再実行リクエストを伝える再実行ルーチンを開始する。これによりCUP238Cはバスをリリースさせ、デバッグチップ110C、例えばDMAユニット246C内の他のバスマスターがアクセスできるようにする他のタスクを続ける。一方、再実行ユニット700は周辺ユニットと通信する。その後、CPU238Cが読み出し操作を再び実行する際にタイムアウトが経過しているか、経過していないかのいずれかになる。タイムアウトが経過していれば、CPU238Cは読み出し操作を続け、経過していなければ、再実行ユニット700はCPU238Cへ別の再実行リクエストを送る。周辺ユニット710へデータを書き込まなければならない時、対応するアドレスおよびデータバッファ116B〜A内のアドレスおよびデータをバッファ化することを含む対応する工程を実行する。システムバス146〜148が他のタスクに対しリリースされる間、再実行ユニット700によりデータの書き込みが続けられる。DUTモードのデバッグチップ110Cから再実行ユニット700へCPUから送られる信号はチップセレクト信号、読み出し信号および書き込み信号である。
【0044】
モニタ100へプログラムの実行がミラー化することにより、インタラプトの処理は適当な同期化およびタイミングを得るために処理しなければならない問題である。この問題は特にいくつかのインタラプトを同時に処理しなければならない時に生じる。
【0045】
従って、次に図7を参照すると、本発明の別の実施例によればダイナミック優先処理方法が使用される。図7は、インタラプトユニット236A〜Cの各々に対応する代表的なユニットを示す(図2参照)。例えばチップ110CはDUTモードとなっているデバイスに限りインタラプトユニットアクティブである。図示された実施例では、このインタラプトユニットは信号ライン166Cを介し、I/Oユニット116からの非同期入力信号を受け入れる(図2参照)。これらインタラプト信号は、インタラプトマスキング前、またはインタラプトマスキングおよびDUTチップによる信号ライン274Cを介し、外部メモリデータバスへの処理の後に得ることができるので、DUTモードのCPU238Cがインタラプト信号を読み出す時に、モニタモードのチップCPU238A〜Bに利用できるようになる。インタラプトユニット236Cの優先化された出力850Cは第1同期化ユニット234Cを通過し、この第1同期化ユニットから出力がコーデック132Cへの入力信号として与えられる(図2参照)。チップ110A〜Cの各々は同一のインタラプトユニット236A〜Cを含むが、DUTモードのチップ110Cだけがインタラプトユニットアクティブとなっている。
【0046】
インタラプトライン166Cを通していくつかの個々のインタラプトリクエスト信号が受信される。これらラインは第1マスクレジスタ802およびANDゲートの第1アレイにより、略図で示された個々のインタラプトマスクに接続されている。従って、個々のインタラプト信号の各々は前記第1アレイのそれぞれのANDゲート802A〜Mの入力端へ送られ、マスクレジスタ802はANDゲート802A〜Mの各々の他の入力端に接続されている。それぞれのORゲート804A〜Nの入力端にはいくつかのインタラプト信号ライン166Cおよび対応するANDゲートの出力端が接続されている。よって、これらインタラプト信号は信号ライン166Cに対する1つの信号にまとめられる。ORゲート804A〜Nの出力信号は、個々のマスクおよび付随するANDゲート802A〜Mと同様に配置された、第2マスクレジスタ806およびANDゲート806A〜Nの第2アレイによって示されるグループマスクによりマスク可能である。
【0047】
ANDゲート806A〜Nの第2アレイの出力端はORゲート808のn個の入力端に接続されており、ORゲート808の出力端は同期化回路234Cを介し、DUTモードのデバッグチップ110CのCPU238Cおよびコーデック132Cに接続されており、このコーデックでステータスがコード化され、モニタ100へ送られる。
【0048】
受信されたインタラプト信号を検出し、分離し、これらの信号の間の優先付けを可能にするために、所望する異なるレベルでの読み出しを認める。少なくともANDゲート804A〜Nの第2アレイの出力信号を優先ロジックで読み出し、ベクトル番号にコード化することが好ましい。このベクトル番号はインタラプト信号の異なる組み合わせに対して異なる。システムバス146〜148上でベクトル番号は出力される。よってこのベクトル番号はDUTモードのデバッグチップ110Cおよびモニタ100の双方に対して利用可能である。従って、このベクトル番号はDUTモードのデバッグチップ110Cによって発生されるが、DUTモードのデバッグチップ110Cとモニタ100の双方によって同じように使用される。これらインタラプト信号は第1同期化回路234Cを通して伝送される。このベクトル番号はインタラプトベクトルをホールドするルックアップテーブルのインデックス番号としてCPUによって使用される。たいていは1つのデバイスインタラプト信号、すなわち、わずか1つのユニット260C、264Cからのデバイスインタラプトしかなく、どのインタラプトベクトルをフェッチすべきかが明らかである。2つ以上の同時インタラプト信号がある場合、ベクトル番号はインタラプト信号の優先順序を決定する優先ルーチンに対応する。こうしてその順序で異なるインタラプト信号を処理する。
【0049】
従って、1つのインタラプト信号しか存在しないほとんどのケースでは、高速のインタラプト処理がなされ、2つ以上のユニットからの複数のインタラプト信号がある場合に限り、より時間のかかる優先順序決定方法に基づく処理がなされる。処理すべきユニットからどんなインタラプト信号が存在するかを正確に決定するために、当然、個々のマスク802A〜Nの入力端または出力端のいずれかの上に信号ラインを検出する可能性がある。更に、インタラプトリクエストがCPUに達すると、この信号が内部で発生されるだけでなく、I/Oデバイスから外部より発生されることがあり、更にマスクできないインタラプト信号が生じることもある。
【0050】
図8は、図1に示されたMONITORモードチップ110BおよびDUTモードのデバッグチップ110Cの第1および第2同期化ユニットの詳細を示すハードウェアブロック図である。これらユニットはDUTモードのデバッグチップおよびMONITORモードのデバッグチップの間における内外非同期事象の同期化を一般に取り扱う。上記のように各チップはモード入力ピン150B〜C上の入力信号によって測定されるチップのモードに応じた態様に構成された同一のハードウェアを含む。
【0051】
2つのデバッグチップ110B〜Cの部分ブロック図が示されており、双方のチップの第1および第2同期化ユニットが示されている。第1デバッグチップの同期化ユニットはチップのモード入力ピン150B上のモード信号によって設定されるチップ110Bのステートに対応するMONITORモードとなっており、第2デバッグチップの同期化ユニットはチップのモード入力ピン150C上のモード信号によって設定されるチップ110Cのステートに対応するDUTモードとなっている。
【0052】
構造的には双方のチップにおける同期化器は同一の部品を含むが、上記のようにこれら部品の間の結合はチップに対するモード設定に応じて変わり得る。このような理由から、DUTモードおよびMONITORモードの双方における同期化器の各々について説明する。添え字Bのついた部品はMONITORモードとなっているチップ110B内に存在し、添え字Cのついた部品はDUTモード内のチップ110C内にある。
【0053】
第2同期化回路230B〜Cの各々は、ラッチ960B〜Cと変化検出ユニット958B〜Cと、同期化器950B〜Cとを含む。第1同期化ユニット234B〜Cの各々はラッチ902B〜Cと同期化器900B〜Cと、インタラプトユニット236B〜Cとを含む。図には関連するコーデック132B〜C、クロック232B〜Cおよび対応する接続が示されている。
【0054】
第2同期化ユニット
第2同期化ユニットはモード入力ピン150上のモード選択信号に応答自在な2つのコンフィギュレーションの1つを採用している。DUTモードに関連する第1コンフィギュレーションでは、第2同期化ユニット230CはモニタモードチップとDUTモードチップ110B〜Cの双方をリンクする非同期信号バス上の非同期信号を検出する。第2同期化ユニットは信号とDUTクロック232とを同期化し、この信号をラッチする。次にこの第2同期化ユニットは非同期信号の受信後に変化なし時間があるかどうかを判断し、変化なし時間が生じた後にシスターチップ100Bにイネーブル信号を出力し、このチップを処理のためのチップの内部部品にリリースする信号をアンラッチする。DUTモードに対応する第2コンフィギュレーションでは、第2同期化ユニット230Bは非同期信号バス上の非同期信号を検出し、この信号とMONITORクロック232Bとを同期化し、この信号をラッチする。次に第2同期化ユニットは、シスターチップ110Cからのイネーブリング信号の受信時に、処理するためのチップの内部部品に対し、チップをリリースする信号をアンラッチする。当業者には明らかとなるように、固定遅延時間、DUTモードおよびMONITORモードにおける可変遅延時間、同期化情報だけでなく、DUTモードチップにより発生され、MONITORモードチップへ送られるラッチイネーブリング信号の受信に応答する遅延時間を含むラッチを同期化するための方法および装置が多数ある。
【0055】
第2同期化ユニット230B〜Cのコンフィギュレーションは次のとおりである。双方の同期化ユニットは各ユニットの同期化器950B〜Cに結合した信号ライン164B〜C(図1参照)を介した非同期バス164からの入力端を有する。このバスでは、内部非同期事象、例えば外部DMAアクセスおよびウエイトステートが受信される。双方の同期化ユニットでは、同期化器950B〜Cの出力は信号ライン974B〜Cを通し、変化検出ユニット958B〜Cおよびラッチユニット960B〜Cの入力端のそれぞれの1つに接続されている。DUTモードのデバッグチップでは、変化検出ユニット958Cの出力端はラッチ960Cのイネーブル入力端およびデバッグバス140のBCLKラインに結合されている。MONITORモードのデバッグチップ110Bでは、変化検出ユニット958Bは不作動であり、ラッチ960Bはその代わりにBCLKラインを介し、そのイネーブル入力信号を受信する。
【0056】
作動時に第2同期化ユニット230B〜CのアクティビティはDUTモードの変化検出ユニット958Cによってコーディネートされる。双方のユニット230B〜Cはそれぞれの信号ライン164B〜Cを通し、非同期バス164上の非同期DMA信号またはウエイトステート信号を受信する。この信号は対応する同期化器950B〜Cにより、各チップのクロック232B〜Cに同期化される。本発明の実施例は、こられ同期化器は1つ以上のフリップフロップから構成される。DUTモードのデバッグチップ110Cの変化検出ユニット958Cが、非アクティビティが続く変化時間を検出すると、このユニットは双方のチップの第2同期化ユニットのラッチ960B〜Cのイネーブル入力端にイネーブル信号を出力する。ラッチ960Bに対する信号はデバッグバス140のBCLKラインを通して到達する。従って、変化ユニット958Cによって発生される共通信号により、ラッチユニット960C〜Bをトリガーすることにより同期化が達成される。それぞれのラッチ960B〜Cの出力信号284B〜Cは、CPU238B〜Cおよびそれぞれのチップ110B〜Cのメモリ制御ユニット134B〜Cへ与えられる。パワーオンおよびウエイトステート中のチップの同期化は、非同期バス164への接続を介し、DUTモードのチップおよびMONITORモードのチップの双方の第2同期化ユニットにより処理され、非同期バス164を通し、バスパワーオンリセットおよびウエイトステートがこれらチップへ導入される。これまで説明した同期化装置は第1チップのクロック232Bと第2チップのクロック232Cとを同期化するものではなく、これらクロックは実際には互いにずらすことができることに留意されたい。その代わりに、同じクロックサイクルをずらすことができても、同期化器は外部非同期信号の実行を遅延し、すべてのチップにおける同じクロックサイクルにおけるそれらの処理を可能にする。
【0057】
第1同期化ユニット
第1同期化ユニットはモード入力ピン150上のモード選択信号に応答自在な2つのコンフィギュレーションの1つを採用している。DUTモードに関連する第1コンフィギュレーションでは、第1同期化ユニット234Cは1つ以上の非同期信号を検出し、これら信号をDUTクロック234Cと同期化し、インタラプトレジスタ内でこれらの優先順序を決定し、これらをラッチし、コーデック132Cを介し、そのシスターチップ110Bのコーデックへ非同期信号に関する同期化情報を送り、適当な遅延時間後、処理のためのチップの内部部品へラッチされた信号をリリースする。MONITORモードに対応する第2コンフィギュレーションでは、第1同期化ユニットはコーデック132Bからの同期化情報を受信し、その情報をラッチし、適当な遅延時間後、第1ラッチと同時にラッチされた信号を処理のためのチップの内部部品にリリースする。当業者には明らかとなるように、固定遅延時間、DUTモードおよびMONITORモードにおける可変遅延時間、同期化情報だけでなく、DUTモードチップにより発生され、MONITORモードチップへ送られるラッチイネーブル信号の受信に応答する遅延時間を含むラッチを同期化するための方法および装置が多数ある。
【0058】
第1同期化ユニット234B〜Cのコンフィギュレーションは次のとおりである。同期化ユニット234Cは、インタラプトユニット236Cに結合している信号ライン166C(図1参照)を介し、I/Oユニット116の外部インタラプトライン166からの入力信号を受け入れる。これらインタラプト信号はインタラプトユニット236C内で優先順序が決定され、同期化ユニット900C内で同期化される。次に、DUTモードのコーデック132Cを介し、同期化情報はバス140を通ってモニタモードのチップ110A〜Bへ送られる。同期化器の出力端は、信号ライン942B〜Cを通し、ラッチ902B〜Cに結合され、信号ライン926B〜Cを介し、コーデック132B〜Cへ結合されている。
【0059】
DUTモードのデバッグチップ110Cでは、ラッチ902Cへの入力信号はインタラプトユニット236Cから同期化器900Cによって与えられる。これと対照的にMONITORモードのデバッグチップ110Bでは、同期化器900Bおよびインタラプトユニット236Bはディスエーブルされる。ラッチ902Bは信号ライン928Bを介し、コーデック132Bからの入力信号を受信する。この信号自身はデバッグバス140を介し、コーデック110Cからコーデック110Bへ送られたコード化されたインタラプト情報から生じたものである。コーデック110Cは信号ライン926Cを介し、第2同期化ユニット234Cからその情報を発生する。本発明の実施例では、DMAユニット246Cは信号ライン278Cを介し、デバッグバス140上のDMA情報に対するタイムスロットをリザーブできる。同期化ユニット900Cがライン278C上のリザーブ情報を受信すると、このユニットはDMAユニット246Cがそのリザーブ信号をリリースするまで、ライン942C上に現在のインタラプトステータスをホールドする。MONITORモードチップでは、コーデック132Bがデバッグバス142上にDMAに関連したコード化された事象を受信する限り、その現在のインタラプトステータス出力信号928Bをホールドする。従って、インタラプト信号282Bおよび282C上の変化は同じクロックサイクルに同期化される。ラッチ902B〜Cは信号ライン282B〜C上の同期化されたインタラプト信号をMONITORモードのデバッグチップ110BおよびDUTモードのデバッグチップ110CのCPU238B〜Cのうちの対応する1つに出力する。従って、これら出力信号は内容およびタイミングの点で同一であるので、双方のチップにおけるインタラプト信号の同期的な処理が可能である。
【0060】
従って、第1同期化ユニット234B〜Cと、第2同期化ユニット230B〜Cは同様な機能的特徴を共用する。DUTモードでは同期化ユニットのいずれかが非同期事象を検出し、これをDUTクロックと同期化させる。各チップのCPU238、DMAユニット136およびメモリ制御ユニット134へのこの同期化された非同期事象の提供は、DUTモードチップによって制御される。DUTモードチップの変化検出ユニット958Cは第2同期化器のラッチ960B〜Cをいつイネーブルするかを制御する。
【0061】
MONITORモードおよびDUTモードのチップ110B〜Cのそれぞれの第1同期化ユニット234B〜Cは、第2同期化ユニット230B〜Cに類似した作動上の機能、例えば同期化およびラッチ機能を共用する。当業者には明らかとなるように、これら同期化およびラッチ機能は、記憶および転送回路および簡単なホールド回路を含む種々の電気的回路を使って実現できるが、これら電気的回路はこれら回路のみに限定されるものではない。
【0062】
DUTモードデバイスにおける第1および第2同期化ユニットはパラレルに独立して作動する。デバッグバス140上のDMA情報に対するタイムスロットのリザーブは第1同期化ユニット内全体で処理される。
【0063】
コード化された事象バス
コード化された事象デバッグバス140上ですべての信号が符号化され、多重化される。コーディングおよび多重化はDUTモードとなっているコーデック132Cによって実行され、デコーディングおよび逆多重化はモニタモードとなっているコーデック132A〜Bによって実行される。このデバッグシステムは次のように作動する。電源がオンにされると、附勢されるRESET信号によりDUTモードのデバッグチップ110cだけでなくMONITORモードチップ110A〜Bがリセットされる。本発明の一実施例ではRESET信号が附勢されると、MONITORモードチップ110A〜Bはデバッグバス140にイネーブル信号に発生し、DUTモードデバッグチップ110Cにそのコーデックのデバッグバス140Cをイネーブルにすることを伝える。一方、DUTモードのデバッグチップ110Cの第2同期化ユニット230Cはリセット信号RESETを同期化させる。この後者の機能は上記とは異なり、図示していない専用同期化ユニットによって行ってもよい。次に、RESETが除勢されると、モニタ100はイネーブル信号をオフにする。その後、DUTモードのデバッグチップ110Cは同期化されたリセット信号をモニタ100へ送り、モニタ100は次にその内部クロックとDUTモードのデバッグチップ110Cのクロックとを同期化させる。本発明の一実施例では、内部クロックでは明示していないクロック逓倍手段により20MHzの基本周波数を200MHzまで逓倍することによって内部クロックを発生できる。この逓倍手段はPLL回路を含むことができる。
【0064】
ロジックアナライザ
MONITORモードチップ110A〜Bからロジックアナライザ102により抽出される情報、例えばローカルバスデータ、ローカルバスアドレスだけでなく、非同期事象、DMAアクセスおよびインタラプトは、例えばコンピュータ104に容易に読み取りできるようにディスプレイすべきである(図1参照)。本発明の一実施例では、このロジックアナライザはネットワークを通してアナライザを遠隔モニタできるようにするネットワーク接続を含むことができる。更に、情報を提供するためのウェブサーバーまたはネットワーク106上に表示するためのウェブブラウザとしてワークステーションを使用することもできる。更に、このような構造により、ネットワークを通し、デバッグ方法全体を制御するために汎用コンピュータ104を使用することが可能となる。従って、このコンピュータはデバッグ中のプログラムの異なる部分をテストするようDUTモードのデバッグチップ110Cに異なる刺激を与えるために使用される。このようなアナライザシステムの好ましい解決案により、通常のロジックアナライザと比較して比較的簡単で安価なロジックアナライザを使用できるという利点が得られる。この理由はデータ処理の主要部分がロジックアナライザ102からコンピュータ104へ切り替えられているからである。データ処理のための適当な一般的ソフトウェアおよび結果を表示するための適当な一般的ソフトウェアを使用することにより、デバッグ操作のために汎用コンピュータを容易かつ効率的に使用することが可能となる。
【0065】
以上で本発明の好ましい実施例を参照し、本発明について詳細に図示し、説明したが、当業者であれば本発明の精神および範囲から逸脱することなく、形態および細部を種々に変更できることが理解できよう。次にこれらの例について検討する。
【0066】
サーキットボードにメモリユニットを組み込む代わりに、そのサーキットボードでメモリユニットを設けず、むしろ外部接続可能なメモリユニットを使用したり、チップ上のキャッシュメモリを除き、メモリを設けないようにすることも可能である。
【0067】
別の変更例は、アナライザ装置に異なるどの出力信号を与えたいかに応じて、モニタモードの1つのチップを設けたり、または3つ以上のチップを設けたりすることである。
【0068】
更に、アドレスおよびデータ信号の他にロジックアナライザに別の信号、例えばCPUのステータス信号、またはCPU、DMAユニット等の内部ステートを出力することができる。
【0069】
更に別の実施例では、DMAユニットをチップに集積化するのではなく、チップの外部に設けることもできる。
【0070】
本願は、「デバッグ能力が高められたコンピュータチップおよび装置」を発明の名称として1998年5月13日に出願されたスウェーデン特許出願第9801678-5号に基づく優先権を主張するものである。
【図面の簡単な説明】
【図1】デバッグ能力を備えたチップを利用するテストコンフィギュレーションのハードウェアブロック図である。
【図2】図1に示されたチップの詳細なハードウェアブロック図である。
【図3】図1〜2に示されたデバッグチップのローカルバススイッチ部分の拡張ハードウェアブロック図である。
【図4】図1に示されたデバッグバス140の信号ラインを示す。
【図5】図1〜2に示されたデバッグチップのメモリ制御ユニットとメインメモリとの間のインターフェースの詳細なハードウェアブロック図である。
【図6】図1〜2に示されたデバッグチップと低速の周辺デバイスとの間のインターフェースを示すブロック略図である。
【図7】図1〜2に示されたデバッグチップ内でのインタラプト処理を示すブロック略図である。
【図8】図1に示されたデバッグチップの同期化ユニットを示す。
【符号の説明】
98 コンピュータシステム
100 モニタ
102 ロジックアナライザ
104 コンピュータ
106 ネットワーク
110C チップ
108 パワーオンリセット
120 発振器
112 システムハードウェア
114 メモリ
116 入出力(I/O)ユニット
118 パワーオンリセット
130C ローカルバス130C
132C コーデックユニット
134C メモリ制御ユニット
136C 第1ローカルバスデバッグスイッチ
Claims (21)
- 少なくとも1つの同期化されたユニットと、相互接続されたCPUおよびキャッシュシステムとが、上部に集積化されたコンピュータチップであり、該チップが少なくとも2つの異なる作動モードのうちのいずれかのモードに設定可能であり、第1のモードがDUTモードであり、第2のモードがMONITORモードであり、該MONITORモードと前記DUTモードとが相補的であり、チップと別の同一のチップとが相補的モードにある間、これらチップをパラレルに作動できるようにする信号を送ることができるよう、別の同一のチップに接続可能なデバッグバスを含み、前記信号が前記同期化ユニットによって発生される同期化信号を含むコンピュータチップ。
- アドレスバス部分およびデータバス部分を含むメモリバスに接続されたメモリコントローラを更に含み、前記モニタモードが少なくとも2つの異なるテストモードを含み、前記メモリコントローラがそれぞれの異なるテストモードに対しアドレスバス部分上に異なるタイプのデータを出力できるようにするモード設定回路を含む、請求項1記載のコンピュータチップ。
- 前記モード設定回路が多重化回路を含み、該多重化回路の出力端がメモリバスのアドレスバス部分に接続されており、多重化回路の第1入力端がチップ内通信のための通信手段内に設けられたアドレスバス部分に接続されており、第2入力端が前記通信手段内に設けられたデータバス部分に接続されており、前記多重化回路が前記テストモードのうちの第1モードにある時、前記第1入力端を前記出力端に接続し、前記テストモードの第2モードにある時、前記第2入力端を前記出力端に接続する、請求項2記載のコンピュータチップ。
- デバッグバス上で通信される前記信号が更にCPUおよびDMAユニットのステータス情報を更に含む、請求項1記載のコンピュータチップ。
- 前記同期化信号がチップにより受信される外部非同期信号に関する同期化情報を搬送する信号およびインタラプトに関する同期化信号を搬送する信号を含む、請求項1記載のコンピュータチップ。
- 少なくとも1つの同期化ユニットと、すべてが相互に接続されたCPUと、キャッシュシステムと、DMAユニットと、メモリコントローラとが上部に集積化されたメインチップを含み、該チップが少なくとも2つの異なる作動モードのうちのいずれかのモードに設定可能であり、第1のモードがDUTモードであり、第2のモードがMONITORモードであり、該MONITORモードと前記DUTモードとが相補的であり、前記メインチップが相補的なモードとなっている間、コンピュータ装置と別のコンピュータ装置をパラレルに作動させることができる信号を送るための、同一のメインチップを含む別のコンピュータ装置に接続可能なデバッグポートを更に含む、コンピュータ装置。
- 第1コンピュータ装置および第2コンピュータ装置を含み、これらコンピュータ装置の各々がメインチップを含み、該メインチップが少なくとも1つの同期化ユニットと、すべてが相互に接続されたCPUと、キャッシュシステムと、DMAユニットと、メモリコントローラとが上部に集積化されたメインチップを含み、各チップが少なくとも2つの異なる作動モードのうちの1つのモードに設定可能であり、第1モードがDUT作動モードであり、第2モードがMONITORモードであり、該MONITORモードとDUT作動モードとが相補的であり、各コンピュータ装置が更にデバッグポートを含み、該デバッグポートにより前記第1コンピュータと第2コンピュータとが相互に接続されており、第1コンピュータのメインチップがDUTモードに設定され、第2コンピュータのメインチップがMONITORモードに設定されており、第1コンピュータがこの第1コンピュータ装置のメモリコントローラから引き出された第1メモリバスを含み、第2コンピュータ装置のメモリコントローラが第2コンピュータのメモリコントローラから引き出された第2メモリバスを通して少なくとも部分的に第1メモリに接続されているデバッグシステム。
- 前記第2メモリバスのアドレスバス部分に接続されたロジカルアナライザを更に含む、請求項7記載のデバッグシステム。
- 前記ロジカルアナライザがオペレータのコンピュータのウェブサーバーに接続可能なネットワークインターフェースを有する、請求項8記載のデバッグシステム。
- 前記第2コンピュータが他のチップに同一であり、MONITORモードに設定される少なくとも1つの別のチップを含み、前記ロジカルアナライザが前記別のチップのメモリコントローラから引き出された別のメモリのアドレスバス部分に接続されており、MONITORモードが少なくとも2つの異なるテストモードを含み、前記少なくとも2つのMONITORモードのチップが異なるテストモードに設定されており、それぞれのアドレスバス部分に異なる情報を出力する、請求項8記載のデバッグシステム。
- チップおよびアドレスピン、データピンおよびチップとインターフェースするためのクロックピン上で処理を実行するよう、相互に結合された内部部品を含む集積回路チップに組み込むためのデバッグ回路であって、
該デバッグ回路が、入力端、出力端および制御接続部を備えたデバッグスイッチを含み、前記入力端が前記内部部品の所定の部品に結合されており、前記出力端がアドレスピンに接続されており、前記制御接続部がチップとインターフェースするためのモード選択ピンに結合されており、該デバッグスイッチがアドレスピンにてチップ上の処理をモニタできるよう、入力端のうちの1つを出力端に結合するよう、モード選択ピン上のモード信号に応答自在であるデバッグ回路。 - 入力端、出力端および制御接続部を備えた同期化回路を更に備え、前記制御接続部が前記モード選択ピンに結合され、前記入力端が非同期信号ソースに結合され、前記出力端が内部部品のうちの少なくとも1つに結合されており、前記同期化回路が第1コンフィギュレーションを採用するように、モード選択ピンにおける第1モード選択信号に応答自在であり、前記第1コンフィギュレーションにおいて、信号ソースからの前記非同期信号をラッチし、入力端における信号変化がない時間中、デバッグバスにイネーブル信号を出力し、処理のためのチップの内部部品に前記非同期信号をリリースするよう、該非同期信号をアンラッチするようになっている、請求項11記載のデバッグ回路。
- 入力端、出力端および制御接続部を備えた同期化回路を更に備え、前記制御接続部が前記モード選択ピンに結合され、前記入力端が非同期信号ソースに結合され、前記出力端が内部部品のうちの少なくとも1つに結合されており、前記同期化回路が第2コンフィギュレーションを採用するように、モード選択ピンにおける第2モード選択信号に応答自在であり、前記第2コンフィギュレーションにおいて、信号ソースからの前記非同期信号をラッチし、デバッグバスにおけるイネーブル信号に応答し、処理のためのチップの内部部品に前記非同期信号をリリースするよう、該非同期信号をアンラッチするようになっている、請求項12記載のデバッグ回路。
- 入力端、出力端および制御接続部を備えた同期化回路を更に備え、前記制御接続部が前記モード選択ピンに結合され、前記入力端が非同期信号ソースに結合され、前記出力端が内部部品のうちの少なくとも1つに結合されており、前記同期化回路が第1コンフィギュレーションを採用するように、モード選択ピンにおける第1モード選択信号に応答自在であり、前記第1コンフィギュレーションにおいて、信号ソースからの前記非同期信号をラッチし、デバッグバスにおける非同期信号に対応するコード化された信号を出力し、処理のためのチップの内部部品に前記非同期信号をリリースするよう、該非同期信号をアンラッチするようになっている、請求項11記載のデバッグ回路。
- 入力端、出力端および制御接続部を備えた同期化回路を更に備え、前記制御接続部が前記モード選択ピンに結合され、前記入力端が非同期信号ソースに結合され、前記出力端が内部部品のうちの少なくとも1つに結合されており、前記同期化回路が第2コンフィギュレーションを採用するように、第2モード選択信号に応答自在であり、前記第2コンフィギュレーションにおいて、デバッグバスのコード化された信号を受信し、このコード化された信号をデコードし、デコードされた信号をラッチし、所定の遅延時間後、処理するためのチップの内部部品にデコードされた信号をリリースするよう、デコードされた信号をアンラッチするようになっている、請求項14記載のデバッグ回路。
- 集積回路チップ上の内部部品がデータと、デジタル信号と、グラフィック信号、ビデオ信号、オーディオ信号、パターン認識信号およびプログラマブルロジックから成る処理の群のうちの少なくとも1つを実行する、請求項11記載のデバッグチップ。
- プロセッサと、キャッシュメモリと、メモリコントローラユニットと、チップおよびアドレスピン、データピンおよび前記チップとインターフェースするためのクロックピン上で処理を実行するよう前記プロセッサ、前記キャッシュメモリおよび前記メモリコントローラユニットを互いに結合するローカルバスとを含む集積回路チップに組み込むためのデバッグ回路であって、
入力端、出力端および制御接続部を備えたデバッグスイッチを含み、前記入力端が前記メモリコントローラユニット、前記ローカルバスのデータ部分および前記ローカルバスのアドレス部分に結合されており、出力端がアドレスピンに接続されており、前記制御接続部が前記チップとインターフェースするためのモード選択ピンに結合されており、該デバッグスイッチがモード選択ピン上のモード信号に応答し、入力端のうちの1つを出力端に結合し、アドレスピンにおいてチップ上の処理をモニタするようになっているデバッグ回路。 - プログラムコードの実行中にチップの内部ステートをモニタするためのテスト装置であって、
アドレスピンおよびデータピンを備え、プログラムコードを記憶するのに適したアドレス指定可能なメモリと、
同一の第1チップおよび第2チップを含み、各チップがその上で処理を実行するよう、互いに結合された内部部品と、アドレスピンおよびデータピンを含む、各チップとインターフェースするためのピンと、前記アドレスピンに2つの入力端のいずれかを結合するためのデバッグスイッチを含み、第1チップのアドレスピンが内部部品のうちのアドレス発生部品に前記デバッグスイッチを介して結合されており、前記第2チップのアドレスピンが内部部品の別の部品に関連する処理をモニタするよう、内部部品の別の部品に前記デバッグスイッチを介して結合されており、
アドレス部分およびデータ部分を含み、前記アドレス部分が前記第1チップおよび前記アドレス指定可能なメモリの前記アドレスピンに結合されており、データ部分が前記第1チップ、前記第2チップおよび前記アドレス指定可能なメモリのデータピンに結合されているシステムバスを更に含むテスト装置。 - 前記第1チップ上のプログラムコードの実行と、前記第2チップ上のプログラムコードの実行とを同期化させるための手段を更に含む、請求項18記載のテスト装置。
- 前記第2チップの前記アドレスピンをモニタし、前記内部部品の別の部分に関連した処理をモニタするための手段を更に含む、請求項18記載のテスト装置。
- 前記第1チップおよび前記第2チップの対応する前記デバッグスイッチが、前記第1チップおよび前記第2チップの対応するチップの前記アドレスピンを前記内部部品の前記アドレス発生部品に結合するよう、モード選択ピン上の第1モード信号に応答自在であり、前記第2チップの前記アドレスピンを内部部品の別の部品に結合し、前記アドレスピンにおいてチップ上の処理をモニタするよう、前記モード選択ピン上の第2モード信号に応答自在である、請求項18記載のテスト装置。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE9801678A SE9801678L (sv) | 1998-05-13 | 1998-05-13 | Datorchip och datoranordning med förbättrad avlusningsförmåga |
US9801678-5 | 1999-02-01 | ||
US241204 | 1999-02-01 | ||
US09/241,204 US6502209B1 (en) | 1998-05-13 | 1999-02-01 | Chip with debug capability |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000010814A JP2000010814A (ja) | 2000-01-14 |
JP4197798B2 true JP4197798B2 (ja) | 2008-12-17 |
Family
ID=26663302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP13332699A Expired - Lifetime JP4197798B2 (ja) | 1998-05-13 | 1999-05-13 | デバッグ能力を有するチップ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4197798B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115220978B (zh) * | 2022-09-19 | 2023-02-03 | 瀚博半导体(上海)有限公司 | 包括在线调试模式的芯片启动方法和装置、芯片和设备 |
CN117347839B (zh) * | 2023-12-05 | 2024-03-12 | 飞腾信息技术有限公司 | 芯片测试电路及芯片 |
-
1999
- 1999-05-13 JP JP13332699A patent/JP4197798B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2000010814A (ja) | 2000-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6502209B1 (en) | Chip with debug capability | |
US6145100A (en) | Debug interface including timing synchronization logic | |
US6189140B1 (en) | Debug interface including logic generating handshake signals between a processor, an input/output port, and a trace logic | |
US6142683A (en) | Debug interface including data steering between a processor, an input/output port, and a trace logic | |
US6154856A (en) | Debug interface including state machines for timing synchronization and communication | |
JP3175757B2 (ja) | デバッグシステム | |
US6175914B1 (en) | Processor including a combined parallel debug and trace port and a serial port | |
JP3913470B2 (ja) | システムlsi | |
US6041406A (en) | Parallel and serial debug port on a processor | |
US4028675A (en) | Method and apparatus for refreshing semiconductor memories in multi-port and multi-module memory system | |
EP0636976B1 (en) | Microcontroller provided with hardware for supporting debugging as based on boundary scan standard-type extensions | |
JP4335999B2 (ja) | プロセッサ内蔵半導体集積回路装置 | |
US5084814A (en) | Data processor with development support features | |
US4112490A (en) | Data transfer control apparatus and method | |
US6591369B1 (en) | System and method for communicating with an integrated circuit | |
KR880001401B1 (ko) | 데이타 처리 시스템의 공통 버스 이용검출 논리회로 | |
JP3998303B2 (ja) | Tapコントローラを有する集積回路 | |
JPH02287635A (ja) | マイクロコンピュータ,マイクロプロセッサおよびコア・プロセッサ集積回路用デバッグ周辺装置 | |
KR100462177B1 (ko) | 주변 장치의 동작 상태를 실시간으로 백업할 수 있는엠베디드 컨트롤러 | |
US5678003A (en) | Method and system for providing a restartable stop in a multiprocessor system | |
US5900014A (en) | External means of overriding and controlling cacheability attribute of selected CPU accesses to monitor instruction and data streams | |
US6643796B1 (en) | Method and apparatus for providing cooperative fault recovery between a processor and a service processor | |
US5515530A (en) | Method and apparatus for asynchronous, bi-directional communication between first and second logic elements having a fixed priority arbitrator | |
US6877113B2 (en) | Break determining circuit for a debugging support unit in a semiconductor integrated circuit | |
US5758059A (en) | In-circuit emulator in which abrupt and deferred arming and disarming of several events on a microprocessor chip are controlled using a single-input pin |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051004 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080902 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080930 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111010 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111010 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121010 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131010 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |