Características de la arquitectura GeForce 3

chip nuevo
Porque al desarrollar GeForce3, los ingenieros de nVidia adoptaron un nuevo enfoque. Anteriormente, el rendimiento se mejoraba mediante la fuerza bruta: aumentando la potencia informática, aumentando las frecuencias, duplicando los canales y las unidades informáticas, pero la arquitectura en su conjunto seguía siendo la misma. Solo aumentó la tasa de relleno, es decir, la velocidad a la que los píxeles llenan una escena tridimensional. Debido a que la tecnología de chips tiene un cierto límite, las tarjetas gráficas nVidia pronto se desequilibraron. El efecto de un ancho de banda de bus de memoria insuficiente ha aparecido, cuando mayores aumentos en el rendimiento se ven obstaculizados por bajas tasas de llegada de datos.
Esto se hizo especialmente notable después del lanzamiento de las tarjetas de video ATI Radeon. Se basaron en el chip Rage6C, que tiene la mitad de canales 3D que la GeForce2 (NV15). Sin embargo, Radeon no era ni la mitad de bueno que su oponente y, en algunos casos, pudo acercarse a él. Y todo porque los ingenieros de ATI desde el principio se centraron en mejorar el equilibrio y neutralizar los cuellos de botella en la arquitectura.
GeForce3 fue el primer intento serio de mejorar la arquitectura para lograr un mejor equilibrio. Además, tiene nuevos bloques que brindan a los desarrolladores la oportunidad de utilizar muchas funciones que antes no estaban disponibles.
| Nombre | GeForce 3 |
| núcleo | NV20 |
| Tecnología de proceso (µm) | 0,15 |
| Transistores (millones) | 60 |
| Frecuencia central | 200 |
| Frecuencia de funcionamiento de la memoria (DDR) | 230 (460) |
| Bus y tipo de memoria | DDR-128 bits |
| Ancho de banda (Gb/s) | 7,3 |
| Tuberías de píxeles | 4 |
| TMU en transportador | 2 |
| Texturas por tiempo | 8 |
| Texturas por pasada | 4 |
| Transportadores de vértice | 1 |
| Sombreadores de píxeles | 1,1 |
| Sombreadores de vértices | 1,1 |
| Velocidad de llenado (Mpix/s) | 800 |
| Tasa de llenado (Mtex/s) | 1600 |
| DirectX | 8.0 |
| Antialiasing (Máx.) | EM - 4x |
| Filtrado anisotrópico (máx.) | 8x |
| Capacidad de memoria | 64 / 128 MB |
| Interfaz | AGP 4x |
| RAMDAC | 350 MHz |
GPU - Esta es la unidad de procesamiento de gráficos
Cuando se anunció la GeForce256, NVIDIA afirmó que era el primer procesador gráfico del mundo... GPU. Sin embargo, a diferencia del procesador central, CPUPrácticamente no tenía capacidades de programación reales. Claro que podía realizar un conjunto específico de operaciones, pero este conjunto estaba estrictamente definido por los desarrolladores del chip, no por los propios programadores. Las operaciones de transformación de coordenadas de hardware, iluminación (unidad T&L) y combinación de texturas (unidad NSR - rasterizador) no siempre eran adecuadas para las tareas que los desarrolladores de juegos se planteaban. Por lo tanto, la compatibilidad total con T&L aún es poco frecuente.
Con el lanzamiento de GeForce3 la situación cambió radicalmente. La tecnología nfiniteFX (de dos palabras: Infinite y Effects) preveía la presencia de dos nuevos mecanismos: Vertex Processor y Pixel Processor, cada uno de los cuales permitía, utilizando un conjunto de comandos de bajo nivel, crear todo tipo de efectos especiales, el número de los cuales (afirmó nVidia) era infinito.
El procesador de vértices trabajaba en la etapa de conversión de las coordenadas de los vértices del triángulo a una forma adecuada para su posterior procesamiento. Con la ayuda de un conjunto de comandos del procesador de vértices, los desarrolladores podían crear efectos de iluminación, morphing, animación por fotogramas clave y mucho más. Para crear, por ejemplo, una fase de animación, solo tenían que especificar las coordenadas de inicio y fin, y todo lo demás se calculaba. GPUEl ejemplo es bastante arbitrario, pero creo que la idea es clara.
Además, por primera vez, un acelerador 3D podría funcionar no sólo con polígonos, sino también con curvas de segundo y superior orden. El desarrollador no necesitaba preocuparse por dividir la superficie curva en los triángulos que la componen: Vertex Processor lo haría con un determinado grado de precisión.
Pixel Processor es un desarrollo posterior de la tecnología NSR (nVidia Shading Rasterizer). El proceso de aplicación de múltiples texturas (por ejemplo, para obtener iluminación o volumen) era totalmente programable, permitiendo combinar hasta ocho texturas diferentes de diferentes tuberías. Además, el procesador de píxeles podría trabajar con texturas que establezcan no sólo el color, sino también otras propiedades de la superficie: la reflectividad, por ejemplo, o el relieve. Esto fue especialmente útil al simular una superficie de agua: la GeForce3 podía simular agua en tiempo real, lo que se demostró en los puntos de referencia optimizados para ella.
Todas las funciones anteriores se implementaron utilizando el conjunto de comandos de interfaz DirectX 8, que fue desarrollado especialmente para la nueva generación de aceleradores 3D. Las tarjetas de video que no tenían soporte completo de hardware para DirectX 8 (y esto es todo excepto GeForce3) podían implementar operaciones de vértice usando el procesador, pero las operaciones de píxel no estaban disponibles para ellas. La interfaz OpenGL tampoco se hizo a un lado: recientemente se han agregado a su composición todas las extensiones necesarias.
Arquitectura de memoria ultrarrápida
Esta es la traducción de otra innovación arquitectónica, utilizada por primera vez en GeForce3. Lightspeed Memory Architecture (LMA) es un conjunto de tecnologías diseñadas para compensar el bajo rendimiento (por razones tecnológicas) del bus de memoria de video local. El principal inconveniente de los chips gráficos nVidia que existían antes de GF3 era la falta de equilibrio entre el núcleo gráfico y el subsistema de memoria. La velocidad en los modos de vídeo de 16 bits era mucho mayor que la velocidad en los de 32 bits, ya que la memoria simplemente no podía hacer frente a la carga que se le imponía para producir grandes cantidades de datos. GeForce3 tenía varios mecanismos diseñados para aumentar la eficiencia de la memoria.
Memoria de barra transversal Controller es un principio completamente nuevo para organizar el bus de memoria. GeForce3 no tenía un controlador de 128 bits, sino cuatro controladores de 32 bits, cada uno de los cuales funcionaba independientemente de sus vecinos. ¿Por qué es esto necesario? Para optimizar los accesos a la memoria. Si el chip solicitaba dos bloques de datos de 32 bits cada uno, ubicados de forma no consecutiva en la memoria, los recibía a la vez, de dos controladores. Ya no era necesario esperar hasta que se leyera primero una palabra de 256 bits y luego otra.
Esta arquitectura fue especialmente importante al procesar escenas 3D muy detalladas, cuando cada objeto constaba de muchos triángulos pequeños (de un par de píxeles de tamaño). Para obtener una textura de dos píxeles, no era necesario desperdiciar grandes cantidades de datos en el bus.
Además del nuevo controlador, se utilizaron cachés de gran tamaño, capaces de satisfacer las solicitudes de tuberías en ejecución sin acceder al bus. No especificaremos los tamaños exactos de los cachés y los mecanismos de su funcionamiento, pero su presencia está indirectamente indicada por la gran cantidad de transistores usados.
Subsistema de visibilidad: un conjunto de métodos para mejorar la eficiencia del trabajo con el búfer Z. Como sabes, cada objeto en la pantalla tiene una tercera coordenada, Z, que especifica su distancia del observador. De acuerdo con él, los objetos se dibujan en la pantalla, comenzando por los más distantes. Evidentemente, algunos de ellos quedan completamente cubiertos por otros y son completamente invisibles. Pero el acelerador 3D todavía les dedica un tiempo precioso, llenándolos "honestamente" de texturas. Este fenómeno se llama sobregiro. El coeficiente de sobregiro en los juegos modernos oscila entre 1.3 y 3.5 dependiendo del número de objetos.
ATI fue el primero en utilizar la tecnología de optimización del búfer Z, llamándola HyperZ. Es gracias a esto que la pantalla Radeon puede competir con la GeForce2 a altos niveles. GeForce3 también utilizó esta optimización. Z-Occlusion Culling es un mecanismo para descartar objetos invisibles y excluirlos del procesamiento.
El mecanismo de compresión Z-buffer utilizado en Radeon también se implementa en el núcleo GeForce3. Según los desarrolladores del chip, esto permitió cuadriplicar la cantidad de datos en este búfer.
Pero el rápido Z-clear solo se usó en Radeon. nVidia consideró innecesario crear algo como esto. Sin embargo, ella lo sabía mejor.

El antialiasing es aún más rápido
El inconveniente más notable de la imagen generada por el acelerador 3D es el efecto de “aliasing” en los bordes de los triángulos que forman la imagen. Este es un fenómeno inevitable debido al hecho de que la pantalla del monitor consta de una matriz rectangular de píxeles y las líneas resultan discontinuas. Para suavizar los bordes de los objetos, debe aumentar la resolución (luego los píxeles se harán más pequeños) o utilizar el método FSAA (Full Screen Anti-Aliasing), en el que los colores de los píxeles vecinos se promedian en todo el pantalla. Todos los aceleradores 3D anteriores utilizaban un mecanismo de supermuestreo. Esta es una solución frontal al problema: se construye una imagen en el búfer con una resolución aumentada varias veces verticalmente, horizontalmente o en ambas direcciones a la vez. Después de esto, el color del píxel (muestra) se obtiene promediando los colores de los píxeles vecinos en la imagen ampliada. En este caso, surgen dos efectos desagradables: en primer lugar, la imagen se "borra" notablemente y, en segundo lugar, la velocidad cae bruscamente, ya que, de hecho, el acelerador 3D funciona con una resolución más alta.
GeForce3 utilizó dos nuevos mecanismos. El primero es un algoritmo con el nombre impronunciable Quincunx. El punto es utilizar no una simple máscara de 2 o 4 muestras de píxeles vecinos, sino una de 5 muestras. Aquellos. Se toma un bloque de 3x3 y el valor resultante se calcula en función de los cinco, en lugar de nueve, píxeles de ese bloque. Como resultado, a costa de un FSAA de 2 muestras, obtuvimos la calidad de un FSAA de 4 muestras.
El segundo algoritmo es el multimuestreo, que nVidia denominó HRAA (High-Resolution Anti-Aliasing). Se basa en la generación de la misma imagen de alta resolución, sólo que el color de los píxeles, que como resultado se fusionarán en uno solo, no se calcula de nuevo cada vez. Si un grupo de píxeles que se van a contraer en uno se encuentra dentro de un triángulo, entonces se rellena con el mismo valor de color. Si el grupo se encuentra en el límite, se calcula de la forma habitual. Por lo tanto, la cantidad de cálculos al realizar HRAA se redujo varias veces y la calidad mejoró, ya que las texturas dentro de los triángulos no se suavizan.
GeForce3 supuso una revolución en el mundo de los aceleradores de vídeo. Muchas innovaciones que mejoran radicalmente la arquitectura del chip. Muchas funciones nuevas para desarrolladores. Alto rendimiento, que podría aumentarse un poco más mediante overclocking, controladores bien depurados.
Max Payne





