Microprocessor History, Part 3
Posted: 2006-05-28
Author: Roy Davis
Manufacturer: N/A
Source:
Geeks.com
5. Prefetch to Get Ahead of the Game
In many ways, the Intel 286 microprocessor was a break from the origins of a minimal CPU on a chip and led the way toward modern mainframe architectures. In 1982, the 286 introduced instruction prefetching to the PC. There is now a little buffer memory between the memory bus and the CPU. The memory bus would deliver instructions to the prefetch queue and if the CPU got bogged down with a complex instruction, the next instructions would just stack up in the prefetch queue. When the CPU ran into a string of simple instructions, it would draw down the prefetch queue. Either way both the memory bus and the CPU would run at full speed and not be held up by the other.
6. Pipelining Breaks the Logjam
It wasn’t until 1989 when Intel brought out the 486 that PCs had a better way to deal with the memory bus bottleneck. The 486 had a pipeline. Can’t you just hear the surf guitars? Sorry-back to the microprocessors.
The concept was simple: take the systemic process and break it up into very small pieces so each step has to do only very simple tasks. By making more steps in the pipeline, the tasks are extremely simple and even complex instructions can be broken down and executed as quickly as simple ones.
[chitika]
7. Branch Prediction
As long as the program runs along in a linear fashion, incrementing the instruction address, the pipeline is hunky-dory. What happens when it runs into a branch instruction? The next instruction address will depend on the outcome of the execution of the instruction. How will the pipeline know which instruction to fetch next?
Most program branches are part of a loop, a section of code that repeats itself until a condition is met and then the program continues outside the loop. If a programmer takes the time to put in a loop, chances are it’s going to continue in the loop for several iterations. So, if the pipeline predicts that the program flow will continue in the loop, it can fetch the next instruction in the loop.
If the branch prediction turns out to be wrong, the pipeline has to be flushed and part of the production line held up until the right instruction works its way down the pipeline. Unlike the real world, these predictions are right the majority of the time, and thus a performance increase is realized.
8. Super Scalar
If you have a pipeline with ten steps, then you can have ten instructions in the pipeline at once. If each step takes one clock cycle to complete, then you have a scalar CPU. If you double the clock speed, you get twice as many instructions executed.
Some microprocessors have an amazing number of steps in their pipeline. Some Pentium 4s have 31 steps. By breaking each instruction down into such small steps, it becomes possible to operate on some pieces of the instruction in parallel. In fact, they have gotten so good at it that some of the pieces can actually be processed out of order. As the parallelism goes up, so does the speed.
This CPU usually has more than 31 instructions in the pipeline because some of them are taking parallel paths. That means more than one instruction per clock cycle is executed. That’s superscalar. Doubling the clock speed gets you more than twice the number of instructions executed. (This is not to be confused with actual “parallel processing,” which is the combining of two or more CPOS to execute a program).
« Back |
1 | 2 |
3 |
Next »