Tema 2 Procesadores Segmentados

  • View
    71

  • Download
    5

Embed Size (px)

DESCRIPTION

Tema 2 Procesadores Segmentados. Contenidos. Introducción: MPIS-DLX Excepciones y control Segmentación Riesgos: Estructurales, de datos y de control Segmentación del procesador. Diseño del control Diseño del control con riesgos Excepciones: una segunda mirada Operaciones multi-ciclo - PowerPoint PPT Presentation

Text of Tema 2 Procesadores Segmentados

  • *ContenidosIntroduccin: MPIS-DLXExcepciones y controlSegmentacinRiesgos: Estructurales, de datos y de controlSegmentacin del procesador. Diseo del controlDiseo del control con riesgosExcepciones: una segunda miradaOperaciones multi-cicloUn Ejemplo: MIPS R4000BibliografaApndice A [HePa07]Captulos 4 y 5 de [SiFK97]Simulador WinDLX

  • *RecordatorioArquitectura MIPS (DLX)Todas las instrucciones del repertorio del MIPS tienen 32 bits de anchura, repartidas en 3 formatos de instruccin diferentes:

    El significado de los campos es:op: identificador de instruccinrs, rt, rd: identificadores de los registros fuentes y destinoshamt: cantidad a desplazar (en operaciones de desplazamiento)funct: selecciona la operacin aritmtica a realizarinmediato: operando inmediato o desplazamiento en direccionamiento a registro-basedireccin: direccin destino del saltoTipo R:aritmtico-lgicas

    Tipo I:con memoriasalto condicionalTipo J:salto incondicional

  • *RecordatorioRuta de datos ( multiciclo )MemoriaADDRDRDWMemReadMemWrite01MUXIorDBanco deregistrosbusAbusBRARBRWbusWRegWriteALUZeroExtensin de signo
  • *RecordatorioDiagrama de estados del controlador multicicloTotal 8

  • *Excepciones y controlDos tipos InterrupcionesSe producen a causa de sucesos externos al procesador.Son asncronas a la ejecucin del programa.Se pueden tratar entre instruccionesTrapsSe producen por causas internas. Overflow, errores, fallos de paginaSon sncronas con la ejecucin del programaLa condiciones deben ser almacenadas.El programa debe ser abortado o continuado desde esa instruccinRequerimientosTratamiento dentro del controlSalvar el estado ( CP y la causa )Stack 68k, x86Registros especficos CPE, Causa

  • *Excepciones y controlNuevo diagrama de estadosPCE PC-4PC Dir_Excpcausa 10 Instruccin no definidaPCE PC-4PC Dir_Excpcausa 12 overflowPCE PCPC Dir_Excpinterrupcin

  • *SegmentacinEtapas de una instruccin (Load)

    Ifetch ( bsqueda). Lee una instruccin desde la memoriaReg/dec. Decodifica la instruccin y lee registrosEjecuta. Calcula direccin de memoriaMem. Lee el dato de la memoriaEscri. Escribe el dato en el registroSegmentacinProgramaTiempo

  • *SegmentacinMonociclo, multiciclo, segmentadoClkCiclo 1MulticicloCiclo2Ciclo 3Ciclo 4Ciclo 5Ciclo 6Ciclo 7Ciclo 8Ciclo9Ciclo10LoadLoadStoreSegmentadoStoreClkMonocicloLoadStoreNo usadoR-typeR-typeCiclo 1Ciclo2 100 instrucciones Monociclo 45ns/ciclo x100 = 4500ns Multiciclo 10ns/ciclo x 4.6 CPI x 100 =4600ns Segmentado 10ns x (1CPIx100+4 llenado) =1040 ns

  • *SegmentacinRiesgos

    Situaciones que impiden que cada ciclo se inicie la ejecucin de una nueva instruccin

    Tipos:Estructurales. Se producen cuando dos instrucciones tratan de utilizar el mismo recurso en el mismo ciclo.De datos. Se intenta utilizar un dato antes de que este preparado. Mantenimiento del orden estricto de lecturas y escrituras.De control. Intentar tomar una decisin sobre una condicin todava no evaluada.

    Los riesgos se deben detectar y resolver

  • *SegmentacinRiesgos estructurales. ....Objetivo: Ejecutar sin conflicto cualquier combinacin de instruccionesMemoria. Leer una instruccin. Leer o escribir un operando

    Registros. Dos lecturas, una escritura

    ALU. Calculo de operando, direccin, condicin, actualizacin de PC

  • *Segmentacin: Riesgos estructuralesMemoriainstruccionesADDRDRBanco deregistrosbusAbusBRARBRWbusWALUZeroExtensin de signo
  • *Segmentacin : Riesgos de datos Se produce cuando por la segmentacin, el orden de LECTURA de los operandos y la ESCRITURA de resultados se modifica respecto al especificado por el programa.Se produce un riesgo si existe dependencia entre instrucciones que se ejecutan concurrentemente.

    Si a = b + c .Sj c = a + e .Sk a = d + eDominio: operandos de la instruccin Rango: resultado de la instruccin

    Situaciones: i precede a j

    D( i ) D( j ) no RIESGO D( i ) R( j ) riesgo EDL (WAR)R( i ) D( j ) riesgo LDE (RAW)R( i ) R( j ) riesgo EDE (WAW)

  • *Riesgos de datosRiesgos. D( i ) R( i+? ) EDL (WAR) R( i ) R( i+? ) EDE (WAW)Tiempo (ciclos)Inst iInst i+1Inst i+2 Se leen los registros en el final de la segunda etapa Todos las instrucciones escriben en la ultima etapa Todas las instrucciones tienen igual duracin

  • *Riesgos de datosRiesgo R( i ) D( i+? ) LDE (RAW)

    iaddr1 ,r2,r3

    i+1sub r4, r1 ,r3Debe esperar dos ciclos

    i+2andr6, r1 ,r7Debe esperar un ciclo

    i+3orr8, r1 ,r9 Puede progresar?

    i+4xorr10, r1 ,r11Tiempo(ciclos)ALUImRegDmRegRegDmRegRegDmRegImALURegDmReg Cuando esta listo el operando ?

  • *Riesgos de datosRiesgo R( i ) D( i+? ) LDE (RAW). Cortocircuito. Enviar el dato a las etapas que lo necesitan, cuanto esta listo

    iaddr1 ,r2,r3

    i+1sub r4, r1 ,r3

    i+2andr6, r1 ,r7

    i+3orr8, r1 ,r9

    i+4xorr10, r1 ,r11Tiempo(ciclos)ALUImRegDmRegRegDmRegRegDmRegImALURegDmRegSe pueden ejecutar todas las instrucciones sin problemas

  • *Riesgos de datosRiesgo R( i ) D( i+? ) LDE (RAW). Caso del Load

    Tiempo(cicloslw r1,0(r2)

    sub r4,r1,r3ALUImRegDmRegRegDmRegNo se puede resolver con el cortocircuitoLa instruccin dependiente del Load debe esperar un ciclo

  • *Riesgos de controlSe debe evaluar la condicin y obtener el nuevo valor del PC

    La evaluacin de la condicin y el calculo del nuevo PC se realizan en la etapa de ejecucinTiempo (ciclos)Addr1,r2,r3Genera la condicin

    Beqr1, loop

    Load

    RegMemRegRegMemRegSolucin esperar tres ciclos para la instruccin que sigue al salto

  • *Riesgos de controlSolucin: Desplazar el calculo de la direccin y la evaluacin de la condicin a la etapa ID Tiempo (ciclos)Addr1,r2,r3Genera la condicin

    Beqr1, loop

    Load

    RegMemRegRegMemRegRegMemRegImSolo se espera un ciclo para la instruccin que sigue al salto

  • *Riesgos de controlReinterpretar el comportamiento de los saltos: Salto retardadoSe efecta despus de la siguiente instruccinLa instruccin siguiente al salto se ejecuta siempreTiempo (ciclos)RegMemRegRegMemRegImRegMemRegImRegMemRegAddr1,r2,r3Genera la condicin

    Beqr1, loop

    cualquier instruccinno dependiente del salto

    Load

    Si es posible encontrar una instruccin 0 ciclos de penalizacin

  • *Segmentacin del procesadorMemoriainstruccionesADDRDRBanco deregistrosbusAbusBRARBRWbusWALUZeroExtensin de signo
  • *Diseo del controlEjecucin de instrucciones: diagrama RTRecordatoriors = Ins[25-21]rt = Ins[20-16]rd = Ins[15-11]Inme = Ins[15-0]IR
  • *Diseo del controlLas instruciones: Load (lw) y tipo-R Load. Tiene 5 fases y cada una utiliza una de las etapas Tipo-R. Tiene 4 fases y no usa la memoria de datos ConflictoSolo una puerta en el bloque de registros

  • *Diseo del controlImportante. como evitarlo ?Cada etapa del procesador puede usarse en cada ciclo por una sola instruccin.Cada instruccin debe usar cada etapa del procesador en la misma fase de ejecucin.Solucin.Introducir una etapa (Mem) que no hace nada.

    Sw, Beq Store 4 etapas con actividad. Branch cuatro etapas activasSwBeq

  • *Diseo del controlEjecucin de instrucciones: Diagrama RT modificadoR[rd]
  • *Diseo del controlMemoriainstruccionesADDRDRBanco deregistrosbusAbusBRARBRWbusWALUZeroExtensin de signo
  • *Diseo del controlSeales de controlControl de la ALUControl principalEl control de la alu se determina por ALUop que depende del tipo de instruccin y el campode funcin en las instrucciones de tipo-REX: Ejecucin/Calculo de DirMEM: Acceso aMemoriaWB EscribeRegControl segmentado estacionario en los datos

    op

    funct

    ALUop

    ALUctr

    100011 (lw)

    XXXXXX

    00

    010

    101011 (sw)

    00

    010

    000100 (beq)

    01

    110

    000000 (tipo-R)

    100000 (add)

    10

    010

    100010 (sub)

    10

    110

    100100 (and)

    10

    000

    100101 (or)

    10

    001

    101010 (slt)

    10

    111

    op

    RegDst

    ALUSrc

    ALUop

    MemRead

    MemWrite

    Branch

    RegWrite

    MemtoReg

    100011 (lw)

    0

    1

    00

    1

    0

    0

    1

    0

    101011 (sw)

    X

    1

    00

    0

    1

    0

    0

    X

    000100 (beq)

    X

    0

    01

    0

    0

    1

    0

    X

    000000 (tipo-R)

    1

    0

    10

    0

    0

    0

    1

    1

  • *Diseo del controlMemoriainstruccionesADDRDRBanco deregistrosbusAbusBRARBRWbusWALUZeroExtensin de signo
  • *Diseo del controlQu facilita el control segmentado?Todas las instrucciones con igual duracinPocos formatos diferente de instruccinAccesos a memoria solo en load y stores

    Qu dificulta el control segmentado?Riesgos estructurales. Conflictos de recursosRiesgos de datos. Solo LDERiesgos de control

    El diseo anterior no tenia en cuenta los riesgos de datos y los riesgos de control los eliminaba con saltos retardadosImplementacin del cortocircuitoCaso del loadMejora en el comportamiento de los saltos.

  • *Diseo del control con riesgosRiesgos de datos R( i ) D( i+? ) LDE (RAW). Cortocircuito. Enviar el dato a las etapas que lo necesitan, cuanto esta listo

    Dos caminos de datos: Desde salida ALU (EX/MEM) a entrada ALU Desde la salida de la memoria (MEM/WB) a entrada ALUInformacin necesaria: Registro a escribir en ultima etapa ( Rd en Tipo-R y Rt en Lw) Registros que se leen en segunda etapa ( Rs y Rt )

  • *Diseando el control con riesgosRiesgos de datos LDE: Implementacin del cortocircuito Cortocircuitos de datos Informacin de control del cortocircuitoBanco deregistrosb