Sunteți pe pagina 1din 11

CINVESTAV Unidad Guadalajara. Arquitectura de Computadoras.

Juan Manuel Ruiz Varela.


Estructura
del Pipeline en los
Microprocesadores.

Resmen A lo largo del tiempo, particularmente en los


inicios de la implentacin de los microprocesadores, se han
desarrollado diferentes aplicaciones las cuales demandan cada
vez mayor cantidad de recursos del procesador, es decir,
demandan mayor rapidez en el procesamiento de los datos,
gracias a esto se han ido mejorando los microprocesadores y con
ello sus diversos bloques, todos ellos de gran importancia para el
desarrollo de las tareas que le son asignadas, al tener mayor
demanda de procesamiento de datos es necesario poner mas
atencin en una parte que es la encargada principal del
desarrollo de esta tarea, pero en grandes cantidades, la cual es
llamada Pipeline y se explicar a continuacin de forma ms
detallada.
Index TermsPipeline, microprocesadores,

I. INTRODUCCION

n los microprocesadores, se le llama pipeline a una serie


de elementos de procesamiento de datos ordenados de tal
modo que la salida de cada uno es la entrada del siguiente,
como quien dice una cadena de montaje pero en vez de
orientada a la manufactura, orientada al procesamiento de
datos e instrucciones.
Entender cmo funciona un pipeline es un paso importante
para entender qu es lo que ocurre dentro de un procesador, es
por ello que en este trabajo se explicar claramente el
funcionamiento de estas cadenas de montaje que existen en el
microprocesador, explicando tambin como ha ido
evolucionando a lo largo del tiempo y describir las diferentes
arquitecturas que se han desarrollado.
Entrando ms en detalle acerca de la explicacin del
pipelining podramos hacer la siguiente analoga;
imaginmonos una lnea de produccin de automviles
actual, en la que para ensamblar un automvil necesitamos de
cinco etapas, y cada etapa tiene personal calificado para
desarrollar la tarea de ensamblado, al inicio del da, solo la
primera parte de la produccin trabajar mientras que las
dems etapas esperan a que termine de pasar el automvil por
la primera etapa, al terminar con la primera etapa en personal
de la segunda etapa toma el automvil y empieza a trabajar en
el, mientras que las dems etapas esperan a que les llegue el
automvil para seguir con el ensamblaje, excepto la primera
etapa que es la que ya termin su ensamble pero puede
trabajar paralelamente con la etapa 2 para alcanzar una
mayor produccin de automviles en el da y desperdiciar
menos tiempo, y as al acabar la parte dos su etapa de
ensamblaje le pasar el ensamblaje a la etapa tres, pero ya no

Documento elaborado por Juan Manuel Ruiz Varela. Estudiante de


maestra en CINVESTAV Unidad Guadalajara, para la asignatura de
Arquitectura de Computadoras, el email del autor es juma.ruva@gmail.com

se quedar sin ensamblar ya que la etapa anterior que es la


etapa uno ya acab su trabajo de ensamblaje y le pasar ahora
su trabajo a la etapa dos, y de igual forma la etapa uno
comenzar a trabajar en una nueva parte de ensamblaje y as
trabajarn paralelamente alcanzando buenos resultados en el
da de cantidad de vehculos ensamblados y en poco tiempo.
Volviendo a los microprocesadores, debiera ser fcil el ver
cmo este concepto se aplica a las cuatro fases del ciclo de
vida de una instruccin es por ello que los diseadores de
microprocesadores siempre estn buscando formas de
incrementar el nmero de instrucciones que un procesador
puede completar en un perodo de tiempo dado. Cuando
recordamos que un programa es una secuencia ordenada de
instrucciones, se hace claro que incrementar el nmero de
instrucciones ejecutadas por unidad de tiempo es una forma
de disminuir el tiempo total de ejecucin de un programa, al
incrementar la tasa de proceso de instrucciones del
procesador (esto es, el nmero de instrucciones completadas
por unidad de tiempo) nos permite correr programas ms
rpido.
De sta forma es como trabaja en forma general el pipeline,
alcanzando los resultados esperados.
II.EL PIPELINE
A. Caractersticas Generales del Pipeline.
En un pipeline, se ejecutan varias instrucciones al mismo
tiempo, para esto, se dividen las etapas mediante registros, as
es como cada instruccin puede estar ejecutndose en una
etapa, si llegasen a existir cinco etapas, pueden ejecutarse
simultneamente cinco instrucciones, para ello es preciso,
que cada instruccin pase por las cinco etapas, y que cada
etapa tenga su propio control. para lograr esto, basta en el
diagrama de estados, agregar estados en los que no se activen
controles.

B. Sin pipeline.
Anteriormente los procesadores sin pipeline trabajaban sobre
una instruccin a la vez, moviendo cada instruccin a travs
de las cuatro fases de su ciclo de vida en el tiempo de un ciclo
de reloj. As, los procesadores sin pipeline se llaman tambin
procesadores de ciclo simple, porque todas las instrucciones
toman exactamente un ciclo de reloj para ejecutarse
completamente (o, para pasar a travs de las cuatro fases de
sus ciclos de vida).
Como el procesador completa instrucciones al ritmo de una
por ciclo de reloj, se desea que el reloj del CPU corra lo ms
rpido posible, para que la tasa de ejecucin de instrucciones
del procesador (esto es, el nmero de instrucciones
completadas por nanosegundo) sea tan alta como sea posible.

CINVESTAV Unidad Guadalajara. Arquitectura de Computadoras.


As se necesita calcular la mnima cantidad de tiempo que
toma completar una instruccin, y hacer el ciclo de reloj
equivalente a esa longitud de tiempo. Simplemente pasa que
en este caso de CPU, las cuatro fases del ciclo de vida de la
instruccin toman un total de cuatro nanosegundos para
completarse, por lo tanto se debe setear la duracin del
ciclo de reloj del CPU a cuatro nanosegundos, as el CPU
puede completar todo el ciclo de vida de la instruccin, desde
fetch hasta write-back, en un solo ciclo. (Un ciclo de reloj de
CPU es simplemente denominado ciclo.)

Figura 1. Procesador de un solo ciclo.


En el diagrama superior, la instruccin azul deja el rea de
almacenamiento de cdigo entra al procesador, y avanza a
travs de las fases de su ciclo de vida en el curso del ciclo de
cuatro nanosegundos, hasta que el final del cuarto
nanosegundo completa la ltima fase y su ciclo de vida se
acaba. El fin del cuarto nanosegundo es tambin el fin del
primer ciclo de reloj, por lo tanto ahora que el primer ciclo
termin y la instruccin azul ha completado su ejecucin, la
instruccin roja puede entrar al procesador al comienzo de un
nuevo ciclo de reloj y cruzar el mismo proceso. Esta secuencia
de pasos en cuatro nanosegundos se repite hasta que, despus
de un total de 16ns (o cuatro ciclos de reloj) el procesador ha
completado las cuatro instrucciones a un ritmo de 0.25
instrucciones /ns (=4 instrucciones/16ns).
Procesadores de ciclo simple como el de la Figura 1 son
simples de disear, pero desperdician bastantes recursos de
hardware. Todo el espacio blanco en el diagrama representa
hardware de proceso que permanece inactivo mientras espera
que termine de ejecutarse la instruccin actual. Haciendo
"pipelining" al procesador, podemos poner a trabajar ms de
ese hardware en cada nanosegundo, incrementando de esa
manera la eficiencia del procesador y su performance en la
ejecucin de programas.
Al final del diagrama hay una regin nombrada "Completed
Instructions" o "instrucciones completadas". Ahora, las
instrucciones completadas se desechan una vez que se
terminan de ejecutar; despus de decirle al procesador como
modificar la corriente de datos, son simplemente borradas del
procesador. (Aclarando que las instrucciones que han sido
borradas del procesador an permanecen en el rea de
almacenamiento de cdigo y estn disponibles para su uso
repetido.) Entonces la parte de "Completed Instructions" o
"instrucciones completadas" al final de la Figura 1 no

representa una parte real de la computadora, razn por la cual


se marca con una lnea punteada a su alrededor. Esta rea es
slo un lugar para que mantengamos registro de cuntas
instrucciones ha completado el procesador en cierto intervalo
de tiempo, o la tasa de ejecucin de instrucciones del
procesador, de manera que cuando se comparan diferentes
tipos de procesadores sabremos a donde recurrir para obtener
informacin acerca de cul procesador tiene mejor
desempeo. Mientras ms instrucciones complete un
procesador en una cantidad de tiempo dada, mejor es su
desempeo en los programas, lo cuales son secuencias
ordenadas de instrucciones. As que veremos el bloque de
"instrucciones completadas" como una especie de marcador
para registrar la tasa de ejecucin de cada procesador, y
analizaremos el bloque en cada uno de los siguientes
diagramas para ver cunto le toma al procesador poblar este
con instrucciones ejecutadas.
Siguiendo con lo anterior, puede verse y analizarse por qu la
instruccin azul completada en el cuarto nanosegundo no
aparece en el bloque de "instrucciones completadas" antes del
quinto nanosegundo. La razn es que en tanto una instruccin
gasta un nanosegundo completo en cada etapa de ejecucin, la
instruccin azul entra en la fase de escritura al principio del
cuarto nanosegundo y termina dicha etapa al final del cuarto
nanosegundo. Esto significa que recin en el quinto
nanosegundo tenemos completa la instruccin azul. As, al
comienzo del quinto nanosegundo (que coincide con el fin del
cuarto) el procesador ha completado una instruccin.

C. Con Pipeline.
Hacer el pipeline a un procesador significa descomponer su
proceso de ejecucin de instrucciones, lo que se ha
denominado como "ciclo de vida" de la instruccin en una
serie de etapas de segmentacin, que pueden ser completadas
en secuencia por hardware especializado. Recordando la
manera en que se dividi el proceso de ensamblaje del
vehculo en cinco etapas, con un equipo dedicado asignado al
cumplimiento de cada etapa tendremos el panorama ms
claro.
En tanto el ciclo de vida de una instruccin consiste en cuatro
fases completamente distintas, se puede empezar por
descomponer el proceso de ejecucin de instrucciones de
nuestro procesador de ciclo simple en una secuencia de cuatro
etapas discretas de segmentacin, un pipeline de cuatro
etapas, donde cada etapa corresponde a una fase en el ciclo de
vida estndar de la instruccin:
Etapa 1: Traer la instruccin desde el almacn de cdigo.
Etapa 2: Decodificar la instruccin.
Etapa 3: Ejecutar la instruccin.

CINVESTAV Unidad Guadalajara. Arquitectura de Computadoras.


Etapa 4: Escribir los resultados de la instruccin en el archivo
de registro.
Observemos que nos referimos al nmero de etapas del
pipeline como profundidad del pipeline, entonces, nuestro
pipeline de 4 etapas tiene una profundidad de pipeline igual a
4, ahora vindolo de forma ideal, digamos que cada una de
las cuatro etapas del pipeline anterior toma exactamente un
nanosegundo para terminar su trabajo con una instruccin, tal
como cada equipo en la lnea de ensamblaje demoraba una
hora en terminar su porcin de trabajo en el vehculo.
Entonces nuestro proceso de 4 nanosegundos, en el
procesador de ciclo simple, se divide ahora en 4 etapas de
pipeline discretas y secuenciales de un nanosegundo de
longitud cada una. Ahora observaremos otro diagrama para
ver cmo un CPU con pipeline ejecutara las cuatro
instrucciones descritas en la Figura 1.

Figura 2. Procesador con pipeline de cuatro etapas.


Al comienzo del primer nanosegundo, la instruccin azul
entra en la etapa de fetch (traer). Comienza el segundo
nanosegundo y la instruccin azul se mueve a la etapa de
decodificacin mientras la siguiente instruccin, la roja, se
abre camino desde el almacn de cdigo al procesador (esto
es, entra a la etapa de fetch). Al comienzo del tercer
nanosegundo, la instruccin azul avanza a la etapa de
ejecucin, la instruccin roja a la etapa de decodificacin, y la
instruccin verde entra a la etapa de fetch. En el cuarto, la
instruccin azul avanza a la etapa de escritura, la roja a la de
ejecucin, la verde a la decodificacin, y la violeta a la de
fetch. Cuando se ha completado el cuarto nanosegundo y
comienza el quinto, la instruccin azul ha pasado a travs del
pipeline y ha terminado su ejecucin. As se puede decir que
al final de cuatro nanosegundos (= a cuatro ciclos de reloj) el
procesador con pipeline ha completado una instruccin.
Al comienzo del quinto nanosegundo, el pipeline est
completo y el procesador puede empezar a completar
instrucciones al ritmo de una instruccin por nanosegundo.
Esta tasa de ejecucin de 1 instruccin/ns es un incremento de
4x sobre la tasa del procesador de ciclo simple, que era 0.25
instrucciones/ns (o 4 instrucciones cada 16 nanosegundos)

D. Reduciendo el reloj.
Podemos observar en el diagrama anterior (Figura 2) que el
rol del reloj del CPU cambia ligeramente en un procesador
con pipeline, con respecto al procesador de ciclo simple en la
Figura 1, ahora todas las etapas del pipeline deben trabajar
simultneamente y estar listas al comienzo de cada
nanosegundo para pasar los resultados de su trabajo a la
siguiente etapa, el reloj es necesario para coordinar la
actividad del pipeline completo. La forma en que eso se hace
es simple: reducir el tiempo del ciclo de reloj para ajustarse al
tiempo que le toma a cada etapa el completar su trabajo, de
manera que al comienzo de cada ciclo de reloj las distintas
etapas entregan la instruccin en la que estaban trabajando a
la siguiente etapa. Como cada pipeline en el procesador de
ejemplo se toma un nanosegundo en completar su trabajo,
podemos setear el ciclo de reloj en un nanosegundo.
Este mtodo para ajustar el reloj del procesador significa que
una instruccin nueva no necesariamente se completar al
final de cada ciclo, como en el caso del procesador de ciclo
simple. En vez de eso, solo al final de aquellos ciclos donde
se trabaja en la etapa de escritura, se puede hablar de
instrucciones completadas. Los ciclos que tengan la etapa de
escritura en blanco no aadirn nuevas instrucciones al
bloque de "instrucciones completadas", y todo ciclo con una
etapa de escritura activa aadir una nueva instruccin al
bloque, esto significa que al comenzar a trabajar en un
programa habr algunos ciclos de reloj (tres exactamente) en
los cuales no se registrarn instrucciones completadas. Pero
una vez que comience el cuarto ciclo, la primera instruccin
entrar en la etapa de escritura y el pipeline podr comenzar a
ejecutar nuevas instrucciones en cada ciclo, las cuales tendrn
un ritmo de ejecucin de 1 instruccin/ns, pues cada ciclo
tiene un nanosegundo de longitud.
E. Reduciendo el tiempo de ejecucin de programa.
Observemos que el pipeline no cambia el tiempo total de
ejecucin para cada instruccin individual. Cada instruccin
se toma an 4ns para abrirse camino en el procesador; esos
4ns pueden ser divididos en 4 ciclos en 1ns cada uno o en 1
solo gran ciclo, pero son los mismos 4ns. As, el pipeline no
acelera la velocidad de ejecucin de instrucciones, pero
acelera el tiempo de ejecucin de programas (esto es, el
nmero de nanosegundos que toma un programa completo en
ejecutarse) incrementando el nmero de instrucciones
terminadas por unidad de tiempo. El pipeline permite a un
procesador ejecutar programas en un tiempo menor an
cuando cada instruccin individual sigue consumiendo el
mismo tiempo viajando a travs del CPU. El pipeline hace un
uso ms eficiente de los recursos disponibles del CPU
poniendo todas sus unidades a trabajar simultneamente,
permitindole de esta forma realizar ms trabajo total por
cada nanosegundo.
F. Ciclo de vida de una instruccin
La accin bsica de cualquier microprocesador, en tanto se
mueve a travs de la corriente de instrucciones, se puede
descomponer en una serie de cuatro pasos simples, que cada
instruccin en la corriente de cdigo debe atravesar para ser
ejecutada:

CINVESTAV Unidad Guadalajara. Arquitectura de Computadoras.


1. Fetch: "Traer" la instruccin que se va a ejecutar, de la
direccin almacenada en el contador de programa.
2. Store: "Almacenar" la instruccin en el registro de
instrucciones y "descifrarla", incrementando la direccin en el
contador de programa.
3. Execute: "Ejecutar" la instruccin almacenada en el
registro de instrucciones. Si la instruccin no es una
instruccin de rama sino una instruccin aritmtica, este
proceso la enva a la ALU apropiada donde el
microprocesador primeramente "Lee" el contenido de los
registros de entrada y posteriormente "Agrega" el contenido
de los registros de entrada.
4. Write: "Escribir" los resultados de esa instruccin de la
ALU nuevamente dentro del registro de destino.
En los procesadores modernos, los cuatro pasos arriba
descritos son repetidos una y otra vez hasta que el programa
termine de ejecutarse. stas son las cuatro etapas en un
pipeline clsico de RISC.
Aqu estn las cuatro etapas en su forma abreviada:
1. Fetch (Traer)
2. Decode (Descifrar)
3. Execute (Ejecutar)
4. Write (Escribir)
Cada uno de los conceptos anteriores puede ser usado para
representar una fase en el "ciclo de vida" de una instruccin.
Una instruccin comienza en la fase de "traer", se mueve a la
fase de "descifrar", despus a la fase "ejecutar", y finalmente a
la fase "escribir". Cada fase toma un tiempo fijo, pero de
ningn modo igual al que otra fase toma en cumplir su
cometido.
En la mayora de los ejemplos de procesadores que se
mencionaran en este trabajo, las cuatro fases tomarn la
misma cantidad de tiempo, es decir, si el procesador simple
del ejemplo toma exactamente 1 nanosegundo para terminar
cada etapa, entonces el procesador puede acabar una
instruccin cada 4 nanosegundos.
G. La aceleracin del pipeline.
En general, la aceleracin en la tasa de terminacin frente a
una implementacin de un solo ciclo que se obtuvo a partir
del pipeline es idealmente igual al nmero de etapas de
segmentacin. Un pipeline de cuatro etapas produce un
aumento de velocidad de cuatro veces en la tasa de
terminacin frente de un solo ciclo, un pipeline de cinco
etapas produce un aumento de velocidad de cinco veces, un
pipeline de doce etapas obtiene un aumento de velocidad de
doce veces, y as sucesivamente. Este aumento de velocidad es
posible por el pipeline, entre ms etapas hay en un
procesador, ms instrucciones puede el procesador trabajar en
forma
simultnea.
Volviendo a la analoga de la lnea de produccin, digamos

que cada equipo se compone de seis trabajadores, y que cada


una de las tareas de una hora de duracin que cada uno
realiza, la tripulacin puede subdividirse fcilmente en dos, y
realizar tareas ms cortas de 30 minutos. As que podemos
duplicar el rendimiento de la fbrica dividiendo cada
tripulacin en dos tripulaciones ms pequeas y
especializadas de tres trabajadores cada una, y as desarrollar
ms
tareas
simultneamente.
Despus de la modificacin anteriormente, los diez equipos
de menor tamao en la fbrica tendrn ahora un total
colectivo de diez automviles en curso durante el transcurso
de un perodo determinado de 30 minutos. Adems, la fbrica
ahora podra completar un nuevo automvil cada 30 minutos,
una mejora de diez veces ms de la tasa de finalizacin de la
primera fbrica de un automvil cada cinco horas. As que
por el pipeline nuestra lnea de montaje an ms
profundamente, que hemos puesto an ms de sus
trabajadores a trabajar de forma simultnea, lo que aumenta
el nmero de automviles que se pueden trabajar en forma
simultnea y aumentar el nmero de automviles que se
puede completar en un plazo determinado de hora.
La profundizacin del pipeline del procesador de cuatro
etapas que funciona en principios similares y tiene un efecto
similar en las tasas de finalizacin. Al igual que las cinco
etapas en la cadena de montaje podran dividirse an ms en
una secuencia ms larga de las etapas ms especializadas,
podemos tomar el proceso de ejecucin de cada instruccin
que atraviesa y descomponerlo en una serie de mucho ms
que de cuatro etapas discretas . Al romper el pipeline de
cuatro etapas del procesador en una serie ms larga de las
etapas ms cortas, ms especializadas, podemos poner an
ms hardware especializado del procesador para trabajar
simultneamente en ms instrucciones y as aumentar el
nmero de instrucciones que el pipeline completa cada
nanosegundo.
Pasamos de un procesador de un solo ciclo a un procesador
segmentado (con pipeline) tomando el perodo de tiempo de
cuatro nanosegundos que la instruccin dedica a viajar a
travs del procesador y cortar en cuatro etapas de
segmentacin discretas de un nanosegundo cada uno de
longitud. Estas cuatro etapas de segmentacin correspondan
a las cuatro fases del ciclo de vida de una instruccin. Las
etapas de segmentacin de un procesador no siempre van a
corresponder exactamente a las cuatro fases del ciclo de vida
de una instruccin, sin embargo. Algunos procesadores tienen
un pipeline de cinco etapas, algunos tienen una segmentacin
de seis etapas, y muchos tienen pipelines ms profundas de
diez o veinte etapas.
Ahora tomaremos ese proceso de ejecucin de cuatro
nanosegundos y cortarlo en ocho etapas. Debido a que las
ocho etapas de segmentacin deben ser de exactamente la
misma duracin del pipeline para trabajar, las ocho etapas de
segmentaciones deben ser cada 4 ns / 8 = 0.5ns de longitud.
Ya que se est analizando un ejemplo idealizado, vamos a
suponer que la divisin de cuatro fases del ciclo de vida del
procesador en ocho por igual de largos de 0.5ns; las etapas de
segmentacin son un asunto de poca importancia, y que los
resultados se parecen a lo que se encuentra en las Figuras 3 y

CINVESTAV Unidad Guadalajara. Arquitectura de Computadoras.


4 (En realidad, esta tarea no es trivial e implica una serie de
ventajas y desventajas. Dando seguimiento a lo antes
mencionado, se utilizan las ocho etapas de un pipeline en el
mundo real, el pipeline MIPS, en las Figuras 3 y 4, en lugar
de simplemente dividir cada una de las cuatro etapas
tradicionales se muestra la divisin de cada una de ellas
teniendo as un total de ocho divisiones como se puede
apreciar).
Debido al pipeline se requiere que cada etapa de la
segmentacin tome exactamente un ciclo de reloj para
completarse, entonces nuestro ciclo de reloj puede ahora
reducirse a 0.5ns con el fin de adaptarse a las longitudes de
las ocho etapas de segmentacin. Podemos observar
claramente en las Figuras 3 y 4 el impacto que este aumento
del nmero de etapas de segmentacin tiene sobre el nmero
de instrucciones completadas por unidad de tiempo.

El procesador de un solo ciclo podra completar una


instruccin cada cuatro nanosegundos, para una tasa de
finalizacin de 0,25 instrucciones/ns, y el procesador de
cuatro pipelines podra completar una instruccin cada
nanosegundo para una tasa de terminacin de 1
instrucciones/ns. El procesador de ocho etapas representado
anteriormente mejora en ambos completando una instruccin
cada 0.5ns, para una tasa de finalizacin de 2
instrucciones/ns. Tomando en consideracin que debido a que
cada instruccin todava toma 4ns a ejecutar, los primeros
cuatro nanosegundos del procesador de ocho etapas siguen
dedicados a llenar el pipeline. Pero una vez que el pipeline
est lleno, el procesador puede empezar a completar
instrucciones lo doble de rpido que el procesador de cuatro
etapas y ocho veces ms rpido que el procesador de una sola
etapa.
Este aumento de ocho veces en la tasa de terminacin frente a
un diseo de un solo ciclo significa que nuestro procesador de
ocho etapas puede ejecutar programas mucho ms rpido que
cualquiera de los dos de un solo ciclo o un procesador de
cuatro etapas.
H. Velocidad de finalizacin y el tiempo de ejecucin del
programa.

Figura 3. Procesador con Pipeline de ocho etapas.

Si el programa que el procesador de un solo ciclo de la Figura


1, consista slo en las cuatro instrucciones que aparecen,
entonces ese programa tendra un tiempo de ejecucin de un
programa de 16 ns o 4 ns/instruccin x 4 instrucciones. Si el
programa consista en siete instrucciones, tendra un tiempo
de ejecucin del programa de 4 ns/instruccin x 7 = 28 ns de
instrucciones. En general, el tiempo de ejecucin de un
programa es igual a la tasa de finalizacin de instrucciones
del procesador (nmero de instrucciones completadas por
nanosegundo) multiplicado por el nmero total de
instrucciones
en
el
programa.
Tiempo de ejecucin del programa de = Tasa de finalizacin
de la instruccin X nmero de instrucciones del programa.
En el caso de un procesador no segmentado, de un solo ciclo,
la tasa de finalizacin de instruccin (X ns por instruccin) es
simplemente el inverso del tiempo de ejecucin de la
instruccin (1 instruccin por X ns). Con los procesadores
pipeline,
este
no
es
el
caso.

Figura 4. Procesador con Pipeline de ocho etapas.

Si observamos el bloque de "Instrucciones completadas" del


procesador de cuatro etapas en la Figura 2, se observar que
un total de cinco instrucciones se han completado en el inicio
del noveno nanosegundo. En contraste, el procesador sin
pipeline complet dos instrucciones en el inicio del noveno
nanosegundo. Cinco instrucciones completas en el lapso de
ocho nanosegundos no es, una clara mejora de cuatro veces
ms, pero se debe de considerar que tom el pipeline del
procesador cuatro nanosegundos inicialmente para llenar con
las instrucciones; el procesador con pipeline no complet su
primera instruccin hasta el final del cuarto nanosegundo.
Por lo tanto, complet menos instrucciones sobre los primeros
ocho ns de la ejecucin de ese programa, esto hubiese sido

CINVESTAV Unidad Guadalajara. Arquitectura de Computadoras.


diferente

si

hubiese

tenido

el

pipeline

lleno.

Cuando el procesador est ejecutando programas que


consisten en miles de instrucciones, el nmero de
nanosegundos se extiende a los miles, debido al impacto en el
tiempo de ejecucin del programa de esos cuatro
nanosegundos iniciales, durante las que se realiz una sola
instruccin, comienza a desaparecer y el procesador con
pipeline comienza a tener nuevamente ventaja ya que
comienza a acercarse a la marca de cuatro veces. Por ejemplo,
despus de 1000 nanosegundos, el procesador sin pipeline
habr completado 250 instrucciones esto debido a lo siguiente
0.25 instrucciones/ns = 250 instrucciones, mientras que el
procesador con pipeline habr completado 996 instrucciones
debido a que 4NS)/ 1instruccion/ns)una mejora 3.984 veces.
Lo antes descrito es basado en la diferencia entre la mxima
tasa de finalizacin terica del pipeline y su tasa de
finalizacin de la media. En el ejemplo anterior, la tasa de
finalizacin del procesador de cuatro etapas (su tasa de
finalizacin de los ciclos en que toda su cartera est llena) es
1 instruccin/ns. Sin embargo, la tasa de finalizacin
promedio del procesador durante sus primeros ocho
nanosegundos es 5/8 instrucciones ns = 0.625 instrucciones/
ns. La tasa de finalizacin de la media del procesador mejora
a medida que pasa ms ciclos de reloj con su cartera llena,
hasta que a los 1000 nanosegundos su tasa de terminacin
promedio
es
de
996
instrucciones/1000ns=0.996instrucciones/ns.

fcil hacer esto, debido a que la segmentacin (hacer


pipeline) agrega cierta complejidad a la lgica de control del
microprocesador, porque todas estas etapas tienen que
mantenerse en sincrona, adems de que hacer un pipeline
agrega cierta complejidad al diseo de microprocesadores y
de las formas en que evaluamos el rendimiento del
procesador.
Hasta ahora, se ha hablado sobre el rendimiento del
microprocesador slo en trminos de tasa de finalizacin de la
instruccin, o el nmero de instrucciones que el pipeline del
procesador puede completar cada nanosegundo. Una mtrica
de rendimiento ms comn en el mundo real es el
rendimiento de instrucciones de un pipeline, o el nmero de
instrucciones que el procesador completa cada ciclo de reloj.
Se podra pensar que el rendimiento de instrucciones de un
pipeline debe ser siempre 1 instruccin/reloj, porque se
coment anteriormente que un procesador segmentado
completa una nueva instruccin al final de cada ciclo de reloj
en el que la etapa de escritura ha estado activo, ya se vi que
la etapa de escritura est inactivo durante ciclos de reloj en el
que se llena el pipeline, por lo que en esos ciclos de reloj el
rendimiento de instrucciones del procesador es de 0
instrucciones/reloj. En cambio, cuando el pipeline de la
instruccin est lleno y la etapa de escritura est activado, el
procesador segmentado tiene un rendimiento de instruccin
de
1
instruccin/reloj.
As que al igual que haba una diferencia entre la mxima
tasa de finalizacin terica de un procesador y su tasa de
finalizacin de la media, tambin hay una diferencia mxima
de rendimiento de instruccin terica de un procesador y su
rendimiento
promedio
de
instrucciones.
El rendimiento de instruccin es el nmero de instrucciones
que el procesador termina de ejecutar en cada ciclo de reloj.
(IPC).

Figura 5. Tasa media de finalizacin de un pipeline de cuatro


etapas.

El rendimiento mximo instruccin terica es el nmero


mximo de instrucciones que el procesador puede terminar en
la ejecucin de cada ciclo de reloj. Para los simples tipos de
procesadores segmentados y no segmentados descritos hasta
el momento, este nmero es siempre una instruccin por ciclo
(1
instrucciones/ciclo
o
1
IPC).

Se puede observar cmo la tasa de finalizacin promedio del


procesador permanece en cero hasta que la marca 4 ns,
despus de lo cual seala que el pipeline est lleno y el
procesador puede comenzar a completar una nueva
instruccin
en
cada
nanosegundo.

El rendimiento promedio instruccin es el nmero medio de


instrucciones por ciclo de reloj (IPC) que el procesador ha
completado en realidad durante un cierto nmero de ciclos.

Conociendo esto deducimos que un procesador con pipeline


slo puede aproximarse a su tasa de terminacin ideal si se
puede ir para tramos largos con su cartera completo en cada
ciclo de reloj.

En algunas ocasiones, las instrucciones se detienen en una


etapa del pipeline en mltiples ciclos. Hay una serie de
razones por las que esto podra suceder, pero cuando ocurre,
se dice que el pipeline se detiene. Cuando el pipeline se
detiene en una determinada etapa, todas las instrucciones en
las etapas siguientes siguen avanzando con normalidad,
mientras que la instruccin detenida slo se queda en su etapa
y atrasa a todas las instrucciones que tiene detrs.

I. Rendimiento de Instrucciones.
Hasta ahora se puede creer que hacer pipeline es lo ms
sencillo para aumentar la velocidad del procesado de
instrucciones, pero es conveniente saber que no es totalmente

J. Detencin en el Pipeline.

CINVESTAV Unidad Guadalajara. Arquitectura de Computadoras.


En la Figura 6, la instruccin de naranja se detuvo durante
dos ciclos adicionales en la etapa de bsqueda. Debido a que
la instruccin se detuvo, una nueva brecha se abre por delante
de ella en el pipeline para cada ciclo que se detiene. Una vez
que la instruccin comienza a avanzar a travs del pipeline de
nuevo, los espacios en el pipeline que fueron creados por la
detencin son comnmente llamados "burbujas del pipeline",
viajan por el pipeline por delante de la instruccin detenida
anteriormente hasta que ambas abandonan el pipeline.

procesador slo completa 5 instrucciones de 10 relojes, para


un rendimiento promedio de 0,5 instrucciones por ciclo de
reloj. 0,5 instrucciones por ciclo de reloj es la mitad del
rendimiento de instruccin terica mxima, pero el
procesador pasa unos ciclos de reloj para llenar el pipeline
por lo que no podra haberlo logrado despus de 10 relojes ni
en condiciones ideales. Ms importante es el hecho de que 0,5
instrucciones por ciclo de reloj es slo el 71% del rendimiento
que podra haber logrado si no hubiera sido detenido (es
decir,
0,7
instrucciones
por
ciclo
de
reloj).
Debido a que las detenciones en los pipelines disminuyen el
rendimiento promedio de la instruccin del procesador, y que
aumentan la cantidad de tiempo que se tarda en ejecutar el
programa en ejecucin entonces tenemos que si el programa
en el ejemplo anterior consista en slo las siete instrucciones
representadas, entonces la detencin en el pipeline habra
dado lugar a un aumento del 29% de tiempo de ejecucin del
programa.

Figura 6. Detencin en un pipeline de cuatro etapas.


Las burbujas en el pipeline, reducen el rendimiento promedio
de la instruccin de un pipeline, ya que impiden que el
pipeline llegue a alcanzar el rendimiento mximo de una
instruccin por ciclo terminado. En la Figura 1, la instruccin
de naranja se ha detenido en la etapa Fetch por dos ciclos
adicionales, creando dos burbujas que se propagan a travs
del pipeline. Una vez que las instrucciones a continuacin de
la burbuja se han completado, el procesador no completa las
nuevas instrucciones hasta que las burbujas salgan del
pipeline. As que en los extremos de ciclos de reloj 9 y 10, no
se aaden nuevas instrucciones a la regin "Instrucciones
completadas"; normalmente, se aadirn dos nuevas
instrucciones a la regin en el final de estos dos ciclos.
Debido a las burbujas, sin embargo, el procesador es de dos
instrucciones de "retraso" cuando llega el ciclo de reloj 11 y
comienza a acumular las instrucciones completas de nuevo.
Entre ms de estas burbujas surgen en el pipeline, el
rendimiento real de la instruccin del procesador ms lejos
est de su rendimiento mximo de instrucciones. En el
ejemplo anterior, el procesador idealmente debera haber
completado 7 Instrucciones para el momento en que termina
el 10 de reloj, para un rendimiento promedio de instruccin
de 0,7 instrucciones por ciclo de reloj. (Recordando que el
rendimiento mximo instruccin posible en condiciones
ideales es 1 de instrucciones por ciclo de reloj, pero se
necesitaran muchos ms ciclos sin burbujas para aproximarse
a dicho margen.) Pero debido a la parada del pipeline, el

Figura 7. Rendimiento de instruccin de un pipeline de cuatro


etapas con retraso de dos ciclos de reloj.
Podemos rescatar de la Figura 7 que el rendimiento de
instruccin promedio del procesador deja de subir y comienza
a caer en picada cuando la primera burbuja afecta la etapa de
escritura, y no se recuperar hasta que las burbujas han
dejado
el
pipeline
en
su
totalidad.
Para tener una mejor imagen del impacto que esta detencin
puede tener en el rendimiento de instruccin promedio de un
pipeline, veamos ahora el impacto que tiene una detencin de
diez ciclos (a partir de la etapa Fetch del ciclo 18) tendra a lo
largo de 100 ciclos en el pipeline de cuatro etapas descritas
hasta ahora.

CINVESTAV Unidad Guadalajara. Arquitectura de Computadoras.


Figura 8. Rendimiento de instruccin promedio de un
pipeline de cuatro etapas con una detencin de dos tiempos.
Despus de la primera burbuja accesa a la etapa de escritura
en el vigsimo reloj, el rendimiento medio de instrucciones
deja de aumentar y comienza a disminuir. Para cada reloj en
el que hay una burbuja en la etapa de escritura, el
rendimiento de la instruccin del pipeline es de 0
instrucciones/reloj por lo que su rendimiento promedio de
instruccin para todo el perodo sigue disminuyendo. Despus
de la ltima burbuja ha trabajado su salida de la etapa de
escritura, entonces el pipeline comienza a completar las
nuevas instrucciones de nuevo a un ritmo de 1
instruccin/ciclo y su rendimiento promedio de instruccin
comienza
a
subir.
Un gran porcentaje de las caractersticas arquitectnicas de
los procesadores que se han desarrollado en los ltimos aos
se han dedicado a la prevencin de burbujas en los pipelines.
K. Latencia de Instruccin y detencin del pipeline.
Se define latencia de una instruccin como el nmero de
ciclos de reloj que se necesita para que la instruccin pase a
travs del pipeline. Para un procesador de un solo ciclo, todas
las instrucciones tienen una latencia de un ciclo de reloj. En
contraste, para el pipeline de cuatro etapas descrito hasta el
momento, todas las instrucciones tienen una latencia de
cuatro ciclos. Para obtener una imagen visual de esto, veamos
la instruccin azul en la Figura 1; esta instruccin toma
cuatro ciclos de reloj para avanzar, a una velocidad de un
ciclo de reloj por etapa, a travs de cada una de las cuatro
etapas del pipeline. Del mismo modo, las instrucciones tienen
una latencia de ocho ciclos en un pipeline de ocho etapas,
doce ciclos en un pipeline de doce etapas, y as
sucesivamente.
En los procesadores la latencia de instrucciones no es
necesariamente un nmero fijo que es igual al nmero de
etapas de segmentacin. Debido a que las instrucciones
pueden quedar detenidas en una o ms etapas de
segmentacin para mltiples ciclos, cada ciclo adicional que
pasan esperando en una etapa de segmentacin aade un ciclo
ms a su latencia. As las latencias de la instruccin dada
anteriormente, es decir, cuatro ciclos para un pipeline de
cuatro etapas, ocho ciclos para un pipeline de ocho estados,
etc., representan latencias mnimas de instruccin. Las
latencias de instrucciones reales en tuberas de cualquier
longitud pueden ser ms largos que la profundidad de la
tubera, en funcin de si existen detencin de instrucciones en
una o varias etapas.
L. Lmites a la segmentacin.
Existen algunos lmites prcticos acerca de a qu profundidad
se puede llevar un microprocesador antes de que comience la
aceleracin actual de la tasa de finalizacin que se desee
ganar al hacer el pipeline para convertirse significativamente
menor que el aumento de velocidad ideal que se podra
esperar. Las distintas fases del ciclo de vida de una

instruccin no se descomponen fcilmente en un nmero


arbitrariamente alto. Algunas etapas son inherentemente ms
complejas y requieren ms tiempo que otros. Pero debido a
que cada etapa del pipeline debe tener exactamente un ciclo
de reloj para completar, entonces el impulso de reloj que
coordina todas las etapas no puede ser ms rpido que la
etapa ms lenta del pipeline. En otras palabras, la cantidad de
tiempo que tarda la etapa ms lenta en el pipeline
determinar la longitud de ciclo de reloj de la CPU y por lo
tanto la duracin de cada etapa de segmentacin. Esto
significa que la etapa ms lenta del pipeline pasar todo el
ciclo de reloj de trabajo, mientras que las etapas ms rpidos
pasarn parte de los ciclos de reloj sin hacer nada.
Las etapas individuales de un pipeline reciben menos y menos
instrucciones en longitud y complejidad, con el resultado de
que el tiempo total de ejecucin de instrucciones del
procesador se hace ms largo. Debido a esta caracterstica de
la segmentacin, uno de los retos ms difciles e importantes
que enfrenta el diseador del microprocesador es el de
equilibrar el pipeline para que ninguna etapa tenga que hacer
ms trabajo que hacer que cualquier otro. El diseador debe
distribuir el trabajo de procesar una instruccin de manera
uniforme para cada etapa, para que nadie etapa ocupado
demasiado tiempo y as se ralentiza toda el pipeline.
Se puede ver la evidencia de este difcil acto de equilibrio con
mayor claridad en las etapas del Pentium 4, que son etapas
cuyo nico propsito es conducir las seales a travs del chip.
Si Intel no haba dado a estos dos periodos de propagacin de
la seal de sus propias etapas separadas, entonces todas las
etapas del Pentium 4 de ductos se han tenido que alargar
debido a los retrasos de propagacin de la seal en slo dos
porciones del pipeline.
M. Periodo de reloj y la tasa de finalizacin.
Si el tiempo de ciclo de reloj del procesador segmentado, o
perodo de reloj, es ms largo que su longitud ideal (es decir,
el tiempo de ejecucin de la instruccin sin pipeline/
profundidad de la segmentacin), y siempre lo es, entonces la
tasa de terminacin del procesador se ver afectada. Si el
rendimiento de instruccin se mantiene fijo, es decir en 1
instruccin/reloj, entonces como el periodo de reloj aumenta
disminuye la tasa de finalizacin. Debido a que las nuevas
instrucciones se pueden completar slo al final de cada ciclo
de reloj, un ciclo de reloj ya se traduce en un menor nmero
de instrucciones completadas por nanosegundo, que a su vez
se traduce en tiempos de ejecucin del programa ms largos.
Para tener una mejor idea de la relacin entre la tasa de
finalizacin, el rendimiento de la instruccin, y el tiempo de
ciclo de reloj, tomemos nuestra cartera de ocho etapas de la
Figura 3 y aumentar su tiempo de ciclo de reloj para 1NS en
lugar de 0.5ns. Sus nueve primeros nanosegundos seran de
ejecucin de la manera siguiente:

CINVESTAV Unidad Guadalajara. Arquitectura de Computadoras.


superescalar puede tener varias instrucciones en mltiples
etapas de escritura en cada ciclo de reloj, la mquina
superescalar puede completar mltiples instrucciones por
ciclo. Si adaptamos nuestros esquemas previos de pipelines
para representar la ejecucin de dos vas de forma
superescalar, se vera de la siguiente manera:

Figura 9. Un pipeline de ocho etapas con un periodo de reloj


de 1ns.
Como se puede ver, el tiempo de ejecucin de la instruccin
se ha incrementado de un tiempo original de cuatro
nanosegundos a una nueva de ocho nanosegundos, lo que
significa que la tubera de ocho etapas no completa su
primera instruccin hasta el final del octavo nanosegundo.
Una vez que el pipeline est lleno, el procesador de la Figura
9 comienza completando instrucciones a un ritmo de una
instruccin por nanosegundo. Esta tasa de terminacin es la
mitad de la tasa de terminacin del pipeline de ocho etapas
ideal, con el tiempo de ciclo 0.5ns. Es tambin la misma tasa
de finalizacin exacta como 1 instruccin/ns que es la tasa de
finalizacin del pipeline ideal de cuatro etapas. El pipeline de
ocho etapas ahora toma el doble de tiempo para llenar.
Observemos lo que este tiempo de ejecucin duplicado hace a
media curva de la tasa de finalizacin del pipeline de ocho
etapas en comparacin con la misma curva para un pipeline
de cuatro etapas.

Figura 10. Ejecucin superescalar y pipeline combinados.


En la figura anterior, se aaden dos instrucciones al bloque de
"Instrucciones completadas" en cada ciclo una vez que el
pipeline est lleno. La mayor cantidad de pipelines de ALU
que un procesador opera en paralelo y la mayor cantidad de
instrucciones que se puedan agregar a la caja en cada ciclo
son permitidas. Por lo tanto la computacin superescalar nos
permite aumentar el IPC de un procesador agregando ms
hardware. Hay algunos lmites prcticos a cuntas
instrucciones se pueden ejecutar en paralelo, por lo que el
procesador no siempre llega a la tasa de terminacin ideal de
dos instrucciones por ciclo de reloj. A veces, el procesador no
puede encontrar dos instrucciones a ejecutar en paralelo en un
ciclo particular, lo que significa que debe insertar una burbuja
en el pipeline de ese ciclo.
O. Multiparalelismo simultneo (SMT) y pipeline.
El pipeline consiste en encontrar maneras de programar
instrucciones a ejecutar en paralelo en cada ciclo. Pero debido
a que el flujo de cdigo est diseado para ser secuencial, hay
algunos lmites inherentes a la cantidad de paralelismo que el
procesador
puede
extraer
de
l.

Figura 10. Tasa normal de finalizacin de la instruccin con


pipeline de 4 y 8 etapas con un periodo de reloj 1ns.
N. Computacin Superescalar y segmentacin.
La computacin superescalar permite que un microprocesador
aumente el nmero de instrucciones por ciclo de reloj que este
completa ms all de la instruccin 1/reloj. Recordemos que 1
instruccin/reloj fue el rendimiento mximo terico de
instrucciones para un procesador segmentado como se
describe anteriormente. Debido a que una mquina

Una de las formas en que los ltimos procesadores de Intel,


IBM y AMD resuelven este problema es mediante la inclusin
de soporte para paralelismo simultneo (aka hyperthreading o
"SMT") en sus procesadores y luego pedir el programador y/o
compilador para hacer que el flujo de cdigo sea lo ms
paralelo posible. Slo las aplicaciones multiproceso pueden
sacar el mximo provecho de SMT, y paralelismo slo se
puede hacer por la parte que disea la aplicacin.
El diseo de aplicaciones multiproceso implica la
identificacin de las partes de una aplicacin que se puede
dividir en tareas discretas e independientes, y la asignacin de
las tareas para separar los hilos de ejecucin. En este proceso

CINVESTAV Unidad Guadalajara. Arquitectura de Computadoras.


de multihilo una aplicacin en efecto convierte un flujo nico
de cdigo secuencial en un paquete de dos o ms corrientes de
cdigo relacionados que pueden ejecutar en paralelo. Y
cuando dos hilos se ejecutan simultneamente son parte del
mismo programa, entonces la tasa de finalizacin promedio
de ese programa se incrementar, debido a varias de sus
instrucciones se completar en cada ciclo. En este sentido,
SMT puede aumentar la tasa de finalizacin promedio de un
programa por lo que le permite aprovechar mejor el hardware
superescalar.

Si los dos hilos en el escenario anterior son de la misma


aplicacin, SMT impide que la tasa de finalizacin de la
aplicacin multiproceso caiga a cero. Esto ayuda a mantener
media tasa de finalizacin de arriba de la aplicacin y para
reducir el tiempo que se tarda en ejecutar la aplicacin. Por
otro lado, si los dos hilos son de dos aplicaciones de un nico
subproceso separados, entonces la tasa de finalizacin de la
aplicacin con el hilo estancado caer a cero, mientras que la
tasa de finalizacin de la aplicacin con el hilo no estancado
puede mantener el misma o mejorar. En los casos en que la
tasa de finalizacin de la aplicacin no estancado mejora, es
porque el hilo estancado ya no est atando a los recursos del
procesador.
Al final, lo ms probable es que dos aplicaciones de un nico
subproceso se ejecutarn un poco ms lento en un procesador
SMT, en funcin de los tipos de aplicaciones y otras
condiciones, ya que pueden competir entre s por los recursos
compartidos (por ejemplo, la cach, unidades de ejecucin,
cola entradas, etc.). La mayora de los diseos SMT utilizan
una variedad de tcnicas para reducir al mnimo tales efectos,
pero siempre es un factor.
III. CONCLUSIN
Se puede concluir que las mejoras de rendimiento provocados
por el pipeline dependen de dos factores principalmente:

Figura 11. Diseo de aplicaciones multiproceso.


Al disear el flujo de cdigo desde cero como un conjunto de
pequeas tareas, y ejecutando simultneamente corrientes de
cdigo, parte de la carga de extraer el paralelismo a nivel de
instruccin se mueve desde el procesador al programador/
compilador. Teniendo en cuenta que los compiladores son
notoriamente pobres en tales paralelizaciones, por lo que por
lo general cae al programador para disear la aplicacin para
que
se
pueda
dividir
en
varios
subprocesos.
No todas las aplicaciones se prestan a la aplicacin
multiproceso. En tales casos, SMT ofrece pocas ventajas. De
mientras, vamos a ver de otra manera que SMT puede
mejorar
el
rendimiento
de
la
aplicacin.
SMT no slo mejora el rendimiento de la aplicacin mediante
el aumento de la tasa de finalizacin promedio de una
aplicacin multiproceso en circunstancias normales (es decir,
todas las instrucciones se encuentran en la cach L1), pero
tambin puede evitar que la tasa de terminacin de caer a cero
como resultado de errores de cach y latencias de memoria .
Cuando el procesador ejecuta dos hilos simultneamente, y
uno de los hilo es puesto en la etapa de Fetch (hay un error de
cach de modo que el hilo debe obtener instrucciones o datos
de la memoria principal), el procesador puede continuar
normalmente ejecutando el hilo que no est rezagado. En un
procesador que no es SMT, las burbujas en el pipeline surgen
bajo la instruccin rezagada y se propagan en el ncleo de
ejecucin, matando la tasa de finalizacin media de la
aplicacin. El procesador SMT, por otro lado, puede
programar instrucciones del hilo no estancado durante la
ejecucin en esas ranuras de tuberas disponibles.

Deben ser evitadas las detenciones del Pipeline, ya que como


se ha visto antes, las detenciones Pipeline causan la tasa de
terminacin del procesador (disminucin de la velocidad) y la
disminucin
del
rendimiento.
Deben ser evitados a toda costa los rellenos del pipeline del
procesador ya que tiene esto un serio nmero de prdidas en
tanto la tasa de finalizacin y el rendimiento. Esto es
especialmente cierto cuando un pipeline es muy largo, pero
tiene una tasa de reloj que es comparable a la de un
procesador
con
un
pipeline
ms
corta.
Visto de forma general el pipeline es una herramienta muy
til para desarrollar el procesamiento en paralelo de
instrucciones, mejorando con ello el rendimiento del
procesador, y provocando as un aumento en la velocidad de
ejecucin de programas en general.

REFERENCIAS
[1]
[2]

[3]
[4]
[5]

Arquitectura de computadoras John L. Hennessy, David A.


Patterson
https://books.google.com.mx/books?
id=g7SoQDLyXrYC&pg=PA745&lpg=PA745&dq=que+es+el+pipeline+
procesador&source=bl&ots=AYKzUhn6AH&sig=jmbGQaCn2eZxMTw5
BezlUHBZnzA&hl=es&sa=X&ved=0CCIQ6AEwATgKahUKEwj7opSTt
ZvHAhVQEJIKHf4XDCk#v=onepage&q=que%20es%20el%20pipeline
%20procesador&f=false
http://arstechnica.com
https://1code4fun.wordpress.com/2012/09/03/que-es-pipeline-y-comooptimizar-la-velocidad-del-cpu/
http://www.chw.net/2006/06/como-funcionan-los-pipelines-de-un-cpu/

CINVESTAV Unidad Guadalajara. Arquitectura de Computadoras.

S-ar putea să vă placă și