JP2008097646A - Data processor and trace signal generation method - Google Patents

Data processor and trace signal generation method Download PDF

Info

Publication number
JP2008097646A
JP2008097646A JP2007329546A JP2007329546A JP2008097646A JP 2008097646 A JP2008097646 A JP 2008097646A JP 2007329546 A JP2007329546 A JP 2007329546A JP 2007329546 A JP2007329546 A JP 2007329546A JP 2008097646 A JP2008097646 A JP 2008097646A
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.)
Pending
Application number
JP2007329546A
Other languages
Japanese (ja)
Inventor
Andrew Brookfield Swaine
ブルックフィールド スウェイン アンドリュー
David James Williamson
ジェイムズ ウィリアムソン デイヴィッド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARM Ltd
Original Assignee
ARM Ltd
Advanced Risc Machines Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from GB0213149A external-priority patent/GB2389432B/en
Application filed by ARM Ltd, Advanced Risc Machines Ltd filed Critical ARM Ltd
Publication of JP2008097646A publication Critical patent/JP2008097646A/en
Pending 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)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a data processor and a method for generating a trace signal. <P>SOLUTION: The data processor includes a component for trying to trace the operations of the data processor and a trace generation unit which receives an input signal from the component showing the operation and generates high priority and low priority trace signals as an output to a trace receiver from the input signal. The trace generation unit suppresses the generation of the low priority trace signal to prevent the trace receiver from overflowing in response to the issuing of a suppression signal from the trace receiver. In addition, when a plurality of tracing modules are provided in the data processor, the plurality of tracing modules generate a trace signal in combination with a single tracing stream with bandwidth narrower than maximum bandwidth, obtained by integrating individual tracing streams generated by the plurality of tracing modules by funnel logic in the embodiment of the present invention. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

(発明の背景)
本発明は、その挙動を追跡する1つあるいはそれ以上の数の構成要素を有するデータ処理装置内でのトレース信号の生成に関するものである。
(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.

データ処理システムの動きを追跡し、それにより、システム中で段階ごとに進む動きを表すデータを含むトレースストリームを生成することは、システムを開発する上で、極めて有用なツールとなる。しかし、処理命令は、プロセッサコアに複雑に組み込まれる傾向にあるため、外部からアクセス可能な端子を介して、プロセッサコアの状態を追跡することは極めて困難となっている。従って、トレースデータを収集し解析するためのチップ外のトレース機構だけでなく、より多くのトレース機構がチップ内に設けられるようになっている。このようなチップ内のトレース機構の例としては、英国・ケンブリッジのARM社が提供する、様々なARMプロセッサに対応した、組み込みトレース・マクロセル(ETM)がある。   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.

このようなトレース機構は、データ処理装置でその動きをトレースしようとするものを表すデータのトレースストリームをリアルタイムで生成する。その後、このトレースストリームは、データ処理装置によって実行される処理命令の列のデバッグを可能にするために用いられる。   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.

特定のレジスタ、アドレスあるいはデータ値に対してアクセスがなされたことに起因してトレースを開始したり停止したりする、トレース操作の制御に供されるトリガポイントを組み込んだトレース機構が提供されていることは、よく知られるところである。このような機構は、システムの特定の部分や、ある種類の動きを診断する際に、非常に役立つものとなる。   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.

しかし、データ処理システムは、その複雑度を増す一方であるため、トレースされるべき極めて大量な情報が潜在的に存在することは明白である。ETMによって生成されるトレースデータのストリームは、通常、後の処理のための出力に先立って一時的に格納されるが、そのため、トレースデータによってそのバッファにオーバフローを引き起こす可能性があり、結果的にトレースデータが欠損する恐れがある。例えば、典型的な実装例では、ETMで生成された全てのトレースデータは、内部の先入れ先出し(FIFO)バッファに直ちに書き込まれ、その後、比較的狭い帯域幅のトレースポートを介してトレースバッファに転送される。データ処理装置の広範囲にわたる動きをトレースしている際には、トレースデータが爆発的に発生することによってFIFOがオーバフローし、トレースデータの欠損につながる可能性がある。   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.

この問題を解決しようとする既知の方法の1つとして、FIFOの占有状態が所定のレベルに達した時に、動作が追跡される構成要素への信号を出力するよう、ETMを構成するというものがあり、オーバフローが起きる前に、FIFOの内容を排除できるようにするために、この信号によって当該構成要素を停止させる。しかし、FIFOのオーバフローを回避するためには、外部から(すなわち、追跡しようとする構成要素によって)ETMに対して探索動作を起こす必要があるため、実際にこの信号を用いることを実装することは困難であることが分かる。このような信号を生成するETMと、例えばプロセッサコアのようなトレースする対象となる構成要素によって生成される当該信号との間には、固有な遅れ時間があるため、この遅れ時間の間に、当該構成要素の他の動作を継続して追跡しようとすれば、いずれにせよFIFOにオーバフローを引き起こしてしまうということが分かる。   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.

以上より、トレースデータの損失の可能性を減らすため、より改良された方法を提供することが望まれている。   In view of the foregoing, it would be desirable to provide a more improved method to reduce the possibility of trace data loss.

(発明の概要)
第1の観点から言えば、本発明は、動作が追跡される構成要素と、その動作を示す要素からの入力信号を受け取り、前記入力信号から高優先度および低優先度トレース信号を生成しトレース受信装置に出力するためのトレース生成ユニットと、トレース受信装置からの抑制信号の発行に応じて動作し、低優先度トレース信号の生成を抑制するトレース生成ユニットとを含むデータ処理装置を提供するものである。
(Summary of Invention)
In a first aspect, the present invention receives a component whose operation is tracked and an input signal from the component indicating the operation, generates a high priority and a low priority trace signal from the input signal, and traces the component. Provided is a data processing device including a trace generation unit for outputting to a reception device and a trace generation unit that operates in response to the issuance of a suppression signal from the trace reception device and suppresses the generation of a low priority trace signal It is.

本発明によれば、トレース生成ユニットにより発生するトレース信号は、高優先度トレース信号あるいは低優先度トレース信号のいずれかになるものとして分類される。トレース生成ユニットにより発生するトレース信号は、トレース受信装置への出力となり、トレース生成ユニットは、トレース受信装置からの抑制信号を受けて、低優先度トレース信号の発生を抑制する。本発明は、他の信号よりも重要となるある種のトレース信号が通常存在するという認識に基づいてなされたものである。例えば、命令トレースを維持するために出力する必要のある、例えば、分岐アドレスに関するトレース信号のようなある種のトレース信号が存在するが、その一方で、データトレース信号のように、同期を失って損失してもよいような他のトレース信号も存在する。また、本発明の発明者たちは、多くの場合、後者の種類のトレース信号に比べて、前者の種類のトレース信号は、より狭い帯域幅を持っていることに着目した。   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.

以上のことを念頭におき、本発明のデータ処理装置は、トレース受信装置が必要と判断した場合に、低優先度トレース信号の抑制を起こすように構成されており、これによって、トレース受信装置がオーバフローして、トレースデータの任意の量が損失するといった従来技術の上記問題を解決するものとなる。これに対し、本発明によれば、トレース受信装置が適切と判断した場合には、トレース生成ユニットに対して抑制信号を送り、高優先度トレース信号のみが出力されることを保証し、以って、トレース受信装置がオーバフローを起こす可能性を極力抑えるものとなる。   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.

この抑制は、トレース生成ユニットとトレース受信装置との間で直接起きるため、動作が追跡される構成要素に信号を返送する際の待ち時間から生じる従来技術での上記問題が良好に解決され、これにより、本発明は、トレース受信装置のオーバフローを防ぐためのより信頼性の高い方法を提供するものとなり、同時に、トレース信号が損失するのは、低優先度トレース信号に対してのみであると考慮すればよいことになる。   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.

トレース受信装置は、トレース生成ユニットの場所あるいは、トレース生成ユニットから離して設置することができる。一実施例では、データ処理創意の内部にトレース受信装置を設け、好ましくは、トレース生成ユニットと同一チップ上に実装することにより、トレース受信装置からトレース生成ユニットへの抑制信号の伝播を高速化するものとなり、以って、低優先度トレース信号を抑制する必要が生じた場合には、トレース生成ユニットが高速で応答できるようになっている。このため、抑制信号の発行によって、トレース受信装置のオーバフローを防ぐために、低優先度トレース信号を即座に抑制することができ、信頼性をさらに向上するものとなる。   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, a trace receiving device is provided within the data processing ingenuity, and preferably mounted on the same chip as the trace generating unit to speed up the propagation of the suppression signal from the trace receiving device to the trace generating unit. Therefore, when it becomes necessary to suppress the low priority trace signal, the trace generation unit can respond at high speed. For this reason, in order to prevent the trace receiving apparatus from overflowing by issuing the suppression signal, the low priority trace signal can be immediately suppressed, and the reliability is further improved.

トレース受信装置は、様々な形態をとることができる。しかし、本実施例では、トレース受信装置は、あらかじめ定められた容量のバッファ(例えば、FIFOバッファ)である。   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).

好適な実施例では、バッファに格納されたトレース信号の量が、あらかじめ定められた抑制レベルに達した時に、抑制信号を発行するように、バッファが構成されている。従って、これらの実施例では、バッファの所定の割合にまでトレース信号が達した場合に、抑制信号が発行されるものとなる。   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.

データ処理装置により生成されるトレース信号を読み出し解析する装置は、トレース受信装置に直接接続されるものであってよい。しかし、実施例では、トレース受信装置は、第1の帯域幅を有する第1のバスを介してトレース生成ユニットに接続された入力ポートと、トレース信号がトレースバッファに出力されるようにした第2の帯域幅を有する第2のバスに接続された出力ポートとをもつ中間バッファであり、第1の帯域幅は、第2の帯域幅よりも広いものとなっている。これらの実施例では、データ処理装置により生成されるトレース信号を読み出し解析する装置は、通常、トレースバッファからトレース信号を読み出すように構成されている。   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.

これらの実施例から分かるように、中間バッファの出力帯域幅はその入力帯域幅よりも狭いため、中間バッファが溢れてしまう恐れがある。しかし、本発明の抑制信号を用いることにより、低優先度トレース信号が余計に生成されないようにトレース生成ユニットが抑制信号に対して俊敏に応答できるため、このような事態が発生する可能性を抑えることができる。   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.

上述したように、本発明では、トレース信号を高優先度トレース信号あるいは低優先度トレース信号のいずれかに分類することが必要となる。好適な実施例では、この分類は、トレース信号が高優先度トレース信号あるいは低優先度トレース信号のいずれであるかを特定するトレース生成ユニットの内部で保持されるものである。例えば、命令トレースに関するトレース信号は高優先度であり、一方、データトレースに関するトレース信号は低優先度であることを示すように、この分類はあらかじめ定義しておけるものであることは、当該技術分野に精通した者にとって認識されうるものである。さらに、この分類はプログラム可能である。   As described above, in the present invention, it is necessary to classify a trace signal into either a high priority trace signal or a low priority trace signal. 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.

好適な実施例では、抑制信号が発行されている際には、抑制が行われていることを示すために、抑制された低優先度トレース信号の位置情報をトレース受信装置に出力するように、トレース生成ユニットは構成されている。これにより、後で用いられるツールによって、トレースデータを解析可能とし、低優先度トレース信号の抑制がいつ行われているかを決定することができる。   In a preferred embodiment, when a suppression signal is issued, the location information of the suppressed low priority trace signal is output to the trace receiver to indicate that suppression is being performed. The trace generation unit is configured. 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.

これらの位置情報は、トレースデータの各アイテムが抑制されるごとに発行されるが、好適な実施例では、最初に抑制された低優先度トレース信号に対する位置情報のみを出力するように、トレース生成ユニットが構成されている。従って、この位置情報は、抑制が最初に発生したことを示すものとなり、トレース解析ツールがデータの抑制が起きたことを決定するには十分なものであり、位置情報の発行自身がトレース受信装置のオーバフローを引き起こすという可能性は回避される。   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.

好適な実施例では、トレース受信装置は、バッファ内に貯えられたトレース信号の量が、あらかじめ定められた再起動レベルまで下がったときに、抑制信号の発行を解除するように構成されている。あらかじめ定められた再起動レベルは、あらかじめ定められた抑制レベルと同じになるように決定してもよいが、このようにあらかじめ定められた再起動レベルを決定すると、ある状況では、抑制された状態と抑制されない状態との間である量の振動を引き起こす傾向がある。従って、好適な実施例では、あらかじめ定められた抑制レベルは、あらかじめ定められた再起動レベルよりも高く設定し、全トレースを再起動した際に、抑制信号を再発行する必要がないようにトレース受信装置の中に貯えられたトレース信号の量を増やせる容量を確保できるようにしている。   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.

好適な実施例では、抑制信号の発行解除につながる最初の低優先度トレース信号については、その最初の低優先度トレース信号を後で解析できるように、任意の必要な同期データとともにその最初の低優先度トレース信号を出力するように、トレース生成ユニットが構成されている。これにより、抑制しようとするトレースストリームのある部分に対応して欠落する任意の同期情報をトレース信号のストリームの中に取り込むことになる。   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.

データ処理システムは、例えば、組み込み型システムでの集積レベルが上がるなどの理由により、複雑さを増しているため、より多くの機能性が各々のデータ処理装置(例えば、チップ)に含まれるようになり、したがって、より多くのトレースブロックやモジュールをデータ処理装置の中に設ける必要が生じている。このような将来のシステムでは、その動作を追跡すべき複数の構成要素が含まれるため、このような単一のトレース生成ユニットを含む単一のトレースモジュールでは、もはや充分ではない状況にある。例えば、データ処理装置が複数のプロセッサコアを含んでいて、各々をトレースする必要があり、さらに、データ処理装置の中の様々なバスについてもトレースする必要が生じる。しかし、各トレースモジュールに対して、外部ピンやトレースバッファを設けるためのコストは極めて高くつくものとなることがわかる。しかし、データ処理装置の異なる部分の間で信号や情報の交換があり、これらをデバッグするためには、これらの部分の関係についても同時にトレースする必要があるため、複数のトレースモジュールの間で、ピンやトレースバッファを単純に共有するだけでは適切とは言えない。従って、解決すべき他の問題としては、データ処理装置の複数のトレースモジュールからの信号を効果的にトレースできるようにすることが課題となる。   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.

従って、本発明の実施例では、データ処理装置は、さらに、トレースすべき1つあるいはそれ以上の数の構成要素から入力信号を受け取るための複数のトレースモジュールを含み、ここで、各トレースモジュールは、その入力信号からトレース信号を生成して対応するトレースバス上に出力し、少なくとも1つの前記トレースモジュールは、前記トレース生成ユニットとそれに対応したトレース受信装置を含み、対応するトレースバスは、トレース受信装置の出力に接続されていることを特徴とし、該データ処理装置は、さらにトレースモジュールのトレースバスに接続され、各トレースバスに出力されたトレース信号を入力トレース信号として受信し、入力トレース信号から得られたトレースストリームを出力ポートに生成するように構成されたファンネル論理を含み、ここで、出力ポートは、ファンネル論理に接続されたトレースバスの集約最大帯域幅より狭い最大の帯域幅を有し、ファンネル論理は、出力ポートの最大帯域幅を超えないように入力トレース信号が出力ポートから出力されることを保証するように、トレースモジュールによるトレース信号の発行を制御するように構成されていることを特徴としている。   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 Where the output port has a maximum bandwidth that is narrower than the aggregate maximum bandwidth of the trace bus connected to the funnel logic, and the funnel logic does not exceed the maximum bandwidth of the output port In this manner, the trace module is configured to control the issuance of the trace signal so as to ensure that the input trace signal is output from the output port.

従って、これらの実施例では、様々なトレースモジュールのトレースバスに接続され、様々な入力トレース信号から得られたトレースストリームを出力ポートに生成するように構成されたファンネル論理が設けられており、このトレースストリームは、例えば、信号をチップに送ることができるピンに送られたり、トレースバッファに送られるようになっている。また、ファンネル論理は、出力ポートの最大帯域幅を超えないように入力トレース信号が出力ポートから出力されることを保証するように、様々なトレースモジュールによるトレース信号の発行を制御するように構成されている。従って、これらの実施例のファンネル論理は、効果的に、複数のトレース源を入力として、単一のトレースストリームを出力として生成することができ、ここでは、出力ストリームは、想定される入力ストリームの総数を越えないようになっている。   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.

本発明の第1の特徴によれば、このファンネル論理は、任意のトレースモジュールが低優先度トレース信号の生成を抑えることができるかどうかによらず、データ処理装置の内部に設けられている。したがって、本発明の第2の特徴によれば、本発明は、トレースすべき1つあるいはそれ以上の数の構成要素から入力信号を受け取るための複数のトレースモジュールを含み、ここで、各トレースモジュールは、その入力信号からトレース信号を生成して対応するトレースバス上に出力することを特徴とし、また、各トレースバスに出力されたトレース信号を入力トレース信号として受信するようにトレースモジュールのトレースバスに接続され、入力トレース信号から得られたトレースストリームを出力ポートに生成するように構成されたファンネル論理を含み、ここで、出力ポートは、ファンネル論理に接続されたトレースバスの集約最大帯域幅より狭い最大の帯域幅を有し、ファンネル論理は、出力ポートの最大帯域幅を超えないように入力トレース信号が出力ポートから出力されることを保証するように、トレースモジュールによるトレース信号の発行を制御するように構成されていることを特徴とした、データ処理装置を提供するものである。   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.

好適な実施例では、どの時点でも、どのトレースモジュールがトレース信号をファンネル論理に送るべきかをトレースモジュールに示すように構成され、どの時点においても、1つのトレースモジュールからのトレース信号のみをトレースストリームが含むようになっている。   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.

どの時点においても、どのトレースモジュールがファンネル論理にトレース信号を送るべきかを決定する動作は、様々な方法で実装することができる。しかし、好適な実施例では、ファンネル論理は、対応するトレースバス上にトレース信号を出力しようとしている各トレースモジュールからリクエスト信号を受信し、あらかじめ定められた基準を適用して受信されたリクエスト信号にもとづきどのトレースモジュールがトレース信号をファンネル論理に出力すべきかを決定するためのリクエストハンドラを含んでいる。従って、これらの実施例では、各トレースモジュールは、トレースモジュールがいつトレース信号を対応するトレースバスに出力しようとしているのかをファンネル論理に示すように構成されており、これによりファンネル論理は、受信された様々なリクエストの間を仲介することになる。   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.

ここで、リクエストハンドラは、あらかじめ定められた基準の適用時に、トレース信号をファンネル論理に送ることになるトレースモジュールに対して、許可信号を送るように構成されることが好ましい。従って、これらの実施例では、トレースモジュールは、そのトレース信号をファンネル論理に送ることができることを示す許可信号を受信するまで、そのリクエスト信号を発行し続けるものとなる。   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.

どのトレースモジュールが任意の時点でトレース信号をファンネル論理に発行するかを決定するために、ファンネル論理のリクエストハンドラによって適用されるあらかじめ定められた基準は、様々な形態をとることが可能である。しかし、好適な実施例では、あらかじめ定められた基準は、様々なトレースモジュールの優先順序を定義するものとする。   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.

あらかじめ定められた基準は、あらかじめ定められたもの、あるいはプログラム可能なもののいずれかとすることができる。例えば、あらかじめ定められた基準は、例えば、その動作をトレースするようにそれに含まれるモジュールが構成された構成要素によって、様々なトレースモジュールに割り当てられた相対的な優先度を特定するために、特定の実装に対してプログラム可能なものとしてもよい。例えば、出力すべき最も重要なトレース信号が、メモリバスの動作に関するものであると判定された場合には、最高の優先度がこのメモリバスの動作を追跡するように構成されたトレースモジュールに割り当てられる。   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.

好適な実施例では、ファンネル論理は、さらに、その出力が前記トレースバスの各々に接続されたマルチプレクサを含み、リクエストハンドラは、あらかじめ定められた基準の適用時に、制御信号をマルチプレクサに発行し、トレースストリームをファンネル論理の出力ポートに転送するためのマルチプレクサから出力するトレースストリームとして、マルチプレクサのどの入力を出力するべきかを制御するように構成されている。   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.

ファンネル論理から出力されるトレースストリームを効果的に解析するためには、トレースストリームの特定の部分が、どの構成要素に対応しているのかを知るために、ツールを用いて解析することが必要となる。好適な実施例では、ファンネル論理は、このような識別子がトレースストリームに付加されることができるために必要となる論理を含んでいる。特に、好適な実施例では、ファンネル論理は、さらに、トレースストリームの特定の部分がどの構成要素に対応しているかを示す識別子をトレースストリームに導入するためのラッピング論理を含んでいる。この識別子は、様々な方法で実装することができる。しかし、ある実施例としては、マルチプレクサに発行される制御信号を受け取るようにラッピング論理を構成するものがあり、この識別子は、制御信号から得るものとしている。他の実施例としては、ラッピング論理に識別子を発行するように、各トレースモジュールを構成するものがある。   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.

構成要素を対応するトレースモジュールに割り当てる方法には、様々なものがあることが分かる。例えば、ある実装形態では、1つ以上の構成要素をトレースするように、単一のトレースモジュールを実際に構成することが可能である。しかし、好適な実施例では、トレースすべき各構成要素に対して、1つのトレースモジュールを設けることがある。   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.

ある実施例では、リクエスト信号をファンネル論理に発行するように各トレースモジュールを構成し、これにより、各々の状況において、ファンネル論理は、各トレースモジュールによるトレース信号の発行を制御できるようになる。   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.

しかし、他の実施例では、例えば、トレースモジュールが過去のトレースモジュールの設計に依るものであり、そのトレースモジュールが適切と判定した時にそのトレースストリームを単に出力するように構成されている場合もあるため、このようなリクエスト信号を発行させたり、許可信号に応答するようには、1つあるいはそれ以上の数のトレースモジュールを構成しないというものもある。このような状況では、トレースモジュールの中の少なくとも1つによってトレース信号が発行されることは、ファンネル論理によって制御することができず、データ処理装置は、さらに、そのようなトレースモジュールとファンネル論理との間に接続され、そのトレースモジュールから出力されるトレース信号を一時的に格納するための、トレースモジュールの各々に対するストーリング・バッファを含むものとなる。   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.

このような実施例では、ストーリング・バッファは、対応するトレースモジュールのためにリクエスト信号を発行し、リクエストハンドラにより発行される任意の許可信号に対して応答するように構成して、一時的に格納されたトレース信号がファンネル論理に出力されるようにすることが好ましい。従って、実際には、ストーリング・バッファは、このような過去の設計による各モジュールに対する“フロントエンド”となり、ファンネル論理と適切な方法でトレースモジュールを接続することができる。   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.

