Está en la página 1de 14

Cap

tulo 1

Analisis del rendimiento

A la hora de comprar un equipo informatico, el usuario se interesa por dos


parametros principales: Su coste y su potencia. El primero de ellos se obtiene
de forma inmediata. El segundo suele aproximarse, de forma erronea, por la
frecuencia de reloj del microprocesador.
En este tema aprenderemos a medir el rendimiento real de un equipo in-
formatico y a compararlo con otros de su mismo segmento. A este respecto,
conviene primero tener claro las tres categoras en las que se dividen los compu-
tadores actuales:
1. El computador personal o PC. Representa la parte baja del escalafon.
Se compone de computadores destinados al servicio domestico. Su dise~no
prioriza el coste frente al rendimiento.
2. Las estaciones de trabajo y los servidores. Las estaciones de trabajo se
utilizan para la gestion avanzada de gra cos y video, y tambien para ejecutar
programas con elevados requerimientos de memoria. Los servidores sirven
para dar servicio a un conjunto de clientes, sobre los que centralizan el uso
de dispositivos como el disco duro o la impresora. Ambos constituyen un
dise~no donde se asigna una importancia similar al coste y las prestaciones.
3. Los supercomputadores. Se emplean en aplicaciones avanzadas con ne-
cesidades de computacion muy elevadas (dinamica molecular y de uidos,
fsica nuclear, simulacion, aerodinamica, realidad virtual, ...). Es el dise~no
de alto rendimiento, que utiliza muchos procesadores para conseguir presta-
ciones de CPU que superan en varios ordenes de magnitud a los de gamas
inferiores.
1
2 Captulo 1. Analisis del rendimiento

A partir de ahora, centraremos nuestro analisis en el rendimiento de los compu-


tadores de gama baja o PCs por ser los mas populares del mercado. No obstante, el
analisis del rendimiento de las gamas media y alta suele hacerse mediante metodos
muy similares a los que aqu se describen para el caso de los PCs.

1.1 Metricas de rendimiento


Cada componente de un equipo informatico re eja sus prestaciones atendiendo a
unos parametros caractersticos. Con objeto de situarnos inicialmente, nombra-
remos someramente los que resultan mas apropiados para los dispositivos en los
que se centra esta obra, a saber, el microprocesador, las memorias y los buses de
comunicacion. Posteriormente abordaremos con mayor profusion cada dispositivo
en particular en el captulo que le dedicaremos mas adelante.

1.1.1 Las memorias


Los dos parametros principales que in uyen en las prestaciones de una memoria
son su tama~no en numero de palabras y su latencia o tiempo de acceso en nanose-
gundos (ns.). El tama~no aumenta la funcionalidad del sistema al permitir ejecutar
aplicaciones mas complejas, mientras que la latencia esta mas ligada a la rapidez
de ejecucion de los programas.
Estos dos parametros son inversamente proporcionales, es decir, a mayor ta-
ma~no, menor rapidez. Por ejemplo, las memorias cache actuales tienen un tama~no
de entre 512 Kbytes y 1 MByte y una latencia de unos pocos ns., la memoria
principal o RAM presenta un tama~no de entre 16 y 256 Mbytes y una latencia de
decenas de ns., y la memoria secundaria o disco duro alcanza varios Gbytes, pero
sube la latencia hasta los milisegundos.

1.1.2 Los buses


Se caracterizan por el numero de lneas de comunicacion y por la frecuencia de
transmision de los datos en MHz. Ambos parametros pueden en este caso fun-
dirse en una sola magnitud, que actua como metrica de su rendimiento, y que se
conoce como ancho de banda, indicando la velocidad de comunicacion por el bus
en Megabytes por segundo. Por ejemplo, el bus local PCI del Pentium tiene una
anchura de 64 lneas y una frecuencia de 66 MHz., lo que proporciona un ancho
de banda de 528 Mbytes/s.
1.1. Metricas de rendimiento 3

1.1.3 Los microprocesadores


