JP2000330826A - デバッグ命令を実行するデータ処理装置及びそのデータ処理方法 - Google Patents

デバッグ命令を実行するデータ処理装置及びそのデータ処理方法

Info

Publication number
JP2000330826A
JP2000330826A JP2000112812A JP2000112812A JP2000330826A JP 2000330826 A JP2000330826 A JP 2000330826A JP 2000112812 A JP2000112812 A JP 2000112812A JP 2000112812 A JP2000112812 A JP 2000112812A JP 2000330826 A JP2000330826 A JP 2000330826A
Authority
JP
Japan
Prior art keywords
instruction
debug
main processor
register
data
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.)
Pending
Application number
JP2000112812A
Other languages
English (en)
Inventor
Vivien Jagger David
ビビアン ジャガー デビッド
Adam Hall William
アダム ホール ウィリアム
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.)
ARM Ltd
Original Assignee
ARM Ltd
Advanced Risc Machines Ltd
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 ARM Ltd, Advanced Risc Machines Ltd filed Critical ARM Ltd
Publication of JP2000330826A publication Critical patent/JP2000330826A/ja
Pending 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)
  • Advance Control (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 クロック速度を切り換えることなく、最大ク
ロック速度でデバッグを実行するデータ処理装置及びそ
の機能を得るデータ処理方法を提供する。 【解決手段】 メイン・プロセッサ・クロック周波数に
あるメイン・プロセッサ・クロック信号により駆動され
るメイン・プロセッサ(4)と、少なくとも一部分(1
2)が前記メイン・プロセッサ・クロック信号(cl
k)の周波数と異なり、かつ非同期のデバッグ・クロッ
ク信号(tck)により駆動されるデバッグ・ロジック
(6、12)と、前記デバッグ・ロジックによりデータ
処理命令が転送され、かつ前記メイン・プロセッサによ
り前記データ処理命令が読み出される命令転送レジスタ
とを備え、通常モードからデバッグ・モードへ切り換え
るときに、前記データ処理命令が命令転送レジスタ内に
来るまでは、前記メイン・プロセッサ(4)がノー・オ
ペレーション命令を実行し続ける。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ処理装置及
びデータ処理方法に関する。特に、本発明は、デバッグ
機構に関連し、かつこのようなサブシステムがデバッグ
命令を実行するようにしたデータ処理装置及びデータ処
理方法に関する。
【0002】
【従来の技術】新しいデータ処理ハードウェア及びソフ
トウェアの開発を容易にするために、専用のデバッグ機
構を備えることが知られている。このような機構は、典
型的には、診断データを復元できるように、かつデバッ
グ命令を実行できるように、例えば、複数の命令を診断
データとしてアクセス可能とされる位置にデータ値を復
元できるようにする。加えて、デバッグされるシステム
の特定の構成、又は複数部分を使用して、これら特定の
構成又は部分の動作をテストする特定の命令を実行する
のが望ましいと思われる。
【0003】いくつかの公知のデータ処理システムは、
通常の動作速度より(典型的には、遅い)異なるクロッ
ク速度に切り換え、次いで異なるクロック速度にとどま
っている間に実行すべき所望の命令又は複数の命令をロ
ードして、デバッグ・モードにより動作する。前記異な
るクロック速度は、命令を(例えば、直列スキャン・チ
ェーン経由)システムにロードするのを容易にするにす
る一方、その通常の速度で命令が実行されず、従って診
断動作の評価を低くする欠点がある。
【0004】
【発明が解決しようとする課題】他の公知のシステム
は、異なるクロック速度で命令をロードし、そのときに
異なるクロック速度に切り換えて戻す前に、フル・クロ
ック速度に切り換えてその命令を実行することにより、
この問題に対処している。これは、診断動作の精度及び
有用性を高める一方、クロック速度間での切り換え、ク
ロックの同期及びこれらのに関連する回路を必要とする
欠点がある。
【0005】
【発明を解決するための手段】本発明は、一特徴によれ
ば、データ処理装置を提供するものであって、前記装置
は、メイン・プロセッサ・クロック周波数にあるメイン
・プロセッサ・クロック信号により駆動されるメイン・
プロセッサと、少なくとも一部分がデバッグ・クロック
周波数にあるデバッグ・クロック信号により駆動される
デバッグ・ロジックであって、前記デバッグ・クロック
周波数が前記メイン・プロセッサ・クロック周波数と異
なり、かつ前記メイン・プロセッサ・クロック信号が前
記デバッグ・クロック信号と非同期である前記デバッグ
・ロジックと、前記デバッグ・ロジックによりデータ処
理命令が転送可能にされ、かつ前記メイン・プロセッサ
により前記データ処理命令が読み出し可能にされた命令
転送レジスタとを備え、通常モードからデバッグ・モー
ドへ切り換えるときは、前記データ処理命令が前記命令
転送レジスタ内に存在するまで、前記メイン・プロセッ
サが前記メイン・プロセッサ・クロック信号により駆動
され続けてノー・オペレーション命令を実行し、前記メ
イン・プロセッサ・クロック信号により駆動されている
間に、前記デバッグ・ロジックが前記メイン・プロセッ
サをトリガして前記データ処理命令を読み出し、かつ実
行するものである。
【0006】本発明は、メイン・プロセッサがロードし
た命令の実行を待機させてノー・オペレーションを実行
するように、前記メイン・プロセッサを構成することに
より、命令をロードしている間に、前記メイン・プロセ
ッサがその通常のクロック速度で動作したままにするこ
とが可能なことが解る。ロードした命令が命令転送レジ
スタ内に存在するときは、クロックの切り換え又は再同
期を必要とすることなく、これを通常のクロック速度で
メイン・プロセッサに発行して実行することができる。
【0007】前記メイン・プロセッサが命令パイプライ
ンを含む場合に、本発明の好ましい一実施例は、デバッ
グ命令を命令転送レジスタから発行してメイン・プロセ
ッサにより実行する前に、デバッグ・モードに入ったと
きに命令パイプライン内に待機している命令を命令パイ
プラインから除去することを前記デバッグ・ロジックに
より検出する動作をする。
【0008】デバッグ・モードへのエントリは、種々の
異なる方法により実行可能とされる。これらの例には、
デバッグ・モードへの切り換えを指令するブレークポイ
ント命令の実行、(割り込みと同様の)外部デバッグ信
号の印加、又はプログラム・ブレークポイント又はウォ
ッチポイントのトリガがある。
【0009】命令転送レジスタをロードする好ましい機
構は、直列スキャン・チェーンを介する。メイン・プロ
セッサがその通常のクロック速度で動作し続けてノー・
オペレーション命令を実行する方法は、前記メイン・プ
ロセッサに対して調整する必要がないので、前記直列ス
キャン・チェーン機構の構成をより簡単にする。
【0010】更に、前記メイン・プロセッサにデータ処
理命令を伝達すると同様に、多くの場合で、メイン・プ
ロセッサにデータ値を伝達することが望ましい。これを
容易にするために、デバッグ・クロック周波数で動作す
るデバッグ・ロジックと、メイン・プロセッサ・クロッ
ク周波数で動作するメイン・プロセッサとの両者により
アクセス可能なデータ転送レジスタが提供される。
【0011】このデータ転送レジスタは、潜在的なデー
タ競合を避ける一方、便宜的に直列スキャン・チェーン
を介してアクセスされてもよく、双方向通信を得るため
に、2つのデータ転送レジスタの形成に分割されてもよ
い。
【0012】好ましい実施例では、デバッグ・ロジック
の少なくとも一部分がデバッグ・クロック信号を使用し
て動作する間に、前記デバッグ・ロジックがコプロセッ
サ・インターフェースを介して前記メイン・プロセッサ
に接続され、かつメイン・プロセッサ・クロック速度を
使用して動作するデバッグ・プロセッサを付加的に含
む。
【0013】他の特徴によれば、本発明は、データ処理
方法を提供するものであって、前記方法は、メイン・プ
ロセッサ・クロック周波数にあるメイン・プロセッサ・
クロック信号によりメイン・プロセッサを駆動するステ
ップと、前記デバッグ・クロック周波数にあるデバッグ
・クロック信号によりデバッグ・ロジックを駆動するス
テップであって、前記デバッグ・クロック周波数は、前
記メイン・プロセッサ・クロック周波数と異なり、かつ
前記メイン・プロセッサ・クロック信号は、前記デバッ
グ・クロック信号と非同期であるステップと、前記デバ
ッグ・ロジックを使用して、データ処理命令を命令転送
レジスタに転送するステップと、前記メイン・プロセッ
サを使用して、前記命令転送レジスタから前記データ処
理命令を読み出すステップとを備え、通常モードからデ
バッグ・モードへ切り換えるときに、前記メイン・プロ
セッサは、データ処理命令が前記命令転送レジスタ内に
存在するまで、前記メイン・プロセッサ・クロック信号
により駆動され続けてノー・オペレーションを実行し、
かつ前記デバッグ・ロジックは、前記メイン・プロセッ
サ・クロック信号により駆動されている間に、前記メイ
ン・プロセッサをトリガして前記データ処理命令を読み
出し、かつ実行するものである。
【0014】以下、添付図面を参照して、本発明を単な
る一実施例による概要図により説明する。
【0015】
【発明の実施の形態】図1は、メイン・プロセッサ4、
デバッグ・コプロセッサ(及びシステム・コプロセッ
サ)6、及び浮動小数点ユニット・コプロセッサ8を含
むデータ処理システム2を示す。メイン・プロセッサ4
は、コプロセッサ・バスCPの形式にあったコプロセッ
サ・インターフェースを介してデバッグ・コプロセッサ
6及び浮動小数点ユニット・プロセッサ8に接続されて
いる。このコプロセッサ・バスCPの形式は、標準的な
コプロセッサ・バス、例えば(英国ケンブリッジのAR
M有限会社製造のマイクロプロセッサに使用されてい
る)ARMコプロセッサ・バスとほぼ同一である。
【0016】メイン・プロセッサ4は、データ・バスD
Bと、プリフェッチ・ユニット(prefetch u
nit)10を介して命令バスIBとに接続されてい
る。データ・バスDB及び命令バスIBの両者は、ブレ
ークポイント及びウォッチポイントをそれぞれ識別する
ためにデバッグ・コプロセッサ6により監視されるアド
レス部を含む。
【0017】メイン・プロセッサ4、デバッグ・コプロ
セッサ6及び浮動小数点ユニット・プロセッサ8は、全
てメイン・プロセッサのクロック周波数で共通メイン・
プロセッサ・クロック信号clkにより駆動される。ス
キャン・チェーン・コントローラ12は、更にデバッグ
・コプロセッサと共にデバッグ・ロジックの一部を形成
する。スキャン・チェーン・コントローラ12は、メイ
ン・プロセッサ・クロック信号clkと典型的に異なる
周波数を有するデバッグ・クロック信号tckにより駆
動され、かつメイン・プロセッサ・クロック信号clk
と非同期である。
【0018】データ転送レジスタ(data tran
sfer register)DTR及び命令転送レジ
スタ(instruction transfer r
egister)ITRは、いずれも個別的な直列スキ
ャン・チェーンにより書き込み及び読み出しができるよ
うにスキャン・チェーン・コントローラ12に接続され
ている。図示していないが、いくつかのモードにおい
て、データ転送レジスタDTR及び命令転送レジスタI
TRの個別的なスキャン・チェーンは、単一のスキャン
・チェーンを形成するように互いに連結されてもよい。
スキャン・チェーン・コントローラ12は、IEEE1
149.1JTAG標準において規定された形式のもの
である。このシステムは、スキャン・チェーン・コント
ローラ12がTAPコントローラ・ステート内のRun
−Testステートを通るときはいつも、命令転送レジ
スタITRがその内容を、メイン・プロセッサ4のパイ
プライン14に伝達されて有効な命令ラインを主張する
ことにより実行される命令として、プリフェッチ・ユニ
ット10に発行するように制御される。プリフェッチ・
ユニット10からメイン・プロセッサ4に伝達された命
令は、メイン・プロセッサ4それ自身により、又はコプ
ロセッサ・バスCPを介してメイン・プロセッサ4に接
続されたデバッグ・コプロセッサ6、浮動小数点ユニッ
ト・コプロセッサ8のうちの1つを意図したものによ
り、実行される命令であってもよい。
【0019】2つの公開命令HALT及び再起動RES
TARTは、以下で更に説明するようにメイン・プロセ
ッサの通常オペレーションを停止させるため、及び再起
動させるために通常のJTAG命令に付加された。
【0020】図2はデバッグ・コプロセッサ6を更に詳
細に示す。メイン・プロセッサ4よりもコプロセッサに
より実行することを意図したコプロセッサ命令は、コプ
ロセッサ番号オペランド・フィールドを含む。このよう
にして、コプロセッサ番号に一致したコプロセッサのみ
がコプロセッサ命令に応答してこれを実行する。この場
合に、デバッグ・コプロセッサにはコプロセッサ番号C
P14が与えられる。ARMメイン・プロセッサに通常
関連されるシステム・コプロセッサには、コプロセッサ
番号CP15が与えられ、かつ種々の制御レジスタが含
まれる。図2はデバッグ・コプロセッサCP14を示
す。
【0021】デバッグ・コプロセッサ6は、1バンクの
ウォッチポイント・レジスタ16及び1バンクのブレー
クポイント・レジスタ18を含む。デバッグ・コプロセ
ッサ6内のウォッチポイント・レジスタ16及びブレー
クポイント・レジスタ18は、ウォッチポイント及びブ
レークポイント・アドレスをそれぞれ記憶する。各ウォ
ッチポイント・レジスタ16及びブレークポイント・レ
ジスタ18には、それぞれの制御レジスタ20、22が
関連されている。これらの制御レジスタ20、22は、
命令バスIB及びデータ・バスDBとそれぞれのブレー
クポイント及びウォッチポイント値との比較のために適
用されるマスク値のような制御データを記憶する。更
に、これらの制御レジスタは、ブレークポイント又はウ
ォッチポイントが活性となるのはどの動作モードかを表
す値と共に、関連されるブレークポイント又はウォッチ
ポイントをエネーブル又はディセーブル(disabl
e:不能状態)にするフラグを記憶することができる。
【0022】ウォッチポイント・レジスタ16からのウ
ォッチポイント値は、それぞれのウォッチポイント比較
器24によりデータ・バスDB上のデータ・アドレスと
比較され、一方、ブレークポイント・レジスタ18から
のブレークポイント値は、ブレークポイント比較器26
により命令バスIB上の命令アドレスと比較される。ウ
ォッチポイントの一致又はブレークポイントの一致が確
認されると、これがウォッチポイント・ヒット信号WP
H又はブレークポイント・ヒット信号BPHにより残り
の回路に通知される。更に、デバッグ・エネーブル信号
DEが発生される。ウォッチポイント・ヒット信号WP
H、ブレークポイント・ヒット信号BPHに及びデバッ
グ・エネーブル信号DEは、デバッグ・コプロセッサ6
とメイン・プロセッサ4との間に存在するインターフェ
ースの一部とみなすことができ、メイン・プロセッサ・
ステータスを示すため、コアは停止すべきことを示すた
め、又はコアは再起動すべきことを示すために付加的な
信号を含めることもできる。
【0023】更に、デバッグ・コプロセッサ6は、コプ
ロセッサ・バスCPに接続されたデバッグ・ステータス
制御レジスタDSCRを含む。以上で説明したウォッチ
ポイント・レジスタ16、ブレークポイント・レジスタ
18、制御レジスタ20、22、デバッグ・ステータス
及び制御レジスタ(DSCR)28は、全てARMMC
R及びMRC命令のようなコプロセッサ命令により、書
き込み及び読み出しが可能とされる。これは、メイン・
プロセッサ4に付加的な回路を追加してこれに関連した
潜在性によりクリティカル・パスを低速にすることな
く、デバッグ・コプロセッサがコプロセッサ・インター
フェースを介して構築されるのを可能にする。
【0024】図3はデータ転送レジスタDTRを更に詳
細に示す。特に、データ転送レジスタDTRは、2つの
レジスタ30、32から形成される。第1のレジスタ3
0は、スキャン・チェーン入力tdiを介して書き込み
可能であり、かつメイン・プロセッサ4により読み出し
可能である。第2のレジスタ32は、スキャン・チェー
ン出力tdoを介して読み出し可能であり、かつメイン
・プロセッサ4により書き込み可能である。第1のレジ
スタ30及び第2のレジスタ32は、相互に書き込みの
競合が発生し得ない双方向通信チャネルを形成してい
る。
【0025】第2のレジスタ32は、32ビットのデー
タを記憶し、かつマルチプレクサ34により形成された
33番目のビットを有する。マルチプレクサ34は、コ
ントローラ36の制御により、4入力のうちの1つを選
択するように動作する。第1の入力は、第2のレジスタ
32の主要部からの出力であり、これは、第2のレジス
タ32の主要部の内容を直列にスキャン出力するときに
選択される。マルチプレクサ34に対する他の3入力
は、メイン・プロセッサ・クロック信号clk領域にお
いて動作しているシステムの一部と、デバッグ・クロッ
ク信号tck領域において動作しているシステムの一部
との間でハンドシェーキングを取り扱う。特に、これら
の信号は、tdoを介して外部デバッグ回路により読み
出せるように調整されて、データ転送レジスタは一杯に
なる前に外部デバッグ回路に読み出さないようにされ、
同様に、データ転送レジスタは正しくロードされるまで
はメイン・プロセッサ4により読み出さないようにされ
る。更に、外部デバッグ回路は、更なる試行を行ってデ
ータをデータ転送レジスタDTRにロードする前に、デ
ータ転送レジスタDTR内に配置したデータがメイン・
プロセッサ4により使用されたか否かを判断するため
に、33番目のビットを読み出すことができる。同一の
ことは、メイン・プロセッサ4がデータ転送レジスタD
TRにデータをロードしようとするのを、外部デバッグ
回路により収集される前に、阻止することについてもい
える。更に、PipeEmpty信号は、メイン・プロ
セッサ4の命令パイプライン14が空であり、実行され
るべき保留中の命令がないことを判断するために、デバ
ッグ・システムによりポーリング可能な33番目ビット
としてマルチプレクサ34により選択されてもよい。
【0026】動作において、ラインtdi上のデータが
直列に第1のレジスタ30にスキャン入力されるに従っ
て、第2のレジスタ32からのデータ・ビットがライン
tdoにスキャン出力される。更に、その逆にデータが
第2のレジスタ32からラインtdoに直列にスキャン
出力されるに従って、ラインtdi上のデータ・ビット
が第1のレジスタ30に入力されることにも云える。従
って、データが同時的にデータ転送レジスタDTRから
再生され、またこれに書き込まれてもよく、これによっ
てデバッグ・オペレーションの速度が増加する。
【0027】図4はスキャン・チェーン・コントローラ
12によりメイン・プロセッサ4に供給されるデバッグ
命令の実行を示す。メイン・プロセッサ4はメイン・プ
ロセッサ・クロック信号clkにより駆動され続けると
共に、スキャン・チェーン・コントローラはデバッグ・
クロック信号tckにより駆動される。ステップ38に
おいて、ブレークポイント命令の実行、外部的に供給さ
れるブレークポイント信号、又はブレークポイント若し
くはウォッチポイント・トリガの検出のように、デバッ
グ・トリガが発生する。ステップ40において、デバッ
グ・トリガは、メイン・プロセッサ4に通常の処理を中
断させる。次に、命令パイプライン14は、ステップ4
4、46から形成されるループにおける1シーケンスの
ノー・オペレーション命令を実行する前に、ステップ4
2において、存在する命令を空にする。ステップ46
は、スキャン・チェーン・コントローラ12は、(この
実施例では、Run−Test/Idleステートを通
る結果として)命令転送レジスタITRの内容が命令と
して命令パイプライン14に発行されるべきことを示し
ているか否かを調べる。
【0028】ステップ46を通過する前に、ステップ4
8において、デバッグ・クロック信号tckの制御によ
り動作しているスキャン・チェーン・システムを含むシ
ステムのデバッグ側は、まず、命令を命令転送レジスタ
ITRへスキャン入力するために使用される。命令がス
キャン入力されたときは、ステップ50において、キャ
ン・チェーン・コントローラは、Run/Idleステ
ートを通って遷移し、システムのメイン・プロセッサ側
に対して、命令が命令パイプライン14を下って発行さ
れるように命令転送レジスタITRにレディー(rea
dy:実行可能)状態であることを示す。
【0029】ステップ50が完了したときは、ステップ
52が命令を命令転送レジスタITRから命令パイプラ
イン14に伝達するように機能し、ステップ54におい
てこの命令が実行される。この命令が完了したときは、
デバッグ命令完了信号がデバッグ側に返送されので(ス
テップ56)、デバッグ側は、命令転送レジスタITR
に配置された命令が完了したこと、更に所望ならば命令
を命令転送レジスタITRに配置できることを知る。ス
テップ58において、デバッグ側は、デバッグ命令完了
信号の発行を認識し、ステップ60において、主張した
信号をクリアして、命令転送レジスタITR内に実行さ
れるのを待機している有効な命令が存在することを表示
する。ステップ62において、メイン・プロセッサ側
は、デバッグ側が信号をクリアしたことを認識し、次い
で処理をループ44、46に戻す。ステップ56、5
8、60、62は、異なるクロック領域内で動作する部
分間のハンドシェーキング動作を効果的に実行し、これ
によって周波数差及び未知の位相関係を適合させる。
【0030】従って、回路のデバッグ部はデバッグ・ク
ロック信号tckにより動作し、一方、回路のメイン・
プロセッサ部はメイン・プロセッサ・クロック信号cl
kにより動作し、かつノー・オペレーション命令を実行
することにより、及びハンドシェーキング処理により、
異なるクロック速度に対処する。
【0031】図5はデバッグ命令の多重実行を示す。ス
テップ64において、ART STC命令のような命令
は、命令転送レジスタITRにスキャン入力される。ス
テップ66において、データ値はデータ転送レジスタD
TRにスキャン入力される。ステップ68において、ス
キャン・チェーン・コントローラ12は、Run−Te
st/Idleステートを介して遷移してデバッグ命令
発行信号をセットする。メイン・プロセッサ側は、デバ
ッグ命令発行信号のセットを検出し、かつステップ70
において、データ転送レジスタDTRからメモリ(メモ
リ回路は図示なしの)へデータ値を移動させることによ
り、命令転送レジスタITR(図4を参照すること)に
記憶した命令を実行する。この命令が完了したときは、
ステップ72において、これをデバッグ側に知らせ、デ
バッグ側は更なるデータ値をデータ転送レジスタにスキ
ャン入力する。命令転送レジスタITR内に記憶した命
令は、外部システムにより変更される必要はなく、従っ
て他の命令の転送に時間が掛からない。次のデータ値が
所定位置にあるときは、ステップ74において、スキャ
ン・チェーン・コントローラ12は、Run−Test
/Idleステートを介してを遷移して処理を続ける。
ステップ68及び70と同一のステップは、ブロック・
メモリ転送を効率的に実行するために、多数回実行され
てもよい。
【0032】図6はデバッグ・コプロセッサ6の一部を
他の形式により示す。コプロセッサ命令は、バスCPi
nstrを介してデバッグ・コプロセッサ6に伝達され
て命令レジスタ76に記録される。ラッチされた命令
は、デコーダ78に伝達され、デコーダ78は更にデバ
ッグ・コプロセッサ6の種々のレジスタ用及び出力マル
チプレクサ80用の制御信号を発生する。レジスタの書
き込みは、ARM MCR命令に応答して行われ、また
レジスタの読み出しは、ARM MCR命令に応答して
行われる。レジスタの書き込みを実行すると、適当なレ
ジスタのレジスタ・エネーブル信号が主張される。レジ
スタの読み出しを実行しているときは、適当なレジスタ
出力がエネーブルされ、かつマルチプレクサ80は、こ
の出力を選択するように切り換えられる。
【0033】レジスタ82は、システム・コプロセッサ
CP15レジスタであり、このレジスタは、デバッグ中
にキャッシュ及びMMUオペレーションを実行するため
に、外部デバッグ回路により使用可能にされている。デ
バッグ・ステータス制御レジスタ(DSCR)28は、
コプロセッサCP14レジスタR1として取り扱われ、
書き込み、及び読み出しが共に可能とされている。命令
転送レジスタITRは、図1に示したスキャン・チェー
ンのみによって書き込みが可能とされる。データ転送レ
ジスタDTRは、書き込み及び読み出しが可能とされ
る。データ転送レジスタは、コプロセッサCP14レジ
スタR5として取り扱われる。
【0034】ブレークポイント・レジスタ18及びウォ
ッチポイント・レジスタ16は、それぞれ1つが示され
ている。これらは、それぞれの制御レジスタ22、20
に関連されている。比較器24、26は、これらのレジ
スタに関連されて、デバッグ・イベント(debug
event)信号DEを発生するために用いられる。
【0035】図7はスキャン・チェーン・システムの一
部を概要的に示す。通常のJTAGオペレーションに従
ってTAPコントローラ84が設けられている。外部直
列データ及び出力は、ラインtdi及びtdoにより得
られる。JTAG命令は、命令レジスタIR86内に登
録されてもよい。特定のスキャン・チェーンは、マルチ
プレクサ90、88に連係して動作するスキャン・チェ
ーン選択レジスタ92を使用して選択されてもよい。2
つの部分のデータ転送レジスタ30、32は、相互に単
一のスキャン・チェーンを構成している。更に、命令転
送レジスタITRと、デバッグ・ステータス及び制御レ
ジスタDSCR28は、個別的にスキャン・チェーンを
形成している。更に、読み出し専用のIDCodeスキ
ャン・チェーン及びBypassスキャン・チェーンも
設けられている。
【0036】図8は、データ転送レジスタDTRの一部
である第2のwDTRレジスタ32の制御に係わるハン
ドシェーキングの一部として、スキャン・チェーン・コ
ントローラ12とメイン・プロセッサ4との間で伝達さ
れる信号のタイミングを1例により示す。図8におい
て、set term(タームをセット)は、メイン・
プロセッサ・クロック信号領域において動作しているメ
イン・プロセッサ4により制御されており、またcle
ar term(タームをクリア)は、デバッグ・クロ
ック信号領域において動作しているスキャン・チェーン
・コントローラ12により制御されている。更に詳細に
は、set term及びclear termは、こ
れら自身4ステートのステート・マシン(state
machine)によりそれぞれ制御されている(異な
るそれらのステートは、図8に2ディジットの2進数に
より表されている)。
【0037】動作において、メイン・プロセッサ4は、
まずwDTRレジスタ32に書き込み、set ter
mをローからハイに遷移させて、wDTRフルを主張さ
せる(ここでは、DTRレジスタの33番目ビットとし
て、wDTRフル信号をマルチプレクサ34により選択
することができる)。wDTRフル・インジケータの特
定バージョンは、tck領域のみに存在する。外部デバ
ッグ回路は、DTRレジスタの33番目ビットをポーリ
ングして収集すべきデータが存在することを示すこの遷
移について監視する。更に、メイン・プロセッサ4がそ
のclk領域において使用するためのインジケータも存
在する。
【0038】そこで、デバッグ側は、wDTRレジスタ
32を読み出し、これが完了すると、clear te
rmがローからハイへ遷移してset termステー
ト・マシンに対してデータを読み出したことを表示す
る。clear termにおける遷移は、シンクロナ
イザを介してset termステート・マシンに伝達
され、これがset termをハイからローに遷移さ
せることにより応答して、clear termにおけ
る変化を認識したことをclear termステート
・マシンに対して表示する。ハイからローへのset
termにおける遷移は、シンクロナイザによりcle
ar termステート・マシンへ逆に伝達され、wD
TRレジスタ32を読み出したという情報が肯定応答さ
れたときに、このステート・マシンがclear te
rmをハイからローへ遷移させる。ハイからローへのク
リア信号の遷移は、最終的にシンクロナイザにより、c
lear termステート・マシンからset te
rmステート・マシンへ伝達されて、set term
ステート・マシンをリセットさせるので、所望のときは
他の値をwDTRレジスタ32に書き込めるようにメイ
ン・プロセッサ4に対してシステムがレディーとなる。
【0039】図3に示すrDTRFullインジケータ
は、rDTRレジスタ30に関連し、かつtck及びc
lk信号が交換されると共に、読み出し及び書き込みが
交換されると同様に作成されてもよい。
【0040】図9は、(デバッグRESTART命令に
応答して)図4及び図5に示すように動作しているデバ
ッグ・ステートからメイン・プロセッサ4を再起動させ
るときに、メイン・プロセッサ4とデバッグ・システム
との間で伝達されるハンドシェーキング信号のタイミン
グを示す。
【0041】RestartCore信号はtck領域
に存在し、DbgInDebug及びCoreInDe
bug信号はclk領域に存在する。再起動オペレーシ
ョンにおける第1ステップとして、デバッグ制御ロジッ
クは、CoreRestartedビットを0にセット
し、かつRestartCore信号をローからハイに
遷移することにより、RESART信号に対して応答す
る。RestartCoreにおけるこの遷移は、シン
クロナイザを介してメイン・プロセッサ4に伝達され、
メイン・プロセッサ4はDbgInDebug信号をハ
イからローへ遷移させることにより応答する。このビッ
トは、続いてシンクロナイザを通ってデバッグ制御ロジ
ックに逆に伝達され、デバッグ制御ロジックではCor
eRestarted信号を非主張にする。CoreR
estartedビットは、コアが再起動されたことを
確認するために外部デバッグ回路によりポーリングされ
る。RestartCore信号における遷移は、シン
クロナイザを介してメイン・プロセッサ4に伝達され、
メイン・プロセッサ4はCoreInDebug信号を
ハイからローに遷移させることにより応答して、メイン
・プロセッサ4をデバッグ・ステートから通常ステート
に遷移する。
【0042】図8及び9は、メイン・プロセッサ・クロ
ック信号領域において動作しているメイン・プロセッサ
側とデバッグ・クロック信号において動作しているデバ
ッグ側との間で伝達されるハンドシェーキング制御信号
の2例を示す。同様にして、更なる制御信号間のハンド
シェーキングを取り扱うことができる。
【0043】以上で説明したデバッグ機構の更に詳細な
図は、概要的にARM10マイクロプロセッサ及びAR
Mマイクロプロセッサのアーキテクチャーに関係する以
下のマイクロアーキテクチャー仕様により提供される。
【0044】1.0 基本目的 1)多数の実施を通して展開するARMプロセッサに対
して将来の証明デバッグ・インターフェースを提供す
る、 2)JTAGハードウェア及び対象に基づくソフトウェ
アからハードウェアデバッグ設備へのアクセスを提供す
る。
【0045】2.0 背景 ARM10内のデバッグ・ロジックは、イン・サーキッ
ト・エミュレータに見られるものと同様の機能をサポー
トする能力、即ちブレークポイント及びウォッチポイン
トを設定する能力をユーザに提供して、プロセッサ及び
システム・ステートを点検して変更し、かつ関係するポ
イント周辺のプロセッサ活動のトレースを調べる。通
常、ホスト・コンピュータ上のソフトウェアは、デバッ
ガに対するインターフェースとして機能して、オン・チ
ップ・ロジックが要求する特定のプロトコルからエンド
・ユーザを完全に取り除く。
【0046】ARM10は、ARM7及びARM9によ
り提供されるデバッグ・インターフェースをクリーン・
アップするための機会である。即ち、未使用の機能を削
除し、かつ新しい機能を付加することである。ARM1
0のパイプラインの複雑性のために、命令をパイプライ
ンに詰め込むARM7及びARM9の方法は、2つの損
失がある。即ち、ICEmanソフトウェアをより複雑
化し、またARM10が避けなければならないハードウ
ェア・クリティカル・パスの包含がある。
【0047】ARM10にマスク・レジスタ、チェーン
又はレンジ機能は存在しない。データに依存するウォッ
チポイントやブレークポイントも存在しない。しかしな
がら、ARM10は、ブレークポイント命令を実施し
て、ごく一般的な使用をデータ依存性に置き換え、これ
が命令ストリームにおけるブレークポイントに対するユ
ーザ指定命令を認識させる。われわれはより実際的なブ
レークポイント・レジスタを利用することによりマスク
・レジスタを削除した。
【0048】3.0 ARM10デバッグの使用 ARM10についてのデバッグ及び将来マシン(以下単
にARM10デバッグと呼ぶ)は、コプロセッサ14
(CP14)周辺に集められている。対象について実行
されるソフトウェア、即ちデバッグ・モニタ、又はオペ
レーティング・システム・デバッグ(以下デバッグ・タ
スクと呼ぶ)は、単にCP14レジスタに書き込むこと
によりデバッグ・ハードウェア機能をアクセスすること
ができる。レジスタ・ブレークポイントは、例外を発生
させることができ、対象ハンドラーがレジスタ・ブレー
クポイントをヒットしたときに制御権を取獲得できるよ
うにする。デバッグ機能は、対象上のソフトウェア及び
JTAGポートの両者を通ってアクセスされる。JTA
Gプログラミングは、1度に1プロセッサ命令を供給す
ることにより実行され、オプションによりデータ・バー
ストが続く。しかし、デバッグ・ステップに入る、抜け
出す及び実行するためのインターフェースは、はるかに
明確かつより正確に定義される。
【0049】3.1コプロセッサ14 3.1.1 CP14インターフェース コプロセッサ・インターフェースは、ARMコアとデバ
ッガとの間の共通機構として動作し、CP14及びCP
15の両者のアクセスは、このブロックにより処理され
る。このコプロセッサ・インターフェースは、VFPコ
プロセッサ・インターフェースと同様であるが、しかし
少数の制御信号及び狭帯域バスを有する。このインター
フェースは、次の信号を含む。 入力: 説明: ASTOPCPE 実行中のARMストール(stall)を表示 ASTOPCPD デコード中のARMストールを表示 ACANCELCP CPでの命令を取り消す AFULSHCP コプロセッサ・パイプラインをフラッシュ LDCMCRDATA ARMコアからの入力データを含むバス CPINSTR[31:0] ARMからコプロセッサへの命令 CPSUPER コプロセッサ・スーパバイザ・モード CPLSLEN LSUに対する長さインジケータ CPLSSWAP LSUに対するインジケータを入れ換え CPINSTRV CPに対する有効命令を表示する CPRST コプロセッサのリセット CPCLK コプロセッサ・クロック 出力: CPBUSYD デコードにおけるビジー待機 CPBUSYE 実行中のビジー待機 CP15SERIALIZE コアにデコードにおける命令を強制的にホールド CPBOUNCEE CPは命令を拒否 STCMRCDATA バスはARMコアに対しての出力データを含む
【0050】3.1.2CP14レジスタ/マップ 全てのデバッグ・ステートはレジスタとしてCP14に
マッピングされる。3CP14レジスタ(R0、R1、
R5)は、特権モードにおいてデバッグ・タスクにより
アクセス可能とされ、また4レジスタ(R0、R1、R
4、R5)は、スキャン・チェーンとしてアクセス可能
である。残りのレジスタは、特権モードでのみデバッグ
・タスクからアクセス可能である。空間は16ブレーク
ポイント及び16ウォッチポイントまで確保されてい
る。特定の実施計画を2から16までの任意の数で実施
することができる。ARM10のときは、6命令側ブレ
ークポイント及び2データ側ウォッチポイントが存在す
る。
【0051】ブレークポイント・レジスタは、特権モー
ドにおいてリセットから起動し、ディセーブルされる。
Debug ID Register(R0)は読み出
し専用であることに注意すべきである。更に、ブレーク
ポイント及びウォッチポイント・レジスタにおける一致
ビットは、プログラマが適当なビットをセットすること
により1フィールド(例えば、サイズ、スーパバイザ/
ユーザ)を指定できるようにする符号化を含むことも認
識すべきである。ユーザは、一致についてフィールドが
考慮されていないときは、ビットを全て1にセットする
必要がある。
【0052】デバッギングのディセーブルには、2つの
方法がある。DSCRにおけるGlobal Enab
leビットは、ソフトウェアを介して全てデバッグ機能
をエネーブル又はディセーブルするために使用される。
このビットは、リセットによりクリアされ、これは、全
てのデバッグ機能がディセーブルされることを意味す
る。全ての外部デバッグ要求はコアにより無視され、ま
たBKPT命令はノー・オペレーションとして処理され
る。このモードの目的は、オペレーティング・システム
がタスク・スイッチング・シーケンスの一部として個々
のタスクについてのデバッグ処理を速やかにエネーブル
及びディセーブル可能にすることである。加えて、DB
GENピンは、ARM10のデバッグ機能をディセーブ
ル可能にする。デバッグ処理を必要としないときにの
み、この信号をLOWに接続する必要がある。
【0053】多数のレジスタをサポートするために、C
Rm及びopcode2フィールドは、デバッグ・レジ
スタ番号を符号化するために使用される。ただし、この
レジスタ番号は、{opcode2,CRm}である。
【0054】R0:Rebug ID Registe
r DDIR[31:24] CP15 R0のような設計
者コード DDIR[23:20] ゼロ DDIR[19:16] デバッグ・アーキテクチャー
のバージョン、ARM10=0b000 DDIR[15:12] 実施したレジスタ・ブレーク
ポイント数 DDIR[11:18] 実施したウォッチポイント数 DDIR[7:4] ゼロ DDIR[3:0] 改訂番号
【0055】R1:デバッグ・ステータス及び制御レジ
スタ(DSCR) DSC[1:0] 予備 DSC[4:2] デバッグ・エントリ方法−読み出し
専用 000 JTAG HALT命令が発生 001 レジスタ・ブレークポイントが発生 010 ウォッチポイントが発生 011 BKPT命令が発生 100 外部デバッグ要求が発生 101 ベクトルキャッチが発生 110,111 予備 DSCR[5] 予備 DSCR[6] wDTRバッファが空−読み出し専
用 このビットは、wDTRバッファがデータの書き込みに
対してレディーのときにセットされる。ゼロは、デバッ
ガによりデータが未だ読み出されていないことを示す。 DSCR[7] rDTRバッファ・フル−読み出し
専用 このビットは、通常、JTAGデバッガがこのバッファ
にデータを書き込んだ結果としてコア用のrDTRに読
み出すデータが存在するときに、セットされる。ゼロは
バッファ内に読み出すデータがないことを示す。 DSCR[15:8] 予備 DSCR[16] ベクトル・トラップ・エネーブル
(Vector Trap Enable)−リセット nTRST=0又はTAPコントローラがリセット状態
のときはリセットされる。 DSCR[17] ベクトル・トラップ・エネーブル
−未定義命令 nTRST=0又はTAPコントローラがリセット状態
のときはリセットされる。 DSCR[18] ベクトル・トラップ・エネーブル
−SWI nTRST=0又はTAPコントローラがリセット状態
のときはリセットされる。 DSCR[19] ベクトル・トラップ・エネーブル
−フェッチ中断(abort) nTRST=0又はTAPコントローラがリセット状態
のときはリセットされる。 DSCR[20] ベクトル・トラップ・エネーブル
−データ中断 nTRST=0又はTAPコントローラがリセット状態
のときはリセットされる。 DSCR[21] 予備 DSCR[22] ベクトル・トラップ・エネーブル
−IRQ nTRST=0又はTAPコントローラがリセット状態
のときはリセットされる。 DSCR[23] ベクトル・トラップ・エネーブル
−FIQ nTRST=0又はTAPコントローラがリセット状態
のときはリセットされる。 DSCR[30:24] 予備 DSCR[31] グローバル・デバッグ・エネーブ
ル(Global Debug Enable)−シス
テム・リセットによりリセットされる 0=全てのデバッグ処理機能(ブレークポイント、ウォ
ッチポイント等)をディセーブルする。 1=全てのデバッグ処理機能をエネーブルする。 注意:ベクトル捕捉はブレークポイントよりも高い優先
順位を有する。
【0056】R2−R4:予備 R5:データ転送レジスタ(Data Transfe
r Register) DTR[31:0] データ (注意:DTRは、物理的に個別的な2レジスタ、即ち
rDTR(読み出し)及びwDTR(書き込み)からな
る。これらの使用の説明については3.2.7及び3.
2.10を参照すべきである。) R6−R63:予備 R64−R79:レジスタ・ブレークポイント(Reg
ister Breakpoint)値
【0057】BV[31:0] レジスタ・ブレー
クポイント値 R80−R96:レジスタ・ブレークポイント制御レジ
スタ(Register Breakpoint Co
ntrol Registers) BCR[0] システム・リセットによるクリアをエネ
ーブル 0=レジスタをディセーブル 1=レジスタをエネーブル BCR[2:1] スーパバイザ(Trans) アク
セス 00−予備 10−特権付き 01−ユーザ 11−不定 BCR[4:3] サム(Thumb)モード 00−予備 10−ARM命令 01−サム命令 11−不定 R96−R111 ウォッチポイント値 WV[31:0] ウォッチポイント値 R112−R127:ウォッチポイント制御レジスタ WCR[0] エネーブル 0=レジスタをディセーブル(システム・リセットによ
りクリア) 1=レジスタをエネーブル WCR[2:1] スーパバイザ(Trans) 00−予備 10−特権付き 01−ユーザ 11−不定 WCR[4:3] ロード/ストア/不定 00−予備 10−ロード 01−ストア(Store) 11−不定 WCR[7:5] バイト/ハーフワード/ワード/不
定サイズ 000−予備 001−バイト 010−ハーフワード 011−バイト又はハーフワード 100−ワード 101−ワード又はバイト 110−ワード又はハーフワード 111−任意のサイズ WCR[8] 予備 WCR[10:9] Addr[1:0]へのアドレス
・マスク 0=比較にビットを含む 1=比較にビットを除外 WCR[11] 予備
【0058】3.1.3 CP14命令 下記はARM10におけるCP14用の適正命令専用で
ある。LDC及びSTC命令は、DTRレジスタに対し
てのみ有効である。他の全ての命令は、拒絶(boun
ce)される。
【0059】
【表1】
【0060】3.2 デバッグに対するハードウェア・
インターフェース 3.2.1 ホールト(Halt)・モードへの進行及
び抜け出し ホールト・モードは、DSCRの1〜30ビットを書き
込むことによりエネーブルされ、JTAGデバッガによ
ってのみ実行可能にされる。このモードがエネーブルに
された場合に、下記の事象のうちの1つが発生したとき
は、プロセッサはホールトになる(ソフトウェアにおい
て例外となることに対比される)。 a)EDBGRQを主張 b)JTAGインターフェースを介してHALT命令を
スキャン入力した。TAPコントローラは、コアにHA
LTコマンドを発行するためにRun/Idleを伝達
する必要がある。 c)例外が発生し、かつ対応するベクトル・トラップ・
エネーブル・ビットをセット d)レジスタ・ブレークポイントをヒット e)ウォッチポイントをヒット f)BKPT命令がARMパイプラインの実行段に到達
【0061】デバッグ・ステートに入ると、DSCRに
おけるコア・ホールト(CoreHalted)ビット
がセットされる。デバッガは、推定により、このビット
がハイになるまで、Capture−DR及びShif
t−DRを通過することによりDSCRをポーリングす
る。この時点において、デバッガは、なぜコアはホール
トしたのかを判断し、かつマシン・ステートを保存す
る。MSR命令はモードを変更し、マシンに全てバンク
済みのレジスタに対するアクセスを獲得をするために使
用されてもよい。デバッグ・ステートにある間は、PC
は増加されず、外部割り込みは無視され、かつ全ての命
令は、命令転送レジスタ(Instruction T
ransfer Register)から読み出される
(スキャン・チェーン4)。
【0062】デバッグ・ステートからの抜け出しは、再
起動(RESTART)命令においてJTAGインター
フェースを介してスキャン入力することにより、実行さ
れる。デバッガは、再起動する前にコアがデバッグ・ス
テートに入る方法に従ってPCを調整する。下記の表
は、コアが各場合についてホールトする時点でPCの値
を表示する。
【0063】
【表2】
【0064】ステート・マシンがRun−Test/I
dleステートに入ると、通常の動作が再開する。ステ
ート・マシンがRun−Test/Idleとなるまで
待機する遅延は、マイクロプロセッサ・システムにおけ
る他の装置に、直接影響することなく、条件を設定可能
にする。全てのプロセッサは、Run−Test/Id
leステートに入ると、一斉にオペレーションを再開す
る。RESTARTシーケンスを完了すると、コア再起
動(Core Restarted)ビットがセットさ
れる。
【0065】コアは、RESTARTコマンドを発行す
る前に、「命令完了」(Instruction Co
mplete)ビット(wDTR[0])をポーリング
して最後の命令を何らの問題(可能とする中断など)な
しに完了したことを確認する必要があることに注意すべ
きである。デバッガは、コアにRESTART命令を発
行した後に、何か他のことを実行する前は、ポーリング
して実際に再起動したことを調べる必要がある。デバッ
グ・ロジックにはシンクロナイザ及びハンドシェク・ラ
インが存在し、デバッグ・ロジックはこれらのハンドシ
ェーキング・ラインをクリアできるようにクロック(特
に、TCK)を備えている必要がある。デバッグ・ロジ
ックがDbdRestartラインをクリアする機会が
来る前に、クロックをターン・オフすれば、コアはデバ
ッグ・ステートにとどまって再度起動しない。コア再起
動ビットを読み出す操作は、必要なラインをクリアする
のに十分なクロックを供給する。
【0066】3.2.2 JTAGポート及びテスト・
データ・レジスタ ロジックのJTAG部は、IEEE1149.1インタ
ーフェースを実施し、かつ装置IDレジスタ、バイパス
・レジスタ、及び4ビットの命令レジスタをサポートす
る。加えて、下記の公開命令がサポートされる。
【0067】
【表3】
【0068】デバッグ・レジスタに対するアクセスは、
ソフトウェア(MCR命令による)又はJTAGポート
を通して得られる。ハードウェア・デバッグ機構は、基
本的に、ARM7/ARM9と同様であるが、しかしA
RM10デバッグは全てのクロッキングを隠し、かつデ
バッガからパイプラインの深さを発行する。
【0069】JTAG(R1、R5)を介してアクセス
可能なCP14内のレジスタは、EXTEST命令を使
用して書き込まれる。レジスタR0、R1及びR5は、
INTEST又はEXTEST命令により読み出され
る。これは、INST命令のみが使用され、かつチェー
ンにおけるr/wビットが実行されるべきオペレーショ
ンを決定した点でARM9と異なる。
【0070】3.2.2.1 バイパス・レジスタ 目的:TDIとTDOとの間にパスを設けることにより
スキャン・テスト中の装置をバイパスする。 長さ:1ビット 動作モード:バイパス命令が命令レジスタにおける現在
命令であるときは、直列データがShift−DRステ
ートにおける1TCKサイクルの遅延により、TDIか
らTDOへ転送される。バイパス・レジスタからの並列
出力は存在しない。ロジック0は、Caputure−
DR(DRの捕捉)ステートにおいてバイパス・レジス
タの並列入力からロードされる。 順序:TDI−[0]−TD0
【0071】3.2.2.2 装置ID Code レ
ジスタ 目的:ARM7T及びARM9TからARM10を識別
するために、TAPコントローラIDが固有なので、M
ulti−ICEがどのプロセッサに接続されているの
かを容易に調べることができる。このIDレジスタは、
チップの縁に経路設定されるので、相手側はピンをハイ
値又はロー値へ接続することにより、これら自身のID
番号を作成することができる。ARM10200用の総
称IDは、初期的には、0x01020F0Fとなる。
全ての相手側−特定装置は、下記形式のID番号により
識別される。 バージョン 部品番号 製造者ID LSB [31:28] [27:12] [11:1] 1
【0072】長さ:32ビット 動作モード:IDCODE命令が現在値であるときは、
TDI及びTDOとの間の直列パスとして、IDレジス
タが選択される。IDレジスタからの並列出力は存在し
ない。32ビットのIDコードは、Capture−D
Rステート中に並列入力からレジスタにロードされる。 順序:TDI−[31][30]...[1][0]−
TD0
【0073】3.2.2.3 命令レジスタ 目的:現在のTAP命令を変更する 長さ:4ビット 動作モード:Shift−DRステートのときは、命令
レジスタがTDIとTDOとの間に直列パスとして選択
される。Capture−DRステートでは、0001
二進値がこのレジスタにロードされる。これは、Shi
ft−I中に(最下位ビットが最初に)シフト出力さ
れ、一方新しい命令が(最下位ビットが最初に)スキャ
ン入力される。Update−IRステートでは、命令
レジスタ内の値が現在命令となる。リセットにより、I
DCODEが現在命令となる。 順序:TDI−[3][2][1][0]−TD0
【0074】3.2.2.4 スキャン・チェーン選択
(Scan Chain Select)レジスタ 目的:現在の活性スキャン・チェーンを変更する。 長さ:5ビット 動作モード:現在命令としてSCAN Nを選択した
後、Shift−DRステートのときは、TDIとTD
Oとの間の直列パスとしてスキャン・チェーン選択レジ
スタが選択される。Capture−DRステートで
は、10000二進値がこのレジスタにロードされる。
Shift−DRでは、これが(最下位ビットが最初
に)シフト出力され、同時に、(最下位ビットを最初に
して)新しい値がシフト入力される。Update−D
Rステートでは、レジスタ内の値は、レジスタにおける
値がスキャン・チェーンを選択して現在活性のスキャン
・チェーンになる。INTESTのような更なる全ての
命令は、このスキャン・チェーンに適用される。現在の
選択されたスキャン・チェーンは、SCAN N命令が
実行されたとき、又はリセットが発生したときにのみ、
変更される。リセットにより、スキャン・チェーン3が
活性なスキャン・チェーンとして選択される。現在の選
択されたスキャン・チェーン数は、SCREG[4:
0]出力バスに反映される。TAPコントローラは、A
RM1020マイクロセル内のものに加えて、外部スキ
ャン・チェーンを駆動するために使用されてもよい。外
部スキャン・チェーンは、これに対して番号及び制御信
号が割り付けられる必要があり、SCREG[4:
0]、IR[3:0]、TAPSM[3:0]、及びT
CKから導き出されてもよい。 順序:TDI−[4][3][2][1][0]−TD
【0075】3.2.2.5 Scan Chain
0 目的:デバッグ。 長さ:32ビット このScan Chainは、CP14 Regist
er 0、DebugID Registerである。 順序:TDI−[31][30]...[1][0]−
TD0
【0076】3.2.2.6 Scan Chain
1 目的:デバッグ。 長さ:32ビット このScan Chainは、CP14 Regist
er 1、DSCRである。DSCR[15:0]のみ
が読み出されることに注意すべきである。下記のビット
は、Chain 1に対して定義される。 DSC[0] Core Halted−読み出し専
用 DSC[1] Core Restarted−読み
出し専用 DSC[4:2] デバッグ・エントリ方法−読み出し
専用 000 JTAG HALT命令が発生 001 レジスタ・ブレークポイントが発生 010 ウォッチポイントが発生 011 BKPT命令が発生 100 外部デバッグ要求が発生 101 ベクトル捕捉が発生 110,111 予備 DSCR[5] 過去にしばしば破棄が発生−MCR
によってのみ書き込み可能 MCR このビットは容易ではない。これはMC
RによりMSCRにクリアされ、ここで、このビットは
0である。 nTRST=0のとき、又はTAPコントローラがリセ
ット・ステートときはリセット DSCR[6] wDTRバッファが空−読み出し専
用 このビットは、wDTRバッファが空であり、コアが更
にデータが書き込めることを意味するコアのインジケー
タである。これは、JTAGデバッガがEXTESTに
よりCaptureDRを通ることによりDTRをポー
リングするのか否かを調べる反転ビットである。JTA
G信号とコア信号との間のタイミングは異なっているの
で、デバッガは、このビットを使用してwDTRが空で
あるか又はフルであるかを判断してはならない。 DSCR[7] rDTRバッファ・フル−読み出し
専用 このビットは、rDTRバッファがフルであり、デバッ
ガがこれにデータが書き込んだことを意味するコアのイ
ンジケータである。これは、JTAGデバッガがINT
ESTによりCaptureDRを通ることにより、D
TRをポーリングするのか否かを調べる反転ビットであ
る。JTAG信号とコア信号との間のタイミングは異な
っているので、デバッガはこのビットを使用してwDT
Rが空であるか又はフルであるかを判断してはならな
い。 DSCR[15:8] 予備 DSCR[16] ベクトル・トラップ・エネーブル
−リセット−読み出し専用 nTRST=0のときはリセット、TAPコントローラ
がリセット・ステートのときは、リセット DSCR[17] ベクトル・トラップ・エネーブル
−未定義命令−読み出し専用 nTRST=0のときはリセット、TAPコントローラ
がリセット・ステートのときは、リセット DSCR[18] ベクトル・トラップ・エネーブル
−SWI−読み出し専用 nTRST=0又はTAPコントローラがリセット・ス
テートのときは、リセット DSCR[19] ベクトル・トラップ・エネーブル
−プリフェッチ中断(Prefetch Abort)
−読み出し専用 nTRST=0又はTAPコントローラがリセット・ス
テートのときは、リセット DSCR[20] ベクトル・トラップ・エネーブル
−データ中断−読み出し専用 nTRST=0又はTAPコントローラがリセット・ス
テートのときは、リセット DSCR[21] ベクトル・トラップ・エネーブル
−予備 DSCR[22] ベクトル・トラップ・エネーブル
−IRQ−読み出し専用 nTRST=0又はTAPコントローラがリセット・ス
テートのときは、リセット DSCR[23] ベクトル・トラップ・エネーブル
−FIQ−読み出し専用 nTRST=0又はTAPコントローラがリセット・ス
テートのときは、リセット DSCR[26:24] 予備 DSCR[27] Commsチャネル・モー
ド 0=Commsチャネル不作動 1=Commsチャネル作動 nTRST=0又はTAPコントローラがリセット・ス
テートのときは、リセット DSCR[28] サム・モード・インジケー
タ(5.0項を参照のこと) DSCR[29] ITR選択において命令を
実行 0=ディセーブル 1=JTAG状態マシンがRun−Test/Idle
を通過するときは、ITRにおける命令をプリフェッチ
・ユニットに送出 nTRST=0のとき、又は、TAPコントローラがリ
セット・ステートのときは、セット DSCR[30] Halt/Monitor
(ホールト/モニタ)モード選択 0=モニタ・モードをエネーブ 1=ホールト・モードをエネーブル nTRST=0又はTAPコントローラがリセット・ス
テートのときは、リセット DSCR[31] グローバル・デバッグ・エネーブ
ル(Global Debug Enable)−シス
テム・リセットによりクリア 0=全てのデバッグ処理機能(ブレークポイント、ウォ
ッチポイント等)をディセーブルにする。 1=全てのデバッグ処理機能をエネーブルにする。 nRESET=0のときは、リセット(コアのリセット
・ライン) これらのビットがコア用で、デバッガ用でないDSCR
を反映しているので、通信チャネル・ビット、rDTR
フル及びwDTR空は、デバッガから見えるものの反転
であることに注意すべきである。 順序:TDI−[31][30]...[1][0]−
TD0
【0077】3.2.2.7 Scan Chain
2 目的:デバッグ 長さ:65ビット このスキャン・チェーンは、CP14レジスタ4及び5
の組み合わせである。レジスタ4内の命令完了(Ins
truction Complete)ビットは、この
チェーンに含まれないことに注意すべきである。これ
は、チェーン4にのみ現れる。 順序:TDI−Reg4[32]Reg4[3
1]...Reg4[1]Reg5[32]Reg5
[31]...Reg5[0]−TD0
【0078】1.2.2.8 Scan Chain
3 目的:外部境界スキャン・テストに使用できる。装置間
テスト(inter−device testing
:EXTEST)及びコアのテスト(INTEST)
に使用される。 長さ:不定
【0079】3.2.2.9 Scan Chain
4 目的:デバッグ 長さ:33ビット このスキャン・チェーンは、命令転送レジスタであり、
かつフェッチ・ユニットを介してコアに命令を送出する
ために使用される。このチェーンは、32ビットの情報
+付加的なビットからなり、コアに送出された命令の完
了を示す。 順序:TDI−[32][31][30]...[1]
[0]−TD0
【0080】3.2.2.10 Scan Chain
5 目的:デバッグ 長さ:33ビット このスキャン・チェーンは、CP14 Registe
r 5、データ転送レジスタである。このレジスタは、
物理的に2つの個別的なレジスタ、即ち読み出し専用レ
ジスタDTR(rDTR)及び書き込み専用レジスタD
TR(wDTR)からなる。このレジスタは、ソフトウ
ェアによる双方向通信チャネルの作成を容易にするよう
に分離されている。rDTRは、JTAGポートを介し
てのみロード可能とされ、かつMRC命令を介してコア
によってのみ読み出し可能とされる。wDTRは、MR
C命令を介してコアによってのみロード可能とされ、ま
だJTAGポートを介してのみ読み出し可能とされる。
TAPコントローラの能力から、1レジスタ(Chai
n 5)のみを認識するが、しかしどの命令を使用する
のか(INTEST又はEXTEST)に従って適当な
レジスタが選択される。
【0081】wDTRチェーンそれ自体は、32ビット
の情報+通信チャネルに関する1付加ビットからなる。
ビット0の定義は、現在のJTAG命令がINTEST
であるか、又はEXTESTであるかに従う。現在の命
令がEXTESTであれば、デバッガはrDTRに書き
込むことができ、またビット0は、キューにまだ有効な
データがあるか否かを表示している。このビットがクリ
アされていれば、デバッガは新しいデータを書き込むこ
とができる。コアがDTRの読み出しを実行するとき
は、ビット0が自動的にクリアされる。逆に、JTAG
命令がINTESTであれば、ビット0は、wDTRに
読み出す現在有効なデータが存在するか否かを表示して
いる。ビットがセットされていれば、JTAGは、wD
TRの内容を読み出す必要があり、続いてこのビットを
クリアする。次いで、このコアは、ビット0をサンプリ
ングすることができ、このビットが再びクリアされると
新しいデータを書き込むことができる。rDTRチェー
ンは、32ビットの情報+通信チャネルに関する1付加
ビットを含む。 順序:TDI−rDTR[32]rDTR[3
1]...rDTR[1]rDTR[0] wDTR[32]wDTR[31]...wDTR
[1]wDTR[0]−TDO
【0082】3.2.2.11スキャン・チェーン6−
15 予備
【0083】3.2.2.12スキャン・チェーン16
−31 割り付けなし
【0084】3.2.3 コアに対する命令の送出 CP14内の2レジスタは、ARM10プロセッサ、命
令転送レジスタ(ITR)及びデータ転送レジスタ(D
TR)と通信するために使用される。ITRは、命令を
プロセッサ・パイプラインに詰め込むために使用され
る。デバッグ状態では、プロセッサの殆どの時間は、I
TRがレディーになるまで、無効命令を効果的に実行す
ることに費やされる。ハードウェア・デバッグ状態で
は、PCは命令を実行するに従って増加しないが、それ
でも分岐はPCを変化させることになる。
【0085】DSCR[29]は自動実行機能(aut
oexcute function)を制御する。この
ビットがセットされると、各JTAG TAPコントロ
ーラは、Run/Idleステートに入り、ITRに現
在存在する命令は、コアによる実行のためにプリフェッ
チ・ユニットに送出される。このビットがクリアされて
いるときは、命令はプリフェッチ・ユニットに送出され
ない。JTAG IRレジスタ内の命令は、INTES
T又はEXTESTでなければならない。
【0086】自動実行機能は、データの速いアップロー
ド及びダウンロードを可能にさせる。例えば、ダウンロ
ードシーケンスは、下記のいかなるものでもよい。ま
ず、ScanNRegにスキャン・チェーン2、スキャ
ン・チェーン4及び5の組み合わせを選択し、次いで、
書き込みのためにJTAG命令をEXTESTにセット
する。コア書き込み命令(STC)及び関連するデータ
をITR及びDTRにそれぞれ直列にスキャン入力す
る。TAPコントローラがRun−Test/Idle
ステートを通過すると、ITR内の命令をコアに発行す
る。次に、スキャン・チェーンをDTRのみ(チェーン
5)に切り換え、Capture−DRステート、次い
でShift−DRステートとなることにより、ポーリ
ングする。このステータス・ビットが命令の完了を示す
まで、このチェーンにおける最下位ビット、即ちビット
wDTR[0]を調べる。更に多くのデータをDTRに
ロードして、命令をRun−Test/Idleを通過
することにより再実行することができる。ここで、更
に、我々は、アドレスが自動的に更新されるように、S
TC命令が基本アドレス書き戻しを指定するものと仮定
する。
【0087】アップロードのパフォーマンスを増加させ
るためには、同じような機構を使用することができる。
第1に、JTAG命令をEXTESTに変更する。チェ
ーン2を使用して、LDCのような読み出す命令をIT
Rにスキャン入力することができる。次に、読み込みの
ためにJTAG命令をINTESTに切り換える。そこ
で、スキャン・チェーンをDTRに切り換えて命令が完
了するまでポーリングすることができる。Run−Te
st/Idleステートを通ってShift−DR(ポ
ーリングのため)となる過程で、コアに対してITRを
発行する。以下、最後のワードを読み出すまで、この処
理を繰り返す。
【0088】Run−Test/Idleを通って命令
を実行したことにより、JTAGクロックの周波数に接
近した周波数にあるコア・クロックを動作させる問題に
取り組む。コアに命令を発行し、かつデータが捕捉でき
ないときは、エミュレータは、データが得られるまで、
ステート・マシン・ループを単に周りポーリングをす
る。そのようになると、ステート・マシン・ループをも
う一回巡回し、データを捕捉し、次いでこれをスキャン
出力させることができる。内側ループにおいて自動実行
機構を他のステートに設定すると、他の命令を発送する
のを早過ぎるものにし、多分、他のデータを重ね書きす
るのを強いる。Run−Test/Idleは内側ルー
プ外に留まり、1ステート遷移のみとなり、通過するこ
とに殆ど不都合はない。プロセッサ・クロックがJTA
Gクロックよりもかなり速いシステムでは、通常、TA
PコントローラがRun−Test/IdleからCa
pture−DRとなる十分前に、データを得られるの
で、内側ループを1回通ってデータを捕捉し、次いでス
キャン出力する。
【0089】CP14は、ARM9が行うと同様にバス
を監視しないので、コアのレジスタ・ファイルの内容を
読み出すには、LDM/STM命令を使用する代わり
に、ARMレジスタからCP14レジスタ5に個別的な
移動を必要とすることに注意すべきである。そこで、情
報をDTRからスキャン出力することができる。
【0090】バイト及びハーフワードの転送は、プロセ
ッサにアドレス及びデータの両方を転送し、次に適当な
ARM命令を実行することにより、実行される。
【0091】コプロセッサへ及びからの転送は、ARM
レジスタを介してデータを移動することにより実行可能
とされる。これは、全てのARM10コプロセッサがM
RC及びMCRを介してアクセス可能な全てのデータを
有する必要があるということを意味する(そうでないと
きは、書き込み可能なメモリにおけるデータ・バッファ
を使用する必要がある)。
【0092】3.2.4 ブレークポイント・レジスタ
及びウォッチポイント・レジスタの読み出し及び書き込
み ハードウェア・ブレークポイント及びウォッチポイント
は、データをARMレジスタに転送し、次いでデータを
適当なブレークポイント・レジスタ又はウォッチポイン
ト・レジスタに移動させることにより、書き込まれる。
たとえばブレークポイントレジスタR64へのロードを
考える。 ITRにスキャン入力:MRC p14,0,Rd,c
0,c3,0 DTRにスキャン入力:ブレークポイント/レジスタR
64にデータをロードデータコマンドを実行 ITRにスキャン入力:MRC p14,0,Rd,c
0,c0,4
【0093】以上の例では、最初のMRC命令はデータ
をDTRレジスタ(CP14内のR5)からARM内の
他のレジスタに移動する。このデータが移動されると、
MCR命令はデータをARMレジスタからブレークポイ
ント・レジスタ(CP14内のR64)に転送する。
【0094】ブレークポイント・レジスタを読み出すた
めに逆の処理を使用することができる。ブレークポイン
ト・レジスタ及びウォッチポイント・レジスタは、実施
コストを最小化するためにスキャン・チェーンから直接
アクセス不可能である。
【0095】プリフェッチ・ユニットことにより発行さ
れた命令アドレスは、常時、ビット0が0にセットされ
ている。サム・モードにおいて、ビット1はアドレスの
奇数ワードのアドレスを表している。一方、ARMモー
ドにおいて、ビット1は常時、0にセットされている。
ブレークポイント・レジスタは、サム・モードにおいて
ブレークポイント及びウォッチポイントに対する比較の
ために、全32ビット・フィールドを有するが、ユーザ
は、このレジスタに絶対に一致しない値、例えばビット
0を1とした値にセットしないように注意すべきであ
る。
【0096】ブレークポイント及びウォッチポイント制
御レジスタ内のビットは、自明である必要がある。
【0097】3.2.5 ソフトウェア・ロックアウト
機能 JTAGデバッガが評価ボード又はテスト・システムに
取り付けられているときは、その存在は、DSCR内の
ホールト/モニタ・モード(Halt/Monitor
Mode)をセットすることにより表示される。この
場合に、ホールト・モードである間は、デバッガにより
ブレークポイント・レジスタ及びウォッチポイント・レ
ジスタを書き込み及び読み出すことができる。ブレーク
ポイント・レジスタ及びウォッチポイント・レジスタが
構築されてしまうと、デバッガが制御権を保持している
ので、ホールト/モニタ・モードのビットがハイのまま
であれば、ソフトウェアによりプロセッサ側からこれら
レジスタを変更することはできない。しかしながら、コ
アは、依然として通信チャネル・レジスタに書き込み可
能である。
【0098】3.2.6 外部信号 デバッグに関連した1外部信号EDBGRQが存在し、
これによって、システムはARM1020にデバッグ・
ステートに入るように要求する。外部ロジックは、この
ラインを使用してマルチプロセッサ・システムにおける
ARM1020をホールトするように、又は起動時に直
接、プロセッサをデバッグ・ステートに強制設定するよ
うに要求してもよい。
【0099】3.2.7 ステートのセーブ及びリスト
ア デバッグ処理の前に、エミュレータは、制御のセッティ
ング、レジスタ値、又はエミュレーションの過程で変更
される恐れのある他のステートをセーブする必要があ
る。このため、デバッグを抜け出す前に、これらの元の
ステートに全ての条件をリストアするように考慮する必
要がある。デバッグ・エントリ後に読み出されるPC値
は、全ての場合でPC+0X8となる。即ち、ベクトル
は、BKPT命令、レジスタ・ブレークポイント、JT
AGからのHALT命令等を捕捉する。
【0100】DTRは2レジスタに分割されたので、r
DTR及びwDTRステート情報をセーブすることが必
要がある。セーブ及びリストア・シーケンスは下記のよ
うに見える。 (ハードウェアはJTAGを通ってHALT命令を実行
する。) コアをホールトした(Core Halted)が主張
されるまで、ポーリングする 主張されれば、wDTRを捕捉してスキャン出力する JTAG IRをEXTESTへ変更及びジャンク(j
unk)をwprDTRへスキャン入力−これはrDT
Rステータス・ビットを強制的に出力させる。 (他のレジスタをセーブする) . . . (デバッグ処理を終了) 古いCPSRをrDTRにスキャン入力 MRCによりITRをロードし、MRCはrDTRをR
0に転送して実行 MSRによりITRをロードし、MRCはR0をCPS
Rに転送 古いPCをrDTRにスキャン入力 MRCによりITRをロードし、MRCはrDTRをR
0に転送して実行 MOVによりITRをロードし、MOVはR0をPCに
転送 古いR0をrDTRにスキャン入力 MRCによりITRをロードし、MRCはrDTRをR
0に転送 (レジスタをリストア) セーブしたrDTRステータス・ビットがレジスタがフ
ルであったことを示しているときは、古いrDTR情報
をrDTRにスキャン入力 RESTARTコマンドを発行 Core Restartedが主張されるまでポーリ
ング
【0101】3.3 デバッグに対するソフトウェアイ
ンタフェース モニタ・モードは、レジスタのブレークポイント、これ
らのブレークポイントに対する応答、及び更にコアをホ
ールトを構築するように使用されるこれらのARMオペ
レーションを説明する。モニタ・モードは、情報を収集
するためにコアをホールトできないときにリアル・タイ
ム・システムにおいても有用である。例には、エンジン
制御、及び部品を物理的に損傷することなくコードを停
止できないハード・ドライブ・コントローラにおけるサ
ーボ機構がある。命令ストリームに小さな挿入を許容す
る状況では、モニタ・モードは理想的である。この技術
を使用して、ステート情報及び重要な変数をセーブする
のに十分な時間割り込みによりコードを一時停止させる
事ができる。コードは例外ハンドラーが終了すれば再度
続行する。
【0102】3.3.1 モニタ・モードへの進行及び
抜け出し モニタ・モードは、DSCRのビット30に0を書き込
むことにより、エネーブルされる。モニタ・モードがエ
ネーブルされたときに、下記の事象のうちの1つが発生
すると、プロセッサは(ホールトすることよりも)例外
となる。 1)レジスタのブレークポイントをヒット 2)ウォッチポイントをヒット 3)ブレークポイント命令がARMパイプラインの実行
段階に到達 4)例外に行き、対応するベクトル・トラップ・ビット
をセット
【0103】DSCR内のグローバル・デバッグ・エネ
ーブル(Global DebugEnable)ビッ
トをセットしなければ、無操作となることに注意すべき
である。例外ハンドラーからの抜け出しは、通常の形
式、例えばプリフェッチ例外のためにPCを(R14−
0X4)にリストアし、BRPT命令に対してR14を
PCに移動させることにより、実行する必要がある。な
ぜならば、これらはスキップ等が実行されるためであ
る。以下の表は、コアが例外となるときのPCの値を表
示する。
【0104】
【表4】
【0105】3.3.2 ブレークポイント・レジスタ
及びウォッチポイント・レジスタの読み出し及び書き込
み モニタ・モードのときは、全てのブレークポイント・レ
ジスタ及びウォッチポイント・レジスタを特権処理モー
ドからのMCR及びMCR命令により読み出し及び書き
込みが可能である。
【0106】レジスタ・フィールドの符号化の説明につ
いては、3.1.2項及び3.2.4項を参照された
い。
【0107】3.3.3 BKPT命令 ARMデバッグ・アーキテクチャーは、ARM及びサム
の両者に対するブレークポイント命令を定義する。これ
らの命令のうちの一つの実行は、レジスタ・ブレークポ
イントをヒットすることと同一の効果を有する。モニタ
・モードでは、プリフェッチ中断が実行され、ホールト
・モードでは、コアがホールトする。各デバッグ命令
は、個々のブレークポイントを識別するためにデバッガ
ことにより使用可能にされた1未使用フィールド、サム
に対して8ビット、及びARMに対して12ビットを有
する。ARMのオプコードは32′hE12xxx7
x、サムのオプコードは16′hbexxであり、xは
未使用フィールドである。
【0108】3.3.4 Commsチャネル ARM10におけるcomms(通信)チャネルは、物
理的に独立した2つのデータ転送レジスタ(DTR)及
び各レジスタを増加するために1ビットを使用し、双方
向直列ポートを形成することにより実施された。この付
加ビットは、有効データがデータ・レジスタに存在する
ことを表示する。協定により、対象ソフトウェアは、書
き込みDTR(wDTR)を保有し、またホスト・ソフ
トウェアは、読み出しDTR(rDTR)を保有する。
換言すれば、wDTRはコアにより書き込まれ、次いで
情報はホストによりJTAGポートを通ってスキャン出
力される。wDTRはTDO接続を有する唯一のレジス
タであり、スキャン・チェーン5のビット0は、JTA
G命令レジスタにおける現在命令(INTEST又はE
XTEST)により選択される。commsチャネルの
活動のデバッグをしているときに、DSCRのビット2
7は、セットされて、ここで、wDTRの最下位ビット
が命令の完了よりもcommsチャネル・レジスタのス
テートを表示していることをデバッグ・ロジックに表示
する。
【0109】デバッガがそれを意図するデータを読み出
しているときに、INTESTをIRにロードしwDT
Rの内容をスキャン出力する。33ビットのデータ・パ
ケットの最下位ビットがセットされていれば、このデー
タは有効である。次いで、この読み出しによりwDTR
内のビット0をクリアする。このビットがクリアされて
おり、コアに新しいデータが書き込まれていないことを
意味しているときは、デバッガは、コアがホールトした
か否かを調べるためにDSCRのポーリングを希望する
こともできる。
【0110】同様に、EXTESTは、デバッガにより
rDTRにデータを書き込むために使用され、またこの
動作は有効データを示すビット0をこのレジスタ用にセ
ットする。デバッガが見るものは、実際には、このビッ
トの反転であるので、デバッガは更にデータを書き込み
をするときに、ビット0は、セットされて、コアがrD
TRを読み出したことを意味しているか否かを見るため
に、チェックされる必要がある。このビットがゼロであ
り、rDTRが依然としてフルであり、かつコアが古い
データを読み出していなかったときは、シフト入力され
た新しいデータは、rDTRにロードされない。これを
多数回行った後に、コアがホールトしたか否かをデバッ
ガがチェックしたいときは、ステータス・ビットは、r
DTR内のデータと共に有効に存続する。これは、スキ
ャン出力されて、デバッガが後で単にスキャン入力によ
り戻せるようにセーブしたステート情報と置換される必
要がある。データをrDTRからコア・レジスタに、次
いでwDTRに移動してスキャン出力するこのような操
作は、rDTRの全ビットを制御しているステート・マ
シンをクリアすることになる。
【0111】これらの付加ビットは実際にDSCRに反
映されるので、コアはこれらビットを読み出すためにM
RCを使用することができる。しかしながら、これらの
ビットは、コア用なので、デバッガから見えるビットの
論理反転である。
【0112】ホールト・モード及びモニタ・モードは、
互いに排他的であるので、転送レジスタは、モニタ・モ
ードにおいて他の目的用に使用されていない。
【0113】4.0 デバッグ及び例外、ベクトル捕捉 4.1 命令ブレークポイント 命令ブレークポイントは、命令データと同時にコアにク
ロッキングされる。ブレークポイントは、中断がペンデ
ィングでないと仮定して、命令がパイプラインの実行段
に入ると直ちに処理される。このブレークポイントは、
命令がその条件コードに失敗したか否かについて処理さ
れる。
【0114】ブレークポイント命令は、これに関連した
プリフェッチ中断を有してもよい。その通りであれば、
プリフェッチ中断が優先し、ブレークポイントは無視さ
れる。SWI及び未定義命令は、これにセットされたブ
レークポイントを有し得る他の命令と同様に処理され
る。従って、ブレークポイントはSWI又は未定義命令
に対して優先する。
【0115】命令の境界にブレークポイントの命令及び
割り込み(FIQ又はIRQ)が存在するときは、割り
込みが実行され、ブレークポイントの命令はすてられ
る。割り込みがサービスされると、実行フローは元のプ
ログラムに戻される。これは、前にブレークポイントし
た命令が再びフェッチされたことを意味し、このブレー
クポイントが依然としてセットされているときに、プロ
セッサがパイプラインの実行段に到達すれば、プロセッ
サはデバッグ・ステートに入る。
【0116】4.2 ウォッチポイント ウォッチポイントのメモリアクセスに続くデバッグ・ス
テートへのエントリは、命令ストリーム・アクセスと比
較して不正確である。これは、パイプラインの性質及び
コアに行くウォッチポイント信号のタイミングのためで
ある。プロセッサは、ウォッチポイント・トリガ後に実
行される、ウォッチポイントの命令が実行を開始した後
の数命令となり得る次の命令で停止することになる。
【0117】ウォッチポイントと共にデータ・アクセス
による中断があると、中断例外エントリ・シーケンスを
実行し、次いでプロセッサはデバッグ・ステートに入
る。割り込みの待機があると、再び、プロセッサは、例
外エントリ・シーケンスが発生できるようにし、デバッ
グ・ステートに入る。次の命令を中断したときは、中断
は実行されない。
【0118】CP15内のフォールト・ステータス・レ
ジスタ(Fault StatusRegister:
FSR)は、MMUとアクセスを中断するデバッグ・シ
ステムとの間を区別する。データ中断が発生すると、F
SR[3:0]フィールドのビット9がゼロに強制設定
される。データ中断がなく、ウォッチポイントが発生す
ると、DFSR[9]を1に強制設定する。ソフトウェ
アがこのレジスタを読み出し、かつDFSR[9]が1
にセットされているのを認識したときは、残りのビット
を無視する必要がある。
【0119】4.3 割り込み プロセッサがデバッグ・ステートに入れば、更なる割り
込みが実行された命令に影響しないことが重要である。
このために、プロセッサがデバッグ・ステートに入れ
ば、割り込みがディセーブルされるが、PSRにおける
I及びFビットのステートは、影響されない。
【0120】4.4 例外 ARM10コアにおける例外の優先順位は、以下のよう
である。
【0121】
【表5】
【0122】下記の表6は、ホールト及びモニタ・モー
ドの両者におけるデバッグ・ロジックの動きの要約であ
る。
【0123】
【表6】
【0124】モニタ・モードにおいて、ブレークポイン
トをヒットした、又はBKRP命令を実行したときは、
プリフェッチ中断の例外となる。ウォッチポイントをヒ
ットしたときは、データ中断の例外となる。CP15内
のフォールト・ステータス・レジスタ(FSR)は、M
MUとデバッグ・システムとの間を区別してアクセスを
中断するために使用される。FSRにウォッチポイント
ヒットを示す符号が加えられる。R14 abortは
実行されなかった命令後の第1の命令をポイントする。
2つの異常例、即ち「フェッチ中断上にベクトル・トラ
ップのセット」、又は「データの中断が許可されない」
がディセーブルされた。如何なる状況であっても、JT
AG HALT命令を、ソフトウェア・モードにある間
に、デバッグ・ロジックがDbHaltライン〜Dbg
InDebugラインをクリアするために使用するハン
ドシェーク・ラインとして、決して現れない部分にスキ
ャン入力されるようなことがあれば、プロセッサを(現
在Rev0ハードウェア実施により)連続的にプリフェ
ッチ中断させることになる。
【0125】ウォッチポイントをセットしたロード/ス
トア多重命令の場合に、他の命令は、多分(かつ大抵
は)その下で動作することができる。デバッガはロード
/ストア多重命令のPC値と共に復帰PC値(retu
rn PC)を知る必要があるので、ウォッチポイント
のデータ・アドレスは、D側のフォールト・アドレス・
レジスタ(FAR)に記憶され、ウォッチポイント命令
それ自身のPC(+0X8)は、I側FARに記憶され
る。再起動PCは、通常のようにR14に保持される。
【0126】コアがデバッグ・ステートにある間に未定
義の命令例外となるときは、即ちデバッグ・ステートに
ある間に、デバッガが、未定義命令をコアにスキャン入
力するときは、コアはモードを変更し、かつPCを未定
義命令トラップ・ベクトルに変更する。デバッガはこの
情報を使用して未定義命令を何時コアが見たかを判断す
ることができる。1例は、与えられた実施に対してサポ
ートされていないために、拒絶するコプロセッサ命令が
考えられる。
【0127】4.5 ベクトル捕捉 ARM10デバッグ・ユニットは、例外中にベクトルか
らフェッチの効率的なトラッピングを可能にするロジッ
クを含む。これは、DSCRに位置するベクトル捕捉エ
ネーブル(Vector Catch Enable)
により制御される。このレジスタ・フィールドにおける
複数ビットのうちの1ビットがハイにセットされ、かつ
対応する例外が発生すると、プロセッサは、レジスタ・
ブレークポイントが関係する例外ベクトルからの命令フ
ェッチにセットされたかのように作動し、次いでホール
トする。ベクトル捕捉エネーブルは、MCR命令,JT
AGポート又はソフトフェアのどちらかを介して書き込
み可能である。
【0128】例えば、プロセッサがホールト・モードに
あり、かつDSCR[18]がセットされている間にS
WI命令を実行するときは、ARM10が0X8から命
令をフェッチする。ベクトル捕捉ハードウェアは、この
アクセスを検出し、かつ内部ブレークポイント信号をセ
ットしてコアを強制的に停止させる。
【0129】ベクトル捕捉ロジックは例外エントリ中に
ベクトルからのフェッチに対してのみ感応する。従っ
て、通常のオペレーション中に、コードがベクトル内の
アドレスに分岐し、かつ対応するベクトル捕捉エネーブ
ル・ビットがセットされると、プロセッサはデバッグ・
ステートに強制されない。レジスタ・ブレークポイント
は、ベクトルからの命令フェッチを捕捉するために使用
されてもよい。
【0130】ブレークポイントを経由する割り込みのス
テート優先度は、ARM9におけるベクトル捕捉バグの
原因であった。ARM10の場合に、ベクトルが捕捉し
た例外ベクトルからフェッチされた命令の発行中に割り
込み要求が発生するときは、コアはベクトル・トラップ
を最初に処理する。コアが再起動すると、プロセッサは
割り込み要求を処理する。
【0131】5.0 サム デバッグ・ステートにおいて、CPSRのTビットは、
デバッガにより読み出され/書き込まれ、かつデバッグ
・ステートに入る又は出るときに変更されない。更に、
これは、デバッグ・ステートにある間に実行される命令
形式に影響されない。デバッグ・ステートを抜け出すと
きは、CPSR Tビットは、ARM又はサム命令が実
行されるのかを決定する。
【0132】DSCRにおけるTビットは、プリフェッ
チ・ユニットに送出される各命令と共に送出されるの
で、コアをホールトすると、デバッガが実行しようと
し、かつプロセッサをARMモード又はサム・モードに
強制設定するために使用可能とされる命令形式(ARM
又はサム)を表示する。換言すれば、DSCRにおける
Tビットは、ITRにおける命令のデコードを制御す
る。デバッグ・ステートのエントリ後に、デバッガは、
DSCRにおけるTビットをクリアしてARM10にA
RM10命令を発行できることを確認する必要がある。
デバッガに対するエントリ・シーケンスは、以下のよう
に見ることになるであろう。 (ホールト・モードによりデバッグ・ステートに入る) 0をCP14のレジスタ1のTビットにスキャン入力
(DSCR) ARMモードによりCPSRを読み出してTビット情報
を得る(オプション) ARMモードによりMCRを実行してARMステート情
報を抽出 ・ ・ MRCを使用して全てのARMをリストア 再起動PC値をR0に移動 ARM MOV R0,PCを実行 リストアR0 (命令が完了したことを確認するためにポーリング) (JTAGを通ってRESTRTコマンドを発行するこ
とによりデバッグ・ステートを抜け出す) Core Restartビットをポーリング
【0133】コアは、デバッグ・ステートを抜け出す際
に現在モードとしてCPSRにおけるTビットを使用す
る。
【0134】6.0 実施発行 デバッグ構造は、2クロック領域、即ち高速プロセッサ
・クロック及び低速JTAGクロックにより実施される
ことを意図している。大抵のデバッグ・ハードウェア
は、高速クロック速度で動作し、両者間の同期は、命令
として実行され、データ転送レジスタは、JTAGスキ
ャン・チェーンから読み出され、またJTAGスキャン
・チェーンに書き込まれる。これは、コア・クロックよ
り速くJTAGクロックを動作させることができる。
【0135】データ転送用のソース及び宛先としてCP
14を使用し、ARM内の既存のパスを再使用して、デ
ータ・バスに付加付加的な入力を追加する必要性をなく
している。ARM10には、フェッチ・ユニットにおけ
る初期命令入力として命令レジスタが設けられている。
【0136】少数のマルチICEは、JTAGハードウ
ェア内の更新機構に付加されるわずかな調整を必要とす
る設計の過程で発生する。コアに命令を発行する間に、
マルチICEソフトウェアは、前に発行した命令が完了
したか否かを検定するためにCaptureDRステー
トを通過後にビットをスキャン出力する。命令が完了し
ていないときは、デバッグ・ロジックは、2つの事象が
発生するのを防止する。第1に、TAPステート・マシ
ンがUpdateDRステートを通過するときに、スキ
ャン・チェーン5にシフトされた値がrDTRにロード
されない。第2に、TAPステート・マシンがRun−
Test/Idleステートを通過して現在ITR内の
命令を発行するので、この命令がコアに発行されない。
rDTRの33番目のビットは、「更新する」(do
update)ビットを作成するために登録され、この
「更新する」ビットは命令の発行及びrDTRの更新を
阻止するために使用される。
【0137】特に、このロジックは以下の場合に使用さ
れる。極端に速いダウンロードを試行するために、マル
チICEは、データをrDTRにスキャン入力して、R
un−Test/Idleを通ることによりコアに対し
て書き込みを発行することにより、起動する。次の各書
き込みオペレーションにおいて、rDTRのビット0を
調べて前の命令が完了したか否かを判断する。この命令
が完了していないときは、デバッガは再び同一のデータ
を与える。所定数の試行後に、命令が未だ完了していな
いときは、デバッガはDSCR内の中断発生(Abor
t Occurred)ビットを調べて中断がどこかの
点に発生したのか否かを判断する。メモリ・アクセス中
に中断が発生したときは、「更新する」ビットをクリア
することにより、次の命令が実行されてメモリをアクセ
スしようとする他の可能性を除去する。特に、これは、
中断のためにモードが突然変化し、かつユーザ・モード
ではアクセスできないメモリが特権モードにおいてアク
セス可能となるときに、重要となる。
【0138】次に実行すべき命令の後の位置に配置され
たBKPT命令を使用して、ここで、コードによる単一
ステップを実行することが必要となる。更に、レジスタ
・ブレークポイントも使用することができる。
【0139】LDCはワード長のみである。バイト/ハ
ーフワード・アクセスのためにコアに読み出し/書き込
みを強制させ、次いでスキャン出力又はその逆のために
データをR5に移動させる。
【0140】7.0 キャッシュ(CP15)及びメモ
リ動作 デバッグ・ユニットは、CP14及びCP15がいくつ
かの機能を共有しているので、TLB情報と共にキャッ
シュ情報を読み出すことができる。パイプライン・フォ
ロワ及びコプロセッサ・インターフェースは、全て同一
ブロック内に存在する。これは、CP14がCP15内
のFSRを非常に簡単に更新可能にする。CP15は1
6のレジスタを含み、その一つ(R15)はデバッガ用
のインターフェースとして使用される。MRC命令及び
MCR命令を使用してR15の読み出し及び書き込みに
より、デバッグ・ユニットは、キャッシュの完全な可視
性を有する。キャッシュについての更なる情報は、AR
M1020μA仕様を参照されたい。
【0141】マシンのステートをデバッグ・ステートに
変更した後、メモリからのデータの読み出しにより、I
キャッシュ又はDキャッシュがキャッシュに新しいエン
トリを挿入させることはない。換言すれば、キャッシュ
可能として処理されるアクセスはない。これは、キャッ
シュをキャッシュ不能、バッファ不能に強制設定するこ
とにより達成される。キャッシュ・ミスは、デバッグ・
ステートにある間に、HUMバッファにより無視される
ので、ライン・フルは発生しない。
【0142】命令データを変更するプログラム(例え
ば、自己変更コード)は、一貫性を保持するために、D
キャッシュによる書き込み後に、Iキャッシュをフラッ
シュする必要がある。
【0143】デバッグ・モードでは、ユーザ・モードに
よるメモリ・アクセスがメモリ・システム及びMMUに
対するユーザ・モード・アクセスのように見える。特権
モードにおけるメモリ・アクセスは、特権アクセスのよ
うに見える。
【0144】
【表7】
【0145】
【表8】
【図面の簡単な説明】
【図1】デバッグ機構を含むデータ処理システムを概要
的に示す図である。
【図2】図1のデータ処理システムのデバッグ機構の一
部であるデバッグ・コプロセッサを概要的に示す図であ
る。
【図3】図1のデータ処理システムのデバッグ機構の一
部であるデータ転送レジスタを概要的に示す図である。
【図4】デバッグ命令の実行を示すフロー・チャートで
ある。
【図5】デバッグ命令の繰り返し実行を示すフロー・チ
ャートである。
【図6】図2のデバッグ・コプロセッサの他の概要ブロ
ック図である。
【図7】図1のデータ処理システムのデバッグ機構の一
部であるスキャン・チェーン・コントローラを示す概要
ブロック図である。
【図8】図3に示すデータ転送レジスタのハンドシェー
キング制御の一部を説明するタイミング図である。
【図9】ハードウェア・デバッグ・モードと通常モード
との間の切り換えを制御しているメイン・プロセッサと
デバッグ・システムとの間のハンドシェーキング信号を
説明するタイミング図である。
【符号の説明】
2 データ処理システム 4 メイン・プロセッサ(コア) 6 デバッグ・コプロセッサ(コプロセッサ) 10 プリフェッチ・ユニット 12 スキャン・チェーン・コントローラ 14 命令パイプライン 78 デコーダ 28 デバッグ・ステータス及び制御レジスタ(DSC
R) 16 ウォッチポイント・レジスタ 18 ブレークポイント・レジスタ

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 データ処理装置において、 メイン・プロセッサ・クロック周波数にあるメイン・プ
    ロセッサ・クロック信号により駆動されるメイン・プロ
    セッサと、 少なくとも一部分がデバッグ・クロック周波数にあるデ
    バッグ・クロック信号により駆動されるデバッグ・ロジ
    ックであって、前記デバッグ・クロック周波数が前記メ
    イン・プロセッサ・クロック周波数と異なり、かつ前記
    メイン・プロセッサ・クロック信号が前記デバッグ・ク
    ロック信号と非同期である前記デバッグ・ロジックと、 前記デバッグ・ロジックによりデータ処理命令が転送さ
    れ、かつ前記メイン・プロセッサにより前記データ処理
    命令が読み出される命令転送レジスタとを備え、 通常モードからデバッグ・モードへ切り換えるときは、
    前記データ処理命令が前記命令転送レジスタ内に存在す
    るまで、前記メイン・プロセッサが前記メイン・プロセ
    ッサ・クロック信号により駆動され続けてノー・オペレ
    ーション命令を実行し、前記メイン・プロセッサ・クロ
    ック信号により駆動されている間に、前記デバッグ・ロ
    ジックが前記メイン・プロセッサをトリガして前記デー
    タ処理命令を読み出し、かつ実行するデータ処理装置。
  2. 【請求項2】 前記メイン・プロセッサは、命令パイプ
    ラインを含み、かつ前記通常モードから前記デバッグ・
    モードに切り換えるときは、前記デバッグ・ロジック
    は、任意のデータ処理命令が前記メイン・プロセッサに
    より前記命令転送レジスタから読み出される前に、前記
    命令パイプラインを空にするように前記メイン・プロセ
    ッサを制御する請求項1記載の装置。
  3. 【請求項3】 前記デバッグ・ロジックは、ブレークポ
    イント命令の実行、外部ブレークポイント信号、ブレー
    クポイント・トリガ及びウォッチポイント・トリガのう
    ちの1以上に応答して、前記通常モードから前記デバッ
    グ・モードへの切り換えをトリガする請求項1及び2の
    うちのいずれかの項記載の装置。
  4. 【請求項4】 前記データ処理命令が直列スキャン・チ
    ェーン経由で前記命令転送レジスタにロードされる請求
    項1、2及び3のうちのいずれかの項記載の装置。
  5. 【請求項5】 前記デバッグ・ロジックによりデータ値
    が書き込み可能とされ、かつデータ値が読み出し可能と
    されるデータ転送レジスタを備え、前記メイン・プロセ
    ッサは、前記メイン・プロセッサ・クロック信号により
    駆動されている間に、前記データ転送レジスタに対する
    アクセスを有する前記請求項のいずれかの項記載の装
    置。
  6. 【請求項6】 前記データ値は、直列スキャン・チェー
    ン経由で前記データ転送レジスタへ及びこのレジスタか
    ら転送される請求項5記載の装置。
  7. 【請求項7】 前記データ転送レジスタは、前記直列ス
    キャン・チェーンから書き込み可能とされ、かつ前記メ
    イン・プロセッサにより読み出し可能とされる第1のデ
    ータ転送レジスタと、前記直列スキャン・チェーンによ
    り読み出し可能とされ、かつ前記メイン・プロセッサか
    ら書き込み可能とされる第2のデータ転送レジスタとを
    備えた請求項6記載の装置。
  8. 【請求項8】 前記デバッグ・ロジックは、コプロセッ
    サ・バスを介して前記メイン・プロセッサに接続され、
    かつ前記メイン・プロセッサ・クロック信号により駆動
    されるデバッグ・コプロセッサを含む前記請求項のうち
    のいずれかの項記載の装置。
  9. 【請求項9】 前記デバッグ・ロジックは、前記デバッ
    グ・クロック信号により駆動されたスキャン・チェーン
    ・コントローラを含む請求項8に記載の装置。
  10. 【請求項10】 データ処理方法において、 メイン・プロセッサ・クロック周波数にあるメイン・プ
    ロセッサ・クロック信号によりメイン・プロセッサを駆
    動するステップと、 前記デバッグ・クロック周波数にあるデバッグ・クロッ
    ク信号によりデバッグ・ロジックを駆動するステップで
    あって、前記デバッグ・クロック周波数は、前記メイン
    ・プロセッサ・クロック周波数と異なり、かつ前記メイ
    ン・プロセッサ・クロック信号は、前記デバッグ・クロ
    ック信号と非同期であるステップと、 前記デバッグ・ロジックを使用して、データ処理命令を
    命令転送レジスタに転送するステップと、 前記メイン・プロセッサを使用して、前記命令転送レジ
    スタから前記データ処理命令を読み出すステップとを備
    え、通常モードからデバッグ・モードへ切り換えるとき
    に、前記メイン・プロセッサは、データ処理命令が前記
    命令転送レジスタ内に存在するまで、前記メイン・プロ
    セッサ・クロック信号により駆動され続けてノー・オペ
    レーションを実行し、かつ前記デバッグ・ロジックは、
    前記メイン・プロセッサ・クロック信号により駆動され
    ている間に、前記メイン・プロセッサをトリガして前記
    データ処理命令を読み出し、かつ実行するデータ処理方
    法。
  11. 【請求項11】 請求項1に記載され、かつ添付図面を
    参照して以上で実質的に説明したデータ処理装置。
  12. 【請求項12】 請求項10に記載され、かつ添付図面
    を参照して以上で実質的に説明したデータ処理装置。
