InfiniteReality se refiere a una arquitectura de hardware de gráficos 3D y una familia de sistemas gráficos que implementaron la arquitectura de hardware antes mencionada que fue desarrollada y fabricada por Silicon Graphics de 1996 a 2005. InfiniteReality se posicionó como el hardware de visualización de alta gama de Silicon Graphics para sus MIPS / La plataforma IRIX y se utilizó exclusivamente en su familia de sistemas de visualización Onyx, que a veces se denominan "supercomputadoras de gráficos" o "supercomputadoras de visualización". InfiniteReality fue comercializado y utilizado por grandes organizaciones como empresas y universidades que participan ensimulación por computadora , creación de contenido digital , ingeniería e investigación.
Realidad infinita
InfiniteReality se introdujo a principios de 1996 y se utilizó en Silicon Graphics Onyx . Sucedió al RealityEngine , aunque el RealityEngine coexistió con InfiniteReality durante algún tiempo para el Onyx como una opción de nivel de entrada para configuraciones de "estación de trabajo" de escritorio.
La arquitectura InfiniteReality fue un diseño de tercera generación y se clasifica como una arquitectura de clasificación intermedia. Fue diseñado para renderizar escenas complejas en alta calidad a 60 cuadros por segundo, aproximadamente dos a cuatro veces el rendimiento del RealityEngine al que reemplazó. Fue diseñado explícitamente para su uso junto con la biblioteca de gráficos OpenGL e implementa la mayor parte de la canalización de OpenGL en hardware.
La implementación se divide en placas de geometría (también conocida como motor de geometría ), memoria de ráster (también conocida como administrador de ráster ) y generadores de visualización , y cada placa corresponde a cada etapa de las tres etapas principales en la tubería de la arquitectura. El esquema de partición del conjunto de placas es el mismo que el del RealityEngine, debido a que Silicon Graphics desea que RealityEngine se pueda actualizar fácilmente a InfiniteReality. Cada tubería consta de una placa de motor de geometría, una, dos o cuatro placas de administrador de ráster y una placa de generador de pantalla. [1]
La implementación comprende doce diseños ASIC fabricados en procesos de 0,5 y 0,35 micrómetros con tres capas de interconexión metálica. [1] Estos ASIC requieren una fuente de alimentación de 3,3 V. Una tubería InfiniteReality en una configuración máxima contiene 251 millones de transistores. InfiniteReality fue desarrollado por 55 ingenieros. [2]
Dado un sistema lo suficientemente capaz, como ciertos modelos de Onyx2 y Onyx 3000, se pueden alojar hasta 16 canalizaciones InfiniteReality. Las tuberías se pueden operar en tres modos: múltiples asientos, múltiples pantallas y múltiples tuberías. En el modo de varios asientos, cada canal puede atender hasta ocho usuarios simultáneos, cada uno con sus propias pantallas, teclados y ratones independientes. En el modo multipantalla, varias salidas controlan varias pantallas, lo que resulta útil para la realidad virtual . El modo multitubo tiene dos métodos de funcionamiento. El primer método requiere que se instale una placa secundaria de multiplexor digital (DPLEX) en cada tubería, que combina la salida de varias tuberías. El segundo método utiliza el software MonsterMode para distribuir los datos utilizados para representar un marco en múltiples tuberías.
Para conectar la tubería al sistema, se utiliza un cable de interfaz de cable plano (FCI) para conectar el ASIC del procesador de interfaz del host en la placa de geometría al Ibus en la placa IO4, una parte del sistema host.
Tablero de geometría
El tablero de geometría es responsable del procesamiento de la geometría y la imagen y se divide en cuatro etapas, cada etapa se implementa mediante dispositivos separados. La primera etapa es la interfaz de host . Debido a que InfiniteReality está diseñado para dos plataformas muy diferentes, el Onyx tradicional basado en bus de memoria compartida usando el bus POWERpath-2, y el Onyx2 basado en red de memoria compartida distribuida usando la interconexión NUMAlink2 , InfiniteReality tenía que tener una interfaz que pudiera proporcionan un rendimiento similar en ambas plataformas, que tienen una gran diferencia en el ancho de banda entrante (200 MB / s frente a 400 MB / s respectivamente). [1]
Con este fin, se utiliza un procesador de interfaz de host , un núcleo RISC integrado , para buscar objetos de lista de visualización mediante el acceso directo a memoria (DMA). El procesador de interfaz de host está acompañado de 16 MB de memoria de acceso aleatorio dinámico síncrono (SDRAM), de los cuales 15 MB se utilizan para almacenar en caché los objetos hoja de visualización. La caché puede enviar datos a la siguiente etapa a más de 300 MB / s. La siguiente etapa es el distribuidor de geometría , que transfiere datos e instrucciones desde el procesador de interfaz de host a los motores de geometría individuales.
La siguiente etapa consiste en realizar el procesamiento de imágenes y geometría. El motor de geometría se utiliza para este propósito, y cada placa de geometría contiene hasta cuatro que funcionan en una forma de datos múltiples de instrucciones múltiples (MIMD). El motor de geometría es un ASIC semipersonalizado con una tubería de datos múltiples de instrucción única (SIMD) que contiene tres núcleos de punto flotante , cada uno con una unidad lógica aritmética (ALU), un multiplicador y un archivo de registro de 32 bits por 32 entradas con dos puertos de lectura y dos de escritura. Estos núcleos cuentan con una memoria de 32 bits por 2560 entradas que contiene elementos del estado OpenGL y proporciona almacenamiento de memoria virtual . Cada núcleo también tiene un convertidor de flotador a fijo para convertir valores de punto flotante en forma de entero . El motor de geometría es capaz de completar tres instrucciones por ciclo, y cada placa de geometría, con cuatro de estos dispositivos, puede completar 12 instrucciones por ciclo. El motor de geometría utiliza una microinstrucción de 195 bits, que se comprime para reducir el tamaño y el uso del ancho de banda a cambio de un rendimiento ligeramente menor.
El procesador Geometry Engine opera a 90 MHz, logrando un rendimiento teórico máximo de 540 MFLOPS. [2] Como hay cuatro procesadores de este tipo en una placa GE12-4 o GE14-4, el rendimiento teórico máximo es 2,16 GFLOPS. Por lo tanto, un sistema de 16 tuberías alcanza un rendimiento teórico máximo de 34,56 GFLOPS.
La cuarta etapa es el FIFO de trama de geometría , un búfer de primero en entrar , primero en salir (FIFO) que fusiona las salidas de los cuatro motores de geometría en una, volviendo a ensamblar las salidas en el orden en que se emitieron. El FIFO está construido a partir de SDRAM y tiene una capacidad de 4 MB, [3] lo suficientemente grande como para almacenar 65.536 vértices . Los vértices transformados se mueven desde este FIFO a las placas del Administrador de ráster para el reensamblaje y configuración del triángulo mediante el Bus de triángulo (también conocido como Bus de vértice), que tiene un ancho de banda de 400 MB / s.
Tarjeta de memoria de trama
La función de la placa de memoria ráster es realizar la rasterización . También contiene la memoria de textura y la memoria de ráster , que se conoce más comúnmente como framebuffer . La rasterización se realiza en el generador de fragmentos y los ochenta motores de imágenes . El generador de fragmentos comprende cuatro diseños ASIC: el convertidor de escaneo (SC) ASIC, el calculador de direcciones de Texel (TA) ASIC, el controlador de memoria de textura (TM) ASIC y el fragmento de textura (TF) ASIC. [1]
El SC ASIC y el TA ASIC realizan conversión de escaneo, interpolación de color y profundidad, interpolación de coordenadas de textura de perspectiva correcta y cálculo del nivel de detalle en los datos entrantes, y los resultados se pasan a los ocho TM ASIC, que son controladores de memoria especializados optimizados para el acceso de texel . Cada TM ASIC controla cuatro SDRAM que constituyen un octavo de la memoria de textura. Las SDRAM utilizadas son de 16 bits de ancho y tienen buses de datos y direcciones separados. Las tarjetas Raster Manager con 16 MB de memoria de textura utilizan SDRAM con una capacidad de 4 Mb, mientras que las tarjetas Raster Manager con 64 MB de memoria de textura utilizan SDRAM de 16 Mb. [2] Los TM ASIC realizan búsquedas de texto en sus SDRAM de acuerdo con las direcciones de texto emitidas por el TA ASIC. Los Texels de los TM ASIC se envían al TF ASIC apropiado, donde se realiza el filtrado de textura, la combinación del entorno de textura con el color interpolado y la aplicación de niebla. Como cada SDRAM contiene parte de la memoria de textura, las 32 SDRAM deben estar conectadas a los 80 motores de imagen. Para lograr esto, los ASIC TM y TF implementan una red omega de dos rangos , que reduce el número de rutas individuales requeridas para la clasificación de 32 a 80 mientras mantiene la misma funcionalidad.
Los ochenta motores de imagen tienen múltiples funciones. En primer lugar, cada motor de imagen controla una parte de la memoria ráster, que en el caso de InfiniteReality, es un SGRAM de 1 MB organizado como 262144 por palabras de 32 bits. [1] [2] En segundo lugar, los motores de imagen realizan las siguientes operaciones por fragmento de OpenGL: prueba de propiedad de píxeles, prueba de esténcil, prueba de búfer de profundidad, combinación, difuminado y operación lógica. Por último, los motores de imagen realizan operaciones de búfer de acumulación y suavizado . Para entregar datos de píxeles para visualización, cada motor de imagen tiene un bus serie de 2 bits a la placa del generador de visualización. Si hay una placa de Raster Manager en la canalización, Image Engine usa todo el ancho del bus, mientras que si hay dos o más placas de Raster Manager, Image Engine usa la mitad del bus. [1] Cada bus serie es en realidad parte del bus de vídeo, que tiene un ancho de banda de 1,2 GB / s. Cuatro "núcleos" de Image Engine están contenidos en un Image Engine ASIC, que contiene casi 488.000 puertas lógicas, que comprenden 1,95 millones de transistores, en una matriz de 42 mm 2 (6,5 por 6,5 mm) que fue fabricada en un proceso de 0,35 micrómetros por VLSI Technology .
InfiniteReality utiliza los administradores de ráster RM6-16 o RM6-64 . Cada canalización es capaz de mostrar resoluciones de 2,62, 5,24 o 10,48 millones de píxeles, siempre que estén presentes una, dos o cuatro placas de Raster Manager respectivamente. [4] La memoria de trama se puede configurar para usar 256, 512 o 1024 bits por píxel. 320 MB admite una resolución de 2560 por 2048 píxeles y cada píxel contiene 512 bits de información. [2] En una configuración con cuatro administradores de ráster, la memoria de textura tiene un ancho de banda de 15,36 GB / s, y la memoria de ráster tiene un ancho de banda de 72,8 GB / s.
Tablero del generador de pantalla
La placa del generador de pantalla DG4-2 contiene hardware para controlar hasta dos salidas de vídeo, que pueden ampliarse a ocho salidas de vídeo con una placa secundaria opcional, una configuración conocida como DG4-8 . Las salidas son independientes y cada salida tiene hardware para generar sincronización de video, cambio de tamaño de video, corrección de gamma , genlock y conversión de digital a analógico . La conversión de digital a analógico se proporciona mediante convertidores de digital a analógico de 8 bits que admiten una frecuencia de reloj de píxeles de hasta 220 MHz.
Los datos para las salidas de video son proporcionados por cuatro ASIC que deserializan y desentrelazan las transmisiones de 160 bits en componentes RGBA de 10 bits, componentes RBGA de 12 bits, L16, secuencial de campo estéreo (FS) o índices de color. El hardware también incorpora el cursor en esta etapa. Está disponible un mapa de índice de color de 32,768 entradas .
Capacidades y desempeño
InfiniteReality era capaz de varias capacidades avanzadas:
- 8 por 8 anti-aliasing multimuestreo [5]
- Una profundidad de color máxima de RGBA de 48 bits [5]
- 16 planos superpuestos [5]
- Un búfer Z de punto flotante de 24 bits [5]
- Cada píxel consta de 256 a 1048 bits de datos
- Se admitía la visualización estéreo y tenía búfer cuádruple
La actuación de InfiniteReality fue:
- 11 millones de tiras triangulares no iluminadas, con búfer de profundidad y suavizadas (40 píxeles cada una) por segundo
- 8,3 millones de tiras triangulares texturizadas, con búfer de profundidad y suavizado (50 píxeles cada una) por segundo
- Más de 7 millones de triángulos iluminados, texturizados y suavizados por segundo
- 800 millones de píxeles trilineales mapeados en mip, texturizados, texel de 16 bits, con búfer de profundidad por segundo
- 750 millones de píxeles trilineales mapeados en mip, texturizados, texel de 16 bits, cuatro por cuatro submuestras anti-aliased, con búfer de profundidad por segundo
- Más de 710 millones de píxeles texturizados y suavizados por segundo
- 300 millones de píxeles mostrados por segundo, distribuidos en una a ocho salidas
InfiniteReality2
InfiniteReality2 es la forma en que hinv (una utilidad de IRIX que enumera el hardware presente en un sistema) se refiere a un InfiniteReality que se utiliza en Onyx2. Sin embargo, InfiniteReality2 todavía se comercializaba como InfiniteReality. Fue la segunda implementación de la arquitectura InfiniteReality, y se introdujo a finales de 1996. Es idéntica a la InfiniteReality arquitectónicamente, pero difiere mecánicamente ya que la jaula de cartas basada en Origin 2000 de Onyx2 es diferente de la jaula de cartas basada en Desafío de Onyx .
Presentado por InfiniteReality2 es un esquema de interfaz que se utiliza en sistemas Onyx2 de montaje en rack o posteriores. En lugar de conectarse al sistema host a través de un cable FCI, el conjunto de placas se conecta a la parte posterior de un plano medio, que puede admitir dos tuberías. El plano medio tiene once ranuras. Las ranuras seis a once son para la primera canalización, que puede contener de una a cuatro placas de administrador de ráster. Las ranuras uno a cuatro son para la segunda canalización, que puede contener una o dos placas de Raster Manager debido a la cantidad de ranuras que hay. Debido a esto, los sistemas Onyx configurados al máximo utilizan un plano medio para cada canalización para evitar restringir la mitad de las 16 canalizaciones a un máximo de dos placas de Raster Manager. La ranura cinco contiene una placa Ktown si el plano medio se utiliza en un sistema basado en Origin 2000 (Onyx2) o una placa Ktown2 si el plano medio se utiliza en un sistema basado en Origin 3000 (Onyx 3000). El propósito de estas placas es interconectar el enlace XIO del sistema host con el ASIC del procesador de interfaz de host en la placa Geometry. Estas placas tienen dos puertos XIO para este propósito, con el puerto XIO superior conectado a la tubería derecha y el puerto XIO inferior conectado a la tubería izquierda.
Realidad
The Reality es una versión económica de InfiniteReality2 destinada a proporcionar un rendimiento similar. En lugar de utilizar la placa GE14-4 Geometry Engine y las placas RM7-16 o RM7-64 Raster Manager, el Reality utilizó la placa GE14-2 Geometry Engine y las placas RM8-16 o RM8-64 Raster Manager. El GE14-2 tiene dos procesadores de motor de geometría, en lugar de cuatro como los otros modelos. El RM8-16 y el RM864 tienen 16 o 64 MB de memoria de textura respectivamente y 40 MB de memoria de trama. La realidad también estaba limitada por la cantidad de placas de Raster Manager que podía admitir, una o dos. Cuando se configura al máximo con dos placas RM8-64 Raster Manager, la canalización Reality tiene 80 MB de memoria ráster.
InfiniteReality2E
InfiniteReality2E fue una actualización de InfiniteReality, comercializado como InfiniteReality2, introducido en 1998. Sucedió al conjunto de placas InfiniteReality y fue sucedido por InfiniteReality3 en 2000, pero no se suspendió hasta el 10 de abril de 2001.
Mejora InfiniteReality al reemplazar la placa del motor de geometría GE14-4 por la placa del motor de geometría GE16-4 y las placas RM7-16 o RM7-64 Raster Manager por la placa RM9-64 Raster Manager. La nueva placa Geometry Engine funcionaba a 112 MHz, [6] mejorando el rendimiento de procesamiento de imágenes y geometría. La nueva placa Raster Manager funcionaba a 72 MHz, [6] mejorando el rendimiento de relleno de píxeles con suavizado.
InfiniteReality3
InfiniteReality3 se introdujo en 2000 junto con Onyx 3000 para reemplazar a InfiniteReality2. Se utilizó en los sistemas de visualización Onyx2 y Onyx 3000. La única mejora con respecto a la implementación anterior fue el reemplazo del RM9-64 Raster Manager con el RM10-256 Raster Manager, que tiene 256 MB de memoria de textura, cuatro veces más que el anterior administrador de ráster. Cuando se configura al máximo con cuatro administradores de ráster, la canalización InfiniteReality3 proporciona 320 MB de memoria de ráster.
InfiniteReality4
InfiniteReality4 se introdujo en 2002 para suceder a InfiniteReality3. Se usó en Onyx2, Onyx 3000 y Onyx 350. Es el último miembro de la familia InfiniteReality, a su vez sucedido por UltimateVision basado en ATI FireGL , que se usó en Onyx4. La única mejora con respecto a la implementación anterior fue la sustitución del RM10-256 Raster Manager por el RM11-1024 Raster Manager, que ha mejorado el rendimiento, 1 GB de memoria de textura y 2,5 GB de memoria de ráster, cuatro y treinta y dos veces el de el administrador de ráster anterior, respectivamente. Cuando se configura al máximo con cuatro administradores de ráster, la canalización InfiniteReality4 tiene 10 GB de memoria de ráster. En una configuración máxima con 16 pipelines, InfiniteReality4 contenía 16 GB de memoria de textura y 160 GB de memoria ráster. [7]
Comparación
Las cifras que se presentan en las tablas corresponden a una configuración mínima de 1 tubería y máxima de 16 tuberías, excepto para el modelo Reality, que se restringió a la operación de una sola tubería.
Hardware
Modelo | Tablero del motor de geometría | Tablero de administrador de ráster | Tablero del generador de pantalla | Memoria de textura (MB) | Memoria de trama (MB) | Introducido | Interrumpido |
---|---|---|---|---|---|---|---|
Realidad infinita | GE12-4 | RM6-16 o RM6-64 | DG4-2 o DG4-8 | 16 a 1.024 [8] | 80 a 5.120 [8] | ? | 1999-09-30 |
InfiniteReality2 | GE14-4 | RM7-16 o RM7-64 | DG5-2 o DG5-8 | 16 hasta 1.024 | 80 hasta 5.120 | ? | ? |
Realidad | GE14-2 | RM8-16 o RM8-64 | DG5-2 o DG5-8 | 64 | 40 hasta 80 | ? | ? |
InfiniteReality2E | GE16-4 | RM9-64 | DG5-2 o DG5-8 | 64 a 1.024 [8] | 80 a 5.120 [8] | ? | ? |
InfiniteReality3 | GE16-4 | RM10-256 | DG5-2 o DG5-8 | 256 a 4.096 [7] | 80 a 5.120 [7] | ? | 2003-06-27 |
InfiniteReality4 | GE16-4 | RM11-1024 | DG5-2 o DG5-8 | 1.024 a 16.384 [7] | 2.560 a 163.840 [7] | ? | ? |
Actuación
Modelo | Polígonos (millones por segundo) | Relleno de píxeles (millones de píxeles por segundo) | Representación de volumen (millones de vóxeles por segundo) |
---|---|---|---|
Realidad infinita | 10,9 | ? | ? |
InfiniteReality2 | 10,9 | ? | ? |
Realidad | 5.5 | 94 a 188 [nota 1] | 100 hasta 200 |
InfiniteReality2E | 13,1 a 210 [8] | 192 hasta 6.100 | 200 hasta 6.400 |
InfiniteReality3 | 13,1 hasta 210 | 5.600 | 6.400 |
InfiniteReality4 | 13,1 hasta 210 | 10.200 [nota 2] | 6.400 |
- Notas
- ^ Suavizado, con búfer Z, texturado.
- ^ 8 por 8 submuestreos anti-aliased, con búfer Z, texturizados, iluminados, píxeles de color de 40 bits.
Referencias
- ^ a b c d e f John S. Montrym y col. "InfiniteReality: un sistema de gráficos en tiempo real". ACM SIGGRAPH.
- ^ a b c d e John Montrym, Brian McClendon. "Gráficos InfiniteReality - potencia a través de la complejidad". División de sistemas avanzados, Silicon Graphics, Inc.
- ^ Mark J. Kilgard. "Realización de OpenGL: dos implementaciones de una arquitectura". 1997 SIGGRAPH Eurographics Workshop, agosto de 1997.
- ^ Onyx2 Reality, Onyx2 InfiniteReality y Onyx2 InfiniteReality2 Informe técnico, agosto de 1998. Silicon Graphics, Inc.
- ^ a b c d Guía del producto Onyx2 de Silicon Graphics remanufacturado, junio de 1999. Documento 1073. Silicon Graphics, Inc.
- ^ a b Alexander Wolfe. "Siggraph prepara el escenario para los últimos gráficos". EE Times, 20 de julio de 1998.
- ^ a b c d e "SGI Onyx 300 con hoja de datos de gráficos de la familia InfiniteReality". Silicon Graphics, 3224, 25 de octubre de 2002.
- ^ a b c d e Hoja de datos de Onyx2 GroupStation, agosto de 1998. Documento 1840. Silicon Graphics, Inc.