JP4504737B2 - パフォーマンス・モニタ回路 - Google Patents

パフォーマンス・モニタ回路 Download PDF

Info

Publication number
JP4504737B2
JP4504737B2 JP2004156004A JP2004156004A JP4504737B2 JP 4504737 B2 JP4504737 B2 JP 4504737B2 JP 2004156004 A JP2004156004 A JP 2004156004A JP 2004156004 A JP2004156004 A JP 2004156004A JP 4504737 B2 JP4504737 B2 JP 4504737B2
Authority
JP
Japan
Prior art keywords
output
data
data bus
bit
circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004156004A
Other languages
English (en)
Other versions
JP2005339107A (ja
Inventor
英之 三輪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2004156004A priority Critical patent/JP4504737B2/ja
Publication of JP2005339107A publication Critical patent/JP2005339107A/ja
Application granted granted Critical
Publication of JP4504737B2 publication Critical patent/JP4504737B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、半導体デバイスの内部の状態、動作の計測を行うパフォーマンス・モニタ回路に関するものであり、特に、ビット幅の変換を行う回路を備えたパフォーマンス・モニタ回路に関する。
近年の情報処理技術の発展に伴い、半導体デバイスの高速動作が要求されており、そのため、半導体デバイスのアーキテクチャーやソフトウェア記述の最適化が必須となる。ハードウェア並びにソフトウェアを最適化するためには、半導体デバイスの高速動作の妨げとなっている箇所を特定する必要がある。その特定を行うために必要なデータを収集するための手段として、パフォーマンス・モニタ回路が用いられている。
図12に、従来のパフォーマンス・モニタシステム90のブロック図を示す。パフォーマンス・モニタシステム90は、検出部91、制御部92、カウンタ部93及びメモリ94から構成されている。
次に、従来のパフォーマンス・モニタシステム90の動作について説明する。パフォーマンス・モニタシステム90内の検出部91は、モニタの対象となっている事象(例えば、ディスクアレイ装置等におけるブロックまたはファイル毎のリード/ライト)が発生すると、その事象の発生を検出し、制御部92に事象の発生があった旨を伝える。事象の発生が伝えられた制御部92は、カウンタ部93のカウンタを+1カウントアップするようカウンタ部93に対して、信号を送る。信号が送られたカウンタ部93はカウンタ値を+1だけアップする。また、制御部92はカウンタ部93のカウント値がオーバーフローしていないかどうかの確認をする。もし、カウンタ部93のカウント値がオーバーフローを起こしていた場合には、制御部92はメモリ94に対して、カウンタ部93のカウント値をメモリ94に書き込むよう書き込み信号を出力する。書き込み信号が入力されたメモリ94は、カウンタ部93よりカウンタ値を取得して記憶する。これにより、パフォーマンス・モニタシステムによって取得した事象の発生状況を分析することによって、半導体集積回路(LSI)の内部の状態、動作を把握することができ、ハードウェア及びソフトウェアの記述の最適化の妨げになっている箇所の特定が可能となる。
例えば、先行文献1には、複数の事象の発生を事象発生検出部で検出し、その事象を、カウンタを用いてカウントし、カウント値をメモリ上に確保された記憶領域に記憶する技術が開示されている。
特開2002-207614
しかしながら、上述の従来技術では、カウンタ93が計測したカウント値をメモリ94に記憶するため、制御部92はデータバスの使用権を取得する。そのため、モニタシステムがモニタした計測結果を出力するためにデータバスの使用権を占有してしまうことになる。この時CPUが、CPU外部へのアクセスを必要とする命令を実行しデータバスの使用権を要求したとしても、すでにモニタシステムがデータバスを占有しているため、データバスの使用権を取得することができず、データバスの使用権を得られなかったCPUは、使用権を得るまでの間、その他の処理を行うことになる。このため、モニタの対象であるLSIは本来の動作とは異なる動作を行うことになり、その結果、パフォーマンス・モニタ回路は、本来のLSIの動作とは異なる動作のモニタを行ってしまうという問題がある。
この問題は、カウンタ回路から出力されるデータが大きくなればなるほどカウンタからメモリへのデータ転送回数が増加しデータバスの占有時間が長くなるため顕著となる。たとえば、カウンタからメモリへ32ビットのデータを16ビットのデータバスを介して送る場合、32ビットのデータを2個の16ビットのデータに分けて送る必要があるため、16ビットの1個のデータを送る場合の2倍の時間がかかる。そのため、パフォーマンス・モニタ回路によるデータバスの占有時間が大きくなり、LSIチップが本来とは異なる動作を行ってしまう可能性が大きくなる。
本発明は、上記問題点に鑑みてなされたものであって、その主たる目的は、モニタシステムがモニタ対象であるLSIの動作に及ぼす影響を軽減することができるパフォーマンス・モニタ回路を提供することにある。
上述した目的を達成するために、本発明に係るパフォーマンス・モニタ回路は、複数の事象の発生回数を計測し、複数のmbitを有する第1の計測結果を、n(m>n)bit幅を有するデータバスに出力するパフォーマンス・モニタ回路において、前記第1の計測結果の内nbit以下を選択して前記データバスに出力することを特徴とする。
本発明に係るパフォーマンス・モニタ回路によれば、データバスを介してモニタ結果を出力する際の、モニタシステムがモニタ対象であるLSIの動作に及ぼす影響を軽減することができる。
以下、図面を用いて、発明の実施の形態を詳細に説明する。但し、説明するにあたって、パフォーマンス・モニタシステム及び回路が検出する事象として、データバスに接続された複数のデバイス間で行われるデータバスを介したデータ転送の回数を例として取り上げることにする。この際のパフォーマンス・モニタの目的は、データ転送回数の測定をすることによって、いくつかのデータバスを介したデータ転送の内、他のデータ転送に比べて、相対的にデータ転送回数が多いデータ転送を特定することができ、データバスを介したデータ転送の最適化、すなわち、データバスのアーキテクチャーの最適化のためのデータ情報を、収集することにある。
図1は、本発明に係るパフォーマンス・モニタ回路を含めたパフォーマンス・モニタシステムを簡略的に示したブロック図である。図1において、16bitデータバス17には、中央演算装置12(CPU)、ダイレクト・メモリ・アクセス・コントローラ13(DMAC)、ランダム・アクセス・メモリ14(RAM)、リード・オンリー・メモリ15(ROM)及び入出力16(I/O)の各デバイスと共に、パフォーマンス・モニタ回路(PM回路10)が接続されている。また、CPU12、DMAC13等のバス・マスタ間でのデータバス17の使用権の調停を行うバス・アービトレーション・ユニット11(BAU)が、CPU12、DMAC13及びPM回路10と接続されている。尚、バスにはデータバスの他にアドレスバス及びコントロールバスが存在するが、本発明は特にアドレスバス及びコントロールバスの動作には直接には関係しないため、簡単のため、図1ではアドレスバス及びコントロールバスは省略する。
まず、データバス17を使用したデータの転送方法について図2を用いて説明する。(図1と同じ構成要素、信号である場合には、同じ番号を付す。以下、他の図についても同じ。)ここでは、CPU12からRAM14にデータが書き込まれる場合のデータの転送方法を例にあげて説明する。マスタ側デバイスがデータバス17を用いてスレーブ側デバイスとの間でデータの送受信を行うためには、BAU11によるデータバス17の使用権の調停が行われなければならない。従って、まずCPU12は、BAU11に対してデータバス17の使用権を求めてCPUリクエスト信号120を出力する。CPUリクエスト信号120を受け取ったBAU11は、データバス17の使用権に関しての調停を行い、CPU12に対してデータバス17の使用を許可する場合には、許可する旨(データバス17の使用権を与える)のCPUグラント信号110を返す。このようにしてデータバス17の使用権を得たCPU12は、RAM14にデータを書き込むために、データバス17上に転送データを出力し、RAM14へのデータの書き込み動作を開始する(図2(a))。
また逆に、BAU11がCPU12に対してデータバス17の使用を許可しない場合には、許可しない旨(データバス17の使用権を与えない)のCPUグラント信号110を返す。不許可のグラント信号を受け取ったCPU12は、所定の時間経過後に再びBAU11に対してCPUリクエスト信号120を出力してデータバス17の使用権を求める。この所定の時間の間、CPU12は、データバス17の使用権を得られるまで、データキャッシュへの書き込みや演算等のその他の処理を行うことができる。その後、CPUリクエスト信号120に対して、BAU11がデータバス17の使用を許可する旨のCPUグラント信号110を返した場合には、CPU12はデータバス17上に転送データを出力し、RAM14へのデータの書き込み動作を開始する(図2(b))。
尚、BAU11から出力されるCPUグラント信号110は、PM回路10に対しても出力される。
RAM14へのデータの書き込みをするにあたってCPU12は、データバス17を使ってRAM14に書き込むデータ出力する他、アドレス等の書き込みに必要な信号をアドレスバスやコントロールバスを使ってRAM14に対して出力する。その際、CPU12は、PM回路10に対して、送信先のデバイスとしてRAM14を選択した旨を伝えるCPUデバイス選択信号121を出力する(図2)。
PM回路10は、このようにして行われるデータバス17を使用したデータ転送の転送回数を計測する。転送回数は、転送の種類ごと、つまり、どのデバイス間で行われたかを区別して計測される。図1においては、転送の種類が、CPU12とRAM14間の転送、CPU12とROM15間の転送、CPU12とI/O16間の転送、RAM14とROM15間のDMA転送、RAM14とI/O16間のDMA転送、ROM15とI/O16間のDMA転送の6通り存在する。従って、図1の場合のPM回路10は、6通りの転送別にそれぞれ分けて計測する。
PM回路10が転送別に転送回数を計測するためには、6種類の転送の内、どの転送が行われたかを判定しなければならない。CPU12からRAM14へのデータの書き込みの例においては、判定の方法は、PM回路10に入力されるデータバス17の使用を許可する旨のCPUグラント信号110とRAM14を選択した旨を伝えるCPUデバイス選択信号121によって行われる。すなわち、前者はBAU11からデータバス17の使用をCPU12に許可することがわかり、後者はバスの使用を許可されたCPU12がRAM14とのデータの送受信を行うことがわかるので、本データ転送がCPU12とRAM14間の転送であることが決定できる。
転送別に計測された転送回数は、一旦PM回路10内の記憶領域で蓄えられ、その後、PM回路10よりデータバス17を経由して、I/O16より出力される。詳細については後述する。
次に、PM回路10の構成を中心に説明する。図3(実施例1)に、PM回路10の基本構成を示す。検出回路300〜305は、データバス17の使用権を与えるためにBAU11が出力するCPUグラント信号110及びDMACグラント信号111と、データ転送の相手を知られるためのCPU12及びDMAC13が出力するCPUデバイス選択信号121及びDMACデバイス選択信号131とを受け取り、検出信号310〜315を32bitカウンタ回路320〜325に出力する。
32bitカウンタ回路320〜325は、検出信号310〜315を受け取り、書き込み制御回路35に対してオーバーフロー信号330〜335と、記憶領域に対して16ビット幅を持つカウントデータ信号340〜345を出力する。
書き込み制御回路35は、オーバーフロー信号330〜335を受け取り、記憶領域36、出力データ制御回路37及び32bitカウンタ回路320〜325に対して書き込み許可信号350を出力する。
記憶領域36は、書き込み許可信号350、16ビット幅を持つカウントデータ信号340〜345及び出力データ制御信号370を受け取り、データバス17に対して記憶したカウントデータを16ビット幅データとして出力する。
データ出力制御回路37は、書き込み許可信号350を受け取り、記憶領域36に対して出力データ制御信号370を出力する。
尚、図1における転送の種類は、前述の通り6パターン存在するので、転送別に転送回数を計測できるように、PM回路10は、検出回路300〜305及び32bitカウンタ回路320〜325の6組から構成されている。
続いて、PM回路10の内部回路の動作を中心に、図4のフロー図を使用して動作について説明する。動作を説明するにあたって、前述同様、CPU12からRAM14へのデータ書き込みの場合を例にとり説明する。また、CPU12とRAM14間の転送を検出し、カウントする回路を、検出回路300及び32bitカウンタ回路320とする。フローのスタートは、データ転送に必要なデータバスの使用権をBAU11から得たところから始めるとする。
BAU11は、CPU12にデータバス17の使用を許可したため、データバス17の使用を許可する旨のCPUグラント信号110を検出回路300〜305に入力する。また、CPU12は、BAU11よりデータバス17の使用権を得ることができたため、データの書き込み先としてRAM14を選択した旨を伝えるCPUデバイス選択信号121を検出回路300〜305に入力する(ステップ1)。
検出回路300〜305は、入力されたCPUグラント信号110とCPUデバイス選択信号121から、どのデバイス間でデータバス17を使った転送が行われたかを判定する(ステップ2)。今回の例では、CPU12とRAM14間の転送が行われたので、当該転送を計測する検出回路300は、CPU12とRAM14間の転送があったことを検出する。その他の検出回路300〜305は、それぞれが計測する転送ではないので、動作しない。
CPU12とRAM14間の転送があったことを検出した検出回路300は、当該転送回数をカウントする32bitカウンタ回路320に対して、検出信号310を出力する(ステップ3)。
検出信号310を受信した32bitカウンタ回路320は、検出信号310をトリガとして転送回数を1カウントアップする(ステップ4)。
32bitカウンタ回路320は、カウント値がオーバーフローしていないかどうかを確認する(ステップ5)。オーバーフローしていない場合には、次の転送に備えて、検出信号310の入力を待つ。
もし、32bitカウンタ回路320がオーバーフローをしている場合には、書き込み制御回路35に対して、オーバーフロー信号330を出力する(ステップ6)。
オーバーフロー信号330を受信した書き込み制御回路35は、記憶回路36、出力データ制御回路37及び32bitカウンタ回路320〜325に対して、書き込み許可信号350を出力する(ステップ7)。尚、今回は32bitカウンタ回路320がオーバーフローした場合であるが、その他の32bitカウンタ回路321〜325がオーバーフローした場合にも、同様の動作をする。
書き込み許可信号350を受信した記憶領域36は、32bitカウンタ回路321〜325より、現在のカウント値を示した32bitのカウンタ値の内、上位16bitを選択し、それをカウントデータ信号341〜345として取得して、その16bitデータを記憶領域36に記憶する(ステップ8)。また、オーバーフローを生じた32bitカウンタ回路320のカウント値は、オーバーフローを生じる直前の値とし、その上位16bitをカウントデータ信号340とする。
また、書き込み許可信号350を受信した32bitカウンタ回路321〜325は、記憶回路36へのカウントデータ信号341〜345の格納後、カウント値を0クリアする(ステップ9)。また、オーバーフローを生じた32bitカウンタ回路320は、オーバーフローを生じた時の転送をカウントしていないため、記憶回路36へのカウントデータ信号340の格納後、0クリアせずに1をセットする。
また、書き込み許可信号350を受信した出力データ制御回路37は、書き込み許可信号350の出力回数をカウントすることで、記憶領域36に記憶されるデータ量を監視する(ステップ10)。
出力データ制御回路37は、カウントした書き込み許可信号350のカウント値より、記憶領域36に書き込んだデータがいっぱいになったかどうかを判定する(ステップ11)。その際、まだ記憶できる領域があると判断した場合には、次の書き込み許可信号350の入力に備えて待機する。
もし、出力データ制御回路37が記憶領域36の空き容量がないと判断した場合には、記憶領域36に対して、出力データ制御信号370を出力する(ステップ12)。
出力データ制御信号370を受信した記憶領域36は、格納している16bitカウントデータ値を、16bitデータバスを経由して、I/O16に出力する。
I/O16より外部に出力されたカウンタ値の上位16ビットのデータは、6種類の転送回数ごとに分類されて集計される。集計された転送回数よりデータバス17の占有率を計算することができる。これにより、どのデバイス間の転送がどの程度データバス17を占有していたかを分析することによって、アプリケーションの動作速度の最適化及びバスアーキテクチャの最適化(マルチレイヤ化、階層化等)を達成するための情報として役立てることができる。
本発明のモニタの対象は、データバス17の占有率、つまりデータバス17の転送回数をカウントすることである。そして、モニタの際には、このモニタシステムがデータバス17に与える影響を最小限に抑えることが好ましい。なぜならば、モニタシステムが、モニタ結果の出力のためにデータバス17の使用権を占有してしまうと、本来はCPU12がデータバス17を使用してデータ転送をするはずであった場合でも、データバス17の使用権がないために、データ転送を行うことができなくなる。このような場合、CPU12は、所定の時間の経過後、再びデータ転送を試みるためにBAU11に対してデータバスの使用権を要求するが、当該所定の時間においては、CPU12は、ただ単に動作を停止するのではなく、データバス17を使用したデータ転送以外の演算等のその他の処理を行う。このようにして行われたCPU12の処理の影響により、モニタシステムがデータバス17を占有しなければ行われるはずであったデータ転送と全く同じデータ転送が行われないような事態が生じることになり、その結果、本来のデータ転送とは異なるデータ転送をモニタしてしまうことになるからである。従って、長期間モニタを行い、記憶回路36がオーバーフローを生じて、モニタ中に記憶回路36から計測結果を、データバス17を経由してI/O16より出力しなければならない場合には、モニタシステムがデータバス17を使用することによって、その他のデバイスが行う本来のデータバス17を使用したデータ転送を妨害することを極力減らす必要がある。
図3の実施例1においては、データバス17のバス幅は、16bitである。そして、計測する32bitカウンタ回路320〜325は、32bitまでのカウンタ値を計測する。本発明のモニタは長期間であることを想定しているため、データバス17のバス幅17に対して、カウンタ回路は32bitという非常に大きいbit数を有する必要がある。しかし、記憶回路では、カウント値の上位16bitのみを記憶回路に記憶するので、記憶した1データ(16bit)あたり1回の転送で、16bitデータバス17を経由してI/O16より外部に出力可能となる。ここで、仮に32bit全てを記憶回路に記憶する構成を考えると、16bitデータバス17を経由した記憶した1データ(32bit)あたりの転送回数が、2回となり、モニタシステムが実動作に与える影響が2倍になってしまうことになる。
また、実施例1では、モニタの結果である32bitカウンタ値の下位16bitを切り捨てている。本モニタシステムがモニタした結果から得たいと考えているのは、前述の通り、データ転送の回数それ自体ではなく、データ転送ごとの比率であって、最適化したい対象の特定、つまり、LSIの高速動作の妨げとなっているデータ転送の特定をすることである。このような事情を考えると、32bitカウンタ回路320〜325によりカウントされた32bitカウンタ値の内、より支配的である上位bitが重要になり、支配的ではない下位bitの重要度は低い。実施例1では、モニタの結果である32bitカウンタ値の下位16bitを切り捨て、上位16bitのみを計測結果として記憶領域36に記憶する。計測結果に及ぼす影響が少ない下位16bitを切り捨てることによって、記憶領域36に記憶するデータ量を削減すると共に、モニタした結果を、データバス17を介して出力する際の実動作に与える影響を減少させる効果を生じる。
次に、PM回路10の別の実施例を、図5(実施例2)に示す。(本実施形態では、転送回数をカウントするための回路は、カウンタ回路ではなく、累算器(アキュミュレータ)500〜505及びレジスタ510〜515で構成している。
また、PM回路10の別の実施例を、図6(実施例3)に示す。本実施形態では、記憶回路36が出力する計測結果は、データバス17に出力する前に、出力データ調整回路60に入力される。出力データ調整回路60では、記憶回路36から入力される計測結果を、転送別に加算していく。図1の場合では、転送パターンが6通り存在するので、6通りの転送に分けて、転送回数を集計する。集計結果は、上位16bitのみを計測結果として、データバス17を経由して、I/O16に出力される。
実施例1に場合では、16bitの計測データが、6転送ごとに、記憶回数分が記憶回路16より16bitデータバス17に出力される。従って、記憶回数をnとすると、16bitデータバス17を使用した計測結果のデータ転送が、6n回行われることになる。それに対して、実施例3においては、出力データ調整回路60により、記憶回数分記憶されている計測データを16bitデータバス17に出出力する前に集計するため、出力させるべき計測結果は、6個だけとなる。この集計データはそれぞれ、上位16bitのみを選択するため、16bitデータバス8を使用した計測結果のデータ転送が、6回ですむことになる。従って、実施例3は、実施例1に比べて、本モニタシステムが実動作に与える影響を、1/n倍に軽減することができる。
尚、実施例3の説明としては、出力データ調整回路60は計測結果をデータ転送ごとに集計すると説明したが、データ転送ごとの比率を算出した結果をデータバス17に出力してもよい。例えば、モニタ対象とするデータ転送が3種類(データ転送A、データ転送B、データ転送C)であり、データ転送ごとに加算した結果がそれぞれ、3000、100、200であった場合には、データ転送ごとの比率は、データ転送A:データ転送B:データ転送C=30:1:2となる。但し、この際の比率は、データバス幅に合うように計算する。従って、加算した結果をそのままデータバスに出力する場合には、3回のデータ転送が必要となるが、比率を出力する場合には、必要なデータ転送は1回である。ゆえに、集計結果をそのまま出力する場合に比べて、LSIの実動作に与える影響を更に減少させることができる。
また、PM回路10の別の実施例を、図7(実施例4)に示す。本実施形態では、32bitカウンタ回路320〜325から出力されるカウントデータ信号340〜345を16bitデータではなく、32bitデータとして、記憶回路36は記憶する。記憶回路36に記憶された計測結果を、16bitデータバス17を経由して、I/O16より出力する場合には、記憶回路36に記憶された32bit計測結果は、一旦出力データ調整回路60に入力され、16bitデータに加工され後、16bitデータバス17を経由して、I/O16に出力される。
実施例1乃至3では、32bitカウンタ回路320〜325でカウントした32bitカウント値を上位16bitに削減した後に、その結果をデータ転送ごとにそれぞれ集計する方式をとっているが、実施例4では、32bitカウンタ回路320〜325でカウントした32bitカウント値を転送ごとにそれぞれ集計した後に、得られた値の上位16bitを選択する方式をとっている。
具体的な例をあげて実施例3と実施例4の効果の違いについて説明する。説明するにあたって簡単のため、データバスのバス幅及びカウンタ回路は4bitとし、計測すべきデータ転送はAとBの2種類であるとする。また、データ転送A、データ転送Bを計測するカウンタ回路をそれぞれカウンタ回路A、カウンタ回路Bとし、実施例3において計測結果は上位2bitのみを選択することとする。尚、カウンタ回路Aが4回オーバーフローした場合を考え、その際のカウンタ回路Bのカウント値は全て、2進法で0001b(10進法で1)とする。
実施例3では、データ転送Aについては、1111bの上位2bit(11b)が選択されてから記憶領域36に11bが記憶されることが4回行われるので、記憶領域36から出力される4つの計測結果を加算すると、11b+11b+11b+11b=1100bとなり、1100bがデータバスに出力される。データ転送Bについては、データ転送Aと同様に考えると、00b+00b+00b+00b=0000bより、0000bデータバスに出力される。
一方、実施例4では、データ転送Aについては、計測結果の全てのbitが選択されて記憶回路36に記憶されるので、1111bが4つ記憶されることになる。その後加算してからデータバスに出力されるので、1111b+1111b+1111b+1111b=111100bの上位4bit(1111b)が選択されてデータバスに出力される。データ転送Bについては、データ転送Aと同様に考えると、0001b+0001b+0001b+0001b=000100bの上位4bit(0001b)が選択されてデータバスに出力される。
ここで、データバスに出力された後の計測結果を考慮すると、実施例3では、記憶領域36に記憶する際に切り捨てた下位2bitを補完すると、データ転送Aは110000b(48)であり、データ転送Bは000000b(0)である。これに対し、実施例4では、データバスに出力する際に切り捨てた下位2bitを補完すると、データ転送Aは111100b(60)であり、データ転送Bは000100b(4)となる。両者を比較すると、データ転送A、B共に差異が見られ、今回のケースでは、実施例4による計測結果は正確な値が出ている点に対して、実施例3による計測結果は正確な値とはなっていない。従って、このような構成とすることにより、実施例4は実施例3に比べて、より正確な値を計測結果として得ることができるので、データ転送ごとの比率をより正確に把握したい場合、若しくは、より正確なデータ転送回数を把握したい場合に有効となる。
また、記憶領域36からの計測結果を出力するタイミングに関しての別の実施例を図8(実施例5)に示す。本実施形態では、BAU11から出力されるデータバスアイドル信号80がPM回路10内の出力データ制御回路37に入力される。データバスアイドル信号80は、BAU11がCPU12及びDMAC13の双方共にデータバス17の使用権を与えていない、すなわち、データバス17がアイドル状態になっていることを示す信号である。
出力データ制御回路37は、データバスアイドル信号80を検出した場合には、書き込み許可信号350をカウントすることによる記憶領域36のオーバーフロー状態の検出の前であっても、記憶領域36に対して、出力データ制御信号370を出力する。これにより、データバス17が使用されていない間に、記憶領域36からデータバス17を経由してI/O16に計測結果を出力し始めるため、本モニタシステムが、実動作に与える影響を減らすことに効果がある。また、計測結果の出力が終了する前に、アイドル状態が終了した場合には、一旦計測結果の出力を停止し、データバスの使用権を開放することもできる。これにより、本モニタシステムが、実動作に与える影響をさらに減らすことができる。尚、出力データ制御回路37は、出力データ制御信号370を出力した後には、カウントしていた書き込み許可信号350のカウント値を0クリアする。
次にモニタシステムがデータバスに与える影響を抑制する本発明の効果について、円グラフを用いて説明する。図9(a)は、データバスのモニタをしなかった場合におけるバスの占有率を表したものである。図中のCPU及びDMACはそれぞれのマスタ側のデバイスがデータバスを使用していた割合を示し、またCPU及びDMACの双方ともデータバスを使用していなかった場合をIDOLとして示している。図9(b)は、従来のモニタの方法におけるデータバスの占有率を表したものである。モニタシステムがデータバスを使用した割合をPMで示す。モニタシステムが計測結果をデータバス経由でRAMに書き込むため、その分IDOL領域が減っている。図9(c)は、本発明のモニタシステムを使用した場合におけるデータバスの占有率を表したものである。本発明では、データバスを使用した転送回数を抑えているため、図9(b)に比べると、PM領域が非常に小さくなっているといえる。これにより、モニタシステムがデータバスを使用しているために、CPU又はDMACがデータバスを使用できないという機会が非常に低くなる、つまり、本モニタシステムが実動作に与える影響を緩和することができるという効果があることが認識できる。
また、今度はタイミングチャートを使って、本発明の効果について実施例ごとに分けて説明する。図10(a)〜(e)は、それぞれ、(a)モニタをしなかった場合、(b)従来のモニタ方法、(c)実施例1及び2、(d)実施例3及び4、(e)実施例5の場合を示す。また、今回説明を簡略化するため、データバスの使用回数を計測するカウンタ回路を2bit、記憶領域を4bit、データバス幅を2bitとする。
図10(b)は、従来のモニタ方法によるデータバスのタイミングチャートを表している。2bitカウンタ回路がオーバーフローした場合には、その計測結果を2bitデータとして、2bitデータバスに出力する。図10(b)では、2bitカウンタ回路が4回オーバーフローする場合を示しており、それぞれオーバーフロー直後に計測結果をデータバスに出力する。従って、2bitデータバスにて、2bit計測データ4個を、4回に分けて転送を行う。
図10(c)は、実施例1及び2によるデータバスのタイミングチャートを表している。2bitカウンタ回路がオーバーフローした場合には、計測結果の上位1bitのみを選択して記憶領域に記憶する。図10(c)では、図10(b)と同様にデータバスが使用されたとすると、4回目の記憶領域への書き込みによって、記憶領域はオーバーフローになるため、4回目の記憶領域への記憶作業の直後、計測結果は記憶領域からデータバスに出力される。従って、2bitデータバスにて、1bit計測データ4個を、2回に分けて転送を行う。ゆえに、図10(c)は、図10(b)の場合に比べてデータバスの使用回数を2分の1に減らすことができる。
図10(d)は、図10(c)の場合において、記憶された計測結果の1bit×4のデータをそのままデータバスに出力させずに、加算した後、その上位2bitデータをデータバスに出力する。従って、2bitデータバスにて、2bit計測加算データ1個を、1回で転送を行う。ゆえに、図10(d)では、図(b)の場合に比べてデータバスの使用回数を4分の1に、図10(c)の場合に比べてデータバスの使用回数を2分の1減らすことができる。
図10(e)は、図10(d)の場合において、オーバーフローする前であっても、アイドル状態を検出した際に、データバスへの計測結果の出力をし始める。これにより、CPU又はDMACによるデータバスの使用を妨害してモニタシステムがデータバスを使用する割合を減少させることができる。図10(e)では、アイドル状態中に計測結果の出力が終了した場合を示している。この場合には、モニタシステムが実動作に与える影響は全くないと考えられる。
以上のように、本モニタシステムがデータバスを使用する回数は、従来の場合に比べて著しく減少し、そのため本モニタシステムが実動作に与える影響を大幅に軽減することができる。
また、本発明に係るパフォーマンスのモニタシステムでは、図1のデータバス17に接続されたデバイスをCPU12、DMAC13、RAM14、ROM15、I/O16としているが、この構成に捉われる必要はなく、例えばマスタ側のデバイスが1つだけ接続されている場合やマスタ側及びスレーブ側のデバイスとしてその他のデバイスが接続されている場合であっても構わない。また、データバス17を16bit幅としているが、そのbit幅にとらわれる必要はない。
また、本発明では、実施例のカウントデータ信号340〜345は16bit又は32bitとして説明しているが、そのビット数にとらわれる必要はない。
また本発明では、実施例1、3又は4では、転送回数をカウントするカウンタ回路が32bitカウンタ回路320〜325として説明しているがが、32bitにとらわれる必要はない。同様に、実施例2においても、累算器500〜505及びレジスタ510〜515は、32bitにとらわれる必要はない。
但し、この場合、本発明の効果が得られるためには、カウンタ回路又は累算器及びレジスタから転送ごとに分けて出力されるカウント値(カウントデータ信号340〜345)の内少なくとも1つのカウント値のデータ幅がデータバス17のバス幅を超える、若しくは、カウンタ回路又は累算器及びレジスタから出力されるカウント値を転送ごとに分けて集計した結果をデータバス17に出力する際に、その集計結果の内少なくとも1つの集計結果のデータ幅がデータバス17のバス幅を超えるように、データバス17のバス幅、カウントデータ信号340〜345のデータ幅、カウンタ回路又は累算器及びレジスタのビット幅を設定する必要がある。
また、本発明の検出回路300〜305がどのデバイス間での転送が行われたかの転送の種類を判定する方法として、BAU11から出力されるCPUグラント信号110とCPU12から出力されるCPUデバイス選択信号121とから特定する方法を記載しているが、当該方法に捉われることはなく、例えば、他の方法として、CPU12からアドレスバスに出力されるアドレスを検出回路300〜305が参照することによって転送の種類を特定するような方法も考えられる。
また、本発明に係るPM回路10の記憶領域36として、FIFOを用いてもよい。FIFOを使用することにより、構造を単純化することが可能となる。
また、本発明に係るPM回路10の検出回路300〜305は、データバス17を使用したデータ転送の回数を計測するものとして説明したが、その検出回路の1つにクロックを計測する回路を追加してもよい。これにより、クロックを計測する検出回路が必ず最初にオーバーフローを起こすため、ある一定期間に行われたデータ転送回数を計測することになり、定期的な時間間隔でのデータの取得が可能となる。
また、本発明に係るパフォーマンスのモニタシステムでは、モニタ結果はI/O16より出力するよう説明しているが、データバス17上に接続されているRAM14に一旦保存するような構成としてもよい。その際には、モニタの終了後にRAM14に保存されているモニタ結果を、I/O16より出力する。
また、モニタの対象であるLSIのデータバス17が複数に分離されている場合の本発明の実施例について説明する。図11は、データバス17が2つに分離されている場合を示す。本実施形態では、データバス17がデータバス170と171から構成されており、データバス170に接続するデバイス及びデバイス相互の接続関係は、図1の場合と同じ(PM回路10を除く)である。また、データバス171には、PM回路10、CPU82、RAM83、I/O84が接続され、データバス170と171は、ブリッジ81にて接続されている。
PM回路10は、他の実施例と同様な方法でデータバス170のモニタを行うが、計測結果の出力を行うデータバスは、モニタの対象となっているデータバス170ではなく、モニタの対象となっていないデータバス171を経由して、I/O84より出力する。これにより、モニタ対象となっているデータバス170の実動作に、本モニタシステムが全く影響を与えることなく、データバス170のモニタを行うことが可能となる。
また、本実施形態では、データバスを介したデータ転送の最適化が必要なデータバスがデータバス170であることが特定されている場合であったため、特にデータバス171のモニタをしていなかったが、必要に応じてデータバス171のモニタを行ってもよい。
尚、図11の例では、既存のデータバスをモニタ結果の出力に利用しているため、別途そのためのデータバスを配線する必要はなかったが、モニタ結果の出力のためのデータバスを新しく配線してもよい。例えば、モニタ結果を専用のシリアルバスから出力することも考えられる。
また、前述した本発明に係るパフォーマンス・モニタ回路の実施形態は、それぞれの実施形態から適宜選択して、組み合わせてパフォーマンス・モニタ回路を実施することが可能である。
また、本発明の実施の形態の説明において、モニタを行う事象をデータ転送の回数として説明してきたが、モニタの対象である事象は、これ以外のものでもよい。例えば、本発明のパフォーマンス・モニタ回路は、CPU12内のキャッシュのサイズの最適化を検討する際のデータ収集にも利用できる。
CPU12内の実行部は、演算を行うために必要な命令やデータを、CPU12内のキャッシュに対して要求する。実行部からの要求を受け取ったキャッシュは、キャッシュ内に要求された命令やデータがあるか否かの判断をする。要求された命令やデータが存在する場合には、当該命令やデータを実行部に出力するが、要求された命令やデータが存在しない場合には、ウェイト信号を実行部に出力し、外部より当該命令やデータを取得するためにデータバス17の使用権をBAU11に要求する。この際、キャッシュに目的の命令やデータが存在する場合にはヒットであるとし、キャッシュに目的の命令やデータが存在しない場合にはミスヒットであるとする。通常、このヒットする率(ヒット率)は、98%以上であることが必要である。
パフォーマンス・モニタ回路10は、CPU12内のキャッシュより出力されるヒット及びミスヒットを示す信号を検出回路300〜301にて検出し、その回数を32bitカウンタ回路320〜321にて計測する。計測結果は記憶領域36に記憶された後、データバス17を介して出力される。これにより、ヒット率を算出することができ、キャッシュの最適化が必要であるか否かの判断をすることができる。
本発明のパフォーマンス・モニタ回路がデータバスのデータ転送回数をモニタする際のパフォーマンスのモニタシステムの一実施形態を示したブロック図である。 (a)はデータバスの使用権を1度も拒否されずに与えられた場合、(b)はデータバスの使用権を少なくとも1度は拒否された場合の図1におけるCPUとRAM間のデータ転送に係る動作と出力信号を説明した図である。 本発明のパフォーマンス・モニタ回路の一実施形態を示したブロック図である。 図3における動作のフローを示した図である。 累算器を用いた本発明のパフォーマンス・モニタ回路の一実施形態を示したブロック図である。 出力データ調整回路を追加した本発明のパフォーマンス・モニタ回路の一実施形態を示したブロック図である。 32bitで計測結果を記憶領域に記憶する本発明のパフォーマンス・モニタ回路の一実施形態を示したブロック図である。 データバスのアイドル状態を検出しその間にモニタ結果を出力する本発明のパフォーマンス・モニタ回路を含んだパフォーマンスのモニタシステムの一実施形態を示したブロック図である。 (a)はモニタをしなかった場合、(b)は従来のモニタを行った場合、(c)本発明のモニタを行った場合のCPU、DMAC、アイドル状態(IDLE)のデータバスの使用割合を示した円グラフである。 (a)はモニタがない場合、(b)は従来のモニタを行った場合、(c)〜(e)は本発明のモニタを行った場合のCPUとRAM間でのデータ転送が行われた場合におけるデータバスのタイミングチャートである。 複数のデータバスが存在する場合の発明のパフォーマンス・モニタ回路を含んだパフォーマンスのモニタシステムの一実施形態を示したブロック図である。 従来のパフォーマンス・モニタシステムを示したブロック図である。
符号の説明
10 パフォーマンス・モニタ回路(PM回路)
11 バス・アービトレーション・ユニット(BAU)
110 CPUグラント信号
111 DMACグラント信号
12、82 中央演算装置(CPU)
120 CPUリクエスト信号
121 CPUデバイス選択信号
13 ダイレクト・メモリ・アクセス・コントローラ(DMAC)
130 DMACリクエスト信号
131 DMACデバイス選択信号
14、83 ランダム・アクセス・メモリ(RAM)
15 ロード・オンリ・メモリ(ROM)
16、84 入出力(I/O)
17、170、171 データバス
300〜305 検出回路
310〜315 検出信号
320〜325 32bitカウンタ回路
330〜335 オーバーフロー信号
340〜345 カウントデータ信号
35 書き込み制御回路
350 書き込み許可信号
36 記憶領域
37 出力データ制御回路
370 出力データ制御信号
500〜505 累算器
510〜515 レジスタ
60 出力データ調整回路
80 データバスアイドル信号
81 ブリッジ
90 従来のパフォーマンス・モニタ装置
91 検出部
92 制御部
93 カウンタ部
94 メモリ

Claims (9)

  1. 一のデバイスが第1のビット幅のデータバスを使用する一の事象が発生する場合に、前記一のデバイスが出力する信号を検出する検出回路と、
    前記検出回路が前記信号を検出する回数を前記第1のビット幅より大きい第2のビット幅を用いて表すことができるカウント値まで数えると共に、前記回数が前記カウント値を超える場合には、前記カウント値を示す前記第2のビット幅のビットの内最上位ビットから数えて前記第1のビット幅を有する上位ビットが示す値または前記最上位ビットから数えて前記第1のビット幅より長いビット幅を有する上位ビットが示す値を出力値として出力し、前記出力値を出力した後は前記カウント値をクリアして前記回数を数える計測回路と、
    前記計測回路が出力する前記出力値を記憶すると共に、前記出力値をさらに記憶できる容量がない場合に、記憶した前記出力値を出力する記憶回路と、
    前記記憶回路が出力する前記出力値のそれぞれを加算して前記第1のビット幅より大きい第3のビット幅の加算結果とし、前記加算結果を示す前記第3のビット幅のビットの内、最上位ビットから数えて前記第1のビット幅までのビットは前記データバスに出力する一方、前記加算結果を示す残りのビットは前記データバスには出力しない出力データ調整回路と、
    を有することを特徴とするパフォーマンス・モニタ回路。
  2. 前記計測回路が出力する前記出力値を前記記憶回路が記憶した回数に基づいて、前記記憶回路が前記出力値を出力するか否かを制御する出力データ制御回路をさらに有することを特徴とする請求項1に記載のパフォーマンス・モニタ回路。
  3. 前記計測回路は、前記最上位ビットから数えて前記第1のビット幅より長いビット幅を有する上位ビットが示す前記値として、前記カウント値を示す前記第2ビット幅のビット示す値を前記出力値として出力することを特徴とする請求項1に記載のパフォーマンス・モニタ回路。
  4. 前記記憶回路は、前記データバスが前記データバスを使用可能ないずれのデバイスによっても使用されていないアイドル状態である場合には、前記出力値をさらに記憶できる容量がある場合であっても前記出力値を出力することを特徴とする請求項1に記載のパフォーマンス・モニタ回路。
  5. 前記一の事象は、前記一のデバイスが前記データバスを介して他のデバイスに所定のデータを転送する事象であることを特徴とする請求項1に記載のパフォーマンス・モニタ回路。
  6. 前記一の事象は、前記一のデバイスが含むキャッシュメモリについてのキャッシュヒット及びミスヒットを示す信号を、前記一のデバイスが出力する事象であることを特徴とする請求項1に記載のパフォーマンス・モニタ回路。
  7. 前記計測回路は累算器であることを特徴とする請求項1に記載のパフォーマンス・モニタ回路。
  8. 一のデバイスが第1のビット幅のデータバスを使用する一の事象が発生する場合に、前記一のデバイスが出力する信号を検出するステップと、
    前記信号を検出する回数を前記第1のビット幅より大きい第2のビット幅を用いて表すことができるカウント値まで数え、前記回数が前記カウント値を超える場合には、前記カウント値を示す前記第2のビット幅のビットの内最上位ビットから数えて前記第1のビット幅を有する上位ビットまたは前記最上位ビットから数えて前記第1のビット幅より長いビット幅を有する上位ビットを選択して出力し、前記出力を行った後は前記カウント値をクリアして前記回数を数えるステップと、
    前記出力された前記上位ビットのそれぞれを加算して前記第1のビット幅より大きい第3のビット幅の加算結果とし、前記加算結果を示す前記第3のビット幅のビットの内、最上位ビットから数えて前記第1のビット幅までのビットは前記データバスに出力する一方、前記加算結果を示す残りのビットは前記データバスには出力しないステップと、
    を有することを特徴とするパフォーマンス・モニタ方法。
  9. 選択された前記ビットを記憶する記憶回路が選択された前記ビットをさらに記憶できる容量がない場合に、選択された前記ビットに対して前記加算を行って前記加算結果とすることを特徴とする請求項に記載のパフォーマンス・モニタ方法。
JP2004156004A 2004-05-26 2004-05-26 パフォーマンス・モニタ回路 Expired - Fee Related JP4504737B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004156004A JP4504737B2 (ja) 2004-05-26 2004-05-26 パフォーマンス・モニタ回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004156004A JP4504737B2 (ja) 2004-05-26 2004-05-26 パフォーマンス・モニタ回路

Publications (2)

Publication Number Publication Date
JP2005339107A JP2005339107A (ja) 2005-12-08
JP4504737B2 true JP4504737B2 (ja) 2010-07-14

Family

ID=35492623

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004156004A Expired - Fee Related JP4504737B2 (ja) 2004-05-26 2004-05-26 パフォーマンス・モニタ回路

Country Status (1)

Country Link
JP (1) JP4504737B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006109728A1 (ja) * 2005-04-11 2006-10-19 Matsushita Electric Industrial Co., Ltd. システム性能プロファイリング装置
JP5326708B2 (ja) 2009-03-18 2013-10-30 富士通株式会社 演算処理装置および演算処理装置の制御方法
JP6064756B2 (ja) * 2013-04-10 2017-01-25 富士通株式会社 性能データ収集プログラム、装置、及び方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61292766A (ja) * 1985-06-20 1986-12-23 Nec Corp デ−タ入力方式
JPH0346040A (ja) * 1989-07-14 1991-02-27 Hitachi Ltd ハードウエアモニタ
JPH03235138A (ja) * 1990-02-13 1991-10-21 Agency Of Ind Science & Technol メモリアクセス回数測定装置
JPH0773162A (ja) * 1993-09-02 1995-03-17 Nec Corp 情報処理装置の性能モニタ
JP2000132430A (ja) * 1998-10-20 2000-05-12 Matsushita Electric Ind Co Ltd 信号処理装置
JP2002342125A (ja) * 2001-05-18 2002-11-29 Fujitsu Ltd イベント計測装置および方法並びにイベント計測プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体並びにプロセッサシステム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6442747A (en) * 1987-08-11 1989-02-15 Hitachi Ltd Hardware monitoring device

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61292766A (ja) * 1985-06-20 1986-12-23 Nec Corp デ−タ入力方式
JPH0346040A (ja) * 1989-07-14 1991-02-27 Hitachi Ltd ハードウエアモニタ
JPH03235138A (ja) * 1990-02-13 1991-10-21 Agency Of Ind Science & Technol メモリアクセス回数測定装置
JPH0773162A (ja) * 1993-09-02 1995-03-17 Nec Corp 情報処理装置の性能モニタ
JP2000132430A (ja) * 1998-10-20 2000-05-12 Matsushita Electric Ind Co Ltd 信号処理装置
JP2002342125A (ja) * 2001-05-18 2002-11-29 Fujitsu Ltd イベント計測装置および方法並びにイベント計測プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体並びにプロセッサシステム

Also Published As

Publication number Publication date
JP2005339107A (ja) 2005-12-08

Similar Documents

Publication Publication Date Title
EP1899826B1 (en) Device and method for controlling an execution of a dma task
US20120042105A1 (en) Bus arbitration apparatus
US6715011B1 (en) PCI/PCI-X bus bridge with performance monitor
EP1899825B1 (en) Device and method for controlling multiple dma tasks
US6735653B2 (en) Bus bandwidth consumption profiler
US20160062930A1 (en) Bus master, bus system, and bus control method
US20080270658A1 (en) Processor system, bus controlling method, and semiconductor device
US7013357B2 (en) Arbiter having programmable arbitration points for undefined length burst accesses and method
CN111095220B (zh) 在服务于存储事务时的服务质量控制方法和系统
WO2007099613A1 (ja) コマンド選択方法、装置、コマンド投入方法、及び装置
US7490219B2 (en) Counter counts valid requests based on a judgment in a system having a plurality of pipeline processors
US6122693A (en) PCI bus utilization diagnostic monitor
EP1899827B1 (en) Device and method for executing a dma task
JP2019525619A5 (ja)
CN113590512A (zh) 可直连外设设备的自启动dma装置及应用
JP4846482B2 (ja) バスアービトレーション装置
JP4504737B2 (ja) パフォーマンス・モニタ回路
JP2009251713A (ja) キャッシュメモリ制御装置
JP3317873B2 (ja) データ転送制御装置
JP4425598B2 (ja) 仲裁パラメータ発生回路、バス利用パラメータ発生回路、システムオンチップ、仲裁パラメータ発生方法、およびバス利用パラメータ発生方法
JP6981057B2 (ja) データ転送装置及びデータ転送方法
US8214557B2 (en) Measuring direct memory access throughput
JPH0696014A (ja) バス使用優先順位制御装置
US8738881B2 (en) Performance optimization system, method and program
JP4549458B2 (ja) Dma転送装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070214

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20070704

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090302

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091201

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100223

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100312

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: 20100330

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100423

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130430

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees