RAM-Speicherorganisation: UMA, NUMA und Unterschiede

Computersysteme können anhand der Art und Weise ihrer Organisation klassifiziert werden RAM Speicher ist entworfen und daher in zwei verschiedene Gruppen unterteilt: UMA-System und NUMA-Systeme. Wir erklären die grundlegenden Unterschiede zwischen diesen Arten der Organisation eines Systems nach Speicherorganisation und die Vor- und Nachteile der einzelnen Typen.

Beim Entwerfen eines Systems wird als erstes die Art und Weise, wie der RAM organisiert wird, auf die Designtabelle gesetzt, da dies nicht nur die Systemarchitektur, sondern auch die Leistung, die Herstellungskosten und die Kosten angibt Erweiterbarkeit.

RAM-Speicherorganisation

RAM-Speicherorganisation: UMA

Organisation Memoria UMA

UMA ist die Abkürzung für Uniform Memory Access und bezieht sich auf alle Systeme, bei denen RAM eine einzige gemeinsam genutzte Quelle für den Zugriff durch die ist CPU und der Rest der Prozessoren des Systems. Diese Art der Konfiguration wird heute insbesondere in SoCs verwendet, in denen sich die verschiedenen Komponenten den Zugriff auf den Speicher teilen.

Das UMA-System wird auch in Videospielkonsolen verwendet. Im Allgemeinen ist es das Speichersystem, das in jedem System verwendet wird, in dem seine Komponenten auf einer gemeinsamen Platine montiert sind, wobei das Routing von zwei verschiedenen Arten von Speichervertiefungen eine Komplikation auf den Pfaden darstellt und Kommunikationsleitungen, die die Platte durchqueren.

Es ist daher der einfachste Weg, ein Speichersystem in einem beliebigen Computertyp aufzubauen, bringt jedoch eine Reihe von Problemen mit sich, z. B. die Tatsache, dass die gemeinsame Nutzung des Speicherzugriffs zu einem Konflikt führt, bei dem eine Warteliste erstellt wird “Um auf Daten zuzugreifen, die nur durch die Verwendung von RAM-Speichertypen mit verschiedenen Zugriffskanälen verringert werden können.

RAM-Speicherorganisation: NUMA

Memoria-Organisation NUMA

Die NUMA- oder Non-Uniform Memory Access-Speicherorganisation. Bezieht sich auf Systeme, in denen mehrere verschiedene Speichervertiefungen im selben System verwendet werden. Dies ist der Fall beim PC, wo wir beispielsweise sehen können, wie Grafikkarten ihren eigenen Speicher haben, der sich vom Hauptspeicher des Systems unterscheidet.

NUMA-Systeme leiden nicht unter dem Konfliktproblem beim Speicherzugriff von UMA-Systemen, aber tatsächlich führt dies zu einem sehr komplexen System, um die verschiedenen Komponenten des Systems miteinander zu kommunizieren. Der Grund dafür ist, dass jede der Komponenten Zugriffsmechanismen auf den Haupt-RAM-Speicher für die Kommunikation mit der CPU haben muss. Beispielsweise verfügen GPUs über DMA-Einheiten, mit denen sie auf den Haupt-RAM des Systems zugreifen und Kopien bestimmter Daten erstellen können RAM zu VRAM.

Diese Art der Speicherorganisation wird verwendet, wenn ein System mit Erweiterungsfunktionen erstellt werden soll. Für diese müssen sogenannte Erweiterungsports erstellt werden, die für die Kommunikation der System-CPU mit den RAM-Speichersystemen des Systems verwendet werden. jede Komponente, die Teil des Systems ist.

Adressierung vs. physische Organisation

CPU-RAM

Eines der Ideale in PC ist das vollständig kohärente Speichersystem, in dem die Adressierung der verschiedenen Komponenten in allen gemeinsam ist. Das heißt, wenn wir die Adresse ändern, sagen wir zum Beispiel F4. Dann müssten alle Komponenten, wenn sie zur Speicheradresse F4 gehen, jede andere Komponente des PCs auf dieselbe Speicheradresse verweisen.

Man könnte von Anfang an denken, dass UMA-Systeme ihren Speicher immer auf der physischen Ebene gemeinsam nutzen, dann ist er auf der Adressierungsebene derselbe, da es sich um denselben Speicherpool auf der physischen Ebene handelt. Die Realität sieht ganz anders aus, da die verschiedenen Komponenten in Bezug auf den Speicher kohärent sein müssen. Wenn wir also im vorherigen Beispiel den Wert 30 in die Adresse F4 schreiben, wissen alle Komponenten, dass es einen Wert 30 gibt Dort.

CoreLink-Cache-Netzwerk

Der Weg, um alle Komponenten eines SoC vollständig kohärent zu machen, besteht daher nicht darin, denselben Speichercontroller zu verwenden, sondern eine letzte Cache-Ebene unmittelbar vor dem Controller hinzuzufügen, die sich außerhalb der CPU befindet GPU. und andere Komponenten und würde von allen als letzte Cache-Ebene angesehen werden.

Die Tatsache, dass vor dem Speichercontroller ein Cache der letzten Ebene hinzugefügt wird, ist typisch für PostPC-Systeme, da alle von Anfang an für SoCs entwickelt wurden. Es gibt keine Programme, die Kopien von Daten von einem Speicherplatz in einen anderen erstellen. In PC ist dies jedoch nicht üblich und obwohl Intel und AMD haben seit Jahren SoCs auf den Markt gebracht, bei denen alle Komponenten in einem einzigen Chip vereint sind, der Zugriff auf die verschiedenen Elemente im SoC nicht möglich ist und Teile des RAM ausschließlich für eine bestimmte Komponente isoliert sind. Wenn wir beispielsweise eine integrierte Grafik haben und dieser Grafik eine Speichermenge zuweisen, teilen wir der CPU mit, dass ihr Speicherplatz sie nicht berühren kann, da sie nicht zugeordnet ist.