Una costumbre muy extendida en el mundillo de la informatica consiste en inter-
pretar la frecuencia de reloj del microprocesador como parametro indicativo de su
potencia. De hecho, no pocas veces ocurre que lo unico que se tiene en cuenta a
la hora de adquirir un equipo son los MHz. de su micro.
Pues bien, este parametro es poco representativo de lo que puede dar de s un
equipo. Y en el segmento de los PCs lo es aun menos, ya que en el estado en que
se encuentra su arquitectura a nales de los a~nos 90, los cuellos de botella 1 no
estan localizados en el procesador, sino fuera de el. Baste decir que un PC actual
funciona por encima de los 400 MHz., mientras que la version mas rapida de su bus
local PCI (el que conecta el micro con la cache externa, los modulos de memoria
principal y las ranuras de expansion donde van alojadas las tarjetas gra cas y de
sonido) funciona a 33 MHz., y la latencia de la memoria principal es de entre 10
y 15 ciclos del procesador.
En la seccion 1.3 trataremos con mas detenimiento el impacto que un cuello de
botella tiene en el rendimiento de un sistema. Olvidemonos por ahora del resto de
componentes del PC y centremonos en el rendimiento que ofrece el microprocesador
en s.

El tiempo de CPU

El tiempo que un procesador invierte en la ejecucion de un programa puede obte-


nerse como el producto de tres factores:

1. NI: N
umero de instrucciones maquina en que se transforma el programa.
2. CPI: Numero medio de ciclos de reloj que se necesitan para ejecutar cada
instruccion maquina.
3. T: Tiempo de ciclo de reloj (o su frecuencia F como magnitud inversa).

Es decir, TCPU = NI  CPI  T = NI FCPI , donde TCPU resultara en la misma


magnitud en que expresamos el perodo T, o en microsegundos si la frecuencia F
viene expresada en MHz.
El primero de esos factores depende principalmente del compilador. Si este
esta optimizado para un procesador, sera capaz de traducir un programa de alto
nivel (escrito en C, por ejemplo) en un programa objeto o ejecutable que contenga
el menor numero de instrucciones maquina posibles.
1 Los subsistemas del computador que limitan su rendimiento.
4 Captulo 1. Analisis del rendimiento

El segundo factor, CPI, esta mas relacionado con el conjunto de instrucciones


del procesador. Por ejemplo, un procesador RISC, (cuyo conjunto de instrucciones
se compone de pocas instrucciones muy sencillas) puede reducir el CPI incluso a la
unidad, pero a costa de incrementar NI. Para ello, una de las tecnicas que utiliza es
la de segmentar la ejecucion de instrucciones dentro del procesador, que veremos
con detalle en un captulo posterior.
El tercer factor es la frecuencia de reloj del procesador, que esta mas relacionada
con su tecnologa hardware y con las tecnicas de integracion de circuitos. La
positiva evolucion de estas ha permitido duplicar la frecuencia del procesador cada
2 o 3 a~nos en las dos ultimas decadas.

MIPS y MFLOPS

En la busqueda de una medida estandar del rendimiento de computadores se han


adoptado metricas alternativas al tiempo de CPU. Las mas conocidas son los MIPS
y los MFLOPS.
MIPS viene de Millones de Instrucciones Por Segundo, y esta relacionado con
las metricas anteriores de la siguiente forma:

NI  10,6 = F  10,6
MIPS = TCPU CPI

La principal ventaja de los MIPS es que son faciles de comprender. Sin embar-
go, son dependientes del repertorio de instrucciones, pues a mayor complejidad de
las instrucciones maquina de un procesador, menor numero de MIPS producira un
programa concreto, sin que eso indique que el programa se esta ejecutando mas
lentamente.
Para subsanar este problema se utilizan los MFLOPS o millones de operacio-
nes en punto otante por segundo 2 , metrica que esta basada en operaciones en
lugar de instrucciones con objeto de conseguir una independencia de la represen-
tacion interna del programa fuente y, por tanto, del repertorio de instrucciones del
procesador.
No obstante, el inconveniente que tienen los MFLOPS como metrica es que no
miden el rendimiento del sistema en general, sino solo el de su FPU (unidad para
calculos en punto otante) Ademas, los MFLOPS contabilizan por igual una suma
en punto otante y una division, cuando en realidad esta ultima tarda mucho mas
en ejecutarse.
2 Las iniciales vienen del ingles, Million of FLoating-point Operations Per Second.
1.2. Programas de evaluacion (benchmarks) 5

1.2 Programas de evaluacion (benchmarks)


