DE19908618A1 - Gemeinsam genutzter Hochleistungscachespeicher - Google Patents

Gemeinsam genutzter Hochleistungscachespeicher

Info

Publication number
DE19908618A1
DE19908618A1 DE19908618A DE19908618A DE19908618A1 DE 19908618 A1 DE19908618 A1 DE 19908618A1 DE 19908618 A DE19908618 A DE 19908618A DE 19908618 A DE19908618 A DE 19908618A DE 19908618 A1 DE19908618 A1 DE 19908618A1
Authority
DE
Germany
Prior art keywords
cache
data
memory
address
response
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.)
Ceased
Application number
DE19908618A
Other languages
English (en)
Inventor
Horst Fuhrmann
Joerg Wedeck
Dieter Wendel
Udo Wille
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE19908618A1 publication Critical patent/DE19908618A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0857Overlapped cache accessing, e.g. pipeline by multiple requestors

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)

Abstract

Eine Hochleistungs-Cachespeichereinheit in einem Multiprozessorsystem umfaßt einen gemeinsam genutzten Cachespeicher 15 der Stufe n, der in eine Anzahl unabhängig voneinander betriebener Cachespeicherkerne unterteilt ist, wobei jeder dieser Kerne eine Cachespeichermatrix enthält, die als Puffer zwischen der Vielzahl Verarbeitungseinheiten PU0 bis PU11 und einen Speicher 18 verwendet wird. Von den Verarbeitungseinheiten ausgegebene Datenanforderungen und Antwortanfoderungen werden in verschachtelter Weise separat ausgeführt, um einen hohen Grad an Parallelarbeit zu erreichen. Zu diesem Zweck umfaßt jeder Cachespeicherkern Prioritätsentscheidungsschaltungen 101, 106 für eine unabhängige Auswahl von abhängigen Datenanforderungen und Antwortanforderungen für deren Ausführung. Ausgewählte Datenanforderungen werden durch Nachschlagen im Cachespeicherverzeichnis als Zeilenabruf-Trefferoperation oder als Zeilenabruf-Fehleroperation identifiziert und werden während ihrer Ausführung in Operationsregistern 112, 114 separat gespeichert. Die ausgewählten Antwortanforderungen werden unabhängig von den Datenanforderungen in Registern 105, 108 109 gespeichert und während freier Operationszyklen, die nicht von der Ausführung von Datenanforderungen verwendet werden, nacheinander ausgeführt. Auf diese Art und Weise kann jeder der Cachespeicherkerne gleichzeitig eine Zeilenabruf-Trefferoperation, eine Zeilenabruf-Fehleroperation und eine Speicheroperation für eine Verarbeitungseinheit oder ...

Description

Gebiet der Erfindung
Die Erfindung betrifft eine Hochleistungs-Cachespeichereinheit in einem Computersystem, das eine Vielzahl Verarbeitungseinhei­ ten besitzt, um Rechenprozesse im Mehrprozessorbetrieb auszufüh­ ren. Jede der Verarbeitungseinheiten ist über Anschlussmittel mit einem gemeinsam genutzten Cachespeicher der Stufe n verbun­ den, der als Puffer zwischen den Verarbeitungseinheiten und ei­ nem Hauptspeicher dient. Die Erfindung betrifft ebenfalls ein Verfahren zum hochleistungsfähigen Zwischenspeichern von Befeh­ len und Daten in einem Multiprozessor-Computersystem.
Hintergrund der Erfindung
Bekannte Multiprozessorsysteme umfassen eine Vielzahl Prozesso­ ren und hierarchisch organisierte Speicher, die mindestens zwei Cachespeicherstufen enthalten, welche als Befehls- und Datenpuf­ fer zwischen den Prozessoren und dem Hauptspeicher verwendet werden. Jeder Prozessor kann seinen eigenen Cachespeicher der Stufe 1 besitzen, der üblicherweise auf dem Prozessorchip inte­ griert ist, sowie auf einem separaten Chip einen eigenen Cache­ speicher der Stufe 2. In solchen Systemen sind zwischen den ei­ genen Cachespeichereinheiten der Stufe 2 umfangreiche Datenüber­ tragungen erforderlich, welche den Busbetrieb weitgehend ein­ schränken.
Andere Multiprozessorsysteme verwenden neben dem privaten Cache­ speicher der Stufe 1 einen Cachespeicher der Stufe 2, der von einer gewissen Anzahl Prozessoren und dem Speicher gemeinsam ge­ nutzt wird (US-Patentschrift 5 490 261). Eine Anzahl CPUs, von denen jede einen privaten Cachespeicher der Stufe 1 besitzt, ist unter Verwendung von Verschachtelungsmechanismen einem Cache­ speicher der Stufe 2 zugeordnet. Jede CPU ist mit einem Anforde­ rungsregister verbunden. Ein Verzeichnis für den Cachespeicher der Stufe 2 ist mit einer Eingangs-Prioritätsschaltung verbun­ den, welche alle Anforderungen der CPUs für Zugriffe auf den Cachespeicher der Stufe 2 empfängt. Die Prioritätsschaltung wählt zu jedem Zeitpunkt eine Anforderung aus, uni auf das Ver­ zeichnis des Cachespeichers der Stufe 2 zuzugreifen. Ein hoch­ wertiges Feld innerhalb der ausgewählten Anforderung wählt eine Zeile in dem Verzeichnis aus, und ein Vergleich mit einem Adressabschnitt findet jeden beliebigen zugeordneten Cachespei­ cherverzeichniseintrag und den zugeordneten Speicherplatz der Cachespeicherdaten. Jeder Eintrag in dem Verzeichnis des Cache­ speichers der Stufe 2 enthält ein CPU-Kennzeichnungsfeld, wel­ ches auf einen Wert gesetzt wird, der eine CPU als den aktuell ausschließlichen Besitzer der entsprechenden Dateneinheit inner­ halb des Cachespeichers der Stufe 2 kennzeichnen kann. Das be­ kannte System benutzt ebenfalls Warteschlangen- und FIFO-Spei­ cher, um die eingehenden Anforderungen, von denen jede sowohl Adressen als auch Daten enthält, zwischenzuspeichern, bis sie von der Prioritätsschaltung ausgewählt werden. Dies wird eben­ falls auf Speicherkommandos angewandt, weil Cachespeicheropera­ tionen nicht als Anforderungen, sondern als Speicherkommandos behandelt werden.
Gemeinsam genutzte Cachespeicher der Stufe 2 (oder gemeinsam ge­ nutzte Cachespeicher der Stufe 3 oder der Stufe n) besitzen ge­ genüber privaten Cachespeichern der Stufe 2 einige Vorteile. Aus der Sicht der zentralen Verarbeitungseinheiten oder CPUs er­ scheint die Cachespeichergröße bei gleichen Chipkosten sehr viel größer. Doppelte Cachespeicherzeileneinträge und Querabfragen zwischen den Cachespeichern werden vermieden, und somit kann der Datenverkehr auf dem Netzwerk verringert werden. Andererseits haben gemeinsam genutzte Cachespeicher der Stufe 2 auch einige Nachteile, einschließlich der Notwendigkeit einer Prioritätsent­ scheidung zwischen den Verarbeitungseinheiten, die einen Cache­ speicherzugriff anfordern. Durch diesen Engpaß wächst die Bear­ beitungszeit, und nachfolgend wächst die Wartezeit der Rechen­ prozesse im Multiprozessorsystem. Folglich können die Leistungs­ fähigkeit des Prozessors und der MP-Paktor erheblich abfallen.
Eine wirksame Maßnahme zur Verbesserung des MP-Faktors besteht darin, den Cachespeicher der Stufe 2 in unabhängige Einheiten, beispielsweise Speicherbänke, mit separaten Adressklassen aufzu­ teilen. Mak et al. offenbaren in "Shared-cache clusters in a sy­ stem with a fully shared memoryr", IBM Journal of Reseach and De­ velopment, Band 41, Nr. 4/5 Juli/September 1997, Seiten 429 bis 448, ein Multiprozessorsystem, das einen Cachespeicher der Stufe 2 verwendet, der durch eine Clusterung gekennzeichnet ist, wel­ che eine Vielzahl gemeinsam genutzte Cachespeichercluster auf­ weist, von denen jeder eine gewisse Anzahl Mikroprozessoren un­ terstützt. In einem Ausführungsbeispiel werden einem Cluster aus zwei unabhängigen Cachespeicherchips der Stufe 2, von denen je­ der sein eigenes Cachespeicherverzeichnis besitzt, drei Verar­ beitungseinheiten zugeordnet. Bis zu 12 Verarbeitungseinheiten können bis zu vier Cachespeichercluster der Stufe 2 verwenden. Steuereinrichtungen für die Schnittstellen der Verarbeitungsein­ heiten stellen die von den drei Verarbeitungseinheiten kommenden Anruf- und Speicheranforderungen für den Cachespeicher der Stufe 2 bereit, und eine Steuereinrichtung für die Busumschaltung stellt die Schnittstelle zu einem gemeinsam genutzten Cachespei­ cher der Stufe 2,5 und dem Hauptspeicher sowie zu den anderen Cachespeicherclustern der Stufe 2 bereit, um, wie oben beschrie­ ben, die Querabfragen zwischen den unabhängigen Cachespeichern der Stufe 2 zu unterstützen.
Es ist Aufgabe der Erfindung, die Leistungsfähigkeit von Multi­ prozessorsystemen, die Cachespeicher der Stufe n verwenden, zu verbessern.
Gemäß einer anderen Aufgabe der Erfindung wird die Leistungsfä­ higkeit des gemeinsam genutzten Cachespeicherentwurfs der Stufe n durch einen höheren Parallelitätsgrad der Cachespeicheropera­ tionen erhöht.
Es ist eine andere Aufgabe der Erfindung, drei der am häufigsten verwendeten Cachespeicheroperationen gleichzeitig auszuführen.
Zusammenfassung der Erfindung
Gemäß der Erfindung, wie sie ihn den Ansprüchen 1 und 18 defi­ niert wird, werden Datenanforderungen und Antwortanforderungen, welche durch eine oder mehrere Verarbeitungseinheiten aus einer Vielzahl von Verarbeitungseinheiten ausgegeben werden, separat verarbeitet, um eine gleichzeitig Ausführung zu erreichen.
Datenanforderungen und Antwortanforderungen von einer oder meh­ reren Verarbeitungseinheiten werden separat gespeichert, und die auf Prioritäten beruhende Auswahl von gespeicherten Datenanfor­ derungen und gespeicherten Antwortanforderungen wird unabhängig ausgeführt. Die Adressabschnitte der ausgewählten Datenanforde­ rungen werden für Nachschlageoperationen in den Verzeichnissen verwendet, um festzustellen, ob eine Zeilenabruf-Trefferopera­ tion oder eine Zeilenabruf-Fehleroperation ausgeführt werden muss. Die Adress- und Operationskommandodaten einer Zeilenabruf- Trefferoperation und einer Zeilenabruf-Fehleroperation werden während ihrer Ausführung in separaten Operations- und Adressre­ gistern unabhängig gespeichert. Genauso werden die Adress- und Operationskommandodaten einer Antwortanforderungsoperation wäh­ rend deren Ausführung in separaten Operations- und Adressregi­ stern gespeichert.
Eine Zeilenabruf-Trefferoperation und eine Zeilenabruf-Fehler­ operation und eine Antwortanforderungsoperation werden gleich­ zeitig ausgeführt. Wenn eine Zeilenabruf-Fehlersituation erkannt wird, wird eine Speicherzugriffsoperation initiiert, während de­ rer eine Zeilenabruf-Trefferoperation mit einer Antwortoperation verschachtelt wird. Zu diesem Zweck wird in einem einzelnen Ope­ rationszyklus eine Leseoperation von zwei Dateneinheiten der Cachespeichermatrix gleichzeitig ausgeführt, wodurch jeder zwei­ te Operationszyklus für eine Schreiboperation verfügbar ist, um so zu ermöglichen, dass ein Lesezyklus der Zeilenabruf-Treffer­ operation mit einem Schreibzyklus einer Antwortoperation in auf­ einanderfolgenden Operationszyklen verschachtelt wird.
Der gemeinsam genutzte Cachespeicher der Stufe n ist in eine Vielzahl paralleler Cachespeicherkerne unterteilt, welche unab­ hängig voneinander betrieben werden, um Datenanforderungen und Antwortanforderungen von einer oder mehreren Verarbeitungsein­ heiten parallel auszuführen. Jede der Verarbeitungseinheiten ist mittels einer Vielzahl Anschlüsse mit jedem der Cachespeicher­ kerne verbunden. Jeder der Anschlüsse umfasst einen FIFO-Spei­ cher (first-in-first-out - zuerst-eingeschrieben-zuerst-ausge­ lesen) zum Speichern einer Vielzahl von Datenanforderungen von einer oder mehreren Verarbeitungseinheiten und desweiteren einen FIFO-Speicher für jeden der Cachespeicherkerne zum Speichern ei­ ner Vielzahl von Antwortanforderungen von einer oder mehreren Verarbeitungseinheiten, die für den betreffenden Cachespeicher­ kern bestimmt sind.
Kurze Beschreibung der Zeichnungen
Nachfolgend wird eine bevorzugte Ausführungsform der Erfindung unter Bezugnahme auf die begleitenden Zeichnungen beschrieben, welche zeigen:
Fig. 1 ein allgemeines Blockschaltbild eines Multiprozessor­ systems, welches eine Ausführungsform der vorliegenden Erfindung umfasst;
Fig. 2 ein allgemeines Blockschaltbild des Datenstroms in ei­ nem gemeinsam genutzten Cachespeicherkern der Stufe 2, wie dieser in dem System von Fig. 1 verwendet wird;
Fig. 3 ein Blockschaltbild dies Datenstroms eines Prozessoran­ schlusses, der in dem System-von Fig. 1 bereitge­ stellt wird, um eine Prozessoreinheit mit dem gemein­ sam genutzten Cachespeicher der Stufe 2 von Fig. 2 zu verbinden;
Fig. 4 ein Blockschaltbild, das den in Fig. 2 dargestellten Cachespeicherkern der Stufe 2 detaillierter verdeut­ licht;
Fig. 5 einen Logikplan eines Cachespeichermakros, wie er in dem Cachespeicherkern von Fig. 2 enthalten ist;
Fig. 6 ein Blockschaltbild des Datenstroms des Anschlusses einer Speichersteuereinrichtung, der in dem System von Fig. 1 bereitgestellt wird, um den gemeinsam genutz­ ten Cachespeicher der Stufe 2 mit dem Speicher zu ver­ binden;
Fig. 7 ein allgemeines Blockschaltbild von endlichen Ablauf­ steuerungen, wie sie verwendet werden, um den in Fig. 4 dargestellten Cachespeicherkern der Stufe 2 zu steu­ ern; und
Fig. 8 ein Zeitdiagramm gleichzeitig ausgeführter Operationen gemäß der Erfindung.
Detaillierte Beschreibung einer bevorzugten Ausführungsform der Erfindung
Das Multiprozessorsystem von Fig. 1 umfasst die Verarbeitungs­ einheiten PU0 bis PU11 (PU - processing unit - Verarbeitungsein­ heit), die unabhängig voneinander arbeiten, um gleichzeitig ab­ laufende Rechenprozesse auszuführen. Jede der Verarbeitungsein­ heiten enthält einen privaten Cachespeicher der Stufe 1 (nicht dargestellt), der als Befehls- und Datencache verwendet wird. Jede der PUs ist über einen Anschluss 14 mit einem Cachespeicher der Stufe 2 15 verbunden, der für alle PUs derselbe ist und als gemeinsam genutzter Cachespeicher arbeitet. Über eine Speicher­ steuereinrichtung 16 ist der Cachespeicher 15 mit dem Speicher 18 verbunden, welcher genauso von allen PUs gemeinsam genutzt wird. Der Cachespeicher 15 ist in vier Speicherkerne 15-0 bis 15-3 unterteilt, die parallel arbeiten. Jeder der Speicherkerne ist in Form von Sätzen und Zeilen organisiert, so dass ein Zu­ griff auf einen Cachespeicherkern einen Sektor adressiert, wel­ cher eine Cachespeicherzeile enthält, die beispielsweise 64 Byte breit ist. Fig. 2 zeigt einige Elemente eines der Cachespei­ cherkerne und gibt einen allgemeinen Überblick über deren Daten­ ströme. Die Prioritätsentscheidungsschaltungen 20, 21 sind mit dem Ausgabebus 19 der Anschlüsse 14-0 bis 14-11 verbunden und führen eine Auswahl von einer der PUs 0 bis 11 für die Daten­ übertragung mit dem Cachespeicherkern 15-0 aus. Die Priori­ tätsentscheidungsschaltungen 20, 21 arbeiten unter Verwendung eines geeigneten Auswahlalgorithmus, wie beispielsweise eines Umlaufalgorithmus, auf bekannte Art und Weise, um einer der kon­ kurrierenden PUs den Zugriff auf den Cachespeicherkern zu gewäh­ ren. Der Cachespeicherzugriff kann die Anforderung einer der PUs nach einer Cachespeicherzeile sein, oder er kann die Antwort ei­ ner der PUs für den Cachespeicher bereitstellen. Antworten sind üblicherweise Schreiboperationen oder cachespeicherübergreifende Ungültigmachen-Antworten. Die Prioritätsentscheidungsschaltung 20 behandelt PU-Anforderungen, und die Prioritätsentscheidungs­ schaltung 21 behandelt PU-Antworten. Beide Prioritätsentschei­ dungsschaltungen arbeiten gleichzeitig und unabhängig voneinan­ der, um einen der PU-Anschlüsse 14-0 bis 14-11 mit den Registern 22 zu verbinden. Eine Cachespeichermatrix 25 wird von einem Cachespeicherverzeichnis 26 verwaltet, welches eine Vielzahl von Einträgen enthält, von denen jeder einer Zeile im Cachespeicher 25 zugeordnet ist. Jeder Eintrag des Cachespeicherverzeichnisses 26 enthält die Adresse einer Cachespeicherzeile und die Statu­ sinformation bezüglich deren Benutzung, einschließlich einer Veränderungsmarkierung, welche den Aktualisierungsstatus der Zeile sowie Informationen anzeigt, die es gestatten, die letzte Verwendung dieser Zeile festzustellen. Sowohl der Cachespeicher 25 als auch das Verzeichnis 26 werden assoziativ gesetzt und von den Registern 22 adressiert, welche für jeden der Cachespeicher­ kerne 15-0 bis 15-3 aus einem Satz OP-Register und Adressregi­ ster bestehen. Ein Ausgangsbus 27 des Cachespeichers 25 ist über einen Multiplexer 28 und einen Bus 29 mit den PU-Anschlüssen 14-0 bis 14-11 und zurück mit dem Eingang des Cachespeichers 25 verbunden. Die weiteren Eingänge des Multiplexers 28 sind ein Ausgangsbus 30 der Speichersteuereinrichtung 16 und die Aus­ gangsleitungen 23 des OP-Registers 22. Der Ausgangsbus 27 des Cachespeichers 25, die Ausgangsleitungen 31 des Verzeichnisses 26 und die Ausgangsleitungen 23 des OP-Registers 22 sind über einen Multiplexer 32 mit dem Eingangsbus 34 der Speichersteuer­ einrichtung 16 verbunden.
Fig. 3 zeigt den Datenstrom im PU-Anschluss 14-0 als repräsen­ tatives Beispiel für die PU-Anschlüsse 14-0 bis 14-11. Die PU- Anschlüsse bilden eine Schnittstelle zwischen den PUs und dem Cachespeicher der Stufe 2 15, welcher 8 Byte breit ist. Diese Schnittstelle umfasst in jedem Anschluss einen bidirektionalen Bus 40 und einen unidirektionale Bus 41, die beide 4 Byte breit sind. Auf dem Bus 40 kann eine Verarbeitungseinheit (PU) die Kopfzeilen A und B oder Daten senden. Die Kopfzeile A stellt ei­ ne Adresse einer Cachespeicherzeile dar, und die Kopfzeile B stellt ein Kommando-Operationscode-Byte und Leitweginformationen dar. Wenn die PU erwartet, dass Daten von einem Zeilenabruf zu­ rückkommen, schaltet sie den bidirektionalen Bus 40 in den Emp­ fangsmodus, so dass die PU Datenblöcke aus jeweils acht Bytes empfängt. Aus Sicht der PUs wird eine Zeile aus 64 Bytes in 8 Zyklen zu je 8 Bytes empfangen. Eine Speicheroperation von 64 Bytes macht es erforderlich, dass die Schnittstelle 16 Zyklen ausführt und die Kopfzeilen A und B verarbeitet.
Auf der Eingangsseite werden fünf FIFO-Speicher bereitgestellt, um die Eingangssignale vom Bus 40 zwischenzuspeichern. Ein FIFO- Speicher 42 puffert die eingehenden Kopfzeilen A und B von PU- Anforderungen, wie beispielsweise von Zeilenabrufanforderungen. Desweiteren puffern die FIFO-Speicher 43, 44, 45, 46 PU-Anforde­ rungen wie beispielsweise Speicheroperationen und Zeile-ungül­ tigmachen-Antworten. Jeder der Speicher 43 bis 46 ist einem der Cachespeicherkerne 15-0 bis 15-3 zugeordnet. Die Speicher 42 bis 46 sind über einen Richtungsschalter 47 und Register 48, 49 mit dem Bus 40 verbunden. Die Ausgänge jedes der Speicher 43 bis 46 sind über entsprechende Antwort-Umgehungs-Multiplexer 50 bis 53, Antwortregister 54 bis 57 und Busse 58 bis 61 mit den Eingängen der zugeordneten Cachespeicherkerne 15-0 bis 15-3 verbunden. Der Ausgang des Speichers 42 ist über einen Anforderungs-Umgehungs- Multiplexer 63, eines der Anforderungsregister 64 bis 67 und ei­ nen der Busse 68 bis 71 mit dem Eingang eines der Cachespeicher­ kerne 15-0 bis 15-3 verbunden. Das Eingangssignal vom Bus 40 kann die FIFO-Speicher 42 bis 46 über die Leitungen 72 umgehen, welche den Ausgang des Registers 48 direkt mit den zweiten Ein­ gängen der Antwort-Umgehungs-Multiplexer 50 bis 53 und des An­ forderungs-Umgehungs-Multiplexers 63 verbindet.
Auf der Ausgangsseite werden ein FIFO-Speicher 74 für Cachespei­ cherstufe-2-Anforderungen und ein FIFO-Speicher 75 für Cache­ speicherstufe-2-Antworten bereitgestellt, um die Cachespeicher­ ausgangssignale zu puffern. Die Cachespeicherkern-Ausgangsbusse 76, 77, 78, 79 sind über einen Multiplexer 80 und ein Cachespei­ cherstufe-2-Anforderungsregister 81 mit dem Eingang des Spei­ chers 74 und über einen Multiplexer 82 und ein Cachespeicherstu­ fe-2-Antwortregister 83 mit dem Eingang des Speichers 75 verbun­ den. Der Speicher 74 puffert die Kopfzeilen von cachespeicher­ übergreifenden Stufe-1-Ungültigmachen-Anforderungen, und der Speicher 75 puffert Zeilenabrufdaten. Die Multiplexer 80 und 82 werden von den Prioritätsentscheidungsschaltungen 84, 85 gesteu­ ert, welche auf den Leitungen 86, 87 von den Cachespeicherkernen 15 Anforderungssignale empfangen und über die Leitungen 88, 89 Zuteilungssignale an die Cachespeicherkerne 15 senden. Die Aus­ gangsleitungen der Speicher 74 und 75 sind über die Multiplexer 91 und 92 und ein Register 93 mit dem Ausgangsbus 41 verbunden. Der Multiplexer 91 dient als Cachespeicherstufe-2-Anforderungs/­ Antwortmultiplexer und ist ebenfalls mit einem Register 94 ver­ bunden, dessen Inhalt über den Richtungsschalter 47 auf den Bus gesendet wird. Der Multiplexer 92 dient als Cachespeicherstufe- 2-Umgehungsmultiplexer, welcher die Ausgangssignale der Busse 76 bis 79 über den Multiplexer 82 und die Leitungen 95 direkt auf den zweiten Eingang des Multiplexers 92 überträgt.
Fig. 4 zeigt den Datenstrom des Cachespeicherkerns 15-0, wobei der Datenstrom in den anderen Cachespeicherkernen 15-1 bis 15-3 gleichartig verläuft. Ein Anforderungsmultiplexer 101 empfängt die Kopfzeilen der Anforderungen von den Verarbeitungseinheiten PU0 bis PU11 vom Register 64. Eine Prioritätsentscheidungsschal­ tung 102 legt fest, welche PU ausgewählt werden soll, um ihre Anforderung zu einem weiteren Multiplexer 103 und einem Cache­ speicheradressregister 104 zu übertragen. Ein Antwortmultiplexer 106 empfängt die PU0- bis PU11-Kopfzeilen und die Dateneingangs­ signale vom Register 54. Eine Prioritätsentscheidungsschaltung 107, die unabhängig von der Prioritätsentscheidungsschaltung 102 arbeitet, legt fest, welche PU ausgewählt werden soll, um deren Antwort an ein Antwort-OP-Register 108 und ein Cachespeicher- Eingangsregister 109 zu übertragen. Das Antwort-OP-Register 108 enthält die Kopfzeilen A und B einer Speicheroperation. Das Ant­ wort-OP-Register 108 stellt die Eingangssignale für eine Ant­ wort-FSM 185 (FSM - Einite State Machine = finite Ablaufsteue­ rung) bereit, welche unabhängig von den anderen in Fig. 7 dar­ gestellten FSMs arbeitet.
Der Ausgang des Antwort-OP-Registers 108 ist mit einem zweiten Eingang des Multiplexers 103 verbunden, welcher eine Übertragung zu einem Verzeichnis-Leseadressregister 110 der Verzeichnisma­ trix 122 bereitstellt. Desweiteren ist der Ausgang des Antwort- OP-Registers 108 über einen zweifach Multiplexer 113 mit einem Cachespeicher-Schreibregister 105 verbunden. Das Register 105 speichert während der Speicheroperationen die Cachespeicher- Schreibadresse. Der Multiplexer 103 und die Verzeichnismatrix 122 werden von einer Kern-FSM 186 gesteuert, welche unabhängig von den Cachespeichermatrizen 135 arbeitet. Eine Speicheropera­ tion benötigt in der Verzeichnismatrix 122 lediglich einen Nach­ schlagezyklus. Dasselbe gilt für eine Zeilenabrufoperation, wel­ che zum Verwalten von gültigen Kopiebits des Cachespeichers der Stufe 1 insgesamt drei Zyklen benötigt, nämlich Lesen, Modifi­ zieren und Schreiben.
Das Leseadressregister 110 ist mit einem ersten OP-Register 111 verbunden, welches die Kopfzeilen A und B von Anforderungen speichert und welches von der Kern-FSM 186 gesteuert wird. In demselben Zyklus, in dem die Kopfzeilen A und B einer Zeilenab­ rufoperation in das erste OP-Register 11 eingegeben werden, ist das Ausgangssignal der Verzeichnismatrix 122 verfügbar, welches anzeigt, ob in dem Cachespeicher der Stufe 2 ein Cachespeicher­ treffer vorhanden ist, der hiernach als LFL1 bezeichnet wird, oder ob ein Cachespeicherfehler auftritt, der hiernach als LFL2 bezeichnet wird. Wenn ein LFL1 vorhanden ist, werden die Kopf­ zeilen A, B der Operation in ein LFL1-OP-Register 112 eingege­ ben, vorausgesetzt dieses Register ist frei. Wenn ein LFL2 vor­ handen ist, werden die Kopfzeilen A, B der Operation in ein zweites OP-Register 114 eingegeben, vorausgesetzt dieses Regi­ ster ist frei. Wenn das LFL1-OP-Register 112 zu diesem Zeitpunkt besetzt ist, müssen die Kopfzeilen A und B des LFL1 in dem er­ sten OP-Register 111 warten, bis das Register 112 frei wird. Ge­ nauso müssen, wenn das zweite OP-Register 114 besetzt ist, die Kopfzeilen A und B des LFL2 in dem ersten OP-Register 111 war­ ten, bis das Register 114 frei wird. Zeitunkritische Anforde­ rungsoperationen, die keine Zeilenabrufe darstellen, benutzen immer das zweite OP-Register 114.
Jedes einzelne aus dem LFL1-OP-Register 112 und dem zweiten OP- Register 114 wird von seiner eigenen endlichen Ablaufsteuerung (FSM) 190 und 189 gesteuert. Die Cachespeichermatrix 135 wird ebenfalls von ihrer eigenen FSM 188 gesteuert, welche ein ande­ res Startsignal besitzt als die Kern-FSM 186. Nur wenn der Cachespeicher der Stufe 2 frei ist, starten die beiden FSMs gleichzeitig.
Die Ausgänge des ersten OP-Registers 111, des LFL1-OP-Registers 112 und des zweiten OP-Registers sind über einen Multiplexer 115 und ein Register 116 mit einem Multiplexer 117 des Cachespei­ cherkern-Ausgangsbusses 118 verbunden. Die Ausgänge des ersten OP-Registers 111 und des zweiten OP-Registers sind über einen Multiplexer 120 mit einem Eingangsbus 121 der Speichersteuerein­ richtung 16 verbunden. Der Multiplexer 120 überträgt auch Adres­ sen und Daten, die auf den Leitungen 119 erscheinen, zum Bus 121 der Speichersteuereinrichtung, wenn eine Cachespeicherzeile, welche von einem Zuletzt-benutzt-Mechanismus ausgewählt worden ist, im Speicher 18 gesichert werden muss, um den entsprechenden Speicherplatz im Cachespeicher freizumachen. Der Multiplexer 115 wird von einer Anschluss-FSM 191 gesteuert, und der Multiplexer 120 wird von einer Speichersteuereinrichtungs-FSM 192 (Fig. 7) gesteuert.
Die Verzeichnismatrix 122 besteht aus drei Makros, von denen in Fig. 4 nur die Makros 123 und 124 dargestellt sind. Jedes Makro ist in vier Sätze unterteilt, wie beispielsweise den Satz 125. Die Sätze werden gleichzeitig adressiert. Jeder Satz besitzt ein Ausgangsregister 126. Das Ausgangsregister 126 jedes Satzes ist über einen Multiplexer 129 und eine Modifikationsschaltung 130 rückwärts mit einem Eingangsregister 131 verbunden, welches für beide Makros dasselbe ist. Die Modifikationsschaltung 130 wird wirksam, wenn eine Änderung des eine Cachespeicherzeile besit­ zenden Prozessors erforderlich wird, der Teil jedes Eintrages im Verzeichnis 122 ist.
Jedes der Ausgangsregister 126 ist einem Übereinstimmungs-Zwi­ schenspeicher 127 zugeordnet, welcher gesetzt wird, wenn eine Verzeichnis-Nachschlageoperation eine Übereinstimmung in dem adressierten Satz des Verzeichnisses ergibt. Die Übereinstim­ mungs-Zwischenspeicher 127 steuern die Multiplexer 132 und 133, die mit den Ausgangsregistern 143 verbunden sind.
Die Cachespeichermatrix 135 besteht aus fünf Makros, von denen in Fig. 4 nur die Makros 136, 137 dargestellt sind. Jedes Makro ist in zwei Sätze unterteilt, wie die Sätze 138 und 139 des Ma­ kros 136, um einen aus zehn Sätzen bestehenden, assoziativen Cachespeicher der Stufe 2 zu bilden. Die Eingänge der Makros 136, 137 besitzen ein gemeinsames Eingangsregister 142, welches über einen Multiplexer 141 mit dem Ausgangsbus 140 der Speicher­ steuereinrichtung 16 und dem Speicherdatenregister 109 verbunden ist. Die Ausgänge der jeweiligen Satzpaare in den Makros 136, 137 sind über die Register 143 entsprechend mit einem der Multi­ plexer 132 verbunden. Den Multiplexern 132 folgt ein Multiplexer 133, welcher über ein Register 100 und einen Multiplexer 117 mit dem Ausgangsbus 118 des Cachespeicherkerns verbunden ist. Die Steuersignaie von den Übereinstimmungs-Zwischenspeichern 127 wählen mittels der Multiplexer 132 und 133 den Ausgang des Sat­ zes aus, auf den in dem entsprechenden Makro der Cachespeicher­ matrix 135 zugegriffen worden ist. Die Ausgänge der Übereinstim­ mungs-Zwischenspeicher 127 werden ebenfalls verwendet, um ein Register 128 zu laden, welches über Satzschreiben-Auswahlein­ gangsleitungen, wie beispielsweise die Leitungen 155, mit der Cachespeichermatrix verbunden ist, um einen der Sätze für eine Schreiboperation auszuwählen (Fig. 5).
Die Steuerlogik eines der Cachespeichermakros, nämlich des Ma­ kros 136 mit den Sätzen 138 und 139, wird in Fig. 5 darge­ stellt. Das Cachespeichermakro 137 und die anderen drei Cache­ speichermakros enthalten die gleiche Logik. Das Makro 136 wird von einem Signal auf Leitung 145 ausgewählt, welches von einer UND-Schaltung 146 mit einem Matrixtaktsignal auf Leitung 147 verknüpft wird, um ein Signal auf Leitung 148 zu erzeugen. Über einen Multiplexer 152, der von einem Schreibsteuersignal vom Schreibzwischenspeicher 134 auf Leitung 153 gesteuert wird, wer­ den auf den Leitungen 150 eine Leseadresse und auf den Leitungen 151 eine Schreibadresse an das Makro 136 angelegt. Die Lese­ adressleitung 150 legt an das Cachespeichermatrixmakro 136 nur geradzahlige Adressen an. Der Schreibzwischenspeicher 134 wird von der Antwort-FSM 185 (Fig. 7) gesetzt, wenn eine Cachespei­ cherschreiboperation ausgeführt werden soll. Wenn das Cachespei­ cher-FSM 188 aktiv ist und das Cachespeicher-Leseadressregister 104 (Fig. 4) eine ungeradzahlige Adresse enthält, darf der Schreibzwischenspeicher nicht gesetzt sein. Das Signal auf Lei­ tung 153 wird von einer UND-Schaltung 154 mit einem Satzschreib­ signal auf Leitung 155 von dem Register 128 verknüpft, um eine 8-Byte-Schreiboperation in dem ausgewählten Satz der Cachespei­ chermatrix 136 auszuführen. Die Signale auf den Leitungen 148 und das invertierte Signal von Leitung 153 werden von der UND- Schaltung 156 verknüpft, um das Ausgangsregister 149 des Makros 136 zu steuern. Die Multiplexer 158 und 159 werden von dem Si­ gnal auf Leitung 157 gesteuert, welches das niedrigwertige Le­ seadressbit darstellt, und übertragen die ausgelesenen Daten zu den Leitungen 160, 161, welche mit den Registern 143 verbunden sind (Fig. 4).
Aus den Dateneingangsregistern 142 werden über die Leitungen 144 Doppelworte in das Cachespeichermakro geschrieben. Jedes Doppel­ wort umfasst 8 Bytes zu jeweils 8 Bit sowie eine Anzahl Fehler­ korrekturbits, was insgesamt eine Dateneinheit von 72 Bit er­ gibt. Für die Leseoperation werden nur geradzahlige Adressen verwendet, die Leseadressleitung 150 enthält somit nicht das niedrigwertige Bit.
Obwohl die Zeilenabrufdaten auf der PU-Schnittstelle 8 Byte breite Daten pro Zyklus umfassen, werden in einem Zyklus aus dem Cachespeichersatz 138 2 × 8 Byte ausgelesen, um in dem Datenaus­ gangsregister 149 gespeichert zu werden. Dieses Register benö­ tigt keinen separaten Zyklus. Sein Takt wird aus dem Matrixtakt abgeleitet. Das niedrigwertige Bit All der Leseadresse wird an Leitung 157 angelegt, um die Multiplexer 158 und 159 zum Auswäh­ len einer der zwei 8-Byte-Gruppen aus dem Register 149 in einem Zyklus anzusteuern, wobei die andere dieser beiden 8-Byte-Grup­ pen während des nächsten Zyklus ausgewählt wird. Durch diese An­ ordnung wird sichergestellt, dass während jedes Lesezyklus zwei Dateneinheiten zu 72 Bits gelesen werden und dass jeder zweite Zyklus kein Lesezyklus ist. Dieser zweite Zyklus ist zur Verwen­ dung als Schreibzyklus verfügbar. Somit folgt jedem Lesezyklus üblicherweise ein Schreibzyklus, wenn gleichzeitig mit der Le­ seoperation auch eine Schreiboperation anhängig ist. Jedoch gibt es eine Ausnahme: Wenn eine Leseoperation mit einer ungeradzah­ ligen Adresse beginnt, sind zwei aufeinanderfolgende Lesezyklen erforderlich. Dies wird von der Cachespeicher-FSM 188 (Fig. 7) ausgeführt. Immer wenn die Cachespeicherleseadresse im Register 104 geradzahlig ist, wird der Schreibzwischenspeicher 134 ge­ setzt. Dies erfolgt wenn das Speicherdatenregister 109 einen gültigen Datensatz (8 Bytes) enthält. Wenn die Cachespeicherle­ seadresse ungeradzahlig ist, wild das Register 109 gezwungen, seinen Inhalt zu erhalten. Der Schreibzyklus wird dann um einen Zyklus verschoben. Wenn eine Speicheroperation abläuft und die Cachespeicher-FSM 188 startet, führt diese einen Anfangsleerzy­ klus aus, wenn der Schreibzwischenspeicher 134 gesetzt ist.
Fig. 6 zeigt den Datenstrom der Speichersteuereinrichtung 16. Die von den Cachespeicherkernen 15-0 bis 15-3 kommenden Ein­ gangsbusse der Speichersteuereinrichtung, wie beispielsweise der Bus 121 vom Cachespeicherkern 15-0, sind über einen Multiplexer 170 und Eingangsleitungen 171 mit einem zentralen Steuerungsan­ schluss 172 und mit Datenanschlüssen 173, 174, 175, 176 verbun­ den, von denen jeder einem der Cachespeicherkerne 15-0 bis 15-3 zugeordnet ist. Auf der Speicherseite besitzen die Anschlüsse Ausgangsleitungen 177, welche über einen Multiplexer 178 mit ei­ nem Speicherbus 179 verbunden sind, welcher ein bidirektionaler Bus und ebenfalls mit den Eingangsleitungen 180 der Anschlüsse 173 bis 176 verbunden ist. Auf der Cachespeicherseite besitzt jeder Anschluss einen Ausgangsbus, wie beispielsweise der Bus 140 des Anschlusses 173, welcher, wie für den Cachespeicherkern 15-0 in Fig. 4 dargestellt, mit dem entsprechenden Cachespei­ cherkern 15-0 bis 15-3 verbunden ist. Der zentrale Steuerungsan­ schluss 172 besitzt einen Adressausgangsbus 181, der mit dem Speicher 18 verbunden ist. Auf einem Schlüssel-Statusbus 182 empfängt der zentrale Steuerungsanschluss 172 vom Speicher 18 Informationen über den Benutzungsstatus der auf dem Speicherbus 179 gelieferten Daten.
Die Steuerung des in Fig. 4 dargestellten Cachespeicherkerns der Stufe 2 wird hauptsächlich von FSMs ausgeführt, wie in Fig. 7 dargestellt. Die FSMs und deren Anwendung zu Speichersteue­ rungszwecken sind wohlbekannt. Dies wird beispielsweise in dem US-Patent Nr. 5 490 261 gezeigt, welches durch diese Bezugnahme hierin aufgenommen wird. Jede endliche Ablaufsteuerung arbeitet eine vorgegeben Folge von diskreten Steuerungszuständen ab, von denen jeder eine vorgegebene Zeit gültig ist, und in einigen dieser Steuerungszustände erzeugt die FSM für die zugeordneten Schaltungen Steuersignale. Fig. 7 zeigt ein allgemeines Block­ schaltbild, welches lediglich die wichtigsten Steuerungsfunktio­ nen und Signale sowie die Wechselwirkungen zwischen den in der Ausführungsform von Fig. 4 verwendeten FSMs darstellt. Fig. 7 enthält sieben endliche Ablaufsteuerungen, das sind: eine Ant­ wort-FSM 185, eine Kern-FSM 186, eine Cachespeicher-FSM 188, ei­ nen LFL1-FSM 190, eine OP2-Register-FSM 189, eine Anschluss-FSM 191 und eine Speichersteuereinrichtungs-FSM 192. Jede dieser FSMs wird von demselben Taktsignal CL angesteuert, wobei die Zy­ kluszeit von der gewählten Ausführungsform abhängig ist. Die FSMs arbeiten als separate Steuereinheiten unabhängig voneinan­ der. Zum Beispiel kann die Cachespeicher-FSM 188 eine Cacheope­ ration ausführen, während die Kern-FSM 186 Anforderungs- und Antwort-Steuerungsoperationen ausführt. Die Wechselwirkung zwi­ schen den FSMs erfolgt nur über die Startsignale, wie dies in Fig. 7 dargestellt ist. Jeder der Kerne 15-0 bis 15-3 enthält einen Satz FSMs 185, 186, 188 bis 192, und jeder dieser Sätze kann unabhängig von allen anderen arbeiten, um die Operationen seines Cachespeicherkerns zu steuern.
Die Hauptaufgabe der Antwort-FSM 185 besteht in der Verarbei­ tungssteuerung der zur Aktualisierung des Hauptspeichers durch­ zuspeichernden Daten, die über den entsprechenden Anschlussab­ schnitt 14-0 bis 14-11 von einer der Verarbeitungseinheiten PU1 bis PU11 kommen. Wenn eine anstehende Antwortanforderung von ei­ ner der PUs durch die Prioritätsentscheidungsschaltung 107 aus­ gewählt wird, sendet diese ein Startsignal an die Antwort-FSM 185, die dann die Übertragung der Kopfzeilen A, E dieser Ant­ wortanforderung in das Antwort-OP-Register 108 sowie die Über­ tragung der zu speichernden Datenkopien in das Register 109 steuert. Die Aktivitätsperiode der Antwort-FSM 185 hängt von der Anzahl der zu speichernden Datenkopien ab, die von der Kopfzeile B angezeigt wird. Die Antwort-FSM 185 überprüft ebenfalls den Inhalt des Cachespeicher-Leseadressregisters 104 auf eine unge­ radzahlige/geradzahlige Leseadresse und setzt nur dann den Schreibzwischenspeicher 134, wenn die Leseadresse geradzahlig ist, vorausgesetzt, eine Leseoperation findet gerade statt. Der Schreibzwischenspeicher kann immer gesetzt werden, wenn keine Cachespeicherleseoperation abläuft. Desweiteren startet die Ant­ wort-FSM 185 die Kern-FSM 186, welche für die Steuerung der Schreib- und Leseoperationen des Verzeichnisses 122 verantwort­ lich ist, welche sowohl von Cachespeicheranforderungen als auch von PU-Antwortanforderungen initiiert werden, wobei letzteren im Vergleich zu Cachespeicheranforderungen eine höhere Priorität zukommt. Die Kern-FSM 186 ist in Abhängigkeit davon, ob das Ver­ zeichnisnachschlagen eine Speicheroperation über die Antwort-FSM 185 oder eine Anforderungsoperation beinhaltet, für 1 bis 3 Zy­ klen aktiv. Die Kern-FSM 186 lädt über den Multiplexer 103 das Verzeichnisadressregister 110 und initiiert ein Verzeichnisnach­ schlagen, und sie startet die OP2-Register-ESM 189, wenn der Verzeichnisvergleich einen Cachespeicherfehler ergibt, und im Fall eines Cachespeichertreffers startet sie die LFL1-FSM 190. Desweiteren startet die Kern-FSM 186 in jedem Fall die Cache­ speicher-FSM 188 und die Anschluss-FSM 191. Die Kern-FSM 186 startet, wenn ein Cachespeicherfehler auftritt, die Speicher­ steuereinrichtungs-FSM 192.
Die Cachespeicher-FSM 188 hat mit Ausnahme des Falls, in dem der Cachespeicher der Stufe 2 nicht beschäftigt ist, eine andere Startzeit als die Kern-FSM 186. Die Cachespeicher-FSM 188 emp­ fängt ihr Startsignal entweder von der Kern-FSM oder bei einem verzögerten Zeilenabruf eines LFL1 von der LFL1-FSM 190 oder bei einem LRU Zeilenauslesen von der OP2-Register-FSM 189. Die Cachespeicher-FSM 188 erzeugt ein Auswahlsignal für die Cache­ speichermatrix auf Leitung 145 und steuert die Arbeitsweise der Cachespeichermatrix 135. Die Annchluss-FSM 191 erzeugt zu den gegebenen Zeitpunkten die Steuersignale für die Multiplexer 115 und 117 und das Register 116 zur Übertragung der Daten über den Cachespeicherkern-Ausgangsbus 118.
Die OP2-Register-FSM 189 ist während einer Vielzahl Zyklen ak­ tiv, wobei deren Anzahl vom Speicher abhängig ist, nämlich von der Ausführung eines LFL2 mittels Ausführung eines Speicherzu­ griffs. Desweiteren setzt sie-den Schreibzwischenspeicher 134, wenn bei der Ausführung einer LFL2-Operation Daten aus dem Spei­ cher 18 ankommen. Die Kern-FSM 186 überträgt den Inhalt des er­ sten OP-Registers 111 in das zweite OP-Register 114, um das er­ ste OP-Register 111 für weitere Anforderungen von den PUs frei zu machen, und sie startet zu den gegebenen Zeitpunkten die Speichersteuereinrichtungs-FSM 192 und die Anschluss-FSM 191 zum Zweck der Datenübertragung in den und aus dem Speicher. Die Speichersteuereinrichtungs-FSM 192 steuert den Multiplexer 120 zur Übertragung von Adressdaten und anderen Daten zum Eingangs­ bus 121 der Speichersteuereinrichtung. Die LFL1-FSM 190 ist au­ ßer bei cachespeicherübergreifenden Abfrageoperationen zwischen Cachespeichern der Stufe 1 für 6 Zyklen aktiv und steuert den Beginn und das Ende einer LFL1-Operation.
Wie oben unter Bezugnahme auf die Fig. 4 und 5 erklärt worden ist, werden LFL1- und LEL2-Operation gleichzeitig ausgeführt, und zusätzlich kann eine Cachespeicherschreiboperation ohne zu­ sätzliche Zykluszeiten ausgeführt werden, wenn eine Cachespei­ cherleseoperation stattfindet. Das Zeitdiagramm von Fig. 8 zeigt ein Beispiel dieser Parallelität. In diesem Beispiel wird eine LFL2-Operation für die PU0 gleichzeitig mit einer LFL1-Ope­ ration für die PU1 und mit einer 5 zu speichernde Datenkopien umfassenden Speicheraktualisierung für die PU2 ausgeführt. Die Operation beginnt mit der Entscheidung der Anforderungs-Prio­ ritätsentscheidungsschaltung 102 zur Auswahl der PU0. Die Kopf­ zeile A der PU0 ist in das Cachespeicheradressregister 104 und in das Verzeichnisadressregister 110 für ein Verzeichnisnach­ schlagen R0 eingegeben worden, was unter Steuerung der Kern-PSM 186 ausgeführt wird. Da die Cachespeicher-FSM 188 zu diesem Zeitpunkt nicht beschäftigt ist, wird der Startimpuls von der Anforderungs-Prioritätsentscheidungsschaltung 102 von der Kern- FSM durchgeschaltet und startet die Cachespeicher-FSM 188, wel­ che unter Verwendung der Adresse aus dem Register 104 einen spe­ kulativen Cachespeicherlesezyklus R0 startet.
Zu Beginn des nächsten Zyklus enthält das erste OP-Register 111 die Kopfzeilen A und B der Anforderung von der PU0, und das Ver­ zeichnis zeigt einen Cachespeicherfehler an. Dieses Ergebnis wird in den Registern 126 und den Übereinstimmungs-Zwischenspei­ chern 127 zwischengespeichert und bewirkt, dass die Cachespei­ cher-FSM 188 ihre Arbeit einstellt. Zusätzlich werden die Kopf­ zeilen A und B der Anforderung von der PU0 unter Steuerung der Kern-FSM 186 in das zweite OP-Register 114 übertragen. Eine Speicheroperation wird bereits von dem ersten OP-Register 111 initiiert, und die Adresse wird über den Multiplexer 120, den Bus 121, den zentralen Anschluss 192 der Speichersteuereinrich­ tung zum Speicheradressbus 181 übertragen.
Bis jetzt hat die Kern-FSM 186 das Verzeichnis für drei Zyklen benutzt, wobei der dritte Zyklus, der Verzeichnisschreibzyklus unterdrückt worden ist, weil der erste Zyklus zu einer LFL2 ge­ führt hat. Der erforderliche Verzeichnisaktualisierungszyklus für die PU0-Anforderung kommt zusammen mit den Daten aus dem Speicher 18 verspätet an. Die Kern-FSM 186 wählt jetzt vorzugs­ weise durch Ansteuerung des Multiplexers 103 die Antwortoperati­ on der PU2 aus, welches eine Speicheroperation ist, und über­ trägt die Verzeichnisadresse dieser Operation in das Register 110. Nur ein Zyklus ist für ein Nachschlagen im Verzeichnis er­ forderlich, um den übereinstimmenden Cachespeichersatz zu iden­ tifizieren. Danach wird die Kern-FSM 186 für die Zeilenabrufope­ ration der PU1 ein drittes Mal gestartet. Gleichzeitig wird die Cachespeicher-FSM 188 gestartet, die zu diesem Zeitpunkt nicht beschäftigt ist, um einen Lesezyklus Rl auszuführen. Das Ergeb­ nis dieser Cachespeicherleseoperation sind zwei Datenkopien R1, Rl von Lesedaten auf einem der Busse 76 bis 79 (Fig. 3), deren Daten über die Register 93, 94 auf die Busse 40, 41 übertragen werden. Nach diesem Cachespeicherlesezyklus wird ein erster ver­ steckter Cachespeicherschreibzyklus W2 der PU2-Antwortoperation ausgeführt. Zwei Speicherzyklen des Busses 40 PU2 - Cachespei­ cher der Stufe 2 führen zu einem Cachespeicherschreibzyklus W2. Danach setzen sich die LFL1-Operation der PU1 und die Speicher­ operation der PU2-Antwort in verschachtelter Art und Weise fort, bis die PU1 durch Ausführung von vier Cachespeicherlesezyklen R1, denen jeweils ein Schreibzyklus W2 folgt, 8 Datenkopien R1 empfangen hat. Zu diesem Zeitpunkt wird ebenfalls die Spei­ cheroperation von PU2 beendet, wobei die Speicheroperation die LFL1-Leseoperation nicht beeinflusst.
Bevor die Abrufdaten aus dem Speicher 18 eingehen, sind genügend frei Zyklen vorhanden, um wie beschrieben in Abhängigkeit von der Antwort zeit des Speichers insgesamt vier oder mehr LFL1-Ope­ rationen zusammen mit versteckten Speicheroperationen auszufüh­ ren. Wenn die LFL2-Operation zu einer Zeilenspeichern-Zeilenab­ ruf-Operation (LSLF) wird, welche eine kurz zuvor benutzte Cachespeicherzeile (LRU-Zeile - least recently used) -durch die zu speichernde Cachespeicherzeile ersetzt und welche es erfor­ derlich macht, die LRU-Zeile aus dem Cachespeicher zu lesen und im Speicher abzulegen, würde die Cachespeicher-FSM 188 unter Steuerung der OP2-Register-FSM 189 gestartet, vorausgesetzt, dass die Cachespeicher-FSM 188 nicht beschäftigt ist. Während der sich ergebenden Cachespeicherleseoperation sind versteckte Speicheroperationen ebenfalls möglich. Da jedoch die LSLF-Ope­ ration die Cache-FSM 188 für 8 Lesezyklen benötigt, um die LRU- Zeile auszulesen, ist die Cachespeicher-FSM während dieser Zeit nicht für eine LPL1-Operation verfügbar. Eine LFL1-Operation muss somit warten, bis das Auslesen der LRU-Zeile beendet ist.
Wenn die Abrufdaten der LFL2-Operation für PU0 auf dem Datenbus 179 (Fig. 6) ankommen, sind acht Schreibzyklen WO im Cachespei­ cher und ein Verzeichnisaktualisierungszyklus WO erforderlich, um die entsprechenden Aktualisierungsoperationen auszuführen. In der dargestellten Ausführungsform wird auf der Speicherschnitt­ stelle ein anderer Takt verwendet, was die Lücken in dem inter­ nen Takt des Cachespeichers der Stufe 2 erklärt. Da LEL2-Opera­ tionen weniger häufig sind als LFL1-Operationen, wird es als nicht notwendig betrachtet, Cachespeicherschreibzyklen für Spei­ cheroperationen mit anderen Operationen zu verschachteln.
Das Zeitdiagramm von Fig. 8 zeigt, dass die LFL1-Operation für die PU1 und die LFL2-Operation für die PU0 gleichzeitig ausge­ führt werden und dass die Speicheroperation für die PU2 mit ih­ nen verschachtelt wird und keine separaten Zyklen benötigt. Die Parallelität der Operationen erstreckt sich auf alle Cachespei­ cherkerne 15-0 bis 15-3. Jeder der Cachespeicherkerne kann gleichzeitig LFL1-Operationen, LFL2-Operationen und Speicherope­ rationen für eine beliebige der Verarbeitungseinheiten PU0 bis PU11 ausführen. Somit kann die dargestellte Ausführungsform gleichzeitig bis zu 12 Operationen des besagten Typs ausführen.

Claims (28)

1. Hochleistungs-Cachespeichereinheit in einem Computersystem, das eine Vielzahl Verarbeitungseinheiten (PU0 bis PU11) be­ sitzt um Rechenprozesse im Mehrprozessorbetrieb auszufüh­ ren, wobei jede der Verarbeitungseinheiten über Anschluss­ mittel (14) mit einem gemeinsam genutzten Cachespeicher der Stufe n (15) verbunden ist, der als Puffer zwischen den Verarbeitungseinheiten und einem Speicher (18) dient, wobei der gemeinsam genutzte Cachespeicher Prioritätsentschei­ dungsmittel (102) zur Ausführung einer prioritätsbasierten Auswahl anstehender Cachespeicherzugriffsanforderungen und Verzeichnismittel (122) zur Erzeugung einer Cachespeicher­ treffer- oder Cachespeicherfehleranzeige für den Cachespei­ cherkern in Reaktion auf einen angeforderten Zugriff ent­ hält, umfassend:
  • (a) erste Speichermittel (64 bis 67) zum Speichern von Da­ tenanforderungen von einer oder mehreren Verarbei­ tungseinheiten;
  • (b) zweite Speichermittel (54 bis 57) zum Speichern von Verarbeitungseinheit-Antwortanforderungen von einer oder mehreren Verarbeitungseinheiten;
  • (c) erste und zweite Prioritätsentscheidungs- und Auswahl­ mittel (101, 102 und 106, 107) zum Ausführen einer prioritätsbasierten und voneinander unabhängigen Aus­ wahl zwischen den Datenanforderungen und den Antwort­ anforderungen in den ersten und zweiten Speichermit­ teln;
  • (d) Adressregistermittel (110), die den ersten und zweiten Prioritätsentscheidungs- und Auswahlmitteln zugeordnet sind, um die Adressabschnitte der ausgewählten Daten­ anforderung oder der ausgewählten Antwortanforderung zu speichern, um eine Verzeichnisnachschlageoperation aus zuführen;
  • (e) erste Cachespeicherregistermittel (112, 114, 104), die den ersten Prioritätsentscheidungs- und Auswahlmitteln zugeordnet sind, um die Adress- und Operationskomman­ dodaten einer Zeilenabruf-Trefferoperation und unab­ hängig davon die Adress- und Operationskommandodaten einer Zeilenabruf-Fehleroperation während deren Aus­ führung zu speichern;
  • (f) ein zweites Cachespeicherregistermittel (108), das den zweiten Prioritätsentscheidungs- und Auswahlmitteln zugeordnet ist, um die Adress- und Operationskommando­ daten einer Antwortoperation während deren Ausführung zu speichern; und
  • (g) Steuerungsmittel (185, 186, 188, 189) zum Verschach­ teln der Zeilenabruf-Trefferoperationen und der Zei­ lenabruf-Fenleroperationen und der Antwortoperationen während deren Ausführung.
