ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Procesamiento Vectorial


Enviado por   •  10 de Enero de 2015  •  3.463 Palabras (14 Páginas)  •  275 Visitas

Página 1 de 14

INTRODUCCIÓN

Día a día las computadoras están más involucradas en las actividades humanas, están presentes en todas nuestras tareas cotidianas, permitiendo ejecutarlas de una manera más rápida y eficiente.

De la misma forma, muchas actividades industriales, económicas, militares y de investigación, requieren procesar grandes volúmenes de datos a través de numerosos y complejos cálculos, y obtener resultados en lapsos de tiempo razonables. El análisis estructural, predicción meteorológica, investigaciones nucleares y de alta energía, diagnóstico médico, simulaciones en aerodinámica o hidrodinámica, inteligencia artificial y sistemas expertos, navegación y detección, defensa, ingeniería química y genética, son algunos campos que se puede mencionar, en los que la necesidad de manejar volúmenes de datos cada vez mayores, de manera rápida y precisa, puede sobrepasar las capacidades de los computadores disponibles. Esta necesidad es el principal impulsor de computadores cada vez más poderosos y de mayores prestaciones.

Una gran cantidad de los problemas planteados en áreas como las mencionados anteriormente, se pueden expresar mediante la utilización de modelos que son expresados en matrices y vectores. Esto hace posible utilizar al máximo un tipo de arquitectura específica para esta clase de datos, y es la de los procesadores vectoriales.

Los primeros procesadores vectoriales aparecieron en la década de los 70. Su evolución tuvo un mayor auge en los siguientes veinte años, declinando tras las mejoras en los procesadores escalares, particularmente en los microprocesadores.

Actualmente la mayoría de las CPU implementan arquitecturas que tienen instrucciones características de algunos procesadores vectoriales. También muchas consolas de videojuegos y el hardware para gráficos de computadora actuales, utilizan procesamiento vectorial en sus arquitecturas.

El amplio espectro de uso, la importancia de su desarrollo y el ser la base de la mayoría de las supercomputadoras, hacen su estudio un tópico muy interesante para el estudiante de la asignatura Arquitectura del Computador, de la Universidad Nacional Abierta.

1. PROCESAMIENTO VECTORIAL

Un procesador vectorial es, básicamente, una unidad central de proceso (CPU) que tiene la capacidad de implementar un conjunto de instrucciones que operan en arreglos unidimensionales de datos. Estos arreglos son llamados vectores.

Esto lo convierte en un diseño de CPU que puede ejecutar operaciones matemáticas sobre múltiples datos de forma simultánea. Así, el término Procesamiento Vectorial toma muchos significados. En general, “Procesos que operan sobre muchas señales a la vez, las cuales están combinadas como un vector” (Vega, p. 3).

Figura 1. Procesamiento Vectorial de una sola señal. Fuente: Vega, 2011.

Si las muestras se derivan de una misma señal, tenemos la situación de procesamiento de bloques o segmentos que se ilustra en la figura anterior (Figura 1).

En un enfoque más general, el Procesamiento Vectorial consiste en operar sobre múltiples muestras provenientes de varias señales que llegan simultáneamente. Este proceso puede producirse en dos formas:

• Señales en modo flujo: En este esquema se ejecutan todos los cálculos relacionados con una muestra de entrada, y la muestra es descartada antes de que llegue la siguiente muestra de datos (Figura 2).

• Señales en modo bloque: En este tipo de procesamiento, se almacena en memoria un bloque de muestras, luego son procesadas y se produce la muestra de salida (Figura 3).

Figura 2. Procesamiento Vectorial en Modo Flujo. Fuente: Vega, 2011.

Figura 3. Procesamiento Vectorial en Modo Bloque. Fuente: Vega, 2011.

1. TAXONOMÍA DE FLYNN

Michael Flynn propuso en 1972, una clasificación compuesta por cuatro (4) categorías, establecidas en función de la multiplicidad de los flujos de datos y de instrucciones que se conjugan en la ejecución de estos sistemas, las cuales son:

• SISD (Simple flujo de inst.-simple flujo de datos): Incluye a todos los sistemas de un solo CPU. Las ejecuciones se ejecutan de forma secuencial pero puede haber segmentación. Ejemplos de esta categoría son los computadores viejos IBM 370 e IBM 7090, el VAX y el Intel 8086.

• SIMD (Simple flujo inst.-multiples flujos de datos): Comprende una gran diversidad de procesadores paralelos que ejecutan una misma instrucción sobre un conjunto de datos al unísono o solapadamente.

• MISD (Múltiples flujos inst.-simple flujo de datos): Este modelo propone la existencia de n unidades procesadoras; cada una recibe distintas instrucciones que operan sobre el mismo flujo de datos. La salida de un procesador pasa a ser la entrada del siguiente.

• MIMD (Múltiples flujos inst-multiples flujos de datos): Incluye a todos los sistemas paralelos que constan de múltiples procesadores autónomos trabajando cooperativa y coordinadamente en la solución de uno o más problemas de forma simultánea.

Los procesadores vectoriales representan una tendencia hacia el aprovechamiento del paralelismo de datos presente en las aplicaciones y por lo tanto implementan un paralelismo SIMD (Single Instruction, Multiple Data). Esta técnica permite procesar un conjunto de datos con una sola instrucción, de manera síncrona.

Las CPUs vectoriales consiguen esto usando áreas de memoria especialmente diseñadas para este propósito, denominadas registros vectoriales. Los registros vectoriales pueden ser rellenados por las instrucciones vectoriales, devolviendo resultados mucho más rápidos que los tradicionales procesadores escalares. Las aplicaciones de cálculo científico y aquellas de tratamiento de imagen, son las más beneficiadas por esta arquitectura.

Según Lanchares (s/f), desde el punto de vista arquitectónico la utilización de operaciones vectoriales presenta las siguientes propiedades:

• El cálculo sobre cada componente es independiente del cálculo de los demás.

• Una instrucción vectorial puede desplazar a un bucle de operaciones escalares sobre los elementos de un vector. De esta manera se reduce el número de instrucciones que es necesario buscar en memoria para ejecutar un cálculo.

• Cuando los elementos de un vector están en posiciones consecutivas de la memoria, el acceso a los elementos de este vector es secuencial y conocido. Esto facilita la utilización de memorias entrelazadas para acelerar los procesos (p. 28).

De lo anterior se desprende en primer término, que al ser cada resultado independiente de los demás, el procesador puede efectuar los cálculos simultáneamente; en segundo lugar hay una economía en cantidad de instrucciones al reemplazar

...

Descargar como (para miembros actualizados)  txt (24 Kb)  
Leer 13 páginas más »
Disponible sólo en Clubensayos.com