(57)【要約】【課題】複数のバスマスタと、バスの占有権をマスタに許可するためのバスアービタとを有するコンピュータシステムにおいてバスサイクルの使用状況を測定して報告するための、バス帯域幅消費量プロファイラを提供すること。【解決手段】複数のバスマスタ（１４Ａ〜１４Ｚ）を有するシステムにおけるバスサイクルの使用状況を測定して報告するためのバス帯域幅消費量プロファイラ（５０Ａ−５０Ｄ）であって、バス（１２）が占有されるサイクルをカウントするための、マスタ（１４Ａ〜１４Ｚ）と対にされたマスタカウンタ（９４Ａ〜９４Ｚ，１９４Ａ〜１９４Ｚ）と、リアルタイムカウンタ（９６，１９６，２９６，３９６）のロールオーバーまたはシステム（１０）の読み取り信号のいずれかによって生成されるプロファイルイベントの間の経過したサイクルをカウントするためのリアルタイムカウンタ（９６，１９６，２９６，３９６）とを含む、バス帯域幅消費量プロファイラ（５０Ａ−５０Ｄ）。プロファイルイベント時、マスタカウンタ（９４Ａ〜９４Ｚ，１９４Ａ〜１９４Ｚ）のカウントがシステム（１０）に同時に出力され、リアルタイムカウントが求められる。これに代えて、プロファイラは、すべてのマスタ（１４Ａ〜１４Ｚ）によって占有された合計のバスサイクルをカウントするためのトータルカウンタ（３１８，４１８）と、マスタ（１４Ａ〜１４Ｚ）より少ない数のマスタカウンタ（２９４Ａ〜２９４Ｎ，３９４Ａ〜３９４Ｎ）であって、選択されたマスタ（１４Ａ〜１４Ｚ）をカウントするようにそれぞれが機器構成可能であるマスタカウンタとを含む。プロファイルイベント時、マスタカウンタ（２９４Ａ〜２９４Ｎ，３９４Ａ〜３９４Ｎ）と、トータルカウンタ（３１８，４１８）と、リアルタイムカウンタ（２９６，３９６）のカウントは、システム（１０）に同時に出力される。従って、選択されたマスタ（１４Ａ〜１４Ｚ）と、選択されないマスタ（１４Ａ〜１４Ｚ）の合計の帯域幅消費量を、より少ない数のカウンタ（２９４Ａ〜２９４Ｎ，３９４Ａ〜３９４Ｎ，３１８，４１８）を使用して計算できる。
2004519769.tif 000002
【特許請求の範囲】
【請求項１】
バスに接続されている複数のマスタと、前記バスを占有するように選択されたマスタに許可信号を出力するための、前記マスタに結合されているバスアービタと、前記バスアービタと前記複数のマスタに結合されている複数のマスタカウンタであって、それぞれが、その対応するマスタによって占有されたバスサイクルをカウントすることによって、前記対応するマスタに出力される許可信号に応答するマスタカウンタと、プロファイルイベントの間のバスサイクルをカウントするためのリアルタイムカウンタと、を有するコンピュータシステム用のバス帯域幅消費量プロファイラにおいて、
前記リアルタイムカウンタが、前のプロファイルイベント以降にカウントされたバスサイクルの総数を前記システムに供給することと、前記カウントされたバスサイクルの総数を０にリセットすることとによって、プロファイルイベントに応答し、かつ、各マスタカウンタが、前記前のプロファイルイベント以降にその対応するマスタによって占有された前記バスサイクルの数を前記システムへの出力を目的として格納することと、前記占有されたバスサイクルの数を０にリセットすることとによって、前記プロファイルイベントに応答する、
ことを特徴とするバス帯域幅消費量プロファイラ。
【請求項２】
前記プロファイルイベントが、前記リアルタイムカウンタによって生成される割り込み信号であることをさらに特徴とする、請求項１のプロファイラ。
【請求項３】
前記プロファイルイベントが、前記システムによって生成される読み取り信号の受信であることをさらに特徴とする、請求項１のプロファイラ。
【請求項４】
請求項１〜３のいずれかのプロファイラにおいて、前記マスタカウンタと前記リアルタイムカウンタに結合されているモード選択回路であって、前記モード選択回路が、前記プロファイルイベントを前記リアルタイムカウンタによって生成される割り込み信号として定義することによる第一状態を有するモード信号と、前記プロファイルイベントを前記システムによって生成される読み取り信号として定義することによる第二状態を有するモード信号とに応答する、モード選択回路、をさらに特徴とするプロファイラ。
【請求項５】
前記モード選択回路が、
前記割り込み信号を受信するための第一入力と、前記モード信号を受信するための第二入力と、出力とを有する第一ＡＮＤゲートと、
前記読み取り信号を受信するための第一入力と、第二入力と、出力とを有する第二ＡＮＤゲートと、
前記モード信号を受信するための入力と、前記第二ＡＮＤゲートの第二入力に接続されている出力とを有するインバータと、
前記第一ＡＮＤゲートの出力に接続されている第一入力と、前記第二ＡＮＤゲートの出力に接続されている第二入力と、前記マスタカウンタおよび前記リアルタイムカウンタに結合されている出力とを有するＯＲゲートと、
を含むことをさらに特徴とする、請求項４のプロファイラ。
【請求項６】
各マスタカウンタが、前記対応するマスタによって占有された各バスサイクル後にインクリメントされ、かつプロファイルイベントに応答して０にリセットされるカウンタレジスタと、プロファイルイベントに応答して前記占有されたバスサイクルの数を格納するためのシャドウレジスタとを有することをさらに特徴とする、請求項１〜５のいずれかのプロファイラ。
【請求項７】
バスに接続されている複数のマスタと、前記バスの占有権を前記マスタに許可するための、前記マスタに結合されているバスアービタと、前記バスアービタに結合されている複数のマスタカウンタと、プロファイルイベントの間のバスサイクルをカウントするためのリアルタイムカウンタとを有する、コンピュータシステム用のバス帯域幅消費量プロファイラにおいて、
前記複数のマスタカウンタが、前記複数のマスタの数より少なく、前記マスタカウンタそれぞれが前記複数のマスタのいずれか１つによって占有されたバスサイクルをカウントするように機器構成可能であり、前記リアルタイムカウンタが、前のプロファイルイベント以降にカウントされた経過したバスサイクルの数を前記システムに供給することと、カウントされた経過したバスサイクルの前記数を０にリセットすることとによって、プロファイルイベントに応答し、各マスタカウンタが、前記マスタカウンタが機器構成されている前記マスタによって、前記前のプロファイルイベント以降に占有された前記バスサイクルの数を、前記システムへの出力を目的として格納することと、前記占有されたバスサイクルの数を０にリセットすることとによって、前記プロファイルイベントに応答する、
ことを特徴とするバス帯域幅消費量プロファイラ。
【請求項８】
前記プロファイルイベントが、前記リアルタイムカウンタによって生成される割り込み信号であることをさらに特徴とする、請求項７のプロファイラ。
【請求項９】
前記プロファイルイベントが、前記システムによって生成される読み取り信号の受信であることをさらに特徴とする、請求項７のプロファイラ。
【請求項１０】
前記マスタカウンタと前記リアルタイムカウンタに結合されているモード選択回路であって、前記モード選択回路が、前記プロファイルイベントを前記リアルタイムカウンタによって生成される割り込み信号として定義することによる第一状態を有するモード信号と、前記プロファイルイベントを前記システムによって生成される読み取り信号として定義することによる第二状態を有するモード信号とに応答するモード選択回路を、さらに特徴とする請求項７〜９のいずれかのプロファイラ。
【請求項１１】
前記モード選択回路が、
前記割り込み信号を受信するための第一入力と、前記モード信号を受信するための第二入力と、出力とを有する第一ＡＮＤゲートと、
前記読み取り信号を受信するための第一入力と、第二入力と、出力とを有する第二ＡＮＤゲートと、
前記モード信号を受信するための入力と、前記第二ＡＮＤゲートの第二入力に接続されている出力とを有するインバータと、
前記第一ＡＮＤゲートの出力に接続されている第一入力と、前記第二ＡＮＤゲートの出力に接続されている第二入力と、前記マスタカウンタおよび前記リアルタイムカウンタに結合されている出力とを有するＯＲゲートと、
を含むことをさらに特徴とする、請求項１０のプロファイラ。
【請求項１２】
前記複数のマスタによって占有されたバスサイクルの合計の数をカウントするための、前記バスアービタに結合されているトータルカウンタであって、前記トータルカウンタが、前記占有されたバスサイクルの合計の数を前記システムへの出力を目的として格納することによって前記プロファイルイベントに応答し、これによって、マスタカウンタが機器構成されていない前記マスタの、プロファイルイベントの間の合計の帯域幅消費量を計算できるようにする、トータルカウンタをさらに特徴とする請求項７〜１１のいずれかのプロファイラ。
【請求項１３】
前記複数のマスタカウンタに個別に結合されている複数の選択レジスタであって、各選択レジスタが、前記複数のマスタの選択された１つによって占有されたバスサイクルをカウントするように、対応するマスタカウンタを機器構成することによって、制御信号に応答する、複数の選択レジスタをさらに特徴とする請求項７〜１１のいずれかのプロファイラ。
【請求項１４】
バスに接続されている複数のマスタのバス使用状況と、バスアービタによって許可される前記バスの占有権とに応答して、ＣＰＵベースのシステムにおけるバスの動作周波数の動的な調整を可能にするための、バス帯域幅消費量プロファイラであって、プロファイルイベントの間のバスサイクルをカウントするためのリアルタイムカウンタと、前記複数のマスタによって占有されたバスサイクルをカウントするための、前記バスアービタに結合されている複数のマスタカウンタと、出力段とを有するバス帯域幅消費量プロファイラにおいて、
前記リアルタイムカウンタが、前のプロファイルイベント以降にカウントされた前記バスサイクルの総数を格納することと、前記カウントされたバスサイクルの総数を０にリセットすることとによって、プロファイルイベントに応答し、各マスタカウンタが、前記マスタカウンタに対応する前記マスタによって前のプロファイルイベント以降に占有された前記バスサイクルの数を格納することと、前記占有されたバスサイクルの数を０にリセットすることとによって、プロファイルイベントに応答し、かつ、前記前のプロファイルイベント以降の前記マスタの前記バス帯域幅消費量を求め、これによって消費量が低い期間中に前記動作周波数を下げるためと、消費量が高い期間中に前記動作周波数を高めるために、前記出力段が、前記格納されたバスサイクルの総数と前記格納された占有されたバスサイクルの数とを、それぞれ前記リアルタイムカウンタと前記複数のマスタカウンタから受信し、前記格納されたバスサイクルの総数と前記格納された占有されたバスサイクルの数とを前記ＣＰＵに出力する、
ことを特徴とする、バス帯域幅消費量プロファイラ。
【請求項１５】
前記プロファイルイベントが、前記リアルタイムカウンタによって生成される割り込み信号であることをさらに特徴とする、請求項１４のプロファイラ。
【請求項１６】
前記プロファイルイベントが、前記ＣＰＵによって生成される読み取り信号の受信であることをさらに特徴とする、請求項１４のプロファイラ。
【請求項１７】
前記マスタカウンタと前記リアルタイムカウンタに結合されているモード選択回路であって、前記モード選択回路が、前記プロファイルイベントを前記リアルタイムカウンタによって生成される割り込み信号として定義することによる第一状態を有するモード信号と、前記プロファイルイベントを前記ＣＰＵによって生成される読み取り信号として定義することによる第二状態を有するモード信号とに応答するモード選択回路、をさらに特徴とする請求項１４〜１６のいずれかのプロファイラ。
【請求項１８】
前記複数のマスタカウンタが、前記複数のマスタの数より少なく、各マスタカウンタが、前記複数のマスタのいずれかの１つによって占有されたバスサイクルをカウントするように機器構成可能であることをさらに特徴とする、請求項１４〜１７のいずれかのプロファイラ。
【請求項１９】
前記複数のマスタによって占有された前記バスサイクルの合計の数をカウントするための、前記バスアービタに結合されているトータルカウンタであって、前記トータルカウンタが、前記占有されたバスサイクルの合計の数を前記出力段への出力を目的として格納することによって、前記プロファイルイベントに応答し、これによって、前記ＣＰＵが、マスタカウンタが機器構成されていない前記マスタの、プロファイルイベントの間の前記合計の帯域幅消費量を計算できるようにする、トータルカウンタ、をさらに特徴とする請求項１４〜１８のいずれかのプロファイラ。
【請求項２０】
バスに接続されている複数のマスタと、前記バスの占有権を前記マスタに許可するための、前記マスタに結合されているバスアービタとを有するコンピュータシステムの最小動作周波数を求めるための方法において、
前記複数のマスタのうちの少なくともいくつかのマスタについて、第一および第二プロファイルイベントの間に各マスタによって占有された前記バスサイクルの数をカウントするステップと、前記プロファイルイベントの間に発生する前記バスサイクルの総数をカウントするステップと、前記第二プロファイルイベントの発生時に、前記占有されたバスサイクルの数と前記バスサイクルの総数とを同時に読み取るステップと、少なくともいくつかのマスタについて、バス帯域幅使用状況を計算し、前記バス帯域幅使用状況を使用して、前記バスの前記最小の動作周波数を求めるステップと、
を特徴とする方法。
【請求項２１】
バスと、前記バスに接続されている複数のマスタと、前記バスの占有権を前記複数のマスタに許可するためのバスアービタとを含むコンピュータシステムにおいて、
前記複数のマスタの前記バス使用状況に応答して前記バスの前記動作周波数の動的な調整を可能にするための、バス帯域幅消費量プロファイラを有し、前記プロファイラが、
プロファイルイベントの間のバスサイクルをカウントするためのリアルタイムカウンタであって、前記リアルタイムカウンタが、前記前のプロファイルイベント以降にカウントされた前記バスサイクルの総数を格納することと、前記カウントされたバスサイクルの総数を０にリセットすることとによって、プロファイルイベントに応答する、リアルタイムカウンタと、
前記複数のマスタによって占有されたバスサイクルをカウントするための、前記バスアービタに結合されている複数のマスタカウンタであって、各マスタカウンタが、前記マスタカウンタに対応する前記マスタによって前のプロファイルイベント以降に占有された前記バスサイクルの数を格納することと、前記占有されたバスサイクルの数を０にリセットすることとによって、プロファイルイベントに応答する、複数のマスタカウンタと、
出力段であって、前記システムが、前記前のプロファイルイベント以降の前記マスタの前記バス帯域幅消費量を求め、これによって消費量が低い期間中に前記動作周波数を下げ、消費量が高い期間中に前記動作周波数を高めることができるように、前記格納されたバスサイクルの総数と前記格納された占有されたバスサイクルの数とを、それぞれ前記リアルタイムカウンタと前記複数のマスタカウンタから受信し、前記格納されたバスサイクルの総数と前記格納された占有されたバスサイクルの数とを前記システムに出力するための出力段と、
を有することを特徴とする、コンピュータシステム。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明は、一般に、ＣＰＵベースのシステムにおいてバスマスタの帯域幅消費量を測定するためのデバイスに関し、より具体的には、バス帯域幅消費量の計算を可能にするために、ある時間間隔の間にバスマスタによって占有されたバスサイクルをカウントし、同時に、占有されたバスサイクルの数をシステムへの出力を目的として格納する、バス帯域幅消費量プロファイラに関する。
【０００２】
【従来の技術】
さまざまなＣＰＵベースのシステムにおいて、マイクロプロセッサは、通信バスを介してメモリデバイスと通信する。マイクロプロセッサと他のバスマスタ（システムのＵＡＲＴ、イーサネットコントローラなど）は、メモリデバイス（バススレーブ）への格納を目的としてデータをバス上に供給することによってデータ生成器として、または、バススレーブによってバス上に供給されたデータを取り除くことによってデータ消費器として機能する。いずれの場合にも、バスマスタによるバスへのアクセスは、代表的には、短絡またはシステム構成要素の損傷を回避するために、常に１つのバスマスタのみがバスを駆動するようさせるバスアービタによって制御される。
【０００３】
より具体的には、バスマスタは、バスアービタとのデータトランザクションを設定し、そのトランザクションを実行し、その終結をアクノリッジすることによって、バスを介して通信する。ある時間間隔中にバスマスタがバスの占有権を持つ時間長（またはクロックサイクル数）は、そのバスマスタのバス帯域幅消費量に比例する。２つのバスマスタが同時にバスを占有することを防ぐため、データトランザクションとデータトランザクションの間に不動作時間が設けられる。従って、代表的には、各データトランザクションごとに少なくとも１つの不動作サイクルが必要である。この技術分野において周知であるように、単位時間あたりに伝送されるデータの観点によるバスの効率は、各不動作サイクルによって減少する。さまざまなバスマスタがさまざまなデータ速度でデータを伝送するように設計されているため、バスマスタのシステムには理論上の最大効率が存在する。バスのクロック速度（または周波数）が、システムの最大効率に対応する速度よりも速い場合には、電力消費量を抑えるためにクロック速度を下げる必要がある。従って、バスマスタの帯域幅消費量を正確に測定できるほど、同じスループットを維持しながらシステムのクロック速度を下げることができる。
【０００４】
従来のシステムは、バス帯域幅消費量を測定するためにハードワイヤード論理回路（ｈａｒｄ−ｗｉｒｅｄ ｌｏｇｉｃ ｃｉｒｃｕｉｔｓ）を採用している。この回路は、帯域幅消費量の動的な変化に応答してシステムのクロック速度を調整するためにシステムのフィードバックループに組み込まれることもある。しかしながら、このようなハードウェアベースのシステムは、さまざまな理由で望ましくない。帯域幅消費量フィードバックのないハードウェアシステムにおけるクロック周波数は、さまざまなバスマスタの帯域幅消費量の推定のみに基づく。この推定が過度に堅実である（すなわち必要なスループットに対応するために必要な周波数よりクロック周波数が高い）場合、過度の電力を消費するため、チップ全体の設計が望ましくないものになる。帯域幅消費量フィードバックとクロック速度調整が組み込まれているハードウェアシステムであっても、クロック速度を調整するのに使用される回路がハードワイヤード式であり、異なるアプリケーションに対して適合化できないため、不完全である。
【０００５】
【課題を解決するための手段】
本発明は、複数のバスマスタと、バスの占有権をマスタに許可するためのバスアービタとを有するコンピュータシステムにおいてバスサイクルの使用状況を測定して報告するための、バス帯域幅消費量プロファイラを提供する。一実施例においては、プロファイラは、複数のマスタカウンタと１つのリアルタイムカウンタとを含む。マスタカウンタは、対応するバスマスタによって占有されるバスサイクルをカウントするために、個々にバスマスタと対にされる。リアルタイムカウンタは、プロファイルイベントで終了する時間間隔中に発生するすべてのバスサイクルをカウントする。プロファイラのアーキテクチャに応じて、リアルタイムカウンタがその最大カウント値に達したとき（ロールオーバー）、またはコンピュータシステムが読み取り信号をプロファイラに供給するときに、プロファイルイベントが発生する。いずれかのプロファイルイベントが発生すると、マスタカウンタの現在のサイクルカウントがシステムへの出力を目的として同時に格納される。リアルタイムカウンタのカウントは、プロファイルイベントがリアルタイムカウンタのロールオーバーであるときに認識されるか、またはマスタカウンタのサイクルカウントが格納されるときに格納される。システム設計者は、バス使用状況のこれらのスナップショット（ｓｎａｐｓｈｏｔ）にアクセスすることにより、バスマスタのバス帯域幅消費量を調べ、システムのクロック周波数を必要なシステムスループットに適合させ、これによってシステムの電力消費量を最小にできる。また、プロファイラをシステムのフィードバックループで使用することによって、システムのＣＰＵに格納されるアルゴリズムに従ってシステムのクロック周波数を動的に調整できるようにすることもできる。
【０００６】
別の実施例においては、プロファイラは、システム内のバスマスタの数より少ないマスタカウンタを使用する。各マスタカウンタは、選択されたマスタによって占有されるバスサイクルをカウントするように機器を構成することが可能である。また、すべてのバスマスタによって占有される合計のバスサイクルをカウントするために、トータルカウンタを設けることもできる。プロファイルイベントの発生時、マスタカウンタと、トータルカウンタと、リアルタイムカウンタのカウントデータが同時に求められる。従って、選択されたマスタのバス帯域幅消費量と、選択されていないマスタの合計のバス帯域幅消費量とを、少ない数のカウンタを使用して計算できる。この実施例も、同様に、設計ツールとして、または、クロック周波数訂正フィードバックループにおける帯域幅消費量の監視デバイスとして使用できる。
【０００７】
以下の説明と添付の図面とを検討することによって、上記および他の特徴がさらに明らかになり、本発明がさらに理解されるであろう。
【０００８】
【発明を実施するための形態】
本明細書において説明されている本発明の実施例は、完全な実施例を示すものではなく、開示されている正確な形式に本発明を限定するものでもない。説明のために選択されている実施例は、当業者が本発明を実施することを可能にすることを目的としている。
【０００９】
図１に示されるように、従来のバスシステム１０は、バス１２と、複数のバスマスタ１４Ａ〜１４Ｚ（２つが示されている）と、複数のバススレーブ１６Ａ〜１６Ｚ（２つが示されている）と、バスアービタ１８とを含む。バス１２は、マスタ１４Ａ〜１４Ｚとスレーブ１６Ａ〜１６Ｚの間に接続されている共通データライン２０および共通制御ライン２２と、マスタ１４Ａ〜１４Ｚ、スレーブ１６Ａ〜１６Ｚ、およびアービタ１８の間に接続されている共通アクノリッジライン２４とを含む。マスタ１４Ａ〜１４Ｚは、それぞれ、要求ライン２６Ａ〜２６Ｚと許可ライン２８Ａ〜２８Ｚによってアービタ１８に接続されている。
【００１０】
図２は、バスシステム１０においてマスタ１４Ａによって実行される代表的なデータトランザクションを図示する。図に示されているように、バスクロック信号３０は、連続的に流れ、データトランザクションを実行できるタイミングを決める。データトランザクションは、マスタ１４Ａがアービタ１８に要求信号３２を要求ライン２６Ａ上に出力することによって、バス１２へのアクセスまたはバス１２の占有権を要求するときに開始される。この例において、アービタ１８は、マスタ１４Ａ〜１４Ｚからの要求信号の優先順位を評価した時点で、許可信号３４を許可ライン２８Ａ上に出力することによって、バスクロックサイクル３５においてバス１２の占有権をマスタ１４Ａに許可する。クロックサイクル３６の間、マスタ１４Ａは、スレーブ１６Ａ〜１６Ｚのアドレスを表す信号３８と、アドレッシングされた場所からデータを読み取る、またはアドレッシングされた場所にデータを書き込むためのコマンドとを出力する。クロックサイクル４０と４２の間、マスタ１４Ａは、アドレッシングされたスレーブからデータ４４、４６を読み取るか、またはアドレッシングされたスレーブにデータを書き込む。最後に、クロックサイクル４８の間、アドレッシングされたスレーブは、データトランザクションが完了したことを示すアクノリッジ信号５０を、マスタ１４Ａとアービタ１８にアクノリッジライン２４上に出力する。マスタ１４Ａは、バス１２の占有権を放棄するか、または、さらにデータトランザクションを実行するために占有権を維持できる。示されている例においては、マスタ１４Ａは、バス１２の占有権を放棄する。クロックサイクル３５と４９は、データ交換が行われていない不動作時間を表す。
【００１１】
次に図３を参照すると、図３には、従来のバスシステム１０に接続された本発明によるバス帯域幅プロファイラ５０が示されている。図に示されているように、プロファイラ５０には、データライン２０と、制御ライン２２と、アクノリッジライン２４と、許可ライン２８Ａ〜２８Ｚとが接続されている。プロファイラ５０が、プロファイラとして機能するか、または後述されるようにスレーブとして機能できることは、理解すべきである。
【００１２】
図４は、プロファイラ５０の基本的なカウント機能の例を示す。この例においては、マスタ１４Ａとマスタ１４Ｚがバス１２の占有権を順に保持する。具体的には、マスタ１４Ａが、アービタ１８に要求信号５２を要求ライン２６Ａ上に出力した後、アービタ１８が許可信号５４を許可ライン２８Ａに出力する。また、プロファイラ５０も、ライン２８Ａ（図３）上の許可信号５４を受信する。プロファイラ５０は、マスタ１４Ａがバス１２の占有権を保持している間に経過するバスサイクル３０のカウントを、許可信号５４の立ち上がりにおいて開始する。図示されている例においては、プロファイラ５０のバスサイクルカウントの累積値は、最初は、行５６によって示されるようにマスタ１４Ａのバスの占有権に対応する０である。次いで、プロファイラ５０は、バスサイクル５８、６０、６２をカウントし、この結果として、マスタ１４Ａの占有されたバスサイクルのカウントは３になる。
【００１３】
図４に示されているように、アービタ１８がバス１２の占有権をマスタ１４Ａに許可する（サイクル５８））直前に、マスタ１４Ｚが、アービタ１８に要求信号６４を要求ライン２６Ｚ上に出力することによって、バス１２へのアクセスを要求していた。従って、マスタ１４Ａがバスサイクル６２の最後にバス１２の占有権を放棄すると、アービタ１８は、許可信号６６を許可ライン２８Ｚ上に出力することによって、バス１２の占有権をマスタ１４Ｚに許可する。プロファイラ５０も、バスサイクル６８の始めに許可信号６６を受信する。従って、図４の行９２によって示されているように、マスタ１４Ｚがバス１２の占有権を保持しているバスサイクル６８〜９０をカウントする。
【００１４】
後に詳細に説明されるように、プロファイラ５０は、システム設計者に表示するためのインタフェース、若しくはシステムのコントローラまたはＣＰＵに、バスサイクルのカウントデータを出力する。プロファイラ５０が、例えば、必要なバススループットに必要とされる最も遅いシステムクロック速度を選択するための設計ツールとして使用されるときには、バスサイクルのカウントデータは、従来の監視ハードウェアによりシステム設計者に出力される。設計者は、周知の原理に従って、システムにおけるマスタ１４Ａ〜１４Ｚのバス帯域幅消費量を正確に見積もることができる。従って、設計をチップレベルに実装する前に、許容される最も遅いクロック速度を計算することができる。この技術分野において周知であるように、クロック速度が小さくなると電力消費量は低減する。
【００１５】
プロファイラ５０がシステム１０内のフィードバックループの一部として使用されるときには、バスサイクルのカウントデータがシステムコントローラまたはＣＰＵに出力される。ＣＰＵは、バスサイクルのカウントデータを解釈してバス帯域幅消費量を求めるためのソフトウェアを含むことができる。次いで、ＣＰＵは、プログラム可能なアルゴリズムに基づいて、クロックディバイダ回路（ｃｌｏｃｋ ｄｉｖｉｄｅｒ ｃｉｒｃｕｉｔ）を使用し、システムのクロック速度を動的に調整して電力を節約する。システムまたは製品が異なると、ヒステリシスと構成要素のタイムラグが異なるため、異なるクロック速度調整アルゴリズムが必要となることがある。プロファイラ５０は、システムのクロック速度に所定の調整を行うように機器構成されたハードウェアではなくＣＰＵに情報を出力するので、このような異なるシステムにも、新しいアルゴリズムを使用してＣＰＵをプログラムすることのみによって、容易に対応できる。従って、従来のハードウェアベースのシステムと異なり、プロファイラ５０は柔軟性を提供する。
【００１６】
次に図５を参照すると、図５には、本発明によるプロファイラの一実施例の基本的なアーキテクチャが示されている。プロファイラ５０Ａは、一般に、複数のマスタカウンタ９４Ａ〜９４Ｚ（２つが示されている）と、リアルタイムカウンタ９６と、出力段９８とを含む。この実施例においては、各マスタ１４Ａ〜１４Ｚごとに１つのマスタカウンタ９４Ａ〜９４Ｚが設けられている点は、留意すべきである。マスタカウンタ９４Ａ〜９４Ｚの内部回路は、同じである。例えば、マスタカウンタ９４Ａは、カウンタレジスタ１００Ａとシャドウレジスタ（ｓｈａｄｏｗ ｒｅｇｉｓｔｅｒ） １０２Ａとを含む。リアルタイムカウンタ９６は、リアルタイムカウンタレジスタ１０４と出力ブロック１０６とを含む。
【００１７】
図に示されているように、カウンタレジスタ１００Ａ〜１００Ｚは、それぞれ、許可ライン２８Ａ〜２８Ｚに接続され、かつライン１０８Ａ〜１０８Ｚによってシャドウレジスタ１０２Ａ〜１０２Ｚに接続されている。リアルタイムカウンタレジスタ１０４は、ライン１１０によって出力ブロック１０６に接続されていて、ライン１１２上のイネーブル信号を受信する。カウンタレジスタ１００Ａ〜１００Ｚと、リアルタイムカウンタレジスタ１０４と、シャドウレジスタ１０２Ａ〜１０２Ｚと、出力ブロック１０６は、ロールオーバーライン１１４によって共に接続されている。シャドウレジスタ１０２Ａ〜１０２Ｚは、それぞれ、ライン１１６Ａ〜１１６Ｚによって出力段９８に接続されている。後からさらに説明されるように、出力段９８は、ライン１１８上のアドレス入力を受信し、ライン１２０上にデータを出力する。マスタカウンタ９４Ａ〜９４Ｚとリアルタイムカウンタ９６は、これらのカウンタがイネーブルされているときにバスクロック信号３０（図には示されていない）のサイクルをカウントできるように、バスクロック信号３０に結合されている点は、理解すべきである。
【００１８】
次に図３〜５を参照する。プロファイラ５０Ａは、プロファイルイベントの間にマスタ１４Ａ〜１４Ｚによって占有されたクロックサイクルをカウントして報告する。具体的には、アービタ１８が、許可ライン２８Ａ（図４）上に許可信号５４を出力することによって、バス１２の占有権をマスタ１４Ａに許可すると、マスタカウンタ９４Ａのカウンタレジスタ１００Ａが許可信号５４によってイネーブルされる。従って、カウンタレジスタ１００Ａは、許可ライン２８Ａ上に許可信号５４が存在している間に発生するバスクロック信号３０の各サイクル（すなわち、マスタ１４Ａによって占有されたバスサイクル）ごとにその内部のバスサイクルカウントを１カウントだけインクリメントする。他のマスタカウンタ９４Ｂ〜９４Ｚは、それぞれの対応するマスタ１４Ｂ〜１４Ｚにアービタ１８が許可信号を該当する許可ライン２８Ｂ〜２８Ｚ上に出力したときに同様にイネーブルされ、占有されたバスサイクルをカウントする。
【００１９】
これに対して、リアルタイムカウンタ９６は、フリーランニングカウンタであり、プロファイラ５０Ａがアクティブであるときには常にライン１１２を介してイネーブルされている。従って、リアルタイムカウンタレジスタ１０４は、どのマスタ１４Ａ〜１４Ｚがバス１２を占有しているかに関係なく、連続的にバスサイクルをカウントする。リアルタイムカウンタレジスタ１０４は、最終的に最大カウント値に達する。出力ブロック１０６は、リアルタイムカウンタレジスタ１０４の実際のカウントを監視し、レジスタ１０４がその最大カウントに達すると、ロールオーバー信号または割り込み信号をロールオーバーライン１１４上に出力する。これはプロファイルイベントである。
【００２０】
割り込み信号は、各シャドウレジスタ１０２Ａ〜１０２Ｚによって受信される。これによって、各マスタカウンタレジスタ１００Ａ〜１００Ｚの占有されたバスサイクルの現在のカウントが、それぞれのシャドウレジスタ１０２Ａ〜１０２Ｚに同時に移動される。また、割り込み信号は、マスタカウンタレジスタ１００Ａ〜１００Ｚとリアルタイムカウンタレジスタ１０４によっても受信され、これに起因して各レジスタが同時にゼロカウントにリセットされる。さらに、最後のプロファイルイベントから現在のプロファイルイベントまでの経過時間に対応するバスサイクルカウントデータが読み取り可能であることを示すための割り込み信号が、割り込みコントローラまたはシステムのＣＰＵなどの外部ハードウェア（図示されていない）までロールオーバーライン１１４上に供給される。
【００２１】
システムＣＰＵは、バスサイクルのカウントデータをシャドウレジスタ１０２Ａ〜１０２Ｚから出力段９８にライン１１６Ａ〜１１６Ｚを介して移動させるために、アドレスライン１１８を介して出力段９８をアドレッシングできる。次いで、要求されたデータは、この技術分野において周知である原理に従って、データライン１２０を介してＣＰＵに読み出すことができる。
【００２２】
上記の説明から明らかであるように、リアルタイムカウンタレジスタ１０４の最大カウント値が常に同じであるため、プロファイラ５０Ａのプロファイルイベントの間の時間は実質的に一定である。従って、プロファイラ５０Ａは、マスタ１４Ａ〜１４Ｚそれぞれに関する占有されたバスサイクルのカウントを、実質的に一定の周期で供給する。
【００２３】
さらに、バスサイクルのカウントデータは、順次得られるのではなく、マスタカウンタ９４Ａ〜９４Ｚから同時に移動される点は、理解されるべきである。リアルタイムシステムにおいて、逐次サンプリングは、データの「スナップショット」が供給されないため、結果的に不正確なデータとなる。代わりに、ＣＰＵはマスタ１４Ａを読み取り、次いでマスタ１４Ｂ、次いでマスタ１４Ｃを読み取る（以下、同様）ことができる。この場合、必要な最後のマスタからＣＰＵがデータを読み取るまでには、それ以前に読み取られたデータは古くなる。例えば、ＣＰＵがリアルタイムカウント１５においてマスタカウンタ９４Ａから５つの占有されたバスサイクルを読み取り、リアルタイムカウント２５においてマスタカウンタ９４Ｂから５つの占有されたバスサイクルを読み取り、リアルタイムカウント３５においてマスタカウンタ９４Ｃから５つの占有されたバスサイクルを読み取ると、リアルタイムカウント３５において、ＣＰＵは、占有されたバスサイクルの累積値が１５であると想定する（マスタ１４Ａ〜１４Ｃそれぞれの５サイクル）。しかしながら、明らかに、マスタ１４Ａは、リアルタイムカウント１６〜３５の間に追加のバスサイクルを占有した可能性があり、マスタ１４Ｂは、リアルタイムカウント２６〜３５の間に追加のバスサイクルを占有した可能性がある。従って、逐次サンプリングシステムにおいては、占有されたバスサイクルデータとバス帯域幅消費量測定値は、正確ではない。
【００２４】
これに対して、プロファイラ５０Ａは、プロファイルイベントにおいてマスタ１４Ａ〜１４Ｚすべての占有されたバスサイクルを同時に記録する。上述したように、リアルタイムカウンタ９６が割り込み信号を出力するとき、最後の割り込み信号以降に経過したバスサイクルのカウントは認識される。なぜならリアルタイムカウンタレジスタ１０４の最大カウントが認識されるためである。割り込み信号の受信時、すべてのマスタカウンタ９４Ａ〜９４Ｚは、占有されたバスサイクルデータをそれぞれの対応するシャドウレジスタ１０２Ａ〜１０２Ｚに同時に移動するため、割り込み信号の間に発生した各マスタ１４Ａ〜１４Ｚの占有されたバスサイクルの数が正確に取得される。
【００２５】
図６は、本発明によるプロファイラの別の実施例を示す。プロファイラ５０Ｂは、実質的にプロファイラ５０Ａに類似する。従って、本文書に説明されている残りの実施例の場合と同様に、類似する構成要素の参照番号には、１００ずつ加えた数字が使用されている。プロファイラ５０Ｂは、各マスタ１４Ａ〜１４Ｚに対する個別のマスタカウンタ１９４Ａ〜１９４Ｚ（２つが示されている）を含む。プロファイラ５０Ｂのリアルタイムカウンタ１９６は、プロファイラ５０Ａのリアルタイムカウンタ９６と異なり、シャドウレジスタ２０６を含み、割り込み信号を生成しない。代わりに、システムのＣＰＵまたは他のハードウェア（図示せず）が、プロファイルイベントを構成する読み取り信号をライン２１４上に供給する。読み取り信号に起因して、マスタカウンタ１９４Ａ〜１９４Ｚは、それぞれの占有されたバスサイクルデータを、それぞれシャドウレジスタ２０２Ａ〜２０２Ｚに同時に移動させる。リアルタイムカウンタ１９６は、同様に、経過したバスサイクルのカウントをシャドウレジスタ２０６に移動することによって、読み取り信号に応答する。さらに、ライン２１４上の読み取り信号が、マスタカウンタレジスタ２００Ａ〜２００Ｚとリアルタイムカウンタレジスタ２０４とによって受信される。これにより、各カウンタレジスタがゼロにリセットされる。バスサイクルのカウントデータは、ライン２１６Ａ〜２１６Ｚと２１７を介し、出力段１９８を経由して、インタフェースまたはシステムのＣＰＵに出力される。次いで、周知の原理に従って、バス帯域幅消費量の計算が実行される。
【００２６】
プロファイラ５０Ｂは、図５のプロファイラ５０Ａと異なり、システムの読み取り信号に応答するポーリングアーキテクチャを有する。しかしながら、前述したように、このような各読み取り信号は、その結果として、すべてのマスタカウンタ１９４Ａ〜１９４Ｚとリアルタイムカウンタ１９６のデータの「スナップショット」となる。従って、プロファイラ５０Ｂでは、プロファイラ５０Ａと同様に、逐次ポーリングシステムに伴う欠陥が克服されている。
【００２７】
図７は、本発明によるプロファイラのさらに別の実施例を図示する。プロファイラ５０Ｃは、図５のプロファイラ５０Ａに類似するが、マスタ１４Ａ〜１４Ｚの数より少ないマスタカウンタを含み、追加のトータルカウンタ３１８を有する。具体的には、プロファイラ５０Ｃは、複数のマスタカウンタ２９４Ａ〜２９４Ｎ（２つが示されている）と、リアルタイムカウンタ２９６と、トータルカウンタ３１８と、出力段２９８と、機器構成回路３１９とを含む。マスタカウンタ２９４Ａ〜２９４Ｎは、マスタカウンタレジスタ３００Ａ〜３００Ｎと、それぞれ前述されているように実質的に接続されている対応するシャドウレジスタ３０２Ａ〜３０２Ｎとを含む。同様に、リアルタイムカウンタ２９６は、リアルタイムカウンタレジスタ３０４と出力ブロック３０６を含み、図５のリアルタイムカウンタ９６と同じである。トータルカウンタ３１８は、ライン３２４によってシャドウレジスタ３２２に接続されているトータルカウンタレジスタ３２０を含む。シャドウレジスタ３２２の出力は、ライン３２６によって出力段２９８に接続されている。トータルカウンタレジスタ３２０とシャドウレジスタ３２２は、マスタカウンタレジスタ３００Ａ〜３００Ｎとシャドウレジスタ３０２Ａ〜３０２Ｎがライン３１４に接続されているのと同じ方法で、ライン３１４に接続されている。
【００２８】
機器構成回路３１９は、複数の選択レジスタ３２８Ａ〜３２８Ｎ（マスタカウンタ２９４Ａ〜２９４Ｚそれぞれに１つ）と、選択レジスタ３２８Ａ〜３２８Ｎによってそれぞれ制御される複数の対応する接続ブロック３３０Ａ〜３３０Ｎとを含む。選択レジスタ３２８Ａ〜３２８Ｎは、後に説明されるようにユーザまたはシステムのＣＰＵが接続ブロック３３０Ａ〜３３０Ｎを機器構成できるようにするための制御入力（図示されていない）を有する。接続ブロック３３０Ａ〜３３０Ｎは、それぞれライン３３２Ａ〜３３２Ｎによってマスタカウンタレジスタ３００Ａ〜３００Ｎに接続されている出力を有する。各接続ブロック３３０Ａ〜３３０Ｎは、マスタ１４Ａ〜１４Ｚに対応する許可ライン２８Ａ〜２８Ｚすべてに接続されている複数の入力を有する。機器構成回路３１９は、ＯＲゲート回路３３４も含む。この回路は、入力として許可ライン２８Ａ〜２８Ｚを有し、イネーブル出力をトータルカウンタレジスタ３２０にライン３３６を介して供給する。各マスタカウンタ２９４Ａ〜２９４Ｎと、トータルカウンタ３１８と、リアルタイムカウンタ２９６は、これらのカウンタがイネーブルされているときにバスクロック信号３０（図には示されていない）のサイクルをカウントできるように、バスクロック信号３０に結合される点は、理解すべきである。
【００２９】
動作時、ユーザは、複数のマスタ１４Ａ〜１４Ｚのうちサイクルをカウントするマスタの部分集合を選択するために、制御信号を選択レジスタ３２８Ａ〜３２８Ｎに供給する。例えば、ユーザは、許可ライン２８Ｃがイネーブルライン３３２Ａに接続されるように、接続ブロック３３０Ａを機器構成するように選択レジスタ３２８Ａに命令することができる。この場合、マスタカウンタ２９４Ａは、マスタ１４Ｃへの許可信号によってイネーブルされ、マスタ１４Ｃによって占有されたバスサイクルを前述されている方法によってカウントする。残りの選択レジスタ３２８Ｂ〜３２８Ｎも、同様にカウントする他のマスタを選択するために使用される。
【００３０】
プロファイラ５０Ｃは、いかなる時間間隔中も複数のマスタ１４Ａ〜１４Ｚそれぞれのサイクルを個別に監視してカウントするわけではない点は、理解すべきである。実際には、マスタ１４Ａ〜１４Ｚが非常に低い帯域幅のデバイスであることがある。すべてのマスタ１４Ａ〜１４Ｚに対してマスタカウンタが設けられている場合、低帯域幅のマスタ１４Ａ〜１４Ｚに使用されるマスタカウンタが非アクティブである時間は長くなり、電力とシリコンスペースは消費されるが、プロファイラ５０Ｃのバス帯域幅消費量測定機能にはほとんど寄与しない。従って、マスタ１４Ａ〜１４Ｚより少ないマスタカウンタ２９４Ａ〜２９４Ｎを含めることによって、プロファイラ５０Ｃをより安価でより効率的な設計にすることができる。さらに、後にに説明されるように、トータルカウンタ３１８からのバスサイクルのカウントデータを使用して、選択されないマスタ１４Ａ〜１４Ｚのトータルのバス使用状況は容易に計算できる。
【００３１】
選択レジスタ３２８Ａ〜３２８Ｎを使用して、選択されたマスタ１４Ａ〜１４Ｚとマスタカウンタ２９４Ａ〜２９４Ｎの間の接続が機器構成されると、実際のシステム監視を開始できる。図７を参照して説明されているように、リアルタイムカウンタレジスタ２９６は、各バスサイクルの後にリアルタイムカウンタ３０４をインクリメントし、これによって経過時間をカウントする。各マスタカウンタ２９４Ａ〜２９４Ｎは、関連付けられたイネーブルライン３３２Ａ〜３３２Ｎ上の信号を受信した時点でイネーブルされ、バスサイクルのカウントを開始する。各イネーブル信号は、カウンタが接続されている許可ライン２８Ａ〜２８Ｚ上にアービタ１８によって出力される許可信号である。マスタカウンタ２９４Ａ〜２９４Ｎは、許可信号が取り除かれるとカウントを停止する。従って、各マスタカウンタ２９４Ａ〜２９４Ｎは、カウンタが機器構成されている対象のマスタ１４Ａ〜１４Ｚによって占有されたバスサイクルをカウントする。
【００３２】
これに対して、トータルカウンタ３１８は、マスタ１４Ａ〜１４Ｚのいずれかにバス１２の占有権が許可されるとイネーブルされる。ＯＲゲート回路３３４は、すべての許可ライン２８Ａ〜２８Ｚをトータルカウンタ３１８のイネーブルライン３３６に有効に接続する。アービタ１８が許可ライン２８Ａ〜２８Ｚ上のいずれかに許可信号を出力すると、トータルカウンタ３１８がイネーブルされ、許可信号が取り除かれるまでバスサイクルをカウントする。従って、トータルカウンタ３１８は、マスタ１４Ａ〜１４Ｚによってトータルに占有されるバスサイクルの総数のランニングカウント（ｒｕｎｎｉｎｇ ｃｏｕｎｔ）を維持する。
【００３３】
図５のプロファイラ５０Ａと同様に、プロファイラ５０Ｃは、割り込み駆動アーキテクチャを有する。リアルタイムカウンタレジスタ３０４は、その最大カウント値に達するまで、経過したバスサイクルをカウントする。最大カウントに達すると、出力ブロック３０６が、ロールオーバーライン３１４上に割り込み信号を生成する（プロファイルイベント）。マスタカウンタ２９４Ａ〜２９４Ｎのシャドウレジスタ３０２Ａ〜３０２Ｎとトータルカウンタ３１８のシャドウレジスタ３２２は、それぞれのカウンタレジスタ（すなわち、それぞれ、マスタカウンタレジスタ３００Ａ〜３００Ｎとトータルカウンタレジスタ３２０）の中に存在するバスサイクルカウントの数を格納することによって、この割り込み信号に応答する。また、割り込み信号によって、マスタカウンタレジスタ３００Ａ〜３００Ｎとトータルカウンタレジスタ３２０がゼロにリセットされ、最後の２つのプロファイルイベントの間の時間間隔に関する有効なデータが読み取り可能であることを、ユーザまたはシステムのＣＰＵに通知する。このデータは、シャドウレジスタ３０２Ａ〜３０２Ｎと３２２から出力段２９８に移動して、前述されている方法によってＣＰＵによって読み取ることができる。
【００３４】
マスタカウンタ２９４Ａ〜２９４Ｎによってカウントするように選択されたマスタ１４Ａ〜１４Ｚのバス帯域幅消費量は、上に説明したように計算できる。残りのマスタ１４Ａ〜１４Ｚ（マスタカウンタ２９４Ａ〜２９４Ｎによってカウントされないマスタ）によってトータルに消費されるバス帯域幅は、選択されたマスタ１４Ａ〜１４Ｚによって占有されたバスサイクルの数を単純に合計し、トータルカウンタ３１８によってカウントされた占有されたバスサイクルの総数からその合計を減算することによって導くことができる。この結果は、選択されないマスタ１４Ａ〜１４Ｚによって占有されたバスサイクルの合計数である。この値から、選択されないマスタ１４Ａ〜１４Ｚのバス帯域幅の全消費量が得られる。
【００３５】
図８は、本発明によるプロファイラの別の実施例を示す。プロファイラ５０Ｄは、単純にポーリングアーキテクチャに変換されたプロファイラ５０Ｃである。プロファイラ５０Ｄにおけるマスタカウンタ３９４Ａ〜３９４Ｎの数も、システムマスタ１４Ａ〜１４Ｚの数よりも少ない。プロファイラ５０Ｄは、プロファイラ５０Ｃに含まれているものと同じトータルカウンタ４１８と機器構成回路４１９を含む。しかしながら、プロファイラ５０Ｃのリアルタイムカウンタ２９６は、プロファイラ５０Ｂ（図６）のリアルタイムカウンタ１９６と同じであるリアルタイムカウンタ３９６によって置き換えられている。従って、上述したように機器構成された後、プロファイラ５０Ｄは、すべてのマスタ１４Ａ〜１４Ｚがカウントされるのではないことと、プロファイルイベントの発生時（すなわちライン４１４を介してのＣＰＵからの読み取り信号）に、占有されたバスサイクルの総数がトータルカウンタ４１８によって与えられることとを除いて、プロファイラ５０Ｂと同様に動作する。
【００３６】
図９は、モード選択回路５４０を示す。この回路は、プロファイラ５０Ａ〜５０Ｄのいずれかに適合化されたときに、プロファイラが割り込み駆動モードまたはポーリングモードのいずれかで動作することを可能にする。モード選択回路５４０は、リアルタイムカウンタレジスタ５０４と、出力ブロック５０６Ａと、シャドウレジスタ５０６Ｂと、インバータ５４２と、一組のＡＮＤゲート５４４、５４６と、ＯＲゲート５４８とを含む。モード選択回路５４０は、モード選択信号５５０と読み取り信号５５２とを入力とし、いずれもシステムのＣＰＵによって生成できる。モード選択信号５５０は、インバータ５４２の入力と、ＡＮＤゲート５４６の一方の入力にルーティングされる。ＡＮＤゲート５４６への他方の入力は、出力ブロック５０６Ａによって供給される。読み取り信号５５２は、シャドウレジスタ５０６Ｂと、ＡＮＤゲート５４４の入力にルーティングされる。ＡＮＤゲート５４４への他方の入力は、インバータ５４２の出力によって供給される。ＡＮＤゲート５４４、５４６の出力は、ＯＲゲート５４８への入力を供給する。ＯＲゲート５４８の出力（ライン５１４上）は、リアルタイムカウンタ５０４にリセット入力を供給し、図５〜８のライン１１４、２１４、３１４、４１４それぞれと同じ方法でプロファイラの残りの構成要素に接続されている。リアルタイムカウンタレジスタ５０４は、プロファイラが動作しているときは常にライン５１２によってイネーブルされている。図示されているように、リアルタイムカウンタレジスタ５０４は、出力ブロック５０６Ａとシャドウレジスタ５０６Ｂにもライン５１０によって接続されている。シャドウレジスタ５０６Ｂの出力は、出力段９８、１９８、２９８、３９８（図示されていない）のいずれかに接続できる。
【００３７】
動作時、モード選択回路５４０は、モード選択信号５５０の状態に応じて、システムのＣＰＵが読み取り信号５５２を供給するときに、またはリアルタイムカウンタレジスタ５０４がその最大カウント上限に達したときに、プロファイルイベントを生成する。モード選択信号５５０がハイ（割り込みモード）の場合、ロジックハイ信号がＡＮＤゲート５４６の一方の入力に供給され、（モード選択信号５５０がインバータ５４２によって逆にされた後に）ロジックロー信号がＡＮＤゲート５４４の一方の入力に供給される。このとき明らかに、ロジックローの１つの入力のみでは、ＡＮＤゲート５４４は出力を供給できない。従って、読み取り信号５５２によってプロファイルイベントを発生させることができない。これに対して、リアルタイムカウンタ５０４がその最大カウント値に達すると、出力ブロック５０６Ａはロジックハイ信号をＡＮＤゲート５４６の他方の入力に供給し、ＡＮＤゲート５４６はロジックハイ信号をＯＲゲート５４８に供給する。ＯＲゲート５４８は、次いで、リアルタイムカウンタレジスタ５０４をリセットし、プロファイラ内の他のカウンタに割り込み信号をライン５１４上に供給する。前述されているように、この信号によって、カウンタはバスサイクルのカウントデータをそれぞれのシャドウレジスタに移動し、自身をゼロにリセットする。
【００３８】
モード選択信号５５０がローのとき（ポーリングモード）には、ＡＮＤゲート５４４の一方の入力に（インバータ５４２からの）ロジックハイ信号が存在し、ＡＮＤゲート５４６の一方の入力にロジックロー信号が存在し、これによって、割り込みモードプロファイルイベントがディセーブルされる。ＣＰＵがロジックハイ読み取り信号５５２を出力すると、リアルタイムカウンタレジスタ５０４のバスサイクルのカウントがシャドウレジスタ５０６Ｂに移動される。また、ＡＮＤゲート５４４への両方の入力ともハイであり、これによりライン５１４上に読み取り信号が生成され（プロファイルイベント）、リアルタイムカウンタレジスタ５０４がリセットされる。上記と同様に、ライン５１４上の読み取り信号によって、カウンタのカウント済みバスサイクルデータがそれぞれのシャドウレジスタに移動され、カウンタが０にリセットされる。
【００３９】
本発明は詳細に図示および説明されているが、これらは本発明を限定するものではなく、具体例を示すことを目的とするに過ぎない。前述した実施例には、本発明の範囲から逸脱せずに多数の変更を行うことができる。従って、本出願は、本発明の一般的な原理を使用する本発明の変更、用途、適合化も含むものとする。さらに、本出願は、本発明が属す技術分野における公知または慣用的な範囲内で生じる、本発明の開示からの逸脱も含むものとする。
【図面の簡単な説明】
【図１】基本的なバスシステムのアーキテクチャのブロック線図である。
【図２】バスシステムにおけるデータトランザクションを図示するタイミング図である。
【図３】本発明によるバス帯域幅プロファイラを含む基本的なバスシステムのアーキテクチャのブロック線図である。
【図４】バスシステムにおける、アービタによって調停される２つのバスマスタのデータトランザクションを図示するタイミング図である。
【図５】本発明によるバス帯域幅プロファイラのさまざまな実施例のアーキテクチャのブロック線図である。
【図６】本発明によるバス帯域幅プロファイラのさまざまな実施例のアーキテクチャのブロック線図である。
【図７】本発明によるバス帯域幅プロファイラのさまざまな実施例のアーキテクチャのブロック線図である。
【図８】本発明によるバス帯域幅プロファイラのさまざまな実施例のアーキテクチャのブロック線図である。
【図９】図５〜８の実施例のいずれにも組み込むことのできるモード選択回路のブロック線図である。
【符号の説明】
１０  バスシステム
１２  バス
１４Ａ〜１４Ｚ  バスマスタ
１６Ａ〜１６Ｚ  バススレーブ
１８  バスアービタ
２０  共通データライン
２２  共通制御ライン
２４  共通アクノリッジライン
２６Ａ〜２６Ｚ  要求ライン
２８Ａ〜２８Ｚ  許可ライン
３０  バスクロック信号
３２  要求信号
３４  許可信号
３５、３６、４０、４２、４８、４９  バスクロックサイクル
３８  信号
４４、４６  データ
アクノリッジ信号バス
５０Ａ、５０Ｂ、５０Ｃ、５０Ｄ  帯域幅プロファイラ
５２  要求信号
５４  許可信号
５６  行
５８、６０、６２  バスクロックサイクル
６４  要求信号
６６  許可信号
６８〜９０  バスサイクル
９２  行
９４Ａ〜９４Ｚ  マスタカウンタ
９６  リアルタイムカウンタ
９８  出力段
１００Ａ〜１００Ｚ  カウンタレジスタ
１０２Ａ〜１０２Ｚ  シャドウレジスタ
１０４  リアルタイムカウンタレジスタ
１０６  出力ブロック
１０８Ａ〜１０８Ｚ  ライン
１１０  ライン
１１２  ライン
１１４  ロールオーバーライン
１１６Ａ〜１１６Ｚ  ライン
１１８  アドレスライン
１２０  データライン
１９４Ａ〜１９４Ｚ  マスタカウンタ
１９６  リアルタイムカウンタ
１９８  出力段
２００Ａ〜２００Ｚ  マスタカウンタレジスタ
２０２Ａ〜２０２Ｚ、２０６  シャドウレジスタ
２０４  リアルタイムカウンタレジスタ
２１４、２１６Ａ〜２１６Ｚ、２１７  ライン
２９４Ａ〜２９４Ｎ  マスタカウンタ
２９６  リアルタイムカウンタ
２９８  出力段
３００Ａ〜３００Ｎ  マスタカウンタレジスタ
３０２Ａ〜３０２Ｎ、３２２  シャドウレジスタ
３０４  リアルタイムカウンタレジスタ
３０６  出力ブロック
３１４  ロールオーバーライン
３１８  トータルカウンタ
３１９  機器構成回路
３２０  トータルカウンタレジスタ
３２２  シャドウレジスタ
３２４  ライン
３２６  ライン
３２８Ａ〜３２８Ｎ  選択レジスタ
３３０Ａ〜３３０Ｎ  接続ブロック
３３２Ａ〜３３２Ｎ  イネーブルライン
３３４  ＯＲゲート回路
３３６  イネーブルライン
３９４Ａ〜３９４Ｎ  マスタカウンタ
３９６  リアルタイムカウンタ
４１４  ライン
４１８  トータルカウンタ
４１９  機器構成回路
５０４  リアルタイムカウンタレジスタ
５０６Ａ  出力ブロック
５０６Ｂ  シャドウレジスタ
５１４  ライン
５４０  モード選択回路
５４２  インバータ
５４４、５４６  ＡＮＤゲート
５４８  ＯＲゲート
５５０  モード選択信号
５５２  読み取り信号
【図１】
2004519769.tif 000003
【図２】
2004519769.tif 000004
【図３】
2004519769.tif 000005
【図４】
2004519769.tif 000006
【図５】
2004519769.tif 000007
【図６】
2004519769.tif 000008
【図７】
2004519769.tif 000009
【図８】
2004519769.tif 000010
【図９】
2004519769.tif 000011
【国際公開パンフレット】
2004519769.tif 000012
2004519769.tif 000013
2004519769.tif 000014
2004519769.tif 000015
2004519769.tif 000016
2004519769.tif 000017
2004519769.tif 000018
2004519769.tif 000019
2004519769.tif 000020
2004519769.tif 000021
2004519769.tif 000022
2004519769.tif 000023
2004519769.tif 000024
2004519769.tif 000025
2004519769.tif 000026
2004519769.tif 000027
2004519769.tif 000028
2004519769.tif 000029
2004519769.tif 000030
2004519769.tif 000031
2004519769.tif 000032
2004519769.tif 000033
2004519769.tif 000034
2004519769.tif 000035
2004519769.tif 000036
2004519769.tif 000037
2004519769.tif 000038
2004519769.tif 000039
【国際調査報告】
2004519769.tif 000040
2004519769.tif 000041