DE69628493T2 - minimizes cache coherent computer system that Entwertungs- and write-backs - Google Patents

minimizes cache coherent computer system that Entwertungs- and write-backs

Info

Publication number
DE69628493T2
DE69628493T2 DE69628493T DE69628493T DE69628493T2 DE 69628493 T2 DE69628493 T2 DE 69628493T2 DE 69628493 T DE69628493 T DE 69628493T DE 69628493 T DE69628493 T DE 69628493T DE 69628493 T2 DE69628493 T2 DE 69628493T2
Authority
DE
Germany
Prior art keywords
read
request
share
data block
subsystem
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 - Lifetime
Application number
DE69628493T
Other languages
German (de)
Other versions
DE69628493D1 (en
Inventor
Louis F. San Jose Coffin III
Zahir Mountain View Ebrahim
Leslie Fremont Kohn
Satyanarayana Cupertino Nishtala
Kevin Mountain View Normoyle
William Palo Alto Van Loo
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.)
Oracle America Inc
Sun Microsystems Inc
Original Assignee
Oracle America Inc
Sun Microsystems Inc
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
Priority to US42301695A priority Critical
Priority to US423016 priority
Application filed by Oracle America Inc, Sun Microsystems Inc filed Critical Oracle America Inc
Application granted granted Critical
Publication of DE69628493T2 publication Critical patent/DE69628493T2/en
Anticipated expiration legal-status Critical
Application status is Expired - Lifetime legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; 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
    • G06F12/0822Copy directories
    • GPHYSICS
    • G06COMPUTING; 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

