JP3708176B2 - データ処理装置及びデータ処理方法 - Google Patents

データ処理装置及びデータ処理方法 Download PDF

Info

Publication number
JP3708176B2
JP3708176B2 JP21365495A JP21365495A JP3708176B2 JP 3708176 B2 JP3708176 B2 JP 3708176B2 JP 21365495 A JP21365495 A JP 21365495A JP 21365495 A JP21365495 A JP 21365495A JP 3708176 B2 JP3708176 B2 JP 3708176B2
Authority
JP
Japan
Prior art keywords
address
trace
data
instruction
code
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.)
Expired - Lifetime
Application number
JP21365495A
Other languages
English (en)
Other versions
JPH0895824A (ja
Inventor
ウオルター フリン デビッド
Original Assignee
エイアールエム リミテッド
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 エイアールエム リミテッド filed Critical エイアールエム リミテッド
Publication of JPH0895824A publication Critical patent/JPH0895824A/ja
Application granted granted Critical
Publication of JP3708176B2 publication Critical patent/JP3708176B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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/3636Software debugging by tracing the execution of the program
    • G06F11/364Software debugging by tracing the execution of the program tracing values on a bus

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)
  • Debugging And Monitoring (AREA)
  • Advance Control (AREA)

Description

【0001】
【産業上の利用分野】
本発明はデータ処理の分野におけるデータ処理装置及びデータ処理方法に関する。特に、本発明は、データ処理装置において例えばソフトウェア及びハードウエアの開発のデバッグ中に用いられるトレース・オペレーションを行うデータ処理装置及びデータ処理方法に関する。
【0002】
【従来の技術】
トレース・オペレーションを行う際に重要な機能は、データ処理システムが現在実行している命令のアドレスを与えるトレース・データを提供することである。このトレース情報をリアル・タイムで供給しようとするときは、このトレース・アドレス情報を外部解析装置に提供するために専用のバスが用いられる。
【0003】
【発明が解決しようとする課題】
前述の解決法による問題は、データ処理システム内で用いるアドレスのビット長が増大することにより発生する。即ち、32ビット・アドレスを使用することがますます一般化しており、これがリアル・タイムによりトレース・アドレスを搬送するためには少なくとも32ビットのトレース・バスを必要とすることになる。このような大きなトレース・バスを設けなければならないということは重大な欠点となることは理解されるであろう。このトレース・バスを実施するために必要とされる集積回路の外部接続ピンの数は、接続ピンの総数に対してかなりの比率のものとなり、集積回路のコストを増加させ、かつ/ 又は他の目的に提供し得る接続ピンを制限する結果となる。
【0004】
【課題を解決するための手段】
本発明の目的は、不都合に広いトレース・バスを必要とすることなく、リアル・タイムのトレース情報を提供することである。
【0005】
本発明は、一つの特徴から見ると、データを処理する装置を提供するものであって、前記装置は、
(i)命令コードを実行する中央処理装置コアであって、各命令コードがメモリ内にアドレスを有し、前記データ処理装置コアとメモリとの間にアドレス・バスが伸延している前記中央処理装置コアと、
(ii)前記中央処理装置コアに命令コードを供給する命令パイプラインであって、前記命令コードが前記メモリから前記命令パイプラインへフェッチされ、次いで前記命令パイプラインを介して前記中央処理装置コアに転送して実行される前記命令パイプラインと、
(iii)トレース・バス上にトレース・データ信号を発生するトレース手段とを備え、
前記トレース手段は、
(a)前に実行した命令コードのアドレスに逐次的に連続するアドレスを有した命令コードを実行するときに、前記トレース・バス上にトレース・アドレス増加信号を発生するトレース・アドレス増加信号発生手段と、
(b)前記フェッチされたコード・アドレスが前にフェッチした命令コードのアドレスに逐次的に連続しないときは、前記パイプラインにフェッチされた命令コードのフェッチされたコード・アドレスを表示するトレース・アドレスの複数部分を前記トレース・バス上に時分割多重化するトレース・アドレス発生手段とを備え、前記時分割多重化は、前記フェッチされたコード・アドレスを有する前記命令コードが前記命令パイプラインを介して転送され、前記中央処理装置コアに到達して実行される間に、実行されるものである。
【0006】
本発明は、命令パイプラインを使ったデータ処理システムにおいて(例えば、分岐(Branch)又はジャンプ命令を実行した結果として)逐次的でない命令フェッチが開始されたときに、逐次的でない命令コードが中央処理装置コアにより実行される前に、命令コードがパイプラインを進行する期間が存在する事を認める。この期間はトレース・バスへ逐次的でないアドレスの時分割多重化部分に利用することができる。トレース・バスは1回にアドレスの一部分を搬送するときに必要となるだけなので、そうしないのであれば、これまで可能としていたものより狭くすることができる。
【0007】
より狭いトレース・バスを使用可能にさせる本発明の装置の他の特徴は、トレース・アドレス増加信号を利用することである。このような信号は単一ビットであってもよく、必要なことは逐次的な命令を実行する大多数の命令サイクルで出力されることだけである。トレース・データを解析している装置は、現在実行しているアドレスのレコードを記憶し、かつトレース・アドレス増加信号に応答してアドレスを単純に増加させて現在実行している命令のリアル・タイム表示を提供する。
【0008】
逐次的でない命令がまず命令パイプラインにロードされると、逐次的でない命令がパイプラインの終端に到達し、中央処理装置コアにより実行される時までに、外部装置がそのアドレスを受け取っていないことは、理解されるであろう。しかし、実際に実行する際には、時分割多重化を完了させ、逐次的でない命令のフル・アドレスをシステムに利用できるようにさせてトレース・データを解析可能にさせる。
【0009】
前述のように、パイプラインに対して逐次的でないフェッチに帰結する命令を実行させると、逐次的でないフェッチを発生させた命令に逐次的に続く多数の命令が既にパイプラインにロードされているが、実行はもはや必要ではない。この状況に対処するために、前記パイプラインに対して逐次的でないフェッチが発生したときは、パイプライン・パージ手段が前記パイプラインへ既にフェッチされた保留中の命令コードを実行せずに前記パイプラインから消去する。
【0010】
システムから出力されるトレース・アドレスは逐次的でない命令のフェッチ・コード・アドレスと同一である必要はないこと、即ちトレース・アドレスは前記フェッチされたコード・アドレスを符号化したものであってもよいことは、理解されるであろう。しかし、好ましい実施例では、前記トレース・アドレスが前記フェッチされたコード・アドレスであれば、簡単となる。
【0011】
同様にして、トレース・アドレスの種々の部分を多数の方法により取り出すことができる。しかし、本発明を実施するために必要なハードウエアは、前記トレース・アドレスの前記複数部分が前記フェッチされたコード・アドレスの連続的な多数ビットのセグメントであるときは、簡単となる。
【0012】
前記トレース・アドレス発生手段が前記トレース・アドレスの前記複数部分を前記トレース・バス上で多重レベル・ビットの符号化をするときは、更に、トレース・バスに必要とするビット・ライン数を減少させることが可能である。
【0013】
前述のシステムは実行すべきアドレス位置記憶命令コードを表わすトレース・アドレスの出力を取り扱う。高度に有用な他のクラスのトレース・データは、解析によりシステムのオペレーション中にアクセスされるアドレス記憶データを知ることである。本発明の好ましい実施例は、トレース・バスの幅を過度に増加させることなく、この要求に対処するために、
(i)前にアクセスしたデータ・ワードに逐次的に続くアドレスを有したデータ・ワードに対してデータ・アクセスが発生するときは、前記トレース・バス上にデータ・アクセス・アドレス増加信号を発生するデータ・アクセス・アドレス増加信号発生手段と、
(ii)前のデータ・アクセス・オペレーションのアドレスに逐次的に続いていないデータ・アクセス・アドレスに対するデータ・アクセス・オペレーションに応答して、前記トレース・バス上に前記データ・アクセス・アドレスを表わすデータ・アドレスの複数部分を時分割多重化するデータ・アクセス発生手段と
を備える。
【0014】
データ・アクセス・アドレスをトレースする前述の構成は、データ・アクセスのかなりの部分が逐次的であり、かつデータ・アクセス・アドレス増加信号の使用により単純にトレースすることができることが認識されると共に、残りのデータ・アクセス・アドレスは逐次的ではなく、かつ他の出力手段を必要とする。
【0015】
フェッチ・コード・アドレス及びトレース・アドレスに関して、データ・アドレスはデータ・アクセス・アドレスと同一であり、データ・アドレス部分はデータ・アクセス・アドレスが連続する多重ビットのセグメントであり、かつデータ・アクセス・アドレスを多レベル・ビットの符号化により、更なるビット幅における減少を達成することができることが好ましい。
【0016】
データ・アドレスをトレース・バス上へ時分割多重化するためには、1サイクル以上必要なことが理解されるであろう。従って、トレース・バスを残りのデータ処理装置と同一速度で駆動しようとするときは、前記データ・アクセス・アドレス発生手段がデータ・アクセス・オペレーションを含む前記命令コードの実行を越えるオーバーラン期間中に前記データ・アドレスの複数部分を前記トレース・バス上へ時分割多重化することが必要である。
【0017】
そのデータ・アクセスを発生させた命令の実行が続くデータ・アドレスの出力のオーバーランの観点では、逐次的でないデータ・アクセスに逐次的でない命令コード・フェッチが続く問題が潜在的に存在する。これに対処するために、本発明の好ましい実施例は、前記トレース・アドレス発生手段が、前記オーバーラン期間を開始遅延内に調整できるように、前記フェッチしたコード・アドレスから前記命令コードのフェッチを開始した命令コードの実行を完結させる遅延の後に、前記トレース・バスへ前記トレース・アドレスの複数部分を時分割多重化し始めるというものである。
【0018】
与えられた時間にトレース・バス上に出力することが可能な異なる複数の型式及び部分に対処するために、本発明の好ましい実施例は、前記トレース・バス上に部分識別信号を発生する手段を備え、前記部分識別信号は、前記トレース・アドレスの複数部分又は前記データ・アドレスの前記複数部分のいずれが前記トレース・バス上に存在するのかを示す。
【0019】
時分割多重化を可能にする好ましい実施例において、前記トレース・アドレス発生手段は、前記アドレス・バスから前記フェッチされたコード・アドレスを補足し、かつ記憶するフェッチされたコード・アドレス補足手段と、前記トレース・アドレスの前記複数部分として前記フェッチされたコード・アドレス補足手段から前記フェッチされたコード・アドレスの異なる複数部分を連続的に選択するマルチプレクサとを備えるものである。
【0020】
本発明の好ましい実施例は、メモリに共通のアドレス・バスを用いて命令フェッチ及びデータ・アクセス要求のインターリーブを処理するために、前記中央処理装置コアから複数のステータス・フラグを受け取り、かつ命令コードの逐次的なフェッチが前記アドレス・バスの監視から独立して行われているか否かを推測する推測ロジックを備える。
【0021】
前記アドレス・バスから独立して動作する前記推測ロジックは、アドレス・バス上に現れる実際のアドレスが逐次的でないように、逐次的な命令フェッチがデータ・アクセスと混合されていても、逐次的な命令フェッチを調べることができる。
【0022】
本発明の相補的な特徴において、トレース・バスからトレース・データを受け取る装置を提供するものであって、前記装置は、
(i)前記中央処理装置コアにより現在実行されている命令コードの陰の命令コード・アドレスを記憶する陰のプログラム・カウンタ・レジスタと、
(ii)前記トレース・バスから受け取ったトレース・アドレス増加信号に応答して前記陰の命令コード・アドレスを増加するインクリメンタと、
(iii)前記トレース・バスから受け取ったトレース・アドレスの複数部分を時分割デマルチプレックスして新しい影の命令コード・アドレスを駆動し、前記陰のプログラム・カウンタ・レジスタにロードさせる手段と
を備える。
【0023】
このトレース・データ・レシーバは、時分割多重化されたトレース・アドレスに応答し、かつこれらアドレスを前記フェッチされたコード・アドレスに再アッセンブリすることができると共に、逐次的な命令コードを実行するときはトレース・アドレス増加信号に応答する。
【0024】
更にデータ・アクセス・アドレス・トレーシングも処理することができるトレース・データ・レシーバの好ましい実施例は、
最終的なデータ・ワードの陰のデータ・アクセス・アドレスを記憶して前記中央処理装置コアによりアクセスされる陰のデータ・アクセス・アドレス・レジスタと、
前記トレース・バスから受け取ったデータ・アクセス・アドレス増加信号に応答して前記影のデータ・アクセス・アドレスを増加させるインクリメンタと、
前記トレース・バスから受け取ったデータ・アドレスの複数部分を時分割デマルチプレックスして前記陰のデータ・アクセス・アドレス・レジスタにロードされる新しい影のデータ・アクセス・アドレスを得る手段と
を備えている。
【0025】
他の特徴から見て、本発明は、データを処理する方法であって、前記方法は、(i)メモリから命令パイプラインへ命令コードをフェッチし、次いで前記命令コードを前記命令パイプラインを介して中央処理装置コアへ転送して実行させ、各命令コードが前記メモリ内のアドレスを有するステップと、
(ii)前に実行した命令コードのアドレスに逐次的に続くアドレスを有した命令コードを実行するときは、トレース・バス上にトレース・アドレス増加信号を発生するステップと、
(iii)前記フェッチしたコード・アドレスが前にフェッチした命令コードのアドレスに逐次的に続いていないときは、前記パイプラインへフェッチした命令コードのフェッチされたコード・アドレスを表わすトレース・アドレスの複数部分をトレース・バス上に時分割多重化するステップと
を備え、前記時分割多重化は、前記フェッチされたコード・アドレスを有する前記命令コードが前記命令パイプラインを介して転送され、前記中央処理装置コアに到達して実行される間に、行われる。
【0026】
以上、及び本発明の他の目的、特徴及び効果は、添付図面に関連して読むべき実施例の下記詳細な説明から明らかである。
【0027】
【実施例】
図1はアドレス・バス4と、オン・チップ・メモリ8への命令/データ・バス6とを有する中央処理装置集積回路2を示す。中央処理装置集積回路2はトレース・バス12を介してトレース・データ・レシーバ10に接続される。
【0028】
中央処理装置集積回路2内には、中央処理装置コア14が存在し、中央処理装置コア14は命令パイプライン16を介して供給された命令コードを実行する。命令コードはオン・チップ・メモリ8から命令/データ・バス6を介してフェッチされて、命令パイプライン16のフェッチ段内に記憶される。このフェッチ段からは命令コードがデコード段へ転送され、次いで中央処理装置コア14へ転送されて実行される。
【0029】
更に、中央処理装置コア14によりオン・チップ・メモリ8から読み出された、又はこれに記憶されたデータ・ワードは、命令/データ・バス6を介して転送され、かつ異なるパスを介して中央処理装置コア14に入力される。
【0030】
アドレス・バス4は中央処理装置コア14とオン・チップ・メモリ8との間に設けられている。中央処理装置コア14は、アドレス・バス4上にアドレスを主張して、オン・チップ・メモリ8内のどのメモリ位置をアクセスすべきか、及びその値を命令/データ・バス6を介して返送した又は書き込んだことをオン・チップ・メモリ8に対して示す。
【0031】
更に、中央処理装置集積回路2はトレース・データ発生器18も備えている。トレース・データ発生器18はアドレス・バス4から信号を受け取って、信号をトレース・バス12を介してトレース・データ・レシーバ10へ出力する。トレース・バス12は、中央処理装置集積回路2の外部のアイテムと通信をするために、中央処理装置集積回路2のパッケージ上に外部ピンを必要としている。広幅のアドレス及びデータ・バス(例えば、32ビット・アーキテクチャ及び64ビット・アーキテクチャ)を使用する傾向により、使用可能な外部ピン数への要求が増大している。従って、全幅のトレース・バスを設けてアドレスを出力させると、かなりのオーバヘッドとなる。
【0032】
図2はトレース・データ発生器18を更に詳細に示す。トレース・データ発生器18は図2の左側で39入力を受け取っている。トレース・データ発生器18は図2の右側で22出力信号を発生している。
【0033】
低速オフ・チップ・クロック信号MClkは、システムがNANDゲ−ト20に対して待機状態NWaitにあるか否かを示す信号と共に入力されてトレース・クロック信号TAClkを発生させる。
【0034】
シーケンス推測ロジック及びステート・マシン・ブロック22は中央処理装置コア14から多数のステータス信号を受け取っている。これら信号には、メモリ要求否定信号NMReq、シーケンシャル・メモリ・アクセス信号Seq、実行否定信号NExec、読み出し又は書き込み否定信号NRW、及びオペレーション・コード否定信号NOpcが含まれている。読み出し又は書き込み否定信号NRW及びオペレーション・コード否定信号NOpcは、第1ラッチ24によりラッチされる。前述のステータス信号特性の説明は、アドバンスドRISCマシンズ(株)(Advanced RISC Machines Limited)により製造されたARM6マイクロプロセッサのデータ・シートに見いだすことができる。
【0035】
ロジック・ブロック22はこれらのステータス・フラグを組合わせて複数の出力信号を発生する。トレース・アドレス増加信号TPCIncは、命令パイプライン16を進行させて命令コードを中央処理装置コア14に転送させ、これを中央処理装置コア14に供給した前の命令コードに逐次的に続くアドレスとして実行させたか否かを示す。データ・アクセス・アドレス増加信号TDCIncは、メモリ8に対する前のデータ・アクセスに逐次的に続くアドレスでメモリ8に対してデータ・アクセス(読み出しか、又は書き込みアクセス)を行っていることを示す。トレース実行信号TAExecは、(例えば、条件実行フラグの結果として)中央処理装置コアに転送されている命令コードが実行されていないかどうかを示す。最後に、トレース・バス多重化信号TAMux[1:0]は、これが発生したときに、命令コード又はデータ・アクセス・ワードのアドレスのどの部分がトレース・バス12上に出力されているのかを示す。
【0036】
アドレス・バス4は32ビット・バス搬送32ビット・アドレスである。これらのアドレスは、トレース・データ発生器18の制御によりトレース・バス12上に時分割多重化される16ビット部分に分割される。32ビット・アドレスA[31:0]は第2のラッチ26に入力されてラッチされる。このアドレスがデータ・アクセス・アドレスであれば、その上位部分DA[31:16」を選択してTAMux[1:0]信号によりスイッチングされているマルチプレクサ28によってトレース・バス12に出力される。一方、このようなデータ・アクセス・アドレスの最下位部分は第1レジスタ30に記憶され、次のサイクルでレジスタ30からDA[15:0]としてマルチプレクサ28を介して出力される。
【0037】
アドレスA[31:0]が逐次的でないフェッチされた命令の命令コード・アドレスである場合は、そのフル・アドレスが第2レジスタ32に記憶される。アドレスPC[31:16]の最上位部分は後続のサイクルでマルチプレクサ28を介して出力され、また第3レジスタ34に記憶されている最下位部分PC[15:0]は次のサイクルで出力される。第2レジスタ32及び第3レジスタ34の機能は、命令パイプライン16の複数段の動作を反映するように使用される。即ち、命令コードが命令パイプライン16内のデコード段にあるとときは、逐次的でなくフェッチされた命令コード・アドレスの最上位部分が出力され、また命令コードが中央処理装置コア14内で実行されているときは、その最下位部分が出力される。
【0038】
トレース・データ発生器18の動作は、逐次的な命令コードのフェッチが実行されたときに、フル命令コード・アドレスを出力することを必要とせずに、トレース・アドレス増加信号を主張するというものである。しかし、逐次的でない命令コード・フェッチを行ったときは、マルチプレクサ28、第2ラッチ26、第2レジスタ32及び第3レジスタ34を用い、トレース・バス12を介してトレース・データ発生器18からフル・アドレスが時分割多重化される。
【0039】
同様の形式により、逐次的なデータ・アクセスを行うときは、データ・アクセス・アドレス増加信号TDIncのみを主張する必要がある。逐次的でないデータ・アクセスを行うときは、第2ラッチ26及び第1レジスタ30を用い、フル・データ・アクセス・アドレスがマルチプレクサ28を介して出力される。
【0040】
図3はトレース・データ・レシーバ10を更に詳細に示す。トレース・データ・レシーバ10はトレース・バス12を入力しており、これに転送されたアドレスをデマルチプレックスして記憶し、かつ必要によりこれらのアドレスを増加させる。トレース・データ・レシーバ10は、現在実行している命令コードのアドレスの低位部分及び高位部分をそれぞれ記憶する2つのカウンタ36、38を含む。更なる2つのカウンタ40、42はデータ・アクセスを行った最後のアドレスの低位部分及び高位部分をそれぞれ記憶する。
【0041】
逐次的な命令コード・フェッチを行うと、これがTPCInc信号により示され、TPCInc信号はカウンタ36、38に現在記憶している値を4又は他のいくつかの値づつ増加させる。(単一の命令コードはメモリ8内で現在4バイトを占めている)。同様の形式により、逐次的なデータ・アクセスを行うと、カウンタ40、42に記憶されているアドレスを4増加させる。
【0042】
逐次的でない命令コード・フェッチ又はデータ・アクセスが発生する場合に、フル・アドレスはトレース・データ発生器18からトレース・バス12上に時分割多重化される。アドレスの16ビット部分は信号ラインTA[15:0]上で受信され、各カウンタ36、38、40、42へ並列に転送される。ロード・コントローラ44は、TAMux[1:0]に応答して、カウンタ36、38、40、42のうちの適当な一つを現在TA[15:0]上に出力しているフル・アドレス部分を記憶する状態にさせる。
【0043】
フル32ビット・アドレスTPC及びTDAは、必要なときはいつでも更なるトレース解析ハードウエアによりそれぞれの対のカウンタ36、38、40、42から読み出すことができる。
【0044】
【表1】
Figure 0003708176
【0045】
表1は逐次的でない命令フェッチに帰結するBranch命令を実行するときのトレーシング・システムのオペレーションを示す。プログラム・カウンタ値PCは、命令があるのであれば、現在のサイクルにおいて命令をフェッチしようとするメモリ8内のアドレスを示す。説明の場合では、最初のサイクル中にアドレス&N(“&”は後続の変数がアドレス値であることを表示する。)からBranch命令をフェッチする。この時に、中央処理装置コア14により現在実行されている命令コードは、アドレスアドレス&N−8から逐次的な命令コードSeq1である。Branch命令は、アドレス・バス4上で主張されているアドレス&Nに応答して、命令/データ・バス6を介してメモリからフェッチされる。
【0046】
このBranch命令は、実行段に到達するまで、命令パイプライン16に沿って進行すると共に、逐次的なアドレス間の命令パイプライン16の各進行にはトレース・データ・レシーバ10内のトレース・アドレスTPCの増加をトリガするTPCIncの発生が伴っている。トレース・データ・レシーバ10は中央処理装置コア14により現在実行されている命令コードのアドレスを保持する。
【0047】
Branch命令を実行すると、フェッチ・アドレス&Xから逐次的でない命令コード・フェッチが行われる。この時に、前のサイクルから逐次的な増加を行ったので、TPCInc信号が依然として主張されるが、しかし逐次的でないジャンプが発生したので、後続のサイクルにおいて主張されることはない。アドレス&Xから逐次的でない命令NonSeqは、次のサイクル上のフェッチ段にロードされ、かつ命令パイプライン16内に保留された命令コードはそれらの条件実行フラグ(“*”により示されている)を用いて、実行すべきでないとしてマークされる。Branch命令そのものの実行中は、Branch命令そのものの条件コードはまだ評価されていず、かつBranch命令が実行され得ないので、逐次的な命令フェッチが発生して命令Seq4を命令パイプライン16に転送させる。
【0048】
Branch命令の実行に続く第2のサイクルでは、逐次的でない命令X[31:16]のアドレスの最上位16ビットをトレース・バス12を介して出力し、かつSeq5の逐次的な命令フェッチを逐次的でない命令NonSeqのものに続く位置から行う。次のサイクルでは、最下位16ビットX[15:0]を出力し、逐次的でない命令NonSeqがパイプラインの実行段に到達する。これが発生した時には、この逐次的でない命令NonSeqのフル・アドレス&Xは、中央処理装置集積回路2により既に時分割多重化され出力されており、リアル・タイムでトレース用に利用可能である。逐次的な命令Seq5の実行には、トレース・データ・レシーバ10内のトレース・プログラム・カウンタを増加させるTPCInc信号の主張が伴う。
【0049】
表1に示すオペレーションは、Branch命令が命令パイプライン16を介して伝搬する際に掛かる時間を利用してBranch命令のフル・アドレスをトレース・バス12上へ時分割多重化させることが示されている。
【0050】
【表2】
Figure 0003708176
【0051】
表2はレジスタに単一のデータ・ワードを記憶する形式による逐次的でないデータ・アクセスを示す。一連の逐次的な命令Seq1、Seq2は、逐次的でないデータ・アクセス命令STRが実行段に到達するまで、中央処理装置コア14により実行される。データ・アクセス命令STRは中央処理装置コア内のレジスタ値をメモリ位置&Zに記憶させる動作をする。データ・アクセス命令STRの実行の最初のサイクルでは、逐次的な命令コード・フェッチを実行し、命令Seq4を命令/データ・バス6を介してフェッチ段に持ってくる。次のサイクルでは、(命令により指定された)レジスタの内容を値Data&Zとして命令/データ・バス6を介してアドレス&Zに記憶するという結果により、アドレス&Zはアドレス・バス4上に主張するべく準備完了状態(ready)となる。このサイクルでは、アドレス&Zの最上位部分が信号Z[31:16]としてトレース・バス12を介して出力される。
【0052】
次のサイクルでは、逐次的な命令Seq3が実行される。このサイクルでは、アドレス&Zの第2の部分がトレース・バス12上に信号Z[15:0]として出力される。従って、トレース・バス12上の当該データ・アクセス・アドレスの出力は、データ・アドレスをトリガしたものを越えて命令サイクルと重なる。
【0053】
【表3】
Figure 0003708176
【0054】
表3はメモリ8内の逐次的なアドレスに対して多重データ・アクセスをする結果となる命令STMの実行を示す。このオペレーションは、STM命令の第2実行サイクルの終結まで、表2に示すように進行する。この場合に、STM命令は、アドレス&Zから開始してアドレス&Z+12に及ぶメモリ位置に連続する4データ・ワードを記憶させるものである。このデータ・ワードは連続するサイクルにより命令/データ・バス6を介してメモリ8に記憶される。これらのサイクルのうちの始めの2つのサイクルでは、アドレス&Zの上位部分、 次いで下位部分がデータ・アクセス・アドレス増加信号TDIncと共に、トレース・バス12により出力される。続く2サイクルでは、データ・アクセス・アドレス増加信号TDIncが主張されてデータ・アクセス・アドレスを増加すべきこと(アドレスのフル出力は必要ではない。)を表示する。その後の1サイクル遅れのトレース・データのレシーバ遅延内で保持されたアクセス・アドレスの値は、その時に中央処理装置コア14により実際に有効とされる。更に、トレース・データ・レシーバ10により保持されたアクセス・アドレスにおける1サイクルの遅れは、単一のアクセスが表2に示した場合と同様に実行されるときも存在する。
【0055】
【表4】
Figure 0003708176
【0056】
表4は逐次的でない命令コード・フェッチが直ぐ後に続く逐次的でないデータ・アクセスを示す。この場合に、STR命令は表2に示すと同一形式によりパイプラインに沿って進行する。STR命令は、パイプラインに逐次的でないBranch命令が直ぐ後に続く。Branch命令が実行段に到達すると、まだデータ・アクセス・アドレスZ[15:0]の最下位部分がトレース・バス12上に出力されている。しかし、(表1に示すように)後のサイクルまで命令コード・フェッチ・アドレスX[13:16]の最上位部分の出力は開始しないので、この重なりは問題ではない。Branch命令の実行の後、逐次的でない命令NonSeqがフェッチされ、パイプラインの実行段まで進行すると、実行される。介入している命令は、2つのパイプライン・サイクル後に命令パイプラインからこれらの命令を効果的に消去する形式で、これらの条件フラグを用いて、実行されないようにマークが付けられる。
【0057】
本発明の実施例をここでは添付図面を参照して詳細に説明したが、本発明はこれら厳密な実施例に限定されないことを理解すべきであり、かつ請求の範囲により定義される本発明の範囲及び精神から逸脱することなく、当該技術分野に習熟する者により、種々の変更及び変形が実施可能であることを理解すべきである。
【図面の簡単な説明】
【図1】トレース機能に関連するデータ処理装置を概要的に示す図。
【図2】トレース・データ発生器を示す図。
【図3】トレース・データ・レシーバを示す図。
【符号の説明】
2 中央処理装置集積回路
4 アドレス・バス
6 命令/データ・バス
8 オン・チップ・メモリ
10 トレース・データ・レシーバ
12 トレース・バス
14 中央処理装置コア
16 命令パイプライン
18 トレース・データ発生器
22 シーケンス推測ロジック及びステート・マシン・ブロック
28 マルチプレクサ
44 ロード・コントローラ

Claims (18)

  1. データを処理するためのデータ処理装置において、
    (i)命令コードを実行する中央処理装置コアであって、各命令コードがメモリ内にアドレスを有し、前記データ処理装置コアとメモリとの間にアドレス・バスが伸延している前記中央処理装置コアと、
    (ii)前記中央処理装置コアに命令コードを供給する命令パイプラインであって、前記命令コードが前記メモリから前記命令パイプラインへフェッチされ、次いで前記命令パイプラインを介して前記中央処理装置コアに転送して実行される前記命令パイプラインと、
    (iii)トレース・バス上にトレース・データ信号を発生するトレース手段とを備え、
    前記トレース手段は、
    (a)前に実行した命令コードのアドレスに逐次的に連続するアドレスを有した命令コードを実行するときに、前記トレース・バス上にトレース・アドレス増加信号を発生するトレース・アドレス増加信号発生手段と、
    (b)前記フェッチされたコード・アドレスが前にフェッチした命令コードのアドレスに逐次的に連続しないときは、前記パイプラインにフェッチされた命令コードのフェッチされたコード・アドレスを表示するトレース・アドレスの複数部分を前記トレース・バス上に時分割多重化するトレース・アドレス発生手段とを備え、前記時分割多重化は、前記フェッチされたコード・アドレスを有する前記命令コードが前記命令パイプラインを介して転送され、前記中央処理装置コアに到達して実行される間に、行なわれることを特徴とするデータ処理装置。
  2. 前記パイプラインに対する逐次的でないフェッチが発生するときは、パイプライン・パージ手段が、前記パイプラインから前記パイプラインへ既にフェッチされた保留中の命令コードを実行することなく消去することを特徴とする請求項1記載のデータ処理装置。
  3. 前記トレース・アドレスは前記フェッチされたコード・アドレスであることを特徴とする請求項1記載のデータ処理装置。
  4. 前記トレース・アドレスの前記複数部分は前記フェッチされたコード・アドレスの連続的な多数ビットのセグメントであることを特徴とする請求項3記載のデータ処理装置。
  5. 前記トレース・アドレス発生手段は前記トレース・アドレスの前記複数部分を前記トレース・バスへ多重レベル・ビットの符号化をすることを特徴とする請求項1記載のデータ処理装置。
  6. (i)前にアクセスしたデータ・ワードに逐次的に連続するアドレスを有したデータ・ワードに対してデータ・アクセスが発生するときは、前記トレース・バス上にデータ・アクセス・アドレス増加信号を発生するデータ・アクセス・アドレス増加信号発生手段と、
    (ii)前のデータ・アクセス・オペレーションのアドレスに逐次的に連続していないデータ・アクセス・アドレスに対するデータ・アクセス・オペレーションに応答して、前記トレース・バス上に前記データ・アクセス・アドレスを表示するデータ・アドレスの複数部分的を時分割多重化するデータ・アクセス発生手段とを備えていることを特徴とする請求項1記載のデータ処理装置。
  7. 前記データ・アドレスは前記データ・アクセス・アドレスであることを特徴とする請求項6記載のデータ処理装置。
  8. 前記データ・アドレスの前記複数部分は前記データ・アクセス・アドレスの連続的な多数ビットのセグメントであることを特徴とする請求項7記載のデータ処理装置。
  9. 前記データ・アクセス・アドレス発生手段は前記データ・アドレスの前記複数部分を前記トレース・バスへ多レベル・ビットの符号化をすることを特徴とする請求項6記載のデータ処理装置。
  10. 前記データ・アクセス・アドレス発生手段は、データ・アクセス・オペレーションを含む前記命令コードの実行を越えるオーバーラン期間中に、前記データ・アドレスの複数部分を前記トレース・バスへ時分割多重化することを特徴とする請求項6記載のデータ処理装置。
  11. 前記トレース・アドレス発生手段は、前記オーバーラン期間を開始遅延内に調整できるように、前記フェッチしたコード・アドレスから前記命令コードのフェッチを開始した命令コードの実行を完結させる遅延の後に、前記トレース・アドレスの複数部分を前記トレース・バスへ時分割多重化し始めることを特徴とする請求項10記載のデータ処理装置。
  12. 前記トレース・バス上の信号を識別する部分を発生する手段を備え、前記信号を識別する部分は前記トレース・アドレスの複数部分又は前記データ・アドレスの前記複数部分のいずれが前記トレース・バス上に存在するのかを表示することを特徴とする請求項6記載のデータ処理装置。
  13. 前記トレース・アドレス発生手段は、前記アドレス・バスから前記フェッチされたコード・アドレスを捕捉し、かつ記憶する前記フェッチコード・アドレス補足手段と、前記トレース・アドレスの前記複数部分として前記フェッチコード・アドレス捕捉手段から前記フェッチされたコード・アドレスの異なる複数部分を連続的に選択するマルチプレクサとを備えていることを特徴とする請求項1記載のデータ処理装置。
  14. 前記中央処理装置コアから複数のステータス・フラグを受け取り、かつ命令コードの逐次的なフェッチが前記アドレス・バスの監視から独立して行われているか否かを推測する推測ロジックを備えていることを特徴とする請求項1記載のデータ処理装置。
  15. 前記中央処理装置コアから複数のステータス・フラグを受け取り、かつ命令コードの逐次的なフェッチが前記アドレス・バスから独立して行われているか否かを推測する推測ロジックを備え、 かつデータ・アクセス・アドレスが命令コード・ アドレスとともにインターリーブされていることをを特徴とする請求項6記載のデータ処理装置。
  16. トレース・バスからトレース・データを受け取る装置において、
    (i)前記中央処理装置コアにより現在実行されている命令コードの陰の命令コード・アドレスを記憶する陰のプログラム・カウンタ・レジスタと、
    (ii)前記トレース・バスから受け取ったトレース・アドレス増加信号に応答して前記陰の命令コード・アドレスを増加するインクリメンタと、
    (iii)前記トレース・バスから受け取ったトレース・アドレスの複数部分を時分割デマルチプレックスして新しい影の命令コード・アドレスを得て、前記陰のプログラム・カウンタ・レジスタにロードさせる手段と
    を備えている装置。
  17. 前記中央処理装置コアによりアクセスされる最新のデータ・ワードの陰のデータ・アクセス・アドレスを記憶する陰のデータ・アクセス・アドレス・レジスタと、
    前記トレース・バスから受け取ったデータ・アクセス・アドレス増加信号に応答して前記影のデータ・アクセス・アドレスを増加させるインクリメンタと、
    前記トレース・バスから受け取ったデータ・アドレスの複数部分を時分割デマルチプレックスして新しい影のデータ・アクセス・アドレスを得て、前記陰のデータ・アクセス・アドレス・レジスタにロードさせる手段と
    を備えていることを特徴とする請求項16記載の装置。
  18. データを処理する方法において、
    (i)メモリから命令パイプラインへ命令コードをフェッチし、次いで前記命令コードを前記命令パイプラインを介して中央処理装置コアへ転送して実行させると共に、各命令コードが前記メモリ内にアドレスを有するステップと、
    (ii)前に実行した命令コードのアドレスに逐次的に連続するアドレスを有した命令コードを実行するときは、トレース・バス上にトレース・アドレス増加信号を発生するステップと、
    (iii)前記フェッチしたコード・アドレスが前にフェッチした命令コードのアドレスに逐次的に連続していないときは、前記パイプラインへフェッチした命令コードのフェッチされたコード・アドレスを表示するトレース・アドレスの複数部分をトレース・バス上に時分割多重化し、前記時分割多重化は、前記フェッチされたコード・アドレスを有する前記命令コードが前記命令パイプラインを介して転送され、前記中央処理装置コアに到達して実行される間に行われるステップ、
    とを含む方法。
JP21365495A 1994-09-20 1995-08-22 データ処理装置及びデータ処理方法 Expired - Lifetime JP3708176B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9418900A GB2293467B (en) 1994-09-20 1994-09-20 Trace analysis of data processing
GB94189008 1994-09-20

Publications (2)

Publication Number Publication Date
JPH0895824A JPH0895824A (ja) 1996-04-12
JP3708176B2 true JP3708176B2 (ja) 2005-10-19

Family

ID=10761599

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21365495A Expired - Lifetime JP3708176B2 (ja) 1994-09-20 1995-08-22 データ処理装置及びデータ処理方法

Country Status (3)

Country Link
US (1) US5642479A (ja)
JP (1) JP3708176B2 (ja)
GB (1) GB2293467B (ja)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5996092A (en) * 1996-12-05 1999-11-30 International Business Machines Corporation System and method for tracing program execution within a processor before and after a triggering event
EP0869434A3 (en) * 1997-03-31 1999-09-15 Hewlett-Packard Company Method for outputting trace information of a microprocessor
US6041406A (en) * 1997-04-08 2000-03-21 Advanced Micro Devices, Inc. Parallel and serial debug port on a processor
US5978902A (en) * 1997-04-08 1999-11-02 Advanced Micro Devices, Inc. Debug interface including operating system access of a serial/parallel debug port
US6094729A (en) * 1997-04-08 2000-07-25 Advanced Micro Devices, Inc. Debug interface including a compact trace record storage
US6314530B1 (en) 1997-04-08 2001-11-06 Advanced Micro Devices, Inc. Processor having a trace access instruction to access on-chip trace memory
US6142683A (en) * 1997-04-08 2000-11-07 Advanced Micro Devices, Inc. Debug interface including data steering between a processor, an input/output port, and a trace logic
US6148381A (en) * 1997-04-08 2000-11-14 Advanced Micro Devices, Inc. Single-port trace buffer architecture with overflow reduction
US6009270A (en) * 1997-04-08 1999-12-28 Advanced Micro Devices, Inc. Trace synchronization in a processor
US6154856A (en) * 1997-04-08 2000-11-28 Advanced Micro Devices, Inc. Debug interface including state machines for timing synchronization and communication
US6189140B1 (en) 1997-04-08 2001-02-13 Advanced Micro Devices, Inc. Debug interface including logic generating handshake signals between a processor, an input/output port, and a trace logic
KR100269299B1 (ko) * 1997-07-14 2000-10-16 윤종용 데이터패쓰(dq)수감소회로및감소방법과이를이용한반도체장치
JPH11161524A (ja) 1997-11-28 1999-06-18 Nec Corp バス制御方式
US6175914B1 (en) 1997-12-17 2001-01-16 Advanced Micro Devices, Inc. Processor including a combined parallel debug and trace port and a serial port
US6145100A (en) * 1998-03-04 2000-11-07 Advanced Micro Devices, Inc. Debug interface including timing synchronization logic
US6105087A (en) * 1998-06-10 2000-08-15 Hewlett-Packard Company Event recognition by a state machine whose state is dependent upon historical information
US6145123A (en) * 1998-07-01 2000-11-07 Advanced Micro Devices, Inc. Trace on/off with breakpoint register
KR100307626B1 (ko) 1998-08-31 2001-11-30 윤종용 디램과버퍼메모리를갖는메모리로직복합집적회로장치
US6253338B1 (en) 1998-12-21 2001-06-26 International Business Machines Corporation System for tracing hardware counters utilizing programmed performance monitor to generate trace interrupt after each branch instruction or at the end of each code basic block
US6598150B2 (en) * 1999-02-26 2003-07-22 Arm Limited Asynchronously accessing the program counter values of a data processing system by applying an independent clock on the latching and scan-chain circuits
US6336191B1 (en) 1999-03-08 2002-01-01 International Business Machines Corporation Method and system for clock compensation in instruction level tracing in a symmetrical multi-processing system
US6513134B1 (en) * 1999-09-15 2003-01-28 International Business Machines Corporation System and method for tracing program execution within a superscalar processor
US6859891B2 (en) * 1999-10-01 2005-02-22 Stmicroelectronics Limited Apparatus and method for shadowing processor information
US7287147B1 (en) 2000-12-29 2007-10-23 Mips Technologies, Inc. Configurable co-processor interface
US7237090B1 (en) 2000-12-29 2007-06-26 Mips Technologies, Inc. Configurable out-of-order data transfer in a coprocessor interface
US7124072B1 (en) 2001-04-30 2006-10-17 Mips Technologies, Inc. Program counter and data tracing from a multi-issue processor
US7185234B1 (en) * 2001-04-30 2007-02-27 Mips Technologies, Inc. Trace control from hardware and software
US7181728B1 (en) 2001-04-30 2007-02-20 Mips Technologies, Inc. User controlled trace records
US7178133B1 (en) 2001-04-30 2007-02-13 Mips Technologies, Inc. Trace control based on a characteristic of a processor's operating state
US7069544B1 (en) * 2001-04-30 2006-06-27 Mips Technologies, Inc. Dynamic selection of a compression algorithm for trace data
US7134116B1 (en) 2001-04-30 2006-11-07 Mips Technologies, Inc. External trace synchronization via periodic sampling
US7065675B1 (en) 2001-05-08 2006-06-20 Mips Technologies, Inc. System and method for speeding up EJTAG block data transfers
US7231551B1 (en) 2001-06-29 2007-06-12 Mips Technologies, Inc. Distributed tap controller
US7043668B1 (en) 2001-06-29 2006-05-09 Mips Technologies, Inc. Optimized external trace formats
JP2004102331A (ja) * 2002-09-04 2004-04-02 Renesas Technology Corp 半導体装置
US20040199722A1 (en) * 2003-04-03 2004-10-07 International Business Machines Corp. Method and apparatus for performing bus tracing in a data processing system having a distributed memory
US7213169B2 (en) * 2003-04-03 2007-05-01 International Business Machines Corporation Method and apparatus for performing imprecise bus tracing in a data processing system having a distributed memory
US7302616B2 (en) * 2003-04-03 2007-11-27 International Business Machines Corporation Method and apparatus for performing bus tracing with scalable bandwidth in a data processing system having a distributed memory
US7159101B1 (en) 2003-05-28 2007-01-02 Mips Technologies, Inc. System and method to trace high performance multi-issue processors
US7555682B2 (en) * 2005-05-13 2009-06-30 Texas Instruments Incorporated Distributed width trace receiver
US7555681B2 (en) * 2005-05-13 2009-06-30 Texas Instruments Incorporated Multi-port trace receiver
US7610517B2 (en) * 2006-09-14 2009-10-27 Innovasic, Inc. Microprocessor with trace functionality
TWI402706B (zh) * 2007-04-20 2013-07-21 Hon Hai Prec Ind Co Ltd 圖形刪除系統及方法
GB2507049A (en) * 2012-10-16 2014-04-23 Ibm Synchronizing Trace Data

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2214334B (en) * 1988-01-05 1992-05-06 Texas Instruments Ltd Integrated circuit
US4503495A (en) * 1982-01-15 1985-03-05 Honeywell Information Systems Inc. Data processing system common bus utilization detection logic
US4511960A (en) * 1982-01-15 1985-04-16 Honeywell Information Systems Inc. Data processing system auto address development logic for multiword fetch
US5289587A (en) * 1988-11-30 1994-02-22 National Semiconductor Corporation Apparatus for and method of providing the program counter of a microprocessor external to the device
US5488688A (en) * 1994-03-30 1996-01-30 Motorola, Inc. Data processor with real-time diagnostic capability

Also Published As

Publication number Publication date
GB2293467A (en) 1996-03-27
GB2293467B (en) 1999-03-31
JPH0895824A (ja) 1996-04-12
US5642479A (en) 1997-06-24
GB9418900D0 (en) 1994-11-09

Similar Documents

Publication Publication Date Title
JP3708176B2 (ja) データ処理装置及びデータ処理方法
US5345580A (en) Microprocessor device and emulator device thereof
US4648034A (en) Busy signal interface between master and slave processors in a computer system
CA1180455A (en) Pipelined microprocessor with double bus architecture
JP2000330790A (ja) コンピュータシステム動作方法、コンピュータシステムにおける命令スケジューリング方法およびコンピュータシステム
WO1989006397A2 (en) Method for prefetching vector data from memory in a memory system designed for scalar processing
JPS62245442A (ja) 情報処理装置
JP2002536738A (ja) 間接vliwプロセッサにおける実行時間並列処理のための動的vliwサブ命令選択システム
JP2003085000A (ja) トレース情報生成装置およびその方法
CN108319559B (zh) 用于控制矢量内存存取的数据处理装置及方法
JP2693678B2 (ja) データ処理装置
JP2001525568A (ja) 命令デコーダ
KR20010078508A (ko) 매트릭스 연산 장치 및 매트릭스 연산기능을 갖는 디지털신호처리 장치
CA2003004C (en) Apparatus and method for executing a conditional branch instruction
US4028670A (en) Fetch instruction for operand address calculation
JPH03233630A (ja) 情報処理装置
CN108959180B (zh) 一种数据处理方法及系统
US4924377A (en) Pipelined instruction processor capable of reading dependent operands in parallel
GB2239535A (en) Accelerating store operations in a RISC computer
JPS6365983B2 (ja)
JP2581565B2 (ja) ガード付命令を実行するデータ処理装置
JP2563708B2 (ja) マイクロプロセッサ装置およびそれを用いたエミュレータ装置
JP2000235510A (ja) プロセッサおよびそのためのコンパイルプログラム記録媒体
JPS63188230A (ja) 情報処理装置
JP3210171B2 (ja) データ処理装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040702

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040723

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20041021

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20041026

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050803

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100812

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110812

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110812

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120812

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130812

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term