lunes, 22 de abril de 2013

RISC vs. PROCESADORES VECTORIALES


INTRODUCCION
La tendencia histórica era diseñar procesadores cada vez más complejos y potentes, que pudieran ejecutar muchas instrucciones diferentes, con muchos operandos y muchos modos de direccionamiento. El objetivo de estos juegos de instrucciones complejos era:

·         Facilitar el desarrollo de compiladores eficientes
·         Mejorar la eficiencia de la ejecución, pues las instrucciones complejas se podían implementar por microcódigo.
·         Dar soporte a lenguajes de alto nivel más sofisticados.
·         Permitir la compatibilidad entre familias de mainframes de un mismo fabricante.


DESARROLLO

IBM, tras analizar y estudiar programas reales compilados, se dio cuenta que la mayoría de las instrucciones de un programa son sencillas (asignaciones, operaciones aritméticas básicas...) por lo que propusieron una arquitectura de procesador sencilla con muchos registros de propósito general. Los ordenadores RISC, que ejecutara eficientemente las instrucciones sencillas que son las más habituales, y las complejas las descompusiera el compilador en operaciones más sencillas.
Una de las principales características de los RISC es que las instrucciones son fácilmente segmentables, por lo que se consigue finalizar una instrucción por ciclo de CPU. Pero existen límites en la mejora del rendimiento que la segmentación puede conseguir:

·         Duración del ciclo de reloj: El ciclo de reloj se puede reducir aumentando el número de etapas, pero ello implica aumentar las dependencias, y con ello el CPI.
·         Velocidad de búsqueda y decodificación de instrucciones: (cuello de botella de Flynn) Sólo se pueden buscar unas pocas instrucciones por ciclo de reloj.
·         Cache hits rate: Los programas científicos tienen con frecuencia conjuntos de datos activos muy grandes, accedidos a menudo, con baja localidad, lo que da un rendimiento bajo en la jerarquía de memoria, con muchas pérdidas en caché.

Los procesadores escalares tienen un bajo rendimiento para ciertos tipos de problemas matemáticos y de ingeniería donde los problemas se resuelven con operaciones matriciales y vectoriales. Por ejemplo para multiplicar un vector de 64 elementos por un escalar, un procesador escalar deberá hacer 64 operaciones dentro de un bucle. Claramente se observa que esta operación se puede realizar de forma paralela para cada uno de los elementos del vector. Un procesador vectorial podría realizar la operación sobre los vectores en una sola instrucción sin necesidad de bucles.

 Ahi es donde entran los procesadores vectoriales que es una CPU que ejecuta instrucciones que operan sobre un array unidimensional de datos (un vector).
Una máquina vectorial consta de una unidad escalar segmentada y una unidad vectorial. La unidad vectorial dispone de M registros vectoriales de N elementos y de unidades funcionales vectoriales (de suma, resta, multiplicación, división, de carga/almacenamiento, etc) que trabajan sobre registros de ese tipo.

El juego de instrucciones de este tipo de procesadores es evidentemente también vectorial. Un ejemplo de instrucción vectorial sería addv v1,v2,v3, es decir, una operación vectorial que equivalen a un bucle escalar completo que processaria los N elementos del registro vectorial.
La gran utilidad de crear CPUs que tratan con vectores de datos radica en la optimización de las tareas que tiende a requerir una misma operación al ser realizado con un gran conjunto de datos (por ejemplo, una suma o un producto escalar).

Mientras que una CPU escalar debe completar todo el proceso de leer, decodificar y ejecutar cada instrucción y valor con un conjunto de datos, una CPU vectorial puede realizar una simple operació con un conjunto relativamente grande de datos en una sola instrucción. Se disminuye así tanto el ancho de banda de instrucciones requerido como el tiempo de decodificación.

Los procesadores vectoriales son ampliamente utilizados actualmente en computación científica (donde se demandan velocidades de cómputo muy elevadas), en aplicaciones de predicción (meteorológica, de terremotos, de dinámica de fluídos, etc) así como en las tarjetas gráficas que a su vez están incluidas en las consolas de videojuegos más modernas de hoy en día. 


Ventajas del procesamiento vectorial:
  • Permiten una gran segmentación pues los cálculos con cada elemento del vector suelen ser independientes.
  • Cada instrucción vectorial equivale a un bucle, con los procesadores vectorial se evita tener que controlar el bucle.
  • Las instrucciones vectoriales que acceden a memoria tienen un patrón de acceso predecible. Se puede organizar los datos en memoria entrelazadas para obtener un buen rendimiento de acceso a los datos.



Características específicas de las máquinas vectoriales.
  • Instrucciones especiales para operar vectores, incluidas dentro del juego de instrucciones del procesador.
  • Registros separados para vectores y para escalares. Los procesadores vectoriales suelen tener un registro especial para indicar el número de elementos que componen el vector.
  • Ejecución de las operaciones a través de segmentación, no hay varias unidades de ejecución paralelas.
  • Necesidad de sistemas de memoria con un gran ancho de banda.


Fig.1, 2  RISC vs PROCESADOR VECTORIAL
Fuente: (Callicó, 2004)

Fuente: (Callicó, 2004)


BIBLIOGRAFÍA Y PÁGINAS WEB
  • Arquitectura de Computadoras y Procesamiento Paralelo. Kai Hwang y Fayé A. Briggs. McGraw-Hill, 1987.
  • Computer Architecture, single and parallel systems. Mehdi R. Zargham. Prentice-Hall, 1996.
  • Computer architecture: pipelined and parallel processor design. Michael J. Flynn. Jones and Bartlett, 1995.
  • Organización y Arquitectura de Computadores, diseño para optimizar prestaciones. William Stallings. Prentice Hall, cuarta edición, 1996.
  • See MIPS Run. D. Sweetman. Morgan Kaufmann Publications, 2002.
  • Parallel Vector Processing; http://www.epcc.ed.ac.uk/HPCinfo/hware-pvp.html (HPC Info)
  • Arquitectura de computadores; Julio Ortega, Mancia Anguita y Alberto Prieto (Thomson, 2004)


No hay comentarios:

Publicar un comentario