En todas las metricas anteriores existe una fuerte dependencia respecto al progra-
ma que se ejecuta en el sistema. Por ello, para la obtencion de una metrica able
resulta fundamental que dicho programa sea representativo del uso que el usuario
le va a dar al computador.
Puesto que cada usuario tiene unas necesidades diferentes, lo que se hace en
estos casos es escoger para las pruebas de rendimiento una serie de programas de
muy diversas caractersticas, tratando de abarcar el amplio espectro de funciones
para las que son normalmente usados los computadores. De esta manera, cada
usuario se interesara por los parametros de rendimiento que el computador consi-
gue en aquellas aplicaciones que mejor representen a las tareas que va a ejecutar
en el.
Este conjunto de aplicaciones se ha acu~nado en ingles con el termino benchmark,
cuya traduccion literal sera carga de trabajo, aunque nosotros utilizaremos aqu el
termino programa de evaluacion.
El primer programa de evaluacion estandar fue creado por SPEC (Standard
Performance Evaluation Corporation), una organizacion fundada en 1988 para tal
objeto por parte de los principales vendedores de computadores. Desde entonces,
SPEC ha crecido hasta contar con mas de 40 miembros, que generan una nueva
version de sus benchmarks con una cadencia trianual. As, en 1989 aparecio el
SPEC89 y en 1992 se cambio por el SPEC92, que ya utilizaba una metrica para
aritmetica entera, SPECint92, y otra para aritmetica real, SPECfp92. Desde
entonces, los programas de evaluacion han ido modi candose para adaptarse a la
vertiginosa evolucion de los computadores.
Programas que integran el SPECint95 Programas que integran el SPECfp95
Go (Juego de Ordenador) Generador de mallas
Simulador de la CPU 88000 de Motorola Modelado de agua
Compilador C de GNU Fsica cuantica
Compresion/descompresion de cheros Astrofsica
Interprete de LISP Resolutor multimalla 3D
Compresor/descompresor de imagenes JPEG Solucionador de ecuaciones diferenciales
Manipulacion de enteros Simulador de turbulencias
Base de Datos Prediccion meteorologica
Qumica cuantica
Dinamica del plasma

Tabla 1.1: Conjunto de programas que componen el benchmark SPECint95 y


SPECfp95.
La ultima version que tenemos disponible del benchmark generado por SPEC
es el SPEC95. Se espera que para nales de 1998 aparezca la version SPEC98,
aunque todava no ha salido a la luz.
6 Captulo 1. Analisis del rendimiento

La composicion del SPEC95 aparece en la tabla 1.1, y sus caractersticas po-


demos resumirlas en las siguientes:

1. Portable a cualquier tipo de maquina, ya sea PC, estacion de trabajo o


multiprocesador.
2. Informe de resultados faciles de interpretar. Para ello se toma una maquina
de referencia sobre la que normalizar los resultados. Esta maquina se to-
ma mas potente cuanto mas reciente es el benchmark. En el SPEC92, por
ejemplo, se utilizaba como referencia un VAX de Digital; en el SPEC95,
una estacion de trabajo Sparc10 de SUN. De forma ilustrativa, el proce-
sador Alpha 21164 (el primero que salio al mercado a 300 MHz. alla por
1995), obtiene 500 SPECint92 y 750 SPECfp92, pero solo 11 SPECint95 y
17 SPECfp95, esto es, es 11 y 17 veces mas rapido que la estacion Sparc10
de SUN para el conjunto de programas del SPEC en aritmetica de enteros y
reales, respectivamente.
3. Tiene en cuenta el efecto del compilador. En efecto, ya hemos visto que un
buen compilador puede hacer que un programa se ejecute mas rapidamente.
Las maquinas con mejores compiladores pueden as parecer mejores cuando
en realidad el merito no esta en la con guracion hardware. Para aislar es-
te efecto, SPEC95 distingue los valores SPECint base95 y SPECfp base95
frente a los ya mencionados SPECint95 y SPECfp95. Los dos primeros son
los que se obtienen sobre una maquina cuando se usan las mnimas opti-
mizaciones de compilacion, y los dos ultimos, cuando se usan las maximas
optimizaciones de compilacion.
4. Tiene en cuenta el efecto de la cache. El bene cio de disponer de un sistema
con una cache potente solo se aprovecha cuando se realizan tareas repetitivas
que amortizan el coste de llenar la cache. Por ello, con el n de medir tambien
el rendimiento de la cache de un sistema, SPEC proporciona dos metricas
mas: SPECint rate95 y SPECfp rate95, que se interpretan como el numero
de iteraciones de una determinada tarea repetitiva que el computador puede
efectuar en un intervalo de tiempo determinado.
5. No tiene en cuenta el efecto del disco duro. SPEC no fue dise~nado para medir
en rendimiento del subsistema de entrada/salida. Por ello, requiere que la
con guracion del sistema disponga de 64 Mbytes de memoria principal con
objeto de que todos los programas del SPEC quepan en la memoria principal
del sistema y el sistema no utilice el disco para habilitar memoria virtual.

Despues del exito del SPEC95, cada cambio signi cativo de los computadores
ha trado como consecuencia la aparicion de nuevos tipos de benchmarks. Por
ejemplo, a raiz del auge de los sistemas operativos y las aplicaciones de 32 bits
1.3. Ley de Amdahl 7

Composicion del iCOMP 1.0 % Composicion del iCOMP 2.0 %


PC Bench 68 Norton Utilities SI32 15
Whetstone 2 CPUmark32 40
SPECint92 25 SPECint base95 20
SPECfp92 5 SPECfp base95 5
Intel Media Benchmark 20

Tabla 1.2: Porcentaje de in uencia de cada benchmark en la composicion delndice


iCOMP 2.0 y evolucion con respecto a su predecesor, el iCOMP 1.0.

aparecieron los benchmarks CPUmark32 y Norton Utilities SI32, compuestos en


su mayora por programas representativos que sacan provecho a las maquinas de
32 bits. El reciente auge de los equipos multimedia ha provocado la creacion por
parte de Intel del Intel Media Benchmark con objeto de medir las prestaciones
de este tipo de maquinas. Y la moda del lenguaje Java ha hecho a SPEC lanzar
un nuevo benchmark espec co para medir las prestaciones de los equipos en lo
referente a la compilacion y ejecucion de programas Java, el SPECjvm98 3 .
En el segmento de los PCs, la ultima metrica de rendimiento empleada por Intel
es el iCOMP 2.0, que trata de sintetizar en un unico valor toda la informacion de
rendimiento que proporcionan los benchmarks existentes en el mercado. Para ello
pondera los ndices de los diferentes benchmarks en funcion del porcentaje medio
de uso que se presupone en un entorno PC para el tipo de aplicaciones al que cada
benchmark representa (ver tabla 1.2). La maquina de referencia para el iCOMP
es el Pentium a 120 MHz. A pesar de que no existe una formula que permita
pasar de iCOMP a SPECint95 o SPECfp95, a ttulo orientativo para comparar la
magnitud de ambas metricas, diremos que un Pentium Pro a 150 MHz llega a 5.42
SPECint95 y 6.08 SPECfp95. Los valores iCOMP alcanzados por los diferentes
modelos de Pentium aparecen en la tabla 1.3.

1.3 Ley de Amdahl


En la seccion 1.1.3 hacamos referencia al termino cuello de botella - del ingles
bottleneck. Este concepto se utiliza en la jerga del rendimiento de computadores
para referirse al subsistema o subsistemas que degradan el rendimiento del equipo
en general.
Puesto que todos los componentes de un computador estan interconectados,
un cambio en las prestaciones de un subsistema tiene un impacto inmediato en el
rendimiento del sistema en general. Ahora bien, puestos a mejorar algo, el sistema
3 JVM es un acronimo del ingles, Java Virtual Machine
8 Captulo 1. Analisis del rendimiento

Frecuencia del micro Frecuencia del bus iCOMP 2.0


Pentium clasico
75 MHz 50 MHz 67
100 MHz 50 MHz 90
120 MHz 60 MHz 100
133 MHz 66 MHz 111
150 MHz 60 MHz 114
166 MHz 66 MHz 127
200 MHz 66 MHz 142
Pentium MMX
166 MHz 66 MHz 160
200 MHz 66 MHz 182
233 MHz 66 MHz 203
Pentium Pro
180 MHz 60 MHz 197
200 MHz 66 MHz 220
Pentium II
233 MHz 66 MHz 267
266 MHz 66 MHz 303
300 MHz 66 MHz 332
333 MHz 66 MHz 366
350 MHz 100 MHz 386
400 MHz 100 MHz 440
450 MHz 100 MHz 483
Celeron
266 MHz 66 MHz 213
300 MHz 66 MHz 226
300A MHz 66 MHz 296
333 MHz 66 MHz 318

Tabla 1.3: Comparativa de rendimiento de los ultimos microprocesadores de Intel


en funcion de la metrica iCOMP 2.0. Puede apreciarse la evolucion con respecto
a la tecnologa del micro y a su frecuencia de reloj. Notar que la con guracion del
equipo es diferente en cada caso, siendo dos de los parametros mas in uyentes la
frecuencia del bus local y el tama~no de las caches internas L1 y L2 (A partir del
modelo 300A, el Celeron incorpora una cache L2 de 128 Kb).

se bene ciara mas si mejoramos el subsistema donde esta localizado el cuello de


botella, y de forma inversa, si queremos abaratar costes, lo mejor es penalizar el
subsistema con mejor rendimiento respecto a los demas.
Por otra parte, como no todos los componentes de un PC tienen la misma
frecuencia de uso en la ejecucion de un programa, resultara mas bene cioso mejorar
1.3. Ley de Amdahl 9

un subsistema cuanto mas utilizado sea este.


Para cuanti car todos estos efectos se utiliza la ley de Amdahl, que establece
que la mejora obtenida en el rendimiento de un sistema debido a la alteracion de
uno de sus componentes esta limitada por la fraccion de tiempo que se utiliza dicho
componente. De forma analtica, esta ley se resume en la siguiente formula:

A = (1,Fm1)+ AFm
m

donde:
A es la aceleracion o ganancia en velocidad obtenida en el sistema debido a la
mejora de uno de sus subsistemas. Es decir, representa el cociente entre el tiempo
de ejecucion de un programa sobre el sistema sin mejora y el tiempo de ejecucion
sobre el sistema mejorado.
Am representa el factor de mejora que se ha introducido en el subsistema alte-
rado (es decir, como de grande ha sido la mejora).
Fm es la fraccion de tiempo que el sistema utiliza el subsistema que se ha
alterado (es decir, cuanto se usa el componente que se ha mejorado).
Ejemplo 1. 1 Queremos mejorar el rendimiento de un computador introducien-
do un coprocesador matematico que realice las operaciones aritmeticas en la mitad
de tiempo. Calcular la ganancia en velocidad del sistema para la ejecucion de un
programa sabiendo que el 60% de dicha ejecucion se dedica al calculo de operacio-
nes aritmeticas. Si el programa tardaba 12 segundos en ejecutarse sin la mejora,
> Cuanto tardara en ejecutarse sobre el sistema mejorado?
Solucion:
Del enunciado tenemos que Am = 2 y Fm = 0:6
Aplicando la ley de Amdahl, obtenemos A = (1,0:6)+1 0:6 = 1 = 1 = 1:42
2 0:4+0:3 0:7
Es decir, el sistema funciona un 42% mas rapido que el original.
Para responder a la segunda cuestion, expresamos A como el cociente entre los
tiempos de ejecucion sin y con mejora, esto es:
Tiempo,de,ejecucion,sin,mejora
A = Tiempo ,de,ejecucion,con,mejora
Y dado que el numerador de esta expresion es 12 segundos, sustituyendo A por
1.42 y despejando, obtenemos que el programa tardara 8.45 segundos cuando se
ejecute aprovechando el coprocesador matematico.
10 Captulo 1. Analisis del rendimiento

1.3.1 Casos lmite


De la formula de la ley de Amdahl podemos extraer unos cuantos casos particulares
que merece la pena analizar.

1. Si Am = 1, entonces A = 1,1Fm , es decir, el porcentaje maximo que un sis-


tema puede acelerarse actuando sobre uno de sus componentes esta acotado
en funcion de la fraccion de uso de ese componente.
2. Si Fm = 0, entonces A = 1: La mejora de un componente, por grande
que sea, no tiene efecto alguno sobre el sistema global si no se utiliza dicho
componente.
3. Si Fm = 1, entonces A = Am , es decir, si todo el tiempo de ejecucion de un
programa se dedica a utilizar el subsistema mejorado, toda la ganancia en
velocidad que experimente dicho subsistema revierte sobre el sistema general.

En de nitiva, la ley de Amdahl representa una gua para conocer la mejor


forma de repartir el dinero a invertir en un equipo informatico entre los distintos
componentes que lo integran en funcion de su uso, y de cuanti car el efecto que
estos componentes tendran sobre el sistema en funcion de sus prestaciones.

Cuestionario de evaluacion
En las preguntas que presentan varias alternativas como respuesta, elija una y solo
una de ellas. Si cree que varias pueden ser validas, debera quedarse con la que
considere mas exacta y/o completa.

1. Ordenar de mejor (1) a peor (6) las siguientes formas de evaluar el rendimien-
to de un computador actual, colocando el numero en el hueco que aparece
en la parte izquierda:
Por el tiempo que transcurre desde que lo enciendo hasta que aparece el
indicador del interprete de comandos (command prompt).
Por el tiempo que tarda en compilar mi programa C favorito.
Por los tiempos de ejecucion de los distintos programas del SPEC95.
Por la frecuencia de reloj del microprocesador.
Por la frecuencia de reloj del microprocesador y los tiempos de acceso al
sistema de memoria (caches de primer y segundo nivel y memoria principal).
Cuestionario de evaluaci
on 11
Por el numero de veces que se enciende el LED de acceso al disco duro
durante la ejecucion de tu programa favorito.
2. El siguiente gra co se encontro insertado en un anuncio del periodico El Pas,
y corresponde a una conocida empresa de venta de ordenadores personales.
Resulta bastante frecuente encontrar este tipo de publicidad en los medios de
comunicacion. Explica el enga~no que encierra de cara al consumidor (fjate
en la forma mas que en el contenido).
300
250
Porcentaje de mejora

200
150
100
50
0
Pentium 166 Pentium MMX 200 Pentium Pro 200 Pentium II 233 Pentium II 266
VELOCIDAD RESPECTO A UN EQUIPO CON PENTIUM 100
3. Queremos analizar el rendimiento de un computador de 100 MHz. que tiene
instrucciones simples, normales y complejas, cada una con un CPI distinto
segun se muestra en la tabla. Para ello, se utiliza un programa compilado en
dos compiladores distintos que generan codigos objeto con diferente numero
y tipo de instrucciones, (ver tabla). > Que version compilada del programa
produce un mayor rendimiento atendiendo a los MIPS? >Y atendiendo al
tiempo de CPU?
Tipo de instruccion CPI Millones de instrucciones
Compilador 1 Compilador 2
Simple 1 5 10
Normal 2 1 1
Compleja 3 1 1
12 Captulo 1. Analisis del rendimiento

4. Un computador ejecuta un programa en 100 segundos, siendo las operaciones


de multiplicacion responsables del 80% de ese tiempo. > Cuanto habra que
mejorar la velocidad de la multiplicacion si se desea que el programa se
ejecute 5 veces mas rapido?

5. Considerar dos computadores, P1 y P2, con identico repertorio de instruc-


ciones (A, B, C, D). P1 funciona a 50 MHz y con CPIs 1, 2, 3 y 4 para A, B,
C y D, respectivamente. P2, por el contrario, funciona a 75 MHz. pero con
CPIs respectivos de 3, 5, 5 y 7. Si ejecutamos en ambos un mismo programa
compuesto por igual numero de instrucciones de cada tipo, >Cual de ellos
mostrara un mayor rendimiento en MIPS?

6. Un programa que dedica la mitad de su tiempo a calculos en punto otante


se ejecuta sobre un computador en 10 segundos. Si cambiamos su FPU
por otra 5 veces mas rapida, >Que ganancia en velocidad experimentara el
programa?

7. Dos programadores compiten para ver quien implementa mejor un determi-


nado algoritmo. Utilizan para ello el ensamblador de un computador cuyas
instrucciones son todas del tipo A, B o C. Cada instruccion realiza una etapa
de busqueda de instruccion (representada por M1) y, opcionalmente, etapas
de busqueda de operandos (representadas por M2), siendo el numero total de
ciclos de cada tipo de instruccion el que se indica en la tabla anexa. Tengase
en cuenta que la etapa M1 consume 4+k ciclos del procesador, mientras
que la etapa M2 consume 3+k ciclos, siendo k el numero de ciclos que el
procesador espera hasta que le llega el dato procedente de la memoria.
Con esta informacion, cada programador elige codi car el algoritmo utili-
zando distintos porcentajes de cada tipo de instruccion disponible, segun se
indica tambien en la tabla anexa. Indicar que programador ha sido mas
e ciente y si in uye en ello el tiempo de respuesta de la memoria.
Tipo de instruccion Ciclos maquina Programador 1 Programador 2
A M1 + 2*M2 45% 10%
B M1 40% 80%
C M1 + 3*M2 15% 10%
Num. insts 1000 1500
Cuestionario de evaluaci
on 13

