ARQUITECTURAS
PARALELAS
Un computador paralelo es un conjunto de elementos de proceso que se comunican y cooperan para resolver rápidamente grandes problemas, se puede decir que la arquitectura paralela es la unión de la arquitectura convencional y la arquitectura de comunicación.
El procesamiento paralelo es
un término que se usa para denotar un grupo de técnicas significativas
que se usan para proporcionar tareas simultáneas de procesamiento de datos con
el fin de aumentar la velocidad computacional
de un sistema de computadoras. En
lugar de procesar cada instrucción en forma secuencial como es una computadora convencional,
un sistema de procesamiento paralelo puede ejecutar procesamiento concurrente
de datos para conseguir un menor tiempo de
ejecución. Por ejemplo, cuando se ejecuta una instrucción en la ALU, puede
leerse la siguiente instrucción de la memoria.
“La
arquitectura paralela o de líneas paralelas (pipe-line) es una técnica en la
que se descompone un proceso secuencial en sub operaciones, y cada subproceso
se ejecuta en un segmento dedicado especial que opera en forma concurrente con
los otros segmentos” (Morris, Pág. 322.)
El procesamiento paralelo puede considerarse de diversos niveles de complejidad. En el nivel mas bajo, distinguimos entre operaciones seriales y paralelas mediante el tipo de registros que utilizan. Los registros de corrimiento operan en forma serial un bit a la vez, mientras que los registros con carga paralela operan con todos los bits de la palabra en forma simultanea.
ARQUITECTURA
DE FLYNNEl procesamiento paralelo puede considerarse de diversos niveles de complejidad. En el nivel mas bajo, distinguimos entre operaciones seriales y paralelas mediante el tipo de registros que utilizan. Los registros de corrimiento operan en forma serial un bit a la vez, mientras que los registros con carga paralela operan con todos los bits de la palabra en forma simultanea.
La taxonomía de Flynn es una clasificación de
arquitecturas de computadoras propuesta por Michael J. Flynn. En 1972.Las cuatro
clasificaciones definidas por Flynn se basan en el número de instrucciones
concurrentes (control) y en los flujos de datos disponibles en la arquitectura.
En 1966, Flynn propuso un sencillo modelo de organización de computadores que aun en la actualidad se utilizan conforme fue propuesto. Flynn Escrutó los componentes mas decisivos de la maquina, contando el numero de instrucciones paralelas y su flujo de datos, clasificando a posteriori los sistemas de información de las siguiente forma:
En 1966, Flynn propuso un sencillo modelo de organización de computadores que aun en la actualidad se utilizan conforme fue propuesto. Flynn Escrutó los componentes mas decisivos de la maquina, contando el numero de instrucciones paralelas y su flujo de datos, clasificando a posteriori los sistemas de información de las siguiente forma:
A. SISD: Single Instruction; Single Data.
B. SIMD: Single Instruction; Multiple Data.
C. MISD: Multiple Instruction, Single data.
D. MIMD: Multiple Instruction; Multiple Data
Las maquinas utilizadas por
Flynn fueron los IBM 740 y 7090, modelos SISD de la época; Hoy en día podríamos
utilizar los MIPS R2000 y R3000 como modelos SISD. Proponemos pues como
arquitecturas para este tema, los SIMD y los MIMD.
· Los computadores SIMD operan perfectamente
sobre arrays (Vectores de datos). SIMD posee múltiples unidades funcionales
para paralelizar el trabajo. Su virtud es que todas estas unidades funcionales
de ejecución en paralelo están sincronizadas y todas responden adecuadamente a
una sola instrucción que proviene de un único contador de programa.
ARQUITECTURAS SEGMENTADAS
La
segmentación (pipelining) es una técnica de implementación de procesadores que
desarrolla el paralelismo a nivel de intrainstrucción. Mediante la segmentación
se puede solapar la ejecución de múltiples instrucciones. El procesamiento segmentado
aprovecha la misma filosofía de trabajo de fabricación en cadena, donde cada
etapa de la segmentación completa una parte (subtarea) de la tarea total. Los
segmentos están conectados cada uno con el siguiente, que forma de la salida de
uno pasa a ser la entrada de la siguiente. Así los segmentos configuran un
cauce a través del proceso de la tarea deseada, los procesadores segmentados
también se conocen como procesadores encauzados. Una gran contribución de la
segmentación es la posibilidad de comenzar una nueva tarea sin tener que acabar
una anterior. La medida de eficacia de un procesador segmentado no es el tiempo
transcurrido desde que comienza y termina una tarea, sino el tiempo máximo que
puede pasar entre la finalización de dos tareas consecutivas.
Evidentemente
no es posible la segmentación sin el incremento de recursos de procesos.
Fig.1. Tarea procesada
secuencialmente.
Fuente:(Bastida, 2006).
Fig.2. Tarea ejecutada
mediante un procesador segmentado.
Fuente:(BASTIDA, 2006).
Al número de segmentos del procesador, se le
llama profundidad de la segmentación. Para que el tiempo de latencia de un
procesador segmentado sea mínimo el procesador debe estar equilibrado, es decir
que todas las tareas divididas tarden el mismo tiempo.
CLASIFICACIÓN
Puede establecerse una clasificación de los
procesadores segmentados atendiendo al uso que se da a la segmentación. Esta
clasificación fue propuesta por Handler (1977):
- Segmentación Aritmética.
- Segmentación de instrucciones.
- Segmentación de procesadores.
CONFLICTOS
Y SUS TIPOS
Hay circunstancias que pueden disminuir el
rendimiento de un procesador segmentado debido a que provocan la detención del
cauce. Estas circunstancias se denominan riesgos o conflictos, existiendo tres
tipos:
- Conflictos estructurales.
- Conflictos por dependencia de datos.
- Conflictos de control (BASTIDA, 2006).
BIBLIOGRAFÍA
- BASTIDA, Javier Ibañez (2006). Arquitectura de Computadores. Universidad de Valladolid. España.
- M. Morris Mano (1994), Arquitectura de computadoras 3 Edicion. Editorial: Phyllis Morgan.
No hay comentarios:
Publicar un comentario