Non-Uniform Memory Access

Non-Uniform Memory Access

Non-Uniform Memory Architecture oder kurz NUMA ist eine Computer-Speicher-Architektur für Multiprozessorsysteme, bei denen jeder Prozessor eigenen, lokalen Speicher hat, aber anderen Prozessoren über einen gemeinsamen Adressraum direkten Zugriff darauf gewährt (Distributed Shared Memory). Die Speicherzugriffszeiten in einem solchen Verbund hängen daher davon ab, ob sich eine Speicheradresse im lokalen oder im fremden Speicher befindet.

Im Gegensatz dazu stehen

  • Uniform-Memory-Access (UMA), bei dem es einen Zentralen Speicher gibt, auf den Zugriffszeiten immer gleich sind.
  • No-Remote-Memory-Access (NoRMA), bei der kein direkter Zugriff auf den fremden Speicher erlaubt ist und jeder Prozessor seinen eigenen Adressraum benutzt.
  • Cache-only-Memory-Access (CoMA), bei der der lokale Speicher eines Prozessors als großes Cache für Speicher anderer Prozessoren dient und sich transparent aktualisiert.

NUMA-Architekturen sind der logisch nächste Schritt zur Erhöhung der Skalierbarkeit von SMP-Architekturen.

Cache coherent NUMA (ccNUMA)

Fast alle Rechnerarchitekturen benutzen eine kleine Menge sehr schnellen Speichers, der als Cache bezeichnet wird, um bei Speicherzugriffen Lokalitätseigenschaften auszunutzen. Bei Verwendung von NUMA sorgt das Beibehalten der Cache-Kohärenz über den verteilten Speicher für zusätzlichen Overhead. Als Beispiel stelle man sich vor, dass sich ein Prozessor Daten aus dem Speicher eines anderen Prozessors holt, damit Berechnungen anstellt und die Ergebnisse in seinen lokalen Cache schreibt. Der Cache des Prozessors, von dem die Daten stammen (und vielleicht auch noch weitere Caches im System) müssen dann synchronisiert werden.

Nicht Cache-kohärente NUMA-Systeme sind zwar einfacher zu entwickeln und zu bauen, aber mit dem Standard-Programmiermodell von von Neumann nur schwer programmierbar. Daher besitzen alle derzeit im Einsatz befindlichen NUMA-Systeme spezielle Hardware, um die Cache-Kohärenz sicherzustellen, und werden deshalb auch als cache-coherent NUMA (ccNUMA) bezeichnet.

Dies wird meistens durch Inter-Prozessor-Kommunikation zwischen den Cache-Controllern erreicht, die so für konsistente Speicherinhalte sorgen, falls die gleiche Speicherstelle in mehr als einem Cache gespeichert ist. ccNUMA leidet unter schlechter Performance, wenn mehrere Prozessoren schnell nacheinander auf dieselbe Speicherstelle zugreifen wollen. Daher versucht ein Betriebssystem mit NUMA-Unterstützung die Häufigkeit solcher Zugriffe zu minimieren, indem Prozessoren und Speicher auf NUMA-freundliche Art und Weise alloziert werden.

Aktuelle Implementationen von ccNUMA-Systemen sind beispielsweise AMD-Mehrprozessorsysteme auf Opteron-Basis. Frühere NUMA-Systeme basierten auf dem Alpha-Prozessor EV7 von Digital Equipment Corporation(DEC).

NUMA vs. Cluster-Computing

NUMA kann als sehr eng gekoppelte Form von Cluster-Computing gesehen werden. Das Hinzufügen von Paging für virtuellen Speicher zu einer Cluster-Architektur macht es möglich, NUMA in Software zu implementieren, wo keine NUMA-Hardware existiert. Die Latenzzeiten von softwarebasiertem NUMA sind jedoch um ein vielfaches größer als mit Hardware-NUMA.

Weblinks


Der Original-Artikel aus der englischen Wikipedia enthält Material von FOLDOC, das hier und in der engl. Wikipedia unter einer Public-Domain-Lizenz verwendet wird.


Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Non-Uniform Memory Access — (NUMA) is a computer memory design used in Multiprocessing, where the memory access time depends on the memory location relative to a processor. Under NUMA, a processor can access its own local memory faster than non local memory, that is, memory …   Wikipedia

  • Non-Uniform Memory Access — NUMA (Non Uniform Memory Access  «неравномерный доступ к памяти» или Non Uniform Memory Architecture  «Архитектура с неравномерной памятью»)  схема реализации компьютерной памяти, используемая в мультипроцессорных системах, когда …   Википедия

  • Non Uniform Memory Access — Pour les articles homonymes, voir Numa. En informatique, un système NUMA (pour Non Uniform Memory Access ou Non Uniform Memory Architecture, signifiant respectivement accès mémoire non uniforme et architecture mémoire non uniforme) est un système …   Wikipédia en Français

  • Non-Uniform Memory Access — parallel processing architecture in which each processor has its own memory but can also access the memory of other processors, NUMA (Computers) …   English contemporary dictionary

  • Uniform Memory Access — (UMA) is a shared memory architecture used in parallel computers. All the processors in the UMA model share the physical memory uniformly. In a UMA architecture, access time to a memory location is independent of which processor makes the request …   Wikipedia

  • Memory architecture — describes the methods used to implement electronic computer data storage in a manner that is a combination of the fastest, most reliable, most durable, and least expensive way to store and retrieve information. Depending on the specific… …   Wikipedia

  • Direct memory access — (DMA) is a feature of modern computers that allows certain hardware subsystems within the computer to access system memory independently of the central processing unit (CPU). Without DMA, the CPU using programmed input/output is typically fully… …   Wikipedia

  • Shared memory — In computing, shared memory is a memory that may be simultaneously accessed by multiple programs with an intent to provide communication among them or avoid redundant copies. Depending on context, programs may run on a single processor or on… …   Wikipedia

  • Memory management unit — This 68451 MMU could be used with the Motorola 68010 A memory management unit (MMU), sometimes called paged memory management unit (PMMU), is a computer hardware component responsible for handling accesses to memory requested by the CPU. Its… …   Wikipedia

  • Cache only memory architecture — (COMA) is a computer memory organization for use in multiprocessors in which the local memories (typically DRAM) at each node are used as cache. This is in contrast to using the local memories as actual main memory, as in NUMA organizations. In… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”