DE4306077A1 - - Google Patents
Info
- Publication number
- DE4306077A1 DE4306077A1 DE4306077A DE4306077A DE4306077A1 DE 4306077 A1 DE4306077 A1 DE 4306077A1 DE 4306077 A DE4306077 A DE 4306077A DE 4306077 A DE4306077 A DE 4306077A DE 4306077 A1 DE4306077 A1 DE 4306077A1
- Authority
- DE
- Germany
- Prior art keywords
- cache
- data
- primary
- memory
- secondary cache
- 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.)
- Withdrawn
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
-
- 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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
Description
Die vorliegende Erfindung betrifft allgemein elektronische
Cache-Speicherschaltungsarchitekturen und Cache-Verarbei
tungsverfahren. Genauer gesagt befaßt sich die Erfindung mit
Cache-Speicherarchitekturen und Befehls -Cache-Architekturen
für hochintegrierte Schaltungen (VLSI-Schaltungen), bei
denen ein sekundärer Cache-Speicher neben dem primären
Cache-Speicher aufgebaut ist, welcher im Falle einer Daten
fehlmeldung (miss) von dem primären Cache-Speicher abgefragt
wird.
Allgemein arbeiten integrierte RAM-Schaltungen (integrierte
Speicherschaltungen für wahlfreien Zugriff) weitaus lang
samer als heutige Mikroprozessoren. Die Konstrukteure von
Mikroprozessoren haben entdeckt, daß die langsamen RAM-Zu
griffszeiten eine erhebliche Begrenzung für die Erhöhung der
Prozessordurchgangsleistung und die Erhöhung der Geschwin
digkeit der Programmausführung darstellen. Beispielsweise
können heutige RISC-Mikroprozessoren (Computer mit reduzier
tem Befehlssatz) bei einer Taktfrequenz von 20 MHz oder mehr
arbeiten, so daß theoretisch 20 Millionen Befehle pro Sekun
de ausgeführt werden können. Jedoch beträgt die typische
RAM-Zykluszeit (Antwortzeit) etwa 150 Nanosekunden. Wenn
daher ein Mikroprozessor einen neuen Datenwert oder einen
neuen Befehl aus einem RAM auslesen muß, können mehrere oder
viele Mikroprozessor-Zyklen vergeudet werden, während denen
der Mikroprozessor auf eine Reaktion oder eine Antwort des
RAM wartet.
Um diese Engstelle zu umgehen, verwenden Mikrocomputer und
Mikroprozessoren Cache-Speicher zur Verbesserung der Spei
cherzugriffszeit. Die allgemeine Definition eines Cache-
Speichers ist diejenige eines schnellen Pufferspeichers mit
einer vergleichsweisen geringen Speicherkapazität für einen
langsameren Hauptspeicher mit einer im Vergleich hierzu
großen Speicherkapazität. Ein Cache-Speicher ähnelt einem
virtuellen Speicher dahingehend, daß ein Hochgeschwindig
keits-Cache-Speicher eine verdoppelte Kopie eines aktiven
Bereiches eines langsamen RAM speichert. Typischerweise ist
der Cache-Speicher auf dem Mikroprozessor-Chip angeordnet,
so daß die Zugriffszeit viermal so schnell bis zwanzigmal so
schnell wie die Zugriffszeit auf den Hauptspeicher ist.
Wenn während der Operation eine Speicheranforderung durch
den Mikroprozessor erzeugt wird, wird diese Speicheranforde
rung dem Cache-Speicher präsentiert. Falls der Cache-Spei
cher hierauf nicht antwortet, wird die Anforderung dem
Hauptspeicher präsentiert. Wenn der Mikroprozessor versucht,
auf einen Posten bzw. auf Daten zuzugreifen, welche sich
nicht in dem Cache-Speicher befinden, jedoch in dem Haupt
speicher vorliegen, tritt eine sog. "Cache-Datenfehlmeldung"
(Cache-miss) auf. In Reaktion auf die Cache-Datenfehlmeldung
wird der Cache-Speicher durch Laden der benötigten Daten von
dem Hauptspeicher in den Cache-Speicher auf den neuesten
Stand gebracht. Die Daten werden dann von dem Cache-Speicher
zu dem Mikroprozessor zugeführt. Diejenige Zeile eines
Cache-Speichers, die nicht die gewünschten Daten oder den
gewünschten Befehl enthält, wird als sog. "Opfer"-Zeile be
zeichnet.
Die Zeit zum auf den neuesten Stand bringen des Status eines
Cache-Speichers im Falle einer Datenfehlmeldung ist winzig.
Daher werden Cache-Speicher durch eine Hardware gesteuert,
welche die Cache-Datenfehlmeldungen innerhalb der erforder
lichen Zeit automatisch verarbeiten kann. Unglücklicherweise
erfordert bei bekannten Schaltungen jede Cache-Datenfehlmel
dung das auf den neuesten Stand bringen des Cache-Speichers
durch einen Zugriff auf den Hauptspeicher, wodurch in einem
erheblichen Umfang die Mikroprozessor-Durchgangsleistung ge
senkt wird.
Ausgehend von diesem Stand der Technik ist es daher die
Zielsetzung der vorliegenden Erfindung, die Mikroprozessor
leistung zu erhöhen, indem die Anzahl von Hauptspeicherzu
griffe vermindert wird, die nach einer Cache-Datenfehlmel
dung auftreten.
Cache-Speicher sind gemäß einem der nachfolgenden drei
Haupttypen aufgebaut: direkt abbildende Typen (direct-map
ped), Satz-Assoziative Typen (set-associated) und vollstän
dig assoziative Typen (fully associative). Details dieser
drei Cache-Speichertypen sind in den nachfolgend zitierten
Entgegenhaltungen beschrieben, deren Offenbarungsgehalt
durch diese Querbezugsnahme zum Offenbarungsgehalt der vor
liegenden Anmeldung gemacht wird:
De Blasi, "Computer Architecture", ISBN 0-201-41603-4
(Addison-Wesley, 1990), Seiten 273-291; Stone, "High
Performance Computer Architecture, "ISBN 0-201-51377-3
(Addison-Wesley, 2d Ed. 1990), Seiten 29-39; Tabak,
"Advanced Microprocessors," ISBN 0-07-062807-6 (McGraw-Hill,
1991) Seiten 244-248. Der Inhalt dieser Entgegenhaltungen
gehört zu dem typischen Fachwissen von Fachleuten auf dem
vorliegenden Technikgebiet.
Bei sämtlichen dieser drei Typen von Cache-Speichern wird
eine Eingangsadresse an eine Vergleichslogik angelegt.
Daraufhin wird ein Teilsatz der Adressen, die sog. Markie
rungsbits (tag Bits) aus der Eingangsadresse herausgezogen
und mit Markierungsbits eines jeden Cache-Speichereintrags
verglichen. Falls die Markierungsbits zusammenpassen, werden
die entsprechenden Daten aus dem Cache-Speicher herausge
holt. Die allgemeine Struktur und Verarbeitung eines Di
rektabbildungs-Cache-Speichers ist in Fig. 1 gezeigt. Der
Direktabbildungs-Cache-Speicher umfaßt einen Cache-Speicher
10, der als eine Tabelle mit einer Mehrzahl von Markierungen
12 und Datenelementen 14 implementiert werden kann. Ein Zu
griff auf die Markierungen und die Daten erfolgt paarweise.
Eine Eingangsadresse 20 wird von einem Mikroprozessor zu
einer Adreßdekodierungsschaltung 30 zugeführt, welche die
Markierungsbits von der Eingangsadresse 20 abtrennt. Die
Markierungsbits werden dann als erstes Eingangssignal 42
einem Komparator zugeführt. Der Komparator 40 empfängt ein
zweites Eingangssignal 44, welches Markierungsbits von dem
Cache-Speicher 10 an einem Ort umfaßt, auf die durch die
Bits der niedrigeren Ordnung der Eingangsadresse gezeigt
wird. Daher zeigen die niederwertigen Eingangsadreßbits (die
Eingangsadreßbits der niedrigeren Ordnung) auf eine einzig
artige Markierung innerhalb des Cache-Speichers. Falls durch
den Komparator 40 eine Übereinstimmung ermittelt wird, ak
tiviert (oder "bestätigt") der Komparator seinen Trefferaus
gang 60, wodurch die Datenauswahlschaltung 70 dazu veranlaßt
wird, ein Datenelement 14 aus dem Cache-Speicher auszulesen.
Da die Markierungen und die Datenelemente paarweise angeord
net sind, empfängt die Datenauswahlschaltung Datenelemente
entsprechend der passenden Markierungen. Die ausgewählten
Daten werden dann als Ausgangssignal 80 von dem Cache-Spei
cher zu dem Mikroprozessor zur weiteren Verarbeitung zuge
führt.
Falls keine Übereinstimmung zwischen dem ersten Eingangs
signal 42 und dem Ort innerhalb des Cache-Speichers, auf den
durch die Bits der Eingangsadresse mit der niedrigeren Ord
nung gezeigt wird, gefunden werden kann, aktiviert der Kom
parator sein Datenfehlausgangssignal 50. Hierdurch wird die
Datenfehlverarbeitung (welche durch den Block 55 dargestellt
ist) getriggert, welche bei den meisten Schaltungen den
Hauptspeicherzugriff anfordert.
Allgemein liefern Direktabbildungs-Cache-Speicher den
schnellsten Zugriff, jedoch erfordern diese die größte Zeit
für den Vergleich der Markierungsbits. Vollständig assozia
tive Cache-Speicher liefern einen schnelleren Vergleich,
jedoch beanspruchen diese eine höhere Leistung und eine
komplexere Schaltung.
Beim Stand der Technik sind Cache-Speicher anfällig für das
sog. "Durchgehen". Das Durchgehen des Speichers tritt auf,
wenn der Mikroprozessor wiederholt einen gewünschten Daten
posten sucht, diesen nicht findet und den Cache-Speicher mit
diesem Posten auf den neuesten Stand bringt und später diese
Zeile mit einem unterschiedlichen Posten ersetzt. Hierdurch
kommt es zu einem Zyklus von wiederholten Cache-Datenfehl
meldungen für den gleichen Datenposten bzw. dieselbe Date.
Um das Durchgehen des Speichers zu verhindern, bedient man
sich üblicherweise eines großen Satz-assoziativen Cache-
Speichers. Jedoch haben derartige Cache-Speicher mehrere
Nachteile. Zunächst tritt das Lesen und das Schreiben be
züglich des Cache-Speichers in separaten Maschinenzyklen
auf, welche nach sämtlichen Cache-Markierungs-Vergleichs
operationen ausgeführt werden, wodurch die Cache-Speicher
zugriffszeit erhöht wird. Hierdurch wird gleichfalls die
Mikroprozessorleistungsfähigkeit durch Verlängerung der
Maschinenzykluszeit oder durch das Erfordernis von Verzöge
rungszyklen vermindert. Ferner steigt die Verlustleistung
innerhalb des Cache-Speichers bedeutend an, da im Falle
eines Satz-assoziativen Cache-Speichers mit n-Wegen n-mal so
viele Worte gelesen werden müssen, bevor eine Auswahl durch
geführt wird, für ein gegebenes Wort aufgrund von Markie
rungsvergleichen. Drittens ist die Cache-Operation in hohem
Maße anfällig für Schaltungsschaltrauschen, wenn viele Lese
verstärker gleichzeitig triggern. Diese Anfälligkeit ist bei
Maschinen mit Wortgrößen von 32 Bit oder mehr sowie bei
Maschinen mit Cache-Speichern mit vielen Toren, bei denen
viele Worte gleichzeitig durch eine Mehrzahl von Cache-Toren
gelesen werden können, bedeutsam.
Daher ist es eine Zielsetzung der vorliegenden Erfindung,
einen Cache-Speicher zu schaffen, bei dem das Durchgehen
vermieden wird, ohne daß eine Satz-assoziative Implementie
rung verwendet wird.
Ein Wissenschaftler hat bereits die Verwendung eines Opfer-
Cache-Speichers oder eines Datenfehler-Cache-Speichers als
eine Hilfsposition für einen primären Direktabbildungs-Ca
che-Speicher diskutiert. Eine Definition der Schaltungs
architektur von sekundären Cache-Speichern (die als
"Opfer-/Datenfehlmeldungs-Cache-Speicher" bezeichnet wer
den), um das Durchgehen zu vermeiden und um das Trefferver
hältnis zu verbessern, ist offenbart in folgender Fachver
öffentlichung: N. Jouppi, "Improving Direct-Mapped Cache
Performance by the Addition of a Small Fully-Associative
Cache and Prefetch Buffers," Proceedings of the 17th Annual
Int'l Symposium on Computer Architecture, IEEE Computer
Society Press, Mai 1990, Seiten 364-373, wobei der Offen
barungsgehalt dieser Schrift wiederum durch Bezugnahme zum
Offenbarungsgehalt der vorliegenden Anmeldung gemacht wird.
Jedoch fehlt es in dieser Schrift an einer Lehre bezüglich
der VLSI-Implementierung der sekundären Cache-Speicher, an
einer Offenbarung bezüglich der Integration der primären und
der sekundären Cache-Speicher unter Verwendung von geteilten
Bit-Leitungen, Leseverstärkern und einer geteilten Bus-
Schnittstellenlogik.
In der Vergangenheit wurden Cache-Speicher gleichfalls zum
Cache-Speichern oder Puffern von Befehlen anstatt von Daten
verwendet. Bei einem derartigen Stand der Technik wurden Be
fehls-Cache-Speicher, Befehls-Puffer und Verzweigungsziel
puffer entweder auf getrennten Chips implementiert oder als
getrennte Module innerhalb eines einzigen Chips implemen
tiert. Unglücklicherweise erfordern diese bekannten Lösungs
ansätze eine umfangreiche Bus-Schaltung zur Verbindung der
Chips oder der Module. Dieses erfordert mehr Platz bzw. eine
höhere Schaltungsfläche (entweder in Form von Platinenraum
oder in Form von Siliziumfläche), wodurch die Systemkosten
ansteigen. Ferner steigt die Cache-Zugriffszeit in einem
erheblichen Ausmaß als Ergebnis des Bedarfs an Ausbreitung
von Signalen durch zusätzliche Gatter und Puffer an.
Die vorliegende Erfindung liefert ein effektives Cache-
Speichersystem mit einem sekundären Cache-Speicher, welcher
mit einem primären Direktabbildungs-Cache-Speicher inte
griert ist. Durch die Verwendung eines sekundären Cache-
Speichers wird das Durchgehen vermieden, das Trefferver
hältnis verbessert, während die innewohnende Effektivität
oder inhärente Effektivität eines Direktabbildungs-Cache-
Speichers beibehalten wird. Gemäß der Erfindung ist der
sekundäre Cache-Speicher mit einem Direktabbildungs-Cache
Speicher in einer einzigen Struktur vorzugsweise auf einem
VLSI-Chip aufgebaut. Der sekundäre Cache-Speicher ist in
einen Direktabbildungs-Cache-Speicher eingebettet und ver
wendet die gleichen Bit-Leitungen, die gleichen Lesever
stärker und die gleichen Bustreiber wie der Direktabbil
dungs-Cache-Speicher. Die Eingangsadreßmarkierungen werden
gleichzeitig mit den Markierungsbits in dem primären Cache-
Speicher sowie in dem sekundären Cache-Speicher verglichen.
Falls dieser Vergleich einen Datenfehler in dem primären
Cache-Speicher und einen Treffer in dem sekundären Cache-
Speicher liefert, werden die sekundären Cache-Speicher-Daten
dem Mikroprozessor bei dem nächsten Maschinenzyklus zuge
führt, wodurch ein Hauptspeicherzugriff unnötig wird. Die
Erfindung ermöglicht ein direktes Lesen von Daten von dem
zweiten Cache-Speicher ohne Verwendung eines zusätzlichen
Maschinenzyklus, um Daten zuerst in den Direktabbildungs-
Cache-Speicher zu laden. Vorzugsweise wird die Erfindung in
einem einzigen VLSI-Chip implementiert. Mit anderen Worten
umfaßt der sekundäre Cache-Speicher einen Datenfehler-Ca
che-Speicher, der von dem Hauptspeicher mit Daten geladen
wird, welche nicht in einer Anforderung oder Anfrage an den
primären Cache-Speicher gefunden werden.
Bei einem alternativen Ausführungsbeispiel umfaßt der sekun
däre Cache-Speicher einen Opfer-Speicher, welcher mit der
Opfer-Zeile des primären Cache-Speichers geladen wird. Eine
Opfer-Zeile des primären Cache-Speichers ist eine Zeile, die
nach dem Laden fehlender Daten von dem Hauptspeicher in den
primären Cache-Speicher ersetzt wird.
Bei einem anderen abweichenden Ausführungsbeispiel schafft
die Erfindung einen Befehls-Cache-Speicher mit einem 2-stu
figen Vorweghol-Mechanismus, der eine Wirksame Verarbeitung
von Verzweigungs-Befehlen ermöglicht, ohne daß ein Zugriff
auf den Hauptspeicher erforderlich ist, um die Befehle bei
dem Verzweigungsziel zu laden.
Bevorzugte Ausführungsbeispiele der Erfindung werden
nachfolgend unter Bezugnahme auf die beiliegenden Zeich
nungen näher erläutert. Es zeigen:
Fig. 1 ein Blockdiagramm von Elementen bei einem bekannten
Direktabbildungs-Cache-Speicher;
Fig. 2 ein Blockdiagramm von Elementen eines integrierten
Direktabbildungs-Primär-Cache-Speicher und voll
ständig assoziativen sekundären Cache-Speicher-
System gemäß der vorliegenden Erfindung;
Fig. 3 ein detaillierteres Strukturdiagramm des primären
und sekundären Cache-Speichers gemäß Fig. 2;
Fig. 4 ein Blockdiagramm einer abweichenden Ausführungs
form gemäß Fig. 2 in der Organisationsform eines
Befehls-Cache-Speichers; und
Fig. 5 ein detaillierteres strukturelles Diagramm einer
Mehrzahl von Scheiben des Befehls-Cache-Speichers
gemäß Fig. 4.
Die nachfolgende detaillierte Beschreibung der bevorzugten
Ausführungsbeispiele verwendet eine sehr spezielle Termino
logie aus Gründen der Klarheit. Jedoch ist die Erfindung
nicht auf die speziellen verwendeten technischen Begriffe
beschränkt, sondern umfaßt sämtliche technische Äquivalente,
die in einer im wesentlichen ähnlichen Art zur Erreichung im
wesentlichen ähnlicher Ziele arbeiten.
Ein Blockdiagramm eines Ausführungsbeispieles der Erfindung
in Form eines Daten-Cache-Speichers ist in Fig. 2 darge
stellt. Dieses Diagramm zeigt eine mögliche "Grundrißdar
stellung" der Anordnung der Elemente gemäß der Erfindung auf
einem Halbleiterwafer oder Halbleiterchip. Ein primärer
Cache-Datenspeicher 100 bildet das Herz des Systems. Der
primäre Datenspeicher 100 besteht vorzugsweise aus konven
tionellen statischen RAM-Zellen (SRAM-Zellen), die in Form
eines zweidimensionalen Feldes angeordnet sind. Eine Achse
des Feldes umfaßt eine Mehrzahl von Datenbitleitungen 112,
die jeweils mit einer Busschnittstellenlogik 150 verbunden
ist, welche ihrerseits mit einem Datenbus 160 des Mikro
prozessors verbunden ist. Wie dies an sich im Stand der
Technik bekannt ist, umfaßt die Schnittstellenlogik 150
Leseverstärker zum Lesen der Inhalte des Speichers 100, eine
Schreiblogik zum Senden von Schreibsignalen an Zellen des
Speichers 100, Bustreiber und Datentreiber zum Puffern und
Verstärken der Ausgangssignale von dem Speicher an den
Datenbus 160. Die Komponenten der Schnittstellenschaltung
150 sind an sich im Stand der Technik bekannt.
Der primäre Cache-Speicher ist als Direktabbildungs-Cache-
Speicher (Direct-Mapped-Cache) ausgebildet, auf den
zugegriffen wird, indem eine Adresse 116 der Adreßdekoder
logik 140 zugeführt wird. Wie oben unter Bezugnahme auf Fig.
1 diskutiert worden ist, liefert die Dekoderlogik nieder
wertige Adreßbits an den primären Speicher 100 und Markie
rungsadreßbits an die Komparatoren innerhalb der Schnitt
stellenschaltung 150. Jedoch umfaßt das Ausführungsbeispiel
gemäß Fig. 2 gleichfalls einen sekundären Cache-Speicher
110, der oberhalb oder neben dem primären Speicher 100 auf
gebaut ist. Vorzugsweise ist der sekundäre Cache-Speicher
als ein kleiner Voll-assoziativer Puffer aufgebaut, welcher
vorzugsweise vier bis acht Zeilen speichern kann. Selbst
verständlich kann die Anzahl der Zeilen des sekundären
Cache-Speichers in Abhängigkeit von dem Anwendungsfall
variiert werden. Die Speicherzellen des sekundären Cache-
Speichers sind vorzugsweise bezüglich ihrer Struktur zu den
Zellen des primären Cache-Speichers identisch. Ein voll
ständig assoziativer Komparator 120 oder eine Vergleichs
logik ist mit den Speicherzellen des sekundären Cache-Spei
chers mittels einer Mehrzahl von Übereinstimmungs-Leitungen
gekoppelt, welche durch den Pfeil 122 dargestellt sind. In
einem ersten Verarbeitungszyklus verwendet die Vergleichs
logik CAM-Zellen (CAM = conent addressable memory = In
halts-adressierbarer Speicher) zum Vergleich der virtuellen
oder physikalischen eingangsseitigen Adresse 124 mit den in
jeder CAM-Zelle gespeicherten Adresse. Falls eine Überein
stimmung besteht, wird die Übereinstimmungsleitung für den
entsprechenden Eintrag aktiviert. Wenn daraufhin der Direkt
abbildungs-Cache-Speicher 100 eine Datenfehlmeldung abgibt,
wird bei einem zweiten Maschinenzyklus des Systems ein
Datenfehleingang 118, der mit dem sekundären Cache-Speicher
gekoppelt ist, aktiviert. Dies bewirkt, daß die Überein
stimmungsleitung des sekundären Cache-Speichers eine Wort
leitung (nicht dargestellt) des sekundären Cache-Speichers
treibt, wodurch es zu einer Datenausgabe von dem sekundären
Cache-Speicher kommt. Ausgangsdaten von dem sekundären
Cache-Speicher werden auf die Bit-Leitungen 112 gesetzt und
daraufhin auf den Datenbus 160 übertragen, indem die gleiche
Lese-Busschnittstellenlogik 150 verwendet wird, welche ver
wendet worden ist, wenn ein Treffer innerhalb des Direkt
abbildungs-Cache-Speichers auftrat.
Fig. 3 zeigt die logische Verknüpfung der Elemente gemäß
Fig. 2. In Fig. 3 sind der sekundäre Cache-Speicher 110 und
der primäre Cache-Speicher bzw. Direktabbildungs-Cache-Spei
cher 100 jeweils mit einem einzigen Adreßeingang 124 ver
bunden. Nach dem Dekodieren durch einen Adreßdekoder (nicht
dargestellt) hat die dekodierte Adresse drei logische Kom
ponenten: die Markierungsbits 302; eine Zeilenzahl 304 und
einen Verschiebungswert 306. Der Direktabbildungs-Cache-
Speicher 100 hat eine Markierungsliste 330 und eine Mehrzahl
von Datenleitungen 332. Die Markierungsbits des Adreßein
ganges werden über eine Leitung 302A einem Komparator 336
zugeführt. Die Zeilenzahl wird auf eine Leitung 304A zu der
Markierungsliste gegeben. Wie dies an sich im Stand der
Technik bekannt ist, ist es bei einem Direktabbildungs-
Cache-Speicher mit dieser Struktur möglich, daß die Zeilen
zahl eine diskrete Markierung 334 aus der Markierungsliste
auswählt. Diese diskrete Markierung wird dem Komparator zu
geführt. Falls eine Übereinstimmung zwischen der diskreten
Markierung und den Markierungsbits besteht, triggert der
Komparator eine Auswahlschaltung 338, um einen Datenposten
340 von einer der Datenleitungen 332 aufzunehmen. Der Daten
posten kann unter Verwendung des Verschiebungswertes 306 als
ein Versatz von dem Beginn der ausgewählten Zeile ausgewählt
werden. Der Datenposten wird dann auf eine Datenausgangs
leitung 342 zur Übertragung an eine arrithmetische/logische
Einheit (ALU) eines Mikroprozessors oder eines anderen
Teiles des Mikroprozessors gegeben.
Falls keine Übereinstimmung durch den Komparator gefunden
wird, erzeugt dieser ein Datenfehlsignal auf der Leitung
345. Dieses Signal kann einem Inverter 344 zugeführt werden,
um eine Datenfehlmeldungs-Signalleitung in einen logisch
hohen Zustand zu treiben. Ebenfalls treibt dieses Daten
fehlsignal eine Datenfehlaktivierungsschaltung 356, damit
der Mikroprozessor Daten von dem sekundären Cache-Speicher
liest. Diese Datenfehlaktivierungsschaltung ist mit dem
zweiten Cache-Speicher durch eine an sich bekannte Einrich
tung verbunden.
Der Zugriff auf den zweiten Cache-Speicher 110 erfolgt
mittels einer vollständig assoziativen Logik zum gleich
zeitigen Vergleichen der Markierungsbits mit sämtlichen
Markierungen eines kleinen Leitungssatzes. Bei dem in Fig. 3
gezeigten Ausführungsbeispiel sind drei Markierungspaare
(TAG1, TAG2, . . . TAGn) und Leitungspaare gezeigt, jedoch
kann eine beliebige Anzahl von Paaren von Markierungen und
Leitungen verwendet werden. Somit wird der sekundäre Cache-
Speicher 110 aus einer Mehrzahl von Markierungen, Leitungen
und Verbindungsschaltungen im Gegensatz zu der zweidimen
sionalen Feldanordnung gebildet, welche für den Direktab
bildungs-Cache-Speicher 100 verwendet wird. Wie dies im
Stand der Technik an sich bekannt ist, führt die Erhöhung
der Anzahl von Paaren von Markierungen und Leitungen nicht
zu einer Verminderung der Verarbeitungszeit und zu einer
Erhöhung der Verlustleistung. In der Figur sind Bezugs
zeichen lediglich für eine Markierung 308 und eine Leitung
310 gezeichnet, wobei die gleichen Teile die weiteren Paare
von Markierungen und Leitungen bilden.
Um den sekundären Cache-Speicher zu adressieren, werden die
Markierungs-Bits auf der Leitung 302D mit dem Komparator 316
und gleichfalls mit jedem weiteren Komparator verbunden, der
jedem anderen Paar von Markierungen und Leitungen zugeordnet
ist. Wie dies im Stand der Technik bekannt ist, vergleichen
bei einem vollständig assoziativen System sämtliche Kompa
ratoren gleichzeitig die Markierungs-Bits mit der Markie
rung, welche dem Komparator zugeordnet ist. Daher vergleicht
der Komparator 316 die Markierung 308 mit den Markierungs-
Bits zu derselben Zeit, zu der die anderen Komparatoren
einen Vergleich durchführen. Falls ein Treffer auftritt (und
falls die Datenfehlaktivierungsschaltung 356 den zweiten
Cache-Speicher nach einer Datenfehlmeldung durch den Di
rektabbildungs-Cache-Speicher aktiviert hat) triggert der
Komparator eine Auswahlschaltung 318, die ein Datenelement
314 von der Leitung 310 holt. Da mehrere Komparatoren
gleichzeitig einen Vergleich ausführen, kann jeder der
Komparatoren gemäß Fig. 3 einen Treffer berichten und Aus
gangsdatenelemente liefern. Das Datenelement kann unter Ver
wendung des Verschiebungswertes als Versatz 312 gegenüber
dem Start der Zeile ausgewählt werden. Das Datenelement wird
durch die Auswahlschaltung zu der Datenausgangsleitung 320
zur Verwendung durch den Mikrocomputer zugeführt.
Falls eine Datenfehlmeldung auftritt, aktiviert der Kompara
tor eine Datenfehlmeldungsleitung 348, die mit den anderen
Datenfehlmeldungsleitungen an ein NOR-Gatter mit drei Ein
gängen gekoppelt ist. Falls sämtliche Datenfehlmeldungs
leitungen aktiviert sind, aktiviert das Gatter eine Aus
gangsdatenfehlmeldungsleitung 324, um dem Mikroprozessor
mitzuteilen, daß keine Markierungsübereinstimmung in dem
sekundären Cache-Speicher gefunden worden ist.
Die Datenfehlsignale sowohl von dem direkten Cache-Speicher
als auch von dem sekundären Cache-Speicher werden auf pri
märe und sekundäre Datenfehl-Ausgangsleitungen 354, 350 ge
koppelt und einem UND-Gatter 352 zugeführt. Wenn daher beide
Datenfehlausgangsleitungen 350, 354 gesetzt sind, setzt das
UND-Gatter ein globales Datenfehlausgangssignal, um der CPU
zu übermitteln, daß ein Datenfehlzustand sowohl in dem di
rekten Cache-Speicher wie auch in dem sekundären Cache-
Speicher aufgetreten ist, so daß ein Zugriff auf den Haupt
speicher erforderlich ist.
Während des Betriebes ermöglicht diese Schaltungsarchitektur
ein Wiedergewinnen von Daten oder Befehlen entweder von dem
Direktabbildungs-Cache-Speicher oder von dem sekundären
Cache-Speicher während einer maximalen Zeitdauer von zwei
Maschinenzyklen aufgrund folgender Schritte: um auf einen
gegebenen Markierungsort Bezug zu nehmen, wird in einem
ersten Maschinenzyklus auf die Markierungsliste 330 des
direkten Cache-Speichers Zugriff genommen, um zu ermitteln,
ob ein Treffer innerhalb des Direktabbildungs-Cache-Spei
chers vorliegt. Bei einem physikalisch markierten Cache-
Speicher wird bei diesem Schritt gleichfalls auf den Mar
kierungszeilenpuffer zugegriffen. Falls hier ein Treffer
auftritt, werden die Daten von dem Direktabbildungs-Cache-
Speicher innerhalb desselben ersten Maschinenzyklus ausge
lesen.
Falls eine Datenfehlmeldung auftritt, wird in dem zweiten
Maschinenzyklus der sekundäre Cache-Speicher gelesen, falls
ein Treffer innerhalb des sekundären Cache-Speichers ver
zeichnet werden kann. Erfindungsgemäß wird eine assoziative
Vergleichsoperation zum Vergleich der Cache-Markierung des
zweiten Cache-Speichers innerhalb des ersten Maschinenzyklus
durchgeführt, wobei dies gleichzeitig mit dem Direktabbil
dungsvergleich durchgeführt wird, der für den Zugriff auf
den Direktabbildungs-Cache-Speicher verwendet wird. Der
Komparator 316 ist gleichzeitig mit dem Komparator 336
aktiv. Daher werden sowohl der direkte Cache-Speicher als
auch der sekundäre Cache-Speicher gleichzeitig während des
ersten Maschinenzyklus getestet. Falls ein Treffer in dem
direkten Cache-Speicher erzielt wird, werden Daten in dem
gleichen ersten Maschinenzyklus ausgelesen. Falls eine Da
tenfehlmeldung in dem direkten Cache-Speicher auftritt und
ein Treffer in dem zweiten Cache-Speicher während des ersten
Maschinenzyklus auftritt, werden in einem zweiten Zyklus
Daten von dem sekundären Cache-Speicher gelesen. Die Lese
operation des sekundären Cache-Speichers verwendet die
gleichen Bit-Leitungen, Leseverstärker und den gleichen
Datenbus wie der Direktabbildungs-Cache-Speicher.
Der sekundäre Cache-Speicher kann einen Opfer-Cache-Speicher
oder einen Datenfehl-Cache-Speicher umfassen. Die Differenz
zwischen diesen Speichern liegt darin, auf welche Weise die
Cache-Speicher auf den neuesten Stand gebracht werden.
Falls ein Opfer-Cache-Speicher verwendet wird, wird eine
Opfer-Zeile in dem direkten Cache-Speicher, die aufgrund
einer Datenfehlmeldung in dem direkten Cache-Speicher zu
ersetzen ist, in den Opfer-Cache-Speicher kopiert und inner
halb des direkten Cache-Speichers durch eine neue Zeile aus
dem Hauptspeicher ersetzt. Bei einem Datenfehl-Cache-Spei
cher wird die Zeile von dem Hauptspeicher bei einer Daten
fehlmeldung gleichzeitig in den Datenfehl-Cache-Speicher und
in den direkten Cache-Speicher eingeschrieben oder einge
speichert.
Falls eine gegebene Zeile in dem sekundären Cache-Speicher
einen Treffer erzeugt, kann sie entweder direkt von dem
sekundären Cache-Speicher gelesen werden oder in Abweichung
hiervon in den Direktabbildungs-Cache-Speicher geladen
werden und daraufhin gelesen werden. Der erste Fall erfor
dert zwei Maschinenzyklen, um für jeden Cache-Speicherzu
griff, der zu einem Treffer führt, Daten in den sekundären
Cache-Speicher zu lesen. Jedoch wird im Gegensatz zu bekann
ten Systemen kein Nachteil bei der Übertragung einer Cache-
Zeile von dem sekundären Cache-Speicher in den Direktabbil
dungs-Cache-Speicher in Kauf genommen.
In dem zweitgenannten Fall kann ein das Alter oder die Ver
wendung überwachender Mechanismus, wie beispielsweise ein
Zähler, verwendet werden, um die Anzahl der Zugriffe auf
eine Zeile in dem sekundären Cache-Speicher zu überwachen.
Falls diese Anzahl einen voreingestellten Wert überschrei
tet, kann die Zeile in den direkten Cache-Speicher für zu
künftige Direkt-Cache-Speicher-Zugriffe geladen werden. In
diesem Fall wird die Zeile, die in den Direktabbildungs-
Cache-Speicher zu übertragen ist, lediglich mittels eines
Zugriffes in einem Zyklus erfaßt, wobei jedoch zwei darüber
hinausgehende Zyklen für die Übertragung der Zeile benötigt
werden. Ein Zyklus ist in diesem Fall für das Lesen der
Zeile von dem sekundären Cache-Speicher in den Datenpuffer
erforderlich, während der andere Zyklus benötigt wird, um
diese Zeile zurück in den Direkt-Cache-Speicher zu schrei
ben. Wenn jedoch einmal die Zeile von dem sekundären Cache-
Speicher gelesen worden ist, kann sie zu der CPU weiterge
leitet werden, sobald sie verfügbar ist.
Der Erfindungsgegenstand kann bei Befehls-Cache-Speichern
und bei Daten-Cache-Speichern ebenso wie bei einheitlichen
Cache-Speichern angewandt werden, die sowohl Befehle als
auch Daten speichern. Die Erfindung arbeitet sowohl für
Opfer-Cache-Speicher als auch für Datenfehl-Cache-Speicher.
Der einzige Unterschied liegt darin, auf welche Art und
Weise die Zeilen in den Cache-Speichern ersetzt werden.
Ferner kann die Erfindung bei Vielfach-Tor-Cache-Speichern
eingesetzt werden.
Ein Ausführungsbeispiel eines Befehls-Cache-Speichers ist in
den Fig. 4 und 5 gezeigt. Dieses Ausführungsbeispiel schafft
einen effizienten Befehls-Cache-Speicher mit einem inte
grierten Befehlspuffer (IB), einem Verzweigungszielpuffer
(BTB), einem Opfer-Cache-Speicher (VC) auf einem einzigen
hochintegrierten Schaltungschip (VLSI-Chip). Die Hardware
ermöglicht eine Vorzugriffsverarbeitung, bei der der In
struktionspuffer oder der Verzweigungszielpuffer von dem
Befehls-Cache-Speicher gefüllt werden können, während Be
fehle von dem Befehlspuffer oder von dem Verzweigungsziel
puffer an den Mikroprozessor abgegeben werden.
Bei einem abweichenden betrachteten Ausführungsbeispiel kann
der Befehls-Cache-Speicher gemäß den Fig. 4 und 5 als
Cache-Speicher eines ersten Niveaus in einem System mit
einem Cache-Speicher eines zweiten Niveaus verwendet werden.
In einem derartigen Ausführungsbeispiel ermöglicht die
Hardware ein Vorabgreifen vom Niveau zwei auf das Niveau
eins, während die Befehle weiterhin von dem Befehlspuffer
oder dem Verzweigungszielpuffer erzeugt werden. Die Verwen
dung des Verzweigungszielpuffers kann Verzögerungen bei der
Verarbeitung von Verzweigungsbefehlen vermeiden. Dessen
Integration in der gleichen Befehls-Cache-Speicherstruktur
erfordert eine geringere Oberfläche und ermöglicht eine
schnellere Zykluszeit verglichen mit einem Fall, bei dem
getrennte Befehlspuffer/Verzweigungszielpuffer-Strukturen
verwendet werden. Diese Struktur kann gleichfalls mit einem
eingebetteten sekundären Cache-Speicher bei minimaler zu
sätzlicher Fläche implementiert werden.
Fig. 4 zeigt die gesamte Schaltungsarchitektur eines Aus
führungsbeispieles der Erfindung bezüglich eines Befehls-
Cache-Puffers. Dieses Ausführungsbeispiel liefert zwei ge
trennte Befehlsbusse, nämlich einen Lesebefehlsbus 294 und
einen Schreibbefehlsbus 210. Die Trennung der Lese- und
Schreib-Funktionen ermöglicht die gleichzeitige Erzeugung
von Befehlen von dem Befehlspuffer oder von dem Verzwei
gungszielpuffer zum Lesen der Befehlsbusse, während der
Befehls-Cache-Speicher ein Vorabergreifen von Befehlen von
dem Cache-Speicher des Niveaus zwei oder von dem Haupt
speicher zu dem Schreib-Befehls-Bus durchführt.
Die Schaltungen, die zwischen dem Schreib-Befehls-Bus und
dem Lese-Befehls-Bus angeordnet sind, sind von ihrer Struk
tur her ähnlich verglichen mit dem Ausführungsbeispiel des
Daten-Cache-Speichers gemäß den Fig. 2 und 3. Eine Eingangs
adresse 224 wird über einen ersten Adreßdekoder 240 an einen
primären Befehls-Cache-Speicher 200 angelegt, der als zwei
dimensionales Feld von Paaren von Markierungs- und Daten-
Leitungen aufgebaut sein kann. Ein sekundärer Befehls-Ca
che-Speicher 230 ist an den primären Befehls-Cache-Speicher
und an den Schreib-Befehls-Bus über eine Vergleichslogik 220
angekoppelt. Eine Mehrzahl von Übereinstimmungsleitungen 225
verbinden die Vergleichslogik mit den Speicherzellen in dem
sekundären Befehls-Cache-Speicher. Der primäre und der se
kundäre Befehls-Cache-Speicher teilen sich vorzugsweise die
gleichen Leseverstärker 250, Treiber 290 und den Vertei
lungsmultiplexer 292. Daher ermöglichen auf eine ähnliche
Weise wie bei dem Daten-Cache-Speicher-Verarbeitungssystem,
welches bereits beschrieben wurde, diese geteilten Komponen
ten, daß der Cache-Speicher einen Vergleich vornimmt und
Befehle zwischen den primären und sekundären Befehls- und
Cache-Speichern überträgt, wobei ein einziger Maschinen
zyklus verwendet wird.
Zwei Befehlspuffer 270, 280 sind zwischen den Leseverstär
kern 250 und den Bustreibern 290 angeordnet. Der Verzwei
gungszielpuffer (BTB) 270, der nachfolgend detailliert er
läutert wird, liefert Speicherraum für Zielbefehle, die auf
eine Verzweigung folgen. Daher ermöglicht der Verzweigungs
zielpuffer (BTB), daß der Mikroprozessor Befehle logisch vor
der tatsächlichen Ausführung speichert, so daß zukünftige
Befehle für eine unmittelbare Verarbeitung vorbereitet sind,
sobald ein Verzweigungsbefehl ausgeführt wird. Ein Befehls
puffer (IB) 280 liefert einen sog. Notizblockspeicher bzw.
schnellen Hilfsspeicher für andere zukünftige Befehle. So
wohl der Befehlspuffer als auch der Verzweigungszielpuffer
sind mit der Adresse 224 über einen zweiten Adreßdekoder 260
verbunden. Die interne Struktur einer jeder dieser Kompo
nenten ist an sich bekannt im Stand der Technik.
Bei einem abweichenden Ausführungsbeispiel sind die Ver
gleichslogik und der sekundäre Befehls-Cache-Speicher fort
gelassen. Bei der Operation eines derartigen Ausführungs
beispieles nimmt der Befehlspuffer kontinuierlich vorab Be
fehle von dem Befehls-Cache-Speicher auf, bis der Befehls
puffer voll ist. Die Befehle innerhalb des Befehlspuffers
werden dann für die unmittelbare Übertragung an den Be
fehlslesebus übertragen, wenn der Mikroprozessor den
nächsten Befehl anfordert. Der Befehlspuffer selbst spei
chert vorzugsweise wenigstens zwei Befehle und wird durch
eine FIFO-Warteschlange gebildet. Der Befehlsspeicher er
zeugt Befehle von dem Kopf der Warteschlange, welcher an den
Befehlslesebus weitergegeben werden.
Der Befehlspuffer überprüft die jetzt noch nicht an den
Mikroprozessor weitergeleiteten zukünftigen Befehle. Falls
der Befehlspuffer feststellt, daß nunmehr ein Verzweigungs
befehl auszuführen ist, schaltet eine externe Cache-Spei
cher-Steuerung (nicht dargestellt) auf einen Vorabgriff um,
um auf die Befehle nach der Verzweigung zuzugreifen. Diese
Befehle werden dann in den Verzweigungszielspeicher geladen.
Der Verzweigungszielspeicher ist gleichfalls als FIFO-Warte
schlange implementiert und speichert die Zielbefehle nach
einer Verzweigung. Falls der Verzweigungsbefehl ausgeführt
wird und die Verzweigung tatsächlich genommen wird, werden
die nachfolgenden Befehle von dem Verzweigungszielpuffer zum
Befehlslesebus weitergeleitet. Wenn der Verzweigungsziel
puffer Befehle erzeugt, kann der Befehlspuffer einen Vorab
griff auf die Befehle durchführen, falls der Verzweigungs
zielpuffer einen Verzweigungsbefehl identifiziert. Daher
können der Befehlspuffer und der Verzweigungszielpuffer bei
jeder Verzweigung die Rollen vertauschen.
Vorzugsweise ist die Wortgröße des von dem Befehls-Cache-
Speicher in den Befehlspuffer und in den Verzweigungsziel
puffer eingebrachten Wortes mehr als einen Befehl lang. Da
her können mehrere Befehle gleichzeitig durch Vorabgriff von
dem Befehls-Cache-Speicher zu dem Befehlsspeicher oder zu
dem Verzweigungszielspeicher übertragen werden.
Bei einem abweichenden Ausführungsbeispiel hat die externe
Cache-Speicher-Steuerung eine Einrichtung zum Durchführen
des Vorabgriffs auf Befehle, um diese von einem externen
Befehls-Cache-Speicher des zweiten Niveaus in einen primären
Befehls-Cache-Speicher zu übertragen. Der externe Befehls-
Cache-Speicher des zweiten Niveaus unterscheidet sich von
dem nachfolgend diktierten sekundären Befehls-Cache-Spei
cher. Vorzugsweise ist der externe Befehls-Cache-Speicher
des zweiten Niveaus in seiner Struktur identisch zu dem
primären Befehls-Cache-Speicher und an diesen unter Verwen
dung einer geeigneten kaskadierenden Logik angeschlossen.
Vorzugsweise wird bei Auftreten einer Datenfehlmeldung des
primären Befehls-Cache-Speichers während eines Vorabgreifens
von dem primären Befehls-Cache-Speicher in den Befehlspuffer
oder in den Verzweigungszielpuffer die Cache-Steuerung einen
Befehl von dem Befehls-Cache-Speicher des zweiten Niveaus in
den primären Cache-Speicher vorab übertragen. Daher liefert
das Ausführungsbeispiel gemäß Fig. 4 eine Befehls-Cache-
Speicherstruktur mit zwei Pegeln, bei dem ein Vorabzugriff
von dem Befehls-Cache-Speicher des zweiten Niveaus zu dem
Befehls-Cache-Speicher des ersten Niveaus weitergeschoben
werden kann. Dieses hilft dabei, Verzögerungen zu maskieren,
die während des Befehls-Cache-Speicherzugriffes des zweiten
Niveaus auftreten, da der Befehlspuffer oder Verzweigungs
zielpuffer Befehle erzeugen können, bis der fehlende Befehl
tatsächlich an dem Kopf der Warteschlange ankommt.
Der Verteilungsmultiplexer, der an dem Fuß des Cache-Spei
chers gezeigt ist, erzeugt einen Befehl nach dem anderen von
dem Befehlspuffer mit mehrfacher Befehlsbreite oder von dem
Verzweigungszielpuffer. Hierdurch wird gewährleistet, daß
die von dem Cache-System erzeugten Befehle mit der Befehls
länge des Mikroprozessors zusammenpassen.
Bei einem Ausführungsbeispiel umfaßt der sekundäre Cache-
Speicher einen Opfer-Cache-Speicher oder einen Datenfehl-
Cache-Speicher, welcher in der Befehls-Cache-Speicherstruk
tur eingebettet ist. Vorzugsweise umfaßt der sekundäre
Cache-Speicher einen kleinen, vollständig assoziativen Puf
fer, der oben unter Bezugnahme auf die Fig. 2 und 3 be
schrieben ist. Die Vergleichslogik 220 des sekundären Ca
che-Puffers kann am oberen Ende der sekundären Cache-Spei
cherfeldanordnung angeordnet werden. Die Übereinstimmungs
leitungen 225 von der Vergleichslogik werden in das sekundä
re Cache-Speicherfeld geführt, um dessen Wortleitungen zu
treiben. Die sekundären Cache-Speicherfeldzellen (nicht
dargestellt) sind vorzugsweise sämtlich identisch zu den
Befehls-Cache-Speicherzellen. Die Befehls-Cache-Zellen sind
vorzugsweise SRAM-Zellen mit jeweils vier oder sechs Tran
sistoren pro Zelle.
Details des Befehls-Cache-Speichers sind in Fig. 5 gezeigt.
Fachleute erkennen, daß Fig. 5 eine Mehrzahl von parallelen,
identisch aufgebauten Scheiben eines kompletten Befehls-
Cache-Speichersystemes zeigt. Beispielsweise zeigt Fig. 5
von oben nach unten jeweils nur eine exemplarische Vor
richtung einer jeden Komponententype. Jedoch umfaßt ein
kompletter Befehls-Cache-Speicher, der in Silizium imple
mentiert ist, eine Mehrzahl von Seite an Seite nebeneinander
angeordneten Scheiben, die identisch zu der beispielshaften
Scheibe gemäß Fig. 5 sind.
Die obere Hälfte einer Befehls-Cache-Speicher-Scheibe umfaßt
den Schreibbefehlbus, Schreibtreiber, eine Vorladelogik,
eine zugeordnete Vergleichslogik, Opfer-Cache-Speicher-Zel
len, Befehls-Cache-Speicher-Zellen und einen Leseverstärker.
Die untere Hälfte enthält Befehlspufferzellen, Verzwei
gungszielpufferzellen, Lesetreiber, einen Verteilermulti
plexer sowie einen Lesebefehlsbus.
Der Schreibbefehlsbus 210 ist in Fig. 5 durch einen Pfeil
verdeutlicht, der sich von der in Fig. 5 gezeigten Scheibe
zu benachbarten, identischen Scheiben erstreckt. Der
Schreibbefehlsbus 210 ist an einen Schreibtreiberabschnitt
212 mit einer Mehrzahl von Schreibtreibern 213 angeschlos
sen. Die Ausgänge der Schreibtreiber 213 werden durch zwei
parallele Bit-Leitungen gebildet, die als Bit-Leitung 214
und als Nicht-Bit-Leitung 216 bezeichnet sind. Fachleute
erkennen, daß die Bit-Leitung 214 und die Nicht-Bit-Leitung
216 mit entgegengesetzten logischen Pegeln arbeiten. Die
Bit-Leitungen sind durch einen Vorladelogikabschnitt an das
primäre und sekundäre Cache-Speicher-Feld angeschlossen. Wie
an sich im Stand der Technik bekannt ist, speichern diese
Abschnitte Befehle auf den Schreib-Befehls-Bus für den pri
mären und/oder sekundären Befehls-Cache-Speicher.
Direkt an die Vergleichslogik 220 ist eine beispielshafte
sekundäre Cache-Speicherzelle 232 eines sekundären Cache-
Speichers 230 angeschlossen. Die Speicherzelle liefert ein
Datenausgangssignal auf eine sekundäre Cache-Wortleitung
234. Wie gezeigt ist, erstreckt sich die Wortleitung 234 in
benachbarte Speicherzellen wie ein Bus, um eine Übertragung
von Befehlsworten von jeglichen Speicherzellen zu ermögli
chen.
An die gleiche Bit-Leitung und an die Nicht-Bit-Leitung sind
eine Mehrzahl von primären Befehls-Cache-Zellen 206, 208
angeschlossen. Die Befehls-Cache-Zellen 206, 208 liefern
Ausgangssignale auf Wortleitungen 202, 204. Am unteren Ende
der oberen Hälfte des Befehls-Cache-Speichers gemäß Fig. 5
sind die Bit-Leitungen 214, 216 an einen Leseverstärker (SA)
250 angeschlossen, welcher ausgangsseitige Daten auf eine
Schreibdatenleitung 252 liefert. Die innere Bauweise dieser
Komponenten ist im Stand der Technik bekannt.
Die Schreibdatenleitung 252 ist an einen Befehlspuffer 280
am oberen Ende der unteren Hälfte der Befehls-Cache-Spei
cherstruktur gemäß Fig. 5 angeschlossen. Zwei beispielshafte
Befehlspufferzellen 280A, 280B sind dargestellt, von denen
eine jede als ein Element einer FIFO-Warteschlange in an
sich bekannter Art aufgebaut ist. Die Zelle 280A wird von
einer Lesewortleitung (Leseadreßleitung) 282 und einer
Schreibwortleitung (Schreibadreßleitung) 284 adressiert,
während die Zelle 280B von einer Lesewortleitung 286 und
einer Schreibwortleitung 288 adressiert wird. Die vertikalen
Schreib- und Lese-Datenleitungen 272, 274 verbinden die Zel
len 280A, 280B miteinander und mit dem Verzweigungszielpuf
fer 270.
Zwei beispielshafte Verzweigungszielzellen 270A, 270B sind
in Fig. 5 gezeigt. Jede Zelle 270A, 270B ist als ein Element
einer FIFO-Warteschlange in einer an sich bekannten Art auf
gebaut. Die Zelle 270A wird mittels einer Schreibwortleitung
276 und einer Lesewortleitung 278 adressiert. Die Zelle 270B
wird mit einer Schreibwortleitung 292 und einer Lesewortlei
tung 294 adressiert. Die Zellen 270A, 270B sind miteinander
durch Datenleitungen oder Bit-Leitungen 272, 274 verbunden.
Das oberste Ende der Bit-Leitung 274 ist in einer an sich
bekannten Art durch einen NMOS-Transistor 296 an einen Vor
ladetakt 298 angeschlossen. Diese Struktur ermöglicht die
Vorladung der Bit-Leitungen vor dem Lesen oder Schreiben der
Zellen.
Ausgabedaten, die von den Zellen 270A, 270B, 280A, 280B
gelesen werden, werden dem Lesetreiberabschnitt 290 auf
einer Leseausgangsleitung 291 zugeführt. Das Ausgangssignal
wird in dem Lesetreiberabschnitt verstärkt und zu einem
Verteilermultiplexer 292 zugeführt, welcher gewährleistet,
daß ein Befehl nach dem anderen zu dem Lesebefehlsbus 294
zugeführt wird.
Die Vorteile der Erfindung bei Anwendung auf einen Daten-
Cache-Speicher umfassen die Effektivität unter Verwendung
eines Direktabbildungs-Cache-Speichers mit einem eingebette
ten Opfer/Datenfehl-Cache-Speicher, wobei das Durchgehen
verhindert wird, die Zykluszeit verbessert wird, eine
niedrige Verlustleistung erzielt wird, eine hohe Flächen
ausnutzung und eine verminderte Empfindlichkeit gegenüber
dem Leseverstärkerschaltrauschen erzielt werden. Vorteile
der Erfindung bei Anwendung auf einen Befehls-Cache-Speicher
umfassen sämtliche der soeben genannten Vorteile und gleich
falls einen Befehls-Cache-Vorzugriffsmechanismus mit zwei
Niveaus sowie einen Vorzugriffsmechanismus zum Koppeln des
Befehls-Cache-Speichers mit dem Befehls-Puffer und dem
Verzweigungszielpuffer. Diese Verbesserungen führen zu einer
verkürzten Zykluszeit für den Cache-Speicherzugriff, zu er
höhten Trefferraten und einer minimalen Siliziumfläche.
Claims (10)
1. Cache-Speichersystem, mit einem direkt abbildenden
primären Cache-Speicher (100), gekennzeichnet durch
einen vollständig assoziativen sekundären Cache-Speicher (110);
eine Vergleichereinrichtung (336, 316), welche betätig bar ist, um innerhalb des primären und des sekundären Cache-Speichers (100, 110) jegliche Daten zu lokali sieren, auf die durch eine Eingangsadresse (124) Bezug genommen wird; und
eine Auswahleinrichtung (336, 318), die betätigbar ist, um jegliche Daten wiederzugewinnen, welche durch die Vergleichereinrichtung (336, 316) lokalisiert sind.
einen vollständig assoziativen sekundären Cache-Speicher (110);
eine Vergleichereinrichtung (336, 316), welche betätig bar ist, um innerhalb des primären und des sekundären Cache-Speichers (100, 110) jegliche Daten zu lokali sieren, auf die durch eine Eingangsadresse (124) Bezug genommen wird; und
eine Auswahleinrichtung (336, 318), die betätigbar ist, um jegliche Daten wiederzugewinnen, welche durch die Vergleichereinrichtung (336, 316) lokalisiert sind.
2. System nach Anspruch 1, dadurch gekennzeichnet,
daß die Vergleichereinrichtung (336) ein Datenfehler
signal erzeugt, falls der primäre Cache-Speicher (100)
keine Daten enthält, auf die durch die Eingangsadresse
(124) Bezug genommen wird.
3. System nach Anspruch 1 oder 2, dadurch gekennzeichnet,
daß die Auswahleinrichtung (318) betätigbar ist, um
Daten von dem sekundären Cache-Speicher (110) nur dann
wiederzuerlangen, wenn der primäre Cache-Speicher (100)
nicht irgendwelche Daten enthält, auf die durch die
Eingangsadresse (124) Bezug genommen werden.
4. System nach Anspruch 3, dadurch gekennzeichnet,
daß die Vergleichereinrichtung (336, 316) betätigbar ist, um Daten während eines Verarbeitungszyklus zu lo kalisieren, und
daß die Auswahleinrichtung (318) betätigbar ist, um Daten von dem sekundären Cache-Speicher (110) während eines nächsten Verarbeitungszyklus wiederzuerlangen.
daß die Vergleichereinrichtung (336, 316) betätigbar ist, um Daten während eines Verarbeitungszyklus zu lo kalisieren, und
daß die Auswahleinrichtung (318) betätigbar ist, um Daten von dem sekundären Cache-Speicher (110) während eines nächsten Verarbeitungszyklus wiederzuerlangen.
5. System nach Anspruch 3, dadurch gekennzeichnet,
daß die Vergleichereinrichtung (336, 316) betätigbar ist, um Daten während eines ersten Verarbeitungszyklus zu lokalisieren, und
daß die Auswahleinrichtung (338, 318) betätigbar ist, um jegliche Daten, auf die durch die Eingangsadresse (124) Bezug genommen wird, von dem primären Cache-Speicher (100) während des ersten Verarbeitungszyklus und von dem sekundären Cache-Speicher (110) während des zweiten Verarbeitungszyklus wiederzuerlangen.
daß die Vergleichereinrichtung (336, 316) betätigbar ist, um Daten während eines ersten Verarbeitungszyklus zu lokalisieren, und
daß die Auswahleinrichtung (338, 318) betätigbar ist, um jegliche Daten, auf die durch die Eingangsadresse (124) Bezug genommen wird, von dem primären Cache-Speicher (100) während des ersten Verarbeitungszyklus und von dem sekundären Cache-Speicher (110) während des zweiten Verarbeitungszyklus wiederzuerlangen.
6. System nach einem der Ansprüche 1 bis 5, dadurch ge
kennzeichnet,
daß der sekundäre Cache-Speicher (110) als Datenfehler- Cache-Speicher organisiert ist, und
daß das System ferner eine Einrichtung (150) zum Laden von Daten von dem Hauptspeicher simultan sowohl in den primären Cache-Speicher (100) als auch in den sekundären Cache-Speicher (110) umfaßt.
daß der sekundäre Cache-Speicher (110) als Datenfehler- Cache-Speicher organisiert ist, und
daß das System ferner eine Einrichtung (150) zum Laden von Daten von dem Hauptspeicher simultan sowohl in den primären Cache-Speicher (100) als auch in den sekundären Cache-Speicher (110) umfaßt.
7. System nach einem der Ansprüche 1 bis 5, dadurch ge
kennzeichnet,
daß der sekundäre Cache-Speicher als Opfer-Cache-Spei cher organisiert ist, und
daß das System ferner eine Einrichtung (150) zum Über tragen von Daten von dem primären Cache-Speicher (100) zu dem sekundären Cache-Speicher (110) umfaßt.
daß der sekundäre Cache-Speicher als Opfer-Cache-Spei cher organisiert ist, und
daß das System ferner eine Einrichtung (150) zum Über tragen von Daten von dem primären Cache-Speicher (100) zu dem sekundären Cache-Speicher (110) umfaßt.
8. System nach einem der Ansprüche 1 bis 7, gekennzeichnet
durch
einen Befehlspuffer (280), einen Verzweigungszielpuffer
(270) und eine Einrichtung, die auf einen Verzweigungs
befehl anspricht, um Befehle von den primären und se
kundären Cache-Speichern (100, 110; 200, 230) alternativ
in einen dieser Puffer zu laden.
9. Verfahren zum Wiedergewinnen von Daten aus einem
Cache-Speichersystem, gekennzeichnet durch folgende
Verfahrensschritte:
Erzeugen einer Eingangsadresse (124);
Überprüfen, ob die Eingangsadresse auf irgendwelche Daten Bezug nimmt, die in einem direkt abbildenden primären Cache-Speicher (100) und in einem vollständig assoziativen sekundären Cache-Speicher (110) gespeichert sind;
Wiedergewinnen jeglicher Daten, auf die durch die Ein gangsadresse Bezug genommen wird, von dem primären Cache-Speicher; und
Wiedergewinnen jeglicher Daten von dem sekundären Cache-Speicher, auf die durch die Eingangsadresse Bezug genommen wird, falls der primäre Cache-Speicher nicht irgendwelche derartige Daten enthält.
Erzeugen einer Eingangsadresse (124);
Überprüfen, ob die Eingangsadresse auf irgendwelche Daten Bezug nimmt, die in einem direkt abbildenden primären Cache-Speicher (100) und in einem vollständig assoziativen sekundären Cache-Speicher (110) gespeichert sind;
Wiedergewinnen jeglicher Daten, auf die durch die Ein gangsadresse Bezug genommen wird, von dem primären Cache-Speicher; und
Wiedergewinnen jeglicher Daten von dem sekundären Cache-Speicher, auf die durch die Eingangsadresse Bezug genommen wird, falls der primäre Cache-Speicher nicht irgendwelche derartige Daten enthält.
10. Verfahren nach Anspruch 9, dadurch gekennzeichnet,
daß der Prüfschritt während eines Verarbeitungszyklus ausgeführt wird, und
daß der Schritt des Wiedergewinnens von Daten von dem sekundären Cache-Speicher während des nächsten Verar beitungszyklus ausgeführt wird.
daß der Prüfschritt während eines Verarbeitungszyklus ausgeführt wird, und
daß der Schritt des Wiedergewinnens von Daten von dem sekundären Cache-Speicher während des nächsten Verar beitungszyklus ausgeführt wird.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US84290792A | 1992-02-27 | 1992-02-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE4306077A1 true DE4306077A1 (de) | 1993-09-02 |
Family
ID=25288537
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE4306077A Withdrawn DE4306077A1 (de) | 1992-02-27 | 1993-02-26 |
Country Status (3)
Country | Link |
---|---|
JP (1) | JPH0612323A (de) |
DE (1) | DE4306077A1 (de) |
GB (1) | GB2264577B (de) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5603004A (en) * | 1994-02-14 | 1997-02-11 | Hewlett-Packard Company | Method for decreasing time penalty resulting from a cache miss in a multi-level cache system |
KR0146059B1 (ko) * | 1995-04-11 | 1998-09-15 | 문정환 | 미참조 선인출 캐쉬를 이용한 명령어 선인출 방법 및 그 회로 |
JP3068469B2 (ja) | 1996-08-28 | 2000-07-24 | 新潟日本電気株式会社 | 2次レベルキャッシュメモリシステム |
US6085292A (en) * | 1997-06-05 | 2000-07-04 | Digital Equipment Corporation | Apparatus and method for providing non-blocking pipelined cache |
US6138208A (en) * | 1998-04-13 | 2000-10-24 | International Business Machines Corporation | Multiple level cache memory with overlapped L1 and L2 memory access |
TW451132B (en) | 1998-12-15 | 2001-08-21 | Nippon Electric Co | System and method for cache processing |
GB2465773A (en) | 2008-11-27 | 2010-06-02 | Symbian Software Ltd | Data Storage and Access |
WO2013148872A1 (en) * | 2012-03-28 | 2013-10-03 | Huawei Technologies Co., Ltd. | Concurrently accessed set associative overflow cache |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4110173A1 (de) * | 1990-03-30 | 1991-10-02 | Mitsubishi Electric Corp | Unterstuetzender cache-speicher fuer eine halbleiterspeichervorrichtung und verfahren zum betreiben eines solchen |
EP0457403A2 (de) * | 1990-05-18 | 1991-11-21 | Koninklijke Philips Electronics N.V. | Mehrstufiger Befehlscachespeicher, Verwendungsverfahren dafür, Verfahren zum Kompilieren von Befehlen unter Verwendung dieser Cachespeicher und Mikrocomputersystem mit diesem Cachespeicher |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2235554B (en) * | 1989-08-31 | 1993-11-17 | Sun Microsystems Inc | Computer system architecture for improved floating point performance |
CA2043493C (en) * | 1990-10-05 | 1997-04-01 | Ricky C. Hetherington | Hierarchical integrated circuit cache memory |
-
1993
- 1993-02-26 DE DE4306077A patent/DE4306077A1/de not_active Withdrawn
- 1993-02-26 GB GB9303999A patent/GB2264577B/en not_active Expired - Fee Related
- 1993-02-26 JP JP5063469A patent/JPH0612323A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4110173A1 (de) * | 1990-03-30 | 1991-10-02 | Mitsubishi Electric Corp | Unterstuetzender cache-speicher fuer eine halbleiterspeichervorrichtung und verfahren zum betreiben eines solchen |
EP0457403A2 (de) * | 1990-05-18 | 1991-11-21 | Koninklijke Philips Electronics N.V. | Mehrstufiger Befehlscachespeicher, Verwendungsverfahren dafür, Verfahren zum Kompilieren von Befehlen unter Verwendung dieser Cachespeicher und Mikrocomputersystem mit diesem Cachespeicher |
Non-Patent Citations (5)
Title |
---|
Design & Elektronik, Heft 19, 18.9.1990, S. 86-88 * |
EICHELE, H.: Multiprozessorsysteme, B.G. Teubner Stuttgart 1990, S. 93-101 * |
IBM TDB, Vol. 33, Nr. 11, April 1991, S. 362-365 * |
IEEE Journal of Solid-State Circuits, Vol. 25, Nr. 1, Februar 1990, S. 5-10 * |
MITCHELL, H.J.: 32-Bit-Microprocessors, Collins Professional and Technical Books, 1986, S. 192 * |
Also Published As
Publication number | Publication date |
---|---|
GB9303999D0 (en) | 1993-04-14 |
JPH0612323A (ja) | 1994-01-21 |
GB2264577B (en) | 1995-06-14 |
GB2264577A (en) | 1993-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69434728T2 (de) | Synchronisationssystem und verfahren in einem datencachesystem mit aufgeteiltem pegel | |
EP0013737B1 (de) | Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem | |
DE60010674T2 (de) | Hochgeschwindigkeits-prozessorsystem, verfahren zu dessen verwendung und aufzeichnungsmedium | |
DE2515696C2 (de) | Datenverarbeitungssystem | |
DE69724355T2 (de) | Erweiterte symmetrische Multiprozessorarchitektur | |
DE19943938B4 (de) | Dynamischer Daten-Vorabruf auf Basis eines Programmzähler- und Adressierungsmodus | |
DE3102150A1 (de) | "schaltungsanordnung mit einem cachespeicher fuer eine zentraleinheit einer datenverarbeitungsanlage | |
DE112005002180T5 (de) | Lösen von Cachekonflikten | |
DE10219623A1 (de) | System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen | |
DE10045188B4 (de) | Cacheadresskonfliktvorrichtung | |
DE3934145C2 (de) | Platteneinheit-Steuerungsvorrichtung und Informationsverarbeitungssystem, das dieselbe enthält | |
DE102008062044B4 (de) | 1Speicherinterne, seiteninterne Verzeichnis-Chache-Kohärenz-Konfiguration | |
DE10056827A1 (de) | Duale Verwendung von Cache-Verbindungen | |
DE2841041A1 (de) | Datenverarbeitungsanlage mit mindestens zwei mit einem schnellen arbeitsspeicher ausgeruesteten prozessoren | |
DE4132833A1 (de) | Hierarchischer schaltungsintegrierter cache-speicher | |
DE2415900A1 (de) | Rechenautomat mit mehreren mit je einem vorratsspeicher versehenen rechenanlagen | |
DE2617408B2 (de) | Speichermodul für ein Datenverarbeitungsgerät mit Speicherhierarchie | |
DE112005003243T5 (de) | System und Verfahren für die Cache-Kohärenz bei einem Cache mit unterschiedlichen Längen für die Cache-Orte | |
DE69937611T2 (de) | Intelligenter Puffer-Speicher | |
DE112005002420T5 (de) | Verfahren und Vorrichtung zum Pushen von Daten in den Cache eines Prozessors | |
DE19855806A1 (de) | Vorrichtung und Verfahren zum Durchführen von Unterprogrammaufruf- und Rücksprungoperationen | |
DE4100670A1 (de) | Halbleiterspeichervorrichtung mit eingebautem cache-speicher und verfahren zum betreiben einer solchen | |
DE10112216A1 (de) | Digitales Datenverarbeitungssystem, zugehöriger Cache-Speicher und Betriebsverfahren hierfür | |
DE3046912C2 (de) | Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage | |
DE10219621A1 (de) | Schnelle Prioritätsbestimmungsschaltung mit rotierender Priorität |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8130 | Withdrawal |