ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 14 La mayor parte del contenido de estas...
-
Upload
blanca-san-segundo-torregrosa -
Category
Documents
-
view
215 -
download
0
Transcript of ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 14 La mayor parte del contenido de estas...
ARQUITECTURA DE COMPUTADORES
Semestre A-2009
Clase 14
La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and Design (The hardware / software interface), 4ta Edición, de David A. Patterson y John L. Hennessy. Editorial Morgan Kaufmann
AGENDA
• Camino de datos encauzado (Pipelining)
Camino de datos de un solo ciclo
Implementación de un solo ciclo
• Es ineficiente• EL ciclo de reloj debe durar lo mismo que
la instrucción que tarde más. Generalmente, la instrucción load
• El CPI = 1, pero la duración del ciclo es muy grande
• ¿Qué ocurre si añadimos instrucciones punto flotante o más complejas a este camino de datos?
Pipelining
• Múltiples instrucciones solapan su ejecución • Como en un línea de ensamblaje• Analogía de lavar ropa:
– Colocar la ropa sucia en la lavadora– Cuando termine, colocar la ropa mojada en la
secadora– Cuando termine, colocar la ropa en una mesa y
doblarla– Ubicar la ropa en el closet
Analogía con lavar la ropa
Camino de datos encauzado
Implicaciones del pipeline
• Idealmente:– Tiempo entre instrucciones con pipeline =
Tiempo entre instrucciones sin pipeline / # etapas
• ¿Mejoramos tiempo de ejecución o productividad? Productividad, el tiempo de ejecución probablemente empeore
• La duración del ciclo de reloj será igual a lo que tarde la etapa más lenta
Peligros• Estructurales: El hardware no soporta cierta
combinación de instrucciones• De datos: Una instrucción debe esperar por el resultado
de otraadd $s0,$t0,$t1sub $t2,$s0,$t3
Se utiliza hardware extra para pasar el dato (Adelantar: forwarding o bypassing)
Peligros
• De datos (cont.:Pero a veces hace falta introducir una instrucción de detención (stall): Pipeline stall o burbuja
Peligros
• De datos (cont.:También el compilador puede ayudar reordenando el código:
Peligros
• De Control (o Salto): El flujo no es el esperado.
1a solución: Detenernos cuando hagamos fetch de un salto.
Peligros
• De Control (o Salto):2da solución: Intentar predecir, por ejemplo; nunca se toman los saltos.3ra solución: “Branch prediction”, tomar el salto algunas veces y otras veces no tomarlo. Por ejemplo, llevando una historia.
• ¿Qué ocurre si falla la predicción?