Documentos de Académico
Documentos de Profesional
Documentos de Cultura
http://www.herrera.unt.edu.ar/arqcom
° Resumiendo y Sintetizando.
Aplicación
Sistema
Compilador Operativo
instruction Set
Architecture
Procesador Sistema I/O
Diseño Digital
Diseño de Circuitos
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
PC
Computador
Procesador Memoria Dispositivos
Intel
Control input
Datapath Output
Dados p/oblea = Area de Oblea (aprox., excluir los que no entran en el círculo)
Area del Dado
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
° 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?
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.
° 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?
Ciclos de Reloj
° Para iguales frecuencias de reloj, en lugar de hablar de tiempo de ejecución
en segundos, usamos ciclos
tiempo
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)
CPU
CPUtime
time == Seconds
Seconds ==instructions
instructions xx Cycles
Cycles xx Seconds
Seconds
Program
Program Program
Program instruction
instruction Cycle
Cycle
Compilador
ISA.
Organización
Tecnología
CPU
CPUtime
time == Seconds
Seconds ==instructions
instructions xx Cycles
Cycles xx Seconds
Seconds
Program
Program Program
Program instruction
instruction Cycle
Cycle
Compilador X (x)
ISA. X X
Organización X X
Technología X
De (1) y (2):
n
CPI = Σ
CPI i * Fi donde Fi = I i
i =1
instruction Count
Ejemplo
Para un programa en un CPU tenemos la siguiente
mezcla típica:
° Pifia común:
• pensar que una variable sola es indicativa de la performance,
cuando en realidad no lo es.
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.
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.
° 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
° (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
800
700
600
500
400
300
200
100
0
doduc
gcc
nasa7
epresso
spice
eqntott
tomcatv
fpppp
li
matrix300
Benchmark
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
¿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
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?
CPU
CPUtime
time == Seconds
Seconds ==instructions
instructions xx Cycles
Cycles xx Seconds
Seconds
Program
Program Program
Program instruction
instruction Cycle
Cycle