UPCO ICAI Departamento de Electrónica y Automática 1 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
RENDIMIENTO Y MEJORA DE LA CPU
Arquitectura de Ordenadores Rendimiento y mejora de la CPU
¿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
UPCO ICAI Departamento de Electrónica y Automática 3 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
¿Cómo medir el rendimiento?
•
Fórmula para una máquina
•
¿Cuántas veces es mejor la máquina A que la B?
•
¿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)
Coste
es
Prestacion
o
Rendimient
=
r_B o_Ordenado Rendimient r_A o_Ordenado Rendimient n= or_B es_Ordenad Prestacion or_A es_Ordenad Prestacion r_B o_Ordenado Rendimient r_A o_Ordenado Rendimient n= = Arquitectura de Ordenadores Rendimiento y mejora de la CPUUPCO ICAI Departamento de Electrónica y Automática 5 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
¿Qué mide? ¿Mi AMD será más rápido?
•
¿Mi aplicación correrá más rápida en un AMD que en un
Pentium?
Arquitectura de Ordenadores Rendimiento y mejora de la CPU
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...
UPCO ICAI Departamento de Electrónica y Automática 7 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
¿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
Arquitectura de Ordenadores Rendimiento y mejora de la CPU
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
UPCO ICAI Departamento de Electrónica y Automática 9 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
Rendimiento y tiempo de ejecución
•
Si se mide el rendimiento como tiempo de ejecución
– 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?
•
Ordenador completo
•
Depende del programa utilizado: caso medio, casos extremos
– Benchmark (Eje: SPEC’s): Simular diferentes tipos de aplicación.
grama_A cución_Pro Tiempo_Eje grama_B cución_Pro Tiempo_Eje B r o_Ordenado Rendimient r_A o_Ordenado Rendimient n= = _ grama cución_Pro Tiempo_Eje 1 o Rendimient = Programa _A Tiempo_CPU Programa _B Tiempo_CPU B o_CPU Rendimient o_CPU_A Rendimient n _ _ _ = = Arquitectura de Ordenadores Rendimiento y mejora de la CPU
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
UPCO ICAI Departamento de Electrónica y Automática 11 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
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 = 109ciclos/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-3s (f: 1KHz); 1 µs (microsegundo): 10-6s (f: 1MHz); 1 ps (picosegundo) = 10 -12s (f: 1THz).
Arquitectura de Ordenadores Rendimiento y mejora de la CPU
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
•
Ejemplo:
– CPU 500MHz, Programa que ocupa 100000 ciclos
• Tiempo CPU: 1*105 / 500*106 = 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?
_Reloj
ma*Periodo
los_Progra
Número_Cic
Tiempo_CPU
=
_Reloj Frecuencia ma los_Progra Número_Cic Tiempo_CPU =UPCO ICAI Departamento de Electrónica y Automática 13 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
Otra métrica: Ciclos por instrucción (CPI)
•
Número medio de ciclos de reloj (ciclos máquina) por
instrucción
•
A igualdad de arquitectura y reloj si disminuye el CPI
aumenta el rendimiento
•
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? _Programa trucciones Número_Ins ma los_Progra Número_Cic CPI= CPI_CPU_A CPI_CPU_B B o_CPU Rendimient o_CPU_A Rendimient n= = _ Arquitectura de Ordenadores Rendimiento y mejora de la CPU
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?
– 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
– B es 1.28 veces más rápido que A
•
Sólo es válido para el programa utilizado para calcular el CPI
2 . 1 1 * 2 * 2 . 1 * 2 * _ _ _ = = = = I I _A Tiempo_CPU B CPU Tiempo B o_CPU Rendimient o_CPU_A Rendimient n 28 . 1 1 1 * 2 * 2 . 1 * 3 . 1 * _ _ _ = = = = I I _A Tiempo_CPU B CPU Tiempo B o_CPU Rendimient o_CPU_A Rendimient n
UPCO ICAI Departamento de Electrónica y Automática 15 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
¿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
Arquitectura de Ordenadores Rendimiento y mejora de la CPU
Ecuación básica del rendimiento
•
Función del número de instrucciones, CPI y periodo
•
En algunos casos CPI se concreta para diferentes tipos de
instrucciones
– Tipo i de instrucción necesita CPIiciclos – Ii: número de instrucciones del tipo i
– T: Periodo
T
CPI
I
t
Periodo
CPI
_Programa*
trucciones
Número_Ins
cución
Tiempo_Eje
⋅
⋅
=
=
*
∑
= I CPI T t ( i* i)*Número de instrucciones CPI Periodo
Programa X
Compilador X (X)
Juego de instrucciones X X
Organización de la CPU X X
UPCO ICAI Departamento de Electrónica y Automática 17 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
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
– 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 Instrucciones CPI
Tipo A 1
Tipo B 2
Tipo C 3
Tipo A Tipo B Tipo C
1 2 1 2
2 4 1 1
Secuencia de código
Total de instrucción por clase
Arquitectura de Ordenadores Rendimiento y mejora de la CPU
MIPS
•
Millones de instrucciones que ejecuta el procesador por
segundo
•
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?
6 *10 Tiempo_CPU _Programa trucciones Número_Ins MIPS=
UPCO ICAI Departamento de Electrónica y Automática 19 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
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
6 o*10 CPI*Period _Programa* trucciones Número_Ins _Programa trucciones Número_Ins MIPS= Arquitectura de Ordenadores Rendimiento y mejora de la CPU
•
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
•
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)
6 10 * Tiempo_CPU te oma_Flotan raciones_C Número_Ope MFLOPS=MFLOPS
Operaciones Coste normalizado
ADD, SUB, COMPARE, MULT 1
DIVIDE, SQRT 4
UPCO ICAI Departamento de Electrónica y Automática 21 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
Resumen de lo visto: Medidas del rendimiento
Compilador Lenguaje de Programación Aplicación Datapath Control
Transistores Cables Pines
ISA MIPS
MFLOPS
Reloj
Respuestas diarias
Transacciones por segundo Tiempo de respuesta CPI Tiempo de respuesta Medir para saber si la CPU es adecuada para la aplicación Medir para saber si la CPU mejora (Independiente de la aplicación) Arquitectura de Ordenadores Rendimiento y mejora de la CPU
¿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
UPCO ICAI Departamento de Electrónica y Automática 23 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
Ponderación en Intel
Java
Audio, vídeo, imagen Juegos 3D
Ofimática Ofimática
Arquitectura de Ordenadores Rendimiento y mejora de la CPU
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 25 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
Comparación entre benchmarks
CARGA REAL BENCHMARK BASADOS EN APLICACIONES REALES NÚCLEOS MICROBENCHMARK Pros Contras • Representativo • Muy específico • No portable
• Difícil de correr o medir • Difícil para identificar
causas de bajo rendim.
• Portable • Ampliamente usados • Mide mejoras sobre la realidad • Fáciles de correr, incluso en etapas tempranas del diseño • Menos representativo • Vulnerables • Difícil de extrapolar a
una aplicación real USUARIO
DISEÑADOR
Arquitectura de Ordenadores Rendimiento y mejora de la CPU
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)
UPCO ICAI Departamento de Electrónica y Automática 27 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
Programas: SPEC CINT2000 Benchmarks
Arquitectura de Ordenadores Rendimiento y mejora de la CPU
UPCO ICAI Departamento de Electrónica y Automática 29 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
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
Arquitectura de Ordenadores Rendimiento y mejora de la CPU
Configuraciones de máquinas
•
Hewlett Packard Corporation•
hp server rx4610•
CPU: Intel Itanium•
CPU MHz: 800•
CPU(s) enabled:1•
CPU(s) orderable: 2-4•
Primary Cache:16KBI + 16KBD on chip•
Secondary Cache:96KB(I+D) on chip•
L3 Cache: 4MB(I+D) off chip•
Other Cache: N/A•
Memory: 8 GB (64 * 128MB DIMMs)•
Disk Subsystem: 1x36 GB SCSI•
Advanced Micro Devices•
Gigabyte GA-7DX Motherboard•
CPU: 1.4GHz AMD Athlon processor A1400AMS3C•
CPU MHz: 1400•
CPU(s) enabled: 1•
CPU(s) orderable: 1•
Primary Cache: 64KBI + 64KBD on chip•
Secondary Cache: 256KB(I+D) on chip•
L3 Cache: N/A•
Other Cache: N/A•
Memory: 2x128MB PC2100 DDR SDRAM CL2•
Disk Subsystem: IBM DPTA 375020UPCO ICAI Departamento de Electrónica y Automática 31 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
MIPS comparado con un benchmark
Arquitectura de Ordenadores Rendimiento y mejora de la CPU
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 33 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
•
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).
•
Fórmula
– Caso anterior: SpeedupConjunto=1.1
Ley de Amdahl
10 s 90 s 100 s 91 s 1 s ) 1 ( 1 mejorada Fracción mejorada mejorado sin Conjunto Fracción Speedup Fracción Tiempo Tiempo Speedup − + = = Arquitectura de Ordenadores Rendimiento y mejora de la CPUEjemplo 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.
•
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.
7
.
1
5
.
0
1
.
0
1
)
5
.
0
1
(
5
5
.
0
1
=
+
=
−
+
=
ConjuntoSpeedup
UPCO ICAI Departamento de Electrónica y Automática 35 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
Caso multiprocesador
Grado de paralelización
del programa
Arquitectura de Ordenadores Rendimiento y mejora de la CPU
Precio (coste) de un ordenador
•
El coste y precio de un ordenador es equivalente a la de cualquier otro sistema.•
Coste de fabricación – 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) 25% al 40% Componentes Costes directos Margen bruto Margen de descuento Precio de lista Precio mínimo 34% al 39% 6% al 8% 15% al 33% Para comprar un ordenador osistema 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 37 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
Ejemplo de coste por elementos para un PC
La CPU sólo representa una pequeña fracción del coste
Arquitectura de Ordenadores Rendimiento y mejora de la CPU
0% 20% 40% 60% 80% 100% Mini W/S PC Average Discount Gross Margin Direct Costs Component Costs 0 1 2 3 4 5 Mini W/S PC Average Discount Gross Margin Direct Costs Component Costs 4.7 3.8 1.8 3.5 2.5 1.5
Comparación de coste entre máquinas
UPCO ICAI Departamento de Electrónica y Automática 39 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
Lo que me gustaría saber: rendimiento/coste
•
Secreto
•
Trabajo de consultoría muy bien pagado
Arquitectura de Ordenadores Rendimiento y mejora de la CPU
•
¿Cómo se suma velocidad más capacidad más
throughtput...? Definir la función de coste y optimizarla
1/Prestaciones Coste Límite en la inversión Mínimo en las prestaciones Equipos a descartarLa curva de la verdad
UPCO ICAI Departamento de Electrónica y Automática 41 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
Relación coste/rendimiento en Pentium III
100.000 78.000 55.000 45.000 42.000 3280 3100 2890 2690 2540 2420 Pentium III 700 750 800 866 933 1000 Coste 1/Rendimiento 2420 2540 2690 2890 3100 3280 Rendimiento Frecuencia 700 750 800 866 933 1000 Relación lineal: no hay cambios en la organización 750 descartado y 700 casi Arquitectura de Ordenadores Rendimiento y mejora de la CPU
Ritmo de crecimiento del rendimiento / prestaciones
•
Evolución del rendimiento de los procesadores
0.1 1 10 100 1000 1965 1970 1975 1980 1985 1990 1995 2000 Rendi mien to Año Mainframes Minicomputers Microprocessors Supercomputers
UPCO ICAI Departamento de Electrónica y Automática 43 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez size Year 1000 10000 100000 1000000 10000000 100000000 1000000000 1970 1975 1980 1985 1990 1995 2000
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
Evolución memoria (un solo chip DRAM)
Arquitectura de Ordenadores Rendimiento y mejora de la CPU
•
Relaciones de Moore (Intel)
•
Si un estudiante tarda 6 años en realizar su carrera:
– Velocidad CPU
– Tamaños disco y memoria
– ¿A través de los SPEC se llega a la misma conclusión?
•
La distancia entre velocidad de CPU y memoria sigue
creciendo.
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
X 16
UPCO ICAI Departamento de Electrónica y Automática 45 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
Brecha entre procesador y DRAM (gap latency)
µProc
60%/año
DRAM
7%/año
1
10
100
1000
1980 1981 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 DRAM CPU 1982Procesador-Memoria
rendimiento brecha:
(crece 50% / año)
Re
ndimi
ent
o
Año
“Ley de Moore”
D.A. Patterson “ New directions in Computer Architecture” Berkeley, June 1998
Arquitectura de Ordenadores Rendimiento y mejora de la CPU
Pow er Dissipatio n 0 20 40 60 80 100 120 21064 21164 21264 21364 Pow e r ( W ) 0 0.5 1 1.5 2 2.5 3 3.5 Vo lt a g e ( V ) Supply Current 0 10 20 30 40 50 60 70 80 21064 21164 21264 21364 C u rre n t ( A ) 0 0.5 1 1.5 2 2.5 3 3.5 V o lt ag e ( V )
Joel Emer, Compaq, HPCA00
Rendimiento y potencia consumida
•
La potencia consumida se está incrementando
•
La corriente de la fuente de alimentación está aumentando
más rápidamente
UPCO ICAI Departamento de Electrónica y Automática 47 José A. Rodríguez Mondéjar
Cesáreo Fernández Martínez
) 1 ( 1 mejorada Fracción mejorada mejorado sin Conjunto Fracción Speedup Fracción Tiempo Tiempo Speedup − + = =
Periodo
CPI
_Programa*
trucciones
Número_Ins
cución
Tiempo_Eje
=
*
Resumen de rendimiento (I)
•
Fórmula fundamental del tiempo de ejecución (CPI)
– Todos los factores influyen
•
Ley de Amdahl:
– 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