La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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.

Presentaciones similares


Presentación del tema: "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."— Transcripción de la presentación:

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 Design (The hardware / software interface), 4ta Edición, de David A. Patterson y John L. Hennessy. Editorial Morgan Kaufmann

2 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/09 Repaso, Predicción dinámica de saltos y Excepciones Proyecto y Jerarquía de memoria 07/09 – 11/09Proyecto y Repaso3er Examen Parcial

3 Camino de datos de un solo ciclo

4 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?

5 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

6 Analogía con lavar la ropa

7 Camino de datos encauzado

8 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

9 Peligros Estructurales: El hardware no soporta cierta combinación de instrucciones De datos: Una instrucción debe esperar por el resultado de otra add $s0,$t0,$t1 sub $t2,$s0,$t3 Se utiliza hardware extra para pasar el dato (Adelantar: forwarding o bypassing)

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

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

12 Peligros De Control (o Salto): El flujo no es el esperado. 1a solución: Detenernos cuando hagamos fetch de un salto.

13 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?

14 Camino de datos

15 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).

16 Camino de datos encauzado

17 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

18

19

20

21

22

23 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.

24 Camino de datos corregido

25 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

26 Ejecución de un programa

27 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.

28 Sin adelantamiento

29 Con adelantamiento

30 Hazard de dato insalvable

31 Instrucción Nop

32 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.

33

34 Hazards de Datos

35

36 Hazards de Control

37 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).

38 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

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

40

41 Compiladores y ensambladores Pueden intentar aprovechar la instrucción que se pierde al intentar predecir el salto.

42 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.

43 Predicción dinámica de saltos Se pueden utilizar 2 bits para decidir si tomar el salto o no.

44 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.

45 Camino de Datos Final

46 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 eventoFuenteNosotros Solicitud de I/O de dispositivoExternaInterrupción Invocación del SO desde un programa de usuarioInternaExcepción Overflow u underflowInternaExcepción Uso de instrucción no definidaInternaExcepción Problema en el hardwareCualquieraInterrupción o excepción

47 ¿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

48 ¿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ónDirección Instrucción no definida8000 0000 hex Overflow, underflow8000 0180 hex

49 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?).


Descargar ppt "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."

Presentaciones similares


Anuncios Google