(57)【特許請求の範囲】
【請求項１】
複数のメモリ要求ストリームからまとめられたメモリ要求ストリーム（３１６）を生成する方法であって、
コヒーレントメモリ要求を第１のシリアルメモリ要求ストリームへまとめることと、
前記まとめられたメモリ要求ストリーム内での配置のためにメモリ要求を少なくとも前記第１のシリアルメモリ要求ストリーム及びまとめられた非コヒーレントメモリ要求ストリームからメモリ制御器回路（２１３，３０２）によって選択することとを備え、
前記まとめられた非コヒーレントメモリ要求ストリームは前記まとめられたメモリ要求ストリーム内での配置のために選択された前回のメモリ要求の標識（３３４）に少なくとも部分的に基いている方法。
【請求項２】
前記まとめられたメモリ要求ストリーム内での配置のために選択された前記メモリ要求は、複数のバス転回方針、帯域幅割り当て方針、及びページオーナシップ方針に少なくとも部分的に基いて選択されている請求項１に記載の方法。
【請求項３】
前記第１のシリアルメモリ要求ストリーム内での配置のためにメモリ要求を少なくとも第１のコヒーレントメモリ要求ストリーム及び第２のコヒーレントメモリ要求ストリームから選択することを更に備え、前記第２のコヒーレントメモリ要求ストリームは投機的コヒーレント要求ストリームである請求項１に記載の方法。
【請求項４】
第１のコヒーレントメモリ要求ストリーム、第２のコヒーレントメモリ要求ストリーム、及び再試行要求ストリームを前記第１のシリアルメモリ要求ストリームへまとめることを更に備えた請求項１に記載の方法。
【請求項５】
前記まとめられたメモリ要求ストリーム内での配置のために選択された前記前回のメモリ要求の前記標識に少なくとも部分的に基いて非コヒーレントメモリ要求を前記まとめられた非コヒーレントメモリ要求ストリームへまとめることを更に備えた請求項１に記載の方法。
【請求項６】
第１の複数のメモリ要求エージェント（２０４，２０６，２０８，２１６）から受信した複数のコヒーレントメモリ要求ストリームを少なくとも第１のコヒーレントメモリ要求ストリームへまとめるように構成されるアービトレーションユニット（２１０）と、
まとめられたメモリ要求ストリーム（３１６）内での配置のためにメモリ要求を前記第１のコヒーレントメモリ要求ストリームに基いて、まとめられた非コヒーレントメモリ要求ストリーム及び第１のシリアルメモリ要求ストリームから選択するように構成されるメモリ制御器ユニット（２１３）とを備え、
前記まとめられた非コヒーレントメモリ要求ストリームは前記まとめられたメモリ要求ストリーム内での配置のために選択された前回のメモリ要求の標識（３３４）に少なくとも部分的に基いている装置。
【請求項７】
前記まとめられたメモリ要求ストリーム内での配置のために選択された前記メモリ要求は、バス転回方針、帯域幅割り当て方針、及びページオーナシップ方針の１つ以上に少なくとも部分的に基いて選択されている請求項６に記載の装置。
【請求項８】
前記アービトレーションユニットは投機的メモリ要求を生成するように構成されると共に第１のコヒーレントメモリ要求とコヒーレントな前記メモリ制御器ユニットへ前記投機的メモリ要求を発行するように構成され、
前記メモリ制御器ユニットは前記第１のコヒーレントメモリ要求、前記投機的メモリ要求、及び非コヒーレントメモリ要求を前記まとめられたメモリ要求ストリームへ階層的にまとめるように構成される結合用マルチプレクサユニットを備えている請求項６に記載の装置。
【請求項９】
前記結合用マルチプレクサユニットは、
前記第１のコヒーレントメモリ要求、前記投機的メモリ要求、及び第３の一連のメモリ要求からフロントエンドメモリ要求として選択するように構成される第１のマルチプレクサユニットと、
フロントエンドメモリ要求の記憶されたバージョンから前記第３の一連のメモリ要求を選択するように構成される第２のマルチプレクサユニットとを備えている請求項８に記載の装置。
【請求項１０】
前記結合用マルチプレクサユニットは、
前記まとめられたメモリ要求ストリーム内での配置のために前記メモリ要求を前記フロントエンドメモリ要求、前記非コヒーレントメモリ要求、及びメモリページテーブルの出力から選択するように構成される第３のマルチプレクサユニットを備えている請求項８に記載の装置。
【請求項１１】
前記第１の複数のメモリ要求エージェントは、
複数の第１のコヒーレントメモリ要求を発行するように構成される複数の汎用処理ユニットと、
第２のコヒーレントメモリ要求を発行するように構成される入力／出力処理ユニットとを備えている請求項６に記載の装置。
【請求項１２】
前記まとめられたメモリ要求ストリーム内での配置のために選択された前記前回のメモリ要求の前記標識に少なくとも部分的に基いて複数の特別な処理ユニットによって非コヒーレントメモリ要求ストリームが生成され、前記まとめられたメモリ要求ストリーム内での配置のために選択された前記前回のメモリ要求の前記標識はチップ選択標識、メモリバンク標識、コマンド標識、行標識、及びソース標識の１つ以上を含む請求項６に記載の装置。
【請求項１３】
複数のコヒーレントメモリ要求ストリームを発行するように構成される複数のコヒーレントメモリ要求元（２０４，２０６，２０８，２１６）と、
少なくとも１つのコヒーレントメモリ要求ストリーム及び少なくとも１つの非コヒーレントメモリ要求ストリームを発行するように構成されるグラフィックス処理ユニット（２４０）であって、前記少なくとも１つのコヒーレントメモリ要求ストリームを発行するように構成される入力／出力エンジン（２１６）と、まとめられたメモリ要求ストリーム内での配置のために選択された前回のメモリ要求の標識（３３４）に少なくとも部分的に基くまとめられた非コヒーレント要求ストリームを発行するように構成されるグラフィックスメモリアービタ（２２４）とを備えているグラフィックス処理ユニット（２４０）と、
メモリ要求を階層的にアービトレートすると共に前記複数のコヒーレントメモリ要求ストリーム、前記少なくとも１つのコヒーレントメモリ要求ストリーム、及び前記まとめられた非コヒーレント要求ストリームから前記まとめられたメモリ要求ストリーム（３１６）を生成するように構成される統合型メモリ制御器（２３０）とを備えたシステム（２０２）。
【請求項１４】
前記統合型メモリ制御器は、
前記複数のコヒーレントメモリ要求ストリーム及び前記少なくとも１つのコヒーレントメモリ要求ストリームを少なくとも第１のコヒーレントメモリ要求ストリームへまとめるように構成されるアービトレーションユニットと、
前記まとめられたメモリ要求ストリーム内での配置のためにメモリ要求を前記第１のコヒーレントメモリ要求ストリームに基いて前記まとめられた非コヒーレント要求ストリーム及び第１のシリアルメモリ要求ストリームから選択するように構成されるメモリ制御器ユニットとを備えている請求項１３に記載のシステム。
【請求項１５】
前記統合型メモリ制御器は第１の周波数を有する制御クロック信号を用いて動作し、前記グラフィックス処理ユニットは前記第１の周波数とは異なる第２の周波数を有する制御クロック信号を用いて動作する請求項１３に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は集積回路に関し、更に特定的にはメモリへのメモリ要求をスケジューリングするための技術に関する。
【背景技術】
【０００２】
図１を参照すると、例示的なチップ上システム(system-on-chip)（即ちＳｏＣ１０２）は、インタフェース（例えばインタフェースＡ）を介して統合型メモリ制御器(integrated memory controller)（例えばＤＲＡＭ制御器１３０）へメモリ要求を発行する多重中央処理ユニット（即ちＣＰＵ、例えばＣＰＵ０＿１０４，ＣＰＵ１＿１０６，…，ＣＰＵＮ＿１０８）を含む。統合型メモリ制御器は、システムコヒーレンスを強制し、また共有メモリ空間（例えばＤＲＡＭ１１４）への導管(conduit)として機能する。特別のメモリ要求元、例えばグラフィックス処理ユニット（例えばＧＰＵ１４０）は、メモリ要求（例えば直接メモリアクセス要求、即ちＤＭＡ要求）を統合型メモリ制御器のインタフェース（例えばインタフェースＢ）へ発行し、そして統合型メモリ制御器の当該インタフェースからの応答を受信する。典型的なＤＲＡＭ制御器１３０はコヒーレントトラフィックをサポートし、即ちＣＰＵ要求、Ｉ／Ｏ要求、及びＧＰＵ要求によってアクセスされるデータのコピーの間で無矛盾性(consistency)を維持するために、メモリコヒーレンシプロトコルが実装されている。典型的なアービトレーションスキーム(arbitration scheme)は、種々の要求ストリームから選択する優先度ベースのアービトレーションスキームを用いてＳｏＣパイプライン内の複数のメモリ要求ストリームを結合して、メモリバス上のコマンドをスケジューリングする。それらの多重要求元からのメモリ要求のそのようなスケジューリングは、各要求中のソースに対してメモリバス上で実現されるメモリ待ち時間(memory latency)及びメモリ帯域幅に影響する。
【発明の概要】
【課題を解決するための手段】
【０００３】
階層的メモリ要求ストリームアービトレーション技術は、多重メモリ要求ソースからのコヒーレントメモリ要求ストリームをまとめ(merges)、そしてまとめられたコヒーレントメモリ要求ストリームを非コヒーレントメモリ要求ストリームからの要求と共にアービトレートする(arbitrates)。本発明の少なくとも１つの実施形態においては、複数のメモリ要求ストリームからまとめられたメモリ要求ストリームを生成する方法は、コヒーレントメモリ要求を第１のシリアルメモリ要求ストリームへまとめることを含む。方法は、まとめられたメモリ要求ストリーム内での配置のためにメモリ要求を少なくとも第１のシリアルメモリ要求ストリーム及びまとめられた非コヒーレントメモリ要求ストリームからメモリ制御器回路によって選択することを含む。まとめられた非コヒーレントメモリ要求ストリームは、まとめられたメモリ要求ストリーム内での配置のために選択された前回のメモリ要求の標識に少なくとも部分的に基いている。本発明の少なくとも１つの実施形態においては、まとめられたメモリ要求ストリーム内での配置のために選択されたメモリ要求は、複数のバス転回方針、帯域幅割り当て方針、及びページオーナシップ方針に少なくとも部分的に基いて選択されている。本発明の少なくとも１つの実施形態においては、まとめられたメモリ要求ストリーム内での配置のために選択されたメモリ要求は、バス転回方針に少なくとも部分的に基いて選択されている。本発明の少なくとも１つの実施形態においては、バス転回方針は、まとめられたメモリ要求ストリームに関連するメモリバスの電流方向と、要求元、要求種類、又はメモリ要求に関連する優先度クラスの少なくとも１つに関連する時間ウインドウとを、少なくとも部分的に、メモリ要求の発行に対する適格性の基礎としている。本発明の少なくとも１つの実施形態においては、まとめられたメモリ要求ストリーム内での配置のために選択されたメモリ要求は、帯域幅割り当て方針に少なくとも部分的に基いて選択されている。本発明の少なくとも１つの実施形態においては、帯域幅割り当て方針は、メモリ要求のソースと未解決のメモリ要求の関連する数とを、少なくとも部分的に、メモリ要求の発行に対する適格性の基礎としている。本発明の少なくとも１つの実施形態においては、まとめられたメモリ要求ストリーム内での配置のために選択されたメモリ要求は、ページオーナシップ方針に少なくとも部分的に基いて選択されている。本発明の少なくとも１つの実施形態においては、ページオーナシップ方針は、メモリ要求のソースの優先度と現在のメモリページオーナ情報とを、少なくとも部分的に、メモリ要求の発行に対する適格性の基礎としている。
【０００４】
本発明の少なくとも１つの実施形態においては、方法は、第１のシリアルメモリ要求ストリーム内での配置のためにメモリ要求を少なくとも第１のコヒーレントメモリ要求ストリーム及び第２のコヒーレントメモリ要求ストリームから選択することを更に含み、第２のコヒーレントメモリ要求ストリームは投機的コヒーレント要求ストリームである。本発明の少なくとも１つの実施形態においては、方法は、第１のコヒーレントメモリ要求ストリーム、第２のコヒーレントメモリ要求ストリーム、及び再試行要求ストリームを第１のシリアルメモリ要求ストリームへまとめることを更に含む。本発明の少なくとも１つの実施形態においては、方法は、メモリ制御回路に結合されるメモリ回路に関連するメモリページテーブルに少なくとも部分的に基いて、発行に不適格な第１のシリアルメモリ要求ストリームの要求を再試行要求キュー内に記憶することを更に含む。本発明の少なくとも１つの実施形態においては、メモリページテーブルは、まとめられたメモリ要求ストリーム内での配置のために選択された前回のメモリ要求の標識に基いて更新される。本発明の少なくとも１つの実施形態においては、方法は、まとめられたメモリ要求ストリーム内での配置のために選択された前回のメモリ要求の標識に少なくとも部分的に基いて非コヒーレントメモリ要求を非コヒーレントメモリ要求ストリームへまとめることを更に含む。本発明の少なくとも１つの実施形態においては、まとめられたメモリ要求ストリーム内での配置のために選択された前回のメモリ要求の標識は、チップ選択標識、メモリバンク標識、コマンド標識、行標識、及びソース標識の１つ以上を含む。本発明の少なくとも１つの実施形態においては、選択することは、第１のシリアルメモリ要求ストリーム、まとめられた非コヒーレントメモリ要求ストリーム、及びメモリページテーブルの出力に基いている。
【０００５】
本発明の少なくとも１つの実施形態においては、装置は、第１の複数のメモリ要求エージェントから受信した複数のコヒーレントメモリ要求ストリームを少なくとも第１のコヒーレントメモリ要求ストリームへまとめるように構成されるアービトレーションユニットを含む。装置は、まとめられたメモリ要求ストリーム内での配置のためにメモリ要求を第１のコヒーレントメモリ要求ストリームに基いて、まとめられた非コヒーレント要求ストリーム及び第１のシリアルメモリ要求ストリームから選択するように構成されるメモリ制御器ユニットを含む。まとめられた非コヒーレントメモリ要求ストリームは、まとめられたメモリ要求ストリーム内での配置のために選択された前回のメモリ要求の標識に少なくとも部分的に基いている。本発明の少なくとも１つの実施形態においては、まとめられたメモリ要求ストリーム内での配置のために選択されたメモリ要求は、バス転回方針、帯域幅割り当て方針、及びページオーナシップ方針の１つ以上に少なくとも部分的に基いて選択されている。本発明の少なくとも１つの実施形態においては、アービトレーションユニットは、投機的メモリ要求を生成するように構成されると共に、メモリ要求の第１のコヒーレントセットとコヒーレントなメモリ制御器ユニットへ投機的メモリ要求を発行するように構成される。本発明の少なくとも１つの実施形態においては、メモリ制御器ユニットは、メモリ要求の第１のコヒーレントセット、投機的メモリ要求、及び非コヒーレントメモリ要求をメモリ要求のまとめられたストリームへ階層的にまとめるように構成される結合用マルチプレクサユニットを備えている。本発明の少なくとも１つの実施形態においては、結合用マルチプレクサユニットは、第１のコヒーレントメモリ要求、投機的メモリ要求、及び第３の一連のメモリ要求からフロントエンドメモリ要求として選択するように構成される第１のマルチプレクサユニットと、フロントエンドメモリ要求の記憶されたバージョンから第３の一連のメモリ要求を選択するように構成される第２のマルチプレクサユニットとを含む。
【０００６】
本発明の少なくとも１つの実施形態においては、装置は、まとめられたメモリ要求ストリーム内での配置のためにメモリ要求を少なくともフロントエンドメモリ要求及びメモリ要求の非コヒーレントセットから選択するように構成される第３のマルチプレクサを更に含む。本発明の少なくとも１つの実施形態においては、第３のマルチプレクサユニットは、まとめられたメモリ要求ストリーム内での配置のためにメモリ要求をフロントエンドメモリ要求、メモリ要求の非コヒーレントセット、及びメモリページテーブルの出力から選択するように構成される。本発明の少なくとも１つの実施形態においては、アービトレーションユニットは、投機的メモリ要求を生成するように構成されると共に、メモリ要求の第１のコヒーレントセットとコヒーレントなメモリ制御器ユニットへ投機的メモリ要求を発行するように構成される。本発明の少なくとも１つの実施形態においては、メモリ制御器ユニットは、メモリ要求の第１のコヒーレントセット、投機的メモリ要求、及び非コヒーレントメモリ要求をメモリ要求の複数のまとめられたストリームへ階層的にまとめるように構成される複数の結合用マルチプレクサユニットを備えている。本発明の少なくとも１つの実施形態においては、複数の処理ユニットは、複数の第１のコヒーレントメモリ要求を発行するように構成される複数の汎用処理ユニットを含み、複数の処理ユニットは、第２のコヒーレントメモリ要求を発行するように構成される入力／出力処理ユニットを含む。本発明の少なくとも１つの実施形態においては、非コヒーレントメモリ要求ストリームは、まとめられたメモリ要求ストリーム内での配置のために選択された前回のメモリ要求の標識に少なくとも部分的に基いて、複数の特別な処理ユニットによって生成される。本発明の少なくとも１つの実施形態においては、まとめられたメモリ要求ストリーム内での配置のために選択された前回のメモリ要求の標識は、チップ選択標識、メモリバンク標識、コマンド標識、行標識、及びソース標識の１つ以上を含む。
【０００７】
本発明の少なくとも１つの実施形態においては、システムは、複数のコヒーレントメモリ要求ストリームを発行するように構成される複数のコヒーレントメモリ要求元と、少なくとも１つのコヒーレントメモリ要求ストリーム及び少なくとも１つの非コヒーレントメモリ要求ストリームを発行するように構成されるグラフィックス処理ユニットとを含む。グラフィックス処理ユニットは、少なくとも１つのコヒーレントメモリ要求ストリームを発行するように構成される入力／出力エンジンを含む。グラフィックス処理ユニットは、まとめられたメモリ要求ストリーム内での配置のために選択された前回のメモリ要求の標識に少なくとも部分的に基くまとめられた非コヒーレント要求ストリームを発行するように構成されるグラフィックスメモリアービタを含む。システムは、メモリ要求を階層的にアービトレートすると共に複数のコヒーレントメモリ要求ストリーム、少なくとも１つのコヒーレントメモリ要求ストリーム、及びまとめられた非コヒーレント要求ストリームからまとめられたメモリ要求ストリームを生成するように構成される統合型メモリ制御器を含む。本発明の少なくとも１つの実施形態においては、統合型メモリ制御器は、複数のコヒーレントメモリ要求ストリーム及び少なくとも１つのコヒーレントメモリ要求ストリームを少なくとも第１のコヒーレントメモリ要求ストリームへまとめるように構成されるアービトレーションユニットを含む。本発明の少なくとも１つの実施形態においては、統合型メモリ制御器は、まとめられたメモリ要求ストリーム内での配置のためにメモリ要求を第１のコヒーレントメモリ要求ストリームに基いて、まとめられた非コヒーレント要求ストリーム及び第１のシリアルメモリ要求ストリームから選択するように構成されるメモリ制御器ユニットを含む。本発明の少なくとも１つの実施形態においては、統合型メモリ制御器は、複数のコヒーレントメモリ要求元からの複数のまとめられたメモリ要求ストリーム、少なくとも１つのコヒーレントメモリ要求ストリーム、及びまとめられた非コヒーレント要求ストリームを生成してまとめられたメモリ要求ストリームを生成し、複数のまとめられたメモリ要求ストリームはそれぞれのメモリチャネルに対応している。本発明の少なくとも１つの実施形態においては、グラフィックス処理ユニットは、ディスプレイ情報を生成するように構成される複数のメモリ要求エージェントを備えており、グラフィックスメモリスケジューラは、複数のメモリ要求エージェントからのメモリ要求を、まとめられたメモリ要求ストリーム内での配置のために選択された前回のメモリ要求の標識に少なくとも部分的に基いて、まとめられた非コヒーレントメモリ要求ストリームへまとめるように構成される。本発明の少なくとも１つの実施形態においては、統合型メモリ制御器は第１の周波数を有する制御クロック信号を用いて動作し、グラフィックス処理ユニットは第１の周波数とは異なる第２の周波数を有する制御クロック信号を用いて動作する。本発明の少なくとも１つの実施形態においては、まとめられたメモリ要求ストリームは、バス転回方針、帯域幅割り当て方針、及びページオーナシップ方針の１つ以上に少なくとも部分的に基いている。
【図面の簡単な説明】
【０００８】
添付の図面を参照することによって、当業者にとって、本発明はよりよく理解されるであろうし、またその数々の目的、特徴、及び効果が明らかになるであろう。
【０００９】
【図１】図１は例示的なチップ上システム（ＳｏＣ）を示す図である。
【図２】図２は本発明の少なくとも１つの実施形態に従う例示的なＳｏＣを示す図である。
【図３】図３は本発明の少なくとも１つの実施形態に従う、図２のＳｏＣのメモリ制御器の例示的な部分を示す図である。
【００１０】
異なる図面における同一の参照符号の使用は、類似の又は同一の事項を示している。
【発明を実施するための形態】
【００１１】
概して、グラフィックス処理ユニット（例えば図１のＧＰＵ１４０）メモリ要求は、非コヒーレントメモリ要求を含み、また多くの場合にＣＰＵメモリ要求よりも高いメモリ帯域幅(higher memory bandwidth)を必要とする。典型的なＤＲＡＭ制御器１３０は、ＧＰＵによって生成されそしてメモリ要求の長いパイプラインへとインタフェースＢを介して受信される要求の高度に規則的なパターンを並べ替える。従って、ＧＰＵ１４０によって生成されるメモリ要求は、それらのページ局所性をＳｏＣ１０２内では失っているであろう。加えて、最大トランザクション帯域幅(peak transactional bandwidths)を持続するために、図１のＳｏＣ１０２はＧＰＵ１４０内でのバッファリングを必要とする。ここに開示されるＳｏＣは、要求をシステムシリアライゼーション点(system serialization point)（例えばＳｏＣ１０２のＤＲＡＭ制御器１３０のフロントエンド）よりもむしろＳｏＣ２０２の最終選択段階へ供給することによって、ＳｏＣ１０２と比較して改善されたスループットを達成する。
【００１２】
図２を参照すると、例示的なチップ上システム(system-on-a-chip)（例えばＳｏＣ２０２）は、多重中央処理ユニット（即ちＣＰＵ、例えばＣＰＵ０＿２０４，ＣＰＵ１＿２０６，ＣＰＵＮ＿２０８）を含み、多重中央処理ユニットは、インタフェースＡを介して階層的統合型メモリ制御器(hierarchical integrated memory controller)（例えば階層的統合型メモリ制御器２３０）へメモリ要求を発行する。階層的統合型メモリ制御器２３０は、システムコヒーレンスを強制し、また共有メモリ空間（例えばメモリ２１４）への導管(conduit)として機能する。ＳｏＣ２０２の少なくとも１つの実施形態においては、メモリ２１４はダブルデータレート２又はダブルデータレート３同期ダイナミックランダムアクセスメモリ（即ちＤＤＲ２／３ＤＲＡＭ）であるが、他の適切なメモリ構成が用いられてもよい。Ｉ／Ｏエンジン（例えばＩ／Ｏエンジン２１６）は、インタフェースＢを介してメモリ要求を発行すると共に統合型メモリ制御器からの応答を受信する。ＣＰＵ要求及びＩ／Ｏエンジンからの直接メモリアクセス（即ちＤＭＡ）要求の両方がＣＰＵ要求とコヒーレントである必要がある。従って、ＣＰＵ要求及びＤＭＡ要求は、インタフェースＣを介してメモリ制御器（例えばメモリ制御器２１３）へ発行される前に、階層的統合型メモリ制御器２３０内のシステムコヒーレンス点でまとめられる。加えて、階層的統合型メモリ制御器２３０は、ＣＰＵ及びＩ／Ｏエンジンから入ってくるメモリ要求を解析して未来のメモリアクセスを予測すると共に投機的メモリ読み出し要求（即ちプリフェッチ(prefetches)）をメモリ制御器へインタフェースＦを介して発行する論理を含む。インタフェースＣ及びＦを介して発行される要求はコヒーレントメモリストリームである。
【００１３】
少なくとも１つの実施形態においては、ＳｏＣ２０２は特別の処理ユニット、例えばグラフィックス処理ユニット２４０を含み、グラフィックス処理ユニット２４０は、コンピュータグラフィックス情報を効率的に操作する専用のグラフィックス描画デバイスである。ＳｏＣ２０２の少なくとも１つの実施形態においては、グラフィックス処理ユニット２４０（即ちＧＰＵ２４０）は幾つかのメモリ要求エージェント（例えばＧＣ０＿２１８，ＧＣ１＿２２０，ＧＣＮ＿２２２）を含み、それらの各々は非コヒーレントメモリ要求の別個のキュー(queue)に関連付けられている。尚、ＧＰＵ２４０は任意の適切な数のメモリ要求エージェントを含んでいてよい。グラフィックスメモリ要求スケジューラ（例えばグラフィックスメモリアービタ(graphics memory arbiter)２２４）は、種々の要求エージェントからの複数の非コヒーレントメモリ要求をこれら要求の単一の非コヒーレントストリームへと結合する。グラフィックスメモリアービタ２２４は、単一の非コヒーレントストリームからのそれらの要求をメモリ制御器２１３へインタフェースＤを介して発行する。
【００１４】
階層的統合型メモリ制御器２３０は、階層的メモリ要求ストリームアービトレーション技術を実装している。階層的統合型メモリ制御器２３０は、多重メモリ要求ソースからの多重コヒーレントメモリ要求ストリームをまとめ、そしてまとめられたコヒーレントメモリ要求ストリームを非コヒーレントメモリ要求ストリームからの要求とアービトレートする(arbitrates)。階層的統合型メモリ制御器２３０は、個々のメモリ要求ストリームに関連する特性(properties)に基づいてメモリ要求ストリームをまとめる。ＳｏＣ２０２の少なくとも１つの実施形態においては、インタフェースＣ上におけるＣＰＵからの又はＩ／Ｏエンジンからのコヒーレントメモリ要求は、最大メモリ帯域幅を必要としていない。加えて、それらのコヒーレントメモリ要求は、典型的には、予測可能なバンク読み出し／書き込みアクセスパターンを生成しない。つまり、ＣＰＵ及びＩ／Ｏの読み出し要求又は書き込み要求は、典型的には、ランダムな到着速度を有しており、また多重メモリバンクに同時にアクセスする。しかし、ＣＰＵ性能はこのインタフェース上での読み出し要求の待ち時間に対して敏感であり、何故ならば、それらの読み出し要求はＣＰＵ内で係属中の負荷へデータを戻すからである。グラフィックス処理ユニット２４０は、高帯域幅要求ソースである。このように、メモリ制御器２１３は、インタフェースＣ及びＤからの要求をまとめ、帯域幅敏感な要求元に対するメモリバス利用を促進すると共に、待ち時間敏感な要求元に対して平均待ち時間を低減する。メモリバス上の帯域幅を増大すること並びに特定の要求種類及び／又は要求ソースが経験する待ち時間を低減することを意図して、まとめられたコヒーレントメモリ要求ストリーム及びまとめられた非コヒーレントメモリ要求ストリームの各々に対して、第２の一連のスケジューリング方針が適用される。その結果、階層的統合型メモリ制御器２３０は、ＧＰＵ２４０からの非コヒーレントメモリ要求をコヒーレントメモリ要求とは異なるように処理して、例えばフリッカ(flicker)のない画面更新を保証する。
【００１５】
少なくとも１つの実施形態においては、階層的統合型メモリ制御器２３０は、コヒーレント要求ソース及び非コヒーレント要求ソースを別個の実体(entities)として取り扱うアービトレーションスキームを用いると共に、ソース内アービトレーション(intra-source arbitration)に影響を与えるようにフィードバックを用いる。例えば、まとめられたメモリ要求キュー(queue)へ発行される次のメモリ要求は、グローバルピック(global pick)の知識、即ち例えばインタフェースＨを介してＧＰＵ２４０へ通信される、まとめられたメモリ要求キューへ発行された最新のメモリ要求の標識(indicator)の知識を用いて決定される。メモリシステムバンク状態に関する最終アービトレーション段階からのフィードバックは、コヒーレント要求ソース及び非コヒーレント要求ソースの両方によって、それらのそれぞれの要求キューからのピッキング要求に影響を与えるために用いられる。メモリバンク状態情報は、グラフィックスメモリアービタ（例えばグラフィックスメモリアービタ２２４）がその内部キュー内の要求からページヒットをもたらす要求を選択する能力を高める。少なくとも１つの実施形態においては、階層的統合型メモリ制御器２３０は、ページオーナシップ規則(page ownership rules)を用いてメモリバス２１５上でのページ対立(page conflicts)の数を減少させる。少なくとも１つの実施形態においては、階層的統合型メモリ制御器２３０は、バス転回規則(bus turnaround rules)を用いて、データバスを読み出しトランザクションから書き込みトランザクションへ切り換える場合及び逆の場合にメモリバス上で被るペナルティを減少させる。少なくとも１つの実施形態においては、階層的統合型メモリ制御器２３０は、任意の特定の要求ソースへの突出したメモリ帯域幅上の限界を用いて、それにより、システム内の他のメモリ要求によって経験されるサービス時間の上限を提供する。
【００１６】
ＳｏＣ２０２の少なくとも１つの実施形態においては、メモリ制御器２１３は階層的結合用マルチプレクサ(hierarchical merge multiplexer)を含む。図３を参照すると、階層的結合用マルチプレクサ３０２は、インタフェースＣ、Ｆ及びＤから受信したストリームを複数のメモリ要求の単一の統合されたストリーム（例えばまとめられたメモリ要求ストリーム(merged memory request stream)３１６）へまとめ、これらは、メモリ制御器２１３によるメモリバス２１５を介してのメモリ２１４への発行のために、まとめられたメモリ要求レジスタ(merged memory request register)（即ちＭＲＧＱ）内で待ち行列に入れられる(queued)。尚、１つのメモリチャネルに対して唯一の階層的結合用マルチプレクサ３０２及びＭＲＧＱが示されているが、少なくとも１つの実施形態においては、ＳｏＣ２０２は多重メモリチャネルを含む（図示せず）。それに応じて、対応する階層的結合用マルチプレクサ及び対応するＭＲＧＱが各メモリチャネルに対して含まされる。メモリ要求ストリームＣ、Ｆ及びＤはメモリチャネル情報を含んでおり、そしてメモリ要求は、個々のメモリ要求に含まれているメモリチャネル情報に従って個々の階層的結合用マルチプレクサ及びＭＲＧＱへとデマルチプレクシングされる。
【００１７】
階層的結合用マルチプレクサ３０２の少なくとも１つの実施形態においては、マルチプレクサ３０８、３２０、及び３１２は、それぞれのアービトレーション論理、例えばＡＲＢＳＥＬ３０４、ＡＲＢＳＥＬ３２４、及びＡＲＢＳＥＬ３２６からの対応する選択信号をそれぞれ受信する。ＡＲＢＳＥＬ３０４は、マルチプレクサ３０８によるコヒーレント要求の選択、例えばインタフェースＣからのＣＰＵ要求又はＩ／Ｏ要求、インタフェースＦからの投機的コヒーレント要求、及び状態要素(state element)３１８からの待ち行列に入れられているコヒーレント要求における選択を制御する。
【００１８】
図２及び図３を参照すると、階層的結合用マルチプレクサ３０２の少なくとも１つの実施形態においては、ＡＲＢＳＥＬ３０４及びグラフィックスメモリアービタ２２４は、要求をスケジューリングして、メモリページテーブル３０６によって提供されるメモリバンク状態に基づいて可能な限り多くのページヒットを達成し、メモリページテーブル３０６は、まとめられたメモリ要求キュー(merged memory request queue)（ＭＲＧＱ）内での配置のために選択された前回のメモリ要求に関する情報を含んでいる。メモリページテーブル３０６は、メモリシステム２１４内の全てのチップ選択及びバンクに対して、開放されている状態又は閉ざされている状態を維持する。メモリシステム２１４の開放されているページに対して、メモリページテーブル３０６は、そのページの行が開放されている識別子を含む。マルチプレクサ３１２が要求を承諾するたびに、まとめられたメモリ要求キュー内での配置のために選択されたメモリ要求の標識に基づいて（例えば信号３３５）、対応するチップ選択及びバンク状態がメモリページテーブル３０６内で更新される。インタフェースＥを介して、グラフィックスメモリアービタ２２４は、ブロック３３４内に記憶されている、まとめられたメモリ要求キュー内での配置のために選択されたメモリ要求の標識を受信する。
【００１９】
メモリ制御器２１３の少なくとも１つの実施形態においては、以下の情報がインタフェースＥを介してグラフィックスメモリアービタ２２４へ供給される。
【００２０】
【表１】
0005616435.tif 000002
【００２１】
【表２】
0005616435.tif 000003
【００２２】
従って、マルチプレクサ３０８によって選択された要求に基いているフロントエンド要求ストリーム（即ち要求ストリーム３１１）、及びＧＰＵ要求ストリームの両方が、ページミスを克服し且つページ対立を克服してページヒットを所望する要求を発行することができる。
【００２３】
図３を再び参照すると、階層的結合用マルチプレクサ３０２の少なくとも１つの実施形態においては、ＡＲＢＳＥＬ３２４は、再試行キューＲＢＤＱ３２８のコンテンツの少なくとも一部分からのマルチプレクサ３２０による要求の選択を制御する。任意の適切な選択技術が用いられ得る（例えば、先入れ先出し(first-in-first-out)、最古準備完了(oldest ready)、帯域幅を増大し且つ待ち時間を低減するためにページ状態及び優先度に基いた技術、等）。階層的結合用マルチプレクサ３０２の少なくとも１つの実施形態においては、状態要素３１８は、マルチプレクサ３２０の出力を記憶して適切なタイミング特性を提供する。
【００２４】
階層的結合用マルチプレクサ３０２の少なくとも１つの実施形態においては、マルチプレクサ３１２へ供給される要求ストリームの各要求は、優先度値（例えば、緊急の、高い、中間の、又は低い）に関連している。ＡＲＢＳＥＬ３２６は、マルチプレクサ３１２によって受信される入力要求ストリームの一般的特性に基く追加的な優先度方針(priority policy)を実装している。例えば、ＣＰＵ要求及びＩ／Ｏ要求は、ＧＰＵ要求に比べて待ち時間に対するより大きな感受性及び限定された帯域幅要求を有しており、ＧＰＵ要求は典型的にはより大きな帯域幅を必要とすると共に待ち時間に対してより低い感受性を有している。従って、少なくとも１つの実施形態においては、ＡＲＢＳＥＬ３２６は、要求ストリーム３１１内の要求を要求ストリーム３２９内の同等の優先度のＧＰＵ要求よりも優先させる。少なくとも１つの実施形態においては、ＡＲＢＳＥＬ３２６は、緊急の要求ストリーム３２９、高い要求ストリーム３１１、高い要求ストリーム３２９、中間の要求ストリーム３１１、中間の要求ストリーム３２９、低い要求ストリーム３１１、及び低い要求ストリーム３２９の順序で優先度を強制する。
【００２５】
階層的結合用マルチプレクサ３０２の少なくとも１つの実施形態においては、制御ブロック３１０及び３２７は、それぞれマルチプレクサ３０８及びキュー３３２からの要求の適格性をページオーナシップ方針、読み出し／書き込み転回方針、及び帯域幅制御方針に基いて決定する。尚、１つ以上の他の方針が制御ブロック３１０及び３２７によって実装されていてもよい。制御ブロック３１０及び３２７は、インタフェースＣ、Ｆ及びＤから受信されるメモリ要求のアービトレーションに対する適格性を、それらのメモリ要求に対応するメモリページテーブル３０６から受信するデータに従って決定する。マルチプレクサ３０８によって選択される要求は、アービトレーションに対する適格性がある場合には、要求ストリーム３１１内のマルチプレクサ３１２へ転送される。階層的結合用マルチプレクサ３０２の少なくとも１つの実施形態においては、マルチプレクサ３０８によって選択される要求がアービトレーションに対して不適格である場合には、その要求は要求ストリーム３１１ライン上でマルチプレクサ３１２へは供給されずに、再試行キューＲＢＤＱ３２８内に記憶される。キュー３３２からの要求は、アービトレーションに対する適格性がある場合には、要求ストリーム３２９としてマルチプレクサ３１２へ転送される。キュー３３２からの要求がアービトレーションに対して不適格である場合には、その要求は要求ストリーム３２９ライン上でマルチプレクサ３１２へは供給されずに、キュー３３２内に残る。
【００２６】
ページオーナシップ規則
【００２７】
システム内の異なる要求ソースがチップ選択及びメモリチャネル上のバンクペアにアクセスすることを試みるが、異なる行に対してそうする場合、ページ対立が生じる。階層的結合用マルチプレクサ３０２の少なくとも１つの実施形態においては、制御ブロック３２７は、メモリバスへ発行されるページ対立の数を減少させようと試みる。例えば、制御ブロック３２７は、ＣＰＵがチップ選択及びバンクペア内のページ０を開けると共にそこから読み出した後にＧＰＵに同じチップ選択及びバンクペアに対してページ０を閉じることとページ１を開けると共にそこから読み出すこととをさせるのを可能にしそして次いでＣＰＵがページ１を閉じると共に再びページ０から読み出すことを可能にする要求シーケンスを阻む。当該シーケンスは、メモリバス上で繰り返されたページ対立をスケジューリングしてしまう。その代わりに、制御ブロック３２７は、メモリチャネル内の各チップ選択及びバンクペアに対して最後にページを開けたソースを追跡し、そしてこの情報をメモリページテーブル３０６内に記憶する。バンクのオーナではない要求ソース（例えばＣＰＵがメモリページテーブル３０６内のページを開けた最後のソースであった）が所与のチップ選択及びバンクペアに対して新たなページを開けることを試みる場合、制御ブロック３２７は、オーナシップ変更がいつ許容されるのかを決定するために用いられる一連の規則を適用する。そのような追加的方針を適用することによって、ソースは、別のソースからの未解決のページ対立の存在下でより長い時間の間ページのオーナシップを有効にする(assert)ことができ、それにより、新たなソースに切り換えて転送進行をさせるのに先立ち古いソースからのより多くのページヒットを発行することができる。
【００２８】
少なくとも１つの実施形態においては、制御ブロック３２７は、ソース優先度及び現在ページオーナに基いているページオーナシップ規則を実装している。例えば、ＣＰＵ又はＩ／Ｏがメモリページのオーナである場合、当該ページを一定時間の間ＣＰＵ又はＩ／Ｏに拘束するために、プログラム可能タイマが用いられる。その一定時間を決定するために用いられるサイクルカウントは、対立しているＧＰＵ要求の優先度に従って変化する。例えば、３セットのカウンタが用いられてよく、例示すれば、高い、中間の、及び低い優先度ＧＰＵ要求の各々のために、各要求種類に対して増大されたサイクルカウント値を伴うカウンタが１つずつ用いられる。緊急のメモリ要求は、ＣＰＵに直ちにページのオーナシップを放棄させる。衝突しているソースの公平性を確保するために、ページオーナが最初にページを開ける時にカウンタが開始され、そして開いた行へのページヒットを当該最初のページオーナが持ち続けている場合に、そのカウンタは延長されない。制御ブロック３２７の少なくとも１つの実施形態においては、対立している（例えばＧＰＵ）要求が、別の要求元（例えばＣＰＵ）によって異なる行に対して既に開けられているページを開けることができるまでに待つ必要のある時間ウインドウは、種々の優先度レベル（例えば、低い、中間の、高い、及び緊急の優先度レベル）に対してプログラム可能である。
【００２９】
階層的結合用マルチプレクサ３０２の少なくとも１つの実施形態においては、ＧＰＵがメモリページのオーナである場合には、オーナシップは種々のイベントの１つが発生する場合に解除される。例えば、オーナシップは、ＧＰＵ２４０からの所与のサイズ及び優先度のプログラム可能な数の要求がメモリバス上で完了した場合に解除される。要求の当該数は、対立している要求（例えば要求キュー３１１内の要求）の優先度（例えば、低い、中間の、又は高い）に応じて変化し得る。オーナシップは、ページへの要求のバースト(burst)が完了したことを表示しているバースト表示の終点をＧＰＵが有効にする(asserts)場合に解除されてよい。オーナシップはまた、２つの連続する要求上で１つのチップ選択、バンク、及び行から異なるチップ選択、バンク、及び行へＧＰＵが切り換える場合に解除されてもよく、これは必ずしも連続するクロックサイクル内でなくてよい。加えて、オーナシップは、ＧＰＵがページを開いてからのサイクル数を追跡するプログラム可能カウンタが満了した場合に解除される。少なくとも１つの実施形態においては、階層的結合用マルチプレクサ３０２は、ブロックされた要求の優先度に応じて一連のカウンタを含む。尚、ここに説明されるページオーナシップ規則は例示的なものであり、そして階層的結合用マルチプレクサの他の実施形態は他の適切なページオーナシップ規則を用いてよい。
【００３０】
バス転回管理(Bus Turnaround Management)
【００３１】
バス転回は、第１の種類のトランザクション（例えば読み出し又は書き込み）の後に第２の種類のトランザクション（例えばそれぞれ書き込み又は読み出し）が続く場合に生じる。バス転回は、タイミングパラメータ（例えばＤＲＡＭのためのＤＤＲ＿ＤＩＭＭタイミングパラメータ）に起因して、メモリデータバス上に多重バブル（即ち多重アイドルサイクルのペナルティ）を生成し得る。尚、異なるメモリ速度は異なるバス転回時間を有していてよい。階層的結合用マルチプレクサ３０２の少なくとも１つの実施形態においては、ＡＲＢＳＥＬ３２６は、メモリバス上での読み出しから書き込みに至るバス転回及び書き込みから読み出しに至るバス転回を減少させる方法でトラフィックをまとめるようにマルチプレクサ３１２を設定する。少なくとも１つの実施形態においては、ＡＲＢＳＥＬ３２６は、書き込み発行とは別に読み出し発行を集めてバス転回の数を減少させる。一連の時間ウインドウは、要求元、要求種類、又は優先度クラスに従うプログラム可能設定に基いている。制御ブロック３２７は、メモリバスの電流方向の経過を追い、そして要求元がバスの方向を変更することを試みる場合には、要求元は、要求元が適格な要求元とみなされ得るまでに特定の時間ウインドウが満了することを待つ必要がある。少なくとも１つの実施形態においては、制御ブロック３２７は各トラフィッククラスに対応する設定レジスタ(configuration registers)を含み、設定レジスタは、時間ウインドウを決定すると共に、特定のトラフィッククラスがバスを転回することができるまでに待つ必要がある場合を規定する。例示的な設定レジスタは、特定のトラフィッククラスがバスを転回することができるまでに発生する必要のある制御クロック数又はバイト数の標識を含む。尚、ここに説明されるバス転回規則は例示的であり、階層的結合用マルチプレクサの他の実施形態は他の適切なバス転回規則を用いていてよい。
【００３２】
要求ソース帯域幅制御
【００３３】
特定のソースが長時間にわたってメモリ帯域幅を独占することを防止するために、ＳｏＣ２０２は、ＭＲＧＱ内の未解決のコマンドの数を所与のどのソースからであるかにかかわらず限定する。このことは、要求ソース毎基準(per request source basis)に基いてカウンタを維持することによって達成される。ＳｏＣ２０２の少なくとも１つの実施形態においては、インタフェースＣからの要求は、例えばバイトの第１の数に限定される。一方、インタフェースＤからの要求は、最大でバイトの第２の数まで及ぶ。マルチプレクサ３１２が要求ソースにバスを供与するたびに、対応するカウンタは、当該ソースからのメモリバス上で未解決のバイトの総数で更新される。プログラムされた閾値を当該ソースに対するカウンタが超えた場合において要求元が要求を提示するときには、要求元は、マルチプレクサ３１２アービトレーションに対して適格であることを抑制される(throttled back)。この方針は、任意の他の要求ソースから見た待ち時間に対する上限を強制するであろう。例示的なＳｏＣ２０２においては、要求ソース帯域幅制御は、ディスプレイ要求が有限時間内にサービスされることを確実にする。ＳｏＣ２０２の少なくとも１つの実施形態においては、２セットの設定レジスタが、ＭＲＧＱ内で未解決の最大バイト読み出し要求又は書き込み要求の数を制御する。ＳｏＣ２０２の少なくとも１つの実施形態においては、各ソースからアクティブにされる別個のスロットル設定レジスタが読み出し及び書き込みに対して含まされていてよい。
【００３４】
上で論じられたように、ＧＰＵ要求は、一般に非コヒーレント要求であると考えられており、そして多くの場合に高いメモリ帯域幅(higher memory bandwidth)を必要とする。ＧＰＵは、最良の利用可能な要求を選択し、そしてそれを階層的結合用マルチプレクサ３０２にインタフェースＤを介して供給する。階層的結合用マルチプレクサ３０２は、ＧＰＵからの要求をキュー３３２内に記憶する。尚、要求ストリーム３１１はグラフィックスメモリアービタ選択からは独立して選択され、また選択されたグラフィックスメモリアービタ要求はマルチプレクサ３１２への直接アクセスを有しており、これは最終的な選択段階である。グラフィックスメモリアービタ要求を、他のメモリ要求選択技術によって用いられるシステムシリアライゼーション点（例えば図１のＳｏＣ１０２のＤＲＡＭ制御器１３０の入力）でよりはむしろ、ＳｏＣ２０２におけるように最終選択段階へ供給することによって、高帯域幅ＧＰＵクライアントは、ＳｏＣ１０２のスループットを超えて改善されたスループットを達成する。ＤＲＡＭ制御器１３０はＧＰＵによって生成される要求の高度に規則的なパターンを長いパイプラインへと再順序付けるので、チップ上システム２０２は、ＳｏＣ１０２を超えて改善されたスループットを有する。このように、ＳｏＣ１０２においては、ＧＰＵ１４０によって生成される要求は、それらのページ局部性を喪失する。加えて、ＳｏＣ１０２は、統合型メモリ制御器のトラフィックアービトレーションブロック内に追加的な資源を必要とする。最大ＤＲＡＭデータ帯域幅を持続するために、図１のＳｏＣ１０２は、図２及び３のＳｏＣ２０２に比べてＧＰＵ内で追加的なバッファリングを必要とする。
【００３５】
図２及び３を参照すると、ＧＰＵ要求ストリームはインタフェースＣをバイパスするし、またＧＰＵ要求は、統一されたキューからのＣＰＵ要求若しくはＩ／Ｏ要求と共には記憶されないし又はこれらに抗しては選択されないので、要求ストリーム３２９と要求ストリーム３１１の間でＳｏＣ２０２内で同一アドレスの競合が導入され、即ち書き込み後読み出しハザード(read-after-write hazards)が導入される。インタフェースＣ及びＤ上の要求の間でのそれらの書き込み後読み出しハザードは、グラフィックスメモリアービタ２２４によって計上され、グラフィックスメモリアービタ２２４は、トラフィックアービトレーションブロック２１０内に記憶されているインフライトトランザクションキュー(in-flight transaction queue)のＣＰＵ書き込みの後のＧＰＵ読み出しに対するチェックを通してインタフェースＣ上で既に送り出されているアドレスとのアドレス衝突がないことを確実にする。ＳｏＣ２０２の少なくとも１つの実施形態においては、チェックは、インタフェースＧによって提供される標識を用い、そして任意の適切なハードウエア技術又はソフトウエア技術を用いて実行される。概して、アドレス衝突はシステム動作の間にはまれであるから、図３の階層的結合用マルチプレクサ３０２は、図２のＳｏＣ２０２のインタフェースＣ上でのＣＰＵ読み出しによって見える劣った待ち時間に妥協することなしに、ＧＰＵ要求に対して高い帯域幅を結果としてもたらす。
【００３６】
図２及び３のＳｏＣは統一されたキュー構造(unified queuing structure)ではなく、即ちＣＰＵ、Ｉ／Ｏ、及びＧＰＵからの要求は単一キューから選択されるものではない。従って、図２及び３で説明される技術を実装しているＳｏＣは、他の統合型メモリ制御器論理から分離されているトップレベルモジュール、例えばＧＰＵ及び関連するサブブロックを保つために、物理的に区分化されていてよい。加えて、ＳｏＣ２０２内の種々のトップレベルモジュールは、異なる速度でクロックされてよく、各ＧＰＵクライアントとのインタフェースへの異なるキュー構造を実装していてよく、そして制御及びデータパスを、統合型メモリ制御器のフロントエンドにおけるトラフィックアービトレーション及びコヒーレンスパイプラインからは独立にしていてよい。例えば、階層的統合型メモリ制御器２３０は、第１の周波数を有する制御クロック信号を用いて動作し、またＧＰＵ２４０は、第１の周波数とは異なる第２の周波数を有する制御クロック信号を用いて動作する。また、グラフィックスメモリアービタ２２４は、独立に検証されてよく、また独立に設計されてよい（例えば論理的に及び物理的に独立して設計されてよい）。トップレベルモジュールに対する明確な境界は、ＳｏＣの全トップレベルモジュールのより速やかな統合化を結果としてもたらす。
【００３７】
尚、ここに説明される幾つかの技術は、プログラムされた命令に応答して動作するハードウエアを包含していてよい。代替的には、ここに説明される技術は、動作を実行する状態マシンのような配線論理(hard-wired logic)を含む特定のハードウエアコンポーネントによって、又はプログラムされたデータ処理コンポーネント及びハードウエアコンポーネントの任意の組み合わせによって実行されてよい。従って、本発明の実施形態は、ここに説明されるように、ソフトウエア、データ処理ハードウエア、データ処理システムが実装された方法、及び種々の処理動作を含み得る。
【００３８】
ここに記載される本発明の説明は例示的なものであり、以下の特許請求の範囲に記載される本発明の範囲を限定することが意図されるものではない。例えば、グラフィックス処理ユニットがＳｏＣ内に含まれている実施形態において本発明が説明されてきたが、ここでの教示が、コヒーレントメモリ要求を発行する１つ以上の処理ユニットと共有されるメモリ構造へ非コヒーレントメモリ要求を発行する他の処理ユニット（例えばオーディオコーデック(audio codecs)又は他の適切な処理ユニット）と共に利用可能であることを当業者であれば理解するであろう。ここに開示される実施形態の変形及び修正が、以下の特許請求の範囲に記載される本発明の範囲及び精神から逸脱することなしに、ここに記載される説明に基いてなされるであろう。
【図１】
0005616435.tif 000004
【図２】
0005616435.tif 000005
【図３】
0005616435.tif 000006