好適な実施例では、ストーリング・バッファに格納されたトレース信号の量が、あらかじめ定められたレベルに到達した時に、リクエスト信号を発行するように、ストーリング・バッファが構成されている。ファンネル論理によって適用されるあらかじめ定められた基準を適切に選択することにより、特定の時点で、どのトレースモジュールがトレース信号をファンネル論理に提供するかを決定し、ファンネル論理と接続する構成要素の数と帯域幅を制限することにより、対応するトレースモジュールから出力されたトレースデータによってストーリング・バッファがオーバフローする前に、ストーリング・バッファが許可信号を受け取ることを保証することができる。   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.

上述したように、ファンネル論理の出力ポートは、データ処理装置のトレースバッファに接続したものであってよい。それに代わり、出力ポートは、トレースストリームが、データ処理装置から外部に出力されるようにした複数のピンを含むものであってもよい。   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.

本発明の第3の観点から言えば、本発明は、その動作をトレースする構成要素を有するデータ処理装置の中でトレース信号を発生する方法を提供するものであり、該方法は、(i)動作を示す構成要素からの入力信号を受信するステップと、(ii)トレース受信装置に出力するための高優先度および低優先度のトレース信号を前記入力信号から生成するステップと、(iii)前記ステップ(ii)の間に、低優先度のトレース信号を抑制するために、トレース受信装置からの抑制信号の発行に応答するステップとを含むステップをトレース生成ユニットを用いて実行することを特徴としている。   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.

本発明の第4の観点から言えば、本発明は、その動作をトレースする1つあるいはそれ以上の数の構成要素からの入力信号を受信するための複数のトレースモジュールを有するデータ処理装置の中でトレース信号を発生する方法を提供するものであり、各トレースモジュールは、対応するトレースバスを介して出力されるトレース信号をそのトレースモジュールの各入力信号から生成するように構成され、該方法は、(a)ファンネル論理において、各トレースバスへ出力されるトレース信号を入力トレース信号として受信するステップと、(b)ファンネル論理の出力ポートに、入力トレース信号から得られたトレースストリームを生成するステップであって、該出力ポートは、ファンネル論理に接続されたトレースバスの集約された最大帯域幅より狭い最大帯域幅を有することを特徴とするステップと、(c)出力ポートの最大帯域幅を超えないように、入力トレース信号が出力ポートから出力されることを保証するために、トレースモジュールからのトレース信号の発行を制御するステップとを含むことを特徴としている。   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.

本発明の第5の観点から言えば、本発明は、本発明の第3あるいは第4の観点の方法にもとづき装置を制御するためのコンピュータプログラムを実行するコンピュータプログラムプロダクトを提供するものである。   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.

(好適な実施例の詳細な説明)
添付の図面に示されたような好適な実施例を参照しながら単なる例として、本発明を説明する。
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.

図1は、オンチップのトレース機構を提供するデータ処理システム2の概略を示す図である。集積回路4は、マイクロプロセッサコア6、キャッシュメモリ8、オンチップトレースモジュール10およびオンチップトレースバッファ12を含んでいる。集積回路4は、キャッシュメモリ8でキャッシュミスが発生した時にアクセスされる外部メモリ14に接続されている。汎用コンピュータ16は、オンチップトレースモジュール10とオンチップトレースバッファ12に接続され、汎用コンピュータ16で実行されるソフトを用いて、これらの構成要素からのトレースデータのストリームを取り出して解析する。   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.

動作中は、プロセッサコア6は、外部メモリ14のための実際のメモリ空間よりも多いデータ処理命令とデータにアクセスする必要がある場合が多い。例えば、外部メモリ14は、1MBの容量であるのに対し、プロセッサコア16は、通常、32ビットアドレスを指定することが可能となっており、これにより、4GBの命令とデータを指定することができる。従って、プロセッサコア6によって要求される全ての命令とデータは、例えば、ハードディスクなどの外部記憶装置18に格納され、プロセッサコア6が、特定の動作状態で動こうとする場合には、この動作の状態に対して適切な命令とデータが外部メモリ14にロードされる。   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.

図2は、図1のオンチップトレースモジュールの内部に設けられた構成要素をより詳細に示すブロック図である。オンチップトレースモジュール10は、プロセッサコア6で実行される処理を表すデータを、経路105で受信するように構成されている。図1によれば、このデータ(例えば、コア6に与えられた命令および、あるいはデータ、およびコアによって生成されたデータ)は、バス20を介してコア6から直接受信されるほかの制御型データ(例えば、インデックス化された命令アドレスを示すデータ、なんらかの理由である命令がその条件コードを実行失敗したことを示すデータなど)とともに、キャッシュ8およびオンチップトレースモジュール10に接続したバス20から受信する。ある実施例では、両方の種類のデータが、(2つのバス20および22を用いるのではなく)トレースモジュール10とコア6間の単一のバスを介して、トレードモジュール10に送られることは、当該技術分野に精通した者にとって認識されうるものである。   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.

同期論理100は、入力信号を、オンチップトレースモジュール内で用いるためにより適した、信号の内部モードに変換するように構成されている。これらの内部モードは、トリガ110とトレース生成ブロック120に送られるが、トリガ110とトレース生成ブロック120は、必ずしも同一の信号を受信するために必要となるものではないことが分かる。基本的には、トリガ110は、例えば、アドレス、データ値、レジスタアクセスなどのトリガ可能なイベントに関連したデータを受信するために必要なものである。トリガ生成ブロック120は、トリガ110によって発行されたイネーブル信号に応じてトレースされる必要のある任意のデータを受信するために必要なものである。オンチップトレースモジュール10には、さらに、汎用コンピュータ16から経路125を介して構成情報を受信するように構成されたレジスタバンク180が組み込まれており、その構成情報の内容は、必要に応じて、オンチップトレースモジュール10の構成要素によって読み取られるようになっている。   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.

トリガ110が、トレースストリームの生成を引き起こすイベントを検出する時はいつも、トリガは、経路135を介して、イネーブル信号をトレース生成論理120に送り、トレースをオン、オフする。これにより、トレース生成論理は、経路145および155を介して必要なトレースデータをFIFO130に出力することにより応答する。様々なイネーブル信号が経路135を介して送られ、例えば、命令だけのトレース、命令とデータのトレースなど、トレースすべき信号の種類を特定する。   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.

本発明の好適実施例によれば、トレース生成ユニットにより生成されるトレース信号は、高優先度トレース信号あるいは低優先度トレース信号のいずれかであるとして分類される。この分類は、トレース生成ブロック120の中に保持されることが好ましく、あらかじめ定義されたものであるか、ユーザによってプログラム可能となるものであってよい。図2に示した実施例では、高優先度トレース信号は、例えば、分岐アドレスに関するトレース信号などの命令トレースに関する信号を示すものであり、一方、低優先度トレース信号は、データトレースに関する信号を示すものであり、この低優先度トレース信号は、同期を失うことなく損失されうるものである。トレース生成論理120によってFIFO130から受信される任意の信号がない場合には、経路135を介してトリガ110から受信したイネーブル信号に応じてFIFO130に適切なトレースデータを出力するように、トレース生成論理が構成されている。この構成により、例えば、経路145を介して発行される命令トレース信号と、経路155を介して発行されるデータトレース信号の両方が発行されることになる。図2には2つの独立した経路が示されているが、命令トレース信号とデータトレース信号の両者は、通常、トレース生成論理120とFIFO130の間の接続を共有するものであることは、当該技術分野に精通した者にとって認識されうるものである。   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.

命令をトレースすることに加え、データをトレースする際には、経路155を介したデータトレース信号は、トレース生成信号120からFIFO130へのトレースポートの帯域幅のほとんどを占有することが分かる。さらに、トレース信号は、狭帯域の出力トレースポートを介して、FIFO130からトレースバッファ12へ経路150を通して排出される。通常、経路150を介してトレースバッファに発行される任意のトレース信号は、経路140上で出力トレースが有効であるか否かを示すトレース有効信号を伴うものである。トレース有効信号は、通常、対応するトレースモジュールがそのクロックサイクルの間に発行すべきトレースデータを持たない場合に無効と設定されるものである。   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.

FIFO130からの出力帯域幅は、通常、その入力帯域幅よりも狭いため、例えば、トレース生成ブロック120によってトレースデータが突発的に発行されることが持続すると、FIFO130はオーバフローする可能性がある。例えば、入力トレースポートは、トレースバッファへの出力トレースポートよりも4倍から5倍の帯域幅となっている。   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.

本発明に先立ち、この問題を解決する方法としては、FIFOが満杯になったことを示す信号をオンチップトレースモジュール10からコア6に送り、コア6を一時的に停止させ、FIFO内のデータの量を削減できるようにするものがあった。しかし、固有の遅れ時間や他の問題のために、FIFOが満杯になったことを示す信号の発生時刻とプロセッサコアの停止時刻の間に、コア6が停止する前にそれが動作中であることを示すトレース信号が発行されてしまい、いずれにせよFIFO130がオーバフローを引き起こしやすくなるため、この方法は信頼性に欠けるものであることが判明している。   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.

本発明の一実施例によれば、FIFO130により発行され経路160を介して直接トレース生成ブロック120に送られる抑制信号(以下、DSup信号と称す)を設けることにより、この問題が解決できる。本実施例では、FIFOの内容が、あらかじめ定められた抑制レベルに達すると、FIFO130からトレース生成ブロック120に向けてDSup信号を発行するように、FIFO130が構成されており、これにより、トレース生成ブロックは、DSup信号が発行されている間は、経路155を介した任意のデータトレース信号の発行は停止されることになる。これは、データトレース信号が失われることを意味しているが、これらの信号は低優先度トレース信号であると考えられ、同期情報を失うことなく損失してもよいものである。さらに、データトレースは、通常、高優先度の命令トレースに比べより広い帯域幅を用いるものであるため、データトレースを抑制することは、FIFO130が満杯にあることを防ぐ上で十分であることが分かっている。   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.

FIFO130内のデータトレースの量が、あらかじめ定められた再起動レベルに実質的に落ち着くと、FIFO130は、DSup信号の発行を止めるように構成されており、これによりトレース生成ブロック120は、経路155上にデータトレース信号を再び発行する。   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.

あらかじめ定められた抑制レベルとあらかじめ定められた再起動レベルは、実装状態に従って選択される。しかし、例えば、60バイトのFIFOでは、あらかじめ定められた抑制レベルは、45バイト(すなわち、FIFOの全容量の75%を占有する状態)となるように設定されるのに対し、あらかじめ定められた再起動レベルは、通常、45バイトを僅かに下回る値に設定され、抑制信号の発行が止められた後は、直後に抑制信号の再発行を必要とせずに、FIFO内に格納されたトレース信号の量を増加することができるような余裕をもたせることを保証する。   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

DSup信号の発行によってデータトレース信号を単純に破棄する動作だけでは、全ての状況において、FIFO130のオーバフローを防ぐことはできないため、FIFO130は、それが満杯になった際には、経路170上にオーバフロー信号を発行できるようになっており、これにより、オーバフロー信号の発生が止むまでに、トレース生成ブロック120によって任意のトレース信号の発行を停止することができるようになっている。このような手順によって、高優先度トレース信号と低優先度トレース信号の両方が失われることになるが、DSup信号を発生するためのあらかじめ定められた抑制レベルを適切に選ぶことにより、オーバフロー信号を発行する必要のある場面というのは極めて稀なことになる。   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.

