Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Computer Science Articles
Page 32 of 53
What are the basic tasks during recovery from a misprediction in computer architecture?
There are two basic tasks to be implemented the discard the results of the speculative execution and resume execution of the alternative, that is, the true path as shown in the figure.When there is higher than one pending conditional branch, the corresponding alternative path should be chosen and followed. In recovery from a mispredicted taken path, as preparation for a possible recovery from a misprediction, the processor has to store the address of the sequential preservation, before it initiates execution of the guessed taken path. The recovery phase can be minimized if previously prefetched sequential instructions are not discarded but ...
Read MoreWhat is speculative execution in computer architecture?
A processor extends to execute instructions speculatively until the condition is resolved. The time interval between the beginning of the conditional execution and the resolution of the equivalent condition can change significantly. The condition is resolved the immediately following cycle.This appears when the specified condition defines the result of a simple operation, including integer addition, subtraction, or logical operation. In the case of long operations, including FX or FP division, multiple cycles will pass earlier the condition can be resolved.The superscalar processor can issue several instructions in each cycle. Thus, during speculative execution scores of instructions are executed before the ...
Read MoreImplementation of the concept of History Bits
History bits are used to record branch history. Processors employ one of the four different schemes to implement history bits as shown in the figure. In the most straightforward scheme history bits are placed in the I-cache.For instance, the α processors provide one (21064) or two (21064A) history bits in the I-cache for each instruction. In contrast, the UltraSparc maintains only two 2-bit entries for each cache line, which contains four instructions. The Sparc architecture maintains delay slots, thus not more than two branches (and two delay slots) can occur in four subsequent instructions.In the PowerPC 604, there is a ...
Read MoreWhat are the types of Dynamic Branch Prediction?
There are two different approaches for expressing the history of branches as shown in the figure. In the explicit dynamic technique, branch history is explicitly stated in the form of history bits. The actual implementation of this technique using one, two, or three bits for expressing the history. The second approach is the implicit dynamic technique, in which branch history is implicitly stated by the existence of an entry for a predicted branch target access path.1-bit dynamic prediction − This is the simplest dynamic technique. In a 1-bit prediction, a single bit per branch can define whether the final occurrence ...
Read MoreWhat is Static Prediction?
In a static prediction technique, the branch is ‘always taken’ or the branch is ‘always not-taken’ approaches. It can make static predictions by investigating particular attributes of the object code. In actual implementation, static predictions are either opcode-based, displacement-based, or based on a hint delivered by the compiler, as shown in the figure.Opcode-based predictions are made by assuming that the branch will be ‘taken’ for certain opcodes and ‘not taken’ for others. This prediction technique is used, for instance, in the MC 88110 and PowerPC 601/603 processors. As shown in the table, shows how opcode-based prediction is accomplished in the ...
Read MoreWhat is Fixed Prediction?
In a fixed prediction a similar guess is continually made, either ‘always taken’ or ‘always not-taken’ approaches.‘Always not-taken approach’ − The ‘always not taken’ approach (or ‘not taken’ approach for short) has the following typical processing scheme are as follows −It can detect an unresolved conditional branch and guess it as not taken’.It can continue with the execution of the sequential path, but in preparation for a wrong guess, start the execution of the taken path (for example, calculate BTA) in parallel.When the condition becomes evaluable, check the guess.If the guess is correct, continue with the execution of the sequential ...
Read MoreWhat are the schemes of Branch prediction?
The branch prediction scheme used in a processor has a central impact on its execution. Therefore, some effort has been placed into promoting an effective scheme.A prediction can be a fixed or a true prediction. In a fixed prediction the same guess is continually made, either ‘taken’ or ‘not-taken’. This is a one outcome guess. The ‘always not taken’ approach prefers the ‘not taken’ path, so the taken penalty (TP) is typically higher than the not-taken penalty (NTP).The ‘not-taken’ scheme is easier to implement than the ‘taken’ scheme. A large number of pipelined microprocessors employ this scheme, including certain earlier ...
Read MoreHow to handle unresolved conditional branch processing policies in computer architecture?
A conditional branch cannot be computed earlier than the referenced conditional is known. For instance, if the specified condition defines the sign of the outcome of the previous instruction, the precondition of the computation is that the previous instruction has been performed.Until the referenced condition will become known, the conditional branch is stated to unresolved. There are three basic elements utilized by processors to cope with unresolved conditional branches such as blocking branch processing, speculative execution, and multiway branching, as shown in the figure −Blocking branch processing is the trivial element to cope with unresolved conditional branches. Execution of the ...
Read MoreWhat is design space of Branch processing in computer architecture?
Branch processing has two methods, such as the layout of branch processing and its microarchitectural implementation of branch processing, as shown in the figure. Branch processing consists of three major subtasks such as the detecting branches, handling unresolved conditional branches, and accessing the branch target path.The first aspect is branch detection. Initially, processors detected branches during instruction decoding. However, the earlier a processor identifies branches, the previous branch processing can be initiated and the less penalties there are. Thus, novel schemes try to encounter branches as early as possible.The most advanced technique of branch detection prevents explicit decoding. Instead, branch ...
Read MoreWhat is design space of delayed branching?
There are two possible ways of extending the basic concepts such as increasing the multiplicity of delay slots or introduce annulment of instruction in the delay slot. Most architecture provides one delay slot only. Few architectures are offering multiple delay slots, such as the MIPS-X.The other possibility to fill more delay slots is to introduce annulment (also called nullification or squashing). The basic idea is to introduce options in using delay slots, which can permit more delay slots to be filled than in the case of the basic scheme. Four different types of annulment can be introduced. The four variants ...
Read More