JP2009205334A - Performance monitor circuit and performance monitor method - Google Patents

Performance monitor circuit and performance monitor method Download PDF

Info

Publication number
JP2009205334A
JP2009205334A JP2008045730A JP2008045730A JP2009205334A JP 2009205334 A JP2009205334 A JP 2009205334A JP 2008045730 A JP2008045730 A JP 2008045730A JP 2008045730 A JP2008045730 A JP 2008045730A JP 2009205334 A JP2009205334 A JP 2009205334A
Authority
JP
Japan
Prior art keywords
buffer
packet
transmitted
counter
performance monitor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008045730A
Other languages
Japanese (ja)
Inventor
Shoki Murakami
祥基 村上
Masahiro Tokoro
雅尋 處
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2008045730A priority Critical patent/JP2009205334A/en
Publication of JP2009205334A publication Critical patent/JP2009205334A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a performance monitor circuit capable of specifying a sampling interval by clock cycle and a method thereof. <P>SOLUTION: The performance monitor circuit and the performance monitor method are equipped with a buffer, stored a received packet in the transaction layer of a PCI Express in the buffer, and connected to the PCI express component transmitting the packet stored in the buffer. The performance monitor circuit includes: a first counter for measuring a data volume of the packet sent from the buffer; a second counter for measuring the number of clock cycles in which a packet exists in the buffer; a third counter for measuring the number of clock cycles in which a packet to be transmitted exists in the buffer, but it could not be transmitted; and a control circuit for performing control to repeat the measurement by first to third counters at a predetermined time interval. <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

本発明は、PCI Expressコンポーネントに係り、特にPCI(Peripheral component interconnect) Expressコンポーネントのデータ転送性能の情報を計測し記録する回路及びその方法に関する。 The present invention relates to a PCI Express component, and more particularly, to a circuit and a method for measuring and recording data transfer performance information of a PCI (Peripheral component interconnect) Express component.

最近では、非特許文献1で定義されるルート・コンプレックス、スイッチ、エンド・ポイントといったPCI Expressコンポーネントにおいても性能モニタ機能を持つ必要が出てきた。理由は、現在PCIの標準化団体であるPCI−SIG(PCI Special Interest Group)において、IOV(I/O Virtulization)という名称で、PCI Expressデバイスを仮想化するための標準仕様の策定が進んでおり、近い将来IOV対応のPCI Expressデバイスが実現する可能性があるためである。PCI Expressデバイスが仮想化されると、計算機システム設計者は、物理PCI Expressデバイス数を削減することによるコスト低減を目的に、VMM(Virtual Machine Monitor)上で、1つの物理PCI Expressデバイスを複数の仮想PCI Expressデバイスに分割し、ゲストOSと呼ぶVMM上で動作するOSのそれぞれに対して割り当てる。 Recently, PCI Express components such as a root complex, a switch, and an end point defined in Non-Patent Document 1 need to have a performance monitoring function. The reason is that PCI-SIG (PCI Special Interest Group), which is currently a PCI standardization organization, is developing a standard specification for virtualizing PCI Express devices under the name IOV (I / O Virtualization). This is because there is a possibility that an IOV-compatible PCI Express device will be realized in the near future. When a PCI Express device is virtualized, a computer system designer can connect one physical PCI Express device to multiple physical PCI Express devices on VMM (Virtual Machine Monitor) for the purpose of reducing costs by reducing the number of physical PCI Express devices. The virtual PCI Express device is divided and assigned to each OS operating on the VMM called a guest OS.

現在、Intel社製CPUが備えている性能モニタ機能(非特許文献2記載)のように、一般的に計算機を構成するコンポーネントが備える性能モニタ機能は、使用者が設定した時間内に発生したイベント数をカウントするのみである。そのため、例えば10秒間に発生したイベント数を、1秒間隔で解析したい場合、性能モニタに対し1秒間のイベント数の計測を10回指示する必要がある。このような解析をするためには、例としてあげたIntel社製CPUにはIntel社が販売しているVtuneアナライザーといった、専用の性能解析用ソフトウェアを必要とする。性能モニタ機能の使用者は、性能解析用ソフトウェア上でイベント数の計測を行う時間であるサンプリング期間と、イベント数の計測を行う間隔であるサンプリング間隔を指定する。そうすれば、性能解析ソフトウェアが、指定に従って性能モニタに指示を出し、イベント数の計測を複数回自動で行ってくれる。   Currently, the performance monitoring function provided in the components that make up the computer, such as the performance monitoring function provided by the Intel CPU (described in Non-Patent Document 2), is an event that occurs within the time set by the user. It only counts the number. Therefore, for example, when it is desired to analyze the number of events generated in 10 seconds at intervals of 1 second, it is necessary to instruct the performance monitor to measure the number of events for 1 second 10 times. In order to perform such an analysis, the Intel CPU as an example requires dedicated performance analysis software such as a Vtune analyzer sold by Intel. The user of the performance monitoring function designates a sampling period that is a time for measuring the number of events on the performance analysis software and a sampling interval that is an interval for measuring the number of events. Then, the performance analysis software gives instructions to the performance monitor according to the specifications, and automatically measures the number of events multiple times.

PCI Express Base Specification Revision 2.0,PCI−SIG,December 2006PCI Express Base Specification Revision 2.0, PCI-SIG, December 2006 Intel Itanium Architecture Software Developer's Manual Volume 2:System Architecture Revision 2.2,Intel,January 2006Intel Itanium Architecture Software Developer's Manual Volume 2: System Architecture Revision 2.2, Intel, January 2006

上述のように、計算機システム設計者が物理PCI Expressデバイス数を削減した結果、各ゲストOSが行うデータ転送のQoS(Quality of Service)が保証されないのであれば、計算機システムとしての必要性能を満たせなくなるのでコスト削減は意味をなさない。従って、計算機システム設計者は、ゲストOSのデータ転送性能を解析し、QoSを保証できるように1つの物理PCI Expressデバイスを複数のゲストOSに割り当てる必要がある。そのためには、データ転送経路上に存在するPCI Expressコンポーネントにおいても、データ転送性能を解析するための性能モニタ機能を搭載する必要が出る。 As described above, if the computer system designer reduces the number of physical PCI Express devices, if the quality of service (QoS) performed by each guest OS is not guaranteed, the required performance as the computer system cannot be satisfied. So cost reduction doesn't make sense. Accordingly, the computer system designer needs to analyze the data transfer performance of the guest OS and assign one physical PCI Express device to a plurality of guest OSes so that QoS can be guaranteed. For this purpose, the PCI Express component existing on the data transfer path also needs to be equipped with a performance monitor function for analyzing the data transfer performance.

また、性能解析ソフトウェアは、ソフトウェアの実行時間の制約から、最短のサンプリング間隔がミリ秒と制限される。近年、CPUはマルチコア化が進み、ますます性能が上がっている。それに伴い、I/Oも転送性能を上げる必要が出てきて、2007年には、1リンクあたり5Gbpsの転送性能を持つPCI Express Gen2対応のPCI Expressコンポーネントが出荷され始めている。この流れは今後も続くと予想され、PCI Expressコンポーネントが単位時間あたりに処理するデータ量は益々増える。すると、これまでミリ秒単位のサンプリング間隔で十分な解析ができる数しか発生していなかったパケットの衝突や輻輳といったデータ転送に関わるイベントが、単位時間に扱うデータ量が増えることにより、ミリ秒単位のサンプリング間隔では十分な解析ができないほど多く発生する可能性が考えられる。よって、今後より細かいサンプリング間隔の指定が必要となると予想される。現在、PCI Expressコンポーネントは1クロック・サイクルが数ナノ秒で動いており、今後サンプリング間隔を最低限ミリ秒より細かいマイクロ秒単位か、動作クロック・サイクルと同じナノ秒単位で指定する必要が出ると考えられる。   In the performance analysis software, the shortest sampling interval is limited to milliseconds because of software execution time constraints. In recent years, CPUs have become increasingly multi-core and performance has been increasing. Accordingly, I / O needs to improve transfer performance, and in 2007, PCI Express components compatible with PCI Express Gen2 having a transfer performance of 5 Gbps per link have started to be shipped. This flow is expected to continue, and the amount of data processed by the PCI Express component per unit time will increase more and more. As a result, data transfer events such as packet collisions and congestion that had only been able to be analyzed sufficiently at the sampling interval in milliseconds until now will increase in the amount of data handled per unit time. It is conceivable that a large number of sampling intervals may occur so that sufficient analysis cannot be performed. Therefore, it is expected that a finer sampling interval will be required in the future. Currently, the PCI Express component runs in a few nanoseconds in one clock cycle, and when it becomes necessary to specify the sampling interval in microseconds, which is finer than a minimum of milliseconds, or in the same nanosecond unit as the operation clock cycle. Conceivable.

以上説明した通り、現在PCI Expressコンポーネントの開発をする上で、3つの課題が存在する。
(1)PCI Expressデバイスを仮想化して使用する環境では、ゲストOSのQoSを保証するために、データ転送性能の解析を可能とする性能モニタ機能をPCI Expressコンポーネントに搭載する必要がある。
(2)サンプリング期間とサンプリング間隔をそれぞれ指定して計算機を構成するコンポーネントの性能解析を行う場合、従来の性能モニタ機能では、専用の性能解析ソフトウェアが必要となる。このことは、性能モニタ機能の使用者に、性能解析ソフトウェアの購入コストもしくは開発コストの負担が生じることを意味する。
(3)性能解析ソフトウェアを使用した性能解析では、現在サンプリング間隔をミリ秒単位より下の単位では指定できない。そのため、例えばPCI Expressコンポーネントのクロック・サイクル単位といった、よりサンプリング間隔の粒度を細かくした性能解析ができない。
As described above, there are currently three problems in developing the PCI Express component.
(1) In an environment where a PCI Express device is virtualized and used, in order to guarantee the QoS of the guest OS, it is necessary to mount a performance monitor function that enables analysis of data transfer performance on the PCI Express component.
(2) When performing performance analysis of components constituting a computer by specifying a sampling period and a sampling interval, the conventional performance monitoring function requires dedicated performance analysis software. This means that the user of the performance monitoring function is charged with the purchase cost or development cost of the performance analysis software.
(3) In performance analysis using performance analysis software, the current sampling interval cannot be specified in units lower than milliseconds. Therefore, for example, performance analysis with a finer granularity of sampling intervals such as clock cycle units of PCI Express components cannot be performed.

