(57)【特許請求の範囲】
【請求項１】
複数のレジスタを備えたオン−チップＣＰＵと、前記オン−チップＣＰＵと前記オン−チップＣＰＵにローカルな第１メモリとの間の並列データバスと、を含んで構成される集積回路チップを有するコンピュータシステムであって、
前記集積回路チップはさらに、ポートと、論理回路とを含んで構成され、
前記ポートは前記集積回路チップ上の前記並列データバスに接続されるとともに外部コンピュータ装置に接続され、
前記論理回路は、前記第１メモリから得られた命令の前記オン−チップＣＰＵによる実行を中断する中断事象と、セットリセットハンドラ事象と、ラン事象と、を含む前記外部コンピュータ装置からの複数の事象を、前記ポートを介して受信するように構成され、
前記論理回路は、前記オン−チップＣＰＵによる命令の再実行で使用するための目標アドレスを保持するための、リセットハンドラレジスタを有し、
前記セットリセットハンドラ事象は、前記リセットハンドラレジスタに新しい目標アドレスを供給し、
前記新しい目標アドレスは、ブートコードを識別し、
前記論理回路は、前記ブートコードによって前記オン−チップＣＰＵの実行を開始するために前記ラン事象に応答する
ことを特徴とするコンピュータシステム。
【請求項２】
前記論理回路は、前記複数の事象を信号パケットの形式で受信するように構成されることを特徴とする請求項１に記載のコンピュータシステム。
【請求項３】
前記信号パケットは、外部ビットシリアル形式で前記ポートで受信されかつ内部オン−チップ並列フォーマットに前記ポートにより変えられる請求項２に記載のコンピュータシステム。
【請求項４】
前記集積回路チップは、前記オン−チップＣＰＵと同じ前記チップ上の少なくとも１つの更なるオン−チップＣＰＵを備え、
前記オン−チップＣＰＵと前記少なくとも１つの更なるオン−チップＣＰＵとの各々は、前記並列データバスと前記ポートとに接続されていることを特徴とする請求項１〜３の何れか１項に記載のコンピュータシステム。
【請求項５】
前記複数の事象は、前記オン−チップＣＰＵがソフトリセットを行うようなリセット事象を含むことを特徴とする請求項１〜４の何れか１項に記載のコンピュータシステム。
【請求項６】
前記外部コンピュータ装置は、前記チップ上の前記オン−チップＣＰＵと前記少なくとも１つの更なるオン−チップＣＰＵの１つによる実行を中断することを実行可能であり、前記オン−チップＣＰＵと前記少なくとも１つの更なるオン−チップＣＰＵの一方が中断中に他方がそのリセットハンドラレジスタ内に保持された前記新しい目標アドレスからブートコードを実行することを特徴とする請求項４に記載のコンピュータシステム。
【請求項７】
コンピュータシステムをブートする方法であって、
前記コンピュータシステムは、オン−チップＣＰＵを備えた集積回路チップ、複数のレジスタ、及び前記オン−チップＣＰＵと前記オン−チップＣＰＵにローカルな第１メモリとの間の並列データバスを備え、前記集積回路チップは、ポートと、論理回路とを有し、前記ポートは前記並列データバスに接続されるとともに外部コンピュータ装置に接続され、前記外部コンピュータ装置は、複数の事象を前記論理回路に送信し、前記複数の事象には、前記第１メモリから得られた命令の前記オン−チップＣＰＵによる実行を中断する中断事象と、セットリセットハンドラ事象と、ラン事象と、を含み、前記論理回路は、前記オン−チップＣＰＵによる命令の再実行で使用するための目標アドレスを保持するための、リセットハンドラレジスタを有し、
前記方法は、
前記セットリセットハンドラ事象が前記リセットハンドラレジスタに新しい目標アドレスを供給するステップを備え、
前記新しい目標アドレスは、ブートコードを識別し、
前記ラン事象は、前記ブートコードによって前記オン−チップＣＰＵの実行を開始する
ことを特徴とするコンピュータシステムをブートする方法。
【請求項８】
前記ブートコードは、前記並列データバスに接続されたＤＲＡＭに記憶されていることを特徴とする請求項７に記載のコンピュータシステムをブートする方法。
【請求項９】
前記ブートコードは、外部メモリに記憶されていることを特徴とする請求項８に記載のコンピュータシステムをブートする方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マイクロコンピュータ及びコンピュータシステムに関する。
【０００２】
【従来の技術】
例えば接続を有するネットワーク内において、単一チップマイクロコンピュータが、デバッギングルーチンにおいて使用するためのホストマイクロコンピュータに接続されるように外部通信ポートを有する当該単一チップマイクロコンピュータが知られている。このようなシステムは、相互接続したマイクロコンピュータチップのそれぞれがローカルメモリを有することで知られている。
【０００３】
【発明が解決しようとする課題】
このようなマイクロコンピュータは、チップ上をリセッティング状態にすることなくＣＰＵの作動を中断させることができる。或いは、マイクロコンピュータはチップ上の全ての回路をリセットするリセット操作を受けることもできる。この場合、ＣＰＵ作動を再開するのにブートコードが必要となる。
【０００４】
本発明の目的は、外部通信が簡便化され、命令がオフ−チップ位置から得られる改良されたマイクロコンピュータ、及びマイクロコンピュータシステムを作動する改良された方法を提供することにある。
【０００５】
【課題を解決するための手段】
本発明は、複数のレジスタを備えたオン−チップＣＰＵと、前記ＣＰＵとＣＰＵにローカルな第１メモリとの間に並列通信通路を提供する通信バスと、を含んで構成される集積回路チップ上にマイクロプロセッサを有するコンピュータシステムであって、前記集積回路チップはさらに、前記集積回路チップ上の前記通信バスに接続されるとともに第２メモリを持つ外部コンピュータ装置に接続される外部ポートを含んで構成され、前記外部コンピュータ装置は、前記外部ポートを介して制御信号を送信して、(a) 前記第１メモリから得られた命令のＣＰＵによる実行を中断し、(b) 前記第２メモリからＣＰＵによって実行されるブートコードを提供し、(c) 該ブートコードを使用してＣＰＵの作動を再開させるように作動可能であることを特徴とするコンピュータシステムを提供する。
【０００６】
前記ＣＰＵは、前記ＣＰＵによる命令シーケンスの実行を中断するように作動可能な論理回路が設けられ、該論理回路は、ＣＰＵによる命令実行の再開に使用する命令ロケーションアドレスを保持するためのアドレスストアを備え、また、前記論理回路が前記通信バスに接続されて、前記外部ポートを介して前記外部コンピュータ装置から単一パケットを受け取ることが好ましい。
【０００７】
前記ＣＰＵが、命令シーケンスにおいて次の取り出しアドレスを示すための命令ポインタ回路を備え、前記論理回路の前記アドレスストアが、前記外部コンピュータ装置からの単一パケットに応答して前記命令ポインタ回路のポインタ値を変化させるように作動可能であることが好ましい。
前記単一集積回路チップが、同一チップ上に複数のＣＰＵを持ち、該各ＣＰＵは、前記通信バス及び前記外部ポートに接続されるのが好ましい。
【０００８】
本発明は、オン−チップＣＰＵと、複数のレジスタと、前記ＣＰＵとＣＰＵにローカルな第１メモリとの間に並列通信通路を提供する通信バスと、を備えた集積回路チップ上にマイクロプロセッサを有し、前記集積回路チップは前記通信バスに接続されるとともに第２メモリを持つ外部コンピュータ装置に接続される外部ポートを備えたコンピュータシステムをブートする方法であって、前記外部ポートを介して前記外部コンピュータ装置から制御信号を送信して、(a) 前記第１メモリから得られた命令のＣＰＵによる実行を中断し、(b) 前記第２メモリからＣＰＵによって実行されるブートコードを提供し、(c) 該ブートコードを使用してＣＰＵの作動を再開することからなるコンピュータシステムをブートする方法を有する。
【０００９】
前記オン−チップＣＰＵに接続された論理回路が、前記外部ポートを介した前記外部コンピュータ装置からの制御信号に応答して、前記ＣＰＵによる命令シーケンスの実行を中断し、前記ＣＰＵのアドレスストア内にＣＰＵによる命令実行を再開するのに使用される命令ロケーションアドレスを記憶し、前記ブートコードを使用して前記ＣＰＵに実行を再開させるように作動するのが好ましい。
【００１０】
前記通信バス上の通信が、並列ビットフォーマットで実行され、前記外部ポートが、パケットを直列ビットフォーマットに変換するのが好ましい。
前記外部コンピュータ装置が、前記外部ポートを介して前記ＣＰＵの作動を中断する信号を送信し、前記第２メモリから前記外部ポートを介して前記第１メモリにブートコードを転送し、前記外部ポートを介して前記第１メモリのブートコードのロケーションの表示を提供して、前記ブートコードを使用して前記ＣＰＵの作動を再開するように配列されるのが好ましい。
【００１１】
前記外部コンピュータ装置が、前記外部ポートを介してオン−チップＣＰＵの作動を中断する信号を送信し、前記外部ポートを介してブートコードが配置された前記第２メモリ内のメモリアドレスの表示を提供し、前記外部ポートを介して信号をオン−チップＣＰＵに送信し、前記第２メモリに配置されたブートコードを使用して実行を再開させて、前記オン−チップＣＰＵが前記外部ポートを介して前記第２メモリからブートコード取り出しの実行を再開するのが好ましい。
【００１２】
具体例においては、複数のＣＰＵが前記チップ上に設けられ、前記外部コンピュータ装置が、前記チップ上の各ＣＰＵによる実行を中断し、前記第２メモリから前記チップ上の第１のＣＰＵにより実行されるブートコードを提供し、中断状態に第２のＣＰＵを保持する制御信号を送信して、前記第２のＣＰＵを中断状態にしたまま前記ブートコードを使用して前記第１のＣＰＵの実行を再開するように動作可能である。
【００１３】
前記第１のＣＰＵは、前記第２のＣＰＵのブートコードを提供して、前記第１のＣＰＵが前記外部コンピュータ装置により再スタートされた後に、前記第２のＣＰＵの実行を再開するために使用されてもよい。
【００１４】
【発明の実施の形態】
本発明の実施の形態を添付の図面を参照して実施例により詳細に説明する。
図１に示される好ましい実施例は、複数のモジュール１４とともに２個のＣＰＵ回路１２と１３が設けられた単一集積回路チップ１１を含んで構成される。ＣＰＵ１２，１３と各モジュール１４とは、各モジュールへの２方向接続点を有するバスネットワーク１５により相互接続される。本例では、バスネットワークは図２に示されるように、各モジュールにそれぞれ設けられた並列データバス２０と専用制御ライン２１で構成されるＰ−リンクであり、モジュールをＰ−リンク制御ユニット２２に連結する。各モジュールには、ステートマシンを有するＰ−リンクインタフェース２３が備えられて、並列データバス２０とＰ−リンクインタフェース２３との間をそれぞれ反対方向にデータを転送するとともに、各専用制御ライン２１とＰ−リンクインタフェース２３との間で制御信号を交換する。
【００１５】
図１の例では、各種モジュール１４は、外部接続点２６を有するビデオ表示インタフェース２５と、ビデオデコードアシスト回路２７と、外部接続点２９を有するオーディオ出力インタフェース２８と、外部接続点３１を有するデバッグポート３０と、外部メモリに通じる外部バス接続点３３を有する外部メモリインタフェース３２と、クロック回路３４と、複数のバス及び直列ワイヤ出力接続点３６を備えた各種周辺装置インタフェース３５と、外部接続点３８を有するネットワークインタフェース３７と、Ｐ−リンク制御ユニット２２と、を有する。本例の２つのＣＰＵ装置１２と１３は同様の構成であり、それぞれに複数の命令実行ユニット４０、複数のレジスタ４１、命令キャッシュ４２及びデータキャッシュ４３を備えている。本例では、各ＣＰＵはまた、命令実行ユニット４０に接続される事象論理回路４４を備えている。
【００１６】
ＣＰＵは、従来方法でチップ上の命令キャッシュ４２からの命令を受けて、チップ上のデータキャッシュ４３上でデータの読み出し又は書き込み操作ができる。また、読み出し又は書き込み操作用の外部メモリアクセスは、外部メモリインタフェース３２と外部バス接続点３３とを介してできる。本例の重要な装置は、図２から図５に詳細に示されるデバッグポート３０である。図２に示されるように、この回路はハードリセットピン４６に接続されたハードリセットコントローラ４５を備えている。ハードリセットコントローラ４５は、図１に示されるチップ上の全てのモジュールに接続されて、ハードリセット信号がハードリセットピン４６で宣言された時に、チップ上の全ての回路がリセットされる。
【００１７】
以下に説明するように、このデバッグポート３０は、デバッギング手続きに使用するための重要な外部通信を提供する。オン−チップＣＰＵ１２と１３は、デバッグポート３０を介して通信する外部ソースから実行用命令コードを受ける。バスネットワーク１５を介する通信は、並列ビットフォーマットで行われる。バスネットワーク１５の並列データバス２０を介する送信は、多数のバイトパケット、例えば各パケット毎に３５バイト、で行われて、１つのパケットが５つの連続した８バイト転送でバスネットワークに沿って送信され、各転送は並列ビットフォーマットである。デバッグポート３０はバスネットワーク１５から得られたパケットの並列性を減少するように配列されて、外部接続点３１を介して直列ビットフォーマットで出力されるようにするか、或いは、バスネットワーク１５で使用されたフォーマットに対して最大限に減少した並列フォーマットで出力されるようにして、外部接続点３１を提供するのに必要な外部接続ピンの数を少なくする。
【００１８】
デバッグポート３０の構成を図２から図５を参照して説明する。
本例では、デバッグポート３０は、Ｐ−リンクインタフェース２３に接続された送り出しパケットバッファ５０と、Ｐ−リンクインタフェース２３に接続された受け入れパケットバッファ５１とを含んで構成される。出力側では、外部接続点３１がこの場合は出力ピン５２と入力ピン５３とで形成される。この場合のデバッグポートは、並列データバス２０からの並列フォーマットと入力ピン５３及び出力ピン５２への直列ビットフォーマットとの完全変換を実施する。出力ピン５２と入力ピン５３は出力リンクエンジン５５の一部として接続する。出力リンクエンジン５５は、送り出しパケットバッファ５０と接続する並−直列変換器５６と、受け入れパケットバッファ５１と接続する直−並列変換器５７と、を備える。送り出しパケットバッファ５０と受け入れパケットバッファ５１との間には、レジスタバンク５８とポートステートマシン５９とが２方向接続により接続されている。デバッグポート３０の機能は、内部オン−チップ並列フォーマットと外部直列ビットフォーマットとの間のビットパケットを変換することである。また、デバッグポート３０は、入力ピン５３を介して入力されるパケットを、バスネットワーク１５を使用せずにデバッグポート内のレジスタバンク５８にアクセスさせる。同様に、バスネットワーク１５のパケットも出力ピン５２または入力ピン５３を使用せずにデバッグポート内のレジスタバンク５８にアクセスできる。
【００１９】
マイクロコンピュータシステムに使用されるマルチビットパケットのフォーマットが図６、図７及び図８により示される。バスネットワーク１５に接続されたモジュール１４の一つであるデバッグポート３０からパケットが出力されると、モジュールは並列データバス２０に沿ってパケットの並列表現を送信する。パケットは、上記のように、複数の８バイト転送を含んで構成される。デバッグポート３０を含む各モジュール１４は、同様のＰ−リンクインタフェース２３を有し、並列データバス２０からのデータ取り出し又は並列データバス２０へのデータ入力の操作は相互に類似している。あるモジュールが他方のモジュール、例えばデバッグポート３０、に送るパケットを有する時は、このモジュールは、まず、ライン６０上で要求信号を宣言して、他方のモジュールをＰ−リンク制御ユニット２２に接続する専用制御ライン２１に、このパケットを信号で送る。このモジュールは、また、宛先バス６１上で８ビット信号を出力して、送信したいパケットの所望の宛先を制御ユニットに示す。専用制御ライン２１はそれ自体がバスであることは言うまでもない。並列データバス２０からのパケットを受けることができるデバッグポート３０等のモジュールは、パケットが宛先に供給するのに適当かどうかにかかわらず、専用制御ライン２１を介してＰ−リンク制御ユニット２２に供給されるライン６２上の「受信許可」信号を宣言する。モジュールが宛先にパケットを送ることをＰ−リンク制御ユニット２２が決定し、これとは別に、Ｐ−リンク制御ユニット２２の信号により並列データバス２０からパケットを受け取り可能なことを宛先が示した時は、Ｐ−リンク制御ユニット２２は転送が生じるように準備する。Ｐ−リンク制御ユニット２２は、専用制御ライン２１を介して適宜なＰ−リンクインタフェース２３に「送信許可」信号６３を宣言して、送信モジュールに対し、パケットをＰ−リンクインタフェース２３と並列データバス２０とを相互接続するバス６４を介して並列データバス２０に送らせる。そして、Ｐ−リンク制御ユニット２２は受信側の「送信信号」６５を宣言する。受信側は、並列データデータバス２０を介して転送を受け入れることを信号で送る。並列データバス２０を介したパケットデータの最終転送と同時に「パケット送信終了」信号６６を送信側が宣言すると、パケット送信は終了する。この信号は専用制御ライン２１を通ってＰ−リンク制御ユニット２２に送られ、その後、Ｐ−リンク制御ユニット２２は受信側モジュールへの「パケット受信終了」信号６７を宣言する。この信号を停止させる受信側モジュールは現在の転送を受信した後に並列データバス２０を介したデータの受信を終了する。
【００２０】
デバッグポート３０で生じる並列から直列への変換は、並列パケットと直列パケットとの間の１対１等値を持って、一方のパケットフォームに含まれる全てのデータが他方のパケットフォームに含まれるようにする。このため、変換には、パケットタイプの識別と、タイプにより決定される方法でのパケットフィールドに亘る複写が含まれる。パケットが並列データバス２０から送り出しパケットバッファ５０に入力されると、バッファが最も長いパケットを保持するための３５バイトの長さであるので、パケットはその全体にわたって保持される。図４に示されるように、送り出しパケットバッファ５０は転送バス７１によってポートステートマシン５９、更にシフトレジスタ７０に接続されている。シフトレジスタ７０は並−直列変換器５６に接続される。ポートステートマシン５９は送り出しパケットバッファ５０に入力信号７２を供給し、その制御下でＰ−リンクパケットから特定バイトを転送バス７１に複写する。まず、パケットの、宛先ヘッダー７３を保持する最も重要なバイトがバイトワイド転送バス７１上に置かれる。ポートステートマシン５９は、この値と、パケットがシフトレジスタと出力直列リンクに向かうことを表示する値とを比較する。パケットが出力直列リンクに向かう場合、ポートステートマシンはパケットのタイプを示す命令コードであるパケットの次のバイト７４を転送バス７１上に配置させる。転送バス７１を介してポートステートマシン５９に供給される命令コード７４から、ポートステートマシン５９は並列データバス２０から引き出されるパケットの長さ及びフォーマットを決定して、合成すべき直列パケットの長さ及びフォーマットを決定する。ポートステートマシン５９は直列パケットの長さを示すバイトを転送バス７１上に出力し、このバイトはシフトレジスタ７０の第一バイト位置内にシフトされる。その後、ポートステートマシン５９はバイトを送り出しパケットバッファ５０から転送バス７１上に複写し、転送バス７１でこれらのバイトはシフトレジスタ７０内の次のバイト位置内にシフトされる。この操作作業は送り出しパケットバッファ５０からの全てのバイトが全体にわたって複写されるまで継続される。送り出しパケットバッファ５０からのバイトの引き出し命令は、ポートステートマシン５９が直列フォーマットにおける再フォーマットを決定するので、ポートステートマシン５９内に含まれる。そして、直列パケットは出力ピン５２を介して、図１１から図１４を参照して説明される外部接続された回路に出力リンクエンジン５５によって出力される。
【００２１】
直列パケットが入力ピン５３を介してデバッグポート３０に入力されると、変換は以下のように処理される。各バイトがパケットバッファを形成するシフトレジスタ８０に送られる。このような直列パケットは図８に示される。図８においては第１バイト８１はパケットの大きさを示す。これはパケットの最新バイトの位置を示す。図３を参照すると、シフトレジスタ８０はバイトを単純順序で複写し、これらのバイトはポートステートマシン５９の制御下でシフトレジスタ８０から転送バス８３にシフトされる。ポートステートマシン５９はパケットの宛先バイト８４と、パケットがバスネットワーク１５に向けられることを示す値とを比較する。ポートステートマシン５９はパケットの次のバイト８５を転送バス上に配置させてパケットタイプ（命令コードとしても知られる）を表示し、この表示から直列リンクパケットの長さ及びフォーマットと、合成されるべきＰ−リンクパケットの長さ及びフォーマットを検査する。ポートステートマシン５９はバイトをシフトレジスタ８０から転送バス８３にシフトさせる。転送バス８３でこれらのバイトは受け入れパケットバッファ５１内に複写される。この操作は全ての直列リンクバイトがシフトレジスタ８０からバッファ８６内に複写されるまで継続され、バイトがシフトレジスタ８０からバッファ８６内に複写される位置はポートステートマシン５９の設定により決定される。これは、パケットが並列データバス２０上におかれる用意があることをＰ−リンクインタフェース２３に対して示し、上記のようにインタフェースは専用制御ライン２１を介してＰ−リンク制御ユニット２２と通信する。バスネットワーク１５がパケットを受け入れる用意がある時は、インタフェースはパケットの最初の８バイトを以下の（クロック回路で制御される）クロックサイクルで並列データバス２０に複写することにより応答する。インタフェースは全てのパケットバイトが送信されるまでパケットの連続した８バイト部分を続くクロックサイクルで並列データバス２０に複写する。最終の８バイトはインタフェースによりライン６６上で宣言されるパケット送信終了信号と同時に行われる。
【００２２】
既に記載したように、Ｐ−リンクインタフェース２３への受け入れパケット（並列或いは直列のいずれか）はレジスタバンク５８にアクセスできる。入力ピン５３からの受け入れ直列ビットパケットの宛先バイト８４が、パケットがレジスタバンク５８にアクセスするように向けられることを示すと、上記のように直列ビットパケットは受け入れパケットバッファ５１内のＰ−リンクパケットに変換されるが、Ｐ−リンクインタフェース２３に送られるよりはレジスタバンク５８にアクセスするのに使用される。パケットの１バイト（命令コード）はレジスタアクセスが読み出しか書き込みかを示す。アクセスが読み出しの場合、ポートステートマシン５９は図５に示すようにライン９０に読み出し信号を出力する。これと同時に、パケットアドレスフィールドの重要性の小さい４ビットがアドレスライン９１上におかれる。数サイクル後、レジスタ制御ブロック９２の制御下のレジスタバンク５８はアドレスされたレジスタ内の値を一度に１バイトずつ各バイトを連続したクロックサイクルでデータバス９３に複写する。データライン９３上の各バイトは送り出しパケットバッファ５０内にポートステートマシン５９の制御下で保持され、レジスタから読み出されたデータは送り出しパケットバッファ５０内のＰ−リンクパケットに合成され「ロード応答」として特定される。この応答パケットの宛先フィールドは要求ビット直列パケットの「ソース」フィールドから複写される。各パケットに提供されるトランザクション識別子（ＴＩＤ）もまた全体が複写される。応答パケットのバイトタイプは要求パケットのバイトタイプから形成され、結果として、応答Ｐ−リンクパケットは入力ピン５３への外部ソースから入力される要求パケットに応じて送り出しパケットバッファ５０内で形成される。
【００２３】
レジスタバンク５８へのアクセスタイプが書き込みアクセスの場合、書き込みライン９５がアドレスライン９１とともにポートステートマシン５９によって宣言される。数サイクル後、データの重要性の小さいバイトが受け入れパケットバッファ５１内のパケットのオペランドフィールドからデータバス９３に複写される。次の数サイクルで、全ての８バイトが複写されるまで、続く重要なバイトがレジスタバンク５８に複写される。そして、「記憶応答」パケットがこれらと関連するデータを持たず宛先バイト、タイプバイト及びトランザクション識別子バイトだけを備えること以外は、応答パケットが送り出しパケットバッファ５０内で合成される。この応答パケットは上記のように直列ビット応答パケットに変換され、シフトレジスタ７０内にロードされ、保存が行われたことを書き込み要求ソースに対して示すために出力ピン５２を介して出力される。
【００２４】
同様に、バスネットワーク１５から入力したパケットの宛先バイトが検査され、パケットがデバッグポート３０内のレジスタバンク５８にアクセスするよう向けられていることが示されると、同様の操作が実行される。パケットのフィールドタイプは、シフトレジスタ７０に送られるよりも、アクセスが読み出しか又は書き込みかを決定するのに使用される。アクセスが読み出しの場合は、図５のライン９０がポートステートマシン５９により宣言されてパケットアドレスフィールドの重要性の小さい４つのビットがアドレスライン９１上に置かれる。２サイクル後、レジスタバンク５８はデータライン９３にアドレスされていたレジスタバンク５８内に保持される値を続くサイクル毎に１バイトずつ複写する。これは受け入れパケットバッファ５１内に保持され、ポートステートマシン５９が「読み出し応答」パケットとして特定されたＰ−リンクパケットを合成する。この「読み出し応答」パケットのための宛先フィールドが要求直列ビットパケットのソースフィールドから複写される。トランザクション識別子もまた全体が複写される。「読み出し応答」パケットのバイトタイプは要求パケットのバイトタイプから形成される。
【００２５】
要求されるアクセスタイプが書き込みアクセスの場合、ポートステートマシン５９はアドレスライン９１とともに書き込みライン９５を宣言する。数サイクル後、データの重要性の小さいバイトが送り出しパケットバッファ５０内のパケットのオペランドフィールドからデータライン９３に複写される。次の数サイクルで、全てのバイトが複写されるまで、続く重要なバイトがデータライン９３に複写されて、レジスタ内に複写される。そして、「応答」パケットは、「記憶応答」パケットがこれらに関連するデータを持たずに宛先バイト、バイトタイプ及びトランザクション識別子バイトだけを備えること以外は、前述のように合成される。そして、この「応答」パケットはＰ−リンクインタフェース２３に送られ、ここで、レジスタバンク５８にアクセスするためにデータライン９３を介して入力されていた要求パケットの供給源に戻される。
【００２６】
上記説明から、図６、図７及び図８に示されるパケットフォーマットが読み出し又は書き込み操作の要求又は応答を形成するパケットを有することが理解される。図６及び図７の符号７３又は図８の符号８４で表されるパケット用の宛先識別子を含む各パケットに加えて、パケットはトランザクション識別子（ＴＩＤ）９８とソース９９の表示とを備える。パケットは宛先より特定のアドレスを識別する必要がある。このため、アドレスインジケータ１００が備えられる。デバッグポート３０でのレジスタアクセスに関連して記載したように、アドレスインジケータ１００がデバッグポート３０内の特定レジスタを示すのに使用されるが、宛先がデバッグポート３０を識別する。宛先フィールドは、バスネットワーク１５に接続した目標のサブシステム又はモジュールへのパケットを探し出すのに使用される１バイトフィールドである。要求パケットに関しては、これはアクセスされるアドレスの最も重要なバイトである。応答パケットについては、これは要求を発行したサブシステムを識別する。ソースフィールドは、応答パケット用のリターンアドレスとして使用される１バイトフィールドである。アドレスフィールドが要求アドレスの重要性の小さい３バイトにより供給される。ＴＩＤフィールドは要求者により使用されて応答を要求に関連させる。
【００２７】
直列ビットポートを使用することにより、低コストアクセスを、アクセス用にわずかなピンだけを必要とするチップに供給して、特に外部ホストの使用によりＣＰＵをデバッグするのに使用するのが好ましい。
本例では、各ＣＰＵ１２，１３は従来と同様の方法で命令シーケンスを実行するように配置される。命令セットはマイクロコンピュータ用の複数の従来の命令を含むが、本例ではまた、「事象」を送るための命令も備える。「事象」は、スレッドの命令以外の状況により通常は生じる例外的な事象である。事象は「割り込み」又は「同期トラップ」と同様の結果を生じるように使用できる。事象はＣＰＵが実行する優先順位レベルの変化を生じさせることができる点で優先される。事象論理回路４４の形をとるハードウエアが、サービスまたはハンドラルーチンにおける命令の実行なしにいくつかの事象の機能を実行できるが、事象命令の実行により事象を送ることができる。
【００２８】
ＣＰＵによる命令実行から生じる事象は、事象命令の実行により生じる。これは、同一チップ上のＣＰＵ１２又は１３のいずれかのＣＰＵに「事象」を送るのに使用でき、或いは、外部接続点を介して異なるチップ上のＣＰＵに事象を送るのに使用できる。事象命令を実行するＣＰＵは、また、バスネットワーク１５に接続された別のモジュールに事象を送ることができる。事象命令は、２つの６４ビットオペランド、事象番号及び事象オペランド、を有する。事象番号０−６３に関しては、事象が「特別事象」であるか否かを決定するのに１５ビットが使用される。１５ビットが１にセットされると、０−１４ビットが特別事象のタイプを限定するのに使用される。事象番号１６−６３は、特別事象を受けるＣＰＵ又はモジュールの宛先アドレスを識別するのに使用される。特別事象のタイプは以下のように配列される。
【００２９】
【表１】
0004732554.tif 000002
【００３０】
これらの特別事象は、ＣＰＵ１２又は１３の一方から送られるか、または、外部ホストからデバッグポート３０を介してチップ上のＣＰＵ１２又は１３のいずれか一方に送られる。「事象」は前述のようなタイプのビットパケットとして送られる。
特別事象に応答して、ＣＰＵ１２又は１３のいずれかは、命令の取り出し及び発行を停止して中断状態に入る。
【００３１】
ＣＰＵは「ＥＶＥＮＴ．ＳＵＳＰＥＮＤ」を受け取ると、中断フラグをセットする。このフラグは中断ピンの状態で論理和演算されてＣＰＵの実行段階を決定する。
以下により、中断状態に入る。
・「ＳＵＳＰＥＮＤ  ＰＩＮ」を宣言。これはチップ上の全てのＣＰＵを停止させる。
【００３２】
・「ＥＶＥＮＴ．ＳＵＳＰＥＮＤ」をＣＰＵに送る。これは受け取ったＣＰＵのみが中断する。
以下のいずれかにより、中断状態からぬけだす。
・外部「ＳＵＳＰＥＮＤ  ＰＩＮ」を宣言から否定ステージに変更する。これにより、中断フラグを持たない全てのＣＰＵに実行を再開させる。
【００３３】
・「ＥＶＥＮＴ．ＲＵＮ」特別事象をＣＰＵに送る。これは中断フラグを取り消す。「ＳＵＳＰＥＮＤ ＰＩＮ」を否定した場合、これにより、受け取ったＣＰＵに実行を再開させる。
中断状態に入ることにより、ＣＰＵに実行パイプラインを空にする。これには、実行定義時間を要する。ＣＰＵが中断している間に、その実行文脈は以下の方法のいずれかに変化する。
【００３４】
・リセットアドレス制御レジスタ「ＲＥＳＥＴ．ＨＡＮＤＬＥＲ」が変化する。
・ＣＰＵがリセットする。
ハードリセット（即ち、チップ上の全ての状態のリセット）で、「ＳＵＳＰＥＮＤ ＰＩＮ」がハードリセットの動作エッジで宣言されると、ＣＰＵは初期化されるがブートしない。ＣＰＵは、実行状態に入ると、リセット前に設定される「ＲＥＳＥＴ．ＨＡＮＤＬＥＲ」内に含まれるアドレスからブートする。
【００３５】
「ＥＶＥＮＴ．ＲＥＳＥＴ」により、受け取ったＣＰＵがソフトリセットを実行する。このタイプのリセットにより、専用シャドウレジスタ内に旧値を保持すると同時に、キー内部状態を既知の値に初期化して、リセットが起きた時のＣＰＵの状態を決定するソフトウエアをデバッグできるようにする。ＣＰＵ１２又は１３の命令実行システムとその特別事象論理回路４４との関係を図９を参照して説明する。正常動作では、ＣＰＵは命令サイクルを以下のように取り出し、実行する。プリフェッチャー１０１が命令キャッシュ４２からの命令を検索し、命令はデコードユニット１０２によりデコードされるためにバッファ内に配列して配置される。デコードユニット１０２は実行に適した命令のフォーマットを標準化する。ディスパッチャー回路１０３は、どの命令が実行可能かを制御決定し、何らかのオペランドとともに命令を実行ユニット１０４又はロード／ストアユニット１０５に発行する。また、本例のマイクロコンピュータチップは特別な事象論理回路４４を有する。この事象論理回路４４はバスネットワーク１５上のパケットから発生する命令をＰ−リンクインタフェース２３を介して受けて、正常命令取り出しシーケンスを無効にする。「事象中断」パケットを受けると、特別な事象論理回路４４はプリフェッチャー１０１の命令取り出しを停止させるとともに、ディスパッチャー回路１０３の命令送り出しを停止させる。命令の実行パイプラインは一杯になる。「事象実行」パケットは、特別な事象論理回路４４に、中断ピンが宣言されないことを条件としてプリフェッチャー１０１に対して命令の取り出しの再開をさせるようにする。正常実行命令の停止または開始に加えて、特別な事象論理回路４４は、チップが既に実行しているときにソフトウエアにより開始されるソフトリセットによって「命令ストリーム」状態を再初期化することができ、チップ上のいくつかの状態だけをリセットする。また、パケットはリセット操作に続いてコードが取り出されるアドレスを保持するレジスタを重ね書きできる。
【００３６】
特別な事象論理回路４４について図１０を参照してより詳細に説明する。
図１０は、Ｐ−リンクインタフェース２３を介してバスネットワーク１５に接続された特別な事象論理回路４４を示す。図１０に詳細に示すように、Ｐ−リンクインタフェース２３が、より詳細には以下の構成部品を含む事象論理回路４４にバス１１０を介して接続される。ライン１１２によってプリフェッチャー１０１に接続され、ライン１１３によってディスパッチャー回路１０３に接続される事象ハンドラ回路１１１。バス１１０は、また、ライン１１５に沿って事象ハンドラ回路１１１と２方向接続する事象論理回路１１４に接続する。事象論理回路１１４は、２方向接続で中断フラグ１１７及びカウンタ／アラーム回路１１６と接続する。中断ピン１１８が事象論理回路１１４と接続する。リセットハンドラレジスタ１１９がライン１２０にそって事象論理回路１１４と２方向接続する。これは、また、シャドウリセットハンドラレジスタ１２１とも接続する。
【００３７】
図１０の回路動作は以下のとおりである。命令がオン−チップで実行されるか、或いは、外部チップ上の回路動作から引き出され、図１０のモジュールを識別する宛先インジケータであるバスネットワーク１５にパケットを送信する。この場合、パケットはＰ−リンクインタフェース２３を介してバス１１０に沿って事象ハンドラ回路１１１と事象論理回路１１４に運ばれる。事象論理回路１１４は、特別事象が「事象実行」か「事象リセット」か「事象中断」か又は「事象設定リセットハンドラ」かを決定する。
【００３８】
「事象中断」を受け取ると、事象論理回路１１４は中断フラグ１１７をセットする。事象論理回路１１４は中断フラグ１１７の状態と中断ピン１１８の状態との論理和を形成する。結果は中断状態として参照される。「事象中断」の到着が中断状態を変化させない場合、それ以上何も行われない。「事象中断」の到着が中断状態を変化させると、事象論理回路１１４は命令キャッシュ４２からの命令のアクセスを禁止する。これは、プリフェッチャー１０１による命令の取り出しとディスパッチャー回路１０３による命令の送り出しを制御する事象ハンドラ回路１１１への信号により行われる。「事象中断」の受領に先立って取り出された命令は完遂されるが、事象論理回路１１４と協働するＣＰＵは結果として取り出される又は実行される命令がない状態に入る。
【００３９】
「事象実行」を受け取ると、事象論理回路１１４は中断フラグ１１７を取り消す。事象論理回路１１４は、中断フラグ１１７の状態と中断ピン１１８の状態の論理和演算を行う。結果は中断状態として参照される。「事象実行」の到着が中断状態を変化させない場合、それ以上何も行われない。「事象実行」の到着が中断状態を変化させると、事象論理回路１１４が命令キャッシュ４２からの命令のアクセスの禁止を停止する。事象ハンドラ回路１１１を通った信号は、プリフェッチャー１０１に対してＣＰＵが取り出し−実行サイクルをそれが中断した点で再開することを示す。
【００４０】
「事象設定リセットハンドラ」を受け取った場合、事象論理回路１１４は、パケット内の特別事象を伴うオペランドをリセットハンドラレジスタ１１９内に複写するようにし、リセットハンドラレジスタ１１９内に保持された前回値はシャドウリセットハンドラレジスタ１２１に入力される。
「事象リセット」を受け取ると、事象論理回路１１４は事象ハンドラ回路１１１に、プリフェッチャー１０１へのライン１１２上の新たな命令点を設けることにより現在の実行スレッドを停止させて、最初の命令がリセットハンドラレジスタ１１９内に与えられたアドレスから取り出される新たな命令シーケンスの実行を開始する。この新アドレスはプリフェッチャー１０１に供給される前に事象論理回路１１４を介して事象ハンドラ回路１１１へのライン１２０上で得られる。
【００４１】
このため、バスネットワーク１５上のパケットに表示される特別事象の使用によって、オン−チップソース又はオフ−チップソースを使用してＣＰＵによる命令の取り出し及び実行の中断、或いは、中断されたＣＰＵの実行の再開ができることは明らかである。これはまた、ＣＰＵを初期状態にリセットし、或いは、Ｐ−リンクシステム上のどこか又はデバッグポート３０を使用した相互接続ネットワーク内のどこかからＣＰＵ用の新ブートコードを提供するのに使用して、ＣＰＵによりアクセスできるネットワークを通って物理アドレススペースの一部を形成できる。
【００４２】
事象論理回路４４を示すより詳細な図面が図１５、図１６、図１７に提供される。図１５はＰ−リンクインタフェース２３に隣接する受信バッファ１４０と送信バッファ１４１とを備えるバスネットワーク１５を示す。特別事象を含むパケットが受信バッファ１４０内に受け取られると、入力はライン１４２、１４３、１４４上から特別事象デコード論理回路１４５に供給される。１５ビットの事象番号が１にセットされることによって特別事象を示すと、Ｐ有効信号がライン１４２から特別事象デコード論理回路１４５に供給される。同時に、パケットの事象コードフィールドがライン１４３から特別事象デコード論理回路１４５に供給され、事象オペランドフィールドがライン１４４から特別事象デコード論理回路１４５に供給される。ライン１４２上のＰ有効信号の宣言に応答して、特別事象デコード論理回路１４５は以下の表に示されるように事象コードフィールドをデコードする。
【００４３】
【表２】
0004732554.tif 000003
【００４４】
デコーディングに続く操作サイクルで、特別事象デコード論理回路１４５はライン１４６上に信号Ｐ−Ｅｖｅｎｔ−ｄｏｎｅを出力して受信バッファ１４０を取り消す。ライン１４３上の信号をデコードした結果に応じて、特別事象デコード論理回路１４５はライン１４７上のＥｖｅｎｔ−Ｒｕｎ信号又はライン１４８上のＥｖｅｎｔ−Ｓｕｓｐｅｎｄ信号を、ライン１５０によって中断ピンに接続された中断論理回路１４９に出力できる。代わりに、ライン１４３上の信号のデコーディングにより、特別事象デコード論理回路１４５にライン１５１上のＥｖｅｎｔ−Ｒｅｓｅｔ信号をＣＰＵパイプライン回路１５２に出力させることもできる。或いは、特別事象デコード論理回路１４５はライン１５３上のＥｖｅｎｔ−Ｓｅｔ−Ｒｅｓｅｔ−Ｈａｎｄｌｅｒ信号をバス１５６上のオペランド値とともにリセットハンドラ論理回路１５４に出力することもできる。
【００４５】
図１６は中断論理回路１４９を示す。ライン１４７と１４８は、ＳＲラッチ１５７への入力を形成し、ＳＲラッチ１５７は他方の入力１５０を提供する中断ピンを有するＯＲゲート１５９への第２の入力１５８を提供する。このように、ライン１４７上の信号は中断ピンとともに論理和演算されて、中断フラグを提供するラッチ１６１を含むライン１６０上に取り出し不可信号を発生する。ライン１６０上の信号は命令キャッシュ４２からの命令の取り出しを禁止する効果を持つ。これは結果的にＣＰＵに命令を欠乏させるので、ＣＰＵは実行を中断する。ライン１４８上の信号の宣言は、ＳＲラッチ１５７の正常佐作動におけるライン１４７上の前回宣言されたどんな信号も取り消す。
【００４６】
図１７はリセットハンドラ論理回路１５４を示す。ライン１５３上のＥｖｅｎｔ−ｓｅｔ信号が宣言されると、これはリセットハンドラレジスタ１１９、シャドウリセットハンドラレジスタ１２１及び命令ポインタバス１１２と相互に接続するレジスタバス１６３と接続したリセットハンドラステートマシン１６２に供給される。信号１５３の宣言に対する応答は以下の通りである。
【００４７】
１．リセットハンドラステートマシン１６２はリセットハンドラレジスタ１１９の読み出しライン１６４を宣言し、これはリセットハンドラレジスタ１１９内の値をレジスタバス１６３内に読み込ませる。
２．リセットハンドラステートマシン１６２はシャドウリセットハンドラレジスタ１２１の書き込みライン１６５を宣言して、レジスタバス上の値をシャドウリセットハンドラレジスタ１２１内に書き込ませる。
【００４８】
３．リセットハンドラステートマシン１６２はＥｖ−ｈａｎｄｌｅバス１５６上の値をレジスタバスに入力する。
４．リセットハンドラステートマシン１６２はリセットハンドラレジスタ１１９の書き込みライン１６４を宣言して、レジスタバス上の値をリセットハンドラレジスタ１１９内に複写させる。
【００４９】
或いは、ＣＰＵパイプライン回路１５２からのライン１６６上にｇｅｔ−ｉｐｔｒ信号が宣言されると、以下のことが起きる。リセットハンドラステートマシン１６２がシャドウリセットハンドラレジスタ１２１の読み出しライン（Ｒ／Ｗ）を宣言し、リセットハンドラレジスタの値をレジスタバスに読み込ませる。この値はラインＩＰＴＲに沿って送信される。
【００５０】
図１１に示される配置と同様のデバッグポート３０を介してチップが外部マイクロコンピュータに接続されると、以下の方法がＣＰＵ１２又は１３のいずれかをブートさせるのに使用される。２つのＣＰＵ１２と１３は共通の中断ピン１１８に接続される。中断ピン１１８が宣言されると、ハードリセットピン４６が宣言された後、両ＣＰＵは命令の取り出し意図を妨害される。そして、外部デバッグポート３０と外部マイクロコンピュータ１２３が、チップ１１上のレジスタを制御するために直接書き込み、またチップ１１の外部バス接続点３３に接続するＤＲＡＭメモリ内に必要なブートコードを記憶することによって最小のオン−チップ状態を構成するのに使用される。中断ピンの状態が変化すると、ＣＰＵの一つがチップ１１用のＤＲＡＭ内に保持されているコードからブートできる。これを達成するため、中断ピン１１８はハードリセットが宣言された後宣言状態に変化する。外部マイクロコンピュータ１２３はデバッグポート３０を介してパケットを送って図１１に示されるメモリ１２０内にブートコードを書き込む。そして、外部マイクロコンピュータ１２３はＣＰＵ１２又は１３のうちの選択された一つ、本例ではＣＰＵ１３、に特別事象ＥＶＥＮＴ−ＳＥＴ−ＲＥＳＥＴ−ＨＡＮＤＬＥＲを送る命令を実行する。これは、ＣＰＵ１３のリセットハンドラレジスタ１１９内に新たな目標アドレスを供給する。その後、ＣＰＵ１３はデバッグポート３０を介して特別事象ＥＶＥＮＴ−ＳＵＳＰＥＮＤを他方のＣＰＵ１２に送るための命令を実行する。これは、ＣＰＵの中断フラグ１１７をセットするものである。そして、ＣＰＵ１３がメモリ１２０から引き出された実行コードを開始するように、中断ピン１１８上の宣言信号がリセットハンドラレジスタ１１９内に保持された目標ブートアドレスから取り除かれる。ＣＰＵ１２はその中断フラグ１１７の開始により中断したままである。ＣＰＵ１２を作動させる必要があるときは、特別命令ＥＶＥＮＴ−ＳＥＴ−ＲＥＳＥＴ−ＨＡＮＤＬＥＲをＣＰＵ１２へ送るための命令をＣＰＵ１３が実行することにより開始できる。これは、ＣＰＵ１２のリセットハンドラレジスタ１１９内に保持された省略時ブート動作アドレスを変化させる。その後、ＣＰＵ１３はＣＰＵ１２に特別事象ＥＶＥＮＴ−ＲＵＮを送るための命令を実行し、これは、前述のように、ＣＰＵのリセットハンドラレジスタ１１９内のアドレスから引き出されたコードでＣＰＵ１２の実行を開始する。
【００５１】
このように、図１のマイクロコンピュータはＲＯＭ内に有効なコードを持つ必要なしにブートできる。
上記ブート手続きは、チップ１１のためのローカルメモリ１２０内にロードされたブートコードを使用するが、同様の手続きが外部マイクロコンピュータ１２３にローカルなメモリ１２５内に配置されたコードを使用して実行できる。これを達成するためには、ＣＰＵ１３のリセットハンドラレジスタ１１９にロードするためにデバッグポート３０を介して送られる特別事象が、デバッグポート３０のアドレススペース内に位置するブートコード用目標アドレスを供給する点を除いて、上記と同様の手続きが実行される。このように、宣言信号が中断ピン１１８から取り除かれると、ＣＰＵ１３は外部コンピュータ及び外部メモリから直接にコードの取り出しを開始する。必要なときは、前述のようにＣＰＵ１３によってＣＰＵ１２を起動できる。
【００５２】
中断ピン１１８から宣言信号を取り除く前に、特別命令ＥＶＥＮＴ−ＳＵＳＰＥＮＤを送るためのライン１１３を設けることによって、ＣＰＵ１３が単独でブートしてＣＰＵ１２にブートさせる手配をするので、デバッグポート３０を介して外部マイクロコンピュータにより両ＣＰＵ１２、１３をブートさせるようにするよりもむしろ、デバッグポート３０を介した命令取り出し量を減少できる。
【００５３】
ウォッチポイントレジスタがプログラム実行を監視するのに使用できる。これらのレジスタは、特定メモリストアがアドレスされるか、或いは、特定ロケーションからの命令が実行されると、デバッグルーチンを開始するのに使用できる。
相互に接続された複数のチップを持つネットワークにおけるチップ１１を使用した種々の例が図１１から図１４に示される。
【００５４】
図１１の例では、ＣＰＵ１３は図１１に関して説明される操作には含まれないので、チップ１１は簡略化のために単一ＣＰＵ１２を備えて示される。チップ１１はＣＰＵ１２にローカルであってＣＰＵ１２のローカルアドレススペースの一部を形成するメモリチップ１２０に外部バス接続点３３を介して接続される。デバッグポート３０は２つの直列ワイヤ１２１、１２２によって別のマイクロコンピュータ１２３に接続される。このマイクロコンピュータ１２３は、この場合、チップ１１とともに使用するデバッギングホストを形成する。ライン１２１はチップ１１への１方向入力通路を提供し、ライン１２２はホストマイクロコンピュータ１２３への１方向出力通路を提供する。ホストマイクロコンピュータ１２３は、バス１２４を介してメモリチップ１２５に接続され、このメモリチップ１２５はホストマイクロコンピュータ１２３にローカルなので、ホストマイクロコンピュータ１２３のローカルアドレススペースの一部を形成する。ＣＰＵ１２でデバッギング操作を実行するためには、ホストマイクロコンピュータ１２３は、マイクロコンピュータ１２３内のオン−チップから、又は、メモリチップ１２５から引き出されるソフトウエアを作動して、前述のように、特別事象をパケット内に発行させて、直列ライン１２１に沿ってデバッグポート３０を介してバスネットワーク１５に送ることができる。これらはＣＰＵ１２を示す宛先アドレスをもつので、図１０に関して既に説明したようにこの特別事象が処理される。これは、ＣＰＵ１２をいつでも中断させ、そのリセットハンドラレジスタの値を置き換え、また、ＣＰＵ１２を直前の状態またはリセットハンドラレジスタ１１９内の値によって示される新たな状態のいずれかからリセットするのに使用できる。ＣＰＵ１２はホストマイクロコンピュータ１２３にローカルなメモリチップ１２５のアドレス内に位置するアドレススペースの一部を持つ。デバッグポート３０はＣＰＵ１２用のローカルアドレススペースの一部を形成するので、メモリアクセスをデバッグポート３０に配分されたアドレススペースに対して行うことができ、この場合、ホストマイクロコンピュータ１２３のソフトウエア実行によって応答が合成される。このため、リセットハンドラレジスタ１１９をＣＰＵ１２に対してローカルにするよりはホストマイクロコンピュータに対してローカルなアドレスに設定することができる。このようにして、ＣＰＵ１２の作動から独立してホストマイクロコンピュータを独自にＣＰＵ１２により使用される命令ソース及び／またはデータソースとして確立できる。このメカニズムはホストマイクロコンピュータ１２３からデバッギングを開始するのに使用できる。２つのＣＰＵ１２と１３を持つチップ１１の場合、前述のように、ＣＰＵ１２で実施されるデバッグ操作による影響を受けないＣＰＵ１３でのソフトウエア実行を残しながら、ＣＰＵ１２でのソフトウエア実行をデバッグすることができる。これは図１２に示される位置であり、ここでは第２のＣＰＵ１３が、破線で示され、ホストマイクロコンピュータ１２３と関連するＣＰＵ１２でのデバッグルーチン操作から全く独立して命令キャッシュからまたはメモリ１２０から命令を受けるために正常に作動している。
【００５５】
図１３は、図１１及び図１２に関して説明したのと同様のネットワークの別の配列を示す。しかしながら、この場合、ＣＰＵ１２にはデータウォッチポイントレジスタ１３０とコードウォッチポイントレジスタ１３１とが備えられており、これらのレジスタには、データ値または命令位置のためのアドレスが保持されて、ウォッチポイントに到達したときにデバッグルーチンを開始する。本例では、ホストマイクロコンピュータ１２３は、ＣＰＵ１２によるプログラム実行中のどの時点でもＣＰＵ１２の実行を簡単に停止でき、レジスタ１３０または１３１のウォッチポイント状態を修正して、ＣＰＵ１２のオリジナルプログラムに制御を戻す。ＣＰＵ１２は、レジスタ１３０または１３１のいずれかで設定されたウォッチポイントをトリガする命令を実行すると、正常のシーケンスで取り出し命令を停止して、デバッグハンドラレジスタ１３２の内容により特定された命令から始まる命令の取り出しと実行を開始する。デバッグハンドラレジスタ１３２が、ＣＰＵ１２にローカルであるよりもホストマイクロコンピュータ１２３にローカルなアドレスを含む場合、ＣＰＵ１２はホストマイクロコンピュータ１２３からの命令の取り出しを開始する。このようにして、ホストマイクロコンピュータは、ＣＰＵ１２にローカルなどんなメモリも使用せず、また、ホストマイクロコンピュータ１２３のプログラムと協働するように設計されたＣＰＵ１２のプログラムを必要とせずに、既に実行されているプログラムのウォッチポイントデバッギングを確立できる。このように、上記例は非協働デバッギングを提供する。チップ１１のＣＰＵの操作システム及びアプリケーションソフトウエアは、ホストマイクロコンピュータ１２３がどのように作業するか、或いは、どのオペレーティングシステムまたはソフトウエアがホストマイクロコンピュータ１２３に組み込まれるかについて何の知識も必要としない。
【００５６】
従来のコンピュータ構造では、ウォッチポイントトリガはオペレーティングシステムによって管理されるトラップまたは事象に共通のベクトルを使用して処理される。これらのトラップ及び事象は、ハンドラルーチンのアドレスを提供する従来のレジスタセット１３４を使用する。上述の例では、デバッグハンドラレジスタ１３２とリセットハンドラレジスタ１３６を備えるエクストラレジスタセット１３５が設けられる。このように、ウォッチポイントハンドリングルーチンのためのハンドラルーチンのアドレスを見つけることができるエクストラレジスタセット１３５を設けることによって、オペレーティングシステムからの独立性が確立される。
【００５７】
図１４は、図１２で説明したのと同じネットワークを示す。この場合、ホストマイクロコンピュータ１２３はデバッグポート３０に接続して設けられて、デバッグポート３０を介してデバッギング及び特別事象の送信に使用するために前述のように作動する。しかしながら、デバッギングリアルタイムコードでできるだけ速くＣＰＵ１２または１３のいずれか１つのデバッギングを監視する必要がある場合、ホストマイクロコンピュータ１２３の代わりにＣＰＵ１２または１３の一方を使用することによって、ＣＰＵ１２または１３の他方のデバッギングを実行するのに本例を使用できる。オン−チップバスネットワーク１５に沿ったパケットの転送は、デバッグポート３０を介した外部通信よりも迅速に実施できる。この場合、同一チップ上のＣＰＵ１２または１３の一方のデバッギング操作を実施するのにオン−チップＣＰＵの他方のＣＰＵによって制御が行われるが、ＣＰＵ１２または１３のいずれか一方が、同一チップ上の他方のＣＰＵに特別事象を送る命令を実行して、ホストマイクロコンピュータ１２３の使用に関して既に記載したようなデバッギング操作を実施する。
【００５８】
上記例では、オン−チップＣＰＵ１２または１３のいずれかのオペレーティングシステムまたはアプリケーションソフトウエアを制限することなく、外部のホストマイクロコンピュータ１２３をオン−チップＣＰＵ１２または１３のいずれかのデバッギングを実施するのに使用できる。ウォッチポイントデバッギングは、オン−チップＣＰＵにローカルなメモリを使用する必要性なしに実行できる。両オン−チップＣＰＵ１２と１３及び外部接続されたホストマイクロコンピュータ１２３はデバッグポート３０を介したパケット通信によって相互の状態とアクセスできる。オン−チップＣＰＵ１２と１３は、ホストマイクロコンピュータ１２３内のＣＰＵのどんな作動からも独立して外部メモリ１２５とアクセスできる。これにより、オン−チップＣＰＵが、外部接続されたホストマイクロコンピュータにローカルなメモリからのコードにアクセスできる。
【００５９】
外部ホストは、コンピュータまたはプログラマブル論理アレイのようなコンピュータ装置を含んで構成される。
【図面の簡単な説明】
【図１】本発明によるマイクロコンピュータチップのブロック図
【図２】図１のマイクロコンピュータのデバッグポートの詳細を示す図
【図３】図２のデバッグポートを介したデジタル信号パケットの入力を示す図
【図４】図２のデバッグポートのデジタル信号パケットの出力を示す図
【図５】図２のデバッグポートのレジスタのアクセスを示す図
【図６】図１のマイクロコンピュータに使用されるデジタル信号要求パケットのフォーマットを示す図
【図７】図１のマイクロコンピュータに使用されるデジタル信号応答パケットのフォーマットを示す図
【図８】図２のデバッグポートを介して出力又は入力される直列要求パケットの一例を示す図
【図９】特別事象論理を含む図１のマイクロコンピュータの１つのＣＰＵの詳細を示す図
【図１０】図９の特別事象論理の詳細を示す図
【図１１】ホストコンピュータに接続されてホストの作動によってＣＰＵをデバッギングするのに使用される、図１に示されるようなマイクロコンピュータを示す図
【図１２】第２のＣＰＵが同一チップ上に設けられて、他方のＣＰＵがホストによってデバッグされる間正常に作動する、図１１と同様の配列のマイクロコンピュータを示す図
【図１３】ウォッチポイントデバッギングに使用するためのホストコンピュータに接続されたときに、図１に示されるようなマイクロコンピュータの一方のＣＰＵ形成部分を示す図
【図１４】マイクロコンピュータ上の一方のＣＰＵが同一チップ上の他方のＣＰＵによりデバッグされるホストコンピュータに接続された、図１に示されるようなマイクロコンピュータを示す図
【図１５】図１０の論理回路の一部をより詳細に示す図
【図１６】図１５の論理回路の一部をより詳細に示す図
【図１７】図１５の論理回路の他の部分をより詳細に示す図
【図１】
0004732554.tif 000004
【図２】
0004732554.tif 000005
【図３】
0004732554.tif 000006
【図４】
0004732554.tif 000007
【図５】
0004732554.tif 000008
【図６】
0004732554.tif 000009
【図７】
0004732554.tif 000010
【図８】
0004732554.tif 000011
【図９】
0004732554.tif 000012
【図１０】
0004732554.tif 000013
【図１１】
0004732554.tif 000014
【図１２】
0004732554.tif 000015
【図１３】
0004732554.tif 000016
【図１４】
0004732554.tif 000017
【図１５】
0004732554.tif 000018
【図１６】
0004732554.tif 000019
【図１７】
0004732554.tif 000020