Question :
Suppose that you enhance an architecture by replacing its floating-point divider with a new hardware divider on which division is 15 times faster.
For your application code running on the original hardware, 2% of the execution time is spent on division.
(a) What is the overall speed-up for the program?
(b) What is the biggest (theoretical) speed-up that could be obtained by speeding up division?
(c) For your application code, what percentage of the execution time is spent on division on the new hardware?
(d) When making changes to optimize part of a processor, it is often the case that speeding up one type of instruction comes at the cost of slowing down something else.
Suppose that the design team discovers that the new divider, which is more complicated than the old one, is so much physically larger than the old one that the data cache must be placed farther away; data cache accesses are now 1 .2 times slower than before.
On the original architecture, the program spends 15% of its time doing data cache accesses. Now, what is the overall speed-up for the program?