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

Was tun, wenn Powerbeats Pro nicht im Ladecase aufgeladen werden?

Was tun, wenn Powerbeats Pro nicht im Ladecase aufgeladen werden?

Wenn Ihre Powerbeats Pro nicht aufgeladen werden, verwenden Sie eine andere Stromquelle und reinigen Sie Ihre Ohrhörer. Lassen Sie das Ladecase geöffnet, während Sie Ihre Ohrhörer aufladen.

3D-Druck Grundlagen: Eine unverzichtbare Wartungscheckliste

3D-Druck Grundlagen: Eine unverzichtbare Wartungscheckliste

Die Wartung Ihrer Geräte ist ein Muss. Hier finden Sie nützliche Tipps, um Ihren 3D-Drucker in Top-Zustand zu halten.

Canon Pixma MG5220: Scannen ohne Tinte

Canon Pixma MG5220: Scannen ohne Tinte

Wie man das Scannen mit dem Canon Pixma MG5220 aktiviert, wenn die Tinte ausgeht.

5 Gründe, warum Ihr Laptop überhitzt

5 Gründe, warum Ihr Laptop überhitzt

Erfahren Sie mehr über einige mögliche Ursachen, warum Ihr Laptop überhitzt, sowie Tipps und Tricks zur Vermeidung dieses Problems und zur Kühlung Ihres Geräts.

So beheben Sie den GeForce Now Fehlercode 0xC272008F

So beheben Sie den GeForce Now Fehlercode 0xC272008F

Sie machen sich bereit für eine große Gaming-Nacht – Sie haben gerade “Star Wars Outlaws” auf dem GeForce Now Streaming-Dienst erworben. Entdecken Sie die einzige bekannte Lösung, die Ihnen zeigt, wie Sie den GeForce Now Fehlercode 0xC272008F beheben können, damit Sie wieder Ubisoft-Spiele spielen können.

3D-Druck Grundlagen: Wartungstipps für Ihren 3D-Drucker

3D-Druck Grundlagen: Wartungstipps für Ihren 3D-Drucker

Die Wartung Ihrer 3D-Drucker ist sehr wichtig, um die besten Ergebnisse zu erzielen. Hier sind einige wichtige Tipps, die Sie beachten sollten.

So finden Sie die IP-Adresse eines Druckers

So finden Sie die IP-Adresse eines Druckers

Haben Sie Schwierigkeiten herauszufinden, welche IP-Adresse Ihr Drucker verwendet? Wir zeigen Ihnen, wie Sie sie finden.

So verwenden Sie AirPods mit Samsung-Handys

So verwenden Sie AirPods mit Samsung-Handys

Wenn Sie sich unsicher sind, ob Sie AirPods für Ihr Samsung-Handy kaufen sollen, kann dieser Leitfaden Ihnen auf jeden Fall helfen. Die offensichtlichste Frage ist, ob die beiden kompatibel sind, und die Antwort lautet: Ja, das sind sie!

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.