(57)【特許請求の範囲】
【請求項１】
複数のコマンドを処理するシステムであり、
視覚的コンテンツを提示するディスプレイと、
前記視覚的コンテンツに関連するポストシンクロナイゼーションオペレーションセットを発行するためのドライバを実行するホストプロセッサと、
グラフィックメモリと、
グラフィックプロセッサとを備え、
前記グラフィックプロセッサは、
前記グラフィックメモリに前記ポストシンクロナイゼーションオペレーションセットを格納するメモリモジュールと、
グラフィックパイプラインへフラッシュマーカを送信するパイプラインモジュールと、
前記フラッシュマーカが前記グラフィックパイプラインを抜け出ることに応答して前記ポストシンクロナイゼーションオペレーションセットを処理する実行モジュールと
を有し、
前記メモリモジュールは、前記ポストシンクロナイゼーションオペレーションセットが前記グラフィックメモリに格納された後に前記グラフィックメモリにトークンを格納し、前記実行モジュールは、前記トークンが前記グラフィックメモリにおいて遭遇された場合に前記ポストシンクロナイゼーションオペレーションセットの処理を中断する、
システム。
【請求項２】
複数のコマンドを処理するシステムであり、
視覚的コンテンツを提示するディスプレイと、
前記視覚的コンテンツに関連するポストシンクロナイゼーションオペレーションセットを発行するためのドライバを実行するホストプロセッサと、
グラフィックメモリと、
グラフィックプロセッサとを備え、
前記グラフィックプロセッサは、
前記グラフィックメモリに前記ポストシンクロナイゼーションオペレーションセットを格納するメモリモジュールと、
グラフィックパイプラインへフラッシュマーカを送信するパイプラインモジュールと、
前記フラッシュマーカが前記グラフィックパイプラインを抜け出ることに応答して前記ポストシンクロナイゼーションオペレーションセットを処理する実行モジュールと、
パイプ制御コマンドまたはアトミックコマンドのうち一方から前記ポストシンクロナイゼーションオペレーションセットを取得するグラフィックハードウェアフロントエンドと
を有する、システム。
【請求項３】
前記アトミックコマンドは、インラインデータとして前記ポストシンクロナイゼーションオペレーションセットを含むか、若しくは１または複数の事前にロードされたインプリシットレジスタから間接的なデータとして前記ポストシンクロナイゼーションオペレーションセットを受け付ける、請求項２に記載のシステム。
【請求項４】
前記アトミックコマンドはリターンビットを含み、前記リターンビットが設定されている場合、前記グラフィックハードウェアフロントエンドは、前記アトミックコマンドの発信者へ読み取られたデータを戻すか、または読み取られたデータをインプリシットレジスタへ格納する、請求項２に記載のシステム。
【請求項５】
前記グラフィックプロセッサはさらに、特別なビット表示を有する１または複数のコマンドを前記ポストシンクロナイゼーションオペレーションセットであるものとして見なすコマンドストリーマモジュールを有する、請求項１または２に記載のシステム。
【請求項６】
前記ポストシンクロナイゼーションオペレーションセットは、１または複数のアトミックオペレーションを含む、請求項１から５のいずれか一項に記載のシステム。
【請求項７】
前記１または複数のアトミックオペレーションは、読み取りオペレーション、修正オペレーション、および書き込みオペレーションを含む、請求項６に記載のシステム。
【請求項８】
前記修正オペレーションは、Ａｄｄ、Ｓｕｂｔｒａｃｔ、Ｉｎｃｒｅｍｅｎｔ、Ｄｅｃｒｅｍｅｎｔ、Ｍａｘ、Ｍｉｎ、ＡＮＤ、ＯＲ、ＸＯＲ、またはＣｏｍｐａｒｅオペレーションのうち１または複数を含む、請求項７に記載のシステム。
【請求項９】
グラフィックメモリにポストシンクロナイゼーションオペレーションセットを格納する段階と、
グラフィックパイプラインへフラッシュマーカを送信する段階と、
前記フラッシュマーカが前記グラフィックパイプラインを抜け出ることに応答して前記ポストシンクロナイゼーションオペレーションセットを処理する段階と、
前記ポストシンクロナイゼーションオペレーションセットが前記グラフィックメモリに格納された後に前記グラフィックメモリにトークンを格納する段階と、
前記トークンが前記グラフィックメモリにおいて遭遇された場合に前記ポストシンクロナイゼーションオペレーションセットの処理を中断する段階と
を備える、複数のコマンドを処理する方法。
【請求項１０】
グラフィックメモリにポストシンクロナイゼーションオペレーションセットを格納する段階と、
グラフィックパイプラインへフラッシュマーカを送信する段階と、
前記フラッシュマーカが前記グラフィックパイプラインを抜け出ることに応答して前記ポストシンクロナイゼーションオペレーションセットを処理する段階と、
パイプ制御コマンドまたはアトミックコマンドのうち一方から前記ポストシンクロナイゼーションオペレーションセットを取得する段階と
を備える、複数のコマンドを処理する方法。
【請求項１１】
グラフィックメモリにポストシンクロナイゼーションオペレーションセットを格納する手順と、
グラフィックパイプラインへフラッシュマーカを送信する手順と、
前記フラッシュマーカが前記グラフィックパイプラインを抜け出ることに応答して前記ポストシンクロナイゼーションオペレーションセットを処理する手順と、
前記ポストシンクロナイゼーションオペレーションセットが前記グラフィックメモリに格納された後に前記グラフィックメモリにトークンを格納する手順と、
前記トークンが前記グラフィックメモリにおいて遭遇された場合に前記ポストシンクロナイゼーションオペレーションセットの処理を中断する手順と
をコンピューティングデバイスに実行させるプログラム。
【請求項１２】
グラフィックメモリにポストシンクロナイゼーションオペレーションセットを格納する手順と、
グラフィックパイプラインへフラッシュマーカを送信する手順と、
前記フラッシュマーカが前記グラフィックパイプラインを抜け出ることに応答して前記ポストシンクロナイゼーションオペレーションセットを処理する手順と、
パイプ制御コマンドまたはアトミックコマンドのうち一方から前記ポストシンクロナイゼーションオペレーションセットを取得する手順と
をコンピューティングデバイスに実行させるプログラム。
【請求項１３】
グラフィックメモリにポストシンクロナイゼーションオペレーションセットを格納するメモリモジュールと、
グラフィックパイプラインへフラッシュマーカを送信するパイプラインモジュールと、
前記フラッシュマーカが前記グラフィックパイプラインを抜け出ることに応答して前記ポストシンクロナイゼーションオペレーションセットを処理する実行モジュールと
を備え、
前記メモリモジュールは、前記ポストシンクロナイゼーションオペレーションセットが前記グラフィックメモリに格納された後に前記グラフィックメモリにトークンを格納し、前記実行モジュールは、前記トークンが前記グラフィックメモリにおいて遭遇された場合に前記ポストシンクロナイゼーションオペレーションセットの処理を中断する、
複数のコマンドを処理する装置。
【請求項１４】
グラフィックメモリにポストシンクロナイゼーションオペレーションセットを格納するメモリモジュールと、
グラフィックパイプラインへフラッシュマーカを送信するパイプラインモジュールと、
前記フラッシュマーカが前記グラフィックパイプラインを抜け出ることに応答して前記ポストシンクロナイゼーションオペレーションセットを処理する実行モジュールと、
パイプ制御コマンドまたはアトミックコマンドのうち一方から前記ポストシンクロナイゼーションオペレーションセットを取得するグラフィックハードウェアフロントエンドと
を備える、複数のコマンドを処理する装置。
【請求項１５】
前記アトミックコマンドは、インラインデータとして前記ポストシンクロナイゼーションオペレーションセットを含むか、若しくは１または複数の事前にロードされたインプリシットレジスタから間接的なデータとして前記ポストシンクロナイゼーションオペレーションセットを受け付ける、請求項１４に記載の装置。
【請求項１６】
前記アトミックコマンドはリターンビットを含み、前記リターンビットが設定されている場合、前記グラフィックハードウェアフロントエンドは、前記アトミックコマンドの発信者へ読み取られたデータを戻すか、または読み取られたデータをインプリシットレジスタへ格納する、請求項１４に記載の装置。
【請求項１７】
特別なビット表示を有する１または複数のコマンドを前記ポストシンクロナイゼーションオペレーションセットであるものとして見なすコマンドストリーマモジュールをさらに備える、請求項１３または１４に記載の装置。
【請求項１８】
前記ポストシンクロナイゼーションオペレーションセットは、１または複数のアトミックオペレーションを含む、請求項１３から１７のいずれか一項に記載の装置。
【請求項１９】
前記１または複数のアトミックオペレーションは、読み取りオペレーション、修正オペレーション、および書き込みオペレーションを含む、請求項１８に記載の装置。
【請求項２０】
前記修正オペレーションは、Ａｄｄ、Ｓｕｂｔｒａｃｔ、Ｉｎｃｒｅｍｅｎｔ、Ｄｅｃｒｅｍｅｎｔ、Ｍａｘ、Ｍｉｎ、ＡＮＤ、ＯＲ、ＸＯＲ、またはＣｏｍｐａｒｅオペレーションのうち１または複数を含む、請求項１９に記載の装置。
【請求項２１】
請求項９または１０に記載の方法を実行するための手段を備える、コマンドを処理する装置。
【発明の詳細な説明】
【背景技術】
【０００１】
従来のグラフィック処理アーキテクチャにおいて、中央処理装置（ＣＰＵ）で実行されているソフトウェア（ＳＷ）ドライバは、高い性能による実行のためにグラフィック処理ユニットへ（ＧＰＵ）ワークロードを提出し得る。ＧＰＵによるワークロード実行の間、特定の実行ポイントに到達した場合、またはそれが完了した場合に「同期」状況が生じ得る。ここでそのような実行ポイントは「同期ポイント」として呼ばれ得る。ソフトウェアドライバがポストシンクロナイゼーションオペレーションを用いてＧＰＵの進捗度をトラッキングする能力は、単純なメモリ書き込みに限定され得る。その結果、最適以下の性能および／または電力消費が経験されることになる。
【図面の簡単な説明】
【０００２】
実施形態の様々な利点は、当業者が以下の明細書および添付の請求項を読むことにより、並びに以下の図面を参照することにより明らかになろう。
【図１】実施形態に係る、グラフィックアーキテクチャのコマンドを処理するアプローチの例のブロック図である。
【図２】実施形態に係る、ポストシンクロナイゼーションオペレーションを伴うコマンドシーケンスの例のブロック図である。
【図３】実施形態に係る、グラフィック処理アーキテクチャの例のブロック図である。
【図４】実施形態に係る、ポストシンクロナイゼーションオペレーションを処理する方法の例のフローチャートである。
【図５Ａ】実施形態に係る、前処理コマンドの例のフローチャートである。
【図５Ｂ】実施形態に係る、後処理コマンドの例のフローチャートである。
【図５Ｃ】実施形態に係る、アトミック処理コマンドの例のフローチャートである。
【図６】実施形態に係る、ロジックアーキテクチャの例のブロック図である。
【図７】実施形態に係る、システムの例のブロック図である。
【図８】実施形態に係る、ナビゲーションコントローラを有するシステムの例のブロック図である。
【図９】実施形態に係る、小さなフォームファクタを有するシステムの例のブロック図である。
【発明を実施するための形態】
【０００３】
図１は、グラフィックアーキテクチャにおけるコマンドを処理するアプローチを示す。図示される例において、１または複数のコマンド１０により表されるワークロードは、（例えば、図示されていないホストプロセッサ／ＣＰＵに対して）高度に並列化され効率のよいやり方でコマンド１０を実行するよう構成され得るグラフィックパイプライン１２へ送信される。コマンド１０は、ホストプロセッサ、グラフィックパイプラインを含むグラフィックプロセッサ、その他、またはこれらの何らかの組み合わせで実行されているソフトウェアドライバにより発行され得る。パイプ制御コマンド１４も（例えばドライバにより）発行され得る。ここで、図示されているパイプ制御コマンド１４は、ポストシンクロナイゼーションオペレーション１６のセットを含むインライン部分を含む。このインラインの同期オペレーション１６は、コマンド１０と同様にホストによりプログラミングされ得る何らかのコマンドセットであり得る。加えて、パイプ制御コマンド１４は概して、コマンド１０のワークロード実行の間に遭遇される同期ポイントに関連し得る。同じくより詳細に説明されるようにアトミックコマンドおよび／またはセマフォコマンド（図示せず）も、ポストシンクロナイゼーションオペレーション１６のセットを特定するために用いられ得る。
【０００４】
ポストシンクロナイゼーションオペレーション１６のセットを特定するためにアトミックコマンドが用いられる場合、アトミックコマンドは、インラインデータとしてポストシンクロナイゼーションオペレーション１６のセットを含み得るか、若しくは１または複数の事前にロードされたインプリシットレジスタから間接的なデータとしてポストシンクロナイゼーションオペレーションセットを受け付け得る。インプリシットレジスタは、メモリ、または他の何らかのレジスタからインラインデータを含む明示的なコマンドを通じてプリロードされ得る。さらに、アトミックコマンドは、読み取られたデータが、（例えば、コマンドにおけるリターンビットに基づき）アトミックコマンドの発信者へ戻される、および／またはさらに用いられるようにインプリシットレジスタに格納されることをサポートし得る。一例において、グラフィックハードウェアフロントエンドは、リターンビットが設定されている場合、読み取られたデータをアトミックコマンドの発信者へ戻すか、または、さらに用いられるように、読み取られたデータをインプリシットレジスタに格納し得る。
【０００５】
一般的に、いずれのコマンドも、即座に実行するのではなく当該コマンドをポストシンクロナイゼーションオペレーションとする、当該コマンドの特別なビットを介して渡される情報を有するポストシンクロナイゼーションオペレーションとされ得る。一例において、何らかのコマンドセットが、それらをポストシンクロナイゼーションオペレーションとして扱うためにインラインデータとしてパイプ制御コマンド１４にパックされ得る。より詳細に説明されるように、そのようなアプローチによって、グラフィックパイプライン１２を下ってマーカ２２が送信されることになり得る。ここで、「フラッシュ完了」状態の検出により、これらのコマンドが実行されることになり得る。他の例において、（何らかのコマンドでもあり得る）コマンドがポストシンクロナイゼーションオペレーションとして示されるべきであることを示す特別なビットが当該コマンドに設定され得る。したがって、このビットが設定されている場合、コマンドによって、グラフィックパイプライン１２を下ってマーカが送信され得、対応するマーカのフラッシュが完了したことに応じてポストシンクロナイゼーションオペレーションとして実行されるためにコマンドが記憶装置に入れられることになる。
【０００６】
ポストシンクロナイゼーションオペレーション１６のセットは、グラフィックパイプライン１２を通るコマンド１０の進捗度に関して、リソース、ブックキーピング、その他をトラッキングするのに有用であり得る。より詳細に説明されるように、ポストシンクロナイゼーションオペレーション１６のセットは、メモリへの単純な書き込みよりもより複雑な機能を実行するアトミックオペレーション（「アトミック」。例えば、読み取り、修正、書き込み）を含み得る。例えば、Ａｄｄ、Ｓｕｂｔｒａｃｔ、Ｉｎｃｒｅｍｅｎｔ、Ｄｅｃｒｅｍｅｎｔ、Ｍａｘ、Ｍｉｎ、ＡＮＤ、ＯＲ、ＸＯＲ、Ｃｏｍｐａｒｅ、その他などのロジック的および／または演算的な修正オペレーションが全て例えば、アトミックオペレーションに組み込まれ得る。したがって、図示されるアプローチは、グラフィック処理アーキテクチャにおけるポストシンクロナイゼーションオペレーションとしてアトミックオペレーションをサポートする。
【０００７】
より詳細には、ポストシンクロナイゼーションオペレーション１６のセットは、例えば、グラフィックプロセッサ上のローカルキャッシュ、レジスタ、および／またはファーストインファーストアウト（ＦＩＦＯ）バッファ、専用のグラフィックダブルデータレート（ＤＤＲ）メモリモジュール、その他などのグラフィックメモリ２０に格納され得る。加えて、分離トークン１８が、パイプ制御コマンド１４などの連続するパイプ制御コマンドの間のセパレータとしての役割を果たすべくグラフィックメモリ２０に格納され得る。また図示されるアプローチは、フラッシュマーカ２２をグラフィックパイプラインへ送信する段階を提供し得る。フラッシュマーカ２２がグラフィックパイプライン１２を抜け出たとの決定に応じて、ポストシンクロナイゼーション実行モジュール２４は、パイプライン処理方式でグラフィックメモリ２０からのポストシンクロナイゼーションオペレーション１６のセットを処理し得る。ポストシンクロナイゼーション実行モジュール２４は、ポストシンクロナイゼーションオペレーション１６を処理するための専用であるか、または、ポストシンクロナイゼーションオペレーション１６とコマンド１０との間で共有され得る。共有される場合の例において、実行モジュール２４は、グラフィックパイプライン１２のハードウェアフロントエンドに組み込まれ得る。ここで実行モジュール２４は、２つのコマンドストリーム間で多重化を行い得る。
【０００８】
図２および３はそれぞれ、ポストシンクロナイゼーションオペレーションを伴うコマンドシーケンス２６およびグラフィック処理アーキテクチャ２８を示す。図示される例において、第１パイプ制御コマンド（「ＰＣ１」が解析され、第１ポストシンクロナイゼーションオペレーションセット（「ＰＳ１」）をグラフィックメモリ２０（例えば、「ポストシンクオペレーション記憶装置」）へ格納することにより、第１ポストシンクロナイゼーションオペレーションセットＰＳ１は保留される。既に言及したように、ポストシンクロナイゼーションオペレーションセットは、データを修正することが出来る１または複数のアトミックオペレーション（例えば、Ａｄｄ、Ｓｕｂｔｒａｃｔ、Ｉｎｃｒｅｍｅｎｔ、Ｄｅｃｒｅｍｅｎｔ、Ｍａｘ、Ｍｉｎ、ＡＮＤ、ＯＲ、ＸＯＲ、Ｃｏｍｐａｒｅ、およびその他）を表し得る。ポストシンクロナイゼーションオペレーションセットは、他の非アトミックオペレーション（例えば、グラフィックハードウェアによりサポートされるコマンドの何らかの組み合わせ）も含み得る。簡単に説明すると、第１ポストシンクロナイゼーションオペレーションセットＰＳ１は、コマンドの何らかの組み合わせ（例えば、図示されていないＣ９、Ｃ１０、Ｃ１１...）であり得る。一例において、ポストシンクロナイゼーションを示す特別なビットを有する何らかのコマンドは、ポストシンクロナイゼーションコマンドとして対象のコマンドを含むようにパイプ制御コマンドがプログラミングされているかのように同じようなやり方で挙動し得る。
【０００９】
加えて、第１マーカ（「Ｍ１」）が、グラフィックパイプライン１２（１２ａ〜１２ｆ）により生成および前処理され得る。グラフィックパイプライン１２は、例えば、グラフィックハードウェア（ＨＷ）フロントエンド（ＦＥ）１２ａ、入力アセンブラ１２ｂ、１または複数の事前ラスター化シェーダ１２ｃ、ラスタライザー１２ｄ、ピクセルシェーダ１２ｅ、出力マージャステージ１２ｆ、およびその他を含み得る。アーキテクチャ２８は、分離トークン１８（１８ａ〜１８ｄ）が概して、対応するポストシンクロナイゼーションオペレーションセットの後にグラフィックメモリ２０に格納され得ることを示す。例えばポストシンクロナイゼーション（「ＥＯＰＳ」）分離トークン１８ａの最後は、第１ポストシンクロナイゼーションオペレーションセットＰＳ１の最後をシグナリングするために、第１ポストシンクロナイゼーションオペレーションセットＰＳ１がグラフィックメモリ２０に格納された後にグラフィックメモリ２０に格納され得る。
【００１０】
図示されるコマンドシーケンス２６は、第１コマンド（「Ｃ１」）も、グラフィックパイプライン１２により解析および処理され得、第２コマンド（「Ｃ２」）がその後に続くことを示し得る。その後第２パイプ制御コマンド（「ＰＣ２」）が解析され得る。ここで第２ポストシンクロナイゼーションオペレーションセット（「ＰＳ２」）を他のＥＯＰＳ分離トークン１８ｂと併せてグラフィックメモリ２０に格納することにより、第２ポストシンクロナイゼーションオペレーションセットＰＳ２が保留され得る。ここでも、第２ポストシンクロナイゼーションオペレーションセットＰＳ２は、コマンド（例えば、図示されていないＣ１２）の何らかの組み合わせであり得る。加えて、第２マーカ（「Ｍ２」がグラフィックパイプライン１２により生成および前処理され得る。図示される例において、第３コマンド（「Ｃ３」）がグラフィックパイプライン１２により解析および処理され、第１マーカＭ１がグラフィックパイプライン１２の出力マージャステージ１２ｆを抜け出た時に、第１フラッシュインジケータ（「Ｆ１」）が生成される。第１フラッシュインジケータＦ１を検出したことに応答して、実行モジュール２４はグラフィックメモリ２０からの第１ポストシンクロナイゼーションオペレーションセットＰＳ１の後処理を開始し得る。ここで第１ポストシンクロナイゼーションオペレーションセットＰＳ１の後処理は、グラフィックメモリ２０においてＥＯＰＳ分離トークン１８ａに遭遇したことに応じて中断され得る。
【００１１】
加えて、図示されるコマンドシーケンス２６は、第３パイプ制御コマンド（「ＰＣ３」）がその後解析され得ることを示す。ここで、第３ポストシンクロナイゼーションオペレーションセット（「ＰＳ３」）を関連するＥＯＰＳ分離トークン１８ｃと併せてグラフィックメモリ２０に格納することにより、第３ポストシンクロナイゼーションオペレーションセットＰＳ３が保留され得る。さらに、第３マーカ（「Ｍ３」）が、グラフィックパイプライン１２により生成および前処理され得る。図示される例において、第４コマンド（「Ｃ４」）がグラフィックパイプライン１２により解析および処理され、第２マーカＭ２がグラフィックパイプライン１２の出力マージャステージ１２ｆを抜け出たことを、第２フラッシュインジケータ（「Ｆ２」）が実行モジュール２４に対してシグナリングする。したがって、図示される実行モジュール２４は、第２マーカＭ２がグラフィックパイプライン１２を抜け出ることに応答して（例えば、一旦、第１ポストシンクロナイゼーションオペレーションセットＰＳ１の後処理が完了した場合）第２ポストシンクロナイゼーションオペレーションセットＰＳ２を後処理する。
【００１２】
加えて、第４パイプ制御コマンド（「ＰＣ４」）が解析され得る。ここで、第４ポストシンクロナイゼーションオペレーションセット（「ＰＳ４」）を他のＥＰＯＳ分離トークン１８ｄと併せてグラフィックメモリ２０に格納することにより、第４ポストシンクロナイゼーションオペレーションセットＰＳ４は保留される。第４マーカ（「Ｍ４」）もグラフィックパイプライン１２により生成および前処理され得る。図示されるパイプ制御コマンドＰＣ４は、次のコマンド（つまり、「Ｃ５」）へ進む前に自身の対応する第４ポストシンクロナイゼーションオペレーションセットＰＳ４が完了するのを待機する「ストール」コマンドとして機能し得る。したがって、図示される例において、第３フラッシュインジケータ（「Ｆ３」）が検出されるまでパイプライン１２へ「バブル」が意図的に挿入される。第３マーカＭ３がグラフィックパイプライン１２を抜け出るのに応答して生成され得る第３フラッシュインジケータＦ３が、実行モジュール２４による第３ポストシンクロナイゼーションオペレーションセットＰＳ３の後処理を引き起こし得る。同様に、第４マーカＭ４がグラフィックパイプライン１２を抜け出ると、第４フラッシュインジケータＦ４は、実行モジュール２４に、第４ポストシンクロナイゼーションオペレーションセットＰＳ４を後処理させ得る。
【００１３】
ここで図４を参照すると、ポストシンクロナイゼーションオペレーションを処理する方法３０が示されている。方法３０は、メモリのマシンまたはコンピュータ可読記憶媒体に格納されたロジック命令セットとして実行可能ソフトウェアにおいて実装され得る。メモリの例としては、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、プログラム可能ＲＯＭ（ＰＲＯＭ）、ファームウェア、フラッシュメモリ、その他などが挙げられる。方法３０は、例えば、プログラム可能ロジックアレイ（ＰＬＡ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、コンプレックスプログラマブルロジックデバイス（ＣＰＬＤ）など構成可能なロジックで、例えば、特定用途向け集積回路（ＡＳＩＣ）、相補型金属酸化物半導体（ＣＭＯＳ）またはトランジスタ−トランジスタロジック（ＴＴＬ）技術などの回路技術を用いる機能固定型ロジックハードウェアで、またはこれらの何らかの組み合わせで実装され得る。
【００１４】
図示される処理ブロック３２は、ポストシンクロナイゼーションオペレーションセットをグラフィックメモリへ格納する段階を提供する。既に言及されたように、ブロック３２は、ポストシンクロナイゼーションオペレーションセットがグラフィックメモリに格納された後に、分離トークンをグラフィックメモリに格納することも伴い得る。加えて、ブロック３４において、フラッシュマーカがグラフィックパイプラインへ送信され得る。ここで、ブロック３６において、フラッシュマーカがグラフィックパイプラインを抜け出ることに応答して、ポストシンクロナイゼーションオペレーションセットが処理され得る。
【００１５】
図５Ａ〜５Ｃはそれぞれ、前処理、後処理、およびアトミック処理コマンドのより詳細なアプローチを示す。図示されるアプローチは、メモリのマシンまたはコンピュータ可読記憶媒体に格納されたロジック命令セットとして実行可能ソフトウェアにおいて実装され得る。メモリの例としては、ＲＡＭ、ＲＯＭ、ＰＲＯＭ、ファームウェア、フラッシュメモリ、その他などが挙げられる。図示されるアプローチは、例えば、ＰＬＡ、ＦＰＧＡ、ＣＰＬＤなど構成可能なロジックで、例えば、ＡＳＩＣ、ＣＭＯＳ、ＴＴＬ技術などの回路技術を用いる機能固定型ロジックハードウェアで、またはこれらの何らかの組み合わせで実装され得る。
【００１６】
図５Ａにおいてよく示されるように、図示される処理ブロック３８はコマンドバッファ処理を開始する。ここでブロック４０において、コマンドバッファが空であるか否かの決定がなされる。結果が肯定的である場合、ブロック４２において処理が終了し得る。そうでない場合、図示されるブロック４４において、バッファから次のコマンドが取得され、ブロック４６において、取得したコマンドがパイプ制御コマンドであるか否かの決定がなされ得る。既に言及されたように、例えば適切に構成されたアトミックコマンドまたはセマフォコマンドなどの他のコマンドも、パイプ制御コマンドの代わりに、および／またはそれに加えて用いられ得る。実際、ハードウェアによりサポートされるどのようなコマンドも、ポストシンクロナイゼーションオペレーションとして見なされるよう構成され得る。取得したコマンドがパイプコマンドでない場合、図示されるブロック４８において、コマンドが実行され、他のバッファチェックがブロック４０において行われる。
【００１７】
コマンドがパイプ制御コマンドである場合、ブロック５０において、例えばグラフィックメモリ２０（図１および３）などのグラフィックメモリにおいて領域が利用可能であるか否かが決定され得る。結果が否定的な場合、図示される前処理手順は、十分なメモリ領域が解放されるまで待機する。そうでなければ、ブロック５２において、ポストシンクロナイゼーションオペレーションセットがパイプ制御コマンドから解析され、グラフィックメモリに格納され得、ブロック５４において、分離トークンが生成されグラフィックメモリに格納され得る。代替的に、利用可能な格納領域を越えてしまう場合には、ソフトウェアが、ポストシンクロナイゼーションオペレーションを複数のパイプ制御コマンドに亘って分割することにより、任意の１つのパイプ制御コマンドが利用可能な格納領域を超えるポストシンクロナイゼーションオペレーションを有さないようにし得る。そのような場合、ブロック５０における決定は迂回され得る。
【００１８】
図示されるブロック５６において、記憶領域カウンタ５８にインタフェースし、ポストシンクロナイゼーションオペレーションセットのサイズおよびトークンのサイズに基づき、メモリ領域の利用可能な量がデクリメントされる。加えて、ブロック６０においてフラッシュマーカがグラフィックパイプラインへ送信され得る。ブロック６０は、アウトスタンディングマーカ完了トラッカ６２をインクリメントすることも伴い得る。コマンドがストールさせるパイプ制御コマンドであるか否かの決定がブロック６４においてなされ得る。結果が否定的な場合、前処理手順はブロック４０に戻り、他のバッファチェックを実行し得る。そうでない場合、アウトスタンディングマーカ完了トラッカ６２からの情報に基づき、全てのフラッシュが完了したか否かの決定がブロック６６においてなされ得る。ブロック６６における決定は、全てのフラッシュが完了するまで反復され得る。
【００１９】
図５Ｂにおいてよく示されるように、ブロック６８においてフラッシュインジケータに遭遇することに応じて（例えば、マーカがグラフィックパイプラインを抜け出た場合）、フラッシュ完了カウンタ７０がインクリメントされ得、これにより、ブロック７２における図示される後処理手順が開始される。ＥＯＰＳ分離トークンがグラフィックメモリにおいて遭遇されたか否かの決定がブロック７４においてなされ得る。結果が否定的な場合、図示されるブロック７６において、グラフィックメモリの次のポストシンクロナイゼーション（「ポストシンク」）オペレーションが処理され、ブロック７８は、グラフィックメモリの次の位置に進み得る。
【００２０】
ＥＯＰＳトークンがグラフィックメモリにおいて遭遇された場合、図示されるブロック８０において、フラッシュ完了カウンタ７０がデクリメントされ、グラフィックメモリから削除されるポストシンクオペレーションおよびトークンのサイズに基づき、ブロック８２において、記憶領域カウンタ５８（図５Ａ）のメモリ領域がインクリメントされる。加えて、ブロック８４において、アウトスタンディングマーカ完了トラッカ６２（図５Ａ）がデクリメントされ得る。ここで、図示される後処理手順はブロック８６で終了し得る。したがって、図５Ａの前処理手順および図５Ｂの後処理手順は、図示される例において、互いに分断される。
【００２１】
図５Ｃにおいてよく示されるように、グラフィックＨＷ  ＦＥ１２ａ（図３）などのグラフィックハードウェアフロントエンドは概して、アトミックコマンドがポストシンクロナイゼーション処理に対応する特別なビット表示を有さない（例えば、ポストシンクロナイゼーションビットが設定されていない）場合に、即座の処理のためにアトミックコマンドを用意し得る。より詳細には、ブロック３９においてアトミック処理が開始され得る。ここで、図示されるブロック４１において、受信されるアトミックコマンドがインラインデータを含むか否かの決定がなされる。結果が否定的な場合、ブロック４３において、適切なソース（例えば、レジスタ、バッファ、その他）から間接的なデータが取得され得る。加えてブロック４５において、アトミックパケットが組み立てられ得る。ここでアトミックパケットは、例えば、アトミックオペレーションが実行されることになるメモリアドレス、実行されることになるアトミックオペレーションの種類、アトミックオペレーションのオペランドサイズ（例えば、ｄｗｏｒｄ、ｑｗｏｒｄ、ｏｃｔｗｏｒｄ）、追加のオペレーション（例えば、アトミックオペレーションに依存する第２および第３のオペランド）、要求される読み取られたリターンデータ、およびその他を含み得る。
【００２２】
図示されるブロック４７は、メモリ位置の所有権を取得する段階を提供する。ここで所有権は、他の処理および／またはデバイスが確実に、メモリ位置を修正しないようにし得る。ブロック４９において、メモリ位置からデータが取得され得る。読み取られたリターンデータが要求されたか否かの決定がブロック５１においてなされ得る。結果が肯定的な場合、ブロック５３において、メモリから取得されたデータが１または複数のレジスタに格納され得る。ブロック５５において、アトミックコマンドに基づきアトミック修正が実行され得る。ここで、図示されるブロック５７は、修正されたデータをメモリ位置に戻すように格納する段階を提供する。ブロック５９は、メモリ位置の所有権をリリースし得る。
【００２３】
ここで図６を参照すると、ロジックアーキテクチャ８８（８８ａ〜８８ｄ）が示されている。ロジックアーキテクチャ８８は概して、例えば、既に説明したグラフィックＨＷ  ＦＥ１２ａ（図３）などのグラフィックハードウェア（ＨＷ）フロントエンド（ＦＥ）において実装され得る。図示される例において、アーキテクチャ８８はパイプ制御コマンド、アトミックコマンド、セマフォコマンド、その他、またはこれらの何らかの組み合わせからポストシンクロナイゼーションオペレーションセットを取得するコマンドストリーマ（ＣＳ）モジュール８８ａ（例えば、レンダリング、ブリッタ、動画、および／または動画補正コマンドストリーマインタフェース）を含む。メモリモジュール８８ｂは、ポストシンクロナイゼーションオペレーションセットをグラフィックメモリに格納し得る。ここでパイプラインモジュール８８ｃは、各ポストシンクロナイゼーションオペレーションセットのために、フラッシュマーカをグラフィックパイプラインへ送信し得る。さらに、実行モジュール８８ｄは、対応するフラッシュマーカがグラフィックパイプラインを抜け出ることに応答して、各ポストシンクロナイゼーションオペレーションセットを処理し得る。したがって実行モジュール８８ｄは、既に説明したポストシンクオペレーション実行モジュール２４（図１および３）と同様に機能し得る。
【００２４】
ここで図７を参照すると、コンピューティングシステム９０が示されている。ここでシステム９０は、ラップトップ、モバイルインターネットデバイス（ＭＩＤ）、携帯情報端末（ＰＤＡ）、メディアプレーヤ、撮像デバイス、その他などのモバイルプラットフォーム、スマートフォン、スマートタブレット、スマートＴＶ（テレビ）、およびその他などの何らかのスマートデバイス、またはこれらの何らかの組み合わせの一部であり得る。システム９０は、パーソナルコンピュータ（ＰＣ）、サーバ、ワークステーション、その他などの固定されたプラットフォームの一部でもあり得る。図示されるシステム９０は、中央処理装置（ＣＰＵ。例えばホストプロセッサ）９２を含む。ＣＰＵ９２は、内蔵型メモリコントローラ（ｉＭＣ）９４を有し、ｉＭＣ９４は、例えばダブルデータレート（ＤＤＲ）シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ。例えば、ＤＤＲ３  ＳＤＲＡＭ  ＪＥＤＥＣ  Ｓｔａｎｄａｒｄ  ＪＥＳＤ７９−３Ｃ，Ａｐｒｉｌ  ２００８）モジュールを含み得るシステムメモリ９６へのアクセスを提供する。システムメモリ９６のモジュールは、例えば、シングルインラインメモリモジュール（ＳＩＭＭ）、デュアルインラインメモリモジュール（ＤＩＭＭ）、スモールアウトラインＤＩＭＭ（ＳＯＤＩＭＭ）、およびその他に組み込まれ得る。
【００２５】
ＣＰＵ９２は、１または複数のドライバ９８および／またはプロセッサコア（図示せず）も有し得る。ここで各コアは、命令フェッチユニット、命令デコーダ、レベル１（Ｌ１）キャッシュ、実行ユニット、およびその他と共に完全に機能し得る。一例において、ドライバ９８は、パイプ制御コマンド、アトミックコマンド、セマフォコマンド、およびその他でポストシンクロナイゼーションオペレーションセットを発行するよう構成される。代替的にＣＰＵ９２は、システム９０のコンポーネントのそれぞれを相互接続するフロントサイドバスまたはポイントツーポイントファブリックを介して、ノースブリッジとしても知られるｉＭＣ９４の外部チップである変形例と通信し得る。ＣＰＵ９２は、オペレーティングシステム（ＯＳ）１００も実行し得る。
【００２６】
図示されるＣＰＵ９２は、バスを介して、サウスブリッジとしても知られる入出力（ＩＯ）モジュール１０２と通信し得る。ｉＭＣ９４／ＣＰＵ９２、およびＩＯモジュール１０２は、場合によってはチップセットと呼ばれる。またＣＰＵ９２は、ＩＯモジュール１０２および様々な他のコントローラ１０４を通じ、ネットワークポートを介してネットワーク（図示せず）と操作可能に接続され得る。したがって、他のコントローラ１０４は有線通信および無線通信などの多種多様な目的のためにオフプラットフォーム通信機能を提供し得る。それら目的には、携帯電話（例えば、Ｗｉｄｅｂａｎｄ  Ｃｏｄｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ、Ｗ−ＣＤＭＡ（Ｕｎｉｖｅｒｓａｌ  Ｍｏｂｉｌｅ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｓｙｓｔｅｍ／ＵＭＴＳ）、ＣＤＭＡ２０００（ＩＳ−８５６／ＩＳ−２０００）、その他）、Ｗｉ−Ｆｉ（登録商標）（Ｗｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ。例えば、Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ／ＩＥＥＥ  ８０２．１１，２００７  Ｅｄｉｔｉｏｎ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）（例えば、ＩＥＥＥ  ８０２．１５．１−２００５、Ｗｉｒｅｌｅｓｓ  Ｐｅｒｓｏｎａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋｓ）、ＷｉＭａｘ（登録商標）（例えば、ＩＥＥＥ  ８０２．１６−２００４）、全地球測位システム（ＧＰＳ）、スペクトル拡散（例えば、９００ＭＨｚ）、並びに、他の無線周波数（ＲＦ）電話技術における目的が含まれるがこれらに限定されない。またＩＯモジュール１０２は、動画、画像、および他のコンテンツの視覚的な出力／表現を提供すべくディスプレイ１０６と通信し得る。また、ユーザがシステム９０とインタラクトし、システム９０からの情報を知覚出来るようにするために、他のコントローラ１０４は、キーパッド、マウス、その他などのユーザインタフェースデバイス（図示せず）に関するサポートを提供すべくＩＯモジュール１０２と通信し得る。
【００２７】
ＩＯモジュール１０２は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ。例えば、ＵＳＢ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  ２．０，ＵＳＢ  Ｉｍｐｌｅｍｅｎｔｅｒｓ  Ｆｏｒｕｍ）、Ｓｅｒｉａｌ  ＡＴＡ（ＳＡＴＡ。例えば、ＳＡＴＡ  Ｒｅｖ．  ３．０  Ｓｐｅｃｉｆｉｃａｔｉｏｎ，Ｍａｙ  ２７，２００９，ＳＡＴＡ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｏｒｇａｎｉｚａｔｉｏｎ／ＳＡＴＡ−ＩＯ）、Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  Ａｕｄｉｏ、および他のコントローラなど内部コントローラ（図示せず）も有し得る。図示されるＩＯモジュール１０２は、ハードドライブ１０８、読み取り専用メモリ（ＲＯＭ）、光ディスク、フラッシュメモリ（図示せず）、その他を含み得る記憶装置とも結合され得る。
【００２８】
図示されるシステム９０は、専用グラフィックメモリ１１２に結合された専用のグラフィック処理ユニット（ＧＰＵ。グラフィックプロセッサ）１１０も含む。専用グラフィックメモリ１１２は、例えば、ＧＤＤＲ（グラフィックＤＤＲ）、またはＤＤＲ  ＳＤＲＡＭモジュール、若しくは、グラフィックレンダリングをサポートするのに適した他の何らかのメモリ技術を含み得る。ＧＰＵ１１０およびグラフィックメモリ１１２は、グラフィック／ビデオカードにインストールされ得る。ここでＧＰＵ１１０は、ＰＣＩ  Ｅｘｐｒｅｓｓ  Ｇｒａｐｈｉｃｓ（ＰＥＧ。例えば、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／ＰＣＩ  Ｅｘｐｒｅｓｓ  ｘ１６  Ｇｒａｐｈｉｃｓ  １５０Ｗ−ＡＴＸ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  １．０、ＰＣＩ  Ｓｐｅｃｉａｌ  Ｉｎｔｅｒｅｓｔ  Ｇｒｏｕｐ）バス、またはＡｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ（例えば、ＡＧＰ  Ｖ３．０  Ｉｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ，Ｓｅｐｔｅｍｂｅｒ  ２００２）バスなどのグラフィックバス１１４を介して、ＣＰＵ９２と通信し得る。グラフィックカードは、システムマザーボードまたはメインＣＰＵ９２ダイに統合され得、若しくは、マザーボード、その他の別個のカードとして構成され得る、などである。またＧＰＵ１１０は、１または複数のドライバ１１６を実行し得、グラフィックパイプライン１１８、並びに命令および他のデータを格納する内部キャッシュ１２０を含み得る。
【００２９】
代替的に、ＧＰＵ１１０は専用グラフィックメモリを有しておらず、代わりにＣＰＵ９２とシステムメモリ９６を共有し得る。そのような構成は、ＧＰＵ１１０とＣＰＵ９２とが同じダイの一部である（例えば、適切なインタフェースを通じて接続される）統合されたグラフィックアーキテクチャのために用いられ得る。
【００３０】
図示されるグラフィックパイプライン１１８は、既に説明したロジックアーキテクチャ８８（図６）と同様に機能するよう構成されたフロントエンド（ＦＥ）ロジック１２２を含む。したがって、ＦＥロジック１２２は、例えば、キャッシュ１２０および／または専用グラフィックメモリ１１２などのグラフィックメモリへポストシンクロナイゼーションオペレーションセットを格納し、フラッシュマーカをグラフィックパイプライン１１８の残りへ送信し得る。ここで、ポストシンクロナイゼーションオペレーションセットは、ディスプレイ１０６上で提示されるコンテンツと関連する。またＧＰＵ１１０は、フラッシュマーカがグラフィックパイプライン１１８を抜け出るのに応答してポストシンクロナイゼーションオペレーションセットを処理するよう構成された実行モジュール１２４を含み得る。
【００３１】
アトミックコマンドの例示的な仕様（「ＭＩ＿ＡＴＯＭＩＣ」）が以下に表Ｉに示されている。ここでアトミックコマンドは、インラインデータとしてポストシンクロナイゼーションオペレーションを含むよう構成され得る。
【００３２】
表Ｉ
【表１】
0005955915.tif 000002
【表２】
0005955915.tif 000003
【表３】
0005955915.tif 000004
【００３３】
図８は、システム７００の実施形態を示す。実施形態において、システム７００はメディアシステムであり得るが、システム７００はこの文脈に限定されない。例えばシステム７００は、パーソナルコンピュータ（ＰＣ）、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、携帯情報端末（ＰＤＡ）、携帯電話、携帯電話／ＰＤＡの組み合わせ、テレビ、スマートデバイス（例えば、スマートフォン、スマートタブレット、またはスマートテレビ）、モバイルインターネットデバイス（ＭＩＤ）、メッセージングデバイス、データ通信デバイス、並びにその他に組み込まれ得る。したがってシステム７００は、本明細書に説明されるように画像をレンダリングするために用いられ得る。
【００３４】
実施形態において、システム７００はディスプレイ７２０に結合されたプラットフォーム７０２を備える。プラットフォーム７０２は、コンテンツサービスデバイス７３０またはコンテンツ配信デバイス７４０、若しくは他の同様のコンテンツソースなどのコンテンツデバイスから動画ビットストリームコンテンツを受信し得る。例えばプラットフォーム７０２および／またはディスプレイ７２０とインタラクトするために、１または複数のナビゲーション機能を備えるナビゲーションコントローラ７５０が用いられ得る。これらのコンポーネントのそれぞれは、以下により詳細に説明される。
【００３５】
実施形態において、プラットフォーム７０２は、チップセット７０５、プロセッサ７１０、メモリ７１２、記憶装置７１４、グラフィックサブシステム７１５、アプリケーション７１６、および／または無線機７１８の何らかの組み合わせを備え得る。チップセット７０５は、プロセッサ７１０、メモリ７１２、記憶装置７１４、グラフィックサブシステム７１５、アプリケーション７１６、および／または無線機７１８の間の相互通信を提供し得る。例えば、チップセット７０５は、記憶装置７１４との相互通信を提供可能な記憶アダプタ（図示せず）を含み得る。
【００３６】
プロセッサ７１０は、Ｃｏｍｐｌｅｘ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ（ＣＩＳＣ）またはＲｅｄｕｃｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ（ＲＩＳＣ）プロセッサ、ｘ８６命令セットと互換性のあるプロセッサ、マルチコア、若しくは他の何らかのマイクロプロセッサまたは中央処理装置（ＣＰＵ）として実装され得る。実施形態において、プロセッサ７１０は、デュアルコアプロセッサ、デュアルコアモバイルプロセッサ、およびその他を備え得る。
【００３７】
メモリ７１２は、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、またはスタティックＲＡＭ（ＳＲＡＭ）などであるがこれらに限定されない揮発性メモリデバイスとして実装され得る。
【００３８】
記憶装置７１４は、磁気ディスクドライブ、光ディスクドライブ、テープドライブ、内部記憶デバイス、取り付けられた記憶デバイス、フラッシュメモリ、バッテリーバックアップ式のＳＤＲＡＭ（シンクロナスＤＲＡＭ）、および／またはネットワークアクセス可能な記憶デバイスなどであるがこれらに限定されない不揮発性記憶デバイスとして実装され得る。実施形態において、記憶装置７１４は、例えば複数のハードドライブが含まれる場合に、貴重なデジタルメディアの保護を高めるために記憶性能を向上させる技術を備え得る。
【００３９】
グラフィックサブシステム７１５は、表示のために静止画または動画などの画像の処理を実行し得る。グラフィックサブシステム７１５は、例えば、グラフィック処理ユニット（ＧＰＵ）またはビジュアル処理ユニット（ＶＰＵ）であり得る。したがってグラフィックサブシステム７１５は、既に説明したＧＰＵ１１０（図７）を含み得る。加えて、プロセッサ７１０は、メモリ７１２、記憶装置７１４、または他の適したソースから取得された命令を介して、既に説明したＣＰＵ９２（図７）などとして動作するよう構成され得る。グラフィックサブシステム７１５およびディスプレイ７２０を通信可能に結合するために、アナログまたはデジタルインタフェースが用いられ得る。例えば、インタフェースは、Ｈｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ、ＤｉｓｐｌａｙＰｏｒｔ、無線ＨＤＭＩ（登録商標）、および／または無線ＨＤ準拠技術のうちいずれかであり得る。グラフィックサブシステム７１５は、プロセッサ７１０またはチップセット７０５に統合され得る。グラフィックサブシステム７１５は、チップセット７０５と通信可能に結合されたスタンドアロン型カードであり得る。
【００４０】
本明細書に説明されるグラフィックおよび／または動画処理技術は、様々なハードウェアアーキテクチャで実装され得る。例えば、グラフィックおよび／または動画機能は、チップセット内で統合され得る。代替的に、別個のグラフィックおよび／または動画プロセッサが用いられ得る。さらに他の実施形態として、グラフィックおよび／または動画機能は、マルチコアプロセッサを含む汎用プロセッサにより実装され得る。さらなる実施形態において、機能は、家庭用電子機器で実装され得る。
【００４１】
無線機７１８は、様々な適した無線通信技術を用いて信号を送受信可能な１または複数の無線機を含み得る。そのような技術は、１または複数の無線ネットワークを介した通信を伴い得る。例示的な無線ネットワークとしては（これらに限定されるわけではないが）、無線ローカルエリアネットワーク（ＷＬＡＮ）、無線パーソナルエリアネットワーク（ＷＰＡＮ）、無線メトロポリタンエリアネットワーク（ＷＭＡＮ）、セルラーネットワーク、および衛星ネットワークが含まれる。そのようなネットワークを介した通信において、無線機７１８は、いずれかのバージョンの１または複数の適用可能な規格に準拠して動作し得る。
【００４２】
実施形態において、ディスプレイ７２０は、何らかのテレビ型のモニタまたはディスプレイを備え得る。ディスプレイ７２０は例えば、コンピュータディスプレイ画面、タッチスクリーンディスプレイ、ビデオモニタ、テレビ型デバイス、および／またはテレビを備え得る。ディスプレイ７２０は、デジタルおよび／またはアナログであり得る。実施形態において、ディスプレイ７２０はホログラフィックディスプレイであり得る。また、ディスプレイ７２０は、視覚投影を受ける透明な面であり得る。そのような投影は、様々な形態の情報、画像、および／またはオブジェクトを伝達し得る。例えば、そのような投影は、モバイル拡張現実（ＭＡＲ）アプリケーションのための視覚的なオーバーレイであり得る１または複数のソフトウェアアプリケーション７１６の制御下で、プラットフォーム７０２は、ユーザインタフェース７２２をディスプレイ７２０に表示し得る。
【００４３】
実施形態において、コンテンツサービスデバイス７３０は、国ごとの、国際的な、および／または独立した何らかのサービスによりホストされ得、これにより、例えば、インターネットを介してプラットフォーム７０２にアクセス可能であり得る。コンテンツサービスデバイス７３０は、プラットフォーム７０２および／またはディスプレイ７２０に結合され得る。プラットフォーム７０２および／またはコンテンツサービスデバイス７３０は、ネットワーク７６０へ／からメディア情報を通信（例えば、送信および／または受信）すべく、ネットワーク７６０に結合され得る。コンテンツ配信デバイス７４０も、プラットフォーム７０２および／またはディスプレイ７２０へ結合され得る。
【００４４】
実施形態において、コンテンツサービスデバイス７３０は、ケーブルテレビボックス、パーソナルコンピュータ、ネットワーク、電話、インターネット利用可能デバイスまたはデジタル情報および／またはコンテンツを伝達可能な電気製品、並びに、コンテンツプロバイダと、プラットフォーム７０２およびディスプレイ７２０との間でネットワーク７６０を介して、または直接的に、一方向または双方向にコンテンツを通信可能な他の何らかの同様のデバイスを備え得る。コンテンツは、システム７００内のコンポーネントのうちいずれか１つおよびコンテンツプロバイダへ／からネットワーク７６０を介して、一方向および／または双方向に通信され得ることが理解されよう。コンテンツの例には、例えば動画、音楽、医療またはゲームに関する情報、およびその他を含む何らかのメディア情報が含まれ得る。
【００４５】
コンテンツサービスデバイス７３０は、メディア情報、デジタル情報、および／または他のコンテンツを含むケーブルテレビプログラムなどのコンテンツを受信し得る。コンテンツプロバイダの例には、何らかのケーブルまたは衛星テレビ、若しくは無線またはインターネットコンテンツプロバイダが含まれ得る。提供される例は、実施形態を限定するよう意図されていない。
【００４６】
実施形態において、プラットフォーム７０２は、１または複数のナビゲーション機能を有するナビゲーションコントローラ７５０から制御信号を受信し得る。コントローラ７５０のナビゲーション機能は、例えば、ユーザインタフェース７２２とインタラクトするために用いられ得る。実施形態において、ナビゲーションコントローラ７５０は、ユーザが空間（例えば、連続的であり多次元の）データをコンピュータに入力することを可能とするコンピュータハードウェア構成要素（詳細には、ヒューマンインタフェースデバイス）であり得るポインティングデバイスであり得る。グラフィカルユーザインタフェース（ＧＵＩ）などの多くのシステム、並びにテレビおよびモニタは、身体的なジェスチャを用いてユーザがコンピュータまたはテレビを制御すること、およびこれらにデータを提供することを可能とする。
【００４７】
コントローラ７５０のナビゲーション機能の動きは、ディスプレイ上に表示されるポインタ、カーソル、フォーカスリング、または他の視覚的なインジケータの動きにより、ディスプレイ（例えばディスプレイ７２０）上で反映され得る。例えば、ソフトウェアアプリケーション７１６の制御下で、ナビゲーションコントローラ７５０上に位置付けられるナビゲーション機能は、例えば、ユーザインタフェース７２２上に表示される仮想的なナビゲーション機能へとマッピングされ得る。実施形態において、コントローラ７５０は別個のコンポーネントではなく、プラットフォーム７０２および／またはディスプレイ７２０に統合され得る。しかし実施形態は、本明細書に示される、または説明される要素または文脈に限定されない。
【００４８】
実施形態において、ドライバ（図示せず）は、例えば、テレビのように、有効にされた場合に、ユーザが最初のブートアップの後にボタンに触れると瞬時にプラットフォーム７０２の電源を入れたり、切ったりすることを可能とする技術を備え得る。プログラムロジックは、プラットフォーム７０２の電源が「切られた」場合に、プラットフォームがコンテンツを、メディアアダプタ、若しくは他のコンテンツサービスデバイス７３０またはコンテンツ配信デバイス７４０へストリーミングすることを可能とし得る。加えて、チップセット７０５は、例えば、５．１サラウンドサウンドオーディオおよび／または高解像度の７．１サラウンドサウンドオーディオのためのハードウェアおよび／またはソフトウェアサポートを備え得る。ドライバは、統合されたグラフィックプラットフォームのためのグラフィックドライバを含み得る。実施形態において、グラフィックドライバはペリフェラルコンポーネントインターコネクト（ＰＣＩ）Ｅｘｐｒｅｓｓグラフィックカードを備え得る。
【００４９】
様々な実施形態において、システム７００に示されるコンポーネントのうちいずれか１つまたは複数は統合され得る。例えば、プラットフォーム７０２とコンテンツサービスデバイス７３０とが統合され得、プラットフォーム７０２とコンテンツ配信デバイス７４０とが統合され得、プラットフォーム７０２と、コンテンツサービスデバイス７３０とコンテンツ配信デバイス７４０とが例えば統合され得る。様々な実施形態において、プラットフォーム７０２とディスプレイ７２０とは統合されたユニットであり得る。例えば、ディスプレイ７２０とコンテンツサービスデバイス７３０とが統合され得、またはディスプレイ７２０とコンテンツ配信デバイス７４０とが統合され得る。これらの例は実施形態を限定するよう意図されていない。
【００５０】
様々な実施形態において、システム７００は、無線システム、有線システム、または両方の組み合わせとして実装され得る。無線システムとして実装される場合、システム７００は、１または複数のアンテナ、送信機、受信機、送受信機、増幅器、フィルタ、制御ロジック、およびその他など無線共有媒体上での通信に適したコンポーネントおよびインタフェースを含み得る。無線共有媒体の例には、ＲＦスペクトルおよびその他など無線スペクトルの一部が含まれ得る。有線システムとして実装される場合、システム７００は、入出力（Ｉ／Ｏ）アダプタ、Ｉ／Ｏアダプタを対応する有線通信媒体と接続する物理コネクタ、ネットワークインタフェースカード（ＮＩＣ）、ディスクコントローラ、ビデオコントローラ、オーディオコントローラ、およびその他など有線通信媒体上での通信に適したコンポーネントおよびインタフェースを含み得る。有線通信媒体の例には、電線、ケーブル、金属鉛、プリント基板（ＰＣＢ）、バックプレーン、スイッチファブリック、半導体材料、ツイストペア線、同軸ケーブル、光学繊維、およびその他が含まれ得る。
【００５１】
プラットフォーム７０２は、情報を通信するための１または複数のロジックチャネルまたは物理チャネルを確立し得る。情報は、メディア情報および制御情報を含み得る。メディア情報とは、ユーザ向けのコンテンツを表す何らかのデータを指し得る。コンテンツの例には、例えば、音声会話、ビデオ会議、ストリーミング動画、電子メール（「ｅメール」）メッセージ、ボイスメールメッセージ、英数字記号、グラフィック、画像、動画、テキスト、およびその他からのデータを含み得る。音声会話からのデータは例えば、会話情報、静寂の期間、背景雑音、快適雑音、トーン、およびその他であり得る。制御情報とは、自動化されたシステム向けのコマンド、命令、または制御語を表す何らかのデータを指し得る。例えば、制御情報は、システムを通じてメディア情報をルーティングする、または、予め定められたやり方でメディア情報を処理するようノードに命令するために用いられ得る。しかし実施形態は、図８に示される、または説明される要素または文脈に限定されない。
【００５２】
上記にて説明したように、システム７００は、異なる物理的なスタイルまたはフォームファクタで実施され得る。図９は、システム７００が実施され得る小さなフォームファクタのデバイス８００の実施形態を示す。実施形態において、例えば、デバイス８００は、無線機能を有するモバイルコンピューティングデバイスとして実装され得る。モバイルコンピューティングデバイスとは、例えば、処理システムと、１または複数のバッテリーなどモバイル電力ソースまたはサプライとを有する何らかのデバイスを指し得る。
【００５３】
上記にて説明したように、モバイルコンピューティングデバイスの例には、パーソナルコンピュータ（ＰＣ）、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、携帯情報端末（ＰＤＡ）、携帯電話、携帯電話／ＰＤＡの組み合わせ、テレビ、スマートデバイス（例えば、スマートフォン、スマートタブレット、またはスマートテレビ）、モバイルインターネットデバイス（ＭＩＤ）、メッセージングデバイス、データ通信デバイス、並びにその他を含み得る。
【００５４】
またモバイルコンピューティングデバイスの例には、リスト（ｗｒｉｓｔ）コンピュータ、フィンガーコンピュータ、リングコンピュータ、アイグラスコンピュータ、ベルトクリップコンピュータ、アームバンドコンピュータ、シュー（ｓｈｏｅ）コンピュータ、衣服コンピュータ、および他のウェアラブルコンピュータなど人により着用されるよう構成されコンピュータが含まれ得る。実施形態において、例えば、モバイルコンピューティングデバイスは、コンピュータアプリケーション、並びに音声通信および／またはデータ通信を実行可能なスマートフォンとして実装され得る。いくつかの実施形態は、例としてスマートフォンとして実装されるモバイルコンピューティングデバイスを用いて説明されるかもしれないが、他の無線モバイルコンピューティングデバイスを用いて他の実施形態が実装され得ることが理解されよう。実施形態はこの文脈に限定されない。
【００５５】
図９に示されるように、デバイス８００は、筐体８０２、ディスプレイ８０４、入出力（Ｉ／Ｏ）デバイス８０６、およびアンテナ８０８を備え得る。デバイス８００は、ナビゲーション機能８１２も備え得る。ディスプレイ８０４は、モバイルコンピューティングデバイスにとって適切な情報を表示するための何らかの適したディスプレイユニットを備え得る。Ｉ／Ｏデバイス８０６は、モバイルコンピューティングデバイスへ情報を入力するための適した何らかのＩ／Ｏデバイスを備え得る。Ｉ／Ｏデバイス８０６の例には、英数字キーボード、数字キーパッド、タッチパッド、入力キー、ボタン、スイッチ、ロッカースイッチ、マイク、スピーカ、音声認識デバイスおよびソフトウェア、並びにその他が含まれ得る。また情報は、マイクを用いてデバイス８００へ入力され得る。そのような情報は、音声認識デバイスによりデジタル化され得る。実施形態はこの文脈に限定されない。
【００５６】
追記および実施例
【００５７】
実施例１は、コマンドを処理するシステムであり、
視覚的コンテンツを提示するディスプレイと、
上記視覚的コンテンツに関連するポストシンクロナイゼーションオペレーションセットを発行するドライバを実行するホストプロセッサと
を備えるシステムを含み得る。またシステムは、
グラフィックメモリと、
グラフィックプロセッサとを備え得、
上記グラフィックプロセッサは、
上記グラフィックメモリに上記ポストシンクロナイゼーションオペレーションセットを格納するメモリモジュールと、
グラフィックパイプラインへフラッシュマーカを送信するパイプラインモジュールと、
上記フラッシュマーカが上記グラフィックパイプラインを抜け出ることに応答して上記ポストシンクロナイゼーションオペレーションセットを処理する実行モジュールと
を有する。
【００５８】
実施例２は、上記メモリモジュールが、上記ポストシンクロナイゼーションオペレーションセットが上記グラフィックメモリに格納された後に上記グラフィックメモリにトークンを格納し、上記実行モジュールは、上記トークンが上記グラフィックメモリにおいて遭遇された場合に上記ポストシンクロナイゼーションオペレーションセットの処理を中断する、実施例１に記載のシステムを含み得る。
【００５９】
実施例３は、上記グラフィックプロセッサがさらに、パイプ制御コマンドまたはアトミックコマンドのうち一方から上記ポストシンクロナイゼーションオペレーションセットを取得するグラフィックハードウェアフロントエンドを有する、実施例１に記載のシステムを含み得る。
【００６０】
実施例４は、上記アトミックコマンドが、インラインデータとして上記ポストシンクロナイゼーションオペレーションセットを含むか、若しくは１または複数の事前にロードされたインプリシットレジスタから間接的なデータとして上記ポストシンクロナイゼーションオペレーションセットを受け付ける、実施例３に記載のシステムを含み得る。
【００６１】
実施例５は、上記アトミックコマンドがリターンビットを含み、上記リターンビットが設定されている場合、上記グラフィックハードウェアフロントエンドは、上記アトミックコマンドの発信者へ読み取られたデータを戻すか、または読み取られたデータをインプリシットレジスタへ格納する、実施例３に記載のシステムを含み得る。
【００６２】
実施例６は、上記グラフィックプロセッサがさらに、特別なビット表示を有する１または複数のコマンドを上記ポストシンクロナイゼーションオペレーションセットであるものとして見なすコマンドストリーマモジュールを有する、実施例１に記載のシステムを含み得る。
【００６３】
実施例７は、上記ポストシンクロナイゼーションオペレーションセットが、１または複数のアトミックオペレーションを含む、実施例１から６のいずれか一つに記載のシステムを含み得る。
【００６４】
実施例８は、上記１または複数のアトミックオペレーションが、読み取りオペレーション、修正オペレーション、および書き込みオペレーションを含む、実施例７に記載のシステムを含み得る。
【００６５】
実施例９は、上記修正オペレーションが、Ａｄｄ、Ｓｕｂｔｒａｃｔ、Ｉｎｃｒｅｍｅｎｔ、Ｄｅｃｒｅｍｅｎｔ、Ｍａｘ、Ｍｉｎ、ＡＮＤ、ＯＲ、ＸＯＲ、またはＣｏｍｐａｒｅオペレーションのうち１または複数を含む、実施例８に記載のシステムを含み得る。
【００６６】
実施例１０は、グラフィックメモリにポストシンクロナイゼーションオペレーションセットを格納する段階と、
グラフィックパイプラインへフラッシュマーカを送信する段階と、
上記フラッシュマーカが上記グラフィックパイプラインを抜け出ることに応答して上記ポストシンクロナイゼーションオペレーションセットを処理する段階と
を備える、コマンドを処理する方法を含み得る。
【００６７】
実施例１１は、上記ポストシンクロナイゼーションオペレーションセットが上記グラフィックメモリに格納された後に上記グラフィックメモリにトークンを格納する段階と、
上記トークンが上記グラフィックメモリにおいて遭遇された場合に上記ポストシンクロナイゼーションオペレーションセットの処理を中断する段階と
をさらに備える、実施例１０に記載の方法を含み得る。
【００６８】
実施例１２は、パイプ制御コマンドまたはアトミックコマンドのうち一方から上記ポストシンクロナイゼーションオペレーションセットを取得する段階をさらに備える、実施例１０に記載の方法を含み得る。
【００６９】
実施例１３は、コンピューティングデバイスにより実行された場合に、上記コンピューティングデバイスに実施例７の方法を実行させる命令セットを備える、少なくとも１つのコンピュータ可読記憶媒体を含み得る。
【００７０】
実施例１４は、上記命令は実行された場合に、コンピューティングデバイスに、
上記ポストシンクロナイゼーションオペレーションセットが上記グラフィックメモリに格納された後に上記グラフィックメモリにトークンを格納させ、
上記トークンが上記グラフィックメモリにおいて遭遇された場合に上記ポストシンクロナイゼーションオペレーションセットの処理を中断させる、実施例１３に記載の少なくとも１つのコンピュータ可読記憶媒体を含み得る。
【００７１】
実施例１５は、上記命令は実行された場合に、コンピューティングデバイスに、パイプ制御コマンドまたはアトミックコマンドのうち一方から上記ポストシンクロナイゼーションオペレーションセットを取得させる、実施例１３に記載の少なくとも１つのコンピュータ可読記憶媒体を含み得る。
【００７２】
実施例１６は、グラフィックメモリにポストシンクロナイゼーションオペレーションセットを格納するメモリモジュールと、
グラフィックパイプラインへフラッシュマーカを送信するパイプラインモジュールと、
上記フラッシュマーカが上記グラフィックパイプラインを抜け出ることに応答して上記ポストシンクロナイゼーションオペレーションセットを処理する実行モジュールと
を備える、コマンドを処理する装置を含み得る。
【００７３】
実施例１７は、上記メモリモジュールが、上記ポストシンクロナイゼーションオペレーションセットが上記グラフィックメモリに格納された後に上記グラフィックメモリにトークンを格納し、上記実行モジュールは、上記トークンが上記グラフィックメモリにおいて遭遇された場合に上記ポストシンクロナイゼーションオペレーションセットの処理を中断する、実施例１６に記載の装置を含み得る。
【００７４】
実施例１８は、パイプ制御コマンドまたはアトミックコマンドのうち一方から上記ポストシンクロナイゼーションオペレーションセットを取得するコマンドストリーマモジュールさらにを備える、実施例１６に記載の装置を含み得る。
【００７５】
実施例１９は、上記アトミックコマンドが、インラインデータとして上記ポストシンクロナイゼーションオペレーションセットを含むか、若しくは１または複数の事前にロードされたインプリシットレジスタから間接的なデータとして上記ポストシンクロナイゼーションオペレーションセットを受け付ける、実施例１８に記載の装置を含み得る。
【００７６】
実施例２０は、上記アトミックコマンドがリターンビットを含み、上記リターンビットが設定されている場合、上記グラフィックハードウェアフロントエンドは、上記アトミックコマンドの発信者へ読み取られたデータを戻すか、または読み取られたデータをインプリシットレジスタへ格納する、実施例１８に記載の装置を含み得る。
【００７７】
実施例２１は、上記グラフィックプロセッサがさらに、特別なビット表示を有する１または複数のコマンドを上記ポストシンクロナイゼーションオペレーションセットであるものとして見なすコマンドストリーマモジュールを有する、実施例１６に記載の装置を含み得る。
【００７８】
実施例２２は、上記ポストシンクロナイゼーションオペレーションセットが、１または複数のアトミックオペレーションを含む、実施例１６から２１のいずれか一つに記載の装置を含み得る。
【００７９】
実施例２３は、上記１または複数のアトミックオペレーションが、読み取りオペレーション、修正オペレーション、および書き込みオペレーションを含む、実施例２２に記載の装置を含み得る。
【００８０】
実施例２４は、上記修正オペレーションが、Ａｄｄ、Ｓｕｂｔｒａｃｔ、Ｉｎｃｒｅｍｅｎｔ、Ｄｅｃｒｅｍｅｎｔ、Ｍａｘ、Ｍｉｎ、ＡＮＤ、ＯＲ、ＸＯＲ、またはＣｏｍｐａｒｅオペレーションのうち１または複数を含む、実施例２３に記載の装置を含み得る。
【００８１】
実施例２５は、上記アトミックコマンドがポストシンクロナイゼーション処理に対応する特別なビット表示を有さない場合に、即座の処理のためにアトミックコマンドを用意するグラフィックハードウェアフロントエンドをさらに備える、実施例１６の装置を含み得る。
【００８２】
実施例２６は、実施例１０から１２のいずれか一つに記載の方法を実行するための手段を備える、コマンドを処理する装置を含み得る。
【００８３】
したがって、本明細書に説明される技術は、グラフィックハードウェアフロントエンドからのアトミックサポートを提供し得、いずれかのハードウェアグラフィックコンポーネントおよびホストプロセッサソフトウェアにより同時にデータ要素を修正する機能を提供し得る。そのようなアプローチは、異なるハードウェアエージェントおよびソフトウェアの間でのデータの同期に関するドライバオーバヘッドを最適化および単純化し得る。そしてこれにより、より効率のよいハードウェア−ソフトウェアインタフェース、および実質的な電力節約が実現され得る。
【００８４】
様々な実施形態は、ハードウェア要素、ソフトウェア要素、またはこれら両方の組み合わせを用いて実装され得る。ハードウェア要素の例には、プロセッサ、マイクロプロセッサ、回路、回路要素（例えば、トランジスタ、抵抗、コンデンサ、誘電子、およびその他）、集積回路、特定用途向け集積回路（ＡＳＩＣ）、プログラム可能ロジックデバイス（ＰＬＤ）、デジタル信号プロセッサ（ＤＳＰ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ロジックゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセット、およびその他が含まれ得る。ソフトウェアの例には、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、方法、プロシージャ、ソフトウェアインタフェース、アプリケーションプログラムインタフェース（ＡＰＩ）、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、シンボル、またはこれらの何らかの組み合わせが含まれ得る。実施形態をハードウェア要素を用いて実装する、および／またはソフトウェア要素を用いて実装することについての決定は、所望される演算レート、電力レベル、耐熱性、処理サイクルバジェット、入力データレート、出力データレート、メモリリソース、データバススピード、および他の設計または性能制約など任意の数の要因に従って変わり得る。
【００８５】
少なくとも１つの実施形態の１または複数の態様は、マシンに読み取られた場合に、当該マシンに本明細書に説明される技術を実行するためのロジックを組み立てさせる、プロセッサ内の様々なロジックを表す、マシン可読媒体に格納された代表的な命令により実装され得る。「ＩＰコア」として知られるそのような表現は、有形のマシン可読媒体に格納され、実際にロジックまたはプロセッサを作成する組み立てマシンにロードする様々な顧客または製造施設へ供給され得る。
【００８６】
実施形態は、全てのタイプの半導体集積回路（「ＩＣ」）チップでの使用に適用可能である。これらＩＣチップの例には、これらに限定されるわけではないが、プロセッサ、コントローラ、チップセットコンポーネント、プログラム可能ロジックアレイ（ＰＬＡ）、メモリチップ、ネットワークチップ、およびその他が含まれる。加えて、いくつかの図面において、信号線は線で表されている。あるものはより多くの成分信号パスを示すべく異なっており、あるものは多数の成分信号パスを示すべく数の符号を有しており、および／または、あるものは主な情報のフロー方向を示すべく、１または複数の端部において矢印を有している。しかしこのことは、限定的に解釈されるべきではない。むしろそのような追加された詳細は、回路の容易な理解を促すべく、１または複数の例示的な実施形態に関連して用いられ得る。追加的な情報を有していようといなかろうと、何らかの示された信号線は、実際には複数の方向に移動し得る１または複数の信号を備え得、例えば、差動対を用いて実装されるデジタルまたはアナログ線、光ファイバー線、および／またはシングルエンド線など何らかの適したタイプの信号方式を用いて実装され得る。
【００８７】
例示的なサイズ／モデル／値／範囲が提示されているかもしれないが、実施形態はそれらに限定されない。製造技術（例えばフォトリソグラフィ）が時の経過と共に成熟するにつれ、より小さいサイズのデバイスが製造され得ることが予期される。加えて、ＩＣチップおよび他のコンポーネントへの周知の電力／接地接続が図面内に示されていることもあり、示されていないこともある。これは図示および説明を単純にするためであり、実施形態の特定の態様を曖昧にしないようにするためである。さらに、実施形態を曖昧にすることを避けるために、および、そのようなブロック図の構成の実装に関する詳細が、実施形態が実装されるプラットフォームに大いに依存している、つまり、そのような詳細が十分に当業者の理解の範囲内であるという事実に鑑みて、ブロック図の形態で構成が示されているかもしれない。例示的な実施形態を説明するために特定の詳細（例えば回路）が明記されている場合、実施形態がこれら特定の詳細を用いなくとも、またはそれらの変形例を用いて実施され得ることが当業者には明らかであろう。したがって説明は、限定するものではなく例示するものとして見なされるべきである。
【００８８】
いくつかの実施形態は、例えば、マシン、若しくはマシンにより実行された場合に実施形態に係る方法および／またはオペレーションを当該マシンに実行させる命令または命令セットを格納し得る有形のコンピュータ可読媒体または物品を用いて実装され得る。そのようなマシンには、例えば、何らかの適した処理プラットフォーム、コンピューティングプラットフォーム、コンピューティングデバイス、処理デバイス、コンピューティングシステム、処理システム、コンピュータ、プロセッサ、またはその他が含まれ得、ハードウェアおよび／またはソフトウェアの何らかの適した組み合わせを用いて実装され得る。マシン可読媒体または物品には、例えば、何らかの適したタイプのメモリユニット、メモリデバイス、メモリ物品、メモリ媒体、記憶デバイス、記憶物品、記憶媒体、および／または記憶ユニットが含まれ得、それらの例には、例えば、メモリ、取り外し可能または取り外し不可能な媒体、消去可能または消去不可能な媒体、書き込み可能または再書き込み可能な媒体、デジタルまたはアナログ媒体、ハードディスク、フロッピー（登録商標）ディスク、コンパクトディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、コンパクトディスクレコーダブル（ＣＤ−Ｒ）、コンパクトディスクリライタブル（ＣＤ−ＲＷ）、光ディスク、磁気媒体、光磁気媒体、取り外し可能メモリカードまたはディスク、様々なタイプのデジタル多用途ディスク（ＤＶＤ）、テープ、カセット、またはその他が含まれ得る。命令は、何らかの適した高級言語、低級言語、オブジェクト指向言語、視覚言語、コンパイラ型および／またはインタープリタ型プログラミング言語を用いて実装される、ソースコード、コンパイラ型コード、インタープリタ型コード、実行可能コード、静的コード、動的コード、暗号化コード、およびその他など何らかの適したタイプのコードを含み得る。
【００８９】
特に異なるように述べない限り、「処理」、「演算」、「計算」、「決定」、またはその他などの用語は、コンピューティングシステムのレジスタおよび／またはメモリ内で物理量（例えば、電子的）として表されるデータを操作する、および／またはコンピューティングシステムのメモリ、レジスタ、または他のそのような情報記憶、送信またはディスプレイデバイス内で同様に物理量として表される他のデータに変換する、コンピュータまたはコンピューティングシステム、若しくは同様の電子コンピューティングデバイスの動作および／または処理を指し得ることが理解されよう。実施形態はこの文脈に限定されない。
【００９０】
「結合された」という用語は本明細書において、対象のコンポーネント間の直接的または間接的な何らかのタイプの関係を指すのに用いられ得、電子的、機械的、流体的、光学的、電磁気的、電気機械的、または他のタイプの接続に適用され得る。加えて、「第１」、「第２」、その他の用語は本明細書において、説明を容易にするためのみに用いられており、異なるように示されていない限り、何ら特定の時間的または時系列的な意味を伝えない。
【００９１】
当業者は上記の説明から、実施形態の幅広い技術が、様々な形態で実装され得ることを理解されよう。したがって、特定の例に関連して実施形態が説明がされてきたが、実施形態の真の態様はそのように限定されるべきではない。なぜなら、当業者が図面、明細書、および以下の請求項を検討することにより、他の修正が明らかとなるからである。
本実施形態の例を下記の各項目として示す。
［項目１］
複数のコマンドを処理するシステムであり、
視覚的コンテンツを提示するディスプレイと、
前記視覚的コンテンツに関連するポストシンクロナイゼーションオペレーションセットを発行するドライバを実行するホストプロセッサと、
グラフィックメモリと、
グラフィックプロセッサとを備え、
前記グラフィックプロセッサは、
前記グラフィックメモリに前記ポストシンクロナイゼーションオペレーションセットを格納するメモリモジュールと、
グラフィックパイプラインへフラッシュマーカを送信するパイプラインモジュールと、
前記フラッシュマーカが前記グラフィックパイプラインを抜け出ることに応答して前記ポストシンクロナイゼーションオペレーションセットを処理する実行モジュールと
を有する、システム。
［項目２］
前記メモリモジュールは、前記ポストシンクロナイゼーションオペレーションセットが前記グラフィックメモリに格納された後に前記グラフィックメモリにトークンを格納し、前記実行モジュールは、前記トークンが前記グラフィックメモリにおいて遭遇された場合に前記ポストシンクロナイゼーションオペレーションセットの処理を中断する、項目１に記載のシステム。
［項目３］
前記グラフィックプロセッサはさらに、パイプ制御コマンドまたはアトミックコマンドのうち一方から前記ポストシンクロナイゼーションオペレーションセットを取得するグラフィックハードウェアフロントエンドを有する、項目１に記載のシステム。
［項目４］
前記アトミックコマンドは、インラインデータとして前記ポストシンクロナイゼーションオペレーションセットを含むか、若しくは１または複数の事前にロードされたインプリシットレジスタから間接的なデータとして前記ポストシンクロナイゼーションオペレーションセットを受け付ける、項目３に記載のシステム。
［項目５］
前記アトミックコマンドはリターンビットを含み、前記リターンビットが設定されている場合、前記グラフィックハードウェアフロントエンドは、前記アトミックコマンドの発信者へ読み取られたデータを戻すか、または読み取られたデータをインプリシットレジスタへ格納する、項目３に記載のシステム。
［項目６］
前記グラフィックプロセッサはさらに、特別なビット表示を有する１または複数のコマンドを前記ポストシンクロナイゼーションオペレーションセットであるものとして見なすコマンドストリーマモジュールを有する、項目１に記載のシステム。
［項目７］
前記ポストシンクロナイゼーションオペレーションセットは、１または複数のアトミックオペレーションを含む、項目１から６のいずれか一項に記載のシステム。
［項目８］
前記１または複数のアトミックオペレーションは、読み取りオペレーション、修正オペレーション、および書き込みオペレーションを含む、項目７に記載のシステム。
［項目９］
前記修正オペレーションは、Ａｄｄ、Ｓｕｂｔｒａｃｔ、Ｉｎｃｒｅｍｅｎｔ、Ｄｅｃｒｅｍｅｎｔ、Ｍａｘ、Ｍｉｎ、ＡＮＤ、ＯＲ、ＸＯＲ、またはＣｏｍｐａｒｅオペレーションのうち１または複数を含む、項目８に記載のシステム。
［項目１０］
グラフィックメモリにポストシンクロナイゼーションオペレーションセットを格納する段階と、
グラフィックパイプラインへフラッシュマーカを送信する段階と、
前記フラッシュマーカが前記グラフィックパイプラインを抜け出ることに応答して前記ポストシンクロナイゼーションオペレーションセットを処理する段階と
を備える、複数のコマンドを処理する方法。
［項目１１］
前記ポストシンクロナイゼーションオペレーションセットが前記グラフィックメモリに格納された後に前記グラフィックメモリにトークンを格納する段階と、
前記トークンが前記グラフィックメモリにおいて遭遇された場合に前記ポストシンクロナイゼーションオペレーションセットの処理を中断する段階と
をさらに備える、項目１０に記載の方法。
［項目１２］
パイプ制御コマンドまたはアトミックコマンドのうち一方から前記ポストシンクロナイゼーションオペレーションセットを取得する段階をさらに備える、項目１０に記載の方法。
［項目１３］
グラフィックメモリにポストシンクロナイゼーションオペレーションセットを格納する手順と、
グラフィックパイプラインへフラッシュマーカを送信する手順と、
前記フラッシュマーカが前記グラフィックパイプラインを抜け出ることに応答して前記ポストシンクロナイゼーションオペレーションセットを処理する手順と
をコンピューティングデバイスに実行させるプログラム。
［項目１４］
前記ポストシンクロナイゼーションオペレーションセットが前記グラフィックメモリに格納された後に前記グラフィックメモリにトークンを格納する手順と、
前記トークンが前記グラフィックメモリにおいて遭遇された場合に前記ポストシンクロナイゼーションオペレーションセットの処理を中断する手順と
をコンピューティングデバイスに実行させる、項目１３に記載のプログラム。
［項目１５］
パイプ制御コマンドまたはアトミックコマンドのうち一方から前記ポストシンクロナイゼーションオペレーションセットを取得する手順をコンピューティングデバイスに実行させる、項目１３に記載のプログラム。
［項目１６］
グラフィックメモリにポストシンクロナイゼーションオペレーションセットを格納するメモリモジュールと、
グラフィックパイプラインへフラッシュマーカを送信するパイプラインモジュールと、
前記フラッシュマーカが前記グラフィックパイプラインを抜け出ることに応答して前記ポストシンクロナイゼーションオペレーションセットを処理する実行モジュールと
を備える、複数のコマンドを処理する装置。
［項目１７］
前記メモリモジュールは、前記ポストシンクロナイゼーションオペレーションセットが前記グラフィックメモリに格納された後に前記グラフィックメモリにトークンを格納し、前記実行モジュールは、前記トークンが前記グラフィックメモリにおいて遭遇された場合に前記ポストシンクロナイゼーションオペレーションセットの処理を中断する、項目１６に記載の装置。
［項目１８］
パイプ制御コマンドまたはアトミックコマンドのうち一方から前記ポストシンクロナイゼーションオペレーションセットを取得するグラフィックハードウェアフロントエンドをさらに備える、項目１６に記載の装置。
［項目１９］
前記アトミックコマンドは、インラインデータとして前記ポストシンクロナイゼーションオペレーションセットを含むか、若しくは１または複数の事前にロードされたインプリシットレジスタから間接的なデータとして前記ポストシンクロナイゼーションオペレーションセットを受け付ける、項目１８に記載の装置。
［項目２０］
前記アトミックコマンドはリターンビットを含み、前記リターンビットが設定されている場合、前記グラフィックハードウェアフロントエンドは、前記アトミックコマンドの発信者へ読み取られたデータを戻すか、または読み取られたデータをインプリシットレジスタへ格納する、項目１８に記載の装置。
［項目２１］
特別なビット表示を有する１または複数のコマンドを前記ポストシンクロナイゼーションオペレーションセットであるものとして見なすコマンドストリーマモジュールをさらに備える、項目１６に記載の装置。
［項目２２］
前記ポストシンクロナイゼーションオペレーションセットは、１または複数のアトミックオペレーションを含む、項目１６から２１のいずれか一項に記載の装置。
［項目２３］
前記１または複数のアトミックオペレーションは、読み取りオペレーション、修正オペレーション、および書き込みオペレーションを含む、項目２２に記載の装置。
［項目２４］
前記修正オペレーションは、Ａｄｄ、Ｓｕｂｔｒａｃｔ、Ｉｎｃｒｅｍｅｎｔ、Ｄｅｃｒｅｍｅｎｔ、Ｍａｘ、Ｍｉｎ、ＡＮＤ、ＯＲ、ＸＯＲ、またはＣｏｍｐａｒｅオペレーションのうち１または複数を含む、項目２３に記載の装置。
［項目２５］
項目１０から１２のいずれか一項に記載の方法を実行するための手段を備える、コマンドを処理する装置。
【図１】
0005955915.tif 000005
【図２】
0005955915.tif 000006
【図３】
0005955915.tif 000007
【図４】
0005955915.tif 000008
【図５Ａ】
0005955915.tif 000009
【図５Ｂ】
0005955915.tif 000010
【図５Ｃ】
0005955915.tif 000011
【図６】
0005955915.tif 000012
【図７】
0005955915.tif 000013
【図８】
0005955915.tif 000014
【図９】
0005955915.tif 000015