(57)【要約】【課題】大規模集積回路の試験やデバッグを行うために、高価な試験器を用いず、可観測性と試験性と制御性が優れ、開発時間の短縮が可能なエミュレーション、シミュレーション、試験の構造と方法を提供する。【解決手段】本エミュレーション装置（１１）は、共通の制御情報（８８０１）をエミュレーション装置が分割されている複数の各クロックドメイン（１２１３、１２１５、１２１７）に分配し、またクロックドメインに個別のクロック制御（８９０５、８９０７、８９１３）を与える。【選択図】図８８
2006349699.tif 000002
【特許請求の範囲】
【請求項１】
電子装置であって、
Ａ）  半導体チップを含み、その上に予め定められた動作を実行可能な集積回路が製作され、
前記半導体チップは、
Ｂ）  複数のドメインとして配置され、第一のクロック速度で前記動作を行う機能回路と、
Ｃ）  前記機能回路の機械状態に関する情報を与える追加的回路と、
を備え、
前記追加的回路は、
ｉ）前記機能回路の複数のドメインのそれぞれ１つを経由して伸び、そのドメインに動作上関係する複数の走査経路部分をもち、前記機能回路と通信し前記第一のクロック速度とは異なる第二のクロック速度で前記機能回路を介してデータを走査する走査経路と、
ｉｉ）前記機能回路の前記複数のドメインの関係する１つの中にそれぞれ物理的に位置する複数のクロック制御回路と、
ｉｉｉ）クロック選択信号を供給するクロック選択回路と、
ｉｖ）複数のラッチ回路であって、それぞれが前記機能回路の前記複数のドメインの関係する１つの中に物理的に位置し、各ラッチ回路が前記クロック選択回路に結合する入力と前記複数のクロック制御回路の１つに結合する出力を備え、前記クロック選択信号をラッチし、そのラッチしたクロック選択信号を前記クロック制御回路に適用する前記複数のラッチ回路、
を備え、
各クロック制御回路は前記ラッチされたクロック選択信号に応答して前記機能回路の他のドメインの中に位置する他のクロック制御回路とは無関係に動作可能であり、前記機能回路の関係するドメインに使用される第一のクロック速度の第一のクロック信号と、前記機能回路の関係するドメインの関係する走査経路部分によって使用される第二のクロック速度の第二のクロック信号の選択された１つを供給することを特徴とする、
電子装置。
【請求項２】
請求項１に記載の電子装置であって、前記追加的回路が、前記クロック制御回路に接続され更に前記ドメインのそれぞれの中の前記複数のラッチ回路の少なくとも１つに接続され、前記クロック選択回路からのクロック選択信号を前記ドメインのそれぞれの前記ラッチ回路に同報通信するための制御バスを含む、電子装置。
【請求項３】
請求項２に記載の電子装置であって、前記制御バスが多数の信号経路からなり、その信号経路の数は前記集積回路の前記機能回路の前記ドメインの数とは無関係である、電子装置。
【請求項４】
請求項１に記載の電子装置であって、前記各走査経路部分は、関係するドメインに関係する少なくとも１つのラッチ回路の制御入力に接続された少なくとも１つの走査ラッチを含み、前記制御入力に前記ラッチ回路の動作を制御する制御信号を供給する制御走査経路部分を含む、電子装置。
【請求項５】
請求項４に記載の電子装置であって、前記制御走査経路部分の前記走査ラッチが前記第二のクロック信号を受信するように結合するクロック入力を持つ、電子装置。
【請求項６】
請求項１に記載の電子装置であって、前記機能回路の複数のドメインの各々がラッチ回路ペアと関係し、
前記クロック選択回路が、第一のクロック速度を選択するための第一クロック選択信号と、第二のクロック速度を選択するための第二クロック選択信号とを生成し、
各ドメインの前記ラッチ回路ペアの第一ラッチ回路が、前記第一クロック選択信号の受信に応答して、ラッチした第一クロック選択信号を関係するクロック制御回路に適用し、
各ドメインの前記ラッチ回路ペアの第二ラッチ回路が、前記第二クロック選択信号の受信に応答して、ラッチした第二クロック選択信号を関係するクロック制御回路に適用する、
電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権、１９８９年、テキサス・インスツルメンツ社。本特許の開示の一部は著作権保護で制約される資料を含む。著作権者は、米国特許商標庁の記録で入手できる特許の開示をいかなる人が複写することにも異議はないが、その他については全ての著作権を留保する。
【０００２】
（産業上の利用分野）
本発明は電子データ処理およびエミュレーション、シミュレーション、試験性装置およびシステム、その製作および操作方法に関する。
【０００３】
（従来の技術）
進んだウエーハリソグラフィと表面取付けパッキング技術により、シリコンおよびプリント基板レベルの電子設計において機能はますます複雑になった。設計密度が高くなり接続間隔が狭くなったために物理的なアクセスがますます困難になっている。試験およびデバッグ中に最終製品を制御および観察できるように、試験性を設計に組み込むことが必要である。製品を出荷する前に、最終試験の段階で全ての製作上の欠陥を検出することが望ましい。複雑な設計でこの基本的な必要性を満たすことは、自動試験装置によって製品を試験できるように論理設計段階で試験性を考慮に入れることなしには困難である。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
機能性および製作上の欠陥を試験する他に、応用ソフトウエア開発にはシステムまたはサブシステムの設計段階で同様なレベルのシミュレーション、可観測性、制御性が必要である。設計のエミュレーション段階で、ＩＣ（集積回路）やＩＣの集合が、ソフトウエアプログラムにリンクされたときに最終の設備または応用において正しく機能することを確認する必要がある。
【０００５】
ＩＣは自動車工業、通信、国防システム、生命維持装置にますます多く使われているので、完全な試験と大規模の実時間デバッグが重要なニーズになっている。
【０００６】
機能試験では、設計者は仕様に合致していることを確かめるための試験方式を作る責任があるが、これはまだ現在広く用いられている試験方法に止まっている。非常に大きなシステムで欠陥を高いレベルで検出するには、この方法は不十分であることが分かっている。完全な試験性を得るには試験パターンを自動的に発生することが望ましく、制御性と可観測性は試験の完全な階層（システムレベルからトランジスタレベルまで）にわたる重要な目標である。
【０００７】
大規模な設計における別の問題は、時間と費用がかなりかかることである。再使用が可能な設計という思想と矛盾しない試験性の回路、システムおよび方法が望ましい。このようにすれば、その後の装置やシステムは、最初の装置で実施された試験性、シミュレーションおよびエミュレーション回路、システムおよび方法を再使用することにより、試験性、シミュレーションおよびエミュレーションのための限界設計費用を少なくすることができる。順向の（ｐｒｏａｃｔｉｖｅ）試験性、シミュレーションおよびエミュレーションの方法がなければ、その後の設計時間の多くが試験パターンの作成と等級づけに費やされる。
【０００８】
再使用できるようにモジュールを設計し、またその試験パターンを完全に作成して等級づけることにたとえ大きな投資をしても、その後モジュールを用いるときにそれが用途に特有の論理の中に埋没してしまって、これにアクセスすることは困難または不可能になる場合がある。従ってこの落とし穴を避けることが望ましい。
【０００９】
例えばＩＣ設計の進歩に伴って内部の可観測性や制御性が減少し、欠陥の発見や状態の追跡ができなくなり、試験の開発と検査の問題が増し、設計シミュレーションの複雑さが増し、ＣＡＤ（計算機支援設計）ツールのコストが絶えず増加している。基板設計の副作用として、レジスタの可観測性と制御性が減少し、設計検査におけるデバッグとシミュレーションが複雑化し、多くの回路を１つのパッケージに納めるので物理的にアクセスできなくなって従来のエミュレーションが不可能になり、基板上の経路がますます複雑になり、設計ツールや混合形式のパッケージや製作しやすい設計などのコストが増加している。用途開発の副作用は、状態の可観測性が低下し、高速エミュレーションが困難になり、シミュレーションの時間が増え、デバッグの複雑さが増加し、エミュレータのコストが増加している。製作の副作用としては、可観測性と制御性が減少し、試験方式とモデルが複雑になり、試験が複雑になり、混合形式のパッケージ、自動試験装置のコストが絶えず増加して７ケタ（７−ｆｉｇｕｒｅ）にもなり、許容差が厳しくなっている。
【課題を解決するための手段】
【００１０】
本発明の目的は次の通りである。物理的な検査や特殊な試験器なしに、可観測性と制御性を与える優れたエミュレーション、シミュレーション、試験の構造と方法を提供し、システム設計の重要な要素に適用して試験とハードウエアおよびソフトウエアの統合を支援する優れたエミュレーション、シミュレーション、試験性の構造と方法を提供し、高価な試験装置やシステムに代わる実行可能な優れたエミュレーション、シミュレーション、試験の構造と方法を提供し、ハードウエアエミュレーション、故障エミュレーション、シミュレーション、組込み試験の高度の操作を統合する優れたエミュレーション、シミュレーション、試験の構造と方法を提供し、ハードウエアとソフトウエアの可視性と制御に適用して用途開発の時間を縮め、これにより新しい製品のメーカーから市場までの時間を減少させる優れたエミュレーション、シミュレーション、試験の構造と方法を提供し、関連するチップとシステムの階層的分割を進めて、再使用可能な試験を自動的に生成する優れたエミュレーション、シミュレーション、試験の構造と方法を提供する。
【００１１】
本発明の一態様では、エミュレーション装置は、このエミュレーション装置が分割される複数の各クロックドメインに共通の制御情報を分配し、またクロックドメインに個別化したクロック制御を与える。
【実施例】
【００１２】
いろいろな新規の電子的構造、装置、システム、方法が、図１−図４３の詳細な説明に広範に述べられており、これらの説明は米国特許第５，０７２，４１８号に含まれている。
【００１３】
米国特許第５，０７２，４１８に述べられておりここでも更に説明する装置１１は、図４４に示す開発ツールと高度にインターフェースされている。ハードウエア設計ツールは拡張された開発システム１１０１を備え、拡張された開発システム１１０１は装置１１を保持する回路板１０４３に直列の線１１０３により接続する。この例では、回路板１０４３は応用ホスト計算機１０４４に納められる。また開発ツールには評価モジュール１１１１が設けられ、アナログインターフェース板ＡＩＢ１１１３に接続する。
【００１４】
ユーザはソフトウエア開発システムＳＷＤＳを用いてＣ計算機言語で書かれた原始コード１１２１を入力し、この原始コード１１２１をＣコンパイラ１１２３でコンパイルしてコード１１２５に変換する。
【００１５】
Ｃコンパイラ１１２３は、例えば標準のカーニハン（ｋｅｒｎｉｇｈａｎ）およびリッチー（Ｒｉｔｃｈｉｅ）Ｃ言語を完全に実現する最適化コンパイラである。コンパイラ１１２３はＣで書かれたプログラムを受けてアセンブリ言語の原始コードを生成し、次にこれをアセンブラ１１２７によって目的コードに変換する。この高レベル言語コンパイラ１１２３により、アセンブリ言語で書かれた時間的に厳しいルーチンをＣプログラムの中から呼び出す。逆にアセンブリルーチンがＣ機能を呼び出してもよい。コンパイラの出力はアセンブリとリンクの前に必要な編集を行い、高度な性能を更に最適化する。コンパイラ１１２３はアセンブリ言語コードをＣ原始コードに挿入するのを支援し、高レベル言語コードとアセンブリ言語コードの相対的な比率は所定の用途の必要に応じて調整される。
【００１６】
コード１１２５はアセンブラ１１２７によって再配置可能な目的コードにアセンブルされる。リンカー１１２９は再配置不可能な機械コードすなわちリンクされた目的コードを生成し、このコードは開発システムを通じて装置１１にダウンロードされる。
【００１７】
アセンブラ１１２７とリンカー１１２９は、アセンブリ言語ファイルを実行可能な目的コードに変換するソフトウエア開発ツールを備える。主な特徴は、マクロ能力とライブラリ機能、条件付きアセンブリ、再配置可能なモジュール、完全な誤り診断、記号表および相互参照である。次に説明するように、４つのプログラムが特定のソフトウエア開発ニーズを扱う。
【００１８】
アセンブラ１１２７は、アセンブリ言語のソースファイルを機械語の目的ファイルに翻訳する。ソースファイルは命令、アセンブラ指示語、マクロ指示語を含む。アセンブラ指示語は、原始リスト形式、データアラインメント、セクションコンテントなどのアセンブリ過程のいろいろな態様を制御するのに用いられる。
【００１９】
リンカー１１２９は、目的ファイルを単一の実行可能な目的モジュールに結合する。リンカーが実行可能なモジュールを作るときに、再配置を行って外部参照を決定する。リンカーは、アセンブラが作った再配置可能な目的ファイルを入力として受ける。またリンカーは、保管ライブラリメンバーと、前のリンカーの実行で作られた出力モジュールを受ける。リンカー指示語はファイルセクションまたはアドレスへの記号の結合と、グローバル記号の定義または再定義を行う。
【００２０】
アーカイバ（ａｒｃｈｉｖｅｒ）は、一群のファイルを収集して１つの保管ファイルにする。例えば、いくつかのマクロを適切に収集して１つのマクロライブラリにする。アセンブラはライブラリの中を探して、原始コード１１２５でマクロと呼ぶメンバーを用いる。またアーカイバは一群の目的ファイルを収集して、リンク中に外部参照を決定するファイルなどの目的ライブラリにする。
【００２１】
目的形式変換器は、目的ファイルをＴＩ−ＴＡＧ形式などのいくつかのＥＰＲＯＭプログラマ形式の任意の１つに変換する。次に変換されたファイルをＥＰＲＯＭプログラマにダウンロードし、このようにして得られるＥＰＲＯＭコードをシステム１０４３の装置１１ターゲットチップで実行する。
【００２２】
シミュレータ１１３１は、コスト効率のよいソフトウエア開発と非実時間でのプログラムの検査のためにターゲットチップの動作をシミュレートする、ソフトウエアプログラムを実行する。シミュレータは全ターゲットチップの命令集合をシミュレートし、ターゲットチップが備えるＤＭＡ、タイマー、直列ポートなどの重要な周辺機能をシミュレートする。命令の入力は、メニューによるキー操作（メニューモード）かバッチファイル（ラインモード）から行われる。ヘルプメニューは全てのスクリーンモードに与えられる。その標準インターフェースはユーザ毎の要求に合わせることができる。シミュレーションパラメータはファイルから高速で記憶／検索され、個々のセッションの準備を容易にする。逆アセンブリにより原始ステートメントの編集と再アセンブリができる。メモリは１６進の３２ビット値とアセンブルされた原始コードとして、別個にまたは同時に表示される。
【００２３】
シミュレータ１１３１の実行モードは次のものを含む。１）単／複命令カウント、２）単／複サイクルカウント、３）Ｕｎｔｉｌ条件を満足、４）Ｗｈｉｌｅ条件から出る、５）Ｆｏｒセットループカウント、６）キー入力による停止付き無制限実行。追跡式は容易に定義される。追跡の実行で、ディスプレイの選択は次のものを含む。１）指定された式の値、２）キャッシュレジスタ、３）コードの容易な最適化のための命令パイプライン。区切り点の条件は、アドレス読取り、アドレス書込み、アドレス読取りまたは書込み、アドレス実行、式有効を含む。シミュレータ１１３１はキャッシュ利用をシミュレートし、サイクルカウンティングを行う。例えばサイクルカウンティングでは、単一ステップモードまたは実行モードでのクロックサイクル数が表示される。外部メモリは、正確なサイクルカウンティングができる待ち状態で形成される。
【００２４】
シミュレータ１１３１は、アセンブラ１１２７とリンカー１１２９が作る目的コードを受ける。入力および出力ファイルはＩ／Ｏ命令のポートアドレスに関連し、プロセッサに接続するＩ／Ｏ装置をシミュレートするのに適している。プログラムの実行を開始する前に全ての区切り点を設定し、追跡形式を定義する。
【００２５】
シミュレータ１１３１でプログラムを実行中は、各命令をシミュレータ１１３１が解釈するに従って、シミュレートされるターゲットチップの内部レジスタとメモリは修正される。区切り点または誤りに出会った場合、または実行が一時停止した場合は、実行は中断する。プログラムの実行が中断すると、内部レジスタとプログラムおよびデータメモリを検査して修正することができる。追跡メモリも表示することができる。シミュレーションセッションの記録はジャーナルファイルに保持できるので、別のシミュレーションセッション中に同じ機械状態を再現するときに再実行することができる。
【００２６】
シミュレータ１１３１により、ハードウエアを必要とせずにターゲットチップの状態の検査と監視を行うことができる。シミュレータ１１３１用に選択したオペレーティングシステムとハードウエアによって異なるが、シミュレーション速度は毎秒数百または数千命令程度である。状態を正確にシミュレートする場合は遅くなり、毎秒１ないし２命令程度である。シミュレータ１１３１の代わりに開発システム１１０１を用いることにより、エミュレーションは高速の実時間機能クロック速度で行われる。
【００２７】
シミュレータ１１３１は装置１１だけでなく、例えばファイルＩ／Ｏを通して基板１０４３上の周辺装置についても完全な計算機シミュレーションを行うことができる。
【００２８】
拡張された開発システム１１０１は、広く用いられているパーソナル計算機システムを用いて、システム設計やハードウエアおよびソフトウエアのデバッグのための、高速の回路内エミュレーションを提供する。開発ツールは、システムの概念からプロトタイプまで技術的な支援を与える。開発システムの要素は使いやすく、応用システム開発の時間と費用を大幅に減らして、設計から製作までの時間を短縮するのに必要なツールを設計者に提供する。
【００２９】
図４５は、拡張された開発システム１１０１が提供するエミュレーション環境をより詳細に示す。エミュレーションホスト計算機１１０１は、ＩＥＥＥ  ＪＴＡＧ標準に準拠したコントローラカード１１４１を備える。このコントローラカード１１４１は直列の線１１０３により図４５のＰＣ基板１０４３およびＤＳＰ装置１１と通信する。システム１０４３はテキサス・インスツルメンツＭＰＳＤ（モジュラーポート走査設計）エミュレーションと組み合わせたテキサス・インスツルメンツ・スコープ（ＴＭ）試験性を備え、開発から製作へ、更に現場試験まで完全に解決する。この新規な方法は、ディジタル信号プロセッサ（ＤＳＰ）、グラフィックス信号プロセッサ（ＧＳＰ）、メモリ（ＭＥＭ）、プログラマブルアレイロジック（ＰＡＬ）、用途に特有の集積回路（ＡＳＩＣ）、汎用論理（ＧＰＬ）、汎用マイクロ計算機およびマイクロプロセッサ、試験またはコード開発を必要とするいかなる装置にも適用できる。
【００３０】
図４５のホスト計算機１１０１の周辺装置は、プリンタ１１４３、ハードディスク１１４５、現場試験やその他の手続きで遠方の本体にアップロードするため電話線に接続する通信モデム１１４７を備える。ホスト計算機１１０１のバス１１４８による周辺との接続はエミュレーションに利用できるだけでなく、応用システムにより直列の線１１０３を通して周辺装置にアクセスすることができる。従ってホスト計算機１１０１は、システム１０４３に対してエミュレーションホストとしてだけでなく、それ自身が付属のプロセッサとしてまた通信Ｉ／Ｏ用のポートとして、またシステム１０４３が一時的に必要とするが通常はシステム１０４３に利用できないその他の周辺機能にも利用できる。
【００３１】
図４６は計算機１１０１のエミュレーションおよびシミュレーションおよびソフトウエアの構成を示し、装置に依存しないエミュレータソフトウエアはウィンドウ駆動のユーザインターフェースと試験監視プログラムを備える。
【００３２】
基板１０４３上の各装置には、装置に特有の構成ファイルが与えられる。例えば、ＤＳＰ構成ファイル、ＧＳＰ（グラフィックス信号プロセッサ）構成ファイル、プログラマブルアレイロジック（ＰＡＬ）ファイル、ＡＳＩＣファイル、ＧＰＬレジスタファイルなどがある。
【００３３】
図４５と図４６のエミュレーションハードウエアおよびソフトウエアは、使いやすいパーソナル計算機またはワークステーションに基づく開発システムを提供し、基板１０４３上のターゲットチップで高速の回路内エミュレーションを行うのに必要な全ての特徴を与える。ＤＳＰ１１の一例は、テキサス・インスツルメンツ３２０シリーズのディジタル信号プロセッサである。グラフィックス信号プロセッサ（ＧＳＰ）の一例は、テキサス・インスツルメンツ３４０２０ＧＳＰである。ＤＳＰおよびＧＳＰは新規なエミュレーション回路を備えており、詳細は以下に説明する。
【００３４】
図４５のコントローラカード１１４１を持つホスト計算機１１０１と図４６のソフトウエアとを備えるエミュレータにより、ユーザはソフトウエアとハードウエアの開発を行い、ソフトウエアとハードウエアをターゲットシステムと統合することができる。重要なエミュレーションインターフェースはあらゆるメモリ位置およびターゲットチップのレジスタを制御しまたアクセスし、付属のプロセッサとして装置の構造を拡張する。
【００３５】
エミュレータコントローラカード１１４１は、ユーザのターゲットシステム１０４３内の装置１１などの各ターゲットチップを、多重ピンターゲットコネクタにより高速で実行し監視する。一実施態様では、３０のソフトウエアおよびハードウエアの区切り点、ソフトウエアおよびハードウエアの追跡およびタイミング、単一ステップ実行が与えられる。エミュレータは装置１１の全てのレジスタを読み込み、検査し、修正することができる。プログラムデータとプログラムメモリをアップロードまたはダウンロードすることができる。エミュレーションのためのホスト計算機１１０１のユーザインターフェースはウインドウされたユーザインターフェースであって、対応するターゲットチップのシミュレータ１１３１のウインドウされたユーザインターフェースと同一の設計である。エミュレータ１１０１は多重処理できるように、移動可能であり再接続することができる。エミュレータ１１０１は実時間で実行時間クロックサイクルの基準点を与える。
【００３６】
ターゲットシステムの高速の実行および監視は、多重ピンターゲットコネクタの多重配線インターフェースまたは走査経路により適切に制御される。走査経路はシステム１０４３のターゲットチップを制御して、全てのレジスタと関連する内部および外部メモリへのアクセスを可能にする。
【００３７】
プログラムの実行は、ターゲットシステム１０４３内のターゲットチップ（例えば１１）で行われる。従って、この望ましい実施態様が与える回路内エミュレーションを用いない場合に起こるような、エミュレーション中のタイミングの差はない。従来のエミュレーションでは、ターゲットチップ１１がない場合にはエミュレーションのために信号をケーブルで送る必要があった。本実施態様はチップ１１自身を用いるノンイントルーシブ（ｎｏｎ−ｉｎｔｒｕｓｉｖｅ）システムであって、ケーブルの長さや伝送の問題がない。信号のローディングの問題がなく、不自然なメモリの制限は回避される。エミュレーションの性能は、エミュレートされるターゲットチップ自身の仕様と一致する。
【００３８】
ソフトウエアの区切り点により、プログラムの実行は指定された命令アドレスで一時停止する。ハードウエアの区切り点もチップ上でうまく動作する。所定の区切り点に達すると、プログラムは実行を一時停止して、ユーザはメモリや状態レジスタを観察することができ、または区切り点を一層複雑な条件の中に含めて、これを満足すると適当な停止モードを実行するようにすることができる。この時点でユーザは、ターゲットチップまたはシステムの状態をたった１コマンドで表示させることができる。
【００３９】
ソフトウエア追跡およびハードウエアのプログラムカウンタ追跡により、区切り点に達したときにユーザはターゲットチップ１１の状態を見ることができる。この情報は、将来の分析のために、コマンドによりファイルに保管することができる。ソフトウエアのタイミングにより、時間的に厳しいコードのベンチマーク試験のために、ユーザは区切り点の間のクロックサイクルを追跡することができる。
【００４０】
単一ステップ実行により、ユーザは一度に１命令ずつプログラムを進めることができる。命令毎に、レジスタとＣＰＵの状態が表示される。これによりソフトウエアのデバッグ中の柔軟性が大きくなり、開発時間の短縮に役立つ。
【００４１】
目的コードは、インターフェースを介して任意の有効なプログラムメモリ位置またはデータメモリ位置に、コマンドによりダウンロードされる。例えば１Ｋバイトの目的プログラムのダウンローディングの時間は１００ミリ秒程度である。プログラムを１ステップずつ進めながらレジスタを検査して修正することにより、ユーザはプログラムコードまたはパラメータを調べて修正することができる。
【００４２】
エミュレータ１１０１のウインドウされたユーザインターフェースをシミュレータ１１３１のそれと同一仕様にして、シミュレータに基づく開発からエミュレータに基づく開発へ直接移行することができる。使いやすいスクリーンがプログラムコードをニューモニックコードおよび同等の１６進コードで表示する。ウインドウされたディスプレイが、拡張されたプレシジョンレジスタ、ＣＰＵ状態、メモリ位置のために提供される。
【００４３】
第１画面オプションは主画面であって、画面の一番上に表示されるコマンドライン、特殊機能キーの機能、市販のキーボードのＦ１キーを用いて個々にアクセスされる４つの状態ウインドウを含む。ウインドウは、原始コードウインドウ、補助ディスプレイウインドウ、ＣＰＵ状態ウインドウ、拡張されたプレシジョンレジスタウインドウを含む。ウインドウの内容は、ユーザがアクセスして検査し修正することができる。
【００４４】
コマンドはメニューモードまたはラインモードで入力される。メニューモードでは、ユーザは画面の一番上にあるメニューを用いて１コマンドずつ入力しながら、利用可能な全てのオプションを見ることができる。メニューは、全てのコマンドを入力するまで表示される。ラインモードでは、ユーザは全てのコマンド式を入力することができる。コマンドの一覧を付録Ｉに示す。
【００４５】
図４５のエミュレータカード１１４１は、ＩＢＭ  ＰＣ−ＸＴ／ＡＴ計算機をホスト計算機１１０１として用いた場合はスロットに入る。カード１１４１は必要に応じて取り出して他のＰＣ（同等の機能を持つパーソナル計算機）に移すことにより、エミュレータを移動することができる。シミュレーションの際は、設計者はＥＰＲＯＭ（消去可能プログラム可能ＲＯＭ）、ＳＲＡＭ（スタティックＲＡＭ）、ＤＲＡＭ（ダイナミックＲＡＭ）、オンチップメモリおよび周辺機器などを含むコントローラカード１１４１のメモリマップを構成して、待ち状態およびアクセス特権を含むターゲットシステム１０４３の実際の環境に合わせる。このようにして、カード１１４１とホスト計算機１１０１は、特定の開発において基板１０４３にまだ設けていない周辺機器をシミュレートする。
【００４６】
一実施態様では、いくつかの応用基板の間に次々に線１１０３を延線することにより多重処理応用をエミュレートし、実時間のエミュレーションを維持し、各ターゲットチップの情報を保存する。
【００４７】
開発システム１１４１は２つのモードで動作する。すなわち、エミュレーションモードと、アルゴリズム開発および検査モードである。アルゴリズム検査モードでは、ターゲットチップ１１はターゲットシステムを完成する前に高速でソフトウエアをデバッグする。これを行うため、コードを基板１０４３上のメモリにダウンロードして、未完成のターゲットシステムの代わりに用いる応用基板上のインターフェースを介して、高速で実行する。適当な応用基板は、ＤＳＰ１１、主バス上の１６Ｋｘ３２ビットの高速（待ち状態なし）ＳＲＡＭ、拡張バス上の選択可能な２バンクの８Ｋｘ３２ビット高速（待ち状態なし）ＳＲＡＭ、５１２Ｋｘ３２ビットＤＲＡＭを含む。ＳＲＡＭが十分あるので、ユーザは各種のアルゴリズムについて実時間エミュレーションの機能とメモリの記憶の柔軟性を持つ。ＳＲＡＭが待ち状態なしの機能を持っているので、メモリの読取り／書込みを実時間で行うことができる。
【００４８】
アルゴリズムの開発とコードの検査のために、システムは区切り点に達するまで１ステップずつ実行することができる。アルゴリズムの検査は、アルゴリズムにデータを走らせてその機能を検査する。バースト実行、Ｉ／Ｏおよび他の機能が利用できる。
【００４９】
ページモードＤＲＡＭはバルク記憶性能を向上させる。応用基板の一例では、３型式のＤＲＡＭサイクルが用いられる。すなわち、１語読取り、１語書込み、ページモード読取りであって、アクセス毎の待ち状態がそれぞれ４、２、１の待ち状態を持つ。装置１１が同じメモリページ（２５６語）で２以上のバック・ツー・バック読取りサイクルを行うと、ページモード読取りサイクルが自動的に始まる。ページモードを用いると、応用基板１０４３上の応用基板１０４３ＤＲＡＭにアクセスするときの待ち状態を減らすことができる。
【００５０】
図４５で、応用システム資源への試験および開発支援システムのアクセスはコントローラカード１１４１の直列走査バスマスタすなわち走査インターフェースを経て行われる。これについては後で説明する。高度なエミュレーションおよびシミュレーション機能はプリミティブズから作られる。プリミティブズはコントローラカード１１４１を通して利用可能な制御動作（コマンドまたは命令のような）を定義するビットの集合である。
【００５１】
装置１１の機能性は、２つの例示の新規な逐次手段によりアクセスすることができる。第１の手段は図４７に示すテキサス・インスツルメンツ・モジュラーポート走査設計（ＭＰＳＤ）で、共に譲渡された出願ＳＮ０５７，０７８（ＴＩ−１２０３３）、１９８７年６月２日出願、に開示されており、引例としてここに挿入する。「Ｓ」で示すシフトレジスタラッチ（ＳＲＬ）は各モジュールの逐次走査経路の上に、ひもに通した玉のように装置１１の中に配置されており、全ての重要なレジスタにアクセスする。
【００５２】
図４８において、第２の手段はＳＣＯＰＥインターフェース１１５０内で、ＭＰＳＤ技術と結合したＳＣＯＰＥ伝送媒体を用いる。
【００５３】
図４９において、装置１１はここに説明するオンチップＪＴＡＧインターフェース１１４９を備える。走査インターフェースは図４５の線１１０３に接続し、試験クロックＴＣＫ、モード選択ＴＭＳ、試験データ入力ＴＤＩ（スキャンイン）、および試験データ出力ＴＤＯ（スキャンアウト）の入力を持つ。特殊なエミュレーションアダプタ１２０３を、装置１１の走査インターフェース１１４９と機能回路１２１３のＭＰＳＤモジュールの間に接続する。別の形式のエミュレーションアダプタ１２０３は、配線した状態機械回路、アセンブリ言語またはマイクロコード化状態機械の実施態様を含む。
【００５４】
エミュレーションの支援に用いた場合のいくつかの手段の特徴を表１に示す。
表１
ＳＣＯＰＥ／
ＭＰＳＤ ＳＣＯＰＥ   ＭＰＳＤ  
工業標準通信                          なし        あり          あり
最大クロック周期                  場合による      無制限        無制限
機能クロックの独立性                  なし        あり          あり
境界走査支援                          なし        あり          あり
シリコン効率                          あり        なし          あり
最大のエミュレーション能力            なし        あり          あり
予備ピンの数                            ４          ６            ６
【００５５】
手段ＳＣＯＰＥ／ＭＰＳＤはＭＰＳＤおよびＳＣＯＰＥの強度を個別に利用して、ハイブリッドエミュレーション技術を生成する。
【００５６】
図５０Ａは、ＰＣ基板１０４３上の装置１１などの各チップに設けられる改良されたＳＣＯＰＥハードウエアのブロック図を示す。４つのピンＴＤＩ、ＴＭＳ、ＴＣＫ、ＴＤＯはシステムと通信する。ＴＭＳとＴＣＫはＴＡＰコントローラ１１５１と通信し、ＴＡＰコントローラ１１５１は命令レジスタ１１５３と命令デコード回路１１５５に接続する。
【００５７】
試験アクセスポート（ＴＡＰ）コントローラ１１５１は命令レジスタ（ＩＲ）１１５３と第１マルチプレクサ１１７３に結合する。命令レジスタはＴＤＩ線から逐次走査信号を受けてＭＵＸ１１７３に逐次出力する。ＭＵＸ１１７３はＴＡＰの制御の下にあり、命令レジスタからまたは別のＭＵＸ１１７１からの出力信号を選択することができる。
【００５８】
また命令レジスタはバイパスレジスタ（ＢＲ）１１６７と、１つ以上の境界走査レジスタ（ＢＳＲ）１１６１を制御する。バイパスレジスタはＴＤＩ信号を受けてこれをＭＵＸ１１７１に出力する。ＭＵＸ１１７１は命令レジスタ１１５３の制御の下にある。命令レジスタにロードされた命令に基づいて、ＭＵＸ１１７１はバイパスレジスタからの入力を、または１つ以上のＢＳＲすなわち内部装置レジスタ走査からの入力を出力する。各境界走査レジスタは試験アクセスポートと命令レジスタを介して制御される。
【００５９】
境界走査装置は通常モードまたは試験モードで動作する。通常モード中は、ＩＣ論理の端子に入る入力データは境界走査レジスタを通ってＩＣ論理に入り、ＢＳＲにより何の変化も受けずに通常出力端子に出力する。試験モード中は、通常入力データは中断され、試験入力データが境界走査レジスタ内で捕獲され、シフトされ、更新される。境界走査レジスタは２つのメモリ、すなわちＴＤＩ線からデータを受けてシフトする第１メモリと、出力データを保持する第２メモリを備える。第２メモリは第１メモリから第２メモリへデータを選択的に転送できる。
【００６０】
一般に図５０Ａで、逐次情報はエミュレーション計算機１１０１からＳＣＯＰＥコントローラカード１１４１を経てピンＴＤＩを通ってダウンロードされ、境界走査レジスタ１１６１、装置識別レジスタ１１６３、設計特有の試験データレジスタ１１６５を含む多数のシフトレジスタのどれかに入る。バイパスレジスタ１１６７も設けられている。これらのシフトレジスタすなわち逐次走査レジスタは、命令デコード回路１１５５の制御の下にＭＵＸ１１７１を経て選択される。ＭＵＸ１１７１からの選択された出力はＭＵＸ１１７３に送られるので、ＭＵＸ１１７３はＴＡＰコントローラ１１５１の制御の下に、命令レジスタ１１５３かＭＵＸ１１７１を選択する。ＪＴＡＧクロックＴＣＫおよびＭＵＸ１１７３の出力はフリップフロップ１１７５に送られる。フリップフロップ１１７５は直列戻り回路１１７７に接続し、直列戻り回路１１７７はオンチップＪＴＡＧ回路の全ての部分から出力逐次ピンＴＤＯを経て計算機ＪＴＡＧカード１１４１に逐次出力を戻しまたは送る。
【００６１】
図５０ＢはＴＡＰコントローラ１１５１の状態移行図で、各状態移行線の付近に記入した１および０の信号値を持つ。これは信号ＴＣＫの立ち上がり端の時の信号ＴＭＳの値である。ＪＴＡＧ  ＴＡＰ（試験アクセスポート）コントローラの状態については、「標準試験バスおよび境界走査構造」、Ｌ．ウエッツェル（Ｗｈｅｔｓｅｌ）、テキサス・インスツルメンツ技術ジャーナル、Ｖｏｌ．５、Ｎｏ．４、１９８８年、４８−５９ページ、に記述されており、よく知られた技術である。
【００６２】
ここで認識され用いられている基本概念に移って、エミュレーションは各回路の周りに設けられたハードウエア支援と関連し、回路内で動作を実行し、回路の動作と平行して分析を行う。エミュレータ計算機１１０１が回路を監視して起動および停止させるので、エミュレーションにより回路は高速で実時間で動作する。ユーザは、ターゲットシステムの環境内でソフトウエアを定義しまた開発する。言い換えると、適切なソフトウエアと動作信号を決定するために、装置１１がないかのように、エミュレーションは基板１０４３から入力を読み取って、基板に出力を出す。最後に、エミュレーションの結果得られた適切なソフトウエアを装置１１に供給すると、装置１１は基板１０４３の他の回路と矛盾しないように動作する。ここで開示した改良されたシステムでは、装置１１は実際に基板上にあって逐次通信する機能を持ち、装置１１の動作は全て装置自身から直接監視されている。装置１１が非常に高速なので、装置自体がそのエミュレーションを援助する。
【００６３】
以前の方法では、エミュレートされる装置に代わって基板上に設けられるソケットと合うピンプラグに、ケーブルが接続される。ソケットにはノイズの問題がある。基板の空間が限られているので、表面取り付け装置をエミュレートする場合はソケットは使えない場合がある。装置１１は基板１０４３上に半田付けされており、エミュレーションは装置自体で仲介されている。
【００６４】
走査インターフェース１１５０にはいくつかのピンが用いられているので、従来の完全にピンを装備したターゲットコネクタは必要なく、またケーブルの信頼性や伝送の影響やタイミングの差などに伴う問題はない。このようにして改良されたシステムは、重いケーブルからの物理的または電磁的な干渉を受けずに、論理分析器やオッシロスコープで検査することができる。更に装置１１の２０メガヘルツを越えるクロック速度は余り速いので、以前のエミュレーション方式ではエミュレートすることが恐らく不可能である。
【００６５】
ここで用いるシミュレーションという語はターゲット基板１０４３のソフトウエアを表現するもので、図４４のシミュレータ１１３１でのシミュレーション（または計算機１１０１でのシミュレータプログラムの実行）により、全基板を開発することができる。シミュレーションの別の態様では、装置１１は利用可能であるがターゲット基板１０４３の他の回路が未完成の場合に、シミュレータは装置１１から計算機１１０１への逐次走査アップロードまたはダウンロードによって計画された完全な基板を模擬し、次に基板１０４３の欠けている回路の代わりに計算機１１０１から装置１１に逐次走査ダウンロードまたはアップロードすることができる。ここに説明した改良に従って装置１１自身を高速で走らせることにより、シミュレーションは加速される。計算機１１０１が装置１１より低速度で走る場合でも、シミュレーションは装置１１がたまにアクセスする周辺装置を効果的にシミュレートする。
【００６６】
ここで用いる試験という語には、４つの異なる領域がある。第１領域は装置の試験であって、装置のメーカーは出荷する前に装置１１自身を試験する。
【００６７】
試験の第２領域は装置の検査であって、装置の完全な機能性をあらゆる点で検査する。
【００６８】
試験の第３領域は装置の特徴づけである。特徴づけは装置のタイミングを決定し、実際の製作された装置が働く方法を正確に定義する。
【００６９】
試験の第４領域はユーザ試験である。ユーザ試験では全基板を試験し、基板１０４３全体がある場合の装置１１の機能性を調べる。
【００７０】
図４７と図４８に戻って、各ＭＰＳＤモジュールには２つの走査経路がある。走査経路の１つをＭＰＳＤデータ経路と呼び、通常はモジュールの中でひもに通した玉のように直列に接続されている多数のシフトレジスタラッチＳ（すなわちＳＲＬ）を備える。第２走査経路はＭＰＳＤ制御経路と呼び、一般により少ない数のシフトレジスタラッチを備え、どのＭＰＳＤデータ経路を走査するかを選択する。これらの走査経路については、上に引用した米国特許第４，８６０，２９０号に記述されている。
【００７１】
図４９と図５１に示す改良されたエミュレーション装置は、装置１１が幾つかの主要な領域に分割され、必要であれば異なるクロックでクロックできることを示す。これらの主要な領域をクロックドメインまたは単に「ドメイン」と呼ぶ。装置１１などのＤＳＰ装置内のドメインは、ＣＰＵコアドメイン、メモリおよび周辺装置（システム）ドメイン、分析ドメインである。別のチップでは、ドメインはしばしば別のクロックでクロックされるチップの部分と矛盾しない任意の方法で定義することができる。しかし、チップ設計、エミュレーションおよび試験のモジュール方式では、モジュールは通常全ドメインより小さいユニットでなければならない。モジュールをビルディングブロックとして用いることにより他のチップの設計の柔軟性が大きくなり、モジュール内のデータを走査するのに必要な時間が減る（この時間はモジュールの大きさの非線形べき関数である）。
【００７２】
従って、各ドメインは通常１つ以上のモジュールを含むと考えられる。図４９で、エミュレーションアダプタ１２０３は異なるクロックを異なるドメインに導き、または走査インターフェースと特定のドメインの間のビット毎の転送を監視する。更にアダプタ１２０３は、異なるＭＰＳＤ制御信号を異なるドメインの制御経路に導く。
【００７３】
図５１にチップ上のエミュレーションブロックを更に図示する。ここでＪＴＡＧ制御は、ＭＰＳＤ（モジュラーポート走査設計）に従ってエミュレーションの周りに包まれている。モジュラー走査試験の原理については、共に譲渡された米国特許第４，７０１，９２１号に開示されているので、これも引例としてここに挿入する。
【００７４】
図５０ＡのＪＴＡＧ制御は、図５１のＪＴＡＧ制御ブロック１２０１として示されている。ＭＰＳＤに従うエミュレーション制御はブロック１２０３として与えられる。試験制御ブロック１２０５はＪＴＡＧをＭＰＳＤにリンクする。逐次走査線１２０７は、逐次ビットストリームを境界走査領域１２１１の任意の１つ以上の選択された領域に入力する。境界走査領域１２１１は図５０ＡのＢＳＲ１１６１を含み、装置１１のピン境界を走査する。図５１のドメイン、すなわちＣＰＵコアドメイン１２１３、システムドメイン１２１５、分析ドメイン１２１７、は図５０Ａに示されており、図４７のシフトレジスタラッチを通してチップのいろいろな部分の全てにインターフェースする。
【００７５】
図５２は、装置１１のドメインの概観である。ＣＰＵコアドメイン１２１３は引用として挿入した図１Ａおよび図１Ｂの回路を含む。分析回路はＣＰＵコアに接続しており、以下に詳細に説明する。分析回路は、制御された停止のためのハードウエア区切り点センサなどの条件センサと、実時間追跡記録のための追跡スタック回路を備える。分析回路は逐次走査アクセスが可能で、分析ドメイン１２１７と呼ぶ。メモリと直列および並列ポートを含む全ての周辺装置をシステムドメイン１２１５と呼ぶ。説明を統一するために、ＪＴＡＧ制御１２０１も試験クロックＪＣＬＫがアクティブなクロックドメインとみなす。エミュレーション制御回路１２０３は図５２の別のドメインである。特殊なメッセージ通過回路１２１６もシステムまたは分析ドメインに含まれ、図４５の逐次走査線１１０３にＴＩＢＵＳでインターフェースすることにより、ホスト計算機１１０１を付属のプロセッサとして、より完全に利用する。
【００７６】
図５３は、装置１１のチップ上のいろいろなドメインの物理的な概観を示す。ＪＴＡＧ制御１２０１は、境界走査レジスタ１１６１を含む直列境界走査アセンブリによって各ピンとインターフェースする。ただし境界走査レジスタ１１６１は、装置１１の実際のピンでの全ての論理状態を読み取りまたは書き込むことができる。ＪＴＡＧ  ＴＡＰコントローラ１１５１とＪＴＡＧ命令レジスタＩＲ１１５３はチップ上に設けられる。試験制御１２０５とＭＰＳＤ制御１２０３は回路に統合されている。ＭＰＳＤ制御１２０３は、装置１１のコア１２１３、システム１２１５、分析１２１７の各ドメインと逐次インターフェースする。４つのＪＴＡＧ端子１２２１の他に双方向のピンＥＭＵ０とＥＭＵ１が外部インターフェース用に設けられる。追加のピンＥＭＵ０とＥＭＵ１を備えるＭＰＳＤモジュラーポート走査とＴＡＧ試験性インターフェース技術を組み合わせることにより、エミュレーションとソフトウエア開発と製作と現場試験のプロセスを統合する可能性が開かれる。
【００７７】
この優れたエミュレーション機能の全概念を説明するには医学との類似が役に立つ。装置１１は手術台上の病人に似ている。手術台では透析器と心電図が患者の身体の異なる部分に接続されている。患者の心臓（機能クロックＦＣＬＫ）が患者の胴と頭（ＣＰＵコア）に血液を送る一方で、透析器（試験クロックＪＣＬＫ）が患者の心臓からかなり離れた患者の足（システムドメインの周辺装置）の血管を通して血液を送り込む。心電図は患者の身体の別の部分に取り付けられている。これらの全ての医学的および生理学的機能は同時に動作しているので、患者の緊急の医学的ニーズは最短時間で満たされる。同様に、装置１１はフルスピードで自分のシステムクロックＦＣＬＫを走らせて装置１１の一部を動作させ、他方装置１１の他の部分はＪＴＡＧ／ＭＰＳＤの制御の下にある異なるクロックシステムＪＣＬＫで動作させ、次に第３の機能として、ＪＴＡＧ機能はＪＴＡＧ境界走査を制御することができる。更に各チップの各部分は、コマンドによってＦＣＬＫまたはＪＣＬＫを選択的に供給され、動的に制御される。このようにして、装置１１の開発要求は、統合的に最短時間で満たされる。
【００７８】
図５２と図５３の望ましい実施態様の開発システム機能の応用開発支援においては、広範囲の機能からの選択が可能である。ここに開示した全ての開発支援ハードウエア要素を用いることにより、同時実行と、チップ上の区切り点と追跡のための分析と、図４５のエミュレーションコントローラ１１０１と図５２の装置１１の間の実時間メッセージ通過ＭＳＧＰＡＳＳとを含む開発機能が与えられる。費用を重視する応用では、図５２のハードウエア支援のいろいろな部分を含めたり省いたりすることができる。例えば、基本的なシステムで基本的なＭＰＳＤ（モジュラーポート走査設計）エミュレーションを支援してもよく、または極端な場合はエミュレーションを行わず、境界走査を行うまたは行わない試験だけを行ってよい。
【００７９】
エミュレーション、シミュレーション、チップ速度測定の分野での全開発システムの利点は、いろいろな試験および機能的特徴と関係がある。望ましい実施態様は３つの構造を持つ。すなわち、ａ）機能的構造（例えば、ＣＰＵメモリおよびＩ／Ｏ）、ｂ）ＪＴＡＧおよびＭＰＳＤ逐次走査に基づく試験性回路を含む試験構造、ｃ）メッセージ通過回路、シミュレーション機能、境界走査試験などのエミュレーション／支援構造である。３つの構造はＣＰＵ、メモリ、Ｉ／Ｏの機能的構造の複雑さを最小にし、試験との相乗作用を最大にする。
【００８０】
図５１と図５２の支援構造を用いると、装置１１のライフサイクルを通じて費用と能力の要求を合致させることができる。対象によっては、装置から支援能力を除いてよい。このように分割しても、図５１の試験制御１２０５による装置の試験性には影響しない。
【００８１】
このようにして図５１のように、階層的走査構造はＭＰＳＤインターフェースを備える走査支援／試験フロントエンドを結合し改良する。
【００８２】
図５１の構造は、境界走査１２１１、ＣＰＵコア１２１３、分析１２１７、メモリおよび周辺装置１２１５に均一なインターフェースを与え、ブロック１２１５−１２１７のどれを用いるかに基づいて能力を選択することができる。
【００８３】
下の表ＩＩは、ＣＰＵおよびシステムドメインに追加のハードウエアブロックを加えたときに生じる機能のレベルを示す。
表ＩＩ
エミュ
ＪＴＡＧ    試験    レーション    分析    メッセージ
制御      制御      制御                周辺装置
ＭＰＳＤのみ
ＭＰＳＤ試験と
エミュレーション
ＭＰＳＤ試験、分析、                                        Ｘ
とエミュレーション
ＪＴＡＧ装置試験              Ｘ      Ｘ
ＪＴＡＧエミュレーション      Ｘ      Ｘ        Ｘ
同時実行
ＪＴＡＧエミュレーション      Ｘ      Ｘ        Ｘ          Ｘ
同時実行と分析
ＪＴＡＧエミュレーション      Ｘ      Ｘ        Ｘ          Ｘ        Ｘ
同時実行、分析、
メッセージ通過
【００８４】
図５２を参照して繰り返すと、支援構造は装置１１を次の５つの別個のクロックドメインと見みなして、走査クロック（ＪＣＬＫ）によるドメインデータの転送と機能クロック（ＦＣＬＫ）による応用の実行を制御する。
１）  ＣＰＵコアドメイン１２１３
２）  分析ドメイン１２１７
３）  周辺装置、メモリ、インターフェース、バス（システムドメイン）
１２１５
４）  エミュレーション制御ドメイン１２０３
５）  ＪＴＡＧポートおよび境界走査ドメイン１２０１
【００８５】
データ経路の構成は２つあり、１つはＭＰＳＤ用、もう１つはＪＴＡＧ用である。図５０ＡのＪＴＡＧデータ経路では、ＪＴＡＧ命令レジスタ１１５３により選択される内部走査経路を通して、データは装置１１へまた装置１１から走査される。各径路の独特のＪＴＡＧ演算コードにより、内部走査データの入力とアクセスができる。
【００８６】
支援構造は、２つの異なるクロックを用いてその動作を支援する。２つのクロックは機能クロック（ＦＣＬＫ）と走査クロック（ＪＣＬＫ）である。
【００８７】
エミュレーション環境の考え方として、いくつかのドメインは他のドメインとは異なるクロック源を持ち、試験動作は通常は装置１１を完全に同期させ、全てのドメインを試験クロックＪＣＬＫに置く。図５１および図５２のドメインによるクロックの分離は次のことを可能にする。
１）  エミュレーション制御ブロック１２０３を通して、全てのドメインをＪＣＬＫかＦＣＬＫに独立に接続する。
２）  試験のために、試験クロックＪＣＬＫを全てのドメインに与える。
３）  任意のドメインを機能クロックＦＣＬＫで走らせ、次にその内容をＪＣＬＫで走査する。
４）  機能クロックＦＣＬＫと一致する停止応答でＣＰＵドメインを一時停止し、次に試験クロックＪＣＬＫでＣＰＵドメインを走査する。一方図５２のシステムドメインはＦＣＬＫで引き続き実行する。
【００８８】
図５１と図５２のクロックドメインとエミュレーション制御１２０３により、機能クロックＦＣＬＫ（チップクロック速度の２分の１）か走査クロックＪＣＬＫ（図５０ＡのＴＣＫピン）を独立に選択することができる。各ドメイン１２１３、１２１５、１２１７は他のドメインの選択をロックしておいて（変わらない）、そのクロックを個々に選択することができる。選択は、各ドメインのＪＣＬＫとＦＣＬＫの間の制御を同期をとって転送することにより行われる。この転送メカニズムは図４９、図５１、図５２のエミュレーション制御１２０３にあり、これについて以下に説明する。
【００８９】
図５４は、図５０Ａのレジスタを別の形で示した図である。ＪＴＡＧ命令レジスタＩＲ１１５３は、端子ＴＤＩとＴＤＯの間の走査に用いられる。図４５の制御カード１１４１から直列の線１１０３を経て要求されると、図５０ＡでＩＲ１１５３はデコードされて、他の直列シフトレジスタか走査経路にアクセスする。これらのシフトレジスタはバイパスレジスタ１１６７、境界走査レジスタ１１６１、図５２のメッセージ周辺装置１２１６、いろいろなドメイン内のエミュレーション制御レジスタ１２５１と１対のＭＰＳＤ走査経路１２５２、各ドメイン内のモジュールである。
【００９０】
図５５において、図５４からの走査線１２５３をＳＣＩＮと呼び、この線は３つの走査経路１２５２に選択的に接続される。これらの３つの各経路は、内部ＭＵＸ選択により内部走査制御経路と走査データ経路に内部で分割される。１組の外部ＭＵＸ１２６１、１２６３、１２６５はエミュレーション制御１２０３からのロック信号ＬＯＣＫＳ（ロックシステムドメイン）、ＬＯＣＫＡ（ロック分析ドメイン）、ＬＯＣＫＣ（ロックコアドメイン）により制御され、走査および実行のために、選択された１つのドメインがもしあれば、それ以外の全てをバイパスする。ロックされたドメインは、そのドメインに供給されたＭＰＳＤコード（後で説明する）を、そのドメインがロックされている間凍結する。どのドメイン（例えば分析ドメイン）かを走査するときは、対応するＭＵＸ１２６３は線ＡＳＣＩＮ（分析スキャンインデータ）の選択をやめて線ＡＳＣＯＵＴ（分析スキャンアウト）を選択する。このようにして、線ＳＣＩＮに入る逐次走査ビットは線ＡＳＣＩＮで分析ドメイン１２１７に入り、線ＡＳＣＯＵＴを経て分析ドメインから出て、他の２つのドメインをバイパスする。他の２つのドメインもそれぞれ同様に選択される。スキャンアウトは、図５５の下方の線ＳＣＯＵＴを通って出る。
【００９１】
各ドメインに対して、図５６のＭＰＳＤコマンドコードのビットＣ０、Ｃ１、ＣＸは、制御アダプタ１２０３から各ドメインに入る。これらのＭＰＳＤコマンドコードのビットＣ０、Ｃ１、ＣＸは直列ではなくて並列であって、図５５と図５６の各ドメインの線ＳＣＩＮに入る走査制御信号および走査データ信号とは異なる。所定のドメインの特定のモジュールの特定の動作は、所定のドメインの一連のモジュールに線ＳＣＩＮで走査制御ビットを送ることにより決定される。特定のコードＣ１，Ｃ０＝０１は、そのドメインの各モジュール内の走査制御ビットＳＲＬに線ＳＣＩＮの走査ビットを受けるよう内部選択を設定する。
【００９２】
Ｃ１は、走査中でないときは１、走査中は０である。Ｃ０とＣＸは、エミュレーション制御ブロックアダプタ１２０３のレジスタ１２５１により決まる。ターゲット基板１０４３上の指定された装置の全てのアンロックされたドメインが走査可であることをホスト計算機１１０１が検出すると、Ｃ１とＣ０は修正される。図５０Ｂの走査データ状態ＪＳＤＡＴ内でＣ１とＣ０を共に０にすると（Ｃ１，Ｃ０＝００）、選択されたドメインの各モジュール内の走査データビットＳＲＬに線ＳＣＩＮの走査ビットを受けるように内部選択を設定する。Ｃ１，Ｃ０＝０１の場合は、前のパラグラフで述べたように、ＳＣＩＮ走査ビットを走査制御ビットＳＲＬに受けるように内部選択を設定する。
【００９３】
図５６に、コマンドコード線Ｃ１、Ｃ０、ＣＸ、スキャンインＳＣＩＮおよびスキャンアウトＳＣＯＵＴ線、クロック線を示す。走査制御ビットは線ＳＣＩＮにスキャンインして制御し、選択されたドメイン内の１つ以上のモジュールを選択する。次に走査データビットも、選択されたドメイン内の選択された１つ以上のモジュールに線ＳＣＩＮでスキャンインする。このようにして、システムはシステムドメイン１２１５、分析ドメイン１２１７、ＣＰＵコアドメイン１２１３へのＭＰＳＤ走査データと走査制御ビットを、個別にアクセスすることができる。
【００９４】
図５６のドメイン入力は互いに接続されてはいないが、同じ名称が使われる。アダプタ１２０３から各ドメインへの出力の名称に頭字Ｓ、Ａ、Ｃを付ける。例えばＡＣ１は、アダプタ１２０３からＡ（分析）ドメインへのＣ１出力である。
【００９５】
制御１２０３内で、ＦＣＬＫとＪＣＬＫから個々にクロックを供給されるクロック切り替え回路（図５９Ａの１４１１、１４１３、１４１５）は各ドメインにクロックを与え、ユーザの希望に応じて各ドメインを別個にまたは同時にクロックする。また図５６に、システムドメイン１２１５、分析ドメイン１２１７、ＣＰＵドメイン１２１３のそれぞれのドメインクロック入力ＤＣＬＫに行くクロック線ＳＣＬＫ、ＡＣＬＫ、ＣＣＬＫを示す。図５６のアダプタ１２０３の各システムポート、分析ポート、ＣＰＵポートの同じ線に頭字Ｓ、Ａ、Ｃが付けられている。
【００９６】
ＭＰＳＤコードを表ＩＩＩに示す。
表ＩＩＩ
Ｃ１  Ｃ０  ＣＸ  ＳＣＩＮ  ＳＣＯＵＴ            注
１    １    １      Ｘ        １      機能的実行、エミュレーション論理はリ
セット（ストラップ）（７）
１    １    ０      Ｘ        １      スキャンインされたコマンドを実行。エ
ミュレーションを実行、装置は実行中
（６）
１    １    ０      Ｘ      １、０    エミュレーションを実行、装置は１から
０への移行で一時停止（６）
１    ０    １      Ｘ        １      一時停止がかかる。装置はまだ実行中
（５）
１    ０    １      Ｘ      １、０    一時停止がかかる。装置は１から０への
移行で一時停止（５）
１    ０    ０      Ｘ      Ｄｏ      休止を走査（４）（逐次データ転送を休
止）
０    １    Ｘ    Ｄｉ      Ｄｏ      制御経路データを走査（２、３）
０    ０    Ｘ    Ｄｉ      Ｄｏ      データ経路データを走査（０、１）
【００９７】
各モジュールには２つの異なるＭＰＳＤ走査経路がある（図４７と図４８は簡単化しているので、両経路は１つの曲がったループに見える）ので、Ｃ１，Ｃ０コードは選択コードの役目をする。Ｃ１，Ｃ０＝０１は制御経路を選択する。制御ビットは線ＳＣＩＮにスキャンインされ、制御情報はＳＣＯＵＴにスキャンアウトされる。Ｃ１，Ｃ０＝００はデータ経路を選択する。データビットは線ＳＣＩＮ（図５５）にスキャンインされ、装置１１で発生したデータはＳＣＯＵＴにスキャンアウトされる。
【００９８】
Ｃ１＝１のとき（コマンドコードＣ１がアクティブ）は、上の表に示すように全ドメインで更にコードを定義するのに制御線ＣＸを用いる。
【００９９】
スキャンアウト線ＳＣＯＵＴは二重の機能を持つ。第１の機能では、コマンド入力７、６、５に応じて装置が実行中か一時停止かを表すことにより、ＳＣＯＵＴはハンドシェイクまたは割り込みとして働く。第２の機能では、表の最後の２つのコードにおいて逐次データをスキャンアウトする線として働く。シフト動作（０、１、２、３）から実行動作（５、６、７）への移行、または実行からシフトへの移行は、休止（４）から停止（５）へ、または一時停止から休止へのシーケンスを含むことが望ましい。これは絶対に必要ではないが、このような移行において装置１１の内部バスと状態機械を順序よく行動させるのに用いることができる。
【０１００】
休止状態１００が表の中のその上の命令コード（ここでは実行コードと呼ぶ）とその下の走査のための命令コード（ここでは走査コードと呼ぶ）に電気的に接していることは興味深い。
【０１０１】
図５７で、アダプタすなわちエミュレーション制御ブロック１２０３は、ＣＰＵドメイン１２１３、分析ドメイン１２１７、システムドメイン１２１５にそれぞれ通すクロック信号を独立に管理するのに用いられる。またブロック１２０３は、３ビットのコマンドコードのシーケンス（Ｃ０、Ｃ１、ＣＸ）を与えて、エミュレーションおよびシミュレーションの機能を生成する。各ドメインは、例えばシステムドメイン１２１５に１３０１．１と１３０１．ｎ、ＣＰＵコアドメイン１２１３に１３０３．１と１３０３．ｎ、分析ドメイン１２１７に１３０５．１と１３０５．ｎなどのモジュールを持つ。各モジュールには試験ポートが結合しており、これについては米国特許第４，８６０，２９０号に記述されている。
【０１０２】
各試験ポートには、各ドメイン内のモード条件付き停止論理回路１３０９Ｓ、１３０９Ｃ、１３０９Ａが接続する。これらのモードはモードレジスタ１３１１により作られ、モードレジスタ１３１１は図５４と図５７で走査可能であって、各ドメインの停止やその他の所望のモード特性の型式を決める。モード条件付き停止論理回路１３０９Ｓ、１３０９Ｃ、１３０９Ａは、停止モード条件付き論理回路に多重線で出力するＭＰＳＤデコーダ１３１３Ｓ、１２３１３Ｃ、１３１３Ａからそれぞれ信号を受ける。
【０１０３】
走査制御１１４９は初期状態（試験ベクトル）を装置１１のレジスタにスキャンインし、試験またはエミュレーションのシーケンスを設定する。これは全てのドメインをロックして行われる。すなわち、走査のために試験クロックＪＣＬＫを与える。全てのデータレジスタ制御レジスタへのロードが終わると、回路１１４９はＳＴＡＲＴ信号をアダプタ１２０３に送る。例えばＣＰＵドメインはロックが解除される。すなわち機能クロックＦＣＬＫで実行を開始する。
【０１０４】
次に停止機能では、分析ドメイン１２１７は走査をプログラムして、所定の条件で停止するようＣＰＵドメインに指示することができる。所定の条件が発生すると、ＣＰＵドメイン１２１３に信号ＡＮＡＳＴＰ（分析停止）を送って、モードレジスタ１３１１とモード条件付き停止回路１３０９Ｃに定められている停止モードに従って停止させる。ＤＯＮＥ回路１３６３は停止がいつ完了したかを検出して、信号をアダプタ（エミュレーションモード制御）１２０３に戻し、機能クロックＦＣＬＫではなく試験クロックＪＣＬＫによって、例えばＣＰＵをロックする。ＣＰＵパイプラインで全ての命令を実行し、現在進行中のメモリアクセスサイクルが全て完了すると、ＤＯＮＥ信号を発生する。もちろんＤＯＮＥについては別の定義を用い、またはモード選択をしてよい。次に試験クロックＪＣＬＫを用いて、図４５のホスト計算機形１１０１で記録し、表示し、検討するために、ドメインの重要なレジスタをスキャンアウトすることができる。
【０１０５】
図５８は、ＩＲ１１５３を含む走査制御１１４９と、ＥＣＲ（エミュレーション制御レジスタ）１２５１を含むアダプタ１２０３と、制御計算機１１０１が、オンチップコマンドのシーケンスに入って実行する例示の処理段階を更に詳細に示す。
【０１０６】
図５８の動作は段階１３２１で始まり、図５０Ａの走査制御１１４９で図５０Ｂのリセットストラップ状態にある。図５０ＡのＴＡＰコントローラ１１５１の出力ＪＳＴＲＡＰはアクティブになり、段階１３２２で、図５４と図５９ＡのＥＣＲ１２５１の２つのＪＭＯＤＥビットをセットする。段階１３２３で、アダプタ１２０３は機能１１１コマンドコードをジャムし、ドメインクロックをセットする。
【０１０７】
次に段階１３２４で、ホスト１１０１はＴＭＳ信号を走査制御１１４９に送って図５０ＢのＴＡＰコントローラ状態「選択−ＩＲ−走査」に達して、ＥＣＲ選択をＩＲ１１５３にスキャンインする。更に段階１３２４で、ホストはより多くのＴＭＳ信号をＴＡＰコントローラに送って、状態「選択−ＤＲ−走査」に達する。この意味は、直前にホストがＩＲ１１５３にＥＣＲ１２５１と識別したＤＲ（データレジスタ）へのスキャンインを走査コントローラが受ける準備ができている、ということである。次にホスト１１０１は、表ＩＩＩの実行と一時停止のための、３ビットの内の２ビット部分Ｃ０、ＣＸをＥＣＲ１２５１にスキャンインする。ロックビットもロードし、全てのドメインをアンロックする。このためロックビットをＬＯＣＫ１３５１と呼ぶ図５９ＡのＥＣＲ１２５１部分にスキャンインする。
【０１０８】
次の段階１３２５で、ホスト計算機１１０１はＴＭＳ信号を走査制御１１４９に送り、再びＴＡＰコントローラ状態「選択−ＩＲ−走査」に達する。今回は、ホストはＭＰＳＤ経路１２５２選択をＩＲにスキャンインする。段階１３２６で別のホストＴＭＳ信号を送って、図５０Ｂの状態ＩＤＬＥに達する。ここで図５０Ａのハードウエアは信号ＳＴＡＲＴを発生し、アダプタ１２０３のコード状態機械１３８１を起動する。決定段階１３２７は、走査インターフェース１１４９、１２０３が使用可かどうかを決定する。使用可の場合は、段階１３２８でホスト１１０１はＥＣＲ選択をＩＲ１１５３にスキャンインし、次に段階１３２９で、別のＴＭＳによりＩＤＬＥ状態に達する。これによりＳＴＡＲＴ信号は非活動化し、ＤＲ走査によりＭＰＳＤ経路１２５２からドメイン情報をスキャンアウトする。この段階は、簡単にするために図５８では省略した。
【０１０９】
段階１３３１で再びインターフェースが使用可になると、動作は段階１３３２と段階１３３３に進み、ＥＣＲ１２５１のＪＭＯＤＥビットの論理１のＪＭＯＤＥ１と論理０のＪＭＯＤＥ０を選択して走査し、同時にエミュレートする。次に段階１３３４で、ホスト１１０１はＴＭＳ信号を送り、図５０ＢのＩＤＬＥ状態に達してロックする。段階１３３５の後にインターフェースが使用可になると、段階１３３６で、ホスト１１０１はコマンドおよびロックビットをＥＣＲ１２５１にスキャンインする。次に段階１３３７で、ホスト１１０１はＩＲへの走査を選択するＴＭＳを送って、ＭＰＳＤ経路選択をＩＲにスキャンインする。次に段階１３３８で、ホスト１１０１は更にＴＭＳを送って図５０ＢのＩＤＬＥ状態に達し、ここで図５０Ａのハードウエアはアダプタ１２０３コード状態機械１２８１へのＳＴＡＲＴ信号を起動する。段階１３３９で、ホストはインターフェースが使用可になるまで待ち、ここで動作は段階１３３３に戻ってホスト１１０１は更にコマンドをＥＣＲにスキャンインし、次にチップ上のエミュレーション回路を開始して、チップを実時間で走らせる。
【０１１０】
段階の説明は単なる例示であることを理解されたい。データおよび制御情報は試験クロックＪＣＬＫでドメインにスキャンインおよびスキャンアウトし、ドメインは独立にかつ選択的に機能クロックＦＣＬＫで起動しまた停止し、開発や製作や現場環境の状況に従って、広い柔軟性をもってエミュレーション、シミュレーション、試験機能を、広範囲のシーケンスで達成する。
【０１１１】
エミュレーションデータをスキャンインしてそれを各ドメインから検索し、更に実時間機能クロックＦＣＬＫまたは試験クロックＪＣＬＫでドメインを個別にクロックする優れた能力は、ホスト計算機１１０１と図５０Ａの改良されたＪＴＡＧ回路に応じて、エミュレーション制御１２０３により仲介される。エミュレーション制御１２０３については、図５９Ａでより詳細に説明する。
【０１１２】
図５９Ａでは、逐次走査ビットはエミュレーション制御レジスタＥＣＲ１２５１に入る。ＥＣＲ１２５１は更に、ドメインをロックしたりアンロックしたりするためにビットを保持するシフトレジスタＬＯＣＫ１３５１と、ＣＯＤＡ１３５３と呼ぶ第１Ｃ０，ＣＸ制御コードシフトレジスタと、ＣＯＤＢ１３５７と呼ぶ第２Ｃ０，ＣＸ制御コードシフトレジスタと、イベントマネージャ回路１３６５に結合するシフトレジスタ１３５９と、２ビットのレジスタＪＭＯＤＥ１３６０に区分される。これらのレジスタを図５９Ｂにコンパクトに図示する。逐次走査は走査線ＳＩＮから入り、全てのシフトレジスタへのロードが終わるまでシフトレジスタ１３５１、１３５３、１３５７、１３５９、１３６０を逐次に通過する。逐次スキャンアウトは全て直列線１３６１ＳＯＵＴからスキャンアウトされる。
【０１１３】
図５９Ａの選択論理回路１３７１、１３７３、１３７５の集合は、図５６に示す線でコア１２１３、システム１２１５、分析１２１７のドメインに信号を供給する。また図５６の個別のドメインクロック線ＤＣＬＫには、図５９Ａのクロック信号ＳＣＬＫ、ＡＣＬＫ、ＣＣＬＫがそれぞれ供給される。
【０１１４】
コード状態機械１３８１は２入力ＭＵＸ１３８３を制御する。ＭＵＸ１３８３はシフトレジスタ１３５３または１３５７のＣ０、ＣＸの２ビットの内容を選択し、これを３つのフリップフロップ１３９３、１３９５、１３９７の中の使用可能なものにロードする。ロックシフトレジスタ１３５１とコード状態機械１３８１の制御の下に動作するロック制御回路１４０１はクロック信号を送って、選択されたドメイン１２１３、１２１５、１２１７の中のどれをアンロックしどれをロックするかに従って、各フリップフロップ１３９３、１３９５、１３９７を使用不能にまたは使用可能にする。
【０１１５】
各フリップフロップはＣ０とＣＸとクロック制御信号ＤＳＣＳ−の３部分を持つ。
【０１１６】
それぞれ独立で、全てをＤＳＣＳ−と呼ぶ３つのクロック信号は、フリップフロップ１３９３、１３９５、１３９７から各クロック制御回路１４１１、１４１３、１４１５に供給される。各クロック制御回路は個別のドメインクロック出力、すなわちコアクロックＣＣＬＫ、分析クロックＡＣＬＫ、システムクロックＳＣＬＫ、を出す。
【０１１７】
ＴＭＳ、ＴＤＩ、ＴＤＯの各線からの試験コードはホスト１１０１から図５９Ａの３線１４２１を経て選択論理１３７１、１３７３、１３７５に入る。各ドメインの命令コードは線１４２１の試験コードから直接得ることができるので、コード状態機械機能は無視される。このオプションは、「００」（両ビットが０）を持つＪＭＯＤＥレジスタを走査することにより選択する。従って望ましい実施態様では、ＪＭＯＤＥ００オプションのドメインをホストが直接制御できるようにする。
【０１１８】
任意のクロック制御１４１１、１４１３、１４１５の制御の下に、任意のドメイン１２１３、１２１５、１２１７をＪＣＬＫとＦＣＬＫの間で切り替え中の場合は、コード状態機械１３８１は一時的に停止しなければならない。これを行うには、ロック制御１４０１からのＬＯＣＫＣ、ＬＯＣＫＡ、ＬＯＣＫＳ入力と３つのクロックドメイン信号であるＧＣＴＤＣ、ＧＣＴＤＡ、ＧＣＴＤＳに応じて、論理網１４２５から供給される入力低アクティブＳＷＩＮＰＲＯＧ−（切り替え中）を使用不能にする。最後の３信号はコア、分析、システムの各ドメインの、「このドメインのよいクロック」（Ｇｏｏｄ  Ｃｌｏｃｋ  Ｔｈｉｓ  Ｄｏｍａｉｎ）を表す。
【０１１９】
図５９Ａの制御ブロック１２０３の機能はプログラム可能で、次のことができる。
１）  ２つのプレロードされたレジスタ、ＣＯＤＡ１３５３とＣＯＤＢ１３５７、の一方からコード状態機械１３８１の指示によりＭＰＳＤコードを与える。
２）  以下の刺激に応じて、ＲＥＶＴ（レジスタイベント）レジスタ１３５９を経て状態機械１３８１の動作をプログラムする。
ａ）  走査制御１１４９からのＳＴＡＲＴ
ｂ）  ＣＰＵコア１２１３、１３６３からのＤＯＮＥ
３）ＬＯＣＫレジスタ１３５１により、各ドメインのＦＣＬＫからＪＣＬＫへ（レジスタ１３５３と１３５７はコード００）およびその逆のクロック切り替えを制御する。
４）  各ドメインを現在の状態にロックし、他のドメインと共に動作する。
【０１２０】
制御ブロック１２０３により次のクロックオプションが可能である。
ａ）  ＪＣＬＫおよびＦＣＬＫのクロックパルス源の間でドメインクロック線を順序よく切り替える。
ｂ）  走査データ経路のロックビットにより、ドメインクロック線を現在の状態にロックできる。
ｃ）  ＪＴＡＧストラップ（リセット）状態またはＭＰＳＤストラップ状態により、機能クロックを選択する。
ｄ）  試験モード選択により、全チップをＪＣＬＫにより駆動できるようにする。
【０１２１】
このクロックの選択性により、試験のために完全に同期したチップを構成し、またデータ転送をＪＣＬＫと同期させながら任意の１つ以上のドメインまたは全チップを走査することができる。
【０１２２】
コード状態機械１３８１の動作を以下に更に説明する。ＪＴＡＧ  ＩＲ（命令レジスタ１１５３）に経路１２５１の走査経路選択コマンドをロードすると、線ＥＣＲＳＥＬが状態機械１３８１に信号を送り、状態機械１３８１はロック状態になる。これにより、フリップフロップ１３９３、１３９５、１３９７および選択回路１３７１、１３７３、１３７５からドメイン１２１５、１２１３、１２１７に供給されるＭＰＳＤコードとクロックを乱すことなく、レジスタ１３５１、１３５３、１３５７と、イベントマネージャレジスタ１３５９と、ＪＭＯＤＥレジスタ１３６０を変えることができる。ロックレジスタＬＯＣＫ１３５１がビットを保持すると、フリップフロップ１３９３、１３９５、１３９７と論理１３７１、１３７３、１３７５から今与えられたＭＰＳＤコマンドコードに応答して、ＣＰＵドメイン１２１３、分析ドメイン１２１７、システムドメイン１２１５を現在の構成と状態に選択的に凍結する。
【０１２３】
走査データ経路選択信号が存在し、ＴＡＰコントローラ１１５１が図５０ＢのＪＴＡＧ  ＩＤＬＥ状態に達すると、図５９Ａの状態機械１３８１へのＳＴＡＲＴ信号が図５０Ａの回路に発生する。図５０ＡのＪＴＡＧインターフェースは受動的になり、図５９Ａの回路１２０３の動的動作が始まる。
【０１２４】
図５０Ａで、ＳＴＡＲＴ信号は次のように発生する。図５４のＭＰＳＤ走査データ経路１２５２またはＭＰＳＤ走査制御経路が選択されたという信号をそのＯＲゲート１１７２が送ると、命令デコーダ１１５５に接続する経路デコーダ１１６８はＡＮＤゲート１１７０を有効にする。ＡＮＤゲート１１７０の別の入力にはＴＡＰコントローラ１１５１からのＩＤＬＥ線が接続する。ゲート１１７０が経路として有効であるときにＩＤＬＥ状態が発生すると、ＡＮＤゲート１１７０はハンドシェイク同期装置１１６９に対して、図５９Ａのコード状態機械１２８１にＳＴＡＲＴを供給するよう信号を送る。
【０１２５】
ハンドシェイク同期装置１１６９を設ける理由は、エミュレーション制御１２０３は機能クロックＦＣＬＫのパルスでときどき動作し、他方ＪＴＡＧ回路は試験クロックＪＣＬＫで動作するからである。ハンドシェイク同期装置１１６９は、コード状態機械１３８１へのＳＴＡＲＴ信号の発生を制御する２つの状態機械を備える。１方の状態機械は図５０ＡのＪＴＡＧ環境内にあり、他方は図５９ＡのＭＰＳＤ制御環境内にある。このようにして、クロック境界は交差する。
【０１２６】
図５９Ａのエミュレーション制御ブロック１２０３は、ＭＰＳＤドメイン１２１３、１２１５、１２１７のためのＭＰＳＤ制御コードを発生させ、必要なエミュレーション、シミュレーション、試験機能を実行する。一般的なプログラム可能な実施例を示したが、固定されたハードコード化の実施も可能である。更に、図５０Ａ、図５１、図５７、図５９Ａの回路のマイクロコード化制御ＲＯＭ（ＣＲＯＭ）の実現は、本発明の実施に当たって考えられる別の実施態様である。
【０１２７】
コード状態機械１３８１は、各ドメインへのＭＰＳＤコードシーケンスの発生を制御する。クロック制御回路１４１１、１４１３、１４１５は、新しいＭＰＳＤコード（Ｃ０、Ｃ１、ＣＸ）を各ドメインに加える前に、ＪＣＬＫとＦＣＬＫの間でドメインのクロックを順序よく切り替えるのを制御する状態機械をそれぞれ備える。「状態機械」は計算機科学の用語として用いる場合は、少くなくとも２つの状態を持つ状態移行図により表される、任意のソフトウエアまたはハードウエアに基づく回路を意味する。この状態機械を用いる方法により、エミュレーション機能に割り当てられるＪＴＡＧ演算コードの数は最小になり、同時にＭＰＳＤインターフェースは極めて簡単になる。
【０１２８】
１つの観点から、表ＩＩＩの休止コマンドコード（Ｃ１，Ｃ０，ＣＸ＝１００）は、他の状態が関係する省略時状態すなわち「アンカー」である。コード状態機械とレジスタＣＯＤＡおよびＣＯＤＢはそのＣ０、ＣＸの内容と共に、表ＩＩＩの休止状態を一時停止（１０１）、制御（１１０）、機能（１１１）に変える。ドメインへのスキャンインが必要なときは、コード状態機械１３８１はホスト１１０１のソフトウエアの命令によりＣ０，ＣＸ＝００をＣＯＤＡとＣＯＤＢに入れ、このようにして休止（１００）を装置１１に与える。
【０１２９】
クロック切り替えの観点から、一時停止１０１から休止１００への移行により、機能クロックＦＣＬＫはＪＣＬＫ試験クロックに切り替えられる。切り替えは、論理１３７１、１３７３、１３７５によりドメイン入力Ｃ１、Ｃ０、ＣＸに与えられる休止状態で起こる。
【０１３０】
休止１００から機能１１１、制御１１０、一時停止１０１のどれかに移行するとき、全てのアンロックされたドメインが機能クロックＦＣＬＫに切り替えられてＦＣＬＫで動作するまで、インターフェースは休止１００に凍結する。従って全てのクロック切り替えは、１００休止コードが与えられているときに起こる。
【０１３１】
ホスト１１０１のソフトウエアは、例えば休止（１００）コードが全てのアンロックされたドメインに存在すると仮定してこのインターフェースを動作させるようにプログラムされているので、ＭＰＳＤ経路選択をＩＲ１１５３にロードし、次にＭＰＳＤデータまたは制御ビットを走査して、選択されたドメインに入力してよい。図６４の論理１３７１、１３７３、１３７５は、経路選択がデータか制御かに応じて、各ドメインに対してＳｃａｎＤａｔａ（００ｘ）かＳｃａｎＣｏｎｔｒｏｌ（０１ｘ）のＭＰＳＤ命令コードをセットする。
【０１３２】
ホスト１１０１のソフトウエアが使うための走査可ＳＣＡＮＲＤＹインターフェース可ビットをＩＲ１１５３にセットすることにより、全てのアンロックされたドメインは切り替えが進行中でなく、また休止１００が与えられており、従ってデータまたは制御ビットをドメインにスキャンインしてよい、ということを知らせることができる。
【０１３３】
走査コード００ｘまたは０１ｘが必要なときは論理１３７１、１３７３、１３７５は経路選択に応答するので、コード状態機械１３８１とレジスタＣＯＤＡおよびＣＯＤＸの仕事は、主として００走査可、０１一時停止適用、１０制御適用、１１機能適用、のグループの中からコードビットＣ０、ＣＸを渡すことであることは明らかである。ホスト１１０１のソフトウエアが走査せず、また状態機械がコードＣ０、ＣＸとして０１、１０、１１を与えるときは、表ＩＩＩのコードビットＣ１は１である。従って、ＭＰＳＤコマンドコードＣ１、Ｃ０、ＣＸは、それぞれ１０１一時停止、１１０制御、１１１機能になる。
【０１３４】
図６０は、コード状態機械１３８１とそのイベントマネージャ１３６５の略図である。コード状態機械１３８１は２つの相互に接続するＳＲＬ１４５１と１４５３を備え、図６１の状態移行図のようにシーケンスする。状態移行図は３つの状態、ＬＯＣＫ、ＣＯＤＥＡ、ＣＯＤＥＢと、状態の間の移行Ｔ１、Ｔ２、Ｔ３、Ｔ４、Ｔ５を含む。ＳＲＬ１４５１と１４５３の各出力は、２ビットディジタル信号のＭＳＢ（最上位ビット）とＬＳＢ（最下位ビット）と見なされる。ＭＳＢはＬＯＣＫ状態を表し、ＬＳＢ高と低はそれぞれＣＯＤＥＡ状態とＣＯＤＥＢ状態を表す。イベントマネージャ１３６５は、状態機械がＣＯＤＥＡ状態にある場合はＣＯＤＥＢ状態への移行を要求する、という信号をＳＲＬ１４５３に送る。
【０１３５】
図６０の第３のＳＲＬ１４５５は、図６０のＳＲＬ１４５１と図６３のロック制御１４０１の間に接続する。ＯＲゲート１４６１の入力は、ＳＲＬ１４５１の出力と、図５９Ａの論理１４２５からの切り替え中信号ＳＷＩＮＰＲＯＧに接続する。ＯＲゲート１４６１の出力は、直列接続のインバータ１４６３と１４６５に接続する。各インバータはＳＲＬ１４５３のＣＡＰＴＵＲＥ入力とＨＯＬＤ入力にそれぞれ接続し、ＳＲＬ１４５１とＳＷＩＮＰＲＯＧの状態に関連する状態移行入力を与える。ＯＲゲート１４６１自体は制御保持ＣＮＬＨＯＬＤ出力を図５９Ａの回路１３８３に供給し、回路１３８３にはＬＳＢも接続する。イベントマネージャ１３６５はＳＲＬ１４５３の入力に接続する。
【０１３６】
ＮＡＮＤゲート１４７１は、図５０Ａからの２つの入力ＥＣＲＳＥＬ（エミュレーション制御レジスタ選択）とＳＴＡＲＴに応答して、ＳＲＬ１４５１のＳＥＴ入力に供給する。ＡＮＤゲート１４７３は、ＭＰＳＤＳＥＬ（ＭＰＳＤデータまたは制御走査経路選択）とＳＴＡＲＴに応答して、ＳＲＬ１４５１のＲＥＳＥＴ入力に供給する。
【０１３７】
イベントマネージャ１３６５は、信号ＣＮＴＢＲＷ、ＤＯＮＥ、ＥＭＵ１およびＥＭＵ０、およびその他の分析やコアの状態、または熟練した作業者が選ぶ他の信号に接続する論理回路の集合を含む。信号ＣＮＴＢＲＷは図６９で説明する分析ブロック回路からのカウンタボローである。ＤＯＮＥは、図５８に関連して説明した、停止の完了を示す信号である。ＤＯＮＥはコアが実行中であることを示すＣＰＵコア信号の微分された後縁として状態機械に与えられるので、コアが実行を止めた直後にＤＯＮＥ信号が与えられる。ピンＥＭＵ１とＥＭＵ０は、エミュレーション信号のためにチップの内部または外部から来る同じ名称の信号を通す。
【０１３８】
シフトレジスタ１３５９は、走査可能なレジスタのイベントビットＲＥＶＴ３、ＲＥＶＴ２、ＲＥＶＴ１、ＲＥＶＴ０を含む。ＲＥＶＴ３はインバータ１４８３で反転する走査可能なビットで、ＳＲＬ１４５３に入力を与えるＡＮＤゲート１４８１（低アクティブＯＲとして動作する）に信号を送る。ＲＥＶＴ２、ＲＥＶＴ１、ＲＥＶＴ０は制御ビットで、これによりイベントマネージャ１３６５は、信号ＣＮＴＢＲＷ、ＤＯＮＥ、ＥＭＵ１をそれぞれ選択的に無視したり応答したりする。このために、各ＮＡＮＤゲート１４８５、１４８７、１４８９の出力をＮＡＮＤゲート１４８１に接続する。ＮＡＮＤゲート１４８５、１４８７、１４８９のそれぞれ一方の入力はＲＥＶＴ２、ＲＥＶＴ１、ＲＥＶＴ０にそれぞれ接続する。前記各ＮＡＮＤゲートのそれぞれの第２入力は、ＣＮＴＢＲＷ、ＤＯＮＥ、ＥＭＵ１に接続する。ＥＭＵ０やその他の信号のための別のＮＡＮＤゲートを、シフトレジスタ１３５９に別のイベントレジスタセルとして容易に設けることができる。
【０１３９】
図６０の回路は、新規な方法と構造を実現するために任意の適当な方法で新規に構成することができる。例えばこの実施態様では、一般に、命令レジスタ１１５３がエミュレーション制御経路ＥＣＲ１２５１を選択しかつＳＴＡＲＴパルスが発生したとき、コード状態機械１３８１は現在各ドメインに加えているＭＰＳＤ制御コードをロックする。コード状態機械１３８１はＳＴＡＲＴパルスとＭＰＳＤ走査経路の選択によりＬＯＣＫ状態から出て、ＣＰＵコアの所定の条件や、ＬＯＣＫ状態に戻る前にＲＥＶＴビットによりプログラムされた他のイベントが発生するとこれに応答して、２つのＭＰＳＤ制御コードの一方を加えることができる。また図６１に示すように、コード状態機械はＬＯＣＫ状態に戻る前に、第１と第２の制御コードの間を自動的に往復することができる。例示のために２つのコードだけを示したが、任意の数の制御コードをスキャンインし、または図５９Ａの１３５３および１３５７と同様な対応するシフトレジスタに記憶することができることや、コード状態機械に各コードに対応する状態を持たせるために状態の間の移行を行う回路を設けて、いろいろな動作条件に従って全てのコードをプログラム可能なシーケンスで与えることができることは明らかである。
【０１４０】
各ドメインに自動的に入力するのに特に関係の深いＭＰＳＤ制御コードの対のいくつかを表ＩＶに示す。
表ＩＶ
ＣＯＤＡ ＣＯＤＢ 実行する動作
実行１０  停止０１  ａ）実行プログラム部分：分析ドメインはいつ停止するか
を決定する。停止モードはＦＣＬＫを停止する方法を
決定する。
休止００  休止００  ｂ）モジュール設定：ホストメモリからドメインの走査制
御経路のＳＲＬにダウンロードし、その後のデータ走
査のためにモジュールを選択しまた選択を解除する。
ドメイン走査制御経路からホストＪＣＬＫにアップロ
ードする。図６４のＮＡＮＤ１５８５を参照。
停止０１  休止００  ｃ）スキャンイン（ｂ）を通して機械イメージをロードす
る。次にＣＯＤＡとＣＯＤＢをロードする。停止をか
けて開始すると機械はＤＯＮＥ信号を出して、状態機
械はＣＯＤＢを選択する。ここで次のシーケンスをス
キャンインする。例えばメモリの各語について繰り返
す。
休止００  休止００      ｂによりドメインの走査データ経路で、ホストメモリ
からＳＲＬにダウンロードする。ドメインからホスト
にアップロードする。ＬＯＣＫ１３５１はどのドメ
インをロードするかを決定する。分析ドメインにロー
ドすると上の実行／停止をいつ止めるかを決定する。
分析からアップロードするとＰＣ追跡スタックを検索
する。コアにロードすると実行を始めるプログラム点
を決める。コアにアップロードすると停止したときに
ＣＰＵコアの状態を回復する。システムドメインにロ
ード／アップロードするとシステムドメイン状態を起
動／回復する。図６４のＮＡＮＤ１５８３と制御経路
選択を参照。
【０１４１】
図６１の状態移行図において、移行Ｔ１−Ｔ５のブール式のいくつかの例を以下に示す。
2006349699.tif 000003
【０１４２】
ＣＰＵは実行信号（ＲＵＮ）を与え、その後縁をＤＯＮＥと呼んでＴ２式で用いる。
ＳＷＩＮＰＲＯＧは、任意のクロックドメインがクロック移行中であることを示す。
ＳＴＡＲＴは、装置走査データまたは制御経路を選択してＩＤＬＥ状態に入る第２クロックサイクルでセットされる。
【０１４３】
言葉で説明すると、図６１でコード状態機械１３８１はＬＯＣＫ状態からＣＯＤＥＡ状態に移行Ｔ１を行う。ただし、状態機械がＬＯＣＫ状態にあり、ＳＴＡＲＴ信号が存在し、ＭＰＳＤＳＥＬが存在し、クロック切り替えが進行中でないとする。ＣＯＤＥＡからＣＯＤＥＢ状態への移行Ｔ２が起こるのは、状態機械がＣＯＤＥＡ状態にあり、クロック切り替えが進行中でなく、イベントマネージャ１３５６がこれを要求した場合である。ＣＯＤＥＢからＬＯＣＫ状態への移行Ｔ３が起こるのは、状態機械がＣＯＤＥＢ状態にあり、ホスト１１０１がＥＣＲ要求をＪＴＡＧ  ＩＲ１１５３にロードし、ＳＴＡＲＴが存在する場合である。ＣＯＤＥＡからＬＯＣＫ状態への移行Ｔ４が起こるのは、状態機械がＣＯＤＥＡ状態にあり、ＳＴＡＲＴ信号が存在し、ホスト１１０１がＥＣＲ要求をＪＴＡＧ
ＩＲ１１５３にロードした場合である。ＣＯＤＥＢからＣＯＤＥＡ状態への移行Ｔ５が起こるのは、状態機械がＣＯＤＥＢ状態にあり、クロック切り替えが進行中でなく、ＭＰＳＤＳＥＬがアクティブであり、ＳＴＡＲＴ信号が存在する場合である。
【０１４４】
３つのクロック制御回路すなわちクロック制御１４１１、１４１３、１４１５は、コード状態機械１３８１および回路１３８３、１３９３、１３９５、１３９７、１４０１とタンデムに働く。図５９Ａおよび図６５の各クロック制御回路１４１１−１４１５は、コード状態機械１３８１により選択されたＣＯＤＡレジスタ１３５３とＣＯＤＢレジスタ１３５７の中のＭＰＳＤコードの指示により、クロックＦＣＬＫとＪＣＬＫの間の移行を監督する。その状態用の異なるクロック源を含むレジスタＣＯＤＡまたはＣＯＤＢをコード状態機械１３８１が指定すると、ＬＯＣＫクレジスタ１３５１とロック制御１４０１により選択されたアンロックのドメインに対応するクロック制御１４１１、１４１３、１４１５は、ＮＯＴ  ＧＣＴＤ（このドメインのよくないクロック）信号を出して、ＳＷＩＮＰＲＯＧをアクティブにし、また同時にクロックを切り替えることにより、古い状態のコードをロックする。新しいクロック源から新しいクロックパルスを少なくとも１クロックサイクルの間与えると、クロック制御は信号ＧＣＴＤを出してＳＷＩＮＰＲＯＧを解除し、回路１３８３と回路対、例えば１３９７と１３７１、は新しい制御コードＣ０、ＣＸを使用可能なドメインに通す。これについては、図６２−６５に関連して以下に詳細に説明する。
【０１４５】
図６２において、選択回路１３８３は２つのＭＵＸ１５０１と１５０３を備え、図５９Ａのコード状態機械１３８１からの信号ＬＳＢに応答して、レジスタＣＯＤＡまたはＣＯＤＢからＣ０、ＣＸ制御コードをそれぞれ選択する。Ｃ０、ＣＸコードは、レジスタＣＯＤＡではＣＯＤＡ０およびＣＯＤＡＸと呼び、レジスタＣＯＤＢではＣＯＤＢ０およびＣＯＤＢＸと呼ぶ。選択されたコードは、ＣＯはＳＲＬ１５０７に、またＣＸは１５０９に保持される。これは、インバータ１５１１と１５１２を経て各ＣＡＰＴＵＲＥおよびＨＯＬＤ入力に与えられる制御保持信号ＣＮＬＨＯＬＤに応じて行われる。
【０１４６】
状態機械１３８１がＣＯＤＥＢ状態にＴ２移行を行うと、ＳＲＬ１５０７と１５０９は選択された新しいコードＣＯＤＢをラッチする。しかしこの新しいコードは、目的のドメインに直ぐ送られるわけではない。まず回路１５１４でチェックされ、このコードが用いられるのは機能クロックＦＣＬＫか試験クロックＪＣＬＫかを決定する。言い換えると、この回路はどのクロックが必要かを自分で決定するのであって、どのクロックが必要かをユーザが決定するためのオプションのビットを必要としない。この例示の実施態様では、回路１５１４はＯＲゲートであって、Ｃ０とＣＸが共に低（休止のＭＰＳＤコード）の場合に試験クロックＪＣＬＫを選択する。（ＭＰＳＤコードビットＣ１は、図６４のＮＡＮＤ論理１５６３、１５７３、１５８１、１５８３、１５８５により１に保持される）。回路１５１４からのクロックの要求はＣＮＬＨＯＬＤに応答してＳＲＬ１５１３に保持され、ＳＲＬ１５１３は、図５９Ａのロック制御１４０１と各回路１３９３、１３９５、１３９７へのクロック選択出力ｎｃｌｋｓｅｌを生成する。
【０１４７】
回路１３９３、１３９５、１３９７（図６２には１３９７だけを示す）は、ＭＰＳＤコマンドコードＣ０とＣＸのためのＳＲＬ１５１７と１５１９と、クロック選択信号を保持するＳＲＬ１５２３とを同じように含む。これらの回路は、全てのドメインを制御するための、前に入ったＭＰＳＤコマンドとクロック選択情報を保持する。どれか１つの所定のドメインを更新するときは、回路１３９３、１３９５、１３９７の中の対応するものを更新し、他の２つはその情報をそのまま保持する。ＳＲＬ１５１７、１５１９、１５２３の入力は、それぞれ対応するＳＲＬ１５０７、１５０９、１５１３の出力に接続する。ロック信号ＬＯＣＫＳ、ＬＯＣＫＣまたはＬＯＣＫＡによりどれがアンロックされるかに従って、回路１３９３、１３９５、１３９７の中の選択されたものに回路１３８３からのデータがストローブインされる。また、ＬＯＣＫ１３５１はいくつかのまたは全てのドメインを同時にロックまたはアンロックするビットを持てることは明らかである。１つ以上のドメインの走査が必要なときは、ビットを適当にセットすると、ホスト計算機１１０１は図５５の各ＭＵＸで結ばれる全てのドメインを同時に更新することができる。
【０１４８】
簡単に言うと、Ｃ０、ＣＸコードは１クロックサイクルだけ遅れてドメインに入るので、コードを与える前に、表ＩＩＩのＣ１、Ｃ０、ＣＸに含まれるクロック情報を調べて処理することができる。処理が必要な場合は、クロックが切り替わるまではコードをドメインに与えることを切り替え進行中ＳＷＩＮＰＲＯＧにより禁止する。
【０１４９】
図６３に、３個のＯＲゲート１５３１、１５３３、１５３５を備えるロック制御回路１４０１を示す。各ＯＲゲートの第１入力は図５９Ａのロックレジスタ１３５１からの線ＬＯＣＫＲＱＳ、ＬＯＣＫＲＱＣ、ＬＯＣＫＲＱＡにそれぞれ接続し、出力は図５９Ａと図６２の線ＬＯＣＫＳ、ＬＯＣＫＡ、ＬＯＣＫＣにそれぞれ接続する。これらの３つのＯＲゲートの第２入力は、共にＯＲゲート１５４１の出力に接続する。ＯＲゲート１５４１の第１入力は、ＡＮＤゲート１５４３の出力に接続する。ＯＲゲート１５４１の第２入力は、図６０のＳＲＬ１４５５の出力に接続する。ＡＮＤゲート１５４３の２つの入力は、ＳＷＩＮＰＲＯＧとｎｃｌｋｓｅｌに接続する。このようにして、ＬＯＣＫレジスタ１３５１のビットは、ビットがドメインのロックを要求すると（試験クロックＪＣＬＫだけ）、任意の他の信号を置き換える。しかし、レジスタ１３５１が任意の１つ以上のドメインをアンロックする（各ドメインに機能クロックＦＣＬＫを要求する）と、ＳＲＬ１４５５の遅れたロッキングＭＳＢ出力か、切り替え進行中ＳＷＩＮＰＲＯＧとクロック選択ｎｃｌｋｓｅｌ高の組合わせかにより、各ドメインは内部でロックすることができる。ＯＲゲート１５４１が３つのＯＲゲート１５３１、１５３３、１５３５の全てに無差別にロッキング要求を送ることにより、別の選択回路を必要とせずに全てのアンロックドメインはロックされる。
【０１５０】
図６４において、同一の回路１３７１、１３７３、１３７５（１３７１を図示する）はそれぞれ回路１３９７、１３９５、１３９３に接続する。例えば、図６２のＳＲＬ１５１７の出力とＳＲＬ１５１９の出力は、図６４の回路１３７１のＮＡＮＤゲート１５５１と１５５３の各第１入力に２線の１３９８で接続する。回路１３７１は、システムドメインへのＭＰＳＤ３線制御信号（ＳＣ０、ＳＣ１、ＳＣＸ）を、３つのＮＡＮＤゲート１５６１、１５６３、１３６５の出力から供給する。ＮＡＮＤゲート１５５１と１５５３の各出力は、ＮＡＮＤゲート１５６５と１５６１の入力にそれぞれ接続する。ＪＭＯＤＥ＝００のとき、コード変換論理ブロック１２０５がアクティブになって図５０Ａと図５９Ａの線ＴＭＳ、ＴＤＩ、ＴＤＯの３線の試験コードを変換し、２つのアクティブ低出力ＴＣ０−とＴＣＸ−をＮＡＮＤゲート１５６１と１５６５の各入力に出す。このブロック１２０５は、図５９ＡのＪＭＯＤＥレジスタ１３６０の２ビットから信号を受ける低アクティブＯＲ１５７１により使用可能になる。このようにして、コード変換論理ブロック１２０５は表ＩＩＩのＭＰＳＤコード以外の任意の３線の試験性コード方式からＭＰＳＤコードに変換するので、システムの柔軟性と適応性が増す。
【０１５１】
ＪＭＯＤＥ１またはＪＭＯＤＥ０ビットが高のときは、コード変換は禁止になる。しかし例えばＪＭＯＤＥ１ビットが高のときは、ＮＡＮＤゲート１５５１と１５５３のそれぞれの第２入力が有効になる。ＪＭＯＤＥの両ビットが高のときは、ＮＡＮＤゲート１５７３はＳＴＲＡＰ状態を表す低出力を出す（装置を走らせ、エミュレーションおよび試験性機能を使用禁止にする）。この低出力が出ると、３つのＮＡＮＤゲート１５６１、１５６３、１５６５から、機能的実行のための（１１１）ＭＰＳＤ制御コード７に対応する高出力を出す。
【０１５２】
ＮＡＮＤゲート１５６３の別の入力はＮＡＮＤゲート１５８１の出力に接続し、ＮＡＮＤゲート１５８１の２つの入力は、２つのＮＡＮＤゲート１５８３と１５８５の各出力にそれぞれ接続する。ＮＡＮＤゲート１５８５の出力は、ＮＡＮＤゲート１５６１の入力にも接続する。特定のドメイン（ここではシステム）をアンロックする（ＪＣＬＫを選択）場合は、ＬＯＣＫＳ−低アクティブ線がＮＡＮＤゲート１５８３と１５８５を有効にする。図５０ＡのＴＡＰ１１５１が走査入力のための図５０ＢのＪＳＤＡＴ状態にあるときは、ＴＡＰからの線ＪＳＤＡＴは図６４で高になり、ＮＡＮＤゲート１５８３と１５８５を有効にする。
【０１５３】
ＮＡＮＤゲート１５８３と１５８５の役割は、ホスト計算機１１０１がＴＡＰをデータ走査ＪＳＤＡＴ状態にするためのＴＭＳ信号を送ったとき、最初の２つのＭＰＳＤ制御コードＣ１とＣ０（システムドメインではＳＣ１とＳＣ０）を特に決定して、ホスト１１０１が第１の場合はＭＰＳＤデータを走査し、第２の場合はＭＰＳＤ制御ビットを走査したいことを回路に知らせることである。第１の場合には状態ＪＳＤＡＴＡにあり、ホスト１１０１は図５４のＭＰＳＤ経路１２５２を選択するＭＰＳＤデータ選択をＩＲ１１５３にすでにロードしている。この動作の例で言うと、システムドメインはたまたまロックされているが、走査するためにはアンロックしなければならない。図６４では、ＭＰＳＤ制御ＳＲＬが走査のための経路としては望ましくないので、線ＭＰＳＤデータは高になり、ＭＰＳＤ制御は低になる。ＮＡＮＤゲート１５８３の出力は低になり、ＮＡＮＤゲート１５８１の出力は高になる。ＴＡＰがストラップ状態にないので、ＪＳＴＲＡＰ−はＮＡＮＤゲート１５６３でイナクティブ高になり、ＳＣ１は低になる。ＮＡＮＤゲート１５６１の全ての入力が高なので、ＳＣ０は低になる。ＳＣ１，ＳＣ０＝０，０はこのドメインのＭＰＳＤデータ走査コマンドを定義する。これはまさに所望のものである。
【０１５４】
第２の場合は、ホスト１１０１はＩＲ１１５３にＭＰＳＤ制御経路選択をすでにロードしており、従ってＩＲ１１５３は第１の場合と同様に、ＭＰＳＤ経路１２５２を選択する。しかし今回は、ＩＲ１１５３デコードは図６４のＭＰＳＤ制御線をアクティブにし、ＭＰＳＤデータ線は低のままである。ドメインはロックされているが、走査するためにはアンロックしなければならない。ＮＡＮＤゲート１５８３、１５８５、１５６１、１５８１、１５６３を調べると、コードＳＣ１，ＳＣ０＝０１になったことが分かる。このようにして、所望のＭＰＳＤ制御走査コマンドがそのドメインに対して定義される。
【０１５５】
上に述べたように、ＣＰＵドメイン、分析ドメイン、システムドメインのＭＰＳＤ走査を行うと、ＪＣＬＫ試験クロックに接続するドメインとのドメインインターフェースで走査制御または走査データコードを与えることにより、これらのドメインをＪＴＡＧ環境１１４９に従属させる。
【０１５６】
図６５において、同じクロック制御回路１４１１、１４１３、１４１５（１４１５を示す）は、機能クロックＦＣＬＫと試験クロックＪＣＬＫを供給されるＮＡＮＤゲート１６０１と１６０３を備える。ドメインクロック出力（例えばクロック制御１４１５のＳＣＬＫ）を供給するＮＡＮＤゲート１６０５の入力は、ＮＡＮＤゲート１６０１と１６０３の出力にそれぞれ接続する。ＮＡＮＤゲート１６０１、１６０３、１６０５は、それぞれの第２入力１６０７と１６０９により制御されるクロックＭＵＸ（マルチプレクサ）として動作する。
【０１５７】
物理的にチップ１１上では、クロック線１６１１および１６１３と、機能クロックＦＣＬＫおよび試験クロックＪＣＬＫの切り替え要素１６０１、１６０３、１６０５は、図５９Ａのアダプタ１２０３の他の部分から分離すなわち絶縁されている。言い換えると、図５９Ａはクロック制御回路１４１１、１４１３、１４１５とアダプタ１２０３のその他の部分との密接な関係を図的にまた概念的に示すが、またチップ設計の観点からは、チップ上では回路を物理的に絶縁することが望ましい。チップのアダプタ部分の回路１４１１、１４１３、１４１５の部分からの制御導体は、チップ上の物理的な切り替え要素とは別の場所でクロック発生器の上を通して、２つのクロックのどちらを各ドメインに通すかを選択する。
【０１５８】
クロック制御回路１４１１、１４１３、１４１５により、装置１１の一部または全ては機能モードで動作し、プログラムの目的通りに実時間速度で装置を正確に動かす。他方、走査とは、ビットを逐次に機械に送りまたは機械から取り出して機械状態を作り、また変化した機械状態のイメージを取り出す動作である。走査クロックＪＣＬＫを用いて、エミュレーションホスト計算機１１０１に逐次データを入れまたは取り出すのが望ましい。言い換えると、装置１１に送られている速度でドメインにビットを入れることのできるクロックをドメインが受けることが重要である。このようにして、機能クロックを外部クロックのどれかと同期させる面倒がなくなる。
【０１５９】
また、回路は低い走査速度でビット毎の同期転送を支援することができる。ビット毎の方式では、試験クロックＪＣＬＫの速度は機能クロックＦＣＬＫより遅い。従って図６５では、ＦＣＬＫの１パルス幅に対応する１クロック幅のパルスを用いて走査とのアンドをとり、または代わりに用いる。
【０１６０】
更に図６５において、線１６０７と１６０９がそれぞれ高と低であって機能クロックＦＣＬＫを選択し、ドメインスイッチクロック選択ＤＳＣＳ−のイナクティブ高に応答して回路が安定したと仮定する。次に図６２のＳＲＬ１５２３はＤＣＳＣ−をアクティブ低にして試験クロックＪＣＬＫを選択する。ＧＣＴＤ信号は、３つのＮＡＮＤゲート１６２１、１６２３、１６２５の網により、直ぐ低になる。ＤＳＣＳ−はＮＡＮＤゲート１６２１の入力に接続し、その補信号はインバータ１６２７を経てＮＡＮＤゲート１６２３の入力に接続する。ＮＡＮＤゲート１６２１と１６２３の第２入力は、線１６０７と１６０９にそれぞれ接続する。ＮＡＮＤゲート１６２１と１６２３の出力は、ＮＡＮＤゲート１６２５の各入力に接続し、ＮＡＮＤゲート１６２５はＧＣＴＤ出力を出す。
【０１６１】
今ＤＳＣＳ−がアクティブ低なので、インバータ１６２７は高を作り、これがＮＯＲゲート１６２９の出力を低にする。この低が、直列に接続されているＤフリップフロップ１６３１と１６３３を機能クロックＦＣＬＫの２サイクルで伝播して線１６０７を低にし、ドメインからのＦＣＬＫを止める。しかし試験クロックＪＣＬＫはまだドメインに供給されていない。線１６０７が低になると、ＮＯＲゲート１６３９をＪＣＬＫ選択のために有効にする。ＧＳＣＳ−がアクティブ低なので、ＮＯＲゲート１６３９の出力は高になる。この高が、直列に接続されているＤフリップフロップ１６４１と１６４３を試験クロックＪＣＬＫの２サイクルで伝播して線１６０９を高にし、試験クロックＪＣＬＫをＮＡＮＤゲート１６０５を通してドメインに入れる。次に１６０９の高は有効なＮＡＮＤゲート１６２３の出力を同時に低にし、ＧＣＴＤ出力を高にして「このドメインのよいクロック」信号を送る。逆にＪＣＬＫからＦＣＬＫへの切り替えは、図６５の回路で同様に逆の過程で起こる。
【０１６２】
一般的な考察に戻って、開発システム能力は、バストラヒックの分析、機械状態の検査と修正、ユーザズプログラムの実行、周辺装置の動作の観察、メモリの読取りおよび書込みから成る。ＭＰＳＤにより与えられる機能の基本的な集合があり、ＪＴＡＧフロントエンドをシステムに加えると追加の同時の機能が補充される。
【０１６３】
望ましい実施態様では、ここでモード駆動による停止と呼ぶ機能は６つの停止モードの１つを決める。デコード回路を設けて、任意のこれらの特定のモードを選択するとこれに応答して、上に述べた特定の型式の停止が実施される。モード駆動による停止は特に重要な改良であって、これにより、例えば開発エンジニアは周辺装置をシミュレート中に１つの方法でプロセッサを停止し、エミュレーション制動を実行中に別の方法でプロセッサを止めることができる。例えばエミュレーション制動では、ＣＰＵは止めたいが周辺装置は止めたくない場合がある。図４５のターゲット基板１０４３でのサンプル速度が正しくなるようにエミュレーションカウンタは計数を続けたいが、情報をスキャンアウトしまたはサンプルの間で並列にアクセスできるようにＣＰＵを止めたい。他方、クロックステッピングの場合は全てのドメインを止めることが望ましい。また周辺装置のシミュレーションの場合は、周辺装置をシミュレート中なので全てのドメインを止めたい。
【０１６４】
このように、ＣＰＵコアを止めて分析、コア、周辺装置、メモリ、インターフェース情報にアクセスするという、インターフェースを通して利用できる機能の基本的集合として、開発システム機能が実現される。
【０１６５】
ＣＰＵコアは一時停止するが、システムの他の部分である周辺装置やメモリやインターフェースの動作は継続させるようにシステムをプログラムする場合は、実行の同時性の段階がある。
【０１６６】
図５７において、エミュレーションセッションを始めるときに停止モードを指定する。これらは全セッションにおいて装置の動作モードにアドレスする。動作モードは、ＣＰＵコアが一時停止中にスキャンローディングされる別個のエミュレーションモードレジスタすなわちモジュール１３１１で指定する。この有用なモード機能はモード駆動による停止を含む。
【０１６７】
言い換えると、動作モードは、装置一時停止を実行中にチップが示す特徴により主として定義される。これらの動作モードをここではパイプフラッシュ、パイプステップ、クロックステップと呼ぶ。トラップ可能は分析停止をトラップにマップし、エミュレーショントラップ演算コードを使用可能にする。
【０１６８】
パイプフラッシュでは、停止条件を検出するとＣＰＵブロックは一時停止する。ＣＰＵは命令の取り出しを止め、現在パイプラインにある全ての命令を実行し、図５７のコード状態機械１３８１にＤＯＮＥ信号を送る前に実行中の全てのメモリ活動を完了し、走査のための停止条件の信号を線ＳＣＯＵＴに出す。全ての他のブロックは実行を継続し、周辺装置やメモリとの通信に関連するＣＰＵコアからの全ての制御線は、チップがエミュレーションモードにあるときにパイプラインがフラッシュされるとイナクティブ状態に維持される。シミュレーションモードでは、周辺装置はＣＰＵと共に停止する。
【０１６９】
パイプステップでは、停止条件を検出するとＣＰＵブロックだけが一時停止する。ＣＰＵはパイプラインクロック境界で凍結し、パイプラインは凍結し、ＤＯＮＥが供給されるときは全ての外部メモリアクセスは首尾よく完了しているように見える。全ての外部メモリ制御線はイナクティブ状態になる。書込み可能ＷＥ−および読取り／書込みＲ／Ｗ−が高になるときは、アドレス線はまだ有効である。ＣＰＵがこのモードで開始して、装置が停止したときに外部メモリアクセスが進行中であったと決定すると、実行を開始したときに外界にアクセスを再開始する。周辺装置またはメモリとの通信に関連する全ての制御線はリセットされてイナクティブになる。
【０１７０】
クロックステップでは、装置は１クロックサイクル進む。メモリ信号はマルチサイクルならばそのままである。分析停止条件を検出すると、ＣＰＵは所定の位置にＮＭＩ（マスク不可能な割り込み）としてトラップする。コードの実行は継続し、その後プログラムで発生した停止条件は全て、エミュレーショントラップ命令からの復帰を実行するまで禁止になる。全ての他のドメインは実行を継続する。語トラップとは、プロセッサが扱うサブルーチンのハード呼出しのことである。ジャンプアドレスは実行中のソフトウエアで設定されるのではなく、プロセッサ自体の中で設定される。別のメカニズムはエミュレーショントラップ命令である。開発型の動作では、特定の命令はトラップ命令と置き換えられる。この目的で、これはソフトウエア区切り点と呼ばれる。ソフトウエアがＲＡＭにある場合は、ソフトウエア区切り点を用いることができる。ソフトウエアがＲＯＭにあるときは、ＲＯＭコード内の命令を動的に置き換えることができないので、ここではハードウエア区切り点が与えられる。
【０１７１】
シミュレーションパイプフラッシュでは、停止条件を検出すると全チップが一時停止する。ＣＰＵは命令の取り出しを止め、現在パイプラインにある全ての命令を実行し、図５７のコード状態機械１３８１へＤＯＮＥ信号を送りかつ走査のためにＳＣＯＵＴに停止条件の信号を送る前に、現在パイプラインにある命令に関連する全てのメモリ活動を完了する。ＣＰＵが停止すると、全ての他のブロックは停止する。
【０１７２】
シミュレーション凍結では、停止条件を検出すると全チップが直ぐ停止し、ＤＯＮＥ信号を出す。全ての外部制御線はイナクティブ状態になる。
【０１７３】
シミュレーショントラップでは、分析停止条件を検出するとＣＰＵは所定の位置にＮＭＩとしてトラップする。さもなければ停止が起こる。コードの実行は継続し、その後のプログラムで発生した停止条件は全て、エミュレーショントラップ命令からの復帰を実行するまで使用禁止になる。周辺装置は、トラップを行ったときからエミュレーショントラップ命令から復帰するまでの間、中断する。
【０１７４】
すでに説明したように、プロセッサの特定の停止モードは図５７のモードレジスタ１３１１により決定される。停止モードの各ビットの位置、任意の特定のレジスタ内の配置、走査性は非常に柔軟性がある。別の例では、５つの制御ビットであるＴＥＳＴ、ＳＩＭ、ＥＭＵ、ＴＲＡＰＥＮ、ＰＦＬＵＳＨを用いて、特定の停止モードを実現することもできる。この実施態様では、今述べたビットは分析ドメイン内にある。停止モードが一般に実際にはしばしば変わらない場合は、これを別のモードレジスタ１３１１内に置くことにより、いろいろなドメインの不必要な走査ビットを避けることができる。さもなければ、第２の例で述べたようにいろいろな停止モードビットを各ドメインに割り当てることができる。
ＴＥＳＴ  ＳＩＭ              ＰＦＬＵＳＨ
ＥＭＵ凍結                      ０        ０                      ０
ＥＭＵパイプフラッシュ          ０        ０                      １
ＥＭＵトラップ                  ０        ０                      ０
ＳＩＭ凍結                      ０        １                      ０
ＳＩＭパイプフラッシュ          ０        １                      １
ＳＩＭトラップ                  ０        １                      ０
ＴＥＳＴ凍結                    １        ０                      Ｘ
【０１７５】
エミュレーション機能とシミュレーション機能の間には微妙な差があり、その概要を以下に示す。一般的には、エミュレーションとシミュレーションの停止モードの主な違いは、エミュレーションではＣＰＵコアが停止しても周辺装置の論理はできるだけアクティブであることである。シミュレーションモードでは周辺装置の論理も停止する。
【０１７６】
パイプステップでは、ＣＰＵはパイプ段階境界で停止する。エミュレーションとシミュレーションの違いは、どのドメインがＭＰＳＤポートに応答するよう指示されるかによって決定する。エミュレーションモードではＣＰＵドメインだけが接続されるが、シミュレーションモードでは全てのドメインが接続される。エミュレーションモードでは周辺装置とインターフェースドメインが実行を継続するので、メモリサイクルは完了し、周辺装置は実行を継続する。シミュレーションモードでは全てのドメインがいっしょに動作するので、ＣＰＵと周辺装置とインターフェースが同時に凍結する。
【０１７７】
パイプフラッシュ  −  パイプフラッシュはＣＰＵを命令境界で停止する。シミュレーションモードでもエミュレーションモードでも、ＣＰＵコアは取り出した命令を全て完了し、上に述べたように必要な凍結シーケンスを実行する前に活動のパイプラインをクリアする必要がある。エミュレーションモードでは、局所的に指示すれば周辺装置は実行を継続する。シミュレーションモードでは周辺装置は停止する。
【０１７８】
トラップ  −  トラップはＣＰＵを停止せず、代わりにトラップを取る。エミュレーショントラップとシミュレーショントラップの違いは、シミュレーショントラップでは、トラップを取ったときはエミュレーショントラップ復帰を実行するまでは周辺装置ドメインを停止することである。
【０１７９】
ＣＰＵコアはＳＵＳＰＥＮＤと呼ぶ信号を発生する。これは、ＣＰＵがユーザプログラムの実行を停止したことを他の装置に示す信号である。各動作モードにおけるＳＵＳＰＥＮＤ信号の動作を以下に示す。
ＥＭＵ凍結  −−  ＣＰＵが停止すると直ぐ表明する。
ＥＭＵパイプフラッシュ  −−  ＣＰＵが停止すると直ぐ表明する。
ＥＭＵトラップ  −−  ＣＰＵがエミュレーションまたはモード仕様毎のＣＰＵステップまたは演算コード実行のためにＣＰＵがトラップしたときに表明する。
ＳＩＭ凍結  −−  ＣＰＵが停止すると直ぐ表明する。
ＳＩＭパイプフラッシュ  −−  ＣＰＵが一時停止すると直ぐ表明する。
ＳＩＭトラップ  −−  ＣＰＵがトラップを取ると直ぐ表明する。エムトラップ（Ｅｍｔｒａｐ）復帰を実行すると表明を解除する。
【０１８０】
中断インターロック機能では、ＳＵＳＰＥＮＤ信号をチップの他の部分に表明するための走査可能ビットをＣＰＵは持つ。ＣＰＵが停止すると、ＣＰＵが再起動するまでコアハードウエアはＳＵＳＰＥＮＤを表明する。ＣＰＵはメモリ動作中は実行することを要求されるので、ソフトウエアのコマンドによりＳＵＳＰＥＮＤをアクティブ状態に留めることができるように、走査可能なインターロックビット（ＳＵＳＩＬＯＣＫ）をＣＰＵの中に置く。このようにして、ＳＵＳＩＬＯＣＫにより、ＣＰＵは走査で起動するメモリ動作を実行することができる。このビットは、図５０ＢのＪＴＡＧストラップ状態により非中断（イナクティブ条件）に初期化される。チップへのＳＵＳＰＥＮＤ信号放送は、ＣＰＵ停止信号とＳＵＳＩＬＯＣＫビットの論理和である。このビットがあると、マクロや、充填や発見やダウンロード支援などの他のプログラムシーケンスを、容易に使用することができる。
【０１８１】
コアは、メモリや周辺装置資源にアクセスするのに用いられる。メモリ動作はＣＰＵ資源を用いて適切に生成される。メモリアクセスは適当なＣＰＵメモリアクセス命令を含むＣＰＵ状態をスキャンインすることにより生成される。これによりメモリアクセスを適当なメモリまたはＩ／Ｏ空間で生成することができる。これはパイプラインパイプフラッシュビットをセットした機械状態や、所望のメモリ動作を起こさせるパイプラインの中の適当な命令をロードすることにより行われる。
【０１８２】
任意のメモリ活動を起動する前に、ＳＵＳＰＥＮＤビットをＣＰＵイメージにセットして、ＣＰＵがしばらくの間実行モードに入ったことをシステムの他の部分が検出しないようにする。
【０１８３】
状態をロードすると、ＣＰＵはＭＰＳＤ休止状態から一時停止状態に移る。次にＣＰＵは通常の停止シーケンスを終わっているかのようにロードした命令を実行し、ＳＣＯＵＴを設定して実行中であることを示し、次にパイプが空になりかつ命令により生成された全てのメモリ動作が完了するとＳＣＯＵＴにＤＯＮＥ信号を出す。パイプラインにスキャンインされた命令により起動されたもの以外のメモリ活動は起こらない。動作が終わったとき、パイプフラッシュビットをオンにした停止コードがＭＰＳＤポートから与えられると、機械はあたかも通常の停止シーケンスを完了したように見える。
【０１８４】
メモリダンプやファイルなどの多重メモリ操作はマクロ操作を利用する。繰り返し動作は、繰り返し動作をすでに組み込んだ単一の命令、スキャンロードを設定して走査することができる。従って、繰り返しおよび実行可能命令を走査によりロードする必要はない。
【０１８５】
どの停止モードでも、分析ドメインは機能を継続する。
メモリおよびＩ／Ｏ動作に用いられる命令シーケンスと資源は、プログラムメモリ読取り、プログラムメモリ書込み、データメモリ読取り、データメモリ書込み、Ｉ／Ｏ読取り、Ｉ／Ｏ書込みである。
【０１８６】
高速でメモリをダウンロードするために、特にメモリ転送が単語の場合は、望ましい実施態様はメモリまたはＩ／Ｏトランザクションを起動するために転送されるビットの数を最小にするＣＰＵ走査経路を含む。ブロック転送を行うために全レジスタファイルを用いる場合は、多重走査モジュールを用いてよい。
【０１８７】
短い走査経路は、上に説明した型のメモリ動作を実現するのに必要な全てのＣＰＵ資源を含む。繰り返し命令や補助レジスタの自動増分特性を用いて、効果的なロードシーケンスを生成する。
【０１８８】
キャッシュが構造の一部であるときは、走査動作により容易にロードまたはアンロードすることができる。これにより、ソフトウエア区切り点命令で終わるマクロをキャッシュに持たせることができる。プログラムの実行をキャッシュ外で行い、ＳＵＳＰＥＮＤビットをセットし、実行を起動するために、プログラムカウンタとキャッシュ管理ハードウエアを設ける。これにより、高速のメモリ転送、充填、発見、その他のマクロを実現することができる。
【０１８９】
キャッシュマクロ法の利点は、命令でアクセスできない隠れたプログラムメモリを効果的に作成することができるということである。
【０１９０】
望ましい実施態様では、単なるＪＴＡＧ境界走査を越えるレベルの同時実行ができる。例えばマイクロプロセッサは、内部情報へのアクセスが非常に重要な非常に価値のある複雑な応用である。ＪＴＡＧ境界走査は試験ポートを必要とするので、特定のチップに一度に１つづつまたは全てを同時に通信するのに、この試験ポートはより効果的に用いられる。望ましい実施態様はエミュレーション制御レジスタ１２５１にコマンドを与えかつ通信をゆるやかに結合するので、必要なときは装置１１を実時間で実行できる。このようにして、ＪＴＡＧ  ＩＲ１１５３にロードしてデコードにより走査を実行するのとは対照的に、単に静的な試験環境が、図５９ＡのＣＯＤＡやＣＯＤＢなどのコマンドに応答して装置１１を動的に動作させるように改良される。
【０１９１】
チップにクロックサイクル毎に指示を与えるのではなく、望ましい実施態様では分析ドメインに条件を設定する。すると分析ドメインは実時間で走るチップを効果的に監視し、条件が発生するとこれを検出し、チップを止め、チップが止まったことをエミュレーションホスト計算機１１０１に知らせる。実際に、図５９Ａの望ましい実施態様はエミュレーションホストをクロックサイクル毎の監視から解放し、エミュレーションホスト計算機の速度をはるかに越えるクロック速度で走る新しいチップに適応することによってエミュレーションホストに必要なコマンド数を減らし、これによりエミュレーション高速化変換器として働く。更に望ましい実施態様は、サイクル毎の制御と上向きの互換性がある。その理由は、走査インターフェースの線を用いて、例えば図５０Ｂ図のストラップ状態にある変換ブロックすなわちトランスレータ１２０５によりＭＰＳＤコマンドコードを発生するからである。
【０１９２】
この望ましい実施態様は、更にシミュレーションの加速や他の装置のデバッグ動作にも用いることができる。装置を機能クロックＦＣＬＫで走らせ、次に止めて装置の状態を取り出し、観察し、調べることができる。ＪＴＡＧ試験性インターフェースを用いて走査により刺激を入力し、状態が正確な毎秒１０、０００命令ものシミュレーション速度を達成する。６けた以上の費用のかかる試験装置に投資することなく、原型のシリコンパターンをオンラインで容易にデバッグする。ＪＴＡＧ境界走査というと基板への応用が考えられるが、本発明は基板上の各装置の内部にも適用される。あらゆる内部走査状態を高速で作って取り出すので、装置のデバッグが加速される。
【０１９３】
従って、エミュレーションシステムを通して機能コードをダウンロードする能力は、試験の分野でも重要な意味を持つ。これにより、ユーザは自己試験を行うことができる。望ましい方法による自己試験では、ユーザは装置１１内にランダムアクセスメモリ（ＲＡＭ）を持つ、すなわち装置１１にアクセスできる。ユーザは、大規模な試験プログラムをエミュレーションポートを通してダウンロードする。これはＢＩＳＴ（組込み自己試験）と同等である。従って、ＢＩＳＴ用の専用のハードウエア装置は必要ない。というのは、更に投資を必要とせずにチップ上のエミュレーションハードウエアがこの追加の用途に使えるからである。ユーザはエミュレーション機能を用いて試験をダウンロードすることができるし、また製造ラインでのゴー／ノーゴー装置試験を行うときに、ユーザが望むような試験パターンを逐次シーケンスで実行することができる。
【０１９４】
更に図６６に示すように、チップ製作工程自体でチップに試験をダウンロードする。ウエーハ製造ライン１６５３の試験ヘッド１６５１にホスト計算機１１０１を結合して、ウエーハをチップに分割する前または製作中の任意の時点に、各ウエーハ１６５５上の装置の欠陥を検出する。図４９、５４、５５、５６、５７および５９Ａ−６５に関連して述べた走査インターフェースを、多くのチップを作るウエーハ上の多くの位置１６５７のそれぞれに微細に与える。
【０１９５】
図６６のホスト計算機１１０１に試験プログラムをロードし、コントローラカード１１４１と直列の線１１０３を経てウエーハ試験ヘッド１６５１と通信する。試験ヘッド１６５１をＸＹＺ座標１６６３内に正確に位置決めし、ウエーハ１６５５内の各ダイ位置１６５７の微細な接触パッドに接触線１６６５を正確に押しつける。位置１６５７の回路は例えば装置１１の回路である。プリンタ１１４３、ハードディスク１１４５、バス１１４８上のモデム１１４７の形で、フル装備の周辺装置資源が計算機１１０１とウエーハ上の装置に利用できる。
【０１９６】
図６７に示す過程に従うと、動作はウエーハ製作１６７１で始まり、段階１６７３でウエーハ１６５５を図６６に示す試験位置に運ぶ。次に段階１６７５で、ウエーハ１６５５上の次のチップが試験ヘッド１６５１と接触するようにＸＹＺ座標１６６３内で試験ヘッド１６５１を位置決めする。次の段階１６７７で、試験ヘッド１６５１を通してチップ内のＲＡＭに、自己試験パターン走査をダウンロードする。段階１６７９で、チップを機能クロックに切り替えてオンチップで試験パターンを実行する。次に１６８１で、位置１６５７に図４９の回路１１５０と１２０３を持つ微細なインターフェースを通してチップの装置状態をスキャンアウトする。試験ヘッド１６５１を通して信号をホスト計算機１１０１に送って処理し、周辺装置資源でデータを記憶し、表示する。段階１６８３で、ホスト計算機１１０１は位置１６５７のチップに欠陥があるかどうかを決定する。欠陥があれば、段階１６８５で行動段階１６８７に分岐し、随意にウエーハ位置にドットマークをつけおよび／またはこれにデータを記憶して欠点を記録する。この記録は回路の微細な修理にも役立つ。次に段階１６８９で、全てのチップの試験が済んでいなければ動作は段階１６７５に戻り、試験ヘッド１６５１の接点１６６５をウエーハ１６５５上の次の試験チップ位置に正確に位置決めする。全ての位置の試験が済めば、動作は段階１６８９から決定段階１６９１に分岐する。次のウエーハを検査する場合は、動作は段階１６７３に戻って、別のウエーハを試験位置に運ぶ。そうでない場合は工程は終了１６９３に来る。
【０１９７】
装置１１では、コアＣＰＵは次の機能を実現する。
走査インターフェースから指示されると機能をストラップする。
走査インターフェースから指示されると実行し一時停止する。
ソフトウエア区切り点またはハードウエア区切り点に来ると一時停止する。
走査クロックになるコアクロックを選択して走査に備える。
周辺装置の開始／停止機能を導くために、チップの他の部分に中断信号を表明する。
装置が停止した理由を表すはっきりした記録を保管する。
割り込みの発生を管理する。
区切り点およびソフトウエア割り込みが発生して遅延分岐や他のパイプラインに関連する事象の発生と相互に作用するとき、パイプライン管理を行う。
割り込みが発生したとき、割り込みサービスルーチンを一度に１命令ずつ実行するなどの命令ステップ。
コアが一時停止中にＣＰＵコアからメモリアクセスを発生する。
プログラムカウンタスタックは多数の以前のプログラムの不連続点を追跡する。
ＣＰＵコアがコードを実行中にメモリの読取りおよび書込みを実行する。チップ上またはメモリ内のデバッグモニタやＳＰＯＸデバッガと通信する。
【０１９８】
図６８Ａと図６８Ｂは、ＣＰＵコアドメイン１２１３の機能回路のブロック図を示す。これは、入力ＣＳＣＩＮが入る小さな正方形で示す一連の走査レジスタを用いて改良したものである。ＣＰＵコアについては、対応する図１Ａと図１Ｂに関連して、米国特許第５，０７２，４１８号に大部分が記述されている。走査レジスタといくつかのモジュールの関連するＭＰＳＤモジュール回路の構造の詳細は、図６８Ａと図６８Ｂでは簡単のために省いてある。
【０１９９】
プログラムカウンタスタック９１とは別個の追跡スタック回路１６９５を設けることにより、ＣＰＵコアは更に改良される。スタック９１とは異なり、追跡スタック回路１６９５はプログラムカウンタの不連続点の履歴を記録し、容量が満杯になったときはＴＲＦＵＬ追跡スタック満杯信号を出す。
【０２００】
ハードウエア区切り点回路１６９７はプログラムアドレスバス１０１Ａに接続し、特定のプログラムアドレスまたはプログラムアドレスの所定の範囲内のアドレスに来るとプログラムアドレス区切り点信号ＢＰＰＡを出す。
【０２０１】
図６８Ｂにおいて、ハードウエア区切り点回路１６９９はデータアドレスバス１１１Ａに接続し、特定のデータアドレスまたはデータアドレスの所定の範囲内のアドレスに来るとデータアドレス区切り点信号ＢＰＤＡを出す。
【０２０２】
走査の目的で、追跡スタック１６９５と区切り点回路１６９７および１６９９は、分析ドメイン１２１７の異なる走査経路上にある。しかしコアはコアドメイン１２１３の走査経路上にある。
【０２０３】
図６９は図５１−５３と図５５−５７の分析ドメイン１２１７内の回路を示すもので、選択された適当なモードに従って、コアの分析停止のための区切り点信号ＡＮＡＳＴＰを出す。回路１２１７は、特定のプロセッサ条件を表す信号を与えるオンチップ回路を含む。これらの信号は、ＩＡＱ、ＣＡＬＬ、ＲＥＴ、ＩＮＴ、ＢＰＰＡ、ＢＰＰＤＡ、ＴＲＦＵＬである。これらの検出された各信号は、ＡＮＤゲートで示すそれぞれの選択回路１７０３に与えられる。回路１７０３の出力はＯＲ−ゲート１７０５で示す結合回路１７０５に送られ、その出力は区切り点信号ＡＮＡＳＴＰである。選択回路１７０３は、図５４と図５５に示す走査経路１２５２の分析ドメイン１２１７部を経てロードされる、記憶されたビットの制御の下に動作する。
【０２０４】
スキャンインされたビットは、分析ドメイン１２１７のこの部分にある１２ビットのレジスタ１７０７と、３ビットのレジスタ１７０９と、１ビットのレジスタ１７１１．１から１７１１．８にロードされる。
【０２０５】
レジスタ１７１１．１から１７１１．８までのそれぞれの内容は選択回路１７０３の対応する回路を有効または使用禁止にするので、ＡＮＡＳＴＰ区切り点信号をトリガーすることのできる全体の装置１１条件は完全に定義される。
【０２０６】
図６８Ａのパイプラインコントローラ２２５により命令が取得されると、線ＩＡＱはアクティブになる。停止を起こすこの方法は、ＲＯＭにあるコードの場合でも、単一ステップ動作を容易にする。プログラムメモリから命令を読み取るどのサイクルも命令の取得である。この実施態様のパイプラインでは、命令の取り出しは挿入した図２９の４つのパイプライン段階の第１番目であって、取り出しが起こると線ＩＡＱはアクティブになる。
【０２０７】
ＣＡＬＬはサブルーチン呼出しでアクティブになる。ＲＥＴはサブルーチンからの復帰でアクティブになる。従って必要であれば、分析ドメインを走査可能にプログラムしてサブルーチンの初めに装置を起動し、次にサブルーチン復帰に到達したときに自動的に停止することができる。逆に、装置をスキャンロードして主ルーチン内のどこかで開始し、フルスピードで実行し、サブルーチン呼出しに来ると自動的に停止することができる。
【０２０８】
ＩＮＴは割り込みが発生するとアクティブになる。割り込みが発生したときに停止が起こるようにプログラムすると、エミュレーショントラップを除いて、機械が指示する任意のプログラムカウンタロードで停止を実行する。ＣＰＵが停止中に発生した割り込みはラッチされるが、ＣＰＵが再起動するまでは実行されない。ＣＰＵが再起動すると、割り込みベクトルにトラップする前に現在アドレスした命令を実行する。コードを単一ステップずつ進めているときは、実時間の場合のように、パイプラインがフラッシュされるとコードは直ぐ割り込みトラップを取る。
【０２０９】
ＢＰＰＡは、プログラムアドレス区切り点回路に応答する線である。ＢＰＤＡ線はデータアドレス区切り点回路に応答する。ＢＰＤＡデータアドレス区切り点を用いる一例はデバッグ問題であって、プロセッサはほとんどの場合に正しく実行するが特定のアドレスがときどき不要な値になる場合である。影響を受けるアドレスに区切り点を挿入することにより、ユーザはそのアドレスに書き込んだ命令でプロセッサを停止し、停止したプロセッサから命令をホスト計算機１１０１にスキャンアウトし、プロセッサの状態を検査してバグを直す方法を決定する。このようにして、システムのデバッグは時間的にもシステム資源的にも非常に効率的である。
【０２１０】
特定のアドレスにアクセスした時刻にシステムの状態を決定する別の方法は、そのアドレスの内容をトラップ命令に置き換えることであろう。この命令をソフトウエア区切り点と呼び、この挿入は開発型の動作である。トラップは、プロセッサが処理するサブルーチンのハード呼出しである。サブルーチンは装置の状態をダンプするようプログラムされるので、ユーザはデバッグすることができる。しかしデバッグするソフトウエアがＲＯＭ内にある場合は、ＲＯＭは定義から読み出し専用なので、トラップ命令をＲＯＭに入れることはできない。ハードウエア区切り点方式は、ソフトウエア区切り点のようにＲＡＭ内のデバッグだけでなく、ＲＯＭ内のデバッグにも適用できる。
【０２１１】
ＭＵＸ１７１３は８入力を持ち、その中の７入力は線ＩＡＱ、ＣＡＬＬ、ＲＥＴ、ＩＮＴ、ＢＰＰＡ、ＢＰＤＡ、ＴＲＦＵにそれぞれ接続する。第８線は機能クロック用のクロック線ＦＣＬＫに接続する。クロック線は単一ステップずつでも、任意の選択された数のクロックサイクルの実行でも選択することができ、ここでプロセッサは停止する。
【０２１２】
シフトレジスタ１７０９の３ビットはＭＵＸ１７１３による８つの中から１つを選択し、選択された線を１２ビットのダウンカウンタ１７１５に供給する。１２ビットのシフトレジスタ１７０７からカウンタ１７１５のＪ（ジャム）並列入力に所定の計数がロードされる。ＭＵＸ１７１３が選択した線に信号が発生すると、シフトレジスタ１７０７の内容で表される数が０になるまで１２ビットダウンカウンタはカウントダウンを行い、ここでボロー線１７１７がアクティブになり、セレクタ１７０３．１に与えられる。ボロー線信号をＣＮＴＢＲＷと呼び、図６０のイベントマネージャ１３６５に送られる。
【０２１３】
セレクタ１７０３．１の出力はＡＮＡＳＴＰを出力する結合回路１７０５の入力に接続するだけでなく、出力ピンＥＭＵ０に直接に接続する。ＥＭＵ０は外部カウンタ１７１９に接続し、外部カウンタ１７１９はホスト１１０１と通信する。
【０２１４】
このようにして、オンチップ条件センサはセンサ回路に選択的に接続できるカウンタを備える。論理網がセンサ回路に接続し、ＳＲＬを備える逐次走査回路が論理網と相互接続して、論理網によりセンサ回路の選択を決定する。逐次走査回路はカウンタと更に相互接続し、条件センサが感知できるようになる所定の計数を表す値をカウンタにロードする。条件センサは、電子プロセッサと、入力をセンサ回路に接続し出力をカウンタに接続するマルチプレクサ１７１３との特定の内部条件に応答する、複数のセンサ回路を更に備える。
【０２１５】
ダウンカウンタ１７１５の使用例（単一ステップ処理を除く）は次の通りである。走査レジスタ１７０７によりカウンタ１７１５を２００にセットし、またＢＰＤＡデータアドレス区切り点を選択するようにレジスタ１７０９によりＭＵＸ１７１３をセットしていると仮定する。特定のデータアドレスを図７１のレジスタ１８１３に走査入力する。この構成では、特定の走査識別されたデータアドレスを２００回アドレスした後でプロセッサを止める。
【０２１６】
アドレス区切り点を計数するこの使用例は、ある数の信号のサンプルを処理してタップを充填するまで安定しないディジタルフィルタを設計するのに有用である。例えばＦＩＲフィルタの応答は、全ての多重累算フィルタタップを充填するのに必要な数のサンプルが存在するまで測定できない場合がある。フィルタの動作が正しいかどうかを評価するのに重要なフィルタの出力は、信号がフィルタを通ったときに始まる。１６タップＦＩＲフィルタの１型式では、１６イベント後に初めて停止し、その後の全ての他の時間にはフィルタの出力を調べるのが望ましい。
【０２１７】
分析回路はホスト計算機１１０１と共に、今説明したディジタルフィルタのエミュレーション、シミュレーション、試験を行う。
【０２１８】
別のフィルタの例では、カウンタボロー線は走査レジスタ１７１１．１により選択され、ピンＥＭＵ０から送り出されて、外部論理は、ダウンカウンタ１７１５内にある値で周波数分割を行うことにより段階的に減少する速度でイベントを計数することができる。アルゴリズムのタイミング分析は５０億サイクル程度を消費する。ただし、タイミング分析はアルゴリズムを実行するのに必要なサイクル数を決定する。（カウンタが走査可能でかつ適当な数のビットに拡張される場合は、この機能は全てオンチップで実行される。）フィルタに指定された性能判定基準を満たすには、特定のフィルタ設計は少なくとも、あるサンプル速度を必要とする。このサンプル速度を達成するために利用できる命令の最大数は、サンプル速度と計算機クロック速度に関連する。この回路により、フィルタがアルゴリズムを実行するのに消費するクロックサイクル数を正確に計数することができるので、フィルタの仕様を満たすアルゴリズムを作成することができる。
【０２１９】
外部論理を用いる場合は、その分解能はレジスタ１７０７がカウンタ１７１５にセットする数と等しい。全分解能は１２ビットのダウンカウンタ内の値を読み出すことにより得られ、２つのブレークイベントの間のアルゴリズムの正確なサイクルの計数を決定することができる。これもこの望ましい実施態様の利点を示すものである。利用できる外部の計数論理が遅すぎて新しいプロセッサがこれを監視するのに追いつかない場合があるので、オンチップカウンタ１７１５によりブレークイベントおよび／またはクロックサイクルを直接計数できることは更に都合がよい。
【０２２０】
ここでブレークイベントとは、プロセッサを停止させるすなわちカウンタ１７１５に影響する条件をいう。ある例示のプロセッサのイベントの検出はＣＰＵドメインと分析ドメインに分割される。この２つのドメインは全部で９つの異なるイベントを与え、これらを全てプログラムしてプロセッサを停止させることができる。イベントとそれぞれのドメインを以下に示す。
出所
１．  ソフトウエア割り込み（ＳＷＩ）                          ＣＰＵ
２．  命令取得（ＩＡＱ）                                      ＣＰＵ
３．  サブルーチン呼び出し（ＣＡＬＬ）                        ＣＰＵ
４．  サブルーチン復帰（ＲＥＴ）                              ＣＰＵ
５．  割り込み／トラップ（ＩＮＴ）                            ＣＰＵ
６．  クロック（ＣＬＫ）                                      ＣＰＵ
７．  区切り点プログラムメモリアドレス（ＢＰＰＭＡ）          ＡＮＡ
８．  区切り点データアドレス（ＢＰＤＭＡ）                    ＡＮＡ
９．  追跡バッファ満杯（ＴＢＦ）                              ＡＮＡ
１０．  項目カウンタボロー（ＩＣＢ）                            ＡＮＡ
【０２２１】
図６９に関連して説明したように、分析ドメインでは全てのイベントは使用可能になり、検出され、ラッチされる。
停止条件を処理した後では、ＣＰＵコアは局所的入力すなわち分析入力を処理してはならない。これは、エミュレーショントラップが始まるときからエミュレーショントラップ復帰を実行するときまでの時間を含む。
【０２２２】
コアは次の統合した停止信号に応答する。
ＣＰＵＬＳＴＰ  −  コア局所停止刺激
ＡＮＡＳＴＰ  −  分析停止
ＳＷＢＰ  −  ソフトウエア区切り点検出
ＨＡＬＴ  −  ＭＰＳＤ一時停止コード
【０２２３】
一時停止を検出すると、ＬＳＴＰＣＮＤ（ラッチ停止条件）がコアおよび分析ブロックに表明される。分析ドメイン情報が新しい場合は、ＣＰＵ停止の指示は分析ドメインから読み取るのが望ましい。これはエミュレーショントラップモードだからであって、このモードではコアドメインは実行を継続するが、分析ドメインは停止する。
【０２２４】
エミュレーション停止メカニズムによって一時停止した場合は、機能リセットをゲートオフする。装置１１のリセット論理（図示せず）により、ゲート機能を通って装置に入る全てのリセット入力は、リセット機能を正しく完了するように、十分な長さに延ばされると考えられる。リセットが停止条件と同時に起こるとリセットは完了し、またリセットが完了しかつ割り込みトラップベクトルを取り出すと装置は停止する。
【０２２５】
装置１１による割り込みの処理は、アダプタ１２０３内のＣＯＤＡおよびＣＯＤＢにより実現するエミュレーション実行／一時停止動作と調和しなければならない。命令またはクロック段階を実行中は、可能なときは割り込みを処理する。これにより、コードを１命令ずつ進めば割り込みを処理することができる。
【０２２６】
図６９および図４５とここの説明は、半導体チップとチップ上の電子プロセッサを含むデータ処理装置を備える電子システムの例である。オフチップのホスト計算機回路はデータ処理装置に接続する。ホスト計算機（例えば計算機１１０１）の動作速度は電子プロセッサより遅い。データ処理装置１１は、更にオンチップハードウエア区切り点アドレス回路、追跡スタック、パイプラインコントローラ条件検知回路、実時間でプロセッサに信号を送りまた遅いホスト計算機に信号を送るカウンタ１７１５などを含む他のオンチップ条件センサ、を備える。
【０２２７】
アダプタ１２０３は、遅いホスト１１０１と最高速度の装置１１の間の速度を制御するステップアップトランスとして動作する。また分析回路は実時間制御機能を仲介し、またカウンタ１７１５を介して遅い外部環境へのデータのステップダウントランスとなる。強調したいことは、図６９の回路は単なる例であって、ここに述べた原理に従えば当業者は多くの変形を提供することができ、条件のいかなる論理的組合わせに対してもセンサ論理を与えて、条件のいかなる複雑な組合わせまたは条件のシーケンスが発生しても検知することができる。区切り点信号は例示したような停止信号ＡＮＡＳＴＰ、または検知されたターゲット装置の電気的条件に応答しなければならない停止信号以外のどのような他の制御信号であってもよい。
【０２２８】
図７０は図６９の分析回路の動作方法を示すもので、ＳＴＡＲＴ１７２１で始まり、段階１７２５に進んで命令の取得を検知する。段階１７２７でサブルーチン呼び出しを検知し、段階１７２９で復帰を検知する。段階１７３１で割り込み条件を検知する。段階１７３３で区切り点プログラムアドレスを検知し、段階１７３５で区切り点データアドレスを検知する。段階１７３７で追跡スタック満杯条件を検知する。次に段階１７３９で、例えば図６９のシフトレジスタ１７１１および論理１７０３を用いて、どの条件が適当かを選択する。段階１７４１で、選択された条件についてある計数を決める。決定段階１７４３で、計数が所定の計数Ｎを越えたかどうかを決定し、越えていれば段階１７４５で、計数Ｎに到達という信号を出力する。動作は段階１７４３または１７４５から段階１７４７に進み、装置１１の動作速度より遅い速度で外部処理装置に出力する。段階１７４９でこの出力をホスト計算機に結合し、動作はＳＴＡＲＴ１７２１に戻り、いつまでも段階を繰り返す。
【０２２９】
図７１において、図６８Ａの区切り点センサ１６９７の回路は図６９の分析回路に信号ＢＰＰＡを供給する。これと同じ回路が図６８Ｂの区切り点センサ１６９９で、図示のように接続し信号ＢＰＤＡを出す。
【０２３０】
図７１において、図６８Ａのプログラムアドレスバス１０１Ａはディジタル比較器１８１１に接続する。最上位ビットＭＳＢと最下位ビットＬＳＢを持つ、分析ドメイン内の別のレジスタ１８１３内に基準値をスキャンロードする。アドレスバス１０１Ａで表明されたプログラムアドレスがレジスタ１８１３の内容と同じ場合は、比較器１８１１は、線ＢＰＰＡに区切り点アドレスが発生したことを表す出力を出す。
【０２３１】
区切り点回路の別の優れた機能として、レジスタ１８１３の最上位ビットＭＳＢで示されるランプ（ｒａｎｐ；）などの選択されたアドレスのグループ内で、区切り点を任意のアドレスでとってよい。このような場合、走査可能なマスクレジスタＬＳＢＥＮにスキャンロードして、比較器１８１１がレジスタ１８１３のＬＳＢビットに応答できないようにする。このマスク条件では最上位ビットだけを比較器１８１１で比較し、アドレスの特定の範囲内にあるアドレスの発生に関する区切り点を与える。
【０２３２】
区切り点のための走査可能なレジスタ１８１３はデータバス１１１Ｄに接続する必要はない。しかしこのレジスタ１８１３は、図４５のエミュレーション／シミュレーション／試験ホスト計算機１１０１とターゲット装置のデータバス１１１Ｄの間のメッセージ通過アクセスに再利用される。メッセージ通過機能は区切り点を検知する必要がない場合、または逆の場合に用いられるので、レジスタ１８１３は異なるときには異なる機能を実行することができる。
【０２３３】
図７２は分析ドメイン１２１７内の特殊なプログラムカウンタ追跡スタック回路１８２１で、ＣＰＵコアドメイン内の図６８Ａのプログラムカウンタ９３の動作でのアドレス不連続点の履歴を定義するアドレスの所定数を保持する。走査可能な追跡スタックレジスタ部１８２３は制御回路２２１に応答して、プログラムカウンタの不連続点が起こったときにプログラムカウンタ９３のアドレス値を追跡スタックに押し込む。スタック１８２３の各レベルＰＣ０、ＰＣ１、．．．ＰＣ９の先頭ビットＳ／Ｅ１、．．．Ｓ／Ｅ９は、値ＰＣ０、．．．ＰＣ９が不連続の最初のアドレスか終わりのアドレスかを表す状態ベクトルを記憶する。
【０２３４】
例えば図７４において、プログラムメモリ空間は、割り込みを取る主ルーチン内のアドレスを表すアドレスＡ１、Ａ２、Ａ３を持つ。割り込みルーチンはアドレスＩ１で始まり、アドレスＩＮで終わる。図７２に戻って、不連続点の履歴の例をスタックレベルＰＣ９．．．ＰＣ０の右側にアドレスとして入れてある。この履歴のレベルＰＣ９では、主ルーチンを実行中にアドレスＡ１で割り込みが発生したことを示す。次にＰＣ９の項目Ａ１の直ぐ上のスタックレベルＰＣ８に、図７４の割り込みルーチンの最初のアドレスを示す項目Ｉ１が入っている。従って、ＰＣ９の項目は不連続点の最初のアドレスであり、状態ベクトルビットＳ／Ｅ９とＳ／Ｅ８は逆の論理レベルを持つ。例えば、Ｓ／Ｅ９の１ビットは不連続点の初めを表す。レベルＰＣ８のＩ１は不連続点の終わりのアドレスである。
【０２３５】
更にこの例では、レベルＰＣ７は割り込みルーチンがアドレスＩＮで終わり、復帰は主ルーチンのアドレスＡ１＋１で起こることを示す。次に図では主ルーチンはレベルＰＣ５に示すアドレスＡ２まで実行し、次にスタックレベルＰＣ４に最初の割り込みアドレスＩ１が入っている。割り込みはレベルＰＣ３のアドレスＩＮまで実行され、動作はレベルＰＣ２のメモリアドレスＡ２＋１に戻る。主ルーチンは実行を継続し、レベルＰＣ１のアドレスＡ３に達する。ここでアドレスＩ１への割り込みが起こり、これがレベルＰＣ０に入っている。
【０２３６】
プログラムカウンタ追跡スタック１８２１の状態ベクトルの先頭ビットはスタックのためのシフトレジスタと似ており、シフトレジスタのＳ／Ｅ９端はＯＲゲート１８２５に出力する。ＯＲゲート１８２５は更に、プログラムカウントシフトアウトレジスタＰＣＳＯ１８２７に接続する。ＰＣＳＯ１８２７の出力はＯＲゲート１８２５の第２入力に戻される。最初の論理１をスタック１８２１の底からＯＲゲート１８２５に押し込むと、レジスタ１８２７は図６９の分析回路への出力、追跡スタック満杯ＴＲＦＵＬを示す。次にスタック１８２３を押すと、スタックからＯＲゲート１８２５に次の０を押し込む。しかしレジスタ１８２７は、追跡スタックが満杯であることを表す１を、引き続きＯＲゲート１８２５によりロードされる（ＰＣＳＯから１８２５へのフィードバックにより）。
【０２３７】
このようにして、１と０が交替するコードにより、状態ベクトルの先頭ビットは不連続点の数を計数する手段として働く。追跡スタック１８２１はこれに押し込むことのできる項目と、項目にビットを追加するための記憶要素を持つ。ＰＣＳＯ１８２７は、入力と出力を持つオーバーフロー記憶要素１８２７として働く。ＯＲゲート１８２５は、第１入力が記憶要素の１つ（例えばＰＣ９）に接続する信号結合回路として働く。またＯＲゲート１８２５の第２入力と出力は、オーバーフロー記憶要素の出力と入力にそれぞれ接続する。
【０２３８】
回路２２１は分岐や割り込みやその他の不連続点が起こったときに一般に動作して、さもなければ連続している一連のアドレスの中のあるアドレスに代わる新しいアドレスをプログラムカウンタ９３に入れ、不連続点を作る。制御回路２２１は、最後のアドレスをプログラムカウンタスタックに、新しいアドレスを追跡スタックに押し込む回路を備える。また制御回路２２１はメモリからのアドレスに応答し、また割り込みルーチンの完了で動作してプログラムカウンタスタック９１をポップし、追跡スタック１８２１を再び押す。
【０２３９】
連続した命令または割り込みにより不連続点が起こった場合は、５つを越える不連続点を追跡することができる。プログラムカウンタＰＣが２連続サイクルでロードされる場合は、現在の値は前の新しい値と同じなので１つ下のスタックレベルを用いる。
【０２４０】
図７３は、図７２の回路の動作の過程を図示する。動作はＳＴＡＲＴ１８３１で始まり、試験段階１８３３に進んで、不連続点の開始アドレスが起こっているかどうかを決定する。起こっていなければ、動作は試験段階１８３５に進み、サブルーチンからの復帰があるかどうかを決定する。もしなければ動作は試験段階１８３７に戻り、追跡スタックが満杯かどうかを決定する。満杯でなければ動作は１８３３に戻る。例えば主ルーチンの実行中は、図７３の過程は監視段階１８３３、１８３５、１８３７を繰り返し循環する。
【０２４１】
他方、不連続が起こった場合は、動作は１８３３から１８３９に進み、最後のアドレス（例えば主ルーチンの）をＰＣスタック９１と追跡スタック１８２１に押し込む。次に段階１８４１で、動作が分岐されまたは割り込まれた新しいアドレスを追跡スタック１８２１に押し込む。次に段階１８３５に移り、割り込みルーチンを実行している間は、動作は段階１８３５、１８３７、１８３３、１８３５などをいつまでも循環する。割り込みルーチンが終わると、段階１８３５で段階１８４２に分岐して、動作を復帰する割り込みルーチンの最後のアドレスを追跡スタック１８２１に押し込む。次に動作は段階１８４３に進み、ＰＣスタック９１をポップして、プログラムカウンタ９３は、割り込みが最初に起こった主ルーチン内のアドレスに戻ってそこから先に進む。
【０２４２】
次に図７３で、動作は段階１８４３から段階１８４５に進み、動作が戻った最後の値を追跡スタック１８２３に押し込む。次に動作は段階１８３７に進む。不連続点の実質的な履歴が積み上がると、追跡スタックは段階１８３７で満杯になり、段階１８４７に分岐して信号ＴＲＦＵＬを出力する。
【０２４３】
図７５に、サブルーチンネスティングや他のネスティングが含まれずに一連の不連続点がある場合のＰＣスタック９１の動作と、図７２に示すプログラムカウンタ追跡スタック１８２１の動作を対比して示す。図７２で、不連続点のアドレスはネスティングがない場合でも追跡スタック１８２３に次第に深く押し込まれる。しかし図７５では、押してからポップするのでＰＣスタック９１は１アドレスを入れるかまたはアドレスを入れない。これはネスティングがないからである。押し込まれるアドレスは、動作が割り込まれた主ルーチンアドレスＡ１、Ａ２、Ａ３である。復帰すると、ＰＣスタック９１はポップされて、ＰＣスタックボックス内の逐次のハイフンで示すように、項目がない。
【０２４４】
図７６は望ましい実施態様の、シミュレートされる周辺装置アクセスの機能を示す。図７６では図４５と同様に、ホスト計算機１１０１は直列の線１１０３により装置１０４３に接続する。装置１０４３は装置１１を備え、また開発中の回路板を含む。装置１０４３には周辺装置１８７１が欠けており、これは後で設けられる。装置１１は、周辺装置１８７１にアクセスするための第１信号を発生する電子プロセッサＣＰＵ１８７３を備える。周辺装置１８７１があれば、アクセスが読取りまたは書込みの場合は線ＭＥ１８７５を経て第２信号で答える。アクセスが読取りの場合は、周辺装置はデータも返す。
【０２４５】
検知回路１８７７は電子プロセッサ１８７３に接続し、ＣＰＵ１８７３が周辺装置１８７１にアクセスしようとして第１信号を送ると、ＣＰＵ１８７３の動作を一時的に中断する。検知回路１８７７は、分析および制御回路１８７９と相互接続する。走査可能なインターフェース１８８１はＣＰＵ１８７３に接続し、前に説明した走査経路を経てＣＰＵ１８７３からホスト計算機１１０１に信号を送る。ホスト計算機１１０１は欠けている周辺装置１８７１をシミュレートし、周辺装置１８７１がどのような第２信号を出すかを決定する。次にこの周辺装置１８７１のシミュレーションにおいて、ホスト計算機１１０１は線１１０３を経てインターフェース１８８１に逐次ビットストリームをダウンロードする。するとインターフェース１８８１は、ＣＰＵ１８７３に応答して周辺装置１８７１が供給するはずの第２信号を供給する。このようにして、ＣＰＵ１８７３は欠けている周辺装置があたかも存在するかのように信号を受ける。ＣＰＵ１８７３のクロック回路１８８２は、プロセッサにクロック信号を与える。
【０２４６】
上に説明した装置は、図５２のメッセージ通過周辺装置１２１６として走査可能なインターフェースを与えることにより、望ましい実施態様で実現される。メッセージ通過および分析１８７９は、ＣＰＵコアドメイン１２１３と相互接続する分析ドメイン１２１７に統合される。
【０２４７】
このようにして、欠けている周辺装置１８７１のシミュレーションにより、ホスト計算機１１０１は欠けている周辺装置１８７１の代わりに信号を与えて、装置１１を停止しまた起動し、しかもＣＰＵ１８７３を実行するときはフルスピードで動作することができる。これはバレリーナがフラッシュライトの下でダンスするのに似ている。
【０２４８】
上に述べたように、図７６のＣＰＵ１８７３から信号が発生すると、ホスト計算機１１０１は欠けている周辺装置１８７１をシミュレートし、また周辺装置１８７１がある場合に応答するはずの第２信号の表現をインターフェース１８８１にロードする。次に制御回路１８７９はＣＰＵ１８７３の動作を再開し、ＣＰＵ１８７３は周辺装置１８７１が欠けているにもかかわらずインターフェースから第２信号を受ける。図７６の装置は単なる例示であって、各種の回路やディジタルプロセッサに適用できる。例えば、ＤＭＡコントローラ、ＵＡＲＴ、ＡＳＩＣ、および追加の回路が一時的に欠けているが開発する必要のあるその他の回路であって、この追加の回路はホスト計算機１１０１でのシュミレーションによって「具現する」ことができるもの、などである。
【０２４９】
図７７は、開発中であって、第１回路を持つが、第２回路は欠けていて後で設けられる、図４５のシステム１０４３などのシステムを動作させる方法を示す。第１回路は第１信号を送り、これに対して第２回路がある場合は第２信号で答える。
【０２５０】
図７７において、方法はＳＴＡＲＴ１９０１で始まり、段階１９０３に進んで、第１回路が送る第１信号を検知して第２回路にアクセスする。次に段階１９０５で、第１信号を検知するとプロセスは第１回路により一時的に動作を中断する。次に段階１９０７で、第２回路をシミュレートして第２信号の表現を発生する。次の段階１９０９で、第２信号の表現を第１回路へのインターフェースにロードする。最終段階１９１１で第１回路の動作を再開し、第１回路はシミュレートされた答えとしてインターフェースから第２信号を受ける。段階１９１１が完了すると、動作はＳＴＡＲＴ１９０１に戻ってプロセスを繰り返す。
【０２５１】
図７８は、チップ上のメッセージ通過回路１２１６のブロック図を示す。メッセージ通過回路１２１６は分析ドメイン１２１７およびコアドメインと相互接続し、エミュレーションアダプタ１２０３および走査制御１１４９と通信する。また割り込み発生回路１９４３は、メッセージ通過回路１２１６の他の部分を、装置１１内の１６本の割り込み線にインターフェースする。メッセージ通過回路１２１６を動作させる命令の入力と状態情報のスキャンアウトのために、図５４と図７８の逐次走査経路は逐次データＭＳＩＮをシフトレジスタ１９２３ＣＭＤ／ＳＴＡＴＵＳに入れる。逐次経路は１６ビットデータレジスタと表記した直列レジスタ１９２５に延び、走査経路はＭＳＯＵＴと表記した線に出る。これらのシフトレジスタは、図７６の直列／並列インターフェース１８８１に対応する。シフトレジスタ１９２５の機能は分析ドメイン内のレジスタ１８１３で実現することができ、このように再使用することにより、メッセージ通過に必要なチップの空間を一般に小さくすることができる。
【０２５２】
シフトレジスタ１９２５は、３つの経路から１つを選んでレジスタ１９２５にロードするＭＵＸ１９３１の出力に接続する。これらの経路の内２つは、図５２と図５８のＴＩＢＵＳ周辺装置バスのデータ部とアドレス部である。図７８では、データ部分を１９３５、アドレス部分を１９３７で示す。通信レジスタバス１９３９と呼ぶ第３の経路は、通信レジスタ１９４１に接続する。
【０２５３】
メッセージ通過回路１２１６は、シミュレートされる周辺装置のアクセスや、付属のプロセッサとしてのホスト計算機１１０１との通信Ｉ／Ｏ（入力／出力）や、ホスト計算機１１０１と装置１１との間のデータ構造の転送に有用である。
【０２５４】
メッセージ通過回路１２１６の構造と動作について、シミュレートされる周辺装置のアクセスの例で更に説明する。周辺装置のアクセスや他の外向きの通信が始まると、装置１１はＭＵＸ１９３１を経てレジスタ１９２５に並列にロードする。ホスト計算機１１０１はレジスタ１９２５の内容をスキャンアップロードし、次に欠けている周辺装置の期待される応答をシミュレーション計算により決定する。次にホスト計算機１１０１は、欠けている周辺装置のシミュレートされた応答をレジスタ１９２５にスキャンダウンロードする。レジスタ１９２５内のこの情報は、欠けている周辺装置が読取りに応答して戻すはずのデータを含む。データを周辺バスに運ぶために、レジスタ１９２５はＭＵＸ１９４５により選択されて通信レジスタ１９４１にロードされる。次に通信レジスタ１９４１はデータをＭＵＸ１９５５から出力バッファ１９４７へ、更にＴＩＢＵＳ周辺装置バス戻りのデータバス部分１９３５から、周辺装置があるかのように、装置１１の制御回路の下に装置１１の適当な部分に送る。
【０２５５】
ＭＵＸ１９４５は逆向きのデータ転送を行うことができる。すなわちＴＩデータバス１９３５上の外向きの通信はＭＵＸ１９４５の入力１９５１に達し、通信レジスタ１９４１を経て通信レジスタバス１９３９とＭＵＸ１９３１を通って１６ビットのデータレジスタ１９２５と通信する。
【０２５６】
ＭＵＸ１９５５は通信レジスタバス１９３９か、データレジスタ１９２５に直接接続する別のバス１９６１を選択する。このようにして、データはレジスタ１９２５から経路１９６１、ＭＵＸ１９５５、出力バッファ１９４７を経て、ＴＩデータバスまで、より直接に通信することができる。
【０２５７】
バッファ状態フラグは、読取り／書込み−信号Ｒ／Ｗ−と共に装置１１のハードウエア１９６５からＣＭＤ／ＳＴＡＴＵＳレジスタ１９２３に伝えられて、ホスト計算機１１０１にスキャンアウトする。ホスト計算機はこれらのバッファ状態フラグを受けて、線ＭＥ上の「具現された」回答を含む、周辺装置をシミュレートする回答コマンド信号を返す。
【０２５８】
レジスタ１９２３からのコマンドビットの中のあるものは、コマンドデコーダＣＭＤ  ＤＥＣ１９７１に伝えられる。デコーダ１９７１はコマンドをデコードし、メッセージ通過回路１２１６のＭＵＸやレジスタへの動作出力線ＯＰＯ．．．ＯＰＮを選択的に活動化して、コマンドに従って回路を動作させる。このようにして、プロセッサレベルの高度な処理と柔軟性がメッセージ通過回路１２１６内で可能になる。別の態様では、ＭＵＸ１９４５の入力１９５１を周辺装置バスＴＩＢＵＳのデータ部に接続して、更に柔軟性を与える。レジスタ１９２５は割り込み発生ブロック１９４３に接続するので、装置１１の割り込み状態もホスト計算機１１０１からスキャンロードすることができる。
【０２５９】
強調したいことは、装置１１の周辺装置バスからレジスタ１９２５にデータがロードされるとき、およびレジスタ１９２３にバッファ状態フラグがロードされるときは、機能クロックＦＣＬＫが動作することである。試験クロックＪＣＬＫは、レジスタ１９２３と１９２５内のデータがホスト計算機１１０１にスキャンアップロードされるとき、およびこれらの２つのレジスタにデータがスキャンダウンロードされるときに動作する。機能クロックＦＣＬＫの動作により、データをレジスタ１９２３からコマンドデコーダ１９７１に送り、またデータを１９２５からＭＵＸ、メッセージ通過回路のレジスタやバッファやバス、装置１１その他の部分に送る。これらの動作やクロック切り替え機能は、例えば図５０Ａおよび図５９Ａに関して上に説明した走査制御１１４９とアダプタ１２０３により行われる。
【０２６０】
レジスタＵＩＤ１９８１はデータバス１９３５に接続する。別のレジスタＪＩＤ１９８３はデータレジスタ１９２５に接続する。レジスタＵＩＤとＪＩＤの出力は、タスク識別比較回路１９８５に送られる。識別が一致すると、出力信号ＴＳＫＯＫが出される。このようにして、メッセージ通過回路がその仕事を終えると、この情報を利用できるいかなる回路へもその内部状態の信号を出すことができる。例えば、タスクＯＫ信号ＴＳＫＯＫを用いて、図６９の１２ビットのダウンカウンタ１７１５のＳＵＳＰＥＮＤ保持を解放することができる。
【０２６１】
メッセージ通過の場合によっては、装置１１のＣＰＵを停止させることなくエミュレーションやシミュレーション機能を実行して、割り込みの処理や他の機能を実行できるようにする必要がある。これにより、停止刺激が起こると通常のようにコアを一時停止させるのではなく、予約した位置にトラップさせることができる。ここでユーザはエミュレーション監視プロセッサをユーザソフトウエアとをリンクして、トラップを処理する。トラップが起こると、モニタは、ＴＩＢＵＳ周辺装置、例えばＴＩＢＵＳアドレス空間に存在するアドレスを持つメッセージ通過回路１２１６のレジスタ１９２５など、を通してエミュレーションホスト計算機１１０１と通信する。トラップ処理にかかった後はエミュレーショントラップから復帰するまでは、ＣＰＵおよび分析停止刺激は無視される。
【０２６２】
図７９は、オンチップインターフェース回路１１４９、１２０３、１２１６が存在するときの、図４４の開発ツールのホスト計算機１１０１を用いる段階の処理流れ図を拡大したものである。応用システムに直列に接続するホスト計算機を含む電子システムを動作させる方法はＳＴＡＲＴ２００１で始まり、段階２００３に進んで、エミュレーションや試験のソフトウエアを含む、走査制御のための多目的ソフトウエアをホスト計算機１１０１にロードする。次に段階２００５で、装置１１を含む応用システム１０４３などの機能回路を、ホスト計算機１１０１から走査線１１０３に結合する。
【０２６３】
次の段階２００７で、ユーザまたはオペレーティングシステムは、エミュレーション２００９、シミュレーション２０１３、ウエーハ製作／製造／現場の試験２０１７、一時的双対プロセッサ２０２１や通信Ｉ／Ｏ２０２５などの付属のプロセッサモード、のためのソフトウエアプログラムを選択する。付属のプロセッサモードは、メッセージ通過周辺回路１２１６などの周辺装置などにより、エミュレーションおよび試験の通信にも用いられる同じ直列の線を経由して、応用システムの機能動作に関連するデータをホスト計算機と応用システムとの間で通信する。
【０２６４】
エミュレーション動作２００９は、以下に詳細に説明する動作の中の、段階２０１１の走査動作、機械状態転送、実行、休止、一時停止などを含む。装置１１として用いられるチップが欠けているときに、このようにして信号を生成しまたシステム基板１０４３から入力を読み取るので、後で装置１１の最後のチップを製造工程で基板に乗せたときに、必要なＲＯＭコードを持ち、実際の応用で基板を組込んだときと同じ動作をする。
【０２６５】
シミュレーション動作２０１３はホスト計算機１１０１内のソフトウエアを実行してターゲット基板をシミュレートすることであって、エンジニアの１グループは装置１１のソフトウエアの開発を行い、エンジニアの他のグループは未完成のターゲットシステム１０４３の設計を行うことができる。装置１１はソフトウエアでシミュレートすることができるが、図４５のように原型が利用できる場合は、開発中の装置１１のソフトウエアは装置１１自身で実行し、基板１０４３の他の部分はホスト計算機１１０１でシミュレートすることにより、シミュレーションを加速することができる。装置１１自体を用いてシミュレーションをこのように加速できることは、ホスト計算機１１０１が安く広く用いられている型であって、例えばＤＳＰと同じ速さで装置をシミュレートできるほど速くない場合は非常に重要である。
【０２６６】
逆に、周辺装置は装置１１内のメモリやレジスタほど頻繁にアクセスされないので、装置１１はフルスピードで走って周辺装置（例えばオフチップの高速および低速メモリ）をシミュレートする。段階２０１５は、図７６で説明した、シミュレートされた周辺装置のアクセス動作である。
【０２６７】
存在しないまたは除去された周辺装置１８７１は、走査試験ポート１１４９を通してアクセス可能な単一データポート１２１６に置き換えられる。応答しないＴＩＢＵＳアドレスにアクセスすると、ＣＰＵコアはＴＩＢＵＳアクセスの第１クロックの後で一時停止する。次にエミュレーションコントローラ１１０１はこのアドレスとアクセスの型（読取りか書込みか）を取り出す。エミュレーションコントローラ１１０１は読取りのときはレジスタ１９２５を通してデータを与え、または書込みのときはデータバスから直接データを読み取る。サイクルが終了したことを示すＲＥＡＤＹ信号も、走査経路を通してレジスタ１９２３に逐次与えられる。必要な転送が起こると、装置１１のＣＰＵコアは再開始する。
【０２６８】
試験段階２０１７は、ホスト計算機１１０１が機械状態や試験パターンを装置１１のＳＲＬにスキャンロードするときの機械状態転送２０１９を伴い、次にこれを装置１１の論理で処理し、スキャンアウトして評価する。
【０２６９】
段階２０２１では、ホスト計算機１１０１を装置１１の一時的双対プロセッサとして用いるが、これは段階２０２３でホスト計算機１１０１と装置１１の間でメッセージ通過回路１２１６を経てデータ構造の転送を行うことを伴う。ホスト計算機は転送されたデータ構造を処理した後、その結果を装置１１またはターゲット基板１０４３上の他の場所に戻す。
【０２７０】
データおよび結果は、ビデオ端末、プリンタ、ハードディスク、遠隔通信モデムまたは装置１１が利用できないホスト計算機の他の周辺装置資源にも送ることができる。このために、通信Ｉ／Ｏ段階２０２５は２０２７で、装置１１およびターゲット基板１０４３から一般にホスト計算機１１０１の周辺装置資源まで、メッセージ通過回路１２１６を経てメッセージを送る。転送および回線の制御はホスト計算機１１０１が行う。
図７９の動作が完了すると、別の動作が必要かどうかを段階２０２９で決定し、必要であれば段階２００７に戻り、必要でなければ２０３１で動作を終わる。
【０２７１】
ユーザプログラムが与えるタスクＩＤで全ての分析を有効にする機能は、メッセージ通過周辺装置により実現される。ユーザプログラムは、ＴＩＢＵＳレジスタの値を通してタスクＩＤを与える。この値を、走査によりロードした値と比較する。この比較は、分析部が有効な比較を行うことができるようにビットを追加することにより可能になる。
図７８のレジスタ１９２３は、３ビットの演算コード、４ビットの状態フィールド、９ビットのＴＩＢＵＳアドレス／読取り／書込みラッチの全３２ビットで実現される。
【０２７２】
メッセージ通過回路１２１６やここに説明した他の回路が次の機能を与えるので、シミュレーションのアルゴリズムへのデータの引き渡しを容易に実行することができる。
１．  周辺装置フレーム（アドレスのブロック）は、アドレスのデコード、割り込みの生成、ドメインに加えられる任意の新しいコード（Ｃ０、Ｃ１、ＣＸ）によるＴＩＢＵＳ周辺装置の駆動により動作禁止になる。
２．  任意の周辺装置割り込みは、図７８のブロック１９４３を経てメッセージモジュールから生成される。
３．  選択を認識するフレームがない場合は、ＴＩＢＵＳ周辺装置バスはレジスタ１９２５への走査による読取りおよび書込みによりプログラムすることができる。
４．ＴＩＢＵＳ周辺装置バスをプログラムして、走査によりバスアクティブの第２サイクルでコアおよび装置を停止させ、ホスト１１０１がレジスタ１９２５にロードまたはアンロードし、またアドレスと読取り書き込みの指標を得ることができるようにすることができる。
５．  メッセージ通過回路１２１６のレジスタ１９２３から装置の実行を再開始する。
【０２７３】
各モジュールはモジュール使用禁止ビットを持つ。走査によりセットされると、モジュール使用禁止ビットはアドレスデコード、バス駆動、割り込みを使用禁止にする。ＴＩＢＵＳアドレスに応答するモジュールがなく、またシミュレーションパイプが凍結してレジスタ１９２３内のシミュレートされた周辺装置アクセスが使用禁止になっている間にＴＩバスブロックをアドレスすると、周辺装置アクセスの第２サイクルが完了する前にコアは停止する。このモードでは、他のフレームがデコードされていなければ、読取りはメッセージ周辺装置に向けられる。全ての書込みはメッセージ周辺装置に向けられる。レジスタ１９２３内のシミュレートされた周辺装置アクセスビットが使用可能になると、４状態ビットを用いて周辺装置アクセスに関連する待ち状態の数を指定する。
【０２７４】
割り込み発生の主題に戻って、割り込みを挿入する方法が２つある。第１はシミュレートされた周辺装置アクセスモードを支援するもので、装置が起動した後でＳＵＳＰＥＮＤがイナクティブになると、１クロックの間割り込みが表明される。第２は、装置がシミュレーションモードかエミュレーションモードで実行中に割り込みを表明することである。
【０２７５】
この望ましい実施態様のＪＴＡＧ／ＭＰＳＤインターフェースは、試験クロックＪＣＬＫの低いサイクル速度で優れたエミュレーション能力を与え、周辺装置機能のシミュレーションを可能にする。更にこのインターフェースは、ピン数の少ないパッケージ内の複雑な装置の大規模の内部試験を可能にする。ホスト計算機１１０１と共に用いるインターフェースは回路が柔軟なので、装置の原型の製作時間が減り、製造時の欠陥試験能力が向上する。この回路により、印刷配線基板（システム）レベルでの境界走査が可能になる。基板の密度が増加しまたアクセスできるピンの少ない表面取り付け装置を用いることが多くなるに従って、この境界走査ができることは特に重要になる。
【０２７６】
強調したいことは、望ましい実施態様では１プロセッサに関して説明したが、この構成の重要な利点は構造から独立しているということである。アクセスおよび制御は全ての内部ラッチに達する。ロード／ストア命令はデータＲＡＭにアクセスする。オンチップ周辺装置は、アクセスし制御することができる。回路に関連する各ダイをモジュール方式にしたことにより、各モジュールの絶縁と試験が独立にでき、また１つのチップファミリーの追加のチップメンバーを作る際にモジュールを追加したり削除したりすることができる。標準製品やその派生品だけでなく、準特注品やＡＳＩＣ装置を、統一したエミュレーション方式と、最小でしかも十分な投資により支援することができる。
【０２７７】
望ましい実施態様により欠陥をより広くカバーすることができ、また装置をより速くデバッグすることができる。エミュレータ支援と装置の可用性をほぼ同時に可能にすることができる。このようにして、シリコン、ガリウムひ素、またはその他の材料のシステムで機能チップを入手した時点で、ユーザはエミュレーションおよびソフトウエアの開発ツールを適時に利用することができる。システムエミュレーションによりターゲットケーブルが不要になり、ノンイントルーシブになり、信頼性がより高くなる。機能クロック速度が増加してバスサイクルが２０メガヘルズを超えるチップでも、チップファミリーの寿命がある間は、フルスピードのエミュレーションが可能である。チップファミリーのメンバーが新しくなっても、エミュレーション回路の質を向上させる必要性が余りになくなる。ターゲットケーブル方式とは異なり、エミュレーション回路の型式はチップを組み込むパッケージとは関係がない。エミュレーションのソフトウエアの質を向上した新しいチップを用いてシステムの開発を行うユーザにとって、理解しなければならない新しい情報が少なくなる。ソフトウエアには資料が組み込まれている。
【０２７８】
重要なことは、望ましい実施態様は試験とエミュレーションの方法を合併させていることである。試験とエミュレーションは次のような共通の機能を持つ。１）チップを既知の状態に置く、２）実行を開始／停止する、３）機械状態をダンプする。走査経路は、機械状態をダンプおよび復元しまたメモリの読取り／書込みを起こす機構を与える。実時間および非実時間応用開発動作は、別々の試験装置とエミュレーション装置を用いるのではなく、同じツールセットと技術で処理する。
【０２７９】
エミュレーションの特殊な機能性はオンチップで作られるので、高速のチップを容易に用いることができる。特殊なエミュレーション装置を使わないので、プロセッサチップの中の所定のプロセッサコアの基本セットの数が減る。
【０２８０】
同時実行はここではエミュレーション技術のスペクトルまたはマトリクスを定義する変数であって、望ましい実施態様や本発明の他の実施態様はこれによって新しい進歩とみなされる。次の表Ｖは、同時実行の概念により技術を類別したものである。
表Ｖ
レベル 頭字語 走査 実行
１      ＬＳＳＤ              全チップ                  全チップ
２      ＭＰＳＤ  Ｔ          モジュール                全チップ
３      ＭＰＳＤ  Ｅ          モジュール                モジュール
４      ＪＴＡＧ／ＭＰＳＤ    モジュールＪＣＬＫ        モジュールＦＣＬＫ
システム走査を同時実行
５      ＪＴＡＧ／ＭＰＳＤ    モジュールＪＣＬＫ        モジュールＦＣＬＫ
システム実行を同時実行
【０２８１】
同時実行レベル１では、全チップを走査し、次に全チップを走らせて動作を実行する。同時実行レベル２では、走査のためにチップ内の個々のモジュールを選択し、次に全チップを実行することができる。同時実行レベル３では、走査のためにチップ内の個々のモジュールを選択し、次に任意の選択された１つ以上のモジュールを実行することができる。同時実行レベル４では、システム１０４３走査の同時実行により境界走査とＭＰＳＤモジュラーポート走査を統合するので、チップを通しシステムを通して任意のレベルのモジュールから全システムを開発し試験することができる。同時実行レベル５では、システム実行の同時実行がレベル４に加えられる。各レベルは、全ての前のレベルの能力を含んでいる。
【０２８２】
望ましい実施態様のメッセージ通過態様は、少なくとも４つの機能を含む。第１機能では、アクセス途中の転送はＣＰＵ停止と周辺装置停止を伴う。シミュレートされた周辺装置へのアクセスは、例えばこの第１機能を用いて行われる。第２機能はメッセージ通過回路を用いて、メッセージ通過が起こったときに割り込みをラッチする。第３機能はタスク識別（ＩＤ）を比較して、メッセージ通過が進行中か完了したかの信号を送る。第４機能は走査直列インターフェース１１４９を通してメッセージをホスト計算機１１０１に送る。
【０２８３】
実際の応用においては、製作されたシステム基板を試験しようとしても、関連するビデオ端末やプリンタを欠く場合が多い。望ましい実施態様の付属のプロセッサでは、エミュレーション、シミュレーション、デバッグの場合とは異なり、開発システムは第４機能を用いて応用システム基板を通常のユーザでの動作の状態で制御することができる。
【０２８４】
例えばシステム基板が組込みマイクロコントローラを持つ場合は、望ましい実施態様の開発システムは、開発システムが走査直列ポートを通して状態をポーリングし、または図５３のＥＭＵ０またはＥＭＵ１ピンによりマイクロコントローラから割り込みを受ける、という動作モードを持つ。
【０２８５】
組込みマイクロコントローラ内のソフトウエア割り込みまたはソフトウエアトラップ機能は所定の区切り点で発生し、図４５のホスト計算機１１０１に信号を送って処理を求める。言い換えると、開発システムのホスト計算機は、応用システム内の組込みマイクロコントローラの双対プロセッサとして呼ばれる。例えば組込みマイクロコントローラは開発システムにファイル転送を行い、ディスプレイやプリンタのための付属のプロセッサとして動作することができる。
【０２８６】
実現の２つのカテゴリには、１）非同時実行と、２）同時実行がある。
カテゴリ１では、組込みマイクロコントローラＣＰＵは応用の目的では実行を停止し、ＣＰＵは例えばホスト計算機１１０１にデータを転送する。ホスト計算機１１０１はマイクロコントローラＣＰＵレジスタを用いてメモリの読取りおよび書込みを行い、転送が終了するとＣＰＵ状態を復元する。
【０２８７】
カテゴリ２（同時実行）では、図５２、５４、７８のメッセージ通過周辺装置ＭＳＧＰＡＳＳ１２１６が望ましい実施態様の組合わせに含まれる。ＭＳＧＰＡＳＳ１２１６により、マイクロコントローラはホスト計算機１１０１をサービスのために呼んだ後、他のタスクを実行することができる。次に応用システムからのコードを走査直列線１１０３を経て送り、またＥＭＵ０線を通してソフトウエア制御に割り込みを挿入し、ホスト計算機１１０１に付属のプロセッサの機能を行わせる。
【０２８８】
このようにして、望ましい実施態様の６線のＳＣＯＰＥ／ＭＰＳＤインターフェースに二重の機能が与えられる。応用の目的でシステム基板上の全ての直列および並列ポートを用いることにより、システム基板およびそのマイクロコントローラはより現実的に用いられる。これらのどの応用ポートも試験と通常の開発システム機能のために一時的に用いる必要がない。従って、ＳＣＯＰＥ／ＭＰＳＤインターフェースは原型および製造試験で有用であるだけでなく、現場試験および診断や、応用システムの動作履歴の検索や、表示や印刷のために蓄積されたデータの検索にも有用である。
【０２８９】
ブロック転送は、メッセージ通過周辺装置１２１６を用いて行われる。このため、レジスタ１９２５に通信レジスタ１９４１からロードし、ＪＴＡＧコントローラをＩＤＬＥ状態にし、Ｎ（例えば１６）ビットの逐次シフトを行い、再び戻ってレジスタ１９２５にロードする。ブロック転送は、走査経路が接続されているいかなる他の直列インターフェースにも向けることができる。シフト速度は１０メガヘルツをはるかに超えており、さもなければ単なる試験ポートに過ぎないものを通信チャンネルとして二重に用いることにより、実質的な通信の可能性が開ける。
【０２９０】
図７８において半二重通信プロトコルは、図４５のホスト計算機１１０１と図７８のメッセージ通過周辺装置ＭＳＧＰＡＳＳ１２１６の間で、交互にアップロードとダウンロードを行う。ホスト計算機１１０１は、マイクロコントローラ用のビットをレジスタ１９２３にスキャンインする。応用マイクロコントローラは、この情報を用いて状態およびデータビットをレジスタ１９２３と１９２５にロードし、更にホスト計算機１１０１にアップロードの要求を送る。信号がホスト計算機１１０１から戻ると、レジスタ１９２３と１９２５からホスト計算機１１０１への逐次転送が行われる。（別の実施態様では、全二重ハードウエアおよび通信が提供される。）
【０２９１】
メッセージ通過周辺装置は、開発システムの目的にも有用である。開発システムとして動作するホスト計算機１１０１はレジスタ１９２３にコマンドをダウンロードし、組込みマイクロコントローラの機械状態を要求する。マイクロコントローラはこれに応答して、メモリ内に予め記憶したソフトウエアコードにトラップ（割り込みと同じ）する。予め記憶されたコードが実行されると、マイクロコントローラ内のコアレジスタの内容が図７８のメッセージ通過周辺装置１２１６を通して計算機１１０１に送り返される。メッセージ通過周辺装置が動作する場合でも、同時実行は維持されるし、また組込みマイクロコントローラのＣＰＵはデバッグ中でも自由に割り込みを受けつけるので、実時間制御機能は乱されない。
【０２９２】
このようにして、メッセージ通過周辺装置１２１６は、熟練した作業者が多くの用途向けにプログラムすることのできる電子システムとして動作する。例えば、開発システムを切り離して、別の目的のために別の非開発システムマイクロプロセッサを現場で接続することができる。このように、ＳＣＯＰＥ／ＭＰＳＤポートはシステム応用のための非常に柔軟な通信チャンネルを備える。更にシステム１０４３は、応用ホストプロセッサ１０４４が存在する場合はこれと自由に通信できる。
【０２９３】
エミュレーション、シミュレーション、試験の説明を更に進める。共に譲渡された走査試験特許第４，７１０，９３３号を引例としてここに挿入する。
【０２９４】
グラフィックスシステムプロセッサの望ましい実施態様として、図８０にＧＳＰチップ２１２０を示す。ＧＳＰチップ２１２０は中央プロセッサユニット２２００を備え、これにバス２２０２、２２０４、２２０６、２２０８によりレジスタファイル２２２０、命令キャッシュ２２３０、ホストインターフェース２２４０、グラフィックスハードウエア２２１０がそれぞれ接続する。更にバス２２０５によりホストインターフェース２２４０、メモリインターフェース２２５０、命令キャッシュ２２３０、入力／出力レジスタ２２６０が相互に接続する。ホストインターフェース２２４０とメモリインターフェース２２５０は、ピンバス２１１５および２１２２を経て、それぞれ外部からアクセスすることができる。Ｉ／Ｏレジスタ２２６０に結合するビデオディスプレイコントローラ２２７０は、その出力をバス２１２４に供給する。
【０２９５】
図８１は、図８０のユニット２２００のブロック図を示す。
試験の目的では、ＧＳＰ２１２０のメモリ要素は２つの型式に分かれる。
（１）  多ビットレジスタであって、レジスタファイル２２２０、キャッシュＲＡＭ２２３０、メモリアドレスレジスタ２１０３、メモリデータレジスタ２１０５、フィールドサイズレジスタ２１０７などに含まれるもの。これらは全て広いバス上にあり、これらの各レジスタからチップのローカルアドレスデータ（ＬＡＤ）ピンへの経路を確保する十分な論理を含む。
（２）  逐次ラッチであって、エミュレーション制御レジスタ２１２１、制御ＲＯＭ（ＣＲＯＭ）２１３１のバッファＳＲＬ２１３５、チップ上のコア処理回路２１０１の走査可能なレジスタなど。これらは２つの走査経路上にあり、２つの双方向ピンＳＣＩＮとＳＣＯＵＴ−を経て試験モードでアクセスできる。重要な論理要素を容易に観察するために、必要に応じて追加のラッチが設けられる。
【０２９６】
ここで試験性への１つの方法を並列逐次走査設計（ＰＳＳＤ）と呼ぶ。規則が１つあり、全てのレジスタビットと逐次ラッチは、図８２の１つのクロック相（Ｈ３Ｔ）で、またはこれを条件として、ある機能ＡＮＤＥＤによってのみロードされる。また図８２には、クロック信号Ｈ１Ｔ、Ｈ２Ｔ、Ｔ３Ｔ、Ｈ４Ｔ、Ｑ１Ｎ、Ｑ２Ｎ、Ｑ３Ｎ、Ｑ４Ｎを示す。チップの状態は、Ｈ３Ｔをゼロレベルに保つことにより「凍結する」ことができる。全ての他のクロックは通常通り発生することができる。
【０２９７】
ＧＳＰ２１２０は、入力クロックピンで生成される図８２の４つのアクティブ低クロックＱ１ＮからＱ４Ｎと、４つのアクティブ高の半相クロックＨ１ＴからＨ４Ｔを含む。前に述べたように、全てのメモリ要素はＨ３Ｔ相中にだけロードされる。回路の通常動作中は、クロックは図８２の最も左の列に示す通常サイクルのように見える。特殊な走査試験モードサイクル（中央の列）中はＨ３Ｔは低に保持され、メモリ要素の通常のロードを凍結する。特殊な試験クロックＴ３Ｔが可能になると、要素は走査経路に沿ってシフトする。保持試験モード（最も右の列）中は、Ｈ３ＴとＴ３Ｔは低に保持され、機械の状態を凍結する。
【０２９８】
各並列レジスタセルは図８３に示す回路を備える。これは（通常は条件付きの）Ｈ３Ｔ相でロードされ、（条件付きの）Ｈ１Ｔ相でサンプルされる。制御論理とマイクロコードはオンチップであり、全ての並列レジスタをロードしＬＡＤバス上にダンプすることができる。このようにして、機械状態をロードし、実行し、その結果をダンプアウトすることができる。
【０２９９】
各直列ラッチ回路を図８４に示す。これは図８３の並列レジスタ回路と同様な形式であるが、走査入力スキャンインと呼ぶ追加の逐次入力を含む。試験の目的でＨ１Ｔサンプルが走査連鎖内の次の要素のＴ３Ｔ入力に接続するので、全てのラッチが結合して長いシフトレジスタになる。試験クロックＴ３ＴはＨ３Ｔと同じ相を持つが、通常の動作では使用禁止（ゼロ）である。特殊なスキャンイン／スキャンアウト試験モードではＴ３Ｔが使用可能になり、Ｈ３Ｔは使用禁止になる。データは走査連鎖に沿ってシフトされる。このクロック方式により、走査経路を実現するのに必要な追加のトランジスタの数は少なくなり、１トランジスタと試験クロックの経路だけになる。
【０３００】
並列および直列ラッチを用いるために、制御ハードウエアが設けられてリセット、実行／エミュレーション、ローカル割り込み、保持ピンに接続する。リセットと実行／エミュレーションが低になると、２つのローカル割り込みピンと保持ピンにある値は３ビットコードを与え、これがデコードされて７つの試験モードの候補の中の１つになる。
【０３０１】
試験モードは、通常は次のシーケンスで用いられる。
（１）  並列ロード  −  ローカルメモリインターフェースを経て、並列経路上の全てのレジスタにロードする。
（２）  スキャンイン  −  並列経路レジスタ内のどのデータも壊さずに、データを逐次走査経路内にシフトする。
（３）  実行  −  １以上のクロックサイクルの間。
（４）  スキャンアウト  −  並列経路レジスタ内のどのデータも壊さずに、データを走査経路から逐次シフトアウトする。
（５）  並列ダンプ  −  ローカルメモリインターフェースを経て、並列経路上の全てのレジスタをダンプする。
【０３０２】
もう１つの有用な試験モードは保持モードである。このモード中は、Ｈ３ＴとＴ３Ｔを使用禁止にすることにより、機械状態は凍結される。
【０３０３】
ビデオコントローラ２２７０は、ビデオ入力クロックピン（ＶＣＬＫ）から得られる内部の相Ｖ５ＴとＶ６Ｔを備える独自の独立２相クロック方式を持つ。ビデオコントローラが用いるレジスタ２２６０はＶ６Ｔでだけロードされる。全ての試験モードにおいてこれを避けるには、ビデオクロックをＶＣＬＫピンから切り離して、この２相をＨ３ＴとＨ１Ｔに「結合する」。次に全てのビデオレジスタをＶ６Ｔでロードする。その相はＨ３Ｔに対応する。
【０３０４】
並列ロード／ダンプインターフェース  −  並列のロードとダンプの制御はＣＰＵ２２００で行われるが、ＬＡＤ２２０５への読取りと書込みはメモリコントローラ２２５０により行われる。ＣＰＵは、メモリコントローラと相互に作用するいくつかのソース２２００、２２１０、２２４０、２２６０の１つに過ぎない。例えばＤＲＡＭリフレッシュコントローラはロード／ダンプサイクルの途中でメモリサイクルを要求することができるが、これはシーケンスを乱して、データが試験器により失われる可能性がある。
【０３０５】
これらの他のソースは使用禁止にする必要がある。これには、まず並列のロード／ダンプより前にスキャンアウトを行う。これにより走査経路をフラッシュし、メモリコントローラへの全ての要求を消して、ＣＰＵを唯一のアクティブなソースにする。
【０３０６】
キャッシュＲＡＭ  −  ＬＡＤバスへのインターフェースに関する性能上の理由から、キャッシュをＨ１Ｔでロードする。キャッシュ内のメモリ要素の更新を止めるために、Ｈ３Ｔが使用禁止になると必ず使用禁止になる信号に基づいて全てのキャッシュレジスタにロードする。
【０３０７】
次に図８１において、望ましい実施態様のエミュレーションは、図４５のターゲットシステム１０４３に半田付けされたＧＳＰチップ上のコア２１０１で実現される。
【０３０８】
メモリアドレスレジスタＭＡ２１０３、メモリデータレジスタＭＤ２１０５、フィールドサイズレジスタ２１０７は主コア２１０１に結合する。４線のソースインターフェースすなわちポート２１１１は選択回路２１１２に接続し、選択回路２１１２は逐次データ入力ＳＣＩＮ２１１５ピンと逐次データ出力ＳＣＯＵＴ−２１１７ピンに接続する。エミュレーション制御ピンＥＣ０とＥＣ１は別の制御入力を与える。選択回路２１１２は、エミュレーション制御レジスタ２１２１に接続する。レジスタ２１２１は、ここでは走査制御レジスタとも呼ぶ。レジスタ２１２１内の特殊試験ＴＳＴビット０および圧縮ＣＯＭビット１は選択回路２１１２に接続し、線２１１５と２１１７を３つの走査経路の１つに導く。第１経路はレジスタ２１２１自身の走査を可能にする。第２経路はＣＲＯＭバッファ２１３５とコア２１０１の走査を可能にする。第３経路はＭＵＸ２１１３に接続する。また選択は、前に述べたピンＥＭＵ１とＥＭＵ０に対応するエミュレーション制御ピンＥＣ０とＥＣ１によって制御できる。
【０３０９】
レジスタ選択コードは、エミュレーション制御レジスタ２１２１のビット２−５ＳＣＡＮ  ＳＥＬにより線２１２５上に供給され、ＭＵＸ２１１３を制御する。このようにして、レジスタ２１０１、２１０５、２１０７から１つを選択するレジスタ選択は、エミュレーション制御レジスタ２１２１がＭＵＸ２１１３の動作を制御することによって行われる。従って、線２１１５と２１１７の走査データ入力とデータ出力は、レジスタ２１０３、２１０５、２１０７に選択的に導かれる。
【０３１０】
レジスタ２１０３、２１０５、２１０７は主ＣＰＵ２１０１と並列ディジタル通信を行う。これらのレジスタはＭＵＸ２１１３を経て、走査入力および出力のために逐次アクセスすることができる。
試験モードは、ＥＣ１、ＥＣ０、ＳＣＩＮピンおよびエミュレーション制御レジスタ２１２１の２つのビットであるＴＥＳＴとＣＯＭＰＲＥＳＳを経て制御される。
【０３１１】
制御ピンＥＣ１、ＥＣ０、ＳＣＩＮは、エミュレーション制御ポートの状態を最初に定義する。コード１１１（ＥＣ１、ＥＣ０、ＳＣＩＮ用）がインターフェース２１１１に与えられていない限り、制御レジスタ２１２１のＴＥＳＴビットゼロ（０）に１をスキャンインすると、そのポートは試験制御ポートとして再定義される。１１１コードは通常のユーザ実行モードであり、またＴＥＳＴビットを含めて全エミュレーション制御レジスタ２１２１を消し、従ってポートをリセットする。これらのコードと前の表に示したＭＰＳＤコードとの関係は明らかである。図５０Ａの走査制御回路１１４９を図４９の構成に従ってこの装置と結合することにより、更に試験、シミュレーション、エミュレーション、メッセージ通過の利点が得られる。
【０３１２】
図８１において、制御ＲＯＭ（ＣＲＯＭ）２１３１は主ＣＰＵ２１０１に接続する。エミュレーション制御レジスタ２１２１の第２ビットＣＯＭＰＲＥＳＳはインターフェースを経て利用可能な試験状態の可能な数を増やし、またシグネチャ分析と呼ぶ試験の型式でＣＲＯＭ圧縮のために用いられる。このようなシグネチャ分析では、図８６の走査可能な線形フィードバックシフトレジスタ２１４１を図８１と図８５のＣＲＯＭバッファ２１３５と結合して、ＣＲＯＭ２１３１の自己試験に用いる。また圧縮試験クロックＣ３Ｔも、この自己試験動作に用いられる。以前のシグネチャ分析方法については、共に譲渡されたスリダー（Ｓｒｉｄｈａｒ）の米国特許第４，６０１，０３４号と、タット（Ｔｈａｔｔｅ）の第４，５９４，７１１号に記述されているので、引例としてここに挿入する。別の実施態様では、任意のＢＩＳＴ（組込み自己試験）構成と処理を用いることができる。
【０３１３】
ＧＳＰ２上のＣＲＯＭは約４５０，０００のトランジスタ位置を持つ。２５６の出力と１，５６８の状態がある。これらの状態は、２つのメモリマップの新規な使用によりアクセスされる。全部で１，２８０の状態は、１１ビットのマイクロジャンプ（ＵＪ）アドレスコードにより制御され、２５６の入力点の状態は明示演算コードデコードにより直接制御される。入力点かＵＪかの選択は、図８５のＭＵＸ２１３７へのＣＲＯＭ出力により制御される。
【０３１４】
図８６において、走査可能な線形フィードバックシフトレジスタ２１４１はＣＲＯＭを自己試験するデータ圧縮法を用いる。この方法は全ての状態にアクセスする。各アクセスにおいて、新しいデータと隣接するバッファ段階に前に保持されたデータとのＸＯＲ（排他的論理和）から、ＣＲＯＭ出力バッファ段階２１３５．１、２１３５．２、２１３５．ｉ，２１３５．ｊなどに１語が生成される。別のＸＯＲゲート２１４３の２つの入力は、中点のタップと最も右の線に接続する。ＸＯＲゲート２１４３の出力は、最も左のシグネチャブロックにフィードバックする。このように、ＣＲＯＭバッファ２１３５はシグネチャ回路２１４１と共にシグネチャ分析器を形成する。ＣＲＯＭバッファの基本的な要素回路を図８７に示す。ＸＯＲ回路２１５１の入力は、ＣＲＯＭ出力線と隣接するバッファ段階からの走査線に接続する。ＸＯＲ２１５１の出力はラッチ２１５３に接続する。
【０３１５】
Ｃ３Ｔは特殊な圧縮クロックである。通常および走査動作中は低に保持されるが、ＣＯＭＰＲＥＳＳモード中（Ｈ３ＴとＴ３Ｔは使用禁止になる）は、使用可能になってシグネチャを生成する。
【０３１６】
データのこの流れにより、正しくないデータビットはバッファでシフトされるデータの１ビットの検知を反転する。このようにして全ＣＲＯＭのアクセスが終わると、ＣＲＯＭバッファシグネチャ分析器の内容をスキャンアウトして再調査する。
【０３１７】
スキャンアウトしたデータ（シグネチャ）を期待データと比較して、ＣＲＯＭ内のコードの有効性を決定する。
【０３１８】
この分析法は、多数の誤りが検出されない可能性も考慮している。誤りを表す反転した１つのビットをシグネチャ分析器の周りでシフトしている内に、このビットは別の誤りと「ぶつかって」正しい値に戻る。これが起こるのは、第２の誤りがＮ出力だけ「ダウンストリームに」あって、Ｎアドレス離れている場合である。この問題を乗り越えるために、ここで実現する回路と方法は、最初はカウントアップし２度目はカウントダウンするという２つ異なるのシーケンスでアドレスデコーダにアドレスを与え、検出されない誤りの可能性を実際に除去する。
【０３１９】
シグネチャ分析器のフィードバック項は、最後の項とＣＲＯＭの中央に近い項とのＸＯＲである。この中央の項の正確な位置は弾力的である。
【０３２０】
通常の動作では、スタックレジスタ２１４５は図８５の回路でマイクロ状態のポップとプッシュ中に用いられる。ＣＲＯＭ試験モードでは、このレジスタ２１４５は１３ビットのカウンタとして再使用される。カウンタの最上位２ビットは、これがカウントアップ中かカウントダウン中か、またこの値が演算コードデコーダ２１４７に行くのか、ＣＲＯＭの論理マトリックス２１５２に関連するマイクロジャンプアドレスデコーダ２１４９に行くのか、を制御するのに用いられる。従ってＣＲＯＭを検査するのに必要なサイクルの全数は、２13（８Ｋ）に、レジスタやカウンタを起動するための最初のスキャンインと、得られるシグネチャをチェックするための最後のスキャンアウトを加えたものである。従って１０ＭＨｚのクロック周波数では、全ＣＲＯＭ試験が必要とするのは１ミリ秒以下である。
【０３２１】
この型の試験の大きな利点は、簡単で低性能でピン数の少ない試験器を用いて実行し、しかも優れた誤り処理ができることである。
【０３２２】
試験性のコードを表ＶＩに示す。表ＶＩには５行あり、左から右に、縦にＴＥＳＴ、ＣＯＭＰ（圧縮）、ＥＣ１、ＥＣ０、ＳＣＩＮである。
表ＶＩ
Ｔ  Ｃ  Ｅ  Ｅ  Ｓ
Ｅ  Ｏ  Ｃ  Ｃ  Ｃ
Ｓ  Ｍ  １  ０  Ｉ
Ｔ  Ｐ          Ｎ                                注意
１  Ｘ  １  ０  ０  ＨＯＬＤ            Ｈ３Ｔ相クロックなし。すなわち、Ｈ
３Ｔ、Ｖ６Ｔ、Ｔ３Ｔ、Ｃ３Ｔなし。
１  Ｘ  １  ０  １  ＲＵＮＴＥＳＴ      クロックは影響されない。ポートは試
験ポート。
１  Ｘ  ０  ０  Ｄ  ＳＣＡＮ            直列経路を走査。Ｔ３Ｔはアクティブ。
Ｈ３Ｔ、Ｃ３Ｔ、Ｖ６Ｔはイナアクテ
ィブ。
１  ０  １  １  ０  ＥＸＥＣＵＴＥ      Ｈ３Ｔ、Ｖ６ＴをＨ３Ｔにロックする。
１  Ｘ  ０  １  ０  ＰＡＲＡＬＬＥＬ    Ｈ３Ｔ、Ｖ６ＴをＨ３Ｔにロックする。
ＬＯＡＤ
１  Ｘ  ０  １  １  ＰＡＲＡＬＬＥＬ    Ｈ３Ｔ、Ｖ６ＴをＨ３Ｔにロックする。
ＤＵＭＰ
１  １  １  １  ０  ＣＲＯＭ            圧縮。Ｃ３Ｔを活動化する。
Ｈ３ＴもＴ３ＴもＶ６Ｔもなし。
Ｘ  Ｘ  １  １  １  ＥＸＩＴ            試験モードから、ＴＥＳＴおよびＣＯ
ＭＰＲＥＳＳビットを消す。
【０３２３】
走査シーケンスは以下の通りであって、各シーケンスの段階をハイフンで分けてある。シーケンスのリストの下にニューモニックスの用語集を示す。
１．  状態を初期化する  −  特定の既知の状態にある機械を起動するのに用いる。
ＳＣＡＮＴＥＳＴ−ＰＬＯＡＤ−ＳＣＡＮ（Ｉ）−ＥＸＩＴ／ＲＵＮ
２．  単一ステッピング  −  １サイクル間だけ実行して（例えばＡＴＧパターンから）、その結果を調べるのに用いる。
ＳＣＡＮＴＥＳＴ−ＰＬＯＡＤ−ＳＣＡＮ（Ｉ）−ＥＸＥＣＵＴＥ−ＳＣＡＮ（Ｏ）−ＰＤＵＭＰ
３．  試験調査  −  機能パターンの最中に機械の状態を調べる。
ＳＣＡＮＴＥＳＴ−ＲＵＮＴＥＳＴ−ＨＯＬＤ−ＳＣＡＮ（Ｏ）−ＰＤＵＭＰ
４．  圧縮−ＣＲＯＭ出力にシグネチャ分析／データ圧縮を実行する。
ＳＣＡＮＣＯＭＰ−ＰＬＯＡＤ−ＳＣＡＮ（Ｉ）−ＣＲＯＭ−ＳＣＡＮ（Ｏ）
【０３２４】
ＳＣＡＮＴＥＳＴは、「ＴＥＳＴビットを制御レジスタにスキャンインする」ことである。
ＳＣＡＮＣＯＭＰは、「ＴＥＳＴおよびＣＯＭＰＲＥＳＳビットを制御レジスタにスキャンインする」ことである。
ＳＣＡＮは同時のスキャンインとスキャンアウトである。ＳＣＡＮ（Ｉ）は、走査がデータ初期化のためのスキャンインであることを意味する。ＳＣＡＮ（Ｏ）は、走査がデータ調査のためのスキャンアウトであることを意味する。
【０３２５】
並列ロードＰＬＯＡＤおよびダンプＰＤＵＭでは、状態の開始と実行は内部で生成される。外部ではピンは、２０ナノ秒の設定時間およびクロック信号ＬＣＬＫ１の立ち上がり移行に対するゼロ保持時間とタイミングをとる。
【０３２６】
エミュレーション機能を試験するため、機能コード１１１を２サイクルの間与え、試験モードから出て走査制御レジスタの全内容を消す。ＴＥＳＴビットがセットされている場合は、第１サイクルでＴＥＳＴビットだけを消す。第２サイクルで、コード１１１と消されたＴＥＳＴビットが走査制御レジスタ２１２１の残りを消す。このようにして試験モードから、エミュレーション制御実行などのエミュレーションモードに出る。
【０３２７】
この実施態様のＴＥＳＴおよびＣＯＭＰＲＥＳＳビットは走査制御モードだけでセットされ、コード１１１を与えることによってだけ消される。ＴＥＳＴとＣＯＭＰＲＥＳＳの２ビットは、逐次試験走査経路上にはない。
これまでの説明は、一般にＧＳＰ２１２０内での試験面を強調した。以下の説明は一般にエミュレーション面を強調する。
【０３２８】
走査シーケンスを用いて、エミュレーション機能は次のものを含む図８１の実施態様で与えられる。
１．  簡単な区切り点、ＩＡＱ（命令取得）だけで有効、実行期間の前にメモリ置き換えによりセットされる多数の区切り点。停止点は命令の実行の前に起こる。
２．  ユーザの環境が変わらずにプロセッサが停止モードにあるときの、メモリ修正、検査および／または変更。これは、内部（Ｉ／Ｏレジスタ）および外部メモリ空間を含む。停止モード中の検査および／または変更も行われる。停止モードでのＰＣ（プログラムカウンタ）、ＳＴ（状態レジスタ）、ＳＰ（スタックポインタ）を含む全ての内部レジスタの修正も利用できる。
３．  命令の単一１ステッピング。
【０３２９】
ターゲットケーブルの使用を伴う機能は次の通りである。
１．  ハードウエア区切り点、メモリ書込み（ＭＷ）とメモリ読取り（ＭＲ）、命令取得（ＩＡＱ）、アドレスおよびデータハードウエア区切り点での有効。区切り点は多重またはシーケンスになっている。図６９のイベントカウンタ１７１５は、所定の条件が繰り返し起こったときに区切り点を与える。停止点は、区切り点イベントが起こった後の所定の時間に定義される。
２．  追跡情報の時刻表示は、デルタ時間、マークされた時間、経過時間として与えられる。
３．  性能分析は、総合ループカウンタにより内部および外部のプログラムループで与えられる。
４．  エミュレータメモリはソフトウエア開発のためにオーバーレイされる。このようにして、外部メモリは外部ソフトウエアを保持し、また開発が完了した後でオンチップメモリにアクセスするアドレスを用いて、ＣＰＵ２１０１によりアクセスすることができる。
５．  メモリ動作命令取得ＩＡＱ、メモリ読取り、メモリ書込みの追跡は実時間で与えられる。
【０３３０】
ＳＣＯＵＴ−は出力ピンで、走査モードでのデータの走査出力や実行モードでの停止応答指示の出力に用いられる。
強調したいことは、前に詳細に説明したオンチップアダプタ１２０３を用いることにより、ターゲットケーブルを使わなくても済むことである。
【０３３１】
ハードウエア区切り点やユーザキーボードなどの外部事象は停止を示しまたは知らせる。エミュレーションハードウエアはＥＣ１、ＥＣ０、ＳＣＩＮに一時停止コードをセットし、出力ピンＳＣＯＵＴ−に停止応答ＳＴＯＰＡＣＫが来るのを待つ。
【０３３２】
図４５のエミュレータホスト計算機１１０１が用いる内部状態情報は、プログラムカウンタＰＣ、ＣＰＵ２１０１およびキャッシュのレジスタファイル、キャッシュセグメントレジスタおよびｐ−フラグを含む。
【０３３３】
ピンＥＣ１、ＥＣ０、ＳＣＩＮで利用できるコードは次の通りである。すなわち通常機能モード、制御された実行モード、一時停止、休止、エミュレーション制御レジスタ走査、データレジスタ２１０３、２１０５、２１０７の走査である。表ＶＩＩを参照。これらのコードは、実際は前に説明したＭＰＳＤコードである。
表ＶＩＩ
ＥＣ１  ＥＣ０  ＳＣＩＮ
１      １      １    通常機能モード。走査制御レジスタは使用禁止。
１      １      ０    制御された実行モード。ＣＰＵはアクティブ、走査制
御レジスタは使用可能。
１      ０      １    一時停止。（ＣＰＵだけ）。
１      ０      ０    走査クロックの休止／停止。
０      １      Ｄ    ＳＣＩＮからの（Ｄ）によるエミュレーション制御レ
ジスタ走査。
０      ０      Ｄ    ＳＣＩＮからの（Ｄ）によるデータレジスタ走査
【０３３４】
通常機能モードはシステムの設計で用いられ、エミュレーションピンを電気的にフロートさせることにより得られる。ピンはチップ上にプルアップ抵抗を備える。通常機能モードでは内部制御レジスタ２０１３、２１０５、２１０７をエミュレーションと試験のために使用禁止にするので、走査経路を通してこれらのレジスタにプレロードする必要がなくなる。
【０３３５】
エミュレータ機能、メモリ検査／修正、内部状態ロード／ダンプを行うマイクロコードをＣＲＯＭ２１３１にプレロードする。
全てのレジスタはＬＳＢ（最下位ビット）を通してスキャンインされ、ＭＳＢ（最上位）ビットを通してスキャンアウトされる。エミュレータ制御レジスタ２１２１は、ピンＥＣ１とＥＣ０に加えられる表ＶＩＩのコード「エミュレーション制御レジスタ走査」に応答して走査することができる。
【０３３６】
通常機能モードは、エミュレータなしの通常動作モードで、パワーアップしたときに最初にチップをリセットするのに用いられる。リセットはチップ内のグローバル信号である。機能実行モードコードはエミュレーション制御レジスタ２１２１を絶えず消す。
【０３３７】
制御された実行モードは、コードを走らせたり、ロードやダンプなどの特殊な機能を実行したりするのに用いられる。このモードでは、リセットはエミュレーション制御レジスタ内のブロックリセットビットとゲートされる。このモードでリセットしてもエミュレーション制御レジスタ２１２１は消されない。
【０３３８】
マイクロコードの一部はＨＡＬＴコードに応答して、エミュレーションのためにＣＰＵを一時停止する。以下の状態のどれかになった場合に一時停止状態に入る。
１．  エミュレーションピン上の一時停止コード、
２．  エミュレーション区切り点演算コード、
３．  単一ステップ動作の完了、
４．  エミュレータから要求されたメモリアクセスの完了。
【０３３９】
エミュレーションモードは、命令境界またはＣＰＵ２１０１の動作の通常割り込み可能点で認識される。
通常機能モードではエミュレータは仮定されず、また停止条件が必要な場合はソフトウエアトラップはマイクロモード実行の際にとられる。エミュレーション制御ピンが別の状態にある場合はエミュレーションまたはホスト計算機１１０１の存在が仮定され、エミュレータにより停止条件が要求された場合は、ＣＰＵ２１０１は循環して待ちながら一時停止コードを待つ。
【０３４０】
通常機能モードでは、ＣＰＵ２１０１は以下の動作を実行することにより一時停止状態に入る。第１に、ＣＰＵはＣＰＵが起動した任意のメモリサイクルが完了するのを待つ。第２に、ＣＰＵはプログラムカウンタＰＣの内容をメモリデータレジスタ２１０５に記憶する。第３に、ＣＰＵはＳＴＯＰＡＣＫ信号を生成することにより停止の信号を出し、スキャンアウト線ＳＣＯＵＴを低にする。第４に、ＣＰＵはこの場合に与えられるソフトウエアトラップをとる。
【０３４１】
ＣＰＵが通常機能状態以外の任意の状態にある場合は、ＣＰＵは次の行動を行うことによりＨＡＬＴ状態に入る。ＣＰＵは、ソフトウエアトラップ以外の前に述べた全ての機能を実行する。ＣＰＵはソフトウエアトラップではなくてエミュレータピンにＨＡＬＴコードが来るのを待ち、最後に一時停止マイクロコードを入力する。ＣＰＵ２１０１がグラフィックス信号処理チップ（ＧＳＰ）の一部である場合は、メモリコントローラとホストインターフェースとビデオタイミング論理は通常の動作を継続する。
【０３４２】
休止モードと呼ぶ別のモードはデータのシフト中に逐次シフト論理を停止し、また試験器またはエミュレータ用のチップを直ちに停止するのに用いられる。休止はチップ上の全てのクロックを禁止することにより行われる。
【０３４３】
システムの走査モードは、ＬＣＬＫ１のサイクル当たり１ビットの速さで起こる走査を伴う。内部では、ＬＣＬＫ１のほぼ立ち上がり端であるＨ３の終わりにデータがラッチされる。設定および保持時間を表ＶＩＩＩに示す。
表ＶＩＩＩ
パラメータ                  最小    最大    単位
Ｔｓｕ（ＥＣ−        ＣＬＫ１高の前に有効なＥＣピンの    ２０            ｎｓ
ＣＬＫ１Ｈ）        設定時間
Ｔｈｄ（ＥＣ−        ＣＬＫ１高の前に有効なＥＣピンの      ０            ｎｓ
ＣＬＫ１Ｈ）        保持時間
Ｔｄ（ＣＬＫ１Ｈ−    ＣＬＫ１高からＳＣＯＵＴ低までの            ２０    ｎｓ
ＳＣＯＵＴＬ）      遅れ時間
Ｔｄ（ＣＬＫ１Ｈ−    ＣＬＫ１高からＳＣＯＵＴ高までの            ２０    ｎｓ
ＳＣＯＵＴＨ）      遅れ時間
【０３４４】
制御モードまたはデータ走査モードを設定すると、モードコードが与えられている間はＣＰＵ状態機械の活動は禁止される。これにより、データが走査連鎖内の最終の所望の位置に来るまで、何もしなくてもデータは走査される。ＳＣＡＮＩＮとＳＣＡＮＯＵＴは同じ走査で行われる。
【０３４５】
走査可能なレジスタは、メモリアドレスレジスタ２０１３と、メモリデータレジスタ２１０５と、フィールドサイズレジスタ２１０７である。例えばレジスタ２１０３と２１０５はそれぞれ３２ビットであり、フィールドサイズレジスタ２１０７は６ビットである。走査されるレジスタは、エミュレーション制御レジスタ２１２１のデータ走査選択フィールド（ビット２−５）により決定される。
【０３４６】
ＣＲＯＭ内のマイクロコードは、コマンドにより４つの主な機能を行う。第１に、選択された装置レジスタからまたはキャッシュからまたはプログラムカウンタから、メモリデータＭＤレジスタ２１０５にデータを転送する。第２に、ＭＤレジスタ２１０５から選択された装置レジスタにまたはキャッシュにまたはプログラムカウンタに、データを転送する。第３に、ＰＭＳＤコードを実行してステップ毎の動作を行う。第４に、メモリインターフェース２２５０に命令を送り、外部メモリとレジスタ対ＭＤ２１０５およびＭＡ２０１３の間でどちらかの方向にデータを転送する。
【０３４７】
メモリアドレスレジスタ２１０３は、エミュレータのものを含むＣＰＵが起動した全てのメモリアクセスのアドレスを保持する。メモリアクセスが完了すると、レジスタ２１０３は３２ビットだけ増分され、次の語アドレスに向けられる。低位５ビットはそのまま変わらない。チップが一時停止になると、プログラムカウンタＰＣの内容は上位２８ビットにロードされ、停止条件コードはこのレジスタの下位４ビットを占める。
【０３４８】
メモリデータレジスタ２１０５は、エミュレータとメモリコントローラの間でデータを通す。レジスタ２１０５は、エミュレータとＣＰＵの間でロードおよびダンプのためにデータを通すデータラッチとして働く。ＣＰＵが最初に一時停止する場合は、このレジスタ２１０５はＣＰＵプログラムカウンタと一時停止のイメージを低位４ビットに含む。このコードは、一時停止したサイクルの型を示す。一時停止コードを表ＩＸに示す。
表ＩＸ
ＭＤ３  ＭＤ２  ＭＤ１  ＭＤ０
０      ０      ０      ０    通常の一時停止コード
０      ０      ０      １    画素ブロック転送（ｐｉｘｂｌｔ）またはＩＤＬＥ
中の一時停止
０      ０      １      ０    ＲＥＳＥＴ中の一時停止
０      １      ０      ０    ＥＭＵ演算コードからの一時停止
１      ０      ０      ０    単一ステップ中の一時停止
１      １      １      １    ＥＭＵメモリアクセスのバス故障による一時停止
【０３４９】
フィールドサイズレジスタ２１０７により、フィールドサイズレジスタが指定できるいろいろなサイズのデータフィールドにメモリアクセスを行うことができる。
【０３５０】
レジスタ２１０７にロードされる値は、書き込まれるビット数を示す６ビットコードである。レジスタ２１０７を用いることにより、読取りと書込みのシーケンスの間にホスト計算機のアクセス動作を邪魔するような読取り・修正・書込み動作シーケンスを行わずに、エミュレータはビットまたはフィールドを書き込むことができる。ＣＰＵが最初に一時停止する場合は、レジスタ２１０７は実際はラッチであってコピーではないので不確定な値を含む。ある値をレジスタ２１０７にスキャンインすると、この値はレジスタ２１０７の最上位６ビットに入る。値をスキャンアウトするときは、この値はレジスタ２１０７の最下位６ビットにある。
【０３５１】
エミュレーション制御レジスタのビットを表Ｘに示す。制御走査モードが他のＭＵＸに変わるまでは、エミュレーション制御レジスタ２１２１の内容は実行されない。
表Ｘ
ビット 機能 説明
０    試験モード可能      装置を製造試験モードＴＥＳＴにする
１    シグネチャ可能      装置をＣＲＯＭシグネチャモード（ＣＯＭＰＲＥＳＳ）
にする
５−２  データ走査選択      データ走査でどのレジスタを走査するかを選択する
４ビット
９−６  ＥＭＵ機能コード    読取り／書込み／ロード／ダンプを選択
４ビット
１０    ＥＭＵビジー可能    メモリコントローラではなくエミュレータビジーに
ＣＰＵを接続する
【０３５２】
１１    ロードマッパー可能  オーバーレイマッパーをロードする制御を調整する
１２    メモリサイクル      現在のメモリサイクルを打ち切る
打切り
１３    ＭＡＰ／ＷＰ可能    マッピングと書込み保護論理を可能にする
１４    マクロモード        ＲＥＳＥＴ、ＮＭＩ、ＣＡＣＨＥのフラッシングを
阻止する
１５    ホストポート阻止    ホストポートサイクルを阻止して実行不可にする
１６    単一ステップ        ＣＰＵは１命令だけ実行する
１７    ＣＰＵ優先度        ＣＰＵの優先度をホストより上にする
１８    装置使用禁止        装置を使用禁止にし、全てのピンをトライステート
にする（ｔｒｉ−ｓｔａｔｅｓ）
１９    ＥＭＵＲｅｓｅｔ    エミュレーションが生成するリセット
２０    ＥＭＵＩＮＴ        ＩＤＬＥ命令またはｐｉｘｂｌｔ中はエミュレータ
を一時停止にする
【０３５３】
２９    キャッシュ          キャッシュフラッシュ条件を示す
フラッシュフラグ
２９    ＢＵＳＳＥＲＲ      バス誤り条件を示す
フラグ
３０    ＲＥＴＲＹフラグ    メモリ再試行条件を示す
３１    ＭＥＭＣＴＬ        メモリコントローラが使用中またはｅｍｕｂｕｓ
ＢＵＳＹフラグ      ｙビットがセットされていることを示す
【０３５４】
エミュレーション制御レジスタ２１２１内の４ビット２−５は、データレジスタ走査モード中に逐次走査のためにレジスタ２１０３、２１０５、２１０７から１つを選択する。通常機能モード中は、これらの４ビットは消されてゼロになる。表ＸＩは、走査可能なレジスタとその走査コードを示す。
表ＸＩ
ＳＣＮ３ ＳＣＮ２ ＳＣＮ１ ＳＣＮ０ 選択コード
０        ０        ０        ０          ＭＡ走査
０        ０        ０        １          ＭＤ走査
０        ０        １        ０          データサイズラッチ走査
【０３５５】
エミュレータは、表ＸＩＩに示す機能の集合を支援する。必要な機能コードをエミュレーション制御レジスタ内に置く。次にプロセッサＣＰＵ２１０１を制御された実行モードにすると、ＣＰＵ２１０１は線ＳＣＯＵＴを高にする。これは機能を実行中であることを示す。動作が完了すると、ＣＰＵ２１０１は線ＳＣＯＵＴを再び低にする。通常機能モード中は、これらの４ビットは消されてゼロになる。
表ＸＩＩ
ＦＣＮ３  ＦＣＮ２  ＦＣＮ１  ＦＣＮ０
０        ０        ０        ０    予約
０        ０        ０        １    実行
０        ０        １        ０    予約
０        ０        １        １    リセットに戻る
０        １        ０        ０    予約
０        １        ０        １    割り込まれた命令を再開する
０        １        １        ０    予約
０        １        １        １    マクロを実行する
１        ０        ０        ０    ＳＴ、ＰＣをダンプする
１        ０        ０        １    レジスタファイルをダンプする
１        ０        １        ０    キャッシュをダンプする
１        ０        １        １    ＳＴ、ＰＣにロードする
１        １        ０        ０    レジスタにロードする
１        １        ０        ０    レジスタファイルにロードする
１        １        ０        １    キャッシュにロードする
１        １        １        ０    メモリを読み取る（アドレスを増分）
１        １        １        １    メモリに書き込む（アドレスを増分）
【０３５６】
ビットＦＣＮ３、ＦＣＮ２、ＦＣＮ１、ＦＣＮ０はエミュレーション制御レジスタ２１２１のビット９−６を占める。
表ＸＩのエミュレータ実行モードを用いて、エミュレータは実行または単一ステッピングによりＣＰＵ２１０１上のユーザコードを実行する。
【０３５７】
エミュレータダンプ機能では、エミュレータはダンプの要求をスキャンインする。次にＣＰＵ２１０１は機械状態の要求された部分を取り出して、メモリデータレジスタ２１０５に１つずつロードする。３２ビットのグループ毎にエミュレータホスト計算機１１０１はメモリデータレジスタ２１０５を逐次スキャンアウトしてデータを得る。より特定して言えば、エミュレータダンプの動作は次の通りである。第１に、エミュレータは表ＸＩの４ビット機能コードをスキャンインして、制御走査モードを用いて状態をダンプし、レジスタ２１２１のエミュレータビジー可能ビット１０をセットする。第２に、エミュレータは制御された実行モードに入る。第３に、ＣＰＵ２１０１はＳＣＯＵＴピンを高にする。第４に、ＣＰＵ２１０１はレジスタ２１０５に機械状態の３２ビット語を置いて、ＳＣＯＵＴピンを低にする。第５に、ＣＰＵはサイクルが完了するのを待つ。エミュレータビジービットが可能になると、ＣＰＵはＳＣＯＵＴピン低に停止応答ＳＴＯＰＡＣＫ信号を出す。第６に、エミュレータはデータ走査モードに入り、レジスタ２１０５を走査する。この実施態様では、ＣＰＵ２１０１は走査中に同時活動を行うことを禁止される。第７に、動作は段階２の制御された実行モードに戻る。走査モードから出ると、エミュレータビジーフラグは消される。
【０３５８】
処理が終わったことは、ダンプする既知の数の語により決定される。キャッシュとレジスタファイルのダンプが終わると、最後の語をスキャンアウトした後で別の制御された実行が行われ、ＣＰＵは状態シーケンスを完了して一時停止に戻る。ＣＰＵ２１０１は、ＳＴＯＰＡＣＫを表明することにより、一時停止に戻ったという信号を出す。
【０３５９】
次にエミュレータは、エミュレーション制御レジスタ２１２１内のエミュレータビジービットを消す。
例えば機能「ＳＴ、ＰＣをダンプする」では、「１０００」機能コードによりＣＰＵプログラムカウンタと状態レジスタがダンプされる。状態レジスタがまずダンプされ、次にＰＣがダンプされる。
「レジスタファイルをダンプする」では、「１００１」機能コードによりＡおよびＢレジスタファイルがこの順序にダンプされる。
【０３６０】
「キャッシュをダンプする」機能では、「１０１０」機能コードによりキャッシュがダンプされる。（キャッシュは異なるセグメントにレジスタを持つ。通常のキャッシュ動作では、最も以前に（ｌｅａｓｔ  ｒｅｃｅｎｔｌｙ）用いられたＬＲＵセグメントが外部メモリから重ね書きされる。）キャッシュダンプは次のシーケンスで行われる。データレジスタは、それぞれの存在（Ｐ）フラグが後に続いて、セグメントＡから始まってダンプされるので、３２セグメントＡレジスタにセグメントＡ存在フラグが続く。他のセグメントでも同様にダンプされる。次に、最下位９ビットがゼロにセットされたＡセグメント開始アドレスがダンプされる。次の３語はセグメントＢ、Ｃ、Ｄのアドレスを含む。最後の語は、最も以前に用いられたＬＲＵ判定基準に従ってセグメントを識別するＬＲＵスタックを含む。最下位２ビットは最も以前に用いられたセグメントの数を含む。その次の最近に用いられたセグメント数は、最も最近使われたセグメント数を含むビット７および８より下位の隣接するビットに入る。ダンプされる語数は全部で１３７である。
【０３６１】
「エミュレータにロードする」機能はコード１０１１、１１００、１１０１で指定され、エミュレータはロード要求と値をレジスタ２１０５にスキャンインする。次にＣＰＵ２１０１は、レジスタ２１０５内の値から機械状態を作る。第１に、エミュレータはエミュレーション制御レジスタを用いてコードをスキャンインして状態をロードし、次にエミュレータビジービットをセットする。第２に、エミュレータはデータレジスタ走査モードを用いてレジスタ２１０５をスキャンインする。第３に、エミュレータは制御された実行モードに入り、第４に、ＣＰＵ２１０１は線ＳＣＯＵＴを高にする。第５に、ＣＰＵは機械状態の３２ビット語の書込みを要求し、サイクルが完了するのを待つ。データのロードが終わると、線ＳＣＯＵＴは低になる。第６に、エミュレータは次の３２ビット語をレジスタ２１０５にスキャンインする。データ走査レジスタモードから出るとビジーフラグが消える。第７に、動作は第３段階に戻って、第３実行モードに入る。この処理の終了は、所定の値であるロードする語の数で決定される。次にエミュレータは、エミュレーション制御レジスタ２１２１内のエミュレーションビジー可能ビット１０を消す。
【０３６２】
「ＰＣ、ＳＴをロードする」機能では、１０１１機能コードにより、状態レジスタにロードした後でＣＰＵプログラムカウンタにロードする。「レジスタにロードする」１１００機能では、ＡおよびＢレジスタファイルにこの順序にロードする。「キャッシュにロードする」１１０１機能コードでは、セグメントＡから始まって、ＬＲＵスタック、セグメントＡのＰフラグ、３２セグメントＡのデータレジスタを次にキャッシュにロードする。次に同じ動作を、セグメントＢ、Ｃ、Ｄについて実行する。セグメントＤのロードの後、ダミーロードをロードする。この実施態様では、ロードされる語数は全部で１３８である。
【０３６３】
アドレス値をレジスタ２１０３にまたデータ値をレジスタ２１０５にスキャンインし、同時にメモリ読取りまたは書込み機能コードをエミュレーション制御レジスタ２１２１にスキャンインすることにより、エミュレータはＩ／Ｏレジスタを含むチップアドレス空間のどの部分にもアクセスすることができる。ＣＰＵがエミュレータ一時停止状態にある場合は、エミュレータはこれらのレジスタを使用することができ、次に制御された実行モードに入る。次にＣＰＵを制御してメモリアクセスを要求し、アクセスが終わると、ＣＰＵはエミュレータ一時停止状態に戻る。このようにして、図５９Ａの配線されたアダプタ１２０３の回路とは別のこの実施態様で状態機械として動作するＣＲＯＭ内で、オンチップ機能は状態から状態へ移行して実現される。次に通常の一時停止シーケンスは、メモリアクセスが完了した信号をエミュレータに送る。この機構を用いてコードをダウンロードした後、エミュレーション制御レジスタ内のキャッシュフラッシュビット２９をセットすることにより、エミュレータはキャッシュをフラッシュする。
【０３６４】
エミュレーション制御レジスタ２１２１（これは図５９Ａのエミュレーション制御レジスタ１２５１と同様である）の各ビットの機能について、以下に詳細に説明する。ＣＰＵがメモリアクセスを要求したときに、エミュレーションビジー可能ビット１０がセットされている場合は、ＣＰＵ２１０１にはメモリインターフェースが使用中のように見える。このためＣＰＵはレジスタ２１０３と２１０５の修正を禁止され、エミュレータはデータをスキャンアウトする時間を与えられる。ビジーフラグは、制御された機能モードに再び入るまでセットされたままである。
【０３６５】
ロードマッパー可能ビット１１により、メモリコントローラは特殊な型式のメモリ書込みサイクルを生成する。ビット１１は、ロードマッパーバス状態コードを強制することにより、またＲＡＳとバッファ制御出力を阻止することによりこれを行う。これにより、ＣＰＵはメモリ書込みマイクロコードを用いてマッパーのローディングを支援することができる。通常機能コード中は、このビットは消されてゼロになる。エミュレータは、ＭＡレジスタ２１０３の内容の「データ」部分が最下位の５ビットに含まれないようにする。というのは、レジスタ２１０３のこれらのビットはＬＡＤバスに出力されないからである。エミュレータは最下位の５ビットにゼロをロードすることにより、これを調整されていない書込みと見なしてメモリコントローラがサイクルを２度実行しないようにする。
【０３６６】
メモリサイクル打ち切りビット１２は、現在のメモリサイクルを打ち切らなければならないという信号を出す。次にメモリサイクルを起動できるようにするために、エミュレータはこのビットを消す。通常機能モード中は、このビットは消されてゼロになる。
【０３６７】
ＭＡＰ／ＷＰ可能ビットをセットすると、オーバーレイマッピングと書込み保護機能が可能になる。このビットをセットすると、ＰＡＧＭＤ−、ＢＵＳＥＲ、ＳＩＺＥ１６−ピン上での時間多重送信も可能になる。通常機能モード中は、このビットは消されてゼロになる。
【０３６８】
マクロモードビット１４により、図８０の機能ホスト計算機ＨＣＦに影響されることなく、キャッシュでプログラムを実行することができる。このビットはリセット、全ての割り込み、キャッシュ可能ビットを阻止する。キャッシュＰフラグはマクロモード中はチェックされず、ホストＨＣＦにより消すことができる。キャッシュに再ロード中は、Ｐフラグは変えてはならない。通常機能モード中は、このビットは消されてゼロになる。
【０３６９】
ホストポート阻止ビット１５は、機能ホスト計算機ＨＣＦがホストポート線２１１５を経てアクセスを表明しないようにする。このビットがセットされているときにホストＨＣＦがアクセスすると、このビットが消されるまでホストポート２２４０は使用不可状態に置かれる。この機能は、ホストポートプロトコルに関連して用いられる。通常機能モード中は、このビットは消されてゼロになる。
【０３７０】
エミュレーション制御レジスタ２１２１内の単一ステップ制御ビット１６により、コア２１０１はＳＣＯＵＴ−ピンに停止応答ＳＴＯＰＡＣＫ信号を出す前に１命令だけを実行し、エミュレーションが停止した条件を示す。これは、現在の命令の後でエミュレーション命令を命令ストリーム内に入れることと同じである。マイクロコントローラに行く前に、このビットと状態レジスタ内の単一ステップビットとの論理和をとる。通常機能モード中は、このビットは消されてゼロになる。
【０３７１】
ＣＰＵ優先度ビット１７は、ＣＰＵの優先度をホストＨＣＦアクセスより高くする。これにより、ホストポート２２４０を完全に阻止することなく、エミュレータはサイクルを盗んでマッパーとメモリにロードすることができる。通常機能モード中は、このビットは消されてゼロになる。
装置使用禁止ビット１８は、クロックを含む全ての出力を使用禁止にする。通常機能モードでは、このモードから強制的に出る。通常機能モード中は、このビットは消されてゼロになる。
【０３７２】
ＥＭＵＲｅｓｅｔビットはリセット入力と論理和をとる。このビットに「１」を書き込むと、リセット状態を生成する。更に動作を実行する場合は、このビットは消される。
エミュレーション割り込みビットＥＭＵＩＮＴをセットすると、エミュレーション割り込みを実行する。このようにしてＩＤＬＥ命令に割り込むことができる。このビットは、このビットをセットしかつ一時停止コードをエミュレータピンに置くと有効になる。
【０３７３】
キャッシュフラッシュフラグ２９は、現在のエミュレータアクセス中にキャッシュフラッシュが起こったことを示す。このフラグは、スキャンアウトするときに自動的に消される。通常機能モード中は、このフラグは消されてゼロになる。
【０３７４】
ＢＵＳＥＲＲフラグは、現在のエミュレータメモリアクセス中にＢＵＳＥＲおよびＬＲＤＹピンでメモリバス誤りが検出されたことを示す。このフラグは、スキャンアウトするときに自動的に消される。通常機能モード中は、このフラグは消されてゼロになる。エミュレータ１１０１の起動によるアクセス中かマクロ中にバスの故障が発生すると、ＣＰＵはＳＴＯＰＡＣＫを表明して、エミュレータハードウエアからの一時停止信号を待つ。一時停止を受けると、ＣＰＵ２１０１はメモリアドレスレジスタ２１０３の最下位４ビットにコード１１１１（バスの故障による一時停止）を、プログラムカウンタの内容と共に挿入する。
【０３７５】
ＲＥＴＲＹフラグ３０は、現在のエミュレータメモリサイクル中にターゲットシステムがＢＵＳＥＲＲおよびＬＲＤＹピンにメモリ再試行を要求したことを示す。このフラグは、スキャンアウトするときに自動的に消される。通常機能モード中は、このフラグは消されてゼロになる。
メモリコントローラビジーフラグＭＥＭＣＴＬ  ＢＵＳＹは、エミュレータが要求したメモリサイクルが完了したことを検出するために、走査論理が用いるものである。このビットはラッチされず、エミュレータが読み取る。
【０３７６】
次に区切り点の主題に入ると、ソフトウエア区切り点は、ソフトウエアコードの開発とデバッグに用いるのに適している。停止モード（制御モード）中に多数の区切り点をセットすることができる。ユーザが実行を起動すると、どの区切り点でもプロセッサ２１０１は止まる。区切り点事象が発生すると、その区切り点はユーザの区切り点スタックから除かれる。これにより、今出会った区切り点により割り込まれることなく、プログラムの流れを続けることができる。
【０３７７】
ソフトウエア区切り点の機構は、「ＥＭＵ」と呼ぶエミュレーション命令を用いる。ＣＰＵ２１０１が命令ストリーム中でこの命令に出会うと、ＣＰＵはＳＴＯＰＡＣＫ信号を出す。このようにして、プログラムカウンタＰＣは出会ったＥＭＵ命令を指したままである。区切り点を取り除くには、エミュレータは元の命令をメモリに再挿入して、キャッシュをフラッシュする。
【０３７８】
ソフトウエアのデバッグとシミュレーションを目的とするＥＭＵ命令には２つのバージョンがある。例えば、「通常の」ＥＭＵ命令用の演算コードは０１００ｈである。これにより、ＣＰＵはソフトウエアトラップを取ることができる。「ＥＭＵ存在」命令用の演算コードは０１１０ｈであって、これによりＣＰＵ２１０１はＳＴＯＰＡＣＫを生成して、一時停止コードが存在するまでループで待つ。エミュレータ計算機１１０１がピンＥＣ０とＥＣ１に一時停止信号を出すと、ＣＰＵ２１０１はエミュレーション一時停止マイクロコードに飛ぶ。
【０３７９】
エミュレーション制御レジスタ内の単一ステップモードビット１６とＣＰＵ２１０１状態レジスタ内の同様なビットは、単一ステップのＣＰＵ機能を制御する。どちらかの単一ステップビットを「１」にセットすると、ＣＰＵは命令を実行した後一時停止し、その命令についてのオペランド転送サイクルを実行する。すなわち、次の命令を実行するが、これはプログラムカウンタＰＣにより現在識別された命令か、または割り込みサービスルーチンの第１命令である。単一ステップ動作はエミュレーション停止シーケンスと同様であることに注目されたい。キャッシュは通常単一ステップ中に動作する。エミュレータが他の命令の取り出しを禁止にする（キャッシュ充填）場合は、単一ステップの前にキャッシュ使用禁止にする、すなわちキャッシュフラッシュビットをセットする。このようにして、他の命令の取り出しが避けられる。
【０３８０】
単一ステップまたは通常の実行モードに移行するため、命令を実行する前に割り込みをサンプルする。そしてマスクされていない割り込みが未解決の場合は、コア２１０１はストラップを取り、その第１命令（または単一ステップモードでは唯一の命令）は割り込みベクトルが指す命令である。
【０３８１】
コア２１０１に関連する割り込み論理は、エミュレーション制御レジスタ２１２１の状態に関わらず割り込みを監視する。従って、ＩＮＴＰＥＮＤ  ＩＯレジスタの状態は、コア２１０１が任意のＨＡＬＴ／ＳＣＡＮ期間中に割り込みをマスクした場合と同じである。状態レジスタの割り込み可能ビットをセットして実行または単一ステップへ移行すると、最高の優先度未決定の割り込みが取られる。このようにして、割り込み可能ビットは、エミュレータ１１０１またはソフトウエアの介入なしにその後の割り込みを禁止する状態が消される。割り込み応答は、割り込みベクトル取り出し中の状態コード出力である。ＣＰＵがメモリサイクルを起動するので、停止応答信号ＳＴＯＰＡＣＫ−が出される前にこの状態コード出力は完了する。割り込みとエミュレータ停止が起こるのは、命令境界、または割り込み可能な命令で割り込みがサンプルされたときである。所定の命令境界で割り込みもエミュレータ停止も要求された場合は、エミュレータ停止が優先する。
【０３８２】
例えばエミュレーションモードでは、エミュレーションハードウエアは多重送信されるエミュレーションピンの機能を用いて開始および停止、単一ステップ、マクロ命令の実行、内部機械状態のスキャンアウトおよびスキャンインを行う。代表的なエミュレーションシーケンスは、表ＸＩＩＩに示すように、ＲＵＮ−ＳＴＯＰ−ＲＵＮである。
表ＸＩＩＩ
エミュレーションピン 走査データ
一時停止
ＳＣＯＵＴ−低を待つ
ＥＭＵ制御を走査            データＳＣＡＮ＝ＭＡにセット
ＤＡＴＡを走査              ＭＡ＝０Ｘ８０１０００
ＥＭＵ制御を走査            ＳＣＡＮ＝ＭＤ、ＦＣＮ＝ＷＲＩＴＥ  ＭＥＭ、
ＥＭＵビジーＥｎ＝１
データを走査                ＭＤ＝データ
制御された実行
ＳＣＯＵＴ−が高
ＳＣＯＵＴ−低を待つ
一時停止または走査
【０３８３】
ハードウエアリセットは、オーバーレイメモリの内容を壊さずにチップをリセットしなければならない。通常機能モードでは、リセットは最初のパワーアップのためのグローバルリセットになる。一時停止、休止、または走査モードがエミュレータピンに置かれたときは、リセットは阻止しなければならない。またマクロモードでは、リセットは阻止しなければならない。更に通常機能モード以外では、メモリコントローラはリセットでメモリ内容を壊されないように進行中の全てのメモリサイクルを完了し、リセットが低の間にリフレッシュを行わなければならない。
【０３８４】
オーバーレイメモリは、プログラム可能な境界にマップすることのできるＤＲＡＭの１または２ページから成る。マッピングは、ラッチされたバス２１２２に接続する高速スタティックＲＡＭで行われる。ＲＡＭの１つの出力がアクティブ低の場合は、メモリアクセスがコア２１０１を含むチップからではなく、オーバーレイメモリから来なければならないことを示す。これは、通常の出力を阻止してオーバーレイメモリに新しい信号を与えることによって行われる。このメモリはエミュレータにはローカルと見なされ、チップを含むターゲットシステムからはアクセスされない。
【０３８５】
図５６と図５９Ａを参照し、各ドメインがクロック線ＤＣＬＫ、３本の制御線Ｃ０、Ｃ１、ＣＸ、およびこれに独特に結合する２本の走査線ＳＣＩＮとＳＣＯＵＴを持つことを思い出すと、各ドメインに６つの独特の信号を与えるのに必要な信号経路の数は、ドメインの数が増加すると共に増加する。ドメインの数は装置１１のサイズと複雑さが増加するにつれて増加するので、各ドメインに独特のＤＣＬＫ、Ｃ０、Ｃ１、ＣＸ、ＳＣＩＮ、ＳＣＯＵＴを与えるのに必要な信号経路の数も装置１１の複雑さと共に増加する。これらの信号経路は、さもなければ機能回路に利用可能な空間を占有するので、装置１１の設計に悪い影響を与える。装置１１のドメインの数が増加するに従って特にそうである。
【０３８６】
上に説明した信号経路の増加の問題は、図５９Ａのアダプタ１２０３の回路のいくつかを個々のドメインに移すことにより避けることができる。システムドメインを例としてより特定して言うと、１３７１（図５９Ａと図６４）の回路とラッチ１５１７および１５１９（図６２）はアダプタ１２０３に設けるのではなく、システムドメインに設ける。残りの各ドメインの対応する回路も、同様にアダプタ１２０３ではなくて各ドメイン自体に設ける。更に以下の説明から明らかなように、ロック制御回路１４０１とロックレジスタ１３５１はアダプタ１２０３から除くことができる。また次の説明から明らかなように、図５９Ａの２つのクロック制御回路、この例では１４１１と１４１３、はどちらもアダプタ１２０３から完全に除くことができる。しかしクロック制御回路の１つ、この例では１４１５、は以下に説明するようにアダプタ１２０３内に実質的に保持される。
【０３８７】
次に図８８−９０の配置に移ると、図８８はシステムドメイン、分析ドメイン、ＣＰＵドメインを含むＮドメインを示す。以下に説明するように、各ドメインは前に説明した回路１３７１（図５９Ａと図６４）とラッチ１５１７および１５１９（図６２）に対応する回路を備える。アダプタ１２０３から各Ｎ個のドメインへの１５線のバス８８０１と、２本の走査線ＴＤＩ＿ＭＰＳＤおよびＴＤＯ＿ＭＰＳＤを参照すると、この１７線は図５６に示す１８信号線を置き換えるものである。より特定して言うと、ドメインの数Ｎに関わらず、図８８の１７信号線はアダプタ１２０３と全てのドメインとの間の完全なインターフェースを与える。図５６の配置では、４ドメインに対しては２４信号線が必要であり、５ドメインに対しては３０信号線が必要である、など。
【０３８８】
図８８のドメインは各ＳＲＬ（ＬＳ、ＬＡ、．．．、ＬＮ）を含む。これらは以下に説明するように、各ドメインをロックするためのロックビットを保持するロックビット走査経路を定義する。
【０３８９】
図８９は例示のドメイン、この場合はシステムドメイン１２１５、の関連する構造の詳細を示す。各ドメインは、図８９に示すシステムドメインと同じ構造を持つことが望ましい。図８９のシステムドメインは、前に図６２に示した回路１３９７のラッチ１５１７と１５１９を含み、またラッチ１５１７と１５１９と同じものでよい別のラッチ８９０５と８９０７を含む。図６２に示したと同じように、ラッチ１５１７と１５１９のデータ入力は、ラッチ１５０７と１５０９の各出力に接続する。図６２のラッチ５０７と１５０９の出力は、図８８−８９では１５０７ＯＵＴと１５０９ＯＵＴで示している。ラッチ８９０５と８９０７のデータ入力はそれぞれ線１６０７と１６０９で、これらは図５９Ａと図６５のブロック回路１４１５から与えられる。図８９の各ラッチのＨＯＬＤ入力はＯＲゲート８９０１で駆動され、ＯＲゲート８９０１の入力はＣＮＬＨＯＬＤとＬＳ（この例ではラッチ８９１３がＬＳの機能をする）内のロックビットである。また図８９の各ラッチのＣＡＰＴＵＲＥ入力はインバータ８９０３で駆動され、インバータ８９０３の入力はＯＲゲート８９０１の出力に接続する。ＣＮＬＨＯＬＤが高のときは、ドメインは現在の状態に凍結される。従ってドメインの状態に影響を与えることなく、ロックビットはロックビット走査経路、特にこの例ではＬＳ、を通ってシフトされる。所望のロックビットパターンがロックビット走査経路に置かれるとＣＮＬＨＯＬＤは低にしてよい。従ってＬＳ内のロックビットは、ドメインをロックにする（ＬＳ内のロックビット＝１）かアンロックにする（ＬＳ内のロックビット＝０）かを制御する。
【０３９０】
図８９のラッチ１５１７および１５１９からの出力は、図５９Ａ、６２、６４に示した回路１３７１に入力するバス１３９８である。前の図５９Ａと図６４に示した回路１３７１のＬＯＣＫＳ−入力は、図８９ではインバータ８９０３の出力で置き換えられている。図８９の回路１３７１への他の入力と図８９の回路１３７１からの出力は、図６４で示したものと同じである。
【０３９１】
ラッチ８９０５と８９０７の出力は、ＮＡＮＤゲート１６０１と１６０３にそれぞれ与えられ、ＮＡＮＤゲートの他方の入力はＦＣＬＫとＪＣＬＫによりそれぞれ駆動される。ＮＡＮＤゲート１６０１と１６０３の出力はＮＡＮＤゲート１６０５の入力を駆動し、ＮＡＮＤゲート１６０５の出力はドメインのクロック、この例ではシステムドメインのＳＣＬＫ、である。図５９Ａと図６５を参照すると、ＮＡＮＤゲート１６０１、１６０３、１６０５で定義されるクロック制御回路が設けられるのは、前のようにアダプタ１２０３の回路１４１５ではなく、システムドメイン１２１５である。他の全てのドメインも図８９と同じＮＡＮＤゲート配置を備え、図８９と同じように個々のクロックを生成する。
【０３９２】
上に示したように図８８−９０の配置を用いると、図５９Ａのアダプタ１２０３で必要なのは回路１４１１、１４１３、１４１５の中の１つだけ（この例では１４１５）である。これは、信号１６０７と１６０９（図６５）はＪＣＬＫとＦＣＬＫと共にバス８８０１で全てのドメインに送られるからである。図６５で信号１６０７と１６０９はそれぞれＦＣＬＫとＪＣＬＫを選択することを思い出すと、バス８８０１を経て全てのドメインに放送されるクロック選択信号１６０７と１６０９を生成することにより、図６５の回路１４１５はクロック選択回路として働くことが分かる。クロック選択回路１４１５（図６５）により作られる信号ＧＣＴＤはアダプタ１２０３（図５９Ａ）内のコード状態機械１３８１のＳＷＩＮＰＲＯＧ−入力に直接接続してよく、また論理１４２５をアダプタ１２０３から除いてよい。
【０３９３】
クロック選択信号１６０７と１６０９（図６５）を作るためにクロック選択回路１４１５が用いるＤＳＣＳ−信号は、図９０に示すように、ラッチ１５２３（図６２）を接続することにより作られる。従って、図６２のラッチ１５１７と１５１９をアダプタ１２０３から除いて、代わりに図８９のシステムドメイン１２１５に設けたが、図６２のラッチ１５２３はアダプタ１２０３内に残し、図９０のように接続してクロック選択回路１４１５が用いるＤＳＣＳ−入力を発生し、信号１６０７と１６０９を作る。アダプタ１２０３内にはクロック選択回路１４１５が１つだけ残るので、ＤＳＣＳ−信号は１つだけ必要である。従って１ラッチだけ、この例では１５２３だけが必要である。回路１３９３と１３９５に前に設けられた他の同様なラッチはアダプタ１２０３から除いてよい。
【０３９４】
図８９において、信号１５０７ＯＵＴ、１５０９ＯＵＴ、１６０７、１６０９は、ＬＳ内のロックビット、ＣＮＬＨＯＬＤ信号、論理ゲート８９０１と８９０３、およびラッチ１５１７、１５１９、８９０５、８９０７の動作により、ある状態にラッチされロックされる。例えばＣＮＬＨＯＬＤが高になると、信号１５０７ＯＵＴ、１５０９ＯＵＴ、１６０７、１６０９はラッチ１５１７、１５１９、８９０５、８９０７の出力に、ある状態にラッチされる。ＣＮＬＨＯＬＤが低になる前にＬＳ内のロックビットを論理１（ロック状態）にセットすることにより、ラッチ出力のラッチ状態を維持することができる。これは図５９Ａのアダプタ１２０３からドメインを実質的に切り離す、すなわちドメインをロックする。
【０３９５】
ドメインをアダプタ１２０３に再接続する、すなわちドメインをアンロックする、ことが望ましい場合は、ＣＮＬＨＯＬＤを高にして、ラッチ１５１７、１５１９、８９０５、８９０７の出力のラッチされた状態に影響を与えることなく、ＬＳ内のロックビットを論理０（アンロック状態）にセットする。しかしドメインをアンロックするには事前に、アダプタ１２０３からの信号１５０７ＯＵＴ、１５０９ＯＵＴ、１６０７、１６０９の論理状態を、ラッチ１５１７、１５１９、８９０５、８９０７の出力にラッチされている信号の論理状態と一致させなければならない。上に説明したドメインをロックする過程で、ホスト計算機１１０１（図４９）内のソフトウエアは、ラッチ１５１７、１５１９、８９０５、８９０７によりラッチされた信号１５０７ＯＵＴ、１５０９ＯＵＴ、１６０７、１６０９の状態を容易に記録して、後でこのラッチされた状態を再現することができるので、再接続が必要なときには信号１５０７ＯＵＴ、１５０９ＯＵＴ、１６０７、１６０９をラッチされた状態と一致させることができる。前に述べたように論理状態が一致するとＣＮＬＨＯＬＤを低にして、ラッチ１５１７、１５１９、８９０５、８９０７を経て信号１５０７ＯＵＴ、１５０９ＯＵＴ、１６０７、１６０９を図８９の論理に再接続する。
【０３９６】
図８８の配置は、アダプタ１２０３とＮ個のドメインとの間に２線の逐次走査インターフェース８８０３を備える。この２線のインターフェース８８０３は、図５６の前に述べた走査線の機能を実行する。アダプタ１２０３からのＴＤＩ＿ＭＰＳＤはシステムドメイン１２１５の走査入力ＳＳＩに接続し、その出力ＳＳＯは分析ドメイン１２１７の走査入力ＡＳＩに接続する。図８８に示すようにその他のドメインも同様に互いに接続され、ドメインＮの走査出力ＮＳＯはＴＤＯ＿ＭＰＳＤに接続して、２線の走査インターフェース８８０３を完成する。
【０３９７】
図８９は、例示のシステムドメイン１２１５の走査経路構造を示す。他のドメインは、システムドメインと同様な走査経路構造を持つことができる。図８９でＭＰＳＤ＿ＣＮＴＬが表明されると、走査データはＳＳＩからラッチ８９１３（ＬＳ）と８９０９を通ってＳＳＯに進む。ＭＰＳＤ＿ＤＡＴＡが表明されると、ラッチ８９０９の出力に従って、走査データはＳＳＩからバイパスラッチ８９１１を通って直接ＳＳＯへ、または８９１５のドメイン走査経路を通り次にラッチ８９１１を通ってＳＳＯに進む。ラッチ８９０９、８９１１、８９１３はＪＣＬＫによってクロックされ、これにより以下の走査動作をＳＣＬＫとは独立に実行することができる。すなわち、（１）ラッチ８９０９と８９１３を通る制御走査、（２）ドメイン走査経路８９１５をバイパスして、ＳＳＩからラッチ８９１１を直接通るデータ走査である。
【０３９８】
本発明の例示の実施態様についてこれまで説明したが、これは本発明の範囲を制限するものではなく、各種の実施態様で実施することができる。
【０３９９】
以上の説明に関して更に以下の項を開示する。
１．  集積回路がその上に製作されている半導体チップを備える電子装置であって、
前記集積回路は、前記集積回路の通常動作機能を実行する機能回路と、前記機能回路の機械状態に関する情報を与える補助機能を実行する補助回路とを備え、前記補助回路は、前記集積回路に外部からアクセスして前記補助機能の外部制御を可能にする入力を持つ状態機械回路を備え、
前記補助回路は、前記機能回路を通して分配されかつ前記機能回路の各部分と結合して動作しかつ試験方式に従って動作を実行できる複数の試験構造を含み、各前記試験構造は、前記集積回路回路内にそれぞれ組み込まれていて前記試験構造を制御することができる制御インターフェースを備え、
前記補助回路は、前記状態機械回路と前記試験構造との間をインターフェースして前記制御インターフェースを動作させるのに用いる制御信号を与えるアダプタ回路と、前記機能回路全体に物理的に分配された複数のラッチ回路とを更に備え、各前記ラッチ回路は前記アダプタ回路と前記制御インターフェースのそれぞれの間に接続して前記制御信号を選択的にラッチしまた各制御インターフェースを動作させるのに用いるラッチされた制御信号を与える、
電子装置。
【０４００】
２．  集積回路がその上に製作されている半導体チップを備える電子装置であって、
前記集積回路は、前記集積回路の通常動作機能を実行する機能回路と、前記機能回路の機械状態に関する情報を与える補助機能を実行する補助回路とを備え、前記補助回路は、前記機能回路の各部分を通して延びまた結合して動作する複数の走査経路部分を持って前記機能回路を通して第１クロック速度でデータを走査する走査経路を備え、前記機能回路は、前記第１クロック速度とは異なる第２クロック速度で動作して前記通常動作機能を実行し、
前記補助回路は、前記機能回路全体に物理的に分配されかつ前記機能回路の各部と結合して動作する複数のクロック制御回路を備え、各前記クロック制御回路は残りの前記クロック制御回路とは独立に動作して、結合する走査経路部で用いる前記第１クロック速度を持つ第１クロック信号と前記機能回路の結合する部分が用いる前記第２クロック速度を持つ第２クロック信号との選択された方を供給し、また前記補助回路は前記クロック制御回路にクロック選択信号を与えるクロック選択回路と、前記機能回路全体に物理的に分配される複数のラッチ回路を備え、各前記ラッチ回路は前記クロック選択回路と前記クロック制御回路のそれぞれとの間に接続して前記クロック選択信号を選択的にラッチしまたラッチされたクロック選択信号を各クロック制御回路に与える、
電子装置。
【０４０１】
３．  集積回路がその上に製作されている半導体チップを備える電子装置であって、
前記集積回路は、前記集積回路の通常動作機能を実行する機能回路と、前記機能回路の機械状態に関する情報を与える補助機能を実行する補助回路とを備え、前記補助回路は、前記機能回路の各部分を通して延びまた結合して動作する複数の走査経路部分を持って前記機能回路を通して第１クロック速度でデータを走査する走査経路を備え、前記機能回路は前記第１クロック速度とは異なる第２クロック速度で動作して前記通常動作機能を実行し、
前記補助回路は、前記機能回路全体に物理的に分配されかつ前記機能回路の各部と結合して動作する複数のクロック制御回路を備え、各前記クロック制御回路は残りの前記クロック制御回路とは独立に動作して、結合する走査経路部が用いる前記第１クロック速度を持つ第１クロック信号と前記機能回路の結合する部分が用いる前記第２クロック速度を持つ第２クロック信号との選択された方を供給し、また前記補助回路は、前記クロック制御回路に結合して、前記各クロック制御回路が供給するクロック速度を自由に変更できるアンロックされた状態と前記クロック回路が供給するクロック速度を変更できないロックされた状態との間で各前記クロック制御回路を選択的に切り替えることができるようにする走査経路を更に備える、
電子装置。
【０４０２】
４．  エミュレーション装置１１であって、共通の制御情報８８０１をエミュレーション装置が分割されている複数の各クロックドメイン１２１３、１２１５、１２１７に分配し、またクロックドメインに個別のクロック制御８９０５、８９０７、８９１３を与える。
【０４０３】
関連資料との相互参照
以下に列挙する関連譲渡特許資料を引例としてここに示す。
資料番号                  ＰＴＯ参照                      出願日
ＴＩ−１２０３３    特許番号４，８６０，２９０        ０６／０２／１９８７
ＴＩ−１２４５１    特許番号５，１０９，４９４        １２／３１／１９８７
ＴＩ−１２５４３    特許番号５，１０１，４９８        １２／３１／１９８７
ＴＩ−１４０８３    一連番号０８／００１，９１５      ０５／０４／１９８９
ＴＩ−１４１４７    一連番号０７／９１８，９０２      ０５／０４／１９８９
ＴＩ−１４０７９    一連番号０７／３４７，６０５      ０５／０４／１９８９
ＴＩ−１４０８０    特許番号５，０７２，４１８        ０５／０４／１９８９
ＴＩ−１４０８１    特許番号５，１４２，６７７        ０５／０４／１９８９
ＴＩ−１４０８２    特許番号５，１５５，８１２        ０５／０４／１９８９
ＴＩ−１４１４５    一連番号０７／９６７，９４２      ０５／０４／１９８９
ＴＩ−１４１４１    一連番号０７／８４６／４５９      ０７／３１／１９８９
ＴＩ−１４１４２    一連番号０７／８３２，６６１      ０７／３１／１９８９
ＴＩ−１４１４３    一連番号０７／８２７，５４９      ０７／３１／１９８９
ＴＩ−１４２８２    一連番号０７／９４９，７５７      ０７／３１／１９８９
ＴＩ−１４３０８    一連番号０７／９７９，３９６      ０７／３１／１９８９
ＴＩ−１２０１６    一連番号０８／１０８，７７５      ０９／０７／１９８８
ＴＩ−１３３７１    一連番号０８／０８７，０２０      ０９／０７／１９８８
ＴＩ−１３３６３    特許番号５，０８４，８７４        ０９／０７／１９８８
ＴＩ−１２０１５    特許番号４，８７２，１６９        ０３／０６／１９８７
ＴＩ−１２６９８    一連番号０７／４４０，４５４＊    ０９／０４／１９８７
ＴＩ−１４３１２    特許番号５，２３７，６７２        ０７／２８／１９８９
ＴＩ−１４３１５    一連番号０７／３８７，５６９＊    ０７／２８／１９８９
ＴＩ−１４３１６    一連番号０７／３８７，４５５＊    ０７／２８／１９８９
ＴＩ−１４３２０    一連番号０７／３８６，８５０＊    ０７／２８／１９８９
ＴＩ−１３４９５    特許番号５，２３３，６９０        ０７／２８／１９８９
ＴＩ−１１３９８    特許番号５，１４０，６８７        １２／３１／１９８６
ＴＩ−１５４４５    不明
ＴＩ−１９０８５    不明
＊＝放棄
【０４０４】
例えば、米国特許５，０７２，４１８の概要は次のとおりである。なお、ここで図面１〜２５、及び２８図は対応日本  平２−１１７３３６（公開公報  平３−６３８２６）の引用であり、２６，２７，２９〜４３図は、図面の簡単な説明である。
【０４０５】
（産業上の利用分野）
本発明はデータ処理装置、およびそれらを製作操作するための電子処理・制御装置ならびに方法に関する。
【０４０６】
（従来の技術）
マイクロプロセッサ装置はデジタルプロセッサ用の中央処理装置もしくはＣＰＵであって、米国特許第３，７５７，３０６号（発明者ガリーＷ．ブーン、特許権者テキサスインスツルメンツ社）に示すようにＭＯＳ／ＬＳＩ技術により製作された単一の半導体集積回路もしくは“チップ”内に格納されるのが普通である。ブーン特許は並列ＡＬＵ、データとアドレス用レジスタ、命令レジスタ、および制御デコーダを含むシングルチップ８ビットＣＰＵを示し、上記部品は全てフォンノイマンアーキテクチャーを使用しデータ、アドレス、命令用の双方向並列バスを使用して相互接続される。米国特許第４，０７４，３５１号（発明者ガリーＷ．ブーン、ミカエルＪ．コクラン、権利人テキサスインスツルメンツ社）は、４ビット並列ＡＬＵとその制御回路を備え、オンチップＲＯＭ（プログラム記憶用）とオンチップＲＡＭ（データ記憶用）がハーバードアーキテクチャー形に構成されたシングルチップ“マイクロコンピュータ”型装置を示しているマイクロプロセッサという用語は通常、プログラムとデータの格納に外部メモリを使用する装置を指し、一方マイクロコンピュータという用語はプログラムとデータを格納するにオンチップＲＯＭとＲＡＭを備えた装置を指すのが普通である。本発明を解説するに際して、“マイクロコンピュータ”という語は両方の形式の装置を包含し、“マイクロプロセッサ”の方は主としてオンチップＲＯＭのないマイクロコンピュータを指すものとする。然しながら、上記用語は当該技術分野では互いに両用されることが多いため、本文中の解説ではこれら用語の一方に代えて他方を使用する場合に本発明の特徴を限定するものと考えるべきではない。
【０４０７】
今日のマイクロコンピュータは、全体として２つの類別即ち汎用マイクロプロセッサと専用マイクロコンピュータ／マイクロプロセッサに分類することができる。モトローラ社により製作されるＭ６０２０の如き汎用マイクロプロセッサは広範囲のタスクの何れも実現できるようにユーザがプログラミング可能なように設計されているから、パソコンの如き装置内の中央処理装置として使用されることが多い。かかる汎用マイクロプロセッサは広範囲の演算論理機能に対しては優れた性能を備えているが、かかる機能のうちの一つに特定して設計もしくは適応させられていないことはいうまでもない。それと対照的に、専用マイクロコンピュータはユーザがそのためにマイクロコンピュータを使用しようとする所定の演算論理機能に対して性能を向上させるように設計されている。マイクロコンピュータの一次的機能を知ることによって、設計者は専用マイクロコンピュータによる特定機能の性能が、使用者が作成したプログラムにかかわりなく、汎用マイクロコンピュータによると同一の機能性能を大きく上廻るようにマイクロコンピュータを構成することができる。
【０４０８】
著しく向上した速度で専用マイクロコンピュータで実行可能なかかる機能の一つはデジタル信号処理であって、殊にデジタルフィルタの使用と高速フーリエ変換の実行に必要とされる計算である。かかる計算は整数乗算、多重ビットシフト、乗加算の如き高次の反復演算より構成されるために、専用マイクロコンピュータは、特にこれら反復機能に適応できるように構成することができる。かかる専用マイクロコンピュータの一つは米国特許第４，５７７，２８２号（権利者テキサスインストルメンツ社）に解説されているが、参考のため本文中に組込んである。同特許における如くこれらの計算用にマイクロコンピュータを特殊な形で設計することによって汎用マイクロコンピュータに比べて十分な性能の向上が得られ、その結果、かかる専用マイクロコンピュータを音声画像処理の如きリアルタイム用途に使用することが可能になる。
【０４０９】
デジタル信号処理分野ではその計算度が高いために、メモリアクセス動作も幾分激しい。従って、デジタル信号処理機能を実行するさいのマイクロコンピュータの全体性能は単位時間あたりに実行される特定計算数によって決定されるだけでなく、マイクロコンピュータがシステムメモリからデータを検集し、同メモリに対してデータを格納することの可能な速度によっても規定される。上記米国特許第４，５７７，２８２号中に記載のものの如く、従来の専用マイクロコンピュータはハーバードアーキテクチャーの修正バージョンを使用しているため、データメモリに対するアクセスはプログラムメモリのアクセスから独立に、しかもそれと同時に行うことができる。かかるアーキテクチャーがその性能を追加的に向上させることはいうまでもない。
【０４１０】
技術と市場の増加する需要は、今日、処理装置、アプリケーションシステム、およびそれらの操作と製造方法について更に一層の構造的ならびに処理上の向上を望ましいものとしている。
（発明が解決しようとする課題）
全体として、本発明の一形態はコンテキスト信号に応答しそのコンテキスト信号により確認される代替的な処理コンテキスト内が動作可能な電子プロセッサを含むデータ処理装置である。第１と第２のレジスタが上記データ処理装置に接続されることによって一つの処理コンテキストに参加すると共に、別の処理コンテキストからの情報をそこに復帰するまで保持する。コンテキスト切換回路が上記第１と第２のレジスタに接続され、処理コンテキストに応じて、レジスタの電子プロセッサ間での入出力動作を選択的に制御するようになっている。
本発明のその他の形の装置、システム、および方法も本文中に開示する。
本発明の特徴を成すと思われる新規な特徴は添附請求範囲中に提示する。本発明の実施例と共にその他の特徴と利点は図面と相俟って以下の詳細な説明より最も良く理解されるはずである。
【０４１１】
（実施例）
アーキテクチャ全体図はまずデジタル信号処理装置１１の望ましい実施例を示す。
図１Ａと図１Ｂのデジタル信号処理装置はハーバード形アーキテクチャーによるもので、プログラムとデータにつき、２つの別個のメモリバス構造を維持することによって処理能を最大にしてフルスピードで実行できるようにしてある。上記２個の空間の間をデータを転送させる命令が含まれる。
装置１１はプログラムアドレス指定回路１３とプロセッサを備える電子計算回路１５を有する。計算回路１５は、図１Ｂのデータメモリ２５から取出されるか即値命令から導出された１６ビットワード、あるいは乗算器２７の３２ビットの結果を使用して演算する汎用演算装置である。演算命令を実行する他に、ＡＬＵ２１はプール演算を実行することができる。累算器２３はＡＬＵ２１からの出力を記憶し、通路２９を介して第２の入力をＡＬＵ２１に提供する。累算器２３は図においては３２ビット長であって上位ワード（３１〜１６ビット）と下位ワード（１５〜０ビット）に分割される。累算器の上下ワードをデータメモリ２５内に記憶する命令が設けられる。累算器２３が高速に一時記憶できるように、３２ビットの累算器バッファＡＣＣＢ３１が存在する。
【０４１２】
主ＡＬＵ２１の他に、図１Ｂには周辺論理装置（ＰＬＣ）４１が存在し、累算器２３のコンテキストに影響を及ぼさずにメモリロケーション上に対して論理演算を行う。ＰＬＣ４１は、高速制御のために拡張ビット操作能力を備えており、ビットのセット、クリア、ならびに制御状態レジスタの動作と関連するテストを簡単化している。
図１Ａの乗算器２７は、１回の命令サイクルで３２ビットの結果と共に１６×１６ビットの２つの補数乗算を実行する。
乗算器は次の３つの要素から成る。即ち、一時ＴＲＥＧＯレジスタ４９に、積レジスタＰＲＥＧ５１、および乗算器アレイ５３である。１６ビットＴＲＥＧＯレジスタ４９は被乗数を一時記憶する。ＰＲＥＧレジスタ５１は３２ビットの積を記憶する。乗算器の値はＭＡＣ／ＭＡＣＤ命令を使用する場合、データメモリ２５、プログラムメモリ６１から来るか、ＭＰＹＫ（乗算即値）命令ワードから即座に導き出されるかの何れかである。
プログラムメモリ６１はアドレス指定入力でプログラムアドレスバス１０１Ａに接続される。メモリ６１はそのリード／ライト入出力でプログラムデータバス１０１Ｄに接続される。高速オンチップ乗算器２７によって装置１１は畳み込み、相関化、フィルタリングの如き基本的なＤＳＰ操作を効率的に実行することができる。
【０４１３】
プロセッサのスケーリングシフタ６５は、１６ビット入力がマルチプレクサ（ＭＵＸ）７３を介してデータバス１１１Ｄに接続され、３２ビットの出力がマルチプレクサ７７を介してＡＬＵ２１に接続されている。スケーリングシフタ６５は命令によりプログラミングされるかシフトカウントレジスタ（ＴＲＥＧＩ）８１内に規定されるように入力データ上に０〜１６ビットの左移行桁送りを行う。出力のＬＳＢ（最下位ビット）はゼロで満たされ、ＭＳＢ（最上位ビット）は図１Ｂの一組のレジスタ８５内の状態レジスタＳＴ１の符号拡張モードビットＳＸＭの状態に応じてゼロで満たすか符号拡張するかすることができる。
桁送り能力を追加することによってプロセッサ１１は数値スケーリング、ビット抽出、拡張演算および桁あふれを防止することができる。割込みとサブルーチン呼出し中にプログラムカウンタ９３の内容をセーブするために８レベルに至るまでのハードウエアスタック９１を設ける。プログラムカウンタ９３はＭＵＸ９５を介してプログラムアドレスバス１０１Ａもしくはプログラムデータバス１０１Ｄからコンテキストの変化に対して選択的にロードされる。ＰＣ９３はアドレスバス１０１Ａに書込まれるかスタック９１上に押込まれる。割込みが行われると、一定の戦略レジスタ（累算器２３、積レジスタ５１、ＴＲＥＧ０４９、ＴＲＥＧ１、ＴＲＥＧ２、そしてレジスタ１１３ではＳＴ０、ＳＴ１、ＰＨＳＴ、ＡＲＣＲ、ＩＮＤＸおよびＣＭＰＲ）が深部スタック上へ押込まれ割込み復帰と共にポップアップされることによって、オーバーヘッドがゼロで割込みコンテキストが切換えられる。これらレジスタのコンテキストをセーブする働きをする割込みはマスキング可能である。
【０４１４】
図１Ａと図１Ｂに示す機能をブロック線図はプロセッサ内の主要ブロックとデータ経路を概略したものである。上記機能ブロックの詳細な以下に提示する。図１Ａと図１Ｂに使用する記号の定義についてはテーブルＡ−１の内部ハードウエアの要約を参照されたい。
プロセッサアーキテクチャーは２つの対状の大きなバスの周辺に構築される。（即ち、プログラムバス１０１Ａと１０１Ｄ、およびデータバス１１１Ａと１１１Ｄ）プログラムバスはプログラムデータバス１０１Ｄ上のプログラムメモリからの命令コードと即値オペランドを担う。プログラムメモリ６１に対するアドレスはプログラムアドレスバス１０１Ａ上に供給される。データバスはデータアドレスバス１１１Ａとデータバス１１１Ｄを含む。後の方のバス１１１Ｄは中央演算装置（ＣＡＬＵ）や補助レジスタファイル１１５やレジスタ８５の如き種々の要素をデータメモリ２５に相互接続する。プログラムバスとデータバス１０１、１１１は共にオンチップデータメモリ２５と内外部プログラムメモリ６１からのデータを１回のサイクルで乗算器に運び乗算／累算操作を行うことができる。コアアドレスデコーダ１２１はデータアドレスバス１１１Ａに接続され、レジスタ８５とその他の全てのアドレス指定可能なＣＰＵコアレジスタのアドレス指定を行う。
プロセッサ１３、１５は高次の並列性を備えていて、例えば、データがＣＡＬＵ１５により演算中に演算が補助レジスタ演算（ＡＲＡＵ）１２３内で実行される利点がある。かかる並行演算処理の結果、強力な演算操作とビット操作の組が得られ、それらは全て単一の機械サイクル内で実行される。
【０４１５】
プロセッサの内部のハードウエアは１サイクル１６×１６ビットの乗算と、データ桁送り、およびアドレス操作を含んでいる。
テーブルＡ−１は内部ハードウエアの摘要を示す。この摘要テーブルは、内部処理要素、レジスタ、およびバスを備えるが、各機能群内でアルファベット化される。
【０４１６】
テーブルＡ−１          内部ハードウエア
装置            記号                    作    用
累算器      ＡＣＣ（３２）        ３２ビット累算器でＡＣＣＨ
ＡＣＣＨ（16）        （上部累算器）とＡＣＣＬ
ＡＣＣＬ（16）        （下部累算器）の２つの半分にアクセス可能。
ＡＬＵの出力をストアするために使用され
る。
累算器                            累算器の３２ビット内容を一時ストアする
バッファ    ＡＣＣＢ（３２）      ために使用されるレジスタ。
このレジスタはＡＬＵに戻る直接の経路を
備えているからＡＣＣと四則演算もしくは
論理演算可能である。
【０４１７】
演算装置    ＡＬＵ                累算器に給電する２つの３２ビットの入力
ポートと１つの３２ビット出力ポートを有
する３２ビットの２の補数演算装置。
補助        ＡＲＡＵ              補助、インデックスおよび比較レジスタを
演算装置                          入力として使用して間接アドレスを計算す
るために使用される１６ビットの無符号演
算装置。
補助        ＡＲＣＲ              間接アドレスを比較するための制約として
レジスタ                          使用中使用される１６ビットレジスタ。
（比較）
補助        ＡＵＸＲＥＧＳ        間接データアドレスポインター、一時的格
レジスタ                          納、もしくはＡＲＡＵによる整数演算処理
（ファイル）                      に使用される８個の１６ビット補助レジス
タ（ＡＲ０−ＡＲ１）を含むレジスタファ
イル。
【０４１８】
補助              ＡＲＰ          現在選択された補助レジスタに対するポイ
レジスタ                          ンタとして使用される８ビットレジスタ。
ポインタ
ブロックリピート  ＢＲＣＲ        ブロックが反復される回数に対する限定と
カウンタ                          して使用される１６ビットメモリマップカ
レジスタ                          ウンタレジスタ。
ブロックリピート  ＰＡＥＲ        反復中のコード区画の最終アドレスを含む
カウンタ                          １６ビットメモリマッピングレジスタ。
レジスタ
ブロックリピート  ＰＡＳＲ        反復されるコード区画の開始アドレスを含
アドレス開始                      む１６ビットメモリマッピングレジスタ。
レジスタ
【０４１９】
バス              ＢＩＭ          データをデータバスとプログラムバス間で
インターフェース                  パスさせるために使用されるバッファ付イ
モジュール                        ンターフェース
中央              ＣＡＬＣ        ＡＬＵ、乗算器、累算器、スケーリングシ
演算装置                          フタの集まり
円形バッファ      ＣＢＣＲ        円形バッファをイネーブル／ディスエーブ
制御レジスタ                      ルとし、どの補助レジスタが円形バッファ
にマッピングされるかを規定するために使
用される８ビットレジスタ。
円形バッファ      ＣＢＥＲ１      円形バッファ最終アドレスを示す２個の１
最終                              ６ビットレジスタ。ＣＢＥＲ１とＣＢＥＲ
アドレス                          ２は円形バッファ１と２にそれぞれ関連す
る。
円形バッファ      ＣＢＳＲ１      円形バッファ開始アドレスを示す２個の１
開始              ＣＢＳＲ２      ６ビットレジスタ。ＣＢＳＲ１／ＣＢＳＲ
アドレス                          ２は円形バッファ１と２をそれぞれ関連し
ている。
【０４２０】
データ          ＤＡＴＡ          データをルーティングさせるために使用さ
バス                              れる１６ビットバス。
データ          ＤＡＴＡ          このブロックはコアと共に使用され特定の
メモリ          ＭＥＭＯＲＹ      デバイス種類に規定されるデータメモリを
さす。データメモリ空間内でアクセスされ
るオンチップとオフチップメモリの双方を
さす。
データメモリ    ＤＭＡ            １枚のデータページ内の即値相対アドレス
アドレス                          を格納する７ビットレジスタ。
即値レジスタ
データメモリ    ＤＰ（９）        現在ページのアドレスを含む９ビットレジ
ページ                            スタ。
【０４２１】
ポインタ                          データページはそれぞれ１２８ワードでア
ドレス指定可能なデータメモリ空間の５１
２ページが得られる。（幾つかのロケーシ
ョンが保留される）
連結データ      ＤＡＴＡ          データメモリに対する直接アドレスを担う
メモリアドレス  ＡＤＤＲＥＳＳ    １６ビットバスで、ＤＰレジスタと命令の
バス                              ワクのＬＳＢを連結したもの（ＤＭＡ）
ダイナミック    ＤＢＭＲ          ＰＬＵに対する入力として使用されるメモ
ビット  操作                      リマッピングした１６ビットレジスタ。
レジスタ
ダイナミック    ＴＲＥＧ２        ＢＩＴＴ命令に対するダイナミックビット
ビットポインタ                    ポインタを保持する４ビットレジスタ。
ダイナミック    ＴＲＥＧ１        ＡＬＵに対するデータ入力に対するダイナ
シフトカウント                    ミック予備スケーリングシフトを保持する
５ビットレジスタ。
【０４２２】
グローバル      ＧＲＥＧ（８）    グローバルメモリ空間の大きさを割当てる
メモリ割合                        ための８ビットのメモリマッピングレジス
レジスタ                          タ。
割込            ＩＦＲ（16）      アイティブロー割込みをラッチするために
クラッグ                          使用される１６ビットフラッグレジスタ。
レジスタ                          ＩＦＲはメモリマッピングしたレジスタで
ある。
割込み          ＩＭＲ（16）      割込みをマッピングするために使用される
マスク                            １６ビットのメモリマッピングレジスタ。
レジスタ
マルチプレクサ  ＭＵＸ            １本のバスもしくは実行装置についてオペ
ランドのソースを選択するために使用され
るバスマルチプレクサ。
ＭＵＸは命令を介して接続される。
【０４２３】
乗算器  ＭＵＬＴＲＬＩＥＲ        １６×１６ビットの並列乗算器。
周辺            ＰＬＵ            ＣＡＬＵレジスタの内容と干渉せずにデー
論理装置                          タロケーションに対して直接長い即値オペ
ランドもしくはＤＢＭＲの内容の何れから
かの論理操作を実行する１６ビット論理装
置。
プリスケーラ    ＣＯＵＮＴ        プリスケーリング操作についてカウント値
カウントレジスタ                  を含む４ビットレジスタ。このレジスタは
データを予備スケーリングする際に使用さ
れる時に命令もしくはダイナミックシフト
の何れか一方よりロードされる。
ＢＩＴとＢＩＴＴ命令と相俟って命令のダ
イナミックビットポインタからロードされ
る。
【０４２４】
積              ＰＲＥＧ（３２）  乗算器の積上保存するために使用される３
レジスタ                          ２ビット積レジスタ。
ＰＲＥＧの高低次ワードもＳＰＨ／ＳＰＬ
（アストアレジスタ高／低）命令を使用し
て個々にアクセスすることができる。
積              ＢＰＲ（３２）    積レジスタの一時格納用に使用される３２
レジスタ                          ビットレジスタ。このレジスタはＡＬＵに
バッファ                          対する直接入力することもできる。
【０４２５】
プログラム      ＰＲＯＧＤＡＴＡ  命令（およびＭＡＣとＭＡＣＤ命令に対す
バス                              るデータ）をルーティングするために使用
される１６ビットバス。
プログラム      ＰＣ（16）        プログラムメモリを順次アドレス指定する
カウンタ                          ために使用される１６ビットプログラムカ
ウンタ。ＰＣは常に実行される次の命令の
アドレスを含んでいる。
ＰＣの内容はそれぞれの命令解読操作に続
いて更新される。
プログラム      ＰＲＯＧＲＡＭ    このブロックはコアと共に使用され特定の
メモリ          ＭＥＭＯＲＹ      デバイス種類内に規定されるプログラムメ
モリを指す。プログラムメモリ空間内でア
クセスされるオンチップとオフチップメモ
リブロックの処方を指す。
プログラム      ＰＲＯＧ          プログラムメモリアドレスを担う１６ビッ
メモリ          ＡＤＲＥＳＳ      トバス。
リアドレスバス
予備          ＰＲＥＳＣＡＬＥＲ  ＡＬＵ内に到来するデータをプリスケール
スケーリング                      するために使用される０−１６ビットの左
シフタ                            バレルシフタ。多精度演算用にデータを整
合させるためにも使用される。このシフタ
はＡＣＣの０−１６ビット右バレルシフタ
としても使用される。
ポスト          ＰＯＳＴ          ＣＡＬＵから出てゆくスケールデータを後
スケーリング    ＳＣＡＬＥＲ      処理するために使用される０−７ビット左
シフタ                            バレルシフタ。
【０４２６】
積            Ｐ−ＳＣＡＬＥＲ    固定点演算法を使用する際（乗算操作中で
シフタ                            取得される）余分の符号ビットを除去する
するために使用される０，１，４ビット左
シフタ。積をスケールダウンして累算プロ
セス中のオーバーフローを回避するために
使用される６ビット右シフタ。
リピート      ＲＰＴＣ（16）      一命令の反復実行を制御するための８ビッ
カウンタ                          トカウンタ。
スタック      ＳＴＡＣＫ          割込みと呼出し中にＰＣをストアするため
に使用される８×１６ハードウエアスタッ
ク。ＡＣＣＬとデータメモリ値もスタップ
からポップアップされたものの上に押し込
まれる。
状態          ＳＴ０，ＳＴ１，    状態ビットと制御ビットを含む３つの１６
レジスタ      ＰＭＳＴ，          ビット状態レジスタ。
ＣＢＣＲ
一時          ＴＲＥＧＯ          乗算器用のオペランドを一時維持する１６
被乗数                            ビットレジスタ。
ブロック      ＢＭＡＲ            ブロックが移動するか乗算が累積する際に
移動                              アドレス値を保持する１６ビットレジスタ
アドレスレジスタ                  。
テーブルＡ−２                メモリマッピングレジスタ
名称            アドレス                  説        明
ＤＥＣ  ＨＥＸ
０−３  ０−３          保留
ＩＭＲ          ４      ４        割込マスクレジスタ
ＧＲＥＧ        ５      ５        ブローバルメモリ割当レジスタ
ＩＦＲ          ６      ６        割込フラッグレジスタ
ＰＭＳＴ        ７      ７        プロセッサモード状態レジスタ
ＲＰＴＣ        ８      ８        リピートカウンタレジスタ
【０４２７】
ＢＲＣＲ        ９      ９        ブロックリピートカウンタレジスタ
ＰＡＳＲ      １０      Ａ        ブロックリピートプログラムアドレス開始
レジスタ
ＰＡＥＲ      １１      Ｂ        ブロックリピートプログラムアドレス終了
レジスタ
ＴＲＥＧ０    １２      Ｃ        被乗数用一時レジスタ
ＴＲＥＧ１    １３      Ｄ        ダイナミックシフトカウント用一時レジス
タ
ＴＲＥＧ２    １４      Ｅ        ダイナミックビットテスト内のビットポイ
ンタとして使用される一時レジスタ。
ＤＢＭＲ      １５      Ｆ        ダイナミックビット操作レジスタ
ＡＲ０        １６    １０        補助レジスタ０
ＡＲ１        １７    １１        補助レジスタ１
ＡＲ２        １８    １２        補助レジスタ２
ＡＲ３        １９    １３        補助レジスタ３
ＡＲ４        ２０    １４            〃      ４
ＡＲ５        ２１    １５            〃      ５
ＡＲ６        ２２    １６        補助レジスタ６
ＡＲ７        ２３    １７            〃      ７
ＩＮＤＸ      ２４    １８        インデックスレジスタ
ＡＲＣＲ      ２５    １９        補助レジスタ比較レジスタ
ＣＢＳＲ１    ２６    １Ａ        円形バッファ１開始アドレスレジスタ
ＣＢＥＲ１    ２７    １８        円形バッファ１最終アドレスレジスタ
ＣＢＥＲ２    ２８    １Ｃ        円形バッファ２開始アドレスレジスタ
ＣＢＥＲ２    ２９    １Ｄ        円形バッファ２最終アドレスレジスタ
ＣＢＣＲ      ３０    １Ｅ        円形バッファ制御レジスタ
ＢＭＡＲ      ３１    １Ｆ        ブロック移動アドレスレジスタ。
【０４２８】
プロセッサ１３、１５は全部で６４Ｋワードのデータメモリ２５をアドレス指定する。
データメモリ２５は９６Ｋデータメモリ空間内にマッピングされ、オンチッププログラムメモリが６４Ｋプログラムメモリ空間内にマッピングされる。
１６ビットデータアドレスバス１１１Ａは次の２つの方法の１つでデータメモリ２５のアドレス指定を行う。
１）  直接アドレス指定モード（例えばＡＤＤ  ０１０ｈ）を使用する直接アドレスバス（ＤＡＢ）によって、
２）  間接アドレスモード（例えばＡＤＤ*）を使用する補助レジスタファイルバス（ＡＦＢ）によって、
３）  オペランドは即値アドレス指定モードによりプログラムカウンタの内容によってもアドレス指定される。
【０４２９】
直接アドレス指定モードでは、９ビットのデータメモリページポインタ（ＤＰ）１２５が５１２（１２８ワード）ページのうちの１つを指示する。ＭＵＸ１２６はコマンドによってＤＰポインタレジスタ部分１２５のバス１０１Ｄもしくは１１１Ｄの何れかを選択する。命令の７つのＬＳＢ１２７によりプログラムデータバス１０１Ｄから指定されたデータメモリアドレス（ｄｍａ）はページ内の所望ワードを指示する。ＤＡＢ上のアドレスは９ビットＤＰを７ビットｄｍａと連結することによって形成される。ＭＵＸ１２９はコマンドによってＡＲＡＵ１２３出力か連結（ＤＰ，ｄｍａ）出力の何れかをデータアドレスバス１１１Ａに選択的に供給する。
間接アドレスモードにおいては、レジスタ１１５内の現在選択された１６ビット補助レジスタＡＲ（ＡＲＰ）がＡＦＢを介してデータメモリをアドレス指定する。選択された補助レジスタがデータメモリアドレスを提供し、データがＣＡＬＵ１５により操作中に、補助レジスタの内容はＡＲＡＵ１２３を介して操作される。
【０４３０】
データメモリアドレスマップは、グローバルメモリインターフェースを介して追加３２Ｋワード内でページングすることによって１６ビットアドレスバスの６４ワードアドレスリーチを超えて拡張することができる。ＧＲＥＧレジスタを適当な値でロードすることによって、最高位アドレスからスタートし下降するローカルデータメモリ上に追加的なメモリをオーバレイすることができる。この追加メモリはアクティブローのＢＲ−ピンによってローカルメモリから区別される。
即値オペランドを使用する場合には、命令語自体内か、１６ビット即値オペランドの場合には、その命令語に続くワード内の何れかに格納する。
【０４３１】
補助レジスタ１１５内の８個の補助レジスタ（ＡＲ０−ＡＲ７）はデータメモリ２５を間接的にアドレス指定するか一時的にデータをストアするために使用される。間接補助レジスタアドレス指定によって、命令オペランドのデータメモリアドレスを補助レジスタの一つに配置することができる。これらのレジスタはそれぞれＡＲ０〜ＡＲ７と命名した０〜７の値をロードされる３ビット補助レジスタポインタ（ＡＲＰ）によって指示される。ＭＵＸ１４４は入力がデータバス１１１Ｄはプログラムデータバス１０１Ｄに接続される。ＭＵＸ１４４は命令によって操作され２本のバス１１１Ｄと１０１Ｄのうちの一つからＡＲＰ１４１の値を得るようになっている。補助レジスタ１１５とＡＲＰ１４１はデータメモリ２５、累算器２３、積レジスタ５１からか、命令内に規定された即値オペランドの何れかによってロードすることができる。これらのレジスタの内容もデータメモリ２５内にストアされるか主ＣＰＵに対する入力として使用することができる。
補助レジスタファイル（ＡＲ０−ＡＲ７）１１５は図１Ｂに示す補助レジスタ演算装置（ＡＲＡＵ）に接続される。ＡＲＡＵ１３２はレジスタ１１５内の現在補助レジスタをオートインデックスする一方、データメモリロケーションをアドレス指定することができる。＋／−かインデックスレジスタ１４３の内容によって索引付けすることができる。その結果、列もしくは行によって情報テーブルをアクセスするにはアドレス操作用の中央演算装置（ＣＡＬＵ）を要しないから、それを他の操作用に解放することができる。
【０４３２】
インデックスレジスタ１４３もしくは命令レジスタＩＲの８個のＬＳＢはＭＵＸ１４５を介してＡＲＡＵ１２３の入力の一つに選択的に接続される。ＡＲＡＵ１２３の他の入力はＭＵＸ１４７によって現在補助レジスタＡＲ（ＡＲＰにより指示される）から供給される。
上述の如く、中央演算装置（ＣＡＬＵ）１５は、１６ビットのプリスケーラスケーリングシフタ６５と、１６×１６ビットの並列乗算器２７と、３２ビット演算装置（ＡＬＵ）２１と、３２ビット累算器（ＡＣＣ）２３と、追加的なシフタ１６９、１８１（累算器２３と乗算器２７の両方の出力部）を含む。この部分はＣＡＬＵ部品とその機能を記述したものである。
【０４３３】
次のステップが典型的なＡＬＵ命令の実行の際に行われる。
１）  データがデータバス上のＲＡＭ２５から取出される。
２）  データはスケーリングシフタ６５と演算が実行されるＡＬＵ２１を通過する。
３）  その結果は乗算器２３内へ移される。
ＡＬＵ２１に対する１入力が累算器２３から提供され他方の入力は累算器２７の積レジスタ（ＰＲＥＧ）５１、積レジスタバッファ（ＢＰＲ）１８５、累算器バッファ（ＡＣＣＢ）３１からか、データメモリ２５もしくは累算器２３からロードされるスケーリングシフタ６５と１８１から選択される。
【０４３４】
スケーリングシフタ６５は１６ビット入力がＭＵＸ７３を介してデータバス１１１Ｄに接続され、３２ビット出力がＭＵＸ７７を介してＡＬＵ２１へ接続されることが有利である。スケーリングシフタプリスケーラ６５はＣＯＵＮＴレジスタ１９９をロードすることによってプログラミングされるように、入力データ上に０〜１６ビットの左桁送りを行う。桁送りカウントは命令語内に埋込まれた定数かレジスタＴＲＥＧ１内の値によって指定される。プリスケーラ６５の出力のＬＳＢはゼロで満たされ、ＭＳＢは状態レジスタＳＴ１のＳＸＭ（符号拡張モード）ビット内にプログラミングされた状態に応じてゼロで満たされるか符号拡張することができる。
同じシフタ６５はＭＵＸ７３を介して累算器２３からのもう一つの入力路を備えている。この入力路を使用する際、シフタ６５は０〜１６ビットの右シフタとして働く。このためＡＣＣの内容を１サイクルで０から１６ビット右へ桁送りすることができる。
シフトアウトしたビットは失われ、シフトインビットはゼロであるかＳＸＭ状態ビットの値に応じて原始符号ビットのコピーの何れかである。
種々のシフタ６５、１６９、および１８１は数値スケーリング、ビット抽出、拡張精度演算、およびオーバーフローの防止を可能にする。
【０４３５】
３２ビットのＡＬＵ２１と累算器２３は広範囲の演算機能を実行し、その多数は１回のクロックサイクルで実行することが望ましい。一たんＡＬＵ２１内で演算が実行されると、その結果は累算器に転送され、そこで桁送り等の追加的な演算が行われる。ＡＬＵに入力されるデータはスケーリングシフタ１８１によってスケーリングすることができる。
ＡＬＵ２１はデータＲＡＭから取り出されるか即値命令から導き出された１６ビットワードについて演算する汎用演算装置である。通常の演算命令の他に、ＡＬＵはプール演算さえ実行可能である。上記した如く、ＡＬＵに対する１入力は累算器２３から提供され、他入力はＭＵＸ７７により選択的に供給される。ＭＵＸ７７は累算器バッファ（ＡＣＣＢ）３１を選択するか、２次的にスケーリングシフタ６５の出力（データＲＡＭもしくはＡＣＣから読出される）か、３次的に積スケーラ１６９の出力を選択する。積スケーラ１６９はＭＵＸ１９１により供給される。ＭＵＸ１９１は積レジスタＰＲＥＧ５１が、積レジスタバッファ１８５をスケーラ１６９として選択する。
【０４３６】
３２ビット累算器２３は２つの１６ビットを画に分割され、データバス１１１Ｄをすててデータメモリ２５へ格納する。累算器出力部のシフタ１８１は０〜７桁の左シフトを行う。このシフトはデータがデータバス１１１Ｄへ転送されて格納中に実行される。累算器２３の内容は不変のままである。累算器２３の上位ワード（１６−３１ワード）に対してポストスケーリングシフタ１８１が使用される場合、ＭＳＢは失われＬＳＢは下位ワード（１０−１５）からシフトインしたビットで満たされる。ポストスケーリングシフタ１８１が下位ワードについて使用される場合、ＬＳＢはゼロで満たされる。大きなダイナミックなレンジを要する用途に対しては浮動小数点演算が設けられる。ＮＯＲＭ（正規化）命令は左シフトを実行することによって累算器２１内に含まれる固定小数点数を正規化するために使用される。一時レジスタＴＲＥＧ１８１の４ビットは、ＬＡＣＴ／ＡＤＤＴ／ＳＵＢＴ（シフトがＴＲＥＧ１により指定された累算器からのロード／加算／減算）のためにスケーリングシフタ６５内の可変シフトを規定する。これらの命令は数がデノーマライズされる必要がある、即ち浮動小数点から固定小数点へと変換される必要がある浮動小数点演算に有効である。それらは、同様にして、フィルタ内へ移行する自動利得制御（ＡＧＣ）の実行の如きアプリケーションにも有効である。ＢＩＴＴ（ビットテスト）命令は一時レジスタＴＲＥＧ２１９５の４つのＬＳＢ内に含まれた値に基づいてデータメモリの１ワードの１ビットをテストする。
レジスタＴＲＥＧ１とＴＲＥＧ２はデータバス１１１Ｄにより供給される。ＭＵＸ１９７はＴＲＥＧ１、ＴＲＥＧ２から、もしくはプログラムデータバス１０１Ｄからの値を選択し、それらの一つをＣＯＵＮＴレジスタ１９９に送る。ＣＯＵＮＴレジスタ１９９はスケーリングシフタ６５に接続され、シフタの値を判断する。
【０４３７】
累算器２３の１サイクルの０−１６ビットの右シフトによって累算器を効率的に整合させて多精度の演算を行うことができる。これは累算器上の３２ビット一時バッファＡＣＣＢと積レジスタ上のＢＰＲと一緒になって多精度演算におけるＣＡＬＵの有効性を向上させる。累算器のバッファレジスタ（ＡＣＣＢ）は累算器を高速にセーブするための一時的格納場所を提供する。ＡＣＣＢはＡＬＵに対する入力としても使用することができる。ＡＣＣとＡＣＣＢは互いにストアしあうことができる。ＡＣＣＢの内容はＡＣＣに対してＡＬＵによってＡＣＣＢ（もしくはＡＣＣとＡＣＣＢの双方）内にストアされた大小の値と比較してパターン認識アルゴリズムに使用することができる。例えば、数字ストリング内の最大もしくは最小値はＡＣＣＢとＡＣＣの内容どうしを比較し、もしその条件が満足されれば、その後最小もしくは最大値を一つもしくは両方のレジスタ内に入力することによって発見することが有利である。積レジスタバッファ（ＢＰＲ）は積レジスタを高速セーブするための一時格納場所を提供する。ＢＰＲ内にストアされた値は設けられたシフタ１６９に対するシフトが指定された累算器に対して加算したり減算したりすることもできる。
【０４３８】
システムの制御はプログラムカウンタ９３、ハードウエアスタック９１、ＰＣ関連ハードウエア、外部リセット信号ＲＳ−、割込制御２３１に対する割込み、状態レジスタ、リピートカウンタによって行う。以下の節はシステム制御とパイプライン演算におけるこれら部品の各々の作用を説明したものである。
プロセッサは１６ビットプログラムカウンタ（ＰＣ）９３を備え、８深度ハードウエアスタック９１はＰＣをストアする。プログラムカウンタ９３は読出し命令において内外部プログラムメモリ６１のアドレス指定を行う。スタック９１は割込みとサブルーチン中に使用される。
プログラムカウンタ９３はプログラムアドレスバス（ＰＡＢ）１０１Ａを介してオンチップかオフチップかのプログラムメモリ６１のアドレス指定を行う。ＰＡＢを経て、一命令がプログラムメモリ６１内でアドレス指定され、プログラムデータバス１０１Ｄを介してデータＰＬＡ２２１用の命令レジスタ（ＩＲ）内へロードされる。ＩＲがロードされると、ＰＣ９３は次の命令読出しサイクルを開始する態勢に入る。デューダＰＬＡ（プログラマブル論理アレイ）２２１はプロセッサ命令集会内の命令を事項するためにＭＵＸと全プロセッサ要素を制御するための出力を多数備えている。例えば、デコーダＰＬＡ２２１はコマンド信号をパイプラインコントローラ２２５に送る。後者はパイプライン化された処理演算を実行するための種々の出力も備えていて、プロセッサ要素は時間調整されるようになっている。パイプラインコントローラ２２５の出力はＣＡＬＬ、ＲＥＴＣリターン）、ＩＡＱ（割込取得）およびＩＡＣＫ（割込み確認）も含む。
【０４３９】
データ命令２５はＢＬＫＤ命令中にプログラムカウンタ９３によりアドレス指定される。プログラムカウンタ９３はデータブロックをデータメモリの一区画から別の区画へ移動させる。累算器２３の内容は“計算された飛越し”演算を実行するためにＰＣ９３内にロードすることができる。これはＢＡＣＣ（累算器内のアドレスに対する分岐）もしくはＣＡＬＡ（サブルーチン間接呼出し）命令を使用して実行することができる。
新たな読取りサイクルを実行するにはＰＣ９３をＰＣ＋１もしくは分岐アドレス（分岐、呼出し、割込みの如き命令の場合）の何れかをロードする。分岐が行われない特別の条件分岐の場合には、ＰＣは分岐即値のロケーションを越えてもう一度増分する。条件分岐の場合には、プロセッサは条件呼出しとリターンの全補数を有する。
プロセッサ１３、１５は４深度パイプラインによって演算する。
【０４４０】
図１Ｂの周辺論理装置（ＰＬＵ）は制御／状態レジスタもしくは任意のデータメモリロケーション内の多重ビットを直接セット、クリア、トグル、もしくはテストするために使用される。ＰＬＵは累算器もしくは積レジスタの内容に影響を与えずにデータメモリ値に対する直接論理経路を提供する。同ＰＬＵはレジスタ内の多重制御ビットをセットもしくはクリアしたりフラッグレジスタ内の多重ビットをテストしたりするために使用される。
ＰＬＵ４１はデータバス１１１Ｄを介してデータメモリ空間からオペランドを一つ取出し、第２のオペランドをＭＵＸ２２５を介してプログラムバス１０１Ｄ上の長い即値もしくはＤＢＭＲ（ダイナミックビット操作レジスタ）２２３の何れからか取出すことによって演算する。
ＤＢＭＲは先にデータバス１１１Ｄからロードされる。その後、ＰＬＵは２個のオペランド上の命令によって規定されるその論理演算を実行する。最後に、その結果はデータバス１１１Ｄを介して第１のオペランドが取出された同じデータロケーションへ書込まれる。
ＰＬＵはデータメモリ空間内の任意のロケーション内でビットを直接操作することを可能にする。この直接的なビット操作は１６ビット長の即値をあるデータロケーションに対してＡＮＤ，ＯＲ，ＸＯＲ処理もしくはロードすることによって処理される。例えば、ＣＢＣＲ（円形バッファ制御レジスタ）を初期化して円形バッファ１に対してはＡＲ１を、円形バッファ２に対してはＡＲ２を使用し、しかもそれら円形バッファを割込み可能としないためには、
【０４４１】
ＳＰＬＫ  ０２１ｈ，ＣＢＣＲ（周辺長即値をストアする）を実行する。
後に円形バッファ１と２を後に割込み可能とするにはＯＰＬＫ  ０８８ｈ，ＣＢＣＲ（ビット７とビット３をＣＢＣＲにセットする）
特定レジスタもしくはデータワード内の個々のビットをテストするためにはやはりＢＩＴ命令を介して行われるが、１データワードはＣＰＬＫ（周長即値を比較せよ）命令により特定パターンに対してテストすることができる。もしデータ値が長い即値と等しければ、ＴＣビットは１にセットされる。もし任意のＰＬＵ命令の結果がゼロであれば、ＴＣビットがセットされる。
ビットのセット、クリア、トグル機能は長即値の代わりに、１６ビットダイナミックレジスタＤＢＭＲ値によっても実行できる。これはＸＰＬ（データに対するＸＯＲ  ＤＢＭＲレジスタ）；ＯＰＬ（データに対するＯＲ  ＤＢＭＲレジスタ）およびＡＰＬ（データに対するＡＮＤ  ＤＢＭＲレジスタ）の３個の命令によって行われる。
プロセッサはプロセッサに割込む外部装置に対して利用可能な１６のマスキング可能なユーザ外部割込み（ＩＮＴ１６−ＩＮＴ１）を有する。内部割込みはシリアルポート（ＲＩＮＴとＸＩＮＴ）タイマ（ＴＩＮＴ）、パリティチェッカー（ＰＮＴＬとＰＮＴＨ）、およびソフトウェア割込み（ＴＲＡＰ）命令によって発生する。割込みは最優先順位を有するリセット（ＲＳ−）と最低優先順位を有するＩＮＴ１５によって優先順位をつけられる。
【０４４２】
割込み制御ブロック２３１はプログラムデータバス１０１Ｄを供給する。テーブルＡ−５には内外部割込み全体についてのベクトル位置と優先順位が示されている。ソフトウェア割込みについて使用されるＴＲＡＰ命令は優先順位がつけられないが、固有のベクトル配置を有するためここに含ませておく、それぞれの割込みアドレスは２つのロケーションによって隔てられ、分岐命令がそれらロケーション内に格納できるようになっている。
【０４４３】
テーブルＡ−５        割込みロケーションと優先順
名称        ロケーション            優先順位            作用
外部
【０４４４】
図１Ｂでは、バスインターフェースモジュールＢＩＭ２４１がデータバス１１１Ｄとプログラムデータバス１０１Ｄ間に接続される。ＢＩＭ２４１はコマンドによってデータをバス１０１Ｄと１１１Ｄ間で転送することを可能ならしめ、古典的なハーバードアーキテクチャかフォン／イマンアーキテクチャの何れかと比較されるシステムの構造上の柔軟性を大きくする。
処理装置と部品回路を含み、プロセッサ１３、１５に対する改良によって可能になる本発明のシステムを以下に論ずる。汎用デジタル信号処理用途の場合、これらのシステムはコンボリューション、相関化、ヒルベルト変換、高速フーリエ変換、適応フィルタリング、ウィンドウイング、および波形生成を実行するようにすることが有益である場合には丁度列挙したばかりの一般的アルゴリズムを伴うその他のアプリケーションとしてはボイスメール、音声ボコーディング、音声認識、話者確認、音声向上、音声合成ならびに音声テキストシステムがある。
本発明による計測によって本発明が適当に活用できる用途においてスペクトル解析器、関数発生器、パターンマッチングシステム、サイスミック処理システム、過渡分析システム、デジタルフィルタ、および位相ロックループの向上が実現される。
【０４４５】
本発明による自動制御システムによって、エンジン制御、振動分析、スキッドのないブレーキング制御、適応乗車制御、音声コマンド、自動変速制御が好適に実現される。
航海、飛行、軍事分野では本発明システムは改善されたグローバル位置決めシステム、プロセッサ支援航海システム、レーダ追跡システム、プラットホーム安定化システム、ミサイル誘導システム、安全通信システム、レーダ処理その他の処理システムが提供される。
本発明によるシステムは更に、全体としてコンピュータディスクドライブモータコントローラ、プリンタ、プロッタ、光ディスクコントローラ、サーボ機械制御システム、ロボット制御システム、レーザプリンタ制御およびモータ制御システムを提供することができる。これらの制御システムの幾らかはロボットコントローラ、自動組立装置、検査装置、産業駆動装置、数値制御器、コンピュータ化された電動工具、機密保護アクセスシステム、および電力線モニタの如き産業環境に使用することができる。
【０４４６】
本文中に開示の原理によって想定されるテレコミュニケーション発明は反響消去装置、ＡＤＰＣＭトランスコーダ、デジタルＰＢＸ、回線中継器、回線マルチプレクサ、モデム、適当イコライザ、ＤＴＭＦエンコーダとＤＴＭＦデコーダ、データ暗号化装置、デジタルラジオ、セルラー電話、ファクシミリ、ラウドスピーカ電話、デジタル音声補間（ＤＳＴ）システム、パケット交換システム、ビデオ会議システム、およびスペクトラム拡散通信システムを包含する。
図形画像分野では、本文中に開示の原理と装置方法にもとづき更に、光文字認識装置、３次元回転装置、ロボット視覚システム、映像伝送圧縮装置、パターン認識装置、画像向上装置、準同形写像処理装置、ワークステーション、およびアニメーションシステムならびにデジタルマッピングシステムを包含する。
本発明により想定できる医療上の発明は例えば、補聴器、患者モニター装置、超音波装置、診断用具、自動補綴ならびに胎児モニタ、を包含する。本発明による消費財はスタジオやテレビステーションで使用される高鮮明度テレビ受信機や伝送装置の如き高鮮明度テレビ装置を包含する。更に、本発明の消費財として音楽シンセサイザ、ソリッドステート応答機、レーダ発見器、電力工具、玩具、ゲームを包含する。
【０４４７】
本文中で想定されるシステム面は優れたシステムアーキテクチャ、システム性能、システム信頼性と経済性を備える点を強調しておくべきであろう。
例えば、図２において本発明による産業工程と保護目的制御システム３００は特定の産業環境に固有の物理学的変数を検知する産業用センサ３０１、３０３を包含する。センサ３０１と３０３からの信号は、図ＩＢの改良ＰＬＵ（並列論理装置）を備える図１Ａと図１Ｂの信号処理装置１１に提供される。インターフェース３０５はレジスタロケーションＡ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，Ｇとドライバ（図示せず）を備える。上記レジスタロケーションはドライバと各ライン３０７を介してモータ３１１により駆動される産業処理と、リレー３１３により制御されるリレー操作装置と、ソレノイド弁３１５を含む各種バルブに接続される。
【０４４８】
産業上の処理と保護目的制御環境では、種々の工学上と経済上の問題が相反して作用する。もし産業工程のスピードとスループットが高い場合には、リアルタイムで発生しセンサ３０１と３０３により検出される比較的急速な変化の重要性を解釈するために装置１１の処理能力に対して重い負担が課せられる。他方、センサ３０１と３０３により検出される現実世界の条件に応ずるために必要な制御機能も迅速に行う必要がある。
ＰＬＵ４１を追加して装置１１が単一の半導体チップに製作される時の余分の費用を無視しうるようにして装置１１に対する競合する要求を解決することが有利である。このようにして、産業上の処理速度、保護目的の制御の迅速さ、制御の正確さは相当向上させることができる。
図３において、本発明の自動車３２１は車輪と車軸を取付けるシャシー３２３と、エンジン３２５、サスペンション３２７、ブレーキ３２９を備える。ボデー３３１はシャシー３２３に対してサスペンションを備える乗客用コンパートメントを形成する。
【０４４９】
アクチブなサスペンション３３５はばねとアブソーバサスペンションの技術を増加し、ビットＡ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，Ｇ，Ｈ，Ｉ，Ｊ，Ｋ，Ｌ，Ｍ，Ｎに対するロケーションを有するインターフェース３４１を介して制御される。並行計算プロセッサ３４３は図１Ａと図１Ｂ中に開示されたタイプの計算装置を使用し、データバス３５１Ｄとプログラムデータバス３６１Ｄに接続される少なくとも一つの並列論理装置４１を備える。多数のセンサはセンサ３７１、３７３、３７５を包含し、それらは、サスペンションの機能、エンジンの動作、スキッドに抗する制御作用をそれぞれ監視する。
【０４５０】
エンジン制御システム３８１はインターフェース３４１のロケーションの幾つかに接続される。同様にアンチスキッド制動制御システム３８３がインターフェース３４１のそれ以外のビットに接続される。自動車の信頼性、安全性、乗客の快適さ、経済性といった多数の考慮すべき問題は従来の自動車システムに対して重い負担を課している。
図３の発明では、自動車３２１は、本発明の極度に柔軟な平行処理と制御性の利点によってこれら領域の何れもしくは全てにおいて改善されている。
図２と図３のシステムと本文中に述べるシステムに使用される装置１１の如き装置は装置性能の向上の問題に取組むだけでなく、ユーザのシステム性能全体とコストを規定する産業上システムの問題点を解決するものである。
実施例の装置１１は命令を５０ナノセカンドで実行し、半導体製作による改良によって更に命令速度を可能にすることができる。オンチッププログラムメモリはＲＡＭに依拠し、安価な外部メモリからプログラムをブートロードしやすくしてある。他のバージョンは更にコストを低減するためにＲＯＭに依拠することが好適である。
図４のデジタル制御モータシステム４００は図１Ａと図１Ｂの装置１１を有するデジタルコンピュータ４０１を備える。デジタルコンピュータ４０１は出力μ（ｎ）を零次ホールド回路ＺＯＨ４０３に供給する。ＺＯＨ４０３は産業用機械、家庭用機器、軍事設備、その他の応用システム環境において制御出力μ（ｔ）をＤＣサーボモータ４０５に供給する。
【０４５１】
サーボモータ４０５の入力μ（ｔ）に対する作業上の応答はｙ（ｔ）で示される。センサ４０７はモータ出力ｙ（ｔ）のトランスジューサであって、サンプラ４０９に送り、それは今度はサンプリングされたデジタル出力ｙ（ｎ）を割込ラインＩＮＴ−を介して減算器４０１に供給する。人間によるもしくは自動監視制御からの基準入力γ（ｎ）がもう一つの入力として減算器４１１に外部供給される。その後、誤差ｅ（ｎ）がデジタルコントローラ４０１に送られループを閉じる。装置１１はコントローラ４０１に対して図２におけるようなサーボモータの他に他の要素を処理制御するための高いループ帯域幅と多重機能性を付与する。装置１１のゼロオーバヘッドの割込みコンテキスト切替えによって帯域幅は更に拡大され、ポーリングアーキテクチャーに対する魅力的な代替手段を提供する。    
【０４５２】
図５において、多変数状態コントローラ４２１は装置１１のプロセッサを用いて高次アルゴリズムを実行する。状態コントローラ４２１は基準入力γ（ｎ）を受取り、出力μ（ｎ）をモニタ４２３に供給する。多重電気変数（位置Ｘ１、速度Ｘ２、電力Ｘ３、トルクＸ４）が状態コントローラ４２１に帰還される。４変数Ｘ１−Ｘ４（例えば線形結合形をとる）の任意の１つもしくはそれ以上を各種の操作目的に制御することが望ましい。システムは制御された速度もしくはトルクアプリケーションを実行することが可能で、ステップモータと可逆モータを運転する。
図６において、モータ４３１はサンプラ４３３により検出されサンプリングされて動作する。プロセッサ４３５は装置１１を含み、サンプラ４３３により割込み駆動される。装置４３３により判断される速度情報は図１Ａと図１Ｂに関して述べたような改良プロセッサ４３５に帰還される。プログラムメモリ６１（図１Ａ）におけるソフトウェアは評価アルゴリズムプロセス４３７をして実行される。プロセス４３７は速度、位置、電流の情報をプロセス４３５の状態コントローラプロセス４３９に提供する。デジタル出力μ（ｎ）は出力として状態コントローラ４３９から零次ホールド回路４４１へ供給され、後者は今度はモータ４３１を駆動する。
【０４５３】
モータはソリッドヌテート電子スイッチがブロック４３１内のコア、コイル、ロータと関連するブラシレスＤＣモータであることが望ましい。図４−６のシステムはシャフトエンコーダ、ホール効果光ロータ位置検出と巻線からの位置の逆起電力検出法を備えている。
図７において、ロボット制御システム４５１は、ロボットアーム４５５端にモータ駆動の把持機構４５３を備えている。ロボットアーム４５５は回転軸４５７．１、４５７．２、４５７．３、４５７．４を備える構造をしている。アーム４５５上の関節点４５９．１、４５９．２、４５９．３、４５９．４にはセンサと高応答性の正確に制御可能なモータが配置される。
【０４５４】
かかる多数のモータとセンサをロボットアーム機構４５５を正確に位置決めし活用するために使用することが望ましい。然しながら、上記多数のセンサとモータはシステム全体とコントローラ４６１に対して競合する要求を課する。コントローラ４６１は図１Ａと図１Ｂの装置とシステム４５１の割込み駆動アーキテクチャーを含めることによってこれらのシステム要求を解決する。コントローラ４６１はＩ／Ｏインターフェース４６３と相互に交信する。後者はロボットアーム４５５に対する並列論理装置４１によってビット操作と共に、Ａ／Ｄ変換とＤ／Ａ変換を実行する。インターフェース４６３は航行モータ４６７とロボットアーム４５５と把持機構４５３と関連するセンサから位置と圧力の応答を受取る。また、インターフェース４６３はサーボアンプ４６５を経てロボットアーム４５５の各モータ４６７に制御コマンドを供給する。
コントローラ４６１はスタティックラム（ＳＲＡＭ）とプログラマブルリードオンリーメモリ（ＰＲＯＭ）と関連したメモリ４６７を有する。
【０４５５】
低速の周辺装置４６９はコントローラ４７１と関連し、それらはコントローラ４６１のページ境界に敏感な待機特性によって効率的に格納される。コントローラ４６１は安全制御装置４７５に応答するシステム管理プログラムＣＰＵ４７３によって、それに供給されるハイレベルコマンドに応答する。システム管理プログラム４７３はＩ／ＯとＲＳ２３２ドライバ４７５を介してコントローラ４６１と交信する。
本発明のデジタル制御システムは以前には利用できなかった制御精度、速度、経済性といった性能性の利点を可能にする。もう一つの例として、ディスクドライブは、スピンドルモータ装置により高速で回転する情報ストアディスクを備える。別のアクチュエータと呼ばれる制御によって読取り／書込みヘッド要素を情報ストアディスクに対して整合させる。
【０４５６】
実施例は更に、システム処理と診断操作と共にアクチュエータ制御とスピンドルモータ制御の双方に対してシングルチップとする解決方法を提供することさえ可能である。コントローラ４６１に対して過重な負担を加えずに精巧な機能を内蔵させることができる。コントローラ４６１内にはデジタルノッチフィルタを設けることによって機械的共振を消去することができる。状態評価器は速度と電流を評価することができる。カルマンフィルタはセンサのノイズを低減する。適応制御によって温度の変動と機械的振動を補償することができる。装置１１は更に、スピンドルモータ速度を制御するためにオンチップＰＷＭのパルス幅変調出力を提供する。テープドライブ、プリンタ、ブロック、光ディスクシステムにおいても同様な作用を組込むことが容易である。本発明のデジタル制御によって高速でより正確な速度制御が得られると共に、それと匹敵するコストでＩ／Ｏ技術内の高速アクセスを実現することができるため当該技術水準を高めることができる。
【０４５７】
ミサイル誘導システムにおいては、本発明の操作能力の向上によって、ミサイルシステムのより正確な誘導が可能になり、作業目的を達成するために必要な高価なミサイルの数を低減することができる。更に、プロセッサチップが小数でも等しい性能を実現できるため、軽量となり特徴を豊かにペイロードを向上させることが可能になる。
図８において、本発明の衛星テレコミュニケーションシステムは２５０ミリセカンドの遅れを伴う衛星伝送路によって通信する第１のステーション５０１と５０３を備えている。遠端電話５０５と近端電話５０７は、それぞれハイブリッド５０９と５１１により地球ステーション５０１と５１１に接続される。ハイブリッド５０９と５１１は各地球ステーション５０１と５０３に対して８ミリセカンド遅延させられる。従って、遠端と近端の電話５０５、５０７間に満足のゆくテレコミュニケーションを可能にするにはエコー消去が必要である。更に、多数の電話会話回路を一時に供給する能力が必要となる。これはテレコミュニケーション設備に対して極端な処理上の負担を課するものである。
【０４５８】
図９において、実施例のエコーキャンセラ５１５を５１１の如き各ハイブリッドと関連させることによって通信回路の送信を改善している。装置１１はエコー消去アルゴリズムを高速で実行すると共に、チップあたり衛星通信数をより多く経済的に行えるようになっている。
もう一つのシステム実施例は改良されたモデムである。図１０において、モデム送信機としてプログラミングされた装置１１内の演算のプロセス線図はコーディングステップ５２７がその後に続くスクランブルステップ５２５を含む。同ステップ５２５では補間手続５２９、５３１に対してそれぞれ直角デジタル信号Ｉ（ｎＴｂ）とＱ（ｎＴｂ）が提供される。デジタル変調計算５３３と５３５では、補間された直角信号と、それぞれ三角法のコサイン値とサイン値を与えるリードオンリーメモリ（ＲＯＭ）からの予めストアされた定数との乗算が行われる。変調信号はその後加算ステップ５３７で加算される。装置１１に接続されたＤ／Ａ変換器はステップ５３９で変調信号をＤ／Ａ変換する。係数Ｇ１による利得制御がその後モデム伝送中に行われＤＡＡに送られる。
【０４５９】
図１１では、もう一つの装置１１を使用するモデム受信機がＤＡＡからアナログ通信信号を受取る。Ａ／Ｄ変換器５２１は装置１１を使用するデジタル信号プロセッサ向けに情報をデジタル化する。高速のもしくはデジタル変換は従来のプロセッサの入力処理に対して重い負担を課す。ＤＳＰ１１はオーバヘッドがゼロの割込みコンテキストを提供することによってＡ／Ｄ５２１の如きデジタル化要素からの割込みを極端に効率的に行うと同時に、モデムアルゴリズムを実行するために強力なデジタル信号処理計算能力を備えるようにすることが望ましい。装置１１の出力は出力Ｄ（ｎＴ）を供給する汎用同期非同期送受信機（ＵＳＡＲＴ）５２３に供給される。
【０４６０】
図１２において、図１１のシステムによるモデム受信のプロセス線図は、サンプリング周波数ｆｓでＡ／Ｄ変換を行う信号ｓ（ｔ）を供給するＤＡＡから受信直後に係数Ｇ２により自動利得制御する操作を伴う。デジタル化信号はＳ（ｎＴｓ）であって、個々の自動利得制御が後続するデジタルフィルタリングステップＢＰＦ１とＢＰＦ２はより行われる、第１は第２の帯域フィルタを伴うデジタル処理用に供給される。復調アルゴリズムによって２個の復調信号Ｉ′（ｎＴｓ）とＱ′（ｎＴｓ）がつくりだされる。搬送波回収用に使用されるこれら２個の信号Ｉ′とＱ′とは復調アルゴリズムに帰還される。同時に、Ｉ′とＱ′とはデシジョンアルゴリズムに供給されロック回収に応じて処理される。デコーディングプロセス５５１はそのデシジョンアルゴリズムに従う。デコーディング５５１の次にはデスクランブルアルゴリズム５５が続く。同アルゴリズム５５はＰＬＵ４１による集中的なビット操作が伴い入力信号ｄ（ｎＴ）を回復する。
【０４６１】
図１２に示すように、モデム受信アルゴリズムの数多くのステップは集中的な多数の計算能力とＰＬＵ４１により提供されるビット操作とにより、単一のデジタル信号処理装置１１によって行うのが有利である。
図１３において、装置１１を組込んだ計算装置５６１は、インターフェース５６５を介してホストコンピュータ５６３と共働する。高容量の外部メモリ５６３がインターフェース５６９によりコンピュータ５６１と境界を接している。コンピュータ５６１は周辺ラッチ５７１と５７３を介して双方向パルス符号変調（ＰＣＭ）通信をサポートすることが有利である。ラッチ５７１はシリアル／パラレル変換器５７５に連結され、外部装置５７７からのＰＣＭ通信を受信する。コンピュータ５６１は、ラッチ５７３とパラレル／シリアル装置５７９を介して交信し、シリアルＰＣＭデータの流れを外部装置５７７に供給する。
【０４６２】
図１４において、ビデオ画像システム６０１はＲＯＭ６０３とＲＡＭ６０５によりサポートされた装置１１を備える。データ収集センサ６０７．１〜６０７．ｎは、入力を変換器６０９に送り、後者はその後、大量のデジタルデータを装置１１に供給する。図１４は、ＡＬＵ２１の累算器２３と、乗算器アレイ５３と、積レジスタ５１とを強調したもので、ＡＲＡＵ１２３を含むアドレス指定装置を有する。制御要素６１５は全体としてデコーダＰＬＡ２２１と図１Ａのパイプラインコントローラ２２５を示したものである。オンチップＩ／Ｏ周辺装置（図示せず）は並外れて高品質の出力をビデオ表示装置６１９は供給するバス６１７と交信する。監視入出力Ｉ／Ｏ６２１も装置１１に設けられる。
装置１１のアドレス指定能力が優れているため、命令によって積を積レジスタ５１から直接アドレス指定回路１２３へ転送し転送中に任意のメモリロケーションをバイパスするための制御６１５が実行される。メモリマッピングのため、図１Ａと図１Ｂの任意の対の計算コアレジスタがアクセスされ、それらの図上のレジスタに至る矢印にかかわりなく、データバス１１１Ｄを介してそれらの間でメモリバイパス転送を行うようにするのが有利である。装置１１の乗算能力がアドレス指定作用中で活用されるために、回路は少なくとも３つの次元によりメモリ内にアクセスできるエントリーを有するようなアレイを電子メモリ６０５内に確立する。ビデオディスプレイ６１９は装置１１による多次元アレイ処理から発生する出力を表示する。メモリ６０５が多次元アレイ内に必ずしもある必要はなく、アドレス指定が装置１１によって迅速に実行され、情報が要求に応じてあたかもそれぞれ多数アレイ次元を表わす変数によって直接アクセス可能であるかの如くアクセスできるようにすることはいうまでもない。例えば、アドレス次元Ａ１，Ａ２，Ａ３を有する３次元立体アレイは等式Ｎ2×Ａ３＋Ｎ×Ａ２＋Ａ１に従ってアドレス指定できるようにすることが適している。２次元アレイでアドレス指定目的には図１Ａのレジスタ１９９からの索引カウントに従って単純に反復加算するだけで十分である。然しながら、３次元とそれ以上の次元を収納するには、同プロセスは乗算器５３の積能力を導入することによって相当迅速に処理することができる。
【０４６３】
図１５と図１６はそれぞれ本発明のビデオ処理装置の機能指向性のハードウエアブロック指向線図を示す。これらシステムに対するアプリケーションは新たなワークステーション、コンピュータインターフェース、テレビ製品、および高鮮明度テレビ（ＨＤＴＶ）製品を提供する。
図１５では、ホストコンピュータ６３１は装置１１による数値処理に対するデータ入力を提供する。ビデオピクセル処理６３３の次にはメモリ制御処理６３５が続く。ビデオディスプレイのためのＣＲＴ制御機能６３７は数値処理６３９、ピクセル処理６３３およびメモリ制御６３５と調整されている。メモリ制御６３５処理からの出力は、フレームバッファメモリ６４１に供給した後、シフトレジスタ６４３に供給される。フレームバッファメモリとシフトレジスタ６４１と６４３は、テキサスインストルメンツ社のＴＭＳ４１６１により製作することがふさわしい。もう一つのシフトレジスタ６４５は、ビデオ情報をシフトレジスタ６４３からカラーパレット６４７へ供給する。カラーパレット６４７はＣＲＴ制御６３７により制御されたディスプレイ６４９を駆動する。カラーパレット６４７はＴＭ３４０７０が適当である。
【０４６４】
図１６において、ホスト６３１はＤＳＰマイクロコンピュータ６５３として動作する第１の装置へ信号を供給する。ＤＳＰ６５３はＰＲＯＭ、ＥＰＲＯＭ、ＳＲＡＭのスタティックメモリを含むメモリ６５１によりサポートされる。制御、アドレス、データに関する情報はＧＳＰ（図形信号プロセッサ）６５５として動作するＤＳＰ６５３と第２の装置１１間の双方向通信路によって供給される。ＧＳＰ６５５はカラーパレット６４７とディスプレイインターフェース６５７の双方を駆動する。インターフェース６５７は更にカラーパレット６５７により駆動される。図１６の装置１１とシステムは全体として所要機能にふさわしい適当なクロック速度で動作することが理解できる。装置１１はミクロンおよびサブミクロン単位で製作し、特定用途に対して必要とされる処理速度をサポートするようにする。処理能力を増加させるための高鮮明度テレビ装置は高いクロック速度を使用するだけでなく本文に開示の回路を構造的に改善することによってもその条件を満たすことができると考えられる。
【０４６５】
図１７において、本発明の自動音声認識システムはマイク７０１を備え、その出力はサンプルホールド（Ｓ／Ｈ）回路７０３によりサンプリングされた後Ａ／Ｄ回路７０５によりデジタル形に変換される。割込み駆動される高速フーリエ変換プロセッサ７０７は装置１１を使用し、マイク７０１からのサンプリングされた時間領域入力を音の周波数スペクトルを表わすデジタル出力へ変換する。このプロセッサ７０７は、上述したように一部はオーバーヘッドゼロの割込みコンテキスト切替特性、条件附命令、およびメモリアドレス空間内にマッピングされた補助アドレスレジスタのためにすこぶる効率的である。
【０４６６】
プロセッサ７０７は、各スペクトルを、更にもう一つの装置１１を組込んだ音声認識ＤＳＰ７０９に提供する。音声認識ＤＳＰ７０９は現在既知の、もしくは後に開発される適当な音声認識アルゴリズムを実行する。例えば、テンプレートマチングアルゴリズムでは、乗算、加算、最大最小決定を伴う多数の計算が実行される。装置１１はそのシリーズの最大／最小関数アーキテクチャーによってかかるアルゴリズムを迅速に実行するに適していることが理想的である。音声認識ＤＳＰ７０９は出力をシステムバス７１１に供給する。ＲＯＭ７１３とＲＡＭ７１５とは音声認識ＤＳＰ７０９により提供されるページ境界上のソフトウェア待機状態のためにシステムを効率的にサポートする。音声認識ＤＳＰ７０９に応答する音声シンセサイザ７１７からの出力はラウドスピーカその他の適当なトランスジューサ７１９に供給される。
【０４６７】
システムＩ／Ｏ７２１は、プリンタ、テープ、ハードディスク、等の文書作成装置７２３にダウンロードする。ビデオ陰極管（ＣＲＴ）ディスプレイ７２５は図１５、図１６に関して既述したようにバス７１１から供給される。キーボード７２７は時々、人間による監視入力をバス７１１に提供する。産業上その他の音声認識プロセス制御用途において、もう一つの装置１１との制御インターフェース７２９はバス７１１に接続され、今度は上記図２、３、４、５、６のビット操作と原理に従ってモータ、バルブ、その他のサーボ機械要素７３１に対する出力を供給する。
音声認識にもとづくデジタルフィルタ補聴器においては、音声認識ＤＳＰ７０９から変換された音声はＤ／Ａ変換器７３５によりＤ／Ａ変換されラウドスピーカ７３７を経て出力される。同じブロックの鎖７０１、７０３、７０５、７０７、７０９、７３５、７３７は、テレコミュニケーションにおいて、音声認識によるイコライジング、フィルタリング、帯域幅圧縮についても適用できる。
【０４６８】
先端音声処理システムでは、字句アクセスプロセッサ７３９は音声認識ＤＳＰ７０９の出力から導き出された音声要素表示に対する記号操作を実行し、任意の適当な字句アクセスアルゴリズムに従って節、単語、文章を作成する。
トップダウンプロセッサ７４１は、音声のあいまいさの解決がある場合に入力音内に含まれる情報をしのぐという原理に基づいてトップダウン処理アルゴリズムを実行する。従って、光センサ７４３や圧力センサ７４５の如き非音響センサが入力システム７４７に供給され、後者はその後パタン認識プロセッサ７４９を割込み駆動する。プロセッサ７４９はシステムバス７１１を直接供給すると同時に、トップダウンプロセッサ７４１をアクセスして、音声認識や、パターン認識、人工知能用途を向上させる。
装置１１は図１７の音声認識装置の全てのレベル、例えば、ブロック７０７、７０９、７１７、７２１、７２５、７２９、７３９、７４１、７４７、７４９において処理能力を著しく向上させる。
【０４６９】
図１８は保安通信のための暗号を有するボコーダーモデムを示す。電話７７１は電話線７７３上で保安モードで交信する。ＤＳＰマイクロコンピュータ７７３は電話７７１に接続されてシリアルデータ７７３をブロック７７５に提供する。ブロック７７５は区画７７７においてボコーダ関数を、ブロック７８１において暗号をデジタル化する。ブロック７７９と７８３におけるモデムアルゴリズム処理は図１０と図１２に関して上述した。ブロック７８３はシリアルデータをＡ／Ｄ、Ｄ／Ａ装置７８５間で送受する。装置７８５はアナログ通信をＤＡＡ７８７に対して提供する。図１Ａと図１Ｂの装置１１の処理特性が著しく向上するためにブロック７７５内に必要とされるチップ数を少なくすることができ、そのため図１８により装置のコストを低減することができる。場合によっては装置１１の著しい処理能力によってより先進的な暗号手続を実行することが容易である場合もある。従って、図１８においては、装置１１は機能ブロックの各々の機能性を向上させたり、小数のチップで従って全体の製作費がより少なくしてそれと同等の機能性をもたせるように使用することができる。
【０４７０】
ＴＭＳ３２０Ｃｌｘユーザ便覧、ＴＭＳ３２０Ｃ２Ｘユーザ便覧、および第３世代ＴＭＤ３２０ユーザ便覧においてテキサストンストルメンツ社製のＤＳＰが３つ述べられているが、その何れも本文に参照用に組込まれている。同様にして、米国特許第４，５７７，２８２号と第４，７１３，７４８号も本文中に組込んである。
図１９は図１Ｂの並列論理装置４１の動作を示す。並列論理装置４１（ＰＬＯ）によってＣＰＵが計算装置１５内の累算器の如きレジスタの何れにも影響を及ぼさずに、メモリ内にストアされた値に対して直かに論理演算を実行することが可能になる。論理演算は１命令中の任意のビット数をセットしたり、クリアしたりトグルしたりすることを含む。ＰＬＵは２回の命令サイクルでリード−修飾−ライトの命令を実行する。殊に、ＰＬＵ４１はオンチップかオフチップの何れかのＲＡＭ２５内のロケーションをアクセスし、それに対してビット操作を実行した後、その結果をデータが得られたＲＡＭ内のロケーションに戻す。以上の操作の全てにおいて、累算器は影響を受けない。積レジスタは影響を受けない。累算器バッファと積レジスタバッファＡＣＣＢとＢＰＲは影響を受けない。従って、計算装置を相当スローダウンさせるような時間のかかる演算はこの重要な並列論理装置ＰＬＵ４１を設けることによって回避される。構造的には、ＰＬＵはその入力から出力まで直流する論理であって、デコーダＰＬＡ２２１により制御され、ＰＬＵ４１の論理内部の特定ゲートを割込み許可禁止して以下に命令を実行する。
【０４７１】
ＡＰＬ，Ｋ      ＤＢＭＲもしくは定数をデータメモリ値とＡＮＤ演算する。
ＣＰＬ，Ｋ      ＤＢＭＲもしくは定数をデータメモリ値と比較する。
ＯＰＬ，Ｋ      ＤＢＭＲもしくは定数をデータメモリ値とＯＲ演算する。
ＳＰＬＫ，Ｋ    長即値をデータメモリロケーションにストアする。
ＸＰＬ，Ｋ      ＤＢＭＲもしくは定数をデータメモリ値とＸＯＲ演算する。
【０４７２】
ビット操作は１）１ビットセット、２）１ビットクリア、３）１ビットトグル、４）１ビットをテストしそれに従って分岐する、操作を行う。またＰＬＵはＣＰＵレジスタもしくは状態ビットの何れの内容にも影響を及ぼさずにこれらビット操作処理をサポートする。また、ＰＬＵは長即値を有するデータメモリロケーションに対して論理演算を実行する。
【０４７３】
図１９において、パートＡはＸの任意ビット数を有するメモリロケーションを示す。パートＢにおいて、ＳＰＬＫ命令によって１メモリワード内の任意のビット数を任意のメモリロケーション内に書込むことができる。パートＣにおいて、ＯＰＬ命令によって１メモリワード内の任意のビット数をワード中の他のビットに影響を及ぼさずに１に設定することができる。パートＤにおいて、ＡＰＬ命令によって１メモリワード中の任意のビット数をワード内の他のビットに影響を及ぼさずにゼロにクリアしたりセットしたりすることができる。パートＥにおいて、ＸＰＬ命令によって、１メモリワード内の任意のビット数をそのワード内の他のビットに影響を及ぼさずにトグルすることができる。パートＦにおいて、ＣＰＬ命令はアドレス指定されたメモリロケーションを修飾せずに所与のワード（例えば１６ビット）をアドレス指定されたメモリロケーションと比較対照する。比較機能は特定のメモリロケーション上での比較については非破壊的排他ＯＲ（ＸＯＲ）を見做すこともできる。もし比較によって所与のワードがアドレス指定されたメモリワードと等しいことが示されるならば、ＴＣビットは１にセットされる。ＴＣビットは図１Ｂのレジスタ８５内のＳＴ１レジスタのビット１１である。個々のビットのテストはＢＩＴとＢＩＴＴ命令によって実行される。
【０４７４】
構造的には、ＰＬＵ命令の存在は図１ＡのデコーダＰＬＡとＰＬＵ４１の論理が特定の回路を含んでいることを意味する。種々のＰＬＵ命令が命令レジスタ（１Ｒ）内にロードされると、それらはデコーダＰＬＡ２２１により信号に解読されてＰＬＵ４１の論理内のゲートを割込み許可禁止することによって命令が指示する処理が現実に実行される。
ビットパターンの動的な配置をサポートするために、命令は長い即値を使用する代わりにレジスタ値についてメモリワードに対する基本的ビット演算を実行する。ＤＢＭＲはメモリマッピングされるが、そのことは構造的にはデータアドレスバス１１１ＡからのＤＢＭＲ２２３のアドレス指定を可能にするデコーディング回路１２１（図１Ｂ）が存在することを意味する。添字Ｋを命令（例えばＡＰＬＫ）につけて命令がＤＢＭＲの代わりに長い即値を演算中であることを示す。添字（例えばＡＰＬ）が存在しないことは命令がＤＢＭＲについて処理中であることを示す。ＤＢＭＲの選択はパイプラインコントローラ２２５により制御されたパイプラインタイミングによってデコーダＰＬＡ２２１からその選択入力が制御される図１ＢのＭＵＸ２２５により実行される。
長即値は命令の一部としてプログラムデータバスから到来する値である。“即値”とは値がプログラムデータバスから到来中であることを意味する。“長即値”とは全ワード範囲の値が供給中であることを意味する。
【０４７５】
長即値はリードオンリメモリ（ＲＯＭ）から取得されるから変更できない場合が多い。然しながら、１命令シーケンスにおいて論理演算を変更できるようにすることが望ましい場合には、ダイナミックビット操作用ビットレジスタをその目的のために設ける。
ＰＬＵ４１によってデータメモリ空間内の任意のロケーションに対して並列ビット処理を行うことができる。このことによって、制御フィールドの集中的ビット処理の必要条件を収納するすこぶる高能率のビット処理が可能になる。本発明のビット処理は他の用途の中でもエンジン制御、サスペンション制御、アンチスキッド制動、プロセス制御、等の自動車制御に容易に適用できる。ビット処理はビットをオンオフすることによってリレーでオンオフに切替え、エンジンを始動させたり、スピードアップしたり、サーボ制御でモータに対する利得段階を上昇させたりすることによってソレノイドを閉じたり信号を強化したりすることができる。先端的マイクロ制御アプリケーションに必要とされる複雑な演算はビット処理による競合なしに装置１１に対して実行することができる。
【０４７６】
ビット処理のアプリケーションは更にモデムにおけるスクランブルを含む。もし一定のビットパターンがモデム内に十分の周波数や位相変化を供給することができないならば、フェーズクロックループとモデム受信機内に搬送波を維持することは困難であるか不可能である。かくして、モデム内のボークロックと搬送波フェーズロックループはデジタルフィルタの各々に十分だが大きすぎないエネルギーが存在するような形をとることになる。スクランブリングはシリアルビットの流れに対してＸＯＲ処理を行う。ＰＬＵ４１はこの処理をはなはだ効率的に実行する。装置１１の他のＣＰＵレジスタはＰＬＵ処理には関係しないから、これらのレジスタはＰＬＵがその命令を実行しようとする場合にセーブする必要がない。スクランブル処理の場合、データパターン内にＸＯＲ処理されるビットは他のビットの関数であるから、任意の所与のボー期間内に必要とされるＸＯＲを実際に実行するには１つ以上の処理が必要となる。並行論理装置の場合、これらの操作はレジスタ資源を使用せずに計算処理と平行して実行することができる。
【０４７７】
上記した如く、ＰＬＵは命令デコーダ２２１と共に、命令を受取るためにプログラムバスに接続され命令の少なくとも幾つかに従って論理演算を実行するためにデータバスに接続されて論理回路の一例として作用する。上記論理演算は電子計算装置とは独立にデータメモリロケーションの少なくとも一つに影響を及ぼし、累算器には及ぼさない。命令の幾つかでは、論理演算は選択されたデータメモリロケーションにおけるデータワード内の他のビットには影響を及ぼせずに、その選択データメモリロケーションのデータワード内の一つに特定ビットをセット、クリア、トグルする操作を含む。
【０４７８】
ＤＢＭＲ２２３の場合、ＰＬＵ４１がデータバスからデータを受取るために接続された第１の入力と、データをデータバスに送るための出力と、データバスもしくはプログラムバスの何れか一方から１ワードを受取るべく選択的に動作可能な第２の入力とを備えるようにした改良論理回路が更に一つ設けられている。マルチプレクサ２２５は選択的に動作可能な要素として働く。例えば、任意のアドレス指定可能なレジスタもしくはメモリロケーションの内容はＤＢＭＲにストアできる。ＭＵＸ２７５がＤＢＭＲを選択する時、ＰＬＵはセット、クリア、トグル等のＤＢＭＲに基づいた論理演算によって修飾されたデータバス１１１Ｄから１ワードの内容をデータバス１１１Ｄに送る。ＭＵＸ２２５がプログラムデータバス１０１Ｄを選択する場合、論理演算が依拠する長即値定数が選択される。
【０４７９】
さて、割込み制御とコンテキスト切替えについて戻ると、図２０は４つのインターフェース８０１、８０３、８０５、８０７を備えるＤＳＰ装置１１を含むシステムを示す。セッサもしくはトランスジューサからのアナログ信号はＡ／Ｄ変換器８０９によってデジタル変換され、インターフェース８０１を経てＤＳＰ１１へ供給される。各々の変換が完了すると、割込み信号ＩＮＴ１がＡ／Ｄ変換器８０９からＤＳＰ１１へ供給される。ＤＳＰ１１はインターフェース８０３を経て内部ＳＲＡＭ８１１、ＲＯＭとＥＰＲＯＭ８１３および外部メモリ８１５によりサポートされる。ＤＳＰ１１の出力はインターフェース８０７を介してＤ／Ａ変換器８１７に供給され出力制御される。光ホストコンピュータ８１９がＤＳＰ１１の割込み入力ＩＮＴ２−に接続され、インターフェース８０５を介してデータを交信する。他の割込みに基づくシステムは図４、６、１１、１４、１７に示す。
【０４８０】
さて、割込みやその他のコンテキスト変更について装置１１の処理を論ずる。図１Ａと図１Ｂについて述べると、レジスタの幾つかの背景矩形により描かれる点に注意されたい。これらレジスタはＴＲＥＧ１９５、ＴＲＥＧ１８１、ＴＲＥＧ４９、ＢＰＲ１８５、ＰＲＥＧ５１、ＡＣＣ２３、ＡＣＣＢ３１、ＩＮＤＸ１４３、ＡＲＣＲ１５９、ＳＴ０、ＳＴ１、およびＰＭＳＴである。これらレジスタはそれらと関連する相補レジスタを称され、レジスタを備える。割込みその他のコンテキストの変更が生ずる毎に、上記レジスタの全ては自動的に深度１のスタック上へ押込まれる。割込みからの復帰もしくはコンテキスト変更からの復帰が生ずると、同じレジスタが深度１のスタックをポップアップすることによって自動的に回復される。
【０４８１】
割込みサービスルーチンはコンテキストセーブもしくはコンテキスト切替えに対するオーバヘッドがゼロで処理されることが望ましい。このようにセーブされたレジスタは「戦略レジスタ」と称される。これらは割込みサービスルーチン内でその代わりに任意の異なるレジスタを使用することに優先して使用されるレジスタである。
もしメモリに対するコンテキストのセーブがレジスタ毎に行われ多数の戦略レジスタを保護する場合には、多数の命令サイクルが消費されることになろう。更に、これらのコンテキストのセーブ処理が行われる頻度比はアプリケーションに依存する。図２０の１００ＫＨｚのサンプリング割合を有するアプリケーションの場合には、割込み頻度は非常に高いため、割込みコンテキストのセーブオーバヘッドのサイクルはオーバヘッド零と改良されず、相当なものとなろう。実施例のオーバヘッド零のコンテキスト切替え特性を提供することによって、割込みサービスルーチンのサイクルカウントは半分以下に減らすことができる一方、同一の機能性を得ることができよう。ＤＳＰの多重チャネルアプリケーションにおいては秒あたり１００，０００オーダのサンプルで実行するか、１本のチャネルを５０ＫＨｚ以上の如きすこぶる高いサンプリング周波数で処理することが有利である。今述べたことはサブルーチン呼出し、機能呼出し、その他のコンテキスト切替えにも適用できる。
【０４８２】
割込みが行われると、状態レジスタが自動的に深度１のスタック上にプッシュされる。この特長をサポートする際、割込みから復帰せよ（ＲＥＴＩ）というもう一つの命令が存在し、スタックを自動的にポップアップして主ルーチン状態を回復させるようになっている。また実施例はもう一つの復帰命令（ＲＥＴＥ）を有しており、グローバル割込み許可ビットを自動的にセットして割込みを強化する一方、状態スタックをポップアップする。割込み許可による遅延復帰（ＲＥＴＥＤ）と命名される命令は復帰後に上記３つの命令がそれ自体割込まれる危険から保護される。
実施例はメモリ空間内にマッピングされる割込みフラッグレジスタ（ＩＦＲ）を備える。ユーザは能動割込みを判断するためにソフトウェアポーリングすることによってＩＦＲを読取り、ＩＦＲに書込むことによって割込みをクリアすることができる。
【０４８３】
オーバヘッドゼロのコンテキスト切替特徴が特に有益であると思われるアプリケーションを若干以下に記す。かくして改良ディスクドライブを高速に、より大きな加速度と減速度と高速の読取り整合調節度でもって高度の情報密度を収めることができるように製作することができる。プロセッサはロボット工学においてより多くのフィールドバック点を提供することが可能である。モデムでは、割込みのソフトウェアポーリングによってより低いビットエラー率を可能にすることができる。ボコーダはそれらをコーディングする際、より高い精度とより少ないビットエラーをもつように製作できる。ミサイル誘導システムはより正確な制御を備え、小数のプロセッサしか要しない。デジタルセルラー電話も同様にして改良される。
オーバヘッドゼロのコンテキストセーブ特徴によって、割込みが行われる時に戦略ＣＰＵレジスタ全体がセーブされ、何らの機械サイクルオーバヘッドなしにサービスルーチンから復帰後にそれらは復帰する。このため割込みサービスルーチンは解放され、割込まれたコードに影響を与えずにＣＰＵ資源を全て使用することができる。
【０４８４】
図２１は図１Ａ、１Ｂの主題が図２１のＣＰＵブロック１３、１５として示された装置１１のブロック線図である。ＣＰＵブロックから破断された状態で一組のレジスタが示され、これらは上述のように深度１のスタックを有する戦略レジスタである。
図２１は半導体チップのシステムアーキテクチャー全体を論ずる上で有益である。一組の割込みトラップとベクトルロケーション８２１がプログラムメモリ空間内に存在する。図１Ａ、図２１のプログラムメモリ６１内の割込みルーチンが実行される場合、図２１の割込み制御論理２３１によって図１Ａのプログラムカウンタ９３が割込みロケーション８２１内に適当なベクトルを以てロードされ適当な割込みサービスルーチンに分岐される。２個のコアレジスタＩＦＲとＩＭＲとはそれぞれ割込みフラッグレジスタと割込みマスクレジスタである。割込みフラッグレジスタは、どの特定の割込みが行われているかを表示する。割込みマスクレジスタはＣＰＵに対する割込みがそれらをマスキングすることによって割込み禁止される一組のビットである。例えば、もし割込みＩＮＴ２−、ＩＮＴ１−、ＩＮＴ０−の中に実行中の割込みが存在するならば、ＩＦＲ内には“１”についてセットされる対応ビットが存在することになろう。フラッグは自動的にクリアされる割込みトラップを取ることによってクリアされる。さもない場合は、１つを割込みをクリアするそれぞれの割込みフラッグレジスタ内にＯＲ処理することによってクリアされる。実行中の割込みフラッグ全体も１時にクリアすることができる。
【０４８５】
プログラムバスとデータバス１０１、１１１は図２１で線図状に組合わされており、周辺ポート８３１、８３３内で終結する。周辺ポート８３３は並列インターフェースを提供する。ポート８３１はＴ１に対するインターフェースと装置１１に対するシリアルポートを提供する。
図２２、２３、２４はオーバヘッド零の割込みコンテキスト切替えを実行するための３つの代替的な回路を示す。戦略レジスタは全て同時に並列にコンテキスト切替えされるため、１個のフリップフロップによるレジスタ全体の表示は線図的手法によっていることを理解されたい。
図２２、２３では上下レジスタはそれぞれ図１Ａ、１Ｂの戦略レジスタの各々の前景の背景の矩形を示す。図２４は平行処理を明示するものである。
【０４８６】
図２２において、主レジスタ８５１は、そのデータＤ入力がＭＵＸ８５３により選択的に供給される。ＭＵＸ８５３はレジスタ８５１のＤ入力を選択的に並列データ回線Ａか並列データ回線Ｂの何れかに対して接続する。回線Ｂは相補レジスタ８５５のＱ出力に接続される。主レジスタ８５１はそれぞれ相補レジスタ８５５の対応するＤ入力に接続される一組のＱ出力線を備える。
図示例において、矢印で示した回線Ａの入力は、ＡＬＵ２１による計算結果を表わし、累算器２３はレジスタ８５１と８５５を備える。累算器２３として示した図２２の主レジスタ８５１の出力は例えば図１Ａのポストスケーラ１８１に供給される。然しながら、レジスタ８５１は図１Ａと図１Ｂに２重矩形が示された戦略レジスタの各々に相当することが求められるだけの回数反復されることを了解されたい。
【０４８７】
図２２において、レジスタ８５１、８５５の各々は出力イネーブル（ＯＥ）端子を備える。ＯＲゲート８５７は主レジスタ８５１のクロック入力を供給する。ＯＲゲート８５７はＣＰＵ  ＷＲＩＴＥとＲＥＴＥの入力を有する。ＲＥＴＥはＭＵＸ８５３の選択入力と共に相補レジスタ８５５のＯＥ出力イネーブル端子も供給する。主レジスタ８５１はそのＯＥ端子がＯＲゲート８５９の出力に接続され、その入力は割込み確認ＩＡＣＫとＣＰＵ  ＲＥＡＤに接続される。ＩＡＣＫは楕円で示すように相補レジスタ８５５とその他の全ての相補レジスタにクロック信号を送る。動作中、割込みからの復帰がない場合（ＲＥＴＥロー）、ＭＵＸ８５３は主レジスタ８５１用の入力線Ａを選択する。ＣＰＵ  ＷＲＩＴＥが生起するや主レジスタ８５１はＣＰＵコアからの入力をそのＤ入力へ送る。ＣＰＵはＯＲゲート８５９においてＣＰＵ  ＲＥＡＤが生じＯＥを活動させると、レジスタ８５１の内容をアクセスする。
【０４８８】
割込みが生じて装置１１により確認されると（ＩＡＣＫ）、レジスタ８５１の出力Ｑがイネーブルとなり、相補レジスタ８５５がクロッキングされるそのため、主レジスタ８５１のＱ出力がレジスタ８５５内にストアされる。割込みサービスルーチンが実行される時、入力線ＡはＣＰＵ  ＷＲＩＴＥにより主レジスタ８５１内にクロッキングされつづける。割込みが完了すると、ＲＥＴＥはローとなり、ＭＵＸ８５３を切替え回線Ｂを選択し相補レジスタ８５５の回線ＯＥを活動させる。同様にして、ＲＥＴＥはＯＲゲート８５７を経てレジスタ８５１をクロッキングして転送を完了し主ルーチン情報を主レジスタ８５１へ復帰させるその後、割込みＲＥＴＥからの復帰の完了と共にＲＥＴＥはローとなり、ＭＵＸ８５３を介して主レジスタ８５１を入力回線Ａに接続しなおす。このようにして、コンテキスト切替えはオーバヘッド零で完了する。
【０４８９】
かくして、図２２は電子プロセッサに接続される第１と第２のレジスタを示す。上記レジスタは一つの処理コンテキスト（例えば割込みもしくはサブルーチン）に参加し、一方、別の処理コンテキストからの情報をそこに復帰するまで保持する。ＭＵＸ８５３とゲート８５７、８５９は、処理コンテキストに応じてレジスタの電子プロセッサ間での入出力動作を選択的に制御する働きをする第１と第２のレジスタに接続されるコンテキスト切替回路の例を示す。図１Ａと図１ＢのＣＰＵ１３、１５のコアの如き電子プロセッサは、割込みＩＮＴ−の如きコンテキスト信号に応答し、コンテキスト信号により識別される代替的な処理コンテキスト中で動作することができる。図２３はオーバヘッド零のコンテキスト切替に対するバンク切替方法を示す。主レジスタ８６１と相補レジスタ８６３はそのＤ入力をデマルチプレクサＤＭＵＸ８６５に接続される。レジスタ８６１と８６３のＱ出力はＭＵＸ８６７の各入力に接続される。ＣＯＵコアからの入力はＤＭＵＸ８６５に接続される。ＣＰＵコアへ復帰する出力はＭＵＸから提供される。ＭＵＸ８６５と８６７からの両方の選択線は割込みサービスルーチンＩＳＲが進行中にアクティブとなる回線に接続される。
【０４９０】
このようにして、主ルーチン内でただ一つだけのレジスタ８６１が動作する。割込みサービスルーチン中に、レジスタ８６３は動作し、一方レジスタ８６１はそこへ処理が復帰することになる内容を保持する。また、一対のＡＮＤゲート８７１と８７３もレジスタ８６１と８６３を活動させたり活動停止させたりする働きを行う。ＣＰＵ  ＷＲＩＴＥは各ＡＮＤゲート８７１と８７３の入力を修飾する。ＡＮＤゲート８７１と８７３の出力はそれぞれレジスタ８６３と８６１のクロック入力に接続される。ＩＳＲがローの主ルーチンでは、レジスタ８７３は修飾され、ＣＰＵ  ＷＲＩＴＥはレジスタ８６１をクロッキングする。ＡＮＤゲート８７１は主ルーチン内は割込み禁止される。ＩＳＲが割込み中にハイである場合、ＣＰＵ  ＷＲＩＴＥは修飾ＡＮＤゲート８７１を介してレジスタ８６３をクロッキングし、ＡＮＤゲート８７３は割込み禁止となる。
【０４９１】
図２４において、２個のレジスタ８８１と８８３は共にＤ入力がプロセッサ（例えばＡＬＵ２１）から同時に情報を受取るべく接続される。上記レジスタはこのコンテキスト切替構造の並行性を示すように線図内で明示的に反復されることによって、例えば、ＡＬＵ２１はレジスタ８８１と８８３の両方のＤ入力を供給する。その際、レジスタ８８１と８８３は累算器ＡＣＣ２３として作用するように図解してある。それに応じて、例えば累算器５３はレジスタ８９１と８９３を含むＰレジスタ５１をフィードする。（レジスタ８９３は図１ＡのＢＰＲ１８５と混同すべきではない。）ＭＵＸ８９５はその入力がそれぞれレジスタ８８１と８８３のＱ出力に接続される。ＭＵＸ８９７はその入力がそれぞれレジスタ８９１と８９３のＱ出力に接続される。レジスタ８８１と８９１のクロック入力は電子可逆スイッチ９０１のＡ出力に対して並列に接続される。レジスタ８８３と８９３のクロック入力は可逆スイッチ９０１のＢ出力に対して並列に接続される。割込みハードウェア９０３は割込み確認ＩＡＣＫに応答して割込みサービスルーチンが進行中に能動ＩＳＲ−Ｑ−出力を発生する。割込みハードウェア９０３はフリップフロップ９０５のトグルＴ入力を駆動する。フリップフロップ９０５のＱ出力は共に戦略レジスタ全体のＭＵＸと共にスイッチ９０１の第２入力とＭＵＸ８９５と８９７の選択入力に接続される。
【０４９２】
ＣＰＵ  ＷＲＩＴＥ回線はスイッチ９０１のＸ入力とＡＮＤゲート９０７の入出に接続される。割込みハードウェア９０３のローの能動ＩＳＲ−出力はＡＮＤゲート９０７の第２入力に接続される。そのゲートの出力はスイッチ９０１のＹ入力に接続される。
動作中、リセットされたハイは、Ｑ出力をハイにプルしＭＵＸ８９５にレジスタ８８１を選択させるフリップフロップ９０５のセット入力を初期化する。同様にして、スイッチ９０１はその結果ＸをＡに、ＴをＢに接続する。主ルーチン内では、ＩＳＲ−は不能動ハイとなりＡＮＤゲート９０７を修飾する。従って、ＣＰＵ  ＷＲＩＴＥ回線上の活動によって主ルーチン内の全レジスタ８８１、８８３、８９１、８９３がクロッキングされる。このことは例えば、ＡＬＵ２１からの情報が一時にレジスタ８８１と８８３内へクロッキングされ、乗算器５３からの情報が両レジスタ８９１に８９３内へクロッキングされることを意味する。
【０４９３】
その後、例えば割込みサービスルーチンがコンテキスト変更されると共に、ＩＳＲ−はローとなり、ＡＮＤゲート９０７は割込み禁止となる。その後、ＣＰＵ  ＷＲＩＴＥ活動によって割込みルーチンのためにレジスタ８８１と８９１がクロッキングされつづけるが、レジスタ８８３と８９３はクロッキングされることはない。そのため、不活動によって主ルーチンの内容はこれら後者の２つのレジスタ内にストアされる。それ故、コンテキスト切替えはいささかのタイムオーバヘッドもなく行われる。主ルーチンの如き原始テキストに復帰すると共に、ＩＳＲ−は再度ハイとなり、ＡＮＤゲート９０７を割込み可能にする。ローからハイへの遷移によってフリップフロップ９０５がトグルされ、ＭＵＸ８９５と８９７が状態を変更しレジスタ８８３と８９３を自動的に選択する。このことによって再び自動的なオーバヘッド零のコンテキスト切替えが行われる。フリップフロップ９０５がトグルされるため、スイッチ９０１は状態を変更しＸをＢに、ＹをＡに接続する。その後、ＣＰＵ  ＷＲＩＴＥ上の活動によって両方のフリップフロップが同時にクロッキングされ、レジスタ８８３と８９３が能動レジスタとなる。更なる割込み（ＩＳＲ−ロー）によってレジスタ８８１と８９１が割込禁止となる一方、レジスタ８８３と８９３は能動状態にとどまる。かくして図２４において、主レジスタもしくは相補レジスタは存在せず、その代わりに数対のレジスタがこれらの機能を共有することになる。
【０４９４】
かくして、図２４は演算回路を割込み信号の発生まで２個のレジスタの両方に接続するスイッチング回路を提供する。上記回路はレジスタの一つが割込信号に応答して演算装置からの情報をそれ以上ストアすることを一時禁止する。別言すれば、このコンテキストスイッチング回路は図２２と図２３のそれと同時に、第１と第２のレジスタを選択的にクロッキングする働きを行うものである。図２２と図２３の回路と異なり、図２４の回路は、共に、入力がプロセッサからの情報を同時に受取るように接続された第１と第２のレジスタを備える。プロセッサは既に論じたようなプログラムカウンタを備え、プログラムカウンタの断続性を伴う第１と第２のルーチンを実行するためにこれらのレジスタに接続される。
図２２−２４において、スタックは、事実上、一組のレジスタと関連し、プロセッサは、タスクが第２ルーチンに変更されるや、その複数のレジスタの内容をスタック上にプッシュする働きを行う。同様にして、割込みから復帰するや、プロセッサはスタックをポップアップして第１のルーチンが事実上即時に再開できるようにする。第２のルーチンは割込みサービスルーチンと、ソフトウェアトラップと、サブルーチン、プロシージャ、関数その他の任意のコンテキスト変更ルーチンとすることができる。
【０４９５】
図２５では、図２４の回路を動作させる方法がステップ９１１内のフリップフロップ９０５のＱ出力を初期化する。ステップ９１３内ではフリップフロップ９０５のＱ出力の状態に応じて出力ＭＵＸ８９５と８９７を動作させる処理が進行する。その後、デシジョンステップ９１５が内容が例えばＩＳＲ−信号に応じて切替えられるべきかどうかを判断する。もし否であれば、ステップ９１７中の処理によって全レジスタ８８１、８８３、８９１、８９３がクロッキングされ、ステップ９１３へ復帰する。そこから処理はステップ９１５内でコンテキストの切替えが生ずるまで無限に続けられる。かかる場合、分岐はステップ９１５からステップ９１９へ飛越し、ＭＵＸにより選択されたレジスタ（例えば８９５と８９７）のみをクロッキングする。復帰が行われた場合、Ｑはフリップフロップ９０５でトグルし、そこから処理はステップ９１３へ回帰して上記の如く無限に継続される。
【０４９６】
図２８は２個の命令ＣＲＧＴとＣＲＬＴの処理を記述するプロセス線図である。これら２つの命令は繰返し使用される場合に最大値と最小値を容易に計算できる高速の大小比較計算を伴う。処理はスタート９８１より開始され、ＣＲＧＴもしくはＣＲＬＴ命令が存在するかどうかを判断するステップに進む。存在すれば、処理はステップ９８５へ移行しＡＬＵ２１ないし累算器２３（図１Ａ）をストアする。その後、ステップ９８７において、ＡＬＵは図１ＡのＭＵＸ７７を介してＡＣＣＢ３１の内容を選択する。ステップ９８９において、ＡＬＵは共働して累算器２３の内容をＡＣＣＢ３１と比較演算し、減算によって例えば演算差の符号を取得する。ステップ９９１において、それぞれ命令ＣＲＧＴもしくはＣＲＬＴに応じて大小何れかの値を、比較の状態に従い、ＡＣＣ２３をＡＣＣＢ３１にストアするかそうすることを省略するか何れかによってＡＣＣＢ３１に供給する。例えば、もしＡＣＣ２３がＡＣＣＢ３１よりも大きな値を有し、命令がＣＲＧＴであるならば、ＡＣＣはＡＣＣＢにストアされ、さもなければストアされない。もしＡＣＣ２３がＡＣＣＢより小さな値を有し、命令がＣＲＬＴであれば、ＡＣＣはＡＣＣＢにストアされる。ＡＣＣＢが既に所望値を保持する場合には、転送によってＡＣＣＢをＡＣＣに書込む。次いで、テスト９９３によって一連の値が完全であるかどうかについて判断する。もし否であれば、処理はステップ９８３に復帰する。もしステップ９９３においてその値が完全であれば、処理はステップ９９５へ分岐してかくして計算された一連の値の最大最小値をストアする。
【０４９７】
一連の数字の最大値をスピーディに計算する能力は、乗数器もしくは利得係数が最大値に基づいていてより効果的に処理できるように入力信号の利得を上下させるようにした自動利得制御系において殊に有益である。かかる自動利得制御は、無線受信機、オーディオアンプ、モデム、およびＰＩＤアルゴリズムの如きアルゴリズムを活用する制御系においても使用される。ＰＩＤは比較例積分微分帰還制御方式である。更にもう一つの用途はパターン認識である。例えば、音声認識装置において、予めストアされた音声パターンを進入するとデータと比較することによる連続的な瞬断はテンプレート比較プロセス内の最大値を見ることによって判断される。同様にして、画像処理において、プロセッサによる辺縁検出によって輝度と色彩の強さが解析される。その強さが上昇した後突然下降すると、画像処理目的のために辺縁を示す最大値が発見される。
【０４９８】
このようにして、演算装置、命令デコーダ、累算器、追加レジスタが組合わされる。上記追加レジスタは演算装置に接続されることによって演算装置は第１の演算値を累算器へ送り、その後、命令デコーダからのコマンドに応じて追加レジスタの内容と累算器の内容の値の大小の別をレジスタに供給する。
一定時間にわたって累算器に供給される一連の演算値に対してコマンドを繰返し実行すると、レジスタに一連の演算値のうちの最大もしくは最小値が供給される。
多くのリアルタイムシステムではできる限り少ない機械サイクルで最大もしくは最小値を発見することは極めて重要である。問題はアルゴリズムの一時的結果が現在の最小もしくは最大値がストアされるデータメモリロケーションのワード幅よりも大きなビット数を有する累算器内にストアされる場合に複雑になる。更に、その問題は条件のテストが分岐を必要とするような高度にパイプライン化されたプロセッサによって複雑になる。両方の場合とも余分の機械サイクルを使用する羽目になる。データ転送処理でアドレスを設定する際に余分の機械サイクルが消費される可能性がある。
【０４９９】
然しながら、実施例の回路は累算器ＡＣＣ２３と同一のビット幅を有する並列レジスタＡＣＣＢ３１を備えている。最大もしくは最小値の機能が実行されるとき、プロセッサは累算器内の最終値を並行レジスタＡＣＣＢ内の値と比較して、もし最小値よりも小さいか最大値より大きければ、命令に応じて、それは累算器の値を並列レジスタ上に書き込むかあるいはその逆のことが行われる。これは全て１回の機械サイクル内で１個の命令語で行われるため、コード空間とプログラム実行時間を節約できる。同時にメモリのアドレス指定処理も不要であって、ＡＬＵ内の他のレジスタには影響を及ぼさない。
【０５００】
図２６はアドレス境界にソフトウェア待ち状態を持つ図１Ａおよび図１Ｂのデータ処理装置に、グルー論理（ｇｌｕｅ  ｌｏｇｉｃ）なしに相互接続するメモリとＩ／Ｏ周辺装置を備える改良システムのブロック図である。
図２７はアドレス境界にソフトウェア待ち状態を与える回路の部分的絵画図と部分的略図である。
図２９は図１Ａと図１Ｂのデータ処理装置のパイプライン構造を図示する、命令対命令の部分的グラフと部分的表である。
図３０は条件付き命令の優れた動作と従来の命令の動作とを比較する、図２９のパイプラインの別図である。
【０５０１】
図３１は図３０に示す優れた動作を行う条件付き命令を用いて多数の高精度算術を行うディジタル信号プロセッサを備える、改良ビデオシステムの電気ブロック図である。
図３２は条件付き分岐命令などの条件付き命令の状態ビットとマスクビットのブロック図である。
図３３は状態およびマスクビットを持たない命令レジスタと命令デコーダのブロック図である。
図３４は状態およびマスクビットを持つ条件付き命令を備える命令レジスタおよびデコーダを備える、図１Ａの改良データ処理装置の一部の詳細なブロック図である。
図３５は図３２と図３４の状態およびマスクビットを実現する回路の部分的略図と部分的ブロック図である。
【０５０２】
図３６は一般に電子部品の構成に適用できる改良を示す、図１Ａと図１Ｂのデータ処理装置のチップキャリアの、改良ピン出力または結合出力の絵画図である。
図３７は製造中の印刷回路上にある、図３６のチップキャリアの４方向の絵画図である。
図３８は製造中の図３７の印刷回路を拒否しまた受け入れる自動チップソケット化機械および試験領域の絵画図である。
図３９は図３８のシステムを用いる製造の流れ図である。
図４０は単一インライン型のチップ内の改良ピン出力構成の一形式である。
図４１は改良ピン出力構成の別の形式である。
【０５０３】
図４２は改良ピン出力構成を適用できまた変換矢印を示す、デュアルインライン構造の絵画図である。
図４３は改良ピン出力構成を適用できるピングリッドアレイ構造の、いくつかのピンの絵画図である。
【０５０４】
以上の記載に関連して、以下の各項を開示する。
１．コンテキスト信号に応答して同コンテキスト信号により識別される代替的な処理コンテキスト内で動作する電子プロセッサと、
上記電子プロセッサに接続され１つの処理コンテキストに参加すると共にもう一つの処理コンテキストからの情報をそれに復帰するまで保持する第１と第２のレジスタと、
上記第１と第２のレジスタに接続され処理コンテキストに応じて上記レジスタの電子プロセッサ間での入出力処理を選択的に制御するコンテキスト切替回路と、
から成るデータ処理装置。
２．上記コンテキスト切替回路が上記第１と第２のレジスタを選択的にクロッキングする働きを行う１項のデータ処理装置。
【０５０５】
３．上記第１のレジスタが、主レジスタとしてその後に相補レジスタとして交互に作用すると共に、上記第１のレジスタが主レジスタとして作用する時に上記第２のレジスタがそれに応じて相補レジスタとして作用した後に、上記第１のレジスタが相補レジスタとして作用する時に主レジスタとして作用する１項のデータ処理装置。
４．更に、電気モータと、
操作上上記電気モータと上記電子プロセッサに接続され、
デジタル信号が処理用に利用できることを示すコンテキスト信号と共に被処理デジタル信号を生成する手段と、を備え、
上記電子プロセッサ手段が更にその動作に基づいて制御信号を上記電気モータへ通信する出力周辺装置を備える１項の出力処理装置。
【０５０６】
５．更に、マイクロフォンと、
デジタル信号が処理用に利用可能であることを示すコンテキスト信号と共に被処理音声を表わすデジタル信号を生成するＡ／Ｄ変換手段と、
上記電子プロセッサに接続されフーリエ変換デジタル信号処理に応じて音声認識処理を実行する音声認識プロセッサと、から成り、
上記電子プロセッサ手段がフーリエ変換デジタル信号処理を実行するように適応される、１項のデータ処理手段。
６．更に、デジタル信号が処理用に利用可能なことを示すコンテキスト信号と共に処理される通信チャネルを表わすデジタル信号を生成するＡ／Ｄ変換手段と、
上記電子プロセッサに接続されデジタル信号処理に応じて通信処理を実行する送受信機と、を備え、
上記電子プロセッサがデジタルフィルタリングと、復調と、デスクランブリングにおいてデジタル信号処理を実行する、
第１項のデータ処理装置。
【０５０７】
７．命令デコーダと、
第１と第２の入力と出力を有する演算装置と、
上記演算装置の出力と第１入力間に接続された累算器と、
上記累算器と演算装置の第２入力間に接続されたレジスタ、より成り、
上記演算装置が、上記累算器に対するデジタル値を計算する手段と、その直後に上記レジスタからの第２入力における値を命令デコーダのコマンドに応じて上記累算器内のデジタル値と比較した後上記レジスタの内容の値と上記累算器内のデジタル値の大小関係をコマンドに応じて上記レジスタにストアする回路と、を備えるデータ処理装置。
８．一定時間にわたって上記累算器に対して供給される一連の演算器の各々についてコマンドを反復実行してそのコマンドに応じて一連の演算値内の最小もしくは最大値をレジスタに供給する第７項のデータ処理装置。
【０５０８】
９．上記比較ストア手段が減算モードで計算した後、上記レジスタの内容と上記累算器内のデジタル値間の演算差の符号に従ってストアする上記手段を動作させる手段を備える第７項のデータ処理装置。
１０．更に、アナログからデジタル形へ変化するレベルを有する信号を変換する変換回路と、
同信号の利得値をこのように計算された最大値の関数として自動的に調節する乗算手段と、から成り、
上記演算装置が上記変換回路に連結され、比較回路によって信号の最大値が計算される第７項のデータ処理装置。
【０５０９】
１１．更に、１パターンを表示する物理的入力に応じてデジタル信号を生成するセンサと、
上記命令デコーダに接続され、
上記演算装置によって同パターンを認識すべく実行される命令を保持するプログラムメモリと、を備え、
上記演算装置が上記センサに接続され、計算回路がそれによって演算差と命令の型に応じて信号の最大もしくは最小値を計算する、第７項のデータ処理装置。
１２．データバスとプログラムバスと、
上記データバスに接続されデータメモリロケーションを有するデータメモリと、
上記データバスに接続される電子計算装置と、上記電子計算装置とデータバスに接続される累算器と、
命令を受取るための上記プログラムバスと上記データバスに接続され、命令の少なくとも幾つかに従って論理処理を実行する論理手段と、
命令を上記プログラムバス上の論理手段と上記電子計算装置に送る制御手段とを、備え、
論理演算が上記累算器には影響を及ぼさず、上記電子計算装置とは独立に上記データメモリロケーションの少なくとも一つのビットに影響を及ぼす、データ処理装置を備える装置。
【０５１０】
１３．上記データ処理装置の電気ビットにより規定される命令に応答する電子的自動車制御装置と、
上記データ処理装置から上記電子自動車制御装置に選択ビットを供給するインターフェースと、
から成る第１２項の装置。
１４．更に、１プロセスの状態に応答するプロセス制御センサと、
上記データ処理装置の電気ビットにより規定される方向に応答するプロセス制御要素と、から成り、
上記データ処理装置が上記センサに接続され選択されたビットを上記プロセス制御要素に供給するインターフェースを備える第１２項の装置。
【０５１１】
１５．更に、Ａ／Ｄ変換とＤ／Ａ変換を組合わせた電話回線に接続するための変換回路を備え、
上記データ処理装置が上記変換回路に接続され電話と接続され、スクランブルと変調の双方の動作可能なシングルチップより成り、上記論理回路が変調プロセスで処理を行う上記電子計算装置と同時にスクランブルプロセスで処理を実行する、第１２項の装置。
１６．データ処理装置１１はコンテキスト信号（ＩＮＴ）に応答して同コンテキスト信号（ＩＮＴ）により識別される代替的な処理コンテキスト内で動作する電子プロセッサ１５を備える。第１と第２のレジスタ８５１，８５５は電子プロセッサ１５に接続されて１つの処理コンテキストに参加すると共に別の処理コンテキストからの情報をそれに復帰するまで保持する。コンテキストスイチング回路２３１，８５３，８５７は第１と第２のレジスタ８５１，８５５に接続され、処理コンテキストに応じて電子プロセッサ１５間でレジスタの入出力処理を選択的に制御する。他の装置、システム、方法も並行論理装置とシリーズ最小／最大関数計算用の構成を伴ったものが開示される。
【０５１２】
付録
エミュレータコマンド
区切り点コマンド
コマンド構文                          動作説明                  
ＢＡ  アドレス              区切り点取得：命令を命令レジスタにロード
したとき区切り点が発生
ＢＤ  識別番号              区切り点削除：区切り点番号（識別番号）を
削除）
ＢＬ  ファイル名            区切り点ロード：（ファイル名）に記憶され
ている区切り点をロード
ＢＲ                        区切り点除去：全ての区切り点を除去
ＢＳ  ファイル名            区切り点保存：全ての区切り点を（ファイル
名）に保存

【０５１３】
構成コマンド
コマンド構文                            動作説明                  
ＣＣ                            カラー構成：カラーをセット、スクリーンの
反転およびブリンク
ＣＭ                            メモリモード構成：モードを入力、ニューモ
ニックスの末尾の字とオペランドで定義され
る活動
ＣＭＡ  低アドレス、高アドレス  メモリ追加構成：メモリ構成に追加するメモ
型、｛Ｒ｜Ｒ／Ｗ｝      リのブロックを指定
ＣＭＤ  識別番号                メモリ削除構成：ＣＭＡコマンドで割り当て
られた（識別番号）により定義されるメモリ
を削除
ＣＭＥ  識別番号、低アドレス、  メモリ編集構成：ＣＭＡコマンドで割り当て
高アドレス、型、        られた（識別番号）により定義されるメモリ
｛Ｒ｜Ｒ／Ｗ｝          ブロックを編集する。
ＣＭＬ  ファイル名              メモリロード構成：（ファイル名）に記憶さ
れているメモリ構成をロード
ＣＭＲ                          メモリリセット構成：構成されたメモリを省
略時初期設定にリセット
ＣＭＳ  ファイル名              メモリ保存構成：メモリ構成を（ファイル名
）に保存

【０５１４】
表示コマンド
コマンド構文                          動作説明                    
ＤＢ〔開始位置〕                区切り点表示：区切り点コマンドによりセッ
トされた区切り点構成を表示
ＤＣ〔開始位置〕                メモリ構成表示：開始位置から始まるメモリ
構成を表示
ＤＥ                            式表示：ディスプレイ窓に式を表示
ＤＦ  ファイル名〔線番号〕      ファイル表示：（線番号）で始まるテキスト
ファイルを表示
ＤＭ  アドレス                  メモリ表示：（アドレス）で始まるメモリを
表示
ＤＳ〔開始位置〕                記号表示：全ての記号を表示または（開始位
置）線番号で開始
ＤＴ〔開始位置〕                追跡表示：追跡コマンドでセットされた追跡
構成を表示
ＤＶ                            バージョン表示：表示領域を消しバナーを印
刷

【０５１５】
式コマンド
コマンド構文                          動作説明                    
ＥＡ  式、〔名〕、〔基数〕、    式追加：オプションの既述子付き式を追加
｛Ｂ｜Ｗ｜Ｄ｝
ＥＤ  識別番号                  式削除：（識別番号）で識別される式を削除
ＥＦ  識別番号、｛Ａ｜Ｂ｜Ｄ｜  式様式：数値パラメータでセットされた式を
Ｆ｜Ｈ｜Ｏ｝              様式化
ＥＬ  ファイル名                式ロード：（ファイル名）から式をロード
ＥＮ  識別番号、名              式再命名：式の名を（名）に変更
ＥＳ  ファイル名                式保存：式を（ファイル名）に保存

【０５１６】
ジャーナルコマンド
コマンド構文                          動作説明                    
ＪＣ  ファイル名                ジャーナル捕獲：コマンドモードで、バッチ
実行のためにラインコマンドを（ファイル名
）に保存
ＪＥ  ファイル名                ジャーナル実行：ＪＣコマンドにより（ファ
イル名）に記憶されているコマンドを実行
ＪＳ                            ジャーナル捕獲停止：ＪＣコマンドの実行を
停止

【０５１７】
ロードコマンド
コマンド構文                          動作説明                    
ＬＢ  ファイル名                区切り点構成ロード：（ファイル名）から区
切り点構成をロード
ＬＣ  ファイル名                メモリ構成ロード：（ファイル名）からメモ
リ構成をロード
ＬＥ  ファイル名                式ロード：（ファイル名）から式をロード
ＬＭ  ファイル名                メモリダンプロード：（ファイル名）を対応
するＳＭコマンドでセットされた位置のメモ
リにロード
ＬＯ  ファイル名                ＣＯＦＦファイルロード：（ファイル名）と
いう名のＣＯＦＦファイルをロード
ＬＲ  ファイル名                レジスタ構成ロード：（ファイル名）に記憶
されている構成をレジスタにロード
ＬＴ  ファイル名                追跡構成ロード：（ファイル名）に記憶され
ている追跡構成をロード

【０５１８】
メモリコマンド
コマンド構文                          動作説明                    
ＭＡ  アドレス、文              メモリアセンブル：（アドレス）の原始文を
示す。また新しい文を入力／アセンブル
ＭＦ  開始アドレス、終了        メモリ充填：（開始アドレス）から（終了ア
アドレス、値              ドレス）まで（値）を充填
ＭＭ  アドレス、値              メモリ修正：位置（アドレス）を（値）に変
更

【０５１９】
オペレーティングシステム、レジスタ／式コマンド
コマンド構文                          動作説明                    
Ｏ                              オペレーティングシステムに避難（エミュレ
ータはメモリに保持）
Ｑ                              エミュレーションセッション終了（エミュレ
ーションセッションはメモリに保持せず）
Ｒ  レジスタ、値                （レジスタ）に（値）を充填（式の結果でも
よい）

【０５２０】
保存コマンド
コマンド構文                          動作説明                    
ＳＢ  ファイル名              区切り点構成保存：区切り点構成を（ファイル
名）に保存
ＳＣ  ファイル名              メモリ構成保存：メモリ構成を（ファイル名）
に保存
ＳＥ  ファイル名              式保存：式を（ファイル名）に保存
ＳＭ  ファイル名、開始        メモリダンプ保存：メモリダンプを（開始アド
アドレス、終了アドレス  レス）から（終了アドレス）まで保存、（ファ
イル名）に保存
ＳＲ  ファイル名              レジスタ保存：レジスタを（ファイル名）に保
存
ＳＴ  ファイル名              追跡構成保存：追跡構成を（ファイル名）に保
存

【０５２１】
追跡コマンド
コマンド構文                          動作説明                    
Ｔ                            モード追跡：モードを入力：ニューモニックの
末尾の文字とオペランドで定義される活動
ＴＢ                          底追跡：追跡ファイルの底を表示
ＴＤ                          使用禁止追跡：追跡内の追跡サンプルの収集を
一時停止し、ＴＥコマンドで開いたファイルを
閉じる
ＴＥ  ファイル名、式          使用可能追跡：式が非ゼロの場合は追跡内の追
跡サンプルの収集を可能にし、新しいファイル
として（ファイル名）を開いてサンプルを収集
ＴＦ  列番号、式              様式追跡：報告を追跡して、（列番号）で指定
された様式列にある（式）の結果を示す（０列
には（式）は必要ない）
ＴＬ  ファイル名              ロード追跡：（ファイル名）に保存されている
追跡構成をロード
ＴＰ  サンプル番号            位置追跡：（サンプル番号）で始まる追跡を表
示
ＴＳ  ファイル名              保存構成追跡：追跡構成を（ファイル名）に保
存
ＴＴ                          トップ追跡：追跡ファイルのトップに表示
ＴＵ  識別番号                不定様式追跡：追跡構成から（識別番号）式を
削除
ＴＸ                          実行追跡：オペランド（実行コマンドのオペラ
ンドと同じ）で指定された様式で実行

【０５２２】
実行コマンド
コマンド構文                          動作説明                    
Ｘ                            モード実行：モードを入力。ニューモニックの
末尾の文字とオペランドで定義される活動
ＸＢ                          ベンチマーク実行：現在のＰＣ値から実行。最
初の区切り点で一時停止。開始から区切り点ま
で実行したクロックサイクル数をＣＬＫレジス
タに表示
ＸＣ  〔サイクル計数〕        サイクル実行：（サイクル計数）（クロックサ
イクル）の間実行
ＸＤ                          切離し実行：エミュレータをユーザ実行モード
にして、エミュレータをターゲットシステムか
ら機能的に切り離す
ＸＧ                          進行実行：現在のＰＣ値から実行
ＸＩ  〔計数〕                命令実行：現在のＰＣ値からまたは区切り点ま
で１（省略値）または（計数）命令を実行
ＸＬ  〔計数〕                ループ実行：ＰＣ値が実行開始の時と同じ値に
戻る回数を数えながら実行を監視
ＸＯ                          接続実行：エミュレータをターゲットシステム
に機能的に接続
ＸＲ                          リセット実行：ピンＲＥＳＥＴを表明したかの
ようにＴＭＳ３２０Ｃ３０をリセット。リセッ
トベクトルアドレス（０ｘ００００００）の値
をＰＣに置く

【図面の簡単な説明】
【０５２３】
本発明は以下の図面を参照して詳細な説明を読めばよく理解できる。
【図１】Ａはシングル半導体チップ上に形成されるＣＰＵまたは中央処理装置を備える改良マイクロコンピュータ装置の電気ブロック図の半分。  Ｂはシングル半導体チップ上に形成されるＣＰＵまたは中央処理装置を備える改良マイクロコンピュータ装置の電気ブロック図の半分。
【図２】改良産業プロセスと保護目的制御システムのブロック図。
【図３】改良自動車装置の一部はそのまま描いた、一部はブロック状の電気図。
【図４】改良モータ制御装置の電気ブロック図。
【図５】もう一つの改良モータ制御装置の電気ブロック図。
【図６】更にもう一つの改良モータ制御装置の電気ブロック図。
【図７】改良ロボット制御装置の電気ブロック図。
【図８】改良衛星テレコミュニケーション装置の電気ブロック図。
【図９】図８の装置の改良エコー消去装置の電気ブロック図。
【図１０】改良モデム送信機の電気ブロック図。
【図１１】図１０と同様に改良モデム送信機のハードウェアブロックまたはプロセスブロックを表示する電気ブロック図。
【図１２】同様に改良モデム受信機のハードウェアブロックまたはプロセスブロックを表示する電気ブロック図。
【図１３】ＰＣＭ（パルス符号変調）通信用に接続されたホストコンピュータとデジタル信号プロセッサを含む改良装置の電気ブロック図。
【図１４】多次元アレイ処理を有する改良ビデオ画像装置の電気ブロック図。
【図１５】同様に改良された図形、画像、ビデオ処理のためのハードウェアブロックまたはプロセスブロックを表す電気図。
【図１６】改良された図形、画像、ビデオ処理用装置の電気ブロック図。
【図１７】改良自動音声認識装置の電気ブロック図。
【図１８】暗号を有する改良ボコーダモデム装置の電気ブロック図。
【図１９】情報ビットを保持し、図１Ｂの並行論理装置のビット処理を示す一連の７つの電子レジスタの図。
【図２０】サンプリング高速度のデジタル信号処理用の改良装置の電気ブロック図。
【図２１】図１Ａ、１ＢのＣＰＵを含む改良データ処理装置のアーキテクチャーの電気ブロック図。
【図２２】オーバヘッドゼロの割込みコンテキスト切替え用回路の概略図。
【図２３】オーバヘッドゼロの割込みコンテキスト切替え用代替回路の概略図。
【図２４】オーバヘッドゼロの割込みコンテキスト切替え用代替回路の概略図。
【図２５】図２４の回路を動作させる方法のフローダイアグラム。
【図２６】アドレス境界にソフトウェア待ち状態を持つ図１Ａおよび図１Ｂのデータ処理装置に、グルー論理（ｇｌｕｅ  ｌｏｇｉｃ）なしに相互接続するメモリとＩ／Ｏ周辺装置を備える改良システムのブロック図。
【図２７】アドレス境界にソフトウェア待ち状態を与える回路の部分的絵画図と部分的略図。
【図２８】図１Ａと図１Ｂのデータ処理装置内の最大最小値を自動的に計算するための命令を示すプロセス流れ図。
【図２９】図１Ａと図１Ｂのデータ処理装置のパイプライン構造を図示する、命令対命令の部分的グラフと部分的図表。
【図３０】条件付き命令の優れた動作と従来の命令の動作とを比較する、図２９のパイプラインの別図。
【図３１】図３０に示す優れた動作を行う条件付き命令を用いて多数の高精度算術を行うディジタル信号プロセッサを備える、改良ビデオシステムの電気ブロック図。
【図３２】条件付き分岐命令などの条件付き命令の状態ビットとマスクビットのブロック図。
【図３３】状態およびマスクビットを持たない命令レジスタと命令デコーダのブロック図。
【図３４】状態およびマスクビットを持つ条件付き命令を備える命令レジスタおよびデコーダを備える、図１Ａの改良データ処理装置の一部の詳細なブロック図。
【図３５】図３２と図３４の状態およびマスクビットを実現する回路の部分的略図と部分的ブロック図。
【図３６】一般に電子部品の構成に適用できる改良を示す、図１Ａと図１Ｂのデータ処理装置のチップキャリアの、改良ピン出力または結合出力の絵画図。
【図３７】製造中の印刷回路上にある、図３６のチップキャリアの４方向の絵画図。
【図３８】製造中の図３７の印刷回路を拒否しまた受け入れる自動チップソケット化機械および試験領域の絵画図。
【図３９】図３８のシステムを用いる製造の流れ図。
【図４０】単一インライン型のチップ内の改良ピン出力構成の一形式。
【図４１】改良ピン出力構成の別の形式。
【図４２】改良ピン出力構成を適用できまた変換矢印を示す、デュアルインライン構造の絵画図。
【図４３】改良ピン出力構成を適用できるピングリッドアレイ構造の、いくつかのピンの絵画図。
【図４４】集積回路チップソフトウエアの開発のための開発ツールの絵画図。
【図４５】エミュレーション、シミュレーション、試験と付属のプロセッサのデータ処理、通信Ｉ／Ｏおよび周辺装置アクセスのためのシステム構成の部分的絵画図および部分的ブロック図。
【図４６】図４５のホスト計算機のソフトウエア構成図。
【図４７】モジュラーポート走査（ＭＰＳＤ）配置のブロック図。
【図４８】走査試験／ＭＰＳＤ構成のブロック図。
【図４９】試験およびエミュレーション回路の統合した手法のブロック図。
【図５０】Ａは走査試験インターフェースの部分的ブロック図および部分的略図。Ｂは図５０Ａの試験アクセスポート（ＴＡＰ）の状態移行図。
【図５１】チップ上のプロセッサチップドメイン、境界走査、走査試験／エミュレーション回路のブロック図。
【図５２】いろいろのドメインに割り当てられたチップの機能ブロックとメッセージ通過回路を示す、図５１のプロセッサチップのブロック図。
【図５３】図５１と図５２のプロセッサチップの部分的絵画図および部分的ブロック図。
【図５４】図５０Ａより詳細な走査経路のブロック図。
【図５５】図５４より詳細な走査経路のブロック図。
【図５６】制御アダプタとドメインとの接続と名称を示すブロック図。
【図５７】ドメイン内のモジュールとモード駆動停止プロセスを示すブロック図。
【図５８】図４５、５０Ａ、５７、５９Ａのシステムのエミュレーション、シミュレーション、試験の動作の流れ図。
【図５９】Ａは図４９、５１、５２、５３、５６、５７のアダプタの詳細なブロック図。Ｂは図５９Ａの走査連鎖内のシフトレジスタラッチＳＲＬのコンパクトな図。
【図６０】図５９Ａのアダプタ内のコード状態機械とイベントマネージャ回路の略図。
【図６１】図６０のコード状態機械の状態移行図。
【図６２】図５９Ａのアダプタの選択およびフリップフロップ回路の略図。
【図６３】図５９Ａのアダプタのロック制御回路の略図。
【図６４】ドメインにコードを供給する、図５９Ａアダプタの３つの同一の論理回路の中の１つの略図。
【図６５】ドメインへの機能クロックＦＣＬＫと試験クロックＪＣＬＫを切り替える、図５９Ａアダプタの３つの同一のクロック制御回路の中の１つの略図。
【図６６】ウエーハ製造におけるウエーハ上の多数の集積回路を試験する試験システムの絵画図。
【図６７】図６６の試験システムの動作の流れ図。
【図６８】Ａはエミュレーション、シミュレーション、試験のために改良された中央処理装置ＣＰＵコアのブロック図の半分。  Ｂはエミュレーション、シミュレーション、試験のために改良された中央処理装置ＣＰＵコアのブロック図の半分。
【図６９】集積回路装置の動作を監視する分析回路のブロック図。
【図７０】図６９の分析回路の動作の流れ図。
【図７１】図６８Ａのハードウエア区切り点回路のブロック図。
【図７２】図６８Ａの追跡スタックのブロック図。
【図７３】図６８Ａの追跡スタックとプログラムカウンタスタックの動作の流れ図。
【図７４】プロセッサ装置のアドレスマップ。
【図７５】追跡スタックではなくてプログラムカウンタスタックの内容の時間的図。
【図７６】シミュレートされた周辺装置アクセスのためのシステムの部分的絵画図および部分的ブロック図。
【図７７】図７６のシステムの動作の流れ図。
【図７８】図５２のメッセージ通過回路のブロック図。
【図７９】図４５のシステムを動作させる付属プロセッサ法の流れ図。
【図８０】グラフィックスシステムプロセッサＧＳＰチップのブロック図。
【図８１】図８０のＧＳＰチップのＣＰＵ部分で、試験、エミュレーション、シミュレート回路を示す詳細なブロック図。
【図８２】図８０のＧＳＰチップを動作させるクロック波形の波形図。
【図８３】図８０のＧＳＰチップに用いられる並列レジスタラッチの略図。
【図８４】図８０のＧＳＰチップに用いられる直列レジスタラッチの略図。
【図８５】図８０のＧＳＰチップの制御ＲＯＭ（ＣＲＯＭ）のブロック図。
【図８６】図８５のＣＲＯＭのシグネチャ分析試験回路の詳細なブロック図。
【図８７】図８６のシグネチャ分析試験回路内のセル略図。
【図８８】多数のクロックドメインを備える装置全体に本発明が制御を分配する方法の一例を示すブロック図。
【図８９】図８８のクロックドメインの１つの一部の略図。
【図９０】図６２の一部の修正の略図。
【符号の説明】
【０５２４】
１１  装置
１０４３  回路基板
１０４４  応用ホスト計算機
１１０１  開発システム
１１０３  直列の線
１１１１  評価モジュール
１１１３  アナログインターフェース基板
１１２１  原始コード
１１２３  Ｃコンパイラ
１１２５  原始コード
１１２７  アセンブラ
１１２９  リンカー
１１３１  シミュレータ
１１４１  コントローラカード
１１４３  プリンタ
１１４５  ハードディスク
１１４７  通信モデム
１１４８  バス
１１４９  ＪＴＡＧ走査インターフェース
１２０１  試験性走査制御
１２０３  エミュレーションアダプタ
１２１１  境界走査
１２１３  ＣＰＵコアドメイン
１２１５  システムドメイン（メモリおよび周辺装置）
１２１６  メッセージ通過回路
１２１７  分析ドメイン
１２５１  エミュレーション制御レジスタ
１３７１，１３７３，１３７５  選択論理回路
１３８１  コード状態機械
１４０１  ロック制御回路
１５１７，１５１９，１５２３  シフトレジスタラッチ（ＳＲＬ）
１６５１  試験ヘッド
１６５３  製作ライン
１６５５  ウエーハ
１６６５  接触線
１８２１  プログラムカウンタ追跡スタック回路
８８０１，８８０３  バス
８９０５，８９０７  ラッチ
８９０９，８９１１，８９１３  ラッチ
【図１】
2006349699.tif 000004
【図２】
2006349699.tif 000005
【図３】
2006349699.tif 000006
【図４】
2006349699.tif 000007
【図５】
2006349699.tif 000008
【図６】
2006349699.tif 000009
【図７】
2006349699.tif 000010
【図８】
2006349699.tif 000011
【図９】
2006349699.tif 000012
【図１０】
2006349699.tif 000013
【図１１】
2006349699.tif 000014
【図１２】
2006349699.tif 000015
【図１３】
2006349699.tif 000016
【図１４】
2006349699.tif 000017
【図１５】
2006349699.tif 000018
【図１６】
2006349699.tif 000019
【図１７】
2006349699.tif 000020
【図１８】
2006349699.tif 000021
【図１９】
2006349699.tif 000022
【図２０】
2006349699.tif 000023
【図２１】
2006349699.tif 000024
【図２２】
2006349699.tif 000025
【図２３】
2006349699.tif 000026
【図２４】
2006349699.tif 000027
【図２５】
2006349699.tif 000028
【図２６】
2006349699.tif 000029
【図２７】
2006349699.tif 000030
【図２８】
2006349699.tif 000031
【図２９】
2006349699.tif 000032
【図３０】
2006349699.tif 000033
【図３１】
2006349699.tif 000034
【図３２】
2006349699.tif 000035
【図３３】
2006349699.tif 000036
【図３４】
2006349699.tif 000037
【図３５】
2006349699.tif 000038
【図３６】
2006349699.tif 000039
【図３７】
2006349699.tif 000040
【図３８】
2006349699.tif 000041
【図３９】
2006349699.tif 000042
【図４０】
2006349699.tif 000043
【図４１】
2006349699.tif 000044
【図４２】
2006349699.tif 000045
【図４３】
2006349699.tif 000046
【図４４】
2006349699.tif 000047
【図４５】
2006349699.tif 000048
【図４６】
2006349699.tif 000049
【図４７】
2006349699.tif 000050
【図４８】
2006349699.tif 000051
【図４９】
2006349699.tif 000052
【図５０】
2006349699.tif 000053
【図５１】
2006349699.tif 000054
【図５２】
2006349699.tif 000055
【図５３】
2006349699.tif 000056
【図５４】
2006349699.tif 000057
【図５５】
2006349699.tif 000058
【図５６】
2006349699.tif 000059
【図５７】
2006349699.tif 000060
【図５８】
2006349699.tif 000061
【図５９】
2006349699.tif 000062
【図６０】
2006349699.tif 000063
【図６１】
2006349699.tif 000064
【図６２】
2006349699.tif 000065
【図６３】
2006349699.tif 000066
【図６４】
2006349699.tif 000067
【図６５】
2006349699.tif 000068
【図６６】
2006349699.tif 000069
【図６７】
2006349699.tif 000070
【図６８】
2006349699.tif 000071
【図６９】
2006349699.tif 000072
【図７０】
2006349699.tif 000073
【図７１】
2006349699.tif 000074
【図７２】
2006349699.tif 000075
【図７３】
2006349699.tif 000076
【図７４】
2006349699.tif 000077
【図７５】
2006349699.tif 000078
【図７６】
2006349699.tif 000079
【図７７】
2006349699.tif 000080
【図７８】
2006349699.tif 000081
【図７９】
2006349699.tif 000082
【図８０】
2006349699.tif 000083
【図８１】
2006349699.tif 000084
【図８２】
2006349699.tif 000085
【図８３】
2006349699.tif 000086
【図８４】
2006349699.tif 000087
【図８５】
2006349699.tif 000088
【図８６】
2006349699.tif 000089
【図８７】
2006349699.tif 000090
【図８８】
2006349699.tif 000091
【図８９】
2006349699.tif 000092
【図９０】
2006349699.tif 000093