RENDIMIENTO Y MEJORA DE LA CPU UPCO ICAI Departamento de Electrónica y Automática 1 Por qué hablar de rendimiento de un ordenador? RAE 92: Proporción entre el producto o el resultado obtenido y los medios utilizados. Elegir el ordenador con mejor rendimiento (EL MEJOR) Diseñar, montar o elegir un ordenador que sea apto para la aplicación en la que va ser utilizado: Rápido Capacidad de almacenamiento adecuada Capacidad de comunicaciones adecuada Sistema gráfico adecuado (Servidor WWW vs. Cliente WWW) Múltiples usuarios Mantenimiento Escalabilidad De los que cumplen: el más barato Desembolso inicial, coste de las ampliaciones, consumo UPCO ICAI Departamento de Electrónica y Automática 2
Cómo medir el rendimiento? Fórmula para una máquina Rendimient o = Cuántas veces es mejor la máquina A que la B? Rendimient o_ordenado r_a n = Rendimient o_ordenado r_b Prestaciones Coste Cómo medir las prestaciones? Dependerá de la aplicación donde se quiera utilizar el ordenador Coste? Difícil de evaluar: sometido a las leyes del mercado En la mayoría de los casos al comparar rendimientos se supone que los costes son iguales (Tabla de comparación de Intel) Rendimiento_Ordenador_A Prestaciones_Ordenador_A n = = Rendimiento_Ordenador_B Prestaciones_Ordenador_B UPCO ICAI Departamento de Electrónica y Automática 3 Dónde está el coste? UPCO ICAI Departamento de Electrónica y Automática 4
Qué mide? Mi AMD será más rápido? Mi aplicación correrá más rápida en un AMD que en un Pentium? UPCO ICAI Departamento de Electrónica y Automática 5 Medir las prestaciones Fundamental: Tiempo de ejecución de los programas Cómo medir? A mano: cronómetro en mano NO FALLA: el más rápido en ejecutar un programa siempre es el mejor a igualdad de coste. Cómo saber esto a priori? Mediante una fórmula Tiempo = Programa * Factor Cómo se comparan o miden programas? Cómo se calcula ese factor? Problema de parada de la máquina de Turing: No existe un algoritmo general que permita calcular el número de operaciones de cualquier tipo de algoritmo (programa) Cómo mejorar a partir de las medidas la arquitectura? Más prestaciones: almacenamiento, conexión... Aunque parezca imposible se pueden introducir números UPCO ICAI Departamento de Electrónica y Automática 6
Qué números? Métricas básicas Periodo o frecuencia de reloj de la CPU (MHz, GHz) Tiempo de ejecución de un programa (latencia - Latency) Tiempo de respuesta El ordenador más rápido es el que tarda menos en ejecutar un programa Mejorar el rendimiento = Mejorar el tiempo de ejecución = Decrementar el tiempo de ejecución Cómo saber esto a priori? Qué mejorar de la máquina? Futuras aplicaciones? Productividad (Throughput) Cuánto trabajo (operaciones) puede realizar por unidad de tiempo CPI Ciclos por instrucción MIPS Millones de instrucciones por segundo UPCO ICAI Departamento de Electrónica y Automática 7 Tiempo de ejecución de un programa (latencia) El tiempo de ejecución es la medida básica del rendimiento del ordenador Es el tiempo total para completar una tarea Desde que se arranca hasta que se termina Dos componentes: Tiempo de CPU: tiempo de la CPU empleado en ejecutar nuestro programa incluido la parte correspondiente de SO. Resto: tiempo de espera de la E/S o de ejecución de otros programas Tiempo de CPU Tiempo de Usuario: Tiempo de la CPU gastado en modo usuario Tiempo de Sistema Operativo: Tiempo de la CPU gastado por el sistema operativo Cómo se reparte entre usuarios? Diferentes OS? Ejemplo en UNIX (comando time): 90.7u 12.9s 2:39 65% Usuario: 90.7s; SO: 12.9s Tiempo de ejecución: 2min, 39s ; 65 % es tiempo de CPU UPCO ICAI Departamento de Electrónica y Automática 8
Rendimiento y tiempo de ejecución Si se mide el rendimiento como tiempo de ejecución 1 Rendimient o = Tiempo_Eje cución_pro grama Rendimiento de todo el ordenador Si sólo se tiene en cuenta el tiempo de CPU es una medida del conjunto CPU más Sistema Operativo Cuántas veces es mejor la CPU_A que la CPU_B? Rendimient o_cpu_a Tiempo_CPU _B _ Programa n = = Rendimient o_cpu _ B Tiempo_CPU _A _ Programa Ordenador completo Rendimient o_ordenado r_a Tiempo_Eje cución_pro grama_b n = = Rendimient o_ordenado r _ B Tiempo_Eje cución_pro grama_a Depende del programa utilizado: caso medio, casos extremos Benchmark (Eje: SPEC s): Simular diferentes tipos de aplicación. UPCO ICAI Departamento de Electrónica y Automática 9 Throughput Mide la cantidad de trabajo realizado por unidad de tiempo Número de programas ejecutados por hora Número de instrucciones ejecutadas por segundo Número de consultas WWW despachadas por segundo Medir la productividad: Director CPD ( A cuántos doy servicio?) Frente a tiempo de ejecución (latencia) Tiempo que tarda en ejecutarse un programa Tiempo que tarda en ejecutarse una instrucción Tiempo en despachar una consulta en un servidor WWW Medida muy cercana al usuario final ( Cuánto tarda?) Ejemplo Un ordenador tarda 8 s. en ejecutar dos programas de igual carga: Tiempo de ejecución: 4 s (uno tras otro / multitarea: 8s aprox.) Throughput: 2 programas/8 segundos=0.25 Con dos CPU s: tiempo de ejecución: 4 s; throughput: 4/8: 0.5 UPCO ICAI Departamento de Electrónica y Automática 10
Reloj Frecuencia de reloj Todo procesador tiene un reloj interno que funciona a frecuencia constante ( Ordenadores portátiles?). Todo en el procesador ocurre a ritmo de ese reloj Gasto energético es proporcional a la frecuencia del reloj Muy importante para el rendimiento en sistemas móviles Mayor frecuencia no significa mayor rendimiento (Intel y AMD). Ejemplo: 500 MHz: 500.000.000 ciclos por segundo (1GHz = 10 9 ciclos/s.) Duración del ciclo de reloj (periodo): inverso de la frecuencia Los retardos máximos en los elementos del procesador fijan la frecuencia máxima del reloj Dato más del diseñador ( Me he comprado un ordenador de 1 ns?) Ejemplo: 500 MHz -> 2 ns (1 nanosegundo=10-9 s; f: 1GHz) 1 ms (milisegundos) = 10-3 s (f: 1KHz); 1 µs (microsegundo): 10-6 s (f: 1MHz); 1 ps (picosegundo) = 10-12 s (f: 1THz). UPCO ICAI Departamento de Electrónica y Automática 11 Relación entre tiempo de CPU y reloj Recuerde que tiempo de CPU es el tiempo de CPU necesario para ejecutar un trozo de código Tiempo_CPU = Número_Cic los_programa*periodo _Reloj Ejemplo: Número_Ciclos_Programa Tiempo_CPU = Frecuencia_Reloj CPU 500MHz, Programa que ocupa 100000 ciclos Tiempo CPU: 1*10 5 / 500*10 6 = 2 * 10-4 = 20 ms (Utilizar siempre prefijo adecuado) A igualdad de arquitectura: mayor frecuencia = menor tiempo de ejecución = mayor rendimiento Cuántos ciclos de reloj necesita un programa para ejecutarse? Volvemos al Problema de parada de la máquina de Turing Cómo pasar de número de instrucciones a número de ciclos? UPCO ICAI Departamento de Electrónica y Automática 12
Otra métrica: Ciclos por instrucción (CPI) Número medio de ciclos de reloj (ciclos máquina) por instrucción CPI = Número_Ciclos_Programa Número_Instrucciones_Programa A igualdad de arquitectura y reloj si disminuye el CPI aumenta el rendimiento Rendimiento_CPU_A CPI_CPU_B n = = Rendimiento_CPU _ B CPI_CPU_A Teóricamente es una medida estricta del rendimiento de la CPU No aparece ni Sistema Operativo ni los tiempos de espera de la Entrada/Salida Cómo se mide? UPCO ICAI Departamento de Electrónica y Automática 13 Ejemplo de rendimiento con CPI Se tiene dos implantaciones (CPU_A y CPU_B) con el mismo juego de instrucciones. La CPU_A tiene un ciclo de reloj de 1 ns y CPI de 2.0 y la CPU_B tiene un tiempo de ciclo de 2 ns y un CPI de 1.2. Cuál es la máquina más rápida y cuánto? Rendimiento_CPU_A Tiempo_ CPU _ B I * 2*1.2 n = = = = 1.2 Rendimiento_CPU _ B Tiempo_CPU_A I * 2*1 I es el número de instrucciones del programa A es 1.2 veces más rápido que B Si el periodo de B pasa a 1.3 ns ( Qué frecuencia?) cambia Rendimiento_CPU_A Tiempo_ CPU _ B I *1.3*1.2 n = = = = Rendimiento_CPU _ B Tiempo_CPU_A I * 2 *1 B es 1.28 veces más rápido que A Sólo es válido para el programa utilizado para calcular el CPI 1 1.28 UPCO ICAI Departamento de Electrónica y Automática 14
Cómo se mide el CPI de una CPU? Depende del programa utilizado Los programas utilizan subconjuntos diferentes del juego de instrucciones del procesador Cálculo científico (operaciones en coma flotante) Manejo de base de datos (mover datos entre posiciones de memoria) Ejemplo: Benchmark de 80 instrucciones 25 instrucciones son del tipo LOAD/STORE (MOVE): 8 ciclos 50 instrucciones son del tipo ADD: 4 ciclos 5 instrucciones son del tipo raiz cuadrada: 100 ciclos CPI = (25*8 + 50*4 + 5*100)/80 = 13.8 ciclos/instrucción Si fuera un programa con una sola instrucción de cada tipo CPI = (8 + 4 + 100)/3 = 37.3 ciclos/instrucción UPCO ICAI Departamento de Electrónica y Automática 15 Ecuación básica del rendimiento Función del número de instrucciones, CPI y periodo Tiempo_Eje cución = Número_Ins trucciones_programa* CPI * Periodo t = I CPI T Número de instrucciones CPI Periodo Programa X Compilador X (X) Juego de instrucciones X X Organización de la CPU X X Tecnología X En algunos casos CPI se concreta para diferentes tipos de instrucciones Tipo i de instrucción necesita CPI i ciclos I i : número de instrucciones del tipo i T: Periodo t = ( I * CPI ) T i i * UPCO ICAI Departamento de Electrónica y Automática 16
Ejemplo de rendimiento Un diseñador de compiladores está intentando decidir entre dos secuencias de código para un mismo programa. Los diseñadores de la CPU donde correrá ese programa le han proporcionado los siguientes datos Instrucciones CPI Tipo A 1 Tipo B 2 Tipo C 3 Secuencia de Total de instrucción por clase código Tipo A Tipo B Tipo C 1 2 1 2 2 4 1 1 Tiempo ejecución secuencia 1 T1= (2*1+1*2+2*3)*T = 10*T = 10 ciclos (5 instrucciones); CPI1=2 Tiempo ejecución secuencia 2 T2= (4*1+1*2+1*3)*T = 9*T = 9 ciclos (6 instrucciones); CPI2=1.5 La secuencia 2 es más rápida que la secuencia 1 aunque tenga más instrucciones Todos los factores son importantes en el rendimiento UPCO ICAI Departamento de Electrónica y Automática 17 MIPS Millones de instrucciones que ejecuta el procesador por segundo Número_Instrucciones_Programa MIPS = 6 Tiempo_CPU*10 Sólo sirve para comparar CPU s que implantan el mismo juego de instrucciones Medida del rendimiento engañosa: CPU A (1MHz) tiene una instrucción especial para realizar la raiz cuadrada que tarda 100 ciclos en ejecutarla CPU B (1MHz) no tiene la instrucción especial de raiz cuadrada y hay que hacerla por software mediante instrucciones ADD, MUL, etc. donde todas tardan 1 ciclo de reloj MIPS(CPU A)=0.01 MIPS(CPU B)=1 Quién hace más rápido la raiz cuadrada? UPCO ICAI Departamento de Electrónica y Automática 18
Más sobre MIPS Utilizado para comparar máquinas diferentes de forma engañosa Número de instrucciones por segundo Contenido semántico de las instrucciones Programa con que se ha hecho la medida Compilador utilizado MIPS de pico Velocidad de ejecución de las instrucciones en el mejor de los casos Se toma un programa que tiene una sola instrucción que es la más rápida de ejecutar del juego de instrucciones. MIPS y CPI son equivalentes MIPS es interesante para el usuario, CPI para el diseñador Número_Ins trucciones _Programa MIPS = 6 Número_Ins trucciones _Programa* CPI*Period o*10 UPCO ICAI Departamento de Electrónica y Automática 19 MFLOPS Contabilizar operaciones de coma flotante en alto nivel frente a instrucciones necesarias para ejecutarlas No depende de la arquitectura de la máquina (MIPS, CPI) No depende del compilador Número_Operaciones_Coma_Flotante MFLOPS = 6 Tiempo_CPU*10 Problemas Sólo es aplicable a programas que hagan uso masivo de la coma flotante (entornos de cálculo científico) Depende del programa: una división tarda más que una multiplicación Solución MFLOPS normalizados (Función semejante a CPI i ) Operaciones Coste normalizado ADD, SUB, COMPARE, MULT 1 DIVIDE, SQRT 4 EXP, SIN 8 UPCO ICAI Departamento de Electrónica y Automática 20
Resumen de lo visto: Medidas del rendimiento Aplicación Lenguaje de Programación Compilador Respuestas diarias Transacciones por segundo Tiempo de respuesta Medir para saber si la CPU es Tiempo de respuesta adecuada para la aplicación ISA Datapath Control Transistores Cables Pines MIPS MFLOPS CPI Reloj Medir para saber si la CPU mejora (Independiente de la aplicación) UPCO ICAI Departamento de Electrónica y Automática 21 Qué programa elegir para medir? Mejor medida: CARGA REAL Comparar con el programa que estás siempre utilizando Problema: No se sabe a priori que programas se van a ejecutar Alternativa: Programas de prueba (BENCHMARK) Predecir el rendimiento de la máquina cuando ejecute los programas reales. Simular la posible carga real. Cómo construir un benchmark? Medida reproducible No vulnerable Preparar la CPU o el compilador para ejecutar más rápidamente del código del benchmark Conjunto de varios programas para que sea representativo Programas actuales Programas futuros: Difícil Ponderar los tiempos de ejecución de cada programa UPCO ICAI Departamento de Electrónica y Automática 22
Ponderación en Intel Java Ofimática Ofimática Juegos 3D Audio, vídeo, imagen UPCO ICAI Departamento de Electrónica y Automática 23 Diferentes tipos de benchmarks Basados en aplicaciones reales Científicas (secuenciación genoma), ingeniería (CAD, elementos finitos), bases de datos, edición, compiladores Filosofía de los SPEC Núcleos: trozos críticos de programas representativos Facilidad Microbenchmark (Medir aspectos concretos del sistema) Operación en coma fija Operación en coma flotante Entrada/salida Memoria Sistema Operativo Otros: juegos, algoritmos muy concretos (Ordenación) El mejor: tu aplicación UPCO ICAI Departamento de Electrónica y Automática 24
Comparación entre benchmarks Pros Contras Representativo Portable Ampliamente usados Mide mejoras sobre la realidad CARGA REAL BENCHMARK BASADOS EN APLICACIONES REALES Muy específico No portable Difícil de correr o medir Difícil para identificar causas de bajo rendim. Menos representativo USUARIO Fáciles de correr, incluso en etapas tempranas del diseño DISEÑADOR NÚCLEOS MICROBENCHMARK Vulnerables Difícil de extrapolar a una aplicación real UPCO ICAI Departamento de Electrónica y Automática 25 SPEC Sistem Performance Evaluation Cooperative (SPEC) Fundada en 1988 por un número pequeño de fabricantes y vendedores de estaciones de trabajo, concienciados de la necesidad desesperada de disponer de un conjunto de test para medir el rendimiento (prestaciones) de una forma realista y estandarizada Ha crecido hasta convertirse en el estándar de facto. Filosofía de SPEC Asegurar que el mercado tenga un conjunto de métricas realistas y fáciles de usar para comparar diferentes sistemas entre sí. La base de la metodología SPEC es utilizar benchmark basados en un conjunto de códigos extraídos de aplicaciones reales Diferentes tipos de benchmark CPU: SPECint2000, SPECfp2000, SPECint95, SPECfp95 WWW: SPEC JBB2000, SPEC JVM98, SPEC WEB99 OS: SPEC SFS97 (medidas de throughput) VISITA a http://www.spec.org UPCO ICAI Departamento de Electrónica y Automática 26
Programas: SPEC CINT2000 Benchmarks UPCO ICAI Departamento de Electrónica y Automática 27 Programas: SPEC CFP2000 Benchmark UPCO ICAI Departamento de Electrónica y Automática 28
Ejemplo de SPEC ( cómo es la situación actual?) Modelo INT2000 Intel D850GB motherboard (2.0 GHz, Pentium IV) 640 hp workstation j6700 (PA-8700 750 MHz) 569 AlphaServer GS320 68/(Alpha 21264C 1001 MHz) 561 Gigabyte GA-7DX Motherboard (AMD Athlon 1.4GHz) 495 Sun Blade 1000 Model 1900 (UltraSPARC-III 900 MHz) 439 IBM RS/6000 Model M80 (RS64 IV 750 MHz) 409 SGI 2200 1X (R14k 500MHz) 397 CFP2000 Intel D850GB motherboard (2.0 GHz, Pentium IV) 704 hp server rx4610 (Intel Itanium 800 MHz) 701 AlphaServer ES40 6/833 (Alpha 21264B 833 MHz) 621 Sun Blade 1000 Model 1900 (UltraSPARC-III 900 MHz) 427 Gigabyte GA-7DX Motherboard (AMD Athlon 1.4GHz) 426 SGI 2200 1X (R14k 500MHz) 362 IBM RS/6000 Model M80 (750 MHz) 359 UPCO ICAI Departamento de Electrónica y Automática 29 Configuraciones de máquinas Hewlett Packard Corporation Advanced Micro Devices hp server rx4610 Gigabyte GA-7DX Motherboard CPU: Intel Itanium CPU: 1.4GHz AMD Athlon CPU MHz: 800 processor A1400AMS3C CPU(s) enabled:1 CPU MHz: 1400 CPU(s) orderable: 2-4 CPU(s) enabled: 1 Primary Cache:16KBI + CPU(s) orderable: 1 16KBD on chip Primary Cache: 64KBI + 64KBD Secondary Cache:96KB(I+D) on chip on chip Secondary Cache: 256KB(I+D) L3 Cache: 4MB(I+D) off chip on chip Other Cache: N/A L3 Cache: N/A Memory: 8 GB (64 * 128MB Other Cache: N/A DIMMs) Memory: 2x128MB PC2100 Disk Subsystem: 1x36 GB DDR SDRAM CL2 SCSI Disk Subsystem: IBM DPTA 375020 UPCO ICAI Departamento de Electrónica y Automática 30
MIPS comparado con un benchmark UPCO ICAI Departamento de Electrónica y Automática 31 Otros benchmarks (Ver web AMD e Intel) Video Encoding Microsoft Windows Media Encoder Ligos Technology GoMotion Adobe PhotoDeluxe 3.0 Compute Intensive Ziff Davis Inc. 3D WinBench 2000, v1.0 Processor Test SiSoft Sandra Multimedia SIMD FP SiSoft Sandra Multimedia SIMD Integer etesting Labs Inc. WinBench 99, v1.2 CPUmark 99 etesting Labs Inc. WinBench 99, v1.2 FPU WinMark 99 Dónde está SPEC? Productivity BAPCO SYSmark 2000 - Overall BAPCO SYSmark 2000 Office Productivity BAPCO SYSmark 2000 Microsoft Excel 2000 BAPCO SYSmark 2000 Microsoft PowerPoint 2000 etesting Labs Inc. Business Winstone 2001, v1.0 UPCO ICAI Departamento de Electrónica y Automática 32
Ley de Amdahl Si se mejora la ejecución de una parte del programa (speedup de esta parte), no se mejora la ejecución de todo el programa en la misma cantidad (speedup del conjunto). 10 s 90 s 100 s 1 s 91 s Fórmula Tiempo Speedup sin Conjunto = = Tiempomejorado Fracciónmejorada SpeedupFracción Caso anterior: Speedup Conjunto =1.1 1 + (1 Fracciónmejorada ) UPCO ICAI Departamento de Electrónica y Automática 33 Ejemplo de la ley de Amdhal El tiempo de ejecución de un programa es 100 segundos en un sistema monoprocesador. 50% del programa es pararalelizable en un sistema multiprocesador. Se utiliza un sistema con 5 procesadores. Calcular el speedup. Speedup Conjunto = 1 1 = = 1.7 0.5 + (1 0.5) 0.1 + 0.5 5 Corolario de la ley de Amdhal: Hacer más rápido el caso más frecuente El alumno suele cometer errores cuando se aplica la ley de Amdahl para varias mejoras simultáneas. UPCO ICAI Departamento de Electrónica y Automática 34
Caso multiprocesador Grado de paralelización del programa UPCO ICAI Departamento de Electrónica y Automática 35 Precio (coste) de un ordenador El coste y precio de un ordenador es equivalente a la de cualquier otro sistema. Coste de fabricación Precio Componentes (muy sensible) Costes directos: mano de obra, gestión de compras, garantía, equipos defectuosos. Coste indirecto o margen bruto R&D, mantenimiento, marketing, ventas, costes financieros, beneficio mínimo, impuestos. Margen de descuento: descuento del precio final (compra por volumen, venta a distribuidores, etc) Precio de lista Margen de descuento 25% al 40% mínimo Margen bruto 34% al 39% Costes directos 6% al 8% Componentes 15% al 33% Para comprar un ordenador o sistema informático: 1. Que cumpla con los requisitos 2. Más barato (ojo con olvidarse de garantía, mantenimiento, etc) UPCO ICAI Departamento de Electrónica y Automática 36
Ejemplo de coste por elementos para un PC La CPU sólo representa una pequeña fracción del coste UPCO ICAI Departamento de Electrónica y Automática 37 Comparación de coste entre máquinas 100% 80% 60% 40% 20% Average Discount Gross Margin Direct Costs Component Costs 0% Mini W/S PC 5 4 3 2 1 4.7 3.5 3.8 2.5 1.8 1.5 Average Discount Gross Margin Direct Costs Component Costs 0 Mini W/S PC UPCO ICAI Departamento de Electrónica y Automática 38
Lo que me gustaría saber: rendimiento/coste Secreto Trabajo de consultoría muy bien pagado UPCO ICAI Departamento de Electrónica y Automática 39 La curva de la verdad Coste Límite en la inversión Equipos a descartar Mínimo en las prestaciones 1/Prestaciones Cómo se suma velocidad más capacidad más throughtput...? Definir la función de coste y optimizarla UPCO ICAI Departamento de Electrónica y Automática 40
Relación coste/rendimiento en Pentium III Coste 100.000 78.000 1000 933 Pentium III 750 descartado y 700 casi Relación lineal: no hay cambios en la organización 55.000 45.000 42.000 866 800 750 700 Rendimiento 3280 3100 2890 3280 3100 2890 2690 2540 2420 1/Rendimiento 2690 2540 2420 700 750 800 866 933 1000 Frecuencia UPCO ICAI Departamento de Electrónica y Automática 41 Ritmo de crecimiento del rendimiento / prestaciones Evolución del rendimiento de los procesadores 1000 Rendimiento 100 10 1 Supercomputers Mainframes Minicomputers Microprocessors 0.1 1965 1970 1975 1980 1985 1990 1995 2000 Año UPCO ICAI Departamento de Electrónica y Automática 42
Evolución memoria (un solo chip DRAM) size 1000000000 100000000 10000000 1000000 100000 10000 año tamaño(mb) Reloj 1980 0.0625 250 ns 1983 0.25 220 ns 1986 1 190 ns 1989 4 165 ns 1992 16 145 ns 1996 64 120 ns 2000 256 100 ns 1000 1970 1975 1980 1985 1990 1995 2000 Year UPCO ICAI Departamento de Electrónica y Automática 43 Resumen de crecimiento según tecnología Relaciones de Moore (Intel) Capacidad Velocidad (latencia) Lógica x2 en 3 años x2 en 3 años SPEC x2 en 1.5 años DRAM x4 en 3 años x2 en 10 años Disco x4 en 3 años x2 en 10 años Si un estudiante tarda 6 años en realizar su carrera: Velocidad CPU Tamaños disco y memoria X 16 A través de los SPEC se llega a la misma conclusión? La distancia entre velocidad de CPU y memoria sigue creciendo. UPCO ICAI Departamento de Electrónica y Automática 44
Brecha entre procesador y DRAM (gap latency) Rendimiento 1000 100 10 1 1980 1981 1982 1983 Ley de Moore DRAM 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 Año D.A. Patterson New directions in Computer Architecture Berkeley, June 1998 CPU µproc 60%/año Procesador-Memoria rendimiento brecha: (crece 50% / año) DRAM 7%/año UPCO ICAI Departamento de Electrónica y Automática 45 Rendimiento y potencia consumida La potencia consumida se está incrementando La corriente de la fuente de alimentación está aumentando más rápidamente Disminuye la tensión Power Dissipation Supply Current Power (W) 120 100 80 60 40 20 0 21064 21164 21264 21364 3.5 3 2.5 2 1.5 1 0.5 0 Voltage (V) Current (A) 80 70 60 50 40 30 20 10 0 21064 21164 21264 21364 3.5 3 2.5 2 1.5 1 0.5 0 Voltage (V) Joel Emer, Compaq, HPCA00 UPCO ICAI Departamento de Electrónica y Automática 46
Resumen de rendimiento (I) Fórmula fundamental del tiempo de ejecución (CPI) Tiempo_Eje cución = Número_Ins trucciones_programa* CPI * Periodo Todos los factores influyen Ley de Amdahl: Tiempo sin 1 SpeedupConjunto = = Tiempomejorado Fracciónmejorada + (1 Fracciónmejorada ) SpeedupFracción La mejora tiene un límite: importancia del elemento Mejores benchmarks: tiempo de ejecución y throughput CPU, disco duro, sistema operativo o máquina completa? Relaciones o leyes de Moore La velocidad de la CPU crece más rápidamente que la memoria La política de precios de ordenadores, compras de ordenadores es equivalente a la de cual otro sistema UPCO ICAI Departamento de Electrónica y Automática 47