JP2007066336A - 集積回路内の診断データ取り込み - Google Patents

集積回路内の診断データ取り込み Download PDF

Info

Publication number
JP2007066336A
JP2007066336A JP2006333724A JP2006333724A JP2007066336A JP 2007066336 A JP2007066336 A JP 2007066336A JP 2006333724 A JP2006333724 A JP 2006333724A JP 2006333724 A JP2006333724 A JP 2006333724A JP 2007066336 A JP2007066336 A JP 2007066336A
Authority
JP
Japan
Prior art keywords
diagnostic data
data
integrated circuit
diagnostic
word
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.)
Withdrawn
Application number
JP2006333724A
Other languages
English (en)
Inventor
Paul Kimelman
ポール・キメルマン
Ian Field
イアン・フィールド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARM Ltd
Original Assignee
ARM Ltd
Advanced Risc Machines Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ARM Ltd, Advanced Risc Machines Ltd filed Critical ARM Ltd
Publication of JP2007066336A publication Critical patent/JP2007066336A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31705Debugging aspects, e.g. using test circuits for debugging, using dedicated debugging test circuits
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

【課題】集積回路内の診断データを取り込む方法が提供される。
【解決手段】集積回路は、バスからデータ語と文脈語とを取り込む診断データ取り込み回路の形態で診断データ取り込み/出力システムを備える。バスは、集積回路内の機能回路を接続する機能バス、又は、1つ又は複数の機能回路を診断データ取り込み回路に直接リンクする専用バスであってよい。取り込んだ診断データは、先入れ先出しバッファ内にバッファ処理し、そして、シリアル化して出力される。また診断データ領域は、関連する診断データ領域を取り込んだ時間及び取り込みに失敗した診断データ領域がないかを示す時間値も含む。
【選択図】図1

Description

本発明は、集積回路の分野に関する。特に、本発明は、例えば、デバッギング、性能モニタリング、設計、及び他の処理等に用いる診断データの集積回路内での取り込みに関する。
診断データを取り込み出力する内臓システムを集積回路に設けることが知られている。このような集積回路の一例は、エンベデッド・トレース・マクロセル(ETM)を含む英国ケンブリッジのARM社が生産する集積回路である。ETMシステムは、実行プログラム命令を識別するデータや処理データ値等の追跡データをオンチップ追跡バッファに取り込み、後で外部診断装置に出力するように動作する。ETM型システムは、比較的大量の回路資源を消費することが問題である。この診断用途に充てられる回路領域は、ETM回路を利用する設計や開発作業が完了すると、既製の集積回路では実質的な用途がない。
また、UART又は他の通信資源を用いて、集積回路から診断データを出力するためのプログラム命令を開発システムのプログラム符号内に挿入することが知られている。このプログラム駆動による手法の不利な点は、当該プログラムにかなりの負荷がかかり、その動作をゆがめて診断データの有用性を損ない得ることである。このことは、装置インターフェイスが直接アクセス用に設計されていないことから、特に問題である。更に悪いことに、通信装置が満杯である(更にデータを受け取れない)場合、アプリケーションがストールしたり、記録せずにデータが欠落したりすることがある。逆に、プログラム符号の要素が、性能に影響を与えないほど充分に優先順位が低く、また充分まれにしか起動しない場合、復旧し得る情報量が制限され、また、その情報のタイミングが遅れ不利になることもある。
一側面では、本発明は、集積回路を提供し、前記集積回路には、
データ処理動作を行うように動作可能な1つ又は複数の機能回路と、
前記1つ又は複数の機能回路によって生成されるデータ語と、前記データ語に関連する前記1つ又は複数の機能回路の文脈を表す文脈語と、を含む値の診断データフィールドをバスから取り込むように動作可能な診断データ取り込み回路と、
前記診断データフィールドをシリアル化して前記集積回路から外部診断装置に前記診断データフィールドを出力するように動作可能な診断データ直列出力回路と、
が含まれる。
本手法は、バスから診断データを取り込む診断データ取り込み回路を提供する。これは、ハードウェア取り込み機構であり、従って、それ自体いずれの実行プログラム符号にも処理負荷をかけない。バスから取り込まれる診断データフィールドは、データ語及び文脈語を含む。文脈語も取り込むように診断データ取り込み回路を構成すると、取り込まれるデータ語の解釈が簡単になり、また、プログラム符号や他の機構が文脈通知情報を提供して診断データを解釈する必要がなくなる。一旦、診断データ取り込み回路によって取り込まれると、診断データフィールドは、再度他の場所に負荷を課さないように集積回路からそれ自体の診断データ直列出力回路によって出力し得る。本手法は、集積回路の他の要素への侵入が有利な低レベルであり、一方、それ自体が必要な回路オーバヘッドも有利な低レベルである診断データ出力能力を提供する。
診断データ取り込み回路が診断フィールドを取り込むバスは、様々な異なる形態を取り得ることを認識されたい。しかし、好適な実施形態では、診断データ取り込み回路が、2つ以上の機能回路をリンクする集積回路の機能バスから診断データを取り込むことは都合が良い。
機能バスについて、データ語は、その機能バスのデータ部から取り込むことができ、文脈語は、機能バスのアドレス部から取り込むことができる。これは、機能バス上のアドレス全体を文脈語として用い得るということであるが、好適な実施形態では、アドレスの一部のみを用いて、集積回路からの出力が必要なデータ量を低減しつつ、充分な程度の文脈情報を提供する必要がある。
機能バスからの診断データ取り込みに対する他の選択肢又は追加として、1つ又は複数の機能回路から診断データ取り込み回路へデータを直接伝える専用診断バスを用いることも可能である。これに関連して、取り込み得るデータ語及び文脈語は、機能バスプロトコルによって拘束されないため、それらの性質の自由度が改善される。
診断データの直列出力は、直接行いバッファ処理しなくてもよいが、本発明の好適な実施形態では、先入れ先出しバッファが提供され、これに、シリアル化され出力される前に診断データフィールドが記憶される。このような先入れ先出しバッファは、診断データ出力能力のオーバーフローに対する多少の耐性を与える。対象の診断事象が、短い時間間隔で生じ、ある程度のバッファ処理がないと、これらを同時に調査できないという場合もある。
本発明の好適な実施形態では、診断データフィールドは、データ語に関連する時間値を示すタイミング語を含む。時間値は、様々な異なる形態を取ることができ、例えば、何らかの形態の周期カウント又は実時間値であってよいが、好適な実施形態では、カウント値が、診断データ直列出力回路によって依然出力されている任意の以前取り込んだ診断データフィールドの取り込み後の時間期間を示すように構成することによって、充分な程度の時間分解能を更に可能にしつつ、集積回路からの出力を要するデータ量を低減し得る。
好適な実施形態では、時間値を用いて、1つ又は複数の診断データフィールドの取り込みが、例えば、診断データフィールドのオーバーフロー又は他の何らかの種類の取り込みエラーの結果として、失敗したかどうか示すことも可能である。
診断データの直列出力は、様々な異なる方法で様々な異なる符号化を用いて達成し得る。一例として、診断データフィールドを、より小さいマルチバイトセグメントに分けてから順次出力し得る。しかしながら、好適な実施形態では、診断システムに関連する外部ピンカウントの形態のオーバヘッドは、単一のシリアルデータ出力線を用いることによって、又は集積回路自体によって、もしくは他の回路によって生成され集積回路で用い得るクロック信号に関連する単一のシリアルデータ出力線を用いることによって、減少する。一般的に、クロック信号と組み合わせて出力すると、余分な信号線の代価を払って、あるいは、関係するクロック信号線が外部出力として既に存在する場合、少なくとも複雑さの程度が増すという代価を払って、データ転送速度を速くできる。
現在の手法の特に好適な特徴は、機能回路の内の1つ上で動作するプログラム命令が、診断データフィールドを生成し得ることである。従って、プログラムは、適切な実行ポイントで診断データを生成するプログラム命令を導入/組み込み得る。これによって、診断データが生成されるように多大な自由度とパワーが可能になり、また、それが表現し得るものが可能になる。更に、ハードウェア診断データ取り込み回路及び直列出力回路は、プログラム符号が、診断データの取り込み又は出力に寄与する必要がなく、単にその生成にのみ寄与するという効果を有する。このことは、プログラム符号のオーバヘッドを減少させ有利である。更に、データは、このデータの生成後にプログラムが“クラッシュ”する場合でも取り込まれる。
診断データを生成するプログラム命令は、好適には、バスへのバストランザクションを生成し、そして、そこからデータ語及び文脈語を取り込むことによって、このことを行う。バストランザクションを生成するプログラム命令は、通常、バス構造を用いる集積回路内に存在し、従って、この診断機能に容易に利用し得る。
本手法の非常に好適な特徴は、診断データ取り込み回路が、所定のアドレス特性に整合するアドレスに関連するバストランザクションを取り込むように動作可能なことである。このように、診断データ取り込み回路は、診断データを生成し取り込んで出力したい場合、それ自体の関連するアドレス範囲と、そのアドレス範囲内のアドレスを利用してバストランザクションを生成するように構成された機能回路と、を有するバススレーブで作製し得る。
診断データ取り込み回路に関連するアドレス範囲を用いると、バストランザクションが向けられるアドレス範囲内の特定のアドレスから、データ語に関連付けられる文脈語を導き得るという非常に有利な特徴が提供される。従って、機能回路は、特定のアドレス位置に向けるようにバストランザクションを構成することによって、データフィールドに関連付けられるその文脈情報を提供できるが、このことは、診断データがプログラム命令によって生成される場合、特に容易に実現し得る。
文脈語は、所定アドレス範囲内で用いられるアドレスの位置を示す指標値を用いることによって、バストランザクションのアドレスの表示を効果的に行い得る。
本発明の好適な実施形態は、診断事象に対してプログラム可能な感度を提供し、これは、診断データフィールドに適用されるプログラム可能なマスク値の使用により、ユーザによって他の方法では容易に調整できないように、システムの動作に組み込み得る。このプログラム可能なマスク値は、診断データ取り込み回路によって用いられ、ユーザがその時に対象でないと判断した診断データをマスクして外したり、対象のデータをマスクして取り込んだりする。
他の側面において、本発明は、集積回路から診断データを受信するための診断装置を提供し、前記診断装置には、
前記集積回路内のバスから取り込まれる値の診断フィールドを表すシリアルデータを受信するように動作可能な診断データシリアルデータ受信器と、
前記診断フィールドを復号化して、そこで前記集積回路内の1つ又は複数の機能回路によって生成されるデータ語を識別し、また、前記データ語に関連する前記1つ又は複数の機能回路の文脈を表す文脈語を識別するように動作可能な診断データ復号器と、
が含まれる。
更なる側面において、本発明は、集積回路の1つ又は複数の機能回路によって行われる1つ又は複数のデータ処理動作を表す診断データを生成する方法を提供し、前記方法には、
前記1つ又は複数の機能回路によって生成されるデータ語と、前記データ語に関連する前記1つ又は複数の機能回路の文脈を表す文脈語と、を含む値の診断データフィールドをバスから取り込む段階と、
前記診断データフィールドをシリアル化する段階と、
前記集積回路から外部診断装置に前記診断データフィールドを出力する段階と、
が含まれる。
次に、本発明の実施形態について、添付図面を参照して、単なる一例として説明する。
図1に示す集積回路10は、2つの機能回路20を接続するシステムバス25上を進む診断データを取り込むように動作可能な診断データ取り込み回路15を含む。診断データ取り込み回路15は、データ処理システムによって処理されるデータと単線出力との間のインターフェイスを提供し、単線出力(SWO)装置と称する場合がある。
図1の装置では、診断データ取り込み回路は、機能回路間をバスに沿って進むデータにアクセスするように構成される。これは、本質的に、データにアクセスすることとは別に、他の点でシステムに影響を与えたり、データに決して影響を与えたりしない受動装置である。
診断データ取り込み装置は、アドレス復号器、FIFO、及びシリアライザを含む。診断データ取り込み装置は、バスのデータ部に沿って進むデータ語にアクセスし、また、バスのアドレス部に沿って進むデータが書き込まれるアドレスにアクセスするように動作可能である。傍受されるデータ語は、診断目的の対象として書き込まれたデータである。データ語にアクセスすると、アドレス復号器は、次に、データ語に“文脈データ”の選択されたビットを加えることによってそれを処理する。この文脈データは、アドレスデータから導かれ、事実上、文脈中にデータ語を置く役割を果たす。次に、拡張した長さのデータ語がFIFOに伝えられる。
ほとんどの実施形態では、アクセスされるデータ語は、32ビット語であり、好適な実施形態では、これに5ビットの文脈データを付加するように選択される。文脈データは、通常、アドレスバス上のアドレスデータから取られるアドレスの一部である。
データ取り込みは、様々な方法で、例えば、データが特定のアドレスに書き込まれるのに応じてトリガをかけることができる。一般的に、データ処理システムでは、診断データは、プロセッサのアドレス空間の特定領域に書き込まれ、従って、この特定領域へのあらゆるデータ書き込みが、診断取り込み装置の対象となる。従って、システムは、この領域のアドレスへのデータ書き込み命令がデータ取り込み装置にトリガをかけるように構成し得る。これを行う1つの方法は、プログラム可能なマスク値を用いるように動作可能なマスク回路を診断データ取り込み回路に備え、取り込まれる診断データフィールドを選択することである。
一旦、データ取り込み回路にトリガがかかると、アドレス復号器が、文脈データをデータ語に付加するように機能する。多くの実施形態において、データ領域内の個々のアドレスは、特定の機能に特有であり、従って、個々のアドレスの詳細は、5ビットの文脈データとしてデータ語に付加でき、傍受されるデータ語の特定の機能に関する情報を提供する。従って、幾つかの実施形態では、文脈フィールドは、所定のアドレス範囲内のアドレスの位置を示すオフセット値となり得る。この点において、RTOSの典型的なモデルでは、例えば、指標0は、スレッド開始部に用いられ、1はスレッド終了部に、2はミューテックスペンドに、3は待ち行列ペンドに用い得る。この意味することは、例えば、RTOSが、指標0にスレッドID(TCBアドレス又は他の32ビット情報)を単に書き込み、指定されたスレッドが送り込まれたことを示すことである。従って、1つの記憶命令では、RTOSは、どんな動作/事象が生じたか、また、その動作/事象の文脈の双方を伝達し得る。
次に、アドレス復号器から出力される37ビットデータが、FIFOに出力される。FIFOは、1段のFIFOだけでよいが、好適には、幾つかの段を含む。実際、FIFOは、複数のデータ語を、その全体的割合が帯域幅未満である限り、互いに接近して送信させる。FIFOの典型的な深さは、3であるが、機能回路の最大速度、データを受信するコアのクロック速度、及びSWOの出力速度に依存して、異なる深さを選択し得る。
次に、シリアライザは、単線出力(SWO)を介したシリアルデータとしてFIFOから出力されるデータを出力する役割を果たす。シリアライザによって出力されるデータ速度は、実施形態に依存する。低速及び高速の実施形態があり、これらについては、更に詳細に後述する。本質的に、高速の実施形態では、シリアライザ出力をクロック制御する必要があり(図2参照)、従って、単一の診断データ直列出力(SWO)に加えて、クロック信号入力線がある。一般的に、高速の実施形態は、約48MHzで動作するが、100MHzをサポートし得る。
低速の実施形態は、クロック入力を必要とせず、単ピンインターフェイスにおいて12MHzまでサポートし得る。
単線出力インターフェイス装置は、複数のこれらの37ビットデータ語を直列に出力し、次に、いずれかの受信装置が、32ビットデータ語に関連する5ビット文脈データを用いて、出力データを異なるストリーム中に多重分離し得る。
図2は、本発明の実施形態に基づく集積回路に用いるためのデータ取り込み装置を示す。データ取り込み装置は、図1に示したものと同様であるが、更に、“カウント”入力部、及び機能回路から診断データを送信するための関連した専用の診断バスを備えた追加のFIFOを含む。
カウント入力部は、37ビット語に付加し得る文脈データに関連する時間値を示すタイミングフィールドを入力するように動作可能である。カウント値は、システムバスから取り込まれるデータ語間の時間長を示し、即ち、言い換えると、次の語が到達する前に、このような語がFIFOで費やす時間長を示す。
1つの実現形態は、カウンタの提供であるが、このカウンタは、1つのデータの取り込みによって始動し、次のデータの取り込みによって停止し、それから再始動する。取り込みタイマーがオーバーフローし、このために1つのデータをSWOに送信すると、これらの余分なパケットは、実際、出力されるパケット列に中断がある時のみ必要とされるため、このことによって帯域幅は生じない。
カウンタからの情報は、パケットに関連する遅延マーカとしてデータのパケットを作成しているシリアライザの37ビット語に付加される。好適な実施形態では、これは、3ビット幅である。カウントデータは、プロセッサによって実行される書き込み命令間の時間の表示を提供し、従って、有用な追加診断データである。また、特定のデータフィールドのデータ取り込みが失敗したかどうかの表示も提供し得る。
図2において、更に、機能回路から診断取り込み回路へ情報を提供し、データがシステムバスを通過することなく出力される専用の診断バス40を示す。これは、ハードウェアの実現形態であり、実際、その特定の機能回路の動作を“追跡”し得る。ここでは、アドレス復号化は存在せず、ハードウェアは、FIFOにデータビットを直接書き込むように構成される。これは、それ自体のFIFOを介してデータ取り込み回路に接続され、このことによって、データは、たとえデータがシステムバスから取り込まれつつあっても、出力線に付加し得る。
図3は、単線出力を有する診断取り込み装置によって出力されるシリアルデータを受信するための装置を示す。装置は、シリアルデータ受信器及びシリアルデータ復号器を含む。受信器は、シリアル信号を受信するように動作可能であり、復号器は、信号を復号化し、機能回路によって生成されるデータ語及びそれらの関連する文脈データを信号内から識別するように動作可能である。次に、文脈データを用いて、データ語を分類し、複数のストリームに単一のストリームを多重分離する。
幾つかの実施形態では、受信器は、ホスト上のデバッガであってよく、復号器は、データ語を、それらの文脈データに基づき分類する役割を果たし、そして、カスタムDLLに他のデータを送信し、また、記憶する更に他のデータを送信しつつ、デバッガに適切なデータを転送する。
デバッギング又は追跡目的用途に加えて、他の診断データは、この単線出力装置を用いて取り込み得る。例えば、このシステムが、自動車の集積回路に存在する場合、このピンから診断データの抽出が可能であり、診断データは、自動車システムの様々な部品の状態に関する情報を提供する。
本発明の実施形態に関する追加情報を以下に述べる。これに関して、次の用語及び略語を用いる。
用語及び意味
SWJ:単線JTAG。これは、実行制御エミュレータが、チップに配置され、これとの通信に単ピン方式(これに対して、JTAGの場合、4又は5ピン方式)を用いるモデルである。これによって、ピンが減少するだけでなく、一般的にJTAGよりも極めて速い。更に、追加のアクセス及び固有IDも提供する。このMemTAPモデルを用いると、このモードは、極めて高速に動作しダウンロードを行い得る。
DBT/MemTAP:これは、AMBA(AHB又はAHB−Lite)マスタとして機能しシステムバスにアクセスするTAPブロックである。
AMBA:チップ内のARMバス標準規格。
AHB:通常のメモリアクセス用AMBA高速インターフェイス(これに対してAPB)
AHB スレーブ:AMBA装置であり、アドレス範囲でのアクセスに能動的に応答する。SWOは、AHBスレーブ装置である。
AHB Lite:AMBAの余分な装備のないバージョンを指し、AHBは、マルチマスタがなく、また、フルバーストモード及びその関連する信号送信がない。
UART:非同期シリアル(ビットが1つずつ送信される)装置。SWOは、UARTの概念に基づく。また、SWOは、デバッグ追跡ツールとしてUARTの代替用である。
ETM:埋め込み式追跡マイクロセルは、トリガ事象に応答して命令及び/又はデータ追跡情報を記憶するオンチップ追跡ブロックを指す。
以下、本発明の実施形態に基づく超小型単線出力“追跡”構成要素について説明する。この構成要素は、ETMとは全く異なり、また、実際、(アプリケーション及びHWに依存して)ETMと相補的であり得る。SWO用のモデルは、アプリケーション駆動式追跡であり、一方、ETMは、プロセッサ駆動式追跡である。ETMが、トリガ及び範囲を用いて追跡するものを制御する場合、SWOは、受動的であり、また、アプリケーション、RTOS、又はシステムHWによってそれに明確に送信されたものだけを出力する。
SWOは、アプリケーションによって4つの主な目的に用いるように設計されている。即ち、
・‘printf’デバッギングを行うこと。これは、それらが、ホスト上で後処理できるように、あるチャネルでアプリケーション送信データをアップさせたいことを意味する。従来は、直列チャネルが用いられるが、これは、(通常)アプリケーション自体の資源の1つを必要とする。またそれは、ISRを空にすること(即ち、HW自動バッファ処理)を意味する。また、従来の直列装置の速度が非常に遅いと、データ速度が制限される。
・RTOS事象追跡を行うこと。これは、RTOSに僅かな修正を行う場合、それが特定の位置にIDを書き込み、これにより、どんな事象が起こったか示すことを意味する。書き込み動作が安価である限り、導入したバージョン(これに対して別のデバッグ画像を有するバージョン)に書き込みを残し得る。これによって、固定の低侵入が保証され、プローブ効果の生成が回避される。従来、これは、優先順位の低いスレッドに伝えられ、これにより、シリアルライン外にそれを押し出す。又は、リングバッファにダンプされ事後分析される。しかし、ほとんどのRTOSは、特別なバージョンでそれを含むだけであって、スレッド及びシリアルラインの遅延は、重要な情報が欠落したり歪んだりすることが多いことを意味する。更に、スレッドのオーバヘッド及び非常に高い情報伝達のオーバヘッドは、試験対象の挙動を変え得るプローブ効果を有する。
・アプリケーション又は‘バス’追跡を行うこと。これは、通常、特定の処理又は実データの監視を意味する。これは、その解釈が、データ自体(例えば、推測的情報)から切り離さなければならないという点で、printfデバッギングと区別される。これは、更に、システムの他のコアが、(DSP等の)同じサービスを用い得ることも意味する。
・システムレベルHWに収集情報を発信させること。これによって、システム設計者は、ホストの制御下で、小ブロック情報の送り動作を容易に付加し得る。これは、競合分析(バス使用均衡化)、DMA分析、(キャッシュなしコアにおける又はコアサポートによる)PCサンプリング、事象計数、(ETMから等の)時間トリガ事象、誤り状態等を含み得る。
混合型SWO及びETMシステムでは、ETMは、命令ストリーム、特殊トリガ事象、及び帯域幅が支障をきたさない他の領域に焦点を当て得る。この均衡化は、ピン及びゲートに余裕がない設計者に、より良い解決策を提供する。
SWOモデルは、実際には、修正されたアプリケーション符号をそのまま残し、また単に、使用中でない時SWO構成要素を遮断する。このことは、時間コストが、デバッギングと生産用途との間で変わらないことを意味する。従って、これは、固定侵入である(高速メモリに書き込むため、通常極めて小さい)。しかし、遮断し得るため、未使用時、電力を消費しない。
SWO構造は、3つの指針原理に基づく。
1.(RS232等の)デバッグUART形式のプログラミング解決策を代行する。
2.単一のピンで12Mbit/sまでの速度で、また、2つのピンで100Mbit/sまでの速度で、良好に動作し得る。
3.アプリケーション侵入を最小限にする。
SWOインターフェイスは、一組の32メモリマップ化ワード“レジスタ”として公開されている。各ワードレジスタは、アプリケーションにとって意味のある32ビット値で書き込み得る。レジスタの指標(0乃至31)は、メッセージの一部である。即ち、実際は、32個のレジスタはないが、37ビット幅の1つのレジスタがある。この37ビットレジスタは、アプリケーションによって書き込まれる32ビットデータ、及びアドレス指定されるレジスタによって選択される5ビット指標(アドレスの下位5ビット)を含む。これは、アプリケーションが、選択される位置によって単にデータに意味を付加し得ることを意味する。
例えば、RTOSの典型的なモデルでは、指標0は、スレッド開始部に、1はスレッド終了部に、2はミューテックスペンドに、3は待ち行列ペンドに用い得る。これが意味することは、例えば、RTOSが、指標0にスレッドID(TCBアドレス又は他の32ビット情報)を単に書き込み、指定されたスレッドが送り込まれたことを示すことである。従って、1つの記憶命令では、RTOSは、どんな動作/事象が起こったか、及びその動作/事象の文脈の双方を伝達し得る。
指標は帯域に割り当て得る。従って、例えば、0乃至17はRTOS(18個の指標)に、18及び19は“printf”ロギングに、20及び21は(コンパイラ又は手作業によって生成した)関数の開始/終了に、22及び23はISR開始/終了に与え得る。またホストは、37ビットを“アドレス”(5ビット)と“データ”(32ビット)として理解するため、異なるストリームにこれを多重分離し得る。従って、ホスト上で、デバッガは、全てのアドレス0乃至17をRTOS事象として、18及び19をprintfロギングに対して処理し得る。この多重分離処理は、単に、デバッガに提供される構成決定及び目標上で用いられる規則である。これによって、メッセージストリームは、カスタムDLLに進んだり、ファイルに記憶されたり、デバッガで実際に処理されたりする。任意の組合せが可能である。
データ用の32個のレジスタと共に、SWO構成要素は、キーロック制御レジスタ、ステータスレジスタ、及びIDを提供する。また、特定のアドレス(0乃至31)を選択的にディスエーブル状態にし得るマスクイネーブルレジスタもある。
SWOは、2つの基本形態、即ち、低速及び高速形態を有すると定義される。低速構成要素は、単ピンインターフェイス上で12Mbit/sまでの保持用である。高速構成要素は、2つの線(クロック及びデータ)上で100Mbit/sまでの保持用である。高速構成要素は、単一のデータピンを用いてそのようにできるため、“単線”とも呼ばれる。高速構成要素は、通常、約48MHz以下付近で動作すると予想され、USB2取り込み装置と共に良好に動作することに留意されたい。注意されたいことは、更に多くのピンを用い得るが、目的は、構成数を極めて少なくし、取り込み装置の利用可能性の問題を回避することである。
プロトコルに関して、SWO構成要素は、問題全体を4層の通信に分ける。
1.ワイヤプロトコル。これは、標準単線モデル(低速)用の42ビットプロトコルとして定義されるが、マンチェスタ符号化を用いて倍クロック制御される(従って、10MHzのビット速度は、20MHzのクロック速度を用いる)。これは、ピン資源を共有する場合、1包みのETMv3パケットであってよい。高速の場合、これは、別々のクロック源による42ビットプロトコルである(SWO用であろうとなかろうと、チップに出入りするクロックであってよい。)
2.目標プロトコル。これは、40ビットプロトコルとして定義され、3ビットヘッダ、5ビットアドレス、及び32ビットデータブロックを含む。3ビットヘッダは、遅延情報、オーバーラン・ステータス、及び拡張書式設定に用いられる。
3.データプロトコル。データプロトコルは、ホストと目標アプリケーションとの間の約束事である。即ち、32ビットデータには定義された意味はない。意味は、送信者によって割り当てられ、また、それを理解するように構成されたホストSWによって復号化される。これによって、広範囲のアプリケーション及びシステム全体で自由形式の使用が可能になる。
4.取り込み装置プロトコル。これは、目標プロトコルの拡張であり、追加情報の提供を取り込み装置に行わせる。特に、取り込み装置は、(1マイクロ秒単位で)パケット開始に時間尺度を提供する。時間尺度によって、相対的及び絶対的時間測定を合理的な精度で行い得る。目標プロトコルの内部遅延は、(パケットが連続的に流出する場合)パケット“列”用であり、一方、取り込み装置時間は、固定尺度である(また、新しいパケット又はパケット列の開始時測定されるため訂正が可能である)。
単線低速HWインターフェイスは、低コスト装置によって自動転送(auto-bauding)が可能なように設計されている。12Mbit/s以下に留まることによって、また、マンチェスタ符号化(1=HIGH−LOW、0=LOW−HIGH)を用いることによって、低コスト装置は、自動転送が容易であり、USB1.1で良好に動作する。更に、24MHz以下では、信号を駆動するチップや配線をレイアウトする基板設計者にほとんど無理がかからない。これによって、このデバッグ構成要素は、確実にフィールド内で用いることができ、スペースをほとんど必要としないで済む。実際、好適な実施形態では、単線は、(リセット時に制御される)チップのテストピンで多重化されるが、これは、(例えば、LEDに接続されたGPIOと共有しようとする場合そうであるように)外部HWインターフェイスがないためである。これは、テストピンコネクタが、SWOにも用い得ることを意味する。
高速使用の場合、別のクロックピン(従って、単一のデータ線及びクロック)が用いられる。このクロックは、速度に用いられ、従って、自動転送を必要としない(開始ビット及びパリティは、パケットを認識するためにやはり用いる。)クロックは、チップに出入りする任意のクロック信号でよいことに留意されたい。更に、留意されたいことは、より高速のSWJが、同じクロックを用いて、超高速単線デバッグ制御を行い得ることである。これは、3ピンを、より大きい装置において、高速でSWJ+SWOに用い得ることを意味する。MemTAPを備えた高速SWJは、最近の4乃至6線JTAGよりも速く動作し得る。
12Mbit/s保持速度は、ほとんどのアプリケーションにとって充分であるが、より大きいバースト速度が必要なことがある。SWO構成要素は、FIFOを用いて、より大きいバースト速度を可能にする。システム設計者は、FIFOの深さ(1以上)を選択し得る。FIFOは、全体の割合が帯域幅未満である限り、アプリケーションに、複数のデータ語を互いに接近して送信させる。例えば、これによって、速度事象記録用の3文脈語をダンプし得る。FIFO深さ3は、ほぼ最適であると思われる。
それでもなお、アプリケーションは、特定のプロセッサに対して、どれが最大速度になるかという感覚を有する必要があることに留意されたい。これは、FIFO深さ、コアのクロック速度、及びSWO速度によって影響される。SWOは、オーバーランが生じた(データが欠落した)ことを記録するため、これによって、特定のアプリケーションとチップとの組合せに対して容易にそれを調整し得る。
printfデバッギング用の従来モデルは、重要なポイントでprint命令をアプリケーションに挿入することである。これによって、プロセッサを停止することなく、まさにアプリケーション中心の情報ダンプが可能である。この手法は、4つの理由で広く用いられる。即ち、
1.デバッガにおいて各ポイントで停止すると時間の浪費であり、探しているものが分からない場合、極めて時間の浪費である。printfモデルによって、重要なデータを表示し、問題の兆候を探し得る。一旦問題の範囲が狭くなると、デバッガを用いて問題範囲を1ステップずつ進み得るため、printfデバッギングは、実行停止デバッギングと共に用いられる。
2.符号フローの分析。ログを用いて実行の順序を監視し得る。これは、実行の順序は、ほとんどの場合、静的に決定されていないため、割り込みベースのSWに極めて有効なことがある。
3.データロギング。実行中に値をダンプする能力は、事実に関する分析を可能にする。これが、中断点を用いて行われた場合、時間の浪費であるだけでなく、挙動が変わる可能性があるが、これは、停止すると、外部システムに影響を与えるためである。典型的な使用法は、予想された(以前生成されたアプリケーションや仕様等)と実データを比較したり、調整することである。
4.稀な事象のモニタリング。printfモデルは、(例えば、2週間実行しても)ほとんど故障が生じないシステムに用いられることが多い。これは、故障検出ポイントでの文脈に関するできるだけ多くの情報を取り込むために用い得る。
従来のprintfデバッギングの問題は、それが、バイトストリームの送信を伴い、往々にしてデータがそれにフォーマット化されて、低速チャネルで送信されることである。更に、その際、結果の管理は、困難であることが多い。文字列を用いると次の問題がある。即ち、
・文字列が長いほど、送信時間が長い。このことは、文字列は簡潔でなければならず、これが、結果を読み込むための能力に影響を与えることを意味する。
・文字列は、目標メモリに記憶しなければならず、従って、スペースを必要とする。
・文字列は、往々にしてデータ(局所的情報)をそれらにフォーマット化する必要がある。これは、時間がかかるだけでなく、(フォーマット化後の文字列がなくなるまでの)バッファ管理も意味する。
従来に対する他の選択肢は、文字列を用いず生データを送信することである。すると、これによって、有用な情報への変換が困難になり、また、如何にデータを取り込むかについて問題が生じる。
本発明の実施形態に基づくSWOは、効率的且つ簡単な使用方法で、強力な種類のprintfデバッギングをサポートする。モデルは、2つの部分に基づく。
・文字列表モデル。これは、ユーザが、用いたい各文字列と、番号と、一覧表名との間のマッピングを備えたファイルを作成することを意味する。例えば、
0x10:DBG_CHANGE_VALUE:値の位置が、%dに変化した。
0x11:DBG_MOTOR_SENSOR:モータセンサ読み取り値:%u速度、%u温度、%u電流。
上記2行では、ファイルは、各printfログを32ビットで送信し得るのに充分な情報を提供している。32ビット値は、8ビット指標に“分解され”表に入れられ(0x10及び0x11が、8ビット位置にある)、また24ビットデータ値に“分解される”。第1文字列では、24ビット値は、%dに用いられる。第2の例では、24ビット値は、3つの8ビット量に分けられ、%u制御に用いられる。また文字列は、%c及び固定小数点の値を用い得る。ファイルは、C/C++ヘッダファイルを作成するユーティリティによって用いられ、C/C++ヘッダファイルは、幾つかのマクロと共に各一覧表を定義し、データをパックする。これによって、プログラムで極めて簡単な行になり、例えば、DBG_STR_1(DBG_CHANGE_VALUE,値_位置)となる。
マクロは、与えられた値と論理和演算された数え上げシフトの24ビット(コンパイラによって計算された定数)を単に書き込む。これは、プロセッサオーバヘッドをほとんど用いない。
・デバッガは、文字列表で8ビット指標を調べることによって入ってくる値を解釈し、そして、ログウィンドウ及び/又はファイルにそれらを提示する。ログウィンドウは、一覧表によるフィルタ処理及び分類を可能にする。ログウィンドウ及びファイルの双方は、更に、(取り込み装置からの)タイムスタンプも記録する。これは、事象間の相対的な時間尺度を与える。
過去、これらの同じアプリケーションにDCCを用いようとしてきた。しかしながら、これを行うと、主に3つの問題がある。即ち、
・性能の点で極めて非決定論的である。その流出速度は、単にJTAGエミュレータ及びSWが許された速度と同じである。ホストベースのエミュレータを実行する場合、これは、全く予測不可能である。これは、アプリケーションが、データを欠落させなければならないか(その場合、この記録はない)又は待機しなければならないか(アプリケーションを遮断する)の何れかを意味する。これは、スレッドに、この動作を実行させる(従って、スレッドだけが遮断される)ことによって、及び/又は、空の時、割り込みを用いさせることによって、ある程度克服し得る。双方の解決策は、やはりかなりの侵入を必要とする。
・CP14インターフェイスを必要とするため、また、上述した単一語の問題のため、合理的なインライン書き込みができない。これは、アプリケーションが、ルーチンを呼び出して必要な動作を実行しなければならないことを意味し、これによって、かなりのオーバヘッドが付加される。
・言及すべきツールサポートがない(DCCチャネルビューアは、唯一の‘非遮断’サポート用の実オプションである)。
従って、DCCは、UARTを用いることとほぼ等価であるが、決定論的な性能が劣っている。また最大DCC速度は、用いられるエミュレータによって、及びそれに用いられるSWによって甚大な影響を受ける。
取り込み装置は、時間測定を行う。新しいパケットの中から第1ビットの時間を決定することによって、測定を行い得る。取り込み装置は、直前に(ホストに)パケットを発信し、これは、(最後のパケットから)このパケットの前にどの程度の遅延があるかを示す。一旦、パケット列が到達すると(パケット列は、次のパケットの開始ビットが、前のパケットの停止ビットの直後にあることを意味し、これは、通常、FIFOアンロード処理による)、パケットの遅延マーカが用いられる。遅延値は、新しい値が到達した時、前の値がおよそどれくらいの間FIFOにあったか示す。遅延は、時間の2乗の指数関数であり(0=0−7、1=8−15、2=16−31等)、従って、合理的な測定を行うように調整し得る。
更に、マーカは、ETMからSWOに伝えられて相関分析が可能である。これは、事象を追跡するように(時間相関を得るために追跡ブロックの開始で値を書き込み、そして、後続の全出力にスタンプを押すように)ユーザ設定と関係付けることができる。そして、これによって、周期対時間の関係を記憶し得る。ETMに接続される適度な分解能時間(1ms)をこのように用いると、アプリケーションの文脈の追跡をより良く理解し得る。これは、ETMがタイムスタンプ(周期以外、時間と関係付けられず、いつでもそれらの意味を変更し得るもの)を提供するその能力を失うにつれて、真実味が増す。
タイムスタンプによって、刺激/応答、アプリケーションにおける2点間、HW事象からSW応答(ISR等)、ISRタイミング、割り込み待ち時間、及び符号プロファイリングの測定が可能である。標準的な時間尺度は、取り込みタイマーがオーバーフローする際、取り込み装置にパケットをホストに戻して挿入させることによって機能する。これによって、ホストは、絶対時間を得る。これらの余分なパケットは、パケット列がない時にのみ用いられるため、(取り込みからホストへの通信リンク上で無駄時間がないため)帯域幅コストがかからない。
本発明の実施形態に基づく4種類の取り込み装置を以下に概略説明する。
1.低速SWO用低コストUSB直結デシリアライザ。この装置は、メモリを一切持たないが、EPLD及びUSB装置を用いて、(タイムスタンプを除いて)パケットをそのまま返信する。この装置は、目標(SWO及び接地)に接続される2つのコネクタのみを必要とする。特にマイクロコントローラに適している。
2.高速SWO用の高速取り込み装置。これは、追加の別個のクロックピンを用いて100MHz(程度)まででデータを収集する。USB2又は100Base10等のホストへのより高速の通信チャネル、又は必要な場合、組み込みバッファ処理の何れかを用いる。
3.ETM追跡収集ボックス。これは、高速SWO信号をそのまま、又はETMv3にパケット化したデータストリームを収集する。
4.RVI等の高機能エミュレータは、余分なピンを用いた低速SWOの収集に用い得る。これは、ローカルメモリへの収集を可能にし、そして、RV−msgを介したホストへのオフロードを可能にする。RVIボックスが、(タイムスタンプ以外の)データを予め処理する必要がある可能性はない。
図4に示したように、論理設計は、コアが、内部“メモリ” の32語を参照することである。これらは、0又は低待機状態であるべきである(書き込みバッファでは0が効果的)。これによって、アプリケーションは、32ビットデータ語を有するマップ化領域内でオフセット0乃至31に書き込み得る。装置は、“モジュロ”アドレス(((addr−base)≫2)&0x1Fとして)プラス32ビット語を記録する。余分なマップ化レジスタは、制御及びステータス用である。
SWO構成要素は、電力の浪費を回避するために、パワーアップに関してディスエーブル状態になる(しかしながら、それでも書き込み可能、影響は全くない)。受動的な用途(実行制御ボックスなし)の場合、アプリケーションは、起動符号で、又は(ストラップピン又は起動EEPROM/フラッシュ設定等)何らかの検出機構に基づき、それをイネーブル状態にする。これは、SWOが(コア又はMemTAPを介して)実行制御エミュレータによってイネーブル状態にされるか、又はアプリケーションがそれ自体をイネーブル状態にするかの何れかを意味する。
図5は、集積回路に接続し得る診断データ取り込み装置を概略的に示す。この外形は、円柱状であり、一端がPCBコネクタに接続されるケーブルであり、他端が、USBプラグ等のコンピュータ接続部である回路を含む。データ取り込み回路50内では、デシリアライザが、集積回路からシリアル診断データストリームを受信する。パケット化器が、デシリアライザ52からバイトストリームを取り入れ、それ自体のクロックを付加し、またある期間、データがない場合、ハートビートも送出する。またそれがオーバーフローしたか(通信がそれを空にできるよりも速くデータが到着する)どうかを示すためにパケットも発信する。好適な実現形態では、ハートビートは、如何なる場合でも固定期間毎に常に送信されることに留意されたい。このことは、長いデータ列が到着する場合、時間の経過と共に歪みがない(ハートビートのパケットに対して時間を再基線化する)ことを保証する。通信装置56(USB)は、パケット化器54から診断データを取り入れ、汎用コンピュータ(例えば、PC)にこれを送信して更に分析する。
本発明の実施形態に基づく診断データ取り込み回路を含む集積回路を示す概略図。 本発明の実施形態に基づくカウントデータ入力部とハードウェア出力部とを含む診断データ取り込み回路が含まれる集積回路を示す概略図。 本発明の実施形態に基づく単線出力部を有する診断取り込み装置によって出力されるデータを受信するための装置を示す図。 本発明の実施形態による単線出力インターフェイスの論理モデルを示す図。 診断データ取り込み装置を示す概略図。
符号の説明
10・・・集積回路、15・・・診断データ取り込み回路、20・・・機能回路、25・・・システムバス。

Claims (35)

  1. 集積回路であって、
    データ処理動作を行うように動作可能な1つ又は複数の機能回路と、
    前記1つ又は複数の機能回路によって生成されるデータ語と、前記データ語に関連する前記1つ又は複数の機能回路の文脈を表す文脈語と、を含む値の診断データフィールドをバスから取り込むようにバススレーブとして動作可能な診断データ取り込み回路と、
    前記診断データフィールドをシリアル化して前記集積回路から外部診断装置に前記診断データフィールドを出力するように動作可能な診断データ直列出力回路と、が含まれ、
    前記機能回路の内の少なくとも1つ上で動作するプログラム命令が、前記診断データフィールドが生成されるようにし、
    前記プログラム命令は、前記データ語及び前記文脈語が取り込まれる前記バス上でバススレーブとして動作する前記診断データ取り込み回路へのバストランザクションが生成されるようにする集積回路。
  2. 請求項1に記載した集積回路であって、
    複数の機能回路を含み、前記バスは、前記複数の機能回路を相互接続する機能バスである集積回路。
  3. 請求項2に記載した集積回路であって、
    前記機能バスは、データ部とアドレス部とを含み、前記データ語は、前記データ部から取り込まれ、前記文脈語は、前記アドレス部から取り込まれる集積回路。
  4. 請求項3に記載した集積回路であって、
    前記文脈語は、前記バスの前記アドレス部上のアドレスの一部である集積回路。
  5. 請求項1に記載した集積回路であって、
    前記バスは、前記データ語及び前記文脈語用の信号を少なくとも1つの機能回路から前記診断データ取り込み回路に伝える専用の診断バスである集積回路。
  6. 請求項3、4、及び5のいずれか1つに記載した集積回路であって、
    前記データ語及び前記文脈語用の信号を少なくとも1つの機能回路から前記診断データ取り込み回路に伝える専用の診断バスである少なくとも1つのバスを含む複数のバスが含まれる集積回路。
  7. 請求項1乃至6のいずれか1つに記載した集積回路であって、
    前記診断データ取り込み回路には、シリアル化され前記診断データ直列出力回路によって出力される前に診断データフィールドが記憶される先入れ先出しバッファが含まれる集積回路。
  8. 請求項1乃至7のいずれか1つに記載した集積回路であって、
    前記診断データフィールドには、更に、前記データ語に関連する時間値を示すタイミング語が含まれる集積回路。
  9. 請求項8に記載した集積回路であって、
    前記時間値は、前記診断データ直列出力回路によって依然出力されている任意の以前取り込んだ診断データフィールドの取り込み後の時間期間を示すカウント値である集積回路。
  10. 請求項9に記載した集積回路であって、
    前記診断データ取り込み回路による1つ又は複数の診断データフィールドの取り込みが、失敗したかどうか示す役割をも前記時間値が果たすように、前記集積回路は動作可能である集積回路。
  11. 請求項1乃至10のいずれか1つに記載した集積回路であって、
    前記診断データ直列出力回路は、単一の診断データ直列出力信号線上で前記語を出力する集積回路。
  12. 請求項1乃至11のいずれか1つに記載した集積回路であって、
    前記診断データ直列出力回路は、クロック信号線上のクロック信号と共に、単一の診断データ直列出力信号線上で前記診断語を出力する集積回路。
  13. 請求項1乃至12のいずれか1つに記載した集積回路であって、
    前記診断データ取り込み回路は、所定のアドレス特性に整合するアドレスに関連する前記バス上のバストランザクションを取り込むように動作可能である集積回路。
  14. 請求項13に記載した集積回路であって、
    前記所定のアドレス特性は、前記アドレスが所定アドレス範囲内に入ることである集積回路。
  15. 請求項14に記載した集積回路であって、
    前記文脈語は、前記所定アドレス範囲内の前記アドレスの位置を示す指標値である集積回路。
  16. 請求項1乃至15のいずれか1つに記載した集積回路であって、
    前記診断データ取り込み回路には、プログラム可能なマスク値を用いて、取り込み対象の診断データフィールドを選択するように動作可能なマスク回路が含まれる集積回路。
  17. 集積回路から診断データを受信するための診断装置であって、
    前記集積回路内のバスから取り込まれる値の診断データフィールドを表すシリアルデータを受信するように動作可能な診断データシリアルデータ受信器と、
    前記診断データフィールドを復号化して、そこで、データ語を識別し、また、前記データ語に関連する前記1つ又は複数の機能回路の文脈を表す文脈語を識別するように動作可能な診断データ復号器と、が含まれ、
    前記診断データ復号器によって復号される前記診断データフィールドには、更に、前記診断データ語に関連する時間値を示すタイミング語が含まれる診断装置。
  18. 請求項17に記載した診断装置であって、
    前記診断データ直列データ受信器は、単一の診断データ直列入力信号線上で前記語を受信する診断装置。
  19. 請求項17及び18のいずれか1つに記載した診断装置であって、
    前記診断データ直列データ受信器は、クロック信号線上のクロック信号と共に、単一の診断データ直列出力信号線上で前記診断語を受信する診断装置。
  20. 集積回路の1つ又は複数の機能回路によって行われる1つ又は複数のデータ処理動作を表す診断データを生成するための方法であって、
    前記1つ又は複数の機能回路によって生成されるデータ語と、前記データ語に関連する前記1つ又は複数の機能回路の文脈を表す文脈語と、を含む値の診断データフィールドをバススレーブとして動作可能な診断データ取り込み回路を用いてバスから取り込む段階と、
    前記診断データフィールドをシリアル化する段階と、
    前記集積回路から外部診断装置に前記診断データフィールドを出力する段階と、が含まれ、
    前記機能回路の内の少なくとも1つ上で動作するプログラム命令が、前記診断データフィールドが生成されるようにし、
    前記プログラム命令は、前記データ語及び前記文脈語がバススレーブとして取り込まれる前記バスへのバストランザクションが生成されるようにする方法。
  21. 請求項20に記載した方法であって、
    前記集積回路は、複数の機能回路を含み、前記バスは、前記複数の機能回路を内部接続する機能バスである方法。
  22. 請求項21に記載した方法であって、
    前記機能バスは、データ部とアドレス部とを含み、前記データ語は、前記データ部から取り込まれ、前記文脈語は、前記アドレス部から取り込まれる方法。
  23. 請求項22に記載した方法であって、
    前記文脈語は、前記バスの前記アドレス部上のアドレスの一部である方法。
  24. 請求項20に記載した方法であって、
    前記バスは、前記データ語及び前記文脈語用の信号を少なくとも1つの機能回路から前記診断データ取り込み回路に伝える専用の診断バスである方法。
  25. 請求項22乃至24のいずれか1つに記載した方法であって、
    前記集積回路には、前記データ語及び前記文脈語用の信号を少なくとも1つの機能回路から前記診断データ取り込み回路に伝える専用の診断バスである少なくとも1つのバスを含む複数のバスが含まれる方法。
  26. 請求項20乃至25のいずれか1つに記載した方法であって、
    診断データフィールドをシリアル化する前に、先入れ先出しバッファに前記診断データフィールドをバッファ処理する段階が含まれる方法。
  27. 請求項20乃至26のいずれか1つに記載した方法であって、
    前記診断データフィールドには、更に、前記診断データ語に関連する時間値を示すタイミング語が含まれる方法。
  28. 請求項27に記載した方法であって、
    前記時間値は、依然出力されている任意の以前取り込んだ診断データフィールドの取り込み後の時間期間を示すカウント値である方法。
  29. 請求項28に記載した方法であって、
    前記診断データ取り込み回路による1つ又は複数の診断データフィールドの取り込みが、失敗したかどうか示す役割をも前記時間値が果たすように前記集積回路が動作可能である方法。
  30. 請求項20乃至29のいずれか1つに記載した方法であって、
    前記診断データフィールドは、単一の診断データ直列出力信号線上で出力される方法。
  31. 請求項20乃至30のいずれか1つに記載した方法であって、
    前記診断データフィールドは、クロック信号線上のクロック信号と共に、単一の診断データ直列出力信号線上で出力される方法。
  32. 請求項20乃至31のいずれか1つに記載した方法であって、
    所定のアドレス特性に整合するアドレスに関連する前記バス上のバストランザクションが取り込まれる方法。
  33. 請求項32に記載した方法であって、前記所定のアドレス特性は、前記アドレスが所定アドレス範囲内に入ることである方法。
  34. 請求項33に記載した方法であって、
    前記文脈語は、前記所定アドレス範囲内の前記アドレスの位置を示す指標値である方法。
  35. 請求項20乃至34のいずれか1つに記載した方法であって、
    プログラム可能なマスク値を用いて、取り込み対象の診断データフィールドを選択する方法。
JP2006333724A 2003-04-17 2006-12-11 集積回路内の診断データ取り込み Withdrawn JP2007066336A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/417,329 US7278073B2 (en) 2003-04-17 2003-04-17 Diagnostic data capture within an integrated circuit

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2004571049A Division JP4633474B2 (ja) 2003-04-17 2003-09-17 集積回路内の診断データ取り込み

Publications (1)

Publication Number Publication Date
JP2007066336A true JP2007066336A (ja) 2007-03-15

Family

ID=33158876

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2004571049A Expired - Lifetime JP4633474B2 (ja) 2003-04-17 2003-09-17 集積回路内の診断データ取り込み
JP2006333724A Withdrawn JP2007066336A (ja) 2003-04-17 2006-12-11 集積回路内の診断データ取り込み

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2004571049A Expired - Lifetime JP4633474B2 (ja) 2003-04-17 2003-09-17 集積回路内の診断データ取り込み

Country Status (10)

Country Link
US (1) US7278073B2 (ja)
EP (1) EP1614043B1 (ja)
JP (2) JP4633474B2 (ja)
KR (1) KR100954568B1 (ja)
CN (1) CN100409199C (ja)
AU (1) AU2003267576A1 (ja)
MY (1) MY135189A (ja)
RU (1) RU2005131947A (ja)
TW (1) TWI278636B (ja)
WO (1) WO2004095280A2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7444571B1 (en) * 2003-02-27 2008-10-28 Marvell International Ltd. Apparatus and method for testing and debugging an integrated circuit
US7216276B1 (en) 2003-02-27 2007-05-08 Marvell International Ltd. Apparatus and method for testing and debugging an integrated circuit
US7496818B1 (en) 2003-02-27 2009-02-24 Marvell International Ltd. Apparatus and method for testing and debugging an integrated circuit
US7278073B2 (en) * 2003-04-17 2007-10-02 Arm Limited Diagnostic data capture within an integrated circuit
US7328375B2 (en) * 2003-12-30 2008-02-05 Intel Corporation Pass through debug port on a high speed asynchronous link
EP1922555B1 (en) 2005-08-09 2014-10-08 Texas Instruments Incorporated Selectable jtag or trace access with data store and output
KR100731982B1 (ko) * 2005-12-26 2007-06-25 전자부품연구원 Amba 인터페이스를 사용한 시스템의 장애 복구 장치 및복구 방법
CN101438250A (zh) * 2006-03-09 2009-05-20 Arm有限公司 用于生成跟踪数据的设备、方法和计算机程序产品
KR100869953B1 (ko) * 2007-05-30 2008-11-24 경북대학교 산학협력단 Etm 인터페이스를 이용한 전력 측정 시스템 및 그 방법
US20090222797A1 (en) * 2008-02-29 2009-09-03 Infineon Technologies Ag Apparatus and method for providing a trigger
TWI405969B (zh) * 2009-05-08 2013-08-21 Accton Wireless Broadband Corp 管線式元件測試系統及其方法
US8250243B2 (en) * 2010-06-24 2012-08-21 International Business Machines Corporation Diagnostic data collection and storage put-away station in a multiprocessor system
US8954809B2 (en) * 2012-07-25 2015-02-10 Texas Instruments Incorporated Method for generating descriptive trace gaps
CN103412810B (zh) * 2013-07-24 2016-05-04 中国航天科工集团第三研究院第八三五七研究所 一种可测试内部信号的系统封装芯片及测试方法
US9396089B2 (en) * 2014-05-30 2016-07-19 Apple Inc. Activity tracing diagnostic systems and methods
US11475191B2 (en) 2019-05-15 2022-10-18 International Business Machines Corporation Generating and adding additional control information to logic under test to facilitate debugging and comprehension of a simulation
CN114200284A (zh) * 2021-10-28 2022-03-18 成绎半导体(苏州)有限公司 一种集成电路的测试校准方法

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02161537A (ja) * 1988-05-23 1990-06-21 Nec Corp I/oアクセスインターバルトレース回路
JPH0433137A (ja) * 1990-05-29 1992-02-04 Mitsubishi Electric Corp データ処理装置
JPH05241880A (ja) * 1992-02-26 1993-09-21 Hitachi Ltd マイクロプロセッサ、及びエミュレータ
JPH06174802A (ja) * 1992-12-03 1994-06-24 Kawasaki Steel Corp Cpu搭載集積回路及びデバッガ
JPH07230432A (ja) * 1994-02-16 1995-08-29 Mitsubishi Electric Corp 計算装置
JPH08292898A (ja) * 1995-04-24 1996-11-05 Ricoh Co Ltd マイクロコンピュータ及びデバック装置
JPH09305444A (ja) * 1996-05-15 1997-11-28 Oki Electric Ind Co Ltd カバレッジメモリ
JPH10214201A (ja) * 1997-01-29 1998-08-11 Mitsubishi Electric Corp マイクロコンピュータ
JPH11249929A (ja) * 1997-12-19 1999-09-17 Siemens Ag プログラム制御されるユニット
JP2002024201A (ja) * 2000-07-10 2002-01-25 Toshiba Corp 半導体集積回路
JP2002304291A (ja) * 2001-02-26 2002-10-18 Arm Ltd 命令セットの情報を格納するための装置及び方法
JP2006514376A (ja) * 2003-04-17 2006-04-27 アーム・リミテッド 集積回路内の診断データ取り込み

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5488688A (en) * 1994-03-30 1996-01-30 Motorola, Inc. Data processor with real-time diagnostic capability
US5771240A (en) * 1996-11-14 1998-06-23 Hewlett-Packard Company Test systems for obtaining a sample-on-the-fly event trace for an integrated circuit with an integrated debug trigger apparatus and an external pulse pin
GB9704068D0 (en) 1997-02-27 1997-04-16 Sgs Thomson Microelectronics Trigger sequencing controller
US6026503A (en) 1997-08-12 2000-02-15 Telrad Communication And Electronic Industries Ltd. Device and method for debugging systems controlled by microprocessors
US6820051B1 (en) * 1999-02-19 2004-11-16 Texas Instruments Incorporated Software emulation monitor employed with hardware suspend mode
US6779145B1 (en) 1999-10-01 2004-08-17 Stmicroelectronics Limited System and method for communicating with an integrated circuit
JP2002202900A (ja) * 2000-12-28 2002-07-19 Seiko Epson Corp デバッグ装置
US7099818B1 (en) * 2002-03-29 2006-08-29 Cypress Semiconductor Corporation System and method for automatically matching components in a debugging system

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02161537A (ja) * 1988-05-23 1990-06-21 Nec Corp I/oアクセスインターバルトレース回路
JPH0433137A (ja) * 1990-05-29 1992-02-04 Mitsubishi Electric Corp データ処理装置
JPH05241880A (ja) * 1992-02-26 1993-09-21 Hitachi Ltd マイクロプロセッサ、及びエミュレータ
JPH06174802A (ja) * 1992-12-03 1994-06-24 Kawasaki Steel Corp Cpu搭載集積回路及びデバッガ
JPH07230432A (ja) * 1994-02-16 1995-08-29 Mitsubishi Electric Corp 計算装置
JPH08292898A (ja) * 1995-04-24 1996-11-05 Ricoh Co Ltd マイクロコンピュータ及びデバック装置
JPH09305444A (ja) * 1996-05-15 1997-11-28 Oki Electric Ind Co Ltd カバレッジメモリ
JPH10214201A (ja) * 1997-01-29 1998-08-11 Mitsubishi Electric Corp マイクロコンピュータ
JPH11249929A (ja) * 1997-12-19 1999-09-17 Siemens Ag プログラム制御されるユニット
JP2002024201A (ja) * 2000-07-10 2002-01-25 Toshiba Corp 半導体集積回路
JP2002304291A (ja) * 2001-02-26 2002-10-18 Arm Ltd 命令セットの情報を格納するための装置及び方法
JP2006514376A (ja) * 2003-04-17 2006-04-27 アーム・リミテッド 集積回路内の診断データ取り込み

Also Published As

Publication number Publication date
EP1614043A2 (en) 2006-01-11
AU2003267576A1 (en) 2004-11-19
JP4633474B2 (ja) 2011-02-16
JP2006514376A (ja) 2006-04-27
AU2003267576A8 (en) 2004-11-19
EP1614043B1 (en) 2016-06-08
KR100954568B1 (ko) 2010-04-23
CN1764903A (zh) 2006-04-26
RU2005131947A (ru) 2006-03-20
US7278073B2 (en) 2007-10-02
TWI278636B (en) 2007-04-11
WO2004095280A3 (en) 2005-02-24
WO2004095280A2 (en) 2004-11-04
KR20060004946A (ko) 2006-01-16
CN100409199C (zh) 2008-08-06
TW200422625A (en) 2004-11-01
MY135189A (en) 2008-02-29
US20040210804A1 (en) 2004-10-21

Similar Documents

Publication Publication Date Title
JP2007066336A (ja) 集積回路内の診断データ取り込み
US7886271B2 (en) Embedding event information in the timing stream
US7209058B2 (en) Trace receiver data compression
US7274313B2 (en) High speed data recording with input duty cycle distortion
US7739669B2 (en) Paced trace transmission
US7710969B2 (en) Rapid I/O traffic system
US7797685B2 (en) Method for generating timing data packet
US20060255980A1 (en) Behavior of Trace in Non-Emulatable Code
US7555681B2 (en) Multi-port trace receiver
US7788645B2 (en) Method for guaranteeing timing precision for randomly arriving asynchronous events
US20060282719A1 (en) Unique Addressable Memory Data Path
US20060255978A1 (en) Enabling Trace and Event Selection Procedures Independent of the Processor and Memory Variations
US20060256877A1 (en) Rapid I/O Compliant Message Mapper
US20060279443A1 (en) Trading Off Visibility for Volume of Data When Profiling Memory Events
US7555682B2 (en) Distributed width trace receiver
US7676697B2 (en) Using a delay line to cancel clock insertion delays
US20060268714A1 (en) Rapid I/O Compliant Congestion Control
US20060273944A1 (en) System With Trace Capability Accessed Through the Chip Being Traced
US7613951B2 (en) Scaled time trace
US20060267815A1 (en) Debug Tool Communication Through a Tool to Tool Connection
US20060256876A1 (en) Fast Decode of Pending Interrupts

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061211

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090106

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090325

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090330

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090706

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A132

Effective date: 20100713

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101008

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101014

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20101029