JPWO2012108024A1 - 中継装置、中継履歴記録方法、及びデータ処理装置 - Google Patents
中継装置、中継履歴記録方法、及びデータ処理装置 Download PDFInfo
- Publication number
- JPWO2012108024A1 JPWO2012108024A1 JP2012556706A JP2012556706A JPWO2012108024A1 JP WO2012108024 A1 JPWO2012108024 A1 JP WO2012108024A1 JP 2012556706 A JP2012556706 A JP 2012556706A JP 2012556706 A JP2012556706 A JP 2012556706A JP WO2012108024 A1 JPWO2012108024 A1 JP WO2012108024A1
- Authority
- JP
- Japan
- Prior art keywords
- data
- information
- trace
- packet
- value
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/86—Event-based monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本発明を適用した1システムは、データ処理を行う処理装置から送信された通信単位データを受信した場合に、受信した通信単位データから予め定めたデータをトレース情報として抽出し、受信した通信単位データを計数する。受信した通信単位データの履歴情報は、抽出されたトレース情報、及び計数結果から得られる統計情報のなかから選択する。選択した履歴情報は、処理装置が使用可能な記憶装置に記録する。
Description
本発明は、データ処理を行う処理装置間で送受信される通信単位データ(例えばパケット)を中継する技術に関する。
データ処理を行う処理装置間では、データはパケットに代表される予め定めた形式の通信単位データ(以降「パケット」と表記)に分けて送受信される。通常、処理装置内でのデータの転送速度は、処理装置間を結ぶ通信経路のデータの転送速度と比較して非常に高速である。このこともあり、処理装置におけるパケットの送受信は中継装置を介して行うようになっているのが普通である。
中継装置のなかには、障害発生時の対応等のために、パケットの中継動作を表す履歴情報を記録できるものがある。履歴情報の記録・保存には、RAM等の比較的に高速なメモリが用いられるのが普通である。大量の履歴情報を記録する場合、中継装置と接続されたメモリが履歴情報の記録に用いられる。中継装置とは別に用意されたメモリに履歴情報を記録するのは、大容量のメモリが安価に入手できるようになったのが理由の一つである。
中継装置に大容量のメモリを搭載させるような場合、中継装置の製造コストは大幅に上昇し、開発期間もより長くなる。このようなことから、安価に入手できるメモリの採用には、中継装置に大容量のメモリを搭載させる場合と比較して、製造コストをより抑えることができる、開発期間をより短縮できる、といった利点がある。
中継装置と接続されたメモリは、履歴情報の記録のみに用いられるとは限らない。つまり履歴情報を記録させるメモリは、中継装置が他の用途に、或いは中継装置とは別の装置により使用されることが考えられる。そのように複数用途に用いられるメモリ(以降便宜的に「共有メモリ」と表記)では、例えば中継装置とは別の装置によるアクセスが共有メモリに集中する。つまり、共有メモリでは単位時間当たりのアクセス要求数が非常に多くなる可能性がより高くなる。
別の装置による共有メモリへのアクセスが集中している状況下での中継装置による履歴情報の記録は、別の装置による共有メモリへのアクセスを阻害させることになる。別の装置がCPU(Central Processing Unit)のようなデータ処理を行う処理装置であれば、CPUによる共有メモリへのアクセスが阻害されることにより、データの処理速度が大きく低下する可能性がある。CPUにおけるデータの処理速度の大幅な低下は、装置全体の性能を大きく悪化させる可能性があることから、望ましくない。それにより、共有メモリに履歴情報を記録する場合、中継装置とは別の装置によるアクセスを考慮することが重要と考えられる。
本発明は、複数用途に用いられるメモリへのアクセス状況に対応して、メモリに通信単位データの中継動作を表す履歴情報を記録できる技術を提供することを目的とする。
本発明を適用した1システムでは、データ処理を行う処理装置から送信された通信単位データ(例えばパケット)を受信した場合に、該受信した通信単位データから予め定めたデータをトレース情報として抽出する情報抽出手段と、処理装置が使用可能な記憶装置にアクセスするアクセス手段と、受信した通信単位データを計数する計数手段と、情報抽出手段が抽出したトレース情報、及び計数手段による計数結果から得られる統計情報のなかで記憶装置に格納すべき対象を受信した通信単位データの履歴情報として選択し、該選択した履歴情報をアクセス手段により記憶装置に格納させる情報選択手段と、を具備する。
本発明を適用した1システムでは、複数用途に用いられるメモリへのアクセス状況に対応して、メモリに通信単位データの中継動作を表す履歴情報を記録できる。
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
図1は、本実施形態によるデータ処理装置の構成を説明する図である。
データ処理装置(コンピュータ)は、それぞれが1台のコンピュータに相当する複数のシステムボード1をグローバルシステムバス2に接続することにより、システムボード1間でのデータの送受信が可能な構成となっている。ここでは、システムボード1としてシステムボード1a〜1cの3つを図1に表している。
図1は、本実施形態によるデータ処理装置の構成を説明する図である。
データ処理装置(コンピュータ)は、それぞれが1台のコンピュータに相当する複数のシステムボード1をグローバルシステムバス2に接続することにより、システムボード1間でのデータの送受信が可能な構成となっている。ここでは、システムボード1としてシステムボード1a〜1cの3つを図1に表している。
各システムボード1には、CPU11と、CPU11に接続されたメモリ(例えばSDRAMモジュール)12、13とを含むノード(図1には2つ表記)が複数、搭載され、各ノードのCPU11は互いに接続されている。それにより、図1のコンピュータではNUMA(Non-Uniform Memory Access)が採用されている。また、各ノードのCPU11はNC(ノードコントローラ)14と接続され、NC14にもメモリ(例えばSDRAMモジュール)15、16が少なくとも接続されている。ここでは便宜的に、各CPU11に接続されたメモリ12、13、及びNC14に接続されたメモリ15、16には、例えば信頼性(安全性)の向上のために、同じデータが格納されると想定する。
各CPU11には、メモリ12、13にアクセスするためにMC(Memory Controller)11aが搭載されている。各CPU11は、例えばSSD(Solid State Drive)、或いはハードディスク装置であるストレージ18が接続可能であり、システムボード1cでは、CPU11にストレージ18が接続されている。
特には図示していないが、各CPU11、或いは所定のCPU11には、起動用のBIOS(Basic Input/Output System)等が格納された例えばROMが接続されている。例えばROMは、システムボード1毎に少なくとも1つのCPU11に接続されている。これは、システムボード1内のCPU11間の通信により、システムボード1内の全てのCPU11がROMのBIOSをロードできるようにするためである。BIOSをロードしたCPU11は別のシステムボード1等からのデータの取得が可能になるため、OS(Operating System)、及びアプリケーションプログラム等は任意の場所に格納させることができる。
各NC14にもストレージ17が接続可能であり、図1の例では、システムボード1cに搭載されたNC14にはストレージ17が接続されている。NC14は、システムボード1間のグローバルシステムバス2を介したデータの送受信を中継する。それにより、本実施形態による中継装置はNC14に搭載されている。本実施形態によるデータ処理装置は、このNC14を搭載することで実現されている。
データの送受信は、図2に表すような構成の通信単位データであるパケットを用いて行われる。このパケットは、図2に表すように、パケットの宛先となるCPU11を表す宛先ID、パケットの送信元CPU11を表す送信元ID、パケットの識別用のユニークなID(図2中「UID」と表記)、パケットにより要求される内容を表すリクエストタイプ(図2中「Req Type」と表記)、リクエストタイプにより指定される内容のアクセスを行うべきアドレス、及びデータ本体が格納されるデータ部を備えた構成となっている。宛先ID、送信元ID、UID、リクエストタイプ、及びアドレスはヘッダ部を構成する。
パケットの構成は、図2に表すようなものに限定されない。また、通信単位データは、パケット以外のものであっても良い。
図2に表すようなパケットを用いたデータの送受信は、以下のようにして行われる。ここではシステムボード1aの1つのCPU11がシステムボード1bの1つのCPU11bからデータを取得する場合を例にとって説明する。図1中、システムボード1aのデータを要求する要求元のCPU11aは「リクエスタ」と表記している。
図2に表すようなパケットを用いたデータの送受信は、以下のようにして行われる。ここではシステムボード1aの1つのCPU11がシステムボード1bの1つのCPU11bからデータを取得する場合を例にとって説明する。図1中、システムボード1aのデータを要求する要求元のCPU11aは「リクエスタ」と表記している。
システムボード1aのCPU11は、システムボード1bのCPU11宛てに、必要なデータの送信を要求するパケットを生成してシステムボード1aのNC14に送信する(シーケンスS1)。このとき生成されるパケットの宛先ID、送信元IDは、システムボード1a内部で用いられるものである。このことから、システムボード1aのNC14は、システムボード1aのCPU11aから受信したパケットの宛先ID、送信元IDをシステムボード1間で用いられるものに変換し、この変換を行った後のパケットをグローバルシステムバス2に出力する。それにより、システムボード1bのNC14は、システムボード1aからグローバルシステムバス2に出力されたパケットを取り込む(以上、シーケンスS2)。
システムボード1bのNC14は、取り込んだパケットの宛先ID、送信元IDをシステムボード1b内部で用いられるものに変換し、変換を行った後のパケットをシステムボード1bのCPU11bに送信する(シーケンスS3)。パケットを受信したCPU11bは、そのパケットで指定されたデータを例えば自身に接続されているメモリ12、或いは13から読み出し、読み出したデータをデータ部に格納したパケットを生成し、NC14に送信する(シーケンスS4)。
システムボード1bのNC14は、受信したパケットの宛先ID、送信元IDをシステムボード1間で用いられるものに変換し、変換を行った後のパケットをグローバスシステムバス2に出力する。それにより、システムボード1aのNC14は、グローバルシステムバス2に出力されたパケットを取り込む(以上、シーケンスS5)。
システムボード1aのNC14は、取り込んだパケットの宛先ID、送信元IDをシステムボード1a内部で用いられるものに変換し、変換を行った後のパケットをCPU(リクエスタ)11aに送信する(シーケンスS6)。それにより、CPU11aは、指定したデータをシステムボード1bのCPU11bから取得する。
図1に表すような構成のデータ処理装置では、上記のようにシステムボード1間でパケット(データ)の送受信が行われる。パケットの送受信は、比較的に伝送速度が低速なグローバルシステムバス2を介して行われるため、システムボード1、及びデータ処理装置の各処理性能にグローバルシステムバス2を介したパケットの送受信が大きく影響する。このこともあり、各システムボード1のNC14は、パケットの中継動作を表す履歴情報をメモリ15、16に記録する。記録した履歴情報は、次期製品の開発時のシミュレーション、発生したエラーの原因の究明、性能問題を発生させるアクセスパターンの解析等に用いられる。
図3は、NC14に接続されたメモリ15、16のアドレスマップを説明する図である。メモリ15、16には、図3に表すように、パケットの中継動作を表す履歴情報の格納用にトレース(Trace)記録領域が設けられ、他の領域は例えば各システムボード1の各CPU11が使用可能になっている。図3に表記の「OSが使用可」は各CPU11が使用可能であることを表している。また、「OSが使用不可」は、ここではNC14のみが使用可能であることを表している。NC14のみが使用可能とは、より具体的には、NC14のみがデータを格納できることを意味する。「開始Address」はトレース記録領域における先頭アドレス、「上限Address」はトレース記録領域における最終アドレスである。
複数のシステムボード1は、複数のパーティションに分割される場合がある。その場合、各システムボード1のNC14に接続されたメモリ15、16は、同じパーティションに属する各システムボード1に搭載された各CPU11が使用可能となる。ここでは便宜的に、各システムボード1のNC14に接続されたメモリ15、16は、全てのシステムボード1に搭載された全てのCPU11が使用可能と想定する。
図3に表すように、各NC14が履歴情報を格納するメモリ15、16は各システムボード1の各CPU11も使用可能となっている。そのように複数の装置が使用可能、つまり複数の用途に用いられるメモリ15、16では、単位時間当たりのアクセス要求数が非常に多くなる可能性がある。メモリ15、16を使用可能な1つ以上のCPU11によるアクセスが集中している状況下でのNC14による履歴情報の記録は、そのCPU11によるアクセスを阻害させることになる。このアクセスの阻害は、CPU11、更にはデータ処理装置全体の処理能力を低下させる。このことから、本実施形態では、NC14に、メモリ15、16へのアクセスの状況に応じた履歴情報を自動的に格納できるようにしている。以降、NC14について詳細に説明する。
図4は、NC14の構成を説明する図である。
図4に表すように、NC14は、CPU11から送信されたパケットを受信するパケット受信部41、CPU11にパケットを送信するパケット送信部42、グローバルシステムバス2に伝送されたパケットを受信するパケット受信部43、グローバルシステムバス2にパケットを出力するパケット送信部44、パケットの中継を制御するパケット制御部45を備える。更に、メモリ15、16にアクセスするMC(Memory Controller)46、履歴情報の格納を制御するトレース記録回路47、及びマネジメントボード21との接続用のSC(Sideband Controller)48を備える。マネジメントボード21は、例えばデータ処理装置を管理するための装置である。図4では、同じシステムボード1内に存在するCPU11は便宜的に一つのみ表しているが、CPU11はシステムボード内に複数存在する。パケット受信部41及びパケット送信部42もCPU11毎に存在する。
図4に表すように、NC14は、CPU11から送信されたパケットを受信するパケット受信部41、CPU11にパケットを送信するパケット送信部42、グローバルシステムバス2に伝送されたパケットを受信するパケット受信部43、グローバルシステムバス2にパケットを出力するパケット送信部44、パケットの中継を制御するパケット制御部45を備える。更に、メモリ15、16にアクセスするMC(Memory Controller)46、履歴情報の格納を制御するトレース記録回路47、及びマネジメントボード21との接続用のSC(Sideband Controller)48を備える。マネジメントボード21は、例えばデータ処理装置を管理するための装置である。図4では、同じシステムボード1内に存在するCPU11は便宜的に一つのみ表しているが、CPU11はシステムボード内に複数存在する。パケット受信部41及びパケット送信部42もCPU11毎に存在する。
パケット制御部45は、パケット判定部45a、スヌープ発行部45b、リクエスト変換部45c、及び2つのセレクタ45d、45eを備える。
パケット判定部45aは、パケット受信部41或いは43からパケットを入力すると、入力したパケットが要求する内容を特定し、スヌープ発行部45bあるいはリクエスト変換部45cのうちの少なくとも一方に指示する。
パケット判定部45aは、パケット受信部41或いは43からパケットを入力すると、入力したパケットが要求する内容を特定し、スヌープ発行部45bあるいはリクエスト変換部45cのうちの少なくとも一方に指示する。
複数のCPUが存在するデータ処理装置では、或るメモリに格納されたデータを1つ以上のCPUがキャッシュメモリに保存している場合がある。このため、キャッシュメモリとメモリのコヒーレンシを保つ必要がある。本実施形態では、このコヒーレンシの実現にスヌープ方式を採用している。スヌープ発行部45bは、コヒーレンシを実現させるためにパケットの1種であるスヌープ・メッセージを発行する。コヒーレンシの実現は、スヌープ方式以外の方式を用いて行っても良い。ディレクトリ方式等の他の既存の方式を採用しても良い。
キャッシュメモリ中のデータ(キャッシュライン)は、M(Modified)、E(Exclusive)、S(Shared)、I(Invalid)の4状態の何れかの状態となっている。M状態とは、データが当該キャッシュメモリのみに存在し、メモリ(データが格納されたメモリ)上の値からデータが変更されている状態である。E状態とは、データは当該キャッシュメモリのみに存在するが、メモリ上の値と一致している状態である。S状態とは、複数のキャッシュメモリにデータが存在している状態である。I状態とは、キャッシュメモリ内のデータが無効となっている状態である。これら4状態の何れであるかを表す情報は、通常、キャッシュラインのタグに格納される。パケットでは、この情報はリクエストタイプに反映される。
例えばM状態のデータをメモリ12、13から取得する場合、メモリ12、13からデータを読み出す前に、キャッシュメモリに存在する変更されたデータをメモリ12、13に書き込まなければならない。また、S状態のデータをメモリ12、13に書き込む場合、他のキャッシュメモリに存在するデータはI状態に移行させなければならない。このようなことから、コヒーレンシを実現させるためのスヌープ・メッセージもグローバルシステムバス2に出力される。それにより、パケット判定部45aは、パケット受信部43からパケットの他に、スヌープ・メッセージを入力する。割り込み用のメッセージであるパケットもパケット受信部43からパケット判定部45aに出力される。
パケット判定部45aは、パケット受信部43からスヌープ・メッセージを入力した場合、スヌープ発行部45bに指示して、スヌープ・メッセージを発行させる。このスヌープ・メッセージは、例えば同じシステムボード1内の各CPU11に送信させるものである。それにより、発行させたスヌープ・メッセージは、セレクタ45d、及びパケット送信部42を介して、同じシステムボード1内の各CPU11に送信させる。
パケット受信部43からスヌープ・メッセージとは異なるパケットを入力した場合には、パケット判定部45aは、入力したパケットをリクエスト変換部45cに出力し、宛先ID、送信元IDを変換させたパケットをリクエスト変換部45cに生成させる。生成されたパケットはセレクタ45d及び対応するパケット送信部42を介して対応するCPU11に送信される。宛先ID、送信元IDの変換は、例えば宛先IDは同じシステムボード1内で用いられるローカルなCPU11のIDに、送信元IDはNC14自身のローカルなIDに置き換えることで行われる。
パケットをパケット受信部41から入力した場合、パケット判定部45aは、スヌープ・メッセージを発行させるべきか否か判定することにより、必要に応じて、スヌープ・メッセージの発行をスヌープ発行部45bに指示する。スヌープ・メッセージを発行させる場合、パケット判定部45aは、セレクタ45eを介してスヌープ・メッセージをグローバルシステムバス2に出力させた後、入力したパケットをリクエスト変換部45cに出力し、宛先ID、送信元IDを変換させたパケットをリクエスト変換部45cに生成させる。リクエスト変換部45cにより生成されたパケットはセレクタ45eを介してグローバルシステムバス2に出力される。スヌープ・メッセージを発行させる必要がない場合、パケット判定部45aは、入力したパケットを直ちにリクエスト変換部45cに出力し、宛先ID、送信元IDを変換させたパケットをリクエスト変換部45cに生成させる。宛先ID、送信元IDの変換は、例えば宛先IDは、送信すべきシステムボード1のCPU11に割り当てられたシステムボード1間に用いられるグローバルなIDに、送信元IDは、NC14自身のグローバルなIDに置き換えることで行われる。
パケット受信部41及び43が受信するパケットのなかには、NC14に接続されたメモリ15、16へのアクセスを要求するものがありうる。そのようなパケットを入力した場合、パケット判定部45aは、MC46にメモリ15、16へのアクセスを指示する。そのアクセスを行った結果がMC46から通知されるのを待って、パケット判定部45aはリクエスト変換部45cに指示し、応答となるパケットを生成させる。生成させたパケットはセレクタ45eを介してグローバルシステムバス2に出力させるか、或いはセレクタ45d及び対応するパケット送信部42を介して対応するCPU11に送信させる。図4中に表記の「NC DIMM アクセス」は、メモリ15、16にデータを書き込む、或いはデータを読み出すアクセスである。
パケット判定部45aは、パケット受信部41或いは43からパケットを受信した場合、受信したパケットをトレース記録回路47に出力する。本実施形態では、パケットのヘッダ部(図2)のみを履歴情報として格納する対象としている。以降、パケットのヘッダ部は「トレースデータ」と呼び、パケット判定部45aはトレースデータのみトレース記録回路47に出力すると想定する。なお、トレースデータは、パケット全体であっても良い。この場合、パケットから格納すべき対象となるデータを抽出しなくとも良い。また、トレースデータはヘッダ部の一部を省いたものであっても良い。
トレース記録回路47は、パケット判定部45aから入力したトレースデータを履歴情報として一時的に保存するか、或いはトレースデータを用いて別の履歴情報を生成し、MC46を介してメモリ15、16に格納する。図4中に表記の「Write リクエスト」は、メモリ15、16に履歴情報を格納させるためのリクエストである。生成する履歴情報、及び履歴情報のメモリ15、16への格納に係る設定は、SC48に接続されたマネジメントボード21を用いて行うことができる。また、CPU11により、パケット制御部45を介して行わせることもできる。
図5は、トレース記録回路、MCの構成を説明する図である。
トレース記録回路47は、トレースバッファ47a、イベント(Event)カウンタ47b、リクエスト生成回路47c、アドレス(Address)カウンタ47d、及び収集モードレジスタ47cを備えている。図5中の「Trace Data」は、履歴情報として格納する対象となりうるデータである。上記のように、ここでは「Trace Data」はパケットのヘッダ部が相当する。
トレース記録回路47は、トレースバッファ47a、イベント(Event)カウンタ47b、リクエスト生成回路47c、アドレス(Address)カウンタ47d、及び収集モードレジスタ47cを備えている。図5中の「Trace Data」は、履歴情報として格納する対象となりうるデータである。上記のように、ここでは「Trace Data」はパケットのヘッダ部が相当する。
トレースバッファ47aは、パケットのなかで履歴情報として格納する対象となるデータを一時的に保存するためのバッファである。本実施形態では、パケットのなかでヘッダ部、つまりトレースデータのみが一時保存の対象となる。
イベントカウンタ47bは、予め指定した種類のパケットが出現した回数をカウントするためのものである。本実施形態では、イベントカウンタ47bによるカウント値(計数値)も履歴情報として格納可能としている。このカウント値は、特定のパケットが出現した頻度を表す累積(統計)情報である。
履歴情報は、図3に表すように、メモリ15、16に設けられたトレース記録領域に格納する。本実施形態では、メモリ15、16の上限アドレスまで履歴情報を格納すると、開始アドレスから履歴情報を記録(上書き)するようにしている。アドレスカウンタ47dは、そのようにサイクリックにトレース記録領域への履歴情報の格納を実現させるためのものである。収集モードレジスタ47eは、履歴情報の記録(収集)に係わる収集モードを表す値の格納用である。
本実施形態では、収集モードとして2種類を用意している。一つは、履歴情報の収集を優先させるトレース優先モードであり、もう一つは、メモリ15、16へのアクセスを優先させるアクセス優先モードである。トレース優先モードの設定時には、収集モードレジスタ47eには論理値の1が格納され、アクセス優先モードの設定時には、収集モードレジスタ47eには論理値の0が格納される。以降「論理値」は単に「値」とも表記する。
リクエスト生成回路47cは、収集モードレジスタ47eに格納された値に応じて、トレースバッファ47aに保存されたトレースデータ、及びイベントカウンタ47bによるカウント値の何れかをメモリ15、16に格納すべき対象として選択する。
トレースデータ、及びカウント値の何れも、パケットの中継動作を表す履歴情報である。しかし、データ量は大きく異なる。例えば宛先ID、送信元ID、UID、リクエストタイプ、及びアドレスにそれぞれ1、1、0.5、0.5及び5バイトが割り当てられている場合、トレースデータとして記録されるヘッダ部全体は8バイトのデータとなる。それにより、1パケット毎に、履歴情報の格納に8バイトの領域が必要となる。
これに対し、カウント値では、例えば4バイトを割り当てると、4.2×109以上のパケットに対応できることとなる。このため、たとえイベントカウンタ47bを多数、用意したとしても、ヘッダ部を用いたトレースデータをパケット毎に格納する場合と比較して、全体のデータ量は大幅に抑えられる。従って、トレースデータをパケット毎に格納する場合と比較して、メモリ15、16にアクセスする頻度も大幅に抑えることができる。
このようなことから、本実施形態では、トレース優先モードではトレースデータを履歴情報として記録し、アクセス優先モードではカウント値を履歴情報として記録するようにしている。それにより、メモリ15、16へのアクセスが集中する、つまり単位時間当たりのアクセス要求数が非常に多い状況下であっても、そのアクセスが集中する度合いを抑えつつ、履歴情報の収集を行えるようにしている。このため、メモリ15、16を使用可能なCPU11にとっては、履歴情報の記録によってメモリ15、16へのアクセスが阻害されるのが抑えられることになる。この結果、CPU11が使用するメモリ15、16を履歴情報の記録に使用したとしても、CPU11の処理速度の低下、更にはデータ処理装置全体の処理速度の低下が共に抑えられることとなる。
メモリ15、16にデータを書き込む単位データに複数のトレースデータを格納できる場合、1単位データに1トレースデータのみを格納するのは効率的ではない。このことから、本実施形態では、トレースバッファ47aはメモリ15、16の単位データ分のトレースデータをまとめる用途にも用いている。ここでは便宜的に、単位データは64バイト、1トレースデータは8バイトと想定する。この想定では、1単位データに最大8トレースデータを格納することができる。
上記のような構成のトレース記録回路47は、パケット制御部45を介した設定に従って動作させることができる。図5中に表記の「Enable/Disable」は、履歴情報の記録を有効にさせるか否かの設定が可能であることを表している。
MC46は、リクエストバッファ(図5中「Req Buffer」と表記)46a、ライトデータバッファ(図5中「Write Data Buffer」と表記)46b、リードデータバッファ(図5中「Read Data Buffer」と表記)46c、及びIO部46dを備えている。
リクエストバッファ46aは、リクエストの内容を表すリクエストデータを複数、格納可能なバッファである。ライトデータバッファ46bは、メモリ15、16に格納する対象となるデータを複数、格納可能なバッファである。リードデータバッファ46cは、メモリ15、16から読み出されたデータが複数、格納可能なバッファである。IO部46dは、リクエストバッファ46aに格納されたリクエストデータを参照し、リクエストデータに従ってメモリ15、16にアクセスする装置である。
リクエストバッファ46aに格納されるリクエストデータは、例えばアクセスの種類、及びアクセスすべきアドレスを少なくとも表すものである。パケット制御部45から出力されるリクエストデータ(図5中「DIMM リード/ライトリクエスト」と表記)は、例えばパケットのヘッダ部から生成される。パケットのデータ部に格納されたデータは、ライトデータバッファ46bに格納させるデータ(図5中「DIMMライトData」と表記)となりうる。リードデータバッファ46cから読み出されたデータ(図5中「DIMMリードData」と表記)は、パケットのデータ部に格納するデータとなりうる。
IO部46dは、リクエストバッファ46aから未処理のリクエストデータを取得し、取得したリクエストデータが指定するアクセスをメモリ15、16に対して行う。例えばリクエストデータがライトアクセスを指定していた場合、IO部46dは、ライトデータバッファ46bの対応するエントリからデータを取得し、リクエストデータが指定するメモリ15、16のアドレスに取得したデータを書き込む。また、リクエストデータがリードアクセスを指定していた場合、IO部46dは、リクエストデータが指定するメモリ15、16のアドレスに格納されたデータを読み出し、リードデータバッファ46cの対応するエントリに読み出したデータを書き込む。そのようにして、リクエストデータが指定するアクセスを行った後、IO部46dは、アクセスの完了をリクエストバッファ46aに通知する。その通知により、リクエストバッファ46aは、リクエストされたアクセスの完了を通知するメッセージである完了通知をパケット制御部45に出力する。この完了通知は、例えばリクエストデータを用いて生成されるものである。
トレース記録回路47のリクエスト生成回路47cは、アドレスカウンタ47dが出力するアドレスの値を用いてリクエストデータを生成し、生成したリクエストデータをMC46に出力する。出力されたリクエストデータは、MC46のリクエストバッファ46aのなかで空いているエントリに格納される。トレースバッファ47aに格納されたトレースデータ、及びイベントカウンタ47bのカウント値は、ライトデータバッファ46aに格納すべきデータとしてMC46に出力される。
リクエストバッファ46aは、例えばリクエストデータを格納するエントリに空きが無くなるか、或いはエントリの空きが設定値以下となった場合、その旨を表すビジー(Busy)信号をアクティブにする。アクティブとしたビジー信号は、エントリの空きが設定値以上となった場合に、イナクティブとされる。
このようなことから、ビジー信号がアクティブとなっている状況では、メモリ15、16へのアクセスが集中していることになる。そのような状況では、CPU11によるメモリ15、16へのアクセスを阻害させないようにするのが望ましい。このため、本実施形態では、ビジー信号がアクティブとなった場合、収集モードの設定に係わらず、履歴情報としてイベントカウンタ47bのカウント値を格納するようにしている。それにより、ビジー信号がアクティブの状況下では、CPU11によるメモリ15、16へのアクセスを優先させるようにして、CPU11の処理速度の低下を抑えるようにしている。そのようにメモリ15、16に記録すべき履歴情報を自動的に選択することから、複数用途に用いられるメモリ15、16へのアクセス状況に適切に対応できることとなる。ビジー信号は、例えばアクティブのときの論理値は1、イナクティブのときの論理値は0の信号である。
ビジー信号は、トレースバッファ47aに未格納のトレースデータが存在する状況でアクティブになる可能性がある。このことから、本実施形態では、リクエストバッファ47aは、リクエストデータを格納するエントリの空きが設定値以下となった場合に、ビジー信号をアクティブにする。それにより、リクエスト生成回路47cは、ビジー信号がアクティブとなった場合、トレースバッファ47aに格納されているトレースデータをメモリ15、16に格納させる。
図6は、トレース記録回路の具体的な構成例を説明する図である。次に図6を参照して、トレース記録回路47の具体的な構成について詳細に説明する。
パケット制御部45から入力したトレースデータは、ORゲート62に出力される。ORゲート62は、例えばトレースデータの各ビットの値の論理和をANDゲート63に出力する。トレースデータの何れかのビットの論理値は1となる。このため、パケット制御部45からトレースデータが入力された場合、ORゲート62は論理値が1の論理和を出力することとなる。
パケット制御部45から入力したトレースデータは、ORゲート62に出力される。ORゲート62は、例えばトレースデータの各ビットの値の論理和をANDゲート63に出力する。トレースデータの何れかのビットの論理値は1となる。このため、パケット制御部45からトレースデータが入力された場合、ORゲート62は論理値が1の論理和を出力することとなる。
ANDゲート63は、ORゲート62の出力する論理和の他に、トレース指示レジスタ61に格納された値の反転された値を入力し、論理積をカウンタ64に出力する。トレース指示レジスタ61は、複数ビットのデータを格納できるレジスタであり、履歴情報の記録を行わせるか否かの設定に用いられる。
例えばトレース指示レジスタ61に1ビットのデータを格納させる場合、履歴情報を記録させるためには「0」、履歴情報を記録させないためには「1」を格納させる。ANDゲート63には、1ビットの値が反転されて入力される。このため、履歴情報を記録させない設定が行われていた場合、ANDゲート63が出力する論理積の値は常に0となる。履歴情報を記録させる設定が行われていた場合、ORゲート62が出力する論理和の値が1となることで、ANDゲート63が出力する論理積の値は1となる。
カウンタ64は、ANDゲート63が出力する論理積の値が1となる度に、カウント値をインクリメントする。このため、カウンタ64のカウント値は、パケット制御部45がトレース記録回路47に出力したトレースデータ数に一致する。カウンタ64は、カウント値が上限値に達すると、カウント値を0にする。それにより、カウンタ64は、パケット制御部45がトレース記録回路47に出力したトレースデータ数をサイクリックに計数する。カウンタ64のカウント値は統計情報用バッファ65に出力される。
パケット制御部45から入力したトレースデータは、マスク回路82にも出力される。マスク回路82は、ANDゲート63が出力する論理積の値が1となっている場合に、入力したトレースデータを出力する回路である。マスク回路82から出力されたトレースデータは、比較部66、複数のイベントカウンタ77、及びトレースバッファ69にそれぞれ入力される。
比較部66は、パケット制御部45が出力したトレースデータのなかから履歴情報として記録する対象となりうるトレースデータを抽出するためのものである。具体的には、例えば図7に表すような構成が採用されている。ここで図7を参照して、比較部66の構成について詳細に説明する。
比較部66は、図7に表すように、3つの部分比較部91〜93、及び各部分比較部91〜93の出力信号の論理積を取るANDゲート94を備えている。ANDゲート94が出力する論理積が、比較部66の出力信号となる。
トレースデータ、つまりパケットのヘッダ部は、図2に表すような構成となっている。このことから本実施形態では、履歴情報として記録する対象となりうるトレースデータは、宛先ID、送信元ID、及びリクエストタイプの組み合わせで指定できるようにしている。それにより、3つの部分比較部91〜93は、宛先ID、送信元ID、及びリクエストタイプのデータ別に、トレースデータが指定されたものか否かを特定するために設けている。ここでは便宜的に、部分比較部91〜93はそれぞれ、宛先ID用、送信元ID用、及びリクエストタイプ用と想定する。
部分比較部91の変換器101は、トレースデータ中の宛先IDを抽出し、抽出した宛先IDを、その複数ビットのなかで1ビットのみ値を1とする表現に変換する。このような変換を行うため、宛先IDに1バイトが割り当てられている場合、変換器101は256ビットのなかの1ビットのみ値を1とすることで宛先IDを変換する。例えば、宛先IDの値が0であれば、宛先IDの256ビットのうち、最下位に位置するビットの値のみ1とする。宛先IDの値が1であれば、宛先IDの256ビットのうち、最下位の1つ上に位置するビットの値のみ1とする。宛先IDの値が255であれば、宛先IDの256ビットのうち、最上位に位置するビットの値のみ1とする。変換器101が出力する各1ビットの値はそれぞれ、対応付けられたANDゲート104に出力される。例えば宛先IDの最下位のビットの値はANDゲート104−1に出力され、最下位の1つ上に位置するビットの値はANDゲート104−2に出力される。ANDゲート104は変換器101が宛先IDのビット数(=256)分、存在することから、ANDゲート104−1〜NのNの値は256となる。
レジスタ103は、宛先IDのビット数分のデータを格納できるレジスタである。レジスタ103は、例えば宛先IDのビットのなかで有効とすべきビットを指定するデータが格納されるレジスタである。上記のように変換器101が256ビットの値を出力する場合、例えば宛先IDが0のトレースデータのみを対象とするのであれば、レジスタ103には、最下位のビットのみ値が1のデータが格納される。全ての宛先IDのトレースデータを対象とするのであれば、全てのビットの値が1のデータがレジスタ103に格納される。
レジスタ103の各ビットの値はそれぞれ、対応付けられたANDゲート104に入力される。それにより、例えばレジスタ103の最下位に位置するビットの値はANDゲート104−1に入力される。このため、各ANDゲート104は、変換器101から出力される1ビットの値と、レジスタ103の1ビットの値との論理積を出力する。ORゲート105は、各ANDゲート104が出力する論理積を入力し、入力した論理積の論理和を出力する。この論理和が部分比較部91の出力信号としてANDゲート94に入力される。
特定の宛先IDを持つトレースデータを記録させる場合、ユーザーであるオペレータは、その宛先IDを値として指定する。その値の指定により、レジスタ103には指定された値に応じたデータが格納される。このため、各ANDゲート104−1〜Nのうちの一つが出力する論理積の値は1となり、ORゲート105の出力する論理和の値も1となる。この結果、部分比較部91は、トレースデータの選択が有効となっている場合、レジスタ103によって指定される宛先IDのトレースデータが比較部66に入力されることによって、値が1の信号を出力することとなる。
レジスタ103に全てのビットが0のデータを格納させた場合、変換器101が出力するビットの値に係わらず、各ANDゲート104−1〜Nの出力する論理積の値は0となる。このため、ORゲート105の出力する論理和の値も常に0となる。
他の部分比較部92及び93も部分比較部91と同様の構成である。このため、便宜的に部分比較部91の構成要素に付した符号をそのまま用いて、部分比較部92及び93を説明する。
トレースデータの選択が有効となっている状況では、部分比較部92は、レジスタ103により指定される送信元IDのトレースデータの入力によって、値が1の信号を出力する。同様に部分比較部93は、レジスタ103により指定されるリクエストタイプのトレースデータの入力によって、値が1の信号を出力する。このようなことから、ANDゲート94の出力する論理積、つまり比較部66の出力する信号の値は、予め指定された宛先ID、送信元ID、及びリクエストタイプを全て備えたトレースデータの入力によって1となる。
上記のような構成、及び動作の比較部66は、イベントカウンタ77にも比較部77aとして含まれる。このため、比較部77aの説明でも、便宜的に部分比較部91の構成要素に付した符号をそのまま用いる。
各イベントカウンタ77の比較部77aは、比較部66と同様に、オペレータが指定した宛先ID、送信元ID、及びリクエストタイプを全て備えたトレースデータの入力によって値が1の信号を出力する。比較部77aの3つの部分比較部91〜93のうちの何れかのレジスタ103の値が0になると、比較部77aの出力信号の値は常に0となる。
比較部77aの出力信号は、ANDゲート77bに入力される。ANDゲート77bは、比較部77aの出力信号と、ANDゲート79の出力する論理積の値を反転させた値の論理積を出力する。ANDゲート79の出力する論理積はカウンタ77cに出力される。カウンタ77cは、値が1の信号を入力する度に、カウント値をインクリメントするカウンタである。カウンタ77cのカウント値は、パルス発生器80の出力する信号パルスによってクリアされる。パルス発生器80は、ANDゲート79の論理積の値の1から0への変化を検出して信号パルスを出力する。このため、トレース優先モードの設定時において、カウンタ77cは、ビジー信号がアクティブとなってからイナクティブとなるまでの期間(以降「ビジー期間」と呼ぶ)、オペレータが指定のトレースデータがトレース記録回路47に入力された回数を計数することとなる。カウンタ77c、つまりイベントカウンタ77が計数を行っている期間は「計数対象期間」と総称する。ビジー情報がイナクティブとなる前に履歴情報を記録させない設定が行われた場合には、計数対象期間はビジー情報がアクティブとなってから設定変更によるトレース指示レジスタ61の値の書き換えが行われるまでの間となる。カウンタ77cのカウント値は統計情報用バッファ65に出力される。履歴情報を記録させない設定とは、トレース指示レジスタ61の値を1から0に書き換えることに相当する。
カウンタ77cのカウント値は、比較部77aにより、オペレータが指定した宛先ID、送信元ID、及びリクエストタイプを全て備えたトレースデータが計数対象期間内にトレース記録回路47に入力された数となる。それにより、各イベントカウンタ77は、オペレータの指定別に、トレースデータを計数することができる。宛先ID、送信元ID、及びリクエストタイプの組み合わせ毎に、各イベントカウンタ77にトレースデータの計数を行わせることができる。このため、各イベントカウンタ77によるカウント値は、オペレータの分類に応じた統計情報となる。
上記のように、比較部77aの3つの部分比較部91〜93のうちの何れかのレジスタ103の値が0となっている状況では、比較部77aの出力信号の値は常に0となる。このため、ANDゲート77bは値が1の論理積を出力しない。それにより、レジスタ103の何れか一つでも0が格納されているイベントカウンタ77は機能しないこととなる。このため、レジスタ103は、イベントカウンタ77を機能させるか否かの制御に用いられる。
上記比較部66の出力する信号はANDゲート67に入力される。ANDゲート67には他に、ANDゲート79の出力する論理積が入力される。ANDゲート79は、収集モードレジスタ78に格納されたデータとビジー信号の論理積を出力する。収集モードレジスタ78に格納されたデータの値は設定されている収集モードの種類を表す。上記のように、収集モードレジスタ78に格納される値は、トレース優先モードの設定時には1、アクセス優先モードの設定時には0である。ビジー信号の値は、アクティブ時には0、イナクティブ時には1である。このため、比較部66から論理値が1の信号を入力している状況では、トレース優先モードが設定され、且つビジー信号がイナクティブとなっている場合に、ANDゲート67の出力する論理積の値は1となる。
ANDゲート67の出力する論理積は、カウンタ68に入力される。カウンタ68が出力するカウント値は、トレースバッファ69に入力される。トレースバッファ69には、マスク回路82を介してトレースデータが出力される。
上記のように、メモリ15、16にデータを書き込む単位は64バイトである。トレースデータは8バイトである。このようなデータ量の違いにより、トレースバッファ69は64バイト(=8トレースデータ)分のトレースデータをまとめる用途で用いられる。カウンタ68が出力するカウント値は、トレースバッファ69内にトレースデータを格納する場所(レコード)の指定に用いられる。このために、カウンタ68はANDゲート67から入力する論理積の値が1になる度に、カウント値をインクリメントする。カウント値は比較器71の出力する信号の値が例えば1となった場合にクリア、つまりカウント値を0にセットする。
比較器71は、格納数レジスタ70のデータの値とカウンタ68のカウント値を比較し、両者が一致した場合に、値が1の信号を出力する。8トレースデータをトレースバッファ69に格納させる場合、カウンタ68に0〜7の間のカウント値を出力させれば良い。このため、格納数レジスタ70には値が7のデータを格納すれば良い。それにより、カウンタ68が7のカウント値を出力した場合、トレースバッファ69には8個目のトレースデータが格納され、その後にカウント値は0にセットされる。
比較器71の出力信号は、カウンタ75に入力される。カウンタ75は、メモリ15、16に履歴情報を格納すべきアドレスを生成するためのものである。メモリ15、16に格納する単位データは64バイトであることから、カウンタ75は、比較器71の出力信号の値が1となる度に、それまでのカウント値に64を加算する。
比較器71の出力信号はリクエスト出力部83に入力される。リクエスト出力部83は、他にカウンタ75のカウント値を入力する。それにより、リクエスト出力部83は、比較器71の出力信号の値が1になる度に、入力したカウント値を用いてリクエストデータを生成し、MC46に出力する。
カウンタ75には、開始アドレスレジスタ73、及び比較器74が接続されている。比較器74は、カウンタ75の出力するカウント値と上限アドレスレジスタ72に格納された値とを比較し、両者が一致した場合に、値が1の信号を出力する。
開始アドレスレジスタ73にデータとして格納される値は、メモリ15、16に確保されたトレース記録領域の先頭アドレスを表すものである(図3)。上限アドレスレジスタ72にデータとして格納される値は、メモリ15、16に確保されたトレース記録領域の上限アドレスに1を加算した値を表すものである(図3)。そのような値を条件アドレスレジスタ72に格納するのは、メモリ15、16に格納するデータは64バイト単位だからである。
カウンタ75は、比較器74の出力信号の値が1となった場合、開始アドレスレジスタ73に格納された値を設定する。それにより、カウンタ75は、開始アドレスレジスタ73の値を初期値、上限アドレスレジスタ72の値を上限値として、64単位でカウント値をアップさせるカウンタとして機能する。
リクエスト出力部83は、値が1の信号を入力する度に、カウンタ75のカウント値をアドレスとするリクエストデータを生成する。カウンタ75は、その後、それまでのカウント値に64を加える。64を加えたカウント値が上限アドレスレジスタ72の値と等しい場合、比較器74が出力する信号の値が1となって、カウンタ75は開始アドレスレジスタ73の値をカウント値として初期設定する。このようなことから、上限アドレスレジスタ72に格納する値は、トレース記録領域の上限アドレスに1を加算した値となる。
上記比較部66、イベントカウンタ77(比較部77a)、トレース指示レジスタ61、上限アドレスレジスタ72、及び開始アドレスレジスタ73の設定は、図8に表すような設定ファイルを用いて行われる。より具体的には、例えばシステムボード1に搭載されたCPU11のうちの一つが設定ファイルを参照し、パケット制御部45を介して各設定を行う。
この設定ファイルには、図8に表すように、履歴情報の記録に係わる基本情報、履歴情報を記録させるか否かに係わるイベント設定情報、記録対象とすべきトレースデータに係わるトレースマスク(Trace Mask)情報、取得すべき統計情報に係わるPA(Packet Accumulation)設定情報、が記述される。
基本情報としては、初期設定すべき収集モードを指定するトレースモード情報、トレース記憶領域のサイズを指定するトレースサイズ情報、トレース記憶領域を開始アドレス及び上限アドレスで指定するためのアドレス情報、が存在する。図8中に表記の「Trace開始 System Address」「Trace開始 System Address」はそれぞれ、開始アドレス用のアドレス情報、上限アドレス用のアドレス情報を表している。トレースサイズ情報、及びアドレス情報は、一方により他方の内容を特定できることから、そのうちの一つを記述すれば良い。
イベント情報(図8中「初期Event」と表記)は、トレース指示レジスタ61に初期値として格納すべき値を指定する。図8中の「開始Event」「停止Event」はそれぞれ、履歴情報の記録を行う設定、履歴情報の記録を行わない設定、を表している。トレース指示レジスタ61には、「開始Event」の設定時には0、「停止Event」の設定時には1が書き込まれる。
トレースマスク情報は、比較部66の設定に係わる。比較部66では、対象とすべきパケットの宛先ID、送信元ID、及びリクエストタイプをそれぞれ設定することができる。このことから、トレースマスク情報として、対象とすべき宛先ID、送信元ID、及びリクエストタイプをそれぞれ数値で記述することができる。
宛先ID、送信元ID、及びリクエストタイプの数値による記述は、変換器101による変換結果を想定して行われる。それにより、記述された数値の2進数表現のデータがレジスタ103に格納される。
変換器101は、上記のように、出力対象とするビットのなかで1ビットのみ値を1にする。このため、パケットの指定を有効とさせる場合、レジスタ103に記述される数値は1以上となる。出力対象とするビットのなかで1ビットのみ値を1にすることから、変換器101が16ビットで値を表現するのであれば(出力対象とするビット数が16であれば)、図8中に表記の「0xFFFF」は、全てのパケットを記録対象にすることを表している。つまり、例えば宛先IDでは、トレースマスク情報の値が「0xFFFF」になっている場合、全ての宛先IDを、その値に係わらず全て記録対象にすることを表している。図8では、宛先ID、送信元ID、及びリクエストタイプとしてそれぞれ「0xFFFF」を表記している。この表記は、ここでは全てのトレースデータが記録対象であることを表すために行っている。
トレースマスクに記述された数値が0であれば、対応するレジスタ103には全てのビットの値が0のデータが格納される。比較部66が有するレジスタ103のなかで全てのビットの値が0のデータが格納されたレジスタ103が存在する場合、比較部66は値が1の信号を出力しない。このため、記録対象とするパケットを指定する場合、トレースマスク情報では、宛先ID、送信元ID、及びリクエストタイプの何れも1以上の数値を記述させることが必要となっている。
PA設定情報は、イベントカウンタ77毎に記述される。上記のように、各イベントカウンタ77には比較部77aが含まれている。比較部77aは比較部66と基本的に同じ構成である。このため、PA設定情報でも、イベントカウンタ77毎に、対象とすべき宛先ID、送信元ID、及びリクエストタイプをそれぞれ数値で記述するようになっている。「カウンタ1」〜「カウンタ3」はそれぞれ、異なるイベントカウンタ77を表している。イベントカウンタ77を機能させない場合、PA設定情報のうち、例えば宛先ID、送信元ID、及びリクエストタイプのうちの少なくとも一つの数値を0にすれば良い。有効とさせるイベントカウンタ77の選択は、その選択用の情報を用意して、用意した情報により行えるようにしても良い。
図6の説明に戻る。
MC46は、リクエストデータの入力により、メモリ15、16に格納すべきデータを取り込む。入力したリクエストデータは、リクエストバッファ46aに格納され、取り込まれたデータはライトデータバッファ46bに格納される(図5)。
MC46は、リクエストデータの入力により、メモリ15、16に格納すべきデータを取り込む。入力したリクエストデータは、リクエストバッファ46aに格納され、取り込まれたデータはライトデータバッファ46bに格納される(図5)。
MC46が取り込むデータは、セレクタ76から出力される。セレクタ76は、トレースバッファ69のデータ、及び統計情報用バッファ65のデータのうちの一方を選択して出力する。
統計情報用バッファ65には、カウンタ64のカウント値、各イベントカウンタ77のカウント値が出力され、各パルス発生器80、81の出力する信号パルスに応じたカウント値を取り込む。
パルス発生器80は、ANDゲート79の論理積の値の1から0への変化を検出して信号パルスを出力する。これに対し、パルス発生器81は、ANDゲート79の論理積の値の0から1への変化を検出して信号パルスを出力する。このため、パルス発生器81は、トレース優先モードの設定時において、ビジー信号がアクティブからイナクティブに変化することで信号パルスを出力する。
統計情報用バッファ65は、パルス発生器80の出力する信号パルスにより、カウンタ64のカウント値を取り込む。パルス発生器81の出力する信号パルスにより、カウンタ64のカウント値、及び各イベントカウンタ77のカウント値を取り込む。各パルス発生器80、81の出力する信号パルスによりカウンタ64のカウント値をそれぞれ取り込むのは、計数対象期間、例えばビジー信号がアクティブとなっている期間、トレース記録回路47に出力されたトレースデータの数を特定できるようにするためである。それにより、トレース記録回路47に出力されたトレースデータのなかで、各イベントカウンタ77によって計数されたトレースデータの割合を把握することができる。
セレクタ76は、通常、トレースバッファ69のデータを選択し、パルス発生器81が信号パルスを出力した場合に、統計情報用バッファ65のデータを選択する。また、パルス発生器80、81の出力する信号パルスは、リクエスト出力部83、及びカウンタ64にそれぞれ入力される。このため、ビジー信号がアクティブとなってパルス発生器80がパルス信号を出力した場合、リクエスト出力部83はリクエストデータをMC46に出力し、トレースバッファ69のデータはセレクタ76を介してMC46に取り込まれることになる。その後、ビジー信号がイナクティブとなってパルス発生器81がパルス信号を出力した場合、リクエスト出力部83はリクエストデータをMC46に出力し、統計情報用バッファ65のデータはセレクタ76を介してMC46に取り込まれることになる。
図9は、メモリ15、16に記録される履歴情報を説明する図である。図9中「Not Busy」「Busy」はそれぞれ、イナクティブのビジー信号、アクティブのビジー信号を表している。各ラインは、メモリ15、16に一度に書き込まれる単位データを表している。図9は、トレース優先モードの設定時において、ビジー信号がイナクティブの状態→アクティブの状態→イナクティブの状態に順次変化した場合に、各状態、及び状態変化時に単位データとしてメモリ15、16に書き込まれる履歴情報を表している。
ビジー信号がイナクティブの状態では、図9に表すように、1単位データとして8トレースデータ、つまり8パケット分のヘッダ部がメモリ15、16に書き込まれる。ビジー信号がアクティブになると、その時にトレースバッファ64に格納されているトレースデータが1単位データとしてメモリ15、16に書き込まれる。図9では、ビジー信号がアクティブになった時には、1単位データに6トレースデータのみが含まれている。
ビジー信号がアクティブになると、統計情報用バッファ65にはカウンタ64のカウント値が格納される。その後、ビジー信号がイナクティブになると、カウンタ64のカウント値、及び各イベントカウンタ77のカウント値が統計情報用バッファ65に格納され、統計情報用バッファ65に格納されたデータはセレクタ76を介してMC46に出力される。このため、統計情報用バッファ65に格納されたデータが1単位データとしてメモリ15、16に書き込まれる。図9に2つ表記した「パケットカウント値」は、端に位置する方はビジー信号がアクティブになったことで統計情報用バッファ65に格納されたカウンタ64のカウント値、他方はビジー信号がイナクティブになったことで統計情報用バッファ65に格納されたカウンタ64のカウント値をそれぞれ表している。また、「第1のカウント値」「第2のカウント値」はそれぞれ、異なるイベントカウンタ77のカウント値を表している。
図9に表すように、ビジー信号がアクティブになると、ビジー信号がイナクティブになるまでの間、トレース記録回路46がデータ(履歴情報)の書き込みを要求するのは1回だけである。この1回の要求により、トレースバッファ69に格納されているトレースデータをメモリ15、16に書き込ませる。このため、CPU11によるメモリ15、16へのアクセスを阻害するのを大幅に抑えることができる。それにより、履歴情報の記録に伴うデータ処理装置の性能悪化も最小限に抑えることができる。
アクセス優先モードの設定時には、ANDゲート79の出力する論理積の値はビジー信号の値に係わらず、常に0になる。このため、各イベントカウンタ77にカウントを行わせることは可能であるが、各イベントカウンタ77のカウント値はそのままではメモリ15、16に記録されない。従って、履歴情報の記録によってCPU11のメモリ15、16へのアクセスが阻害されるようなことを回避させることができる。それにより、中継するパケットが多いシステムボード1では、NC14にアクセス優先モードを設定すれば良い。図6には、アクセス優先モードの設定時に各イベントカウンタ77のカウント値をメモリ15、16に記録させるための構成要素は省略しているが、マネジメントボード21は各イベントカウンタ77のカウント値を取得することが可能となっている。
図5及び図6では省略しているが、NC14は、MC46を介してメモリ15、16からデータを読み出すためのリード回路84を備えている。リード回路84は、サイドバンドコントローラ48と接続されており、サイドバンドコントローラ48と通信可能な装置(ここではマネジメントボード21)からの要求に応じてMC46に対し、データの読み出しを要求するためのリクエストデータ(図6中「Read Request」と表記)を出力する。リクエストデータの出力により得られたデータは、リード回路84からサイドバンドコントローラ48に出力され、サイドバンドコントローラ48を介して、データの読み出しを要求したマネジメントボード21に送信される。
このようにして、NC14と接続された装置、つまりマネジメントボード21は、NC14を介してメモリ15、16にアクセスできるようになっている。それにより、マネジメントボード21は、CPU11にメモリ15、16へのアクセスのための処理を行わせることなく、メモリ15、16にアクセスできるようになっている。このため、メモリ15、16に記録された履歴情報を取得する場合、何れのシステムボード1上のCPU11に対しても処理の実行を阻害させない。従って、接続された外部装置が直接的にNC14を介してメモリ15、16にアクセス可能にすると、データ処理装置全体の処理速度が低下する状況となるのをより回避させることができる。
図6では、SC48からトレース指示レジスタ61を指す矢印を描いている。これは、マネジメントボード21への操作により、SC48を介してトレース指示レジスタ61の値を書き換えられることを表している。他にトレース記録回路47が備えた各種レジスタの値もSC48を介して書き換えることができる。それにより、オペレータは、記録すべきトレースデータの種類、カウントすべきトレースデータの種類を随時、変更させることもできる。
図6に表すような構成において、図5に表す構成との対応関係は、例えば次のように云うことができる。即ちトレースバッファ47aはトレースバッファ69に相当すると云うことができる。イベントカウンタ47bは全てのイベントカウンタ77に相当すると云うことができる。アドレスカウンタ47dは上限アドレスレジスタ72、開始アドレスレジスタ73、及びカウンタ75に相当すると云うことができる。収集モードレジスタ47eは収集モードレジスタ78に相当すると云うことができる。図6のトレース記録回路47の他の構成要素は、リクエスト生成回路47cに相当すると云うことができる。
上記のように、トレース記録回路47への設定は、図8に表す設定ファイルを参照して行われる。次に図10を参照して、トレース記録回路47に設定を行う動作について詳細に説明する。図10は、トレース記録回路47を設定する場合に実行される処理の流れを表すフローチャートである。図10では、各システムボード1の1つのCPU11が、起動時に、BIOSによって予め定めた格納場所に格納されている設定ファイルを読み出してトレース記録装置47の設定を行うことを想定している。
オペレータは、例えばマネジメントボード21を操作して、格納場所に設定ファイルが存在していなければその格納場所に設定ファイルを作成し、各情報として所望の内容を記述する。格納場所に既に設定ファイルが存在していれば、設定ファイルを編集し、変更すべき情報の記述を更新する。そのようにして、所望の内容の設定ファイルを用意する(以上、S11)。
BIOSをロードしたCPU11は別のシステムボード1に存在するストレージ(例えば図1に表すストレージ17、18)、及びマネジメントボード21がアクセス可能なストレージ22の何れからもデータを取得することができる。このため、設定ファイルの格納場所は特に限定されるものではない。ストレージ22から設定ファイルを読み出すようにした場合、データ処理装置の電源をオフさせた状態でも設定ファイルの作成、及び編集を行うことができる。
所望の内容の設定ファイルを用意したオペレータは、例えばマネジメントボード21からデータ処理装置のリセットを指示する(S12)。ここでのリセットとは、例えばデータ処理装置への電源の投入、或いは再起動である。このリセットの指示は、マネジメントボード21とは別のコンソールが存在するのであれば、マネジメントボード21以外のコンソールを用いて行っても良い。設定ファイルの作成、或いは編集も、マネジメントボード21以外のコンソールを用いて行えるのであれば、マネジメントボード21を用いずに行っても良い。
上記リセットの指示により、各システムボード1の各CPU11は再起動を行い、BIOSをロードする(S14)。BIOSをロードしたCPU11は、必要なプログラム(ドライバ)の導入等を含むシステムの初期化処理を行い(S12)、メモリ12、13、更にはメモリ15、16のテスト、及び初期化を行う(S13)。その後、CPU11は、メモリ15、16のなかでNC14が使用可能とするトレース記録領域(図3)を割り当てる(S16)。このときの割り当ては、予め設定された内容に従って行うデフォルト設定であり、この割り当てによって、トレース記録回路47の上限アドレスレジスタ72、開始アドレスレジスタ73にそれぞれ値が格納される。上限アドレスレジスタ72、開始アドレスレジスタ73への値の格納は、パケット制御部45を介して行われる。
次にCPU11は、予め設定された格納場所から設定ファイルを読み込む(S17)。その読み込みによって設定ファイルを取得したCPU11は、設定ファイルに従って、トレース記録回路47の設定を行う(S18)。この設定により、パケット制御部45を介してトレース記録回路47の各種レジスタに格納すべき値が格納される。このため、トレース指示レジスタ61に値として0が格納された場合、収集モードレジスタ78に格納された値に応じて、トレースバッファ69へのトレースデータの格納、或いはイベントカウンタ77によるカウントが開始されることとなる。
図10に表す各処理において、S11及びS12は、マネジメントボード21等のコンソールを使用するユーザー(オペレータ)の操作に応じて、そのコンソールによって実行される。S13〜S18は、ユーザーの指示によって、BIOSをロードするCPU11によって実行される。S13〜S18は、データ処理装置への電源投入時にもCPU11によって実行される。S17、S18は、必要に応じてマネジメントボード21に実行させるようにしても良い。
なお、本実施形態では、トレース優先モードの設定時、ビジー期間のみ各イベントカウンタ77に計数を行わせるようにしているが、これはビジー期間以外ではトレースデータを履歴情報として記録するためである。つまり、ビジー期間以外にNC14が受信したパケットは、記録されたトレースデータによって特定できるからである。しかし、ビジー期間でもイベントカウンタ77に計数を行わせ、例えば一定時間毎にカウント値を記録できるようにしても良い。このカウント値は、ビジー信号のイナクティブからアクティブへの変化により記録させるようにしても良い。
イベントカウンタ77のカウント値はそのまま統計情報用バッファ65に記録させている。これは、カウンタ64のカウント値はビジー信号がアクティブになった時、ビジー信号がイナクティブになった時の両方で記録させるためである。ビジー信号がアクティブになっていたビジー期間内にトレース記録回路47にパケット制御部45から出力されたトレースデータ数を用いて、各イベントカウンタ77がカウントしたトレースデータが出現する頻度等を特定できるためである。しかし、この頻度、つまりイベントカウンタ77がカウントしたトレースデータが全体に占める割合はカウント値よりも少ないビット数で表現させても良いことから、カウント値の代わりに頻度等を統計情報として記録させるようにしても良い。カウンタ64にビジー期間のトレースデータを計数させることにより、カウント64の1カウント値のみを記録させるようにしても良い。
履歴情報として記録対象とする情報の切り換えは、MC46(図5)が出力するビジー信号に着目して行っている。これは、ビジー信号はメモリ15、16へのアクセスを要求する余裕の有無を正確に表す情報だからである。メモリ15、16へのアクセスは、NC14が単位時間当たりに受信するパケット数が多くなるほど多くなると考えられる。このことから、メモリ15、16へのアクセスを要求する余裕の有無は、例えばトレース記録回路47にパケット制御部45が出力するトレースデータ数を単位時間毎に計数し、その計数結果から判定するようにしても良い。
本実施形態によるデータ処理装置は、システムボード1を複数グローバルシステムバス2に接続した構成となっているが、システムボード1以外の処理装置を複数、接続した構成であっても良い。パケットを実際に生成する処理装置もCPUに限定されるものではない。例えば処理装置はGPU(Graphics Processing Unit)であっても良い。中継装置は、CPU、或いはGPUから直接的にパケットを受信するものであっても良い。
Claims (8)
- データ処理を行う処理装置から送信された通信単位データを受信した場合に、該受信した通信単位データから予め定めたデータをトレース情報として抽出する情報抽出手段と、
前記処理装置が使用可能な記憶装置にアクセスするアクセス手段と、
前記受信した通信単位データを計数する計数手段と、
前記情報抽出手段が抽出したトレース情報、及び前記計数手段による計数結果から得られる統計情報のなかで前記記憶装置に格納すべき対象を前記受信した通信単位データの履歴情報として選択し、該選択した履歴情報を前記アクセス手段により前記記憶装置に格納させる情報選択手段と、
を具備することを特徴とする中継装置。 - 請求項1記載の中継装置であって、
前記情報抽出手段は、予め設定された内容に従って、前記受信した通信単位データのなかから選択した通信単位データのトレース情報を抽出する。 - 請求項1記載の中継装置であって、
前記計数手段は、前記受信した通信単位データを予め指定された種類毎に分けて計数する。 - 請求項1、2、または3記載の中継装置であって、
前記記憶装置へのアクセスが行われる状況を表す状況情報を取得する情報取得手段、を更に具備し、
前記情報選択手段は、前記情報取得手段が取得した状況情報を基に、前記トレース情報、及び前記統計情報のなかから前記履歴情報とする対象を選択する。 - 請求項4記載の中継装置であって、
前記アクセス手段は、前記記憶装置へのアクセスの内容を表す要求データを格納する記憶手段を有し、
前記情報取得手段は、前記状況情報として、前記記憶手段に格納された要求データのなかで未処理の要求データの数が所定数以上か否かを表す要求量情報を取得し、
前記情報選択手段は、前記情報取得手段が取得した前記要求量情報が表す未処理の要求データの数が前記所定数以上か否かにより、前記履歴情報として前記トレース情報、あるいは前記統計情報を選択する。 - 請求項1、4、または5記載の中継装置であって、
接続された外部装置と通信を行う通信手段と、
前記記憶装置からデータを読み出す要求を前記外部装置から前記通信手段が受信した場合に、前記アクセス手段に前記記憶装置からデータを読み出させ、読み出されたデータを前記通信手段に出力して、該通信手段を介して、該読み出されたデータを前記外部装置に送信させるアクセス制御手段と、
を更に具備する。 - データ処理を行う処理装置から送信された通信単位データを受信して中継する中継装置が、
前記処理装置から送信された前記通信単位データを受信した場合に、該受信した通信単位データから予め定めたデータをトレース情報として抽出し、
前記受信した通信単位データを予め指定された種類毎に計数し、
前記トレース情報、及び前記種類毎の計数結果から得られる統計情報のなかで選択した対象を中継の履歴情報として前記中継装置がアクセス可能な記憶装置に格納させる、
ことを特徴とする中継履歴記録方法。 - データ処理を行う複数の処理装置と、
前記複数の処理装置のうちの1つ以上が使用可能な記憶装置と、
請求項1記載の中継装置と、
を具備することを特徴とするデータ処理装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2011/052792 WO2012108024A1 (ja) | 2011-02-09 | 2011-02-09 | 中継装置、中継履歴記録方法、及びデータ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5500272B2 JP5500272B2 (ja) | 2014-05-21 |
JPWO2012108024A1 true JPWO2012108024A1 (ja) | 2014-07-03 |
Family
ID=46638267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012556706A Expired - Fee Related JP5500272B2 (ja) | 2011-02-09 | 2011-02-09 | 中継装置、中継履歴記録方法、及びデータ処理装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20130339591A1 (ja) |
JP (1) | JP5500272B2 (ja) |
WO (1) | WO2012108024A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101783097B1 (ko) * | 2014-08-27 | 2017-09-28 | 주식회사 케이티 | Sdn 기반의 라우터 망에서 오퍼레이션 로그 정보를 기록/열람하는 방법 및 그 장치 |
JP6768268B2 (ja) * | 2015-07-03 | 2020-10-14 | キヤノン株式会社 | 画像送信装置及びその制御方法、プログラム |
GB2548398B (en) * | 2016-03-18 | 2019-12-11 | Advanced Risc Mach Ltd | Tracing processing activity |
US11533170B2 (en) * | 2018-12-17 | 2022-12-20 | Intel Corporation | Hardware mechanisms for link encryption |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08297629A (ja) * | 1995-04-25 | 1996-11-12 | Fujitsu Ltd | バス中継器 |
US6148381A (en) * | 1997-04-08 | 2000-11-14 | Advanced Micro Devices, Inc. | Single-port trace buffer architecture with overflow reduction |
JPH10293702A (ja) * | 1997-04-18 | 1998-11-04 | Hitachi Ltd | 計算機システム、バス制御装置及びバストレース方法 |
US6338159B1 (en) * | 1997-12-12 | 2002-01-08 | International Business Machines Corporation | System and method for providing trace information |
JP2000307681A (ja) * | 1999-04-16 | 2000-11-02 | Fujitsu Ltd | 中継装置およびフレームトレース方法 |
US7016351B1 (en) * | 2000-02-29 | 2006-03-21 | Cisco Technology, Inc. | Small group multicast in a computer network |
JP4846398B2 (ja) * | 2005-03-25 | 2011-12-28 | サンデン株式会社 | 通信システム |
-
2011
- 2011-02-09 WO PCT/JP2011/052792 patent/WO2012108024A1/ja active Application Filing
- 2011-02-09 JP JP2012556706A patent/JP5500272B2/ja not_active Expired - Fee Related
-
2013
- 2013-08-08 US US13/961,912 patent/US20130339591A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
WO2012108024A1 (ja) | 2012-08-16 |
US20130339591A1 (en) | 2013-12-19 |
JP5500272B2 (ja) | 2014-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11237728B2 (en) | Method for accessing extended memory, device, and system | |
US8850158B2 (en) | Apparatus for processing remote page fault and method thereof | |
US8656137B2 (en) | Computer system with processor local coherency for virtualized input/output | |
JP4872402B2 (ja) | マルチプロセッサシステムのメモリアクセス負荷分散装置および方法 | |
US9317312B2 (en) | Computer and memory management method | |
US8447897B2 (en) | Bandwidth control for a direct memory access unit within a data processing system | |
US11263139B2 (en) | Hardware accelerators and access methods thereof | |
JP5591729B2 (ja) | トレースデータの優先度の選択 | |
US10152244B2 (en) | Programmable memory command sequencer | |
JP5360061B2 (ja) | マルチプロセッサシステム及びその制御方法 | |
JP2008510246A (ja) | バーストリードライト動作による処理装置 | |
WO2014206078A1 (zh) | 内存访问方法、装置及*** | |
JP5500272B2 (ja) | 中継装置、中継履歴記録方法、及びデータ処理装置 | |
JP2015532994A (ja) | メッセージシグナル割込みの通信 | |
JP2016004461A (ja) | 情報処理装置、入出力制御装置および情報処理装置の制御方法 | |
CN116361232A (zh) | 片上缓存的处理方法、装置、芯片及存储介质 | |
JP6232936B2 (ja) | 情報処理装置、記憶装置制御回路及び記憶装置の制御方法 | |
JP2010092107A (ja) | 故障情報監視装置及び故障情報監視方法 | |
EP3317769A1 (en) | Advance cache allocator | |
US7257680B2 (en) | Storage system including shared memory and plural disk drives, processors, and shared memory control units | |
CN116401043A (zh) | 一种计算任务的执行方法和相关设备 | |
US8938588B2 (en) | Ensuring forward progress of token-required cache operations in a shared cache | |
JP4431492B2 (ja) | 複数のコヒーレンシー・グラニュールをサポートするデータ転送ユニット | |
JP5239985B2 (ja) | バッファ制御システム及びバッファ制御方法 | |
CN118113461A (zh) | 一种cxl内存扩展设备、原子操作方法和原子操作*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20140212 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140225 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5500272 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |