Nekonečná realita - InfiniteReality

Nekonečná realita označuje a 3D grafika hardwarová architektura a rodina grafické systémy který implementoval výše uvedenou hardwarovou architekturu, kterou vyvinul a vyrobil Křemíková grafika od roku 1996 do roku 2005. InfiniteReality byl umístěn jako high-end Silicon Graphics vizualizace hardware pro jejich MIPS /IRIX platforma a byla používána výhradně v jejich vizualizačních systémech rodiny Onyx, které jsou někdy označovány jako „grafické superpočítače“ nebo „vizualizační superpočítače“. InfiniteReality byl uveden na trh a používán velkými organizacemi, jako jsou společnosti a univerzity, které jsou zapojeny počítačová simulace, tvorba digitálního obsahu, inženýrství a výzkum.

Nekonečná realita

InfiniteReality byl představen počátkem roku 1996 a byl použit v grafice Silicon Graphics Onyx. To se podařilo RealityEngine, ačkoli RealityEngine koexistoval s InfiniteReality po nějakou dobu pro Onyx jako možnost základní úrovně pro konfigurace „pracovní stanice“ na pracovní ploše.

Architektura InfiniteReality byla designem třetí generace a je kategorizována jako architektura řazení. Byl navržen tak, aby poskytnout složité scény ve vysoké kvalitě rychlostí 60 snímků za sekundu, což je zhruba dvojnásobný až čtyřnásobný výkon oproti RealityEngine, který nahrazuje. Byl navržen výslovně pro použití ve spojení s OpenGL grafická knihovna a implementuje většinu z OpenGL potrubí v hardwaru.

Implementace je rozdělena na Geometrie (také známý jako Geometrický motor), Rastrová paměť (také známý jako Rastrový manažer) a Generátor displeje desky, přičemž každá deska odpovídá každé fázi tří hlavních fází v potrubí architektury. Schéma dělení sady desek je stejné jako RealityEngine, protože Silicon Graphics chce, aby byl RealityEngine snadno upgradovatelný na InfiniteReality. Každý kanál se skládá z jedné desky Geometry Engine, jedné, dvou nebo čtyř karet Raster Manager a jedné desky Generátoru zobrazení.[1]

Implementace zahrnuje dvanáct ASIC vzory vymyslel v 0,5 a 0,35 mikrometrových procesech se třemi vrstvami kovového propojení.[1] Tyto ASIC vyžadují napájení 3,3 V. Kanál InfiniteReality v maximální konfiguraci obsahuje 251 milionů tranzistorů. InfiniteReality bylo vyvinuto 55 inženýry.[2]

Vzhledem k dostatečně schopnému systému, jako jsou některé modely Onyx2 a Onyx 3000, lze hostovat až 16 kanálů InfiniteReality. Potrubí lze provozovat ve třech režimech: vícemístný, vícedisplejový a vícedotekový. V režimu pro více míst může každý kanál sloužit až osmi současným uživatelům, z nichž každý má vlastní samostatné displeje, klávesnice a myši. V režimu více displejů pohání více výstupů více displejů, což je užitečné pro virtuální realita. Režim s více kanály má dva způsoby provozu. První metoda vyžaduje, aby byla v každém potrubí nainstalována dceřiná deska digitálního multiplexeru (DPLEX), který kombinuje výstup více potrubí. Druhá metoda používá MonsterMode software pro distribuci dat použitých k vykreslení rámce do více potrubí.

K propojení potrubí se systémem se používá kabel plochého kabelu (FCI) k připojení procesoru hostitelského rozhraní ASIC na desce Geometry k Ibus na desce IO4, která je součástí hostitelského systému.

Geometrická deska

Deska Geometry je zodpovědná za geometrii a zpracování obrazu a je rozdělena do čtyř fází, přičemž každá fáze je implementována samostatnými zařízeními. První fází je Hostitelské rozhraní. Vzhledem k tomu, že InfiniteReality je navržen pro dvě velmi odlišné platformy, tradiční sdílená paměť autobus -na bázi Onyx pomocí sběrnice POWERpath-2 a distribuovaná sdílená paměť síťový Onyx2 pomocí NUMAlink2 InfiniteReality musely mít rozhraní, které by mohlo poskytovat podobný výkon na obou platformách, které měly velký rozdíl v příchozí šířce pásma (200 MB / s oproti 400 MB / s).[1]

