Page 77 -
P. 77
52 CHAPTER 2 / COMPUTER EVOLUTION AND PERFORMANCE
Table 2.9 Performance Factors and System Attributes
p m k T
I c
Instruction set architecture X X
Compiler technology X X X
Processor implementation X X
Cache and memory hierarchy X X
The processor time T needed to execute a given program can be expressed as
T = I * CPI * t
c
We can refine this formulation by recognizing that during the execution of an
instruction, part of the work is done by the processor, and part of the time a word is
being transferred to or from memory. In this latter case, the time to transfer depends
on the memory cycle time, which may be greater than the processor cycle time. We
can rewrite the preceding equation as
T = I * 3p + (m * k)4 * t
c
where p is the number of processor cycles needed to decode and execute the instruc-
tion, m is the number of memory references needed, and k is the ratio between mem-
ory cycle time and processor cycle time.The five performance factors in the preceding
equation (I , p, m, k, ) are influenced by four system attributes: the design of the in-t
c
struction set (known as instruction set architecture), compiler technology (how effec-
tive the compiler is in producing an efficient machine language program from a
high-level language program), processor implementation, and cache and memory hi-
erarchy. Table 2.9, based on [HWAN93], is a matrix in which one dimension shows the
five performance factors and the other dimension shows the four system attributes.
An X in a cell indicates a system attribute that affects a performance factor.
A common measure of performance for a processor is the rate at which in-
structions are executed, expressed as millions of instructions per second (MIPS), re-
ferred to as the MIPS rate. We can express the MIPS rate in terms of the clock rate
and CPI as follows:
f
I c
MIPS rate = = (2.2)
T * 10 6 CPI * 10 6
For example, consider the execution of a program which results in the execu-
tion of 2 million instructions on a 400-MHz processor.The program consists of four
major types of instructions. The instruction mix and the CPI for each instruction
type are given below based on the result of a program trace experiment:
Instruction Type CPI Instruction Mix
Arithmetic and logic 1 60%
Load/store with cache hit 2 18%
Branch 4 12%
Memory reference with cache miss 8 10%