Frage

Vorinformationen:

Ich bin sicher, dass jemand in diesen Zeilen etwas gefragt hat, aber egal wie ich es word, ich kann nicht eine endgültige Antwort finden

Frage:

Erzielt RAM eine Art Hinweis dazu, wie viel Daten die CPU benötigt oder gibt es einen eingestellten Datenbetrag, und wenn die CPU mehr benötigt, muss er erneut anrufen (und was ist der eingestellte Datenmenge). < / p>

Während eines Cache-Fräuleins erfordern die CPU mindestens eine einzige Cachezeile (32, 64 oder 128 Bytes). Muss die CPU RAM mehrmals abfragen, um eine einzelne Cachezeile zu erhalten (anzutragen, dass der eingestellte Betrag 8 Byte beträgt) oder führt der RAM mehr Daten pro Anruf zurück, oder das RAM hat eine gewisse Möglichkeit, zu benachrichtigen, wie viele Daten erforderlich sind?

Ich bin mir dessen bewusst, dass die CPU höchstwahrscheinlich mehr als nur eine einzige Cache-Zeile anrufen wird, um die langwierige Anforderung aus dem RAM zu vermeiden, wenn in Zukunft mehr Daten aus demselben Speicherblock benötigt werden.

zusätzliche Punkte:

Wenn Sie wissen und mehr Informationen haben, würden sich auch die folgenden Extras interessieren:

  • Wenn dies je nach CPU-MAKE unterscheidet (Generationsunterschiede können auch interessant sein, aber wenn Sie Informationen darüber hinzufügen, überspringen Sie bitte ähnliche Generationen.)
  • wenn dies je nach RAM-Typ
  • anders ist
  • Wie die CPU eine unterschiedliche Cache-Zeile oder eine Blockgröße anfordern kann (gilt nur, wenn RAM eine feste Größe zurückgibt, die die Größe eines Blocks oder einer Cache-Zeile ist)
  • alle anderen nützlichen relevanten Informationen oder Ressourcen zum weiteren Lesen

Mögliche Antwort:

Ich scheine einen Hinweis auf die Antwort gefunden zu haben, wenn er die Übertragungsrate des RAM anspricht, insbesondere dort, wo er angibt, wie die Übertragungsrate aus den Spezifikationen und von der "DDR-SDRAM-Prefetch-Architektur" berechnet wird, was darauf hinweist, wie viele 64-Bit " Blöcke "Kann pro Anruf an RAM (z. B. 8 für DDR3 und DDR4, 4 für DDR2 und 2 für DDR1) angefordert werden.

War es hilfreich?

Lösung

In der meist modernsten Hardware ist der Hauptspeicher eher ein Peripheriegerät.

Was ich in welchen Folgendes beschreiben werde, ist intellorme PC-ish-Hardware, aber es ist auf anderen Systemen sehr ähnlich.

Während des ersten Bootens, wenn die Stromversorgung zuerst angewendet wird, hat die CPU nur Cache, Firmware und einige erinnerungszugeordnete E / A. Eine der ersten Jobs besteht darin, ein externes Stück Hardware zu initialisieren, das traditionell als "Memory Controller" oder "Memory Controller Hub" (in PC-Hardware ist, der Teil der Northbridge ist), der direkt mit RAM-Modulen kommuniziert.

Ich sage "RAM-Module", weil sie wirklich wie Peripheriegeräte sind, wie gesagt. Die Hardware stellt das Modul auf, wie viel Speicher vorhanden ist, und verhandeln auch die Details des Protokolls, die sie verwenden, um Daten auf und aus dem Hauptspeicher zu übertragen.

Wie andere moderne Peripheriegeräte können moderne RAM-Module lesen und schreibt, das heißt, sie können einen größeren "Block" des Speichers mit einem Übertragungsvorgang lesen und schreiben. Also, auch wenn der "letzte" -Pheor der Cache mit der gleichen Cache-Zeilengröße als niedrigere Caches arbeitet, kann er größere Datenblöcke an und vom RAM übertragen als das.

Dies ist eine nützliche Optimierung beim Durchführen von Vorgängen wie linearen Scans durch einen Speicherblock. Eine Kombination der CPU- und Cache-Controller kann dies erkennen und diese Informationen verwenden, um einen Vorabruf aus dem RAM auszugeben.

Andere Tipps

RAM ruft nur Anfragen nach Daten auf / von der CPU (wirklich der MMU).Daten werden in Einheiten von Cache-Zeilen verschoben.

Derzeit sind Cache-Größen in der Regel so groß, dass mehr als eine Übertragung von RAM zum Cache erforderlich ist, um eine Cache-Zeile vollständig zu laden.Das Lesen von RAM dauert jedoch Zeit für den RAM, um die Adresse der zu lesenden Daten zu empfangen, und dann die Uhrzeit für die tatsächliche Übertragung, und die Nachfrage von RAM zum Ausführen von vier Übertragungen in einer Zeile ist viel schneller als der Zugriff auf vier zufällige Speicherpositionen.

Einige Prozessoren verfügen über ein Feature, mit dem sie RAM erstellen können, in welcher Reihenfolge verschiedene Teile einer Cache-Zeile übertragen werden können.Sagen Sie, dass es vier Transfers gibt, die zum Füllen einer Cache-Zeile erforderlich sind. Dann möchten Sie die Viertel-Cache-Zeile zuerst laden, die tatsächlich benötigt wird (und dann den Rest füllen).

Es wäre möglich, eine Cache-Zeile nur teilweise zu füllen (und füllen Sie eine andere Cache-Zeile an, anstatt den ersten vollständig zu füllen).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit cs.stackexchange
scroll top