Waiting for answer This question has not been answered yet. You can hire a professional tutor to get the answer.
Write 6 pages thesis on the topic branch prediction. Branch prediction is basically an optimization issue where the emphasis is on attaining minimum miss rate, minimum power consumption and little com
Write 6 pages thesis on the topic branch prediction. Branch prediction is basically an optimization issue where the emphasis is on attaining minimum miss rate, minimum power consumption and little complexity with the least possible resources. The normal way of fetching and execution of instructions can be interrupted by branches that alter the usual flow of control in programs.
The necessity for branch prediction develops from the utilization of the pipelining technique in modern microarchitectures. The aim of pipelining is to make the most use of all hardware resources of a processor at once. Therefore it becomes necessary to make it certain that each phase of the pipeline holds an instruction. If there are no alterations in the program control flow, instructions are fetched, decoded and executed quickly, nevertheless branches can occur breaking the sequence of events (Null and Lobur 17-18).
The designers of microprocessors try to predict the direction which a branch takes in the effort of reducing wasted cycles as a result of flushing where many cycles of execution time are wasted. If prediction produces false results (misprediction), then the pipeline requires flushing and the right instruction is fetched into the pipeline.
It is important for one to distinguish Dynamic Branch Prediction, from Static Branch Prediction. Static Branch Prediction is a branch prediction that utilizes the information collected prior to the execution of a program. The predictors serve the purpose of predicting whether the branch is always taken or not taken. Also, the branch direction can be predicted by running the program with a profiler that uses hint bit in the branch opcode as the indicator (Stokes 86).
It is not difficult to predict static branches as the compilers covers for such branches. On the other hand, compilers find it hard to predict the outcome for dynamic branches. As a result, it becomes necessary to adopt a prediction mechanism for these dynamic branches.