DE69330875T2 - CACHE DEVICE. - Google Patents
CACHE DEVICE.Info
- Publication number
- DE69330875T2 DE69330875T2 DE69330875T DE69330875T DE69330875T2 DE 69330875 T2 DE69330875 T2 DE 69330875T2 DE 69330875 T DE69330875 T DE 69330875T DE 69330875 T DE69330875 T DE 69330875T DE 69330875 T2 DE69330875 T2 DE 69330875T2
- Authority
- DE
- Germany
- Prior art keywords
- cache
- data
- register
- memory device
- address
- 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 - Lifetime
Links
- 230000015654 memory Effects 0.000 claims description 156
- 239000000872 buffer Substances 0.000 claims description 75
- 238000012544 monitoring process Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 17
- 238000000034 method Methods 0.000 description 8
- 238000013500 data storage Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- 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
-
- 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/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
- G06F12/0859—Overlapped cache accessing, e.g. pipeline with reload from main memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
Die vorliegende Erfindung betrifft eine Cachespeichervorrichtung zum Lesen von Daten mit hoher Geschwindigkeit zur Verwendung mit einer Informationsverarbeitungseinheit, wie beispielsweise einem Mikroprozessor (der hierin nachfolgend MPU genannt wird).The present invention relates to a cache memory device for reading data at high speed for use with an information processing unit such as a microprocessor (hereinafter referred to as MPU).
Cachespeichervorrichtungen sind weit verbreitet verwendet worden, um die Verarbeitungsgeschwindigkeiten von Informationsverarbeitungseinheiten zu verbessern. Die Technologien von Cachespeichervorrichtungen sind beispielsweise beschrieben in:Cache memory devices have been widely used to improve the processing speeds of information processing units. The technologies of cache memory devices are described, for example, in:
(1) Harold S. Stone, "High Performance Computer Architecture (Translated Title)", 30. März 1989, Maruzen, S. 23-42.(1) Harold S. Stone, "High Performance Computer Architecture (Translated Title)", March 30, 1989, Maruzen, pp. 23-42.
(2) Nikkei Electronics [434], 16. November 1987, Nikkei BP Company, S. 159-174.(2) Nikkei Electronics [434], November 16, 1987, Nikkei BP Company, pp. 159-174.
In den Dokumenten 1 und 2 sind die Grundaufbauten der herkömmlichen Cachespeichervorrichtungen beschrieben. Die herkömmlichen Cachespeichervorrichtungen enthalten einen Speicher mit einem kleineren Speicherplatz als ein externer Speicher, um die Verarbeitungsgeschwindigkeit zu erhöhen. Dieser Speicher wird Cachespeicher genannt. Wenn Daten, die oft gelesen werden, im Cachespeicher gespeichert werden, können diese Daten schnell gelesen werden. Wenn erforderliche Daten nicht im Cachespeicher gespeichert sind, werden sie aus einem externen Speicher der Cachespeichervorrichtung gelesen. In diesem Fall werden die Daten mit normaler Geschwindigkeit gelesen. Als nächstes wird ein praktischer Aufbau der Cachespeichervorrichtung und ihr Betrieb beschrieben.Documents 1 and 2 describe the basic structures of the conventional cache memory devices. The conventional cache memory devices include a memory with a smaller storage space than an external memory in order to increase the processing speed. This memory is called a cache memory. When data that is often read is stored in the cache memory, this data can be read quickly. When required data is not stored in the cache memory, it is read from an external memory of the cache memory device. In this case, the data is read at a normal speed. Next, a practical structure of the cache memory device and its operation will be described.
Fig. 2 ist ein schematisches Diagramm, das eine Grundschaltung einer herkömmlichen Cachespeichervorrichtung zeigt.Fig. 2 is a schematic diagram showing a basic circuit of a conventional cache memory device.
In Fig. 2 ist ein Bezugszeichen 50 eine Cachespeichervorrichtung. Die Cachespeichervorrichtung 50 gibt Cache-Daten CD zu einem Datenlese-Requester 1 (hierin nachfolgend wird der Datenlese-Requester Daten-Requester genannt), wie beispielsweise einer Zentralverarbeitungseinheit, gemäß einer von ihm angefragten Cache-Adresse CA aus.In Fig. 2, reference numeral 50 is a cache memory device. The cache memory device 50 outputs cache data CD to a data read requester 1 (hereinafter, the data read requester is called data requester) as for example, a central processing unit, according to a cache address CA requested by it.
Die Cachespeichervorrichtung 50 weist eine Steuerschaltung 10, einen Cache-Tag- Speicher bzw. Cache-Kennungsspeicher 11 und einen Cache-Datenspeicher 12 auf, und eine Übereinstimmungs-Bestimmungsschaltung 13. Die Steuerschaltung 10 steuert innere Schaltungen der Cachespeichervorrichtung 50. Der Cache-Tag- Speicher 11 ist aus einem Direktzugriffsspeicher (der hierin nachfolgend RAM genannt wird) mit hoher Geschwindigkeit und kleiner Kapazität oder ähnlichem aufgebaut. Der Cache-Datenspeicher 12 ist auch aus einem RAM oder ähnlichem aufgebaut. Der Cache-Tag-Speicher 11 speichert einen Teil von Adressen von im Cache-Datenspeicher 12 gespeicherten Daten. Der Cache-Tag-Speicher 11 hat einen Adressenanschluß A, einen Daten-Eingabe/Ausgabe-Anschluß (der hierin nachfolgend I/O-Anschluß genannt wird), einen Schreibfreigabeanschluß WE und Anschlüsse VAi und VAe. Der Schreibfreigabeanschluß W E wird durch die Steuerschaltung 10 aktiviert. Gleichermaßen werden die Anschlüsse VAi und VAe durch die Steuerschaltung 10 aktiviert. Der Cache-Datenspeicher 12 speichert Daten, die oft gelesen werden. Der Cache-Datenspeicher 12 hat einen Adressenanschluß A, einen I/O-Anschluß D und einen Schreibfreigabeanschluß WE. Der Schreibfreigabeanschluß WE wird durch die Steuerschaltung 10 aktiviert. Die Übereinstimmungs-Bestimmungsschaltung 10 hat einen Freigabeanschluß E. Wenn der Freigabeanschluß E aktiviert wird, erfaßt die Übereinstimmungs- Bestimmungsschaltung 13, ob zwei Informationen miteinander übereinstimmen oder nicht. Wenn die zwei Informationen miteinander übereinstimmen, gibt die Übereinstimmungs-Bestimmungsschaltung 13 ein Treffersignal HIT aus.The cache memory device 50 includes a control circuit 10, a cache tag memory 11 and a cache data memory 12, and a match determination circuit 13. The control circuit 10 controls internal circuits of the cache memory device 50. The cache tag memory 11 is constructed of a high-speed, small-capacity random access memory (hereinafter referred to as RAM) or the like. The cache data memory 12 is also constructed of a RAM or the like. The cache tag memory 11 stores a part of addresses of data stored in the cache data memory 12. The cache tag memory 11 has an address terminal A, a data input/output terminal (hereinafter referred to as I/O terminal), a write enable terminal WE, and terminals VAi and VAe. The write enable terminal W E is activated by the control circuit 10. Similarly, the terminals VAi and VAe are activated by the control circuit 10. The cache data memory 12 stores data that is often read. The cache data memory 12 has an address terminal A, an I/O terminal D and a write enable terminal WE. The write enable terminal WE is activated by the control circuit 10. The match determination circuit 10 has an enable terminal E. When the enable terminal E is activated, the match determination circuit 13 detects whether or not two pieces of information match each other. When the two pieces of information match each other, the match determination circuit 13 outputs a hit signal HIT.
Die Cachespeicher 50 weist auch Register 14 und 15, ein externes Register 16, Puffer mit drei Zuständen 17, 18, 20 und 21, ein UND-Gatter 19 und einen IA-Bus 22 auf. Das Register 14 hat einen Freigabeanschluß E. Wenn der Freigabeanschluß E mit einem Treffersignal HIT aktiviert wird, speichert das Register 14 eine Cache-Adresse CA. Das Register 15 hat auch einen Freigabeanschluß E. Wenn der Freigabeanschluß E mit einem Treffersignal HIT aktiviert wird, speichert das Register 15 Cache-Daten CD, die über den ID-Bus 23 empfangen werden. Das externe Register 16 hat einen Zählfreigabeanschluß CE. Wenn der Zählfreigabeanschluß CE durch die Steuerschaltung 10 aktiviert wird, speichert das externe Register 16 eine Adresse EA. Die Puffer mit drei Zuständen 17, 18, 20 und 21 werden durch die Steuerschaltung 10 gesteuert.The cache memory 50 also includes registers 14 and 15, an external register 16, tri-state buffers 17, 18, 20 and 21, an AND gate 19 and an IA bus 22. The register 14 has an enable terminal E. When the enable terminal E is activated with a hit signal HIT, the register 14 stores a cache address CA. The register 15 also has an enable terminal E. When the enable terminal E is activated with a hit signal HIT, the register 15 stores cache data CD received via the ID bus 23. The external register 16 has a count enable terminal CE. When the count enable terminal CE is activated by the control circuit 10, the external register 16 stores an address EA. The three-state buffers 17, 18, 20 and 21 are controlled by the control circuit 10.
Adressenanschlüsse A des Cache-Tag-Speichers 11 und des Cache- Datenspeichers 12 sind mit der Ausgangsseite des Registers 14, das eine Cache- Adresse CA speichert, über den Puffer mit drei Zuständen 17 und den IA-Bus 22 verbunden. Das Register 14 gibt die Anzahl von Bits a einer Cache-Adresse CA zum IA-Bus 22 aus. Log&sub2; (die Anzahl von Tags) = b der Anzahl von Bits a wird zum Adressenanschluß A des Cache-Tag-Speichers 11 zugeführt. Der Teil niedriger Wertigkeit (b + 1) {wobei 1 = Log&sub2; (Anzahl von Leitungen)} der Cache-Adresse CA wird zum Adressenanschluß A des Cache-Datenspeichers 12 zugeführt. Der Teil hoher Wertigkeit(a - b - 1) der Cache-Adresse CA wird zur Übereinstimmungs- Bestimmungsschaltung 13 zugeführt. Der Teil hoher Wertigkeit(a - b - 1) der Cache-Adresse CA wird zu sowohl dem I/O-Anschluß D des Cache-Tag-Speichers 11 als auch der Übereinstimmungs-Bestimmungsschaltung 13 zugeführt. Der Anschluß VAo des Cache-Tag-Speichers 11 ist über das UND-Gatter 19, das durch die Steuerschaltung 10 gesteuert wird, mit dem Freigabeanschluß E der Übereinstimmungs-Bestimmungsschaltung 13 verbunden.Address terminals A of the cache tag memory 11 and the cache data memory 12 are connected to the output side of the register 14 storing a cache address CA via the tri-state buffer 17 and the IA bus 22. The register 14 outputs the number of bits a of a cache address CA to the IA bus 22. Log2 (the number of tags) = b of the number of bits a is supplied to the address terminal A of the cache tag memory 11. The low-order part (b + 1) {where 1 = Log2 (number of lines)} of the cache address CA is supplied to the address terminal A of the cache data memory 12. The high-order part (a - b - 1) of the cache address CA is supplied to the match determination circuit 13. The high-order part (a - b - 1) of the cache address CA is supplied to both the I/O terminal D of the cache tag memory 11 and the match determination circuit 13. The terminal VAo of the cache tag memory 11 is connected to the enable terminal E of the match determination circuit 13 via the AND gate 19 controlled by the control circuit 10.
Der I/O-Anschluß D des Cache-Datenspeichers 12 ist mit dem ID-Bus 23 verbunden. Der ID-Bus 23 ist mit der Eingangsseite des Registers 15 verbunden. Das externe Register 16 ist mit der Ausgangsseite des Registers 14 verbunden. Der Zählerfreigabeanschluß CE der Steuerschaltung 10 wird durch die Steuerschaltung 10 aktiviert. Wenn der Anschluß CE aktiviert wird, speichert das externe Register 16 die Anzahl von Bits a (= Adresse EA) der vom Register 14 zugeführten Cache- Adresse CA. Die Ausgangsseite des externen Registers 16 ist mit sowohl dem IA- Bus 22 über den Puffer mit drei Zuständen 20 verbunden, als auch einem Adressenanschluß 30 des externen Speichers 30,d er auf einem RAM mit niedriger Geschwindigkeit und großer Kapazität oder ähnlichem aufgebaut ist. Der externe Speicher 30 hat auch einen Datenausgangsanschluß D, einen Anschluß D-WAIT und so weiter, sowie den Adressenanschluß A. Der Anschluß D-WAIT gibt ein Signal aus, das veranlaßt, daß die Cachespeichervorrichtung 50 zu einem Wartezustand gelangt. Der Datenausgangsanschluß D ist über den Puffer mit drei Zuständen 21 mit dem ID-Bus 23 verbunden. Der Anschluß D-WAIT ist mit der Eingangsseite der Steuerschaltung 10 verbunden.The I/O terminal D of the cache data memory 12 is connected to the ID bus 23. The ID bus 23 is connected to the input side of the register 15. The external register 16 is connected to the output side of the register 14. The counter enable terminal CE of the control circuit 10 is activated by the control circuit 10. When the terminal CE is activated, the external register 16 stores the number of bits a (= address EA) of the cache address CA supplied from the register 14. The output side of the external register 16 is connected to both the IA bus 22 via the three-state buffer 20 and an address terminal 30 of the external memory 30 constructed of a low-speed, large-capacity RAM or the like. The external memory 30 also has a data output terminal D, a D-WAIT terminal, and so on, as well as the address terminal A. The D-WAIT terminal outputs a signal that causes the cache memory device 50 to enter a wait state. The data output terminal D is connected to the ID bus 23 via the tri-state buffer 21. The D-WAIT terminal is connected to the input side of the control circuit 10.
Fig. 3 ist ein schematisches Diagramm zum Erklären von Daten, die im Cache-Tag- Speicher 11 gespeichert sind. Der Cache-Tag-Speicher 11 ist aus Adressen (Tags), gültigen Bits und so weiter aufgebaut. Die Adressen (Tags bzw. Kennungen) sind so gruppiert, daß der Hardwareaufwand reduziert wird. Die Anzahl von Gruppen bezieht sich auf die Anzahl von Leitungen (oder die Anzahl von Blöcken). Normalerweise sind die benachbarten Adressen gruppiert. In Fig. 3 hat eine Gruppe vier Daten. Beispielsweise sind Daten mit denselben Bits außer den zwei Bits niedriger Wertigkeit als eine Gruppe definiert.Fig. 3 is a schematic diagram for explaining data stored in the cache tag memory 11. The cache tag memory 11 is constructed of addresses (tags), valid bits, and so on. The addresses (tags) are grouped so that the hardware overhead is reduced. The number of groups refers to the number of lines (or the number of blocks). Usually, the adjacent addresses are grouped. In Fig. 3, one group has four data. For example, data with the same bits except the two low-order bits is defined as one group.
Als nächstes wird der Betrieb der in Fig. 2 gezeigten Cachespeichervorrichtung 50 beschrieben.Next, the operation of the cache memory device 50 shown in Fig. 2 will be described.
Wenn der Cache-Requester 1 eine Cache-Adresse CA zur Cachespeichervorrichtung 50 zuführt, wird die Cache-Adresse CA temporär im Register 14 gespeichert. Danach wird die Cache-Adresse CA gelesen und es wird bestimmt, ob Daten der Cache-Adresse CA, die im Cachespeicher 12 gespeichert ist, entsprechen oder nicht (d. h. ob ein Treffer stattfindet oder nicht). Anders ausgedrückt bestimmt die Übereinstimmungs-Bestimmungsschaltung 13, ob die Cache-Adresse CA, die vom Register 14 über den Puffer mit drei Zuständen 17 zum IA-Bus 22 ausgegeben worden ist, mit dem inhalt des Cache-Tag-Speichers 11 übereinstimmt oder nicht. Wenn sie miteinander übereinstimmen (hierin nachfolgend wird dieser Zustand Treffer genannt), gibt die Übereinstimmungs-Bestimmungsschaltung 13 ein Treffersignal HIT zur Steuerschaltung 10 und zu den Freigabeanschlüssen E der Register 14 und 15 aus. Wenn das Treffersignal HIT zur Steuerschaltung 10 eingegeben wird, aktiviert ein Ausgangssignal der Steuerschaltung 10 die Schreibfreigabeanschlüsse WE des Cache-Tag-Speichers 11 und des Cache-Datenspeichers 12. Somit werden Daten, die mit dem Teil niedriger Wertigkeit (b + 1) der Cache- Adresse CA bestimmt sind, vom Cache-Datenspeicher 12 zum ID-Bus 23 zugeführt. Die zum ID-Bus 23 zugeführten Daten sind Cache-Daten CD und über das Register 15 eine Ausgabe zum Cache-Requester 1.When the cache requester 1 supplies a cache address CA to the cache memory device 50, the cache address CA is temporarily stored in the register 14. Thereafter, the cache address CA is read, and it is determined whether or not data corresponds to the cache address CA stored in the cache memory 12 (i.e., whether or not a hit occurs). In other words, the match determination circuit 13 determines whether or not the cache address CA output from the register 14 to the IA bus 22 via the three-state buffer 17 matches the content of the cache tag memory 11. When they match each other (hereinafter, this state is called a hit), the match determination circuit 13 outputs a hit signal HIT to the control circuit 10 and to the enable terminals E of the registers 14 and 15. When the hit signal HIT is input to the control circuit 10, an output signal of the control circuit 10 activates the write enable terminals WE of the cache tag memory 11 and the cache data memory 12. Thus, data designated with the low-order part (b + 1) of the cache address CA is supplied from the cache data memory 12 to the ID bus 23. The data supplied to the ID bus 23 is cache data CD and is output to the cache requester 1 via the register 15.
Andererseits führt das Cache-Register 16, das durch das Ausgangssignal der Steuerschaltung 10 aktiviert wird, dann, wenn die Daten der durch den Cache- Requester 1 angefragten Cache-Adresse CA entsprechen (dieser Zustand wird hierin nachfolgend Nichttreffer genannt), die Anzahl von Bits a (EA) der Cache- Adresse CA zum Adressenanschluß A des Speichers 30 zu. Somit werden Datensatzdaten entsprechend der Anzahl von Bits a vom Ausgangsanschluß D des Speichers 30 zugeführt. Die Lesedaten werden über den Puffer mit drei Zuständen 21 zum Cache-Datenspeicher 12 zugeführt. Somit wird der Inhalt des Cache- Datenspeichers 12 einem Updaten unterzogen. Darauffolgend sind die Lesedaten Cache-Daten CD und werden über den ID-Bus 23 und das Register 15 zum Cache-Requester 1 zugeführt. In diesem Fall sind die Lesedaten Cache-Daten CD.On the other hand, when the data corresponds to the cache address CA requested by the cache requester 1 (this state is hereinafter called miss), the cache register 16 activated by the output signal of the control circuit 10 supplies the number of bits a (EA) of the cache address CA to the address terminal A of the memory 30. Thus, record data corresponding to the number of bits a is supplied from the output terminal D of the memory 30. The read data is supplied to the cache data memory 12 via the three-state buffer 21. Thus, the content of the cache data memory 12 is subjected to updating. Subsequently, the read data is Cache data CD and are fed to cache requester 1 via ID bus 23 and register 15. In this case, the read data is cache data CD.
Somit werden dann, wenn ein Nichttreffer stattfindet, Daten für eine Leitung mit einer Adresse, wo ein Nichttreffer stattfand, vom externen Speicher 30 gelesen. Folglich wird der Inhalt des Cache-Datenspeichers 12 einem Updaten unterzogen. Es gibt zwei Verfahren zum Updaten des Inhalts des Cache-Datenspeichers 12 entsprechend dem Auftreten eines Nichttreffers und zum Zuführen realer Cache- Daten CD zum Cache-Requester 1.Thus, when a miss occurs, data for a line having an address where a miss occurred is read from the external memory 30. Consequently, the contents of the cache data memory 12 undergo an update. There are two methods for updating the contents of the cache data memory 12 in accordance with the occurrence of a miss and for supplying real cache data CD to the cache requester 1.
Fig. 4 ist ein Zeitdiagramm, das den Betrieb der in Fig. 2 gezeigten Cachespeichervorrichtung 50 zeigt. In der Zeichnung stellen m, n + 1, ... Adressen dar. Eine Zeit für einen Mehraufwand für einen Nichttreffer ist eine Zeitperiode, in welcher Cache- Daten gültig werden, nachdem ein Nichttreffer stattfand.Fig. 4 is a timing chart showing the operation of the cache memory device 50 shown in Fig. 2. In the drawing, m, n + 1, ... represent addresses. A miss overhead time is a time period in which cache data becomes valid after a miss occurs.
In Fig. 4 gilt n + 1 = "x ... x01" (in einer binären Notation). Wie es in Fig. 3 gezeigt ist, hat eine Leitung vier Adressen. Auf den externen Speicher kann in zwei Zyklen zugegriffen werden. Ein Tag bzw. eine Kennung enthält ein gültiges Bit. In jeder von vier Schreiboperationen werden Tag-Daten (= "x ... x") geschrieben. Jedoch wird in der letzten Schreiboperation gültige Information zum gültigen Bit geschrieben. Die zwei Bits niedriger Wertigkeit des in Fig. 2 gezeigten externen Registers 16 arbeiten als Zähler. Wann immer ein Nichttreffer stattfindet, wird der Wert der Cache-Adresse CA geladen, und die zwei Bits niedrigerer Wertigkeit werden auf "00" gelöscht.In Fig. 4, n + 1 = "x ... x01" (in a binary notation). As shown in Fig. 3, one line has four addresses. The external memory can be accessed in two cycles. A tag contains one valid bit. In each of four write operations, tag data (= "x ... x") is written. However, in the last write operation, valid information is written to the valid bit. The two low-order bits of the external register 16 shown in Fig. 2 work as a counter. Whenever a miss occurs, the value of the cache address CA is loaded and the two low-order bits are cleared to "00".
Als das einfachste Verfahren zum Updaten des Cache-Datenspeichers 12 nach dem Auftreten eines Nichttreffers und zum Zuführen der realen Cache-Daten CD zum Cache-Requester 1 werden, wie es in Fig. 4 gezeigt ist, dann, wenn ein Nichttreffer stattfindet, Daten von einer vorbestimmten Adresse von einer Leitung gelesen, die sie enthält. Beispielsweise werden, wie es in Fig. 4 gezeigt ist, wenn eine Leitung vier Adressen hat, Daten in der Reihenfolge von "xx ... x00", "x ... x01", "x ... x10" und "x ... x11" gelesen. Während die Daten gerade gelesen werden, wird der Cache-Datenspeicher 12 zum Updaten der Daten verwendet. Somit werden die Cache-Daten CD selbst dann, wenn sie gelesen werden, nicht gültig.As the simplest method for updating the cache data memory 12 after the occurrence of a miss and supplying the real cache data CD to the cache requester 1, as shown in Fig. 4, when a miss occurs, data is read from a predetermined address from a line containing it. For example, as shown in Fig. 4, when a line has four addresses, data is read in the order of "xx...x00", "x...x01", "x...x10" and "x...x11". While the data is being read, the cache data memory 12 is used to update the data. Thus, even if the cache data CD is read, it does not become valid.
Durch ein Speicherverschachtelungsverfahren oder ein Zugriffsverfahren unter Verwendung der Charakteristiken eines dynamischen RAM (der hierin nachfolgend DRAM genannt wird) mit beispielsweise einem Seitenmode oder einer statischen Spalte kann eine Burst-Übertragung bzw. eine Datenübertragungsblock- Übertragung unterstützt werden, um die Zeit für einen Mehraufwand für einen Nichttreffer zu verkürzen. Fig. 5 zeigt einen Aufbau des zweiten Verfahrens.By a memory interleaving method or an access method using the characteristics of a dynamic RAM (hereinafter referred to as DRAM) having, for example, a page mode or a static column, a burst transfer or a frame transfer can be supported to shorten the time for an overhead for a miss. Fig. 5 shows a structure of the second method.
Fig. 6 ist ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung 51 gemäß dem zweiten Verfahren zeigt. Die Teile des Aufbaus, die mit der Fig. 2 gemeinsam sind, sind mit denselben Bezugszeichen bezeichnet.Fig. 6 is a schematic diagram showing a circuit of a cache memory device 51 according to the second method. The parts of the structure common to Fig. 2 are denoted by the same reference numerals.
Die Cachespeichervorrichtung 51 verwendet einen DRAM-Seitenmode. Der Unterschied zwischen der in Fig. 6 gezeigten Cachespeichervorrichtung und der in Fig. 2 gezeigten besteht darin, daß ein Zählerausgang des externen Registers 16 durch einen Addierer 35 inkrementiert wird. Die Ausgabe des Addierers 35 wird zu einem Selektor 36 zugeführt. Die Ausgabe des Selektors 36 wird zum Zähler zugeführt. In Fig. 5 stellt ein Bezugszeichen 40 eine angeschlossene Leitung dar.The cache memory device 51 uses a DRAM page mode. The difference between the cache memory device shown in Fig. 6 and that shown in Fig. 2 is that a counter output of the external register 16 is incremented by an adder 35. The output of the adder 35 is supplied to a selector 36. The output of the selector 36 is supplied to the counter. In Fig. 5, a reference numeral 40 represents a connected line.
Eine durch einen Cache-Requester 1 angefragte Cache-Adresse CA ist aufgebaut aus einem Tag bzw. einer Kennung TAG, einer Leitungsadresse LA und einer Eingangsleitungsadresse IA, die in der Reihenfolge des höchstwertigen Bits (MSB) zum niedrigstwertigen Bit (LSB) des Registers 14 gespeichert sind. Eine der Ausgaben der Eingangsleitungsadresse 1A und des Addierers 35 wird durch den Selektor 36 ausgewählt. Die Ausgabe des Selektors 36 wird zu einem Zähler eines externen Registers 16 zugeführt. Der externe Speicher 30 ist aus einem DRAM aufgebaut. Zum Betreiben des DRAM im Seitenmode werden ein niedriges Adressenhinweissignal {das hierin nachfolgend RASN (N stellt eine negative Logik dar) genannt wird}, ein Spaltenadressenhinweissignal (das hierin nachfolgend CASN genannt wird) und ein Speichersteuersignal S10, das ein Wartesignalverhältnis darstellt, zwischen dem externen Speicher 30 und der Steuerschaltung 10 ausgetauscht.A cache address CA requested by a cache requester 1 is composed of a tag TAG, a line address LA and an input line address IA stored in the order of the most significant bit (MSB) to the least significant bit (LSB) of the register 14. One of the outputs of the input line address 1A and the adder 35 is selected by the selector 36. The output of the selector 36 is supplied to a counter of an external register 16. The external memory 30 is composed of a DRAM. To operate the DRAM in the page mode, a low address strobe signal {hereinafter referred to as RASN (N represents negative logic)}, a column address strobe signal (hereinafter referred to as CASN), and a memory control signal S10 representing a wait signal ratio are exchanged between the external memory 30 and the control circuit 10.
Im DRAM-Seitenmode werden, während RASN auf dem L-Pegel ist, CASN-Pulse aufeinanderfolgend zugeführt, um Lese/Schreib-Operationen mit hoher Geschwindigkeit durchzuführen. In diesem Mode wird, während RASN auf dem "L"-Pegel ist und der Bitleitungspegel auf dem "L"-Pegel oder dem "H"-Pegel gehalten wird, die CAS-Operation wiederholt durchgeführt, um Daten zu einer erwünschten Bitleitung zu schreiben oder zu lesen.In DRAM page mode, while RASN is at the L level, CASN pulses are supplied sequentially to perform high-speed read/write operations. In this mode, while RASN is at the "L"level, and the bit line level is maintained at the "L" level or the "H" level, the CAS operation is repeatedly performed to write or read data to a desired bit line.
Fig. 6 ist ein Zeitdiagramm, das den Betrieb der Fig. 5 zeigt. In diesem Zeitdiagramm hat eine Leitung vier Daten. CK stellt einen Takt dar. n stellt dar, daß die zwei Bits niedriger Wertigkeit "0" sind.Fig. 6 is a timing chart showing the operation of Fig. 5. In this timing chart, one line has four data. CK represents one clock. n represents that the two low-order bits are "0".
In der in Fig. 5 gezeigten Cachespeichervorrichtung 51 bestimmt die Übereinstimmungs-Bestimmungsschaltung 13 dann, wenn eine erforderliche Cache-Adresse CA im Register 14 gespeichert ist, ob ein Tag TAG, das im Register 14 gespeichert ist, mit Daten übereinstimmt oder nicht, die über den Datenausgangsanschluß Do aus dem Cache-Tag-Speicher 11 gelesen werden. Wenn diese Daten nicht miteinander übereinstimmen, findet ein Nichttreffer statt. Somit wird das im Register 14 gespeicherte Tag TAG über eine Leitung 40 zum externen Register 16 zugeführt. Die Ausgabe des externen Registers 16 wird zum Adressenanschluß A des externen Speichers 30 zugeführt. Mit dem Speicher-Steuersignal S10 werden Daten aus dem Datenausgangsanschluß D des externen Speichers mit hoher Geschwindigkeit im Seitenmode gelesen und als Cache-Daten CD zum Eingangsanschluß Di des Cache-Datenspeichers 12 zugeführt. Die Cache-Daten CD werden vom Ausgangsanschluß Do des Cache-Datenspeichers 12 gelesen. Somit kann eine Zeit für einen Mehraufwand für einen Nichttreffer verkürzt werden.In the cache memory device 51 shown in Fig. 5, when a required cache address CA is stored in the register 14, the match determination circuit 13 determines whether or not a tag TAG stored in the register 14 matches data read from the cache tag memory 11 through the data output terminal Do. If these data do not match each other, a miss occurs. Thus, the tag TAG stored in the register 14 is supplied to the external register 16 through a line 40. The output of the external register 16 is supplied to the address terminal A of the external memory 30. With the memory control signal S10, data is read from the data output terminal D of the external memory at high speed in the page mode and supplied as cache data CD to the input terminal Di of the cache data memory 12. The cache data CD is read from the output terminal Do of the cache data memory 12. Thus, a time for an overhead for a miss can be shortened.
Jedoch haben die oben beschriebenen Cachespeichervorrichtungen 50 und 51 die folgenden Nachteile.However, the cache memory devices 50 and 51 described above have the following disadvantages.
Bei den Cachespeichervorrichtungen 50 und 51, wie sie in Fig. 2 gezeigt sind, ist dann, wenn ein Nichttreffer auftritt, da es eine lange Zeit dauert, die Nichttreffer- Daten zum Cache-Datenspeicher 12 zu schreiben, eine Zeit für einen Mehraufwand für einen Nichttreffer, für welche Daten gelesen werden, lang. Bei der in Fig. 5 gezeigten Cachespeichervorrichtung 51 sind deshalb, weil die Verarbeitungszeit des DRAM, der den externen Speicher 30 und so weiter bildet, kürzer als die Burst- Übertragungsrate ist, mehrere Taktperioden zum Lesen der Nichttreffer-Daten erforderlich. Den ersten Nichttreffer-Daten folgen vier Daten, wie es in Fig. 6 gezeigt ist.In the cache memory devices 50 and 51 as shown in Fig. 2, when a miss occurs, since it takes a long time to write the miss data to the cache data memory 12, a time for an overhead for a miss for which data is read is long. In the cache memory device 51 shown in Fig. 5, since the processing time of the DRAM constituting the external memory 30 and so on is shorter than the burst transfer rate, several clock periods are required for reading the miss data. The first miss data is followed by four data as shown in Fig. 6.
Bei der Cachespeichervorrichtung 51 tritt die Cachespeichervorrichtung 51 dann, wenn die einer Leitung, die eine Adresse enthält, nächste Leitung, bei welcher ein Nichttreffer stattfand, erforderlich ist, sogar aus dem Burst-Übertragungszugriffsmode aus. Somit sollte die Cachespeichervorrichtung 51 warten, bis die ersten Daten der Leitung empfangen werden, nachdem ein weiterer Nichttreffer stattfand. Anders ausgedrückt werden deshalb, weil Daten einer Leitung, die einen Nichttreffer enthält, einem Updaten unterzogen werden, obwohl es eingeschätzt werden kann, daß ein weiterer Nichttreffer bei Daten der nachfolgenden Adressen stattfinden wird, Daten von nur einer vorbestimmten Leitung einem Updaten unterzogen. Somit ist die Trefferrate niedrig. Folglich war es schwierig, Cachespeicher mit technischer Befriedigung zu erreichen.In the cache memory device 51, when the line next to a line containing an address where a miss occurred is required, the cache memory device 51 exits even from the burst transfer access mode. Thus, the cache memory device 51 should wait until the first data of the line is received after another miss occurred. In other words, because data of a line containing a miss is subjected to updating even though it can be estimated that another miss will occur in data of the subsequent addresses, data of only one predetermined line is subjected to updating. Thus, the hit rate is low. Consequently, it has been difficult to achieve cache memories with technical satisfaction.
Es ist eine Aufgabe der vorliegenden Erfindung, einen Cachespeicher zu schaffen, der eine reduzierte Zeit für einen Mehraufwand für einen Nichttreffer und eine verbesserte Trefferrate ohne eine Erhöhung des Hardwareaufwands hat.It is an object of the present invention to provide a cache memory that has a reduced miss overhead time and an improved hit rate without increasing hardware overhead.
EP-0,029,517 offenbart eine Cachespeichervorrichtung, die einen Cache-Tag- Speicher für eine Speicherung von Adresseninformation hoher Wertigkeit, einen Cache-Datenspeicher für eine Speicherung der Daten entsprechend einer Vielzahl von Adresseninformation niedriger Wertigkeit, eine Übereinstimmungs- Bestimmungsschaltung zum Vergleichen der höchstwertigen Bits einer Eingangsadresse mit der im Cache-Tag-Speicher gespeicherten Adresseninformation, ein Adressenregister zum Speichern der Eingangsadresse nur in einem Fall eines Nichttreffers und eine Steuerschaltung und eine Ausgangsschaltung zum Ausgeben von Daten entsprechend der Eingangsadresse in einem Fall eines Treffers aufweist.EP-0,029,517 discloses a cache memory device comprising a cache tag memory for storing high-order address information, a cache data memory for storing the data corresponding to a plurality of low-order address information, a match determination circuit for comparing the most significant bits of an input address with the address information stored in the cache tag memory, an address register for storing the input address only in a case of a miss, and a control circuit and an output circuit for outputting data corresponding to the input address in a case of a hit.
PATENT ABSTRACTS OF JAPAN, Vol. 11, No. 270 (P-611) 3. September 1987 & JP-A62 072 041 offenbart ein Vergleichen von Blockadressen in einem Adressenregister und einem Blockladeadressenregister und ein Berechnen basierend auf der Entscheidung einer Eingangsblock-Wortadresse, wo das Blockladen begonnen wird, und diese wird mit der Eingangsblock-Wortadresse der CPU-Speicher- Leseanfrage verglichen, um zu entscheiden, ob Daten bei einer Anfrageadresse bereits auf einen Cachespeicher geschrieben sind oder nicht.PATENT ABSTRACTS OF JAPAN, Vol. 11, No. 270 (P-611) September 3, 1987 & JP-A62 072 041 discloses comparing block addresses in an address register and a block load address register and calculating based on the decision of an input block word address where block loading is started and this is compared with the input block word address of the CPU memory read request to decide whether data at a request address is already written to a cache memory or not.
Zum Lösen der oben beschriebenen Probleme stellt die vorliegende Erfindung eine Cachespeichervorrichtung zur Verfügung, wie sie im unabhängigen Anspruch 1 definiert ist. Die abhängigen Ansprüche definieren besondere Ausführungsbeispiele der Erfindung.To solve the problems described above, the present invention provides a cache memory device as defined in independent claim 1. The dependent claims define particular embodiments of the invention.
Gemäß einem weiteren Aspekt gemäß der vorliegenden Erfindung ist eine Cachespeichervorrichtung geschaffen, die folgendes aufweist: einen ersten Cachespeicher zum Speichern von Adresseninformation hoher Wertigkeit von Adresseninformation entsprechend erwünschter Daten, einen zweiten Cachespeicher zum Speichern einer Vielzahl von Adresseninformationen niedriger Wertigkeit der Adresseninformation hoher Wertigkeit und einer Vielzahl von Daten entsprechend der Vielzahl von Adresseninformationen niedriger Wertigkeit, eine erste Übereinstimmungs-Bestimmungsschaltung zum Vergleichen von Adresseninformation hoher Wertigkeit, von Adresseninformation, die mit der im ersten Cachespeicher gespeicherten Adresseninformation hoher Wertigkeit eingegeben wird, um zu bestimmen, ob sie miteinander übereinstimmen oder nicht, ein Register zum Speichern einer Vielzahl von Eingangsadresseninformation und zum Erzeugen einer Vielzahl von Adresseninformationen, die in der Adresseninformation hoher Wertigkeit der Eingangsadresseninformation enthalten sind, nur dann, wenn die erste Erfassungsschaltung einen Nichtübereinstimmungszustand bestimmt hat, eine Steuerschaltung zum Lesen von Daten entsprechend der Eingangsadresseninformation aus dem zweiten Cachespeicher, wenn die erste Übereinstimmungs- Bestimmungsschaltung einen Übereinstimmungszustand bestimmt hat, zum Schreiben der Adresseninformation hoher Wertigkeit der Adresseninformation entsprechend der Vielzahl von Adresseninformationen, die in der Adresseninformation hoher Wertigkeit der durch das Register erzeugten Adresseninformation enthalten sind, zum ersten Cachespeicher, wenn die erste Übereinstimmungs-Bestimmungsschaltung einen Nichtübereinstimmungszustand bestimmt hat, und zum Schreiben der Adresseninformation niedriger Wertigkeit der Adresseninformation und der Vielzahl von Daten entsprechend der in einem externen Speicher gespeicherten Adresseninformation zum zweiten Cachespeicher, eine zweite Übereinstimmungs- Bestimmungsschaltung zum Bestimmen, ob die durch das Register erzeugte Adresseninformation mit der Eingangsadresseninformation übereinstimmt oder nicht, und eine Ausgangsschaltung zum Ausgeben von Daten entsprechend der vom zweiten Cachespeicher zugeführten Eingangsadresseninformation, wenn die erste Übereinstimmungs-Bestimmungsschaltung einen Übereinstimmungszustand bestimmt hat, zum Ausgeben von Daten entsprechend der vom externen Speicher zugeführten Eingangsadresseninformation, wenn die zweite Übereinstimmungs- Bestimmungsschaltung einen Übereinstimmungszustand bestimmt hat, und zum Ausgeben keiner Daten entsprechend der Eingangsadresseninformation, wenn sowohl die erste als auch die zweite Übereinstimmungs-Bestimmungsschaltung einen Nichtübereinstimmungszustand bestimmt haben.According to another aspect of the present invention, there is provided a cache memory device comprising: a first cache memory for storing high-order address information of address information corresponding to desired data, a second cache memory for storing a plurality of low-order address information of the high-order address information and a plurality of data corresponding to the plurality of low-order address information, a first coincidence determination circuit for comparing high-order address information of address information inputted with the high-order address information stored in the first cache memory to determine whether or not they coincide with each other, a register for storing a plurality of input address information and generating a plurality of address information included in the high-order address information of the input address information only when the first detection circuit has determined a non-coincidence state, a control circuit for reading data corresponding to the input address information from the second cache memory when the first coincidence determination circuit has determined a coincidence state, for writing the high-order address information of the address information corresponding to the plurality of of address information included in the high-order address information of the address information generated by the register to the first cache memory when the first match determination circuit has determined a non-match state, and for writing the low-order address information of the address information and the plurality of data corresponding to the address information stored in an external memory to the second cache memory, a second match determination circuit for determining whether or not the address information generated by the register matches the input address information, and an output circuit for outputting data corresponding to the input address information supplied from the second cache memory when the first match determination circuit has determined a match state, for outputting data corresponding to the input address information supplied from the external memory when the second match determination circuit has determined a match state, and for outputting no data corresponding to the input address information when both the first and second match determination circuits have determined a non-match state.
Fig. 1 ist ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung gemäß einem ersten Ausführungsbeispiel der vorliegenden Erfindung zeigt;Fig. 1 is a schematic diagram showing a circuit of a cache memory device according to a first embodiment of the present invention;
Fig. 2 ist ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung gemäß einer ersten zugehörigen Referenz nach dem Stand der Technik zeigt;Fig. 2 is a schematic diagram showing a circuit of a cache memory device according to a first related prior art reference;
Fig. 3 ist ein schematisches Diagramm zum Erklären des in einem Cache- Tag-Speicher gespeicherten Inhalts;Fig. 3 is a schematic diagram for explaining the contents stored in a cache tag memory;
Fig. 4 ist ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung der Fig. 2 zeigt;Fig. 4 is a timing diagram showing the operation of the cache memory device of Fig. 2;
Fig. 5 ist ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung gemäß einer zweiten zugehörigen Referenz nach dem Stand der Technik zeigt;Fig. 5 is a schematic diagram showing a circuit of a cache memory device according to a second related prior art reference;
Fig. 6 ist ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung der Fig. 5 zeigt;Fig. 6 is a timing chart showing the operation of the cache memory device of Fig. 5;
Fig. 7 ist ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung der Fig. 1 zeigt;Fig. 7 is a timing chart showing the operation of the cache memory device of Fig. 1;
Fig. 8 ist ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung gemäß einem zweiten Ausführungsbeispiel der vorliegenden Erfindung zeigt;Fig. 8 is a schematic diagram showing a circuit of a cache memory device according to a second embodiment of the present invention;
Fig. 9 ist ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung der Fig. 8 zeigt;Fig. 9 is a timing chart showing the operation of the cache memory device of Fig. 8;
Fig. 10 ist ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung gemäß einem dritten Ausführungsbeispiel der vorliegenden Erfindung zeigt;Fig. 10 is a schematic diagram showing a circuit of a cache memory device according to a third embodiment of the present invention;
Fig. 11 ist ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung der Fig. 10 zeigt;Fig. 11 is a timing chart showing the operation of the cache memory device of Fig. 10;
Fig. 12 ist ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung gemäß einem vierten Ausführungsbeispiel der vorliegenden Erfindung zeigt;Fig. 12 is a schematic diagram showing a circuit of a cache memory device according to a fourth embodiment of the present invention;
Fig. 13 ist ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung der Fig. 12 zeigt;Fig. 13 is a timing chart showing the operation of the cache memory device of Fig. 12;
Fig. 14 ist ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung gemäß einem fünften Ausführungsbeispiel der vorliegenden Erfindung zeigt;Fig. 14 is a schematic diagram showing a circuit of a cache memory device according to a fifth embodiment of the present invention;
Fig. 15 ist ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung der Fig. 14 zeigt;Fig. 15 is a timing chart showing the operation of the cache memory device of Fig. 14;
Fig. 16 ist ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung gemäß einem sechsten Ausführungsbeispiel der vorliegenden Erfindung zeigt;Fig. 16 is a schematic diagram showing a circuit of a cache memory device according to a sixth embodiment of the present invention;
Fig. 17 ist ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung der Fig. 16 zeigt.Fig. 17 is a timing chart showing the operation of the cache memory device of Fig. 16.
Fig. 1 ist ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung gemäß einem ersten Ausführungsbeispiel der vorliegenden Erfindung zeigt.Fig. 1 is a schematic diagram showing a circuit of a cache memory device according to a first embodiment of the present invention.
In Fig. 1 ist ein Bezugszeichen 100 eine Cachespeichervorrichtung gemäß einem ersten Ausführungsbeispiel vorliegenden Erfindung. Der Unterschied zwischen der in Fig. 1 gezeigten Cachespeichervorrichtung 100 und der in Fig. 2 gezeigten Cachespeichervorrichtung 50 besteht darin, daß die erstere eine Übereinstimmungs-Bestimmungsschaltung 150 und ein ODER-Gatter 151 enthält. Wann immer ein Cache-Datenspeicher aufgrund des Auftretens eines Nichttreffers einem Updaten unterzogen wird, wird ein Freigabeanschluß E der Übereinstimmungs- Bestimmungsschaltung 150 durch ein Ausgangssignal einer Steuerschaltung 110 aktiviert. Die Übereinstimmungs-Bestimmungsschaltung 150 arbeitet folgtendermaßen. Die Übereinstimmungs-Bestimmungsschaltung 150 bestimmt, ob die Anzahl von Bits a einer von einem Register 114 empfangenen Cache-Adresse CA mit Adressen von Daten übereinstimmt oder nicht, die von einem externen Speicher 130 zu einem Cachespeicher 112 geschrieben werden. Das ODER-Gatter 151 unterzieht die Ausgabe der Übereinstimmungs-Bestimmungsschaltung 150 und ein von der Übereinstimmungs-Bestimmungsschaltung 113 empfangenes Tag- Treffersignal TAG. HIT einer ODER-Verknüpfung. Wenn sie miteinander übereinstimmen, wird ein Freigabeanschluß E eines Registers 115 aktiviert.In Fig. 1, reference numeral 100 is a cache memory device according to a first embodiment of the present invention. The difference between the cache memory device 100 shown in Fig. 1 and the cache memory device 50 shown in Fig. 2 is that the former includes a match determination circuit 150 and an OR gate 151. Whenever a cache data memory is updated due to the occurrence of a miss, an enable terminal E of the match determination circuit 150 is activated by an output signal of a control circuit 110. The match determination circuit 150 operates as follows. The match determination circuit 150 determines whether or not the number of bits a of a cache address CA received from a register 114 matches addresses of data written from an external memory 130 to a cache memory 112. The OR gate 151 ORs the output of the match determination circuit 150 and a tag hit signal TAG.HIT received from the match determination circuit 113. When they match each other, an enable terminal E of a register 115 is activated.
Wenn eine Steuerschaltung 110 das Tag-Treffersignal TAG. HIT von der Übereinstimmungs-Bestimmungsschaltung 113 empfängt, gibt die Steuerschaltung 110 ein Cache-Updatesignal S10a aus, um Puffer mit drei Zuständen 120 und 121 einzuschalten und von einem Datenausgangsanschluß D des externen Speichers 130 gelesene Daten zu einem ID-Bus 123 auszugeben. Die gelesenen Daten, die zum ID-Bus 123 ausgegeben werden, werden zum Register 115 zugeführt, das durch das ODER-Gatter 151 freigegeben wird. Die Ausgabe des Registers 115 besteht in Cache-Daten und wird zum Cache-Requester 1 zugeführt. Anders ausgedrückt werden dann, wenn der Cachespeicher aufgrund des Auftretens eines Nichttreffers einem Updaten unterzogen wird, wenn die Übereinstimmungs- Bestimmungsschaltung 150 bestimmt hat, daß zwei Daten miteinander übereinstimmen, Daten, die vom externen Speicher 130 gelesen werden, umgeleitet bzw. vorbeigeführt. Statt dessen werden die Daten als Cache-Daten CD zum Cache- Requester 1 zugeführt.When a control circuit 110 receives the tag hit signal TAG. HIT from the match determination circuit 113, the control circuit 110 outputs a cache update signal S10a to turn on tri-state buffers 120 and 121 and output data read from a data output terminal D of the external memory 130 to an ID bus 123. The read data output to the ID bus 123 is supplied to the register 115 which is enabled by the OR gate 151. The output of the register 115 is cache data and is supplied to the cache requester 1. In other words, when the cache memory is being updated due to the occurrence of a miss, if the match determination circuit 150 has determined that two data match each other, data read from the external memory 130 is bypassed. Instead, the data is supplied to the cache requester 1 as cache data CD.
Als nächstes wird unter Bezugnahme auf Fig. 6 der Betrieb der in Fig. 1 gezeigten Cachespeichervorrichtung 100 beschrieben.Next, the operation of the cache memory device 100 shown in Fig. 1 will be described with reference to Fig. 6.
Fig. 6 ist ein Zeitdiagramm, das den Betrieb der in Fig. 1 gezeigten Cachespeichervorrichtung 200 zeigt. In Fig. 6 ist angenommen, daß n + 1 = "x ... x01" und daß n + 4 = "Y ... Y00". Zusätzlich ist angenommen, daß eine Leitung vier Adressen hat. Der externe Speicher 130 kann anfangs aufeinanderfolgende Adressen mit einem Wartezyklus durch eine Burst-Übertragung bzw. eine Datenübertragungsblock- Übertragung lesen. Wenn die letzte Schreiboperation durchgeführt wird, wird "1" zu einem gültigen Bit geschrieben. Die zwei Bits niedriger Wertigkeit des externen Registers 116 sind ein Zähler, der dann arbeitet, wenn ein Zählfreigabeanschluß CE aktiviert wird.Fig. 6 is a timing chart showing the operation of the cache memory device 200 shown in Fig. 1. In Fig. 6, it is assumed that n + 1 = "x ... x01" and that n + 4 = "Y ... Y00". In addition, it is assumed that one line has four addresses. The external memory 130 can initially read consecutive addresses with one wait cycle by a burst transfer. When the last write operation is performed, "1" is written to a valid bit. The two low-order bits of the external register 116 are a counter that operates when a count enable terminal CE is activated.
In Fig. 1 wird dann, wenn der Cache-Requester 101 eine Cache-Adresse CA erwünschter Daten zur Cachespeichervorrichtung 100 zuführt, die Cache-Adresse CA zum Register 114 geschrieben. Bis der Cache-Datenspeicher 112 nicht einem Updaten unterzogen wird, ist der Puffer mit drei Zuständen 117 mit einem Cache- Updatesignal S10a eingeschaltet, das von der Steuerschaltung 104 zugeführt wird. Somit wird die im Register 114 gespeicherte Cache-Adresse CA zu einem IA-Bus 122 zugeführt. Der Cache-Datenspeicher 112 empfängt Adressen eines vorbestimmten Tags und einer vorbestimmten Leitung vom IA-Bus 122 (beispielsweise einen Teil niedriger Wertigkeit (b + 1) über den Adressenanschluß A). Gespeicherte Daten entsprechend der Adresse werden über den I/O-Anschluß D zum ID-Bus zugeführt.In Fig. 1, when the cache requester 101 supplies a cache address CA of desired data to the cache storage device 100, the cache address CA is written to the register 114. Until the cache data storage 112 is updated, the tri-state buffer 117 is turned on with a cache update signal S10a supplied from the control circuit 104. Thus, the cache address CA stored in the register 114 is supplied to an IA bus 122. The cache data storage 112 receives addresses of a predetermined tag and a predetermined line from the IA bus 122 (for example, a low-order part (b + 1) via the address terminal A). Stored data corresponding to the address is supplied to the ID bus via the I/O terminal D.
Zusätzlich werden zum Bestimmen, ob im Cache-Datenspeicher 112 gespeicherte Daten mit der angefragten Cache-Adresse CA übereinstimmen oder nicht, die im Cache-Tag-Speicher 111 gespeicherten Daten entsprechend der vorbestimmten Tag-Adresse Log&sub2; (die Anzahl von Tags) = b vom I/O-Anschluß D gelesen. Die Übereinstimmungs-Bestimmungsschaltung 113 bestimmt, ob die gelesenen Daten mit dem vorbestimmten Tag übereinstimmen oder nicht. Wenn der Cache- Datenspeicher 112 im Lesezustand ist (d. h. nicht im Cache-Update-Zustand) und der durch den Anschluß VAo des Cache-Datenspeichers 111 dargestellte Inhalt des Cache-Tag-Speichers 111 gültig ist, ist das Ergebnis der Bestimmung durch die Übereinstimmungs-Bestimmungsschaltung 113, die durch das UND-Gatter 124 freigegeben wird, gültig. Somit führt die Übereinstimmungs-Bestimmungsschaltung 113 ein Tag-Treffersignal TAG. HIT zur Steuerschaltung 110 zu.In addition, to determine whether or not data stored in the cache data memory 112 matches the requested cache address CA, the data stored in the cache tag memory 111 is read from the I/O port D according to the predetermined tag address Log2 (the number of tags) = b. The match determination circuit 113 determines whether or not the read data matches the predetermined tag. When the cache data memory 112 is in the read state (i.e., not in the cache update state) and the content of the cache tag memory 111 represented by the port VAo of the cache data memory 111 is valid, the result of the determination by the match determination circuit 113 enabled by the AND gate 124 is valid. Thus, the match determination circuit 113 carries a tag hit signal TAG. HIT to control circuit 110.
An dieser Stelle wird dann, wenn die Übereinstimmungs-Bestimmungsschaltung 113 bestimmt hat, daß beide Daten miteinander übereinstimmen, ein Treffersignal HIT, das vom ODER-Gatter 151 ausgegeben wird, des Tag-Treffersignals TAG.HIT zum Cache-Requester 1 zugeführt, um ihn darüber zu informieren, daß der Inhalt des ID-Busses 123 gültig ist. Das Treffersignal HIT läßt zu, daß das Register 115 beschrieben wird. Zusätzlich läßt das Treffersignal HIT zu, daß Daten zum Register 114 geschrieben werden, um eine nächste Cache-Adresse vom Cache-Requester 1 zu empfangen. Andererseits, nämlich dann, wenn das Tag-Treffersignal TAG.HIT, das von der Übereinstimmungs-Bestimmungsschaltung 113 ausgegeben wird, darstellt, daß beide Daten nicht miteinander übereinstimmen, findet ein Nichttreffer statt. In diesem Fall wird der Cache-Datenspeicher 112 beim nächsten Zyklus einem Updaten unterzogen.At this point, if the match determination circuit 113 has determined that both data match each other, a hit signal HIT output from the OR gate 151 of the tag hit signal TAG.HIT is supplied to the cache requester 1 to inform it that the content of the ID bus 123 is valid. The hit signal HIT allows the register 115 to be written. In addition, the hit signal HIT allows data to be written to the register 114 to receive a next cache address from the cache requester 1. On the other hand, when the tag hit signal TAG.HIT output from the match determination circuit 113 represents that both data do not match each other, a miss occurs. In this case, the cache data memory 112 is subjected to updating at the next cycle.
Wenn der Cache-Datenspeicher 114 in einem Update-Zustand ist, gibt die Steuerschaltung 110 ein Cache-Updatesignal SIOa zu den Puffern mit drei Zuständen 120 und 121 aus, so daß sie eingeschaltet werden. Somit können Daten vom externen Speicher 112 empfangen werden. Zusätzlich aktiviert die Steuerschaltung 110 den Zählfreigabeanschluß CE des externen Registers 116, welcher eine Adressenzufuhrquelle zum IA-Bus 122 ist, um die Lesedaten-Zufuhrquelle des ID- Busses 123 zum externen Speicher 130 zu ändern. Wann immer ein Nichttreffer stattfindet, wird der Inhalt des externen Registers 116 immer einem Updaten unterzogen.When the cache data memory 114 is in an update state, the control circuit 110 outputs a cache update signal SIOa to the tri-state buffers 120 and 121 so that they are turned on. Thus, data can be received from the external memory 112. In addition, the control circuit 110 activates the count enable terminal CE of the external register 116, which is an address supply source to the IA bus 122, to change the read data supply source of the ID bus 123 to the external memory 130. Whenever a miss occurs, the content of the external register 116 is always subjected to updating.
An dieser Stelle wird der Signalpegel eines Anschlusses D-WAIT des externen Speichers 130, welcher darstellt, daß die externen Lesedaten in einer gültigen Zeitgabe sind, zu einem "L"-Pegel. Zusätzlich ist der Signalpegel des Cache- Updatesignals SIOa, das von der Steuerschaltung 110 ausgegeben wird, auf einem "H"-Pegel. Somit aktiviert die Steuerschaltung 110 Schreibfreigabeanschlüsse WE des Cache-Tag-Speichers 111 und des Cache-Datenspeichers 112 bei vorbestimmten Intervallen. Da die zwei Bits niedriger Wertigkeit des externen Registers 116 als Zähler arbeiten, wird dann, wenn die Schreibfreigabeanschlüsse WE des Cache-Tag-Speichers 111 und des Cache-Datenspeichers 112 aktiviert sind, ein Zählfreigabeanschluß CE des externen Registers 116 aktiviert, um dadurch den Zähler aufwärtszuzählen.At this point, the signal level of a terminal D-WAIT of the external memory 130, which represents that the external read data is in a valid timing, becomes an "L" level. In addition, the signal level of the cache update signal SIOa output from the control circuit 110 is at an "H" level. Thus, the control circuit 110 activates write enable terminals WE of the cache tag memory 111 and the cache data memory 112 at predetermined intervals. Since the two low-order bits of the external register 116 function as a counter, when the write enable terminals WE of the cache tag memory 111 and the cache data memory 112 are activated, a count enable terminal CE of the external register 116 is activated to thereby count up the counter.
Diese Operation wird n mal (beispielsweise viermal) wiederholt. Somit werden alle Daten von Leitungsadressen, wo ein Nichttreffer stattfand, einem Updaten unterzogen. Daten werden vom Datenausgangsanschluß D des externen Speichers 130 gelesen. Die gelesenen Daten werden einem I/O-Anschluß D des Cache- Datenspeichers 112 über den Puffer mit drei Zuständen 121 zugeführt. Somit wird der Cache-Datenspeicher 112 einem Updaten unterzogen. Die Steuerschaltung 110 gibt ein Signal aus, das darstellt, daß nur die vierte Operation gültig ist, und führt dieses Signal zu einem Anschluß VAi des Cache-Tag-Speichers 111 zu. Die Cache-Update-Operation ist bei diesem Ausführungsbeispiel dieselbe wie diejenige der Cachespeichervorrichtung 50 gemäß der in Fig. 2 gezeigten ersten zugehörigen Referenz nach dem Stand der Technik.This operation is repeated n times (for example, four times). Thus, all data from line addresses where a miss occurred are updated. Data is read from the data output terminal D of the external memory 130. The read data is applied to an I/O terminal D of the cache data memory 112 via the tri-state buffer 121. Thus, the cache data memory 112 is subjected to updating. The control circuit 110 outputs a signal representing that only the fourth operation is valid and supplies this signal to a terminal VAi of the cache tag memory 111. The cache update operation in this embodiment is the same as that of the cache memory device 50 according to the first related prior art reference shown in Fig. 2.
Bei diesem Ausführungsbeispiel werden zusätzlich zur oben beschriebenen Cache-Update-Operation, während Cache-Daten einem Updaten unterzogen werden, wenn Schreibdaten, die zum Cache-Datenspeicher 112 zu schreiben sind, durch den Cache-Requester 1 angefragt werden, die Schreibdaten zum Cache-Requester 1 umgeleitet. Anders ausgedrückt veranlaßt, während Cache-Daten einem Updaten unterzogen werden, die Ausgabe der Steuerschaltung 110, daß die Übereinstimmungs-Bestimmungsschaltung 150 freigegeben wird. Die Übereinstimmungs-Bestimmungsschaltung 150 bestimmt, ob der Inhalt des Registers 114 mit dem Inhalt des externen Registers 116 übereinstimmt oder nicht. Die Ausgabe der Übereinstimmungs-Bestimmungsschaltung 150 und das Tag-Treffersignal TAG. HIT, das von der Übereinstimmungs-Bestimmungsschaltung 150 zugeführt wird, werden zum ODER-Gatter 151 zugeführt. Die Ausgabe des ODER-Gatters 151 ist ein Treffersignal HIT. Das Treffersignal HIT wird zum Cache-Requester 1 zugeführt. Zusätzlich wird das Register 115 freigegeben. Somit werden vom externen Speicher 130 zum ID-Bus 123 gelesene Daten zum Cache-Requester 1 zugeführt.In this embodiment, in addition to the cache update operation described above, while cache data is being updated, when write data to be written to the cache data memory 112 is requested by the cache requester 1, the write data is redirected to the cache requester 1. In other words, while cache data is being updated, the output of the control circuit 110 causes the match determination circuit 150 to be enabled. The match determination circuit 150 determines whether or not the content of the register 114 matches the content of the external register 116. The output of the match determination circuit 150 and the tag hit signal TAG.HIT supplied from the match determination circuit 150 are supplied to the OR gate 151. The output of the OR gate 151 is a hit signal HIT. The hit signal HIT is supplied to the cache requester 1. In addition, the register 115 is enabled. Thus, data read from the external memory 130 to the ID bus 123 is supplied to the cache requester 1.
Dieser Betrieb wird unter Bezugnahme auf Fig. 7 beschrieben. Wenn bei einer Taktperiode 2 bei n + 1 einer Cache-Adresse CA ein Nichttreffer stattfindet, unterzieht die Cachespeichervorrichtung 100 den Cache-Tag-Speicher 111 und den Cache-Datenspeicher 112 einem Updaten. An dieser Stelle gelangt das Signal TAG-HIT zu einem "L"-Zustand, der darstellt, daß die Übereinstimmungs- Bestimmungsschaltung 113 bestimmt hat, daß die im Register 114 gespeicherten Daten nicht mit im Cache-Datenspeicher 112 gespeicherten Daten übereinstimmen. Bei einer Taktperiode 3 gibt die Steuerschaltung 110 die Übereinstimmungs- Bestimmungsschaltung 150 und das externe Register 116 entsprechend dem Signalzustand von TAG-HIT frei. Zusätzlich veranlaßt die Steuerschaltung 15, daß der Cache-Tag-Speicher 111 und der Cache-Datenspeicher 112 im Schreibfreigabezustand sind. Die Cache-Adresse CA ("x ... x01") wird direkt in das externe Register 116 zugeführt. Adressendaten 9EA werden entsprechend der Cache- Adresse CA und der zum externen Register 116 zugeführten Cache-Adresse zur Übereinstimmungs-Bestimmungsschaltung 150 eingegeben. An dieser Steile arbeiten die zwei Bits niedriger Wertigkeit des externen Registers 116 als Zähler. Zusätzlich zählt der Zähler um Eins aufwärts, wann immer eine Leitung zu den Cachespeichern 111 und 112 geschrieben wird. Somit sind die Adressendaten EA bei einer Taktperiode 4 "x ... x01 ". Bei Taktperioden 5, 6 und 7 sind die Adressendaten EA jeweils "x ... x10", "x ... x11" und "x ... x00". Somit bestimmt die Übereinstimmungs-Bestimmungsschaltung 150 bei der Taktperiode 4, daß die Cache- Adresse CA mit den Adressendaten EA übereinstimmt. Folglich gibt die Übereinstimmungs-Bestimmungsschaltung 150 die Register 114 und 115 frei. Der externe Speicher 130 gibt Daten entsprechend den durch den externen Speicher 116 erzeugten Adressendaten EA "x ... x01" aus. Die Ausgabe des externen Speichers 130 besteht in Cache-Daten CD und wird über das Register 115 zum Cache- Requester 101 zugeführt. Zusätzlich werden die Cache-Daten CD zum Cache- Datenspeicher 112 geschrieben. Da das Register 114 freigegeben ist, führt der Cache-Requester 101 n + 2 ("x ... x10") als die nächste Cache-Adresse CA zum Register 114 zu. Bei der Taktperiode 5 unterzieht die Cachespeichervorrichtung 100 Cache-Daten der Leitung einem Updaten, die n + 1 enthält. Anders ausgedrückt unterzieht die Cachespeichervorrichtung 100 Daten entsprechend den Adressendaten "x ... x10" einem Updaten, die durch das externe Register 116 erzeugt werden, und schreibt sie zum Cache-Datenspeicher 112. Da das Register 114 n + 2 gespeichert hat, und der Cache-Tag-Speicher 111 das Tag "x ... x" nicht gespeichert hat, bestimmt die Übereinstimmungs-Bestimmungsschaltung 113 nicht, daß sie miteinander übereinstimmen. Jedoch deshalb weil die Übereinstimmungs-Bestimmungsschaltung 150 und das externe Register 116 im Freigabezustand gehalten werden, wird n + 2 der Cache-Adresse CA zur Übereinstimmungs- Bestimmungsschaltung 150 zugeführt. An dieser Stelle bestimmt die Übereinstimmungs-Bestimmungsschaltung 150 deshalb, weil sie dieselben Adressendaten wie n + 2 vom anderen Eingang empfangen hat, daß zwei Daten miteinander übereinstimmen, um dadurch zu veranlassen, daß die Register 114 und 115 im Freigabezustand gehalten werden. Die Daten entsprechend n + 2 der durch den Cache-Requester 101 angefragten Cache-Adresse CA werden zu sowohl dem Cache- Datenspeicher 112 als auch dem Cache-Requester 101 über das Register 115 zugeführt. Da das Register 114 im Freigabezustand ist, führt der Cache-Requester 1 n + 3 ("x ... x11") als nächste Cache-Daten CA zu. Da n + 3 Adressendaten sind, die um n + 2 vorangehend sind, wird bei einer Taktperiode 6 dieselbe Operation wie diejenige bei der Taktperiode 5 durchgeführt. Jedoch wird bei einer Taktperiode 7 n + 4 ("Y ... Y00") der Cache-Adresse CA eingegeben. n + 4 stimmt mit einem im Cache-Tag-Speicher 111 gespeicherten Tag überein. Jedoch stimmt n + 4 nicht mit den Adressendaten "x ... x00" überein, für welche die vierte Schreiboperation durchgeführt wird. Somit werden die Freigabezustände der Register 114 und 115 gelöscht. An dieser Stelle wird "x ... x00" als die Adressendaten EA zum externen Speicher 130 zugeführt. Zusätzlich sind Daten entsprechend den Adressendaten "x ... x00" zum Cache-Datenspeicher 112 und zum Register 115 zugeführt worden, und Daten entsprechend "x ... x00" als Cache-Daten CD werden über das Register 115 zum Cache-Requester 101 zugeführt. Bei der Taktperiode 7 wird "x ... x" zum Cache-Tag-Speicher 111 geschrieben. Bei einer Taktperiode 8 wird dieselbe Operation wie diejenige bei der Taktperiode 2 durchgeführt. Wenn zwei Tags bei einer Taktperiode 9 oder später nicht miteinander übereinstimmen, wird die oben beschriebene Update-Operation durchgeführt.This operation will be described with reference to Fig. 7. When a miss occurs at n+1 of a cache address CA at a clock period 2, the cache memory device 100 subjects the cache tag memory 111 and the cache data memory 112 to an update. At this point, the signal TAG-HIT becomes an "L" state, which represents that the match determination circuit 113 has determined that the data stored in the register 114 does not match the data stored in the cache data memory 112. At a clock period 3, the control circuit 110 enables the match determination circuit 150 and the external register 116 according to the signal state of TAG-HIT. In addition, the control circuit 15 causes the cache tag memory 111 and the cache data memory 112 to be in the write enable state. The cache address CA ("x...x01") is written directly to the external Register 116. Address data EA is input to match determination circuit 150 corresponding to cache address CA and cache address supplied to external register 116. At this point, the two low order bits of external register 116 function as a counter. In addition, the counter counts up by one whenever a line is written to cache memories 111 and 112. Thus, address data EA at clock period 4 is "x...x01". At clock periods 5, 6 and 7, address data EA are "x...x10", "x...x11" and "x...x00", respectively. Thus, at clock period 4, match determination circuit 150 determines that cache address CA matches address data EA. Consequently, match determination circuit 150 enables registers 114 and 115. The external memory 130 outputs data corresponding to the address data EA "x...x01" generated by the external memory 116. The output of the external memory 130 is cache data CD and is supplied to the cache requester 101 via the register 115. In addition, the cache data CD is written to the cache data memory 112. Since the register 114 is enabled, the cache requester 101 supplies n+2 ("x...x10") as the next cache address CA to the register 114. At clock period 5, the cache memory device 100 updates cache data of the line containing n+1. In other words, the cache memory device 100 updates data corresponding to the address data "x ... x10" generated by the external register 116 and writes it to the cache data memory 112. Since the register 114 has stored n + 2 and the cache tag memory 111 has not stored the tag "x ... x", the coincidence determination circuit 113 does not determine that they coincide with each other. However, because the coincidence determination circuit 150 and the external register 116 are kept in the enable state, n + 2 of the cache address CA is supplied to the coincidence determination circuit 150. At this point, because the coincidence determination circuit 150 has received the same address data as n + 2 from the other input, it determines that two data coincide with each other to thereby cause the registers 114 and 115 to be kept in the enable state. The data corresponding to n + 2 of the cache address CA requested by the cache requester 101 is supplied to both the cache data memory 112 and the cache requester 101 via the register 115. Since the register 114 is in the enable state, the cache requester 1 supplies n + 3 ("x ... x11") as the next cache data CA. Since n + 3 is address data preceding by n + 2, the same operation is performed at a clock period 6. as that at the clock period 5. However, at a clock period 7, n + 4 ("Y ... Y00") of the cache address CA is input. n + 4 matches a tag stored in the cache tag memory 111. However, n + 4 does not match the address data "x ... x00" for which the fourth write operation is performed. Thus, the enable states of the registers 114 and 115 are cleared. At this point, "x ... x00" is supplied as the address data EA to the external memory 130. In addition, data corresponding to the address data "x ... x00" has been supplied to the cache data memory 112 and the register 115, and data corresponding to "x ... x00" as cache data CD is supplied to the cache requester 101 via the register 115. At the clock period 7, "x ... x" is written to the cache tag memory 111. At a clock period of 8, the same operation as that at clock period 2 is performed. If two tags do not match at a clock period of 9 or later, the update operation described above is performed.
Fig. 8 ist ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung gemäß einem zweiten Ausführungsbeispiel der vorliegenden Erfindung zeigt. In Fig. 8 ist ein Bezugszeichen 200 die Cachespeichervorrichtung. Die Cachespeichervorrichtung 200 gemäß dem zweiten Ausführungsbeispiel unterscheidet sich von der Cachespeichervorrichtung 100 gemäß dem ersten Ausführungsbeispiel darin, daß die Cache-Daten-Update-Operation entsprechend einer durch einen Cache-Requester 1 ausgegebenen Warteanfrage kurzzeitig unterbrochen werden kann. Ungleich der Cachespeichervorrichtung 100 gemäß dem ersten Ausführungsbeispiel enthält die Cachespeichervorrichtung 200 drei UND-Gatter 201, 202 und 203. Das UND-Gatter 201 unterzieht ein Signal, das einen durch den Cache-Requester 1 ausgegebenen Warteanfragezustand darstellt, und ein Ausgangssignal der Steuerschaltung 110 einer UND-Verknüpfung und führt eine Ausgabe zu Schreibfreigabeanschlüssen WE eines Cache-Tag-Speichers 111 und eines Cache-Datenspeichers 112 durch. Anders ausgedrückt aktiviert das UND- Gatter 201 dann, wenn der Cache-Requester 1 keine Warteanfrage ausgegeben hat und Schreibanfragen zum Cache-Tag-Speicher 111 und zum Cache- Datenspeicher 112 ausgegeben werden, die Schreibfreigabeanschlüsse WE des Cache-Tag-Speichers 111 und des Cache-Datenspeichers 112. Andererseits unterzieht das UND-Gatter 202 das Signal, das einen durch den Cache-Requester 101 ausgegebenen Warteanfragezustand darstellt, und das Ausgangssignal der Steuerschaltung 110 einer UND-Verknüpfung und gibt das resultierende Signal zu einem Zählfreigabeanschluß CE eines externen Registers 116 ein. Anders ausgedrückt aktiviert das UND-Gatter 202 dann, wenn der Cache-Requester 1 keine Warteanfrage ausgegeben hat und eine Anfrage zum Inkrementieren der Zahl des externen Registers 116 um 1 ausgegeben wird, den Zählfreigabeanschluß CE des externen Registers 116. Das UND-Gatter 203 unterzieht das Signal, das die durch den Cache-Requester 1 ausgegebene Warteanfrage darstellt, und ein Ausgangssignal eines ODER-Gatters 151 (nämlich ein Signal, das einen HIT-Zuständ von Cache-Daten darstellt) einer UND-Verknüpfung und gibt das resultierende Signal zu Freigabeanschlüssen E von den Registern 114 und 115 ein. Anders ausgedrückt aktiviert das UND-Gatter 203 dann, wenn der Cache-Requester 1 keine Warteanfrage ausgegeben hat und eine Cache-Adresse CA mit einem im Cache- Tag-Speicher 111 gespeicherten Tag übereinstimmt oder die Cache-Adresse CA mit im externen Register 116 gespeicherten Daten übereinstimmt, die Freigabeanschlüsse E der Register 114 und 115. Wenn der Cache-Requester 1 eine Warteanfrage ausgibt, werden ein Datenschreiben zum Cache-Tag-Speicher 111 und zum Cache-Datenspeicher 112, eine Datenadressenausgabe zum externen Register 116 entsprechend einer Leseanfrage durch das externe Register 116 und eine Speicherung der Cache-Daten CD im Register 115 gesperrt. Somit wird die gesamte Update-Operation von Cache-Daten in der Cachespeichervorrichtung 200 kurzzeitig unterbrochen (sie ist in einem Wartezustand).Fig. 8 is a schematic diagram showing a circuit of a cache memory device according to a second embodiment of the present invention. In Fig. 8, reference numeral 200 is the cache memory device. The cache memory device 200 according to the second embodiment is different from the cache memory device 100 according to the first embodiment in that the cache data update operation can be temporarily interrupted in accordance with a wait request issued by a cache requester 1. Unlike the cache memory device 100 according to the first embodiment, the cache memory device 200 includes three AND gates 201, 202, and 203. The AND gate 201 ANDs a signal representing a wait request state issued by the cache requester 1 and an output signal of the control circuit 110, and outputs to write enable terminals WE of a cache tag memory 111 and a cache data memory 112. In other words, when the cache requester 1 has not issued a wait request and write requests are issued to the cache tag memory 111 and the cache data memory 112, the AND gate 201 activates the write enable terminals WE of the cache tag memory 111 and the cache data memory 112. On the other hand, the AND gate 202 subjects the signal representing a wait request state issued by the cache requester 101 and the output signal of the control circuit 110 and inputs the resultant signal to a count enable terminal CE of an external register 116. In other words, when the cache requester 1 has not issued a wait request and a request to increment the count of the external register 116 by 1 is issued, the AND gate 202 activates the count enable terminal CE of the external register 116. The AND gate 203 ANDs the signal representing the wait request issued by the cache requester 1 and an output signal of an OR gate 151 (namely, a signal representing a HIT state of cache data) and inputs the resultant signal to enable terminals E of the registers 114 and 115. In other words, when the cache requester 1 has not issued a wait request and a cache address CA matches a tag stored in the cache tag memory 111 or the cache address CA matches data stored in the external register 116, the AND gate 203 activates the enable terminals E of the registers 114 and 115. When the cache requester 1 issues a wait request, data writing to the cache tag memory 111 and the cache data memory 112, data address output to the external register 116 corresponding to a read request by the external register 116, and storage of the cache data CD in the register 115 are inhibited. Thus, the entire update operation of cache data in the cache storage device 200 is temporarily suspended (it is in a wait state).
Als nächstes wird unter Bezugnahme auf Fig. 9 der Betrieb der in Fig. 8 gezeigten Cachespeichervorrichtung 200 beschrieben. Fig. 9 ist ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung 200 der Fig. 8 zeigt.Next, the operation of the cache memory device 200 shown in Fig. 8 will be described with reference to Fig. 9. Fig. 9 is a timing chart showing the operation of the cache memory device 200 of Fig. 8.
In Fig. 9 werden in Taktperioden 2 bis 4, in welchen der Cache-Requester 1 eine Warteanfrage ausgegeben hat, die Register 114 und 115 deaktiviert. In diesen Perioden speichern die Register 114 und 115 jeweils Cache-Adressen CA = n + 1 und Cache-Daten CD = m. Zusätzlich speichert das externe Register 116 n + 1. Da die Signalpegel der Schreibfreigabeanschlüsse WE des Cache-Tag-Speichers 111 und des Cache-Datenspeichers 112 auf dem "L"-Pegel sind, werden sie nicht aktiviert.In Fig. 9, in clock periods 2 to 4 in which the cache requester 1 has issued a wait request, the registers 114 and 115 are deactivated. In these periods, the registers 114 and 115 store cache addresses CA = n + 1 and cache data CD = m, respectively. In addition, the external register 116 stores n + 1. Since the signal levels of the write enable terminals WE of the cache tag memory 111 and the cache data memory 112 are at the "L" level, they are not activated.
Fig. 10 ist ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung gemäß einem dritten Ausführungsbeispiel der vorliegenden Erfindung zeigt. In Fig. 10 ist ein Bezugszeichen 300 eine Cachespeichervorrichtung gemäß dem dritten Ausführungsbeispiel. Der Unterschied zwischen der Cachespeichervorrichtung gemäß dem dritten Ausführungsbeispiel und der Cachespeichesvorrichtung 100 gemäß dem ersten Ausführungsbeispiel besteht darin, daß, obwohl Cache-Daten entsprechend einer durch einen Cache-Requester 1 ausgegebene Warteanfrage einem Updaten unterzogen werden, auf Daten, die in einem Wartezustand einem Updaten unterzogen werden, auf einfache Weise zugegriffen werden kann. Die Cachespeichervorrichtung 300 weist eine Vielzahl von Puffern 301, eine Vielzahl von Übereinstimmungs-Bestimmungsschaltungen 302, eine Vielzahl von Puffern mit drei Zuständen 304, einen Puffer mit drei Zuständen 321, ein UND- Gatter 303 und ODER-Gatter 305 und 306 auf. Die Übereinstimmungs- Bestimmungsschaltungen 302 entsprechen den Puffern 301. Die Puffer mit drei Zuständen 304 entsprechen den Puffern 301. Die Register 301 speichern jeweils eine Gruppe von Adressen und Daten, die von einem externen Speicher 130 gelesen sind, und ein Gültigkeits-Flag, das eine Signalausgabe von einer Steuerschaltung 110 ist. Ein Ausgangssignal der Steuerschaltung 110 wird zu einem Freigabeanschluß E des Puffers 301 eingegeben. So wird der Puffer 301 aktiviert. Bei diesem Ausführungsbeispiel sind drei Puffer 301 (Puffer 301-1, 301-2 und 301-3) vorgesehen. Da eine Leitung vier Adressen hat und Cache-Daten Leitung für Leitung mit drei Puffern 301 einem Updaten unterzogen werden, können Daten auf geeignete Weise einem Updaten unterzogen werden. Jedoch soll beachtet werden, daß die Anzahl der Puffer 301 nicht auf drei beschränkt ist. Die Anzahl der Übereinstimmungs-Bestimmungsschaltungen 302 ist entsprechend den drei Puffern 301 Drei. Jede der Übereinstimmungs-Bestimmungsschaltungen 302 wird mit einem Gültigkeits-Flagsignal V aktiviert, das vom entsprechenden Puffer 301 empfangen wird. Jede der Übereinstimmungs-Bestimmungsschaltungen 302 bestimmt, ob eine vom Register 114 empfangene Cache-Adresse CA mit einer im entsprechenden Puffer 301 gespeicherten Adresse übereinstimmt oder nicht. Das Ausgangssignal der Übereinstimmungs-Bestimmungsschaltung 302 steuert den entsprechenden Puffer mit drei Zuständen 304. Zusätzlich wird das Ausgangssignal der Übereinstimmungs-Bestimmungsschaltung 302 zum ODER-Gatter 305 zugeführt. Das ODER-Gatter 305 unterzieht die Ausgangssignale der Übereinstimmungs- Bestimmungsschaltungen 302 einer ODER-Verknüpfung und gibt das resultierende Signal zum ODER-Gatter 351 ein. Zusätzlich wird mit einem invertierten Signal des Ausgangssignals des ODER-Gatters 305 der Betrieb des Puffers mit drei Zuständen 321 gesteuert. Die Anzahl der Puffer mit drei Zuständen 304 ist entsprechend drei Übereinstimmungs-Bestimmungsschaltungen 302 Drei. Jeder der Puffer mit drei Zuständen 304 wird durch das Ausgangssignal der entsprechenden Übereinstimmungs-Bestimmungsschaltungen 302 gesteuert.Fig. 10 is a schematic diagram showing a circuit of a cache memory device according to a third embodiment of the present invention. In Fig. 10, reference numeral 300 is a cache memory device according to the third embodiment. The difference between the cache memory device according to the third embodiment and the cache memory device 100 according to the first embodiment is that although cache data is updated in accordance with a wait request issued by a cache requester 1, data updated in a wait state can be easily accessed. The cache memory device 300 includes a plurality of buffers 301, a plurality of match determination circuits 302, a plurality of three-state buffers 304, a three-state buffer 321, an AND gate 303, and OR gates 305 and 306. The match determination circuits 302 correspond to the buffers 301. The three-state buffers 304 correspond to the buffers 301. The registers 301 each store a group of addresses and data read from an external memory 130 and a validity flag which is a signal output from a control circuit 110. An output of the control circuit 110 is input to an enable terminal E of the buffer 301. Thus, the buffer 301 is activated. In this embodiment, three buffers 301 (buffers 301-1, 301-2 and 301-3) are provided. Since one line has four addresses and cache data is updated line by line with three buffers 301, data can be updated appropriately. However, it should be noted that the number of buffers 301 is not limited to three. The number of the match determination circuits 302 is three corresponding to the three buffers 301. Each of the match determination circuits 302 is activated with a validity flag signal V received from the corresponding buffer 301. Each of the match determination circuits 302 determines whether or not a cache address CA received from the register 114 matches an address stored in the corresponding buffer 301. The output of the match determination circuit 302 controls the corresponding three-state buffer 304. In addition, the output of the match determination circuit 302 is supplied to the OR gate 305. The OR gate 305 ORs the outputs of the match determination circuits 302 and outputs the resultant Signal to the OR gate 351. In addition, an inverted signal of the output of the OR gate 305 controls the operation of the three-state buffer 321. The number of the three-state buffers 304 is three, corresponding to three match determination circuits 302. Each of the three-state buffers 304 is controlled by the output of the corresponding match determination circuits 302.
In einem jeweiligen der Puffer 301 gespeicherte Daten werden zu einem ID-Bus 123 ausgegeben. Jeder der Puffer mit drei Zuständen 321 gibt im externen Speicher 130 gespeicherte Daten zum ID-Bus 123 entsprechend einem invertierten Signal des Ausgangssignals des ODER-Gatters 305 aus. Das ODER-Gatter 351 ist ein ODER-Gatter vom Typ mit drei Eingängen, zu welchen die Ausgabe des ODER-Gatters 305 und die Ergebnisse der Übereinstimmungs- Bestimmungsschaltungen 113 und 150 eingegeben werden. Das Ausgangssignal des ODER-Gatters 351 wird zum UND-Gatter 303 zugeführt. Zusätzlich wird ein vom Cache-Requester 1 empfangenes Wartesignal WAIT zum UND-Gatter 303 zugeführt. Das UND-Gatter 303 unterzieht das Ausgangssignal des ODER-Gatters 351 und das Wartesignal WAIT einer UND-Verknüpfung und gibt das resultierende Signal zu Freigabeanschlüssen E der Register 114 und 115 ein.Data stored in each of the buffers 301 is output to an ID bus 123. Each of the tri-state buffers 321 outputs data stored in the external memory 130 to the ID bus 123 in accordance with an inverted signal of the output of the OR gate 305. The OR gate 351 is a three-input type OR gate to which the output of the OR gate 305 and the results of the match determination circuits 113 and 150 are input. The output of the OR gate 351 is supplied to the AND gate 303. In addition, a wait signal WAIT received from the cache requester 1 is supplied to the AND gate 303. The AND gate 303 ANDs the output signal of the OR gate 351 and the wait signal WAIT and inputs the resulting signal to enable terminals E of the registers 114 and 115.
Als nächstes wird unter Bezugnahme auf Fig. 11 der Betrieb der in Fig. 10 gezeigten Cachespeichervorrichtung 300 beschrieben. Fig. 11 ist ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung 300 der Fig. 10 zeigt.Next, the operation of the cache memory device 300 shown in Fig. 10 will be described with reference to Fig. 11. Fig. 11 is a timing chart showing the operation of the cache memory device 300 of Fig. 10.
In Fig. 11 findet bei einer Taktperiode 2 ein Nichttreffer (das Tag HIT ist "0") statt. Somit beginnt die Cachespeichervorrichtung 300 die Update-Operation von Cache- Daten. Jedoch ist der Cache-Requester 1 bei der Taktperiode 2 in einem Wartezustand. Beim zweiten Ausführungsbeispiel wird die Cache-Daten-Update- Operation nicht durchgeführt, während der Cache-Requester 1 in einem Wartezustand ist. Jedoch werden beim dritten Ausführungsbeispiel bei einer Taktperiode 4, während der Cache-Requester 1 im Wartezustand ist, wenn Daten des externen Speichers 130 ausgegeben werden, die Daten zu einem Cache-Datenspeicher 112 geschrieben. Zusätzlich werden die Daten über den Puffer mit drei Zuständen 321 zum Register 115 zugeführt. Bei der Taktperiode 4 empfängt der Cache-Requester 1 deshalb, weil er noch im Wartezustand ist, nicht die im Register 115 gespeicherten Cache-Daten. Jedoch wird bei der Taktperiode 4 mit einem Ausgangssignal der Steuerschaltung 110 einer der Puffer 301 (beispielsweise der Puffer 301-0) aktiviert, um eine Adresse und entsprechende Daten zu speichern, die vom externen Speicher 130 ausgegeben werden. Zusätzlich zu der Adresse und den Daten veranlaßt das Ausgangssignal der Steuerschaltung 110, daß ein Gültigkeits-Flag gültig wird. Bei einer Taktperiode 5 fragt der Cache-Requester nach derselben Adresse, wie er es bei der Taktperiode 4 tat. An dieser Stelle bestimmt deshalb, weil die erforderliche Adresse und die erforderlichen Daten bei der Taktperiode 4 im Register 301 gespeichert worden sind, eine der Übereinstimmungs- Bestimmungsschaltungen 302, daß zwei Daten miteinander übereinstimmen. Somit deaktiviert die Übereinstimmungs-Bestimmungsschaltung 302 den Puffer mit drei Zuständen 321 über das ODER-Gatter 305. Folglich werden Daten der erforderlichen Adresse vom Register 301 (vom Puffer 301-0) zum ID-Bus 123 ausgegeben. An dieser Stelle werden Daten entsprechend der nächsten Adresse zum Cache- Datenspeicher 112 geschrieben. Zusätzlich werden dieselbe Adresse und dieselben Daten zum Puffer 301 (beispielsweise zum Puffer 301-1) geschrieben. Somit werden, obwohl eine durch den Cache-Requester 1 ausgegebene Adresse sich von einer Schreibzeitgabe zum Cache-Datenspeicher 112 unterscheidet, Cache- Daten CD von den Puffern 301 (beispielsweise den Puffern 301-1 und 301-2) zum Cache-Requester 1 zugeführt.In Fig. 11, a miss (the tag HIT is "0") occurs at a clock period 2. Thus, the cache storage device 300 starts the update operation of cache data. However, the cache requester 1 is in a waiting state at the clock period 2. In the second embodiment, the cache data update operation is not performed while the cache requester 1 is in a waiting state. However, in the third embodiment, at a clock period 4, while the cache requester 1 is in the waiting state, when data of the external memory 130 is output, the data is written to a cache data memory 112. In addition, the data is supplied to the register 115 via the tri-state buffer 321. At the clock period 4, because the cache requester 1 is still in the waiting state, it does not receive the cache data stored in the register 115. However, at clock period 4, an output signal from control circuit 110 activates one of buffers 301 (for example, buffer 301-0), to store an address and corresponding data output from external memory 130. In addition to the address and data, the output of control circuit 110 causes a validity flag to become valid. At clock period 5, the cache requester requests the same address as it did at clock period 4. At this point, because the required address and data have been stored in register 301 at clock period 4, one of match determination circuits 302 determines that two pieces of data match each other. Thus, match determination circuit 302 disables tri-state buffer 321 via OR gate 305. Consequently, data of the required address is output from register 301 (from buffer 301-0) to ID bus 123. At this point, data corresponding to the next address is written to cache data memory 112. In addition, the same address and the same data are written to the buffer 301 (for example, the buffer 301-1). Thus, although an address output by the cache requester 1 differs from a write timing to the cache data storage 112, cache data CD is supplied from the buffers 301 (for example, the buffers 301-1 and 301-2) to the cache requester 1.
Fig. 12 ist ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung gemäß einem vierten Ausführungsbeispiel der vorliegenden Erfindung zeigt. In Fig. 12 ist ein Bezugszeichen 400 die Cachespeichervorrichtung gemäß dem vierten Ausführungsbeispiel. Der Unterschied zwischen der Cachespeichervorrichtung 400 gemäß dem vierten Ausführungsbeispiel und der Cachespeichervorrichtung 300 gemäß dem dritten Ausführungsbeispiel besteht darin, daß eine Adresse und Daten zu einem Puffer 301 geschrieben werden, wenn es nötig ist. Ungleich der Cachespeichervorrichtung gemäß dem dritten Ausführungsbeispiel enthält die Cachespeichervorrichtung 400 eine Puffer-Überwachungsschaltung 401. Die Puffer-Überwachungsschaltung 401 bestimmt, ob Cache-Daten, die einem Updaten zu unterziehen sind, im Puffer 301 gespeichert werden sollten oder nicht, während ein Cache-Requester 1 in einem Wartezustand ist. Die Puffer- Überwachungsschaltung 401 speichert die resultierenden Daten in vorbestimmten Puffern 301 (bei diesem Beispiel in den Puffern 301-1 und 301-2, wie es in Fig. 12 gezeigt ist). Zusätzlich erklärt die Puffer-Überwachungsschaltung 401 Daten für ungültig, die nicht nötig sind. Die Puffer-Überwachungsschaltung 401 empfängt ein Wartesignal WAIT, Ausgangssignale (bestimmte Ergebnisse) der Übereinstimmungs-Bestimmungsschaltungen 150 und 302, eine Ausgabe eines externen Registers 116 und ein Ausgangssignal einer Steuerschaltung 110. Das Ausgangssignal der Steuerschaltung 110 aktiviert Schreibfreigabeanschlüsse eines Cache- Tag-Speichers 111 und eines Cache-Datenspeichers 112. Die Puffer- Steuerschaltung 110 gibt ein Signal aus, das den Puffer 301 aktiviert, und ein Gültigkeits-Flag, das die Gültigkeitserklärung von Daten darstellt, die im Puffer 301 gespeichert sind.Fig. 12 is a schematic diagram showing a circuit of a cache memory device according to a fourth embodiment of the present invention. In Fig. 12, reference numeral 400 is the cache memory device according to the fourth embodiment. The difference between the cache memory device 400 according to the fourth embodiment and the cache memory device 300 according to the third embodiment is that an address and data are written to a buffer 301 when necessary. Unlike the cache memory device according to the third embodiment, the cache memory device 400 includes a buffer monitor circuit 401. The buffer monitor circuit 401 determines whether or not cache data to be updated should be stored in the buffer 301 while a cache requester 1 is in a waiting state. The buffer monitoring circuit 401 stores the resulting data in predetermined buffers 301 (in this example, buffers 301-1 and 301-2 as shown in Fig. 12). In addition, the buffer monitoring circuit 401 invalidates data that is not necessary. The buffer monitoring circuit 401 receives a Wait signal WAIT, output signals (determined results) of the match determination circuits 150 and 302, an output of an external register 116, and an output signal of a control circuit 110. The output signal of the control circuit 110 activates write enable terminals of a cache tag memory 111 and a cache data memory 112. The buffer control circuit 110 outputs a signal activating the buffer 301 and a validity flag representing the validation of data stored in the buffer 301.
Als nächstes wird unter Bezugnahme auf Fig. 13 der Betrieb der in Fig. 12 gezeigten Cachespeichervorrichtung 400 beschrieben. Fig. 13 ist ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung 400 der Fig. 12 zeigt.Next, the operation of the cache memory device 400 shown in Fig. 12 will be described with reference to Fig. 13. Fig. 13 is a timing chart showing the operation of the cache memory device 400 of Fig. 12.
In der Puffer-Überwachungsschaltung 401 gibt es Bedingungen zum Speichern von Daten zu den Puffern 301 (den Puffern 301-0 und 301-1) und zum Ungültigerklären von Daten, die in den Puffern 301 gespeichert sind.In the buffer monitor circuit 401, there are conditions for storing data to the buffers 301 (the buffers 301-0 and 301-1) and for invalidating data stored in the buffers 301.
das eine Bit niedriger Wertigkeit der Adresse von Daten, die zum Cache- Datenspeicher geschrieben werden, ist 0;the one least significant bit of the address of data written to the cache data memory is 0;
im Puffer 301-0 gespeicherte Daten sind ungültig; unddata stored in buffer 301-0 is invalid; and
der Cache-Requester 1 ist in einem Wartezustand, während ein Umgehungstreffer stattfindet; oderCache requester 1 is in a wait state while a bypass hit occurs; or
der Cache-Requester 1 ist im Wartezustand, während ein Treffer im Puffer 301-1 stattfindet.Cache requester 1 is in the waiting state while a hit occurs in buffer 301-1.
das eine Bit niedriger Wertigkeit der Adresse von Daten, die zum Cache- Datenspeicher geschrieben werden, ist 0;the one least significant bit of the address of data written to the cache data memory is 0;
im Puffer 301-1 gespeicherte Daten sind ungültig; unddata stored in buffer 301-1 is invalid; and
der Cache-Requester 1 ist im Wartezustand, während ein Umgehungstreffer stattfindet; oderCache requester 1 is in the waiting state while a bypass hit occurs; or
der Cache-Requester 1 ist im Wartezustand, während ein Treffer im Puffer 301-0 stattfindet.Cache requester 1 is in the waiting state while a hit occurs in buffer 301-0.
das eine Bit niedriger Wertigkeit der Adresse von Daten, die zum Cache- Datenspeicher geschrieben werden, ist 0;the one least significant bit of the address of data written to the cache data memory is 0;
der Cache-Requester 1 ist nicht im Wartezustand, während ein Umgehungstreffer stattfindet oder ein Treffer im Puffer 301-0 stattfindet.Cache requester 1 is not in the wait state while a bypass hit occurs or a hit occurs in buffer 301-0.
das eine Bit niedriger Wertigkeit der Adresse von Daten, die zum Cache- Datenspeicher geschrieben werden, ist 1; undthe one least significant bit of the address of data written to the cache data store is 1; and
der Cache-Requester 1 ist nicht im Wartezustand, während ein Umgehungstreffer stattfindet oder ein Treffer im Puffer 301-1 stattfindet.Cache requester 1 is not in the waiting state while a bypass hit occurs or a hit occurs in buffer 301-1.
Bei einer Taktperiode 2 findet ein Nichttreffer statt, und dadurch wird der Cache- Datenspeicher 112 einem Updaten unterzogen, Bei einer Taktperiode 4 treten Daten n + 1 auf einem ID-Bus 123 auf, wo Daten von einem externen Speicher 130 gelesen werden (d. h. ein Umgehungstreffer findet statt). Bei der Taktperiode 4 ist der Cache-Requester 1 in einem Wartezustand. Wenn das eine Bit niedriger Wertigkeit der Adresse von Daten n + 1 beispielsweise "0" ist, ist die oben beschriebene Bedingung (1) erfüllt. Somit werden die Daten n + 1 zum Puffer 301-0 geschrieben. Bei einer Taktperiode 5 findet ein Treffer im Puffer 301-0 statt, wenn der Cache-Requester 1 im Wartezustand ist. Somit werden die im Puffer 301-0 gespeicherten Daten nicht für ungültig erklärt. Jedoch deshalb, weil die Bedingungen (2) erfüllt sind (d. h. weil das eine Bit niedriger Wertigkeit der Daten n + 1 "0" ist, das eine Bit niedriger Wertigkeit der nächsten Daten n + 2 "1" ist), werden die Daten n + 2 zum Puffer 301-1 geschrieben. Wenn die oben beschriebenen Bedingungen (1) bis (4) erfüllt sind, werden neue Daten geschrieben oder für ungültig erklärt.At clock period 2, a miss occurs and thereby the cache data memory 112 undergoes an update. At clock period 4, data n+1 occurs on an ID bus 123 where data is read from an external memory 130 (i.e., a bypass hit occurs). At clock period 4, the cache requester 1 is in a wait state. For example, if the low-order bit of the address of data n+1 is "0", condition (1) described above is satisfied. Thus, the data n+1 is written to the buffer 301-0. At clock period 5, a hit occurs in the buffer 301-0 when the cache requester 1 is in the wait state. Thus, the data stored in the buffer 301-0 is not invalidated. However, because the conditions (2) are satisfied (i.e., because the low-order bit of the data n + 1 is "0", the low-order bit of the next data n + 2 is "1"), the data n + 2 is written to the buffer 301-1. When the conditions (1) to (4) described above are satisfied, new data is written or invalidated.
Bei den oben beschriebenen Ausführungsbeispielen wurde die Cachespeichervorrichtung gemäß der vorliegenden Erfindung beschrieben. Jedoch sollte beachtet werden, daß die Schaltungen und Zeitgaben der Operationen bei den oben beschriebenen Ausführungsbeispielen auf verschiedene Arten modifiziert werden können, solange die oben beschriebenen Operationen erreicht werden können.In the above-described embodiments, the cache memory device according to the present invention has been described. However, it should be noted that the circuits and timings of operations in the above-described embodiments may be modified in various ways as long as the above-described operations can be achieved.
Wie es oben beschrieben ist, kann gemäß dem ersten Ausführungsbeispiel der vorliegenden Erfindung deshalb, weil eine Einrichtung zum Zuführen von Daten, die zu einem Cache-Requester geschrieben werden, während Cache-Daten aufgrund eines Auftretens eines Nichttreffers einem Updaten unterzogen werden, vorgesehen ist, die Trefferrate verbessert werden, und die Zeit für einen Mehraufwand für einen Nichttreffer kann reduziert werden.As described above, according to the first embodiment of the present invention, since a means for supplying data, written to a cache requester while cache data is being updated due to a miss occurrence, the hit rate can be improved, and the time for a miss overhead can be reduced.
Gemäß dem zweiten Ausführungsbeispiel der vorliegenden Erfindung kann deshalb, weil eine Einrichtung zum kurzzeitigen Unterbrechen des Updatens von Cache-Daten entsprechend einer Warteanfrage durch einen Cache-Requester in der Vorrichtung gemäß dem ersten Ausführungsbeispiel vorgesehen ist, die Betriebsfähigkeit des gesamten Systems mit einer Cachespeichervorrichtung verbessert werden.According to the second embodiment of the present invention, since a means for temporarily suspending the updating of cache data in accordance with a wait request by a cache requester is provided in the apparatus according to the first embodiment, the operability of the entire system having a cache storage apparatus can be improved.
Gemäß dem dritten Ausführungsbeispiel der vorliegenden Erfindung können deshalb, weil eine Einrichtung zum kurzzeitigen Unterbrechen der Ausgabe von Cache-Daten zu einem Cache-Requester entsprechend einer durch ihn ausgegebenen Warteanfrage und eine Einrichtung für eine Puffereinrichtung zum Speichern von Cache-Daten, die im Wartezustand der Cache-Daten einem Updaten unterzogen werden, bei der Vorrichtung gemäß dem ersten Ausführungsbeispiel vorgesehen sind, Cache-Daten ungeachtet eines Auftretens einer Warteanfrage aufeinanderfolgend einem Updaten unterzogen werden. Zusätzlich kann auf Cache-Daten, die einem Updaten unterzogen worden sind, im Wartezustand zugegriffen werden, um dadurch die Betriebsfähigkeit mehr als bei der Vorrichtung des zweiten Ausführungsbeispiels zu verbessern.According to the third embodiment of the present invention, since means for temporarily stopping the output of cache data to a cache requester in accordance with a wait request issued by it and means for buffer means for storing cache data subjected to updating in the wait state of the cache data are provided in the apparatus according to the first embodiment, cache data can be sequentially updated regardless of occurrence of a wait request. In addition, cache data that has been subjected to updating can be accessed in the wait state, thereby improving operability more than in the apparatus of the second embodiment.
Gemäß dem vierten Ausführungsbeispiel der vorliegenden Erfindung ist eine Einrichtung zum Bestimmen der Notwendigkeit eines Speicherns von Cache-Daten, die in einer Puffereinrichtung zu speichern sind, in der Vorrichtung gemäß dem dritten Ausführungsbeispiel vorgesehen, um nötige Cache-Daten in der Puffereinrichtung zu speichern. Somit kann derselbe Effekt wie beim dritten Ausführungsbeispiel durch einen geringeren Hardwareaufwand als beim dritten Ausführungsbeispiel erreicht werden.According to the fourth embodiment of the present invention, a means for determining the necessity of storing cache data to be stored in a buffer means is provided in the apparatus according to the third embodiment to store necessary cache data in the buffer means. Thus, the same effect as in the third embodiment can be achieved by a smaller amount of hardware than in the third embodiment.
Claims (8)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4177492 | 1992-02-28 | ||
PCT/JP1993/000252 WO1993017386A1 (en) | 1992-02-28 | 1993-03-01 | Cache memory apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69330875D1 DE69330875D1 (en) | 2001-11-08 |
DE69330875T2 true DE69330875T2 (en) | 2002-04-11 |
Family
ID=12617728
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69330875T Expired - Lifetime DE69330875T2 (en) | 1992-02-28 | 1993-03-01 | CACHE DEVICE. |
DE69334046T Expired - Lifetime DE69334046T2 (en) | 1992-02-28 | 1993-03-01 | Cache memory device |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69334046T Expired - Lifetime DE69334046T2 (en) | 1992-02-28 | 1993-03-01 | Cache memory device |
Country Status (5)
Country | Link |
---|---|
US (2) | US5754814A (en) |
EP (2) | EP0628912B1 (en) |
JP (1) | JP3614428B2 (en) |
DE (2) | DE69330875T2 (en) |
WO (1) | WO1993017386A1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5862358A (en) * | 1994-12-20 | 1999-01-19 | Digital Equipment Corporation | Method and apparatus for reducing the apparent read latency when connecting busses with fixed read reply timeouts to CPUs with write-back caches |
TW440761B (en) * | 1999-05-06 | 2001-06-16 | Ind Tech Res Inst | The cache device and method |
US7146469B2 (en) * | 2002-10-24 | 2006-12-05 | Sony Corporation | Method, apparatus, and system for improving memory access speed |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2056135B (en) * | 1977-12-22 | 1982-11-24 | Honeywell Inf Systems | Data processing system including a cache store |
US4317168A (en) * | 1979-11-23 | 1982-02-23 | International Business Machines Corporation | Cache organization enabling concurrent line castout and line fetch transfers with main storage |
JPS615357A (en) * | 1984-06-07 | 1986-01-11 | Fujitsu Ltd | Data processor |
JPS6272041A (en) * | 1985-09-25 | 1987-04-02 | Nec Corp | Cache memory controller |
KR950006590B1 (en) * | 1986-11-14 | 1995-06-19 | 가부시기가이샤 히다찌세이사꾸쇼 | Microprocessor with a cache memory |
CA1300758C (en) * | 1988-03-07 | 1992-05-12 | Colin H. Cramm | Mechanism for lock-up free cache operation with a remote address translation unit |
JPH0778735B2 (en) * | 1988-12-05 | 1995-08-23 | 松下電器産業株式会社 | Cache device and instruction read device |
JPH0359741A (en) * | 1989-07-28 | 1991-03-14 | Mitsubishi Electric Corp | Cache memory |
US5123108A (en) * | 1989-09-11 | 1992-06-16 | Wang Laboratories, Inc. | Improved cpu pipeline having register file bypass and working register bypass on update/access address compare |
US5463760A (en) * | 1990-09-07 | 1995-10-31 | Nec Corporation | Break function in-circuit emulator for a microprocessor with a cache memory |
US5485589A (en) * | 1991-12-31 | 1996-01-16 | Dell Usa, L.P. | Predictive addressing architecture |
EP0552667B1 (en) * | 1992-01-22 | 1999-04-21 | Enhanced Memory Systems, Inc. | Enhanced dram with embedded registers |
-
1993
- 1993-03-01 JP JP51470293A patent/JP3614428B2/en not_active Expired - Fee Related
- 1993-03-01 DE DE69330875T patent/DE69330875T2/en not_active Expired - Lifetime
- 1993-03-01 DE DE69334046T patent/DE69334046T2/en not_active Expired - Lifetime
- 1993-03-01 WO PCT/JP1993/000252 patent/WO1993017386A1/en active IP Right Grant
- 1993-03-01 US US08/295,685 patent/US5754814A/en not_active Expired - Lifetime
- 1993-03-01 EP EP93904367A patent/EP0628912B1/en not_active Expired - Lifetime
- 1993-03-01 EP EP99110778A patent/EP0943998B1/en not_active Expired - Lifetime
-
1995
- 1995-05-31 US US08/455,029 patent/US5634104A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5634104A (en) | 1997-05-27 |
WO1993017386A1 (en) | 1993-09-02 |
EP0628912A4 (en) | 1995-10-11 |
EP0943998A3 (en) | 2000-09-13 |
DE69330875D1 (en) | 2001-11-08 |
EP0943998A2 (en) | 1999-09-22 |
JP3614428B2 (en) | 2005-01-26 |
EP0628912B1 (en) | 2001-10-04 |
US5754814A (en) | 1998-05-19 |
EP0943998B1 (en) | 2006-07-12 |
EP0628912A1 (en) | 1994-12-14 |
DE69334046T2 (en) | 2007-02-08 |
DE69334046D1 (en) | 2006-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69031967T2 (en) | Information processing arrangement | |
DE68924306T2 (en) | Multi-processor computer arrays with shared memory and private caches. | |
DE3782335T2 (en) | MEMORY CONTROL SYSTEM. | |
DE3724317C2 (en) | ||
DE3689042T2 (en) | Device for buffering write requests. | |
DE69323790T2 (en) | Method and apparatus for multiple pending operations in a cache coherent multiprocessor system | |
DE3011552C2 (en) | ||
DE3785897T2 (en) | CONTROL DEVICE FOR PRELIMINARY COMMANDS. | |
DE2847960C2 (en) | Storage control device | |
DE69222060T2 (en) | SEMAPHORE Bypass. | |
DE69029479T2 (en) | High performance storage system | |
DE69031411T2 (en) | Method and arrangement for reading, writing and refreshing a memory with direct virtual or physical access | |
DE68923863T2 (en) | I / O cache storage. | |
DE3852695T2 (en) | Multiprocessor system with multiple memories. | |
DE3502147C2 (en) | ||
DE10219623A1 (en) | System and method for memory decision using multiple queues | |
DE69031696T2 (en) | Cache memory with the possibility in the event of a mistake to update at the same time and to make a decision about the next address | |
DE68928333T2 (en) | Buffer memory that is suitable for storing command and data blocks in different block sizes | |
DE68925336T2 (en) | Data processing device with cache memory | |
DE69131761T2 (en) | Data processing for maintaining coherence of cache data | |
DE69323477T2 (en) | Vector processor | |
DE69423938T2 (en) | Data processing system with maintaining cache coherency using a snoop protocol | |
DE3685622T2 (en) | DATA TRANSFER CONTROL UNIT AND SYSTEM. | |
DE4114053A1 (en) | COMPUTER SYSTEM WITH CACHE MEMORY | |
DE69220788T2 (en) | Coupler circuit and its use in a circuit board and method therefor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: OKI SEMICONDUCTOR CO.,LTD., TOKYO, JP |