Está en la página 1de 18

Arquitectura de Computadoras

Tema 2: Costo y Performance


Eduardo Daniel Cohen – dcohen@arnet.com.ar

http://www.herrera.unt.edu.ar/arqcom

UNT – Arq. de Computadoras - 2005 1

Costo y Performance – Temas a Tratar en la clase

° Revisión tema anterior

° Costo de Circuitos integrados)

° Definición de Medidas de Performance

° Resumiendo y Sintetizando.

UNT – Arq. de Computadoras - 2005 2


Repaso: Arquitectura de Computadoras

° Cordinación de niveles de abstracción

Aplicación

Sistema
Compilador Operativo
instruction Set
Architecture
Procesador Sistema I/O
Diseño Digital
Diseño de Circuitos

° Bajo presión de fuerzas que cambian muy rapidamente

UNT – Arq. de Computadoras - 2005 3

Compilador, Ensamblador, Lenguaje de Máquina


temp = v[k];
Programa de Alto
Nivel v[k] = v[k+1];
v[k+1] = temp;
Compilador
lw $15, 0($2)
lw $16, 4($2)
Programa Lenguaje sw $16, 0($2)
Assembler sw $15, 4($2)

Ensamblador
0000 1001 1100 0110 1010 1111 0101 1000
Programa Lenguaje 1010 1111 0101 1000 0000 1001 1100 0110
de Máquina 1100 0110 1010 1111 0101 1000 0000 1001
0101 1000 0000 1001 1100 0110 1010 1111

interpretación de Máquina

Especificación de
señales de control

UNT – Arq. de Computadoras - 2005 4


Repaso Niveles de Organización

PC

Computador
Procesador Memoria Dispositivos
Intel

Control input

Datapath Output

UNT – Arq. de Computadoras - 2005 5

Repaso: Resumen de la clase anterior


° Todas las computadoras consisten en 5 componentes.
• Procesador (CPU): (1) camino de datos y (2) control
• (3) Memoria
• (4) Dispositivos de Entrada y (5) Dispositivos de Salida.

° No toda la “memoria” es igual.


• Cache: memoria rápida (y cara) se ubica cerca del CPU.
• Memoria Principal: menos cara – se puede poner más cantidad.
• Memoria Secundaria: muy barata (y lenta) – se accede por I/O.

° Los dispositivos de I/O son los de organización más


dispar.
• Amplia variación de Velocidades: discos vs. teclados
• Amplio rango de especificaciones: velocidad, costo, standards, ... etc.
• Los menos tomados en cuenta en investigación (hasta ahora)

UNT – Arq. de Computadoras - 2005 6


Costo de los Circuitos integrados

Costo del Dado = Costo Oblea


Dados p/oblea * Factor de Producción

Factor de producción: porcentaje de dados que salen sin defecto.

Dados p/oblea = Area de Oblea (aprox., excluir los que no entran en el círculo)
Area del Dado

Se ve que conviene dados más pequeños

El costo del dado es proporcional aprox. Al cubo de su área..

UNT – Arq. de Computadoras - 2005 7

Tendencias Tecnológicas

Capacidad Velocidad
Lógica 2x en 3 años 2x en 3 años
DRAM 4x en 3 años 1.4x en 10 años
discos 4x en 3 años 1.4x en 10 años

UNT – Arq. de Computadoras - 2005 8


Performance (rendimiento)

° Permite Elegir inteligentemente

° Mirar por sobre las modas del marketing.

° Clave para comprender las razones de diferentes


estructuras de CPU.
¿Por qué cierto Hw es mejor que otros para determinados programas?

¿Que factores del rendimiento del sistema están relacionados al Hw?


(¿Necesitamos una máquina nueva o un nuevo sistema Operativo?)

¿Cómo afecta al rendimiento el ISA de una máquina?

UNT – Arq. de Computadoras - 2005 9

¿Cuáles de estos aviones tiene el mejor rendimiento?

Avión Pasajeros Rango (km) Veloc. (km/h)

Boeing 737-100 101 7450 980


Boeing 747 470 6675 980
BAC/Sud Concorde 132 6435 2175
Douglas DC-8-50 146 14030 875

• ¿Cuánto más rápido es el Concorde?

• ¿Cuánto más grande es el 747 que el Douglas?

•¿Cuál tiene mejor productividad (throughput)? (pasajeros x km/h) – 747

•Pero... ¿y el rango de distancias? Tomemos el caso de viajes > 7000 Km.

•¡No es tan fácil comparar! Depende qué se quiera lograr.

UNT – Arq. de Computadoras - 2005 10


Performance en Computadores:

TIEMPO, TIEMPO Y TIEMPO


° Tiempo de Respuesta (latencia)
— ¿Cuánto tiempo toma para correr mi trabajo?
— ¿En cuanto tiempo se ejecuta mi trabajo?
— ¿Cuánto esperar por una consulta a una base de datos?

° Productividad
— ¿Cuántos trabajos pueden ejecutarse simultáneamente?
— ¿Cuál es el tiempo de ejecución promedio?
— ¿Cuánto trabajo se efectúa?

¿Qué se mejora si cambiamos el CPU de una máquina por otro más rápido?

Si agregamos una nueva máquina a un laboratorio para estudiantes, ¿qué


mejoramos?

UNT – Arq. de Computadoras - 2005 11

Tiempo de Ejecución
° Tiempo transcurrido
• Cuenta todo (accesos a disco y memoria, I/O , etc.)
• En general no es bueno para comparar.

° Tiempo de CPU
• No cuenta I/O o tiempo que se usa para correr otros progr.
• Puede separarse en tiempo del usuario y tiempo del sistema.

° Nuestro Interés: tiempo de CPU del usuario


• Tiempo para ejecutar las instrucciones de “mi programa”.

UNT – Arq. de Computadoras - 2005 12


Definición de Performance

° Problema
• La máquina A corre un programa en 20 segundos
• La máquina B necesita 25 segundos.
• ¿Cuánto más rápido es A?

° Decimos que "X es n veces más rápida que Y"


PerformanceX / PerformanceY = n = tiempo(y) / tiempo(x)

° Definimos por tanto la performance


Para un dado programa P que corre en la máquina X,

Performance(p,x) = 1 / tiempo de ejecución(p,x)

UNT – Arq. de Computadoras - 2005 13

Ciclos de Reloj
° Para iguales frecuencias de reloj, en lugar de hablar de tiempo de ejecución
en segundos, usamos ciclos

segundos ciclos segundos


= ×
programa programa ciclo

° Pulsos de Reloj indican cuando comenzar actividades (una abstracción)

tiempo

° Ciclo de Reloj = Tiempo entre pulsos = segundos por ciclo = T

° Frecuencia de reloj = ciclos por segundo (1 Hz. = 1 cycle/sec)


1
Un reloj de 200 Mhz. Tiene un tiempo de ciclo de: ×109 = 5 nanoseg
200×106

UNT – Arq. de Computadoras - 2005 14


Métricas de Performance

Respuestas por mes


Aplicación Operaciones por segundo

Lenguaje de
Programación

Compilador
(Millones) de instrucciones por segundo – MIPS
(Millones) de operaciones (P.F.) / segundo – MFLOP/s
ISA

Camino de Datos
Control Megabytes por segundo

Unidades Funcionales
Transistores Buses Pins Ciclos por segundo (frecuencia de reloj)

UNT – Arq. de Computadoras - 2005 15

Métricas del Procesador

• Tiempo de ejecución para un programa dado:

segundos ciclos segundos ciclos


= × = ÷ frec . reloj
programa programa ciclo programa
CPI
ciclos Instruccio nes ciclos
= ×( )
programa programa instruccio n

° O sea CPI = ciclos por programa ÷ instrucciones por programa

° CPI promedio nos da información acerca del set de instrucciones, la


implementación del ISA, y el programa medido.

UNT – Arq. de Computadoras - 2005 16


Aspectos de la Performance del CPU

CPU
CPUtime
time == Seconds
Seconds ==instructions
instructions xx Cycles
Cycles xx Seconds
Seconds
Program
Program Program
Program instruction
instruction Cycle
Cycle

Marcar con una X quién tiene influencia:

Cant Instrucc. CPI Frec. Clock


Programa

Compilador

ISA.

Organización

Tecnología

UNT – Arq. de Computadoras - 2005 17

Aspectos de la Performance del CPU

CPU
CPUtime
time == Seconds
Seconds ==instructions
instructions xx Cycles
Cycles xx Seconds
Seconds
Program
Program Program
Program instruction
instruction Cycle
Cycle

Cant. Instr CPI Frec. reloj


Programa X

Compilador X (x)

ISA. X X

Organización X X

Technología X

UNT – Arq. de Computadoras - 2005 18


CPI
CPU
CPUtime
time == Seconds
Seconds ==instructions
instructions xx Cycles
Cycles xx Seconds
Seconds
Program
Program Program
Program instruction
instruction Cycle
Cycle
“Ciclos promedio por Instrucción”
1) CPI = (CPU time * clock rate) / Instruction count =
= Ciclos de reloj del Programa / Cantidad de Instrucciones del Prog.
n
2) CPU time = T *
i =1
CPI * I
i i
Σ “Ij = N° veces de la Instrucción j"

= (suma de los tiempos de todas las instrucciones)

De (1) y (2):
n
CPI = Σ
CPI i * Fi donde Fi = I i
i =1
instruction Count

¡Invertir recursos en donde se gaste más tiempo!

UNT – Arq. de Computadoras - 2005 19

Ejemplo
Para un programa en un CPU tenemos la siguiente
mezcla típica:

Op Frec. Ciclos CPI(i).F(i) %tiempo


ALU 50% 1 .5 33%
Load 20% 2 .4 27%
Store 10% 2 .2 13%
Branch 20% 2 .4 27%
1.5
CPI promedio

% tiempo = CPI(i).F(i) / CPI

Ranquear el % tiempo y a partir de allí tenemos prioridad en mejorar CPI.

UNT – Arq. de Computadoras - 2005 20


Performance

° ¿Cuál de las siguientes variables miden performance?


• # de ciclos para ejecutar el programa (n)
• # de instrucciones de un programa (I)
• # de ciclos por segundo (f)
• # promedio de ciclos por instrucción (cpi medio)
• # promedio de instrucciones por segundo [1/(cpi.T)]

° Pifia común:
• pensar que una variable sola es indicativa de la performance,
cuando en realidad no lo es.

UNT – Arq. de Computadoras - 2005 21

Métricas de Marketing
MIPS = Millones de instrucciones por segundo
= 1 / (CPI * T * 106) = Frecuencia de reloj / (CPI * 106)
•¿Maquinas con diferentes conjuntos de instrucciones?
•Para un mismo programa distinta cantidad de instrucciones.
•Una con menos CPI puede necesitar más instrucciones.
•¿Programas con diferentes mezclas de instrucciones ?
• Frecuencia dinámica de instrucciones es lo que cuenta.
•Programas distintos tienen distintas CPI.
• Por tanto MIPS nada que ver con performance.

MFLOP/S = millones de operaciones de punto flotante por segundo


Idénticas observaciones que para MIPS.
•Generalmente no miden en dónde se gasta el tiempo.
•Los cálculos no mienten, pero hay mentirosos que calculan.
UNT – Arq. de Computadoras - 2005 22
Ejemplo CPI
° Supongamos que tenemos dos implementaciones distintas de
un mismo ISA: máquinas A y B.

Para cierto programa

La máquina A tiene un ciclo de reloj de 10 ns. y un CPI de 2.0


La máquina B tiene un ciclo de reloj de 20 ns. y un CPI de 1.2

¿Cuál máquina es más rápida para este programa y por cuánto?

Si dos máquinas tienen el mismo ISA ¿cuál de las siguientes medidas


(frecuencia de reloj, CPI, tiempo de ejecución, # de instrucciones, MIPS)
serán siempre idénticas?

UNT – Arq. de Computadoras - 2005 23

Ejemplo: MIPS
° Dos compiladores se testean para una máquina de 100 MHz con
3 clases diferentes de instrucciones: A, B, y C, de 1, 2, y 3
ciclos respectivamente. Ambos compiladores se usan para
producír código de una gran pieza de Sw.

El primer compilador genera 5 millones de instrucciones A, 1


millón Clase B, y 1 millón Clase C.

° El segundo genera 10 millones de instrucciones A, 1 millón


Clase B, y 1 millón Clase C.

° ¿Qué secuencia será más rápida de acuerdo a los MIPS.

° ¿Y de acuerdo al tiempo de ejecución?

UNT – Arq. de Computadoras - 2005 24


¿Benchmarks – para qué?
° Para evaluar diferencias
• Sistemas Diferentes
• Cambios al mismo sistema.

° Proveer un objetivo
• Los benchmarks deben representar un amplia clase de programas
importantes.
• Mejorar la performance de los benchmarks debería mejorar también
la de muchos programas.

° Para bien o para mal, los benchmarks dan forma a nuestro campo

° Los buenos aceleran el progreso


• Buen objetivo para desarrollo.

° Los malos traban el progreso


• Ayudan a los vendedores de máquinas.
• Mejoras a ejecución programas reales no mejoran benchmarks.

UNT – Arq. de Computadoras - 2005 25

Programas para evaluar performance de CPU

° (Juegos) Benchmarks
• ej.,: go, puzzle, quicksort

° Benchmarks sintéticos.
• Intento de lograr frecuencias medias de cargas de trabajo reales.
• Ej: Whetstone, Dhrystone (basados en programas científicos)

° Kernels (núcleos)
• Segmentos críticos en tiempo de programas reales.
• Se prestan para “optimizaciones” de compiladores.
• Ej. Lazos de Livermore (21 fragmentos de lazos pequeños)

° Programas reales.
• e.g., gcc (compilador c), spice

UNT – Arq. de Computadoras - 2005 26


Benchmark Exitoso: SPEC

° 5 compañías fundaron en 1988 un comité de evaluación


denominado:
• Systems Performance Evaluation Committee (SPEC):
Sun, MIPS, HP, Apollo, DEC (fundadores).

° Objetivo: Crear una lista standard de programas, realizar


tests y reportes: algunos programas realeas, incluso con
llamadas a Sistema Operativo y algunos I/O.

° Los standards están en constante evolución de acuerdo a


la evolución del mercado: 1991, 1992, 1995, 2000...

° La tarea del comité no es nada fácil.

UNT – Arq. de Computadoras - 2005 27

Primera Ronda SPEC


° 1989; 10 programas, un único número para resumir la performance.

° Un programa: 99% del tiempo en una sola línea de código.

° Nuevos compiladores pudieron mejorar dramaticamente el número.

800

700

600

500

400

300

200

100

0
doduc
gcc

nasa7
epresso

spice

eqntott

tomcatv
fpppp
li

matrix300

Benchmark

UNT – Arq. de Computadoras - 2005 28


SPEC ‘95

Benchmark Description
go Artificial intelligence; plays the game of Go
m88ksim Motorola 88k chip simulator; runs test program
gcc The Gnu C compiler generating SPARC code
compress Compresses and decompresses file in memory
li Lisp interpreter
ijpeg Graphic compression and decompression
perl Manipulates strings and prime numbers in the special-purpose programming langua
vortex A database program
tomcatv A mesh generation program
swim Shallow water model with 513 x 513 grid
su2cor quantum physics; Monte Carlo simulation
hydro2d Astrophysics; Hydrodynamic Naiver Stokes equations
mgrid Multigrid solver in 3-D potential field
applu Parabolic/elliptic partial differential equations
trub3d Simulates isotropic, homogeneous turbulence in a cube
apsi Solves problems regarding temperature, wind velocity, and distribution of pollutant
fpppp Quantum chemistry
wave5 Plasma physics; electromagnetic particle simulation

UNT – Arq. de Computadoras - 2005 29

SPEC ’95 – Ejemplo de Comparación Pentium Vs. Pentium Pro

¿Se duplica la performance si se duplica la frecuencia de Reloj?

¿Puede una máquina con una frecuencia de clock menor tener una mejor
performance?
10 10

9 9

8 8

7 7

6 6
SPECfp
SPECint

5 5

4 4

3 3

2 2

1 1

0 0
50 100 150 200 250 50 100 150 200 250
Clock rate (MHz)
Clock rate (MHz) Pentium Pentium
Pentium Pro Pentium Pro

UNT – Arq. de Computadoras - 2005 30


Ley de Ahmdal
Evalúa el efecto total de una mejora en una parte de una tarea.
• Incremento en velocidad por la mejora E:

tiempo_ej sin E Performance con E


Aceleración(E) = ----------------------- = ----------------------------
tiempo_ej con E Performance sin E

Supongamos que la mejora E acelera una parte F de la tarea


en un factor S y que no influye en el resto de la misma:

Tiempo_ej(con E) = ((1-F) + F/S) x tiempo_ej(sin E)

aceleración(con E) = 1 / [(1-F) + F/S]

UNT – Arq. de Computadoras - 2005 31

Ejemplos
1. Mejoramos una máquina para que todas las instrucciones de punto
flotante corran 5 veces más rápido. Si el tiempo de ejecución de cierto
benchmark antes de la mejora es 10 seg, ¿cuál será el nuevo tiempo de
ejecución si la mitad del tiempo del mismo se pasaba ejecutando
instrucciones de punto flotante antes de la mejora?

2. ¿Cuánta debe ser la mejora para lograr un tiempo de ejecución de 5


seg?

3. Ahora, inventemos un nuevo benchmark que muestre un incremento


en velocidad de 3 para hacer marketing de la nueva unidad de FP de
(1) (mentirosos que calculan). Consideramos un benchmark que tarda
100 seg. con la vieja unidad de FP. ¿Qué porcentual del tiempo de
ejecución debe destinar este benchmark a instrucciones de punto
flotante para que logremos el resultado deseado cuando corramos el
benchmark en la nueva unidad?

UNT – Arq. de Computadoras - 2005 32


Resúmen de Costos

° La Industria de Computación es impulsada por la de Circuitos


Integrados.

° Los costos de una pastilla son proporcionales al cubo de su superficie.

UNT – Arq. de Computadoras - 2005 33

Resumen de Evaluación de Perfomance

CPU
CPUtime
time == Seconds
Seconds ==instructions
instructions xx Cycles
Cycles xx Seconds
Seconds
Program
Program Program
Program instruction
instruction Cycle
Cycle

° ¡El tiempo es la medida de la performance de una computadora!

° Se pueden crear buenos productos cuando se parte de:


• Buenos Benchmarks.
• Formas adecuadas de generar indicadores de varios Benchmarks.

° Si no hay buenos benchmarks e indicadores, entonces en la elección


entre mejorar productos y mejorar ventas:
• Las ventas siempre ganan.

° Recordar Ley de Ahmdal: Incremento en velocidad está limitado por la


parte no mejorada de una tarea.

UNT – Arq. de Computadoras - 2005 34


Recordar

° La performance siempre es específica para un programa dado.


• Su tiempo de ejecución.

° Para una determinada máquina, se puede mejorar performance si:


• Mejora el ciclo de reloj (sin que haya efectos adversos en CPI)
• Mejorar en la organización del CPU que baje el CPI
• Mejorar compiladores para bajar CPI y/o número de Instrucciones.

° Pifia: Esperar que la mejora en un aspecto de la performance de una


máquina afecte en igual medida la performance total. (MIPS, MFLOPS,
Ahmdal)

° ¡No hay que creer siempre en lo que se lee! ¡Cuidado!


(Ejercicio 2.37 – una consola de juegos supera al Pentium)

UNT – Arq. de Computadoras - 2005 35

También podría gustarte