Arquitectura AMD Radeon HD 7000
A partir de la serie "Southern Islands", AMD comenzó a utilizar una nueva generación de arquitectura de núcleo de gráficos llamada "Graphics Core Next" (GCN), principalmente para mejorar la versatilidad del núcleo de gráficos. potencia de cálculo. Este concepto de diseño es similar al proyecto Larrabee cancelado de Intel, pero la diferencia es que el proyecto de AMD seguirá centrándose en las capacidades de procesamiento de gráficos tradicionales.
Modularidad
En comparación con el motor gráfico, los cambios en el procesador de flujo son relativamente grandes.
Los procesadores de flujo de arquitectura VLIW SIMD de 5 vías anteriores o VLIW SIMD de 4 vías (comúnmente conocida como arquitectura 5D/4D) se optimizaron para las instrucciones: desde el núcleo de pantalla R600, el núcleo de pantalla AMD/ATI. La unidad de procesamiento de flujo consta de un lanzador de instrucciones y cinco "procesadores de flujo" (cuatro unidades de operación vectorial y una unidad de operación superescalar, que luego se cambió a solo cuatro unidades vectoriales. En teoría, al combinar varias instrucciones cortas, se obtiene una instrucción larga, de modo que cada una). La unidad de procesamiento de flujo puede procesar una instrucción 5D/4D al mismo tiempo para lograr el propósito de un gran rendimiento de datos. Pero las desventajas de esto también son obvias: debe depender de la combinación adecuada de instrucciones, y habrá un retraso cuando se combinen las instrucciones. De hecho, la combinación de instrucciones de tiempo de ejecución a menudo no es la mejor combinación, lo que hace que algunos procesadores de flujo estén inactivos, lo que resulta en una baja eficiencia operativa. Como resultado, el núcleo de pantalla de AMD siempre ha dado a la gente la impresión de "parámetros teóricos altos pero reales bajos". actuación". Por lo tanto, AMD abandonó la arquitectura VLIW anterior y cambió a una nueva arquitectura llamada GCN.
La nueva arquitectura GCN está optimizada para subprocesos, aunque aún conserva el diseño SIMD. En la arquitectura GCN, para fortalecer las capacidades generales de procesamiento, AMD comenzó a introducir conceptos como "multiprocesador de transmisión" y "GPC" similares a su rival NVIDIA. El núcleo de visualización de la arquitectura GCN se divide en múltiples unidades informáticas (Unidad de Computación, CU, anteriormente conocida como "matriz GCN"). Cada unidad CU incluye una unidad de búsqueda/arbitraje de instrucciones (Instruction Fetch Arbitration), una unidad de control/decodificación ( Control y decodificación), caché exclusiva de instrucciones/datos de primer nivel, 65 ALU: una unidad escalar (Unidad escalar) y 64 unidades vectoriales (Unidad vectorial (procesador de flujo), estas 64 unidades vectoriales En , cada 16 unidades de operación vectorial forman un 16 Matriz SIMD de bits y comparte exclusivamente un registro temporal de 64 KB. De esta manera, una unidad CU tiene 4 conjuntos de matrices vectoriales SIMD. Al ejecutar tareas informáticas, todos los datos se desmontarán en datos 1D. Cada matriz vectorial SIMD ejecuta un subproceso, por lo que un grupo de unidades CU puede ejecutar cuatro subprocesos de hardware. Un núcleo de visualización de arquitectura GCN contiene varias unidades CU, por lo que todo el núcleo de visualización GCN. Puede ejecutar múltiples tareas/procesos al mismo tiempo. Desde la perspectiva de un conjunto de matrices SIMD como unidad informática, una unidad CU tiene las características de MIMD. Los datos oficiales de Supermicro señalan que se trata de una "arquitectura MIMD basada en una matriz SIMD" ("Southern Islands es una arquitectura MIMD con una matriz SIMD").
De esta manera, mientras siempre haya entrada de datos al núcleo de la pantalla, ningún procesador de flujo estará inactivo. Esto es similar a cómo lo maneja NVIDIA, dividiendo todos los datos en datos 1D. La mejora de la eficiencia puede compensar el aumento de líneas debido a instalaciones de apoyo adicionales. En determinadas circunstancias, los subprocesos se pueden ejecutar fuera de orden para reducir la interacción entre subprocesos.
Motor gráfico
El núcleo está equipado con dos motores de geometría. Cada motor de geometría incluye una unidad de subdivisión de superficies, un ensamblador de geometría y un ensamblador de vértices, así como una matriz de materiales que se puede utilizar para tareas informáticas especiales, como operaciones de convolución, transformadas de Fourier y procesamiento de mapas de materiales.
Solo en términos de cantidad, la unidad de rasterización y teselación sigue siendo inferior a su rival NVIDIA. AMD se centra específicamente en la eficiencia operativa de las unidades relacionadas, afirmando que el rendimiento de teselación de la Radeon HD 7970 es hasta 4 veces mayor que el de la generación anterior Radeon HD 6970. Incluso en promedio, hay una mejora del rendimiento dos veces mayor.
Arbitraje de tareas
Se agregaron mecanismos de programación de subprocesos de primer y segundo nivel. Con este fin, el núcleo ha agregado uno o dos motores de cómputo asincrónicos (ACE) adicionales, que se utilizan para la asignación de tareas y el arbitraje de la unidad CU (incluido su interno)/procesador de flujo, y mejoran las capacidades de ejecución fuera de orden. del núcleo de la pantalla (el núcleo de la pantalla sigue siendo de naturaleza secuencial), mejorando el rendimiento de la geometría y los cálculos generales.
Arquitectura de memoria
Registros temporales
En la arquitectura GCN, para garantizar un acceso rápido a los datos, la cantidad de registros temporales es asombrosa. En una unidad CU, cada grupo de arrays vectoriales SIMD tiene su propio registro temporal, con una capacidad de 64KB por grupo. Una unidad escalar ocupa un registro temporal exclusivo de 4KB. De esta forma, hay un máximo de 5 buffers independientes en una CU. unidad. En la GeForce 600 de arquitectura Kepler de su rival NVIDIA, cada unidad SMX (equivalente a una unidad CU) tiene solo un registro global. Incluso en la GeForce 400 de arquitectura Fermi inicial, cada grupo de unidades SM tiene solo un registro global. Sin embargo, demasiados registros temporales harán que el núcleo de la pantalla sea demasiado grande, lo que también reducirá el uso de transistores de la unidad de computación debido a consideraciones de costo. Tampoco favorece el consumo de energía, el control de la calefacción y la mejora de la frecuencia del reloj. El núcleo tiene aproximadamente 4.313 millones de transistores. Algunos comentarios señalaron que una cantidad tan grande de registros muestra que el algoritmo de uso de registros centrales de la pantalla Radeon HD es deficiente.
Caché y memoria
Las memorias buffer anteriores solo admitían el modo lectura. La nueva memoria intermedia admite modos de lectura y escritura para facilitar el intercambio de datos. Cada unidad CU tiene un caché L1 de 64 KB, dividido en un caché de instrucciones de solo lectura L1 de 32 KB, un caché de datos de solo lectura L1 de 16 KB y un caché de datos de lectura y escritura L1 de 16 KB, todos conectados y accesibles a otras unidades CU para garantizar los datos. sincronización y uso compartido. Además, este diseño está pensado más bien para la futura informática colaborativa de CPU y GPU.
Todas las unidades CU y motores gráficos utilizan una caché L2 global con una capacidad de 768 KB, que admite la sincronización de datos con la caché L1 y la memoria del sistema. Admite la tecnología de memoria virtual X86, que puede asignar parte de la memoria de la pantalla a la memoria del sistema para que el procesador central acceda a ella y resolver el cuello de botella en la tasa de generación de texturas.
El controlador de memoria Radeon HD 7970GDDR5 del modelo superior tiene un ancho de bits de 384 bits. Admite interfaz de bus PCI-E 3,0.
Aceleración
Admite C, C (y posterior C AMP) y otros lenguajes de programación de alto nivel
Admite direccionamiento virtual unificado entre CPU y GPU, admite GPU lee los datos de la memoria y la depuración de la página de la pestaña de la memoria, la sincronización de los datos de la memoria entre la CPU y la GPU
Admite operaciones de punto flotante de doble precisión FP64 y la relación de velocidad de las operaciones de punto flotante de precisión simple es 1:4
Soporta memoria ECC
Se agregó motor de codificación de video VCE e instrucciones de procesamiento de medios SAD, UVD actualizado a la versión 3.0
Soporta OpenCL 1.2
Programa interfaz
El hardware admite todas las funciones de Direct X 11.1 y OpenGL 4.3. Se agregó la función Texturas parcialmente residentes (texturas almacenadas localmente). Admite operaciones ráster y unidad de búfer Z para continuar funcionando de forma independiente, todas las operaciones de textura admiten operaciones de lectura y escritura de caché, etc.