DE19908618A1 - Gemeinsam genutzter Hochleistungscachespeicher - Google Patents
Gemeinsam genutzter HochleistungscachespeicherInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
- G06F12/0857—Overlapped 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
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.
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.
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.
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.
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).
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).
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.
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)
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)
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 |
-
1998
- 1998-04-10 US US09/058,431 patent/US6101589A/en not_active Expired - Fee Related
-
1999
- 1999-02-27 DE DE19908618A patent/DE19908618A1/de not_active Ceased
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 |