JP4175927B2 - Data processing apparatus, trace signal generation method, and trace signal generation program - Google Patents

Data processing apparatus, trace signal generation method, and trace signal generation program Download PDF

Info

Publication number
JP4175927B2
JP4175927B2 JP2003076703A JP2003076703A JP4175927B2 JP 4175927 B2 JP4175927 B2 JP 4175927B2 JP 2003076703 A JP2003076703 A JP 2003076703A JP 2003076703 A JP2003076703 A JP 2003076703A JP 4175927 B2 JP4175927 B2 JP 4175927B2
Authority
JP
Japan
Prior art keywords
trace
signal
data processing
output
processing apparatus
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
JP2003076703A
Other languages
Japanese (ja)
Other versions
JP2004013897A (en
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
Priority claimed from GB0213149A external-priority patent/GB2389432B/en
Application filed by エイアールエム リミテッド filed Critical エイアールエム リミテッド
Publication of JP2004013897A publication Critical patent/JP2004013897A/en
Application granted granted Critical
Publication of JP4175927B2 publication Critical patent/JP4175927B2/en
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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2268Logging of test results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Description

【0001】
【発明の属する技術分野】
(発明の背景)
本発明は、その挙動を追跡する1つあるいはそれ以上の数の構成要素を有するデータ処理装置内でのトレース信号の生成に関するものである。
【0002】
【従来の技術】
データ処理システムの動きを追跡し、それにより、システム中で段階ごとに進む動きを表すデータを含むトレースストリームを生成することは、システムを開発する上で、極めて有用なツールとなる。しかし、処理命令は、プロセッサコアに複雑に組み込まれる傾向にあるため、外部からアクセス可能な端子を介して、プロセッサコアの状態を追跡することは極めて困難となっている。従って、トレースデータを収集し解析するためのチップ外のトレース機構だけでなく、より多くのトレース機構がチップ内に設けられるようになっている。このようなチップ内のトレース機構の例としては、英国・ケンブリッジのARM社が提供する、様々なARMプロセッサに対応した、組み込みトレース・マクロセル(ETM)がある。
【0003】
このようなトレース機構は、データ処理装置でその動きをトレースしようとするものを表すデータのトレースストリームをリアルタイムで生成する。その後、このトレースストリームは、データ処理装置によって実行される処理命令の列のデバッグを可能にするために用いられる。
【0004】
特定のレジスタ、アドレスあるいはデータ値に対してアクセスがなされたことに起因してトレースを開始したり停止したりする、トレース操作の制御に供されるトリガポイントを組み込んだトレース機構が提供されていることは、よく知られるところである。このような機構は、システムの特定の部分や、ある種類の動きを診断する際に、非常に役立つものとなる。
【0005】
【発明が解決しようとする課題】
しかし、データ処理システムは、その複雑度を増す一方であるため、トレースされるべき極めて大量な情報が潜在的に存在することは明白である。ETMによって生成されるトレースデータのストリームは、通常、後の処理のための出力に先立って一時的に格納されるが、そのため、トレースデータによってそのバッファにオーバフローを引き起こす可能性があり、結果的にトレースデータが欠損する恐れがある。例えば、典型的な実装例では、ETMで生成された全てのトレースデータは、内部の先入れ先出し(FIFO)バッファに直ちに書き込まれ、その後、比較的狭い帯域幅のトレースポートを介してトレースバッファに転送される。データ処理装置の広範囲にわたる動きをトレースしている際には、トレースデータが爆発的に発生することによってFIFOがオーバフローし、トレースデータの欠損につながる可能性がある。
【0006】
この問題を解決しようとする既知の方法の1つとして、FIFOの占有状態が所定のレベルに達した時に、動作が追跡される構成要素への信号を出力するよう、ETMを構成するというものがあり、オーバフローが起きる前に、FIFOの内容を排除できるようにするために、この信号によって当該構成要素を停止させる。しかし、FIFOのオーバフローを回避するためには、外部から(すなわち、追跡しようとする構成要素によって)ETMに対して探索動作を起こす必要があるため、実際にこの信号を用いることを実装することは困難であることが分かる。このような信号を生成するETMと、例えばプロセッサコアのようなトレースする対象となる構成要素によって生成される当該信号との間には、固有な遅れ時間があるため、この遅れ時間の間に、当該構成要素の他の動作を継続して追跡しようとすれば、いずれにせよFIFOにオーバフローを引き起こしてしまうということが分かる。
【0007】
以上より、トレースデータの損失の可能性を減らすため、より改良された方法を提供することが望まれている。
【0008】
【発明を解決するための手段】
(発明の概要)
第1の観点から言えば、本発明は、動作が追跡される構成要素と、その動作を示す要素からの入力信号を受け取り、前記入力信号から高優先度トレース信号および低優先度トレース信号を生成しトレース受信装置に出力するためのトレース生成ユニットと、トレース受信装置からの抑制信号の発行(アサート「assert」)に応じて動作し、低優先度トレース信号の生成を抑制するトレース生成ユニットとを含むデータ処理装置を提供するものである。
【0009】
本発明によれば、トレース生成ユニットにより発生するトレース信号は、高優先度トレース信号あるいは低優先度トレース信号のいずれかになるものとして分類される。トレース生成ユニットにより発生するトレース信号は、トレース受信装置への出力となり、トレース生成ユニットは、トレース受信装置からの抑制信号を受けて、低優先度トレース信号の発生を抑制する。本発明は、他の信号よりも重要となるある種のトレース信号が通常存在するという認識に基づいてなされたものである。例えば、命令トレースを維持するために出力する必要のある、例えば、分岐アドレスに関するトレース信号のようなある種のトレース信号が存在するが、その一方で、データトレース信号のように、同期を失って損失してもよいような他のトレース信号も存在する。また、本発明の発明者たちは、多くの場合、後者の種類のトレース信号に比べて、前者の種類のトレース信号は、より狭い帯域幅を持っていることに着目した。
【0010】
以上のことを念頭におき、本発明のデータ処理装置は、トレース受信装置が必要と判断した場合に、低優先度トレース信号の抑制を起こすように構成されており、これによって、トレース受信装置がオーバフローして、トレースデータの任意の量が損失するといった従来技術の上記問題を解決するものとなる。これに対し、本発明によれば、トレース受信装置が適切と判断した場合には、トレース生成ユニットに対して抑制信号を送り、高優先度トレース信号のみが出力されることを保証し、以って、トレース受信装置がオーバフローを起こす可能性を極力抑えるものとなる。
【0011】
この抑制は、トレース生成ユニットとトレース受信装置との間で直接起きるため、動作が追跡される構成要素に信号を返送する際の待ち時間から生じる従来技術での上記問題が良好に解決され、これにより、本発明は、トレース受信装置のオーバフローを防ぐためのより信頼性の高い方法を提供するものとなり、同時に、トレース信号が損失するのは、低優先度トレース信号に対してのみであると考慮すればよいことになる。
【0012】
トレース受信装置は、トレース生成ユニットの場所あるいは、トレース生成ユニットから離して設置することができる。一実施例では、データ処理装置の内部にトレース受信装置を設け、好ましくは、トレース生成ユニットと同一チップ上に実装することにより、トレース受信装置からトレース生成ユニットへの抑制信号の伝播を高速化するものとなり、以って、低優先度トレース信号を抑制する必要が生じた場合には、トレース生成ユニットが高速で応答できるようになっている。このため、抑制信号の発行(発生「 issuance 」)によって、トレース受信装置のオーバフローを防ぐために、低優先度トレース信号を即座に抑制することができ、信頼性をさらに向上するものとなる。
【0013】
トレース受信装置は、様々な形態をとることができる。しかし、本実施例では、トレース受信装置は、あらかじめ定められた容量のバッファ(例えば、FIFOバッファ)である。
【0014】
好適な実施例では、バッファに格納されたトレース信号の量が、あらかじめ定められた抑制レベルに達した時に、抑制信号を発行するように、バッファが構成されている。従って、これらの実施例では、バッファの所定の割合にまでトレース信号が達した場合に、抑制信号が発行されるものとなる。
【0015】
データ処理装置により生成されるトレース信号を読み出し解析する装置は、トレース受信装置に直接接続されるものであってよい。しかし、実施例では、トレース受信装置は、第1の帯域幅を有する第1のバスを介してトレース生成ユニットに接続された入力ポートと、トレース信号がトレースバッファに出力されるようにした第2の帯域幅を有する第2のバスに接続された出力ポートとをもつ中間バッファであり、第1の帯域幅は、第2の帯域幅よりも広いものとなっている。これらの実施例では、データ処理装置により生成されるトレース信号を読み出し解析する装置は、通常、トレースバッファからトレース信号を読み出すように構成されている。
【0016】
これらの実施例から分かるように、中間バッファの出力帯域幅はその入力帯域幅よりも狭いため、中間バッファが溢れてしまう恐れがある。しかし、本発明の抑制信号を用いることにより、低優先度トレース信号が余計に生成されないようにトレース生成ユニットが抑制信号に対して俊敏に応答できるため、このような事態が発生する可能性を抑えることができる。
【0017】
上述したように、本発明では、トレース信号を高優先度トレース信号あるいは低優先度トレース信号のいずれかに分類(クラス別「 classification 」)することが必要となる。好適な実施例では、この分類は、トレース信号が高優先度トレース信号あるいは低優先度トレース信号のいずれであるかを特定するトレース生成ユニットの内部で保持されるものである。例えば、命令トレースに関するトレース信号は高優先度であり、一方、データトレースに関するトレース信号は低優先度であることを示すように、この分類はあらかじめ定義しておけるものであることは、当該技術分野に精通した者にとって認識されうるものである。さらに、この分類はプログラム可能である。
【0018】
好適な実施例では、抑制信号が発行されている際には、抑制が行われていることを示すために、抑制された低優先度トレース信号のための位置情報(プレースホルダー「 placeholder 」)をトレース受信装置に出力するように、トレース生成ユニットは構成されている。これにより、後で用いられるツールによって、トレースデータを解析可能とし、低優先度トレース信号の抑制がいつ行われているかを決定することができる。
【0019】
これらの位置情報は、トレースデータの各アイテムが抑制されるごとに発行されるが、好適な実施例では、最初に抑制された低優先度トレース信号に対する位置情報のみを出力するように、トレース生成ユニットが構成されている。従って、この位置情報は、抑制が最初に発生したことを示すものとなり、トレース解析ツールがデータの抑制が起きたことを決定するには十分なものであり、位置情報の発行自身がトレース受信装置のオーバフローを引き起こすという可能性は回避される。
【0020】
好適な実施例では、トレース受信装置は、バッファ内に貯えられたトレース信号の量が、あらかじめ定められた再起動レベルまで下がったときに、抑制信号の発行を解除するように構成されている。あらかじめ定められた再起動レベルは、あらかじめ定められた抑制レベルと同じになるように決定してもよいが、このようにあらかじめ定められた再起動レベルを決定すると、ある状況では、抑制された状態と抑制されない状態との間である量の振動を引き起こす傾向がある。従って、好適な実施例では、あらかじめ定められた抑制レベルは、あらかじめ定められた再起動レベルよりも高く設定し、全トレースを再起動した際に、抑制信号を再発行する必要がないようにトレース受信装置の中に貯えられたトレース信号の量を増やせる容量を確保できるようにしている。
【0021】
好適な実施例では、抑制信号の発行解除につながる最初の低優先度トレース信号については、その最初の低優先度トレース信号を後で解析できるように、任意の必要な同期データとともにその最初の低優先度トレース信号を出力するように、トレース生成ユニットが構成されている。これにより、抑制しようとするトレースストリームのある部分に対応して欠落する任意の同期情報をトレース信号のストリームの中に取り込むことになる。
【0022】
データ処理システムは、例えば、組み込み型システムでの集積レベルが上がるなどの理由により、複雑さを増しているため、より多くの機能性が各々のデータ処理装置(例えば、チップ)に含まれるようになり、したがって、より多くのトレースブロックやモジュールをデータ処理装置の中に設ける必要が生じている。このような将来のシステムでは、その動作を追跡すべき複数の構成要素が含まれるため、このような単一のトレース生成ユニットを含む単一のトレースモジュールでは、もはや充分ではない状況にある。例えば、データ処理装置が複数のプロセッサコアを含んでいて、各々をトレースする必要があり、さらに、データ処理装置の中の様々なバスについてもトレースする必要が生じる。しかし、各トレースモジュールに対して、外部ピンやトレースバッファを設けるためのコストは極めて高くつくものとなることがわかる。しかし、データ処理装置の異なる部分の間で信号や情報の交換があり、これらをデバッグするためには、これらの部分の関係についても同時にトレースする必要があるため、複数のトレースモジュールの間で、ピンやトレースバッファを単純に共有するだけでは適切とは言えない。従って、解決すべき他の問題としては、データ処理装置の複数のトレースモジュールからの信号を効果的にトレースできるようにすることが課題となる。
【0023】
従って、本発明の実施例では、データ処理装置は、さらに、トレースすべき1つあるいはそれ以上の数の構成要素から入力信号を受け取るための複数のトレースモジュールを含み、ここで、各トレースモジュールは、その入力信号からトレース信号を生成して対応するトレースバス上に出力し、少なくとも1つの前記トレースモジュールは、前記トレース生成ユニットとそれに対応したトレース受信装置を含み、対応するトレースバスは、トレース受信装置の出力に接続されていることを特徴とし、該データ処理装置は、さらにトレースモジュールのトレースバスに接続され、各トレースバスに出力されたトレース信号を入力トレース信号として受信し、入力トレース信号から得られたトレースストリームを出力ポートに生成するように構成されたファンネル論理を含み、ここで、出力ポートは、ファンネル論理に接続されたトレースバスの集約(全体の「 collective 」)最大帯域幅より狭い最大の帯域幅を有し、ファンネル論理は、出力ポートの最大帯域幅を超えないように入力トレース信号が出力ポートから出力されることを保証するように、トレースモジュールによるトレース信号の発行を制御するように構成されていることを特徴としている。
【0024】
従って、これらの実施例では、様々なトレースモジュールのトレースバスに接続され、様々な入力トレース信号から得られたトレースストリームを出力ポートに生成するように構成されたファンネル論理が設けられており、このトレースストリームは、例えば、信号をチップに送ることができるピンに送られたり、トレースバッファに送られるようになっている。また、ファンネル論理は、出力ポートの最大帯域幅を超えないように入力トレース信号が出力ポートから出力されることを保証するように、様々なトレースモジュールによるトレース信号の発行を制御するように構成されている。従って、これらの実施例のファンネル論理は、効果的に、複数のトレース源を入力として、単一のトレースストリームを出力として生成することができ、ここでは、出力ストリームは、想定される入力ストリームの総数を越えないようになっている。
【0025】
本発明の第1の特徴によれば、このファンネル論理は、任意のトレースモジュールが低優先度トレース信号の生成を抑えることができるかどうかによらず、データ処理装置の内部に設けられている。したがって、本発明の第2の特徴によれば、本発明は、トレースすべき1つあるいはそれ以上の数の構成要素から入力信号を受け取るための複数のトレースモジュールを含み、ここで、各トレースモジュールは、その入力信号からトレース信号を生成して対応するトレースバス上に出力することを特徴とし、また、各トレースバスに出力されたトレース信号を入力トレース信号として受信するようにトレースモジュールのトレースバスに接続され、入力トレース信号から得られたトレースストリームを出力ポートに生成するように構成されたファンネル論理を含み、ここで、出力ポートは、ファンネル論理に接続されたトレースバスの集約最大帯域幅より狭い最大の帯域幅を有し、ファンネル論理は、出力ポートの最大帯域幅を超えないように入力トレース信号が出力ポートから出力されることを保証するように、トレースモジュールによるトレース信号の発行を制御するように構成されていることを特徴とした、データ処理装置を提供するものである。
【0026】
好適な実施例では、どの時点でも、どのトレースモジュールがトレース信号をファンネル論理に送るべきかをトレースモジュールに示すように構成され、どの時点においても、1つのトレースモジュールからのトレース信号のみをトレースストリームが含むようになっている。
【0027】
どの時点においても、どのトレースモジュールがファンネル論理にトレース信号を送るべきかを決定する動作は、様々な方法で実装することができる。しかし、好適な実施例では、ファンネル論理は、対応するトレースバス上にトレース信号を出力しようとしている各トレースモジュールからリクエスト信号を受信し、あらかじめ定められた基準を適用して受信されたリクエスト信号にもとづきどのトレースモジュールがトレース信号をファンネル論理に出力すべきかを決定するためのリクエストハンドラを含んでいる。従って、これらの実施例では、各トレースモジュールは、トレースモジュールがいつトレース信号を対応するトレースバスに出力しようとしているのかをファンネル論理に示すように構成されており、これによりファンネル論理は、受信された様々なリクエストの間を仲介することになる。
【0028】
ここで、リクエストハンドラは、あらかじめ定められた基準の適用時に、トレース信号をファンネル論理に送ることになるトレースモジュールに対して、許可信号を送るように構成されることが好ましい。従って、これらの実施例では、トレースモジュールは、そのトレース信号をファンネル論理に送ることができることを示す許可信号を受信するまで、そのリクエスト信号を発行し続けるものとなる。
【0029】
どのトレースモジュールが任意の時点でトレース信号をファンネル論理に発行するかを決定するために、ファンネル論理のリクエストハンドラによって適用されるあらかじめ定められた基準は、様々な形態をとることが可能である。しかし、好適な実施例では、あらかじめ定められた基準は、様々なトレースモジュールの優先順序を定義するものとする。
【0030】
あらかじめ定められた基準は、あらかじめ定められたもの、あるいはプログラム可能なもののいずれかとすることができる。例えば、あらかじめ定められた基準は、例えば、その動作をトレースするようにそれに含まれるモジュールが構成された構成要素によって、様々なトレースモジュールに割り当てられた相対的な優先度を特定するために、特定の実装に対してプログラム可能なものとしてもよい。例えば、出力すべき最も重要なトレース信号が、メモリバスの動作に関するものであると判定された場合には、最高の優先度がこのメモリバスの動作を追跡するように構成されたトレースモジュールに割り当てられる。
【0031】
好適な実施例では、ファンネル論理は、さらに、その出力が前記トレースバスの各々に接続されたマルチプレクサを含み、リクエストハンドラは、あらかじめ定められた基準の適用時に、制御信号をマルチプレクサに発行し、トレースストリームをファンネル論理の出力ポートに転送するためのマルチプレクサから出力するトレースストリームとして、マルチプレクサのどの入力を出力するべきかを制御するように構成されている。
【0032】
ファンネル論理から出力されるトレースストリームを効果的に解析するためには、トレースストリームの特定の部分が、どの構成要素に対応しているのかを知るために、ツールを用いて解析することが必要となる。好適な実施例では、ファンネル論理は、このような識別子がトレースストリームに付加されることができるために必要となる論理を含んでいる。特に、好適な実施例では、ファンネル論理は、さらに、トレースストリームの特定の部分がどの構成要素に対応しているかを示す識別子をトレースストリームに導入するためのラッピング論理を含んでいる。この識別子は、様々な方法で実装することができる。しかし、ある実施例としては、マルチプレクサに発行される制御信号を受け取るようにラッピング論理を構成するものがあり、この識別子は、制御信号から得るものとしている。他の実施例としては、ラッピング論理に識別子を発行するように、各トレースモジュールを構成するものがある。
【0033】
構成要素を対応するトレースモジュールに割り当てる方法には、様々なものがあることが分かる。例えば、ある実装形態では、1つ以上の構成要素をトレースするように、単一のトレースモジュールを実際に構成することが可能である。しかし、好適な実施例では、トレースすべき各構成要素に対して、1つのトレースモジュールを設けることがある。
【0034】
ある実施例では、リクエスト信号をファンネル論理に発行するように各トレースモジュールを構成し、これにより、各々の状況において、ファンネル論理は、各トレースモジュールによるトレース信号の発行を制御できるようになる。
【0035】
しかし、他の実施例では、例えば、トレースモジュールが過去のトレースモジュールの設計に依るものであり、そのトレースモジュールが適切と判定した時にそのトレースストリームを単に出力するように構成されている場合もあるため、このようなリクエスト信号を発行させたり、許可信号に応答するようには、1つあるいはそれ以上の数のトレースモジュールを構成しないというものもある。このような状況では、トレースモジュールの中の少なくとも1つによってトレース信号が発行されることは、ファンネル論理によって制御することができず、データ処理装置は、さらに、そのようなトレースモジュールとファンネル論理との間に接続され、そのトレースモジュールから出力されるトレース信号を一時的に格納するための、トレースモジュールの各々に対するストーリング・バッファを含むものとなる。
【0036】
このような実施例では、ストーリング・バッファは、対応するトレースモジュールのためにリクエスト信号を発行し、リクエストハンドラにより発行される任意の許可信号に対して応答するように構成して、一時的に格納されたトレース信号がファンネル論理に出力されるようにすることが好ましい。従って、実際には、ストーリング・バッファは、このような過去の設計による各モジュールに対する“フロントエンド”となり、ファンネル論理と適切な方法でトレースモジュールを接続することができる。
【0037】
好適な実施例では、ストーリング・バッファに格納されたトレース信号の量が、あらかじめ定められたレベルに到達した時に、リクエスト信号を発行するように、ストーリング・バッファが構成されている。ファンネル論理によって適用されるあらかじめ定められた基準を適切に選択することにより、特定の時点で、どのトレースモジュールがトレース信号をファンネル論理に提供するかを決定し、ファンネル論理と接続する構成要素の数と帯域幅を制限することにより、対応するトレースモジュールから出力されたトレースデータによってストーリング・バッファがオーバフローする前に、ストーリング・バッファが許可信号を受け取ることを保証することができる。
【0038】
上述したように、ファンネル論理の出力ポートは、データ処理装置のトレースバッファに接続したものであってよい。それに代わり、出力ポートは、トレースストリームが、データ処理装置から外部に出力されるようにした複数のピンを含むものであってもよい。
【0039】
本発明の第3の観点から言えば、本発明は、その動作をトレースする構成要素を有するデータ処理装置の中でトレース信号を発生する方法を提供するものであり、該方法は、(i)動作を示す構成要素からの入力信号を受信するステップと、(ii)トレース受信装置に出力するための高優先度および低優先度のトレース信号を前記入力信号から生成するステップと、(iii)前記ステップ(ii)の間に、低優先度のトレース信号を抑制するために、トレース受信装置からの抑制信号の発行に応答するステップとを含むステップをトレース生成ユニットを用いて実行することを特徴としている。
【0040】
本発明の第4の観点から言えば、本発明は、その動作をトレースする1つあるいはそれ以上の数の構成要素からの入力信号を受信するための複数のトレースモジュールを有するデータ処理装置の中でトレース信号を発生する方法を提供するものであり、各トレースモジュールは、対応するトレースバスを介して出力されるトレース信号をそのトレースモジュールの各入力信号から生成するように構成され、該方法は、(a)ファンネル論理において、各トレースバスへ出力されるトレース信号を入力トレース信号として受信するステップと、(b)ファンネル論理の出力ポートに、入力トレース信号から得られたトレースストリームを生成するステップであって、該出力ポートは、ファンネル論理に接続されたトレースバスの集約された最大帯域幅より狭い最大帯域幅を有することを特徴とするステップと、(c)出力ポートの最大帯域幅を超えないように、入力トレース信号が出力ポートから出力されることを保証するために、トレースモジュールからのトレース信号の発行を制御するステップとを含むことを特徴としている。
【0041】
本発明の第5の観点から言えば、本発明は、本発明の第3あるいは第4の観点の方法にもとづき装置を制御するためのコンピュータプログラムを実行するコンピュータプログラムプロダクトを提供するものである。
【0042】
【発明の実施の形態】
(好適な実施例の詳細な説明)
添付の図面に示されたような好適な実施例を参照しながら単なる例として、本発明を説明する。
【0043】
図1は、オンチップのトレース機構を提供するデータ処理システム2の概略を示す図である。集積回路4は、マイクロプロセッサコア6、キャッシュメモリ8、オンチップトレースモジュール10およびオンチップトレースバッファ12を含んでいる。集積回路4は、キャッシュメモリ8でキャッシュミスが発生した時にアクセスされる外部メモリ14に接続されている。汎用コンピュータ16は、オンチップトレースモジュール10とオンチップトレースバッファ12に接続され、汎用コンピュータ16で実行されるソフトを用いて、これらの構成要素からのトレースデータのストリームを取り出して解析する。
【0044】
動作中は、プロセッサコア6は、外部メモリ14のための実際のメモリ空間よりも多いデータ処理命令とデータにアクセスする必要がある場合が多い。例えば、外部メモリ14は、1MBの容量であるのに対し、プロセッサコア16は、通常、32ビットアドレスを指定することが可能となっており、これにより、4GBの命令とデータを指定することができる。従って、プロセッサコア6によって要求される全ての命令とデータは、例えば、ハードディスクなどの外部記憶装置18に格納され、プロセッサコア6が、特定の動作状態で動こうとする場合には、この動作の状態に対して適切な命令とデータが外部メモリ14にロードされる。
【0045】
図2は、図1のオンチップトレースモジュールの内部に設けられた構成要素をより詳細に示すブロック図である。オンチップトレースモジュール10は、プロセッサコア6で実行される処理を表すデータを、経路105で受信するように構成されている。図1によれば、このデータ(例えば、コア6に与えられた命令および、あるいはデータ、およびコアによって生成されたデータ)は、バス20を介してコア6から直接受信されるほかの制御型データ(例えば、インデックス化された命令アドレスを示すデータ、なんらかの理由である命令がその条件コードを実行失敗したことを示すデータなど)とともに、キャッシュ8およびオンチップトレースモジュール10に接続したバス20から受信する。ある実施例では、両方の種類のデータが、(2つのバス20および22を用いるのではなく)トレースモジュール10とコア6間の単一のバスを介して、トレードモジュール10に送られることは、当該技術分野に精通した者にとって認識されうるものである。
【0046】
同期論理100は、入力信号を、オンチップトレースモジュール内で用いるためにより適した、信号の内部モードに変換するように構成されている。これらの内部モードは、トリガ110とトレース生成ブロック120に送られるが、トリガ110とトレース生成ブロック120は、必ずしも同一の信号を受信するために必要となるものではないことが分かる。基本的には、トリガ110は、例えば、アドレス、データ値、レジスタアクセスなどのトリガ可能なイベントに関連したデータを受信するために必要なものである。トリガ生成ブロック120は、トリガ110によって発行されたイネーブル信号に応じてトレースされる必要のある任意のデータを受信するために必要なものである。オンチップトレースモジュール10には、さらに、汎用コンピュータ16から経路125を介して構成情報を受信するように構成されたレジスタバンク180が組み込まれており、その構成情報の内容は、必要に応じて、オンチップトレースモジュール10の構成要素によって読み取られるようになっている。
【0047】
トリガ110が、トレースストリームの生成を引き起こすイベントを検出する時はいつも、トリガは、経路135を介して、イネーブル信号をトレース生成論理120に送り、トレースをオン、オフする。これにより、トレース生成論理は、経路145および155を介して必要なトレースデータをFIFO130に出力することにより応答する。様々なイネーブル信号が経路135を介して送られ、例えば、命令だけのトレース、命令とデータのトレースなど、トレースすべき信号の種類を特定する。
【0048】
本発明の好適実施例によれば、トレース生成ユニットにより生成されるトレース信号は、高優先度トレース信号あるいは低優先度トレース信号のいずれかであるとして分類される。この分類は、トレース生成ブロック120の中に保持されることが好ましく、あらかじめ定義されたものであるか、ユーザによってプログラム可能となるものであってよい。図2に示した実施例では、高優先度トレース信号は、例えば、分岐アドレスに関するトレース信号などの命令トレースに関する信号を示すものであり、一方、低優先度トレース信号は、データトレースに関する信号を示すものであり、この低優先度トレース信号は、同期を失うことなく損失されうるものである。トレース生成論理120によってFIFO130から受信される任意の信号がない場合には、経路135を介してトリガ110から受信したイネーブル信号に応じてFIFO130に適切なトレースデータを出力するように、トレース生成論理が構成されている。この構成により、例えば、経路145を介して発行される命令トレース信号と、経路155を介して発行されるデータトレース信号の両方が発行されることになる。図2には2つの独立した経路が示されているが、命令トレース信号とデータトレース信号の両者は、通常、トレース生成論理120とFIFO130の間の接続を共有するものであることは、当該技術分野に精通した者にとって認識されうるものである。
【0049】
命令をトレースすることに加え、データをトレースする際には、経路155を介したデータトレース信号は、トレース生成信号120からFIFO130へのトレースポートの帯域幅のほとんどを占有することが分かる。さらに、トレース信号は、狭帯域の出力トレースポートを介して、FIFO130からトレースバッファ12へ経路150を通して排出される。通常、経路150を介してトレースバッファに発行される任意のトレース信号は、経路140上で出力トレースが有効であるか否かを示すトレース有効信号を伴うものである。トレース有効信号は、通常、対応するトレースモジュールがそのクロックサイクルの間に発行すべきトレースデータを持たない場合に無効と設定されるものである。
【0050】
FIFO130からの出力帯域幅は、通常、その入力帯域幅よりも狭いため、例えば、トレース生成ブロック120によってトレースデータが突発的に発行されることが持続すると、FIFO130はオーバフローする可能性がある。例えば、入力トレースポートは、トレースバッファへの出力トレースポートよりも4倍から5倍の帯域幅となっている。
【0051】
本発明に先立ち、この問題を解決する方法としては、FIFOが満杯になったことを示す信号をオンチップトレースモジュール10からコア6に送り、コア6を一時的に停止させ、FIFO内のデータの量を削減できるようにするものがあった。しかし、固有の遅れ時間や他の問題のために、FIFOが満杯になったことを示す信号の発生時刻とプロセッサコアの停止時刻の間に、コア6が停止する前にそれが動作中であることを示すトレース信号が発行されてしまい、いずれにせよFIFO130がオーバフローを引き起こしやすくなるため、この方法は信頼性に欠けるものであることが判明している。
【0052】
本発明の一実施例によれば、FIFO130により発行され経路160を介して直接トレース生成ブロック120に送られる抑制信号(以下、DSup信号と称す)を設けることにより、この問題が解決できる。本実施例では、FIFOの内容が、あらかじめ定められた抑制レベルに達すると、FIFO130からトレース生成ブロック120に向けてDSup信号を発行するように、FIFO130が構成されており、これにより、トレース生成ブロックは、DSup信号が発行されている間は、経路155を介した任意のデータトレース信号の発行は停止されることになる。これは、データトレース信号が失われることを意味しているが、これらの信号は低優先度トレース信号であると考えられ、同期情報を失うことなく損失してもよいものである。さらに、データトレースは、通常、高優先度の命令トレースに比べより広い帯域幅を用いるものであるため、データトレースを抑制することは、FIFO130が満杯にあることを防ぐ上で十分であることが分かっている。
【0053】
FIFO130内のデータトレースの量が、あらかじめ定められた再起動レベルに実質的に落ち着くと、FIFO130は、DSup信号の発行を止めるように構成されており、これによりトレース生成ブロック120は、経路155上にデータトレース信号を再び発行する。
【0054】
あらかじめ定められた抑制レベルとあらかじめ定められた再起動レベルは、実装状態に従って選択される。しかし、例えば、60バイトのFIFOでは、あらかじめ定められた抑制レベルは、45バイト(すなわち、FIFOの全容量の75%を占有する状態)となるように設定されるのに対し、あらかじめ定められた再起動レベルは、通常、45バイトを僅かに下回る値に設定され、抑制信号の発行が止められた後は、直後に抑制信号の再発行を必要とせずに、FIFO内に格納されたトレース信号の量を増加することができるような余裕をもたせることを保証する。
【0055】
DSup信号の発行によってデータトレース信号を単純に破棄する動作だけでは、全ての状況において、FIFO130のオーバフローを防ぐことはできないため、FIFO130は、それが満杯になった際には、経路170上にオーバフロー信号を発行できるようになっており、これにより、オーバフロー信号の発生が止むまでに、トレース生成ブロック120によって任意のトレース信号の発行を停止することができるようになっている。このような手順によって、高優先度トレース信号と低優先度トレース信号の両方が失われることになるが、DSup信号を発生するためのあらかじめ定められた抑制レベルを適切に選ぶことにより、オーバフロー信号を発行する必要のある場面というのは極めて稀なことになる。
【0056】
他の実施例では、DSup信号をトレース生成ブロック120に発行することに加え、FIFO130が、DSup信号が発行された後に、命令トレース信号のみを格納する内部ステップをとるものがある(これにより、DSup信号の発行と、トレース生成ブロックによる当該DSup信号への応答との間の遅れ時間を除去することができる)。
【0057】
図3は、本実施例のトレース生成ブロック120によって実行される、経路145および155を経由してFIFO130に出力されるトレース信号を決定するための処理ステップを示すフロー図である。ステップ300では、生成すべきなんらかのトレースデータがあるかどうかを判定する。生成すべき新しいトレースデータがあると判定された場合には、ステップ310に進み、そこで、このトレースデータは、命令トレースデータであるか否かを判定する。もしそうならば、ステップ380に進み、そこで、データ同期情報を含まないトレースデータを経路145上に発行する。しかし、時として、命令トレースに関して、他の命令同期情報が必要になる場合もあることは、当該技術分野に精通した者にとって認識されうるものである。
【0058】
ステップ310において、生成すべきトレースデータが命令データでないと判定された場合には、トレースデータはデータトレースとなり、処理ステップ320に進み、そこでDSup信号が発行されたかどうかを判定する。もしDSup信号が発行されたならば、ステップ330に進み、そこで、生成すべきデータトレースの項目が、DSup信号の発行に続く第1の(最初の)項目であるかどうかを判定する。もしそうでなければ、ステップ340に進み、データトレースの項目は出力されない。しかし、もしデータトレースの項目が、DSup信号の発行に続く第1の(最初の)項目である場合には、ステップ350に進み、全データトレース信号の代わりに、位置情報信号を経路155を介してFIFOに出力する。この位置情報信号は、一意の信号であり(例えば、データ抑制の開始位置を特定する1バイト信号)、後にトレースデータを解析する任意のツールによって識別可能なものであり、そのツールに対し、データ抑制が行われたことを示すために用いられる。位置情報は、抑制されたデータトレースの各項目について発行されるものであるが、本実施例では、抑制しようとするデータトレースの第1項目に関してのみ位置情報を発行し、位置情報の発行によってFIFOにオーバフローを引き起こす危険性を防ぐようにしている。さらに、通常、トレース解析ツールにとってより重要なことは、どれだけの数のデータトレース項目が抑制されたかを知ることよりも、抑制が起こったこと自体を知ることである。
【0059】
ステップ320で、DSup信号が発行されなかったと判定された場合には、次に、ステップ360に進み、DSup信号の発行が停止されていることから、トレースしようとするデータトレース項目が第1の(最初の)データトレース項目であるか否かを判定する。もしそうならば、ステップ370に進み、データトレース信号を後で解析できるようにするのに必要となる任意のデータ同期情報とともに、データトレース信号を発行する。例えば、出力データトレース中のアドレスの圧縮が行われた場合には、データ同期情報には、圧縮されなかったアドレスの出力が含むものとなる。
【0060】
しかし、ステップ360で、DSup信号の発行が停止されていることから、発行するべきデータトレース項目が第1データトレース項目でないと判定されたと仮定すると、次にステップ380に進み、そこで、対応するデータ同期情報を伴わずに、そのデータトレース項目が出力される。
【0061】
従って、本発明の位置実施例によれば、ここで用いられる方法によって、コア36を停止させることなくFIFOのオーバフローを動的に回避することができる。したがって、ユーザが、このようなオーバフローを回避するためにトレースデータを絞り込もうとする時間をかける代わりに、本方法は、FIFOがオーバフローしそうになるレベルに達した時に、低優先度のトレースデータだけが失われるようにして、できるだけ多くのトレースデータをトレースすることを保証するものである。
【0062】
図4は、複数のオンチップトレースモジュール400、405および410を設けたデータ処理システムのブロック図である。本例では、集積回路4は、2つのプロセッサコア402および407を有し、これらは、対応するキャッシュ404および409に接続されている。キャッシュ404および409は、両者とも、メモリバス420を介して、外部メモリ14に接続されている。図4には明記されてはいないが、外部メモリ14は、図1に示した外部記憶装置に接続されている。本例のシステムでは、プロセッサコア402および407とメモリバス420の両者の動作をトレースできるようにすることが望ましいと考えられる。従って、集積回路4のこれらの異なる構成要素をトレースするために、独立したオンチップトレースモジュール400、405および410が各々設けられている。
【0063】
しかし、各トレースモジュールに対応して外部ピンあるいは独立したトレースバッファを設けるコストは、通常、極めて高いものになる。従って、図4に示した例では、複数のトレースモジュール400、405および410が出力するトレース信号を格納するために、単一のトレースバッファ12を設ける。さらに、複数のオンチップトレースモジュールの間を仲介し、これらの複数のオンチップトレースモジュールからのトレース信号を単一のトレースストリームに変換し、経路470を介してトレースバッファ12に出力するために、ファンネル論理460を設ける。このような仲介が必要になるのは、入力トレースの経路440、442および444上の帯域幅の総量は、通常、トレースバッファ12への経路470上の帯域幅よりも広くなるからである。
【0064】
本実施例では、オンチップモジュール400、405および410の各々は、オンチップトレースモジュールが出力トレースデータを必要とした時に、経路430、432および434を介してファンネル論理に対してリクエスト信号を発行するように構成されている。実際には、このリクエスト信号は、図2に示したトレース有効信号によって与えられる。あらかじめ定められた基準に基づき、さらに、ファンネル論理460は、複数のリクエスト信号の間を仲介し、トレースバッファ12への出力として、どのトレースモジュールがファンネル論理に対してトレースデータを発行するべきかを決定し、それに応じて、ファンネル論理は、許可信号452、454および450を発行する。任意の好適な仲介手順を使うことができるが、例えば、通常は、メモリバスで複数のプロセッサコアにより要求されるアクセス間を仲介するために用いられるのと同様の仲介手順を用いることが可能であることを理解されるであろう。特定のトレースモジュールが、発行された許可信号を受信した時に、トレースモジュールとファンネル論理460との間の各々のトレース経路440、442および444を介して、そのトレースデータを出力する。ファンネル論理460の動作の詳細については、後に図5を引用して詳細に説明する。
【0065】
リクエストハンドラ500は、経路430、432および434を介して、複数のリクエスト信号を受信するために、ファンネル論理460の内部に設けられる。さらに、リクエストハンドラ500は、あらかじめ定められた優先度情報を格納した基準格納装置510に構成され、1つ以上のリクエスト信号が特定の時点で発行された際に、どのトレースモジュールに許可信号を発行すべきかを決定する。メモリ510内に格納された優先度情報は、あらかじめ定めておいたものでもよいし、ユーザによりプログラム可能なものであってもよい。図4に示した例では、メモリバス420の動作が、トレースすべき最も重要なものであり、その次にはコア1の動作、さらに次にはコア2の動作が重要であると想定している。従って、メモリバストレースモジュール410が、経路434の上にリクエストを発行した場合には、経路430および432上にリクエスト信号が存在することに関わりなく、許可信号が経路450上に発行される。同様に、オンチップトレースモジュール400および405から、経路430および432上に同時にリクエスト信号を受信した場合には、トレースモジュール405に優先して、経路452上にトレースモジュール400への許可信号が発行される。
【0066】
マルチプレクサ520は、3つのトレースモジュールから経路440、442および444の上で受信される複数のトレース信号を受信するため、ファンネル論理460の内部に設けられる。リクエストハンドラ550が許可信号を発行すると、それは、同時に、識別信号を経路525上に発行しマルチプレクサ520に送り、マルチプレクサ520に対して、許可信号を与えられたトレースモジュールによって発行されるトレース信号を経路535上に発行させる。従って、一例として、もしメモリバストレースモジュール410に許可信号が発行された場合には、マルチプレクサ520は、入力経路444を介して受信される信号を経路535上に発行するように構成される。
【0067】
さらに、単一のトレースストリームが、経路470を介してトレースバッファ12に対して出力されるため、どのトレースモジュールがトレースストリームの特定の部分を生成するのに対応しているかの識別がトレースストリーム内に含まれていることが、コンピュータ16(図1参照)で動作するトレースツールによって後で解析する際に用いる上で重要となる。従って、本実施例では、マルチプレクサ520から出力されるトレース信号を受信し、どの構成要素(あるいはトレースモジュール)にトレースストリームの特定の部分が対応しているのかを表すトレース識別子の中に挿入するために、ラッピングプロトコル論理530が設けられる。本実施例では、この識別子は、ラッピングプロトコル論理530によって、経路525を介して発行された識別信号から求められる。このようにして得られたトレースストリームが、経路470を介してトレースバッファ12に出力される。
【0068】
図5はファンネル論理460の動作の概要を示したものであり、ある実際の実装では、制御経路の中に多くのレジスタが必要となり、このような場合には、マルチプレクサ520に対して、なんらかの入力バッファを設けることが必要となることは、当該技術分野に精通した者にとって認識されうるものである。
【0069】
図7は、適切な許可信号と識別子信号を発行するために、リクエストハンドラ500の内部に設けられる論理を概略的に示した図である。上述したように、本実施例では、メモリバスの動作は、トレースすべき最も重要なものであると考えられるため、メモリバストレースモジュール410から経路434上に送られた設定リクエスト信号(すなわち、論理値1レベルである信号)を、経路450上の許可信号として出力する。このような状況では、ANDゲート700および710は、経路430および432を介して受信されるリクエスト信号に関わりなく、他の2つの許可信号452および454は論理値0レベルであることを保証するものである。さらに、ID信号は“00”であることから、対応するトレース信号の発生元がメモリバストレースモジュール410であると特定される。
【0070】
もし経路434上のリクエスト信号が、設定されていない(すなわち、論理値0レベルである)場合には、ANDゲート700および710は、オンチップトレースモジュール1 400からの設定リクエスト信号は、オンチップトレースモジュール2 405からの設定リクエスト信号よりも優先度が高いことを保証する。さらに、図7からは、もし許可信号が経路452上に発行された場合には、ID信号は“01”となることから、対応するトレース信号の発生元はオンチップトレースモジュール1 400であると特定される。同様に、許可信号が経路454上に発行された場合には、ID信号は“10”となることから、対応するトレース信号の発生元はオンチップトレースモジュール2 405であると特定される。
【0071】
一実施例によれば、各トレースモジュールは、リクエスト信号を発行するように構成され、対応する許可信号を受信した時にのみ、トレース信号をファンネル論理460に出力できる。しかし、本実施例では、各トレースモジュールは、リクエスト信号を発行し、もし許可信号の発行が止まった場合にはトレース信号の出力を中止するように構成されている。図4に示すような集積回路では、許可信号に応答するようには設計されていない、1つあるいはそれ以上の数の過去のトレースモジュールの設計が存在する場合もありうる。このような過去の設計に基づくトレースモジュールは、以下では、停止不能型装置と称する。
【0072】
図6には、1つの停止可能型装置600および2つの停止不能型装置610および620が、ファンネル論理460に接続されているものとして、その概略が示されている。各停止不能型装置とファンネル論理460の間には、対応するバッファ630および640が置かれており、以下では、停止可能バッファと称する。
【0073】
図5を引用して先に述べたように、停止可能型装置がトレースデータを発行しようとする場合には、その装置は、最初に、経路604上にリクエスト信号を発行し、対応する許可信号が経路604上にファンネル論理460から受信された時には、さらに、その装置は、トレースデータを経路602上に発行する。本例では、トレースデータは32ビットの帯域幅を有するものと仮定している。
【0074】
しかし、これとは対照的に、各々の停止不能型装置610および620が、生成された時にデータトレース項目を発行し、これは、経路612および622を介して、対応する停止可能バッファ630および640に送られる。同時に、トレース有効信号が経路614および624上に発行され、これらは要求信号と同様に見なされうるものとなる。図示の都合上、図6では、停止不能型装置610は、帯域幅8ビットのトレースデータを発行し、一方、停止不能型装置620は、帯域幅16ビットのトレースデータを発行するものとなっている。
【0075】
停止可能バッファ630および640の各々は、発行すべき32ビットのトレースデータを有するまで待機するように構成され、さらに、各々、経路634および644を介して、ファンネル論理460に対してリクエスト信号を発行するように構成されている。各バッファが許可信号を受信すると、各々、経路632および643を介して、対応するトレースデータを出力する。
【0076】
停止可能バッファ630および640は、理想的には、比較的小さい容量であるため、バッファ630および640が許可信号を受信する前に長時間の待ちを必要としないように、停止不能型装置610および620には、ファンネル論理460のメモリ510中に格納された優先度情報の中から比較的高い優先度を割り当てることが好ましい。図6に示した例では、停止不能型装置には、停止可能装置600よりも高い優先度を割り当てるものと仮定すれば、オーバフローしないことを保証するためには、各バッファ630および640は、64ビットの容量とする必要があるだけである。
【0077】
単一のサイクル時間内では、単一の装置だけが出力トレースを必要とするため、停止不能型装置の全帯域幅は、ファンネル論理からの出力ストリームの帯域幅を上回らないことが好ましい。図6に示した例では、停止不能型装置の全帯域幅は24ビットであり、これに対し出力の帯域幅は、32ビットである。
【0078】
図5を引用して先に述べたように、ファンネル論理460によって適切な許可信号を発行することにより、トレースデータの単一のストリームが出力され、本例では、32ビットの帯域幅をもつトレースストリームが出力されることが保証される。前記のように、このトレースストリームは、ラッピング論理530を経由し、そこで装置識別子が付加され、その後、修正されたトレースストリームは、トレースバッファ12に出力される。図6に示した例では、3つの異なる装置があるため、情報の2ビットは、装置IDの中で一意に装置を識別するために必要なものとなる。従って、32ビットのトレースストリームは、ラッピング論理530によって装置IDが付加されると、修正されて34ビット幅のトレースストリームを生成するものとなる。
【0079】
図6では、ラッピング論理530は、装置IDを組み込んだ結果、トレースストリームの帯域幅がどの程度変わるかを明確に示すために、ファンネル論理460の外部にあるものとしてその概略が示されている。ラッピング論理は、希望に依って、ファンネル論理の外部に設けてもよいし、ファンネル論理の内部に設けてもよく、この結果は処理操作には影響を及ぼさないことが、当該技術分野に精通した者にとって認識されうるものである。
【0080】
本発明の実施例について上述したように、データ処理装置の内部でトレース信号を発生させるための改良された方法について説明した。特に、オンチップのトレースモジュールの内部で抑制信号を用いることにより、抑制信号が発行された際には、低優先度トレースデータが抑制されてFIFOに入るトレースデータの量を減らすことができるため、抑制信号オンチップのトレースモジュールのFIFOがオーバフローしないことをより確実に保証することができる。さらに、複数のオンチップトレースモジュールを設けた際には、上述したファンネル論理によって、これらのトレースモジュールによって発行された複数のトレース信号が、単一のトレースストリームに集約され、トレースバッファに出力されるため、対応するピンあるいはトレースバッファを設けるコストに不必要な増加を招くことなく、複数のトレースモジュールを用いることが可能となる。
【0081】
以上では、本発明の特定の実施例について説明してきたが、本発明はそれに限定されるものではなく、本発明の範囲内で多くの修正と追加が可能となることは明白である。例えば、本発明の範囲を逸脱することなく、独立クレームの特徴とあわせて、従属クレームの特徴の組み合わせを得ることが可能となる。
【図面の簡単な説明】
【図1】オンチップのトレース機構を設けたデータ処理システムの概略を示す図である。
【図2】本発明の一実施例において、図1のオンチップのトレースモジュールをより詳細に示すブロック図である。
【図3】本発明の一実施例において、図2のトレース生成ブロックが、どのトレース信号を発行するかを決定する方法を示すフロー図である。
【図4】本発明の一実施例において、データ処理装置の概略を示し、複数のオンチップのトレースモジュールが設けられている構成を示す図である。
【図5】本発明の一実施例において、図4のファンネル論理内に設けられた構成要素をより詳細に示すブロック図である。
【図6】本発明の一実施例において、安定した装置および不安定な装置の両者に接続するように、実施例のファンネル論理がどのように構成されているかを示す図である。
【図7】本発明の一実施例において、受信されたリクエスト信号から許可信号と識別子信号を生成するために、実施例のファンネル論理の内部で用いられる論理を示す図である。
【符号の説明】
2 データ処理システム
4 集積回路
6 マイクロプロセッサコア
8 キャッシュメモリ
10 オンチップトレースモジュール
12 オンチップトレースバッファ
14 外部メモリ
16 汎用コンピュータ
20、22 バス
[0001]
BACKGROUND OF THE INVENTION
(Background of the Invention)
The present invention relates to the generation of trace signals in a data processing apparatus having one or more components that track its behavior.
[0002]
[Prior art]
Tracking the movement of a data processing system and thereby generating a trace stream containing data representing the movement in the system step by step is a very useful tool in developing the system. However, since processing instructions tend to be embedded in the processor core in a complicated manner, it is extremely difficult to track the state of the processor core via a terminal accessible from the outside. Accordingly, not only the off-chip trace mechanism for collecting and analyzing the trace data but also more trace mechanisms are provided in the chip. An example of such an on-chip trace mechanism is the Embedded Trace Macrocell (ETM) provided by ARM, Cambridge, UK, for various ARM processors.
[0003]
Such a trace mechanism generates in real time a trace stream of data representing what the data processor is attempting to trace its movement. This trace stream is then used to enable debugging of the sequence of processing instructions executed by the data processing device.
[0004]
A trace mechanism is provided that incorporates a trigger point that is used to control trace operations that start and stop tracing due to access to a specific register, address, or data value. That is well known. Such a mechanism can be very useful in diagnosing certain parts of the system and certain types of movement.
[0005]
[Problems to be solved by the invention]
However, as data processing systems continue to increase in complexity, it is clear that there is potentially a very large amount of information to be traced. The stream of trace data generated by the ETM is usually stored temporarily prior to output for later processing, but this may cause the buffer to overflow with trace data, resulting in Trace data may be lost. For example, in a typical implementation, all ETM generated trace data is immediately written to an internal first-in first-out (FIFO) buffer and then transferred to the trace buffer via a relatively narrow bandwidth trace port. The When tracing a wide range of movement of the data processing apparatus, the FIFO overflows due to explosive generation of trace data, which may lead to loss of trace data.
[0006]
One known way to solve this problem is to configure the ETM to output a signal to the component whose operation is tracked when the FIFO occupancy reaches a predetermined level. Yes, this signal stops the component so that the contents of the FIFO can be eliminated before an overflow occurs. However, in order to avoid FIFO overflow, it is necessary to perform a search operation on the ETM from the outside (that is, depending on the component to be tracked). It turns out to be difficult. Since there is an inherent delay time between the ETM that generates such a signal and the signal generated by the component to be traced, such as a processor core, during this delay time, It can be seen that continuing to track other operations of the component will cause the FIFO to overflow anyway.
[0007]
In view of the foregoing, it would be desirable to provide a more improved method to reduce the possibility of trace data loss.
[0008]
[Means for Solving the Invention]
    (Summary of Invention)
  In a first aspect, the present invention receives a component whose operation is tracked and an input signal from the element indicating the operation, and receives a high priority from the input signal.Trace signalAnd generates a low-priority trace signal by generating a low-priority trace signal and outputting it to the trace receiver, and issuing a suppression signal from the trace receiver (assert "assert") The present invention provides a data processing apparatus including a trace generation unit that suppresses noise.
[0009]
According to the present invention, the trace signal generated by the trace generation unit is classified as being either a high priority trace signal or a low priority trace signal. The trace signal generated by the trace generation unit becomes an output to the trace reception device, and the trace generation unit receives the suppression signal from the trace reception device and suppresses the generation of the low priority trace signal. The present invention has been made based on the recognition that there are usually certain types of trace signals that are more important than other signals. For example, there are certain types of trace signals that need to be output to maintain instruction traces, such as trace signals for branch addresses, while losing synchronization, such as data trace signals. There are other trace signals that may be lost. The inventors of the present invention have also noted that the former type of trace signal often has a narrower bandwidth than the latter type of trace signal.
[0010]
With the above in mind, the data processing apparatus of the present invention is configured to suppress the low-priority trace signal when it is determined that the trace receiving apparatus is necessary. This solves the above-mentioned problem of the prior art that an arbitrary amount of trace data is lost due to overflow. On the other hand, according to the present invention, when the trace receiving apparatus determines that it is appropriate, it sends a suppression signal to the trace generation unit to ensure that only the high priority trace signal is output. Thus, the possibility that the trace receiving apparatus will overflow is suppressed as much as possible.
[0011]
Since this suppression occurs directly between the trace generation unit and the trace receiver, the above-mentioned problems in the prior art resulting from latency in returning signals to the component whose operation is being tracked are well solved, Thus, the present invention provides a more reliable method for preventing trace receiver overflow, and at the same time considers that the trace signal is lost only to the low priority trace signal. You can do it.
[0012]
  The trace receiving device can be installed at the location of the trace generation unit or away from the trace generation unit. In one embodiment, data processingapparatusA trace receiving device is provided inside, and preferably mounted on the same chip as the trace generating unit, so that the propagation of the suppression signal from the trace receiving device to the trace generating unit can be accelerated. When it becomes necessary to suppress the priority trace signal, the trace generation unit can respond at high speed. For this reason, issuing suppression signals(Occurrence " issuance ")Thus, in order to prevent the trace receiving apparatus from overflowing, the low-priority trace signal can be immediately suppressed, and the reliability is further improved.
[0013]
The trace receiving device can take various forms. However, in this embodiment, the trace receiving apparatus is a buffer having a predetermined capacity (for example, a FIFO buffer).
[0014]
In the preferred embodiment, the buffer is configured to issue a suppression signal when the amount of trace signal stored in the buffer reaches a predetermined suppression level. Accordingly, in these embodiments, a suppression signal is issued when the trace signal reaches a predetermined percentage of the buffer.
[0015]
The device that reads and analyzes the trace signal generated by the data processing device may be directly connected to the trace receiving device. However, in the embodiment, the trace receiving device includes an input port connected to the trace generation unit via the first bus having the first bandwidth, and a second configuration in which the trace signal is output to the trace buffer. An intermediate buffer having an output port connected to a second bus having a first bandwidth, the first bandwidth being wider than the second bandwidth. In these embodiments, the device for reading and analyzing the trace signal generated by the data processing device is typically configured to read the trace signal from the trace buffer.
[0016]
As can be seen from these embodiments, since the output bandwidth of the intermediate buffer is narrower than its input bandwidth, the intermediate buffer may overflow. However, by using the suppression signal of the present invention, the trace generation unit can respond quickly to the suppression signal so that the low priority trace signal is not generated excessively, thus reducing the possibility of such a situation. be able to.
[0017]
  As described above, the present invention classifies trace signals as either high priority trace signals or low priority trace signals.(By class " classification ")It is necessary to do. In the preferred embodiment, this classification is maintained within a trace generation unit that identifies whether the trace signal is a high priority trace signal or a low priority trace signal. For example, it is understood in the art that this classification can be predefined to indicate that the trace signal for instruction trace is high priority while the trace signal for data trace is low priority. It can be recognized by those who are familiar with. In addition, this classification is programmable.
[0018]
  In the preferred embodiment, when a suppression signal is issued, a suppressed low priority trace signal is used to indicate that suppression is occurring.forlocation information(Placeholder " placeholder ")The trace generation unit is configured to output to the trace receiver. Thereby, trace data can be analyzed by a tool used later, and it is possible to determine when the low-priority trace signal is suppressed.
[0019]
These location information is issued as each item of trace data is suppressed, but in the preferred embodiment the trace is generated so that only the location information for the initially suppressed low priority trace signal is output. Unit is configured. Therefore, this position information indicates that suppression has occurred first, and is sufficient for the trace analysis tool to determine that data suppression has occurred. The possibility of causing an overflow of is avoided.
[0020]
In a preferred embodiment, the trace receiver is configured to release the suppression signal when the amount of trace signal stored in the buffer has dropped to a predetermined restart level. The predetermined restart level may be determined to be the same as the predetermined suppression level, but if the predetermined restart level is determined in this way, in some situations, the And tend to cause a certain amount of vibration between the unsuppressed state. Therefore, in the preferred embodiment, the predetermined suppression level is set higher than the predetermined restart level so that when all traces are restarted, there is no need to reissue the suppression signal. A capacity capable of increasing the amount of the trace signal stored in the receiving apparatus can be secured.
[0021]
In the preferred embodiment, for the first low priority trace signal that leads to the de-issue of the suppression signal, the initial low priority trace signal, along with any necessary synchronization data, can be analyzed later. The trace generation unit is configured to output a priority trace signal. As a result, any synchronization information that is missing corresponding to a certain part of the trace stream to be suppressed is taken into the stream of the trace signal.
[0022]
Data processing systems are becoming more complex, for example due to increased integration levels in embedded systems, so that more functionality is included in each data processing device (eg, chip). Therefore, it is necessary to provide more trace blocks and modules in the data processing apparatus. In such future systems, a single trace module that includes such a single trace generation unit is no longer sufficient, as it includes multiple components whose operation is to be tracked. For example, a data processing device includes a plurality of processor cores, each of which needs to be traced, and further, various buses in the data processing device need to be traced. However, it can be seen that the cost of providing external pins and trace buffers for each trace module is very high. However, there are exchanges of signals and information between different parts of the data processing device, and in order to debug these, it is necessary to trace the relationship between these parts at the same time, so between the multiple trace modules, Simply sharing pins and trace buffers is not appropriate. Therefore, as another problem to be solved, it becomes a problem to be able to effectively trace signals from a plurality of trace modules of the data processing device.
[0023]
  Thus, in an embodiment of the present invention, the data processing apparatus further includes a plurality of trace modules for receiving input signals from one or more components to be traced, wherein each trace module is Generating a trace signal from the input signal and outputting the trace signal on a corresponding trace bus, wherein at least one of the trace modules includes the trace generation unit and a corresponding trace receiving device, and the corresponding trace bus receives the trace reception The data processing apparatus is further connected to the trace bus of the trace module, receives the trace signal output to each trace bus as an input trace signal, and receives the trace signal from the input trace signal. Configure to generate the resulting trace stream to the output port Comprises a funnel logic, wherein the output port, aggregation trace bus connected to the funnel logic(overall" collective ")The trace signal by the trace module has a maximum bandwidth that is narrower than the maximum bandwidth and the funnel logic ensures that the input trace signal is output from the output port so that the maximum bandwidth of the output port is not exceeded. It is characterized by being configured to control the issuance of.
[0024]
Accordingly, in these embodiments, funnel logic is provided that is connected to the trace bus of various trace modules and is configured to generate a trace stream derived from various input trace signals at the output port. The trace stream is sent, for example, to a pin that can send a signal to the chip or to a trace buffer. The funnel logic is also configured to control the issuance of trace signals by the various trace modules to ensure that the input trace signal is output from the output port so that the maximum bandwidth of the output port is not exceeded. ing. Thus, the funnel logic of these embodiments can effectively generate multiple trace sources as input and a single trace stream as output, where the output stream is that of the expected input stream. The total number is not exceeded.
[0025]
According to the first aspect of the present invention, this funnel logic is provided inside the data processing device regardless of whether any trace module can suppress the generation of low priority trace signals. Thus, according to a second aspect of the invention, the invention comprises a plurality of trace modules for receiving input signals from one or more components to be traced, wherein each trace module Is characterized by generating a trace signal from the input signal and outputting it on a corresponding trace bus, and receiving the trace signal output to each trace bus as an input trace signal. And a funnel logic configured to generate a trace stream derived from an input trace signal to an output port, wherein the output port is greater than an aggregate maximum bandwidth of the trace bus connected to the funnel logic. Has a narrow maximum bandwidth so that the funnel logic does not exceed the maximum bandwidth of the output port To ensure that the input trace signal is output from the output port, and characterized in that it is configured to control the issuance of the trace signal by trace module, there is provided a data processing apparatus.
[0026]
In a preferred embodiment, the trace module is configured to indicate to the trace module which trace module should send the trace signal to the funnel logic at any point in time, and only the trace signal from one trace module can be trace streamed at any point in time. Has come to include.
[0027]
The act of determining which trace module should send a trace signal to the funnel logic at any point in time can be implemented in various ways. However, in the preferred embodiment, the funnel logic receives a request signal from each trace module that is attempting to output a trace signal on the corresponding trace bus and applies the predetermined criteria to the received request signal. A request handler is included to determine which trace module is to output the trace signal to the funnel logic. Thus, in these embodiments, each trace module is configured to indicate to the funnel logic when the trace module is about to output a trace signal to the corresponding trace bus so that the funnel logic is received. Mediate between various requests.
[0028]
Here, the request handler is preferably configured to send a permission signal to a trace module that will send a trace signal to the funnel logic upon application of a predetermined criterion. Thus, in these embodiments, the trace module will continue to issue its request signal until it receives an enable signal indicating that the trace signal can be sent to the funnel logic.
[0029]
The predetermined criteria applied by the funnel logic request handler to determine which trace module issues a trace signal to the funnel logic at any given time can take a variety of forms. However, in the preferred embodiment, the predetermined criteria shall define the priority order of the various trace modules.
[0030]
The predetermined criteria can be either predetermined or programmable. For example, the predetermined criteria may be specified, for example, to identify the relative priority assigned to the various trace modules, by the component that the module contained in it is configured to trace its operation. It may be programmable for the implementation of. For example, if it is determined that the most important trace signal to be output relates to the operation of the memory bus, the highest priority is assigned to the trace module configured to track this memory bus operation. It is done.
[0031]
In a preferred embodiment, the funnel logic further includes a multiplexer whose output is connected to each of the trace buses, and the request handler issues a control signal to the multiplexer upon application of the predetermined criteria, It is configured to control which input of the multiplexer is to be output as a trace stream output from the multiplexer for transferring the stream to an output port of the funnel logic.
[0032]
In order to effectively analyze the trace stream output from the funnel logic, it is necessary to analyze using a tool in order to know which component corresponds to a specific part of the trace stream. Become. In the preferred embodiment, the funnel logic includes the logic required for such an identifier to be added to the trace stream. In particular, in the preferred embodiment, the funnel logic further includes wrapping logic for introducing an identifier into the trace stream that indicates which component a particular portion of the trace stream corresponds to. This identifier can be implemented in various ways. However, in some embodiments, the wrapping logic is configured to receive a control signal issued to the multiplexer, and this identifier is derived from the control signal. Another example is to configure each trace module to issue an identifier to the wrapping logic.
[0033]
It can be seen that there are various ways of assigning components to corresponding trace modules. For example, in one implementation, a single trace module can actually be configured to trace one or more components. However, in the preferred embodiment, one trace module may be provided for each component to be traced.
[0034]
In one embodiment, each trace module is configured to issue a request signal to the funnel logic, thereby allowing the funnel logic to control the issuance of trace signals by each trace module in each situation.
[0035]
However, in other embodiments, for example, the trace module may depend on the design of the past trace module, and may be configured to simply output the trace stream when the trace module determines that it is appropriate. Therefore, there is a case where one or more trace modules are not configured to issue such a request signal or respond to the permission signal. In such a situation, the issue of the trace signal by at least one of the trace modules cannot be controlled by funnel logic, and the data processing device further includes such trace modules and funnel logic. And includes a buffering buffer for each of the trace modules for temporarily storing trace signals output from the trace module.
[0036]
In such an embodiment, the stalling buffer is configured to issue a request signal for the corresponding trace module and respond to any grant signal issued by the request handler, temporarily Preferably, the stored trace signal is output to funnel logic. Thus, in practice, the stalling buffer is the “front end” for each module according to such a past design, and the trace module can be connected in an appropriate manner with funnel logic.
[0037]
In the preferred embodiment, the stalling buffer is configured to issue a request signal when the amount of trace signal stored in the stalling buffer reaches a predetermined level. The number of components connected to the funnel logic that determine which trace module provides the trace signal to the funnel logic at a particular time by appropriately selecting the predetermined criteria applied by the funnel logic By limiting the bandwidth, it is possible to ensure that the stalling buffer receives the grant signal before the stalling buffer overflows with the trace data output from the corresponding trace module.
[0038]
As described above, the funnel logic output port may be connected to the trace buffer of the data processing apparatus. Alternatively, the output port may include a plurality of pins that allow the trace stream to be output to the outside from the data processing device.
[0039]
According to a third aspect of the present invention, the present invention provides a method for generating a trace signal in a data processing apparatus having components for tracing its operation, the method comprising: (i) Receiving an input signal from an operational component; (ii) generating a high priority and low priority trace signal from the input signal for output to a trace receiver; (iii) During step (ii), in order to suppress the low-priority trace signal, a step including responding to issuance of the suppression signal from the trace receiving device is performed using the trace generation unit. Yes.
[0040]
In a fourth aspect of the present invention, the present invention provides a data processing apparatus having a plurality of trace modules for receiving input signals from one or more components that trace its operation. Each trace module is configured to generate a trace signal output via a corresponding trace bus from each input signal of the trace module, the method comprising: (A) receiving a trace signal output to each trace bus in the funnel logic as an input trace signal; and (b) generating a trace stream obtained from the input trace signal at an output port of the funnel logic. The output port is an aggregated maximum of trace buses connected to the funnel logic A step characterized by having a maximum bandwidth narrower than the bandwidth; and (c) a trace to ensure that the input trace signal is output from the output port so as not to exceed the maximum bandwidth of the output port. Controlling the issuance of trace signals from the module.
[0041]
Speaking from the fifth aspect of the present invention, the present invention provides a computer program product for executing a computer program for controlling an apparatus based on the method of the third or fourth aspect of the present invention.
[0042]
DETAILED DESCRIPTION OF THE INVENTION
Detailed Description of the Preferred Embodiment
The present invention will now be described, by way of example only, with reference to a preferred embodiment as illustrated in the accompanying drawings.
[0043]
FIG. 1 schematically illustrates a data processing system 2 that provides an on-chip trace mechanism. The integrated circuit 4 includes a microprocessor core 6, a cache memory 8, an on-chip trace module 10 and an on-chip trace buffer 12. The integrated circuit 4 is connected to an external memory 14 that is accessed when a cache miss occurs in the cache memory 8. The general-purpose computer 16 is connected to the on-chip trace module 10 and the on-chip trace buffer 12, and uses software executed by the general-purpose computer 16 to extract and analyze a stream of trace data from these components.
[0044]
During operation, the processor core 6 often needs to access more data processing instructions and data than the actual memory space for the external memory 14. For example, the external memory 14 has a capacity of 1 MB, while the processor core 16 can normally specify a 32-bit address, thereby specifying a 4 GB instruction and data. it can. Therefore, all the instructions and data required by the processor core 6 are stored in the external storage device 18 such as a hard disk, and this operation is performed when the processor core 6 tries to operate in a specific operation state. Instructions and data appropriate for the state are loaded into the external memory 14.
[0045]
FIG. 2 is a block diagram showing in more detail the components provided in the on-chip trace module of FIG. The on-chip trace module 10 is configured to receive data representing processing executed by the processor core 6 via the path 105. According to FIG. 1, this data (eg, instructions and / or data provided to the core 6 and data generated by the core) is received by other control-type data received directly from the core 6 via the bus 20. (For example, data indicating an indexed instruction address, data indicating that an instruction for some reason has failed to execute its condition code, etc.) and the bus 20 connected to the cache 8 and the on-chip trace module 10 . In one embodiment, both types of data are sent to trading module 10 via a single bus between trace module 10 and core 6 (rather than using two buses 20 and 22) It can be recognized by those skilled in the art.
[0046]
The synchronization logic 100 is configured to convert the input signal to an internal mode of signal that is more suitable for use in an on-chip trace module. These internal modes are sent to the trigger 110 and the trace generation block 120, but it can be seen that the trigger 110 and the trace generation block 120 are not necessarily required to receive the same signal. Basically, the trigger 110 is necessary to receive data related to triggerable events such as addresses, data values, register accesses, and the like. The trigger generation block 120 is necessary to receive any data that needs to be traced in response to the enable signal issued by the trigger 110. The on-chip trace module 10 further incorporates a register bank 180 configured to receive configuration information from the general-purpose computer 16 via the path 125, and the contents of the configuration information can be It is read by the components of the on-chip trace module 10.
[0047]
Whenever trigger 110 detects an event that causes generation of a trace stream, the trigger sends an enable signal to trace generation logic 120 via path 135 to turn the trace on and off. This causes the trace generation logic to respond by outputting the necessary trace data to the FIFO 130 via paths 145 and 155. Various enable signals are sent over path 135 to identify the type of signal to be traced, eg, instruction only trace, instruction and data trace.
[0048]
According to a preferred embodiment of the present invention, the trace signal generated by the trace generation unit is classified as being either a high priority trace signal or a low priority trace signal. This classification is preferably maintained in the trace generation block 120 and may be predefined or programmable by the user. In the embodiment shown in FIG. 2, the high priority trace signal indicates a signal related to an instruction trace, such as a trace signal related to a branch address, while the low priority trace signal indicates a signal related to a data trace. This low priority trace signal can be lost without loss of synchronization. In the absence of any signal received from the FIFO 130 by the trace generation logic 120, the trace generation logic may output appropriate trace data to the FIFO 130 in response to an enable signal received from the trigger 110 via path 135. It is configured. With this configuration, for example, both an instruction trace signal issued via the path 145 and a data trace signal issued via the path 155 are issued. Although two independent paths are shown in FIG. 2, it is known in the art that both instruction trace signals and data trace signals typically share a connection between trace generation logic 120 and FIFO 130. It can be recognized by those familiar with the field.
[0049]
In addition to tracing instructions, it can be seen that when tracing data, the data trace signal via path 155 occupies most of the bandwidth of the trace port from trace generation signal 120 to FIFO 130. Further, the trace signal is exhausted through path 150 from FIFO 130 to trace buffer 12 via a narrowband output trace port. In general, any trace signal issued to the trace buffer via path 150 is accompanied by a trace valid signal that indicates whether the output trace is valid on path 140. The trace valid signal is normally set to be invalid when the corresponding trace module has no trace data to be issued during the clock cycle.
[0050]
Since the output bandwidth from the FIFO 130 is typically narrower than its input bandwidth, for example, if trace data is issued suddenly by the trace generation block 120, the FIFO 130 may overflow. For example, the input trace port has a bandwidth four to five times that of the output trace port to the trace buffer.
[0051]
Prior to the present invention, as a method of solving this problem, a signal indicating that the FIFO is full is sent from the on-chip trace module 10 to the core 6, and the core 6 is temporarily stopped, and the data in the FIFO is There was something that could reduce the amount. However, due to the inherent delay time and other problems, it is in operation before the core 6 is stopped between the signal generation time indicating that the FIFO is full and the processor core stop time. It has been found that this method is unreliable because a trace signal is issued to indicate that the FIFO 130 tends to cause an overflow anyway.
[0052]
According to an embodiment of the present invention, this problem can be solved by providing a suppression signal (hereinafter referred to as a DSup signal) issued by the FIFO 130 and sent directly to the trace generation block 120 via the path 160. In the present embodiment, the FIFO 130 is configured to issue a DSup signal from the FIFO 130 toward the trace generation block 120 when the content of the FIFO reaches a predetermined suppression level, whereby the trace generation block While the DSup signal is issued, the issuance of an arbitrary data trace signal via the path 155 is stopped. This means that data trace signals are lost, but these signals are considered low priority trace signals and may be lost without loss of synchronization information. In addition, since data traces typically use a wider bandwidth than high priority instruction traces, suppressing data traces may be sufficient to prevent FIFO 130 from becoming full. I know it.
[0053]
When the amount of data trace in the FIFO 130 substantially settles to a predetermined restart level, the FIFO 130 is configured to stop issuing the DSup signal so that the trace generation block 120 is on the path 155. The data trace signal is issued again.
[0054]
The predetermined suppression level and the predetermined restart level are selected according to the mounting state. However, for example, in a 60-byte FIFO, a predetermined suppression level is set to be 45 bytes (that is, a state that occupies 75% of the total capacity of the FIFO), whereas a predetermined suppression level is predetermined. The restart level is normally set to a value slightly less than 45 bytes, and after the suppression signal issuance is stopped, the trace signal stored in the FIFO is not required immediately after the suppression signal is issued again. To ensure that there is room to increase the amount of
[0055]
Since the operation of simply discarding the data trace signal by issuing the DSup signal cannot prevent the FIFO 130 from overflowing in all situations, the FIFO 130 overflows on the path 170 when it becomes full. A signal can be issued, so that the generation of an arbitrary trace signal can be stopped by the trace generation block 120 until the generation of the overflow signal stops. Such a procedure results in the loss of both the high priority trace signal and the low priority trace signal, but by appropriately selecting a predetermined suppression level for generating the DSup signal, the overflow signal is reduced. The scenes that need to be published are extremely rare.
[0056]
In other embodiments, in addition to issuing the DSup signal to the trace generation block 120, the FIFO 130 may take an internal step of storing only the instruction trace signal after the DSup signal is issued (thus, DSup The delay time between the signal issuance and the response to the DSup signal by the trace generation block can be eliminated).
[0057]
FIG. 3 is a flow diagram illustrating processing steps for determining a trace signal output to the FIFO 130 via paths 145 and 155, which is performed by the trace generation block 120 of the present embodiment. In step 300, it is determined whether there is any trace data to be generated. If it is determined that there is new trace data to be generated, the process proceeds to step 310 where it is determined whether the trace data is instruction trace data. If so, proceed to step 380 where trace data that does not include data synchronization information is issued on path 145. However, it may be recognized by those skilled in the art that sometimes other instruction synchronization information may be required for instruction tracing.
[0058]
  If it is determined in step 310 that the trace data to be generated is not instruction data, the trace data becomes a data trace, and the process proceeds to processing step 320 where it is determined whether a DSup signal has been issued. If a DSup signal is issued, proceed to step 330 where the data trace entry to be generated is the first following the DSup signal issue.(the first)Determine if it is an item. If not, the process proceeds to step 340 and no data trace item is output. However, if the data trace entry is the first to follow the DSup signal issue(the first)If it is an item, the process proceeds to step 350, and a position information signal is output to the FIFO via the path 155 instead of the entire data trace signal. This position information signal is a unique signal (for example, a 1-byte signal that specifies the start position of data suppression) and can be identified later by any tool that analyzes the trace data. Used to indicate that suppression has occurred. The position information is issued for each item of the suppressed data trace. In this embodiment, the position information is issued only for the first item of the data trace to be suppressed, and the FIFO is obtained by issuing the position information. To prevent the risk of overflow. Furthermore, it is usually more important for the trace analysis tool to know that suppression has occurred rather than knowing how many data trace items have been suppressed.
[0059]
  If it is determined in step 320 that the DSup signal has not been issued, then the process proceeds to step 360 where the DSup signal issuance is stopped, so that the data trace item to be traced is the first trace item.(the first)Determine if it is a data trace item. If so, proceed to step 370 to issue the data trace signal along with any data synchronization information needed to allow the data trace signal to be analyzed later. For example, when the address in the output data trace is compressed, the data synchronization information includes the output of the uncompressed address.
[0060]
However, assuming that it is determined in step 360 that the data trace item to be issued is not the first data trace item because issuance of the DSup signal has been stopped, then the process proceeds to step 380 where the corresponding data The data trace item is output without synchronization information.
[0061]
Thus, according to the position embodiment of the present invention, the method used here can dynamically avoid FIFO overflow without stopping the core 36. Thus, instead of taking time for the user to narrow down the trace data in order to avoid such overflow, the method can provide low priority trace data when it reaches a level where the FIFO is likely to overflow. It ensures that only as much trace data as possible is traced in such a way that only is lost.
[0062]
FIG. 4 is a block diagram of a data processing system provided with a plurality of on-chip trace modules 400, 405 and 410. In this example, the integrated circuit 4 has two processor cores 402 and 407 that are connected to corresponding caches 404 and 409. The caches 404 and 409 are both connected to the external memory 14 via the memory bus 420. Although not explicitly shown in FIG. 4, the external memory 14 is connected to the external storage device shown in FIG. In the system of this example, it may be desirable to be able to trace the operation of both the processor cores 402 and 407 and the memory bus 420. Accordingly, independent on-chip trace modules 400, 405 and 410 are each provided to trace these different components of the integrated circuit 4.
[0063]
However, the cost of providing external pins or independent trace buffers corresponding to each trace module is usually very high. Therefore, in the example shown in FIG. 4, a single trace buffer 12 is provided to store trace signals output from the plurality of trace modules 400, 405, and 410. Further, to mediate between multiple on-chip trace modules, convert the trace signals from these multiple on-chip trace modules into a single trace stream, and output to trace buffer 12 via path 470, Funnel logic 460 is provided. Such mediation is required because the total amount of bandwidth on the input trace paths 440, 442 and 444 is typically wider than the bandwidth on the path 470 to the trace buffer 12.
[0064]
In this embodiment, each of the on-chip modules 400, 405, and 410 issues a request signal to funnel logic via paths 430, 432, and 434 when the on-chip trace module requires output trace data. It is configured as follows. In practice, this request signal is given by the trace valid signal shown in FIG. Further, based on predetermined criteria, funnel logic 460 mediates between multiple request signals and determines which trace module should issue trace data to funnel logic as an output to trace buffer 12. In response, funnel logic issues grant signals 452, 454, and 450 accordingly. Any suitable mediation procedure can be used, but it is possible to use a mediation procedure similar to that typically used to mediate accesses required by multiple processor cores over a memory bus, for example. It will be understood that there is. When a particular trace module receives an issued grant signal, it outputs its trace data via each trace path 440, 442 and 444 between the trace module and funnel logic 460. Details of the operation of the funnel logic 460 will be described in detail later with reference to FIG.
[0065]
Request handler 500 is provided within funnel logic 460 for receiving a plurality of request signals via paths 430, 432 and 434. Further, the request handler 500 is configured in a reference storage device 510 that stores predetermined priority information, and issues a permission signal to which trace module when one or more request signals are issued at a specific time. Decide what to do. The priority information stored in the memory 510 may be predetermined or may be programmable by the user. In the example shown in FIG. 4, it is assumed that the operation of the memory bus 420 is the most important thing to be traced, followed by the operation of the core 1, and then the operation of the core 2. Yes. Therefore, when the memory bus trace module 410 issues a request on the path 434, the permission signal is issued on the path 450 regardless of the presence of the request signal on the paths 430 and 432. Similarly, when request signals are simultaneously received from the on-chip trace modules 400 and 405 on the paths 430 and 432, a permission signal to the trace module 400 is issued on the path 452 in preference to the trace module 405. The
[0066]
Multiplexer 520 is provided within funnel logic 460 for receiving a plurality of trace signals received on paths 440, 442 and 444 from three trace modules. When request handler 550 issues a grant signal, it simultaneously issues an identification signal on path 525 and sends it to multiplexer 520, which routes the trace signal issued by the trace module to which the grant signal was given. 535. Thus, by way of example, if a permission signal is issued to memory bus trace module 410, multiplexer 520 is configured to issue a signal received via input path 444 on path 535.
[0067]
In addition, since a single trace stream is output to trace buffer 12 via path 470, identification of which trace module corresponds to generating a particular portion of the trace stream is within the trace stream. It is important for use in later analysis by a trace tool operating on the computer 16 (see FIG. 1). Therefore, in this embodiment, the trace signal output from the multiplexer 520 is received and inserted into a trace identifier indicating which component (or trace module) corresponds to a specific part of the trace stream. And wrapping protocol logic 530 is provided. In this embodiment, this identifier is determined from the identification signal issued via path 525 by wrapping protocol logic 530. The trace stream obtained in this way is output to the trace buffer 12 via the path 470.
[0068]
FIG. 5 shows an overview of the operation of funnel logic 460, and some actual implementations require many registers in the control path, in which case some input to multiplexer 520 is required. The need to provide a buffer can be recognized by those skilled in the art.
[0069]
FIG. 7 is a diagram schematically showing logic provided in the request handler 500 in order to issue an appropriate permission signal and identifier signal. As described above, in this embodiment, the operation of the memory bus is considered to be the most important thing to be traced, so the configuration request signal (ie, logic logic) sent from the memory bus trace module 410 onto path 434. A signal having a value of 1 level) is output as a permission signal on the path 450. In such a situation, AND gates 700 and 710 ensure that the other two grant signals 452 and 454 are at a logic zero level regardless of the request signal received via paths 430 and 432. It is. Further, since the ID signal is “00”, the generation source of the corresponding trace signal is specified as the memory bus trace module 410.
[0070]
If the request signal on path 434 is not set (i.e., has a logic zero level), AND gates 700 and 710 will send the set request signal from on-chip trace module 1 400 It is guaranteed that the priority is higher than the setting request signal from the module 2 405. Further, from FIG. 7, if the permission signal is issued on the path 452, the ID signal is “01”, so that the corresponding trace signal is generated from the on-chip trace module 1 400. Identified. Similarly, when the permission signal is issued on the path 454, the ID signal is “10”, and therefore the generation source of the corresponding trace signal is specified as the on-chip trace module 2405.
[0071]
According to one embodiment, each trace module is configured to issue a request signal and can output the trace signal to funnel logic 460 only when a corresponding grant signal is received. However, in the present embodiment, each trace module is configured to issue a request signal and to stop outputting the trace signal if issuance of the permission signal is stopped. In an integrated circuit such as that shown in FIG. 4, there may be one or more past trace module designs that are not designed to respond to a grant signal. Such a trace module based on a past design is hereinafter referred to as an unstoppable device.
[0072]
In FIG. 6, one stoppable device 600 and two non-stoppable devices 610 and 620 are schematically shown as being connected to funnel logic 460. Corresponding buffers 630 and 640 are placed between each non-stoppable device and funnel logic 460 and are referred to below as stoppable buffers.
[0073]
As previously described with reference to FIG. 5, when a stoppable device attempts to issue trace data, it first issues a request signal on path 604 and the corresponding grant signal. Is also received on the path 604 from the funnel logic 460, the device further issues trace data on the path 602. In this example, it is assumed that the trace data has a 32-bit bandwidth.
[0074]
However, in contrast, each non-stoppable device 610 and 620 issues a data trace entry as it is generated, which is routed via paths 612 and 622 to the corresponding stoppable buffers 630 and 640. Sent to. At the same time, trace valid signals are issued on paths 614 and 624, which can be considered similar to request signals. For convenience of illustration, in FIG. 6, the unstoppable device 610 issues trace data with a bandwidth of 8 bits, whereas the unstoppable device 620 issues trace data with a bandwidth of 16 bits. Yes.
[0075]
Each of the stoppable buffers 630 and 640 is configured to wait until it has 32 bits of trace data to issue, and further issues a request signal to funnel logic 460 via paths 634 and 644, respectively. Is configured to do. When each buffer receives the permission signal, it outputs corresponding trace data via paths 632 and 643, respectively.
[0076]
Stoppable buffers 630 and 640 are ideally relatively small in capacity, so that non-stoppable devices 610 and 630 and 640 and 640 do not require a long wait before receiving a grant signal. 620 is preferably assigned a relatively high priority from the priority information stored in the memory 510 of the funnel logic 460. In the example shown in FIG. 6, assuming that the non-stoppable device is assigned a higher priority than the stoppable device 600, each buffer 630 and 640 has 64 It only needs to have a bit capacity.
[0077]
Within a single cycle time, since only a single device needs an output trace, the total bandwidth of the unstoppable device preferably does not exceed the bandwidth of the output stream from the funnel logic. In the example shown in FIG. 6, the total bandwidth of the non-stoppable device is 24 bits, whereas the output bandwidth is 32 bits.
[0078]
As described above with reference to FIG. 5, by issuing an appropriate grant signal by funnel logic 460, a single stream of trace data is output, in this example a trace having a bandwidth of 32 bits. It is guaranteed that the stream will be output. As described above, this trace stream goes through wrapping logic 530 where a device identifier is added and then the modified trace stream is output to the trace buffer 12. In the example shown in FIG. 6, since there are three different devices, two bits of information are necessary to uniquely identify the device in the device ID. Accordingly, the 32-bit trace stream is modified to generate a 34-bit wide trace stream when the device ID is added by the wrapping logic 530.
[0079]
In FIG. 6, the wrapping logic 530 is outlined as being external to the funnel logic 460 in order to clearly show how much the bandwidth of the trace stream changes as a result of incorporating the device ID. The wrapping logic may be provided outside the funnel logic or inside the funnel logic, as desired, and it is well known in the art that this result does not affect processing operations. It can be recognized by the person.
[0080]
As described above for the embodiments of the present invention, an improved method for generating trace signals within a data processing apparatus has been described. In particular, by using a suppression signal inside the on-chip trace module, when a suppression signal is issued, low priority trace data can be suppressed and the amount of trace data entering the FIFO can be reduced. It is possible to more reliably guarantee that the FIFO of the suppression signal on-chip trace module does not overflow. Further, when a plurality of on-chip trace modules are provided, a plurality of trace signals issued by these trace modules are aggregated into a single trace stream and output to the trace buffer by the funnel logic described above. Therefore, a plurality of trace modules can be used without causing an unnecessary increase in the cost of providing the corresponding pins or trace buffers.
[0081]
While specific embodiments of the invention have been described above, it will be appreciated that the invention is not so limited and that many modifications and additions are possible within the scope of the invention. For example, it is possible to obtain a combination of the features of the dependent claims together with the features of the independent claims without departing from the scope of the present invention.
[Brief description of the drawings]
FIG. 1 is a diagram showing an outline of a data processing system provided with an on-chip trace mechanism.
FIG. 2 is a block diagram illustrating in more detail the on-chip trace module of FIG. 1 in one embodiment of the present invention.
FIG. 3 is a flow diagram illustrating a method for determining which trace signal the trace generation block of FIG. 2 issues in one embodiment of the present invention.
FIG. 4 is a diagram showing an outline of a data processing apparatus according to an embodiment of the present invention and showing a configuration in which a plurality of on-chip trace modules are provided.
5 is a block diagram illustrating in more detail components provided within the funnel logic of FIG. 4 in one embodiment of the present invention.
FIG. 6 illustrates how the funnel logic of an embodiment is configured to connect to both stable and unstable devices in one embodiment of the present invention.
FIG. 7 is a diagram illustrating logic used within the funnel logic of an embodiment to generate a grant signal and an identifier signal from a received request signal in an embodiment of the present invention.
[Explanation of symbols]
2 Data processing system
4 Integrated circuits
6 Microprocessor core
8 Cache memory
10 On-chip trace module
12 On-chip trace buffer
14 External memory
16 General-purpose computer
20, 22 bus