他の実施例では、DSup信号をトレース生成ブロック120に発行することに加え、FIFO130が、DSup信号が発行された後に、命令トレース信号のみを格納する内部ステップをとるものがある(これにより、DSup信号の発行と、トレース生成ブロックによる当該DSup信号への応答との間の遅れ時間を除去することができる)。   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).

図3は、本実施例のトレース生成ブロック120によって実行される、経路145および155を経由してFIFO130に出力されるトレース信号を決定するための処理ステップを示すフロー図である。ステップ300では、生成すべきなんらかのトレースデータがあるかどうかを判定する。生成すべき新しいトレースデータがあると判定された場合には、ステップ310に進み、そこで、このトレースデータは、命令トレースデータであるか否かを判定する。もしそうならば、ステップ380に進み、そこで、データ同期情報を含まないトレースデータを経路145上に発行する。しかし、時として、命令トレースに関して、他の命令同期情報が必要になる場合もあることは、当該技術分野に精通した者にとって認識されうるものである。   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 this 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.

ステップ310において、生成すべきトレースデータが命令データでないと判定された場合には、トレースデータはデータトレースとなり、処理ステップ320に進み、そこでDSup信号が発行されたかどうかを判定する。もしDSup信号が発行されたならば、ステップ330に進み、そこで、生成すべきデータトレースの項目が、DSup信号の発行に続く第1の項目であるかどうかを判定する。もしそうでなければ、ステップ340に進み、データトレースの項目は出力されない。しかし、もしデータトレースの項目が、DSup信号の発行に続く第1の項目である場合には、ステップ350に進み、全データトレース信号の代わりに、位置情報信号を経路155を介してFIFOに出力する。この位置情報信号は、一意の信号であり(例えば、データ抑制の開始位置を特定する1バイト信号)、後にトレースデータを解析する任意のツールによって識別可能なものであり、そのツールに対し、データ抑制が行われたことを示すために用いられる。位置情報は、抑制されたデータトレースの各項目について発行されるものであるが、本実施例では、抑制しようとするデータトレースの第1項目に関してのみ位置情報を発行し、位置情報の発行によってFIFOにオーバフローを引き起こす危険性を防ぐようにしている。さらに、通常、トレース解析ツールにとってより重要なことは、どれだけの数のデータトレース項目が抑制されたかを知ることよりも、抑制が起こったこと自体を知ることである。   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 the DSup signal is issued, the process proceeds to step 330 where it is determined whether the data trace item to be generated is the first item following the issue of the DSup signal. If not, the process proceeds to step 340 and no data trace item is output. However, if the data trace item is the first item following the issuance of the DSup signal, the process proceeds to step 350, and the position information signal is output to the FIFO via the path 155 instead of the entire data trace signal. To do. 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.

ステップ320で、DSup信号が発行されなかったと判定された場合には、次に、ステップ360に進み、DSup信号の発行が停止されていることから、トレースしようとするデータトレース項目が第1のデータトレース項目であるか否かを判定する。もしそうならば、ステップ370に進み、データトレース信号を後で解析できるようにするのに必要となる任意のデータ同期情報とともに、データトレース信号を発行する。例えば、出力データトレース中のアドレスの圧縮が行われた場合には、データ同期情報には、圧縮されなかったアドレスの出力が含むものとなる。   If it is determined in step 320 that the DSup signal has not been issued, then the process proceeds to step 360 where the DStrace signal issuance is stopped, so that the data trace item to be traced is the first data. Determine if it is a 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.

しかし、ステップ360で、DSup信号の発行が停止されていることから、発行するべきデータトレース項目が第1データトレース項目でないと判定されたと仮定すると、次にステップ380に進み、そこで、対応するデータ同期情報を伴わずに、そのデータトレース項目が出力される。   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.

従って、本発明の位置実施例によれば、ここで用いられる方法によって、コア36を停止させることなくFIFOのオーバフローを動的に回避することができる。したがって、ユーザが、このようなオーバフローを回避するためにトレースデータを絞り込もうとする時間をかける代わりに、本方法は、FIFOがオーバフローしそうになるレベルに達した時に、低優先度のトレースデータだけが失われるようにして、できるだけ多くのトレースデータをトレースすることを保証するものである。   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.

図4は、複数のオンチップトレースモジュール400、405および410を設けたデータ処理システムのブロック図である。本例では、集積回路4は、2つのプロセッサコア402および407を有し、これらは、対応するキャッシュ404および409に接続されている。キャッシュ404および409は、両者とも、メモリバス420を介して、外部メモリ14に接続されている。図4には明記されてはいないが、外部メモリ14は、図1に示した外部記憶装置に接続されている。本例のシステムでは、プロセッサコア402および407とメモリバス420の両者の動作をトレースできるようにすることが望ましいと考えられる。従って、集積回路4のこれらの異なる構成要素をトレースするために、独立したオンチップトレースモジュール400、405および410が各々設けられている。   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, which 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.

しかし、各トレースモジュールに対応して外部ピンあるいは独立したトレースバッファを設けるコストは、通常、極めて高いものになる。従って、図4に示した例では、複数のトレースモジュール400、405および410が出力するトレース信号を格納するために、単一のトレースバッファ12を設ける。さらに、複数のオンチップトレースモジュールの間を仲介し、これらの複数のオンチップトレースモジュールからのトレース信号を単一のトレースストリームに変換し、経路470を介してトレースバッファ12に出力するために、ファンネル論理460を設ける。このような仲介が必要になるのは、入力トレースの経路440、442および444上の帯域幅の総量は、通常、トレースバッファ12への経路470上の帯域幅よりも広くなるからである。   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.

本実施例では、オンチップモジュール400、405および410の各々は、オンチップトレースモジュールが出力トレースデータを必要とした時に、経路430、432および434を介してファンネル論理に対してリクエスト信号を発行するように構成されている。実際には、このリクエスト信号は、図2に示したトレース有効信号によって与えられる。あらかじめ定められた基準に基づき、さらに、ファンネル論理460は、複数のリクエスト信号の間を仲介し、トレースバッファ12への出力として、どのトレースモジュールがファンネル論理に対してトレースデータを発行するべきかを決定し、それに応じて、ファンネル論理は、許可信号452、454および450を発行する。任意の好適な仲介手順を使うことができるが、例えば、通常は、メモリバスで複数のプロセッサコアにより要求されるアクセス間を仲介するために用いられるのと同様の仲介手順を用いることが可能であることを理解されるであろう。特定のトレースモジュールが、発行された許可信号を受信した時に、トレースモジュールとファンネル論理460との間の各々のトレース経路440、442および444を介して、そのトレースデータを出力する。ファンネル論理460の動作の詳細については、後に図5を引用して詳細に説明する。   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.

リクエストハンドラ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への許可信号が発行される。   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

マルチプレクサ520は、3つのトレースモジュールから経路440、442および444の上で受信される複数のトレース信号を受信するため、ファンネル論理460の内部に設けられる。リクエストハンドラ550が許可信号を発行すると、それは、同時に、識別信号を経路525上に発行しマルチプレクサ520に送り、マルチプレクサ520に対して、許可信号を与えられたトレースモジュールによって発行されるトレース信号を経路535上に発行させる。従って、一例として、もしメモリバストレースモジュール410に許可信号が発行された場合には、マルチプレクサ520は、入力経路444を介して受信される信号を経路535上に発行するように構成される。   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.

さらに、単一のトレースストリームが、経路470を介してトレースバッファ12に対して出力されるため、どのトレースモジュールがトレースストリームの特定の部分を生成するのに対応しているかの識別がトレースストリーム内に含まれていることが、コンピュータ16(図1参照)で動作するトレースツールによって後で解析する際に用いる上で重要となる。従って、本実施例では、マルチプレクサ520から出力されるトレース信号を受信し、どの構成要素(あるいはトレースモジュール)にトレースストリームの特定の部分が対応しているのかを表すトレース識別子の中に挿入するために、ラッピングプロトコル論理530が設けられる。本実施例では、この識別子は、ラッピングプロトコル論理530によって、経路525を介して発行された識別信号から求められる。このようにして得られたトレースストリームが、経路470を介してトレースバッファ12に出力される。   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.

図5はファンネル論理460の動作の概要を示したものであり、ある実際の実装では、制御経路の中に多くのレジスタが必要となり、このような場合には、マルチプレクサ520に対して、なんらかの入力バッファを設けることが必要となることは、当該技術分野に精通した者にとって認識されうるものである。   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.

図7は、適切な許可信号と識別子信号を発行するために、リクエストハンドラ500の内部に設けられる論理を概略的に示した図である。上述したように、本実施例では、メモリバスの動作は、トレースすべき最も重要なものであると考えられるため、メモリバストレースモジュール410から経路434上に送られた設定リクエスト信号(すなわち、論理値1レベルである信号)を、経路450上の許可信号として出力する。このような状況では、ANDゲート700および710は、経路430および432を介して受信されるリクエスト信号に関わりなく、他の2つの許可信号452および454は論理値0レベルであることを保証するものである。さらに、ID信号は“00”であることから、対応するトレース信号の発生元がメモリバストレースモジュール410であると特定される。   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.

もし経路434上のリクエスト信号が、設定されていない(すなわち、論理値0レベルである)場合には、ANDゲート700および710は、オンチップトレースモジュール1 400からの設定リクエスト信号は、オンチップトレースモジュール2 405からの設定リクエスト信号よりも優先度が高いことを保証する。さらに、図7からは、もし許可信号が経路452上に発行された場合には、ID信号は“01”となることから、対応するトレース信号の発生元はオンチップトレースモジュール1 400であると特定される。同様に、許可信号が経路454上に発行された場合には、ID信号は“10”となることから、対応するトレース信号の発生元はオンチップトレースモジュール2 405であると特定される。   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 to the on-chip trace. 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.

一実施例によれば、各トレースモジュールは、リクエスト信号を発行するように構成され、対応する許可信号を受信した時にのみ、トレース信号をファンネル論理460に出力できる。しかし、本実施例では、各トレースモジュールは、リクエスト信号を発行し、もし許可信号の発行が止まった場合にはトレース信号の出力を中止するように構成されている。図4に示すような集積回路では、許可信号に応答するようには設計されていない、1つあるいはそれ以上の数の過去のトレースモジュールの設計が存在する場合もありうる。このような過去の設計に基づくトレースモジュールは、以下では、停止不能型装置と称する。   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.

図6には、1つの停止可能型装置600および2つの停止不能型装置610および620が、ファンネル論理460に接続されているものとして、その概略が示されている。各停止不能型装置とファンネル論理460の間には、対応するバッファ630および640が置かれており、以下では、停止可能バッファと称する。   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.

図5を引用して先に述べたように、停止可能型装置がトレースデータを発行しようとする場合には、その装置は、最初に、経路604上にリクエスト信号を発行し、対応する許可信号が経路604上にファンネル論理460から受信された時には、さらに、その装置は、トレースデータを経路602上に発行する。本例では、トレースデータは32ビットの帯域幅を有するものと仮定している。   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.

しかし、これとは対照的に、各々の停止不能型装置610および620が、生成された時にデータトレース項目を発行し、これは、経路612および622を介して、対応する停止可能バッファ630および640に送られる。同時に、トレース有効信号が経路614および624上に発行され、これらは要求信号と同様に見なされうるものとなる。図示の都合上、図6では、停止不能型装置610は、帯域幅8ビットのトレースデータを発行し、一方、停止不能型装置620は、帯域幅16ビットのトレースデータを発行するものとなっている。   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.

