Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1. Si le dicen que un procesador alcanza 16 MIPS, ¿puede estar seguro que ejecutará
cualquier programa de 16000 instrucciones en un milisegundo?
Solución
Los MIPS se definen como el número de instrucciones que puede ejecutar un procesador (en
millones) divididos por el tiempo que tardan en ejecutarse:
NI
MIPS
TCPU 106
Los MIPS suelen utilizarse como medida de las prestaciones de un procesador, pero realmente, sólo
permiten una estimación la velocidad pico del procesador, que ni siquiera permite realizar una
comparación fiable entre procesadores, dado que:
De ahí que incluso se haya dicho que MIPS significa Meaningless Information of Processor Speed
(información sin sentido de la velocidad del procesador).
En relación a la pregunta que se plantea, la respuesta puede tener en cuenta dos aspectos:
Tabla 1. Valor de normalización y número de apariciones de cada operación en coma flotante del
programa.
Solución
Teniendo en cuenta la definición del número de MFLOPS sin normalizar, y sustituyendo el número
de instrucciones en coma flotante del programa, se tiene:
Número
deinstruccionesFP 109970178
MFLOPS 6
1.17
TCPU 10 94 106
Si se tienen en cuenta los valores de coste relativo de las instrucciones en coma flotante, los
MFLOPS normalizados se obtienen a partir de la siguiente expresión:
w Númerodeinstrucci
i onesFP i
norm
i 1
MFLOPS
TCPU 106
176202855
norm
MFLOPS 1.87
94 106
Solución
Para resolver este problema se utilizan las expresiones del tiempo de CPU generalizadas para
recoger la posibilidad de diversos tipos de arquitecturas de procesador implementando distintos
tipos de paralelismo. Dicha expresión tiene la forma:
CPE
TCPU Noper Tciclo
IPE OPI
donde CPE es el número de ciclos entre emisiones, IPE es el número de instrucciones promedio que
se emiten, y OPI es el número de operaciones que codifican las instrucciones del repertorio
máquina.
Así, para el procesador superescalar se tiene que CPE = 2, IPE = 2 y OPI = 1, mientras que para el
vectorial tenemos que CPE = 1, IPE = 1 y OPI = 6, por lo que según la expresión anterior, para el
procesador superescalar se tiene que:
2
TCPU superescal
ar Noperacione
s Tciclo Noperacione
s Tciclo
2 1
1 s Tciclo
Noperacione
TCPU superescal
ar Noperacione
s Tciclo
1 6 6
Según estos resultados, el procesador vectorial ofrece los tiempos de ejecución más rápidos.
4. Se pretende escoger entre dos posibles alternativas para implementar los saltos
condicionales en un procesador sin segmentación de cauce:
Hay que tener en cuenta que hay un 20% de saltos condicionales en los programas con la
primera alternativa (ALT1); que las instrucciones BRANCH (de ALT1) y
COMPARE+BRANCH (de ALT2) necesitan 4 ciclos mientras que todas las demás necesitan
sólo 3; y que el ciclo de reloj de ALT1 es un 25% menor que el de ALT2, dado que en éste
caso la mayor funcionalidad de la instrucción COMPARE+BRANCH ocasiona una mayor
complejidad en el procesador.
b) ¿Qué ocurriría si el ciclo de reloj fuese únicamente un 10% mayor para ALT2?
Solución
Para responder a la primera cuestión, nos basaremos en la siguiente ecuación, que estima el tiempo
de ejecución de un programa en un procesador:
donde CPI es el número medio de ciclos por instrucción, NI es el número de instrucciones, y Tciclo el
tiempo de ciclo del procesador.
CPIALT1 i
ALT1
3.2
ALT1 ALT1
proporción
i
i
NI ALT1
Para la alternativa ALT2 hay que tener en cuenta que se reduce el número de instrucciones del
programa, ya que para cada salto se ejecutará una sola instrucción (COMPARE+BRANCH) en vez
de dos (una comparación seguida de un salto). Por tanto, el número de instrucciones del programa
para la alternativa ALT2 es
La Tabla 3 muestra un resumen del porcentaje de apariciones de cada instrucción así como de su
CPI. El valor medio de CPI para la alternativa ALT2 se obtiene con la siguiente expresión:
Además, se tiene que el ciclo de reloj de la alternativa ALT2 es mas largo que el de la alternativa
ALT1. Concretamente, se dice que el ciclo de la alternativa ALT1 es un 25% menor que el de la
alternativa ALT2, lo que implica que:
es decir, que
Por tanto, tenemos que el tiempo de ejecución para la alternativa ALT2 es de:
TCPUALT2 3.25 NIALT2 TcicloALT2 3.25 0.8 NIALT1 1.33 TcicloALT1 3.458 NIALT1 TcicloALT1
Estos resultados permiten concluir que la alternativa ALT2 no mejora a la alternativa ALT1. Es
decir, aunque un repertorio con instrucciones más complejas puede reducir el número de
instrucciones de los programas, reduciendo el número de instrucciones a ejecutar, esto no tiene que
suponer una mejora de prestaciones si al implementar esta opción la mayor complejidad del
procesador lo hace algo más lento.
En la segunda parte de este problema se nos plantea la posibilidad de que las diferencias entre los
tiempos de ciclo de las dos alterativas no sean tan diferentes. Concretamente, ahora el tiempo de
ciclo de la alternativa ALT2 es un 10% mayor que el de la alternativa ALT1. Por tanto, se cumple
que:
Sustituyendo esta nueva expresión en la ecuación del cálculo del tempo de ejecución tenemos que:
TCPUALT2 3.25 NIALT2 TcicloALT2 3.25 0.8 NIALT1 1.10 TcicloALT1 2.86 NIALT1 TcicloALT1
Por lo tanto, ahora la segunda alternativa sí que es mejor que la primera. Con el mismo
planteamiento que antes no mejoraba la situación de partida ahora sí conseguimos una mejora. Tan
sólo ha sido necesario que el aumento del ciclo de reloj que se produce al hacer un diseño más
complejo del procesador sea algo menor.
Además, un 25% de las operaciones con la ALU utilizan operandos en registros, que no se
vuelven a utilizar. ¿Se mejorarían las prestaciones si, para sustituir ese 25% de
operaciones se añaden instrucciones con un dato en un registro y otro en memoria,
teniendo en cuenta que para ellas el valor de CPI es 4 y que ocasionarían un incremento
de un ciclo en el CPI de los las instrucciones BRANCH, pero que no afectan al ciclo de
reloj?
Solución
En primer lugar se calcula el tiempo de CPU para la situación inicial. Para ello, se tiene que:
y, por tanto:
Hay que contabilizar las 0.25 × 0.43 × NIINI nuevas instrucciones de operación
con la ALU que se introducen en el repertorio (y que sustituyen a las
operaciones con la ALU y operandos en registros).
INSTRUCCIÓ PROPORCIÓN CPI
N
ALU r-r (0.43 – 0.25 × 0.43) × 3
NIINI
LOAD (0.21 – 0.25 × 0.43) × 4
NIINI
ALU r-m 0.25 × 0.43 × NIINI 4
STORE 0.12 × NIINI 4
BRANCH 0.24 × NIINI 5
TOTAL 0.8925 × NIINI 3.908
Tabla 4. Número de apariciones y CPI de cada instrucción en el caso de añadir las nuevas
instrucciones de operación con la ALU.
Como resultado, al sumar todas las instrucciones que se tienen en la nueva situación, el número
total de instrucciones se reduce (lógicamente, ya que se han ahorrado instrucciones LOAD), siendo
igual a 0.8925 × NIINI.
Teniendo en cuenta la nueva distribución de instrucciones y sus nuevos CPI, se tiene que:
3 0.43 0.25 0.43 4 0.21 0.25 0.43 4 0.25 0.43 4 0.12 5 0.24
CPIALT 3.908
0.8925
Como se puede ver, en este caso, el tiempo de ejecución en el procesador modificado es menor, por
lo que se mejoran las prestaciones. Sin embargo, si el porcentaje de instrucciones sustituidas fuese
un 20% en lugar de un 25%, se puede ver que
CPIALT2 3.9302
y, por tanto:
Ahora, en cambio, la segunda opción no mejora la original. Como conclusión, se puede indicar que
una determinada decisión de diseño puede suponer una mejora en el rendimiento del computador
correspondiente según sean las características de las distribuciones de instrucciones en los
programas que constituyen la carga de trabajo característica del computador. Por tanto, queda
clara también la importancia que tiene el proceso de definición de conjuntos de benchmarks para
evaluar las prestaciones de los computadores, y las dificultades que pueden surgir para que los
fabricantes se pongan de acuerdo en aceptar un conjunto de benchmarks estándar.
y, por lo tanto
Teniendo en cuenta la nueva distribución de instrucciones y sus nuevos CPI, se tiene que:
Tabla 5. Número de apariciones y CPI de cada instrucción en el caso de añadir las nuevas
instrucciones de operación con la ALU.
TCPUALT CPIALT NIALT Tciclo 3.72 0.785 NIINI Tciclo 2.92 NIINI Tciclo
Como se puede ver, con el nuevo compilador se consigue una reducción de tiempo de ejecución (es
un 21% menor), pero sin embargo, el número de MIPS es menor. Se tiene aquí un claro ejemplo de
que los MIPS dan una información inversamente proporcional a las prestaciones. La razón de esta
situación, en este caso, es que se ha reducido el número de las instrucciones que tenían un menor
valor de CPI. Así, se incrementan las proporciones de las instrucciones más lentas en el segundo
caso (por eso crece el valor de CPI), y claro, el valor de los MIPS se reduce. No obstante, hay que
tener en cuenta que aunque las instrucciones que se ejecutan son más lentas, hay que ejecutar un
número mucho menor de instrucciones, y al final, el tiempo de ejecución se reduce.
NOTA: La familia de procesadores de esta empresa tiene una arquitectura de tipo LOAD/STORE
en las que las operaciones sólo utilizan como operandos registros de la CPU. Para un
conjunto de programas representativos de su actividad se tiene que el 25% de las
instrucciones son operaciones con la ALU (3 CPI), el 18% son operaciones con números en
coma flotante (8 CPI), el 21% son LOAD (4 CPI), el 12% son STORE (4 CPI) y el 24% son
BRANCH (4 CPI).
Solución
El primer paso será calcular el tiempo de ejecución promedio de los programas en la arquitectura
actual para luego ver cómo afecta cada una de las mejoras propuestas. La ecuación que determina
el tiempo de ejecución de un programa es la siguiente:
A partir de los CPI de cada tipo de instrucción determinamos el CPI medio como:
Con lo que el tiempo de ejecución promedio para los programas será de:
El primero de los proyectos propone reducir el CPI de las instrucciones en coma flotante a la mitad,
así que el CPI medio de los programas sería:
La segunda alternativa consiste en mejorar el compilador para que se reduzca el tamaño de los
programas un 10%, así que el tiempo promedio de ejecución sería ahora de:
Como vemos, la ganancia que se obtiene es similar con las dos alternativas, siendo sensiblemente
mejor la primera de ellas, pero además de las prestaciones obtenidas, un factor determinante en la
toma de decisiones es el coste que tendrá cada una de las mejoras. La relación prestaciones/coste
de la primera alternativa es de:
S1 1.192
R1 1.192 106
coste
1 1 106
S2 1.176
R2 2.352 106
coste
2 0.5 106
Como vemos, R2 es prácticamente el doble que R1, ya que el coste de la segunda alternativa es la
mitad que el de la primera. Por tanto, se debería escoger el segundo proyecto, ya que obtiene una
mejora en prestaciones similar a la del primero y cuesta solo la mitad.
b) ¿Es cierto que la cota para el incremento de velocidad que establece la ley de
Amdahl crece a medida que aumenta el valor del factor de mejora aplicado al
recurso?
Solución
Suponiendo que el tiempo medio de ejecución de los programas en el procesador sin la mejora es T,
y que por término medio hay una fracción f del tiempo de ejecución T en el que no se utiliza el
recurso mejorado, se tendrá que el tiempo de ejecución con la mejora es:
Tmejora f T
1 f T
p
Es decir el tiempo será mayor que la fracción de tiempo f × T en la que no se puede aplicar la
mejora más el tiempo (1 – f ) × T en el que se puede aplicar la mejora (que es igual a p), y que por
lo tanto se habrá reducido en un factor igual a esa mejora (es decir, p).
T T p p
S
Tmejora f T
1 f T p f 1 f 1 f p 1
p
Una vez que hemos deducido la ley de Amdahl, pasamos a contestar la primera de las cuestiones.
Como se puede ver a partir de la expresión de la ley de Amdahl, cuando p tiende a infinito, la cota
para la ganancia de la velocidad tiende a 1 / f. Por lo tanto, cuanto menor es la fracción de tiempo
en la que no se aprovecha la mejora realizada, mayor será el incremento de velocidad máximo que
se podría conseguir:
p 1
limS lim
p p 1 f p 1 f
Para contestar a la segunda cuestión, se calcula la derivada de S con respecto a p, para un valor de
f constante:
S 1 f
0
p 1 f p 1 2
Como la derivada es positiva (como f es menor o igual que 1 el numerador es positivo, y el
denominador es positivo) se tiene que al crecer p, crece el valor de de la ganancia, aunque ese
crecimiento es menor a medida que crece p (p está en el denominador y por tanto al crecer p la
derivada tiende a 0), y como se ha visto en la respuesta a la cuestión anterior tiende a 1 / f.
Solución
La primera alternativa que se nos propone es evaluar cuánto se mejoraría si se cambia el disco
duro del servidor. Atendiendo al enunciado, tendríamos un factor de mejora p1 = 1.6 y un
porcentaje de uso de tiempo de ejecución en el que se usa el disco duro del 50%, con lo que f1 (que
sería la fracción de tiempo en la que no se usa el recurso) será f1 = 0.5. Por tanto, el límite para la
ganancia que se puede obtener con esta mejora será:
p1 1.6
S1 1.23
1 f1 p1 1 1 0.5 1.6 1
Otra alternativa podría ser cambiar el procesador del servidor. En este caso, el factor de mejora
sería de p2 = 3 y el porcentaje de tiempo en el que no se usa el procesador sería f2 = 0.85. En este
caso, la mejora máxima estaría acotada por:
p2 3
S2 1.11
1 f2 p2 1 1 0.85 3 1
Teniendo en cuenta los resultados, se debería cambiar el disco duro del servidor.
10. Suponga que, en los programas que constituyen la carga de trabajo habitual de un
procesador, las operaciones de coma flotante consumen un promedio del 10% del tiempo
de ejecución de los programas y las de enteros un 20%. Las operaciones de coma flotante
se hacen en una unidad funcional con un retardo de 6 ciclos y las de enteros en otra
unidad con un retardo de 2 ciclos. ¿Qué es mejor reducir un ciclo el retardo de la unidad
de enteros o 4 ciclos el de la de coma flotante? ¿Cuál es la máxima ganancia de velocidad
que se puede obtener por mejoras en la unidad de enteros? ¿Y por mejoras en la de coma
flotante?
Solución
En el caso de que se mejore la unidad de ejecución de operaciones con enteros tenemos que:
2
Sent 1.1
1 0.8 2 1
Por el contrario, si se mejorara la unidad de coma flotante, se obtendría una ganancia de:
3
SFP 1.07
1 0.9 3 1
Con lo que, teniendo en cuenta las cargas de trabajo habituales ejecutadas, conviene más realizar
la mejora a la unidad de enteros.
Si la mejora que se realiza en las unidades de ejecución fuese máxima, es decir, p → ∞, la ganancia
máxima que se podría obtener sería:
1 1
Smaxent 1.25
fent 0.8
1 1
SmaxFP 1.11
fFP 0.9
11. Ha aparecido en el mercado una nueva versión de un procesador en la que la única mejora
con respecto a la versión anterior es una unidad de coma flotante mejorada que permite
reducir el tiempo de las instrucciones de coma flotante a tres cuartas partes del tiempo
que consumían antes. Si las instrucciones de coma flotante consumen un promedio del
13% del tiempo en los programas que constituyen la carga de trabajo habitual del
procesador antiguo:
Solución
Teniendo en cuenta que el tiempo de las instrucciones de coma flotante se reduce tres cuartas
partes y que el porcentaje de instrucciones de coma flotante es el 13%, podemos calcular la mejora
de velocidad p = 4/3 (la inversa de la reducción del tiempo), y f = 0.87 (fracción del tiempo original
en que no se aplica el recurso mejorado). Sustituyendo estos dos valores en la ecuación de la ley de
Amdahl podemos obtener la ganancia máxima que se podría alcanzar con el nuevo procesador:
p 43
S 1.034
1 f p 1 1 0.87 4 3 1
La ganancia máxima que se podría obtener debida a cambios en la unidad de coma flotante se
obtiene cuando la mejora del recurso tiende a infinito:
p 1 1
Smax lim 1.14
p 1 f p 1 f 0.87
Si quisiéramos alcanzar una ganancia máxima (cuando p → ∞) igual a 4, tendría que cambiar el
porcentaje de tiempo invertido en procesar operaciones en coma flotante de nuestros programas
(1 – f ). El valor de f se obtiene despejándola de la siguiente expresión:
1
Smax 4
f
De donde se obtiene que f = ¼ = 0.25, o lo que es lo mismo, que el porcentaje de tiempo invertido
en procesar instrucciones en coma flotante en el procesador original debería ser del 75% para que
se pudiera alcanzar una ganancia máxima de 4 debida a mejoras en la unidad de coma flotante.
Por último, si con el valor de f recién calculado se deseara obtener una ganancia máxima de 2 en
los programas, el factor de mejora que se debería aplicar a la unidad de coma flotante se obtendría
despejando p de la siguiente expresión:
Si, al utilizar el valor de f anterior se deseara obtener una mejora de velocidad de 2 en los
programas, la mejora de velocidad en las instrucciones de coma flotante (es decir p) se obtiene a
partir de la ley de Amdahl:
p
S 2
1 0.25 p 1
De donde se obtiene que p = 3, es decir, que el procesamiento de las instrucciones en cama flotante
la instrucción de coma flotante debería hacerse tres veces más rápido.
12. En un procesador no segmentado, que funciona a 300 MHz, hay un 20% de instrucciones
LOAD que necesitan 4 ciclos, un 10% de instrucciones STORE que necesitan 3 ciclos, un
25% de instrucciones con operaciones de enteros que necesitan 6 ciclos, un 15% de
instrucciones con operandos en coma flotante que necesitan 8 ciclos, y un 30% de
instrucciones de salto que necesitan 3 ciclos. Las operaciones con enteros se realizan en
una ALU con un retardo de 3 ciclos, y las de coma flotante en una unidad con un retardo
de 5 ciclos. Utilice la ley de Amdahl para determinar:
Solución
La ganancia en velocidad se obtiene como el cociente entre los tiempos de ejecución sin y con la
mejora, así que el primer paso que tomaremos para resolver este problema es calcular el tiempo de
ejecución promedio de los programas en el procesador propuesto en el enunciado. Este tiempo se
obtiene mediante la siguiente expresión:
donde NI indica el número de instrucciones del programa, CPI los ciclos promedio por instrucción y
Tciclo el tiempo de ciclo del reloj del procesador.
En el enunciado también nos piden que utilicemos la ley de Amdahl para obtener la ganancia
máxima, que viene dada por:
p
S
1 f p 1
Para obtener la máxima ganancia por la reducción del tiempo en las operaciones con enteros, la
mejora que se hace en la ALU debe ser máxima, es decir p , y por tanto, la ganancia se
obtendría como:
p 1
Smax lim
p 1 f p 1 f
Por tanto, lo único que nos queda es calcular el valor de f, es decir, el porcentaje de tiempo que no
se usa la ALU. Sabemos que la ALU se emplea en 3 de los 6 ciclos de las instrucciones ALU, dejando
los otros tres ciclos para el resto de las etapas del cauce, por tanto, la ALU se usará:
TALU 0.25
3 NI Tciclo 0.75 NI Tciclo
1 1
Smax limS 1.19
p f 0.84
En el segundo apartado se nos pide que se estime máxima ganancia por reducción del tiempo en
operaciones FP. Aunque se podría resolver este apartado de forma análoga al anterior, vamos a
resolverlo de otra forma para mostrar un par de formas diferentes de resolver este tipo de
problemas. Si la mejora en la unidad FP es máxima, las operaciones FP tardarían 0 ciclos, con lo
que las instrucciones FP tardarían sólo 3 ciclos, por tanto, la mejora obtenida en las instrucciones
FP sería de:
tiempo nesFPoriginal 3 5
instruccio
p 2.6
tiempo nesFPmejoradas3 0
instruccio
Una vez que tenemos la mejora, tenemos que calcular f, es decir, la fracción de tiempo original en
que no se ejecutan instrucciones FP. El tiempo original de las instrucciones FP era de:
Solución
El tiempo de CPU en el procesador original se obtiene a partir de la expresión:
TCPUORIG (0.2 4 0.15 3 0.4 6 0.25 3) NI Tciclo 4.4 NI Tciclo
Con la mejora, el tiempo de las instrucciones de operación con la ALU pasa a ser igual a 4.5 ciclos
en lugar de 6 ya que los tres ciclos que se necesitaban para hacer la operación en la ALU se
reducen a la mitad (1.5 ciclos). Por tanto, el tiempo de CPU con la mejora es
TCPUMEJ (0.2 4 0.15 3 0.4 4.5 0.25 3) NI Tciclo 3.8 NI Tciclo
y la ganancia de velocidad:
Para determinar el porcentaje de instrucciones de ALU a partir del que se obtiene una ganancia
igual a 1.5 hacemos uso de la ley de Amdahl. El factor de mejora que se obtiene en el
procesamiento de instrucciones que usan la ALU es de:
ciclos
usados ciclos
porla ALUoriginal usados delasetapas 3 3
porel resto
p 1.33
ciclos
usados
porla ALUmejorada ciclos
usados delasetapas 3 3
porel resto
2
p 1.33
S 1.5
1 f p 1 1 f 1.33 1
Como se obtiene un valor de f ≤ – 0.34, y por definición debería estar acotado entre 0 y 1,
concluimos que es imposible conseguir la ganancia de 1.5 con la mejora que nos indican en el
enunciado.
NOTA: Suponga que N = 108, que a es un array de números en coma flotante, y que b es otro
número en coma flotante.
Solución
Para obtener los GFLOPS hay que tener en cuenta el número de operaciones en coma flotante que
se realizan (2, es decir una suma y un producto) en cada iteración y multiplicarlas por el número de
iteraciones (108). Puesto que se tardan 0.25 segundos en ejecutarlas se tiene que:
Número
deinstrucci
onesFP 2 108
GFLOPS 0.8
TCPU 109 0.25 109
Para ver el tipo de procesador a partir del valor del CPI hay que determinar primero el valor de
CPI. En la expresión
CPI NI
TCPU CPI NI Tciclo
F
conocemos que TCPU = 0.25 segundos, que F = 2 GHz, y que NI = 5 + 8 × 108, por tanto, despejando
se tiene que
No hace falta hacer los cálculos para comprobar que CPI es menor que 1 y, por lo tanto, el
procesador termina más de una instrucción por ciclo (IPC = 1 / CPI). Según esto, el procesador
puede ser un procesador superescalar o VLIW.
NOTA: Suponga que N = 108, que a es un array de números en coma flotante, y que b es otro
número en coma flotante.
Solución
Para calcular el número de GFLOPS necesarios sólo hay que dividir el número de operaciones en
coma flotante entre el tiempo:
Número
deinstrucci
onesFP 3 108
GFLOPS 1.2
TCPU 109 0.25 109
Como nos dicen en el enunciado, de los 0.25 segundos que tarda el programa, el 30% del tiempo se
emplea en esperar a que se resuelvan riesgos de datos, estructurales, etc., por lo que realmente el
programa está ejecutándose sólo el 70% de este tiempo. Por tanto, si el procesador funciona a una
frecuencia de 2 GHz, el número de ciclos necesarios para completar el programa es:
Una vez que hemos calculado el número de ciclos que invierte el procesador en ejecutar el
programa, podemos obtener el número de instrucciones que el procesador debe ejecutar por ciclo:
NI 7 108
IPC 2
Nciclosdeejecución 3.5 108
Para calcular la ganancia máxima que se podría alcanzar si se ejecutaran tres instrucciones por
ciclo en vez de dos utilizaremos la ley de Amdahl. Para ello debemos obtener los valores de los
parámetros p y f. El factor de mejora p se calcula como:
3
p 1.5
2
El porcentaje de tiempo que no se usa la mejora es justo el porcentaje de tiempo que no se usa el
procesador, que como nos dicen en el enunciado es el 30% del tiempo, tenemos que f = 0.3. Una
vez determinados estos parámetros, la ganancia máxima se estime mediante:
p 1.5
S 1.3
1 f p 1 1 0.3 1.5 1
Por último, se nos propone otra posible mejora, que consiste en dejar el procesador tal y como está
y optimizar el código para que esté ocioso sólo el 20% del tiempo en vez del 30%. En este caso, la
ganancia en velocidad se obtendría como:
Toriginal 70 30
S2 1.11
Toptimizado 70 20
Una vez estimada la ganancia, como S > S2, podemos concluir que nos interesa más la mejora
propuesta en primer lugar.