14.01.2015 Visualizaciones

Procesadores segmentados. El DLX.

Procesadores segmentados. El DLX.

Procesadores segmentados. El DLX.

SHOW MORE
SHOW LESS
  • No se encontraron etiquetas…

¡Convierta sus PDFs en revista en línea y aumente sus ingresos!

Optimice sus revistas en línea para SEO, use backlinks potentes y contenido multimedia para aumentar su visibilidad y ventas.

AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio Maestro<strong>Procesadores</strong> <strong>segmentados</strong>. <strong>El</strong> <strong>DLX</strong>.Curso 2011-2012


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroCaracterísticas de las Arquitecturas• Tipos de Arquitectura• Organización de la Memoria• Direccionamiento de Memoria• Operaciones en el Repertorio deInstrucciones


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroOrganización de la Memoria• La memoria se organiza en bytes• Palabra: Ancho de memoria (máxima informaciónlegible en una operación). Siempre es múltiplo de 2 nbytes.• Cada byte tiene una dirección. ¿Cómo se identifica ladirección de la palabra completa?. Dos alternativas:– Big Endian: La dirección de la palabra es la delbyte más significativo.– Little Endian: La dirección de la palabra es la delbyte menos significativo.


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroModos de Direccionamiento


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroTipos de Operaciones• Aritméticas y Lógicas• Transferencia de Datos• Control• Llamadas al sistema• Punto Flotante• En general, las operaciones que más se ejecutansuelen ser las más sencillas


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio Maestro<strong>El</strong> <strong>DLX</strong>• Arquitectura orientada a registro (de 32 bits):– 32 registros de propósito general (GPR): R0, R1, …• R0 contiene siempre el valor 0.– 32 registros de Punto Flotantes (FPR): F0, F1, …• Utilizables como registros de 64 bits por pares: F0, F2, ...• Tipos de datos (en bits):– 8: Byte– 16: Media palabra– 32: Palabra– 64: Doble palabra


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio Maestro<strong>El</strong> <strong>DLX</strong>• Registros especiales: PC, IR• Memoria direccionable al byte.• Ancho de memoria: 32 bits (bus de datos).• Bus de direcciones: 32 bits ⇒ 2 32 bytes.• Organización Big Endian.• Modos de direccionamiento:– Registro Ej.: ADD R1,R2,R3– Inmediato Ej.: SUBI R1,R2,#5– Desplazamiento Ej.: LW R1,30(R2)


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroFormatos de Instrucción en el <strong>DLX</strong>Tres formatos de instrucción:– Igual longitud– Igual tamaño de opcode


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroOperaciones de acceso a memoria en el <strong>DLX</strong>


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroOperaciones aritmético-lógicas en el <strong>DLX</strong>


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroOperaciones de bifurcación en el <strong>DLX</strong>


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroRuta de datos del <strong>DLX</strong>


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio Maestro<strong>DLX</strong>: Etapas en la ejecución de instrucciones• Toda instrucción puede ser ejecutada en 5ciclos de reloj, siguiendo estas etapas:– IF: Búsqueda de la instrucción– ID: Decodificación– EX: Ejecución– MEM: Acceso a memoria– WB: Escritura de resultados


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroEtapa IF• Se carga la instrucción en curso en el IR.• Se prepara el contador de programa paraapuntar a la siguiente instrucción.IR ← Mem[PC]NPC ← PC + 4


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroEtapa ID• Se decodifica la instrucción y se cargan losdiferentes campos en los registros especialesA, B, Imm.A ← Regs[IR 6…10 ]B ← Regs[IR 11…15 ]Imm ← ((IR 16 ) 16 ## IR 16…31 )


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroEtapa EX• Acceso a memoria (cálculo de la dirección efectiva)ALUOutput ← A + Imm• Reg-Reg ALU (operación especificada por func)ALUOutput ← A func B• Reg-Imm ALU (operación especificada por op)ALUOutput ← A op Imm• Salto (cálculo del PC destino y de la condición)ALUOutput ← NPC + ImmCond ← (A op 0)


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroEtapa MEM• Acceso a memoria (lectura-Load o escritura-Store enmemoria)LMD ← Mem[ALUOutput]Mem[ALUOutput] ← B• Salto (carga de la dirección efectiva en el PC)if (cond)elsePC ← ALUOutputPC ← NPC


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroEtapa WB• Reg-Reg ALU:Regs[IR 16…20 ] ← ALUOutput• Reg-Imm ALU:Regs[IR 11…15 ] ← ALUOutput• Instrucción de carga (Load):Regs[IR 11…15 ] ← LMD


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroSegmentación a nivel de Instrucción• ¿Qué es la segmentación a nivel de instrucción?Dividir la ruta de datos del procesador en variasetapas, a fin de optimizar su rendimiento.• De esta manera, varias instrucciones pueden coexistiren la ruta de datos del procesador, siempre que seencuentren en distintas etapas.


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroSegmentación a nivel de Instrucción• Procesador segmentado en 5 etapas.• Una vez que se llena, se finaliza unainstrucción por ciclos ⇒ CPI=1 (??)• Importante. Por ahora se usará unaplanificación estática ⇒ aunque variasinstrucciones coexisten en la ruta de datos:– Todas empiezan en orden– Todas acaban en orden


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroSegmentación a nivel de Instrucción


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroPROBLEMAS¿Hay conflictos en el modelo?• 1: Las etapas de ID y WB acceden al banco deregistros simultáneamente.• 2: Las etapas de IF y MEM acceden a la memoriasimultáneamente.SOLUCIONES• 1: <strong>El</strong> banco de registros se gestiona a doble ciclo (seescribe en la primera parte y se lee en la segunda).• 2: Hay dos caches separadas (una de instrucciones yotra de datos).


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroRutas datos segmentada para el <strong>DLX</strong>Los registros intermedios se funden en la etapa de latchSe adelanta la carga del PC en saltos a la etapa de IF


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroRiesgos• Riesgos (Hazards): Situaciones que imposibilitanque la próxima instrucción se ejecute en el ciclopredeterminado.• Los riesgos reducen el rendimiento ideal de lamáquina (hacen que CPI > 1).• Tipos:– Estructurales– de Datos– de Control


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroRiesgos estructurales• Situación en la que dos o más instrucciones tratan dehacer uso de un único recurso.• Casos más habituales:– Máquinas con una sola memoria (conflictos enlectura de datos e instrucciones)– Unidades funcionales multi-ciclo no segmentadas• Solución al riesgo estructural: Parada de launidad durante una etapa (introducción de unaburbuja) ⇒ Reducción del rendimiento


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroRiesgos estructurales


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroRiesgos estructurales


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroRiesgos estructurales


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroRiesgos de Datos• Situación en la que dos instrucciones que compartendatos tienen problemas de sincronización.• Tipos:– RAW (Lectura después de escritura): Tambiénconocida como “Dependencia”.– WAR (Escritura después de lectura): Tambiénconocida como “Anti-Dependencia”.– WAW (Escritura después de escritura): Tambiénconocida como “Dependencia de salida”.• Nota: Observar que RAR no es un riesgo


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroDependencia (RAW)• Ocurre cuando una instrucción necesita leer un datoque otra instrucción previa aun no han producido.ADD R1,R2,R3IF ID EX MEM WBSUB R4,R1,R5 IF ID EX MEM WB


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroAnti-Dependencia (WAR)• Ocurre cuando una instrucción modifica un dato queotra instrucción previa aun no ha leído.• NO ocurre en la versión simple de <strong>DLX</strong>. Ocurrirá enuna versión más avanzada que se estudiarápróximamente.• Ej.:SW 0(R1),R2ADD R2,R3,R4IF ID EX MEM1 MEM2 WBIF ID EX WB• La segunda instrucción acaba antes que la primera.


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroDependencia de salida (WAW)• Ocurre cuando una instrucción modifica un dato antesde que otra instrucción previa lo modifique a su vez.• NO ocurre en la versión simple de <strong>DLX</strong>. Ocurrirá enuna versión más avanzada que se estudiarápróximamente.• Ej.:LW R1,0(R2)ADD R1,R2,R3IF ID EX MEM1 MEM2 WBIF ID EX WB• La segunda instrucción acaba antes que la primera.


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroEjemplo de Dependencia de DatosADD R1,R2,R3SUB R4,R1,R5AND R6,R1,R7ORR8,R1,R9XOR R10,R1,R11• La primera instrucción (ADD) genera un resultado enR1.• <strong>El</strong> resto de instrucciones necesitan R1 como dato.• No lo pueden usar hasta que sea generado.


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroEjemplo de Dependencia de Datos


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroAnticipación de datos• Solución: Anticipación de datos (Forwarding),también conocido como Cortocircuito.• Los datos se adelantan directamente desde launidad que los produce hasta la unidad que losconsume, sin pasar previamente por el banco deregistros.


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroAnticipación de datos


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroRiesgos de datos inevitables• No todos los riesgos de datos se pueden evitarcon anticipación:LWR1,0(R2)SUB R4,R1,R5AND R6,R1,R7ORR8,R1,R9• Ahora, el dato de R1 no se produce en EX (comoantes), sino al final de MEM….


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroRiesgos de datos inevitables


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroRiesgos de datos inevitables


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroPlanificación estática: Cambio de ordena = b + c;d = e - f;LWLWRb,bRc,cADD Ra,Rb,RcSWLWLWa,RaRe,eRf,fSUB Rd,Re,RfSWd,RdLWLWLWRb,bRc,cRe,eADD Ra,Rb,RcLWSWRf,fa,RaSUB Rd,Re,RfSWd,Rd<strong>El</strong> compilador cambia de orden las instrucciones:Estático, antes de la ejecución.


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroPlanificación estática: RenombramientoDependencias RAW: Auténticas, se tiene que producir eldato antes de poder usarlo:LWR1,0(R2)ADD R3,R1,R4Dependencias WAR + WAW: Ficticias. <strong>El</strong> compiladorpuede renombrar los registros para evitarlas(dependencias de nombre).ADD R1,R2,R3ADD R2,R4,R5SW R2,0(R6)ADD R1,R2,R3ADD R7,R4,R5SW R8,0(R6)


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroRiesgos de Control• Los riesgos de control son los más negativos para elrendimiento• <strong>El</strong> riesgo de control se produce ante cualquierinstrucción de bifurcación, debido a la incertidumbreque introduce• Problema: La etapa IF no sabe si la próximainstrucción es en secuencia (salto no tomado) o seproducirá bifurcación (salto tomado) ⇒ Parada de launidad.


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroRiesgos de Control• En la versión actual del <strong>DLX</strong>, la dirección efectiva desalto se calcula en la fase MEM• Por lo tanto, la parada sería de 3 ciclos• Solución: Adelantar lo antes posible– si el salto se toma o no– la dirección efectiva del salto


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroRiesgos de ControlSe adelanta el cálculo de la dirección efectiva y de la condición desalto a la etapa ID, a costa de utilizar un sumador extra


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroMétodos para la optimización de saltos• Existen varias técnicas para tratar con lasinstrucciones de salto:– Parada de la unidad segmentada– Tratar el salto como no-tomado– Tratar el salto como tomado– Salto retardado


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroParada de la unidad segmentada• Detención de la unidad hasta que seconoce si el salto se toma o no:– Inconveniente: Gran pérdida en elrendimiento– Ventaja: Simplicidad en el control


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroTratar el salto como no-tomado• <strong>El</strong> control sigue como si el salto no se fuera atomar.• Si el salto se toma finalmente, es necesarioeliminar de la unidad las instrucciones lanzadas.


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroTratar el salto como tomado• Tan pronto se conoce la dirección destino,el salto se toma antes de tener certeza.• En el <strong>DLX</strong> no tiene sentido, ya que ladirección de salto se conoce en el mismociclo que la decisión de tomarlo o no.


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroSalto retardado• Técnica por la que el compilador planificauna instrucción justo después de la posiblebifurcación, a fin de llenar el huecoproducido por el riesgo de control.• Es importante que la instrucciónplanificada se deba ejecutarindependientemente del salto. De no serasí, es necesario poder anularla aposteriori.


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroSalto retardado• <strong>El</strong> comportamiento del <strong>DLX</strong> ante el saltoretardado es el mismo: se evitan las paradas(siempre que la instrucción planificada tras elsalto sea válida).


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroSalto retardadoMejora:(a) Siempre(b) Cuando se toma(c) Cuando no se toma


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroOperaciones Multiciclo• Hemos considerado que todas la operaciones sepueden ejecutar en un solo ciclo EX.• Esto es válido para operaciones enteras, pero nopara operaciones en Punto Flotante.• Extensión funcional al <strong>DLX</strong>:– Unidad Entera principal: Load, Store, ALU entera, saltos– Unidad de suma y resta en Punto Flotante– Unidad de multiplicación (Entera y Punto Flotante)– Unidad de división (Entera y Punto Flotante)


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroOperaciones Multiciclo• Unidad entera: Un ciclo• Unidades en Punto Flotante: Varios ciclos


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroOperaciones Multiciclo: Segmentación• Problema: Sólo puede existir una instrucción en cadaunidad funcional. La latencia aumenta debido a que launidad tarda varios ciclos, con lo que el rendimientodesciende.• Solución: Segmentar las unidades funcionales. De estamanera, pueden coexistir varias instrucciones en lamisma unidad (pero en distintas etapas)• Unidad de suma y resta en Punto Flotante 4 etapas• Unidad de multiplicación 7 etapas• Unidad de división 1 etapa (24 ciclos)• ¿Por qué no se segmenta el divisor?


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroOperaciones Multiciclo: Segmentación• Pueden coexistir varias instrucciones en las unidades segmentadas, pero noen el divisor


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroRiesgos en las Operaciones Multiciclo• Efectos en los riesgos de las operaciones multiciclo:– Al no estar segmentado el divisor, se puede producir un conflicto estructuralsi hay varias instrucciones próximas de este tipo– Al variar los tiempos de ejecución de las instrucciones, pueden existirconflictos estructurales a la hora de escribir registros y memoria– Sin embargo, toda la lectura de registros se sigue produciendo en el segundociclo (ID), por lo que no hay posibilidad de riesgos WAR– Al no finalizar las instrucciones en orden, pueden existir riesgos WAW– La mayor latencia de las unidades hace que los riesgos RAW sean másfrecuentes


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroOperaciones Multiciclo: SegmentaciónMULTD IF ID M1 M2 M3 M4 M5 M6 M7 MEM WB 4ºADDD IF ID A1 A2 A3 A4 MEM WB 3ºLD IF ID EX MEM WB 1ºSD IF ID EX MEM WB 2º• Problema de las operaciones multiciclo: las instruccionespueden terminar su ejecución en un orden distinto al quefueron lanzadas.


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroEjemplo: MIPS R4000IF: Primera mitad de búsqueda de instrucción. Actualización de PC.IS: Segunda mitad de búsqueda de instrucción.RF: Decodificación y búsqueda de registros.EX: Ejecución. Operaciones de la ALU. Cálculo de dirección efectiva y de salto.DF: Inicio de la búsqueda de datos.DS: Segunda parte de la búsqueda de datos.TC: Chequeo de etiquetas, determinación de acierto en la cache.WB: Escritura


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroEjemplo: MIPS R4000La operación de carga (Load) introduce una dependencia RAW con un retraso de 2ciclos.


AT5118 – Arquitectura e Ingeniería de Computadores IJuan Antonio MaestroEjemplo: MIPS R4000<strong>El</strong> retraso básico en una bifurcación es de 3 ciclos, ya que la condición de salto nose evalúa hasta la etapa EX.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!