jueves, 21 de noviembre de 2013

Arquitectura en Pipeline

La arquitectura en pipeline consiste en transformar un flujo de datos comprendido en varias en etapas secuenciales. Esta arquitectura durante el desarrollo de programas es muy común para el programador, ya que pueden concatenar comandos fácilmente. También es una arquitectura natural en la programación funcional, equivale a la composición de funciones matemáticas.


Fuente: http://sistemas-distribuidos.wikispaces.com

Pipe quiere decir en español “tuberías”, básicamente el sistema es como el agua que fluye por las tuberías, en este caso el agua llegaría a ser la información o los procesos.

Fuente: http://xnafactory.blogspot.com

Este tipo de arquitecturas es muy común verlo en sistemas operativos multitarea ya que los procesos que se ejecutan son de manera simultánea, luego son ejecutados de manera secuencial mediante un administrador de tareas asignándoles diferente prioridad y capacidad de procesamiento.
Aplicaciones de pipelines.
1.    Los pipelines gráficos, se encuentran en la mayoría de las tarjetas de video, consiste en múltiples unidades aritméticas o CPU completas, implementan varias operaciones típicas.
2.    Los pipelines de software, consiste en multiples procesos ordenados de forma que el flujo de salida alimenta la entrada del siguiente proceso. (Alonso, 2013)
El pipeline o segmentación, es una técnica de implementación, el cual se puede traslapar la ejecución de instrucciones. Hoy en día el pipeline es un de las tecnologías más utilizadas para hacer procesadores más rápidos.
La segmentación no solo ayuda a realizar una sola tarea, sino la característica principal es la de ayudar a realizar un carga de trabajo. La velocidad se incremente si aumenta el número de segmentos.
El speedup es el desbalance en el largo de los segmentos, esto hace que reduzca la velocidad.
Dentro esta arquitectura tenemos los 5 estados de las instrucciones MIPS:
·         IF: Búsqueda de una instrucción en la memoria de instrucciones
·         ID: Búsqueda de registros y decodificación de instrucciones.
·         EXE: Ejecución o cálculo de dirección
·         MEM: Acceso a la memoria de datos.
·         WB: Escribir datos en el archivo de registros.

Ventajas y Desventajas.

Ventajas:
·         Todas las instrucciones son del mismo tamaño
·         Pocos formatos de instrucciones
·         Las operaciones con memoria solo aparecen en las instrucciones de carga y almacenamiento

Desventajas:
·         Existen situaciones cuando la siguiente instrucción no se puede ejecutar en el próximo ciclo de reloj.
·         Existen 3 tipos de riesgos: Riesgos Estructurales, Riesgos de Control y Riesgos de Datos.

Riesgos Estructurales: Es cuando el hardware no puede manejar combinaciones de instrucciones que deben ejecutarse en un mismo ciclo.

Riesgos de Control: Ocurren porque el procesador no “sabe” lo suficiente. Cuando se producen saltos condicionales y/o saltos incondicionales.

Riesgos de Datos: Ocurren porque una instrucción depende del resultado de una instrucción previa en el segmento. Algo muy importante, las instrucciones “add” o “sub” no muestran el resultado hasta el estado WB. (García, 2013)

Bibliografía

Alonso, M. D. (20 de Noviembre de 2013). http://www.slideshare.net/rehoscript/arquitectura-pipeline.
García, I. J. (20 de Noviembre de 2013). http://www.ie.itcr.ac.cr/jdiaz/licenciatura/estructura%20de%20microprocesadores/PRESENTACIONES/pipeline-intro.pdf.




No hay comentarios:

Publicar un comentario