2. Cachespeichereinheit nach Anspruch 1, eine Cachespeicherma­ trix (135) umfassend, die in der Lage ist, eine Vielzahl Byte-Dateneinheiten zu speichern, von denen jede n Bytes umfasst; desweiteren Lesezugriffsmittel (150, 152) umfas­ send, um eine Leseoperation von zwei Dateneinheiten gleich­ zeitig in einem Operationszyklus auszuführen und jeden zweiten Operationszyklus für eine Schreiboperation verfüg­ bar zu haben; und ein Steuerungsmittel (185) umfassend, um in aufeinander folgenden Operationszyklen einen Lesezyklus der Zeilenabruf-Trefferoperation mit einem Schreibzyklus der Antwortoperation zu verschachteln.
3. Cachespeichereinheit nach Anspruch 2, wobei die Lesezu­ griffsmittel (150, 152) in zwei Teile unterteilt sind, wo­ bei ein erster Teil (150, 152) geradzahlige Leseadressen an die Cachespeichermatrix (136) anlegt und ein zweiter Teil (157), der aus dem niedrigwertigen Leseadressbit besteht, an Multiplexermittel (158, 159) angelegt wird, um die eine oder die andere der beiden Dateneinheiten auszuwählen, die gleichzeitig aus der Cachespeichermatrix gelesen werden.
4. Cachespeichereinheit nach Anspruch 1, wobei der gemeinsam genutzte Cachespeicher der Stufe n (15) in eine Vielzahl paralleler Cachespeicherkerne (15-0 bis 15-3) unterteilt ist, die parallel und unabhängig voneinander arbeiten, um Datenanforderungen und Antwortanforderungen von einer oder mehreren Verarbeitungseinheiten auszuführen, und wobei die Anschlussmittel eine Vielzahl von Anschlüssen (14-0 bis 14-11) umfassen, die jede der Verarbeitungseinheiten (PU0 bis PU11) mit jedem der Cachespeicherkerne verbinden.
5. Cachespeichereinheit nach Anspruch 4, wobei die ersten und zweiten Speichermittel (64 bis 67, 54 bis 57), die ersten und zweiten Prioritätsentscheidungs- und Auswahlmittel (101, 102 und 106, 107), das Adressregistermittel (104), die ersten und zweiten Cachespeicherregistermittel (112, 114, 108), die Steuerungsmittel (185, 186, 188, 189) und die Cachespeichermatrix (135) jedem aus der Vielzahl der parallelen Cachespeicherkerne (15-0 bis 15-3) zugeordnet sind.
6. Cachespeichereinheit nach Anspruch 4, wobei jeder der An­ schlüsse (14-0 bis 14-11) einen FIFO-Speicher (42) zum Speichern einer Vielzahl von Datenanforderungen von einer oder mehreren Verarbeitungseinheiten und weiterhin einen FIFO-Speicher (43 bis 46) für jeden der Cachespeicherkerne (15-0 bis 15-3) umfasst, um eine Vielzahl von Antwortanfor­ derungen von einer oder mehreren Verarbeitungseinheiten zu speichern, die an den entsprechenden Cachespeicherkern ge­ richtet sind.
7. Cachespeichereinheit nach Anspruch 1 oder 4, wobei die Da­ tenanforderungen und die Antwortanforderungen der Vielzahl der Verarbeitungseinheiten Kopfzeilen (A und B) einschlie­ ßen, welche Adress-, Kommando- und Statusdaten enthalten, und wobei die Adressdaten eine Verzeichnisadresse und eine Cachespeicheradresse darstellen.
8. Cachespeichereinheit nach Anspruch 7, in mindestens einem Cachespeicherkern aus der Vielzahl der Cachespeicherkerne ein erstes OP-Registermittel (111) umfassend, welches se­ lektiv mit den ersten Prioritätsentscheidungs- und Auswahl­ mitteln (101, 102) verbunden ist, um die Kopfzeilen (A, B) einer Datenanforderungsoperation anfänglich zu speichern.
9. Cachespeichereinheit nach Anspruch 8, in mindestens einem aus der Vielzahl der Cachespeicherkerne ein LFL1-OP- Registermittel (112) umfassend, welches mit dem ersten OP- Registermittel (111) verbunden ist, um die Kopfzeilen (A, B) einer Zeilenabruf-Trefferoperation während deren Ausfüh­ rung zu speichern.
10. Cachespeichereinheit nach Anspruch 8, in mindestens einem aus der Vielzahl der Cachespeicherkerne ein zweites OP- Registermittel (114) umfassend, welches mit dem ersten OP- Registermittel (111) verbunden ist, um die Kopfzeilen (A, B) einer Zeilenabruf-Fehleroperation während deren Ausfüh­ rung zu speichern.
11. Cachespeichereinheit nach Anspruch 7, in mindestens einem aus der Vielzahl der Cachespeicherkerne ein Antwort-OP- Registermittel (108) umfassend, welches mit dem zweiten Prioritätsentscheidungs- und Auswahlmittel (106, 107) ver­ bunden ist, um die Kopfzeilen (A, B) einer Antwortanforde­ rung anfänglich zu speichern.
12. Cachespeichereinheit nach Anspruch 11, in mindestens einem aus der Vielzahl der Cachespeicherkerne ein Speicherdaten- Registermittel (109) umfassend, welches mit dem zweiten Prioritätsentscheidungs- und Auswahlmittel (106, 107) ver­ bunden ist, um die Schreibdaten einer Antwortanforderung aufeinanderfolgend zu speichern.
13. Cachespeichereinheit nach Anspruch 12, in mindestens einem aus der Vielzahl der Cachespeicherkerne ein Cachespeicher- Schreibadressregistermittel (105) umfassend, welches mit dem Antwort-OP-Registermittel (108) verbunden ist, um die Cachespeicher-Schreibadresse einer Antwortanforderungsope­ ration während deren Ausführung zu speichern.
14. Cachespeichereinheit nach Anspruch 7, in mindestens einem aus der Vielzahl der Cachespeicherkerne ein Cachespeicher- Leseadressregistermittel (104) umfassend, welches mit dem ersten Prioritätsentscheidungs- und Auswahlmittel (101, 102) verbunden ist, um die Cachespeicherleseadresse einer Datenanforderungsoperation während deren Ausführung zu speichern.
15. Cachespeichereinheit nach Anspruch 1, ein Schreibzwischen­ speichermittel (134) umfassend, welches ein Schreibsteuer­ signal für die Cachespeichermatrix (135) erzeugt, und wel­ ches von der Steuerschaltung (185) gesetzt wird, wenn das Cachespeicher-Leseadressregistermittel (104) eine geradzah­ lige Leseadresse anzeigt, und wenn das Steuerungsmittel (188) eine aktuelle Cachespeicherleseoperation anzeigt.
16. Cachespeichereinheit nach Anspruch 4, wobei jeder der An­ schlüsse (14-0 bis 14-11) umfasst: einen FIFO-Speicher (74) zum Speichern einer Vielzahl Cachespeicheranforderungen, die zu einer aus der Vielzahl Verarbeitungseinheiten über­ tragen werden sollen, und desweiteren einen FIFO-Speicher (75) zum Speichern einer Vielzahl Antworten von einem oder mehreren Cachespeicherkernen, die zu einer aus der Vielzahl der Verarbeitungseinheiten übertragen werden sollen.
17. Cachespeichereinheit nach Anspruch 1, ein Speichersteue­ rungsmittel (16) umfassend, um die Vielzahl der Cachespei­ cherkerne (15-0 bis 15-3) mit dem Speicher (18) zu verbin­ den.
18. Verfahren zum hochleistungsfähigen Puffern von Befehlen und Daten in einer Cachespeichereinheit eines Computersystems, das eine Vielzahl Verarbeitungseinheiten (PU0 bis PU11) be­ sitzt, um Rechenprozesse im Mehrprozessorbetrieb auszufüh­ ren, wobei jede der Verarbeitungseinheiten über Anschluss­ mittel (14) mit einem gemeinsam genutzten Cachespeicher der Stufe n (15) verbunden ist, der als Puffer zwischen den Verarbeitungseinheiten und einem Speicher (18) dient, wobei das Verfahren eine Prioritätsentscheidung zwischen anste­ henden Cachespeicherzugriffsanforderungen sowie Cachespei­ cherverzeichniszugriffen zur Erzeugung einer Cachespeicher­ treffer- oder Cachespeicherfehleranzeige in Reaktion auf einen angeforderten Cachespeicherzugriff verwendet, die folgenden Schritte umfassend:
  • (a) separates Speichern von Datenanforderungen (42, 64 bis 67) und Antwortanforderungen von einer oder mehreren Verarbeitungseinheiten (43 bis 46, 54 bis 57);
  • (b) prioritätsbasierte Auswahl von einer der gespeicherten Datenanforderungen und unabhängig davon prioritätsba­ sierte Auswahl von einer der gespeicherten Antwortan­ forderungen (101, 102 und 106, 107);
  • (c) Verwenden der Adressabschnitte der ausgewählten Daten­ anforderungen oder der ausgewählten Antwortanforde­ rung, um eine Verzeichnisnachschlageoperation (110) aus zuführen;
  • (d) Speichern der Adress- und Operationskommandodaten ei­ ner Zeilenabruf-Trefferoperation und einer Zeilenab­ ruf-Fehleroperation unabhängig voneinander während de­ ren Ausführung (112, 114);
  • (e) Speichern der Adress- und Operationskommandodaten ei­ ner Antwortanforderungsoperation während deren Ausfüh­ rung; und
  • (f) verschachteltes Ausführen der Zeilenabruf-Trefferope­ rationen und der Zeilenabruf-Kehleroperationen und der Antwortoperationen (185, 186, 188, 189).
19. Verfahren nach Anspruch 18, die folgenden Schritte umfas­ send: Speichern einer Vielzahl von Bytedateneinheiten, von denen jede n Bytes enthält; Ausführen einer Leseoperation von zwei Dateneinheiten gleichzeitig in einem Operationszy­ klus, wodurch jeder zweite Operationszyklus für eine Schreiboperation verfügbar ist, und Verschachteln eines Le­ sezyklus der Zeilenabruf-Trefferoperation mit einem Schreibzyklus der Antwortoperation in aufeinanderfolgenden Operationszyklen.
20. Verfahren nach Anspruch 19, wobei der Schritt der Leseope­ ration Leseadressen verwendet, die in zwei Teile unterteilt sind, wobei ein erster Teil (150, 152) aus geradzahligen Leseadressen zum Adressieren von zwei Dateneinheiten in der Cachespeichermatrix (136) besteht, und wobei ein zweiter Teil (157) aus dem niedrigwertigen Leseadressbit besteht, welches dazu verwendet wird, die eine oder die andere der Dateneinheiten auszuwählen, die gleichzeitig aus der Cachespeichermatrix gelesen werden.
21. Verfahren nach Anspruch 18, wobei der gemeinsam genutzte Cachespeicher der Stufe n (15) in eine Vielzahl paralleler Cachespeicherkerne (15-0 bis 15-3) unterteilt ist und das Verfahren die folgenden Schritte umfasst: Betreiben der Cachespeicherkerne parallel und unabhängig voneinander, um Datenanforderungen und Antwortanforderung von einer oder mehreren Verarbeitungseinheiten auszuführen; und Verbinden jeder der Verarbeitungseinheiten (PU0 bis PU11) mit jedem der Cachespeicherkerne.
22. Verfahren nach Anspruch 21, die folgenden Schritte umfas­ send: Speichern einer Vielzahl von Datenanforderungen von einer oder mehreren Verarbeitungseinheiten in einem FIFO- Speicher; und für jeden der Cachespeicherkerne (15-0 bis 15-3) Speichern der an den entsprechenden Cachespeicherkern gerichteten Vielzahl von Antwortanforderungen.
23. Verfahren nach Anspruch 18 oder 21, wobei die Datenanforde­ rungen und die Antwortanforderungen von der Vielzahl der Verarbeitungseinheiten Kopfzeilen (A und B) enthalten, wel­ che Adress-, Kommando- und Statusdaten enthalten und wobei die Adressdaten eine Verzeichnisadresse und eine Cachespei­ cheradresse darstellen.
24. Verfahren nach Anspruch 23, wobei die Ausführung einer Da­ tenanforderung die folgenden Schritte umfasst:
anfängliches Speichern der Kopfzeilen (A, B) einer Datenan­ forderungsoperation in einem ersten Register (111);
Speichern der Kopfzeilen (A, B) einer Zeilenabruf-Treffer­ operation während deren Ausführung in einem zweiten Regi­ ster (112); und
Speichern der Kopfzeilen (A, B) einer Zeilenabruf-Kehler­ operation während deren Ausführung in einem dritten Regi­ ster (114).
25. Verfahren nach Anspruch 23, wobei die Ausführung einer Ant­ wortanforderung die folgenden Schritte umfasst:
anfängliches Speichern der Kopfzeilen (A, B) einer Ant­ wortanforderung in einem Antwortoperationsregister (108);
aufeinanderfolgendes Speichern der Schreibdaten einer Ant­ wortanforderung in einem Schreibdatenregister (109); und
Speichern der Cachespeicher-Schreibadresse einer Antwortan­ forderungsoperation während deren Ausführung in einem Cachespeicher-Schreibadressregister (105).
26. Verfahren nach Anspruch 18, den Schritt des Erzeugens eines Schreibsteuersignals für die Cachespeichermatrix (135) um­ fassend, wenn die Ausführung einer Datenanforderung eine geradzahlige Leseadresse anzeigt.
27. Verfahren nach Anspruch 21, die folgenden Schritte umfas­ send: Speichern einer Vielzahl Cachespeicheranforderungen, die zu einer aus der Vielzahl Verarbeitungseinheiten über­ tragen werden sollen, in einem FIFO-Speicher (74); und Speichern einer Vielzahl Antworten von einem oder mehreren Cachespeicherkernen, die zu einer aus der Vielzahl der Ver­ arbeitungseinheiten übertragen werden sollen, in einem FIFO-Speicher (75).
28. Verfahren nach Anspruch 1, den Schritt des Übertragens von Daten zwischen der Vielzahl der Cachespeicherkerne (15-0 bis 15-3) und dem Speicher (18) für jeden der Cachespei­ cherkerne unabhängig von der Datenübertragung für andere Cachespeicherkerne umfassend.
DE19908618A 1998-04-01 1999-02-27 Gemeinsam genutzter Hochleistungscachespeicher Ceased DE19908618A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP98105949 1998-04-01

