WO1996033462A1 - Cache-speicher - Google Patents

Cache-speicher Download PDF

Info

Publication number
WO1996033462A1
WO1996033462A1 PCT/EP1995/001458 EP9501458W WO9633462A1 WO 1996033462 A1 WO1996033462 A1 WO 1996033462A1 EP 9501458 W EP9501458 W EP 9501458W WO 9633462 A1 WO9633462 A1 WO 9633462A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
cache
cache memory
data sequence
address
Prior art date
Application number
PCT/EP1995/001458
Other languages
English (en)
French (fr)
Inventor
Udo Wille
Klaus-Jörg GETZLAFF
Birgit Withelm
Hans-Werner Tast
Original Assignee
International Business Machines Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corporation filed Critical International Business Machines Corporation
Priority to PCT/EP1995/001458 priority Critical patent/WO1996033462A1/de
Publication of WO1996033462A1 publication Critical patent/WO1996033462A1/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies

Definitions

  • the invention relates to a cache memory according to the preamble of claim 1.
  • the invention also relates to a microprocessor system and a method for operating a cache memory.
  • cache memories are widely used. They generally serve to limit the access time to data e.g. minimized by a microprocessor or other system unit. Such cache memories are e.g. known from EP-A-0 301 921.
  • the cache memory associated with the microprocessor is the first level of cache memory.
  • This first level cache is also referred to as a first order cache, or L1 for short.
  • a second-order cache L2 is provided separately from the microprocessor with the associated first-order cache L1.
  • the cache memory L2 generally has a much larger storage capacity than the cache memory L1.
  • the cache memory L2 is therefore implemented on a separate chip. If the microprocessor in operation needs input data, for example, the system first checked whether these required data are available in the cache memory Ll. If this check reveals that the required data is not in the cache memory L1, the corresponding check is carried out for the cache memory L2. If this check is successful for the cache memory L2, the corresponding data are copied into the cache memory L1. Before this copying of the required data from the cache memory L2 into the cache memory L1, storage space for the data to be copied must be created in the cache memory Ll.
  • a data sequence stored in the cache memory L1 is selected and removed from the cache memory L1.
  • the corresponding data can be stored back, for example, in the main working memory of the computer system.
  • the problem of ensuring the integrity of the data in the cache memories occurs in particular in multiprocessor systems.
  • This problem can be solved by implementing a so-called MESI cache protocol.
  • MESI cache protocol This means that for each data sequence that is stored in the cache memories, there is coded information as to whether the data sequence is a data sequence modified in comparison with the content of the main memory or whether the data sequence is exclusive only in one of the cache memories. Memory is stored or whether other cache memories also have this data sequence and whether the stored data sequence is ultimately invalid.
  • To encode this information in generally three bits, the so-called valid bit (VBit), change bit (CBit) and the multi-copy bit (MCBit).
  • registers are provided at least in the L2 caches, a triple of V, C and MC bits each indicating information required to maintain cache integrity.
  • This is already known from the journal Microprocessing and Microprogramming 32 (1991), pages 215-220, "Data Consistency in a Multiprocessor System with 'Store In'Cache-Concept" by Gerhard Döttling.
  • IBM Technical Disclosure Bulletin Vol. 37, No. 10, 10-94 pages 557 - 562, vol. 37, no. 6a, 06-94, pages 241 and 242, vol. 37, no. 5, 05-94, pages 553 and 554, vol. 37, no. 4B, 04-94, pages 207-208, processor systems in which the cache integrity is guaranteed by the MESI protocol.
  • a description of the MESI protocol can also be found in the user manual for the Power PC 601, Chapter 4, page 10.
  • the object of the invention is therefore to create an improved cache memory.
  • the invention is also based on the object of providing an improved microprocessor system in which the use of the system bus is particularly effective.
  • the corresponding action must also be carried out in the cache memory L1 in order to ensure the integrity of the data in the cache memories .
  • the status change of the data sequence in the cache L1 must, however can only be made if a copy of this data sequence is also present in the cache memory L1. Otherwise, the status change of the data sequence in the cache L2 is sufficient.
  • information about the cache memory L1 is stored in the cache memory L2, so that there is no need for the cache memory L2 to check whether the corresponding data is present in the cache memory Ll.
  • This information is stored in the form of validity bits Vi (Ll), preferably in registers provided for this purpose in the cache memory L2. If the status of a stored data sequence is now to be changed within the cache L2, it can already be checked at the level of the cache L2 whether the corresponding action is also required in the cache L1. This makes the corresponding interrupt of the microprocessor belonging to the cache memory L1 and the blocking of the system bus unnecessary.
  • Fig. 1 is a schematic representation of a
  • FIG. 2 shows a microprocessor system with several of the microprocessors shown in FIG. 1 and associated cache memories.
  • the cache memory L2 is integrated on a separate chip 1.
  • the cache memory L2 has a memory area 2 which can be divided into the memory sections YI, Y2, ... Yn-1, Yn. In the embodiment shown, this division of the memory area 2 takes place line by line, each line of the memory area 2 representing one of the memory sections Yi.
  • the memory sections Yi are the same size in the exemplary embodiment shown.
  • FIG. 1 a microprocessor PU is shown in FIG. 1, which is integrated on a chip 4.
  • a cache memory L1 of the order X-1 belonging to the microprocessor PU is also integrated on the chip 4.
  • the order X of the cache memory indicates the memory level from the microprocessor PU, the corresponding cache memory is located.
  • the cache memory L1 can be divided into memory sections ZI, Z2,... Zm-1, Zm in a similar way to the cache memory L2. As in the cache L2, the corresponding memory sections Zj are in rows in the cache L1 organized and of the same memory length. The memory sections Zj thus divide the memory area 5 of the cache memory L1.
  • the cache memory L1 is connected to the cache memory L2 via a data bus 6.
  • the cache memory L2 is in turn connected to the system bus 7.
  • the microprocessor PU is connected to the cache memory L2 via the address bus 8.
  • the cache memory L2 has a directory 9 (DIRECTORY).
  • the memory addresses i of the data sequences stored in the memory sections Yi are stored in the directory 9.
  • the cache memory L1 also has a corresponding directory 10 for storing the addresses j of the data sequences stored in the memory sections Zj.
  • Each address stored in the directory 10 of the cache memory L1 is uniquely assigned a valid bit and a multiple copy bit.
  • a valid bit Vj indicates for the corresponding data sequence j, which is stored in a memory section Zj in the memory area 5 of the cache memory L1, whether the data sequence j is valid. For example, if the processor PU needs the data sequence associated with the address j, the microprocessor PU will make a corresponding request to its cache memory L1.
  • the directory 10 of the cache memory L1 will first be searched for the address j of the data sequence. If the address j is in the directory 10, this means that the corresponding data sequence with the address j is present in a memory section Zj of the memory area 5 in the cache memory L1.
  • the valid bit Vj associated with address j is then checked. If the valid bit Vj is logic 1, this means that the data sequence stored in the memory section Zj is still valid.
  • the data sequence Zj is then output to the processor PU for processing via an internal data bus. After processing this data sequence j by the Microprocessor PU can be restored to the same logical memory section Zj.
  • Each of the addresses j stored in the directory 10 is also uniquely assigned a multiple copy bit (MC bit). If the MC bit is logic 1, for example, this means that copies of the data sequence j stored in the memory section Zj are located in other cache memories of the computer system.
  • the cache memory L2 has corresponding registers 11 and 13, in which the valid bits Vi (L2) and the multiple copy bits MCi of the corresponding memory sections Yi are stored. To implement the MESI cache protocol, the cache memory L2 also has a register 12 in which change bits Ci of the corresponding memory sections Yi are stored. Furthermore, both the cache memory L1 and the cache memory L2 have what are known as least recently used (LRU) registers 14 and 17, which, in a manner known per se, serve to ensure that only the most frequently required data sequences are stored in the cache -Stores are located.
  • LRU least recently used
  • the present invention can be applied to various cache systems, e.g. for the following cache systems:
  • the cache memory L1 is a so-called write-through memory. This means that each storage of a data sequence of address 1 by the microprocessor PU in the cache memory L1 automatically results in the storage of the same data sequence 1 in a memory section Yi of the cache memory L2.
  • the cache memory L2 is a so-called store-in cache. This means that the data sequence i just mentioned is not automatically fed to the main memory via the system bus. Only if the microprocessor requests a new data sequence i from the main memory, but for which there is no free memory space in the cache memory L2, must the corresponding memory space in the cache memory L2 first be created before the data sequence i is stored.
  • That memory section Yi of the cache memory L2 which contains the LRU data sequence of the address j can be used for this purpose.
  • This memory section Yi can generally be overwritten because a copy of the data sequence j is present in the main memory. Only if the corresponding C bit of the data sequence which is stored in the memory section Yi is logic 1, must the data sequence j located there be stored in the main memory before the new data sequence i is stored in the memory section Yi.
  • the cache memory Ll is also a "store-in-cache". Then, when a data sequence of the logical address i, which is stored in the memory section Zj of the cache memory L1, changes, a corresponding change in the memory section Yi of the cache memory L2, in which this data sequence of the address i is also stored, no longer occurs automatically , be carried out, as is the case in the example under 1.. However, in order to ensure the integrity of the data nevertheless, a change bit must also be provided in the cache memory L1.
  • the cache memory L2 has a further register 3, which is used to store validity bits Vi (Ll).
  • a validity bit Vi (Ll) is uniquely assigned to each of the memory sections Yi.
  • a valid bit Vi (Ll) of the corresponding memory section Yi of the cache memory L2 indicates whether the data sequence with the address i stored in the memory section Yi also in one Memory section Zj of the cache memory Ll is stored.
  • the cache L2 is generally much larger than the cache L1.
  • the cache L2 can for example be 256 KB and the cache Ll only 16 KB. The probability that a data sequence 1 is stored in both cache memories L1 and L2 of a processor is therefore relatively low.
  • FIG. 2 shows a schematic illustration of a computer system according to the invention, only two microprocessors PU1 and PU2, which correspond to the microprocessor PU of FIG. 1, being shown.
  • the cache memories L1 and L2 of the microprocessors PU1 and PU2 are constructed in the same way as the corresponding cache memories of the microprocessor PU in FIG. 1.
  • the microprocessors PU1 and PU2 exchange commands and data indirectly via the system bus 7 via their cache memory L2.
  • the microprocessors PU1 and PU2 are connected to one another via a signal line 18, to which all other microprocessors of the microprocessor system shown in detail in FIG. 2 are preferably also connected.
  • the microprocessor PU 1 If the microprocessor PU 1 is to transmit a command via the system bus 7, this first requires that the microprocessor PU1 be given access to the system bus 7 for this purpose. For this purpose, the microprocessor PU1 must receive access authorization from an arbiter, not shown. Arbiters suitable for this purpose are known, for example, from EP-A-0 575 651. As soon as the system bus 7 is assigned to the microprocessor PU1, the processor PUl can issue a data request command for a data sequence of the address i on the system bus 7. This command is aimed on the one hand at the Main memory of the microprocessor system, on the other hand to all "listening" L2 chips.
  • the cache memory L2 according to the invention has an advantageous effect on the overall processing speed of the system in the following situations, for example:
  • the processor PU2 has processed and changed a data sequence of the address 1. This data sequence is now to be stored in the cache memories L1 and L2 of the processor PU2, specifically at the logical address 1 + 1. However, the corresponding data sequence of the address 1 + 1 is not available in the cache memories L1 and L2 of the processor PU2.
  • the processor PU2 Before the processor PU2 can save the changed data sequence of the address i + 1 in its cache L1, the earlier version of this data sequence i + 1 must be saved in the cache L1 and L2 of the processor PU2. After this earlier version of the data sequence i + 1 has been stored in the cache memories L1 and L2 of the processor PU2, it can then be overwritten by the changed version of the data sequence i + 1. This process is also called "linefetch due to sturgeon".
  • the processor PU2 will first issue a request command on the bus 7, which is directed to the memory of the microprocessor system. With the request command, the microprocessor PU2 signals that it requires the data sequence of the address i + 1. Normally this has the consequence that the memory of the microprocessor system outputs the corresponding data on the bus 7.
  • the microprocessor PU1 has the data sequence of the address i + 1 in its cache memory L2 and the associated change bit (CBit) is logic 1.
  • the data sequence of the address i + 1 in the cache memory L2 of the processor PU1 is changed compared to the memory of the microprocessor system.
  • the valid bit V (L2) of the data sequence of the address i + 1 in the cache memory L2 of the Microprocessor PUl is logic 1, ie the corresponding data in the cache memory L2 are valid.
  • the microprocessor PU1 is then used instead of the memory
  • Microprocessor system output the data sequence of the address i + 1 on the bus. This is ensured by the bus protocol.
  • This process is also "bus snooping" the processor
  • the valid bit V (L2) of the address i + 1 in the cache memory L2 of the processor PU1 must become logic 0, since the request for the data sequence i + 1 "linefetch" due to an upcoming memory operation "disturbs" the cache Memory L1 of processor PU2 takes place. This is because this means that the data sequence i + 1, as it exists in the cache memory L2 of the processor PU1, should no longer be valid.
  • Such an interrupt of the processor is unnecessary, however, if the valid bit Vi (Ll) of the address i + 1 in the cache memory L2 of the processor PU1 is logic 0, which means that the data sequence of the address i + 1 in the cache memory Ll of the processor PUl is not present at all.
  • the saving of interrupt operations means that the "BUSY" signal has to be active for a correspondingly shorter period of time. That has a significant impact on the whole
  • Processing speed of the microcomputer system In this example, this is due to the fact that no other processor in the system can access bus 7 during the period of execution of the "linefetch due to disturb" operation. Because in most cases no processor interrupt is required, another system participant can be granted access to the bus earlier.
  • a necessary interrupt can take a long time.
  • An interrupt of a microprocessor is not possible at any time, but only in certain states of the microprocessor. If, for example, the microprocessor in question is currently executing an instruction that takes many system cycles, the interrupt cannot be executed during this time. The processor can only be interrupted after this instruction has been processed. However, due to the use of the L2 cache according to the teaching of the invention, a time-consuming interrupt is not necessary in most cases.
  • the microprocessor PU1 has in its L2 cache a data sequence of address 1, of which copies exist in other caches. This means that the multiple copy bit (MCBit) of address i (register 13) is logical 1 is. It is assumed that the data sequence of the address i does not exist in the cache memory L1 of the same processor PU1. The corresponding validity bit Vi (Ll) in the cache memory L2 of the microprocessor PU1 is therefore logic 0.
  • the processor PU2 has also stored a valid copy of the data sequence i in its cache memories L1 and L2, so that the respective MC bits of the address i in the cache memories L1 and L2 of the processor PU2 are logic 1.
  • the processor PU2 has processed and changed the data sequence i. Now the changed data sequence i is to be stored in the cache memory L1 of the processor PU2.
  • a corresponding command is output on bus 7 and received by processor PU1 - as well as by other processors that may be affected ("bus snooping").
  • the validity bit V (L2) in the cache memory L2 of the processor PU1 is then invalidated. Since the valid bit Vi (Ll) of the address 1 in the register 3 of the cache memory L2 of the processor PU1 indicates that the data sequence of the address i is not present in the cache memory L1 of the processor PU1, there is no need for an invalidation in it Processor cache L1 PUl. As a result, there is also no need for an interrupt of the processor PU1.
  • the changed data sequence i can then be stored in the cache memories L1 and L2 of the processor PU2. This overwrites the previous version of this data sequence.
  • the MCBit then becomes logical 0 because there are no valid copies in the cache memories of other processors, since these were previously invalidated.
  • the processor PU2 has an exclusive i data sequence in its cache L2, i.e. there are no copies of this sequence in other processors' caches. It is assumed that the data sequence of the address i is not present in the cache memory L1 of the processor PU2. The corresponding validity bit Vi (Ll) in the cache memory L2 is then logic 0.
  • the processor PU1 needs the data sequence of the address i exclusively for reading, but has neither in its L1 nor in its L2 cache.
  • the processor PU1 therefore issues a "line fetch due to fetch" command on the bus 7 in order to request the data sequence i from the memory of the microprocessor system.
  • the L2 cache memory of the processor PU2 recognizes this process on the bus 7 by "bus snooping".
  • the fact that another processor fetches a copy of the data sequence 1 from the memory of the microprocessor system means that this data sequence is no longer exclusively available in the cache memory L2 of the processor PU2. Therefore, the MCBlt of address 1 must be set to logic 1 in processor PU2.
  • the processor PU1 In the processor PU1 that requested the data sequence i, it is also necessary to set the MC bit of the address i in its cache memory L1 and L2 to logic 1.
  • the information that the requested data sequence i already exists in the cache memory of another processor - here the processor PU2 - is transmitted to the processor PU1 through the busy line 18 (FIG. 2).
  • the bus protocol ensures that a corresponding signal is generated by the cache memory L2 of the processor PU2 during a system cycle the busy line 18 is output after the match has been determined.

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)

Abstract

Die Erfindung betrifft einen Cache-Speicher L2 der Ordnung X für einen Cache-Speicher der Ordnung X-1, wobei die Cache-Speicher L2 und L1 in Speicherabschnitten Yi beziehungsweise Zj aufteilbar sind. Der Cache-Speicher L2 hat ein Register (3) zur Speicherung eines Gültigkeitsbits Vi (L1) für jeden der Speicherabschnitte Yi. Das Gültigkeitsbit eines Speicherabschnitts Yi zeigt an, ob der Inhalt dieses Speicherabschnitts auch in einem entsprechenden Speicherabschnitt Zj des Cache-Speichers L1 gespeichert ist. Hierdurch werden Interrupts des betreffenden Mikroprozessors vermieden. Dadurch steigt die Effizienz der Ausnutzung des Systembus (7) und damit auch die Verarbeitungsgeschwindigkeit des gesamten Mikroprozessor-Systems.

Description

B E S C H R E I B U N G
CACHE-SPEICHER
Die Erfindung betrifft einen Cache-Speicher nach dem Oberbegriff von Patentanspruch 1. Die Erfindung betrifft überdies ein Mikroprozessor-System und ein Verfahren zum Betrieb eines Cache-Speichers.
Aus dem Stand der Technik ist die Verwendung von sogenannten Cache-Speichern bereits seit längerem bekannt. Cache-Speicher finden eine weite Verwendung. Sie dienen im allgemeinen dazu, die Zugriffszeit auf Daten, die z.B. von einem Mikroprozessor oder einer anderen Systemeinheit benötigt werden, zu minimieren. Solche Cache-Speicher sind z.B. aus EP-A-0 301 921 bekannt.
Es ist ebenfalls bekannt, zur weiteren Optimierung der Zugriffszeit zwei oder mehr Ebenen von Cache-Speichern zu verwenden. So sind bereits Computer-Systeme verfügbar, in denen der Mikroprozessor einen Cache-Speicher erster Ordnung aufweist, der auch zusammen mit dem eigentlichen Mikroprozessor auf einem Chip integriert sein kann. Bei dem zu dem Mikroprozessor gehörenden Cache-Speicher handelt es sich um die erste Ebene von Cache-Speichern. Dieser Cache- Speicher erster Ebene wird auch als Cache-Speicher erster Ordnung oder kurz Ll bezeichnet.
Getrennt von dem Mikroprozessor mit dem dazugehörigen Cache-Speicher Ll erster Ordnung ist bei bekannten Computersystemen ein Cache-Speicher L2 zweiter Ordnung vorgesehen. Der Cache-Speicher L2 hat im allgemeinen eine wesentlich größere Speicherkapazität als der Cache-Speieher Ll. Der Cache-Speicher L2 ist deshalb auf einem separaten Chip realisiert. Falls nun der Mikroprozessor in Betrieb z.B. Eingabedaten benötigt, wird zunächst in dem System geprüft, ob diese benötigten Daten in dem Cache-Speicher Ll zur Verfügung stehen. Ergibt diese Prüfung, daß die benötigten Daten nicht in dem Cache-Speicher Ll stehen, so wird die entsprechende Prüfung für den Cache-Speicher L2 vorgenommen. Führt diese Prüfung für den Cache-Speicher L2 zum Erfolg, so werden die entsprechenden Daten in den Cache-Speicher Ll kopiert. Vor diesem Kopieren der benötigten Daten aus dem Cache-Speicher L2 in den Cache- Speicher Ll muß im Cache-Speicher Ll Speicherplatz für die zu kopierenden Daten geschaffen werden. Dazu wird eine in den Cache-Speicher Ll gespeicherte Datensequenz ausgewählt und aus dem Cache-Speicher Ll entfernt. Die entsprechenden Daten können beispielsweise in den Hauptarbeitsspeicher des ComputerSystems zurückgespeichert werden. Die Auswahl der aus dem Cache-Speicher Ll zu entfernenden Datensequenz geschieht im allgemeinen mittels eines LRU-Algorythmus (LRU = Least Recently Used).
Die Verwendung zweier oder mehr Ebenen von Cache-Speichern ist besonders in Multiprozessorsystemen vorteilhaft, um den Systembus zu entlasten (z.B. in dem in der EP-A-0575651 gezeigten Multiprozessorsystem) .
Insbesondere bei Multiprozessorsystemen tritt das Problem, die Integrität der in den Cache-Speichern befindlichen Daten zu gewährleisten, auf. Dieses Problem kann durch Implementierung eines sogenannten MESI Cache-Protokolls gelöst werden. Dadurch liegt für jede Datensequenz, die in den Cache-Speichern abgespeichert ist, eine codierte Information vor, ob es sich nämlich bei der Datensequenz um eine im Vergleich zum Inhalt des Hauptspeichers modifizierte Datensequenz handelt, oder ob die Datensequenz exclusiv nur in einem der Cache-Speicher abgespeichert ist oder ob auch andere Cache-Speicher diese Datensequenz aufweisen und ob schließlich die gespeicherte Datensequenz ungültig ist. Zur Codierung dieser Information dienen im allgemeinen drei Bits, das sogenannte Valid-Bit (VBit), Change-Bit (CBit) und das Multi-Copy-Bit (MCBit) . Zur Speicherung dieser Bits sind zumindest in den L2-Caches Register vorgesehen, wobei je ein Tripel aus V, C und MC- Bits zur Aufrechterhaltung der Cache-Integrität erforderlichen Informationen angibt. Dies ist bereits aus der Zeitschrift Microprocessing and Microprogramming 32 (1991), Seiten 215 - 220, "Data Consistency in a Multiprocessor System with 'Store In' Cache-Concept" von Gerhard Döttling bekannt. Ferner sind noch aus IBM Technical Disclosure Bulletin Vol. 37, No. 10, 10-94, Seiten 557 - 562, Vol. 37, No. 6a, 06-94, Seiten 241 und 242, Vol. 37, No. 5, 05-94, Seiten 553 und 554, Vol. 37, No. 4B, 04-94, Seiten 207 - 208, Prozessorsysteme bekannt, bei denen die Cache-Integrität durch das MESI-Protokoll gewährleistet ist. Eine Beschreibung des MESI-Protokolls findet sich auch in dem Benutzerhandbuch für den Power-PC 601, Kapitel 4, Seite 10.
Der Erfindung liegt daher die Aufgabe zugrunde, einen verbesserten Cache-Speicher zu schaffen. Der Erfindung liegt ferner die Aufgabe zugrunde, ein verbessertes Mikroprozessorsystem zu schaffen, bei dem die Ausnutzung des Systembus besonders effektiv ist.
Die der Erfindung zugrundeliegenden Aufgaben werden mit den Merkmalen des kennzeichnenden Teils von Anspruch 1 bzw. von Anspruch 4 gelöst.
Wird bei vorbekannten Mikroprozessorsystemen z.B. der Status einer Speicherzeile im Cache-Speicher L2 entsprechend dem MESI-Protokoll über den Systembus geändert, so muß die entsprechende Aktion auch im Cache- Speicher Ll vorgenommen werden, um die Integrität der Daten in den Cache-Speichern zu gewährleisten. Die Statusänderung der Datensequenz in dem Cache-Speicher Ll muß allerdings nur dann vorgenommen werden, wenn in dem Cache-Speicher Ll auch eine Kopie dieser Datensequenz vorhanden ist. Sonst genügt die Statusänderung der Datensequenz in dem Cache- Speicher L2. Nach dem Stand der Technik ist es jedoch in jedem Fall erforderlich, daß mittels des Mikroprozessors geprüft wird, ob die entsprechenden Daten in seinem Cache- Speicher Ll gespeichert sind. Dazu muß zunächst abgewartet werden, bis der Mikroprozessor in einem Zustand ist, in dem ein solcher Interrupt durchgeführt werden kann. Aufgrund der Größenverhältnisse zwischen den Cache-Speichern L2 und Ll wird diese Prüfung jedoch nur in einer relativ geringen Anzahl der Fälle zu dem Ergebnis führen, daß die entsprechenden Daten tatsächlich in dem Cache-Speicher Ll sind. Während dieser Prüfung kann der Systembus nicht anderweitig verwendet werden, woran dann insgesamt die Verarbeitungsgeschwindigkeit des Mikroprozessorsystems leidet.
Nach der Lehre der Erfindung sind in dem Cache-Speicher L2 Informationen über den Cache-Speicher Ll gespeichert, so daß die Prüfung seitens des Cache-Speichers L2, ob die entsprechenden Daten in dem Cache-Speicher Ll vorhanden sind, entfällt. Diese Informationen werden in Form von Gültigkeits-Bits Vi(Ll) vorzugsweise in hierfür in den Cache-Speicher L2 vorgesehenen Registern gespeichert. Soll nun innerhalb des Cache-Speichers L2 der Status einer gespeicherte Datensequenz abgeändert werden, so kann bereits auf der Ebene des Cache-Speichers L2 geprüft werden, ob die entsprechende Aktion auch in dem Cache- Speicher Ll erforderlich ist. Dadurch erübrigt sich der entsprechende Interrupt des zu dem Cache-Speicher Ll gehörenden Mikroprozessors als auch die Blockierung des Systembus.
Weitere vorteilhafte Ausführungsformen der Erfindung sind in den abhängigen Ansprüchen angegeben. Eine Ausführungsform der Erfindung ist in der Zeichnung dargestellt und wird im folgenden näher beschrieben.
Es zeigen
Fig. 1 eine schematische Darstellung eines
Mikroprozessors mit den dazugehörigen Cache- Speichern Ll und L2;
Fig. 2 ein Mikroprozessorsystem mit mehreren der in Figur 1 dargestellten Mikroprozessoren und dazugehörigen Cache-Speichern.
In der Figur 1 ist ein Cache-Speicher L2 der Ordnung X = 2 dargestellt. Der Cache-Speicher L2 ist auf einem separaten Chip 1 integriert. Der Cache-Speicher L2 hat einen Speicherbereich 2, der in die Speicherabschnitte YI, Y2, ... Yn-1, Yn aufteilbar ist. In der gezeigten Ausführungsform geschieht diese Aufteilung des Speicherbereichs 2 zeilenweise, wobei jede Zeile des Speicherbereichs 2 einen der Speicherabschnitte Yi darstellt. Die Speicherabschnitte Yi sind in dem gezeigten Ausführungsbeispiel gleich groß.
Ferner ist in Figur 1 ein Mikroprozessor PU dargestellt, der auf einem Chip 4 integriert ist. Auf dem Chip 4 ist außerdem ein zu dem Mikroprozessor PU gehörender Cache- Speicher Ll der Ordnung X - l integriert. Die Ordnung X der Cache-Speicher gibt dabei an, auf welcher Speicherebene vom Mikroprozessor PU aus gesehen, sich der entsprechende Cache-Speicher befindet.
Der Cache-Speicher Ll ist ähnlich wie der Cache-Speicher L2 in Speicherabschnitte ZI, Z2, ... Zm-1, Zm aufteilbar. Ebenso wie im Cache-Speicher L2 sind die entsprechenden Speicherabschnitte Zj in Cache-Speicher Ll zeilenweise organisiert und von jeweils gleicher Speicherlänge. Die Speicherabschnitte Zj teilen so den Speicherbereich 5 des Cache-Speichers Ll auf. Der Cache-Speicher Ll ist mit dem Cache-Speicher L2 über einen Datenbus 6 verbunden. Der Cache-Speicher L2 ist wiederum mit dem Systembus 7 verbunden. Ferner ist der Mikroprozessor PU mit dem Cache- Speicher L2 über den Adressbus 8 verbunden.
Der Cache-Speicher L2 hat ein Verzeichnis 9 (DIRECTORY). In dem Verzeichnis 9 werden die Speicheradressen i der in den Speicherabschnitten Yi jeweils gespeicherten Datensequenzen abgelegt. Ein entsprechendes Verzeichnis 10 zur Speicherung der Adressen j der in den Speicherabschnitten Zj gespeicherten Datensequenzen weist auch der Cache-Speicher Ll auf. Jeder in dem Verzeichnis 10 des Cache-Speichers Ll abelegten Adresse ist eindeutig ein Valid-Bit und ein Multiple-Copy-Bit zugeordnet. Ein Valid-Bit Vj gibt für die entsprechende Datensequenz j, die in einem Speicherabschnitt Zj in dem Speicherbereich 5 des Cache- Speichers Ll abgespeichert ist an, ob die Datensequenz j gültig ist. Benötigt beispielsweise der Prozessor PU die zu der Adresse j gehörige Datensequenz, so wird der Mikroprozessor PU eine entsprechende Anforderung an seinen Cache-Speicher Ll richten. Daraufhin wird in dem Verzeichnis 10 des Cache-Speichers Ll zunächst nach der Adresse j der Datensequenz gesucht werden. Befindet sich die Adresse j in dem Verzeichnis 10, so bedeutet dies, daß die entsprechende Datensequenz mit der Adresse j in einem Speicherabschnitt Zj des Speicherbereichs 5 in dem Cache- Speicher Ll vorhanden ist. Daraufhin wird das zu der Adresse j gehörige Valid-Bit Vj geprüft. Wenn das Valid-Bit Vj logisch 1 ist, so bedeutet dies, daß die in dem Speicherabschnitt Zj gespeicherte Datensequenz noch gültig ist. Die Datensequenz Zj wird dann zur Bearbeitung an den Prozessor PU über einen internen Datenbus ausgegeben. Nach der Bearbeitung dieser Datensequenz j durch den Mikroprozessor PU kann diese wieder in den selben logischen Speicherabschnitt Zj zurückgespeichert werden.
Jeder der in dem Verzeichnis 10 gespeicherten Adressen j ist ferner eine Multiple-Copy-Bit (MC-Bit) eindeutig zugeordnet. Ist das MC-Bit beispielsweise logisch 1, so bedeutet dies, daß sich in anderen Cache-Speichern des ComputerSystems Kopien der in dem Speicherabschnitt Zj gespeicherten Datensequenz j befinden.
Der Cache-Speicher L2 weist entsprechende Register 11 und 13 auf, in denen die Valid-Bits Vi(L2) und die Multiple- Copy Bits MCi der entsprechenden Speicherabschnitte Yi abgespeichert sind. Zur Realisierung des MESI Cache- Protokolls weist der Cache-Speicher L2 ferner ein Register 12 auf, in das Change-Bits Ci der entsprechenden Speicherabschnitte Yi abgelegt werden. Ferner weisen sowohl der Cache-Speicher Ll als auch der Cache-Speicher L2 sogenannte Least-Recently-Used (LRU) Register 14 und 17 auf, die in an sich bekannter Weise dazu dienen, daß möglichst nur die am häufigsten benötigten Datensequenzen in den Cache-Speichern befindlich sind.
Der vorliegende Erfindung kann für verschiedene Cache- Systeme angewendet werden, z.B. für folgende Cache-Systeme:
1. Der Cache-Speicher Ll ist ein sogenannter Write Through Speicher. Das bedeutet, daß jede Speicherung einer Datensequenz der Adresse 1 seitens des Mikroprozessors PU in dem Cache-Speicher Ll automatisch die Speicherung derselben Datensequenz 1 in einem Speicherabschnitt Yi des Cache-Speichers L2 zur Folge hat. Dagegen ist der Cache- Speicher L2 ein sogenannter Store-In-Cache. Das bedeutet, daß die eben genannte Datensequenz i nicht automatisch über den Systembus dem Hauptspeicher zugeführt wird. Nur wenn der Mikroprozessor eine neue Datensequenz i vom Hauptspeicher anfordert, für die aber im Cache-Speicher L2 kein freier Speicherplatz vorhanden ist, muß vor Abspeicherung der Datensequenz i erst der entsprechende Speicherplatz in dem Cache-Speicher L2 geschaffen werden. Dazu kann derjenige Speicherabschnitt Yi des Cache- Speichers L2, der die LRU-Datensequenz der Adresse j beinhaltet, benutzt werden. Dieser Speicherabschnitt Yi kann im allgemeinen überschrieben werden, da eine Kopie der Datensequenz j im Hauptspeicher vorhanden ist. Nur wenn das entsprechende C-Bit der Datensequenz , die in dem Speicherabschnitt Yi gespeichert ist, logisch 1 ist, muß vor Speicherung der neuen Datensequenz i in dem Speicherabschnitt Yi die dort befindliche Datensequenz j in den Hauptspeicher zurückgespeichert werden.
2. Im Unterschied zu 1. ist auch der Cache-Speicher Ll ist ein "Store-In-Cache". Dann wird bei Änderung einer Datensequenz der logischen Adresse i, die in dem Speicherabschnitt Zj des Cache-Speichers Ll abgespeichert ist, nicht mehr automatisch eine entsprechende Veränderung in dem Speicherabschnitt Yi des Cache-Speichers L2, in dem diese Datensequenz der Adresse i auch abgespeichert ist, vorgenommen werden, wie das im Beispiel unter 1. der Fall ist. Um jedoch trotzdem die Integrität der Daten sicherzustellen, muß im Cache-Speicher Ll zusätzlich ein Change-Bit vorgesehen werden.
Der Cache-Speicher L2 weist ein weiteres Register 3 auf, das zur Speicherung von Gültigkeits-Bits Vi(Ll) dient. Jedem der Speicherabschnitte Yi ist ein Gültigkeits-Bit Vi(Ll) eindeutig zugeordnet. Ein Gültigkeits-Bit Vi(Ll) des ensprechenden Speicherabschnitts Yi des Cache-Speichers L2 zeigt an, ob die in dem Speicherabschnitt Yi gespeicherte Datensequenz mit der Adresse i auch in einem Speicherabschnitt Zj des Cache-Speichers Ll abgespeichert ist.
Der Cache-Speicher L2 ist im allgemeinen wesentlich größer als der Cache-Speicher Ll. Der Cache-Speicher L2 kann beispielsweise 256 KB und der Cache-Speicher Ll nur 16 KB groß sein. Die Wahrscheinlichkeit, daß eine Datensequenz 1 in beiden Cache-Speichern Ll und L2 eines Prozessors gleichzeitig abgespeichert ist, ist deshalb relativ gering.
Figur 2 zeigt eine schematische Darstellung eines erfindungsgemäßen Computersystems, wobei lediglich 2 Mikroprozessoren PUl und PU2, die dem Mikroprozessor PU der Figur 1 entsprechen, dargestellt sind. Die Cache-Speicher Ll und L2 der Mikroprozessoren PUl und PU2 sind gleich aufgebaut wie die entsprechenden Cache-Speicher des Mikroprozessors PU in Figur 1. Die Mikroprozessoren PUl und PU2 tauschen mittelbar über ihren Cache-Speicher L2 Kommandos und Daten über den Systembus 7 aus. Zusätzlich sind die Mikroprozessoren PUl und PU2 über eine Signalleitung 18 miteinander verbunden, an die vorzugsweise auch alle anderen Mikroprozessoren des ausschnittsweise in Figur 2 gezeigten Mikroprozessor-Systems angeschlossen sind.
Wenn der Mikroprozessor PU 1 ein Kommando über den Systembus 7 übertragen soll, ist es hierfür zunächst erforderlich, daß dem Mikroprozessor PUl zu diesem Zweck Zugang zu dem Systembus 7 gegeben wird. Der Mikroprozessor PUl muß dazu eine Zugangsberechtigung von einem nichtdargestellten Arbiter erhalten. Hierfür geeignete Arbiter sind beispielsweise aus EP-A-0 575 651 bekannt. Sobald der Systembus 7 dem Mikroprozessor PUl zugeteilt ist, kann der Prozessor PUl ein Datenanforderungskommando für eine Datensequenz der Adresse i auf den Systembus 7 stellen. Dieses Kommando richtet sich einerseits an den Hauptspeicher des Mikroprozessorsystems, andererseits an alle "mithörenden" L2 Chips. Diese sorgen dafür, daß in ihren Verzeichnissen ("DIRECTORIES") gesucht wird, ob dort die Adresse i vorhanden ist und ob der Status dieser Datensequenz geändert werden muß. Ist dies der Fall, so wird das Signal "BUSY" aktiviert. Jedes L2 Chip kann dieses Signal aktivieren im Sinne eines logischen Oders, d.h. das Signal "BUSY" ist aktiv, wenn einer oder mehrere der L2 Chips das Signal aktivieren wollen. Das Signal "BUSY" wird deaktiviert, wenn das letzte L2 Chip den Status der Datensequenz - soweit erforderlich - geändert hat, gegebenenfalls auch den Stutus der Datensequenz im zugehörigen Ll Cache-Speicher. Solange dieser Vorgang ("bus snooping") nicht abgeschlossen ist, d.h. solange "BUSY" aktiv ist, kann kein anderer Systemteilnehmer, insbesondere auch nicht der Mikroprozessor PU2, Kommandos und Daten über den Systembus 7 übertragen.
Es ist deshalb wesentlich für die effiziente Ausnutzung des Systembus 7, daß das Signal "BUSY" nur möglichst kurze Zeit aktiv ist, da während dieser Zeit von dem Arbiter keine weitere Zugangsberechtigung erteilt werden kann. Denn es müssen alle erforderlichen Statusänderungen von Speicherabschnitten (sog. cache-lines) abgeschlossen sein, bevor ein neues Kommando von dem Mikroprozessorsystem bearbeitet werden kann.
Beim Betrieb des Mikroprozessorsystem wirkt sich der erfindungsgemäße Cache-Speicher L2 beispielsweise in folgenden Situationen vorteilhaft auf die Verarbeitungsgeschwindigkeit des Systems insgesamt aus:
1. Der Prozessor PU2 hat eine Datensequenz der Adresse 1 bearbeitet und dabei verändert. Diese Datensequenz soll nun in den Cache-Speichern Ll und L2 des Prozessors PU2 abgespeichert werden und zwar auf der logischen Adresse 1+1. Die entsprechende Datensequenz der Addresse 1+1 sei aber in den Cache-Speichern Ll und L2 des Prozessors PU2 nicht vorhanden.
Bevor der Prozessor PU2 die veränderte Datensequenz der Addresse i+1 in seinen Cache-Speicher Ll abspeichern kann, muß die frühere Version dieser Datensequenzen i+1 in den Cache-Speicher Ll und L2 des Prozessors PU2 abgespeichert werden. Nach der Speicherung dieser früheren Version der Datensequenz i+1 in den Cache-Speicher Ll und L2 des Prozessors PU2 kann diese dann durch die veränderte Version der Datensequenz i+1 überschrieben werden. Dieser Vorgang wird auch als "linefetch due to störe" bezeichnet.
Der Prozessor PU2 wird zur Speicherung der früheren Version der Datensequenz der Adresse i+1 zunächst ein Anforderungs- Kommando auf den Bus 7 ausgeben, das an den Speicher des Mikroprozessorsystems gerichtet ist. Durch das Anforderungs-Kommando signalisiert der Mikroprozessor PU2, daß er die Datensequenz der Adresse i+1 benötigt. Normalerweise hat das zur Folge, daß der Speicher des Mikroprozessorsystems die entsprechenden Daten auf den Bus 7 ausgibt.
Allerdings kann der Fall auftreten, daß die Datensequenz der Addresse i+1 so wie sie in dem Speicher des Mikroprozessorsystems gespeichert ist, nicht mehr gültig ist. Das ist dann der Fall, wenn beispielsweise der Mikroprozessor PUl die Datensequenz der Addresse i+1 in seinem Cache-Speicher L2 hat und das dazugehörige Change- Bit (CBit) logisch 1 ist. Das bedeutet, daß die Datensequenz der Adresse i+1 in dem Cache-Speicher L2 des Prozessors PUl gegenüber dem Speicher des Mikroprozessorsystems verändert ist. Außerdem ist hierfür erforderlich, daß auch das Gültigkeitsbit V(L2) der Datensequenz der Adresse i+1 in dem Cache-Speicher L2 des Mikroprozessors PUl logisch 1 ist, d.h. daß die entsprechenden Daten in dem Cache-Speicher L2 gültig sind.
Der Mikroprozessor PUl wird dann anstelle des Speichers des
Mikroprozessorsystems die Datensequenz der Adresse i+1 auf den Bus ausgeben. Das wird durch das Bus-Protokoll sichergestellt.
Dieser Vorgang wird auch mit "bus-snooping" des Prozessors
PUl - wie auch der weiteren Prozessoren des Systems - bezeichnet.
In diesem Beispiel muß das Gültigkeitsbit V(L2) der Adresse i+1 in dem Cache-Speicher L2 des Prozessors PUl logisch 0 werden, da die Anforderung der Datensequenz i+1 "linefetch" aufgrund einer bevorstehenden Speicheroperation "störe" in den Cache-Speicher Ll des Prozessors PU2 erfolgt. Denn dies bedeutet ja, daß die Datensequenz i+1, so wie sie in dem Cache-Speicher L2 des Prozessors PUl vorliegt nicht mehr länger gültig sein soll.
Entsprechend muß auch sichergestellt sein, daß das Gültigkeitsbit V der Adresse i+1 in dem Register 15 des Cache-Speichers Ll des Processors PUl logisch 0 wird. Dazu ist ein Interrupt des Prozessors PUl erforderlich.
Ein solcher Interrupt des Prozessors erübrigt sich jedoch, falls das Gültigkeitsbit Vi(Ll) der Adresse i+1 in dem Cache-Speicher L2 des Prozessors PUl logisch 0 ist, was bedeutet, daß die Datensequenz der Adresse i+1 in dem Cache-Speicher Ll des Prozessors PUl gar nicht vorliegt.
Die Speicherung von Information über den Cache-Speicher Ll in dem dazugehörigen Cache-Speicher L2 in Form von Gültigkeitsbits Vi(Ll) erlaubt es deshalb in den meisten Fällen, ohne Interrupt des Prozessors PUl die "linefetch due to störe" Operation durchzuführen. Denn aufgrund der Größenverhältnisse der Ll und L2 Cache-Speicher ist die statistische Wahrscheinlichkeit groß, daß eine von dem Prozessor PU2 angeforderte Datensequenz i+1 zwar in dem Cache-Speicher L2, aber nicht auf der Ebene des Cache- Speichers Ll des Prozessors PUl vorliegt. In diesen Fällen erübrigt sich dann ein Interrupt des Prozessors PUl.
Die Einsparung von Interrupt Operationen bewirkt, daß das Signal "BUSY" entsprechend weniger lange aktiv sein muß. Das wirkt sich erheblich auf die gesamte
Verarbeitungsgeschwindigkeit des Mikrocomputersystems aus. Das liegt in diesem Beispiel daran, daß während der Zeitdauer der Ausführung der "linefetch due to störe" Operation kein anderer Prozessor des Systems Zugriff auf den Bus 7 erhalten kann. Dadurch daß in den meisten Fällen kein Interrupt eines Prozessors erforderlich ist, kann entsprechend früher einem anderen Systemteilnehmer Zugang auf den Bus gewährt werden.
Dabei ist zu berücksichtigen, daß ein erforderlicher Interrupt unter Umständen viel Zeit in Anspruch nimmt. Ein Interrupt eines Mikroprozessors ist nämlich nicht jederzeit, sondern nur in bestimmten Zuständen des Mikroprozessors möglich. Führt etwa der betreffende Mikroprozessor gerade eine Instruktion aus, die viele Systemzyklen dauert, so kann während dieser Zeit der Interrupt nicht ausgeführt werden. Erst nachdem diese Instruktion abgearbeitet ist, kann der Interrupt des Prozessors durchgeführt werden. Aufgrund der Verwendung des L2 Cache-Speichers nach der Lehre der Erfindung, erübrigt sich jedoch ein zeitraubender Interrupt in den meisten Fällen.
2. Der Mikroprozessor PUl hat in seinem L2 Cache-Speicher eine Datensequenz der Adresse 1, von der Kopien in anderen Cache-Speichern existieren. Das bedingt, daß das Multiple- Copy-Bit (MCBit) der Adresse i (Register 13) logisch 1 ist. Es wird angenommen, daß die Datensequenz der Adresse i nicht in dem Cache-Speicher Ll desselben Prozessors PUl vorhanden ist. Deshalb ist das entsprechende Gültigkeitsbit Vi(Ll) in dem Cache-Speicher L2 des Mikroprozessors PUl logisch 0.
Der Prozessor PU2 hat in seinen Cache-Speichern Ll und L2 ebenfalls eine gültige Kopie der Datensequenz i gespeichert, so daß die jeweiligen MCBits der Adresse i in den Cache-Speichern Ll und L2 des Prozessors PU2 logisch 1 sind. Der Prozessor PU2 hat die Datensequenz i verarbeitet und dabei verändert. Jetzt soll die veränderte Datensequenz i in dem Cache-Speicher Ll des Prozessors PU2 abgespeichert werden.
Die entsprechende Operation "störe in cache-line" kann zunächst nicht durchgeführt werden, da die MCBits logisch 1 sind. Dies entspricht dem MESI-Protokoll. Vor der Abspeicherung der veränderten Datensequenz i müssen zunächst die Kopien der Datensequenz i in den Cache- Speichern des Prozessors PUl invalidiert werden, d.h. das Gültigkeitsbit V(L2) der Adresse i in dem Register 11 des zu dem Prozessor PUl gehörigen Cache-Speichers L2 muß zu logisch 0 werden.
Ein entspechendes Kommando wird auf den Bus 7 ausgegeben und von dem Prozessor PUl - wie auch von weiteren etwa betroffenen Prozessoren - empfangen ("bus snooping"). Daraufhin wird das Gültigkeitsbit V(L2) in dem Cache- Speicher L2 des Prozessors PUl invalidiert. Da das Gültigkeitsbit Vi(Ll) der Adresse 1 in dem Register 3 des Cache-Speichers L2 des Prozessors PUl anzeigt, daß die Datensequenz der Adresse i in dem Cache-Speicher Ll des Prozessors PUl gar nicht vorhanden ist, erübrigt sich eine Invalidierung in diesem Cache-Speicher Ll des Prozessors PUl. Folglich erübrigt sich auch ein sonst erforderlicher Interrupt des Prozessors PUl.
Nur in einem relativ geringen Prozentsatz der Fälle ist aufgrund der Größenverhältnisse zwischen Ll und L2 Cache- Speicher eine Datensequenz gleichzeitig in beiden Cache- Speichern vorhanden, so daß sich entsprechend meistens ein Interrupt des Prozessors erübrigt. Das hat wiederrum die bereits oben unter 1. beschriebenen vorteilhaften Auswirkungen auf die Verarbeitungsgeschwindigkeit des Mikrocomputersystems insgesamt.
Nach der Invalidierung der Datensequenz 1 kann dann in dem Cache-Speicher Ll und L2 des Prozessors PU2 die Abspeicherung der veränderten Datensequenz i vorgenommen werden. Dadurch wird die frühere Version dieser Datensequenz überschrieben. Das MCBit wird dann zu logisch 0, da in Cache-Speichern anderer Prozessoren keine gültigen Kopien vorliegen, denn diese wurden ja zuvor invalidiert.
3. Der Prozessor PU2 hat in seinem Cache-Speicher L2 eine Datensequenz der Adresse i exklusiv, d.h. es gibt keine Kopien dieser Sequenz in den Cache-Speichern anderer Prozessoren. Es wird angenommen, daß in dem Cache-Speicher Ll des Prozessors PU2 die Datensequenz der Adresse i nicht vorhanden ist. Das einsprechende Gültigkeitsbit Vi(Ll) in dem Cache-Speicher L2 ist dann logisch 0.
Der Prozessor PUl benötigt die Datensequenz der Adresse i ausschließlich zum Lesen, hat sie aber weder in seinem Ll noch in seinem L2 Cache-Speicher. Deshalb gibt der Prozessor PUl ein Kommando "line fetch due to fetch" auf den Bus 7 aus, um die Datensequenz i von dem Speicher des Mikroprozessorsystems anzufordern. Der L2 Cache-Speicher des Prozessors PU2 erkennt diesen Vorgang auf dem Bus 7 durch "bus snooping". Die Tatsache, daß ein weiterer Prozessor eine Kopie der Datensequenz 1 aus dem Speicher des Mikroprozessorsystems holt, bedeutet, daß diese Datensequenz nicht mehr exklusiv nur in dem Cache-Speicher L2 des Prozessors PU2 vorliegt. Deshalb muß das MCBlt der Adresse 1 in dem Prozessor PU2 auf logisch 1 gesetzt werden.
Nach dem Stand der Technik wäre es nun erforderlich abzuwarten, bis der Prozessor PU2 in einem Zustand ist, in dem die normale Verarbeitung unterbrochen werden kann ("Interrupt"). Erst danach könnte ggf. das MCBit der Adresse i in dem Cache-Speicher Ll des Prozessors PU2 auf logisch 1 gesetzt werden. Dieser Vorgang erübrigt sich jedoch wiederum aufgrund des erfindungsgemäßen Cache- Speichers L2 des Prozessors PU2.
Bereits auf der Ebene des Cache-Speichers L2 liegt die Information in Form des Gültigkeitsbits Vi(Ll) vor, daß die Datensequenz i nicht auch in dem Cache-Speicher Ll desselben Prozessors PU2 vorhanden ist. Deshalb erübrigt sich auch ein Interrupt. Dadurch steigt die Verarbeitungsgeschwindigkeit erheblich.
_
Auch in dem Prozessor PUl, der die Datensequenz i angefordert hat ist es entsprechend erforderlich, das MCBit der Adresse i in seinem Cache-Speicher Ll und L2 auf logisch 1 zu setzen. Die Information, daß in dem Cache- Speicher eines anderen Prozessors - hier des Prozessors PU2 - die angeforderte Datensequenz i bereits vorliegt, wird dem Prozessor PUl durch die Busy-Leitung 18 (Fig.2) übermittelt. Durch das Bus-Protokoll ist sichergesteilet, daß hierfür während eines Systemzyklus ein entsprechendes Signal durch den Cache-Speicher L2 des Prozessors PU2 auf die Busy-Leitung 18 ausgegeben wird, nachdem die Übereinstimmung festgestellt wurde.
Wird in einen Cache-Speicher Ll eine Datensequenz der Adresse i abgespeichert, so ist es deshalb erforderlich entsprechend das Gültigkeitsbit Vi(Ll) in dem Cache- Speicher L2 desselben Prozessors zu setzten.

Claims

ANSPRÜCHE
1. Ein Cache-Speicher (L2) der Ordnung X für einen Cache- Speicher (Ll) der Ordnung X-l, wobei die Cache- Speicher (L2,L1) in Speicherabschnitte Yi bzw. Zj aufteilbar sind, dadurch gekennzeichnet, daß der Cache-Speicher (L2) der Ordnung X Mittel zur Speicherung eines Gültigkeitsbits Vi(Ll) für jeden seiner Speicherabschnitte Yi aufweist, wobei das Gültigkeitsbit Vi(Ll) des zugehörigen Speicherabschnitts Yi anzeigt, ob der Inhalt dieses Speicherabschnitts Yi auch in einem entsprechenden Speicherabschnitt Zj des Cache-Speichers (Ll) der Ordnung X-l gespeichert ist.
2. Cache-Speicher (L2) der Ordnung X nach Anspruch 1, dadurch gekennzeichnet, daß der Cache-Speicher (L2) der Ordung X Mittel zur Speicherung eines Verzeichnisses (9) aufweist, wobei das Verzeichnis die Adressen i der in den Speicherabschnitten Yi jeweils gespeicherten Datensequenzen beinhaltet und jeder Adresse i ein Gültigkeitsbit Vi (Ll) zugeordnet ist.
3. Cache-Speicher (L2) der Ordnung X nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß der Cache-Speicher (L2) der Ordnung X Mittel zur Speicherung je eines V, MC und C-Bits zur Realisierung eines MESI Cache- Protokolls aufweist.
4. Mikroprozessorsystem mit wenigstens zwei Mikroprozessoren (PU1,PU2), denen jeweils ein Cache- Speicher (Ll) der Ordnung X-l und ein Cache-Speicher (L2) der Ordnung X nach einem oder mehreren der Ansprüche 1 bis 3 zugeordnet sind.
5. Mikroprozessorsystem nach Anspruch 4 dadurch gekennzeichnet, daß die Cache-Speicher (L1,L2) über einen bidirektionalen Datenbus miteinander verbunden sind.
6. Mikroprozessorsystem nach Anspruch 4 oder 5 dadurch gekennzeichnet, daß zumindest einer der Cache-Speicher (L2) der Ordnung X und sein Mikroprozessor (PU) über einen bidirektionalen Adressbus miteinander verbunden sind.
7. Mikroprozessorsystem nach einem oder mehreren der Ansprüche 4 bis 6 dadurch gekennzeichnet, daß der Cache-Speicher (Ll) der Ordnung X-l Mittel zur Speicherung je eines V und eines MC-Bits und ggf. eines C-Bits zur Realisierung des MESI Cache- Protokolls aufweist.
8. Computersystem mit einem Mikroprozessorsystem nach einem oder mehreren der Ansprüche 4 bis 7.
9. Verfahren zum Betrieb eines Cache-Speichers L2 nach einem oder mehreren der Ansprüche 1 bis 3, gekennzeichnet durch folgende Schritte:
Speicherung einer Datensequenz der Adresse 1 in einem Speicherabschnitts Yi des Cache-Speichers L2 und in einem Speicherabschnitt Zj des Cache- Speichers Ll und setzen des Gültigkeitsbits Vi(Ll) der Adresse 1 in dem Cache-Speicher L2, um anzuzeigen, daß die Datensequenz der Adresse i in einem Speicherabschnitt Zj des Cache-Speichers Ll gespeichert ist.
PCT/EP1995/001458 1995-04-18 1995-04-18 Cache-speicher WO1996033462A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/EP1995/001458 WO1996033462A1 (de) 1995-04-18 1995-04-18 Cache-speicher

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP1995/001458 WO1996033462A1 (de) 1995-04-18 1995-04-18 Cache-speicher

Publications (1)

Publication Number Publication Date
WO1996033462A1 true WO1996033462A1 (de) 1996-10-24

Family

ID=8165999

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP1995/001458 WO1996033462A1 (de) 1995-04-18 1995-04-18 Cache-speicher

Country Status (1)

Country Link
WO (1) WO1996033462A1 (de)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0461926A2 (de) * 1990-06-15 1991-12-18 Compaq Computer Corporation Mehrstufeneinschluss in mehrstufigen Cache-Speicherhierarchien
EP0549219A1 (de) * 1991-12-24 1993-06-30 Motorola, Inc. Cachesteuerungsschaltung
EP0649094A1 (de) * 1993-10-14 1995-04-19 International Business Machines Corporation Mehrprozessor-Cachespeicher-Hierarchie

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0461926A2 (de) * 1990-06-15 1991-12-18 Compaq Computer Corporation Mehrstufeneinschluss in mehrstufigen Cache-Speicherhierarchien
EP0549219A1 (de) * 1991-12-24 1993-06-30 Motorola, Inc. Cachesteuerungsschaltung
EP0649094A1 (de) * 1993-10-14 1995-04-19 International Business Machines Corporation Mehrprozessor-Cachespeicher-Hierarchie

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BAER J -L ET AL: "ON THE INCLUSION PROPERTIES FOR MULTI-LEVEL CACHE HIERARCHIES", PROCEEDINGS OF THE ANNUAL INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE, HONOLULU, MAY 30 - JUNE 2, 1988, no. 1988, 30 May 1988 (1988-05-30), INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS, pages 73 - 80, XP000039790 *
JEAN-LOUP BAER ET AL: "MULTILEVEL CACHE HIERARCHIES:ORGANIZATIONS, PROTOCOLS, AND PERFORMANCE*", JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING, vol. 6, no. 3, 1 June 1989 (1989-06-01), pages 451 - 476, XP000133092 *

Similar Documents

Publication Publication Date Title
DE69130086T2 (de) Mehrstufeneinschluss in mehrstufigen Cache-Speicherhierarchien
DE69327387T2 (de) An einen paketvermittelten Bus gekoppelte Nachschreibsteuerungsschaltung für eine Cachespeichersteuerungsschaltung
DE69031086T2 (de) Cache-Speicherinhaltssteuerung in Mehrprozessornetzwerken
DE68924306T2 (de) Mehrprozessorrechneranordnungen mit gemeinsamem Speicher und privaten Cache-Speichern.
DE69022716T2 (de) Mehrrechnersystem mit verteilten gemeinsamen Betriebsmitteln und dynamischer und selektiver Vervielfältigung globaler Daten und Verfahren dafür.
DE10262164B4 (de) Computersystem mit einer hierarchischen Cacheanordnung
DE69322683T2 (de) Verfahren und Vorrichtung zur Durchführung eines pseudo-LRU Cachespeicherersetzungsschemas mit einer Verriegelungsfunktion
DE68902193T2 (de) Datenspeicheranordnung.
DE3803759C2 (de)
DE3932675C2 (de)
DE3782335T2 (de) Speichersteuersystem.
DE3588009T2 (de) Vorrichtung und Verfahren zum Rekonfigurieren eines Speichers in einer Datenverarbeitungsanordnung.
DE69900797T2 (de) Cache-Speicherkohärenzprotokoll mit unabhängiger Implementierung von optimierten Cache-Speicheroperationen
DE69222060T2 (de) Semaphore umgehung.
DE69706934T2 (de) Rechnersystem mit Speicherung der Speicheraktualisierungsgeschichte
DE3502147C2 (de)
EP0600112A1 (de) Datenverarbeitungsanlage mit virtueller Speicheradressierung und schlüsselgesteuertem Speicherzugriff
DE69527634T2 (de) Rechner-Cachespeichersystem
DE2856715C3 (de) Verfahren zum Durchführen einer Pufferspeicher-Koinzidenz in einem Mehrprozessorsystem
DE3131341A1 (de) "pufferspeicherorganisation"
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE10002120A1 (de) Logikstruktur eines Adressumsetzpuffers
DE10006430B4 (de) Verfahren zur Aufrechterhaltung einer Kohärenz für ein Multi-Prozessor-System
DE3046912C2 (de) Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage
DE69130626T2 (de) Verfahren zur Verwaltung einer Cache-Speicheranordnung

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase