Gedächtniskohärenz

Gedächtniskohärenz ist ein Problem, das die Gestaltung von beeinflusst Computersysteme in welch zwei oder mehr Prozessoren oder Kerne einen gemeinsamen Bereich von teilen Erinnerung.[1][2][3][4]

In einem Uniprozessor System (wobei es in der heutigen Begriffen nur einen Kern gibt) gibt es nur einen Verarbeitungselement Erledigen Sie alle Arbeiten und damit nur ein Verarbeitungselement, das von/zu einem bestimmten Speicherort gelesen oder schreiben kann. Wenn ein Wert geändert wird zwischengespeichert.

Umgekehrt in Multiprozessor (oder Multicore) Systeme, es gibt zwei oder mehr Verarbeitungselemente gleichzeitig, und daher ist es möglich, dass sie gleichzeitig auf denselben Speicherort zugreifen. Vorausgesetzt, keines von ihnen ändert die Daten an diesem Ort, können sie sie auf unbestimmte Zeit teilen und nach Belieben zwischenspeichern. Sobald man den Ort aktualisiert, arbeiten die anderen möglicherweise an einer veralteten Kopie, die z. B. in ihrem lokalen Cache liegt. Folglich ist ein Schema erforderlich, um alle Verarbeitungselemente von Änderungen an gemeinsamen Werten zu informieren. Ein solches Schema ist als a bekannt Gedächtniskohärenzprotokollund wenn ein solches Protokoll eingesetzt wird, soll das System a haben kohärentes Gedächtnis.

Die genaue Natur und Bedeutung der Gedächtniskohärenz wird durch die bestimmt Konsistenzmodell dass das Kohärenzprotokoll impliziert. Um korrekte gleichzeitige Programme zu schreiben, müssen sich Programmierer des genauen Konsistenzmodells bewusst sein, das von ihren Systemen verwendet wird.

Wenn in Hardware implementiert wird, kann das Kohärenzprotokoll beispielsweise sein Verzeichnisbasiert oder schnüffeln-basiert (auch genannt schnüffeln). Spezifische Protokolle umfassen die MSI -Protokoll und seine Derivate Mesi, Mosi und Moesi.

Siehe auch

Verweise

  1. ^ Censier, L.M.; Feautrier, P. (Dezember 1978). "Eine neue Lösung für Kohärenzprobleme in Mehrfachschach -Systemen". IEEE -Transaktionen auf Computern. C-27 (12): 1112–18. doi:10.1109/tc.1978.1675013.
  2. ^ Smith, Alan Jay (September 1982). "Cache -Erinnerungen". ACM Computing -Umfragen. 14 (3): 473–530. doi:10.1145/356887.356892.
  3. ^ Li, Kai; Hudak, Paul (November 1989). "Speicherkohärenz in gemeinsamen virtuellen Speichersystemen". Transaktionen auf Computersystemen. 7 (4): 321–59. doi:10.1145/75104.75105.
  4. ^ Stenstrom, per (Juni 1990). "Eine Übersicht über Cache -Kohärenzschemata für Multiprozessoren". IEEE -Computer. 23 (6): 12–24. doi:10.1109/2.55497.