The present invention is directed to a method and a system for maintaining
cache coherence in a distributed shared memory (DSM) multiprocessor
system. The method begins with a receiving of a shared access request by a
receiving node, where the receiving node is an arbitrary node having at
least one main memory unit containing information desired to be accessed.
Then, the method determines whether the shared access request originates
from a local node or from a remote node. When the shared access request
originates from a local node, the shared access request is processed as a
shared access request. If the shared access request is granted, a sharing
vector is generated or updated to reflect the sharing local node(s). When
the shared access request originates from a remote node, the shared access
request is converted to an exclusive access request and the sharing vector
is replaced with a pointer to the requesting remote node. This limits the
potential size of the sharing vector according to the local nodes.
Die anwesende Erfindung wird auf eine Methode und ein System für beibehaltene Pufferspeicherkohärenz in einem geteilten Mehrprozessorsystemverbundsystem des Gedächtnisses (DSM) verwiesen. Die Methode fängt mit einem Empfangen eines geteilten Zugang Antrags durch einen empfangenden Nullpunkt an, in dem der empfangende Nullpunkt ein willkürlicher Nullpunkt ist, der mindestens eine Hauptspeichermaßeinheit hat, die Informationen zu enthalten, die gewünscht werden erreicht zu werden. Dann stellt die Methode fest, ob der geteilte Zugang Antrag von einem lokalen Nullpunkt oder von einem Remotenullpunkt entsteht. Wenn der geteilte Zugang Antrag von einem lokalen Nullpunkt entsteht, wird der geteilte Zugang Antrag als geteilter Zugang Antrag verarbeitet. Wenn der geteilte Zugang Antrag bewilligt wird, wird ein teilender Vektor erzeugt oder aktualisiert, um das teilende lokale node(s) zu reflektieren. Wenn der geteilte Zugang Antrag von einem Remotenullpunkt entsteht, wird der geteilte Zugang Antrag in einen exklusiven Zugang Antrag umgewandelt und der teilende Vektor wird mit einem Zeiger zum erbittenen Remotenullpunkt ersetzt. Dieses begrenzt die mögliche Größe des teilenden Vektors entsprechend den lokalen Nullpunkten.