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