1 / 18

Arquitectura de Computadores

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. . Arquitectura de Computadores. 6. Mejora del Rendimiento. 1. CPU Segmentada ( Pipeline ) 1.2 Un ejemplo: DLX

mea
Download Presentation

Arquitectura de Computadores

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  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

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

  5. 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. 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. Pipeline ...DLX DLX Instrucciones Típicas

  8. Pipeline ...DLX 1 2 3 4 5 6 7 8 lw R1,$100 Nuevo R1 IF IF IF IF ID ID ID ID EX EX EX EX MEM MEM MEM MEM WB WB WB WB lw R2,$200 add R2,R1,R2 Antiguo R1 sub R1,R2,R1 Tiempo 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

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

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

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

  12. Pipeline …DLX Anticipación MEM->EX R1 Anticipación EX->EX R2 IF IF IF IF IF ID ID ID ID ID EX EX EX EX MEM MEM MEM MEM WB WB WB WB R2 SOLUCIÓN HARDWARE (Detener el cauce + Anticipación) 9 10 1 2 3 4 5 6 7 8 lw R1,$100 lw R2,$200 add R2,R1,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

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

  14. Pipeline …DLX IF IF ID ID EX EX WB WB CASO 1 WB WB 1 2 3 4 5 6 7 8 lw R1,$100 Acceso simultáneo MEMWB MEMWB Banco de REGISTROS slli R5,R6,2 Tiempo 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

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

  16. Pipeline ...DLX ACIERTO 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

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

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

More Related