JP2004310749A - 分散型メモリを有するデータ処理システムにおいてバストレーシングを行うための方法および装置 - Google Patents

分散型メモリを有するデータ処理システムにおいてバストレーシングを行うための方法および装置 Download PDF

Info

Publication number
JP2004310749A
JP2004310749A JP2004064698A JP2004064698A JP2004310749A JP 2004310749 A JP2004310749 A JP 2004310749A JP 2004064698 A JP2004064698 A JP 2004064698A JP 2004064698 A JP2004064698 A JP 2004064698A JP 2004310749 A JP2004310749 A JP 2004310749A
Authority
JP
Japan
Prior art keywords
interconnect
module
btm
memory
memory controller
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
JP2004064698A
Other languages
English (en)
Inventor
John Steven Dodson
ジョン・スティーブン・ダッドソン
Jerry Don Lewis
ジェリー・ドン・ルイス
Gary Alan Morrison
ギャリー・アラン・モリソン
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2004310749A publication Critical patent/JP2004310749A/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/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • G06F11/364Software debugging by tracing the execution of the program tracing values on a bus
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B61RAILWAYS
    • B61DBODY DETAILS OR KINDS OF RAILWAY VEHICLES
    • B61D37/00Other furniture or furnishings
    • B61D37/003Other furniture or furnishings luggage rack and umbrella-stand for rail vehicles
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B61RAILWAYS
    • B61DBODY DETAILS OR KINDS OF RAILWAY VEHICLES
    • B61D33/00Seats
    • B61D33/0007Details; Accessories
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B61RAILWAYS
    • B61DBODY DETAILS OR KINDS OF RAILWAY VEHICLES
    • B61D33/00Seats
    • B61D33/0057Seats characterised by their mounting in vehicles
    • B61D33/0064Seats characterised by their mounting in vehicles not adjustably mounted; supports therefor

Landscapes

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

Abstract

【課題】 外部に取り付けた論理分析装置も追加のチップ上メモリアレイも用いずにコア命令トレースまたは相互接続トレースを収集するための方法および装置を提供する。
【解決手段】 分散型メモリを有するデータ処理システムにおいてメモリ内バストレーシングを行うための装置を開示する。この装置は、バストレースマクロ(BTM)モジュールを含み、これは、データ処理システムにおいてメモリコントローラの1つ以上が認識するスヌープトラフィックを制御することができ、更に、トレースレコードを格納するために、メモリコントローラに取り付けられたローカルメモリを利用することができる。トレーシング動作のためBTMモジュールがイネーブルされた後、BTMモジュールは相互接続上のトランザクションをスヌープし、これらのトランザクション内に含まれる情報を、メモリコントローラ内の書き込みバッファに一致する大きさのデータブロックにまとめる。
【選択図】 図1

Description