JP2000112812A 1999-05-19 2000-04-14 デバッグ命令を実行するデータ処理装置及びそのデータ処理方法 Pending JP2000330826A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/314,025 US6321329B1 (en) 1999-05-19 1999-05-19 Executing debug instructions
US314025 1999-05-19

Publications (1)

Publication Number Publication Date
JP2000330826A true JP2000330826A (ja) 2000-11-30

Family

ID=23218228

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000112812A Pending JP2000330826A (ja) 1999-05-19 2000-04-14 デバッグ命令を実行するデータ処理装置及びそのデータ処理方法

Country Status (3)

Country Link
US (1) US6321329B1 (ja)
JP (1) JP2000330826A (ja)
GB (1) GB2350215B (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002366946A (ja) * 2001-06-08 2002-12-20 Mega Chips Corp 画像処理装置
US7168032B2 (en) 2000-12-15 2007-01-23 Intel Corporation Data synchronization for a test access port
JP2007164354A (ja) * 2005-12-12 2007-06-28 Nec Corp 情報処理装置およびその制御方法
JP2013542499A (ja) * 2010-09-24 2013-11-21 アーム・リミテッド データ処理装置のデバッグ処理
JP2013542498A (ja) * 2010-09-24 2013-11-21 アーム・リミテッド データ処理装置のデバッグ

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6532553B1 (en) * 1998-12-08 2003-03-11 Arm Limited Debugging data processing systems
DE60028379T2 (de) * 1999-03-30 2007-03-08 Siemens Energy & Automation, Inc. Speicherprogrammierbare steuerung
US6526562B1 (en) * 1999-05-10 2003-02-25 Analog Devices, Inc. Methods for developing an integrated circuit chip design
US7240303B1 (en) 1999-11-30 2007-07-03 Synplicity, Inc. Hardware/software co-debugging in a hardware description language
US6931572B1 (en) 1999-11-30 2005-08-16 Synplicity, Inc. Design instrumentation circuitry
US6834356B1 (en) * 2000-02-15 2004-12-21 International Business Machines Corporation Functional clock generation controlled by JTAG extensions
US6732311B1 (en) * 2000-05-04 2004-05-04 Agere Systems Inc. On-chip debugger
US20020065646A1 (en) * 2000-09-11 2002-05-30 Waldie Arthur H. Embedded debug system using an auxiliary instruction queue
GB2368930B (en) 2000-10-17 2005-04-06 Hewlett Packard Co Establishment of a deferred network communication session
US6961923B2 (en) * 2000-12-07 2005-11-01 International Business Machines Corporation Method of detecting zombie breakpoints
EP1349071A1 (en) * 2002-03-29 2003-10-01 STMicroelectronics N.V. Integrated circuit with direct debugging architecture
US7827510B1 (en) 2002-06-07 2010-11-02 Synopsys, Inc. Enhanced hardware debugging with embedded FPGAS in a hardware description language
US7107489B2 (en) * 2002-07-25 2006-09-12 Freescale Semiconductor, Inc. Method and apparatus for debugging a data processing system
US20040019828A1 (en) * 2002-07-25 2004-01-29 Gergen Joseph P. Method and apparatus for debugging a data processing system
US7013409B2 (en) * 2002-07-25 2006-03-14 Freescale Semiconductor, Inc. Method and apparatus for debugging a data processing system
US8374841B2 (en) * 2002-11-22 2013-02-12 Texas Instruments Incorporated Precise detection of triggers and trigger ordering for asynchronous events
US20040153895A1 (en) * 2002-11-22 2004-08-05 Manisha Agarwala Imprecise detection of triggers and trigger ordering for asynchronous events
US7509533B1 (en) * 2003-06-30 2009-03-24 Sun Microsystems, Inc. Methods and apparatus for testing functionality of processing devices by isolation and testing
US7216259B2 (en) * 2004-04-28 2007-05-08 Via Telecom Co., Ltd. Increment power saving in battery powered wireless system with software configuration
US7552360B2 (en) 2005-03-21 2009-06-23 Texas Instruments Incorporated Debug and test system with format select register circuitry
US7761762B2 (en) * 2004-12-02 2010-07-20 Texas Instruments Incorporated Adapter implemented background data transfers while tap in non-scan state
US8205186B1 (en) 2005-04-11 2012-06-19 Synopsys, Inc. Incremental modification of instrumentation logic
US7711914B2 (en) * 2005-06-28 2010-05-04 Hewlett-Packard Development Company, L.P. Debugging using virtual watchpoints
US20060294433A1 (en) * 2005-06-28 2006-12-28 Thelen Greg W Debugging using watchpoints
JP2007058731A (ja) * 2005-08-26 2007-03-08 Matsushita Electric Ind Co Ltd プロセッサ、及び並列命令実行対応デバッグ装置
US7506228B2 (en) * 2006-02-14 2009-03-17 Atmel Corporation Measuring the internal clock speed of an integrated circuit
US7596719B2 (en) 2006-02-14 2009-09-29 Atmel Corporation Microcontroller information extraction system and method
US7506205B2 (en) * 2006-02-14 2009-03-17 Atmel Corporation Debugging system and method for use with software breakpoint
US8010774B2 (en) * 2006-03-13 2011-08-30 Arm Limited Breakpointing on register access events or I/O port access events
US7555605B2 (en) * 2006-09-28 2009-06-30 Freescale Semiconductor, Inc. Data processing system having cache memory debugging support and method therefor
US7778985B2 (en) * 2006-12-08 2010-08-17 Computer Associates Think, Inc. System and method for suspending transactions being executed on databases
US7783867B2 (en) * 2007-02-01 2010-08-24 International Business Machines Corporation Controlling instruction execution in a processing environment
US8972671B2 (en) 2007-05-14 2015-03-03 Freescale Semiconductor, Inc. Method and apparatus for cache transactions in a data processing system
JP5067111B2 (ja) * 2007-10-18 2012-11-07 富士通セミコンダクター株式会社 半導体集積回路及びデバッグモード決定方法
DE102008019861A1 (de) 2008-04-17 2009-10-29 Göpel electronic GmbH Verfahren zum Steuern von Anschlusspins eines emulationsfähigen Bausteins und Anordnung zur Durchführung des Verfahrens
US8275977B2 (en) * 2009-04-08 2012-09-25 Freescale Semiconductor, Inc. Debug signaling in a multiple processor data processing system
US8161328B1 (en) 2010-05-27 2012-04-17 Western Digital Technologies, Inc. Debugger interface
US8700955B2 (en) * 2011-09-22 2014-04-15 Freescale Semiconductor, Inc. Multi-processor data processing system having synchronized exit from debug mode and method therefor
US8640007B1 (en) 2011-09-29 2014-01-28 Western Digital Technologies, Inc. Method and apparatus for transmitting diagnostic data for a storage device
US9405541B2 (en) 2012-03-16 2016-08-02 International Business Machines Corporation Run-time instrumentation indirect sampling by address
US9430238B2 (en) 2012-03-16 2016-08-30 International Business Machines Corporation Run-time-instrumentation controls emit instruction
US9280447B2 (en) 2012-03-16 2016-03-08 International Business Machines Corporation Modifying run-time-instrumentation controls from a lesser-privileged state
US9367316B2 (en) 2012-03-16 2016-06-14 International Business Machines Corporation Run-time instrumentation indirect sampling by instruction operation code
US9158660B2 (en) 2012-03-16 2015-10-13 International Business Machines Corporation Controlling operation of a run-time instrumentation facility
US9442824B2 (en) 2012-03-16 2016-09-13 International Business Machines Corporation Transformation of a program-event-recording event into a run-time instrumentation event
US9471315B2 (en) 2012-03-16 2016-10-18 International Business Machines Corporation Run-time instrumentation reporting
US9411591B2 (en) 2012-03-16 2016-08-09 International Business Machines Corporation Run-time instrumentation sampling in transactional-execution mode
US9454462B2 (en) 2012-03-16 2016-09-27 International Business Machines Corporation Run-time instrumentation monitoring for processor characteristic changes
US9483268B2 (en) 2012-03-16 2016-11-01 International Business Machines Corporation Hardware based run-time instrumentation facility for managed run-times
US9465716B2 (en) 2012-03-16 2016-10-11 International Business Machines Corporation Run-time instrumentation directed sampling
US9250902B2 (en) 2012-03-16 2016-02-02 International Business Machines Corporation Determining the status of run-time-instrumentation controls
US9626267B2 (en) * 2015-01-30 2017-04-18 International Business Machines Corporation Test generation using expected mode of the target hardware device
WO2022235265A1 (en) * 2021-05-05 2022-11-10 Zeku, Inc. Debug channel for communication between a processor and an external debug host

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5297276A (en) 1991-12-26 1994-03-22 Amdahl Corporation Method and apparatus for maintaining deterministic behavior in a first synchronous system which responds to inputs from nonsynchronous second system
US5404359A (en) 1992-06-29 1995-04-04 Tandem Computers Incorporated Fail safe, fault tolerant circuit for manufacturing test logic on application specific integrated circuits
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
JP3846939B2 (ja) 1995-08-30 2006-11-15 フリースケール セミコンダクター インコーポレイテッド データプロセッサ
DE69734379T2 (de) 1996-08-30 2006-07-06 Texas Instruments Inc., Dallas Vorrichtung zur Prüfung von integrierten Schaltungen
GB2337834B (en) 1998-03-06 2003-02-12 Lsi Logic Corp Microprocessor debugging

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7168032B2 (en) 2000-12-15 2007-01-23 Intel Corporation Data synchronization for a test access port
JP2002366946A (ja) * 2001-06-08 2002-12-20 Mega Chips Corp 画像処理装置
JP4677582B2 (ja) * 2001-06-08 2011-04-27 株式会社メガチップス 画像処理装置
JP2007164354A (ja) * 2005-12-12 2007-06-28 Nec Corp 情報処理装置およびその制御方法
JP2013542499A (ja) * 2010-09-24 2013-11-21 アーム・リミテッド データ処理装置のデバッグ処理
JP2013542498A (ja) * 2010-09-24 2013-11-21 アーム・リミテッド データ処理装置のデバッグ
US8874883B2 (en) 2010-09-24 2014-10-28 Arm Limited Debugging of a data processing apparatus

Also Published As

Publication number Publication date
GB2350215B (en) 2003-09-03
US6321329B1 (en) 2001-11-20
GB2350215A (en) 2000-11-22
GB9929363D0 (en) 2000-02-02

Similar Documents

Publication Publication Date Title
JP4475734B2 (ja) データ処理装置及びデータ処理方法
JP2000330826A (ja) デバッグ命令を実行するデータ処理装置及びそのデータ処理方法
JP2000330820A (ja) データ処理装置及びデータ処理方法
US5978902A (en) Debug interface including operating system access of a serial/parallel debug port
US6094729A (en) Debug interface including a compact trace record storage
JP4190114B2 (ja) マイクロコンピュータ
US6189140B1 (en) Debug interface including logic generating handshake signals between a processor, an input/output port, and a trace logic
US6314530B1 (en) Processor having a trace access instruction to access on-chip trace memory
US6142683A (en) Debug interface including data steering between a processor, an input/output port, and a trace logic
US6154856A (en) Debug interface including state machines for timing synchronization and communication
EP0849674B1 (en) Method and apparatus for debugging a pipeline microprocessor
US6055649A (en) Processor test port with scan chains and data streaming
US5970241A (en) Maintaining synchronism between a processor pipeline and subsystem pipelines during debugging of a data processing system
US6145100A (en) Debug interface including timing synchronization logic
EP0849671B1 (en) A method for utilizing a multi-word instruction register during debugging of a data processing system
US6205560B1 (en) Debug system allowing programmable selection of alternate debug mechanisms such as debug handler, SMI, or JTAG
US7506205B2 (en) Debugging system and method for use with software breakpoint
US6081885A (en) Method and apparatus for halting a processor and providing state visibility on a pipeline phase basis
US20110010531A1 (en) Debuggable microprocessor
WO2001063434A1 (en) Methods and apparatus for dual-use coprocessing/debug interface
US8839038B2 (en) Diagnosing code using single step execution
US20050240820A1 (en) Method and apparatus for multiprocessor debug support
JPH0689201A (ja) アイドルモードをアクセスするラン/ストップピンを有するマイクロプロセッサ及びそれを動作させる方法
JPH1124959A (ja) マイクロプロセッサのトレース情報出力方法
EP0849672B1 (en) Non-intrusive software breakpoints in a processor instructions execution pipeline

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090710

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100105