Instruction – Level Parallelism (ILP) in easy language.
Hey, this article will help you in understanding the basics of ILP or Instruction Level Parallelism.
Well for the first time it would seem too complex. But, I can say that at the end of this article you will be able to understand the ILP. Easy words can illustrate complex things very easily, that’s why this article would help you a lot in understanding the basics of ILP.
If you were searching about ILP and you’re here, then I can definitely say that you have a decent knowledge of computers and it’s architecture.
If not then don’t worry there is not rocket science.
Nontechies can also understand easily.
Now, come to the point, well we all know that a computer is an electronic device, that processes the input to give some output. Nowadays computer is used almost everywhere like home, offices, schools, colleges, railway stations, banks, etc.
The working of a machine is directly connected to the design or architecture of the machine. Suppose, you are making a machine for some kind of job, but you are not caring about the heat generated and the cooling of the heat cause. Then the overall efficiency of the machine would affect.
This is a small example, but there are a lot of factors that work behind the architecture of the machine. Machines are not always designed for a good look.
Okay, do you think why we are discussing computer architecture? Cause the ILP is related to computer architecture.
Computer architecture plays a very important role in designing a new computer. The computer designer has to design a computer with high efficiency, the cost of the design should not be more, the cooling of the system should be proper so the efficiency will be good. The components should be placed at the proper location for the proper cooling.
Maybe the word computer architecture sounds simple, but it is not as simple as it sounds.
Let’s move on to the Instruction – level Parallelism aka ILP.
Instruction – Level Parallelism is the measurement of the number of instructions that run simultaneously. The processors are using pipelining since 1985 to achieve the overlapping of the instructions and improve the performance.
In an automobile assembly line, different parts of a car are manufactured together and then assembled at the end. Whereas in the case of computer pipelining the instruction is divided into different parts and all the divided parts are executed in parallel. Pipelining is the major technology used to make CPUs faster.
There are two large separate approaches for Instruction Level Parallelism: Hardware and Software. The hardware approach works on the dynamic parallelism and the software approach works on static parallelism.
Intel Pentium series processors are based on dynamic parallelism while Intel Itanium series are based on static parallelism.
Come and illustrate with these three equations :
X = a+b … I
Y = c+d … II
Z = X*Y … III
For convenience, the equations are named as I, II & III. Suppose, these equations are the three parts of an instruction. For fast execution, the processor divides the instruction into different parts and processes the different parts simultaneously. This process occurs so fast that we don’t realize it and we get the output as we give input.
Since the above equations are the three parts of instruction, it’s clear that the third part is dependent on the equations I & II.
The first and second parts can be run simultaneously, but regardless of whatever the processor speed, The third part cannot be run in parallel.
Suppose that a unit of time is required for the execution of a part of an instruction, then the ILP for the given set of instructions is 3/2.
The ILP is basically used in designing the compilers and processors to get high efficiency. However, the value of ILP may vary from a lower value to higher value, and it depends upon the type of work. Like in the case of graphics execution the value may be high while in the case of cryptography the value may be low.