JP4608276B2 - トレース制御回路、マイクロプロセッサ及びトレース制御方法 - Google Patents

トレース制御回路、マイクロプロセッサ及びトレース制御方法 Download PDF

Info

Publication number
JP4608276B2
JP4608276B2 JP2004291078A JP2004291078A JP4608276B2 JP 4608276 B2 JP4608276 B2 JP 4608276B2 JP 2004291078 A JP2004291078 A JP 2004291078A JP 2004291078 A JP2004291078 A JP 2004291078A JP 4608276 B2 JP4608276 B2 JP 4608276B2
Authority
JP
Japan
Prior art keywords
information
load
trace control
microprocessor
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004291078A
Other languages
English (en)
Other versions
JP2006107004A (ja
Inventor
修司 佐藤
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2004291078A priority Critical patent/JP4608276B2/ja
Priority to US11/240,766 priority patent/US7647532B2/en
Publication of JP2006107004A publication Critical patent/JP2006107004A/ja
Application granted granted Critical
Publication of JP4608276B2 publication Critical patent/JP4608276B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware
    • 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/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency

Landscapes

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

Description

本発明は、マイクロプロセッサのトレースを行うためのトレース制御回路に関する。
従来からマイクロプロセッサのデバッグを行う手法として、マイクロプロセッサの命令実行状況やデータアクセス状況を外部から“トレース“することが行われている。トレースは、マイクロプロセッサが出力するプログラムカウンタ(PC)の値、アクセスするメモリアドレス等のデータをプロセッサと接続したトレース制御回路において収集することにより行われる。
一方、マイクロプロセッサの命令実行を高速化する手法にパイプラインがある。パイプラインとは、マイクロプロセッサで実行される各ステージ、例えば、命令フェッチ(IF)、命令解読(ID)、命令実行(EX)、メモリアクセス(MEM)、ライトバック(WB)の各ステージを並列に実行することにより、マイクロプロセッサの処理速度を向上する技術であり、多くのマイクロプロセッサにおいて採用されている。また、パイプライン構成を採用したマイクロプロセッサの命令処理速度をさらに向上させる手法に、ノンブロッキングアクセス及びリオーダリングアクセスがある。
ノンブロッキングアクセスとは、ロード/ストア命令の実行時に、実行する複数のロード/ストア命令間に依存関係がなければ、先に実行された命令のメモリアクセスが完了するのを待たずに次の命令を実行する動作を指す。他方、リオーダリングアクセスとは、ロード/ストア命令に依存関係がなければ命令の実行順番とは無関係にデータアクセスサイクル完了する動作を指す。例えば、メモリアクセス速度の異なる複数のメモリがある場合は、マイクロプロセッサとメモリ間の制御バス、アドレスバス及びデータバス(以下では、まとめてメモリバスと呼ぶ)もそれぞれ独立に存在するから、それぞれのメモリに対するデータアクセスサイクルの発行を独立に行うことができる。つまり、あるメモリに対するデータアクセスサイクルの完了を待つことなく、別のメモリに対してデータアクセスサイクルを発行することが可能である。
このようにノンブロッキングアクセス及びリオーダリングアクセスを行うマイクロプロセッサでは、メモリアクセス速度の違いによって、命令実行順序(データアクセスサイクルの発行順序)とデータアクセスサイクルが完了する順序が一致しない場合がある。例えば、メモリアクセス速度の異なる2つのメモリ(高速メモリ及び低速メモリ)がある場合に、低速メモリに対するデータアクセスサイクルが先に発行され、高速メモリに対するデータアクセスサイクルが後に発行されると、低速メモリに対するデータアクセスサイクルより先に高速メモリに対するデータアクセスサイクルが完了する場合がある。
ノンブロッキングアクセス及びリオーダリングアクセスを行う従来のマイクロプロセッサ30と従来のトレース制御回路35によるロード/ストア命令実行時のトレース動作について図3及び図4を用いて説明する。図3は、マイクロプロセッサ30及びトレース制御回路35の構成を示したものである。
始めに、マイクロプロセッサ30の構成を説明する。命令実行制御部301は命令実行を制御する回路であり、ロード命令が実行されると、メモリアクセス制御部302に対して、実行プログラムカウンタ値(PC)、アクセスアドレス(A)、R/W情報(RW)、アクセスサイズ(S)と、ストア命令の場合はさらにライトデータ情報(WD)を出力する。これらの情報を以下ではデータアクセス情報と呼ぶ。また、これらのデータアクセス情報は出力端子群309にも出力される。出力端子群309に出力されるデータアクセス情報は、トレース制御回路35においてトレースデータとして収集されると共に、後述する出力端子群310から出力されるライトバック情報との対応付けを行うためのインデックス情報として使用される。
メモリアクセス制御部302は、高速メモリ306及び低速メモリ307に対してデータアクセスを行う回路である。データアクセス情報は、命令実行制御部301から入力選択部303に入力される。入力選択部303は、ロード/ストアバッファ304が備える複数のバッファ、図3ではバッファA乃至バッファDの4つのバッファから、受信したデータアクセス情報を格納するバッファを選択する。ロード/ストアバッファ304は、複数のバッファ(図3ではバッファA乃至バッファDの4つのバッファ)を備えており、高速メモリ306又は低速メモリ307に対するデータアクセス情報を格納するとともに、ロード命令実行後に高速メモリ306又は低速メモリ307から読み出したリードデータ(RD)を格納する。
出力選択部305は、ロード/ストアバッファ304が備える複数のバッファから、ライトバック制御部308に出力するリードデータRDを選択する。また、出力選択部305は、選択したリードデータRDと当該リードデータRDに対応するデータアクセス情報であるPC値(RPC)、アクセスアドレス(RA)、R/W情報(RRW)及びリードデータサイズRSを、出力端子群310に対して出力する。以下では、出力端子群310に出力される情報をまとめてライトバック情報と呼ぶ。
ライトバック制御部308は、メモリアクセス制御部302から入力されたリードデータをマイクロプロセッサ30が備えるレジスタファイル(図示せず)に格納する。
マイクロプロセッサ30は、あるロード/ストア命令に引き続いて実行される命令がロード/ストア命令の結果に依存しない場合には、当該ロード/ストア命令の実行完了を待つことなく次の命令の実行を開始する(ノンブロッキングアクセス)。また、ロード/ストアバッファ304の備えるバッファA乃至Dのうち、複数のバッファにデータアクセス情報が格納されている場合、アクセス先メモリのメモリバスにデータアクセスサイクルが発行されておらず、かつ、複数のデータアクセス情報で表されるロード/ストア命令に依存関係がなければ、複数のメモリバスに並行してデータアクセスサイクルを発行する(リオーダリングアクセス)。従って、命令実行順序とは異なった順序でデータアクセスサイクルが完了する場合がある。
続いて、トレース制御回路35の構成を説明する。データアクセス情報検出部351は、マイクロプロセッサ30の出力端子群309から出力されるデータアクセス情報を、入力端子群357を介して受信する。データアクセス情報検出部351は、受信したデータアクセス情報(PC、A、RW、S及びストア命令の場合はWD)からトレース情報360を生成して出力する。さらに、データアクセス情報検出部351はトレース制御情報(TC)を生成し、受信したデータアクセス情報がロード命令に関するものであった場合、生成したトレース制御情報TCを入力選択部352に出力する。
ここで、トレース制御情報TCとは、マイクロプロセッサ30において実行される命令をトレースするか否か、つまり、トレース制御回路35で検出したデータアクセス情報及びライトバック情報を外部の解析装置に対して出力するか否かを示す情報である。トレース制御回路35では、トレース制御情報TCをトレース制御バッファ353に保持し、マイクロプロセッサ30におけるリードデータサイクル完了後に出力されるライトバック情報とトレース制御バッファ353に保持しておいたトレース制御情報とを対応付けることにより、ライトバック情報を出力するか否かを決定する。
入力選択部352は、トレース制御情報TCとデータアクセス情報(PC、A、RW、S)を受信して、トレース制御バッファ353が備える複数のバッファ(図3ではバッファA乃至バッファD)のいずれかに出力する。なお、出力先バッファの選択は、後述する出力選択部355によってトレース制御情報TCが選択・出力済みであるバッファを選択することにより行われる。
トレース制御バッファ353は、複数のバッファ(図3ではバッファA乃至バッファDの4つのバッファ)を備えており、入力選択部352から入力されるトレース制御情報TC及びデータアクセス情報を格納する。トレース制御情報TCと合わせてデータアクセス情報を保持する理由は、後述する比較・出力制御部354において、トレース制御情報TCとリードデータ情報を対応付けるためのインデックス情報としてデータアクセス情報を使用するためである。
比較・出力制御部354は、マイクロプロセッサ30の出力端子群310から出力されるライトバック情報(RPC、RA、RRW及びRS)を、入力端子群358を介して受信する。さらに、比較・出力制御部354は、受信したライトバック情報と、トレース制御バッファ353に保持されたデータアクセス情報とを比較し、ライトバック情報に対応するデータアクセス情報が格納されたバッファを選択する。またさらに、比較・出力制御部354は、選択したバッファ(図3ではバッファA乃至バッファDのいずれかのバッファ)に保持されたトレース制御情報TCを選択するよう出力選択部355に対して指示する。
出力選択部355は、比較・出力制御部354から指示されたバッファが保持するトレース制御情報TCを選択し、ライトバック情報検出部356に対して出力する。ライトバック情報検出部356は、マイクロプロセッサ30から入力端子群358を介してライトバック情報を受信し、受信したライトバック情報RPC、RA、RRW、RS及びRD)からトレース情報361を生成して出力する。なお、ライトバック情報検出部356は、外部の解析装置等にトレース情報361を出力するか否かをトレース制御情報TCで指示される内容に応じて決定する。
以上に説明したように、ノンブロッキングアクセス及びリオーダリングアクセスを行うマイクロプロセッサ30をトレースするためのトレース制御回路35では、トレース制御情報TCとリードデータRDを対応付けるインデックス情報としてデータアクセス情報(PC、A、RW、S)及びライトバック情報(RPC、RA、RRW、RS)を使用する。以下では、トレース制御情報TCとリードデータRDとの対応付け動作について、図4を用いて詳しく説明する。
図4は、マイクロプロセッサ30で実行されるロード命令1、ロード命令2、ロード命令3及びロード命令4が、マイクロプロセッサ30において順次実行開始される場合を示している。EXステージにおいてロード命令が実行されるとトレース制御回路35はデータアクセス情報を受信し、トレース情報360を生成して出力する。図4のトレース制御バッファ353A乃至353Dは、トレース制御バッファ353が備えるバッファA乃至バッファDを示している。バッファ353A乃至353Dには、データアクセス情報検出部351で生成されたトレース制御情報TC1乃至TC4と、インデックス情報として使用されるデータアクセス情報が格納される。なお、図4では、ロード命令1及び2はトレースを行い、ロード命令3及び4はトレースを行わない場合を示している。このため、ロード命令1及び2に対応するトレース制御情報TC1及びTC2は“ON”、ロード命令3及び4に対応するトレース制御情報TC3及びTC4は“OFF”となっている。
マイクロプロセッサ30はリオーダリングアクセス行うため、ロード命令1乃至4が順次実行開始された場合の実行開始順序と、MEMステージにおいてデータアクセスサイクルが完了するまで順序が一致するとは限らない。図4の完了1乃至4は、それぞれロード命令1乃至4に対するデータアクセスサイクルが完了するタイミング(MEMステージの完了タイミング)を表しており、ロード命令1、3、4、2の順でデータアクセスサイクルが完了する場合を示している。
トレース制御回路35は、データアクセス回路完了順に出力されるライトバック情報41乃至44とトレース制御情報TC1乃至T4との対応付けを行う。まず始めにロード命令1のデータアクセスサイクルが完了し、トレース制御回路35はライトバック情報41を受信する。比較・出力制御部354は、受信したライトバック情報41とバッファ353A乃至353Dに格納されたデータアクセス情報の比較を行い、ライトバック情報41に対応するロード命令1によるデータアクセス情報を格納するバッファ353Aを選択する。ライトバック情報検出回路356は、選択されたバッファ353Aに格納されたトレース制御情報TC1に従って、トレース情報361を出力するか否かを決定する。ライトバック情報42乃至44についてもライトバック情報41と同様に比較が行われ、対応付けられたトレース制御情報TCに基づいてトレース情報361を出力するか否かが決定される。
特開2000−20345号公報 特開平10−240570号公報 特開平6−161818号公報
上述したように、従来のノンブロッキングアクセス及びリオーダリングアクセスを行うマイクロプロセッサと接続されるトレース制御回路では、ロード命令をトレースする際に実行PC、アクセスアドレス、R/W情報、リードデータサイズ等の多くの情報をインデックス情報として保持する必要があるという課題がある。
ロード命令のトレース時に実行PC、アクセスアドレス、R/W情報、リードデータサイズ等をインデックス情報として使用するトレース方法では、トレース制御情報と合わせてインデックス情報保持しなければならないため、これらを格納するトレース制御バッファの容量が大きくなってしまう。
また、マイクロプロセッサがループ処理を実行する場合には、同じPC値の命令によって同じアドレスに対して繰り返しロード命令を実行する場合がある。このような場合には、複数のロード命令のデータアクセス情報が同一となってしまう。このため、ロード命令実行後にマイクロプロセッサから出力されるライトバック情報とトレース制御バッファにインデックス情報として保持したデータアクセス情報との一致のみでは、トレース制御情報とリードデータ情報の対応付けができず、同じ値を持つデータアクセス情報から最も古いものを選択する処理が必要になる。例えば、トレース制御バッファに格納された順序を示すシーケンス番号や格納時間を示すタイムスタンプ情報等による比較処理を行わなければならない。
本発明にかかるトレース制御回路は、マイクロプロセッサのトレースを行うトレース制御回路であって、前記マイクロプロセッサでのロード命令の実行に使用されるロードバッファを識別する識別情報に基づいて、命令実行時のトレース情報と命令実行後のトレース情報との対応付けを行うものである。
上述した本発明にかかるトレース制御回路では、命令実行時のトレース情報であるトレース制御情報と命令実行後のトレース情報であるリードデータ情報との対応付けを、マイクロプロセッサから受信したロード/ストアバッファを識別する識別情報に基づいて行うことができる。このため、従来のトレース制御回路においてインデックス情報としていた冗長なデータアクセス情報をトレース制御バッファに保持する必要がない。
また、マイクロプロセッサにおいてデータアクセスサイクルが完了するまでは、同一のロード/ストアバッファが複数のロード命令の実行に使用されることはない。このため、データアクセスサイクルの終了後に、リードデータ情報がマイクロプロセッサからトレース制御回路に対して出力されるまでは、ロード/ストアバッファは1つのロード命令の実行に排他的に使用されていることになる。したがって、本発明にかかるトレース制御回路では、ロードストアバッファの識別情報に基づいてトレース制御情報とリードデータ情報とを一意的に対応付けることができる。これにより、従来のトレース制御回路で必要であった同じ値を持つデータアクセス情報から最も古いものを選択する処理に相当する処理を行わなくても、トレース制御情報とライトバック情報の対応付けが可能となる。
本発明により、ノンブロッキングアクセス及びリオーダリングアクセスを行うマイクロプロセッサが実行するロード命令をトレースする際に、実行PC、アクセスアドレス、R/W情報、リードデータサイズ等の多くの情報をインデックス情報として保持する必要がなくなる。
発明の実施の形態1.
本実施の形態にかかるマイクロプロセッサ10及びトレース制御回路15の構成を図1に示す。本実施の形態にかかるマイクロプロセッサ10は、ノンブロッキングアクセス及びリオーダリングアクセスを行うプロセッサであり、ロード/ストアバッファ104が備える各バッファを識別可能なロード/ストアバッファIDを出力する出力端子109及び111を備えている。また、マイクロプロセッサ10は、ロード/ストア命令実行時にデータアクセス情報を格納したバッファのロード/ストアバッファIDをデータアクセス情報とともに出力する。さらに、ロード命令の場合にはデータアクセスサイクルが完了した後、リードデータ情報と合わせてデータアクセスに使用したロード/ストアバッファのロード/ストアバッファIDを出力する。一方、トレース制御回路15は、マイクロプロセッサ10から受信するロード/ストアバッファIDとトレース制御バッファ153が備える各バッファとが一対一に対応付けられていることを特徴としている。
始めに、マイクロプロセッサ10の構成を説明する。なお、従来のマイクロプロセッサ30と同様に動作する命令実行制御部301、高速メモリ306、低速メモリ307、ライトバック制御部308及び出力端子群309に対しては図3で用いた記号と同様の記号を付与し、詳細な説明を省略する。メモリアクセス制御部102は、高速メモリ306及び低速メモリ307に対してデータアクセスを行う回路である。命令実行制御部301から入力選択部103に対して、データアクセス情報であるアクセスアドレス(A)、R/W種別(RW)、データサイズ(S)、さらにストア命令の場合はライトデータ(WD)が入力される。なお、従来のマイクロプロセッサ30では、入力選択部303に対してPC値も入力していたが、本実施の形態にかかるマイクロプロセッサ10では、PC値をインデックス情報として使用しないため、PC値をメモリアクセス制御部102において保持する必要はない。
入力選択部103は、受信したデータアクセス情報を格納するバッファを、ロード/ストアバッファ104が備える複数のバッファ、図1ではバッファA乃至バッファDの4つのバッファから選択する。さらに、入力選択部103は、選択したバッファのロード/ストアバッファID(AID)を出力端子109に出力する。
ロード/ストアバッファ104は、複数のバッファ(図1ではバッファA乃至バッファDの4つのバッファ)を備えており、高速メモリ306又は低速メモリ307に対するデータアクセス情報を格納するとともに、ロード命令実行後に高速メモリ306又は低速メモリ307から読み出したリードデータ(RD)を格納する。
出力選択部105は、ロード/ストアバッファ104が備える複数のバッファから、ライトバック制御部308に出力するリードデータRDを格納したバッファを選択し、当該リードデータRDをライトバック制御部308及び出力端子110に出力する。さらに、出力選択部105は、ライトバック制御部308に出力したリードデータRDを格納していたバッファのロード/ストアバッファID(RID)を出力端子111に出力する。
続いて、トレース制御回路15の構成を説明する。データアクセス情報検出部151は、マイクロプロセッサ10の出力端子群309から出力されるデータアクセス情報及び出力端子109から出力されるAIDを、入力端子群357及び入力端子157を介して受信する。データアクセス情報検出部151は、受信したデータアクセス情報(PC、A、RW、S及びストア命令の場合はWD)及びAIDからトレース情報160を生成して出力する。さらに、データアクセス情報検出部151はトレース制御情報(TC)を生成し、受信したデータアクセス情報がロード命令に関するものであった場合、生成したトレース制御情報TCを入力選択部152に出力する。
入力選択部152は、トレース制御情報TCとAIDを受信して、トレース制御バッファ153が備える複数のバッファ(図1ではバッファA乃至バッファD)のいずれかに格納する。ここで、トレース制御バッファ153は、少なくともロード/ストアバッファ104が備えるバッファ数と同数のバッファを備えており、トレース制御情報TCは、受信したAIDと一対一に対応付けられたバッファに格納される。例えば、ロード/ストアバッファ104が備えるバッファA乃至Dのそれぞれが、トレース制御バッファ153が備えるバッファA乃至Dと対応付けられることとし、受信したAIDがロード/ストアバッファ104のバッファAを示すものであれば、トレース制御情報TCをトレース制御バッファ153のバッファAに格納することとすればよい。
出力選択部154は、マイクロプロセッサ10の出力端子111から出力されるRIDを、入力端子159を介して受信する。さらに、出力選択部154は、トレース制御バッファ153の備えるバッファから、受信したRIDに対応するバッファを一意的に選択する。上述した例に従えば、受信したRIDがロード/ストアバッファ104のバッファAを示すものであれば、トレース制御バッファ153のバッファAを選択する。出力選択部154は、選択したバッファに格納されたトレース制御情報TCを、ライトバック情報検出部156に出力する。
ライトバック情報検出部156は、マイクロプロセッサ10から入力端子110及び111を介してリードデータ情報RD及びロード/ストアバッファID(RID)を受信し、受信したRD及びRIDからトレース情報161を生成して出力する。なお、ライトバック情報検出部156は、外部の解析装置等にトレース情報161を出力するか否かをトレース制御情報TCで指示される内容に応じて決定する。
以上に説明したように、本実施の形態にかかるトレース制御回路15では、ロード/ストアバッファIDを用いてトレース制御情報TCとリードデータ情報RDとの対応付けを行う。このため、データアクセス情報(PC、A、RW、S)及びライトバック情報(RPC、RA、RRW、RS)をインデックス情報として使用する必要がない。
さらに本実施の形態にかかるトレース制御回路15では、リードデータ情報RDに対応するトレース制御情報TCが格納されたトレース制御バッファを、リードデータ情報と共に受信したRIDの値から一意的に選択することができる。このため、従来必要であった同じ値を持つインデックス情報から最も古いものを選択する処理が不要になるばかりでなく、トレース制御バッファに格納されたデータとの比較処理自体が不要となり、トレース制御情報TCとリードデータ情報RDの対応付けを行う処理をいっそう簡略化することができる効果がある。
また、従来のトレース制御回路35は、ライトバック情報から生成したトレース情報361の中に、データアクセス情報から生成したトレース情報360との対応付けを可能とするためPC値、アクセスアドレス等のインデックス情報を含めていた。これに対して本実施の形態にかかるトレース制御回路15は、AID及びRIDによりトレース情報の対応付けが可能であるため、従来に比べて出力するトレース情報161のサイズを小さくすることが可能となる。
発明の実施の形態2.
本実施の形態にかかるマイクロプロセッサ及びトレース制御回路の構成を図2に示す。本実施の形態にかかるマイクロプロセッサは実施の形態1で説明したマイクロプロセッサ10と同様であるため、説明を省略する。トレース制御回路25は、トレース制御バッファ253にロード/ストアバッファIDを保持することを特徴としている。入力選択部252は、受信したAIDとトレース制御情報TCを、トレース制御バッファ253が備えるバッファのうち未使用状態にあるいずれかのバッファに格納する。一方、出力選択部254は、受信したRIDと一致するAIDと共に格納されているトレース制御情報を選択してライトバック情報検出部156に出力する。その他の構成及び動作は発明の実施の形態1と同様である。
このような構成によっても、従来のトレース制御回路のように冗長なインデックス情報を必要せず、トレース制御情報TCとリードデータ情報RDの対応付けが可能である。また、ロード/ストアバッファ104が備える各バッファは、データアクセスサイクルが完了し、リードデータがライトバック制御部308及びトレース制御回路25に出力されるまで排他的に使用されることから、トレース制御バッファ253の備える複数のバッファに同一のAIDが同時に格納される状態は発生しない。このため、従来必要であった同じ値を持つインデックス情報から最も古いものを選択する処理が不要になる。
なお、上述した発明の実施の形態1及び2では、トレース制御情報TCとリードデータ情報との対応付けを行う場合について説明したが、これらに限らず、ロード命令実行時と実行後のその他のトレース情報間の対応付けをロード/ストアバッファIDに基づいて行うことが可能である。
発明の実施の形態1にかかるマイクロプロセッサ及びトレース制御回路の構成図である。 発明の実施の形態2にかかるマイクロプロセッサ及びトレース制御回路の構成図である。 従来のマイクロプロセッサ及びトレース制御回路の構成図である。 従来のトレース制御情報TCとリードデータRDとの対応付け動作を説明するための図である。
符号の説明
10 マイクロプロセッサ
102 メモリアクセス制御部
15、25 トレース制御回路
151 データアクセス情報検出部
152、252 入力選択部
153、253 トレース制御バッファ
154、254 出力選択部
156 ライトバック情報検出部
160、161 トレース情報