本発明は、一般にシステムデバッギングに関し、具体的には、相互接続のトレーシングを行うための方法および装置に関する。更に具体的には、本開示内容は、分散型メモリを有するデータ処理システムにおいてバストレーシングを行うための方法および装置に関する。
技術が進歩するにつれて、単一のチップ内に集積しなければならない回路量はますます増えている。また、最先端の技術では、今やごく普通に、単一のモジュール基板上に多数のチップをパッケージングすることが可能となっている。更に、チップ内部およびチップ間の相互接続の双方において、動作クロック周波数はますます高くなっている。上述のような進歩は全て、より高い性能を有するシステムを生み出すものであるが、一方で、システム開発の間にいくつかの極めて難しい問題を生じる。
通常、新しいシステムを市場に出せるようになる前に、そのシステムのハードウエア設計に存在し得る何らかの論理的および/または電気的な欠陥を見出すため、実験室環境においてシステムの試験を行わなければならない。欠陥の一部を切り離すため、相互接続(またはバス)トランザクションの非常に長いトレースを捕捉することが、日常的に必要となる。また、システム開発中に広範囲に渡る性能モデリングおよび分析を行って、できる限り高い性能を達成可能とするように設計点を微調整する必要がある。性能モデリングおよび分析の一部として、市販のデータベースアプリケーション等の多くの一般的なアプリケーションによって用いられる典型的な命令シーケンスを表すトレースの捕捉が必要となる。時に、それらのトレースは、対象となる市販のアプリケーションを適切に表すために、極めて長くなることが避けられない。
従来、トレースの収集は、相互接続の外部にいくつかの論理分析装置を取り付けることによって行われている。論理分析装置は、接続されている相互接続と同じ速度でデータをサンプリングすることができなければならず、また、非常に長いトレースを格納するために極めて大きいメモリを有する必要がある。上述の技術的進展に伴って、従来のトレース収集方法は、いくつかの理由で機能しなくなっている。第1に、相互接続が高速化したため、ほとんどの既製品の論理分析装置は信頼性高くデータのサンプリングを行うには充分な速度ではなくなっており、充分に速いものであってもあまりにも高価すぎる。第2に、高速で動作可能な論理分析装置があっても、取り付けた論理分析装置によって相互接続にかかる負荷が増大し、相互接続が所望の周波数で機能しなくなるほどに相互接続の完全性が損なわれてしまう恐れがある。第3に、今日のパッケージング技術によって、相互接続は、単一のチップ内および/または多チップモジュール内に内蔵される傾向がある。このため、上述の2つの問題が克服可能であるとしても、相互接続が外部からアクセス可能でない場合には、役に立たない。
上述の問題を(部分的に)解決する従来の方法の1つは、チップ上の様々な重要位置にある小さいメモリのアレイの集積を利用して、内部で様々な相互接続のサンプリングを可能とするものである。かかる方法に伴う問題は、メモリアレイが極めて小さいサイズでなければならないことであり、これは、シリコン領域を追加するとコストがかかるため、記憶容量が限られていることを意味する。高度なデータ圧縮技法を用いても、それらの小さいメモリアレイの記憶容量は、複雑なシーケンスのデバッギングまたは性能分析に適したトレースの収集に有用であると考えられる記憶容量にはほど遠い。
従って、外部に取り付けた論理分析装置も追加のチップ上の小さいメモリアレイも用いることなく、非常に長いコア命令トレースまたは相互接続トレースを収集するための方法および装置を提供することが望ましいであろう。
本発明の好適な実施形態によれば、分散型メモリ対称型マルチプロセッサシステムは、各々がメモリモジュールに結合された多数の処理ユニットを含む。処理ユニットは各々、メモリコントローラおよびバストレースマクロ(BTM)モジュールを含む。メモリコントローラは、対称型マルチプロセッサシステムのための相互接続に結合され、BTMモジュールは、2つのマルチプレクサを介して、相互接続とメモリコントローラとの間に接続されている。BTMモジュールは、相互接続からのアドレストランザクションを選択的にインターセプトし、インターセプトしたアドレストランザクションを対応するトレースレコードに変換する。次いで、BTMモジュールは、トレースレコードを、メモリコントローラ内に含まれる書き込みバッファ集合に書き込む。
本発明の全ての目的、機構、および利点は、以下の詳細な説明から明らかとなろう。
本発明自体、ならびにその使用の好適な形態、更に別の目的、および利点は、添付図面と関連付けて以下の例示的な実施形態の詳細な説明を読むことによって、最も良く理解されよう。
I.分散型メモリシステム
ここで図面を参照し、特に図1を見ると、本発明の好適な実施形態を組み込んだ対称型マルチプロセッサ(SMP)システムのブロック図が示されている。図示のように、SMPシステム10は、相互接続21を介して相互に接続された処理ユニット11a〜11nを含む。処理ユニット11a〜11nの各々は、中央演算処理装置(CPU)、キャッシュメモリ、バスインタフェースユニット(BIU)、バストレースマクロ(BTM)モジュール、およびメモリコントローラを含む。例えば、処理ユニット11aは、CPU12a、キャッシュメモリ13a、BIU14a、BTMモジュール15a、およびメモリコントローラ16aを含み、処理ユニット11bは、CPU12b、キャッシュメモリ13b、BIU14b、BTMモジュール15b、およびメモリコントローラ16bを含む等である。処理ユニット11aから11nの各々は、各メモリコントローラを介してメモリモジュールに結合されている。例えば、処理ユニット11aは、メモリコントローラ16aを介してメモルモジュール17aに結合され、処理ユニット11bは、メモリコントローラ16bを介してメモルモジュール17bに結合されている等である。また、SMPシステム10は、入力/出力チャネルコンバータ(IOCC)18およびハードディスクアダプタ19を介して相互接続21に結合されたハードディスク20も含む。
本実施形態では、SMPシステム10の全システムメモリは、各メモリコントローラによって制御されるメモリモジュール17a〜17nに分散している。オペレーティングシステムは、全システムメモリのどの部分が様々なアプリケーションソフトウエアによってアクセス可能であるかを制御する。
II.トレーシング装置
本発明の好適な実施形態として、BTMモジュール15a〜15nおよびメモリコントローラ16a〜16nを利用して、コアトレーシングおよび相互接続トレーシングを容易にする。全てのBTMモジュール15a〜15nは対応する機能を提供し、全てのメモリコントローラ16a〜16nは対応する機能を提供するので、BTMモジュール15aおよびメモリコントローラ16aのみを詳細に説明する。ここで図2を参照すると、本発明の好適な実施形態による、メモリコントローラ16aに結合されたBSMモジュール15aのブロック図が示されている。BTMモジュール15aは、いかなる所与の時点でも、相互接続21からのトランザクション情報またはCPUコアトレースバス29からのCPUコアトレーシング情報のいずれかを受け取ることができる。BTMモジュール15aのトレーシング動作は、シリアル通信(SCOM)バス30を介してソフトウエアコマンドによって制御される。
メモリモジュール17aにも結合されたメモリコントローラ16aは、スヌープ応答インタフェース24、スヌープアドレス/組み合わせ応答インタフェース25、書き込みデータインタフェース26、および読み取りデータインタフェース27を含む。通常、相互接続21からのトランザクション情報をスヌープした後、メモリコントローラ16aは、適切な時に、スヌープ応答インタフェース24によって相互接続21にスヌープ応答を供給することができる。更に、メモリコントローラ16aは、書き込みデータインタフェース26によって相互接続21から書き込み情報を受信し、読み取りデータインタフェース27によって相互接続21に読み取り情報を送信する。また、メモリコントローラ16aは、書き込みデータをメモリモジュール17aに転送する前に、書き込みデータを一時的に格納するためのいくつかの書き込みバッファ28も含む。
本発明の好適な実施形態として、マルチプレクサ22および23を利用して、BTMモジュール15aのため、相互接続21からのトランザクション情報をインターセプトする。マルチプレクサ21は、相互接続21からのスヌープアドレス/組み合わせ応答バス37と、メモリコントローラ16aのスヌープアドレス/組み合わせ応答インタフェース25との間の経路に配置されている。同様に、マルチプレクサ23は、相互接続21からのインバウンド書き込みデータ/制御バス38と、メモリコントローラ16aの書き込みデータインタフェース26との間の経路に配置されている。
相互接続トレーシングの間、BTMモジュール15は、マルチプレクサ22および23をそれぞれ介して、相互接続21上のどのトランザクションが、スヌープアドレス/組み合わせ応答インタフェース25および書き込みデータインタフェース26上でメモリコントローラ16aに見えるかを制御する。本実施形態では、BTMモジュール15aは、マルチプレクサ22への選択線31を用いることによって、トランザクション動作がメモリコントローラ16aのスヌープアドレス/組み合わせ応答インタフェース25に届くのを防ぐことができる。同様に、BTMモジュール15aは、マルチプレクサ23への選択線31によって、書き込み情報がメモリコントローラ16aの書き込みデータインタフェース26に届くのを防ぐことができる。
一方、BTMモジュール15aは、マルチプレクサ22および23によって、それ自身の情報をメモリコントローラ16aに供給することができる。本実施形態では、BTMモジュール15aは、書き込み線32およびマルチプレクサ22によって、メモリコントローラ16a内に書き込みキューおよび対応する書き込みバッファ28を割り当てることができる。同様に、BTMモジュール15aは、書き込み線33およびマルチプレクサ23によって、メモリコントローラ16a内の書き込みバッファ28にトレースレコードを書き込むことができる。
III.基本的なトレーシング動作
相互接続トレーシングを可能とするため、BTMモジュール15aは、最初に、SCOMバス30を介して、ソフトウエアによって構成されて、BTMモジュール15a内にイネーブルビット(図示せず)をセットする。また、初期構成は、BTMモジュール15a内のベースアドレスレジスタ(BAR)34にアドレス範囲をロードして、システム初期化の間にメモリコントローラ16aがメモリモジュール17aのために最初に設定された実メモリアドレス範囲に一致させることも含む。かかるアドレス範囲は、SMPシステム(図1)の全システムメモリアドレス空間のうちの単一連続部分である。トレーシングが可能となった後、オペレーティングシステムは、他のあらゆるソフトウエアアプリケーションがメモリコントローラ16aおよびメモリモジュール17aにアクセスすることを防ぐ(他のソフトウエアアプリケーションは、メモリモジュール17b〜17n等、SMPシステム10内の他のメモリコトローラに取り付けたメモリモジュールにはアクセスすることができる)。また、構成シーケンスは、BTMモジュール15aに命令し、選択線31を介してマルチプレクサ22および23に指示して、インターセプト動作を開始し、メモリコントローラ16aのスヌープアドレス/組み合わせ応答インタフェース25および書き込みデータインタフェース26が相互接続21から直接トランザクション情報を受信することができないようにする。
トレーシングが開始する前に、BTMモジュール15aは、書き込みコマンドをメモリコントローラ16aに送信し、これらは書き込みバッファ28内でキューに入る。これらの書き込みコマンドに関連するアドレスは連続的であり、メモリコントローラ16aに設定されたメモリ空間の冒頭で開始する。次いで、キューに入った書き込み動作は、関連する書き込みデータパケットが書き込みデータインタフェース26に到着するのを待つ。
BTMモジュール15aが、いずれかの有効なアドレストランザクションについて相互接続21をインターセプトする用意ができると、トレーシングが開始する。有効なアドレストランザクションが検出されると、BTMモジュール15aは、検出したアドレストランザクションからトレースレコードを発生し、次いでこのトレースレコードを、書き込みデータインタフェース26を介してメモリコントローラ16a内の書き込みバッファ28の1つに書き込む。
相互接続21から更にアドレストランザクションがスヌープされると、BTMモジュール15aは、対応するトレースレコードをメモリコントローラ16a内の書き込みバッファ28に送信し続ける。書き込みバッファ28の1つがいっぱいになると、BTMモジュール15aは、書き込みバッファ28の次のものに移る。メモリ書き込みの完了時に書き込みバッファが使えるようになっていると、BTMモジュール15aは、書き込みコマンドをメモリコントローラ16aに送信して、書き込みバッファが使える状態であるのでそれらを再使用する。いったん書き込みバッファ28の1つがいっぱいになると、メモリコントローラ16aは次に書き込みバッファ28のその1つからメモリモジュール17aにトレースレコードを移す。書き込みコマンドをメモリコントローラ16aに送信する前に、BTMモジュール15aは、読み取り線34を介してスヌープ応答インタフェース24を監視して、メモリコントローラ16aがその時点で新しい書き込みコマンドを受け入れられるか否かを判定する。予め構成された停止点に達するまで、または(SCOMバス30を介して)ソフトウエアによってコマンドが発行されてBTMモジュール15aにトレーシングの停止を命令するまで、書き込みコマンド/書き込みデータ処理はパイプラインで行われる。
トレーシングを停止した後、ソフトウエアは、BTMモジュール15aに命令し、マルチプレクサ22および23に指示して、インターセプト動作を停止し、メモリコントローラ16aのスヌープアドレス/組み合わせ応答インタフェース25および書き込みデータインタフェース26が相互接続21から直接トランザクション情報を受信可能とする。この結果、メモリコントローラ16aは、SMPシステム10内の他のあらゆるメモリコントローラのように、再び相互接続21からトランザクション情報を直接スヌープすることができる。この時点で、ソフトウエアは、メモリモジュール17aに格納されているトレースレコードにアクセスすることができる。ソフトウエアは、すぐにトレースレコードを処理するか、または今後の処理のためにトレースレコードをハードディスク20(図1)に移すことができる。
CPUコアトレースは、上述の相互接続トレースとほぼ同じ方法で、基本的にBTMモジュール15aによって収集される。異なる点は、CPUコアトレースのためのソースが相互接続21でなくCPUコアトレースバス29であることである。また、BTMモジュール15aは、いかなる所与の時点でも相互接続トレースまたはCPUコアトレースのいずれかを収集することができるが、同時に双方の収集は行えない。
IV.トレーシング帯域幅の増大
場合によっては、特により大きなSMPシステムでは、単一のBTMモジュールおよび対応するメモリコントローラは、スヌープしている進行中の相互接続トランザクションと同じ速度でトレースレコードを関連する「ローカル」メモリモジュールに格納することができない場合がある。この結果、一部の相互接続トランザクションは、対応するトレースレコードがどこにも格納されていないということが起こり得る。時に、所与のSMPシステム構成では、最小限のトレース情報量を省くことは許容可能であるが、相互接続使用の全てについての完全なトレースレコード範囲を有することがはるかに好ましい。このため、上述の基本的なトレーシング動作を拡張して、相互接続利用性を高めたいっそう大きなSMPシステムにおいて、トレーシング帯域幅を追加し、トレースオーバーランを最小限に抑えるかまたは防止するといっそう有用であろう。
本発明の好適な実施形態として、2つ以上のBTMモジュールを同時にイネーブルして、32以上のメモリコントローラを有する比較的大きいSMPシステム内の多数の処理ユニット間に、トレース情報収集の負担を分散させることができる。帯域幅の拡張性は、相互接続トレーシングのために多数のBTMモジュールをイネーブルすることによって達成可能である。イネーブルしたBTMモジュールの各々は、全SMPシステム内の全ての相互接続トランザクションのサブセットについてのトレースレコードのみを格納するように構成されている。
一例として、32のメモリコントローラを有する比較的大きいSMPシステムを用いて、相互接続トレーシングを行うためにSMPシステムの2つのBTMモジュールをイネーブルしてピークの相互接続利用に追いついていく場合、一方のBTMモジュールを、偶数サイクルでスヌープされる相互接続トランザクションのみを処理するように構成することができ、他方のBTMモジュールを、奇数サイクルでスヌープされる相互接続トランザクションのみを処理するように構成することができる。このように、BTMモジュールおよび関連するメモリコントローラの各々は、単独で機能する単一のBTMモジュールとして、バスアクティビティの半分を処理することができれば良い。残りの30のメモリコントローラ(および、相互接続トレーシングのためにイネーブルされていない関連するBTMモジュール)は、他の通常のコンピューティングアクティビティのため、アプリケーションソフトウエアによって使用可能である。同じ原理を用いて、4つのBTMモジュールおよび4つの関連するメモリコントローラをイネーブルして相互接続トレーシングを行う場合、4つのBTMモジュールの各々を、4つのサイクル時間部分のうち異なる1つをトレースするように構成することができる。
時間分割に基づいた上述の方法に加えて、相互接続トレーシングの作業負荷の分散は、他の基準に基づくものとすることも可能である。相互接続トレーシングの作業負荷の分散は、例えば、アドレス(すなわち、偶数アドレス、奇数アドレス、特定の連続アドレス範囲等)、CPU識別(ID)(すなわち、奇数CPU ID、偶数CPU ID、第1のIDから第2のIDのCPU IDによって供給されるトランザクション等)、トランザクションの種類(すなわち、読み取り、書き込み、RWITM、DClaims等)に基づくものとすることができる。
相互接続トレーシングの作業負荷の分散を行うために用いられる機構は、トレース動作の開始に先立ってソフトウエアによってセットアップすることができる構成レジスタを含む。イネーブルされた各BTMモジュールは、構成レジスタの内容を復号して、どのスヌープした相互接続トランザクションをトレースレコードとして格納するか、および、どのスヌープした相互接続トランザクションを無視するかを判定することができる。その考えは、イネーブルしたBTMモジュールのうち1つのみによって、各相互接続トランザクションごとのトレースレコードを発生させるということである。
トレーシング動作が完了した後、トレーシングに用いられた異なるメモリモジュールから収集した全ての別個のトレースレコードを、タイムスタンプに基づいてソフトウエアによってマージさせて、トレーシング動作が実行された時間ウインドウ内の全相互接続アクティビティの単一のトレースレコードを発生させることができる。
V.トレーシング帯域幅の低減
従来技術の相互接続トレーシング方法は、ピークバス利用よりも低いトレースレコード収集および格納レートを有する相互接続トレース収集エンジンを実施するための手段を有しない。この結果、従来技術の相互接続トレーシング方法は、ピークバス利用についていくことができなければならない。かかる機能は、当該機能が必要とされない場合に、不必要にコストおよび複雑さを増す。従って、正確さが必要とされる場合には、(上述のように多数のBTMモジュールをイネーブルすることによって)トレーシング帯域幅を増大させることが間違いなく望ましいが、いくつかの論理デバッグの状況等、所々でいくつかのトレースレコードの喪失が許容可能であると見なされる場合、およびバスアクティビティの統計的サンプリングが十分である場合は、トレーシング帯域幅の低減が望ましい。更に、全システムメモリ量が限られているシステム構成においては、BTMモジュールのスケーリング方法も制限される。従って、相互接続トランザクションが脱落した場合にトレースレコードを格納するための手段が望まれる。
ここで図3を参照すると、本発明の好適な実施形態による、相互接続トランザクションのためのトレースレコードフォーマットの図が示されている。図示のように、トレースレコード40は、識別子フィールド41、トランザクション種類フィールド42、トランザクションサイズフィールド43、タグフィールド44、アドレスフィールド45、および組み合わせ応答フィールド46を含む。識別子フィールド41は、レコードの種類、すなわちそれがトレースレコードであるかまたはタイムスタンプレコードであるかを示す。トランザクション種類フィールド42は、相互接続トランザクションの種類を示す。トランザクションサイズフィールド43は、相互接続トランザクションのサイズを示す。タグフィールド44は、相互接続トランザクションのソースを示す。アドレスフィールド45は、相互接続トランザクションの実メモリアドレスを示す。組み合わせ応答フィールド46は、必要な場合、相互接続トランザクションの組み合わせ応答を示す。相互接続トランザクションのトレースレコードフォーマットのみを示すが、当業者には、コアトランザクションのためのトレースレコードフォーマットが比較的類似していることは理解されよう。
本発明の好適な実施形態として、図2のBTMモジュール15a等のBTMモジュール内に、スタンプ発生機構が含まれている。相互接続トランザクション間にアイドルサイクルがある場合にのみ、タイムスタンプレコードをトレース情報内に挿入する。通常の時刻の記録に加えて、かかるタイムスタンプレコードは、以前のトレースレコード以降に書き込みバッファがいっぱいである状況のために失敗した相互接続トランザクションの数を与えるためにも用いられる。
ここで図4を参照すると、本発明の好適な実施形態による、タイムスタンプトレースレコードフォーマットの図が示されている。図示のように、タイムスタンプトレースレコード50は、識別子フィールド51、スタンプ種類フィールド52、サイクルカウンタオーバーフローフィールド53、脱落レコードカウンタオーバーフローフィールド54、脱落レコードフィールド55、脱落レコードカウンタフィールド56、およびサイクルカウンタ値フィールド57を含む。
相互接続トレーシングが開始すると、BTMモジュール15aによって、開始スタンプフィールド52がセットされたタイムスタンプトレースレコード50が、トレースレコードの冒頭に挿入される。開始スタンプフィールド52によって、後処理ソフトウエアは、多数の開始/停止を有する連続ラップモードまたは単一サンプルモードで収集されたトレースレコードを構文解析(parse)することができる。
BTMモジュール15aは、ある相互接続トランザクション以降いくつの連続アイドルサイクルが発生したかをカウントするためのサイクルカウンタ35(図2)を含む。次の相互接続トランザクションが現れると、BTMモジュール15aは、この相互接続トランザクションのためのトレースレコードを格納する前に、サイクルカウンタ値フィールド57にアイドルサイクルカウントを含む1つのタイムスタンプトレースレコード50を挿入する。次の相互接続トランザクションが現れる前にサイクルカウンタ35がその最大値に達した場合は、モード選択によって、行わなければならないアクションを決定する。第1のモードでは、サイクルカウンタオーバーフローフィールド53にサイクルカウンタオーバーフローフラグをセットし、サイクルカウンタ35はロールオーバして、カウントを続ける。次のバストランザクションが現れた場合、タイムスタンプログは、サイクルカウント値に加えて、サイクルカウンタオーバーフローフラグを含む。第2のモードでは、アイドルサイクルカウントを最大値としてタイムスタンプを記録する。次いで、サイクルカウンタ35をリセットし、新たにカウントを開始する。第2のモードでは、N個の連続アイドルサイクルごとにタイムスタンプを記録する。ここで、Nは、サイクルカウンタ35のアイドル状態の最大カウント値である。
図2のメモリコントローラ16a等のメモリリコントローラが、トレースレコードのブロックを図2のメモリモジュール17a等の対応するメモリモジュールに格納可能な速度に応じて、更に、スヌープされた相互接続トランザクションがBTMモジュール15aによって認識される速度に応じて、メモリコントローラ16a内の全ての書き込みバッファ28がいっぱいになる場合には、短い時間間隔が生じ得る。かかる時間間隔の間、BTMモジュール15aはトレースレコードを格納することができない。バスレコードのいくつかの使用法では、いくつのレコードが脱落したか、および、以前の格納されたトレースレコード(またはタイムスタンプ)と次の格納されたトレースレコード(またはタイムスタンプ)との間でいくつのサイクルが経過したかという情報が、何らかの方法でトレースレコードに供給可能である限り、いくつかのトレースレコードが脱落することは問題とはならない。
この情報を供給するため、サイクルカウンタ35に加えて、BTMモジュール15aにおいて脱落レコードカウンタ36(図2)を利用する。BTMモジュール15aが、書き込みバッファがいっぱいであるという指示をメモリコントローラ16aから受けると、BTMモジュール15aは、サイクルカウンタ35を用いて、書き込みバッファ28がいっぱいの状態である間に経過したサイクル数をカウントする。書き込みバッファがいっぱいである状態の間にスヌープされた相互接続トランザクションがあれば、脱落レコードカウンタ36はインクリメントされる。書き込みバッファがいっぱいの状態が終わった後、BTMモジュール15aは、脱落レコードカウンタフィールド56およびサイクルカウンタフィールド57に、脱落レコードの数と、それらのレコードが脱落している間に経過したサイクル数とをそれぞれ格納する。書き込みバッファがいっぱいの状態の間に脱落サイクルカウンタ36がオーバーフローした場合、脱落レコードフィールド55にフラグをセットして、脱落サイクルカウンタ36がオーバーフローしたことを示す。書き込みバッファがいっぱいの状態の間に経過したサイクル数が最大サイクルカウントを超えた場合、サイクルカウンタオーバーフローフィールド53にフラグをセットして、サイクルカウンタ35がオーバーフローしたことを示す。このため、タイムスタンプトレースレコード50は、最後のトレースレコード(またはタイムスタンプ)が格納された時以降に脱落したレコード数を提供する。また、タイムスタンプトレースレコード50は、上述した通常のタイムスタンプのように、最後のトレースレコード(またはタイムスタンプ)以降に経過したサイクル数も提供する。
各バスサイクルにおいて1つの相互接続トランザクションをスヌープし、各相互接続トランザクションごとに対応するトレースレコードを発生し格納する場合、トレースレコードと共に、またはそれらの間に、タイムスタンプを格納する必要はない。本質的に、2つの連続トレースレコードは、2つの連続バスサイクルにおいて2つの対応する相互接続トランザクションが発生したことを意味する。
上述のように、本発明は、分散型メモリSMPシステムにおいてメモリ内命令/バストレーシングを実行するための方法および装置を提供する。本発明では、命令/バストレーシングを実行するために、論理分析装置等の追加のハードウエアは不要である。このため、相互接続に余分な電気負荷がかかってそれらの動作周波数を制限する恐れは無い。また、トレース情報を格納するためのチップ上メモリアレイは必要ない。本発明では、トレーシングのために必要な全てのハードウエアは、1つ以上のBTMモジュールに構成される。BTMモジュールは完全にメモリコントローラの外部にあるので、メモリコントローラは、トレーシング動作を実行するためにいずれかのBTMモジュールが用いられていることを知らず、これによってメモリコントローラ設計の複雑さが軽減される。また、本発明は、以降のオフライン処理のため、ハードディスクにトレースレコードを格納することを可能とする。
本発明について、好適な実施形態を参照して具体的に図示し説明してきたが、本発明の精神および範囲から逸脱することなく、形態および詳細において様々な変更を行い得ることは当業者には理解されよう。
まとめとして、本発明の構成に関して以下の事項を開示する。
(1)相互接続に結合された分散型メモリを有するデータ処理システムにおいてバストレーシングを行うための装置であって、
前記相互接続に結合されたメモリコントローラと、
複数のマルチプレクサと、
前記相互接続と前記メモリコントローラとの間に、前記複数のマルチプレクサを介して接続されたバストレースマクロ(BTM)モジュールであって、前記相互接続からのアドレストランザクションを選択的にインターセプトし、前記インターセプトしたアドレストランザクションを対応するトレースレコードに変換し、前記トレースレコードを前記メモリコントローラ内の書き込みバッファに書き込む、BTMモジュールと、
を具備する装置。
(2)前記BTMモジュールが前記選択的インターセプトを行っている場合に、前記複数のマルチプレクサは、前記アドレストランザクションが前記メモリコントローラに到達するのを防ぐ、(1)の装置。
(3)前記マルチプレクサの1つは、前記相互接続からのスヌープアドレス/組み合わせ応答バスと、前記メモリコントローラのスヌープアドレス/組み合わせ応答インタフェースとの間の経路に配置されている、(1)の装置。
(4)前記マルチプレクサの1つは、前記相互接続からのデータ/制御バスと、前記メモリコントローラの書き込みデータインタフェースとの間の経路に配置されている、(3)の装置。
(5)前記BTMモジュールは、前記メモリコントローラの実メモリアドレス範囲に一致するアドレス範囲を含むためのベースアドレスレジスタを含む、(1)の装置。
本発明の好適な実施形態を組み込んだ対称型マルチプロセッサシステムのブロック図である。 本発明の好適な実施形態による、図1に示す対称型マルチプロセッサシステムの処理ユニットの1つの内部におけるバストレースマクロモジュールおよびメモリコントローラのブロック図である。 本発明の好適な実施形態による、相互接続トランザクションのためのトレースレコードフォーマットの図である。 本発明の好適な実施形態による、タイムスタンプレコードフォーマットの図である。

Claims (5)

  1. 相互接続に結合された分散型メモリを有するデータ処理システムにおいてバストレーシングを行うための装置であって、
    前記相互接続に結合されたメモリコントローラと、
    複数のマルチプレクサと、
    前記相互接続と前記メモリコントローラとの間に、前記複数のマルチプレクサを介して接続されたバストレースマクロ(BTM)モジュールであって、前記相互接続からのアドレストランザクションを選択的にインターセプトし、前記インターセプトしたアドレストランザクションを対応するトレースレコードに変換し、前記トレースレコードを前記メモリコントローラ内の書き込みバッファに書き込む、BTMモジュールと、
    を具備する装置。
  2. 前記BTMモジュールが前記選択的インターセプトを行っている場合に、前記複数のマルチプレクサは、前記アドレストランザクションが前記メモリコントローラに到達するのを防ぐ、請求項1の装置。
  3. 前記マルチプレクサの1つは、前記相互接続からのスヌープアドレス/組み合わせ応答バスと、前記メモリコントローラのスヌープアドレス/組み合わせ応答インタフェースとの間の経路に配置されている、請求項1の装置。
  4. 前記マルチプレクサの1つは、前記相互接続からのデータ/制御バスと、前記メモリコントローラの書き込みデータインタフェースとの間の経路に配置されている、請求項3の装置。
  5. 前記BTMモジュールは、前記メモリコントローラの実メモリアドレス範囲に一致するアドレス範囲を含むためのベースアドレスレジスタを含む、請求項1の装置。
JP2004064698A 2003-04-03 2004-03-08 分散型メモリを有するデータ処理システムにおいてバストレーシングを行うための方法および装置 Withdrawn JP2004310749A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/406,661 US20040199722A1 (en) 2003-04-03 2003-04-03 Method and apparatus for performing bus tracing in a data processing system having a distributed memory

Publications (1)

Publication Number Publication Date
JP2004310749A true JP2004310749A (ja) 2004-11-04

Family

ID=33097362

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004064698A Withdrawn JP2004310749A (ja) 2003-04-03 2004-03-08 分散型メモリを有するデータ処理システムにおいてバストレーシングを行うための方法および装置

Country Status (3)

Country Link
US (1) US20040199722A1 (ja)
JP (1) JP2004310749A (ja)
KR (1) KR20040086730A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007241431A (ja) * 2006-03-06 2007-09-20 Ricoh Co Ltd トレースデータ記録装置
KR100813789B1 (ko) * 2005-03-07 2008-03-13 후지쯔 가부시끼가이샤 어드레스 스누프 방법 및 멀티프로세서 시스템

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7437618B2 (en) * 2005-02-11 2008-10-14 International Business Machines Corporation Method in a processor for dynamically during runtime allocating memory for in-memory hardware tracing
US7437617B2 (en) * 2005-02-11 2008-10-14 International Business Machines Corporation Method, apparatus, and computer program product in a processor for concurrently sharing a memory controller among a tracing process and non-tracing processes using a programmable variable number of shared memory write buffers
US7418629B2 (en) * 2005-02-11 2008-08-26 International Business Machines Corporation Synchronizing triggering of multiple hardware trace facilities using an existing system bus
CN101501651A (zh) * 2006-08-08 2009-08-05 皇家飞利浦电子股份有限公司 电子设备和控制通信的方法
US7979662B2 (en) * 2007-12-28 2011-07-12 Sandisk Il Ltd. Storage device with transaction indexing capability
US7913030B2 (en) * 2007-12-28 2011-03-22 Sandisk Il Ltd. Storage device with transaction logging capability
US8635411B2 (en) * 2011-07-18 2014-01-21 Arm Limited Data processing apparatus and method for managing coherency of cached data

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5119485A (en) * 1989-05-15 1992-06-02 Motorola, Inc. Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation
GB2293467B (en) * 1994-09-20 1999-03-31 Advanced Risc Mach Ltd Trace analysis of data processing
KR0149891B1 (ko) * 1994-12-22 1999-05-15 윤종용 버스상태분석기 및 그 내부버스시험방법
US5903912A (en) * 1996-08-14 1999-05-11 Advanced Micro Devices, Inc. Microcontroller configured to convey data corresponding to internal memory accesses externally
US6513057B1 (en) * 1996-10-28 2003-01-28 Unisys Corporation Heterogeneous symmetric multi-processing system
US6438715B1 (en) * 1998-05-04 2002-08-20 Stmicroelectronics N.V. Trace operations in an integrated circuit for a disk drive
US6202103B1 (en) * 1998-11-23 2001-03-13 3A International, Inc. Bus data analyzer including a modular bus interface
US6295587B1 (en) * 1999-09-03 2001-09-25 Emc Corporation Method and apparatus for multiple disk drive access in a multi-processor/multi-disk drive system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100813789B1 (ko) * 2005-03-07 2008-03-13 후지쯔 가부시끼가이샤 어드레스 스누프 방법 및 멀티프로세서 시스템
JP2007241431A (ja) * 2006-03-06 2007-09-20 Ricoh Co Ltd トレースデータ記録装置

Also Published As

Publication number Publication date
US20040199722A1 (en) 2004-10-07
KR20040086730A (ko) 2004-10-12

Similar Documents

Publication Publication Date Title
US9952963B2 (en) System on chip and corresponding monitoring method
US8036854B2 (en) Communication of a diagnostic signal and a functional signal by an integrated circuit
KR101312281B1 (ko) 프로세서 및 메모리 제어 방법
US7437618B2 (en) Method in a processor for dynamically during runtime allocating memory for in-memory hardware tracing
US7421619B2 (en) Method in a processor for performing in-memory tracing using existing communication paths
US8074131B2 (en) Generic debug external connection (GDXC) for high integration integrated circuits
US20030033559A1 (en) System and method for exposing hidden events on system buses
JP2021531530A (ja) デバッグコントローラ回路
US7437617B2 (en) Method, apparatus, and computer program product in a processor for concurrently sharing a memory controller among a tracing process and non-tracing processes using a programmable variable number of shared memory write buffers
US7213169B2 (en) Method and apparatus for performing imprecise bus tracing in a data processing system having a distributed memory
US6912673B1 (en) Bus analyzer unit with programmable trace buffers
US11127442B2 (en) Data transfers between a memory and a distributed compute array
US20060150023A1 (en) Debugging apparatus
US9612934B2 (en) Network processor with distributed trace buffers
US7302616B2 (en) Method and apparatus for performing bus tracing with scalable bandwidth in a data processing system having a distributed memory
US20140013011A1 (en) Debug architecture
US11429315B1 (en) Flash queue status polling
JP2004310749A (ja) 分散型メモリを有するデータ処理システムにおいてバストレーシングを行うための方法および装置
US8769357B1 (en) System and method for evaluation of a field programmable gate array (FPGA)
CN116841458A (zh) 存储器读写控制方法、系统、终端及存储介质
CN103268278B (zh) 支持多核处理器的sram控制器及其跟踪信息处理方法
Kim et al. Decoupled SSD: Rethinking SSD Architecture through Network-based Flash Controllers
JP4737702B2 (ja) ディスクアレイ制御装置
US7644201B2 (en) Method and system for performance enhancement via transaction verification using a counter value in a polled data storage environment
JP3119155B2 (ja) バスアクセス方式

Legal Events

Date Code Title Description
A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20061228