トランザクションの優先レベルを設定するデータ処理装置および方法
【課題】トランザクションの優先レベルを設定するデータ処理装置および方法を提供する。
【解決手段】該データ処理装置は、トランザクションを処理する共有リソースと、該共有リソースへ該トランザクションを発行する少なくとも1つのマスタデバイスとを有する。該少なくとも1つのマスタデバイスは、該トランザクションの複数のソースを提供し、該トランザクションのそれぞれは、これに関連付けられた優先レベルを有する。アービトレーション回路は、該共有リソースへ発行された複数のトランザクションの中からあるトランザクションを選択するように、アービトレーションポリシーを適用するために使用され、該アービトレーションポリシーは、該選択を実行する際に、該複数のトランザクションのそれぞれに関連付けられた該優先レベルを使用する。
【解決手段】該データ処理装置は、トランザクションを処理する共有リソースと、該共有リソースへ該トランザクションを発行する少なくとも1つのマスタデバイスとを有する。該少なくとも1つのマスタデバイスは、該トランザクションの複数のソースを提供し、該トランザクションのそれぞれは、これに関連付けられた優先レベルを有する。アービトレーション回路は、該共有リソースへ発行された複数のトランザクションの中からあるトランザクションを選択するように、アービトレーションポリシーを適用するために使用され、該アービトレーションポリシーは、該選択を実行する際に、該複数のトランザクションのそれぞれに関連付けられた該優先レベルを使用する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、トランザクションのために優先レベルを設定するデータ処理装置および方法に関する。
【背景技術】
【0002】
システム内のマスタデバイスによって発行されたトランザクションを処理するための、1つ以上のリソースを提供することが、データ処理システムにおいて公知である。こうしたリソースの一実施例には、システム内のマスタデバイスによって、これに発行されたトランザクションに応答して、動作を実行するために提供される1つ以上のスレーブデバイスがある。スレーブデバイスは種々の形態を採ることができ、一実施例には、データ処理システム内の種々のマスタデバイスによって発行される、読み出しおよび書き込みトランザクションに基づいて、関連付けられたメモリに関し、読み出しおよび書き込みアクセスを処理するために使用される、メモリコントローラがある。
【0003】
処理トランザクションで提供されるリソースは、多くの場合、複数のトランザクションソース間で共有される。例えば、システムオンチップ(SoC)システムでは、システムリソースを共有するための複数のマスタデバイスで公知である。こうした共有リソースが存在する場合には必ず、典型的には、マスタデバイスおよび共有リソースを相互接続するパスに沿って、1つ以上のアービトレーションポイントが存在し、こうしたアービトレーションポイントは、同じ共有リソースに発行された複数の未完了のトランザクションの間で調整を行うために、アービトレーションポリシーを適用するためのアービトレーション回路を組み込む。したがって、各マスタに割り当てられる共有システムリソースの割合は、アービトレーションポリシーによって決定される。また、次に、個々のマスタのパフォーマンスは、これが得るシステムリソースのシェアに依存する。
【0004】
アービトレーションポリシーには多数の公知の種類が存在する。例えば、固定アービトレーションポリシーを適用してもよいが、こうしたアプローチでは、任意の特定のマスタが取得するシステムリソースのシェアは、経時的に変化する、他方のマスタデバイスのアクティビティに依存する。このため、こうした固定アービトレーションポリシーは、システムの他のマスタのアクティビティに依存する特定のマスタのパフォーマンスを提供する。特定の期間で実行する特定のタスクを有するマスタデバイス(例えば、フレーム期間内に画像データに相当するフレームを処理する必要がある画像処理装置)では、固定レベルのシステムリソースが必要である。しかしながら、固定アービトレーションポリシーでは、このレベルのシステムリソースを固定することは可能ではないため、全体的なシステム利点がない超過システムリソースを受信するようにマスタを構成し、こうして、他のマスタからこのリソースを奪うか、代わりに、マスタが不十分なシステムリソースを受信し、限られた時間で特定のタスクを完了させることが不可能になる。多くのシステムにおいて、後者の状況は受け入れがたいものであり、そのため、アービトレーションポリシーは、最悪な条件におけるシステムリソースへ十分なアクセスを提供するように設定されることが多く、これは、通常の動作条件下で、いくつかのマスタデバイスが、必要とするよりも大きいシステムリソースへのアクセスを受信するため、他のマスタから、そのパフォーマンスを向上させるための機会を奪っていることを意味する。
【0005】
重み付けされたラウンドロビンアービトレーションポリシー等のいくつかの公知のアービトレーションポリシーは、これらが全て、全動作条件において最小限の帯域幅を保証されるように、マスタの間で使用可能な帯域幅をパーティション化する。しかしながら、こうしたポリシーは、その最小限の帯域幅を実現するために典型的に必要な、共有システムリソースのより大きなシェアを、マスタに割り当てなければならず、これは、これらの他のマスタのパフォーマンスの対応する低下と共に、システムの他のマスタの待ち時間を増加させる効果をもたらす。
【0006】
非特許文献1の記事は、相互接続による単一共有目標へのアクセスを求めるいくつかのイニシエータの間を調整するための、アービトレーション機構について記載している。記載されたソリューションは、目標のアービトレーションを2つの部分、つまり、異なるイニシエータから目標へと要求を配信するための相互接続の中心のアービトレーション、および異なるイニシエータの帯域幅割り当てを施行するための、相互接続のエッジのアービトレーションへ分割する。(仮想チャネルとして記事中にも記載されている)目標へつながるスレッドを、3つのクオリティオブサービスレベル、つまり、優先スレッド、帯域幅スレッドおよびベストエフォートスレッドのうちの1つに割り当てることができる。優先スレッドは、短い待ち時間サービスに最適化されており、帯域幅スレッドは固定ジッター境界内のスループット保証を受信し、ベストエフォートスレッドは、帯域幅が他方のスレッドによって余っているとき、およびその場合に、サービスを受信する。優先スレッドおよび帯域幅スレッドは、それに関連付けられた、特定の絶対的な目標の帯域幅割り当てを有する。優先スレッドが、その割り当てよりも低いレートのサービスを要求する限り、これは絶対的な優先を受信する。同様に、帯域幅スレッドが、その割り当てよりも低いレートのサービスを要求する限り、これは、ベストエフォートスレッドの前にサービスされる。しかしながら、その割り当てよりも大きいレートで、優先スレッドまたは帯域幅スレッドのいずれかがサービスを要求する場合、これらはベストエフォートスレッドとなるように格下げされる。
【0007】
このため、こうした機構によって、その帯域幅割り当てよりも大きいレートでのサービスの要求を開始する場合、より高い優先スレッドは格下げされる。しかしながら、こうしたアプローチを採用する場合、特定のスレッドに割り当てられるクオリティオブサービスレベルは、使用されているスキームにより、これらのスレッドがその所望のタスクを実現できるようにするために絶対的に必要であるよりも高くなり、そのため、中央処理装置(CPU)等のシステム内の他のマスタのパフォーマンス可能性は低下する。
【0008】
したがって、データ処理装置内の複数のソースから発行されたトランザクションによって、共有リソースへのアクセスを調整するための改善された技術を提供することが望ましい。
【先行技術文献】
【非特許文献】
【0009】
【非特許文献1】W.Weberら、「A Quality−of−Service Mechanism for Interconnection Networks in System−on−Chips」、Sonics,Inc,1530−1591/05 $20.00 (著作権)2005 IEEE
【発明の概要】
【課題を解決するための手段】
【0010】
第1の態様から概観すると、本発明は、トランザクションを処理するための共有リソースと、前記共有リソースへ、前記トランザクションを発行するための少なくとも1つのマスタデバイスであって、この少なくとも1つのマスタデバイスは、前記トランザクションの複数のソースを提供し、前記トランザクションのそれぞれは、これに関連付けられた優先レベルを有する、少なくとも1つのマスタデバイスと、前記共有リソースに発行された複数のトランザクションの中から、あるトランザクションを選択するために、アービトレーションポリシーを適用するためのアービトレーション回路であって、このアービトレーションポリシーは、選択を実行する際に、前記複数のトランザクションのそれぞれに関連付けられた優先レベルを使用する、アービトレーション回路と、前記複数のソースのうちの少なくとも1つに関連付けられる適応優先回路であって、この適応優先回路は、関連付けられたソースから以前に発行されたトランザクションに関して、スループット表示データを監視し、かつ、指定された目標スループットが実現できるようにする複数の既定の優先レベルの中から、最下位の優先レベルを設定するように、関連付けられたソースからの新しいトランザクション毎に、前記スループット表示データに依存して、前記複数の既定の優先レベルのうちの1つに、優先レベルを設定するように構成される、適応優先回路と、を含むデータ処理装置を提供する。
【0011】
本発明によると、適応優先回路は少なくとも1つのソースに関連付けられ、そのソースから以前に発行されたトランザクションのスループット表示データを受信する。その時間に利用可能なそのスループット表示データに基づき、関連付けられたソースから新しいトランザクションが発行され、かつ、適応優先回路は、実現される指定された目標スループットを考慮して、その新しいトランザクションの優先レベルを設定するように構成される。特に、適応優先回路は、複数の既定の優先レベルのうちの1つに優先レベルを設定でき、新しいトランザクション毎に、指定された目標スループットが実現できるようにする複数の既定の優先レベルの中から、そのトランザクションの関連付けられた優先レベルを、最下位の優先レベルに設定する。
【0012】
新しいトランザクションに設定される優先レベルは、以前に発行されたトランザクションで観察されたスループット表示データに依存するため、本発明の適応優先回路は、次に、フィードバックループの形態を使用して動作し、新しいトランザクションに設定される優先レベルは、次に、適応優先回路によって後で観察されるスループットに影響し、これが、次に、以降の新しいトランザクションに設定される優先レベルに影響する。
【0013】
ソースからそれぞれの新しいトランザクションに割り当てられる優先を制御するために、このフィードバック機構を使用することで、適応優先回路は、データ処理装置内の他のトランザクションのソースのアクティビティとは独立して、指定された目標スループットを実現するために必要な、最下位の優先レベルを発見することができる。適応優先回路に関連付けられたソースによって発行されるトランザクションは、そのソースの指定された目標スループットに適合するために必要な最下位の優先レベルに設定されるので、また、適応優先回路に関連付けられたソースは、その指定された目標スループットに適合するために必要な共有リソースの最小限のシェアのみを占めるので、システム内の他のソースのパフォーマンスを改善できる。
【0014】
スループット表示データは、種々の形態を採ることができる。しかしながら、一実施形態では、スループット表示データは、以前に発行されたトランザクションに関連付けられた待ち時間を示す待ち時間表示データを含み、指定された目標スループットは、指定された目標待ち時間である。多くの場合、待ち時間の値の範囲で、待ち時間の値が減少すると、スレーブデバイスの帯域幅、ひいてはスループットが増加し、同様に、待ち時間が増加すると、帯域幅、ひいてはスループットが減少するように、トランザクションのソースは、待ち時間特性への帯域幅を有する。ソースの所望のスループットを考慮すると、待ち時間特性に対する帯域幅を参照して、目標待ち時間を決定することが可能である。適応優先回路は、次に、以前に発行されたトランザクションで観察された待ち時間表示データが、指定された目標待ち時間とどのように比較されるかに依存して、新しいトランザクションのそれぞれの優先レベルを変化できる。
【0015】
特に、以前に発行されたトランザクションの観察された待ち時間が、指定された目標待ち時間よりも平均して高い場合、適応優先回路は、新しいトランザクションに設定された優先レベルを増加できる。これは、そのソースによって観察された待ち時間を減少させる傾向があり、このことにより、経時的に、適応優先回路によって受信される待ち時間表示データで観察された平均待ち時間の減少をもたらす。同様に、以前のトランザクションで観察された待ち時間が、指定された目標待ち時間よりも平均して短い場合、適応優先回路は、新しいトランザクションのそれぞれの優先レベルを低下させ、これは、経時的に、ソースによって観察された待ち時間を増加させる影響があり、このため、適応優先回路によって受信される待ち時間表示データで観察される平均待ち時間が増加する。
【0016】
こうしたアプローチによって、指定された目標待ち時間は、システムの他のトラフィックの変化とは独立して、適応優先回路が、関連付けられたソースの最小限の処理レートを確実にするために必要な最下位の優先レベルに、トランザクションの優先レベルを設定することを確実にする。
【0017】
適応優先回路は、種々の形態を採ることができる。しかしながら、一実施形態では、適応優先回路は、スループット表示データから、進行中のトランザクション数の表示を決定するためのアクティブトランザクションカウント回路と、優先レベル制御値を維持するためのアキュムレータ回路であって、このアキュムレータ回路は、進行中のトランザクション数の表示に依存して、優先レベル制御値を増加させる、アキュムレータ回路とを含む。このため、こうした実施形態では、優先レベル制御値はアキュムレータ回路によって維持され、アキュムレータ回路が初期化されたため、以前に発行された全てのトランザクションで累積されるスループット表示データに依存する値を取る。
【0018】
一実施形態では、優先レベル制御値が、チェックされることなく、経時的に増加しないようにするため、優先レベル制御値を定期的に低下させるための機構も配置されている。特に、一実施形態では、適応優先回路は、進行中のトランザクションが既定のポイントに達すると、スループット表示データから検知するように構成され、前記既定のポイントが検知される度に、アキュムレータ回路は、優先レベル制御値を減少させるように構成される。既定のポイントは、種々の形態を採ることができるが、一実施形態では、既定のポイントはトランザクション終了ポイントである。トランザクション終了ポイントは、種々の方法で構成可能であるが、一実施形態において、読み出しトランザクションでは、その読み出しトランザクションの第1の読み出しデータがソースに戻るポイントであり、または、書き込みトランザクションでは、最後の書き込みデータ項目がソースから出力される時間になる。
【0019】
各既定のポイントの検知時にアキュムレータ回路が減少する量は、インプリメンテーションに依存して変化する可能性がある。しかしながら、一実施形態では、適応優先回路には、前記指定された目標スループットを示す目標スループット表示が提供され、前記既定のポイントが検知される度に、アキュムレータ回路は、前記目標スループット表示に依存する量だけ、優先レベル制御値が減少するように構成される。こうしたアプローチによって、定常状態に達すると、これにより、以前に発行されたトランザクションで観察されたスループット表示データが、指定された目標スループットと一致する場合、検知される各既定のポイントの間で優先レベル制御値が増加する量は、各既定のポイントの検知の際に優先レベル制御値に適用される減少する量だけ、相殺される。しかしながら、スループット表示データが、目標スループットからの偏移を開始しているスループットを示す場合、これは、偏移の方向に依存して、優先レベル制御値を、経時的に増加または経時的に減少させる。
【0020】
アキュムレータ回路が、進行中のトランザクション数の表示に依存して、優先レベル制御値を増加させる頻度は、インプリメンテーションに依存して変化してもよい。しかしながら、一実施形態では、クロックサイクル毎に、アクティブトランザクションカウント回路は、進行中の少なくとも1つのトランザクションが存在することを示すが、アキュムレータ回路は、優先レベル制御値を増加させるように構成される。
【0021】
特定の一実施形態では、目標スループット表示は、トランザクション毎の目標平均待ち時間の表示を提供し、クロックサイクル毎に、アクティブトランザクションカウント回路は、進行中の少なくとも1つのトランザクションが存在することを示すが、アキュムレータ回路は、アクティブトランザクションカウント回路によって示されるように、進行中のトランザクション数に依存する量だけ、優先レベル制御値を増加するように構成される。さらに、前記既定のポイントが検知される度に、アキュムレータ回路は、トランザクション表示毎の前記目標平均待ち時間に依存する量だけ、優先レベル制御値を減少させるように構成される。こうしたアプローチは、一定の待ち時間を目標とする効果がある。
【0022】
代替の実施形態では、目標スループット表示は、前記既定のポイントの発生の間の目標平均待ち時間の表示を提供し、クロックサイクル毎に、アクティブトランザクションカウント回路は、進行中の少なくとも1つのトランザクションが存在することを示すが、アキュムレータ回路は、固定整数の量だけ優先レベル制御値を増加させるように構成される。さらに、前記既定のポイントが検知される度に、アキュムレータ回路は、前記既定のポイントの発生の間の前記目標平均待ち時間に依存する量だけ、優先レベル制御値を減少させるように構成される。こうしたアプローチは、一定の待ち時間ではなく、一定の処理レートを目標とする効果がある。
【0023】
スループット表示データが待ち時間表示データを含む実施形態では、前記以前に発行されたトランザクション毎に、適応優先回路は、第1および第2のタイミング表示を、前記待ち時間表示データとして受信する。第1および第2のタイミング表示は、種々の形態を採ることができるが、一実施形態では、前記第1のタイミング表示はトランザクション開始表示であり、前記第2のタイミング表示はトランザクション終了表示である。第1および第2のタイミング表示をトリガする条件は固定してもよいが、一実施形態では、これはプログラム可能にできる。
【0024】
一実施形態では、アクティブトランザクションカウント回路は、進行中のトランザクション数の記録を維持するために、トランザクション開始表示およびトランザクション終了表示を使用する。トランザクション開始およびトランザクション終了表示の使用は、進行中のトランザクション数の記録を保持するための簡潔かつ効果的な機構を提供する。
【0025】
一実施形態では、適応優先回路は、新しいトランザクション毎に、現在、アキュムレータ回路によって維持されている優先レベル制御値に依存して、そのトランザクションの優先レベルを設定する優先値決定回路をさらに含む。こうした実施形態では、優先レベル制御値は、新しいトランザクションで使用される新しい優先レベルを直接提供するのではなく、代わりに、優先値決定回路が、優先レベルを生成するために、優先レベル制御値における1つ以上の処理動作を提供する。
【0026】
例えば、一実施形態では、優先値決定回路は、優先レベル制御値の変化が、新しいトランザクション毎に設定される優先レベルの変化を生じさせる程度を制御するためのループゲイン回路を含む。特定の一実施形態では、ループゲイン回路は、典型的には、安定した動作を確実にするために十分低くしながら、優先レベル制御値の変化に対する合理的な応答を確実にするために、十分高い値に設定されるループゲイン値によって、優先レベル制御値を乗算する。
【0027】
一実施形態では、優先値決定論理は、ループゲイン回路によって出力される値の範囲を、使用可能な複数の既定の優先レベルと同等の範囲内に制限することを確実にするために、飽和回路も含む。
【0028】
一実施形態では、経時的に、前記監視されたスループット表示データが、スループットが指定された目標スループットを超過することを示す場合に、優先レベル制御値に、関連付けられたソースによって観察される超過スループットの計測値を捕捉させるように、アキュムレータ回路の動作が、優先レベル制御値を、前記複数の既定の優先レベルの中から最下位の優先レベルに関連付けられた値未満にデクリメントさせ、優先値決定回路は、こうしたインスタンスにおいて、優先レベルが、前記複数の既定の優先レベルの中で、最下位の優先レベルに設定されることを確実とするために、飽和回路を含む。このため、こうした実施形態では、飽和回路は、優先レベルが複数の既定の優先レベル内の最下位の優先レベル未満に減少しないことを確実にするが、アキュムレータによって維持される優先レベル制御値は、さらに減少することが可能になっている。これは、アキュムレータが、実際に、関連付けられたソースに供給される超過帯域幅のレベルを格納できるようにするため、こうしたアプローチは有利である可能性がある。その後、利用可能な帯域幅がより小さい場合に、アキュムレータは、新しいトランザクションに割り当てられる優先レベルの増加を開始するレベルに、優先レベル制御値が増加するまでにはある程度の時間がかかり、これにより、実際に、以前に与えられた超過帯域幅の分を返して、システム内の他のトランザクションソースからのより良いパフォーマンスを可能にする。
【0029】
適応優先回路が関連付けられたソースは、種々の形態を採ることができる。しかしながら、一実施形態では、関連付けられたソースは個別の処理ブロックを実行し、各処理ブロックは指定された時間内に完了する必要があり、適応優先回路には、前記指定された目標スループットを示す目標スループット表示が提供され、目標スループット表示は、実現された場合に、各処理ブロックが、指定された時間内に実行できる、トランザクション毎の平均目標スループットを識別する。例えば、画像プロセッサ、動画プロセッサ、音声プロセッサ等、個別の処理ブロックを実行するソースには、種々の実施例が存在する。別の実施例として、ダイレクトメモリアクセス(DMA)エンジンも、こうした個別の処理ブロックを実行してもよい。
【0030】
一実施形態では、アキュムレータ回路の動作は、新しい処理ブロックが開始する場合に、優先レベル制御値の開始値が、先行する処理ブロックが終了した場合に得られる最後の優先レベル制御値によって与えられるように、ある処理ブロックから別の処理ブロックへ実行できるようにされる。しかしながら、代替の実施形態では、アキュムレータ回路は、各個別の処理ブロックの間でリセットされるように構成されてもよい。典型的には、個別の処理ブロックの間には、超過帯域幅分を返せる能力がないため、少なくとも、アキュムレータ回路によって維持される優先レベル制御値が、関連付けられたソースによって観察された超過スループットの計測値を捕捉できるようにされた実施形態において、こうしたアプローチが取られる。
【0031】
アキュムレータ回路のリセットを実行できる多数の方法が存在する。例えば、一実施形態では、アキュムレータ回路は、関連付けられたソースによって生成されるリセット信号を受信してもよい。例えば、関連付けられたソースが画像処理装置である実施形態を考慮すると、画像処理装置は、各フレームの完了時において中断信号を生成するように構成されてもよく、その中断信号は、アキュムレータ回路へのリセット信号を生成するために使用されてもよい。代替の実施形態では、データ処理装置内で実行する、例えばデータ処理装置内のCPUで実行する、ソフトウェアが、こうしたリセット信号を生成するために構成されてもよい。
【0032】
一実施形態では、少なくとも1つのマスタデバイスは、複数のマスタデバイスを含み、各マスタデバイスは、前記トランザクションのうちの少なくとも1つのソースを提供する。こうした一実施形態では、前記複数のマスタデバイスのうちの少なくとも1つは、バッチ処理動作を実行するバッチ処理デバイスであり、適応優先回路は、前記バッチ処理デバイスに関連付けられる。
【0033】
バッチ処理デバイスは、例えば、画像処理装置、動画処理装置、音声処理装置等の、種々の形態を採ってもよい。一実施形態では、装置内のさらなるマスタデバイスは中央処理装置であり、中央処理装置は、これに関連付けられた適応優先回路を有しない。代わりに、多くの場合、中央処理装置はこれに関連付けられた固定優先レベルを有し、優先レベルは、バッチ処理デバイスに通常関連付けられた優先レベルより高い。しかしながら、バッチ処理デバイスに関連する適応優先回路の利用により、バッチ処理デバイスによって発行されたトランザクションに関連付けられた優先レベルは、指定された目標スループットが実現されることを確実にするために必要なため、および必要な場合、増加することができる。しかしながら、適応優先回路が動作する方法のために、バッチ処理デバイスの優先レベルのこうした増加は、絶対的に必要な場合に保証されるのみであり、したがって、こうしたアプローチは、中央処理装置等のシステムにおける他のマスタデバイスのパフォーマンスを最大化する。
【0034】
一実施形態では、複数のソースは、単一マスタデバイス上で実行する複数の処理スレッドによって形成され、適応優先回路は、前記処理スレッドのうちの少なくとも1つに関連付けられる。一実施形態では、こうしたマスタデバイスは画像処理装置にしてもよく、複数の処理スレッドは、少なくとも節点処理スレッドおよび画素処理スレッドを含んでもよい。
【0035】
一実施形態では、複数のソースは、少なくとも1つのマスタデバイスで実行する異なる種類のトランザクションによって形成されてもよく、こうした異なる種類のトランザクションの実施例には、書き込みトランザクションおよび読み出しトランザクションがある。
【0036】
一実施形態では、目標スループット表示はプログラム可能であり、このため、例えば、関連付けられたソースのアクティビティに依存して、目標スループット表示を変化させることができる。関連付けられたソースが画像処理動作を実行する特定の実施例として、フレーム毎に必要とされる処理量は変化してもよく、このため、画像プロセッサが、以前のフレームよりもかなり大きい処理動作を必要とするフレームの処理を開始する場合、これらの計算論的に集約的なフレームが処理される間、目標スループットは、画像処理装置のさらなる帯域幅を得るために増加することができる。
【0037】
共有リソースは、種々の形態を採ることができるが、一実施形態では、共有リソースは、メモリコントローラの形態を採ってもよい。
【0038】
アービトレーション回路は、データ処理装置内の種々の位置で提供されてもよい。例えば、多くの場合、マスタデバイスは、相互接続構造によって、1つ以上の共有リソースに結合され、多くの場合、複数のアービトレーションポイントが、相互接続構造内に提供される。したがって、こうしたアービトレーション回路は、優先レベルベースのアービトレーションを、これらの複数のポイントで実行できるようにするために、相互接続内の複数のアービトレーションポイントのそれぞれで、複製してもよい。
【0039】
あるいは、またはさらに、共有リソースは、それ自体でアービトレーションポイントを含んでもよく、したがって、共有リソース内にアービトレーション回路が提供されてもよい。例えば、共有リソースがメモリコントローラである実施形態を考慮すると、メモリコントローラは、多くの場合、未完了の読み出しおよび書き込みアクセスが格納される行列を含む。優先レベルベースのアービトレーション機構は、行列に格納された複数のトランザクションのそれぞれに関連付けられた優先レベルを考慮して、メモリに転送するための次のトランザクションを選択するために、その行列に関連して採用してもよい。
【0040】
実際に、いくつかの実施形態では、相互接続内のアービトレーション回路のインスタンス、および1つ以上の共有リソース内のアービトレーション回路の1つ以上のインスタンスが存在し、こうした実施形態では、同じアービトレーションポリシーを、相互接続内およびこれらの共有リソース内の両方に適用可能である。
【0041】
第2の態様から概観すると、本発明は、本発明の第1の態様に従う、データ処理装置におけるトランザクションのソースに関連して使用するための適応優先回路であって、この適応優先回路は、関連付けられたソースから以前に発行されたトランザクションに関して、スループット表示データを監視し、かつ、指定された目標スループットが実現できるようにする複数の既定の優先レベルの中から、最下位の優先レベルを設定するように、関連付けられたソースからの新しいトランザクション毎に、前記スループット表示データに依存して、複数の既定の優先レベルのうちの1つに、そのトランザクションの関連付けられた優先レベルを設定するように構成される、適応優先回路を提供する。
【0042】
第3の態様から概観すると、本発明は、データ処理装置内のトランザクションのための優先レベルを設定する方法であって、このデータ処理装置は、トランザクションを処理するための共有リソースと、前記共有リソースへ前記トランザクションを発行するための少なくとも1つのマスタデバイスであって、この少なくとも1つのマスタデバイスは、前記トランザクションの複数のソースを提供し、かつ、前記トランザクションのそれぞれは、これに関連付けられた優先レベルを有する、少なくとも1つのマスタデバイスと、前記共有リソースに発行される複数のトランザクションの中から、トランザクションを選択するためにアービトレーションポリシーを適用するためのアービトレーション回路であって、前記アービトレーションポリシーは、選択を実行する際に、前記複数のトランザクションのそれぞれに関連付けられた優先レベルを使用する、アービトレーション回路と、を含み、前記方法は、前記複数のソースのうちの少なくとも1つについて、スループット表示データに関して、そのソースから以前に発行されたトランザクションを監視するステップと、指定された目標スループットが実現できるようにする複数の既定の優先レベルの中から最下位の優先レベルを設定するように、そのソースからの新しいトランザクション毎に、前記スループット表示データに依存して、前記複数の既定の優先レベルのうちの1つに優先レベルを設定するステップと、を含む、方法を提供する。
【0043】
第4の態様から概観すると、本発明は、トランザクションを処理するための共有リソース手段と、前記共有リソース手段へ前記トランザクションを発行するための少なくとも1つのマスタ手段であって、この少なくとも1つのマスタ手段は前記トランザクションの複数のソースを提供するためのものであり、前記トランザクションのそれぞれは、これに関連付けられた優先レベルを有する、少なくとも1つのマスタ手段と、前記共有リソース手段に発行された複数のトランザクションの中から、トランザクションを選択するように、アービトレーションポリシーを適用するためのアービトレーション手段であって、このアービトレーションポリシーは、選択を実行する際に、前記複数のトランザクションのそれぞれに関連付けられた優先レベルを使用する、アービトレーション手段と、前記複数のソースのうちの少なくとも1つに関連付けられた適応優先手段であって、この適応優先手段は、関連付けられたソースから以前に発行されたトランザクションに関して、スループット表示データを監視するものであり、また、前記適応優先手段は、指定された目標スループットが実現できるようにする複数の既定の優先レベルの中から、最下位の優先レベルを設定するように、関連付けられたソースからの新しいトランザクション毎に、前記スループット表示データに依存して、前記複数の既定の優先レベルのうちの1つに、優先レベルを設定するためのものである、適応優先手段と、を含むデータ処理装置を提供する。
【0044】
添付の図面に関連して一読される、例示的な実施形態の以下の詳細な説明から、この発明の上記のおよび他の目的、特徴および利点が明らかとなろう。
【図面の簡単な説明】
【0045】
【図1】一実施形態に従う、データ処理装置のブロック図である。
【図2】一実施形態に従う、データ処理装置のブロック図である
【図3】一実施形態に従う、複数の適応優先回路が、単一マスタデバイスに関連付けてどのように使用され得るかを示すブロック図である。
【図4】代替の実施形態に従う、複数の適応優先回路が、単一マスタデバイスに関連付けてどのように使用され得るかを示すブロック図である。
【図5】一実施形態に従う、適応優先回路内に提供されるコンポーネントを示す図である。
【図6】一実施形態に従う、図5の適応優先回路の動作を示す流れ図である。
【図7A】画像処理装置等のマスタデバイスによって観察され得る待ち時間特性に対する帯域幅を示すグラフである。
【図7B】優先レベルがどのように異なる種類のマスタに割り当てられるかを示し、さらに、実施形態の適応優先回路が、必要な場合に、画像処理装置等のバッチ処理デバイスの優先レベルを上げるためにどのように使用され得るかを示す図である。
【図8】図5の適応優先回路のアキュムレータによって維持される累積値が、適応優先回路の動作時にどのように上下し得るかを示す図である。
【図9A】マスタで使用可能な帯域幅が、実施形態の適応優先回路を使用する場合に、バッチ動作の処理中にどのように変化し得るかを示す図である。
【図9B】マスタで使用可能な帯域幅が、実施形態の適応優先回路を使用する場合に、バッチ動作の処理中にどのように変化し得るかを示す図である。
【図10A】一実施形態に従い、累積値が、ある期間、マイナスにできるようにしながら、適応優先回路によって設定される優先レベルが、どのように累積値によって追跡し得るかを示す図である。
【図10B】一実施形態に従い、累積値が、ある期間、マイナスにできるようにしながら、適応優先回路によって設定される優先レベルが、どのように累積値によって追跡し得るかを示す図である。
【発明を実施するための形態】
【0046】
図1は、一実施形態に従う、データ処理装置のブロック図である。図示された実施例において、複数のマスタデバイス10、20、30は、相互接続構造40によって、複数のスレーブデバイス50、60、70に結合される。トランザクションが種々のマスタによって発行される場合、優先レベルは、これらのトランザクションに関連付けられ、これらの優先レベルは、装置内の種々のポイントにおける複数のアサートされたトランザクションの間のアービトレーションを実行する場合に使用される。例えば、相互接続40は、典型的にはアービトレーション45の複数のポイントを含み、各ポイントにおいて、アービトレーションポリシーは、優先レベルベースのアービトレーションを実行するために適用可能である。さらに、スレーブデバイスのうちの1つ以上は、それ自体にアービトレーションポイントを含んでもよい。例えば、スレーブデバイス3 70がメモリコントローラの形態を採る場合、こうしたメモリコントローラは、典型的には、未完了のトランザクションを配置し得る行列75を含み、行列内の各トランザクションは、その関連付けられた優先レベルの記録をとるように構成される。アービタ80は、行列のトランザクションエントリから、次にメモリに発行されるべきトランザクションを決定するために使用でき、こうしたアービタは、メモリに発行されるその次のトランザクションを決定するために、優先レベルベースのアービトレーションを適用する。こうした優先ベースのアービトレーションをスレーブデバイス内で実行するには、優先レベル情報を、相互接続40からスレーブデバイス70へ伝播させる必要がある。しかしながら、任意の内部アービトレーションを実行しない任意のスレーブデバイスでは、優先レベル情報は、これらのスレーブデバイスに伝播させる必要はなく、したがって、図1の実施例において、スレーブデバイス50および60の両方は、優先レベル情報を相互接続から伝播させる必要はない。
【0047】
本発明の実施形態に従い、マスタデバイスのうちの1つ以上に、そのマスタによって発行された各トランザクションに関連付けられる優先レベルを決定するための適応優先回路が提供され得る。このため、図1に示される実施例において、マスタデバイス20および30の両方は、これらのマスタによって発行された各トランザクションの優先レベルを設定するために、それぞれ、関連付けられた適応優先回路25および35を有する。本発明の実施形態の適応優先回路は、種々の異なるマスタデバイスに関連付けて使用可能であるが、一実施形態では、バッチ動作を実行するマスタデバイスと共に使用される。一実施例には、個別の処理ブロックが実行され、各処理ブロックは指定された時間内に完了する必要のある、画像プロセッサ、動画プロセッサまたは音声プロセッサがある。例えば、画像プロセッサを考慮すると、画像データに相当するフレームは、各フレーム期間内で処理する必要がある。図1の実施例では、マスタ30は、画像プロセッサ、動画プロセッサまたは音声プロセッサであると想定される。
【0048】
別の実施例として、適応優先回路は、割り当てられた期間内に、データのブロックを転送する必要があり得るダイレクトメモリアクセス(DMA)エンジン20と共に、使用してもよい。
【0049】
しかしながら、適応優先回路は、典型的には、装置内の各マスタには関連付けられず、このため、例えば、優先をそのトランザクションに割り当てるために、他のスキームを採用する他のマスタが存在してもよい。一実施例に、典型的にはこれに関連付けられた固定優先を有する、中央処理装置(CPU)がある。別の実施例として、ディスプレイへの出力を生じさせるためにストリーム処理を実行するLCDコントローラがある。CPUの場合と同様に、LCDコントローラは、典型的には固定優先と考えられており、多くの場合、CPUおよびLCDコントローラの両方は、画像プロセッサ、DMAエンジン等のバッチ処理デバイスに関連付けられたデフォルト優先よりも高い優先を有する。
【0050】
しかしながら、本発明の実施形態の適応優先回路のさらなる記載から明らかなように、適応優先回路は、そのソースで指定されたスループットを目標とするために、その関連付けられたソースから新しいトランザクションのそれぞれに割り当てられる優先レベルを制御するためのフィードバック機構を採用し、このフィードバック機構によって、システム内の他のソースのアクティビティとは独立して、スループットの目的を実現するために必要な最下位の優先レベルを発見する。必要な場合、これは、マスタ20およびマスタ30等のマスタデバイスの優先レベルを、マスタ10に関連付けられた優先と等しいまたはこれより大きいレベルに上げることができることを意味するが、この状態は、そのマスタデバイス20、30のスループットの目的を実現できるようにするために必要な最小限の時間、維持されるにすぎない。
【0051】
こうしたアプローチによって、マスタ20またはマスタ30等のマスタデバイスは、その指定された目標スループットに適合するために必要な共有リソース(スレーブデバイス50、60、70等)の最小限のシェアを占めるにすぎないことを確実にし、また、これにより、マスタ10等の他のトランザクションソースのパフォーマンスの改善を可能にする。
【0052】
さらに、こうしたアプローチは、システム内のアービトレーションポイント全てが、同じアービトレーションポリシーを適用できるようにする。このため、相互接続内のアービトレーションの各ポイントは、優先レベルベースのアービトレーションを適用でき、同様に、スレーブ70等の、関連するスレーブデバイス内のアービトレーションのローカルポイントは、そのデフォルトのアービトレーション機構と同じ優先レベルベースのアービトレーションポリシーを適用できる。このため、どのトランザクションが行列75から検索されるかを決定するアービタ80は、相互接続内で使用されるものとして、同じアービトレーションポリシーを使用できる。しかしながら、例えば、メモリ内の異なるチップ等の利用を最大限にするために、これが相互作用するメモリの構造および機能を考慮して、メモリコントローラは、そのスループットを増加させるためにさらなる機構を採用することもできることが理解される。こうした最適化は、トランザクションの優先レベルに基づくデフォルトのアービトレーションポリシーの最上位にレイヤできる。
【0053】
図2は、CPU100および画像処理装置(GPU)110がメモリコントローラ135へのアクセスを共有し、相互接続120を介してそのメモリコントローラに接続する、特定の実施例のインプリメンテーションを示す。CPUまたはGPUによって発行された各トランザクションは、CPUまたはGPUおよびメモリコントローラの間のデータの1つ以上のブロックの転送と共に、目標スレーブデバイス、この実施例ではメモリコントローラ135への、CPUまたはGPUからのアドレスの転送を含み、このデータ転送の方向は、トランザクションが書き込みトランザクションであるか読み出しトランザクションであるかに依存する。図2の概略図において、双方向データパスと共に、一方向アドレスパスが示されている。しかしながら、アドレスパスおよびデータパスの実際の構造はインプリメンテーションによって変わり、特に、トランザクションプロトコルは、相互接続によって採用されることが理解される。例えば、ARM Limited,Cambridge,United Kingdomによって開発されたAXI(Advanced eXtensible Interface)プロトコル等の、分割トランザクションプロトコルが使用される場合、複数の別々のアドレスパスおよび複数の別々のデータパスが存在してもよく、特に、別々のパスは、読み出しトランザクションおよび書き込みトランザクションのために提供される。
【0054】
図2の実施例に示されるように、CPU100は、そのトランザクションの固定優先を使用し、その優先レベルの表示は、トランザクションを開始する各アドレスと共に発行される。しかしながら、GPU110では、固定優先は使用されず、代わりに、発行された各トランザクションの優先レベルをアサートするために適応優先回路115が使用される。特に、後で詳述するように、適応優先回路115は、GPU110からの以前に発行されたトランザクションのスループット表示データを得るために、アドレスおよびデータパスを監視し、そのスループット表示データに基づいて、GPU110から発行される新しいトランザクション毎に、アサートする適切な優先レベルを決定する。
【0055】
相互接続120内において、典型的には、アービトレーションの複数のポイントが存在し、アービトレーションの各ポイントは、CPUおよびGPUによって設定される優先レベルに依存して、アービトレーションポリシーを適用する。1つのアービトレーションポイント、すなわち、メモリコントローラ135に転送されるアドレスおよび優先信号を生成するために使用される最後のアービトレーションポイントが、図2に概略的に示される。図2に示されるように、マルチプレクサ130は、CPUおよびGPUからの各トランザクションのアドレスおよび優先情報を受信し、関連するトランザクションのCPUおよびGPUからの関連付けられた優先情報をその入力として受信する、優先レベルベースのアービタ125の出力によって制御される。典型的には、CPUの優先は、GPUの優先よりも高くなり、このため、CPUおよびGPUの両方からの同時のアサートされたトランザクションが存在する場合、優先レベルベースのアービタ125は、メモリコントローラへ転送されるトランザクションとして、CPUを選択する。しかしながら、GPUのスループット目的に適合するために必要なため、および、必要な場合、適応優先回路115は、優先レベルベースのアービタ125が、CPUおよびGPUがメモリコントローラ135へのトランザクションを同時にアサートする場合に、CPUトランザクションの前にGPUトランザクションを出力するポイントにおいて、CPUよりも高い優先となるポイントへ、GPUのトランザクションの優先を格上げしてもよい。
【0056】
相互接続120からメモリコントローラ135へ転送される各トランザクションは、行列140に配置され、メモリコントローラが、メモリにトランザクションを発行する度に、優先レベルベースのアービタ145は、行列の未完了のトランザクションのどれが最上位の優先を有するかを決定するために、行列140の現在のコンテンツを分析する。次に、最上位の優先を有するトランザクションが、メモリに転送され、特に、関連する読み出しまたは書き込み動作が実行されるように、トランザクションのアドレスが、メモリに転送される。データの処理は、通常どおりに行われる。
【0057】
一実施形態では、単一マスタデバイスは、トランザクションの複数の異なるソースを提供してもよく、こうした各ソースに別々の適応優先回路を提供してもよい。例えば、図3は、GPU110によって発行された読み出しおよび書き込みトランザクションのために、別々の適応優先回路が提供されている一実施形態を示す。この実施形態では、分割トランザクションプロトコルが使用され、GPU110および相互接続の間の通信は、5つの別々の通信チャネル、すなわち、書き込みトランザクションのアドレス転送を搬送するための書き込みアドレス(WA)チャネル、書き込みトランザクションのデータ転送を搬送するための書き込みデータ(W)チャネル、書き込みトランザクションの終了時に、マスタへトランザクションステータス情報を返すための書き込み応答(B)チャネル(例えば、トランザクションが完全に完了したかどうか、またはエラーが発生したかどうか等を示す)、読み出しトランザクションのアドレス伝送を搬送するための読み出しアドレス(RA)チャネル、および読み出しトランザクションのデータ伝送を搬送するための読み出しデータ(R)チャネルを含む。
【0058】
図3に示されるように、適応書き込み優先回路160は、新しい書き込みトランザクション毎に書き込み優先レベルを作成するために構成でき、その書き込み優先レベルは、目標スレーブデバイスへのパスに沿って、アービトレーションポイントのいずれかで使用するための書き込みアドレスと共に受け渡しされる。以前に発行された書き込みトランザクションで、適応書き込み優先回路によって観察されたスループット表示データは、図3で図示されるように、書き込みアドレスおよび書き込みデータチャネルから取得することができる。特に、一実施形態では、スループット表示データは、トランザクション開始表示およびトランザクション終了表示を提供する待ち時間表示データの形態を採ることができる。トランザクション開始および終了表示は種々の方法で決定可能であるが、特定の一実施形態では、GPU110からの書き込みアドレスの発行は、トランザクションの開始として処理され、GPU110からの最後の書き込みデータ値の発行は、終了表示として処理される。代替の実施形態では、トランザクション終了表示は、書き込み応答チャネル上を通過する信号から導くことができ、特定のトランザクションの書き込み応答データは、典型的には、書き込みデータチャネル上の最後の書き込みデータ値の転送後しばらくして生じる。
【0059】
図3にも示されるように、適応読み出し優先回路165は、読み出しアドレスおよび読み出しデータチャネルから以前に発行された読み出しトランザクションのそのスループット表示データを取ることができる。スループット表示データが、トランザクション開始およびトランザクション終了の情報を提供する実施形態において、トランザクション開始の情報は、トランザクション毎に発行された読み出しアドレスから決定でき、トランザクション終了の情報は、一実施形態では、トランザクション毎にマスタデバイスに返される第1の読み出しデータ値の発生によって決定される。
【0060】
図3に、書き込みトランザクション情報および読み出しトランザクション情報の別々のチャネルを有する分割トランザクションプロトコルを参照する、書き込みトランザクションおよび読み出しトランザクションの別々の適応優先回路の利用が図示されるが、こうした別々のチャネルを提供しなければならないという要件は存在しない。実際に、任意のシステムにおいて、読み出しトランザクションおよび書き込みトランザクションのために別々の適応優先回路を提供でき、また、そのシステムが、読み出しおよび書き込みトランザクションのために、共有アドレスバスおよび/または共有データバスを採用する場合、各適応優先回路は、読み出しトランザクションまたは書き込みトランザクションに関する情報の存在を識別するために、これらのアドレスおよびデータバス上の情報に関連して、通過する関連付けられた制御信号を使用し、これによって、適応書き込み優先回路が、書き込みトランザクションに関連して動作し、適応読み出し優先回路が、読み出しトランザクションに関連して動作することを可能にする。
【0061】
一実施形態では、単一マスタデバイスは、そのマスタデバイス上で実行する複数の処理スレッドの形態で、トランザクションの複数のソースを提供してもよく、適応優先回路は、これらの処理スレッド毎に別々に提供されてもよい。図4は、GPU110が、節点処理動作を実行する節点プロセッサ200、および、画素処理動作を実行する多数の画素プロセッサ205、210を組み込む、こうした一実施例を示す。これらの種々の処理スレッドはそれぞれ、これに関連付けられたID値を有し、回路215は、種々の処理スレッドから出力パスへ発行された信号を多重化し、適切な処理スレッドへ転送するために、GPUによって受信した信号を逆多重化するために提供される。送信トラフィックの場合、回路215は、出力パスに発行される前に、データへ適切なID値を加算し、受信データの場合は、処理スレッドのどれが受信データの送信先になるかを決定するために、関連付けられたID値を使用する。例示として、関連付けられたID信号パスと共に一方向アドレスパスが示され、関連付け双方向IDパスと共に双方向データパスが示されるが、これらのパスはそれぞれ、実施形態に依存する、特に、使用されるトランザクションプロトコルに依存する通信の1つ以上の別々のチャネルによって、形成されてもよいことが理解される。
【0062】
図4に示されるように、別々の処理スレッド200、205、210のそれぞれに、別々の適応優先回路225、230、235が提供され、アドレスおよびデータ情報を搬送するこれらの別々の適応優先回路およびバスの間のインターフェースを取るために、IDベースのルーティング回路220が使用される。特に、各アドレスまたはデータ項目を伴うID値を使用することにより、IDベースのルーティング回路220は、適応優先回路が、アドレスおよびデータ項目から導かれたスループット表示データを受信するべきであると決定する場合がある。一実施形態では、IDベースのルーティング回路220は、関連付けられたIDに関する全てのアドレスおよびデータ項目に、関連する適応優先回路を通知することができ、または、代わりに、各トランザクションの開始および終了表示を検知するために必要とされる処理を内部的に実行し、関連する適応優先回路へ、これらの開始および終了表示を転送するだけでもよい。新しいトランザクション毎に、関連する適応優先回路は、関連するアドレス信号を有する側帯波信号として発行するためのIDベースのルーティング回路220を介してルーティングされる優先値を生成する。
【0063】
GPU110は、この実施形態では、少なくとも1つのアービトレーションポイント(メモリコントローラ内で提供されるもの等)を含むスレーブデバイスに接続されてもよく、または、より典型的には、1つ以上のアービトレーションポイントを組み込む相互接続構造を介して、こうしたスレーブデバイスに接続されてもよい。後者の状況では、図1を参照して上述されたように、1つ以上のアービトレーションポイントを有する相互接続に加えて、スレーブデバイスは、アービトレーションポイントを独立して含んでもよい。
【0064】
図5は、本発明の一実施形態に従う、適応優先回路内に提供されたコンポーネントを概略的に示す図である。この実施例において、調整300を必要とするバスマスタは、システム相互接続310への接続パス305上のトランザクションを開始し、この実施例では、接続パス305がARMのAXIプロトコルを採用すると想定される。しかしながら、前述のように、本発明の実施形態の技術は任意の通信プロトコルに関連して採用できるため、AXIプロトコルを使用しなければならないという要件は存在しない。
【0065】
適応優先回路315は、以前に発行されたトランザクションのスループット表示データを取得し、新しいトランザクションが開始する時間を検知し、その新しいトランザクションの優先レベルを生成するために、接続パス305上で生じるアクティビティの情報を収集するために構成される。
【0066】
特に、トランザクション開始回路320は、マスタ300からの要求としてトランザクション開始を検知するが、トランザクション終了回路325は、トランザクション完了として検知する。一実施形態では、読み出しトランザクションでは、トランザクション終了回路325は、第1の読み出しデータがマスタ300に戻ると、トランザクション終了を検知し、一方で、書き込みトランザクションでは、トランザクション終了回路325は、最後の書き込みデータ項目がバスマスタ300から伝送されると、トランザクション終了を検知する。
【0067】
アクティブトランザクションカウントコンポーネント330は、バスマスタ300から進行中のトランザクション数を計算するために、これらの2つのイベントを使用する。各クロックサイクルでは、未処理のトランザクションの数のこの表示は、加算器350を介してアキュムレータ355へとルーティングされ、ここで、未処理のトランザクションの数と等しい数が、その現在のアキュムレータ値に加算される。
【0068】
さらに、トランザクション毎の目標平均待ち時間を識別する目標待ち時間値340が、目標待ち時間値ストレージ340内に格納される。トランザクションが終了する度に、乗算器335および変換器345は、加算器350と共に、目標待ち時間値を累積値から減算する。
【0069】
アキュムレータ355からの出力は、乗算器360において、ループゲインを選択するために、ループゲインストレージ365内に格納されるプログラムされたループゲイン値で乗算され、プログラムされた範囲からの値が範囲の限界に飽和される場合に、生成された値は、飽和ブロック370を通じて受け渡しされる。このブロックの出力は、次に、マスタからの以降のトランザクションの優先レベルを促進するために使用される。
【0070】
回路320および325によって観察された各トランザクション開始およびトランザクション終了の表示の間の時間は、各トランザクションの待ち時間を識別することが理解される。以前に発行されたトランザクションの平均の観察された待ち時間が、ストレージ340の目標平均待ち時間値未満である場合、アキュムレータ値は減少し、これにより、以降のトランザクションで設定された優先レベルが減少し、これはさらに、そのとき観察された平均待ち時間を増加させる。対照的に、平均の観察された待ち時間がストレージ340内の目標平均待ち時間値よりも大きい場合、アキュムレータ値は増加し、これにより、以降のトランザクションに関連付けられた優先レベルが増加し、これはさらに、そのとき観察された平均待ち時間を減少させる。
【0071】
ループゲインストレージ365において格納されるループゲイン期間が、システム内の待ち時間が存在する場合、ループが安定することを確実にするために選択される。これは、標準的な制御理論技術によって決定でき、ループゲインの上限を設定する。下限は、マスタが実行するアクティビティの持続時間によって決定される。例えば、GPUは、画像データのフレームで動作するため、ループの時間定数は、フレーム期間よりも小さくなるはずである。
【0072】
飽和ブロック370によって採用される飽和限界は、以下のように設定してもよい。任意のポイントにおいて目標スレーブデバイス(例えば、メモリコントローラ)からの帯域幅が不十分である場合、システム設計者は、帯域幅のマスタデバイスを必要とする順番を決定しなければならない。最上位の優先レベル値は、この順序によって決定される。さらに、目標スレーブデバイスからの超過帯域幅が必要な場合、アキュムレータ値は、最下位の優先レベル未満に低下する。飽和限界は、最下位の優先レベルに設定すべきである。
【0073】
しかしながら、一実施形態では、こうした低下を可能とすることにより、アキュムレータの値が、実際に、マスタに供給される超過帯域幅のレベルを格納するため、アキュムレータをさらに低下させることが有利である。以降、システムの使用可能な帯域幅がより少ない場合に、アキュムレータ値は、優先レベルが最小限の優先レベルを超えて変化するポイントに戻るにはいくらか時間が必要であり、その期間中に、バスマスタは、実際に、以前に受信した超過帯域幅の分を返し、これによって、システム内の他のマスタデバイスからのより良いパフォーマンスを可能にする。しかしながら、典型的には、GPUのフレーム間において、超過帯域幅の分を返すことはできないため、一実施形態では、リセット機能は、アキュムレータをフレーム間でリセットできるようにするために、アキュムレータ355に関連して提供される。
【0074】
アキュムレータに発行されたリセット信号は、種々の方法で提供できる。一実施形態では、アキュムレータ回路355は、関連付けられたバスマスタ300によって生成されたリセット信号を受信してもよい。例えば、関連付けられたバスマスタが画像処理装置である実施形態を考えると、画像処理装置は、各フレームの完了時に中断信号を生成するために構成されてもよく、その中断信号は、アキュムレータ回路355へリセット信号を生成するために使用してもよい。代替の実施形態では、データ処理装置の別のマスタ内で実行する、例えばCPUで実行するソフトウェアは、こうしたリセット信号を生成するために構成されてもよい。
【0075】
一実施形態では、トランザクション開始およびトランザクション終了表示をトリガする条件がプログラム可能である。同様に、例えば、関連付けられたバスマスタ300のアクティビティを考慮して、目標待ち時間を変化できるようにするために、ストレージ340内に格納される目標待ち時間値を、プログラム可能にしてもよい。
【0076】
代替の実施形態では、各クロックサイクルで、未処理のトランザクションの数と等しい値を、アキュムレータ値に加算する代わりに、適応優先回路は、各クロックサイクルで、固定整数値、例えば、論理の1の値を追加するように構成してもよい。こうした実施形態では、ストレージ340内に格納される目標待ち時間値は、トランザクションの開始および終了ポイントの間の目標平均待ち時間の表示ではなく、トランザクション終了ポイントの発生の間の目標平均待ち時間の表示を提供するために構成できる。こうした実施形態では、適応優先回路は、一定の待ち時間ではなく、一定の処理レートを目標とする効果を有する。
【0077】
図6は、図5の適応優先回路315の動作を示す流れ図である。ステップ372において、新しいクロックサイクルが開始したかどうかが決定され、新しいクロックサイクルが開始した場合、プロセスはステップ374に進み、ここで、このクロックサイクルで終了トランザクション表示が観察されたかどうかが決定される。その場合、ステップ376および378が、並列で実行される。特に、ステップ376において、コンポーネント330によって維持されるアクティブトランザクションカウントがデクリメントされ、典型的には、値は1だけデクリメントされる。ステップ378において、ストレージ340内の目標待ち時間値は、アキュムレータ355によって維持されるアキュムレータ値から減算される。
【0078】
ステップ376および378の後で、プロセスはステップ380に進む、または、現在のクロックサイクルで終了トランザクション表示が観察されていない場合に、ステップ374からステップ380へ直接進む。ステップ380では、現在のクロックサイクルにおいて開始トランザクションが観察されたかどうかが決定され、観察された場合、ステップ382および384は、並列で実行される。特に、ステップ382において、アクティブトランザクションカウント値がインクリメントされ、典型的には、値は、1だけ、インクリメントされる。ステップ384において、優先レベルは、現在の累積値に基づいて、新しいトランザクションに割り当てられ、図5を参照して上述されるように、こうした優先レベル値は、アキュムレータからの出力について、ループゲイン修正および飽和動作を実行した後で得られる。
【0079】
ステップ382および384の後、プロセスはステップ386に進む、または、現在のクロックサイクルにおいて開始トランザクション表示が観察されていない場合には、ステップ380からステップ386へと直接進む。ステップ386において、未処理のトランザクションの数と等しい数だけ、アキュムレータ値を増加させるために、現在のトランザクションカウント値がアキュムレータに加算される。ステップ386の後、プロセスはステップ372に戻り、次のクロックサイクルの開始を待つ。
【0080】
図7Aは、GPU等のバッチ処理デバイスによって観察された待ち時間特性に対する帯域幅を示すグラフである。図7Aに概略的に示されるように、待ち時間はゼロから増加を開始するため、GPUの帯域幅は、最初は影響を受けない。これは、GPUが、最初は、待ち時間の変化には比較的影響されない複数の未処理のトランザクション手段を処理することができるためである。しかしながら、いくつかのポイントにおいて、待ち時間の増加は、帯域幅に影響を及ぼし始め、待ち時間特性に対する帯域幅は、曲線400に従い始める。曲線400の領域において、待ち時間の増加は帯域幅の低下につながり、同様に、待ち時間の減少は、帯域幅の増加につながることがわかる。このため、デバイスの所望の目標帯域幅を決定できる場合、これは、対応する目標待ち時間と等しくすることができることがわかる。
【0081】
点線410に示されるように、読み出しおよび書き込み動作のための待ち時間特性に対する帯域幅は変動することがあり、特に、曲線400は、読み出しトランザクションに対して適切なものであってもよいが、別々の曲線410は、書き込みトランザクションに関連してもよい。さらに、デバイスは、典型的には、ひいては異なる読み出しおよび書き込み目標待ち時間も考慮する、読み出しおよび書き込み動作の異なる目標帯域幅を有してもよい。これが、書き込みトランザクションおよび読み出しトランザクションの別々の適応優先回路を提供するために、特定の実施形態においてこれが有利であり得るという理由である。
【0082】
図7Bは、概略的に、異なる種類のデバイスに関連付けることができる優先レベルを示す。低い優先限界において、優先レベル420の範囲を、バッチ処理デバイスに関連付けてもよく、この一実施例に、GPUがある。1つ以上のより高い優先レベル425は、LCDコントローラ等のストリーム処理デバイスの動作がバッチ処理デバイスの動作よりも時間的に厳しいため、ストリーム処理デバイス、例えば、LCDコントローラに関連付けてもよい。次に、1つ以上のより高い優先レベル430を、システム内に複数存在し得る、CPUデバイスに関連付けてもよい。最終的に、保存された優先レベル435を提供してもよく、ストリーム処理デバイスは、時により、ストリーム処理デバイスが必要なレートで出力データを生成できるように、十分な帯域幅を得るために、その保存された優先レベルを受け入れることが可能にされ得る。
【0083】
本発明の実施形態に従い、バッチ処理デバイスのうちの1つ以上に、観察された平均待ち時間が目標待ち時間より大きい場合にのみ、関連付けられたバッチ処理デバイスの優先レベルを上げるように動作する、関連付けられた適応優先回路が提供されてもよく、このため、さらなる帯域幅が必要である。これは、バッチ処理デバイスの優先を、ある期間、CPUおよび/またはストリーム処理デバイス優先範囲に増加させてもよい。しかしながら、適応優先回路の動作は、トランザクションの他のソースのアクティビティとは独立して、使用される指定された待ち時間目標を実現するために必要な最下位の優先レベルを生じさせ、したがって、適応優先回路に関連付けられたソースは、その指定された待ち時間目標に適合するために必要な共有リソースの最小限の割合のみを取るため、これにより、システム内の他のソースのパフォーマンスを向上させる。
【0084】
図8は、アキュムレータ355によって維持される累積値が、読み出しトランザクションの各トランザクション開始およびトランザクション終了の間をどのように上下するかを概略的に示す図である。トランザクションの開始を信号するアドレス500の発生時において、トランザクション開始表示515は、アクティブトランザクションカウント値がインクリメントされるようにするトランザクション開始回路320によって生成される。各クロックサイクルで、アクティブトランザクションカウントの値がアキュムレータ値に加算され、これにより、アキュムレータ値は、ライン530に沿って、増加する。いくつかのクロックサイクル後、第1の読み出しデータ値510が観察された場合、これは、トランザクション終了表示520を、トランザクション終了回路325によって生成させる。トランザクション開始表示515およびトランザクション終了表示520の間で経過した期間は、そのトランザクションの待ち時間期間525を識別する。トランザクション終了表示が生成される時点において、これは、ストレージ340に格納された目標平均待ち時間値に等しい値を、累積値を低下させるアキュムレータ値から減算する。低下後の終了ポイントは、待ち時間期間525が目標待ち時間と等しい場合、ポイントBになる。しかしながら、待ち時間期間525が目標待ち時間よりも大きい場合、終了ポイントは、図8のポイントAによって概略的に図示されるポイントBを超える。同様に、待ち時間期間525が目標待ち時間未満である場合、終了ポイントは、図8においてポイントCによって概略的に示される、ポイントB未満になる。
【0085】
したがって、以前に発行されたトランザクションで観察された平均待ち時間が目標平均待ち時間を越える場合に、アキュムレータの値は経時的に増加し、これにより、以降のトランザクションに関連付けられた優先レベルは増加することが理解される。同様に、以前に発行されたトランザクションで観察された平均待ち時間が目標待ち時間未満である場合、アキュムレータ値は経時的に低下し、これにより、以降のトランザクションに関連付けられた優先レベルは低下する。
【0086】
図8は、比較的簡単な実施例を示し、実際に、複数の未完了のトランザクションを時間の任意のポイントで進行中にすることができ、このため、複数のトランザクションのアドレスは、以前のトランザクションのうちの1つに関連付けられたデータが観察される前に発行することができ、これは、トランザクション開始ポイント515およびトランザクション終了ポイント520の間で、1つ以上のさらなるトランザクション開始ポイントおよびトランザクション終了ポイントが観察され得ることを意味する、ことが理解される。しかしながら、トランザクションで観察された平均待ち時間期間が目標待ち時間より大きい場合に、累積値が経時的に増加し、観察された平均待ち時間が目標待ち時間未満である場合に、アキュムレータ値は経時的に低下するという、同じ基本的な現象が観察される。
【0087】
図9Aおよび9Bは、ある特定の実施例の状況の、特定の処理期間内にGPUによって観察された帯域幅を概略的に示す。特に、図9Aは、経時的に、帯域幅がどのように変化するかを示し、図9Bは、経時的に、処理の割合(%)がどのように増加するかを示す。処理期間の終了までに、必要な処理の100%を完了する必要がある。典型的には、処理期間は、フレーム期間未満になる。特に、各フレームで必要な処理量の変化を考慮して、フレームのほんの一部のみがフレーム期間内でその処理を完了できないようにするために、目標帯域幅が設定されている。このため、ほとんど全てのフレームでは、フレーム期間終了の少し前に、処理が完了される。
【0088】
GPUがその目標帯域幅に等しい一定の帯域幅を観察する場合、点線552によって示されるように、処理期間終了によって、タスクが完了することになる。図9Bに示されるように、こうした状況で、処理の割合(%)は、処理期間終了までに、0%から100%へ着実に増加する点線577に従う。
【0089】
しかしながら、図9Aおよび9Bに示される実施例において、フレーム期間の初期の部分において、GPUは、その目標帯域幅よりも大幅に多く受信し、特に、ライン550によって示された帯域幅を受信すると想定される。これは、フレーム期間の初期の部分において、処理の割合(%)はライン565に従い、したがって、処理がフレーム期間のその初期の部分において予想されるよりもずっと先行するということを意味する。時間t1において、GPUは、任意の帯域幅の受信を突然中止し、したがって、さらなる処理を行うことができない。このため、帯域幅はゼロに低下し、ライン555に従うが、処理の割合(%)はライン570に従う。この時間において、累積値は、フレーム期間の初期の部分中にマスタに供給される超過帯域幅のレベル表示を格納するために、マイナスになってもよい。GPUに帯域幅が使用可能になると、GPUから新しいトランザクションに関連付けられた優先レベルの増加をGPUが開始するまで、少し時間がかかる。
【0090】
時間t2において、GPUは、その目標帯域幅を得ることを開始し、帯域幅は、残りの処理期間の間、ライン560に従う。したがって、処理期間終了までに100%の処理が実行できるように、処理の割合(%)は増加を開始し、ライン575に従う。
【0091】
なお、マスタに供給された超過帯域幅のレベル表示を格納するために、累積値をマイナスにできなくなっている場合、新しいトランザクションの優先レベル出力はこの前に増加されており、GPUは、この前に帯域幅を取得することを開始しており、こうして、示された処理期間の終了前に、処理の割合(%)は100%に達する。これは、適応優先回路を動作させる完全に受容可能な方法であるが、アキュムレータ値をマイナスにすることができる機構によって、超過帯域幅の量を格納可能にすることにより、処理の100%を実行するためにかかる期間が、期間全体でその目標帯域幅を受信した場合と同じになることを確実にできる。したがって、これは、GPUが、絶対的に必要であるよりも大きい帯域幅を取ることを回避することによって、システム内の他のマスタのパフォーマンスが最大化することを可能にする。
【0092】
図10Aおよび10Bは、累積値が、供給された超過帯域幅のレベルを格納するためにマイナスになるインスタンスを除く、優先レベルが、累積値を一般的に追跡する方法を示す。期間600中、観察された待ち時間が目標待ち時間よりも短くなるため、累積値は低下し、これが、優先レベルの低下をもたらす。いくつかのポイントにおいて、観察された待ち時間は、目標待ち時間よりも増加するようになり、これにより、優先レベルの対応する増加と共に、パス605に沿った累積値の増加が生じる。その後、いくつかのポイントにおいて、観察された待ち時間は目標の待ち時間未満になり、累積値は、パス610に沿って、減少を開始する。最初は、優先レベルは同様のパスに沿って追跡するが、累積値がポイント615においてマイナスになると、優先レベルは、期間630では、優先レベルゼロを維持される。累積値がポイント617において再び増加を開始し、ライン620に従う場合、優先レベルは、すぐにゼロレベルを超えて増加を開始するのではなく、代わりに、ポイント627に達するまで、優先レベルゼロ値にとどまり、その後、パス625に沿って増加を開始する。
【0093】
代替の実施形態では、アキュムレータは、ライン615に沿って減少しないようにされている場合があり、その場合、優先レベルは、時間ポイント617において累積値が増加を開始するとすぐに、再び増加を開始している。しかしながら、上述のように、累積値がマイナスになることを可能にすることにより、これは、実際、マスタに供給される超過帯域幅レベルの表示を蓄積し、必要であるよりも前にバッチタスクを終了するのではなく、自然な処理期間を保持できるようにされている。
【0094】
上記の実施形態から、こうした実施形態は、そのソースの指定されたスループットに目標設定するために、関連付けられたソースから新しいトランザクションのそれぞれに割り当てられる優先レベルを制御するためのフィードバック機構を使用する適応優先回路を提供し、また、この機構によって、システム内の他のソースのアクティビティとは独立して、スループット目的を実現するために必要な最下位の優先を発見することが、理解される。こうして、こうした機構は、他のマスタのアクティビティとは独立したパフォーマンスを提供するために、システムリソースへの調整されたアクセスを提供し、これによって、システムリソースの最適な割り当てが、システム内のマスタのパフォーマンス、およびスレーブ、例えば、メモリコントローラの利用を最大化できるようにする。
【0095】
本明細書において、添付の図面を参照して、例示的な発明の実施形態が詳細に説明されているが、本発明はこれらの正確な実施形態に制限されず、添付の請求項によって定義されるように、発明の範囲および精神から逸脱しない限り、当業者によって、種々の変更および修正を実行可能であることが理解される。
【符号の説明】
【0096】
100 CPU
110 GPU
115 適応優先回路
120 相互接続
125、145 アービタ
130 マルチプレクサ
135 メモリコントローラ
140 行列
【技術分野】
【0001】
本発明は、トランザクションのために優先レベルを設定するデータ処理装置および方法に関する。
【背景技術】
【0002】
システム内のマスタデバイスによって発行されたトランザクションを処理するための、1つ以上のリソースを提供することが、データ処理システムにおいて公知である。こうしたリソースの一実施例には、システム内のマスタデバイスによって、これに発行されたトランザクションに応答して、動作を実行するために提供される1つ以上のスレーブデバイスがある。スレーブデバイスは種々の形態を採ることができ、一実施例には、データ処理システム内の種々のマスタデバイスによって発行される、読み出しおよび書き込みトランザクションに基づいて、関連付けられたメモリに関し、読み出しおよび書き込みアクセスを処理するために使用される、メモリコントローラがある。
【0003】
処理トランザクションで提供されるリソースは、多くの場合、複数のトランザクションソース間で共有される。例えば、システムオンチップ(SoC)システムでは、システムリソースを共有するための複数のマスタデバイスで公知である。こうした共有リソースが存在する場合には必ず、典型的には、マスタデバイスおよび共有リソースを相互接続するパスに沿って、1つ以上のアービトレーションポイントが存在し、こうしたアービトレーションポイントは、同じ共有リソースに発行された複数の未完了のトランザクションの間で調整を行うために、アービトレーションポリシーを適用するためのアービトレーション回路を組み込む。したがって、各マスタに割り当てられる共有システムリソースの割合は、アービトレーションポリシーによって決定される。また、次に、個々のマスタのパフォーマンスは、これが得るシステムリソースのシェアに依存する。
【0004】
アービトレーションポリシーには多数の公知の種類が存在する。例えば、固定アービトレーションポリシーを適用してもよいが、こうしたアプローチでは、任意の特定のマスタが取得するシステムリソースのシェアは、経時的に変化する、他方のマスタデバイスのアクティビティに依存する。このため、こうした固定アービトレーションポリシーは、システムの他のマスタのアクティビティに依存する特定のマスタのパフォーマンスを提供する。特定の期間で実行する特定のタスクを有するマスタデバイス(例えば、フレーム期間内に画像データに相当するフレームを処理する必要がある画像処理装置)では、固定レベルのシステムリソースが必要である。しかしながら、固定アービトレーションポリシーでは、このレベルのシステムリソースを固定することは可能ではないため、全体的なシステム利点がない超過システムリソースを受信するようにマスタを構成し、こうして、他のマスタからこのリソースを奪うか、代わりに、マスタが不十分なシステムリソースを受信し、限られた時間で特定のタスクを完了させることが不可能になる。多くのシステムにおいて、後者の状況は受け入れがたいものであり、そのため、アービトレーションポリシーは、最悪な条件におけるシステムリソースへ十分なアクセスを提供するように設定されることが多く、これは、通常の動作条件下で、いくつかのマスタデバイスが、必要とするよりも大きいシステムリソースへのアクセスを受信するため、他のマスタから、そのパフォーマンスを向上させるための機会を奪っていることを意味する。
【0005】
重み付けされたラウンドロビンアービトレーションポリシー等のいくつかの公知のアービトレーションポリシーは、これらが全て、全動作条件において最小限の帯域幅を保証されるように、マスタの間で使用可能な帯域幅をパーティション化する。しかしながら、こうしたポリシーは、その最小限の帯域幅を実現するために典型的に必要な、共有システムリソースのより大きなシェアを、マスタに割り当てなければならず、これは、これらの他のマスタのパフォーマンスの対応する低下と共に、システムの他のマスタの待ち時間を増加させる効果をもたらす。
【0006】
非特許文献1の記事は、相互接続による単一共有目標へのアクセスを求めるいくつかのイニシエータの間を調整するための、アービトレーション機構について記載している。記載されたソリューションは、目標のアービトレーションを2つの部分、つまり、異なるイニシエータから目標へと要求を配信するための相互接続の中心のアービトレーション、および異なるイニシエータの帯域幅割り当てを施行するための、相互接続のエッジのアービトレーションへ分割する。(仮想チャネルとして記事中にも記載されている)目標へつながるスレッドを、3つのクオリティオブサービスレベル、つまり、優先スレッド、帯域幅スレッドおよびベストエフォートスレッドのうちの1つに割り当てることができる。優先スレッドは、短い待ち時間サービスに最適化されており、帯域幅スレッドは固定ジッター境界内のスループット保証を受信し、ベストエフォートスレッドは、帯域幅が他方のスレッドによって余っているとき、およびその場合に、サービスを受信する。優先スレッドおよび帯域幅スレッドは、それに関連付けられた、特定の絶対的な目標の帯域幅割り当てを有する。優先スレッドが、その割り当てよりも低いレートのサービスを要求する限り、これは絶対的な優先を受信する。同様に、帯域幅スレッドが、その割り当てよりも低いレートのサービスを要求する限り、これは、ベストエフォートスレッドの前にサービスされる。しかしながら、その割り当てよりも大きいレートで、優先スレッドまたは帯域幅スレッドのいずれかがサービスを要求する場合、これらはベストエフォートスレッドとなるように格下げされる。
【0007】
このため、こうした機構によって、その帯域幅割り当てよりも大きいレートでのサービスの要求を開始する場合、より高い優先スレッドは格下げされる。しかしながら、こうしたアプローチを採用する場合、特定のスレッドに割り当てられるクオリティオブサービスレベルは、使用されているスキームにより、これらのスレッドがその所望のタスクを実現できるようにするために絶対的に必要であるよりも高くなり、そのため、中央処理装置(CPU)等のシステム内の他のマスタのパフォーマンス可能性は低下する。
【0008】
したがって、データ処理装置内の複数のソースから発行されたトランザクションによって、共有リソースへのアクセスを調整するための改善された技術を提供することが望ましい。
【先行技術文献】
【非特許文献】
【0009】
【非特許文献1】W.Weberら、「A Quality−of−Service Mechanism for Interconnection Networks in System−on−Chips」、Sonics,Inc,1530−1591/05 $20.00 (著作権)2005 IEEE
【発明の概要】
【課題を解決するための手段】
【0010】
第1の態様から概観すると、本発明は、トランザクションを処理するための共有リソースと、前記共有リソースへ、前記トランザクションを発行するための少なくとも1つのマスタデバイスであって、この少なくとも1つのマスタデバイスは、前記トランザクションの複数のソースを提供し、前記トランザクションのそれぞれは、これに関連付けられた優先レベルを有する、少なくとも1つのマスタデバイスと、前記共有リソースに発行された複数のトランザクションの中から、あるトランザクションを選択するために、アービトレーションポリシーを適用するためのアービトレーション回路であって、このアービトレーションポリシーは、選択を実行する際に、前記複数のトランザクションのそれぞれに関連付けられた優先レベルを使用する、アービトレーション回路と、前記複数のソースのうちの少なくとも1つに関連付けられる適応優先回路であって、この適応優先回路は、関連付けられたソースから以前に発行されたトランザクションに関して、スループット表示データを監視し、かつ、指定された目標スループットが実現できるようにする複数の既定の優先レベルの中から、最下位の優先レベルを設定するように、関連付けられたソースからの新しいトランザクション毎に、前記スループット表示データに依存して、前記複数の既定の優先レベルのうちの1つに、優先レベルを設定するように構成される、適応優先回路と、を含むデータ処理装置を提供する。
【0011】
本発明によると、適応優先回路は少なくとも1つのソースに関連付けられ、そのソースから以前に発行されたトランザクションのスループット表示データを受信する。その時間に利用可能なそのスループット表示データに基づき、関連付けられたソースから新しいトランザクションが発行され、かつ、適応優先回路は、実現される指定された目標スループットを考慮して、その新しいトランザクションの優先レベルを設定するように構成される。特に、適応優先回路は、複数の既定の優先レベルのうちの1つに優先レベルを設定でき、新しいトランザクション毎に、指定された目標スループットが実現できるようにする複数の既定の優先レベルの中から、そのトランザクションの関連付けられた優先レベルを、最下位の優先レベルに設定する。
【0012】
新しいトランザクションに設定される優先レベルは、以前に発行されたトランザクションで観察されたスループット表示データに依存するため、本発明の適応優先回路は、次に、フィードバックループの形態を使用して動作し、新しいトランザクションに設定される優先レベルは、次に、適応優先回路によって後で観察されるスループットに影響し、これが、次に、以降の新しいトランザクションに設定される優先レベルに影響する。
【0013】
ソースからそれぞれの新しいトランザクションに割り当てられる優先を制御するために、このフィードバック機構を使用することで、適応優先回路は、データ処理装置内の他のトランザクションのソースのアクティビティとは独立して、指定された目標スループットを実現するために必要な、最下位の優先レベルを発見することができる。適応優先回路に関連付けられたソースによって発行されるトランザクションは、そのソースの指定された目標スループットに適合するために必要な最下位の優先レベルに設定されるので、また、適応優先回路に関連付けられたソースは、その指定された目標スループットに適合するために必要な共有リソースの最小限のシェアのみを占めるので、システム内の他のソースのパフォーマンスを改善できる。
【0014】
スループット表示データは、種々の形態を採ることができる。しかしながら、一実施形態では、スループット表示データは、以前に発行されたトランザクションに関連付けられた待ち時間を示す待ち時間表示データを含み、指定された目標スループットは、指定された目標待ち時間である。多くの場合、待ち時間の値の範囲で、待ち時間の値が減少すると、スレーブデバイスの帯域幅、ひいてはスループットが増加し、同様に、待ち時間が増加すると、帯域幅、ひいてはスループットが減少するように、トランザクションのソースは、待ち時間特性への帯域幅を有する。ソースの所望のスループットを考慮すると、待ち時間特性に対する帯域幅を参照して、目標待ち時間を決定することが可能である。適応優先回路は、次に、以前に発行されたトランザクションで観察された待ち時間表示データが、指定された目標待ち時間とどのように比較されるかに依存して、新しいトランザクションのそれぞれの優先レベルを変化できる。
【0015】
特に、以前に発行されたトランザクションの観察された待ち時間が、指定された目標待ち時間よりも平均して高い場合、適応優先回路は、新しいトランザクションに設定された優先レベルを増加できる。これは、そのソースによって観察された待ち時間を減少させる傾向があり、このことにより、経時的に、適応優先回路によって受信される待ち時間表示データで観察された平均待ち時間の減少をもたらす。同様に、以前のトランザクションで観察された待ち時間が、指定された目標待ち時間よりも平均して短い場合、適応優先回路は、新しいトランザクションのそれぞれの優先レベルを低下させ、これは、経時的に、ソースによって観察された待ち時間を増加させる影響があり、このため、適応優先回路によって受信される待ち時間表示データで観察される平均待ち時間が増加する。
【0016】
こうしたアプローチによって、指定された目標待ち時間は、システムの他のトラフィックの変化とは独立して、適応優先回路が、関連付けられたソースの最小限の処理レートを確実にするために必要な最下位の優先レベルに、トランザクションの優先レベルを設定することを確実にする。
【0017】
適応優先回路は、種々の形態を採ることができる。しかしながら、一実施形態では、適応優先回路は、スループット表示データから、進行中のトランザクション数の表示を決定するためのアクティブトランザクションカウント回路と、優先レベル制御値を維持するためのアキュムレータ回路であって、このアキュムレータ回路は、進行中のトランザクション数の表示に依存して、優先レベル制御値を増加させる、アキュムレータ回路とを含む。このため、こうした実施形態では、優先レベル制御値はアキュムレータ回路によって維持され、アキュムレータ回路が初期化されたため、以前に発行された全てのトランザクションで累積されるスループット表示データに依存する値を取る。
【0018】
一実施形態では、優先レベル制御値が、チェックされることなく、経時的に増加しないようにするため、優先レベル制御値を定期的に低下させるための機構も配置されている。特に、一実施形態では、適応優先回路は、進行中のトランザクションが既定のポイントに達すると、スループット表示データから検知するように構成され、前記既定のポイントが検知される度に、アキュムレータ回路は、優先レベル制御値を減少させるように構成される。既定のポイントは、種々の形態を採ることができるが、一実施形態では、既定のポイントはトランザクション終了ポイントである。トランザクション終了ポイントは、種々の方法で構成可能であるが、一実施形態において、読み出しトランザクションでは、その読み出しトランザクションの第1の読み出しデータがソースに戻るポイントであり、または、書き込みトランザクションでは、最後の書き込みデータ項目がソースから出力される時間になる。
【0019】
各既定のポイントの検知時にアキュムレータ回路が減少する量は、インプリメンテーションに依存して変化する可能性がある。しかしながら、一実施形態では、適応優先回路には、前記指定された目標スループットを示す目標スループット表示が提供され、前記既定のポイントが検知される度に、アキュムレータ回路は、前記目標スループット表示に依存する量だけ、優先レベル制御値が減少するように構成される。こうしたアプローチによって、定常状態に達すると、これにより、以前に発行されたトランザクションで観察されたスループット表示データが、指定された目標スループットと一致する場合、検知される各既定のポイントの間で優先レベル制御値が増加する量は、各既定のポイントの検知の際に優先レベル制御値に適用される減少する量だけ、相殺される。しかしながら、スループット表示データが、目標スループットからの偏移を開始しているスループットを示す場合、これは、偏移の方向に依存して、優先レベル制御値を、経時的に増加または経時的に減少させる。
【0020】
アキュムレータ回路が、進行中のトランザクション数の表示に依存して、優先レベル制御値を増加させる頻度は、インプリメンテーションに依存して変化してもよい。しかしながら、一実施形態では、クロックサイクル毎に、アクティブトランザクションカウント回路は、進行中の少なくとも1つのトランザクションが存在することを示すが、アキュムレータ回路は、優先レベル制御値を増加させるように構成される。
【0021】
特定の一実施形態では、目標スループット表示は、トランザクション毎の目標平均待ち時間の表示を提供し、クロックサイクル毎に、アクティブトランザクションカウント回路は、進行中の少なくとも1つのトランザクションが存在することを示すが、アキュムレータ回路は、アクティブトランザクションカウント回路によって示されるように、進行中のトランザクション数に依存する量だけ、優先レベル制御値を増加するように構成される。さらに、前記既定のポイントが検知される度に、アキュムレータ回路は、トランザクション表示毎の前記目標平均待ち時間に依存する量だけ、優先レベル制御値を減少させるように構成される。こうしたアプローチは、一定の待ち時間を目標とする効果がある。
【0022】
代替の実施形態では、目標スループット表示は、前記既定のポイントの発生の間の目標平均待ち時間の表示を提供し、クロックサイクル毎に、アクティブトランザクションカウント回路は、進行中の少なくとも1つのトランザクションが存在することを示すが、アキュムレータ回路は、固定整数の量だけ優先レベル制御値を増加させるように構成される。さらに、前記既定のポイントが検知される度に、アキュムレータ回路は、前記既定のポイントの発生の間の前記目標平均待ち時間に依存する量だけ、優先レベル制御値を減少させるように構成される。こうしたアプローチは、一定の待ち時間ではなく、一定の処理レートを目標とする効果がある。
【0023】
スループット表示データが待ち時間表示データを含む実施形態では、前記以前に発行されたトランザクション毎に、適応優先回路は、第1および第2のタイミング表示を、前記待ち時間表示データとして受信する。第1および第2のタイミング表示は、種々の形態を採ることができるが、一実施形態では、前記第1のタイミング表示はトランザクション開始表示であり、前記第2のタイミング表示はトランザクション終了表示である。第1および第2のタイミング表示をトリガする条件は固定してもよいが、一実施形態では、これはプログラム可能にできる。
【0024】
一実施形態では、アクティブトランザクションカウント回路は、進行中のトランザクション数の記録を維持するために、トランザクション開始表示およびトランザクション終了表示を使用する。トランザクション開始およびトランザクション終了表示の使用は、進行中のトランザクション数の記録を保持するための簡潔かつ効果的な機構を提供する。
【0025】
一実施形態では、適応優先回路は、新しいトランザクション毎に、現在、アキュムレータ回路によって維持されている優先レベル制御値に依存して、そのトランザクションの優先レベルを設定する優先値決定回路をさらに含む。こうした実施形態では、優先レベル制御値は、新しいトランザクションで使用される新しい優先レベルを直接提供するのではなく、代わりに、優先値決定回路が、優先レベルを生成するために、優先レベル制御値における1つ以上の処理動作を提供する。
【0026】
例えば、一実施形態では、優先値決定回路は、優先レベル制御値の変化が、新しいトランザクション毎に設定される優先レベルの変化を生じさせる程度を制御するためのループゲイン回路を含む。特定の一実施形態では、ループゲイン回路は、典型的には、安定した動作を確実にするために十分低くしながら、優先レベル制御値の変化に対する合理的な応答を確実にするために、十分高い値に設定されるループゲイン値によって、優先レベル制御値を乗算する。
【0027】
一実施形態では、優先値決定論理は、ループゲイン回路によって出力される値の範囲を、使用可能な複数の既定の優先レベルと同等の範囲内に制限することを確実にするために、飽和回路も含む。
【0028】
一実施形態では、経時的に、前記監視されたスループット表示データが、スループットが指定された目標スループットを超過することを示す場合に、優先レベル制御値に、関連付けられたソースによって観察される超過スループットの計測値を捕捉させるように、アキュムレータ回路の動作が、優先レベル制御値を、前記複数の既定の優先レベルの中から最下位の優先レベルに関連付けられた値未満にデクリメントさせ、優先値決定回路は、こうしたインスタンスにおいて、優先レベルが、前記複数の既定の優先レベルの中で、最下位の優先レベルに設定されることを確実とするために、飽和回路を含む。このため、こうした実施形態では、飽和回路は、優先レベルが複数の既定の優先レベル内の最下位の優先レベル未満に減少しないことを確実にするが、アキュムレータによって維持される優先レベル制御値は、さらに減少することが可能になっている。これは、アキュムレータが、実際に、関連付けられたソースに供給される超過帯域幅のレベルを格納できるようにするため、こうしたアプローチは有利である可能性がある。その後、利用可能な帯域幅がより小さい場合に、アキュムレータは、新しいトランザクションに割り当てられる優先レベルの増加を開始するレベルに、優先レベル制御値が増加するまでにはある程度の時間がかかり、これにより、実際に、以前に与えられた超過帯域幅の分を返して、システム内の他のトランザクションソースからのより良いパフォーマンスを可能にする。
【0029】
適応優先回路が関連付けられたソースは、種々の形態を採ることができる。しかしながら、一実施形態では、関連付けられたソースは個別の処理ブロックを実行し、各処理ブロックは指定された時間内に完了する必要があり、適応優先回路には、前記指定された目標スループットを示す目標スループット表示が提供され、目標スループット表示は、実現された場合に、各処理ブロックが、指定された時間内に実行できる、トランザクション毎の平均目標スループットを識別する。例えば、画像プロセッサ、動画プロセッサ、音声プロセッサ等、個別の処理ブロックを実行するソースには、種々の実施例が存在する。別の実施例として、ダイレクトメモリアクセス(DMA)エンジンも、こうした個別の処理ブロックを実行してもよい。
【0030】
一実施形態では、アキュムレータ回路の動作は、新しい処理ブロックが開始する場合に、優先レベル制御値の開始値が、先行する処理ブロックが終了した場合に得られる最後の優先レベル制御値によって与えられるように、ある処理ブロックから別の処理ブロックへ実行できるようにされる。しかしながら、代替の実施形態では、アキュムレータ回路は、各個別の処理ブロックの間でリセットされるように構成されてもよい。典型的には、個別の処理ブロックの間には、超過帯域幅分を返せる能力がないため、少なくとも、アキュムレータ回路によって維持される優先レベル制御値が、関連付けられたソースによって観察された超過スループットの計測値を捕捉できるようにされた実施形態において、こうしたアプローチが取られる。
【0031】
アキュムレータ回路のリセットを実行できる多数の方法が存在する。例えば、一実施形態では、アキュムレータ回路は、関連付けられたソースによって生成されるリセット信号を受信してもよい。例えば、関連付けられたソースが画像処理装置である実施形態を考慮すると、画像処理装置は、各フレームの完了時において中断信号を生成するように構成されてもよく、その中断信号は、アキュムレータ回路へのリセット信号を生成するために使用されてもよい。代替の実施形態では、データ処理装置内で実行する、例えばデータ処理装置内のCPUで実行する、ソフトウェアが、こうしたリセット信号を生成するために構成されてもよい。
【0032】
一実施形態では、少なくとも1つのマスタデバイスは、複数のマスタデバイスを含み、各マスタデバイスは、前記トランザクションのうちの少なくとも1つのソースを提供する。こうした一実施形態では、前記複数のマスタデバイスのうちの少なくとも1つは、バッチ処理動作を実行するバッチ処理デバイスであり、適応優先回路は、前記バッチ処理デバイスに関連付けられる。
【0033】
バッチ処理デバイスは、例えば、画像処理装置、動画処理装置、音声処理装置等の、種々の形態を採ってもよい。一実施形態では、装置内のさらなるマスタデバイスは中央処理装置であり、中央処理装置は、これに関連付けられた適応優先回路を有しない。代わりに、多くの場合、中央処理装置はこれに関連付けられた固定優先レベルを有し、優先レベルは、バッチ処理デバイスに通常関連付けられた優先レベルより高い。しかしながら、バッチ処理デバイスに関連する適応優先回路の利用により、バッチ処理デバイスによって発行されたトランザクションに関連付けられた優先レベルは、指定された目標スループットが実現されることを確実にするために必要なため、および必要な場合、増加することができる。しかしながら、適応優先回路が動作する方法のために、バッチ処理デバイスの優先レベルのこうした増加は、絶対的に必要な場合に保証されるのみであり、したがって、こうしたアプローチは、中央処理装置等のシステムにおける他のマスタデバイスのパフォーマンスを最大化する。
【0034】
一実施形態では、複数のソースは、単一マスタデバイス上で実行する複数の処理スレッドによって形成され、適応優先回路は、前記処理スレッドのうちの少なくとも1つに関連付けられる。一実施形態では、こうしたマスタデバイスは画像処理装置にしてもよく、複数の処理スレッドは、少なくとも節点処理スレッドおよび画素処理スレッドを含んでもよい。
【0035】
一実施形態では、複数のソースは、少なくとも1つのマスタデバイスで実行する異なる種類のトランザクションによって形成されてもよく、こうした異なる種類のトランザクションの実施例には、書き込みトランザクションおよび読み出しトランザクションがある。
【0036】
一実施形態では、目標スループット表示はプログラム可能であり、このため、例えば、関連付けられたソースのアクティビティに依存して、目標スループット表示を変化させることができる。関連付けられたソースが画像処理動作を実行する特定の実施例として、フレーム毎に必要とされる処理量は変化してもよく、このため、画像プロセッサが、以前のフレームよりもかなり大きい処理動作を必要とするフレームの処理を開始する場合、これらの計算論的に集約的なフレームが処理される間、目標スループットは、画像処理装置のさらなる帯域幅を得るために増加することができる。
【0037】
共有リソースは、種々の形態を採ることができるが、一実施形態では、共有リソースは、メモリコントローラの形態を採ってもよい。
【0038】
アービトレーション回路は、データ処理装置内の種々の位置で提供されてもよい。例えば、多くの場合、マスタデバイスは、相互接続構造によって、1つ以上の共有リソースに結合され、多くの場合、複数のアービトレーションポイントが、相互接続構造内に提供される。したがって、こうしたアービトレーション回路は、優先レベルベースのアービトレーションを、これらの複数のポイントで実行できるようにするために、相互接続内の複数のアービトレーションポイントのそれぞれで、複製してもよい。
【0039】
あるいは、またはさらに、共有リソースは、それ自体でアービトレーションポイントを含んでもよく、したがって、共有リソース内にアービトレーション回路が提供されてもよい。例えば、共有リソースがメモリコントローラである実施形態を考慮すると、メモリコントローラは、多くの場合、未完了の読み出しおよび書き込みアクセスが格納される行列を含む。優先レベルベースのアービトレーション機構は、行列に格納された複数のトランザクションのそれぞれに関連付けられた優先レベルを考慮して、メモリに転送するための次のトランザクションを選択するために、その行列に関連して採用してもよい。
【0040】
実際に、いくつかの実施形態では、相互接続内のアービトレーション回路のインスタンス、および1つ以上の共有リソース内のアービトレーション回路の1つ以上のインスタンスが存在し、こうした実施形態では、同じアービトレーションポリシーを、相互接続内およびこれらの共有リソース内の両方に適用可能である。
【0041】
第2の態様から概観すると、本発明は、本発明の第1の態様に従う、データ処理装置におけるトランザクションのソースに関連して使用するための適応優先回路であって、この適応優先回路は、関連付けられたソースから以前に発行されたトランザクションに関して、スループット表示データを監視し、かつ、指定された目標スループットが実現できるようにする複数の既定の優先レベルの中から、最下位の優先レベルを設定するように、関連付けられたソースからの新しいトランザクション毎に、前記スループット表示データに依存して、複数の既定の優先レベルのうちの1つに、そのトランザクションの関連付けられた優先レベルを設定するように構成される、適応優先回路を提供する。
【0042】
第3の態様から概観すると、本発明は、データ処理装置内のトランザクションのための優先レベルを設定する方法であって、このデータ処理装置は、トランザクションを処理するための共有リソースと、前記共有リソースへ前記トランザクションを発行するための少なくとも1つのマスタデバイスであって、この少なくとも1つのマスタデバイスは、前記トランザクションの複数のソースを提供し、かつ、前記トランザクションのそれぞれは、これに関連付けられた優先レベルを有する、少なくとも1つのマスタデバイスと、前記共有リソースに発行される複数のトランザクションの中から、トランザクションを選択するためにアービトレーションポリシーを適用するためのアービトレーション回路であって、前記アービトレーションポリシーは、選択を実行する際に、前記複数のトランザクションのそれぞれに関連付けられた優先レベルを使用する、アービトレーション回路と、を含み、前記方法は、前記複数のソースのうちの少なくとも1つについて、スループット表示データに関して、そのソースから以前に発行されたトランザクションを監視するステップと、指定された目標スループットが実現できるようにする複数の既定の優先レベルの中から最下位の優先レベルを設定するように、そのソースからの新しいトランザクション毎に、前記スループット表示データに依存して、前記複数の既定の優先レベルのうちの1つに優先レベルを設定するステップと、を含む、方法を提供する。
【0043】
第4の態様から概観すると、本発明は、トランザクションを処理するための共有リソース手段と、前記共有リソース手段へ前記トランザクションを発行するための少なくとも1つのマスタ手段であって、この少なくとも1つのマスタ手段は前記トランザクションの複数のソースを提供するためのものであり、前記トランザクションのそれぞれは、これに関連付けられた優先レベルを有する、少なくとも1つのマスタ手段と、前記共有リソース手段に発行された複数のトランザクションの中から、トランザクションを選択するように、アービトレーションポリシーを適用するためのアービトレーション手段であって、このアービトレーションポリシーは、選択を実行する際に、前記複数のトランザクションのそれぞれに関連付けられた優先レベルを使用する、アービトレーション手段と、前記複数のソースのうちの少なくとも1つに関連付けられた適応優先手段であって、この適応優先手段は、関連付けられたソースから以前に発行されたトランザクションに関して、スループット表示データを監視するものであり、また、前記適応優先手段は、指定された目標スループットが実現できるようにする複数の既定の優先レベルの中から、最下位の優先レベルを設定するように、関連付けられたソースからの新しいトランザクション毎に、前記スループット表示データに依存して、前記複数の既定の優先レベルのうちの1つに、優先レベルを設定するためのものである、適応優先手段と、を含むデータ処理装置を提供する。
【0044】
添付の図面に関連して一読される、例示的な実施形態の以下の詳細な説明から、この発明の上記のおよび他の目的、特徴および利点が明らかとなろう。
【図面の簡単な説明】
【0045】
【図1】一実施形態に従う、データ処理装置のブロック図である。
【図2】一実施形態に従う、データ処理装置のブロック図である
【図3】一実施形態に従う、複数の適応優先回路が、単一マスタデバイスに関連付けてどのように使用され得るかを示すブロック図である。
【図4】代替の実施形態に従う、複数の適応優先回路が、単一マスタデバイスに関連付けてどのように使用され得るかを示すブロック図である。
【図5】一実施形態に従う、適応優先回路内に提供されるコンポーネントを示す図である。
【図6】一実施形態に従う、図5の適応優先回路の動作を示す流れ図である。
【図7A】画像処理装置等のマスタデバイスによって観察され得る待ち時間特性に対する帯域幅を示すグラフである。
【図7B】優先レベルがどのように異なる種類のマスタに割り当てられるかを示し、さらに、実施形態の適応優先回路が、必要な場合に、画像処理装置等のバッチ処理デバイスの優先レベルを上げるためにどのように使用され得るかを示す図である。
【図8】図5の適応優先回路のアキュムレータによって維持される累積値が、適応優先回路の動作時にどのように上下し得るかを示す図である。
【図9A】マスタで使用可能な帯域幅が、実施形態の適応優先回路を使用する場合に、バッチ動作の処理中にどのように変化し得るかを示す図である。
【図9B】マスタで使用可能な帯域幅が、実施形態の適応優先回路を使用する場合に、バッチ動作の処理中にどのように変化し得るかを示す図である。
【図10A】一実施形態に従い、累積値が、ある期間、マイナスにできるようにしながら、適応優先回路によって設定される優先レベルが、どのように累積値によって追跡し得るかを示す図である。
【図10B】一実施形態に従い、累積値が、ある期間、マイナスにできるようにしながら、適応優先回路によって設定される優先レベルが、どのように累積値によって追跡し得るかを示す図である。
【発明を実施するための形態】
【0046】
図1は、一実施形態に従う、データ処理装置のブロック図である。図示された実施例において、複数のマスタデバイス10、20、30は、相互接続構造40によって、複数のスレーブデバイス50、60、70に結合される。トランザクションが種々のマスタによって発行される場合、優先レベルは、これらのトランザクションに関連付けられ、これらの優先レベルは、装置内の種々のポイントにおける複数のアサートされたトランザクションの間のアービトレーションを実行する場合に使用される。例えば、相互接続40は、典型的にはアービトレーション45の複数のポイントを含み、各ポイントにおいて、アービトレーションポリシーは、優先レベルベースのアービトレーションを実行するために適用可能である。さらに、スレーブデバイスのうちの1つ以上は、それ自体にアービトレーションポイントを含んでもよい。例えば、スレーブデバイス3 70がメモリコントローラの形態を採る場合、こうしたメモリコントローラは、典型的には、未完了のトランザクションを配置し得る行列75を含み、行列内の各トランザクションは、その関連付けられた優先レベルの記録をとるように構成される。アービタ80は、行列のトランザクションエントリから、次にメモリに発行されるべきトランザクションを決定するために使用でき、こうしたアービタは、メモリに発行されるその次のトランザクションを決定するために、優先レベルベースのアービトレーションを適用する。こうした優先ベースのアービトレーションをスレーブデバイス内で実行するには、優先レベル情報を、相互接続40からスレーブデバイス70へ伝播させる必要がある。しかしながら、任意の内部アービトレーションを実行しない任意のスレーブデバイスでは、優先レベル情報は、これらのスレーブデバイスに伝播させる必要はなく、したがって、図1の実施例において、スレーブデバイス50および60の両方は、優先レベル情報を相互接続から伝播させる必要はない。
【0047】
本発明の実施形態に従い、マスタデバイスのうちの1つ以上に、そのマスタによって発行された各トランザクションに関連付けられる優先レベルを決定するための適応優先回路が提供され得る。このため、図1に示される実施例において、マスタデバイス20および30の両方は、これらのマスタによって発行された各トランザクションの優先レベルを設定するために、それぞれ、関連付けられた適応優先回路25および35を有する。本発明の実施形態の適応優先回路は、種々の異なるマスタデバイスに関連付けて使用可能であるが、一実施形態では、バッチ動作を実行するマスタデバイスと共に使用される。一実施例には、個別の処理ブロックが実行され、各処理ブロックは指定された時間内に完了する必要のある、画像プロセッサ、動画プロセッサまたは音声プロセッサがある。例えば、画像プロセッサを考慮すると、画像データに相当するフレームは、各フレーム期間内で処理する必要がある。図1の実施例では、マスタ30は、画像プロセッサ、動画プロセッサまたは音声プロセッサであると想定される。
【0048】
別の実施例として、適応優先回路は、割り当てられた期間内に、データのブロックを転送する必要があり得るダイレクトメモリアクセス(DMA)エンジン20と共に、使用してもよい。
【0049】
しかしながら、適応優先回路は、典型的には、装置内の各マスタには関連付けられず、このため、例えば、優先をそのトランザクションに割り当てるために、他のスキームを採用する他のマスタが存在してもよい。一実施例に、典型的にはこれに関連付けられた固定優先を有する、中央処理装置(CPU)がある。別の実施例として、ディスプレイへの出力を生じさせるためにストリーム処理を実行するLCDコントローラがある。CPUの場合と同様に、LCDコントローラは、典型的には固定優先と考えられており、多くの場合、CPUおよびLCDコントローラの両方は、画像プロセッサ、DMAエンジン等のバッチ処理デバイスに関連付けられたデフォルト優先よりも高い優先を有する。
【0050】
しかしながら、本発明の実施形態の適応優先回路のさらなる記載から明らかなように、適応優先回路は、そのソースで指定されたスループットを目標とするために、その関連付けられたソースから新しいトランザクションのそれぞれに割り当てられる優先レベルを制御するためのフィードバック機構を採用し、このフィードバック機構によって、システム内の他のソースのアクティビティとは独立して、スループットの目的を実現するために必要な最下位の優先レベルを発見する。必要な場合、これは、マスタ20およびマスタ30等のマスタデバイスの優先レベルを、マスタ10に関連付けられた優先と等しいまたはこれより大きいレベルに上げることができることを意味するが、この状態は、そのマスタデバイス20、30のスループットの目的を実現できるようにするために必要な最小限の時間、維持されるにすぎない。
【0051】
こうしたアプローチによって、マスタ20またはマスタ30等のマスタデバイスは、その指定された目標スループットに適合するために必要な共有リソース(スレーブデバイス50、60、70等)の最小限のシェアを占めるにすぎないことを確実にし、また、これにより、マスタ10等の他のトランザクションソースのパフォーマンスの改善を可能にする。
【0052】
さらに、こうしたアプローチは、システム内のアービトレーションポイント全てが、同じアービトレーションポリシーを適用できるようにする。このため、相互接続内のアービトレーションの各ポイントは、優先レベルベースのアービトレーションを適用でき、同様に、スレーブ70等の、関連するスレーブデバイス内のアービトレーションのローカルポイントは、そのデフォルトのアービトレーション機構と同じ優先レベルベースのアービトレーションポリシーを適用できる。このため、どのトランザクションが行列75から検索されるかを決定するアービタ80は、相互接続内で使用されるものとして、同じアービトレーションポリシーを使用できる。しかしながら、例えば、メモリ内の異なるチップ等の利用を最大限にするために、これが相互作用するメモリの構造および機能を考慮して、メモリコントローラは、そのスループットを増加させるためにさらなる機構を採用することもできることが理解される。こうした最適化は、トランザクションの優先レベルに基づくデフォルトのアービトレーションポリシーの最上位にレイヤできる。
【0053】
図2は、CPU100および画像処理装置(GPU)110がメモリコントローラ135へのアクセスを共有し、相互接続120を介してそのメモリコントローラに接続する、特定の実施例のインプリメンテーションを示す。CPUまたはGPUによって発行された各トランザクションは、CPUまたはGPUおよびメモリコントローラの間のデータの1つ以上のブロックの転送と共に、目標スレーブデバイス、この実施例ではメモリコントローラ135への、CPUまたはGPUからのアドレスの転送を含み、このデータ転送の方向は、トランザクションが書き込みトランザクションであるか読み出しトランザクションであるかに依存する。図2の概略図において、双方向データパスと共に、一方向アドレスパスが示されている。しかしながら、アドレスパスおよびデータパスの実際の構造はインプリメンテーションによって変わり、特に、トランザクションプロトコルは、相互接続によって採用されることが理解される。例えば、ARM Limited,Cambridge,United Kingdomによって開発されたAXI(Advanced eXtensible Interface)プロトコル等の、分割トランザクションプロトコルが使用される場合、複数の別々のアドレスパスおよび複数の別々のデータパスが存在してもよく、特に、別々のパスは、読み出しトランザクションおよび書き込みトランザクションのために提供される。
【0054】
図2の実施例に示されるように、CPU100は、そのトランザクションの固定優先を使用し、その優先レベルの表示は、トランザクションを開始する各アドレスと共に発行される。しかしながら、GPU110では、固定優先は使用されず、代わりに、発行された各トランザクションの優先レベルをアサートするために適応優先回路115が使用される。特に、後で詳述するように、適応優先回路115は、GPU110からの以前に発行されたトランザクションのスループット表示データを得るために、アドレスおよびデータパスを監視し、そのスループット表示データに基づいて、GPU110から発行される新しいトランザクション毎に、アサートする適切な優先レベルを決定する。
【0055】
相互接続120内において、典型的には、アービトレーションの複数のポイントが存在し、アービトレーションの各ポイントは、CPUおよびGPUによって設定される優先レベルに依存して、アービトレーションポリシーを適用する。1つのアービトレーションポイント、すなわち、メモリコントローラ135に転送されるアドレスおよび優先信号を生成するために使用される最後のアービトレーションポイントが、図2に概略的に示される。図2に示されるように、マルチプレクサ130は、CPUおよびGPUからの各トランザクションのアドレスおよび優先情報を受信し、関連するトランザクションのCPUおよびGPUからの関連付けられた優先情報をその入力として受信する、優先レベルベースのアービタ125の出力によって制御される。典型的には、CPUの優先は、GPUの優先よりも高くなり、このため、CPUおよびGPUの両方からの同時のアサートされたトランザクションが存在する場合、優先レベルベースのアービタ125は、メモリコントローラへ転送されるトランザクションとして、CPUを選択する。しかしながら、GPUのスループット目的に適合するために必要なため、および、必要な場合、適応優先回路115は、優先レベルベースのアービタ125が、CPUおよびGPUがメモリコントローラ135へのトランザクションを同時にアサートする場合に、CPUトランザクションの前にGPUトランザクションを出力するポイントにおいて、CPUよりも高い優先となるポイントへ、GPUのトランザクションの優先を格上げしてもよい。
【0056】
相互接続120からメモリコントローラ135へ転送される各トランザクションは、行列140に配置され、メモリコントローラが、メモリにトランザクションを発行する度に、優先レベルベースのアービタ145は、行列の未完了のトランザクションのどれが最上位の優先を有するかを決定するために、行列140の現在のコンテンツを分析する。次に、最上位の優先を有するトランザクションが、メモリに転送され、特に、関連する読み出しまたは書き込み動作が実行されるように、トランザクションのアドレスが、メモリに転送される。データの処理は、通常どおりに行われる。
【0057】
一実施形態では、単一マスタデバイスは、トランザクションの複数の異なるソースを提供してもよく、こうした各ソースに別々の適応優先回路を提供してもよい。例えば、図3は、GPU110によって発行された読み出しおよび書き込みトランザクションのために、別々の適応優先回路が提供されている一実施形態を示す。この実施形態では、分割トランザクションプロトコルが使用され、GPU110および相互接続の間の通信は、5つの別々の通信チャネル、すなわち、書き込みトランザクションのアドレス転送を搬送するための書き込みアドレス(WA)チャネル、書き込みトランザクションのデータ転送を搬送するための書き込みデータ(W)チャネル、書き込みトランザクションの終了時に、マスタへトランザクションステータス情報を返すための書き込み応答(B)チャネル(例えば、トランザクションが完全に完了したかどうか、またはエラーが発生したかどうか等を示す)、読み出しトランザクションのアドレス伝送を搬送するための読み出しアドレス(RA)チャネル、および読み出しトランザクションのデータ伝送を搬送するための読み出しデータ(R)チャネルを含む。
【0058】
図3に示されるように、適応書き込み優先回路160は、新しい書き込みトランザクション毎に書き込み優先レベルを作成するために構成でき、その書き込み優先レベルは、目標スレーブデバイスへのパスに沿って、アービトレーションポイントのいずれかで使用するための書き込みアドレスと共に受け渡しされる。以前に発行された書き込みトランザクションで、適応書き込み優先回路によって観察されたスループット表示データは、図3で図示されるように、書き込みアドレスおよび書き込みデータチャネルから取得することができる。特に、一実施形態では、スループット表示データは、トランザクション開始表示およびトランザクション終了表示を提供する待ち時間表示データの形態を採ることができる。トランザクション開始および終了表示は種々の方法で決定可能であるが、特定の一実施形態では、GPU110からの書き込みアドレスの発行は、トランザクションの開始として処理され、GPU110からの最後の書き込みデータ値の発行は、終了表示として処理される。代替の実施形態では、トランザクション終了表示は、書き込み応答チャネル上を通過する信号から導くことができ、特定のトランザクションの書き込み応答データは、典型的には、書き込みデータチャネル上の最後の書き込みデータ値の転送後しばらくして生じる。
【0059】
図3にも示されるように、適応読み出し優先回路165は、読み出しアドレスおよび読み出しデータチャネルから以前に発行された読み出しトランザクションのそのスループット表示データを取ることができる。スループット表示データが、トランザクション開始およびトランザクション終了の情報を提供する実施形態において、トランザクション開始の情報は、トランザクション毎に発行された読み出しアドレスから決定でき、トランザクション終了の情報は、一実施形態では、トランザクション毎にマスタデバイスに返される第1の読み出しデータ値の発生によって決定される。
【0060】
図3に、書き込みトランザクション情報および読み出しトランザクション情報の別々のチャネルを有する分割トランザクションプロトコルを参照する、書き込みトランザクションおよび読み出しトランザクションの別々の適応優先回路の利用が図示されるが、こうした別々のチャネルを提供しなければならないという要件は存在しない。実際に、任意のシステムにおいて、読み出しトランザクションおよび書き込みトランザクションのために別々の適応優先回路を提供でき、また、そのシステムが、読み出しおよび書き込みトランザクションのために、共有アドレスバスおよび/または共有データバスを採用する場合、各適応優先回路は、読み出しトランザクションまたは書き込みトランザクションに関する情報の存在を識別するために、これらのアドレスおよびデータバス上の情報に関連して、通過する関連付けられた制御信号を使用し、これによって、適応書き込み優先回路が、書き込みトランザクションに関連して動作し、適応読み出し優先回路が、読み出しトランザクションに関連して動作することを可能にする。
【0061】
一実施形態では、単一マスタデバイスは、そのマスタデバイス上で実行する複数の処理スレッドの形態で、トランザクションの複数のソースを提供してもよく、適応優先回路は、これらの処理スレッド毎に別々に提供されてもよい。図4は、GPU110が、節点処理動作を実行する節点プロセッサ200、および、画素処理動作を実行する多数の画素プロセッサ205、210を組み込む、こうした一実施例を示す。これらの種々の処理スレッドはそれぞれ、これに関連付けられたID値を有し、回路215は、種々の処理スレッドから出力パスへ発行された信号を多重化し、適切な処理スレッドへ転送するために、GPUによって受信した信号を逆多重化するために提供される。送信トラフィックの場合、回路215は、出力パスに発行される前に、データへ適切なID値を加算し、受信データの場合は、処理スレッドのどれが受信データの送信先になるかを決定するために、関連付けられたID値を使用する。例示として、関連付けられたID信号パスと共に一方向アドレスパスが示され、関連付け双方向IDパスと共に双方向データパスが示されるが、これらのパスはそれぞれ、実施形態に依存する、特に、使用されるトランザクションプロトコルに依存する通信の1つ以上の別々のチャネルによって、形成されてもよいことが理解される。
【0062】
図4に示されるように、別々の処理スレッド200、205、210のそれぞれに、別々の適応優先回路225、230、235が提供され、アドレスおよびデータ情報を搬送するこれらの別々の適応優先回路およびバスの間のインターフェースを取るために、IDベースのルーティング回路220が使用される。特に、各アドレスまたはデータ項目を伴うID値を使用することにより、IDベースのルーティング回路220は、適応優先回路が、アドレスおよびデータ項目から導かれたスループット表示データを受信するべきであると決定する場合がある。一実施形態では、IDベースのルーティング回路220は、関連付けられたIDに関する全てのアドレスおよびデータ項目に、関連する適応優先回路を通知することができ、または、代わりに、各トランザクションの開始および終了表示を検知するために必要とされる処理を内部的に実行し、関連する適応優先回路へ、これらの開始および終了表示を転送するだけでもよい。新しいトランザクション毎に、関連する適応優先回路は、関連するアドレス信号を有する側帯波信号として発行するためのIDベースのルーティング回路220を介してルーティングされる優先値を生成する。
【0063】
GPU110は、この実施形態では、少なくとも1つのアービトレーションポイント(メモリコントローラ内で提供されるもの等)を含むスレーブデバイスに接続されてもよく、または、より典型的には、1つ以上のアービトレーションポイントを組み込む相互接続構造を介して、こうしたスレーブデバイスに接続されてもよい。後者の状況では、図1を参照して上述されたように、1つ以上のアービトレーションポイントを有する相互接続に加えて、スレーブデバイスは、アービトレーションポイントを独立して含んでもよい。
【0064】
図5は、本発明の一実施形態に従う、適応優先回路内に提供されたコンポーネントを概略的に示す図である。この実施例において、調整300を必要とするバスマスタは、システム相互接続310への接続パス305上のトランザクションを開始し、この実施例では、接続パス305がARMのAXIプロトコルを採用すると想定される。しかしながら、前述のように、本発明の実施形態の技術は任意の通信プロトコルに関連して採用できるため、AXIプロトコルを使用しなければならないという要件は存在しない。
【0065】
適応優先回路315は、以前に発行されたトランザクションのスループット表示データを取得し、新しいトランザクションが開始する時間を検知し、その新しいトランザクションの優先レベルを生成するために、接続パス305上で生じるアクティビティの情報を収集するために構成される。
【0066】
特に、トランザクション開始回路320は、マスタ300からの要求としてトランザクション開始を検知するが、トランザクション終了回路325は、トランザクション完了として検知する。一実施形態では、読み出しトランザクションでは、トランザクション終了回路325は、第1の読み出しデータがマスタ300に戻ると、トランザクション終了を検知し、一方で、書き込みトランザクションでは、トランザクション終了回路325は、最後の書き込みデータ項目がバスマスタ300から伝送されると、トランザクション終了を検知する。
【0067】
アクティブトランザクションカウントコンポーネント330は、バスマスタ300から進行中のトランザクション数を計算するために、これらの2つのイベントを使用する。各クロックサイクルでは、未処理のトランザクションの数のこの表示は、加算器350を介してアキュムレータ355へとルーティングされ、ここで、未処理のトランザクションの数と等しい数が、その現在のアキュムレータ値に加算される。
【0068】
さらに、トランザクション毎の目標平均待ち時間を識別する目標待ち時間値340が、目標待ち時間値ストレージ340内に格納される。トランザクションが終了する度に、乗算器335および変換器345は、加算器350と共に、目標待ち時間値を累積値から減算する。
【0069】
アキュムレータ355からの出力は、乗算器360において、ループゲインを選択するために、ループゲインストレージ365内に格納されるプログラムされたループゲイン値で乗算され、プログラムされた範囲からの値が範囲の限界に飽和される場合に、生成された値は、飽和ブロック370を通じて受け渡しされる。このブロックの出力は、次に、マスタからの以降のトランザクションの優先レベルを促進するために使用される。
【0070】
回路320および325によって観察された各トランザクション開始およびトランザクション終了の表示の間の時間は、各トランザクションの待ち時間を識別することが理解される。以前に発行されたトランザクションの平均の観察された待ち時間が、ストレージ340の目標平均待ち時間値未満である場合、アキュムレータ値は減少し、これにより、以降のトランザクションで設定された優先レベルが減少し、これはさらに、そのとき観察された平均待ち時間を増加させる。対照的に、平均の観察された待ち時間がストレージ340内の目標平均待ち時間値よりも大きい場合、アキュムレータ値は増加し、これにより、以降のトランザクションに関連付けられた優先レベルが増加し、これはさらに、そのとき観察された平均待ち時間を減少させる。
【0071】
ループゲインストレージ365において格納されるループゲイン期間が、システム内の待ち時間が存在する場合、ループが安定することを確実にするために選択される。これは、標準的な制御理論技術によって決定でき、ループゲインの上限を設定する。下限は、マスタが実行するアクティビティの持続時間によって決定される。例えば、GPUは、画像データのフレームで動作するため、ループの時間定数は、フレーム期間よりも小さくなるはずである。
【0072】
飽和ブロック370によって採用される飽和限界は、以下のように設定してもよい。任意のポイントにおいて目標スレーブデバイス(例えば、メモリコントローラ)からの帯域幅が不十分である場合、システム設計者は、帯域幅のマスタデバイスを必要とする順番を決定しなければならない。最上位の優先レベル値は、この順序によって決定される。さらに、目標スレーブデバイスからの超過帯域幅が必要な場合、アキュムレータ値は、最下位の優先レベル未満に低下する。飽和限界は、最下位の優先レベルに設定すべきである。
【0073】
しかしながら、一実施形態では、こうした低下を可能とすることにより、アキュムレータの値が、実際に、マスタに供給される超過帯域幅のレベルを格納するため、アキュムレータをさらに低下させることが有利である。以降、システムの使用可能な帯域幅がより少ない場合に、アキュムレータ値は、優先レベルが最小限の優先レベルを超えて変化するポイントに戻るにはいくらか時間が必要であり、その期間中に、バスマスタは、実際に、以前に受信した超過帯域幅の分を返し、これによって、システム内の他のマスタデバイスからのより良いパフォーマンスを可能にする。しかしながら、典型的には、GPUのフレーム間において、超過帯域幅の分を返すことはできないため、一実施形態では、リセット機能は、アキュムレータをフレーム間でリセットできるようにするために、アキュムレータ355に関連して提供される。
【0074】
アキュムレータに発行されたリセット信号は、種々の方法で提供できる。一実施形態では、アキュムレータ回路355は、関連付けられたバスマスタ300によって生成されたリセット信号を受信してもよい。例えば、関連付けられたバスマスタが画像処理装置である実施形態を考えると、画像処理装置は、各フレームの完了時に中断信号を生成するために構成されてもよく、その中断信号は、アキュムレータ回路355へリセット信号を生成するために使用してもよい。代替の実施形態では、データ処理装置の別のマスタ内で実行する、例えばCPUで実行するソフトウェアは、こうしたリセット信号を生成するために構成されてもよい。
【0075】
一実施形態では、トランザクション開始およびトランザクション終了表示をトリガする条件がプログラム可能である。同様に、例えば、関連付けられたバスマスタ300のアクティビティを考慮して、目標待ち時間を変化できるようにするために、ストレージ340内に格納される目標待ち時間値を、プログラム可能にしてもよい。
【0076】
代替の実施形態では、各クロックサイクルで、未処理のトランザクションの数と等しい値を、アキュムレータ値に加算する代わりに、適応優先回路は、各クロックサイクルで、固定整数値、例えば、論理の1の値を追加するように構成してもよい。こうした実施形態では、ストレージ340内に格納される目標待ち時間値は、トランザクションの開始および終了ポイントの間の目標平均待ち時間の表示ではなく、トランザクション終了ポイントの発生の間の目標平均待ち時間の表示を提供するために構成できる。こうした実施形態では、適応優先回路は、一定の待ち時間ではなく、一定の処理レートを目標とする効果を有する。
【0077】
図6は、図5の適応優先回路315の動作を示す流れ図である。ステップ372において、新しいクロックサイクルが開始したかどうかが決定され、新しいクロックサイクルが開始した場合、プロセスはステップ374に進み、ここで、このクロックサイクルで終了トランザクション表示が観察されたかどうかが決定される。その場合、ステップ376および378が、並列で実行される。特に、ステップ376において、コンポーネント330によって維持されるアクティブトランザクションカウントがデクリメントされ、典型的には、値は1だけデクリメントされる。ステップ378において、ストレージ340内の目標待ち時間値は、アキュムレータ355によって維持されるアキュムレータ値から減算される。
【0078】
ステップ376および378の後で、プロセスはステップ380に進む、または、現在のクロックサイクルで終了トランザクション表示が観察されていない場合に、ステップ374からステップ380へ直接進む。ステップ380では、現在のクロックサイクルにおいて開始トランザクションが観察されたかどうかが決定され、観察された場合、ステップ382および384は、並列で実行される。特に、ステップ382において、アクティブトランザクションカウント値がインクリメントされ、典型的には、値は、1だけ、インクリメントされる。ステップ384において、優先レベルは、現在の累積値に基づいて、新しいトランザクションに割り当てられ、図5を参照して上述されるように、こうした優先レベル値は、アキュムレータからの出力について、ループゲイン修正および飽和動作を実行した後で得られる。
【0079】
ステップ382および384の後、プロセスはステップ386に進む、または、現在のクロックサイクルにおいて開始トランザクション表示が観察されていない場合には、ステップ380からステップ386へと直接進む。ステップ386において、未処理のトランザクションの数と等しい数だけ、アキュムレータ値を増加させるために、現在のトランザクションカウント値がアキュムレータに加算される。ステップ386の後、プロセスはステップ372に戻り、次のクロックサイクルの開始を待つ。
【0080】
図7Aは、GPU等のバッチ処理デバイスによって観察された待ち時間特性に対する帯域幅を示すグラフである。図7Aに概略的に示されるように、待ち時間はゼロから増加を開始するため、GPUの帯域幅は、最初は影響を受けない。これは、GPUが、最初は、待ち時間の変化には比較的影響されない複数の未処理のトランザクション手段を処理することができるためである。しかしながら、いくつかのポイントにおいて、待ち時間の増加は、帯域幅に影響を及ぼし始め、待ち時間特性に対する帯域幅は、曲線400に従い始める。曲線400の領域において、待ち時間の増加は帯域幅の低下につながり、同様に、待ち時間の減少は、帯域幅の増加につながることがわかる。このため、デバイスの所望の目標帯域幅を決定できる場合、これは、対応する目標待ち時間と等しくすることができることがわかる。
【0081】
点線410に示されるように、読み出しおよび書き込み動作のための待ち時間特性に対する帯域幅は変動することがあり、特に、曲線400は、読み出しトランザクションに対して適切なものであってもよいが、別々の曲線410は、書き込みトランザクションに関連してもよい。さらに、デバイスは、典型的には、ひいては異なる読み出しおよび書き込み目標待ち時間も考慮する、読み出しおよび書き込み動作の異なる目標帯域幅を有してもよい。これが、書き込みトランザクションおよび読み出しトランザクションの別々の適応優先回路を提供するために、特定の実施形態においてこれが有利であり得るという理由である。
【0082】
図7Bは、概略的に、異なる種類のデバイスに関連付けることができる優先レベルを示す。低い優先限界において、優先レベル420の範囲を、バッチ処理デバイスに関連付けてもよく、この一実施例に、GPUがある。1つ以上のより高い優先レベル425は、LCDコントローラ等のストリーム処理デバイスの動作がバッチ処理デバイスの動作よりも時間的に厳しいため、ストリーム処理デバイス、例えば、LCDコントローラに関連付けてもよい。次に、1つ以上のより高い優先レベル430を、システム内に複数存在し得る、CPUデバイスに関連付けてもよい。最終的に、保存された優先レベル435を提供してもよく、ストリーム処理デバイスは、時により、ストリーム処理デバイスが必要なレートで出力データを生成できるように、十分な帯域幅を得るために、その保存された優先レベルを受け入れることが可能にされ得る。
【0083】
本発明の実施形態に従い、バッチ処理デバイスのうちの1つ以上に、観察された平均待ち時間が目標待ち時間より大きい場合にのみ、関連付けられたバッチ処理デバイスの優先レベルを上げるように動作する、関連付けられた適応優先回路が提供されてもよく、このため、さらなる帯域幅が必要である。これは、バッチ処理デバイスの優先を、ある期間、CPUおよび/またはストリーム処理デバイス優先範囲に増加させてもよい。しかしながら、適応優先回路の動作は、トランザクションの他のソースのアクティビティとは独立して、使用される指定された待ち時間目標を実現するために必要な最下位の優先レベルを生じさせ、したがって、適応優先回路に関連付けられたソースは、その指定された待ち時間目標に適合するために必要な共有リソースの最小限の割合のみを取るため、これにより、システム内の他のソースのパフォーマンスを向上させる。
【0084】
図8は、アキュムレータ355によって維持される累積値が、読み出しトランザクションの各トランザクション開始およびトランザクション終了の間をどのように上下するかを概略的に示す図である。トランザクションの開始を信号するアドレス500の発生時において、トランザクション開始表示515は、アクティブトランザクションカウント値がインクリメントされるようにするトランザクション開始回路320によって生成される。各クロックサイクルで、アクティブトランザクションカウントの値がアキュムレータ値に加算され、これにより、アキュムレータ値は、ライン530に沿って、増加する。いくつかのクロックサイクル後、第1の読み出しデータ値510が観察された場合、これは、トランザクション終了表示520を、トランザクション終了回路325によって生成させる。トランザクション開始表示515およびトランザクション終了表示520の間で経過した期間は、そのトランザクションの待ち時間期間525を識別する。トランザクション終了表示が生成される時点において、これは、ストレージ340に格納された目標平均待ち時間値に等しい値を、累積値を低下させるアキュムレータ値から減算する。低下後の終了ポイントは、待ち時間期間525が目標待ち時間と等しい場合、ポイントBになる。しかしながら、待ち時間期間525が目標待ち時間よりも大きい場合、終了ポイントは、図8のポイントAによって概略的に図示されるポイントBを超える。同様に、待ち時間期間525が目標待ち時間未満である場合、終了ポイントは、図8においてポイントCによって概略的に示される、ポイントB未満になる。
【0085】
したがって、以前に発行されたトランザクションで観察された平均待ち時間が目標平均待ち時間を越える場合に、アキュムレータの値は経時的に増加し、これにより、以降のトランザクションに関連付けられた優先レベルは増加することが理解される。同様に、以前に発行されたトランザクションで観察された平均待ち時間が目標待ち時間未満である場合、アキュムレータ値は経時的に低下し、これにより、以降のトランザクションに関連付けられた優先レベルは低下する。
【0086】
図8は、比較的簡単な実施例を示し、実際に、複数の未完了のトランザクションを時間の任意のポイントで進行中にすることができ、このため、複数のトランザクションのアドレスは、以前のトランザクションのうちの1つに関連付けられたデータが観察される前に発行することができ、これは、トランザクション開始ポイント515およびトランザクション終了ポイント520の間で、1つ以上のさらなるトランザクション開始ポイントおよびトランザクション終了ポイントが観察され得ることを意味する、ことが理解される。しかしながら、トランザクションで観察された平均待ち時間期間が目標待ち時間より大きい場合に、累積値が経時的に増加し、観察された平均待ち時間が目標待ち時間未満である場合に、アキュムレータ値は経時的に低下するという、同じ基本的な現象が観察される。
【0087】
図9Aおよび9Bは、ある特定の実施例の状況の、特定の処理期間内にGPUによって観察された帯域幅を概略的に示す。特に、図9Aは、経時的に、帯域幅がどのように変化するかを示し、図9Bは、経時的に、処理の割合(%)がどのように増加するかを示す。処理期間の終了までに、必要な処理の100%を完了する必要がある。典型的には、処理期間は、フレーム期間未満になる。特に、各フレームで必要な処理量の変化を考慮して、フレームのほんの一部のみがフレーム期間内でその処理を完了できないようにするために、目標帯域幅が設定されている。このため、ほとんど全てのフレームでは、フレーム期間終了の少し前に、処理が完了される。
【0088】
GPUがその目標帯域幅に等しい一定の帯域幅を観察する場合、点線552によって示されるように、処理期間終了によって、タスクが完了することになる。図9Bに示されるように、こうした状況で、処理の割合(%)は、処理期間終了までに、0%から100%へ着実に増加する点線577に従う。
【0089】
しかしながら、図9Aおよび9Bに示される実施例において、フレーム期間の初期の部分において、GPUは、その目標帯域幅よりも大幅に多く受信し、特に、ライン550によって示された帯域幅を受信すると想定される。これは、フレーム期間の初期の部分において、処理の割合(%)はライン565に従い、したがって、処理がフレーム期間のその初期の部分において予想されるよりもずっと先行するということを意味する。時間t1において、GPUは、任意の帯域幅の受信を突然中止し、したがって、さらなる処理を行うことができない。このため、帯域幅はゼロに低下し、ライン555に従うが、処理の割合(%)はライン570に従う。この時間において、累積値は、フレーム期間の初期の部分中にマスタに供給される超過帯域幅のレベル表示を格納するために、マイナスになってもよい。GPUに帯域幅が使用可能になると、GPUから新しいトランザクションに関連付けられた優先レベルの増加をGPUが開始するまで、少し時間がかかる。
【0090】
時間t2において、GPUは、その目標帯域幅を得ることを開始し、帯域幅は、残りの処理期間の間、ライン560に従う。したがって、処理期間終了までに100%の処理が実行できるように、処理の割合(%)は増加を開始し、ライン575に従う。
【0091】
なお、マスタに供給された超過帯域幅のレベル表示を格納するために、累積値をマイナスにできなくなっている場合、新しいトランザクションの優先レベル出力はこの前に増加されており、GPUは、この前に帯域幅を取得することを開始しており、こうして、示された処理期間の終了前に、処理の割合(%)は100%に達する。これは、適応優先回路を動作させる完全に受容可能な方法であるが、アキュムレータ値をマイナスにすることができる機構によって、超過帯域幅の量を格納可能にすることにより、処理の100%を実行するためにかかる期間が、期間全体でその目標帯域幅を受信した場合と同じになることを確実にできる。したがって、これは、GPUが、絶対的に必要であるよりも大きい帯域幅を取ることを回避することによって、システム内の他のマスタのパフォーマンスが最大化することを可能にする。
【0092】
図10Aおよび10Bは、累積値が、供給された超過帯域幅のレベルを格納するためにマイナスになるインスタンスを除く、優先レベルが、累積値を一般的に追跡する方法を示す。期間600中、観察された待ち時間が目標待ち時間よりも短くなるため、累積値は低下し、これが、優先レベルの低下をもたらす。いくつかのポイントにおいて、観察された待ち時間は、目標待ち時間よりも増加するようになり、これにより、優先レベルの対応する増加と共に、パス605に沿った累積値の増加が生じる。その後、いくつかのポイントにおいて、観察された待ち時間は目標の待ち時間未満になり、累積値は、パス610に沿って、減少を開始する。最初は、優先レベルは同様のパスに沿って追跡するが、累積値がポイント615においてマイナスになると、優先レベルは、期間630では、優先レベルゼロを維持される。累積値がポイント617において再び増加を開始し、ライン620に従う場合、優先レベルは、すぐにゼロレベルを超えて増加を開始するのではなく、代わりに、ポイント627に達するまで、優先レベルゼロ値にとどまり、その後、パス625に沿って増加を開始する。
【0093】
代替の実施形態では、アキュムレータは、ライン615に沿って減少しないようにされている場合があり、その場合、優先レベルは、時間ポイント617において累積値が増加を開始するとすぐに、再び増加を開始している。しかしながら、上述のように、累積値がマイナスになることを可能にすることにより、これは、実際、マスタに供給される超過帯域幅レベルの表示を蓄積し、必要であるよりも前にバッチタスクを終了するのではなく、自然な処理期間を保持できるようにされている。
【0094】
上記の実施形態から、こうした実施形態は、そのソースの指定されたスループットに目標設定するために、関連付けられたソースから新しいトランザクションのそれぞれに割り当てられる優先レベルを制御するためのフィードバック機構を使用する適応優先回路を提供し、また、この機構によって、システム内の他のソースのアクティビティとは独立して、スループット目的を実現するために必要な最下位の優先を発見することが、理解される。こうして、こうした機構は、他のマスタのアクティビティとは独立したパフォーマンスを提供するために、システムリソースへの調整されたアクセスを提供し、これによって、システムリソースの最適な割り当てが、システム内のマスタのパフォーマンス、およびスレーブ、例えば、メモリコントローラの利用を最大化できるようにする。
【0095】
本明細書において、添付の図面を参照して、例示的な発明の実施形態が詳細に説明されているが、本発明はこれらの正確な実施形態に制限されず、添付の請求項によって定義されるように、発明の範囲および精神から逸脱しない限り、当業者によって、種々の変更および修正を実行可能であることが理解される。
【符号の説明】
【0096】
100 CPU
110 GPU
115 適応優先回路
120 相互接続
125、145 アービタ
130 マルチプレクサ
135 メモリコントローラ
140 行列
【特許請求の範囲】
【請求項1】
トランザクションを処理する共有リソースと、
前記共有リソースへ、前記トランザクションを発行する少なくとも1つのマスタデバイスと、を含むデータ処理装置であって、
前記少なくとも1つのマスタデバイスは、前記トランザクションの複数のソースを提供し、前記トランザクションのそれぞれは、これに関連付けられた優先レベルを有し、
前記データ処理装置は、
前記共有リソースに発行された複数のトランザクションの中からあるトランザクションを選択するために、アービトレーションポリシーを適用するアービトレーション回路を含み、
前記アービトレーションポリシーは、前記選択を実行する際に、前記複数のトランザクションのそれぞれに関連付けられた前記優先レベルを使用し、
前記データ処理装置は、
前記複数のソースのうちの少なくとも1つに関連付けられる適応優先回路を含み、
前記適応優先回路は、前記関連付けられたソースから以前に発行されたトランザクションに関して、スループット表示データを監視し、かつ、指定された目標スループットが実現できるようにする複数の既定の優先レベルの中から、最下位の優先レベルを設定するように、前記関連付けられたソースからの新しいトランザクション毎に、前記スループット表示データに依存して、前記複数の既定の優先レベルのうちの1つに、前記優先レベルを設定するように構成される、データ処理装置。
【請求項2】
前記適応優先回路は、
前記スループット表示データから、進行中のトランザクション数の表示を決定するアクティブトランザクションカウント回路と、
優先レベル制御値を維持するアキュムレータ回路と、を含み、
前記アキュムレータ回路は、進行中のトランザクション数の前記表示に依存して、前記優先レベル制御値を増加させる、請求項1に記載のデータ処理装置。
【請求項3】
前記適応優先回路は、進行中のトランザクションが既定のポイントに達すると、前記スループット表示データから検知するように構成され、前記既定のポイントが検知される度に、前記アキュムレータ回路は、前記優先レベル制御値を減少させるように構成される、請求項2に記載のデータ処理装置。
【請求項4】
前記適応優先回路は、前記指定された目標スループットを示す目標スループット表示が提供され、前記既定のポイントが検知される度に、前記アキュムレータ回路は、前記目標スループット表示に依存する量だけ、前記優先レベル制御値を減少させるように構成される、請求項3に記載のデータ処理装置。
【請求項5】
前記既定のポイントは、トランザクション終了ポイントである、請求項3に記載のデータ処理装置。
【請求項6】
クロックサイクル毎に、前記アクティブトランザクションカウント回路は、進行中の少なくとも1つのトランザクションが存在することを示し、前記アキュムレータ回路は、前記優先レベル制御値を増加させるように構成される、請求項3に記載のデータ処理装置。
【請求項7】
前記目標スループット表示は、トランザクション毎の目標平均待ち時間の表示を提供し、
クロックサイクル毎に、前記アクティブトランザクションカウント回路は、少なくとも1つの進行中のトランザクションが存在することを示し、前記アキュムレータ回路は、前記アクティブトランザクションカウント回路によって示されるように、進行中のトランザクション数に依存する量だけ、前記優先レベル制御値を増加させるように構成され、
前記既定のポイントが検知される度に、前記アキュムレータ回路は、トランザクション表示毎の前記目標平均待ち時間に依存する量だけ、前記優先レベル制御値を減少させるように構成される、請求項4に記載のデータ処理装置。
【請求項8】
前記目標スループット表示は、前記既定のポイントの発生の間の目標平均待ち時間の表示を提供し、
クロックサイクル毎に、前記アクティブトランザクションカウント回路は、少なくとも1つの進行中のトランザクションが存在することを示し、前記アキュムレータ回路は、固定整数の量だけ、前記優先レベル制御値を増加させるように構成され、
前記既定のポイントが検知される度に、前記アキュムレータ回路は、前記既定のポイントの発生の間の前記目標平均待ち時間に依存する量だけ、前記優先レベル制御値を減少させるように構成される、請求項4に記載のデータ処理装置。
【請求項9】
前記スループット表示データは、前記以前に発行されたトランザクションに関連付けられた待ち時間を示す待ち時間表示データを含み、前記指定された目標スループットは、指定された目標待ち時間である、請求項1に記載のデータ処理装置。
【請求項10】
前記以前に発行されたトランザクション毎に、前記適応優先回路は、第1および第2のタイミング表示を、前記待ち時間表示データとして受信する、請求項9に記載のデータ処理装置。
【請求項11】
前記第1のタイミング表示はトランザクション開始表示であり、前記第2のタイミング表示はトランザクション終了表示である、請求項10に記載のデータ処理装置。
【請求項12】
前記適応優先回路は、
前記スループット表示データから、進行中のトランザクション数の表示を決定するアクティブトランザクションカウント回路と、
優先レベル制御値を維持するアキュムレータ回路と、を含み、
前記アキュムレータ回路は、進行中のトランザクション数の前記表示に依存して、前記優先レベル制御値を増加させ、
前記アクティブトランザクションカウント回路は、進行中のトランザクション数の記録を維持するために、前記トランザクション開始表示および前記トランザクション終了表示を使用する、請求項11に記載のデータ処理装置。
【請求項13】
前記適応優先回路は、新しいトランザクション毎に、前記アキュムレータ回路によって現在維持される前記優先レベル制御値に依存して、そのトランザクションの前記優先レベルを設定する優先値決定回路をさらに含む、請求項2に記載のデータ処理装置。
【請求項14】
前記優先値決定回路は、前記優先レベル制御値の変化が、新しいトランザクション毎に設定された前記優先レベルに変化を生じさせる程度を制御するループゲイン回路を含む、請求項13に記載のデータ処理装置。
【請求項15】
経時的に、前記監視されたスループット表示データが、前記スループットが前記指定された目標スループットを超過することを示す場合に、前記優先レベル制御値に、前記関連付けられたソースによって観察される超過スループットの計測値を捕捉させるように、前記アキュムレータ回路の前記動作が、前記優先レベル制御値を、前記複数の既定の優先レベルの中から最下位の優先レベルに関連付けられた値未満にデクリメントさせ、
前記優先値決定回路は、こうしたインスタンスにおいて、前記優先レベルが、前記複数の既定の優先レベルの中で、前記最下位の優先レベルに設定されることを確実とする飽和回路を含む、請求項13に記載のデータ処理装置。
【請求項16】
前記関連付けられたソースは、個別の処理ブロックを実行し、各処理ブロックは、指定された時間内で完了することが必要であり、
前記適応優先回路は、前記指定された目標スループットを示す目標スループット表示が提供され、前記目標スループット表示は、実現される場合に、各処理ブロックを、前記指定された時間内に実行できるようにするトランザクション毎に、平均目標スループットを識別する、請求項1に記載のデータ処理装置。
【請求項17】
前記関連付けられたソースは、画像処理動作を実行し、各個別の処理ブロックは、画像データのフレームに関連する、請求項16に記載のデータ処理装置。
【請求項18】
前記適応優先回路は、
前記スループット表示データから、進行中のトランザクション数の表示を決定するアクティブトランザクションカウント回路と、
優先レベル制御値を維持するアキュムレータ回路と、を含み、
前記アキュムレータ回路は、進行中のトランザクション数の表示に依存して、前記優先レベル制御値を増加させ、
前記アキュムレータ回路は、各個別の処理ブロックの間でリセットされる、請求項16に記載のデータ処理装置。
【請求項19】
前記少なくとも1つのマスタデバイスは、複数のマスタデバイスを含み、各マスタデバイスは、前記トランザクションのうちの少なくとも1つのソースを提供する、請求項1に記載のデータ処理装置。
【請求項20】
前記複数のマスタデバイスのうちの少なくとも1つは、バッチ処理動作を実行するバッチ処理デバイスであり、前記適応優先回路は、前記バッチ処理デバイスに関連付けられる、請求項19に記載のデータ処理装置。
【請求項21】
前記バッチ処理デバイスは画像処理装置であり、前記複数のマスタデバイスのさらなるマスタデバイスは中央処理装置であり、前記中央処理装置は、これに関連付けられた前記適応優先回路を有しない、請求項20に記載のデータ処理装置。
【請求項22】
前記複数のソースは単一マスタデバイス上で実行される複数の処理スレッドによって形成され、前記適応優先回路は、前記処理スレッドのうちの少なくとも1つに関連付けられる、請求項1に記載のデータ処理装置。
【請求項23】
前記単一マスタデバイスは画像処理装置であり、前記複数の処理スレッドは、少なくとも節点処理スレッドおよび画素処理スレッドを含む、請求項22に記載のデータ処理装置。
【請求項24】
前記複数のソースは、前記少なくとも1つのマスタデバイスで実行される異なる種類のトランザクションによって形成される、請求項1に記載のデータ処理装置。
【請求項25】
前記異なる種類のトランザクションは、書き込みトランザクションおよび読み出しトランザクションを含む、請求項24に記載のデータ処理装置。
【請求項26】
前記以前に発行されたトランザクション毎に、前記適応優先回路は、第1および第2のタイミング表示を前記待ち時間表示データとして受信し、
前記第1および第2のタイミング表示をトリガする条件は、プログラム可能である、請求項1に記載のデータ処理装置。
【請求項27】
前記適応優先回路は、前記指定された目標スループットを示す目標スループット表示が提供され、前記既定のポイントが検知される度に、前記アキュムレータ回路は、前記目標スループット表示に依存する量だけ、前記優先レベル制御値を減少させるように構成され、
前記目標スループット表示はプログラム可能である、請求項1に記載のデータ処理装置。
【請求項28】
前記共有リソースはメモリ制御装置である、請求項1に記載のデータ処理装置。
【請求項29】
前記データ処理装置内に前記アービトレーション回路の複数のインスタンスが提供されている、請求項1に記載のデータ処理装置。
【請求項30】
前記アービトレーション回路のうちの1つのインスタンスは、前記共有リソース内に提供されている、請求項29に記載のデータ処理装置。
【請求項31】
請求項1に記載のデータ処理装置におけるトランザクションのソースに関連して使用される適応優先回路であって、
前記適応優先回路は、前記関連付けられたソースから以前に発行されたトランザクションに関して、スループット表示データを監視し、かつ、指定された目標スループットが実現できるようにする複数の既定の優先レベルの中から、前記最下位の優先レベルを設定するように、前記関連付けられたソースからの新しいトランザクション毎に、前記スループット表示データに依存して、前記複数の既定の優先レベルのうちの1つに、そのトランザクションの関連付けられた優先レベルを設定するように構成される、適応優先回路。
【請求項32】
データ処理装置内のトランザクションのための優先レベルを設定する方法であって、
前記データ処理装置は、
前記トランザクションを処理する共有リソースと、
前記共有リソースへ前記トランザクションを発行する少なくとも1つのマスタデバイスと、を含み
前記少なくとも1つのマスタデバイスは、前記トランザクションの複数のソースを提供し、かつ、前記トランザクションのそれぞれは、これに関連付けられた優先レベルを有し、
前記データ処理装置は、前記共有リソースに発行される複数のトランザクションの中から、トランザクションを選択するためにアービトレーションポリシーを適用するアービトレーション回路を含み、
前記アービトレーションポリシーは、前記選択を実行する際に、前記複数のトランザクションのそれぞれに関連付けられた前記優先レベルを使用し、
前記方法は、
前記複数のソースのうちの少なくとも1つについて、
スループット表示データに関して、そのソースから以前に発行されたトランザクションを監視するステップと、
指定された目標スループットが実現できるようにする複数の既定の優先レベルの中から最下位の優先レベルを設定するように、そのソースからの新しいトランザクション毎に、前記スループット表示データに依存して、前記複数の既定の優先レベルのうちの1つに前記優先レベルを設定するステップと、を含む、方法。
【請求項33】
トランザクションを処理する共有リソース手段と、
前記共有リソース手段へ前記トランザクションを発行する少なくとも1つのマスタ手段と、を含むデータ処理装置であって、
前記少なくとも1つのマスタ手段は、前記トランザクションの複数のソースを提供し、前記トランザクションのそれぞれは、これに関連付けられた優先レベルを有し、
前記データ処理装置は、
前記共有リソース手段に発行された複数のトランザクションの中から、トランザクションを選択するように、アービトレーションポリシーを適用するアービトレーション手段を含み、
前記アービトレーションポリシーは、前記選択を実行する際に、前記複数のトランザクションのそれぞれに関連付けられた前記優先レベルを使用し、
前記データ処理装置は、
前記複数のソースのうちの少なくとも1つに関連付けられた適応優先手段を含み、
前記適応優先手段は、前記関連付けられたソースから以前に発行されたトランザクションに関して、スループット表示データを監視し、前記適応優先手段は、指定された目標スループットが実現できるようにする複数の既定の優先レベルの中から、最下位の優先レベルを設定するように、前記関連付けられたソースからの新しいトランザクション毎に、前記スループット表示データに依存して、前記複数の既定の優先レベルのうちの1つに、前記優先レベルを設定する、データ処理装置。
【請求項1】
トランザクションを処理する共有リソースと、
前記共有リソースへ、前記トランザクションを発行する少なくとも1つのマスタデバイスと、を含むデータ処理装置であって、
前記少なくとも1つのマスタデバイスは、前記トランザクションの複数のソースを提供し、前記トランザクションのそれぞれは、これに関連付けられた優先レベルを有し、
前記データ処理装置は、
前記共有リソースに発行された複数のトランザクションの中からあるトランザクションを選択するために、アービトレーションポリシーを適用するアービトレーション回路を含み、
前記アービトレーションポリシーは、前記選択を実行する際に、前記複数のトランザクションのそれぞれに関連付けられた前記優先レベルを使用し、
前記データ処理装置は、
前記複数のソースのうちの少なくとも1つに関連付けられる適応優先回路を含み、
前記適応優先回路は、前記関連付けられたソースから以前に発行されたトランザクションに関して、スループット表示データを監視し、かつ、指定された目標スループットが実現できるようにする複数の既定の優先レベルの中から、最下位の優先レベルを設定するように、前記関連付けられたソースからの新しいトランザクション毎に、前記スループット表示データに依存して、前記複数の既定の優先レベルのうちの1つに、前記優先レベルを設定するように構成される、データ処理装置。
【請求項2】
前記適応優先回路は、
前記スループット表示データから、進行中のトランザクション数の表示を決定するアクティブトランザクションカウント回路と、
優先レベル制御値を維持するアキュムレータ回路と、を含み、
前記アキュムレータ回路は、進行中のトランザクション数の前記表示に依存して、前記優先レベル制御値を増加させる、請求項1に記載のデータ処理装置。
【請求項3】
前記適応優先回路は、進行中のトランザクションが既定のポイントに達すると、前記スループット表示データから検知するように構成され、前記既定のポイントが検知される度に、前記アキュムレータ回路は、前記優先レベル制御値を減少させるように構成される、請求項2に記載のデータ処理装置。
【請求項4】
前記適応優先回路は、前記指定された目標スループットを示す目標スループット表示が提供され、前記既定のポイントが検知される度に、前記アキュムレータ回路は、前記目標スループット表示に依存する量だけ、前記優先レベル制御値を減少させるように構成される、請求項3に記載のデータ処理装置。
【請求項5】
前記既定のポイントは、トランザクション終了ポイントである、請求項3に記載のデータ処理装置。
【請求項6】
クロックサイクル毎に、前記アクティブトランザクションカウント回路は、進行中の少なくとも1つのトランザクションが存在することを示し、前記アキュムレータ回路は、前記優先レベル制御値を増加させるように構成される、請求項3に記載のデータ処理装置。
【請求項7】
前記目標スループット表示は、トランザクション毎の目標平均待ち時間の表示を提供し、
クロックサイクル毎に、前記アクティブトランザクションカウント回路は、少なくとも1つの進行中のトランザクションが存在することを示し、前記アキュムレータ回路は、前記アクティブトランザクションカウント回路によって示されるように、進行中のトランザクション数に依存する量だけ、前記優先レベル制御値を増加させるように構成され、
前記既定のポイントが検知される度に、前記アキュムレータ回路は、トランザクション表示毎の前記目標平均待ち時間に依存する量だけ、前記優先レベル制御値を減少させるように構成される、請求項4に記載のデータ処理装置。
【請求項8】
前記目標スループット表示は、前記既定のポイントの発生の間の目標平均待ち時間の表示を提供し、
クロックサイクル毎に、前記アクティブトランザクションカウント回路は、少なくとも1つの進行中のトランザクションが存在することを示し、前記アキュムレータ回路は、固定整数の量だけ、前記優先レベル制御値を増加させるように構成され、
前記既定のポイントが検知される度に、前記アキュムレータ回路は、前記既定のポイントの発生の間の前記目標平均待ち時間に依存する量だけ、前記優先レベル制御値を減少させるように構成される、請求項4に記載のデータ処理装置。
【請求項9】
前記スループット表示データは、前記以前に発行されたトランザクションに関連付けられた待ち時間を示す待ち時間表示データを含み、前記指定された目標スループットは、指定された目標待ち時間である、請求項1に記載のデータ処理装置。
【請求項10】
前記以前に発行されたトランザクション毎に、前記適応優先回路は、第1および第2のタイミング表示を、前記待ち時間表示データとして受信する、請求項9に記載のデータ処理装置。
【請求項11】
前記第1のタイミング表示はトランザクション開始表示であり、前記第2のタイミング表示はトランザクション終了表示である、請求項10に記載のデータ処理装置。
【請求項12】
前記適応優先回路は、
前記スループット表示データから、進行中のトランザクション数の表示を決定するアクティブトランザクションカウント回路と、
優先レベル制御値を維持するアキュムレータ回路と、を含み、
前記アキュムレータ回路は、進行中のトランザクション数の前記表示に依存して、前記優先レベル制御値を増加させ、
前記アクティブトランザクションカウント回路は、進行中のトランザクション数の記録を維持するために、前記トランザクション開始表示および前記トランザクション終了表示を使用する、請求項11に記載のデータ処理装置。
【請求項13】
前記適応優先回路は、新しいトランザクション毎に、前記アキュムレータ回路によって現在維持される前記優先レベル制御値に依存して、そのトランザクションの前記優先レベルを設定する優先値決定回路をさらに含む、請求項2に記載のデータ処理装置。
【請求項14】
前記優先値決定回路は、前記優先レベル制御値の変化が、新しいトランザクション毎に設定された前記優先レベルに変化を生じさせる程度を制御するループゲイン回路を含む、請求項13に記載のデータ処理装置。
【請求項15】
経時的に、前記監視されたスループット表示データが、前記スループットが前記指定された目標スループットを超過することを示す場合に、前記優先レベル制御値に、前記関連付けられたソースによって観察される超過スループットの計測値を捕捉させるように、前記アキュムレータ回路の前記動作が、前記優先レベル制御値を、前記複数の既定の優先レベルの中から最下位の優先レベルに関連付けられた値未満にデクリメントさせ、
前記優先値決定回路は、こうしたインスタンスにおいて、前記優先レベルが、前記複数の既定の優先レベルの中で、前記最下位の優先レベルに設定されることを確実とする飽和回路を含む、請求項13に記載のデータ処理装置。
【請求項16】
前記関連付けられたソースは、個別の処理ブロックを実行し、各処理ブロックは、指定された時間内で完了することが必要であり、
前記適応優先回路は、前記指定された目標スループットを示す目標スループット表示が提供され、前記目標スループット表示は、実現される場合に、各処理ブロックを、前記指定された時間内に実行できるようにするトランザクション毎に、平均目標スループットを識別する、請求項1に記載のデータ処理装置。
【請求項17】
前記関連付けられたソースは、画像処理動作を実行し、各個別の処理ブロックは、画像データのフレームに関連する、請求項16に記載のデータ処理装置。
【請求項18】
前記適応優先回路は、
前記スループット表示データから、進行中のトランザクション数の表示を決定するアクティブトランザクションカウント回路と、
優先レベル制御値を維持するアキュムレータ回路と、を含み、
前記アキュムレータ回路は、進行中のトランザクション数の表示に依存して、前記優先レベル制御値を増加させ、
前記アキュムレータ回路は、各個別の処理ブロックの間でリセットされる、請求項16に記載のデータ処理装置。
【請求項19】
前記少なくとも1つのマスタデバイスは、複数のマスタデバイスを含み、各マスタデバイスは、前記トランザクションのうちの少なくとも1つのソースを提供する、請求項1に記載のデータ処理装置。
【請求項20】
前記複数のマスタデバイスのうちの少なくとも1つは、バッチ処理動作を実行するバッチ処理デバイスであり、前記適応優先回路は、前記バッチ処理デバイスに関連付けられる、請求項19に記載のデータ処理装置。
【請求項21】
前記バッチ処理デバイスは画像処理装置であり、前記複数のマスタデバイスのさらなるマスタデバイスは中央処理装置であり、前記中央処理装置は、これに関連付けられた前記適応優先回路を有しない、請求項20に記載のデータ処理装置。
【請求項22】
前記複数のソースは単一マスタデバイス上で実行される複数の処理スレッドによって形成され、前記適応優先回路は、前記処理スレッドのうちの少なくとも1つに関連付けられる、請求項1に記載のデータ処理装置。
【請求項23】
前記単一マスタデバイスは画像処理装置であり、前記複数の処理スレッドは、少なくとも節点処理スレッドおよび画素処理スレッドを含む、請求項22に記載のデータ処理装置。
【請求項24】
前記複数のソースは、前記少なくとも1つのマスタデバイスで実行される異なる種類のトランザクションによって形成される、請求項1に記載のデータ処理装置。
【請求項25】
前記異なる種類のトランザクションは、書き込みトランザクションおよび読み出しトランザクションを含む、請求項24に記載のデータ処理装置。
【請求項26】
前記以前に発行されたトランザクション毎に、前記適応優先回路は、第1および第2のタイミング表示を前記待ち時間表示データとして受信し、
前記第1および第2のタイミング表示をトリガする条件は、プログラム可能である、請求項1に記載のデータ処理装置。
【請求項27】
前記適応優先回路は、前記指定された目標スループットを示す目標スループット表示が提供され、前記既定のポイントが検知される度に、前記アキュムレータ回路は、前記目標スループット表示に依存する量だけ、前記優先レベル制御値を減少させるように構成され、
前記目標スループット表示はプログラム可能である、請求項1に記載のデータ処理装置。
【請求項28】
前記共有リソースはメモリ制御装置である、請求項1に記載のデータ処理装置。
【請求項29】
前記データ処理装置内に前記アービトレーション回路の複数のインスタンスが提供されている、請求項1に記載のデータ処理装置。
【請求項30】
前記アービトレーション回路のうちの1つのインスタンスは、前記共有リソース内に提供されている、請求項29に記載のデータ処理装置。
【請求項31】
請求項1に記載のデータ処理装置におけるトランザクションのソースに関連して使用される適応優先回路であって、
前記適応優先回路は、前記関連付けられたソースから以前に発行されたトランザクションに関して、スループット表示データを監視し、かつ、指定された目標スループットが実現できるようにする複数の既定の優先レベルの中から、前記最下位の優先レベルを設定するように、前記関連付けられたソースからの新しいトランザクション毎に、前記スループット表示データに依存して、前記複数の既定の優先レベルのうちの1つに、そのトランザクションの関連付けられた優先レベルを設定するように構成される、適応優先回路。
【請求項32】
データ処理装置内のトランザクションのための優先レベルを設定する方法であって、
前記データ処理装置は、
前記トランザクションを処理する共有リソースと、
前記共有リソースへ前記トランザクションを発行する少なくとも1つのマスタデバイスと、を含み
前記少なくとも1つのマスタデバイスは、前記トランザクションの複数のソースを提供し、かつ、前記トランザクションのそれぞれは、これに関連付けられた優先レベルを有し、
前記データ処理装置は、前記共有リソースに発行される複数のトランザクションの中から、トランザクションを選択するためにアービトレーションポリシーを適用するアービトレーション回路を含み、
前記アービトレーションポリシーは、前記選択を実行する際に、前記複数のトランザクションのそれぞれに関連付けられた前記優先レベルを使用し、
前記方法は、
前記複数のソースのうちの少なくとも1つについて、
スループット表示データに関して、そのソースから以前に発行されたトランザクションを監視するステップと、
指定された目標スループットが実現できるようにする複数の既定の優先レベルの中から最下位の優先レベルを設定するように、そのソースからの新しいトランザクション毎に、前記スループット表示データに依存して、前記複数の既定の優先レベルのうちの1つに前記優先レベルを設定するステップと、を含む、方法。
【請求項33】
トランザクションを処理する共有リソース手段と、
前記共有リソース手段へ前記トランザクションを発行する少なくとも1つのマスタ手段と、を含むデータ処理装置であって、
前記少なくとも1つのマスタ手段は、前記トランザクションの複数のソースを提供し、前記トランザクションのそれぞれは、これに関連付けられた優先レベルを有し、
前記データ処理装置は、
前記共有リソース手段に発行された複数のトランザクションの中から、トランザクションを選択するように、アービトレーションポリシーを適用するアービトレーション手段を含み、
前記アービトレーションポリシーは、前記選択を実行する際に、前記複数のトランザクションのそれぞれに関連付けられた前記優先レベルを使用し、
前記データ処理装置は、
前記複数のソースのうちの少なくとも1つに関連付けられた適応優先手段を含み、
前記適応優先手段は、前記関連付けられたソースから以前に発行されたトランザクションに関して、スループット表示データを監視し、前記適応優先手段は、指定された目標スループットが実現できるようにする複数の既定の優先レベルの中から、最下位の優先レベルを設定するように、前記関連付けられたソースからの新しいトランザクション毎に、前記スループット表示データに依存して、前記複数の既定の優先レベルのうちの1つに、前記優先レベルを設定する、データ処理装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7A】
【図7B】
【図8】
【図9A】
【図9B】
【図10A】
【図10B】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7A】
【図7B】
【図8】
【図9A】
【図9B】
【図10A】
【図10B】
【公開番号】特開2011−65649(P2011−65649A)
【公開日】平成23年3月31日(2011.3.31)
【国際特許分類】
【外国語出願】
【出願番号】特願2010−205440(P2010−205440)
【出願日】平成22年9月14日(2010.9.14)
【出願人】(504394342)アーム・リミテッド (134)
【Fターム(参考)】
【公開日】平成23年3月31日(2011.3.31)
【国際特許分類】
【出願番号】特願2010−205440(P2010−205440)
【出願日】平成22年9月14日(2010.9.14)
【出願人】(504394342)アーム・リミテッド (134)
【Fターム(参考)】
[ Back to top ]