Tema 2. Segmentación encauzada (pipelines).

 
 
Directorio de la página:



Contenido del tema.  
 Pipeline fundamental para enteros.
 
IF
RD
ALU
MEM
WB
 

    El pipeline de la figura anterior representa un pipeline típico para la ejecución de instrucciones escalares enteras. En particular, junto con la descripción de las operaciones básicas que aparece debajo, es una simplificación del pipeline del procesador MIPS R3000.
 
 

    IF (Adquisición de instrucción) 
     
        PC <- PC + 4   ó(ALU_OUT & IR2)  PC_BTA1 
        IR <- IMEM[PC]
    RD (Lectura de operandos)
        PC1 <- PC 
        IR1 <- IR 
        PC_BTA <- Imm_L(IR) ó(IR) SIGN(Imm_C(IR))+PC 
        ALU_A <- Rs1(IR) 
        ALU_B <- Rs2(IR) 
    ALU (Ejecución)
        PC2 <- PC1 
        IR2 <- IR1 
        PC_BTA1 <- PC_BTA 
        SMDR <- ALU_B 
        MAR <- ALU_A + SIGN(Imm_C(IR1)) 
        ALU_OUT <- ALU_A op(IR1) ALU_B ó(IR1) SIGN(Imm_C(IR1)) 
              ó(IR1) CERO(Imm_C(IR1))
        SHIFT_OUT <- ALU_A op(IR1) ALU_B ó(IR1) Imm_SA(IR1)
    MEM (Acceso a memoria)
        PC3 <- PC2 
        IR3 <- IR2 
        WB1 <- ALU_OUT ó(IR2) SHIFT_OUT 
        DMEM[MAR]<- ALIGN(SMDR) si(IR2) 
        LMDR <- ALIGN(DMEM[MAR]) si(IR2)
    WB (Escritura de resultados)
        Rd(IR3) <- WB1 ó(IR3) PC3 ó(IR3) LMDR
 
 

 Dependencias de datos.
 

        Adelantamiento de datos en el R3000: Esquema de adelantamiento de registros para la ALU.


Problemas sobre organización de código.
 

 Solución.
 Solución.
 Solución.