Smart Memory Access
Mit Smart Memory Access führt Intel einen Advanced Prefetch-Mechanismus für den Speicherzugriff ein. Die Core-Mikroarchitektur verbessert damit das Load-/Store-Handling beim Zugriff auf den Arbeitsspeicher. Intel will damit Latenzzeiten „verstecken“, indem die CPU Daten bereits spekulativ im Cache hält. Damit soll der Nachteil des externen Speicher-Controllers zumindest teilweise überwunden werden.
Der Smart Memory Access setzt sich dabei aus den Improved Prefetchers sowie der Memory Disambiguation zusammen. Bei einer Out-of-Order-Architektur führt der Prozessor die Instruktionen in einer optimierten, und nicht in der eingehenden Reihenfolge durch. Beim Speicherzugriff kann dies aber zu Problemen führen. Beispielsweise speichert ein Store1-Befehl Daten bei der Speicheradresse F000h. Fünf Befehle später liest die CPU einen Load5-Befehl für diese Adresse ein.
Dazwischen gibt es aber einen zweiten Speicherbefehle Store2 mit noch unbekannter und erst zur Laufzeit generierter Speicheradresse. Würde jetzt durch das Out-of-Order-Verfahren der Load5-Befehl durch die Optimierung vor dem Store2 ausgeführt werden, so liest der Prozessor eventuell die falschen Daten ein. Demnach darf ein Load-Befehl nicht vor dem Store erfolgen, wenn die Adresse des Load-Befehls noch nicht bekannt ist. Ein Verschieben von Load5 vor Store1 ist sowieso nicht erlaubt, weil diese direkt zusammen hängen.