Está en la página 1de 61

AT5118 Arquitectura e Ingeniera de Computadores I

Juan Antonio Maestro

Procesadores segmentados. El DLX.

Curso 2011-2012

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Caractersticas de las Arquitecturas Tipos de Arquitectura Organizacin de la Memoria Direccionamiento de Memoria Operaciones en el Repertorio de Instrucciones

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

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

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

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.

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Modos de Direccionamiento

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Tipos de Operaciones
Aritmticas y Lgicas Transferencia de Datos Control Llamadas al sistema Punto Flotante

En general, las operaciones que ms se ejecutan suelen ser las ms sencillas

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

El DLX
Arquitectura orientada a registro (de 32 bits):
32 registros de propsito 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 Ingeniera de Computadores I


Juan Antonio Maestro

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)

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Formatos de Instruccin en el DLX

Tres formatos de instruccin:


Igual longitud Igual tamao de opcode

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Operaciones de acceso a memoria en el DLX

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Operaciones aritmtico-lgicas en el DLX

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Operaciones de bifurcacin en el DLX

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Ruta de datos del DLX

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

DLX: Etapas en la ejecucin de instrucciones


Toda instruccin puede ser ejecutada en 5 ciclos de reloj, siguiendo estas etapas:
IF: Bsqueda de la instruccin ID: Decodificacin EX: Ejecucin MEM: Acceso a memoria WB: Escritura de resultados

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

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

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

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)

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Etapa EX
Acceso a memoria (clculo de la direccin efectiva)
ALUOutput A + Imm

Reg-Reg ALU (operacin especificada por func)


ALUOutput A func B

Reg-Imm ALU (operacin especificada por op)


ALUOutput A op Imm

Salto (clculo del PC destino y de la condicin)


ALUOutput NPC + Imm Cond (A op 0)

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Etapa MEM
Acceso a memoria (lectura-Load o escritura-Store en memoria)
LMD Mem[ALUOutput] Mem[ALUOutput] B

Salto (carga de la direccin efectiva en el PC)


if (cond) PC ALUOutput else PC NPC

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Etapa WB
Reg-Reg ALU:
Regs[IR1620] ALUOutput

Reg-Imm ALU:
Regs[IR1115] ALUOutput

Instruccin de carga (Load):


Regs[IR1115] LMD

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Segmentacin a nivel de Instruccin


Qu es la segmentacin a nivel de instruccin? Dividir la ruta de datos del procesador en varias etapas, a fin de optimizar su rendimiento. De esta manera, varias instrucciones pueden coexistir en la ruta de datos del procesador, siempre que se encuentren en distintas etapas.

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Segmentacin a nivel de Instruccin


Procesador segmentado en 5 etapas. Una vez que se llena, se finaliza una instruccin por ciclos CPI=1 (??) Importante. Por ahora se usar una planificacin esttica aunque varias instrucciones coexisten en la ruta de datos:
Todas empiezan en orden Todas acaban en orden

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Segmentacin a nivel de Instruccin

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Hay conflictos en el modelo?


PROBLEMAS 1: Las etapas de ID y WB acceden al banco de registros simultneamente. 2: Las etapas de IF y MEM acceden a la memoria simultneamente. SOLUCIONES 1: El banco de registros se gestiona a doble ciclo (se escribe en la primera parte y se lee en la segunda). 2: Hay dos caches separadas (una de instrucciones y otra de datos).

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Rutas datos segmentada para el DLX

Los registros intermedios se funden en la etapa de latch Se adelanta la carga del PC en saltos a la etapa de IF

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

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

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

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

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Riesgos estructurales

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Riesgos estructurales

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Riesgos estructurales

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

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

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

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

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

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 segunda instruccin acaba antes que la primera.

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Dependencia de salida (WAW)


Ocurre cuando una instruccin modifica un dato antes de que otra instruccin previa lo modifique a su vez. NO ocurre en la versin simple de DLX. Ocurrir en una versin ms avanzada que se estudiar prximamente. Ej.:
LW R1,0(R2) ADD R1,R2,R3 IF ID EX MEM1 MEM2 WB IF ID EX WB

La segunda instruccin acaba antes que la primera.

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Ejemplo de Dependencia de Datos


ADD SUB AND OR XOR R1,R2,R3 R4,R1,R5 R6,R1,R7 R8,R1,R9 R10,R1,R11

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.

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Ejemplo de Dependencia de Datos

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

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.

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Anticipacin de datos

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Riesgos de datos inevitables


No todos los riesgos de datos se pueden evitar con anticipacin:
LW SUB AND OR R1,0(R2) R4,R1,R5 R6,R1,R7 R8,R1,R9

Ahora, el dato de R1 no se produce en EX (como antes), sino al final de MEM.

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Riesgos de datos inevitables

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Riesgos de datos inevitables

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Planificacin esttica: Cambio de orden


LW Rb,b LW Rb,b LW Rc,c LW Rc,c ADD Ra,Rb,Rc LW Re,e a = b + c; SW a,Ra ADD Ra,Rb,Rc d = e - f; LW Re,e LW Rf,f LW Rf,f SW a,Ra SUB Rd,Re,Rf SUB Rd,Re,Rf SW d,Rd SW d,Rd El compilador cambia de orden las instrucciones: Esttico, antes de la ejecucin.

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Planificacin esttica: Renombramiento


Dependencias RAW: Autnticas, se tiene que producir el dato antes de poder usarlo: LW R1,0(R2) ADD R3,R1,R4 Dependencias WAR + WAW: Ficticias. El compilador puede renombrar los registros para evitarlas (dependencias de nombre). ADD R1,R2,R3 ADD R2,R4,R5 SW R2,0(R6) ADD R1,R2,R3 ADD R7,R4,R5 SW R8,0(R6)

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

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.

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

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

Solucin: Adelantar lo antes posible


si el salto se toma o no la direccin efectiva del salto

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

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

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

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

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

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

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Tratar el salto como no-tomado


El control sigue como si el salto no se fuera a tomar. Si el salto se toma finalmente, es necesario eliminar de la unidad las instrucciones lanzadas.

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

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.

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

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.

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

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

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Salto retardado

Mejora:
(a) Siempre (b) Cuando se toma (c) Cuando no se toma

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

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)

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Operaciones Multiciclo

Unidad entera: Un ciclo Unidades en Punto Flotante: Varios ciclos

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Operaciones Multiciclo: Segmentacin


Problema: Slo puede existir una instruccin en cada unidad funcional. La latencia aumenta debido a que la unidad tarda varios ciclos, con lo que el rendimiento desciende. Solucin: Segmentar las unidades funcionales. De esta manera, pueden coexistir varias instrucciones en la misma unidad (pero en distintas etapas)
Unidad de suma y resta en Punto Flotante Unidad de multiplicacin Unidad de divisin Por qu no se segmenta el divisor? 4 etapas 7 etapas 1 etapa (24 ciclos)

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Operaciones Multiciclo: Segmentacin

Pueden coexistir varias instrucciones en las unidades segmentadas, pero no en el divisor

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Riesgos en las Operaciones Multiciclo


Efectos en los riesgos de las operaciones multiciclo:
Al no estar segmentado el divisor, se puede producir un conflicto estructural si hay varias instrucciones prximas de este tipo Al variar los tiempos de ejecucin de las instrucciones, pueden existir conflictos estructurales a la hora de escribir registros y memoria Sin embargo, toda la lectura de registros se sigue produciendo en el segundo ciclo (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 ms frecuentes

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Operaciones Multiciclo: Segmentacin


MULTD ADDD LD SD IF ID IF M1 ID IF M2 A1 ID IF M3 A2 EX ID M4 A3 M5 A4 M6 M7 MEM WB 4 3 1 2

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.

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Ejemplo: MIPS R4000

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

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Ejemplo: MIPS R4000

La operacin de carga (Load) introduce una dependencia RAW con un retraso de 2 ciclos.

AT5118 Arquitectura e Ingeniera de Computadores I


Juan Antonio Maestro

Ejemplo: MIPS R4000

El retraso bsico en una bifurcacin es de 3 ciclos, ya que la condicin de salto no se evala hasta la etapa EX.

También podría gustarte