| How a CPU Works |
|
|
$ Check REAL-TIME pricing for Intel Core 2 Quad Q9550 Processor BX80569Q9550 - 2.83GHz 12MB Cache 1333MHz FSB Yorkfield Quad-Core Retail Socket 775 with Fan $ |
|
|
|
|
|
| Out-Of-Order Execution (OOO) |
Remember that we said that modern CPUs have several execution units working in parallel? We also said that there are different kinds of execution units, like ALU, which is a generic execution unit, and FPU, which is a math execution unit. Just as a generic example in order to understand the problem, let’s say that a given CPU has six execution engines, four “generic” and two FPUs. Let’s also say that the program has the following instruction flow in a given moment: 1. generic instruction 2. generic instruction 3. generic instruction 4. generic instruction 5. generic instruction 6. generic instruction 7. math instruction 8. generic instruction 9. generic instruction 10. math instruction
What will happen? The schedule/dispatch unit will send the first four instructions to the four ALUs but then, at the fifth instruction, the CPU will need to wait for one of their ALUs to be free in order to continue processing, since all its four generic execution units are busy. That’s not good, because we still have two math units (FPUs) available, and they are idle. So, a CPU with out-of-order execution (all modern CPUs have this feature) will look at the next instruction to see if it can be sent to one of the idle units. In our example, it can’t, because the sixth instruction also needs one ALU to be processed. The out-of-order engine continues its search and finds out that the seventh instruction is a math instruction that can be executed in one of the available FPUs. Since the other FPU will still be available, it will go down the program looking for another math instruction. In our example, it will pass the eight and the ninth instructions and will load the tenth instruction.
So, in our example, the execution units will be processing, at the same time, the first, the second, the third, the fourth, the seventh and the tenth instructions.
The name out-of-order comes from the fact that the CPU doesn’t need to wait; it can pull an instruction from the bottom of the program and process it before the instructions above it are processed. Of course the out-of-order engine cannot go forever looking for an instruction if it cannot find one. The out-of-order engine of all CPUs has a depth limit on which it can crawl looking for instructions (a typical value would be 512). |
| Pages (9): « 1 2 3 4 5 6 7 [8] 9 » |
| Print Version | Send to Friend |
|
Bookmark Article
| Comments (8)
|
|
Recommended Deal |
 | Amazon.com Corsair CMPSU-450VX 450-Watt VX Series 80 Plus Certified Power Supply compatible with Core i7 and i5 Electronics
|
|
Latest News |
November 20, 2009 - 12:37 PM PST |
November 19, 2009 - 7:30 AM PST |
November 18, 2009 - 11:30 AM PST |
November 18, 2009 - 10:18 AM PST |
November 17, 2009 - 1:39 PM PST |
November 17, 2009 - 1:06 PM PST |
November 17, 2009 - 10:18 AM PST |
November 16, 2009 - 11:46 AM PST |
November 13, 2009 - 12:51 PM PST |
November 11, 2009 - 3:31 PM PST |
| .:: More News ::. |
|
Latest Content |
|
|
| Our Most Popular Articles |
1,078,480 views
|
706,460 views
|
679,292 views
|
593,615 views
|
562,606 views
|
560,236 views
|
487,985 views
|
477,147 views
|
394,624 views
|
338,560 views
|
|
| Latest Threads in Our Forums |
by Merman |
by Merman |
by Hardware Secrets Team |
by Trevorrross |
by need2know |
by Olle P |
by Sherry |
by Hardware Secrets Team |
by 6dracing |
by tomahawk 1705 |
| .:: Visit Our Forums ::. |
|
|