Curso 2006/07 Arquitectura de Computadores 1. 2. 3. 4. 5. 6. Introducción La CPU Lenguaje Máquina La Memoria Sistema de Entrada/Salida Buses Informática Aplicada Arquitectura de Computadores 1 Ciclos La CPU Ciclo de reloj CPU Buses Ciclo de memoria Caché 1 Caché 2 … Memoria Ciclo de instrucción Tipo de hardware utilizado Informática Aplicada Arquitectura de Computadores 2 Ciclo de Instrucción La CPU Extracción de instrucción (Fetch). Decodificación. Extracción de operandos. Ejecución. Almacenamiento de resultado. Informática Aplicada Arquitectura de Computadores 3 Proceso de Arranque La CPU CPU Inicialización de registros internos Carga de Puntero de pila: RAM Carga del Contador de Programa: ROM Ejecución del programa de arranque: ROM Placa Base Inicialización de dispositivos de placa base: ROM Asignación de recursos Carga sw de arranque : Disquete, disco, CD-ROM, red o USB. Informática Aplicada Arquitectura de Computadores 4 Aumento de velocidad de ejecución La CPU Tecnología. S.O. y Sw compatible. Organización: paralelismo en instrucción (pipeline) S.O. y Sw compatible. Paralelismo de procesadores. S.O. nuevo. Sw compatible. Arquitectura S.O y Sw nuevo. Informática Aplicada Arquitectura de Computadores 5 Segmentación – Pipeline: concepto La CPU x+y+z x+y+z T 2T T T T T T 2T T Ventajas Desventajas Duplica la frecuencia Informática Aplicada Buffer intermedios Arranque Etc. Arquitectura de Computadores 6 Segmentación – Pipeline: cpu sencilla La CPU Ciclo de Instrucción CPU Fetch y decodificación Ejecución Fetch Ejec. Tiempo de ejecución Una instrucción Sw completo Tiempo F1 E1 F2 E2 F3 E3 Inst.1 Inst.2 Inst.3 Informática Aplicada Arquitectura de Computadores 7 Segmentación – Pipeline : cpu sencilla La CPU Ciclo de Instrucción Fetch y decodificación Ejecución CPU Fetch Buffer Sincronismo del pipeline Lógica del sw Informática Aplicada Tiempo Etapas Tiempo de ejecución Una instrucción Sw completo Ejec. F1 F2 F3 … E1 E2 E3 … Inst.1 Inst.2 Inst.3 Arquitectura de Computadores 8 Arquitectura del DLX La CPU Arquitectura Hardvard de memoria Juego de instrucciones Load r1, 10(r2) store 10(r3),r4 Op r5,r6,#5 JC desp. Op r7,r8,r9 J etiqueta Informática Aplicada Arquitectura de Computadores 9 Arquitectura del DLX La CPU Búsqueda de instrucción: F Extrae una instrucción de memoria Incrementa el CP Decodificación y lee registros: D/R Se decodifica la instrucción Se accede al banco de registros por el operando Se calcula el operando inmediato En salto incondicional, se resuelve. Ejecución y Dirección efectiva: E Para inst. de cálculo se ejecuta la ALU Para accesos a memoria se calcula la dirección efectiva Para inst. de salto se decide si existe salto y el destino Memoria: M Se accede a memoria, si procede Se actualiza CP, si procede Escritura: W Se almacena el resultado en el banco de registros, si procede Informática Aplicada Arquitectura de Computadores 10 Arquitectura del DLX La CPU Etapas Tiempo F D/R E M W Informática Aplicada I1 I2 I3 … I1 I2 I3 … I1 I2 I3 … I1 I2 I3 … I1 I2 I3 … Arquitectura de Computadores 11 Arquitectura del DLX La CPU Instrucciones Tiempo I1 F1 D1 E1 M1 W1 I2 I3 I4 F2 D2 E2 M2 W2 F3 D3 E3 M3 W3 F4 D4 E4 M4 W4 … Informática Aplicada Arquitectura de Computadores 12 Rendimiento ideal La CPU DLX sin segmentar F(15ns), D(10ns), E(25ns), M(20ns), W(5ns) Tiempo de instrucción: 75ns Velocidad de ejecución: 13.333.333 inst/s DLX segmentado Ciclo de reloj: 25ns Tiempo de instrucción: 25ns*5 = 125ns Velocidad de ejecución: 40.000.000 inst/s Mejora: 3 veces más rápido Informática Aplicada Arquitectura de Computadores 13 Ralentización La CPU Dependencias estructurales Duración de las etapas Utilización de recursos Dependencia de datos Datos no actualizados Dependencias de control Orden de la ejecución Informática Aplicada Arquitectura de Computadores 14 Dependencias estructurales La CPU 1. 2. 3. 4. 5. add r3,r1,r2 mul r5,r4,#23 add r7,r6,#10 nop ... *Necesita dos unidades de ALU Etapas Tiempo F D/R 1 add 2 mul 3 add 4 nop 4 5 6 7 1 r1,r2 2 r4,#23 3 r6,#10 3 4 5 6 3 + 4 5 2 3 4 E M W Informática Aplicada 1 + 2* 2* 1 1 r3= 2 r5= 3 r7= Arquitectura de Computadores 15 Problemas estructurales: soluciones La CPU Duplicación de unidades funcionales Informática Aplicada Arquitectura de Computadores 16 Dependencia de datos La CPU Dato accedido por varias instrucciones RAW: lectura después de escritura add r1,r2,r3 add r4,r5,r1 WAR: escritura después de lectura add r1,r2,r3 add r2,r4,r5 WAW: escritura después de escritura add r1,r2,r3 add r1,r4,r5 Informática Aplicada Arquitectura de Computadores 17 Dependencia de datos: RAW La CPU 1. 2. 3. 4. add r3,r1,r2 add r4,r3,#10 nop ... Etapas Tiempo F 1 add 2 add 3 nop 3 D/R 1 r1,r2 2 r3,#10 2 r3 E 1 + M W Informática Aplicada 3 3 4 5 6 2 r3 2 r3 3 4 5 2+ 3 4 2 3 1 1 r3= Arquitectura de Computadores 2 r4= 18 Dependencia de datos: soluciones La CPU Prevención: compilador Reordenación Inserción de instrucciones NOP Detención y resolución: CPU Anticipación Detención del pipeline Informática Aplicada Arquitectura de Computadores 19 Prevención en la dependencia de datos La CPU Reordenación Inserción NOP Informática Aplicada 1: 2: 3: 4: 5: mov mov add add add r4,r0 r5,r0 r7,r1,r2 r3,r7,#10 r6,r4,#0 3: 1: 2: 4: 5: 3: 1: 2: : 4: 5: Arquitectura de Computadores add mov mov add add add mov mov nop add add r7,r1,r2 r4,r0 r5,r0 r3,r7,#10 r6,r4,#0 r7,r1,r2 r4,r0 r5,r0 r3,r7,#10 r6,r4,#0 20 Detención y resolución La CPU Detener el pipeline Produce un efecto similar a la introducción de instrucciones NOP Anticipación Consiste en realizar atajos en el movimiento de datos dentro del pipeline Tipos Informática Aplicada Arquitectura de Computadores 21 Dependencia de datos: anticipación La CPU 1. 2. 3. 4. add r4,r1,r2 add r3,r4,#10 nop ... Tipo: ALU-ALU Etapas Tiempo F D/R 1 add 2 add 3 nop 4 5 6 1 r1,r2 2 r4,#10 3 4 5 2+ 3 4 1 2 3 E M W Informática Aplicada 1 + 1 r4= 2 r3= Arquitectura de Computadores 22 Dependencias de control La CPU Saltos incondicionales Hw específico en la etapa de fetch Saltos condicionales Predicción de salto: estático y dinámico Salto retardado Informática Aplicada Arquitectura de Computadores 23 Dependencia de control La CPU Bifurcación retardada de nivel n Se ejecutan n instrucciones después del salto Reordenación e introducción de instrucciones NOP Ejemplo de salto retardado de nivel 2 1: 2: 3: 4: 5: 6: 7: 8: 9: mov ld ld add mul add add sub jnz r6,r0 r1,#2300 r2,#0(r1) r4,r3,r2 r4,r4,#10 r1,r1,#4 r6,r6,#1 r6,#128 3 Informática Aplicada 1: mov 2: ld 3: ld 4: add 7: add 8: sub 9: jnz 5: mul 6: add 10: r6,r0 r1,#2300 r2,#0(r1) r4,r3,r2 r6,r6,#1 r6,#128 3 r4,r4,#10 r1,r1,#4 Arquitectura de Computadores 24 Rendimiento real La CPU Número de huecos por instrucción: P: probabilidad H: número de huecos generados H = Pe • H e + Pd • H d + Ps • H s Instrucciones por segundo: H: huecos por instrucción T: tiempo de etapa 1 V= (1 + H ) • T Informática Aplicada Arquitectura de Computadores 25 Segmentación en un procesador actual La CPU Instrucciones organiza y optimiza Cauces de ejecución ALU ALU FPU CACHE Unidades Funcionales Informática Aplicada Arquitectura de Computadores 26 Procesadores CISC La CPU Características de los procesadores CISC Instrucciones complejas: lenguaje de alto nivel CPU complejas: microprogramación Principios de los procesadores CISC Memoria cara: programas pequeños Disminuye los accesos a memoria Compatibilidad con procesadores anteriores Informática Aplicada Arquitectura de Computadores 27 Procesadores RISC La CPU Características de los procesadores RISC Instrucciones sencillas Juego sencillo de tipos de instrucciones Juego amplio de registros Arquitectura load/store Principios de los procesadores RISC Rendimiento del pipeline Simplificar la unidad de control de la CPU Informática Aplicada Arquitectura de Computadores 28 Procesadores actuales La CPU Tendencia RISC Algunas de las características RISC se han eliminado Número reducido de instrucciones Bancos de registros Segmentación: técnica muy desarrollada Informática Aplicada Arquitectura de Computadores 29