Claims (7)

  1. マイクロプロセッサのトレースを行うトレース制御回路であって、
    前記マイクロプロセッサでのロード命令の実行開始に応じて、前記マイクロプロセッサが有する複数のロードバッファのうち前記ロード命令の実行時に前記ロード命令の属性を示すデータアクセス情報が格納されるロードバッファを示す第1の識別情報を前記データアクセス情報と関連付けて前記マイクロプロセッサから受信する第1の手段と、ここで、前記複数のロードバッファの各々は、データアクセス情報及びリードデータを格納可能であり、前記データアクセス情報は、前記ロード命令に基づいてアクセスされるメモリのアクセスアドレス、R/W種別、及びデータサイズを含む、
    前記データアクセス情報に基づいて生成され、前記ロード命令の実行により前記メモリから読み出されるリードデータ、及び前記複数のロードバッファのうちで当該リードデータの格納に使用されるロードバッファを示す第2の識別情報を解析装置に対して出力するか否かを示すトレース制御情報を保持する第2の手段と、
    前記マイクロプロセッサでの前記ロード命令の実行完了に応じて、前記ロード命令の実行により前記メモリから読み出された前記リードデータ、及び前記第2の識別情報を、前記マイクロプロセッサから受信する第3の手段と、
    前記第1の識別情報及び前記第2の識別情報に基づいて、前記トレース制御情報と前記リードデータを対応付ける第4の手段と、
    を備えるトレース制御回路。
  2. 前記第2の手段は、
    前記トレース制御情報を格納する複数のトレース制御バッファと、
    前記第1の識別情報の値に応じて、前記複数のトレース制御バッファから前記トレース制御情報を格納する1のバッファを選択する第5の手段と、
    を備え、
    前記第4の手段は、前記第2の識別情報の値に応じて、前記複数のトレース制御バッファから前記トレース制御情報が格納されたバッファを選択することによって、前記トレース制御情報と前記リードデータとの対応付けを行う、
    請求項1に記載のトレース制御回路。
  3. 前記複数のロードバッファの各々と前記複数のトレース制御バッファの各々とが一対一に対応づけられ、
    前記第5の手段は、前記第1の識別情報に基づいて前記複数のトレース制御バッファのうちの1つを一意的に選択することを特徴とする請求項2に記載のトレース制御回路。
  4. 前記データアクセス情報と前記第1の識別情報を対応付けて出力し、
    前記リードデータと前記第2の識別情報を対応付けて出力する請求項1又は2に記載のトレース制御回路。
  5. 複数のロードバッファを備え、
    ロード命令の実行開始に応じて、前記複数のロードバッファのうち前記ロード命令の実行時に前記ロード命令の属性を示すデータアクセス情報が格納されるロードバッファを示す第1の識別情報を前記データアクセス情報と関連付けて出力できるよう構成され、ここで、前記複数のロードバッファの各々は、データアクセス情報及びリードデータを格納可能であり、前記データアクセス情報は、前記ロード命令に基づいてアクセスされるメモリのアクセスアドレス、R/W種別、及びデータサイズを含む、
    ロード命令実行開始時のトレース情報としての前記データアクセス情報とロード命令実行完了時のトレース情報としてのロード命令の実行により前記メモリから読み出されたリードデータとの対応付けを可能とするため、前記ロード命令の実行完了に応じて、前記複数のロードバッファのうちで前記リードデータの格納に使用されたロードバッファを示す第2の識別情報、及び前記リードデータ出力できるよう構成れているマイクロプロセッサ。
  6. マイクロプロセッサが出力するデータを収集するトレースの制御方法であって、
    前記マイクロプロセッサにおけるロード命令の実行開始に応じて、前記マイクロプロセッサが有する複数のロードバッファのうち前記ロード命令の実行時に前記ロード命令の属性を示すデータアクセス情報が格納されるロードバッファを示す第1の識別情報を前記データアクセス情報と関連付けて前記マイクロプロセッサから受信し、ここで、前記複数のロードバッファの各々は、データアクセス情報及びリードデータを格納可能であり、前記データアクセス情報は、前記ロード命令に基づいてアクセスされるメモリのアクセスアドレス、R/W種別、及びデータサイズを含む、
    受信した前記データアクセス情報に基づいて、前記ロード命令の実行により前記メモリから読み出されるリードデータ、及び前記複数のロードバッファのうちで当該リードデータの格納に使用されるロードバッファを示す第2の識別情報を解析装置に対して出力するか否かを示すトレース制御情報を生成し、
    前記マイクロプロセッサにおけるロード命令の実行完了に応じて、前記ロード命令の実行により前記メモリから読み出された前記リードデータ、及び前記第2の識別情報を前記マイクロプロセッサから受信し、
    前記第1の識別情報と前記第2の識別情報に基づいて、前記トレース制御情報と前記リードデータとの対応付けを行うトレース制御方法。
  7. 受信した前記データアクセス情報と前記第1の識別情報を対応付けて出力し、
    受信した前記リードデータと前記第2の識別情報を対応付けて出力する請求項6に記載のトレース制御方法。
JP2004291078A 2004-10-04 2004-10-04 トレース制御回路、マイクロプロセッサ及びトレース制御方法 Expired - Fee Related JP4608276B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004291078A JP4608276B2 (ja) 2004-10-04 2004-10-04 トレース制御回路、マイクロプロセッサ及びトレース制御方法
US11/240,766 US7647532B2 (en) 2004-10-04 2005-10-03 Trace controller, microprocessor, and trace control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004291078A JP4608276B2 (ja) 2004-10-04 2004-10-04 トレース制御回路、マイクロプロセッサ及びトレース制御方法

Publications (2)

Publication Number Publication Date
JP2006107004A JP2006107004A (ja) 2006-04-20
JP4608276B2 true JP4608276B2 (ja) 2011-01-12

Family

ID=36182214

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004291078A Expired - Fee Related JP4608276B2 (ja) 2004-10-04 2004-10-04 トレース制御回路、マイクロプロセッサ及びトレース制御方法

Country Status (2)

Country Link
US (1) US7647532B2 (ja)
JP (1) JP4608276B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8127118B2 (en) * 2008-02-25 2012-02-28 International Business Machines Corporation Microarchitecture, method and computer program product for efficient data gathering from a set of trace arrays
JP5637145B2 (ja) 2009-11-26 2014-12-10 日本電気株式会社 バスモニタ回路及びバスモニタ方法
CN102595466A (zh) 2011-01-10 2012-07-18 华为技术有限公司 最小化路测测量方法、装置和系统
US8799719B2 (en) * 2011-05-19 2014-08-05 International Business Machines Corporation On demand tracing of application code execution

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000215081A (ja) * 1999-01-27 2000-08-04 Nec Corp トレ―ス情報採取機構
JP2002244881A (ja) * 2001-02-01 2002-08-30 Arm Ltd 順序外データのトレーシング

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06161818A (ja) 1992-10-14 1994-06-10 Nec Corp 一次キャッシュメモリ内蔵マイクロプロセッサの命令トレース制御方式
US6023561A (en) * 1995-06-01 2000-02-08 Advanced Micro Devices, Inc. System for processing traceable cache trace information
JP3349911B2 (ja) 1997-02-28 2002-11-25 エヌイーシーマイクロシステム株式会社 マイクロプロセッサ及びその開発支援装置
US6772324B2 (en) * 1997-12-17 2004-08-03 Intel Corporation Processor having multiple program counters and trace buffers outside an execution pipeline
JP3214613B2 (ja) 1998-07-03 2001-10-02 日本電気株式会社 マイクロプロセッサ及びデータ処理システム
US6859891B2 (en) * 1999-10-01 2005-02-22 Stmicroelectronics Limited Apparatus and method for shadowing processor information
US6539500B1 (en) * 1999-10-28 2003-03-25 International Business Machines Corporation System and method for tracing
US6530076B1 (en) * 1999-12-23 2003-03-04 Bull Hn Information Systems Inc. Data processing system processor dynamic selection of internal signal tracing
US6985848B2 (en) * 2000-03-02 2006-01-10 Texas Instruments Incorporated Obtaining and exporting on-chip data processor trace and timing information
US7134116B1 (en) * 2001-04-30 2006-11-07 Mips Technologies, Inc. External trace synchronization via periodic sampling
US6834365B2 (en) * 2001-07-17 2004-12-21 International Business Machines Corporation Integrated real-time data tracing with low pin count output
US7197671B2 (en) * 2002-06-07 2007-03-27 Arm Limited Generation of trace elements within a data processing apparatus

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000215081A (ja) * 1999-01-27 2000-08-04 Nec Corp トレ―ス情報採取機構
JP2002244881A (ja) * 2001-02-01 2002-08-30 Arm Ltd 順序外データのトレーシング

Also Published As

Publication number Publication date
US7647532B2 (en) 2010-01-12
JP2006107004A (ja) 2006-04-20
US20060085688A1 (en) 2006-04-20

Similar Documents

Publication Publication Date Title
JP4038372B2 (ja) 順序外データのトレーシング
US20140075249A1 (en) Execution History Tracing Method
CN107391400A (zh) 一种支持复杂访存指令的内存扩展方法和系统
JP2002163127A (ja) トレース制御回路
US7647532B2 (en) Trace controller, microprocessor, and trace control method
US20100318707A1 (en) External device access apparatus, control method thereof, and system lsi
CN112559403B (zh) 一种处理器及其中的中断控制器
US5475855A (en) Pipelined computer with half machine cycle alternating write control for avoiding usage conflicts in general registers
JPH11110214A (ja) 命令制御システム及びその方法
JP2001005718A (ja) プロトコルハンドラ及びその信号処理方法
JPH09212360A (ja) データ処理装置
JP3456443B2 (ja) 並列ソート装置及び該装置のプログラムを記録した記録媒体
JPH06230963A (ja) メモリアクセス制御装置
JP2005165825A (ja) トレース情報記録装置
CN117762718B (zh) 一种指令监测方法、装置、设备及存储介质
JPH07114509A (ja) メモリアクセス装置
JPH03137736A (ja) マイクロプロセッサ動作トレース方式
US6711655B1 (en) Finding available memory space by finding its associated memory transfer controller
JP2727947B2 (ja) アドレストレース方式
JPH08171505A (ja) 半導体装置
KR20060015917A (ko) 복수개의 기능블럭을 제어하는 제어시스템
JP2000057012A (ja) トレース装置
US7490226B2 (en) Method using vector component comprising first and second bits to regulate movement of dependent instructions in a microprocessor
JP2967741B2 (ja) Cpu互換性テスト装置
JPH11184731A (ja) 逐次命令実行によりアウトオブオーダ命令実行の動作を模擬するシミュレーション装置及びそのシミュレーション処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070914

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090904

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090908

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091106

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100302

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100427

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101005

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101008

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20131015

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees