You are on page 1of 9
—an FUNDAMENTOS DEL DISENO DE COMPUTADORES = 5 renacimiento en el diseo de computadores: hay muchas nuevas compahias trabajando en nuevas direcciones arquitect6nicas, con las nuevas familias de computadores que emergen —mini-supercomputadores, microprocesadores de alto rendimiento, supercomputadores graficos y un amplio rango de multi- procesadores— a mayor velocidad que nunca. Comenzando en 1985, la industria de computadores vio un nuevo estilo de arquitectura aprovechando esta oportunidad e iniciando un periodo en el cual el rendimiento ha aumentado a una velocidad mucho mas répida. Al au- nar los avances en la tecnologia de circuitos integrados, las mejoras en la tec- nologia de compiladores y las nuevas ideas arquitectonicas, los disefiadores pudieron crear una serie de maquinas que mejoraban el rendimiento, en un factor de casi 2, cada afto, Estas ideas estan ahora proporcionando una de las mejoras en rendimiento mas significativamente sostenidas en los tltimos veinte afos. Esta mejora ha sido posible al haber tenido en cuenta una serie de im- portantes avances tecnolégicos junto a un mejor conocimiento empirico so- bre la utilizacién de los computadores. De esta fusion ha emergido un estilo de diseno de computadores basado en datos empiricos, experimentaciOn y si- mulacién. Este estilo y aproximacién al disento de computadores se reflejara en este texto, Continuar las mejoras en costo y rendimiento de los ultimos veinticinco a cincuenta aiios requiriré innovaciones continuas en el diseito de computado- res, y los autores piensan que las innovaciones estaran basadas en esta apro- ximacién cuantitativa de la arquitectura de computadores, Por consiguiente, este libro se ha escrito no sélo para documentar este estilo de diseno, sino también para estimular a que el lector contribuya en este campo. Definiciones de rendimiento Para familiarizar al lector con la terminologfa y conceptos de este libro, este capitulo introduce algunos términos ¢ ideas clave. Ejemplos de las ideas men- cionadas aqui aparecen a lo largo del libro, y algunas de ellas —segmentacion (pipelining), jerarquia de memoria, rendimiento de la CPU y medida de cos- tes— son el micleo de capitulos completos. Comencemos con definiciones de rendimiento relativo. Cuando se dice que un computador es mas rapido que otro, ;qué quere- ‘mos significar? El usuario det computador puede decir que un computador es mas répido cuando ejecuta un programa en menos tiempo, mientras que el director de un centro de calculo puede decir que un computador es mas ré- pido cuando completa mas tareas en una hora. El usuario del computador esta interesado en reducir el tiempo de respuesta —el tiempo transcurrido entre el comienzo y el final de un evento— denominado también tiempo de ejecucin © latencia, El director del centro de cAlculo esta interesado en incrementar la productividad (throughput) —la cantidad total de trabajo realizado en un tiempo determinado— a veces denominado ancho de banda. Normalmente, los términos «tiempo de respuestan, «tiempo de ejecucion» y «productividad> se utilizan cuando se est desarrollando una tarea de cilculo completa. Los términos «latencia» y «ancho de banda» casi siempre se eligen cuando se ha- 6 — ARQUITECTURA DE COMPUTADORES: bla de un sistema de memoria. Todos estos términos aparecerdn a lo largo de este texto. éLas siguientes mejoras en rendimiento incrementan la productividad, hacen disminuir el tiempo de respuesta, 0 ambas cosas? 1. Ciclo de retoj mas rapido. 2. Multiples procesadores para tareas separadas (tratamiento del sistema de reservas de una compaiiia aérea, para un pais, por ejemplo). 3. Procesamiento paralelo de problemas cientificos. Respuesta | La disminucién del tiempo de respuesta, habitualmente, mejora la producti- vidad. Por consiguiente, 1 y 3 mejoran el tiempo de respuesta y la produc- tividad. En 2, ninguna tarea funciona mas répida, por tanto, solo incrementa Ja productividad. A veces estas medidas se describen mejor con distribuciones de probabili- dad en lugar de con valores constantes. Por ejemplo, consideremos el tiempo de respuesta para completar una operacién de E/S en un disco, El tiempo de respuesta depende de una serie de factores no deterministicos, como lo que el disco esté haciendo en el instante de la peticién de E/S y del nimero de tareas que estan esperando acceder al disco. Debido a que estos valores no son fijos, tiene més sentido hablar de tiempo medio de respuesta de un acceso al disco. De igual forma, la productividad efectiva del disco —el numero de datos que realmente va 0 viene del disco por unidad de tiempo— no es un valor cons- tante. En la mayor parte de este texto, trataremos el tiempo de respuesta y la productividad como valores deterministicos, aunque esto cambiaré en el Capitulo 9, cuando hablemos de E/S. Cuando se comparan alternativas de diseto, con frecuencia, queremos re- lacionar el rendimiento de dos maquinas diferentes, por ejemplo X ¢ Y. La frase «X es mds rapida que Yo se utiliza aqui para significar que el tiempo de respuesta 0 tiempo de ejecucion es inferior en X que en Y para una tarea dada. En particular, «X es n por 100 més rapido que Y» significa Tiempo de ejecuciomy n Tiempo de ejecuciénx 100 Como el tiempo de ejecucién es el reciproco del rendimiento, se mantiene la siguiente relacion: 1 n__ Tiempodeejecuciény _ Rendimientoy __Rendimientox 100 ~ “Tiempo de ejecucionx 1 Rendimientoy Rendimientox FUNDAMENTOS DEL DISENO DE COMPUTADORES = 7 Algunas personas consideran un incremento en el rendimiento, n, como la di- ferencia entre el rendimiento de la maquina mas répida y la més lenta, divi- dido por el rendimiento de la m4quina més lenta. Esta definicién de n es exactamente equivalente a nuestra primera definicion, como podemos ver: Rendimientox — Rendimientoy n= 190, en Rendimientoy n__ Rendimientox 100 ~ Rendimientoy — 4 t__ Rendimientox _ Tiempo de ejecuciény 100 ~ Rendimientoy ~ Tiempo de ejecuciénx La frase «la productividad de X es el 30 por 100 superior que la de Y» significa que el ntimero de tareas completadas por unidad de tiempo en la maquina X es 1,3 veces el niimero de tareas completadas en la maquina Y. Si la maquina A ejecuta un programa en diez segundos y la maquina B eje- cuta el mismo programa en quince segundos, cual de las siguientes senten- cias es verdadera? m Acs el 50 por 100 mas répida que B. @ Aesel 33 por 100 mas rapida que B. Que la maquina A sea el n por 100 mas répida que la maquina B puede ex- presarse como Tiempo de ejecuciong _ n Tiempo de ejecucién, 100 Tiempo de ejecuciéng — Tiempo de ejecuciény 100 Tiempo de ejecuciény Asi que, 15 — 10 i 100 = 50 Aes, por tanto, el 50 por 100 més répida que B. Para ayudar a prevenir malentendidos —y debido a la falta de definiciones consistentes para «mas rapido que» y «més lento que»— nunca utilizaremos la frase «mas lento que» en una comparacién cuantitativa de rendimiento. 8 — ARQUITECTURA DE COMPUTADORES aa Como rendimiento y tiempo de ejecucién son reciprocos, incrementar el rendimiento hace decrecer el tiempo de ejecucion. Para ayudar a evitar con- fusiones entre los términos «incrementar y «decrementam, habitualmente, diremos «mejorar el rendimiento» o «mejorar el tiempo de ejecucion» cuando queramos significar incremento de rendimiento y disminucidn de tiempo de ejecucién. Productividad y latencia interactian de forma diferente en los disetos de computadores. Una de las interacciones més importantes se presenta en la segmentacion (pipelining). La segmentacion es una técnica de implementa cién que mejora la productividad al solapar la ejecucién de multiples instruc- ciones; la segmentacion se explica con detalle en el Capitulo 6. La segmenta- ion de instrucciones es andloga a utilizar una linea de ensamblaje para fabricar coches. En una linea de ensamblaje, se pueden tardar ocho horas en construir un coche completo, pero si hay ocho pasos en la linea de ensamblaje, cada hora se fabrica un nuevo coche. En la linea de ensamblaje, no se ve afectada la latencia para construir un coche, pero la productividad aumenta proporcio- nalmente con el numero de etapas de la linea, si todas las etapas son de la misma duracion. El hecho de que la segmentacién en los computadores ten- ga algdn gasto por etapa incrementa la latencia en cierta cantidad para cada etapa del cauce Principios cuantitativos del disefio de computadores Esta seccin introduce algunas reglas y observaciones importantes para dise- ar computadores. Acelerar el caso comun Quiz el principio mas importante y generalizado del diseho de computadores sea acelerar el caso comiin: al realizar un disefto, favorecer el caso frecuente sobre el infrecuente. Este principio también se aplica cuando se determina como emplear recursos, ya que el impacto de hacer alguna ocurrencia mas ré- pida es mucho mayor si la ocurrencia es frecuente. Mejorar el evento fre- cuente en lugar del evento raro, evidentemente, también ayudara a aumentar el rendimiento. Ademas, el caso frecuente es, a menudo, mas simple y puede realizarse de forma mas répida que el caso infrecuente. Por ejemplo, cuando sumamos dos mimeros en la unidad central de proceso (CPU), podemos es- perar que el desbordamiento (overflow) sea una circunstancia infrecuente y, por tanto, podemos mejorar el rendimiento optimizando el caso mas comin de ausencia de desbordamiento, Este hecho puede ralentizar la situacién en la que se presente un desbordamiento, pero si este caso es infrecuente, el rendi- miento global mejorar al optimizar el caso normal. Veremos muchos casos de este principio a lo largo de este texto. Al aplicar este sencillo principio, hemos de decidir cual es el caso frecuente y cémo se puede mejorar el rendimiento haciendo este caso mas rapido. Una ley fun- Ejemplo FUNDAMENTOS DEL DISENO DE COMPUTADORES 9 damental, denominada Ley de Amdahl, puede utilizarse para cuantificar este principio. Ley de Amdahl El aumento de rendimiento que puede obtenerse al mejorar alguna parte de un computador puede calcularse utilizando la Ley de Amdahl. La Ley de Am- dqhl establece que la mejora obtenida en el rendimiento al utilizar algin modo de ejecucién mas rapido esta limitada por la fraccién de tiempo que se pueda utilizar ese modo mas rapido. La Ley de Amdahl define la ganancia de rendimiento o aceleraci6n (spee- dup) que puede lograrse al utilizar una caracteristica particular. ;Qué es la aceleracién? Supongamos que podemos hacer una mejora en una maquina que cuando se utilice aumente su rendimiento. La aceleracion (speedup) es la re- lacion Aceleracién de rendimiento = __ Rendimiento de la tarea completa utilizando la mejora cuando sea posible Rendimiento de Ta tarea completa sin utilizar la mejora Alternativament Aceleracién de rendimiento = T Tiempo de ejecucion de la tarea completa utilizando la mejora cuando sea posible mpo de ejecucién de la tarea sin utili la mejora La aceleracién nos indica la rapidez con que se realizara una tarea utilizando una maquina con la mejora con respecto a la maquina original. Considerar el problema de viajar desde Nevada a California a través de las montaias de Sierra Nevada y del desierto de Los Angeles. Hay disponibles va- rios tipos de vehiculos, pero, desgraciadamente, el viaje se realiza a través de reas ecolégicamente sensibles por las montahas que hay que atravesar. Se emplean veinte horas en recorrer a pie las montafias. Sin embargo, existe la posibilidad de recorrer las ultimas 200 millas en un vehiculo de alta veloci- dad. Hay cinco formas de completar la segunda parte del viaje: Ira pie a una velocidad media de 4 millas por hora, 2. Montar en bicicleta a una velocidad media de 10 millas por hora, 3. Conducir un «Hyundai Excel» en el cual la velocidad media es de 50 millas, por hora. 4, Conducir un «Ferrari Testarossa» en el cual la velocidad media es de 120 millas por hora. 10 = ARQUITECTURA DE COMPUTADORES 5. Conducir un vehiculo oruga en el cual la velocidad media es de 600 millas por hora, {Cuanto se tardara en realizar el viaje completo utilizando estos vehiculos, y cual es el aumento de velocidad si se toma como referencia el recorrido a pie de la distancia completa? Podemos encontrar la solucion determinando cuanto durard la segunda parte del viaje y sumando ese tiempo a las veinte horas necesarias para cruzar las montafias. La Figura 1.2 muestra la efectividad de utilizar los diversos mo- dos, mejorados, de transporte. La Ley de Amdahl nos da una forma répida de calcular la aceleracién, que depende de dos factores: 1, La fraccion del tiempo de calculo de la maquina original que pueda uti- lizarse para aprovechar la mejora. En el ejemplo anterior la fraccién es 2 Este valor, que llamaremos Fracciénmeontas €S Siempre menor o igual que |. 2. La optimizacién lograda por el modo de ejecucién mejorado; es decir, cuanto més rapido con la que se ejecutaria la tarea si solamente se utili- zase el modo mejorado. En el ejemplo anterior este valor aparece en la columna etiquetada «aceleracién en el desierto». Este valor es el tiempo del modo original con respecto al tiempo del modo mejorado y es siem- pre mayor que 1. Llamaremos a este valor AceleraciOtmejoras- El tiempo de ejecucién utilizando la maquina original con el modo mejorado seré el tiempo empleado utilizando la parte no mejorada de la maquina més el tiempo empleado utilizando la parte mejorada. Vehiculo para la segunda senna atte ‘Aceleracién en el Horas del viaje. Aceleracion en el parte del viaje aaa desierto completo viaje completo A pie 30,00 10 70,00 10 Bicicleta 20,00 25 40,00 18 Excel 4,00 12,5 24,00 29 Testarossa 1,67 300 21,67 32 Vehiculo orvga 033 1500 20,33 34 FIGURA 1.2 Las relaciones de aceleracién obtenidas para los diferentes medios de transporte depende fuertemente de que hay qi atravesado las montafias— que cruzar a pie las montafias. La aceleraci6n en el desierto —una vez que se han €s igual a la velocidad utilizando el vehiculo designado dividido por la velocidad a pie; la columna final muestra la rapidez del viaje completo cuando se compara con el viaje a pie. FUNDAMENTOS DEL DISENO DE COMPUTADORES = 11 Tiempo de ejecucionyeo = Tiempo de ejecuciGnanrigus -(« = Fracci6Miejrata) + seneeatesae | AccleraciOnmejorada La aceleracién global es la relaci6n de los tiempos de ejecucién: Tiempo de ejecucinsnisue Aceleraciongova = E05 de eiecuclonnn Matobsl = “Tempo de ejecuciOMayevo Frac otimcjorada 1 = Fracci6nypejorada) iwleniee ( sate) + FA ceferaCiGM menace Suponer que estamos considerando una mejora que corra diez veces mas r4- Ejemplo | pida que la maquina original, pero sélo es utilizable el 40 por 100 del tiempo. {Cual es la aceleracion global lograda al incorporar la mejora? Respuesta Fracciénmejorada = 04 Aceleraciénmejorasa = 10 1 Tea = 156 Aceleraci6ngot = La Ley de Amdahl expresa la ley de rendimientos decrecientes: la mejora incremental en la aceleracién conseguida por una mejora adicional en el ren- dimiento de una parte del célculo disminuye tal como se van aftadiendo me- joras, Un corolario importante de la Ley de Amdahl es que si una mejora s6lo es utilizable por una fraccién de una tarea, no podemos aumentar la veloci- dad de la tarea mas que el reciproco de 1 menos esa fraccién. Un error comin al aplicar la Ley de Amdahl es confundir «fraccién de tiempo convertido para utilizar una mejora» y «fraccién de tiempo después de que se utiliza la mejora». Si, en lugar de medir el tiempo que podria utili- zar la mejora en un célculo, midiésemos el tiempo después que se ha utilizado la mejora, los resultados serian incorrectos. (Intentar el Ejercicio 1.8 para cuantificar el error.) La Ley de Amdahl puede servir como guia para ver cémo una mejora au- menta el rendimiento y cémo distribuir los recursos para mejorar la relacion coste/rendimiento. El objetivo, claramente, es emplear recursos de forma pro- porcional al tiempo que se requiere en cada parte. 12 ARQUITECTURA DE COMPUTADORES Respuesta Supongamos que se quiere mejorar la velocidad de la CPU de nuestra ma- quina en un factor de cinco (sin afectar al rendimiento de E/S) por cinco ve- ces el coste, Supongamos también que la CPU se utiliza el 50 por 100 del tiempo, y que el tiempo restante la CPU esta esperando las E/S. Si la CPU supone un tercio del coste total del computador, zel incremento de la veloci- dad de la CPU en un factor de cinco es una buena inversion desde un punto de vista coste/rendimiento? La aceleraci6n obtenida es Aceleracion = — 1,67 =. 1+. 5 = 2,33 veces la maquina original Como el incremento de coste es mayor que la mejora de rendimiento, este cambio no mejora la relacion coste/rendimiento. Localidad de referenci Aunque la Ley de Amdahl es un teorema que se aplica a cualquier sistema, otras observaciones importantes provienen de las propiedades de los progra- ‘mas. La propiedad més importante, que regularmente explotamos de un pro- grama, es la localidad de referencia: los programas tienden a reutilizar los da- tos € instrucciones que han utilizado recientemente. Una regla empirica, muy corroborada, es que un programa emplea el 90 por 100 de su tiempo de eje- cucién en s6lo el 10 por 100 del cddigo. Una implicacion de la localidad es que, baséndose en el pasado reciente del programa, se puede predecir con una precisién razonable qué instrucciones y datos utilizaré un programa en el fu- turo proximo. Para examinar la localidad, se midieron algunos programas para determi- nar qué porcentaje de las instrucciones eran responsables del 80 y 90 por 100 de las instrucciones ejecutadas. Los datos se muestran en la Figura 1.3, y los programas se describen con detalle en el capitulo siguiente, La localidad de referencia también se aplica a los accesos a los datos, aun- que no tan fuertemente como a los accesos al cOdigo. Se han observado dos tipos diferentes de localidad. La localidad temporal especifica que los elemen- tos accedidos recientemente, probablemente, seran accedidos en un futuro proximo. La Figura 1.3 muestra un efecto de la localidad temporal. La foca- lidad espacial establece que los elementos cuyas direcciones son proximas tienden a ser referenciados juntos en el tiempo. Veremos estos principios apli- cados mds tarde en este capitulo, y ampliamente en el Capitulo 8 FUNDAMENTOS DEL DISENO DE COMPUTADORES = 13. 90% 46 rod as 80% 08 FIGURA 1.3 Este dibujo muestra el porcentaje de las instrucciones que son responsables del 80 y 90 por 100 de las ejecuciones de instrucciones. Por ejemplo, menos det 4 por 100 de las instrucciones del programa Spice (llamadas también instrucciones estéticas) representan el 80 por 100 de las instrucciones di- némicamente ejecutadas, mientras que menos del 10 por 100 de las instrucciones estéticas contabilizan el 90 por 100 de las instrucciones ejecutadas. Menos de la mitad de las instrucciones estéticas se ejecutan al menos una vez en cualquier eje- cucién —en Spice s6lo el 30 por 100 de las instrucciones se ejecutan una o mas veces. Descripciones detalladas de los programas y sus entradas se dan en la Figura 2.17 (pag. 71). El trabajo de un disefiador de computadores Un arquitecto de computadores disefia maquinas para ejecutar programas. La tarea de disefiar un computador presenta muchos aspéctos, entre los que se incluyen el disefo del repertorio de instrucciones, la organizacién funcional, el diseiio logico y la implementacién. La implementacién puede abarcar el di seo de circuitos integrados (IC), encapsulamiento, potencia y disipacién tér- mica, Habria que optimizar el disefio de la maquina en estos niveles, Esta op- timizacion requiere estar familiarizado con un amplio rango de tecnologias, desde los compiladores y sistemas operativos al disefo logico y encapsula- miento. ‘Algunas personas utilizan el término arquitectura de computadores para denominar solamente el disefto de! repertorio de instrucciones. Los demés as- pectos del disefo los referencian como «implementacion», insinuando, con frecuencia, que la implementacion no es interesante 0 es menos estimulante.

You might also like