# Serie Radeon HD 7000

La serie Radeon HD 7000 es una familia de tarjetas gráficas del fabricante de hardware AMD. Previstas para salir al mercado en el primer trimestre de 2012 incorporan una serie de nuevas tecnologías con respecto a las anteriores generaciones de tarjetas gráficas que las hacen muy interesantes. Siguiendo con la tradición de utilizar archipiélagos o islas, el nombre en clave para esta generación de chips gráficos es Southern Islands (Islas Sureñas) y los nombres de los distintos chips que la forman tienen los nombres del conjunto de islas escogido, en este caso: Cabo Verde, Pitcairn, Tahití y Nueva Zelanda.
Esta gama de chips gráficos estrenan la arquitectura gráfica de AMD denominada Graphics Core Next.

## Características técnicas

* Fabricadas con litografía de 28 nm en las plantas de TSMC.
* Soporte para direccionamiento en el espacio de memoria x86, siendo por tanto un espacio de memoria unificado para CPU y GPU. Esta característica viene dada por la arquitectura GCN y será implementada finalmente en la siguiente generación de chips gráficos, los Radeon HD 8000.
** Direccionamiento de 64 bits.
** La GPU envía interrupciones a la CPU en caso de errores de memoria, como por ejemplo fallos de página. Es decir, la GPU puede acceder a la memoria de la CPU, sin embargo esto no significa que el espacio de memoria de la CPU y la GPU esté unificado: la CPU sigue sin poder acceder directamente a la memoria de la GPU.
** Funcionalidad de memoria virtual completamente transparente. Dado que los sistemas operativos actuales no lo permiten AMD ha tenido que implementarla, al menos para gráficos, mediante extensiones a DirectX y OpenGL pudiendo paginar entre la memoria de la tarjeta y la memoria principal del sistema y a su vez de la memoria principal del sistema al soporte de almacenamiento masivo, permitiendo por ejemplo megatexturado por hardware, técnica que actualmente se ha realizado por software en juegos como Enemy Territory: Quake Wars o Rage. Esta implementación de memoria virtual se ha bautizado Texturas Parcialmente Residentes En cuanto haya soporte por parte de los SOs para IOMMUs incluidas en GPUs, esas extensiones dejarían de ser necesarias. y requerirá soporte por parte de los desarrolladores de videojuegos u otro software para sacarle ventaja debido a su implementación en forma de extensiones a librerías.
** Soporte completo para lenguajes de alto nivel como C++, lo cual incluye entre otros los punteros, funciones virtuales, excepciones y recursividad.
* Soporte para PCI-E 3.0.
* Cambio de arquitectura VLIW4 a RISC MIMD.
* Soporte para PowerTune, regulando dinámicamente el rendimiento para ajustar el consumo a un TDP determinado.
* Uso como método de refrigeración cámara líquida en vez de cámara de vapor. La diferencia entre ambos reside en que la cámara líquida tiene mayor cantidad de refrigerante que la cámara de vapor, además se ha mejorado el contenedor del líquido para evitar pérdidas por porosidad del material, reduciendo costes de mantenimiento a largo plazo.
* AMD ZeroCore. Gracias a ZeroCore las tarjetas gráficas disminuyen drásticamente su consumo en estado de reposo, llegando a parar el sistema de refrigeración en el estado más bajo de consumo energético. ZeroCore supone también una mejora sustancial en entornos CrossFire dado que cuando no son necesarias las tarjetas gráficas adicionales, éstas son completamente desconectadas dejando tan sólo una tarjeta en funcionamiento. Estos modos de funcionamiento son primicia en el sector.
* Eyefinity 2.0. Admite hasta seis monitores en una misma tarjeta gráfica. Esta nueva versión de Eyefinity permite además conectar pantallas con distintas resoluciones por lo que no tienen porqué tener el mismo tamaño, siempre teniendo en cuenta un límite de 15360 píxeles en horizontal y en vertical (16K x 16K). En el caso concreto de uso de Microsoft Windows, también se puede configurar en qué pantalla situar la barra de tareas para no tenerla ocupando todo el ancho de múltiples pantallas haciendo incómodo el uso de la barra de tareas y menú Inicio.
* UVD 3 mejorado. Nueva versión del sistema de aceleración de decodificación de vídeo empleado en las tarjetas AMD. Se añade soporte para MVC (Multi View Codec) permitiendo decodificación acelerada por hardware completa para contenidos 3D estereoscópicos, aceleración para MPEG-4 y DivX y también soporte para dos flujos de vídeo simultáneos en alta definición.
* Video Codec Engine (VCE). Similar al QuickSync de intel, permite codificar vídeo. Tiene sin embargo una notoria diferencia y es que aparte de poder comprimir vídeo utilizando hardware de función fija, permite un modo híbrido en el cual emplea los recursos de computación disponibles en la GPU siendo aún más rápido y permitiendo una compresión más ajustada con mejor calidad, acercándose lo más posible a los codecs puramente software que permiten compresión con calidad de archivo.
Una de las motivaciones que AMD encontró en cambiar completamente de tipo de arquitectura estriba en que VLIW no se adapta a los cambios en el uso del segmentado (pipeline) de los procesadores gráficos. Esto le ocurrió en los chips anteriores a los Radeon HD 6000 que eran VLIW5 a pesar de ser unificados dado que el uso de los gráficos todavía estaba muy orientado a DirectX 9. Luego cambió a VLIW4 para las Radeon 6000 dado que los SPUs estaban siendo infrautilizados, por tanto con VLIW4 cada SPU tendría de nuevo una mayor utilización y además podría poner más. Sin embargo esto seguirá siendo un problema si las tendencias continúan cambiando. De ahí que finalmente haya realizado este cambio hacia una arquitectura más flexible.

## Microarquitectura

La unidad básica de Graphics Core Next son las unidades SIMD. Estos bloques se componen de 16 ALUs cada uno con 64KB en registros. Al ser unidades SIMD significa que trabajan en conjunto sobre vectores de hasta 16 elementos. Varias unidades SIMD formarán lo que AMD ha llamado Compute Unit, CU. Estas CUs estarán formadas por 4 unidades SIMD además de una unidad escalar para realizar el trabajo que las ALUs simples no puedan hacer, como saltos condicionales o funciones trascendentales (seno, coseno ...). Así pues, cada CU podrá trabajar sobre 4 instrucciones a la vez, y cada una de esas instrucciones sobre conjuntos de 16 elementos de ancho, siendo por tanto una arquitectura MIMD. Estas instrucciones además pueden pertenecer a distintos hilos de ejecución o wavefronts. Estos wavefronts serán paquetes de 64 operaciones en las que se trata por ejemplo un conjunto de 64 píxeles con la operación a realizar a cada uno. Esto nos da una cadencia de un wavefront cada 4 ciclos, o 1/4 de wavefront por ciclo (una SIMD realiza 16 operaciones en un ciclo con sus 16 ALUs). Y al tener 4 unidades SIMD esto significa que resolvemos en promedio 1 wavefront por ciclo por CU.
Dentro de la CU también tenemos la unidad de salto, una unidad de 64 KB de almacenamiento compartido para las diversas unidades SIMD, el planificador que enviará a cada unidad SIMD la tarea sobre la que trabajar, 1 unidad escalar, 4 unidades de texturado junto con sus 4 unidades de lectura y escritura de texturas y 16 KB de caché L1.
Como podemos observar, este conjunto de elementos nos permite un máximo aprovechamiento de las unidades de cómputo, a diferencia de la arquitectura VLIW empleada anteriormente donde las unidades de cómputo trabajaban obligatoriamente sobre la misma tarea y por tanto si había dependencias se dejaban elementos sin utilizar hasta que se hubieran ejecutado las instrucciones del wavefront bloqueante en vez de aprovechar esos elementos vacíos para ejecutar las instrucciones de un wavefront no dependiente.
En arquitecturas anteriores a GCN, como pueda ser Cayman, la empleada en las Radeon HD 6000, los wavefronts trataban de ejecutarse con paralelismo a nivel de instrucción lo que significaba que se trabajaba sobre una única tarea y de sus wavefronts se extraían sus instrucciones para ejecutarlas en paralelo. En GCN este ya no es el caso y simplemente pasan a ejecutarse wavefronts que no tienen porqué ser de la misma tarea. A pesar de todo esto, Graphics Core Next no es una arquitectura fuera de orden. No hace reordenamiento de instrucciones, únicamente se dedica a ejecutar wavefronts de manera más eficiente, sin dejar que una dependencia deje recursos inutilizados colocando otro wavefront en ejecución, que puede ser de otra tarea que nada tenga que ver, y ejecutar después el wavefront pendiente de la tarea original una vez se haya terminado con el que dependía.
Añadir un planificador por hardware a GCN requiere de muchos transistores que no van dedicados específicamente a poner más recursos en capacidades gráficas, sin embargo mejora significativamente las capacidades de cómputo al permitir un mejor aprovechamiento de los recursos y en un futuro inmediato los videojuegos empezarán a utilizar cada vez más GPGPU con tecnologías como DirectCompute u OpenCL.

### Fabricación

La primera encarnación de la arquitectura GCN se verá en la familia de tarjetas gráficas y GPUs Radeon HD 7000, que en el caso de la versión completa del chip empleado nos lleva a un total de 2048 ALUs o stream processors y 128 unidades de texturado. Esto significa que tiene un total de 32 CUs (4 unidades SIMD por CU con 16 ALUs por unidad SIMD hacen el total de 2048 ALUs y 128 unidades de texturado con 4 por CU). Sin embargo hay evidencias de que debido a problemas de productividad por oblea en el proceso de fabricación de 28 nm de TSMC, en realidad GCN se componga de chips con 2304 ALUs o lo que es lo mismo, con 36 CUs, quedando 4 CUs desactivadas para compensar los problemas de producción de las obleas. Esto parece confirmarse con la nueva gama de chips los cuales parecen llevar esos 4 CUs (256 ALUs) activados lo cual indica que el proceso de 28nm de TSMC ha madurado y permite un mejor aprovechamiento de las obleas de silicio..

## Familia
### Radeon HD 7970

La más potente de la serie HD 7000, siendo la versión completa de la familia, y de la cual la tarjeta HD 7990 lleva dos, ésta GPU tiene un total de 4313 millones de transistores, un 63% más en comparación con los 2640 millones de la anterior GPU que sustituye, la HD 6970. El tamaño del dado o núcleo ha sido disminuido, pasando de 389 mm² a 365 mm², esto supone una reducción del 6%. Como podemos observar no es un cambio de generación completo dado que no se ha doblado el número de transistores ni tampoco se emplea la misma cantidad de área en el chip. Lleva un total de 2048 stream processors o ALUs, 128 unidades de texturado y 32 operadores de rasterización. Esto significa un aumento de un tercio en el número de ALUs y unidades de texturado mientras que la cantidad de operadores de rasterización se ha mantenido igual, sin embargo el rendimiento se ha visto aumentado debido al uso más eficiente de los mismos en esta nueva microarquitectura.
El bus de memoria es de 384 bits, un aumento del 50% con respecto a los 256 bits de generaciones anteriores. Esto nos lleva a un total de 6 controladores en doble canal de bancos de memoria teniendo cada controlador un ancho de 64 bits. Al ser doble canal, normalmente tendrán asignados dos chips de memoria entrelazados, para un total de 12 chips de memoria en las tarjetas que tengan la GPU poblada con todos los componentes posibles. La HD 7970 se acompañará normalmente por 3072 MB de memoria.
Las frecuencias de funcionamiento del núcleo y memoria son de 925 MHz y 1375 MHz respectivamente. La memoria es de tipo GDDR 5 por lo que su velocidad efectiva es de 5500 MHz. Según varios análisis se ha podido subir la frecuencia tanto de GPU como de memoria a 1125 MHz y 1575 MHz sin ningún tipo de alteración en el voltaje y con el sistema de refrigeración de referencia. Tests de la frecuencia máxima que podría alcanzar el núcleo han sido realizados utilizando nitrógeno líquido como refrigerante, pasando de forma estable la prueba de rendimiento 3D Mark 11 con una frecuencia de 1650 MHz en el núcleo, eso significa un aumento del 78% con respecto a la frecuencia de referencia.
Con todos los datos en mano, se ha demostrado el gran potencial del proceso de fabricación de 28 nm y de hecho recientemente se han filtrado imágenes confirmando la preparación por parte de los fabricantes de tarjetas gráficas de modelos con una frecuencia muy por encima de la de referencia, con velocidades de hasta 1335 MHz y con capacidades de memoria de hasta 6144 MB o 6 GB. Estas velocidades la ponen a la altura de la tarjeta con dos GPUs de la anterior generación, la Radeon HD 6990.
Como no podía ser menos, también incorpora todas las características adicionales habituales para el disfrute de contenidos multimedia, tales como UVD 3.0, Eyefinity 2.0, ZeroCore, múltiples salidas de vídeo que en el modelo de referencia consisten en dos conectores Mini DisplayPort, un HDMI y un DVI. Versiones personalizadas pueden emplear simplemente seis conectores Mini DisplayPort y utilizar adaptadores para extraer de ellos señales HDMI o DVI, adaptadores que en cualquier caso AMD ha dicho irán incluidos con las tarjetas gráficas sean modelos de referencia o no.

### Ghz Edition

En junio de 2012 fue lanzada una mejora del chip gráfico HD 7970. Esta mejora incrementaba la frecuencia de reloj al tiempo que disminuía el voltaje. Concretamente la frecuencia era aumentada de 925 MHz a 1100 MHz, y el voltaje se veía reducido de 1,175 voltios a 1,02 voltios. Menor consumo y mayor rendimiento. Esta mejora fue posible gracias a las mejoras en el proceso de fabricación de transistores a escala 28 nm por parte de TSMC.