本発明の目的は、PCI Expressコンポーネントのデータ転送性能の解析を可能とし、性能解析の際に性能解析用ソフトウェアを必要とせず、サンプリング間隔をクロック・サイクル単位で指定できる性能モニタ回路及びその方法を提供することである。   An object of the present invention is to provide a performance monitoring circuit and method for enabling analysis of data transfer performance of a PCI Express component, not requiring performance analysis software for performance analysis, and specifying a sampling interval in units of clock cycles. Is to provide.

本発明の性能モニタ回路及びその方法は、次のような構成である。バッファを備え、受信したPCI Expressのトランザクション層のパケットを前記バッファに格納し、前記バッファに格納された前記パケットを送信するPCI expressコンポーネントと接続する性能モニタ回路及びその性能モニタ回路による性能モニタ方法である。バッファから送信されたパケットのデータ量を計測する第1のカウンタ、バッファにパケットが存在するクロック・サイクル数を計測する第2のカウンタ、バッファ内に送信するパケットが存在するが送信できなかったクロック・サイクル数を計測する第3のカウンタ、及び前記第1〜第3のカウンタによる前記計測を所定時間間隔で繰り返すように制御する制御回路を有する。 The performance monitoring circuit and method of the present invention have the following configuration. A performance monitoring circuit comprising a buffer, storing a received PCI Express transaction layer packet in the buffer, and connecting to a PCI express component for transmitting the packet stored in the buffer, and a performance monitoring method using the performance monitoring circuit is there. A first counter that measures the amount of data of a packet transmitted from the buffer, a second counter that measures the number of clock cycles in which the packet exists in the buffer, and a clock in which a packet to be transmitted exists but could not be transmitted A third counter that measures the number of cycles and a control circuit that controls the measurement by the first to third counters to be repeated at predetermined time intervals.

本発明の他の態様は、記憶回路を設け、その記憶回路に制御回路が第1〜第3のカウンタによる計測値を格納する。   In another embodiment of the present invention, a memory circuit is provided, and the control circuit stores the measurement values obtained by the first to third counters in the memory circuit.

本発明のさらに他の態様は、第1〜第3のカウンタによる計測値の記憶回路への格納に応答して、第1〜第3のカウンタを初期化する。   According to still another aspect of the present invention, the first to third counters are initialized in response to the storage of the measurement values by the first to third counters in the storage circuit.

本発明のさらに他の態様は、所定時間及び所定時間間隔で繰り返す第1〜第3のカウンタによる計測期間を制御レジスタに設定する。   According to still another aspect of the present invention, a measurement period by first to third counters repeated at a predetermined time and a predetermined time interval is set in the control register.

本発明のさらに他の態様は、所望のパケットのデータ量を計測するためのマスクデータをマスクレジスタに設定する。   According to still another aspect of the present invention, mask data for measuring the data amount of a desired packet is set in the mask register.

本発明のさらに他の態様は、アップストリーム用のバッファとダウンストリーム用のバッファとの各々に関して、所定時間内の、バッファから送信されたパケットのデータ量、バッファにパケットが存在するクロック・サイクル数、及びバッファ内に送信するパケットが存在するが送信できなかったクロック・サイクル数を計測する。   According to still another aspect of the present invention, for each of the upstream buffer and the downstream buffer, the data amount of the packet transmitted from the buffer within a predetermined time, and the number of clock cycles in which the packet exists in the buffer And the number of clock cycles in which there is a packet to be transmitted in the buffer but could not be transmitted.

本発明の性能モニタ回路及びその方法によれば、サンプリング間隔をクロック・サイクル単位で指定できる。 According to the performance monitoring circuit and method of the present invention, the sampling interval can be specified in units of clock cycles.

以下、実施例を用いて本発明を実施するための最良の形態を詳細に説明する。 Hereinafter, the best mode for carrying out the present invention will be described in detail using examples.

図1は、実施例1の計算機システムの一例である。本計算機システムは、CPU100とメモリ101、そしてPCI Expressコンポーネントであるルート・コンプレックス110とスイッチ111、エンド・ポイント112とエンド・ポイント113を備える。ルート・コンプレックス110とスイッチ111はPCI Expressリンク140で接続する。そして、スイッチ111とエンド・ポイント112及びエンド・ポイント113は、それぞれPCI Expressリンク141と142で接続する。 FIG. 1 is an example of a computer system according to the first embodiment. The computer system includes a CPU 100, a memory 101, a root complex 110 and a switch 111, which are PCI Express components, and an end point 112 and an end point 113. The root complex 110 and the switch 111 are connected by a PCI Express link 140. The switch 111 is connected to the end point 112 and the end point 113 by PCI Express links 141 and 142, respectively.

サービス・プロセッサ120の機能は、計算機システムの各構成要素の電源管理(投入/切断)、構成要素情報の管理、障害発生時の計算機システム内トランザクション情報・処理状態履歴の採取・障害通報、システム内環境(温度・電源)監視である。本実施例では、管理用コンソール130とサービス・プロセッサ120は、インターフェース160を介して通信が可能である。サービス・プロセッサ120と管理用コンソール130間の通信は、例えばLANインターフェースやシリアル・インターフェースで実現すればよい。計算機システムの使用者は、管理用コンソール130を使用して、サービス・プロセッサ120を介し計算機システムの管理/操作を行う。   The functions of the service processor 120 are: power management (turn on / off) of each component of the computer system, management of component information, collection of transaction information and processing status history in the computer system at the time of failure, failure notification, Environmental (temperature / power) monitoring. In this embodiment, the management console 130 and the service processor 120 can communicate with each other via the interface 160. Communication between the service processor 120 and the management console 130 may be realized by a LAN interface or a serial interface, for example. A user of the computer system uses the management console 130 to manage / operate the computer system via the service processor 120.

サービス・プロセッサ120は、管理用コンソール180から各PCI Expressコンポーネントにある性能モニタ回路に対する設定値のリード・ライト及び計測結果の記録のリードができるインターフェース150、151、152及び153を備える。各PCI Expressコンポーネントとサービス・プロセッサ120間のインターフェースは、例えばハードウェアのモニタ用標準インターフェース仕様であるI2Cインタ−フェースを用いればよい。   The service processor 120 includes interfaces 150, 151, 152, and 153 that can read and write setting values and read measurement results from the management console 180 to the performance monitor circuit in each PCI Express component. As an interface between each PCI Express component and the service processor 120, for example, an I2C interface which is a standard interface specification for hardware monitoring may be used.

本実施例の性能モニタ回路は、PCI Expressコンポーネントである、ルート・コンプレックス110、スイッチ111、及びエンド・ポイント112に備える。通常、PCI Expressコンポーネント(ルート・コンプレックス、スイッチ、エンド・ポイント等)は、PCI Expressコンポーネントが受信したTLP(Transaction Layer Packet)を一旦格納し、格納後パケットを他のPCI Expressコンポーネントか、計算機を構成する他のコンポーネント(CPU、メモリ等)に送信するためのトランザクション層に位置するバッファをデータ転送経路上に備える。このバッファに性能モニタ回路を備えることで、PCI Expressコンポーネントのデータ転送性能を解析するために必要な情報を得る。   The performance monitor circuit of this embodiment is provided in the root complex 110, the switch 111, and the end point 112, which are PCI Express components. Normally, the PCI Express component (root complex, switch, end point, etc.) temporarily stores the TLP (Transaction Layer Packet) received by the PCI Express component, and configures the computer with the other PCI Express component after storing the packet. A buffer located in the transaction layer for transmission to other components (CPU, memory, etc.) is provided on the data transfer path. By providing the buffer with a performance monitor circuit, information necessary for analyzing the data transfer performance of the PCI Express component is obtained.

以下、スイッチ111に備える性能モニタ回路を使用して、性能モニタ回路の機能を説明する。性能モニタ回路の機能は、PCI Expressコンポーネントの種類により異なるものではない。   Hereinafter, the function of the performance monitor circuit will be described using the performance monitor circuit included in the switch 111. The function of the performance monitor circuit does not differ depending on the type of PCI Express component.

図2に、本実施例におけるスイッチ111を示す。スイッチ111は、アップストリーム・ポート200とダウンストリーム・ポート201、ダウンストリーム・ポート202を備える。アップストリーム・ポート200はPCI Expressのデータリンク層及び物理ポート層の機能を備え、PCI Expressリンク140を介してルート・コンプレックス110からTLP(Transaction Layer Packet)を受信、もしくはルート・コンプレックス110に対してTLPを送信する。ダウンストリーム・ポート201とダウンストリーム・ポート202も同様にPCI Expressのデータリンク層及び物理ポート層の機能を備え、それぞれPCI Expressリンク141と142を介してエンド・ポイント112とエンド・ポイント113からTLPを受信、もしくはエンド・ポイント112とエンド・ポイント113に対してTLPを送信する。   FIG. 2 shows the switch 111 in this embodiment. The switch 111 includes an upstream port 200, a downstream port 201, and a downstream port 202. The upstream port 200 has functions of a data link layer and a physical port layer of PCI Express, and receives a TLP (Transaction Layer Packet) from the root complex 110 via the PCI Express link 140, or to the root complex 110. Send TLP. Similarly, the downstream port 201 and the downstream port 202 have the functions of the PCI Express data link layer and physical port layer, respectively, and the TLP from the end point 112 and the end point 113 via the PCI Express links 141 and 142, respectively. Or the TLP is transmitted to the end point 112 and the end point 113.

各ポートは、常にTLPの宛先であるPCI Expressコンポーネントのルート・コンプレックス110、エンド・ポイント112、及びエンド・ポイント113にあるTLPを受信するバッファの状態を各々監視している。宛先のPCI Excpressコンポーネントのバッファに空きが有り、ポートが宛先のPCI Expressコンポーネントに対しTLPを送信することが可能であれば、その情報をバッファ(アップストリーム用のバッファ)210とバッファ(ダウンストリーム用のバッファ)211に教える。その情報を見たバッファ210とバッファ211は、(バッファ211はクロスバ220を介して)送信可能なポートへ、送信可能なPCI Expressコンポーネント宛てのTLPを送信する。TLPを受け取ったポートは、TLPを宛先のPCI Expressコンポーネントに対して送信する。また、各ポートは、バッファ210とバッファ211の状態を監視し、TLPの送信元でもあるPCI ExpressコンポーネントにTLPをスイッチ111が受信可能であるとの情報を送る。その情報を見たTLP送信元であるPCI ExpressコンポーネントはTLPをスイッチ111に対して送信し、各ポートは直接、もしくはクロスバ・スイッチ220を介してバッファ210またはバッファ211に対しTLPを送信する。   Each port constantly monitors the state of the buffer that receives the TLP at the root complex 110, end point 112, and end point 113 of the PCI Express component that is the destination of the TLP. If the destination PCI Express component has a free buffer and the port can send a TLP to the destination PCI Express component, the information is buffered (upstream buffer) 210 and buffer (downstream). Buffer) 211. The buffer 210 and the buffer 211 that have seen the information transmit the TLP addressed to the transmittable PCI Express component to the transmittable port (the buffer 211 is via the crossbar 220). The port that has received the TLP transmits the TLP to the destination PCI Express component. Also, each port monitors the state of the buffer 210 and the buffer 211, and sends information indicating that the switch 111 can receive the TLP to the PCI Express component that is also the transmission source of the TLP. The PCI Express component that is the TLP transmission source that has seen the information transmits the TLP to the switch 111, and each port transmits the TLP to the buffer 210 or the buffer 211 directly or via the crossbar switch 220.

バッファ210及びバッファ211はPCI Expressのトランザクション層に位置するバッファで、一旦バッファに対して送られてきたTLPを格納する。そして、TLPを見て宛先を確認し、宛先のPCI Expressコンポーネントが受信可能であれば、直接かクロスバ・スイッチ220を介して各ポートにTLPを送る。ただし、バッファ211が送信するTLPの宛先が性能モニタ回路230であるときは、TLP送信の動作が異なる。性能モニタ回路230宛てのTLPとは、使用者がCPU100上で動作するOSを介して性能モニタ回路230の設定値のリード/ライトや計測結果の記録のリードを行うときに、CPU100が発行する。送信するTLPが性能モニタ回路230宛ての場合、性能バッファ211はクロスバ・スイッチ220とパス252を介して性能モニタ回路230に対しTLPを送信する。本実施例では、性能モニタ回路230は毎クロック・サイクルでTLPを処理できるものとし、性能モニタ回路230がTLPを受信可能かどうかは見ていない。もし性能モニタ回路が毎サイクルTLPを受信できないのであれば、バッファ211は、PCI ExpressコンポーネントにTLPを送信するのと同じく、性能モニタ回路230がTLPを受信可能であるか、TLPを送信する前に確認する必要がある。   A buffer 210 and a buffer 211 are buffers located in the transaction layer of PCI Express, and store the TLP sent to the buffer once. Then, the destination is confirmed by looking at the TLP, and if the destination PCI Express component can be received, the TLP is sent to each port directly or via the crossbar switch 220. However, when the destination of the TLP transmitted by the buffer 211 is the performance monitor circuit 230, the TLP transmission operation is different. The TLP addressed to the performance monitor circuit 230 is issued by the CPU 100 when the user reads / writes the set value of the performance monitor circuit 230 or reads the measurement result via the OS operating on the CPU 100. When the TLP to be transmitted is addressed to the performance monitor circuit 230, the performance buffer 211 transmits the TLP to the performance monitor circuit 230 via the crossbar switch 220 and the path 252. In this embodiment, it is assumed that the performance monitor circuit 230 can process the TLP every clock cycle, and it is not checked whether the performance monitor circuit 230 can receive the TLP. If the performance monitor circuit is unable to receive TLP every cycle, the buffer 211 is the same as sending a TLP to the PCI Express component, so that the performance monitor circuit 230 can receive the TLP or before sending the TLP. It is necessary to confirm.

クロスバ・スイッチ220は、ダウンストリーム・ポート201またはダウンストリーム・ポート202、もしくは性能モニタ回路230からパス253を介して送られてきたTLPをバッファ210に対して送る。性能モニタ回路230が送信するTLPとは、性能モニタ回路230の設定値のリード・データや計測結果の記録のリード・データである。また、クロスバ・スイッチ220は、バッファ211から送られてきたTLPを、TLPの宛先を見て、宛先のPCI Expressコンポーネントと接続しているダウンストリーム・ポート201か202、もしくは性能モニタ回路230に対して送信する。   The crossbar switch 220 sends the TLP sent from the downstream port 201 or the downstream port 202 or the performance monitor circuit 230 via the path 253 to the buffer 210. The TLP transmitted by the performance monitor circuit 230 is read data for setting values of the performance monitor circuit 230 and read data for recording measurement results. In addition, the crossbar switch 220 looks at the TLP destination sent from the buffer 211 and checks the TLP destination to the downstream port 201 or 202 connected to the destination PCI Express component or the performance monitor circuit 230. To send.

性能モニタ回路230は、パス250を介してバッファ211と接続している。パス250を介してバッファ211は、性能モニタ回路230に対して毎クロック・サイクル、バッファ211に送信するTLPが存在することを示す情報と、バッファ211内に送信するTLPが存在するが送信できないことを示す情報を送る。情報は、例えば2つのレベル信号で実現され、1つのレベル信号の1'は送信するTLPがバッファ211内に存在することを示し、もう1つのレベル信号の1'はバッファ211内にTLPが存在するが送信できないことを示す。両レベル信号の0'は、どちらの状態でもないことを示す。また、性能モニタ回路230は、パス251を介し、バッファ211が送信したTLPのコピーを受信する。そして、性能モニタ回路230は、サービスプロセッサ120とのインターフェース151と直接接続する。   The performance monitor circuit 230 is connected to the buffer 211 via the path 250. Through the path 250, the buffer 211 has information indicating that there is a TLP to be transmitted to the buffer 211 every clock cycle to the performance monitor circuit 230, and there is a TLP to be transmitted in the buffer 211, but transmission is not possible. Send information indicating. The information is realized by two level signals, for example, 1 ′ of one level signal indicates that a TLP to be transmitted exists in the buffer 211, and 1 ′ of another level signal exists in the buffer 211. Indicates that it cannot be sent. 0 'of both level signals indicates that neither state is present. Further, the performance monitor circuit 230 receives a copy of the TLP transmitted from the buffer 211 via the path 251. The performance monitor circuit 230 is directly connected to the interface 151 with the service processor 120.

図3を用いて、本実施例の性能モニタ回路の内部構成及び処理内容について詳細に説明する。   The internal configuration and processing contents of the performance monitor circuit of this embodiment will be described in detail with reference to FIG.

毎クロック・サイクル、カウンタ回路300は、パス250を介して送られてくるバッファ211に送信するTLPが存在することを示す情報を見て、バッファ211に送信するTLPが存在するのであれば、カウンタ・レジスタ310の値を+1する。同様に、毎クロック・サイクル、カウンタ回路300は、パス250を介して送られてくるバッファ211内に送信するTLPが存在するが送信できないことを示す情報を見て、バッファ211内に送信するTLPが存在するが送信できないのであれば、カウンタ・レジスタ311の値を+1する。また、毎クロック・サイクル、カウンタ回路300は、パス251を介してバッファ211が送信したTLPのコピーを受信する。カウンタ回路300はTLPを受信した時、最初にマスク・レジスタ320を参照する。   Every clock cycle, the counter circuit 300 looks at information indicating that there is a TLP to be transmitted to the buffer 211 transmitted via the path 250, and if there is a TLP to be transmitted to the buffer 211, the counter circuit 300 Increase the value of the register 310 by 1. Similarly, every clock cycle, the counter circuit 300 sees information indicating that there is a TLP to be transmitted in the buffer 211 sent via the path 250 but cannot be transmitted, and transmits the TLP to the buffer 211. Is present but cannot be transmitted, the value of the counter register 311 is incremented by one. Also, every clock cycle, the counter circuit 300 receives a copy of the TLP transmitted by the buffer 211 via the path 251. When the counter circuit 300 receives the TLP, it first refers to the mask register 320.

マスク・レジスタ320は、スイッチ111の性能モニタ機能の使用者が性能解析のために任意に設定するレジスタであり、バッファ211が転送するTLP数の計測を所定のTLPに限定するときに使用する。   The mask register 320 is a register arbitrarily set by the user of the performance monitoring function of the switch 111 for performance analysis, and is used when the measurement of the number of TLPs transferred by the buffer 211 is limited to a predetermined TLP.

マスク・レジスタ320の一例を図4に示す。マスク・レジスタ320は272ビットで構成される。400〜402の3つのフィールドは各々1ビットで構成される。フィールド400が“enable”であることは、TLPヘッダを受信した時に、カウンタ回路300がカウンタ・レジスタ312にTLPヘッダのパケット・サイズ分をDW(Double Word、32bit)単位でプラスすることを示す。同様に、フィールド401が“enable”であることは、TLPデータを受信した時に、カウンタ回路300がカウンタ・レジスタ312にTLPデータのパケット・サイズ分をDW単位でプラスすることを示し、フィールド402が“enable”であることは、TLPダイジェストを受信した時に、カウンタ回路300がカウンタ・レジスタ312にTLPダイジェストのデータ・サイズ分をDW単位でプラスすることを示す。   An example of the mask register 320 is shown in FIG. The mask register 320 is composed of 272 bits. Each of the three fields 400 to 402 is composed of 1 bit. The fact that the field 400 is “enable” indicates that when the TLP header is received, the counter circuit 300 adds to the counter register 312 the packet size of the TLP header in units of DW (Double Word, 32 bits). Similarly, when the field 401 is “enable”, the counter circuit 300 adds to the counter register 312 the packet size of the TLP data in units of DW when the TLP data is received. “Enable” indicates that the counter circuit 300 adds the data size of the TLP digest to the counter register 312 in units of DW when receiving the TLP digest.

フィールド403は13ビットで構成され、将来制御回路を機能拡張する際に使用するために予約しているフィールドであり、特に今回使用するものではない。   The field 403 is composed of 13 bits, and is a field reserved for use when expanding the function of the control circuit in the future, and is not particularly used this time.

フィールド404は、PCI Express仕様で定められるTLPヘッダの最大サイズである128ビットで構成され、性能モニタ回路の使用者は、データ量を計測する対象のTLPのTLPヘッダを本フィールドに設定する。フィールド405は、フィールド404と同じサイズである128ビットで構成され、フィールド404の各bitの有効・無効を指定するのに使用する。例えば、フィールド404で設定したTLPヘッダの一部のbitのみでTLPをマスクしたい時は、フィールド405で対応するbitのみを“1”に設定して“enable”とすればよい。カウンタ回路300はフィールド404及び405を見て、マスク条件に合うTLPがバッファ211から送信されたら、カウンタ・レジスタ312にTLPのパケット・サイズ分をDW単位でプラスする。   The field 404 is composed of 128 bits which is the maximum size of the TLP header defined by the PCI Express specification, and the user of the performance monitor circuit sets the TLP header of the TLP whose data amount is to be measured in this field. The field 405 is composed of 128 bits having the same size as the field 404, and is used for designating validity / invalidity of each bit of the field 404. For example, when it is desired to mask the TLP with only a part of the bits of the TLP header set in the field 404, only the corresponding bit in the field 405 may be set to “1” to be “enable”. The counter circuit 300 looks at the fields 404 and 405, and when a TLP meeting the mask condition is transmitted from the buffer 211, the counter circuit 312 adds the TLP packet size in DW units to the counter register 312.

以上説明したマスク・レジスタ320のマスク機能は次のような二つの場合に使用することが効果的である。   It is effective to use the mask function of the mask register 320 described above in the following two cases.

第一に、TLPは、TLPヘッダ、TLPデータ、TLPダイジェストの3つで構成され、通常、データ転送量はTLPデータの量のみを指す。他の2つはデータ転送のオーバヘッドである。純粋にデータ転送量を測りたい場合に、マスク・レジスタ320のマスク機能を使用する。   First, a TLP is composed of a TLP header, a TLP data, and a TLP digest, and the data transfer amount usually indicates only the amount of TLP data. The other two are data transfer overheads. When the data transfer amount is to be measured purely, the mask function of the mask register 320 is used.

第二に、TLPヘッダには、発行元、発行先、トランザクション種別等を示す情報を格納しているので、TLPヘッダをマスクすることで、発行元単位、発行先、トランザクション種別に分類してデータ転送量を計測することができる。   Second, since information indicating the issuer, issuer, transaction type, etc. is stored in the TLP header, data is classified into issuer units, issuer, transaction type by masking the TLP header. Transfer amount can be measured.

以上、マスク・レジスタの構成について説明したが、マスク機能及び構成については必要最小限のもののみ説明している。マスク機能及び構成は特に制限するものではなく、例えば性能モニタ回路を搭載するPCI Expressコンポーネントの仕様や、性能モニタ機能の使用者の要求に従い、マスク機能及び構成を拡張しても良い。   Although the configuration of the mask register has been described above, only the minimum necessary mask function and configuration are described. The mask function and configuration are not particularly limited. For example, the mask function and configuration may be expanded according to the specifications of the PCI Express component on which the performance monitor circuit is mounted or the user's request for the performance monitor function.

制御回路330は、バッファ211が送信したTLP数と、バッファ211に送信するTLPが存在するクロック・サイクル数と、バッファ211内に送信するTLPが存在するが送信できないクロック・サイクル数を、制御レジスタ321の設定値に従い計測する。   The control circuit 330 determines the number of TLPs transmitted by the buffer 211, the number of clock cycles in which there are TLPs to be transmitted to the buffer 211, and the number of clock cycles in which there are TLPs to be transmitted in the buffer 211 but cannot be transmitted. Measure according to the set value of 321.

バッファ211が送信したTLP数の計測は、バッファが送信したデータ転送量の計測を意味する。毎クロック・サイクル、バッファが送信したTLPのパケット・サイズを、TLPの最小のパケット・サイズであるDW(Double Word、32bit)を単位としてプラスする。例えば、1クロック・サイクルで3DWのTLPを送信した時は、これまで計測したTLPのパケット・サイズの合計に+3する。本計測により、サンプリング期間内の、バッファ211が存在するデータ転送経路のデータ転送量が分かる。   The measurement of the number of TLPs transmitted by the buffer 211 means measurement of the data transfer amount transmitted by the buffer. The TLP packet size transmitted by the buffer every clock cycle is added in units of DW (Double Word, 32 bits) which is the minimum packet size of the TLP. For example, when a 3DW TLP is transmitted in one clock cycle, +3 is added to the total TLP packet size measured so far. By this measurement, the data transfer amount of the data transfer path in which the buffer 211 exists within the sampling period can be known.

バッファ211に送信可能なTLPが存在するクロック・サイクル数の計測は、サンプリング期間の、バッファ211が存在するデータ転送経路の使用率が分かる。   The measurement of the number of clock cycles in which there is a TLP that can be transmitted to the buffer 211 indicates the usage rate of the data transfer path in which the buffer 211 exists during the sampling period.

バッファ211内に送信するパケットが存在するが送信できなかったクロック・サイクル数の計測は、バッファ211より先のデータ転送経路でTLPの送信が滞っている時間の計測であり、データ転送経路の混雑度の計測を意味する。サンプリング期間のデータ転送量が期待値より低い場合は、原因として、(a)TLP発行元が発行するTLPのデータ量が少ない、(b)バッファより先のデータ転送経路でTLPの送信が滞っている、の2つが考えられる。本計測により、バッファ211より先のデータ転送経路でTLPの送信が滞っている時間を計測でき、データ転送経路の混雑度が分かるので、原因(a)(b)の区別が可能となる。   The measurement of the number of clock cycles in which a packet to be transmitted exists in the buffer 211 but could not be transmitted is a measurement of the time during which TLP transmission is delayed in the data transfer path ahead of the buffer 211, and the data transfer path is congested. Means measurement of degree. When the data transfer amount in the sampling period is lower than the expected value, the cause is (a) the TLP data amount issued by the TLP issuer is small, (b) the TLP transmission is delayed in the data transfer path ahead of the buffer. There are two possible cases. With this measurement, it is possible to measure the time during which TLP transmission is delayed in the data transfer path ahead of the buffer 211, and to know the degree of congestion of the data transfer path, so that the causes (a) and (b) can be distinguished.

また、制御回路330は、パス252を介して性能モニタ回路230宛てのTLPを受信した時、TLPを見て、マスク・レジスタ320と制御レジスタ321のリード/ライトや、カウンタ・レジスタ310〜312、状態レジスタ322とSRAM(記憶回路)323のリードを行う。リード処理後、制御回路330は、パス253を介してリード・データをCPU100宛てに返す。性能モニタ機能の使用者が、管理用コンソール130を介して性能モニタ回路230の設定値のリード/ライトや計測結果の記録のリードを行った時は、インターフェース151から受信したリクエストに従い、マスク・レジスタ320と制御レジスタ321のリード/ライトや、カウンタ・レジスタ310〜312、状態レジスタ322とSRAM323のリードを行う。リード処理後、制御回路330は、インターフェース151を介してリード・データを管理用コンソール130宛てに返す。   When the control circuit 330 receives the TLP addressed to the performance monitor circuit 230 via the path 252, the control circuit 330 looks at the TLP and reads / writes the mask register 320 and the control register 321, counter registers 310 to 312, The status register 322 and SRAM (storage circuit) 323 are read. After the read process, the control circuit 330 returns the read data to the CPU 100 via the path 253. When the user of the performance monitor function reads / writes the set value of the performance monitor circuit 230 or reads the measurement result via the management console 130, the mask register is read according to the request received from the interface 151. 320 reads / writes the control register 321 and reads the counter registers 310 to 312, the status register 322 and the SRAM 323. After the read process, the control circuit 330 returns the read data to the management console 130 via the interface 151.

制御レジスタ321の一例を図5に示す。制御レジスタ330は112ビットで構成され、500〜504の5つのフィールドに分かれる。フィールド500は1ビットで構成され、“1”の値で計測開始を示し、“0”の値で計測停止を示す。性能モニタ機能の使用者は、フィールド500を操作する事で、計測の開始と停止を指示できる。制御回路330は、フィールド500が“1”に設定されている間は計測を続け、“0”に設定された時は計測を止める。   An example of the control register 321 is shown in FIG. The control register 330 has 112 bits and is divided into five fields 500 to 504. A field 500 is composed of 1 bit, and a value “1” indicates measurement start, and a value “0” indicates measurement stop. The user of the performance monitoring function can instruct the start and stop of measurement by operating the field 500. The control circuit 330 continues the measurement while the field 500 is set to “1”, and stops the measurement when the field 500 is set to “0”.

フィールド501は1ビットで構成され、“1”の値でカウンタ・レジスタ310〜312とSRAM323、そして状態レジスタ322の初期化を示し、“0”の値では何もしない。カウンタ・レジスタ310〜312とSRAM323、そして状態レジスタ322の初期化が指示された時、制御回路330は、カウンタ・レジスタ310〜312に格納している値を“0”にクリアする。そして、SRAM323の全エントリに格納している値を全て“0”の値にクリアし、状態レジスタ322に格納している値も全て“0”にクリアする。各初期化対象において初期化が完了するまで、制御回路330はフィールド500に“1”が設定されても計測を開始しない。初期化処理が完了した時、フィールド501は“0”の値に戻る。通常、性能モニタ機能の使用者は、計測開始を指示する前に、フィールド501に“1”を設定し、カウンタ・レジスタ310〜312とSRAM323、そして状態レジスタ322に格納している値を“0”にクリアする。   The field 501 is composed of 1 bit and indicates initialization of the counter registers 310 to 312, the SRAM 323, and the status register 322 with a value of “1”, and does nothing with a value of “0”. When the initialization of the counter registers 310 to 312, the SRAM 323, and the status register 322 is instructed, the control circuit 330 clears the values stored in the counter registers 310 to 312 to “0”. Then, all values stored in all entries of the SRAM 323 are cleared to “0”, and all values stored in the status register 322 are also cleared to “0”. Until initialization is completed for each initialization target, the control circuit 330 does not start measurement even if “1” is set in the field 500. When the initialization process is completed, the field 501 returns to the value “0”. Normally, the user of the performance monitor function sets “1” in the field 501 before instructing the start of measurement, and sets the values stored in the counter registers 310 to 312, the SRAM 323, and the status register 322 to “0”. Clear to “”.

フィールド502は14ビットで構成され、将来制御回路を機能拡張する際に使用するために予約しているフィールドであり、特に今回使用するものではない。   The field 502 is composed of 14 bits, and is a field reserved for use when expanding the function of the control circuit in the future, and is not particularly used this time.

フィールド503は48ビットで構成され、サンプリング間隔をクロック・サイクル単位で設定するフィールドである。性能モニタ機能の使用者は、当該フィールドに計測するサンプリング間隔を設定する。制御回路330は、設定したサンプリング間隔分のクロック・サイクルが経過した後、SRAM323に各カウンタ・レジスタ310〜312の値を格納する。制御回路330は、初期化後、SRAM323のエントリ0番から各カウンタ・レジスタ310〜312の値の格納を開始し、その後エントリ番号を+1しながらSRAM323にカウンタ・レジスタ310〜312の値の格納を繰り返す。   A field 503 is composed of 48 bits, and is a field for setting a sampling interval in units of clock cycles. The user of the performance monitoring function sets a sampling interval for measurement in the field. The control circuit 330 stores the values of the counter registers 310 to 312 in the SRAM 323 after a clock cycle for the set sampling interval has elapsed. After initialization, the control circuit 330 starts storing the values of the counter registers 310 to 312 from entry 0 of the SRAM 323, and then stores the values of the counter registers 310 to 312 in the SRAM 323 while incrementing the entry number. repeat.

フィールド504は48ビットで構成され、サンプリング期間(計測期間)をクロック・サイクル単位で格納するフィールドである。性能モニタ機能の使用者は、当該フィールドに計測するサンプリング期間を設定する。制御回路330は、設定したサンプリング期間分のクロック・サイクルが経過した後、SRAM323にカウンタ・レジスタ310〜312の値を最後に書き込んだエントリのフラグ・フィールドに“1”の値をライトする。   A field 504 is composed of 48 bits and stores a sampling period (measurement period) in units of clock cycles. The user of the performance monitoring function sets a sampling period to be measured in the field. After the clock cycle for the set sampling period has elapsed, the control circuit 330 writes the value “1” in the flag field of the entry in which the value of the counter register 310 to 312 was last written in the SRAM 323.

状態レジスタ322は、スイッチ111の性能モニタ回路のステータスを示すレジスタである。状態レジスタ322の一例を図6に示す。状態レジスタ322は112ビットで構成され、600〜606の7つのフィールドに分かれる。   The status register 322 is a register that indicates the status of the performance monitor circuit of the switch 111. An example of the status register 322 is shown in FIG. The status register 322 includes 112 bits and is divided into seven fields 600 to 606.

フィールド600は2ビットで構成され、制御回路330のステータスを示す。“00”で制御回路330が計測していないことを示し、“01”で制御回路330が計測中であることを示す。そして、“10”は計測開始後計測が完了する前に制御レジスタ321のフィールド500が“0”に設定されて計測が停止したことを示し、“11”は計測が終了したことを示す。制御回路330は、フィールド500に“1”が設定され計測を開始したら、フィールド600を“01”に設定する。次に、制御回路330は、計測開始後フィールド500に“0”が設定されたら、フィールド600に“10”を設定する。そして、制御回路330は、フィールド606の値と制御レジスタ321のフィールド504の値が同じになった時、“11”を設定する。   The field 600 is composed of 2 bits and indicates the status of the control circuit 330. “00” indicates that the control circuit 330 is not measuring, and “01” indicates that the control circuit 330 is measuring. “10” indicates that the field 500 of the control register 321 is set to “0” before the measurement is completed after the measurement is started, and “11” indicates that the measurement is stopped. When “1” is set in the field 500 and measurement is started, the control circuit 330 sets the field 600 to “01”. Next, when “0” is set in the field 500 after the start of measurement, the control circuit 330 sets “10” in the field 600. The control circuit 330 sets “11” when the value of the field 606 and the value of the field 504 of the control register 321 become the same.

フィールド601〜603はそれぞれ1ビットで構成され、カウンタ・レジスタでオーバーフローが発生した時に、制御回路330が“1”に設定し、オーバーフローを報告する。フィールド601はカウンタ・レジスタ310、フィールド602はカウンタ・レジスタ311、フィールド603はカウンタ・レジスタ312にそれぞれ対応する。   Each of the fields 601 to 603 is composed of 1 bit, and when an overflow occurs in the counter register, the control circuit 330 sets “1” and reports the overflow. The field 601 corresponds to the counter register 310, the field 602 corresponds to the counter register 311 and the field 603 corresponds to the counter register 312.

フィールド604は11ビットで構成され、将来制御回路を機能拡張する際に使用するために予約しているフィールドであり、特に今回使用するものではない。   A field 604 is composed of 11 bits, and is a field reserved for use when expanding the function of the control circuit in the future, and is not particularly used this time.

フィールド605のインターバル・タイマは48ビットで構成され、クロック・サイクル単位で計測時間を示す。制御回路330は、計測中であるならば、インターバル・タイマの値を1クロック・サイクル毎に+1する。ただし、制御レジスタ321のサンプリング間隔の値とインターバル・タイマの値が等しくなった時、制御回路330は、インターバル・タイマを“0”にクリアし、計測が続くのであれば再び計測時間を記録する。   The interval timer in the field 605 is composed of 48 bits and indicates the measurement time in units of clock cycles. If the measurement is being performed, the control circuit 330 increments the value of the interval timer by 1 every clock cycle. However, when the value of the sampling interval of the control register 321 and the value of the interval timer become equal, the control circuit 330 clears the interval timer to “0” and records the measurement time again if the measurement continues. .

フィールド606のイベント・タイマは48ビットで構成され、クロック・サイクル単位で計測時間を示す。制御回路330は、計測中であるならば、イベント・タイマの値を1クロック・サイクル毎に+1する。ただし、インターバル・タイマとは異なり、初期化以外でイベント・タイマはクリアされない。制御レジスタ322のサンプリング期間の値とイベント・タイマの値が等しくなった時、性能モニタ回路230の計測は終了したことを示す。   The event timer in field 606 is composed of 48 bits and indicates the measurement time in units of clock cycles. If the measurement is being performed, the control circuit 330 increments the value of the event timer by 1 every clock cycle. However, unlike the interval timer, the event timer is not cleared except for initialization. When the value of the sampling period of the control register 322 becomes equal to the value of the event timer, it indicates that the measurement of the performance monitor circuit 230 has ended.

SRAM323の1例を図7に示す。本実施例では、SRAMのエントリ数を1024とする。SRAM323は、701〜704の4つのフィールドで構成される。フィールド700はエントリ番号を示しているが、実際のSRAMには当該フィールドはなく、説明を容易にするために仮に定めたフィールドである。フィールド701は各エントリに1ビットで構成され、“1”は計測が終了した時に最後に値が格納されたエントリであることを示す。フィールド702〜704は、各カウンタ・レジスタの値を格納するフィールドであり、各エントリにカウンタ・レジスタと同じビット数で構成される。制御回路330は、フィールド702にはカウンタ・レジスタ310の値を、フィールド703にはカウンタ・レジスタ311の値を、フィールド704にはカウンタ・レジスタ312の値をそれぞれ格納する。   An example of the SRAM 323 is shown in FIG. In this embodiment, the number of SRAM entries is 1024. The SRAM 323 is composed of four fields 701 to 704. A field 700 indicates an entry number, but the actual SRAM does not have this field, and is a field that is provisionally defined for easy explanation. A field 701 is composed of 1 bit for each entry, and “1” indicates that the entry is the last value stored when measurement is completed. Fields 702 to 704 are fields for storing the value of each counter register, and each entry has the same number of bits as the counter register. The control circuit 330 stores the value of the counter register 310 in the field 702, the value of the counter register 311 in the field 703, and the value of the counter register 312 in the field 704.

以上、制御レジスタ321、状態レジスタ322、SRAM323の構成を説明したが、用いた例は必要最低限の構成であり、構成及び各フィールドのビット数は、特に規定するものではない。性能モニタ回路を搭載するPCI Expressコンポーネントの仕様に応じて、必要なフィールド及びビット数の拡張を行っても構わない。   The configuration of the control register 321, the status register 322, and the SRAM 323 has been described above. However, the example used is the minimum necessary configuration, and the configuration and the number of bits of each field are not particularly specified. Depending on the specifications of the PCI Express component on which the performance monitor circuit is mounted, the necessary fields and the number of bits may be expanded.

図8に、制御回路330が1クロック・サイクル毎に実行する処理フローチャートを示す。図8に示すフローチャートでは、性能モニタ機能の使用者が、CPU100もしくは管理用コンソール130を介して、性能モニタ回路230の設定値のリード/ライトや計測結果の記録のリードを行う際の処理については示していないが、容易に推敲されるだろう。図8に示す処理と並行して、制御回路330は、使用者の操作に伴う処理を実行できる。また、制御レジスタ322のフィールド501を“1”に設定することで、性能モニタ機能の使用者が性能モニタ回路230の初期化を指示した場合の処理も図8には示していないが、容易に推敲されるだろう。性能モニタ回路230の初期化指示を受けた制御回路330は、初期化処理が完了するまで、図8に示す処理は行わない。   FIG. 8 shows a process flowchart executed by the control circuit 330 every clock cycle. In the flowchart shown in FIG. 8, the processing when the user of the performance monitoring function reads / writes the setting value of the performance monitoring circuit 230 or reads the measurement result via the CPU 100 or the management console 130. Not shown, but will be easily revisited. In parallel with the processing shown in FIG. 8, the control circuit 330 can execute processing accompanying the user's operation. Further, the processing when the user of the performance monitor function instructs initialization of the performance monitor circuit 230 by setting the field 501 of the control register 322 to “1” is not shown in FIG. It will be praised. The control circuit 330 that has received the initialization instruction from the performance monitor circuit 230 does not perform the process shown in FIG. 8 until the initialization process is completed.

以下、図8に示す処理フローチャートの各ステップについて説明する。ステップ800で、制御回路330は、制御レジスタ321のフィールド500のスタート/ストップが“1”の“計測開始”の設定であるか判定する。制御回路330は、“計測開始”の設定であった場合はステップ801の処理を行い、“0”で“計測停止”の設定であった場合はステップ802の処理を行う。ステップ801で、制御回路330は、状態レジスタ322のフィールド600の制御回路ステータスを“01”の“計測中”に設定する。   Hereinafter, each step of the processing flowchart shown in FIG. 8 will be described. In step 800, the control circuit 330 determines whether the start / stop of the field 500 of the control register 321 is set to “measurement start” of “1”. The control circuit 330 performs the process of step 801 when “measurement start” is set, and performs the process of step 802 when “0” is set to “measurement stop”. In step 801, the control circuit 330 sets the control circuit status in the field 600 of the status register 322 to “under measurement” of “01”.

ステップ802で、制御回路330は、状態レジスタ322フィールド600の制御回路ステータスが“01”の“計測中”であるか判定する。“計測中”の設定であった場合、制御回路330は、ステップ803の処理を行い、その他の設定であった場合は当該クロック・サイクルの処理を終了する。ステップ803で、制御回路330は、状態レジスタ322のフィールド600の制御回路ステータスを“10”の“ポーズ”に設定し、当該クロック・サイクルの処理を終了する。   In step 802, the control circuit 330 determines whether the control circuit status in the status register 322 field 600 is “01” or “measuring”. If the setting is “measuring”, the control circuit 330 performs the process of step 803, and if the setting is any other setting, the process of the clock cycle ends. In step 803, the control circuit 330 sets the control circuit status in the field 600 of the status register 322 to “pause” of “10”, and ends the processing of the clock cycle.

ステップ804で、制御回路330は、状態レジスタ322のフィールド605のインターバル・タイマと制御レジスタ321のフィールド503のサンプリング間隔の値が等しいかを判定する。制御回路330は、等しかった場合はステップ805の処理を行い、等しくなかった場合はステップ806の処理を行う。   In step 804, the control circuit 330 determines whether the interval timer in the field 605 of the status register 322 is equal to the value of the sampling interval in the field 503 of the control register 321. The control circuit 330 performs the process of step 805 if they are equal, and performs the process of step 806 if they are not equal.

ステップ805で、制御回路330は、カウンタ・レジスタ310〜312の値をSRAM323に格納する。また、制御回路330は、SRAM323に値を格納するために各カウンタ・レジスタから値をリードしたと同時に、各カウンタ・レジスタの値を“0”にクリアする。そして、制御回路330は、状態レジスタ322のフィールド605のインターバル・タイマの値を“0”にクリアする。ステップ806で、制御回路330は、状態レジスタ322のフィールド605のインターバル・タイマの値を+1する。   In step 805, the control circuit 330 stores the values of the counter registers 310 to 312 in the SRAM 323. Further, the control circuit 330 reads the value from each counter / register in order to store the value in the SRAM 323, and simultaneously clears the value of each counter / register to “0”. Then, the control circuit 330 clears the value of the interval timer in the field 605 of the status register 322 to “0”. In step 806, the control circuit 330 increments the value of the interval timer in the field 605 of the status register 322 by +1.

ステップ807で、制御回路330は、状態レジスタ322のフィールド606のイベント・タイマと制御レジスタ321のフィールド504のサンプリング期間の値が等しいかを判定する。制御回路330は、等しい場合はステップ808の処理を行い、等しくない場合はステップ809の処理を行う。   In step 807, the control circuit 330 determines whether the event timer in the field 606 of the status register 322 is equal to the value of the sampling period in the field 504 of the control register 321. The control circuit 330 performs the process of step 808 if they are equal, and performs the process of step 809 if they are not equal.

ステップ808で、制御回路330は、SRAM323の最後に格納したエントリのフィールド701のフラグに“1”をセットする。また、状態レジスタ322フィールド600の制御回路ステータスを“11”の“計測終了”に設定し、当該クロック・サイクルの処理を終了する。ステップ809で、制御回路330は、状態レジスタ322フィールド606のイベント・タイマの値を+1して、当該クロック・サイクルの処理を終了する。   In step 808, the control circuit 330 sets “1” to the flag of the field 701 of the entry stored last in the SRAM 323. Further, the control circuit status in the status register 322 field 600 is set to “11” “measurement end”, and the processing of the clock cycle is ended. In step 809, the control circuit 330 increments the event timer value in the status register 322 field 606 by one, and ends the processing of the clock cycle.

本実施例によれば、サンプリング間隔をクロック・サイクル単位で指定できる性能モニタ回路を実現することができる。   According to the present embodiment, it is possible to realize a performance monitor circuit that can specify the sampling interval in units of clock cycles.

図9に、実施例2のスイッチ111を示す。本実施例のスイッチ111は、実施例1にバッファ210の性能モニタ機能を追加したものである。バッファ210が送信したTLPの数と、バッファ210に送信するTLPが存在するクロック・サイクル数と、バッファ210内に送信するTLPが存在するが送信できなかったクロック・サイクル数を計測するために、バッファ211と同様に、パス250と同じ機能を持つパス950と、パス251と同じ機能を持つパス951を備える。性能モニタ回路930は、バッファ210の上記3つの計測を行うために、性能モニタ回路230の機能を拡張したものである。 FIG. 9 shows the switch 111 of the second embodiment. The switch 111 of this embodiment is obtained by adding the performance monitoring function of the buffer 210 to the first embodiment. To measure the number of TLPs transmitted by the buffer 210, the number of clock cycles in which there is a TLP to be transmitted to the buffer 210, and the number of clock cycles in which there is a TLP to be transmitted in the buffer 210 but could not be transmitted, Similar to the buffer 211, a path 950 having the same function as the path 250 and a path 951 having the same function as the path 251 are provided. The performance monitor circuit 930 is an extension of the function of the performance monitor circuit 230 in order to perform the above three measurements of the buffer 210.

図10に性能モニタ回路930の一例を示す。以下、性能モニタ回路930について、性能モニタ回路230に追加した構成の説明を行う。追加構成以外の性能モニタ回路930の構成は、性能モニタ回路230の構成と同じである。   FIG. 10 shows an example of the performance monitor circuit 930. Hereinafter, the performance monitor circuit 930 added to the performance monitor circuit 230 will be described. The configuration of the performance monitor circuit 930 other than the additional configuration is the same as the configuration of the performance monitor circuit 230.

毎クロック・サイクル、カウンタ回路1000は、パス950を介して送られてくるバッファ210に送信するTLPが存在することを示す情報を見て、バッファ210に送信するTLPが存在するのであれば、カウンタ・レジスタ1010の値を+1する。同様に、毎クロック・サイクル、カウンタ回路1000は、パス950を介して送られてくるバッファ210内に送信するTLPが存在するが送信できないことを示す情報を見て、バッファ210内に送信するTLPが存在するが送信できないのであれば、カウンタ・レジスタ1011の値を+1する。また、毎クロック・サイクル、カウンタ回路1000は、パス951を介してバッファ210が送信したTLPのコピーを受信する。カウンタ回路1000はTLPを受信した時、最初にマスク・レジスタ320を参照し、マスク・レジスタ320の設定内容が示す計測対象のTLPであれば、パケット・サイズ分をDW単位でカウンタ・レジスタ1012の値にプラスする。   Every clock cycle, the counter circuit 1000 looks at the information indicating that there is a TLP to be transmitted to the buffer 210 transmitted via the path 950, and if there is a TLP to be transmitted to the buffer 210, the counter circuit 1000 Increase the value of the register 1010 by one. Similarly, every clock cycle, the counter circuit 1000 sees information indicating that there is a TLP to be sent in the buffer 210 sent through the path 950 but cannot send it, and sends it to the buffer 210. Is present but cannot be transmitted, the value of the counter register 1011 is incremented by one. Also, every clock cycle, counter circuit 1000 receives a copy of the TLP transmitted by buffer 210 via path 951. When the counter circuit 1000 receives the TLP, it first refers to the mask register 320, and if the TLP to be measured is indicated by the setting contents of the mask register 320, the packet size is stored in the counter register 1012 in DW units. Add to the value.

制御回路1030の構成は、制御回路330の構成に、カウンタ・レジスタ310〜312に対する処理と同様の処理をカウンタ・レジスタ1010〜1012に対して行う構成を追加したものである。また、制御回路1030の動作は、SRAM1023に対する動作も追加している。   The configuration of the control circuit 1030 is obtained by adding a configuration in which the same processing as the processing for the counter registers 310 to 312 is performed on the counter registers 1010 to 1012 to the configuration of the control circuit 330. The operation of the control circuit 1030 is also added to the SRAM 1023.

SRAM1023の1例を、図11に示す。SRAM323に対してSRAM1023は、フィールド1102〜1104の3つのフィールドを追加している。フィールド1102〜1104は、フィールド702〜704と同様に、各エントリにカウンタ・レジスタと同じビット数で構成される。制御回路1030は、フィールド1102はカウンタ・レジスタ1010の値を、フィールド1103にはカウンタ・レジスタ1011の値を、フィールド1104にはカウンタ・レジスタ1012の値をそれぞれ格納する。   An example of the SRAM 1023 is shown in FIG. The SRAM 1023 adds three fields 1102 to 1104 to the SRAM 323. Similarly to the fields 702 to 704, the fields 1102 to 1104 are configured with the same number of bits as the counter register in each entry. The control circuit 1030 stores the value of the counter register 1010 in the field 1102, the value of the counter register 1011 in the field 1103, and the value of the counter register 1012 in the field 1104.

制御回路1030は、状態レジスタ322のフィールド605のインターバル・タイマと制御レジスタ321フィールド503のサンプリング間隔の値が等しいと判定したクロック・サイクルで、カウンタ・レジスタ310〜312の値に加え、カウンタ・レジスタ1010〜1012の値をSRAM1021に格納する。また、制御回路1030は、SRAM1023に値を格納するために各カウンタ・レジスタから値をリードしたと同時に、各カウンタ・レジスタの値を“0”にクリアする。   The control circuit 1030 adds the value of the counter registers 310 to 312 in addition to the value of the counter register in the clock cycle in which the value of the interval timer in the field 605 of the status register 322 is equal to the value of the sampling interval in the control register 321 field 503. The values 1010 to 1012 are stored in the SRAM 1021. Further, the control circuit 1030 reads the value from each counter / register in order to store the value in the SRAM 1023, and simultaneously clears the value of each counter / register to “0”.

また、状態レジスタ322もフィールドを追加して、状態レジスタ1022とする。図12に状態レジスタ1022の一例を示す。追加したフィールド1201〜1203は、それぞれカウンタ・レジスタ1010〜1012がオーバーフローした時に、制御回路1030が“1”に設定して、オーバーフローがあったことを報告するためのフィールドである。   In addition, the status register 322 is also added with a field to be the status register 1022. FIG. 12 shows an example of the status register 1022. The added fields 1201 to 1203 are fields for the control circuit 1030 to set to “1” and report that an overflow has occurred when the counter registers 1010 to 1012 overflow.

実施例2のスイッチ111は、データ転送性能を計測するバッファの数が2の例であるが、さらにデータ転送性能を計測するバッファの数が増えても、同様の拡張をバッファ単位に施すことで、性能モニタ回路はバッファが1つである時と同様に複数バッファのデータ転送性能の計測ができる。従って、PCI Expressコンポーネント内で複数バッファが存在する場合でも、性能モニタ回路は、同じサンプリング間隔とサンプリング期間で計測と計測結果の記録を行うことができる。これにより、各バッファの計測結果の時間的な相関を見ることができる。   The switch 111 according to the second embodiment is an example in which the number of buffers for measuring the data transfer performance is 2, but even if the number of buffers for measuring the data transfer performance is further increased, the same expansion can be performed for each buffer. The performance monitor circuit can measure the data transfer performance of a plurality of buffers in the same way as when there is one buffer. Therefore, even when there are a plurality of buffers in the PCI Express component, the performance monitor circuit can perform measurement and record the measurement result at the same sampling interval and sampling period. Thereby, the temporal correlation of the measurement result of each buffer can be seen.

以上の実施形態によれば、性能モニタ回路は、解析の対象となるデータ転送経路の単位時間内のデータ転送量、使用率、混雑度を計測することができ、さらに、発行元や発行先、トランザクション種別等に分けてデータ転送量を計測できる。これにより、計算機システム設計者は、データ転送経路のデータ転送性能を解析するために必要な情報を得ることができる。   According to the above embodiment, the performance monitor circuit can measure the data transfer amount, usage rate, and congestion level within the unit time of the data transfer path to be analyzed. Data transfer volume can be measured by dividing transaction types. Thereby, the computer system designer can obtain information necessary for analyzing the data transfer performance of the data transfer path.

1つの物理PCI Expressデバイスを、複数の仮想PCI Expressデバイスに分割して複数のゲストOSに割り当てる計算機システム設計者が、どのように性能モニタ回路を使用するのか一例を挙げて説明する。まず、計算機システム設計者は、PCI Expressデバイスに繋がるデータ転送経路上の、各ゲストOSのデータ転送性能を各々計測する。その後、計算機システム設計者は、各ゲストOSのQoSを保証するために、各ゲストOSのデータ転送性能の合計が、データ転送経路が持つデータ転送性能の最大値を越えないようにゲストOSを物理デバイスに割り当てればよい。また、実際に運用を開始した後、各ゲストOSのデータ転送性能が設計通りに出ない場合がある。原因としては、先の計測時と異なった挙動をゲストOSがする、もしくはデータ転送経路上にある回路の不良等が考えられる。このような状況において計算機システム設計者は、データ転送経路の使用率及び混雑度等を見て、性能低下を引き起こしている原因を突き止める。その際、データ転送量を計測するTLPをマスクすることは、解析の精度を向上させることに寄与する。   An example of how a computer system designer who divides one physical PCI Express device into a plurality of virtual PCI Express devices and allocates it to a plurality of guest OSs uses a performance monitor circuit will be described. First, the computer system designer measures the data transfer performance of each guest OS on the data transfer path connected to the PCI Express device. Thereafter, in order to guarantee the QoS of each guest OS, the computer system designer physically sets the guest OS so that the total data transfer performance of each guest OS does not exceed the maximum value of the data transfer performance of the data transfer path. Assign it to a device. In addition, after actually starting operation, the data transfer performance of each guest OS may not be as designed. Possible causes are that the guest OS behaves differently from the previous measurement, or that a circuit on the data transfer path is defective. In such a situation, the computer system designer looks at the usage rate of the data transfer path, the degree of congestion, and the like to find out the cause of the performance degradation. At that time, masking the TLP for measuring the data transfer amount contributes to improving the accuracy of analysis.

先に述べた通り、性能モニタ回路は、PCI Expressコンポーネント内に実装し、毎クロック・サイクル発生するイベント数をカウントするために、PCI Expressコンポーネントと同じクロック・サイクルで動作する。これに伴い、サイクル間隔及びサイクル期間をクロック・サイクル単位で指定可能とし、最低でもサイクル間隔及びサイクル期間を格納するレジスタは、ミリ秒を満たすクロック・サイクル数を格納できる大きさとする。同様に、イベント数をカウントするのに使用するカウンタ・レジスタも、最低でもミリ秒間で発生するイベント数をカウントするのに十分な大きさとする。以上により、ナノ秒〜ミリ秒単位でのサンプリング間隔及びサンプリング期間の指定を実現する。   As described above, the performance monitor circuit is implemented in the PCI Express component and operates in the same clock cycle as the PCI Express component in order to count the number of events that occur every clock cycle. Accordingly, the cycle interval and cycle period can be specified in units of clock cycles, and at least the register for storing the cycle interval and cycle period is sized to store the number of clock cycles that satisfy milliseconds. Similarly, the counter register used to count the number of events is at least large enough to count the number of events that occur in milliseconds. As described above, the sampling interval and sampling period in nanoseconds to milliseconds can be specified.

ただし、サイクル間隔及びサイクル期間を格納するレジスタやイベント数をカウントするのに使用するカウンタ・レジスタは、特に大きさを規定するものではなく、サイクル間隔及びサイクル期間を1秒間指定できるようにする等、必要に応じて拡張もしくは削減して構わない。   However, the register that stores the cycle interval and cycle period and the counter register that is used to count the number of events are not particularly limited in size, so that the cycle interval and cycle period can be specified for 1 second, etc. You can expand or reduce as necessary.

次に、性能モニタ回路は、使用者が指定するサンプリング間隔に従って、サンプリング期間内に上記3つの計測と計測結果の記録を複数回に分割して実行することができる、例えば、サンプリング期間を10秒としてサンプリング間隔も同じく10秒とした時は記録を1回だけ行い、サンプリング間隔を1秒とした時は1秒間の計測と計測結果の記録を10回繰り返す。   Next, the performance monitoring circuit can divide and execute the above three measurements and the recording of the measurement results within the sampling period according to the sampling interval specified by the user. For example, the sampling period is 10 seconds. When the sampling interval is also set to 10 seconds, recording is performed only once. When the sampling interval is set to 1 second, measurement for 1 second and recording of the measurement result are repeated 10 times.

さらに、性能モニタ回路は、PCI Expressコンポーネント内で複数バッファが存在した場合に、同じサンプリング間隔とサンプリング期間で上記3つの計測と計測結果の記録を行うことができる。これにより、各バッファの計測結果の時間的な相関を見ることができる。   Furthermore, the performance monitor circuit can record the above three measurements and measurement results at the same sampling interval and sampling period when there are a plurality of buffers in the PCI Express component. Thereby, the temporal correlation of the measurement result of each buffer can be seen.

以上に説明した通り、本発明を実施するための形態によれば、サンプリング期間とサンプリング間隔をそれぞれ指定してPCI Expressコンポーネントの性能解析を行う場合にも、性能解析用ソフトウェアを用いずにPCI Expressコンポーネントのデータ転送性能の解析が可能となる。またPCI Expressコンポーネント内に性能モニタ回路を実装するので、PCI Expressコンポーネントと同じクロック・サイクルで動作可能となり、性能解析の際にサンプリング間隔をミリ秒単位より細かいクロック・サイクル単位で指定できる。結果、従来技術と比べてより細かい粒度の性能解析ができる。   As described above, according to the embodiment for carrying out the present invention, even when the performance analysis of the PCI Express component is performed by designating the sampling period and the sampling interval, the PCI Express is used without using the performance analysis software. Analysis of component data transfer performance is possible. Since the performance monitor circuit is mounted in the PCI Express component, it can operate in the same clock cycle as that of the PCI Express component, and the sampling interval can be specified in units of clock cycles smaller than milliseconds in performance analysis. As a result, it is possible to perform a performance analysis with a finer granularity than in the prior art.

実施例1の計算機システムの一例である。1 is an example of a computer system according to a first embodiment. 実施例1におけるスイッチを示す。The switch in Example 1 is shown. 実施例1の性能モニタ回路の構成例を示す。2 shows a configuration example of a performance monitor circuit according to the first embodiment. 実施例1のマスク・レジスタの一例を示す。2 shows an example of a mask register according to the first embodiment. 実施例1の制御レジスタの一例を示す。3 shows an example of a control register according to the first embodiment. 実施例1の状態レジスタ322の一例を示す。3 shows an example of a status register 322 according to the first embodiment. 実施例1のSRAM323の一例を示す。An example of the SRAM 323 according to the first embodiment is shown. 実施例1の制御回路の処理フローチャートの一例を示す。An example of the process flowchart of the control circuit of Example 1 is shown. 実施例2におけるスイッチを示す。The switch in Example 2 is shown. 実施例2の性能モニタ回路の構成例を示す。3 shows a configuration example of a performance monitor circuit according to a second embodiment. 実施例2のSRAMの一例を示す。An example of SRAM of Example 2 is shown. 実施例2の状態レジスタの一例を示す。An example of the status register of Example 2 is shown.

符号の説明Explanation of symbols

100:CPU、101:メモリ、110:ルート・コンプレックス、111:スイッチ、112〜113:エンド・ポイント、120:サービス・プロセッサ、130:管理用コンソール、140〜142:PCI Expressリンク、150〜153:サービス・プロセッサとPCI Expressコンポーネント間のインターフェース、160:管理用コンソールとサービス・プロセッサ間のインターフェース、200:アップストリーム・ポート、201〜202:ダウンストリーム・ポート、210〜211:バッファ、220:クロスバ・スイッチ、230、930:性能モニタ回路、250、950:データ転送性能計測のための情報を性能モニタ回路に渡すパス、251、951:バッファが転送するTLPのコピーを性能モニタ回路に渡すパス、252〜253:性能モニタ回路の設定及び計測結果を読み出すためのパス、300:カウンタ回路、310〜312、1010〜1012:カウンタ・レジスタ、320:マスク・レジスタ、321:制御レジスタ、322、1022:状態レジスタ、323、1023:SRAM、330、1030:性能モニタ回路。 100: CPU, 101: Memory, 110: Root Complex, 111: Switch, 112-113: End Point, 120: Service Processor, 130: Management Console, 140-142: PCI Express Link, 150-153: Interface between service processor and PCI Express component, 160: Interface between management console and service processor, 200: Upstream port, 201-202: Downstream port, 210-211: Buffer, 220: Crossbar Switch, 230, 930: Performance monitor circuit, 250, 950: Path for passing information for data transfer performance measurement to the performance monitor circuit, 251, 951: Copy of TLP transferred by buffer A path to be passed to the performance monitor circuit, 252 to 253: a path for reading the setting of the performance monitor circuit and a measurement result, 300: a counter circuit, 310-312, 1010 to 1012: a counter register, 320: a mask register, 321 Control register, 322, 1022: status register, 323, 1023: SRAM, 330, 1030: performance monitor circuit.

Claims (12)

