ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas...

49
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 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

Transcript of ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas...

Page 1: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

ARQUITECTURA DE COMPUTADORES

Semestre A-2009

Clase 18

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

Page 2: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

AGENDA

• Repaso– Camino de datos encauzado– Mejoras al encauce– Predicción dinámica de saltos– Excepciones– Implementación en SystemC del archivo de registros

01/09 – 04/09Repaso, Predicción dinámica de saltos y

Excepciones

Proyecto y Jerarquía de memoria

07/09 – 11/09 Proyecto y Repaso 3er Examen Parcial

Page 3: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Camino de datos de un solo ciclo

Page 4: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

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?

Page 5: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

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 y encender– 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

Page 6: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Analogía con lavar la ropa

Page 7: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Camino de datos encauzado

Page 8: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

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

Page 9: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

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)

Page 10: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Peligros

• De datos (cont.):Pero a veces hace falta introducir una instrucción de detención (stall): Pipeline stall o burbuja

Page 11: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Peligros

• De datos (cont.):También el compilador puede ayudar reordenando el código:

Page 12: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Peligros

• De Control (o Salto): El flujo no es el esperado.

1a solución: Detenernos cuando hagamos fetch de un salto.

Page 13: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

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?

Page 14: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Camino de datos

Page 15: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Flujo de datos en el pipelining• IF: Instruction Fetch• ID: Instruction decode y register file read• EX: Execution o Address calculation• MEM: Data Memory Access• WB: Write Back

Pareciera que los datos y las instrucciones se mueven siempre de izquierda a derecha, pero hay dos excepciones:

• La operación de Write Back • El contador de programa

Siguiendo con la analogía de “lavar la ropa”: Entre etapa y etapa necesitamos algo donde trasladar la ropa, por ejemplo, unas cestas.

En el procesador, requeriremos registros de pipeline (buffers).

Page 16: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Camino de datos encauzado

Page 17: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Registros de pipeline

• Necesitan ser lo suficientemente anchos (Grandes) como para albergar todos los bits necesarios de una etapa a otra.

• 64, 128, 97 y 64 bits.• Durante un ciclo de reloj, las instrucciones

avanzan desde un registros de pipeline al siguiente.

• En las láminas siguientes, se muestra la secuencia de partes activas del pipeline, para una instrucción lw

Page 18: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
Page 19: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
Page 20: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
Page 21: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
Page 22: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
Page 23: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Pase de información

• Toda la información necesaria para los siguientes pasos debe ser pasada

• ¿Qué faltó en la ejecución de la instrucción lw?– En la última etapa (WB) debemos saber el

número del registro donde se escribirá el dato. Pero esto no lo hemos pasado. Por tanto, debemos corregir el encauce.

Page 24: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Camino de datos corregido

Page 25: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Ejecución de un programa

sub $2,$1,$3 # Registro $2 es escrito

and $12,$2,$5 # 1er operando depende de sub

or $13,$6,$2 # 2do operando depende de sub

add $14,$2,$2 # 1ro y 2do operandos dependen de sub

sw $15,40($2) # La base depende de sub

Page 26: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Ejecución de un programa

Page 27: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Hazards de Datos

• 1ª opción: Detener la ejecución con la introducción de instrucciones que no hagan nada (Nops). Ejemplo: add $zero,$zero,$zero

• 2ª opción: Adelantar el dato.¿Cuándo se tiene disponible el resultado de sub $2,$1,$3?Al final del ciclo 3: Se podría pasar antes el resultado.

¿Qué ocurre cuando un registro es leído y escrito durante el mismo ciclo de reloj?

Los archivos de registros realizan la escritura en la 1ª mitad del ciclo y la lectura en la 2ª mitad.

Por ende: Entre las instrucciones sub y add no hay dependencia de datos.

Page 28: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Sin adelantamiento

Page 29: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Con adelantamiento

Page 30: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Hazard de dato insalvable

Page 31: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Instrucción Nop

Page 32: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Instrucción Nop

• La introducción de una nop, implica que no se altere el estado del camino de datos:– Que no se actualice el PC.– Que no se escriba en los registros (Actualización de

los registros IF/ID).– Colocar las señales de control a cero.

• Por lo tanto, se debe añadir una unidad que detecte este tipo de hazard.

• El Compilador: Puede disminuir la ocurrencia de este tipo de hazard, adelantando instrucciones en el orden de ejecución.

