DE3750175T2 - Mikroprozessor mit einem Cache-Speicher. - Google Patents
Mikroprozessor mit einem Cache-Speicher.Info
- Publication number
- DE3750175T2 DE3750175T2 DE3750175T DE3750175T DE3750175T2 DE 3750175 T2 DE3750175 T2 DE 3750175T2 DE 3750175 T DE3750175 T DE 3750175T DE 3750175 T DE3750175 T DE 3750175T DE 3750175 T2 DE3750175 T2 DE 3750175T2
- Authority
- DE
- Germany
- Prior art keywords
- signal
- cache memory
- address
- data
- instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000004044 response Effects 0.000 claims description 6
- 239000011159 matrix material Substances 0.000 claims description 2
- 239000003550 marker Substances 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 6
- 238000000034 method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
Description
- Die Erfindung betrifft einen Mikroprozessor, spezieller einen Cache-Speicher, der so ausgebildet ist, daß er einen Einchip-Mikroprozessor, in dem der Cache-Speicher auf einem Chip angebracht ist, mit hoher Geschwindigkeit betreibt.
- Ein Cache-Speicher ist bisher in großem Umfang als Hochgeschwindigkeitsspeicher bekannt, der zwischen einer zentralen Verarbeitungseinheit (CPU) und einem Hauptspeicher anzubringen ist. Der Cache-Speicher weist im allgemeinen ein Speichervermögen auf, das kleiner als dasjenige des Hauptspeichers ist, und aufgrund seines Hochgeschwindigkeitsverhaltens eignet er sich gut zum Betreiben eines Computers mit erhöhter Geschwindigkeit. D. h., daß Daten mit hoher Zugriffshäufigkeit durch die CPU vorab vom Hauptspeicher in den Cache-Speicher übertragen werden, um die Speicherzugriffszeit durch die CPU zu verkürzen.
- Das Cache-Speichersystem wurde in weitem Umfang von Vielzweckcomputern bis zu Minicomputern verwendet. Z. B. weist der 32-Bit-Mikroprozessor MC68020, wie er in The Motorola MC68020 IEEE, Micro, August 1984, S. 101-118 offenbart ist, einen Cache-Speicher auf dem Chip auf. Im Cache-Speicher wird ein Datenwert mit 32 Bits zu einer Speicheradresse in Beziehung gesetzt.
- Beim oben angegebenen Stand der Technik muß jedoch die Adresse jedesmal dann abgerufen werden, wenn auf den Datenwert aus 32 Bits zugegriffen wird, um zu ermitteln, ob im Cache-Speicher ein Treffer gelandet werden kann oder nicht. Wenn versucht wird, auf einen externen Speicher zuzutreffen, ohne einen Treffer im Cache-Speicher zu landen, wird daher die für den Adreßabruf erforderliche Zeitspanne ein Overhead.
- Ein anderer Stand der Technik betreffend einen Cache-Speicher wird in der japanischen Patentoffenlegung Nr. 214039/ 1986 gelehrt, gemäß dem eine Cache-Speicherzeile durch einen Datenteil gebildet wird, der aus einem Adreßdatenwert mit einem Assoziativteil und mehreren Wörtern mit der Breite eines externen Datenbusses als Einheit besteht, und ein Flag (Gültigkeitsflag) bereitgestellt ist, um für jedes der Wörter im Datenteil anzuzeigen, ob der im Wort abgespeicherte Datenwert wirksam ist oder nicht. Da ein aus mehreren Wörtern bestehendes Datenteil einem Adreßdatenwert zugeordnet ist, kann der Bereich für den Assoziativteil pro Wort der im Cache-Speicher abgespeicherten Daten verringert werden. Unter Verwendung des Flags wird darüber hinaus der zugehörige Datenwert nur im Fall eines Fehlzugriffs eingeschrieben, ohne daß der Overhead erhöht wird.
- Der Erfindung liegt die Aufgabe zugrunde, einen Mikroprozessor mit einem Cache-Speicher anzugeben, bei dem der Overhead verringert werden kann, der für die Cache-Speicher-Bezugnahme für aufeinanderfolgende Adressen erforderlich ist, wenn auf den Cache-Speicher sequentiell zugegriffen wird, was geschehen kann, wenn ein Befehl vorab abgerufen wird oder wenn der Inhalt eines geleerten Registers im Stapelbereich wiederhergestellt wird.
- Um die vorstehende Aufgabe zu lösen, ist der erfindungsgemäße Mikroprozessor mit Cache-Speicher so aufgebaut, wie dies in Anspruch 1 angegeben ist.
- Zum Zeitpunkt des Zugriffs auf andere Datenbereiche als den Datenbereich, auf den das erste Mal zugegriffen wurde, besteht daher kein Erfordernis der sequentiellen Vornahme der Cache-Speicher-Bezugnahme, was es ermöglicht, direkt einen Treffer oder Fehlzugriff, gestützt auf das in der Halteeinrichtung festgehaltene Ergebnis, zu ermitteln. Daher kann die für die Cache-Speicher-Bezugnahme erforderliche Overhead-Zeitspanne verkürzt werden.
- Fig. 1 ist ein Diagramm, das die Struktur eines Mikroprozessors gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht;
- Fig. 2 ist ein Diagramm, das schematisch den Inhalt eines in Fig. 1 dargestellten Cache-Speichers veranschaulicht;
- Fig. 3 ist ein Diagramm, das die Innenstruktur des in Fig. 1 dargestellten Cache-Speichers veranschaulicht;
- Fig. 4 ist ein Diagramm, das die Innenstruktur einer Lese/ Schreib-Steuerschaltung für den Cache-Speicher von Fig. 1 zeigt;
- Fig. 5 ist ein Diagramm, das die Innenstruktur eines Teils der Cache-Speicher-Steuerschaltung von Fig. 1 zeigt; und
- Fig. 6 ist ein Flußdiagramm, das den Betrieb der Cache-Speicher-Steuerschaltung von Fig. 1 veranschaulicht.
- Fig. 1 ist ein Diagramm, das die Struktur eines Mikroprozessors gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht.
- Ein Mikroprozessor 200 beinhaltet einen Cache-Speicher 1, der dazu in der Lage ist, die Daten eines Speichers mit einem Byte als Einheit zu adressieren, und der über einen Adreßraum von 32 Bits verfügt und die Daten mit 32 Bits als Grundeinheit (Wort) an den Speicher überträgt. Um die Beschreibung zu vereinfachen, speichert der Cache-Speicher darüber hinaus keine Daten, sondern er speichert nur Anweisungen.
- Der Mikroprozessor 200 besteht aus einem Anweisungausführungsblock 201, einem Cache-Speicher 1, einer Steuerschaltung 202 für den Cache-Speicher und einer Lese/Schreib-Steuerschaltung 100 für den Cache-Speicher. Ferner ist der Mikroprozessor 200 mit einem externen Speicher 204 verbunden, und er führt Prozesse unter Verwendung von Programmen und Daten aus, die im externen Speicher abgespeichert sind.
- Zunächst wird der Betrieb des Cache-Speichers grob in Verbindung mit Fig. 2 beschrieben, die schematisch das Innere des Cache-Speichers von Fig. 1 veranschaulicht.
- Zwei Datenbereiche 403a und 403b mit aufeinanderfolgenden Wortadressen sind so gewählt, daß sie einer Markierungsadresse 402 eines Assoziativteils entsprechen, um dadurch eine Zeile zu bilden. Die so gebildeten Zeilen sind mehrfach in Spaltenrichtung gestapelt, um einen Cache-Speicher in Form einer Matrix zu bilden.
- Bei den obigen zwei Datenbereichen ist eine ungeradzahlige Wortadresse einem ersten Datenbereich 403a auf der linken Seite zugeordnet, und eine ungeradzahlige Wortadresse ist einem zweiten Datenbereich 403b auf der rechten Seite zugeordnet. Die zwei Datenbereiche sind mit Gültigkeitsflags 403a' und 403b' versehen, die anzeigen, ob wirksame Daten abgespeichert sind oder nicht.
- Die Erfindung zeigt den ihr eigentümlichen Betrieb, wenn auf die obigen, aufeinanderfolgenden Datenbereiche zuzugreifen ist. D. h., daß dann, wenn der erste Datenbereiche 403a auf die Markierungsadresse hin auszulesen ist, nicht nur das Flag 403a' des Bereichs, sondern auch das Flag 403b' des zweiten Datenbereichs ausgelesen werden und der Datenwert des Flags 403b' in einer Halteeinrichtung abgespeichert wird. Es besteht große Wahrscheinlichkeit für einen Zugriff auf den zweiten Datenbereich folgend auf den ersten Datenbereich, wenn der Zugriffsequentiell ausgeführt wird. Dann wird, wenn der zweite Datenbereich 403b auszulesen ist, gestützt auf den Datenwert des Flags 403b', ermittelt, ob ein Treffer im Cache-Speicher besteht oder nicht.
- Dank des vorstehend angegebenen Vorgangs wird auf Grundlage des Flag-Datenwerts, der zum Zeitpunkt, wenn der zweite Datenbereich auszulesen ist, bereits in der Halteeinrichtung abgespeichert ist, leicht ermittelt, ob ein Treffer im Cache-Speicher besteht oder nicht. Daher kann die Zugriffszeit im Vergleich zum Fall verkürzt werden, in dem das Flag des zweiten Datenbereichs zum Zeitpunkt des Auslesens des zweiten Datenbereichs neu ausgelesen wird. Die Ermittlung eines Treffers auf Grundlage des in der Halteeinrichtung abgespeicherten Flag-Datenwerts wird später unter Bezugnahme auf die Cache-Speicher-Steuerschaltung erläutert.
- Die Innenstruktur jedes der Strukturelemente von Fig. 1 und der Betrieb desselben wird nun beschrieben.
- Zunächst wird die Struktur des Cache-Speichers 1 in Verbindung mit Fig. 3 beschrieben.
- Der Cache-Speicher 1 besteht hauptsächlich aus einem Assoziativ-Speicher 2 sowie RAMs 3a, 3b. Hierbei sind, wie dies unter Bezugnahme auf Fig. 2 erwähnt wurde, die zwei Datenbereiche (unter 3a und 3b abgespeichert) mit aufeinanderfolgenden Wortadressen zu einer zugeordneten Markierungsadresse im Assoziativspeicher 2 in Beziehung gesetzt. Die Datenbereiche der RAMs 3a und 3b sind mit Flagabschnitten (3a', 3b') versehen. Bei diesem Ausführungsbeispiel ist ferner selbst im Assoziativspeicher 2 ein Flagabschnitt 2' vorhanden, um anzuzeigen, daß eine Adresse in wirksamem Zustand abgespeichert wurde.
- Der Cache-Speicher 1 empfängt unter den Adreßsignalen von 32 Bits ein Signal 11 entsprechend dem dreizehnten Bit (A2) und ein Signal 12, das aus den oberen 29 Bits (A31 bis A3) besteht, als Anweisungszugriffadresse. Das Signal 11 zeigt an, ob die Zugriffsadresse geradzahlig oder ungeradzahlig ist. Ein Signal 11 vom Wert Null repräsentiert eine geradzahlige Adresse. Ein Signal 11 vom Wert 1 repräsentiert eine ungeradzahlige Adresse. Ferner wird ein aus 32 Bits bestehendes Signal 14 als Anweisungseingangssignal eingegeben. Ferner werden Steuersignale 18, 19, 20, 21 und 22 eingegeben. Die aus 32 Bits bestehende, aus dem Cache-Speicher ausgelesene Anweisung wird als Signal 13 erstellt. Auf einen Treffer und einen Fehlzugriff bezogene Daten werden auf Grundlage der Signale von den Flagabschnitten 3a', 3b' der Datenbereiche gebildet und als Gültigkeitsflagsignale 15, 16 und 17 erstellt. Das Gültigkeitsflagsignal 15 wird erstellt, wenn die Cache-Speicher-Bezugnahme anzeigt, daß keine zugeordnete Markierungsadresse im Assoziativteil 2 vorhanden ist. Das Gültigkeitsflagsignal 16 wird erstellt, wenn eine wirksame Anweisung während des Zugriffvorgangs unter einer Anweisungsadresse abgespeichert ist. Das Gültigkeitsflag 17 wird erzeugt, wenn im RAM 3b unter einer ungeradzahligen Anweisungsadresse eine Anweisung in wirksamer Form existiert, für die eine hohe Wahrscheinlichkeit besteht, daß auf sie beim nächsten Mal unter der Bedingung zugegriffen wird, daß die Zuweisungsadresse, auf die gerade zugegriffen wird, geradzahlig ist.
- Der Assoziativspeicher 2 empfängt das Signal 12 als Assoziativ-Schreibeingang, und er empfängt das Signal 18 als Gültigkeitsflag. Das Zuordnungsergebnis, d. h. Treffer/Fehlzugriff, wird als Signal 33 erstellt, und die Angabe, welche Zeile getroffen wurde, wird als Signal 40 erstellt. Die RAMs 3a und 3b werden durch das Signal 40 adressiert, und die Signale 14, 34 und 11 werden als Schreibeingangssignale in sie eingegeben. Signale 31, 32, 35 und 36 werden als Leseausgangssignale erstellt. Das Signal 31 wird auf das in den RAM 3a eingegebene Signal 14 hin erstellt, das Signal 35 wird auf das Eingangssignal 34 hin erstellt, das Signal 32 wird auf das in den RAM 3b eingegebene Signal 14 hin erstellt, und das Signal 36 wird auf das Eingangssignal 11 hin erstellt. Die in einen Selektor 4 eingegebenen Signale 31 und 32 werden durch das Signal 11 ausgewählt. Wenn das Signal 11 Null ist, wird der Wert des Signals 31 als Signal 13 erstellt, und wenn das Signal 11 den Wert 1 hat, wird das Signal 32 als Signal 13 erstellt. Das Signal 19 ist ein Schreibspezifizierungssignal für den Assoziativspeicher 2, und das Signal 20 ist ein Zeilenspezifizierungssignal, das zu schreiben ist. Das Signal 21 ist ein Schreibspezifizierungssignal für den RAM 3a, und das Signal 22 ist ein Schreibspezifizierungssignal fuhr den RAM 3b.
- Der Assoziativspeicher 2 speichert Assoziativdaten aus 29 Bits und ein Gültigkeitsflag aus einem Bit. Abhängig vom Schreibspezifizierungssignal 29 arbeitet der Assoziativspeicher 2 so, wie es unten beschrieben wird. Wenn das Signal 19 "0" ist, wird das Signal 12 mit der in jeder der Zeilen abgespeicherten zugeordneten Adresse verglichen. Wenn eine Zeile aufgefunden wird, für die Übereinstimmung besteht und wenn das Gültigkeitsflag 2' dieser Zeile 1 ist (d. h., wenn keine entsprechende Adresse in wirksamer Form existiert), wird das Signal 33 auf "1" gestellt, und die Leitung für das Signal 40, die der Zeile entspricht, wird auf "1" gestellt. Das aus dem Signal 33 über einen Inverter 5 entnommene Gültigkeitsflagsignal "0" zeigt an, daß eine zugeordnete, wirksame Markierungsadresse im Assoziativteil 2 enthalten ist. Danach werden, wenn das Signal 19 "1" ist, der Wert des Signals 12 als eine zugeordnete Markierungsadresse und der Wert des Signals 18 als Gültigkeitsflag in die Zeile geschrieben, die durch das Signal 20 spezifiziert wird.
- Die RAMs 3a und 3b speichern jeweils Anweisungen für eine geradzahlige Wortadresse bzw. eine ungeradzahlige Wortadresse. Der Cache-Speicher 1 weist ferner Inverter 5 und 6, UND- Gatter 7, 8 und 9 sowie ein ODER-Gatter 10 auf.
- Ein Lesevorgang des Cache-Speichers 1 wird unter Steuerung der Lese/Schreib-Steuerschaltung 100 für den in Fig. 1 dargestellten Cache-Speicher so ausgeführt, wie dies unten beschrieben wird. Fig. 4 zeigt ein Beispiel für die Lese/ Schreib-Steuerschaltung für den Cache-Speicher. Ein Schreibsignal 50 wird auf "0" gestellt, und die Adresse einer gelesenen Anweisung wird in Form der vorstehend angegebenen Signale 11 und 12 eingegeben. Da das Schreibsignal 50 "0" ist, nehmen auch die Signale 19, 21 und 22 den Pegel "9" ein, um das Einschreiben von Daten in den Assoziativspeicher 2 und die RAMs 3a, 3b über UND-Gatter 106, 107 und 108 der Schreib-Steuerschaltung anzuzeigen. Da das Signal 19 "0" ist, führt der Assoziativspeicher 2 die Zuordnung zum Signal 12 aus, und das Ergebnis wird in Form von Signalen 33 und 40 erstellt.
- Ein typischer Lesevorgang gemäß der Erfindung wird durch die Cache-Speicher-Steuerschaltung 202 auf eine Weise ausgeführt, wie sie unten beschrieben ist.
- Fig. 5 veranschaulicht die Struktur der Anweisungscache- Steuerschaltung 202, die ihren Betrieb auf Empfang eines Verzweigungsanforderungssignals 211 oder eines Vorababruf- Anforderungssignals 212 startet, die vom Anweisungausführungsblock 201 geliefert werden. Das Verzweigungsanforderungssignal 211 wird vom Anweisungausführungsblock in die Anweisungscache-Steuerschaltung eingegeben, wenn eine Verzweigung während des Ablaufs eines Programms erzeugt wird, und das Vorabzugriff-Anforderungssignal 212 wird vom Anweisungausführungsblock in die Anweisungscache-Steuerschaltung eingegeben, wenn keine Verzweigung erzeugt wird, sondern wenn das Programm sequentiell auszuführen ist.
- Zunächst erzeugt, wenn der Anweisungausführungsblock 201 eine Verzweigung anfordert (das Signal 211 ist "1" und das Signal 212 ist "0") und wenn ein Vorabzugriff nachgefragt wird und die Anweisungsadresse geradzahlig ist (das Signal 211 ist "0", das Signal 212 ist "1" und das Signal 11 ist "0"), ein ODER-Gatter 225 ein Ausgangssignal "1" aufgrund eines Inverters 222, UND-Gattern 223 und 224 und eines ODER- Gatters 225. Daher erzeugt, wenn das Gültigkeitsflagsignal 16 "1" (oder abgespeichert) ist, was anzeigt, daß während des Zugriffvorgangs eine wirksame Anweisung unter einer Anweisungsadresse abgespeichert ist, ein UND-Gatter 231 ein Ausgangssignal "1", wodurch ein Cache-Speicher-Zugriffanforderungssignal 215 über ein ODER-Gatter 233 erstellt wird. Wenn das Gültigkeitsflagsignal "0" (nicht abgespeichert) ist, wird andererseits ein Zugriffanforderungssignal 214 für einen externen Speicher über einen Inverter 226, ein UND- Gatter 228 und ein ODER-Gatter 230 erstellt.
- Zu diesem Zeitpunkt wird das Ausgangssignal des ODER-Gatters 225 ebenfalls in den Takteingang CK eines D-Flip-Flops (D-FF) 221 eingegeben. In den D-Eingang des D-FF wird ein Gültigkeitsflagsignal 17 eingegeben, das anzeigt, daß eine Anweisung unter einer ungeradzahligen Adresse mit hoher Wahrscheinlichkeit für den nächsten Zugriff in wirksamer Form im RAM 3b vorhanden ist, wenn die Anweisungsadresse, auf die zugegriffen wird, eine geradzahlige Adresse ist. D. h., daß, während auf die geradzahlige Adresse zugegriffen wird, die Existenz eines Datenwerts unter einer ungeradzahligen Adresse als Gültigkeitsflagsignal 17 in den D-Eingang des D-FF 221 eingegeben wird.
- Wenn der Anweisungausführungsblock 201 eine Vorabzugriffanforderung erstellt und wenn die Anweisungsadresse vom vorigen geradzahligen Zustand in einen ungeradzahligen Zustand geändert wird (das Signal 211 wird "0", das Signal 212 wird "1" und das Signal 11 wird "1"), zeigt die Anweisungscache- Steuerschaltung 202, die mit dem D-FF 221 als Zentrum ausgebildet ist, ihren für die Erfindung charakteristischen Betrieb. Zunächst legt das ODER-Gatter 225 dann, wenn das Signal 11 "1" wird, ein Signal "0" an den Takteingang CK des D-FF 221. Der Datenwert des Gültigkeitsflagsignals 17 wird am Ausgang Q des D-FF zur zeitlichen Lage der Änderung des Takteingangssignals erzeugt. Wenn das Gültigkeitsflagsignal 17 "1" ist (es existiert eine Anweisung unter einer ungeradzahligen Adresse), wird das Ausgangssignal Q "1", und ein Cache-Speicher-Zugriffanforderungssignal 215 wird über ein UND-Gatter 232 und ein ODER-Gatter 233 erstellt. Andererseits wird, wenn das Gültigkeitsflagsignal 17 "0" ist (es existiert keine Anweisung unter einer ungeradzahligen Adresse), das Ausgangssignal Q "0", und es wird ein Zugriffanforderungssignal 214 für einen externen Speicher über einen Inverter 227, das UND-Gatter 229 und das ODER-Gatter 230 erstellt.
- Fig. 6 ist ein Flußdiagramm, das den vorstehend genannten Betrieb veranschaulicht. Wenn das Verzweigungsanforderungssignal 211 "1" ist, startet der Anweisungausführungsblock das Programm ab einem Schritt 302. Wenn das Anweisungsvorabzugriff-Anforderungssignal 212 "1" ist, startet der Anweisungausführungsblock das Programm ab einem Schritt 301, in dem untersucht wird, ob die Anweisungsadresse ungeradzahlig oder geradzahlig ist. Wenn die Anweisungsadresse geradzahlig ist, geht das Programm zum Schritt 302 über, und wenn die Anweisungsadresse ungeradzahlig ist, geht das Programm zu einem Schritt 306 über. Hierbei zeigt eine geradzahlige Anweisungsadresse (Wortadresse) an, daß Zugriff auf einen Datenbereich vorgenommen wird, auf den als ersten unter mehreren Datenbereichen (in diesem Fall zwei Bereiche) für eine Markierungsadresse des Assoziativteils zuzugreifen ist. Wenn die Anweisungsadresse ungeradzahlig ist, bedeutet dies andererseits, daß Zugriff auf andere Datenbereiche vorzunehmen ist. Im nächsten Schritt 302 führt der Cache-Speicher 1 den Assoziativvorgang, d. h. die Cache-Speicher-Bezugnahme aus. Wie es aus dem Flußdiagramm zu verstehen ist, wird der Schritt 302 ausgeführt, wenn (1) der Anweisungausführungsblock 201 das Verzweigungsanforderungssignal 211 erzeugt und wenn (2) der Anweisungausführungsblock 201 das Vorabzugriff- Anforderungssignal 212 erzeugt und wenn die Anweisungsadresse geradzahlig ist (d. h., wenn Zugriff auf einen Datenbereich vorzunehmen ist, auf den als ersten zuzugreifen ist).
- Wenn in einem Schritt 303 unter Verwendung eines Gültigkeitsflags 16 bestätigt wird, daß eine Anweisung, auf die zuzugreifen ist, im Cache-Speicher 1 existiert (Treffer), geht das Programm zu einem Schritt 304 über. Wenn keine Anweisung existiert (Fehlzugriff), geht das Programm andererseits zu einem Schritt 305 über. Im Schritt 304 wird die Anweisung aus dem Cache-Speicher 1 ausgelesen, das Signal 215 setzt sich durch, und die ausgelesene Anweisung 13 wird über einen Puffer 203 mit drei Zuständen auf einen Datenbus 213 gegeben. Der Schritt 305 setzt das Zugriffanforderungssignal 214 für den externen Speicher durch, liest eine Anweisung aus dem externen Speicher 204 aus und liefert sie auf den Datenbus 213. Die in den obigen Schritten 304 und 305 auf den Datenbus 213 gelieferte Anweisung wird vom Anweisungausführungsblock 201 empfangen und ausgeführt.
- Wenn im Schritt 301 die Anweisungsadresse ungeradzahlig ist, geht das Programm zum Schritt 306 über, der einen charakteristischen Teil der Erfindung bildet und der ausgeführt wird, wenn der Anweisungausführungsblock 201 ein Vorabzugriff-Anforderungssignal 212 erzeugt und wenn die Anweisungsadresse ungeradzahlig ist (d. h., wenn Zugriff auf andere Datenbereiche als auf den Datenbereich erfolgt, auf den als ersten zuzugreifen ist). Das Programm geht zum Schritt 304 über, wenn im Schritt 306 unter Verwendung des Gültigkeitsflags 17 bestätigt wird, daß im Cache-Speicher 1 die Anweisung existiert, auf die zuzugreifen ist (Treffer). D. h., daß im Schritt 306 keine übliche Cache-Speicherbezugnahme ausgeführt wird, sondern diese im vorangehenden Schritt 302 des Adressierens einer geradzahligen Anweisung ausgeführt wird, wobei ein Treffer oder Fehlzugriff unter Verwendung des abgespeicherten Datenwerts des Gültigkeitsflags 17 festgestellt wird.
- Vorstehend wurde der Betrieb zum Zeitpunkt eines Vorabzugriffs auf eine Anweisung beschrieben. Es ist jedoch offensichtlich, daß die Erfindung selbst dann realisiert werden kann, wenn ein geleertes Register im Stapelbereich wiederherzustellen ist.
- Bei den Ausführungsbeispielen war ferner die dem Assoziativteil entsprechende Anzahl von Wörtern (Anzahl von Datenbereichen) des RAM auf 2 gesetzt. Es ist jedoch offensichtlich, daß die Erfindung leicht so erweitert werden kann, daß sie eine Anzahl von Wörtern (Anzahl von Datenbereichen) abdeckt, die eine Potenz von 2 ist.
Claims (3)
1. Mikroprozessor mit:
- einem Cache-Speicher (1) mit einem
Markierungsadressenabschnitt (2) zum Abspeichern mehrerer Markierungsadressen
(402), die jeweils aus mehreren Bits bestehen, und einem
Datenteil mit mehreren eine Matrix bildenden Zeilen, wobei
jede Zeile durch mehrere aufeinanderfolgende Datenbereiche
(3a, 3b) gebildet wird, auf die gemeinsam durch eine
zugeordnete Markierungsadresse (402) zugegriffen wird, wobei
jeder der mehreren Datenbereiche (3a, 3b) selektiv durch
mindestens ein Bit der zugeordneten Markierungsadresse (402)
spezifiziert wird;
- einem Anweisungausführungsblock (201), der Anweisungen auf
Grundlage der im Cache-Speicher (1) oder einem externen
Speicher (204) ausführt; und
- einer Cache-Speicher-Steuerschaltung (202) zum Steuern des
Betriebs des Cache-Speichers (1);
dadurch gekennzeichnet,
- daß auf den ersten und zweiten Datenbereich (3a, 3b) der
aufeinanderfolgenden Datenbereiche im Cache-Speicher (1)
gemeinsam durch ein "Obere Bits" -Signal (Signal 12 mit den
oberen Bits A31-A3) einer Anweisungszugriffadresse (11,
12) zugegriffen wird, die vom Anweisungausführungsblock
(201) erzeugt wird;
- daß der erste und zweite Datenbereich (3a, 3b) im Cache-
Speicher (1) jeweils selektiv durch ein "Untere Bits"-Signal
(11, A2) der Anweisungszugriffadresse spezifiziert wird;
- daß der erste und zweite Datenbereich (3a, 3b) im
Cachespeicher (1) jeweils einen Flagabschnitt (3a', 3b') zum
Abspeichern eines Flags (403a', 403b') aufweist, das anzeigt,
ob in ihm gültige Daten abgespeichert sind oder nicht;
- daß die Cache-Speicher-Steuerschaltung 202 folgendes
aufweist:
- eine erste Einrichtung (7, 8, 9, 10) zum Auslesen des
Flags (3b') im zweiten Datenbereich (3b), wenn das Flag
(3a') im ersten Datenbereich (3a) auf das "Obere Bits"-
Signal (12) und das "Untere Bits"-Signal (11) der
Anweisungszugriffadresse ausgelesen wird;
- eine zweite Einrichtung (221) zum Festhalten von
Information, die auf das Flag (3b') des von der ersten Einrichtung
(9) ausgelesenen zweiten Datenbereichs (3b) bezogen ist; und
- eine dritte Einrichtung (223-225, 227, 230, 232, 233)
zum Auslesen der Information aus der zweiten Einrichtung
(221) auf das "Untere Bits"-Signal (11) der
Anweisungsadresse, wenn auf den zweiten Datenwert (3b) anschließend
zugegriffen wird, nachdem auf den ersten Datenbereich (3a)
zugegriffen wurde;
- und daß abhängig von dem in der zweiten Einrichtung (221)
abgespeicherten Flag (3b') betreffend den zweiten
Datenbereich (3a, 3b) der Zeile, die selektiv vom "Untere Bits"-
Signal (11, A2) der Anweisungszugriffadresse (11, 12)
spezifiziert wird, ermittelt wird, ob ein Treffer im
Cache-Speicher besteht oder nicht.
2. Mikroprozessor nach Anspruch 1, bei dem der
Cache-Speicher (1) folgendes aufweist:
- einen ersten Stapel (3) mehrerer Zeilen, die eine Spalte
bilden, wobei jede Zeile den genannten ersten und den
genannten zweiten Datenbereich (3a, 3b) aufweist; und
- einen zweiten Stapel (2) mehrerer Zeilen, die eine Spalte
bilden, wobei jede Zeile des zweiten Stapels
Adresseninformationen beinhaltet, die Daten entsprächen, die in einer
entsprechenden Zeile des ersten und zweiten Datenbereichs
(3a, 3b) abgespeichert sind.
3. Mikroprozessor nach Anspruch 2,
- bei dem das "Obere Bits"-Signal (12) der
Anweisungszugriffadresse mit der in den mehreren Zeilen des zweiten
Stapels (3) abgespeicherten Adresseninformation verglichen
wird; und
- bei dem jede der mehreren Zeilen im ersten Stapel (3)
abhängig von einer Übereinstimmung beim Vergleich des "Obere
Bits"-Signals (12) mit der in den mehreren Zeilen des
zweiten Stapels (3) abgespeicherten Adresseninformation
ausgewählt wird.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27123586 | 1986-11-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3750175D1 DE3750175D1 (de) | 1994-08-11 |
DE3750175T2 true DE3750175T2 (de) | 1994-10-13 |
Family
ID=17497237
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3750175T Expired - Fee Related DE3750175T2 (de) | 1986-11-14 | 1987-11-13 | Mikroprozessor mit einem Cache-Speicher. |
Country Status (5)
Country | Link |
---|---|
US (1) | US4942521A (de) |
EP (1) | EP0267628B1 (de) |
JP (1) | JPS63238646A (de) |
KR (1) | KR950006590B1 (de) |
DE (1) | DE3750175T2 (de) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2200483B (en) * | 1987-01-22 | 1991-10-16 | Nat Semiconductor Corp | Memory referencing in a high performance microprocessor |
US4914573A (en) * | 1987-10-05 | 1990-04-03 | Motorola, Inc. | Bus master which selectively attempts to fill complete entries in a cache line |
US6092153A (en) * | 1988-11-14 | 2000-07-18 | Lass; Stanley Edwin | Subsettable top level cache |
JPH04233642A (ja) * | 1990-07-27 | 1992-08-21 | Dell Usa Corp | キャッシュアクセスと並列的にメモリアクセスを行なうプロセッサ及びそれに用いられる方法 |
JP2773471B2 (ja) * | 1991-07-24 | 1998-07-09 | 日本電気株式会社 | 情報処理装置 |
US5754814A (en) * | 1992-02-28 | 1998-05-19 | Oki Electric Industry Co., Ltd. | Cache memory apparatus for reading data corresponding to input address information |
US5574877A (en) * | 1992-09-25 | 1996-11-12 | Silicon Graphics, Inc. | TLB with two physical pages per virtual tag |
US5553270A (en) * | 1993-09-01 | 1996-09-03 | Digital Equipment Corporation | Apparatus for providing improved memory access in page mode access systems with pipelined cache access and main memory address replay |
US5611073A (en) * | 1995-02-09 | 1997-03-11 | Delco Electronics Corp. | Method of ensuring parameter coherency in a multi-processor system |
JP2710580B2 (ja) * | 1995-04-14 | 1998-02-10 | 甲府日本電気株式会社 | キャッシュメモリ装置 |
US5860127A (en) * | 1995-06-01 | 1999-01-12 | Hitachi, Ltd. | Cache memory employing dynamically controlled data array start timing and a microcomputer using the same |
US7304883B2 (en) * | 2004-06-09 | 2007-12-04 | Matsushita Electric Industrial Co., Ltd. | Semiconductor integrated circuit |
EP1978447B1 (de) * | 2007-04-05 | 2011-02-16 | STMicroelectronics (Research & Development) Limited | Integrierte Schaltung mit beschränktem Datenzugang |
CN104699627B (zh) | 2013-12-06 | 2019-05-07 | 上海芯豪微电子有限公司 | 一种缓存系统和方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4445172A (en) * | 1980-12-31 | 1984-04-24 | Honeywell Information Systems Inc. | Data steering logic for the output of a cache memory having an odd/even bank structure |
US4363095A (en) * | 1980-12-31 | 1982-12-07 | Honeywell Information Systems Inc. | Hit/miss logic for a cache memory |
US4424561A (en) * | 1980-12-31 | 1984-01-03 | Honeywell Information Systems Inc. | Odd/even bank structure for a cache memory |
US4670839A (en) * | 1982-09-27 | 1987-06-02 | Data General Corporation | Encachement apparatus using two caches each responsive to a key for simultaneously accessing and combining data therefrom |
US4602368A (en) * | 1983-04-15 | 1986-07-22 | Honeywell Information Systems Inc. | Dual validity bit arrays |
US4724518A (en) * | 1983-07-29 | 1988-02-09 | Hewlett-Packard Company | Odd/even storage in cache memory |
US4586130A (en) * | 1983-10-03 | 1986-04-29 | Digital Equipment Corporation | Central processing unit for a digital computer |
DE3650584T2 (de) * | 1985-02-22 | 1997-06-26 | Intergraph Corp | Anordnung von Cachespeicherverwaltungseinheiten |
JPS61214039A (ja) * | 1985-03-20 | 1986-09-22 | Hitachi Ltd | キヤツシユメモリ |
US4811209A (en) * | 1986-07-31 | 1989-03-07 | Hewlett-Packard Company | Cache memory with multiple valid bits for each data indication the validity within different contents |
-
1987
- 1987-11-12 KR KR1019870012732A patent/KR950006590B1/ko not_active IP Right Cessation
- 1987-11-13 DE DE3750175T patent/DE3750175T2/de not_active Expired - Fee Related
- 1987-11-13 US US07/119,919 patent/US4942521A/en not_active Expired - Lifetime
- 1987-11-13 EP EP87116817A patent/EP0267628B1/de not_active Expired - Lifetime
- 1987-11-13 JP JP62285352A patent/JPS63238646A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP0267628B1 (de) | 1994-07-06 |
US4942521A (en) | 1990-07-17 |
KR880006600A (ko) | 1988-07-23 |
EP0267628A3 (en) | 1990-07-04 |
DE3750175D1 (de) | 1994-08-11 |
EP0267628A2 (de) | 1988-05-18 |
KR950006590B1 (ko) | 1995-06-19 |
JPS63238646A (ja) | 1988-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2260353C2 (de) | Schaltungsanordnung für die Adressenumsetzung in einer Datenverarbeitungsanlage | |
DE2350225C2 (de) | ||
DE3011552C2 (de) | ||
DE3909896C2 (de) | ||
DE1956604C3 (de) | Datenverarbeitungsanlage | |
DE3724317C2 (de) | ||
DE3588009T2 (de) | Vorrichtung und Verfahren zum Rekonfigurieren eines Speichers in einer Datenverarbeitungsanordnung. | |
DE3750175T2 (de) | Mikroprozessor mit einem Cache-Speicher. | |
DE2944419C2 (de) | ||
DE3688640T2 (de) | Suchgerät. | |
EP0013737A1 (de) | Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem | |
DE2630323A1 (de) | Datenspeichereinrichtung | |
DE2130299A1 (de) | Eingabe/Ausgabe-Kanal fuer Datenverarbeitungsanlagen | |
DE68916563T2 (de) | Speicheranordnung mit Vorhersage der Bausteinauswahl. | |
DE3046912C2 (de) | Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage | |
DE3688400T2 (de) | Cachespeicherschaltung geeignet zur verarbeitung einer leseanforderung waehrend der uebertragung eines datenblocks. | |
DE2310631A1 (de) | Speicherhierarchie fuer ein datenverarbeitungssystem | |
DE69410660T2 (de) | Instruktionsspeichersystem für RISC-Mikroprozessor, fähig zu relativen Progammzahleradressierung | |
DE3850514T2 (de) | Cachespeicher mit Treffervorhersagelogik. | |
DE3588061T2 (de) | Speicherzugriffs-Steuerungssystem und -Verfahren für ein Informationsverarbeitungsgerät. | |
DE69709226T2 (de) | Einzelzyklus mehrfachzugreifbarer verschachtelter Cache-Speicher | |
DE3911721C2 (de) | ||
EP1079307B1 (de) | Verfahren zum Betrieb eines Speichersystems sowie Speichersystem | |
DE2948442C2 (de) | Digitalrechenanlage | |
DE19842677A1 (de) | Speicherzugriff-Steuerschaltung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |