You are on page 1of 16
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éng 30 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, Autoevaluacion 32 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 chip Capitule 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,

You might also like