Page 33: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
Page 34: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Hazards de Datos

Page 35: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
Page 36: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Hazards de Control

Page 37: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Hazards de Control

• Aún no existe nada tan efectivo para tratarlos como el adelantamiento en el caso de los hazards de datos.

• Opciones (IPC): – Detener la ejecución (Nops): Demasiado lento– Asumir que el salto no se realiza (Especular):

• Si el salto sí debía realizarse; las instrucciones que avanzaron indebidamente, se descartan (Flush).

– Predicción dinámica de saltos (Especular).

Page 38: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Hazards de Control(Mejora a “No tomar el salto”)

– Adelantar en el pipeline la evaluación del branch

• Calcular la dirección efectiva• Evaluar la condición de salto

– Hay que adelantar la lectura de los datos– Puede depender de valores aún no calculados– Requiere circuitería para realizar la comparación

Page 39: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Hazards de Control(Mejora a “No tomar el salto”)

Page 40: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Hazards de Control(Mejora a “No tomar el salto”)

Page 41: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Compiladores y ensambladores

• Pueden intentar aprovechar la instrucción que se pierde al intentar predecir el salto.

Page 42: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Predicción dinámica de saltos

• Es la predicción del salto, utilizando la información que se tiene en tiempo de ejecución.

• Una forma: Ver si ese salto fue tomado la última vez que fue evaluado. Si fue tomado la última vez, se comienzan a ejecutar las mismas instrucciones anteriores.

• Esto se denomina “Memoria de predicción de saltos” o “Tabla histórica de saltos”

• La tabla (Memoria) contendrá:– Parte inferior de la dirección de salto– 1 ó más bits que indican si fue tomado o no

• Si la predicción es incorrecta, se invierte el bit y debe retornar al estado correcto.

Page 43: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Predicción dinámica de saltos

• Se pueden utilizar 2 bits para decidir si tomar el salto o no.

Page 44: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Otras soluciones

• Contar con una estructura (BTB: Branch Target Buffer) que almacene la dirección de salto (El PC destino)

• Tomar en cuenta la información global y local sobre los saltos (Predictores correlacionados)

• Predictores tipo torneo: Se tienen varias predicciones de un mismo salto y un mecanismo de escogencia de qué predictor utilizar para qué salto.

Page 45: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Camino de Datos Final

Page 46: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Excepciones

• Excepciones e interrupciones: Eventos no programados, que interrumpen la ejecución de un programa.

• Es una actividad llevada a cabo por la Unidad de Control

• Falta de estandarización de los términos:

Tipo de evento Fuente NosotrosSolicitud de I/O de dispositivo Externa Interrupción

Invocación del SO desde un programa de usuario Interna Excepción

Overflow u underflow Interna Excepción

Uso de instrucción no definida Interna Excepción

Problema en el hardware Cualquiera Interrupción o excepción

Page 47: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

¿Cómo manejar un excepción?

• El procesador debe llevar a cabo dos operaciones:– Guardar la dirección de la instrucción que originó la

excepción en el registro Exception Program Counter (EPC).

– Transferir el control al sistema operativo.

• El sistema operativo tomará la acción apropiada:– Hacer algo para el programa de usuario– Reportar un error– Detener la ejecución

Page 48: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

¿Qué acción tomar?

1. Método usado en MIPS: Incluir un registro adicional (Cause Register) que almacena la razón de la interrupción

2. Interrupciones vectorizadas: El sistema operativo sabe la causa por la dirección donde recibió el control de la máquina.

Tipo de excepción DirecciónInstrucción no definida 8000 0000hex

Overflow, underflow 8000 0180hex

Page 49: ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.

Unión Hardware - SO• El hardware y el SO deben trabajar en conjunto para

manejar las excepciones.• La excepciones son implementadas en el hardware

como otro hazard de control, y debe añadir circuitería para esto en su pipelining.

• Generalmente:– Se dejan culminar las instrucciones anteriores– Se ingresan instrucciones burbuja mientras culminan estas

instrucciones– Se guarda el estado del programa (Contexto)– Se ejecuta el SO a partir de cierto punto donde se manejan la

excepciones• Estos cambios de contexto son muy comunes dentro de

un computador.• Varias excepciones pueden ocurrir en un momento

dado. ¿Qué hacer? : Priorizar el manejo (¿En orden?).