(57)【特許請求の範囲】
【請求項１】
複数のトランザクションを処理する共有リソースと、
前記共有リソースへ、前記複数のトランザクションを発行する少なくとも１つのマスタデバイスと、を含むデータ処理装置であって、
前記少なくとも１つのマスタデバイスは、前記複数のトランザクションの複数の発行元を提供し、前記複数のトランザクションのそれぞれは、前記共有リソースを使用するために、関連付けられた優先レベルを有し、
前記データ処理装置は、
前記共有リソースに発行された複数のトランザクションの中から前記共有リソースに転送すべきトランザクションを選択するために使用される、アービトレーションポリシーを適用するアービトレーション回路を含み、
前記アービトレーションポリシーは、前記複数のトランザクションのそれぞれに関連付けられた前記優先レベルに基づいて、前記共有リソースに転送すべき前記トランザクションを選択し、
前記データ処理装置は、
前記複数の発行元のうちの少なくとも１つに関連付けられる適応優先回路を含み、
前記適応優先回路は、前記複数のマスタデバイスおよび共有リソースを相互接続するアドレスパスおよびデータパスを監視して、前記適応優先回路に関連付けられた少なくとも１つの発行元から以前に発行されたトランザクションのスループットを示すスループット指示データを取得し、前記適応優先回路は、前記関連付けられた発行元からの新しいトランザクション毎に、前記優先レベルを、前記スループット指示データによって示される前記スループットから、新しいトランザクションのそれぞれに対して指定された目標スループットが実現できるようにする複数の既定の優先レベルの中から最下位の優先レベルに設定するように構成され、
前記適応優先回路は、
前記スループット指示データから、進行中のトランザクション数を記録するための指示値を決定するアクティブトランザクションカウント回路と、
前記優先レベルを決定するために使用される累積値を維持するアキュムレータ回路と、を含み、
前記アキュムレータ回路は、進行中のトランザクション毎に固定整数の量だけ前記累積値を増加させ、
前記適応優先回路は、進行中のトランザクションが終了ポイントに達したことを、前記スループット指示データから検知するように構成され、それに応答して、前記アキュムレータ回路は、前記スループット指示データおよび前記指定された目標スループットに基づいて、前記累積値を減少させるように構成される、データ処理装置。
【請求項２】
前記アキュムレータ回路は、既定のポイントが検知される度に前記累積値を減少させるように構成される、請求項１に記載のデータ処理装置。
【請求項３】
前記適応優先回路は、前記指定された目標スループットを示す目標スループット指示が提供され、既定のポイントが検知される度に、前記アキュムレータ回路は、前記目標スループット指示に依存する量だけ、前記累積値を減少させるように構成される、請求項１に記載のデータ処理装置。
【請求項４】
既定のポイントは、トランザクション終了ポイントである、請求項１に記載のデータ処理装置。
【請求項５】
クロックサイクル毎に、前記アクティブトランザクションカウント回路は、進行中の少なくとも１つのトランザクションが存在することを示し、前記アキュムレータ回路は、前記累積値を増加させるように構成される、請求項１に記載のデータ処理装置。
【請求項６】
前記目標スループット指示は、トランザクション毎の目標平均待ち時間の指示を提供し、
クロックサイクル毎に、前記アクティブトランザクションカウント回路は、少なくとも１つの進行中のトランザクションが存在することを示し、前記アキュムレータ回路は、前記アクティブトランザクションカウント回路によって示されるように、進行中のトランザクション数に依存する量だけ、前記累積値を増加させるように構成され、
前記既定のポイントが検知される度に、前記アキュムレータ回路は、トランザクション指示毎の前記目標平均待ち時間に依存する量だけ、前記累積値を減少させるように構成される、請求項３に記載のデータ処理装置。
【請求項７】
前記目標スループット指示は、前記既定のポイントの発生の間の目標平均待ち時間の指示を提供し、
クロックサイクル毎に、前記アクティブトランザクションカウント回路は、少なくとも１つの進行中のトランザクションが存在することを示し、前記アキュムレータ回路は、固定整数の量だけ、前記累積値を増加させるように構成され、
前記既定のポイントが検知される度に、前記アキュムレータ回路は、前記既定のポイントの発生の間の前記目標平均待ち時間に依存する量だけ、前記累積値を減少させるように構成される、請求項３に記載のデータ処理装置。
【請求項８】
前記スループット指示データは、前記以前に発行されたトランザクションのトランザクション開始時間からトランザクション終了時間までの待ち時間を示す待ち時間指示データを含み、前記指定された目標スループットは、前記トランザクションの開始から終了までの指定された目標待ち時間である、請求項１に記載のデータ処理装置。
【請求項９】
前記以前に発行されたトランザクション毎に、前記適応優先回路は、第１および第２のタイミング指示に基づいて、前記待ち時間指示データを生成し、
前記第１のタイミング指示は前記トランザクション開始時間であるとともに、前記第２のタイミング指示は前記トランザクション終了時間である、請求項８に記載のデータ処理装置。
【請求項１０】
前記アクティブトランザクションカウント回路は、進行中のトランザクション数の記録を維持するために、前記トランザクションの開始および前記トランザクションの終了に基づいて、進行中のトランザクション数の前記指示値を増加または減少させる、請求項９に記載のデータ処理装置。
【請求項１１】
前記適応優先回路は、新しいトランザクション毎に、前記アキュムレータ回路によって現在維持される前記累積値に依存して、そのトランザクションの前記優先レベルを設定する優先値決定回路をさらに含む、請求項１に記載のデータ処理装置。
【請求項１２】
前記優先値決定回路は、優先レベル制御値の変化が、新しいトランザクション毎に設定された前記優先レベルに変化を生じさせる程度を制御するループゲイン回路を含む、請求項１１に記載のデータ処理装置。
【請求項１３】
前記アキュムレータ回路は、優先レベル制御値に、前記関連付けられた発行元によって観察される超過スループットの計測値を捕捉させるために、経時的に、前記監視されたスループット指示データが、前記スループットが前記指定された目標スループットを超過することを示す場合に、前記優先レベル制御値を、前記複数の既定の優先レベルの中から最下位の優先レベルに関連付けられた値未満にデクリメントさせるように構成され、
前記優先値決定回路は、経時的に、前記監視されたスループット指示データが、前記スループットが前記指定された目標スループットを超過することを示す場合に、前記優先レベルを、前記複数の既定の優先レベルの中で、前記最下位の優先レベルに設定する飽和回路を含む、請求項１１に記載のデータ処理装置。
【請求項１４】
前記関連付けられた発行元は、個別の処理ブロックを実行し、各処理ブロックは、指定された時間内で完了することが必要であり、
前記適応優先回路は、前記指定された目標スループットを示す目標スループット指示が提供され、前記目標スループット指示は、実現される場合に、各処理ブロックを、前記指定された時間内に実行できるようにするトランザクション毎に、平均目標スループットを識別する、請求項１に記載のデータ処理装置。
【請求項１５】
前記関連付けられた発行元は、画像処理動作を実行し、各個別の処理ブロックは、画像データのフレームに関連する、請求項１４に記載のデータ処理装置。
【請求項１６】
前記アキュムレータ回路は、各個別の処理ブロックの間でリセットされる、請求項１４に記載のデータ処理装置。
【請求項１７】
前記少なくとも１つのマスタデバイスは、複数のマスタデバイスを含み、各マスタデバイスは、前記トランザクションのうちの少なくとも１つの発行元を提供する、請求項１に記載のデータ処理装置。
【請求項１８】
前記複数のマスタデバイスのうちの少なくとも１つは、バッチ処理動作を実行するバッチ処理デバイスであり、前記適応優先回路は、前記バッチ処理デバイスに関連付けられる、請求項１７に記載のデータ処理装置。
【請求項１９】
前記バッチ処理デバイスは画像処理装置であり、前記複数のマスタデバイスのうち別のマスタデバイスは中央処理装置であり、前記中央処理装置は、これに関連付けられた前記適応優先回路を有しない、請求項１８に記載のデータ処理装置。
【請求項２０】
前記複数の発行元は単一マスタデバイス上で実行される複数の処理スレッドによって形成され、前記適応優先回路は、前記処理スレッドのうちの少なくとも１つに関連付けられる、請求項１に記載のデータ処理装置。
【請求項２１】
前記単一マスタデバイスは画像処理装置であり、前記複数の処理スレッドは、少なくとも節点処理スレッドおよび画素処理スレッドを含む、請求項２０に記載のデータ処理装置。
【請求項２２】
前記複数の発行元は、前記少なくとも１つのマスタデバイスで実行される異なる種類のトランザクションによって形成される、請求項１に記載のデータ処理装置。
【請求項２３】
前記異なる種類のトランザクションは、書き込みトランザクションおよび読み出しトランザクションを含む、請求項２２に記載のデータ処理装置。
【請求項２４】
前記以前に発行されたトランザクション毎に、前記適応優先回路は、第１および第２のタイミング指示に基づいて待ち時間指示データを生成し、
前記第１および第２のタイミング指示をトリガする条件は、プログラム可能であり、前記第１のタイミング指示は、前記トランザクションの開始時間であるとともに、前記第２のタイミング指示は、前記トランザクションの終了時間である、請求項１に記載のデータ処理装置。
【請求項２５】
前記適応優先回路は、前記指定された目標スループットを示す目標スループット指示が提供され、前記既定のポイントが検知される度に、前記アキュムレータ回路は、前記目標スループット指示に依存する量だけ、前記累積値を減少させるように構成され、
前記目標スループット指示はプログラム可能である、請求項１に記載のデータ処理装置。
【請求項２６】
前記共有リソースはメモリ制御装置である、請求項１に記載のデータ処理装置。
【請求項２７】
前記データ処理装置内に前記アービトレーション回路の複数のインスタンスが提供されている、請求項１に記載のデータ処理装置。
【請求項２８】
前記アービトレーション回路のうちの１つのインスタンスは、前記共有リソース内に提供されている、請求項２７に記載のデータ処理装置。
【請求項２９】
請求項１に記載のデータ処理装置におけるトランザクションの発行元に関連して使用される適応優先回路であって、
前記適応優先回路は、前記関連付けられた発行元から以前に発行されたトランザクションに関して、スループット指示データを監視し、かつ、指定された目標スループットが実現できるようにする複数の既定の優先レベルの中から、前記最下位の優先レベルを設定するように、前記関連付けられた発行元からの新しいトランザクション毎に、前記スループット指示データに依存して、前記複数の既定の優先レベルのうちの１つに、そのトランザクションの関連付けられた優先レベルを設定するように構成される、適応優先回路。
【請求項３０】
データ処理装置内のトランザクションのための優先レベルを設定する方法であって、
前記データ処理装置は、
複数のトランザクションを処理する共有リソースと、
前記共有リソースへ前記複数のトランザクションを発行する少なくとも１つのマスタデバイスと、を含み
前記少なくとも１つのマスタデバイスは、前記複数のトランザクションの複数の発行元を提供し、かつ、前記複数のトランザクションのそれぞれは前記共有リソースを使用するために、関連付けられた優先レベルを有し、
前記データ処理装置は、前記共有リソースに発行される複数のトランザクションの中から、前記共有リソースに転送すべきトランザクションを選択するために使用されるアービトレーションポリシーを適用するアービトレーション回路を含み、
前記アービトレーションポリシーは、前記複数のトランザクションのそれぞれに関連付けられた前記優先レベルに基づいて、前記共有リソースに転送すべき前記トランザクションを選択し、
前記方法は、
前記複数の発行元のうちの少なくとも１つについて、
前記複数のマスタデバイスおよび共有リソースを相互接続するアドレスパスおよびデータパスを監視して、その発行元から以前に発行されたトランザクションのスループットを示すスループット指示データを取得するステップを含み、前記スループット指示データは進行中のトランザクション数を示し、
前記方法は、
前記優先レベルと関連付けられた累積値を維持するステップと、を含み、前記累積値は、進行中のトランザクション毎に固定整数値の量だけ増加され、
前記方法は、
進行中のトランザクションが既定のポイントに達したことを、前記スループット指示データから検知するとともに、それに応答して、前記累積値を減少させるステップと、
その発行元からの新しいトランザクション毎に、前記優先レベルを、前記トランザクションのそれぞれに対して指定された目標スループットが実現できるようにする複数の既定の優先レベルの中から最下位の優先レベルに設定するステップと、を含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トランザクションのために優先レベルを設定するデータ処理装置および方法に関する。
【背景技術】
【０００２】
システム内のマスタデバイスによって発行されたトランザクションを処理するための、１つ以上のリソースを提供することが、データ処理システムにおいて公知である。こうしたリソースの一実施例には、システム内のマスタデバイスによって、これに発行されたトランザクションに応答して、動作を実行するために提供される１つ以上のスレーブデバイスがある。スレーブデバイスは種々の形態を採ることができ、一実施例には、データ処理システム内の種々のマスタデバイスによって発行される、読み出しおよび書き込みトランザクションに基づいて、関連付けられたメモリに関し、読み出しおよび書き込みアクセスを処理するために使用される、メモリコントローラがある。
【０００３】
処理トランザクションで提供されるリソースは、多くの場合、複数のトランザクションソース間で共有される。例えば、システムオンチップ（ＳｏＣ）システムでは、システムリソースを共有するための複数のマスタデバイスで公知である。こうした共有リソースが存在する場合には必ず、典型的には、マスタデバイスおよび共有リソースを相互接続するパスに沿って、１つ以上のアービトレーションポイントが存在し、こうしたアービトレーションポイントは、同じ共有リソースに発行された複数の未完了のトランザクションの間で調整を行うために、アービトレーションポリシーを適用するためのアービトレーション回路を組み込む。したがって、各マスタに割り当てられる共有システムリソースの割合は、アービトレーションポリシーによって決定される。また、次に、個々のマスタのパフォーマンスは、これが得るシステムリソースのシェアに依存する。
【０００４】
アービトレーションポリシーには多数の公知の種類が存在する。例えば、固定アービトレーションポリシーを適用してもよいが、こうしたアプローチでは、任意の特定のマスタが取得するシステムリソースのシェアは、経時的に変化する、他方のマスタデバイスのアクティビティに依存する。このため、こうした固定アービトレーションポリシーは、システムの他のマスタのアクティビティに依存する特定のマスタのパフォーマンスを提供する。特定の期間で実行する特定のタスクを有するマスタデバイス（例えば、フレーム期間内に画像データに相当するフレームを処理する必要がある画像処理装置）では、固定レベルのシステムリソースが必要である。しかしながら、固定アービトレーションポリシーでは、このレベルのシステムリソースを固定することは可能ではないため、全体的なシステム利点がない超過システムリソースを受信するようにマスタを構成し、こうして、他のマスタからこのリソースを奪うか、代わりに、マスタが不十分なシステムリソースを受信し、限られた時間で特定のタスクを完了させることが不可能になる。多くのシステムにおいて、後者の状況は受け入れがたいものであり、そのため、アービトレーションポリシーは、最悪な条件におけるシステムリソースへ十分なアクセスを提供するように設定されることが多く、これは、通常の動作条件下で、いくつかのマスタデバイスが、必要とするよりも大きいシステムリソースへのアクセスを受信するため、他のマスタから、そのパフォーマンスを向上させるための機会を奪っていることを意味する。
【０００５】
重み付けされたラウンドロビンアービトレーションポリシー等のいくつかの公知のアービトレーションポリシーは、これらが全て、全動作条件において最小限の帯域幅を保証されるように、マスタの間で使用可能な帯域幅をパーティション化する。しかしながら、こうしたポリシーは、その最小限の帯域幅を実現するために典型的に必要な、共有システムリソースのより大きなシェアを、マスタに割り当てなければならず、これは、これらの他のマスタのパフォーマンスの対応する低下と共に、システムの他のマスタの待ち時間を増加させる効果をもたらす。
【０００６】
非特許文献１の記事は、相互接続による単一共有目標へのアクセスを求めるいくつかのイニシエータの間を調整するための、アービトレーション機構について記載している。記載されたソリューションは、目標のアービトレーションを２つの部分、つまり、異なるイニシエータから目標へと要求を配信するための相互接続の中心のアービトレーション、および異なるイニシエータの帯域幅割り当てを施行するための、相互接続のエッジのアービトレーションへ分割する。（仮想チャネルとして記事中にも記載されている）目標へつながるスレッドを、３つのクオリティオブサービスレベル、つまり、優先スレッド、帯域幅スレッドおよびベストエフォートスレッドのうちの１つに割り当てることができる。優先スレッドは、短い待ち時間サービスに最適化されており、帯域幅スレッドは固定ジッター境界内のスループット保証を受信し、ベストエフォートスレッドは、帯域幅が他方のスレッドによって余っているとき、およびその場合に、サービスを受信する。優先スレッドおよび帯域幅スレッドは、それに関連付けられた、特定の絶対的な目標の帯域幅割り当てを有する。優先スレッドが、その割り当てよりも低いレートのサービスを要求する限り、これは絶対的な優先を受信する。同様に、帯域幅スレッドが、その割り当てよりも低いレートのサービスを要求する限り、これは、ベストエフォートスレッドの前にサービスされる。しかしながら、その割り当てよりも大きいレートで、優先スレッドまたは帯域幅スレッドのいずれかがサービスを要求する場合、これらはベストエフォートスレッドとなるように格下げされる。
【０００７】
このため、こうした機構によって、その帯域幅割り当てよりも大きいレートでのサービスの要求を開始する場合、より高い優先スレッドは格下げされる。しかしながら、こうしたアプローチを採用する場合、特定のスレッドに割り当てられるクオリティオブサービスレベルは、使用されているスキームにより、これらのスレッドがその所望のタスクを実現できるようにするために絶対的に必要であるよりも高くなり、そのため、中央処理装置（ＣＰＵ）等のシステム内の他のマスタのパフォーマンス可能性は低下する。
【０００８】
したがって、データ処理装置内の複数のソースから発行されたトランザクションによって、共有リソースへのアクセスを調整するための改善された技術を提供することが望ましい。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】Ｗ．Ｗｅｂｅｒら、「Ａ  Ｑｕａｌｉｔｙ−ｏｆ−Ｓｅｒｖｉｃｅ  Ｍｅｃｈａｎｉｓｍ  ｆｏｒ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ  Ｎｅｔｗｏｒｋｓ  ｉｎ  Ｓｙｓｔｅｍ−ｏｎ−Ｃｈｉｐｓ」、Ｓｏｎｉｃｓ，Ｉｎｃ，１５３０−１５９１／０５  ＄２０．００  （著作権）２００５  ＩＥＥＥ
【発明の概要】
【課題を解決するための手段】
【００１０】
第１の態様から概観すると、本発明は、トランザクションを処理するための共有リソースと、前記共有リソースへ、前記トランザクションを発行するための少なくとも１つのマスタデバイスであって、この少なくとも１つのマスタデバイスは、前記トランザクションの複数のソースを提供し、前記トランザクションのそれぞれは、これに関連付けられた優先レベルを有する、少なくとも１つのマスタデバイスと、前記共有リソースに発行された複数のトランザクションの中から、あるトランザクションを選択するために、アービトレーションポリシーを適用するためのアービトレーション回路であって、このアービトレーションポリシーは、選択を実行する際に、前記複数のトランザクションのそれぞれに関連付けられた優先レベルを使用する、アービトレーション回路と、前記複数のソースのうちの少なくとも１つに関連付けられる適応優先回路であって、この適応優先回路は、関連付けられたソースから以前に発行されたトランザクションに関して、スループット指示データを監視し、かつ、指定された目標スループットが実現できるようにする複数の既定の優先レベルの中から、最下位の優先レベルを設定するように、関連付けられたソースからの新しいトランザクション毎に、前記スループット指示データに依存して、前記複数の既定の優先レベルのうちの１つに、優先レベルを設定するように構成される、適応優先回路と、を含むデータ処理装置を提供する。
【００１１】
本発明によると、適応優先回路は少なくとも１つのソースに関連付けられ、そのソースから以前に発行されたトランザクションのスループット指示データを受信する。その時間に利用可能なそのスループット指示データに基づき、関連付けられたソースから新しいトランザクションが発行され、かつ、適応優先回路は、実現される指定された目標スループットを考慮して、その新しいトランザクションの優先レベルを設定するように構成される。特に、適応優先回路は、複数の既定の優先レベルのうちの１つに優先レベルを設定でき、新しいトランザクション毎に、指定された目標スループットが実現できるようにする複数の既定の優先レベルの中から、そのトランザクションの関連付けられた優先レベルを、最下位の優先レベルに設定する。
【００１２】
新しいトランザクションに設定される優先レベルは、以前に発行されたトランザクションで観察されたスループット指示データに依存するため、本発明の適応優先回路は、次に、フィードバックループの形態を使用して動作し、新しいトランザクションに設定される優先レベルは、次に、適応優先回路によって後で観察されるスループットに影響し、これが、次に、以降の新しいトランザクションに設定される優先レベルに影響する。
【００１３】
ソースからそれぞれの新しいトランザクションに割り当てられる優先を制御するために、このフィードバック機構を使用することで、適応優先回路は、データ処理装置内の他のトランザクションのソースのアクティビティとは独立して、指定された目標スループットを実現するために必要な、最下位の優先レベルを発見することができる。適応優先回路に関連付けられたソースによって発行されるトランザクションは、そのソースの指定された目標スループットに適合するために必要な最下位の優先レベルに設定されるので、また、適応優先回路に関連付けられたソースは、その指定された目標スループットに適合するために必要な共有リソースの最小限のシェアのみを占めるので、システム内の他のソースのパフォーマンスを改善できる。
【００１４】
スループット指示データは、種々の形態を採ることができる。しかしながら、一実施形態では、スループット指示データは、以前に発行されたトランザクションに関連付けられた待ち時間を示す待ち時間指示データを含み、指定された目標スループットは、指定された目標待ち時間である。多くの場合、待ち時間の値の範囲で、待ち時間の値が減少すると、スレーブデバイスの帯域幅、ひいてはスループットが増加し、同様に、待ち時間が増加すると、帯域幅、ひいてはスループットが減少するように、トランザクションのソースは、待ち時間特性への帯域幅を有する。ソースの所望のスループットを考慮すると、待ち時間特性に対する帯域幅を参照して、目標待ち時間を決定することが可能である。適応優先回路は、次に、以前に発行されたトランザクションで観察された待ち時間指示データが、指定された目標待ち時間とどのように比較されるかに依存して、新しいトランザクションのそれぞれの優先レベルを変化できる。
【００１５】
特に、以前に発行されたトランザクションの観察された待ち時間が、指定された目標待ち時間よりも平均して高い場合、適応優先回路は、新しいトランザクションに設定された優先レベルを増加できる。これは、そのソースによって観察された待ち時間を減少させる傾向があり、このことにより、経時的に、適応優先回路によって受信される待ち時間指示データで観察された平均待ち時間の減少をもたらす。同様に、以前のトランザクションで観察された待ち時間が、指定された目標待ち時間よりも平均して短い場合、適応優先回路は、新しいトランザクションのそれぞれの優先レベルを低下させ、これは、経時的に、ソースによって観察された待ち時間を増加させる影響があり、このため、適応優先回路によって受信される待ち時間指示データで観察される平均待ち時間が増加する。
【００１６】
こうしたアプローチによって、指定された目標待ち時間は、システムの他のトラフィックの変化とは独立して、適応優先回路が、関連付けられたソースの最小限の処理レートを確実にするために必要な最下位の優先レベルに、トランザクションの優先レベルを設定することを確実にする。
【００１７】
適応優先回路は、種々の形態を採ることができる。しかしながら、一実施形態では、適応優先回路は、スループット指示データから、進行中のトランザクション数の指示を決定するためのアクティブトランザクションカウント回路と、優先レベル制御値を維持するためのアキュムレータ回路であって、このアキュムレータ回路は、進行中のトランザクション数の指示に依存して、優先レベル制御値を増加させる、アキュムレータ回路とを含む。このため、こうした実施形態では、優先レベル制御値はアキュムレータ回路によって維持され、アキュムレータ回路が初期化されたため、以前に発行された全てのトランザクションで累積されるスループット指示データに依存する値を取る。
【００１８】
一実施形態では、優先レベル制御値が、チェックされることなく、経時的に増加しないようにするため、優先レベル制御値を定期的に低下させるための機構も配置されている。特に、一実施形態では、適応優先回路は、進行中のトランザクションが既定のポイントに達すると、スループット指示データから検知するように構成され、前記既定のポイントが検知される度に、アキュムレータ回路は、優先レベル制御値を減少させるように構成される。既定のポイントは、種々の形態を採ることができるが、一実施形態では、既定のポイントはトランザクション終了ポイントである。トランザクション終了ポイントは、種々の方法で構成可能であるが、一実施形態において、読み出しトランザクションでは、その読み出しトランザクションの第１の読み出しデータがソースに戻るポイントであり、または、書き込みトランザクションでは、最後の書き込みデータ項目がソースから出力される時間になる。
【００１９】
各既定のポイントの検知時にアキュムレータ回路が減少する量は、インプリメンテーションに依存して変化する可能性がある。しかしながら、一実施形態では、適応優先回路には、前記指定された目標スループットを示す目標スループット指示が提供され、前記既定のポイントが検知される度に、アキュムレータ回路は、前記目標スループット指示に依存する量だけ、優先レベル制御値が減少するように構成される。こうしたアプローチによって、定常状態に達すると、これにより、以前に発行されたトランザクションで観察されたスループット指示データが、指定された目標スループットと一致する場合、検知される各既定のポイントの間で優先レベル制御値が増加する量は、各既定のポイントの検知の際に優先レベル制御値に適用される減少する量だけ、相殺される。しかしながら、スループット指示データが、目標スループットからの偏移を開始しているスループットを示す場合、これは、偏移の方向に依存して、優先レベル制御値を、経時的に増加または経時的に減少させる。
【００２０】
アキュムレータ回路が、進行中のトランザクション数の指示に依存して、優先レベル制御値を増加させる頻度は、インプリメンテーションに依存して変化してもよい。しかしながら、一実施形態では、クロックサイクル毎に、アクティブトランザクションカウント回路は、進行中の少なくとも１つのトランザクションが存在することを示すが、アキュムレータ回路は、優先レベル制御値を増加させるように構成される。
【００２１】
特定の一実施形態では、目標スループット指示は、トランザクション毎の目標平均待ち時間の指示を提供し、クロックサイクル毎に、アクティブトランザクションカウント回路は、進行中の少なくとも１つのトランザクションが存在することを示すが、アキュムレータ回路は、アクティブトランザクションカウント回路によって示されるように、進行中のトランザクション数に依存する量だけ、優先レベル制御値を増加するように構成される。さらに、前記既定のポイントが検知される度に、アキュムレータ回路は、トランザクション指示毎の前記目標平均待ち時間に依存する量だけ、優先レベル制御値を減少させるように構成される。こうしたアプローチは、一定の待ち時間を目標とする効果がある。
【００２２】
代替の実施形態では、目標スループット指示は、前記既定のポイントの発生の間の目標平均待ち時間の指示を提供し、クロックサイクル毎に、アクティブトランザクションカウント回路は、進行中の少なくとも１つのトランザクションが存在することを示すが、アキュムレータ回路は、固定整数の量だけ優先レベル制御値を増加させるように構成される。さらに、前記既定のポイントが検知される度に、アキュムレータ回路は、前記既定のポイントの発生の間の前記目標平均待ち時間に依存する量だけ、優先レベル制御値を減少させるように構成される。こうしたアプローチは、一定の待ち時間ではなく、一定の処理レートを目標とする効果がある。
【００２３】
スループット指示データが待ち時間指示データを含む実施形態では、前記以前に発行されたトランザクション毎に、適応優先回路は、第１および第２のタイミング指示を、前記待ち時間指示データとして受信する。第１および第２のタイミング指示は、種々の形態を採ることができるが、一実施形態では、前記第１のタイミング指示はトランザクション開始指示であり、前記第２のタイミング指示はトランザクション終了指示である。第１および第２のタイミング指示をトリガする条件は固定してもよいが、一実施形態では、これはプログラム可能にできる。
【００２４】
一実施形態では、アクティブトランザクションカウント回路は、進行中のトランザクション数の記録を維持するために、トランザクション開始指示およびトランザクション終了指示を使用する。トランザクション開始およびトランザクション終了指示の使用は、進行中のトランザクション数の記録を保持するための簡潔かつ効果的な機構を提供する。
【００２５】
一実施形態では、適応優先回路は、新しいトランザクション毎に、現在、アキュムレータ回路によって維持されている優先レベル制御値に依存して、そのトランザクションの優先レベルを設定する優先値決定回路をさらに含む。こうした実施形態では、優先レベル制御値は、新しいトランザクションで使用される新しい優先レベルを直接提供するのではなく、代わりに、優先値決定回路が、優先レベルを生成するために、優先レベル制御値における１つ以上の処理動作を提供する。
【００２６】
例えば、一実施形態では、優先値決定回路は、優先レベル制御値の変化が、新しいトランザクション毎に設定される優先レベルの変化を生じさせる程度を制御するためのループゲイン回路を含む。特定の一実施形態では、ループゲイン回路は、典型的には、安定した動作を確実にするために十分低くしながら、優先レベル制御値の変化に対する合理的な応答を確実にするために、十分高い値に設定されるループゲイン値によって、優先レベル制御値を乗算する。
【００２７】
一実施形態では、優先値決定論理は、ループゲイン回路によって出力される値の範囲を、使用可能な複数の既定の優先レベルと同等の範囲内に制限することを確実にするために、飽和回路も含む。
【００２８】
一実施形態では、経時的に、前記監視されたスループット指示データが、スループットが指定された目標スループットを超過することを示す場合に、優先レベル制御値に、関連付けられたソースによって観察される超過スループットの計測値を捕捉させるように、アキュムレータ回路の動作が、優先レベル制御値を、前記複数の既定の優先レベルの中から最下位の優先レベルに関連付けられた値未満にデクリメントさせ、優先値決定回路は、こうしたインスタンスにおいて、優先レベルが、前記複数の既定の優先レベルの中で、最下位の優先レベルに設定されることを確実とするために、飽和回路を含む。このため、こうした実施形態では、飽和回路は、優先レベルが複数の既定の優先レベル内の最下位の優先レベル未満に減少しないことを確実にするが、アキュムレータによって維持される優先レベル制御値は、さらに減少することが可能になっている。これは、アキュムレータが、実際に、関連付けられたソースに供給される超過帯域幅のレベルを格納できるようにするため、こうしたアプローチは有利である可能性がある。その後、利用可能な帯域幅がより小さい場合に、アキュムレータは、新しいトランザクションに割り当てられる優先レベルの増加を開始するレベルに、優先レベル制御値が増加するまでにはある程度の時間がかかり、これにより、実際に、以前に与えられた超過帯域幅の分を返して、システム内の他のトランザクションソースからのより良いパフォーマンスを可能にする。
【００２９】
適応優先回路が関連付けられたソースは、種々の形態を採ることができる。しかしながら、一実施形態では、関連付けられたソースは個別の処理ブロックを実行し、各処理ブロックは指定された時間内に完了する必要があり、適応優先回路には、前記指定された目標スループットを示す目標スループット指示が提供され、目標スループット指示は、実現された場合に、各処理ブロックが、指定された時間内に実行できる、トランザクション毎の平均目標スループットを識別する。例えば、画像プロセッサ、動画プロセッサ、音声プロセッサ等、個別の処理ブロックを実行するソースには、種々の実施例が存在する。別の実施例として、ダイレクトメモリアクセス（ＤＭＡ）エンジンも、こうした個別の処理ブロックを実行してもよい。
【００３０】
一実施形態では、アキュムレータ回路の動作は、新しい処理ブロックが開始する場合に、優先レベル制御値の開始値が、先行する処理ブロックが終了した場合に得られる最後の優先レベル制御値によって与えられるように、ある処理ブロックから別の処理ブロックへ実行できるようにされる。しかしながら、代替の実施形態では、アキュムレータ回路は、各個別の処理ブロックの間でリセットされるように構成されてもよい。典型的には、個別の処理ブロックの間には、超過帯域幅分を返せる能力がないため、少なくとも、アキュムレータ回路によって維持される優先レベル制御値が、関連付けられたソースによって観察された超過スループットの計測値を捕捉できるようにされた実施形態において、こうしたアプローチが取られる。
【００３１】
アキュムレータ回路のリセットを実行できる多数の方法が存在する。例えば、一実施形態では、アキュムレータ回路は、関連付けられたソースによって生成されるリセット信号を受信してもよい。例えば、関連付けられたソースが画像処理装置である実施形態を考慮すると、画像処理装置は、各フレームの完了時において中断信号を生成するように構成されてもよく、その中断信号は、アキュムレータ回路へのリセット信号を生成するために使用されてもよい。代替の実施形態では、データ処理装置内で実行する、例えばデータ処理装置内のＣＰＵで実行する、ソフトウェアが、こうしたリセット信号を生成するために構成されてもよい。
【００３２】
一実施形態では、少なくとも１つのマスタデバイスは、複数のマスタデバイスを含み、各マスタデバイスは、前記トランザクションのうちの少なくとも１つのソースを提供する。こうした一実施形態では、前記複数のマスタデバイスのうちの少なくとも１つは、バッチ処理動作を実行するバッチ処理デバイスであり、適応優先回路は、前記バッチ処理デバイスに関連付けられる。
【００３３】
バッチ処理デバイスは、例えば、画像処理装置、動画処理装置、音声処理装置等の、種々の形態を採ってもよい。一実施形態では、装置内のさらなるマスタデバイスは中央処理装置であり、中央処理装置は、これに関連付けられた適応優先回路を有しない。代わりに、多くの場合、中央処理装置はこれに関連付けられた固定優先レベルを有し、優先レベルは、バッチ処理デバイスに通常関連付けられた優先レベルより高い。しかしながら、バッチ処理デバイスに関連する適応優先回路の利用により、バッチ処理デバイスによって発行されたトランザクションに関連付けられた優先レベルは、指定された目標スループットが実現されることを確実にするために必要なため、および必要な場合、増加することができる。しかしながら、適応優先回路が動作する方法のために、バッチ処理デバイスの優先レベルのこうした増加は、絶対的に必要な場合に保証されるのみであり、したがって、こうしたアプローチは、中央処理装置等のシステムにおける他のマスタデバイスのパフォーマンスを最大化する。
【００３４】
一実施形態では、複数のソースは、単一マスタデバイス上で実行する複数の処理スレッドによって形成され、適応優先回路は、前記処理スレッドのうちの少なくとも１つに関連付けられる。一実施形態では、こうしたマスタデバイスは画像処理装置にしてもよく、複数の処理スレッドは、少なくとも節点処理スレッドおよび画素処理スレッドを含んでもよい。
【００３５】
一実施形態では、複数のソースは、少なくとも１つのマスタデバイスで実行する異なる種類のトランザクションによって形成されてもよく、こうした異なる種類のトランザクションの実施例には、書き込みトランザクションおよび読み出しトランザクションがある。
【００３６】
一実施形態では、目標スループット指示はプログラム可能であり、このため、例えば、関連付けられたソースのアクティビティに依存して、目標スループット指示を変化させることができる。関連付けられたソースが画像処理動作を実行する特定の実施例として、フレーム毎に必要とされる処理量は変化してもよく、このため、画像プロセッサが、以前のフレームよりもかなり大きい処理動作を必要とするフレームの処理を開始する場合、これらの計算論的に集約的なフレームが処理される間、目標スループットは、画像処理装置のさらなる帯域幅を得るために増加することができる。
【００３７】
共有リソースは、種々の形態を採ることができるが、一実施形態では、共有リソースは、メモリコントローラの形態を採ってもよい。
【００３８】
アービトレーション回路は、データ処理装置内の種々の位置で提供されてもよい。例えば、多くの場合、マスタデバイスは、相互接続構造によって、１つ以上の共有リソースに結合され、多くの場合、複数のアービトレーションポイントが、相互接続構造内に提供される。したがって、こうしたアービトレーション回路は、優先レベルベースのアービトレーションを、これらの複数のポイントで実行できるようにするために、相互接続内の複数のアービトレーションポイントのそれぞれで、複製してもよい。
【００３９】
あるいは、またはさらに、共有リソースは、それ自体でアービトレーションポイントを含んでもよく、したがって、共有リソース内にアービトレーション回路が提供されてもよい。例えば、共有リソースがメモリコントローラである実施形態を考慮すると、メモリコントローラは、多くの場合、未完了の読み出しおよび書き込みアクセスが格納される行列を含む。優先レベルベースのアービトレーション機構は、行列に格納された複数のトランザクションのそれぞれに関連付けられた優先レベルを考慮して、メモリに転送するための次のトランザクションを選択するために、その行列に関連して採用してもよい。
【００４０】
実際に、いくつかの実施形態では、相互接続内のアービトレーション回路のインスタンス、および１つ以上の共有リソース内のアービトレーション回路の１つ以上のインスタンスが存在し、こうした実施形態では、同じアービトレーションポリシーを、相互接続内およびこれらの共有リソース内の両方に適用可能である。
【００４１】
第２の態様から概観すると、本発明は、本発明の第１の態様に従う、データ処理装置におけるトランザクションのソースに関連して使用するための適応優先回路であって、この適応優先回路は、関連付けられたソースから以前に発行されたトランザクションに関して、スループット指示データを監視し、かつ、指定された目標スループットが実現できるようにする複数の既定の優先レベルの中から、最下位の優先レベルを設定するように、関連付けられたソースからの新しいトランザクション毎に、前記スループット指示データに依存して、複数の既定の優先レベルのうちの１つに、そのトランザクションの関連付けられた優先レベルを設定するように構成される、適応優先回路を提供する。
【００４２】
第３の態様から概観すると、本発明は、データ処理装置内のトランザクションのための優先レベルを設定する方法であって、このデータ処理装置は、トランザクションを処理するための共有リソースと、前記共有リソースへ前記トランザクションを発行するための少なくとも１つのマスタデバイスであって、この少なくとも１つのマスタデバイスは、前記トランザクションの複数のソースを提供し、かつ、前記トランザクションのそれぞれは、これに関連付けられた優先レベルを有する、少なくとも１つのマスタデバイスと、前記共有リソースに発行される複数のトランザクションの中から、トランザクションを選択するためにアービトレーションポリシーを適用するためのアービトレーション回路であって、前記アービトレーションポリシーは、選択を実行する際に、前記複数のトランザクションのそれぞれに関連付けられた優先レベルを使用する、アービトレーション回路と、を含み、前記方法は、前記複数のソースのうちの少なくとも１つについて、スループット指示データに関して、そのソースから以前に発行されたトランザクションを監視するステップと、指定された目標スループットが実現できるようにする複数の既定の優先レベルの中から最下位の優先レベルを設定するように、そのソースからの新しいトランザクション毎に、前記スループット指示データに依存して、前記複数の既定の優先レベルのうちの１つに優先レベルを設定するステップと、を含む、方法を提供する。
【００４３】
第４の態様から概観すると、本発明は、トランザクションを処理するための共有リソース手段と、前記共有リソース手段へ前記トランザクションを発行するための少なくとも１つのマスタ手段であって、この少なくとも１つのマスタ手段は前記トランザクションの複数のソースを提供するためのものであり、前記トランザクションのそれぞれは、これに関連付けられた優先レベルを有する、少なくとも１つのマスタ手段と、前記共有リソース手段に発行された複数のトランザクションの中から、トランザクションを選択するように、アービトレーションポリシーを適用するためのアービトレーション手段であって、このアービトレーションポリシーは、選択を実行する際に、前記複数のトランザクションのそれぞれに関連付けられた優先レベルを使用する、アービトレーション手段と、前記複数のソースのうちの少なくとも１つに関連付けられた適応優先手段であって、この適応優先手段は、関連付けられたソースから以前に発行されたトランザクションに関して、スループット指示データを監視するものであり、また、前記適応優先手段は、指定された目標スループットが実現できるようにする複数の既定の優先レベルの中から、最下位の優先レベルを設定するように、関連付けられたソースからの新しいトランザクション毎に、前記スループット指示データに依存して、前記複数の既定の優先レベルのうちの１つに、優先レベルを設定するためのものである、適応優先手段と、を含むデータ処理装置を提供する。
【００４４】
添付の図面に関連して一読される、例示的な実施形態の以下の詳細な説明から、この発明の上記のおよび他の目的、特徴および利点が明らかとなろう。
【図面の簡単な説明】
【００４５】
【図１】一実施形態に従う、データ処理装置のブロック図である。
【図２】一実施形態に従う、データ処理装置のブロック図である
【図３】一実施形態に従う、複数の適応優先回路が、単一マスタデバイスに関連付けてどのように使用され得るかを示すブロック図である。
【図４】代替の実施形態に従う、複数の適応優先回路が、単一マスタデバイスに関連付けてどのように使用され得るかを示すブロック図である。
【図５】一実施形態に従う、適応優先回路内に提供されるコンポーネントを示す図である。
【図６】一実施形態に従う、図５の適応優先回路の動作を示す流れ図である。
【図７Ａ】画像処理装置等のマスタデバイスによって観察され得る待ち時間特性に対する帯域幅を示すグラフである。
【図７Ｂ】優先レベルがどのように異なる種類のマスタに割り当てられるかを示し、さらに、実施形態の適応優先回路が、必要な場合に、画像処理装置等のバッチ処理デバイスの優先レベルを上げるためにどのように使用され得るかを示す図である。
【図８】図５の適応優先回路のアキュムレータによって維持される累積値が、適応優先回路の動作時にどのように上下し得るかを示す図である。
【図９Ａ】マスタで使用可能な帯域幅が、実施形態の適応優先回路を使用する場合に、バッチ動作の処理中にどのように変化し得るかを示す図である。
【図９Ｂ】マスタで使用可能な帯域幅が、実施形態の適応優先回路を使用する場合に、バッチ動作の処理中にどのように変化し得るかを示す図である。
【図１０Ａ】一実施形態に従い、累積値が、ある期間、マイナスにできるようにしながら、適応優先回路によって設定される優先レベルが、どのように累積値によって追跡し得るかを示す図である。
【図１０Ｂ】一実施形態に従い、累積値が、ある期間、マイナスにできるようにしながら、適応優先回路によって設定される優先レベルが、どのように累積値によって追跡し得るかを示す図である。
【発明を実施するための形態】
【００４６】
図１は、一実施形態に従う、データ処理装置のブロック図である。図示された実施例において、複数のマスタデバイス１０、２０、３０は、相互接続構造４０によって、複数のスレーブデバイス５０、６０、７０に結合される。トランザクションが種々のマスタによって発行される場合、優先レベルは、これらのトランザクションに関連付けられ、これらの優先レベルは、装置内の種々のポイントにおける複数のアサートされたトランザクションの間のアービトレーションを実行する場合に使用される。例えば、相互接続４０は、典型的にはアービトレーション４５の複数のポイントを含み、各ポイントにおいて、アービトレーションポリシーは、優先レベルベースのアービトレーションを実行するために適用可能である。さらに、スレーブデバイスのうちの１つ以上は、それ自体にアービトレーションポイントを含んでもよい。例えば、スレーブデバイス３  ７０がメモリコントローラの形態を採る場合、こうしたメモリコントローラは、典型的には、未完了のトランザクションを配置し得る行列７５を含み、行列内の各トランザクションは、その関連付けられた優先レベルの記録をとるように構成される。アービタ８０は、行列のトランザクションエントリから、次にメモリに発行されるべきトランザクションを決定するために使用でき、こうしたアービタは、メモリに発行されるその次のトランザクションを決定するために、優先レベルベースのアービトレーションを適用する。こうした優先ベースのアービトレーションをスレーブデバイス内で実行するには、優先レベル情報を、相互接続４０からスレーブデバイス７０へ伝播させる必要がある。しかしながら、任意の内部アービトレーションを実行しない任意のスレーブデバイスでは、優先レベル情報は、これらのスレーブデバイスに伝播させる必要はなく、したがって、図１の実施例において、スレーブデバイス５０および６０の両方は、優先レベル情報を相互接続から伝播させる必要はない。
【００４７】
本発明の実施形態に従い、マスタデバイスのうちの１つ以上に、そのマスタによって発行された各トランザクションに関連付けられる優先レベルを決定するための適応優先回路が提供され得る。このため、図１に示される実施例において、マスタデバイス２０および３０の両方は、これらのマスタによって発行された各トランザクションの優先レベルを設定するために、それぞれ、関連付けられた適応優先回路２５および３５を有する。本発明の実施形態の適応優先回路は、種々の異なるマスタデバイスに関連付けて使用可能であるが、一実施形態では、バッチ動作を実行するマスタデバイスと共に使用される。一実施例には、個別の処理ブロックが実行され、各処理ブロックは指定された時間内に完了する必要のある、画像プロセッサ、動画プロセッサまたは音声プロセッサがある。例えば、画像プロセッサを考慮すると、画像データに相当するフレームは、各フレーム期間内で処理する必要がある。図１の実施例では、マスタ３０は、画像プロセッサ、動画プロセッサまたは音声プロセッサであると想定される。
【００４８】
別の実施例として、適応優先回路は、割り当てられた期間内に、データのブロックを転送する必要があり得るダイレクトメモリアクセス（ＤＭＡ）エンジン２０と共に、使用してもよい。
【００４９】
しかしながら、適応優先回路は、典型的には、装置内の各マスタには関連付けられず、このため、例えば、優先をそのトランザクションに割り当てるために、他のスキームを採用する他のマスタが存在してもよい。一実施例に、典型的にはこれに関連付けられた固定優先を有する、中央処理装置（ＣＰＵ）がある。別の実施例として、ディスプレイへの出力を生じさせるためにストリーム処理を実行するＬＣＤコントローラがある。ＣＰＵの場合と同様に、ＬＣＤコントローラは、典型的には固定優先と考えられており、多くの場合、ＣＰＵおよびＬＣＤコントローラの両方は、画像プロセッサ、ＤＭＡエンジン等のバッチ処理デバイスに関連付けられたデフォルト優先よりも高い優先を有する。
【００５０】
しかしながら、本発明の実施形態の適応優先回路のさらなる記載から明らかなように、適応優先回路は、そのソースで指定されたスループットを目標とするために、その関連付けられたソースから新しいトランザクションのそれぞれに割り当てられる優先レベルを制御するためのフィードバック機構を採用し、このフィードバック機構によって、システム内の他のソースのアクティビティとは独立して、スループットの目的を実現するために必要な最下位の優先レベルを発見する。必要な場合、これは、マスタ２０およびマスタ３０等のマスタデバイスの優先レベルを、マスタ１０に関連付けられた優先と等しいまたはこれより大きいレベルに上げることができることを意味するが、この状態は、そのマスタデバイス２０、３０のスループットの目的を実現できるようにするために必要な最小限の時間、維持されるにすぎない。
【００５１】
こうしたアプローチによって、マスタ２０またはマスタ３０等のマスタデバイスは、その指定された目標スループットに適合するために必要な共有リソース（スレーブデバイス５０、６０、７０等）の最小限のシェアを占めるにすぎないことを確実にし、また、これにより、マスタ１０等の他のトランザクションソースのパフォーマンスの改善を可能にする。
【００５２】
さらに、こうしたアプローチは、システム内のアービトレーションポイント全てが、同じアービトレーションポリシーを適用できるようにする。このため、相互接続内のアービトレーションの各ポイントは、優先レベルベースのアービトレーションを適用でき、同様に、スレーブ７０等の、関連するスレーブデバイス内のアービトレーションのローカルポイントは、そのデフォルトのアービトレーション機構と同じ優先レベルベースのアービトレーションポリシーを適用できる。このため、どのトランザクションが行列７５から検索されるかを決定するアービタ８０は、相互接続内で使用されるものとして、同じアービトレーションポリシーを使用できる。しかしながら、例えば、メモリ内の異なるチップ等の利用を最大限にするために、これが相互作用するメモリの構造および機能を考慮して、メモリコントローラは、そのスループットを増加させるためにさらなる機構を採用することもできることが理解される。こうした最適化は、トランザクションの優先レベルに基づくデフォルトのアービトレーションポリシーの最上位にレイヤできる。
【００５３】
図２は、ＣＰＵ１００および画像処理装置（ＧＰＵ）１１０がメモリコントローラ１３５へのアクセスを共有し、相互接続１２０を介してそのメモリコントローラに接続する、特定の実施例のインプリメンテーションを示す。ＣＰＵまたはＧＰＵによって発行された各トランザクションは、ＣＰＵまたはＧＰＵおよびメモリコントローラの間のデータの１つ以上のブロックの転送と共に、目標スレーブデバイス、この実施例ではメモリコントローラ１３５への、ＣＰＵまたはＧＰＵからのアドレスの転送を含み、このデータ転送の方向は、トランザクションが書き込みトランザクションであるか読み出しトランザクションであるかに依存する。図２の概略図において、双方向データパスと共に、一方向アドレスパスが示されている。しかしながら、アドレスパスおよびデータパスの実際の構造はインプリメンテーションによって変わり、特に、トランザクションプロトコルは、相互接続によって採用されることが理解される。例えば、ＡＲＭ  Ｌｉｍｉｔｅｄ，Ｃａｍｂｒｉｄｇｅ，Ｕｎｉｔｅｄ  Ｋｉｎｇｄｏｍによって開発されたＡＸＩ（Ａｄｖａｎｃｅｄ  ｅＸｔｅｎｓｉｂｌｅ  Ｉｎｔｅｒｆａｃｅ）プロトコル等の、分割トランザクションプロトコルが使用される場合、複数の別々のアドレスパスおよび複数の別々のデータパスが存在してもよく、特に、別々のパスは、読み出しトランザクションおよび書き込みトランザクションのために提供される。
【００５４】
図２の実施例に示されるように、ＣＰＵ１００は、そのトランザクションの固定優先を使用し、その優先レベルの指示は、トランザクションを開始する各アドレスと共に発行される。しかしながら、ＧＰＵ１１０では、固定優先は使用されず、代わりに、発行された各トランザクションの優先レベルをアサートするために適応優先回路１１５が使用される。特に、後で詳述するように、適応優先回路１１５は、ＧＰＵ１１０からの以前に発行されたトランザクションのスループット指示データを得るために、アドレスおよびデータパスを監視し、そのスループット指示データに基づいて、ＧＰＵ１１０から発行される新しいトランザクション毎に、アサートする適切な優先レベルを決定する。
【００５５】
相互接続１２０内において、典型的には、アービトレーションの複数のポイントが存在し、アービトレーションの各ポイントは、ＣＰＵおよびＧＰＵによって設定される優先レベルに依存して、アービトレーションポリシーを適用する。１つのアービトレーションポイント、すなわち、メモリコントローラ１３５に転送されるアドレスおよび優先信号を生成するために使用される最後のアービトレーションポイントが、図２に概略的に示される。図２に示されるように、マルチプレクサ１３０は、ＣＰＵおよびＧＰＵからの各トランザクションのアドレスおよび優先情報を受信し、関連するトランザクションのＣＰＵおよびＧＰＵからの関連付けられた優先情報をその入力として受信する、優先レベルベースのアービタ１２５の出力によって制御される。典型的には、ＣＰＵの優先は、ＧＰＵの優先よりも高くなり、このため、ＣＰＵおよびＧＰＵの両方からの同時のアサートされたトランザクションが存在する場合、優先レベルベースのアービタ１２５は、メモリコントローラへ転送されるトランザクションとして、ＣＰＵを選択する。しかしながら、ＧＰＵのスループット目的に適合するために必要なため、および、必要な場合、適応優先回路１１５は、優先レベルベースのアービタ１２５が、ＣＰＵおよびＧＰＵがメモリコントローラ１３５へのトランザクションを同時にアサートする場合に、ＣＰＵトランザクションの前にＧＰＵトランザクションを出力するポイントにおいて、ＣＰＵよりも高い優先となるポイントへ、ＧＰＵのトランザクションの優先を格上げしてもよい。
【００５６】
相互接続１２０からメモリコントローラ１３５へ転送される各トランザクションは、行列１４０に配置され、メモリコントローラが、メモリにトランザクションを発行する度に、優先レベルベースのアービタ１４５は、行列の未完了のトランザクションのどれが最上位の優先を有するかを決定するために、行列１４０の現在のコンテンツを分析する。次に、最上位の優先を有するトランザクションが、メモリに転送され、特に、関連する読み出しまたは書き込み動作が実行されるように、トランザクションのアドレスが、メモリに転送される。データの処理は、通常どおりに行われる。
【００５７】
一実施形態では、単一マスタデバイスは、トランザクションの複数の異なるソースを提供してもよく、こうした各ソースに別々の適応優先回路を提供してもよい。例えば、図３は、ＧＰＵ１１０によって発行された読み出しおよび書き込みトランザクションのために、別々の適応優先回路が提供されている一実施形態を示す。この実施形態では、分割トランザクションプロトコルが使用され、ＧＰＵ１１０および相互接続の間の通信は、５つの別々の通信チャネル、すなわち、書き込みトランザクションのアドレス転送を搬送するための書き込みアドレス（ＷＡ）チャネル、書き込みトランザクションのデータ転送を搬送するための書き込みデータ（Ｗ）チャネル、書き込みトランザクションの終了時に、マスタへトランザクションステータス情報を返すための書き込み応答（Ｂ）チャネル（例えば、トランザクションが完全に完了したかどうか、またはエラーが発生したかどうか等を示す）、読み出しトランザクションのアドレス伝送を搬送するための読み出しアドレス（ＲＡ）チャネル、および読み出しトランザクションのデータ伝送を搬送するための読み出しデータ（Ｒ）チャネルを含む。
【００５８】
図３に示されるように、適応書き込み優先回路１６０は、新しい書き込みトランザクション毎に書き込み優先レベルを作成するために構成でき、その書き込み優先レベルは、目標スレーブデバイスへのパスに沿って、アービトレーションポイントのいずれかで使用するための書き込みアドレスと共に受け渡しされる。以前に発行された書き込みトランザクションで、適応書き込み優先回路によって観察されたスループット指示データは、図３で図示されるように、書き込みアドレスおよび書き込みデータチャネルから取得することができる。特に、一実施形態では、スループット指示データは、トランザクション開始指示およびトランザクション終了指示を提供する待ち時間指示データの形態を採ることができる。トランザクション開始および終了指示は種々の方法で決定可能であるが、特定の一実施形態では、ＧＰＵ１１０からの書き込みアドレスの発行は、トランザクションの開始として処理され、ＧＰＵ１１０からの最後の書き込みデータ値の発行は、終了指示として処理される。代替の実施形態では、トランザクション終了指示は、書き込み応答チャネル上を通過する信号から導くことができ、特定のトランザクションの書き込み応答データは、典型的には、書き込みデータチャネル上の最後の書き込みデータ値の転送後しばらくして生じる。
【００５９】
図３にも示されるように、適応読み出し優先回路１６５は、読み出しアドレスおよび読み出しデータチャネルから以前に発行された読み出しトランザクションのそのスループット指示データを取ることができる。スループット指示データが、トランザクション開始およびトランザクション終了の情報を提供する実施形態において、トランザクション開始の情報は、トランザクション毎に発行された読み出しアドレスから決定でき、トランザクション終了の情報は、一実施形態では、トランザクション毎にマスタデバイスに返される第１の読み出しデータ値の発生によって決定される。
【００６０】
図３に、書き込みトランザクション情報および読み出しトランザクション情報の別々のチャネルを有する分割トランザクションプロトコルを参照する、書き込みトランザクションおよび読み出しトランザクションの別々の適応優先回路の利用が図示されるが、こうした別々のチャネルを提供しなければならないという要件は存在しない。実際に、任意のシステムにおいて、読み出しトランザクションおよび書き込みトランザクションのために別々の適応優先回路を提供でき、また、そのシステムが、読み出しおよび書き込みトランザクションのために、共有アドレスバスおよび／または共有データバスを採用する場合、各適応優先回路は、読み出しトランザクションまたは書き込みトランザクションに関する情報の存在を識別するために、これらのアドレスおよびデータバス上の情報に関連して、通過する関連付けられた制御信号を使用し、これによって、適応書き込み優先回路が、書き込みトランザクションに関連して動作し、適応読み出し優先回路が、読み出しトランザクションに関連して動作することを可能にする。
【００６１】
一実施形態では、単一マスタデバイスは、そのマスタデバイス上で実行する複数の処理スレッドの形態で、トランザクションの複数のソースを提供してもよく、適応優先回路は、これらの処理スレッド毎に別々に提供されてもよい。図４は、ＧＰＵ１１０が、節点処理動作を実行する節点プロセッサ２００、および、画素処理動作を実行する多数の画素プロセッサ２０５、２１０を組み込む、こうした一実施例を示す。これらの種々の処理スレッドはそれぞれ、これに関連付けられたＩＤ値を有し、回路２１５は、種々の処理スレッドから出力パスへ発行された信号を多重化し、適切な処理スレッドへ転送するために、ＧＰＵによって受信した信号を逆多重化するために提供される。送信トラフィックの場合、回路２１５は、出力パスに発行される前に、データへ適切なＩＤ値を加算し、受信データの場合は、処理スレッドのどれが受信データの送信先になるかを決定するために、関連付けられたＩＤ値を使用する。例示として、関連付けられたＩＤ信号パスと共に一方向アドレスパスが示され、関連付け双方向ＩＤパスと共に双方向データパスが示されるが、これらのパスはそれぞれ、実施形態に依存する、特に、使用されるトランザクションプロトコルに依存する通信の１つ以上の別々のチャネルによって、形成されてもよいことが理解される。
【００６２】
図４に示されるように、別々の処理スレッド２００、２０５、２１０のそれぞれに、別々の適応優先回路２２５、２３０、２３５が提供され、アドレスおよびデータ情報を搬送するこれらの別々の適応優先回路およびバスの間のインターフェースを取るために、ＩＤベースのルーティング回路２２０が使用される。特に、各アドレスまたはデータ項目を伴うＩＤ値を使用することにより、ＩＤベースのルーティング回路２２０は、適応優先回路が、アドレスおよびデータ項目から導かれたスループット指示データを受信するべきであると決定する場合がある。一実施形態では、ＩＤベースのルーティング回路２２０は、関連付けられたＩＤに関する全てのアドレスおよびデータ項目に、関連する適応優先回路を通知することができ、または、代わりに、各トランザクションの開始および終了指示を検知するために必要とされる処理を内部的に実行し、関連する適応優先回路へ、これらの開始および終了指示を転送するだけでもよい。新しいトランザクション毎に、関連する適応優先回路は、関連するアドレス信号を有する側帯波信号として発行するためのＩＤベースのルーティング回路２２０を介してルーティングされる優先値を生成する。
【００６３】
ＧＰＵ１１０は、この実施形態では、少なくとも１つのアービトレーションポイント（メモリコントローラ内で提供されるもの等）を含むスレーブデバイスに接続されてもよく、または、より典型的には、１つ以上のアービトレーションポイントを組み込む相互接続構造を介して、こうしたスレーブデバイスに接続されてもよい。後者の状況では、図１を参照して上述されたように、１つ以上のアービトレーションポイントを有する相互接続に加えて、スレーブデバイスは、アービトレーションポイントを独立して含んでもよい。
【００６４】
図５は、本発明の一実施形態に従う、適応優先回路内に提供されたコンポーネントを概略的に示す図である。この実施例において、調整３００を必要とするバスマスタは、システム相互接続３１０への接続パス３０５上のトランザクションを開始し、この実施例では、接続パス３０５がＡＲＭのＡＸＩプロトコルを採用すると想定される。しかしながら、前述のように、本発明の実施形態の技術は任意の通信プロトコルに関連して採用できるため、ＡＸＩプロトコルを使用しなければならないという要件は存在しない。
【００６５】
適応優先回路３１５は、以前に発行されたトランザクションのスループット指示データを取得し、新しいトランザクションが開始する時間を検知し、その新しいトランザクションの優先レベルを生成するために、接続パス３０５上で生じるアクティビティの情報を収集するために構成される。
【００６６】
特に、トランザクション開始回路３２０は、マスタ３００からの要求としてトランザクション開始を検知するが、トランザクション終了回路３２５は、トランザクション完了として検知する。一実施形態では、読み出しトランザクションでは、トランザクション終了回路３２５は、第１の読み出しデータがマスタ３００に戻ると、トランザクション終了を検知し、一方で、書き込みトランザクションでは、トランザクション終了回路３２５は、最後の書き込みデータ項目がバスマスタ３００から伝送されると、トランザクション終了を検知する。
【００６７】
アクティブトランザクションカウントコンポーネント３３０は、バスマスタ３００から進行中のトランザクション数を計算するために、これらの２つのイベントを使用する。各クロックサイクルでは、未処理のトランザクションの数のこの指示は、加算器３５０を介してアキュムレータ３５５へとルーティングされ、ここで、未処理のトランザクションの数と等しい数が、その現在のアキュムレータ値に加算される。
【００６８】
さらに、トランザクション毎の目標平均待ち時間を識別する目標待ち時間値３４０が、目標待ち時間値ストレージ３４０内に格納される。トランザクションが終了する度に、乗算器３３５および変換器３４５は、加算器３５０と共に、目標待ち時間値を累積値から減算する。
【００６９】
アキュムレータ３５５からの出力は、乗算器３６０において、ループゲインを選択するために、ループゲインストレージ３６５内に格納されるプログラムされたループゲイン値で乗算され、プログラムされた範囲からの値が範囲の限界に飽和される場合に、生成された値は、飽和ブロック３７０を通じて受け渡しされる。このブロックの出力は、次に、マスタからの以降のトランザクションの優先レベルを促進するために使用される。
【００７０】
回路３２０および３２５によって観察された各トランザクション開始およびトランザクション終了の指示の間の時間は、各トランザクションの待ち時間を識別することが理解される。以前に発行されたトランザクションの平均の観察された待ち時間が、ストレージ３４０の目標平均待ち時間値未満である場合、アキュムレータ値は減少し、これにより、以降のトランザクションで設定された優先レベルが減少し、これはさらに、そのとき観察された平均待ち時間を増加させる。対照的に、平均の観察された待ち時間がストレージ３４０内の目標平均待ち時間値よりも大きい場合、アキュムレータ値は増加し、これにより、以降のトランザクションに関連付けられた優先レベルが増加し、これはさらに、そのとき観察された平均待ち時間を減少させる。
【００７１】
ループゲインストレージ３６５において格納されるループゲイン期間が、システム内の待ち時間が存在する場合、ループが安定することを確実にするために選択される。これは、標準的な制御理論技術によって決定でき、ループゲインの上限を設定する。下限は、マスタが実行するアクティビティの持続時間によって決定される。例えば、ＧＰＵは、画像データのフレームで動作するため、ループの時間定数は、フレーム期間よりも小さくなるはずである。
【００７２】
飽和ブロック３７０によって採用される飽和限界は、以下のように設定してもよい。任意のポイントにおいて目標スレーブデバイス（例えば、メモリコントローラ）からの帯域幅が不十分である場合、システム設計者は、帯域幅のマスタデバイスを必要とする順番を決定しなければならない。最上位の優先レベル値は、この順序によって決定される。さらに、目標スレーブデバイスからの超過帯域幅が必要な場合、アキュムレータ値は、最下位の優先レベル未満に低下する。飽和限界は、最下位の優先レベルに設定すべきである。
【００７３】
しかしながら、一実施形態では、こうした低下を可能とすることにより、アキュムレータの値が、実際に、マスタに供給される超過帯域幅のレベルを格納するため、アキュムレータをさらに低下させることが有利である。以降、システムの使用可能な帯域幅がより少ない場合に、アキュムレータ値は、優先レベルが最小限の優先レベルを超えて変化するポイントに戻るにはいくらか時間が必要であり、その期間中に、バスマスタは、実際に、以前に受信した超過帯域幅の分を返し、これによって、システム内の他のマスタデバイスからのより良いパフォーマンスを可能にする。しかしながら、典型的には、ＧＰＵのフレーム間において、超過帯域幅の分を返すことはできないため、一実施形態では、リセット機能は、アキュムレータをフレーム間でリセットできるようにするために、アキュムレータ３５５に関連して提供される。
【００７４】
アキュムレータに発行されたリセット信号は、種々の方法で提供できる。一実施形態では、アキュムレータ回路３５５は、関連付けられたバスマスタ３００によって生成されたリセット信号を受信してもよい。例えば、関連付けられたバスマスタが画像処理装置である実施形態を考えると、画像処理装置は、各フレームの完了時に中断信号を生成するために構成されてもよく、その中断信号は、アキュムレータ回路３５５へリセット信号を生成するために使用してもよい。代替の実施形態では、データ処理装置の別のマスタ内で実行する、例えばＣＰＵで実行するソフトウェアは、こうしたリセット信号を生成するために構成されてもよい。
【００７５】
一実施形態では、トランザクション開始およびトランザクション終了指示をトリガする条件がプログラム可能である。同様に、例えば、関連付けられたバスマスタ３００のアクティビティを考慮して、目標待ち時間を変化できるようにするために、ストレージ３４０内に格納される目標待ち時間値を、プログラム可能にしてもよい。
【００７６】
代替の実施形態では、各クロックサイクルで、未処理のトランザクションの数と等しい値を、アキュムレータ値に加算する代わりに、適応優先回路は、各クロックサイクルで、固定整数値、例えば、論理の１の値を追加するように構成してもよい。こうした実施形態では、ストレージ３４０内に格納される目標待ち時間値は、トランザクションの開始および終了ポイントの間の目標平均待ち時間の指示ではなく、トランザクション終了ポイントの発生の間の目標平均待ち時間の指示を提供するために構成できる。こうした実施形態では、適応優先回路は、一定の待ち時間ではなく、一定の処理レートを目標とする効果を有する。
【００７７】
図６は、図５の適応優先回路３１５の動作を示す流れ図である。ステップ３７２において、新しいクロックサイクルが開始したかどうかが決定され、新しいクロックサイクルが開始した場合、プロセスはステップ３７４に進み、ここで、このクロックサイクルで終了トランザクション指示が観察されたかどうかが決定される。その場合、ステップ３７６および３７８が、並列で実行される。特に、ステップ３７６において、コンポーネント３３０によって維持されるアクティブトランザクションカウントがデクリメントされ、典型的には、値は１だけデクリメントされる。ステップ３７８において、ストレージ３４０内の目標待ち時間値は、アキュムレータ３５５によって維持されるアキュムレータ値から減算される。
【００７８】
ステップ３７６および３７８の後で、プロセスはステップ３８０に進む、または、現在のクロックサイクルで終了トランザクション指示が観察されていない場合に、ステップ３７４からステップ３８０へ直接進む。ステップ３８０では、現在のクロックサイクルにおいて開始トランザクションが観察されたかどうかが決定され、観察された場合、ステップ３８２および３８４は、並列で実行される。特に、ステップ３８２において、アクティブトランザクションカウント値がインクリメントされ、典型的には、値は、１だけ、インクリメントされる。ステップ３８４において、優先レベルは、現在の累積値に基づいて、新しいトランザクションに割り当てられ、図５を参照して上述されるように、こうした優先レベル値は、アキュムレータからの出力について、ループゲイン修正および飽和動作を実行した後で得られる。
【００７９】
ステップ３８２および３８４の後、プロセスはステップ３８６に進む、または、現在のクロックサイクルにおいて開始トランザクション指示が観察されていない場合には、ステップ３８０からステップ３８６へと直接進む。ステップ３８６において、未処理のトランザクションの数と等しい数だけ、アキュムレータ値を増加させるために、現在のトランザクションカウント値がアキュムレータに加算される。ステップ３８６の後、プロセスはステップ３７２に戻り、次のクロックサイクルの開始を待つ。
【００８０】
図７Ａは、ＧＰＵ等のバッチ処理デバイスによって観察された待ち時間特性に対する帯域幅を示すグラフである。図７Ａに概略的に示されるように、待ち時間はゼロから増加を開始するため、ＧＰＵの帯域幅は、最初は影響を受けない。これは、ＧＰＵが、最初は、待ち時間の変化には比較的影響されない複数の未処理のトランザクション手段を処理することができるためである。しかしながら、いくつかのポイントにおいて、待ち時間の増加は、帯域幅に影響を及ぼし始め、待ち時間特性に対する帯域幅は、曲線４００に従い始める。曲線４００の領域において、待ち時間の増加は帯域幅の低下につながり、同様に、待ち時間の減少は、帯域幅の増加につながることがわかる。このため、デバイスの所望の目標帯域幅を決定できる場合、これは、対応する目標待ち時間と等しくすることができることがわかる。
【００８１】
点線４１０に示されるように、読み出しおよび書き込み動作のための待ち時間特性に対する帯域幅は変動することがあり、特に、曲線４００は、読み出しトランザクションに対して適切なものであってもよいが、別々の曲線４１０は、書き込みトランザクションに関連してもよい。さらに、デバイスは、典型的には、ひいては異なる読み出しおよび書き込み目標待ち時間も考慮する、読み出しおよび書き込み動作の異なる目標帯域幅を有してもよい。これが、書き込みトランザクションおよび読み出しトランザクションの別々の適応優先回路を提供するために、特定の実施形態においてこれが有利であり得るという理由である。
【００８２】
図７Ｂは、概略的に、異なる種類のデバイスに関連付けることができる優先レベルを示す。低い優先限界において、優先レベル４２０の範囲を、バッチ処理デバイスに関連付けてもよく、この一実施例に、ＧＰＵがある。１つ以上のより高い優先レベル４２５は、ＬＣＤコントローラ等のストリーム処理デバイスの動作がバッチ処理デバイスの動作よりも時間的に厳しいため、ストリーム処理デバイス、例えば、ＬＣＤコントローラに関連付けてもよい。次に、１つ以上のより高い優先レベル４３０を、システム内に複数存在し得る、ＣＰＵデバイスに関連付けてもよい。最終的に、保存された優先レベル４３５を提供してもよく、ストリーム処理デバイスは、時により、ストリーム処理デバイスが必要なレートで出力データを生成できるように、十分な帯域幅を得るために、その保存された優先レベルを受け入れることが可能にされ得る。
【００８３】
本発明の実施形態に従い、バッチ処理デバイスのうちの１つ以上に、観察された平均待ち時間が目標待ち時間より大きい場合にのみ、関連付けられたバッチ処理デバイスの優先レベルを上げるように動作する、関連付けられた適応優先回路が提供されてもよく、このため、さらなる帯域幅が必要である。これは、バッチ処理デバイスの優先を、ある期間、ＣＰＵおよび／またはストリーム処理デバイス優先範囲に増加させてもよい。しかしながら、適応優先回路の動作は、トランザクションの他のソースのアクティビティとは独立して、使用される指定された待ち時間目標を実現するために必要な最下位の優先レベルを生じさせ、したがって、適応優先回路に関連付けられたソースは、その指定された待ち時間目標に適合するために必要な共有リソースの最小限の割合のみを取るため、これにより、システム内の他のソースのパフォーマンスを向上させる。
【００８４】
図８は、アキュムレータ３５５によって維持される累積値が、読み出しトランザクションの各トランザクション開始およびトランザクション終了の間をどのように上下するかを概略的に示す図である。トランザクションの開始を信号するアドレス５００の発生時において、トランザクション開始指示５１５は、アクティブトランザクションカウント値がインクリメントされるようにするトランザクション開始回路３２０によって生成される。各クロックサイクルで、アクティブトランザクションカウントの値がアキュムレータ値に加算され、これにより、アキュムレータ値は、ライン５３０に沿って、増加する。いくつかのクロックサイクル後、第１の読み出しデータ値５１０が観察された場合、これは、トランザクション終了指示５２０を、トランザクション終了回路３２５によって生成させる。トランザクション開始指示５１５およびトランザクション終了指示５２０の間で経過した期間は、そのトランザクションの待ち時間期間５２５を識別する。トランザクション終了指示が生成される時点において、これは、ストレージ３４０に格納された目標平均待ち時間値に等しい値を、累積値を低下させるアキュムレータ値から減算する。低下後の終了ポイントは、待ち時間期間５２５が目標待ち時間と等しい場合、ポイントＢになる。しかしながら、待ち時間期間５２５が目標待ち時間よりも大きい場合、終了ポイントは、図８のポイントＡによって概略的に図示されるポイントＢを超える。同様に、待ち時間期間５２５が目標待ち時間未満である場合、終了ポイントは、図８においてポイントＣによって概略的に示される、ポイントＢ未満になる。
【００８５】
したがって、以前に発行されたトランザクションで観察された平均待ち時間が目標平均待ち時間を越える場合に、アキュムレータの値は経時的に増加し、これにより、以降のトランザクションに関連付けられた優先レベルは増加することが理解される。同様に、以前に発行されたトランザクションで観察された平均待ち時間が目標待ち時間未満である場合、アキュムレータ値は経時的に低下し、これにより、以降のトランザクションに関連付けられた優先レベルは低下する。
【００８６】
図８は、比較的簡単な実施例を示し、実際に、複数の未完了のトランザクションを時間の任意のポイントで進行中にすることができ、このため、複数のトランザクションのアドレスは、以前のトランザクションのうちの１つに関連付けられたデータが観察される前に発行することができ、これは、トランザクション開始ポイント５１５およびトランザクション終了ポイント５２０の間で、１つ以上のさらなるトランザクション開始ポイントおよびトランザクション終了ポイントが観察され得ることを意味する、ことが理解される。しかしながら、トランザクションで観察された平均待ち時間期間が目標待ち時間より大きい場合に、累積値が経時的に増加し、観察された平均待ち時間が目標待ち時間未満である場合に、アキュムレータ値は経時的に低下するという、同じ基本的な現象が観察される。
【００８７】
図９Ａおよび９Ｂは、ある特定の実施例の状況の、特定の処理期間内にＧＰＵによって観察された帯域幅を概略的に示す。特に、図９Ａは、経時的に、帯域幅がどのように変化するかを示し、図９Ｂは、経時的に、処理の割合（％）がどのように増加するかを示す。処理期間の終了までに、必要な処理の１００％を完了する必要がある。典型的には、処理期間は、フレーム期間未満になる。特に、各フレームで必要な処理量の変化を考慮して、フレームのほんの一部のみがフレーム期間内でその処理を完了できないようにするために、目標帯域幅が設定されている。このため、ほとんど全てのフレームでは、フレーム期間終了の少し前に、処理が完了される。
【００８８】
ＧＰＵがその目標帯域幅に等しい一定の帯域幅を観察する場合、点線５５２によって示されるように、処理期間終了によって、タスクが完了することになる。図９Ｂに示されるように、こうした状況で、処理の割合（％）は、処理期間終了までに、０％から１００％へ着実に増加する点線５７７に従う。
【００８９】
しかしながら、図９Ａおよび９Ｂに示される実施例において、フレーム期間の初期の部分において、ＧＰＵは、その目標帯域幅よりも大幅に多く受信し、特に、ライン５５０によって示された帯域幅を受信すると想定される。これは、フレーム期間の初期の部分において、処理の割合（％）はライン５６５に従い、したがって、処理がフレーム期間のその初期の部分において予想されるよりもずっと先行するということを意味する。時間ｔ１において、ＧＰＵは、任意の帯域幅の受信を突然中止し、したがって、さらなる処理を行うことができない。このため、帯域幅はゼロに低下し、ライン５５５に従うが、処理の割合（％）はライン５７０に従う。この時間において、累積値は、フレーム期間の初期の部分中にマスタに供給される超過帯域幅のレベル指示を格納するために、マイナスになってもよい。ＧＰＵに帯域幅が使用可能になると、ＧＰＵから新しいトランザクションに関連付けられた優先レベルの増加をＧＰＵが開始するまで、少し時間がかかる。
【００９０】
時間ｔ２において、ＧＰＵは、その目標帯域幅を得ることを開始し、帯域幅は、残りの処理期間の間、ライン５６０に従う。したがって、処理期間終了までに１００％の処理が実行できるように、処理の割合（％）は増加を開始し、ライン５７５に従う。
【００９１】
なお、マスタに供給された超過帯域幅のレベル指示を格納するために、累積値をマイナスにできなくなっている場合、新しいトランザクションの優先レベル出力はこの前に増加されており、ＧＰＵは、この前に帯域幅を取得することを開始しており、こうして、示された処理期間の終了前に、処理の割合（％）は１００％に達する。これは、適応優先回路を動作させる完全に受容可能な方法であるが、アキュムレータ値をマイナスにすることができる機構によって、超過帯域幅の量を格納可能にすることにより、処理の１００％を実行するためにかかる期間が、期間全体でその目標帯域幅を受信した場合と同じになることを確実にできる。したがって、これは、ＧＰＵが、絶対的に必要であるよりも大きい帯域幅を取ることを回避することによって、システム内の他のマスタのパフォーマンスが最大化することを可能にする。
【００９２】
図１０Ａおよび１０Ｂは、累積値が、供給された超過帯域幅のレベルを格納するためにマイナスになるインスタンスを除く、優先レベルが、累積値を一般的に追跡する方法を示す。期間６００中、観察された待ち時間が目標待ち時間よりも短くなるため、累積値は低下し、これが、優先レベルの低下をもたらす。いくつかのポイントにおいて、観察された待ち時間は、目標待ち時間よりも増加するようになり、これにより、優先レベルの対応する増加と共に、パス６０５に沿った累積値の増加が生じる。その後、いくつかのポイントにおいて、観察された待ち時間は目標の待ち時間未満になり、累積値は、パス６１０に沿って、減少を開始する。最初は、優先レベルは同様のパスに沿って追跡するが、累積値がポイント６１５においてマイナスになると、優先レベルは、期間６３０では、優先レベルゼロを維持される。累積値がポイント６１７において再び増加を開始し、ライン６２０に従う場合、優先レベルは、すぐにゼロレベルを超えて増加を開始するのではなく、代わりに、ポイント６２７に達するまで、優先レベルゼロ値にとどまり、その後、パス６２５に沿って増加を開始する。
【００９３】
代替の実施形態では、アキュムレータは、ライン６１５に沿って減少しないようにされている場合があり、その場合、優先レベルは、時間ポイント６１７において累積値が増加を開始するとすぐに、再び増加を開始している。しかしながら、上述のように、累積値がマイナスになることを可能にすることにより、これは、実際、マスタに供給される超過帯域幅レベルの指示を蓄積し、必要であるよりも前にバッチタスクを終了するのではなく、自然な処理期間を保持できるようにされている。
【００９４】
上記の実施形態から、こうした実施形態は、そのソースの指定されたスループットに目標設定するために、関連付けられたソースから新しいトランザクションのそれぞれに割り当てられる優先レベルを制御するためのフィードバック機構を使用する適応優先回路を提供し、また、この機構によって、システム内の他のソースのアクティビティとは独立して、スループット目的を実現するために必要な最下位の優先を発見することが、理解される。こうして、こうした機構は、他のマスタのアクティビティとは独立したパフォーマンスを提供するために、システムリソースへの調整されたアクセスを提供し、これによって、システムリソースの最適な割り当てが、システム内のマスタのパフォーマンス、およびスレーブ、例えば、メモリコントローラの利用を最大化できるようにする。
【００９５】
本明細書において、添付の図面を参照して、例示的な発明の実施形態が詳細に説明されているが、本発明はこれらの正確な実施形態に制限されず、添付の請求項によって定義されるように、発明の範囲および精神から逸脱しない限り、当業者によって、種々の変更および修正を実行可能であることが理解される。
【符号の説明】
【００９６】
１００  ＣＰＵ
１１０  ＧＰＵ
１１５  適応優先回路
１２０  相互接続
１２５、１４５  アービタ
１３０  マルチプレクサ
１３５  メモリコントローラ
１４０  行列
【図１】
0006054464.tif 000002
【図２】
0006054464.tif 000003
【図３】
0006054464.tif 000004
【図４】
0006054464.tif 000005
【図５】
0006054464.tif 000006
【図６】
0006054464.tif 000007
【図７Ａ】
0006054464.tif 000008
【図７Ｂ】
0006054464.tif 000009
【図８】
0006054464.tif 000010
【図９Ａ】
0006054464.tif 000011
【図９Ｂ】
0006054464.tif 000012
【図１０Ａ】
0006054464.tif 000013
【図１０Ｂ】
0006054464.tif 000014