SlideShare una empresa de Scribd logo
1 de 18
UNIVERSIDAD NACIONAL DE TRUJILLO
FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS
ESCUELA ACADÉMICA PROFESIONAL DE ING. INFORMÁTICA

TEMA:
ARQUITECTURA PIPELINE

CURSO:
TOPICOS EN SOFTWARE
PROFESOR:
DIAZ PULIDO ARTURO

INTEGRANTE:
ASCATE VERA WILMER

TRUJILLO – PERÚ
2014
2

INDICE
DEDICATORIA...............................................................................................3
INTRODUCCIÓN.............................................4
MARCO TEÓRICO.......................................5
CAPITULO I:............................................................................................................................................... 5
CAPITULO II:............................................................................................................................................ 14

CONCLUSIONES..........................................................................................17
REFERENCIA BIBLIOGRAFICA.............................................................17
3

DEDICATORIA

A mis padres y hermanos, por confiar en mí, por
sus concejos, paciencia y apoyo constante a, o lo
largo de mi vida, que con su esfuerzo y sacrificio
me ayudaron a llegar a esta etapa y convertirme en
un profesional

ASCATE VERA WILMER
4

INTRODUCCIÓN
La arquitectura en pipeline (basada en filtros) consiste en ir transformando un
flujo de datos en un proceso comprendido por varias fases secuenciales, siendo la
entrada de cada una la salida de la anterior.
Esta arquitectura es muy común en el desarrollo de programas para el intérprete
de comandos, ya que se pueden concatenar comandos fácilmente con tuberías
(pipe).
También es una arquitectura muy natural en el paradigma de programación
funcional, ya que equivale a la composición de funciones matemáticas.
5

MARCO TEÓRICO
CAPITULO I:
PIPELINE
Un pipeline o tubería es un conjunto de elementos procesadores de datos
conectados en serie, en donde la salida de un elemento es la entrada del
siguiente. Los elementos del pipeline son generalmente ejecutados en paralelo, en
esos casos, debe haber un almacenamiento tipo buffer insertado entre elementos.
Esta arquitectura es muy común en el desarrollo de programas para el intérprete,
ya

que se pueden concatenar por comandos fácilmente con tuberías

(pipe).También es común verlo en sistemas operativos multitarea ya que ejecutan
una serie de procesos de manera simultaneas, los cuales son ejecutados de
manera secuencial mediante una administrador de tareas dándoles diferente
prioridad y capacidad de procesamiento, alternando entre este sistema “pipeline” y
los demás.
En informática nuestra rama, el pipeline se emplea en:
1. Microprocesadores
2. Tarjetas graficas
3. Software.
Los cálculos que se realizan en el proceso de programación deben sincronizarse
con un reloj para evitar los tramos más recargados que se detectan entre dos
registros.
Se pueden diferenciar entre:
Pipelines sin nombre: funcionan de manera temporal y se borra al no estar en uso.
6

Pipelines con nombre: son creados en el propio sistema de archivos (facilitan la
comunicación de los diversos procesos que apelan a la tubería).

Segmentación

Sale un pastel empaquetado cada 50 segundos

El proceso en pipeline o encadenado es similar al utilizado en cualquier cadena de
montaje, y el nombre pipeline (tubería) se debe al hecho de que como en una
tubería, en la entrada se aceptan nuevos elementos (instrucciones) antes de que
los previamente aceptados salgan por la salida.
Por ejemplo: Supongamos una gran pastelería en la que los pasteles primero se
hacen en el horno y después se empaquetan para la venta. El proceso de
empaquetar una tarta consiste en:
1. Poner una caja vacía en la mesa.
2. Meter un pastel en la caja.
3. Cerrar y precintar la caja.
4. Poner una etiqueta en la caja.
5. Llevar la caja a un gran contenedor
7

Si cada una de estas operaciones la realiza un operario en 10 segundos, parece
claro que se tarda 50 segundos en empaquetar un pastel y, por lo tanto, en
empaquetar 10 tartas se tardaría 500 segundos.

Sale un pastel empaquetado cada 10 segundos

Ahora supongamos que se dispone de una cadena de empaquetado de pasteles
con una cinta transportadora sobre la que trabajan cinco operarios especializados
en tareas distintas. El primer operario pone la caja 1 en la cinta transportadora,
esta avanza hasta que la caja 1 esta donde el segundo operario, que introduce el
pastel dentro de la caja 1, al mismo tiempo que primero operario pone otra caja 2
en la cinta. La caja 1 sigue avanzando hasta el tercer operario, que la cierra y la
precinta, al mismo tiempo que el segundo operario mete otro pastel en la caja 2 y
el primero operario pone otra caja 3 en la cinta. La caja 1 sigue su camino en la
cinta pasando por el cuarto operario, que pone una etiqueta, hasta llegar al quinto
operario, que la retira de la cinta.
8

