ATI Multi-Threading Patent – for WGF2.0 and Xenon Graphics?

by syoyo

beyond3d より。たまには特許ネタでも。

ATI Multi-Threading Patent – for WGF2.0 and Xenon Graphics?
http://www.beyond3d.com/#news21716
http://www.beyond3d.com/forum/viewtopic.php?topic=21716&forum=9

Multi-thread graphic processing system
http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&u=%2Fnetahtml%2FPTO%2Fsearch-adv.html&r=1&f=G&l=50&d=PG01&p=1&S1=20050068325&OS=20050068325&RS=20050068325

WGF(Windows Graphics Foundation) で採用されると噂される、
統一シェーダ(unified shader)アーキティクチャを実現するためのアークティクチャの
基礎となりそうな枠組みに使える仕組みらしいです。

特許全文は読んでいませんが、図などを見る限りでは、以下のしくみのようです。

フラグメントシェーダのリクエストをためておくスレッドである first reservation station と、
頂点シェーダのリクエストをためておくスレッドである second reservation station の 2 つの
スレッドがあり、各リクエスト(インストラクション?)処理はアービター(arbiter, 調停者、つまりは振り分け器)
に投げ込まれます。

アービターは、テクスチャを引く操作か、それ以外の演算操作かで、リクエストコマンドを
graphics processing engine(texture, テクスチャ処理向け) と arithmetic logic unit(ALU) に
振り分けるようです。

テクスチャを引くのが別になっているのは、現在の GPU でもそうですが、通常テクスチャを引く処理は
回路規模が大きいため ALU とは別に考えた方がよいのと、レイテンシが高いためでしょう。

それぞれの処理が終了すると、結果はまた reservation station に戻されます。

というわけで、言われてみれば、なんとなーく頂点シェーダもフラグメントシェーダも
これを使えば同じシェーダの枠組みで処理できそうな感じです。

あとは、これが実際のチップに載るとなると、
同期処理と、ロードバランス機構をどう解決するのかと、
パフォーマンスとの兼ね合いでしょうか。

ちなみに、特許も論文の世界と同じくなかなかいろいろ各社
競っていて、いろいろなネタの宝庫であります。

NV は論文みたいにシェーダとかよりレンダリング技術よりの特許が多いですが、
ATI はメモリまわりとかデバイス関連が多い感じがします。

また、3D GPU 関連は結構 Sun がいろいろな特許を提案していたりします。

さらにいうと、企業の研究機関(Microsoft Research など)では、
まず特許提案の申請をしてからでないと論文を出せないようになっていたりします。

特許のよいところは、NV や ATI の特許などですと、論文では出てこないような、
よりハードウェア内部に近い情報が見れたりします。
(特許開示は申請されてから 1 年半後くらいからなので、
あまり最新のネタは見れないですが)

もちろん、必ずしも実際の製品にそれらが使われているとは限りません。

たとえば、NV から縦の短冊状にポリゴンをラスタライズする仕組みが特許として
提案されていたりしますが、現在の GeForce ではより単純な z 字順になっています。

Advertisements