Sei sulla pagina 1di 5

2.

7 Principios cuantitativos de diseo de computadoras


Acelerar el caso comn
Quiz el principio ms importante y generalizado del diseo de computadoras sea acelerar el caso comn: al realizar un diseo, favorecer el caso frecuente sobre el infrecuente. Este principio tambin se aplica cuando se determina cmo emplear recursos, ya que el impacto de hacer alguna ocurrencia ms rpida es mucho mayor si la ocurrencia es frecuente. Mejorar el evento frecuente en lugar del evento raro, evidentemente, tambin ayudar a aumentar el rendimiento. Adems, el caso frecuente es, a menudo, ms simple y puede realizarse de forma ms rpida que el caso infrecuente. Por ejemplo, cuando sumamos dos nmeros en la CPU, podemos esperar que el desbordamiento sea una circunstancia infrecuente y, por tanto, podemos mejorar el rendimiento optimizando el caso ms comn de ausencia de desbordamiento. Este hecho puede ralentizar la situacin en la que se presente un desbordamiento, pero si este caso es infrecuente, el rendimiento global mejorar al optimizar el caso normal. Al aplicar este sencillo principio, hemos de decidir cul es el caso frecuente y cmo se puede mejorar el rendimiento haciendo este caso ms rpido. Una ley fundamental, 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 una computadora puede calcularse utilizando la Ley de Amdahl. La Ley de Amdahl establece que la mejora obtenida en el rendimiento al utilizar algn modo de ejecucin ms rpido est limitada por la fraccin de tiempo que se pueda utilizar ese modo ms rpido. La Ley de Amdahl define la ganancia de rendimiento o aceleracin (speedup) que puede lograrse al utilizar una caracterstica particular. Supongamos que podemos hacer una mejora en una mquina que cuando se utilice aumente su rendimiento. La aceleracin es la relacin:

Alternativamente

La aceleracin nos indica la rapidez con que se realizar una tarea utilizando una mquina con la mejora con respecto a la mquina original. La Ley de Amdahl nos da una forma rpida de calcular la aceleracin, que depende de dos factores: 1. La fraccin del tiempo de clculo de la mquina original que pueda utilizarse para aprovechar la mejora. Por el ejemplo, si 20 segundos del tiempo de ejecucin puede utilizar la mejora de un programa que toma 60 segundos en total, la fraccin es 20 /60. Este valor, que se llama Fraccin mejorada, es siempre menor o igual que 1. 2. La optimizacin lograda por el modo de ejecucin mejorado; es decir, cunto ms rpido con la que se ejecutara la tarea si solamente se utilizase el modo mejorado. Este valor es el tiempo del modo original con respecto al tiempo del modo mejorado. Si el modo mejorado toma 2 segundos para alguna porcin de programa que puede usar el modo completamente mientras que el modo original tomaba 5 segundos para la misma porcin de programa, la mejora es 5/2. Este valor es siempre mayor que 1 y se llama Aceleracin mejorada. El tiempo de ejecucin utilizando la mquina original con el modo mejorado ser el tiempo empleado utilizando la parte no mejorada de la mquina ms el tiempo empleado utilizando la parte mejorada.

Ejemplo Suponer que estamos considerando una mejora que corra diez veces ms rpida que la mquina original, pero slo es utilizable el 40% del tiempo. Cul es la aceleracin global lograda al incorporar la mejora? Respuesta Fraccin mejorada = 0.4 Aceleracin mejorada = 10 Aceleracin global = 1/( 0.6 + 0.4/10) = 1.5625 La Ley de Amdahl expresa la ley de rendimientos decrecientes: la mejora incrementar en la aceleracin conseguida por una mejora adicional en el rendimiento de una parte del clculo disminuye tal como se van aadiendo mejoras. Un corolario importante de la Ley de Amdahl es que si una mejora slo es utilizable por una fraccin de una tarea, no podemos

aumentar la velocidad de la tarea ms que el recproco de 1 menos esa fraccin. Un error comn al aplicar la Ley de Amdahl es confundir fraccin de tiempo convertido para utilizar una mejora y fraccin de tiempo despus de que se utiliza la mejora. Si, en lugar de medir el tiempo que podra utilizar la mejora en un clculo, midisemos el tiempo despus que se ha utilizado la mejora, los resultados seran incorrectos. La Ley de Amdahl puede servir como gua para ver cmo una mejora aumenta el rendimiento y cmo distribuir los recursos para mejorar la relacin costo/rendimiento. El objetivo, claramente, es emplear recursos de forma proporcional al tiempo que se requiere en cada parte.

Rendimiento del CPU


La mayora de las computadoras se construyen utilizando un reloj que funciona a una frecuencia constante. Estos eventos discretos de tiempo se denominan pulsos, pulsos de reloj, perodos de reloj, ciclos o ciclos de reloj. Los diseadores de computadoras referencian el tiempo de un perodo de reloj por su duracin (por ejemplo, 10 ns) o por su frecuencia (por ejemplo, 100 MHz). El tiempo de CPU para un programa puede expresarse entonces de dos formas: Tiempo de CPU = Ciclos de reloj de CPU para un programa x Duracin del ciclo de reloj o de otra forma:

Adems del nmero de ciclos de reloj para ejecutar un programa, tambin podemos contar el nmero de instrucciones ejecutadas - la longitud del camino de instrucciones o el recuento de instrucciones (IC, instruction count). Si conocemos el nmero de ciclos de reloj y el recuento de instrucciones podemos calcular el nmero medio de ciclos de reloj por instruccin (CPI):

Esta medida del rendimiento del CPU proporciona una nueva percepcin en diferentes estilos de repertorios de instrucciones e implementaciones. Al transponer el IC en la frmula anterior, los ciclos de reloj pueden definirse como ICCPI. Esto nos permite utilizar el CPI en la frmula del tiempo de ejecucin:

Tiempo de CPU = IC x CPI x Duracin del ciclo de reloj o tambin :

Como demuestra esta frmula, el rendimiento del CPU depende de tres caractersticas: ciclo de reloj (o frecuencia), ciclos de reloj por instruccin (CPI), y recuento de instrucciones (IC). No se puede cambiar ninguna de ellas sin tener en cuenta las dems, ya que las tecnologas bsicas involucradas al cambiar una caracterstica tambin son interdependientes: Frecuencia de reloj - Tecnologa hardware y organizacin CPI - Organizacin y arquitectura a nivel lenguaje mquina IC - Arquitectura del nivel lenguaje mquina y tecnologa de compiladores. A veces es til, al disear el CPU, calcular el nmero total de ciclos de reloj de la CPU como:

donde ICi representa el nmero de veces que se ejecuta la instruccin i en un programa y CPIi representa el nmero medio de ciclos de reloj para la instruccin i. Esta forma puede utilizarse para expresar el tiempo de CPU como:

y el CPI global como:

La ltima forma del clculo de CPI multiplica cada CPI i individual por la fraccin de ocurrencias en un programa. CPI i debe medirse, y no calcularse a partir de una tabla al

final del manual de referencia, ya que debe incluir fallos de cache y dems ineficiencias del sistema de memoria. Ejemplo: Suponga hemos hecho las siguientes medidas: Frecuencia de operaciones de punto flotante = 25% Promedio de operaciones de CPI relativamente de operaciones de punto flotante = 4.0 Promedio de operaciones de CPI relativamente de todas otras operaciones = 1.33 Frecuencia de las operaciones FPSQR = 2% CPI de FPSQR = 20 Suponer que estamos considerando dos alternativas: una reduce el CPI de FPSQR a 2; otra reduce el promedio de CPI de todos las operaciones de punto flotante a 2. Comparar estas dos alternativas de diseo. Respuesta Primero, observamos que solo el CPI cambia, la frecuencia de reloj y el recuento de instrucciones quedan sin cambio. Empezamos con encuentro del CPI original sin ninguna mejora:

Podemos calcular el CPI para FPSQR con mejora: CPInew FPSQR = CPIoriginal - 0.02 x (CPIold FPSQR - CPIof new FPSQR ) = = 2.0- 0.02 x (20-2.0) = 1.64 Podemos calcular el CPI con mejora de todas las instrucciones de punto flotante: CPInew FP = (2 x 0.25)+(1.33 x 0.75) =1.5 Puesto que el CPI con la mejora de todas las instrucciones de punto flotante tiene valor ms bajo, entonces el rendimiento ser mejor. La aceleracin para el caso de mejora de todas las instrucciones de punto flotante es:

Potrebbero piacerti anche