Za tímto účelem a Procesor hostitelského rozhraní, vložený RISC jádro, se používá k načtení objektů seznamu zobrazení pomocí přímý přístup do paměti (DMA). Procesor hostitelského rozhraní je doprovázen 16 MB synchronní dynamická paměť s náhodným přístupem (SDRAM), na kterou je zvyklých 15 MB mezipaměti zobrazit listové objekty. Mezipaměť může dodat data do další fáze rychlostí přes 300 MB / s. Další fází je Distributor geometrie, který přenáší data a pokyny z procesoru hostitelského rozhraní do jednotlivých geometrických motorů.

Další fází je provádění geometrie a zpracování obrazu. The Geometrický motor se používá pro tento účel, přičemž každá deska Geometry obsahuje až čtyři pracující v a vícenásobná instrukce více dat (MIMD) móda. Geometry Engine je částečně zvyklý ASIC s kanálem SIMD (single instruction multiple data), který obsahuje tři plovoucí bod jádra, z nichž každé obsahuje an aritmetická logická jednotka (ALU), multiplikátor a 32-bit by 32-entry zaregistrovat soubor se dvěma porty pro čtení a dvěma zápisy. Tato jádra jsou vybavena 32bitovou pamětí s 2560 vstupy, která obsahuje prvky OpenGL Stát a poskytuje zápisník úložný prostor. Každé jádro má také a převodník float-to-fix převést hodnoty s plovoucí desetinnou čárkou na celé číslo formulář. Geometry Engine je schopen splnit tři pokyny za cyklus a každá deska Geometry se čtyřmi takovými zařízeními může dokončit 12 pokynů za cyklus. Geometry Engine používá 195bitovou mikroinstrukci, která je komprimována, aby se zmenšila velikost a využití šířky pásma výměnou za mírně nižší výkon.

Procesor Geometry Engine pracuje na 90 MHz a dosahuje maximálního teoretického výkonu 540 MFLOPS.[2] Protože na desce GE12-4 nebo GE14-4 jsou čtyři takové procesory, je maximální teoretický výkon 2,16 GFLOPS. Systém se 16 potrubími proto dosahuje maximálního teoretického výkonu 34,56 GFLOPS.

Čtvrtá fáze je Geometry-Raster FIFO, a první dovnitř první ven (FIFO) nárazník který spojuje výstupy čtyř Geometry Engines do jednoho a znovu sestavuje výstupy v pořadí, v jakém byly vydány. FIFO je postaven z SDRAM a má kapacitu 4 MB,[3] dostatečně velký pro uložení 65 536 vrcholy. Transformované vrcholy jsou přesunuty z tohoto FIFO na desky Raster Manager pro opětovné sestavení a nastavení trojúhelníku pomocí Triangle Bus (také známý jako Vertex Bus), který má šířku pásma 400 MB / s.

Rastrová paměťová deska

Funkce desky Raster Memory je vykonávat rasterizace. Obsahuje také paměť textury a rastrová paměť, který je běžněji známý jako framebuffer. Rastrování se provádí v Generátor fragmentů a osmdesát Image Engines. Generátor fragmentů se skládá ze čtyř návrhů ASIC: Převaděč skenování (SC) ASIC, Kalkulačka adres Texel (TA) ASIC, Řadič paměti textury (TM) ASIC a Fragment textury (TF) ASIC.[1]

SC ASIC a TA ASIC provádějí převod skenování, interpolaci barev a hloubek, interpolaci správných souřadnic textury a úroveň podrobného výpočtu na příchozích datech a výsledky jsou předány osmi specializovaným TM ASIC řadiče paměti optimalizováno pro přístup k texelu. Každý TM ASIC ovládá čtyři SDRAM, které tvoří osminu paměti textury. Použité SDRAM jsou široké 16 bitů a mají samostatnou adresu a datové sběrnice. SDRAM s kapacitou 4 Mb jsou používány deskami Raster Manager s 16 MB texturové paměti, zatímco 16 Mb SDRAM jsou používány deskami Raster Manager s 64 MB texturové paměti.[2] TM ASIC provádějí vyhledávání texelů ve svých SDRAM podle textových adres vydaných TA ASIC. Texty z TM ASIC jsou předávány do příslušného TF ASIC, kde se provádí filtrování textur, kombinace prostředí textur s aplikací interpolované barvy a mlhy. Protože každý SDRAM obsahuje část paměti textury, musí být všech 32 SDRAM připojeno ke všem 80 obrazovým strojům. K dosažení tohoto cíle implementují TM a TF ASIC dvoustupňové síť omega, což snižuje počet jednotlivých cest požadovaných pro třídění 32 až 80 při zachování stejné funkce.

Osmdesát Image Engines má několik funkcí. Za prvé, každý Image Engine řídí část rastrové paměti, což je v případě InfiniteReality 1 MB SGRAM organizovaný jako 262 144 podle 32bitových slov.[1][2] Zadruhé Image Engines provádí následující operace OpenGL na fragment: test vlastnictví pixelu, test šablony, test hloubkové vyrovnávací paměti, míchání, rozklad a logická operace. Nakonec Image Engines provádějí vyhlazování a akumulační pufr operace. Aby bylo možné dodávat pixelová data pro zobrazení, má každý Image Engine 2bitovou sériovou sběrnici na desku generátoru displeje. Pokud je v kanálu přítomna jedna deska Raster Manager, Image Engine používá celou šířku sběrnice, zatímco pokud jsou přítomny dvě nebo více desek Raster Manager, Image Engine používá polovinu sběrnice.[1] Každá sériová sběrnice je ve skutečnosti součástí video sběrnice, která má šířku pásma 1,2 GB / s. Čtyři „jádra“ obrazového stroje jsou obsažena v obrazovém modulu ASIC, který obsahuje téměř 488 000 logických hradel obsahujících 1,95 milionu tranzistorů na 42 mm2 (6,5 x 6,5 mm) lisovnice, která byla vyrobena v 0,35 mikrometru procesem Technologie VLSI.

InfiniteReality používá RM6-16 nebo RM6-64 Rastrové manažery. Každý kanál je schopen zobrazit rozlišení 2,62, 5,24 nebo 10,48 milionu pixelů, pokud je přítomna jedna, dvě nebo čtyři desky Raster Manager.[4] Rastrovou paměť lze nakonfigurovat tak, aby používala 256, 512 nebo 1024 bitů na pixel. 320 MB podporuje rozlišení 2560 x 2048 pixelů, přičemž každý pixel obsahuje 512 bitů informací.[2] V konfiguraci se čtyřmi správci Raster má texturová paměť šířku pásma 15,36 GB / s a ​​rastrová paměť má šířku pásma 72,8 GB / s.

Deska generátoru displeje

The DG4-2 Deska generátoru displeje obsahuje hardware pro řízení až dvou video výstupů, které lze rozšířit na osm video výstupů s volitelnou dceřinou deskou, konfigurace známá jako DG4-8. Výstupy jsou nezávislé a každý výstup má hardware pro generování časování videa, změnu velikosti videa, gama korekce, genlock a digitálně analogový konverze. Digitálně-analogový převod zajišťují 8bitové digitálně-analogové převaděče, které podporují kmitočet pixelů až 220 MHz.

Data pro video výstupy jsou poskytována čtyřmi ASIC, které de-serializují a de-prokládají 160-bitové proudy do 10-bitové komponenty RGBA, 12bitové komponenty RBGA, L16, Stereo Field Sequential (FS) nebo barevné indexy. Hardware také obsahuje kurzor v této fázi. 32 768 záznamů barevná indexová mapa je k dispozici.

Schopnosti a výkon

InfiniteReality byl schopen několika pokročilých funkcí:

  • Vyhlazení aliasu s 8 vzorky a 8 vzorky[5]
  • Maximální barevná hloubka 48 bitů RGBA[5]
  • 16 překryvných letadel[5]
  • 24bitový Z-buffer s plovoucí desetinnou čárkou[5]
  • Každý pixel se skládá z 256 až 1048 bitů dat
  • Stereo sledování bylo podporováno a bylo quad buffered

Výkon InfiniteReality byl:

  • 11 milionů neosvětlených, vyhlazených, vyhlazených trojúhelníkových proužků (každý 40 pixelů) za sekundu
  • 8,3 milionu texturovaných, vyhlazených, vyhlazených trojúhelníkových proužků (po 50 pixelech) za sekundu
  • Více než 7 milionů osvětlených, texturovaných a vyhlazených trojúhelníků za sekundu
  • 800 milionů trilineárních mip-mapovaných, texturovaných, 16-bitových texelů, hloubkově ukládaných pixelů za sekundu
  • 750 milionů trilineárních mip-mapovaných, texturovaných, 16bitových texelů, čtyři až čtyři dílčí vzorky vyhlazené, s hloubkovou vyrovnávací pamětí pixelů za sekundu
  • 710+ milionů texturovaných a vyhlazených pixelů za sekundu
  • 300 milionů zobrazených pixelů za sekundu, distribuováno na jeden až osm výstupů

InfiniteReality2

InfiniteReality2 je jak hinv (an IRIX nástroj, který uvádí hardware přítomný v systému) odkazuje na InfiniteReality, která se používá v Onyx2. InfiniteReality2 však byl stále uváděn na trh jako InfiniteReality. Jednalo se o druhou implementaci architektury InfiniteReality a byla představena koncem roku 1996. Je identická s architekturou InfiniteReality, ale mechanicky se liší od verze Onyx2. Původ 2000 klec na karty se liší od Onyxů Výzva - klec na karty.

InfiniteReality2 představuje schéma rozhraní, které se používá v rackových Onyx2 nebo novějších systémech. Namísto připojení k hostitelskému systému pomocí kabelu FCI je sada desek zapojena do zadní části střední roviny, která může podporovat dvě potrubí. Střední letoun má jedenáct slotů. Slot šest až slot jedenáct jsou pro první kanál, který může obsahovat jednu až čtyři desky Raster Manager. Slot jeden až čtyři je pro druhý kanál, který může obsahovat jednu nebo dvě desky Raster Manager kvůli počtu slotů, které existují. Z tohoto důvodu maximálně nakonfigurované systémy Onyx používají pro každé potrubí jednu střední rovinu, aby se zabránilo omezení poloviny ze 16 kanálů na maximálně dvě desky Raster Manager. Slot pět obsahuje desku Ktown, pokud je střední letadlo použito v systému založeném na Origin 2000 (Onyx2), nebo desku Ktown2, pokud je použito midplane v systému založeném na Origin 3000 (Onyx 3000). Účelem těchto desek je rozhraní XIO hostitelského systému s procesorem hostitelského rozhraní ASIC na desce Geometry. Tyto desky mají pro tento účel dva porty XIO, přičemž horní port XIO je připojen k pravému potrubí a spodní port XIO je připojen k levému kanálu.

Realita

Reality je cenově snížená verze InfiniteReality2, která má poskytovat podobný výkon. Místo použití desky GE14-4 Geometry Engine a desek RM7-16 nebo RM7-64 Raster Manager použila Reality GE14-2 Deska Geometry Engine a RM8-16 nebo RM8-64 Raster Manager desky. Model GE14-2 má dva procesory Geometry Engine, místo čtyř jako ostatní modely. Modely RM8-16 a RM864 mají 16 nebo 64 MB texturové paměti a 40 MB rastrové paměti. Realita byla také omezena počtem desek Raster Manager, které mohla podporovat, jednou nebo dvěma. Při maximální konfiguraci se dvěma deskami RM8-64 Raster Manager má kanál Reality 80 MB rastrové paměti.

InfiniteReality2E

InfiniteReality2E byl upgrade InfiniteReality, prodávaný jako InfiniteReality2, představený v roce 1998. Následoval sadu desek InfiniteReality a sám byl následován InfiniteReality3 v roce 2000, ale byl přerušen až 10. dubna 2001.

Vylepšuje InfiniteReality nahrazením desky GE14-4 Geometry Engine deskou GE16-4 Deska Geometry Engine a desky RM7-16 nebo RM7-64 Raster Manager s RM9-64 Deska Raster Manager. Nová deska Geometry Engine fungovala na 112 MHz,[6] zlepšení geometrie a výkonu zpracování obrazu. Nová deska Raster Manager fungovala na 72 MHz,[6] zlepšení výkonu vyplnění vyhlazených pixelů.

InfiniteReality3

InfiniteReality3 byl představen v roce 2000 spolu s Onyx 3000 Nahradit InfiniteReality2. Byl použit v Onyx2 a vizualizační systémy Onyx 3000. Jediným zlepšením oproti předchozí implementaci bylo nahrazení RM9-64 Raster Manager za RM10-256 Raster Manager, který má 256 MB texturové paměti, čtyřikrát větší než předchozí správce rastrů. Při maximální konfiguraci se čtyřmi správci rastrů poskytuje kanál InfiniteReality3 320 MB rastrové paměti.

InfiniteReality4

InfiniteReality4 byl představen v roce 2002 jako nástupce InfiniteReality3. To bylo použito v Onyx2, Onyx 3000 a Onyx 350. Je to poslední člen rodiny InfiniteReality, sám následován ATI FireGL - UltimateVision, který byl použit v Onyx4. Jediným zlepšením oproti předchozí implementaci bylo nahrazení RM10-256 Raster Manager společností RM11-1024 Raster Manager, který má vylepšený výkon, 1 GB texturové paměti a 2,5 GB rastrové paměti, čtyřikrát a třicet dvakrát větší než předchozí správce rastru. Při maximální konfiguraci se čtyřmi správci rastru má kanál InfiniteReality4 10 GB rastrové paměti. V maximální konfiguraci se 16 kanály obsahovala InfiniteReality4 16 GB texturové paměti a 160 GB rastrové paměti.[7]

Srovnání

Čísla uvedená v tabulkách platí pro minimální 1-potrubí a maximální 16-potrubí konfigurace, s výjimkou reality, která byla omezena na provoz s jedním potrubím.

Hardware

ModelkaGeometrie
Motor
prkno
Rastrový manažer
prkno
Generátor displeje
prkno
Textura
Paměť
(MB)
Rastrový
Paměť
(MB)
PředstavenýPřerušeno
Nekonečná realitaGE12-4RM6-16 nebo RM6-64DG4-2 nebo DG4-816 až 1024[8]80 až 5120[8]?1999-09-30
InfiniteReality2GE14-4RM7-16 nebo RM7-64DG5-2 nebo DG5-816 až 102480 až 5120??
RealitaGE14-2RM8-16 nebo RM8-64DG5-2 nebo DG5-86440 až 80??
InfiniteReality2EGE16-4RM9-64DG5-2 nebo DG5-864 až 1024[8]80 až 5120[8]??
InfiniteReality3GE16-4RM10-256DG5-2 nebo DG5-8256 až 4096[7]80 až 5120[7]?2003-06-27
InfiniteReality4GE16-4RM11-1024DG5-2 nebo DG5-81024 až 16384[7]2560 až 163 840[7]??

Výkon

ModelkaMnohoúhelníky
(miliony za sekundu)
Pixel fill
(miliony pixelů za sekundu)
Vykreslování svazku
(miliony voxelů za sekundu)
Nekonečná realita10.9??
InfiniteReality210.9??
Realita5.594 až 188[poznámka 1]100 až 200
InfiniteReality2E13,1 až 210[8]192 až 6100200 až 6400
InfiniteReality313,1 až 2105,6006,400
InfiniteReality413,1 až 21010,200[poznámka 2]6,400
Poznámky
  1. ^ Vyhlazený, s vyrovnávací pamětí, strukturovaný.
  2. ^ 8 x 8 sub-vzorkovaných vyhlazených, Z-pufrovaných, texturovaných, osvětlených, 40bitových barevných pixelů.

Reference

  1. ^ A b C d E F John S. Montrym a kol. "InfiniteReality: Grafický systém v reálném čase". ACM SIGGRAPH.
  2. ^ A b C d E John Montrym, Brian McClendon. "Grafika InfiniteReality - síla díky složitosti". Advanced Systems Division, Silicon Graphics, Inc.
  3. ^ Mark J. Kilgard. "Realizace OpenGL: dvě implementace jedné architektury". 1997 SIGGRAPH Eurographics Workshop, srpen 1997.
  4. ^ Onyx2 Reality, Onyx2 InfiniteReality a Onyx2 InfiniteReality2 Technická zpráva, srpen 1998. Silicon Graphics, Inc.
  5. ^ A b C d Příručka k produktu Remanufactured Silicon Graphics Onyx2, červen 1999. Dokument 1073. Silicon Graphics, Inc.
  6. ^ A b Alexander Wolfe. "Siggraph připravuje půdu pro nejnovější grafiku". EE Times, 20. července 1998.
  7. ^ A b C d E „SGI Onyx 300 s grafickým datovým listem rodiny InfiniteReality.“ Silicon Graphics, 3224, 25. října 2002.
  8. ^ A b C d E Datový list Onyx2 GroupStation, srpen 1998. Dokument 1840. Silicon Graphics, Inc.