DE4132833A1 - Hierarchischer schaltungsintegrierter cache-speicher - Google Patents
Hierarchischer schaltungsintegrierter cache-speicherInfo
- Publication number
- DE4132833A1 DE4132833A1 DE4132833A DE4132833A DE4132833A1 DE 4132833 A1 DE4132833 A1 DE 4132833A1 DE 4132833 A DE4132833 A DE 4132833A DE 4132833 A DE4132833 A DE 4132833A DE 4132833 A1 DE4132833 A1 DE 4132833A1
- Authority
- DE
- Germany
- Prior art keywords
- data
- memory
- cache
- primary
- inputs
- 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.)
- Granted
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/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
Description
Die vorliegende Erfindung betrifft allgemein Cache-Speicher
und insbesondere einen schaltungsintegrierten Speicher,
der speziell für die Durchführung von Cache-Speicherfunktio
nen ausgelegt ist. Insbesondere betrifft die vorliegende
Erfindung eine integrierte Schaltung, die einen Speicher
mit hoher Geschwindigkeit, einen Speicher mit niedrigerer
Geschwindigkeit aber größerer Speicherkapazität und verbin
dende Datenwegschaltungen zum Aufbauen eines hierarchischen
Cache-Speichers aufweist.
Auf dem Gebiet des Hochgeschwindigkeits-Computings ist die
Prozessorgeschwindigkeit im allgemeinen durch die Speicher
leistungsfähigkeit bzw. -geschwindigkeit begrenzt. Eine
CPU führt z. B. Befehle mit einer vorgegebenen Rate bzw.
Geschwindigkeit aus. Ähnlich führt der Hauptspeicher Lese-
und Schreiboperationen mit einer zweiten vorgegebenen Ge
schwindigkeit aus, die typischerweise zumindest eine Größen
ordnung langsamer ist als die CPU-Ausführungsgeschwindig
keit. Wenn die CPU auf den Hauptspeicher direkt während
der Ausführung von Speicherzugriffsbefehlen bzw. Instruktio
nen zugreift, verschlechtert sich die CPU-Leistungsfähig
keit auf die Speicherzugriffsgeschwindigkeit. In diesem
Fall ist die CPU blockiert bzw. im Stillstand, während sie
darauf wartet, daß der Hauptspeicher ihren Zugriffszyklus
für jeden Speicherzugriffsbefehl beendet.
Es ist möglich, einen speziell ausgelegten Speicher zu kon
struieren, der eine Zykluszeit hat, die ungefähr gleich
der Befehlszykluszeit der CPU ist. Diese speziell ausgeleg
ten Speicher setzen jedoch statische Hochgeschwindigkeits
RAMs ein, die sehr viel teurer sind, als typische dynami
sche RAMs, die in dem Hauptspeicher eingesetzt werden. Dem
entsprechend gehen viele Computersysteme den Kompromiß ein,
einen relativ kleinen Cache-Speicher mit hoher Geschwin
digkeit einzusetzen, während der langsamere Halbleiterspei
cher in dem Hauptspeicher verbleibt.
Der Cache wird unter Hardwaresteuerung so kontrolliert,
daß eine Kopie eines Teils des Hauptspeicherinhalts festge
halten wird, die wahrscheinlich von der CPU verwendet wird.
Solange wie die CPU auf jene Speicherstellen zugreift, die
in dem Cache festgehalten sind, arbeitet die CPU mit voller
Geschwindigkeit. Natürlich ist es unvermeidbar, daß die
CPU gelegentlich versucht, eine Speicherstelle zu lesen,
die nicht im Cache vorhanden ist. Während dieser Fehlzugrif
fe werden die Daten aus dem Hauptspeicher geholt und in
den Cache gespeichert. Deshalb verschlechtert sich die CPU-
Geschwindigkeit auf der Hauptspeicherzugriffsgeschwindig
keit während der Fehlzugriffe, aber die Fehlzugriffe sind
relativ selten, so daß die Gesamtgeschwindigkeit des Prozes
sors durch den Einsatz des Hochgeschwindigkeits-Cache er
höht wird.
Vor kurzem sind Prozessoren eingeführt worden, die Arbeits
geschwindigkeiten haben, welche weit über den Zugriffszei
ten typischer statischer RAM-Speicher liegen. Diese Prozes
soren haben z. B. Zykluszeiten unter 10 Nanosekunden. Da
eine solche schnelle Arbeitsgeschwindigkeit nur im geringen
Umfang an die Zugriffszeit von statischen RAM-Cache-Spei
chern angepaßt ist, sind diese Prozessoren mit Cache-Spei
chern auf dem Chip (on chip) versehen, die ein zusätzliches
Speicherniveau zwischen dem Prozessor und dem Cache-Spei
cher darstellen. Die Cache-Speicher auf dem Chip eliminie
ren eine Datenübertragungsverzögerung zwischen den Chips,
aber sie sind notwendigerweise in der Speicherkapazität be
schränkt, und zwar ist die Speicherkapazität sehr viel ge
ringer als die Kapazität eines einzelnen Chips, der nur
Hochgeschwindigkeitsspeicher enthält. Deshalb führt die
relativ hohe Fehlzugriffsrate des on-chip-Cache zu einer
wesentlichen Begrenzung der Prozessorleistungsfähigkeit,
und zwar bezüglich der Ungleichheit zwischen der Ausfüh
rungsgeschwindigkeit bzw. Arbeitsgeschwindigkeit der CPU
und der Zugriffszeit des statischen RAM-Cache.
Die Ungleichheit in der Geschwindigkeit zwischen dem Hochge
schwindigkeitsprozessor und dem statischen RAM-Cache-Spei
cher hat Cache-Designer dazu bewogen, einen "Primär-Cache"
mit einem Speicher sehr hoher Geschwindigkeit zwischen dem
Prozessor und dem statischen "Sekundär-RAM-Cache" anzuord
nen. Der Aufbau eines solchen "hierarchischen" Cache-Spei
chers ist jedoch wegen der hohen Anzahl von Eingangs-/Aus
gangsleitungen, der Verbindungspuffer (associated buffers)
und der Multiplexschaltungen, die zum Bilden einer Schnitt
stelle zwischen dem Sekundär-Cache-Speicher und dem Haupt
speicher und dem Primär-Cache-Speicher erforderlich sind,
und wegen der Notwendigkeit, die primären und sekundären
Cache-Speicher in enger Nachbarschaft zum Prozessor zu hal
ten, um Signalübertragungsverzögerungen zu minimieren,
nicht praktikabel.
Aufgabe der vorliegenden Erfindung ist es deshalb, einen
hierarchisch aufgebauten Cache-Speicher anzugeben, der mit
geringem Aufwand realisierbar ist und gute Eigenschaften
insbesondere bezüglich Signalübertragungsverzögerungen auf
weist.
Diese Aufgabe wird durch den hierarchischen Cache-Speicher
nach Anspruch 1 bzw. durch die integrierten Schaltungen
nach Anspruch 9 oder Anspruch 18 erfüllt.
In Übereinstimmung mit der vorliegenden Erfindung umfaßt
ein hierarchischer Cache-Speicher einen Primär-Cache-Spei
cher hoher Geschwindigkeit, einen Sekundär-Cache-Speicher
niedriger Geschwindigkeit und mit größerer Speicherkapazi
tät als der Primär-Cache-Speicher, Datenwegschaltungen,
um Datenwege vom Sekundär-Cache-Speicher zum Primär-Cache-
Speicher bzw. vom Hauptspeicheranschluß zum Sekundär-Cache-
Speicher auszuwählen, und eine Steuerschaltung zum Übertra
gen bzw. Transferieren von nachgefragten Daten von dem Sekun
där-Cache-Speicher zum Primär-Cache-Speicher, wenn die nach
gefragten Daten nicht im Primär-Cache-Speicher vorhanden
sind, und zum Übertragen der nachgefragten Daten von dem
Hauptspeicheranschluß zu dem Sekundär-Cache-Speicher, wenn
die nachgefragten Daten im Sekundär-Cache-Speicher nicht
vorhanden sind. Um eine große Anzahl von Datenleitungen
in den Datenwegschaltungen zu beherrschen, enthält der hie
rarchische Cache-Memory eine Vielzahl von integrierten
Schaltungen. Jede integrierte Schaltung enthält einen Ab
schnitt des Primär-Cache-Speichers, einen Abschnitt des
Sekundär-Cache-Speichers, der eine größere Speicherkapazi
tät hat als der Abschnitt des Primär-Cache-Speichers, und
einen Abschnitt der Datenwegauswahlschaltungen zum Einrich
ten jeweiliger Datenwege von dem Abschnitt des Sekundär-Ca
che-Speichers zu dem Abschnitt des Primär-Cache-Speichers
bzw. von dem Hauptspeicheranschluß zum Abschnitt des Sekun
där-Cache-Speichers.
In einer bevorzugten Ausführungsform umfaßt der Abschnitt
der Datenwegschaltungen in jeder der integrierten Schaltun
gen ein Seriell-/Parallel-Schieberegister, das einen Paral
lelausgang hat, welcher mit Dateneingangsleitungen der Ab
schnitte des Primär- und Sekundär-Cache-Speichers verbunden
ist, einen Serielldateneingang, der Daten des Hauptspei
chers empfängt, und einen Paralleleingang, der mit den Da
tenausgangsleitungen des Abschnitts des Sekundär-Cache-Spei
chers verbunden ist. Zum Schreiben von Daten in den Cache
und zurück in den Hauptspeicher umfaßt das Parallel-/Se
riell-Schieberegister auch einen Paralleleingang zum Ent
gegennehmen von Daten der Verarbeitungseinheit, einen Pa
ralleleingang, der mit den Datenausgangsleitungen des Ab
schnitts des Primär-Cache-Speichers verbunden ist, und
einen Seriellausgang zum Übertragen von Daten zu dem Haupt
speicher. Der Abschnitt des Primär-Cache-Speichers hat Ad
resseneingänge, die parallel mit Adresseneingängen des Ab
schnitts des Sekundär-Cache-Speichers verdrahtet sind. Um
dem Datenprozessor zu erlauben, eine ausgewählte Datenaus
gangsleitung des Abschnitts des Primär-Cache-Speichers zu
adressieren, enthält die integrierte Schaltung einen Multi
plexer mit Auswahleingängen, die mit zusätzlichen Adreßlei
tungen verbunden sind, und Dateneingangsleitungen, die mit
den Datenausgangsleitungen des Primär-Cache-Speichers ver
bunden sind. Um dem Datenprozessor zu erlauben, Daten in
den Primär-Cache von einer selektierten Dateneingangslei
tung des Abschnitts des Primär-Cache-Speichers zu schrei
ben, enthält die integrierte Schaltung einen Decoder, der
mit den zusätzlichen Adreßleitungen verbunden ist, und
Ausgänge, die mit den jeweiligen Schreib-Sperreingängen
des Abschnitts des Primär-Cache-Speichers verbunden sind,
und enthält der Paralleleingang des Seriell-/Parallel-Schie
beregisters eine Vielzahl von Datenleitungen, die parallel
zu einer Datenleitung zum Empfangen von Daten von dem Daten
prozessor verdrahtet sind.
Vorteilhafte Weiterbildungen der vorliegenden Erfindung
sind den Unteransprüchen zu entnehmen. Weitere Vorteile,
Anwendungsmöglichkeiten und Eigenschaften der vorliegenden
Erfindung sind aus der nachfolgenden Beschreibung von Aus
führungsformen in Verbindung mit den Zeichnungen ersicht
lich.
Es zeigen:
Fig. 1 ein Blockdiagramm eines Datenverarbeitungssystems,
das einen hierarchischen Cache der vorliegenden Erfindung
verwendet;
Fig. 2 (= Fig. 2A + Fig. 2B) ein Blockdiagramm des hierar
chischen Cache der Fig. 1;
Fig. 3 ein Blockdiagramm eines Kennzeichnungsspeichers,
der im hierarchischen Cache eingesetzt wird;
Fig. 4 ein Blockdiagramm einer integrierten Schaltung gemäß
der vorliegenden Erfindung, die Abschnitte des Primär-Cache-
Speichers und des Sekundär-Cache-Speichers enthält;
Fig. 5 ein schematisches Diagramm eines Seriell-/Parallel-
Schieberegisters, das zum Verbinden der Abschnitte des Pri
mär-Cache-Speichers und Sekundär-Cache-Speichers in der
integrierten Schaltung nach Fig. 4 eingesetzt wird;
Fig. 6 ein schematisches Diagramm des Abschnitts des Sekun
där-Cache-Speichers in der integrierten Schaltung der Fig.
4;
Fig. 7 ein schematisches Diagramm eines Adreß-Decoders und
des Abschnitts des Sekundär-Cache-Speichers, der in der
integrierten Schaltung nach Fig. 4 eingesetzt wird;
Fig. 8 ein schematisches Diagramm eines Eingangspuffers
(buffer) in der Form eines Differenzverstärkers, um zu er
möglichen, daß entweder ein einseitiger bzw. unsymmetrischer
Takt oder ein duales, komplementäres Taktsignal eingesetzt
wird, um die integrierte Schaltung nach Fig. 4 zu takten;
Fig. 9 ein Flußdiagramm einer Steuerlogik für den hierarchi
schen Cache nach Fig. 1;
Fig. 10 ein Flußdiagramm einer Steuerlogik, die eingesetzt
wird, um den Primär-Cache auszurüsten, wenn ein primärer
Fehlzugriff auftritt;
Fig. 11 ist ein Flußdiagramm der Steuerungslogik, die einge
setzt wird, um den Sekundärspeicher auszurüsten, wenn ein
sekundärer Fehlzugriff auftritt;
Fig. 12 ist ein schematisches Diagramm, das zeigt, wie die
integrierte Schaltung nach Fig. 4 in einem hierarchischen
Cache-Speicher eingesetzt wird, der zweiwegesatzassozia
tiv ist; und
Fig. 13 ein Flußdiagramm der zusätzlichen Steuerlogik, die
für den zweiwegesatzassoziativen Cache-Speicher nach Fig.
12 eingesetzt wird.
In Fig. 1 wird ein Blockdiagramm gezeigt, das ein Datenver
arbeitungssystem 20 aufweist, welches einen hierarchischen
Cache 21 in Übereinstimmung mit der vorliegenden Erfindung
verwendet. Das Datenverarbeitungssystem 20 enthält auch
einen Datenprozessor 22 und einen Hauptspeicher 23. Der
Datenprozessor 22 ist z. B. eine Zentralverarbeitungseinheit
(CPU), die Befehle in einem Computerprogramm ausführt. Die
Instruktionen umfassen Speicherzugriffsbefehle, die den
Datenprozessor befehlen, Daten aus einer spezifizierten
Quellenadresse im Hauptspeicher zu lesen oder spezifizierte
Daten unter einer spezifizierten Bestimmungsadresse im
Hauptspeicher einzuschreiben.
Die Speicherkosten sind ein Hauptfaktor der Gesamtkosten
des Datenverarbeitungssystems 20. Obwohl Speicher relativ
billig geworden sind, gibt es und wird es immer Speicher
geben, die unterschiedliche Speicherkapazitäten und Lei
stungseigenschaften erhältlich für unterschiedliche Kosten
haben. Die Kosten des Speichers sind z. B. proportional zur
Speicherkapazität und im allgemeinen proportional zur Ge
schwindigkeit des Speichers. Die Speichergeschwindigkeit
hat einen wesentlichen Einfluß auf die Ausführungsgeschwin
digkeit bzw. Arbeitsgeschwindigkeit des Datenprozessors
22. Dies gilt insbesondere für den Fall der sog. Computer
mit reduziertem Befehlssatz (RISC = reduced instruction
set computer), die dafür ausgelegt sind, einen Befehlssatz
auszuführen, der begrenzt worden ist und für die Arbeitsge
schwindigkeit optimiert worden ist. Wenn z. B. Emitter-ge
koppelte Logik (ECL = emitter-coupled logic) Technologie
eingesetzt wird, ist es praktisch, einen Einzelchipdatenpro
zessor 22 herzustellen, der eine Zykluszeit im Bereich von
3 Nanosekunden hat. Um zu verhindern, daß der Datenprozes
sor in diesem Fall während der Ausführung eines Speicherzu
griffsbefehls blockiert ist, sollte der Speicher eine ent
sprechende Zykluszeit von ungefähr 3 Nanosekunden haben.
Ein solches Erfordernis ist jedoch besonders schwierig zu
erfüllen, da eine Technologie für integrierte Schaltungen
mit hoher Geschwindigkeit und konsequenterweise hohem Ver
brauch an Energie wie z. B. ECL erforderlich ist und der
Speicher stark in der Kapazität wegen den Beschränkungen
bezüglich der Leistungsabführung, der Signalübertragungs
zeit und letztendlich der relativ hohen Kosten des ECL-Spei
chers begrenzt ist.
Eine allgemeine Lösung für dieses Problem besteht darin,
einen kleinen Pufferspeicher hoher Geschwindigkeit, der als
Cache bezeichnet wird, einzusetzen, um die zu allerletzt
benutzten Programmbefehle und/oder Daten festzuhalten.
Der Speicher ist zwischen dem Datenprozessor 22 und dem
Hauptspeicher 23 eingefügt. Für Prozessoren mit hoher Ge
schwindigkeit und mit Pipeline ist es allgemein bekannt,
zwei separate Cache-Speicher zu verwenden, und zwar den
einen zum Halten von Befehlen und den anderen zum Halten
von Daten. Der hierarchische Cache 21 in Fig. 1 wird z. B.
zum Halten von Daten verwendet. Wenn der Datenprozessor
22 einen Speicherzugriffsbefehl ausführt, frägt der Daten
prozessor 22 nach den Daten von dem Cache 21. Wenn die nach
gefragten Daten in dem Cache 21 vorhanden sind, können die
Daten schnell aus dem Cache geholt werden, ohne daß auf
den Hauptspeicher 23 zugegriffen werden muß.
Ein Cache, der nur ECL-Speicher enthält, stellt jedoch eine
eher schwache Lösung des Problems des Kompensierens der
großen Ungleichheit zwischen der Zyklusgeschwindigkeit des
Datenprozessors 22 und des Hauptprozessors 23 dar, wenn
der Hauptprozessor aus konventionellen dynamischen CMOS-RAM
(DRAM) Speicherchips besteht. Wegen der Begrenzungen der
hohen Leistungsverbrauchs bzw. der Leistungsabführung, der
Signalübertragungsverzögerung zwischen dem Datenprozessor
22 und dem Cache und den Kosten wäre die Leistungsfähigkeit
des Datenverarbeitungssystems 20 stark beschränkt, wenn
der ECL-Cache auf den Hauptspeicher 23 immer dann zugreifen
müßte, wenn ein Fehlzugriff aufgetreten ist. Da der ECL-
Cache-Speicher eine eher hohe Zugriffsfehlrate haben würde,
sollte er einen Zusatzspeicher haben, der eine Wartezeit
bzw. Zugriffswartezeit von nicht mehr als der zehnfachen
Zeit der Zugriffszeit des Cache-Speichers hat. Der Haupt
speicher 23 kann z. B. typischerweise eine Zugriffszeit von
mindestens 100 Nanosekunden haben, und deshalb beträgt die
Zeit bzw. Zeitstrafe für den Zugriff auf den Hauptspeicher
während eines Fehlzugriffs mindestens 30 Zyklen des Daten
prozessors oder des ECL-Cache-Speichers. Eine Lösung dieses
Problems, die in der Fig. 1 gezeigt wird, besteht darin,
einen hierarchischen Cache 21 zu verwenden, der einen Pri
mär-Cache 24 mit einem ECL-Speicher hoher Geschwindigkeit
und einem Sekundär-Cache 25 mit einem Speicher dazwischen
liegender Geschwindigkeit wie z. B. einem statischen DMOS-RAM
(SRAM) enthält.
Der Einsatz eines Sekundär-Cache 25 bringt jedoch eine An
zahl von Problemen mit sich. Um die Signalübertragungsver
zögerung zu begrenzen, sollte der Sekundär-Cache 25 nahe
am Primär-Cache 24 sein, doch es ist entscheidender, den
Primär-Cache in enger Nachbarschaft zum Datenprozessor 22 zu
halten. Zudem sollte der Sekundär-Cache 24 eine relativ
hohe Speicherkapazität und eine relativ große Blockgröße
haben, so daß die Systemleistungsfähigkeit bzw. Geschwindig
keit nicht durch die Zeit begrenzt wird, die zum Wiederauf
füllen des Primärspeichers 24 vom Sekundärspeicher 25 erfor
derlich ist. Dies erfordert eine große Anzahl von Signallei
tungen zur Verbindung des Sekundärspeichers 25 mit dem
Hauptspeicher 23 und dem Primärspeicher 24. Diese Überlegun
gen haben früher einen Sekundär-Cache-Speicher erfordert,
der auf einer gedruckten Leiterplatte zwischen dem Datenpro
zessor und dem Hauptspeicher angeordnet war, was einen gro
ßen Aufwand an Komplexität und Übertragungsverzögerung zu
sammen mit einem entsprechenden Verlust an Zuverlässigkeit
und Leistungsfähigkeit bzw. Geschwindigkeit bedeutet.
Gemäß einem wichtigen Aspekt der vorliegenden Erfindung
werden diese Probleme dadurch gelöst, indem Abschnitte des
Primärcache 24 und des Sekundärcache 25 auf den gleichen
integrierten Schaltungen angeordnet werden, so daß die hohe
Anzahl von Datenleitungen, die zwischen dem Primärcache
und dem Sekundärcache verbinden, vollständig auf den inte
grierten Schaltungen angeordnet sind. Zudem wird die Gesamt
anzahl und die Gesamtgröße der Gehäuse der integrierten
Schaltungen beim hierarchischen Cache 21 reduziert, da die
grundsätzlichen Einschränkungen bezüglich der Anzahl der
integrierten Schaltungsgehäuse unterschiedlich für den Pri
märcache 24 und den Sekundärcache 25 sind. Wenn der Primär
cache 24 aus einzelnen ECL-integrierten Schaltungen aufge
baut ist, ist der Primärfaktor, der die Anzahl der IC-Gehäu
se bestimmt hat, die Leistungsabführung der ECL Speicherele
mente in jedem Gehäuse. Anders ausgedrückt, ist die maxima
le Speicherkapazität eines ECL-Speichers auf einem einzeln
integrierten Schaltungschip primär durch die Leistungsabfüh
rung des Gehäuses, in dem der Chip angeordnet ist, be
grenzt. Andererseits, wenn der Sekundär-Cachespeicher 25
vollständig auf getrennten Chips integriert ist, dann ist
die maximale Speicherkapazität pro Chip im wesentlichen
durch die maximale Größe des integrierten Schaltungschips
für eine wirtschaftliche Chipherstellung begrenzt. Deshalb
kann durch Anordnen eines Teils des Sekundär-Cachespeichers
und eines Teils des Primär- Cachespeichers auf jedem inte
grierten Schaltungschip die Gesamtanzahl der Chips redu
ziert werden und zwar wegen der komplementären Natur der
grundsätzlichen Einschränkungen der unterschiedlichen in
tegrierten Schaltungstechnologien oder Betriebsbedingungen,
die für den Primärcache 24 und den Sekundärcache 25 erfor
derlich sind.
Es ist möglich, bekannte Halbleiterchipherstellungsverfah
ren zu verwenden, und insbesondere einen Prozeß zu verwen
den, der als "Bi-CMOS" bekannt ist, zum Kombinieren von
CMOS Speicherelementen und ECL-Speicherelementen auf dem
gleichen integrierten Schaltungstyp. Es wird jedoch darauf
hingewiesen, daß die gleichen ergänzenden Einschränkungen
bezüglich der Anzahl der IC-Gehäuse für den Primärcache und
den Sekundärcache auftreten, wenn die gleiche Schaltungsele
menttechnologie für den Primärcache und den Sekundärcache
angewendet wird, solange die Leistungsverteilung bzw. Abfüh
rung der Primärfaktor für den Primärcache aber nicht für
den Sekundärcache ist. Dies trifft zu für z. B. Bipolartech
nologien wie ECL oder I2L, bei denen es dem Schaltungsde
signer freigestellt ist, die Leistungsverteilung verschiede
ner Logikkomponenten auf dem gleichen Chip so einzustellen,
daß eine hohe Geschwindigkeit bei hohem Leistungsverbrauch
für den Primärcache erreicht wird, aber ein niedrigerer
Leistungsverbrauch für den Sekundärcache 25 ausgewählt wer
den kann, da eine hohe Geschwindigkeit in diesem Fall nicht
notwendig ist. Wenn die Schaltungstechnologie das einzige
Kriterium zum Auswählen der relativen Speicherkapazität des
Primärcache und des Sekundärcache ist, würden z. B. sämtli
che Schaltungen, die den Primärcache 24 und den Sekundär
cache 25 bilden, eine Maximalgröße haben, die durch ökonomi
sche Einschränkungen bestimmt ist, und würde auch den Maxi
malbetrag an Leistung bzw; Energie verbrauchen, der bei
okonomischer Packung des Chips erlaubt ist.
Wenn ein Abschnitt des Primärcache 24 und ein Abschnitt
des Sekundärcache 25 auf dem gleichen Chip angeordnet wer
den, werden jedoch zusätzliche Probleme eingeführt, die
sich darauf beziehen, daß die Anzahl der Eingangs-/Ausgangs
leitungen jedes Chips begrenzt werden sollen. Wie weiter
unten beschrieben wird, und zwar in Verbindung mit der Fig.
2, werden diese Probleme gelöst, indem ein gemeinsamer Ad
reßbus für die Datenspeicher des Primärcache 24 und des
Sekundärcache 25 und indem ein gemeinsames Register zum
Schreiben von Daten in den Primärcache und den Sekundär-
Cache-Speicher verwendet wird. Insbesondere das Schreibre
gister kann Daten von entweder dem Primärcache 24, dem Se
kundärcache 25 oder dem Datenprozessoranschluß 26 oder
einem Hauptspeicheranschluß 27 entgegennehmen. Dieses Auf
teilen bzw. Teilen des Adreßbusses und des Schreibregi
sters zwischen dem Primärcache 24 und dem Sekundärcache
25 bestimmt, daß der hierarchische Cache 21 einen gemeinsa
men Cache-Controller 28 zum Koordinieren des Datenrück
schreibens und Wiederauffüllens des Primärcache 24 und des
Sekundärcache 25 verwenden sollte.
Obwohl der hierarchische Cache 21 einen Primärcache 24 mit
einer Zykluszeit haben kann, die an die Zyklusgeschwindig
keit des Datenprozessors 22 angepaßt ist, oder mit dieser
sogar übereinstimmt, ist es dennoch wünschenswert, einen
kleinen On-chip-Cache 29 zu verwenden und einen verbundenen
On-chip-Cache-Controller 30. In diesem Fall ist es möglich
für den Datenprozessor 22, auf den On-chip-Cache 29 in ei
nem Bruchteil des Zyklus zuzugreifen, und zwar wegen des
Fehlens von Datenübertragungsverzögerungen zwischen den
Chips. Der On-chip-Cache 29 ist ähnlich einer Registerda
tei. Insbesondere arbeiten der On-chip-Cache 29 und der
On-chip-Cache-Controller 30 auf ähnliche Art wie der Primär-
Cache 24 und der Cache-Controller 28, wie weiter unten mit
Bezug auf die Fig. 2, 9 und 10 beschrieben wird.
Allgemein ausgedrückt, sendet der Datenprozessor 22 Spei
cherzugriffsnachfragen, Adressen und Daten, die in den Spei
cher geschrieben werden sollen, an den hierarchischen Cache
21 und der hierarchische Cache 21 sendet Bestätigungen der
Nachfragen und entsprechende, aus dem Speicher gelesene
Daten zurück. Für diesen Zweck hat der hierarchische Cache
21 einen Datenprozessoranschluß, der mit dem Datenprozessor
22 über einen Nachfragebus 31, einen Bestätigungsbus 35,
einen Adreßbus 32 und zwei unidirektionale Datenbusse 33
und 34 verbunden ist. Der Nachfragebus enthält z. B. zumin
dest zwei Leitungen zum Befördern eines Nachfragecodes, der
eine Lesenachfrage, eine Schreibnachfrage, eine Flush-Nach
frage oder das Fehlen einer Nachfrage (ein no-op) während
jedes Zyklus′ des Hochgeschwindigkeitssystemtakts bezeich
net. Der Bestätigungsbus weist z. B. zumindest drei Leitun
gen zum Befördern eines Blockiersignales, das anzeigt, daß
der Datenprozessor keine zusätzlichen Nachfragen senden
darf, ein Lesedaten-Gültig-Signal zum Bestätigen der Beendi
gung einer Lesenachfrage bzw. -anfrage, und ein Speicher
fehlsignal zum Unterbrechen der Programmausführung.
Um nachgefragte Daten aus dem Speicher 23 zu erhalten, wenn
die nachgefragten Daten in dem hierarchischen Cache 21
nicht gefunden werden können, erhält der hierarchische
Cache einen Hauptspeicheranschluß 27, von dem weg eine An
zahl von Bussen zu dem Hauptspeicher verlaufen. Diese Busse
enthalten einen Nachfragebus 36, einen Bestätigungsbus 40,
einen Adreßbus 37 und zwei unidirektionale Datenbusse 38
und 39. Zwei Datenbusse sind vorgesehen, damit Wiederfüll-
Daten und Rückschreibdaten simultan ausgetauscht werden
können, wie weiter unten stehend beschrieben wird.
In Fig. 2 ist ein detailliertes Blockdiagramm des hierarchi
schen Cache 21 gezeigt. Der Primärcache 24 enthält einen
Speicher 41 zum Festhalten von Datenblöcken, einen Speicher
42 zum Halten entsprechender Adreßkennzeichnungen und ei
nen Komparator 43 zum Vergleichen der Adreßkennzeichnun
gen (address tags), die in dem Speicher 42 gespeichert
sind, mit einem Indexabschnitt einer Adresse auf einem in
ternen Adreßbus, der mit 44 angegeben ist. Auf ähnliche
Art und Weise enthält der Sekundärcache 25 einen Speicher
25 für Datenblöcke, einen Speicher 46 für Adreßkennzeich
nungen und einen Kennzeichnungsvergleicher 45. Da ein einzi
ger Kennzeichnungsvergleicher und Kennzeichenspeicher in
jedem Datenspeicher vorgesehen sind, ist der hierarchische
Cache 21 ein einwegsatzassoziativer Speicher. Wie weiter
unten mit Bezug auf die Fig. 12 und 13 beschrieben wird,
kann der hierarchische Cache 21 leicht als vielfachsatzasso
ziativer Cache aufgebaut werden, indem ein Vielfach-Satz
von Kennzeichnungsspeichern und Kennzeichnungsvergleichern
für sowohl den Primär-Cache als auch den Sekundär-Cachespei
cher vorgesehen wird.
Bevorzugterweise arbeitet der hierarchische Cache in syn
chroner Art in Antwort auf ein Taktsignal (CLK) und Blok
kierregister (stall registers) 48, 49 werden zum Pipelining
(Fließbandverarbeitung) des Datenflusses zwischen dem Daten
prozessor und dem hierarchischen Cache verwendet. Das
Blockierregister 48 hält eine Adresse und das Blockierre
gister 49 hält Daten des Datenprozessors, wenn der Cache-
Controller 28 ein Blockiersignal ausgibt bzw. behauptet.
Das Blockiersignal steuert die Multiplexer 50 und 51, um
die Inhalte des Blockierregisters 48 bzw. 49, wenn das
Blockiersignal ausgegeben wird, auszuwählen.
Es wird weiter gewünscht, das Zugreifen auf den Primär
cache-Datenspeicher 41 zumindest für das Schreiben von Da
ten durch ein Pipelining zu bewerkstelligen. Wie in Fig. 2
gezeigt wird, ist der hierarchische Cache direkt zugeordnet
und deshalb ist es notwendig, nach einem Übereinstimmungs
kennzeichen (mapping tag) zu suchen, einen Treffer (hit) zu
signalisieren, und zwar bevor in den Datenspeicher geschrie
ben wird, da ansonsten die Daten in einen Cache-Block ge
schrieben würden, der mit einer Adresse verbunden wäre, die
von der gewünschten Adresse bzw. Soll-Adresse verschieden
ist. Das Pipelining der gewünschten Adresse von dem Kennzei
chnungsspeicher zum Datenspeicher kann durch Adressieren
des Kennzeichnungsspeichers durchgeführt werden, wenn die
gewünschte Adresse auf dem Adreßbus 32 erscheint, und
durch ein späteres Adressieren des Datenspeichers, wenn die
gewünschte Adresse in dem Blockierregister 48 empfangen
wird.
Zum Handhaben von Lesenachfragen ist es jedoch manchmal
möglich, den Kennzeichnungsspeicher und den Datenspeicher
simultan zu adressieren. Vom Speicher gelesene Daten werden
in einem Ausgangsregister 52 aufgenommen und später zum
Datenprozessor übertragen bzw. übermittelt, wenn das "Tref
fer"-Signal ausgegeben wird, um entweder Daten zu bestäti
gen oder ungültig zu machen. Wenn der Kennzeichenspeicher
und der Datenspeicher simultan adressiert werden, adressiert
ein Bypass-Multiplexer 58 den Datenspeicher 41 mit der CPU-
Adresse des Adreßbusses 32 anstatt mit der Adresse des
Blockierregisters 48.
Da es von Vorteil für die Cache-Datenblöcke ist, daß sie
viel größer sind als die Anzahl der Datenleitungen in dem
CPU-Datenbus 34, reagiert ein Multiplexer 53 auf eine An
zahl von am wenigsten signifikanten Adreßbits zum Auswäh
len eines Abschnitts des Datenblocks, der zur Datenverar
beitungseinheit übertragen werden soll. Jeder Cache-Daten
block enthält z. B. 1024 Bits und der Multiplexer 53 rea
giert auf die fünf am wenigsten signifikanten Adreßbits,
um ein 32 Bit langes Wort aus dem Cacheblock zu selektie
ren. Bevorzugterweise haben der Primärcache 24 und der Se
kundärcache 25 die gleiche Größe des Cacheblocks, so daß
Daten schnell zwischen dem Datenspeicher 41 des Primär
caches und dem Datenspeicher 45 des Sekundärcaches übertra
gen werden können. Wie in Fig. 2 gezeigt wird, werden die
Dateneingänge der zwei Datenspeicher 41 und 45 parallel
zueinander verbunden, und zwar durch einen breiten Bus 54,
der eine einzelne Leitung für jedes Bit des Cache-Blocks
hat.
Wie weiter unten beschrieben wird, ist der breite Bus 54
vollständig im Inneren der integrierten Schaltungen unter
gebracht, die zum Aufbauen der zwei Datenspeicher 41 und 45
verwendet werden. Zudem ist der hierarchische Cache 21 mit
einem Seriell/Parallel-Register 55 ausgestattet, das als
Schreibpuffer für die Datenspeicher 41 und 45 dient und
auch für parallele Kommunikation zwischen den Datenspei
chern 41 und 45 verwendet wird, aber auch zum Wiederauffül
len und Zurückschreiben vom Hauptspeicher. Daten fließen
durch das Seriell/Parallel-Register vom Sekundärcache aus,
um den Primärcache mit Referenzen bzw. Daten aufzufüllen,
die in dem Primärcache fehlen, aber im Sekundärcache vorhan
den sind (hit). Desweiteren, bevor ein Cache-Block, der
modifizierte Daten im Primär-Cache enthält, mit neuen Da
ten aufgefüllt wird, fließen die Daten über einen breiten
Bus 57 vom Primärcache und durch das Seriell/Parallel-Regi
ster 55 zum Sekundärcache. Des weiteren arbeitet das Seri
ell/Parallel-Register als Seriell-Schieberegister, um als
Auffüllpuffer und als Rückschreibpuffer zu dienen, wenn
die Daten zwischen dem Hauptspeicher und dem hierarchischen
Cache aufgefüllt oder zurückgeschrieben werden. Wie es aus
Fig. 4 klar ersichtlich ist, verbinden die Datenbusse 38
und 39 den hierarchischen Cache und den Hauptspeicher und
sind z. B. 32-Bit-Busse und 1024 Datenbits können zwischen
dem Seriell/Parallel-Register 55 und dem Hauptspeicher in
32 Taktzyklen wechselseitig ein- und ausgelagert werden
(swapping).
Das Seriell/Parallel-Register 55 hat 4 unterschiedliche
Betriebsmodi in Antwort auf ein zwei-Bit Auswahlsignal
(SEL) des Cache-Controllers 28. Für SEL = 0 empfängt das
Seriell/Parallel-Register 55 den Datenausgang des Sekundär-
Cache 25 zum Auffüllen des Primärcache 24. Für SEL = 1 em
pfängt das Seriell/Parallel-Register 32 Kopien eines 32
Bit langen Wortes des Datenprozessors, wie es weiter unten
detaillierter mit Bezug auf Fig. 4 beschrieben wird. Eine
ausgewählte Kopie von den 32 Kopien, wie sie vom Adreß
decoder 56 selektiert wird, kann in eine adressierte Posi
tion in dem Cacheblock des Datenspeichers 51 des Primär
cache geschrieben werden. Für SEL = 2 wird die Ausgangsin
formation des Datenspeichers 41 des primären Cache in dem
Seriell/Parallel-Register 55 zum Zurückschreiben in den
Sekundär-Cache 25 aufgenommen. Während des Rückschreibpro
zesses, der eine Anzahl von Zyklen benötigt, ändert sich
die Adresse für die Datenspeicher 41 nicht, so daß die In
halte des Seriell/Parallel-Registers 55 sich nicht ändern,
wenn das Register getaktet wird. Für SEL = 3 arbeitet das
Seriell/Parallel-Register 55 in einem seriellen Modus, um
Auffülldaten des Hauptspeichers einzuschieben und Rück
schreibdaten in den Hauptspeicher auszuschieben.
Aus Gründen der Erläuterung ist der Primärcache 24 und der
Sekundärcache 25 jeweils als direkt zugeordneter Cache ge
zeigt. Wenn ein Fehlzugriff (miss) auftritt, zeigen die
Inhalte der gewünschten Adreßstelle in dem Kennzeichnungs
speicher Adreßbits höherer Ordnung derjenigen Daten an,
die in dem gewünschten Cacheblock vorhanden sein können.
Das Vorhandensein von Daten wird durch Gültigkeitszeichen
(valid flags) (V), die in den Kennzeichnungsspeichern 42
und 46 gespeichert sind, angezeigt. Der hierarchische Cache
21 wird ebenfalls als Rückschreib-Cache gezeigt und weniger
als Durchschreib-Cache. Deshalb, wenn modifizierte Daten in
einem gewünschten Cacheblock während eines Fehlzugriffs
vorhanden sind, müssen diese Daten zurückgeschrieben wer
den. Modifizierte Daten werden durch Modifizierungszeichen
(M) (modify flags) in dem Kennzeichnungsspeicher angezeigt
bzw. angegeben.
Wie weiterhin im Blockdiagramm der Fig. 3 gezeigt wird,
sind die Kennzeichnungsspeicher 42 und 46 so organisiert,
daß die Modifizierungszeichen (M) und die Gültigkeitszei
chen (V) automatisch während eines Schreibens in den Kenn
zeichnungsspeicher und eines Flush des Kennzeichnungsspei
chers aktualisiert. Wie es gezeigt wird, enthält der Kenn
zeichnungsspeicher einen Einzelbit-Statik-RAM 61, um die
Modifizierungszeichen zu halten, einen Einzelbit-Statik-RAM
62, um die Gültigkeitszeichen zu halten, und eine Anzahl
entsprechend den Adreßbits höherer Ordnung zu halten. Der
Schreib/Sperreingang des Statik-RAMs 61 für die Modifizie
rungszeichen ist mit einem ODER-Gatter 66 versehen, das
mit dem Schreib-Modfizierungseingang (WM) kombiniert bzw.
verknüpft. Die anderen statischen RAMs 62, 63, 64 und 65
erhalten direkt Schreib/Sperr-Signale vom Kennzeichnungs
speicher. Zudem hat der statische RAM 61 für die Modifizie
rungszeichen einen Dateneingang, der das Schreib-Modifizie
rungssignal (WM) empfängt. Deshalb wird das modifizierte
Bit gecleart bzw. gelöscht, wenn der Kennzeichnungsspeicher
durch ein Schreib-Freigabesignal (WE) aktualisiert wird,
und das Bit wird gesetzt, wenn das WM-Signal während der
Modifikation der Daten ausgegeben wird. Der Einzelbit-Sta
tik-RAM 62 für die gültigen Zeichen ist speziell so aufge
baut, daß alle Bits des Speichers simultan zurückgesetzt
oder gecleart werden können, und zwar in Antwort auf ein
FLUSH-Signal. Der Dateneingang dieses Speichers 62 ist mit
einem logischen Hoch (high) verdrahtet, so daß das Adressen
signal (WE) während einer Cacheauffüllung ausgegeben wird.
Der Datenausgang des statischen RAMs 61 für das Modifizie
rungszeichen und der Datenausgang des statischen RAMs 62
für das Gültigkeitszeichen werden in einem UND-Gatter 67
verknüpft, um ein Modifizierungssignal zu erzeugen, das nur
ausgegeben wird, wenn die Modifizierungszeichen gültig sind.
Aus Fig. 2 ist zu entnehmen, daß das Modifizierungssignal
des Kennzeichnungsspeichers 42 und ein Treffersignal des
Kennzeichnungsvergleichers 43 durch ein Register 71 hin
durchgehen und von dem Cache-Controller 28 entgegengenommen
werden. In ähnlicher Art und Weise werden das Modifizie
rungssignal und das Treffersignal vom Kennzeichnungsspei
cher 46 des Sekundärcache 25 in einem Register 72 entgegen
genommen und zum Cache-Controller 28 weitergeleitet. Wenn
der Cache-Controller 28 bestimmt, daß ein Fehlzugriff aufge
treten ist, und zwar während des Zugriffs auf den Primär
speicher, und bestimmt bzw. feststellt, daß der adressierte
Cache-Block modifizierte Daten enthält, löst er einen Rück
schreibbetrieb aus, indem er die modifizierten Daten von
dem Primärcache zum Sekundärcache schreibt. Aufgrund der
Tatsache, daß ein Fehlzugriff aufgetreten ist, ist die Ad
resse, die mit den modifizierten Daten verbunden ist, unter
schiedlich zu der Adresse auf dem Adreßbus 44. Die Adresse
der modifizierten Daten wird in einem Register 73 aufgenom
men. Während des nächsten Zyklusses arbeitet der Cache-Con
troller 28 als Multiplexer 74, um die Adresse der modifi
zierten Daten auf dem Adreßbus 44 auszugeben, so daß diese
Adresse zum Sekundärcache 25 weitergeleitet wird, um ein
Rückschreiben der modifizierten Daten in den Sekundärcache
zu ermöglichen. Auf ähnliche Art und Weise enthält der Se
kundärcache 25 ein Register 75 und einen Multiplexer 76,
die von dem Cache-Controller 28 eingesetzt werden, wenn ein
Fehlzugriff im Sekundärcache auftritt und modifizierte Da
ten in den Hauptspeicher zurückgeschrieben werden.
In Fig. 4 wird ein schematisches Diagramm einer integrier
ten Schaltung 80 gezeigt, die sowohl einen Abschnitt 81
des Primär-Cachespeichers und einen Abschnitt 82 des Sekun
där-Cachespeichers aufweist. Insbesondere sind der Daten
speicher 41 und der Datenspeicher 45, das Register 52, der
Multiplexer 53, der Bus 54, das Seriell/Parallel-Register
55, der Decoder 56 und der Bus 57 nach Fig. 2 auf 16 inte
grierten Schaltungen integriert, wie es in Fig. 4 gezeigt
ist. Die integrierte Schaltung 80 wird bevorzugterweise
unter Einsatz eines BiCMOS-Prozesses hergestellt und in
einer 48-Anschluß-TAB-Konfiguration untergebracht. Wie wei
ter unten beschrieben wird, wird die integrierte Schaltung
dann als 512K×2 BiCMOS/8K×2 ECL sychroner RAM bezeich
net.
Der Abschnitt 81 des Primärcache-Speichers enthält einen
8 K-bit ECL-Speicher 83 und einen 8 K-bit ECL-Speicher 84.
Diese 8 K-bit ECL-Speicher 83 und 84 sind als Felder mit
256×32 Bit organisiert, um 256 separat adressierbare
Cache-Block-Segmente mit jeweils 32 Bit zu erzeugen. Die
256 Cache-Block-Segmente werden durch 8 Adreßleitungen
(die die Adreßbits 17 bis 10 befördern) eines Adreßbusses
85 adressiert. In den Speicher 83 können 32 Datenbits in
das adressierte Cache-Block-Segment von einem Datenbus 86
aus geschrieben werden, der 32 Datenleitungen aufweist, und
alle 32 Bits des adressierten Cache-Block-Segments können
auf einen Ausgangsbus 87 ausgelesen werden, der 32 Datenlei
tungen enthält. Ein bestimmtes Datenbit wird von einem Mul
tiplexer 88, der 32 Eingangsleitungen und eine einzige Aus
gangsleitung 89 aufweist, selektiert. Dieses selektierte
Bit wird in einem Verzögerungs-Flip-Flop 90 gelatched bzw.
zwischengespeichert, das Teil eines Registers 52, wie es
in Fig. 2 gezeigt wird, ist. Das Verzögerungs-Flip-Flop
eliminiert jede mögliche Fehlerbedingung (race condition)
bezüglich der Eingangszwischenspeicher, ermöglicht eine
maximale Ausgangsgültigkeitszeit und vervollständigt ein
vollkommen gepipelintes Segment, wenn die integrierte Schal
tung 80 in einem Datenverarbeitungssystem eingebaut ist.
Auf ähnliche Art und Weise ist der Adreßbus 85 zum Spei
cher 84 fortgesetzt, der einen 32-Bit Dateneingangsbus 91
und einen 32-Bit Datenausgangsbus 92 hat. Ein spezielles
Bit des Ausgangsbusses 92 wird von einem Multiplexer 93
ausgewählt und in einem Verzögerungs-Flip-Flop 94 aufgenom
men, das einen Teil des Ausgangsregisters 52 in Fig. 2 bil
det.
Der Abschnitt 82 des Sekundär-Cache enthält einen Speicher
95 und einen Speicher 96. Jeder dieser Speicher ist ein 512
K-Bit CMOS statischer Speicher, angeordnet als 16K×32
Bit-Feld. Ein spezieller Block der 16K Blocks in jedem Feld
wird durch eine 14-Bit Adresse (Adreßbits 23 bis 10) auf
einen gemeinsamen Adreßbus 97 adressiert. Der Speicher 95
hat einen 32-Bit Dateneingangsbus 98 und einen 32 -Bit Da
tenausgangsbus 99. Der Speicher 96 hat auch einen 32-Bit
Dateneingangsbus 100 und einen 32-Bit Datenausgangsbus 101.
Zum Übertragen von Daten zwischen den Speichern 83 und 95
ist der Dateneingangsbus 86 des Speichers 83 parallel mit
dem Dateneingangsbus 98 des Speichers 95 verdrahtet und
diese Dateneingangsbusse sind ebenfalls parallel mit dem
Ausgang eines 32-Bit Seriell/Parallel-Schieberegisters 102
verdrahtet bzw. verbunden. Das Seriell/Parallel-Schieberegi
ster 102 bildet einen Teil eines Seriell/Parallel-Schiebere
gisters 55, der in Fig. 2 gezeigt wird. Das Seriell/Pa
rallel-Schieberegister 102 hat eine serielle Eingangslei
tung 103, die ein Datenbit des Hauptspeicheranschlusses (27
in Fig. 1) entgegennimmt, und hat eine Seriell-Datenaus
gangsleitung 104 zum Übertragen eines Datenbits zu dem
Hauptspeicheranschluß (27 in Fig. 1). Das Seriell/Parallel-
Schieberegister 102 enthält weiterhin 3 separate Parallel
eingänge. Der erste Eingang (P0) ist mit einem Datenaus
gangsbus 99 des Speichers 95 verbunden. Der zweite Parallel
eingang (P1) hat 32 Eingangsleitungen, aber die Eingangslei
tungen sind zusammen verdrahtet in eine einzelne Leitung
105 zum Empfangen eines Datenbits von dem Datenprozessoran
schluß (26 in Fig. 1). Zudem enthält das Seriell/Parallel-
Schieberegister 102 einen dritten Paralleleingang (P2), der
mit dem Datenausgangsbus 87 des Speichers 83 verbunden ist.
Fig. 5 zeigt ein detailliertes schematisches Diagramm des
Seriell/Parallel-Schieberegisters 102. Das Register 102
enthält 32 Verzögerungs-Flip-Flops 106, 107, 108 und zwei
unddreißig 4-Eingangs-Multiplexer 109, 110 und 111. Die
Kombination jedes Multiplexers und seines jeweils zugeord
neten Verzögerungs-Flip-Flops ist bekannt als "multiplexbil
dendes Abtastregister" (multiplexing scan register), das
ähnlich dem H945 Zwischenspeicher-Macro der Motorola, Inc.
MCA 10000 (MCA3) Zellenbibliothek ist. Die Multiplexer 109,
110 und 111 haben ihre Auswahleingänge parallel verdrahtet
mit einem Zwei-Leitungs-Störungsbus 112.
In Fig. 4 ist der Speicher 84 und der Speicher 96 auf ähn
liche Art und Weise über ein zweites Seriell/Parallel-Schie
beregister 113 verbunden, das ähnlich zu dem Seriell/Pa
rallel-Schieberegister 102 ist.
Um die Anzahl der Eingangs- und Ausgangsanschlüsse bzw.
Kontakte zur integrierten Schaltung 80 zu reduzieren, ent
hält die integrierte Schaltung einen Decoder 114, der in
der Funktion identisch zum Decoder 56 nach Fig. 2 ist.
Zum Reduzieren der Gefährlichkeit von Taktunsymmetrie (cloc
king skews) enthält die integrierte Schaltung 80 Eingangs
zwischenspeicher (latches) 115, 116, 117, 118 und 119 für
alle Steuer- und Adreßeingänge der integrierten Schaltung.
Die Zwischenspeicher bzw. Pufferspeicher sind Durchlaß/Hal
te-Zustandseinrichtungen, die die Eingänge bzw. Eingangssig
nale während der ersten Hälfte jedes Takt-Zyklus durchlas
sen und die die Eingangszustände während der zweiten Hälfte
jedes Takt-Zyklus festhalten. Am Ende des Taktzyklus werden
die Datenausgänge der Abschnitte des Primärspeichers 83, 84
in die Verzögerungs-Flip-Flops 90 und 94 eingetaktet und
Daten werden in die Verzögerungs-Flip-Flops der Seriell/Pa
rallel-Register 102 und 113 eingetaktet. Im Unterschied zu
den Eingangszwischenspeichern, die Daten nur während der
zweiten Hälfte des Clock-Zyklus halten bzw. zwischenspei
chern, sind die Verzögerungs-Flip-Flops flankengetriggerte
Bauelemente, die an der Taktflanke am Ende des Taktzyklus
getriggert bzw. ausgelost werden.
Fig. 6 zeigt ein detailliertes schematisches Diagramm eines
Abschnitts (95 in Fig. 4) des Speichers des Sekundär-Cache.
Der Abschnitt des Speichers enthält 32 16K×1 Bit CMOS
statische RAMS 121, 122, 123 und 124. Ein Leser, der mit
dem Aufbau von CMOS-statischen RAMS (Speicher mit wahlfrei
em Zugriff) nicht vertraut ist, kann in Hamid Partovi et
al. US Anmeldeseriennummer 07/5 08 082 nachschauen, die am
11. April 1990 angemeldet worden ist. In Fig. 6 wird auch
eine Zeitgabelogik 125 gezeigt, die sicherstellt, daß die
CMOS-Statik RAM Speicher 121, 122, 123 und 124 Schreibfrei
gabesignale erst erhalten, nachdem eine ausreichende Zeit
für die einzelnen Speicherelemente der zu adressierenden
Speicher abgelaufen ist. Diese Zeitgabelogik enthält ein
UND-Gatter 126 und eine Signalverzögerungseinrichtung 127.
Die Signalverzögerungseinrichtung besteht z. B. aus einer
Kette von CMOS-Invertern, die an die Laufzeitverzögerung
durch die Adreßdecoder in den CMOS-Speichern angepaßt sind.
Fig. 7 zeigt ein detailliertes schematisches Diagramm eines
Adreßdecoders 114 und des ECL-Speichers 83 nach Fig. 4.
Der Decoder 114 enthält eine erste Stufe von UND-Gattern
131, 132, 133 und 134, die einen 5-Bit-Binär-Decoder bil
den. Der Adreßdecoder 114 enthält weiterhin eine zweite
Stufe mit ODER-Gattern 135, 136, 137 und 138, um zu ermögli
chen, daß Daten simultan in alle 32 Stellen eines adressier
ten Cache-Blocksegments eingeschrieben werden können. Der
Decoder 114 enthält weiterhin eine dritte Stufe mit UND-Gat
tern zur Selbstzeitgabe der Schreiboperation. Diese dritte
Stufe von Gattern 139, 140, 141 und 142 ist während der
zweiten, nicht ausgegebenen bzw. unterdrückten Taktphase
wirksam. Die unterdrückte bzw. nicht behauptete Taktphase
muß von ausreichender Dauer sein, um beim schlechtesten
Fall eine Schreibzeitgabe für die Speicherzelle zu ermögli
chen. Zudem enthält die selbstzeitgebende (selftiming) Lo
gik ein Gatter 143 und eine Verzögerungseinrichtung 144,
die sicherstellen, daß der Schreibfreigabeimpuls erst dann
ausgegeben wird, nachdem eine ausreichende Zeit zum Decodie
ren der Adressen und zur Auswahl der adressierten Speicher
zellen des ECL-Speichers 83 abgelaufen ist. Der ECL-Spei
cher 83 enthält zweiunddreißig 256 Bit-Speicherzellenfelder
(arrays) 145, 146, 147 und 148. Eine Person, die mit dem
Aufbau der ECL-Speicherfelder nicht vertraut ist, kann
eine Erläuterung dafür in Guglielmi et al. U.S. Patent
47 12 190 und Grundmann et al. U.S. Patent Anmeldungsserien
nummer 07/3 06 445, die am 3. Februar 1989 eingereicht wor
den ist, finden.
Ein Unterschied zwischen dem Abschnitt des Sekundärspei
chers nach Fig. 6 und des Abschnitts des Primärspeichers
nach Fig. 7 besteht darin, daß ein Einschreiben in den Se
kundär-Cache-Speicher nach Fig. 6 immer für alle Sekundär
speicherfelder 121, 122, 123 und 124 auftritt. Bei einem
alternativen Aufbau kann der Abschnitt des Sekundarspei
chers nach Fig. 6 mit einem Adreßdecoder ähnlich zu dem
Decoder 114 nach Fig. 7 ausgestattet sein, um ein Schreiben
in alle Sekundärspeicherfelder zu ermöglichen oder um ein
Schreiben in ausgewählte Felder der Sekundärspeicherfelder
zu ermöglichen.
Fig. 8 zeigt ein schematisches Diagramm eines Takteingangs
puffers, der der integrierten Schaltung nach Fig. 4 er
laubt, von einem Paar von komplementären Taktsignalen ange
trieben bzw. angesteuert zu werden, oder von einem einzel
nen Taktsignal. Der Eingangspuffer enthält einen Differenz
verstärker mit einem Paar von NPN-Transistoren 172, 173,
einem Paar von Last-Widerständen 174, 175 und einer Strom
senke 176. Die Schaltung ist ähnlich einem ECL-Inverter,
wobei die Eingangssignale an Eingangsanschlüssen 177 und
176 empfangen werden.
Um zu ermöglichen, daß der Puffer 171 von einem einzelnen
Takteingangssignal an einem der Anschlüsse 177 und 178 ange
steuert wird, weist der Eingangspuffer 171 weiterhin eine
Quelle für eine Vorspannung 179 auf, die einen Wert hat,
der dem Mittelwert zwischen dem hohen Wert und dem niedri
gen Wert des Taktsignals entspricht. Die Vorspannungsquelle
179 ist mit Anschlüssen 177 und 178 über entsprechende Wi
derstände 180 und 181 verbunden.
In Fig. 9 ist ein Flußdiagramm einer Steuerungssequenz zur
Ausführung durch den Cache-Controller 28 nach Fig. 2 ge
zeigt, um Nachfragen von der Verarbeitungseinheit 22 nach
Fig. 1 zu bedienen. Der Cache-Controller 28 ist eine Maschi
ne mit sequentiellem Zustand, die Ausgangssignale bestimmt
und einen nächsten Zustand als verknüpfte Logikfunktion
ihrer Eingangssignale und ihres gegenwärtigen Zustands be
stimmt. Zum Zwecke der Erläuterung sind die Zustände und
die Verknüpfungslogik in Flußdiagrammform gezeigt, um kla
rer den Betrieb des hierarchischen Cache beschreiben zu
können.
Der Cache-Controller 28 tritt in einen Anfangszustand in
Antwort auf ein Systemrücksetzsignal ein, wie es beim
Schritt 181 gezeigt ist. In diesem Rücksetzzustand gibt der
Cache-Controller das Blockiersignal beim Schritt 182 aus
und gibt ebenfalls das Flush-Signal beim Schritt 183 aus.
Dann beim Schritt 184 wartet der Cache-Controller auf den
nächsten Zyklus. Beim Schritt 185 wird das Blockiersignal
erneut gesetzt und beim Schritt 186 wartet der Cache-Control
ler auf eine ausreichende Anzahl von zusätzlichen Zyklen,
um den Flush zu vervollständigen. Diese zusätzlichen Zyklen
werden wegen der relativ langsamen Antwort des sekundären
Kennzeichnungsspeichers 46 benötigt.
Beim Schritt 187 während eines neuen Taktzyklus wird das
Flush-Signal gecleart und beim Schritt 188 wird das Schreib
signal gecleart. Beim Schritt 189 wird das Blockiersignal
(stall signal) gecleart bzw. gelöscht und beim Schritt 190
wird das Auswahlsignal (select signal) auf eins gesetzt, so
daß das Seriell/Parallel-Register (55 in Fig. 2) jedes Lang
wort vom Datenprozessor entgegennehmen wird. Bei diesem
Taktzyklus antwortet der hierarchische Cache auf die erste
Nachfrage des Datenprozessors (oder die erste Nachfrage,
die einem Flush nachfolgt). Wenn diese erste Nachfrage eine
"no-op" (kein Betrieb) oder ein Flush ist, wird sie einfach
ignoriert. Wenn die erste Nachfrage eine Lese- oder Schreib
nachfrage ist, wird der primäre Kennzeichnungsspeicher wäh
rend dieses Zyklus adressiert, wobei die Adressierung des
sekundären Kennzeichnungsspeichers bei diesem Zyklus an
fängt, und Schreibdaten werden vom Seriell/Parallel-Regi
ster am Ende dieses Zyklus entgegengenommen. Beim Schritt
191 wartet der Cache-Controller auf einen nächsten Zyklus.
Beim Schritt 192 überprüft der Cache-Controller, ob die
vorherige Datenverarbeitungsnachfrage eine Lese- oder
Schreibnachfrage war. Wenn nicht, dann muß sie ein no-op
oder Flush gewesen sein. In diesem Fall löscht der Cache-
Controller beim Schritt 193 das Lesesignal, um jede "Blase"
(bubble) in der Adressenpipeline zwischen dem primären Kenn
zeichnungsspeicher und den primären Datenspeichern (42 bzw.
41 der Fig. 2) zu eliminieren. Das Eliminieren jeder dieser
Blasen würde es einer anhängenden Lesenachfrage gestatten,
während des vorliegenden Zyklus beendet zu werden. Dann
beim Schritt 194 überprüft der Cache-Controller, ob die
vorliegende Nachfrage der Datenverarbeitungseinheit ein
Flush ist. Wenn das der Fall ist, kehrt die Steuersequenz
für den Cache-Controller zum Schritt 183 zurück, um die
Flush-Operation wie oben beschrieben durchzuführen. Anson
sten kehrt die Steuersequenz zum Schritt 189 zurück.
Wenn beim Schritt 192 der Cache-Controller findet, daß die
vorhergehende Datenprozessornachfrage eine Lese- oder
Schreibnachfrage war, überprüft der Cache-Controller beim
Schritt 195 dann das primäre Treffersignal (HITP der Fig. 2)
des Registers 71 nach Fig. 2, um zu bestimmen, ob ein Tref
fer im primären Kennzeichnungsspeicher (42 in Fig. 2) wäh
rend des vorhergehenden Zyklus stattgefunden hat. Wenn das
der Fall ist, ist es notwendig, den Datenprozessor zu bloc
kieren bzw. anzuhalten und den Primär-Cache auszurüsten,
bevor die vorhergehende Lese- oder Schreibnachfrage beendet
werden kann. Zu diesem Zweck setzt der Cache-Controller
beim Schritt 196 das Schreibsignal und beim Schritt 197
das Blockiersignal, so daß der hierarchische Cache die Ad
resse verwendet, die im Blockierregister (48 in Fig. 2)
gespeichert ist, anstatt der Adresse der vorliegenden Nach
frage, die auf dem Adreßbus (32 in Fig. 2) von der CPU
ausgegeben wird. Beim nächsten Schritt 198 führt der Cache-
Controller eine Anzahl von primären Ausrüstungszyklen
durch, die weiter unten mit Bezug auf Fig. 10 beschrieben
werden, um sicherzustellen, daß die erwünschten Daten in
dem Primär-Cache gefunden werden können. Dann, beim Schritt
199 wird das Blockiersignal gelöscht, da die erwünschten
Daten empfangen werden oder empfangen worden sind im Aus
gangsregister (51 in Fig. 2) und Daten des Datenprozessors
können in den Primär-Cache während des vorliegenden Zyklus
eingeschrieben werden. Beim Schritt 200 überprüft der Cache-
Controller, ob die vorhergehende Nachfrage des Datenprozes
sors eine Lesenachfrage ist, die vorhergehend während des
Auffüllens von dem Hauptspeicher anerkannt worden ist
(Schritt 242 der Fig. 11). In diesem Fall kehrt die Steuer
sequenz zum Schritt 194 zurück, um zu überprüfen, ob die
vorliegende Nachfrage ein Flush ist.
Beim Schritt 201 bestimmt der Cache-Controller, ob die frü
here Nachfrage eine Lese- oder Schreibnachfrage war. Wenn
die frühere Nachfrage eine Schreibnachfrage ist, wird das
Schreibsignal beim Schritt 202 gesetzt, um die Situation
zu beherrschen, wenn die Schritte 196 bis 199 umgangen wer
den, wenn ein Treffer beim Schritt 195 gefunden wird. Dann
beim Schritt 203 wird das WEPW Signal ausgegeben, so daß
ein Datenlangwort des Datenprozessors vom Seriell/Parallel-
Register 55 in den Datenspeicher 41 des Primär-Cache einge
schrieben wird.
Wenn beim Schritt 201 der Cache-Controller herausfindet,
daß die frühere Nachfrage eine Lesenachfrage ist, überprüft
der Cache-Controller beim Schritt 204, ob das Schreibsignal
gesetzt worden ist. Dies geschieht, um dem Fall nachzukom
men, wo die Schritte 196 bis 200 umgangen werden, und zwar
dann, wenn ein primärer Treffer beim Schritt 195 gefunden
wird. Wenn das Schreibsignal nicht gesetzt ist, dann sind
die erwünschten Lesedaten bereits im Ausgangsregister (52
der Fig. 2). Ansonsten treten die Lesedaten im Ausgangsregi
ster (52 der Fig. 2) während des nächsten Zyklus auf,
so daß beim Schritt 206 gültige Lesedaten während des näch
sten Zyklus anerkannt bzw. bestätigt werden. Die Schritte
205 und 206 können z. B. mit der Hilfe eines Flip-Flops vom
Verzögerungstyp durchgeführt werden, das asynchrone Setz-
und Rücksetz-Eingänge hat. In diesem Fall werden gültige
Lesedaten während des vorliegenden Zyklus unter Einsatz
des asynchronen Setzeingangs anerkannt. Gültige Lesedaten
werden während des nächsten Zyklus anerkannt, indem eine
logische Eins auf dem Verzögerungseingang des Verzögerungs-
Flip-Flops während des vorliegenden Zyklus ausgegeben wird.
Der Datenausgang dieses Verzögerungs-Flip-Flops ist ein
Bit des Anerkennungssignals auf dem Anerkennungsbus (35
in Fig. 2) des Cache-Controllers. In jedem Fall wird die
Steuersequenz für den Cache-Controller im Schritt 194 fort
gesetzt.
Fig. 10 zeigt ein Flußdiagramm der Steuerzyklen zum Ausrü
sten des Primärcache, wenn der Cache-Controller beim
Schritt 195 der Fig. 9 herausfindet, daß ein Fehlzugriff
auf den Primärcache aufgetreten ist. Anders ausgedrückt,
gibt das Flußdiagramm nach Fig. 10 die Schritte in dem
Block 198 der Fig. 9 wieder. Beim ersten Schritt 211 der
Fig. 10 überprüft der Cache-Controller, ob der Cache-Block
der in dem primären Kennzeichnungsspeicher (42 nach Fig. 2)
während des letzten Zyklus adressiert worden ist, modifi
ziert worden ist. Um dies durchzuführen, schaut der Cache-
Controller auf das modifizierte Signal des Registers 71
nach Fig. 2. Wenn dieses modifizierte Signal ausgegeben
wird, dann muß der Cache-Controller zuerst eine Rückschreib
sequenz durchführen, um die modifizierten Daten zurück in
den Sekundärspeicher oder den Hauptspeicher zu schreiben,
und zwar bevor der adressierte Cache-Block mit den erwünsch
ten Daten aufgefüllt wird.
Um das Rückschreiben durchführen zu können, wird beim
Schritt 212 SEL auf zwei gesetzt, so daß die Inhalte des
modifizierten Cache-Blocks in das Seriell/Parallel-Register
(55 in Fig. 2) gebracht werden. Beim nächsten Schritt 213
wird INADR auf eins gesetzt, um die Adresse des modifizier
ten Cache-Blocks zum Adressieren des Sekundär-Caches auszu
wählen. Dann wartet der Cache-Controller eine vorgegebene
Anzahl von Zyklen lang beim Schritt 214, die ausreichen,
das auf den Sekundär-Cache zugegriffen wird. Als nächstes
überprüft der Cache-Controller das sekundäre Treffersignal
(HITS) des Registers 72 nach Fig. 2 beim Schritt 215. Da
das modifizierte Zeichen des Primärcache nur durch Auffül
len von dem Sekundärcache gesetzt wird, sollte ein Treffer
vorhanden gewesen sein, wenn auf den Sekundär-Cache zuge
griffen wird. Deshalb, wenn ein Treffer in dem Sekundär-
Cache nicht aufgetreten ist, stellt der Cache-Controller
einen Fehler beim Schritt 216 fest und gibt einen Fehler
code zur Datenverarbeitungseinheit zurück. Der Fehlercode
bzw. die Fehlerinformation veranlaßt den Datenprozessor
z. B. dazu, einen Speicherfehler bzw. eine Speicherstörung
oder einen Speicherdefekt zu erkennen, die Ausführung des
gegenwärtigen Programms abzubrechen bzw. zu beenden und
den Cache-Controller zurückzusetzen.
Wenn ein sekundärer Treffer beim Schritt 215 gefunden wird,
kann der Cache-Controller dann die modifizierten Daten in
den Datenspeicher (45 in Fig. 2) des Sekundärcache schrei
ben. Für diesen Zweck setzt der Cache-Controller beim
Schritt 217 WESD auf eins. Dann, beim Schritt 218, setzt
der Cache-Controller MODS auf eins, um ein modifiziertes
Bit in den Kennzeichnungsspeicher (46 in Fig. 2) des Sekun
där-Cache zu schreiben. Dann wartet der Cache-Controller
beim Schritt 219 einige Zyklen lang darauf, die Schreibope
ration zu beenden. Schließlich löscht der Cache-Controller
beim Schritt 220 WESD und MODS, um die Schreiboperation
abzubrechen, und der Cache-Controller löscht beim Schritt
221 INADR, um den Sekundärspeicher mit der Adresse der er
wünschten Daten zum Auffüllen des Primärcache zu adressie
ren. Dies vervollständigt die Rückschreibsequenz.
Die Auffüllsequenz bzw. Füllsequenz beginnt beim Schritt
222. Der Cache-Controller setzt SEL für den Transfer von
Daten des Sekundärcache in das Seriell/Parallel-Register
(55 in Fig. 2) auf null. Dann wartet der Cache-Controller
beim Schritt 223 eine Anzahl von Zyklen, um auf den Sekun
därcache zugreifen zu können. Als nächstes überprüft der
Cache-Controller beim Schritt 224, ob ein Treffer in dem
Sekundär-Cache aufgetreten ist. Wenn nicht, führt der Cache-
Controller eine Anzahl von Sekundärcache-Speicherausrü
stungszyklen, die weiter unten stehend in bezug auf Fig. 11
beschrieben werden, durch, um Daten des Hauptspeichers in
das Seriell/Parallel-Register zu setzen, die Inhalte des
Seriell/Parallel-Registers in die Primär-Cachedatenspei
cher und Sekundär-Cachedatenspeicher zu schreiben und um
die Modifizierungszeichen in den Kennzeichnungsspeichern
des Primär- Cache und des Sekundär-Cache zu löschen. Diese
Sekundärspeicherausrüstzyklen rüsten (fix-up) auch den Pri
märspeicher aus.
Wenn ein Treffer in dem Sekundär-Cache beim Schritt 224
gefunden wird, dann setzt der Cache-Controller beim Schritt
226 SEL gleich eins, um das Seriell/Parallel-Register 55
mit irgendwelchen Schreibdaten zu füllen, die in dem Daten
blockierregister (49 der Fig. 2) gehalten sind. Dann beim
Schritt 227 gibt der Cache-Controller WEPD während des vor
liegenden Zyklus aus, um die Inhalte des Seriell/Parallel-
Registers in den Primärdatenspeicher (41 in Fig. 2) zu
schreiben und das Modifizierungszeichen in dem primären
Kennzeichnungsspeicher (42 in Fig. 2) zu löschen. Nach dem
Warten auf den nächsten Zyklus beim Schritt 228, löscht
der Cache-Controller WEPD beim Schritt 229 und kehrt zum
Schritt 199 der Fig. 9 zurück.
Fig. 11 zeigt ein Flußdiagramm der Schritte zum Ausrüsten
des Sekundärspeichers. Diese Schritte entsprechen dem Block
225 nach Fig. 10.
Beim ersten Schritt 231 der Fig. 11 löscht der Cache-Con
troller OUTADR, um eine Leseadresse zum Hauptspeicher zu
übertragen. Dann überprüft der Cache-Controller beim
Schritt 232, ob das Modifizierungszeichen des Sekundär-
Cacheblocks gesetzt worden ist. Wenn nicht, sendet der
Cache-Controller eine Auffüllnachfrage an den Hauptspei
cher beim Schritt 233. Ansonsten sendet der Cache-Control
ler beim Schritt 234 eine Auffüll- und Rückschreibnachfra
ge an den Hauptspeicher und beim Schritt 235, beim nächsten
Zyklus, setzt der Cache-Controller OUTADR gleich eins, um
die Schreibadresse zum Hauptspeicher zu übertragen.
Als nächstes wartet der Cache-Controller beim Schritt 236
auf eine Anerkennung vom Hauptspeicher, die anzeigt, daß
der Hauptspeicher die erwünschten Auffülldaten jetzt über
trägt. In Antwort darauf setzt der Cache-Controller SEL
gleich drei beim Schritt 237, damit ein serielles Schieben
im Seriell/Parallel-Register (55 in Fig. 2) ausgeführt
wird, um Daten zwischen dem Hauptspeicher und dem Seri
ell/Parallel-Register zu transferieren. Beim Schritt 238
wartet der Cache-Controller 32 Taktzyklen darauf, den Daten
transfer abzuschließen. Dann setzt der Cache-Controller
beim Schritt 239 die Steuersignale, um die Daten und die
Kennzeichnungen in die Primär-Cachespeicher und Sekundär-
Cachespeicher zu schreiben. Insbesondere setzt der Cache-
Controller WESD auf eins, setzt WEST auf eins und setzt
WEPD auf eins. Dann, beim Schritt 240 wartet der Cache-Con
troller auf den nächsten Zyklus. Beim nächsten Zyklus sind
die Auffülldaten in den Primärspeicher 41 geschrieben und
Daten in der Verarbeitung werden in das Ausgangsregister 52
transferiert. Deshalb überprüft der Cache-Controller beim
Schritt 241, ob die frühere Nachfrage des Datenprozessors
eine Lesenachfrage ist. Wenn das der Fall ist, bestätigt
der Cache-Controller beim Schritt 242 dem Datenprozessor,
daß die erwünschten Daten erhältlich bzw. zugänglich sind.
Da das Schreiben in den Primärspeicher beendet worden ist,
beim Schritt 243, löscht der Cache-Controller WEPD. Das
Füllen des Sekundärcache nimmt jedoch eine zusätzliche An
zahl von Zyklen in Anspruch. Deshalb wartet der Cache-Con
troller eine Anzahl von Zyklen beim Schritt 243. Dann wäh
rend des letzten Zyklus beim Schreiben von Daten in den
Sekundärcache, beim Schritt 245, setzt der Cache-Controller
SEL gleich eins und dann, beim Schritt 246, wartet er auf
den nächsten Zyklus. Dies stellt sicher, daß das Seriell/
Parallel-Register mit irgendwelchen Schreibdaten vom Daten
prozessor versehen wird, so daß eine Schreibnachfrage wäh
rend des nächsten Zyklus durchgeführt werden kann. Schließ
lich löscht der Cache-Controller beim Schritt 247 WESD und
WEST und kehrt zum Schritt 199 der Fig. 9 zurück.
In der Fig. 12 werden Modifikationen bezüglich der Kennzei
chnungsspeicher und der verbundenen Schaltungen gezeigt,
um einen hierarchischen zwei-Weg-Satz-assoziativen Cache
zu bilden. Zwei-Weg-Satz-assoziativ bedeutet, daß jede
Adresse direkt zwei Cacheblöcken zugeordnet ist. Dies wird
bewerkstelligt, indem für den Primärcache (24 in Fig. 1)
und den Sekundärcache (25 in Fig. 1) zwei separat adressier
bare Kennzeichnungsspeicher, und nicht nur einer, in Verbin
dung mit dem Datenspeicher vorgesehen sind. In Fig. 12 wer
den z. B. die Kennzeichnungsspeicher 301 und 302 gezeigt,
die mit dem Datenspeicher 303 verbunden sind. Der Datenspei
cher 303 ist entweder der Primärdatenspeicher oder der Se
kundärdatenspeicher, die durch ein Zusammenstellen der inte
grierten Schaltungen 80 der Fig. 4 gebildet werden. Jeder
der Kennzeichnungsspeicher hat jedoch eine Hälfte der An
zahl der adressierbaren Blocks wie der Datenspeicher 303
und deshalb hat der Datenspeicher eine zusätzliche Adreß
eingangsleitung 304. Diese Adreßeingangsleitung 304 em
pfängt ein Bank-Auswahlsignal (BANK) von einem Cache-Con
troller 305.
Während eines Speicherzugriffsbetriebs muß der Cache-Con
troller die Bank auswählen, die Daten verbunden mit einer
spezifizierten Adresse hat, indem er Treffersignale für
jede der zwei "Banken" des Cache-Speichers überprüft. Die
Kennzeichnungsspeicher sind physikalisch in zwei Banken
aufgeteilt, da es erwünscht ist, sie parallel zu adressie
ren. Dies ist nicht so wichtig für das Adressieren des Da
tenspeichers, da das Adressieren des Datenspeichers mit
dem Adressieren des Kennzeichnungsspeichers gepipelinet
ist und der Datenspeicher adressiert werden kann, nachdem
die gewünschte Bank ausgewählt ist.
Das Treffersignal für den Kennzeichnungsspeicher 301 wird
durch einen Kennzeichnungsvergleicher 306 erzeugt und das
Treffersignal für den Kennzeichnungsspeicher 302 wird von
einem Kennzeichnungsvergleicher 307 erzeugt. Die Treffersig
nale werden zusammen in einem Register 308 empfangen und
zum Cache-Controller 305 fortgeführt. Die Kennzeichnungs
speicher 301 und 302 haben auch jeweilige Register 309 bzw.
310 zum Entgegennehmen der Kennzeichnung, die mit jedem
Cacheblock verbunden ist. Während eines Rückschreibbetriebs
wird die Kennzeichnung, die mit den modifizierten Daten,
die zurückgeschrieben werden sollen, verbunden ist, von
einem Multiplexer 311 ausgewählt und auf einen Adreßbus
312 ausgegeben, der zum Sekundärspeicher oder dem Hauptspei
cher führt. Wenn der Cache gefüllt ist oder modifzierte
Daten empfängt, wird nur der Kennzeichnungsspeicher für
die selektierte Bank aktualisiert. Dies wird durch Decodie
ren der Schreib-Freigabesignale (WM, WE) mit dem Bankaus
wahlsignal (BANK) durchgeführt, indem ein Inverter 313 und
UND-Gatter 314, 315, 316 und 317 eingesetzt werden.
Wenn ein Fehlzugriff in beiden Cacheblöcken auftritt, die
direkt der spezifizierten Adresse zugeordnet sind, ist es
notwendig, einen der Cacheblöcke zum Wiederauffüllen auszu
wählen. Für diesen Zweck erinnert sich ein adressierbarer
Speicher 318 daran, welcher Cacheblock zuletzt aufgefüllt
worden ist.
Die zusätzlichen Schritte der Cache-Controller-Sequenz für
den zwei-Wege-Satz-assoziativen Cache der Fig. 12 werden
in dem Flußdiagramm nach Fig. 13 gezeigt. In einem ersten
Schritt 321 überprüft der Cache-Controller, ob es einen
Treffer in der ausgewählten Form gibt. Wenn nicht, über
prüft der Cache-Controller beim Schritt 322, ob es einen
Treffer in einer anderen Bank gegeben hat. Wenn das der
Fall ist, schaltet der Cache-Controller das Bank-Auswahlsig
nal beim Schritt 323 und setzt auch das Schreibzeichen auf
1, so daß ein Lesen oder Schreiben im gegenwärtigen Zyklus
durchgeführt wird, wobei die Bank eingesetzt wird, für die
der Treffer aufgetreten ist. Wenn in keinem der Kennzeich
nungsspeicher ein Treffer festzustellen ist, muß einer der
Cacheblöcke gefüllt werden. Beim Schritt 324 wird die Bank,
die den zuallerletzt wiederaufgefüllten Cacheblock enthält,
ausgewählt und Cache-Wiederauffüllzyklen werden beim
Schritt 325 durchgeführt. Für den Primärspeicher umfassen
die Wiederauffüllzyklen 325 z. B. die Schritte 196 bis 200
der Fig. 9.
Gemäß den obenstehenden Ausführungen ist ein Cachespeicher
in integrierter Schaltung beschrieben worden, in dem es
zwei Niveaus bzw. Stufen von Speichern mit wahlfreiem Zu
griff (random access memory) in einer einzigen integrierten
Schaltung gibt. Die zwei Speicherstufen sind durch Datenbus
se verbunden, die eine große Anzahl von parallelen Leitun
gen haben, diese Datenbusse jedoch sind vollständig inner
halb der integrierten Schaltung enthalten. Dies ermöglicht
eine extrem hohe Trefferrate, eine sehr geringe Wartezeit,
eine schnelle Zugriffszeit und eine sehr dichte Packung,
die es vielen der integrierten Schaltungen erlaubt, so nahe
wie möglich zu einem Datenprozessor angeordnet zu sein.
Bei der bevorzugten Ausführungsform der integrierten Schal
tung sind die zwei Stufen der Speicher mit wahlfreiem Zu
griff durch einen Seriell/Parallel-Puffer verbunden, der
selektiv als Schreibpuffer, als Wiederauffüllpuffer, als
Rückschreibpuffer oder als Seriell/Parallel-Schieberegister
zum Austauschen von Rückschreib- und Auffülldaten zu und
von dem Hauptspeicher arbeiten kann. Deshalb ist die inte
grierte Schaltung eine vollfunktionale Komponente zum Auf
bauen der Datenwege eines hierarchischen Cache und sie ist
innerhalb eines weiten Bereichs von Cacheorganisationen
und Datenprozessorsystemen anwendbar.
Claims (20)
1. Hierarchischer Cachespeicher, der aufweist:
einen Primärcachespeicher hoher Geschwindigkeit;
einen Sekundärcachespeicher mit niedriger Geschwindigkeit und größerer Speicherkapazität als der Primärcachespeicher;
einen Datenprozessoranschluß;
einen Hauptspeicheranschluß;
Datenwegschaltungen, die den Primärcachespeicher mit dem Prozessoranschluß, den Sekundärcachespeicher mit dem Primär cachespeicher und den Hauptspeicheranschluß mit dem Sekun därcachespeicher verbinden, wobei die Datenwegschaltungen aufweisen Datenwegauswahleinrichtungen zum Auswählen von Datenwegen von dem Sekundärcachespeicher zum Primärcache speicher und von dem Hauptspeicheranschluß zum Sekundär cachespeicher und
eine Steuereinrichtung, die mit den Cachespeichern und den Datenwegauswahleinrichtungen zum Transferieren nachgefrag ter Daten von dem Sekundärcachespeicher zum Primärcachespei cher verbunden ist, wenn die nachgefragten Daten im Primär cachespeicher nicht vorhanden sind, und zum Transferieren der nachgefragten Daten von dem Hauptspeicheranschluß zum Sekundärcachespeicher, wenn die nachgefragten Daten im Se kundärcachespeicher nicht vorhanden sind,
wobei der hierarchische Cachespeicher eine Vielzahl von integrierten Schaltungen aufweist und wobei jede der inte grierten Schaltungen einen Abschnitt des Primärcachespei chers, einen Abschnitt des Sekundärcachespeichers, der eine größere Speicherkapazität hat als der Abschnitt des Primär cachespeichers, einen Abschnitt der Datenwegschaltungen, die die Abschnitte des Primärcachespeichers und des Sekun därcachespeichers verbinden, und einen Abschnitt der Daten wegauswahleinrichtungen zum Auswählen von Datenwegen von dem Abschnitt des Primärcachespeichers zum Abschnitt des Sekundärcachespeichers und vom Hauptspeicheranschluß zum Abschnitt des Sekundärcachespeichers aufweist.
einen Primärcachespeicher hoher Geschwindigkeit;
einen Sekundärcachespeicher mit niedriger Geschwindigkeit und größerer Speicherkapazität als der Primärcachespeicher;
einen Datenprozessoranschluß;
einen Hauptspeicheranschluß;
Datenwegschaltungen, die den Primärcachespeicher mit dem Prozessoranschluß, den Sekundärcachespeicher mit dem Primär cachespeicher und den Hauptspeicheranschluß mit dem Sekun därcachespeicher verbinden, wobei die Datenwegschaltungen aufweisen Datenwegauswahleinrichtungen zum Auswählen von Datenwegen von dem Sekundärcachespeicher zum Primärcache speicher und von dem Hauptspeicheranschluß zum Sekundär cachespeicher und
eine Steuereinrichtung, die mit den Cachespeichern und den Datenwegauswahleinrichtungen zum Transferieren nachgefrag ter Daten von dem Sekundärcachespeicher zum Primärcachespei cher verbunden ist, wenn die nachgefragten Daten im Primär cachespeicher nicht vorhanden sind, und zum Transferieren der nachgefragten Daten von dem Hauptspeicheranschluß zum Sekundärcachespeicher, wenn die nachgefragten Daten im Se kundärcachespeicher nicht vorhanden sind,
wobei der hierarchische Cachespeicher eine Vielzahl von integrierten Schaltungen aufweist und wobei jede der inte grierten Schaltungen einen Abschnitt des Primärcachespei chers, einen Abschnitt des Sekundärcachespeichers, der eine größere Speicherkapazität hat als der Abschnitt des Primär cachespeichers, einen Abschnitt der Datenwegschaltungen, die die Abschnitte des Primärcachespeichers und des Sekun därcachespeichers verbinden, und einen Abschnitt der Daten wegauswahleinrichtungen zum Auswählen von Datenwegen von dem Abschnitt des Primärcachespeichers zum Abschnitt des Sekundärcachespeichers und vom Hauptspeicheranschluß zum Abschnitt des Sekundärcachespeichers aufweist.
2. Hierarchischer Cachespeicher nach Anspruch 1, dadurch
gekennzeichnet, daß die Datenwegauswahleinrichtungen weiter
hin aufweisen:
eine Einrichtung zum Selektieren von Datenwegen von einem Datenprozessoranschluß zu dem Primärcachespeicher, von dem Primärcachespeicher zu dem Sekundärcachespeicher und von dem Sekundärcachespeicher zum Hauptspeicheranschluß, wobei die Steuereinrichtungen weiterhin aufweisen:
eine Einrichtung zum Durchführen einer Rückschreibopera tion, wenn ein Datenort in dem Primärcachespeicher benötigt wird, indem modifizierte Daten von dem Datenort des Primär cachespeichers zum Sekundärcachespeicher transferiert wer den, und wenn ein Datenort des Sekundärcachespeichers benö tigt wird, indem modifizierte Daten von dem Datenort in dem Sekundärcachespeicher zum Hauptspeicheranschluß transfe riert werden, wobei der Abschnitt der Datenauswahleinrich tungen in jeder der integrierten Schaltungen einen Ab schnitt der Einrichtungen zum Auswählen der Datenwege zwi schen dem Datenprozessoranschluß und dem Abschnitt des Pri märcachespeichers, zwischen dem Abschnitt des Primärcache speichers und dem Sekundärcachespeicher und zwischen dem Abschnitt des Sekundärcachespeichers und dem Hauptspeicher anschluß aufweist.
eine Einrichtung zum Selektieren von Datenwegen von einem Datenprozessoranschluß zu dem Primärcachespeicher, von dem Primärcachespeicher zu dem Sekundärcachespeicher und von dem Sekundärcachespeicher zum Hauptspeicheranschluß, wobei die Steuereinrichtungen weiterhin aufweisen:
eine Einrichtung zum Durchführen einer Rückschreibopera tion, wenn ein Datenort in dem Primärcachespeicher benötigt wird, indem modifizierte Daten von dem Datenort des Primär cachespeichers zum Sekundärcachespeicher transferiert wer den, und wenn ein Datenort des Sekundärcachespeichers benö tigt wird, indem modifizierte Daten von dem Datenort in dem Sekundärcachespeicher zum Hauptspeicheranschluß transfe riert werden, wobei der Abschnitt der Datenauswahleinrich tungen in jeder der integrierten Schaltungen einen Ab schnitt der Einrichtungen zum Auswählen der Datenwege zwi schen dem Datenprozessoranschluß und dem Abschnitt des Pri märcachespeichers, zwischen dem Abschnitt des Primärcache speichers und dem Sekundärcachespeicher und zwischen dem Abschnitt des Sekundärcachespeichers und dem Hauptspeicher anschluß aufweist.
3. Hierarchischer Cachespeicher nach Anspruch 2, dadurch
gekennzeichnet, daß die Datenwegauswahleinrichtung ein Se
riell/Parallel-Schieberegister enthält, das einen ersten
Paralleldateneingang verbunden mit Datenausgangsleitungen
des Sekundärcachespeichers hat, einen zweiten Paralleldaten
eingang verbunden mit dem Datenprozessoranschluß hat, einen
dritten Paralleldateneingang verbunden mit Datenausgangslei
tungen des Sekundärcachespeichers hat, einen zweiten Para
leldateneingang verbunden mit dem Datenprozessoranschluß
hat, einen dritten Paralleldateneingang, verbunden mit den
Datenausgangsleitungen des Primärcachespeichers hat, einen
Paralleldatenausgang, parallel verbunden mit den Datenein
gangsleitungen des Primärcachespeichers und Dateneingangs
leitungen des Sekundärcachespeichers, einen seriellen Daten
eingang hat, der mit dem Hauptspeicheranschluß verbunden
ist, und einen seriellen Datenausgang hat, der mit dem
Hauptspeicheranschluß verbunden ist.
4. Hierarchischer Cachspeicher nach Anspruch 2, dadurch
gekennzeichnet, daß die Datenwegschaltungen weiterhin ent
halten:
einen Multiplexer mit Datenausgangsleitungen, die mit dem
Datenprozessoranschluß verbunden sind, eine größere Anzahl
von Dateneingangsleitungen, die mit den Datenausgangsleitun
gen des Primärcachespeichers verbunden sind, und Auswahl
steuereingänge, die mit den Adreßleitungen verbunden sind.
5. Hierarchischer Cachespeicher nach Anspruch 4, gekenn
zeichnet durch einen Decoder mit Eingängen, die mit den
Adreßleitungen verbunden sind und mit Ausgängen, die mit
den Schreibfreigabeeingängen des Primärcachespeichers ver
bunden sind.
6. Hierarchischer Cachespeicher nach Anspruch 1, gekenn
zeichnet durch einen Adreßbus mit Adreßleitungen, die
die Adreßeingänge des Primärspeichers parallel mit entspre
chenden Adreßeingängen des Sekundärspeichers verbinden.
7. Hierarchischer Cachespeicher nach Anspruch 1, dadurch
gekennzeichnet, daß der Primärcachespeicher ECL-Speicher
Elemente aufweist und daß der Sekundärcachespeicher MOSFET
Speicherelemente aufweist.
8. Hierarchischer Cachespeicher nach Anspruch 7, dadurch
gekennzeichnet, daß die MOS-FET Speicherelemente statische
CMOS Speicherelemente sind.
9. Integrierte Schaltung, die in Kombination aufweist,
einen Primärspeicher mit wahlfreiem Zugriff hoher Geschwin digkeit;
einen Sekundärspeicher mit wahlfreiem Zugriff niedrigerer Geschwindigkeit und größerer Speicherkapazität als der Pri märspeicher;
einen ersten Datenanschluß;
einen zweiten Datenanschluß; und
Datenwegschaltungen, die den Primärspeicher mit dem ersten Datenanschluß verbinden, den Sekundärspeicher mit dem Pri märspeicher und den zweiten Datenanschluß mit dem Sekundär speicher, wobei die Datenwegschaltungen Datenwegauswahlein richtungen zum Selektieren von Datenwegen zwischen dem Se kundärspeicher und dem Primärspeicher zum Übertragen von Daten von dem Sekundärspeicher zum Primärspeicher und zwi schen dem zweiten Datenanschluß und dem Sekundärspeicher zum Übertragen von Daten von dem zweiten Datenanschluß zum Sekundärspeicher enthalten.
einen Primärspeicher mit wahlfreiem Zugriff hoher Geschwin digkeit;
einen Sekundärspeicher mit wahlfreiem Zugriff niedrigerer Geschwindigkeit und größerer Speicherkapazität als der Pri märspeicher;
einen ersten Datenanschluß;
einen zweiten Datenanschluß; und
Datenwegschaltungen, die den Primärspeicher mit dem ersten Datenanschluß verbinden, den Sekundärspeicher mit dem Pri märspeicher und den zweiten Datenanschluß mit dem Sekundär speicher, wobei die Datenwegschaltungen Datenwegauswahlein richtungen zum Selektieren von Datenwegen zwischen dem Se kundärspeicher und dem Primärspeicher zum Übertragen von Daten von dem Sekundärspeicher zum Primärspeicher und zwi schen dem zweiten Datenanschluß und dem Sekundärspeicher zum Übertragen von Daten von dem zweiten Datenanschluß zum Sekundärspeicher enthalten.
10. Integrierte Schaltung nach Anspruch 9, dadurch gekenn
zeichnet, daß die Datenwegauswahleinrichtungen weiterhin
enthalten eine Einrichtung zum Auswählen von Datenwegen
zwischen dem ersten Datenanschluß und dem Primärspeicher
zum Übertragen von Daten von dem ersten Datenanschluß zum
Primärspeicher, zwischen dem Primärspeicher und dem Sekun
därspeicher zum Übertragen von Daten von dem Primärspeicher
zum Sekundärspeicher und zwischen dem Sekundärspeicher und
dem zweiten Datenanschluß zum Übertragen von Daten von dem
Sekundärspeicher zum zweiten Datenanschluß.
11. Integrierte Schaltung nach Anspruch 10, dadurch gekenn
zeichnet, daß die Datenwegauswahleinrichtungen enthalten
ein Seriell/Parallel-Schieberegister, das aufweist einen
ersten Paralleldateneingang verbunden mit Datenausgangslei
tungen des Sekundärspeichers, einen zweiten Paralleldaten
eingang verbunden mit dem Datenprozessoranschluß, einen
dritten Paralleldateneingang verbunden mit den Datenaus
gangsleitungen und dem Sekundärspeicher, einen Parallelda
tenausgang parallel verbunden mit Dateneingangsleitungen
des Primärspeichers und Dateneingangsleitungen des Sekundär
speichers, einen Serielldateneingang verbunden mit dem zwei
ten Datenanschluß und einen Serielldatenausgang verbunden
mit dem zweiten Datenanschluß.
12. Integrierte Schaltung nach Anspruch 10, dadurch gekenn
zeichnet, daß die Datenwegschaltungen weiterhin enthalten
einen Multiplexer mit Datenausgangsleitungen, die mit dem
ersten Datenanschluß verbunden sind, einer größeren Anzahl
von Dateneingangsleitungen, die mit den Datenausgangsleitun
gen des Primärspeichers verbunden sind, und mit Auswahl
steuerungseingängen, die mit den Adreßleitungen verbunden
sind.
13. Integrierte Schaltung nach Anspruch 12, gekennzeichnet
durch einen Decoder mit Eingängen, die mit den Adreßlei
tungen verbunden sind, und mit Ausgängen, die mit den
Schreibfreigabeeingängen des Primärspeichers verbunden sind.
14. Integrierte Schaltung nach Anspruch 9, gekennzeichnet
durch einen Adreßbus mit Adreßleitungen, die Adreßeingän
ge des Primärspeichers parallel mit entsprechenden Adreß
eingängen des Sekundärspeichers verbinden.
15. Integrierte Schaltung nach Anspruch 9, gekennzeichnet
durch Eingangsanschlüsse für Adreß- und Steuersignale;
Durchlaß/Halte-Zwischenspeicher mit Takteingängen, die pa
rallel mit einer Taktleitung verbunden sind, mit Datenein
gängen, die mit den Eingangsanschlüssen verbunden sind, und
mit Datenausgängen, die mit Adressen und Steuereingängen
des Primärspeichers und des Sekundärspeichers und der Aus
wahleinrichtung verbunden sind, wobei die Datenwegschaltun
gen aufweisen: zumindest ein flankengetriggertes Flip-Flop
mit einem Dateneingang, der mit dem Datenausgang des Primär
speichers verbunden ist, mit einem Datenausgang, der mit
dem ersten Datenanschluß verbunden ist, und einem Taktein
gang, der mit der Taktleitung parallel mit den Takteingän
gen der Durchlaß/Halte-Zwischenspeicher verbunden ist, wo
bei die Zwischenspeicher die Adressen und Kontrollsignale
während eines ausgegebenen Taktzustands halten und das flan
kengetriggerte Flip-Flop den Zustand während eines Taktüber
gangs von dem ausgegebenen Taktzustand zu einem nichtausge
gebenen Taktzustand ändert.
16. Integrierte Schaltung nach Anspruch 9, dadurch gekenn
zeichnet, daß die Datenwegschaltungen aufweisen: eine Ein
richtung zum Transferieren von Daten in Synchronismus mit
einem Taktsignal, und daß die integrierte Schaltung weiter
hin aufweist: einen Takteingangspuffer mit einem Ausgang,
der das Taktsignal abgibt, und auch mit Differenzeingängen,
die mit zwei entsprechenden Eingangsanschlüssen verbunden
sind, und eine Quelle für eine Vorspannung, die mit zumin
dest einem der Eingangsanschlüsse verbunden ist, um dadurch
Takteingangsanschlüsse zum Annehmen von entweder einem Paar
von komplementären Taktsignalen oder einem einzelnen Takt
signal zum Synchronisieren der Einrichtung zum Transferie
ren von Daten bereitzustellen.
17. Integrierte Schaltung nach Anspruch 9, dadurch gekenn
zeichnet, daß die Primärspeicher ECL-Speicherelemente auf
weist und daß der Sekundärspeicher CMOS-Speicherelemente
aufweist.
18. Integrierte Schaltung, die in Kombination aufweist
einen Primärspeicher mit wahlfreiem Zugriff hoher Geschwin digkeit, wobei der Primärspeicher eine Vielzahl von Adreß leitungen, eine Vielzahl von Dateneingängen, eine Vielzahl von Datenausgängen und eine Vielzahl von Schreibfreigabeein gängen aufweist;
einen Sekundärspeicher mit wahlfreiem Zugriff niedrigerer Geschwindigkeit und größerer Speicherkapazität als der Pri märspeicher, wobei der Sekundärspeicher eine Vielzahl von Adreßeingängen, eine Vielzahl von Dateneingängen und eine Vielzahl von Datenausgängen hat;
einen ersten Datenanschluß, der zumindest eine Datenein gangsleitung und zumindest eine Datenausgangsleitung auf weist;
einen zweiten Datenanschluß, der zumindest eine Datenein gangsleitung und zumindest eine Datenausgangsleitung auf weist;
Adreßleitungen, die die Adreßeingänge des Primärspeichers parallel mit jeweiligen Adreßeingängen des Sekundärspei chers verbindet;
einen Multiplexer mit Auswahlsteuereingängen, Dateneingän gen, die mit den Datenausgängen des Primärspeichers verbun den sind, und mit zumindest einem Datenausgang, der mit der Datenausgangsleitung des ersten Datenanschlusses verbunden ist;
einen Decoder mit Eingängen, die parallel mit den Auswahl steuereingängen des Multiplexers verbunden sind, und mit Ausgängen, die mit jeweiligen Schreibeingängen des Primär speichers verbunden sind, und
mit einem Seriell/Parallel-Schieberegister mit einem Pa ralleldatenausgang, der parallel mit den Dateneingängen des Primärspeichers und den Dateneingängen des Sekundärspei chers verbunden ist, mit einem ersten Paralleldateneingang, der mit den Datenausgängen des Sekundärspeichers verbunden ist, mit einem zweiten Paralleldateneingang, der mit der Dateneingangsleitung des ersten Datenanschlusses verbunden ist, mit einem dritten Paralleldateneingang, der mit dem Datenausgang des Sekundärspeichers verbunden ist, mit einem Serielldateneingang, der mit den Dateneingangsleitungen des zweiten Datenanschlusses verbunden ist, und mit einem Serielldatenausgang, der mit der Datenausgangsleitung des zweiten Datenanschlusses verbunden ist.
einen Primärspeicher mit wahlfreiem Zugriff hoher Geschwin digkeit, wobei der Primärspeicher eine Vielzahl von Adreß leitungen, eine Vielzahl von Dateneingängen, eine Vielzahl von Datenausgängen und eine Vielzahl von Schreibfreigabeein gängen aufweist;
einen Sekundärspeicher mit wahlfreiem Zugriff niedrigerer Geschwindigkeit und größerer Speicherkapazität als der Pri märspeicher, wobei der Sekundärspeicher eine Vielzahl von Adreßeingängen, eine Vielzahl von Dateneingängen und eine Vielzahl von Datenausgängen hat;
einen ersten Datenanschluß, der zumindest eine Datenein gangsleitung und zumindest eine Datenausgangsleitung auf weist;
einen zweiten Datenanschluß, der zumindest eine Datenein gangsleitung und zumindest eine Datenausgangsleitung auf weist;
Adreßleitungen, die die Adreßeingänge des Primärspeichers parallel mit jeweiligen Adreßeingängen des Sekundärspei chers verbindet;
einen Multiplexer mit Auswahlsteuereingängen, Dateneingän gen, die mit den Datenausgängen des Primärspeichers verbun den sind, und mit zumindest einem Datenausgang, der mit der Datenausgangsleitung des ersten Datenanschlusses verbunden ist;
einen Decoder mit Eingängen, die parallel mit den Auswahl steuereingängen des Multiplexers verbunden sind, und mit Ausgängen, die mit jeweiligen Schreibeingängen des Primär speichers verbunden sind, und
mit einem Seriell/Parallel-Schieberegister mit einem Pa ralleldatenausgang, der parallel mit den Dateneingängen des Primärspeichers und den Dateneingängen des Sekundärspei chers verbunden ist, mit einem ersten Paralleldateneingang, der mit den Datenausgängen des Sekundärspeichers verbunden ist, mit einem zweiten Paralleldateneingang, der mit der Dateneingangsleitung des ersten Datenanschlusses verbunden ist, mit einem dritten Paralleldateneingang, der mit dem Datenausgang des Sekundärspeichers verbunden ist, mit einem Serielldateneingang, der mit den Dateneingangsleitungen des zweiten Datenanschlusses verbunden ist, und mit einem Serielldatenausgang, der mit der Datenausgangsleitung des zweiten Datenanschlusses verbunden ist.
19. Integrierte Schaltung nach Anspruch 18, gekennzeich
net durch Eingangsanschlüsse für Adreß- und Steuersignale,
durch Durchlaß/Halte-Zwischenspeicher mit Takteingängen,
die parallel mit einer Taktleitung verbunden sind, mit Da
teneingängen, die mit jeweiligen Eingangsanschlüssen verbun
den sind, und mit Datenausgängen, die mit Adreß- und Steu
ereingängen des Primärspeichers und Sekundärspeichers und
der Auswahleinrichtung verbunden sind, durch mindestens ein
flankengetriggertes Flip-Flop mit einem Dateneingang, der
mit dem Datenausgang des Multiplexers verbunden ist, mit
einem Datenausgang, der mit dem ersten Datenanschluß verbun
den ist, und mit einem Takteingang, der mit der Taktleitung
parallel mit den Takteingängen der Durchlaß/Halte-Zwischen
speicher verbunden ist, und durch einen Takteingangspuffer
mit einem Ausgang, der mit der Taktleitung verbunden ist,
und ebenfalls mit Differenzeingängen, die mit zwei entspre
chenden Eingangsanschlüssen verbunden sind, und durch eine
Quelle für eine Vorspannung, die mit zumindest einem der
Eingangsanschlüsse verbunden ist.
20. Integrierte Schaltung nach Anspruch 18, dadurch gekenn
zeichnet, daß die Primärspeicher im wesentlichen aus ECL-
Logikelementen besteht und der Sekundärspeicher im wesentli
chen aus CMOS-Logik-Elementen besteht.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US59376390A | 1990-10-05 | 1990-10-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE4132833A1 true DE4132833A1 (de) | 1992-04-09 |
DE4132833C2 DE4132833C2 (de) | 1997-12-18 |
Family
ID=24376065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE4132833A Expired - Fee Related DE4132833C2 (de) | 1990-10-05 | 1991-10-02 | Hierarchischer Cache-Speicher |
Country Status (6)
Country | Link |
---|---|
US (1) | US5285323A (de) |
JP (1) | JP2505661B2 (de) |
CA (1) | CA2043493C (de) |
DE (1) | DE4132833C2 (de) |
FR (1) | FR2667706B1 (de) |
GB (1) | GB2248952B (de) |
Families Citing this family (73)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5307356A (en) * | 1990-04-16 | 1994-04-26 | International Business Machines Corporation | Interlocked on-chip ECC system |
GB2256512B (en) * | 1991-06-04 | 1995-03-15 | Intel Corp | Second level cache controller unit and system |
US5469555A (en) * | 1991-12-19 | 1995-11-21 | Opti, Inc. | Adaptive write-back method and apparatus wherein the cache system operates in a combination of write-back and write-through modes for a cache-based microprocessor system |
US5813030A (en) * | 1991-12-31 | 1998-09-22 | Compaq Computer Corp. | Cache memory system with simultaneous access of cache and main memories |
US5649154A (en) * | 1992-02-27 | 1997-07-15 | Hewlett-Packard Company | Cache memory system having secondary cache integrated with primary cache for use with VLSI circuits |
GB2264577B (en) * | 1992-02-27 | 1995-06-14 | Hewlett Packard Co | Cache memory system |
JPH05324468A (ja) * | 1992-05-21 | 1993-12-07 | Fujitsu Ltd | 階層化キャッシュメモリ |
US5809531A (en) * | 1992-09-21 | 1998-09-15 | Intel Corporation | Computer system for executing programs using an internal cache without accessing external RAM |
US6046753A (en) * | 1992-09-25 | 2000-04-04 | Quantel Limited | Electronic image processing system for modifying initial image data |
US5870574A (en) * | 1993-04-12 | 1999-02-09 | Silicon Graphics, Inc. | System and method for fetching multiple groups of instructions from an instruction cache in a RISC processor system for execution during separate cycles |
US5568442A (en) * | 1993-05-17 | 1996-10-22 | Silicon Graphics, Inc. | RISC processor having improved instruction fetching capability and utilizing address bit predecoding for a segmented cache memory |
US5689679A (en) * | 1993-04-28 | 1997-11-18 | Digital Equipment Corporation | Memory system and method for selective multi-level caching using a cache level code |
US6219773B1 (en) | 1993-10-18 | 2001-04-17 | Via-Cyrix, Inc. | System and method of retiring misaligned write operands from a write buffer |
US5615402A (en) * | 1993-10-18 | 1997-03-25 | Cyrix Corporation | Unified write buffer having information identifying whether the address belongs to a first write operand or a second write operand having an extra wide latch |
US5584009A (en) * | 1993-10-18 | 1996-12-10 | Cyrix Corporation | System and method of retiring store data from a write buffer |
JPH07129456A (ja) * | 1993-10-28 | 1995-05-19 | Toshiba Corp | コンピュータシステム |
US5671391A (en) * | 1994-01-10 | 1997-09-23 | Ncr Corporation | Coherent copyback protocol for multi-level cache memory systems |
DE69530720T2 (de) * | 1994-03-09 | 2003-11-27 | Sun Microsystems, Inc. | Verzögertes Cachespeicherschreiben eines Speicherungsbefehls |
US5604889A (en) * | 1994-06-15 | 1997-02-18 | Texas Instruments Incorporated | Memory management system for checkpointed logic simulator with increased locality of data |
US5577227A (en) * | 1994-08-04 | 1996-11-19 | Finnell; James S. | Method for decreasing penalty resulting from a cache miss in multi-level cache system |
US5813031A (en) * | 1994-09-21 | 1998-09-22 | Industrial Technology Research Institute | Caching tag for a large scale cache computer memory system |
GB2293668B (en) * | 1994-09-30 | 1999-09-29 | Advanced Risc Mach Ltd | Accessing data memories |
US5694614A (en) * | 1995-02-15 | 1997-12-02 | Ast Research, Inc. | Minimum latency bus interface circuit with reduced I/O pin count through multi-mode operation |
US5617347A (en) * | 1995-03-17 | 1997-04-01 | Fujitsu Limited | Cache memory system and method thereof for storing a staged memory item and a cache tag within a single cache array structure |
DE69635066T2 (de) * | 1995-06-06 | 2006-07-20 | Hewlett-Packard Development Co., L.P., Houston | Unterbrechungsschema zum Aktualisieren eines Lokalspeichers |
JPH0916470A (ja) | 1995-07-03 | 1997-01-17 | Mitsubishi Electric Corp | 半導体記憶装置 |
US5835941A (en) * | 1995-11-17 | 1998-11-10 | Micron Technology Inc. | Internally cached static random access memory architecture |
US5898828A (en) * | 1995-12-29 | 1999-04-27 | Emc Corporation | Reduction of power used by transceivers in a data transmission loop |
US6223260B1 (en) * | 1996-01-25 | 2001-04-24 | Unisys Corporation | Multi-bus data processing system in which all data words in high level cache memories have any one of four states and all data words in low level cache memories have any one of three states |
US6021467A (en) * | 1996-09-12 | 2000-02-01 | International Business Machines Corporation | Apparatus and method for processing multiple cache misses to a single cache line |
US5895487A (en) * | 1996-11-13 | 1999-04-20 | International Business Machines Corporation | Integrated processing and L2 DRAM cache |
GB2339369B (en) * | 1998-07-09 | 2003-06-18 | Advanced Risc Mach Ltd | Apparatus and method for controlling timing of transfer requests within a data processing apparatus |
US6519682B2 (en) * | 1998-12-04 | 2003-02-11 | Stmicroelectronics, Inc. | Pipelined non-blocking level two cache system with inherent transaction collision-avoidance |
US6415362B1 (en) * | 1999-04-29 | 2002-07-02 | International Business Machines Corporation | Method and system for write-through stores of varying sizes |
US6687863B1 (en) * | 1999-07-29 | 2004-02-03 | Matsushita Electric Industrial Co., Ltd. | Integrated circuit internal signal monitoring apparatus |
GB2401967B (en) * | 1999-12-30 | 2005-01-05 | Intel Corp | Dual cache system |
US6591332B1 (en) * | 2000-04-28 | 2003-07-08 | Hewlett-Packard Development Company, L.P. | Apparatus and method for tracking flushes of cache entries in a data processing system |
US6765813B2 (en) | 2000-08-14 | 2004-07-20 | Matrix Semiconductor, Inc. | Integrated systems using vertically-stacked three-dimensional memory cells |
US6711043B2 (en) | 2000-08-14 | 2004-03-23 | Matrix Semiconductor, Inc. | Three-dimensional memory cache system |
US6768661B2 (en) * | 2002-06-27 | 2004-07-27 | Matrix Semiconductor, Inc. | Multiple-mode memory and method for forming same |
EP1627335A1 (de) * | 2003-03-07 | 2006-02-22 | Nokia Corporation | Verfahren und vorrichtung zur frequenzzählung |
US8687010B1 (en) | 2004-05-14 | 2014-04-01 | Nvidia Corporation | Arbitrary size texture palettes for use in graphics systems |
US8736628B1 (en) | 2004-05-14 | 2014-05-27 | Nvidia Corporation | Single thread graphics processing system and method |
US8736620B2 (en) * | 2004-05-14 | 2014-05-27 | Nvidia Corporation | Kill bit graphics processing system and method |
US8432394B1 (en) | 2004-05-14 | 2013-04-30 | Nvidia Corporation | Method and system for implementing clamped z value interpolation in a raster stage of a graphics pipeline |
US20060007234A1 (en) * | 2004-05-14 | 2006-01-12 | Hutchins Edward A | Coincident graphics pixel scoreboard tracking system and method |
US8860722B2 (en) * | 2004-05-14 | 2014-10-14 | Nvidia Corporation | Early Z scoreboard tracking system and method |
US8416242B1 (en) | 2004-05-14 | 2013-04-09 | Nvidia Corporation | Method and system for interpolating level-of-detail in graphics processors |
US7868902B1 (en) * | 2004-05-14 | 2011-01-11 | Nvidia Corporation | System and method for pixel data row forwarding in a 3-D graphics pipeline |
US7724263B2 (en) * | 2004-05-14 | 2010-05-25 | Nvidia Corporation | System and method for a universal data write unit in a 3-D graphics pipeline including generic cache memories |
US8743142B1 (en) | 2004-05-14 | 2014-06-03 | Nvidia Corporation | Unified data fetch graphics processing system and method |
US8411105B1 (en) | 2004-05-14 | 2013-04-02 | Nvidia Corporation | Method and system for computing pixel parameters |
US8711155B2 (en) * | 2004-05-14 | 2014-04-29 | Nvidia Corporation | Early kill removal graphics processing system and method |
US7079156B1 (en) * | 2004-05-14 | 2006-07-18 | Nvidia Corporation | Method and system for implementing multiple high precision and low precision interpolators for a graphics pipeline |
JP4451717B2 (ja) * | 2004-05-31 | 2010-04-14 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置および情報処理方法 |
WO2006040726A1 (en) * | 2004-10-15 | 2006-04-20 | Koninklijke Philips Electronics N.V. | Method of operating a rfid system |
KR100798008B1 (ko) * | 2005-09-07 | 2008-01-24 | 노키아 코포레이션 | 빈도수 카운팅을 위한 방법 및 장치 |
US7539819B1 (en) * | 2005-10-31 | 2009-05-26 | Sun Microsystems, Inc. | Cache operations with hierarchy control |
US7917685B2 (en) * | 2006-05-04 | 2011-03-29 | Micron Technology, Inc. | Method for reading a multilevel cell in a non-volatile memory device |
US8537168B1 (en) | 2006-11-02 | 2013-09-17 | Nvidia Corporation | Method and system for deferred coverage mask generation in a raster stage |
US8441497B1 (en) | 2007-08-07 | 2013-05-14 | Nvidia Corporation | Interpolation of vertex attributes in a graphics processor |
US9183607B1 (en) | 2007-08-15 | 2015-11-10 | Nvidia Corporation | Scoreboard cache coherence in a graphics pipeline |
US9256514B2 (en) | 2009-02-19 | 2016-02-09 | Nvidia Corporation | Debugging and perfomance analysis of applications |
US8885422B2 (en) | 2009-06-12 | 2014-11-11 | Hewlett-Packard Development Company, L.P. | Hierarchical on-chip memory |
US8645589B2 (en) | 2009-08-03 | 2014-02-04 | National Instruments Corporation | Methods for data acquisition systems in real time applications |
GB2484458A (en) | 2010-10-04 | 2012-04-18 | Thorn Security | Commissioning detector units of an alarm system by means of a remote infrared based communication tool |
US20130083047A1 (en) * | 2011-09-29 | 2013-04-04 | Prashant Shamarao | System and method for buffering a video signal |
CN103186608B (zh) * | 2011-12-30 | 2017-08-08 | 北京谊安医疗系统股份有限公司 | 一种队列序列化式处理数据的方法和装置 |
US9411595B2 (en) | 2012-05-31 | 2016-08-09 | Nvidia Corporation | Multi-threaded transactional memory coherence |
US9824009B2 (en) | 2012-12-21 | 2017-11-21 | Nvidia Corporation | Information coherency maintenance systems and methods |
US10102142B2 (en) | 2012-12-26 | 2018-10-16 | Nvidia Corporation | Virtual address based memory reordering |
US9477575B2 (en) | 2013-06-12 | 2016-10-25 | Nvidia Corporation | Method and system for implementing a multi-threaded API stream replay |
US9569385B2 (en) | 2013-09-09 | 2017-02-14 | Nvidia Corporation | Memory transaction ordering |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4712190A (en) * | 1985-01-25 | 1987-12-08 | Digital Equipment Corporation | Self-timed random access memory chip |
EP0335113A2 (de) * | 1988-02-26 | 1989-10-04 | Hitachi, Ltd. | Einchip-Cache-Speicher und Cache-Speichervorrichtung mit mehreren parallel geschalteten Einchip-Cache-Speichern |
DE4005319A1 (de) * | 1989-02-22 | 1990-08-23 | Siemens Ag | Verfahren und anordnung zur aufrechterhaltung der datenkonsistenz in einem multiprozessorsystem mit privaten cachespeichern |
US5107462A (en) * | 1989-02-03 | 1992-04-21 | Digital Equipment Corporation | Self timed register file having bit storage cells with emitter-coupled output selectors for common bits sharing a common pull-up resistor and a common current sink |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3377435D1 (en) * | 1983-07-27 | 1988-08-25 | Ibm Deutschland | Digital memory |
DE3584318D1 (de) * | 1984-06-29 | 1991-11-14 | Ibm | Hochgeschwindigkeitspufferspeicheranordnung fuer schnelle datenuebertragung. |
US4961153A (en) * | 1987-08-18 | 1990-10-02 | Hewlett Packard Company | Graphics frame buffer with strip Z buffering and programmable Z buffer location |
US5029105A (en) * | 1987-08-18 | 1991-07-02 | Hewlett-Packard | Programmable pipeline for formatting RGB pixel data into fields of selected size |
US5157776A (en) * | 1987-12-30 | 1992-10-20 | Zenith Data Systems Corporation | High speed memory for microcomputer systems |
GB8805908D0 (en) * | 1988-02-12 | 1988-04-13 | Int Computers Ltd | Data memory system |
US4905188A (en) * | 1988-02-22 | 1990-02-27 | International Business Machines Corporation | Functional cache memory chip architecture for improved cache access |
US5023776A (en) * | 1988-02-22 | 1991-06-11 | International Business Machines Corp. | Store queue for a tightly coupled multiple processor configuration with two-level cache buffer storage |
US4914656A (en) * | 1988-06-28 | 1990-04-03 | Storage Technology Corporation | Disk drive memory |
US5058051A (en) * | 1988-07-29 | 1991-10-15 | Texas Medical Instruments, Inc. | Address register processor system |
US4992961A (en) * | 1988-12-01 | 1991-02-12 | Hewlett-Packard Company | Method and apparatus for increasing image generation speed on raster displays |
US5151997A (en) * | 1989-08-10 | 1992-09-29 | Apple Computer, Inc. | Computer with adaptable video circuitry |
-
1991
- 1991-05-29 CA CA002043493A patent/CA2043493C/en not_active Expired - Fee Related
- 1991-06-24 GB GB9113583A patent/GB2248952B/en not_active Expired - Fee Related
- 1991-07-08 JP JP3166782A patent/JP2505661B2/ja not_active Expired - Lifetime
- 1991-10-02 DE DE4132833A patent/DE4132833C2/de not_active Expired - Fee Related
- 1991-10-04 FR FR9112239A patent/FR2667706B1/fr not_active Expired - Fee Related
-
1993
- 1993-05-13 US US08/061,273 patent/US5285323A/en not_active Expired - Lifetime
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4712190A (en) * | 1985-01-25 | 1987-12-08 | Digital Equipment Corporation | Self-timed random access memory chip |
EP0335113A2 (de) * | 1988-02-26 | 1989-10-04 | Hitachi, Ltd. | Einchip-Cache-Speicher und Cache-Speichervorrichtung mit mehreren parallel geschalteten Einchip-Cache-Speichern |
US5107462A (en) * | 1989-02-03 | 1992-04-21 | Digital Equipment Corporation | Self timed register file having bit storage cells with emitter-coupled output selectors for common bits sharing a common pull-up resistor and a common current sink |
DE4005319A1 (de) * | 1989-02-22 | 1990-08-23 | Siemens Ag | Verfahren und anordnung zur aufrechterhaltung der datenkonsistenz in einem multiprozessorsystem mit privaten cachespeichern |
Non-Patent Citations (2)
Title |
---|
Design & Elektronik, Ausg. 19 vom 18.9.90, S. 86-88 * |
IEEE Journal of Solid-State Circuits, Vol. 25, Nr. 1, Februar 1990, S. 5-10 * |
Also Published As
Publication number | Publication date |
---|---|
FR2667706A1 (fr) | 1992-04-10 |
GB2248952B (en) | 1994-08-10 |
JPH04230551A (ja) | 1992-08-19 |
GB2248952A (en) | 1992-04-22 |
DE4132833C2 (de) | 1997-12-18 |
FR2667706B1 (fr) | 1996-12-06 |
JP2505661B2 (ja) | 1996-06-12 |
CA2043493A1 (en) | 1992-04-06 |
GB9113583D0 (en) | 1991-08-14 |
CA2043493C (en) | 1997-04-01 |
US5285323A (en) | 1994-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE4132833C2 (de) | Hierarchischer Cache-Speicher | |
DE3687307T2 (de) | Computeranordnungen mit cache-speichern. | |
DE69427606T2 (de) | Rechnersystem, das den Schreibschutzstatus im Systemverwaltungszustand übergeht | |
DE69432314T2 (de) | Cachespeicher mit aufgeteiltem pegel | |
DE69427421T2 (de) | Speichersteuereinheit mit hohem Grade der Gleichzeitigkeit und Arbeitsteilung | |
DE68923403T2 (de) | Verfahren und Anordnung zur Adressierung eines Seitenmodus-Speichers in einem Computersystem. | |
DE3650063T2 (de) | FIFO-Speicher mit verminderter Durchfallzeit. | |
DE2854485C2 (de) | Datenverarbeitungsanlage | |
DE69129569T2 (de) | Maschine mit sehr langem Befehlswort für leistungsfähige Durchführung von Programmen mit bedingten Verzweigungen | |
DE69434728T2 (de) | Synchronisationssystem und verfahren in einem datencachesystem mit aufgeteiltem pegel | |
DE69203842T2 (de) | Speichersteuerungsvorrichtung mit Snoop-Mechanismus. | |
DE69715328T2 (de) | System und Verfahren zur Parallelisierung der Durchführung von Speichertransaktionen mittels mehreren Speichermodellen | |
DE69031658T2 (de) | Vorrichtung und verfahren für instandhaltung von cache/zentralspeicherkonsistenz | |
DE102004009497B3 (de) | Chipintegriertes Mehrprozessorsystem und Verfahren zur Kommunikation zwischen mehreren Prozessoren eines chipintegrierten Mehrprozessorsystems | |
DE4291778B4 (de) | Cache-Speichereinrichtung für ein Mikroprozessorsystem mit einem Cache-Speicher mit asynchronem Datenpfad | |
DE69312192T2 (de) | Aufteilung des buszugriffs zwischen mehreren endlichen automaten mit minimaler wartezeit und priorisierung von ähnlichen zyklustypen | |
DE3855031T2 (de) | Kopiesystem mit "Hot-standby"-Speicher | |
DE3783370T2 (de) | Schaltung zur blockierungsverhinderung von hochprioritaetsanforderungen an eine systemsteuerung. | |
DE69228582T2 (de) | Vorrichtung zur Vermeidung von Prozessorblockierungen in einem Multiprozessorsystem | |
DE69422120T2 (de) | Synchroner dynamischer Speicher mit wahlfreiem Zugriff | |
DE10056827A1 (de) | Duale Verwendung von Cache-Verbindungen | |
DE102005032949A1 (de) | Verfahren und Vorrichtung zum Implementieren von Speicherordnungsmodellen mit Ordnungsvektoren | |
DE4335475A1 (de) | Datenverarbeitungseinrichtung mit Cache-Speicher | |
DE112008001679T5 (de) | Cache-Speicher mit konfigurierbarer Assoziativität | |
DE3923253C2 (de) | Mikroprozessor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8125 | Change of the main classification |
Ipc: G06F 12/08 |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |