DE3750175T2 - Microprocessor with a cache memory. - Google Patents

Microprocessor with a cache memory.

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
German (de)
Other versions
DE3750175D1 (en
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/en
Application granted granted Critical
Publication of DE3750175T2 publication Critical patent/DE3750175T2/en
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 ErfindungBackground of the invention

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.The invention relates to a microprocessor, more particularly to a cache memory designed to operate a single-chip microprocessor in which the cache memory is mounted on a chip at high speed.

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.A cache memory has been widely known as a high-speed memory to be installed between a central processing unit (CPU) and a main memory. The cache memory generally has a storage capacity smaller than that of the main memory, and its high-speed performance makes it well suited for operating a computer at an increased speed. That is, data with a high access frequency by the CPU is transferred from the main memory to the cache memory in advance to shorten the memory access time by the CPU.

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.The cache memory system has been widely used from general purpose computers to minicomputers. For example, the 32-bit microprocessor MC68020 as disclosed in The Motorola MC68020 IEEE, Micro, August 1984, pp. 101-118 has an on-chip cache memory. In the cache memory, a 32-bit data value is related to a memory address.

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.However, in the above-mentioned prior art, the address must be fetched each time the 32-bit data value is accessed to determine whether or not a hit can be landed in the cache memory. Therefore, if an attempt is made to access an external memory without landing a hit in the cache memory, The time required for address retrieval is an 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.Another prior art concerning a cache memory is taught in Japanese Patent Laid-Open No. 214039/1986, according to which a cache memory line is constituted by a data part consisting of an address data with an associative part and a plurality of words having the width of an external data bus as a unit, and a flag (validity flag) is provided for indicating for each of the words in the data part whether the data stored in the word is effective or not. Since a data part consisting of a plurality of words is assigned to an address data, the area for the associative part per word of the data stored in the cache memory can be reduced. Moreover, by using the flag, the corresponding data is written only in the case of a miss without increasing the overhead.

Zusammenfassung der ErfindungSummary of the invention

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.It is an object of the invention to provide a microprocessor with a cache memory in which the overhead required for the cache memory reference for consecutive addresses can be reduced when the cache memory is accessed sequentially, which can happen when an instruction is prefetched or when the contents of an emptied register in the stack area are restored.

Um die vorstehende Aufgabe zu lösen, ist der erfindungsgemäße Mikroprozessor mit Cache-Speicher so aufgebaut, wie dies in Anspruch 1 angegeben ist.In order to achieve the above object, the microprocessor with cache memory according to the invention is constructed as specified in claim 1.

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.At the time of access to data areas other than the Therefore, there is no need to sequentially perform the cache memory reference for the first time data area, making it possible to directly determine a hit or miss based on the result held in the latch. Therefore, the overhead period required for the cache memory reference can be shortened.

Kurze Beschreibung der ZeichnungenShort description of the drawings

Fig. 1 ist ein Diagramm, das die Struktur eines Mikroprozessors gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht;Fig. 1 is a diagram illustrating the structure of a microprocessor according to an embodiment of the invention;

Fig. 2 ist ein Diagramm, das schematisch den Inhalt eines in Fig. 1 dargestellten Cache-Speichers veranschaulicht;Fig. 2 is a diagram schematically illustrating the contents of a cache memory shown in Fig. 1;

Fig. 3 ist ein Diagramm, das die Innenstruktur des in Fig. 1 dargestellten Cache-Speichers veranschaulicht;Fig. 3 is a diagram illustrating the internal structure of the cache memory shown in Fig. 1;

Fig. 4 ist ein Diagramm, das die Innenstruktur einer Lese/ Schreib-Steuerschaltung für den Cache-Speicher von Fig. 1 zeigt;Fig. 4 is a diagram showing the internal structure of a read/write control circuit for the cache memory of Fig. 1;

Fig. 5 ist ein Diagramm, das die Innenstruktur eines Teils der Cache-Speicher-Steuerschaltung von Fig. 1 zeigt; undFig. 5 is a diagram showing the internal structure of a part of the cache memory control circuit of Fig. 1; and

Fig. 6 ist ein Flußdiagramm, das den Betrieb der Cache-Speicher-Steuerschaltung von Fig. 1 veranschaulicht.Fig. 6 is a flow chart illustrating the operation of the cache memory control circuit of Fig. 1.

Beschreibung des bevorzugten AusführungsbeispielsDescription of the preferred embodiment

Fig. 1 ist ein Diagramm, das die Struktur eines Mikroprozessors gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht.Fig. 1 is a diagram illustrating the structure of a microprocessor according to an embodiment of the invention.

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.A microprocessor 200 includes a cache memory 1, which is capable of addressing the data of a memory with a byte as a unit, and which has an address space of 32 bits and transfers the data to the memory with 32 bits as a basic unit (word). Furthermore, to simplify the description, the cache memory does not store data, but only stores instructions.

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.The microprocessor 200 is composed of an instruction execution block 201, a cache memory 1, a cache memory control circuit 202, and a cache memory read/write control circuit 100. Further, the microprocessor 200 is connected to an external memory 204, and executes processes using programs and data stored in the external memory.

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.First, the operation of the cache memory will be roughly described in connection with Fig. 2, which schematically illustrates the interior of the cache memory of Fig. 1.

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.Two data areas 403a and 403b having consecutive word addresses are selected to correspond to a tag address 402 of an associative part to thereby form a row. The rows thus formed are stacked multiple times in the column direction to form a cache memory in the form of a matrix.

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.In the above two data areas, an odd-numbered word address is assigned to a first data area 403a on the left side, and an odd-numbered word address is assigned to a second data area 403b on the right side. The two data areas are provided with validity flags 403a' and 403b' which indicate whether effective data are saved or not.

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.The invention shows the peculiar operation when the above consecutive data areas are to be accessed. That is, when the first data area 403a is to be read out in response to the tag address, not only the flag 403a' of the area but also the flag 403b' of the second data area are read out and the data value of the flag 403b' is stored in a holding device. There is a high possibility of access to the second data area following the first data area if the access is carried out sequentially. Then, when the second data area 403b is to be read out, it is determined whether or not there is a hit in the cache memory based on the data value of the flag 403b'.

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.Thanks to the above-mentioned operation, it is easily determined whether or not there is a hit in the cache memory based on the flag data already stored in the holding means at the time when the second data area is to be read out. Therefore, the access time can be shortened as compared with the case where the flag of the second data area is newly read out at the time of reading out the second data area. The determination of a hit based on the flag data stored in the holding means will be explained later with reference to the cache memory control circuit.

Die Innenstruktur jedes der Strukturelemente von Fig. 1 und der Betrieb desselben wird nun beschrieben.The internal structure of each of the structural elements of Fig. 1 and the operation thereof will now be described.

Zunächst wird die Struktur des Cache-Speichers 1 in Verbindung mit Fig. 3 beschrieben.First, the structure of the cache memory 1 is described in connection with Fig. 3.

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.Cache memory 1 consists mainly of an associative memory 2 and RAMs 3a, 3b. Here, as mentioned with reference to Fig. 2, the two data areas (stored under 3a and 3b) with consecutive word addresses are related to an associated marking address in the associative memory 2. The data areas of the RAMs 3a and 3b are provided with flag sections (3a', 3b'). In this embodiment, a flag section 2' is also present in the associative memory 2 itself to indicate that an address has been stored in an effective state.

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.The cache memory 1 receives, among the address signals of 32 bits, a signal 11 corresponding to the thirteenth bit (A2) and a signal 12 consisting of the upper 29 bits (A31 to A3) as an instruction access address. The signal 11 indicates whether the access address is even or odd. A signal 11 of zero represents an even address. A signal 11 of 1 represents an odd address. Further, a signal 14 consisting of 32 bits is input as an instruction input signal. Further, control signals 18, 19, 20, 21 and 22 are input. The instruction consisting of 32 bits read out from the cache memory is produced as a signal 13. Data related to a hit and a miss are formed based on the signals from the flag sections 3a', 3b' of the data areas and are produced as valid flag signals 15, 16 and 17. The valid flag signal 15 is produced when the cache memory reference indicates that there is no associated tag address in the associative part 2. The valid flag signal 16 is produced when an effective instruction is stored at an instruction address during the access operation. The valid flag 17 is produced when an instruction in effective form exists in the RAM 3b at an odd-numbered instruction address, for which there is a high probability of being accessed in the next times under the condition that the allocation address currently being accessed is even-numbered.

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.The associative memory 2 receives the signal 12 as an associative write input, and it receives the signal 18 as a valid flag. The allocation result, i.e., hit/miss, is produced as signal 33, and the indication of which line was hit is produced as signal 40. The RAMs 3a and 3b are addressed by the signal 40, and the signals 14, 34, and 11 are input to them as write input signals. Signals 31, 32, 35, and 36 are produced as read output signals. The signal 31 is produced in response to the signal 14 input to the RAM 3a, the signal 35 is produced in response to the input signal 34, the signal 32 is produced in response to the signal 14 input to the RAM 3b, and the signal 36 is produced in response to the input signal 11. The signals 31 and 32 input to a selector 4 are selected by the signal 11. When the signal 11 is zero, the value of the signal 31 is produced as the signal 13, and when the signal 11 is 1, the signal 32 is produced as the signal 13. The signal 19 is a write specifying signal for the associative memory 2, and the signal 20 is a line specifying signal to be written. The signal 21 is a write specifying signal for the RAM 3a, and the signal 22 is a write specifying signal for the 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.The associative memory 2 stores associative data of 29 bits and a validity flag of one bit. Depending on the write specifying signal 29, the associative memory 2 operates as described below. When the signal 19 is "0", the signal 12 is compared with the associated address stored in each of the rows. When a row is found for which there is a match and when the validity flag 2' of this line is 1 (i.e., when no corresponding address exists in effective form), the signal 33 is set to "1" and the line for the signal 40 corresponding to the line is set to "1". The validity flag signal "0" taken from the signal 33 via an inverter 5 indicates that an assigned effective tag address is contained in the associative part 2. Thereafter, when the signal 19 is "1", the value of the signal 12 as an assigned tag address and the value of the signal 18 as a validity flag are written into the line specified by the signal 20.

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.The RAMs 3a and 3b store instructions for an even-numbered word address and an odd-numbered word address, respectively. The cache memory 1 also has inverters 5 and 6, AND gates 7, 8 and 9, and an OR gate 10.

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.A read operation of the cache memory 1 is carried out under the control of the read/write control circuit 100 for the cache memory shown in Fig. 1 as described below. Fig. 4 shows an example of the read/write control circuit for the cache memory. A write signal 50 is set to "0" and the address of a read instruction is inputted in the form of the above-mentioned signals 11 and 12. Since the write signal 50 is "0", the signals 19, 21 and 22 also become "9" level to indicate the writing of data into the associative memory 2 and the RAMs 3a, 3b via AND gates 106, 107 and 108 of the write control circuit. Since the signal 19 is "0", the associative memory 2 performs the assignment to the signal 12, and the result is created in the form of signals 33 and 40.

Ein typischer Lesevorgang gemäß der Erfindung wird durch die Cache-Speicher-Steuerschaltung 202 auf eine Weise ausgeführt, wie sie unten beschrieben ist.A typical read operation according to the invention is carried out by the cache memory control circuit 202 in a manner as described below.

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.Fig. 5 illustrates the structure of the instruction cache control circuit 202, which starts its operation upon receipt of a branch request signal 211 or a prefetch request signal 212 supplied from the instruction execution block 201. The branch request signal 211 is input from the instruction execution block to the instruction cache control circuit when a branch is generated during the execution of a program, and the prefetch request signal 212 is input from the instruction execution block to the instruction cache control circuit when no branch is generated but when the program is to be executed sequentially.

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.First, when the instruction execution block 201 requests a branch (the signal 211 is "1" and the signal 212 is "0") and when a prefetch is requested and the instruction address is even (the signal 211 is "0", the signal 212 is "1" and the signal 11 is "0"), an OR gate 225 produces an output signal "1" due to an inverter 222, AND gates 223 and 224 and an OR gate 225. Therefore, when the valid flag signal 16 is "1" (or stored), indicating that a valid instruction is stored at an instruction address during the access operation, an AND gate 231 produces an output signal "1", thereby generating a cache memory access request signal 215 via a OR gate 233 is created. When the validity flag signal is "0" (not stored), on the other hand, an access request signal 214 for an external memory is created via an inverter 226, an AND gate 228 and an OR gate 230.

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.At this time, the output signal of the OR gate 225 is also fed into the clock input CK of a D flip-flop (D-FF) 221. A validity flag signal 17 indicating that an instruction at an odd-numbered address with a high probability of next access is present in the RAM 3b in an effective form when the instruction address being accessed is an even-numbered address is input to the D input of the D-FF 221. That is, while the even-numbered address is being accessed, the existence of a data value at an odd-numbered address is input as a validity flag signal 17 to the D input of the D-FF 221.

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.When the instruction execution block 201 makes a prefetch request and when the instruction address is changed from the previous even state to an odd state (the signal 211 becomes "0", the signal 212 becomes "1", and the signal 11 becomes "1"), the instruction cache control circuit 202, which is formed with the D-FF 221 as the center, exhibits its operation characteristic of the invention. First, when the signal 11 becomes "1", the OR gate 225 applies a signal "0" to the clock input CK of the D-FF 221. The data value of the validity flag signal 17 is generated at the output Q of the D-FF at the timing of the change of the clock input signal. When the validity flag signal 17 is "1" (there exists an instruction at an odd-numbered address), the output signal Q becomes "1", and a cache memory access request signal 215 is produced via an AND gate 232 and an OR gate 233. On the other hand, when the validity flag signal 17 is "0" (there exists no instruction at an odd-numbered address), the output signal Q becomes "0", and an external memory access request signal 214 is produced via an inverter 227, the AND gate 229, and the OR gate 230.

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).Fig. 6 is a flow chart showing the above-mentioned Operation is illustrated. When the branch request signal 211 is "1", the instruction execution block starts the program from a step 302. When the instruction pre-access request signal 212 is "1", the instruction execution block starts the program from a step 301 in which it examines whether the instruction address is odd or even. When the instruction address is even, the program proceeds to a step 302, and when the instruction address is odd, the program proceeds to a step 306. Here, an even instruction address (word address) indicates that access is made to a data area to be accessed first among a plurality of data areas (in this case, two areas) for a tag address of the associative part. On the other hand, when the instruction address is odd, it means that access is made to other data areas. In the next step 302, the cache memory 1 performs the associative operation, ie, the cache memory reference. As can be understood from the flowchart, the step 302 is executed when (1) the instruction execution block 201 generates the branch request signal 211 and when (2) the instruction execution block 201 generates the prefetch request signal 212 and when the instruction address is even (ie, when access is to be made to a data area to be accessed first).

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.If it is confirmed in a step 303 using a validity flag 16 that an instruction to be accessed exists in the cache memory 1 (hit), the program proceeds to a step 304. On the other hand, if no instruction exists (miss), the program proceeds to a step 305. In step 304, the instruction is read out from the cache memory 1, the signal 215 asserts, and the read instruction 13 is transferred to a data bus 213 via a three-state buffer 203. The step 305 asserts the external memory access request signal 214, reads an instruction from the external memory 204, and supplies it to the data bus 213. The instruction supplied to the data bus 213 in the above steps 304 and 305 is received and executed by the instruction execution block 201.

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.If the instruction address is odd in step 301, the program proceeds to step 306, which forms a characteristic part of the invention and is executed when the instruction execution block 201 generates a pre-access request signal 212 and when the instruction address is odd (i.e., when access is made to data areas other than the data area to be accessed first). The program proceeds to step 304 when it is confirmed in step 306 using the validity flag 17 that the instruction to be accessed exists in the cache memory 1 (hit). That is, no usual cache memory reference is performed in step 306, but rather this is performed in the preceding step 302 of addressing an even-numbered instruction, with a hit or miss being determined using the stored data value of the validity flag 17.

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.The above has described the operation at the time of prefetching an instruction. However, it is obvious that the invention can be implemented even when an emptied register in the stack area is to be restored.

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.In the embodiments, the number of words (number of data areas) of the RAM corresponding to the associative part was set to 2. However, it is obvious that the invention can easily be extended so that it covers a number of words (number of data areas) that is a power of 2.

Claims (3)

1. Mikroprozessor mit:1. Microprocessor with: - 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;- a cache memory (1) with a marker address section (2) for storing a plurality of marking addresses (402), each consisting of a plurality of bits, and a data part with a plurality of rows forming a matrix, wherein each row is formed by a plurality of consecutive data areas (3a, 3b) which are jointly accessed by an associated marking address (402), wherein each of the plurality of data areas (3a, 3b) is selectively specified by at least one bit of the associated marking address (402); - einem Anweisungausführungsblock (201), der Anweisungen auf Grundlage der im Cache-Speicher (1) oder einem externen Speicher (204) ausführt; und- an instruction execution block (201) which executes instructions based on the instructions stored in the cache memory (1) or an external memory (204); and - einer Cache-Speicher-Steuerschaltung (202) zum Steuern des Betriebs des Cache-Speichers (1);- a cache memory control circuit (202) for controlling the operation of the cache memory (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;characterized in that - the first and second data areas (3a, 3b) of the consecutive data areas in the cache memory (1) are accessed jointly by an "upper bits" signal (signal 12 with the upper bits A31-A3) of an instruction access address (11, 12) generated by the instruction execution block (201); - 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;- that the first and second data areas (3a, 3b) in the cache memory (1) are each selectively specified by a "lower bits" signal (11, A2) of the instruction access address; - 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;- that the first and second data areas (3a, 3b) in the cache memory (1) each have a flag section (3a', 3b') for storing a flag (403a', 403b') which indicates whether or not valid data is stored in it; - daß die Cache-Speicher-Steuerschaltung 202 folgendes aufweist:- that the cache memory control circuit 202 comprises: - 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;- a first device (7, 8, 9, 10) for reading the Flags (3b') in the second data area (3b) when the flag (3a') in the first data area (3a) is read out in response to the "upper bits" signal (12) and the "lower bits" signal (11) of the instruction access address; - 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- a second device (221) for retaining information related to the flag (3b') of the second data area (3b) read out by the first device (9); and - 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;- third means (223-225, 227, 230, 232, 233) for reading the information from the second means (221) on the "lower bits" signal (11) of the instruction address when the second data value (3b) is subsequently accessed after the first data area (3a) has been accessed; - 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.- and that depending on the flag (3b') stored in the second device (221) concerning the second data area (3a, 3b) of the line which is selectively specified by the "lower bits" signal (11, A2) of the instruction access address (11, 12), it is determined whether or not there is a hit in the cache memory. 2. Mikroprozessor nach Anspruch 1, bei dem der Cache-Speicher (1) folgendes aufweist:2. Microprocessor according to claim 1, wherein the cache memory (1) comprises: - 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- a first stack (3) of a plurality of rows forming a column, each row having said first and said second data areas (3a, 3b); and - 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.- a second stack (2) of several rows forming a column, wherein each row of the second stack contains address information corresponding to data stored in a corresponding row of the first and second data areas (3a, 3b). 3. Mikroprozessor nach Anspruch 2,3. Microprocessor according to claim 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- in which the "upper bits" signal (12) of the instruction access address is compared with the address information stored in the several rows of the second stack (3) will; and - 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.- in which each of the plurality of rows in the first stack (3) is selected depending on a match when comparing the "upper bits" signal (12) with the address information stored in the plurality of rows of the second stack (3).
DE3750175T 1986-11-14 1987-11-13 Microprocessor with a cache memory. Expired - Fee Related DE3750175T2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP27123586 1986-11-14

Publications (2)

Publication Number Publication Date
DE3750175D1 DE3750175D1 (en) 1994-08-11
DE3750175T2 true DE3750175T2 (en) 1994-10-13

Family

ID=17497237

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3750175T Expired - Fee Related DE3750175T2 (en) 1986-11-14 1987-11-13 Microprocessor with a cache memory.

Country Status (5)

Country Link
US (1) US4942521A (en)
EP (1) EP0267628B1 (en)
JP (1) JPS63238646A (en)
KR (1) KR950006590B1 (en)
DE (1) DE3750175T2 (en)

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 (en) * 1990-07-27 1992-08-21 Dell Usa Corp Processor which performs memory access in parallel with cache access and method used therrfor
JP2773471B2 (en) * 1991-07-24 1998-07-09 日本電気株式会社 Information processing device
DE69334046T2 (en) * 1992-02-28 2007-02-08 Oki Electric Industry Co., Ltd. Cache memory device
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 (en) * 1995-04-14 1998-02-10 甲府日本電気株式会社 Cache memory device
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
JPWO2005122177A1 (en) * 2004-06-09 2008-04-10 松下電器産業株式会社 Semiconductor integrated circuit
DE602007012519D1 (en) * 2007-04-05 2011-03-31 St Microelectronics Res & Dev Integrated circuit with limited data access
CN104699627B (en) * 2013-12-06 2019-05-07 上海芯豪微电子有限公司 A kind of caching system and method

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4424561A (en) * 1980-12-31 1984-01-03 Honeywell Information Systems Inc. Odd/even bank structure for a cache memory
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
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
EP0732656B1 (en) * 1985-02-22 2003-08-06 Intergraph Corporation Cache MMU system
JPS61214039A (en) * 1985-03-20 1986-09-22 Hitachi Ltd Cache memory
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
KR950006590B1 (en) 1995-06-19
US4942521A (en) 1990-07-17
EP0267628A3 (en) 1990-07-04
DE3750175D1 (en) 1994-08-11
KR880006600A (en) 1988-07-23
JPS63238646A (en) 1988-10-04
EP0267628B1 (en) 1994-07-06
EP0267628A2 (en) 1988-05-18

Similar Documents

Publication Publication Date Title
DE2260353C2 (en) Circuit arrangement for address translation in a data processing system
DE2350225C2 (en)
DE3011552C2 (en)
DE3909896C2 (en)
DE1956604C3 (en) Data processing system
DE3724317C2 (en)
DE3588009T2 (en) Device and method for reconfiguring a memory in a data processing arrangement.
DE3750175T2 (en) Microprocessor with a cache memory.
DE2944419C2 (en)
DE3688640T2 (en) Search device.
EP0013737A1 (en) Multilevel storage hierarchy for a data processing system
DE2230987C2 (en)
DE2630323A1 (en) DATA STORAGE DEVICE
DE2130299A1 (en) Input / output channel for data processing systems
DE68916563T2 (en) Memory arrangement with prediction of the block selection.
DE3046912C2 (en) Circuit arrangement for the selective deletion of cache memories in a multiprocessor data processing system
DE3688400T2 (en) CACHE MEMORY CIRCUIT SUITABLE FOR PROCESSING A READING REQUEST DURING THE TRANSFER OF A DATA BLOCK.
DE2310631A1 (en) STORAGE HIERARCHY FOR A DATA PROCESSING SYSTEM
DE3850514T2 (en) Cache with hit prediction logic.
DE3588061T2 (en) Memory access control system and method for an information processing device.
DE3911721C2 (en)
EP1079307B1 (en) Method for operating a memory system as well as memory system
DE19842677A1 (en) Memory access control circuit
DE3340956C2 (en)
DE19628039A1 (en) Memory address control circuit

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee