Está en la página 1de 2

𝑐𝑖𝑐𝑙𝑜𝑠

𝐶𝑃𝐼𝑝𝑟𝑜𝑔𝑟𝑎𝑚𝑎 = 2.7 [ ]
𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑐𝑖𝑜𝑛

En lo anterior quiere decir que en 2.7 ciclos encontrare 1 instrucción (puede ser de
cualquiera de las operaciones Mul, ALU,Load,Store,Branch) pero solo habrá 1 instrucción.

Después preguntan, ¿Cuántos ciclos se deben cumplir para que encuentre 100
instrucciones?
Con #𝑖𝑛𝑠𝑡𝑝 = 100 𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑐𝑖𝑜𝑛

Los ciclos donde se cumplen las 100 instrucciones son:


𝑐𝑖𝑐𝑙𝑜𝑠
#𝑐𝑖𝑐𝑙𝑜𝑠𝑝𝑟𝑜𝑔𝑟𝑎𝑚𝑎 = #𝑖𝑛𝑠𝑡𝑝 ∗ 𝐶𝑃𝐼𝑝𝑟𝑜𝑔𝑟𝑎𝑚𝑎 = 100 ∗ 2.7 ∗ [𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑐𝑖𝑜𝑛] ∗ [ ]
𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑐𝑖𝑜𝑛
#𝑐𝑖𝑐𝑙𝑜𝑠𝑝𝑟𝑜𝑔𝑟𝑎𝑚𝑎 = 270 𝑐𝑖𝑐𝑙𝑜𝑠

¿Cuantas instrucciones corresponden por operación (Mul,ALU,…,etc)?

Se debe considerar la frecuencia de cada operación dadas en %:

Las 100 instrucciones se deben repartir entre todas las operaciones de acuerdo a su
frecuencia (grafico de torta):

#𝑖𝑛𝑠𝑡𝑟𝑀𝑢𝑙𝑡𝑖𝑝𝑙𝑦 = 0.3 ∗ 100 = 30 𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑐𝑖𝑜𝑛


#𝑖𝑛𝑠𝑡𝑟𝐴𝐿𝑈 = 0.2 ∗ 100 = 20 𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑐𝑖𝑜𝑛
#𝑖𝑛𝑠𝑡𝑟𝐿𝑜𝑎𝑑 = 0.2 ∗ 100 = 20 𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑐𝑖𝑜𝑛
#𝑖𝑛𝑠𝑡𝑟𝑠𝑡𝑜𝑟𝑒 = 0.1 ∗ 100 = 10 𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑐𝑖𝑜𝑛
#𝑖𝑛𝑠𝑡𝑟𝑏𝑟𝑎𝑛𝑐ℎ = 0.2 ∗ 100 = 20 𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑐𝑖𝑜𝑛

Se sabe que cada instrucción se realiza en una cantidad de ciclos, entonces las
instrucciones de cada operación se realizan en los ciclos:

#𝑐𝑖𝑐𝑙𝑜𝑖 = #𝑖𝑛𝑠𝑡𝑖 ∗ 𝐶𝑃𝐼𝑖


Con 𝑖: 𝑛𝑜𝑚𝑏𝑟𝑒 𝑑𝑒 𝑐𝑎𝑑𝑎 𝑜𝑝𝑒𝑟𝑎𝑐𝑖𝑜𝑛

#𝑐𝑖𝑐𝑙𝑜𝑀𝑢𝑙𝑡𝑖𝑝𝑙𝑦 = #𝑖𝑛𝑠𝑡𝑀𝑢𝑙𝑡𝑖𝑝𝑙𝑦 ∗ 𝐶𝑃𝐼𝑀𝑢𝑙𝑡𝑖𝑝𝑙𝑦 = 30 ∗ 5 = 150 𝑐𝑖𝑐𝑙𝑜𝑠


#𝑐𝑖𝑐𝑙𝑜𝐴𝐿𝑈 = #𝑖𝑛𝑠𝑡𝐴𝐿𝑈 ∗ 𝐶𝑃𝐼𝐴𝐿𝑈 = 20 𝑐𝑖𝑐𝑙𝑜𝑠
#𝑐𝑖𝑐𝑙𝑜𝑙𝑜𝑎𝑑 = #𝑖𝑛𝑠𝑡𝑙𝑜𝑎𝑑 ∗ 𝐶𝑃𝐼𝑙𝑜𝑎𝑑 = 40 𝑐𝑖𝑐𝑙𝑜𝑠
#𝑐𝑖𝑐𝑙𝑜𝑠𝑡𝑜𝑟𝑒 = #𝑖𝑛𝑠𝑡𝑠𝑡𝑜𝑟𝑒 ∗ 𝐶𝑃𝐼𝑠𝑡𝑜𝑟𝑒 = 20 𝑐𝑖𝑐𝑙𝑜𝑠
#𝑐𝑖𝑐𝑙𝑜𝑏𝑟𝑎𝑛𝑐ℎ = #𝑖𝑛𝑠𝑡𝑏𝑟𝑎𝑛𝑐ℎ ∗ 𝐶𝑃𝐼𝑏𝑟𝑎𝑛𝑐ℎ = 40 𝑐𝑖𝑐𝑙𝑜𝑠

Para sacar los porcentajes se toma como referencia los 270 ciclos del programa que
equivalen a un 100%, entonces el porcentaje de cada operación es:

100
%𝑐𝑖𝑐𝑙𝑜𝑖 = #𝑐𝑖𝑐𝑙𝑜𝑖 ∗
270
100
%𝑐𝑖𝑐𝑙𝑜𝑀𝑢𝑙 = #𝑐𝑖𝑐𝑙𝑜𝑀𝑢𝑙 = 56%
270
100
%𝑐𝑖𝑐𝑙𝑜𝐴𝐿𝑈 = #𝑐𝑖𝑐𝑙𝑜𝐴𝐿𝑈 = 7%
270
100
%𝑐𝑖𝑐𝑙𝑜𝑙𝑜𝑎𝑑 = #𝑐𝑖𝑐𝑙𝑜𝑙𝑜𝑎𝑑 = 15%
270
100
%𝑐𝑖𝑐𝑙𝑜𝑠𝑡𝑜𝑟𝑒 = #𝑐𝑖𝑐𝑙𝑜𝑠𝑡𝑜𝑟𝑒 = 7%
270
100
%𝑐𝑖𝑐𝑙𝑜𝑏𝑟𝑎𝑛𝑐ℎ = #𝑐𝑖𝑐𝑙𝑜𝑏𝑟𝑎𝑛𝑐ℎ = 15%
270

También podría gustarte