DE68928343T2 - Schreib-Lese/Schreib-Weitergabe-Speichersubsystemzyklus - Google Patents

Schreib-Lese/Schreib-Weitergabe-Speichersubsystemzyklus

Info

Publication number
DE68928343T2
DE68928343T2 DE68928343T DE68928343T DE68928343T2 DE 68928343 T2 DE68928343 T2 DE 68928343T2 DE 68928343 T DE68928343 T DE 68928343T DE 68928343 T DE68928343 T DE 68928343T DE 68928343 T2 DE68928343 T2 DE 68928343T2
Authority
DE
Germany
Prior art keywords
data
scu
main memory
valid
cpu
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.)
Expired - Fee Related
Application number
DE68928343T
Other languages
English (en)
Other versions
DE68928343D1 (de
Inventor
Kumar Chinnaswamy
Michael Gagliardo
John J Lynch
James E Tessari
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Digital Equipment Corp
Original Assignee
Digital Equipment Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Digital Equipment Corp filed Critical Digital Equipment Corp
Application granted granted Critical
Publication of DE68928343D1 publication Critical patent/DE68928343D1/de
Publication of DE68928343T2 publication Critical patent/DE68928343T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)
  • Static Random-Access Memory (AREA)

Description

    Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft digitale Computerspeicher-Steuersysteme, und insbesondere Verfahren und ein Gerät zum Initiieren von Mehrfach- Operationsbefehlen für Datenübertragungen von einer Zentralprozessoreinheit (CPU) zu einer Zentralprozessoreinheit (CPU) in einem digitalen Computersystem mit einer Systemsteuereinheit (SCU) und mehreren CPUs.
  • Hintergrund der Erfindung
  • In einem digitalen Computersystem, das eine SCU mit einem zugehörigen Hauptspeicher und mehreren unabhängigen CPUs enthält, wobei jede CPU ihren eigenen zugehörigen Rückschreibcache aufweist, können im SCU-Hauptspeicher gespeicherte Daten ungültig werden, weil mehrere aktuelle Daten in eine der CPUs eingegeben und in ihren zugehörigen CPU-Cache gespeichert worden sind. Eine CPU in dem System, die nach ausgewählten Daten fragt, muß herausfinden, ob die Version der angefragten Daten, die im SCU-Hauptspeicher gespeichert sind, die aktuellste Version sind, oder dann, wenn sie es nicht sind, die Stelle des CPU- Caches, in der die aktuellste Version gespeichert ist. Dafür kann die SCU ein Datenspeicherstellen-Directory enthalten, das eine Cache-Konsistenzeinheit (CCU) enthält, die anzeigt, ob die im SCU-Hauptspeicher gespeicherten Daten für ungültig erklärt worden sind, und die CPU-Cachestelle für die aufgefrischte Version der angefragten Daten.
  • Zum Versorgen der anfragenden CPU mit Daten, die im Cache einer anderen CPU gespeichert sind, ist es nötig gewesen, die Daten des CPU-Caches zu lesen, in dem die aktuellste Version der angefragten Daten angeordnet ist, die gelesenen Daten zurück zur SCU zu übertragen, und dann die empfangenen Daten in den SCU-Hauptspeicher zu schreiben, so daß die empfangenen Daten die weniger aktuelle Version der angefragten Daten ersetzt, die bereits im SCU-Hauptspeicher gespeichert ist. Nachdem die von der lokalisierten CPU empfangenen aufgefrischten Daten in den SCU-Hauptspeicher geschrieben sind, wird der SCU- Hauptspeicher so gelesen, daß die aufgefrischten Daten zur anfragenden CPU übertragen werden können.
  • Jedoch enthält das oben beschriebene Verfahren eine signifikante Speicherlese- Latenzzeit, weil die SCU zuerst einen Schreibzyklus mit einem "SCHREIB"-Befehl initiieren muß, um die zu ihr übertragenen aufgefrischten Daten in einen Speicher einzugeben, und dann, wenn der Schreibzyklus beendet ist, einen Lesezyklus für dieselbe Datenadresse mit einem "LESE"-Befehl initiieren muß, um die aktuellste Version in den SCU-Hauptspeicher geschriebener angefragter Daten zur anfragenden CPU zu übertragen. Somit sind jedesmal zwei vollständige SCU- Hauptspeicherzyklen nötig, wenn angefragte Daten zu einer anfragenden CPU von einem Cache einer anderen CPU über die SCU übertragen werden.
  • Ein Artikel von Tang mit dem Titel "Cache System Design in the Tightly-Coupled Multiprocessor System" (Proceedings of the National Computer Conference, New York, 7.-10. Juni 1976, Bd. 45, Seiten 749-753, AFIPS, Montvale, US) zeigt ein Mehrfachprozessorsystem wie jenes, das oben beschrieben ist. Tang lehrt, daß Datenblöcke, von denen herausgefunden wird, daß sie in einem anderen Cache vorhanden sind, zuerst zum Hauptspeicher übertragen werden, in ihrer Gesamtheit zum Speicher geschrieben werden, in ihrer Gesamtheit aus dem Speicher gelesen werden, und schließlich weiter zur anfragenden CPU gesendet werden.
  • Das US-Patent 3,984,818 von Gnadeberg et al. lehrt eine Speicheranordnung, wobei ein Pufferspeicher zwischen einem Prozessor und einem Hauptspeicher angeordnet ist. Beim Ausführungsbeispiel der Fig. 2 wird im Fall eines Pufferspeichertreffers ein Wortteil zum Pufferspeicher geschrieben, und dann wird der gesamte Wortblock, der den Wortteil enthält, aus dem Pufferspeicher ausgelesen und zu einem Hauptspeicher geschrieben. Im Fall, daß während eines Schreibens ein Pufferspeicher-Nichttreffer auftritt, wird der Wortblock aus dem Hauptspeicher gelesen, der wiedergewonnene Wortblock wird in einem Pufferspeicherregister mit dem zu schreibenden Wortteil kombiniert, und der so modifizierte Wortblock wird dann zurück zum Hauptspeicher geschrieben. Gnadeberg et al. lehrt kein Verfahren für eine Cachekohärenz in einem Mehrfachprozessorsystem und auch kein Schema zum Reduzieren einer Speicher-Latenzzeit in einem derartigen System im Fall eines Cache-Nichttreffers.
  • EP-A-0 095 598 lehrt Mehrfachverarbeitungssysteme mit einem Schema, wodurch Caches auf einen Cache-Nichttreffer hin über Kreuz abgefragt werden, und die in einem abgefragten Cache unter Umgehung des Hauptspeichers direkt zum anfragenden Cache gesendet werden. Bei diesem System ist der Hauptspeicher schließlich nicht an Übertragungen von Cache zu Cache beteiligt.
  • Zusammenfassung der Erfindung
  • Die vorliegende Erfindung minimiert eine Speicherlese-Latenzzeit, wenn angefragte Daten vom Cache einer lokalisierten CPU über die SCU zu einer anfragenden CPU unter Verwendung neuer Zyklen übertragen werden, die zwei Operationen auf einmal zu einem einzigen Befehl kombinieren. Diese neuen Zyklen können "SCHREIB-LESE"-Zyklus und "SCHREIB-DURCHLASS"-Zyklus genannt werden. Der "SCHREIB-LESE"-Zyklus läßt zu, daß die SCU einen Schreibzyklus und einen Lesezyklus gleichzeitig zur selben Adresse durchführt. Der "SCHREIB- DURCHLASS"-Zyklus läßt zu, daß die SCU in einem Zyklus gleichzeitig von einer CPU empfangene Daten schreibt und dieselben Daten zu einer anderen CPU durchläßt. Die "SCHREIB-LESE"- und "SCHREIB-DURCHLASS"-Zyklen werden mit einzelnen Befehlen initiiert.
  • Beschreibung der Zeichnungen
  • Fig. 1 ist ein Blockdiagramm eines typischen digitalen Computersystems mit einer SCU und zugehörigen unabhängigen CPUs, das geeignet zur Verkörperung der vorliegenden Erfindung ist.
  • Fig. 2 ist ein grundsätzliches Flußdiagramm logischer Schritte für das bevorzugte Ausführungsbeispiel der Erfindung, das zur Verwendung bei dem in Fig. 1 gezeigten System geeignet ist.
  • Fig. 3 ist ein typisches Blockdiagramm des bevorzugten Ausführungsbeispiels der Erfindung zur Verwendung mit dem in Fig. 1 gezeigten digitalen Computersystem.
  • Detaillierte Beschreibung des bevorzugten Ausführungsbeispiels
  • Nimmt man Bezug auf die Zeichnungen, wobei gleiche Bezugszeichen gleiche oder entsprechende Teile in allen Ansichten bezeichnen, zeigt Fig. 1 ein typisches digitales Computersystem 2, das für eine Verkörperung der vorliegenden Erfindung geeignet ist. Das System 2 enthält eine Systemsteuereinheit (SCU) 4 mit einem zugehörigen SCU-Hauptspeicher 6 und einem SCU-Datenspeicherstellen-Directory 8. Das Directory 8 enthält eine Cachekonsistenzeinheit (CCU) 10, die für eine beliebige angefragte Datenadresse vom SCU-Hauptspeicher 6 anzeigt, wenn die Daten des SCU-Hauptspeichers 6 irgendwo im System 2 durch eine aktuellere Version der angefragten Daten überlagert werden, und zwar mit einer Implementierung, die im Stand der Technik wohlbekannt ist.
  • Die SCU 4 ist typischerweise über einzelne zugehörige Datenbusverbindungen 14 mit einer Vielzahl unabhängiger zentraler Verarbeitungseinheiten (CPUs) 12 verbunden. Jede der CPUs 12 weist einen Rückschreibcache 16, eine Steuereinheit 18 und eine Eingabe/Ausgabe-(I/O)-Einheit 20 auf.
  • Wie es im Stand der Technik wohlbekannt ist, können die CPUs 12 Daten in ihren zugehörigen Caches 16 individuell aufnehmen und speichern. Es kann sein, daß diese Daten nicht im SCU-Hauptspeicher 6 sind oder daß sie eine aufgefrischte (aktuellere) Version von im SCU-Hauptspeicher 6 gespeicherten Daten sind. Ebenso werden die Adressen von Daten, die in die einzelnen CPUs 12 geschrieben sind, gemäß dem Stand der Technik zur SCU 4 zur Speicherung im SCU- Datenspeicherstellen-Directory 8 übertragen, und die CCU 10 zeigt an, welche Daten des SCU-Hauptspeichers 6 durch aktuellere Versionen in einem der CPU- Caches 16 überlagert worden sind.
  • Als Teil des Datenübertragungsprozesses von einer der CPUs 12 über die SCU 4 und zu einer Anfragenden der CPUs 12 ist es äußerst wünschenswert, nicht nur die aktuellste Version der angefragten Daten zur Anfragenden der CPUs 12 von einer anderen der CPUs 12 zu übertragen, sondern gleichzeitig auch den SCU- Hauptspeicher 6 zu erneuern, während im SCU-Directory 8 auch registriert wird, daß der SCU-Hauptspeicher nun die aktuellste Version der angefragten Daten aufweist. Auf diese Weise können zusätzliche Anfragen für dieselben Daten vom SCU-Hauptspeicher 6 gelesen werden, bis eine der CPUs 12 die angefragten Daten noch mehr auffrischt.
  • Jedoch enthält das oben beschriebene Verfahren zum Auffrischen des SCU- Hauptspeichers 6 mit den übertragenen Daten gemäß dem Stand der Technik allgemein wenigstens die Ausführung zweier unterschiedlicher Befehle, nämlich eines "SCHREIB"-Befehls zum Schreiben der übertragenen Daten, die durch die SCU 4 empfangen werden, bei einer ausgewählten Adresse, gefolgt durch einen "LESE"- Befehl an derselben Adresse. Die Verwendung zweier solcher unterschiedlicher Befehle benötigt dann die Ausführung zweier vollständiger Datenübertragungszeitzyklen für den SCU-Hauptspeicher 6, wodurch die Speicherlese-Latenzzeit relativ zu einer Datenübertragungsoperation in einem einzelnen Zyklus wenigstens verdoppelt wird.
  • Die vorliegende Erfindung eliminiert die Speicherlese-Latenzzeit, die durch die Notwendigkeit für zwei unterschiedliche Befehle und zwei vollständige Datenübertragungszeitzyklen für den SCU-Hauptspeicher 6 verursacht wird, durch Verwenden kombinierter Operationszyklen für das Verfahren zum Übertragen der angefragten Daten zwischen den CPUs 12 und zum gleichzeitigen Speichern der übertragenen Daten in den SCU-Hauptspeicher 6. Wenn die übertragenen Daten durch das SCU-Directory 8 als die aktuellste Version beurteilt worden sind, wird ein "SCHREIB-DURCHLASS"-Zyklus verwendet. Dieser Zyklus läßt zu, daß die für gültig erklärten Daten durch die SCU 4 zur anfragenden CPU 12 durchgelassen werden, wenn die für gültig erklärten Daten in den SCU-Hauptspeicher 6 geschrieben werden. Wenn die übertragenen Daten durch das SCU-Directory 8 nicht für gültig erklärt worden sind, wird ein "SCHREIB-LESE"-Zyklus verwendet. Dieser Zyklus läßt nur zu, daß für gültig erklärte Teile der übertragenen Daten in den SCU-Hauptspeicher 6 geschrieben werden, und im selben Zyklus vom SCU- Hauptspeicher 6 für eine Übertragung von Daten gelesen werden, die durch die Anfragende der CPUs 12 angefragt sind. Somit wird für den "SCHREIB-LESE"- Zyklus nur der für gültig erklärte Teil der zur SCU 4 in Antwort auf die Datenanfrage von der Anfragenden der CPUs 12 übertragenen Daten in den SCU-Hauptspeicher 6 geschrieben, wohingegen alle der durch die Anfragende der CPUs 12 angefragten Daten vom SCU-Hauptspeicher 6 gelesen werden. Die gelesenen Daten enthalten den für gültig erklärten Teil der durch die SCU 4 empfangenen Daten, die in den SCU-Hauptspeicher 6 geschrieben wurden.
  • Die zur SCU 4 von der Lokalisierten der CPU 12 übertragenen Daten werden in ein SCU-Speicheruntersystem 22 übertragen. Das Speicheruntersystem 22 enthält einen Datenschreibpuffer 24, einen Datenumgehungsmultiplexer 26 und einen Datenlesepuffer 28. Das Speicheruntersystem 22 dient zum Aufreihen und Übertragen der zur SCU 4 übertragenen Daten, so daß der Datenfluß durch die SCU 4 mit den oben beschriebenen "SCHREIB-DURCHLASS"- und "SCHREIB-LESE"- Operationen gesteuert wird.
  • Die SCU 8, der SCU-Hauptspeicher 6, die CCU 10, das SCU-Speicheruntersystem 22, der Schreibpuffer 24, der Umgehungsmultiplexer 26 und der Lesepuffer 28 sind alles Komponenten, die im Stand der Technik wohlbekannt sind. Sie können in einer Vielzahl wohlbekannter konfigurationen verbunden werden, und sind in Fig. 1 nur zum Zwecke der Darstellung in Blockform gezeigt, da sie selbst keinen Teil der vorliegenden Erfindung bilden. Gleichermaßen sind die CPU 12, der CPU-Cache 16, die Steuereinheit 18 und die I/O-Einheit 20, die als Teil jeder der CPUs 12 gezeigt sind, jeweils wohlbekannte Komponenten, die auf eine Vielzahl wohlbekannter Konfigurationen verbunden werden können, und sind nur zu Zwecken der Darstellung in Blockform gezeigt, da sie selbst keinen Teil der vorliegenden Erfindung bilden.
  • Das Verfahren der vorliegenden Erfindung ist im System-Flußdiagramm der Fig. 2 gezeigt. Das SCU-Directory 8 bestimmt, daß die aktuellste Version der durch eine Anfragende der CPUs 12 angefragten Daten nicht im SCU-Hauptspeicher 6 ist, sondern vielmehr in einer anderen der CPUs 12, die durch das SCU-Directory 8 gemäß einem Verfahren lokalisiert wird, das im Stand der Technik wohlbekannt ist. Die von der Lokalisierten der CPUs 12 übertragenen Daten mit der aktuellsten Version der angefragten Daten werden zum Speicheruntersystem 22 der SCU 4 übertragen. Die Befehlsinformation der SCU 4 wird durch das Speicheruntersystem 22 verarbeitet, um die richtige Adresse zur Auswahl der angefragten Daten vom SCU-Hauptspeicher 6 zu decodieren.
  • Die ausgewählte Adresse wird dann vom Speicheruntersystem 22 zum SCU- Hauptspeicher 6 durchgelassen. Der Zeitzyklus für den SCU-Hauptspeicher 6 wird dann angezeigt. Bevor Daten, die aus der Lokalisierten der CPUs 12 wiedergewonnen werden, zum SCU-Hauptspeicher durchgelassen werden, wird ihre Gültigkeit als aktuellste Version der angefragten Daten im Speicheruntersystem 22 geprüft. Wenn die geprüften Daten für gültig erklärt sind, werden sie in den Schreibpuffer 24 geladen, und der Schreibpuffer 24 überträgt dann die geladenen Daten gleichzeitig in sowohl den SCU-Hauptspeicher 6 als auch den Umgehungsmultiplexer 26. Wenn die geprüften Daten durch das Speicheruntersystem 22 nicht für gültig erklärt sind, werden die Daten auch in den Schreibpuffer 24 geladen, aber dann werden nur die gültigen Teile der geladenen Daten in den SCU-Hauptspeicher 6 bei der ausgewählten Adresse geschrieben. Wenn der Schreibzyklus für die ausgewahlte Adresse beendet ist, zeigt das Speicheruntersystem 22 einen Lesezyklus des SCU-Hauptspeichers 6 bei der ausgewählten Adresse an. Die vom SCU- Hauptspeicher 6 bei der ausgewählten Adresse gelesenen Daten werden dann eine Mischung aus neu für gültig erklärten Daten, die von der Lokalisierten der CPUs 12 übertragen sind, und den alten Daten, die bereits im SCU-Hauptspeicher 6 gespeichert sind. Die gelesenen Daten werden dann zum Umgehungsmultiplexer 26 durchgelassen.
  • Der Umgehungsmultiplexer 26 bietet eine gemeinsame Übertragungsstelle für die für gültig erklärten Daten, die zu ihm direkt vom Schreibpuffer 24 durchgelassen werden, und die ausgelesenen Daten bei der ausgewählten Adresse vom SCU- Hauptspeicher 6. Der Umgehungsmultiplexer 26 überträgt entweder die vom Schreibpuffer 24 empfangenen für gültig erklärten Daten oder die von der ausgewählten Adresse des SCU-Hauptspeichers 6 gelesenen Daten in den Lesepuffer 28. Der Lesepuffer 28 überträgt dann die gepufferten Daten zur Anfragenden der CPUs 12.
  • Somit werden dann, wenn die aktuellste Version von Daten, die durch eine Anfragende der CPUs 12 angefragt werden, nur vom Cache 16 einer anderen der CPUs verfügbar ist, die angefragten Daten von der Lokalisierten der CPUs 12 wiedergewonnen und dann über die SCU 4 zur Anfragenden der CPUs 12 mit einem von zwei möglichen dualen Operationsprogrammzyklen übertragen, die beide den SCU-Hauptspeicher 6 erneuern, wenn die angefragten Daten durch die SCU 4 übertragen werden. Wenn sie von der Lokalisierten der CPUs 12 durch das Speicheruntersystem 22 als gültig (am aktuellsten) bestätigt werden, werden die Daten in den SCU-Hauptspeicher 6 geschrieben, während sie durch das Speicheruntersystem 22 ohne einen nachfolgenden Lesezyklus des SCU-Hauptspeichers 6 zur Anfragenden der CPUs 12 übertragen werden. Wenn die hervorgeholten Daten durch das Speicheruntersystem 22 nicht als gültig bestätigt werden können, werden die Teile der hervorgeholten Daten, die als gültig bestimmt werden können, bei der ausgewählten Adresse für die angefragten Daten im SCU-Hauptspeicher 6 geschrieben. Dann wird der SCU-Hauptspeicher 6 in seiner Gesamtheit bei derselben ausgewählten Adresse bei derselben Operation gelesen, was gelesene Daten liefert, die den angefragten Daten entsprechen. Die gelesenen Daten sind eine Mischung aus den gültigen Teilen der Daten, die von der Lokalisierten der CPUs 12 hervorgeholt sind, zusammen mit Teilen gespeicherter Daten im SCU- Hauptspeicher 6, die den anderen Teilen der angefragten Daten entsprechen. Die gelesenen Daten bilden eine vollständige Datenübertragung der angefragten Daten für die Anfragende der CPUs 12.
  • Ein bevorzugtes Ausführungsbeispiel des SCU-Speicheruntersystems 22 ist in Fig. 3 gezeigt. Das SCU-Speicheruntersystem 22 empfängt Befehlsinformation von der SCU 4 in einem Adressendecodierer 30 auf einer Befehlsleitung 32. Der Adressendecodierer 30 decodiert die ausgewählte Adresse zur Speicherung der hervorgeholten Daten im SCU-Hauptspeicher 6 von der Befehlsinformation. Die decodierte Adresse vom Adressendecodierer 30 wird zu einer Hauptspeichersteuerung 34 über eine Adressenleitung 36 geführt. Die Speichersteuerung 34 überträgt die ausgewählte Adresse in den SCU-Hauptspeicher 6 über eine Auswahlleitung 38. Die Speichersteuerung 34 beginnt dann einen Zeitzyklus für den SCU-Hauptspeicher 6, wobei Referenztaktsignale zum Hauptspeicher 6 über eine Taktleitung 40 und Speicherfeldhinweissignale zum Hauptspeicher 6 über eine Speicherfeldhinweisleitung 42 geführt werden, um die ausgewählte Adresse zu verriegeln. Das Speicheruntersystem 22 enthält auch einen Gültigkeitsprüfer 44 zum Prüfen der Gültigkeit der Daten, die von der Lokalisierten der CPUs 12 hervorgeholt werden, und die zum Gültigkeitsprüfer 44 über eine Gültigkeitseingabeleitung 46 geführt werden. Die hervorgeholten Daten werden auch über eine Schreibpuffereingabeleitung 48 zum Schreibpuffer 24 geführt. Der Schreibpuffer 24 kann typischerweise eine Latch-Schaltung zum Zwischenspeichern und Speichern der hervorgeholten Daten enthalten, bis sie durch ein Schreibdaten-Latchsignal freigegeben wird, das durch die Hauptspeichersteuerung 34 zugeführt und über eine Schreibpuffer-Latchleitung 50 zum Schreibpuffer 24 geführt wird.
  • Der Gültigkeitsprüfer 44 führt ein Gültigkeitssignal zur Hauptspeichersteuerung 34 über eine Gültigkeitssignalleitung 52. Wenn das Gültigkeitssignal auf der Leitung 52 einen gültigen Zustand anzeigt, speichert die Hauptspeichersteuerung 34 die im Schreibpuffer 24 gespeicherten Daten mit dem Schreibpuffer-Latchsignal auf der Leitung 50 nicht mehr zwischen, um die nicht mehr zwischengespeicherten Daten über eine Schreibpufferausgabeleitung 54 bei der auf der Leitung 38 zum SCU- Hauptspeicher 6 gesendeten ausgewählten Adresse zum SCU-Hauptspeicher 6 zu führen. Gleichzeitig führt die Hauptspeichersteuerung 34 ein Multiplexer- Latchsignal über eine Multiplexer-Latchleitung 56 zum Umgehungsmultiplexer 26, was zuläßt, daß die durch den Schreibpuffer 24 nicht mehr zwischengespeicherten Daten durch den Umgehungsmultiplexer 26 über eine Umgehungsleitung 58 in den Lesepuffer 28 über eine Lesepuffereingabeleitung 60 durchgelassen werden. Die in den Lesepuffer 28 geführten Daten werden mit einem Lesepuffer-Latchsignal auf einer Lesepuffer-Latchleitung 62 zwischengespeichert, und dann werden die zwischengespeicherten Daten vom Lesepuffer 28 durch die Hauptspeichersteuerung 34 am Ende des Operationszyklus mit dem Lesepuffer-Latchsignal freigegeben. Die durch den Lesepuffer 28 freigegebenen Daten werden dann zur Anfragenden der CPUs 12 über eine Lesepufferausgabeleitung 64 übertragen.
  • Wenn das Gültigkeitssignal auf der Leitung 52 keinen gültigen Zustand anzeigt, speichert die Hauptspeichersteuerung die Daten immer noch nicht mehr zwischen, die im Schreibpuffer 24 mit dem Schreibpuffersignal auf der Leitung 50 gespeichert sind, aber die Hauptspeichersteuerung 34 führt nicht das Multiplexersignal auf der Leitung 56 zum Umgehungsmultiplexer 26, so daß die freigegebenen Daten nur auf der Leitung 54 zum SCU-Hauptspeicher 6 geführt werden. Wie es wohlbekannt ist, speichert die Hauptspeichersteuerung 34 nur jene Teile der empfangenen Daten nicht mehr zwischen, die durch den Gültigkeitsprüfer 44 als gültig bestätigt sind.
  • Nachdem alle für gültig erklärten Daten geschrieben sind, befiehlt die Hauptspeichersteuerung 34 dem SCU-Hauptspeicher 6, die bei der ausgewählten Adresse gespeicherten Daten mit einem Auswahlsignal auf der Leitung 38 zu lesen. Die vom Ausgang des SCU-Hauptspeichers 6 gelesenen Daten werden über eine Speicherausgabeleitung 66 zum Umgehungsmultiplexer 26 geführt. Der Umgehungsmultiplexer 26 läßt die durch den SCU-Hauptspeicher 6 gelesenen Daten über die Leitung 60 zum Lesepuffer 28 durch. Die in den Lesepuffer 28 geführten Daten werden mit dem Lesepuffer-Latchsignal auf der Leitung 62 zwischengespeichert und dann werden die zwischengespeicherten Daten durch die Hauptspeichersteuerung 34 zur Übertragung zu der Anfragenden der CPUs 12 über die Lesepufferausgabeleitung 64 vom Lesepuffer 28 freigegeben.
  • Der Adressendecodierer 30, die Speichersteuerung 34 und der Gültigkeitsprüfer 44, die in Fig. 3 gezeigt sind, sind wohlbekannte Komponenten, die auf eine Vielzahl wohlbekannter Konfigurationen verbunden werden können, und sind in Fig. 3 nur zum Zwecke einer Darstellung in Blockform gezeigt, da sie selbst keinen Teil der vorliegenden Erfindung bilden.
  • Somit sind oben Speicheruntersystemzyklen für eine SCU mit einem Hauptspeicher beschrieben worden, die eine Speicherlese-Latenzzeit minimieren, wenn Daten von einem Rückschreibcache einer ausgewählten CPU durch die SCU zu einer anfragenden CPU übertragen werden und die übertragenen Daten auch den Hauptspeicher erneuern. Die Zyklen enthalten eine duale Betriebsart, nämlich einen "SCHREIB-UMGEHUNGS"-Zyklus, die gleichzeitig mit als gültig bestätigten übertragenen Daten die übertragenen Daten in eine ausgewählte Adresse des SCU-Hauptspeichers schreibt und die Daten weiter zu einer Anfragenden CPU überträgt, ohne einen Lesezyklus dazwischen zu haben, und eine weitere duale Betriebsart, nämlich einen "SCHREIB-LESE"-Zyklus, die bei übertragenen Daten, die nicht als gültig bestätigt sind, Teile der unbestätigten Daten, die als gültig bestimmt sind, in den SCU-Hauptspeicher schreibt, und dann dieselben ausgewählten Adressen im SCU-Hauptspeicher bei derselben Operation liest und die gelesenen Daten zur anfragenden CPU überträgt.
  • Es wird verstanden werden, daß verschiedene Abänderungen bezüglich der Details, Anordnungen und Konfigurationen der Teile und Anordnungen, die oben zum Erklären der Art der vorliegenden Erfindung beschrieben und dargestellt worden sind, von Fachleuten auf dem technischen Gebiet innerhalb des Schutzumfangs der vorliegenden Erfindung gemäß den beigefügten Ansprüchen durchgeführt werden können.
  • Es ist folgendes beansprucht;

