Was ist eine Gedächtnisbarriere?

Historisch gesehen waren CPUs perfekt sequentielle Maschinen. Dies ist sehr logisch und leicht zu verstehen, kann jedoch ein Leistungsproblem darstellen. Im Laufe der Jahre wurden viele geniale Anpassungen an CPU-Designs vorgenommen, um so viel Leistung wie möglich aus Siliziumwafern herauszuholen. Eine der interessanteren ist jedoch die Ausführung außerhalb der Reihenfolge. In Out-of-Order-Ausführungs-CPUs müssen Befehle nicht unbedingt in der Reihenfolge ausgeführt werden, in der sie ausgegeben werden.

Abwürgen in Ordnung

Das Hauptleistungsproblem, auf das eine In-Order-CPU stößt, wird als Pipeline-Stall bezeichnet. Dies geschieht, wenn ein Befehl von einem gewissen Speicher abhängig ist, dieser Speicher jedoch nicht direkt in einem Register verfügbar ist. In diesem Fall muss die CPU diesen Wert im Speicher finden. Der CPU-Cache wird zuerst überprüft, da dies die schnellste Speicherschicht ist. Wenn der Wert nicht vorhanden ist, wird das System-RAM überprüft. Während dieser Zeit muss sich die CPU im Leerlauf befinden, da die speicherabhängige Anweisung vor den folgenden Anweisungen der Reihe nach abgeschlossen werden muss.

Die Auswirkung eines Pipeline-Stalls auf die Leistung ist möglicherweise nicht so schlimm, kann aber auch relativ schwerwiegend sein. Beispielsweise kann der L1-Cache typischerweise ein Ergebnis in der Größenordnung von 5 CPU-Zyklen zurückgeben. Der L2-Cache kann 20 Zyklen benötigen, L3 etwa 200 Zyklen und der System-RAM etwa 400 Zyklen. Angesichts der Tatsache, dass eine CPU mit etwa 5 GHz arbeiten kann, das sind 5 Milliarden Taktzyklen pro Sekunde, sind selbst 400 Zyklen nicht so schlimm (0,000008 %). Wenn Sie jedoch viele Anweisungen haben, die auf Daten weiter unten in den Cache-Ebenen verweisen müssen, kann der kumulative Effekt eine spürbare Verlangsamung verursachen.

Out-of-Order-Ausführung und Registerumbenennung

Die Ausführung außerhalb der Reihenfolge ist eine Technik, die es dem Planer ermöglicht, die Anweisungen in seiner Warteschlange neu zu ordnen. Durch diese Neuordnung kann es bestimmte Threads gegenüber anderen priorisieren. Es kann auch Anweisungen zurück in die Warteschlange verschieben, wenn sie eine Datenabhängigkeit haben, die noch nicht erfüllt wurde. Dies verhindert so weit wie möglich Pipeline-Stalls und minimiert Leerlaufzyklen.

Die Ausführung außerhalb der Reihenfolge erfordert eine Funktion namens Registerumbenennung. Die CPU kann innerhalb eines einzigen Zyklus auf Daten zugreifen, die in Registern gehalten werden. Register werden verwendet, um gelesene und geschriebene Daten zu speichern. Es ist jedoch wichtig sicherzustellen, dass der Computer insgesamt alles in der logischen Reihenfolge sieht, nicht in der falschen, CPU-Zyklus-optimierten Reihenfolge. Um dies zu ermöglichen, haben CPUs viel mehr logische Register, als die CPU-Architektur erfordert.

Daten, die ausgeschrieben werden müssen, aber einen „früheren“ Befehl haben, der noch nicht abgeschlossen ist, werden in einem Halteregister abgelegt. Diese Daten werden nicht in eine andere Kasse übertragen, wenn sich die Bestellung erledigt hat. Stattdessen wird der Name des Bestandsregisters in das des Registers geändert, in dem es sich befinden sollte. Dies ähnelt in etwa der Zubereitung eines Desserts vor dem Hauptgericht, das dann bis zum Servieren im Kühlschrank aufbewahrt wird.

Diese logischen Register sind vollständig unadressiert. Die CPU kann nur die logischen Register wirklich adressieren, die derzeit den Namen der architektonischen Register teilen. Allerdings ist sich die CPU ihrer auch genug bewusst, dass sie, wenn andere neu geordnete Befehle auf die Daten im logischen Halteregister angewiesen sind, diese anstelle der „veralteten“ Daten im Architekturregister zu diesem bestimmten empirischen Zeitpunkt verwenden kann.

Erinnerungsbarrieren

Eine Speicherbarriere – auch als Membar, Memory Fence oder Fence Instruction bezeichnet – ist eine Anweisung im Computercode. Es ermöglicht einem Programmierer, eine Ordnungsbeschränkung für Speicheroperationen durchzusetzen, die vor und nach der Speicherbarriere ausgegeben werden. Die Speicherbarriere weist den CPU-Scheduler an, sicherzustellen, dass alle Anweisungen vor allen Anweisungen nach der Barriere verarbeitet werden. Dies geschieht, um sicherzustellen, dass wichtige Vorgänge in der richtigen Reihenfolge ausgeführt werden.