Publications (1)

Publication Number Publication Date
DE19908618A1 true DE19908618A1 (de) 1999-10-14

Family

ID=8231700

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19908618A Ceased DE19908618A1 (de) 1998-04-01 1999-02-27 Gemeinsam genutzter Hochleistungscachespeicher

Country Status (2)

Country Link
US (1) US6101589A (de)
DE (1) DE19908618A1 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6381674B2 (en) * 1997-09-30 2002-04-30 Lsi Logic Corporation Method and apparatus for providing centralized intelligent cache between multiple data controlling elements
US9092595B2 (en) 1997-10-08 2015-07-28 Pact Xpp Technologies Ag Multiprocessor having associated RAM units
US6483516B1 (en) * 1998-10-09 2002-11-19 National Semiconductor Corporation Hierarchical texture cache
US6801207B1 (en) * 1998-10-09 2004-10-05 Advanced Micro Devices, Inc. Multimedia processor employing a shared CPU-graphics cache
US6490652B1 (en) * 1999-02-03 2002-12-03 Ati Technologies Inc. Method and apparatus for decoupled retrieval of cache miss data
US7269663B2 (en) * 2001-09-28 2007-09-11 Intel Corporation Tagging packets with a lookup key to facilitate usage of a unified packet forwarding cache
US6925512B2 (en) * 2001-10-15 2005-08-02 Intel Corporation Communication between two embedded processors
US6687791B2 (en) 2002-01-07 2004-02-03 Sun Microsystems, Inc. Shared cache for data integrity operations
US6931576B2 (en) * 2002-01-07 2005-08-16 Sun Microsystems, Inc. Data integrity device providing heightened error protection in a data processing system
JP4170080B2 (ja) * 2002-11-28 2008-10-22 富士通株式会社 マルチプロセッサシステム
EP1548613A1 (de) * 2003-12-23 2005-06-29 Sap Ag Verfahren und Vorrichtung zur Verbesserung der Leistungsfähigkeit in einem Client-Server System.
US8407432B2 (en) * 2005-06-30 2013-03-26 Intel Corporation Cache coherency sequencing implementation and adaptive LLC access priority control for CMP
DE102005037215A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren zur Speicherung von Daten und/oder Befehlen in einem Rechnersystem mit wenigstens zwei Verarbeitungseinheiten und wenigstens einem ersten Speicher oder Speicherbereich für Daten und/oder Befehle
DE102005037219A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Vorrichtung und Verfahren zur Speicherung von Daten und/oder Befehlen in einem Rechnersystem mit wenigstens zwei Verarbeitungseinheiten und wenigstens einem ersten Speicher oder Speicherbereich für Daten und/oder Befehle
US8990501B1 (en) 2005-10-12 2015-03-24 Azul Systems, Inc. Multiple cluster processor
US7683665B1 (en) 2009-04-21 2010-03-23 International Business Machines Corporation Multiple parallel programmable finite state machines using a shared transition table
KR101635395B1 (ko) * 2010-03-10 2016-07-01 삼성전자주식회사 멀티포트 데이터 캐시 장치 및 멀티포트 데이터 캐시 장치의 제어 방법
US8407420B2 (en) * 2010-06-23 2013-03-26 International Business Machines Corporation System, apparatus and method utilizing early access to shared cache pipeline for latency reduction

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4056845A (en) * 1975-04-25 1977-11-01 Data General Corporation Memory access technique
US4445174A (en) * 1981-03-31 1984-04-24 International Business Machines Corporation Multiprocessing system including a shared cache
US4905141A (en) * 1988-10-25 1990-02-27 International Business Machines Corporation Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification
US5347648A (en) * 1990-06-29 1994-09-13 Digital Equipment Corporation Ensuring write ordering under writeback cache error conditions
US5581734A (en) * 1993-08-02 1996-12-03 International Business Machines Corporation Multiprocessor system with shared cache and data input/output circuitry for transferring data amount greater than system bus capacity
US5745913A (en) * 1996-08-05 1998-04-28 Exponential Technology, Inc. Multi-processor DRAM controller that prioritizes row-miss requests to stale banks

Also Published As

Publication number Publication date
US6101589A (en) 2000-08-08

Similar Documents

Publication Publication Date Title
DE3588009T2 (de) Vorrichtung und Verfahren zum Rekonfigurieren eines Speichers in einer Datenverarbeitungsanordnung.
DE3687947T2 (de) Schnittstelle und Verfahren für Buszugriff in einem Rechner.
DE3782335T2 (de) Speichersteuersystem.
DE69724355T2 (de) Erweiterte symmetrische Multiprozessorarchitektur
DE19908618A1 (de) Gemeinsam genutzter Hochleistungscachespeicher
DE68926036T2 (de) Speicherkonfiguration zur Verwendung für Schnittstellenbildung zwischen einer Systemsteuereinheit für ein Multiprozessorsystem und dem Hauptspeicher
DE60037174T2 (de) Puffersystem für externen speicherzugriff
DE68924306T2 (de) Mehrprozessorrechneranordnungen mit gemeinsamem Speicher und privaten Cache-Speichern.
DE68927172T2 (de) Multiprozessorsystem mit cache-speichern
EP0013737B1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE3586389T2 (de) Dynamisch zugeordnete lokale/globale speicheranordnung.
DE68920435T2 (de) Steuereinheit für den speicher.
DE69132652T2 (de) Rechnerdatenleitweglenkungssystem
DE68924313T2 (de) Mehrprozessoranordnungen mit kreuzweise abgefragten Schreib-in-Cachespeichern.
DE69031411T2 (de) Verfahren und Anordnung zum Lesen, Schreiben und Auffrischen eines Speichers mit direktem virtuellem oder physikalischem Zugriff
DE68923863T2 (de) Ein-/Ausgabecachespeicherung.
DE69937611T2 (de) Intelligenter Puffer-Speicher
DE19516937A1 (de) Hierarchisches Cachesystem für einen Computer
DE10056827A1 (de) Duale Verwendung von Cache-Verbindungen
DE3854369T2 (de) Zentralprozessoreinheit für digitale datenverarbeitungsanordnung mit cache-speicherverwaltungsvorrichtung.
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE10045915A1 (de) Verfahren und System zum Steuern von Datenübertragungen mit physikalischer Trennung der Datenfunktionalität von der Adressen- und Steuerfunktionalität in einem verteilten Multi-Bus-Mehrprozessorsystem
DE3046912C2 (de) Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage
DE69029815T2 (de) Zentralisierte referenz- und änderungstabelle für eine virtuelle speicheranordnung
DE69027919T2 (de) Anordnung und Verfahren zur Unterstützung des Zugriffs auf E/A-Geräte durch grosse, direkt abgebildete Datencache-Speicher

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection