JPH10187447A - データ処理システムのデバッグ中にプロセッサパイプラインおよびサブシステムパイプライン間の同期を維持すする方法と装置 - Google Patents

データ処理システムのデバッグ中にプロセッサパイプラインおよびサブシステムパイプライン間の同期を維持すする方法と装置

Info

Publication number
JPH10187447A
JPH10187447A JP9370532A JP37053297A JPH10187447A JP H10187447 A JPH10187447 A JP H10187447A JP 9370532 A JP9370532 A JP 9370532A JP 37053297 A JP37053297 A JP 37053297A JP H10187447 A JPH10187447 A JP H10187447A
Authority
JP
Japan
Prior art keywords
register
state
data
bit
instruction
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
Application number
JP9370532A
Other languages
English (en)
Other versions
JP3916746B2 (ja
Inventor
Douglas E Deao
イー.ディーオ ダグラス
Natarajan Seshan
セシャン ナタラジャン
J Reer Anthony
ジェイ.レール アンソニー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JPH10187447A publication Critical patent/JPH10187447A/ja
Application granted granted Critical
Publication of JP3916746B2 publication Critical patent/JP3916746B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3632Software debugging of specific synchronisation aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Debugging And Monitoring (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】 【課題】 外部テストシステムへの接続時に集積回路の
デバッグとエミュレーションが行えるエミュレーション
ユニットと共に、マイクロプロセッサ1および周辺装置
を備えた集積回路上のデータ処理システムを提供する。 【解決手段】 マイクロプロセッサ1は、フェッチ/デ
コードユニット10a〜cと機能実行単位12、14、
16、18に関連のある複数の実行段階を備えた命令実
行パイプラインを有している。マイクロプロセッサ1の
パイプラインが非保護であることから、命令記憶装置2
3に記憶されたシステムプログラムコードによって、デ
ータメモリ22およびレジスタファイル20へのメモリ
アクセスの待ち時間が利用できる。エミュレーションユ
ニット50は、無関係な演算の発生等、エミュレーショ
ン中にメモリ22〜23や周辺装置60〜61に影響を
及ぼすような事態を回避するような方法で演算を行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マイクロプロセッ
サに関し、詳しくは、VLIW(超長命令語)プロセッ
サのアーキテクチャに関するものである。
【0002】
【従来の技術および発明が解決しようとする課題】集積
回路の製造技術が進歩するにつれ、単一の集積回路装置
内に、ますます多くの論理機能が収容されるようになっ
ている。現代の集積回路(IC)装置には、一つの半導
体チップ上に多数のゲートが配置され、このようなゲー
トを相互接続することによって、例えば、汎用マイクロ
プロセッサにあるような多種多様で複雑な機能を実現で
きるようになっている。そうした超LSI(VLSI)
を組み込んでいるこのような回路の製造には、回路の組
立てにミスがないことが要求される。というのも、製造
に何かしら欠陥があれば、そのことによって、設計の目
的である機能がすべて実行できなくなる可能性も出てく
るからである。このようなことから、上に述べた回路の
設計に関する検査を行い、かつ製造後に電気的な各種テ
ストを行う必要性が生じている。
【0003】しかしながら、回路がより複雑になるにつ
れて、回路内の各装置の検証や電気的テストにかかるコ
ストならびに困難さも増している。電気的テストの観点
から言えば、VLSI回路の各ゲートが正しく機能して
いることを全体的に検証するためには、原則的に、(デ
ジタル的に、各ゲートがスタックオープンにもスタック
クローズにもなっていないと判断し、)ゲートの各々を
個別的に実行できるだけでなく、回路内の他のゲートと
関連性を保ちながら、想定可能なあらゆる演算の組み合
わせによって実行できなければならない。このようなこ
とは、通常、テストベクトルを用いて所望のテストを実
行する自動検査装置(ATE)によって行われる。テス
トベクトルは、一定時間中のすべてのパッケージピンに
対する所望のテスト入力(または信号)、関連する1ク
ロックパルス(または複数パルス)、予想されるテスト
出力(または信号)のことを言い、また、ある特定のゲ
ート(またはマクロ)の[テスト]を試みる場合に用い
られることも多い。複雑な回路では、膨大なテストベク
トルを有することになり、したがって、テスト時間が長
くなる。また、この文章中において、マクロとセルは、
同じものを意味しており、相互に交換可能なものとして
使用できる。
【0004】回路設計者は、これまで、VLSI回路の
テスト効率の向上化を図るうえで、縮退故障モデリング
技法を用いてきた。縮退故障モデリングは、個々のゲー
トに生じるスタックオープンまたはスタッククローズ故
障に対して行われるのではなく、論理回路のスタックハ
イおよびスタックローノードを引き起こすそのような不
良ゲート(および不良相互接続)が及ぼす影響に対して
行われる。したがって、論理回路のエクササイズを行う
ために、テストベクトルの最小パターンが導き出された
のである。欠陥がある場合に、このようなテストベクト
ルを回路に当てはめることによって、スタックハイおよ
びスタックローノードを検出する。このような技法は、
これまでに各世代のVLSI回路のテスト効率の改善に
役立ってきた。
【0005】さらに、VLSI回路の特定な回路構成に
は、特殊な信号の組み合わせ以外はすべてアクセス不可
能なゲートがいくつか存在し、したがって、非常に特殊
なパターンを持つ信号がない限り、故障が隠れた状態に
なる。しかしながら、各ゲートに対して想定可能な各組
み合わせを施すのに長時間を要することと、各回路の実
行に必要な検査装置の高いコストがかかることを考え合
わせると、製造された回路を100%テストするコスト
は莫大なものとなる。このようなことから、過去に、集
積回路の製造業者は、チップ内の能動素子の全部に満た
ないテストの実行を余儀なくされたことにより、これに
付随する製品の質的水準が、最適レベルを下回るように
なったことがある。したがって、集積回路設計の最大の
問題の一つとして言えるのは、最終的なIC設計を適切
にテストする能力であり、この問題は、集積回路がより
複雑になるにつれ、ますます重大なものとなっている。
【0006】この問題への1対処法として、テスト容易
化設計(DFT)がある。DFTの重要なコンセプト
は、制御可能性と観察可能性である。制御可能性とは、
回路内に配置されたどのノードの状態も設定ならびにリ
セットできる能力のことを言い、観察可能性とは、回路
内の任意のノードの状態を直接もしくは間接に観察でき
る能力のことを言う。DFTの目的は、外部入力/出力
から内部および外部ノードを制御ならびに観察する能力
を高めることにある。すなわち、DFT技術は、論理の
検証やDCパラメトリックのテストに使用してもよい。
【0007】テスト性を回路内に設計すると、回路への
影響をある程度与えることになり、さらに論理を加える
ことになろう。このような論理の追加によって、設計の
実現に必要なシリコンの量が増大する。テスト性の強化
によって節約される分は、大抵、回路の開発時間やテス
トにかかるコスト、さらにそのエンドシステムが分析さ
れるまで現われてこない。
【0008】縮退故障モデリングおよび関連するテスト
生成と組み合わせて、テスト性の改善のため特に設計さ
れたVLSI回路に他の回路を組み込むことも可能であ
る。テスト回路の一種として、論理回路内のスキャンパ
スがある。スキャンパスは、一連の同期クロック式マス
タ/スレーブラッチ(またはレジスタ)によって構成さ
れており、各ラッチは、論理回路の特定ノードにそれぞ
れ接続されている。このようなラッチは、論理回路ノー
ドを既定の状態に予め設定し、直列データストリーム
(スキャンイン)によってロードすることができる。し
たがって、通常の方法で、論理回路のエクササイズを行
うことができるうえ、(スキャンラッチを備えた各ノー
ドの)演算結果は、各ラッチに記憶される。ラッチの内
容を直列にアンロード(スキャンアウト)することによ
って、関連ノードの特定のテスト演算結果を読み出し
て、誤ったノード演算の分析を行うことができる。多く
の多様なデータパターンを用いてこの演算を繰り返すこ
とにより、論理回路に必要な組み合わせをすべて効果的
にテストできるが、各能動部品またはセルならびに想定
可能なあらゆる相互作用を個別にテストする場合に比べ
て、テスト時間が短くなるうえにコストも低下する。ま
た、スキャンパスは、ラッチ(またはレジスタ)に直接
書き込むことによって、また、ラッチ(またはレジス
タ)の内容を直接観察することによって、回路の初期化
が行える。スキャンパスの使用は、従来の[機能モー
ド]法に比べて、テストベクトル量を減少させるうえで
有効である。このようなデータのスキャン技法について
は、[A Survey of Design for
Testability Scan Techniq
ues](VLSI Design: 第5巻、No.
12、1984年12月発行。P.38〜61)の中
で、E.J.McCluskeyによって述べられてい
る。
【0009】さらに、VLSI技法の向上に伴って、集
積回路の利用者は、利用者の用途に合わせてカストマイ
ズされた機能を実行する目的から、特別に設計され組み
立てられた集積回路を必要とするようになってきてい
る。このような集積回路は、エーシック(ASIC:
特定用途向け集積回路)と呼ばれている。プログラマブ
ルファームウェアに実装されている特殊な機能を備えた
汎用マイクロコンピュータとコスト面で競合し、さら
に、小規模集積回路により形成されたボード設計とコス
ト面で競合するASIC装置の場合、ASIC回路の設
計時間を短縮しなければならず、ASIC回路は、低コ
ストで製造可能かつテスト可能でなくてはならない。し
たがって、このような回路が設計上モジュール化されて
各モジュールが一定の機能を実行する方法が有効とな
り、これにより、予め設計された回路のモジュールを組
み合わせて新たなASIC回路を形成することが可能に
なる。このような方法は、非ASICマイクロコンピュ
ータおよびマイクロプロセッサにも利用できる。最終生
成品の如何を問わず、モジュール化の方法を用いること
によって、設計者は、予め検証され製造可能性が立証さ
れた論理を採用することができる。しかしながら、現在
のスキャンパスを収容している論理モジュールが新たな
回路に利用される場合に、通常、新規装置に新規テスト
パターンが必要になることから、設計/製造サイクルタ
イムが長くなる。
【0010】これまで、スキャンパスや他のテスト性回
路を利用するモジュール化方式によって、予想可能なあ
らゆる欠陥が完全にカバーされてきた。しかし、この方
式は、システムバスを用いてスキャンテストのセットア
ップと操作を行うことから、各モジュールが他とは無関
係にテストされたとしても、一定のモジュールに対して
設計されたテストパターンは、バス制御とモジュール選
択のために、論理回路内の他のモジュールの演算に依存
することになる。その結果、特定のモジュールに関する
テスト性は、他のモジュールの障害のない演算に左右さ
れることになる。さらに、一定のモジュールのテスト条
件を設定する自動テストパターン生成(ATPG)プロ
グラムは、他のモジュールに対する該当モジュールの位
置と、このような他のモジュールの動作特性に依存して
いる。したがって、テスト時間とコストの削減は、この
ようなモジュール化によって実現可能ではあるものの、
個々のモジュールのスキャンパスのロード/アンロード
にシステムバスを利用することによって、特定モジュー
ルの演算に影響するだけでなく、一定のモジュールに対
してテストプログラムをある論理回路から別の論理回路
へ[ポートする]ことができなくなる可能性も出てく
る。
【0011】近年、ASICの設計に、メガモジュール
が使用されている(メガモジュールは、テキサスインス
ツルメンツ社の商標である)。メガモジュールには、S
RAM、FIFO、レジスタファイル、RAM、RO
M、UART(ユアート: 汎用非同期式レシーバトラ
ンスミッタ)、プログラマブルロジックアレイ等の論理
回路の各タイプがある。メガモジュールは、通常、複雑
性において少なくとも500ゲートから成りかつ複雑な
ASICマクロ機能を有する集積回路モジュールとして
定義されている。このようなメガモジュールは、予め設
計し、かつASIC設計ライブラリに保存しておくこと
ができる。したがって、設計者がメガモジュールを選択
し、設計されたICチップの一定領域内に配置すること
ができる。このため、ASIC設計者は、メガモジュー
ルを、単純マクロと同じくらい容易に各自の論理に組み
入れることができるようになる。
【0012】ASICのこのようなテスト上の問題を解
決するもう一つの方法は、いわゆるパラレルモジュール
テスト(PMT)の使用であり、[直接接続(dire
ctconnect)]スキームと呼ばれることも多い
(パラレルモジュールテストは、テキサスインスツルメ
ンツ社の商標である)。PMTは、直接接続スキームで
あるが、これは、外部ピンをメガモジュールに接続し、
それ以外の論理回路やバッファ等をすべてバイパスする
からである。このPMTは、主に論理検証テスト性スキ
ームとして作製されたものであり、最近では、限定的な
VIH/VILおよびICCQテスト性スキーム向けに
強化されている。しかしながら、このPMTにも問題が
発生する可能性はある。つまり、テスト選択中および割
込み許可中に、ASIC回路の論理状態が、テストプロ
セスの一部として混乱する可能性が生じるからである。
【0013】もう一つの解決法として、IEEE114
9.1標準のいわゆるJTAGテストポートによって定
義されたテストアクセスポートおよび境界スキャンアー
キテクチャが挙げられる。IEEE1149.1は、主
に、システムテスト法に対して提供されており、IEE
E1149.1標準では、テスト機能専用に使用される
最小限の4本の実装ピンを備えていればよい。しかし、
IEEE1149.1標準では、各I/Oバッファ用に
境界スキャンセルを備える必要があり、これによって、
シリコンオーバヘッドだけでなく、すべての正常な演算
機能ピンに対してさらにデータの遅延を引き起こすこと
になる。また、IEEE1149.1標準は、内部テス
ト性スキームの一部を制御する[フック]を有している
が、チップレベルのテストに最適化されていない。つま
り、IEEE1149.1は、内部DCパラメトリック
のテストを明示的にはサポートしていない。さらに、ソ
フトウェアブレークポイント(SWBP)によって、マ
イクロプロセッサコードのデバッグとシステム性能評価
が行える別の構造が考えられる。SWBPは、プログラ
ムが、停止ポイントの演算コードがメモリ内でソフトウ
ェアブレークポイントの演算コードと交換できる書込み
可能記憶装置モジュールにあれば、通常、演算コードの
置換によって得られる。大抵のマシンでは、SWBP演
算コードが命令実行パイプラインの最初の実行段階に達
すると、パイプラインに進行を停止させるか、あるい
は、割込みサービスルーチンへトラップさせて、パイプ
ラインが停止もしくはトラップしたことを示すデバッグ
状態ビットを設定する。保護パイプラインとして分類さ
れているプロセッサでは、SWBPの後にそのパイプラ
インにフェッチされた命令は実行されない。一方、すで
にそのパイプラインにある命令は、完了させることがで
きる。実行をリスタートするときは、パイプラインをク
リアして、演算コードがメモリ内で最初の演算コードに
置き換えられた後にSWBPメモリアドレスの演算コー
ドを先取りするだけで、リスタートできる。
【0014】マイクロプロセッサ設計者の間では、並列
法の利用によってシステムの性能向上を試みる傾向が高
まっている。現代のマイクロプロセッサの一部に応用さ
れている1並列アーキテクチャに、VLIW(超長命令
語)アーキテクチャがある。VLIWアーキテクチャマ
イクロプロセッサは、VLIW形式の命令を扱うことか
ら、このように呼ばれている。VLIW形式命令とは、
多重並行演算を符号化する長い固定長命令のことであ
る。VLIWシステムでは、複数の独立した機能単位を
使用しており、このような機能単位に複数の独立した命
令を発行する代わりに、複数の演算を1つの超長命令語
に組み入れている。したがって、VLIWシステムで
は、複数の整数演算用のコンピュータ命令、浮動小数点
演算、メモリ参照等を、単一の長いVLIW命令内で組
み合わせることができる。
【0015】このような複雑なパイプラインのテストや
デバッグは、前記パラグラフで述べてきた各技法を用い
ても、困難である。しかしながら、従来技術に関するこ
のような不利益や他の不利益は、本発明によって解消さ
れ、システムレベルのデバッグにとどまらず、チップレ
ベルのテストを行う改良方法ならびに装置が提供されて
いる。
【0016】
【課題を解決するための手段】本発明によれば、マイク
ロプロセッサからの単一または複数の「レディ」出力信
号により停止間近の状態であることを警告し、単一また
は複数の第2の「レディ」出力信号によりマイクロプロ
セッサが停止したことを示すことによって、マイクロプ
ロセッサ内部の非保護命令実行パイプラインとマイクロ
プロセッサ外部のメモリサブシステムデータパイプライ
ンの間の同期を維持できるという利点がある。非保護パ
イプラインでは、演算を開始したロードまたはストア命
令とは無関係に、ロードおよびストア演算が完了する。
この開始を行うロードまたはストア命令の次の命令は、
そのロードまたはストア演算が完了する前に、メモリア
クセスの待ち時間を利用して、開始を行ったロードまた
はストア命令の目的とする位置からデータを検索するこ
とができる。デバッグ中にデータ処理システムにおいて
プロセッサ命令実行パイプラインおよびサブシステムデ
ータパイプライン間の同期を維持する方法は、通常の演
算方法で前記プロセッサ命令実行パイプラインにあるシ
ステムコードを実行し、前記命令実行パイプラインと前
記データパイプラインにおいて複数の演算を開始する段
階と、前記プロセッサから前記サブシステムへ第1の信
号を送信し、停止間近であることを示す、段階と、前記
第1の信号の受信に応えて、前記サブシステムを停止に
備えて調節する段階と、前記複数の演算のうちの少なく
とも一つが依然停止間近の状態となるように、前記プロ
セッサパイプラインの前記通常の演算を停止する段階
と、前記サブシステムに第2の信号を送信することによ
り、前記プロセッサパイプラインが停止したことを示す
段階と、前記命令実行パイプラインにおいて前記依然停
止間近の状態にある前記複数の演算のうちの少なくとも
一つに対応する前記サブシステムパイプラインの前記演
算のうちの任意の演算が維持されるように、前記第2信
号の受信に応えて前記サブシステムを停止する段階と、
前記データ処理システム内で無関係な演算が一切発生し
ないような方法で前記プロセッサ命令実行パイプライン
にある前記システムコードの実行を継続する段階と、か
ら成っている。
【0017】
【発明の実施の形態】図1は、本発明の1実施例を有す
るマイクロプロセッサ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の各部分についての詳細
は、以下に充分詳しく説明されており、これによって、
マイクロプロセッサ技術の通常の技術を有する者が、本
発明を作製し使用することが可能である。
【0018】マイクロプロセッサ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の内部
動作へのアクセスを行えるようにする。
【0019】外部テストシステム51は、集積回路のデ
バッグおよびエミュレーションを行うための周知の各種
テストシステムの典型としてあげられている。このよう
なシステムの1つが、米国特許第5,535,331号
に説明されており、ここでも引用されている。テスト回
路52には、制御レジスタと、集積回路1をテストする
ための並列シグネチャ解析回路が含まれている。メモリ
22とメモリ23は、マイクロプロセッサ1の集積回路
の一部として図1に示されており、その範囲がボックス
42によって示されている。メモリ22〜23は、マイ
クロプロセッサ1の集積回路42の外部に配置されても
よく、または、その一部が集積回路42上に、別の一部
が集積回路42の外部に配置されてもよい。このような
配置は、設計上の選択に関する問題である。実行ユニッ
トの特定の選択や数もまた、設計上の選択の問題であ
り、本発明にとって重要な問題ではない。
【0020】マイクロプロセッサ1がデータ処理システ
ムに組み込まれている場合、図1に示すように、追加記
憶装置または周辺装置をマイクロプロセッサ1に接続し
てもよい。例えば、図示するように、ランダムアクセス
メモリ(RAM)70、読出し専用メモリ(ROM)7
1、およびディスク72を外部バス73により接続す
る。バス73は、マイクロプロセッサ42内の機能ブロ
ック61の一部である外部メモリインタフェース(EM
IF)に接続されている。さらに、直接メモリアクセス
(DMA)コントローラも、ブロック61内に配置され
ている。DMAコントローラは、通常、マイクロプロセ
ッサ1内のメモリと周辺装置の間、およびマイクロプロ
セッサ1の外部のメモリと周辺装置の間でデータをやり
取りするのに用いられる。
【0021】図2は、図1のマイクロプロセッサの実行
ユニットとレジスタファイルに関するブロック図であ
り、各種機能ブロックを接続しているバスのより詳細な
図が示されている。この図では、特に注意されない限
り、どのデータバスも、32ビットの広さを有してい
る。バス40aは、mux200aによって駆動される
アドレスバスDA1を備えている。これにより、ロード
/記憶装置D1またはD2のいずれかによって生成され
たアドレスを、レジスタファイル20a用のロードまた
は記憶用アドレスとして提供することが可能になる。ま
た、データバスLD1は、アドレスバスDA1によって
指定されたメモリ22内のアドレスからロードユニット
D1内のレジスタに、データをロードする。装置D1
は、レジスタファイル20aに保存する前に、提供され
たデータを処理してもよい。同様に、データバスST1
は、レジスタファイル20aからメモリ22にデータを
保存する。ロード/記憶装置D1は、32ビット加算、
減算、リニアアドレスおよび循環アドレス計算等の演算
を行う。ロード/記憶装置D2は、アドレスを選択する
うえでmux200bのサポートにより、装置D1と同
様の演算を行う。
【0022】ALU装置L1では、32/40ビット算
術および比較演算と、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と同様の演算を行
う。
【0023】ALU/シフタユニットS1は、32ビッ
ト算術演算、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とのレジスタ
トランスファーも行うことができる。
【0024】乗算器M1は、16x16の乗算を行う。
この乗算器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命令の説明を参照)。
【0025】 表2 制御レジスタ 略語 名称 説明 AMR アドレス指定モード 8レジスタのうちの1レジスタ レジスタ に対して、リニアアドレス指定 と循環アドレス指定のうちのい ずれを採用するか指定する。ま た、循環アドレス指定用のサイ ズを含む。 CSR 制御状態レジスタ 大域割込み許可ビット、キャッ シュ制御ビット、その他の雑多 な制御ビットおよび状態ビット を収容している。 IFR 割込み標識レジスタ 割込みの状態を表示する。 ISR 割込み設定レジスタ ユーザがペンディング割込みを 手操作により設定できるように する。 ICR 割込みクリアレジスタ ユーザがペンディング割込みを 手操作によりクリアてきるよう にする。 IER 割込み許可レジスタ 個々の割込みの許可/禁止を行 えるようにする。 ISTP 割込みサービステーブル 割込みサービステーブルの開始 ポインタ 位置を示す。 IRP 割込みリターンポインタ マスク可能割込みからの復帰に 用いるアドレスを収容する。 NRP マスク不可能割込み マスク不可能割込みからの復帰 リターンポインタ に用いるアドレスを収容する。 IN 汎用入力レジスタ 32入力信号を収容する。 OUT 汎用出力レジスタ 32出力信号を収容する。 PCE1 プログラムカウンタ E1パイプライン段階の実行パ ケットを含んでいるフェッチパ ケットのアドレスを収容する。 PDATA_0 プログラムデータアウト 32出力信号を収容し、プログ ラム空間への書込みを行う際に STP命令によって用いられる 。
【0026】図3は、アドレス指定モードレジスタ(A
MR)を示している。8つのレジスタ(A4〜A7、B
4〜B7)で、循環アドレス指定を行うことができる。
各レジスタに対し、AMRはアドレス指定モードを指定
する。各レジスタのA2ビットフィールドを用いて、リ
ニア(デフォルト)モードまたは循環モードのアドレス
修飾モードを選択する。循環アドレス指定により、この
フィールドでは、循環バッファに用いるBK(ブロック
サイズ)フィールドを指定する。さらに、該バッファ
は、ブロックサイズと同等のバイト境界に位置合せをす
る必要がある。このモード選択フィールドの符号化につ
いて表3に示されている。
【0027】 表3 アドレス指定モードフィールドの符号化 モード 説明 00 リニア修飾(リセット時デフォルト) 01 BK0フィールドを用いた循環アドレス指定 10 BK1フィールドを用いた循環アドレス指定 11 予約済み
【0028】ブロックサイズフィールドBK0およびB
K1では、循環アドレス指定のためのブロックサイズを
指定する。BK0およびBK1内の5ビットでは、その
幅を指定する。このブロックサイズの幅を計算する公式
は、 ブロックサイズ(バイト単位)=2(1+1) である。ただし、Nは、BK1またはBK0内の値とす
る。表4に、全部で32の想定可能なケースを対象にし
たブロックサイズの計算をあげている。
【0029】
【0030】制御状態レジスタ(CSR)には、図4に
示すように、制御ビットと状態ビットが含まれている。
CSR内のビットフィールドに関する機能を、表5に示
している。
【0031】 表5 制御状態レジスタ(ビットフィールド、読出し/書込み状態 および機能) ビット位置 幅 ビットフィールド名 機能 31〜24 8 CPU ID CPU ID。どのCPUか定 義する。 23〜16 8 Rev ID 修正ID。CPUのシリコン修 正を定義する。 15〜10 6 PWRD 制御パワーダウンモード。値は 常にゼロとして読み取られる。 9 1 SAT この飽和ビットは、任意の装置 が飽和を行うときに設定され、 MVC命令によってのみクリア することができ、機能単位によ ってのみ設定することができる 。この設定とクリアが同一のサ イクルで生じた場合、機能単位 による設定は、(MVC命令に よる)クリアに優先する。飽和 ビットは、飽和が生じた後の1 全サイクル(1遅延スロット) に設定される。 8 1 EN エンディアンビット(1=後退 法(リトルエンディアン)、0 =前進法(ビッグエンディアン )) 7〜5 3 PCC プログラムキャッシュ制御モー ド 4〜2 3 DCC データキャッシュ制御モード 1 1 PGIE 直前のGIE(大域割込みイネ ーブル)。割込みが取られた場 合GIEをセーブする。 0 1 GIE 大域割込みイネーブル。リセッ ト割込みとNMI(マスク不可 能割込み)を除くすべての割込 みを許可(1)あるいは禁止( 0)する。
【0032】図5に示される汎用入力レジスタ(IN)
は、32の汎用入力信号をサポートし、図6に示される
汎用出力レジスタ(OUT)は、32の汎用出力信号を
サポートする。このような信号の機能については、後で
説明する。次の表6では、ここで用いられる各種記号に
ついて説明している。
【0033】 表6 命令の演算および実行に関する表記法 記号 意味 int 32ビットレジスタ値 long 40ビットレジスタ値 creg 条件レジスタを指定する3ビットフィールド cstn nビツト定数 LSBn n個の最下位ビット MSBn n個の最上位ビット + 加算 − 減算 x 乗算 +a AMRによって定義されたアドレス指定モードによ り、2の補数の加算を行う。 −a AMRによって定義されたアドレス指定モードによ り、2の補数の減算を行う。 and ビット関連論理積 or ビット関連論理和 xor ビット関連排他的論理和 not ビット関連論理補数 by..z ビット列bのビットy〜ビットzの選択 << 左シフト >>s 符号拡張による右シフト >>z ゼロ充てんによる右シフト x clear b,e b(開始ビット)およびe(終了ビット)により指 定されたx内のフィールドをクリアする。 x exts l,r l(左シフト値)とr(右シフト値)によって指定 されたx内のフィールドを抜き出して符号拡張を行 う。 x extu l,r l(左シフト値)とr(右シフト値)によって指定 されたx内の符号なしフィールドを抽出する。 +s オーバーフローまたはアンダーフローが生じた場合 、2の補数の加算を実行し、その結果を結果サイズ に達するまで飽和状態にする。 −s オーバーフローまたはアンダーフローが生じた場合 、2の補数の減算を実行し、その結果を結果サイズ に達するまで飽和状態にする。 x set b,e b(開始ビット)およびe(終了ビット)により指 定されたすべての1に対し、x内のフィールドを設 定する。 abs(x) xの絶対値 lmb0(x) xの最左端の0ビット探索 lmb1(x) xの最左端の1ビット探索 norm(x) xの最左端の非冗長符号ビット探索 R 任意の汎用レジスタ cond cregがゼロに等しいか否かをチェックする。 nop 演算なし。
【0034】表7および表8では、命令と機能単位との
対応関係を定義している。
【0035】 表7 機能単位に対する命令の対応付け .L装置 .M装置 .S装置 .D装置 ABS MPY ADD ADD ADD SMPY ADDK ADDA AND ADD2 LD mem CMPEQ AND LD mem (15ビットオフセット) (D2のみ) CMPGT B disp MV CMPGTU B IRP NEG CMPLT B NRP ST mem CMPLTU B reg ST mem (15ビットオフセット) (D2のみ) LMBD CLR SUB MV EXT SUBA NEG EXTU ZERO NORM MVC NOT MV OR MVK SADD MVKH SAT NEG SSUB NOT SUB OR SUBC SET XOR SHL ZERO SHR SHRU SSHL STP(S2のみ) SUB SUB2 XOR ZERO
【0036】
【0037】汎用レジスタファイルは、32および40
ビットデータをサポートする。この32ビットデータは
各単一レジスタに収容されている。また、40ビットデ
ータは、2つのレジスタにわたって収容されており、こ
のデータのうち32個のLSB(最下位ビット)は、偶
数レジスタに保存され、8個のMSB(最上位ビット)
は、次のレジスタ(常に奇数レジスタ)の8個のLSB
に保存される。表9に示すように40ビットデータに対
して16の有効レジスタ対がある。アセンブリ言語構文
では、各レジスタ名の間にコロンを入れることによっ
て、このレジスタ対を表している。最初に奇数レジスタ
が指定される。
【0038】 表9 長レジスタ対 レジスタファイル A B A1:A0 B1:B0 A3:A2 B3:B2 A5:A4 B5:B4 A7:A6 B7:B6 A9:A8 B9:B8 A11:A10 B11:B10 A13:A12 B13:B12 A15:A14 B15:B14
【0039】図7に、40ビットデータを対象にしたレ
ジスタ記憶域構成を示している。長い入力データを必要
とする演算では、奇数レジスタの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に示すように符号化が行われる。
【0040】 表10 条件付き演算によってテスト可能なレジスタ creg z テスト対象レジスタ 31 30 29 28 0 0 0 0 条件なし 0 0 0 1 予約済み。選択された場合、SWBP命令を 示す。 0 0 1 z B0 0 1 0 z B1 0 1 1 z B2 1 0 0 z A1 1 0 1 z A2 1 1 x x 予約済み 注意: 予約済みの場合、xは、該当項目とは無関係であることを示す。
【0041】条件付き命令は、条件レジスタを角括弧で
括って表記されている。また、後続の実行パケットに
は、2つのADD命令が並列に配置されており、第1の
ADD命令は、B0に関して非ゼロの条件付きであり、
第2のADD命令は、B0に関してゼロであることを条
件としている。また、感嘆符(!)は、条件の[否定]
を表している。 [B0] ADD .L1 A1,A2,A3 || [!B0] ADD .L2 B1,B2,B3
【0042】上記の命令は、相互に排他的であり、つま
り、片方のみが実行されることを意味している。両方の
命令が並列にスケジュールされている場合、相互排他的
な命令は、さらに後述するあらゆる資源の制約に従わな
ければならない。相互排他的命令が後述するような任意
の資源を共用している場合、片方の命令だけが実行を終
了する場合でも、両方の命令を並列にスケジュール(同
一の実行パケットに配置)することはできない。命令の
実行は、遅延スロットにより定義することができる。表
11は、命令のタイプと、各タイプの命令が有している
遅延スロットの数、およびその命令が用いる実行段階を
示している。遅延スロットは、ソースオペランドが読み
取られてから、結果が取得され読み取られる前にかかる
余分なサイクル数に相当する。(ADDのような)単一
サイクル型の命令の場合、ソースオペランドがサイクル
iで読み取られると、その結果は、サイクルi+1で読
み取ることができる。乗算命令(MPY)の場合、ソー
スオペランドがサイクルiで読み取られると、その結果
は、サイクルI+2で読み取ることができる。
【0043】 表11 遅延スロットの概要 命令のタイプ 遅延スロット 使用される実行段階 分岐(分岐先がE1に入った時点 5 E1(分岐先E1) のサイクル) E1(分岐先E1) ロード(LD)(入力データ) 4 E1〜E5 ロード(LD)アドレス修飾) 0 E1 乗算 1 E1〜E2 単一サイクル 0 E1 記憶(ST)(アドレス修飾) 0 E1 NOP(実行パイプライン無演算) − − STP(CPU内部結果書込みなし) − −
【0044】命令は、常に8個一度に取り出され、フェ
ッチパケットを構成する。フェッチパケットの基本形式
は、図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ビット
パターンは、次のような実行シーケンスとなる。
【0045】 この8個の命令は、順次実行される。図10Bに示す全
並列pビットパターンは、次のような実行シーケンスと
なる。
【0046】 サイクル 命令 1 A B C D E F G H この場合、8個の命令は、並列に実行される。図10C
に示す一部直列pビットパターンは、次のような実行シ
ーケンスとなる。
【0047】 この8個の命令は、順次実行される。図10Bに示す全
並列pビットパターンは、次のような実行シーケンスと
なる。
【0048】 サイクル 命令 1 A B C D E F G H この場合、8個の命令は、並列に実行される。図10C
に示す一部直列pビットパターンは、次のような実行シ
ーケンスとなる。
【0049】 ここで、命令C、D、Eは、同じ機能単位、クロスパ
ス、その他のデータパス等の資源を使用しておらず、同
じことが、命令F、G、Hについても言うことができ
る。||は、命令が直前の命令と並列に実行されること
を示すものである。上記の一部直列の例では、コードが
次のように表記される。
【0050】 実行パケットの途中で分岐が発生した場合、低位アドレ
スの命令は、すべて無視される。一部直列の例では、命
令Dのあるアドレスに分岐が発生すると、DとEだけが
実行される。命令Cが同じ実行パケットにある場合で
も、命令Cは無視される。命令Aおよび命令Bも、分岐
前の実行パケットにあることから、やはり無視される。
同じ実行パケット内の2つの命令は、同じ資源を利用で
きない。さらに、同一サイクルにおいて、同一のレジス
タに2つの命令が書込みを行うことはできない。次に、
命令が使用可能な資源についてそれぞれ説明する。同一
の機能単位を使用する2つの命令は、同じ実行パケット
で発行することはできない。したがって、次のような実
行パケットは無効である。
【0051】 クロスパス(1Xおよび2X): 1データパス、1実
行パケットにつき1機能単位(.S、.L、または.
M)の場合、クロスパス(1Xおよび2X)を介して対
向するレジスタファイルからソースオペランドを読み取
ることができる。例えば、.S1は、Aレジスタファイ
ルから両方のオペランドを、または、1Xクロスパスを
用いてBレジスタファイルから片方のオペランドを読み
取ることができる。このことは、装置名の後にXを入れ
ることによって表記される。AからBとBからAの片方
のパスしかないことから、両レジスタファイル間の同じ
Xクロスパスを使用する2つの命令を、同一実行パケッ
トに発行できない。次のような実行パケットは無効であ
る。
【0052】 (演算コードマップに示すように)命令フィールドにx
ビットが設定されている場合、オペランドは、宛先に対
向するレジスタファイルから送信される。ロードおよび
ストア命令は、片方のレジスタファイルからのロードま
たは記憶処理を行いながら、もう一方のレジスタファイ
ルからのアドレスポインタを使用することができる。同
一レジスタファイルからのアドレスポインタを使用する
2つのロードおよび/またはストア命令は、同じ実行パ
ケットで発行することはできない。したがって、次のよ
うな実行パケットは無効である。
【0053】 同じレジスタファイルへのロードおよび/またはそのフ
ァイルからの記憶処理を行う2つのロードおよび/また
はストア命令は、同じ実行パケットで発行することはで
きない。したがって、次のような実行パケットは無効で
ある。
【0054】 レジスタファイルの各サイドのサイクルごとに、長い演
算結果を1つだけ書き込んでもよい。.Sおよび.L装
置が長ソースオペランド用読取りレジスタポートと長演
算結果用書込みレジスタポートを共用していることか
ら、実行パケットの各サイドにつき1つだけ発行しても
よい。次のような実行パケットは無効である。
【0055】 .Lおよび.S装置が、記憶ポートと長読取りポートを
共用していることから、長い値を読み取る演算は、スト
ア命令として、.Lおよび/または.S装置において同
じ実行パケットで発行することはできない。したがっ
て、次のような実行パケットは無効である。
【0056】 同一レジスタの5つ以上の読取り命令が、同じサイクル
にあってはならない。ただし、条件レジスタは、その限
りではない。次のコードシーケンスは無効である。
【0057】 MPY .M1 A1,A1,A4 ; レジスタA1の5つの 読取り命令がある。 || ADD .L1 A1,A1,A5 || SUB .D1 A1,A2,A3 ただし、次のコードシーケンスは有効である。 MPY .M1 A1,A1,A4 ; A1の4つの読取り命 令にとどまっている。 ||[A1] ADD .L1 A0,A1,A5 ||SUB .D1 A1,A2,A3 同じレジスタへの書込みを行う待ち時間が異なる命令が
別々のサイクルで発行された場合、同一サイクルにおけ
る同一レジスタへの複数の書込みが発生することがあ
る。例えば、サイクルi+1上のADDが後ろに付くサ
イクルiで発行されたMPYは、どちらの命令も結果を
サイクルi+1に書き込むことになることから、同一レ
ジスタへの書き込みはできなくなる。したがって、次の
コードシーケンスは無効である。
【0058】MPY .M1 A0,A1,A2 ADD .L1 A4,A5,A2 表12に、異なる複数の書込みによる矛盾(コンフリク
ト)を示している。例えば、実行パケットL1のADD
とSUBが同じレジスタに書き込まれる場合、矛盾は容
易に検出できる。パケットL2のMPYとパケットL3
のADDは、両方とも同時にB2に書き込まれるが、分
岐命令により、L2の後の実行パケットがL3以外のパ
ケットになる。これは矛盾ではないであろう。したがっ
て、アセンブラによってL2とL3に矛盾が検出される
ことはない。L4内の命令は、互いに排他的であること
から、書込みの矛盾を引き起こすことはない。逆に、L
5の各命令は、互いに排他的であることが明らかでない
ために、アセンブラは矛盾があるかどうか判断できな
い。パイプラインがコマンドを受信して同一のレジスタ
に複数の書込みを行う場合、結果は未定義となる。
【0059】 アドレスモードは、BK0を用いた場合、リニア、循環
モード、BK1を用いた場合、循環モードがある。この
モードは、アドレスモードレジスタ(AMR)によって
指定される。
【0060】8個のレジスタは、循環アドレス指定を行
うことができ、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だ
け左にシフトして、ワードアクセス、ハーフワードアク
セス、またはバイトアクセスを行ってから、加算または
減算(指定された演算によって異なる)を実行する。
【0061】循環モードアドレス指定では、AMRのB
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
となる。
【0062】
【0063】循環モードアドレス指定は、ADDA/S
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となる。
【0064】 各命令は、命令構文により表記される。演算コードマッ
プでは、各命令を構成している各種ビットフィールドに
分けられている。表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を有している。 パイプライン動作
【0065】DSPパイプラインは、パフォーマンスの
向上、コストの低減、およびプログラミングの簡素化に
役立つ重要な特徴をいくつか備えている。具体的には、
パイプライン方式を増やすことにより、プログラムの取
出し、データアクセス、および乗算などに生じていた従
来のアーキテクチャ上のボトルネックが削減され、パイ
プラインインタロックの除去により、パイプライン制御
が簡素化され、また、パイプラインにより、サイクルご
とに8つの並列な命令をディスパッチすることができ
る。さらに、並列な命令が、複数の同じパイプライン段
階を同時に進行し、直列な命令が、相対的なパイプライ
ン段階の同じ差を保ちながら進行し、なおかつ、ロード
およびストアアドレスが、同一のパイプライン段階中に
CPU境界上に出現することにより、リードアフタライ
トメモリの矛盾が削減される。データアクセスとプログ
ラム取出しのいずれにも、複数段階から成るメモリパイ
プラインが存在する。これにより、オンチップとオフチ
ップのどちらでも高速の同期メモリを使用することがで
きるうえ、他の命令と並列な分岐によって無限にネスト
可能なオーバヘッドゼロのループが可能になる。パイプ
ラインの実行サイクルでは内部インタロックが全く生じ
ないことから、新規実行パケットは、CPUサイクルご
とに実行段階に入る。したがって、特定の入力データを
備えた特定のアルゴリズムのCPUサイクル数は、一定
である。プログラム実行中にメモリ機能停止が一切起こ
らなければ、CPUサイクル数は、実行するプログラム
のクロックサイクル数に等しくなる。パフォーマンス
は、メモリサブシステムからの機能停止または割込みに
よってのみ、抑止することができる。メモリ機能停止の
理由は、メモリアーキテクチャによって定められる。プ
ログラムを速度に対してどのように最適化すればよいか
充分に理解するためには、プログラム取出し、データ記
憶、そのプログラムが作製するデータロード要求の並び
と、各々がCPUの機能をどのように停止させるのかを
理解する必要がある。
【0066】機能的観点から、パイプライン動作は、C
PUサイクルをベースにしている。CPUサイクルと
は、ある特定の実行パケットが特定のパイプライン段階
に存在する期間のことである。CPUサイクル境界は、
常にクロックサイクル境界上に生じるが、メモリ機能停
止によって、CPUサイクルが複数のクロックサイクル
の長さを超えることが起こり得る。CPUサイクル境界
におけるマシン状態を理解するためには、パイプライン
の実行段階(E1〜E5)のみを問題にしなければなら
ない。パイプラインの段階については、図11に示して
おり、さらに、表15で説明されている。
【0067】 表15 パイプライン段階の解説 パイプライン パイプライン 記号 各段階中の説明 完了した命令 段階 のタイプ プログラム プログラムア PG フェッチパケット 取出し ドレス生成 のアドレスが決め られる。 プログラム PS フェッチパケット アドレス送信 のアドレスがメモ リに送信される。 プログラムウ PW プログラムメモリ ェイト アクセスが実効さ れる。 プログラムデ PR フェッチパケット ータ受信 がCPU境界にお いて実行される。 プログラムデ ディスパッチ DP フェッチパケット コード 内の次の実行パケ ットが決定された 後、デコードされ る適切な機能単位 に送信される。 デコード DC 命令が、機能単位 においてデコード される。 実行 実行1 E1 命令がどのタイプ 単一サイクル であっても、命令 の条件が評価され 、オペランドが読 み取られる。 ロードおよびスト ア命令: アドレ ス生成が計算され 、アドレス修飾が レジスタファイル に書き込まれる。 分岐命令: PG 段階の分岐フェッ チパケットに作用 する。 単一サイクル命令 : 結果がレジス タファイルに書き 込まれる。 実行2 E2 ロード命令: ア ストア ドレスがメモリに STP 送信される。 ストア命令とST P: アドレスと データがメモリに 送信される。 飽和が生じた場合 乗算 、結果を飽和状態 にする単一サイク ル命令によって、 制御状態レジスタ (CSR)にSA Tビットが設定さ れる。 乗算命令: 結果 がレジスタファイ ルに書き込まれる 。 実行3 E3 データメモリアク セスが行われる。 飽和が生じた場合 、結果を飽和状態 にする任意の乗算 命令によって、制 御状態レジスタ( CSR)にSAT ビットが設定され る。 実行4 E4 ロード命令: デ ータをCPU境界 まで移動させる。 実行5 E5 ロード命令: デ ロード ータをレジスタに ロードする。 :命令の条件が真であると評価されたものとする。こ
れらの条件が偽として評価された場合、E1の後、命令
によって結果が書き込まれてパイプライン動作が行われ
ることはない。命令のパイプライン動作は、表16に示
すような7種類に分類できる。また、各命令タイプに対
する遅延スロットの一覧が、第2列に示されている。
【0068】 表16 遅延スロットの概要 命令タイプ 遅延スロット 採用される実行段階 分岐(分岐先がE1に入った時点 5 E1(分岐先E1) のサイクル) ロード(LD)(入力データ) 4 E1〜E5 ロード(LD)(アドレス修飾) 0 E1 乗算 1 E1〜E2 単一サイクル 0 E1 ストア 0 E1 NOP(実行パイプライン無演算) − − STP(CPU内部結果書込みな − − し) 命令の実行は、遅延スロット(表16)により定義する
ことができる。遅延スロットとは、命令の結果が得られ
ない命令の第1実行段階(E1)の後に発生するCPU
サイクルのことである。例えば、乗算命令は1遅延スロ
ットを有しているが、このことは、別の命令が乗算命令
の結果を使用できるまでに1CPUサイクルあることを
意味している。単一サイクル命令は、パイプラインのE
1段階中に実行する。オペランドが読み取られた後、演
算が行われ、その結果がレジスタに書き込まれるが、こ
れはすべてE1の間に行われる。この命令には遅延スロ
ットが全くない。
【0069】乗算命令は、パイプラインのE2段階中に
演算を完了する。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
【0070】分岐命令は、パイプラインの最初のE1段
階に入ると、その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段階に入るまで、ある
いは割込みが生じるまで、継続する。
【0071】パイプラインの切断は、メモリの機能停
止、多重サイクル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値の一覧で
ある。
【0072】 表17 プログラムおよびデータキャッシュフィールド ビットフィ プログラム データキャ モード名 内容 ールドカウ キャッシュ ッシュコン ンタ (PCC) トロール (DCC) 000 PCM DCM キャッシ キャッシュがメモリ ュマップ へマップされる。た だし、キャッシュは 、更新されず、(メ モリへマップされる 場合を除いて)アク セスされない。タグ は、自動的に無効に なるか、あるいは前 後いずれかのフラッ シュによって無効化 できる(キャッシュ 実装による)。 001 PCFL DCFL キャッシ キャッシュ全体が無 ュフラッ 効化される。キャッ シュ シュは、アクセスの ため、バイパスされ る。キャッシュは更 新もアクセスもされ ない。 010 PCE DCE キャッシ キャッシュがアクセ ュイネー スされる。また、キ ブル ャッシュは、更新さ れる。 011 PCFR DCFR キャッシ キャッシュは読取り ュフリー 命令の発行時にアク ズ セスされる。ただし 、キャッシュは、読 取り命令の発行時に 更新されない。書込 み命令の発行時にキ ャッシュが更新され るか無効化されるか は、特定装置によっ て異なる。 100 PCB DCB キャッシ キャッシュは、アク ュバイパ セスされず、また、 ス 読取り命令の発行時 に更新されない。書 込み動作は、キャッ シュフリーズモード の場合と同様である 。 101 予約済み 予約済み 110 予約済み 予約済み 111 予約済み 予約済み CSRのPCCフィールドに値000bがある場合、プ
ログラムメモリは、有効なプログラムメモリ空間として
マップされる。このプログラムメモリマップを形成する
アドレスは、装置上のMAP_BOOTピンの値によっ
て異なる。 エミュレーション機能 本発明の1態様として、ソフトウェアプログラムの開
発、または正確な演算を目的としたDSP1テストを行
うために、DSP1の演算をエミュレーションする新規
改良技術があげられる。エミュレーションに関係するD
SP1の各部分について、以下に詳しく説明している。
【0073】再び図1について説明すると、CPU10
は、エミュレーション回路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
の動作と設計について詳しく説明する。
【0074】特殊エミュレーション(SE)装置は、M
TAP305と、全体としてのメガモジュール300に
インタフェースしており、デバッグ、トレース、および
ブレークポイントの能力を向上させる働きをする。特殊
エミュレーション装置(SE)は、SE分析(SEA)
領域回路のための第4領域を有しており、この領域は、
メガモジュールの外部にある。さらに、MTAPを介し
たメガモジュールへのSEA領域のインタフェースにつ
いても、以下に詳しく説明している。SEA領域には、
データおよびアドレス上のハードウェアデータブレーク
ポイント、実行を目的にディスパッチされた実行パケッ
トのアドレス上のハードウェアプログラムブレークポイ
ント、実行されるプログラムアドレス、プログラム、お
よびデータメモリアクセスのトレース、採用された割込
み、機能単位使用、および分岐、イベントカウンタなら
びにシーケンサがある。図16は、メガモジュールリセ
ット動作と関連する信号を示すタイムチャートである。
この工程を通じて、イナクティブRDYが、依然として
CPUを停止できる、すなわち、CPUサイクルが複数
のクロックサイクルにわたることが可能な点に注意され
たい。発生するイベントの並びは、次の通りである。
【0075】1. クロックn+2: NRESETが
ローになってから最初のクロックサイクルである。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
は、割込み処理及び割込みサービスルーチンに対するプ
ログラムフローの再処理を開始する。
【0076】 表18.割込みプライオリティ 最高プライオリティ 割込み名 リセット NMI INT4 INT5 INT6 INT7 INT8 INT9 INT10 INT11 INT12 INT13 INT14 最低プライオリティ INT15 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からのリターン方法を示し
ている。
【0077】 表19.NMIからのリターン B (.S2) NRP ;return,sets NMIE NOP 5 ;delay slots 以下の状態によって、INT4〜INT15が割込みを
開始するのを中止することが出来る。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個の割込み制御レジスタをリス
トとして示している。
【0078】 表21.割込み制御レジスタ 略字 名称 説明 レジスタ アドレス IFR 割込み標識レジス 割込み状態 00010 タ ISR 割込みセットレジ IFRの標識を手動でセット 00010 スタ することが出来る。 ICR 割込みクリアレジ IFRの標識を手動でクリア 00011 スタ することが出来る。 IER 割込みイネーブル 割込みをイネーブルすること 00100 レジスタ が出来る。 ISTP 割込みサービス 割込みサービステーブルの開 00101 テーブルポインタ 始に対するポインタ IRP 割込みリターン マスク可能割込みからのリタ 00110 ポインタ ーンで用いられるリターンア ドレスを有する。このリター ンは、B IRP命令によっ て実行される。 NRP マスク不可能 マスク不可能割込みからのリ 00111 リターンポインタ ターンで用いられるリターン アドレスを有する。このリタ ーンは、B NRP命令によ って実行される。 IFR及びISRはレジスタアドレスを共有する。IF
Rを読み出すと共にISRを書き込むことが出来る。他
のレジスタは独自のアドレスを有する。割込みイネーブ
ルレジスタ(IER)の対応するビットがセットされた
際の割込みは、この割込み処理をトリガすることが出来
る。リセットに対するビット0は書き込み不可能であ
り、常に1として読み出される。リセット割込みは常に
イネーブルとなる。なお、リセットをディスエーブルに
することは出来ない。ビットIE4〜IE15を、対応
する割込みをイネーブルにし、又は、ディスエーブルに
する1又は0として、それぞれ書き込むことが出来る。
IERを図17Bに示す。
【0079】NMIEは、クリアの場合、全ての非リセ
ット割込みをディスエーブルにして、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を読み出す。
【0080】 表22.割込み標識ビット 割込み 説明 NMIF NMIによるセット IF15〜IF4 各割込み(INT15〜INT4)によるセット 割込みセットレジスタ(ISR)及び割込みクリアレジ
スタ(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ビットをセットするためにのみ用いることが出来
る。
【0081】分析割込みを、所定のタイプのイベントに
よってトリガすることが出来る。所定のイベントは停止
に対するトリガを行う。発生の停止に対して、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テストポートからの外部停止要求。 イベントは、イネーブルされた場合に、プロセッサの停
止された状態に関係なく認識されるだけ十分長くアクテ
ィブである必要がある。しかしながら、これらイベント
は、複数のイベントを発生させるだけ十分長くアクティ
ブになることが出来ない。エッジ検知回路を、イベント
長の時間制限をエミュレートするために用いる。
【0082】既に説明したイベントの多数は、分析イベ
ントとして分類され、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をセットする。これは、モニタ
による割込みに基づく単一ステッピングに対して用いら
れる。
【0083】これらイベント中の一つ以上は、分析制御
レジスタ(図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はクリアされる。
【0084】PRIの値に関係なく、AINTに対する
リターンアドレスは、常に、図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コードシーケンスから
のリターンを示す。
【0085】 表23.ソフトウェア割込み命令 表記 SWI オペランド 演算コードマップ領域 なし ユニット なし オペランド なし 説明 この命令は、分析割込み(AINT)に対する割込み待機ビット (AIP)をセットする。クレッグ及びzフィールドによって、 ソウトウェアブレークポイントをセットするだけであり、状態動 作を行うことが出来ない。 表24.分析リターンポインタに対する分岐 表記 B ARP オペランド 演算コードマップフィールド なし ユニット なし オペランド なし 説明 この命令は、分析割込みリターンポインタ(ARP)の値に対し て分岐する。 実行 if(cond) ARP>PFC else NOP 表25.AINTからのリターンに対するコードシーケンス B .S2 ARP ;return,set AIE NOP 5 ;delay slots 分析割込みが処理を開始すると、ACR信号のAINT
SUSPビットをセットして、任意の将来の分析事象割
込み又は停止の認識をディスエーブルする(すなわち、
AIPはセットされない)。AINTSUSPは、ユー
ザ書込みによってのみクリアされる。再び図18を参照
して、他の割込みが存在する際の分析割込みの動作を説
明する。以前の実行パケットが、そのDPフェーズで発
生する(全ての必要な方法でイネーブルされた)割込み
を有する場合、この割込みは延期され、AINTが行わ
れる。したがって、n+4及びn+5が取り消される。
n+5へのリターンに応じて、AIPに基づくプログラ
ムアドレスを発生させた任意の状態が再度発生する。
【0086】次の実行パケットn+6が、そのDPフェ
ーズで発生する(全ての必要な方法でイネーブルされ
た)割込みを有する場合、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を参照して詳細に説明する。
【0087】表26.テストポート信号の説明 信号 説明 SIN テストポート走査データ入力 SOUT テストポート走査データ出力 CPULOCK テストポート同期制御信号 ANALOCK MMLOCK LM 機能マスタクロック LS スレーブクロック SCLK 走査クロック DBENB 領域バスイネーブル テストポートバス 図9〜14参照 この場合、信号に幾分冗長がある。例えば、SCT
L(又はSDAT)経路のSHIFT_DRを、主張し
た(又は主張しない)C0ビットによって又はSCTL
_SEL(若しくはSDAT_SEL)信号によって決
定することが出来る。しかしながら、PAUSで生じる
SCTLUPDATE_DR又はCAPTURE_DR
に対して、SCTL_SELを、制限するものとして用
いる必要がある。この理由は、UPDATE_DR信号
及びCAPTURE_DR信号は、関連の動作がない場
合でもテストポートがPAUSにある間SDATから主
張されているからである。また、C0は、SDAT S
HIFT_DR動作のSDAT SELに比べて制限す
るものとして実行することが出来る。したがって、SD
AT_SELは、これらの信号を主張する際の制限のた
めには必要とされない。
【0088】 表27.テストポートバス信号の説明 信号 説明 ATPG_DEVM 表示MTAPはATPGモードにある。 C0/C1 テストポート制御入力0及び1 Ce テストポート拡張制御入力 SHIFT_DR MTAP SHIFT_DR状態。走査チェーンのビッ トのシフトのイネーブル UPDATE_DR MTAP UPDATE_DR状態。実際に制御信号を 駆動する任意のシャドーレジスタに対する走査ビットの 書込みのイネーブル。SCTL走査に対するPAUS状 態で用いられるときにテストポートによって使用される 。SDAT走査に対して使用されない。 CAPTURE_DR MTAP CAPTURE_DR状態。走査ビットに対 する任意のシャドーレジスタからの走査ビットの読取り をイネーブルする。この信号は、機能動作に対するテス トポートに対して必要でない。しかしながら、これは、 UPDATE_DR機能の動作(の結果を読返し)をテ ストする必要がない。SCTL走査に対するPAUS状 態で用いられるときにテストポートによって使用される 。SDAT走査に対して使用されない。 SCTL_SEL 制御走査の選択表示 SDAT_SEL データ走査の選択表示。任意のテストポート論理では最 も用いられない。 FCLK_REQ 機能クロック要求。領域に対する任意のOFFREQパ ワーダウン信号を中止し、かつ、無効にする。 TCLK_SEL TCLKがテストポートの非重畳クロック発生器を駆動 すべきであることの表示。TCLKは、テストポート状 態及びSHIFT_DRに依存してLM又はSCLKを 駆動する。 UCLK_SEL UCLKがテストポートの非重畳クロック発生器を駆動 すべきであることの表示。UCLKは、LMのみを駆動 する。
【0089】表28,29,30,31及び32並びに
図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をもって説明する。
【0090】 表28.エミュレーション制御に対するCPU領域ビット及び走査による状態ビ ット 名称 ビット 説明 EPDN 1 XDSによって行われたエミュレー ション経路停止の取消の実行。CP UテストポートがFUNCにあると きにクリアされる。FUNCの外へ の遷移後、走査によるセットまでク リアのままにする。 EPUP 1 XDSによって行われたエミュレー ション経路再開の取消の実行。リセ ットを含む全ての割込みの実行のデ ィスエーブル。CPUテストポート がFUNCにあるときクリアされる 。FUNCの外への遷移後、走査に よるセットまでクリアのままにする 。 ECTL 1 プログラムフェッチのディスエーブ ル。RESETを含む割込みの実行 のディスエーブル。信号をディスエ ーブルするSUSPEND分析イベ ントの駆動。CPUのXDS制御に 使用される。CPUテストポートが FUNCにある際にクリアされる。 FUNCの外への遷移後、走査によ るセットまでクリアのままにする。 EUPL サイクルごとの次のフェッチパケッ トへのフェッチのみに対するフェッ チ機構の同期。RESETを含む全 ての割込みの実行のディスエーブル 。走査によってアップロードされた プログラムに対して使用される。C PUテストポートがFUNCにある ときクリアされる。FUNCの外へ の遷移後、走査によるセットまでク リアのままにする。 EMU_MVCEN 1 セットの場合、ISR及びICRに 対するMVC命令がAIP及びMS GIPビットに影響を及ぼす。CP UテストポートがFUNCにあると きクリアされる。 ANNUL 1 EPDN及びEPULを取消E1に セットするとき零を走査する必要が ある。EPDN及びEPULをクリ アするときに1を走査する必要があ る。 ANNUL_ASU 1 EPDN及びEPULを取消E1に セットするときに零を走査する必要 がある。EPDN及びEPULをク リアするときに1を走査する必要が ある。 PDATA_I 256 フェッチパケットを保持するCPU 境界の命令レジスタ。 DATA_I1 2x3 データ入力ポートセーブされたデー タを、エミュレーション経路再開に DATA_I2 2 対して走査して、フェッチのセーブ された実行をデュープリケトする。 CREG_E1_L1 8x4 (DCの終了の際の)E1経路段中 CREG_E1_M1 で保持さCれるようなクレッグ領域 CREG_E1_S1 。SWBP置換に対Cして用いられ CREG_E1_D1 る。 CREG_E1_L2 CREG_E1_M2 CREG_E1_S2 CREG_E1_D2 CREG_E1_LDST1 CREG_E1_LDST2 PCE1 30 これは、E1の現在の実行パケット のPCである。PCE1 CPU制 御レジスタと異なる。これは実行パ ケットである(フェッチパケットア ドレスでない) ABP_DET 1 取消が発生する分析イベントが生じ たことを表す。他のビットと異なり 、このビットは、制御用ではなく、 エミュレータに対する状態用である 。CPUテストポートがFUNCで あるときクリアされる。これは、M TAP信号に対するCPU領域でも ある。 SWBP_DEC 1 SWBPのデコードを表す。他のビ ットと異なり、このビットは制御用 ではなくエミュレータに対する状態 用である。CPUテストポートがF UNCであるときクリアされる。こ れも、MTAP信号に対するCPU 領域である。
【0091】 表29.メガモジュール境界信号 名称 I/O ビット 説明 UCLK I 1 クロックを設けたcDSPデザイン。ピ ン、オンチップ(オフメガモジュール) PLL、クロック分割論理又はパワーダ ウン論理から供給することが出来る。 TCLK I 1 クロックを設けたテスト/エミュレーシ ョン。チップ境界に出力される。 SEE I 1 特殊エミュレーションイベント。ラッチ されない。テストに対して境界SRLを 必要とする。 EPSIZE 0 3 パケットサイズの実行。DCの実行パケ ットのサイズ。 FU_L1 0 8x1 機能ユニット使用信号。機能ユニット使 FU_M1 用を表す。 FU_S1 FU_D1 FU_L2 FU_M2 FU_S2 FU_D2 PCDP 0 30 プログラムカウンタディパッチフェーズ 。DPの実行パケットの第1命令のアド レス。 LOGXOFFD 0 1 チップがDBS,PWRDN及びIAC Kのようなストローブに関連する全ての 非プログラムメモリを無視する必要があ ることを表す。この信号は、CPUテス トポートがHALT,PAUS,SCT L,SDATにあり、機能的、すなわち 、ATPGテスト中及びリセット中にア クティブとなる。 LOGCOOFP 0 1 チップがPAS,PDS及びPWSのよ うなストローブに関連する全てのプログ ラムメモリを無視する必要があることを 表す。この信号は、CPUテストポート がHALT,PAUS,SCTL,SD ATにあり、ATPGテスト中及びリセ ット中である際にアクティブとなる。 ERDY_DC 0 2x1 取消に対する内部RDYの追跡と共に用 いられる。 SUSPEND 0 1 出力SUSPEND信号
【0092】 表30CPU及びメガモジュール境界信号に対するMTAPの説明 信号 メガモジュール MTAPパルス幅 説明 境界パルス幅 STALL 1クロック 取り消されたCPU。 イナクティブ/ STALL信号によっ アクティブ て供給される。 IACK 1サイクル 1クロック 割込み肯定。 ICNTX 複数サィクル 割込み処理が原因で割 込みがE1にないこと を表す。 NOP 1クロック 命令が現在実行されて アクティブ/ いないことを表す(E サイクル 1にはNOPが充てん されている)。これは 、基本的には、1クロ ック/サイクルのみに 対してアクティブとな る表29で説明したF U_**のNORであ る。 BRTK 1クロック 取り出された分岐。E アクティブ/ 1のパケットは、取り サイクル 出された分岐の結果で ある。
【0093】 表31.CPUインタフェース信号に対するMTAPの説明 信号 ビット 説明 STRP_DEVM 1 MTAPがSTRAPモード(エミュレーション 又はATPGでない)にあることを表す。 STRM_LD 32 データストリームロードの日付(アップロード機 能)。 STRM_ST 32 データストリーム記憶の日付(ダウンロード機能 )。データストリームモードにない際に、16M SBは、制御状態レジスタ(CSR)のCPUI D/修正ID領域を決定する。MTAPは、これ ら領域の値を決定する個別の16ビット入力を有 する。 STRM_SEL 1 ロード及び記憶経路をデータストリームの必要に 応じて調整する必要があることを表す。 ABP_DET 1 取消を発生させる分析イベントが生じたことを表 す。 SWBP_DEC 1 SWBPのデコードを表す。CPUテストポート がFUNCにあるときにクリアされる。これも、 MTAP信号に対するCPU領域である。 MSGFLG 1 ACRのMSGFLGの状態。 AINT_TKN 1 AINTが行われたことを表す。IACKと同時 に発生する。 MINT_TKN 1 MSGINTが行われたことを表す。IACKと 同時に発生する。 RST_TKN 1 リセットが行われたことを表す。IACKと同時 に発生する。 AINT_EN 1 受信の際にAINTを行うことが出来ることを表 す。PRI=0のとき、NMIE,GIE及びA IEを全て1にする必要がある。PRI=1のと きにAIEを1にする必要がある。 MINT_EN 1 受信の際にMSGINTを行うことが出来ること を表す。GIE及びMSGIEを1にする必要が ある。 CPU_EMUC 1 EMU(O/I)境界ピンのユーザ形態に対する ACRからの4ビット信号
【0094】 表32.メガモジュール領域インタフェース信号に対するMTAPの説明 信号 説明 EMU_DEVM MTAPがエミュレーションモードであることを表す 。CPU_DONEの発生時に用いられる。 CPU_DONE CPUが取り消されることを表す。この信号は、テス トポートがFUNC状態であるときにイナクティブと なる。取消の後のみアクティブとなる。この信号を、 メガモジュール領域で発生させる。その理由は、それ がRDYで変化するように応答する必要があるからで ある。 EMU(0/1)IN 取消又は分析割込みをトリガする1クロックパルスを 発生させることが出来る。MTAPは、EMU(0/ 1)メガモジュール入力に基づいてこの信号を発生さ せることが出来る。 MSGSW ACRのMSGSWビットによって指導される際に1 クロックパルスを搬送することが出来る。これは1ク ロックである(1サイクルでない)ため、この信号を メガモジュール領域で発生させる。 XAINT 分析割込み(AINT)のトリガを行う。 MSGINT メッセージ割込み(MSGINT)のトリガを行う。 図22は、テストポートが存在することが出来る種々の
状態の状態図である。MTAP信号C0,C1,及びC
e並びにLOCK信号(表26)のセットは、表33で
説明すると共に図22に図示したようにテストポートの
状態を決定する。各テストポート310,320及び3
30は、MTAP(図15)からの互いに依存しないロ
ック信号を有する。アクティブロック信号によって、現
在の状態を、ロック信号がイナクティブになるまでテス
トポート内にラッチする。テストポートがロックされな
い場合に、テストポートバスがテストポートの状態を決
定する。テストポートがロックされた際に、信号がテス
トポートバス上で変化し、クロック切換えが無視され
る。領域がロックされる場合、その走査モジュールは、
チェーンに加えられれず、テストポートの共有シフトレ
ジスタ(SSR)ビットを通じてバイパスされる。LO
CK信号は、装置の現在のクロック発生モードをロック
する。
【0095】XDS51上のソウトウェア動作は、ロッ
クインさせるコードとは相違するテストポートに供給さ
れる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に入
るようにする。
【0096】
【表1】 ここで、クロック切換えの動作を説明するタイミング図
である図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状態からの遷移を同時に行うこ
とが出来ることである。
【0097】以下のルールに従う。 1.クロック変化は、テストポート内のラッチされたコ
ードに基づく。 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に対して詳細に説明する。
【0098】制御走査動作(SCTL)は、SSR走査
経路を経てモジュール走査イネーブル(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信号は、走査データ動
作には用いられない。
【0099】パワーダウン パワーダウンの三つの方法は、以下のようにして集積回
路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及びアクティブクロックオフ要求(OFFRE
Q)を受信する場合、テストポートは、クロック(LM
ロー及びLSハイ)を遮断すると共に、OFFACKを
主張することによって、その要求を行う。OFFREQ
が不作動状態、又は、FLCK_REQが作動状態であ
る場合、クロックが再度イネーブルされ、OFFACK
が主張されない。パワーダウン論理は、マイクロプロセ
ッサ1に、分析及びCPU領域を遮断する機能を付与す
る。第2のケースでは、EiP_SET又はIP_SE
T入力を、マイクロプロセッサ1が再主張クロックを使
用したい信号割込み状態に対して用いることが出来る。
マイクロプロセッサ1の設計は、CPUがパワーダウン
する間に必要に応じて他の全ての素子を停止させるよう
にする。
【0100】 表34.パワーダウンに関連する信号 信号 I/O 説明 PDREQ メガモジュール入力 CPU及び分析テストポートに対 するOFFREQの駆動 PDACK メガモジュール出力 CPU及び分析テストポートに対 するOFFACKのAND OFFREQ テストポート入力 テストポートがイナクティブFC LK_REQを受信すると、領域 に対する全てのクロックを遮断す ると共に、OFFACKがアクテ ィブであることを主張する。 OFFACK テストポート出力 テストポートがOFFREQに対 するLM遮断キューを有すること を表す。 EIP_SET メガモジュール出力 (全ての必要なIE,GIE,N MIE,PRI及びAIE状態に よって)イネーブルされた割込み を表す。 IP_SET メガモジュール出力 IPビットがセットされたことを 表す。
【0101】メガモジュールの全てのSRLは、走査可
能であり、三つのテストポート領域中の一つ又は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テストポートとの間の信号を規定する。
【0102】 表35.CPUテストポートインタフェースに対するCPU領域 名称 説明 EMURDY エミュレーション論理及びテストポート制御からの内部 RDY成分 CPU_RDY (メガモジュール入力からの)内部RDYへのEMUR DYの追加を表す。CPU_RDYによって、全てのC PU領域のSRLが次のクロック中に状態を維持するよ うにする必要がある。 CPU_STATE CPUテストポート状態。 図25は、既に説明したようなエミュレーションに対す
る停止の相違するケースを説明するタイミング図であ
る。この説明はテストポートが停止状態になることを示
すが、他の実施の形態に対して、テストポートを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に
示すように、以下の動作が発生する。
【0103】ERDY_DC信号は、全DCフェーズ中
外部でローにセットされる。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信号
を発生することが出来る。
【0104】図27は、停止、割込み及びリセットの相
互作用を説明するためのタイミング図である。図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に到達する(図27)
までアクティブに設定されない。図28は、テストポー
トによって要求されるテスト停止を示すタイミング図で
ある。テストモード(ATPG_DEVM=1)の際
に、CPUはCPUポートに要求されたテスト停止に応
答するCNTLからHALTに遷移するテストポートに
対応して直ちに停止する。これは、割込み処理の存在に
関係なく同様に動作する。エミュレーション経路制御 再び種々のエミュレーション制御及び状態ビットを要約
する表28を参照して、ここで以下のエミュレーション
ビット:EPDN,EPUP,ECTL及びEUPLに
ついて詳細に説明する。エミュレーションパイプダウン
(EPDN)ビットは、以下のような結果となるエミュ
レーション停止を中止する。ディスエーブルされた別の
フェッチ:PASはディスエーブルになる。したがっ
て、これ以後におけるプログラムフェッチは開始されな
い。しかしながら、以前に要求されたフェッチは、終了
を許容すると共に、プログラムフェッチ回路10aに配
置されたプログラムデータ入力バッファPDATA_I
にロードするように許容される
【0105】まだE1で中止されない実行パケット:実
行パケットが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に走査して動作を中止する。
【0106】図28は、「パイプダウン」手順と称す
る、パイプラインを停止すると共に、経路内の種々のレ
ジスタ成分を状態としてセーブする手順の停止のシーケ
ンスを説明するためのタイミング図である。終了した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
によってディスエーブルされたままである。
【0107】図30は、既に説明したパイプダウン手順
中セーブされた種々の状態の各々を回復することによっ
て全伝送路状態を「パイプアップ」手順で回復する方法
を示すタイミング図である。この図は、制御の際にXD
Sによって挿入された全ての実行パケットが伝送路に流
れると仮定し、伝送路の全てのフェーズにNOPを含
む。この状態は、命令レジスタにNOPを充てんすると
共に、伝送路の他の命令が終了を繰り返すことを許容す
ることによって手動で達成される。再走査後、中止され
たフェーズは、セーブされた状態から終了することを許
容される。他の全ての状態は、以前のサイクルから継続
する。サイクル2において、データメモリストローブが
ディスエーブルされるため、データメモリ動作は好適に
は再実行されない。E5の始端(E4の終端)でラッチ
された入力ロードデータを、XDSによって走査する必
要がある。したがって、好適にはパイプダウンの全シー
ケンス、エミュレーション及びパイプアップが、図1の
データ処理システムに余分なメモリ、すなわち、I/O
サイクルを必要としない。以下、伝送路再開の制御の際
にXDSが実行する動作のシーケンスについて説明す
る。
【0108】1.時間370のサイクル0:フェッチパ
ケット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にセッ
トする。これは、割込み、分析及びフェッチを再度イネ
ーブルにする。ソフトウェアブレークポイント(SWB
P)は、表10に示したようにSWBPを表す“000
1”のコードを有するターゲット命令のクレッグ/z領
域を置換し、かつ、セーブすることによってセットされ
る。この領域は、伝送路のDCフェーズ中にデコードさ
れる。“0001”にデコードすると、ブレークポイン
ト動作をトリガし、XDS 51を求めて、既に説明し
たパイプダウン及びパイプアップ手順を実行することに
よってデバック又はエミュレーション機能を実行する。
デバック又はエミュレーション動作を終了すると、XD
Sは、領域の関連のクレッグ領域(フィールド)を、そ
の元の値にリターンすることによって、E1中パイプラ
インのSWBP命令を置換する。これに加えて、SWB
P_DECSRLが、デコードされたSWBPによって
セットされる。XDSは状態としてSWBP_DEC
(図20)を使用する。伝送路のSWBPを適切なクレ
ッグ領域に置換すると、XDSはSWBP_DEC S
RLをクリアして、他のSWBPをデコードすることが
出来る。本発明の他の態様によれば、デバッグ機能を、
ソフトウェアブレークポイント命令に応答して実行し、
通常の伝送路の動作を、SWBPに変換される命令を再
フェッチすることなく再開する。好適には、追加の記憶
サイクルは、図1のデータ処理システムで実行されな
い。
【0109】再度、図30を参照する。CPUがエミュ
レーション停止シーケンスによって中止されると共に、
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領域が停止された後にのみ停止する必要が
ある。
【0110】図31A,31B,32A及び32Bは、
既に説明したようにエミュレーション及びデバッグを通
じて用いる種々のレジスタを図示する。これらは分析制
御レジスタ(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ビット領域(フ
ィールド)の機能を説明する。
【0111】 表36.ACRビットフィールド 名称 機能 STRAP STRAP=0は、モニタプログラムに対するXDS の存在を表す。これは、MTAP16からSTRP_ DEVMによって供給される。記憶は要求されない。 A FUNC 分析テストポートがFUNC状態にあるときに1であ る。これ以外では0である。記憶は要求されない。 PRI PRI=1の場合、AINTは、最高プライオリティ (非リセット)割込みであり、GIE又はNMIEを 通じてマスク不可能である。AIEは全ての非リセッ ト割込みをディスエーブルする。 PRI=0の場合、AINTは最低プライオリティ割 込みであり、GIE又はNMIEを通じてマスク可能 である。AIEはAINTのみディスエーブルする。 AINTSUSP ORターム中の一つをSUSPENDにする。分析割 込みによるAINTSUSPの自動的な書込みは、ユ ーザ書込みを越えるプライオリティを有する。 RSTOCC− 発生したリセット。リセット割込みを行うことによっ て0にセットする。1のユーザ書込みによってセット することが出来る。0の書込みは影響を及ぼさない。 ACRWE ACR書込みイネーブル。ACRの他の全ての他のビ ットは、ACRWE=1の場合、MVC書込みによっ てのみ影響が及ぼされる。AINT又はMSGINT を行うことによって自動的に1にセットする。また、 ユーザによって0又は1として書き込むことが出来る 。 MSGSW 1の書込みは、1クロックパルスをCPU境界のMS GSW出力に送信する。このビットは、記憶を行わな いで0として読み出される。パルスを、(1サイクル でない)1クロックとしてメガモジュール領域に発生 させる。 MSGFLG MSGFLG信号の状態をMTAPにセットする。 MSGERR 1は、分析走査が進行する間(MVCを通じて)発生 したADRの最後のCPU読出し又は書込みを示す。 連続的な読出し又は書込みによって0にセットする。 それ以外では0。 CPU_EMUC MTAPを送信して、メガモジュール境界のEMUO /Iピンの機能を構成する。 EVENT この領域は、どのイベントを分析イベント(EMU0 IN,EMU1IN,SEE,PABP,CYC,X AINT及びFPX)によって発生させるかを支配す る。それに加えて、イベント領域を、認識すべきSW Iに対して10にセットする必要がある。 00−ディスエーブルにトリガする分析イベント。 01−ディスエーブルにトリガする分析イベント。ユ ーザは、ディスエーブルされたACRを書き込む。 10−AINTをトリガするためにイネーブルされた 分析イベント。 11−停止をトリガするためにイネーブルされた分析 イベント。この場合は停止及び割込みをトリガしない XAINT及びCYCを除く。XDSが存在する(S TRAP=0)の場合、停止はイネーブルされるだけ である。これも、ACRに対するユーザ書込みをディ スエーブルする。 SWI_EVT 1の値は、AIPがSWIによってセットされたこと を表す。0の書込みによってクリアされる。1の書込 みによって影響が及ぼされない。イベントが再び発生 するまで再度セットされない。自動的な書込みは、ユ ーザ書込みより上のプライオリティを有する。このビ ットは、AINTが行われるまでセットされない。 XAINT_EVT 1に対する値は、AIPがXAINTによってセット されたことを示す。0の書込みによってクリアされる 。1の書込みによって影響を及ぼさない。再びイベン トが発生するまでセットされない。自動的な書込みは ユーザ書込みより上のプライオリティを有する。EE S領域(表37参照)。 EMUOIN EES EMU0INイベントイネーブル及び状態。イベント は、イナクティブによってEMU0IN入力のアクテ ィブ遷移にセットする。 EMU1IN EMU1INイベントイネーブル及び状態。イベント は、ESSイナクティブによってEMU1IN入力の アクティブ遷移にセットする。 SE EES SEイベントイネーブル及び状態。イベントは、イナ クティブによってSEE入力のアクティブ遷移にセッ トする。 CYC EES サイクルイベントイネーブル及び状態。イネーブルさ れた場合、イベントは、B ARPのターゲットがE 1を終了した後次のサイクル境界上でセットする。 PABP EES プログラムアドレスブレークポイントイベントイネー ブル及び状態。イベントは、プログラムアドレスブレ ークポイント整合によってセットする。 FPX EES 浮動小数点衝突イベントイネーブル及び状態。イベン トは、5章で説明した浮動小数点リソース衝突中の任 意のものによってセットする。メガモジュールがこれ ら衝突に出会うことになる(すなわち、2重精度の浮 動少数点をサポートする)場合のみ実行される。それ 以外の場合では保留されると共に、0として読み出さ れる。 reserved 0として読み出される。16 STRP_DEVM(=0)を、エミュレーション
の存在を表すためにEMU_DEVM(=1)の代わり
に使用し、その結果、このビットを、ユーザ及びこれら
の間の任意のテストモードによって通常の動作で評価す
ることが出来る。
【0112】 表37.イベントイネーブル及び状態(EES)領域の説明 ビット領域 ビット領域 読出し値 0 イネーブル 1にセットする場合、分析イベントをイネーブル にする。 1 状態 イベントが発生した場合には1。MVCがこのビ ットに0を書き込むとイベントをクリアする。M VCの1の書込みは影響を及ぼさない。自動的な 書込みはプライオリティを有する。 図31Bは、分析テータレジスタ(ADR)391を説
明する。ADRの最初から30ビットを、伝送路フェー
ズ(パイプライン段)DCのプログラムアドレスとの比
較に用いて、プログラムアドレスブレークポイントを発
生させる。このレジスタは、分析領域にあり、メッセー
ジ通過に用いる。分析走査中のこのレジスタの読出し
は、Oをリターンし、ACRのMSGERRビットをセ
ットする。分析走査中の書込みに影響を及ぼさず、MS
GERRビットをセットする。他の任意の読出し又は書
込みはMSGERRビットをクリアする。
【0113】図32Aは、分析割込みリターンポインタ
(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へ
の)データメモリアップロード。
【0114】図32Bは、データストリームをサポート
するのに用いられるデータストリームレジスタ393を
図示する。このCPU制御レジスタは、CPUレジスタ
ファイルをMTAP(STRM_I/O)からデータス
トリームバスに接続する。このレジスタを、書き込まれ
たものを読み返すような記憶に用いることが出来ない。
データストリームプロセスを、表38〜42を参照して
詳細に説明する。フェッチを防止するために、XDSは
ECTLビットをセットしてフェッチをディスエーブル
にする。XDSは、適切なフェッチパケットをPDAT
A_Iにロードする。このフェッチパケットは、STR
EAM CPU制御レジスタを通じてアクセスされるよ
うにデータストリームバス間(STRM_STとSTR
M_LDとの間)の必要なデータ移動を実行する。(3
2番目のビットごとの)新たなデータワードの走査に応
答して、CPUを1サイクルステップさせる。CPU_
DONEがサイクルのつぎのステップの前で受信されな
い場合、MTAPはこのエラー状態をラッチする。この
場合、XDSは、ストリームプロセスの終了に応答して
発生したストリームエラーを検出することが出来る。M
TAP内のデータ移動及びエラー検出の管理の詳細を後
に説明する。好適には、命令フェッチが禁止されている
ため、同一フェッチパケットをストリームプロセスの持
続時間中に実行する。表38及び表39は、データポー
ト2及び1上のデータストリームデータダウンロードを
制御するフェッチパケットをそれぞれ示す。両データポ
ートに対する例を示す。その理由は、マイクロプロセッ
サ10は物理的に切り離されたメモリスペースに対する
二つのポート書込みを行うことが出来るためである。両
ケースにおいて、オペランドとしてのSTREAMレジ
スタを有するMVC命令を、ストリームデータのB及び
Aレジスタファイルへの移動に用いる。データポート2
に対して、XDSは、第1STWに対する初期データ値
を(B1の)レジスタファイルに走査する必要がある。
データポート1ダウンロードに対して、STREAMを
最初にBレジスタに移動し、その後Aレジスタに移動さ
せる必要がある。その理由は、MVCはAレジスタを直
接ロードすることが出来ないためである。この場合、X
DSは、最初の二つの値(A1及びB1)でレジスタフ
ァイルを走査する必要がある。好適には、マイクロプロ
セッサ10は、表38及び表39のMVC及びSWTの
ような種々の命令の組合せを並列処理で実行して、オー
バヘッド時間を最小にすることが出来る。
【0115】 表38.データストリームデータダウンロード(データポート2)に対するフェ ッチパケット MVC S2 STREAM B1 ‖ STW .D2 B1, *B0++ MVC .S2 STREAM, B1 ‖ STW .D2 B1, *B0++ MVC .S2 STREAM, B1 ‖ STW .D2 B1, *B0++ MVC .S2 STREAM, B1 ‖ STW .D2 B1, *B0++ 表39.データストリームデータダウンロード(データポート1)に対するフェ ッチパケット MVC .S2 STREAM B1 ‖ MVC .L1X B1, A1 ‖ STW .D1 A1, *A0++ ‖ NOP MVC .S2 STREAM, B1 ‖ MVC .L1X B1, A1 ‖ STW .D1 A1, *A0++ ‖ NOP
【0116】表40及び表41は、データポート2及び
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
【0117】表42は、データストリームプログラムダ
ウンロードを制御するフェッチパケットを示す。データ
ダウンロードのように、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
【0118】キャッシュサポート 以下のことを許容する制御状態レジスタ(CSR)のデ
ータキャッシュ及びプログラムキャッシュに対する相互
に独立した制御がある。 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(ロード)の命令の結果。 モニタに基づくデバッガにおいて、プログラマは単一割
当てを用いる必要がある。また、全ての命令を順に実行
するために明らかにする必要がある。
【0119】例えば、図33において、実行パケット
(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サイクルを継続するように許容される。その後、エミ
ュレーション停止シーケンスはそのまま全部が再度発生
する。
【0120】一般的に、実行パケット又は実行パケット
のグループは、ハイレベル言語(HLL)ステートメン
トでは1対1に基づいて一致しない。以下のアプローチ
が、HLLステートメント間で可視性を提供するために
利用できる。 1)HLLコンパイラは、順番に終了する意外な結果
(side−effects)を発生させるコードを発
生させることが出来る。しかしながら、これは、高性能
コードを達成することを思い切って禁止する。また、こ
の制限は、順番通りでない実行が許容されるときにのみ
発生する問題がある。 2)XDSは、複数の停止を実行することが出来ると共
に、特別なHLLステートメントの結果を隔離すること
が出来るように走査する。オブジェクトのデバッグ情報
を嵌め込む新たな方法を発展させて、この方法を容易に
する必要がある。それに加えて、(アッセンブリ及びH
LLの両方の)混合モードディスプレイにおいて、どの
アッセンブリ命令がディスプレイに見えるような伝送路
のどのフェーズを終了するかを示す方法を発展させる必
要がある。この方法の不都合は、ユーザが新たな記憶位
置又は表示用の記号値を要求することが出来ないおそれ
である。このような情報は既に消失している。その理由
は、その値が有効であるときを超えて一部の処理を実行
した場合があるためである。両解決は、この章の現在の
エミュレーションの記載を用いると実現可能である。プ
ログラムメモリのSWI命令の適切な命令へのソフトウ
ェア置換を、ユーザのモニタプログラムによって行う。
割込みがイネーブルされると共に、SWIが、割込みを
中止する最高のプライオリティである場合、これはSW
IがDCにあるときに行われる。より高いプライオリテ
ィの割込みがある場合、SWIは、割込みからのリター
ンに応答して再度フェッチされる。したがって、再度出
会うことになる。SWI−認識は、この認識が取り出さ
れた分岐の遅延スロットに存在することによって、すな
わち、AINTがイネーブルされない場合に延期され
る。 メガモジュールテストアクセスポート(MTAP)
【0121】ここでMTPAが詳細に説明される。本発
明の態様は、ここに引用される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)パ
ターンの適用をサポートする。機能テストパターンはエ
ミュレーション能力を使用してロード、実行およびデバ
ッグできる。
【0122】図34はメガモジュール300からマイク
ロプロセッサ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の外部にあるメガモジュール内の機能の
実行制御とスキャンアクセスのみを提供する。実時間エ
ミュレーションサポートは、プロセッサが割込みおよび
多重タスクを引き続きサービスしている間プログラマモ
デルの実行制御と可視性を提供する。実時間サポートは
またアプリケーションによるデバッガを通じてもアクセ
ス可能であり、遠隔テスト/エミュレーション制御装置
に接続しない組込型解析機能の使用を含む。
【0123】さらに図34を参照すると、メガモジュー
ルテストアクセスポート(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)の急速な初期化を保証するために提供さ
れる。
【0124】これらの信号間の関係は、ここに引用され
た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仕
様書に定義されている。この演算コード空間は現時点で
は部分的にのみ定義され、このグループの定義されない
演算コードはすべて将来の使用のために予約される。こ
こでこのグループの任意の演算コードを公衆演算コード
と呼ぶ。
【0125】本発明の一態様によれば、0x20−0x
2Fからの定義されないJTAG演算コード空間の一部
がエミュレーション特定使用のために予約される。これ
らの演算コードは公衆演算コードと呼ばれる。このグル
ープの中の定義されない演算コードはすべて将来のエミ
ュレーション使用のために予約される。0x20−0x
2Fの中の演算コードはデータスキャンパスを選択する
ためにエミュレーションおよびテストコマンドとして定
義される。JTAG状態マシンがJTAG SHIFT
_DR状態(選択されたデータレジスタをシフト)にあ
るとき、演算コードはデータスキャンパス選択として利
用される。JTAG状態マシンがJTAG IDLE状
態にあるときは同じ演算コードがコマンドとして利用さ
れる。JTAG状態をDTP制御状態にマップするテス
トモードでは、JTAG演算コードはまた制御コードを
DTPに直接適用するためにも利用される。演算コード
のこうした3つの使用法の各々は互いに分断されてい
る。この文書はそれらを独立して論じる。
【0126】図35はMTAPスキャンパス編成の構成
図である。エミュレーション/テストスキャンパスが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)を保持するために使用される。MS
ENBビットはすべてのDTPデータモジュールに対し
て存在する。MSENBビットを1にセットすると、モ
ジュールのDTPがアンロックされDTP_DATAパ
スがスキャンされるとき(SHIFT−DR)関連する
DTPデータがDTP_DATAスキャンパスに追加さ
れる。 DTP_SDAT DTPスキャンデータ。このス
キャンパスはすべてのDTPのスキャンモジュールへの
アクセスを提供する。このパスには各DTP内のすべて
のスキャンモジュールへのモジュールバイパスビットが
含まれる。DTPスキャンモジュールは、モジュールの
DTPがアンロックされモジュールのMSENBビット
が設定される場合それらのバイパスビットの後DTP_
SDATスキャンパスに対してイネーブルである。別言
すれば、このパスの長さは現在ロックされていない領域
に設定されたMSENBビットの数によって変化する。
それらの領域がアンロックされそれらのMSENBビッ
トがDTPスキャン制御レジスタに設定されるならば、
1からすべてのDTPスキャンモジュールが同時に追加
される。DTP_SDATパスのスキャンを試みる前
に、DTPモジュールがスキャンされるすべての領域に
ついてMTAP305を使用してクロックをUCLKか
らTCLKに切換えなければならない。このパスに関連
する専用スキャンの考察については10.2.6節を参
照されたい。 EVT_CNTR イベントカウンタ。このスキャ
ンパスにはすべてのMTAP305のカウンタのSRL
が含まれる。 DATA_STRM データストリーム。このスキャ
ンパスはデータストリームスキャン操作をサポートす
る。 SEA_SCTL SE解析スキャン制御レジス
タ。このレジスタはSE解析DTPのモジュールスキャ
ンイネーブルビット(MSENB)を保持するために使
用される。SEのMSENBレジスタはメガモジュール
DTPのMSENBレジスタと同一である。 SEA_SDAT SE解析スキャンデータレジス
タ。このスキャンパスはSE解析DTPのスキャンモジ
ュールへのアクセスを提供する。SEのDTPサポート
はメガモジュールDTPと同一である。
【0127】JTAGデータパス制御 さらに図35を参照すると、スキャンデータはJTAG
SHIFT_DR状態の間選択されたデータシフトレ
ジスタを通じてシフトされる。データシフトレジスタは
MSBをLSBにシフトし、シフトレジスタのLSBは
第1SHIFT_DR状態の間TDOに出力される。T
DIからシフトレジスタにシフトされたデータは、転送
されたデータビットの静的数値が必要な場合シフトシー
ケンスの終了時に並列保持レジスタに転送される。並列
保持レジスタは影レジスタまたはその保持レジスタ長の
影ビットと呼ばれる。MTAP305を実現するにはプ
ロセッサエミュレーション機能とのインターフェースを
有する影ビットとシフトレジスタビットのミックスを使
用する。シフトレジスタビットが直接使用されるとき、
データシフトレジスタのシフトはビットの最終使用に関
係なくなされる。JTAG状態のデータレジスタグルー
プは、SELECT_DR状態がCAPTURE_DR
状態に移行するとき入力され、UPDATE_DR状態
の実行が完了するとき終了する。この状態のグループ
は、スキャンデータレジスタ状態グループがトラバース
される間、JTAG命令レジスタ中に保持される演算コ
ードによって選択される特定データパスに割り当てられ
る。この状態グループにはパス特有の重要性を有する3
つの状態が含まれる。CAPTURE_DR、SHIF
T_DRおよびUPDATE_DRというこれらの状態
はJTAG命令レジスタに含まれる演算コードと結合さ
れてスキャンデータを管理するパス特定ディレクティブ
を与える。CAPTURE_DR状態は、シフトシーケ
ンスの開始時に情報をデータシフトレジスタに選択的に
ロードする。この情報は、パス特定データシフトレジス
タがSHIFT_DR状態によって進められる際チップ
のTDOピンで見える。UPDATE_DR状態は、デ
ータシフトレジスタにシフトされたデータをJTAG
IR演算コードによって示された適当な並列データレジ
スタに転送する。大部分のMTAP専用データパスはす
べてのデータパスビット位置についてCAPTURE_
DR機能の実現を必要としない。データパス全体がCA
PTURE_DR機能の実現を必要としない場合もあ
る。DTPデータスキャンパスの場合特にそうである。
専用データパスにはデータシフトレジスタを共有するも
のもある。この実現の帰結はデータが修飾されたUPD
ATE_DR信号によって異なった影レジスタまたはビ
ットに選択的に転送される単一のデータシフトレジスタ
である。このアプローチはDTP内でDTP_SCTL
およびDTP_SDATスキャンパスの両方をサポート
する単一の物理シフトレジスタを利用するために利用さ
れる。この共有アプローチによって、パスのCAPTU
RE_DR状態機能のマージも可能になる。上記で論じ
た物理実現オプションはすべて、パスを制御するソフト
ウェアから見たときデータパスの設定または動作を変更
するものではない。JTAG TAPがSELECT_
DR状態を通じて遷移するとき選択されたデータスキャ
ンパスとキャプチャおよびアップデートされたレジスタ
はJTAGIR中のコマンドに依存する。データをDT
Pに向けるDTPデータスキャンコマンド以外のIRコ
マンドは、アップデートと、場合によってはキャプチャ
信号を必要とする(JTAG TAP CAPTURE
_DRおよびUPDATE_DR状態に基づく)。DT
P_SDATおよびDTP SCTLスキャンパスはD
TPを通じて共通データシフトレジスタを共有する。D
TP SCTLパスの場合CAPTURE_DR状態と
結合したパス選択信号によって共通シフトレジスタがM
SENB影ビットからロードされる。スキャンの完了後
(SHIFT−DR)、UPDATE_DR状態によっ
て共通シフトレジスタ中の新しい値が固有のMSENB
影レジスタに転送される。DTP_SDATパスの場
合、DTPの共通シフトレジスタがバイパスビットとし
て利用される。他のすべてのスキャンパスは直接スキャ
ンされる(DTPを通じてスキャンされない)。表44
は各スキャンパスへの要求の詳細を示す。
【0128】 選択信号SCTL_SEL、SECR_SEL、SCT
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状態を通じて遷移するとき、
IRレジスタはJTAGデータスキャンパスに接続され
る。CAPTURE_IR状態はシフト・シーケンスの
開始時に情報を命令シフトレジスタにロードする。キャ
プチャされたデータはエミュレーション制御レジスタ
(ECR)中の状態選択(STSL)ビットに依存する
(図38参照)。この情報は、命令シフトレジスタがS
HIFT_IR状態を通じて進む際チップのTDOピン
で見れる。SHIFT_IR状態に入ると、DPC(デ
ータパス制御装置)はスキャンパスがすべてのTCLK
にシフトすることを可能にする。命令シフトレジスタは
MSBからLSBにシフトされ、LSBキャプチャ情報
レジスタは第1SHIFT_IR状態でTDOに出力さ
れる。この機構はエミュレーションおよびテストステー
タスをロードおよびエクスポートするために使用され
る。UPDATE_IR状態はチップにシフトされたデ
ータ(命令シフトレジスタのコンテント)をIRの影ビ
ットに転送するために使用される。
【0129】図36Aはストラップステータスが選択さ
れた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を参照されたい。
【0130】表45.MTAPステータス STRAP ストラップ装置モジュール。
このビットはECRの装置モードビットから設定され
る。設定されるとメガモジュールがストラップモードに
あることを表示する。このビットはモードが(エミュレ
ーションまたはテストからストラップに)不意に切換え
られているかどうか判断するために使用される。 TCLK_SEL 選択されたテストクロック。
このビットは1のとき、テストクロック(TCLK)が
すべてのアンロック領域に切換えられていることを示
す。TCLKがイネーブルのとき、アンロック領域はT
CLKレートでデータスキャンを行える状態にあり(ス
キャンクロック切換は後で説明される)、かつ/または
TCLKレートで機能クロックを動作させている。TC
LK_SELステータスビットの状態はラッチされ、ク
ロックの切換が完了するまで(SWINPROGがイナ
クティブ)修正されない。 IRBUSY 命令レジスタが使用中。この
ビットはJTAGインターフェースが他の演算で使用中
であることを示す(詳細は10.2.4節を参照)。J
TAG IRは影付きなので、IRはスキャンできるが
(SHIFT_IR)IRBUSYビットがクリアされ
るまでアップデート(UPDATE_IR)できない。
このビットはJTAG TLR状態の後論理0状態であ
り、MTAPコマンドが出されるまで0のままである。 SYNC_ERR 同期スキャンエラー。このビ
ットは、MTAP305モジュールがスキャンが開始で
きない状態にあるときデータスキャンが試行されたこと
を示す。スキャンは中止されクロックは切換えられな
い。このビットはスキャンとCSMスティミュラスの両
方をブロックする。このステータスビットはECRをロ
ックすることによって消去される。 DONE_TGLE 実行済みトグル。このビット
は、最後のIR 停止ステータススキャン以来CPU_
DONEがイナクティブ状態からアクティブになったこ
とを示す。CPU_DONE信号の立上がりがDONE
_TGLE SRLによってキャプチャされる。停止ス
テータスが選択されるとDONE_TGLE信号はCA
PTURE_IR JTAG状態の間IRシフトレジス
タにロードされ消去される。 RST_TGLE リセットトグル。このステー
タスビットは最後のIRエラーステータススキャン以来
RST_TKNがイナクティブ状態からアクティブにな
ったことを示す。RST_TKN信号の立上がりがRS
T_TGLE SRLによってキャプチャされる。エラ
ーステータスが選択されると、RST_TGLE信号は
CAPTURE_IR JTAG状態の間IRシフトレ
ジスタにロードされ、RST_TGLE SRLは消去
される。 MINT_TGLE メッセージ割込みトグル。こ
のステータスビットは、最後のIR実時間ステータスス
キャン以来MINT_TKNがイナクティブ状態からア
クティブになったことを示す。MINT_TKN信号の
立上がりがMINT_TGLE SRLによってキャプ
チャされる。実時間ステータスが選択されると、MIN
T_TGLE信号はCAPTURE_IR JTAG状
態の間IRシフトレジスタにロードされ、MINT_T
GLESRLは消去される。 AINT_TGLE 解析割込みトグル。このステ
ータスビットは最後のIR実時間ステータススキャン以
来AINT_TKNがイナクティブ状態からアクティブ
になったことを示す。AINT_TKN信号の立上がり
がAINT_TGLE SRLによってキャプチャされ
る。実時間ステータスが選択されると、AINT_TG
LE信号はCAPTURE_IR JTAG状態の間I
Rシフトレジスタにロードされ、AINT_TGLE
SRLは消去される。 MSGSW_TGLE メッセージ切換トグル。この
ステータスビットは最後のIR実時間ステータススキャ
ン以来MSGSWがイナクティブ状態からアクティブに
なったことを示す。MSGSW信号の立上がりがMSG
SW_TGLESRLによってキャプチャされる。実時
間ステータスが選択されると、MSGSW_TGLE信
号はCAPTURE_IR JTAG状態の間IRシフ
トレジスタにロードされ、MSGSW_TGLE SR
Lは消去される。 STRY_TGLE ストリーム準備エラートグ
ル。STRY_TGLESRLは前のJTAGコマンド
がSDAT_STRMコマンドのときのみ設定できる。
STRY_TGLE SRLはCPU_DONEがMT
APカウンタのXFER_DATA信号の立上がりでア
クティブでないとき設定される。この条件は、前の1d
/stがCPUのEDDATA1レジスタとの次のデー
タ転送に先立って進められないことを示す。エミュレー
ションエラーステータスが選択されると、STRY_T
GLE信号はCAPTURE_IR JTAG状態の間
IRシフトレジスタにロードされ、STRY_TGLE
SRLは消去される。 STSW_TGLE ストリーム切換エラートグ
ル。STSW_TGLESRLは前のJTAGコマンド
がSDAT_STRMコマンドのときのみ設定できる。
STSW_TGLESRLはECRのTERMフィール
ドのMPSDコードがMTAPカウンタのXFER_D
ATA信号の立上がりのMPSDバスをドライブしない
とき設定される。この条件はUSLKがTCLKとの関
係でゆっくり動作し、データストリーム機能をサポート
しないことを示す。エミュレーションエラーステータス
が選択されると、STSW_TGLE信号はCAPTU
RE_IR JTAG状態の間IRシフトレジスタにロ
ードされ、STSW_TGLE SRLは消去される。 CSM_EXE CSM EXE状態。コード
状態マシンEXE状態ビット(EXE状態がCSMの出
力に適用される場合1)。詳細は図39参照。 CSM_LOCK CSMロック状態。コード状
態マシンLOCK状態ビット。詳細は図39参照。 C1、C0、Ce CSM出力。このフィールド
はDTPに適用されたDSM MPSDコードである。
詳細は図39参照。
【0131】表45はMTAP305によってサポート
される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に関して後で論じられる。
【0132】 表46.コードの説明 コード 説明 0xFF BYPASS。この命令はバイパススキャンパスをイネーブルにす る。このパスは単一シフトレジスタ段階である。これは必要なJT AG公衆演算コードであり、JTAG IEEE1149.1仕様 の7.4節に包含される。 0x20 SDAT_HALT。この命令はDTP_SDATスキャンパスを 選択する。DTP_SDATスキャンパスに関する特殊スキャンの 考察に関しては、「MTAP MPSDコード発生器」に関する後 の節を参照されたい。この演算コードに関連するコマンドは、エミ ュレーション制御レジスタ(ECR)のEXEビットフィールドか らプレロードされたMPSDコード値を使用して、開始MPSDコ ード発生シーケンスをMTAP305のコード状態マシン(CSM )に発行する。追加機能はテストモードで提供される。 0x21 SDAT_CNTL。この命令はDTP_SDATスキャンパスを 選択する。DTP_SDATスキャンパスに関する特殊スキャンの 考察に関してはMTAP MPSDコード発生器に関する後の節を 参照されたい。この演算コードに関連するコマンドは、エミュレー ション制御レジスタ(ECR)のTERMビットフィールドからプ レロードされたMPSDコード値を使用して、開始MPSDコード 発生シーケンスをMTAP305のコード状態マシン(CSM)に 発行する。 0x22 SCTL_HALT。この命令はDTP_SCTLスキャンパスを 選択する。この演算コードに関連するコマンドは各プロセッサのE MUOEN0イベント論理をECRのEMUCビットによって選択 されたイベントがイナクティブ状態に戻るまで禁止しイナクティブ 状態にする。追加機能はテストモードで提供される。 0x23 SCTL_CNTL。この命令はDTP_SCTLスキャンパスを 選択する。この演算コードに関連するコマンドは各プロセッサのE MUOEN1イベント論理をECRのEMUCビットによって選択 されたイベントがイナクティブ状態に戻るまで禁止しイナクティブ 状態にする。追加機能はテストモードで提供される。 0x24 SECR。この命令はエミュレーション制御レジスタ(ECR)ス キャンパスを選択する。ECRパスに関する特殊スキャンの考察に ついては「MTAPコード状態マシン」に関する後の節を参照され たい。この演算コードに関連するコマンドはMTAP305に指示 してDTP(CSM_LOCK)に適用される現行MPSDをロッ ク(「フリーズ」)する。コードは演算コードSDAT_HALT またはSDAT_CNTLによって発生するコマンドが発行される までロックされたままである。このロックプロセスはECRのスキ ャンの前に必要である。CSM_LOCKコマンドを有効にするに はJTAG IDLE状態に入らなければならない。SYNC_E RR MTAPステータスビットもCSM_LOCKコマンドが有 効になると消去される。 0x25 SMM_ID。この命令は、この命令のためにIDバス値と共にC APTURE_DRによってロードされるEVT_CNTRスキャ ンパスを選択する。IDバスはCPUの制御ステータスレジスタ( CSR)の16MSビット中の修正および装置タイプ情報からなる 。このデータはCSRがプロセッサによってアクセス可能なときス キャン可能でなければならない。この命令に関連するコマンドはな い。 0x26 SEVT_CNTR。この命令はMTAP305のイベントカウン タスキャンパスを選択する。この命令に関連するコマンド(LEV T_CNTR)はカウンタの影ビットをロードする。 0x27 SGABORT。この命令に関連するコマンドはMTAPの開始発 生器を消去する。この命令はバイパススキャンパスを選択する。 0x28 XAINT。この命令に関連するコマンドは解析割込み(AINT )を発生する。この命令はバイパススキャンパスを選択する。 0x29 XMSGINT。この命令に関連するコマンドはメッセージ割込み (MSGINT)を発生する。この命令はバイパススキャンパスを 選択する。 0x2A SDAT_STRM。この命令はデータストリームスキャンパスを 選択する。この命令に関連するコマンドは開始データストリームプ ロセスである。データストリームプロセスは、CSMおよびMTA Pカウンタによって制御されるが、これらは共に正しく設定されな ければならない。 0x30 SEA_DATA。この命令はSE解析データスキャンパスを選択 する。この命令に関連するコマンドはない。 0x32 SEA_CNTL。この命令はSE解析制御スキャンパスを選択す る。この命令に関連するコマンドはない。 注:MTAP305は演算コード0x20〜0x23、0x30、0x32およ び0x24によって選択されたスキャンパスに追加制限を配置する(「MTAP コード状態マシン」および「MTAP MPSDコード発生器」に関する後の節 を参照すること)。明確に識別されないスキャンパスはバイパスパスを選択し将 来の使用のために予約される。
【0133】再び図35を参照すると、バイパスパス4
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は各領域のクロックを制御するよう設計
されている。
【0134】さらに図37を参照すると、メガモジュー
ルテストアクセスポート(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スキャンパスに関するスキャン
制御を発生する。
【0135】さらに図37を参照すると、MPSDコー
ド状態マシン(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で説明される。
【0136】表47.装置モードフィールド MCS メガモジュールクロック選択:
装置モードビットがストラップまたはエミュレーション
に設定されている場合、このビットは機能クロックをU
CLKからTCLKに切換える。逆に、このビットが消
去されると機能クロックはTCLKからUCLKに切換
えられる。切換選択はこのビットの影ラッチによって制
御され、影ラッチがアップデートされるとクロックが切
換えられる。TRST−またはTLR JTAG状態は
このビットを消去し、UCLKを選択する。UCLKが
TCLKに切換えられる場合、すべてのMTAP論理は
オフになる。機能クロックを切換えるとき、すべての領
域テストポートをアンロックし、MCSビットを変更す
る前にPAUSを適用することによって全装置のグリッ
チのないクロック切換を促進するのはエミュレーション
ソフトウェアの責任である。ATPGモードが選択さ
れ、MCSビットが設定されると、テストモードについ
てMTAPのMPSDコードマッピングは禁止される。
すべての領域スキャンチェーンはATPGモードについ
て設定される(すべてのSRLはスキャンパスに多重化
される)。このモードは、ATPGモードの間プロセッ
サの標準JTAG制御を可能にするために利用される。 DEVM[1:0] 装置モード:メガモジュールの
動作モードを定義する2ビット。これらのモードビット
は常にイネーブルである。これら2つのECRビットは
TRSTが発生するとき1になる。表48は装置モード
フィールドを定義する。 EMUC[3.0] EMUピン設定フィールド−こ
のフィールドはEMU0「1:0」ピンとEMU0EN
[1:0]動作モード(共有または専用)をドライブす
るイベントを選択するために利用される。EMU0およ
びEMU1信号の最小パルス幅は5n秒である。表54
はこのフィールドを定義する。 EXE[1:0] MPSD EXEコード−この
フィールドは、領域テストポートに適用するためにMP
SDコード状態マシンによって選択されMPSDコード
発生器に供給される2ビットのMPSDコード(C0、
Ce)からなる。MPSDコードのリストが表50に示
される。このフィールドはTRST−またはTLR J
TAG状態によってFUNCに初期化される。 TERM[1.0] MPSD TERMコード−こ
のフィールドはMPSDEXEコードフィールドと同一
である。 REVT「2:0」 遠隔イベントフィールド−遠隔
イベントフィールドは、CSMがLOCKED状態にな
いとき、MPSDコード状態マシンをEXECUTE状
態(ECRからEXEコードを選択)からTERMIN
ATE状態(ECRからTERMコードを選択)に、ま
たその逆に遷移する条件を指定するために使用される3
ビットである。次のコードはCSMがLOCKED状態
にないことを想定する。CSMはコマンド制御ブロック
によって管理されLOCKED状態を離れてEXECU
TEまたはTERMINATE状態に入る。コマンド
は、存在するとき、REVTモードフィールドによって
指定されるディレクティブをオーバーライドする。表5
1は遠隔イベントフィールドを定義する。このフィール
ドはTRST−またはTLR JTAG状態によって0
00に初期化される。 DLCK[3:0] DTPロックフィールド−DL
CKフィールドはDTP(CPU、解析、メガモジュー
ル、SE)毎の1ロックビットからなる。各ロックビッ
トはそのDTPに経路指定されるロック信号をドライブ
する。各DTPロックビットは、新しいMPSDコード
またはクロックソース情報がロックされない領域に適用
される間、現行状態(MPSDコードおよびクロックソ
ース)がその現行値でロックまたは「フリーズ」されて
いるかどうかを示す。ロックレジスタはシャドウされて
いる。IDLEの間ロックスキャンレジスタビットは影
ロックラッチにロードされる。ロック信号は影ラッチか
らドライブされる。これによってすべてのDTPは同じ
UCLKエッジで新しいロック状態を見ることができ
る。また、ロックはCSMが新しいMPSDコードを適
用し、(必要な場合)クロック切換が完了し、ひいては
DTPが新しいMPSDコードと選択された正しいクロ
ックでロックされた後DTPに適用される。このフィー
ルドはすべてのDTPをロックされない状態にするTR
ST−またはTLR JTAG状態によって0000に
初期化される。STRP_DEVMもロック影ラッチを
消去する。表52はDTPロックフィールドを定義す
る。 STSL[1:0] ステータス選択フィールド−S
TSLフィールドは4つのステータス信号グループの1
つを選択するために利用される。STSLフィールド値
はTRST−およびTLR JTAG状態によって00
にリセットされる。STSLレジスタはシャドウされな
い。表53はこのフィールドを定義する。
【0137】表48.装置モードフィールド 00 ATPGモード−TCLKはメガモジュール全
体にソースを有する。JTAG TAP状態は(MCS
が0の場合)MPSDコード発生器によって直接MPS
Dコードにマップされる。ATPG_DEVM信号はア
クティブにドライブされる。領域のマスタークロックは
HALT、PAUS、SCTLまたはSDAT状態によ
ってゲートオフされる。これはCNTLまたはFUNC
がテストポートに適用されるまでゲートオフされたまま
である。これは、HALTがテストポートに適用される
ときプロセッサがバスのコンテンションまたはキャッシ
ュの状態と無関係に即時停止されることを意味する。 01 エミュレーションモード−MPSDコード状態
マシン530は、DTPシフトコードがDTP_SDA
TおよびDTP_SCTLスキャンパスを選択するSH
IFT_DR TAP状態およびJTAG演算コードか
らMPSDコード発生器によって作成される間MPSD
コード発生器570を通じてMPSD実行コードを発生
する。クロック制御はMPSDコード状態マシン530
によって提供され、MPSDコード状態マシンによって
供給されるMPSDコードに依存する。EMU_DEV
M信号はアクティブにドライブされる。領域のマスター
クロックはPAUS、SCTLまたはSDAT状態によ
ってゲートオフされる。これはHALT、CNTLまた
はFUNCがテストポートに適用されるまでゲートオフ
されたままである。 10 予備 11 MPSDストラップモード−装置モードは、T
RSTが論理ゼロであるかまたはJTAG TAPがT
LR状態を通じて遷移するときこの値に初期化される。
フィールドもECRスキャンを通じてこの状態に設定さ
れる。このモードによってMPSDコード発生器はMP
SD機能RUN(FUNC)コードを各領域に出力し、
機能クロックが選択され、すべての領域がロックされな
い状態になる。STRP_DEVM信号はアクティブに
ドライブされる。装置モードビットはデコードされたモ
ード信号を各領域にドライブする。 表49はMCSビットと装置モードフィールドビットに
基づいてクロック選択テーブルを定義する。
【0138】 表49.クロック選択テーブル 装置モード MCS 機能クロック選択 DTPクロック選択 ATPG 0 TCLK TCLK_SEL ATPG 1 TCLK TCLK_SEL EMUまたはSTRAP 0 UCLK UCLK_SEL EMUまたはSTRAP 1 TCLK TCLK_SEL
【0139】表50.MPSD EXEコード C0 Ce MPSDコード 1 1 FUNC 1 0 CNTL 0 1 HALT 0 0 PAUS 表51.遠隔イベントフィールド 000 CSMは現行状態にある。 001 EVTA(10.2.8節参照)がイナクテ
ィブ状態からアクティブ状態に遷移する場合CSMはT
ERMINATE状態に移行する。 010 EXECUTE状態の1クロック後、CMS
は即時TERMINATE状態に移行する。 011 EVTAがイナクティブからアクティブ状態
に遷移する場合、状態をEXEからTERMに、または
TERMからEXEに切換える。SWBP_DECまた
はABP_DETがアクティブの場合TERMからEX
Eへの遷移は禁止される。 100 CSMはアクティブMTAPカウンタについ
てMTAP_BORROW信号を待ち、TERMINA
TE状態を適用する。 101 MTAPカウンタのXFER_DATA信号
によってCSMがTERMからEXEに1クロックの間
遷移し、その後TERMに戻る。 110 予備 111 予備 このフィールドはTRST−またはTLR JTAG状
態によって000に初期化される。
【0140】表52.DTPロックフィールド XXX1 CPULOCK−CPUロック XX1X ANALOCK−解析ロック X1XX MMLOCK−メガモジュールロック 1XXX SEALOCK−SE解析ロック 表53.ステータス選択フィールド 0 選択されたストラップステータス 1 選択された停止エミュレーションステータス 2 選択された実時間エミュレーションステータ
【0141】
【0142】表54を参照すると、EMUCコードがE
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 CLR1 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が適用されるか、ま
たは現在選択されたクロックが不能(電源オフ)になっ
ていることを保証しなければならない。
【0143】ECR520で影付きおよび影なしのビッ
トが混じっているのは、機能クロック(UCLK)上で
動作する論理を有するMPSDコードと遠隔イベントフ
ィールドの使用に起因する。これらのフィールドはUC
LKによって評価される論理またはレジスタに直接適用
される。テストクロック(TCLK)に関してアップデ
ートされたシフトレジスタビットはUCLKに対して非
同期に変化し、UCLKによって制御された論理に誤っ
た結果を生じる。同期の問題は、ECRシフトレジスタ
がスキャンされる間UCLKによって制御される論理に
よるECRデータの使用を禁止することによって解決さ
れる。この禁止は影なしシフトレジスタビットを使用す
る機能論理の状態をフリーズまたはロックする効果を有
し、機能コマンドの使用を通じてエミュレーションソフ
トウェアによって発生する。この禁止プロセスは同期シ
ャドーイングの代替形態で、テストクロック(TCL
K)によってスキャンされた情報を使用する機能論理が
常に静的な外観を与えることを保証する。ロックプロセ
スはMPSDコード状態マシンの一部であり、MTAP
コード状態マシンを説明する後の節で論じられる。EC
R520は、たとえホストソフトウェアがECR状態を
チェックするのであっても、ソフトウェアがまずCSM
をロックしなければスキャンできない。
【0144】MTAP状態制御およびコマンド制御 再び図37を参照すると、MTAP開始制御論理540
は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_REQ
T)がアクティブにドライブされる。 状態1 START_REQTがUCLKに同期し
(START_REQI)、IRBUSYを設定する。 状態2 START_REQ1が今度はSTART_
REQ2を設定する。この時点でSTART_REQ
T、IRBUSY、START_REQ1およびSTA
RT_REQ2が設定されている。 状態3 START_REQTがSTART_REQ
2によってリセットされる。 状態4 START_REQ1がリセットされる。こ
の時点でIRBUSYおよびSTART_REQ2が設
定され、START_REQTおよびSTART_RE
Q1がリセットされる。 状態5 SWINPROGが誤りの場合、START
_REQ1ロー、START_REQ2ハイおよびST
ART_OKハイの組み合わせがSTARTを発生す
る。 状態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によって示される。
【0145】
【0146】コマンド発生プロセスは、エミュレーショ
ンソフトウェアが第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に示す。
【0147】表57.コマンド制御コマンド CSM_EXE (0x20)このコマンドはC
SMを管理してECRのEXEビットフィールドをMP
SDコード発生器に適用し、LOCKED状態をリセッ
トしてEXECUTE状態に入る。 CSM_TERM (0x21)このコマンドはC
SMを管理してECRのTERMビットフィールドをM
PSDコード発生器に適用し、LOCKED状態をリセ
ットしてTERMINATE状態に入る。 IF_CLR0 イナクティブ状態に復帰する。
EMUI0インターフェースのパルスキャッチャが消去
される。 IF_CLR1 (0x23)このコマンドはM
TAP内のEMU制御ブロックを管理してEMUO1を
ドライブする信号を、イナクティブ状態に復帰するまで
禁止する。EMUI1インターフェースのパルスキャッ
チャが消去される。 CSM_LOCK (0x24)このコマンドはC
SMを管理してLOCKED状態に入るようにするが、
現行のコードは「フリーズ」またはロックされMPSD
コード発生器に適用される。 LEVT_CNTR (0x26)このコマンドはM
TAPカウンタの影ビットのUCLK同期ロードを開始
する。 SGABORT (0x27)JTAG状態マシ
ンがIDLE状態にある間、開始発生器を消去状態に
し、IRBUSYを消去する。 XAINT (0x28)このコマンドはX
AINT信号を、解析割込み(AINT)を発生するC
PU領域にドライブする。 XMSGINT (0x29)このコマンドはX
MSGINT信号をメッセーシ割込み(MSGINT)
を発生するCPU領域にドライブする。 SDAT_STRM (0x2A)このコマンドはデ
ータストリームプロセスを開始する。このコマンドはC
SMを管理してECRのTERMビットフィールドをM
PSDコード発生器に適用し、LOCKED状態をリセ
ットしてTERMINATE状態に入る。またSHIF
T_DRをイネーブルにしてMTAPカウンタを減ら
す。
【0148】MTAPコード状態マシン さらに図37を参照すると、MPSDコード状態マシン
(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コードがロックされない領域に適用されて
いる間に発生する。
【0149】図39はCSM530の構成図である。コ
ード状態マシンは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への切換は、現在のコードがHA
LT、CNTLまたはFUNCで、要求されるコードが
PAUSのとき検出される。TCLKからUCLKへの
クロック切換は現在のコードがPAUSで要求されるコ
ードがHALT、CNTLまたはFUNCのとき検出さ
れる。各種類を別様に処理することによって、すべての
クロック切換が、MPSD PAUSコードが領域に適
用されている間に発生することが保証される。クロック
切換が必要ないとき、コード制御装置600はECRフ
ィールドのロードを選択し、次のCSM状態を決定す
る。コードレジスタ610はクロック選択ビットおよび
CSM状態と共に次のクロックでロードされる。
【0150】現在の値がHALT、CNTLまたはFU
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の発生を禁止する。
【0151】図40は回路を切換える前のブレークであ
るMTAP CSMクロック切換回路620の概略図で
ある。HALTからPAUSへの真理値表が表58に示
され、PAUSからHALTへの真理値表が表59に示
される。
【0152】 ECRスキャンを伴う特別なCSMの考察がここで注記
される。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に示される。
【0153】 表60.CSM符号化 CSM_LOCK CSM_EXE TERMINATE 0 0 EXECUTE 0 1 LOCKED 1 0 LOCKED 1 1 注:上記でCSM_LOCKとCSM_EXEの組み合わせによって示された状 態は決して存在しないが、それが存在する場合はCSM_LOCKがCSM_E XEをオーバーライドすることに注意すべきである。ECRのスキャンを試みる 前にロックされた状態に入らなければならない。SECR命令に関するる表46 を参照されたい。 MTAP MPSDコード発生器 再び図37を参照すると、領域に供給されるMPSDコ
ードは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を供給する。
【0154】両方のMPSD実行コードソースは、DT
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であるこ
とを保証するときのみ発生できる。
【0155】表61、表62および表63はさまざまな
コード発生器ソースの役割を示す。表61はSTRAP
コードの真理値表を示し、表62はエミュレーションモ
ードの真理値表を示し、表63はATPGモードの真理
値表を示す。
【0156】
【0157】 表64.C1、C0およびCeの扱い MTPAリセット ・論理1の2つのECRモードビットから得られたST RAPがFUNCコードを発生し、他のすべてのコード 値をオーバーライドする。 MPSD制御および ・SCAN_C1は、SHIFT_DR状態がTAPに MPSDデータの よって発生し、JTAG命令が0x20〜0x23、0 スキャン x30および0x32のとき論理0に設定される(MP SDデータまたはMPSD制御がスキャンされる)。 ・SCAN_C0は、SHIFT_DR状態がTAPに よって発生し、JTAG命令レジスタが0x22〜0x 23、0X30および0X32のとき論理1に設定され る(MPSD制御がスキャンされる)。 コード状態マシン ・CSM_C0およびCSM_CeはMPSDコード状 態マシンによって発生する。この値はプログラム可能で PAUS(MPSDデータまたは制御互換状態のスキャ ン)、HALT、CNTLおよびFUNCのコードを発 生するために使用される。 ・CSM_C1はSHIFT_DRでないか、MPSD データまたは制御スキャンでないときのものである。 ATPGモード ・MAP_C0は、ECRモードビットがATPGモー ドを指定するときJTAG状態ダイアグラムから発生す る。この信号はSHIFT_DR状態で論理0なので、 SCAN_COとの競合が避けられる。 ・MAP_CeはECRモードビットがATPGモード を指定するときJTAG状態ダイアグラムから発生する 。この信号はSHIFT_DR状態で論理0なので、S CAN_Ceとの競合が避けられる。 ・MAP_C1は、SHIFT_DRでないか、MPS Dデータまたは制御スキャンでないときのものである。
【0158】エミュレーションモードでは、MPSDコ
ード発生器(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上でデータと共にスキャンされる。NP
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である。
【0159】ATPGモードでは、すべてのDTP M
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モー
ド両方の状態デコードを示す。
【0160】 STRAPモードではすべてのECRロックビットはイ
ナクティブにドライブされ、領域が現在の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を適用する。
また、ロックされていないテストポートのみはクロック
が切換えられる。領域がアンロックの過程にあるとき、
クロック切換信号の状態は、アンロックされた領域のク
ロックの状態に一致するものでなければならない。状態
が一致しない場合同期なしのクロックの切換が発生す
る。この状況はソフトウェアによって避けられる。
【0161】図41はMTAPイベント発生回路(EV
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に定義するように発生する。
【0162】 表66.FCLK_REQの発生 IRBUSYアクティブ コマンドが機能クロックを要求する場合FCL K_REQをアクティブにドライブする CSM出力HALT (新しいコードがコマンドによって開始される または中止 場合)IRBUSYがイナクティブになる前に CSMがMPSDコードを適用し、IRBUS YとFCLK_REQをアクティブに維持する CSM状態との間のオーバーラップを生じるこ とが予想される。 ATPGモード FCLK_REQをアクティブにドライブし、 ATPGモードの機能クロックをイネーブルに する。 EMUIイベントアクティブ FCLK_REQがアクティブにドライブされ てラッチされるので、解析モジュールがEMU Iイベントをキャプチャし、解析ホールトがC PUによって処理されるようにする。ラッチさ れたFLCK_REQはIF_CLRコマンド によってTLRに消去される。 メガモジュールがパワーダウン状態にある場合、CSM
がCNTLまたはFUNCを適用するときCPU_DO
NEをイナクティブにドライブしなければならないこと
にも注意されたい。CSMがHALTを適用するときC
PU DONEはアクティブにドライブしなければなら
ない。
【0163】図42は、CSM530に位置するMTA
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ビットフィールドを定義する。
【0164】表67.CMビットフィールドの定義 00 性能プロファイルモード。このモードではカウ
ンタイベント選択(CES[2:0])ビットが、CP
U_DONEがイナクティブの間カウンタを減らすイベ
ントを選択する。カウンタの10ビットすべてはダウン
カウンタとして利用される。カウンタは0x3FFにロ
ールオーバーする。このモードでは、カウンタはTBC
(テストバス制御装置)のイベントカウンタへのスケー
ラとして利用される。MTAP_BORROW信号はE
CRのEMUCビットを通じて選択され、EMUO0信
号にドライブされる。 01 実行制御モード。このモードではカウンタ63
1はEXEがDTPに適用される、EXEを適用するS
TARTから開始される機能クロック毎に減らされる。
カウンタの10ビットすべてはダウンカウンタとして利
用される。MTAP305_BORROW信号が発生す
るとカウンタは不能になる。ECRのREVTフィール
ドが100に設定されると、CSMはMTAP_BOR
ROWを待ってTERMINATE状態を適用する。こ
のモードによってEXEはN+1機能クロックについて
適用される。 10 データストリーミングモード。このモードでは
イベントカウンタ631のシフトレジスタの5LSBが
カウンタを形成するために使用される。カウンタはSH
IFT_DRがアクティブなTCLK毎に減らされる。
カウンタはSDAT_STRM JTAGコマンドによ
ってイネーブルになる。カウンタの5ビットのみがダウ
ンカウンタとして利用される。このモードではカウンタ
は0x1fにロールオーバーする。0x01から0x0
0への遷移でカウンタはXFER_DATA信号を発生
する。この信号はCPU領域にドライブされる。ストア
命令がCPUのIRにある場合、XFER_DATAが
DDATA_02レジスタをスキャンレジスタ(EDD
ATA2)からロードするために利用される。ロード命
令がCPUのIRにある場合、XFER DATAがD
DATA I2レジスタからスキャンレジスタ(EDD
ATA2)をアップデートするために利用される。EC
RのREVTフィールドが101に設定される場合、C
SMは1つのUCLKについてEXE(CNTL)を適
用し、その後TERM(E1ALT)に戻る。CAPT
URE_DRの間、シフトレジスタには他のモードと同
様UCLKカウンタの値はロードされない。
【0165】表68.CESビットフィールドの定義 000 カウンタを減らすためにUCLKを選択 001 サイクル毎に1つカウンタを減らすためにS
TALL信号イナクティブを選択 010 パイプラインが機能停止するクロック毎にカ
ウンタを減らすためにSTALL信号アクティブを選択 011 割込みパイプラインコンテキスト切換の間カ
ウンタを減らすためにICNTX信号を選択 100 各割込みについてカウンタを減らすためにJ
ACK信号を選択。割込みカウントを提供 101 各分岐命令が選択される毎にカウンタを減ら
すためにBRTK信号を選択。分岐カウントを提供 110 E1パイプライン段階中で選択される各NO
P毎にカウンタを減らすためにNOPを選択。NOPカ
ウントを提供。 111 各実行されたパケット(E1にないNOP)
毎にカウンタを減らすためにNOP−信号を選択。パケ
ットカウントを提供。特殊エミュレーション(SE)装置サポート 再び図15を参照すると、メガモジュール境界301は
特殊エミュレーション装置をサポートする信号を含む。
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であるべきである。
【0166】図43は、メガモジュール300のMTA
P305と領域とDTPとの間の相互接続をより詳細に
示す相互接続図である。図35に示すように、SE解析
は独立したスキャンパス457および458を利用する
が、それはMTAP MPSD制御バス(C0、C1、
Ce)をメガモジュールDTPと共有する。表69で説
明される信号はMTAP305からSE解析モジュール
へのインターフェースとなる。
【0167】表69.MTAPからSEAモジュールへ
の相互接続 SEA_DET SE解析モジュールの検
出。この信号はMTAPへの入力であり、SEが存在す
ることを示すステータス信号として使用される。この信
号はまた、SEA_SDATおよびSEA_SCTLス
キャンパスをイネーブルにする。 SEA_LOCK SE DTPロック。こ
の信号はECRにソースを有し、SEのDTPをロック
またはアンロックするために利用される。 SEA_SIN SE MTAPスキャン
イン。SEのスキャンポートはメガモジュールDTPス
キャンポートと独立である。 SEA_SOUT SE MTAPスキャン
アウト。 SEA_C0 SE MPSD C0ビ
ット。このビットはメガモジュールDTP MPSD
C0ビットと同一である。 SEA_C1 SE MPSD C1ビ
ット。このビットはDTP MPSD C1ビットと同
一である。 SEA_Ce SE MPSD Ceビ
ット。このビットはDTP MPSD Ceビットと同
一である。 SEA_SHIFTDR SE JTAG SHI
FT_DR状態。 SEA_UPDATEDR SE JTAG UPD
ATE_DR状態。 SEはメカモシュールDTPと同一のDTPを利用す
る。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に関して詳細に説明さ
れる。
【0168】図44はデータスキャンパス回路700の
詳細を示す図である。スキャンレジスタ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および境界
論理が接続がない場合リセット状態に維持されることを
保証する。
【0169】図46は本発明の態様を使用する装置10
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エミュレーションイベン
ト信号を説明する。
【0170】表70.停止モードエミュレーションステ
ータス信号 CPU_DONE CPU実行済み。この信号
は、CPUの命令パイプラインがエミュレーションイベ
ント(DTP停止、ソフトウェアブレークポイント(S
WBP)または解析ブレークポイント(ABP))によ
って実行可能状態で機能停止されたことを示す。 SWBP_DEC CPUの命令パイプライン
がCPUのデコードパイプライン段階でソフトウェアブ
レークポイント(SWBP)によって実行可能状態で機
能停止された。 ABP_DET 解析ブレークポイントの検
出。この信号はCPUの命令パイプラインが解析ブレー
クポイントによって実行可能状態で機能停止されたこと
を示す。 表71.実時間モードエミュレーションステータス信号 RST_TKN リセット検出。この信号は
メガモジュールのリセットが発生したことを示す。この
信号は、コンテキスト切換が完了し、E1にリセットサ
ービスルーチンの第1有効演算コードがロードされるま
でアクティブにドライブされない。 MINT_TKN 選択されたメッセージの割
込み。この信号はメッセージの割込みがなされたことを
示す。この信号は、コンテキスト切換が完了し、E1に
リセットサービスルーチンの第1有効演算コードがロー
ドされるまでアクティブにドライブされない。 AINT_TKN 選択された解析割込み。こ
の信号は解析の割込みがなされたことを示す。この信号
は、コンテキスト切換が完了し、E1にリセットサービ
スルーチンの第1有効演算コードがロードされるまでア
クティブにドライブされない。 MSGFLG メッセージフラグ。この信
号はメッセージハンドシェーク通信のためのフラグを提
供する。 MSGSW メッセージ切換。この信号
はメッセージスキャンプロセスを制御する実時間モニタ
を可能にするために利用されるEVTA CSMイベン
トとして利用される。
【0171】表72.CPUエミュレーションステータ
ス信号 MINT_EN メッセージ割込みイネーブ
ル。このステータス信号は割込みがなされるとき唯一真
である。従って、GE、NMEおよびMSGEでマスク
しなければならない。 AINT_EN メッセージ割込みイネーブ
ル。このステータス信号は割込みがなされるとき唯一真
である。従って、GE,NMIEおよびAIE(PRI
が0の場合)でマスクしなければならない。 表73.CPUエミュレーションイベント信号 STALL 命令パイプライン機能停止 IACK 割込み応答 ICNTX 割込みコンテキスト切換。この
信号は割込みコンテキスト切換のアクティブ期間であ
る。 BRTK 選択される分岐 NOP 選択されるE1パイプライン段
階のNOP ここで使用される「適用される」「接続される」および
「接続」という用語は電気的に接続されることを意味
し、電気的接続パスに追加素子がある場合を含む。本発
明は例示としての実施例に関して説明されたが、この説
明は限定する意味で構成されることを意図したものでは
ない。この説明に関して本発明のさまざまな他の実施例
が当業技術分野に熟練した者には明らかであろう。添付
の請求項が本発明の真の範囲と精神の範囲内にある実施
例のこれらの修正を包含することが考慮される。
【0172】以上の説明に関してさらに以下の項を開示
する。 (1)デバッグ中にデータ処理システムにおいてプロセ
ッサ命令実行パイプラインおよびサブシステムデータパ
イプライン間の同期を維持する方法において、通常の演
算方法で前記プロセッサ命令実行パイプラインにあるシ
ステムコードを実行し、前記命令実行パイプラインと前
記データパイプラインにおいて複数の演算を開始する段
階と、前記プロセッサから前記サブシステムへ第1の信
号を送信し、停止間近であることを示す段階と、前記第
1の信号の受信に応えて、前記サブシステムを停止に備
えて調節する段階と、前記複数の演算のうちの少なくと
も一つが依然停止間近の状態となるように、前記プロセ
ッサパイプラインの前記通常の演算を停止する段階と、
前記サブシステムに第2の信号を送信することにより、
前記プロセッサパイプラインが停止したことを示す段階
と、前記命令実行パイプラインにおいて前記依然停止間
近の状態にある前記複数の演算のうちの少なくとも一つ
に対応する前記サブシステムパイプラインにおける前記
演算のうちの任意の演算が維持されるように、前記第2
の信号の受信に応えて前記サブシステムを停止する段階
と、前記データ処理システム内で無関係な演算が一切発
生しないような方法で前記プロセッサ命令実行パイプラ
インにある前記システムコードの実行を継続する段階
と、を含む方法。 (2)命令実行パイプラインを有するマイクロプロセッ
サと、データパイプラインを有する前記マイクロプロセ
ッサに接続されたサブシステムと、通常の演算方法で前
記プロセッサ命令実行パイプラインにあるシステムコー
ドを実行し、前記命令実行パイプラインと前記データパ
イプラインにおいて複数の演算を開始する回路と、前記
プロセッサから前記サブシステムへ第1の信号を送信
し、停止間近であることを示す回路と、前記第1の信号
の受信に応えて、前記サブシステムを停止に備えて調節
する回路と、前記複数の演算のうちの少なくとも一つが
依然停止間近の状態となるように、前記プロセッサパイ
プラインの前記通常の演算を停止する回路と、前記サブ
システムに第2の信号を送信することにより、前記プロ
セッサパイプラインが停止したことを示す回路と、前記
命令実行パイプラインにおいて前記依然停止間近の状態
にある前記複数の演算のうちの少なくとも一つに対応す
る前記サブシステムパイプラインにおける前記演算のう
ちの任意の演算が維持されるように、前記第2の信号の
受信に応えて前記サブシステムを停止する回路と、前記
データ処理システム内で無関係な演算が一切発生しない
ような方法で前記プロセッサ命令実行パイプラインにあ
る前記システムコードの実行を再開するする回路と、を
含むデータ処理システム。 (3)前記マイクロプロセッサに接続されたプログラム
命令を保持するメモリと、前記マイクロプロセッサに接
続されたディスクドライブとをさらに具備する第2項記
載のデータ処理システム。 (4)外部テストシステム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−25311AA) 上記出願は、いずれも本願と同時期に出願され、この文
章中に引用されている。
【図面の簡単な説明】
【図1】本発明の一実施例に関わる構成部品を示す、デ
ジタル信号プロセッサ(DSP)のブロック図である。
【図2】図1に示す機能単位、データパス、およびレジ
スタファイルのブロック図である。
【図3】図1に示すDSPのアドレス指定モードレジス
タ(AMR)を示す図である。
【図4】図1に示すDSPの制御ビットならびに状態ビ
ットを有する制御状態レジスタ(CSR)を示す図であ
る。
【図5】図1に示すDSPの32の汎用入力信号をサポ
ートする汎用入力レジスタ(IN)を示す図である。
【図6】図1に示すDSPの32の汎用出力信号をサポ
ートする汎用出力レジスタ(OUT)を示す図である。
【図7】図1に示すDSPの40ビットデータ用レジス
タ記憶域構成を示す図である。
【図8】図1に示すDSPの演算コードマップを示す図
である。
【図9】図1に示すDSPのフェッチパケットの基本形
式を示す図である。
【図10】Aは完全に直列なpビットによる図9のフェ
ッチパケットを示す図、Bは完全に並列なpビットによ
る図9のフェッチパケットを示す図、Cは一部直列なp
ビットによる図9のフェッチパケットを示す図である。
【図11】図1に示すDSPのパイプラインの各段階を
示す図である。
【図12】分岐命令の各段階を示す図である。
【図13】クロックサイクルとフェッチパケットに基づ
く図1のDSPのパイプラインの演算を示す図である。
【図14】3つの実行パケットを有するフェッチパケッ
トnと、それぞれ1実行パケットを有する後続の6つの
フェッチパケット(n+1〜n+6)(8並列命令を有
する)を示す図である。
【図15】図1に示すプロセッサ用MTAP−テストポ
ートインタフェースのブロック図である。
【図16】図1に示すプロセッサ用メガモジュールリセ
ットシーケンスのタイムチャートである。
【図17】AはINT4〜INT15およびNMIの状
態を保持する割込み標識レジスタ(IFR)を示す図、
Bは図1のDSPの割込み許可レジスタ(IER)を示
す図、CはIFRに手動で割込みの設定または解除が行
える割込み設定レジスタ(ISR)を示す図、DはIF
Rに手動で割込みの設定または解除が行える割込みクリ
アレジスタ(ICR)を示す図である。
【図18】図1のプロセッサの分析割込みの検出に関す
るタイムチャートである。
【図19】2つの分析割込み関連命令SWIおよびB
ARPを示す図である。
【図20】図15のMTAPのMTAP−CPUインタ
フェース信号を示すブロック図である。
【図21】図1のプロセッサのMTAP−メガモジュー
ル領域インタフェースを示すブロック図である。
【図22】図1のプロセッサのテストポート状態を示す
状態図である。
【図23】Aは図1のプロセッサのUCLKに関するF
unctional RunからScanまでのクロッ
ク切換えに関するタイムチャートBは図1のプロセッサ
のTCLKに関するFunctional Runから
のクロック切換えに関するタイムチャート、Cは図1の
プロセッサのUCLKに関するFunctional
RunからTCLKに関するFunctional R
unまでのクロック切換えに関するタイムチャートであ
る。
【図24】図1のプロセッサのMSENDビットに基づ
くData Scanのスキャンチェーンに関する表で
ある。
【図25】図1のプロセッサの停止に関する様々なケー
スを示すタイムチャートである。
【図26】信号ERDYを形成する回路の回路図であ
る。
【図27】図1のプロセッサの割込み処理中にCPUテ
ストポートにより要求された停止に関するタイムチャー
トである。
【図28】テストポートからの要求によるテストの停止
(Test Port Requested Test
Halt)を示すタイムチャートである。
【図29】図1のプロセッサのエミュレーションを行う
ためのパイプライン管理プロセスを示しているパイプラ
イン停止に関するタイムチャートである。
【図30】図1のプロセッサのエミュレーション後のパ
イプライン復旧プロセスを示しているタイムチャートで
ある。
【図31】Aは図1のプロセッサの分析制御レジスタを
示す図、Bは図1のプロセッサの分析データレジスタを
示す図である。
【図32】Aは図1のプロセッサの分析データ割込みリ
ターンポインタを示す図、Bは図1のプロセッサのデー
タストリームレジスタを示す図である。
【図33】図1のプロセッサの命令実行パイプラインに
関するタイムチャートであり、多様なパイプライン段階
を示している。
【図34】図1のプロセッサにおけるメガモジュールへ
のピンの接続を示すブロック図である。
【図35】図1のプロセッサのJTAG命令とデータレ
ジスタパスを示すブロック図である。
【図36】Aはストラップ状態が図35のレジスタで選
択された場合のJTAG命令レジスタの内容を示す図、
Bはストップエミュレーション状態が図35のレジスタ
で選択された場合のJTAG命令レジスタの内容を示す
図、Cはリアルタイムエミュレーション状態が図35の
レジスタで選択された場合のJTAG命令レジスタの内
容を示す図、Dはエミュレーションエラー状態が図35
のレジスタで選択された場合のJTAG命令レジスタの
内容を示す図である。
【図37】図1のプロセッサのJTAG−MPSDイン
タフェースのブロック図である。
【図38】図35のエミュレーション制御レジスタを示
す図である。
【図39】図1のプロセッサのMTAPのコード状態マ
シン(CSM)のブロック図である。
【図40】図39のCSMのクロックソーススイッチの
略図である。
【図41】図1のプロセッサのEVTA割込みを生成す
る回路の略図である。
【図42】図35のカウンタレジスタを示す図である。
【図43】図1のプロセッサの領域間の相互接続を示す
ブロック図である。
【図44】図43のMTAP内のストリームスキャンレ
ジスタを示すブロック図である。
【図45】図1のプロセッサのEMUピン接続を示す略
図である。
【図46】図1のプロセッサのJTAG TAPの構成
を示すブロック図である。
【符号の説明】
1 マイクロプロセッサ 10a〜10c フェッチ/デコードユニット 20 レジスタファイル 22,23 メモリ 50 エミュレーションユニット 60,61 周辺装置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アンソニー ジェイ.レール アメリカ合衆国テキサス州ヒューストン, ブライアーウエスト 2300,ナンバー 2615

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 デバッグ中にデータ処理システムにおい
    てプロセッサ命令実行パイプラインおよびサブシステム
    データパイプライン間の同期を維持する方法において、 通常の演算方法で前記プロセッサ命令実行パイプライン
    にあるシステムコードを実行し、前記命令実行パイプラ
    インと前記データパイプラインにおいて複数の演算を開
    始する段階と、 前記プロセッサから前記サブシステムへ第1の信号を送
    信し、停止間近であることを示す段階と、 前記第1の信号の受信に応えて、前記サブシステムを停
    止に備えて調節する段階と、 前記複数の演算のうちの少なくとも一つが依然停止間近
    の状態となるように、前記プロセッサパイプラインの前
    記通常の演算を停止する段階と、 前記サブシステムに第2の信号を送信することにより、
    前記プロセッサパイプラインが停止したことを示す段階
    と、 前記命令実行パイプラインにおいて前記依然停止間近の
    状態にある前記複数の演算のうちの少なくとも一つに対
    応する前記サブシステムパイプラインにおける前記演算
    のうちの任意の演算が維持されるように、前記第2の信
    号の受信に応えて前記サブシステムを停止する段階と、 前記データ処理システム内で無関係な演算が一切発生し
    ないような方法で前記プロセッサ命令実行パイプライン
    にある前記システムコードの実行を継続する段階と、を
    含む方法。
  2. 【請求項2】 命令実行パイプラインを有するマイクロ
    プロセッサと、 データパイプラインを有する前記マイクロプロセッサに
    接続されたサブシステムと、 通常の演算方法で前記プロセッサ命令実行パイプライン
    にあるシステムコードを実行し、前記命令実行パイプラ
    インと前記データパイプラインにおいて複数の演算を開
    始する回路と、 前記プロセッサから前記サブシステムへ第1の信号を送
    信し、停止間近であることを示す回路と、 前記第1の信号の受信に応えて、前記サブシステムを停
    止に備えて調節する回路と、 前記複数の演算のうちの少なくとも一つが依然停止間近
    の状態となるように、前記プロセッサパイプラインの前
    記通常の演算を停止する回路と、 前記サブシステムに第2の信号を送信することにより、
    前記プロセッサパイプラインが停止したことを示す回路
    と、 前記命令実行パイプラインにおいて前記依然停止間近の
    状態にある前記複数の演算のうちの少なくとも一つに対
    応する前記サブシステムパイプラインにおける前記演算
    のうちの任意の演算が維持されるように、前記第2の信
    号の受信に応えて前記サブシステムを停止する回路と、 前記データ処理システム内で無関係な演算が一切発生し
    ないような方法で前記プロセッサ命令実行パイプライン
    にある前記システムコードの実行を再開するする回路
    と、を含むデータ処理システム。
JP37053297A 1996-12-20 1997-12-22 データ処理システムのデバッグ中にプロセッサパイプラインおよびサブシステムパイプライン間の同期を維持すする方法と装置 Expired - Lifetime JP3916746B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US3356896P 1996-12-20 1996-12-20
US033568 1996-12-20

Publications (2)

Publication Number Publication Date
JPH10187447A true JPH10187447A (ja) 1998-07-21
JP3916746B2 JP3916746B2 (ja) 2007-05-23

Family

ID=21871169

Family Applications (1)

Application Number Title Priority Date Filing Date
JP37053297A Expired - Lifetime JP3916746B2 (ja) 1996-12-20 1997-12-22 データ処理システムのデバッグ中にプロセッサパイプラインおよびサブシステムパイプライン間の同期を維持すする方法と装置

Country Status (3)

Country Link
EP (1) EP0864974B1 (ja)
JP (1) JP3916746B2 (ja)
DE (1) DE69728251T2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5564028A (en) * 1994-01-11 1996-10-08 Texas Instruments Incorporated Pipelined data processing including instruction trace
US5530804A (en) * 1994-05-16 1996-06-25 Motorola, Inc. Superscalar processor with plural pipelined execution units each unit selectively having both normal and debug modes
US5574937A (en) * 1995-01-30 1996-11-12 Intel Corporation Method and apparatus for improving instruction tracing operations in a computer system

Also Published As

Publication number Publication date
EP0864974A2 (en) 1998-09-16
JP3916746B2 (ja) 2007-05-23
DE69728251D1 (de) 2004-04-29
DE69728251T2 (de) 2005-01-13
EP0864974A3 (en) 2000-03-15
EP0864974B1 (en) 2004-03-24

Similar Documents

Publication Publication Date Title
JPH10187445A (ja) データ処理システムのデバッグ中に命令実行パイプラインを管理する方法
JPH10187491A (ja) データ処理システムのデバッグ中にマルチワード命令レジスタを利用する方法
US5970241A (en) Maintaining synchronism between a processor pipeline and subsystem pipelines 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
JP3916745B2 (ja) データ処理システムのデバッグ中の単一ステッププロセッサパイプラインおよび下位システムパイプライン
US6553513B1 (en) Emulation suspend mode with differing response to differing classes of interrupts
JP4475734B2 (ja) データ処理装置及びデータ処理方法
US6564339B1 (en) Emulation suspension mode handling multiple stops and starts
US6385742B1 (en) Microprocessor debugging mechanism employing scan interface
US6567933B1 (en) Emulation suspension mode with stop mode extension
US6343358B1 (en) Executing multiple debug instructions
US6643803B1 (en) Emulation suspend mode with instruction jamming
US6591378B1 (en) Debug controller in a data processor and method therefor
JP2000330826A (ja) デバッグ命令を実行するデータ処理装置及びそのデータ処理方法
JP2008507025A (ja) 集積回路テスト用エミュレーション及びデバッグインターフェイス
JP3746367B2 (ja) プロセッサ命令実行パイプラインにおける非侵入ソフトウェアブレークポイント
JP4386974B2 (ja) スキャンチェーンおよびデータストリーム機能を備えたプロセッサテストポート
JP3916746B2 (ja) データ処理システムのデバッグ中にプロセッサパイプラインおよびサブシステムパイプライン間の同期を維持すする方法と装置
Melear Emulation techniques for microcontrollers with internal caches and multiple execution units
Zhao et al. An on-chip in-circuit emulation architecture for debugging an asynchronous java accelerator
JPH1011290A (ja) マイクロプロセッサ
Manual P6 Family of Processors
Beck T0 Engineering Data

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051115

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060215

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060220

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060512

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060609

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060911

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060920

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061211

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: 20070112

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070207

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: 20100216

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110216

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110216

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120216

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130216

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140216

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term