Performance enhancement of a computer/microprocessor largely depends on the application it is running.
Different applications demand different optimizations (w.r.t FP,I/O) for optimal performance.
- Execution Time/Response Time
- Throughput - Jobs/Second
- Throughput = 1/Response Time(if no overlap).
- Use arithmetic mean for time, harmonic mean for averaging rates and Geometric mean for averaging ratios.
- Components of Performance
- Time to execute the program = No. of instructions*Time to execute each inst.
- Time to execute each inst = (CPI-Cycles per inst) * Seconds per cycle
- Performance Measurement
- Iron Law
- Time/Program = instrs/program * cycles/inst * secs/cycle
- We can use this law to compare performances of two machines.
- M1/M2 = I1/I2 * C1/C2* s1/s2
- Execution Time, when compared to MIPS (million of instructions per second) or MFLOPS (millions of floating point operations per second), is a good metric of a machine's performance.
- Execution Time=Inst Time * C.P.I * CYCLE TIME
- Instruction Count is essentially number of instructions executed by machine for a program. Typically it is different from the number of instructions in the program (static instruction count) as (i) not all instructions may be executed (due to control structures) and (ii) the instructions in a loop may be executed many times.
- C.P.I(cycles per instruction )is estimated using the frequency or percentage of occurrence of various types of instructions in our programs.