JPH10326189A - プロセッサ命令実行パイプラインにおける非侵入ソフトウェアブレークポイント - Google Patents
プロセッサ命令実行パイプラインにおける非侵入ソフトウェアブレークポイントInfo
- Publication number
- JPH10326189A JPH10326189A JP9370527A JP37052797A JPH10326189A JP H10326189 A JPH10326189 A JP H10326189A JP 9370527 A JP9370527 A JP 9370527A JP 37052797 A JP37052797 A JP 37052797A JP H10326189 A JPH10326189 A JP H10326189A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- register
- code
- state
- bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/362—Debugging of software
- G06F11/3648—Debugging of software using additional hardware
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Debugging And Monitoring (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
デバッグとエミュレーションが行えるエミュレーション
ユニットと共に、マイクロプロセッサ1および周辺装置
を備えた集積回路上のデータ処理システムを提供する。 【解決手段】 マイクロプロセッサ1は、フェッチ/デ
コードユニット10a〜cと機能実行単位12、14、
16、18に関連のある複数の実行段階を備えた命令実
行パイプラインを有している。マイクロプロセッサ1の
パイプラインが非保護であることから、命令記憶装置2
3に記憶されたシステムプログラムコードによって、デ
ータメモリ22およびレジスタファイル20へのメモリ
アクセスの待ち時間が利用できる。エミュレーションユ
ニット50は、無関係な演算の発生等、エミュレーショ
ン中にメモリ22〜23や周辺装置60〜61に影響を
及ぼすような事態を回避するような方法で演算を行う。
Description
サに関し、詳しくは、VLIW(超長命令語)プロセッ
サのアーキテクチャに関するものである。
回路の製造技術が進歩するにつれ、単一の集積回路装置
内に、ますます多くの論理機能が収容されるようになっ
ている。現代の集積回路(IC)装置には、一つの半導
体チップ上に多数のゲートが配置され、このようなゲー
トを相互接続することによって、例えば、汎用マイクロ
プロセッサにあるような多種多様で複雑な機能を実現で
きるようになっている。そうした超LSI(VLSI)
を組み込んでいるこのような回路の製造には、回路の組
立てにミスがないことが要求される。というのも、製造
に何かしら欠陥があれば、そのことによって、設計の目
的である機能がすべて実行できなくなる可能性も出てく
るからである。このようなことから、上に述べた回路の
設計に関する検査を行い、かつ製造後に電気的な各種テ
ストを行う必要性が生じている。
れて、回路内の各装置の検証や電気的テストにかかるコ
ストならびに困難さも増している。電気的テストの観点
から言えば、VLSI回路の各ゲートが正しく機能して
いることを全体的に検証するためには、原則的に、(デ
ジタル的に、各ゲートがスタックオープンにもスタック
クローズにもなっていないと判断し、)ゲートの各々を
個別的に実行できるだけでなく、回路内の他のゲートと
関連性を保ちながら、想定可能なあらゆる演算の組み合
わせによって実行できなければならない。このようなこ
とは、通常、テストベクトルを用いて所望のテストを実
行する自動検査装置(ATE)によって行われる。テス
トベクトルは、一定時間中のすべてのパッケージピンに
対する所望のテスト入力(または信号)、関連する1ク
ロックパルス(または複数パルス)、予想されるテスト
出力(または信号)のことを言い、また、ある特定のゲ
ート(またはマクロ)の[テスト]を試みる場合に用い
られることも多い。複雑な回路では、膨大なテストベク
トルを有することになり、したがって、テスト時間が長
くなる。また、この文章中において、マクロとセルは、
同じものを意味しており、相互に交換可能なものとして
使用できる。
テスト効率の向上化を図るうえで、縮退故障モデリング
技法を用いてきた。縮退故障モデリングは、個々のゲー
トに生じるスタックオープンまたはスタッククローズ故
障に対して行われるのではなく、論理回路のスタックハ
イおよひスタックローノードを引き起こすそのような不
良ゲート(および不良相互接続)が及ぼす影響に対して
行われる。したがって、論理回路のエクササイズを行う
ために、テストベクトルの最小パターンが導き出された
のである。欠陥がある場合に、このようなテストベクト
ルを回路に当てはめることによって、スタックハイおよ
びスタックローノードを検出する。このような技法は、
これまでに各世代のVLSI回路のテスト効率の改善に
役立ってきた。
は、特殊な信号の組み合わせ以外はすべてアクセス不可
能なゲートがいくつか存在し、したがって、非常に特殊
なパターンを持つ信号がない限り、故障が隠れた状態に
なる。しかしながら、各ゲートに対して想定可能な各組
み合わせを施すのに長時間を要することと、各回路の実
行に必要な検査装置の高いコストがかかることを考え合
わせると、製造された回路を100%テストするコスト
は莫大なものとなる。このようなことから、過去に、集
積回路の製造業者は、チップ内の能動素子の全部に満た
ないテストの実行を余儀なくされたことにより、これに
付随する製品の質的水準が、最適レベルを下回るように
なったことがある。したがって、集積回路設計の最大の
問題の一つとして言えるのは、最終的なIC設計を適切
にテストする能力であり、この問題は、集積回路がより
複雑になるにつれ、ますます重大なものとなっている。
化設計(DFT)がある。DFTの重要なコンセプト
は、制御可能性と観察可能性である。制御可能性とは、
回路内に配置されたどのノードの状態も設定ならびにリ
セットできる能力のことを言い、観察可能性とは、回路
内の任意のノードの状態を直接もしくは間接に観察でき
る能力のことを言う。DFTの目的は、外部入力/出力
から内部および外部ノードを制御ならびに観察する能力
を高めることにある。すなわち、DFT技術は、論理の
検証やDCパラメトリックのテストに使用してもよい。
影響をある程度与えることになり、さらに論理を加える
ことになろう。このような論理の追加によって、設計の
実現に必要なシリコンの量が増大する。テスト性の強化
によって節約される分は、大抵、回路の開発時間やテス
トにかかるコスト、さらにそのエンドシステムが分析さ
れるまで現われてこない。
生成と組み合わせて、テスト性の改善のため特に設計さ
れたVLSI回路に他の回路を組み込むことも可能であ
る。テスト回路の一種として、論理回路内のスキャンパ
スがある。スキャンパスは、一連の同期クロック式マス
タ/スレーブラッチ(またはレジスタ)によって構成さ
れており、各ラッチは、論理回路の特定ノードにそれぞ
れ接続されている。このようなラッチは、論理回路ノー
ドを既定の状態に予め設定し、直列データストリーム
(スキャンイン)によってロードすることができる。し
たがって、通常の方法で、論理回路のエクササイズを行
うことができるうえ、(スキャンラッチを備えた各ノー
ドの)演算結果は、各ラッチに記憶される。ラッチの内
容を直列にアンロード(スキャンアウト)することによ
って、関連ノードの特定のテスト演算結果を読み出し
て、誤ったノード演算の分析を行うことができる。多く
の多様なデータパターンを用いてこの演算を繰り返すこ
とにより、論理回路に必要な組み合わせをすべて効果的
にテストできるが、各能動部品またはセルならびに想定
可能なあらゆる相互作用を個別にテストする場合に比べ
て、テスト時間が短くなるうえにコストも低下する。ま
た、スキャンパスは、ラッチ(またはレジスタ)に直接
書き込むことによって、また、ラッチ(またはレジス
タ)の内容を直接観察することによって、回路の初期化
が行える。スキャンパスの使用は、従来の[機能モー
ド]法に比べて、テストベクトル量を減少させるうえで
有効である。このようなデータのスキャン技法について
は、[A Survey of Design for
Testability Scan Techniq
ues](VLSI Design: 第5巻、No.
12、1984年12月発行。P.38〜61)の中
で、E.J.McCluskeyによって述べられてい
る。
積回路の利用者は、利用者の用途に合わせてカストマイ
ズされた機能を実行する目的から、特別に設計され組み
立てられた集積回路を必要とするようになってきてい
る。このような集積回路は、エーシック(ASIC:
特定用途向け集積回路)と呼ばれている。プログラマブ
ルファームウェアに実装されている特殊な機能を備えた
汎用マイクロコンピュータとコスト面で競合し、さら
に、小規模集積回路により形成されたボード設計とコス
ト面で競合するASIC装置の場合、ASIC回路の設
計時間を短縮しなければならず、ASIC回路は、低コ
ストで製造可能かつテスト可能でなくてはならない。し
たがって、このような回路が設計上モジュール化されて
各モジュールが一定の機能を実行する方法が有効とな
り、これにより、予め設計された回路のモジュールを組
み合わせて新たなASIC回路を形成することが可能に
なる。このような方法は、非ASICマイクロコンピュ
ータおよびマイクロプロセッサにも利用できる。最終生
成品の如何を問わず、モジュール化の方法を用いること
によって、設計者は、予め検証され製造可能性が立証さ
れた論理を採用することができる。しかしながら、現在
のスキャンパスを収容している論理モジュールが新たな
回路に利用される場合に、通常、新規装置に新規テスト
パターンが必要になることから、設計/製造サイクルタ
イムが長くなる。
路を利用するモジュール化方式によって、予想可能なあ
らゆる欠陥が完全にカバーされてきた。しかし、この方
式は、システムバスを用いてスキャンテストのセットア
ップと操作を行うことから、各モジュールが他とは無関
係にテストされたとしても、一定のモジュールに対して
設計されたテストパターンは、バス制御とモジュール選
択のために、論理回路内の他のモジュールの演算に依存
することになる。その結果、特定のモジュールに関する
テスト性は、他のモジュールの障害のない演算に左右さ
れることになる。さらに、一定のモジュールのテスト条
件を設定する自動テストパターン生成(ATPG)プロ
グラムは、他のモジュールに対する該当モジュールの位
置と、このような他のモジュールの動作特性に依存して
いる。したがって、テスト時間とコストの削減は、この
ようなモジュール化によって実現可能ではあるものの、
個々のモジュールのスキャンパスのロード/アンロード
にシステムバスを利用することによって、特定モジュー
ルの演算に影響するだけでなく、一定のモジュールに対
してテストプログラムをある論理回路から別の論理回路
へ[ポートする]ことができなくなる可能性も出てく
る。
が使用されている(メガモジュールは、テキサスインス
ツルメンツ社の商標である)。メガモジュールには、S
RAM、FIFO、レジスタファイル、RAM、RO
M、UART(ユアート: 汎用非同期式レシーバトラ
ンスミッタ)、プログラマブルロジックアレイ等の論理
回路の各タイプがある。メガモジュールは、通常、複雑
性において少なくとも500ゲートから成りかつ複雑な
ASICマクロ機能を有する集積回路モジュールとして
定義されている。このようなメガモジュールは、予め設
計し、かつASIC設計ライブラリに保存しておくこと
ができる。したがって、設計者がメガモジュールを選択
し、設計されたICチップの一定領域内に配置すること
ができる。このため、ASIC設計者は、メガモジュー
ルを、単純マクロと同じくらい容易に各自の論理に組み
入れることができるようになる。
決するもう一つの方法は、いわゆるパラレルモジュール
テスト(PMT)の使用であり、[直接接続(dire
ctconnect)]スキームと呼ばれることも多い
(パラレルモジュールテストは、テキサスインスツルメ
ンツ社の商標である)。PMTは、直接接続スキームで
あるが、これは、外部ピンをメガモジュールに接続し、
それ以外の論理回路やバッファ等をすべてバイパスする
からである。このPMTは、主に論理検証テスト性スキ
ームとして作製されたものであり、最近では、限定的な
VIH/VILおよびICCQテスト性スキーム向けに
強化されている。しかしながら、このPMTにも問題が
発生する可能性はある。つまり、テスト選択中および割
込み許可中に、ASIC回路の論理状態が、テストプロ
セスの一部として混乱する可能性が生じるからである。
9.1標準のいわゆるJTAGテストポートによって定
義されたテストアクセスポートおよび境界スキャンアー
キテクチャが挙げられる。IEEE1149.1は、主
に、システムテスト法に対して提供されており、IEE
E1149.1標準では、テスト機能専用に使用される
最小限の4本の実装ピンを備えていればよい。しかし、
IEEE1149.1標準では、各I/Oバッファ用に
境界スキャンセルを備える必要があり、これによって、
シリコンオーバヘッドだけでなく、すべての正常な演算
機能ピンに対してさらにデータの遅延を引き起こすこと
になる。また、IEEE1149.1標準は、内部テス
ト性スキームの一部を制御する[フック]を有している
が、チップレベルのテストに最適化されていない。つま
り、IEEE1149.1は、内部DCパラメトリック
のテストを明示的にはサポートしていない。さらに、ソ
フトウェアブレークポイント(SWBP)によって、マ
イクロプロセッサコードのデバッグとシステム性能評価
が行える別の構造が考えられる。SWBPは、プログラ
ムが、停止ポイントの演算コードがメモリ内でソフトウ
ェアブレークポイントの演算コードと交換できる書込み
可能記憶装置モジュールにあれば、通常、演算コードの
置換によって得られる。大抵のマシンでは、SWBP演
算コードが命令実行パイプラインの最初の実行段階に達
すると、パイプラインに進行を停止させるか、あるい
は、割込みサービスルーチンへトラップさせて、パイプ
ラインが停止もしくはトラップしたことを示すデバッグ
状態ビットを設定する。保護パイプラインとして分類さ
れているプロセッサでは、SWBPの後にそのパイプラ
インにフェッチされた命令は実行されない。一方、すで
にそのパイプラインにある命令は、完了させることがで
きる。実行をリスタートするときは、パイプラインをク
リアして、演算コードがメモリ内で最初の演算コードに
置き換えられた後にSWBPメモリアドレスの演算コー
ドを先取りするだけで、リスタートできる。
法の利用によってシステムの性能向上を試みる傾向が高
まっている。現代のマイクロプロセッサの一部に応用さ
れている1並列アーキテクチャに、VLIW(超長命令
語)アーキテクチャがある。VLIWアーキテクチャマ
イクロプロセッサは、VLIW形式の命令を扱うことか
ら、このように呼ばれている。VLIW形式命令とは、
多重並行演算を符号化する長い固定長命令のことであ
る。VLIWシステムでは、複数の独立した機能単位を
使用しており、このような機能単位に複数の独立した命
令を発行する代わりに、複数の演算を1つの超長命令語
に組み入れている。したがって、VLIWシステムで
は、複数の整数演算用のコンピュータ命令、浮動小数点
演算、メモリ参照等を、単一の長いVLIW命令内で組
み合わせることができる。
デバッグは、前記パラグラフで述べてきた各技法を用い
ても、困難である。しかしながら、従来技術に関するこ
のような不利益や他の不利益は、本発明によって解消さ
れ、システムレベルのデバッグにとどまらず、チップレ
ベルのテストを行う改良方法ならびに装置が提供されて
いる。
命令実行パイプラインを有するマイクロプロセッサにお
いて実行されるソフトウェアブレークポイント(SWB
P)命令は、命令実行待ち時間が維持される場合従来技
術を利用することができない。待ち時間を維持するため
に、非保護パイプラインの全段階は同時に停止されなけ
ればならない。本発明によるソフトウェアブレークポイ
ントによってこれを行うために、SWBP命令はデコー
ドされ、実行パイプラインの第1実行段階に伝えられ、
そこで次のパイプライン段階境界で全パイプラインを中
止するために利用される。また、本発明によれば、SW
BPは演算コードとして実現されるのではなく、演算コ
ード中の単一のビットまたはビットフィールドである。
これによって命令待ち時間が維持される場合行うことの
できない実行を再開するために、メモリ中の演算コード
を置換しそれを先取りする必要を除去できるので有利で
ある。デバッグソフトウェアは命令実行パイプラインの
第1実行段階内の単一のビットまたはビットフィールド
を置換するだけでよいので有利である。これはまた、元
の演算コードがデコードされ実行ユニットに伝えられる
という追加された利益をも有する。例えば、演算コード
の条件実行フィールドが、命令パイプラインの実行段階
までこのフィールドをデコードしない実施例で利用でき
る。パイプライン内の複数の実行ユニットをサポートす
るアーキテクチャまたは並列命令実行の他の形態の場
合、本発明の他の態様は、実行パケット毎に1つのSW
BP命令のみが規則によって許可される制限規則が実施
されることである。この規則は必要に応じて行われ、本
発明のすべての実施例に含まれる必要ではない。各実行
ユニットのSWBPビットまたはビットフィールドの真
の条件が検索できる。1つのSWBPのみが許可される
ので、1つのみが見つかり、ひいてはSWBPビットの
消去かまたはもとの値で置換されたビットフィールドを
必要とする実行ユニットの容易な識別を考慮する。本発
明の他の実施例では、SWBP命令は完全な命令演算コ
ードとして符号化される。この実施例では命令待ち時間
を維持するために、SWBP処理後の再始動プロセスに
は、実行ユニットのラッチを、SWBP演算コードによ
って置換された元の演算コードのデコードされた状態に
よって置換するデバッグソフトウェアが必要になる。本
発明によるSWBP命令を伴う第2実行段階に先立つ少
なくとも第1実行段階を伴う命令実行パイプラインを有
するプロセッサをデバッグするための方法は、演算命令
内のフィールドを所定のブレークポイントコードで置換
することによって一連の命令の中にソフトウェアブレー
クポイント命令を形成する段階と、命令パイプライン中
の複数の重複する演算を開始するために正常な演算方法
でプロセッサ命令実行パイプライン中の一連の命令の一
部をフェッチし実行する段階と、命令パイプラインの第
1実行段階中のソフトウェアブレークポイント命令をフ
ェッチし部分的に実行する段階と、命令パイプラインの
第2段階中のブレークポイントコードのデコードに反応
して命令パイプラインの正常な演算を停止する段階と、
ブレークポイントコードのデコードに反応してデバッグ
機能を行う段階と、ソフトウェアブレークポイント命令
によって置換された演算命令を先取りすることなしにデ
バッグ演算を行う段階の後命令パイプラインの正常な演
算を再始動する段階とを含む。
るマイクロプロセッサ1のブロック図であり、マイクロ
プロセッサ1は、VLIWデジタル信号プロセッサ(D
SP)である。説明の明瞭化を図るため、図1では、本
発明の1実施例を理解するうえで問題となるマイクロプ
ロセッサ1の該当部分のみを示している。DSPの一般
的な構造の詳細は周知であり、他において容易に見るこ
とが可能である。例えば、Frederick Bou
taud他の米国特許第5,072,418号では、D
SPについて詳細な説明がなされており、この文章中に
引用されている。また、Gary Swoboda他の
米国特許第5,329,471号では、DSPのテスト
方法およびエミュレート方法について詳細に説明されて
おり、この文章中に引用されている。本発明の1実施例
に関するマイクロプロセッサ1の各部分についての詳細
は、以下に充分詳しく説明されており、これによって、
マイクロプロセッサ技術の通常の技術を有する者が、本
発明を作製し使用することが可能である。
(CPU)10、データメモリ22、プログラムメモリ
23、周辺装置60、直接メモリアクセス(DMA)6
1を備えた外部メモリインタフェース(EMIF)が示
されている。CPU10は、さらに、命令フェッチ/デ
コードユニット10a〜cを有する他に、算術演算およ
びロード/記憶装置D1、乗算器M1、ALU/シフタ
ユニットS1、算術論理演算装置(ALU)L1、およ
びデータの読取り/書込みを行う共用マルチポートレジ
スタファイル20aなどの複数の実行ユニットを備えて
いる。復号化された命令は、不図示の各組の制御ライン
を通じて、命令フェッチ/デコードユニット10a〜1
0cから機能装置D1、M1、S1、およびL1に提供
される。データは、第1組のバス32aを通じてレジス
タファイル20aからロード/記憶装置D1へ、第2組
のバス34aを通じて乗算器M1へ、第3組のバス36
aを通じてALU/シフタユニットS1へ、さらに、第
4組のバス38aを通じてALU L1へ提供され、そ
れぞれ逆方向への提供も行われる。また、データは、第
5組のバス40aを通じてメモリ22およびロード/記
憶装置D1間を送受信される。ここで、前記データパス
全体が、レジスタファイル20bおよび実行ユニットD
2、M2、S2、L2と全く同一である点に注意された
い。命令は、1組のバス41を通じて命令記憶装置23
からフェッチユニット10aによってフェッチされる。
エミュレーション回路50は、外部テスト/開発システ
ム(XDS)51によって制御可能な集積回路1の内部
動作へのアクセスを行えるようにする。
バッグおよびエミュレーションを行うための周知の各種
テストシステムの典型としてあげられている。このよう
なシステムの1つが、米国特許第5,535,331号
に説明されており、ここでも引用されている。テスト回
路52には、制御レジスタと、集積回路1をテストする
ための並列シグネチャ解析回路が含まれている。メモリ
22とメモリ23は、マイクロプロセッサ1の集積回路
の一部として図1に示されており、その範囲がボックス
42によって示されている。メモリ22〜23は、マイ
クロプロセッサ1の集積回路42の外部に配置されても
よく、または、その一部が集積回路42上に、別の一部
が集積回路42の外部に配置されてもよい。このような
配置は、設計上の選択に関する問題である。実行ユニッ
トの特定の選択や数もまた、設計上の選択の問題であ
り、本発明にとって重要な問題ではない。
ムに組み込まれている場合、図1に示すように、追加記
憶装置または周辺装置をマイクロプロセッサ1に接続し
てもよい。例えば、図示するように、ランダムアクセス
メモリ(RAM)70、読出し専用メモリ(ROM)7
1、およびディスク72を外部バス73により接続す
る。バス73は、マイクロプロセッサ42内の機能ブロ
ック61の一部である外部メモリインタフェース(EM
IF)に接続されている。さらに、直接メモリアクセス
(DMA)コントローラも、ブロック61内に配置され
ている。DMAコントローラは、通常、マイクロプロセ
ッサ1内のメモリと周辺装置の間、およびマイクロプロ
セッサ1の外部のメモリと周辺装置の間でデータをやり
取りするのに用いられる。
ユニットとレジスタファイルに関するブロック図であ
り、各種機能ブロックを接続しているバスのより詳細な
図が示されている。この図では、特に注意されない限
り、どのデータバスも、32ビットの広さを有してい
る。バス40aは、mux200aによって駆動される
アドレスバスDA1を備えている。これにより、ロード
/記憶装置D1またはD2のいずれかによって生成され
たアドレスを、レジスタファイル20a用のロードまた
は記憶用アドレスとして提供することが可能になる。ま
た、データバスLD1は、アドレスバスDA1によって
指定されたメモリ22内のアドレスからロードユニット
D1内のレジスタに、データをロードする。装置D1
は、レジスタファイル20aに保存する前に、提供され
たデータを処理してもよい。同様に、データバスST1
は、レジスタファイル20aからメモリ22にデータを
保存する。ロード/記憶装置D1は、32ビット加算、
減算、リニアアドレスおよび循環アドレス計算等の演算
を行う。ロード/記憶装置D2は、アドレスを選択する
うえでmux200bのサポートにより、装置D1と同
様の演算を行う。
術および比較演算と、32ビット用最左端の1および0
ビットのカウント、32および40ビット用の正規化カ
ウント、および論理演算等の演算を行う。ALU装置L
1は、32ビットソースオぺランド用の入力src1
と、第2の32ビットソースオペランド用の入力src
2を有している。入力msb srcは、40ビットソ
ースオペランドの形成に用いられる8ビットの値であ
る。また、ALU装置L1は、32ビット宛先オぺラン
ド用の出力dstを有している。出力msb dst
は、40ビット宛先オペランドの形成に用いられる8ビ
ットの値である。レジスタファイル20a内の2つの3
2ビットレジスタは、連結されて40ビットオペランド
を保有する。mux211は、入力src1への接続に
よって、32ビットオペランドを、バス38aを介して
レジスタファイル20aから、または、バス210を介
してレジスタファイル20bから取得できるようにす
る。また、mux212は、入力src2に接続される
ことによって、32ビットオペランドを、バス38aを
介してレジスタファイル20aから、または、バス21
0を介してレジスタファイル20bから取得できるよう
にする。ALU装置L2は、装置L1と同様の演算を行
う。
ト算術演算、32/40ビットのシフトおよび32ビッ
トのビットフィールド演算、32ビット論理演算、分
岐、および定数生成等の演算を行う。ALU装置S1
は、32ビットソースオペランド用の入力src1と、
第2の32ビットソースオペランド用の入力src2を
有している。入力msb srcは、40ビットソース
オペランドの形成に用いられる8ビットの値である。ま
た、ALU装置S1は、32ビット宛先オペランド用の
出力dstを有している。出力msb dstは、40
ビット宛先オペランドの形成に用いられる8ビットの値
である。mux213は、入力src2に接続されるこ
とによって、32ビットオペランドを、バス36aを介
してレジスタファイル20aから、または、バス210
を介してレジスタファイル20bから取得できるように
する。ALU装置S2は、装置S1と同様の演算を行う
が、さらに、制御レジスタファイル102とのレジスタ
トランスファーも行うことができる。
この乗算器M1は、32ビットソースオペランド用の入
力src1と、32ビットソースオペランド用の入力s
rc2を有している。ALU装置S1は、32ビット宛
先オペランド用の出力dstを有している。mux21
4は、入力src2に接続されることによって、32ビ
ットオペランドを、バス34aを介してレジスタファイ
ル20aから、または、バス210を介してレジスタフ
ァイル20bから取得できるようにする。乗算器M2
は、乗算器M1と同様の演算を行う。図2に示すよう
に、バス220および221を用いて、制御レジスタフ
ァイル102から1台の装置(.S2)の読取りおよび
書込みを行うことができる。表2は、この制御レジスタ
ファイルに含まれている制御レジスタの一覧であり、各
項目ごとに簡単な説明を付けている。また、各制御レジ
スタについては、後でより詳しく説明している。各制御
レジスタは、MVC命令によってアクセスされる(後述
するMVC命令の説明を参照)。
MR)を示している。8つのレジスタ(A4〜A7、B
4〜B7)で、循環アドレス指定を行うことができる。
各レジスタに対し、AMRはアドレス指定モードを指定
する。各レジスタのA2ビットフィールドを用いて、リ
ニア(デフォルト)モードまたは循環モードのアドレス
修飾モードを選択する。循環アドレス指定により、この
フィールドでは、循環バッファに用いるBK(ブロック
サイズ)フィールドを指定する。さらに、該バッファ
は、ブロックサイズと同等のバイト境界に位置合せをす
る必要がある。このモード選択フィールドの符号化につ
いて表3に示されている。
K1では、循環アドレス指定のためのブロックサイズを
指定する。BK0およびBK1内の5ビットでは、その
幅を指定する。このブロックサイズの幅を計算する公式
は、 ブロックサイズ(バイト単位)=2(1+1) である。ただし、Nは、BK1またはBK0内の値とす
る。表4に、全部で32の想定可能なケースを対象にし
たブロックサイズの計算をあげている。
示すように、制御ビットと状態ビットが含まれている。
CSR内のビットフィールドに関する機能を、表5に示
している。
は、32の汎用入力信号をサポートし、図6に示される
汎用出力レジスタ(OUT)は、32の汎用出力信号を
サポートする。このような信号の機能については、後で
説明する。次の表6では、ここで用いられる各種記号に
ついて説明している。
対応関係を定義している。
ビットデータをサポートする。この32ビットデータは
各単一レジスタに収容されている。また、40ビットデ
ータは、2つのレジスタにわたって収容されており、こ
のデータのうち32個のLSB(最下位ビット)は、偶
数レジスタに保存され、8個のMSB(最上位ビット)
は、次のレジスタ(常に奇数レジスタ)の8個のLSB
に保存される。表9に示すように40ビットデータに対
して16の有効レジスタ対がある。アセンブリ言語構文
では、各レジスタ名の間にコロンを入れることによっ
て、このレジスタ対を表している。最初に奇数レジスタ
が指定される。
ジスタ記憶域構成を示している。長い入力データを必要
とする演算では、奇数レジスタの24個のMSBが無視
される。また、長い結果が出る演算では、奇数レジスタ
の24個のMSBにゼロ充てんを施す。一方、偶数レジ
スタのデータは、演算コードに符号化される。DSPの
演算コードマップが、図8A〜図8Jに示されている。
表6と、フィールドシンタクスおよび値の解説のため後
に記述する命令の説明を参照されたい。命令は、すべて
条件付きにしてもよい。条件は、テスト対象となるレジ
スタを指定する3ビット(creg)フィールドと、ゼ
ロか否かを判定するためのテストを指定する1ビットフ
ィールド(z)によって制御される。どの演算コード
も、4MSB(最上位ビット)が、cregおよびzで
ある。このレジスタは、すべての命令に対するE1パイ
プライン段階の開始時にテストされる。このパイプライ
ンについては、後に説明する。z=1の場合、このテス
トは、ゼロに等しいことを確認するために行われる。z
=0の場合、テストは、ゼロでないことを確認するため
に行われる。条件レジスタフィールド(creg)=0
およびz=0の場合は、常に真として扱われ、命令を無
条件に実行することができる。cregレジスタフィー
ルドは、表10に示すように符号化が行われる。
括って表記されている。また、後続の実行パケットに
は、2つのADD命令が並列に配置されており、第1の
ADD命令は、B0に関して非ゼロの条件付きであり、
第2のADD命令は、B0に関してゼロであることを条
件としている。また、感嘆符(!)は、条件の[否定]
を表している。 [B0] ADD .L1 A1,A2,A3 || [!B0] ADD .L2 B1,B2,B3
り、片方のみが実行されることを意味している。両方の
命令が並列にスケジュールされている場合、相互排他的
な命令は、さらに後述するあらゆる資源の制約に従わな
ければならない。相互排他的命令が後述するような任意
の資源を共用している場合、片方の命令だけが実行を終
了する場合でも、両方の命令を並列にスケジュール(同
一の実行パケットに配置)することはできない。命令の
実行は、遅延スロットにより定義することができる。表
11は、命令のタイプと、各タイプの命令が有している
遅延スロットの数、およびその命令が用いる実行段階を
示している。遅延スロットは、ソースオペランドが読み
取られてから、結果が取得され読み取られる前にかかる
余分なサイクル数に相当する。(ADDのような)単一
サイクル型の命令の場合、ソースオペランドがサイクル
iで読み取られると、その結果は、サイクルi+1で読
み取ることができる。乗算命令(MPY)の場合、ソー
スオペランドがサイクルiで読み取られると、その結果
は、サイクルI+2で読み取ることができる。
ッチパケットを構成する。フェッチパケットの基本形式
は、図9に示す通りである。また、フェッチパケットの
実行グループは、各命令のpビット、すなわちビット0
により指定され、フェッチパケットは、8ワードで位置
合せされている。pビットは、命令の並列的な実行を制
御し、左から右(低位アドレスから高位アドレス)の方
向にスキャンされる。命令iのpビットが1の場合、命
令i+1は、(同一サイクルの)命令iと並列に実行さ
れる。また、命令iのpビットが0の場合、命令i+1
は、命令iの後のサイクルで実行される。さらに、並列
実行が行われるすべての命令によって実行パケットが構
成される。実行パケットには、命令を8個まで配列する
ことができる。また、実行パケット内の命令は、すべて
固有の機能単位を使用しなければならない。実行パケッ
トは、8ワード境界にまたがることはできない。したが
って、フェッチパケットの最後のpビットは常に0に設
定され、フェッチパケットは、それぞれ新規実行パケッ
トを開始する。以下の例では、pビットシーケンスを命
令のサイクル毎の実行ストリームに変換する様子を示し
ている。フェッチパケットには、3種類のpビットパタ
ーンがあり、この3つのpビットパターンは、8個の命
令に対して、全直列、全並列、または一部直列の実行シ
ーケンスとなる。この3つの実行シーケンスについて、
以下に詳しく説明する。図10Aに示す全直列pビット
パターンは、次のような実行シーケンスとなる。
並列pビットパターンは、次のような実行シーケンスと
なる。
に示す一部直列pビットパターンは、次のような実行シ
ーケンスとなる。
並列pビットパターンは、次のような実行シーケンスと
なる。
に示す一部直列pビットパターンは、次のような実行シ
ーケンスとなる。
ス、その他のデータパス等の資源を使用しておらず、同
じことが、命令F、G、Hについても言うことができ
る。||は、命令が直前の命令と並列に実行されること
を示すものである。上記の一部直列の例では、コードが
次のように表記される。
スの命令は、すべて無視される。一部直列の例では、命
令Dのあるアドレスに分岐が発生すると、DとEだけが
実行される。命令Cが同じ実行パケットにある場合で
も、命令Cは無視される。命令Aおよび命令Bも、分岐
前の実行パケットにあることから、やはり無視される。
同じ実行パケット内の2つの命令は、同じ資源を利用で
きない。さらに、同一サイクルにおいて、同一のレジス
タに2つの命令が書込みを行うことはできない。次に、
命令が使用可能な資源についてそれぞれ説明する。同一
の機能単位を使用する2つの命令は、同じ実行パケット
で発行することはできない。したがって、次のような実
行パケットは無効である。
行パケットにつき1機能単位(.S、.L、または.
M)の場合、クロスパス(1Xおよび2X)を介して対
向するレジスタファイルからソースオペランドを読み取
ることができる。例えば、.S1は、Aレジスタファイ
ルから両方のオペランドを、または、1Xクロスパスを
用いてBレジスタファイルから片方のオペランドを読み
取ることができる。このことは、装置名の後にXを入れ
ることによって表記される。AからBとBからAの片方
のパスしかないことから、両レジスタファイル間の同じ
Xクロスパスを使用する2つの命令を、同一実行パケッ
トに発行できない。次のような実行パケットは無効であ
る。
ビットが設定されている場合、オペランドは、宛先に対
向するレジスタファイルから送信される。ロードおよび
ストア命令は、片方のレジスタファイルからのロードま
たは記憶処理を行いながら、もう一方のレジスタファイ
ルからのアドレスポインタを使用することができる。同
一レジスタファイルからのアドレスポインタを使用する
2つのロードおよび/またはストア命令は、同じ実行パ
ケットで発行することはできない。したがって、次のよ
うな実行パケットは無効である。
ァイルからの記憶処理を行う2つのロードおよび/また
はストア命令は、同じ実行パケットで発行することはで
きない。したがって、次のような実行パケットは無効で
ある。
算結果を1つだけ書き込んでもよい。.Sおよび.L装
置が長ソースオペランド用読取りレジスタポートと長演
算結果用書込みレジスタポートを共用していることか
ら、実行パケットの各サイドにつき1つだけ発行しても
よい。次のような実行パケットは無効である。
共用していることから、長い値を読み取る演算は、スト
ア命令として、.Lおよび/または.S装置において同
じ実行パケットで発行することはできない。したがっ
て、次のような実行パケットは無効である。
にあってはならない。ただし、条件レジスタは、その限
りではない。次のコードシーケンスは無効である。
別々のサイクルで発行された場合、同一サイクルにおけ
る同一レジスタへの複数の書込みが発生することがあ
る。例えば、サイクルi+1上のADDが後ろに付くサ
イクルiで発行されたMPYは、どちらの命令も結果を
サイクルi+1に書き込むことになることから、同一レ
ジスタへの書き込みはできなくなる。したがって、次の
コードシーケンスは無効である。
ト)を示している。例えば、実行パケットL1のADD
とSUBが同じレジスタに書き込まれる場合、矛盾は容
易に検出できる。パケットL2のMPYとパケットL3
のADDは、両方とも同時にB2に書き込まれるが、分
岐命令により、L2の後の実行パケットがL3以外のパ
ケットになる。これは矛盾ではないであろう。したがっ
て、アセンブラによってL2とL3に矛盾が検出される
ことはない。L4内の命令は、互いに排他的であること
から、書込みの矛盾を引き起こすことはない。逆に、L
5の各命令は、互いに排他的であることが明らかでない
ために、アセンブラは矛盾があるかどうか判断できな
い。パイプラインがコマンドを受信して同一のレジスタ
に複数の書込みを行う場合、結果は未定義となる。
モード、BK1を用いた場合、循環モードがある。この
モードは、アドレスモードレジスタ(AMR)によって
指定される。
うことができ、A4〜A7は、.D1装置によって、B
4〜B7は、.D2装置によって用いられる。他の装置
は、循環アドレスモードを使用できない。上記レジスタ
の各々は、AMRによってアドレスモードを指定する。
命令LD(B)(H)(W)、ST(B)(H)
(W)、ADDA(B)(H)(W)、およびSUBA
(B)(H)(W)は、いずれもAMRを用いて上記レ
ジスタにどのタイプのアドレス計算をすればよいか判断
する。また、いずれのレジスタも、リニアモードアドレ
ス指定を行うことができる。リニアモードアドレス指定
は、LD/ST命令によって次のように行われる。リニ
アモードにより、offsetR/cstオペランド
を、それぞれ2、1、または0だけ左にシフトして、ワ
ードアクセス、ハーフワードアクセス、またはバイトア
クセスを行ってから、baseRに対する加算または減
算(指定された演算によって異なる)を実行する。リニ
アモードアドレス指定は、ADDA/SUBA命令によ
って次のように行われる。リニアモードにより、src
1/cstオペランドを、それぞれ2、1、または0だ
け左にシフトして、ワードアクセス、ハーフワードアク
セス、またはバイトアクセスを行ってから、加算または
減算(指定された演算によって異なる)を実行する。
K0およびBK1フィールドを使用して循環アドレス指
定のブロックサイズを指定する。循環モードアドレス指
定は、LD/ST命令によって次のように行われる。o
ffsetR/cstオペランドを、それぞれ2、1、
または0だけ左にシフトしてから、NとN+1の間に禁
止されているキャリー/ボローによって加算または減算
を行う。baseRのビットN+1〜ビット31は、そ
のまま変化せず、他のキャリー/ボローは、すべて通常
通り処理される。したがって、offsetR/cst
オペランドが循環バッファサイズ2(N+1)よりも大
きく、なおかつ指定された場合、アドレスは、循環バッ
ファの外部となる。AMRの循環バッファサイズは、比
率によるサイズではなく、例えば、4のサイズは4バイ
トであり、(タイプ)のサイズに4倍するわけではな
い。したがって、8ワードの配列による循環アドレス指
定を行うためには、32のサイズを指定しなければなら
ない。すなわち、N=4である。表12では、BK0=
4として、循環モードでレジスタA4により実行される
LDWが示されており、したがって、バッファサイズが
32バイト、16ハーフワード、または8ワードとな
る。この例でAMRに入る値は、0004 0001h
となる。
UBA命令により、次のように行われる。src1/c
stオペランドを、それぞれ2、1、または0だけ左に
シフトして、ADDAW、ADDAH、ADDABを実
行してから、NとN+1の間に禁止されているキャリー
/ボローによって加算または減算を行う。src2の包
含的なビットN+1〜ビット31は変わらない。他のキ
ャリー/ボローはすべて通常通り処理される。したがっ
て、src1が循環バッファサイズ2(N+1)よりも
大きく、なおかつ指定された場合、アドレスは、循環バ
ッファの外部となる。AMRの循環バッファサイズは、
比率によるサイズではなく、例えば、4のサイズは4バ
イトであり、(タイプ)のサイズに4倍するわけではな
い。したがって、8ワードの配列による循環アドレス指
定を行うためには、32のサイズを指定しなければなら
ない。すなわち、N=4である。表14では、BK0=
4として、循環モードでレジスタA4により実行される
ADDAHが示されており、したがって、バッファサイ
ズが32バイト、16ハーフワード、または8ワードと
なる。この例でAMRに入る値は、0004 0001
hとなる。
プでは、各命令を構成している各種ビットフィールドに
分けられている。表8に示すように、1を上回る機能単
位上で実行可能な一定の命令がある。この構文により、
命令が使用する機能単位と各種資源を次ように指定す
る。 EXAMPLE(.unit)src,dst この構文は、ADD命令に対して次のような見え方をす
る。 ADD(.unit)src1,src2,dst OR ADDU(.unit)src1,src2,dst OR ADD(.unit)src2,src1,dst unit=.L1,.L2,.S2,.D1,.D2 srcとdstは、それぞれソースと宛先を示してい
る。(.unit)は、命令が(.L1,.L2,.S
1,.S2,.M1,.M2,.D1,.D2)にマッ
ピングする機能単位を示している。また、この命令は、
3つの演算コードマップフィールド、src1、src
2、およびdstを有している。 パイプライン動作
向上、コストの低減、およびプログラミングの簡素化に
役立つ重要な特徴をいくつか備えている。具体的には、
パイプライン方式を増やすことにより、プログラムの取
出し、データアクセス、および乗算などに生じていた従
来のアーキテクチャ上のボトルネックが削減され、パイ
プラインインタロックの除去により、パイプライン制御
が簡素化され、また、パイプラインにより、サイクルご
とに8つの並列な命令をディスパッチすることができ
る。さらに、並列な命令が、複数の同じパイプライン段
階を同時に進行し、直列な命令が、相対的なパイプライ
ン段階の同じ差を保ちながら進行し、なおかつ、ロード
およびストアアドレスが、同一のパイプライン段階中に
CPU境界上に出現することにより、リードアフタライ
トメモリの矛盾が削減される。データアクセスとプログ
ラム取出しのいずれにも、複数段階から成るメモリパイ
プラインが存在する。これにより、オンチップとオフチ
ップのどちらでも高速の同期メモリを使用することがで
きるうえ、他の命令と並列な分岐によって無限にネスト
可能なオーバヘッドゼロのループが可能になる。パイプ
ラインの実行サイクルでは内部インタロックが全く生じ
ないことから、新規実行パケットは、CPUサイクルご
とに実行段階に入る。したがって、特定の入力データを
備えた特定のアルゴリズムのCPUサイクル数は、一定
である。プログラム実行中にメモリ機能停止が一切起こ
らなければ、CPUサイクル数は、実行するプログラム
のクロックサイクル数に等しくなる。パフォーマンス
は、メモリサブシステムからの機能停止または割込みに
よってのみ、抑止することができる。メモリ機能停止の
理由は、メモリアーキテクチャによって定められる。プ
ログラムを速度に対してどのように最適化すればよいか
充分に理解するためには、プログラム取出し、データ記
憶、そのプログラムが作製するデータロード要求の並び
と、各々がCPUの機能をどのように停止させるのかを
理解する必要がある。
PUサイクルをベースにしている。CPUサイクルと
は、ある特定の実行パケットが特定のパイプライン段階
に存在する期間のことである。CPUサイクル境界は、
常にクロックサイクル境界上に生じるが、メモリ機能停
止によって、CPUサイクルが複数のクロックサイクル
の長さを超えることが起こり得る。CPUサイクル境界
におけるマシン状態を理解するためには、パイプライン
の実行段階(E1〜E5)のみを問題にしなければなら
ない。パイプラインの段階については、図11に示して
おり、さらに、表15で説明されている。
に分類できる。また、各命令タイプに対する遅延スロッ
トの一覧が、第2列に示されている。
ことができる。遅延スロットとは、命令の結果が得られ
ない命令の第1実行段階(E1)の後に発生するCPU
サイクルのことである。例えば、乗算命令は1遅延スロ
ットを有しているが、このことは、別の命令が乗算命令
の結果を使用できるまでにICPUサイクルあることを
意味している。単一サイクル命令は、パイプラインのE
1段階中に実行する。オペランドが読み取られた後、演
算が行われ、その結果がレジスタに書き込まれるが、こ
れはすべてE1の間に行われる。この命令には遅延スロ
ットが全くない。
演算を完了する。E1段階では、オペランドが読み取ら
れ、乗算が開始する。E2段階では、乗算を終了し、そ
の結果が宛先(dst)レジスタに書き込まれる。乗算
命令には、1遅延スロットがある。ロード命令の場合、
2つの結果、すなわち、メモリからロードされたデータ
とアドレスポインタ修飾が得られる。データロードで
は、パイプラインのE5段階中に演算を完了させる。E
1段階では、データのアドレスが計算さ、E2段階で
は、データアドレスがデータメモリに送信される。E3
段階では、メモリへの読込みが行われ、E4段階では、
CPUコア境界でデータが受信される。最後に、E5段
階では、レジスタにデータがロードされる。E5までに
レジスタにデータが書き込まれないことから、これらの
命令は、4遅延スロットを有している。E1でポインタ
結果がレジスタに書き込まれることから、アドレス修飾
に関する遅延スロットはない。パイプラインのE3段階
中に、ストア命令は演算を完了する。E1段階では、デ
ータのアドレスが計算され、E2段階では、データアド
レスがデータメモリに送信される。また、E3段階で
は、メモリへの書込みが行われる。さらに、パイプライ
ンのE1段階では、アドレス修飾が行われる。パイプラ
インのE3段階においてストア命令はその実行を終了す
るが、遅延スロットはなく、次の規則(i=サイクル)
に従う。 1)ストア命令の前にロード命令が実行されると、旧値
がロードされ、新規値が記憶される。 i LDW i+1 STW 2)ロード命令の前にストア命令が実行されると、新規
値がストアされ、新規値がロードされる。 i STW i+1 LDW 3)各命令が並列である場合、旧値はロードされ、新規
値はストアされる。 i STW i+1 || LDW
階に入ると、そのE1段階中に、5遅延スロット/CP
Uサイクルを実行する。図12に、この分岐命令の各段
階を示している。図13は、クロックサイクルとフェッ
チパケットに基づくパイプラインの演算である。図13
では、分岐命令がフェッチパケットnにある場合、その
分岐命令のE1段階は、n+6のPG段階となる。サイ
クル7では、nはE1段階にあり、n+6はPG段階に
ある。分岐先がサイクル7のPG段階にあることから、
サイクル13になるまで、n+6がE1になることはな
い。このため、分岐命令が実行に6サイクルかかった
り、あるいは5遅延スロットあるように見えるのであ
る。図14では、3つの実行パケットが含まれているフ
ェッチパケットnと、その後に続く6つのフェッチパケ
ット(n+1〜n+6)が示されており、それぞれ1実
行パケット(8個の並列命令を含む)を有している。第
1のフェッチパケット(n)は、サイクル1〜4の間に
プログラムフェッチ段階を通過する。このサイクル中
に、後続のフェッチパケットの各々に対してプログラム
フェッチ段階が開始される。サイクル5、すなわちプロ
グラムディスパッチ(DP)段階では、CPUは、pビ
ットをスキャンして、フェッチパケットnに3つの実行
パケット(k〜k+2)あることを検出する。これによ
り、パイプラインは強制的に機能停止され、サイクル6
および7において、DP段階での実行パケットk+1お
よびk+2が開始できるようになる。実行パケットk+
2が、DC段階(サイクル8)に移る準備ができたら、
パイプラインの機能停止は解除される。フェッチパケッ
トn+1〜n+4はすべて停止されているので、CPU
には、フェッチパケットnにおいて、3つの実行パケッ
ト(k〜k+2)の各々に対してDP段階を実行する時
間が生じる。フェッチパケットn+5も、サイクル6と
サイクル7で停止されており、サイクル8でパイプライ
ン機能停止が解除されるまでは、PG段階に入ることが
できない。このパイプライン処理は、フェッチパケット
n+5とn+6に示すように、複数の実行パケットを備
えた別のフェッチパケットがDP段階に入るまで、ある
いは割込みが生じるまで、継続する。
止、多重サイクルNOP、STP命令によって発生す
る。メモリの停止中は、CPUサイクル(通常、1クロ
ックサイクル中に発生する)が、2以上のサイクルで発
生する。このような余分なクロックサイクル中は、全パ
イプライン段階が停止する。プログラムの実行結果は、
このような機能停止があってもなくても変わらない。メ
モリ停止によって、実行が終了するまでにかかるクロッ
クサイクル数は増加する。NOPカウント命令は、NO
Pのカウントサイクルを提供する働きをする。カウント
が2以上であれば、NOPは、多重サイクルNOPであ
る。例えば、NOP2は、含まれている実行パケット中
の命令と、前出するすべての実行命令の余分な遅延スロ
ットに充てんされる。このため、NOP2がMPY命令
と並列であれば、次の実行パケット中の命令が、MPY
の結果を使用を目的に取得することができる。多重サイ
クルNOPがまだNOPをパイプラインにディスパッチ
している間に分岐の遅延スロットが完了すれば、その分
岐は、多重サイクルNOPをオーバライドして、5遅延
スロット後に、分岐先が実行を開始する。STPは、
1)強制的にプログラムフェッチを行うような並列分岐
命令を含んでいる可能性が全くない、2)第2遅延スロ
ットに多重サイクルNOPがあるか、または、第3およ
び第4遅延スロットの実行パケットが同じフェッチパケ
ットにあるために、プログラムフェッチが一切起きてい
ない、という両方の条件を満たしている場合に限り、用
いることができる高度な命令である。メモリシステムD
SPプログラムメモリシステム23は、64Kバイトの
メモリとメモリ/キャッシュコントローラを具備してい
る。プログラムメモリは、64Kバイト内部プログラム
メモリとして、あるいは、直接マッププログラムキャッ
シュとして、動作することが可能である。プログラムメ
モリシステムが動作する4つのモード、プログラムメモ
リモード、キャッシュイネーブルモード、キャッシュフ
リーズモード、キャッシュバイパスモードがある。プロ
グラムメモリが動作するモードは、CSR(図4)のプ
ログラムキャッシュコントロール(PCC)フィールド
(ビット5〜7)によって決まる。表17は、プログラ
ムメモリシステム23を構成する各種PCC値の一覧で
ある。
ログラムメモリは、有効なプログラムメモリ空間として
マップされる。このプログラムメモリマップを形成する
アドレスは、装置上のMAP BOOTピンの値によっ
て異なる。 エミュレーション機能 本発明の1態様として、ソフトウェアプログラムの開
発、または正確な演算を目的としたDSP1テストを行
うために、DSP1の演算をエミュレーションする新規
改良技術があげられる。エミュレーションに関係するD
SP1の各部分について、以下に詳しく説明している。
は、エミュレーション回路50と割込み回路90を備え
ており、テストポートによる実行およびスキャン制御、
分析サポート、およびリアルタイムエミュレーションサ
ポートなどのエミュレーション機能をサポートする。各
機能については、後で詳しく説明する。テストポートに
よる実行およびスキャン制御には、CPU10の停止も
含まれている。CPU停止サポートは、ソフトウェアブ
レークポイント(SWBP)または分析イベントに基づ
くRDYベースのCPU停止により行われる。分析サポ
ートには、単一の正確な一致が得られるハードウェアプ
ログラムアドレスブレークポイント(PABP)、メガ
モジュールテストアクセスポート(MTAP)からのE
MU0INまたはEMU1IN入力か、または、プログ
ラムアドレスブレークポイントによってトリガ可能な分
析イベント、および分析イベントをトリガできる特殊エ
ミュレーションイベント入力(SEE)などがある。リ
アルタイムエミュレーションサポートには、メッセージ
伝達に加え、ソフトウェア割込み、分析イベント、また
は次のサイクル境界に基づくCPU分析割込み(AIN
T)などがある。次に、図15を参照すると、エミュレ
ーション回路50が、さらに詳細に示されている。メガ
モジュールテストアクセスポート(MTAP)305
は、CPUテストポート(CPUTP)310、分析テ
ストポート(ATP)320、およびメガモジュールテ
ストポート(ATP)330に接続されている。また、
3つの領域、CPU領域10、分析領域321、および
メガモジュール領域331が、各テストポートにより相
互接続されている。MTAP305は、メガモジュール
内で、各種領域に対してスキャン制御および実行制御を
行う。また、各テストポートは、MTAPに対して各領
域のインタフェースとして機能する。また、テストポー
トは、メガモジュールの機能的およびスキャンクロック
のクロック切換機能を生成し、分散し、かつ実行する。
MTAP305は、XDS51とCPU実時間解析およ
びメッセージ伝達機構との間のインタフェースとしての
役割を果たしている。本発明の1態様によれば、MTA
P305は、メモリのダウンロード/アップロードを迅
速化するために、データのストリーム化を行う。また、
MTAP305は、イベントカウンタにより性能分析を
サポートし、エミュレーションとテストの両方に対する
実行およびクロッキングのテストポート制御をサポート
する。次に、MTAP305、テストポート310、3
20、330を収容しているエミュレーション回路50
の動作と設計について詳しく説明する。
TAP305と、全体としてのメガモジュール300に
インタフェースしており、デバッグ、トレース、および
ブレークポイントの能力を向上させる働きをする。特殊
エミュレーション装置(SE)は、SE分析(SEA)
領域回路のための第4領域を有しており、この領域は、
メガモジュールの外部にある。さらに、MTAPを介し
たメガモジュールへのSEA領域のインタフェースにつ
いても、以下に詳しく説明している。SEA領域には、
データおよびアドレス上のハードウェアデータブレーク
ポイント、実行を目的にディスパッチされた実行パケッ
トのアドレス上のハードウェアプログラムブレークポイ
ント、実行されるプログラムアドレス、プログラム、お
よびデータメモリアクセスのトレース、採用された割込
み、機能単位使用、および分岐、イベントカウンタなら
びにシーケンサがある。図16は、メガモジュールリセ
ット動作と関連する信号を示すタイムチャートである。
この工程を通じて、イナクティブRDYが、依然として
CPUを停止できる、すなわち、CPUサイクルが複数
のクロックサイクルにわたることが可能な点に注意され
たい。発生するイベントの並びは、次の通りである。
ローになってから最初のクロックサイクルである。CP
UテストポートがFUNC状態であれば、次の動作が発
生する。 A) すべての内部トライステートバスは、トライステ
ート方式である。各バスは、サイクル6になるまで、ト
ライステート状態のままである。 B) LOGXOFFDが表明され、すべての非プログ
ラムメモリシステム装置が、メガモジュールストローブ
(DBS、PWRDN、JACK)を無視することを示
す。 C) LOGXOFFPが表明され、プログラムメモリ
が、プログラムメモリストローブ(PAS、PDS、P
WS)を無視することを示す。 2. サイクルn+2: CPUテストポートがFUN
C状態であれば、DPおよびE1パイプライン段階のす
べての命令が無効になる。 3. サイクル1: 不定数のクロックサイクル後、N
RESETの立上りとともに、リセット割込み処理が発
生する。 4. サイクル6: JACKがアクティブになると、
PWS、PAS、PDSを除き、すべてのレジスタと境
界信号がリセット値に設定される。LOGXOFFD
は、非表明である。 5. サイクル7: 第1PASがアクティブなので、
LOGXOFFPは、非表明である。割込み動作 CPUは、通常のデジタルシグナルプロセッサ(DS
P)の動作として14の割込みを行う。これらの割込み
は、リセット(RESET)、マスク不可能割込み(N
MI)及び割込み4〜15である。これらの割込みは、
CPU境界上のリセット信号、NMI信号及びINT4
〜INT15信号に対応する。これらの信号を、ある実
施形態では、装置のピンに直接供給し、チップ上の周辺
装置に供給し、又は、チップが応答動作をしないように
供給して不許可動作に設定することが出来る。一般的に
リセット及びマスク不可能割込みを、装置上のピンを通
じて行う。これら割込みのプライオリティを表18に示
す。割込みピン上のロー−ハイのレベル遷移によって、
割込標識レジスタ(IFR)内で割込みを待機状態に設
定する。割込みが適切にイネーブルされると、CPU
は、割込み処理及び割込みサービスルーチンに対するプ
ログラムフローの再処理を開始する。
ットがロー−ハイの遷移を行った場合に、そのリセット
処理を開始する。他の割込みと異なり、リセット信号に
アクティブローのラベルを付与する。リセットのローレ
ベルは、全てのCPU処理を停止すると共に、全てのレ
ジスタを、それらのリセットレベルに戻す効果を有す
る。マスク不可能割込み(NMI)は、2番目に高いプ
ライオリティの割込みとなる。二つの状態、いわゆる、
分岐が取り出されているか否かにかかわらずCPUが分
岐の遅延スロットにある状態及び割込みの許可レジスタ
(IER)のNMI−許可ビット(NMIE)が0であ
る状態では、NMIが割込みの開始を中止する。NMI
Eは、プロセッサ初期化の割込みを中止するリセット及
び他のNMIによってNMIの再割込みを中止するNM
I処理に応答してクリアされる。NMIは、NMIEを
セットすることにより、又は、B NRP命令の実行を
終了することによって再びイネーブルに設定される。N
MIEが0の場合、INT4〜INT15が不許可に設
定される。NMI処理中、以前のプログラムを実行し続
けるリターンポインタは、NMIリターンポインタレジ
スタ(NRP)に記憶される。したがって、B NRP
命令は、NMIを供給した後に以前のプログラムにリタ
ーンする。表19は、NMIからのリターン方法を示し
ている。
開始するのを中止することが出来る。CPUは分岐の遅
延スロットにある処理コードにあり、これは誤り状態が
原因で実行を終了しない状態分岐を含む状態;割込みイ
ネーブルレジスタ(IER)のNMIEビットが0であ
る状態;IERの対応する割込みイネーブル(IE)ビ
ットが0である状態;制御状態レジスタ(CSR)の全
割込みイネーブルビット(GIE)が零である状態であ
る。割込み処理中では、以前のプログラムを実行し続け
るリターンポインタを、割込みリターンポインタレジス
タ(IRP)に記憶する。したがって、B IRP割込
みは、割込みを行った後にプログラムフローにリターン
する。表20は、マスク可能割込みからのリターン方法
を示している。 表20.マスク可能割り込みからのリターン方法 B (.S2)IRP ; return,moves PGIE to GIE NOP 5; delay slots IACK信号及びINUM信号は、割込みが発生する
と、装置11の外部のハードウェアに警報を送出する。
IACK信号は、CPUが割込み処理を開始したことを
示す。INUMx信号(INUM0〜INUM3)は、
処理を開始する割込み数(IFRのビット位置)を示
す。表21は、装置の7個の割込み制御レジスタをリス
トとして示している。
Rを読み出すと共にISRを書き込むことが出来る。他
のレジスタは独自のアドレスを有する。割込みイネーブ
ルレジスタ(IER)の対応するビットがセットされた
際の割込みは、この割込み処理をトリガすることが出来
る。リセットに対するビット0は書き込み不可能であ
り、常に1として読み出される。リセット割込みは常に
イネーブルとなる。なお、リセットをディスエーブルに
することは出来ない。ビットIE4〜IE15を、対応
する割込みをイネーブルにし、又は、ディスエーブルに
する1又は0として、それぞれ書き込むことが出来る。
IERを図17Bに示す。
ット割込みをディスエーブルにして、NMIの割込みを
中止する。NMIイネーブル(NMIE)は、0の書込
みによって影響する処理が実行されず、1の書込みによ
ってセットされる。NMIEは、イネーブルとなるまで
プロセッサの任意の割込みを中止するリセットに応答し
て0に初期化される。リセット後、NMIEをセットし
てNMIをイネーブルにすると共に、INT15〜IN
T4をGIE及び適切なIEビットによってイネーブル
にすることが出来る。NMIEを手動でクリアすること
は出来ない。NMIEは、NMIの発生によってクリア
される。このクリアが行われると、NMIEは、B N
RP命令を終了し、又は、NMIEに1を書き込むこと
によってのみセットされる。割込み標識レジスタ(IF
R)(図17A参照)は、INT4〜INT15及びN
MIの状態を有する。表22は、割込み標識及びそれら
の割込み標識に対応する割込みをリストとして作成す
る。割込み状態をチェックしたい場合、MVC命令を用
いてIFRを読み出す。
スタ(ICR)(図17C及び図17D参照)によっ
て、割込みをIFRにおいて手動でセットし又はクリア
することが出来る。ISRのIS4〜IS15に1を書
き込むことによって、対応する割込み標識がセットされ
る。同様に、ICRのビットに1を書き込むことによっ
て、対応する割込み標識をクリアする。ISR又はIC
Rの任意のビットへの0の書込みには何ら影響を及ぼさ
ない。割込み入力は、プライオリティを有し、ICRへ
の任意の書込みを無視する。リセット又はNMIをセッ
トし又はクリアすることが出来ない。(MVC命令によ
る)ISR又はICRへの任意の書込みは、実質的には
1遅延スロットを有する。この理由は、結果をISR又
はICRへの書込み後2サイクルまでIFRで(MVC
命令によって)読み出すことが出来ないためである。こ
れらがCPU制御レジスタを形成しなくても、割込み待
機ビットは、全てのCPU割込みの待機状態を保持す
る。RSTP,NMIP,AIP,MSGIP及びIP
4〜IP15は、リセット,NMI,AINT,MSG
INT及びINT4〜INT15にそれぞれ対応する。
IPビットは、割込みを認識した際にセットされる。ユ
ーザに対して直接明らかでない、これらのビットは、メ
ガモジュール領域331に存在し、クロックごとに更新
される(すなわち、イナクティブRDYによってストー
ルされない)。ユーザは、サイクルごとにIPの値を更
新するIFRによって、IPビットの状態を観察するこ
とが出来る。ユーザは、割込みセットレジスタ(IS
R)及び割込みクリアレジスタ(ICR)の書込みによ
ってIPビットの状態に悪影響を及ぼすおそれがある。
これらの変化は、IFRに対するIPビットの次の更新
で生じる。IPビットは、リセットで全てクリアされ
る。このセクションで説明したCPUレジスタは全て、
CPU領域に存在し、サイクルごとに更新される(すな
わち、イナクティブRDYによってストールされな
い)。以下のビットは、CPU10の通常の動作中のソ
フトウェアプログラムによってユーザが、これらビット
を利用できないという意味で「保持される」が、これら
ビットは、エミュレーション及びテスト中に利用するこ
とが出来る。 IRFR:IFRのビット2及び3は、分析割込み(A
INT)及びメッセージ割込み(MSGINT)に対し
てそれぞれ保持される。 IER:IERのビット2及び3は、分析割込みイネー
ブル(AIE)及びメッセージ割込みイネーブル(MS
GIE)に対してそれぞれ保持される。 ISR:ISRのビット2及び3は、分析割り込みセッ
ト(AIS)及びメッセージ割込みセット(MSGI
S)に対してそれぞれ保持される。これらビットは、E
MU MVCENが走査によってセットされる場合、関
連のIPビットをセットするためにのみ用いることが出
来る。 ICR:ICRのビット2及び3は、分析割込みクリア
(AIC)及びメッセージ割込みクリア(MSGIC)
に対してそれぞれ保持される。これらビットは、EMU
MVCENが走査によってセットされる場合、関連の
IPビットをセットするためにのみ用いることが出来
る。
よってトリガすることが出来る。所定のイベントは停止
に対するトリガを行う。発生の停止に対して、CPUテ
ストポートをCNTL状態にする必要がある。例外は、
CPUテストポートからの外部停止要求が実行状態に関
係なく生じることである。以下のような所定のイベント
は、停止又は分析割込みに対するトリガを行うことが出
来る。 1)アクティブ状態の特殊エミュレーションイベント
(SEE)入力。 2)オンチップアドレスブレークポイント(PAB
P)。 3)イナクティブ状態からアクティブ状態に遷移するE
MU0IN及びEMU1IN入力。 4)浮動小数点リソース衝突(FPXイベント)。 以下のような他の所定のイベントは、分析割込みのみに
対するトリガを行うことが出来る。 5)ソフトウェア割込みSWI命令。 6)次のサイクル境界(CYCイベント)。 7)MTAPからのXAINT信号。 以下のような他の所定のイベントは、停止のみに対する
トリガを行うことが出来る。 8)SWBPデコード。これは、実行パケットの第1命
令のクレッグフィールドがSWBPコード(0001)
を含むことを表す。 9)CPUテストポートからの外部停止要求。 イベントは、イネーブルされた場合に、プロセッサの停
止された状態に関係なく認識されるだけ十分長くアクテ
ィブである必要がある。しかしながら、これらイベント
は、複数のイベントを発生させるだけ十分長くアクティ
ブになることが出来ない。エッジ検知回路を、イベント
長の時間制限をエミュレートするために用いる。
ントとして分類され、CPU内のSUSPEND信号
(表29)がアクティブである場合には無視される。し
かしながら、以下のイベントは、分析イベントとして分
類されず、SUSPEND:SWBP,SWI及びテス
トポートから要求された外部停止によって悪影響を及ぼ
されない。SUSPEND信号は、4タームのORによ
って駆動される。 1.CPU DONEアクティブ 2.ECTLビットアクティブ(表28) 3.PAUS,SDAT又はSCTL状態であるCPU
テストポート(表33)。 4.分析制御レジスタのAINTSUSP信号(表3
4)。 図18を参照する。これは分析割込みの検出を表すタイ
ミング図を示している。分析割込み(AINT)を7ソ
ース中の一つによって発生させることが出来る。 1.CPU信号に対するEMU0IN MTAP。 2.CPU信号に対するEMU1IN MTAP。 3.MTAPからのXAINT信号。割込みを、CPU
テストポートがCTRLにあるときのみ発生させる。 4.特殊エミュレーションイベント(SEE)メガモジ
ュール入力。 5.オンメガモジュールプログラムアドレスブレークポ
イント(PABP)。 6.ソフトウェア割込み命令(SWI)。SWBP,S
WIと異なり、CNTL状態であるべきCPUテストポ
ートを要求しない。STP命令は、SWIをセットする
ためのプログラムメモリへの書込みに利用できる。 7.実行中の次のサイクル境界への交差(CYC)。B
ARPのターゲット実行パケットの後のイネーブルで
の第1サイクル境界が終了すると、E1は、CYCイベ
ントをトリガし、AIPをセットする。これは、モニタ
による割込みに基づく単一ステッピングに対して用いら
れる。
レジスタ(図31A)によるイネーブルを要求する。A
IP(したがって、IFR(図17A)のIFRのAI
Fビット)は、割込み処理によって、すなわち、ICR
(図17D)のビット2への1の書込みによってのみク
リアされる。これら割込みは、他の全ての割込みと同様
に、分岐の遅延スロットにある間に発生することが出来
ない。認識は、分岐処理が終了するまで延期され、図1
8は、これらイベントの検出を示す。AIPは、表示さ
れた割込みがAIE及びPRI(及びGIE,IE,N
MIE)によって必要に応じてイネーブルされる場合の
みセットされる。分析制御レジスタ(図31A)のビッ
トは、割込みのマスク可能性及びプライオリティを変化
させることが出来る。PRI,AINTをセットするこ
とによって、最高プライオリティの第2のマスク不可能
割込み(PRI=1)又は2番目に低いプライオリティ
のマスク可能な割込み(PRI=0)を処理することが
出来る。あるシステムにおいて、分析は出来るだけ迅速
にイベントに応答する必要がある。これらにおいて、マ
スク不可能モードを用いる必要がある。他のシステムに
おいて、プログラムフローが出来るだけ混乱しないよう
にする。この場合、マスク可能な、ロープライオリティ
モードを用いる必要がある。PRI=1の場合、AIE
は全ての非リセット割込みをディスエーブルにする。ま
た、AINTは、GIE又はNMIEによって影響を及
ぼされない。NMIEは、全ての非リセット/非AIN
T割込みをディスエーブルして、リセット又はAINT
による場合を除くNMIの割込みを中止する。HPIE
NTで反映すべき割込みに対して、(それがAINTで
ない場合)PRI=1のときにAIEによってイネーブ
ルにする必要がない。PRI=1のときに、処理を必要
とする割込みの検出の際の以下の相違する制限が課され
る。 1.GIE及びNMIEを、行うべきAINTに対して
セットする必要がない。 2.リセットを除く全ての割込みに対して、AIEをセ
ットする必要がある(AIE=1)。 PRI=1の場合に、以下の相違する動作が割込み処理
中に発生する。 1.AINT中、PGIEはGIEにセットされず、G
IEはクリアされない。 2.AIEはクリアされる。
リターンアドレスは、常に、図32Aに示すように、分
析割込みリターンポインタレジスタ(ARP)にセーブ
される。NRP及びIRP(表20参照)からの個別の
ARPは、ACRでPRI=1のように、その必要性が
ある。AINTは、NMIを割り込み又は他の割込みを
行い、IRPの値を上書きすることが出来る。図19A
及び19Bは、割込みSWI及びBARPにそれぞれ関
連する二つの分析割込みを示す。表23及び24は、こ
れら二つの命令を示す。表25は、AINTコードシー
ケンスからのリターンを示す。 2.リセットを除く全ての割込みに対して、AIEをセ
ットする必要がある(AIE=1)。 PRI=1の場合に、以下の相違する動作が割込み処理
中に発生する。 1.AINT中、PGIEはGIEにセットされず、G
IEはクリアされない。 2.AIEはクリアされる。 PRIの値に関係なく、AINTに対するリターンアド
レスは、常に、図32Aに示すように、分析割込みリタ
ーンポインタレジスタ(ARP)にセーブされる。NR
P及びIRP(表20参照)からの個別のARPは、A
CRでPRI=1のように、その必要性がある。AIN
Tは、NMIを割り込み又は他の割込みを行い、IRP
の値を上書きすることが出来る。図19A及び19B
は、割込みSWI及びBARPにそれぞれ関連する二つ
の分析割込みを示す。表23及び24は、これら二つの
命令を示す。表25は、AINTコードシーケンスから
のリターンを示す。
SUSPビットをセットして、任意の将来の分析事象割
込み又は停止の認識をディスエーブルする(すなわち、
AIPはセットされない)。AINTSUSPは、ユー
ザ書込みによってのみクリアされる。再び図18を参照
して、他の割込みが存在する際の分析割込みの動作を説
明する。以前の実行パケットが、そのDPフェーズで発
生する(全ての必要な方法でイネーブルされた)割込み
を有する場合、この割込みは延期され、AINTが行わ
れる。したがって、n+4及びn+5が取り消される。
n+5へのリターンに応じて、AIPに基づくプログラ
ムアドレスを発生させた任意の状態が再度発生する。
ーズで発生する(全ての必要な方法でイネーブルされ
た)割込みを有する場合、AINTが優先して行われ
る。その理由は、それが次の割込みの前に発生するから
である。したがって、分析割込みSWI,PABP,S
EE及びAINTに基づくCYCに基づいたプログラム
アドレスに対して何ら特別の処理を必要としない。テストポート 再び図15を参照すると、各領域10,321及び33
1はそれぞれ、ポート310,320及び330を通じ
てMTAP305にインタフェースする。MTAPは、
各領域に対して一つずつ四つのテストポートをサポート
アップする。しかしながら、SEA領域に対するテスト
ポートは、メガモジュールに含まれない。テストポート
を、領域クロック発生及び実行並びに走査制御を行う一
般的なテスト/エミュレーションインタフェースとす
る。実行制御によって、領域のエミュレーション又はテ
ストソフトウェア直接クロック間制御を行うことが出来
る。テストポートインタフェースに対するMTAPを、
表26及び表27に更に詳細に示す。SEA領域とMT
APとの間のインタフェースは、同様であり、これを、
図34及び図43を参照して詳細に説明する。
図20及び21は、後に詳細に説明するメガモジュール
300のエミュレーション及びテストに関連する種々の
信号及び制御ビットを説明し、かつ、規定する。表28
は、エミュレーション制御に対して用いられると共に走
査チェーン301a〜dを用いて転送される状態情報を
提供するために用いられるCPU領域ビットを規定す
る。表29は、メガモジュール境界301の両端間で送
信される信号を規定する。図20は、MTAP305と
CPU領域10との間の相互接続を説明する。表30
は、メガモジュール境界301も駆動する図20に図示
した信号を規定する。表31は、図20に示した残りの
信号を規定する。図21は、MTAP305とメガモジ
ュール領域331との間の相互接続を示す。表32は、
図21に図示した信号を規定する。表28〜32で用い
られる種々の用語を以下のように規定する。 ANNUL:実行パケットが特定の経路(パイプライ
ン)段中に取り消される場合、それは、任意のメガモジ
ュール境界ストローブ又は状態をアクティブにセットせ
ずに、ユーザビジブル又はエミュレーションビジブル状
態に対して任意の値を書き込む。アドレス及びデータ
は、ストローブによって制限される必要がある状態信号
のようにストローブによって制限されると、状態を変化
させることが出来る。非制限状態をイナクティブにセッ
トする必要がある。取消によって、命令が将来の経路段
で取り消される。 分析制御レジスタ(ACR):図31Aに示す。 分析データレジスタ(ADR):図31Bに示す。 ACRのPRI割込みプライオリティ制御ビット:表3
4をもって説明する。
状態の状態図である。MTAP信号C0,C1,及びC
e並びにLOCK信号(表26)のセットは、表33で
説明すると共に図22に図示したようにテストポートの
状態を決定する。各テストポート310,320及び3
30は、MTAP(図15)からの互いに依存しないロ
ック信号を有する。アクティブロック信号によって、現
在の状態を、ロック信号がイナクティブになるまでテス
トポート内にラッチする。テストポートがロックされな
い場合に、テストポートバスがテストポートの状態を決
定する。テストポートがロックされた際に、信号がテス
トポートバス上で変化し、クロック切換えが無視され
る。領域がロックされる場合、その走査モジュールは、
チェーンに加えられれず、テストポートの共有シフトレ
ジスタ(SSR)ビットを通じてバイパスされる。LO
CK信号は、装置の現在のクロック発生モードをロック
する。
クインさせるコードとは相違するテストポートに供給さ
れるMTAPコードにテストポートがロックされない場
合にテストポートが適切に遷移することを保証する。F
UNC,CNTL又はHALTから走査状態(SCLT
又はSDAT)に切り換えられると、PAUSは、図2
2にに示すように遷移される。MTAPによって、PA
US状態を、以降で説明するようにクロック切換えが終
了するまで喚起させることが出来ないようにする。テス
トポートがPAUSでロックされない場合、エミュレー
ションソフトウェアは、PAUSでテストポートをロッ
クしないようにする必要がある。それが他の任意の状態
でロックされていない場合、結果的に得られるクロック
切換えに対して突然の障害を生じる。再び図15を参照
すると、各テストポートは、領域バスイネーブル(DB
ENB)信号を、その領域走査経路に供給する。イナク
ティブの場合、DBENBは、全ての領域境界信号がイ
ナクティブになるようにし、全ての領域3状態をHI−
Z状態にする。エミュレーションモードにおいて、テス
トポートがFUNC,CNTL又はHALTにある場
合、DBENBをアクティブにする。テストモード(A
TPG DEBM=1)において、テストポートの最初
のSSRビットは、DBENBとして作用する。このビ
ットは、データ走査(SDAT)動作の一部として走査
される。全てのモードにおいて、DBENB信号は、テ
ストポートがSCTL,SDAT又はPAUSの際にイ
ナクティブとなる。PAUSからFUNC又はCNTL
に切り換わる場合に、MTAPは、DBENBが実行を
再開する前にアクティブになると仮定するために、テス
トポートが少なくとも1クロックに対してHALTに入
るようにする。
である図23A,23B及び23Cを参照する。PAU
S状態を、UCLK SEL,TCLK SEL,MT
APコード,LOCK及びSHIFT DRによって制
御されるようなクロック切換えに対して用いられる。L
Mは、テストポートがPAUS,SDAT又はSCTL
にあるときにターンオフされる。ATPG DEVM=
1の場合、LMも、HALTにあるときにシャットオフ
される。3タイプのクロック切換えが可能である。 1.装置のエミュレーション制御に対する(TCLK
の)走査(図23A)のためのUCLK上での機能実行
からの切換え。 2.テストに対する(TCLKの)走査(図23B)の
ためのTCLK上での機能実行からの切換え。TCLK
上での実行はテスト中に用いられる。その理由は、TC
LKを、装置ピンから直接来るように保証することがで
き、それに対して、UCLKをcDSP設計論理によっ
て制御することが出来るためである。 3.UCLK上の機能実行から既に説明した場合と同一
の理由のテストに対するTCLK(図23C)上の機能
実行への切換え。 テストポートへの入力に示した変化のシーケンスは、M
TAP出力の遷移に一致する。一つの例外は、SHIF
T DRが SDAT状態又はSCTL状態の中及びS
DAT状態又はSCTL状態からの遷移を同時に行うこ
とが出来ることである。
ードに基づく。 2.クロック及びテストポート状態は、LOCKビット
がアクティブである場合には変化しない。 3.LSは、常にフェーズが180゜であり、これまで
駆動されたクロック(SCLK又はLM)にオーバラッ
プしない。 4.(T/U)CLKは、(T/U)CLK SELが
イネーブルされると共にテストポートがATPG DE
VM=0である場合のHALT、FUNC又はCNTL
である場合にのみLM/LSを駆動する。 5.TCKLは、TCLK SEL,SHIFT DR
及びSDAT SELがイネーブルされると共に、LO
CKがディスエーブルされる場合のみSCLK/LSを
駆動する。SCTL SELはSCLKをイネーブルし
ない。その理由は、SSR SRL(すなわち非領域S
RL)のみが走査されるからである。 6.最後に、装置がATPGモード(ATPG DEV
M=1)にある場合、TCLKは、テストポートがFU
NC又はCNTLにある際に、常時LM/LSを駆動す
る。これは、UCLKがローに駆動されると仮定する。
走査動作を、テストポートの内部共有シフトレジスタ
(SSR)経路によって行う。この経路は、この領域内
の個別の走査チェーンに対して一つのSRLから成る。
SSRビットは、走査制御(SCTL)経路を更新する
ために、又は、領域データ(SDAT)走査経路に対す
るバイパスビットとして用いられる。SSR経路は、走
査クロックを用いてクロックされる。その理由は、領域
が機能クロックで走査する間でさえもテストポートは走
査可能のままのためである。領域内のクロックは、機能
クロックからSDAT及びSCTL用の走査クロック
(図22)に切り換える必要がある。走査経路の詳細
を、図35に対して詳細に説明する。
経路を経てモジュール走査イネーブル(MSENB)を
アクセスする。MSENBは、図24に図示したよう
に、データ走査(SDAT)経路を形成するようにイネ
ーブルされる領域走査経路を選択する。各テストポート
は、少なくとも一つのMSENBビットを含む。MSE
NBビットは、領域内の各走査経路に対して必要とされ
る。メガモジュールを有する全てのテストポートは単一
スライスである。これらは、単一スライス経路及び単一
MSENBビットを有する。他の単一スライスの例は、
簡単のために、SCTL走査及びMSENBビットを、
LOCK信号又はその等価物に置換することが出来る。
MTAPがアクティブSCTL SEL信号によって制
限されたSHIFT DRを主張する間に、MSENB
データをSSR経路で走査する。MTAPが、アクティ
フSCTL SEL信号によって制限されたUPDAT
E DRを主張する際に、SSRがMSENBにロードさ
れる。MTAPが、アクティブSCTL SEL信号に
よって制限されたCAPTURE DRを主張する際
に、MSENBはSSRにロードされる。機能実行中の
バイパス制御走査を、テストポートをFUNC又はCN
TLでロックした後に走査を実行することによって行う
ことが出来る。この場合、SSRビットは、走査チェー
ンに追加さる唯一のものである。また、テストポート
は、UPDATE DR信号及びCAPTURE DR
信号に応答しない。データ走査動作(SDAT)は、S
SR走査経路を通じた領域走査経路に対するアクセスを
提供する。データ走査中、領域データは、SSR経路を
通じて走査される。SSRビットは、MSENBビット
として制御されるようなバイパスである領域走査経路に
対するバイパスビットとして作用する。SSR経路はS
DAT状態によって選択される。データは、MTAPが
SHIFT DRを主張すると共に、テストポートがS
DAT状態にある間にSSR経路で走査される。SSR
に関連するMSENBがイネーブルされると、データ
は、領域走査経路を通じてSSRビットから走査され
る。MSENBビットがディスエーブルされる場合、デ
ータは、次のSSRビットに対して走査される。各領域
は少なくとも一つのSDAT経路を有する。SDAT経
路は、テスト及びエミュレーションに対して要求される
SRLに対するアクセスを提供する。UPDATE D
R信号及びCAPTURE DR信号は、走査データ動
作には用いられない。
路1で利用される。 1.IDLE命令。IDLEは、割込みによって取り消
されるまで継続的にNOPを経路に伝搬させる。クロッ
ク及びRDY動作は通常のように継続する。したがっ
て、CPUはテストポート停止に応答したままである。 2.分析及びCPU領域のLM/LSをターンオフする
PDREQ/PDACKハンドシェークの終了。マイク
ロプロセッサ1の設計は、変化した割込み状態に基づく
メガモジュールから再度イネーブルクロックへのEIP
SET信号及びIP SET信号を用いることが出来
る。 3.CPUに対するUCLKの修正又は遮断。しかしな
がら、UCLKを遮断した場合、XDSは、TCLK上
でメガモジュールを実行することによって制限される処
理を提供する。図15及び表34は、テストポート、パ
ワーダウン論理及びメガモジュール境界間のパワーダウ
ンインタフェースを詳細に示す。テストポートがイナク
ティブFCLK REQ及びアクティブクロックオフ要
求(OFFREQ)を受信する場合、テストポートは、
クロック(LMロー及びLSハイ)を遮断すると共に、
OFFACKを主張することによって、その要求を行
う。OFFREQが不作動状態、又は、FLCK RE
Qが作動状態である場合、クロックが再度イネーブルさ
れ、OFFACKが主張されない。パワーダウン論理
は、マイクロプロセッサ1に、分析及びCPU領域を遮
断する機能を付与する。第2のケースでは、EiP S
ET又はIP SET入力を、マイクロプロセッサ1が
再主張クロックを使用したい信号割込み状態に対して用
いることが出来る。マイクロプロセッサ1の設計は、C
PUがパワーダウンする間に必要に応じて他の全ての素
子を停止させるようにする。
能であり、三つのテストポート領域中の一つ又はMTA
Pに属する。第4のオフメガモジュール領域、SE分析
領域は、MTAPによってサポートされるが、メガモジ
ュールの一部として含まれない。各領域は、それに関連
するテストポートを有する。テストポートは、特定の領
域のクロックを切り換える必要がある状態で用いられ
る。第4領域は次の通りである。 分析領域:分析データレジスタ(ADR) メガモジュール領域:この領域は、 1.IFR及び関連の検出ラッチを供給するIPビット 2.境界でRDYをラッチするとともに停止を制御する
SRL 3.テスト用の並列シグネチャ解析(PSA) 4.MTAPからのEMU(0/1)IN信号を検出す
る回路 5.パワーダウン制御ビットに対するラッチ 6.消耗したCPUを発生させる回路 7.1クロックMSGSWパルスを発生させる を有する信号走査経路を有する。 CPU領域:CPU領域は、RDYによって停止された
全てのCPU SRLを有する単一走査経路からなる。 SE分析(SEA)領域:特殊エミュレーション装置
(SE)は、SE論理に対する第4の領域を有し、これ
は、メガモジュールの外側にある。CPUテストポート停止制御 このセクションでは、エミュレーションに対するCPU
領域停止について説明する。エミュレーションモード
(EMU DEVM=1)において、CPUは、サイク
ル境界での実行を停止する。テストモード(ATPG
DEVM=1)において、CPUはクロック境界での実
行を停止する。このセクションの図は、図示するために
2サイクルのオフメガモジュールRDYに基づく停止を
示す。表35は、CPU領域と停止をサポートするCP
Uテストポートとの間の信号を規定する。
る停止の相違するケースを説明するタイミング図であ
る。この説明はテストポートが停止状態になることを示
すが、他の実施の形態に対して、テストポートをPAU
S状態の代わりにする場合、その結果は同一である。P
AUSは、HALと同様にERDY DC,ERDY
E1及びCPU DONE信号に影響を及ぼす。エミュ
レーション停止は、以下のケースに応じて発生する。 ケース1.EMU(0/1)入力のアクティブ遷移。E
MU(0/1)信号は1クロック長パルスを発生させ
る。したがって、これら信号は、(多分サイクルの中間
の)メガモジュール領域で検出され、その幅は図示した
ようにサイクルの終了まで伸長される。したがって、そ
れがイナクティブRDY中に応答する必要があるため、
メガモジュール領域の論理はこれを達成する。 ケース2.DPフェーズ中に検出されるプログラムアド
レスブレークポイント。 ケース3.DPフェーズ中にデコードされたSWBP。
一度、経路は、命令のE1フェーズ中に停止される。経
路は、SWBP DEC領域が走査によってクリアされ
るまで進行しない。 ケース4.外部でのPCDPのプログラムアドレスブレ
ークポイント整合に基づく特殊エミュレーションイベン
ト(SEE)。これは、DPフェーズ中に内部で見られ
る。他の状態が発生することができ、特殊エミュレーシ
ョン論理に依存する停止に基づくSEEが実現される。
しかしながら、プログラムアドレスブレークポイントが
示される。その理由は、最も厳密なタイミング要求を有
するからである。 ケース5.浮動小数点リソース衝突。 ケース6.DPフェーズ中のCNTLからHALTまで
のテストポート遷移。EMU(0/1)INイベントの
ように、これは、DPサイクルの中間でも生じるおそれ
がある。これらイベント中の一つに基づいて、図25に
示すように、以下の動作が発生する。
外部でローにセットされる。ERDY E1信号は、E
1フェーズの最初で開始するように外部でローにセット
される。EMURDYは、関連のE1の最初でセットさ
れる。このセットではCPUを停止させるCPU RD
Y信号を供給する。一度、全てのRDY(RDY1〜R
DY4入力)が内部でアクティブになると、CPU D
ONEを主張する。CPU DONEを識別した後、M
TAPがCPUテストポートをCNTLからHALTに
移動させる。XDSは、MTAPを通じて、全ての必要
な走査を実行する。MTAPは、テストポートをCNT
Lまで戻して、CPUが経路フェーズを終了できるよう
にする。CPU DONE及びERDY E1はイナク
ティブになる。EMURDYはイナクティブになる。M
TAPが1クロックのみに対してCNTLを発生する場
合、メガモジュールを単一経路フェーズにステップさせ
ることが出来る。図26は、外部メモリ準備信号ERD
Yを形成する回路を示す図である。外部メモリシステム
は、互いの停止を認識するように相互のRDYを追跡す
る必要がある。同様に、ERDY DC信号及びERD
Y E1信号を、エミュレーション停止に認識すべき外
部メモリシステムによって用いることが出来る。CPU
は、エミュレーション停止前に(少なくとも2クロック
で)中止を警告する内部の二つのサイクルを有する。こ
れによってERDY DC信号及びERDY E1信号
を発生することが出来る。
互作用を説明するためのタイミング図である。図27に
おいて、実行パケットn+5がDC段でイネーブルにな
った際に中止の割込みが発生したと仮定する。n+5が
DPで検出した停止の場合に、その停止はプライオリテ
ィであり、割込みを発生しない。このようにして、停止
は(リセットを含む)割込みを遮断することが出来る。
しかしながら、割込み標識はセットし続ける。割込み及
びリセットも走査中延期される。その理由は、EMUR
DYは、経路を停止することによって割込み応答を延期
するためである。停止の副次的な影響は、経路を通じた
関連の実行パケットの進行に依存する。したがって、複
数サイクルNOR又はIDLEに続く実行パケットに出
会うと、そのDP,ERDY DC及びEMURDY
は、実行パケットがDCに入るまで応答しない。同様
に、ERDY E1及びCPU DONEは、実行パケ
ットがE1に入るまで応答しない。CPUのテストポー
トが、割込み処理中にCPUテストポート要求されたエ
ミュレーション停止に応答してCNTLからHALTに
遷移する場合、CPU DONEは、割込みサービスフ
ェッチパケット(ISFP)がE1に到達する(図2
7)までアクティブに設定されない。図28は、テスト
ポートによって要求されるテスト停止を示すタイミング
図である。テストモード(ATPG DEVM=1)の
際に、CPUはCPUポートに要求されたテスト停止に
応答するCNTLからHALTに遷移するテストポート
に対応して直ちに停止する。これは、割込み処理の存在
に関係なく同様に動作する。エミュレーション経路制御 再び種々のエミュレーション制御及び状態ビットを要約
する表28を参照して、ここで以下のエミュレーション
ビット:EPDN,EPUP,ECTL及びEUPLに
ついて詳細に説明する。エミュレーションパイプダウン
(EPDN)ビットは、以下のような結果となるエミュ
レーション停止を中止する。ディスエーブルされた別の
フェッチ:PASはディスエーブルになる。したがっ
て、これ以後におけるプログラムフェッチは開始されな
い。しかしながら、以前に要求されたフェッチは、終了
を許容すると共に、プログラムフェッチ回路10aに配
置されたプログラムデータ入力バッファPDATA I
にロードするように許容される。
行パケットがE1に入る前に中止される。その後E2に
入る任意の実行パケットを、XDSによってサイクル的
に終了させることが出来る。ANNULビット及びAN
NUL ASUビットの両方を、動作を停止させるため
に0に走査する必要がある。ディスエーブルされた割込
み:リセットを含む全ての割込みの実行はディスエーブ
ルされる。ペンディングビットをセットし続ける。エミ
ュレーションパイプアップ(EPUP)ビットは、エミ
ュレーション再開の中止を実行する。割込みはディスエ
ーブルされて、リセットを含む全ての割込みの実行がデ
ィスエーブルになるが、ペンディング割込みビットはセ
ットし続けることになる。エミュレーション制御(EC
TL)ビットによって、以下のステップを実行すること
によってCPUのエミュレータ制御を許容する。 1)保留分析イベント:ECTLは、分析イベントの任
意の将来の認識を保留する。 2)ディスエーブルされた割込み:ECTLは、リセッ
トを含む全ての割込みをディスエーブルする。IPビッ
トはセットのままであるが、割込みは行われない。分析
イベントの保留のために、AIPをSWIによってのみ
セットすることが出来る。 3)ディスエーブルフェッチ:(EPDNのような)E
CTLも、PRSをイナクティブに強いることによって
プログラムフェッチをディスエーブルする。したがっ
て、CPUが停止中であるとき、XDSは命令をPDA
TA Iに対して走査することが出来る。PDATA
Iが複数の実行パケット(部分的に順次フェッチパケッ
ト)を有する場合、CPUは、これらを通常のように処
理すると共に、終了時に最初の実行パケットに重なる必
要がある。しかしながら、実行パケットは、フェッチパ
ケット境界に交差し、かつ、重なることが出来ない。X
DSは、8命令中の一つとしてSWBPを置換すること
によって他のエミュレーションイベントをトリガするこ
とが出来る。 エミュレーションプログラムアップロードサポート(E
UPL)ビットは、プログラムアップロードにサポート
する。EUPLは、プログラムフェッチを再イネーブル
し、次のフェッチパケット(すなわち、分岐がない、P
FC+=8)を増分するようにPFCをセットする。し
かしながら、全ての段DPはその後中断する。フェッチ
は、ECTLがセットされた際にも再度イネーブルにす
る。しかしながら、ECTLがセットされると、割込み
は行われず、分析イベントは保留となる。これはプログ
ラムアップロードに用いられる。サイクルごとに、PD
ATA Iを走査して、フェッチパケット成分を取り出
すことが出来る。ANNULビット及びANNUL A
SUビットの両方を0に走査して動作を中止する。
る、パイプラインを停止すると共に、経路内の種々のレ
ジスタ成分を状態としてセーブする手順の停止のシーケ
ンスを説明するためのタイミング図である。終了したE
1(a〜d)を有する実行パケットの命令は、終了に進
行することが許容される。以下、経路停止を制御する際
の動作XDS51におけるシーケンスの実行について説
明する。このセーブ状態の方法において、終了したロー
ドのデータソースの任意のユーザの変形は、再開に対し
て反映されない。停止を開始した後、図25を参照して
説明するように、以下のステップが実行される。 1.時間350のサイクル2:走査が終了し、かつ、全
てのCPU領域をセーブする状態。EPDN=1,EP
UP=0,ECTL=0,EUPL=0,ANNUL=
0及びANNUL ASU=0での走査。これは、新た
なフェッチを停止して割込みをディスエーブルにし、E
1を終了しない実行パケット送出を中止する。 2.1クロックサイクルに対してCNTL351を適
用。 3.時間352でのサイクル3。走査の終了及びDDA
TA Iのセーブ。任意変形のない状態での走査。 4.1クロックサイクルに対してCNTL353を適
用。 5.時間354でのサイクル4。走査の終了及びDDA
TA Iのセーブ。任意変形のない状態での走査。 6.1クロックサイクルに対してCNTL355を適
用。 7.時間356でのサイクル5。走査の終了及びDDA
TA Iのセーブ。DPフェーズにNOPを充てんする
状態で、EPDN=1,EPUP=0,ECTL=1,
EUPL=0,ANNUL=0及びANNUL ASU
=0での走査。設定するECTLをSUSPENDにセ
ットして、オンチップ及びオフチップ分析をディスエー
ブルにする。 8.1クロックサイクルに対してCNTL357を適
用。 9.時間358でのサイクル6。走査なし。NOPが伝
送路を搬送することが出来る。 10.1クロックサイクルに対してCNTL359を適
用。 11.時間360でのサイクル7。セーブすべき状態の
ない走査の終了。EPDN=0,EPUP=0,ECT
L=1,EUPL=0,ANNUL=1及びANNUL
ASU=1での走査。EPDNをクリアすることによ
って、DPフェーズ(IR)の成分を、伝送路の残りに
供給することが出来る。フェッチ及び割込みはECTL
によってディスエーブルされたままである。
中セーブされた種々の状態の各々を回復することによっ
て全伝送路状態を「パイプアップ」手順で回復する方法
を示すタイミング図である。この図は、制御の際にXD
Sによって挿入された全ての実行パケットが伝送路に流
れると仮定し、伝送路の全てのフェーズにNOPを含
む。この状態は、命令レジスタにNOPを充てんすると
共に、伝送路の他の命令が終了を繰り返すことを許容す
ることによって手動で達成される。再走査後、中止され
たフェーズは、セーブされた状態から終了することを許
容される。他の全ての状態は、以前のサイクルから継続
する。サイクル2において、データメモリストローブが
ディスエーブルされるため、データメモリ動作は好適に
は再実行されない。E5の始端(E4の終端)でラッチ
された入力ロードデータを、XDSによって走査する必
要がある。したがって、好適にはパイプダウンの全シー
ケンス、エミュレーション及びパイプアップが、図1の
データ処理システムに余分なメモリ、すなわち、I/O
サイクルを必要としない。以下、伝送路再開の制御の際
にXDSが実行する動作のシーケンスについて説明す
る。
ケットhに対してフェッチしたフェッチパケットのアド
レスに戻った走査。この情報は、エミュレーション停止
中サイクル2の走査中に利用できる。EPDN=0,E
PUP=0,ECTL=0,EUPL=1,ANNUL
=1及びANNUL ASU=1にセットする。これ
は、ディスエーブル割込みの間フェッチを再イネーブル
にする。 2.1クロックサイクルに対するCNTL371の適
用。 3.時間372のサイクル1:フェッチパケットiに対
してフェッチしたフェッチパケットのアドレスに戻った
走査。この情報は、エミュレーション停止中サイクル2
の走査中に利用できる。 4.1クロックサイクルに対するCNTL373の適
用。 5.時間374のサイクル2:ディスエーブルされた
(0にセットされた)DBSを有するサイクルからの全
CPU領域状態の回復。EPDN=0,EPUP=1,
ECTL=0,EUPL=1,ANNUL=1及びAN
NUL ASU=1にセットする。これは、ディスエー
ブル割込みの間フェッチを再イネーブルにする。 6.1クロックサイクルに対するCNTL375の適
用。 7.時間376のサイクル3:走査終了及び伝送路停止
のサイクル3からのDDATA Iに戻る走査。 8.1クロックサイクルに対するCNTL377の適
用。 9.時間387のサイクル4:走査終了及び伝送路停止
のサイクル4からのDDATA Iに戻る走査。 10 1クロックサイクルに対するCNTL398の適
用。 11.時間380のサイクル5:走査終了及び伝送路停
止のサイクル5からのDDATA Iに戻る走査。EP
DN=0,EPUP=0,ECTL=0,EUPL=
0,ANNUL=1及びANNUL ASU=1にセッ
トする。これは、割込み、分析及びフェッチを再度イネ
ーブルにする。 ソフトウェアブレークポイント(SWBP)は、表10
に示したようにSWBPを表す“0001”のコードを
有するターゲット命令のクレッグ/z領域を置換し、か
つ、セーブすることによってセットされる。この領域
は、伝送路のDCフェーズ中にデコードされる。“00
01”にデコードすると、ブレークポイント動作をトリ
ガし、XDS 51を求めて、既に説明したパイプダウ
ン及びパイプアップ手順を実行することによってデバッ
ク又はエミュレーション機能を実行する。デバック又は
エミュレーション動作を終了すると、XDSは、領域の
関連のクレッグ領域(フィールド)を、その元の値にリ
ターンすることによって、E1中パイプラインのSWB
P命令を置換する。これに加えて、SWBP DECS
RLが、デコードされたSWBPによってセットされ
る。XDSは状態としてSWBP DEC(図20)を
使用する。伝送路のSWBPを適切なクレッグ領域に置
換すると、XDSはSWBP DEC SRLをクリア
して、他のSWBPをデコードすることが出来る。本発
明の他の態様によれば、デバッグ機能を、ソフトウェア
ブレークポイント命令に応答して実行し、通常の伝送路
の動作を、SWBPに変換される命令を再フェッチする
ことなく再開する。好適には、追加の記憶サイクルは、
図1のデータ処理システムで実行されない。
レーション停止シーケンスによって中止されると共に、
XDSがデバッカによって表示すべき全ての必要な状態
を取り出したと仮定する。XDSは再開シーケンスの最
初の6ステップを実行した後エミュレーション停止シー
ケンスを再度行うことによってステップマイクロプロセ
ッサ1を単一にすることが出来る。分析テストポートを
発生させる分析イベントに対する単一ステッピングがC
NTL又はFUNCでロックする必要がある。同様に、
検出すべき割込みに対して、メガモジュールテストポー
トは、CNTL又はFUNCでロックされる必要があ
る。検出すべき割込みに対し、換言すれば、メガモジュ
ールの一部は実行し続ける必要がある。また、CPUは
割込みサービスフェッチパケットへのステップを単一に
しない。CPUを、割込みが行われる前に最小サイクル
数で実行するように許容される必要がある。イベント
を、種々のテストポート310,320及び330の状
態に応答して種々の理由に対して保留することが出来
る。これら状態は、停止中分析イベントを保留する。 1.停止中、CPUテストポートのPAUS/SDAT
/SCTL状態は、SUSPEND信号をアクティブに
し、将来の分析イベントをディスエーブルする。CPU
テストポートがCNTL又はFUNCにリターンする
と、SUSPEND信号がイナクティブ状態に戻る。 2.これに加えて、分析イベントは、CPUテストポー
トがFUNC状態にある際に停止になるのが防止され
る。 3.XDSは、走査を通じてECTLビットをセットし
て、エミュレーション制御中に分析イベントをディース
エーブルにすることが出来る。 停止は、伝送路のIDLE又は多サイクルNOP命令に
よって悪影響を及ぼさない。伝送路の再開に応答して、
伝送路のIDLE又は多サイクルNOPの以前の状態が
回復される。通常のデバック及びエミュレーション動作
において、分析領域及びメガモジュール領域が停止され
ない。したがって、(CPU DONEのような)ハン
ドシェーク信号を、テストポート320又は330を停
止させるためにMTAPに対して設けない。MTAP
は、単にクロック切換えを実行するだけであり、適切な
クロック境界上の状態を通じて移動する。ある理由に対
してこれら領域を停止させる必要がある場合、これら領
域を、CPU領域が停止された後にのみ停止する必要が
ある。
既に説明したようにエミュレーション及びデバッグを通
じて用いる種々のレジスタを図示する。これらは分析制
御レジスタ(ACR)390、分析データレジスタ(A
DR)391、分析割込みリターンポインタ(APR)
392及びデータストリームレジスタ(STREAM)
393とを有する。これら種々のレジスタを以前のセク
ションで説明し、ここで更に詳細に説明する。図におい
て、用語「MVC読出し可能」及び「MVC書込み可
能」は、CPU制御レジスタの特別のビットをMVC命
令によって読出し可能であるか又は書込み可能であるか
について言及するものである。全ての保持された、すな
わち、書込み専用ビットは“0”として読み出される。
図31Aは、エミュレーション及び分析用の制御及び状
態ビットを有するACR390を説明する。状態ビット
は、停止又は分析割込みを発生させず、単に、イベント
が保留されない間に発生したイベントを反映するのみで
ある。これらが発生すると(イネーブルされた場合)、
実際のイベントそれ自体は、停止をトリガし、又はAI
Pをセットする中止割込みを示す。また、リセットは、
CPUテストポートがFUNC状態にある場合にACR
を、そのリセット値に設定するのみである。例外は、常
にCPUテストポート状態に関係なくリセットされるR
STOCCである。表36は、各ACRビット領域(フ
ィールド)の機能を説明する。
の存在を表すためにEMU DEVM(=1)の代わり
に使用し、その結果、このビットを、ユーザ及びこれら
の間の任意のテストモードによって通常の動作で評価す
ることが出来る。
明する。ADRの最初から30ビットを、伝送路フェー
ズ(パイプライン段)DCのプログラムアドレスとの比
較に用いて、プログラムアドレスブレークポイントを発
生させる。このレジスタは、分析領域にあり、メッセー
ジ通過に用いる。分析走査中のこのレジスタの読出し
は、Oをリターンし、ACRのMSGERRビットをセ
ットする。分析走査中の書込みに影響を及ぼさず、MS
GERRビットをセットする。他の任意の読出し又は書
込みはMSGERRビットをクリアする。
(ARP)392を説明し、これを、以前に分析割込み
を参照して詳細に説明した。メモリアクセスサポート マイクロプロセッサ1のアーキテクチャは、全てのメモ
リロケーションがいずれかのプログラムメモリ内にある
か、又は、データメモリが(RAM又はFLASHを用
いる場合)書込み可能であると仮定する。マイクロプロ
セッサ1の設計は、この便宜にしたがって、XDSに基
づくデータ及びプログラムアップロード及びダウンロー
ド並びにSWIのモニタ置換を許容する。これに加え
て、個別のプログラムメモリ及びデータメモリは、同一
アドレススペースを占有しない。キャッシュは、SWI
及びSWBP置換に対して書込み可能である。データダ
ウンロード及びアップロード並びにプログラムダウンロ
ードに対して、XDSは、エミュレーション停止シーケ
ンスの後に次のようになる。 1.ECTLセット。フェッチパケットをPDATA
I 10aに走査する(図1)。データアクセスに対し
て、これらは7シリアルロード又はストアからなる。プ
ログラムダウンロードに対して、これらは、SWBPに
続く3MVC/STP対からなる。適切なデータ及びア
ドレスを、レジスタファイルに走査する。 2.CPUの実行をフリーにする。最終的には、SWB
Pは停止をトリガし、その後再走査する。 このようにして、XDSはデータの224ビット/走査
(7x32ビット記憶)のダウンロード/アップロード
し、又は、プログラムの96ビット/走査(3x32ビ
ット記憶)のダウンロードを行うことが出来る。本発明
の態様によれば、デバックコード命令のこれらのシーケ
ンスを、マルチワード命令レシスタにロードすると共
に、プロセッサ1のデバック動作を行うために実行す
る。好適には、追加のメモリ動作が図1のデータ処理シ
ステムと共には生じない。プログラムアップロードに対
して、エミュレータは、以下のエミュレーション伝送路
(パイプライン)停止シーケンスを実行する。 1.ECTL及びEUPLのセット。PFC及びPAD
DRの値を走査。 2.HALT/CNTLを3回適用して、PS,PW及
びPRフェーズを通じて移動させる。 3.アップロードされたプログラムに対してPDATA
Iを走査する。 4.その後、XDSは単一CNTL/HALTをサイク
ルごとに適用することが出来る。したがって、エミュレ
ータは256ビット/走査を実行することが出来る。以
前の手順が、データ処理システム環境を妨害することな
く小データ量をアップロード又はダウンロードするのに
有効である間に、要求される走査量が原因の顕著なオー
バヘッド時間がある。「データストリーム」と称される
手順は、全走査速度での以下のデータ転送を提供する。
(XDSからの)プログラムメモリダウンロード、(X
DSからの)データメモリダウンロード及び(XDSへ
の)データメモリアップロード。
するのに用いられるデータストリームレジスタ393を
図示する。このCPU制御レジスタは、CPUレジスタ
ファイルをMTAP(STRM I/O)からデータス
トリームバスに接続する。このレジスタを、書き込まれ
たものを読み返すような記憶に用いることが出来ない。
データストリームプロセスを、表38〜42を参照して
詳細に説明する。フェッチを防止するために、XDSは
ECTLビットをセットしてフェッチをディスエーブル
にする。XDSは、適切なフェッチパケットをPDAT
A Iにロードする。このフェッチパケットは、STR
EAM CPU制御レジスタを通じてアクセスされるよ
うにデータストリームバス間(STRM STとSTR
M LDとの間)の必要なデータ移動を実行する。(32
番目のビットごとの)新たなデータワードの走査に応答
して、CPUを1サイクルステップさせる。CPU D
ONEがサイクルのつぎのステップの前で受信されない
場合、MTAPはこのエラー状態をラッチする。この場
合、XDSは、ストリームプロセスの終了に応答して発
生したストリームエラーを検出することが出来る。MT
AP内のデータ移動及びエラー検出の管理の詳細を後に
説明する。好適には、命令フェッチが禁止されているた
め、同一フェッチパケットをストリームプロセスの持続
時間中に実行する。表38及び表39は、データポート
2及び1上のデータストリームデータダウンロードを制
御するフェッチパケットをそれぞれ示す。両データポー
トに対する例を示す。その理由は、マイクロプロセッサ
10は物理的に切り離されたメモリスペースに対する二
つのポート書込みを行うことが出来るためである。両ケ
ースにおいて、オペランドとしてのSTREAMレジス
タを有するMVC命令を、ストリームデータのB及びA
レジスタファイルへの移動に用いる。データポート2に
対して、XDSは、第1STWに対する初期データ値を
(B1の)レジスタファイルに走査する必要がある。デ
ータポート1ダウンロードに対して、STREAMを最
初にBレジスタに移動し、その後Aレジスタに移動させ
る必要がある。その理由は、MVCはAレジスタを直接
ロードすることが出来ないためである。この場合、XD
Sは、最初の二つの値(A1及びB1)でレジスタファ
イルを走査する必要がある。好適には、マイクロプロセ
ッサ10は、表38及び表39のMVC及びSWTのよ
うな種々の命令の組合せを並列処理で実行して、オーバ
ヘッド時間を最小にすることが出来る。
1上のデータストリームアップロードを制御するフェッ
チパケットをそれぞれ示す。両データポートに対する例
を図示する。その理由は、マイクロプロセッサ1は、物
理的に切り離したメモリスぺースに対する二つのポート
書込みを行うことが出来る。両ケースにおいて、オぺラ
ンドとしてSTREAMレジスタを有するMVC命令
を、ストリームデータのB及びAレジスタファイルへの
移動に用いる。また、XDSはPDATA IをNOP
に充てんした後に終了するために最終ロードを手動によ
るクロックすることを許容した後、(B1からの)レジ
スタファイルから最終LDWからの最終データ値を走査
する必要がある。 表40.データストリームデータアップロード(データポート2)に対するフェ ッチパケット MVC .S2 B1, STREAM ‖ LDW .D2 *B0++, B1 MVC .S2 B1, STREAM ‖ LDW .D2 *B0++, B1 MVC .S2 B1, STREAM ‖ LDW .D2 *B0++ B1 MVC .S2 B1, STREAM ‖ LDW .D2 *B0++ B1 表41.データストリームデータアップロード(データポート1)に対するフェ ッチパケット MVC .S2X A1, STREAM ‖ LDW .D1 *A0++ A1 MVC .S2X A1, STREAM ‖ LDW .D1 *A0++ A1 MVC .S2X A1, STREAM ‖ LDW .D1 *A0++ A1 MVC .S2X A1, STREAM ‖ LDW .D1 *A0++ A1
ウンロードを制御するフェッチパケットを示す。データ
ダウンロードのように、XDSは、記憶すべの最初の値
を(B0の)レジスタファイルにロードする必要があ
る。しかしながら、プログラムアクセスに対するデータ
ストリームと相違し、プログラムフェッチ回路10aに
配置されたプログラム−データ出力レジスタ(PDAT
A O)である記憶すべきレジスタに、STREAMを
直接移動させる命令を利用できない。したがって、ST
RM SEL信号を、サイクルごとに(STRM I/
Oバスを通じて)PDATA OをSTREAMの値に
更新するために用いる必要がある。 表42.データストリームプログラムダウンロードに対するフェッチパケット ADDAW .D2 B0 1, B0 ‖ STP .S2 *B0 ADDAW .D2 B0 1, B0 ‖ STP .S2 *B0 ADDAW .D2 B0 1, B0 ‖ STP .S2 *B0 ADDAW .D2 B0 1, B0 ‖ STP .S2 *B0
ータキャッシュ及びプログラムキャッシュに対する相互
に独立した制御がある。 1.キャッシュフリーズ:キャッシュ値を読み出す。読
出しはキャッシュを更新しない。 2.キャッシュフラッシュ:全てのキャッシュデータは
無効にされる。更新は発生しない。 3.キャッシュバイパス:値がメモリから読み出され
る。読出しはキャッシュを更新しない。 以下のルールを、キャッシュに対するメモリアクセスの
XDS制御に適用する。 1.データ又はプログラムCOFFダウンロード上で、
キャッシュを、フラッシュし、以前の制御状態を回復す
る。 2.データ又はプログラムCOFFアップロードに対し
て、キャッシュをフリーズし、かつ、以前の制御状態に
戻す。 3.CPUメモリの観点からのデータ又はプログラムメ
モリ読出しに対して、キャッシュをフリーズし、かつ、
以前の制御状態に戻す。 4.物理的なメモリの観点からのデータ又はプログラム
メモリ読出しに対して、キャッシュをバイパスし、か
つ、以前の制御状態に戻す。 5.データ書込みに対して、キャッシュ制御ビットを変
化させない。 6.プログラム書込みに対して、キャッシュをフラッシ
ュし、その後以前の制御状態に戻す。発展ツールノート XDS及びシミュレータにおいて、デバッグに対するプ
ログラマのモデルは次の通りである。 1.全ての情報を、(クロック間に基づくのとは逆に)
サイクル間に基づいて表示する。したがって、メモリ停
止はユーザで可視できない。 2.デバッガは、ディスアッセンブリで実行すべき次の
実行パケットを強調する。 3.最後のサイクルの終了によって書き込まれた全ての
レジスタの結果を表示する。 A)以前のサイクルにおけるE1(単一サイクル整数命
令、アドレス変更)の実行パケットの結果。 B)同様な、2サイクル前からのE2(整数の倍数)の
命令の結果。 C)4サイクル前のE4(浮動小数点命令)の命令の結
果。 D)5サイクル前からのE5(ロード)の命令の結果。 モニタに基づくデバッガにおいて、プログラマは単一割
当てを用いる必要がある。また、全ての命令を順に実行
するために明らかにする必要がある。
(f)を強調する場合、2重線400上又はその前に書
き込まれた全てのCPU状態が表示される。したがっ
て、例えば、実行パケット(e)が乗算を実行すると、
その結果が表示されないことになる。むしろ、乗算の宛
先レジスタは、サイクル11からの以前の内容を有す
る。CPU状態と異なり、記憶状態は、記憶の終了を向
上させることを許容する。図33において、実行パケッ
トc−eの記憶が終了する。したがって、(全ての走査
が終了した後に更新される)記憶表示は、CPUの前の
3サイクルとなる。これが4遅延スロットを有するロー
ドに一致しないような場合にも、プログラマは、ロード
値がロード命令を通じてステップする直前の表示に表れ
た値であると認識する必要がある。全てのアクセスがC
PU境界に順に表れるので、記憶表示は自己矛盾しな
い。リアルタイムデバッグ:モニタモード: リアルタイムデ
バッグは、マイクロプロセッサ1がユーザコードを実行
する間ユーザに対して可視できるようにする。変数を表
示すると共に、アッセンブリ及びハイレベル言語(HL
L)の観点から両者を変更することが出来る。このリア
ルタイムデバッグそれ自体は、エミュレーション論理に
依存しない。通常、デバックモニタは、バックグランド
タスク又は、より高いプライオリティの割込みによって
駆動されるリアルタイムタスクの存在で実行する非常に
低いレベルの割込みサービスルーチンである。モニタ
は、デバッガが存在するホストと通信する。最低レベル
のデバッガはメモリを要求することができ、レジスタは
読出し及び修正動作を行う。通信は、シリアルポートの
ような周辺装置、共有メモリ、又は(ADRのような)
専用のメッセージ通過ハードウェアを通じて発生するこ
とが出来る。モニタコードの発展を考察すると、 コードサイズ:モニタコードサイズを最小にする必要が
ある。 パフォーマンス:モニタコードは、十分なユーザアクセ
ス可能性を提供するように十分高速に実行する必要があ
る。単一ステッピング: デバッガでは2タイプのステッピン
グを実行する。 1.ハイレベル言語のステッピングステートメント。 2.サイクル間に基づくステッピング実行パケット。 伝送路の可視性がCPUのプログラミングに重要である
ので、デバッガは命令ステッピング(命令のE1からE
5までの全ての方法の命令のステッピング)をサポート
する必要がない。代わりに、ステップ機構によって、全
ての状態が単一伝送路フェーズを継続できるのみであ
る。エミュレーション停止の後、実行パケットステッピ
ングは、一部再開(図30)に続く停止伝送路走査シー
ケンス(図28)によって実行される。特に、再開は、
1サイクルを継続するように許容される。その後、エミ
ュレーション停止シーケンスはそのまま全部が再度発生
する。
のグループは、ハイレベル言語(HLL)ステートメン
トでは1対1に基づいて一致しない。以下のアプローチ
が、HLLステートメント間で可視性を提供するために
利用できる。 1)HLLコンパイラは、順番に終了する意外な結果
(side−effects)を発生させるコードを発
生させることが出来る。しかしながら、これは、高性能
コードを達成することを思い切って禁止する。また、こ
の制限は、順番通りでない実行が許容されるときにのみ
発生する問題がある。 2)XDSは、複数の停止を実行することが出来ると共
に、特別なHLLステートメントの結果を隔離すること
が出来るように走査する。オブジェクトのデバッグ情報
を嵌め込む新たな方法を発展させて、この方法を容易に
する必要がある。それに加えて、(アッセンブリ及びH
LLの両方の)混合モードディスプレイにおいて、どの
アッセンブリ命令がディスプレイに見えるような伝送路
のどのフェーズを終了するかを示す方法を発展させる必
要がある。この方法の不都合は、ユーザが新たな記憶位
置又は表示用の記号値を要求することが出来ないおそれ
である。このような情報は既に消失している。その理由
は、その値が有効であるときを超えて一部の処理を実行
した場合があるためである。両解決は、この章の現在の
エミュレーションの記載を用いると実現可能である。プ
ログラムメモリのSWI命令の適切な命令へのソフトウ
ェア置換を、ユーザのモニタプログラムによって行う。
割込みがイネーブルされると共に、SWIが、割込みを
中止する最高のプライオリティである場合、これはSW
IがDCにあるときに行われる。より高いプライオリテ
ィの割込みがある場合、SWIは、割込みからのリター
ンに応答して再度フェッチされる。したがって、再度出
会うことになる。SWI−認識は、この認識が取り出さ
れた分岐の遅延スロットに存在することによって、すな
わち、AINTがイネーブルされない場合に延期され
る。 メガモジュールテストアクセスポート(MTAP)
明の態様は、ここに引用されるIEEE1149.1−
1990標準テストアクセスポートおよび境界スキャン
のアーキテクチャの改善に関する。ここで使用されるI
EEE1149.1に関する用語と概念はこのIEEE
規格に充分に説明されている。同様に、本発明の態様
は、米国特許第4,860,290号で開示され、ここ
に引用されるTexasInstrumentsのモジ
ュラーポートスキャンデザイン(MPSD)の構造の改
善に関する。詳細には、すべての「重要な」レジスタへ
のアクセスを提供する各モジュールに対応するシリアル
スキャンパス上のビーズの列のようにマイクロプロセッ
サ1を通じて分配されるシフトレジスタラッチ(SR
L)の動作が引用される関連米国特許第4,860,2
90号で説明されている。再び図15を参照すると、メ
ガモジュールテストアクセスポート(MTAP)305
がIEEE1149.1規格テストアクセスポートの機
能の部分集合をサポートする。メガモジュール300の
MTAPはマイクロプロセッサ1のピンを直接ドライブ
しないので、境界スキャンをサポートする必要はない。
MTAP305は1149.1対応JTAG状態マシン
と、遠隔ホスト51のスキャン制御装置とメガモジュー
ル領域テストポート(DTP)310、320および3
30との間の通信を提供する。JTAGインターフェー
スに加えて、MTAP305は、前節で論じたように、
テストサポート、DTPの自動実行制御、性能上の大き
な利点を提供するデータ・ストリーム制御機構、マイク
ロプロセッサエミュレーションのサポートおよび性能の
解析を提供する。MTAP305のテスト機能セットは
プロダクション自動テストパターン発生(ATPG)パ
ターンの適用をサポートする。機能テストパターンはエ
ミュレーション能力を使用してロード、実行およびデバ
ッグできる。
ロプロセッサ1のピン410〜416への接続を示す構
成図である。また図15を参照すると、前に論じられこ
こで要約されたように、メガモジュール300のアーキ
テクチャはMTAP305とCPUコア10、CPU解
析領域321、メガモジュール331(CPUコア以外
のすべてのメガモジュール機能(特徴)を含む)および
特殊エミュレーション(SE)400という4つの領域
との間で分割されている。SEモジュール400はメガ
モジュール300の外部にある。各領域は領域テストポ
ート(DTP)を通じて実行制御とドメインスキャンパ
スへのアクセスとを提供する。CPUのDTP310は
プログラムの実行(開始、停止、ソフトウェアのブレー
クポイント)とプログラマモデル(レジスタおよびメモ
リ)への可視性を制御する停止モードと実時間エミュレ
ーション機能とを提供する。CPU解析領域321は、
マイクロプロセッサ1の場合ハードウェアのブレークポ
イントと実時間エミュレーションスキャン通信サポート
とを含むコア解析機能を提供する。SE解析領域400
は高度エミュレーション解析機能を提供する。この機能
にはハードウェアブレークポイント用マグニチュードコ
ンパレータ、プログラムバスアドレスブレークポイン
ト、データバスアドレスとデータのブレークポイント、
イベントカウンタ、プログラムの不連続性のトレースお
よび解析状態シーケンサか含まれる。メガモジュール領
域331は、テスト回路52のテストPSAレジスタの
ような、CPUの外部にあるメガモジュール内の機能の
実行制御とスキャンアクセスのみを提供する。実時間エ
ミュレーションサポートは、プロセッサが割込みおよび
多重タスクを引き続きサービスしている間プログラマモ
デルの実行制御と可視性を提供する。実時間サポートは
またアプリケーションによるデバッガを通じてもアクセ
ス可能であり、遠隔テスト/エミュレーション制御装置
に接続しない組込型解析機能の使用を含む。
ルテストアクセスポート(MTAP)305は、標準J
TAGインターフェースおよびJTAG状態マシン機能
セットをサポートするという点でIEEE1149.1
対応である。MTAP305は、境界スキャンまたはB
YPASS以外の公衆STAGコマンドをサポートしな
いという点で1149.1対応でない。マイクロプロセ
ッサ1に対するJTAGによるエミュレーションとテス
トの要求は、アプリケーション特定JTAGコマンドお
よびデータパス拡張を考慮するIEEE1149.1中
の規定を利用することによって提供される。必要なJT
AG機能を「公衆機能」と呼び、拡張を「専用機能」と
呼ぶ。メガモジュール(MTAP)300のエミュレー
ションおよびテスト機能のサポートには、2つの追加双
方向エミュレーション割込みピン(EMU1 415、
EMU0 416)によって補足されるマイクロプロセ
ッサ1の標準JTAG5ピンインターフェース(TMS
410、TRST411、TDI412、TDO41
3、TCLK414)への接続が必要である。次の節で
論じられる多重JTAG/MTAPコンフィギュレーシ
ョンが存在する。EMU0およびEMU1ピンはマルチ
プロセッサ停止イベントおよび性能解析機能を容易にす
るよう構成される。EMU0/1ピンは機能ピンであ
り、すべてのメガモジュール境界セル規則に準拠する。
以下の構成体が、装置のJTAGピン、MTAP305
およひ多重領域テストポートの間の通信と制御をサポー
トするためにJTAGフレームワーク内に追加されてい
る。データパス拡張−拡張専用JTAG IRコマンド
で、領域状態、EMU1およびEMU0コンフィギュレ
ーション、エミュレーション制御、領域スキャンパス選
択および領域ロック情報のMTAPデータスキャン選択
を提供する。コマンド発生−拡張専用JTAG IRコ
マンドでJTAG IDLE状態を通じて起動されるテ
ストおよびエミュレーションコマンドを提供する。命令
レジスタキャプチャ−雑エミュレーション状態、領域状
態およびテスト情報のJTAG命令レジスタキャプチャ
で、エミュレーションソフトウェアの動作とMTAPの
テスト容易性を促進するために追加された。MTAP3
05のJTAG信号は以下である。 TMS:テストモード選択。この信号はJTAG状態ダ
イアグラムの変化を制御する。トラバースされるさまざ
まな状態によって命令およびデータパスがスキャンさ
れ、JTAG命令が実行される。 TCK:テストクロック。この信号はJTAG論理およ
び状態マシンにクロックを提供する。JTAGインター
フェースはメガモジュール外部で供給される周波数でク
ロックされ、メガモジュールを異なったクロック速度用
に設計された他のJTAG装置、制御装置およびテスト
機器と互換性のあるものにする。本明細書ではこのクロ
ック入力をTCLKと呼ぶ。正規システムクロック入力
をUCLK(機能クロック)と呼ぶ。 TDI:テストデータ入力。この信号はメガモジュール
のすべてのJTAG命令とデータスキャンに関する入力
データを提供する。 TDO:テストデータ出力。この信号はメガモジュール
のすべてのJTAG命令とデータスキャンに関する出力
データを提供する。 TRST:テストリセット。これはJTAGモジュール
をリセットする信号で、電源投入時のテストアクセスポ
ート(TAP)の急速な初期化を保証するために提供さ
れる。
たIEEE1149.1仕様書で定義されている。MT
AP305のEMU信号は以下である。 EMUI[1:0]:EMU入力。解析領域によってE
MUInの論理ゼロの検出がイベントとして使用できる
ようになる。EMUIは非同期で任意のパルス幅である
ので、単一クロック同期イベントがイベント処理のため
にCPU領域(EMUI信号)に確実に送信されるよう
にするために、EMUIはパルスキャッチャおよび同期
装置に提示されなければならない。パルスキャッチャは
同期イベントパルスによって自己クリーニングされる。 EMUO[1:0]:EMU出力。この信号は、(エミ
ュレーションおよびテストモードでは)ECRのEMU
Cビットを通じて、また(ストラップモードでは)AC
RのCPU EMUCビットを通じて選択されたイベン
トを出力するために利用される。MTAP305からの
EMUO[1:0]信号は少なくとも5N秒間アクティ
ブでなければならない(テストバス制御装置の要求)。 EMUOEN[1:0]:EMU出力イネーブル。この
信号はEMUピンパッドをドライブするために使用され
るEMUO信号の外部トライステートバッファをイネー
ブルにする。共用または専用のこの信号の動作モードは
(エミュレーションおよびテストモードでは)ECRの
EMUCビットを通じて、また(ストラップモードで
は)ACRのCPU EMUCビットを通じて選択され
る。共用モードではこの信号はイベントがアクティブの
ときだけイネーブルになり、イベントがイネーブルでな
いとき出力バッファはトライステートモードのままであ
る。共用モードで無効のときEMUピンパッドの状態は
外部イベントからEMUIドライバにドライブされる。
専用モードでは、この信号は常にアクティブなので、E
MUピンパッドをEMUO信号レベルにする。メガモジ
ュールの外部でこの信号を使用する例が後で論じられ
る。JTAG演算コードユーティライゼーション: JTAG
演算コード空間0x00−0x1FがJTAG特定の使
用のために予約される。これらの演算コードに関連する
スキャンパスおよびコマンドはIEEE1149.1仕
様書に定義されている。この演算コード空間は現時点で
は部分的にのみ定義され、このグループの定義されない
演算コードはすべて将来の使用のために予約される。こ
こでこのグループの任意の演算コードを公衆演算コード
と呼ぶ。
2Fからの定義されないJTAG演算コード空間の一部
がエミュレーション特定使用のために予約される。これ
らの演算コードは公衆演算コードと呼ばれる。このグル
ープの中の定義されない演算コードはすべて将来のエミ
ュレーション使用のために予約される。0x20−0x
2Fの中の演算コードはデータスキャンパスを選択する
ためにエミュレーションおよびテストコマンドとして定
義される。JTAG状態マシンがJTAG SHIFT
DR状態(選択されたデータレジスタをシフト)にあ
るとき、演算コードはデータスキャンパス選択として利
用される。JTAG状態マシンがJTAG IDLE状
態にあるときは同じ演算コードがコマンドとして利用さ
れる。JTAG状態をDTP制御状態にマップするテス
トモードでは、JTAG演算コードはまた制御コードを
DTPに直接適用するためにも利用される。演算コード
のこうした3つの使用法の各々は互いに分断されてい
る。この文書はそれらを独立して論じる。
図である。エミュレーション/テストスキャンパスがJ
TAG仕様によって要求されるIRおよびバイパスパス
に加えて提供される。MTAP305は(MTAP30
5をJTAG非対応にする)境界スキャンパスをサポー
トしないことに注意されたい。スキャンパスを選択する
SHIFT−IRスキャンに続いて、エミュレーション
/テストパスはJTAG状態マシンをSHIFT−DA
状態にトラバースすることによってスキャンされる。1
つより多い演算コードが同じ公衆または専用スキャンパ
スをアドレスできる。公衆または専用スキャンパスが表
43で簡単に説明される。 表43.公衆および専用スキャンパス JTAG IR JTAG命令レジスタ。命令レジスタ演算コードはデー タスキャンパスを選択するか、またはコマンドを指定す る。 BYPASS データバイパスレジスタ。この1ビットレジスタは明示 データパスがJTAG IR演算コードによって選択 されないときデフォールトスキャンパスを提供するため に使用される。 ECR エミュレーション制御レジスタ。このレジスタはメガモ ジュールクロック設定の選択、メガモジュールモード( エミュレーションまたはテスト)の選択およびDTPの プログラマブル制御を提供するために利用される。 DTP SCTL DTPスキャン制御レジスタ。このレジスタはDTPモ ジュールスキャンイネーブルビット(MSENB)を保 持するために使用される。MSENBビットはすべての DTPデータモジュールに対して存在する。MSENB ビットを1にセットすると、モジュールのDTPがアン ロックされDTP DATAパスがスキャンされるとき (SHIFT−DR)関連するDTPデータがDTP DATAスキャンパスに追加される。 DTP SDAT DTPスキャンデータ。このスキャンパスはすべてのD TPのスキャンモジュールへのアクセスを提供する。こ のパスには各DTP内のすべてのスキャンモジュールへ のモジュールバイパスビットが含まれる。DTPスキャ ンモジュールは、モジュールのDTPがアンロックされ モジュールのMSENBビットが設定される場合それら のバイパスビットの後DTP SDATスキャンパスに 対してイネーブルである。別言すれば、このパスの長さ は現在ロックされていない領域に設定されたMSENB ビットの数によって変化する。それらの領域がアンロッ クされそれらのMSENBビットがDTPスキャン制御 レジスタに設定されるならば、1からすべてのDTPス キャンモジュールが同時に追加される。DTP SDA Tパスのスキャンを試みる前に、DTPモジュールがス キャンされるすべての領域についてMTAP305を使 用してクロックをUCLKからTCLKに切換えなけれ ばならない。このパスに関連する専用スキャンの考察に ついては10.2.6節を参照されたい。 EVT CNTR イベントカウンタ。このスキャンパスにはすべてのMT AP305のカウンタのSRLが含まれる。 DATA STRM データストリーム。このスキャンパスはデータストリー ムスキャン操作をサポートする。 SEA SCTL SE解析スキャン制御レジスタ。このレジスタはSE解 析DTPのモジュールスキャンイネーブルビット(MS ENB)を保持するために使用される。SEのMSEN BレジスタはメガモジュールDTPのMSENBレジス タと同一である。 SEA SDAT SE解析スキャンデータレジスタ。このスキヤンパスは SE解析DTPのスキャンモジュールへのアクセスを提 供する。SEのDTPサポートはメガモジュールDTP と同一である。
SHIFT DR状態の間選択されたデータシフトレ
ジスタを通じてシフトされる。データシフトレジスタは
MSBをLSBにシフトし、シフトレジスタのLSBは
第1SHIFT DR状態の間TDOに出力される。TD
Iからシフトレジスタにシフトされたデータは、転送さ
れたデータビットの静的数値が必要な場合シフトシーケ
ンスの終了時に並列保持レジスタに転送される。並列保
持レジスタは影レジスタまたはその保持レジスタ長の影
ビットと呼ばれる。MTAP305を実現するにはプロ
セッサエミュレーション機能とのインターフェースを有
する影ビットとシフトレジスタビットのミックスを使用
する。シフトレジスタビットが直接使用されるとき、デ
ータシフトレジスタのシフトはビットの最終使用に関係
なくなされる。JTAG状態のデータレジスタグループ
は、SELECT DR状態がCAPTURE DR状
態に移行するとき入力され、UPDATE DR状態の
実行が完了するとき終了する。この状態のグループは、
スキャンデータレジスタ状態グループがトラバースされ
る間、JTAG命令レジスタ中に保持される演算コード
によって選択される特定データパスに割り当てられる。
この状態グループにはパス特有の重要性を有する3つの
状態が含まれる。CAPTURE DR、SHIFT
DRおよびUPDATE DRというこれらの状態はJ
TAG命令レジスタに含まれる演算コードと結合されて
スキャンデータを管理するパス特定ディレクティブを与
える。CAPTURE DR状態は、シフトシーケンス
の開始時に情報をデータシフトレジスタに選択的にロー
ドする。この情報は、パス特定データシフトレジスタが
SHIFT DR状態によって進められる際チップのT
DOピンで見える。UPDATE DR状態は、データ
シフトレジスタにシフトされたデータをJTAG IR
演算コードによって示された適当な並列データレジスタ
に転送する。大部分のMTAP専用データパスはすべて
のデータパスビット位置についてCAPTURE DR
機能の実現を必要としない。データパス全体がCAPT
URE DR機能の実現を必要としない場合もある。D
TPデータスキャンパスの場合特にそうである。専用デ
ータパスにはデータシフトレジスタを共有するものもあ
る。この実現の帰結はデータが修飾されたUPDATE
DR信号によって異なった影レジスタまたはビットに
選択的に転送される単一のデータシフトレジスタであ
る。このアプローチはDTP内でDTP SCTLおよ
びDTP SDATスキャンパスの両方をサポートする
単一の物理シフトレジスタを利用するために利用され
る。この共有アプローチによって、パスのCAPTUR
E DR状態機能のマージも可能になる。上記で論じた
物理実現オプションはすべて、パスを制御するソフトウ
ェアから見たときデータパスの設定または動作を変更す
るものではない。JTAG TAPがSELECT D
R状態を通じて遷移するとき選択されたデータスキャン
パスとキャプチャおよびアップデートされたレジスタは
JTAGIR中のコマンドに依存する。データをDTP
に向けるDTPデータスキャンコマンド以外のIRコマ
ンドは、アップデートと、場合によってはキャプチャ信
号を必要とする(JTAG TAP CAPTURE
DRおよびUPDATE DR状態に基づく)。DTP
SDATおよびDTP SCTLスキャンパスはDTP
を通じて共通データシフトレジスタを共有する。DTP
SCTLパスの場合CAPTURE DR状態と結合
したパス選択信号によって共通シフトレジスタがMSE
NB影ビットからロードされる。スキャンの完了後(S
HIFT−DR)、UPDATE DR状態によって共
通シフトレジスタ中の新しい値が固有のMSENB影レ
ジスタに転送される。DTP SDATパスの場合、D
TPの共通シフトレジスタがバイパスビットとして利用
される。他のすべてのスキャンパスは直接スキャンされ
る(DTPを通じてスキャンされない)。表44は各ス
キャンパスへの要求の詳細を示す。
R SELおよびSTRM SELは相互に排他的で、
UPDATE IR TAP状態によってイナクティブ
状態にドライブされる。さらに図35を参照すると、M
TAP305のJTAG命令レジスタ(IR)450は
長さ8ビットですべてのビットが命令デコードで使用さ
れる。デコードされた命令はスキャンパスを選択または
コマンドを実行するために利用される。IRへのアクセ
スはJTAG状態のグループによって提供される。SE
LECT IR状態がCAPTURE IRに遷移すると
きこれらの状態に入り、UPDATE IR状態を出る
ときこれらの状態から出る。JTAG TAP状態マシ
ンがSELECT IR状態を通じて遷移するとき、I
RレジスタはJTAGデータスキャンパスに接続され
る。CAPTURE IR状態はシフト・シーケンスの
開始時に情報を命令シフトレジスタにロードする。キャ
プチャされたデータはエミュレーション制御レジスタ
(ECR)中の状態選択(STSL)ビットに依存する
(図38参照)。この情報は、命令シフトレジスタがS
HIFT IR状態を通じて進む際チップのTDOピン
で見れる。SHIFT IR状態に入ると、DPC(デ
ータパス制御装置)はスキャンパスがすべてのTCLK
にシフトすることを可能にする。命令シフトレジスタは
MSBからLSBにシフトされ、LSBキャプチャ情報
レジスタは第1SHIFT IR状態でTDOに出力さ
れる。この機構はエミュレーションおよびテストステー
タスをロードおよびエクスポートするために使用され
る。UPDATE IR状態はチップにシフトされたデ
ータ(命令シフトレジスタのコンテント)をIRの影ビ
ットに転送するために使用される。
れたJTAG IRを示す。ストラップステータスは、
TRST−またはTLR JTAG状態によって選択さ
れるデフォールトステータス状態である。2つのLSB
にはIEEE1149.1仕様の6.1.1節による固
定パターン(0、1)がロードされる。この固定パター
ンはストラップモード中に正しいパターンにされるMT
AP状態フラグから得られる。図36Bは停止ステータ
スが選択されたJTAG IRを示す。ここで示される
ステータスビットは一般に停止モードエミュレーション
の間利用される。ABP DETおよひSWBP DE
C(CPU領域)以外のすべてのステータスビットはM
TAPにソースを有する。MTAP305ステータスビ
ットは表45で定義される。停止モードエミュレーショ
ンステータスビットは表68で定義される。図36Cは
実時間ステータスが選択されたJTAG IRを示す。
ここで示されるステータスビットは一般に実時間モード
エミュレーションの間利用される。MSGFLGおよび
MSGSW(CPU領域)以外のすべてのステータスビ
ットはMTAP305にソースを有する。MTAP30
5ステータスビットは表44で定義される。実時間モー
ドCPU領域エミュレーションステータスビットは表6
9で定義される。図36Dはエミュレーションエラース
テータスが選択されたJTAG IRを示す。ここで示
されるステータスビットは一般に停止および実時間両方
のモードに関してエミュレーションエラー処理の間利用
される。MINT ENおよびAINT EN(CPU
領域)以外のすべてのステータスビットはMTAP30
5にソースを有する。MTAP305ステータスビット
が表44に定義される。MINT ENおよびAINT
ENCPU領域エミュレーションエラーステータスビ
ットは表69に定義される。表45はMTAP305モ
ジュール内で発生するステータスビットを定義する。M
TAP305以外にソースを有するステータスビットの
定義については表68〜71を参照されたい。
されるJTAG命令の組み合わせを定義する。MTAP
305内のJTAG命令は、IEEE1149.1仕様
によって要求される標準JTAG命令(公衆命令)とエ
ミュレーションおよびテストのために追加された専用命
令とに分けられる。専用JTAG演算コードは次の3つ
の基本的機能を有する。 1)CAPTURE_DRおよびUPDATE_DR
JTAG状態と組み合わせて使用されるSHIFT_D
R JTAG状態と制御論理のためのスキャンパスの選
択。 2)専用演算コードがJTAG IRにあり、JTAG
状態マシンがJTAGIDLE状態に遷移するとき発生
する専用コマンドの処置の決定。 3)装置モードがテストのときJTAG状態をMPSD
コードに直接マップすることによる演算コードによるA
TPGテストのサポート。 専用コマンドはJTAG環境でUPDATE_IRまた
はUPDATE_DRからJTAG IDLE状態に入
ることによって開始される動作である。コマンドの開始
は機能クロック(UCLK)に同期し、MTAP305
およびDTPの機能論理への1機能クロック幅コマンド
に帰結する。専用コマンドが開始されるとコマンドが発
行されるまでJTAG IRの次のアップデートは禁止
される。専用コマントの完了はJTAG CAPTUR
E_IR状態のIRBUSY(命令レジスタ使用中フラ
グ)をキャプチャすることによって決定される。表46
で説明されるJTAG命令はMTAP305によってサ
ポートされる。それらは公衆および専用グループに分け
られる。必要な演算コード(公衆)は議論の中で注記さ
れる。必要なものとして示されない演算コードはすべて
専用演算コードである。専用グループの説明には、この
演算コードで開始されるコマンドのみ次回説明に加えて
演算コードによって選択されるデータレジスタが含まれ
る。演算コードのテストモード使用は、詳細には表63
および表65に関して後で論じられる。
51は、JTAG命令レジスタを通じて他のデータパス
が特に選択されないとき選択される1ビットデータパス
である。バイパスビットはCAPTURE_DR状態で
常に論理1をキャプチャする。 JTAGのMPSD DTPに対するMTAPサポート 図37は、JTAGのMPSDへのインターフェースを
有するMTAP305の構成図である。MTAP305
は、領域テストポート(DTP)への外部アクセスとそ
の制御を提供する。MTAP305はJTAGとMPS
Dスキャンテクノロジとの間のインターフェースとして
利用される。MTAPは境界スキャン制御での使用に加
えて通信媒体としてJTAGプロトコルを使用する。M
TAP305によってテストおよびエミュレーションシ
ステム資源へのアクセスが可能になる。MTAP305
ブロックは、テストのサポート、スキャンのサポートお
よび実行サポートといった機能を行う。テストのサポー
トによって、JTAG TAP状態からDTP MPS
Dコードへの直接変換とTCLKのUCLKによる置換
を通じてATPGテストパターンのオンボードアプリケ
ーションが可能になる。直接MPSDモードを通じたA
TPGテストパターンのチップテスターアプリケーショ
ンもサポートされる。スキャンサポートには、テストク
ロックがスキャンモードで供給されることを保証する各
領域にソースを有するクロックの切換とアプリケーショ
ンの管理およびJTAGシフトデータ状態(SHIFT
_DR)からのDTP MPSDスキャンコードの発生
およびJTAG命令レジスタでのパス選択が含まれる。
実行サポートには、機能クロックが実行モードで供給さ
れることを保証する各領域にソースを有するクロックの
切換およびアプリケーションの管理およびDTPを通じ
て領域の実行モードを制御するMPSDコードシーケン
スの発生が含まれる。JTAG状態ダイアグラム遷移と
結合するスキャンされた情報のシーケンスはMTAP3
05によって提供される機能を管理する。コード状態マ
シン(CSM)と呼ばれるMTAPの下位システムは、
個々の領域を制御するために使用されるMPSD実行コ
ードシーケンスを作成する。JTAG論理はテストクロ
ック(TCLK)によってドライブされ、機能論理は汎
用クロック(UCLK)によってドライブされるので、
MTAP305は各領域のクロックを制御するよう設計
されている。
ルテストアクセスポート(MTAP)305は、JTA
G TAP500(1149.1JTAG仕様に指定さ
れている)、JTAGデータパス制御論理510、エミ
ュレーション制御レジスタ(ECR)520、コード状
態マシン(CSM)530、開始制御装置540、コマ
ンドデコード550、コマンド制御560およびMPS
Dコード発生器570からなる。さらに図37を参照す
ると、MTAP305はJTAGおよびDTP制御ブロ
ックの間で分割できる。JTAGブロックにはJTAG
TAP500、JTAG IR580およびデータパ
ス制御510が含まれる。このブロックは装置ピンでJ
TAGアクティビティをデコードし、命令を受信し、そ
れらをスキャンパス制御修飾子として処置するかまたは
それらをコマンド修飾子としてDTPブロックに提供す
る。コマンドはJTAGブロックからDTPブロックへ
のパスを要求するが、DTPブロックでそれらは適当な
機能論理ブロックに配置される。DTP制御ブロックに
は開始制御540、コマンド制御560、エミュレーシ
ョン制御レジスタ520、MPSDコード状態マシン5
30およびMPSDコード発生器セクション570が含
まれる。JTAG TAP500はTCLK、TRST
−およびTMSピンによって管理されるJTAG状態ア
クティビティをトラックする状態マシンを含む。この状
態マシンは、命令レジスタとデータレジスタスキャンパ
スの両方をキャプチャ、シフトおよびアップデートする
ために使用されるすべての制御信号を発生する。データ
パス制御510はその後TAPと命令レジスタ580の
情報を使用してJTAGスキャンパスに関するスキャン
制御を発生する。
ド状態マシン(CSM)530とエミュレーション制御
レジスタ(ECR)520が共に使用され、MPSDコ
ード発生器570と制御DTPクロックからMPSD実
行コードシーケンスを発生する。コマンド制御ブロック
560からのコマンドはCSM530の動作を開始す
る。CSM530は、コマンドによって管理されるとき
ECR520から2つのプログラム可能なC0およびC
eの1つを選択し適用する。2つのプレロードされたコ
ード値の適用シーケンスはまたECR520のビットに
よって指定される。この適用シーケンスはプログラム可
能でプロセッサの動作に従ってなされる。CSM530
の動作は以下の節でより詳細に扱われる。ECR520
はまた、装置モードの選択と次の節で扱われる雑テスト
機能もサポートする。コード発生器570はECRモー
ドビット、TAP状態、DTP JTAGIR制御演算
コードのデコードおよびMPSDコード状態マシンから
入力を得て、DTPに供給されるMPSDコードを作成
する。図38はMTAPエミュレーション制御レジスタ
520を示す。エミュレーション制御レジスタ(EC
R)520はMTAP305内の専用スキャンパス45
2(図35)である。これはJTAG命令レジスタに配
置されたSECR演算コードによって指定される。EC
Rはシフトレジスタおよび影レジスタとして実現される
が、すべてのビットが影付きではない。エミュレーショ
ン制御レジスタのフィールドが表47で説明される。
基づいてクロック選択テーブルを定義する。
MUOE信号の一方または両方についてHI−Z状態を
選択する場合、適当なEMUOE信号が永久にローにド
ライブされEMUOドライバをHI−Z状態に保持す
る。コードが1つまたは両方のピンについてオープンコ
レクタ状態を選択する場合、EMUOをドライブするよ
う選択された信号はEMUOEの状態をも制御する。E
MUOについて誤った条件が生じた場合、EMUOEは
ローに切換えられ、EMUO出力ドライバをHI−Z状
態にする。EMUOに正しい条件が生じた場合、EMU
OEはハイに切換えられ、EMUのピンドライバをHI
−Z出力からドライブ状態に切換える。IF_CLRO
またはIF CLRI JTAGコマンドを実行すると
信号がイナクティブ状態に戻るまでEMUO0およびE
MUO1をドライブする信号は禁止される。TRST−
はEMUCビットに0をロードする。EMUC設定コー
ドビットはECRの影ビットとして設定される。設定ビ
ットは、JTAG TAPがIDLE状態を通じて遷移
するときアップデートされる。これによって新しいイベ
ントの選択はUCLKに同期し、EMUO信号がグリッ
チする可能性が排除される。装置モードビットがSTR
APに設定される場合、前の節で定義されたように、E
MU設定コードはACRのCPU_EMUCビットによ
って選択される。EMUCフィールドは、TRST−お
よびTLR JTAG状態によって0000に初期化さ
れる。装置モードフィールドおよびMCSビットはUP
DATE−DR JTAG状態の間ロードされる影ビツ
トによって実現されるが、一方MPSDコードおよび遠
隔イベントフィールドは影付きでなく物理的にエミュレ
ーション制御シフトレジスタビットの中にある。ECR
とは他の論理に機能情報を供給する影付きまたは影なし
のビットである。装置モードまたはMCSビットが切換
えられるときには同期がないので、グリッチによる無効
状態を避けるために、ソフトウェアは、モードまたはM
CSビツトが切換えられるときにはすべてのテストポー
トがロックされておらず、PAUSが適用されるか、ま
たは現在選択されたクロックが不能(電源オフ)になっ
ていることを保証しなければならない。
トが混じっているのは、機能クロック(UCLK)上で
動作する論理を有するMPSDコードと遠隔イベントフ
ィールドの使用に起因する。これらのフィールドはUC
LKによって評価される論理またはレジスタに直接適用
される。テストクロック(TCLK)に関してアップデ
ートされたシフトレジスタビットはUCLKに対して非
同期に変化し、UCLKによって制御された論理に誤っ
た結果を生じる。同期の問題は、ECRシフトレジスタ
がスキャンされる間UCLKによって制御される論理に
よるECRデータの使用を禁止することによって解決さ
れる。この禁止は影なしシフトレジスタビットを使用す
る機能論理の状態をフリーズまたはロックする効果を有
し、機能コマンドの使用を通じてエミュレーションソフ
トウェアによって発生する。この禁止プロセスは同期シ
ャドーイングの代替形態で、テストクロック(TCL
K)によってスキャンされた情報を使用する機能論理が
常に静的な外観を与えることを保証する。ロックプロセ
スはMPSDコード状態マシンの一部であり、MTAP
コード状態マシンを説明する後の節で論じられる。EC
R520は、たとえホストソフトウェアがECR状態を
チェックするのであっても、ソフトウェアがまずCSM
をロックしなければスキャンできない。
はMTAP305のJTAGセクションからコマンドデ
ィレクティブを受け入れ、ディレクティブと同期し、そ
の後MTAPコマンド制御560の助けによってコマン
ドをMPSDコード状態マシン530とMTAP305
外部の論理ブロックに配置する。領域コマンドは、JT
AG IR580が0x20〜0x2Fの範囲の演算コ
ードを含み、TAPがUPDATE_IRまたはUPD
ATE_DRのどちらかからIDLE状態に移動すると
きのみJTAGセクションで開始される。領域コマンド
要求はMTAP開始制御論理540に転送されるが、そ
こでは状態マシンがTCLKと同期したIRBUSY信
号を発生しさらにJTAG命令レジスタのアップデート
を禁止する。表55は発生するコマンドに関する開始パ
ルスの発生を促進するイベントのシーケンスである。S
TART_REQTおよびIRBUSYはTAPテスト
論理リセット(TLR)状態によってリセットされる
が、一方START_REQ1およびSTART_RE
Q2はIRBUSYローによってリセットされる。 表55.開始パルス発生 状態0 JTAGコマンド要求(START_REQT)がアクティブにドラ イブされる。 状態1 START_REQTがUCLKに同期し(START_REQI) 、IRBUSYを設定する。 状態2 START_REQ1が今度はSTART_REQ2を設定する。こ の時点でSTART_REQT、IRBUSY、START_REQ 1およびSTART_REQ2が設定されている。 状態3 START_REQTがSTART_REQ2によってリセットされ る。 状態4 START_REQ1がリセットされる。この時点でIRBUSYお よびSTART_REQ2が設定され、START_REQTおよび START_REQ1がリセットされる。 状態5 SWINPROGが誤りの場合、START_REQ1ロー、STA RT_REQ2ハイおよびSTART_OKハイの組み合わせがST ARTを発生する。 状態6 STARTがSTART_REQ2をリセットする。STARTは唯 一の単一クロックパルスである。 状態7 START_REQ2ローおよびSTART_REQTローによって IRBUSYがリセットされる。 さらに図38を参照すると、信号SWINPROGは、
JTAG演算コードが0x20〜0x23、0x30、
0x32または0x24(領域スキャンパスまたはEC
Rの選択の際目標となるすべてのコマンド)の場合、S
TARTの発生を禁止する。START発生状態マシン
の真理値表が表56によって示される。
ンソフトウェアが第1のコマンドが完了するまで第2の
コマンドを出さないことに責任を負うことを要求する。
JTAG IRキャプチャ情報を通じて管理されるIR
BUSY SRLによって、使用中インジケータは、次
のコマンドをロードする同じ命令レジスタスキャンのエ
ミュレーションソフトウェアによって検討されるように
なる。キャプチャ状態はアップデート状態の前に発生す
るので、コマンドロード上のIRBUSYフラグの論理
0キャプチャはエミュレーションソフトウェアに、命令
レジスタのアップデートがポジティブに生じることを保
証する。命令レジスタの中でスキャンされるコマンドは
PAUSE_IR状態で終了し、JTAG IDLE状
態への進行が保証されているかどうかをエミュレーショ
ンソフトウェアが判断できるようにする。開始パルスの
発生に起因するあるイベントは割込みの際エミュレーシ
ョンピンで管理されるようにプログラムされる。こうし
た割込みは、ある場合命令レジスタのポーリングの代わ
りにエミュレーションソフトウェアによって使用され
る。割込み適用性の判断はプログラマの裁量に任され
る。JTAG状態マシンがIDLE状態にドライブさ
れ、SGABORTコマンドがJTAG IR520に
ロードされるか、またはJTAG状態マシンがTEST
−LOGIC_RESET状態にドライブされる場合、
開始発生器は消去状態になる。SGABORTコマンド
はIRBUSYを無効にし、コマンドがJTAG IR
にロードされるようにする。さらに図37を参照する
と、コマンド制御装置560はCSM530および領域
についてすべてのコマンドストローブを発生する。ロッ
クビットの状態はどの領域がSDAT_HALTといっ
たコマンドを受信するかに影響する。STARTは、コ
マンドがJTAGインターフェースから開始されるとき
JTAG START制御論理によって発生する1クロ
ック幅パルスである。STARTはコマンド制御に送信
され、その目的地に経路指定される。コマンド制御論理
はSTARTパルスをJTAG IRの値と結合して特
定のコマンドを形成する。こうした特定のコマンドはM
TAP305内のMPSDコード状態マシン530また
はMTAP305外の領域に送信される。コマンドのリ
ストを表57に示す。
(CSM)530は、ECR520のEXEおよびTE
RMレジスタフィールドからMPSDコード発生器57
0(MPSDバスをドライブする)へのMPSDコード
の適用を制御する。また、エミュレーションモードの間
スキャン(TCLK)および実行(UCLK)のために
必要なクロックの切換を管理する。CSM530はAT
PGモード以外のすべてのモードで動作する。CSMは
エミュレーションモードで使用されプログラム可能なM
PSD実行コードシーケンスをMPSDコード発生器に
向けて発生する。実行コードシーケンスはFUNC、C
NTL、HALTおよびPAUSとして定義される。エ
ミュレーションソフトウェアは、CSMを管理して、D
IPデータまたは制御パスのスキャンを試みる前にPA
USコードをコード発生器に適用する。CSMは実行コ
ードを使用して領域クロックの選択を決定する。FUN
C、CNTLまたはHALTコードを適用するには領域
がUCLKを選択していることが必要であるが、PAU
SコードはUCLKまたはTCLKのどちらにも適用で
きる。FUNC、CNTLまたはHALTコードからP
AUSに移動するとクロックはUCLKからTCLKに
切換えられるが、PAUSからFUNC、CNTLまた
はHALTに移動する要求によってクロックはTCLK
からUCLKに切換えられる。すべてのクロック切換
は、PAUSコードがロックされない領域に適用されて
いる間に発生する。
ード状態マシンはMPSDコード制御装置600、コー
ドレジスタ610およびクロック切換器620のセクシ
ョンに分けられる。コードレジスタセクションは2ビッ
トコードレジスタ、クロック選択ビットおよびコードマ
ルチプレクサを含む。クロック切換器は、クロック切換
器が進行中の切換標識と同期する前のブレークを含む。
コード制御装置は2つの状態マシンSRLとECRで指
定されたMTAPコマンドおよびREVTモードに対応
するすべての組み合わせ論理を含む。状態マシンはま
た、EXE611およびTERM612コードをコード
レジスタに選択し、クロック選択ビット(TCLKON
613)をロードするマルチプレクサ制御を発生する。
コードレジスタ610のコードソースはコード制御装置
600によって決定される。コードレジスタは普通、別
のディレクティブがない場合それ自体をフィードバック
する。これによってコード制御装置は1クロックの間E
CRからEXEまたはTERMコードフィールドを選択
できるようになる。1クロック幅の選択ウインドウによ
って新しいコードがコードレジスタに入力され、その後
コードは再循環する。このスキームによってコード制御
装置はコマンドをMTAPコマンド制御560からコー
ドレジスタブロック内のマルチプレクサ制御に直接伝え
ることができる。CSEL(3:0)614信号はコー
ドレジスタの多重化を制御する。CSMによってコード
発生器に適用される次のコードがランコード(CNTL
またはFUNC)の場合、現在のコードはPAUSであ
り、CSMはランコードが適用される前の1クロックサ
イクルをHALTコードにする。その理由は、領域のバ
スがHALTコードに対してイネーブル(DBENB)
になる1クロック前にバスをイネーブルにするためであ
る。コード制御装置600はすべての要求の優先順位を
解決した後マルチプレクサの選択を得る。優先順位は、
クロック切換が1、MTAPコマンドが2、遠隔イベン
ト要求が3である。クロック切換の要求は、クロックの
切換が進行中(SWINPROGが真)でCSMコマン
ドがJTAG IRで指定されている間MTAP ST
ART制御を禁止することによってMTAPコマンドに
対する優先権を得る。MTAPコマンドが遠隔イベント
コマンドと同時に発生する場合イベントコマンドは無視
される。任意のMTAPコマンドまたは遠隔イベントは
どちらの方向にもクロックの切換を要求することができ
る。必要なクロックの極性はMPSDコードに埋め込ま
れており、PAUSはすべてのロックされていない領域
へのTCLKの適用を要求するが、HALT、CNTL
およびFUNCはUCLKの適用を要求する。コードの
ロードの要求が検出されると、コード制御装置は3つの
種類のうちどのロードが発生するかを判断する。3つと
はクロック切換を伴わないコードのロード、UCLKか
らTCLKへの切換を伴うものまたはTCLKからUC
LKへの切換を伴うものである。コード制御装置はこれ
らの場合を各々別様に処理する。次のいずれかの場合に
は切換は検出されない。 1)現在のコードがPAUSでロードされるコードがP
AUSである。または、 2)現在のコードがPAUSでなく、要求されるコード
がPAUSでない。UCLKからTCLKへの切換は、
現在のコードがHALT、CNTLまたはFUNCで、
要求されるコードがPAUSのとき検出される。TCL
KからUCLKへのクロック切換は現在のコードがPA
USで要求されるコードがHALT、CNTLまたはF
UNCのとき検出される。各種類を別様に処理すること
によって、すべてのクロック切換が、MPSD PAU
Sコードが領域に適用されている間に発生することが保
証される。クロック切換が必要ないとき、コード制御装
置600はECRフィールドのロードを選択し、次のC
SM状態を決定する。コードレジスタ610はクロック
選択ビットおよびCSM状態と共に次のクロックでロー
ドされる。
NCの間PAUSのコードのコードレジスタへのロード
が要求されるとき、コード制御装置はロードされるべき
ECRフィールドを選択し、次のCSM状態を決定す
る。コードレジスタはPAUSに次の状態をロードし、
TCLKONビットが1にロードされる。クロック切換
器はTCLKONをTCLK_SEL(テストクロック
選択)と比較して、クロック切換が必要だと判断し、S
WINPROG(進行中の切換)をアクティブにする。
クロック切換の完了後、SWINPROGはイナクティ
ブに戻り、コード制御装置およびMTAP START
制御は先に進む。TCLKからUCLKへの切換を要求
する要求は、クロックが切換えられる間現在のPAUS
コードを保持しなければならないため、コード制御装置
600によって特別に処理され、切換を発生させたコー
ドをインストールする。この場合コード制御装置は要求
されたクロック状態をTCLKONにロードし、CSM
状態をアップデートし、かつコードレジスタ610のロ
ードを禁止する。TCLKON613は、クロック切換
器620にファンクショナルへのクロック切換を発生す
るよう要求する。アップデートされたCSM530状態
は、クロック切換が完了したときロードしなければなら
ないコードを指定する。TCLKONはPAUSコード
を表すので、クロックの選択とコードの値が一致してい
るかどうかを見るためにコードレジスタ610のコンテ
ントと比較できる。TCLKONが0でコードレジスタ
がPAUSを含むとき、遅延されたコードレジスタのロ
ードは保留される。TCLKON613は常にクロック
切換器620に直接送信されるが、そこでは必要な場合
クロック切換シーケンスが開始される。これによってP
AUSコードが領域に適用されている間にクロックが切
換えられることが保証される。TCLKONがクロック
切換器の出力またはPAUS_NOW615、コードレ
ジスタの休止コードのデコードに一致しない場合進行中
の切換(SWINPROG)621がクロック切換器に
よって発生する。TCLKからUCLKへのクロック切
換が完了すると、切換器はLD_CODE信号をコード
制御装置に対して発生する。コード制御装置はLD_C
ODE信号と現行CSM状態を結合し、EXEまたはT
ERMコードフィールドのコードレジスタへのロードを
要求する。SWINPROGは、JTAG IRが0x
20〜0x23、0x30、0x32または0x24を
含むとき、MTAP305のSTART制御中のSTA
RTの発生を禁止する。
るMTAP CSMクロック切換回路620の概略図で
ある。HALTからPAUSへの真理値表が表58に示
され、PAUSからHALTへの真理値表が表59に示
される。
される。CSM530はECR520のフィールドを静
的入力として使用するので、ECRはCSMがLOCK
ED状態にあるときスキャンのみが可能である。コード
制御装置600は、それぞれ信号601、602および
603によって示されるEXECUTE、TERMIN
ATEおよびLOCKEDの3つのコード管理状態を2
状態レジスタビットに符号化する。EXECUTEおよ
びTERMINATE状態はコードレジスタの現行コー
ドのソースを反映する。これらの2つの状態はMTAP
コマンドを通じていつでも管理できる。遠隔イベントフ
ィールドは、CSM状態がLOCKED状態にないとき
これらの2つの状態をどちらも管理できる。LOCKE
D状態はMTAPコマンドによって管理され、ECRの
遠隔イベントフィールドでは管理できない。コマンド情
報については表57を参照されたい。状態の符号化が表
60に示される。
ードはMPSDコード発生器570の中で作成される。
コード発生器570はMPSDバスをDTPデータおよ
び制御スキャン状態からドライブし、MPSDコード状
態マシン(CSM)はJTAG TAP制御装置状態を
直接MPSDコードにマップするか、またはMPSDス
トラップ状態(正常動作モード)をバスに向けることに
よって出力する。コード発生器570によるコードの発
生は装置がJTAGテスト論理リセット状態(TLR)
で機能することを保証する階層を有する。この階層はま
た、すべての領域が機能クロック選択と共にMPSD機
能ランコード(FUNC)を受信している間エミュレー
ションソフトウェアによって初期化できるようにする。
MPSDコード発生器によるコード値は、多数のソース
からの入力の論理ORである。望ましいコード出力を達
成する互換コードソースを適用することはエミュレーシ
ョンソフトウェアの責任となる。MPSDコード発生器
570は、コード状態マシン530、ストラツプモー
ド、スキャンDTPデータ、スキャンDTP制御および
ATPGモードからのコード入力の論理ORを行う。E
CR520の両方の装置モードビットが設定されている
とき、STRAPはアクティブである。STRAPはC
1、C0およびCeについて0Redであり、それらを
論理1状態にしてFUNCのMPSDコードを発生す
る。これによって他のコードソースが、ソフトウェアに
よるSTRAP信号のリセットの前にエミュレーション
ソフトウェアによって初期化されるようになる。STR
APはコード発生論理への他のすべての入力をマスクす
る。装置モードビットは、TRST−の論理0、すなわ
ちJTAG TAPのテスト論理リセット(TLR)状
態への遷移によってか、またはECRスキャンによるE
CRモードビットのプログラムによって論理1に設定さ
れる。DTPパススキャン、MPSDコード状態マシン
およびATPGモードマッピングコード発生ソースは、
エミュレーションソフトウェアおよびMPSDコード発
生ハードウェアによって互いに排他的になっている。F
UNC、CNTLおよびHALTのMPSD実行コード
はMPSDコード状態マシンまたはJTAGTAP状態
をMPSDコードに直接変換するATPGモードマッピ
ング論理によってのみ発生できる。実行コードの1つの
ソースのみが一時にアクティブであり、イナクティブの
ソースはMPSDコード発生器570のコード作成機能
に論理0を供給する。
Pデータ制御スキャンが試みられる前に、イナクティブ
状態(論理0をMPSDコード発生器に供給する)に配
置される。ATPGモードのための状態マッピングはこ
の規則に適合するように選択される。エミュレーション
ソフトウェアは、MPSDコード状態マシンの出力をM
PSDスキャンを試みる前にイナクティブ状態(PAU
S、CSM_C0およびCSM_Ce論理0)に配置す
る責任を負う。すべての非スキャンMPSDコード(F
UNC、CNTL、HALTおよびPAUS)は論理1
のC1を有するので、C1はNOT SHEFT_DR
OR NOT JTAG演算コード(Ox20〜Ox
23、Ox30およひOx32)として発生し、C0は
SHIFT_DR AND JTAG演算コード(Ox
22〜Ox23およびOx32)として発生する。これ
によって実際にMPSDテータまたはMPSD制御パス
をスキャンし、両方の実行コード発生器を発生するC1
から解放するときのみC1に0を生じる。コード発生器
570はECRモードビット、TAP状態、MPSDデ
ータおよびMPSD制御演算コードのデコードおよびM
PSDコード状態マシンから入力を得て、領域に供給さ
れるMPSDコードを形成する。STRAPでないと
き、C1は、Ox20〜Ox23およびOx30および
Ox32(MPSDデータまたはMPSD制御パスをス
キャンする)のJTAG演算コードと共にSHIFT_
DR状態ANDedに割り当てられる。このためSDA
TおよびSCTLのMPSDスキャンコードは、正しい
スキャンパスが選択されデータレジスタスキャン状態が
発生しない場合発生できない。MPSD制御パスが選択
される場合(Ox22〜Ox23、Ox30およびOx
32のJTAG演算コード)、C0はJTAG SHI
FT_DR状態で1に設定される。DTPデータパスの
スキャンに追加制約が配置される。CAPTURE_D
R状態はTCLK_SELをサンプリングし、それが誤
りの場合、MPSD PAUSコードがSHIFT_D
R状態の間DTPに適用される。さらにDTPデータス
キャンパスの出力は0にされる。TCLK_SELが誤
りのときTCLKSELのキャプチャされた値がDTP
データスキャンパスの第1ビット上の出力となる。スキ
ャンコードはエミュレーションソフトウェアがCSMの
CSM_C0およびCSM_Ce出力が論理0であるこ
とを保証するときのみ発生できる。
コード発生器ソースの役割を示す。表61はSTRAP
コードの真理値表を示し、表62はエミュレーションモ
ードの真理値表を示し、表63はATPGモードの真理
値表を示す。
ード発生器(MCG)570がMPSDテストポートバ
ス306に適用されるMPSDコードのC1ビットを制
御する(図15)。MCGは、JTAG MPSDデー
タスキャンが進行しているとき(C1=0)以外はC1
をハイにする。CSMがMPSD PAUS状態を出力
するとき、MCGはJTAG TAP状態をMPSDス
キャンコードにマップする。JTAGデータスキャンパ
スはMPSDバスデータスキャンパスに直接接続され
る。すべてのロックされないMPSDテストポートは、
JTAG TAP状態がSHIFT_DR状態に遷移す
るときTCLK上でデータと共にスキャンされる。MP
SDデータまたは制御パスはJTAG IRパス選択を
通じて選択される。JTAG SHIFT DR状態サ
イクルを通じて、C1はSDAT_HALT、SDAT
_CNTL、SCTL_HALTまたはSCTL_CN
TL演算コードのいずれかが存在する場合(Ox20〜
Ox23、Ox30およびOx32)ローにドライブさ
れる。COは、SCTL_HALTまたはSCTL_C
NTL(Ox22〜Ox23およびOx32)パスが選
択される場合1にドライブされ、SDAT_HALTま
たはSDAT_CNTL(Ox20〜Ox21およびO
x30)パスが選択される場合0である。
PSDコードは、ラン−テスト/アイドル状態以外直接
JTAG TAP状態制御装置からマップされる。ラン
−テスト/アイドルではCSMがMPSD実行コード状
態(CNTLまたはHALT)をドライブするために利
用される。CSMはアンロックされ、EXEまたはTR
M状態(JTAG IRコマンドによって選択される)
がMPSDバスをドライブする。ラン−テスト/アイド
ルでは、JTAG−IRがOx20またはOx21以外
のコードを含む場合、前にマップされた状態(HALT
またはPAUS)が引き続きMPSDバスに適用され
る。CSMがロックされている場合(またはアンロック
されているが、新しいMPSDコードがMPSDバスに
適用されていない場合)前にマップされた状態が引き続
き適用される。ラン−テスト/アイドル状態が終了する
と、MPSDコード発生器はJTAG状態マッピングを
利用してMPSDバスをドライブする。エミュレーショ
ンモードでのように、DTPスキャンパスはIRにロー
ドされたDTPスキャン演算コードを通じて選択され
る。ATPGモードでは、スキャン状態のデータスキャ
ンレジスタグループのマッピングによって、正常なJT
AGからMPSDへのシフトコード変換が発生するSH
IFT_DR状態以外、MAP_COおよびMAP_C
eは0になる。エミュレーションモードが切換えられて
(ECRスキャンから)ATPGモードを形成する場
合、CSMは、CSMがアンロックされるまでPAUS
(SHIFT_DRがマップされた状態)をドライブし
続ける。表65はエミュレーションおよびATPGモー
ド両方の状態デコードを示す。
ナクティブにドライブされ、領域が現在のMPSDコー
ドを使用するようにする。MPSDストラップモードは
またMPSD FUNCをMPSDバス306に向け
る。MTAP領域クロック管理 領域クロック管理は装置モードによって制御される。U
CLK_SELおよびTCLK_SEL信号はモードビ
ットによってMCG570にゲートインする。MPSD
ストラップモードでは、MCGはUCLK_SELを発
生するクロック切換器をオーバーライドする。ATPG
モードはTCLKを選択するクロック切換器をオーバー
ライドする。エミュレーションモードではUCLK_S
ELおよびTCLK_SELはクロック切換器620の
出力にソースを有する。UCLK_SELおよびTCL
K_SELは、イナクティブのとき、DTPから領域へ
ソースされる機能およびスキャンクロックをゲートオフ
する。CSMのクロック切換器620が領域のクロック
をUCLKからTCLKに切換えるために必要な条件を
検出すると、UCLK_SELは、スレーブ段階がハイ
でマスタ段階がローの間イナクティブにドライブされ、
マスタクロックをオフにする。DTPクロックの多重化
によって、両方のクロックが選択解除されている間スレ
ーブ段階がクロック多重化出力でハイにあることが保証
される。TCLK_SELは、UCLK_SELがイナ
クティブでTCLK(スレーブがハイでマスタがローの
間)をテストポートにイネーブルにする同期遅延の後ア
クティブにドライブされる。この機構は機能クロックの
切換を行う前のブレークを行う。TCLKからUCLK
に復帰する切換も同様に行われる。CSMはクロック切
換が完了するまでMPSDバスにPAUSを適用する。
また、ロックされていないテストポートのみはクロック
が切換えられる。領域がアンロックの過程にあるとき、
クロック切換信号の状態は、アンロックされた領域のク
ロックの状態に一致するものでなければならない。状態
が一致しない場合同期なしのクロックの切換が発生す
る。この状況はソフトウェアによって避けられる。
TA)590の概略図である。EVTAはアンロックさ
れた領域によってイネーブルにされるイベントである。
2種類のイベントがEVTAを発生することができる
が、それらはMSGSWとCPU_DONEである。図
41から、CPULOCKの状態によって、MSGSW
またはCPU_DONEのどちらかがEVTAを発生で
きることがわかる。すなわち、CPUがロックされてい
ない場合、EVTAを発生できる唯一のイベントはDO
NEである。DONEはまたANYSTOPによって識
別されるので、DONEがANYSTOPによって発生
した場合EVTAは発生しない。すなわち、MPSDに
よって発生したDONEだけがEVTAを発生できる。
この理由はANYSTOPがアクティブな場合EVTA
を発生しCSMによって出力される状態とひいてはMP
SDバスの状態を変更する理由がないからである。MTAPパワーダウンサポート エミュレーションモードでは、MTAPコマンドおよび
スキャンクロックの切換は、アクティブ機能クロックに
依存する。パワーダウンモードでは、これは真でないこ
とがある。従って、機能クロックのイネーブルを要求す
る機能クロック要求(FCLK_REQ)信号がMTA
P305からメガモジュールに向けて発生する。FCL
K_REQは表66に定義するように発生する。
がCNTLまたはFUNCを適用するときCPU_DO
NEをイナクティブにドライブしなければならないこと
にも注意されたい。CSMがHALTを適用するときC
PU DONEはアクティブにドライブしなければなら
ない。
Pカウンタ回路630を示す。カウンタ631はさまざ
まな機能(性能解析、実行制御またはデータストリーミ
ング)のために設定可能な10ビットダウンカウンタで
ある。カウンタ631とその制御ビットはスキャンに関
して影付きである。カウンタはUCLKをランオフする
が、影ビットはTCLKをランオフする。カウンタのス
キャンパスが選択されると(LEVT_CNTRコマン
ド)、CAPTURE_DR JTAG状態(データス
トリーミングモードでなく)の間影ビットはカウンタの
値がロードされ、JTAG IDLE状態の間カウンタ
はシフトビットからロードされる。カウンタのロードを
行うためにIDLE状態を使用することによって同期ロ
ードが行われる。MTAP_BORROWおよびXFE
R_DATA信号は1クロックサイクル幅である。AU
Xビットはカウンタのシフトパス中の唯一のビットで、
SMM_IDスキャンの間IDバスのための16番目の
ビットとして利用される。SMM_IDスキャン動作の
間、カウンタのシフトレジスタの16ビットにはCAP
TUREDR状態によって16ビットIDバスの値がロ
ードされる。カウンタモードフィールドは選択された機
能のためのカウンタ631の設定に利用される。表67
はカウンタ630のCMビットフィールドを定義し、表
68はCESビットフィールドを定義する。
特殊エミュレーション装置をサポートする信号を含む。
SE装置にはメガモジュール300と第4SE解析(S
EA)領域の追加制御レジスタが含まれる。SE装置用
の制御レジスタはメモリマップされる。図11に戻って
これを参照すると、DP段階の実行パケットのプログラ
ムカウンタの値はPCDPと呼ばれるレジスタでラッチ
される。PCDPは、正確な一致、範囲の比較またはビ
ットフィールドマスキングの比較のためにエミュレーシ
ョン論理に保持された値と比較できる。PCDPがハー
ドウェアプログラムのブレークポイントについて特定の
アドレス集合と一致する場合、SEエミュレーション論
理はそのサイクルの間SEEを設定する。DADDR、
DDATA_I、DDATA_O、DRNWおよびDB
Sがデータアクセス上のブレークポイントを検出するた
めにCPU境界で利用できる。(適当なストローブによ
って修飾された)アドレスとデータの両方はブレークポ
イント値の正確な一致、範囲またはマスクの比較のため
に使用できる。データブレークポイントは、データアド
レスがE2段階の間CPU境界に存在する点でプログラ
ムブレークポイントと異なっている。実行パケットは実
行に入る前にブレークポイントが中止できないようにす
る。しかし、エミュレーション論理はPCDPストリー
ムからブレークポイントを発生した命令を復元できる。
PCDPのバッファにはこの機能のために必要なものが
ある。トレースと性能解析 メモリ制御と割込み応答信号はトレース用バスで利用可
能である。信号BRTKはPCDPによって示されるア
ドレスが分岐先だったことを示す。8つの信号(FU_
L1、FU_M1、FU_D1、FU_S1、FU_L
2、FU_M2、FU_D2、FU_S2)が、E2
(前のサイクルではE1) の実行パケットが、それぞ
れA−またはB−側のL−、M−、D−またはSユニッ
トの命令を実行したかを示す。ユニットの割り当てはデ
コードのために用いられるデコードブロックを参照す
る。これは並行処理と特定の命令に関する条件が真と評
価されるかを評価するために使用できる。最後に、3ビ
ットEPSIZE出力はDC中の実行パケットの大きさ
(語)を示す。これはIDLEおよび複数サイクルNO
Pによって導入される割込み処理とすべての臨時サイク
ルでは0であるべきである。
P305と領域とDTPとの間の相互接続をより詳細に
示す相互接続図である。図35に示すように、SE解析
は独立したスキャンパス457および458を利用する
が、それはMTAP MPSD制御バス(C0、C1、
Ce)をメガモジュールDTPと共有する。表69で説
明される信号はMTAP305からSE解析モジュール
へのインターフェースとなる。
る。SE解析C0、C1およびCeビットは、メガモジ
ュールDTPのC0、C1およびCeビットと並列にS
EのDTPに提示されるようにタイミングを取られる。
さらに図43を参照すると、MTAP305モジュール
はJTAG環境と各DTPとの間のインターフェースフ
ァンアウトを提供する。各DTPへのファンアウトは、
MPSDコード(C0、C1、Ce)バス、TCLKと
UCLKの間の領域クロック切換を制御する信号、テス
トポートの制御SRLのロードを制御するアップデート
信号、エミュレーションステータスおよびMPSD B
USで同報されないMTAPコマンドからなる。さらに
図43を参照すると、データストリームスキャンパス回
路700にはストリームデータをストリームレジスタ3
93に転送する回路が含まれる(図31D)。STRM
_I/Oバス701はストリームデータをCPU領域1
0に転送する。この回路は図44に関して詳細に説明さ
れる。
詳細を示す図である。スキャンレジスタ710はDAT
A_STRMスキャンパス456の一部を形成する(図
35)。STRM_I/Oバス701はストリームデー
タをCPU領域10にある(前に図31Dに関して説明
された)データストリーミングレジスタSTREAM3
93に転送する。ストリームデータは、前に表37〜表
41に関して説明されたように、CPU領域10のさま
ざまな保存位置との間で転送される。5ビットカウンタ
632は図42に関して説明されたカウンタ631の一
部である。コンパレータ635はJTAG IR580
を監視して、SDAT_STRM JTAG命令がJT
AG IR580に存在する時を判断する。ゲート63
6は、信号637によって示される各JTAGシフト状
態に反応してカウンタ632を減らす。コンパレータ7
12はカウンタ632が00に達する時を判断して信号
XFER_DATA702を表明する。表64に関して
説明されるように、ストリームデータは、ロード命令が
CPU10の命令レジスタにあるときスキャンレジスタ
710から転送される。この場合、STREAMレジス
タ393が信号702に反応してロードされる。保存命
令がCPU10の命令レジスタにあるとき、データはS
TREAMレジスタ393からスキャンレジスタ710
に転送される。この場合、書き込みイネーブル信号が保
存命令に反応して表明され、ゲート713が、XFER
_DATA信号702に反応して信号717を表明して
ロードスキャンレジスタ710をロードする。さらに図
44を参照すると、表44に関して説明されたように、
ステータス回路730は、XFER_DATA信号70
2に反応してMTAPステータスビットSTRY_TG
LEおよびSTSW_TGLEを作成する。ハンドシェ
ーク信号731にはECT520からのCPU_DON
EおよびTERM(0、1)が含まれる。図45はEM
Uピンの接続を示す概略図である。EMU[1:0]は
EMU入力/出力ピンである。これらのピンはマルチプ
ロセッササポートのためのエミュレーションイベント入
力と外部イベント検出のための出力とを提供する。すべ
てのJTAGおよびエミュレーションピンはエンドシス
テムでは接続されずに放置される。これを容易にするた
めに、TMS、TCLK、TDI、EMU1およびEM
U0ピンは、プルアップ900として示すように、小さ
なプルアップ抵抗を有している。TRST−は小さな内
部プルダウン抵抗を有し、JTAG TAPおよび境界
論理が接続がない場合リセット状態に維持されることを
保証する。
00の代替実施例の構成図である。MTAP305のJ
TAGインターフェースによってサポートされる複数の
設定が存在する。図46はメガモジュール1010およ
びカスタム論理モジュール1020を有する一例であ
る。JTAGモジュールTDO/TDI信号はすべてシ
リアルに接続され、TMSおよびTRST信号はすべて
パラレルに接続されていることに注意することが重要で
ある。モジュールの順序は重要ではない。モジュールの
順序は目標システムのJTAG装置設定ファイルに対応
しなければならない。このファイルはエミュレーション
ソフトウェアによって利用され同じスキャンチェーンの
JTAG装置およびJTAGモジュールを管理する。EMUステータス 再び図43を参照すると、マイクロプロセッサ1のCP
Uまたはオンチップメモリシステムの中でさまざまなエ
ミュレーションステータスビットが発生する。これらの
信号はMTAP305にレベルとしてもたらされる。そ
れらはCAPTURE−IR状態の間JTAG IR5
80のシフトレジスタにラッチされる。表70は停止モ
ードエミュレーションステータス信号を説明する。表7
1は実時間モードエミュレーションステータス信号を説
明する。表72はCPUエミュレーションステータス信
号を説明する。表73はCPUエミュレーションイベン
ト信号を説明する。
「接続」という用語は電気的に接続されることを意味
し、電気的接続パスに追加素子がある場合を含む。本発
明は例示としての実施例に関して説明されたが、この説
明は限定する意味で構成されることを意図したものでは
ない。この説明に関して本発明のさまざまな他の実施例
が当業技術分野に熟練した者には明らかであろう。添付
の請求項が本発明の真の範囲と精神の範囲内にある実施
例のこれらの修正を包含することが考慮される。
示する。 (1)データ処理システム内のプロセッサをデバッグす
る方法において、前記プロセッサが第2パイプライン段
階に先立つ少なくとも第1パイプライン段階を伴う命令
実行パイプラインを有し、演算命令内のフィールドを所
定のブレークポイントコードで置換することによって一
連の命令の中にソフトウェアブレークポイント命令を形
成する段階と、前記命令パイプライン中の複数の重複す
る演算を開始するために正常な演算方法で前記プロセッ
サ命令実行パイプライン中の前記一連の命令の一部をフ
ェッチし実行する段階と、前記命令パイプラインの前記
第1パイプライン段階中の前記ソフトウェアブレークポ
イント命令をフェッチし部分的に実行する段階と、前記
命令パイプラインの前記第2パイプライン段階中の前記
ブレークポイントコードのデコードに反応して前記命令
パイプラインの前記正常な演算を停止する段階と、前記
ブレークポイントコードのデコードに反応してデバッグ
機能を行う段階と、前記ソフトウェアブレークポイント
命令によって置換された前記演算命令を先取りすること
なしにデバッグ演算を行う段階の後前記命令パイプライ
ンの前記正常な演算を再始動する段階、とを含む方法。 (2)前記停止段階が、前記複数の重複する演算の完了
を中断する方法で前記命令パイプライン中の前記正常な
演算を停止することによってメモリアクセスの待ち時間
を保存する段階をさらに含む第1項記載の方法。 (3)前記演算命令内の前記フィールドが単一のビット
である第2項記載の方法。 (4)前記演算命令内の前記フィールドが前記演算コー
ドフィールドでない第2項記載の方法。 (5)前記演算命令が前記演算コードフィールドであ
り、前記再始動ステップが、前記パイプラインの前記第
2段階に関連するレジスタの前記ソフトウェアブレーク
ポイント命令のデコードされた値を、前記ソフトウェア
ブレークポイント命令によって置換された前記演算命令
を表すデコードされた値で置換する段階をさらに含む第
2項記載の方法。 (6)第2パイプライン段階に先立つ少なくとも第1パ
イプライン段階を伴う命令実行パイプラインを有するマ
イクロプロセッサにおいて、演算命令内のフィールドを
所定のブレークポイントコードで置換することによって
一連の命令の中にソフトウェアブレークポイント命令を
形成する回路と、前記命令パイプライン中の複数の重複
する演算を開始するために正常な演算方法で前記プロセ
ッサ命令実行パイプライン中の前記一連の命令の一部を
実行する回路と、前記ソフトウェアブレークポイント命
令をフェッチする回路と、前記命令パイプラインの前記
第1パイプライン段階中の前記ソフトウェアブレークポ
イント命令を部分的に実行する回路と、前記命令パイプ
ラインの前記第2パイプライン段階中の前記ブレークポ
イントコードのデコードに反応して前記命令パイプライ
ンの前記正常な演算を停止する回路と、前記ブレークポ
イントコードのデコードに反応してデバッグ機能を行う
回路と、前記ソフトウェアブレークポイント命令によっ
て置換された前記演算命令を先取りすることなしにデバ
ッグ機能を行う段階の後前記命令パイプラインの前記正
常な演算を再始動する回路とを含むマイクロプロセッ
サ。
パイプライン段階に先立つ少なくとも第1パイプライン
段階を伴う命令実行パイプラインを有するマイクロプロ
セッサと、前記マイクロプロセッサに接続されたプログ
ラム命令を保持するメモリと、前記マイクロプロセッサ
に接続されたディスク駆動装置とを備え、前記マイクロ
プロセッサが、演算命令内のフィールドを所定のブレー
クポイントコードで置換することによって前記メモリに
保存された一連の命令内のソフトウェアブレークポイン
ト命令を形成する回路と、前記命令パイプライン中の複
数の重複する演算を開始するために正常な演算方法で前
記プロセッサ命令実行パイプライン中の前記一連の命令
の一部を実行する回路と、前記ソフトウェアブレークポ
イント命令をフェッチする回路と、前記命令パイプライ
ンの前記第1パイプライン段階の前記ソフトウェアブレ
ークポイント命令を部分的に実行する回路と、前記命令
パイプラインの前記第2パイプライン段階の前記ブレー
クポイントコードのデコードに反応して前記命令パイプ
ラインの前記正常な動作を停止する回路と、前記ブレー
クポイントコードのデコードに反応してデバッグ機能を
行う回路と、前記ソフトウェアブレークポイント命令に
よって置換された前記演算命令を先取りすることなしに
デバッグ機能を行う段階の後前記命令パイプラインの前
記正常な動作を再始動する回路と、を含むシステム。 (8)外部テストシステム51への接続時に集積回路4
2のデバッグとエミュレーションが行えるエミュレーシ
ョンユニット50と共に、マイクロプロセッサ1および
周辺装置60〜61を備えた集積回路42上のデータ処
理システムが提供されている。マイクロプロセッサ1
は、フェッチ/デコードユニット10a〜cと機能実行
単位12、14、16、18に関連のある複数の実行段
階を備えた命令実行パイプラインを有している。マイク
ロプロセッサ1のパイプラインが非保護であることか
ら、命令記憶装置23に記憶されたシステムプログラム
コードによって、データメモリ22およびレジスタファ
イル20へのメモリアクセスの待ち時間が利用できる。
また、エミュレーションユニット50によって、マイク
ロプロセッサ1の非保護パイプラインをエミュレートす
る手段と、メモリ22〜23を迅速にアップロードおよ
びダウンロードする手段が得られる。エミュレーション
ユニット50は、無関係な演算の発生等、エミュレーシ
ョン中にメモリ22〜23や周辺装置60〜61に影響
を及ぼす事態を回避するような方法で演算を行う。
し、 S.N. ,(TI−22105);S.N. ,(TI−22106); S.N. ,(TI−22108);S.N. ,(TI−22109); S.N. ,(TI−23604);S.N. ,(TI−24333); S.N. ,(TI−24334);S.N. ,(TI−24335); S.N. ,(TI−24942);S.N. ,(TI−24946); S.N. ,(TI−24947);S.N. ,(TI−24948); S.N. ,(TI−24956);S.N. ,(TI−25049); S.N. ,(TI−25112);S.N. ,(TI−25113); S.N. ,(TI−25248);S.N. ,(TI−25309); S.N. ,(TI−25310);S.N. ,(TI−25311); S.N. ,(TI−25311XX) 上記出願は、いずれも本願と同時期に出願され、この文
章中に引用されている。
ジタル信号プロセッサ(DSP)のブロック図である。
スタファイルのブロック図である。
タ(AMR)を示す図である。
ットを有する制御状態レジスタ(CSR)を示す図であ
る。
ートする汎用入力レジスタ(IN)を示す図である。
ートする汎用出力レジスタ(OUT)を示す図である。
タ記憶域構成を示す図である。
である。
式を示す図である。
ッチパケットを示す図、Bは完全に並列なpビットによ
る図9のフェッチパケットを示す図、Cは一部直列なp
ビットによる図9のフェッチパケットを示す図である。
示す図である。
く図1のDSPのパイプラインの演算を示す図である。
トnと、それぞれ1実行パケットを有する後続の6つの
フェッチパケット(n+1〜n+6)(8並列命令を有
する)を示す図である。
ートインタフェースのブロック図である。
ットシーケンスのタイムチャートである。
態を保持する割込み標識レジスタ(IFR)を示す図、
Bは図1のDSPの割込み許可レジスタ(IER)を示
す図、CはIFRに手動で割込みの設定または解除が行
える割込み設定レジスタ(ISR)を示す図、DはIF
Rに手動で割込みの設定または解除が行える割込みクリ
アレジスタ(ICR)を示す図である。
るタイムチャートである。
ARPを示す図である。
フェース信号を示すブロック図である。
ル領域インタフェースを示すブロック図である。
状態図である。
unctional RunからScanまでのクロッ
ク切換えに関するタイムチャート、Bは図1のプロセッ
サのTCLKに関するFunctional Runか
らのクロック切換えに関するタイムチャート、Cは図1
のプロセッサのUCLKに関するFunctional
RunからTCLKに関するFunctional
Runまでのクロック切換えに関するタイムチャートで
ある。
くData Scanのスキャンチェーンに関する表で
ある。
スを示すタイムチャートである。
る。
ストポートにより要求された停止に関するタイムチャー
トである。
(Test Port Requested Test
Halt)を示すタイムチャートである。
ためのパイプライン管理プロセスを示しているパイプラ
イン停止に関するタイムチャートである。
イプライン復旧プロセスを示しているタイムチャートで
ある。
示す図、Bは図1のプロセッサの分析データレジスタを
示す図である。
ターンポインタを示す図、Bは図1のプロセッサのデー
タストリームレジスタを示す図である。
関するタイムチャートであり、多様なパイプライン段階
を示している。
のピンの接続を示すブロック図である。
ジスタパスを示すブロック図である。
択された場合のJTAG命令レジスタの内容を示す図、
Bはストップエミュレーション状態が図35のレジスタ
で選択された場合のJTAG命令レジスタの内容を示す
図、Cはリアルタイムエミュレーション状態が図35の
レジスタで選択された場合のJTAG命令レジスタの内
容を示す図、Dはエミュレーションエラー状態が図35
のレジスタで選択された場合のJTAG命令レジスタの
内容を示す図である。
タフェースのブロック図である。
す図である。
シン(CSM)のブロック図である。
略図である。
る回路の略図である。
ブロック図である。
ジスタを示すブロック図である。
図である。
を示すブロック図である。
Claims (2)
- 【請求項1】 データ処理システム内のプロセッサをデ
バッグする方法において、前記プロセッサが第2パイプ
ライン段階に先立つ少なくとも第1パイプライン段階を
伴う命令実行パイプラインを有し、 演算命令内のフィールドを所定のブレークポイントコー
ドで置換することによって一連の命令の中にソフトウェ
アブレークポイント命令を形成する段階と、 前記命令パイプライン中の複数の重複する演算を開始す
るために正常な演算方法で前記プロセッサ命令実行パイ
プライン中の前記一連の命令の一部をフェッチし実行す
る段階と、 前記命令パイプラインの前記第1パイプライン段階中の
前記ソフトウェアブレークポイント命令をフェッチし部
分的に実行する段階と、 前記命令パイプラインの前記第2パイプライン段階中の
前記ブレークポイントコードのデコードに反応して前記
命令パイプラインの前記正常な演算を停止する段階と、 前記ブレークポイントコードのデコードに反応してデバ
ッグ機能を行う段階と、 前記ソフトウェアブレークポイント命令によって置換さ
れた前記演算命令を先取りすることなしにデバッグ演算
を行う段階の後前記命令パイプラインの前記正常な演算
を再始動する段階、とを含む方法。 - 【請求項2】 第2パイプライン段階に先立つ少なくと
も第1パイプライン段階を伴う命令実行パイプラインを
有するマイクロプロセッサにおいて、 演算命令内のフィールドを所定のブレークポイントコー
ドで置換することによって一連の命令の中にソフトウェ
アブレークポイント命令を形成する回路と、 前記命令パイプライン中の複数の重複する演算を開始す
るために正常な演算方法で前記プロセッサ命令実行パイ
プライン中の前記一連の命令の一部を実行する回路と、 前記ソフトウェアブレークポイント命令をフェッチする
回路と、 前記命令パイプラインの前記第1パイプライン段階中の
前記ソフトウェアブレークポイント命令を部分的に実行
する回路と、 前記命令パイプラインの前記第2パイプライン段階中の
前記ブレークポイントコードのデコードに反応して前記
命令パイプラインの前記正常な演算を停止する回路と、 前記ブレークポイントコードのデコードに反応してデバ
ッグ機能を行う回路と、 前記ソフトウェアブレークポイント命令によって置換さ
れた前記演算命令を先取りすることなしにデバッグ機能
を行う段階の後前記命令パイプラインの前記正常な演算
を再始動する回路とを含むマイクロプロセッサ。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US3476896P | 1996-12-20 | 1996-12-20 | |
| US034768 | 1996-12-20 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH10326189A true JPH10326189A (ja) | 1998-12-08 |
| JP3746367B2 JP3746367B2 (ja) | 2006-02-15 |
Family
ID=21878478
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP37052797A Expired - Fee Related JP3746367B2 (ja) | 1996-12-20 | 1997-12-22 | プロセッサ命令実行パイプラインにおける非侵入ソフトウェアブレークポイント |
Country Status (3)
| Country | Link |
|---|---|
| EP (1) | EP0849672B1 (ja) |
| JP (1) | JP3746367B2 (ja) |
| DE (1) | DE69728507T2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007293871A (ja) * | 2006-04-11 | 2007-11-08 | Cadence Design Systems Inc | プロセッサの異種クラスターを有するハードウエアエミュレーションシステム |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6385742B1 (en) | 1998-03-06 | 2002-05-07 | Lsi Logic Corporation | Microprocessor debugging mechanism employing scan interface |
| GB2337834B (en) * | 1998-03-06 | 2003-02-12 | Lsi Logic Corp | Microprocessor debugging |
| EP0992906B1 (en) * | 1998-10-06 | 2005-08-03 | Texas Instruments Inc. | Apparatus and method for software breakpoint in a delay slot |
| CN104778116B (zh) * | 2014-01-09 | 2018-09-18 | 深圳市中兴微电子技术有限公司 | 一种多断点的软件调试装置和方法 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5084814A (en) * | 1987-10-30 | 1992-01-28 | Motorola, Inc. | Data processor with development support features |
-
1997
- 1997-12-22 DE DE69728507T patent/DE69728507T2/de not_active Expired - Lifetime
- 1997-12-22 JP JP37052797A patent/JP3746367B2/ja not_active Expired - Fee Related
- 1997-12-22 EP EP97310418A patent/EP0849672B1/en not_active Expired - Lifetime
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007293871A (ja) * | 2006-04-11 | 2007-11-08 | Cadence Design Systems Inc | プロセッサの異種クラスターを有するハードウエアエミュレーションシステム |
| US8612201B2 (en) | 2006-04-11 | 2013-12-17 | Cadence Design Systems, Inc. | Hardware emulation system having a heterogeneous cluster of processors |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0849672B1 (en) | 2004-04-07 |
| JP3746367B2 (ja) | 2006-02-15 |
| DE69728507T2 (de) | 2005-03-24 |
| EP0849672A2 (en) | 1998-06-24 |
| EP0849672A3 (en) | 2000-03-15 |
| DE69728507D1 (de) | 2004-05-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0849674B1 (en) | Method and apparatus for debugging a pipeline microprocessor | |
| EP0849671B1 (en) | A method for utilizing a multi-word instruction register during debugging of a data processing system | |
| US6055649A (en) | Processor test port with scan chains and data streaming | |
| US6016555A (en) | Non-intrusive software breakpoints in a processor instruction execution pipeline | |
| US5970241A (en) | Maintaining synchronism between a processor pipeline and subsystem pipelines during debugging of a data processing system | |
| EP0849673B1 (en) | Single stepping a processor pipeline and subsystem pipelines during debugging of a data processing system | |
| US6553513B1 (en) | Emulation suspend mode with differing response to differing classes of interrupts | |
| US6446221B1 (en) | Debug mechanism for data processing systems | |
| US6564339B1 (en) | Emulation suspension mode handling multiple stops and starts | |
| US6343358B1 (en) | Executing multiple debug instructions | |
| US6567933B1 (en) | Emulation suspension mode with stop mode extension | |
| US6643803B1 (en) | Emulation suspend mode with instruction jamming | |
| JP2000330826A (ja) | デバッグ命令を実行するデータ処理装置及びそのデータ処理方法 | |
| US6557116B1 (en) | Emulation suspension mode with frame controlled resource access | |
| JP3746367B2 (ja) | プロセッサ命令実行パイプラインにおける非侵入ソフトウェアブレークポイント | |
| JP4386974B2 (ja) | スキャンチェーンおよびデータストリーム機能を備えたプロセッサテストポート | |
| JP3916746B2 (ja) | データ処理システムのデバッグ中にプロセッサパイプラインおよびサブシステムパイプライン間の同期を維持すする方法と装置 | |
| Blocks et al. | Revision History | |
| Melear | Emulation techniques for microcontrollers with internal caches and multiple execution units | |
| JPH1011290A (ja) | マイクロプロセッサ | |
| Beck | T0 Engineering Data | |
| Zhao et al. | An on-chip in-circuit emulation architecture for debugging an asynchronous java accelerator | |
| Manual | P6 Family of Processors |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041222 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20051108 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051122 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091202 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101202 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111202 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121202 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121202 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131202 Year of fee payment: 8 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| LAPS | Cancellation because of no payment of annual fees |