En el momento que el quinto operario retira la caja de la cinta, hay cuatro cajas
más en la cinta. Si cada una de estas fases de empaquetado se realiza en 10
segundos, a partir de ahora, cada 10 segundos saldrá un nuevo pastel
empaquetado, en lugar de hacerlo cada 50 segundos que se tardaba cuando no
había una cadena de empaquetado. A partir de ahora, en tener 10 pasteles
empaquetados se tardara solamente 100 segundos, mientras que en el caso de
cuando se tenía un solo operario se tardaba 500 segundos.
Debe quedar claro que aunque ahora sale una nueva tarta empaquetada cada 10
segundos, la preparación completa de cada tarta requiere 50 segundos.

En una primera aproximación, se puede observar que para ejecutar una
instrucción en la CPU se requieren 2 pasos:
•

Alimentar o extracción de las instrucción desde
memoria (fetching).

•

Ejecución de instrucción.

En 1959, el ordenador Stretch de IBM, teniendo en cuanta que durante la fase de
ejecución hay momentos en los que no se accede a memoria principal,
9

aprovechaba para alimentar instrucciones por adelantado y guardarlas en un
buffer de prealimentación, todo ello en paralelo con la ejecución de la instrucción
en curso, con lo que al terminar de ejecutar dicha instrucción podía cargar la
siguiente instrucción directamente desde el buffer sin tener que esperar a traerla
de memoria.
Esta técnica de prealimentación puede verse como un pipeline de dos etapas. En
la primera etapa se alimenta una instrucción de memoria y se guarda en un buffer.
La segunda etapa toma una instrucción del buffer y la ejecuta. Mientras en la
segunda etapa se está ejecutando una instrucción, la primera etapa aprovecha
(los ciclos en los que la segunda etapa no accede a memoria) para leer la
siguiente instrucción y guardarla en el buffer. Cuando la segunda etapa acabe la
ejecución y vacié el buffer de prealimentación, la primera etapa puede volver a leer
una nueva instrucción de memoria.

La ejecución de una instrucción podría descomponerse en las siguientes 5 etapas:
1. F : Alimentación de la instrucción (fetch)
10

2. D: Decodificación de la instrucción.
3. O: Extracción y cálculo de los operandos.
4. E: Ejecución (en la ALU).
5. W: Escritura del resultado (write).
Si ahora la ejecución de una instrucción está descompuesta en 5 etapas, cada
etapa puede durar aproximadamente 1/5 de la duración total de la ejecución de la
instrucción. Si suponemos que la duración de un ciclo de reloj es igual a la
duración de cada una de estas pequeñas etapas, podemos decir, en principio, que
con la técnica de pipeline se consigue que a cada ciclo de reloj finalice una
instrucción, o lo que es lo mismo, una velocidad de instrucción por ciclo.

Por lo que hemos dicho hasta ahora, esta técnica puede reducir el número de
ciclos/instrucción en un factor igual a la profundidad del pipeline (numero de
etapas).según esto, parece que cuanto mayor sea el numero de etapas de un
pipeline, mayor es la velocidad de ejecución.
Sin embargo. Los diseñadores del $360 de IBM (años 60) ya se dieron cuenta que
la cantidad de lógica de control necesaria para gestionar y optimizar los buffers
intermedios y las dependencias entre las etapas de pipeline crece enormemente
11

con el número de etapas. Hasta que el punto de la lógica de control entre etapas
puede llegar a ser más compleja y costosa que la lógica propia de cada etapa.

Obsérvese que el pipelining no es lo mismo que el paralelismo (aunque en cierto
modo, en el pipeline también hay paralelismo). Ambas técnicas están dirigidas a
mejorar el rendimiento (número de instrucciones por unidad de tiempo)
incrementando el número de módulos hardware que operan simultáneamente,
pero en el primer caso, el hardware para ejecutar una instrucción no está
replicado, simplemente está dividido en varias etapas distintas especializadas,
mientras que en las arquitecturas paralelas, el hardware (la CPU) si esta replicado
(hay varios procesadores), por lo que varias operaciones pueden ejecutarse de
manera completamente simultánea.
El incremento del rendimiento con el pipelining está limitado al máximo número se
etapas del procesador, mientras que con el paralelismo, las prestaciones mejoran
12

siempre que se añadan más procesadores (en situaciones ideales) y el trabajo se
pueda descomponer en varias tareas para poder repartirlo.
Veamos a continuación, los diagramas correspondientes a la ejecución en serie,
en paralelo y mediante pipeline, suponiendo que las instrucciones se ejecutan en
cinco pasos o etapas de un ciclo de reloj cada una.
En la ejecución en serie, la primera instrucción debe ejecutarse completamente
antes de comenzar la segunda, y esta debe completarse a su vez antes de que
comience la tercera. De esta manera, si las instrucciones son sumas, por ejemplo
se obtiene un resultado cada de cinco ciclos (en t1, t2, t3,…).

Con un paralelismo de N vías (N procesadores), se pueden ejecutar
simultáneamente N instrucciones, pero producirán resultados solamente cada 5
ciclos (N resultados cada 5 ciclos).
Ya que se producen N resultados en el mismo tiempo en el que la ejecución en
serie obtiene un único resultado, el incremento o aceleración (en el caso ideal) es
N.
13

En el caso del pipeline, la segunda instrucción puede comenzar en cuanto la
primera instrucción haya finalizado su primera etapa. A partir del momento en que
se llena el pipeline (después de cinco ciclos) se tiene cinco instrucciones
ejecutándose en distintas fases, y se puede empezar a obtener un resultado por
ciclo, pues finalizara una instrucción después de cada ciclo.
Obsérvese que el rendimiento de un pipeline no depende exactamente del número
de etapas, sino de la duración de su etapa mas larga.
Aunque con una organización totalmente distinta, en cuanto al rendimiento, el
paralelismo y el pipeline se pueden considerar equivalentes.
No olvidar que la técnica de la segmentación o pipelining mejora el rendimiento no
el tiempo de ejecución de cada instrucción.
14

CAPITULO II:
RALENTIZACION
Una vez elegido el numero óptimo de etapas, para el factor de aceleración sea
igual al número de etapas se requiere que todas las etapas del pipeline siempre
estén llenas de instrucciones útiles, y que nada retrase el avance de las
instrucciones a través del pipeline.
Existen tres motivos que impiden mantener siempre ocupadas todas las etapas del
pipeline.
1. Motivos estructurales: cuando una etapa no es capaz de realizar su cometido
en un ciclo de reloj, el pipeline se detiene hasta que dicha etapa finaliza su
trabajo.
Entre las causas estructurales que pueden hacer que el pipeline se detenga
tenemos:
 No todas las etapas son de la misma duración
 Acceso simultáneo a memoria desde varias etapas
 Hay instrucciones más complejas que otras
Puede suceder incluso que alguna de las etapas ni siquiera necesite ejecutarse.
Por ejemplo, en un procesador cuya última etapa se dedique a escribir en
memoria principal, la carga de un registro no requerirá dicha última etapa. En
este caso, simplemente sucederá que cuando una instrucción corta va después
de una normal, ambas finalicen su ejecución simultáneamente, y en el siguiente
15

ciclo de reloj no termine ninguna instrucción; por lo tanto, el rendimiento no
varía.
Aquí, para simplificar el problema, supondremos que todas las instrucciones
pasan por todas las etapas y que todas son de la misma duración.
Nos permitimos realizar estas simplificaciones para poder centrarnos en las
principales causas de la ralentización del pipeline: las dependencias de datos y
las bifurcaciones.
2. Dependencia de operandos: Las dependencias de datos se producen cuando
dos instrucciones comparten un dato (operando o resultado).
Hay tres tipos de dependencias de datos, pero aquí vamos a comentar
solamente el más evidente, el que se denomina “lectura después de escritura”
(Read After Write, o RAW).
En el programa del ejemplo, la dependencia se denomina “lectura después de
escritura” (Read After Write, o RAW) puede producirse entre las instrucciones I 2
e I3 si la instrucción MUL lee el contenido de R3 (en el ciclo 5) antes de que el
resultado de la suma anterior (al final del ciclo 6) se cargue en él. Obviamente,
la operación MUL no se ejecutará con los operandos esperados por el
programador, por lo que el resultado del programa será incorrecto.
Hay dos opciones básicas para resolver este problema de dependencia de
datos; uno es mediante la Prevención:
La dependencia de datos: Prevención
El problema de la dependencia de datos entre una instrucción I 1, y otra
instrucción I2 que le sigue pueda prevenirse retrasando la ejecución de I 2 un
número K de etapas hasta que desaparezca el problema de que I 2 lea un
operando que I1 no ha escrito todavía. Este retraso puede conseguirse
insertando un número K de instrucciones que puedan ejecutarse después de I 1
y antes de I2, sin que por ello varíe la estructura lógica del programa.
16

La dependencia de datos: Detección y resolución
• Detener el pipeline: La aproximación más sencilla para evitar los problemas
de dependencias de datos con ayuda del hardware es detener la actividad en
las etapas necesarias del pipeline hasta que desaparezca la dependencia, es
decir, hasta que se pueda ejecutar correctamente la instrucción dependiente.

3. Instrucciones de bifurcación: Una instrucción de bifurcación hace que la
dirección de la siguiente instrucción a ejecutar no se conozca hasta el momento
justo de la ejecución de la instrucción de bifurcación (en la etapa de ejecución),
por lo que la etapa de alimentación no puede extraer la siguiente instrucción a
una bifurcación hasta que esta última no finalice su etapa de ejecución, y por lo
tanto al terminar la etapa de ejecución, esta tendría que esperar hasta que se
alimente la siguiente instrucción y vaya avanzando por todas las etapas
anteriores, que se habrán quedado vacías. A estas etapas vacías que aparecen
se las denomina huecos de retardo (delay slots).
17

CONCLUSIONES
 Las tuberías virtuales se crean para segmentar los datos y de este modo
incrementar su rendimiento de un sistema digital.
 Hemos podido trabajar con el pipeline término perteneciente a la ingeniería
de software. Aunque el estudio que hemos hecho sobre este tema es breve
nos enfocamos a señalar sus principales elementos, aplicaciones y riesgos.
 El pipeline es común verlo en sistemas operativos multitarea, como los que
empleamos hoy en día en nuestras computadoras; se ejecutan una serie de
procesos de manera simultánea, que son ejecutados luego de manera
secuencial mediante una administrador de tareas dándoles diferente
prioridad y capacidad de procesamiento, alternando entre un "pipeline" y los
demás hemos dedicado por tener que familiarizarnos con el entorno de
desarrollo por primera vez. En cuanto al entorno de desarrollo nos hemos
dedicado por tener que familiarizarnos con él por primera vez.

REFERENCIA BIBLIOGRAFICA
•

http://www.alegsa.com.ar/Dic/pipeline.php

•

http://definicion.de/pipeline/
18

•

http://www.alegsa.com.ar/Dic/pipeline.php

•

http://www.slideshare.net/rehoscript/arquitectura-pipeline

Más contenido relacionado

La actualidad más candente

Practica de procesos en Linux
Practica de procesos en LinuxPractica de procesos en Linux
Practica de procesos en LinuxTerrafx9
 
Generar retardos-para-pic-en-mplab
Generar retardos-para-pic-en-mplabGenerar retardos-para-pic-en-mplab
Generar retardos-para-pic-en-mplabYeni Ochoa
 
Practicas 1 7 de unidad 3
Practicas 1 7 de unidad 3Practicas 1 7 de unidad 3
Practicas 1 7 de unidad 3Juan Lopez
 
GUIA 1 HILOS Y PROCESOS
GUIA 1 HILOS Y PROCESOSGUIA 1 HILOS Y PROCESOS
GUIA 1 HILOS Y PROCESOSMario Martinez
 
Unidad 3 gestion de procesos en linux
Unidad 3 gestion de procesos en linuxUnidad 3 gestion de procesos en linux
Unidad 3 gestion de procesos en linuxjcfarit
 
Linux ud7 - gestion de procesos
Linux   ud7 - gestion de procesosLinux   ud7 - gestion de procesos
Linux ud7 - gestion de procesosJavier Muñoz
 
Instalar unix Euller Yugsan 108 bb72
Instalar unix Euller Yugsan 108 bb72Instalar unix Euller Yugsan 108 bb72
Instalar unix Euller Yugsan 108 bb72Euller108BB72
 
Sandra saldaña instalarunix
Sandra saldaña instalarunixSandra saldaña instalarunix
Sandra saldaña instalarunixsandrasal23
 
Como instalar unix erazo gloria
Como instalar unix erazo gloriaComo instalar unix erazo gloria
Como instalar unix erazo gloriaErazoGloria16
 

La actualidad más candente (18)

Subrutinas de retardo
Subrutinas de retardoSubrutinas de retardo
Subrutinas de retardo
 
Practica de procesos en Linux
Practica de procesos en LinuxPractica de procesos en Linux
Practica de procesos en Linux
 
Generar retardos-para-pic-en-mplab
Generar retardos-para-pic-en-mplabGenerar retardos-para-pic-en-mplab
Generar retardos-para-pic-en-mplab
 
Practicas 1 7 de unidad 3
Practicas 1 7 de unidad 3Practicas 1 7 de unidad 3
Practicas 1 7 de unidad 3
 
GUIA 1 HILOS Y PROCESOS
GUIA 1 HILOS Y PROCESOSGUIA 1 HILOS Y PROCESOS
GUIA 1 HILOS Y PROCESOS
 
Unidad 3 gestion de procesos en linux
Unidad 3 gestion de procesos en linuxUnidad 3 gestion de procesos en linux
Unidad 3 gestion de procesos en linux
 
Linux ud7 - gestion de procesos
Linux   ud7 - gestion de procesosLinux   ud7 - gestion de procesos
Linux ud7 - gestion de procesos
 
Ejercicios sobre procesos en Windows y Linux
Ejercicios sobre procesos en Windows y LinuxEjercicios sobre procesos en Windows y Linux
Ejercicios sobre procesos en Windows y Linux
 
Tarea Repetible
Tarea RepetibleTarea Repetible
Tarea Repetible
 
Instalar unix Euller Yugsan 108 bb72
Instalar unix Euller Yugsan 108 bb72Instalar unix Euller Yugsan 108 bb72
Instalar unix Euller Yugsan 108 bb72
 
Jadira palta
Jadira paltaJadira palta
Jadira palta
 
Uprocesador2
Uprocesador2Uprocesador2
Uprocesador2
 
Instalar unixElvis Urquizo
Instalar unixElvis UrquizoInstalar unixElvis Urquizo
Instalar unixElvis Urquizo
 
Sandra saldaña instalarunix
Sandra saldaña instalarunixSandra saldaña instalarunix
Sandra saldaña instalarunix
 
Viviana medina MATERIA
Viviana medina MATERIAViviana medina MATERIA
Viviana medina MATERIA
 
Nicolle
NicolleNicolle
Nicolle
 
Ronald
RonaldRonald
Ronald
 
Como instalar unix erazo gloria
Como instalar unix erazo gloriaComo instalar unix erazo gloria
Como instalar unix erazo gloria
 

Destacado

Introducción a la Arquitectura de Software
Introducción a la Arquitectura de SoftwareIntroducción a la Arquitectura de Software
Introducción a la Arquitectura de SoftwareGustavo Alzate Sandoval
 
Arquitecturas de pizarra o repositório
Arquitecturas de pizarra o repositórioArquitecturas de pizarra o repositório
Arquitecturas de pizarra o repositóriorehoscript
 
Monografia pipeline
Monografia pipelineMonografia pipeline
Monografia pipelinevaneyui
 
Diseno de la arquitectura
Diseno de la arquitecturaDiseno de la arquitectura
Diseno de la arquitecturaFatima Cham
 
Estilos de Software
Estilos de SoftwareEstilos de Software
Estilos de Softwarebjjuarez
 
Patrones para Arquitectura de Información y ejemplos
Patrones para Arquitectura de Información y ejemplosPatrones para Arquitectura de Información y ejemplos
Patrones para Arquitectura de Información y ejemplosMauricio Angulo
 
Arquitectura de software orientada a patrones
Arquitectura de software orientada a patronesArquitectura de software orientada a patrones
Arquitectura de software orientada a patronesGustavo De la Cruz Tovar
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicoslandeta_p
 
Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)josecuartas
 
Fundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareFundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareRoger Villegas
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de softwareLiliana Pacheco
 
Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de softwareIker Canarias
 
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREDISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREjose_rob
 

Destacado (15)

Introducción a la Arquitectura de Software
Introducción a la Arquitectura de SoftwareIntroducción a la Arquitectura de Software
Introducción a la Arquitectura de Software
 
Arquitecturas de pizarra o repositório
Arquitecturas de pizarra o repositórioArquitecturas de pizarra o repositório
Arquitecturas de pizarra o repositório
 
Arquitectura pizarra
Arquitectura pizarraArquitectura pizarra
Arquitectura pizarra
 
Monografia pipeline
Monografia pipelineMonografia pipeline
Monografia pipeline
 
Diseno de la arquitectura
Diseno de la arquitecturaDiseno de la arquitectura
Diseno de la arquitectura
 
Estilos de Software
Estilos de SoftwareEstilos de Software
Estilos de Software
 
Patrones para Arquitectura de Información y ejemplos
Patrones para Arquitectura de Información y ejemplosPatrones para Arquitectura de Información y ejemplos
Patrones para Arquitectura de Información y ejemplos
 
Arquitectura de software orientada a patrones
Arquitectura de software orientada a patronesArquitectura de software orientada a patrones
Arquitectura de software orientada a patrones
 
201205 Arquitectura de Software
201205 Arquitectura de Software201205 Arquitectura de Software
201205 Arquitectura de Software
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicos
 
Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)
 
Fundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareFundamentos de la arquitectura de software
Fundamentos de la arquitectura de software
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de software
 
Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de software
 
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREDISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
 

Similar a Monografia de pipeline

Similar a Monografia de pipeline (20)

6 pipeline-1
6 pipeline-16 pipeline-1
6 pipeline-1
 
Informe top sw
Informe top swInforme top sw
Informe top sw
 
Pipelining
PipeliningPipelining
Pipelining
 
Round robin apa
Round robin apaRound robin apa
Round robin apa
 
Introduccion a la arquitectura de computadoras.docx
Introduccion a la arquitectura de computadoras.docxIntroduccion a la arquitectura de computadoras.docx
Introduccion a la arquitectura de computadoras.docx
 
Tarea 1.1
Tarea 1.1Tarea 1.1
Tarea 1.1
 
Arquitectura tipos lupe
Arquitectura tipos lupeArquitectura tipos lupe
Arquitectura tipos lupe
 
programacion iterativa trabajo
programacion iterativa trabajoprogramacion iterativa trabajo
programacion iterativa trabajo
 
So procesos-planif
So procesos-planifSo procesos-planif
So procesos-planif
 
Portafolio 2
Portafolio 2Portafolio 2
Portafolio 2
 
Tarea s.o
Tarea s.oTarea s.o
Tarea s.o
 
Colaborativo_Nelis Rivero
Colaborativo_Nelis RiveroColaborativo_Nelis Rivero
Colaborativo_Nelis Rivero
 
Unidad 2 sist. oper. 1
Unidad 2 sist. oper. 1Unidad 2 sist. oper. 1
Unidad 2 sist. oper. 1
 
Apuntes02ele
Apuntes02eleApuntes02ele
Apuntes02ele
 
Examen 2 s,o,
Examen 2 s,o,Examen 2 s,o,
Examen 2 s,o,
 
Planificaión de La CPU
Planificaión de La CPUPlanificaión de La CPU
Planificaión de La CPU
 
Gprocesos
GprocesosGprocesos
Gprocesos
 
Sistemas operativos unidad 2
Sistemas operativos unidad 2Sistemas operativos unidad 2
Sistemas operativos unidad 2
 
Procesos y Planificación de la CPU
Procesos y Planificación de la CPUProcesos y Planificación de la CPU
Procesos y Planificación de la CPU
 
aula-con-tcos
aula-con-tcosaula-con-tcos
aula-con-tcos
 

Último

RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.DaluiMonasterio
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 

Último (20)

Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 

Monografia de pipeline

  • 1. UNIVERSIDAD NACIONAL DE TRUJILLO FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS ESCUELA ACADÉMICA PROFESIONAL DE ING. INFORMÁTICA TEMA: ARQUITECTURA PIPELINE CURSO: TOPICOS EN SOFTWARE PROFESOR: DIAZ PULIDO ARTURO INTEGRANTE: ASCATE VERA WILMER TRUJILLO – PERÚ 2014
  • 2. 2 INDICE DEDICATORIA...............................................................................................3 INTRODUCCIÓN.............................................4 MARCO TEÓRICO.......................................5 CAPITULO I:............................................................................................................................................... 5 CAPITULO II:............................................................................................................................................ 14 CONCLUSIONES..........................................................................................17 REFERENCIA BIBLIOGRAFICA.............................................................17
  • 3. 3 DEDICATORIA A mis padres y hermanos, por confiar en mí, por sus concejos, paciencia y apoyo constante a, o lo largo de mi vida, que con su esfuerzo y sacrificio me ayudaron a llegar a esta etapa y convertirme en un profesional ASCATE VERA WILMER
  • 4. 4 INTRODUCCIÓN La arquitectura en pipeline (basada en filtros) consiste en ir transformando un flujo de datos en un proceso comprendido por varias fases secuenciales, siendo la entrada de cada una la salida de la anterior. Esta arquitectura es muy común en el desarrollo de programas para el intérprete de comandos, ya que se pueden concatenar comandos fácilmente con tuberías (pipe). También es una arquitectura muy natural en el paradigma de programación funcional, ya que equivale a la composición de funciones matemáticas.
  • 5. 5 MARCO TEÓRICO CAPITULO I: PIPELINE Un pipeline o tubería es un conjunto de elementos procesadores de datos conectados en serie, en donde la salida de un elemento es la entrada del siguiente. Los elementos del pipeline son generalmente ejecutados en paralelo, en esos casos, debe haber un almacenamiento tipo buffer insertado entre elementos. Esta arquitectura es muy común en el desarrollo de programas para el intérprete, ya que se pueden concatenar por comandos fácilmente con tuberías (pipe).También es común verlo en sistemas operativos multitarea ya que ejecutan una serie de procesos de manera simultaneas, los cuales son ejecutados de manera secuencial mediante una administrador de tareas dándoles diferente prioridad y capacidad de procesamiento, alternando entre este sistema “pipeline” y los demás. En informática nuestra rama, el pipeline se emplea en: 1. Microprocesadores 2. Tarjetas graficas 3. Software. Los cálculos que se realizan en el proceso de programación deben sincronizarse con un reloj para evitar los tramos más recargados que se detectan entre dos registros. Se pueden diferenciar entre: Pipelines sin nombre: funcionan de manera temporal y se borra al no estar en uso.
  • 6. 6 Pipelines con nombre: son creados en el propio sistema de archivos (facilitan la comunicación de los diversos procesos que apelan a la tubería). Segmentación Sale un pastel empaquetado cada 50 segundos El proceso en pipeline o encadenado es similar al utilizado en cualquier cadena de montaje, y el nombre pipeline (tubería) se debe al hecho de que como en una tubería, en la entrada se aceptan nuevos elementos (instrucciones) antes de que los previamente aceptados salgan por la salida. Por ejemplo: Supongamos una gran pastelería en la que los pasteles primero se hacen en el horno y después se empaquetan para la venta. El proceso de empaquetar una tarta consiste en: 1. Poner una caja vacía en la mesa. 2. Meter un pastel en la caja. 3. Cerrar y precintar la caja. 4. Poner una etiqueta en la caja. 5. Llevar la caja a un gran contenedor
  • 7. 7 Si cada una de estas operaciones la realiza un operario en 10 segundos, parece claro que se tarda 50 segundos en empaquetar un pastel y, por lo tanto, en empaquetar 10 tartas se tardaría 500 segundos. Sale un pastel empaquetado cada 10 segundos Ahora supongamos que se dispone de una cadena de empaquetado de pasteles con una cinta transportadora sobre la que trabajan cinco operarios especializados en tareas distintas. El primer operario pone la caja 1 en la cinta transportadora, esta avanza hasta que la caja 1 esta donde el segundo operario, que introduce el pastel dentro de la caja 1, al mismo tiempo que primero operario pone otra caja 2 en la cinta. La caja 1 sigue avanzando hasta el tercer operario, que la cierra y la precinta, al mismo tiempo que el segundo operario mete otro pastel en la caja 2 y el primero operario pone otra caja 3 en la cinta. La caja 1 sigue su camino en la cinta pasando por el cuarto operario, que pone una etiqueta, hasta llegar al quinto operario, que la retira de la cinta.
  • 8. 8 En el momento que el quinto operario retira la caja de la cinta, hay cuatro cajas más en la cinta. Si cada una de estas fases de empaquetado se realiza en 10 segundos, a partir de ahora, cada 10 segundos saldrá un nuevo pastel empaquetado, en lugar de hacerlo cada 50 segundos que se tardaba cuando no había una cadena de empaquetado. A partir de ahora, en tener 10 pasteles empaquetados se tardara solamente 100 segundos, mientras que en el caso de cuando se tenía un solo operario se tardaba 500 segundos. Debe quedar claro que aunque ahora sale una nueva tarta empaquetada cada 10 segundos, la preparación completa de cada tarta requiere 50 segundos. En una primera aproximación, se puede observar que para ejecutar una instrucción en la CPU se requieren 2 pasos: • Alimentar o extracción de las instrucción desde memoria (fetching). • Ejecución de instrucción. En 1959, el ordenador Stretch de IBM, teniendo en cuanta que durante la fase de ejecución hay momentos en los que no se accede a memoria principal,
  • 9. 9 aprovechaba para alimentar instrucciones por adelantado y guardarlas en un buffer de prealimentación, todo ello en paralelo con la ejecución de la instrucción en curso, con lo que al terminar de ejecutar dicha instrucción podía cargar la siguiente instrucción directamente desde el buffer sin tener que esperar a traerla de memoria. Esta técnica de prealimentación puede verse como un pipeline de dos etapas. En la primera etapa se alimenta una instrucción de memoria y se guarda en un buffer. La segunda etapa toma una instrucción del buffer y la ejecuta. Mientras en la segunda etapa se está ejecutando una instrucción, la primera etapa aprovecha (los ciclos en los que la segunda etapa no accede a memoria) para leer la siguiente instrucción y guardarla en el buffer. Cuando la segunda etapa acabe la ejecución y vacié el buffer de prealimentación, la primera etapa puede volver a leer una nueva instrucción de memoria. La ejecución de una instrucción podría descomponerse en las siguientes 5 etapas: 1. F : Alimentación de la instrucción (fetch)
  • 10. 10 2. D: Decodificación de la instrucción. 3. O: Extracción y cálculo de los operandos. 4. E: Ejecución (en la ALU). 5. W: Escritura del resultado (write). Si ahora la ejecución de una instrucción está descompuesta en 5 etapas, cada etapa puede durar aproximadamente 1/5 de la duración total de la ejecución de la instrucción. Si suponemos que la duración de un ciclo de reloj es igual a la duración de cada una de estas pequeñas etapas, podemos decir, en principio, que con la técnica de pipeline se consigue que a cada ciclo de reloj finalice una instrucción, o lo que es lo mismo, una velocidad de instrucción por ciclo. Por lo que hemos dicho hasta ahora, esta técnica puede reducir el número de ciclos/instrucción en un factor igual a la profundidad del pipeline (numero de etapas).según esto, parece que cuanto mayor sea el numero de etapas de un pipeline, mayor es la velocidad de ejecución. Sin embargo. Los diseñadores del $360 de IBM (años 60) ya se dieron cuenta que la cantidad de lógica de control necesaria para gestionar y optimizar los buffers intermedios y las dependencias entre las etapas de pipeline crece enormemente
  • 11. 11 con el número de etapas. Hasta que el punto de la lógica de control entre etapas puede llegar a ser más compleja y costosa que la lógica propia de cada etapa. Obsérvese que el pipelining no es lo mismo que el paralelismo (aunque en cierto modo, en el pipeline también hay paralelismo). Ambas técnicas están dirigidas a mejorar el rendimiento (número de instrucciones por unidad de tiempo) incrementando el número de módulos hardware que operan simultáneamente, pero en el primer caso, el hardware para ejecutar una instrucción no está replicado, simplemente está dividido en varias etapas distintas especializadas, mientras que en las arquitecturas paralelas, el hardware (la CPU) si esta replicado (hay varios procesadores), por lo que varias operaciones pueden ejecutarse de manera completamente simultánea. El incremento del rendimiento con el pipelining está limitado al máximo número se etapas del procesador, mientras que con el paralelismo, las prestaciones mejoran
  • 12. 12 siempre que se añadan más procesadores (en situaciones ideales) y el trabajo se pueda descomponer en varias tareas para poder repartirlo. Veamos a continuación, los diagramas correspondientes a la ejecución en serie, en paralelo y mediante pipeline, suponiendo que las instrucciones se ejecutan en cinco pasos o etapas de un ciclo de reloj cada una. En la ejecución en serie, la primera instrucción debe ejecutarse completamente antes de comenzar la segunda, y esta debe completarse a su vez antes de que comience la tercera. De esta manera, si las instrucciones son sumas, por ejemplo se obtiene un resultado cada de cinco ciclos (en t1, t2, t3,…). Con un paralelismo de N vías (N procesadores), se pueden ejecutar simultáneamente N instrucciones, pero producirán resultados solamente cada 5 ciclos (N resultados cada 5 ciclos). Ya que se producen N resultados en el mismo tiempo en el que la ejecución en serie obtiene un único resultado, el incremento o aceleración (en el caso ideal) es N.
  • 13. 13 En el caso del pipeline, la segunda instrucción puede comenzar en cuanto la primera instrucción haya finalizado su primera etapa. A partir del momento en que se llena el pipeline (después de cinco ciclos) se tiene cinco instrucciones ejecutándose en distintas fases, y se puede empezar a obtener un resultado por ciclo, pues finalizara una instrucción después de cada ciclo. Obsérvese que el rendimiento de un pipeline no depende exactamente del número de etapas, sino de la duración de su etapa mas larga. Aunque con una organización totalmente distinta, en cuanto al rendimiento, el paralelismo y el pipeline se pueden considerar equivalentes. No olvidar que la técnica de la segmentación o pipelining mejora el rendimiento no el tiempo de ejecución de cada instrucción.
  • 14. 14 CAPITULO II: RALENTIZACION Una vez elegido el numero óptimo de etapas, para el factor de aceleración sea igual al número de etapas se requiere que todas las etapas del pipeline siempre estén llenas de instrucciones útiles, y que nada retrase el avance de las instrucciones a través del pipeline. Existen tres motivos que impiden mantener siempre ocupadas todas las etapas del pipeline. 1. Motivos estructurales: cuando una etapa no es capaz de realizar su cometido en un ciclo de reloj, el pipeline se detiene hasta que dicha etapa finaliza su trabajo. Entre las causas estructurales que pueden hacer que el pipeline se detenga tenemos:  No todas las etapas son de la misma duración  Acceso simultáneo a memoria desde varias etapas  Hay instrucciones más complejas que otras Puede suceder incluso que alguna de las etapas ni siquiera necesite ejecutarse. Por ejemplo, en un procesador cuya última etapa se dedique a escribir en memoria principal, la carga de un registro no requerirá dicha última etapa. En este caso, simplemente sucederá que cuando una instrucción corta va después de una normal, ambas finalicen su ejecución simultáneamente, y en el siguiente
  • 15. 15 ciclo de reloj no termine ninguna instrucción; por lo tanto, el rendimiento no varía. Aquí, para simplificar el problema, supondremos que todas las instrucciones pasan por todas las etapas y que todas son de la misma duración. Nos permitimos realizar estas simplificaciones para poder centrarnos en las principales causas de la ralentización del pipeline: las dependencias de datos y las bifurcaciones. 2. Dependencia de operandos: Las dependencias de datos se producen cuando dos instrucciones comparten un dato (operando o resultado). Hay tres tipos de dependencias de datos, pero aquí vamos a comentar solamente el más evidente, el que se denomina “lectura después de escritura” (Read After Write, o RAW). En el programa del ejemplo, la dependencia se denomina “lectura después de escritura” (Read After Write, o RAW) puede producirse entre las instrucciones I 2 e I3 si la instrucción MUL lee el contenido de R3 (en el ciclo 5) antes de que el resultado de la suma anterior (al final del ciclo 6) se cargue en él. Obviamente, la operación MUL no se ejecutará con los operandos esperados por el programador, por lo que el resultado del programa será incorrecto. Hay dos opciones básicas para resolver este problema de dependencia de datos; uno es mediante la Prevención: La dependencia de datos: Prevención El problema de la dependencia de datos entre una instrucción I 1, y otra instrucción I2 que le sigue pueda prevenirse retrasando la ejecución de I 2 un número K de etapas hasta que desaparezca el problema de que I 2 lea un operando que I1 no ha escrito todavía. Este retraso puede conseguirse insertando un número K de instrucciones que puedan ejecutarse después de I 1 y antes de I2, sin que por ello varíe la estructura lógica del programa.
  • 16. 16 La dependencia de datos: Detección y resolución • Detener el pipeline: La aproximación más sencilla para evitar los problemas de dependencias de datos con ayuda del hardware es detener la actividad en las etapas necesarias del pipeline hasta que desaparezca la dependencia, es decir, hasta que se pueda ejecutar correctamente la instrucción dependiente. 3. Instrucciones de bifurcación: Una instrucción de bifurcación hace que la dirección de la siguiente instrucción a ejecutar no se conozca hasta el momento justo de la ejecución de la instrucción de bifurcación (en la etapa de ejecución), por lo que la etapa de alimentación no puede extraer la siguiente instrucción a una bifurcación hasta que esta última no finalice su etapa de ejecución, y por lo tanto al terminar la etapa de ejecución, esta tendría que esperar hasta que se alimente la siguiente instrucción y vaya avanzando por todas las etapas anteriores, que se habrán quedado vacías. A estas etapas vacías que aparecen se las denomina huecos de retardo (delay slots).
  • 17. 17 CONCLUSIONES  Las tuberías virtuales se crean para segmentar los datos y de este modo incrementar su rendimiento de un sistema digital.  Hemos podido trabajar con el pipeline término perteneciente a la ingeniería de software. Aunque el estudio que hemos hecho sobre este tema es breve nos enfocamos a señalar sus principales elementos, aplicaciones y riesgos.  El pipeline es común verlo en sistemas operativos multitarea, como los que empleamos hoy en día en nuestras computadoras; se ejecutan una serie de procesos de manera simultánea, que son ejecutados luego de manera secuencial mediante una administrador de tareas dándoles diferente prioridad y capacidad de procesamiento, alternando entre un "pipeline" y los demás hemos dedicado por tener que familiarizarnos con el entorno de desarrollo por primera vez. En cuanto al entorno de desarrollo nos hemos dedicado por tener que familiarizarnos con él por primera vez. REFERENCIA BIBLIOGRAFICA • http://www.alegsa.com.ar/Dic/pipeline.php • http://definicion.de/pipeline/