3

Ich versuche den Hardware-Prefetch in meinem System mit Atom-Prozessoren (N270) zu deaktivieren.So deaktivieren Sie den Prefetcher im Atom N270-Prozessor

Ich befolge die Methode wie unter dem Link How do I programatically disable hardware prefetching in core2duo?

ich in der Lage bin ausführen,

./rdmsr 0x1a0 
366b52488 

jedoch gibt diese Fehlermeldung

./wrmsr -p0 0x1a0 0x366d52688 
wrmsr: Cpu 0 can't set MSR from 0x1a0 to 0x366d52688 

Obwohl ich bin in der Lage Bit-0 und Bit-3 gesetzt ist, werden keine weiteren Bits erlaubt ändern.

./wrmsr -p0 0x1a0 0x366b52489 

Gemäß dieser Link disable prefetcher in i3/i7 Hardware prefetcher in Nehalem, Westmere, Sandy Bridge, Ivy Bridge, Haswell und Broadwell über MSR bei 0x1a4 Adresse deaktiviert werden.

Im Atom-Prozessor ist das Lesen bei 0x1a4 nicht zulässig.

./rdmsr 0x1a4 

rdmsr: Cpu 0 can't read MSR from 0x000001a4 

Ich frage mich, wie es möglich ist, dass es keine Informationen verfügbar im Zusammenhang mit ist, wie Hardware-Prefetcher in Atom-Prozessor, befinden sich im selben Jahr (Jahr 2008) veröffentlicht obwohl Atom N270 und Core2duo Prozessor deaktivieren und wie Hardware Prefetcher in Core2Duo deaktiviert wird, wird von Intel offenbart.

Jeder Link zu dokumentieren, wie kann ich Prefetcher in Atom-Prozessoren deaktivieren, wäre eine große Hilfe? Vielen Dank im Voraus.

Antwort

2

Die einzige zuverlässige Quelle, um Informationen wie diese zu finden, ist das Intel Architecture Software Developer's Manual. Es gibt ein ganzes Kapitel für MSR (in der neuesten Version ist es Kapitel 35).

  1. Die 0x1a4 oder 0x1a0 MSR-Adresse, die Sie gefunden ist maschinenabhängig (das ist, warum es modellspezifisches Register genannt), das heißt, sie können nur bei einigen Modellen verfügbar sein, oder vielleicht in zukünftigen Modellen entfernt.
  2. Wenn Sie das Kapitel "MSRS IN DER 45 NM UND 32 NM INTEL® ATOMTM PROCESSOR FAMILY" gehen, die Ihrem Atom N270 entspricht. Sie werden kein MSR finden, das sich auf die Prefetcher-Einstellung bezieht. Es bedeutet also, dass es in der offiziellen Intel CPU-Version nicht verfügbar ist (obwohl es in einigen technischen Beispielen gefunden wurde).
  3. Es kann zwei Gründe geben, warum es nicht verfügbar ist, entweder ist es nicht in hohem Grade erforderliches Merkmal und das Entfernen könnte es einige Silikongates sparen; oder es könnte sein, weil Intel denkt, dass diese Funktion am besten links und nicht für die Öffentlichkeit konfigurierbar ist (abhängig vom Missbrauch durch Hersteller oder Benutzer und unter bestimmten Bedingungen zu schlechter Leistung führt).

BTW, Informationen über 0x1a4 MSR-Adresse konnte in IA SDM Kapitel 35.5 und 0x1a0 in Kapitel 35.2

+0

Danke für Ihren Kommentar zu finden. Ich versuche, ein Experiment zu machen, um die Leistung mit und ohne Vorhandensein von Prefetching in verschiedenen CPU-Architektur zu vergleichen. Also bete ich nur und versuche mein Bestes, um den Prefetcher zu deaktivieren. – bholanath

+0

danke für Ihren Kommentar. Ich versuche, ein Experiment zu machen, um die Leistung mit und ohne Vorhandensein von Prefetching in verschiedenen CPU-Architektur zu vergleichen. Also bete ich einfach und versuche mein Bestes, um den Prefetcher in meinem ATOM-Prozessor zu deaktivieren.Ich habe versucht, likwid-Tool zu installieren, wo es erwähnt es ATOM Prozessor unterstützen, aber ich bin nicht in der Lage likwid in ATOM installieren aufgrund eines Fehlers bei der Montage gcc/stream_sse.so - zu viele Operanden für xor, hinzufügen, cmp, mov etc – bholanath

+0

Aha. Völlig verstehen, dass Sie mit diesen Reglern spielen möchten. Ich habe mir das Werkzeug angesehen, das Sie erwähnt haben. Wenn Sie nach Prefetch suchen, finden Sie eine Handvoll Orte, an denen es aufgetreten ist. Von dem, was ich sehe, unterstützt Atom-Prozessoren nur Prefetcher-Ereignisse zu lesen. Es wird auf Nehalem und danach unterstützt. –