Hardware Secrets


Home | Camera | Case | CE | Cooling | CPU | Input | Memory | Mobile | Motherboard | Networking | Power | Storage | Video | Other
Content
Articles
Editorial
First Look
Gabriel’s Blog
News
Reviews
Tutorials
Main Menu
About Us
Awarded Products
Compare Prices
Datasheets
Dictionary
Download
Drivers
Facebook
Forums
Links
Manufacturer Finder
Newsletter
On The Web
RSS Feed
Test Your Skills
Twitter
Newsletter
Subscribe today!
Search




Recommended
Upgrading and Repairing PCs (19th Edition)
Upgrading and Repairing PCs (19th Edition), by Scott Mueller (Que), starting at $17.67
Home » CPU
Inside Intel Core Microarchitecture
Author: Gabriel Torres
Type: Tutorials Last Updated: April 12, 2006
Page: 6 of 7
Real-time pricing for Zalman CNPS10XEXTREME.
Copper/aluminum Cpu Cooler Zalman CNPS10XEXTREME 35554 Electronics Usually ships in 24 hours
Amazon: $62.78 TigerDirect: $74.99
Newegg: $79.99 Buy.com: $75.99

Memory Disambiguation

Memory disambiguation is a technique to accelerate the execution of memory-related instructions.

All Intel CPUs since Pentium Pro have an out-of-order engine, which allows the CPU to execute non-dependant instructions in any order. What happens is that memory-related instructions are traditionally executed in the same order they appear on the program, otherwise data inconsistency could appear. For example, if the original program has an instruction like ”store 10 at address 5555“ and then a ”load data stored at 5555“, they cannot be reversed (i.e., executed out of order) or the second instruction would get wrong data, as the data of address 5555 was changed by the first instruction.

What the memory disambiguation engine does is locate and execute memory-related instructions that can be executed out of order, accelerating the execution of the program (we will explain how this is accomplished in a minute).

In Figure 3 you have an example of a CPU without memory disambiguation (i.e., all CPUs not based on Core microarchitecture). As you can see, the CPU has to execute the instructions as they appear on the original program. For example, ”Load4“ isn’t related to any other memory-related instruction and could be executed first, however it has to wait all other instructions to be executed first.

Core Microarchitecture
click to enlarge
Figure 3: CPU without memory disambiguation.

In Figure 4 you see how the program shown in Figure 3 works on a CPU based on Core microarchitecture. It ”knows“ that ”Load4“ isn’t related to the other instructions and can be executed first.

Core Microarchitecture
click to enlarge
Figure 4: CPU with memory disambiguation.

This improves the CPU performance because now that ”Load4“ is executed, the CPU has the data required for executing other instructions that need the value of ”X“ to be executed.

On a regular CPU, if after this ”Load4“ we had an ”Add 50“, this ”Add 50“ (and all other instructions that depend on that result) would have to wait all other instructions shown in Figure 3 to be executed. With memory disambiguation, these instructions can be executed early, since the CPU will now have the value of ”X“ early.

« Previous |  Page 6 of 7  | Next »
Print Version | Send to Friend | Bookmark Article | Comments (0)

Related Content
  • IDF Fall 2005 Coverage
  • IDF Tel Aviv 2005 Coverage
  • All Pentium 4 Models
  • Core 2 Duo E6700 and Core 2 Extreme X6800 Review
  • All Core 2 Models

  • Recommended Deal.
    Zalman CNPS10XEXTREMEZalman CNPS10XEXTREME

    Copper/aluminum Cpu Cooler Zalman CNPS10XEXTREME 35554 Electronics Usually ships in 24 hours

    Amazon: $62.78 TigerDirect: $74.99
    Newegg: $79.99 Buy.com: $75.99

    RSSLatest News
    Antec Announces the One PC Case
    February 9, 2012 - 8:06 AM PST
    Cooler Master Releases Elite 361 PC Case
    February 8, 2012 - 7:50 AM PST
    Microsoft Launches Kinect for Windows
    February 2, 2012 - 8:42 AM PST
    Transcend Announces SSD720 SSD Series
    February 1, 2012 - 7:55 AM PST
    .:: More News ::.


    © 2004-12, Hardware Secrets, LLC. All rights reserved.
    Advertising | Legal Information | Privacy Policy
    All times are Pacific Standard Time (PST, GMT -08:00)