Der VSA-100 Chip

Sonntag, 21. Januar 2007
 / von Mr. Lolman & Raff & robbitop
 

Die letzte Generation aus dem Hause 3dfx basiert noch immer auf dem originalen Voodoo-Graphics-Design aus dem Jahre 1996. Dies ist der Tatsache geschuldet, dass der eigentliche Voodoo-Nachfolger namens "Rampage" es bis dahin trotz mehrerer Respins nicht auf den Markt schaffte. Kurz gesagt waren die ungenügenden Ressourcen im Bereich Research & Development – wie für so ziemlich alles Negative bei 3dfx – dafür verantwortlich.

Moderne Features wie Environment- und Dot3-Product Bumpmapping, sowie hardwarebeschleunigte Transformation fanden ihren Weg leider nicht in den VSA-100. Das war in der Praxis für diese Generation jedoch unerheblich, da es zu der Zeit so gut wie keine Spiele gab, welche diese Features umsetzten. 3dfx ging mit dem VSA-100 einen anderen Weg und implementierte einige Ideen aus dem Rampage, welche in jedem Spiel nutzbar waren und die Bildqualität deutlich steigerten. Die Rede ist vom berühmten "T-Buffer": Gary Tarolli, Mitbegründer und Chefentwickler bei 3dfx, spendierte diesem Feature das "T" aus seinem Nachnamen.

    Dieser ermöglichte:

  • skalierbares SG-FSAA (sparse grid Full Scene Supersampling Anti-Aliasing – dazu im BQ-Teil später mehr)
  • Depth of Field (Tiefenunschärfe, um den Realismusgrad von Spielen zu erhöhen)
  • Motion Blur (Ein temporales Anti-Aliasing, welches die eigentlich erzeugte Frameraten teilt und die Ergebnisse mehrerer Bilder in einem kombiniert. Die Bildinformation in der zeitlichen Dimension steigt also pro Bild. Nicht zu verwechseln mit Motion Trail, welches nur zwischen aufeinander folgenden Frames blurrt.)
  • Soft Shadows (weiche Abstufungen bei Schatten)
  • Soft Reflections (weiche Abstufungen bei Reflektionen)

Das Transistorbudget wurde statt für Checklistfeatures sichtbar in Geschwindigkeit und Skalierbarkeit des VSA-100 investiert. Die Abkürzung "VSA" steht übrigens für Voodoo Scalable Architecture und ist Programm: Über die Skalierung der Chip-Anzahl pro Grafikkarte können alle Segmente des Grafikkartenmarkts auf einmal abdeckt werden. Das spart enorm R&D-Ressourcen, da auch nur eine GPU entwickelt und gefertigt werden muss.

Möglich wurde dies durch das Scanline-Interleave-Verfahren (SLI, nicht zu verwechseln mit nVidias Kürzel). Bei diesem wird das zu rendernde Bild in Zeilen aufgeteilt und jeder GPU ihr Anteil zum Rendern übertragen. Je mehr GPUs im SLI-Verbund zusammengesetzt werden, desto weniger Arbeit entsteht für den einzelnen VSA-100 Chip. Am Ende setzt der RAMDAC die fertig gerenderten "Zeilenkämme" der GPUs zusammen. Der Vorteil gegenüber dem heute üblichen AFR/SFR-Verfahren ist, dass weder CPU-lastiges Loadbalancing noch Vorberechnung mehrerer Bilder notwendig ist, denn alle GPUs arbeiten am selben Bild.

Im Gegensatz zu AFR (Alternate Frame Rendering) skaliert sogar der Videospeicher partiell mit. Zwar müssen Texturen redundant gehalten werden, da die GPUs keinen Zugriff auf den Texturspeicher der jeweils anderen GPUs haben (dies wäre auch nur extrem schwierig zu realisieren), allerdings fällt der benötigte Framebuffer pro GPU natürlich geringer aus, da jede ein weniger großes Bild rendern muss.

Die Skalierung der Bandbreite fällt ebenfalls exzellent aus: Jeder VSA-100 verfügt über sein eigenes Speicherinterface. Bei der Voodoo5 5500 wären dies also zwei unabhängige 128 Bit SDR-SDRAM-Interfaces. Dies ist als deutlich effektiver anzusehen als ein einzelnes 128 Bit breites DDR-SDRAM-Interface, denn auf diese Art sinkt der Bandbreitenverschnitt und es ergeben sich weniger durch Speicherzugriffe bedingte Pipelinestalls. Genau aus diesem Grund unterteilten die Grafikchip-Entwickler ATI und nVidia später auch ihre Speicherinterfaces in mehrere kleinere.

All diese Vorteile machen SLI zu einem Verfahren, welches eine unerreichte Effizienz bei der Skalierung bietet. Es war möglich und sinnvoll, bis zu 32 dieser GPUs miteinander zu koppeln, dies blieb jedoch den professionellen Militärsimulatoren der 3dfx-Tochter Quantum3D vorbehalten. Im Consumer-Markt beschränkte man sich, die Voodoo5 6000 mitgerechnet, auf einen Ausbau von vier GPUs pro Grafikboard.

Der Grund für das Aussterben dieses Verfahrens nach dem Ableben von 3dfx ist sehr einfach: Ein großer Nachteil entsteht bei der hardwarebeschleunigten Transformation. Alle GPUs in einem SLI-Setup müssten dieselbe Geometrie berechnen. Somit würde eine Skalierung der Geometrieleistung ausbleiben. Dies störte den TnL-freien VSA-100 Chip nun allerdings wenig (und vermutlich deshalb sollte der Rampage eine externe Geometrieeinheit bekommen). Weiterhin skaliert die Texturbandbreite in einem SLI-Setup nicht linear mit, da nicht zwischen benötigten und nicht benötigten Texturteilen unterschieden werden kann, lediglich ob ganze Texturen vorrätig sein müssen oder nicht. Der VSA-100 hatte allerdings offenbar genug Bandbreite pro Texel, damit dieser Nachteil nicht weiter auffiel.

Um den VSA-100 auf die Standards aus dem Jahre 2000 zu hieven, spendierte man diesem einen 32 Bit Framebuffer-Support und erweiterte die maximale Texturgröße von den altertümlichen 256x256 auf 2048x2048 Pixel – richtige HiRes-Texturen wurden nun also auch auf einer Voodoo möglich. Um die Texturbandbreite dabei jedoch nicht gleich zu überlasten und das Feature damit sinnvoll zu gestalten, implementierte man, wie auch die Konkurrenz, ein Texturkompressionsverfahren.

Die Voodoo3 unterstützte zwar bereits sogenannte NCC (narrow channel compression), jedoch wurde dieses proprietäre Verfahren nie richtig von Spielen unterstützt. Im VSA-100 fand nun auch die breit unterstützte S3 Texture Compression (S3TC) Verwendung. Da jedoch für die Nutzung von S3TC in OpenGL-Spielen Lizenzgebühren an S3 Graphics anfielen, entwickelte 3dfx ein ähnliches Verfahren namens FXT. Metabytes bekannter OpenGL Glide-Wrapper "WickedGL" konvertierte auf Wunsch des Users jegliche Texturen von OpenGL Spielen in das FXT-Format.

Als erster Voodoo-Chip besitzt der VSA-100 zwei unabhängige Pixelpipelines, womit er pro Takt an zwei verschiedenen Pixeln arbeiten kann. Das ist oftmals effizienter als die Multi-Texturing-Pipeline der Voodoo3. Das Design wurde also breiter und dafür etwas kürzer. Die Konkurrenz arbeitete bereits mit Quadpipelines, um Polygone zu texturieren. Das klingt fortschrittlich, ist es in diesem Falle jedoch nicht:

Eine Quadpipeline ist grob gesehen eine einzige Pipeline, die vierfach ausgelegt ist. Es wird pro Takt ein Pixelquad, also eine Anordnung von 2x2 Pixeln (in der Abbildung blau gekennzeichnet), berechnet. So sparte man zwar viele Transistoren für die Steuerlogik, erkaufte aber die Limitierung, dass alle Pixelpipelines die gleiche Operation durchführen müssen. Das führt, besonders bei kleinen Dreiecken, zu einem Verschnitt (in der Abbildung als weißes Pixel im blauen Rahmen erkennbar). Diesem Verschnitt unterliegt der VSA-100, wie alle Prä-GeForce-Renderer, nicht.

Obwohl die Voodoo5 6000 die Zahl "5" trägt, ist sie dennoch ein Angehöriger der vierten Generation der Voodoo-Serie. Vermutlich wollte 3dfx die Mehrchipvarianten namentlich von der Einzelvariante (Voodoo4 4500) abgrenzen, um deren Leistungsfähigkeit für den Käufer zu unterstreichen.

  Voodoo4 4500 Voodoo5 5500 Voodoo5 6000
Pixelpipelines 2 4 8
TMUs pro Pipeline 1 1 1
Fertigungsprozess 220nm 220nm 220nm
Chiptakt 166 MHz 166 MHz 183 MHz
Speichertakt 166 MHz 166 MHz 183 MHz
Anti-Aliasing 2x SG-SSAA 4x SG-SSAA 8x SG-SSAA
Füllrate in MTex/sek 333 666 1464
Bandbreite in GB/sek 2,6 5,3 11,7
Maximale Texturgröße 2048x2048 2048x2048 2048x2048
Grafikspeicher 32 MiB 2x 32 MiB 4x 32 MiB

Mit dem Slogan "Fillrate is King" bewarb 3dfx die VSA-100-Reihe. Aufgrund der Verspätung schaffte man es aber leider nicht, diese Serie gegen den eigentlich vorgesehenen Gegner, die GeForce 256 von nVidia, antreten zu lassen. Diese wäre aus einer derartigen Konfrontation vermutlich nicht einmal mit einem blauen Auge davongekommen.

Aber im Leben kommt es oftmals anders als man denkt: Nichts desto trotz erfüllen unsere Voodoo5 6000 Karten diesen Leitspruch, denn eine Füllrate von 1,46 Gigapixeln pro Sekunde und eine Bandbreite von 11,7 Gigabyte/s, verbunden mit den Effizienzvorteilen von SLI, sprechen eine klare Sprache. Keine SingleChip HighEnd Grafikkarte aus dieser Zeit wäre im Stande gewesen, hier mit der Voodoo 5 6000 mitzuhalten. Doch dazu mehr im Benchmarkteil.