La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Arquitectura de Computadores Mejora del Rendimiento - 1 Arquitectura de Computadores 1. Introducción 2. La CPU 3. Lenguaje Máquina 4. La Memoria 5. Sistemas.

Presentaciones similares


Presentación del tema: "Arquitectura de Computadores Mejora del Rendimiento - 1 Arquitectura de Computadores 1. Introducción 2. La CPU 3. Lenguaje Máquina 4. La Memoria 5. Sistemas."— Transcripción de la presentación:

1 Arquitectura de Computadores Mejora del Rendimiento - 1 Arquitectura de Computadores 1. Introducción 2. La CPU 3. Lenguaje Máquina 4. La Memoria 5. Sistemas de Entrada/Salida 6. Mejora del Rendimiento 7. Arquitecturas RISC

2 Arquitectura de Computadores Mejora del Rendimiento - 2 Arquitectura de Computadores 6. Mejora del Rendimiento 1. CPU Segmentada (Pipeline) 1.2 Un ejemplo: DLX 2. Memoria Caché 1. CPU Segmentada (Pipeline) 1.2 Un ejemplo: DLX

3 Mejora del Rendimiento - 3 Arquitectura de Computadores La CPU Segmentación (Un ejemplo: DLX) Vamos a ver una simplificación (sin tener en cuenta instrucciones multiciclo, MMU, etc.) Arquitectura RISC load/store Arquitectura Harvard de memoria 5 etapas IF:Extracción de la instrucción ID:Decodificación / Acceso a registros EX:Ejecución / Cálculo de operandos MEM:Acceso a memoria WB:Write Back (escritura en registros) Cada etapa en un ciclo de reloj

4 Mejora del Rendimiento - 4 Arquitectura de Computadores Pipeline...DLX I-caché Actualizar PC Reg. Instr. D-caché ALU Output Almacenar Reg. Dato de Mem.Dato a Reg. MUX ALU ALU Input 1 ALU Input 2 ALU Input 3 PC IFIDEXMEMWB Escritura en registros Lectura / Escritura Registros Unidad de Saltos 32 SaltoNuevo PC

5 Mejora del Rendimiento - 5 Arquitectura de Computadores Pipeline...DLX IF:Extracción de la instrucción IR = I_Cache [PC] IR es el Registro de Instrucción PC = PC+4 PC es el Contador de Programa ID:Decodificación / Acceso a registros 1 Subciclo: Decodificar instrucción 2 Subciclo: ALU_Input[1..2]= Registros (IR [25-21, 20-16]) ó ALU_Input[3] = IR[15-0] (Dir. Inmediatos) ó Nuevo PC = Dir_Salto (en instrucciones de salto)

6 Mejora del Rendimiento - 6 Arquitectura de Computadores Pipeline...DLX EXEjecución / Cálculo de operandos Obtener ALU_Output operación aritmética/lógica dirección de memoria … MEMAcceso a memoria Dato_a_Registro = ALU_Output ó D_Cache [ALU_Output]= Almacenar_Reg WBWrite Back (escritura en registros) Registros[] = Dato_a_Registro ó Registros[] = Dato_de_Mem

7 Mejora del Rendimiento - 7 Arquitectura de Computadores Pipeline...DLX DLX Instrucciones Típicas INSTRUCCIÓNOPERACIÓNEJEMPLO NOP LW Reg, Dir(Reg<-Mem[Dir])LW r12, Vector(r4) SW Dir, Reg(Mem[Dir]<- Reg)SW Vector(r4), r12 ADD/SUB RA,RB,RC(RA<-RB+RC)ADD R1,R2,R3 SGT RA,RB,RC (NE,EQ,LT,LE,GE) RA =(RB>RC)?1:0SGT R1,R5,R4 BEQZ RA,ETIQIF RA=0 GOTO ETIQBEQZ R1,BUCLE SLLIRA,RB,X (SLL,SRL,SRLI) RA<-RB<<2SLLI R5,R5,2

8 Mejora del Rendimiento - 8 Arquitectura de Computadores Pipeline...DLX DLX Ralentización – Dependencias de Datos Sólo vamos a estudiar las RAW WAW ocurren en cauces con más de un etapa de escritura y en ejecuciones fuera de orden WAR cuando una etapa de escritura precede a una de lectura IF lw R1,$100 lw R2,$200 add R2,R1,R2 sub R1,R2,R1 Tiempo ID IF EX ID IF WB MEM WBMEM EX ID IF WB MEM EX ID WB MEM EX Antiguo R1 Nuevo R1

9 Mejora del Rendimiento - 9 Arquitectura de Computadores Pipeline...DLX SOLUCIÓN SOFTWARE (Insertar NOP por el compilador) lw R1,$100 lw R2,$200 add R2,R1,R2 Tiempo nop ¿Habría bastado con una única instrucción NOP? 9 MEMWBIFIDEX MEMWBIFIDEX MEMWBIFIDEX MEMWBIFIDEX MEMWBIFIDEX No hay conflicto Se accede a los registros en el 2 subciclo de ID Nuevo R1

10 Mejora del Rendimiento - 10 Arquitectura de Computadores Pipeline...DLX SOLUCIÓN HARDWARE (Detener el cauce) lw R1,$100 lw R2,$200 add R2,R1,R2 Tiempo Nuevo R1 9 sub R1,R2,R1 10 ¡Cada dependencia RAW genera 2 burbujas! Se ralentiza la ejecución del programa IFID IF EX ID IF MEM EX IF WB MEM IF WB ID IF EX IF MEM IF WB ID EX

11 Mejora del Rendimiento - 11 Arquitectura de Computadores Pipeline …DLX SOLUCIÓN HARDWARE (Anticipación) add R2,R1,R2 Tiempo sub R1,R2,R1 ¡Eliminamos las burbujas! ¿Funciona para todas las instrucciones? ALU R2 Anticipación MEMWBIFEXMEMWBID IF IDEX R2

12 Mejora del Rendimiento - 12 Arquitectura de Computadores Pipeline …DLX SOLUCIÓN HARDWARE (Detener el cauce + Anticipación) lw R1,$100 lw R2,$200 add R2,R1,R2 Tiempo sub R1,R2,R1 10 Aparecen burbujas cuando hay instrucciones de acceso a memoria ( lw ) El dato en una instrucción load ( lw ) está disponible tras la etapa MEM Anticipación MEM->EX IFMEMIDEX IFIDEX IFID IF WB MEMWB ID WB MEM IF EX WB ID MEM EX R2 R1 R2 Anticipación EX->EX

13 Mejora del Rendimiento - 13 Arquitectura de Computadores Pipeline...DLX EJEMPLO – Sin anticipación (Forwarding) lw R5,$100 slli R5,R5,2 sgt R1,R4,R5 Tiempo ID IF MEMIFIDEX WB Nuevo R5 MEMWBEX IDEXEIF MEM

14 Mejora del Rendimiento - 14 Arquitectura de Computadores Pipeline …DLX DLX Ralentización – Motivos estructurales DLX no tiene riesgos estructurales (Structural Stall). Vamos a introducir algunas modificaciones en las etapas del cauce para provocar la aparición de riesgos estructurales. Caso 1.- Supongamos que en la etapa MEM realizamos una escritura en los registros Tiempo CASO 1 lw R1,$100 slli R5,R6,2 Banco de REGISTROS Acceso simultáneo WB MEM WB WB IFIDEX IFID MEM WB EX

15 Mejora del Rendimiento - 15 Arquitectura de Computadores Pipeline...DLX Banco de REGISTROS Acceso simultáneo OTROS RIESGOS Utilización de la ALU (por ejemplo para actualizar el contador de programa) Una única memoria (accesos simultáneos desde las etapas IF y MEM). Caso 2.- La etapa ID tiene dos subciclos (1º decodificación y 2º acceso a los operandos en el banco de registros). Dividimos la etapa ID en dos: DEC, REG. CASO 2 WB lw R5,$100 slli R5,R5,2 Tiempo ………………………… IFDECREGMEMEX IFDEC REG MEMWBEX

16 Mejora del Rendimiento - 16 Arquitectura de Computadores Pipeline...DLX DLX Ralentización – Bifurcaciones El problema aparece con las instrucciones de salto condicional Detener el cauce, para conocer la siguiente instrucción a ejecutar, reduce su rendimiento Calcular la dirección de salto lo antes posible (etapa ID) favorece la toma de decisiones y evita los riesgos de control Implementación BTA (Branch Target Address): Nuevo registro interno En la etapa ID se calcula la dirección del salto (desplazamiento sobre el PC), se guarda en BTA y se comprueba la condición de salto (consulta de un registro) Política adoptada: Predicción estática de no saltar En la etapa EX, si el salto se toma, se actualiza PC con BTA Puede ocurrir dos situaciones: No se toma el salto => Continua la ejecución Se toma el salto=> Vaciar el cauce ACIERTO

17 Mejora del Rendimiento - 17 Arquitectura de Computadores Pipeline...DLX Bifurcaciones: NO se toma el salto nop beqz R1,SALIR add R2,R3,R2 Tiempo sub R5,R4,R6 10 SALIR: …….. R1=1 IFID IF PC = PC + 4 EX ID IFWB MEM WBMEM EX ID IF WB MEM EX ID WB MEM EX Predicción estática de no saltar BTAC = PC + despl. R1=1 NO SALTAR

18 Mejora del Rendimiento - 18 Arquitectura de Computadores Pipeline...DLX Bifurcaciones: SI se toma el salto nop beqz R1,SALIR add R2,R3,R2 Tiempo sub R5,R4,R6 10 SALIR: …….. R1=0 IFID IF EX ID IF MEM EX Predicción estática de no saltar PC = BTAC ¡¡SALTAR!! Vaciar IFWBMEMWB EX WB MEM ID


Descargar ppt "Arquitectura de Computadores Mejora del Rendimiento - 1 Arquitectura de Computadores 1. Introducción 2. La CPU 3. Lenguaje Máquina 4. La Memoria 5. Sistemas."

Presentaciones similares


Anuncios Google