Megérkezett a hatodik GeForce

További részletek

Vertex shader

A zöld elemek a régiek, van egy 32 bites lebegőpontos vektor egység (Vector Unit) a három térbeli koordinátához, egy hasonló egység skalárokhoz (Scalar Unit) és egy ciklusvezérlő (Branch Unit) visszacsatolással a számolóegységekhez. Újdonság a korábban tárgyalt vertex textúrázó egység (Vertex Texture Fetch).

Pixel Shader

Látható, hogy futószalagonként két shader egység (Shader Unit) van beépítve – ezt nevezi az NVIDIA szuperskalár felépítésnek –, de csak az első képes textúrát olvasni, tehát egy textúrázó van futószalagonként. Ez a megoldás hasznos, mert általában több számolási műveletre van szükség mint textúrázóra. Komolyabb fényhatások számolásánál több kört futnak az adatok a pixel shaderben, ezt a ciklusvezérlő (Branch Processor) irányítja. Első körben az első shader egység nem számol, hanem textúrából olvas, a második egység már számol. A következő körben újra lehetőség van egy textúra olvasásra az első shaderben, de igény szerint akár újabb számolásokat is végezhet. További rugalmasságot és gyorsulást biztosít a kettős kibocsátás (Dual Issue).


A régi módszer és az új

Egy pixel shader egység szintén négyelemű adatokkal (jellemzően három színadat és egy alfa-, átlátszóság érték) dolgozik. Az első hármat kezeli vektorként, az utolsót külön, szóval egyszerre két művelet (egy maximum 3 komponenses vektor és egy skalár) hajtható végre. Az első három komponensből nem kötelező mindet használni, de ilyenkor kihasználatlan marad a többi. Fények kiszámolásánál nagyon sok kételemű műveletre (korábban említett mélységi vagy színtérképek generálása) van szükség, ilyenkor a harmadik komponens lustálkodik. Ezt az üresjáratot próbálja eliminálni az új NV-hardver. Noha az NVIDIA tetszőleges csoportosíthatóságról beszél, a dokumentumokból az tűnik ki, hogy a második pixel shader egység nem 3:1 arányban van "felbontva", hanem 2:2-ben, így egyszerre két darab kéttényezős műveletet tud végrehajtani. Ezzel a módszerrel a korábbi 4 művelet (komponensenként egy) helyett akár 8 is végrehajtható pixelenként minden ciklusban. Ha egyáltalán nincs textúra-mintavételezés (pl. árnyékok számolásánál), akkor 16/2-esnek is nevezhető az NV40 architektúrája.

A pixel shader végén még van egy újdonság, mégpedig egy programozható köd egység a korábbi fix helyett, amivel rugalmasabb és élethűebb hatás érhető el.

Raszterizáló

Ez az egység végzi a shaderek utáni munkát, az antialiasingot, Z-tesztelést (csak akkor írja be a memóriába az új pixelértéket, ha az nem takarja el egy korábbi képpont), a színtesztelést és -keverést (részben átlátszó felületek összevonása), és innen kerül a kép a Frame Bufferbe. Egy crossbar kapcsolattal (Fragment Crossbar) van összekötve a shaderekkel. Ez annyit jelent, hogy ha egy árnyaló végzett a feladatával, azt jelzi a crossbar-kezelőnek és az szabad raszterművelet (ROP – Raster Operation) egységhez küldi az adatot, ha pedig nincs szabad egység, akkor várakoztat, esetleg eldönti, hogy a több várakozó adat közül melyik juthasson tovább. Az új chip durván háromszorosát kínálja az NV35 sebességének.

A cikk még nem ért véget, kérlek, lapozz!

Azóta történt

Előzmények

Hirdetés