Description

  • 1. GEBIET DER ERFINDUNG 1. FIELD OF THE INVENTION
  • Die vorliegende Erfindung betrifft das Gebiet von Computersystemen. The present invention relates to the field of computer systems. Insbesondere betrifft diese Erfindung ein Multiprozessor-Computersystem mit einem Mechanismus zur Verringerung des Auftretens von Entwertungsoperationen und Rückschreiboperationen zur Aufrechterhaltung der Datenkohärenz. More particularly, this invention relates to a multiprocessor computer system having a mechanism for reducing the occurrence of cancellation operations, and write-back operations to maintain the data coherency.
  • 2. HINTERGRUND 2. BACKGROUND
  • Frühere Multiprozessor-Computersysteme enthalten für gewöhnlich einen Satz von Prozessoruntersystemen, die an ein Hauptspeicheruntersystem gekoppelt sind. Earlier multiprocessor computer systems include a set of processor subsystems are coupled to a main memory subsystem usually. Ein solches Hauptspeicheruntersystem stellt für gewöhnlich Befehls- und Datenspeicherbereiche für die Prozessoren in dem System bereit, wie auch Speicherbereiche für Datenstrukturen, die von den Prozessoren des Systems gemeinsam benützt werden. Such a main memory subsystem provides, as well as storage areas for data structures that are shared by the processors of the system. Usually instruction and data memory areas for the processors in the system Solche gemeinsam benützten Datenstrukturen ermöglichen eine Kommunikation unter den Prozessoren und eine gemeinsame Benützung von Daten und Codes zwischen den Prozessoren. Such-shared data structures enable communication among the processors and a common use of data and codes between the processors.
  • Für gewöhnlich sind die Prozessoruntersysteme an das Hauptspeicheruntersystem über. Typically, the processor subsystems to the main memory subsystem are. eine physische Zwischenverbindung, wie einen gemeinsamen Bus oder einen geschalteten Verbindungsdatenpfad gekoppelt. coupled a physical interconnection, such as a common bus or a switched connection data path. Eine solche Zwischenverbindung kann entweder als eine einfache leitungsvermittelte Verbindung oder als eine komplexere paketvermittelte Verbindung, die "out of order" (nicht in der originalen Reihenfolge) Transaktionen ermöglicht, funktionieren. Such intermediate can either be a simple circuit-switched connection or as a more complex packet-switched connection, the "out of order" (not in the original order) allows transactions work.
  • Zusätzlich enthält jedes Prozessoruntersystem für gewöhnlich einen zugehörigen externen Cache-Speicher. In addition, each processor subsystem includes an associated external cache memory usually. Ein solcher externer Cache-Speicher speichert normalerweise ausgewählte Datenblöcke von dem Hauptspeicheruntersystem. Such an external cache memory typically stores selected data blocks from the main memory subsystem. Für gewöhnlich stellt ein solcher externer Cache-Speicher einen schnellen Prozessorzugriff auf die Cache-gespeicherten Datenblöcke bereit, indem vermieden wird, dass Datenblöcke, die im Cache gespeichert sind, im Hauptspeicheruntersystem abgerufen werden. Usually provides such an external cache memory provides fast processor access to the cached data blocks by avoiding that data blocks stored in the cache are retrieved in the main memory subsystem.
  • Ein solches Multiprozessor-Computersystem, egal ob paketvermittelt oder leitungsvermittelt, implementiert für gewöhnlich ein Protokoll zur Aufrechterhaltung der Datenkohärenz zwischen dem Hauptspeicher und den entsprechenden Datenblöcken, die in den Cache-Speichern gespeichert sind. Such a multiprocessor computer system, whether packet switched or circuit switched, implements a protocol for maintaining data coherency between the main memory and the corresponding data blocks stored in the cache memories usually. Jeder Cache-Speicher enthält für gewöhnlich einen Satz von Kennungen, die den Status der Cache-gespeicherten Datenblöcke anzeigen. Each cache contains a set of identifiers that indicate the status of the cached data blocks usually. Zum Beispiel unterhält eine Art von Cache-Kohärenzprotokoll, das als MOESI-Protokoll bezeichnet wird, einen Satz von fünf Zuständen für Datenblöcke, die in den Cache-Speichern gespeichert sind. For example, maintains a type of cache coherency protocol that is known as MOESI protocol, a set of five states for data blocks stored in the cache memories. Die Zustände beinhalten einen "ungültigen" Zustand, einen "gemeinsam benutzten" Zustand, einen "exklusiven" Zustand und einen "modifizierten" Zustand. The states include an "invalid" state, a "shared" state, an "exclusive" state and a "modified" state.
  • Wenn in einem solchen System ein erster Prozessor einen Ladespeicherbefehl ausführt, der an einen Datenblock gerichtet ist, der sich nicht in dem externen Cache für den ersten Prozessor befindet, dann wird der richtige Datenblock extern abgerufen. If a first processor executes a load instruction memory in such a system which is directed to a data block which is not in the external cache for the first processor, the correct data block is accessed externally. Für gewöhnlich gibt der erste Prozessor eine read_to_share (RDS) Transaktion, die den fehlenden Datenblock spezifiziert, an die Speicherverbindung aus. Usually, the first processor is a read_to_share (RDS) transaction that specifies the missing data block to the memory connection. Eine solche read_to_share (RDS) Transaktion führt normalerweise den fehlenden Datenblock zu dem externen Cache des ersten Prozessors zurück und die Kennungen, die dem Datenblock in dem externen Cache des ersten Prozessors zugeordnet sind, werden modifiziert, um anzuzeigen, dass der Datenblock in einem "gemeinsam benutzten" ("shared") Zustand Cache-gespeichert ist. Such read_to_share (RDS) transaction typically performs the missing data block to the external cache of the first processor back, and the identifiers that are associated with the data block in the external cache of the first processor are modified to indicate that the data block together in a " used "(" shared ") state is cached.
  • Ein Multiprozessor-Computersystem kann bei einem solchen MOESI-Protokoll eine erste Schreiboptimierung implementieren. A multiprocessor computer system may implement a first write optimization in such MOESI protocol. Mit einer solchen Optimierung führt eine read_to_share (RDS) Transaktion von dem ersten Prozessor den fehlenden Datenblock zurück und modifiziert die Kennungen, die dem fehlenden Datenblock zugeordnet sind, um den "exklusiven" Zustand anzuzeigen, wenn kein anderer Cache-Speicher über den Datenblock verfügt. With such an optimization a read_to_share (RDS) transaction by the first processor returns the missing data block and modifies the identifiers that are assigned to the missing data block to indicate the "exclusive" state if no other cache has the data block. Danach, wenn der erste Prozessor Speicherbefehle an diesem exklusiven Datenblock ausführt, werden keine anderen Cache-Kohärenznachrichten durch die Speicherverbindung übertragen. Thereafter, when the first storage processor executes instructions in this exclusive data block, no other cache coherency messages are transmitted by the memory connection. Eine solche Optimierung verrichtet auf eine Entwertungs- oder Rückschreiboperation durch die Speicherverbindung, die andernfalls einträte, wenn der Datenblock im "gemeinsam benutzten" Zustand Cache-gespeichert wäre. Such optimization done on one Entwertungs- or write-back through the store link that otherwise supervened when the data block in the "shared" state would be cached.
  • Eine solche Schreiboptimierung an dem MOESI-Protokoll beruht für gewöhnlich. Such a write optimization to the MOESI protocol is usually due. auf einer Annahme, dass eine read_to_share (RDS) Transaktion von dem ersten Prozessor, die auf einen Datenblock gerichtet ist, über den kein anderer Prozessor verfügt, einem privaten Datenblock für den ersten Prozessor entspricht. on an assumption that a read_to_share (RDS) transaction by the first processor, which is directed to a block of data on which no other processor has, corresponding to a private data block for the first processor. Wenn eine solche Annahme falsch ist und der fehlende Datenblock nicht aus privaten Daten besteht, kann ein zweiter Prozessor später eine read_to_share (RDS) Transaktion durch die Speicherverbindung für diesen Datenblock ausgeben. If such an assumption is wrong and the missing data block does not consist of private data, a second processor may later read_to_share (RDS) transaction output by the memory connection for this data block. In einem solchen Fall muss der erste Prozessor für gewöhnlich den fehlenden Datenblock zu dem zweiten Prozessor im Zuge einer Rückschreiboperation leiten, auch wenn der erste Prozessor den Datenblock nicht modifiziert haben mag, und auch wenn der fehlende Datenblock vom Hauptspeicher erhältlich ist. In such a case, the first processor is usually the missing data block to the second processor during a write-back operation needs to conduct, even if the first processor may not have modified the data block, and even if the missing data block from the main memory is available.
  • Leider kann eine solche Datenerfassung durch den externen Cache-Speicher des ersten Prozessor-Cache die Operation des ersten Prozessors stören, da eine solche äußere Konkurrenzsituation die Befehlsausführung durch den ersten Prozessor stört. Unfortunately, such a data acquisition by the external cache memory of the first processor cache may interfere with the operation of the first processor, as such an external competitive situation interferes with the instruction execution by the first processor. Zusätzlich erzeugt eine solche unnötige Entwertungs- und Rückschreiboperation durch die Speicherverbindung einen zusätzlichen Verkehr in der Zwischenverbindung, der sonst vermieden werden könnte. In addition, such unnecessary Entwertungs- and write-back generated by the storage interconnect an additional traffic in the interconnect that could otherwise be avoided. Ferner ist der Durchsatz eines solchen Systems für gewöhnlich verringert, wenn Daten von einem Cache-Speicher in einer read_to_share (RDS) Transaktion und nicht von dem Hauptspeicher geliefert werden, da ein Hauptspeicher für gewöhnlich für einen hohen Bandbreitenzugriff optimiert ist. Furthermore, the throughput of such a system is usually reduced when data from a cache memory in a read_to_share (RDS) transaction and not from the main memory are supplied, as a main memory usually is optimized for high bandwidth access.
  • Hintergrundmaterial findet sich in US-A-5297269 und Computer Technology Review, Band 9, Nr. 10, 21. Juni 1989, S. 36 und 38, Borrill P., "Futurebus Protocols Keep Cache Data Consistent". Background material is found in US-A-5297269 and Computer Technology Review, Vol. 9, No. 10, June 21, 1989, p 36 and 38 Borrill P., "Futurebus Protocols Keep Data Consistent cache".
  • Das erstgenannte Dokument stellt ein Cache-Kohärenzprotokoll für ein Multiprozessorsystem bereit, das Lese/Schreib-, Nur-Lese- und Übergangsdatenzustände und eine Anzeige dieser Zustände, die in einem Speicherverzeichnis in Hauptspeicher gespeichert werden, bereitstellt. The former document provides a cache coherency protocol for a multiprocessor system read / write, read-only and transitional data states and a display of these states that are stored in a memory directory in main memory that provides. Der Übergangsdatenzustand tritt ein, wenn ein Prozessor vom Hauptspeicher einen Latenblock von einem Cache eines anderen Prozessors anfordert und die Anforderung auf Fertigstellung wartet. The transition data state occurs when a processor from the main storage requesting a late block from a cache of another processor and waits for the request to completion. Alle folgenden Leseanforderungen für den Datenblock, während die erste Anforderung in Schwebe ist, werden bis zur Fertigstellung der ersten Anforderung unterbunden. All subsequent read requests for the data block, while the first request is in suspension are prevented until completion of the first request. Ebenso ist in dem Speicherverzeichnis für jeden Datenblock ein Feld zur Identifizierung des Prozessors vorgesehen, der über den fraglichen Datenblock verfügt. Likewise, a field is provided for identifying the processor in the storage directory for each data block that has the relevant data block. Die Datenblock-Eigentümerinformation wird zur Bestimmung verwendet, wo sich angeforderte Daten in Eigentümerschaft befinden. The data block ownership information is used to determine where requested data is in ownership.
  • Das letztgenannte Dokument gibt einen Überblick über einige Cache-Speicherstrategien zur Verwendung in Multiprozessorsystemen und enthält eine Erklärung der MOESI-Datenzustände. The latter document provides an overview of some cache strategies for use in multi-processor systems and contains an explanation of the MOESI data states.
  • KURZDARSTELLUNG DER ERFINDUNG SUMMARY OF THE INVENTION
  • Die Erfindung ist durch die beiliegenden Ansprüche definiert. The invention is defined by the appended claims.
  • Es wird ein Computersystem offenbart, das eine erste Schreiboptimierung eines Cache-Kohärenzprotokolls für Daten selektiv freigibt und sperrt, das wahrscheinlich nicht von einem anfordernden Prozessor geschrieben wird. There is disclosed a computer system which selectively enables a first write optimization of a cache coherency protocol for data and blocks that probably will not be written by a requesting processor. Die Freigabe der ersten Schreiboptimierung verringert die Rückschreib- und Entwertungsnachrichten in einem Multiprozessorsystem bei Cache-Fehlmeldungen bezüglich Nur-Lese-Speicherseiten oder Befehlsabrufen. The release of the first write optimization reduces the write back and invalidation messages in a multiprocessor system with the cache miss messages regarding read-only memory pages or instruction fetch. Vorteile werden in Computersystemen erzielt, bei welchen Befehle unter Prozessoren in Nur-Lese-Codesegmenten gemeinsam benutzt werden, wie dies zum Beispiel in dynamischen Verbindungsbibliotheken der Fall sein kann. Advantages are obtained in computer systems are in which commands among processors shared in read-only code segments such as this may be, for example in dynamic link libraries in the case. Vorteile werden auch bei gemeinsam benutzten konstanten Nur-Lese-Daten und bei einer Prozessmigration von Prozessor zu Prozessor erreicht. Advantages are achieved even with shared constant read-only data and at a process migration from processor to processor.
  • Das Computersystem enthält einen Satz von Prozessoruntersystemen und eine Speicherverbindung. The computer system includes a set of processor subsystems and a memory interconnect. Jedes Prozessoruntersystem enthält einen externen Cache-Speicher mit externen Kennungen und die Speicherverbindung führt einen Satz von Kennungskopien, die den. Each processor subsystem includes an external cache memory with external identifiers and the memory connection performs a set of duplicate tags corresponding to the. externen Kennungen entsprechen. external identifiers correspond. Ein Prozessoruntersystem erzeugt eine "Read to Share Always"-Anforderung (Leseanforderung zur ständigen gemeinsamen Benutzung) nach einer Cache-Fehlmeldung bezüglich eines Nur-Lese-Datenblocks und erzeugt andernfalls eine Read to Share"-Anforderung (Leseanforderung zur gemeinsamen Benutzung). Die Speicherverbindung gibt den Zugang zu einem gemeinsam benutzten Speicher frei und steuert die Cache-Zustandsübergänge der externen Kennungen und der Kennungskopien, um die erste Schreiboptimierung selektiv freizugeben oder zu sperren. A processor sub-system generates a "read to share always" request (read request to the permanent joint use) after a cache miss message with respect to a read-only data block, and otherwise, a read to share "request is generated (read request for shared use). The storage connection gives access to a shared memory freely and controls the cache state transitions of the external tags and the duplicate tags to release or the first write optimizing selectively lock.
  • Andere Merkmale und Vorteile der vorliegenden Erfindung gehen aus den beiliegenden Zeichnungen und aus der folgenden ausführlichen Beschreibung hervor. Other features and advantages of the present invention will become apparent from the accompanying drawings and from the following detailed description.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN BRIEF DESCRIPTION OF THE DRAWINGS
  • Die vorliegende Erfindung wird beispielhaft und nicht einschränkend in den Figuren der beiliegenden Zeichnungen dargestellt, in welchen gleiche Bezugszeichen ähnliche Elemente anzeigen, und von welchen: The present invention is illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which:
  • 1 1 ein Computersystem zeigt, das einen Satz von Prozessoruntersystemen und ein Speicherverbindungsuntersystem umfasst, wobei jedes der Prozessoruntersysteme einen Cache-Speicher enthält; shows a computer system comprising a set of processor subsystems and a memory interconnect subsystem, wherein each of the processor subsystems includes a cache memory;
  • 2 2 das Cache-Kohärenzprotokoll der Kennungskopien in dem Speicherverbindungsuntersystem für eine Ausführungsform zeigt; the cache coherency protocol of the duplicate tags in the memory interconnect system for an embodiment;
  • 3 3 ein Prozessoruntersystem zeigt, das einen Prozessor, einen externen Cache mit dem zugehörigen Satz von Kennungskopien und eine Speicherverbindungsportschnittstelle zeigt; a processor sub-system displays, showing a processor, an external cache to the associated set of duplicate tags and a memory connection port interface;
  • 4 4 das Cache-Kohärenzprotokoll der externen Kennungen eines Prozessoruntersystems für eine Ausführungsform zeigt; the cache coherency protocol of the external tags of a processor subsystem for an embodiment;
  • 5 5 die Handhabung einer read_to_share (RDS) Transaktion mit Schreiboptimierung durch die Systemsteuerung zeigt; the handling of a read_to_share (RDS) transaction with write optimization by the system controller displays;
  • 6 6 die Handhabung einer read_to_share_always (RDSA) Transaktion mit Schreiboptimierung durch die Systemsteuerung zeigt. the handling of a read_to_share_always (RDSA) shows transaction with write optimization by the system controller.
  • AUSFÜHRLICHE BESCHREIBUNG DETAILED DESCRIPTION
  • 1 1 zeigt ein Computersystem shows a computer system 10 10 für eine Ausführungsform. for one embodiment. Das Computersystem The computer system 10 10 umfasst einen Satz von Prozessoruntersystemen comprises a set of processor subsystems 20 20 bis to 22 22 und ein Speicherverbindungsuntersystem and a memory interconnect subsystem 18 18 . , Jedes der Prozessoruntersysteme Each of the processor subsystems 20 20 bis to 22 22 enthält einen L2 Cache-Speicher. includes an L2 cache.
  • Das Speicherverbindungsuntersystem The memory interconnect subsystem 18 18 stellt einen gemeinsamen Zugang zu einem Hauptspeicher provides a common access to a main memory 14 14 für die Prozessoruntersysteme for the processor subsystems 20 20 bis to 22 22 bereit. ready. Die Prozessoruntersysteme The processor subsystems 20 20 bis to 22 22 kommunizieren mit dem Speicherverbindungsuntersystem communicate with the memory interconnect subsystem 18 18 über einen Satz von Speicherports a set of memory ports 1 1 bis N. Zum Beispiel umfasst der Port to N. For example, the port comprises 1 1 für das Prozessoruntersystem for the processor subsystem 20 20 einen Datenpfad a data path 40 40 , einen Adresspfad , An address path 42 42 und einen Steuerpfad and a control path 44 44 , und der Port N für das Prozessoruntersystem And the port N for the processor subsystem 22 22 umfasst einen Datenpfad includes a data path 46 46 , einen Adresspfad , An address path 48 48 und einen Steuerpfad and a control path 50 50 . ,
  • Das Speicherverbindungsuntersystem The memory interconnect subsystem 18 18 enthält einen Datenpfadschalter includes a data path switch 12 12 zu dem Hauptspeicher to the main memory 14 14 , eine Systemsteuerung , A system controller 16 16 und einen Satz von Kennungskopien and a set of duplicate tags 30 30 bis to 32 32 . , Für eine Ausführungsform ist der Datenpfadschalter For one embodiment, the data path switch 12 12 ein Kreuzschienenschalter, der von der Systemsteuerung a crossbar switch from the Control Panel 16 16 über einen Satz von Steuersignalen a set of control signals 54 54 gesteuert wird. is controlled. Der Datenpfadschalter The data path switch 12 12 gibt den Datenpfadzugang zu dem Hauptspeicher are the data path access to the main memory 14 14 über den Datenpfad jedes Ports over the data path of each port 1 1 bis N frei, einschließlich des Datenpfades to N-free, including the data path 40 40 und des Datenpfades and the data path 46 46 . ,
  • Die Systemsteuerung The Control Panel 16 16 dient als Speichersteuerung, indem sie Adressen, die von den Prozessoruntersystemen serves as a memory controller by addresses from the processor subsystems 20 20 bis to 22 22 empfangen werden, decodiert und Speichersteuersignale, die Reihenadressenwähl- ("row address select" – RAS) und Spaltenadressenwähl- ("column address select" – CAS) Signale enthalten, zu dem Hauptspeicher are received, decoded, and memory control signals Reihenadressenwähl- ( "row address select" - RAS) and Spaltenadressenwähl- ( "column address select" - CAS) include signals to the main memory 14 14 über einen Speichersteuerbus a memory control bus 56 56 erzeugt. generated.
  • Die Systemsteuerung The Control Panel 16 16 implementiert auch einen Cache-Kohärenzmechanismus für das Computersystem also implements a cache coherency mechanism for the computer system 10 10 . , Die Systemsteuerung The Control Panel 16 16 führt einen Satz von Kennungskopien executes a set of duplicate tags 30 30 bis to 32 32 . , Die Kennungskopien The duplicate tags 30 30 bis to 32 32 geben die Kennungen wieder, die den externen Caches der Prozessoruntersysteme enter the codes again that the external caches of the processor subsystems 20 20 bis to 22 22 entsprechen. correspond. Zum Beispiel entsprechen die Kennungskopien For example, correspond to the duplicate tags 30 30 den Kennungen des externen Cache-Speichers in dem Prozessoruntersystem the identifiers of the external cache memory in the processor subsystem 20 20 , und die Kennungskopien And the duplicate tags 32 32 geben die Informationen wieder, die in den Kennungen des externen Cache-Speichers in dem Prozessoruntersystem enter the information again in the identifiers of the external cache memory in the processor subsystem 22 22 gespeichert sind. are stored. Die Systemsteuerung The Control Panel 16 16 führt an den Kennungskopien leads to the duplicate tags 30 30 bis to 32 32 über einen Snoop-Bus a Snoopbus 58 58 Kennungsüberprüfungs- und Kennungs-Modifizierungsoperationen aus. Tag check and identification modification operations.
  • Die Systemsteuerung The Control Panel 16 16 empfängt Speicherzugriffsanforderungen von den Prozessoruntersystemen receives memory access requests from the processor subsystems 20 20 bis to 22 22 über den Adresspfad jedes Ports over the address path of each port 1 1 bis N, einschließlich des Adresspfades to N, the address path including 42 42 und des Adresspfades and the address path 48 48 . , Die Systemsteuerung The Control Panel 16 16 entscheidet unter den Anforderungen von den Prozessoruntersystemen decides among the requests from the processor subsystems 20 20 bis to 22 22 und konfiguriert den Datenpfadschalter and configures the data path switch 12 12 , um die notwendigen Verbindungen für den Zugriff auf den Hauptspeicher To make the necessary connections for access to main memory 14 14 über einen Speicherdatenbus a memory data bus 52 52 bereitzustellen oder für einen Datentransfer von Prozessoruntersystem zu Prozessoruntersystem. or to provide for a data transfer from the processor subsystem to the processor subsystem. Die Systemsteuerung The Control Panel 16 16 antwortet mit Cache-Zustandsübergangssteuernachrichten und anderen Informationen über den passenden Steuerpfad. responds with cache state transition control messages and other information about the appropriate control path.
  • Die Speicherzugriffsanforderungen enthalten zum Beispiel read_to_share (RDS) Anforderungen und read_to_share_always (RDSA) Anforderungen. The memory access requests include, for example read_to_share (RDS) requirements and read_to_share_always (RDSA) requirements. Die Prozessoruntersysteme The processor subsystems 20 20 bis to 22 22 verwenden eine read_to_share (RDS) Anforderung an die Systemsteuerung use a read_to_share (RDS) request to the system controller 16 16 , um einen fehlenden Cache-Block nach einer Ladefehlmeldung in dem entsprechen externen Cache-Speicher wieder einzuspielen, wenn die Ladung auf Lese-Schreib-Daten gerichtet ist. To record a missing cache block for a load miss message in the corresponding external cache memory again when the charge is directed to read-write data. Andererseits verwenden die Prozessoruntersysteme On the other hand, use the processor subsystems 20 20 bis to 22 22 eine read_to_share_always (RDSA) Anforderung an die Systemsteuerung a read_to_share_always (RDSA) request to the system controller 16 16 , um einen fehlenden Cache-Block nach einer Ladefehlmeldung in dem entsprechen externen Cache-Speicher wieder einzuspielen, wenn die Ladung auf Nur-Lese-Daten gerichtet ist, wie einen Befehlscode oder andere Arten von Daten, die kaum geschrieben werden. To record a missing cache block for a load miss message in the corresponding external cache memory again when the charge is directed to read-only data such as a command code or other types of data which are rarely written. Solche Nur-Lese-Fehlmeldungen können Befehls-Cache-Fehlmeldungen oder Daten-Cache-Fehlmeldungen entsprechen, die von einem Speichermanagementsystem als "Nur-Lese" gekennzeichnet sind. Such read-only false alarms may correspond to instruction cache miss messages or data cache miss messages, which are characterized by a storage management system as a "read only".
  • Die Systemsteuerung The Control Panel 16 16 verarbeitet eine read_to_share (RDS) oder eine read_to_share_always (RDSA) Anforderung, indem sie über den Snoop-Bus processes a read_to_share (RDS) or a read_to_share_always (RDSA) request by on the snoop bus 58 58 die Kennung bezüglich des spezifizierten Datenblocks überprüft. the identifier checked for the specified data block. Die Systemsteuerung The Control Panel 16 16 liest die Kennungskopien reads the duplicate tags 30 30 bis to 32 32 über den Snoop-Bus over the Snoopbus 58 58 , um den Cache-Zustand des spezifizierten Datenblocks zu bestimmen. To determine the cache state of the specified data block. Die Systemsteuerung The Control Panel 16 16 konfiguriert den Datenpfadschalter configuring the data path switch 12 12 , um die richtige Quelle für den spezifizierten Datenblock für die read_to_share (RDS) oder die read_to_share_always (RDSA) Transaktion bereitzustellen. , To provide the proper source for the specified data block for the read_to_share (RDS) or read_to_share_always (RDSA) transaction. Die richtige Quelle kann in Übereinstimmung mit dem Zustand der Kennungskopien The right source, in accordance with the state of the duplicate tags 30 30 bis to 32 32 zum Beispiel den Hauptspeicher For example, the main memory 14 14 oder einen der externen Caches der Prozessoruntersysteme or one of the external caches of the processor subsystems 20 20 bis to 22 22 enthalten. contain.
  • Die Systemsteuerung The Control Panel 16 16 überträgt Nachrichten über den Steuerpfad der Ports transmits messages via the control path of the ports 1 1 bis N zur Steuerung der Cache-Zustandsübergänge in den Prozessoruntersystemen to N to control the cache state transitions in the processor subsystems 20 20 bis to 22 22 , die an der read_to_share (RDS) oder read_to_share_always (RDSA) Transaktion beteiligt sind. That are involved in the read_to_share (RDS) or read_to_share_always (RDSA) transaction. Die Systemsteuerung The Control Panel 16 16 aktualisiert auch über den Snoop-Bus updated via the snoop bus 58 58 die Cache-Zustände für die Kennungskopien the cache states for the duplicate tags 30 30 bis to 32 32 , die an der read_to_share (RDS) oder read_to_share_always (RDSA) Transaktion beteiligt sind. That are involved in the read_to_share (RDS) or read_to_share_always (RDSA) transaction.
  • 2 2 zeigt das Cache-Kohärenzprotokoll der Kennungskopien shows the cache coherence protocol of the duplicate tags 30 30 bis to 32 32 für eine Ausführungsform. for one embodiment. Die System steuerung The system control 16 16 führt die Kennungskopien leading the duplicate tags 30 30 bis to 32 32 gemäß einem MOSI-Cache-Kohärenzprotokoll, das einen "ungültigen" (I) Zustand, einen "gemeinsam-benutzten-reinen" (S) Zustand, einen "gemeinsam-benutzten-modifizierten" (O) Zustand und einen "exklusiven-und-möglicherweise modifizierten" (M) Zustand enthält. according to a MOSI cache coherency protocol that an "invalid" (I) state, a "common-use-pure" (S) state, a "common-use-modified" (O) state and an "exclusive-and- possibly modified "(M) contains state.
  • 3 3 zeigt das Prozessoruntersystem shows the processor subsystem 20 20 für eine Ausführungsform. for one embodiment. Das Prozessoruntersystem The processor subsystem 20 20 umfasst einen Prozessor includes a processor 70 70 , einen externen Cache , An external cache 74 74 mit zugehörigen Sätzen externer Kennungen with associated sets of external identifiers 76 76 und eine Port-Schnittstelle and a port interface 72 72 . , Andere Prozessoruntersysteme in dem Computersystem Other processor subsystems in the computer system 10 10 , wie das Prozessoruntersystem How the processor subsystem 22 22 , können auf gleiche Weise implementiert werden, wie für das Prozessoruntersystem Can be implemented in the same way as for the processor subsystem 20 20 gezeigt ist. is shown.
  • Der Prozesor the Prozesor 70 70 gibt Speicherlade- und Speicherspeicherungsoperationen an den externen Cache are cylinder primary and memory storage operations on the external cache 74 74 aus. out. Eine Cache-"Fehlmeldung" an den externen Cache A cache "miss message" to the external cache 74 74 veranlasst die Port-Schnittstelle causes the port interface 72 72 , eine Cache-Anforderung an die Systemsteuerung , A cache request to the system controller 16 16 unter Verwendung eines Nachrichtenpakets auszugeben, das über den Adresspfad output using a message packet via the address path 42 42 übertragen wird. is transmitted. Die ausgegebenen Cache-Anforderungen enthalten zum Beispiel read_to_share_always (RDSA) und read_to_share (RDS) Cache-Anforderungen. The output cache requests include, for example read_to_share_always (RDSA) and read_to_share (RDS) cache requests. Das Nachrichtenpaket, das über den Adresspfad The message packet over the address path 42 42 übertragen wird, enthält einen Anfangsblock, der die Anforderungsart spezifiziert, und eine Adresse, die den Datenblock der Cache-Anforderung spezifiziert. is transferred includes a header that specifies the request type, and an address specifying the data block of the cache request.
  • Nachdem die Systemsteuerung After the system controller 16 16 den Datenpfadschalter the data path switch 12 12 konfiguriert hat, um die richtigen Daten für den fehlenden Datenblock in Übereinstimmung mit dem Zustand der Kennungskopien is configured to the correct data for the missing data block in accordance with the state of the duplicate tags 30 30 bis to 32 32 zu erfassen, empfängt die Port-Schnittstelle to detect receives the port interface 72 72 den fehlenden Datenblock über den Datenpfad the missing data block via the data path 40 40 . , Die Port-Schnittstelle The port interface 72 72 empfängt Cache-Zustandssteuernachrichten von der Systemsteuerung receives cache state control messages from the system controller 16 16 über den Steuerpfad via the control path 44 44 . , Die Cache-Zustandssteuernachrichten bestimmen die Cache-Zustandsübergänge für den zuletzt abgerufenen fehlenden Datenblock, der im externen Cache The cache state control messages determine the cache state transitions for the last fetch missing data block in the external cache 74 74 gespeichert ist. is stored.
  • 4 4 zeigt das Cache-Kohärenzprotokoll der externen Kennungskopien shows the cache coherency protocol of the external duplicate tags 76 76 für eine Ausführungsform. for one embodiment. Der externe Cache The external cache 74 74 führt die externen Kennungskopien performs the external duplicate tags 76 76 in Übereinstimmung mit einem MOESI Cache-Kohärenzprotokoll, das einen "ungültigen" (I) Zustand, einen "gemeinsam-benutztenreinen" (S) Zustand, einen "exklusiven-reinen" (E) Zustand, einen "gemeinsam-benutzten-modifizierten" (O) Zustand und einen "exklusiven-modifizierten" (M) Zustand umfasst. in accordance with a MOESI cache coherency protocol that an "invalid" (I) state, a "common-use pure" (S) state, an "exclusive-pure" (E) state, a "common-use-modified" ( O) state and an "exclusive-modified" (M) comprises state.
  • Für eine alternative Ausführungsform führt der externe Cache For an alternative embodiment, the external cache leads 74 74 die externen Kennungskopien the external duplicate tags 76 76 in Übereinstimmung mit einem MESI Cache-Kohärenzprotokoll, während die Systemsteuerung in accordance with a MESI cache coherency protocol, while the system controller 16 16 die Kennungskopien the duplicate tags 30 30 bis to 32 32 in Übereinstimmung mit einem MSI Cache-Kohärenzprotokoll führt. leads in accordance with a MSI cache coherency protocol. Eine solche Ausführungsform ermöglicht dem Speicherverbindungsuntersystem Such an embodiment allows the memory interconnect subsystem 18 18 als reflektiver Speicher zu arbeiten, wobei eine Rückschreiboperation bezüglich einer Ladefehlmeldung zu einem "modifizierten" Datenblock bewirkt, dass der Datenblock in den Hauptspeicher to operate as a reflective memory, a write-back operation with respect to a load miss message to a "modified" data block causes the block of data in main memory 14 14 zurückgeschrieben wird, und bewirkt, dass der anfordernde Prozessor in den "gemeinsam benutzten" Zustand übergeht. is written back, and causes the requesting processor in the "shared" state.
  • 5 5 zeigt die Handhabung einer read_to_share (RDS) Transaktion mit Schreiboptimierung durch die Systemsteuerung shows the handling of a read_to_share (RDS) transaction with write optimization by the system controller 16 16 . , Die dargestellte Schreiboptimierung kann als eine erste Schreiboptimierung an dem Cache-Kohärenzprotokoll des Computersystems The write optimization shown may as a first write optimization to the cache coherency protocol of the computer system 10 10 bezeichnet werden. are called.
  • In Block in block 100 100 empfängt die Systemsteuerung receives the system controller 16 16 eine read_to_share (RDS) Transaktion von einem der Prozessoruntersysteme a read_to_share (RDS) transaction by one of the processor subsystems 20 20 bis to 22 22 , das an einen der Speicherports That to one of the memory ports 1 1 bis N gekoppelt ist, der in der Folge als Speicherport A bezeichnet wird. is coupled to N, referred to as memory port A.
  • In Block in block 102 102 liest die Systemsteuerung the system controller reads 16 16 die Kennungskopien, die dem Speicherport A entsprechen, über den Snoop-Bus the duplicate tags corresponding to the memory port A, on the snoop bus 58 58 für den spezifizierten Datenblock der read_to_share (RDS) Transaktion. for the specified data block of the read_to_share (RDS) transaction. In Entscheidungsblock In decision block 104 104 fährt die Steuerung mit Block the control proceeds to block 108 108 fort, wenn kein anderer Speicherport continued if no other memory port 1 1 bis N über den spezifizierten Datenblock verfügt. to N has the specified data block.
  • Andernfalls fährt die Steuerung mit Block Otherwise, control continues to block 106 106 fort, um den gemeinsam benutzten Datenblock ohne Schreiboptimierung zu verarbeiten, Wenn in Block continue to process the data block shared without write optimization If in block 108 108 die Kennungskopien einen "gemeinsam-benutzten-reinen" (S) Zustand anzeigen, wird der Datenblock für read_to_share (RDS) vom Hauptspeicher See the identifier copies a "common-use-pure" (S) state, the data block for read_to_share (RDS) from the main memory 14 14 zum Port A geleitet. passed to Port A. wenn die Kennungskopien einen der modifizierten Zustände M oder O anzeigen, gibt die Systemsteuerung if the duplicate tags indicate one of the modified states M or O, the system controller 16 16 eine Rückschreibanforderung an den entsprechenden Port aus und stellt die Kennungskopien für den anfordernder. a write request to the appropriate port and sets the duplicate tags for the requesting. Port auf eine Anzeige eines "gemeinsam-benutzten-reihen" (S) Zustandes und veranlasst, dass die externen Kennungen für den anfordernden Port den "gemeinsam-benutzten-reinen" (S) Zustand anzeigen. Port on a display of a "common-used Series" (S) state and causing the external tags for the requesting port the "shared-use-pure" Show (S) state.
  • In Block in block 108 108 konfiguriert die Systemsteuerung configures the control system 16 16 den Datenpfadschalter the data path switch 12 12 , dass die gelesenen Daten für den spezifizierten Datenblock zugeleitet werden, um die read_to_share (RDS) Transaktion zu erfüllen. That the read data for the specified data block are supplied to meet the read_to_share (RDS) transaction. Die gelesenen Daten für den spezifizierten Datenblock werden vom Hauptspeicher The read data for the specified block of data from main memory are 14 14 zum Port A geleitet. passed to Port A.
  • In Block in block 110 110 überträgt die Systemsteuerung transmits the system controller 16 16 eine Nachricht über den Port A Steuerpfad, die veranlasst, dass die externen Kennungen vom Port A vom "ungültigen" (I) Zustand in den "exklusiven-reinen" (E) Zustand für den spezifizierten Datenblock übergehen. a message via the port A control path, which causes the external tags that pass from port A of "invalid" (I) state to the "exclusive-pure" (E) state for the specified data block.
  • In Block in block 112 112 stellt die Systemsteuerung the system controller 16 16 die Kennungskopien für Fort A über den Snoop-Bus the duplicate tags for Fort A via the snoop bus 58 58 vom "ungültigen" (I) in den "exklusiven-und-möglicherweise-modifizierten" Zustand für den Datenblock. from "invalid" (I) in the "exclusive-and-potentially-modified" state for the data block.
  • Danach veranlasst eine Lesetransaktion, die von einem anderen Speicherport ausgegeben und auf denselben Datenblock wie die oben genannte read_to_share (RDS) Transaktion gerichtet ist, dass die Systemsteuerung Thereafter initiates a read transaction issued by another memory port and (RDS) transaction is directed to the same data block as the above read_to_share that the system controller 16 16 eine Rückschreibanforderung an den Speicherport A ausgibt, da die Kennungskopien für Port A den "exklusiven-und-möglicherweise-modifizierten" Zustand für den Datenblock anzeigen. issuing a write request to the memory port A, since the duplicate tags for Port A indicate the "exclusive-and-potentially-modified" state for the data block. Eine solche Rückschreiboperation erfolgt, egal ob der Prozessor von Port A diesen Datenblock modifiziert hat. Such a write-back operation is carried out whether the processor of Port A has modified this data block. Folglich kann eine solche Rückschreiboperation unnötig sein, um eine Datenkohärenz in dem Computersystem Therefore, such a write-back operation may be unnecessary to data coherency in the computer system 10 10 aufrechtzuerhalten. maintain.
  • 6 6 zeigt die Handhabung einer read_to_share_always (RDSA) Transaktion vom Port A durch die Systemsteuerung shows the handling of a read_to_share_always (RDSA) transaction from the port A by the system controller 16 16 . , In Block in block 118 118 empfängt die Systemsteuerung receives the system controller 16 16 eine read_to_share_always (RDSA) Anforderung von dem Speicherport A. a read_to_share_always (RDSA) request from the storage port A.
  • In Block in block 119 119 liest die Systemsteuerung the system controller reads 16 16 die Kennungskopien, die dem Speicherport A entsprechen, über den Snoop-Bus the duplicate tags corresponding to the memory port A, on the snoop bus 58 58 für den spezifizierten Datenblock der read_to_share_always (RDSA) Transaktion. for the specified data block of the read_to_share_always (RDSA) transaction. In Entscheidungsblock In decision block 120 120 fährt die Systemsteuerung mit Block drives the system control block 122 122 fort, wenn kein anderer Speicherport continued if no other memory port 1 1 bis N über den spezifizierten Datenblock verfügt. to N has the specified data block. Andernfalls fährt die Steuerung mit Entscheidungsblock Otherwise, control proceeds to decision block 128 128 fort. continued.
  • In Block in block 122 122 konfiguriert die Systemsteuerung configures the control system 16 16 den Datenpfadschalter the data path switch 12 12 , so dass die gelesenen Daten für den spezifizierten Datenblock zugeleitet werden, um die read_to_share_always (RDSA) Transaktion zu erfüllen. , So that the read data for the specified data block are supplied to meet the read_to_share_always (RDSA) transaction. Die gelesenen Daten für den spezifizierten Datenblock werden vom Hauptspeicher The read data for the specified block of data from main memory are 14 14 zum Port A geleitet. passed to Port A.
  • In Block in block 124 124 überträgt die Systemsteuerung transmits the system controller 16 16 eine Nachricht zu dem Speicherport A über den Port A Steuerpfad, die veranlasst, dass die externen Kennungen vom "ungültigen" (I) Zustand in den "gemeinsam-benutzten-reinen" (S) Zustand für den spezifizierten Datenblock übergehen. a message to the memory port A via port A control path, which causes the external tags pass from "invalid" (I) state to the "common-use-pure" (S) state for the specified data block.
  • In Block in block 126 126 stellt die Systemsteuerung the system controller 16 16 die Kennungskopien für Port A über den Snoop-Bus the duplicate tags for Port A over the bus snoop 58 58 in den "gemeinsambenutzten-reinen" (S) Zustand für den spezifizierten Datenblock. in the "shared-clean" (S) state for the specified data block.
  • In Entscheidungsblock In decision block 128 128 fährt die Steuerung dann mit Block then the control proceeds with block 122 122 fort, wenn der spezifizierte Datenblock von einem anderen Port im "gemeinsam-benutzten-reinen" (S) Zustand gehalten wird. continue when the specified data block from another port in the "shared-use-pure" (S) state is held. Wenn der spezifizierte Datenblock von einem anderen Port in einem der modifizierten Zustände M oder O gehalten wird, gibt die Systemsteuerung dann in Block When the specified data block from another port in one of the modified states M or O is held, the system controller then outputs in block 130 130 eine Rückschreibanforderung an den entsprechenden Port aus, um den Datenblock zu Port A zu leiten, und die Steuerung fährt dann mit Block a write-back request to the appropriate port for directing the data block for Port A, and the control then proceeds to block 124 124 fort, um die externen und Kennungskopien wie zuvor beschrieben zu aktualisieren. continue to update the external and duplicate tags as described above.
  • Danach veranlasst eine Lesetransaktion, die von einem anderen Speicherport ausgegeben und auf denselben Datenblock wie die oben genannte read_to_share_always (RDSA) Transaktion gerichtet ist, dass die Systemsteuerung Thereafter initiates a read transaction issued by another memory port and (RDSA) transaction is directed to the same data block as the above read_to_share_always that the system controller 16 16 keine Rückschreibanforderung an den Speicherport A ausgibt, da die Kennungskopien für Port A den "gemeinsam-benutztenreinen" (S) Zustand für den Datenblock anzeigen. does not output the write-back request to the memory port A, since the duplicate tags for the Port A "common-use pure" (S) state for the data block to view. Da die read_to_share_always (RDSA) Transaktion nur für Nur-Lese-Daten ausgegeben wird, folgt, dass der entsprechende Datenblock im Port A des externen Cache im "gemeinsam-benutztenreinen" (S) Zustand bleibt. Since the read_to_share_always (RDSA) transaction is issued only for read-only data, it follows that the corresponding data block in the port A of the external cache in the "shared-use pure" (S) state remains. Folglich wird eine unnötige Rückschreiboperation vermieden, während die Datenkohärenz im Computersystem Consequently, an unnecessary rewrite operation is avoided while data coherency in the computer system 10 10 aufrechterhalten wird. is maintained.
  • In der vorangehenden Beschreibung wurde die Erfindung in Bezug auf spezifische beispielhafte Ausführungsformen beschrieben. In the foregoing specification, the invention with respect to specific exemplary embodiments described. Es ist jedoch offensichtlich, dass verschiedene Modifizierungen und Änderungen ausgeführt werden können, ohne vom Umfang der Erfindung Abstand zu nehmen, der durch die beiliegenden Ansprüche definiert ist, wenn diese im Lichte der Beschreibung interpretiert werden. It is obvious, however, that various modifications and changes may be made without taking distance from the scope of the invention defined by the appended claims when interpreted in light of the description.

Claims (11)

  1. Computersystem ( Computer system ( 10 10 ), umfassend erste und zweite Prozessoruntersysteme ( ), Comprising first and second processor subsystems ( 20 20 ), ( ), ( 22 22 ), wobei jeder einen externen Cache-Speicher ( (), Wherein each of an external cache memory 74 74 ) und externe Kennungen ( ), And external identifiers ( 76 76 ) für Datenblöcke, die in dem Cache-Speicher gespeichert sind, enthält, und eine Speicherverbindung ( contains) for data blocks stored in the cache memory, and a memory interconnect ( 18 18 ), die einen Zugang zu einem gemeinsamen Speicher ( ), The (an access to a shared memory 14 14 ) ermöglicht und eine Schaltungsanordnung enthält, die eine Leseanforderung empfängt, die von dem ersten Untersystem nach einer Cache-Fehlmeldung bezüglich eines angeforderten Datenblocks zu dem externen Cache-Speicher des ersten Untersystems erzeugt wird, wobei die Leseanforderung den angeforderten Datenblock spezifiziert, dadurch gekennzeichnet , dass die Leseanforderung entweder (a) eine "Read to Share Always"-Anforderung (Leseanforderung zur ständigen gemeinsamen Benutzung) ist, wenn der angeforderte Datenblock nur zum Lesen ist, oder (b) eine "Read to Share"-Anforderung (Leseanforderung zur gemeinsamen Benutzung) ist, wobei der Speicher angeschlossen ist, um die externen Kennungen für den angeforderten Datenblock zu veranlassen, (a) einen exklusiven Zustand als Antwort auf die "Read to Share"-Anforderung ( ) Enables and includes circuitry that receives a read request generated by the first subsystem following a cache miss message concerning a requested data block to the external cache memory of the first subsystem, the read request specifying the requested data block, characterized in that the read request either (a) a "read to share always" request is (read request to the permanent joint use), if the requested data block is read-only, or (b) a "read to share" request (read request for sharing ), wherein the memory is connected, to cause the external tags for the requested data block (a) an exclusive state in response to the "read to share" request ( 110 110 ) anzuzeigen, wenn kein anderes Untersystem über eine Kopie des angeforderten Datenblocks ( show) if no other subsystem (through a copy of the requested data block 104 104 ) verfügt, und (b) einen gemeinsamen Benutzungszustand als Reaktion auf die "Read to Share Always"-Anforderung ( ) Has, and (b) a common use state (in response to the "read to share always" request 124 124 ) anzuzeigen. ) Display.
  2. Computersystem nach Anspruch 1, wobei die Speicherverbindung Kennungskopien führt, die den externen Kennungen entsprechen, und die Kennungskopien für den angeforderten Datenblock verwendet, um (1) einen modifizierten Zustand als Antwort auf die "Read to Share"-Anforderung und (2) den Zustand der gemeinsamen Benutzung als Antwort. Computer system according to claim 1, wherein the storage interconnect leads duplicate tags that correspond to the external tags and the duplicate tags for the requested data block used to (1) a modified state in response to the "read to share" request and (2) the state of the common user response. auf die "Read to Share Always"-Anforderung anzuzeigen. view the "read to share always" request.
  3. Computersystem nach Anspruch 2, wobei das Prozessoruntersystem die "Read to Share Always"-Anforderung erzeugt, wenn der angeforderte Datenblock nur zum Lesen ist und andernfalls die "Read to Share"-Anforderung erzeugt. Computer system according to claim 2, wherein the processor subsystem generates the "read to share always" request, if the requested data block is only for reading and otherwise generates the "read to share" request.
  4. Computersystem nach Anspruch 2, wobei der angeforderte Datenblock Anweisungen für das Prozessoruntersystem enthält, so dass das Prozessoruntersystem die "Read to Share Always"-Anforderung anstelle der "Read to Share"-Anforderung erzeugt. The computer system of claim 2, wherein the requested data block contains instructions for the processor subsystem such that the processor subsystem, the "read to share always" request generated instead of the "read to share" request.
  5. Computersystem nach Anspruch 3, wobei die Schaltungsanordnung, welche die "Read to Share"-Anforderung und die "Read to Share Always"-Anforderung empfängt, eine Systemsteuerung umfasst, die auf die Kennungskopien über einen Snoop-Bus zugreift. A computer system according to claim 3, wherein the circuit arrangement that the "read to share" request and the "read to share always" request receives, comprises a system controller that accesses the duplicate tags via a snoop bus.
  6. Computersystem nach Anspruch 5, wobei die Systemsteuerung die externen Kennungen für den angeforderten Datenblock veranlasst, (1) den exklusiven Zustand als Antwort auf die "Read to Share"-Anforderung und (2) den gemeinsamen Benutzungszustand als Antwort auf die "Read to Share Always"-Anforderung anzuzeigen, indem eine Nachricht zu dem Prozessoruntersystem über einen Steuerpfad gesendet wird, der zwischen der Systemsteuerung und dem Prozessoruntersystem gekoppelt ist. A computer system according to claim 5, wherein the system controller causes the external tags for the requested data block, (1) the exclusive state in response to the "read to share" request and (2) the common-use state in response to the "read to share always display "request by sending a message to the processor subsystem via a control path coupled between the system controller and the processor subsystem.
  7. Cache-Kohärenz-Verfahren in Mehrfach-Prozessorcomputersystemen ( Cache coherency method in multi-processor computer systems ( 10 10 ) mit zwei oder mehr Prozessoruntersystemen ( ) (With two or more processor subsystems 20 20 ), ( ), ( 22 22 ) und einer Speicherverbindung ( ) And a memory interconnect ( 18 18 ), die Zugang zu einem gemeinsam benutzten Speicher ( ) (The access to a shared memory 14 14 ) ermöglicht, umfassend: Führen externer Kennungen ( ) Allows comprising: performing external identifiers ( 76 76 ) für Datenblöcke in einem externen Cache-Speicher ( () For data blocks in an external cache memory 74 74 ) eines ersten Prozessoruntersystems des Computersystems; ) Of a first processor subsystem of the computer system; als Antwort auf eine Cache-Fehlmeldung bezüglich eines angeforderten Datenblocks von seinem externen Cache-Speicher, Erzeugen einer Leseanforderung durch das erste Untersystem ein die Speicherverbindung, wobei die Leseanforderung entweder (a) eine "Read to Share Always"-Anforderung ( with respect in response to a cache miss notification of a requested data block from its external cache memory, generating a read request by the first subsystem a storage compound, wherein the read request either (a) a "read to share always" request ( 118 118 ), wenn der angeforderte Datenblock nur zum Lesen ist, oder (b) eine "Read to Share"-Anforderung ( ) If the requested data block is read-only, or (b) a "read to share" request ( 100 100 ) ist; ) Is; Speichern des angeforderten Datenblocks in dem externen Cache-Speicher des ersten Untersystems ( (Storing of the requested data block in the external cache memory of the first subsystem 108 108 ); ); und Veranlassen der externen Kennungen für den angeforderten Datenblock, einen exklusiven Zustand als Antwort auf die "Read to Share"-Anforderung ( and causing the external tags for the requested data block, an exclusive state (in response to the "read to share" request 110 110 ), wenn kein anderes Untersystem in dem Computersystem eine Kopie des angeforderten Datenblocks ( ) If no other subsystem in the computer system (a copy of the requested data block 104 104 ) hat, und einen gemeinsamen Benutzungszustand als Antwort auf die "Read to Share Always"-Anforderung ( ), And a common use state (in response to the "read to share always" request 124 124 ) anzuzeigen. ) Display.
  8. Verfahren nach Anspruch 7, des Weiteren umfassend: Führen von Kennungslcopien ( The method of claim 7, further comprising: performing Kennungslcopien ( 30 30 ), ( ), ( 32 32 ), die den externen Kennungen entsprechen; ) Corresponding to the external tags; und Verwenden der Kennungskopien für den angeforderten Datenblock, um (a) einen modifizierten Zustand als Antwort auf die "Read to Share"-Anforderung ( and using the duplicate tags for the requested data block to (a) (a modified state in response to the "read to share" request 112 112 ) und (b) den Zustand der gemeinsamen Benutzung als Antwort auf die "Read to Share Always"-Anforderung ( ) And (b) the state of shared use (in response to the "read to share always" request 126 126 ) anzuzeigen. ) Display.
  9. Verfahren nach Anspruch 8, wobei das erste Untersystem beim Erzeugen der Leseanforderung an die Speicherverbindung die "Read to Share Always"-Anforderung erzeugt, wenn der angeforderte Datenblock nur zum Lesen ist, und andernfalls die "Read to Share"-Anforderung. The method of claim 8, wherein the first subsystem in generating the read request generated on the memory connection, the "read to share always" request if the requested datablock is read-only, and otherwise the "read to share" request.
  10. Verfahren nach Anspruch 8, wobei der angeforderte Datenblock Anweisungen für das erste Untersystem enthält, so dass die "Read to Share Always"-Anforderung anstelle der "Read to Share "-Anforderung erzeugt wird. The method of claim 8 wherein the requested datablock contains instructions for the first subsystem, so that the "read to share always" request is generated instead of the "read to share" request.
  11. Verfahren nach Anspruch 8, wobei die externen Kennungen gemäß einem Cache-Kohärenzprotokoll geführt werden, deren Zustände die exklusiven-modifizierten, gemeinsam-benutzten-modifizierten, exklusiven-reinen, gemeinsam-benutzten-reinen und ungültigen Zustände sind, und die Kennungskopien gemäß einem Cache-Kohärenzprotokoll geführt werden, deren Zustände die exklusiven-und-möglicherweise-modifizierten, gemeinsam-benutzten-modifizierten, gemeinsam-benutztenreinen und ungültigen Zustände sind. The method of claim 8, wherein the external tags are performed according to a cache coherency protocol whose states are the exclusive-modified, shared-use-modified, exclusive-clean, shared-use-clean and invalid states and the duplicate tags according to a cache -Kohärenzprotokoll be performed whose states are the exclusive-and-potentially-modified, shared-use-modified, shared-use clean and invalid states.
DE69628493T 1995-03-31 1996-03-15 minimizes cache coherent computer system that Entwertungs- and write-backs Expired - Lifetime DE69628493T2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US42301695A true 1995-03-31 1995-03-31
US423016 1995-03-31

Publications (1)

Publication Number Publication Date
DE69628493T2 true DE69628493T2 (en) 2004-05-19

Family

ID=23677349

Family Applications (2)

Application Number Title Priority Date Filing Date
DE69628493T Expired - Lifetime DE69628493T2 (en) 1995-03-31 1996-03-15 minimizes cache coherent computer system that Entwertungs- and write-backs
DE1996628493 Expired - Fee Related DE69628493D1 (en) 1995-03-31 1996-03-15 minimizes cache coherent computer system that Entwertungs- and write-backs

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE1996628493 Expired - Fee Related DE69628493D1 (en) 1995-03-31 1996-03-15 minimizes cache coherent computer system that Entwertungs- and write-backs

Country Status (5)

Country Link
US (1) US5706463A (en)
EP (1) EP0735480B1 (en)
JP (1) JP3784101B2 (en)
DE (2) DE69628493T2 (en)
SG (1) SG45415A1 (en)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09204403A (en) * 1996-01-26 1997-08-05 Hitachi Ltd Parallel computer
US6098152A (en) * 1997-10-17 2000-08-01 International Business Machines Corporation Method and apparatus for miss sequence cache block replacement utilizing a most recently used state
US6341337B1 (en) * 1998-01-30 2002-01-22 Sun Microsystems, Inc. Apparatus and method for implementing a snoop bus protocol without snoop-in and snoop-out logic
US6397302B1 (en) * 1998-06-18 2002-05-28 Compaq Information Technologies Group, L.P. Method and apparatus for developing multiprocessor cache control protocols by presenting a clean victim signal to an external system
US6378048B1 (en) * 1998-11-12 2002-04-23 Intel Corporation “SLIME” cache coherency system for agents with multi-layer caches
US6857051B2 (en) * 1998-12-23 2005-02-15 Intel Corporation Method and apparatus for maintaining cache coherence in a computer system
US6349369B1 (en) * 1999-11-09 2002-02-19 International Business Machines Corporation Protocol for transferring modified-unsolicited state during data intervention
US6345344B1 (en) * 1999-11-09 2002-02-05 International Business Machines Corporation Cache allocation mechanism for modified-unsolicited cache state that modifies victimization priority bits
US6345342B1 (en) * 1999-11-09 2002-02-05 International Business Machines Corporation Cache coherency protocol employing a read operation including a programmable flag to indicate deallocation of an intervened cache line
US6374333B1 (en) * 1999-11-09 2002-04-16 International Business Machines Corporation Cache coherency protocol in which a load instruction hint bit is employed to indicate deallocation of a modified cache line supplied by intervention
US6345343B1 (en) * 1999-11-09 2002-02-05 International Business Machines Corporation Multiprocessor system bus protocol with command and snoop responses for modified-unsolicited cache state
US6519685B1 (en) * 1999-12-22 2003-02-11 Intel Corporation Cache states for multiprocessor cache coherency protocols
US6745297B2 (en) * 2000-10-06 2004-06-01 Broadcom Corporation Cache coherent protocol in which exclusive and modified data is transferred to requesting agent from snooping agent
US20030115402A1 (en) * 2001-11-16 2003-06-19 Fredrik Dahlgren Multiprocessor system
US20040117669A1 (en) * 2002-12-12 2004-06-17 Wilson Peter A. Method for controlling heat dissipation of a microprocessor
US7284097B2 (en) * 2003-09-30 2007-10-16 International Business Machines Corporation Modified-invalid cache state to reduce cache-to-cache data transfer operations for speculatively-issued full cache line writes
US8090914B2 (en) * 2004-01-20 2012-01-03 Hewlett-Packard Development Company, L.P. System and method for creating ordering points
US8468308B2 (en) * 2004-01-20 2013-06-18 Hewlett-Packard Development Company, L.P. System and method for non-migratory requests in a cache coherency protocol
US7395374B2 (en) * 2004-01-20 2008-07-01 Hewlett-Packard Company, L.P. System and method for conflict responses in a cache coherency protocol with ordering point migration
US8145847B2 (en) * 2004-01-20 2012-03-27 Hewlett-Packard Development Company, L.P. Cache coherency protocol with ordering points
US7769959B2 (en) 2004-01-20 2010-08-03 Hewlett-Packard Development Company, L.P. System and method to facilitate ordering point migration to memory
US7818391B2 (en) 2004-01-20 2010-10-19 Hewlett-Packard Development Company, L.P. System and method to facilitate ordering point migration
US20050160238A1 (en) * 2004-01-20 2005-07-21 Steely Simon C.Jr. System and method for conflict responses in a cache coherency protocol with ordering point migration
US8176259B2 (en) 2004-01-20 2012-05-08 Hewlett-Packard Development Company, L.P. System and method for resolving transactions in a cache coherency protocol
US7620696B2 (en) * 2004-01-20 2009-11-17 Hewlett-Packard Development Company, L.P. System and method for conflict responses in a cache coherency protocol
US8332592B2 (en) * 2004-10-08 2012-12-11 International Business Machines Corporation Graphics processor with snoop filter
WO2007094038A1 (en) * 2006-02-13 2007-08-23 Fujitsu Limited System control device, cash control device, and cash status transition controlling method
JP4373485B2 (en) 2006-02-28 2009-11-25 富士通株式会社 Information processing apparatus and the control method
US20070283095A1 (en) * 2006-06-06 2007-12-06 Alcor Micro, Corp. Method to access storage device through universal serial bus
JP4912790B2 (en) * 2006-08-18 2012-04-11 富士通株式会社 System controller, snoop tag modification method and an information processing apparatus
US7613882B1 (en) 2007-01-29 2009-11-03 3 Leaf Systems Fast invalidation for cache coherency in distributed shared memory system
JP5393964B2 (en) * 2007-09-11 2014-01-22 中菱エンジニアリング株式会社 Vehicle test equipment
JP5568939B2 (en) 2009-10-08 2014-08-13 富士通株式会社 Processing apparatus and control method
US8904115B2 (en) * 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
JP5974720B2 (en) * 2012-08-09 2016-08-23 富士通株式会社 Processor, a method of controlling an information processing apparatus and information processing apparatus
JP5971036B2 (en) * 2012-08-30 2016-08-17 富士通株式会社 The method of the arithmetic processing device and a processing unit
CN108228495A (en) * 2012-10-22 2018-06-29 英特尔公司 High performance interconnect physical layer
US9584617B2 (en) * 2013-12-31 2017-02-28 Successfactors, Inc. Allocating cache request in distributed cache system based upon cache object and marker identifying mission critical data
US9823730B2 (en) * 2015-07-08 2017-11-21 Apple Inc. Power management of cache duplicate tags

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4228503A (en) * 1978-10-02 1980-10-14 Sperry Corporation Multiplexed directory for dedicated cache memory system
JPH065524B2 (en) * 1987-11-18 1994-01-19 インターナショナル・ビジネス・マシーンズ・コーポレーション A method for managing storage
US4977498A (en) * 1988-04-01 1990-12-11 Digital Equipment Corporation Data processing system having a data memory interlock coherency scheme
US5043886A (en) * 1988-09-16 1991-08-27 Digital Equipment Corporation Load/store with write-intent for write-back caches
EP0380842A3 (en) * 1989-02-03 1991-06-12 Digital Equipment Corporation Method and apparatus for interfacing a system control unit for a multiprocessor system with the central processing units
US5036459A (en) * 1989-03-09 1991-07-30 U.S. Philips Corporation Multi-processor computer system with distributed memory and an interprocessor communication mechanism, and method for operating such mechanism
US5297269A (en) * 1990-04-26 1994-03-22 Digital Equipment Company Cache coherency protocol for multi processor computer system
DE69127936D1 (en) * 1990-06-29 1997-11-20 Digital Equipment Corp Bus protocol for processor with write-back cache
JPH04318654A (en) * 1991-02-13 1992-11-10 Hewlett Packard Co <Hp> Redirection system for interruption to microprocessor
US5303362A (en) * 1991-03-20 1994-04-12 Digital Equipment Corporation Coupled memory multiprocessor computer system including cache coherency management protocols
US5265232A (en) * 1991-04-03 1993-11-23 International Business Machines Corporation Coherence control by data invalidation in selected processor caches without broadcasting to processor caches not having the data
JP2703417B2 (en) * 1991-04-05 1998-01-26 富士通株式会社 Receive buffer
WO1993000638A1 (en) * 1991-06-26 1993-01-07 Ast Research, Inc. Automatic distribution of interrupts controller for a multiple processor computer system
EP0537899B1 (en) * 1991-09-27 1999-12-15 Sun Microsystems, Inc. Bus arbitration architecture incorporating deadlock detection and masking
US5319753A (en) * 1992-09-29 1994-06-07 Zilog, Inc. Queued interrupt mechanism with supplementary command/status/message information
US5434993A (en) * 1992-11-09 1995-07-18 Sun Microsystems, Inc. Methods and apparatus for creating a pending write-back controller for a cache controller on a packet switched memory bus employing dual directories
JPH07105031A (en) * 1993-09-20 1995-04-21 Internatl Business Mach Corp <Ibm> Method and device for transmitting interruption information in multiprocessor computer system

Also Published As

Publication number Publication date
JP3784101B2 (en) 2006-06-07
EP0735480B1 (en) 2003-06-04
EP0735480A1 (en) 1996-10-02
US5706463A (en) 1998-01-06
SG45415A1 (en) 1998-01-16
DE69628493D1 (en) 2003-07-10
JPH0922383A (en) 1997-01-21

Similar Documents

Publication Publication Date Title
DE69838756T2 (en) Processing input / output requests from a plurality of drivers allow file system primitive routine in a multilayer driver I / O system
JP3259969B2 (en) Cache memory controller
DE69824078T2 (en) Heterogeneous computer system heterogeneous I / O system and backup procedures for systems
US5987571A (en) Cache coherency control method and multi-processor system using the same
DE60038364T2 (en) Computer system and dump data management method
US6055605A (en) Technique for reducing latency of inter-reference ordering using commit signals in a multiprocessor system having shared caches
DE69732020T2 (en) Realignment of memory requests in a data processing system
US6665783B2 (en) Memory-to-memory copy and compare/exchange instructions to support non-blocking synchronization schemes
DE69834026T2 (en) Method and apparatus for realignment command and data recovery to the original command sequence
DE69733076T2 (en) High performance data with immediate xor
DE69631106T2 (en) On-line reconfiguration of a disk array
US6615319B2 (en) Distributed mechanism for resolving cache coherence conflicts in a multi-node computer architecture
EP0533446A2 (en) Digital data processor with improved checkpointing and forking
DE4216871C2 (en) Execution order to ensure the serializability distributed transactions
DE4410060B4 (en) Translation apparatus for translating a virtual memory address to a physical memory address
DE69724834T2 (en) System for highly available data storage with generally-the addressable memory
DE69838387T2 (en) Method and device in a paketenleitweglenkungsschalter to the data rate access to a shared memory at different control
DE69730164T2 (en) Control of memory access arrangement in a multiprocessor system
US20030131201A1 (en) Mechanism for efficiently supporting the full MESI (modified, exclusive, shared, invalid) protocol in a cache coherent multi-node shared memory system
DE69628480T2 (en) Exception handling in a data processor
DE3832912C2 (en) Virtual addressable cache memory means
DE60014005T2 (en) Method and apparatus for Befehlsvorabholung
DE69636330T2 (en) Procedures for on-line and real-time data migration
DE102004064069B4 (en) Disk array device
US7469321B2 (en) Software process migration between coherency regions without cache purges