(57)【特許請求の範囲】
【請求項１】
プロセッサ素子、メモリインターフェース素子、ＩＯインターフェース素子、デバッグサポート素子および上述した素子全部を相互接続する内部バスを具えるマイクロプロセッサにおいて、
前記マイクロプロセッサ内の１つ以上の走査チェインをアクセスする、上記内部バスに取付けられたレジスタ付き境界走査規格（ＪＴＡＧ）インターフェース素子を有し、
前記ＪＴＡＧインターフェース素子は、前記マイクロプロセッサ上で実行されるソフトウェアのデバッグのため、前記内部バスに接続された他の複数の素子との該内部バスを経るＤＭＡ型の交換を制御することを特徴とするマイクロプロセッサ。
【請求項２】
前記ＤＭＡ型の交換を制御するためのＤＭＡ制御部が前記ＪＴＡＧインターフェース素子が備える命令レジスタに結合されることを特徴とする請求項１に記載のマイクロプロセッサ。
【請求項３】
前記ＪＴＡＧインターフェース素子が備えるテストデータ入力端子ＴＤＩと前記ＪＴＡＧインターフェース素子が備えるテストデータ出力端子ＴＤＯとの間に前記ＤＭＡ制御部が備えるＤＭＡデータレジスタが結合されることを特徴とする請求項１又は２に記載のマイクロプロセッサ。
【請求項４】
前記ＪＴＡＧインターフェース素子は、情報を外部ステーションに対し双方向にダウンロードすることを可能にすることを特徴とする請求項１、２又は３に記載のマイクロプロセッサ。
【請求項５】
前記デバッグサポート素子は、前記内部バスの外部で前記プロセッサ素子に直接接続されることを特徴とする請求項１乃至４の何れか１項に記載のマイクロプロセッサ。
【請求項６】
前記ＪＴＡＧインターフェース素子は、１つ以上のブレークポイントレジスタに直接アクセスすることを特徴とする請求項１乃至５の何れか１項に記載のマイクロプロセッサ。
【請求項７】
前記デバッグサポート素子は、前記マイクロプロセッサの外部のトレースバッファに直接アクセスすることを特徴とする請求項１乃至６の何れか１項に記載のマイクロプロセッサ。
【請求項８】
前記デバッグサポート素子は前記プロセッサ素子により発生する非逐次アドレスの内容の制限されたセットを収納するとともに前記マイクロプロセッサの制限時間作動に対する次の記憶モード、即ち、非逐次アドレスの全部の記憶および／またはコール、ジャンプおよびトラップアドレス全部の記憶、あるいは任意の適宜の選択またはその一部分の少なくとも１つを可能とする内部バッファメモリを含むことを特徴とする請求項１乃至７の何れか１項に記載のマイクロプロセッサ。
【請求項９】
前記デバッグサポート素子は前記プロセッサ素子により発生する非逐次アドレスの内容の制限されたセットを収納するとともに前記マイクロプロセッサの制限時間作動に対する次の記憶モード、即ち、非逐次アドレスの全部の記憶および／またはコール、ジャンプおよびトラップアドレス全部の記憶、あるいは任意の適宜の選択またはその一部分の少なくとも１つを可能とする内部バッファメモリを含み、前記デバッグサポート素子は、前記マイクロプロセッサの外部の前記トレースバッファにイベント信号を記憶のために出力するために、前記マイクロプロセッサの外部の前記トレースバッファへの、シリアルクロックにより制御されるデータパスを介して、前記マイクロプロセッサの外部にインターフェースすることを特徴とする請求項７に記載のマイクロプロセッサ。
【請求項１０】
前記マイクロプロセッサの外部の前記トレースバッファのローディングを制御するように特定の命令（ＷＲ  ＡＳＲ３１）が構成されることを特徴とする請求項９に記載のマイクロプロセッサ。
【請求項１１】
前記マイクロプロセッサの外部の前記トレースバッファは、任意のワードを記憶するとともに実時間スタンプ表示をも記憶するように構成されることを特徴とする請求項９または１０に記載のマイクロプロセッサ。
【請求項１２】
前記ＪＴＡＧインターフェース素子は、情報を外部ステーションに対し双方向にダウンロードすることを可能にし、前記マイクロプロセッサの外部の前記トレースバッファは、他の規格インターフェースを経てデータを規格ワークステーションまたはパーソナルコンピュータである前記外部ステーションに出力するように構成されることを特徴とする請求項９，１０または１１に記載のマイクロプロセッサ。
【請求項１３】
前記デバッグサポート素子は、前記マイクロプロセッサの外部のトレースバッファに直接アクセスし、前記マイクロプロセッサの外部の前記トレースバッファは、他の規格インターフェースを経てデータを規格ワークステーションまたはパーソナルコンピュータに出力するように構成されることを特徴とする請求項１，２または３に記載のマイクロプロセッサ。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明はプロセッサ素子、メモリインターフェース素子、ＩＯインターフェース素子、デバッグサポート素子および上述した素子全部を相互接続する内部バスを具えるマイクロプロセッサに関するものである。
【０００２】
【従来の技術】
かかるマイクロプロセッサは一般に計算、制御、信号処理等の環境でコンピュータプログラムを実行するために用いられている。
【０００３】
【発明が解決しようとする課題】
プログラムはデバッギング操作中エラーその他の誤動作をチェックする必要がある。これはマイクロプロセッサバスを経て転送されたアドレスの全部を順次記録することによってしばしば行われる。この記録は内部バスを直接モニタすることによって、またはかかるアドレスを次の出力またはチェックのためにかかるアドレスを任意にロッギングすることによって行うことができる。かかる手続きはステップ順次作動に著しく時間を要し、或は又、多数の追加のマイクロプロセッサピンを経て広範なアクセス可能性を必要とする。さらに、多量の発生データのため実時間のモニタを実行するのが編成レベルで困難である。
【０００４】
本発明の目的は上述した経費の要求を低減し、且つ現在複雑な集積回路の大部分に導入されるいわゆる境界走査規格機能の使用により機能性を改善し得るようにしたマイクロプロセッサを提供せんとするにある。
【０００５】
【課題を解決するための手段】
本発明はプロセッサ素子、メモリインターフェース素子、ＩＯインターフェース素子、デバッグサポート素子および上述した素子全部を相互接続する内部バスを具えるマイクロプロセッサにおいて、前記マイクロプロセッサ内の１つ以上の走査チェインをアクセスする、上記内部バスに取付けられたレジスタ付き境界走査規格（ＪＴＡＧ）インターフェース素子を有し、前記ＪＴＡＧインターフェース素子は、前記マイクロプロセッサ上で実行されるソフトウェアのデバッグのため、前記内部バスに接続された他の複数の素子との該内部バスを経るＤＭＡ型の交換を制御することを特徴とする。
【０００６】
【作用】
境界走査規格、即ち、ＪＴＡＧ規格はＩＥＥＥ規格１１４９．１に、特に本願人による英国特許第2,195,185 号、対応する米国特許願第07/90489号に広範に記載されている。原理的には、この規格はボードレベルテストを機能させると考えられているが、単一集積回路のレベルでは多くの利点を提供するとともに結果として、以下便宜上ＪＴＡＧ規格と称する。この規格によれば最小テストインターフェースは１つの直列データ入力ピン、１つの直列データ出力ピン、テストクロックピンおよびテスト制御ピンを有する。追加のリセットピンは任意である。この規格によれば、外部同期化のもとで、まず最初、制御パターンを回路にロードし、このパターンをこの回路のアドレス指定に良好に用いることができる。この規格によれば、次いでテストパターンを入力レジスタにロードする。回路の通常の作動の主インターバル後、テスト結果を出力レジスタから出力し、これを次のテストパターンの導入に優先させるようにする。種々の追加の特徴が提案されている。前記規格の特定の特徴はシリアル入力およびシリアル出力間を１ビームバイパス接続することである。デバッギングを実行するために、１つ以上のデータレジスタをオンチップバスとシリアルＪＴＡＧインターフェースとの間に相互接続する。斯様にしてＪＴＡＧインターフェースに好適な４つまたは５つの追加のピンを通常の回路に機能的に追加する必要がある。これ自体によってダイレクトメモリアクセス（ＤＭＡ）の特徴はマイクロプロセッサ環境における機能的な規格である。
【０００７】
本発明によれば、ＪＴＡＧインターフェースによってシリアルフリップフロップより成る種々の走査チェーンをアクセスすることができる。さらに、これら走査チェーンの多数の好適に配列された走査チェーンを経て、ＪＴＡＧインターフェースはオンチップバスにスレーブとして接続し得るオンチップ機能ユニットの全部に対しダイレクトメモリアクセスＤＭＡを実行することができる。例えば、ＪＴＡＧはＬＯＡＤ，ＣＨＡＮＧＥ，ＩＮＳＰＥＣＴ，ＢＯＯＴその他の操作を行うＲＡＭメモリをアクセスすることができる。同様に、ＲＯＭメモリをアクセスすることもできる。同様に、ＳＥＴおよびＩＮＳＰＥＣＴ操作を行うブレークポイント操作をアクセスすることができる。同様に、命令を記録する外部イベントトレースバッファメモリをアクセスすることができる。デザイナーの要求に従って、種々の他の素子、例えば、カウンタ、タイマ、ＦＩＦＯ蓄積、制御レジスタその他の素子をアクセスすることができる。これら素子の全てはソフトウエアによっても操作し得るため、ＪＴＡＧインターフェースによりこれら素子をアクセスすることはデバッギング、トレーシング、および他のテストサポート機構の作動を行う優れた機構である。上述した結果として、プロセッサ素子はデバッグサポート素子および種々の走査チェーン間の通信中その作動を保持する必要はない。
【０００８】
前記ＪＴＡＧインターフェース素子によって外部ステーションにより通信される情報をダウンロードし得るようにするのが有利である。このダウンローディング処理は種々のコンピュータ言語に広く用いられている所から既知のピークおよびポーク基本命令に基づくものであり、従ってメモリをアクセスし、これを新たな情報で迅速に充填する。
【０００９】
前記デバッグサポート素子は前記内部バスの外部で前記プロセッサ素子に直接接続されるのが有利である。この閉成相互接続によってバスサイクル時間を必要とすることなく容易にスクラッチを行うようにする。斯様にしてデバッグサポート素子に位置するトレースバッファはプロセッサ素子から直接充填することができる。
【００１０】
前記ＪＴＡＧインターフェース素子によって１つ以上のブレークポイントレジスタに直接アクセスし得るようにするのが有利である。これによって規格走行速度を維持しながら次のエレベーションに対する走行時間にこれらレジスタをロードし得るようにする。
【００１１】
前記デバッグサポート素子は前記処理素子により発生する非逐次アドレスの内容の制限されたセットを収納するとともにマイクロプロセッサの制限時間作動に対する次の記憶モード、即ち、非逐次アドレスの全部の記憶および／またはコール、ジャンプおよびトラップアドレス全部の記憶、あるいは任意の適宜の選択またはその一部分の少なくとも１つを可能とする内部バッファメモリを含むようにするのが有利である。これは、アドレスの適宜の一部分、特にこれらアドレスの相対的に最も臨界的なアドレスが保持される限り、僅かなハードウエアのみを必要とするデバッグ操作の広いスぺクトルを表わす。
【００１２】
特に本発明はＳＰＡＲＣマイクロプロセッサに対し有利な機能的展開と見なすことができるが、その適用はこの特定な型に限定されるものではない。
【００１３】
【実施例】
図１はイベントトレーシング用基本ハードウエアを設けたマイクロコントローラまたはマイクロプロセッサを有するデバッギング環境を示す。このマイクロプロセッサ２０はそのシステムＲＡＭメモリ２６とともにターゲットボード２４上に設置する。このマイクロコントローラ２０には、ＪＴＡＧボードコネクタ２８および相互接続部３４を経てそれ自体がＪＴＡＧインターフェースカード３０を有するホストワークステーション３２に接続された境界走査、即ち、ＪＴＡＧデバッグインターフェース４６を設ける。ＪＴＡＧインターフェースカード３０は複数のＪＴＡＧ相互接続部３６にインターフェースすることができる。マイクロコントローラ２０はオンチップシステムバス４８を有し、これによりＪＴＡＧデバッグインターフェース４６、オンチップトレースメモリ５８付きデバッグサポートユニット５６、キャッシュメモリ６０付き処理素子、メモリインターフェース６２のような種々のサブシステムおよびＩＯインターフェース素子のような種々の他の名前を付さないサブシステム５０−５４間を相互接続する。相互接続部６４によってデバッグサポートユニット５６を、シリアル−パラレルコンバータ４２、イベントトレースメモリ４０を有し、ソース（図示せず）から時間スタンプを受けるテストプローブまたは論理解析器に接続する。ＪＴＡＧに基づく相互接続部３６を経てイベントトレースメモリ４０をホストワークステーション３２に接続する。システムＲＡＭ２６は記号的に示されるデバッグトレースベクトルによりアドレス指定されるデバッグ区分４４を含む。最後にデバッグサポートユニット５６およびＪＴＡＧインターフェース４６間には直接相互接続部５７を設ける。
【００１４】
シリアル出力６４は１ビット幅のデータ経路とＣＬＫＯＵＴを有し、ソフトウエアの汎用フローを示し、マルチタスクシステムのタスク待ち時間を識別し、デバッギングに特に興味のあるソフトウエア区分を識別し、且つソフトウエアの制御のもとで外部論理解析器のハードウエアをトリガするような、ソフトウエアまたはハードウエアトリガされたイベントの発生時にリアルタイム情報を供給する。本発明によれば、イベントトレース機能は命令アドレスを有するトレース再構成を粗く供給する必要はなく、埋設されたリアルタイムソフトウエアの時間特性に良好な総覧を与える。これがタイミングの解析および性能測定に対し有効である。
【００１５】
シリアルイベント情報は０・・・１６ビットデータパケット＋スタートおよびストップ状態信号である。並列データパケットは時間スタンプと相俟って循環アドレス計数器を有するイベントトレースメモリ４０に記憶する。分離従って示されていないＣＬＫＯＵＴ信号はこれによって同期化を奏し、且つマイクロコントローラのクロックパルスのサブハーモニックとすることができる。イベントは何らの制限なく次の３つの場合、即ち、特定の特権のない命令の実行、トラップおよび／またはインターラプトのエントリおよびデバッグ条件比較レジスタによる整合時に生じる整合点によってトリガすることができる。ＳＰＡＲＣマイクロコントローラにより実現時に、いまだ使用していない特権のない命令ＷＲ  ＡＳＲ３１をイベントトリガとして用いる。即ち、そのオプコードフィールドは１３ビット即時オぺランドを内蔵し、その値はソフトウエアの開発中手動で、または各個別のサブルーチンに対しプロローグ／エピローグ機構を経てコンパイル時に自動的に規定する。ＷＲ  ＡＳＲ３１命令の実行は１クロックサイクルのみに対しＩＵパイプラインを占めるようになる。多くの場合これは極めて僅かであり、従ってデバッグ命令は最終コードから除去する必要はない。他のハードウエアプラットホーム同様の特徴を必要とする。
【００１６】
上述した所はデバッギング用のＪＴＡＧインターフェースの二重の使用について説明した。機能を高めるためには２つのオプションピンを追加することができる。このインターフェースの二重の使用は基本的特徴を実現する僅かに余分のオンチップハードウエア区域を必要とするのみであるが、容易に説明することができる。これら基本的特徴は次の通りである。
・ＪＴＡＧによって容易にホスト−ターゲット通信を行う。
・ソフトウエアブレークポイントを設ける。
・ハードウエア単一ステップ
・外部ブレークの要求およびホストからの制御をリセット
【００１７】
いくつかの有効な拡張は次の通りである。
・命令アドレス、データアドレス、データ記憶値および範囲のハードウエアブレークポイント
・粗いトレースの種々の異なるレベルでの命令アドレストレースのオンチップメモリ
・イベント識別を含むシリアルリアルタイムイベントトレース出力機能
【００１８】
ターゲットプロセッサ側のＪＴＡＧデバッグインターフェースブロックによってホストシステムによりビットシーケンスに読出し且つ書込み得るデバッグ通信の目的の内部データレジスタＤＭＡ−ＡＤＤＲ，ＤＭＡ−ＤＡＴＡ，ＤＭＡ−ＣＯＮＴＲＯＬ−ＳＴＡＴＵＳを提供する。これらのレジスタによりインターフェースブロックは外部ＪＴＡＧバスおよびオンチップシステムバス間を機能的にブリッジする。オンチップバスシステムに接続された任意のメモリマップスレーブ型装置はホストシステムからブリッジを経てアクセスすることができる。これがため、ホストシステムはターゲットシステムの任意のメモリマップソースに対しダイレクトメモリアクセス（ＤＭＡ）を行うことができる。ＤＭＡ−ＡＤＤＲレジスタはＤＭＡアクセス前にターゲットアドレスで初期化する必要がある。ＤＭＡ−ＤＡＴＡレジスタは書込みアクセスを初期化し得る前に書込みデータで初期化する必要がある。ＤＭＡ−ＲＥＡＤアクセス後ＤＭＡ−ＤＡＴＡレジスタは読出しデータを含む。ＤＡＴＡ−ＣＯＮＴＲＯＬ−ＳＴＡＴＵＳレジスタによって次の制御機能を呈する：
・ＤＡＴＡアクセス型（読出し／書込み、ＡＳＩ−制御スペース、バイト−ハーフワード選択）を選択する
・ＤＡＴＡアクセスを開始する
・ＤＡＴＡ特徴の排他的ＪＴＡＧ使用に対しシステムをロックする。
・ＤＭＡ−ＡＤＤＲレジスタ内容の自動増大
・システムＲＥＳＥＴを強制的に行う
・外部デバッグブレークまたはトラップ要求を出す
・ホスト−ターゲットモニタ通信プロトコルのためのハンドシェイクフラグ
斯様にして通信プロトコルおよびダイレクトメモリアクセス機能間の共働を達成することができる。これらレジスタは良好に規定され、且つ地理学的に密集している。ＤＭＡはシステムクロックよりも異なるクロックＴＣＫにより同期化され、且つシステムクロックが待機状態にある際のように使用し得ない場合でもレジスタアクセスを実行することができる。また、テストクロックＴＣＫはシステムクロックよりも充分遅くすることができる；（図３、符号９６，９８参照）。これらの編成概要によって制御ソフトウエアを良好に設計することができる。その理由は関連する情報の全部がＤＭＡ走査チェーン内に存在するからである。
【００１９】
ＤＭＡ−ＣＯＮＴＲＯＬ−ＳＴＡＴＵＳレジスタの読出し時にホストシステムに対し次の状態情報を可視状態とすることができる。
・双方向ホスト−ターゲットモニタ通信プロトコルのＤＭＡビジーおよびハンドシェイクフラグ
・プロセッサエラーまたは電力ダウンのような状態を示すブレーク状態および    状態フラグ
【００２０】
実際上、ＪＴＡＧインターフェースに独立ＴＲＳＴＮリセットラインを設ける場合には、ターゲットシステムを運転状態に保持したままＤＭＡレジスタをリセットすることができる。最も興味のある作動モードはプロセッサをリセット状態に保持することであり、しかも適宜のレジスタをロードしてＪＴＡＧ機能を初期化する。次の例示的サブシステムはＪＴＡＧＤＭＡアクセスを経てアクセスすることができる。
・ＪＴＡＧアクセス可能となる外部メモリへのインターフェース
・ＩＯ装置をＪＴＡＧアクセス可能とするＩＯインターフェース
・ＲＡＭ，ＲＯＭ，キャッシュおよびＭＭＵトランスレーションルックアサイドバッファＴＬＢのような内部メモリ
・タイマ、カウンタ、インターラプトおよびアプリケーション機能のような内部レジスタ
・ブレーク−ポイント整合およびアプリケーションセル機能のようなデバッグサポートレジスタ
【００２１】
これらサブシステムの全部はメモリマップされ、且つプロセッサを介在させることなくターゲットシステムから直接アクセスすることができる。ＪＴＡＧインターフェースにより制御されるＤＭＡは外部的に容易なビフィクルである。プロセッサ素子によって任意のオンゴーイングプログラム実行を継続して実行することもできる。さらに、ＪＴＡＧが短時間アクセスのみを必要とするため、システムバスはバスマスタとすべき他のステーションに対し大きく利用可能のままとする。最後に、内部ターゲットシステムおよび外部ターゲットシステム間のアップローディングおよびダウンローディングを迅速に、例えば１０ＭＨｚテストクロックで１Ｍバイトデータ当たり５秒以下とする。レジスタファイルまたはＳＰＡＲＣマイクロコントローラで規定された補助状態レジスタＡＳＲのような内部プロセッサレジスタＪＴＡＧを経て直接アクセスし得ないが、モニタソフトウエアによってのみアクセスすることができる。この目的のため、ホストシステムはＪＴＡＧ  ＤＭＡ−ＣＯＮＴＲＯＬ−ＳＴＡＴＵＳ  ＲＥＧＩＳＴＥＲを経てデバッグブレークを要求し得、従ってプロセッサにモニタプログラムを導入せしめるようにする。ターゲットシステムで実行されるモニタプログラムおよびホストコンピュータ間のデータ交換はＪＴＡＧ  ＤＭＡおよび関連する入出力バッファを経てアクセスし得るメモリ位置を経て行う。通信プロトコルはハンドシェイクを有する。
【００２２】
図１のデバッグ構成システムに示すように、システムＲＡＭはデバッグサポートに対し割当てられた小区分を有する。この区分は次に示すものを含む。
・モニタプログラムへの連結を行うデバッグトラップハンドラープログラム
・完全なモニタプログラムまたは１つの命令を一度に実行するこれらモニタ命令ルーチン
・命令＋パラメータとホストおよびターゲットモニタ間の応答を連絡通信するバッファ
・ＪＴＡＧ  ＤＭＡを経てホストからの直接アクセス性
【００２３】
これらの特徴は、余分のピンを必要とせず、ホストおよびターゲットプロセッサの双方からアクセスし得る二重ポートを必要とせず、しかもターゲットプロセッサから遠隔デバッグＲＡＭへの時間−臨界マルチワイヤリンクを必要としないコスト的な利点を有する。デバッギング処理中ターゲットボードのブートＰＲＯＭのような特定のファームワイヤを必要としない。デバッグトラップハンドラおよびモニタプログラムはターゲットプロセッサがプログラム実行を開始する前にＪＴＡＧを経てシステムＲＡＭ内にダウンロードする。
【００２４】
ＲＩＳＣ型プロセッサのリアルタイム命令トレーシングの余分の問題は、各クロックサイクルで１つ以上の命令をアドレスがチップ境界で可視状態とならない内部キャッシュメモリからフェッチする。この問題を解決するために、内部アドレスをロードするとともにＪＴＡＧ機能を経てホストプロセッサにより読出し得る３２エントリの大きさが制限されたトレースメモリを設ける。トレースメモリを小型とすることによりその容量を慎重に割当てる必要がある。トレースモードには、全てのアドレスをロードし、非直線性アドレス、即ち、１つ宛の簡単な増大以外のアドレスの全部をロードし、且つコール、トラップまたはジャンプ命令に続くアドレスのみをロードするような種々のものがある。他の使用はプリセットブレークポイントに到達し、次いでトレースメモリが充填されるまでアドレスの全部をロードする際にローディングを開始する必要がある。上述した所の種々の組合せをも用いることができる。
【００２５】
外部トレースメモリ４０のエントリの時間スタンピングにはシリアルイベント出力機能６４を用いる。このイベント出力によってソフトウエア−またはハードウエアトリガイベントの発生時にリアルタイムで情報を提供する。その主用途は次の通りである。
・ソフトウエアの一般的な流れをみる
・システムの割り込み待ち時間を識別する
・マルチタスクシステムのタスクアクティビティを識別する
・特定のデバッギングを必要とするソフトウエア区分を識別する
・ソフトウエア制御のもとで外部解析器をトリガする
【００２６】
一般に相対的に小さなトレースバッファは、粗い命令アドレスによるトレース再構成を行わないが、埋設されたリアルタイムソフトウエアの時間特性に良好な総覧を与え、これは性能測定およびタイミングの解析に対し有効である。この要求された機能は図示のシリアル−パラレルコンバータ４２、適宜の容量のトレースメモリ４０およびタイムスタンプ発生機構である。
【００２７】
図２の例に示すように、トリガ命令はトラップエグジット、サブルーチンエントリおよびエグジット並びにジャンプテーブルターゲットのような戦略的位置に配置するのが好適である。図２において、時間は水平方向に経過する。実線のステップは主プログラムレベル７８、サブルーチンレベル７２，７４，７６およびトラップルーチンレベル７０間で交互となるマシンアクティビティを示す。トレース８０によって数ブロックを経るイベント出力データを記号化する。ここでは開始時、サブルーチン全部の入出力時、ウォッチポイントヒット時（レベル７６のダイアモンド）および最後にブレークポイントヒット時（レベル７８）に発生する。ＷＲ  ＡＳＲ３１命令は小円で示し、トラップはブロックで記号化する。内部トレースバッファのカバーのスパンはレベル８２に示す。ウォッチポイントヒットを用いる場合には、生じる整合によってプロセッサへのデバッグトラップを発生し、従ってトラップハンドラを実行する必要がある。次いで、ホストプロセッサからの命令を待機する。これはＪＴＡＧインターフェースに含まれる状態レジスタを経てホストプロセッサに通信する。
【００２８】
図３はプロセッサアーキテクチュアの種々の動作モードを含むＪＴＡＧ境界走査ブロックを示す。説明の便宜上、ＪＴＡＧ機能はさらに詳細な説明を行うことなく、単に援用する。底部の５つのピンはＴＡＰコントローラ９０の種々の様相遷移を制御するテストクロックＴＣＫ、テストリセットＴＲＳＴ、テストモード選択ＴＭＳ、テストデータインＴＤＩおよびテストデータ出力ＴＤＯである。このポートは頂部に太実線で示す内部バスのＤＭＡマスタとして作動する。即ち、このポートは処理素子が実行されている際にもバスに接続された任意のスレーブにアクセスすることができる。このポートはアービトレイション中最高の優先順位を有する。ＤＭＡ操作は外部ワークステーションによるような境界走査外部インターフェースを経て初期化される。境界走査機能によって装置ＩＤレジスタ１０６に番号を付す。クロックされた命令レジスタ１０４はＴＤＩからロードされ、５ビット命令を収容する。この場合、次の命令が用いられる。
【００２９】
【表１】
0003862291.tif 000002
【００３０】
上表において、第３欄は適用可能なレジスタ長さを示す。説明の便宜上、バイパス自体は図示しない。上表のほかに、図３にはＤＭＡ制御素子とデータ出力ラインＴＤＯに結果を供給する他の出力マルチプレクサ１０８を設ける。
【００３１】
命令レジスタは２部分：即ち、並列ロードレジスタ１０２およびシフトレジスタ１０４で実現される。入力端子ＴＤＩを経て新たな命令を受ける間中パラレルレジスタは前の命令を保持する。次いでＴＡＰコントローラ９０がアップデートＩＲ状態をエンターすると、シフトレジスタの内容をパラレルロードレジスタに転送し、新たな命令が生じる。例えば、命令ＤＭＡ−ＡＤＤＲはＴＤＩからＪＴＡＧデータレジスタ"ＤＭＡ−ＡＤＤＲ"に３２ビットをロードする。ＤＲ−アップデートでは、このデータをレジスタ９４から内部バスへの装置アドレスとして用い得るようにする。レジスタ９４は図示の＋４増大の係数入力および６ビットの有効計数範囲を有する。即ち、２つの最下位ビットは使用しない。これはＤＭＡ制御レジスタ１００からの信号ＤＭＡ−ＡＤＤＲ−ＩＮＣによって制御する。これによりＤＭＡ−ＡＤＤＲを再ロードする必要なく、連続する６４アドレスまでをＤＭＡする。ＤＭＡデータレジスタ９６を用いてかくしてアドレス指定されたスレーブに、またはこれから連絡通信されたデータを記憶する。書込みデータはＤＭＡ開始要求が与えられる前にロードする必要がある。読出しデータはレジスタ９８のシステムクロックからの同期化のもとで捕捉する。捕捉ＤＲではこのデータをレジスタ９８からレジスタ９６に転送するとともにマルチプレクサ１０８およびＴＤＯを経てシリアルに出力する。
【００３２】
ＤＭＡ−ＣＮＴＬ−ＳＴＡＴレジスタ１００は以下に示すように１４個の規定されたビットを有する。
［０］：ＳＹＳ−ＣＬＫ−ＯＮはシステムクロックの状態を示す。このシステムクロックはアクティブ状態にあり、ビット＝１である。
［１］：ＴＯＦ−ＣＯＮＴＬ−ＳＴＡＴによってＤＳＵ  ＤＳＴＡＴ制御レジスタにテスト出力フル（Test Output Full）フラグの制御および状態を与える。このＴＯＦフラグはこのビットがセットされるとクリアされないが、ＤＭＡアクセスはバスエラーによって終了する。
［２］：ＴＩＦ−ＣＯＮＴＬ−ＳＴＡＴによってＤＳＵ  ＤＳＴＡＴ制御レジスタにテスト入力フル（Test Input Full)フラグの制御および状態を与える。このＴＩＦフラグはこのビットがセットされるとセットされないが、ＤＭＡアクセスはバスアクセスによって終了する。読出し：ＤＳＵ  ＤＳＴＡ制御のＴＩＦフラグの状態を読出し；書込み：１＝ＤＭＡが終了した後ＤＳＵ  ＳＴＡＴ制御レジスタにＴＩＦビットをセットし、０＝変化なし。２つのビットＴＩＦ−ＣＯＮＴＬ−ＳＴＡＴおよびＴＯＦ−ＣＯＮＴＬ−ＳＴＡＴの双方は通信プロトコルのハンドシェークを表わす。
［３］：ＢＲＫ−ＳＴＡＴ読出しのみ：１＝ＩＵはブレーク状態にあり、０＝ＩＵはブレーク状態にない。
［４］：ＤＭＡ−ＡＤＤＲ−ＩＮＣ書込みのみ：１＝ＤＭＡ開始前ＤＭＡ−ＡＤＤＲデータレジスタに４を加算、０＝変化なし。加算はモジュロ２５６である。ＤＭＡ−ＡＤＤＲはＤＭＡ−ＣＮＴＬ−ＳＴＡＴの更新がＤＭＡ−ＡＤＤＲ−ＩＮＣビットセット１で行われる度毎に増大する。２つの最下位ビット（１−０）は変化しない。
［５］：ＤＳＵ−ＣＮＴＬ−ＳＴＡＴ：ＤＭＡ−ＬＯＣＫ。ＤＭＡが開始する場合にはＰＩ（プロセッサ−インターナル）コアバスをロックする。これを用いて１つ以上のアトミックＤＭＡアクセスが要求される場合にＰＩコアバスをロックすることができる。最後のＤＭＡアクセスはＤＭＡ−ＬＯＣＫ＝０を有し、ＰＩコアバスをロックしない。書込みのみ：１＝ＰＩコアバスをロックし；０＝ロックしない。
［６］：ＤＳＵ−ＣＮＴＬ−ＳＴＡＴ：ＤＭＡ−ＣＳＰ。制御スペースＤＭＡアクセスを行う。このビットによってＪＴＡＧ／テストモジュールがＰＩコアバスにＡＳＩマップリソースの読出し／書込みを行うようにする。アドレスビットＤＭＡ−ＡＤＤＲ［３１：２４］によって制御スペース（＝ＡＳＩ）の識別を示す。低い２４ビット（ＤＭＡ−ＡＤＤＲ［２４：０］）は制御スペース内にアドレスを形成する。書込みのみ：１＝制御スペースＤＭＡ、０＝制御スペースＤＭＡなし。
［７：８］：ＤＭＡ−ＣＮＴＬ−ＳＴＡＴ：ＤＭＡ−ＳＺ［１：０］。２つのビットはＤＭＡのデータの大きさを示す：書込みのみ：００＝バイト、０１＝ハーフワード、１０＝ワード、１１＝不法。
［９］：ＤＭＡ−ＣＮＴＬ−ＳＴＡＴ：ＤＭＡ−ＲＷＮ。ＤＭＡアクセスの方向。アトミック読出し／書込みはＤＭＡ−ＣＮＴＬ−ＳＴＡＴ［５］ビットの設定により行うことができる（読出し後ＰＩコアバスをロックする）。書込みのみ：１＝読出しアクセス、０＝書込みアクセス。
［１０］：ＤＭＡ−ＣＮＴＬ−ＳＴＡＴ：ＤＭＡ−ＥＲＲ。このビットはバスエラーがＤＭＡ中に発生したことを示す。このビットはＤＭＡが終了した場合に有効となるだけである（ＤＭＡ−ＳＴＡＲＴ−ＢＵＳＹ＝０）。読出しのみ：１＝エラー、０＝エラーなし。
［１１］：ＤＭＡ−ＣＮＴＬ−ＳＴＡＴ：ＤＭＡ−ＳＴＡＲＴ−ＢＵＳＹ。このビットによってＤＭＡが終了した場合にＤＭＡの開始および信号を制御する。ＤＭＡ−ＳＴＡＲＴ−ＢＵＳＹは０を書込んで読出し値を０にする必要がある（＝ＤＭＡ終了）。ＤＭＡ−ＳＴＡＲＴ−ＢＵＳＹを設定することによってこのビットをクリアする。読出し：１＝ＤＭＡビジー、０＝ＤＭＡ終了または開始しない。書込み：１＝ＤＭＡ開始、０＝変化なし。ＤＭＡを開始するこの基本ループは
ＤＭＡ−ＣＮＴＬ−ＢＵＳＹ＝１を書込み
ＤＭＡ−ＣＮＴＬ−ＢＵＳＹ＝１まで待機し（ＤＭＡアクセスを開始）
ＤＭＡ−ＣＮＴＬ−ＢＵＳＹ＝０を書込み
ＤＭＡ−ＣＮＴＬ−ＢＵＳＹ＝０まで待機する（ＤＭＡアクセスを終了）。
読出したＤＭＡ−ＣＮＴＬ−ＢＵＳＹ値は、読出したＤＭＡ−ＣＮＴＬ−ＢＵＳＹ＝１の際ＤＭＡ−ＣＮＴＬ−ＢＵＳＹへの書込み０が行われる前に１から０に変化しない。これにより次に"ＤＭＡ終了"が知らされる前に"１"（ＤＭＡ開始）を確実に検出する。
［１２］：ＤＭＡ−ＣＮＴＬ−ＳＴＡＲＴ：ＪＴＡＧ−ＢＲＥＡＫ。書込みのみ：１＝ブレークトラップ発生、０＝ブレークトラップなし。このビットによってブレークトラップがＩＵに発生し得るようになる。
［１３］：ＤＭＡ−ＣＮＴＬ−ＳＴＡＲＴ：ＪＴＡＧ−ＲＥＳＥＴ。書込みのみ：１＝リセット、０＝リセットなし。このビットによって回路をＪＴＡＧインターフェースを経てリセットすることができる。
ＤＭＡ−ＣＮＴＬ−ＳＴＡＴレジスタの内容のある例示値は次の通りである。
00 1001 0001 0100 ：ＤＭＡ書込み開始、大きさはワード、制御スペースなし、バスロックなし、ＤＭＡが開始される前にＤＭＡ−ＡＤＤＲを増大し且つＤＭＡが作動可能状態となる場合にＤＳＵ−ＳＴＡＴ制御レジスタをセットする。
00 1010 0110 0010 ：制御スペースのＤＭＡ読出し開始、大きさ＝バイト、更なるＤＭＡ転送用のバスをロック、ＤＭＡ終了時にＴＯＦフラグをロックする。
10 0000 0000 0000 ：ＲＥＳＥＴ：回路をリセットする。
01 0000 0000 0000 ：整数ユニットにブレークトラップを発生する。ＤＭＡ−ＣＮＴＬ−ＳＴＡＴ［３］を用いてブレークトラップが実際に行われたかどうかをチェックすることができる。
【００３３】
ＰＩコアバスは図３の頂部に太実線で示す。かかる配列の他のサブシステムは、テストクロック、テストリセット、テストモード入力端子を有するＴＡＰコントローラと称されるＪＴＡＧコントローラモジュール９０、ＤＭＡ制御モジュール９２、レジスタＤＭＡ−ＡＤＤＲ９４およびＤＭＡ−ＤＡＴＡ９６、クロックレジスタＳＳ−ＣＬＯＣＫ９８、レジスタＤＭＡ−ＣＮＴＬ−ＳＴＡＴ１００、情報保持レジスタ兼デコーダ１０２、ＪＴＡＧ情報レジスタ１０４、装置ＩＤレジスタ１０６および出力マルチプレクサ１０８である。このマルチプレクサに対する入力の１つがＪＴＡＧチェーン入力端子１１０である。図示の種々のサブシステムはチェーンのシリアルデータからロードすることができる。便宜上ＪＴＡＧ標準インターフェースに特定のハードウエアは要約してスケッチしたもののみである。
【００３４】
図４はシリアルイベント出力のハードウエア機能の例を示す。このセットアップにおいて、中央ＰＩバスは種々のサブシステムに取付けられるとともに数個の非接続サブシステムによって囲まれる。これらサブシステムは次の通りである。
・プロセッサクロック１２０
・中央リセット機能１２２
・バス制御ユニット１２４
・割込みコントローラ１２６
・命令リクエスタ（キャッシュ）１２８
・メモリ管理機能１３０
・データリクエスタ（キャッシュ）１３２
・デバッグサポートユニット１３４
・シリアルイベント出力機能１３６
・種々の名称のない他のサブシステム１３８
・メモリインターフェース素子１４０
・ＴＡＰコントローラを含むＪＴＡＧ境界走査境界１４２
・整数処理ユニット１４４
・任意の浮動点ユニット１４６
【００３５】
上述したサブシステムの殆どのものは標準規格で機能するものである。説明を簡単とするために、デバッグサポートユニットおよびＪＴＡＧインターフェース（図１の素子５７）はここでは図示しない。これはブレークポイントヒット情報をＤＭＡ−ＣＮＴＬ−ＳＴＡＴレジスタに直接且つ迅速に通信するために用いる。これはＰＩバスを経るポーリングによって充分長く採用するが、図３につき機能的に述べたＢＲＫ−ＳＴＡＴによって実施することができる。
【００３６】
図５は図１のライン６４に発生し得る基本的シリアル出力プロトコルの例を示す。このプロトコルはヨーロッパ特許出願第51332 号に記載された既知のＩ２Ｃプロトコルである程度知ることができる。標準データ転送中クロック（上側トレース）が低い場合に単一データラインでの転送（下側トレース）が生じ得るようになる。クロックが高い場合にはかかる転送は許可されない。データが高い場合開始条件１５２および停止条件１５４によってデータ転送によりこれら規定を無効にし、従ってその意図する操作を達成する。データ転送の外側ではクロックトレースを継続する。本例ではシリアルイベント出力を短い命令ＷＲ  ＡＳＲ３１の実行により生ずるようにする。Ｉ２Ｃにおけるように、イベント識別は１３ビットの数により０から２13の範囲で符号化する。転送速度を増大するために、零の読出しを抑圧する。斯様にしてパケット長さをフレキシブルにする。シリアルイベント情報を出力しない場合にはＥＶＥＮＴ−ＯＵＴラインを常時"１"レベルに保持する。伝送中第１ビットはパケットタイプを示し、且つこれにデータが追従する。
【００３７】
図１のプローブ３８に受ける情報は並列化するとともに外部イベントトレースメモリの開始条件でとられた時間スタンプとともに記憶する。ターゲットプロセッサからのＣＬＫＯＵＴ信号は同期化の目的で必要である。シリアル信号出力のビットはシステムクロック速度で通常運転するＣＬＫＯＵＴに同期化する。システムクロック周波数が極めて高い場合にはシステムクロックのサブ高調波でシリアル出力を発生する必要がある。ターゲットボードの機能によってプローブまたは論理状態解析器への接続を容易とする。
【００３８】
要約すれば、ＪＴＡＧ機能はＪＴＡＧおよびオンチップシステムバス間を連絡通信するＤＭＡレジスタを追加することによって強めるようにする。特に、ＤＭＡはバスマスターとして機能させることができる。デバッグサポートユニットＤＳＵから明らかなように、命令トレースメモリはオンチップ追加されるとともにシリアルイベント出力を設ける。最後に、シリアルイベント出力により駆動される外部イベントトレースバッファを追加する。
【図面の簡単な説明】
【図１】  イベントトレーシング用ハードウエアを有するマイクロコントローラを示す説明図である。
【図２】  トレーシングの例を示す説明図である。
【図３】  アーキテクチュアにおけるＪＴＡＧ境界走査ブロックを示す説明図である。
【図４】  シリアルイベント出力機能の一例を示す説明図である。
【図５】  基本シリアル出力プロトコルの一例を示す説明図である。
【符号の説明】
２０  マイクロコントローラ
２４  ターゲットボード
２６  システムＲＡＭメモリ
２８  コネクタ
３０  ＪＴＡＧインターフェースカード
３２  ホストワークステーション
３４  相互接続部
３６  ＪＴＡＧ相互接続部
３８  テストプローブ論理解析器
４０  イベントトレースメモリ
４２  シリアル−パラレルコンバータ
４４  デバッグ区分
４６  ＪＴＡＧデバッグインターフェース
４８  オンチップシステムバス
５０〜５４  サブシステム
５６  デバッグサポートシステム
５８  オンチップトレースメモリ
６０  キャッシュ
６４  シリアル出力
７０  トラップルーチンレベル
７２〜７６  サブルーチンレベル
７８  ブレークポイントレベル
９０  ＴＡＰコントローラ
９２  ＤＭＡ制御モジュール
９４  レジスタ
９６  ＤＭＡデータレジスタ
９８  レジスタ
１００  ＤＭＡ制御レジスタ
１０２  パラレルロードレジスタ
１０４  シフトレジスタ
１０６  装置ＩＤレジスタ
１０８  マルチプレクサ
１１０  ＪＴＡＧチェーン入力
１２０  プロセッサクロック
１２２  中央リセット機能
１２４  バス制御ユニット
１２６  割込みコントローラ
１２８  命令リクエスタ（キャッシュ）
１３０  メモリ管理機能
１３２  データリクエスタ（キャッシュ）
１３４  デバッグサポートユニット
１３６  シリアルイベント出力機能
１３８  種々の名称のない他のサブシステム
１４０  メモリインターフェース素子
１４２  ＴＡＰコントローラを含むＪＴＡＧ境界走査境界
１４４  整数処理ユニット
１４６  任意の浮動点ユニット
【図１】
0003862291.tif 000003
【図２】
0003862291.tif 000004
【図３】
0003862291.tif 000005
【図４】
0003862291.tif 000006
【図５】
0003862291.tif 000007