DE2922597A1 - CACHE STORAGE AND METHOD FOR OPERATING A DATA PROCESSING SYSTEM - Google Patents

CACHE STORAGE AND METHOD FOR OPERATING A DATA PROCESSING SYSTEM

Info

Publication number
DE2922597A1
DE2922597A1 DE19792922597 DE2922597A DE2922597A1 DE 2922597 A1 DE2922597 A1 DE 2922597A1 DE 19792922597 DE19792922597 DE 19792922597 DE 2922597 A DE2922597 A DE 2922597A DE 2922597 A1 DE2922597 A1 DE 2922597A1
Authority
DE
Germany
Prior art keywords
memory
data
signal
data word
cache
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.)
Withdrawn
Application number
DE19792922597
Other languages
German (de)
Inventor
Shih-Jeh Chang
Wing Noom Toy
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
AT&T Corp
Original Assignee
Western Electric Co Inc
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 Western Electric Co Inc filed Critical Western Electric Co Inc
Publication of DE2922597A1 publication Critical patent/DE2922597A1/en
Withdrawn legal-status Critical Current

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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • 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/0888Addressing 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

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

BLUMBACH . WESER . BERGEN". KRAMER ZWIRNER · BREHMBLUMBACH. WESER. BERGEN ". KRAMER ZWIRNER · BREHM

PATENTANWÄLTE IN MÜNCHEN UND WIESBADEN 2^22^9 7PATENT LAWYERS IN MUNICH AND WIESBADEN 2 ^ 22 ^ 9 7

-4--4-

Palenlconsull RadedcestraOe 43 8000 München 60 Telefon (089) 883603/883604 Telex 05-212313 Telegramme Patentconsult Patenlconsull Sonnenberger Straße 43 6200 Wiesbaden Telefon (06121) 562943/561998 Telex 04-186237 Telegramme PatentconsultPalenlconsull RadedcestraOe 43 8000 Munich 60 Telephone (089) 883603/883604 Telex 05-212313 Telegrams Patentconsult Patenlconsull Sonnenberger Straße 43 6200 Wiesbaden Telephone (06121) 562943/561998 Telex 04-186237 Telegrams Patentconsult

Western Electric Company Incorporated Chang, S.J.Western Electric Company Incorporated Chang, S.J.

Broadway, New York N.Y. 10038, USA 1"19 Broadway, New York NY 10038, USA 1 " 19th

Cache-Speieher und Verfahren zum Betrieb einer DatenverarbeitungsanlageCache Storage and Method of Operation a data processing system

Die Erfindung betrifft Cache-Speieher für eine Datenverarbeitungsanlage mit einer Einrichtung zur Speicherung von Datenwörtern, einer adressierbaren Identifizierung für jedes Datenwort und einer Angabe bezüglich der Gültigkeit oder Ungültigkeit jedes Wortes sowie ein Verfahren zum Betrieb einer Datenverarbeitungsanlage mit einem Prozessor, einem Hauptspeicher und einem Cache-Speicher, wobei in dem Cache-Speicher vom Prozessor benötigte Datenwörter, eine adressier- -bare Identifizierung für jedes Datenwort und eine Angabe bezüglich der Gültigkeit oder Ungültigkeit jedes Wortes gespeichert wird.The invention relates to cache memories for a data processing system with a device for storing data words, an addressable identifier for each Data word and an indication of the validity or invalidity of each word and a method of operation a data processing system with a processor, a main memory and a cache memory, wherein in the cache memory data words required by the processor, an addressable identification for each data word and an indication of the validity or invalidity of each word is stored.

München: R. Kremer Dipl.-Ing. · W. Weser Dipl.-Phys. Dr. rer. nat. . H.P.Brehro Dipl.-Chem. Dr. phil. nat. Wiesbaden: P. G. Blumbach Dipl.-Ing. · P. Bergen Dipl.-Ing. Dr. jur. · G. Zwirner Dipl.-Ing. Dipl.-W.-Ing.Munich: R. Kremer Dipl.-Ing. · W. Weser Dipl.-Phys. Dr. rer. nat. . H.P.Brehro Dipl.-Chem. Dr. phil. nat. Wiesbaden: P. G. Blumbach Dipl.-Ing. · P. Bergen Dipl.-Ing. Dr. jur. · G. Zwirner Dipl.-Ing. Dipl.-W.-Ing.

909851/0682909851/0682

21125972112597

Zur Verringerung der effektiven Speicherzugriffszeit bei vernünftigem Aufwand sind nach dem Stand der Technik Anlagen bekannt, die einen Prozessor, einen Hauptspeicher hoher Kapazität und niedriger Geschwindigkeit (mit Bezug auf die Arbeitsgeschwindigkeit des Prozessors) und einen Cache-Speicher kleiner Kapazität und hoher Geschwindigkeit, vergleichbar mit der Arbeitsgeschwindigkeit des Prozessors, aufweisen. Vom Prozessor benötigte Informationen werden aus dem Hauptspeicher gelesen, dem Prozessor zur Verfugung gestellt und in den Cache-Speicher geschrieben. ',Wenn der Prozessor die gleichen Informationen erneut benötigt, werden sie direkt aus dem Cache-Speicher gelesen, um die Verarbeitungsverzögerung zu vermeiden, die beim Lesen des Hauptspeichers auftritt. Wenn der Cache-Speicher voll ist und der Prozessor Informationen benötigt, die nicht im Cache-Speicher abgelegt sind, so müssen die gewünschten Informationen aus dem Hauptspeicher gewonnen und eine Speicherstelle im Cache-Speicher identifiziert werden, um diese neuen Informationen zu speichern. Eine befriedigende Cache-Speicherstelle zur Aufnahme neuer Informationen wird durch eines von mehreren, ,üblicherweise benutzten Ersetzungsverfahren festgestellt, beispielsweise durch eine zufällige Ersetzung oder Ersetzung der am längsten nicht benutzten Informationen. Die Ersetzung von Informationen im Cache-Speicher stellt neue Informationen in diesem Speicher zwecks Verwendung durch den Prozessor bereit. *In order to reduce the effective memory access time with reasonable effort, there are systems according to the state of the art known to have a processor, high capacity, low speed main memory (with reference to the Working speed of the processor) and a cache memory of small capacity and high speed, comparable with the operating speed of the processor. Information required by the processor is taken from read from main memory, made available to the processor and written to cache memory. 'If the processor If the same information is needed again, it is read directly from the cache memory to reduce the processing delay to avoid that occurs when reading the main memory. When the cache memory is full and the Processor needs information that is not stored in the cache memory, so the desired information must be taken from the Main memory recovered and a memory location identified in the cache memory to store this new information to save. A satisfactory cache location for receiving new information is provided by one of several , commonly used replacement methods are identified, for example by a random replacement or replacement of the information that has not been used for the longest time. The replacement of information in the cache memory creates new information in this memory ready for use by the processor. *

909851/0682909851/0682

-6- 2822597-6- 2822597

In Datenverarbeitungsanlagen werden zur Verringerung des erforderlichen Speicherraumes und zur Vereinfachung der Codierung oder Programmierung, der Anlage Unterprogramme (Subroutinen) benutzt. Das kann jedoch Zeitverzögerungen verursachen, da Rückkehradressen und der Inhalt von Prozessor-Registern beim Eintritt in ein Unterprogramm gerettet werden müssen, so daß bei Rückkehr aus. dem Unterprogramm die Verarbeitung wieder aufgenommen werden kann. In vielen Datenverarbeitungsanlagen machen Unterprogramme eine Vielzahl von Hauptspeicher-Schreib- und -Lesevorgängen erforderlich, wodurch sich Verzögerungen auf Grund der Ungleichheit zwischen der Speicherzugriffszeit und der Prozessor-Zykluszeit ergeben. In Datenverarbeitungsanlagen, die einen Cache-Speicher enthalten, wird die Verzögerung dadurch herabgesetzt, daß die für Unterprogramm-Operationen erforderlichen Informationen über den Cache-Speicher bearbeitet werden.In data processing systems, to reduce the required storage space and to simplify the Coding or programming that uses system subroutines. However, this can cause time delays cause there return addresses and the contents of processor registers must be saved when entering a subroutine, so that when returning from. the subroutine processing can be resumed. In many data processing systems, subroutines do a variety of main memory writes and reads, which creates inequality delays between the memory access time and the processor cycle time. In data processing systems that have a cache memory the delay is reduced by the fact that the information required for subroutine operations processed via the cache memory.

Unterprogramm-Informationen, die bei Rückkehr aus einem Unterprogramm zur Aufnahme der normalen Verarbeitung erforderlich sind, werden nur einmal benötigt, nämlich bei Rückkehr aus dem Unterprogramm. Wenn ein Cache-Speicher zur Aufnahme von Unterprogramm-Informationen benutzt wird, so wird die Unterprogramm-Information, die der Prozessor aus dem Cache-Speicher gelesen hat, nicht wieder benötigt, sondern bleibt im Cache-Speicher, bis sie durch das jeweils benutzte Ersetzungsverfahren entfernt wird. Demgemäß ist der BetriebSubroutine information required to start normal processing when returning from a subroutine are only required once, namely when returning from the subroutine. If a cache memory for inclusion is used by subroutine information, the subroutine information that the processor receives from the Cache memory has been read, is not needed again, but remains in the cache memory until it is used by the respective Replacement procedure is removed. Accordingly, the operation is

909851/0682909851/0682

21225972122597

des Cache-Speichers nicht so wirkungsvoll wie möglich.of cache memory is not as efficient as possible.

Die Erfindung hat sich die Aufgabe gestellt, diese Schwierigkeiten zu beseitigen. Sie geht dazu aus von einem Cache-Speicher der eingangs genannten Art und ist gekennzeichnet durch eine Anordnung, die beim Adressieren des Speichers mit einer Identifizierung unter Ansprechen darauf, daß diese Identifizierung gespeichert ist, sowie auf eine Angabe, daß das entsprechende Datenwort gültig ist, und auf ein Lesesignal eine Ungültigkeitsangabe mit Bezug auf das Datenwort speichert.The invention has set itself the task of solving these difficulties to eliminate. For this purpose, it is based on a cache memory of the type mentioned at the beginning and is identified by an arrangement which, when addressing the memory with an identifier in response to that Identification is stored, as well as an indication that the corresponding data word is valid, and a read signal an indication of invalidity with reference to the data word saves.

Für das eingangs genannte Verfahren zum Betrieb einer Datenverarbeitungsanlage ist die Erfindung dadurch gekennzeichnet, daß beim Adressieren des Cache-Speichers mit einer in ihm gespeicherten Identifizierung und, wenn das entsprechende Datenwort gültig ist, eine Leseoperation bewirkt, daß eine Ungültigkeitsangabe für dieses Datenwort gespeichert wird. Dadurch wird unmittelbar eine Speicherstelle im Cache-Speicher zur Aufnahme neuer, aus dem Hauptspeicher gelesener Informationen bereitgestellt , und es ist nicht erforderlich, daß nutzlose Informationen , beispielsweise vorher gelesene Unterprogramm-Informationen, durch wiederholte Anwendung des Ersetzungsverfahrens aus dem Cache-Speicher entfernt werden.For the aforementioned method for operating a data processing system the invention is characterized in that when addressing the cache memory with one in it stored identification and, if the corresponding data word is valid, a read operation causes a Invalidity indication for this data word is saved. This immediately becomes a storage location in the cache memory to receive new information read from main memory, and it is not necessary to that useless information, for example previously read Subroutine information, by repeatedly using the replacement procedure from the cache memory removed.

909851/0682909851/0682

Ein weiteres Merkmal eines bevorzugten Ausführungsbeispiels der Erfindung ist eine Leseoperation, die so ausgebildet ist, daß nutzlose, aus dem Hauptspeicher gelesene Informationen nicht in den Cache-Speicher eingeschrieben werden. Wenn ein angefordertes Datenwort nicht im Cache-Speicher abgelegt ist (dies wird als Cache-"Fehlen" bezeichnet) und daher aus dem Hauptspeicher gelesen werden muß, so wird das gelesene Datenwort zum Prozessor geführt, aber nicht in den Cache-Speicher eingeschrieben.Another feature of a preferred embodiment of the invention is a read operation so formed is that useless information read from main memory is not written into cache memory. If a requested data word is not in the cache memory is stored (this is called cache "miss") and therefore has to be read from the main memory, the read data word is passed to the processor, but not to the Written in cache memory.

Ein weiteres Merkmal des bevorzugten Ausführungsbeispiels der Erfindung besteht darin, daß zwei Schreiboperationen zur Verfügung stehen, die nachfolgend als normales Schreiben und als spezielles Schreiben bezeichnet werden. Bei einem normalen Schreiben wird ein Datenwort direkt in den Hauptspeicher, aber nicht in den Cache-Speicher eingeschrieben. Der Cache-Speicher wird jedoch abgefragt. Wenn ein Cache-Treffer auftritt, so kann entweder das Datenwort auf den neuesten Stand gebracht oder aus dem Cache-Speicher dadurch entfernt werden, daß das Gültigkeitsbit derjenigen Cache-Speicherstelle, die zu dem Treffer geführt hat, in den ungültigen Zustand eingestellt werden (ob das Datenwort auf den neuesten Stand gebracht oder entfernt wird, hängt von der Entscheidung des Benutzers ab). Für einen speziellen Schreibvorgang wird ein Datenv/ort sowohl in den Cache-Speicher als auch in den Hauptspeicher geschrieben.Another feature of the preferred embodiment of the invention is that two write operations for Hereinafter referred to as normal writing and special writing are available. With a normal A data word is written directly into the main memory, but not into the cache memory. The cache memory however, it is queried. If a cache hit occurs, either the data word can be updated brought or removed from the cache memory in that the validity bit of the cache memory location that led to the hit must be set to the invalid state (whether the data word is up to date brought in or removed depends on the user's choice). A Data location is written to both cache memory and main memory.

909851/0682909851/0682

2S.225972S.22597

Nachfolgend wird das bevorzugte Ausführungsbeispiel der Erfindung anhand der Zeichnungen beschrieben. Es zeigen: Fig. 1 das Blockschaltbild einer Datenverarbeitungsanlage; The following is the preferred embodiment of FIG Invention described with reference to the drawings. 1 shows the block diagram of a data processing system;

Fig. 2 bis 5 ein detailliertes Blockschaltbild eines erfindungsgemäßen Cache-Speichers gemäß Fig.1; Fig. β die Zuordnung der Fig. 2-5.Figures 2 through 5 are a detailed block diagram of a cache memory according to the invention according to Figure 1; Fig. Β the assignment of Figs. 2-5.

Der Cache-Speicher 102 in Fig. 1 nimmt eine Untergruppe der im Hauptspeicher 103 gespeicherten Datenwörter auf, so daß der Prozessor 101 schnellen Zugriff zu dieser Untergruppe von Datenwörtern hat. Die im Cache-Speicher 102 gespeicherten Datenwörter befinden sich im Datenspeicher 107 und werden anhand eines Verzeichnisses identifiziert, das als Etikettspeicher 106 bezeichnet wird. Die Speicherstellen des Etikettspeichers 106 entsprechen den Speicherstellen des Datenspeichers 107 und nehmen Adress-Etiketten (tags) für die Identifizierung der Datenwörter im Datenspeicher 107 auf. Jede Speicherstelle des Etikettspeichers beinhaltet ein Gültigkeitsbit, um den. augenblicklichen Zustand des Datenwortes in der entsprechenden Speicherstelle des Datenspeichers anzugeben. Ein gültiges Gültigkeitsbit (Zustand H oder logisch 1) gibt an, daß das entsprechende Datenwort im Datenspeicher 107 gültig ist. Andererseits gibt ein ungültiges Gültigkeitsbit (Zustand L oder logisch 0) an, daß das entsprechende Datenwort ungültig ist und vom Prozessor 101 nicht benutzt werden kann.The cache memory 102 in FIG. 1 takes a subset of the in the main memory 103 stored data words, so that processor 101 has quick access to this subset of data words. Those stored in cache memory 102 Data words are located in the data memory 107 and are based on of a directory identified as Tag Store 106 is designated. The storage locations of the tag store 106 correspond to the storage locations of the data store 107 and take on address labels (tags) for identifying the data words in the data memory 107. Any location of the label memory contains a valid bit to enable the. current status of the data word in the corresponding Specify the storage location of the data memory. A valid validity bit (state H or logical 1) indicates that the corresponding data word in data memory 107 is valid is. On the other hand, an invalid validity bit (state L or logic 0) indicates that the corresponding data word is invalid and cannot be used by processor 101.

909851/0682909851/0682

Ein·Cache-Speicher wird als rein assoziativ bezeichnet, wenn jedes Hauptspeicher-Datenwort in jeder Speicherstelle des Cache-Speichers gespeichert werden kann. Bei einem rein assoziativen Cache-Speicher muß jedes gespeicherte Adress-Etikett geprüft werden, um festzustellen, ob ein angegebenes Datenwort im Cache-Speicher gespeichert ist. Ein Cache-Speicher wird als gruppen-assoziativ bezeichnet, wenn jedes gegebene Hauptspeicher-Datenwort nur in einer Untergruppe von Speicherstellen des Cache-Speichers gespeichert werden kann. Ein gruppen-assoziativer Cache-Speicher verringert den Schaltungsaufwand und/oder die zur Durchführung einer Cache-Operation erforderliche Zeit, da nur die entsprechende Untergruppe von Adress-Etiketten geprüft werden muß, um festzustellen, ob sich ein angegebenes Datenwort im Cache-Speicher befindet. Der Cache-Speicher 102 des Ausführungsbeispiels der Erfindung ist gruppen-assoziativ und hat eine Gruppengröße gleich 4 (vgl. Fig.2-5). Es sei darauf hingewiesen, daß jede Gruppengröße verwendet werden könnte und daß sich die Erfindung in gleicher Weise auf eine Datenverarbeitungsanlage anwenden läßt, die einen rein assoziativen Cache-Speicher benutzt.A cache memory is referred to as purely associative, when each main memory data word can be stored in any memory location in the cache memory. In one associative cache memory, each stored address tag must be checked to see if a specified Word is stored in the cache memory. A cache memory is said to be group associative if any given Main memory data word can only be stored in a subset of storage locations of the cache memory. A group-associative cache memory reduces the circuit complexity and / or that for performing a cache operation required time, since only the appropriate subset of address labels needs to be checked to determine whether a specified data word is in the cache memory. The cache memory 102 of the embodiment of the invention is group-associative and has a group size equal to 4 (see Fig. 2-5). It should be noted that any group size could be used and that the invention in can be applied in the same way to a data processing system that uses a purely associative cache memory.

Der Prozessor 101 adressiert das Speichersystem mit dem Hauptspeicher 103 und dem Cache-Speicher 102 durch Bereitstellen der Hauptspeicheradresse eines gewünschten Datenwortes. Die Hauptspeicheradresse ist für die Cache-Speicheroperation in zwei Gruppen von Adressbits unterteilt. DieThe processor 101 addresses the memory system with the main memory 103 and the cache memory 102 by providing the main memory address of a desired data word. The main memory address is for the cache memory operation divided into two groups of address bits. the

909851/0682909851/0682

11~ 212259711 ~ 2122597

niedrigstelligen Adressbits (ADDR) adressieren Speicherstellen im Etikettspeicher 106 und im Datenspeicher 107 über die Leitungen 108. Die hochstelligen Adressbits dienen als die Adress-Etiketten (AT), die im Etikettspeicher 106 zur Identifizierung von im Datenspeicher 107 abgelegten Datenwörtern gespeichert sind, und werden dem Etikettspeicher 106 und einer Trefferanzeigeschaltung 116 über die Lei- ■ tungen 109 zugeführt. Die Etikettspeicher-Steuerschaltung erzeugt die Gültigkeitsbits und steuert die Lese- und Schreiboperationen des Etikettspeichers 106, Die Datenspeicher-Steuer schaltung 111 steuert die Lese- und Schreiboperationen des Datenspeichers 107. Diese Steuerschaltungen sollen nachfolgend im einzelnen beschrieben werden.Low-digit address bits (ADDR) address storage locations in label memory 106 and in data memory 107 over lines 108. The high-order address bits serve as the address tags (AT) stored in tag memory 106 for identification of data words stored in the data memory 107 are stored, and are the label memory 106 and a hit display circuit 116 via the line ■ lines 109 supplied. The tag memory control circuit generates the valid bits and controls the read and write operations of the tag memory 106, the data memory control circuit 111 controls the read and write operations of the data memory 107. These control circuits will be described in detail below.

Um festzustellen, ob das gewünschte Datenwort im Cache-Speicher abgelegt ist, wird die Untergruppe von 4 Adress-Etiketten, die gegebenenfalls das gewünschte Datenwort identifizieren könnten, aus dem Etikettspeicher 106 gelesen und zur Trefferanzeigeschaltung 116 gegeben. Dort werden sie mit den Adress-Etiketten des gewünschten Datenwortes verglichen. Wenn eine Übereinstimmung zwischen einer der aus dem Etikett-Speicher 106 gelesenen Adress-Etiketten und der vom Prozessor auf der Leitung 109 gelieferten Adress-Etikette des gewünschten Datenwortes vorhanden ist und außerdem die aus dem Adress-Speicher gelesene Adress-Etikette außerdem ein gültiges Gültigkeitsbit enthält, dann wird ein Treffersignal erzeugt. Im. andren Fall wird ein Fehlsignal erzeugt. Das Tref-In order to determine whether the desired data word is stored in the cache memory, the subgroup of 4 address labels, which could possibly identify the desired data word, read from the label memory 106 and used Hit indicator circuit 116 given. There they are compared with the address labels of the desired data word. If there is a match between any of the from the label memory 106 read address labels and that of the processor on the line 109 supplied address label of the desired data word is present and also from the Address label read from the address memory also contains a valid valid bit, then a hit signal is generated. In the other case, a false signal is generated. The meeting

909851/0682909851/0682

-12- 2822597-12- 2822597

fer/Fehl-Signal wird über die Leitung 117 zum Prozessor 101, zur Datenspeicher-Steuerschaltung 111 und zur Etikettspeicher-Steuer schaltung 110 übertragen.fer / error signal is sent via line 117 to processor 101, to data memory control circuit 111 and to tag memory control circuit 110 transmitted.

Die Ersetzungsschaltung 113 nimmt die aus dem Etikettspeicher 106 gelesenen Gültigkeitsbits auf, um eine Cache-Speicherstelle auszuwählen, in die ein neues, im Augenblick nicht im Cache-Speicher abgelegtes Datenwort eingespeichert werden soll. Wenn eines der Datenwörter in der Untergruppe von Datenspeicherstellen, die dem neuen Datenwort entsprechen, im Etikettspeicher 106 als .ungültig markiert ist, dann wird eine derjenigen Speicherstellen, die ein ungültiges Datenwort beinhalten, bevorzugt ausgewählt. Wenn alle 4 Speicherstellen, • die zur Aufnahme des neuen Datenwortes verfügbar sind, gültige Daten enthalten, dann wird eine dieser Spei eher stellen auf zufälliger Basis für die Ersetzung ausgewählt. D^e Arbeitsweise der Ersetzungsschaltung 113 wird später genauer beschrieben. The replacement circuit 113 takes the from the tag memory 106 read valid bits to select a cache location in which a new one is currently not data word stored in the cache memory is to be stored. If any of the data words in the subgroup of Data storage locations which correspond to the new data word is marked as invalid in the label memory 106, then one of those memory locations which contain an invalid data word is preferably selected. If all 4 memory locations, • which are available to accept the new data word contain valid data, then one of these memories will be set up sooner random basis selected for replacement. The way of working the replacement circuit 113 will be described in detail later.

Der Prozessor 101 gibt 4 verschiedene Befehle an den Cache-Speicher 102 , nämlich normal Lesen, speziell Lesen, normal Schreiben und speziell Schreiben. Die Befehle können von Prozessoren bekannter Art erzeugt werden, beispielsweise durch einen Mikrocode auf Grund von vorgegebenen Programmbefehlen, die der Prozessor 101 ausführt. Das Lese/Schreib-Signal (R/W,The processor 101 issues 4 different instructions to the cache memory 102, namely normal reading, special reading, normal writing and special writing. The commands can come from processors are generated of a known type, for example by a microcode on the basis of predetermined program instructions, which processor 101 executes. The read / write signal (R / W,

909851/0682909851/0682

11125971112597

Zustand L oder logisch 0 für Schreiben und Zustand H oder Dogisch 1 für Lesen) und das Speziell-Signal (SPL, Zustand L oder logisch 0 für Speziell und Zustand H oder logisch 1 für Normal) werden "dem Cache-Speicher 102 über die LeitungState L or logic 0 for writing and state H or Dogisch 1 for reading) and the special signal (SPL, state L or logic 0 for special and state H or logic 1 for normal) "the cache memory 102 over the line

105 bzw. 119 zugeführt. Bei Schreiboperationen liefert der Prozessor 101 Datenwörter auf dem Datenbus 112, und für ■Schreiboperationen nimmt der Prozessor Datenwörter auf dem Datenbus 112 auf. Der Prozessor erstellt zu Anfang die Befehlssignale, die Adressensignale und Datensignale (falls erforderlich) und aktiviert dann das Signal Cache-GO (CAGO, aktiv im Zustand L oder logisch 0). Das Signal Cache-GO wird über die Leitung einer Folgeschaltung 115 zugeführt. Die Folgeschaltung 115 liefert Zeitsteuerungsimpulse, die für Cache-Speicheroperationen erforderlich sind, und soll später genauer beschrieben werden.105 or 119 supplied. In the case of write operations, the processor 101 supplies data words on the data bus 112, and for write operations the processor accepts data words on the data bus 112. At the beginning the processor creates the command signals, the address signals and data signals (if necessary) and then activates the signal Cache-GO (CAGO, active in state L or logical 0). The Cache-GO signal is fed to a sequence circuit 115 via the line. The sequential circuit 115 provides timing pulses necessary for cache memory operations are required and will be described in more detail later.

Fig. 2 bis 5 bilden ein detailliertes Blockschaltbild des gruppen-assoziativen Cache-Speichers 102. Der EtikettspeicherFigures 2 through 5 form a detailed block diagram of the group associative cache memory 102. The tag memory

106 weist 4 unabhängige, aber identische Etikettspeichermodule 201, 202, 203, 204 auf. Entsprechend weist der Datenspeicher106 has 4 independent but identical label storage modules 201, 202, 203, 204. The data memory has accordingly

107 4 unabhängige, aber identische Datenspeichermodule 410, 411, 412, 4.13 auf, die den Etikettspeichermodulen entsprechen. Alle Etikettspeicher- und Datenspeichermodule werden gleichzeitig über die Leitungen 108 mit den niedrigstelligen Adressenbits der Hauptspeicheradresse adressiert. Wenn ein Daten-107 4 independent but identical data storage modules 410, 411, 412, 4.13, which correspond to the label memory modules. All of the tag storage and data storage modules are connected simultaneously over lines 108 with the low-order address bits addressed to the main memory address. When a data

909851/0682909851/0682

24225972422597

wort im Datenspeicher 107 abgelegt ist, befindet es sich in einem der Datenspeichermodule an einer Adresse, die gleich den niedrigstelligen Adressenbits der Hauptspeicheradresse für das Datenwort ist. Außerdem ist, wenn ein Datenwort in einem der Datenspeichermodule abgelegt ist, das Datenwort-Adressetikett (die hochstelligen Bits der Hauptspeicheradresse für das Datenwort) im entsprechenden Adress-Speichermodul abgelegt, um dies anzuzeigen. Jede Adress-Speichermodul-Speicherstelle enthält außerdem ein Gültigkeitsbit, das den Status des entsprechenden, im Datenspeichermodul abgelegten Datenwortes angibt, d.h. ob das Datenwort gültig ist und vom Prozessor benutzt werden kann oder ungültig ist. Demgemäß besteht der erste Schritt einer Cache-Speicheroperation darin, die Etikettspeichermodule zu lesen, um festzustellen, ob das gewünschte Datenwort im Cache-Speicher gespeichert ist.Word is stored in the data memory 107, it is located in one of the data memory modules at an address which is the same is the low-order address bits of the main memory address for the data word. In addition, if a data word in is stored in one of the data memory modules, the data word address label (the high-order bits of the main memory address for the data word) are stored in the corresponding address memory module in order to display this. Each address memory module location also contains a validity bit, which shows the status of the corresponding stored in the data storage module Data word, i.e. whether the data word is valid and can be used by the processor or is invalid. Accordingly The first step in a cache operation is to read the tag memory modules to see if the desired data word is stored in the cache memory.

Während der Anfangsphase des Cache-Speicherzyklus werden die Etikettspeichermodule auf Grund des Zeitsteuerungssignals T von der Folgeschaltung 115 gelesen. Die Adressetiketten, die aus den Etikettspeichermodulen an der vom Prozessor 101 auf den Leitungen 108 gelieferten Adresse gelesen werden, werden den zugeordneten Vergleichsschaltungen 301, 302, 303, 304 zugeführt, die Teil der Trefferanzeige schaltung 116 sind«, Das Adressetikett, das vom Prozessor auf den Leitungen 109 geliefert wird, ist das andere Eingangssignal für die Vergleichsschaltungen 301 bis 304. Wenn das aus einem Etikettspeicher- During the initial phase of the cache memory cycle, the tag memory modules are read by the sequencer 115 based on the timing signal T. The address labels, which are read from the label memory modules at the address supplied by the processor 101 on the lines 108, are fed to the associated comparison circuits 301, 302, 303, 304, which are part of the hit display circuit 116 the lines 109 is supplied, the other input signal to the comparison circuits 301 to 304. If the from a label memory

909851/0682909851/0682

* . 2112597*. 2112597

modul gelesene Adressetikett mit dem Adressetikett auf den Leitungen 109 übereinstimmt, dann gibt die jeweilige Vergleichsschaltung ein Signal H von ihrem Ausgangsanschluß zu einem zugeordneten NAND-Gatter der NAND-Gatter 305, 306, 307 und 308. Die aus den Etikettspeichermodulen gelesenen Gültigkeitsbits werden ebenfalls zu den NAND-Gattern 305 bis 308 geführt. Wenn eine Vergleichsschaltung ein Signal H liefert, das angibt, daß eine Übereinstimmung aufgetreten ist, und wenn das zugeordnete Gültigkeitsbit ebenfalls ein Signal H ist, das angibt, daß das gespeicherte Datenwort gültig ist, dann signalisiert das betreffende NAND-Gatter der NAND-Gatter 305 bis 308 einen Treffer, indem es ein Signal L an seinem Ausgangsanschluß abgibt. Die Signale der NAND-Gatter 305 bismodule read address label with the address label on the Lines 109 match, then the respective comparison circuit outputs a signal H from its output terminal an associated NAND gate of the NAND gates 305, 306, 307 and 308. The valid bits read from the tag memory modules are also fed to NAND gates 305-308. If a comparison circuit supplies a signal H, indicating that a match has occurred and when the associated valid bit is also an H signal which indicates that the stored data word is valid, then the relevant NAND gate signals the NAND gate 305 to 308 a hit by emitting a signal L at its output terminal. The signals of the NAND gates 305 to

308 werden in einem Zwischenspeicher 309 gespeichert und invertiert, so daß der Inhalt der Etikettspeichermodule geändert werden kann, während die Treffer- oder Fehlinformation zurückbehalten wird. Die Q-Ausgänge des bistabilen Zwischenspeichers308 are stored in a buffer 309 and inverted, so that the contents of the tag storage modules can be changed while retaining the hit or misinformation will. The Q outputs of the bistable buffer

309 folgen ihren entsprechenden Dateneingängen D , so lange das Signal am Betätigungsanschluß G auf H ist. Wenn das Signal am Betätigungsanschluß auf L geht, dann werden die Signale , die zum Zeitpunkt des Übergangs an den Dateneingängen anstehen, im bistabilen Zwischenspeicher 309 festgehalten, bis das Signal am Betätigungsanschluß G wieder auf H .geht. Die Folgeschaltung 115 liefert 4 gleiche Zeitsteuerungsimpulse T 0, T 1, T2 und T 3, die im Zustand L oder logisch 0 aktiv sind. Der Inverter 310 stellt die richtige Polarität her, so daß die von den NAND-Gattern 305 bis 308 erzeugten309 follow their corresponding data inputs D for so long the signal at the actuation connection G is high. When the signal at the actuation connection goes to L, then the signals at the time of the transition at the data inputs pending, held in the bistable buffer 309 until the signal at the actuation connection G goes back to H. The sequencer 115 supplies 4 equal timing pulses T 0, T 1, T2 and T 3, which are active in the L or logic 0 state. The inverter 310 sets the correct polarity so that those generated by NAND gates 305-308

9098 51/06 829098 51/06 82

Signale während des Zeitsteuerungsimpulses T1 registriert und bei Beendigung des Zeitsteuerungsimpulses T1 festgehalten werden. Wenn ein Cache-Treffer in einem der Etikettspeichermodule festgestellt wird, dann ist das entsprechende Treffersignal A, B, C oder D (das auf einer der Leitungen 317, 318, 319 bzw·320 übertragen wird) auf H. Das NOR-Gatter 311 nimmt die Treffersignale von den Ausgangsanschlüssen Q des bistabilen Zwischenspeichers 309 auf und erzeugt ein Fehlsignal (Zustand H oder logisch 1) auf der Leitung 117, wenn kein Treffer festgestellt wird.Signals registered during the timing pulse T1 and held at the termination of the timing pulse T1 will. If a cache hit is detected in one of the tag memory modules, then the corresponding hit signal is A, B, C or D (which is carried on one of the lines 317, 318, 319 or 320) to H. The NOR gate 311 takes receives the hit signals from the output terminals Q of the bistable buffer 309 and generates an error signal (state H or logical 1) on line 117 if no hit is detected.

Die Ersetzüngsschaltung 113 bestimmt, welche Cache-Speicherstelle (d.h. eine Speicherstelle in einem Etikettspeichermodul und die entsprechende Speicherstelle in einem Datenspeichermodul) zur Speicherung eines neuen Datenwortes benutzt werden soll, das der Prozessor benötigt, das aber im Augenblick nicht im Cache-Speicher gespeichert ist. Die Ersetzungsschaltung wählt für die Ersetzung einer Speichersteile, die ungültige Daten enthält, wenn eine der Speicherstellen der verfügbaren Untergruppe von Speicherstellen ungültige Daten beinhaltet. Wenn mehr als eine Speicherstelle der Untergruppe ungültige Daten enthält, dann wählt die Ersetzungsschaltung 113 die Speicherstelle im Datenspeichermodul mit der höchsten Priorität, wobei A gegenüber B, B gegenüber C und C gegenüber D bevorzugt wird. Wenn alle Speicherstellen der Untergruppe gültige Datenwörter enthalten, dann geht die Ersetzungsschal-The replacement circuit 113 determines which cache location (i.e. a storage location in a label storage module and the corresponding storage location in a data storage module) to be used to store a new data word that the processor needs, but not at the moment is stored in cache memory. The replacement circuit selects the invalid one for the replacement of a memory section Contains data if one of the locations of the available subset of locations contains invalid data. If more than one location in the subgroup contains invalid data, then the replacement circuit 113 selects that Storage location in the data storage module with the highest priority, with A versus B, B versus C and C versus D. is preferred. If all storage locations of the subgroup contain valid data words, then the replacement switch goes

909851/0682909851/0682

tung 113 zu"einem Zufallsverfahren über, d.h. sie wählt willkürlich eine der Spebherstellen der Untergruppe für die Aufnahme des neuen Datenwortes. Die aus den Etikettspeichermodulen gelesenen Gültigkeitsbits werden dem Prioritätscodierer 312 der Ersetzungsschaltung 113 zugeführt. Wenn alle 4 Eingangssignale des Prioritätscodierers 312 auf H sind, dann sind die Signale an den Ausgangsanschlüssen AO,A1 und GS alle auf H. Das würde dem Fall entsprechen, für den die Datenwörter in allen Datenspeichermodulen gültig sind , und demgemäß weicht;die Ersetzungsschaltung 113 auf das Ersetzungsverfahren auf zufälliger Basis aus. Wenn eines der Signale an den Eingangsanschlüssen des Prioritätscodierers 312 auf L ist, dann ist das Signal am Ausgangsanschluß GS auf L, und die Signale an den Ausgangsanschlüssen AO und A1 sind die folgenden: ■ · ' Wenn das Signal am Eingangsanschluß 1 auf L ist, dann sind die Signale an den Ausgangsanschlüssen AO und A1 auf L. Wenn das Signal am Eingangsanschluß 1 auf H, das Signal am Eingangsanschluß 2 aber auf L ist, dann sind die Signale an den Ausgangsanschlüssen AO und A1 auf H bzw. L. Wenn die Signale an den Eingangsanschlüssen 1 und 2 auf H sind, das Signal am Eingangsanschiuß 3 aber auf L, dann sind die Signale an den Ausgangsanschlüssen AO und A1 auf L bzw. H. Wenn die Signale an den Eingangsanschlüssen 1,2 und 3 auf H "sind, das Signal am Eingangsanschluß 4 aber auf L, dann sind die Signale an den Ausgangsanschlüssen AO und A1 beide auf H. Die Ausgangssignale des Prioritätscodierers 312 werden zum bistabilen Zwischenspeicher 313 übertragen, der dem oben beschriebenen Zwischenspeicher 309 ähn-device 113 switches to "random", i.e. it chooses at random one of the spebher make the subgroup for inclusion of the new data word. The valid bits read from the tag memory modules are sent to the priority encoder 312 of FIG Replacement circuit 113 supplied. If all 4 inputs to priority encoder 312 are high, then the signals are at the output connections AO, A1 and GS all to H. That would correspond to the case for which the data words in all data storage modules are valid, and accordingly, the replacement circuit 113 relies on the replacement method on a random basis the end. If any of the signals at the input terminals of the priority encoder 312 is low, then the signal is at the output terminal GS to L, and the signals at the output terminals AO and A1 are as follows: ■ · ' If the signal at input terminal 1 is low, then the signals at output terminals AO and A1 are low The signal at the input terminal 1 is high, the signal at the input terminal 2 but is at L, then the signals at the output connections AO and A1 are at H and L. If the signals at the input connections 1 and 2 are at H, but the signal at input connection 3 is at L, then the signals at output connections AO and A1 are at L or H. If the signals at input connections 1, 2 and 3 are at H ", but the signal at the input terminal 4 is at L, then the signals at the output terminals AO and A1 are both at H. The output signals of the priority encoder 312 become the bistable latch 313 transmitted, which is similar to the buffer 309 described above.

909851/0682909851/0682

• -18-• -18-

lieh ist. Wenn das Signal am Eingangsanschluß G des bistabilen Zwischenspeichers 313 auf H ist, dann folgen die Signale an den Ausgangsanschlüssen 1Q, 2Q und 3Q den Signalen an den Dateneingangsanschlüssen 1D, 2D und 3D. Wenn das Signal am Betätigungsanschluß G auf L geht, dann werden die Signale, die zum Zeitpunkt des Übergangs an den Dateneingangsanschlüssen vorhanden waren, an den Ausgangsanschlüssen Q festgehalten, bis das Signal am Anschluß G wieder auf H gehen kann. Die Rückflanke des Zeitsteuerungssignals T1 von der Folgeschaltung 115 hält die Ausgangssignale des Prioritätscodierers 312 im bistabilen Zwischenspeicher 313 fest, nachdem die Ausgangssignale des Prioritätscodierers die Möglichkeit hatten, sich zu stabilisieren.is borrowed. When the signal at the input terminal G of the bistable Latch 313 is high, then the signals at output terminals 1Q, 2Q and 3Q follow the signals at the data input connections 1D, 2D and 3D. When the signal at the actuation connection G goes to L, then the signals that are present at the time of the transition at the data input connections were present, held at the output terminals Q until the signal at terminal G can go high again. The trailing edge of the timing signal T1 from the sequencer 115 holds the output signals of the priority encoder 312 in the bistable buffer memory 313 after the Output signals from the priority encoder had the opportunity to stabilize.

Die Signale an den Ausgangsanschlüssen 1Q und 2Q des Zwischenspeichers 313 werden zu den Eingängen 1A und 2A des Datenwählers 314 geführt. Das Signal am Ausgangsanschluß 3Q des Zwischenspeichers 313 steuert den Datenwähler 314. Eine Ersetzung auf zufälliger Basis wird mit Hilfe des 2-Bit-Zählers 315 erreicht, der jedes Mal dann weitergeschaltet wird, wenn der Prozessor 101 ein Cache-GO-Signal .liefert. Die Ausgangssignale des Zählers 315 gehen zu den Eingängen 1B und 2B des Datenwählers 314. Da Treffer- und Fehlsignale bei der Cache-Speicheroperation auf zufälliger Basis auftreten, liegt der Zählwert des 2-Bit-Zählers 315 dicht bei einer Zufallszahl. Die Ersetzungsschaltung 113 geht zu einer Ersetzung auf zufälliger Basis über, wenn die aus den EtikettSpeichermodulenThe signals at the output terminals 1Q and 2Q of the buffer 313 are fed to inputs 1A and 2A of data selector 314. The signal at the output terminal 3Q of the Latch 313 controls data selector 314. Replacement on a random basis is made using the 2-bit counter 315, which is incremented every time the processor 101 delivers a cache GO signal. The output signals of counter 315 go to inputs 1B and 2B of data selector 314. As hit and miss signals in cache memory operation occur on a random basis, the count value of the 2-bit counter 315 is close to a random number. The replacement circuit 113 transitions to replacement on a random basis if it is out of the tag memory modules

909851/0682909851/0682

23225372322537

gelesenen Gültigkeitsbits im Zustand H sind und angeben, daß die adressierte Untergruppe von Datenwörtern gültig ist. In diesem Fall sind alle 4 Eingänge des Prioritätscodierers 312 auf H, so daß das Signal am Ausgangsanschluß GS auf H ist und im bistabilen Zwischenspeicher 313 festgehalten wird. Das Ausgangssignal 3Q des Zwischenspeichers 313 wählt in diesem Fall die Eingangssignale 1B und 2B vom Zähler 315 für eine Übertragung zum Decoder 316 aus. Wenn im anderen Falle ein Eingangssignal des Prioritätscodierers 312 auf L ist, so geht das Signal am Ausgangsanschluß GS auf L, und die Signale an den Ausgangsanschlüssen AO und A1 des Prioritätscodierers 312, die im Zwischenspeicher 313 festgehalten sind, werden gewählt und über die Eingänge 1A und 2A des Datenwählers 314 zum Decoder 316 geführt.read valid bits are in the state H and indicate that the addressed subgroup of data words is valid. In this case, all 4 inputs of the priority encoder 312 are high, so that the signal at the output terminal GS is high and is held in the bistable buffer memory 313. The output signal 3Q of the buffer 313 selects in this If the input signals 1B and 2B from the counter 315 for transmit to decoder 316. On the other hand, when an input to the priority encoder 312 is low, so the signal at the output terminal GS goes to L, and the signals at the output terminals AO and A1 of the priority encoder 312, which are held in the latch 313, are selected and via the inputs 1A and 2A of the data selector 314 led to decoder 316.

Der Decoder 316 erzeugt ein Speicherbetätigungssignal H an einem seiner Ausgangsanschlüsse (1Y0 bis 1Y3) und ein Signal L an den übrigen 3 Ausgangsanschlüssen abhängig von den Signalen an den Eingangsanschlüssen 1A und 1B, wie folgt: für 1A und 1B beide L, ist 1YO auf H (Speicherbetätigung D, MED);'für IA und 1B auf H bzw, L ist 1Y1 auf H (Speicherbetätigung C, MEC); für 1Δ und 1B auf L bzw. H , ist 1Y2 auf H (Speicherbetätigung B, MEB); für 1A und 1B beide auf H, ist 1Y3 auf H (Speicherbetätigung A, MEA).The decoder 316 generates a memory actuation signal H an one of its output terminals (1Y0 to 1Y3) and a signal L at the other 3 output terminals depending on the signals at the input connections 1A and 1B, as follows: for 1A and 1B both L, 1YO is at H (memory actuation D, MED); 'for IA and 1B on H or, L is 1Y1 on H (memory activation C, MEC); for 1Δ and 1B on L and H, respectively, 1Y2 is on H (memory actuation B, MEB); for 1A and 1B both high, 1Y3 is high (memory actuation A, MEA).

909851/0682909851/0682

ORlGSMAL IMSPECTEDORIGSMAL IMSPECTED

252259?252259?

Die Etikettspeicher-Steuerschaltung 110 erzeugt Signale zum Lesen und Schreiben der Etikettspeichermodule 201 bis 204 und erzeugt außerdem die Gültigkeitsbits, die in die Etikettspeichermodule geschrieben werden, und zwar in Abhängigkeit von den Lese/Schreibsignalen und speziellen Signalen des Prozessors, den Signalen von der Trefferanzeigeschaltung 116, dem Zeitsteuerungsimpuls T2 von der Folgeschaltung 115 und den Signalen von der Ersetzungsschaltung 113. Die Datenspeicher-Steuerschaltung 111 erzeugt Signale 2um Lesen und Schreiben der Datenspeichermodule 401 bis 404 und zum Weiterführen von Datenwörtern zu und vom Datenspeicher 107 in Abhängigkeit von den gleichen Signalen, die die Etikettspeicher-Steuerschaltung 110 steuern, sowie vom Hauptspeicher-Vervollständigungssignal MMC. Die nachfolgende Tabelle faßt die Lese/ Schreib-Operationen zusammen, die der Etikettspeicher 106 und der Datenspeicher 107 abhängig von bestimmten Kombinationen von Prozessorsteuersignalen und Treffer/Fehl-Signalen von der Trefferanzeigeschaltung 116 ausführt. Die Tabelle gibt nicht das jeweils zu bearbeitende EtikettSpeichermodul und das entsprechende Datenspeichermodul an, da dies von der jeweiligen Trefferangabe der Trefferanzeigeschaltung 116 abhängt, nämlich A, B, C oder D im Fall eines Cache-Speichertreffers, und außerdem von dem jeweiligen Speicherbetätigungssignal der Ersetzungsschaltung 113, nämlich MEA, MEB, MEC oder MED im Fall eines Cache-Speicher-Fehlsignals.The tag memory control circuit 110 generates signals to the Reads and writes the tag storage modules 201 to 204 and also generates the valid bits that are stored in the tag storage modules are written, depending on the read / write signals and special signals of the Processor, the signals from the hit indicator circuit 116, the timing pulse T2 from the sequencer 115 and the signals from the replacement circuit 113. The data memory control circuit 111 generates signals for reading and writing of the data storage modules 401 to 404 and for forwarding data words to and from the data memory 107 as a function from the same signals that control the tag memory control circuit 110 as well as the main memory complete signal MMC. The following table summarizes the read / write operations that the Tag Store 106 can perform and the data memory 107 depending on certain combinations of processor control signals and hit / miss signals from the hit indicator circuit 116 executes. The table does not indicate the respective label memory module to be processed and the corresponding data storage module, since this depends on the respective hit information of the hit display circuit 116 depends, namely A, B, C or D in the case of a cache memory hit, and also from the respective memory actuation signal of the replacement circuit 113, namely MEA, MEB, MEC or MED in the event of a cache miss.

909851/0682909851/0682

Prozessor
steuer
signale
processor
tax
signals
Treffer/
Fehl
Hit /
Miss
-21-
Gültigkeits-
bit
Status **
-21-
Validity
bit
Status **
Etikett
speicher
operation
label
Storage
surgery
29*22597
Daten
speicher
operation
29 * 22597
data
Storage
surgery
1-Lesen
normal
1-read
normal
TrefferHit XX LesenRead LesenRead
2-Lesen
normal
2-reading
normal
FehlMiss VV Lesen/
Schreiben
Read/
To write
SchreibenTo write
3-Lesen
spezial
3-reading
special
TrefferHit II. Lesen/
Schreiben
Read/
To write
LesenRead
4-Lesen
spezial
5-Schreiben
normal
4-reading
special
5 letter
normal
Fehl
Treffer
Miss
Hit
X
■ ι |y]*
X
■ ι | y] *
Lesen
Lesen/
Schreiben
Read
Read/
To write
!Schreiben!To write
6-Schreiben
normal
6 letter
normal
FehlMiss X.X. LesenRead
7-Schreiben
spezial .
7-letter
special.
TrefferHit VV Lesen/
Schreiben
Read/
To write
SchreibenTo write
8-Schreiben
spezial
8 letter
special
FehlMiss VV Lesen/
Schreiben
Read/
To write
SchreibenTo write

** V = gültig, I = ungültig, X = ohne Bedeutung** V = valid, I = invalid, X = irrelevant

* erforderlich, um den Cache-Speicher bei normalem* required to use the cache memory at normal

Schreiben auf den neuesten. Stand zu bringen, wennWrite on the latest. Stand to bring when

ein Cache-Treffer auftritt.a cache hit occurs.

Die Etikettspeicher-Steuerschaltung 110 weist 4 identische Etikettspeicher-Steuerlogikschaltungen 205, 206, 207, 208 auf, von denen jede einem entsprechenden Etikettspeichermodul zugeordnet ist. Jede der Steuerlogikschaltungen 205-208 weist Decodierschaltungen auf, die auf die Steuersignale vom Prozessor 101, die Treffer/Fehl-Signale von der Trefferanzeigeschaltung 116 und die Speicherbetätigungssignale von der Ersetzungsschaltung 113 ansprechen. Da die Etikettspeicher-Steuerlogikschaltungen identisch sind, wird nurThe tag memory control circuit 110 has 4 identical ones Tag store control logic circuits 205, 206, 207, 208 each of which is associated with a corresponding label storage module. Each of the control logic circuits 205-208 has decoding circuits which respond to the control signals from the processor 101, the hit / miss signals from the hit indicator circuit 116 and the memory actuation signals from the replacement circuit 113 respond. As the tag store control logic circuits are identical, will only

909851/0 6 82909851/0 6 82

28225372822537

die Steuerlogikschaltung 205 im einzelnen dargestellt und beschrieben. Die NAND-Gatter 209, 210, 211, 212, 213, 214 dienen als Decoder und liefern ein Signal H am Ausgang des NAND-Gatter s 214 für die folgenden Kombinationen von Cache-Steuersignalen und intern erzeugten Signalen : Normal^ Lesen^·, Fehl- und Speicherbetätigungssignal A; Spezial-, Schreiben-, Fehl- und Speicherbetätigungssignal Aj Spezial-, Schreiben- und Treffersignal Aj Normal-, Schreiben- und Treffersignal A; Spezial-, Lesen- und Treffersignal A.the control logic circuit 205 is shown and described in detail. The NAND gates 209, 210, 211, 212, 213, 214 serve as decoders and supply a signal H at the output of the NAND gate s 214 for the following combinations of cache control signals and internally generated signals: Normal ^ read ^ ·, miss and memory actuation signal A; Special, write, miss and memory actuation signal Aj Special, write and hit signal Aj Normal, write and hit signal A; Special, read and hit signal A.

Diese Kombinationen von Signalen entsprechen den Signalkombinationen 2, 8, 7, 5 bzw. 3 in der obigen Tabelle. Wenn eine dieser Signalkombinationen der Etikettspeicher-Steuerlogikschaltung 205 angeboten wird, so wird das NAND-Gatter 215 betätigt. Dann veranlaßt der Zeitsteuerimpuls T2 von der Folgeschaltung 115 das Signal am Ausgang des NAND-Gatters 215,auf L zu gehen, wodurch das Adressetikett (AT), das der Prozessor 101 auf der Leitung 109 zur Verfügung stellt, in den Adressspeichermodul 201 an derjenigen Speicherstelle eingeschrieben wird, die durch die vom Prozessor 101 auf den Leitungen 108 gelieferten Adreßsignale angegeben wird. Vor dem Eintreffen des Zeitsteuerungsimpulses T2 befinden sich die Etikettspeichermodule 201 bis 204 in einer Lesebetriebsweise, um Eingangssignale für die Trefferanzeigeschaltung 116 und die Ersetzungsschaltun g 113' zu liefern.These combinations of signals correspond to the signal combinations 2, 8, 7, 5 or 3 in the table above. When any of these signal combinations from the tag store control logic circuit 205 is offered, the NAND gate 215 is actuated. Then the timing pulse causes T2 from the sequencer 115 the signal at the output of the NAND gate 215 on L to go, whereby the address label (AT), which the processor 101 makes available on the line 109, in the address memory module 201 is written to that memory location which is determined by the processor 101 on lines 108 supplied address signals is specified. Before arriving of the timing pulse T2, the tag storage modules 201 to 204 are in a read mode of operation in order to receive input signals for the hit indicator circuit 116 and the replacement circuit g 113 'to deliver.

909851/0682909851/0682

2Ä225872Ä22587

Wie oben angegeben, wird ein gültiges Datenwort durch ein Signal H für das Gültigkeitsbit angegeben und ein ungültiges Datenwort durch ein Signal L für das Gültigkeitsbit. Für eine normale Schreiboperation, bei der ein Cache-Treffer auftritt, gibt es zwei alternative Arten der Operation:As indicated above, a valid data word is indicated by a signal H for the valid bit and an invalid one Data word by a signal L for the valid bit. For a normal write operation where a cache hit occurs, there are two alternative types of surgery:

1) Das Datenwort in dem Datenspeicher 107, das zu dem Treffer geführt hat, kann dadurch auf den neuesten Stand gebracht werden, daß das neue Datenwort in den Datenspeicher 107 geschrieben wird; oder1) The data word in data memory 107 that corresponds to the hit can be brought up to date by writing the new data word into the data memory 107 will; or

2) das Datenwort im Datenspeicher 107 , das zu/dem Treffer geführt hat, kann im Effekt dadurch entfernt werden, daß ein ungültiges Gültigkeitsbit in die· entsprechende Speicherstelle des Etikettspeichers 106 geschrieben wird.2) the data word in data memory 107 that corresponds to / the hit has resulted can in effect be removed by placing an invalid validity bit in the corresponding memory location of the label memory 106 is written.

Die erste Möglichkeit wird dadurch geschaffen, daß die Leitung 220 weggelassen und das NAND-Gatter 4o4 in der Datenspeicher-Steuerschaltung 111 vorgesehen wird, um das neue Datenwort in den Datenspeicher 107 zu schreiben. Die zweite Möglichkeit wird geschaffen, indem das NAND-Gatter 404 weggelassen und die Leitung 220 vorgesehen wird, so daß ein ungültiges Gültigkeitsbit.erzeugt und in den Etikettspeicher 106 geschrieben wird. Das NAND-Gatter 216 wird demgemäß entweder durch die Ausgangssignale der NAND-Gatter 212 und 213 oder durch das Ausgangssignal des NAND-Gatters 213 allein gesteuert, um ungültige Gültigkeitsbits zu erzeugen, die in den Etikettspeichermodul 201 einzuschreiben sind. Das NAND-Gatter 212 spricht auf die Kombination der Signale Normal-, Schreiben- und Tref-The first possibility is created by the fact that the line 220 is omitted and the NAND gate 4o4 in the data memory control circuit 111 is provided to the new data word to write into the data memory 107. The second option is created by omitting NAND gate 404 and providing line 220 so that an invalid Valid bits are generated and written into the label memory 106 will. The NAND gate 216 is accordingly either by the output signals of the NAND gates 212 and 213 or by the Output of NAND gate 213 alone controlled to be invalid To generate valid bits to be written into the tag storage module 201. NAND gate 212 speaks on the combination of the signals normal, write and hit

909851/0682909851/0682

24225972422597

fersignal A an, und das NAND-Gatter 213 auf die Kombination der Signale Spezial-, Lesen- und Treffersignal A. Das NAND-Gatter 216 spricht auf die Ausgangssignale eines oder beider NAND-Gatter 212 und 213 an, um ein ungültiges Gültigkeitsbit für diese beiden Signalkombinationen zu erzeugen. Die Leitung 220 ist als wahlfreie Möglichkeit vorgesehen, um den Ausgang des NAND-Gatters 212 mit einem der Eingänge des NAND-Gatters 216 zu verbinden. Das NAND-Gatter 212 entspricht der Signalkombination 5 in der obigen Tabelle und das NAND-Gatter 213 der Signalkombination 3 in der Tabelle. Das erzeugte Gültigkeitsbit wird in den entsprechenden Etikettspeichermodul gleichzeitig mit dem Adressetikett (AT) eingeschrieben. Für alle anderen Signalkombinationen wird ein gültiges Gültigkeitsbit erzeugt, das dem in der obigen Tabelle angegebenen Status für das Gültigkeitsbit entspricht, d.h. für alle diese Signalkombinationen ist das Gültigkeitsbit entweder gültig oder ohne Bedeutung. Der Inverter 219 liefert die richtige Polarität für das Gültigkeitsbit, während die Inverter 217 und 218 Signale mit der richtigen Polarität für die NAND-Gatter 210, 211, 212, 213 bereitstellen. Die Etikettspeicher-Steuerlogikschaltungen 206, 207, 208 arbeiten ähnlich, wenn Operationen für die Etikettspeichermodule 202, 203 bzw. 204 auszuführen sind.remote signal A, and the NAND gate 213 to the combination of the signals special, read and hit signal A. The NAND gate 216 is responsive to the output of one or both NAND gates 212 and 213 for an invalid valid bit for these two signal combinations. Line 220 is provided as an optional option to the output of the NAND gate 212 to one of the inputs of the NAND gate 216 to connect. The NAND gate 212 corresponds to the signal combination 5 in the table above and the NAND gate 213 the signal combination 3 in the table. The generated validity bit is stored in the corresponding label memory module registered at the same time as the address label (AT). A valid validity bit is generated for all other signal combinations with the status given in the table above for the validity bit, i.e. for all these signal combinations the validity bit is either valid or without Meaning. Inverter 219 provides the correct polarity for the valid bit, while inverters 217 and 218 provide signals with the correct polarity for the NAND gates 210, 211, 212, 213. The tag store control logic circuits 206, 207, 208 work similarly when performing operations for the label storage modules 202, 203 and 204 are to be executed.

Die Datenspeicher-Steuerschaltung 111 weist NAND-Gatter 401, 402, 403, 404 auf, die ein Signal L an .ihren Ausgangsanschlüssen für die folgenden Kombinationen von EingangsSignalen liefern: The data memory control circuit 111 has NAND gates 401, 402, 403, 404, which provide a signal L at their output connections for the following combinations of input signals:

909851/0682909851/0682

23225972322597

Spezial-, Schreiben- und Fehlsignal;Special, write and miss signal;

Normal-, Lesen-, Fehl- und Hauptspeicher-vervollständigungs-Signal (MMC, das vom Hauptspeicher 103 erzeugt wird, wenn ein Hauptspeicherriesevorgang beendet ist); Spezial- und Schreibsignal;
Normal- und Schreibsignal.
Normal, read, miss and main memory complete signals (MMC generated by main memory 103 when a main memory giant operation is completed); Special and write signal;
Normal and write signal.

Wie oben angegeben, ist das NAND-Gatter 404 als wahlfreie Möglichkeit vorgesehen, wenn die Leitung 220 nicht vorhanden ist, um die Cache-Information bei einem normalen Schreiben, bei dem ein Treffer auftritt, auf den neuesten Stand zu bringen. Die NAND-Gatter 401 und 402 decodieren Cacte-Operationen, in denen der Datenspeicher 107 bei einem Cache-Fehlsignal geschrieben wird, und die NAND-Gatter 403 und 404 decodieren Cache-Operationen, wenn der Datenspeicher 107 bei einem Cache-Treffer geschrieben wird. Die Auswahl , welcher Datenspeichermodul geschrieben wird, erfolgt unter Steuerung der Ersetzungsschaltung 113 für ein Cache-Fehlsignal und durch die Trefferanzeigeschaltung 116 für einen Cache-Treffer. Demgemäß sind zwei Gruppen von Lese/Schreib-Gattern erforderlich, die die NAND-Gatter 406, 407, 408, 409 für ein Cache-Fehlsignal und die NAND-Gatter 4ΐ4, 415,416, 4i7 für einen Cache-Treffer umfassen. Das Ausgangssignal des NAND-GattersAs indicated above, NAND gate 404 is provided as an optional option when line 220 is not present is to keep the cache information up to date in normal write where a hit occurs bring. The NAND gates 401 and 402 decode Cacte operations, in which the data memory 107 is written on a cache miss signal, and the NAND gates 403 and 404 decode Cache operations when data memory 107 is written on a cache hit. The choice of which Data storage module is written under the control of the cache miss replacement circuit 113 and by the hit indicator circuit 116 for a cache hit. Accordingly, two groups of read / write gates are required, the NAND gates 406, 407, 408, 409 for a cache miss and the NAND gates 4ΐ4, 415,416, 4i7 for a Include cache hits. The output of the NAND gate

405 ist auf H, wenn eines der NAND-Gatter 401, 402 betätigt und eines der Speicherbetätigungssignale ebenfalls auf H ist. Diese Kombination von Signalen betätigt eines der NAND-Gatter405 is high when either of the NAND gates 401, 402 is actuated and one of the memory actuation signals is also high. This combination of signals operates one of the NAND gates

406 bis 409. Das Ausgangssignal des NAND-Gatters 418 ist auf406 to 409. The output of NAND gate 418 is on

909851/0682909851/0682

H, wenn eines der NAND-Gatter 403, 404 betätigt und, falls ein Treffer aufgetreten ist, eines der Treffersignale ebenfalls auf H ist. Diese Kombination von Signalen betätigt eines der NAND-Gatter 414 bis 417. Das NAND-Gatter 419 nimmt den Zeitsteuerungsimpuls T2 von der Folge schaltung 115 und das Hauptspeicher-Beendigungssignal vom Hauptspeicher 103 auf. Beim Auftreten eines dieser Signale, die im aktiven Zustand auf L sind, geht der Ausgang des NAND-Gatters 419 auf H. Dieses Ausgangssignal wird über das betätigte NAND-Gatter einer der Gruppen von NAND-Gattern 406 bis 409 oder 417 bis 419 übertragen, um den entsprechenden Datenspeichermodul zu schreiben. Die Inverter 420, 421, 422 liefern die richtige Signalpolarität.H if one of the NAND gates 403, 404 is actuated and if so a hit has occurred, one of the hit signals is also high. This combination of signals is actuated one of NAND gates 414 through 417. NAND gate 419 takes the timing pulse T2 from the sequencer 115 and the main memory termination signal from the main memory 103 on. When one of these signals occurs, which are low in the active state, the output of the NAND gate 419 goes to H. This output signal is one of the groups of NAND gates 406 to 409 or 417 to via the actuated NAND gate 419 transferred to the corresponding data storage module to write. The inverters 420, 421, 422 provide the correct signal polarity.

Bus-Sendeempfänger 501 bis 505 übertragen entweder Signale von den Datenanschlüssen E zu den Datenanschlüssen F oder Signale von den Datenanschlüssen F zu den Datenanschlüssen E oder stellen eine hohe Impedanz zwischen den Datenanschlüssen E und F her, und zwar abhängig von den Steuersignalen an den Anschlüssen DIR und G . Die Bus-Sendeempfänger sind untereinander identisch und jeweils gleich aufgebaut wie der Bus-Sendeempfänger 501, der die UND-Gatter 513, 514, die Inverter 515, 516 und die Bus-Treiber 517 und 518 enthält. Ein Signal H am Betätigungsanschluß G eines Bus-Sendeempfängers trennt die Anschlüsse E von den Anschlüssen F. Ein Signal L am Betätigungsanschluß G betätigt den Bus-Sendeempfänger und überträgt die Bus transceivers 501 to 505 transmit either signals from the data connections E to the data connections F or Signals from the data connections F to the data connections E or represent a high impedance between the data connections E and F, depending on the control signals at the DIR and G connections. The bus transceivers are among each other identical and constructed in the same way as the bus transceiver 501 which includes AND gates 513, 514, inverters 515, 516, and bus drivers 517 and 518. A signal H at the actuation connection G of a bus transceiver separates the connections E from the connections F. A signal L at the actuation connection G actuates the bus transceiver and transmits the

909851/0682909851/0682

ORIGINAL INSPECTED „ORIGINAL INSPECTED "

• -27- . ■ • -27- . ■

29225872922587

Steuerung für die Richtung des Signalflusses an das'Signal am Richtungsanschluß DIR, so daß, wenn das Signal auf H ist, Daten von den Anschlüssen F zu den Anschlüssen E, und wenn das Signal auf L ist, Daten von den Anschlüssen E zu den Anschlüssen F übertragen werden. Der Prozessor 101 steuert die Bus-Sendeempfänger 505 , um den Datenfluß zwischen dem' Hauptspeicher 103 und dem Datenbus 112 zu steuern. Die NOR-Gatter 423 bis 426 bestimmen, welcher der Bus-Sendeempfänger 501 bis 504 betätigt wird. Wenn eines der Ausgangssignale der NAND-Gatter 401 bis 404 auf L ist, wodurch angegeben wird, daß einer der Datenspeichermodule 410 bis 413 geschrieben werden soll,' geht der Ausgang des NAND-Gatters 427 auf H, wodurch die Ausgangssignale aller 4 NOR-Gatter 423 bis 426 auf L gebracht und alls Bus-Sendeempfänger 501 bis 504 betätigt werden. Die Datenübertragungsrichtung wird durch das Signal vom NAND-Gatter 428 bestimmt, das auf L für die Kombination von Lese- und Cache-Treffersignale,aber für alle anderen Signalkombinationen H ist. Die Bus-Sendeempfänger befinden sich im Trennzustand mit hoher Impedanz oder übertragen Daten vom Datenbus 112 zu den Datenspeichermodulen, falls der Prozessor keine Leseoperation anfordert, um Störgeräusche auf dem Datenbus für alle anderen Operationen zu verhindern. Demgemäß stehen Datensignale vom Datenbus 112 an den Datenanschlüssen der Datenspeichermodule an, wenn einer von ihnen durch die Signale von einer der Gruppen von NAND-Gattern bis 409 oder 414 bis 417 geschrieben wird. Wenn das Signal vom NAND-Gatter 427 auf L ist, hängen die Ausgangssignale derControl for the direction of the signal flow to the signal at the direction terminal DIR so that when the signal is high, data from the terminals F to the terminals E, and when the signal is low, data is transmitted from the E to the F terminals. The processor 101 controls the bus transceivers 505 to control the flow of data between the ' Main memory 103 and the data bus 112 to control. The NOR gates 423 through 426 determine which of the bus transceivers 501 through 504 is being operated. If one of the output signals of the NAND gate 401-404 is low, indicating that one of data storage modules 410-413 is being written should be, 'the output of the NAND gate 427 goes high, whereby the output signals of all 4 NOR gates 423 to 426 brought to L and all bus transceivers 501 to 504 operated will. The direction of data transfer is determined by the signal from NAND gate 428 which is low for the combination of read and cache hit signals, but for all others Signal combinations H is. The bus transceivers are in a disconnected state with high impedance or are transmitting data from the data bus 112 to the data storage modules if the processor is not requesting a read operation to detect noise to prevent the data bus for all other operations. Accordingly, data signals from the data bus 112 are at the data connections of data storage modules when one of them receives signals from one of the groups of NAND gates to 409 or 414 to 417 is written. When the signal from NAND gate 427 is low, the outputs of the

909 8 51/0682909 8 51/0682

25225972522597

NOR-Gatter 423 bis 426 von den Treffersignalen A, B, C und D der Trefferanzeige schaltung 116 ab. Venn ein Treffer in einem der Etikettspeichermodule A, B, C oder D festgestellt wird, geht das zu den NOR-Gattern 423 bis 426 übertragene Treffersignal A, B, C oder D auf H, wodurch der Ausgang des entsprechenden NOR-Gatters auf L gelangt und den entsprechenden Bus-Sendeempfänger betätigt. Yfenn das Signal vom NAND-Gatter 428 auf L und das Sig-nal von einem der NOR-Gatter 423 bis 426 auf L sind, wird der demjenigen Datenspeichermodul entsprechende Bus-Sendeempfänger, welcher das Datenwort enthält, das den Cache-Treffer verursacht hat, betätigt,und die Richtung des Datenflusses geht von den Anschlüssen E zu den Anschlüssen F , so daß das aus dem entsprechenden Datenspeichermodul gelesene Datenwort zum Datenbus 112 übertragen wird.NOR gates 423 to 426 of the hit signals A, B, C and D of the hit display circuit 116 from. Venn a hit in one of the tag memory modules A, B, C or D is detected, the hit signal transmitted to the NOR gates 423-426 goes A, B, C or D to H, whereby the output of the corresponding NOR gate goes to L and the corresponding bus transceiver actuated. If the signal from NAND gate 428 is low and the signal from one of NOR gates 423 to 426 are at L, the bus transceiver corresponding to the data storage module which contains the data word becomes the caused the cache hit, and the direction of the data flow goes from the connections E to the connections F, so that the read from the corresponding data storage module Data word is transmitted to the data bus 112.

Die Folgeschaltung 115 liefert interne Zeitsteuerungsimpulse für Cache-Speicheroperationen. Die Folgeschaltung nimmt ein Taktsignal vom Prozessor 101 auf der Leitung 506 auf und wird durch ein Cache-GO-Signal vom Prozessor 101 auf der Leitung 114 aktiviert. Das Cache-GO-Signal vom Prozessor ist mit dem Taktsignal synchronisiert, so daß die Folgeschaltung 115 vollständige Taktimpuls-Zeitsteuerungssignale liefert. Die D-Flip-Flops 507, 508, 509, 510 sprechen auf einen Übergang L-H des Signals an ihren Taktanschlüssen an und übertragen das am Anschluß D anstehende Signal zum Anschluß Q. Sie können direkt durch Signale L an den Anschlüssen S und C eingestellt bzw. gelöscht werden. Der Decodierer 511 deco-Sequencer 115 provides internal timing pulses for cache memory operations. The sequential circuit assumes Clock signal from processor 101 on line 506 and is triggered by a cache GO signal from processor 101 on line 506 Line 114 activated. The cache GO signal from the processor is synchronized with the clock signal, so that the sequential circuit 115 provides complete clock pulse timing signals. The D flip-flops 507, 508, 509, 510 speak to you Transition L-H of the signal to their clock connections and transmit the signal present at connection D to connection Q. They can be set or deleted directly using the L signals at the S and C connections. The decoder 511 deco-

909851/0682909851/0682

diert Signale an seinen Bingangsanschlüssen 1A und 1B, um ein Signal L an demjenigen Ausgangsanschluß zu liefern, der den augenblicklichen Eingangssignalen entspricht, und Signale H an den übrigen Ausgangsanschlüssen 1YO bis 1Y3. Die Flip-Flops 508, 509, 510 sind gelöscht (Q = 0, Q = 1) und das Flip-Flop 501 ist eingestellt (Q = 1, Q = 0), wenn die Folgeschaltung 115 durch das Cache-GO-Signal vom Prozessor 101 aktiviert ist. Das Cache-GO-Signal führt zu einem L-H-Signalübergang am Taktanschluß des Flip-Flops 508, wodurch das Flip-Flop eingestellt wird und die logische 1 am Anschluß D zum Anschluß Q übertragen wird. Das Einstellen des Flip-Flps 508 beseitigt das direkte Löschsignal für die Flip-Flops 509 und 510, so daß sie auf das Taktsignal vom Prozessor ansprechen können. Während des ersten vollen Taktzyklus ist das Signal am Ausgang 1YO der Decoderschaltung 511 auf L und die anderen Ausgänge 1Y1 bis 1Y3 sind auf H. Beim nächsten L-H-Übergang des Taktsignals wird das Flip-Flop 509 eingestellt, während das Flip-Flop. 510 gelöscht bleibt. Dadurch werden die Eingangssignale der Decoderschaltung 511 so geändert, daß das Signal am Ausgangsanschluß 1Y1 auf L geht und die Signale an den Ausgangsanschlüssen 1YO, 1Y2 und 1Y3 auf H sind. Beim n-ächsten L-H-Übergang des Taktsignals wird das Flip-Flop 510 eingestellt, während das Flip-Flop 509 eingestellt bleibt. Dadurch wird das Atisgangssignal des Decoders 511 derart weitergeschaltet, daß das Signal am Ausgangsanschluß 1Y3 L ist und die Signale an den übrigen Ausgangsanschlüssen H. Beim nächsten L-H-Übergang des Taktsignals wirdconverts signals at its input terminals 1A and 1B to provide a signal L at the output terminal corresponding to the instantaneous input signals, and signals H at the remaining output connections 1YO to 1Y3. The flip-flops 508, 509, 510 are cleared (Q = 0, Q = 1) and the flip-flop 501 is set (Q = 1, Q = 0) when the Sequence circuit 115 is activated by the cache GO signal from processor 101. The cache GO signal results in a low to high signal transition at the clock connection of the flip-flop 508, whereby the flip-flop is set and the logical 1 at the connection D to port Q is transmitted. Setting the flip-flp 508 eliminates the direct clear signal for flip-flops 509 and 510, leaving them on the clock signal from the processor can address. During the first full clock cycle, the signal at the output 1YO of the decoder circuit 511 is low and the other outputs 1Y1 to 1Y3 are at H. The next L-H transition of the clock signal, the flip-flop 509 is set, while the flip-flop. 510 remains deleted. This changes the input signals of the decoder circuit 511 so that that the signal at the output terminal 1Y1 goes low and the signals at the output terminals 1YO, 1Y2 and 1Y3 are on H. At the n-th next L-H transition of the clock signal, the flip-flop 510 is set while the flip-flop 509 is set remain. As a result, the output signal of the decoder 511 is switched on in such a way that the signal at the output connection 1Y3 is L and the signals at the remaining output connections are H. The next L-H transition of the clock signal will be

909851/06 82909851/06 82

das Flip-Plop 509 gelöscht und das Flip-Flop 510 bleibt eingestellt. Dadurch wird das Ausgangssignal des Decoders 511 so weitergeschaltet, daß das Signal am Ausgangsanschluß 1Y2 auf L geht und die Signale an den übrigen Ausgangsanschlüssen H sind. Beim nächsten L-H-Übergang des Taktsignals wird das Flip-Flop 510 gelöscht,und das Flip-Flop 509 bleibt gelöscht. Dadurch geht das Signal am Ausgangsanschluß 1Y2 auf H und das Signal am Ausgangsanschluß 1Y0 auf L, während die Signale an den Anschlüssen 1Y1 und 1Y3 auf H bleiben. Der Übergang von L auf H am Taktanschluß des Flip-Flops 507 bringt dieses Flip-Flop in Lösch-Zustand, wodurch das Flip-Flop 508 gelöscht wird, das dann wiederum die Flip-Flops 509 und 510 löscht und ein Sperr signal L an diese Flip-Flops anlegt, so daß sie nicht auf die Signalübergänge des Taktsignals ansprechen können. Bas Signal L am Ausgangsanschluß 1Y0 wird durch das Verzögerungselement 512 eine kurze Zeitperiode verzögert, bevor es an den Einstellanschluß des Flip-Flops 507 angelegt wird und das Flip-Flop 507 einstellt, um das direkte Lösch-Sperr-Signal am Flip-Flop 508 zu entfernen und die Folgeschaltung 115 für eine Aktivierung durch das Cache-.G0-Signal vom Prozessor 101 vorzubereiten.the flip-flop 509 is cleared and the flip-flop 510 remains set. As a result, the output signal of the decoder 511 is switched so that the signal at the output terminal 1Y2 goes low and the signals at the remaining output terminals are high. At the next low to high transition of the clock signal flip-flop 510 is cleared and flip-flop 509 remains clear. This causes the signal to rise at the output terminal 1Y2 The signal at the output terminal 1Y0 is high and the signal at the terminals 1Y1 and 1Y3 remains high. Of the Transition from L to H at the clock connection of the flip-flop 507 brings this flip-flop into the clear state, whereby the flip-flop 508 is deleted, which in turn deletes the flip-flops 509 and 510 and applies a locking signal L to these flip-flops, so that they cannot respond to the signal transitions of the clock signal. Bas signal L at the output terminal 1Y0 becomes delayed by the delay element 512 a short period of time before it is applied to the setting terminal of the flip-flop 507 is applied and the flip-flop 507 sets to remove the direct erase inhibit signal on the flip-flop 508 and prepare sequencer 115 for activation by the cache .G0 signal from processor 101.

Es sollen jetzt zwei Speicherabtastoperationen beschrieben werden, damit sich die Arbeitsweise des Cache-Speichers beser und vollständiger verstehen läßt. Diese Operationen sind einmal ein normales Lesen begleitet von einem Cache-Fehlsignal, und zum anderen ein spezielles Lesen, begleitet durchTwo memory scan operations will now be described in order to improve the operation of the cache memory and let it be understood more fully. These operations are once a normal read accompanied by a cache miss signal, and on the other hand, a special reading, accompanied by

909851/0682 '909851/0682 '

2S225972S22597

ein Caclie-Treff er signal. Zur Vereinfachung der Beschreibung wird angenommen, daß das Speicherbetätigungssignal A (MEA) für das Cäche-Fehlsignal auf H ist und daß das Treffersignal A für den Cache-Treffer auf H ist. Der Prozessor 101 erzeugt die Steuersignale, die Adressetikettsignale, die Datenspeicher- und Etikettspeicheradreßsignale und aktiviert dann das Cache-GO-Signal. Im Falle eines normalen Lesens sind das Lese/ Schreib-signal und das Spezialsignal beide auf H, wodurch das NANB-Gatter 209 vorbereitet wird. Während der ersten beiden Zeitsteuerungsimpulse werden die Etikettspeichermodule 201 bis 204 an der vom Prozessor 101 gelieferten Adresse gelesen. Die gelesenen Adressetiketten werden zu den Vergleichsschaltungen 301 bis 304 gegeben und die gelesenen Gültigkeitsbits zu den NAND-Gattern 305 bis 308 und dem Prioritätscodierer 312. Wenn der Zeitsteuerungsimpuls T1 aufhört, werdoi die Ausgangssignale der NAND-Gatter 305 bis 308 in dem bistabilen Zwischenspeicher 309 festgehalten, und die Ausgangssignale des Prioritätscodierers 312 werden in dem bistabilen Zwischenspeicher 313 gespeichert. Da ein Fehlvorgang angenommen wird, sind die Ausgangsignale des Zwischenspeichers 309 auf L,und das Ausgangssignal des NOR-Gatters 311 ist entsprechend auf H. Die Ausgangssignale des Zwischenspeichers 313 hängen vom Status der Gültigkeitsbits ab, die aus den Etikettspeichermoduien gelesen worden sind, und steuern die Speicherbetätigungssignale vom Decodierer 316, wie oben beschrieben, und zwar unter der Einwirkung der Ersetzungsschaltung 113. Das Speicherbetätigungssignal A (MEA),ist zur Vereinfachung der Beschreibung als H angenommen worden. Wenn das Signal MEA unda Caclie-Treff er signal. To simplify the description it is assumed that the memory actuation signal A (MEA) for the cache miss signal is high and that the hit signal A is high for the cache hit. The processor 101 generates the Control signals, the address label signals, the data store and label store address signals and then asserts the cache GO signal. In the case of normal reading, the read / write signal and the special signal are both high, which means that the NANB gate 209 is being prepared. During the first two The tag memory modules 201 to 204 at the address supplied by the processor 101 are read by timing pulses. The address labels read are given to the comparison circuits 301 to 304 and the valid bits read to the NAND gates 305-308 and the priority encoder 312. When the timing pulse T1 stops, the output signals become the NAND gates 305-308 are held in the bistable latch 309, and the output signals of the priority encoder 312 are stored in the bistable buffer 313 saved. Since a failure is assumed, the output of the latch 309 is low and the output is low of the NOR gate 311 is accordingly at H. The output signals of the latch 313 depend on the Status of the valid bits that have been read from the tag memory modules and control the memory actuation signals from the decoder 316 as described above under the action of the replacement circuit 113. The Memory actuation signal A (MEA) has been assumed to be H for simplicity of description. When the signal MEA and

909851/0682909851/0682

23225972322597

das Pehlsignal auf H sind, wird das NAND-Gatter 209 betätigt und liefert ein Ausgangssignal L zu einem Eingang des NAND-Gatter s 214, um das NAND-Gatter 215 zu betätigen. Keiner der Eingänge des NAND-Gatters 216 ist auf L, so daß dessen Ausgang auf L liegt und der Ausgang des Inverters 219 auf H ist, um ein gültiges Gültigkeitsbit zu erzeugen. Der Zeitsteuerungsimpuls T2 von der Folgeschaltung 115 veranlaßt das NAND-Gatter 215 , das vom Prozessor 101 gelieferte Adressetikett und das gültige Gültigkeitsbit vom Inverter 219 in den Etikettspeichermodul 201 an der vom Prozessor adressierten Adresse einzuschreiben. Der Datenspeicher 107 führt zu diesem Zeitpunkt keine Operationen aus. Der Prozessor 101 nimmt das Fehlsignal von der Trefferanzeigeschaltung 116 auf und stellt fest, daß eine Hauptspeicher-Leseoperation ausgeführt werden muß. Der Prozessor hält die Signale für den Cache-Speicher aufrecht und führt eine Hauptspeicher-Les©peration aus. Wenn die Leseoperation beendet ist und gültige Daten stabil auf dem Datenbus sind, sendet der Hauptspeicher ein Hauptspeicher-Beendigungsignal (MMC) auf der Leitung 118 zum Cache-Speicher 102. Das NAND-Gatter 402 wird durch das Normal-, Lese- und Fehlsignal betätigt und durch das Hauptspeicher-Beenidgungssignal aktiviert, so daß es ein Signal L an seinem Ausgang erzeugt. Dieses Signal betätigt das NAND-Gatter 427, das die Bus-Sendeempfänger 501 bis 504 über die NOR-Gatter 423 bis 426 aktiviert. Die Richtung des Datenflusses geht von den Datenanschlüssen F zu den Datenanschlüssen E, und zwar auf Grund des Signals H vom NAND-Gatter 428. Das NAND-Gatter 406 wird durch Signale Hthe fault signal are high, the NAND gate 209 is actuated and provides an output signal L to an input of NAND gate 214 to operate NAND gate 215. None of the Inputs of NAND gate 216 is low, so its output is low and the output of inverter 219 is high to produce a valid valid bit. The timing pulse T2 from sequencer 115 causes the NAND gate 215, the address label supplied by the processor 101 and the valid valid bit from the inverter 219 into the label memory module 201 at the address addressed by the processor. The data memory 107 leads to this point in time no operations. The processor 101 receives the miss signal from the hit indicator circuit 116 and determines that a main memory read operation must be performed. The processor maintains the signals for the cache memory and executes a main memory read operation. When the read operation is finished and valid data is stable on the data bus main memory sends a main memory complete (MMC) signal on line 118 to cache memory 102. The NAND gate 402 is activated by the normal, read and miss signal and activated by the main memory end signal, so that it produces a signal L at its output. This signal operates the NAND gate 427 which drives the bus transceivers 501 to 504 activated via NOR gates 423 to 426. The direction of the data flow goes from the data connections F. the data terminals E due to the signal H from the NAND gate 428. The NAND gate 406 is activated by signals H

909851/0682909851/0682

292258?292258?

vom NAND-Gatter 405 und des MEA-Signals von der Ersetzungsschaltung 113 betätigt, so daß das Hauptspeicher-Beendigungssignal das Ausgangssignal des NAND-Gatters 406 auf L bringt, um die Daten auf dem Datenbus 112 in den Datenspeichermodul A an der durch den Prozessor 101 adressierten Speicherstelle einzuschreiben. Demgemäß wird das Adreßetikett im Etikettspeichermodul 201 zusammen mit einem gültigen Gültigkeitsbit gespeichert,und die entsprechende Speicherstelle im Datenspeichermodul 410 enthält das richtige, aus dem Hauptspeicher gelesene Datenwort.from the NAND gate 405 and the MEA signal from the replacement circuit 113, so that the main memory completion signal drives the output of NAND gate 406 low to transfer the data on data bus 112 into the data storage module A in the memory location addressed by processor 101. Accordingly, the address label is im Tag storage module 201 along with a valid valid bit saved, and the corresponding memory location in Data storage module 410 contains the correct one from main memory read data word.

Als nächste Speicherabtastoperation wird eine spezielle Leseoperation beschrieben, bei der ein Cache-Treffer auftritt. Das Lese/Schreib-Signal ist auf H und das SpezialSignal auf L. Die Adreßetikettsignale und die Adreßsignale sind die gleichen wie vorher. Das NAND-Gatter 213 wird durch das Lese/Sehreib-Signal und das Spezialsignal vom Prozessor vorbereitet. Die Etikettspeichermodule werden gelesen und die Information wird wiederum zur Trefferanzeigeschaltung 116 und zur Ersetzungsschaltung 113 übertragen. Im Falle eines Treffers ist jedoch eines der Treffersignale A, B, C oder D auf H, während das Treffer/Fehl-Signal vom NOR-Gatter 311 auf L ist. Das Treffersignal A ist zur Vereinfachung der Beschreibung als H angenommen worden. Das Treffersignal A aktiviert das NAND-Gatter 213, das ein ungültiges Gültigkeitsbit erzeugt und außerdem ein Schreiben des Etikettspeichermoduls 201 veranlaßt. Gleichzeitig wird der Bus-Sendeempfänger 501 über das NOR-Gatter betätigt. Der Datenfluß ist von den Datenanschlüssen E zu denThe next memory scan will be a special read where a cache hit occurs. The read / write signal is high and the special signal is low. The address label signals and the address signals are the same as previously. The NAND gate 213 is activated by the read / write signal and the special signal prepared by the processor. The label memory modules are read and the information is again transmitted to hit display circuit 116 and replacement circuit 113. However, in the event of a hit one of the hit signals A, B, C or D to H, while the Hit / miss signal from NOR gate 311 is low. The hit signal A has been assumed to be H for simplicity of description. The hit signal A activates the NAND gate 213, which generates an invalid valid bit and also causes the label memory module 201 to be written. Simultaneously the bus transceiver 501 is actuated via the NOR gate. The data flow is from the data connections E to the

9 09851/06 829 09851/06 82

Datenanschlüssen F aufgrund des Signals L vom NAND-Gatter
428 gerichtet. Der Datenspeichermodul 410 wird gelesen und das gelesene Datenwort über den Datenbus 112 zum Prozessor übertragen. Das gewünschte Datenspeicherwort wird also aus dem Cache-Speicher gelesen,und dieses Datenwort wird im
Etikettspeichermodul 201 als ungültig markiert, wodurch es im Effekt aus dem Cache-Speicher entfernt wird, so daß die Speicherstelle unmittelbar für neue, in den Cache-Speicher einzuschreibende Informationen benutzt werden kann. Die weiteren, in der obigen Tabelle angegebenen Speicheroperationen werden vom Cache-Speicher auf ähnliche Weise ausgeführt.
Data connections F due to the signal L from the NAND gate
428 directed. The data storage module 410 is read and the read data word is transmitted to the processor via the data bus 112. The desired data memory word is thus read from the cache memory, and this data word is stored in the
Tag storage module 201 is marked invalid, which in effect removes it from the cache so that the memory location can be used immediately for new information to be written into the cache. The other memory operations listed in the table above are performed by the cache memory in a similar manner.

909851/0682909851/0682

Claims (6)

BLUMBACH · WESER". BERGEN . KRAMERBLUMBACH · WESER ". BERGEN. KRAMER ZWIRNER · BREHM ---ZWIRNER BREHM --- PATENTANWÄLTE IN MÜNCHEN UND WIESBADEN ' 2922597PATENT LAWYERS IN MUNICH AND WIESBADEN '2922597 Patentconsult Radeckestraße 43 8000 München 60 Telefon (089) 883603/883604 Telex 05-212313 Telegramme Patentconsult Palentconsult Sonnenberger Straße 43 6200 Wiesbaden Telefon (06121) 562943/561998 Telex 04-186237 Telegramme PatentconsultPatentconsult Radeckestraße 43 8000 Munich 60 Telephone (089) 883603/883604 Telex 05-212313 Telegrams Patentconsult Palentconsult Sonnenberger Straße 43 6200 Wiesbaden Telephone (06121) 562943/561998 Telex 04-186237 Telegrams Patentconsult Western Electric Company Incorporated Chang, S.J.1-19 222 Broadway, New York N.Y. 10038, USAWestern Electric Company Incorporated Chang, S.J.1-19 222 Broadway, New York N.Y. 10038, USA Cache-Speicher und Verfahren zum Betrieb einer DatenverarbeitungsanlageCache memory and method for operating a data processing system Patentansprüche:Patent claims: Cache-Speicher für eine Datenverarbeitungsanlage mit einer Einrichtung zur Speicherung von Datenwörtern, einer ädressierbaren Identifizierung für jedes Datenwort und einer Angabe bezüglich der Gültigkeit oder Ungültigkeit jedes Wortes, ^"Cache memory for a data processing system with a device for storing data words, an addressable one Identification for each data word and an indication of the validity or invalidity of each Word, ^ " gekennzeichnet durch eine Anordnung (110), die bei Adressieren des Speichers mit einer Identifizierung unter Ansprechen darauf, daß diese Identifizierung gespeichert ist, sowie auf einer Angabe, daß das entsprechende Datenwort gültig ist, und auf ein Lesesignal eine Ungültigkeitsangabe mit Bezug auf das Datenwort speichert. .marked by an arrangement (110) which, upon addressing the memory with an identifier, in response to that Identification is stored, as well as an indication that the corresponding data word is valid, and on a Read signal stores an invalid information with reference to the data word. . München: R. Kramer Dipl.-Ing. · W. Weser Dip!.-Phys. Dr. rer. nat. · H. P. Brehm Dipl.-Chem. Dr. phil. nat, Wiesbaden: P. G. Blumbach Dipl.-Ing. · P. Bergen Dipl.-Ing, Dr. jur. . G. Zwirner Dlpl.-Ing. Dipl.-W.-Ing.Munich: R. Kramer Dipl.-Ing. · W. Weser Dip! .- Phys. Dr. rer. nat. · H. P. Brehm Dipl.-Chem. Dr. phil. nat, Wiesbaden: P. G. Blumbach Dipl.-Ing. P. Bergen Dipl.-Ing, Dr. jur. . G. Zwirner Dlpl.-Ing. Dipl.-W.-Ing. 909 8 51/0682909 8 51/0682 20225972022597 2. Cache-Speicher nach Anspruch 1,2. Cache memory according to claim 1, dadurch gekennzeichnet, daß , wenn der Speicher durch eine Identifizierung adressiert wird, die nicht gespeichert ist oder für die das Datenwort als ungültig bezeichnet wird, die Anordnung (110, 111) abhängig von einem normalen Lesesignal das Datenwort, die Identifizierung und eine Bezeichnung der Gültigkeit einschreibt, unter Ansprechen auf ein spezielles Lesesignal aber nicht schreibt.characterized in that when the memory is through a Identification is addressed which is not stored or for which the data word is designated as invalid, the arrangement (110, 111) depending on a normal read signal, the data word, the identification and a designation that writes validity, but does not write in response to a special read signal. 3. Cache-Speicher nach Anspruch 1,3. Cache memory according to claim 1, dadurch gekennzeichnet, daß , wenn der Speicher durch eine Identifizierung adressiert wird, die Anordnung (110, 111) unter Ansprechen auf die gespeicherte Identifizierung, eine Angabe, daß das entsprechende Datenwort gültig ist und ein normales Schreibsignal eine Angabe bezüglich der Ungültigkeit für das Datenwort speichert und unter Ansprechen auf ein spezielles Schreibsignal das Datenwort, die Identifizierung und eine Angabe bezüglich der Gültigkeit für das Datenwort einschreibt.characterized in that when the memory is addressed by an identifier, the arrangement (110, 111) in response to the stored identification, an indication that the corresponding data word is valid and a normal write signal stores an indication of the invalidity for the data word and in response to a special write signal the data word, the identification and writes an indication of the validity for the data word. 4. Cache-Speicher nach Anspruch 1,4. Cache memory according to claim 1, dadurch gekennzeichnet, daß, wenn der Speicher durch eine Identifizierung adressiert wird, die Anordnung (110, 111) unter Ansprechen auf die gespeicherte Identifizierung, eine Angabe, daß das entsprechende Datenwort gültig ist und ein normales Schreibsignal das Datenwort und eine Gültigkeits-characterized in that when the memory is addressed by an identifier, the arrangement (110, 111) in response to the stored identification, an indication that the corresponding data word is valid and a normal write signal the data word and a validity 909851/0682909851/0682 21221972122197 angabe mit Bezug auf das Datenwort einschreibt, und unter Ansprechen auf ein spezielles Schreibsignal das Datenwort, die Identifizierung und eine Gültigkeitsangabe mit Bezug auf das Datenwort einschreibt.writes specification with reference to the data word, and in response to a special write signal writes the data word, inscribes the identification and an indication of validity with reference to the data word. 5. Verfahren zum Betrieb einer Datenverarbeitungsanlage mit einem Prozessor, einem Hauptspeicher und einem Cache-Speicher, wobei in dem Cache-Speicher vom Prozessor benötigte Datenwörter, eine adressierbare Identifizierung für jedes Datenwort und eine Angabe hinsichtlich der Gültigkeit oder Ungültigkeit jedes Wortes gespeichert sind, dadurch gekennzeichnet, daß beim Adressieren des Cache-Speichers mit einer in ihm gespeicherten Identifizierung und, wenn das entsprechende Datenwort gültig ist, eine Leseoperation bewirkt, daß eine Ungültigkeitsangabe für dieses Datenwort gespeichert wird.5. A method for operating a data processing system with a processor, a main memory and a cache memory, wherein in the cache memory required data words by the processor, an addressable identifier for each Data word and an indication of the validity or invalidity of each word are stored, characterized in that when addressing the cache memory with an identification stored in it and, if the corresponding one Data word is valid, a read operation has the effect that an invalid statement is stored for this data word. 6. Verfahren zum Programmieren einer Datenverarbeitungsanlage mit einem Prozessor, einem Hauptspeicher und einem Cache-6. Method for programming a data processing system with a processor, a main memory and a cache • Speicher,• Storage, •dadurch gekennzeichnet, daß• characterized in that die Anlage entsprechend dem Verfahren nach Anspruch 5 betrieben wird.the system operated according to the method according to claim 5 will. 909851/0682909851/0682
DE19792922597 1978-06-08 1979-06-02 CACHE STORAGE AND METHOD FOR OPERATING A DATA PROCESSING SYSTEM Withdrawn DE2922597A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/913,567 US4197580A (en) 1978-06-08 1978-06-08 Data processing system including a cache memory

Publications (1)

Publication Number Publication Date
DE2922597A1 true DE2922597A1 (en) 1979-12-20

Family

ID=25433396

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19792922597 Withdrawn DE2922597A1 (en) 1978-06-08 1979-06-02 CACHE STORAGE AND METHOD FOR OPERATING A DATA PROCESSING SYSTEM

Country Status (4)

Country Link
US (1) US4197580A (en)
JP (1) JPS54160138A (en)
DE (1) DE2922597A1 (en)
GB (1) GB2022885B (en)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4307447A (en) * 1979-06-19 1981-12-22 Gould Inc. Programmable controller
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
US4386402A (en) * 1980-09-25 1983-05-31 Bell Telephone Laboratories, Incorporated Computer with dual vat buffers for accessing a common memory shared by a cache and a processor interrupt stack
US4414644A (en) * 1981-04-03 1983-11-08 International Business Machines Corporation Method and apparatus for discarding data from a buffer after reading such data
US4458310A (en) * 1981-10-02 1984-07-03 At&T Bell Laboratories Cache memory using a lowest priority replacement circuit
US4504902A (en) * 1982-03-25 1985-03-12 At&T Bell Laboratories Cache arrangement for direct memory access block transfer
US4486856A (en) * 1982-05-10 1984-12-04 Teletype Corporation Cache memory and control circuit
US4483003A (en) * 1982-07-21 1984-11-13 At&T Bell Laboratories Fast parity checking in cache tag memory
US4574346A (en) * 1982-09-29 1986-03-04 International Business Machines Corporation Method and apparatus for peripheral data handling hierarchies
WO1984002799A1 (en) * 1982-12-30 1984-07-19 Ibm A hierarchical memory system including separate cache memories for storing data and instructions
US4682281A (en) * 1983-08-30 1987-07-21 Amdahl Corporation Data storage unit employing translation lookaside buffer pointer
DE3502147A1 (en) 1984-01-23 1985-08-08 Hitachi Microcomputer Engineering Ltd., Kodaira, Tokio/Tokyo Data processing system with improved buffer memory control
US4757440A (en) * 1984-04-02 1988-07-12 Unisys Corporation Pipelined data stack with access through-checking
US4637024A (en) * 1984-11-02 1987-01-13 International Business Machines Corporation Redundant page identification for a catalogued memory
US4835686A (en) * 1985-05-29 1989-05-30 Kabushiki Kaisha Toshiba Cache system adopting an LRU system, and magnetic disk controller incorporating it
US5029072A (en) * 1985-12-23 1991-07-02 Motorola, Inc. Lock warning mechanism for a cache
US4703421A (en) * 1986-01-03 1987-10-27 Gte Communication Systems Corporation Ready line synchronization circuit for use in a duplicated computer system
US4928239A (en) * 1986-06-27 1990-05-22 Hewlett-Packard Company Cache memory with variable fetch and replacement schemes
US4896264A (en) * 1986-09-08 1990-01-23 American Telephone And Telegraph Company Microprocess with selective cache memory
CA1299768C (en) * 1987-03-04 1992-04-28 Ikuo Yamada Memory access control system
US5019971A (en) * 1987-04-13 1991-05-28 Prime Computer, Inc. High availability cache organization
AU604101B2 (en) * 1987-04-13 1990-12-06 Computervision Corporation High availability cache organization
US4954944A (en) * 1987-04-23 1990-09-04 Nec Corporation Cache control circuit in cache memory unit with unit for enabling to reduce a read access time for cache memory
US4991090A (en) * 1987-05-18 1991-02-05 International Business Machines Corporation Posting out-of-sequence fetches
EP0349123B1 (en) * 1988-06-27 1995-09-20 Digital Equipment Corporation Multi-processor computer systems having shared memory and private cache memories
US5222224A (en) * 1989-02-03 1993-06-22 Digital Equipment Corporation Scheme for insuring data consistency between a plurality of cache memories and the main memory in a multi-processor system
US5838946A (en) * 1990-04-14 1998-11-17 Sun Microsystems, Inc. Method and apparatus for accomplishing processor read of selected information through a cache memory
US5404482A (en) * 1990-06-29 1995-04-04 Digital Equipment Corporation Processor and method for preventing access to a locked memory block by recording a lock in a content addressable memory with outstanding cache fills
US5404483A (en) * 1990-06-29 1995-04-04 Digital Equipment Corporation Processor and method for delaying the processing of cache coherency transactions during outstanding cache fills
US5392417A (en) * 1991-06-05 1995-02-21 Intel Corporation Processor cycle tracking in a controller for two-way set associative cache
GB2260628A (en) * 1991-10-11 1993-04-21 Intel Corp Line buffer for cache memory
US5471479A (en) * 1992-08-06 1995-11-28 Motorola, Inc. Arrangement for column sparing of memory
DE4323929A1 (en) * 1992-10-13 1994-04-14 Hewlett Packard Co Software-managed, multi-level cache storage system
JP3181001B2 (en) * 1993-06-01 2001-07-03 インターナショナル・ビジネス・マシーンズ・コーポレ−ション Cache memory system and cache memory access method and system
US5604882A (en) * 1993-08-27 1997-02-18 International Business Machines Corporation System and method for empty notification from peer cache units to global storage control unit in a multiprocessor data processing system
US5544345A (en) * 1993-11-08 1996-08-06 International Business Machines Corporation Coherence controls for store-multiple shared data coordinated by cache directory entries in a shared electronic storage
US5568632A (en) * 1993-12-17 1996-10-22 Lsi Logic Corporation Method and apparatus for cache memory
JPH07219847A (en) * 1994-01-31 1995-08-18 Fujitsu Ltd Information processor
US5822760A (en) * 1994-01-31 1998-10-13 Fujitsu Limited Cache-memory system having multidimensional cache
US6151661A (en) * 1994-03-03 2000-11-21 International Business Machines Corporation Cache memory storage space management system and method
US6044441A (en) * 1995-09-29 2000-03-28 Intel Corporation Method and apparatus for encoding valid and invalid states in a cache with an invalid pattern
US5913216A (en) * 1996-03-19 1999-06-15 Lucent Technologies, Inc. Sequential pattern memory searching and storage management technique
US5809548A (en) * 1996-08-30 1998-09-15 International Business Machines Corporation System and method for zeroing pages with cache line invalidate instructions in an LRU system having data cache with time tags
US6823434B1 (en) * 2000-02-21 2004-11-23 Hewlett-Packard Development Company, L.P. System and method for resetting and initializing a fully associative array to a known state at power on or through machine specific state
US6775752B1 (en) * 2000-02-21 2004-08-10 Hewlett-Packard Development Company, L.P. System and method for efficiently updating a fully associative array
US20020087798A1 (en) * 2000-11-15 2002-07-04 Vijayakumar Perincherry System and method for adaptive data caching
US7017008B2 (en) * 2000-12-29 2006-03-21 Intel Corporation Method and apparatus for optimizing data streaming in a computer system utilizing random access memory in a system logic device
US7062610B2 (en) * 2002-09-30 2006-06-13 Advanced Micro Devices, Inc. Method and apparatus for reducing overhead in a data processing system with a cache
US7155572B2 (en) * 2003-01-27 2006-12-26 Advanced Micro Devices, Inc. Method and apparatus for injecting write data into a cache
US7334102B1 (en) 2003-05-09 2008-02-19 Advanced Micro Devices, Inc. Apparatus and method for balanced spinlock support in NUMA systems
US8930647B1 (en) 2011-04-06 2015-01-06 P4tents1, LLC Multiple class memory systems
US9158546B1 (en) * 2011-04-06 2015-10-13 P4tents1, LLC Computer program product for fetching from a first physical memory between an execution of a plurality of threads associated with a second physical memory
US9176671B1 (en) * 2011-04-06 2015-11-03 P4tents1, LLC Fetching data between thread execution in a flash/DRAM/embedded DRAM-equipped system
US9170744B1 (en) * 2011-04-06 2015-10-27 P4tents1, LLC Computer program product for controlling a flash/DRAM/embedded DRAM-equipped system
US9164679B2 (en) * 2011-04-06 2015-10-20 Patents1, Llc System, method and computer program product for multi-thread operation involving first memory of a first memory class and second memory of a second memory class
US8812516B2 (en) 2011-10-18 2014-08-19 Qualcomm Incorporated Determining top N or bottom N data values and positions
US20140281391A1 (en) * 2013-03-14 2014-09-18 Qualcomm Incorporated Method and apparatus for forwarding literal generated data to dependent instructions more efficiently using a constant cache
US20150019822A1 (en) * 2013-07-11 2015-01-15 Lsi Corporation System for Maintaining Dirty Cache Coherency Across Reboot of a Node

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3611315A (en) * 1968-10-09 1971-10-05 Hitachi Ltd Memory control system for controlling a buffer memory
US3588839A (en) * 1969-01-15 1971-06-28 Ibm Hierarchical memory updating system
US3735360A (en) * 1971-08-25 1973-05-22 Ibm High speed buffer operation in a multi-processing system
US3840862A (en) * 1973-09-27 1974-10-08 Honeywell Inf Systems Status indicator apparatus for tag directory in associative stores
US3949368A (en) * 1974-01-23 1976-04-06 Data General Corporation Automatic data priority technique
FR129151A (en) * 1974-02-09
US3979726A (en) * 1974-04-10 1976-09-07 Honeywell Information Systems, Inc. Apparatus for selectively clearing a cache store in a processor having segmentation and paging
US4075686A (en) * 1976-12-30 1978-02-21 Honeywell Information Systems Inc. Input/output cache system including bypass capability

Also Published As

Publication number Publication date
US4197580A (en) 1980-04-08
GB2022885A (en) 1979-12-19
GB2022885B (en) 1982-11-24
JPS54160138A (en) 1979-12-18

Similar Documents

Publication Publication Date Title
DE2922597A1 (en) CACHE STORAGE AND METHOD FOR OPERATING A DATA PROCESSING SYSTEM
DE2646162C3 (en) Circuit arrangement for replacing incorrect information in memory locations of a non-changeable memory
EP0013737A1 (en) Multilevel storage hierarchy for a data processing system
DE2523414A1 (en) HIERARCHICAL STORAGE ARRANGEMENT
EP0974977A2 (en) Integrated memory
DE3015992A1 (en) PROGRAMMABLE LOGICAL ARRANGEMENT
DE1966633B2 (en) Data processing system with an overlapped work cycle when using a main memory and a buffer memory
DE3148099C2 (en) Arrangement for recognizing a digital sequence
DE19963689A1 (en) Circuit arrangement of an integrated semiconductor memory for storing addresses of defective memory cells
DE1524788A1 (en) Circuit arrangement for the detection and automatic replacement of defective storage locations in data memories
DE1524856A1 (en) Word-addressable data memories with several defective memory elements
DE4302754C1 (en) Monolithic integrated data memory e.g. for access to data table or list - uses Hash function to generate memory address from data to be entered
DE2316321C2 (en) Circuit arrangement at the interface between a controller of a computer and a main memory of a computer system
DE2242279C3 (en) Circuit arrangement for determining errors in a memory unit of a program-controlled data exchange system
EP0353660B1 (en) Fault prevention method in memory systems of data-processing installations, in particular telephone exchanges
DE2455440A1 (en) VERIFICATION ORDER
DE2519195A1 (en) ASSOCIATIVE MEMORY
DE2702586C3 (en) Circuit arrangement for controlling memory access in a computer
DE1449816C3 (en) Circuit arrangement for controlling access to a magnetic drum memory
DE19808347B4 (en) Integrated memory
DE10107833B4 (en) Memory arrangement and method for reading out a memory arrangement
DE19513587A1 (en) Synchronous dynamic random-access memory appts.
EP1085387A2 (en) Memory controller for performing switching to access storage cells
DE2923564C2 (en) Memory arrangement with a number of memory modules
DE3909267C2 (en) Circuit arrangement for storage devices for storing data with validity indicators

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8128 New person/name/address of the agent

Representative=s name: BLUMBACH, P., DIPL.-ING., 6200 WIESBADEN WESER, W.

8130 Withdrawal