35.9k views
5 votes
Assume a program requires the execution of 120 x 10^6 FP instructions, 80 x 10^6 INT instructions, 100x 10^6 Load/Store (L/S) instructions and 20 x 10^6 branch instructions. The CPI for each type of instruction is 1, 1, 4 and 2, respectively. Assume that the processor has a 2 GHz clock rate.By how much must we improve the CPI of L/S instructions if we want the program to run two times faster?

User KillaKem
by
7.4k points

1 Answer

4 votes
First, let's calculate the total number of clock cycles required to execute the program using the given CPI values:

Total FP cycles = 120 x 10^6 x 1 = 120 x 10^6
Total INT cycles = 80 x 10^6 x 1 = 80 x 10^6
Total L/S cycles = 100 x 10^6 x 4 = 400 x 10^6
Total branch cycles = 20 x 10^6 x 2 = 40 x 10^6

Total cycles = Total FP cycles + Total INT cycles + Total L/S cycles + Total branch cycles
= 120 x 10^6 + 80 x 10^6 + 400 x 10^6 + 40 x 10^6
= 640 x 10^6

Next, let's calculate the current execution time of the program:

Execution time = Total cycles / Clock rate
= 640 x 10^6 / (2 x 10^9)
= 0.32 seconds

To make the program run two times faster, we need to reduce the execution time to 0.16 seconds. We can achieve this by reducing the CPI of Load/Store instructions. Let x be the new CPI of L/S instructions that we need to achieve the target execution time.

New total cycles = Total FP cycles + Total INT cycles + Total L/S cycles with new CPI + Total branch cycles
= 120 x 10^6 + 80 x 10^6 + 100 x 10^6 x x + 20 x 10^6 x 2

We want the new execution time to be half of the original execution time:

New execution time = New total cycles / Clock rate = 0.16 seconds

Substituting the values, we get:

0.16 seconds = (120 x 10^6 + 80 x 10^6 + 100 x 10^6 x x + 20 x 10^6 x 2) / (2 x 10^9)

Simplifying the equation:

0.16 x 2 x 10^9 = 120 x 10^6 + 80 x 10^6 + 100 x 10^6 x x + 40 x 10^6

320 = 100 x 10^6 x x

x = 3.2

Therefore, the CPI of Load/Store instructions must be improved from 4 to 3.2 in order to make the program run two times faster.

User Bamblack
by
8.5k points