Im Allgemeinen sollte dies auf modernen Computern nicht erforderlich sein. Out-of-Order-Execution und Registry-Umbenennung sind etablierte und ausgereifte Bereiche. Nichtsdestotrotz kann eine Speicherbarriere für ältere, weniger ausgeklügelte Prozessoren außerhalb der Reihenfolge hilfreich sein oder bei kritischen Speicheroperationen verwendet werden.

Speicherbarrieren können mit einigen Leistungseinbußen einhergehen. Dies liegt daran, dass sie den CPU-Scheduler aktiv daran hindern, bestimmte Teile des Befehlsflusses zu optimieren. Dies erhöht die Wahrscheinlichkeit eines Pipeline-Stalls.

Abschluss

Eine Speicherbarriere ist eine Anweisung, die eine Ordnungseinschränkung für Speicheroperationen sicherstellt. Dies ist wichtig, weil Verarbeitungsprozessoren außerhalb der Reihenfolge bestimmte Anweisungen neu anordnen können. Obwohl die Registrierungsumbenennung als Methode zur Gewährleistung der Speicherintegrität in dieser Umgebung gut etabliert ist, kann es hilfreich sein, sie manuell sicherzustellen.

Die Speicherbarriere zwingt den CPU-Scheduler sicherzustellen, dass Anweisungen vor allen Anweisungen nach der Barriere abgeschlossen werden. Dies verhindert, dass Speicheroperationen neu geordnet werden. Es verhindert auch, dass die CPU den Befehlsfluss optimiert, was sich auf die Leistung auswirken kann.



Leave a Comment

Fix: Chromebook „Fehler beim Konfigurieren des Netzwerks“

Fix: Chromebook „Fehler beim Konfigurieren des Netzwerks“

Wenn auf Ihrem Chromebook beim Konfigurieren des Netzwerks ein Fehler aufgetreten ist, aktivieren Sie die Netzwerkfreigabe, starten Sie Ihren Laptop neu und trennen Sie Ihren Router.

Grundlagen des 3D-Drucks: Was ist MSLA 3D-Druck?

Grundlagen des 3D-Drucks: Was ist MSLA 3D-Druck?

Maskiertes Stereolithographiegerät (MSLA) ist eine modifizierte Form des SLA-Drucks und bietet zahlreiche Vorteile, einschließlich schnelleren Druckzeiten.

So finden Sie die IP-Adresse eines Druckers

So finden Sie die IP-Adresse eines Druckers

Erfahren Sie, wie Sie die IP-Adresse Ihres Druckers einfach und schnell herausfinden können.

Hinzufügen von Blink-Kameras von zwei Standorten aus

Hinzufügen von Blink-Kameras von zwei Standorten aus

Erfahren Sie, wie Sie Blink-Kameras zur Heimsicherheit von zwei Standorten aus hinzufügen können. Flexibles System mit einfacher Installation und Integration mit Alexa.

Grundlagen des 3D-Drucks: Wie man Filament neu spoolt

Grundlagen des 3D-Drucks: Wie man Filament neu spoolt

Erfahren Sie, wie Sie Filament neu spoolen können, um Probleme wie Unterextrusion und Verwicklungen zu vermeiden. Hier sind einige nützliche Tipps und Techniken.

So ändern Sie das Zifferblatt einer Fitbit Versa 4

So ändern Sie das Zifferblatt einer Fitbit Versa 4

Ändern Sie das Zifferblatt Ihrer Fitbit Versa 4 einfach und kostenlos. Entdecken Sie neue Designs und gestalten Sie Ihre Uhr ganz nach Ihrem Geschmack.

Chromebook: Feststelltaste aktivieren/deaktivieren – 3 einfache Schritte

Chromebook: Feststelltaste aktivieren/deaktivieren – 3 einfache Schritte

Erfahren Sie, wie Sie die Feststelltaste auf Ihrem Chromebook aktivieren und deaktivieren können. Mit 3 einfachen Schritten und nützlichen Tipps zur Tastaturkonfiguration.

PETG-Drucke glätten: 5 bewährte Methoden für perfekte Oberflächen

PETG-Drucke glätten: 5 bewährte Methoden für perfekte Oberflächen

Erfahren Sie, wie Sie PETG-3D-Drucke in 5 Schritten professionell glätten – von Schleifen bis Chemische Behandlung. Praxistipps mit Sicherheitshinweisen und Werkzeugempfehlungen.

5 Anzeichen: So erkennen Sie, ob Ihr Arbeitgeber Ihren Computer überwacht [2025]

5 Anzeichen: So erkennen Sie, ob Ihr Arbeitgeber Ihren Computer überwacht [2025]

Erfahren Sie, wie Sie Überwachungssoftware auf Arbeitsgeräten identifizieren + Tipps zum Schutz Ihrer Privatsphäre. Inklusive aktuellem Rechtsrahmen gemäß BDSG & DSGVO.

Grundlagen des 3D-Drucks: Was ist eine Krempe? | 5 Vorteile & Tipps

Grundlagen des 3D-Drucks: Was ist eine Krempe? | 5 Vorteile & Tipps

Erfahren Sie, was eine Krempe beim 3D-Druck ist, warum sie nützlich ist und wie sie Ihnen hilft, das Verziehen von Filamenten zu vermeiden. Jetzt mit 5 praktischen Tipps zur optimalen Nutzung.