(57)【特許請求の範囲】
【請求項１】
グラフィックス処理ユニットと、
ポリゴンがクリッピングされるべき複数のクリッピング平面の数を判断するモジュールと、
単一平面クリッピング専用の第１のパイプラインと、
マルチ平面クリッピング専用の第２のパイプラインと、を備え、
前記第２のパイプラインは一度に１つのポリゴンを処理可能であり、前記第１のパイプラインは一度に複数のポリゴンを処理可能である、
少なくとも１つのグラフィックスポリゴンを処理するためのシステム。
【請求項２】
前記ポリゴンの複数の頂点の複数の座標をロードし、
前記複数の頂点の前記複数の座標に複数の重心座標値を割り当てる、
前記第１のパイプラインに関連付けられたモジュールをさらに備える、請求項１に記載のシステム。
【請求項３】
単一のクリッピング平面から前記複数の頂点のそれぞれへの距離を計算する、前記第１のパイプラインに関連付けられたモジュールをさらに備える、請求項２に記載のシステム。
【請求項４】
ａｌｐｈａ及びｂｅｔａの距離比を計算する前記第１のパイプラインに関連付けられたモジュールをさらに備えるシステムであって、
ａｌｐｈａ＝Ｄｏｕｔ／（Ｄｉｎ−Ｄｏｕｔ）であり、
上式において、Ｄｏｕｔは１つの頂点からクリッピング平面への距離であり、Ｄｉｎは隣接する頂点から前記クリッピング平面への距離であり、
ｂｅｔａ＝１−ａｌｐｈａである、
請求項３に記載のシステム。
【請求項５】
判断されるクリッピング平面及び前記ポリゴンの交差部に位置する複数の点へ新たな複数の重心座標値を割り当てる、前記第１のパイプラインに関連付けられたモジュールをさらに備える請求項１〜４のいずれか一項に記載のシステム。
【請求項６】
判断される前記クリッピング平面及び前記ポリゴンの交差部に位置する複数の点に新たな複数の値を割り当てる、前記第１のパイプラインに関連付けられたモジュールをさらに備える請求項５に記載のシステム。
【請求項７】
ポリゴンがクリッピングされるべき複数のクリッピング平面の数を判断する段階と、
単一のクリッピング平面のみが存在する場合、前記ポリゴンを単一平面クリッピングに専用の第１のパイプラインに投入する段階と、
１より多くのクリッピング平面が存在する場合、前記ポリゴンをマルチ平面クリッピング専用の第２のパイプラインに投入する段階と、
を備え、
前記第２のパイプラインは一度に１つのポリゴンを処理可能であり、前記第１のパイプラインは一度に複数のポリゴンを処理可能である、少なくとも１つのグラフィックスポリゴンを処理する方法。
【請求項８】
前記ポリゴンの複数の頂点の複数の座標をロードする段階と、前記複数の頂点の前記複数の座標に複数の重心座標値を割り当てる段階と、をさらに備える請求項７に記載の方法。
【請求項９】
前記単一のクリッピング平面から前記複数の頂点のそれぞれへの距離を計算する段階をさらに備える、請求項８に記載の方法。
【請求項１０】
ａｌｐｈａ及びｂｅｔａの距離比を計算する段階をさらに備え、
ａｌｐｈａ＝Ｄｏｕｔ／（Ｄｉｎ−Ｄｏｕｔ）であり、
上式において、Ｄｏｕｔは１つの頂点からクリッピング平面への距離であり、Ｄｉｎは隣接する頂点から前記クリッピング平面への距離であり、
ｂｅｔａ＝１−ａｌｐｈａである、
請求項９に記載の方法。
【請求項１１】
隣接する複数の頂点の間の距離を正規化する段階をさらに備える、請求項１０に記載の方法。
【請求項１２】
判断されるクリッピング平面及び前記ポリゴンの交差部に位置する複数の点に新たな複数の重心座標値を割り当てる段階をさらに備える、請求項７〜１１のいずれか一項に記載の方法。
【請求項１３】
判断されるクリッピング平面及び前記ポリゴンの交差部に位置する複数の点に新たな複数の値を割り当てる段階をさらに備える、請求項７〜１１のいずれか一項に記載の方法。
【請求項１４】
前記ポリゴンは三角形である、請求項７〜１１のいずれか一項に記載の方法。
【請求項１５】
ポリゴンがクリッピングされるべき複数のクリッピング平面の数を判断するモジュールと、
単一平面クリッピング専用の第１のパイプラインと、
マルチ平面クリッピング専用の第２のパイプラインと、
を備え、
前記第２のパイプラインは一度に１つのポリゴンを処理可能であり、前記第１のパイプラインは一度に複数のポリゴンを処理可能である、少なくとも１つのグラフィックスポリゴンを処理する装置。
【請求項１６】
前記ポリゴンの複数の頂点の複数の座標をロードし、
前記複数の頂点の前記複数の座標に複数の重心座標値を割り当てる、モジュールをさらに備える、請求項１５に記載の装置。
【請求項１７】
単一のクリッピング平面から前記複数の頂点のそれぞれへの距離を計算するモジュールをさらに備える、請求項１６に記載の装置。
【請求項１８】
ａｌｐｈａ及びｂｅｔａの距離比を計算するモジュールをさらに備える装置であって、
ａｌｐｈａ＝Ｄｏｕｔ／（Ｄｉｎ−Ｄｏｕｔ）であり、
上式において、Ｄｏｕｔは１つの頂点からクリッピング平面への距離であり、Ｄｉｎは隣接する頂点から前記クリッピング平面への距離であり、
ｂｅｔａ＝１−ａｌｐｈａである、
請求項１５〜１７のいずれか一項に記載の装置。
【請求項１９】
隣接する複数の頂点の間の距離を正規化するモジュールをさらに備える、請求項１５〜１７のいずれか一項に記載の装置。
【請求項２０】
判断される前記クリッピング平面及び前記ポリゴンの交差部に位置する複数の点に新たな複数の重心座標値を割り当てるモジュールをさらに備える、請求項１８に記載の装置。
【請求項２１】
判断される前記クリッピング平面及び前記ポリゴンの前記交差部に位置する複数の点に、新たな複数の値を割り当てるモジュールをさらに備える、請求項２０に記載の装置。
【請求項２２】
前記ポリゴンは三角形である、請求項１６に記載の装置。
【請求項２３】
複数の前記モジュールは、両方のパイプラインに利用可能である、請求項１５に記載の装置。
【発明の詳細な説明】
【背景技術】
【０００１】
［関連出願の相互参照］  本出願は、２０１４年６月２７日に出願された米国非仮特許出願第１４／３１６，８９５号に対する優先権の利益を主張する。
【０００２】
グラフィックス処理、より具体的には３次元のグラフィックス処理（３Ｄレンダリング）は、しばしば複数の三角形のような複数のポリゴンに関して実現され、これは場合によっては複数のプリミティブと称される。ゲームに関連するもののような、様々なデバイスにおいて、グラフィックス性能に対する要求が増大するにつれて、そのような複数のプリミティブが処理される速度は、グラフィックス処理ユニット（ＧＰＵ）における複数の集積及びハンドヘルド型グラフィックスコアのような様々な状況における限定要因となり得る。
【０００３】
複数の三角形のような複数のプリミティブの処理を速度向上するための一つの技術として、それらが処理されることが必要な場合にのみそれらを処理することがある。三角形が、しばしば６面の「視錐台」により定義される、所与の状況に対する視野の完全に外に位置する場合、何らのさらなる処理なしに加えられてよい。しかし、三角形が対象の境界と重なり合う場合、それは、視錐台を形成する複数の平面のうち１又は複数のものによりカットされてよい。この際、「クリッピング」として知られるアプローチにおいて、視錐台の外に位置する三角形の一部がさらなる処理から除外され得る。
【図面の簡単な説明】
【０００４】
当業者が以下の明細書及び添付の特許請求の範囲を読むことにより、並びに以下の図面を参照することにより、複数の実施形態の様々な利点が明らかとなるであろう。
【図１】複数の三角形の例を含む視錐台の例である。
【図２】重心座標を有する三角形の例である。
【図３】複数のクリッピング平面によりカットされた三角形の例である。
【図４】単一クリッピング平面によりカットされた図３の三角形の例である。
【図５】実施形態によるクリッピングされた三角形の面に関連する特定の複数の変数の複数の例を図示する。
【図６Ａ】単一クリッピング平面によりカットされている三角形の例であり、三角形の頂点が外部に位置し、底辺が内部に位置している。
【図６Ｂ】単一クリッピング平面によりカットされている三角形の例であり、三角形の頂点が内部に位置しており、三角形の底辺が外部に位置している。
【図７】実施形態による複数のクリッピングオペレーションを処理する方法の例のフローチャートである。
【図８】実施形態による複数のクリッピングオペレーションを処理するハードウェアの例である。
【図９】実施形態によるシステムの例のブロック図である。
【発明を実施するための形態】
【０００５】
図１は、先端１２の視点から考察された視錐台１０を図示する。視錐台１０は、近平面１３、遠平面１４、上平面１５、底平面１６、右平面１７、及び左平面１８を有する。視錐台１０に関連して、例示の三角形１９、２０及び２１も示される。複数の３Ｄグラフィックスパイプラインにおけるクリッピングは、視錐台の外に位置する、シーンの複数の部分を破棄すべく実行されてよい。視錐台の完全に外に位置する三角形に複数のグラフィックスオペレーションを実行することは無駄となり得るので、そのような複数のオブジェクト（例えば、三角形１９）は、「自明に拒絶される」、即ち、さらなる処理について拒絶されるものと考えられる。一方、三角形２０のように視体積の完全に内部に含まれる複数のオブジェクトは、処理され、これらはさらなる処理のためにパイプラインに送信されてよく、又は、換言すれば、自明に受け入れ（ＴＡ）られる。ここで重要となるのは、視錐台の面が交差する、視錐台内に複数の頂点を有する三角形２１のような複数のオブジェクトであり、その結果、オブジェクトの複数の部分が視錐台内に位置し、他の複数の部分が、視錐台の外に位置するものである。図１の三角形２１の場合において、錐台１０の右平面１７は、クリッピング平面となり、三角形２１を内側ポリゴンの部分２２−２３−２４−２５（これはそれ自体が、さらに複数の三角形２２−２３−２４及び２４−２５−２２へと分割されてよい）へ、及び外側又は外部部分２４−２５−２６へと分割する。そのような三角形は、クリッピング平面における新たな複数の頂点を有する新たな三角形を生成してクリッピングされてよい。右平面１７に関するクリッピングの図は、ここで示されるように、図示の明確性を目的とする。他の面１３、１４、１５、１６及び１８のいずれについても、（右平面１７を含んで）単独であっても、又は互いの組み合わせのいずれであっても、所与の三角形上で複数のクリッピング平面となってよい。
【０００６】
複数のクリッピングオペレーションは、サイクル時間、並びにレイテンシ、スループット、及び電力使用のようなコンピュータの使用の他の複数のベンチマークに関してコストがかかり得、グラフィックスサブシステムの性能を実質的に低下させ得る。
【０００７】
６つもの視錐台クリッピング平面が、一般的なポリゴンをインターセプトし得る一方、現実の世界の複数の応用における複数のクリッピング平面の分布は、非常に不均一であり得、実際、単一クリッピング平面の場合へと大きく偏向されることが判断されている。クリッピングが生じる大多数の場合においては、単一クリッピング平面のみが関係する。
【０００８】
他の複数の種類のポリゴンがグラフィックスにおいて使用可能であるが、これらは、三角形プリミティブ形式に概して分解されてよく、従って、以下の複数の例は、複数の三角形に関して示される。しかしながら、複数の実施形態は、複数の長方形、複数の五角形、複数の六角形等のような、他の複数のポリゴンを使用することが可能である。
【０００９】
図２は、色値（例えば、赤、緑及び青の強度）、透明度、テクスチャ、及び位置のような様々な属性を含み得る複数の頂点Ａ、Ｂ、及びＣを有する例示の三角形３０を示す。ここで説明される複数の実施形態において、これらの複数の値は、重心座標形式で表現されてよい。三角形３０の場合において、それぞれの頂点は、上記のように、複数の色値、テクスチャ、複数の強度、又は何らかの対象の他の属性を示し得る複数の属性ｂ０、ｂ１、及びｂ２を有する。より少ない、又はより多いそのような複数の属性が存在し得るが、以下の複数の例において、３つの属性（ｂ０、ｂ１、及びｂ２）が例示の目的で示される。
【００１０】
図３は、３つのクリッピング平面３６、３７、及び３８でカットされて、外側部分３９及び内側部分４１を生成した後の三角形３０を示す。任意の数の平面で三角形をクリッピングすることは、除外される外側部分３９と内側部分４１との間の境界を形成する複数の凸ポリゴン、ここでは、Ｂ−Ｇ−Ｈ−Ｉ−Ｊ−Ｃをもたらすであろうことに留意されたい。上記のように、視錐台の外に位置し、従って、さらに処理される必要がない（即ち、「クリッピングされる」）という意味で、外部又は外側領域は除外され、他方、含まれる内側部分４１は一般的にさらなるグラフィックス処理を必要とする。ポリゴンＢ−Ｇ−Ｈ−Ｉ−Ｊ−Ｃは、複数の三角形Ｂ−Ｇ−Ｈ、Ｂ−Ｈ−Ｉ、Ｂ−Ｉ−Ｊ及びＢ−Ｊ−Ｃに、又は処理が始まったものに対し４つの三角形に分解され得る。重心座標で最初はちょうど３つの頂点が存在し、これらが知られていたのに、ここで６つの頂点が存在し、このうち４つが計算されなければならない（点Ｂ及びＣの重心座標は変更されない）ことにさらに留意されたい。これは計算上時間を消費するタスクであり得る。
【００１１】
図４は、三角形３０が単一クリッピング平面４３によりインターセプトされている、より単純な場合を示す。この場合において、領域４５は除外され、領域４７が含まれる。複数の領域の間の境界は、クリッピング平面４３のラインであり、これは、含まれる内側の複数のポリゴンＢ−Ｄ−Ｅ−Ｃを規定する。このポリゴンは、２つの三角形：Ｂ−Ｄ−Ｅ及びＢ−Ｅ−Ｃ（又はＢ−Ｄ−Ｃ及びＤ−Ｅ−Ｃ）に分解され得る。この単一クリッピング平面の場合において、システムは、図面において点Ｄ及び点Ｅで表され、単一クリッピング平面４３が三角形をインターセプトする複数の点に対する複数の重心座標の値を見出し得る。
【００１２】
どんなにクリッピング平面が多くとも、クリッピング平面が三角形をインターセプトする三角形のそれぞれの端部に対して、交差の点が存在し、その点に対する複数の重心座標値が計算され得る。これは、クリッピング平面への距離が、端部に沿って線形形式で変化するように、端部の２つの頂点のクリッピング距離を使用して行われてよい。そのようなアプローチは、図５に関して示されており、これは、クリッピング平面５０によりインターセプトされている例示の端部Ａ−Ｂを示す。図示される例において、頂点Ａは、視錐台の外に位置付けられる外側の点であり、頂点Ｂは、視錐台の内部に位置付けられる内側の点である。以下の解析は、それぞれを順序通りに行うことにより、単一クリッピング平面にも、同様に任意の多くのクリッピング平面にも適用され得る点において一般的である。まず、多数の変数が定義される。
Ｄｏｕｔ：頂点Ａからクリッピング平面５０への距離。
Ｄｉｎ：頂点Ｂからクリッピング平面５０への距離。
Ｄ：クリッピング平面５０によりインターセプトされる位置でのＡ−Ｂに沿った点。
さらに、この例において、Ａ−Ｂに沿った距離は、計算上の便利のために１に正規化される。
Ｄｉｓｔ＝Ｄｉｎ＊ａｌｐｈａ＋Ｄｏｕｔ＊（１−ａｌｐｈａ）
図５において、Ｄｉｓｔは、Ａ−Ｂに沿って位置付けられる任意の点Ｅからクリッピング平面５０への距離として示される。Ｄｉｓｔ＝０（これは、図面上は、点Ｅを点Ｄへと移動することに対応する）に設定し、ａｌｐｈａについて解くと、クリッピング平面でのａｌｐｈａ、ａｌｐｈａ＝−Ｄｏｕｔ／（Ｄｉｎ−Ｄｏｕｔ）又はａｌｐｈａ＝Ｄｏｕｔ／（Ｄｏｕｔ−Ｄｉｎ）の値をもたらす。（Ｄｉｎ及びＤｏｕｔは、複数の符号付きの大きさに関連する複数の距離であってよいことに留意されたい。従って、Ｄｉｎが正であれば、Ｄｏｕｔは負であってよく、ＤｉｎはＤｏｕｔと等しくないであろうし、その結果、ゼロで除算されることは排除されている。）ｂｅｔａが１−ａｌｐｈａと等しいものとして定義されるものとしよう。これにより、ａ＊ｘ＋ｂ＊ｙの形式の複数の数式を減らす。
ｂｅｔａ＝１−ａｌｐｈａ＝１−（Ｄｏｕｔ／（Ｄｏｕｔ−Ｄｉｎ））＝（（Ｄｏｕｔ−Ｄｉｎ）−Ｄｏｕｔ）／（Ｄｏｕｔ−Ｄｉｎ）
ｂｅｔａ＝−Ｄｉｎ／（Ｄｏｕｔ−Ｄｉｎ）
【００１３】
一旦ａｌｐｈａ及びｂｅｔａがクリッピング端部から計算されると、残りの複数の平面距離及び重心座標項が、クリッピング平面及び端部の交差部の点で生じる新たな頂点に対して補間される。
ａｌｐｈａ＝Ｄ（Ｂ）／（Ｄ（Ｂ）−Ｄ（Ａ））  （式１）
ｂｅｔａ＝−Ｄ（Ａ）／（Ｄ（Ｂ）−Ｄ（Ａ））  （式２）
ｂ０（Ｄ）＝ｂ０（Ａ）＊ａｌｐｈａ＋ｂ０（Ｂ）＊ｂｅｔａ  （式３）
ｂ１（Ｄ）＝ｂ１（Ａ）＊ａｌｐｈａ＋ｂ１（Ｂ）＊ｂｅｔａ  （式４）
ｂ２（Ｄ）＝ｂ２（Ａ）＊ａｌｐｈａ＋ｂ２（Ｂ）＊ｂｅｔａ  （式５）
【００１４】
最終的な複数の重心座標が全ての新たな複数の頂点に対して計算され、クリッピングオペレーションの最後に、新たな複数の位置及び属性が以下のように計算され得る：
Ｐ（Ｄ）＝Ｖ（Ａ）＊ｂ０（Ｄ）＋Ｖ（Ｂ）＊ｂ１（Ｄ）＋Ｖ（Ｃ）＊ｂ２（Ｄ）  （式６）
式中、Ｖ（Ａ）、Ｖ（Ｂ）、及びＶ（Ｃ）は、それぞれ頂点Ａ、Ｂ、及びＣにおける元の頂点の複数の属性値を表し、Ｐ（Ｄ）は新たな頂点Ｄにおける属性（例えば、色、テクスチャ）を表し、ｂ０（Ｄ）、ｂ１（Ｄ）、及びｂ２（Ｄ）は、新たな頂点Ｄにおいて計算される複数の重心座標値である。
【００１５】
単一平面クリッピングに対して、単一平面でクリッピングする場合、２つの可能な結果が存在するという事実を利用してよい。図６Ａ及び図６Ｂはこれらの２つのトポロジを示す。それぞれのトポロジは、三角形をインターセプトする単一クリッピング平面５２を説明する。図６Ａのトポロジにおいて、三角形は、その頂点Ｂをクリッピング平面５２の外側に有し、図６Ｂのトポロジにおいて、頂点Ｂは、クリッピング平面５２の内側に位置付けられる。
【００１６】
１つのクリッピング平面のみが存在する場合において、クリッピング及び初期の複数の重心座標値の計算のために前述の式１−６を使用してよく、新たな複数の重心座標は、ａｌｐｈａ及びｂｅｔａの単純な組み合わせである。
【００１７】
この例において、図２の三角形に対する複数の頂点位置について与えられる初期の複数の重心座標値が使用されてよく、以下をもたらす：
ｂ０（Ａ）＝１，ｂ１（Ａ）＝０，ｂ２（Ａ）＝０
ｂ０（Ｂ）＝０，ｂ１（Ｂ）＝０、ｂ２（Ｂ）＝１
ｂ０（Ｃ）＝０，ｂ１（Ｃ）＝１，ｂ２（Ｃ）＝０
初期の複数の重心座標値を式（３）、（４）、及び（５）に代入することにより、単一クリッピング平面の場合について、新たな点Ｄに対する複数の重心座標は、ここで以下のように評価されてよい。
ｂ０（Ｄ）＝１＊ａｌｐｈａ＋０＊ｂｅｔａ＝ａｌｐｈａ  （式７）
ｂ１（Ｄ）＝０＊ａｌｐｈａ＋０＊ｂｅｔａ＝０  （式８）
ｂ２（Ｄ）＝０＋ｂｅｔａ＝ｂｅｔａ  （式９）
点Ｅについての複数の重心座標値は、同様に評価され得る。
【００１８】
単一平面クリッピングオペレーションに対する複数の計算は、マルチ平面クリッピングに対するものより計算上より少ない計算が伴われることは明らかである。従って、オペレーションは、比較的より少ないプロセッサ及びメモリリソースを用いて実行され得る。
【００１９】
ここで図７を検討すると、複数の単一平面クリッピングオペレーション及び複数のマルチ平面クリッピングのオペレーションの両方を処理する方法の一例のフローチャートが示される。方法は、例えば、特定用途向け集積回路（ＡＳＩＣ）、相補型金属酸化物半導体（ＣＭＯＳ）、若しくはトランジスタ−トランジスタロジック（ＴＴＬ）技術、又はそれらの任意の組み合わせのような回路技術を使用する機能固定型ロジックハードウェアにおいて実装されてよい。
【００２０】
図示されるブロック６２において、複数のクリッピングオペレーションを実行する複数のクリッピング平面と共に、所与の入力三角形の複数の頂点が入力される。示される条件付きブロック６４は、複数のクリッピング平面の数をテストする。単一クリッピング平面が存在する場合、制御は、フローチャートの左半分に渡り、他方１より多くのクリッピング平面が存在する場合、制御は、フローチャートの右半分に移動する。まず考察されるのは、フローチャートの左半分により処理される単一クリッピング平面の場合である。
【００２１】
図示されるブロック６６において、三角形の複数の頂点は、初期化及びリスト化され、複数の重心座標項が同様に初期化される（即ち、０又は１に正規化される）。そうして、図示されるブロック６８（例えば"ＬＯＡＤ"ブロック）において、１つのクリッピング平面からの複数の頂点の距離は、計算及びストアされる。ブロック７０において、内−外、外−内距離比、即ち、上で検討されたａｌｐｈａ及びｂｅｔａは、（例えば、式７、８及び９により）計算される。次に、図示されるブロック７２において、適切な４頂点又は３頂点出力トポロジは、入力トポロジに応じて選択される。図示されるブロック７４において、このトポロジの全ての頂点に対して、（式７、８及び９に関して検討されるように）新たなクリッピング位置における複数の重心座標値が計算され、ブロック１０４において、クリッピングオペレーションからもたらされる新たな複数の頂点についての対象の複数の変数値が、（例えば、上の式６の適用を通じて）利用可能である。
【００２２】
次に考察されるのは、マルチクリッピング平面が存在する場合である。上記のように、クリッピングが扱われなければならない大多数の場合、１つのクリッピング平面のみが存在するが、マルチクリッピング平面が考慮されなければならない場合がなお存在するであろう。これについての方法の実施形態は、フローチャートの右半分に提示される。図示されるブロック８０において、三角形の複数の頂点は、初期化及びリスト化され、複数の重心座標項も同様に初期化される。それから、ロードブロックである、図示されるブロック８２において、考慮中の特定のクリッピング平面から複数の頂点への距離が計算され、ストアされる。ブロック８４において、全てのクリッピング平面が前述の複数の段階に関して検討されているかどうかが判断され得、結果が否定的な場合、制御は、前述のブロックにループバックし、もう一度、考慮中の特定のクリッピング平面からの複数の頂点の距離が計算され、ストアされる。方法のこのフェーズが全てのクリッピング平面に関して完了された場合、ブロック８６において、特定の平面に関してクリッピングについての複数の段階が開始する。
【００２３】
図示されるブロック８８において、所与の三角形の複数の頂点の全てが視錐台の外に位置するかどうかが判断され、そうである場合には、複数の三角形は、加えられ（即ち、自明に除外され）、制御はブロック１０４に渡る。複数の頂点の全てが外にない場合、方法は、ブロック９０において、複数の頂点の全てが、視錐台の内部（即ち内側）にあるかどうかを判断する。そうである場合には、この三角形に対して行われるべき実際のクリッピングが存在せず、制御は、考慮されるべき次の平面の選択のためにブロック８６に渡る。全ての頂点が視錐台の内部にない場合は、ブロック９２において、内−外、外−内距離比、即ち、上で検討されたようにａｌｐｈａ及びｂｅｔａが計算され、ブロック９４において、方法は、クリッピング平面によりインターセプトされている三角形の複数の端部に沿った複数の点に対する、新たな頂点の重心座標距離及び他の複数の座標を補間する。
【００２４】
ブロック９６において、複数の平面の全てがそれらに対しクリッピングされているかどうかが判断され、結果が否定的な場合、制御は、図示されるブロック９４に再度渡る。全てが考慮された場合、複数の新しい頂点に対する複数のブロック９８フラグが更新され得、計算され得る。複数のフラグは、クリッピングされる複数の平面に関して複数の頂点のトポロジ（即ち、内対外）を示すべく使用されてよい。図示されるブロック１００において、方法は、複数の平面の全てが考慮されているかどうかを判断し、結果が否定的な場合、制御は、ブロック８６にループバックする。一方で、全クリッピング平面が考慮されている場合、ブロック１０２において、新たな複数の頂点位置、値、及び重心座標項が、生成された全ての新たな複数の頂点に対して計算されてよく、ここで、計算される複数の位置、値、及び項は、図示されるブロック１０４において利用可能となる。
【００２５】
図８は、それにより方法の実施形態が実施され得る実装ハードウェア１２０の例を示す。大きく見ると、例示された実施形態は、図７に提示されるフローチャートの２つの側に概して対応する２つのパイプラインを提示する。ここで、パイプライン１６０は、図７の左側に対応し、パイプライン１３０は、図７の右半分に概して対応する。ジオメトリ処理を加速すべく実装ハードウェア１２０を使用することで、ジオメトリサブシステムの性能を、特に本明細書で説明される単一平面クリッピング技術に関連して使用される場合に、改善し得る。
【００２６】
三角形１２２は、デコーダ１２４に到達してよく、デコーダ１２４は、この三角形が単一平面クリッピングを対象とするか、又は多数の平面によるクリッピングを対象とするかをデコーダ１２４に通知する単一クリッピング制御シグナル１２６により統制される。図の反対の終端部において、これと同一の制御シグナル１２６が、出力を設定すべくマルチプレクサ１２５により使用されてよい。
【００２７】
マルチクリッピング平面が存在することが判断されている場合がまず考慮される。この実装において、単純なＡ＊Ｘ＋Ｂ＊Ｙの種類の複数の線形オペレーションを実装し得る、多数のＡＬＵリソース１４４、１４６及び１４８（より多く、又はより少なく存在してもよい）、そして同様に分割部ブロック１５０、並びに、クリッピングオペレーションの間に生成される入力、出力、及び複数の一時的な頂点をストアし得る、レジスタファイル１５２が存在する。この実装はまた、これらのリソースにわたってマルチクリッピングオペレーションをスケジューリングすべく制御ブロック１３２を包含する。この制御ブロック１３２は、それぞれのモジュール、すなわち、ＩＮＩＴモジュール１３４、ＬＯＡＤモジュール１３５、ＣＡＬＣモジュール１３６、ＣＬＩＰモジュール１４０、及びＯＵＴモジュール１４２を通じて、５つのフェーズにわたって動作してよい。ＩＮＩＴフェーズにおいて、複数の頂点は、レジスタファイルへとロードされ、頂点のリスト及び複数の重心座標値は、複数の頂点に割り当てられる。図示されるＬＯＡＤフェーズにおいて、ＡＬＵリソースは、選択された平面からの複数の頂点の距離を計算すべく使用され、この処理は、全ての有効クリッピング平面に対し反復される。そうして、計算された複数の距離は、複数の平面のうちどれがクリッピングされることが必要であるかを知るべく検証されてよい。選択されたクリッピング平面に対するＣＡＬＣフェーズにおいて、示されるハードウェアは、内−外及び外−内距離比（例えば、式１及び式２によれば、ａｌｐｈａ、ｂｅｔａ）を計算すべく、複数のＡＬＵリソース及び分割部ブロックを使用する。
【００２８】
図示されるＣＬＩＰは、式３、４及び５について提供されるように、新たなクリッピングされる位置における重心座標値を評価する。この後に、別の平面がクリッピングされることがなお必要かどうかが判断されてよい。
【００２９】
前述の処理は、クリッピングされるべき残りの平面が存在しなくなるまで反復的に繰り返されてよい。ＯＵＴフェーズにおいて、新たな頂点の複数の重心座標値の全ては、複数のレジスタファイルから読み取られてよい。複数のＡＬＵリソースは、式６を評価することにより新たな複数の位置及び対象の他の複数の値（例えば、色、テクスチャ等）を計算すべく、再び使用される。この新たな複数の評価は、全ての新たに生成された複数の頂点に対して実行されてよい。マルチクリッピング平面オペレーションが継続している一方で、ＡＬＵのほとんど及び他の複数のリソースが、前述の複数のフェーズに従事してよく、その結果、それについての複数の最終的な出力が生成されるまでに、１つの三角形のみがパイプライン１３０において処理されるためにスケジューリングされるであろう。
【００３０】
上記のように、ほとんどの場合、単一クリッピング平面のみが存在するであろう。この場合、単一クリッピング平面オペレーションに対し最適化された個別のパイプライン１６０が採用される。マルチクリッピング平面の場合についてのパイプライン１３０と対照的に、示されるパイプライン１６０は、同一のパイプラインで多数のオブジェクトを処理可能である。単一平面クリッピングオペレーションの場合において、それぞれのＡＬＵリソースは、１つのフェーズに拘束され得、そのＡＬＵは、そのオペレーションに対してのみ使用され得、このことはそのパイプラインにおける多数の三角形の処理を許容する。例示された実施形態において、５つの三角形がパイプライン１６０において処理されてよい。このアプローチは、それぞれのＡＬＵが、複数のレーンに対するより多数の計算を含む複数のオペレーションに対して概して共有されるであろう、マルチ平面クリッピング（パイプライン１３０）の場合と対照的である。その場合において、実際的な事項として、演算上の要求は、１つの三角形のみが一度に処理され得るということがある。
【００３１】
ＳｉｎｇｌｅＰｌａｎｅ＿ＩＮＩＴモジュール１６２において、複数の頂点がロードされ、複数の重心座標値が複数の頂点に割り当てられる。ＳｉｎｇｌｅＰｌａｎｅ＿ＬＯＡＤモジュール１６４において、１つのＡＬＵリソース１４４がクリッピングされている単一平面からの複数の頂点の距離を計算すべく使用され、それゆえ、マルチクリッピング平面からの複数の距離を評価する必要がない。選択されたクリッピング平面に対するＳｉｎｇｌｅＰｌａｎｅ＿ＣＡＬＣモジュール１６６において、別のＡＬＵリソース１４６は、内−外及び外−内距離比（即ち、上で式１及び式２に関して検討されたようなａｌｐｈａ及びｂｅｔａ）を計算すべく、分割部ブロック１５０と共に使用される。ＳｉｎｇｌｅＰｌａｎｅ＿ＣＬＩＰモジュール１６８において、新たな複数の重心座標値は、上の式７，８、及び９において提示されたようなａｌｐｈａ及びｂｅｔａの値を割り当てることにより評価される。入力トポロジは、１つ又は２つの新たな複数の頂点が生成されることが必要かどうかを判断してよい。図示されたＳｉｎｇｌｅＰｌａｎｅ＿ＯＵＴモジュール１７０において、別のＡＬＵリソース（不図示）は、式６において提示されるような計算を実行することにより、最終的な位置又は他の所望の値（例えば、色、テクスチャ等）を評価すべく使用される。
【００３２】
以下の表は、単一及びマルチ平面の場合の"ｍｕｓｔ  ｃｌｉｐ"の複数のクリッピングオペレーションのスループットの例を示す：
【表１】
0006441963.tif 000002
表中：
Ｓ＝最初のセットアップ及び最終的な出力、及び全ての他のブックキーピングオペレーションに費やされる一定のサイクルの数
Ｎ＝クリッピングされる平面の数
Ｍ＝それぞれの平面に対しクリッピングに費やされるサイクル
ＳＰ＿Ｍは、単一平面クリッピングオペレーションの最悪の場合のステージのレイテンシである。  ＳＰ＿Ｍレイテンシは、概してＭよりかなり低くなり、実際にＡＬＵレイテンシに近くなるであろうことに留意されたい。
【００３３】
実質的な性能向上は、本明細書に開示される複数の実施形態の実装を通じて達成され得る。ほとんどの作業負荷に対して、本明細書に開示されるような単一平面の実装が良好な性能向上を与え得る。さらに、ＡＬＵの半分を除去することさえも、ほとんど性能に影響を与えないことがあり得る。これは、より少ないトランジスタ又はゲートが設計に使用され得、従って、全体としてのチップの領域及びコストを節約するという点で、空間の利益が存在し得ることを意味する。従って、本明細書で説明されるような単一平面ハードウェアクリッピングについて個別のパイプラインを実装することにおいて、性能及び空間の利益の両方が存在し得る。
【００３４】
図９は、実施形態によるデータ処理システム２００のブロック図である。データ処理システム２００は、１又は複数のプロセッサ２０２及び１又は複数のグラフィックスプロセッサ２０８を備え、シングルプロセッサデスクトップシステム、マルチプロセッサワークステーションシステム、又は非常に多数のプロセッサ２０２若しくは複数のプロセッサコア２０７を有するサーバシステムであってよい。本明細書で開示される複数の実施形態は、複数のグラフィックスプロセッサ２０８のうち１又は複数のものの一部であってよい。一実施形態において、データ処理システム２００は、複数のモバイル、ハンドヘルド型、又は埋め込みデバイスにおいて使用するためのシステムオンアチップ集積回路（ＳＯＣ）である。
【００３５】
データ処理システム２００の実施形態は、サーバベースのゲームプラットフォーム、ゲーム及びメディアコンソール、携帯ゲーム用コンソール、ハンドヘルド型ゲームコンソール、若しくはオンラインゲームコンソールを含むゲームコンソールを有することが出来、又はその中に組み込まれることが出来る。一実施形態において、データ処理システム２００は、携帯電話、スマートフォン、タブレットコンピューティングデバイス、又は携帯インターネットデバイスである。データ処理システム２００はまた、スマートウォッチウェアラブルデバイス、スマートアイウェアデバイス、拡張現実デバイス、又は仮想現実デバイスのようなウェアラブルデバイスを含むことが出来、結合することが出来、又はその中に統合されることが出来る。一実施形態において、データ処理システム２００は、テレビ又は１若しくは複数のプロセッサ２０２と、１又は複数のグラフィックスプロセッサ２０８により生成されるグラフィカルインタフェースとを有するセットトップボックスデバイスである。
【００３６】
１又は複数のプロセッサ２０２は、実行された場合、システム及びユーザソフトウェアのための複数のオペレーションを実行する複数の命令を処理するための１又は複数のプロセッサコア２０７をそれぞれ含む。一実施形態において、１又は複数のプロセッサコア２０７のそれぞれは、特定の命令セット２０９を処理するよう構成される。命令セット２０９は、複合命令セットコンピューティング（ＣＩＳＣ）、縮小命令セットコンピューティング（ＲＩＳＣ）、又は超長命令語（ＶＬＩＷ）を介したコンピューティングを容易にし得る。複数のプロセッサコア２０７は、他の命令セットのエミュレーションを容易にするための命令を含み得る、異なる命令セット２０９をそれぞれ処理してよい。プロセッサコア２０７はまた、デジタルシグナルプロセッサ（ＤＳＰ）のような他の複数の処理デバイスを含み得る。
【００３７】
一実施形態において、プロセッサ２０２は、キャッシュメモリ２０４を含む。アーキテクチャに応じて、プロセッサ２０２は、単一の内部キャッシュ又は複数のレベルの内部キャッシュを有することが出来る。一実施形態において、キャッシュメモリは、プロセッサ２０２の様々なコンポーネントの間で共有される。一実施形態において、プロセッサ２０２はまた、既知の複数のキャッシュコヒーレンシ技術を使用して複数のプロセッサコア２０７の間で共有され得る外部キャッシュ（例えば、レベル３（Ｌ３）キャッシュ又は最終レベルキャッシュ（ＬＬＣ））（不図示）を使用する。加えて、レジスタファイル２０６は、異なるタイプのデータをストアするための異なるタイプの複数のレジスタ（例えば、複数の整数レジスタ、浮動小数点レジスタ、ステータスレジスタ、及び命令ポインタレジスタ）を含み得るプロセッサ２０２に含まれる。幾つかのレジスタは、複数の汎用レジスタであり得、その一方で他の複数のレジスタは、プロセッサ２０２の設計に特有のものであり得る。
【００３８】
プロセッサ２０２は、プロセッサ２０２とシステム２００における他の複数のコンポーネントとの間の複数のデータシグナルを送信すべくプロセッサバス２１０に結合する。システム２００は、メモリコントローラハブ２１６及び入出力（Ｉ／Ｏ）コントローラハブ２３０を含む、例示的な「ハブ」システムアーキテクチャを使用する。メモリコントローラハブ２１６は、メモリデバイスとシステム２００の他の複数のコンポーネントとの間の通信を容易にし、その一方で、Ｉ／Ｏコントローラハブ（ＩＣＨ）２３０は、ローカルＩ／Ｏバスを介して複数のＩ／Ｏデバイスへ接続を提供する。
【００３９】
メモリデバイス２２０は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）デバイス、スタティックランダムアクセスメモリ（ＳＲＡＭ）デバイス、フラッシュメモリデバイス、又は処理メモリとして機能するための適切な性能を有する幾つかの他のメモリデバイスであることが出来る。メモリ２２０は、プロセッサ２０２が処理を実行する場合に使用するための命令２２１及びデータ２２２をストアすることが出来る。メモリコントローラハブ２１６はまた、オプショナルな外部のグラフィックスプロセッサ２１２と結合し、これは複数のグラフィック及びメディアオペレーションを実行すべく複数のプロセッサ２０２における１又は複数のグラフィックスプロセッサ１０８と通信し得る。
【００４０】
ＩＣＨ２３０は、複数の周辺機器が高速度Ｉ／Ｏバスを介してメモリ２２０及びプロセッサ２０２と接続することを可能とする。複数のＩ／Ｏ周辺機器は、オーディオコントローラ２４６、ファームウェアインタフェース２２８、無線送受信機２２６（例えば、Ｗｉ−Ｆｉ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標））、データストレージデバイス２２４（例えば、ハードディスクドライブ、フラッシュメモリ等）、及び複数のレガシ（例えば、パーソナルシステム２（ＰＳ／２））デバイスをシステムに結合するためのレガシＩ／Ｏコントローラを含む。１又は複数のユニバーサルシリアルバス（ＵＳＢ）コントローラ２４２は、キーボード及びマウス２４４の組み合わせのような複数の入力デバイスを接続する。ネットワークコントローラ２３４はまた、ＩＣＨ２３０へ結合し得る。一実施形態において、高性能ネットワークコントローラ（不図示）は、プロセッサバス２１０へ結合する。
【００４１】
本明細書で説明されるグラフィックス及び／又はビデオ処理技術は、様々なハードウェアアーキテクチャに実装され得る。例えば、グラフィックス及び／又はビデオ機能は、チップセット内に集積され得る。代替的に、ディスクリートグラフィックス及び／又はビデオプロセッサが用いられてよい。さらに別の実施形態として、グラフィックス及び／又はビデオ機能は、マルチコアプロセッサを含む汎用プロセッサにより実装され得る。さらなる実施形態において、複数の機能は、家庭用電子デバイスにおいて実装されてよい。
【００４２】
［追加の複数の留意点及び複数の例］  例１は、ポリゴンがクリッピングされるべきクリッピング平面の数を判断する段階と、単一クリッピング平面のみが存在する場合、ポリゴンを単一平面クリッピングに専用のパイプラインに投入する段階と、を備える、少なくとも１つのグラフィックスポリゴンを処理する方法を含み得る。
【００４３】
例２は、ポリゴンの複数の頂点の複数の座標をロードする段階と、複数の重心座標値を複数の頂点に割り当てる段階とをさらに備える、例１に記載の方法を含み得る。
【００４４】
例３は、単一クリッピング平面から複数の頂点のそれぞれへの距離を計算する段階をさらに備える、例２に記載の方法を含み得る。
【００４５】
例４は、ａｌｐｈａ及びｂｅｔａの距離比を計算する段階をさらに備え、ａｌｐｈａ＝Ｄｏｕｔ／（Ｄｉｎ−Ｄｏｕｔ）であり、上式において、Ｄｏｕｔは１つの頂点から前記クリッピング平面への距離であり、Ｄｉｎは隣接する頂点から前記クリッピング平面への距離であり、ｂｅｔａ＝１−ａｌｐｈａである、例３に記載の方法を含み得る。
【００４６】
例５は、隣接する複数の頂点の間の距離を正規化する段階をさらに備える、例４に記載の方法を含み得る。
【００４７】
例６は、判断されるクリッピング平面及びポリゴンの交差部に位置する複数の点に新たな複数の重心座標値を割り当てる段階をさらに備える、例１−５に記載の方法を含み得る。
【００４８】
例７は、判断されるクリッピング平面とポリゴンとの間の交差部に位置する複数の点に新たな複数の値を割り当てる段階をさらに備える、例１−５に記載の方法を含み得る。
【００４９】
例８は、ポリゴンは、三角形である、例１−５に記載の方法を含み得る。
【００５０】
例９は、１より多くのクリッピング平面が存在する場合、ポリゴンをマルチ平面クリッピング専用の第２のパイプラインに投入する段階をさらに備える、例１に記載の方法を含み得る。
【００５１】
例１０は、ポリゴンがクリッピングされるべき複数のクリッピング平面の数を判断するモジュールと、単一平面クリッピング専用のパイプラインと、を備える、少なくとも１つのグラフィックスポリゴンを処理する装置を含み得る。
【００５２】
例１１は、複数のポリゴンの複数の頂点の複数の座標をロードし、複数の重心座標値を複数の頂点の複数の座標に割り当てるためのモジュールをさらに備える、例１０に記載の装置を含み得る。
【００５３】
例１２は、単一のクリッピング平面から複数の頂点のそれぞれへの距離を計算するためのモジュールをさらに備える、例１１に記載の装置を含み得る。
【００５４】
例１３は、ａｌｐｈａ及びｂｅｔａの距離比を計算するためのモジュールをさらに備え、ａｌｐｈａ＝Ｄｏｕｔ／（Ｄｉｎ−Ｄｏｕｔ）であり、上式において、Ｄｏｕｔは１つの頂点からクリッピング平面への距離であり、Ｄｉｎは隣接する頂点からクリッピング平面への距離であり、ｂｅｔａ＝１−ａｌｐｈａである、例１０−１２に記載の装置を含み得る。
【００５５】
例１４は、隣接する複数の頂点の間の距離を正規化するためのモジュールをさらに備える、例１０−１２に記載の装置を含み得る。
【００５６】
例１５は、判断されるクリッピング平面及びポリゴンの交差部に位置する複数の点に新たな複数の重心座標値を割り当てるためのモジュールをさらに備える、例１３に記載の装置を含み得る。
【００５７】
例１６は、判断されるクリッピング平面及びポリゴンの交差部に位置する複数の点に、新たな複数の値を割り当てるモジュールをさらに備える、例１３に記載の装置を含み得る。
【００５８】
例１７は、ポリゴンが三角形である例１１の装置を含み得る。
【００５９】
例１８は、１より多くのクリッピング平面が存在する複数の場合を処理する第２のパイプラインをさらに備える、例１１に記載の装置を含み得る。
【００６０】
例１９は、複数のモジュールは、両方のパイプラインに利用可能である、例１８に記載の装置を含み得る。
【００６１】
例２０は、グラフィックス処理ユニットと、ポリゴンがクリッピングされるべきクリッピング平面の数を判断するモジュールと、単一平面クリッピング専用の第１のパイプラインと、マルチ平面クリッピング専用の第２のパイプラインと、を備える、少なくとも１つのグラフィックスポリゴンを処理するためのシステムを含み得る。
【００６２】
例２１は、ポリゴンの複数の頂点の複数の座標をロードし、複数の頂点の複数の座標に複数の重心座標値を割り当てる、第１のパイプラインに関連付けられたモジュールをさらに備える、例２０に記載のシステムを含み得る。
【００６３】
例２２は、単一クリッピング平面から複数の頂点のそれぞれへの距離を計算するための第１のパイプラインに関連付けられたモジュールをさらに備える、例２１に記載のシステムを含み得る。
【００６４】
例２３は、ａｌｐｈａ及びｂｅｔａの距離比を計算する前記第１のパイプラインに関連付けられたモジュールをさらに備え、ａｌｐｈａ＝Ｄｏｕｔ／（Ｄｉｎ−Ｄｏｕｔ）であり、上式において、Ｄｏｕｔは１つの頂点から前記クリッピング平面への距離であり、Ｄｉｎは隣接する頂点から前記クリッピング平面への距離であり、ｂｅｔａ＝１−ａｌｐｈａである、例２２に記載のシステムを含み得る。
【００６５】
例２４は、判断されるクリッピング平面及びポリゴンの交差部に位置する複数の点へ新たな複数の重心座標値を割り当てる、第１のパイプラインに関連付けられたモジュールをさらに備える例２１−２３に記載のシステムを含み得る。
【００６６】
例２５は、判断されるクリッピング平面及びポリゴンの交差部に位置する複数の点に新たな複数の値を割り当てる、第１のパイプラインに関連付けられたモジュールをさらに備える、例２４に記載のシステムを含み得る。
【００６７】
例２６は、ポリゴンがクリッピングされるべき複数のクリッピング平面の数を判断する手段と、単一平面クリッピング専用のパイプラインとを備える、少なくとも１つのグラフィックスポリゴンを処理する装置を含み得る。
【００６８】
例２７は、ポリゴンの複数の頂点の複数の座標をロードし、複数の頂点の複数の座標に複数の重心座標値を割り当てる、手段をさらに備える、例２６に記載の装置を含み得る。
【００６９】
例２８は、単一のクリッピング平面から複数の頂点のそれぞれへの距離を計算する手段をさらに備える、例２７に記載の装置を含み得る。
【００７０】
例２９は、ａｌｐｈａ及びｂｅｔａの距離比を計算する手段をさらに備え、ａｌｐｈａ＝Ｄｏｕｔ／（Ｄｉｎ−Ｄｏｕｔ）であり、上式において、Ｄｏｕｔは１つの頂点からクリッピング平面への距離であり、Ｄｉｎは隣接する頂点からクリッピング平面への距離であり、ｂｅｔａ＝１−ａｌｐｈａである、例２６−２８に記載の装置を含み得る。
【００７１】
例３０は、判断されるクリッピング平面及びポリゴンの交差部に位置する複数の点に新たな複数の重心座標値を割り当てる手段をさらに備える、例２６−２８に記載の装置を含み得る。
【００７２】
例３１は、判断されるクリッピング平面及びポリゴンの交差部に位置する複数の点に、新たな複数の値を割り当てる手段をさらに備える、例２６−２８に記載の装置を含み得る。
【００７３】
例３２は、複数の値は、色値、テクスチャ、又は強度のうち１又は複数を反映している、例３０に記載の装置を含み得る。
【００７４】
例３３は、ポリゴンは三角形である、例２６に記載の装置を含み得る。
【００７５】
例３４は、１より多くのクリッピング平面が存在する複数のケースを処理すべく、第２のパイプラインをさらに備える、例２６−２８に記載の装置を含み得る。
【００７６】
例３５は、単一クリッピング平面の場合に使用される第１のパイプラインと、１より多くのクリッピング平面の場合に使用される第２のパイプラインと、を備え、単一クリッピング平面によりクリッピングされる複数のポリゴンは、第１のパイプラインへ送信され、全ての他の複数のポリゴンは、第２のパイプラインへ送信される、グラフィックスレンダリングにおける複数のポリゴンをクリッピングするための装置を含み得る。
【００７７】
例３６は、２つのパイプラインが複数の演算ロジックユニットを共有する、例３５に記載の装置を含み得る。
【００７８】
様々な実施形態又は複数の実施形態の複数の要素は、ハードウェア要素、ソフトウェア要素、又はそれらの両方の組み合わせを用いて実装され得る。複数のハードウェア要素の複数の例には、複数のプロセッサ、マイクロプロセッサ、回路、回路要素（例えば、複数のトランジスタ、抵抗、コンデンサ、誘電子、及びその他）、集積回路、特定用途向け集積回路（ＡＳＩＣ）、プログラマブルロジックデバイス（ＰＬＤ）、デジタルシグナルプロセッサ（ＤＳＰ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ロジックゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセット、及びその他が含まれ得る。ソフトウェアの複数の例は、複数のソフトウェアコンポーネント、複数のプログラム、複数のアプリケーション、複数のコンピュータプログラム、複数のアプリケーションプログラム、複数のシステムプログラム、複数のマシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、複数のソフトウェアモジュール、複数のルーチン、複数のサブルーチン、複数の関数、複数の方法、複数のプロシージャ、複数のソフトウェアインタフェース、複数のアプリケーションプログラムインタフェース（ＡＰＩ）、複数の命令セット、コンピューティングコード、コンピュータコード、複数のコードセグメント、複数のコンピュータコードセグメント、複数の単語、複数の値、複数の記号、またはそれらの任意の組み合わせを含み得る。実施形態が複数のハードウェア要素及び／又はソフトウェア要素を用いて実装されるかどうかの判断は、所望の演算レート、複数の電力レベル、複数の耐熱性、処理サイクル量、複数の入力データレート、複数の出力データレート、複数のメモリリソース、複数のデータバス速度、及び他の設計又は性能制約のような任意の数の要因に従って変動し得る。
【００７９】
複数の実施形態は、全てのタイプの半導体集積回路（「ＩＣ」）チップと共に使用するのに適用可能である。これらのＩＣチップの例としては、限定されないが、複数のプロセッサ、コントローラ、チップセットコンポーネント、プログラマブルロジックアレイ（ＰＬＡ）、メモリチップ、ネットワークチップ、及びその他のものを含む。加えて、複数の図面の幾つかにおいて、複数のシグナル伝導ラインが複数のラインで表される。幾つかは、より多くの成分シグナルパスを示すべく異なってよく、成分シグナルパスの数を示すべく番号ラベルを有してよく、及び／又は主な情報のフロー方向を示すべく１又は複数の端部に矢印を有してよい。しかしながら、これは、限定的に解釈されるべきではない。むしろ、そのような追加された詳細は、回路のより容易な理解を促すべく、１又は複数の例示的な実施形態と関連して用いられてよい。表される任意の複数のシグナルラインは、追加的な情報を有するか否かに関わらず、複数の方向に移動し得、任意の適切なタイプのシグナルスキームで、例えば、差動対で実装されるデジタル若しくはアナログライン、光ファイバライン、及び／又はシングルエンドラインで実装され得る１又は複数のシグナルを実際に備えてよい。
【００８０】
複数の例示的な寸法／モデル／値／範囲が与えられ得るが、複数の実施形態は同一のものに限定されない。製造技術（例えば、フォトリソグラフィ）が時間の経過と共に成熟するにつれて、より小さいサイズのデバイスが製造され得ることが予期される。加えて、ＩＣチップ及び他の複数のコンポーネントへの周知の電源／接地接続は、説明及び議論の簡潔さのために、そして、複数の実施形態の特定の側面を曖昧にしないように図面内に示されたり、示されなかったりし得る。さらに、複数の配置は、複数の実施形態を不明瞭にすることを避けるべく、また、そのようなブロック図の複数の配置の実装に関する詳細が、実施形態が実装されるプラットフォームに大いに依存する、即ち、そのような詳細が十分に当業者の理解の範囲内であるべきであるという事実に鑑みて、複数の配置はブロック図の形式で示され得る。例示的な複数の実施形態を説明すべく、複数の具体的な詳細（例えば、回路）が明記されている場合、複数の実施形態がこれらの具体的な詳細を用いなくとも、あるいはそれらの変形例を用いて実施され得ることが当業者には明らかであろう。従って、説明は、限定的なものに代えて例示的なものとしてみなされるべきである。
【００８１】
具体的に別途明記されない限り、「処理」、「コンピューティング」、「計算」、「判断」、又は同様のもののような用語は、コンピューティングシステムの複数のレジスタ及び／又は複数のメモリ内の物理（例えば電子）量として表されるデータを、コンピューティングシステムの複数のメモリ、複数のレジスタ又は他のそのような情報ストレージデバイス、送信デバイス、若しくは表示デバイス内の物理量として同様に表される他のデータへと操作、並びに／又は変換する、コンピュータ若しくはコンピューティングシステム、又は類似の電子コンピューティングデバイスの動作及び／又は処理を指すことが理解され得る。複数の実施形態は、この文脈に限定されない。
【００８２】
「結合される」という用語は、本明細書において、対象の複数のコンポーネント間の直接的又は間接的な任意のタイプの関係を言及するのにも用いられてよく、電気的、機械的、流体的、光学的、電磁気的、電気機械的、又は他の複数の接続に適用されてよい。加えて、「第１の」、「第２の」等の用語は、説明を容易にすることのみを目的として本明細書で用いられ得、別途示されない限り、特定の時間的、又は時系列的な意義を有するものではない。
【００８３】
当業者は、上記の説明から、複数の実施形態の広範な技術が、様々な形式で実装され得ることを理解されよう。従って、複数の実施形態は、それらの特定の例と関連して説明されているが、その一方で、他の複数の修正形態が図面、明細書、及び以下の特許請求の範囲の検討に基づいて当業者に明らかになるので、複数の実施形態の真の範囲はそのように限定されるべきではない。
【図１】
0006441963.tif 000003
【図２】
0006441963.tif 000004
【図３】
0006441963.tif 000005
【図４】
0006441963.tif 000006
【図５】
0006441963.tif 000007
【図６Ａ】
0006441963.tif 000008
【図６Ｂ】
0006441963.tif 000009
【図７】
0006441963.tif 000010
【図８】
0006441963.tif 000011
【図９】
0006441963.tif 000012