停止可能バッファ630および640の各々は、発行すべき32ビットのトレースデータを有するまで待機するように構成され、さらに、各々、経路634および644を介して、ファンネル論理460に対してリクエスト信号を発行するように構成されている。各バッファが許可信号を受信すると、各々、経路632および643を介して、対応するトレースデータを出力する。   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.

停止可能バッファ630および640は、理想的には、比較的小さい容量であるため、バッファ630および640が許可信号を受信する前に長時間の待ちを必要としないように、停止不能型装置610および620には、ファンネル論理460のメモリ510中に格納された優先度情報の中から比較的高い優先度を割り当てることが好ましい。図6に示した例では、停止不能型装置には、停止可能装置600よりも高い優先度を割り当てるものと仮定すれば、オーバフローしないことを保証するためには、各バッファ630および640は、64ビットの容量とする必要があるだけである。   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.

単一のサイクル時間内では、単一の装置だけが出力トレースを必要とするため、停止不能型装置の全帯域幅は、ファンネル論理からの出力ストリームの帯域幅を上回らないことが好ましい。図6に示した例では、停止不能型装置の全帯域幅は24ビットであり、これに対し出力の帯域幅は、32ビットである。   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.

図5を引用して先に述べたように、ファンネル論理460によって適切な許可信号を発行することにより、トレースデータの単一のストリームが出力され、本例では、32ビットの帯域幅をもつトレースストリームが出力されることが保証される。前記のように、このトレースストリームは、ラッピング論理530を経由し、そこで装置識別子が付加され、その後、修正されたトレースストリームは、トレースバッファ12に出力される。図6に示した例では、3つの異なる装置があるため、情報の2ビットは、装置IDの中で一意に装置を識別するために必要なものとなる。従って、32ビットのトレースストリームは、ラッピング論理530によって装置IDが付加されると、修正されて34ビット幅のトレースストリームを生成するものとなる。   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.

図6では、ラッピング論理530は、装置IDを組み込んだ結果、トレースストリームの帯域幅がどの程度変わるかを明確に示すために、ファンネル論理460の外部にあるものとしてその概略が示されている。ラッピング論理は、希望に依って、ファンネル論理の外部に設けてもよいし、ファンネル論理の内部に設けてもよく、この結果は処理操作には影響を及ぼさないことが、当該技術分野に精通した者にとって認識されうるものである。   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.

本発明の実施例について上述したように、データ処理装置の内部でトレース信号を発生させるための改良された方法について説明した。特に、オンチップのトレースモジュールの内部で抑制信号を用いることにより、抑制信号が発行された際には、低優先度トレースデータが抑制されてFIFOに入るトレースデータの量を減らすことができるため、抑制信号オンチップのトレースモジュールのFIFOがオーバフローしないことをより確実に保証することができる。さらに、複数のオンチップトレースモジュールを設けた際には、上述したファンネル論理によって、これらのトレースモジュールによって発行された複数のトレース信号が、単一のトレースストリームに集約され、トレースバッファに出力されるため、対応するピンあるいはトレースバッファを設けるコストに不必要な増加を招くことなく、複数のトレースモジュールを用いることが可能となる。   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.

以上では、本発明の特定の実施例について説明してきたが、本発明はそれに限定されるものではなく、本発明の範囲内で多くの修正と追加が可能となることは明白である。例えば、本発明の範囲を逸脱することなく、独立クレームの特徴とあわせて、従属クレームの特徴の組み合わせを得ることが可能となる。   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.

オンチップのトレース機構を設けたデータ処理システムの概略を示す図である。It is a figure which shows the outline of the data processing system which provided the on-chip trace mechanism. 本発明の一実施例において、図1のオンチップのトレースモジュールをより詳細に示すブロック図である。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. 本発明の一実施例において、図2のトレース生成ブロックが、どのトレース信号を発行するかを決定する方法を示すフロー図である。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. 本発明の一実施例において、データ処理装置の概略を示し、複数のオンチップのトレースモジュールが設けられている構成を示す図である。In one Example of this invention, it is a figure which shows the outline of a data processor, and shows the structure by which several on-chip trace module is provided. 本発明の一実施例において、図4のファンネル論理内に設けられた構成要素をより詳細に示すブロック図である。FIG. 5 is a block diagram illustrating in more detail the components provided within the funnel logic of FIG. 4 in one embodiment of the present invention. 本発明の一実施例において、安定した装置および不安定な装置の両者に接続するように、実施例のファンネル論理がどのように構成されているかを示す図である。FIG. 3 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. 4 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 データ処理システム
4 集積回路
6 マイクロプロセッサコア
8 キャッシュメモリ
10 オンチップトレースモジュール
12 オンチップトレースバッファ
14 外部メモリ
16 汎用コンピュータ
20、22 バス
2 Data processing system 4 Integrated circuit 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 (93)

動作が追跡される構成要素と、
動作を示す構成要素から入力信号を受け取り、トレース受信装置に出力するための高優先度および低優先度トレース信号を前記入力信号から生成するトレース生成ユニットと
を含むデータ処理装置であって、
トレース生成ユニットは、トレース受信装置から発行される抑制信号に応答して低優先度トレース信号の生成を抑制することを特徴とするデータ処理装置。
Components whose behavior is tracked;
A data processing apparatus comprising: a trace generation unit that receives an input signal from a component that indicates operation and generates a high priority and a low priority trace signal from the input signal for output to a trace receiving apparatus;
A trace generation unit suppresses generation of a low priority trace signal in response to a suppression signal issued from a trace receiving apparatus.
請求項1記載のデータ処理装置において、トレース受信装置は、データ処理装置の内部に設けられることを特徴とするデータ処理装置。   2. The data processing device according to claim 1, wherein the trace receiving device is provided inside the data processing device. 請求項1記載のデータ処理装置において、トレース受信装置は、トレース生成ユニットにより出力されたトレース信号を格納するための、あらかじめ定められた大きさのバッファであることを特徴とするデータ処理装置。   2. The data processing device according to claim 1, wherein the trace receiving device is a buffer having a predetermined size for storing the trace signal output by the trace generation unit. 請求項3記載のデータ処理装置において、バッファ内に格納されているトレース信号の量が、あらかじめ定められた抑制レベルに達した時に、抑制信号を発行するようにバッファが構成されていることを特徴とするデータ処理装置。   4. The data processing device according to claim 3, wherein the buffer is configured to issue a suppression signal when the amount of the trace signal stored in the buffer reaches a predetermined suppression level. A data processing device. 請求項3記載のデータ処理装置において、トレース受信装置は、第1の帯域幅を有する第1のバスを介してトレース生成ユニットに接続する入力ポートと、第2の帯域幅を有する第2のバスに接続する出力ポートを有する中間バッファであり、第1の帯域幅が第2の帯域幅よりも広くなっていてトレース信号がトレースバッファに出力されるようにしたことを特徴とするデータ処理装置。   4. The data processing device according to claim 3, 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, wherein a classification for specifying whether a specific trace signal is a high priority trace signal or a low priority trace signal is held in the trace generation unit. Data processing device. 請求項6記載のデータ処理装置において、分類はプログラム可能であることを特徴とするデータ処理装置。   7. A data processing apparatus according to claim 6, wherein the classification is programmable. 請求項6記載のデータ処理装置において、分類はあらかじめ定められたものであることを特徴とするデータ処理装置。   7. The data processing apparatus according to claim 6, wherein the classification is predetermined. 請求項8記載のデータ処理装置において、分類は、命令トレース信号が高優先度トレース信号であり、データトレース信号が低優先度トレース信号であると定義することを特徴とするデータ処理装置。   9. The data processing apparatus according to claim 8, wherein the classification defines that the instruction trace signal is a high priority trace signal and the data trace signal is a low priority trace signal. 請求項1記載のデータ処理装置において、抑制信号が発行された際に、抑制された低優先度トレース信号に対して抑制が発生したことを示す位置情報をトレース受信装置に出力するように、トレース生成ユニットが構成されていることを特徴とするデータ処理装置。   2. The data processing device according to claim 1, wherein when the suppression signal is issued, the trace information is output to the trace receiving device so as to output position information indicating that the suppression has occurred with respect to the suppressed low priority trace signal. A data processing apparatus comprising a generation unit. 請求項10記載のデータ処理装置において、抑制された第1の低優先度トレース信号に関する位置情報のみを出力するように、トレース生成ユニットが構成されていることを特徴とするデータ処理装置。   11. The data processing apparatus according to claim 10, wherein the trace generation unit is configured to output only position information related to the suppressed first low priority trace signal. 請求項4記載のデータ処理装置において、バッファ内に格納されたトレース信号の量があらかじめ定められた再起動レベルにまで減少した際に、抑制信号の発行を止めるように、バッファが構成されていることを特徴とするデータ処理装置。   5. The data processing apparatus according to claim 4, wherein the buffer is configured to stop issuing the suppression signal when the amount of the trace signal stored in the buffer decreases to a predetermined restart level. A data processing apparatus. 請求項12記載のデータ処理装置において、あらかじめ定められた抑制レベルは、あらかじめ定められた再起動レベルよりも高いことを特徴とするデータ処理装置。   13. The data processing apparatus according to claim 12, wherein the predetermined suppression level is higher than the predetermined restart level. 請求項12記載のデータ処理装置において、抑制信号の発行の中止につながる第1の低優先度トレース信号に関して、第1の低優先度トレース信号が後で解析できるために必要とされる何らかの必要同期データとともに、第1の低優先度トレース信号を出力するように、トレース生成装置が構成されていることを特徴とするデータ処理装置。   13. The data processing apparatus according to claim 12, wherein any necessary synchronization required for the first low priority trace signal to be analyzed later with respect to the first low priority trace signal leading to the suspension of the suppression signal issuance. A data processing apparatus, wherein the trace generation apparatus is configured to output a first low priority trace signal together with data. 請求項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 output via a bus is generated from each input signal, and at least one of the trace modules includes the trace generation unit and a trace receiving device corresponding to the trace generation unit. The trace bus is connected to the output of the trace receiver,
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 aggregated maximum bandwidth of the trace bus connected to the funnel logic;
The funnel logic is configured to control the issuance of the trace signal by the trace module 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. Data processing device.
請求項15記載のデータ処理装置において、任意の時点で、トレースストリームが任意の時点で1つのトレースモジュールからのトレース信号のみを含むように、どのトレースモジュールがファンネル論理にトレース信号を送るべきかをトレースモジュールに示すようにファンネル論理が構成されていることを特徴とするデータ処理装置。   16. The data processing apparatus according to claim 15, wherein at any point in time which trace module should send a trace signal to the funnel logic so that the trace stream includes only trace signals from one trace module at any point in time. A data processing apparatus comprising funnel logic as shown in the trace module. 請求項15記載のデータ処理装置において、ファンネル論理は、それに対応したトレースバス上にトレース信号を出力しようとする各トレースモジュールからリクエスト信号を受信し、受信されたリクエスト信号からどのトレースモジュールがファンネル論理に対してトレース信号を送るべきかを決定するためにあらかじめ定められた基準を適用するためのリクエストハンドラを含むことを特徴とするデータ処理装置。   16. The data processing apparatus according to claim 15, 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 請求項17記載のデータ処理装置において、あらかじめ定められた基準の適用時に、ファンネル論理にトレース信号を送るであろうトレースモジュールに許可信号を発行するようにリクエストハンドラが構成されていることを特徴とするデータ処理装置。   18. The data processing apparatus according to claim 17, wherein the request handler is configured to issue a permission signal to a trace module that will send a trace signal to the funnel logic when a predetermined criterion is applied. Data processing device. 請求項17記載のデータ処理装置において、あらかじめ定められた基準は、複数のトレースモジュール間の優先度を定義することを特徴とするデータ処理装置。   18. The data processing apparatus according to claim 17, wherein the predetermined criterion defines a priority between a plurality of trace modules. 請求項17記載のデータ処理装置において、あらかじめ定められた基準は、プログラム可能であることを特徴とするデータ処理装置。   18. A data processing apparatus according to claim 17, wherein the predetermined criteria are programmable. 請求項17記載のデータ処理装置において、ファンネル論理は、さらに、その入力が前記トレースバスのそれぞれに接続されたマルチプレクサを含み、リクエストハンドラは、あらかじめ定められた基準の適用時に、発行して、ファンネル論理の出力ポートに送出するためのトレースストリームとしてマルチプレクサのどの入力をマルチプレクサから出力すべきかを制御するために、制御信号をマルチプレクサに発行することを特徴とするデータ処理装置。   18. The data processing apparatus of claim 17, wherein the funnel logic further includes a multiplexer whose input is connected to each of the trace buses, and the request handler is issued upon application of a predetermined criterion to A data processing apparatus for issuing a control signal to a multiplexer in order to control which input of the multiplexer is to be output from the multiplexer as a trace stream for delivery to a logic output port. 請求項21記載のデータ処理装置において、ファンネル論理は、さらに、どの構成要素にトレースストリームの特定の部分が対応するかを示す識別子をトレースストリームに導入するためのラッピング論理を含むことを特徴とするデータ処理装置。   24. The data processing apparatus according to claim 21, 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. 請求項22記載のデータ処理装置において、ラッピング論理は、マルチプレクサに対して発行された制御信号を受信するように構成され、識別子は制御信号から得られることを特徴とするデータ処理装置。   23. A data processing apparatus according to claim 22, wherein the wrapping logic is configured to receive a control signal issued to the multiplexer and the identifier is derived from the control signal. 請求項15記載のデータ処理装置において、トレースすべき各構成要素について1つのトレースモジュールを設けることを特徴とするデータ処理装置。   16. The data processing apparatus according to claim 15, wherein one trace module is provided for each component to be traced. 請求項15記載のデータ処理装置において、ファンネル論理は、各トレースモジュールによるトレース信号の発行を制御可能であることを特徴とするデータ処理装置。   16. The data processing apparatus according to claim 15, wherein the funnel logic can control the issuance of a trace signal by each trace module. 請求項15記載のデータ処理装置において、トレースモジュールの少なくとも1つによるトレース信号の発行は、ファンネル論理によって制御不可能であり、さらに、トレースモジュールとファンネル論理との間に接続され、該トレースモジュールにより出力されたトレース信号を一時格納するために、このようなトレースモジュールの各々に対するストーリング・バッファを含むことを特徴とするデータ処理装置。   16. The data processing apparatus according to claim 15, wherein issuance 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. 請求項18記載のデータ処理装置において、トレースモジュールの少なくとも1つによるトレース信号の発行は、ファンネル論理によって制御不可能であり、さらに、トレースモジュールとファンネル論理との間に接続され、該トレースモジュールにより出力されたトレース信号を一時格納するために、このようなトレースモジュールの各々に対するストーリング・バッファを含み、ストーリング・バッファは、関連するトレースモジュールのためリクエスト信号を発行し、およびリクエストハンドラによって発行された任意の許可信号に応答して、一時格納されたトレース信号をファンネル論理に出力させるように構成されたことを特徴とするデータ処理装置。   19. The data processing apparatus according to claim 18, wherein issuance 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 is issued by the request handler and issued by the request handler for the associated trace module. A data processing apparatus configured to output the temporarily stored trace signal to the funnel logic in response to the given permission signal. 請求項27記載のデータ処理装置において、ストーリング・バッファ内に格納されているトレース信号の量が、あらかじめ定められたレベルに達した時に、リクエスト信号を発行するようにストーリング・バッファが構成されていることを特徴とするデータ処理装置。   28. The data processing apparatus according to claim 27, wherein the stalling buffer is configured to issue 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: 請求項15記載のデータ処理装置において、出力ポートはデータ処理装置のトレースバッファに接続されていることを特徴とするデータ処理装置。   16. The data processing apparatus according to claim 15, wherein the output port is connected to a trace buffer of the data processing apparatus. 請求項15記載のデータ処理装置において、出力ポートは、トレースストリームがデータ処理装置から出力されるための複数のピンを含むことを特徴とするデータ処理装置。   16. The data processing apparatus according to claim 15, wherein the output port includes a plurality of pins for outputting a trace stream from the data processing apparatus. その動作をトレースする1つあるいはそれ以上の数の構成要素から入力信号を受信する複数のトレースモジュールであって、各トレースモジュールは、対応するトレースバスを介して出力するトレース信号をそれぞれの入力信号から生成するように構成されていることを特徴とするトレースモジュールと、
さらに、各トレースバス上に出力されたトレース信号を入力トレース信号として受信するように、トレースモジュールのトレースバスに接続され、入力トレース信号から得られたトレースストリームを出力ポートに生成するように構成されたファンネル論理であって、出力ポートはファンネル論理に接続されたトレースバスの集約した最大帯域幅より狭い最大帯域幅を有する、ファンネル論理と
を含むデータ処理装置であって、
トレースモジュールによるトレース信号の発行を制御して、出力ポートの最大帯域幅を超えないように入力トレース信号が出力ポートから出力されることを保証するようにファンネル論理が構成されていることを特徴とするデータ処理装置。
A plurality of trace modules that receive input signals from one or more components that trace their operation, each trace module providing a respective trace signal that is output via a corresponding trace bus. A trace module, characterized in that it is configured to generate from
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. A funnel logic, wherein the output port has a maximum bandwidth that is narrower than an aggregated maximum bandwidth of the trace bus connected to the funnel logic,
The funnel logic is configured to control the issuance of the trace signal by the trace module 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. Data processing device.
請求項31記載のデータ処理装置において、任意の時点で、どのトレースモジュールがファンネル論理にトレース信号を送るべきかをトレースモジュールに示すようにファンネル論理を構成することにより、トレースストリームが任意の時点で1つのトレースモジュールからのトレース信号のみを含むことを特徴とするデータ処理装置。   32. The data processing apparatus of claim 31, wherein the trace stream is configured at any time by configuring the funnel logic to indicate to the trace module which trace module should send a trace signal to the funnel logic at any time. A data processing apparatus comprising only trace signals from one trace module. 請求項31記載のデータ処理装置において、ファンネル論理は、それに対応したトレースバス上にトレース信号を出力しようとする各トレースモジュールからリクエスト信号を受信し、受信されたリクエスト信号からどのトレースモジュールがファンネル論理に対してトレース信号を送るべきかを決定するためにあらかじめ定められた基準を適用するためのリクエストハンドラを含むことを特徴とするデータ処理装置。   32. The data processing apparatus according to claim 31, wherein the funnel logic receives a request signal from each trace module that attempts to output a trace signal on a trace bus corresponding to the funnel logic, 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 請求項33記載のデータ処理装置において、あらかじめ定められた基準の適用時に、ファンネル論理にトレース信号を送るであろうトレースモジュールに許可信号を発行するようにリクエストハンドラが構成されていることを特徴とするデータ処理装置。   34. The data processing apparatus according to claim 33, wherein the request handler is configured to issue a permission signal to a trace module that will send a trace signal to the funnel logic when a predetermined criterion is applied. Data processing device. 請求項33記載のデータ処理装置において、あらかじめ定められた基準は、複数のトレースモジュール間の優先度を定義することを特徴とするデータ処理装置。   34. A data processing apparatus according to claim 33, wherein the predetermined criterion defines a priority among a plurality of trace modules. 請求項33記載のデータ処理装置において、あらかじめ定められた基準は、プログラム可能であることを特徴とするデータ処理装置。   34. A data processing apparatus according to claim 33, wherein the predetermined criteria are programmable. 請求項33記載のデータ処理装置において、ファンネル論理は、さらに、その入力が前記トレースバスの各々に接続されたマルチプレクサを含み、リクエストハンドラは、あらかじめ定められた基準の適用時に、ファンネル論理の出力ポートに送出するためのトレースストリームとしてマルチプレクサのどの入力をマルチプレクサから出力すべきかを制御するために制御信号をマルチプレクサに発行することを特徴とするデータ処理装置。   34. The data processing apparatus of claim 33, wherein the funnel logic further includes a multiplexer whose input is connected to each of the trace buses, and the request handler is configured to output a funnel logic output port upon application of a predetermined criterion. A data processing apparatus for issuing a control signal to a multiplexer in order to control which input of the multiplexer is to be output from the multiplexer as a trace stream for transmission to the multiplexer. 請求項37記載のデータ処理装置において、ファンネル論理は、さらに、どの構成要素にトレースストリームの特定の部分が対応するかを示す識別子をトレースストリームに導入するためのラッピング論理を含むことを特徴とするデータ処理装置。   38. The data processing apparatus of claim 37, wherein the funnel logic further includes wrapping logic for introducing an identifier into the trace stream that indicates which component corresponds to a particular portion of the trace stream. Data processing device. 請求項38記載のデータ処理装置において、ラッピング論理は、マルチプレクサに対して発行された制御信号を受信するように構成され、識別子は制御信号から得られることを特徴とするデータ処理装置。   40. A data processing apparatus according to claim 38, wherein the wrapping logic is configured to receive a control signal issued to the multiplexer and the identifier is derived from the control signal. 請求項31記載のデータ処理装置において、トレースすべき各構成要素について1つのトレースモジュールを設けることを特徴とするデータ処理装置。   32. A data processing apparatus according to claim 31, wherein one trace module is provided for each component to be traced. 請求項31記載のデータ処理装置において、ファンネル論理は、各トレースモジュールによるトレース信号の発行を制御可能であることを特徴とするデータ処理装置。   32. The data processing apparatus according to claim 31, wherein the funnel logic can control the issuance of a trace signal by each trace module. 請求項31記載のデータ処理装置において、トレースモジュールの少なくとも1つによるトレース信号の発行は、ファンネル論理によって制御不可能であり、さらに、トレースモジュールとファンネル論理との間に接続され、該トレースモジュールにより出力されたトレース信号を一時格納するために、このようなトレースモジュールの各々に対するストーリング・バッファを含むことを特徴とするデータ処理装置。   32. The data processing apparatus according to claim 31, wherein issuance 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. 請求項34記載のデータ処理装置において、トレースモジュールの少なくとも1つによるトレース信号の発行は、ファンネル論理によって制御不可能であり、さらに、トレースモジュールとファンネル論理との間に接続され、該トレースモジュールにより出力されたトレース信号を一時格納するために、このようなトレースモジュールの各々に対するストーリング・バッファを含み、ストーリング・バッファは、関連するトレースモジュールのためリクエスト信号を発行し、およびリクエストハンドラによって発行された任意の許可信号に応答して、一時格納されたトレース信号をファンネル論理に出力させるように構成されたことを特徴とするデータ処理装置。   35. A data processing apparatus according to claim 34, wherein issuance of a trace signal by at least one of the trace modules is uncontrollable 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 is issued by the request handler and issued by the request handler for the associated trace module. A data processing apparatus configured to output the temporarily stored trace signal to the funnel logic in response to the given permission signal. 請求項43記載のデータ処理装置において、ストーリング・バッファ内に格納されているトレース信号の量が、あらかじめ定められたレベルに達した時に、リクエスト信号を発行するようにストーリング・バッファが構成されていることを特徴とするデータ処理装置。   44. The data processing apparatus according to claim 43, wherein the stalling buffer is configured to issue 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: 請求項31記載のデータ処理装置において、出力ポートはデータ処理装置のトレースバッファに接続されていることを特徴とするデータ処理装置。   32. The data processing apparatus according to claim 31, wherein the output port is connected to a trace buffer of the data processing apparatus. 請求項31記載のデータ処理装置において、出力ポートは、トレースストリームがデータ処理装置から出力されるための複数のピンを含むことを特徴とするデータ処理装置。   32. The data processing apparatus according to claim 31, wherein the output port includes a plurality of pins for outputting a trace stream from the data processing apparatus. その動作をトレースする構成要素を有するデータ処理装置の中でトレース信号を発生する方法であって、
(i)動作を示す構成要素からの入力信号を受信するステップと、
(ii)トレース受信装置に出力するための高優先度および低優先度のトレース信号を前記入力信号から生成するステップと、
(iii)前記ステップ(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 and low-priority trace signal for output to the trace receiver from the input signal;
(Iii) performing a step including a step of suppressing a low-priority trace signal in response to the issuance of the suppression signal from the trace receiver during the step (ii) using the trace generation unit. A method characterized by.
請求項47記載の方法において、トレース受信装置は、データ処理装置の内部に設けられることを特徴とする方法。   48. The method of claim 47, wherein the trace receiving device is provided within the data processing device. 請求項47記載の方法において、トレース受信装置は、前記ステップ(ii)で生成されたトレース信号を格納するための、あらかじめ定められた大きさのバッファであることを特徴とする方法。   48. The method of claim 47, wherein the trace receiving device is a buffer of a predetermined size for storing the trace signal generated in step (ii). 請求項49記載の方法は、さらに、バッファ内に格納されているトレース信号の量が、あらかじめ定められた抑制レベルに達した時に、バッファに対して抑制信号を発行させるステップを含むことを特徴とする方法。   49. The method of claim 49, further comprising causing the buffer to issue a suppression signal when the amount of trace signal stored in the buffer reaches a predetermined suppression level. how to. 請求項49記載の方法において、トレース受信装置は、第1の帯域幅を有する第1のバスを介してトレース生成ユニットに接続する入力ポートと、第2の帯域幅を有する第2のバスに接続する出力ポートを有する中間バッファであり、第1の帯域幅は第2の帯域幅よりも広くなっていてトレース信号がトレースバッファに出力されるようにしたことを特徴とする方法。   50. The method of claim 49, 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. 請求項47記載の方法において、さらに、ある特定のトレース信号が高優先度トレース信号か低優先度トレース信号かを特定するための分類を、トレース生成ユニットの内部に保持するステップを含むことを特徴とする方法。   48. The method of claim 47, further comprising the step of maintaining a classification within the trace generation unit to identify whether a particular trace signal is a high priority trace signal or a low priority trace signal. And how to. 請求項52記載の方法において、分類はプログラム可能であることを特徴とする方法。   53. The method of claim 52, wherein the classification is programmable. 請求項52記載の方法において、分類はあらかじめ定められたものであることを特徴とする方法。   53. The method according to claim 52, wherein the classification is predetermined. 請求項54記載の方法において、分類は、命令トレース信号が高優先度トレース信号であり、データトレース信号が低優先度トレース信号であると定義することを特徴とする方法。   55. The method of claim 54, wherein the classification defines the instruction trace signal as a high priority trace signal and the data trace signal as a low priority trace signal. 請求項47記載の方法において、前記ステップ(ii)の間は、抑制信号が発行された間は、抑制された低優先度トレース信号に対して抑制が発生したことを示す位置情報をトレース受信装置に出力するように、トレース生成ユニットが構成されていることを特徴とする方法。   48. The method of claim 47, wherein during the step (ii), the trace receiving device indicates position information indicating that suppression has occurred with respect to the suppressed low priority trace signal while the suppression signal is issued. A method wherein the trace generation unit is configured to output to: 請求項56記載の方法において、抑制された第1の低優先度トレース信号に関する位置情報のみを出力するように、トレース生成ユニットが構成されていることを特徴とする方法。   57. The method of claim 56, wherein the trace generation unit is configured to output only location information regarding the suppressed first low priority trace signal. 請求項50記載の方法は、さらに、バッファ内に格納されたトレース信号の量があらかじめ定められた再起動レベルにまで減少した際に、バッファに対して抑制信号の発行を止めさせるステップを含むことを特徴とする方法。   51. The method of claim 50, further comprising causing the buffer to stop issuing suppression signals when the amount of trace signal stored in the buffer has decreased to a predetermined restart level. A method characterized by. 請求項58記載の方法において、あらかじめ定められた抑制レベルは、あらかじめ定められた再起動レベルよりも高いことを特徴とする方法。   59. The method of claim 58, wherein the predetermined suppression level is higher than the predetermined restart level. 請求項58記載の方法において、抑制信号の発行の中止につながる第1の低優先度トレース信号に関して、第1の低優先度トレース信号が後で解析できるために必要とされる何らかの必要同期データとともに、第1の低優先度トレース信号を出力するように、トレース生成装置が構成されていることを特徴とする方法。   59. The method of claim 58, with respect to a first low priority trace signal that leads to a cancellation of the suppression signal issuance, along with any necessary synchronization data required for the first low priority trace signal to be analyzed later. The trace generation device is configured to output the first low priority trace signal. 請求項47記載の方法において、データ処理装置は、その動作をトレースする1つあるいはそれ以上の数の構成要素からの入力信号を受信するための複数のトレースモジュールを含み、各トレースモジュールは、対応するトレースバスを介して出力されるトレース信号をそのトレースモジュールの各入力信号から生成するように構成され、前記トレースモジュールの少なくとも1つは、前記トレース生成ユニットとそれに対応したトレース受信装置とを含んでおり、対応するトレースバスはトレース受信装置の出力に接続されている装置であり、
該方法は、
(a)ファンネル論理において、各トレースバスへ出力されるトレース信号を入力トレース信号として受信するステップと、
(b)ファンネル論理の出力ポートに、入力トレース信号から得られたトレースストリームを生成するステップであって、該出力ポートは、ファンネル論理に接続されたトレースバスの集約された最大帯域幅より狭い最大帯域幅を有することを特徴とするステップと、
(c)トレースモジュールからのトレース信号の発行を制御して、出力ポートの最大帯域幅を超えないように、入力トレース信号が出力ポートから出力されることを保証するステップと、
を含むことを特徴とする方法。
48. The method of claim 47, wherein the data processing apparatus includes a plurality of trace modules for receiving input signals from one or more components that trace its operation, each trace module comprising a corresponding Generating a trace signal output via a trace bus from each input signal of the trace module, wherein at least one of the trace modules includes the trace generation unit and a trace receiving device corresponding thereto. And the corresponding trace bus is a device connected to the output of the trace receiver,
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 derived from the input trace signal at an output port of the funnel logic, the output port being a maximum narrower than an aggregated maximum bandwidth of a trace bus connected to the funnel logic; Having a bandwidth; and
(C) controlling the issuance 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:
請求項61記載の方法において、任意の時点で、どのトレースモジュールがファンネル論理にトレース信号を送るべきかをトレースモジュールに示すことにより、トレースストリームが任意の時点で1つのトレースモジュールからのトレース信号のみを含むようにファンネル論理が構成されていることを特徴とする方法。   62. The method of claim 61, wherein a trace stream is only trace signals from one trace module at any given time by indicating to the trace module which trace module should send the trace signal to funnel logic at any given time. The funnel logic is configured to include: 請求項61記載の方法において、前記ステップ(c)は、対応したトレースバス上に出力トレース信号を出力しようとする各トレースモジュールから、リクエスト信号を受信するステップと、
受信されたリクエスト信号からどのトレースモジュールがファンネル論理に対してトレース信号を送るべきかを決定するステップと
を含むことを特徴とする方法。
62. The method of claim 61, wherein step (c) comprises receiving a request signal from each trace module that is 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.
請求項63記載の方法は、さらに、あらかじめ定められた基準の適用時に、ファンネル論理にトレース信号を送るであろうトレースモジュールに許可信号を発行するステップを含むことを特徴とする方法。   64. The method of claim 63, further comprising issuing a grant signal to a trace module that will send a trace signal to the funnel logic upon application of the predetermined criteria. 請求項63記載の方法において、あらかじめ定められた基準は、複数のトレースモジュール間の優先度を定義することを特徴とする方法。   64. The method of claim 63, wherein the predetermined criteria defines a priority between the plurality of trace modules. 請求項63記載の方法において、あらかじめ定められた基準は、プログラム可能であることを特徴とする方法。   64. The method of claim 63, wherein the predetermined criteria is programmable. 請求項63記載の方法において、ファンネル論理は、その入力が前記トレースバスの各々に接続されたマルチプレクサを含み、該方法は、さらに、あらかじめ定められた基準の適用時に、ファンネル論理の出力ポートに送出するためのトレースストリームとしてマルチプレクサのどの入力をマルチプレクサから出力すべきかを制御するために制御信号をマルチプレクサに発行するステップを含むことを特徴とする方法。   64. The method of claim 63, wherein the funnel logic includes a multiplexer whose input is connected to each of the trace buses, the method further transmitting to an output port of the funnel logic upon application of a predetermined criterion. Issuing a control signal to the multiplexer to control which input of the multiplexer is to be output from the multiplexer as a trace stream for performing. 請求項67記載の方法は、さらに、どの構成要素にトレースストリームの特定の部分が対応するかを示す識別子をトレースストリームに導入するステップを含むことを特徴とする方法。   68. The method of claim 67, further comprising introducing into the trace stream an identifier that indicates which component corresponds to a particular portion of the trace stream. 請求項68記載の方法において、識別子は、マルチプレクサに発行された制御信号から求めることを特徴とする方法。   69. The method of claim 68, wherein the identifier is determined from a control signal issued to the multiplexer. 請求項61記載の方法において、トレースすべき各構成要素について1つのトレースモジュールを設けることを特徴とする方法。   62. The method of claim 61, wherein one trace module is provided for each component to be traced. 請求項61記載の方法において、ファンネル論理は、各トレースモジュールによるトレース信号の発行を制御可能であることを特徴とする方法。   62. The method of claim 61, wherein funnel logic is capable of controlling the issuance of trace signals by each trace module. 請求項61記載の方法において、トレースモジュールの少なくとも1つによるトレース信号の発行は、ファンネル論理によって制御不可能であり、さらに、トレースモジュールとファンネル論理との間に接続され、該トレースモジュールにより出力されたトレース信号を一時格納するために、このようなトレースモジュールの各々に対するストーリング・バッファを含むことを特徴とする方法。   62. The method of claim 61, wherein the issuance of trace signals 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. 請求項64記載の方法において、トレースモジュールの少なくとも1つによるトレース信号の発行は、ファンネル論理によって制御不可能であり、さらに、トレースモジュールとファンネル論理との間に接続され、該トレースモジュールにより出力されたトレース信号を一時格納するために、このようなトレースモジュールの各々に対するストーリング・バッファを含み、ストーリング・バッファは、対応するトレースモジュールのためリクエスト信号を発行し、およびリクエストハンドラによって発行された任意の許可信号に応答して、一時格納されたトレース信号をファンネル論理に出力させるように構成されたことを特徴とする方法。   65. The method of claim 64, wherein the issuing of the 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, which issued a request signal for the corresponding trace module and issued by the request handler A method configured to cause a funnel logic to output a temporarily stored trace signal in response to an arbitrary enable signal. 請求項73記載の方法において、ストーリング・バッファ内に格納されているトレース信号の量が、あらかじめ定められたレベルに達した時に、リクエスト信号を発行するようにストーリング・バッファが構成されていることを特徴とする方法。   75. The method of claim 73, wherein 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. A method characterized by that. 請求項61記載の方法において、出力ポートはデータ処理装置のトレースバッファに接続されていることを特徴とする方法。   62. The method of claim 61, wherein the output port is connected to a trace buffer of the data processing device. 請求項61記載の方法において、出力ポートは、トレースストリームがデータ処理装置から出力されるための複数のピンを含むことを特徴とする方法。   62. The method of claim 61, wherein the output port includes a plurality of pins for the trace stream to be output from the data processing device. その動作をトレースする1つあるいはそれ以上の数の構成要素からの入力信号を受信するための複数のトレースモジュールを有し、各トレースモジュールは、対応するトレースバスを介して出力されるトレース信号をそのトレースモジュールの各入力信号から生成するように構成されたデータ処理装置の内部でトレース信号を生成する方法であって、
(a)ファンネル論理において、各トレースバスへ出力されるトレース信号を入力トレース信号として受信するステップと、
(b)ファンネル論理の出力ポートに、入力トレース信号から得られたトレースストリームを生成するステップであって、該出力ポートは、ファンネル論理に接続されたトレースバスの集約された最大帯域幅より狭い最大帯域幅を有するステップと、
(c)トレースモジュールからのトレース信号の発行を制御して、出力ポートの最大帯域幅を超えないように、入力トレース信号が出力ポートから出力されることを保証するステップと
を含むことを特徴とする方法。
Having a plurality of trace modules for receiving input signals from one or more components that trace its operation, each trace module having a trace signal output via a corresponding trace bus; A method of generating a trace signal within a data processing device configured to generate from each input signal of the trace module,
(A) In funnel logic, receiving a trace signal output to each trace bus as an input trace signal;
(B) generating a trace stream derived from the input trace signal at an output port of the funnel logic, the output port being a maximum narrower than an aggregated maximum bandwidth of a trace bus connected to the funnel logic; A step having bandwidth;
(C) controlling the issuance 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. how to.
請求項77記載の方法において、任意の時点で、どのトレースモジュールがファンネル論理にトレース信号を送るべきかをトレースモジュールに示すことにより、トレースストリームが任意の時点で1つのトレースモジュールからのトレース信号のみを含むようにしたファンネル論理が構成されていることを特徴とする方法。   78. The method of claim 77, wherein a trace stream is only trace signals from one trace module at any given time by indicating to the trace module which trace module should send the trace signal to funnel logic at any given time. A funnel logic configured to include: is configured. 請求項77記載の方法において、前記ステップ(c)は、
対応したトレースバス上に出力トレース信号を出力しようとする各トレースモジュールから、リクエスト信号を受信するステップと、
受信されたリクエスト信号からどのトレースモジュールがファンネル論理に対してトレース信号を送るべきかを決定するステップと
を含むことを特徴とする方法。
78. The method of claim 77, 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.
請求項79記載の方法において、さらに、あらかじめ定められた基準の適用時に、ファンネル論理にトレース信号を送るであろうトレースモジュールに許可信号を発行するステップを含むことを特徴とする方法。   80. The method of claim 79, further comprising the step of issuing a grant signal to a trace module that will send a trace signal to the funnel logic upon application of the predetermined criteria. 請求項79記載の方法において、あらかじめ定められた基準は、複数のトレースモジュール間の優先度を定義することを特徴とする方法。   80. The method of claim 79, wherein the predetermined criteria defines a priority among the plurality of trace modules. 請求項79記載の方法において、あらかじめ定められた基準は、プログラム可能であることを特徴とする方法。   80. The method of claim 79, wherein the predetermined criteria is programmable. 請求項79記載の方法において、ファンネル論理は、その入力が前記トレースバスの各々に接続されたマルチプレクサを含み、該方法は、さらに、あらかじめ定められた基準の適用時に、ファンネル論理の出力ポートに送出するためのトレースストリームとしてマルチプレクサのどの出力をマルチプレクサから出力すべきかを制御するために制御信号をマルチプレクサに発行するステップを含むことを特徴とする方法。   80. The method of claim 79, wherein the funnel logic includes a multiplexer whose input is connected to each of the trace buses, the method further sending to an output port of the funnel logic upon application of a predetermined criterion. Issuing a control signal to the multiplexer to control which output of the multiplexer is to be output from the multiplexer as a trace stream for performing. 請求項83記載の方法は、さらに、どの構成要素にトレースストリームの特定の部分が対応するかを示す識別子をトレースストリームに導入するステップを含むことを特徴とする方法。   84. The method of claim 83, further comprising introducing an identifier into the trace stream that indicates which component corresponds to a particular portion of the trace stream. 請求項84記載の方法において、識別子は、マルチプレクサに発行された制御信号から求めることを特徴とする方法。   85. The method of claim 84, wherein the identifier is determined from a control signal issued to the multiplexer. 請求項77記載の方法において、トレースすべき各構成要素について1つのトレースモジュールを設けることを特徴とする方法。   78. The method of claim 77, wherein one trace module is provided for each component to be traced. 請求項77記載の方法において、ファンネル論理は、各トレースモジュールによるトレース信号の発行を制御可能であることを特徴とする方法。   78. The method of claim 77, wherein the funnel logic is capable of controlling the issue of trace signals by each trace module. 請求項77記載の方法において、トレースモジュールの少なくとも1つによるトレース信号の発行は、ファンネル論理によって制御不可能であり、さらに、トレースモジュールとファンネル論理との間に接続され、該トレースモジュールにより出力されたトレース信号を一時格納するために、このようなトレースモジュールの各々に対するストーリング・バッファを含むことを特徴とする方法。   78. The method of claim 77, wherein the issuing of the 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. 請求項80記載の方法において、トレースモジュールの少なくとも1つによるトレース信号の発行は、ファンネル論理によって制御不可能であり、さらに、トレースモジュールとファンネル論理との間に接続され、該トレースモジュールにより出力されたトレース信号を一時格納するために、このようなトレースモジュールの各々に対するストーリング・バッファを含み、ストーリング・バッファは、対応するトレースモジュールのためリクエスト信号を発行し、およびリクエストハンドラによって発行された任意の許可信号に応答して一時格納されたトレース信号をファンネル論理に出力させるように構成されたことを特徴とする方法。   81. The method of claim 80, wherein the issuance of trace signals 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, which issued a request signal for the corresponding trace module and issued by the request handler A method configured to cause funnel logic to output a temporarily stored trace signal in response to an arbitrary enable signal. 請求項89記載の方法において、ストーリング・バッファ内に格納されているトレース信号の量が、あらかじめ定められたレベルに達した時に、リクエスト信号を発行するようにストーリング・バッファが構成されていることを特徴とする方法。   90. The method of claim 89, wherein 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. A method characterized by that. 請求項77記載の方法において、出力ポートはデータ処理装置のトレースバッファに接続されていることを特徴とする方法。   78. The method of claim 77, wherein the output port is connected to a trace buffer of the data processing device. 請求項77記載の方法において、出力ポートは、トレースストリームがデータ処理装置から出力されるための複数のピンを含むことを特徴とする方法。   78. The method of claim 77, wherein the output port includes a plurality of pins for the trace stream to be output from the data processing device. 請求項47記載の方法に従って、装置を制御するためのコンピュータプログラムを実行するコンピュータプログラム製品。   48. A computer program product for executing a computer program for controlling an apparatus according to the method of claim 47.
JP2007329546A 2002-06-07 2007-12-21 Data processor and trace signal generation method Pending JP2008097646A (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 Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2003076703A Division JP4175927B2 (en) 2002-06-07 2003-03-20 Data processing apparatus, trace signal generation method, and trace signal generation program

Publications (1)

Publication Number Publication Date
JP2008097646A true JP2008097646A (en) 2008-04-24

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 Before (1)

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

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
CN101548270A (en) * 2007-09-03 2009-09-30 松下电器产业株式会社 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

Citations (6)

* 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
JPH08314764A (en) * 1995-05-17 1996-11-29 Fujitsu Ltd Bus tracer
JPH09167105A (en) * 1995-09-11 1997-06-24 Rockwell Internatl Corp On-chip debugging system
JPH11306040A (en) * 1998-04-21 1999-11-05 Toshiba Corp Emulator tracing device
JP2000029748A (en) * 1998-07-08 2000-01-28 Nec Corp Trace fetching system for plural online control programs
JP2001147833A (en) * 1999-10-01 2001-05-29 Hitachi Ltd Trace information compression method for computer system and trace information restoration method for computer system

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
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
US6167536A (en) * 1997-04-08 2000-12-26 Advanced Micro Devices, Inc. Trace cache for a microprocessor-based device
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

Patent Citations (6)

* 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
JPH08314764A (en) * 1995-05-17 1996-11-29 Fujitsu Ltd Bus tracer
JPH09167105A (en) * 1995-09-11 1997-06-24 Rockwell Internatl Corp On-chip debugging system
JPH11306040A (en) * 1998-04-21 1999-11-05 Toshiba Corp Emulator tracing device
JP2000029748A (en) * 1998-07-08 2000-01-28 Nec Corp Trace fetching system for plural online control programs
JP2001147833A (en) * 1999-10-01 2001-05-29 Hitachi Ltd Trace information compression method for computer system and trace information restoration method for computer system

Also Published As

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

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
US7058735B2 (en) Method and apparatus for local and distributed data memory access (“DMA”) control
US6571319B2 (en) Methods and apparatus for combining a plurality of memory access transactions
US10810146B2 (en) Regulation for atomic data access requests
KR960705283A (en) IMAGE COMPRESSION COPROCESSOR WITH DATA FLOW CONTROL AND MULTIPLE PROCESSING UNITS
JP2008503808A (en) High speed memory module
EP2273378A1 (en) Data stream flow controller and computing system architecture comprising such a flow controller
CN112559436B (en) Context access method and system of RDMA communication equipment
WO2011065354A1 (en) Bus monitor circuit and bus monitor method
GB2503882A (en) Preserving configuration of debug units in a power domain
US9372773B2 (en) User-level hardware branch records
US10437750B2 (en) Relative data width indication for read responses routed by an interconnect
US7685351B2 (en) External device access apparatus
US20170060761A1 (en) Expedited servicing of store operations in a data processing system
US10691605B2 (en) Expedited servicing of store operations in a data processing system
US9632942B2 (en) Expedited servicing of store operations in a data processing system
US7730264B1 (en) Adaptively reducing memory latency in a system
US7739426B1 (en) Descriptor transfer logic
US7916146B1 (en) Halt context switching method and system
US20180225208A1 (en) Information processing device
US20090164689A1 (en) Early response indication for data retrieval in a multi-processor computing system
US20040095948A1 (en) Data return arbitration
CN118069570B (en) Doorbell type chip access system, device and method

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080118

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110513

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110815

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110818

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111202