(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-06
(45)【発行日】2023-11-14
(54)【発明の名称】データ処理システム内のイベントを監視する装置及び方法
(51)【国際特許分類】
G06F 11/34 20060101AFI20231107BHJP
【FI】
G06F11/34 152
(21)【出願番号】P 2021510645
(86)(22)【出願日】2019-08-30
(86)【国際出願番号】 GB2019052428
(87)【国際公開番号】W WO2020070465
(87)【国際公開日】2020-04-09
【審査請求日】2022-08-23
(32)【優先日】2018-10-03
(33)【優先権主張国・地域又は機関】GB
(73)【特許権者】
【識別番号】500395107
【氏名又は名称】アーム・リミテッド
(74)【代理人】
【識別番号】110000855
【氏名又は名称】弁理士法人浅村特許事務所
(72)【発明者】
【氏名】ヘイズ、ティモシー
(72)【発明者】
【氏名】ガブリエッリ、ジャコモ
(72)【発明者】
【氏名】ホースネル、マシュー ジェイムズ
【審査官】武田 広太郎
(56)【参考文献】
【文献】米国特許出願公開第2014/0013020(US,A1)
【文献】米国特許出願公開第2005/0188276(US,A1)
【文献】米国特許出願公開第2017/0220447(US,A1)
【文献】米国特許第05937437(US,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/34
(57)【特許請求の範囲】
【請求項1】
データ処理システム内の第1のイベントの発生を監視し、前記第1のイベントのm番目ごとにその発生を示す第1の信号をアサートし、ここでmは1以上の整数である第1のイベント監視回路と、
前記データ処理システム内の第2のイベントの発生を監視し、前記第2のイベントのn番目ごとにその発生を示す第2の信号をアサートし、ここでnは1以上の整数である第2のイベント監視回路と、
前記アサートされた第1及び第2の信号に応じて更新されるイベント履歴情報を維持する、履歴維持回路と、
前記イベント履歴情報が、前記第1のイベントの前記発生と前記第2のイベントの前記発生との間の比率が許容範囲外であることを示す場合、報告条件を検出するために、分析トリガに応答して前記イベント履歴情報を分析する履歴分析回路と
を備える装置であって、前記履歴分析回路は、前記報告条件の検出に応答して報告信号をアサートする、装置。
【請求項2】
前記履歴分析回路は、前記イベント履歴情報が、前記比率が選択された閾値に達したことを示すときに、前記比率が前記許容範囲外であることを検出するよう配置構成される、請求項1に記載の装置。
【請求項3】
前記分析トリガは、前記イベント履歴情報が更新されるたびに生成される、請求項1又は請求項2に記載の装置。
【請求項4】
前記履歴維持回路は、複数のエントリを具備する履歴記憶部を備え、ここで各エントリは、履歴データのアイテムを格納するよう配置構成され、履歴データの各アイテムは、前記第1の信号のアサート又は前記第2の信号のアサートを示す、請求項1から3までのいずれかに記載の装置。
【請求項5】
前記履歴維持回路は、前記第1の信号及び前記第2の信号を受信し、前記受信した第1及び第2の信号に応じて前記履歴記憶部を更新させるよう配置構成された更新回路をさらに備える、請求項4に記載の装置。
【請求項6】
前記履歴記憶部は、p個のエントリを備えるシフト・レジスタとして配置構成され、前記更新回路からの更新トリガに応答して、履歴データの新しいアイテムを前記シフト・レジスタ内の先頭のエントリに追加する、請求項5に記載の装置。
【請求項7】
履歴データの新しいアイテムのそれぞれが追加されるときに、前記シフト・レジスタ内の履歴データの最も古いアイテムが捨てられ、それにより前記シフト・レジスタは、履歴データの最新のp個のアイテムを維持する、請求項6に記載の装置。
【請求項8】
前記シフト・レジスタは、直列入力並列出力型シフト・レジスタであり、前記履歴分析回路は、前記分析トリガに応答して、履歴データのp個のアイテムを受信するように、前記シフト・レジスタの出力に接続される、請求項6又は請求項7に記載の装置。
【請求項9】
前記シフト・レジスタの入力は、前記第1の信号と結合され、その結果前記更新トリガが発生すると、前記シフト・レジスタ内の前記先頭のエントリに加えられた前記履歴データの前記新しいアイテムは、前記第1の信号の現在の値を示す、請求項6から8までのいずれかに記載の装置。
【請求項10】
前記更新回路は、前記第1の信号又は前記第2の信号の一方がアサートされると、前記更新トリガを発行するが、前記第1の信号及び前記第2の信号が同時にアサートされると、前記更新トリガを省略するよう配置構成される、請求項9に記載の装置。
【請求項11】
前記履歴データの各アイテムは、前記第1の信号のアサートを示す第1の値
又は前記第2の信号のアサートを示す第2の値を
有し、前記履歴分析回路は、前記履歴記憶部の前記エントリに格納されている前記
履歴データを参照することで、前記比率がいつ前記許容範囲外になるかを判断するために使用される閾値情報を特定する、閾値指示記憶部を備える、請求項4から10までのいずれかに記載の装置。
【請求項12】
前記閾値情報は、前記履歴記憶部の前記エントリ内の前記第1の値の発生回数についての閾値を提供する、請求項11に記載の装置。
【請求項13】
前記報告信号がアサートされるかどうかに応じて、前記データ処理システムの割込コントローラに例外信号をアサートするよう配置構成される、例外信号生成回路をさらに備える、請求項1から12までのいずれかに記載の装置。
【請求項14】
前記履歴維持回路によって維持される前記イベント履歴情報に対して決定された回数の更新が行われるまで、前記報告信号に基づく前記例外信号の生成を抑制するために使用されるウォームアップ制限回路をさらに備える、請求項13に記載の装置。
【請求項15】
前記ウォームアップ制限回路は、前記イベント履歴情報に対して行われた更新回数を示す更新カウント値を維持する更新カウンタ記憶部を備え、前記更新回数が制限閾値に達したときに制限信号をアサートするよう配置構成され、且つ
前記例外信号生成回路は、前記報告信号と前記制限信号との両方がアサートされたときに、前記例外信号をアサートするよう配置構成される、請求項14に記載の装置。
【請求項16】
mは1より大きく、且つ
前記第1のイベント監視回路は、リセット・イベント以降に観測された前記第1のイベントの発生回数を示す第1のイベント・カウント値を維持する第1のイベント・カウンタ記憶部を備え、前記発生回数が前記値mに達したときに前記第1の信号をアサートし、その後前記リセット・イベントがトリガされると前記第1のイベント・カウント値を初期値にリセットするよう配置構成される、請求項1から15までのいずれかに記載の装置。
【請求項17】
nは1より大きく、且つ
前記第2のイベント監視回路は、リセット・イベント以降に観測された前記第2のイベントの発生回数を示す第2のイベント・カウント値を維持する第2のイベント・カウンタ記憶部を備え、前記発生回数が前記値nに達したときに前記第2の信号をアサートし、その後前記リセット・イベントがトリガされると前記第2のイベント・カウント値を初期値にリセットするよう配置構成される、請求項1から16までのいずれかに記載の装置。
【請求項18】
前記m及びnの値の指示を維持する、設定可能な閾値記憶部をさらに備える、請求項16又は請求項17に記載の装置。
【請求項19】
データ処理システム内のイベントを監視する方法であって、
前記データ処理システム内の第1のイベントの発生を監視するステップ、及び前記第1のイベントのm番目ごとにその発生を示す第1の信号をアサートするステップであって、ここでmは1以上の整数であるステップと、
前記データ処理システム内の第2のイベントの発生を監視するステップ、及び前記第2のイベントのn番目ごとにその発生を示す第2の信号をアサートするステップであって、ここでnは1以上の整数であるステップと、
前記アサートされた第1及び第2の信号に応じて更新されるイベント履歴情報を維持する、履歴維持回路を使用するステップと、
前記イベント履歴情報が、前記第1のイベントの前記発生と前記第2のイベントの前記発生との間の比率が許容範囲外であることを示す場合、報告条件を検出するために、分析トリガに応答して前記イベント履歴情報を分析する履歴分析回路を使用するステップと、
前記報告条件の検出に応答して、報告信号をアサートするステップと
を含む方法。
【請求項20】
データ処理システム内の第1のイベントの発生を監視し、前記第1のイベントのm番目ごとにその発生を示す第1の信号をアサートし、ここでmは1以上の整数である第1のイベント監視手段と、
前記データ処理システム内の第2のイベントの発生を監視し、前記第2のイベントのn番目ごとにその発生を示す第2の信号をアサートし、ここでnは1以上の整数である第2のイベント監視手段と、
前記アサートされた第1及び第2の信号に応じて更新されるイベント履歴情報を維持する、履歴維持手段と、
前記イベント履歴情報が、前記第1のイベントの前記発生と前記第2のイベントの前記発生との間の比率が許容範囲外であることを示す場合、報告条件を検出するために、分析トリガに応答して前記イベント履歴情報を分析する履歴分析手段と
を備える装置であって、前記履歴分析手段は、前記報告条件の検出に応答して報告信号をアサートする、装置。
【発明の詳細な説明】
【技術分野】
【0001】
本技法は、データ処理システム内のイベントを監視する装置及び方法に関する。
【背景技術】
【0002】
データ処理システムには、データ処理システムの処理性能を示す性能監視データを生成する性能監視回路が設けられることが知られている。たとえば、性能監視回路は、命令の実行又はキャッシュ・ミスなど、データ処理システム内で起こるイベントの発生をカウントすることができる。カウンタが所与の値に達したときに割込みを生成することができ、その結果多数のキャッシュ・ミスなどの性能上の問題が発生すると、処理システムがトリガされ、性能監視データに基づく所与の動作、たとえば、性能監視データによって特定された性能上の問題に対処するための動作を実行できる。
【0003】
性能監視回路は、複数のイベントについて別個のイベント・カウントを維持できる。データ処理システム内の性能を監視するときに、いくつかのインスタンスでは、イベントの比率を効率的且つ確実に監視できることが望ましいであろう。
【先行技術文献】
【特許文献】
【0004】
【文献】米国特許出願公開第2014/0013020号
【発明の概要】
【課題を解決するための手段】
【0005】
1つの例示的な配置構成では、データ処理システム内の第1のイベントの発生を監視し、第1のイベントのm番目ごとにその発生を示す第1の信号をアサートし、ここでmは1以上の整数である第1のイベント監視回路と、データ処理システム内の第2のイベントの発生を監視し、第2のイベントのn番目ごとにその発生を示す第2の信号をアサートし、ここでnは1以上の整数である第2のイベント監視回路と、アサートされた第1及び第2の信号に応じて更新されるイベント履歴情報を維持する履歴維持回路と、イベント履歴情報が、第1のイベントの発生と第2のイベントの発生との間の比率が許容範囲外であることを示す場合、報告条件を検出するために、分析トリガに応答してイベント履歴情報を分析する履歴分析回路とを備える装置が提供され、ここで、履歴分析回路は、報告条件の検出に応答して、報告信号をアサートする。
【0006】
別の例示的な配置構成では、データ処理システム内のイベントを監視する方法が提供され、該方法は、データ処理システム内の第1のイベントの発生を監視するステップ、及び第1のイベントのm番目ごとにその発生を示す第1の信号をアサートするステップであって、ここでmは1以上の整数であるステップと、データ処理システム内の第2のイベントの発生を監視するステップ、及び第2のイベントのn番目ごとにその発生を示す第2の信号をアサートするステップであって、ここでnは1以上の整数であるステップと、アサートされた第1及び第2の信号に応じて更新されるイベント履歴情報を維持する履歴維持回路を使用するステップと、イベント履歴情報が、第1のイベントの発生と第2のイベントの発生との間の比率が許容範囲外であることを示す場合、報告条件を検出するために、分析トリガに応答してイベント履歴情報を分析する履歴分析回路を使用するステップと、報告条件の検出に応答して、報告信号をアサートするステップとを含む。
【0007】
さらに別の例示的な配置構成では、データ処理システム内の第1のイベントの発生を監視し、第1のイベントのm番目ごとにその発生を示す第1の信号をアサートし、ここでmは1以上の整数である第1のイベント監視手段と、データ処理システム内の第2のイベントの発生を監視し、第2のイベントのn番目ごとにその発生を示す第2の信号をアサートし、ここでnは1以上の整数である第2のイベント監視手段と、アサートされた第1及び第2の信号に応じて更新されるイベント履歴情報を維持する履歴維持手段と、イベント履歴情報が、第1のイベントの発生と第2のイベントの発生との間の比率が許容範囲外であることを示す場合、報告条件を検出するために、分析トリガに応答してイベント履歴情報を分析する履歴分析手段とを備える装置が提供され、ここで、履歴分析手段は、報告条件の検出に応答して、報告信号をアサートする。
【0008】
本技法を、以下の添付図面に示すその実例を参照しながら、単なる例示としてさらに説明することにする。
【図面の簡単な説明】
【0009】
【
図1】性能監視回路を備えるデータ処理システムを、模式的に示す図である。
【
図2】一実例による、
図1の性能管理ユニット内に設けられる構成要素を示す構成図である。
【
図3】1つの特定の例示的な実施態様による、
図2の性能管理ユニット内に設けられる構成要素を示す図である。
【
図4】1つの特定の例示的な実施態様による、
図2の性能管理ユニット内に設けられる構成要素を示す図である。
【
図5】1つの例示的な実施態様による、
図2のイベント監視回路の動作を示す流れ図である。
【
図6】1つの例示的な実施態様による、履歴維持回路の動作を示す流れ図である。
【
図7】1つの例示的な実施態様による、履歴分析回路の動作を示す流れ図である。
【
図8】1つの例示的な実施態様による、ウォームアップ制限回路の動作を示す流れ図である。
【
図9】1つの例示的な実施態様による、例外信号生成回路の動作を示す流れ図である。
【
図11】1つの例示的な実施態様において、本明細書に記載の性能監視技法を使用して、
図10のテーブル結合動作を実行するために使用される可能性がある相異なるアルゴリズムを切り替えるかどうかを、どのようにして判断できるかを示す流れ図である。
【発明を実施するための形態】
【0010】
前述のように、データ処理システム内の性能を監視するときに、いくつかのインスタンスでは、イベントの比率を効率的且つ確実に監視できることが望ましいであろう。米国特許出願公開第2014/0013020号は、複数のイベントについて、別個のイベント・カウントを維持できるシステムについて説明しており、ここで2つのイベントのイベント・カウントの比率は、特定の時点で決定でき、比率が所望のレベルを超える場合、例外がトリガされる。性能監視を使用するとき、イベントの比率を考慮することは有用である。というのは、たとえばかかる情報を使用して、アプリケーション実行時の挙動によりよく適合するように、システム構成に動的な変更を加えることができるからである。しかし上記の技法では、比率分析を、制限された離散的な時点でしか実行することができない。具体的には、第1のイベント・カウントが閾値に達した時点で、第2のイベント・カウントもその閾値に達したかどうかが判断され、達した場合は例外トリガを発行できる。しかし達していない場合は、両方のカウンタがリセットされる。したがって上記の技法では、比率を、離散的な閉じた間隔の中で超える必要があることが理解されよう。かかる手法は、様々な状況で有用であり得る比率を確認するための単純な仕組みを提供できるが、分母が閉じた間隔でその臨界値に達することにより、比率を超えるときに決して検出されない特定の状況をもたらすことがある。
【0011】
本明細書で説明する技法は、データ処理システム内で性能監視中にイベントの比率を分析する、改善された仕組みを提供する。
【0012】
例示的な配置構成では、データ処理システム内で性能監視を実行する装置が提供される。装置は、データ処理システム内の第1のイベントの発生を監視し、第1のイベントのm番目ごとにその発生を示す第1の信号をアサートする第1のイベント監視回路を備え、ここでmは1以上の整数である。さらに、第2のイベント監視回路は、データ処理システム内の第2のイベントの発生を監視し、第2のイベントのn番目ごとにその発生を示す第2の信号をアサートするために使用され、ここでnは1以上の整数である。さらに、アサートされた第1及び第2の信号に応じて更新されるイベント履歴情報を維持する、履歴維持回路が提供される。
【0013】
次いで履歴分析回路は、イベント履歴情報が、第1のイベントの発生と第2のイベントの発生との間の比率が許容範囲外であることを示す場合、報告条件を検出するために、分析トリガに応答してイベント履歴情報を分析する。次いで履歴分析回路は、報告条件を検出すると、報告信号をアサートするよう配置構成され得る。次いで報告信号を使用して、たとえば、割込コントローラに例外信号をアサートすることが適切かどうかを判断できる。
【0014】
上記の技法によれば、特定の離散的な時点で比率を超えたかどうかを評価しようとするのではなく、たとえば、第1のイベント・カウントが所定のレベルに達したときに、イベント履歴情報を使用することにより、所望の比率の連続的な監視が実行でき、したがって上記で論じた技法の制約を緩和できる。説明する技法によれば、イベント履歴情報は、第1及び第2のイベント監視回路によってアサートされた第1及び第2の信号に応じて、履歴維持回路で継続的に維持される。次いで、分析トリガが受信されるたびに、比率が許容範囲を超えた状況を検出するために、そのイベント履歴情報が分析される。これは、2つのイベントの発生率を継続的に監視する効果的な仕組みを提供し、それにより、上記の装置が使用されるシステムの性能のリアルタイム監視に関して、大幅な改善を可能にする。
【0015】
履歴分析回路が、いつ比率が許容範囲外になるかを判断できるやり方がいくつかある。しかし、1つの例示的な配置構成では、履歴分析回路は、イベント履歴情報が、比率が選択された閾値に達したことを示すときに、比率が許容範囲外であることを検出するよう配置構成される。許容範囲は、必要に応じて上限閾値及び下限閾値によってエンコードできるが、1つの実施態様では、選択された閾値を単一の閾値を使って特定し、範囲の他端は、たとえば論理値0と推定できる。選択された閾値は、様々なやり方で、たとえば、必要に応じて整数値又は小数値を使用して特定できる。
【0016】
履歴分析回路にイベント履歴情報を分析させるために使用される分析トリガは、様々な形態をとることができる。ただし一実例では、分析トリガは、イベント履歴情報が更新されるたびに生成される。したがって、これにより、対象となる比率の継続的な監視が可能になり、比率に影響を与える可能性のある情報が生成されるたびに、確実に比率を再評価できる。
【0017】
履歴維持回路は様々な形態をとることができるが、1つの例示的な実施態様では、複数のエントリを具備する履歴記憶部を備え、各エントリは、履歴データのアイテムを保存するよう配置構成され、履歴データの各アイテムは、第1の信号のアサート又は第2の信号のアサートを示す。したがって、履歴記憶部内の履歴データの個々のアイテムは、第1の信号又は第2の信号の個々のアサートを特定し、次いでその情報は、第1のイベント及び第2のイベントの発生率を分析するために使用される。
【0018】
1つの例示的な実施態様では、履歴維持回路は、第1の信号及び第2の信号を受信し、受信した第1及び第2の信号に応じて履歴記憶部を更新させるよう配置構成された更新回路をさらに備える。
【0019】
更新回路は、様々なやり方で動作することができる。更新回路は、たとえば、第1の信号又は第2の信号がアサートされるたびに、履歴記憶部を更新させることができる。しかし、本明細書で後から論じるように、1つの例示的な実施態様において、更新回路は、ある特定のシナリオでは、第1及び第2の信号がアサートされたときに更新を実行させない場合がある。具体的には、第1の信号と第2の信号との両方が同時にアサートされるときに更新を省くと、装置の大幅な簡素化を達成することができる。これにより一部の情報を失うことになる可能性があるが、相互の倍数ではないm及びnの値を選択することで、これを大幅に軽減できる。
【0020】
履歴記憶部は、様々なやり方で構築できるが、1つの例示的な実施態様では、p個のエントリを備えるシフト・レジスタとして配置構成され、更新回路からの更新トリガに応答して、履歴データの新しいアイテムをシフト・レジスタ内の先頭のエントリに追加する。
【0021】
かかる実施態様では、履歴記憶部は、履歴データの新しいアイテムがそれぞれ追加されるときに、シフト・レジスタ内の履歴データの最も古いアイテムが捨てられ、それによりシフト・レジスタは、履歴データの最新のp個のアイテムを維持するよう配置構成され得る。したがって、かかる配置構成では、シフト・レジスタは履歴情報のスライド窓を効果的に維持でき、維持される履歴データの量は、シフト・レジスタが備えるエントリ数に依存する。これは、シフト・レジスタのエントリの最初の入力(population)後のどの時点でも、履歴情報が同じ量に維持されることを意味し、比率が許容範囲外かどうかを判断する、履歴分析回路によって実行される分析を簡素化することができる。しかし、代替の配置構成では、時間の経過と共に履歴情報の量を増やすことができる、別の形態の履歴記憶部を維持でき、履歴分析回路は、次いで比率分析を実行するときに、記憶部内に維持される履歴情報の総量を考慮する必要があろう。
【0022】
履歴記憶部がシフト・レジスタで形成される実施態様では、シフト・レジスタは、様々なやり方で構築することができる。1つの特定の実施態様では、シフト・レジスタは、直列入力並列出力型シフト・レジスタであり、履歴分析回路は、分析トリガに応答して、履歴データのp個のアイテムを受信するようにシフト・レジスタの出力に接続される。したがって、かかる配置構成では、履歴分析回路は、シフト・レジスタから履歴データの全アイテムを並列に取得することができ、比率分析動作の性能を向上させる。
【0023】
シフト・レジスタの入力が第1の信号及び第2の信号情報に結合されるやり方は、様々な形態をとることができる。たとえば、第1の信号又は第2の信号のどちらか一方が、たとえば、第1の信号がアサートされるか又は第2の信号がアサートされるかに応じて、任意の時点でシフト・レジスタの入力に供給され得るように、多重化する配置構成を提供することができる。しかし、1つの特定の例示的な実施態様では、シフト・レジスタの入力が、単に第1の信号に結合されるよう配置構成することで、大幅な簡素化を達成することができる。次いで、更新トリガが発生すると、シフト・レジスタの先頭のエントリに追加された履歴データの新しいアイテムは、第1の信号の現在の値を示す。
【0024】
1つの例示的な実施態様では、第1の信号は、それがアサートされているか否かに応じて、論理値1又は論理値0のどちらか一方であり得る。たとえば、論理値1は、第1の信号がアサートされたことを示してもよく、一方論理値0は、第1の信号がアサート解除されたことを示してもよい。第1の信号がアサートされ、それがシフト・レジスタの更新をトリガする状況において、そのインスタンスでは、第1の信号のアサートを特定するために、論理値1をシフト・レジスタの先頭のエントリに書き込むことができる。対照的に、第2の信号がアサートされても第1の信号がアサートされていない場合、第2の信号のアサートによりトリガされた更新動作中に、論理値0(すなわち、アサート解除された第1の信号の値)がシフト・レジスタの先頭のエントリに格納され得る。かかる配置構成では、シフト・レジスタのエントリの論理値0は、第2の信号のアサートのインスタンスを示すものとして解釈されるであろう。
【0025】
かかる配置構成では、更新回路は、第1の信号又は第2の信号の一方がアサートされると、更新トリガを発行するが、第1の信号及び第2の信号が同時にアサートされると、更新トリガを省略するよう配置構成され得る。前述のように、これは、原理的に情報の多少の損失につながる可能性があるが、m及びnを適切に選択することで、ほとんどの実際上の状況において大幅に低減でき、したがって第1の信号しかシフト・レジスタの入力に接続する必要がないことで、回路の大幅な簡素化ができる。
【0026】
1つの例示的な配置構成では、履歴データの各アイテムは、第1の信号のアサートを示す第1の値及び第2の信号のアサートを示す第2の値を格納し、履歴分析回路は、履歴記憶部のエントリに格納されている値を参照することで、比率がいつ許容範囲外になるかを判断するために使用される閾値情報を特定する、閾値指示記憶部を備える。
【0027】
閾値情報は、様々な形態をとることができる。閾値情報は、たとえば、第1の値及び第2の値に対して、別々の閾値を指定できる。ただし、上記で論じたシフト・レジスタの実例など、履歴記憶部に所定の固定数のエントリがあるインスタンスでは、たとえば、履歴記憶部のエントリ内の第1の値の発生回数を特定するために、単にただ1つの閾値を使用するだけで、閾値情報を提供できる。
【0028】
1つの例示的な実施態様では、装置は、報告信号がアサートされるかどうかに応じて、データ処理システムの割込コントローラに例外信号をアサートするよう配置構成された、例外信号生成回路をさらに備える。例外信号生成回路は、たとえば、報告信号がアサートされるときはいつでも例外信号をアサートするよう配置構成され得る。しかし別法として、例外信号生成回路は、アサートされた報告信号がある状態で例外信号をアサートするかどうかを決定するときに、いくつかの他の信号を考慮することができる。これは、たとえば、必要に応じて、他のイベントの発生回数を示す1つ又は複数の信号を参照することを含むことができる。別法として又はそれに加えて、制限信号も例外信号生成回路に供給することができ、アサートされた報告信号がある状態で、例外信号がアサートされる前に、その制限信号をアサートする必要があり得る。
【0029】
具体的には、1つの例示的な配置構成では、装置は、履歴維持回路によって維持されるイベント履歴情報について決定された回数の更新が行われるまで、報告信号に基づく例外信号の生成を抑制するために使用されるウォームアップ制限回路をさらに備える。したがって、かかる手法により、履歴記憶部への入力の初期段階で例外が確実にトリガされないようにすることができる。したがって、そのインスタンスでは、記憶部内の各エントリがどのような値に初期化されるかは問題ではない。というのは、ウォームアップ制限回路を適切に設定することにより、少なくともすべてのエントリが第1及び第2の信号のアサートに基づいてアクティブに更新されるまで、確実に例外信号が生成されないようにすることができるからである。
【0030】
ウォームアップ制限回路は、様々なやり方で構築できるが、一実例では、イベント履歴情報について行われた更新回数を示す更新カウント値を維持する更新カウンタ記憶部を備え、更新回数が限定閾値に達したときに制限信号をアサートするよう配置構成される。次いで、例外信号生成回路は、報告信号と制限信号との両方がアサートされたときに、例外信号をアサートするよう配置構成される。したがって、制限閾値を適切に指定することにより、どのようなアサートされた報告信号でも信用してアサートされた例外信号を生成する前に、確実に、履歴記憶部に対して所定の最小回数の更新が行われ得る。
【0031】
第1及び第2のイベント監視回路は、様々なやり方で構築することができる。1つの簡単な実施態様では、第1及び第2のイベントが発生するたびに第1及び第2の信号がアサートされるように、mとnとの両方を1にセットすることができる。しかし、代替の配置構成では、m及び/又はnは、1より大きい整数となるよう選択することができる。
【0032】
たとえば、1つの例示的な実施態様では、mは1より大きく、第1のイベント監視回路は、リセット・イベント以降に観測された第1のイベントの発生回数を示す第1のイベント・カウント値を維持する第1のイベント・カウンタ記憶部を備え、発生回数が値mに達したときに第1の信号をアサートし、その後リセット・イベントがトリガされると第1のイベント・カウント値を初期値にリセットするよう配置構成される。同様に、1つの例示的な配置構成では、nは1より大きく、第2のイベント監視回路は、リセット・イベント以降に観測された第2のイベントの発生回数を示す第2のイベント・カウント値を維持する第2のイベント・カウンタ記憶部を備え、発生回数が値nに達したときに第2の信号をアサートし、その後リセット・イベントがトリガされると第2のイベント・カウント値を初期値にリセットするよう配置構成される。
【0033】
より大きい値のm及びnを使用することにより、履歴記憶部内に維持される履歴情報の有効量を増やすことができる。というのは、履歴データの各アイテムを第1の信号又は第2の信号のいずれか一方のアサートに関連付けることができ、第1及び第2の信号は、第1又は第2のイベントそれぞれの、複数のある一定回数の発生が観察された後にしかアサートされないようになるからである。履歴分析回路に関連して維持される閾値情報は、次いで、第1及び第2のイベント監視回路で使用されるm及びnの値を、第1のイベントの発生と第2のイベントの発生との間の比率が所望の範囲外になるとき、確実に報告条件が検出されることになるように考慮するよう適合され得る。
【0034】
m及びnの値は、様々なやり方で維持することができるが、1つの例示的な実施態様では、装置は、m及びnの値の指示を維持するための、設定変更可能な閾値記憶部を備える。したがってこれにより、m及びnの値を、必要に応じて調整できる。
【0035】
次に、特定の実例について、図を参照して説明することにする。
【0036】
図1は、データ処理を実行するプロセッサ4と、プロセッサ4が処理するデータを格納するキャッシュ6と、メモリ8とを備えるデータ処理システム2を示す。システム2はまた、プロセッサ4が使用する仮想アドレスをメモリ8が使用する物理アドレスにマッピングするための、仮想アドレスから物理アドレスへの変換データを格納する変換ルックアサイド・バッファ(TLB:translation lookaside buffer)10と、分岐命令が起こるか起こらないかを予測する分岐予測器12とを備える。
図1に示す配置構成は実例であり、システム2は、
図1に示していない他の要素も備える可能性があること、又は実際のいくつかの例示的なシステムでは、
図1に示すすべての構成要素を備えるわけではない可能性があることが理解されよう。
【0037】
システム2は、データ処理システム2の処理性能を示す性能監視データを生成する、性能監視ユニット20を備える。性能監視ユニット20は、データ処理システム2の他の要素4、6、8、10、12からイベント信号22を受信し、各信号22は、対応するイベントの発生を示す。たとえば、処理サイクルの経過若しくは命令の実行を示すイベント信号22が、プロセッサ4から受信される場合があり、又はキャッシュ若しくはTLBへのアクセス若しくはミスを示すイベント信号が、キャッシュ6若しくはTLB10から受信される場合がある。メモリ・アクセスを示すメモリ8からの、又は分岐予測若しくは分岐予測誤りを示す分岐予測器12からのイベント信号22も、受信される場合がある。こうした実例は網羅的ではなく、性能監視ユニット20は、他の多くの種類のイベントを示す信号を受信することもできることが理解されよう。信号22に応答して、性能監視ユニット20は性能監視データを生成する。性能監視データは、システム2の性能を判断するために、後で取り込まれ分析され得る。
【0038】
システム2は、割込信号を生成する割込コントローラ30も備える。プロセッサ4は、割込信号に応答して、その現在の処理を中断し、割込信号に対応する割込処理ルーチンを実行する。様々な目的、たとえばプロセッサをトリガして特定のタスクを実行するか、又はエラーを通知するために、多くの様々な割込信号が生成され得る。ある種類の割込信号には、性能監視ユニット20が生成する性能監視データに応答して、割込コントローラ30が生成する性能監視割込信号がある。したがって、性能監視データが特定の性能状態を示す場合、割込コントローラ30は、プロセッサ4の処理を中断し、プロセッサ4をトリガして、検出された性能状態に関連付けられた所定の動作を実行できる。
【0039】
図2は、一実例による、
図1の性能監視ユニット(PMU:performance monitoring unit)20内に設けられた構成要素を示す構成図である。データ処理システム内の様々な構成要素からのイベントは、イベント・フィルタ/ルータ構成要素100で受信され、イベント・フィルタ/ルータ構成要素は、PMUが現在かかる各イベントを監視するよう設定されているかどうかを判断でき、次いで監視されている各イベントを、適切なイベント監視回路に送ることができる。この実例では、第1のイベントの発生及び第2のイベントの発生をそれぞれ監視するために、第1及び第2のイベント監視回路105、110が設けられる。具体的には、
図2に示す回路を使用して、第1のイベントの発生と第2のイベントの発生との比率を監視する。PMUは、これら2つのイベントだけを監視するよう配置構成されてもよく、又は別法として、システム内の別のイベントの発生を監視するための追加の回路(図示せず)を備えてもよい。
【0040】
第1のイベント監視回路105は、第1の信号をアサートして第1のイベントのm番目ごとにその発生を示すよう配置構成され、同様に、第2のイベント監視回路は、第2の信号をアサートして第2のイベントのn番目ごとにその発生を示すよう配置構成される。m及びnの値は固定されてもよく、又は別法として、m及びnの値を保持するための適切な記憶要素を設けることにより、設定変更可能であってもよい。さらに、mは、1以上の任意の整数値とすることができ、nは同様に、1以上の任意の整数値とすることができる。m又はnのいずれかが1に等しく設定されると、対応するイベント監視回路が、関連するイベントが発生するたびに信号をアサートするようになることが理解されよう。ただし、これ以降に論じる実例では、mとnとの両方が2以上の整数値であると想定されており、そのため第1及び第2の信号は、第1又は第2のイベントそれぞれの発生ごとにアサートされるのではなくて、第1のイベント又は第2のイベントそれぞれのある一定の倍数の発生時にしかアサートされない。これにより、システム内で維持できる履歴情報の量を増やすことができる。
【0041】
図2に示すように、第1及び第2のイベント監視回路105、110からのアサートされた第1及び第2の信号は、複数のエントリを具備する履歴記憶部125を備える履歴維持回路115に送られ、各エントリを使用して、履歴データのアイテムを格納することができる。本明細書で論じる実例では、履歴データの各アイテムは、第1の信号のアサート又は第2の信号のアサートを示す。
【0042】
履歴維持回路115内の更新回路120は、受信した第1及び第2の信号を分析し、履歴記憶部125の内容をいつ更新するかを決定するよう配置構成される。一実施態様では、更新回路は、第1の信号又は第2の信号がアサートされるたびに履歴記憶部を更新するよう配置構成され得る。しかし、
図3及び
図4を参照して後で論じるべき特定の例示的な実施態様では、第1及び第2の信号の両方が同時にアサートされるときに履歴記憶部の更新を省くことにより、装置の大幅な簡素化を達成できる。
【0043】
更新回路120は、履歴記憶部125に対して、履歴記憶部内に格納されるべき新しい履歴データの各アイテムを直接特定してもよく、又は別法として、更新回路120が、履歴記憶部の内容をいつ更新すべきかを特定するために、単にトリガ信号を履歴記憶部125に発行することによって、履歴記憶部が、第1の信号及び/又は第2の信号からその情報を直接導き出してもよい。
【0044】
履歴記憶部は、様々な形態をとることができる。履歴記憶部は、たとえば、第1及び第2の信号のアサートの新しいインスタンスが発生するにつれて、維持される履歴情報の総量が時間と共に増加するよう配置構成されてもよい。しかし、
図3及び
図4を参照してこれ以降で論じる特定の実施態様では、履歴記憶部は、所定の数のエントリを備え、その結果、どの特定の時点でも維持される履歴情報の量は一定である。これにより、履歴分析回路130によって実行される履歴情報の分析を簡略化することができる。1つの例示的な実施態様では、履歴記憶部125は、シフト・レジスタによって形成され、それにより、履歴データの新しい各アイテムがシフト・レジスタ内の先頭の位置に追加されると同時に、履歴情報の最も古いアイテムが捨てられる。
【0045】
更新回路120はまた、履歴分析回路130に分析トリガを発行して、履歴分析回路に履歴記憶部の現在の内容を分析させるよう配置構成される。分析トリガは、様々なやり方で生成することができるが、一実例では、分析トリガは、履歴記憶部が更新されるたびに履歴分析回路130に送信され、それにより、第1のイベント発生と第2のイベント発生との間の比率の連続監視が可能となり、比率に影響を与える可能性のある情報が生成されるたびに、その比率は確実に再評価され得る。
【0046】
履歴分析回路130は、履歴記憶部125のエントリに格納された値を参照して、いつ比率が許容範囲外になるかを判断するために使用される、閾値情報135へのアクセスを備える。一実施態様では、履歴情報のアイテムは、第1の信号のアサートを示す第1の値を有し、また第2の信号のアサートを示す第2の値を有する。閾値情報は様々な形態をとることができ、たとえば、第1の値及び第2の値に対して別々の閾値を指定できる。さらに、閾値情報は、小数形式又は整数形式で指定することができる。ただし、履歴記憶部内のエントリの総数が固定されている1つの特定のインスタンスでは、たとえば、比率が許容範囲を超えたことを示すと見なされる、履歴記憶部125のエントリ内の第1の値の発生回数を特定するために、閾値情報は、単にただ1つの閾値を使用するだけで得られる。
【0047】
履歴分析回路130は、分析トリガに応答して、比率が許容可能な範囲を超えたと判断すると、例外信号生成回路140への報告信号をアサートする。例外信号生成回路140は、かかる状況で割込コントローラ30に例外信号を直接アサートするよう配置構成されてもよく、又は別法として、アサートされた報告信号がある状態で例外信号をアサートするかどうかを決定するときに、1つ又は複数の他の信号を考慮することができる。
【0048】
たとえば、例外信号生成回路140は、他のイベント・カウントに関して閾値に達していることを示す、PMU内の他の構成要素からの信号を受信することもでき、その情報をアサートされた報告信号と組み合わせて使用して、例外信号をいつ生成するかを決定することができる。
【0049】
別法として、報告信号を直接使用して例外信号を生成することもできるが、例外信号の生成は、
図2の破線の構成要素で示す制限信号によって制限できる。具体的には、リセット・イベント以降に履歴記憶部125に対して行われた更新回数を特定するために使用される、更新回路120からの情報を受信する、ウォームアップ制限回路145が設けられ得る。この情報に基づいて、ウォームアップ制限回路145は、ある一定のウォームアップ期間が経過すると制限信号をアサートするよう配置構成され得る。ウォームアップ期間は、たとえば、履歴記憶部125に対して行われた更新回数と同等であり得る。かかる手法により、履歴維持回路によって受信された、アサートされた第1及び/又は第2の信号に基づいて、たとえば履歴記憶部に、ある一定の回数の更新、たとえば少なくとも、履歴記憶部内のすべてのエントリが確実に直接入力されるのに十分な回数の更新が行われるまで、制限信号が確実にアサートされないようにすることができる。したがって制限信号を使用すると、ウォームアップ期間が経過するまで、例外信号生成回路が、アサートされたどのような報告信号にも確実に応じて作動しないようになるので、履歴記憶部のエントリがどのような値に初期化されるかは問題ではない。
【0050】
1つの例示的な実施態様では、例外信号生成回路140は、アサートされた制限信号がある状態で報告信号がアサートされるときはいつでも、割込コントローラ30に例外信号をアサートし、次いで、上記で論じたように、検出された性能状態に関連する所定の動作をCPU4に実行させるために、割込コントローラにCPU4が実行する処理を中断させることができる。たとえば、かかる所定の動作により、アプリケーション実行時の挙動によりよく適合するように、たとえばプロセッサの周波数を上げることで、システムにシステム構成の動的な変更を加えることができる。別の実例として、本明細書で
図10及び
図11を参照して後から論じるように、割込コントローラによってトリガされるかかる所定の動作により、データ処理システム内の特定のプロセスを実行するために使用される様々なアルゴリズム間を切り替えるかどうかに関する評価が行われる場合がある。
【0051】
図3及び
図4は、
図2の装置の特定の例示的な実施態様を示す。PMUによって実行されるプロセスは、概念的に2つの段階に分けることができる。段階1を
図3に示し、段階2を
図4に示す。
【0052】
図3に示すように、システム200内からのイベントは、
図2のイベント・フィルタ/ルータ100の機能を実施する多重化構成要素205で受信され、その動作は構成ブロック230によって制御することができる。具体的には、構成ブロックにより、PMU内の特定のハードウェア・カウンタを、特定のイベントに対するカウントを維持するように構成でき、したがって構成ブロック230内を適切に構成することにより、イベント・カウンタ210は第1のイベントのカウンタとして設定でき、イベント・カウンタ215は第2のイベントのカウンタとして設定でき、多重化構成要素205は、第1のイベントを、発生するたびに第1のイベント・カウンタ210に送り、第2のイベントを、発生するたびに第2のイベント・カウンタ215に送るよう構成される。上記で論じたことから明らかなように、イベントは、システム内の様々な相異なる構成要素内で起きる作用に関して多種多様な形態をとることができ、本明細書で説明する技法では、どのイベントを追跡するかは重要ではない。しかし、本明細書に示す実例では、第2のイベントの発生に対する第1のイベントの発生の比率を監視することが望ましいと想定される。
【0053】
図2の第1のイベント監視回路105は、
図3の構成要素210、220、及び235によって実現され、一方第2のイベント監視回路110は、
図3の構成要素215、225、及び240によって実現される。具体的には、構成ブロック230を使用して、閾値記憶要素220、225内のm及びnの値をセットすることができる。上記で論じたように、これらの値は1にセットできるが、これ以降論じる実例では、mとnとの両方が2以上の整数であると想定することにする。
【0054】
図3に示すように、第1のイベント・カウンタ210及び閾値記憶部220の内容は、比較回路235に供給される。比較回路235が、第1のイベント・カウンタが値mに達したことを検出すると、第1の信号が経路237を経てアサートされ、次いで後続のクロック・サイクルで第1のイベント・カウンタが初期値、たとえば0にリセットされる。
【0055】
同様に、比較器240は、第2のイベント・カウンタ210内に保持されたカウント値と記憶要素225内の閾値nとを比較し、第2のイベント・カウンタがnに達したときに第2の信号をアサートし、その後、後続のクロック・サイクルで第2のイベント・カウンタがリセットされる。
【0056】
図5は、各イベント監視回路の動作を示す流れ図である。ステップ300で、イベントが発生するのを待機し、イベントの発生は、多重化ブロック205から関連するイベント・カウンタ210、215に伝搬される信号で示される。イベントの発生が検出されると、ステップ305でイベント・カウンタ要素210、215内のカウンタが進められ、その後、そのカウンタ値が比較構成要素235、240を使用して閾値と比較される。次いでステップ315で、その比較した結果として、閾値レベルに達したかどうかが判定される。
【0057】
閾値に達していない場合、プロセスはステップ300に戻り、イベントの別の発生を待つ。しかし閾値に達すると、関係する信号が段階2へアサートされ、その後、ステップ325でカウンタがリセットされ、次いでプロセスはステップ300に戻る。
【0058】
第1及び第2の信号237、239は、
図4に示す段階2に転送される。
図3及び
図4に示す実例では、信号の論理値0はアサート解除された状態を示し、論理値1はアサートされた状態を示すと想定される。しかし、これは設計上の選択の問題であり、
図4に示す構成要素を適切に調整することにより、アサート解除された状態及びアサートされた状態に関係付けられた値を反転することが可能であることが理解されよう。
【0059】
図4に示すように、履歴維持回路の更新回路は、この実例では、XORゲート250を使って形成され、シフト後書込構成要素255を制御するために使用される。したがって、第1の信号がアサートされるか、又は第2の信号がアサートされるときはいつでも、論理値1がシフト後書込構成要素255に対して発行され、履歴記憶部の更新をトリガすることが理解されよう。しかし、第1の信号も第2の信号もアサートされないとき、又は両方の信号が同時にアサートされる場合、論理値0がXORゲート250から出力され、更新は実行されない。この手法は、履歴記憶部を大幅に簡略化できるので、
図4の特有の実施態様で用いられている。具体的には、図示のように、履歴記憶部へは、信号237、239のうちの一方からしか直接供給することができず、図示の実例では、第1の信号237がこの目的で使用されている。第1の信号は、アサートされると論理値1になり、また第1の信号は、アサート解除されると論理値0になる。したがって、履歴記憶部の更新が第1の信号のアサートによってトリガされると、論理値1が履歴記憶部に書き込まれることになる。一方、更新動作が第2の信号のアサートによってトリガされると、上記で論じたXORゲート250の動作のため、第2の信号のアサートに基づく更新が第1の信号がアサート解除されている場合にしか発生しないので、論理値0が履歴記憶部に追加されることになる。
【0060】
履歴記憶部は、様々な形態をとることができるが、一実施態様では、pビットのシフト・レジスタ245であり、履歴データの新しい各アイテムがシフト・レジスタの先頭位置に挿入される。一方、履歴データの最も古いアイテムは同時に、シフト・レジスタの最後のエントリから捨てられる。
図4に示す実例のように、シフト・レジスタは直列入力並列出力型シフト・レジスタとして配置構成されており、その結果履歴分析回路に、履歴記憶部内に保持されている履歴情報を分析させるために分析トリガが使用されると、履歴データのp個のアイテムのすべてが、履歴分析回路に並列に供給され得る。
【0061】
履歴維持回路の動作を、
図6の流れ図を使って示す。ステップ350で、第1の信号がアサートされたかどうかが判定され、アサートされた場合、次いでステップ355で、第2の信号がアサートされていないことが確認される。これが当てはまる場合、プロセスはステップ365に進み、レジスタのシフト動作を実行して、履歴データの最も古いアイテムを履歴記憶部から外し、第1の信号の現在の値を履歴記憶部の先頭のエントリに書き込ませるために、履歴記憶部でのシフト及び書込み動作がトリガされる。その後、ステップ370で分析トリガがアサートされることにより、履歴分析回路は、履歴記憶部の現在の内容を分析する。
【0062】
図6に示すように、第1の信号がアサートされていない場合、ステップ360で、第2の信号がアサートされているかどうかが判定され、第2の信号がアサートされている場合、プロセスはやはりステップ365、370に進む。しかし、第1の信号がアサートされておらず第2の信号もアサートもされていない場合、何のアクションも行われず、プロセスは、次のクロック・サイクルでの第1及び第2の信号を分析するために、ステップ350に戻る。同様に、特定のクロック・サイクルで第1の信号がアサートされ第2の信号もアサートされる場合、何のアクションも行われず、そうではなくてプロセスは、ループしてステップ350に戻り、次のクロック・サイクルで信号を再評価する。
【0063】
図4に示すように、履歴分析回路には、分析トリガに応答してシフト・レジスタの各エントリの内容を読み取り、所定の値、この特定の実例では論理値1を格納するエントリの総数をカウントする、ポップカウント回路260が組み込まれている。上記で論じたように、論理値1を格納するエントリは、第1の信号のアサートに関係するはずであり、一方論理値0を格納するエントリは、第2の信号のアサートに関係するはずである。したがって、シフト・レジスタの内容の論理値1の数をカウントすることで、シフト・レジスタの内容によって維持される、履歴ウィンドウ内で第1の信号がアサートされた回数が示される。次いで、その値を構成ブロック230がセットできる第1の値の閾値レジスタ265が設けられ、比較回路270は、ポップカウント回路によって検出された値が、記憶要素265の第1の閾値以上であるかどうかを判定する。第1の閾値以上である場合、第2のイベントの発生に対する第1のイベントの発生の比率が許容範囲外であり、したがって報告信号が例外信号生成回路にアサートされる状況を示すと見なされる。
【0064】
記憶要素265内に格納された第1の値の閾値は、m及びnの値、ひいては第1及び第2のイベントそれぞれの発生に基づいて第1の信号及び第2の信号がアサートされる頻度を、考慮するようセットできることが理解されよう。
【0065】
図7は、
図4の履歴分析回路の動作を示す流れ図である。ステップ400で、分析トリガがアサートされたかどうかが判定される。上記で論じたように、一実施態様では、分析トリガは、履歴記憶部で更新が実行されるたびにアサートされ、したがってシフト後書込回路255の出力から直接得られ得る。
【0066】
分析トリガがアサートされると、履歴記憶部の各エントリの値がポップカウント回路260によって取得され、
図4の実施態様では、こうした値はシフト・レジスタの出力インタフェースから並列に取得される。次いでステップ410で、その値がイベント1に対応するエントリの数がカウントされ、その後ステップ415で、比較回路270を使用して、カウント値が第1の閾値に達したかどうかが判定される。達していない場合、これ以上のアクションは行われず、報告信号はアサート解除されたままであり、プロセスはステップ400に戻り、次の分析トリガの受信を待つ。しかし、カウント値が第1の値の閾値に達した場合、ステップ420で報告信号がアサートされる。
【0067】
上記で論じたように、例外信号生成回路は、報告信号がアサートされるときはいつでも、経路295を経て例外信号をアサートするように配置構成されてもよい。しかし、
図4に示す特定の実例では、例外信号生成回路の作用は、ウォームアップ制限回路から受信した制限信号によって制限され、ウォームアップ認定回路は、
図4に示すように本実例では、有効カウント・ブロック275、制限閾値記憶部280、及び比較回路285で構成される。
【0068】
図4に示すように、XORゲート250によって論理値1がアサートされるたびに、有効カウント・ブロック275内のカウントが進められる。したがって、有効カウント・ブロック275は、リセット・イベント以降に履歴記憶部に対して実行された更新回数のカウントを維持することが理解されよう。
【0069】
構成ブロック230の制御の下で、制限閾値を記憶要素280内に格納することができ、制限閾値と現在の有効カウント値との両方が比較回路285に送られる。比較回路285は、有効カウントが記憶要素280内に格納された制限閾値以上になると、制限信号だけをアサートするよう配置構成される。制限閾値を適切に選択することにより、ウォームアップ期間を指定でき、そのため、例外信号生成回路は、履歴記憶部に対してある一定回数の更新が行われるまで、報告信号の値に関わらず例外を発生させないようになることが、したがって理解されよう。たとえば、閾値は、制限信号がアサートされる前に、第1の信号又は第2の信号のアサートに応答して、履歴記憶部の少なくともすべてのエントリに書き込まれることが必要となるようにセットされ得る。
【0070】
図8は、ウォームアップ制限回路の動作を示す流れ図である。ステップ450で、有効カウント・ブロック275(本明細書では更新カウンタとも呼ばれる)は、リセット・トリガのときに初期化される。リセット・トリガは、様々な形態をとることができる。リセット・トリガは、たとえば、PMUのリセット時に発生し得るか、又は他の状況、さらにはPMU自体がリセットされない場合にも起きる可能性がある。
【0071】
更新カウンタのリセットに続いて、プロセスはステップ455に進み、上記で論じたように、
図4の実例ではXORゲート250の出力によって示されている、履歴記憶部の更新が行われているかどうかが判定される。履歴記憶部が更新されるときはいつでも、ステップ460で、更新カウンタ275が進められる。その後ステップ465で、更新カウンタ値が制限閾値と比較され、その後ステップ470で、その制限閾値に達したかどうかが判定される。
【0072】
閾値に達していない場合、プロセスはステップ455に戻り、履歴記憶部の次の更新を待つ。しかし閾値に達すると、制限信号は、ステップ475で、リセット・トリガが起こるまですべてのクロック・サイクルでアサートされ、次いでプロセスはステップ450に戻る。
【0073】
図9は、
図4の実例における例外信号生成回路の動作を示し、この構成要素は、
図4に示すようにANDゲート290によって実現されている。ステップ500で、報告信号がアサートされているかどうかが判定され、アサートされない場合は、何のアクションも行われない。しかし、報告信号がアサートされている場合、制限信号がアサートされているかどうかが判定され、アサートされていない場合は、やはり何のアクションも行われない。しかし、ステップ505で制限信号がアサートされていると判定された場合、例外信号生成回路はステップ510で、割込コントローラ30に対して例外信号をアサートする。
【0074】
以前の図を参照して説明した性能監視ユニットの配置構成は、多種多様な状況で使用され、様々な相異なるイベント間の比率を監視できることが理解されよう。PMUは、必ずしもイベントの単一の比率だけを監視することに限定されず、そうではなくて、回路構成要素を適切に複製することにより、PMUは、複数の比率を同時に監視するよう構築され得ることがさらに理解されよう。
【0075】
単に例示する実例として、第1のイベントと第2のイベントとの比率の監視によって取得された性能監視情報を使用して、テーブル結合動作に使用する適切なアルゴリズムを決定する活用事例を検討することとする。リレーショナル・データベースを使用するシステムなどのデータベース管理システムでは、様々な相異なる仕組みを使用して、たとえばソート・マージ結合アルゴリズム又はハッシュ結合アルゴリズムのいずれかを使用して、テーブル結合動作を実現できる。これらのアルゴリズムはどちらも、必ずしも他方のアルゴリズムより優れているわけではなく、各アルゴリズムの強み及び弱みは、常に先験的にわかっているわけではないいくつかの要因次第で変わる。したがって、これらのアルゴリズムの1つを、その性能を監視しながら試して、その実行が次善のものである場合は、したがって代替アルゴリズムへの切替えができることが望ましい場合がある。たとえば、ハッシュ結合アルゴリズムは、マイクロアーキテクチャで多くのロード・ストア・エイリアシング・イベントを発生させる可能性があるが、ソート・マージ結合アルゴリズムは、多くの分岐予測ミスを発生させる可能性がある。
【0076】
図10は、テーブル結合動作を模式的に示す。この実例では、2つのテーブル550、560が維持されている。テーブル550は、注文ごとの注文ID及び関連付けられた顧客IDに関する情報を維持する注文テーブルである。この特定の実例では、顧客ID33を持つ顧客が、注文ID1001及び1501を持つ2つの注文を出したことを示す。第2のテーブル560は顧客テーブルであり、各顧客IDに関連付けられた顧客を特定する。この実例では、ID33の顧客がXYZ Ltd.であることを示す。
【0077】
図10の実例では、両方のテーブルが、顧客IDに関する情報を提供することが理解されよう。リレーショナル・データベースの用語では、顧客テーブル内で提供される各顧客IDが一意になる、すなわち、XYZ Ltd.のエントリはただ1つしかないはずなので、テーブル560に関連付けられた顧客IDは主キーと呼ばれる。しかし、注文テーブル550内の顧客IDのフィールドは、別のテーブルの主キー(この実例では顧客ID)の複数のインスタンスが注文テーブル内で発生する可能性があるので、外部キーと呼ばれる。
【0078】
ブロック570によって模式的に示すように、内部テーブル結合動作は、XYZ Ltd.が出した注文を特定する、結果として得られる出力テーブル580を生成するために、ハッシュ結合アルゴリズム又はソート・マージ結合アルゴリズムのいずれかを使用して実行され得る。
【0079】
前述のように特定の状況で、可能性のあるどのアルゴリズムによって、より適切に実行されることになるかが先験的にわかっていない場合がある。したがって、システムは、アルゴリズムの1つが開始アルゴリズムとして選択されるが、PMU20が使用される場合に、性能の問題についてシステムの挙動を監視するよう設定することができる。かかる手法を、
図11の流れ図に示す。ここにおいて、初期化時に、ステップ600で、テーブル結合動作を実行するときに使用される、たとえばハッシュ結合アルゴリズムが選択され得る。前述のように、ハッシュ結合アルゴリズムは、多数のロード・ストア・エイリアシング・イベントを発生させる可能性がある。
【0080】
したがって、ステップ605で、PMUを、エイリアシングによるロード・リプレイ・イベントをイベント1として、また破棄された(retired)命令をイベント2として、監視するよう設定する。加えて、閾値は、破棄された命令に対するロードのリプレイの比率がある一定のレベルに達したときに、例外が生成されるようセットされる。これは、記憶要素220、225内の値m、n、及び記憶要素265内の第1の値の閾値の適切な設定によって達成することができる。上記で論じたように、ウォームアップ期間中に、確実に例外が生成されないようにするために、制限閾値も、記憶要素280内に指定することができる。
【0081】
したがって、単に非常に具体的な実例として、PMUの構成を担当するエンティティは、アルゴリズムの1つのループに100の命令が含まれ、他のストアとエイリアシングの問題を起こす可能性のある11のロード命令があることを知り得る。したがって、1つのループの繰返しを測定する粒度は、mが11に等しくセットされ、nが100に等しくセットされるよう選択され得る。したがって、第1の信号は、11回のエイリアシング・イベントごとにアサートされることになり、第2の信号は、100回の破棄された命令ごとにアサートされることになる。
【0082】
さらに、アルゴリズムの最初の繰返しは、ウォームアップのためにアルゴリズムの全体的な挙動を反映していない可能性があるため、アルゴリズムのある一定回数の繰返しが行われ、履歴記憶部内で対応する更新が行われるまで、例外トリガが確実に生成されない十分大きい値に制限閾値をセットできることが理解されよう。単に実例として、制限閾値を20にセットでき、したがって、どのような例外信号も生成され得る前に、履歴記憶部の少なくとも20回の更新が必要である。最後に、ユーザは、エイリアシングが原因で多少のロードのリプレイがある場合、それは重要ではないという見方をするかもしれないが、非常に頻繁に発生する場合は、システムに警告することを望んでいる。特定の実例として、8つのエントリを備えるシフト・レジスタでは、第1の値の閾値をこの場合3にセットでき、したがって、8ビットの履歴ビットのうち3ビット以上が1にセットされると報告信号がアサートされることを意味する。上記で論じた具体的な実例では、例外が発生する前に、500の破棄された命令のウィンドウ内で発生するエイリアシングが原因で、少なくとも33回のロードのリプレイが必要であることを意味する。
【0083】
上記の数は単に例示のために提示したものであり、値は、任意の特定の状況で必要に応じてセットできることが理解されよう。
【0084】
図11に戻ると、ステップ610で、例外がトリガされたかどうかが判定され、トリガされた場合、ステップ615で、割込コントローラ30は、CPU4で実行されるべきユーザ定義ハンドラをトリガし、そのユーザ定義ハンドラを実行することにより、テーブル結合動作のために、アルゴリズムをソート・マージ結合アルゴリズムに切り替えるか、又はそうではなくてハッシュ結合アルゴリズムを用いて続行するかを判断する。たとえば、ソート・マージ・アルゴリズムへの切替えが適切であると判断された場合、ハンドラは、ソート・マージ・アルゴリズムの使用に移行するために、その戻りアドレスを変更して、アプリケーションの制御の流れを向け直すよう選択することができる。別法として、すでに実行されている作業量に応じて、ハッシュ結合アルゴリズムを用いて続行することが適切であると決定することができる。
【0085】
ステップ615で行われた決定に基づいて、次いでステップ620で、例外からの復帰の後に、PMUによるイベント監視をリセットするか又は無効にするかを決定することもできる。たとえば、ステップ615で、プロセスがソート・マージ・アルゴリズムに切り替わった場合、イベント監視を無効にすることが適切であると判断でき、一方、ハッシュ結合アルゴリズムを用いて続行すると判断された場合、イベント監視の仕組みをリセットすることが適切であると判断することができる。
【0086】
上記の説明から、本明細書で説明する技法は、アプリケーションがリアルタイムでどのように機能しているかを検査し、必要な任意の修正措置を講じるための、軽量で設定変更可能な仕組みを提供することが理解されよう。説明した仕組みにより、対象となる比率を継続的に監視できる。さらに、アプリケーションは、比率が設定可能な閾値を超えたときだけ通知され、比率を超えたかどうかを判断するために実行されるべきどのような不要な計算も回避する。したがって、説明した仕組みは、データ処理システム内でリアルタイムに性能監視/シグナリングを実行するための、特に効率的で効果的な仕組みを提供する。
【0087】
本出願では、「...するよう構成される」という用語は、装置の要素が、定義された動作を実行できる構成を備えることを意味するように使用される。これに関連して、「構成」とは、ハードウェア又はソフトウェアの相互接続の配置構成又は態様を意味する。たとえば、装置は、定義された動作を提供する専用のハードウェアを備えてもよく、又はプロセッサ若しくは他の処理デバイスを、機能を実行するようにプログラムしてもよい。「するよう構成される」は、定義された動作を提供するために、装置要素をいかなる形であれ変更する必要があることを示唆するものではない。
【0088】
本発明の例示的な実施例を、添付図面を参照して本明細書で詳細に説明してきたが、本発明はそれらの正確な実施例に限定されるものではなく、当業者によってその中に、添付の特許請求の範囲によって定義される本発明の範囲及び精神から逸脱することなく、様々な変更、追加、及び修正を行うことができることを理解されたい。たとえば、従属請求項の特徴の様々な組合せが、本発明の範囲から逸脱することなく、独立請求項の特徴を用いて得られる可能性がある。