La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Arquitectura de Computadores

Presentaciones similares


Presentación del tema: "Arquitectura de Computadores"— Transcripción de la presentación:

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
6. Mejora del Rendimiento 1. CPU Segmentada (Pipeline) 1.2 Un ejemplo: DLX 1. CPU Segmentada (Pipeline) 1.2 Un ejemplo: DLX 2. Memoria Caché

3 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 Arquitectura de Computadores

4 Escritura en registros
Pipeline ...DLX 32 Salto Nuevo PC ALU ALU Input 1 ALU Input 2 ALU Input 3 PC Registros Unidad de Saltos I-caché Actualizar PC Reg. Instr. Dato de Mem. Lectura / Escritura ALU Output D-caché MUX 5 32 Dato a Reg. Almacenar Reg. 32 Escritura en registros IF ID EX 32 MEM WB Arquitectura de Computadores

5 IF: Extracción de la instrucción
Pipeline ...DLX IF: Extracción de la instrucción IR = I_Cache [PC] IR es el Registro de Instrucción PC = PC 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) Arquitectura de Computadores

6 EX Ejecución / Cálculo de operandos
Pipeline ...DLX EX Ejecución / Cálculo de operandos Obtener ALU_Output operación aritmética/lógica dirección de memoria MEM Acceso a memoria Dato_a_Registro = ALU_Output ó D_Cache [ALU_Output] = Almacenar_Reg WB Write Back (escritura en registros) Registros[] = Dato_a_Registro ó Registros[] = Dato_de_Mem Arquitectura de Computadores

7 DLX Instrucciones Típicas
Pipeline ...DLX DLX Instrucciones Típicas INSTRUCCIÓN OPERACIÓN EJEMPLO 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:0 SGT R1,R5,R4 BEQZ RA,ETIQ IF RA=0 GOTO ETIQ BEQZ R1,BUCLE SLLI RA,RB,X (SLL,SRL,SRLI) RA<-RB<<2 SLLI R5,R5,2 Arquitectura de Computadores

8 DLX Ralentización – Dependencias de Datos
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 lw R1,$100 lw R2,$200 add R2,R1,R2 sub R1,R2,R1 Tiempo 1 2 3 4 5 6 7 8 IF ID IF EX ID IF MEM EX ID IF WB MEM EX ID Nuevo R1 WB MEM EX WB MEM Antiguo R1 WB Arquitectura de Computadores

9 Se accede a los registros en el 2 subciclo de ID
Pipeline ...DLX SOLUCIÓN SOFTWARE (Insertar NOP por el compilador) 1 2 3 4 5 6 7 8 9 lw R1,$100 MEM WB IF ID EX Se accede a los registros en el 2 subciclo de ID Nuevo R1 lw R2,$200 No hay conflicto add R2,R1,R2 nop nop Tiempo ¿Habría bastado con una única instrucción NOP? Arquitectura de Computadores

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

11 ¡Eliminamos las burbujas! ¿Funciona para todas las instrucciones?
Pipeline …DLX SOLUCIÓN HARDWARE (Anticipación) 1 2 3 4 5 6 Anticipación add R2,R1,R2 IF ID IF EX MEM WB R2 sub R1,R2,R1 ID EX MEM WB Tiempo ALU R2 ¡Eliminamos las burbujas! ¿Funciona para todas las instrucciones? Arquitectura de Computadores

12 SOLUCIÓN HARDWARE (Detener el cauce + Anticipación)
Pipeline …DLX SOLUCIÓN HARDWARE (Detener el cauce + Anticipación) 1 2 3 4 5 6 7 Anticipación MEM->EX 8 9 10 lw R1,$100 IF MEM ID EX IF ID WB MEM IF Anticipación EX->EX R1 R2 lw R2,$200 EX WB ID MEM EX WB MEM add R2,R1,R2 R2 sub R1,R2,R1 Tiempo Aparecen burbujas cuando hay instrucciones de acceso a memoria (lw) El dato en una instrucción load (lw) está disponible tras la etapa MEM Arquitectura de Computadores

13 EJEMPLO – Sin anticipación (Forwarding)
Pipeline ...DLX EJEMPLO – Sin anticipación (Forwarding) 1 2 3 4 5 6 7 8 9 lw R5,$100 IF MEM ID EX WB Nuevo R5 slli R5,R5,2 ID IF MEM WB EX ID EXE IF sgt R1,R4,R5 Tiempo Arquitectura de Computadores

14 DLX Ralentización – Motivos estructurales
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 1 2 3 4 5 6 7 8 CASO 1 lw R1,$100 slli R5,R6,2 IF ID EX MEM WB EX WB Acceso simultáneo Banco de REGISTROS MEM WB WB Arquitectura de Computadores

15 Pipeline ...DLX CASO 2 OTROS RIESGOS
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 lw R5,$100 slli R5,R5,2 Tiempo 1 2 3 4 5 6 7 8 ………………………… Acceso simultáneo IF DEC REG MEM EX WB Banco de REGISTROS REG MEM WB EX 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). Arquitectura de Computadores

16 DLX Ralentización – Bifurcaciones
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 Arquitectura de Computadores

17 Bifurcaciones: NO se toma el salto Predicción estática de
Pipeline ...DLX Bifurcaciones: NO se toma el salto Predicción estática de “no saltar” 1 2 3 4 5 6 7 8 9 10 IF ID IF EX ID MEM EX ID IF WB MEM EX ID nop BTAC = PC + despl. R1=1 beqz R1,SALIR WB MEM EX PC = PC + 4 R1=1 → NO SALTAR IF WB MEM add R2,R3,R2 sub R5,R4,R6 WB SALIR: …….. Tiempo Arquitectura de Computadores

18 Bifurcaciones: SI se toma el salto Predicción estática de
Pipeline ...DLX Bifurcaciones: SI se toma el salto Predicción estática de “no saltar” 1 2 3 4 5 6 7 8 9 10 IF ID IF EX ID IF MEM EX WB MEM ID nop PC = BTAC R1=0 beqz R1,SALIR WB EX Vaciar ¡¡SALTAR!! add R2,R3,R2 sub R5,R4,R6 IF MEM WB SALIR: …….. Tiempo Arquitectura de Computadores


Descargar ppt "Arquitectura de Computadores"

Presentaciones similares


Anuncios Google