バッファを備え、受信したPCI Expressのトランザクション層のパケットを前記バッファに格納し、前記バッファに格納された前記パケットを送信するPCI expressコンポーネントと接続し、前記バッファから送信された前記パケットのデータ量を計測する第1のカウンタ、前記バッファに前記パケットが存在するクロック・サイクル数を計測する第2のカウンタ、前記バッファ内に送信するパケットが存在するが送信できなかったクロック・サイクル数を計測する第3のカウンタ、及び前記第1〜第3のカウンタによる前記計測を所定時間間隔で繰り返すように制御する制御回路を有することを特徴とする性能モニタ回路。 A buffer, storing a received PCI Express transaction layer packet in the buffer, connecting to a PCI express component that transmits the packet stored in the buffer, and determining a data amount of the packet transmitted from the buffer A first counter for measuring, a second counter for measuring the number of clock cycles in which the packet is present in the buffer, and a second counter for measuring the number of clock cycles in which there is a packet to be transmitted but cannot be transmitted in the buffer. And a control circuit that controls to repeat the measurement by the first counter to the third counter at predetermined time intervals. 前記制御回路が前記所定時間間隔で前記第1〜第3のカウンタによる計測値を格納する記憶回路をさらに有することを特徴とする請求項1記載の性能モニタ回路。 2. The performance monitor circuit according to claim 1, further comprising a storage circuit for storing measured values obtained by the first to third counters at the predetermined time interval. 前記制御回路は、前記所定時間間隔で前記第1〜第3のカウンタによる計測値の前記記憶回路への格納に応答して、前記第1〜第3のカウンタを初期化することを特徴とする請求項2記載の性能モニタ回路。 The control circuit initializes the first to third counters in response to storing the measured values by the first to third counters in the storage circuit at the predetermined time interval. The performance monitor circuit according to claim 2. 前記所定時間及び前記所定時間間隔で繰り返す前記第1〜第3のカウンタによる計測期間を前記制御回路が参照する制御レジスタをさらに有することを特徴とする請求項3記載の性能モニタ回路。 4. The performance monitor circuit according to claim 3, further comprising a control register that the control circuit refers to a measurement period by the first to third counters repeated at the predetermined time and the predetermined time interval. 前記第1のカウンタが前記パケットの中の所望のパケットのデータ量を計測するために参照するマスクレジスタをさらに有することを特徴とする請求項4記載の性能モニタ回路。 5. The performance monitor circuit according to claim 4, further comprising a mask register referred to by the first counter for measuring a data amount of a desired packet in the packet. 前記バッファはアップストリーム用のバッファとダウンストリーム用のバッファであり、前記アップストリーム用のバッファと前記ダウンストリーム用のバッファとの各々に関して、前記第1〜第3のカウンタを有することを特徴とする請求項1記載の性能モニタ回路。 The buffers are an upstream buffer and a downstream buffer, and each of the upstream buffer and the downstream buffer includes the first to third counters. The performance monitor circuit according to claim 1. バッファを備え、受信したPCI Expressのトランザクション層のパケットを前記バッファに格納し、前記バッファに格納された前記パケットを送信するPCI expressコンポーネントと接続し、前記バッファから送信された前記パケットのデータ量を計測し、前記バッファに前記パケットが存在するクロック・サイクル数を計測し、前記バッファ内に送信するパケットが存在するが送信できなかったクロック・サイクル数を計測し、前記第1〜第3のカウンタによる前記計測を所定時間間隔で繰り返すことを特徴とする性能モニタ方法。 A buffer, storing a received PCI Express transaction layer packet in the buffer, connecting to a PCI express component that transmits the packet stored in the buffer, and determining a data amount of the packet transmitted from the buffer Measuring the number of clock cycles in which the packet is present in the buffer, measuring the number of clock cycles in which there is a packet to be transmitted but not being transmitted in the buffer, and the first to third counters The performance monitoring method characterized by repeating the measurement according to the above at predetermined time intervals. 前記所定時間間隔で計測した前記データ量、前記バッファに前記パケットが存在するクロック・サイクル数及び前記バッファ内に送信するパケットが存在するが送信できなかったクロック・サイクル数を記憶回路に格納することを特徴とする請求項7記載の性能モニタ方法。 The data amount measured at the predetermined time interval, the number of clock cycles in which the packet exists in the buffer, and the number of clock cycles in which there is a packet to be transmitted in the buffer but cannot be transmitted are stored in a storage circuit. The performance monitoring method according to claim 7. 前記記憶回路への格納に応答して、前記データ量、前記バッファに前記パケットが存在するクロック・サイクル数及び前記バッファ内に送信するパケットが存在するが送信できなかったクロック・サイクル数の計測を初期化することを特徴とする請求項8記載の性能モニタ方法。 In response to storage in the storage circuit, measurement of the amount of data, the number of clock cycles in which the packet is present in the buffer, and the number of clock cycles in which the packet to be transmitted exists in the buffer but could not be transmitted. 9. The performance monitoring method according to claim 8, wherein initialization is performed. 前記所定時間及び前記所定時間間隔で繰り返す計測期間を制御レジスタに設定することを特徴とする請求項9記載の性能モニタ方法。 10. The performance monitoring method according to claim 9, wherein a measurement period repeated at the predetermined time and the predetermined time interval is set in a control register. 前記第1のカウンタが前記パケットの中の所望のパケットのデータ量を計測するためのマスクデータをマスクレジスタに設定することを特徴とする請求項10記載の性能モニタ方法。 11. The performance monitoring method according to claim 10, wherein the first counter sets mask data for measuring a data amount of a desired packet among the packets in a mask register. 前記バッファはアップストリーム用のバッファとダウンストリーム用のバッファであり、前記アップストリーム用のバッファと前記ダウンストリーム用のバッファとの各々に関して、前記データ量、前記バッファに前記パケットが存在するクロック・サイクル数及び前記バッファ内に送信するパケットが存在するが送信できなかったクロック・サイクル数を計測することを特徴とする請求項7記載の性能モニタ方法。 The buffer is an upstream buffer and a downstream buffer, and for each of the upstream buffer and the downstream buffer, the amount of data and the clock cycle in which the packet is present in the buffer. 8. The performance monitoring method according to claim 7, wherein the number and the number of clock cycles in which a packet to be transmitted exists in the buffer but cannot be transmitted are measured.
JP2008045730A 2008-02-27 2008-02-27 Performance monitor circuit and performance monitor method Pending JP2009205334A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008045730A JP2009205334A (en) 2008-02-27 2008-02-27 Performance monitor circuit and performance monitor method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008045730A JP2009205334A (en) 2008-02-27 2008-02-27 Performance monitor circuit and performance monitor method

Publications (1)

Publication Number Publication Date
JP2009205334A true JP2009205334A (en) 2009-09-10

Family

ID=41147540

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008045730A Pending JP2009205334A (en) 2008-02-27 2008-02-27 Performance monitor circuit and performance monitor method

Country Status (1)

Country Link
JP (1) JP2009205334A (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011081769A (en) * 2009-09-14 2011-04-21 Ricoh Co Ltd Apparatus, device and method for transferring data
JP2013073289A (en) * 2011-09-27 2013-04-22 Nec Corp Multiplex system, data communication card, state abnormality detection method and program
JP2013534680A (en) * 2010-07-15 2013-09-05 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド System and method for accessing PCI Express compatible device resources
JP2014078065A (en) * 2012-10-09 2014-05-01 Nec Corp Data communication device and control method thereof, and computer program
US11372782B2 (en) 2019-08-14 2022-06-28 Samsung Electronics Co., Ltd. Computing system for reducing latency between serially connected electronic devices
US11733872B2 (en) 2021-09-28 2023-08-22 Samsung Electronics Co., Ltd. Storage device and system of controlling operation through flow control monitoring

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08298536A (en) * 1995-01-30 1996-11-12 Hewlett Packard Co <Hp> Frame period monitoring system
JP2003318961A (en) * 2002-04-22 2003-11-07 Hitachi Ltd Network repeater and method for collecting statistic information therefor
JP2007249816A (en) * 2006-03-17 2007-09-27 Ricoh Co Ltd Data communication circuit and arbitration method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08298536A (en) * 1995-01-30 1996-11-12 Hewlett Packard Co <Hp> Frame period monitoring system
JP2003318961A (en) * 2002-04-22 2003-11-07 Hitachi Ltd Network repeater and method for collecting statistic information therefor
JP2007249816A (en) * 2006-03-17 2007-09-27 Ricoh Co Ltd Data communication circuit and arbitration method

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011081769A (en) * 2009-09-14 2011-04-21 Ricoh Co Ltd Apparatus, device and method for transferring data
JP2013534680A (en) * 2010-07-15 2013-09-05 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド System and method for accessing PCI Express compatible device resources
JP2013073289A (en) * 2011-09-27 2013-04-22 Nec Corp Multiplex system, data communication card, state abnormality detection method and program
US8990632B2 (en) 2011-09-27 2015-03-24 Nec Corporation System for monitoring state information in a multiplex system
JP2014078065A (en) * 2012-10-09 2014-05-01 Nec Corp Data communication device and control method thereof, and computer program
US11372782B2 (en) 2019-08-14 2022-06-28 Samsung Electronics Co., Ltd. Computing system for reducing latency between serially connected electronic devices
US11733872B2 (en) 2021-09-28 2023-08-22 Samsung Electronics Co., Ltd. Storage device and system of controlling operation through flow control monitoring

Similar Documents

Publication Publication Date Title
US11677813B2 (en) Dynamic configuration of inter-chip and on-chip networks in cloud computing system
US11048569B1 (en) Adaptive timeout mechanism
JP7247213B2 (en) debug controller circuit
Larsen et al. Architectural breakdown of end-to-end latency in a TCP/IP network
US9086965B2 (en) PCI express error handling and recovery action controls
US8874959B2 (en) Information processing apparatus, image forming apparatus, and information processing program
EP2767899A2 (en) Non-volatile memory channel control using a general purpose programmable processor in combination with a low level programmable sequencer
US9448870B2 (en) Providing error handling support to legacy devices
US10691576B1 (en) Multiple reset types in a system
US8286027B2 (en) Input/output device including a mechanism for accelerated error handling in multiple processor and multi-function systems
US10078543B2 (en) Correctable error filtering for input/output subsystem
JP2009205334A (en) Performance monitor circuit and performance monitor method
US10896001B1 (en) Notifications in integrated circuits
US7783817B2 (en) Method and apparatus for conditional broadcast of barrier operations
US6526501B2 (en) Adapter for a microprocessor
WO2009123848A2 (en) Apparatus and method for low overhead correlation of multi-processor trace information
CN111752607A (en) System, apparatus and method for bulk register access in a processor
US11442844B1 (en) High speed debug hub for debugging designs in an integrated circuit
CN115203095A (en) PCIe device and operating method thereof
JP2008165556A (en) Computer system and chip set therefor
CN115685785B (en) Universal bus model and simulation test method
US10911375B2 (en) Processor and information processing apparatus for checking interconnects among a plurality of processors
US9639076B2 (en) Switch device, information processing device, and control method of information processing device
Coleman et al. Emerging COTS architecture support for real-time TSN Ethernet
US20150378949A1 (en) Method of Transaction and Event Ordering within the Interconnect

Legal Events

Date Code Title Description
A621 Written request for application examination

Effective date: 20100621

Free format text: JAPANESE INTERMEDIATE CODE: A621

A977 Report on retrieval

Effective date: 20120127

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120207

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120605