Claims (4)

1. Für ein digitales Computersystem mit einer Systemsteuereinheit SCU (4) mit einem Hauptspeicher (6) und einer Vielzahl zentraler Verarbeitungseinheiten (CPUs) (12), wobei jede CPU ihren eigenen zugehörigen Rückschreibcache (16) aufweist, ein Verfahren zum Übertragen angefragter Daten zu einer Anfragenden der CPUs vom Cache einer Ausgewählten der anderen CPUs durch die SCU und zum Erneuern des SCU-Hauptspeichers, das folgende Schritte aufweist:
Feststellen (8) in der SCU, daß die angefragten Daten als die aktuellste Version nicht im Hauptspeicher (6) gültig sind, sondern im Cache der ausgewählten CPU;
Übertragen der angefragten Daten vom Cache der ausgewählten CPU zur SCU;
Prüfen der übertragenen Daten, um festzustellen, daß die übertragenen Daten alles gültige Daten oder nur teilweise gültige Daten sind;
wenn festgestellt wird, daß die übertragenen Daten alles gültige Daten sind,
(a) Übertragen der gesamten gültigen Daten zur anfragenden CPU; und
(b) gleichzeitiges Schreiben der gesamten gültigen Daten in den SCU-Hauptspeicher an einer ausgewählten Adresse; oder
wenn festgestellt wird, daß die übertragenen Daten nur teilweise gültige Daten sind,
(a) Bestimmen der gültigen Teile der übertragenen Daten;
(b) Schreiben nur der gültigen Teile der Daten in den SCU- Hauptspeicher an einer ausgewählten Adresse, während bei derselben Operation ein Lesen vom SCU-Hauptspeicher an der ausgewählten Adresse erfolgt, wobei Daten eine Mischung aus den gültigen Teilen der übertragenen Daten mit Teilen von im Hauptspeicher gespeicherten Daten sind, die den anderen Teilen der angefragten Daten entsprechen; und
(c) Übertragen der gelesenen Daten zur anfragenden CPU.
2. Verfahren zum Übertragen nach Anspruch 1, das weiterhin folgende Schritte aufweist:
Empfangen (32) von Befehlsinformationen von der SCU;
Decodieren (30) einer Speicheradresse im Hauptspeicher für die angefragten Daten aus den Befehlsinformationen;
Übertragen (36, 34, 40, 42) der decodierten Adressen (38) zum Hauptspeicher; und
Zwischenspeichern der decodierten Adresse im Hauptspeicher.
3. In einem digitalen Computersystem mit einer Systemsteuereinheit SCU (4) mit einem Hauptspeicher (16) und einer Vielzahl zentraler Verarbeitungseinheiten (CPUs) (12), wobei jede CPU ihren eigenen zugehörigen Rückschreibcache (16) aufweist, ein Gerät zum Übertragen angefragter Daten zu einer Anfragenden der CPUs vom Cache einer Ausgewählten der anderen CPUs durch die SCU und zum Erneuern des SCU-Hauptspeichers, das folgendes aufweist:
eine Einrichtung (8) zum Feststellen, daß die angefragten Daten als aktuellste Version nicht im Hauptspeicher (6) gültig sind, sondern im Cache der ausgewählten CPU;
eine Einrichtung (16, 18, 48) zum Übertragen der angefragten Daten vom Cache der ausgewählten CPU zur SCU;
eine Einrichtung (44) zum Prüfen der übertragenen Daten, um festzustellen, daß die übertragenen Daten alles gültige Daten oder nur teilweise gültige Daten sind;
eine Einrichtung (34, 26, 28) zum Übertragen aller gültigen Daten zur anfragenden CPU;
eine Einrichtung (34, 26) zum Initiieren des Schreibens aller gültigen Daten im SCU-Hauptspeicher an einer ausgewählten Adresse gleichzeitig mit einem Übertragen aller gültigen Daten zur anfragenden CPU;
eine Einrichtung (44) zum Bestimmen der gültigen Teile der nur teilweise gültigen Daten;
eine Einrichtung (34, 26) zum Initiieren des Schreibens nur der gültigen Teile der nur teilweise gültigen Daten in den SCU-Hauptspeicher an der ausgewählten Adresse, während bei derselben Operation das Lesen vom SCU- Hauptspeicher an der ausgewählten Adresse von Daten initiiert wird, die eine Mischung aus den gültigen Teilen der übertragenen Daten mit Teilen von im Hauptspeicher gespeicherten Daten sind, die den anderen Teilen der angefragten Daten entsprechen; und
eine Einrichtung (34, 28) zum Übertragen der gelesenen Daten zur anfragenden CPU.
4. Gerät zum Übertragen nach Anspruch 3, das weiterhin folgendes aufweist:
eine Einrichtung zum Empfangen von Befehisinformationen von der SCU;
eine Einrichtung (30) zum Decodieren einer Speicheradresse im Hauptspeicher für die angefragten Daten aus den Befehlsinformationen;
eine Einrichtung (34) zum Übertragen der decodierten Adresse zum Hauptspeicher; und
eine Einrichtung zum Zwischenspeichern der decodierten Adresse im Hauptspeicher.
DE68928343T 1989-01-27 1989-07-03 Schreib-Lese/Schreib-Weitergabe-Speichersubsystemzyklus Expired - Fee Related DE68928343T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/302,839 US5185875A (en) 1989-01-27 1989-01-27 Method and apparatus for reducing memory read latency in a shared memory system with multiple processors

