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
Application number
DE3750175T
Other languages
English (en)
Other versions
DE3750175D1 (de
Inventor
Makoto Hanawa
Atsushi Hasegawa
Tadahiko Nishimukai
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Microcomputer System Ltd
Hitachi Ltd
Original Assignee
Hitachi Microcomputer System Ltd
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Microcomputer System Ltd, Hitachi Ltd filed Critical Hitachi Microcomputer System Ltd
Publication of DE3750175D1 publication Critical patent/DE3750175D1/de
Application granted granted Critical
Publication of DE3750175T2 publication Critical patent/DE3750175T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing 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

    Hintergrund der Erfindung
  • 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.
  • Zusammenfassung der Erfindung
  • 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.
  • Kurze Beschreibung der Zeichnungen
  • 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.
  • Beschreibung des bevorzugten Ausführungsbeispiels
  • 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.
DE3750175T 1986-11-14 1987-11-13 Mikroprozessor mit einem Cache-Speicher. Expired - Fee Related DE3750175T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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