1.3 Bajo la cublerta
25
Ethernet es stil para conectar computadores de un mismo edificio, y de abt que sea
tun buen ejemplo de lo que genéricamente se Ilaman reid de rea local, 0 LAN (Iocal
‘area network), Las redes de rea local se interconectan mediante conmutadores que
pueden proporcionar también servicios de encaminamiento y de seguridad. Las
redes de area extensa, o WAN (wide area network), que cruzan continentes, son la
espina dorsal de Internet, que soporta la World Wide Web; se basan tipicamente en.
fibras 6pticas y son gestionadas por empresas de telecomunicaciones.
Las redes han cambiado la fisonomia de la computacién en los tltimos 25 afios,
tanto por haberse extendido por todas partes como por su expectacular incremento
cen prestaciones. En la década de 1970, muy pocas personas tenfan acceso al correo
clectrénico, e Internet y la Web no existian; ast, el envio fisico de cintas magnéticas
erala principal manera de transferir grandes cantidades de datos entre dos sitios. En
esa misma década, las redes de érea local eran casi inexistentes, y las pocas redes de
‘gran ambito que existan tenfan una capacidad limitada y eran de acceso restringido,
‘A medida que la tecnologia de las redes mejoraba, se hizo mucho més barata y su
Prestacionesy.
Tiempo de ejecuciény Tiempo de ejecuciény,
‘Tiempo de ejecuciény > Tiempo de ejecuciéiny,
Esto significa que el tiempo de ejecucin de ¥ es mayor que el de X, si X es mas
rapido que ¥.
‘Al tratar sobre el disefio de un computador, a menudo se desea relacionar
cuantitativamante las prestaciones de dos maquinas diferentes. Usaremos la frase
“Kes m veces mAs r4pida que Y” para indicar que:
Prestacionesy
Prestacionesy
SiX es n veces més répida que Y, entonces el tiempo de ejecucién de ¥ es n veces
mayor que el de X:
Prestacionesy _ Tiempo de ejecuciémy _
Prestacionesy Tiempo de ejecuciiny
sstaciones relativas
Si una méquina A ¢jecuta un programa en 10 segundos y una maquina B ejecuta
elmismo programa en 15 segundos, ;cusnto mas rapida es A respecto de B?
Se sabe que A es m veces mas répida que B si
Prestaciones, _ Tiempo de ejecucién,
Prestaciones, Tiempo de ejecuciéng30
Capitule 1 Abstracclones y tecnalogia de los computadares,
‘Tiempo de ejecucion
de CPU (tiempo de
CPU): tiempo ral que a
CBU emplea en compu-
tar una taea especifca
‘Tiempo de CPU del
‘usuario: tempo de CPU
cempleado en el propio
programa.
‘Tiempo de CPU del
sistema: tiempo que la
CPU emplea en realizar
‘areas del sistema opera-
tivo para el programa
‘Ast, la relacién de las prestaciones es
is
10
Ys Porlo tanto, A es 1.5 veces més répida que B.
En el ejemplo anterior se podria decir también que la maquina B es 1.5 veces
ids lenta que la maquina A, ya que
Prestaciones ,
Prestaciones,
Jo que significa que
Prestaciones ,
15
Por simplicidad, usaremos normalmente el término mais rdpido que cuando intentemos
comparar méquinas cuantitativamente. Ya que ls prestaciones yl tiempo de ejecucion.
son reciprocos, aumentar las prestaciones requiere reducir el tiempo de ejecucion. Para
evitar la confusién potencial entre los términos aumentar y reducir, diremos normal-
‘mente “mejorar las prestaciones”o “mejorar el tiempo de ejecucién” cuando queramos
decir “aumentar las prestaciones” 0 “reducir el tempo de ejecucién”.
= Prestacionesy,
Medicién de las prestaciones
El tiempo es la medida de ls prestaciones de un computador: el computador que eje-
cuta la misma cantidad de trabajo en el menor tiempo es el ms répido. El tempo de ge
cucién de un programa se mide en segundos. Pero el tiempo puede ser definido de
maneras diferentes, dependiendo de lo que se cuente. La definicién més sencilla de
tiempo se llama tiempo de reloj (wall clock time), tempo de respuesta (response time) 0
tiempo transcurido (elapsed time). Estos términos se refieren al tiempo total que tarda
tuna tarea en completarse,e ineluye los accesos a disco, los accesos a memoria, las activi-
dades de entrada/salida (8/5) yl sobrecarga introducida por el sistema operatvo.
Sin embargo, a menudo los computadores son de tiempo compartido, y un proce-
sador podria trabajar en diferentes programas simulténeamente. En estos casos, €sis-
tema podsia intentar optimizar la productividad mas que tratar de minimizar el
tiempo de ejecucion de un programa concreto. Por lo tanto, a menudo se querta dis-
tinguir entre el tiempo transcutrido y el tiempo que un procesador esté trabajando
para nosotros. El tiempo de ejecucién de CPU, o simplemente tiempo de CPU,
cual reconoce esta dstincidn, es el tiempo que la CPU dedica a ejecutar una tarea con-
creta y no incluye el tiempo perdido en las actividades de E/S 0 en la eecucién de otros
programas. (Sin embargo, hay que recordar que el tiempo de respuesta que percibira
‘un usuario serd el tiempo transcurrido para el programa, no el tiempo de CPU). Ade-
as, el tiempo de CPU puede ser dividido en el tiempo de CPU consumido por el
programa, liamado tiempo de CPU del usuario, yel tiempo de CPU consumido por
el sistema operativo, llamado ticmpo de CPU del sistema. La diferenciacion entre los
tiempos de CPU del usuario y del sistema es dificil de realizar de una manera precisa,14. Prestaciones
Ey
yaquea menudo es complicado asignar responsabilidades a las actividades del sistema
‘operativo para un programa de usuario més que a otro, y ademds los sistemas operati-
vos presentan diferentes funcionalidades.
Por coherencia, mantendremos la distincidn entre las prestaciones basadas en.
el tiempo transcurrido y las basadas en el tiempo de ejecucién de CPU. Usaremos
cl término prestaciones del sistema para referirnos al tiempo transcurrido en un sis-
tema sin carga, y usaremos las prestaciones de la CPU para referimnos al tiempo de
CPU. Nos centraremos en las prestaciones de la CPU, aunque nuestras argumen-
taciones sobre la manera de exponer las prestaciones pueden ser aplicadas para el
tiempo total de ejecucién o para el tiempo de CPU.
Diferentes aplicaciones son sensibles a diferentes aspectos de las prestaciones de un
computador. Muchas aplicaciones, especialmente aquellas que se ejecutan en servido-
res, dependlen en gran medida de las prestaciones de /S, que su vez depende tanto del
hardware como del software, y el tiempo total transcurrido medido en tiempo de reloj
(val clock time) es la medida de interés. En algunos entornos de aplicacién, el usuario
puede preocuparse por la productividad, el tiempo de respuesta, o una compleja com-
binacion de ambos (pe la maxima productividad con un tiempo de respuesta en el
peor caso). Para mejorar ls prestaciones de un programa hay que tener una clara defi-
nicién de cudles son las meétricas de las prestaciones importantes y entonces proceder @
identificar problemas de prestaciones midiendo la ejecucin del programa y buscando
probables cuellos de botella En ls capitulos siguientes se describe cOmo se buscan los
cuellos de botellay se mejoran las prestaciones en varia partes del sistema,
Aunque como usuarios de computadores nos importa el tiempo, cuando se exa-
‘minan los detalles de una maquina es conveniente considerat las prestaciones segtin
otras medidas. En particular, es posible que los diseuadores de computadores quie-
ran considerar una maquina utilizando una medida relacionada con la rapidez con
‘que el hardware realiza determinadas funciones basicas. Casi todos los computado-
res tienen un reloj que funciona a una frecuencia concreta y determina el momento
fen que tienen lugar los sucesos en el hardware, Estos intervalos discretos de tiempo
se llaman ciclos de reloj (0 tics, tics de reloj, periodos de reloj o ciclos de reloj). Los
diseBiadores Haman ala longitud del periodo de relo) tanto el tiempo de un ciclo de
reloj completo (p. ej 0.25 nanosegundos, 0.25 ns, 250 picosegundos, 0 250 ps) como
la frecuencia de reloj (pe). 4 gigahercios o 4 GHz), que es el inverso del periodo de
reloj. En Ja siguiente seccién formalizaremos la relacién entye los ciclos de eloj de
los disentadores de circuitos y los segundos de los usuarios de computadores.
1, Suponga que se sabe que una aplicacién que utiliza un cliente local y un servi-
dor remoto esti limitada por las prestaciones de la red. Para los cambios
siguientes, determine si sdlo mejora la productividad, si mejoran tanto el
tiempo de respuesta como la productividad, o sino mejora ninguna de las dos.
a. Entre el cliente y el servidor se aftade un canal de red extra que aumenta
la productividad total de la red y reduce el etardo para obtener acceso a
Jared (ya que ahora hay dos canales).
Comprender
las prestaciones
de los programas
Ciclo derelojs tambien
lamado tic, tie de rel,
periode de rele, ciclo de
feloj El tiempo de un
periodo de reo}
‘mente del reloj del pro-
cesados, avanza a
velocidad constante
Periodo de relolongi-
tui de cada cielo de rele,
Autoevaluacion32
Capitule 1 Abstracclones y tecnalogia de los computadares,
b. Se mejora el software de red, de modo que se reduce el retardo de
‘comunicacién en la red, pero no se incrementa la productividad.
¢. Seafiade més memoria al computador.
2. Las prestaciones del computador C es 4 veces mejor que el del computador
B, que ejecuta una aplicacién dada en 28 segundos. ;Cuénto tiempo emplea
el computador C en ejecutar la aplicacion?
Prestaciones di
la CPU y sus factores
Frecuentemente, disefiadores y usuarios miden las prestaciones usando métricas
diferentes. Si se pudieran relacionar estas métricas, se podria determinar el efecto
de un cambio en el disefio sobre las prestaciones observadas por el usuario. Como
nos estamos restringiendo a las prestaciones de la CPU, la medida base de presta-
ciones serd el tiempo de ejecucién de la CPU. Una férmula sencilla que relaciona
las métricas mas basicas (ciclos de reloj y tiempo del ciclo de reloj) con el tiempo
de CPU esa siguiente:
‘Tiempo de ejecucién de _ Ciclos de reloj dela x Tiempo del
CPU para un programa CPU parael programa cielo del reloj
Alternativamente, ya que la frecuencia de relojes la inversa del tiempo de ciclo,
‘Tiempo de ejecuciéa de _ Ciclos de reloj de la CPU para el programa
CPU para un programa Frecuencia de reloj
Esta formula pone de manifiesto que el disefiador de hardware puede mejorar las
prestaciones reduciendo la longitud del ciclo de reloj o el némero de ciclos de
reloj requeridos por un programa, Ademés, como se vera en otros capitulas, el
disefiador a menudo se enfrenta a un compromiso entre el mimero de ciclos
requerido por un programa y la longitud de cada cielo, Muchas de las téenicas que
reducen el ntimero de ciclos inerementan también su longitud
Mejora de las prestaciones
Nuestro programa favorito se ejecuta en 10 segundos en el computador A,
que tiene un reloj de 2 GHz, Intentaremos ayudar al disefiador de compu-
‘adores a que construya una maquina B que ejecute el programa en 6 segun-
dos. El disenador ha determinado que es posible un incremento sustancial en.
la frecuencia de reloj, pero que este incremento afectaré al resto del disesio de
la CPU, haciendo que la maquina B requiera 1.2 veces los ciclos de reloj que
Ja maquina A necesitaba para ejecutar el programa. ;Qué frecuencia de reloj
deberia ser el objetivo del disenador?14. Prestaciones
33
Primero se calcularén los ciclos de reloj requeridos por el programa A:
Cielos de reloj de CPU,
Frecuencia de reloj
Tiempo de CPU, =
to segundos = {isles deleoj de CPU,
2x 10°
segundo
0? icles
segundo
Ciclos de reloj de CPU,= 10 segundos x 2% 1 = 20% 10° ciclos
El tiempo de CPU para B se puede calcular utilizando la misma férmula:
1.2.x Ciclos de reloj de CPU,
Tiempo de CPU; Frecuencia de relojy,
12x20 x 10°ciclos
segundo:
Osea Frecuencia de relojy,
Frecuencia de relojg ne =
Por lo tanto, la maquina B necesitaré el doble de la frecuencia de reloj de la
méquina A para ejecutar el programa en 6 segundos.
Las ecuaciones de los ejemplos previos no incluyen ninguna referencia al nimero de
instrucciones ejecutadas por el programa. En el siguiente capitulo veremos qué
aspecto tienen las instrucciones que forman un programa. Sin embargo, debido a
«que el compilador evidentemente genera ls instrucciones que se deben ejecutar,
Ja maquina ha de ejecutarlas para que el programa funcione, el tiempo de ejecucion,
debe depender del ntimera de instrucciones del programa: una manera de pensar en
tiempo de ejecucién es que éste es igual al nimero de instrucciones ¢jecutadas
:multiplicado por el tempo medio por instruccién, Porlo tanto, el mimero de cclos
de relojrequerido por un programa puede ser representado come:
staciones de las instrucciones
Media de ciclos
Cielos de teloj de CPU = Instrucciones de un programa x Mess 0c cicies
El término ciclos de reloj por instruccién, que es el nimero medio de ciclos
de reloj que una instrccién necesita para ejecutarse, es a menudo abreviado
como CPI (clock cycles per instruction). Como instrucciones diferentes podfan
Ciclos de reloj por ins-
truccién (CP1)-mmero
medio de ciclos de rlop
por instrccién para un
programa o fragmento
e programa,4
Capitule 1 Abstracciones y tecnalogia de los computadares
necesitar un mimero de ciclos diferente dependiendo de lo que hacen, el CPI es
una media de todas las instrucciones ejecutadas por el programa. El CPI pro-
porciona una manera de comparar dos realizaciones diferentes de la misma
arquitectura del repertorio de instrucciones, ya que el nimero de instrucciones
(o niimero total de instrucciones) requeridas por un programa seri, obvia-
mente, el mismo.
Utilizacion de Ia ecuacion
jas prestaciones
Supongamos que se tienen dos realizaciones de la misma arquitectura de
repertorio de instrucciones, La maquina A tiene un tiempo de ciclo de relo}
de 250 ps y un CPI de 2.0 para un programa concreto, mientras que la mé-
quina B tiene un tiempo de ciclo de 500 ps y un CPI de 1.2 para el mismo
programa, {Qué maquina es més répida para este programa? ;Cunto mas
rapida es?
Sabemos que cada méquina ejecuta el mismo niimero de instrucciones para
‘elprograma, y aeste mtimero le llamaremos J, Primero, hallaremos el niimero
de ciclos para cada maquina
Ciclos de reloj de CPU, = 1x 2.0
Ciclos de reloj de CPUs = J x 1.2
Ahora calcularemos el tiempo de CPU para cada maquina:
Tiempo de CPU, = Ciclos de reloj de CPU, x Tiempo de cicloy
= 12.0 250 ps = 500 x1 ps
De la misma forma, para B:
Tiempo de CPUg= 1x 1.2% 500 ps = 600 x ps
‘Claramente, la maquina A es més répida, La diferencia en rapidez viene dada
por la relacién entre los tiempos de ejecucién.
Prestaciones CPU, _ Tiempo ejecuciéng _ 600x/ps _ 1 9
Prestaciones CPU, — Tiempo cjecuciony, — S00XT ps
‘Se puede concluir que, para este programa, la maquina A es 1.2 veces més ré-
pida que la maquina B.14 Prostaciones
La ecuaci6n clasica de las prestaciones de la CPU
[Ahora se puede escribir la ecuacién bisica de las prestaciones en términos del
intimero de instrucciones (ntimero de instrucciones ejecutadas por el programa),
del CPT y del tiempo de ciclo:
Tiempo de ejecucién = Niimero de instrucciones x CPI x Tiempo de ciclo
co bien, dado que la frecuencia es el inverso del tiempo de ciclo:
— Neimero de instrucciones x CPI
Tiempo de ejecucibn = ee aes
Estas formulas son especialmente ities porque distinguen los tres factores claves,
«que influyen en las prestaciones. Estas formulas se pueden utilizar para comparar
dos realizaciones diferentes 0 para evaluar un disefio alternativo si se conoce el
impacto en estos tres pardmetros.
Comparacién de segmentos de cédij
Un diseniador de compiladores esté intentando decidir entre dos secuencias,
de cédigo para una maquina en particular. Los disefiadores del hardware le
hhan proporcionado los siguientes datos:
a
Para una declaracién particular de un lenguaje de alto nivel, el disefiador del
compilador esta considerando dos secuencias de cédigo que requieren el si-
guiente numero de instrucciones:
7 2 T 2
2 4 1 z
iQue secuencia de cédigo ejecuta el mayor niimero de instrucciones?
sCual sera la més répida? ;Cuél es el CPI para cada secuencia?
Niimero de instruccio-
snes: mero de instruc-
cones ejecutadas por et
programa.Capitulo 1 Abstracciones y tecnologia de los computadores,
clave
La secuencia 1 ejecuta 2 + 1 + 2 = 5 instrucciones. La secuencia 2 ejecuta
44141 = 6 instrucciones. Por lo tanto la secuencia 1 ejecuta el menor ni-
‘mero de instrucciones.
Se puede usar la ecuaci6n para los ciclos de reloj de la CPU basada en el
auimero de instrucciones y el CPI para encontrar el numero total de ciclos
para cada secuencia:
ics derej deta cev = Sect xcp
Y se obtiene
Ciclos de reloj de la CPU, = (2% 1) 4 (1x2) + (23) = 24246 = 10 ciclos
Ciclos de reloj dele CPU, = (4% 1) + (1x2)4 (1X3) = 44243 = 9 ciclos
Por lo tanto, la segunda secuencia de codigo es mas répida, aun cuando
sjecuta una instruccién més, Debido a que la secuencia de cédigo 2 necesita
‘menos ciclos totales, pero tiene més instrucciones, debe tener un CPI menor.
Los valores del CPI pueden ser calculados ast
cpr = Lislos de reloj dea CPU
‘Niimero de instrueciones
__ Giclos de reloj dela CPI
“ Niimero de instrucciones,
cr,
Ciclos de reloj dela CPU,
Nimero de insirucciones,
cP,14. Prestaciones
a7
Uni
co
Tiempo de ejcueion de CPU de un programa | Segundos por programe
‘Numer de nstucsiones Numer de nstuscones ejeeitades pare! programa
‘elo por netroeion (OY Numere media de ceos par instueein
Tempo ce ciclo ce te Sogundos por lo rel
FIGURA 1.14 Componentes bisicos de las prestaciones y cémo se mide cada uno
{Como podemos determinar el valor de estos factores en Iz ecuacién de las
prestaciones? El tiempo de CPU se puede medir ejecutando un programa, y el
tiempo de ciclo normalmente forma parte de la documentacién de una maquina,
El mimero de instrucciones y el CPI pueden ser més dificiles de obtener. Eviden-
temente, sila frecuencia de reloj y el tiempo de ejecucién de CPU son conocidos,
sélo necesitaremos conocer o el nsimero de instrucciones, o el CPI, para determi-
nar el otro parémetro que falta.
El nsimero de instrucciones se puede determinar utilizando herramientas que
analizan la ejecucién o usando un simulador de a arquitectura, Alternativamente,
se pueden usar contadores hardware, los cuales forman parte de la mayoria de los
procesadores con cl objetivo de guardar una gran variedad de medidas, incluido el
niimero de instrucciones ejecutadas por el programa, el CPI medio y, a menudo,
las fuentes de pérdida de prestaciones. Ya que el mimero de instrucciones
depende de la arquitectura, pero no de la implementacién exacta, se puede medir
1 nimero de instrucciones sin conocer todos los detalles sobre la implementa-
s wo 8
q =
E10 wo =
3 etencia wo:
yw é
3 2
°
enorme
cguiteture Petia Adio un salto muy inspor
uencia elo) ya potenca, pero menos importante ea as prestaiones. La linea Pentium 4
se abandoné debig soe problemas trmicoe dl Prescot fa linea Core 2 vue aun segmentacion mst
imple eon frecuencia de rel mis jay varios roceradoes por chipCapitule 1 Abstracclones y tecnalogia de los computadares,
1596 con cada nueva generacién, En 20 afios, el voltaje ha disminuido desde 5
este el motivo que explica que la potencia slo se haya incrementado 30 veces.
aly,
Potencia relativa
‘Supongamos que desarrollamos un nuevo procesador més sencillo, cuya carga
capacitiva es el 8596 de la carga de un procesador anterior més complejo. Supon-
gamos, ademds, que el voltaje es ajustable de modo que puede reducirse en un
15% respecto al procesador anterior, lo que ocasiona una disminucién del 15%
cen|a frecuencia de la sefal de reloj. Cudl es el impacto en la potencia dinémica?
Poten Cider
POTENT sgu0
(carga capacitiva x 0.85) x (voltaje x 0.85)? x (frecuencia x 0.85)
‘carga capacitiva x voltaje? x fremeuencia
Asi, la relacidn de potencias es
0854 =052
Por lo tanto, el nuevo procesador utiliza aproximadamente la mitad de po-
‘encia que el procesador antiguo.
Fl problema actualmente es que disminuciones adicionales en el voltaje hacen
aque el transistor tenga demasiadas fugas, como grifos de agua que no cierran per-
fectamente. Hoy en dia, aproximadamente el 40% del consumo de potencia es
debido a a fuga de corriente. Silas pérdidas de los (ransistores continuasen cre-
ciendo, el proceso completo se volveria dificil de controlar
En un intento de arontar el problema de la potencia, los disefadores ya han ado-
sado grandes dispositivos para incrementar la refrgeraci, las partes del chip que no
se utlizan en un ciclo de rlojdeterminado se apagan. Aunque hay otras tcnicas para
refrigerar los chips y, en consecuencia, aumentar la potencia, por ejemplo a 300 W,
estas son demasiado caras para poder ser incluidas en los computadores de sobremesa
Desde que los disenadores de computadores se encontraron con el muro de la
potencia, han necestado una nueva forma de afrontarlo, Han elegido una forma de
diseBar los microprocesadores diferente de la que se utliz6 en los primeros 30 anos.
Extensién: Aunque la potencia dinémica es la principal fuente de disipacién de
potencia en CMOS, hay una disipacién estatica debida a las fugas de corriente que se
producen incluso cuando el transistor esta inactive. Como se ha menclonade anterlor-
mente, en 2008, la fuga de corriente es la responsable del 40% de la disipacion de
potencia, De este modo, un aumento en el niimero de transistores aumenta la poter-
cia disipada, incluso si los transistores estuviesen siempre inactivos. Se estan
fempleando diversas técnicas e innovaciones tecnolégicas para controlar la fuga de
Corriente, pero es diffi, conseguir disminuciones adicionales del voltae,