Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Curso 2011-2012
Caractersticas de las Arquitecturas Tipos de Arquitectura Organizacin de la Memoria Direccionamiento de Memoria Operaciones en el Repertorio de Instrucciones
Tipos de Arquitecturas
Hasta los 80s: Pila o Acumulador Tras los 80s: Registro-Memoria o Registro-Registro Registros:
Ms rpidos que la memoria Ms fcil de usar para los compiladores
Organizacin de la Memoria
La memoria se organiza en bytes Palabra: Ancho de memoria (mxima informacin legible en una operacin). Siempre es mltiplo de 2n bytes. Cada byte tiene una direccin. Cmo se identifica la direccin de la palabra completa?. Dos alternativas: Big Endian: La direccin de la palabra es la del byte ms significativo. Little Endian: La direccin de la palabra es la del byte menos significativo.
Modos de Direccionamiento
Tipos de Operaciones
Aritmticas y Lgicas Transferencia de Datos Control Llamadas al sistema Punto Flotante
El DLX
Arquitectura orientada a registro (de 32 bits):
32 registros de propsito general (GPR): R0, R1,
R0 contiene siempre el valor 0.
El DLX
Registros especiales: PC, IR Memoria direccionable al byte. Ancho de memoria: 32 bits (bus de datos). Bus de direcciones: 32 bits 232 bytes. Organizacin Big Endian. Modos de direccionamiento:
Registro Inmediato Desplazamiento Ej.: ADD R1,R2,R3 Ej.: SUBI R1,R2,#5 Ej.: LW R1,30(R2)
Etapa IF
Se carga la instruccin en curso en el IR. Se prepara el contador de programa para apuntar a la siguiente instruccin.
IR Mem[PC] NPC PC + 4
Etapa ID
Se decodifica la instruccin y se cargan los diferentes campos en los registros especiales A, B, Imm.
A Regs[IR610] B Regs[IR1115] Imm ((IR16 )16 ## IR1631)
Etapa EX
Acceso a memoria (clculo de la direccin efectiva)
ALUOutput A + Imm
Etapa MEM
Acceso a memoria (lectura-Load o escritura-Store en memoria)
LMD Mem[ALUOutput] Mem[ALUOutput] B
Etapa WB
Reg-Reg ALU:
Regs[IR1620] ALUOutput
Reg-Imm ALU:
Regs[IR1115] ALUOutput
Los registros intermedios se funden en la etapa de latch Se adelanta la carga del PC en saltos a la etapa de IF
Riesgos
Riesgos (Hazards): Situaciones que imposibilitan que la prxima instruccin se ejecute en el ciclo predeterminado. Los riesgos reducen el rendimiento ideal de la mquina (hacen que CPI > 1). Tipos: Estructurales de Datos de Control
Riesgos estructurales
Situacin en la que dos o ms instrucciones tratan de hacer uso de un nico recurso. Casos ms habituales: Mquinas con una sola memoria (conflictos en lectura de datos e instrucciones) Unidades funcionales multi-ciclo no segmentadas
Solucin al riesgo estructural: Parada de la unidad durante una etapa (introduccin de una burbuja) Reduccin del rendimiento
Riesgos estructurales
Riesgos estructurales
Riesgos estructurales
Riesgos de Datos
Situacin en la que dos instrucciones que comparten datos tienen problemas de sincronizacin. Tipos: RAW (Lectura despus de escritura): Tambin conocida como Dependencia. WAR (Escritura despus de lectura): Tambin conocida como Anti-Dependencia. WAW (Escritura despus de escritura): Tambin conocida como Dependencia de salida. Nota: Observar que RAR no es un riesgo
Dependencia (RAW)
Ocurre cuando una instruccin necesita leer un dato que otra instruccin previa aun no han producido.
ADD R1,R2,R3 IF ID EX MEM WB SUB R4,R1,R5 IF ID EX MEM WB
Anti-Dependencia (WAR)
Ocurre cuando una instruccin modifica un dato que otra instruccin previa aun no ha ledo. NO ocurre en la versin simple de DLX. Ocurrir en una versin ms avanzada que se estudiar prximamente. Ej.:
SW 0(R1),R2 ADD R2,R3,R4 IF ID EX MEM1 MEM2 WB IF ID EX WB
La primera instruccin (ADD) genera un resultado en R1. El resto de instrucciones necesitan R1 como dato. No lo pueden usar hasta que sea generado.
Anticipacin de datos
Solucin: Anticipacin de datos (Forwarding), tambin conocido como Cortocircuito. Los datos se adelantan directamente desde la unidad que los produce hasta la unidad que los consume, sin pasar previamente por el banco de registros.
Anticipacin de datos
Riesgos de Control
Los riesgos de control son los ms negativos para el rendimiento El riesgo de control se produce ante cualquier instruccin de bifurcacin, debido a la incertidumbre que introduce Problema: La etapa IF no sabe si la prxima instruccin es en secuencia (salto no tomado) o se producir bifurcacin (salto tomado) Parada de la unidad.
Riesgos de Control
En la versin actual del DLX, la direccin efectiva de salto se calcula en la fase MEM Por lo tanto, la parada sera de 3 ciclos
Riesgos de Control
Se adelanta el clculo de la direccin efectiva y de la condicin de salto a la etapa ID, a costa de utilizar un sumador extra
Mtodos para la optimizacin de saltos Existen varias tcnicas para tratar con las instrucciones de salto:
Parada de la unidad segmentada Tratar el salto como no-tomado Tratar el salto como tomado Salto retardado
Parada de la unidad segmentada Detencin de la unidad hasta que se conoce si el salto se toma o no:
Inconveniente: Gran prdida en el rendimiento Ventaja: Simplicidad en el control
Tratar el salto como tomado Tan pronto se conoce la direccin destino, el salto se toma antes de tener certeza. En el DLX no tiene sentido, ya que la direccin de salto se conoce en el mismo ciclo que la decisin de tomarlo o no.
Salto retardado Tcnica por la que el compilador planifica una instruccin justo despus de la posible bifurcacin, a fin de llenar el hueco producido por el riesgo de control. Es importante que la instruccin planificada se deba ejecutar independientemente del salto. De no ser as, es necesario poder anularla a posteriori.
Salto retardado
El comportamiento del DLX ante el salto retardado es el mismo: se evitan las paradas (siempre que la instruccin planificada tras el salto sea vlida).
Salto retardado
Mejora:
(a) Siempre (b) Cuando se toma (c) Cuando no se toma
Operaciones Multiciclo
Hemos considerado que todas la operaciones se pueden ejecutar en un solo ciclo EX. Esto es vlido para operaciones enteras, pero no para operaciones en Punto Flotante. Extensin funcional al DLX:
Unidad Entera principal: Load, Store, ALU entera, saltos Unidad de suma y resta en Punto Flotante Unidad de multiplicacin (Entera y Punto Flotante) Unidad de divisin (Entera y Punto Flotante)
Operaciones Multiciclo
MEM WB
MEM WB EX MEM WB
Problema de las operaciones multiciclo: las instrucciones pueden terminar su ejecucin en un orden distinto al que fueron lanzadas.
IF: Primera mitad de bsqueda de instruccin. Actualizacin de PC. IS: Segunda mitad de bsqueda de instruccin. RF: Decodificacin y bsqueda de registros. EX: Ejecucin. Operaciones de la ALU. Clculo de direccin efectiva y de salto. DF: Inicio de la bsqueda de datos. DS: Segunda parte de la bsqueda de datos. TC: Chequeo de etiquetas, determinacin de acierto en la cache. WB: Escritura
La operacin de carga (Load) introduce una dependencia RAW con un retraso de 2 ciclos.
El retraso bsico en una bifurcacin es de 3 ciclos, ya que la condicin de salto no se evala hasta la etapa EX.