Search code examples
performanceassemblycpucomputer-sciencecpu-architecture

Instruction Completion Rate Vs. Instruction Throughput Vs. Instructions Per Clock


From what I understand:

ICR (Instruction Completion Rate): Is (# of instructions / time)

Instruction Throughput: Is usually an average of the number of instructions completed each clock cycle.

IPC (Instructions Per Clock): Is how many instructions are being completing each clock cycle. (Maybe this is usually an average?)

I'm confused on these definitions, I'm definitely looking for clarification. They might even be wrong, I've been having a tough time finding clear definitions of them.

  • How does the instruction completion rate affect overall performance of the processor?

  • How is Instruction Throughput affected compared to IPC?


Solution

  • Instruction throughput is typically used with respect to a specific type of instruction and is meant to provide instruction scheduling information in the context of structural hazards. For example, one might say "this fully pipelined multiplier has a latency of three cycles and an instruction throughput of one". Repeat rate is the inverse of throughput.

    IPC describes performance per cycle, while your definition of instruction completion rate describes performance directly (independent of clock frequency).

    (Of course, the performance value of "instruction" depends on the instruction set, the compiler, and the application — all of which influence the number of (and types of) instructions executed to complete a task. In addition, the relative performance of different instructions can depend on the hardware implementation; this can, in turn, drive compilation changes and sometimes application programming changes and even ISA changes.)