Claims (57)

動作がトレースされる構成要素と、
動作を示す構成要素から入力信号を受け取り、トレース受信装置に出力するための高優先度トレース信号および低優先度トレース信号を前記入力信号から生成するトレース生成ユニットと
を含むデータ処理装置であって、
トレース生成ユニットは、トレース受信装置からアサート(「assertion」)される抑制信号に応答して低優先度トレース信号の生成を抑制し、
トレース受信装置は、トレース生成ユニットにより出力されたトレース信号を格納するための、あらかじめ定められた大きさのバッファであり、
バッファ内に格納されているトレース信号の量が、あらかじめ定められた抑制レベルに達した時に、抑制信号をアサート(「assert」)するようにバッファが構成されていることを特徴とするデータ処理装置。
Components whose behavior is traced;
A data generation device comprising: a high-priority trace signal for receiving an input signal from a component that indicates operation; and a trace generation unit for generating a low-priority trace signal from the input signal for output to the trace reception device,
The trace generation unit suppresses the generation of the low priority trace signal in response to the suppression signal asserted (“assertion”) from the trace receiver,
The trace receiving device is a buffer of a predetermined size for storing the trace signal output by the trace generation unit,
A data processing device characterized in that the buffer is configured to assert ("assert") the suppression signal when the amount of the trace signal stored in the buffer reaches a predetermined suppression level .
請求項1記載のデータ処理装置において、トレース受信装置は、データ処理装置の内部に設けられることを特徴とするデータ処理装置。  2. The data processing device according to claim 1, wherein the trace receiving device is provided inside the data processing device. 請求項1記載のデータ処理装置において、トレース受信装置は、第1の帯域幅を有する第1のバスを介してトレース生成ユニットに接続する入力ポートと、第2の帯域幅を有する第2のバスに接続する出力ポートを有する中間バッファであり、第1の帯域幅が第2の帯域幅よりも広くなっていてトレース信号がトレースバッファに出力されるようにしたことを特徴とするデータ処理装置。  2. The data processing apparatus according to claim 1, wherein the trace receiving device includes an input port connected to the trace generation unit via a first bus having a first bandwidth, and a second bus having a second bandwidth. A data processing apparatus comprising: an intermediate buffer having an output port connected to the first buffer, wherein the first bandwidth is wider than the second bandwidth, and a trace signal is output to the trace buffer. 請求項1記載のデータ処理装置において、さらに、ある特定のトレース信号が高優先度トレース信号か低優先度トレース信号かを特定するためのクラス別が、トレース生成ユニットの内部に保持されていることを特徴とするデータ処理装置。  2. The data processing apparatus according to claim 1, further comprising: a class for identifying whether a specific trace signal is a high priority trace signal or a low priority trace signal, in the trace generation unit. A data processing apparatus. 請求項4記載のデータ処理装置において、クラス別はプログラム可能であることを特徴とするデータ処理装置。  5. A data processing apparatus according to claim 4, wherein each class is programmable. 請求項4記載のデータ処理装置において、クラス別はあらかじめ定められたものであることを特徴とするデータ処理装置。  5. The data processing apparatus according to claim 4, wherein the classes are predetermined. 請求項6記載のデータ処理装置において、クラス別は、命令トレース信号が高優先度トレース信号であり、データトレース信号が低優先度トレース信号であると定義することを特徴とするデータ処理装置。  7. The data processing apparatus according to claim 6, wherein, for each class, the instruction trace signal is defined as a high priority trace signal and the data trace signal is defined as a low priority trace signal. 請求項1記載のデータ処理装置において、抑制信号がアサートされた際に、抑制が発生したことを示すために抑制された低優先度トレース信号用のプレースホルダーをトレース受信装置に出力するように、トレース生成ユニットが構成されていることを特徴とするデータ処理装置。  The data processing device according to claim 1, wherein when the suppression signal is asserted, a placeholder for the low priority trace signal that is suppressed to indicate that the suppression has occurred is output to the trace receiving device. A data processing apparatus comprising a trace generation unit. 請求項8記載のデータ処理装置において、抑制された最初の低優先度トレース信号に関するプレースホルダーのみを出力するように、トレース生成ユニットが構成されていることを特徴とするデータ処理装置。  9. The data processing apparatus according to claim 8, wherein the trace generation unit is configured to output only a placeholder relating to the suppressed first low priority trace signal. 請求項1記載のデータ処理装置において、バッファ内に格納されたトレース信号の量があらかじめ定められた再起動レベルにまで減少した際に、抑制信号のアサートを止めるように、バッファが構成されていることを特徴とするデータ処理装置。  2. The data processing apparatus according to claim 1, wherein the buffer is configured to stop asserting the suppression signal when the amount of the trace signal stored in the buffer decreases to a predetermined restart level. A data processing apparatus. 請求項10記載のデータ処理装置において、あらかじめ定められた抑制レベルは、あらかじめ定められた再起動レベルよりも高いことを特徴とするデータ処理装置。  11. The data processing apparatus according to claim 10, wherein the predetermined suppression level is higher than the predetermined restart level. 請求項10記載のデータ処理装置において、抑制信号のアサートの中止に続く最初の低優先度トレース信号に関して、最初の低優先度トレース信号が後で解析できるために必要とされる何らかの同期データとともに、最初の低優先度トレース信号を出力するように、トレース生成装置が構成されていることを特徴とするデータ処理装置。  11. A data processing apparatus according to claim 10, wherein for the first low priority trace signal following the discontinuation of the suppression signal assertion, along with any synchronization data required for the first low priority trace signal to be analyzed later, A data processing apparatus, wherein the trace generation apparatus is configured to output an initial low priority trace signal. 請求項1記載のデータ処理装置であって、さらに、その動作をトレースする1つあるいはそれ以上の数の構成要素から入力信号を受信する複数のトレースモジュールを含み、各トレースモジュールは、対応するトレースバスを介して出力するトレース信号を各自の入力信号から生成するように構成されており、前記トレースモジュールの少なくとも1つは、請求項1に記載のトレース生成ユニットとそれに対応したトレース受信装置とを含んでおり、前記トレース受信装置の出力するトレース信号は、前記対応するトレースバスに出力されることを特徴とし、
さらに、各トレースバス上に出力されたトレース信号を入力トレース信号として受信するように、トレースモジュールのトレースバスに接続され、入力トレース信号から得られたトレースストリームを出力ポートに生成するように構成されたファンネル論理を含み、出力ポートはファンネル論理に接続されたトレースバス全体の最大帯域幅より狭い最大帯域幅を有し、
出力ポートの最大帯域幅を超えないように入力トレース信号が出力ポートから出力されることを保証するために複数トレースモジュールによるトレース信号の発生を制御するようにファンネル論理が構成されていることを特徴とするデータ処理装置。
The data processing apparatus of claim 1, further comprising a plurality of trace modules that receive input signals from one or more components that trace their operation, each trace module including a corresponding trace. A trace signal to be output via a bus is generated from each input signal, and at least one of the trace modules includes the trace generation unit according to claim 1 and a trace receiving device corresponding thereto. And the trace signal output from the trace receiving device is output to the corresponding trace bus ,
Furthermore, it is connected to the trace bus of the trace module so as to receive the trace signal output on each trace bus as an input trace signal, and is configured to generate a trace stream obtained from the input trace signal at the output port. The output port has a maximum bandwidth that is narrower than the maximum bandwidth of the entire trace bus connected to the funnel logic;
The funnel logic is configured to control the generation of trace signals by multiple trace modules to ensure that the input trace signal is output from the output port so that the maximum bandwidth of the output port is not exceeded A data processing device.
請求項13記載のデータ処理装置において、いずれの時点でもトレースストリームが1つのトレースモジュールからのトレース信号のみを含むように、どのトレースモジュールがファンネル論理にトレース信号を送るべきかをいずれの時点でもトレースモジュールに示すようにファンネル論理が構成されていることを特徴とするデータ処理装置。  14. A data processing apparatus according to claim 13, wherein at any point in time a trace module should send a trace signal to the funnel logic so that the trace stream contains only trace signals from one trace module. A data processing apparatus comprising funnel logic as shown in the module. 請求項13記載のデータ処理装置において、ファンネル論理は、それに対応したトレースバス上にトレース信号を出力しようとする各トレースモジュールからリクエスト信号を受信し、受信されたリクエスト信号からどのトレースモジュールがファンネル論理に対してトレース信号を送るべきかを決定するためにあらかじめ定められた基準を適用するためのリクエストハンドラを含むことを特徴とするデータ処理装置。  14. The data processing apparatus according to claim 13, wherein the funnel logic receives a request signal from each trace module that attempts to output a trace signal on a corresponding trace bus, and which trace module receives the funnel logic from the received request signal. A data processing apparatus comprising: a request handler for applying a predetermined criterion to determine whether a trace signal should be sent to 請求項15記載のデータ処理装置において、あらかじめ定められた基準の適用時に、ファンネル論理にトレース信号を送るトレースモジュールに許可信号を発生するようにリクエストハンドラが構成されていることを特徴とするデータ処理装置。  16. The data processing apparatus according to claim 15, wherein the request handler is configured to generate a permission signal to a trace module that sends a trace signal to the funnel logic when a predetermined standard is applied. apparatus. 請求項15記載のデータ処理装置において、あらかじめ定められた基準は、複数のトレースモジュール間の優先度を定義することを特徴とするデータ処理装置。  16. The data processing apparatus according to claim 15, wherein the predetermined criterion defines a priority between a plurality of trace modules. 請求項15記載のデータ処理装置において、あらかじめ定められた基準は、プログラム可能であることを特徴とするデータ処理装置。  16. A data processing apparatus according to claim 15, wherein the predetermined criteria are programmable. 請求項15記載のデータ処理装置において、ファンネル論理は、さらに、その複数入力が前記トレースバスのそれぞれに接続されたマルチプレクサを含み、リクエストハンドラは、あらかじめ定められた基準の適用時に、ファンネル論理の出力ポートに送出するためのトレースストリームとしてマルチプレクサのどの入力をマルチプレクサから出力すべきかを制御するための制御信号をマルチプレクサに発生することを特徴とするデータ処理装置。  16. The data processing apparatus according to claim 15, wherein the funnel logic further includes a multiplexer having a plurality of inputs connected to each of the trace buses, and the request handler outputs the funnel logic when a predetermined criterion is applied. A data processing apparatus for generating, in a multiplexer, a control signal for controlling which input of a multiplexer is to be output from the multiplexer as a trace stream to be sent to a port. 請求項19記載のデータ処理装置において、ファンネル論理は、さらに、どの構成要素にトレースストリームの特定の部分が対応するかを示す識別子をトレースストリームに導入するためのラッピング論理を含むことを特徴とするデータ処理装置。  20. The data processing apparatus according to claim 19, wherein the funnel logic further includes wrapping logic for introducing an identifier into the trace stream indicating which component corresponds to a particular portion of the trace stream. Data processing device. 請求項20記載のデータ処理装置において、ラッピング論理はマルチプレクサに対して発生された制御信号を受信するように構成され、識別子は制御信号から得られることを特徴とするデータ処理装置。  21. The data processing apparatus of claim 20, wherein the wrapping logic is configured to receive a control signal generated for the multiplexer and the identifier is derived from the control signal. 請求項13記載のデータ処理装置において、トレースすべき構成要素の各々について1つのトレースモジュールを設けることを特徴とするデータ処理装置。  14. The data processing apparatus according to claim 13, wherein one trace module is provided for each component to be traced. 請求項13記載のデータ処理装置において、ファンネル論理は、各トレースモジュールによるトレース信号の発生を制御可能であることを特徴とするデータ処理装置。  14. The data processing apparatus according to claim 13, wherein the funnel logic can control generation of a trace signal by each trace module. 請求項13記載のデータ処理装置において、トレースモジュールの少なくとも1つによるトレース信号の発生は、ファンネル論理によって制御不可能であり、さらに、トレースモジュールとファンネル論理との間に接続され、該トレースモジュールにより出力されたトレース信号を一時格納するために、このようなトレースモジュールの各々に対するストーリング・バッファを含むことを特徴とするデータ処理装置。  14. The data processing apparatus according to claim 13, wherein generation of a trace signal by at least one of the trace modules is not controllable by funnel logic, and is further connected between the trace module and funnel logic. A data processing apparatus comprising a stalling buffer for each such trace module for temporarily storing output trace signals. 請求項16記載のデータ処理装置において、トレースモジュールの少なくとも1つによるトレース信号の発生は、ファンネル論理によって制御不可能であり、さらに、トレースモジュールとファンネル論理との間に接続され、該トレースモジュールにより出力されたトレース信号を一時格納するために、このようなトレースモジュールの各々に対するストーリング・バッファを含み、ストーリング・バッファは、関連するトレースモジュールのためリクエスト信号を発生し、およびリクエストハンドラによって発生された任意の許可信号に応答して、一時格納されたトレース信号をファンネル論理に出力させるように構成されたことを特徴とするデータ処理装置。  17. The data processing apparatus according to claim 16, wherein generation of a trace signal by at least one of the trace modules is not controllable by funnel logic, and is further connected between the trace module and funnel logic, A temporary buffer is included for each such trace module to temporarily store the output trace signal, which generates a request signal for the associated trace module and is generated by the request handler A data processing apparatus configured to output the temporarily stored trace signal to the funnel logic in response to the given permission signal. 請求項25記載のデータ処理装置において、ストーリング・バッファ内に格納されているトレース信号の量が、あらかじめ定められたレベルに達した時に、リクエスト信号を発生するようにストーリング・バッファが構成されていることを特徴とするデータ処理装置。  26. The data processing apparatus according to claim 25, wherein the stalling buffer is configured to generate a request signal when the amount of the trace signal stored in the stalling buffer reaches a predetermined level. A data processing apparatus characterized by comprising: 請求項13記載のデータ処理装置において、出力ポートはデータ処理装置のトレースバッファに接続されていることを特徴とするデータ処理装置。  14. The data processing apparatus according to claim 13, wherein the output port is connected to a trace buffer of the data processing apparatus. 請求項13記載のデータ処理装置において、出力ポートは、トレースストリームがデータ処理装置から出力されるための複数のピンを含むことを特徴とするデータ処理装置。  14. The data processing apparatus according to claim 13, wherein the output port includes a plurality of pins for outputting a trace stream from the data processing apparatus. その動作をトレースする構成要素を有するデータ処理装置の中でトレース信号を発生する方法であって、
(i)動作を示す構成要素からの入力信号を受信するステップと、
(ii)トレース受信装置に出力するための高優先度トレース信号および低優先度トレース信号を前記入力信号から生成するステップと、
(iii)前記ステップ(ii)の間に、トレース受信装置からの抑制信号のアサートに応答して、低優先度トレース信号を抑制するステップと
を含むステップをトレース生成ユニットが実行し、
トレース受信装置は、前記ステップ(ii)で生成されたトレース信号を格納するための、あらかじめ定められた大きさのバッファであり、
さらに、バッファ内に格納されているトレース信号の量が、あらかじめ定められた抑制レベルに達した時に、バッファに対して抑制信号をアサートさせるステップを含むことを特徴とする方法。
A method for generating a trace signal in a data processing apparatus having components for tracing its operation, comprising:
(I) receiving an input signal from a component indicating operation;
(Ii) generating a high priority trace signal and a low priority trace signal for output to the trace receiver from the input signal;
(Iii) during the step (ii), the trace generation unit performs a step comprising: suppressing a low priority trace signal in response to assertion of the suppression signal from the trace receiving device;
The trace receiving device is a buffer having a predetermined size for storing the trace signal generated in the step (ii),
The method further includes the step of causing the buffer to assert a suppression signal when the amount of trace signal stored in the buffer reaches a predetermined suppression level.
請求項29記載の方法において、トレース受信装置は、データ処理装置の内部に設けられることを特徴とする方法。  30. The method of claim 29, wherein the trace receiving device is provided within the data processing device. 請求項29記載の方法において、トレース受信装置は、第1の帯域幅を有する第1のバスを介してトレース生成ユニットに接続する入力ポートと、第2の帯域幅を有する第2のバスに接続する出力ポートを有する中間バッファであり、第1の帯域幅は第2の帯域幅よりも広くなっていてトレース信号がトレースバッファに出力されるようにしたことを特徴とする方法。  30. The method of claim 29, wherein the trace receiver is connected to an input port connected to the trace generation unit via a first bus having a first bandwidth and to a second bus having a second bandwidth. An intermediate buffer having an output port, wherein the first bandwidth is wider than the second bandwidth and the trace signal is output to the trace buffer. 請求項29記載の方法において、さらに、ある特定のトレース信号が高優先度トレース信号か低優先度トレース信号かを特定するためのクラス別を、トレース生成ユニットの内部に保持するステップを含むことを特徴とする方法。  30. The method of claim 29, further comprising the step of maintaining within the trace generation unit a class for identifying whether a particular trace signal is a high priority trace signal or a low priority trace signal. Feature method. 請求項32記載の方法において、クラス別はプログラム可能であることを特徴とする方法。  33. The method of claim 32, wherein the classes are programmable. 請求項32記載の方法において、クラス別はあらかじめ定められたものであることを特徴とする方法。  33. The method according to claim 32, wherein the classification is predetermined. 請求項34記載の方法において、クラス別は、命令トレース信号が高優先度トレース信号であり、データトレース信号が低優先度トレース信号であると定義することを特徴とする方法。  35. The method of claim 34, wherein by class, the instruction trace signal is defined as a high priority trace signal and the data trace signal is defined as a low priority trace signal. 請求項29記載の方法において、前記ステップ(ii)の間は、抑制信号がアサートされた際に、抑制が発生したことを示すために抑制された低優先度トレース信号用のプレースホルダーをトレース受信装置に出力するように、トレース生成ユニットが構成されていることを特徴とする方法。  30. The method of claim 29, wherein during step (ii), when a suppression signal is asserted, a trace receive placeholder for a suppressed low priority trace signal to indicate that suppression has occurred. A method wherein a trace generation unit is configured to output to a device. 請求項36記載の方法において、抑制された最初の低優先度トレース信号に関するプレースホルダーのみを出力するように、トレース生成ユニットが構成されていることを特徴とする方法。  37. The method of claim 36, wherein the trace generation unit is configured to output only placeholders for the first suppressed low priority trace signal. 請求項29記載の方法は、さらに、バッファ内に格納されたトレース信号の量があらかじめ定められた再起動レベルにまで減少した際に、バッファに対して抑制信号のアサートを止めさせるステップを含むことを特徴とする方法。  30. The method of claim 29, further comprising causing the buffer to de-assert the suppression signal when the amount of trace signal stored in the buffer has decreased to a predetermined restart level. A method characterized by. 請求項38記載の方法において、あらかじめ定められた抑制レベルは、あらかじめ定められた再起動レベルよりも高いことを特徴とする方法。  40. The method of claim 38, wherein the predetermined suppression level is higher than the predetermined restart level. 請求項38記載の方法において、抑制信号のアサートの中止に続く最初の低優先度トレース信号に関して、最初の低優先度トレース信号が後で解析できるために必要とされる何らかの同期データとともに、最初の低優先度トレース信号を出力するように、トレース生成装置が構成されていることを特徴とする方法。  39. The method of claim 38, with respect to the first low priority trace signal following discontinuation of the suppression signal assertion, along with any synchronization data required for the initial low priority trace signal to be analyzed later. A method wherein the trace generator is configured to output a low priority trace signal. 請求項29記載の方法において、データ処理装置は、さらに、その動作をトレースする1つあるいはそれ以上の数の構成要素からの入力信号を受信するための複数のトレースモジュールを含み、各トレースモジュールは、対応するトレースバスを介して出力するトレース信号を各自の入力信号から生成するように構成され、前記トレースモジュールの少なくとも1つは、請求項29に記載の前記トレース生成ユニットとそれに対応したトレース受信装置とを含んでおり、前記トレース受信装置の出力するトレース信号は、前記対応するトレースバスに出力されており、
該方法は、
(a)ファンネル論理において、各トレースバスへ出力されるトレース信号を入力トレース信号として受信するステップと、
(b)ファンネル論理の出力ポートに、入力トレース信号から得られたトレースストリームを生成するステップであって、該出力ポートは、ファンネル論理に接続されたトレースバス全体の最大帯域幅より狭い最大帯域幅を有することを特徴とするステップと、
(c)トレースモジュールからのトレース信号の発生を制御して、出力ポートの最大帯域幅を超えないように、入力トレース信号が出力ポートから出力されることを保証するステップと、
を含むことを特徴とする方法。
30. The method of claim 29, wherein the data processing apparatus further includes a plurality of trace modules for receiving input signals from one or more components that trace its operation, each trace module comprising: 30. The trace generation unit according to claim 29 and the trace reception unit corresponding thereto, wherein the trace generation unit is configured to generate a trace signal output via a corresponding trace bus from a respective input signal. A trace signal output from the trace receiving device is output to the corresponding trace bus,
The method
(A) In funnel logic, receiving a trace signal output to each trace bus as an input trace signal;
(B) generating a trace stream obtained from an input trace signal at an output port of the funnel logic, the output port being a maximum bandwidth narrower than a maximum bandwidth of the entire trace bus connected to the funnel logic; Comprising the steps of:
(C) controlling the generation of the trace signal from the trace module to ensure that the input trace signal is output from the output port so as not to exceed the maximum bandwidth of the output port;
A method comprising the steps of:
請求項41記載の方法において、いずれの時点でもどのトレースモジュールがファンネル論理にトレース信号を送るべきかをトレースモジュールに示すことにより、トレースストリームがいずれの時点でも1つのトレースモジュールからのトレース信号のみを含むようにファンネル論理が構成されていることを特徴とする方法。  42. The method of claim 41, wherein the trace stream shows only trace signals from one trace module at any time by indicating to the trace module which trace module should send the trace signal to funnel logic at any time. A method characterized in that the funnel logic is configured to include. 請求項41記載の方法において、前記ステップ(c)は、
対応したトレースバス上に出力トレース信号を出力しようとする各トレースモジュールから、リクエスト信号を受信するステップと、
受信されたリクエスト信号からどのトレースモジュールがファンネル論理に対してトレース信号を送るべきかを決定するステップと
を含むことを特徴とする方法。
42. The method of claim 41, wherein step (c) comprises:
Receiving a request signal from each trace module attempting to output an output trace signal on a corresponding trace bus;
Determining from the received request signal which trace module should send the trace signal to the funnel logic.
請求項43記載の方法は、さらに、あらかじめ定められた基準の適用時に、ファンネル論理にトレース信号を送るトレースモジュールに許可信号を発生するステップを含むことを特徴とする方法。  44. The method of claim 43, further comprising generating a grant signal to a trace module that sends a trace signal to funnel logic upon application of a predetermined criterion. 請求項43記載の方法において、あらかじめ定められた基準は、複数のトレースモジュール間の優先度を定義することを特徴とする方法。  44. The method of claim 43, wherein the predetermined criteria defines a priority among the plurality of trace modules. 請求項43記載の方法において、あらかじめ定められた基準は、プログラム可能であることを特徴とする方法。  44. The method of claim 43, wherein the predetermined criteria is programmable. 請求項43記載の方法において、ファンネル論理は、その複数入力が前記トレースバスのそれぞれに接続されたマルチプレクサを含み、該方法は、さらに、あらかじめ定められた基準の適用時に、ファンネル論理の出力ポートに送出するためのトレースストリームとしてマルチプレクサのどの入力をマルチプレクサから出力すべきかを制御するための制御信号をマルチプレクサに発生するステップを含むことを特徴とする方法。  44. The method of claim 43, wherein the funnel logic includes a multiplexer having a plurality of inputs connected to each of the trace buses, the method further comprising: providing a funnel logic output port upon application of a predetermined criterion. Generating a control signal to the multiplexer for controlling which input of the multiplexer is to be output from the multiplexer as a trace stream for transmission. 請求項47記載の方法は、さらに、どの構成要素にトレースストリームの特定の部分が対応するかを示す識別子をトレースストリームに導入するステップを含むことを特徴とする方法。  48. The method of claim 47, further comprising introducing an identifier into the trace stream indicating which component corresponds to a particular portion of the trace stream. 請求項48記載の方法において、識別子は、マルチプレクサに発生された制御信号から求めることを特徴とする方法。  49. The method of claim 48, wherein the identifier is determined from a control signal generated by the multiplexer. 請求項41記載の方法において、トレースすべき構成要素の各々について1つのトレースモジュールを設けることを特徴とする方法。  42. The method of claim 41, wherein one trace module is provided for each component to be traced. 請求項41記載の方法において、ファンネル論理は、各トレースモジュールによるトレース信号の発生を制御可能であることを特徴とする方法。  42. The method of claim 41, wherein funnel logic is capable of controlling the generation of trace signals by each trace module. 請求項41記載の方法において、トレースモジュールの少なくとも1つによるトレース信号の発生は、ファンネル論理によって制御不可能であり、さらに、トレースモジュールとファンネル論理との間に接続され、該トレースモジュールにより出力されたトレース信号を一時格納するために、このようなトレースモジュールの各々に対するストーリング・バッファを含むことを特徴とする方法。  42. The method of claim 41, wherein the generation of a trace signal by at least one of the trace modules is not controllable by funnel logic and is further connected between and output by the trace module and funnel logic. A method comprising a stalling buffer for each such trace module for temporarily storing trace signals. 請求項44記載の方法において、トレースモジュールの少なくとも1つによるトレース信号の発生は、ファンネル論理によって制御不可能であり、さらに、トレースモジュールとファンネル論理との間に接続され、該トレースモジュールにより出力されたトレース信号を一時格納するために、このようなトレースモジュールの各々に対するストーリング・バッファを含み、ストーリング・バッファは、対応するトレースモジュールのためリクエスト信号を発生し、およびリクエストハンドラによって発生された任意の許可信号に応答して、一時格納されたトレース信号をファンネル論理に出力させるように構成されたことを特徴とする方法。  45. The method of claim 44, wherein generation of a trace signal by at least one of the trace modules is not controllable by funnel logic, and is further connected between and output by the trace module and funnel logic. A temporary buffer for each such trace module to temporarily store the trace signal generated by the request handler and generated by the request handler for the corresponding trace module. A method configured to cause a funnel logic to output a temporarily stored trace signal in response to an arbitrary enable signal. 請求項53記載の方法において、ストーリング・バッファ内に格納されているトレース信号の量が、あらかじめ定められたレベルに達した時に、リクエスト信号を発生するようにストーリング・バッファが構成されていることを特徴とする方法。  54. The method of claim 53, wherein the stalling buffer is configured to generate a request signal when the amount of trace signal stored in the stalling buffer reaches a predetermined level. A method characterized by that. 請求項41記載の方法において、出力ポートはデータ処理装置のトレースバッファに接続されていることを特徴とする方法。  42. The method of claim 41, wherein the output port is connected to a trace buffer of the data processing device. 請求項41記載の方法において、出力ポートは、トレースストリームがデータ処理装置から出力されるための複数のピンを含むことを特徴とする方法。  42. The method of claim 41, wherein the output port includes a plurality of pins for the trace stream to be output from the data processing device. その動作をトレースする構成要素を有するデータ処理装置の中でトレース信号を発生するコンピュータプログラムであって、
(i)動作を示す構成要素からの入力信号を受信するステップと、
(ii)トレース受信装置に出力するための高優先度トレース信号および低優先度トレース信号を前記入力信号から生成するステップと、該トレース受信装置は、トレース生成ユニットにより出力されたトレース信号を格納するための、あらかじめ定められた大きさのバッファであり、
(iii)前記ステップ(ii)の間に、トレース受信装置からの抑制信号のアサートに応答して、低優先度トレース信号を抑制するステップと、該バッファ内に格納されているトレース信号の量が、あらかじめ定められた抑制レベルに達した時に、該抑制信号をアサートするように該バッファが構成されている、
を含むステップをトレース生成ユニットに実行させることを特徴とするコンピュータプログラム。
A computer program for generating a trace signal in a data processing apparatus having components for tracing its operation,
(I) receiving an input signal from a component indicating operation;
(Ii) generating a high-priority trace signal and a low-priority trace signal to be output to the trace reception device from the input signal, and the trace reception device stores the trace signal output by the trace generation unit. A buffer of a predetermined size for
(Iii) suppressing the low-priority trace signal in response to assertion of the suppression signal from the trace receiver during the step (ii), and the amount of the trace signal stored in the buffer Is configured to assert the suppression signal when a predetermined suppression level is reached,
A computer program for causing to perform the steps in the trace generation unit including.
JP2003076703A 2002-06-07 2003-03-20 Data processing apparatus, trace signal generation method, and trace signal generation program Expired - Lifetime JP4175927B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0213149A GB2389432B (en) 2002-06-07 2002-06-07 Instruction tracing in data processing systems
US10/206,829 US7003699B2 (en) 2002-06-07 2002-07-29 Generation of trace signals within a data processing apparatus

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2007329546A Division JP2008097646A (en) 2002-06-07 2007-12-21 Data processor and trace signal generation method

Publications (2)

Publication Number Publication Date
JP2004013897A JP2004013897A (en) 2004-01-15
JP4175927B2 true JP4175927B2 (en) 2008-11-05

Family

ID=30117084

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2003076703A Expired - Lifetime JP4175927B2 (en) 2002-06-07 2003-03-20 Data processing apparatus, trace signal generation method, and trace signal generation program
JP2007329546A Pending JP2008097646A (en) 2002-06-07 2007-12-21 Data processor and trace signal generation method

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2007329546A Pending JP2008097646A (en) 2002-06-07 2007-12-21 Data processor and trace signal generation method

Country Status (2)

Country Link
JP (2) JP4175927B2 (en)
GB (2) GB2389931B (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7702964B2 (en) * 2004-05-11 2010-04-20 Qualcomm Incorporated Compression of data traces for an integrated circuit with multiple memories
WO2009031254A1 (en) * 2007-09-03 2009-03-12 Panasonic Corporation Semiconductor device, and development supporting device
US8799753B2 (en) 2008-02-04 2014-08-05 Nec Corporation Trace/failure observation system, trace/failure observation method, and trace/failure observation program
JP2010123050A (en) * 2008-11-21 2010-06-03 Renesas Technology Corp Semiconductor device
JP2011013867A (en) * 2009-06-30 2011-01-20 Panasonic Corp Data processor and performance evaluation analysis system
GB2477936B (en) * 2010-02-17 2016-02-10 Advanced Risc Mach Ltd Trace data priority selection
GB2487355B (en) * 2011-01-13 2020-03-25 Advanced Risc Mach Ltd Processing apparatus, trace unit and diagnostic apparatus
US9069896B2 (en) * 2012-08-29 2015-06-30 Freescale Semiconductor, Inc. Data processor device for handling a watchpoint and method thereof

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0390955A (en) * 1989-08-31 1991-04-16 Nippondenso Co Ltd Development support device for computer corresponding to plural cpus
US5678028A (en) * 1994-10-25 1997-10-14 Mitsubishi Electric Information Technology Center America, Inc. Hardware-software debugger using simulation speed enhancing techniques including skipping unnecessary bus cycles, avoiding instruction fetch simulation, eliminating the need for explicit clock pulse generation and caching results of instruction decoding
US5764885A (en) * 1994-12-19 1998-06-09 Digital Equipment Corporation Apparatus and method for tracing data flows in high-speed computer systems
US5802272A (en) * 1994-12-19 1998-09-01 Digital Equipment Corporation Method and apparatus for tracing unpredictable execution flows in a trace buffer of a high-speed computer system
JPH08314764A (en) * 1995-05-17 1996-11-29 Fujitsu Ltd Bus tracer
US5544311A (en) * 1995-09-11 1996-08-06 Rockwell International Corporation On-chip debug port
US5724505A (en) * 1996-05-15 1998-03-03 Lucent Technologies Inc. Apparatus and method for real-time program monitoring via a serial interface
GB9626367D0 (en) * 1996-12-19 1997-02-05 Sgs Thomson Microelectronics Providing an instruction trace
US6167536A (en) * 1997-04-08 2000-12-26 Advanced Micro Devices, Inc. Trace cache for a microprocessor-based device
US6148381A (en) * 1997-04-08 2000-11-14 Advanced Micro Devices, Inc. Single-port trace buffer architecture with overflow reduction
EP1184790B1 (en) * 1997-04-08 2009-11-25 Advanced Micro Devices, Inc. Trace cache for a microprocessor-based device
JPH11306040A (en) * 1998-04-21 1999-11-05 Toshiba Corp Emulator tracing device
JP3147862B2 (en) * 1998-07-08 2001-03-19 日本電気株式会社 Trace collection method for multiple online control programs
US6918065B1 (en) * 1999-10-01 2005-07-12 Hitachi, Ltd. Method for compressing and decompressing trace information
US6615370B1 (en) * 1999-10-01 2003-09-02 Hitachi, Ltd. Circuit for storing trace information
US7100152B1 (en) * 2000-01-31 2006-08-29 Freescale Semiconductor, Inc. Software analysis system having an apparatus for selectively collecting analysis data from a target system executing software instrumented with tag statements and method for use thereof
US7448025B2 (en) * 2000-12-29 2008-11-04 Intel Corporation Qualification of event detection by thread ID and thread privilege level
US6802031B2 (en) * 2001-05-24 2004-10-05 International Business Machines Corporation Method and apparatus for increasing the effectiveness of system debug and analysis

Also Published As

Publication number Publication date
GB2389931B (en) 2005-12-14
GB2391351A (en) 2004-02-04
GB0229009D0 (en) 2003-01-15
JP2004013897A (en) 2004-01-15
JP2008097646A (en) 2008-04-24
GB2391351B (en) 2005-10-05
GB2389931A (en) 2003-12-24
GB0300799D0 (en) 2003-02-12

Similar Documents

Publication Publication Date Title
US7003699B2 (en) Generation of trace signals within a data processing apparatus
JP2008097646A (en) Data processor and trace signal generation method
US9164908B2 (en) Managing out-of-order memory command execution from multiple queues while maintaining data coherency
US8601221B2 (en) Speculation-aware memory controller arbiter
US6889344B2 (en) System and method for exposing hidden events on system buses
US7200776B2 (en) System and method for generating trace data in a computing system
US5862148A (en) Microcontroller with improved debug capability for internal memory
US8041856B2 (en) Skip based control logic for first in first out buffer
US10810146B2 (en) Regulation for atomic data access requests
US8880847B2 (en) Multistream prefetch buffer
GB2503882A (en) Preserving configuration of debug units in a power domain
TW201342213A (en) Identifying and prioritizing critical instructions within processor circuitry
JP5637145B2 (en) Bus monitor circuit and bus monitor method
US9372773B2 (en) User-level hardware branch records
JP2006507586A (en) Apparatus and method for analyzing embedded system
US7685351B2 (en) External device access apparatus
US8464005B2 (en) Accessing common registers in a multi-core processor
US6298394B1 (en) System and method for capturing information on an interconnect in an integrated circuit
US20170060760A1 (en) Expedited servicing of store operations in a data processing system
US8037254B2 (en) Memory controller and method for coupling a network and a memory
US7975183B2 (en) Dynamic debugging of platform transactions via context aware transactional debug marking
WO2008030645A2 (en) Trace buffer with a processor
US7260745B1 (en) Detection of information on an interconnect
US6349371B1 (en) Circuit for storing information
US8019952B2 (en) Storage device for storing data while compressing same value input data

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061003

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20061228

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070403

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070828

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071221

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080404

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080704

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080819

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

Free format text: PAYMENT UNTIL: 20110829

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4175927

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110829

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120829

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20130829

Year of fee payment: 5

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

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

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