DE19621108A1 - Pufferspeicher-Betriebsverfahren - Google Patents
Pufferspeicher-BetriebsverfahrenInfo
- Publication number
- DE19621108A1 DE19621108A1 DE19621108A DE19621108A DE19621108A1 DE 19621108 A1 DE19621108 A1 DE 19621108A1 DE 19621108 A DE19621108 A DE 19621108A DE 19621108 A DE19621108 A DE 19621108A DE 19621108 A1 DE19621108 A1 DE 19621108A1
- Authority
- DE
- Germany
- Prior art keywords
- buffer
- memory
- state
- buffer line
- purging
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0835—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
Description
Das Verfahren betrifft ein Betriebsverfahren für Pufferspei
cher in Mehrprozessor-Datenverarbeitungsanlagen.
In elektronischen Rechenanlagen werden zur Steigerung der
Leistungsfähigkeit schnelle Pufferspeicher zwischen Zen
traleinheit und dem Hauptspeicher eingesetzt. Diese Puffer
speicher werden üblicherweise als "Cache" bezeichnet und er
zielen ihre hohe Wirksamkeit dadurch, daß von den Prozesso
ren auf Speicheradressen häufig kurz hintereinander mehrfach
zugegriffen wird.
In Multiprozessorsystemen hat es sich als vorteilhaft her
ausgestellt, für jeden Prozessor einen eigenen Cache vorzu
sehen. Um bisherige Software weiterverwenden zu können, ist
das Rechnersystem so organisiert, daß das logische Verhalten
des Systems durch die Pufferspeicher nicht beeinflußt wird.
Dieser als Cache-Koheränz bezeichnete Betrieb stellt sicher,
daß trotz möglicher mehrfacher Kopien von Daten in den Puf
ferspeichern die Programmabläufe deterministisch bleiben.
Insbesondere wird der Fall behandelt, daß ein Prozessor ei
nen Speicherinhalt ändern möchte, der in dem Pufferspeicher
eines anderen Prozessors vorhanden ist. Sofern die Prozesso
ren und ihre Pufferspeicher durch ein Bus-System untereinan
der und mit dem Hauptspeicher gekoppelt sind, können mit dem
Acronym "MOESI" bezeichnete Koheränz-Verfahren Anwendung
finden, wie sie beispielsweise in dem Artikel von P. Sweazey
und A.J. Smith, A Class of Compatible Cache Coherency Proto
cols and their Support by the IEEE Futurebus, Proceedings of
the 13th International Symposium on Computer Architecture,
pp.414-423, IEEE 1986, beschrieben sind.
Pufferspeicher benutzen als Pufferzeile bezeichnete Blöcke
von Daten, die fast immer ein Vielfaches der Wortbreite des
Prozessors betragen und häufig sogar ein Mehrfaches der
Breite des die Prozessoren mit dem Hauptspeicher verbinden
den Bussystems ausmachen. Sofern durch eine Schreiboperati
on eines Prozessors eine Pufferzeile verändert wurde, ist
der Hauptspeicherinhalt ungültig. Will eine andere Puffer-Speicher-Steuerung
diese Speicherstelle lesen, so wird be
vorzugt das Bussystem derart bedient, daß die die gültige
Pufferzeile besitzende Pufferspeicher-Steuerung die Daten
anstelle des Hauptspeichers liefert. Pufferspeicher-Steuerungen
übertragen also immer nur vollständige Puffer
zeilen.
Neben den Prozessoren und ihren Pufferspeichern sind in ei
nem Rechnersystem auch Ein- und Ausgabegeräte vorhanden, im
folgenden kurz als E/A-Geräte bezeichnet, die gleichfalls
auf den Speicher zugreifen. E/A-Geräte lesen oder schreiben
häufig nur Teile einer Pufferzeile, im folgenden Subblock
genannt. Daher unterstützt der Hauptspeicher solche auch als
Subblock-Transaktionen bezeichneten Zugriffe.
Um eine Pufferspeicher-Kohärenz bei dem Anschluß von E/A-Geräten
auch in dem oben genannten Fall sicherzustellen, bei
dem sich die gültigen Daten nur in einem Pufferspeicher be
finden und von diesem nur als gesamte Pufferzeile bereitge
stellt werden können, müßte jedes E/A-Gerät gleichfalls ei
nen eigenen Pufferspeicher, zumindest jedoch eine eigene
Pufferspeicher-Steuerung in derselben Art wie ein Prozessor
enthalten. Da E/A-Geräte im Gegensatz zu Prozessoren fast
nie auf dieselbe Adresse wiederholt zugreifen, bietet ein
eigener Pufferspeicher jedoch keinen Leistungsgewinn für die
E/A-Operationen gegenüber einer direkten Übertragung in den
Hauptspeicher.
Auf eine Pufferspeicher-Steuerung in den E/A-Geräten kann
verzichtet werden, wenn mittels Betriebssystemsoftware und
durch sie angesteuerter Einrichtungen dafür gesorgt wird,
daß die E/A-Zugriffe nur auf nicht in einem Pufferspeicher
befindliche Speicherworte erfolgen. Diese Lösung erfordert
jedoch eine Software-Vorbereitung und ist damit langsam bzw.
nicht robust gegenüber Programmierfehlern im Betriebssystem.
Aufgabe der Erfindung ist es daher, ein Lösung zu finden,
die ohne eine eigene Pufferspeicher-Steuerung bei E/A-Geräten
auskommt und dennoch robuster und schneller als eine
durch Software bestimmte Lösung ist.
Die Erfindung benutzt eines der genannten MOESI-Protokolle
und erweitert die Zustände einer jeden Pufferzeile durch ei
nen Zustand PURGING. Durch diese wenig aufwendige Erweite
rung in allen Pufferspeicher-Steuerungen benötigt keines der
E/A-Geräte eigene Pufferspeicher-Steuerungen und kann den
noch auf gepufferte Daten kohärent zugreifen.
Fig. 1 zeigt ein Zustandsdiagramm für ein gemäß der Erfin
dung durch den neuen Zustand PURGING erweitertes Protokoll
bezüglich E/A-Operationen.
Im Zustand INVALID ist die Pufferzeile ungültig; dieser Zu
stand ist dem Fall gleichwertig, daß in der Pufferspeicher-Steuerung
der Assoziativspeicher für die Adressen (TAG-Memory)
die Adresse nicht enthält. Dieser Zustand wird nur
durch Speicheranforderungen des Prozessors verlassen, welche
hier nicht weiter betrachtet werden.
Bei den Zuständen EXCLUSIVE und SHARED ist die Pufferzeile
gültig, aber gleich dem Inhalt des Hauptspeichers an der be
zogenen Adresse. Daher führt eine E/A-Schreib-Operation le
diglich dazu, daß die Pufferzeile als INVALID markiert wird.
Bei einer E/A-Lese-Operation ist keine Änderung des Zustands
der Pufferzeile notwendig. Die E/A-Operation wird von der
E/A-Einheit mit dem Hauptspeicher abgewickelt.
Lediglich bei einem der Zustände MODIFIED oder OWNED ist der
Fall gegeben, daß die Pufferzeile in dem Pufferspeicher gül
tig ist und somit die entsprechenden Daten im Hauptspeicher
veraltet sind. MODIFIED kennzeichnet den Fall, daß nur die
entsprechend markierte Zeile die gültigen Daten enthält.
OWNED kennzeichnet den Fall, daß andere Pufferspeicher auch
gültige Daten enthalten können, aber die mit OWNED markierte
Pufferzeile die Daten bereitzustellen hat. Ob eine Ausfüh
rungsform der Erfindung überhaupt den Zustand OWNED verwen
det, ist dabei unerheblich. Diese Zustände werden als
"Intervenient" bezeichnet, weil der Pufferspeicher beim Zu
griff auf diese Daten am Bus intervenieren muß.
Für den Fall, daß ein anderer Prozessor eine Pufferzeile mit
einem der "intervenient" Zustände benötigt und daher die ge
samte Pufferzeile zu lesen beabsichtigt, wird die Puffer-Steuerung
anstelle des Hauptspeichers die gesamte Pufferzei
le über den Bus übertragen.
Trifft jedoch eine E/A-Einheit mit einem Subblock-Speicherzugriff
auf eine "intervenient" markierte Pufferzei
le, so wird zunächst die gesamte Pufferzeile als PURGING
markiert. Gleichzeitig wird ein Rückschreiben der gesamten
Pufferzeile in den Hauptspeicher angestoßen, die in der
gleichen Art erfolgt, wie das Rückschreiben einer Pufferzei
le durchgeführt wird, wenn die Pufferzeile aus Kapazitäts
gründen im Puffer verdrängt werden soll. Ist das Rückschrei
ben beendet, so wird der Zustand in INVALID geändert.
In der bevorzugten Ausführungsform der Erfindung wird ein
Bussystem eingesetzt, das einen Abbruch einer Speicheranfor
derung der E/A-Einheit zuläßt. Der Zustandwechsel in den Zu
stand PURGING wird gleichzeitig mit der Initiierung des
Rückschreibens von der Pufferspeicher-Steuerung dazu be
nutzt, die Speicheranforderung der E/A-Einheit abzubrechen.
Diese versucht daraufhin erneut, das Bussystem zu belegen,
was überwiegend erst gelingt, nachdem das Rückschreiben ab
geschlossen ist. Da nach dem Abschluß des Rückschreibens die
Pufferzeile INVALID ist, erfolgt ein normaler Speichertrans
fer mit dem Hauptspeicher.
Die Pufferzeile wird deshalb mit dem Zustand PURGING mar
kiert, damit für den Fall, daß dieselbe oder eine andere
E/A-Einheit doch noch während des Rückschreibens, beispiels
weise durch Verzögerungen im Hauptspeicher und dadurch be
dingtes vorübergehendes Freigeben des Bussystems, einen er
neuten Zugriff auf die Daten erreicht, dieser Zugriff wieder
abgebrochen oder aufgeschoben wird. Ferner wird damit ein
Zugriff des Prozessors auf die inkonsistenten Daten verhin
dert.
Bei einem Hochleistungs-Bussystem mit Vielfach-Zugriff, auch
Bus-Transaktionen genannt, bei dem in den Pausen zwischen
Adressphase und den Datenphasen eine vorgegebene Maximalzahl
weiterer Adressphasen begonnen werden kann, ist ein Abbruch
des Speicherzugriffs der E/A-Einheit nur dann unbedingt er
forderlich, wenn die vorgegebene Maximalzahl von offenen
Bus-Transaktionen erreicht ist, damit die Rückschreibung
auch beginnen kann. Sofern die Rückschreibung sofort eine
Adressphase belegen kann, kann der Speicherzugriff der E/A-Einheit
auch verzögert werden. Auch hierbei ist der PURGING-Zustand
notwendig, weil die E/A-Einheit bei zu großer Verzö
gerung auch von sich aus die Bus-Transaktion abbrechen und
vor Ende der Rückschreibung dieselbe erneut versuchen könn
te.
Die Erfindung kann weiter verbessert werden, insbesondere,
wenn die E/A-Geräte pro Speicherzugriff nur ein Datenwort in
der Breite des Bussystems übertragen.
So werden häufig Lese-Operationen von E/A-Geräten auf gepuf
ferte Zeilen treffen. Wird dabei der E/A-Transfer abgebro
chen, so kann die Steuerung im E/A-Gerät dahingehend erwei
tert werden, daß eine Wartezeit für eine Wiederholung einge
legt und alle derweil stattfindenden Datenübertragungen auf
dem Bussystem daraufhin untersucht werden, ob die benötigten
Daten übertragen werden. Dies ist dann auch tatsächlich der
Fall, da ja die Pufferzeile durch das Rückschreiben in den
Hauptspeicher zurück übertragen wird. Das E/A-Gerät nimmt
nun die Daten von dem Bussystem ab, so daß eine Wiederholung
entfällt. Eine entsprechende Lösung für den Fall des Schrei
bens in den Hauptspeicher, bei dem das E/A-Gerät anstelle
der Puffer-Steuerung einzelne der Datentransferzyklen auf
dem Bus übernimmt, ist gleichfalls möglich. Hierbei ist es
vorteilhaft, daß die Markierung der Pufferzeile als
"PURGING" die Möglichkeit freischaltet, daß das E/A-Gerät
die Daten für Teile der Pufferzeile bereitstellt.
Auch der Fall, daß der Speicherzugriff der E/A-Einheit nur
aufgeschoben ist, kann entsprechend verbessert werden. Bei
einer Lese-Operation der E/A-Einheit stellt die Puffer-Steuerung
das angeforderte Datenwort in einem Register be
reit und erfüllt den Speicherzugriff, nachdem das Datenwort
in den Hauptspeicher übertragen wurde. Bei einer Schreib-Operation
wird der Speicherzugriff weder aufgeschoben noch
abgebrochen, sondern es wird das in den Hauptspeicher über
tragene Datenwort in einem Register festgehalten und in dem
nachfolgenden, durch den Zustandswechsel nach "PURGING" be
wirkten Rücktransport das betreffende Datenwort aus dem Re
gister und nicht aus der Pufferzeile übertragen.
Das bislang für E/A-Einheiten beschriebene Vorgehen ist
selbstverständlich auch beispielsweise für Prozessor-Moduln
anwendbar, die, z. B. im Rahmen von Synchronisationsmechanis
men, Subblock-Speicherzugriffe bewirken. Es ist gleichfalls
ohne weiteres möglich, die Hauptspeicher auf mehrere Moduln
aufzuteilen oder in die Prozessormoduln zu integrieren.
Claims (6)
1. Speicherkohärenz-Betriebsverfahren für eine Datenverar
beitungsanlage mit mehreren Prozessoren mit jeweils ei
genen Pufferspeichern, mit den Merkmalen:
- - die aus Pufferzeilen aufgebauten Pufferspeicher der Prozessoren sind über ein Bussystem untereinander, mit einem Hauptspeicher und weiteren Einheiten derart verbunden, daß Adressinformation über das Bussystem bekannt gemacht wird, um einen einheitlichen, kohären ten Speicherzugriff zu erreichen,
- - das Bussystem erlaubt es, einen Speicherzugriff wäh rend der Adressphase daraufhin zu unterscheiden, ob ein Zugriff auf eine gesamte Pufferzeile oder einen Subblock davon erfolgt,
- - die Pufferzeilen haben eine Markierung, die zumindest folgende Zustände umfaßt:
- - einen Zustand INVALID, bei dem die Pufferzeile un gültig ist,
- - einen oder mehrere intervenierende Zustände, bei de nen die Daten gleicher Adresse im Hauptspeicher un gültig sind,
- - einen Zustand PURGING;
- - betrifft ein Subblock-Speicherzugriff eine Pufferzeile in einem intervenierenden Zustand, so wechselt der Zu stand auf PURGING, und es wird ein Rücktransport der Pufferzeile in den Hauptspeicher initiiert,
- - ist der Rücktransport einer im Zustand PURGING befind lichen Pufferzeile abgeschlossen, so geht die Puffer zeile von dem Zustand PURGING in den Zustand INVALID über.
2. Betriebsverfahren nach Anspruch 1 mit dem zusätzlichen
Merkmal, daß bei einem Subblock-Speicherzugriff auf eine
im Zustand PURGING befindliche Pufferzeile der Subblock-Speicherzugriff
verzögert oder abgebrochen wird.
3. Betriebsverfahren nach Anspruch 1 oder 2, wobei ein Sub
block-Speicherzugriff, der einen Wechsel des Zustands
einer Pufferzeile nach PURGING bewirkt, abgebrochen
wird.
4. Betriebsverfahren nach einem der vohergehenden Ansprü
che, wobei das Bussystem mehrere Speicherzugriffe
gleichzeitig zuläßt und ein Subblock-Speicherzugriff,
der einen Wechsel des Zustands einer Pufferzeile nach
PURGING bewirkt, dann abgebrochen wird, wenn für den
Rücktransport kein weiterer gleichzeitiger Speicherzu
griff mehr möglich ist.
5. Betriebsverfahren nach Anspruch 3 oder 4, wobei die die
Subblock-Zugriffe initiierende Einheit den gewünschten
Subblock während des Rücktransports der Pufferzeile vom
Bussystem abnimmt bzw. auf das Bussystem aufschaltet und
damit die Wiederholung des abgebrochenen Speicherzu
griffs vermeidet.
6. Anordnung zur Durchführung eines der Betriebsverfahren
nach einem der vorherigen Ansprüche.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19621108A DE19621108A1 (de) | 1996-05-24 | 1996-05-24 | Pufferspeicher-Betriebsverfahren |
PCT/DE1997/000972 WO1997045791A1 (de) | 1996-05-24 | 1997-05-14 | Pufferspeicher-betriebsverfahren |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19621108A DE19621108A1 (de) | 1996-05-24 | 1996-05-24 | Pufferspeicher-Betriebsverfahren |
Publications (1)
Publication Number | Publication Date |
---|---|
DE19621108A1 true DE19621108A1 (de) | 1997-11-27 |
Family
ID=7795315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19621108A Withdrawn DE19621108A1 (de) | 1996-05-24 | 1996-05-24 | Pufferspeicher-Betriebsverfahren |
Country Status (2)
Country | Link |
---|---|
DE (1) | DE19621108A1 (de) |
WO (1) | WO1997045791A1 (de) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0674267A2 (de) * | 1994-03-24 | 1995-09-27 | Hewlett-Packard Company | Kohärente DMA Schreibtransaktionen für Teilzeilen eines Cache-Speichers |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2820752B2 (ja) * | 1990-01-19 | 1998-11-05 | 日本電信電話株式会社 | 密結合マルチプロセッサシステムにおけるキャッシュメモリ一致制御方法 |
-
1996
- 1996-05-24 DE DE19621108A patent/DE19621108A1/de not_active Withdrawn
-
1997
- 1997-05-14 WO PCT/DE1997/000972 patent/WO1997045791A1/de active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0674267A2 (de) * | 1994-03-24 | 1995-09-27 | Hewlett-Packard Company | Kohärente DMA Schreibtransaktionen für Teilzeilen eines Cache-Speichers |
Also Published As
Publication number | Publication date |
---|---|
WO1997045791A1 (de) | 1997-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69721643T2 (de) | Multiprozessorsystem ausgestaltet zur effizienten Ausführung von Schreiboperationen | |
DE60215417T2 (de) | Netzwerkschaltung | |
DE69722079T2 (de) | Ein Mehrrechnersystem mit Anordnung zum Durchführen von Blockkopieroperationen | |
DE69834026T2 (de) | Verfahren und vorrichtung zur befehlswiedereinordnung und wiederherstellung von daten zur originalen befehlsreihenfolge | |
DE69722512T2 (de) | Mehrrechnersystem mit einem die Anzahl der Antworten enthaltenden Kohärenzprotokoll | |
DE69825915T2 (de) | Verfahren und vorrichtung zur umschaltung zwischen quellen-synchron-takt/- und gemeinsam-takt-datenübertragungs-modi in einem mehragent-übertragungs-system | |
DE69733076T2 (de) | Hochleistungsdatenweg mit sofortigem xor | |
DE69727856T2 (de) | Multiprozessorsystem mit Konsistenzfehler-Registrierung mit entsprechendem Verfahren | |
DE69132652T2 (de) | Rechnerdatenleitweglenkungssystem | |
DE69724354T2 (de) | Ein Mehrprozessorrechnersystem mit lokalen und globalen Adressräumen und mehreren Zugriffsmoden | |
DE10085373B4 (de) | Verfahren zum Flushen von Cache-Zeilen | |
DE4218003A1 (de) | Sekundaeres cache-speichersystem | |
DE4417068A1 (de) | Verfahren und Einrichtung zum Betreiben eines Einzel-Prozessor-Computersystems als Mehr-Prozessor-System | |
DE3933849A1 (de) | Prozessorgesteuerte schnittstelle | |
DE112005002180T5 (de) | Lösen von Cachekonflikten | |
DE60026068T2 (de) | System für externe transaktionen mit dynamischen prioritäten | |
DE10219623A1 (de) | System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen | |
DE69822866T2 (de) | System und verfahren zum beenden von lock-step-sequenzen in einem multiprozessorsystem | |
DE112012004926B4 (de) | Gemeinsame Speichernutzung durch Prozessoren | |
DE602004010399T2 (de) | Neuadressierbare virtuelle dma-steuer und statusregister | |
DE10219621A1 (de) | Schnelle Prioritätsbestimmungsschaltung mit rotierender Priorität | |
DE112004000694B4 (de) | Ein Verfahren und eine Vorrichtung zur Verbesserung der Multi-CPU-Systemleistung für Speicherzugriffe | |
DE60132961T2 (de) | Unabhängige Initialisierung von Arbitern und Agenten, um verzögerte Agent-Initialisierung zu ermöglichen | |
DE60130300T2 (de) | Bus, der auf einer Flanke eines Taktsignals abtastet und auf der anderen Flanke treibt | |
DE112020000843T5 (de) | Ausführen mehrerer datenanforderungen von mehrkernprozessoren |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8130 | Withdrawal |