miércoles, 10 de abril de 2013

PROCESAMIENTO PARALELO VS SEGMENTADO




INTRODUCCIÓN.-

Se define a la arquitectura segmentada como un primer mecanismo de paralelismo debido a que varias instrucciones consecutivas se ejecutan al mismo tiempo casi en paralelo.
A pesar de que la segmentación pretende realizar paralelismo este sigue siendo una máquina de ejecución con un único flujo de instrucciones.
El primer paso hacia la paralelización de las arquitecturas, se da con la aparición de los procesadores vectoriales. Los procesadores vectoriales extienden el concepto de paralelismo por segmentación al tratamiento de grandes cadenas de datos, y es continuado y mejorado con los sistemas basados en múltiples procesadores, con memoria compartida o con memoria local.

DESARROLLO.-

Procesamiento en paralelo:

Es un proceso empleado para acelerar el tiempo de ejecución de un programa dividiéndolo en múltiples trozos que se ejecutarán al mismo tiempo, cada uno en su propios procesadores.

Fig.1 Multiprocesador (memoria compartida)


Fuente: El procesamiento paralelo. (2000) Murray

Fi.2 Multicomputador (memoria distribuida)




Fuente: El procesamiento paralelo. (2000) Murray

Una de las posibles arquitecturas para implementar la jerarquía de memoria en un esquema multiprocesador es la que se conoce como Memoria Compartida sobre Bus Común. Cada unidad CPUMC avanzará en su cómputo tanto como le sea posible prescindiendo de las demás. Una unidad de control que no se muestra en la figura se encargará de la administración del bus permitiendo a cada MC volcar información cuando así lo solicite, atendiendo también los pedidos de acceso a memoria, mientras que un puerto especial de cada MC estará leyendo el bus permanentemente.

Fig.3 Memoria compartida sobre bus común
 

Fuente: El procesamiento paralelo. (2000) Murray

VENTAJAS Y DESVENTAJAS:

Existen algunos factores que trabajan en contra de la eficiencia del  paralelismo y pueden atenuar tanto la ganancia de velocidad como la ampliabilidad.

Costes de inicio
En una operación paralela compuesta por miles de proceso, el tiempo de inicio puede llegar ser mucho mayor que le tiempo real de procesamiento, lo que influye negativamente en la ganancia de velocidad.

Interferencia
Como lo procesos que se ejecutan en un proceso paralelo acceden con frecuencia a recursos compartidos, pueden sufrir un cierto retardo como consecuencia de la interferencia de cada nuevo proceso en la competencia, este fenómeno afecta tanto la ganancia de velocidad como la ampliabilidad.

Sesgo
Normalmente es difícil dividir una tarea en partes exactamente iguales, entonces se dice que la forma de distribución de los tamaños es sesgada.
El procesamiento paralelo implica una serie de dificultades a nivel programación de software, es difícil lograr una optimización en el aprovechamiento de los recursos de todas las CPU con el que se esté trabajando sin que se formen cuello de botella. En muchas de las ocasiones no es posible el trabajar con equipos multiprocesadores dado el elevado costo que este representa, así que solo se dedica a ciertas áreas de investigación especializada o proyectos gubernamentales o empresariales.


El procesamiento en paralelo ejecuta procesos en donde cada procesador se encarga de uno u otro y aceleran de esta forma el cálculo.

PROCESAMIENTO SEGMENTADO

Los procesadores segmentados sirven para mejorar el rendimiento sin necesidad de duplicar excesivamente el hardware. Se usaron por primera vez en los años 60 para los grandes sistemas (mainframes) de altas presentaciones, y fueron muy importantes en los años 80 para el enfoqué RISC del diseño de computadores (la mayoria de técnicas RISC se relacionan con el objetivo de conseguir una buena segmentación).

Fig. 4 Tarea procesada de forma secuencial

 

Fuente:http://www.infor.uva.es/~bastida/Arquitecturas%20Avanzadas/Segment.pdf

Fig.5 Tarea ejecutada por un procesador segmentado





Fuente:http://www.infor.uva.es/~bastida/Arquitecturas%20Avanzadas/Segment.pdf


En la Actualidad la segmentación se utiliza mucho actualmente para el desarrollo de juegos de instrucciones del procesador. Actualmente, la tendencia es lograr segmentaciones más profundas para obtener frecuencias de reloj muy altas. Es un método muy eficaz para obtener un mayor rendimiento.

Detalle de la segmentación de instrucciones.

El alto rendimiento y la velocidad elevada de los modernos procesadores, se debe, principalmente a la conjunción de tres técnicas:
·       Arquitectura Harvard (arquitectura que propicia el paralelismo).

·       Procesador tipo RISC.

·       Segmentación.

En el caso del procesador DLX podemos encontrar las siguientes etapas en una instrucción:


  • ·       IF (Instruction Fetch): búsqueda
    ·       ID (Instruction Decode): decodificación
    ·       EX (Execution): ejecución de unidad aritmético lógica
    ·       MEM (Memory): memoria
    ·       WB (Writeback): escritura
Cada una de estas etapas de la instrucción usa en exclusiva un hardware determinado del procesador, de tal forma que la ejecución de cada una de las etapas en principio no interfiere en la ejecución del resto.

En el caso de que el procesador no pudiese ejecutar las instrucciones en etapas segmentadas, la ejecución de la siguiente instrucción sólo se podría llevar a cabo tras la finalización de la primera. En cambio en un procesador segmentado, salvo excepciones de dependencias de datos o uso de unidades funcionales, la siguiente instrucción podría iniciar su ejecución tras acabar la primera etapa de la instrucción actual.
 
BIBLIOGRAFIA.-

Murray Leslie. (2000), “El Procesamiento Paralelo, Enfoque Cualitativo y Simulación” Universidad Nacional del Rosario., Argentina.

M. Morris Mano (1994), “Arquitectura de computadoras” 3° Edición. Editorial: Phyllis Morgan.

http://www.infor.uva.es/~bastida/Arquitecturas%20Avanzadas/Segment.pdf
http://www.slideshare.net/jairoUNT/procesamiento-segmentado-copia
http://es.scribd.com/doc/80957133/Segmentado-y-distribuido
http://studies.ac.upc.edu/EUPVG/ARCO_I/tema2.pdf
 



 

No hay comentarios:

Publicar un comentario