Wednesday, 21 November 2012

Assessing System Performance

System/Application performance depends not just on the raw speed of the processor,but on the instruction set, choice of implementation language, efficiency of the compiler, and skill of the programming done to implement the application. 

System Clock plays most important role in measuring system performance. Operations such as fetching instructions, decoding it, performing arithmetic operations and so on are governed by system clock. At most primitive level speed of clock is dictated by frequency pulse produced by clock. Clock pulse is measured in cycles per second or Hertz (Hz). 1 GHz processor means processor receives 1 billion instructions per second. This is called as clock rate or clock pulse.
The execution of an instruction involves a number of discrete steps, such as fetching the instruction from memory, decoding the various portions of the instruction, loading and storing data, and performing arithmetic and logical operations. Thus, most instructions on most processors require multiple clock cycles to complete. Some instructions may take only a few cycles, while others require dozens. In addition, when pipelining is used, multiple instructions are being executed simultaneously.Thus, a straight comparison of clock speeds on different processors does not tell the whole story about performance.
A processor is driven by a clock at constant execution rate at frequency f  or time τ = 1/f .The instruction count, Ic, for a program is the number of machine instructions executed for that program until it runs to completion or for some defined time interval.

Hence, The processor time T needed to execute a given program can be expressed as 

T = Ic* CPI * τ
Here, CPI is clock cycle per instructions. If all instructions required the same number of clock
cycles, then CPI would be a constant value for a processor. However, on any give processor, the number of clock cycles required varies for different types of instructions, such as load, store, branch, and so on. Let CPIi be the number of cycles required for instruction type i. and Ii be the number of executed instructions of type i for a given program. Then we can calculate an overall CPI as follows:
            
           SUM(CPIi * Ii)
CPI = ----------------------
               Ic
We can refine the 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 equal to the processor cycle time. We can rewrite the preceding equation as 


T = Ic * [ p + (m * k)] * t

where p is the number of processor cycles needed to decode and execute the instruction, m is the number of memory references needed, and k is the ratio between memory cycle time and processor cycle time.


The five performance factors in the preceding equation (Ic, p, m, k, τ) are influenced by four system attributes:
1. The design of the instruction set (known as instruction set architecture), 
2. Compiler technology (how effective the compiler is in producing an efficient machine language program from a high-level language program), 
3. Processor implementation, and 
4. Cache and memory hierarchy.

A common measure of performance for a processor is the rate at which instructions are executed, expressed as millions of instructions per second (MIPS), referred to as the MIPS rate. We can express the MIPS rate in terms of the clock rate 

f
__________

CPI * 10^6








0 comments

 
© 2011-2012 ProgrammingBlue
Posts RSS Comments RSS
Back to top