In order to provide increased branch prediction
accuracy with low area and power overheads, in this paper we propose a novel adaptive learning machine-based shadow dynamic finite state machine (SDFSM).
All these proposals rely on the use of confidence estimation, a mechanism that assesses the quality of branch predictions
by means of estimating the probability of a dynamic branch prediction
to be correct or incorrect.
In addition, productivity applications include code which is not especially ordered or predictable, which will necessarily limit gains in the chip's branch prediction
mechanisms, mechanisms that rely on predictable code to increase performance.
Baseline Configuration of Simulated Processor: Branch Prediction
The most successful application of branch correlation has been in dynamic branch prediction
, where architects have built predictors that remember patterns in the stream of branch executions [McFarling 1993; Pan et al.
The idea of using prediction in computer architecture is not new; it has already found important application in branch prediction
and speculative execution in general.
According to Intel, dynamic execution is composed of three parts: multiple branch prediction
, data flow analysis, and speculative execution, which work together to manipulate data rather than to simply process a list of instructions.
The CPU's 64KB of L1 (32KB instructions, 32KB data) ensure a high hit rate and keep branch prediction
stalls to a minimum.
Precise branch prediction
is required to overcome this performance limitation imposed on high performance architecture and is the key to many techniques for enhancing and exploiting Instruction-Level Parallelism (ILP).
Other themes are coherence, applying compilers and debugging support, chip multiprocessor memory hierarchies, runahead and branch prediction
, inconnection networks, and load and store queues.
A dynamic branch prediction
circuit eliminates idle cycles during execution of change-of-flow instructions to accelerate new and existing StarCore programs by an average of 10 percent.
We statically partition the conditional branch prediction
tables by half and provide two independent units supporting a prediction rate of two conditional branches per cycle (one per cluster).
This technique involves the introduction of a branch prediction
mechanism [Smith 1981; Yeh and Patt 1991; 1992; 1993] and a means for allowing the processor to continue executing control-dependent instructions before resolving the branch outcome.
The name program-based branch prediction
is given to static branch prediction
techniques that base their prediction on a program's structure.
Additionally, this representation is used by the compiler to perform target-specific transformations, including register allocation, instruction scheduling, and branch prediction