MEMORY SHARING ACROSS DISTRIBUTED NODES

A method and apparatus are disclosed for enabling nodes in a distributed system to share one or more memory portions. A home node makes a portion of its main memory available for sharing, and one or more sharer nodes mirrors that shared portion of the home node's main memory in its own main mem...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: JOHNSON, JOHN G, KATHIRGAMAR, AINGARAN, RADOVIC, ZORAN, LOEWENSTEIN, PAUL N
Format: Patent
Sprache:eng ; fre
Schlagworte:
Online-Zugang:Volltext bestellen
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
Zusammenfassung:A method and apparatus are disclosed for enabling nodes in a distributed system to share one or more memory portions. A home node makes a portion of its main memory available for sharing, and one or more sharer nodes mirrors that shared portion of the home node's main memory in its own main memory. To maintain memory coherency, a memory coherence protocol is implemented. Under this protocol, load and store instructions that target the mirrored memory portion of a sharer node are trapped, and store instructions that target the shared memory portion of a home node are trapped. With this protocol, valid data is obtained from the home node and updates are propagated to the home node. Thus, no "dirty" data is transferred between sharer nodes. As a result, the failure of one node will not cause the failure of another node or the failure of the entire system. L'invention porte sur un procédé et sur un appareil qui permettent à des nœuds dans un système distribué de partager une ou plusieurs parties de mémoire. Un nœud hébergeur rend une partie de sa mémoire principale disponible pour un partage, et un ou plusieurs nœuds partageurs reflètent cette partie partagée de la mémoire principale du nœud hébergeur dans leur propre mémoire principale. Pour maintenir la cohérence de mémoire, un protocole de cohérence de mémoire est mis en œuvre. Selon ce protocole, des instructions de chargement et de stockage qui visent la partie de mémoire reflétée d'un nœud partageur sont piégées, et des instructions de stockage qui visent la partie de mémoire partagée d'un nœud hébergeur sont piégées. Grâce à ce protocole, des données valides sont obtenues auprès du nœud hébergeur et des mises à jour sont propagées jusqu'au nœud hébergeur. Ainsi, aucune donnée « sale » n'est transférée entre les nœuds partageurs. Par conséquent, la défaillance d'un seul nœud ne causera pas la défaillance d'un autre nœud, ni la défaillance de tout le système.