<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Non-Uniform_Memory_Access</id>
	<title>Non-Uniform Memory Access - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Non-Uniform_Memory_Access"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Non-Uniform_Memory_Access&amp;action=history"/>
	<updated>2026-05-18T07:17:50Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Non-Uniform_Memory_Access&amp;diff=55583&amp;oldid=prev</id>
		<title>imported&gt;Aka: /* Siehe auch */ https</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Non-Uniform_Memory_Access&amp;diff=55583&amp;oldid=prev"/>
		<updated>2023-04-09T18:57:34Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Siehe auch: &lt;/span&gt; https&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Weiterleitungshinweis|NUMA|Zu anderen Bedeutungen siehe [[Numa]].}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Non-Uniform Memory Access&amp;#039;&amp;#039;&amp;#039; oder kurz &amp;#039;&amp;#039;&amp;#039;NUMA&amp;#039;&amp;#039;&amp;#039; ist eine Computer-[[Arbeitsspeicher]]-Architektur für [[Mehrprozessorsystem|Multiprozessorsysteme]], bei denen jeder [[Prozessor]] einen eigenen, „lokalen“ Arbeitsspeicher hat, aber anderen Prozessoren über einen gemeinsamen Adressraum „direkten“ Zugriff darauf gewährt (&amp;#039;&amp;#039;[[Distributed Shared Memory]]&amp;#039;&amp;#039;). Die Speicherzugriffszeiten für eine CPU in einem solchen Verbund hängen daher davon ab, ob sich eine Speicheradresse im CPU-eigenen „lokalen“ oder im „fremden“ Speicher (einer anderen CPU) befindet.&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz dazu stehen&lt;br /&gt;
* [[Uniform Memory Access|Uniform-Memory-Access (UMA)]], bei dem es einen zentralen Speicher gibt, auf den Zugriffszeiten immer gleich sind.&lt;br /&gt;
* [[NoRMA|No-Remote-Memory-Access (NoRMA)]], bei dem kein direkter Zugriff auf den fremden Speicher erlaubt ist und jeder Prozessor seinen eigenen Adressraum benutzt.&lt;br /&gt;
* [[Cache-only-Memory-Access|Cache-only-Memory-Access (CoMA)]], bei dem wie bei NUMA ein gemeinsamer Adressraum sowie für jeden Prozessor separat lokaler Speicher existiert, andere Prozessoren jedoch nicht auf den „entfernten“ Speicher schreiben, sondern diesen (ähnlich wie bei [[Cache]]s) in ihren lokalen Speicher übertragen, woraufhin dieser an seiner vorigen Position gelöscht (invalidiert) wird. D. h. bei einem Schreibzugriff auf eine Speicherseite wird die schreibende CPU zum Besitzer der Speicherseite, und die Seite wird in den lokalen Arbeitsspeicher &amp;#039;&amp;#039;dieser&amp;#039;&amp;#039; CPU transferiert.&lt;br /&gt;
&lt;br /&gt;
NUMA-Architekturen sind der nächste Schritt zur Erhöhung der [[Skalierbarkeit]] der [[Symmetrisches Multiprozessorsystem|SMP]]-Architekturen.&lt;br /&gt;
&lt;br /&gt;
== Cache-coherent NUMA (ccNUMA) ==&lt;br /&gt;
Fast alle Rechnerarchitekturen benutzen eine kleine Menge sehr schnellen Speichers, der als [[Cache]] bezeichnet wird, um bei Speicherzugriffen [[Lokalitätseigenschaft]]en 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.&lt;br /&gt;
&lt;br /&gt;
Nicht Cache-kohärente NUMA-Systeme sind zwar einfacher zu entwickeln und zu bauen, aber mit dem Standard-Programmiermodell [[John von Neumann|von Neumanns]] 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 &amp;#039;&amp;#039;&amp;#039;cache-coherent NUMA&amp;#039;&amp;#039;&amp;#039; (ccNUMA) bezeichnet.&lt;br /&gt;
&lt;br /&gt;
Dies wird meistens durch Inter-Prozessor-Kommunikation zwischen den Cache-Controllern erreicht, die so für kohärente Speicherinhalte sorgen, falls die gleiche Speicherstelle in mehr als einem Cache gespeichert ist.&lt;br /&gt;
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: zusammengehörige [[Thread (Informatik)|Threads]] werden bevorzugt den CPU-Kernen immer desselben Prozessors zugeordnet; wenn sie Speicher anfordern, erhalten sie vorzugsweise Speicher dieses Prozessors.&lt;br /&gt;
&lt;br /&gt;
Aktuelle Implementationen von ccNUMA-Systemen sind beispielsweise AMD-Mehrprozessorsysteme auf [[Opteron]]-Basis und [[Silicon Graphics|SGI]]-Systeme mit [[NUMAlink]]. Frühere ccNUMA-Systeme basierten auf dem [[Alpha-Prozessor]] EV7 der [[Digital Equipment Corporation]] (DEC) oder den [[MIPS-Architektur|MIPS]]-R1x000-Prozessoren wie etwa in der [[SGI Origin|SGI-Origin]]-Serie.&lt;br /&gt;
&lt;br /&gt;
== NUMA vs. Cluster-Computing ==&lt;br /&gt;
Im Unterschied zu NUMA-Computern verfügt jeder [[Computercluster|Cluster-Knoten]] über einen eigenen Adressraum. Weiterhin sind die Kommunikationslatenzen zwischen Cluster-Knoten deutlich höher als die zwischen NUMA-gekoppelten Prozessoren.&lt;br /&gt;
&lt;br /&gt;
Durch entsprechende Anpassungen im Betriebssystem beim Paging des [[Virtueller Speicher|virtuellen Speichers]] ist es möglich, clusterweite Adressräume zu implementieren, und somit „NUMA in Software“ umzusetzen. Da die hohen Latenzen jedoch bestehen bleiben, ist dies nur selten von Nutzen.&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* John Hennessy, David Patterson: &amp;#039;&amp;#039;Computer Architecture: A Quantitative Approach.&amp;#039;&amp;#039; Morgan Kaufmann, 2017, ISBN 978-0-12-811905-1.&lt;br /&gt;
* [https://lse.sourceforge.net/numa/faq/ NUMA FAQ] (englisch)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;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.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{{SORTIERUNG:NonUniform Memory Access}}&lt;br /&gt;
[[Kategorie:Rechnerarchitektur]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Aka</name></author>
	</entry>
</feed>