8. Queremos reducir el tiempo de ejecucion de un programa en un computador


incorporandole una memoria cache para almacenar instrucciones. Cuando
el procesador encuentra una instruccion en la cache, esta se ejecuta 10 veces
mas rapido que cuando debe acceder a memoria principal. Indicar el porcen-
taje mnimo de instrucciones que se deben encontrar en cache para conseguir
ejecutar el programa en menos de la mitad de tiempo.

9. Una forma de mejorar el rendimiento de un computador es utilizando un


sistema multiprocesador. Generalmente, solo una parte del programa a eje-
cutar puede paralelizarse, esto es, admite una descomposicion en tareas que
permita bene ciarse de la existencia de multiples CPUs. Si queremos medir
el rendimiento de una maquina de N procesadores a traves de un benchmark
que tarda 100 segundos en una maquina secuencial y donde el 90% de sus
tareas son paralelizables, se pide:
(a) La aceleracion que experimentara el benchmark en este sistema en fun-
cion de N.
(b) Si pudiesemos incrementar N de forma inde nida, > Estaran acotados
de alguna manera la aceleracion y el tiempo de ejecucion para esta
maquina?

10. A partir de una misma arquitectura base, se ha realizado la implementacion


de dos procesadores multiciclo que denominaremos a partir de ahora Ejido
y Teatinos.
Cada procesador tiene su propio conjunto de instrucciones, pero Teatinos
usa una tecnologa mas actual, lo que hace que su frecuencia de funciona-
miento sea 2 veces la de Ejido.
Para comparar el rendimiento de ambas maquinas, se ha tomado como ben-
chmark un programa en C que se compila para ambos procesadores, dando
el mismo numero de instrucciones pero un tiempo de ejecucion diferente: 8.6
milisegundos en Ejido y 4.1 milisegundos en Teatinos. Calcular la relacion
entre el CPI de ambas ejecuciones para el benchmark considerado. Solucion:
1.04
Un grupo de estudiantes aventajados de la UMA cree que las prestaciones
de Teatinos pueden dar mucho mas de s de lo que esos numeros indican,
y deciden reimplementar su instruccion MOV, consiguiendo reducir de 5 a 3
el numero de ciclos de CPU necesarios para su ejecucion. A continuacion
ejecutan el benchmark de nuevo, consumiendo este tan solo 3.8 milisegundos.
> Se puede conocer el porcentaje del tiempo de ejecucion que se ha dedicado
14 Captulo 1. Analisis del rendimiento

a la ejecucion de la instruccion MOV ? > Y el porcentaje de instrucciones MOV


que tiene el benchmark utilizado durante la evaluacion?

11. Considerese que para determinada arquitectura de un repertorio de instruc-


ciones se realizan diversas implementaciones.
La primera obedece a una organizacion multiciclo que opera a una frecuencia
de 17.5 MHz., obteniendose para determinado programa de prueba un CPI
de 3 y un tiempo de ejecucion de 150 ms.
La segunda reduce el ciclo de reloj hasta los 35 ns, lo que lleva al programa
de prueba a ejecutarse en tan solo 100 ms.
Con estas premisas, contestar a las siguientes preguntas:
(a) Calcular el CPI en la segunda implementacion para el programa de
prueba.
(b) Marcar la sentencia correcta de entre las cuatro siguientes:
i. La segunda implementacion es mas rapida que la primera y por lo
tanto, obligatoriamente, su CPI debe ser menor.
ii. La segunda realizacion es mas rapida que la primera y por lo tanto
su CPI debe ser mayor.
iii. La primera realizacion es la de mayor rendimiento.
iv. Las a rmaciones anteriores son falsas.

12. Se desea mejorar el rendimiento de un PC. Para ello tenemos dos opciones:
(a) Ampliar la memoria RAM, con lo que se consigue que el 80% de los
programas vayan 1.75 veces mas rapido.
(b) Introducir un disco duro mayor, con lo que el 60% de los programas
realizan su tarea en la tercera parte del tiempo original.
A igualdad de precio, > Cual de las dos mejoras aconsejaras ?