Publications (2)

Publication Number Publication Date
DE68928343D1 DE68928343D1 (de) 1997-10-30
DE68928343T2 true DE68928343T2 (de) 1998-05-07

Family

ID=23169428

Family Applications (1)

Application Number Title Priority Date Filing Date
DE68928343T Expired - Fee Related DE68928343T2 (de) 1989-01-27 1989-07-03 Schreib-Lese/Schreib-Weitergabe-Speichersubsystemzyklus

Country Status (6)

Country Link
US (1) US5185875A (de)
EP (1) EP0379769B1 (de)
JP (1) JPH0642230B2 (de)
AT (1) ATE158661T1 (de)
CA (1) CA1323446C (de)
DE (1) DE68928343T2 (de)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5371874A (en) * 1989-01-27 1994-12-06 Digital Equipment Corporation Write-read/write-pass memory subsystem cycle
US5287512A (en) * 1990-08-06 1994-02-15 Ncr Corporation Computer memory system and method for cleaning data elements
US5420994A (en) * 1990-08-06 1995-05-30 Ncr Corp. Method for reading a multiple byte data element in a memory system with at least one cache and a main memory
EP0475730B1 (de) * 1990-09-14 1997-12-10 Digital Equipment Corporation Schreib-Lese/Schreib-Weitergabe-Zyklus für Speicheruntersystem
JPH0827755B2 (ja) * 1991-02-15 1996-03-21 インターナショナル・ビジネス・マシーンズ・コーポレイション データの単位を高速度でアクセスする方法
US5530835A (en) * 1991-09-18 1996-06-25 Ncr Corporation Computer memory data merging technique for computers with write-back caches
US5491811A (en) * 1992-04-20 1996-02-13 International Business Machines Corporation Cache system using mask bits to recorder the sequences for transfers of data through cache to system memory
JP3309425B2 (ja) * 1992-05-22 2002-07-29 松下電器産業株式会社 キャッシュ制御装置
US5862358A (en) * 1994-12-20 1999-01-19 Digital Equipment Corporation Method and apparatus for reducing the apparent read latency when connecting busses with fixed read reply timeouts to CPUs with write-back caches
US5829052A (en) * 1994-12-28 1998-10-27 Intel Corporation Method and apparatus for managing memory accesses in a multiple multiprocessor cluster system
JPH08314794A (ja) * 1995-02-28 1996-11-29 Matsushita Electric Ind Co Ltd 安定記憶装置へのアクセス待ち時間を短縮するための方法およびシステム
US5625778A (en) * 1995-05-03 1997-04-29 Apple Computer, Inc. Method and apparatus for presenting an access request from a computer system bus to a system resource with reduced latency
US5867642A (en) * 1995-08-10 1999-02-02 Dell Usa, L.P. System and method to coherently and dynamically remap an at-risk memory area by simultaneously writing two memory areas
JP2814988B2 (ja) * 1996-04-12 1998-10-27 日本電気株式会社 障害処理方式
US6098115A (en) * 1998-04-08 2000-08-01 International Business Machines Corporation System for reducing storage access latency with accessing main storage and data bus simultaneously
US6401175B1 (en) * 1999-10-01 2002-06-04 Sun Microsystems, Inc. Shared write buffer for use by multiple processor units
US7099997B2 (en) * 2003-02-27 2006-08-29 International Business Machines Corporation Read-modify-write avoidance using a boundary word storage mechanism
US7320063B1 (en) * 2005-02-04 2008-01-15 Sun Microsystems, Inc. Synchronization primitives for flexible scheduling of functional unit operations
US9037670B2 (en) * 2012-09-18 2015-05-19 Cisco Technology, Inc. Ultra low latency network buffer storage

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3771137A (en) * 1971-09-10 1973-11-06 Ibm Memory control in a multipurpose system utilizing a broadcast
FR129151A (de) * 1974-02-09
US4142234A (en) * 1977-11-28 1979-02-27 International Business Machines Corporation Bias filter memory for filtering out unnecessary interrogations of cache directories in a multiprocessor system
US4228503A (en) * 1978-10-02 1980-10-14 Sperry Corporation Multiplexed directory for dedicated cache memory system
JPS55134459A (en) * 1979-04-06 1980-10-20 Hitachi Ltd Data processing system
US4410944A (en) * 1981-03-24 1983-10-18 Burroughs Corporation Apparatus and method for maintaining cache memory integrity in a shared memory environment
US4503497A (en) * 1982-05-27 1985-03-05 International Business Machines Corporation System for independent cache-to-cache transfer
US4695951A (en) * 1983-07-07 1987-09-22 Honeywell Bull Inc. Computer hierarchy control
US4747043A (en) * 1984-02-10 1988-05-24 Prime Computer, Inc. Multiprocessor cache coherence system
US4663742A (en) * 1984-10-30 1987-05-05 International Business Machines Corporation Directory memory system having simultaneous write, compare and bypass capabilites
US4847804A (en) * 1985-02-05 1989-07-11 Digital Equipment Corporation Apparatus and method for data copy consistency in a multi-cache data processing unit
US4755930A (en) * 1985-06-27 1988-07-05 Encore Computer Corporation Hierarchical cache memory system and method
US5018063A (en) * 1988-12-05 1991-05-21 International Business Machines Corporation Method for reducing cross-interrogate delays in a multiprocessor system

Also Published As

Publication number Publication date
JPH0642230B2 (ja) 1994-06-01
US5185875A (en) 1993-02-09
CA1323446C (en) 1993-10-19
ATE158661T1 (de) 1997-10-15
JPH02205964A (ja) 1990-08-15
EP0379769B1 (de) 1997-09-24
EP0379769A3 (de) 1991-06-19
EP0379769A2 (de) 1990-08-01
DE68928343D1 (de) 1997-10-30

Similar Documents

Publication Publication Date Title
DE68928343T2 (de) Schreib-Lese/Schreib-Weitergabe-Speichersubsystemzyklus
DE3751426T2 (de) Busschnittstellenschaltung für digitalen Datenprozessor.
DE3689488T2 (de) Speicheranordnung mit vereinfachtem und schnellem Daten-Cachespeicher.
DE68923403T2 (de) Verfahren und Anordnung zur Adressierung eines Seitenmodus-Speichers in einem Computersystem.
DE3750107T2 (de) Cachespeicherkohärenzsteuerung mit einem Speicher, der ein laufendes Lesen anzeigt.
DE69203842T2 (de) Speichersteuerungsvorrichtung mit Snoop-Mechanismus.
DE69029173T2 (de) Mikroprozessor
DE68924306T2 (de) Mehrprozessorrechneranordnungen mit gemeinsamem Speicher und privaten Cache-Speichern.
DE68902193T2 (de) Datenspeicheranordnung.
DE69319763T2 (de) Verfahren und Gerät zur Durchführung eines Busarbitrierungsprotokolls in einem Datenverarbeitungssystem
DE3486161T2 (de) Datenverarbeitungssystem mit Datenkohärenz.
DE69031967T2 (de) Informationsverarbeitungsanordnung
DE3854368T2 (de) Cachespeicher mit einer Elastizität in der Verarbeitung verschiedener Adressenfehler.
DE3782335T2 (de) Speichersteuersystem.
DE69031411T2 (de) Verfahren und Anordnung zum Lesen, Schreiben und Auffrischen eines Speichers mit direktem virtuellem oder physikalischem Zugriff
DE69628493T2 (de) Cache-kohärentes Computersystem, das Entwertungs- und Rückschreiboperationen minimiert
DE3687947T2 (de) Schnittstelle und Verfahren für Buszugriff in einem Rechner.
DE69025658T2 (de) Verfahren zur Verbesserung der Leistung eines mehrstufigen Cachespeichers durch erzwungene Fehlgriffe
DE3852695T2 (de) Multiprozessorsystem mit mehreren Speichern.
DE3439302A1 (de) Speichersteuerungsvorrichtung
DE3803759A1 (de) Cache-speicher zur verwendung in multiprozessor-systemen
DE3588061T2 (de) Speicherzugriffs-Steuerungssystem und -Verfahren für ein Informationsverarbeitungsgerät.
DE69322051T2 (de) Wartezustandsteuerung auf einem Informationverarbeitungssystembus
DE69131761T2 (de) Datenverarbeitung zur Kohärenzaufrechterhaltung von Cache-Speicherdaten
DE69227267T2 (de) Datencache-Speicher und Verfahren zur Speicherfehlerbehandlung während Zurückschreiben

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee