DE3200042C2 - - Google Patents

Info

Publication number
DE3200042C2
DE3200042C2 DE3200042A DE3200042A DE3200042C2 DE 3200042 C2 DE3200042 C2 DE 3200042C2 DE 3200042 A DE3200042 A DE 3200042A DE 3200042 A DE3200042 A DE 3200042A DE 3200042 C2 DE3200042 C2 DE 3200042C2
Authority
DE
Germany
Prior art keywords
cache
memory
control unit
data
main memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE3200042A
Other languages
German (de)
Other versions
DE3200042A1 (en
Inventor
Horace H. North Andover Mass. Us Tsiang
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.)
Samsung Electronics Co Ltd
Original Assignee
Wang Laboratories 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 Wang Laboratories Inc filed Critical Wang Laboratories Inc
Publication of DE3200042A1 publication Critical patent/DE3200042A1/en
Application granted granted Critical
Publication of DE3200042C2 publication Critical patent/DE3200042C2/de
Granted 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0857Overlapped cache accessing, e.g. pipeline by multiple requestors

Description

Die Erfindung betrifft eine Datenverarbeitungsanlage mit Cache-Speicher nach dem Oberbegriff des Patentanspruchs 1, insbesondere Verbesserungen in der Speicherzugriff- Verwaltung beim Betrieb einer derartigen Datenverarbeitungsanlage.The invention relates to a data processing system Cache memory according to the preamble of claim 1, in particular improvements in memory access Administration in the operation of such a data processing system.

Die der Erfindung zugrundeliegende Datenverarbeitungsanlage besitzt eine Zentraleinheit (zentrale Prozessoreinheit), einen Hauptspeicher (Arbeits- oder Zentralspeicher), der durch eine Speicher-Steuereinheit gesteuert ist, und eine Anzahl periphere Prozessoren (die Geräte wie Datenstationen, Drucker, Nachrichtenübertragungsgeräte od. dgl. betreiben). Die Datenverarbeitungsanlage besitzt ferner einen Cache-Speicher. Ein Cache-Speicher ist ein sehr schneller Speicher, der der Zentraleinheit räumlich zugeordnet ist und eine zeitveränderliche Untermenge des Inhaltes des Hauptspeichers enthält.The data processing system on which the invention is based has a central unit (central processor unit), a main memory (working or central memory), which is controlled by a memory control unit, and a number of peripheral processors (the devices such as data stations, Operate printers, communication devices or the like). The data processing system also has one Cache memory. A cache is a very fast one Memory that is spatially assigned to the central unit and a time-varying subset of the content of the main memory contains.

Ein Cache-Speicher kann die mittlere Speicherzugriffszeit für die Zentraleinheits-Speicheroperationen beträchtlich verringern, da ein sehr hoher Anteil vom Speicherlesen durch den sehr schnellen Cache-Speicher erfüllt werden kann. Für einen kleineren Anteil von Speicherleseversuchen muß die Operation der Zentraleinheit angehalten werden, um die angeforderten Daten aus dem Hauptspeicher zu holen. Bei der beschriebenen Datenverarbeitungsanlage wird der Cache-Speicher direkt durch die Zentraleinheit gelesen und wird in den Cache-Speicher durch eine Cache-Schreibschaltung auf ein Cachespeicher-Verfehlen oder eine Zentraleinheits-Hauptspeicher- Schreiboperation hin geschrieben. Die peripheren Prozessoren lesen und schreiben den bzw. in den Hauptspeicher über die Speicher-Steuereinheit, ohne jedoch den Cache-Speicher zu lesen oder in ihn zu schreiben, was den Zentraleinheits- Operationen vorbehalten bleibt.A cache memory can be the average memory access time considerable for the central unit storage operations decrease because a very high proportion of memory read can be fulfilled by the very fast cache memory. For a smaller proportion of memory read attempts, the Operation of the central processing unit to be stopped to get the requested data from the main memory. In the described data processing system is the cache memory read directly by the central unit and is in the Cache memory by a cache write circuit on Cache miss or a central processing unit main memory Write operation written out. The peripheral processors read and write to or into the main memory via the memory control unit, but without the cache memory  to read or write in it what the central unit Operations reserved.

Beim Betrieb eines derartigen Cache-Speichers treten insbesondere drei Schwierigkeiten auf, die sämtlich die Operations- Geschwindigkeit der Datenverarbeitungsanlage verringern.When operating such a cache memory occur in particular three difficulties, all of which Reduce the speed of the data processing system.

Erste Schwierigkeit: Obwohl die peripheren Prozessoren nicht in den Cache-Speicher schreiben, wenn sie in eine Lage im Hauptspeicher schreiben, muß der Cache-Speicher überprüft werden um herauszufinden, ob der Inhalt der betreffenden Hauptspeicher-Lage in den Cache-Speicher übertragen worden ist, und wenn ja, muß der Cachespeicher-Eintrag ungültig erklärt werden (durch Setzen eines Gültigkeits/ Ungültigkeits-Bits in einen "ungültig" anzeigenden Zustand), da der Eintrag nicht mehr genau dem Inhalt des Hauptspeichers entspricht. Das heißt, zu einem gegebenen Zeitpunkt kann eine Konkurrenzsituation auftreten zwischen der Operation des Versuchs, den Cache-Speicher zu lesen, und der Operation des Versuchs, den Cachespeicher-Inhalt nach einer Schreiboperation bezüglich peripheren Prozessor und Hauptspeicher zu prüfen (Identifizierungskennzeichen-Prüfung).First difficulty: Although the peripheral processors do not write to cache if they are in a The cache memory must write the position in the main memory be checked to find out if the content of the subject Main memory location transferred to the cache memory has been, and if so, the cache entry be declared invalid (by setting a validity / Invalid bits in an "invalid" indicating State), since the entry is no longer exactly the content of the Main memory corresponds. That is, at a given time there may be a competitive situation between the surgery attempting to read the cache and the operation attempting to cache the content after a write operation regarding peripheral processor and main memory check (identifier check).

Zweite Schwierigkeit: Da der Cache-Speicher nicht gleichzeitig Schreiben und Lesen unterworfen werden kann, kann jederzeit eine Konkurrenzsituation zwischen der Zentraleinheit, die den Cache-Speicher zu lesen versucht, und der Cachespeicher-Schreiblogik, die versucht, in den Cache- Speicher auf ein vorhergehendes Cachespeicher-Verfehlen hin zu schreiben (um den Cache-Speicher fortzuschreiben), bestehen. Es kann auch eine Konkurrenzsituation bestehen, wenn die Cachespeicher-Schreiblogik versucht, ein Ungültigkeitsbit zu schreiben, nachdem eine vorhergehende Identifizierungskennzeichen-Prüfung einen Zustand der Identifizierungskennzeichen- Übereinstimmung ergeben hat.Second difficulty: Because the cache is not simultaneously Can be subjected to writing and reading a competitive situation between the central unit at all times, which tries to read the cache memory, and the cache write logic that is trying to cache Memory on a previous cache miss write there (to update the cache), consist. There can also be a competitive situation when the cache write logic tries to Write invalid bit after a previous one  Identification check a state of identification- Has matched.

Dritte Schwierigkeit: Jederzeit kann eine Konkurrenzsituation auftreten, wenn die Zentraleinheit versucht, den Cache- Speicher zu lesen, während die Speicher-Steuereinheit in den Cache-Speicher schreibt, um ihn fortzuschreiben nach einem vorhergehenden Schreiben der Zentraleinheit in den Hauptspeicher.Third difficulty: A competitive situation can arise at any time occur when the CPU tries to cache Read memory while the memory control unit is in writes the cache memory to update it after a previous letter from the central unit in the Main memory.

Bei bekannten Datenverarbeitungsanlagen wird der Cache- Speicher folgendermaßen betrieben:In known data processing systems, the cache Storage operated as follows:

  • (1) Organisations-(overhead-)Zeit muß zur Bereinigung der Konkurrenzsituation aufgewendet werden, insbesondere bei der ersten Schwierigkeit;(1) Organization (overhead) time must be used to clean up the Competitive situation, especially with the first difficulty;
  • (2) beim Cachespeicher-Fortschreiben nach einem vorhergehenden Cachespeicher-Verfehlen muß die Zentraleinheit angehalten werden während eines Cachespeicher-Zyklus, der zum Fortschreiben des Cachespeicher-Inhaltes bestimmt ist, und(2) in cache update after a previous one The CPU must stop cache misses are during a cache cycle that is going to Updating the cache content is determined, and
  • (3) muß die Zentraleinheit angehalten werden während Speicher- Zyklen, die zum Fortschreiben des Cachespeicher-Inhaltes nach einem Zentraleinheits-Schreiben bestimmt sind.(3) the CPU must be stopped while the memory Cycles used to update the cache content are determined according to a central unit letter.

Alle diese Konkurrenzsituationen verursachen Verzögerungen im Speicher-Zugriff und beeinträchtigen daher die Operation der Zentraleinheit. All of these competitive situations cause delays in memory access and therefore affect the operation the central unit.  

Bekannt sind zudem Datenverarbeitungs-Anlagen nach dem Oberbegriff von Anspruch 1:Data processing systems according to the preamble of claim 1 are also known:

  • - US 42 08 716 (Porter):
    Im Fall von Konflikten beim Zugriff auf den Cache-Speicher wird eine möglichst kurze Zugriffszeit garantiert, indem der Cachespeicher-Operationszyklus in zwei Unterzyklen unterteilt wird, und
    - US 42 08 716 (Porter):
    In the event of conflicts when accessing the cache memory, the shortest possible access time is guaranteed by dividing the cache memory operation cycle into two sub-cycles, and
  • - FR-OS 24 19 561 (IBM):
    der Cache-Zyklus wird während eines Prozessor-Zyklus ebenfalls in zwei Unterzyklen aufgeteilt.
    - FR-OS 24 19 561 (IBM):
    the cache cycle is also divided into two sub-cycles during a processor cycle.

Aufgabe der Erfindung ist es daher, bei einer Datenverarbeitungsanlage der eingangs genannten Art im Fall von Konflikten beim Zugriff auf den Cache-Speicher in neuartiger Weise eine möglichst geringe Zugriffszeit zu sichern, d. h., beim Cache-Speicher die Prozessor-Operationsgeschwindigkeit zu maximieren, indem der Prozessor sicher Daten und Befehle vom Cache-Speicher während jedes Cachespeicher-Operationszyklus empfangen kann, d. h., ein kontinuierlicher Daten- und Befehlsfluß zum Prozessor gesichert ist.The object of the invention is therefore in a data processing system of the type mentioned in the event of conflicts when accessing the cache memory in a new way to ensure the shortest possible access time, d. i.e., to maximize processor operation speed in cache memory, by keeping the processor secure data and instructions from the cache memory can receive during each cache operation cycle, d. i.e., a continuous flow of data and instructions to the processor is assured.

Die erfindungsgemäße Lösung dieser Aufgabe erfolgt durch die Lehre nach dem kennzeichnenden Teil des Patentanspruchs 1.The solution to this problem according to the invention takes place through the teaching according to the characterizing part of patent claim 1.

Ein Cache-Speicher besitzt im allgemeinen einen Operationszyklus von gleicher Länge wie der Speicheroperations-Mikrobefehl-Zyklus der Zentraleinheit. Bei der erfindungsgemäßen Datenverarbeitungsanlage ist der Cachespeicher-Operationszyklus in an sich bekannter Weise in zwei Unterzyklen aufgeteilt, die jedoch erfindungsgemäß gegenseitig sich ausschließenden Operationen zugeordnet sind. A cache memory generally has an operation cycle of the same length as the central processing unit's memory operation microinstruction cycle. In the case of the invention Data processing system is the cache memory operation cycle in a known manner Way divided into two sub-cycles, but according to the invention mutually negative operations are assigned.  

Der erste Unterzyklus ist zugeordnet dem Empfang einer Zentraleinheits-Speicherlese- Anforderung mit ihrer Adresse.The first subcycle is assigned to the receipt of a central processing unit memory read Request with your address.

Der zweite Unterzyklus ist jeder anderen Art Cachespeicher-Operation zugeordnet. Diese sind insbesondere entweder (a) Empfang einer Adresse von einem peripheren Prozessor zum Prüfen des Cachespeicher-Inhaltes nach dem Schreiben durch einen peripheren Prozessor in den Hauptspeicher oder (b) das Schreiben irgendwelcher Daten in den Cache-Speicher einschließlich eines Ungültigkeits-Bits nach einem Cachespeicher-Prüf- Übereinstimmungszustand oder von Daten nach entweder einem Cachespeicher-Verfehlen oder einem Zentraleinheits-Schreiben in den Hauptspeicher. Auf diese Weise wird die Konkurrenzsituation aufgehoben, so daß organisatorische Zeit nicht zur Lösung der Konkurrenzsituation aufgewendet werden muß, und werden Schreib-Operationen "transparent" für die Zentraleinheit, die den Cache-Speicher liest. Von der Zentraleinheit aus gesehen, ist der Cache-Speicher immer für Lese-Operationen verfügbar. Die Zentraleinheit kann ununterbrochen fortfahren, den Cache-Speicher bei aufeinanderfolgenden Zentraleinheits-Mikrobefehls-Zyklen zu lesen, und zwar unabhängig davon, daß der Cachespeicher-Inhalt "gleichzeitig" geprüft, ungültig erklärt oder fortgeschrieben wird nach Zentraleinheits-Schreiben. Nach einem Cachespeicher-Verfehlen kann sie, obwohl die Zentraleinheit angehalten werden muß, um ein Fortschreiben zu gestatten, Operationen einen Zyklus früher aufnehmen, als es ohne den unterteilten Cachespeicher-Zyklus möglich gewesen wäre.The second sub-cycle is associated with every other type of cache operation. In particular, these are either (a) receiving an address from a peripheral Processor for checking the cache content after writing by one peripheral processor into main memory or (b) writing any data into the cache including an invalid bit after a cache check Match state or data after either a cache miss or a CPU write to main memory. In this way the Competitive situation eliminated so that organizational time does not solve the Competitive situation must be expended, and will be write operations "transparent" for the central processing unit that reads the cache memory. From the central unit as seen, the cache is always available for read operations. The CPU can continue to cache for successive CPU read microinstruction cycles regardless of that Cache content is checked "simultaneously", declared invalid or updated after central unit letter. After a cache miss, it can, though the CPU must be stopped to allow operations to continue Record a cycle earlier than without the split cache cycle would have been possible.

Die von der Erfindung geschaffene Speicher-Verwaltung ist besonders schaltungswirtschaftlich, was sowohl Kosten als auch Raumbedarf verringert. The memory management created by the invention is special circuit economically, which reduces both costs and space requirements.  

Vorteilhafte Ausgestaltungen der Erfindung sind in den Unteransprüchen angegeben.Advantageous embodiments of the invention are in the Subclaims specified.

Anhand der Zeichnung wird die Erfindung beispielsweise näher erläutert. Es zeigtWith the aid of the drawing, the invention will be explained, for example explained. It shows

Fig. 1 ein vereinfachtes Blockschaltbild eines Datenverarbeitungssystems mit einer erfindungsgemäßen Datenverarbeitungsanlage, Fig. 1 is a simplified block diagram of a data processing system according to the invention with a data processing system,

Fig. 2 die Daten- und Adreß-Wege durch die Datenverarbeitungsanlage, Fig. 2, the data and address paths through the data processing system,

Fig. 3 bestimmte Merkmale der Zentraleinheit der Datenverarbeitungsanlage, Fig. 3 certain features of the central unit of the data processing system,

Fig. 4-9 die Formate verschiedener Daten und Adressen, die erfindungswesentlich sind, Fig. 4-9, the formats of various data and addresses that are essential to the invention,

Fig. 10 Merkmale des Steuer-Speichers, Fig. 10 Characteristics of the control memory,

Fig. 11 den Haupttaktgeber, Fig. 11 shows the master clock,

Fig. 12 grundlegende System-Taktsignale, erzeugt durch den Haupttaktgeber von Fig. 11, Fig. 12 basic system clock signals generated by the master clock generator of Fig. 11,

Fig. 13 einen Teil des Cache-Speichers, vorgesehen für Adreß-Funktionen, Fig. 13 shows a part of the cache memory, are provided for address functions,

Fig. 14 einen Teil des Cache-Speichers, vorgesehen für Datenspeicherung, Fig. 14 shows a part of the cache memory, provided for storing data,

Fig. 15 bestimmte Teile des Cache-Speichers, vorgesehen für Speicher-Steuerung und andere Steuer-Funktionen, Fig. 15, certain parts of the cache memory are provided for memory control and other control functions,

Fig. 16 Teile der Schaltung für Speicherzugriff- Priorität, FIG. 16 parts of the circuit for memory access priority,

Fig. 17 eine Cachespeicher-Schaltung zur Erzeugung eines Steuersignals für Speicheroperationen peripherer Prozessoren, Fig. 17 is a cache memory circuit for generating a control signal for memory operations of peripheral processors,

Fig. 18 eine Schaltung des Cache-Speichers zur Verwendung bestimmter Steuer- Speicher-Signale durch den Cache- Speicher, Fig. 18 is a circuit of the cache memory to use certain control store signals by the cache memory,

Fig. 19 den Hauptspeicher, Fig. 19 to the main memory,

Fig. 20 die Cachespeicher-Schreiblogik und Fig. 20, the cache write logic and

Fig. 21-23 Signal-Zeit-Diagramme, die Teile der Operation der erfindungsgemäßen Datenverarbeitungsanlage darstellen.Represent Fig. 21-23 signal timing diagrams, the parts of the operation of the data processing system according to the invention.

In Fig. 1 ist das gesamte Datenverarbeitungssystem vereinfacht dargestellt. Eine Datenverarbeitungsanlage 10 besitzt eine Zentraleinheit (CP) 12, einen Steuer-Speicher 14 und einen Haupttaktgeber 20. Ferner sind vorgesehen ein Hauptspeicher 16, zu dem der Zugriff durch eine Speicher- Steuereinheit 18 gesteuert wird. Verschiedene periphere Geräte (Datenstationen, Drucker, Platten, Bänder, Nachrichtenübertragungsgeräte od. dgl.) sind an die Datenverarbeitungsanlage 10 angeschlossen und bilden mit ihr das Datenverarbeitungssystem.The entire data processing system is shown in simplified form in FIG. 1. A data processing system 10 has a central processing unit (CP) 12 , a control memory 14 and a main clock 20 . A main memory 16 , to which access is controlled by a memory control unit 18 , is also provided. Various peripheral devices (data stations, printers, disks, tapes, message transmission devices or the like) are connected to the data processing system 10 and form the data processing system with it.

Jedes periphere Gerät besitzt einen Prozessor, der peripherer Prozessor genannt wird. Verschiedene periphere Prozessoren sind mit einem von Bus-Adaptern 22 verbunden, die ihrerseits an die Speicher-Steuereinheit 18 angeschlossen sind. Es können mehrere Bus-Adapter vorgesehen sein. Die Bus-Adapter 22 dienen dazu, zwischen den 64-bit-Datenleitungen innerhalb der Datenverarbeitungsanlage und den 16-bit-Datenleitungen, die die peripheren Geräte mit der Datenverarbeitungsanlage 10 verbinden, zu puffern. Die Speicher-Steuereinheit 18 verschafft einen Zugriff zum Hauptspeichr 16 für die Zentraleinheit und die peripheren Prozessoren; sie kann auch Befehle von der Zentraleinheit 12 zu den peripheren Prozessoren übertragen in einer nicht erfindungswesentlichen Weise.Each peripheral device has a processor called a peripheral processor. Various peripheral processors are connected to one of bus adapters 22 , which in turn are connected to the memory controller 18 . Several bus adapters can be provided. The bus adapters 22 serve to buffer between the 64-bit data lines within the data processing system and the 16-bit data lines that connect the peripheral devices to the data processing system 10 . The memory control unit 18 provides access to the main memory 16 for the central unit and the peripheral processors; it can also transmit commands from the central processing unit 12 to the peripheral processors in a manner not essential to the invention.

Die Zentraleinheit 12 ist an einen sehr schnellen örtlichen Speicher oder Cache-Speicher 24 angeschlossen, der eine zeitveränderliche Untermenge der im Hauptspeicher gespeicherten Daten enthält. Der Cache-Speicher 24 ist auch an die Speicher-Steuereinheit 18 angeschlossen. Der beim bevorzugten Ausführungsbeispiel eingesetzte besondere Cache- Speicher ist direkt-abgebildet und enthält 32 kbyte. Er benutzt eine "Durchschreibe"-Strategie, d. h., der Cache- Speicher wird jedesmal fortgeschrieben, wenn die Zentraleinheit in den Hauptspeicher einschreibt. The central unit 12 is connected to a very fast local memory or cache memory 24 which contains a time-varying subset of the data stored in the main memory. The cache 24 is also connected to the memory controller 18 . The special cache memory used in the preferred exemplary embodiment is directly mapped and contains 32 kbytes. It uses a "write-through" strategy, that is, the cache is updated every time the CPU writes to main memory.

Der Cache-Speicher 24, der Hauptspeicher 16 und die Speicher- Steuereinheit 18 bilden zusammen den physischen (realen) Speicher der Datenverarbeitungsanlage.The cache memory 24 , the main memory 16 and the memory control unit 18 together form the physical (real) memory of the data processing system.

Die Daten- und Adreß-Wege durch das Datenverarbeitungssystem sind genauer in Fig. 2 gezeigt. Die Zentraleinheit 12 besitzt einen 24-bit-Adreß-Bus 26, der die Adreß- Leitungen, die mit dem mnemotechnischen "MA (für "Memory Address", Speicheradresse) 0-23" bezeichnet sind, zum Cache- Speicher 24 führt. Die Zentraleinheit 12 hat einen 32- bit-Dateneingabe-Bus 28, der die Datenleitungen, bezeichnet mit dem mnemotechnischen "MM (für "Main Memory", Hauptspeicher) 0-31", führt, und einen 32-bit-Datenausgabe-Bus 30, der die Datenleitungen, bezeichnet mit dem mnemotechnischen "WD (für "Write Data", Schreib-Daten) 0-31", führt.The data and address paths through the data processing system are shown in more detail in FIG . The central unit 12 has a 24-bit address bus 26 , which leads the address lines, which are designated with the mnemonic "MA" (for "Memory Address", memory address) 0-23 ", to the cache memory 24 . The central processing unit 12 has a 32-bit data input bus 28 which carries the data lines, designated with the mnemonic "MM (for" Main Memory "0-31"), and a 32-bit data output bus 30 , which carries the data lines, designated with the mnemonic "WD (for" Write Data "0-31").

Zum Cache-Speicher 24 sind die Adreß-Leitungen MA 0-23 im Bus 26 von der Zentraleinheit 12 zugeführt, und zusätzlich ist er mit einem Bus 32 verbunden, der Adreß-Leitungen, bezeichnet mit dem mnemotechnischen "BMA (für "Bus Adapter Memory Address", Bus-Adapter-Speicher-Adresse) 0-23", vom Bus-Adapter 22 führt. Diese Adreß-Information wird verwendet, um die Information im Cache-Speicher auf dem laufenden zu halten, wenn entsprechende Information im Hauptspeicher durch einen der peripheren Prozessoren geändert wird, wie im folgenden genauer beschrieben werden wird.The address lines MA 0-23 in the bus 26 are fed from the central unit 12 to the cache memory 24 , and in addition it is connected to a bus 32 , the address lines, designated with the mnemonic "BMA" (for "bus adapter memory Address ", bus adapter memory address) 0-23", from the bus adapter 22 leads. This address information is used to keep the information in the cache up to date when corresponding information in the main memory is changed by one of the peripheral processors, as will be described in more detail below.

Der Cache-Speicher 24 ist mit einem Ausgangs-Adreß-Bus 34 verbunden, der Adreß-Leitungen, bezeichnet mit dem mnemotechnischen "CMA (für "Cache Memory Address", Cachespeicher- Adresse) 0-23", zur Speicher-Steuereinheit 18 führt. Ferner ist der Cache-Speicher 24 mit einem Bus 36 verbunden, der die Adreß-Leitungen, bezeichnet mit dem mnemotechnischen "BMAR (für "Buffered Memory Address Register", gepuffertes Speicher-Adreß-Register) 3-20″, zum Hauptspeicher 16 führt. The cache memory 24 is connected to an output address bus 34 , which leads address lines, designated by the mnemonic "CMA (for" cache memory address ", cache memory address) 0-23", to the memory control unit 18 . Furthermore, the cache memory 24 is connected to a bus 36 , which leads the address lines, designated by the mnemonic "BMAR (for" Buffered Memory Address Register ", buffered memory address register) 3-20", to the main memory 16 .

Der Cache-Speicher 24 hat einen Dateneingabe-Bus und einen Datenausgabe-Bus. Der Dateneingabe-Bus 38 führt die Daten- Leitungen von der Speicher-Steuereinheit 18, bezeichnet durch die mnemotechnischen "CAWD (für "Cache Write Data", Cachespeicher-Schreib-Daten) 0-63". Der Daten-Bus 38 wird durch die Speicher-Steuereinheit 18 benutzt, um Daten in den Cache-Speicher nach einem Cachespeicher-Verfehlen zu schreiben oder auf ein Schreiben der Zentraleinheit in den Hauptspeicher hin, wie im folgenden genauer erläutert werden wird. Der Bus 38 wird auch in einer nicht erfindungswesentlichen Weise benutzt, um Daten zum Bus-Adapter 22 zu übertragen. Die Datenausgabe-Bus 40 führt die Datenleitungen vom Cache-Speicher 24, bezeichnet durch mnemotechnischen MM 0-31, als Eingang in die Zentraleinheit 12 auf dem Bus 28. Ein Daten-Bus 40 liefert Daten an die Zentraleinheit 12 nach einem Cachespeicher-Treffen auf eine Zentraleinheits-Lese-Anforderung hin, wie noch genauer beschrieben werden wird.Cache 24 has a data input bus and a data output bus. The data entry bus 38 carries the data lines from the memory controller 18 , designated by the mnemonic "CAWD (for" cache write data "0-63"). The data bus 38 is used by the memory controller 18 to write data to the cache after a cache miss or upon a central unit write to the main memory, as will be explained in more detail below. The bus 38 is also used in a manner not essential to the invention to transmit data to the bus adapter 22 . The data output bus 40 carries the data lines from the cache memory 24 , denoted by mnemonic MM 0-31, as an input to the central unit 12 on the bus 28 . A data bus 40 provides data to the CPU 12 after a cache meeting upon a CPU read request, as will be described in more detail.

Der Hauptspeicher 16 empfängt die Adreß-Leitungen BMAR 3-20 vom Cache-Speicher 24, wie vorher beschrieben, über den Bus 36 zusammen mit Speichermodul-Wähl-Signalen, die nicht gezeigt und nicht erfindungswesentlich sind. Der Hauptspeicher 16 besitzt einen 64-bit-Dateneingabe-Bus 42, der mit der Speicher-Steuereinheit 18 verbunden ist und die Daten- Leitungen, bezeichnet durch die mnemotechnischen "MMWD (für "Main Memory Write Data", Hauptspeicher-Schreib-Daten) 0-63", führt. Alle in den Hauptspeicher 16 eingeschriebenen Daten werden auf dem Bus 42 eingegeben. Der Hauptspeicher 16 besitzt einen 64-bit-Datenausgabe-Bus 44, der mit der Speicher-Steuereinheit 18 verbunden ist und die Daten-Leitungen, bezeichnet durch die mnemotechnischen "MMRD (für "Main Memory Read Data", Hauptspeicher-Lese-Daten) 0-63", führt. Alle aus dem Hauptspeicher 16 gelesenen Daten werden auf dem Bus 44 ausgelesen. The main memory 16 receives the address lines BMAR 3-20 from the cache memory 24 , as previously described, via the bus 36 together with memory module select signals, which are not shown and are not essential to the invention. The main memory 16 has a 64-bit data input bus 42 which is connected to the memory control unit 18 and the data lines, designated by the mnemonic "MMWD (for" Main Memory Write Data ", main memory write data) 0-63 ". All data written into the main memory 16 are entered on the bus 42 . The main memory 16 has a 64-bit data output bus 44 which is connected to the memory control unit 18 and the data lines, designated by the mnemonic "MMRD (for" Main Memory Read Data ", main memory read data) 0-63 ". All data read from the main memory 16 are read out on the bus 44 .

Der Bus-Adapter 22 gibt Adreß-Bits an den Cache-Speicher 24 über den vorher beschriebenen Bus 32 auf Speicherzugriff- Anforderungen der peripheren Prozessoren in einer nicht erfindungswesentlichen Weise ab. Der Bus-Adapter 22 besitzt einen 64-bit-Datenausgabe-Bus 46, der mit der Speicher- Steuereinheit 18 verbunden ist und die Daten-Leitungen, bezeichnet durch die mnemotechnischen "BARD (für "Bus Adapter Read Data", Bus-Adapter-Lese-Daten) 0-63", führt, und einen 64-bit-Dateneingabe-Bus 48, der über einen Puffer 50 mit dem Bus 38 verbunden ist und die Daten-Leitungen, bezeichnet durch die mnemotechnischen "BAWD (für "Bus Adapter Write Data", Bus-Adapter-Schreib-Daten) 0-63", führt. Es sei darauf hingewiesen, daß "Bus Adapter Read Data" sich auf Daten bezieht, die aus dem peripheren Prozessor in den Hauptspeicher 16 gelesen werden, während "Bus Adapter Write Data" sich auf Daten bezieht, die aus dem Hauptspeicher 16 ausgelesen und in einen peripheren Prozessor geschrieben werden.The bus adapter 22 issues address bits to the cache memory 24 via the previously described bus 32 for memory access requests of the peripheral processors in a manner not essential to the invention. The bus adapter 22 has a 64-bit data output bus 46 which is connected to the memory control unit 18 and the data lines, designated by the mnemonic "BARD (for" Bus Adapter Read Data ", bus adapter Read data) 0-63 ", and a 64-bit data input bus 48 , which is connected via a buffer 50 to the bus 38 and the data lines, designated by the mnemonic" BAWD (for "bus adapter Write Data ", bus adapter write data) 0-63", leads. It should be noted that "bus adapter read data" refers to data read from the peripheral processor into main memory 16 , while "bus adapter write data" refers to data read from main memory 16 and into one peripheral processor can be written.

Außerdem gibt der Bus-Adapter 22 bestimmte Steuersignale an den Cache-Speicher 24 ab. Diese sind MRBA ("Bus Adapter Memory Request Signal", Bus-Adapter-Speicher-Anforder-Signal) und BAC 0-2 ("Bus Adapter Control Signals", Bus-Adapter- Steuersignale). Die BAC-0-2-Signale werden im Cache- Speicher nach Zweckmäßigkeit durchgeschaltet; in ihrer durchgeschalteten Form heißen sie BBAC 0-2.In addition, the bus adapter 22 issues certain control signals to the cache memory 24 . These are MRBA ("bus adapter memory request signal") and BAC 0-2 ("bus adapter control signals"). The BAC-0-2 signals are switched through in the cache memory for convenience; in their interconnected form they are called BBAC 0-2.

Die Speicher-Steuereinheit 18 empfängt, wie bereits beschrieben, Daten über den Bus 44 vom Hauptspeicher 16, über den Bus 46 vom Bus-Adapter 22 oder über den Bus 30 von der Zentraleinheit 12. Die Speicher-Steuereinheit 18 empfängt Adreß-Daten auf dem Bus 34 vom Cache-Speicher 24. Die Speicher- Steuereinheit 18 gibt Daten auf dem Bus 38 an den Cache- Speicher 24 und an einen Daten-Signalspeicher 50 zur Ausgabe an den Bus-Adapter 22 ab. Die Speicher-Steuereinheit 18 gibt ferner Daten an die Zentraleinheit 12 (über einen Schalter 54) auf dem Bus 52 ab, der die Daten-Leitungen, bezeichnet mit dem mnemotechnischen "DIRD (für "Diagnostic oder Read Data", Diagnose oder Lesen von Daten) 0-31, führt. Bei einem Hauptspeicher-Lesen nach einem Cachespeicher- Verfehlen, wie noch genauer erläutert werden wird, gestattet ein Verfehlen-Erweitert-Signal, abgeleitet aus den Cachespeicher-Verfehlen-Zustand in noch zu beschreibender Weise, daß die Daten aus dem Bus 52 über den Signalspeicher 54 zum Bus 28 und damit zur Zentraleinheit gelangen.As already described, the memory control unit 18 receives data via the bus 44 from the main memory 16 , via the bus 46 from the bus adapter 22 or via the bus 30 from the central unit 12 . The memory controller 18 receives address data on the bus 34 from the cache memory 24 . The memory control unit 18 outputs data on the bus 38 to the cache memory 24 and to a data signal memory 50 for output to the bus adapter 22 . The memory control unit 18 also outputs data to the central unit 12 (via a switch 54 ) on the bus 52 , which identifies the data lines with the mnemonic "DIRD" (for "Diagnostic or Read Data", diagnosis or reading of data) ) 0-31, In a main memory read after a cache miss, as will be explained in more detail, an miss extended signal derived from the cache miss condition allows the data to be described in a manner yet to be described get from the bus 52 via the signal memory 54 to the bus 28 and thus to the central unit.

Ausweislich Fig. 3 sind nur zwei Baugruppen in der Zentraleinheit 12 erfindungswesentlich. Diese sind ein Speicherdaten-Register 56, das Daten über die Leitungen des Busses 28 (MM 0-31) empfängt, und ein Speicheradreß-Register 58, das (nicht erfindungswesentlich) mit den Adressen geladen wird, die über den Bus 26 (MA 0-23) an den Cache-Speicher abzugeben sind.As evidenced by FIG. 3, only two components in the central processing unit 12 essential to the invention. These are a memory data register 56 which receives data via the lines of the bus 28 (MM 0-31) and a memory address register 58 which (not essential to the invention) is loaded with the addresses which are transmitted via the bus 26 (MA 0 -23) are to be submitted to the cache memory.

Wenn die Zentraleinheit nicht angehalten ist (d. h., wenn das Signal STCP-Invers hoch ist; die Gewinnung dieses Signals wird im folgenden beschrieben werden), werden die Adreß-Signale aus dem Speicheradreß-Register 58 zum Cache-Speicher 24 zur Zeit L0 übertragen (die Taktsignale einschließlich L0 werden anhand von Fig. 12 erläutert werden).If the central processing unit is not stopped (ie if the STCP inverse signal is high; the extraction of this signal will be described below), the address signals are transferred from the memory address register 58 to the cache memory 24 at time L 0 (The clock signals including L 0 will be explained with reference to Fig. 12).

In Fig. 4-9 sind verschiedene Formate von Daten und Adressen gezeigt, die für den Betrieb der Datenverarbeitungsanlage wesentlich sind.In Fig. 4-9 different formats of data and addresses are shown that are essential for the operation of data processing system.

Fig. 4 zeigt ein Daten-Byte, das 8 bit besitzt. Fig. 5 zeigt ein Daten-Wort, das aus 4 byte oder 32 bit besteht. Fig. 6 zeigt ein Doppelwort, das aus einem geraden Wort und einem ungeraden Wort besteht, die jeweils 32 bit besitzen. Die Daten werden im Hauptspeicher als Doppelwort-Einheiten gespeichert. Fig. 4 shows a data byte that has 8 bits. Fig. 5 is a data word indicates the byte 4 or consists of 32 bit. Fig. 6 shows a double word consisting of an even word and an odd word, each having 32 bits. The data are stored in the main memory as double word units.

In Fig. 7 ist eine physische Adresse von 24 bit gezeigt, wie sie vom Hauptspeicher gesehen wird; die Adresse besitzt eine 12-bit-Seitenrahmen-Nummer (die um zwei erweiterbar ist, falls der Speicher erweitert wird) und einen 11-bit-Relativzeiger, der das Byte innerhalb der Seite lokalisiert. Figure 7 shows a 24 bit physical address as seen from main memory; the address has a 12-bit page frame number (which can be expanded by two if the memory is expanded) and an 11-bit relative pointer that locates the byte within the page.

Fig. 8 zeigt dieselbe physische Adresse von 24 bit, wie sie vom Cache-Speicher übersetzt wird; die Adresse besitzt ein 9-bit-Identifizierungskennzeichen und einen 12-bit- Index. Die niederwertigen beiden Bits sind ignoriert, da sie verwendet werden, um ein Byte innerhalb eines Wortes auszuwählen, während der Cache-Speicher immer ein Wort zur Zentraleinheit überträgt, die dann das spezielle Byte auswählen muß, das gesucht ist. Das dritte Bit von rechts wählt das gerade oder ungerade Wort eines Doppelwort-Paares aus. Figure 8 shows the same 24-bit physical address as translated by the cache memory; the address has a 9-bit identifier and a 12-bit index. The least significant two bits are ignored because they are used to select a byte within a word, while the cache always transfers a word to the central processing unit, which then has to select the particular byte that is sought. The third bit from the right selects the even or odd word of a double word pair.

Fig. 9 zeigt das Format von Daten, wie sie im Cache- Speicher gespeichert sind. Die geraden und ungeraden Wörter eines Doppelwort-Paares werden zusammen mit dem 9-bit-Identifizierungskennzeichen für jedes gespeichert. Diese gesamte 72-bit-Einheit wird durch den 12-bit-Index der physischen Adresse adressiert. Fig. 9 shows the format of data as it is stored in the cache memory. The even and odd words of a double word pair are stored together with the 9-bit identifier for each. This entire 72-bit unit is addressed by the 12-bit index of the physical address.

Die Verwendung eines Index und eines Identifizierungskennzeichens zum Adressieren eines direkt-abgebildeten Cache- Speichers ist für sich in der Technik der Datenverarbeitungsanlagen gut bekannt. Vergleiche zu den Grundsätzen der Verwaltung von Cache-Speichern z. B. Computer Engineering von Bell, Mudge und McNamara (Digital Press, 1978). The use of an index and an identifier to address a directly mapped cache Storage is in itself in the technology of data processing systems well known. Compare to the principles of administration of cache memories e.g. B. Computer Engineering from Bell, Mudge and McNamara (Digital Press, 1978).  

Gemäß Fig. 10 enthält der Steuer-Speicher 14 Steuersignale, zu denen der Zugriff in Gruppen von achtundvierzig Signalen am Ausgang auf achtundvierzig parallelen Leitungen erfolgt. Das Signal auf jeder Leitung kann entweder hoch (1) oder niedrig (0) sein und wird direkt in die Hardware-Schaltung der Zentraleinheit 12 zur Steuerung von dessen Operation eingespeist.Referring to FIG. 10 of the control memory 14 contains control signals, which are accessed in groups of eight signals at the output on eight parallel lines. The signal on each line can be either high (1) or low (0) and is fed directly into the hardware circuitry of the CPU 12 to control its operation.

Von den achtundvierzig Signalen auf den Leitungen, die einen Mikrobefehl darstellen, sind nur bestimmte wesentlich. Dies sind die Signale 0-6 ("Mikro-Opcode" genannt), die als eine Gruppe decodiert werden, um eines einer Anzahl Signale zu ergeben, die den auszuführenden Betrieb anzeigen (wie Addieren, Bewegen, Vergleichen, Verschieben), und Signale 22-29, die als eine Gruppe decodiert werden, um eines einer Anzahl Signale zu ergeben, die eine Speicher-Operation anzeigen (Lesen oder Schreiben mit Einzelheiten der Speicheradreß-Register-Ansteuerung, Speicherdaten- Register-Ansteuerung und andere nicht erfindungswesentliche Vorgänge). Diese Signale sind in Fig. 2 als "Speichersteuer-Signale" angegeben. Bestimmte der Steuersignale, zu denen der Zugriff durch die Zentraleinheit erfolgt, werden direkt von der Zentraleinheit in den Cache-Speicher und die Speicher-Steuereinheit eingespeist, wie noch genauer erläutert werden wird. Der Zugriff zu und das Decodieren von derartigen Gruppen von Steuersignalen (Mikrobefehlen) beim Betrieb einer Datenverarbeitungsanlage ist für sich gut bekannt, so daß sich hier eine Beschreibung erübrigt.Of the forty-eight signals on the lines that represent a microinstruction, only certain are significant. These are signals 0-6 (called "micro opcode") which are decoded as a group to give one of a number of signals indicating the operation to be performed (such as adding, moving, comparing, shifting) and signals 22 -29, which are decoded as a group to give one of a number of signals indicative of a memory operation (read or write with details of memory address register drive, memory data register drive and other non-invention operations). These signals are indicated in Fig. 2 as "memory control signals". Certain of the control signals which are accessed by the central processing unit are fed directly from the central processing unit into the cache memory and the memory control unit, as will be explained in more detail. The access to and the decoding of such groups of control signals (microinstructions) when operating a data processing system is well known per se, so that a description is not necessary here.

In Fig. 11 sind einschlägige Teile des System- Haupttaktgebers 20 gezeigt. Der Haupttaktgeber für die Datenverarbeitungsanlage ist von einem 50-MHz-Kristall angesteuert, dessen Ausgangssignal in eine Takterzeugungs-Schaltung 60 eingespeist wird, die in für sich gut bekannter Weise geeignete Taktsignale für das System erzeugt. Das grundlegende Taktsignal (CLOCK) besitzt eine Periode von 40 ns und eine 20-ns-Impulsdauer. Die Signale TA, T0, T1, T2; LA, L0, L1, L2; CLOCK und das invertiert CLOCK sind im Signal- Zeit-Diagramm von Fig. 12 dargestellt. Diese Impulse werden in die Zentraleinheit 12 eingegeben.In Fig. 11 the relevant parts of the system master clock 20 are shown. The main clock for the data processing system is controlled by a 50 MHz crystal, the output signal of which is fed into a clock generation circuit 60 , which generates suitable clock signals for the system in a manner known per se. The basic clock signal (CLOCK) has a period of 40 ns and a 20 ns pulse duration. The signals TA, T 0 , T 1 , T 2 ; LA, L 0 , L 1 , L 2 ; CLOCK and the inverted CLOCK are shown in the signal-time diagram of FIG. 12. These pulses are entered into the central processing unit 12 .

Signale LA, L0, L1, L2 sind freischwingend, während Signale TA, T0, T1, T2 von den Operationszuständen in der Zentraleinheit und anderswo abhängen. Ferner können L- und T-Impulse unter noch zu beschreibenden Bedingungen erzeugt werden, sie sind allerdings nicht in Fig. 11 gezeigt und auch nicht erfindungswesentlich.Signals LA, L 0 , L 1 , L 2 are free-swinging, while signals TA, T 0 , T 1 , T 2 depend on the operating states in the central unit and elsewhere. Furthermore, L and T pulses can be generated under conditions to be described, but they are not shown in FIG. 11 and are also not essential to the invention.

Zwei Tast-Signale GT1 und GT2 werden in noch zu beschreibender Weise erzeugt. Das Signal GT1 tastet (gibt frei oder sperrt) die Zentraleinheits-Taktsignale TA und T0, das Signal GT2 tastet die Taktsignale T1 und T2. Der Zentraleinheits- Zyklus beginnt definitionsgemäß mit einem TA-Impuls. Daher kann der Betrieb der Zentraleinheit nach T0 oder nach T2 angehalten werden. Das Signal GT2 ist normalerweise dem Signal GT1 untergeordnet ("slave"), jedoch wird bei Auftreten eines Signals "Verfehlen" in noch zu beschreibender Weise GT2 gesperrt, so daß die Impulse T1 und T2 nicht auftreten, obwohl die Impulse TA und T1 aufgetreten sind.Two touch signals GT 1 and GT 2 are generated in a manner yet to be described. The signal GT 1 samples (releases or blocks) the central unit clock signals TA and T 0 , the signal GT 2 samples the clock signals T 1 and T 2 . By definition, the CPU cycle begins with a TA pulse. Therefore, the operation of the CPU can be stopped after T 0 or after T 2 . The signal GT 2 is normally subordinate to the signal GT 1 ("slave"), but when a signal "miss" occurs GT 2 is blocked in a manner to be described below, so that the pulses T 1 and T 2 do not occur even though the pulses TA and T 1 have occurred.

Die Länge des Mikrobefehls-Zyklus der Zentraleinheit variiert mit der Art des Mikrobefehls. Der Zentraleinheits-Zyklus (beliebiger Länge) beginnt definitionsgemäß mit TA. Die meisten Mikrobefehle, einschließlich derjenigen, die Speicher- Operationen beinhalten und erfindungswesentlich sind, benötigen 160 ns zur Ausführung. Für diese Mikrobefehle bilden die Impulse TA, T0, T1 und T2 den Zyklus, wie aus Fig. 12 ersichtlich ist. Andere Befehle können mehr als 160 ns zur Ausführung benötigen; für derartige Befehle müssen weitere T-Impulse erzeugt werden (T5-T8, nicht gezeigt). Zur Bestimmung der Anzahl der zu erzeugenden T-Impulse werden die Steuersignale 0-6 (der "Mikro-Opcode") des momentanen Mikrobefehls, der die Zentraleinheit 12 steuert, aus der Zentraleinheit 12 in einen Decodierer/Zähler 62 zusammen mit dem Signal CLOCK aus einer Schaltung 60 eingegeben; entsprechend der Art der Operation, wie sie durch den Decodierer bestimmt ist, wird der Zähler gesetzt, und zu einem geeigneten Zeitpunkt wird das Signal "COB" (Zyklus-Ende) erzeugt, um das Ende des Befehls-Zyklus zu markieren. Dieses Signal setzt die Schaltung 60 zurück und läßt den nächsten Zyklus mit einem Impuls TA beginnen.The length of the central unit's microinstruction cycle varies with the type of microinstruction. The central unit cycle (of any length) begins by definition with TA. Most microinstructions, including those that involve memory operations and are essential to the invention, take 160 ns to execute. The pulses TA, T 0 , T 1 and T 2 form the cycle for these microinstructions, as can be seen from FIG . Other commands may take more than 160 ns to execute; further T-pulses must be generated for such commands (T 5 -T 8 , not shown). To determine the number of T-pulses to be generated, the control signals 0-6 (the "micro opcode") of the current microinstruction which controls the central unit 12 are output from the central unit 12 to a decoder / counter 62 together with the signal CLOCK entered into circuit 60 ; according to the type of operation as determined by the decoder, the counter is set and, at an appropriate time, the signal "COB" (end of cycle) is generated to mark the end of the instruction cycle. This signal resets circuit 60 and begins the next cycle with a pulse TA.

Das Signal CLOCK wird direkt in den Cache-Speicher 24 und in die Speicher-Steuereinheit 18 eingespeist, wo eine ähnliche Taktgabeschaltung vorgesehen ist, um synchrone Impulse L und T zu erzeugen. Wenn jedoch die Tastsignale GT1 und GT2 nicht den oben erläuterten bestimmten Verlauf haben, hören die Impulse T im Cache-Speicher und in der Speicher- Steuereinheit nicht auf, wenn die Zentraleinheit angehalten wird.The CLOCK signal is fed directly into the cache 24 and the memory controller 18 , where a similar clock circuit is provided to generate synchronous L and T pulses. However, if the tactile signals GT 1 and GT 2 do not have the particular course explained above, the pulses T in the cache memory and in the memory control unit do not stop when the central processing unit is stopped.

Der Steuerspeicher-Zyklus besitzt dieselbe Länge wie der Lese- oder Schreib-Zyklus der Zentraleinheit, d. h. 160 ns. Er beginnt jedoch definitionsgemäß mit dem Impuls L1 und umfaßt die Impulse L1, L2, LA, L0, was ausweislich Fig. 12 bedeutet, daß der Steuerspeicher-Zyklus um 60 ns gegen den Zentraleinheits-Zyklus versetzt wird. Der Speicher-Steuereinheits-Zyklus ist um 40 ns gegen den Zentraleinheits- Zyklus versetzt und umfaßt die Impulse T0, T1, T2, TA.The control memory cycle has the same length as the read or write cycle of the central unit, ie 160 ns. However, by definition it begins with the pulse L 1 and comprises the pulses L 1 , L 2 , LA, L 0 , which, as shown in FIG. 12, means that the control memory cycle is offset by 60 ns from the central unit cycle. The memory control unit cycle is offset by 40 ns from the central unit cycle and comprises the pulses T 0 , T 1 , T 2 , TA.

Ferner werden gewisse Taktimpulse aus der Zentraleinheit direkt in den Cache-Speicher 24 eingegeben, damit Ereignisse mit bestimmten Ereignissen in der Zentraleinheit synchronisiert werden. Derartige Cachespeicher-Ereignisse können nicht auftreten, wenn die Zentraleinheit angehalten ist, obwohl der Cache-Speicher nicht angehalten ist.Furthermore, certain clock pulses from the central processing unit are input directly into the cache memory 24 so that events are synchronized with specific events in the central processing unit. Such cache events cannot occur when the CPU is stopped even though the cache is not stopped.

Gemäß Fig. 13-15, 17, 18 und 20 besitzt der Cache-Speicher 24 grundsätzlich einen Adreß- Teil (Fig. 13), ferner einen Datenspeicher- und Identifizierungskennzeichenvergleich- Teil (Fig. 14) und verschiedene Steuersignal-Decodierer (Fig. 15, 17, 18 und 20). Die Schaltung von Fig. 16 und Teile der Schaltung von Fig. 15 befinden sich räumlich (physisch) im Cache-Speicher, sind jedoch konzeptionsmäßig Teile der Speicher-Steuereinheit, da ihre Funktionen die Verwaltung des Hauptspeichers betreffen.Referring to FIG. 13-15, 17, 18 and 20, 24 has the cache memory in principle an address part (Fig. 13), further comprising a data storage and Identifizierungskennzeichenvergleich- part (Fig. 14) and various control signal decoder (Fig. 15, 17, 18 and 20). The circuit of Fig. 16 and parts of the circuit of Fig. 15 are physically cached, but are conceptually part of the memory controller since their functions relate to the management of the main memory.

Ausweislich Fig. 18 erreicht die (nicht in dieser Figur gezeigte) Zentraleinheits-Adresse den Cache-Speicher 24 zusammen mit den Steuersignalen CM 22-29 der 48-Signal- Gruppe, die den momentanen Zentraleinheits-Betrieb steuert. Wie bereits beschrieben worden ist, sind die Steuersignale 22-29 Speicherzugriff-Steuersignale, die die Art der an der durch die Zentraleinheit angegebenen Adresse auszuführenden Speicheroperation steuern. Zur einfacheren Verwendung im Cache-Speicher 24 werden verschiedene dieser Signale verzögert durch Schalten oder Puffern, und die verzögerten Signale sind mit "CCM", "BCM", "LCM" oder "MCM" entsprechend ihrer Verzögerung bezeichnet, wie aus der Figur ersichtlich ist.As evidenced by Fig. 18 (not shown in this figure) reaches the central processing unit address the cache memory 24 together with the control signals CM 22-29 of the 48-signal group, which controls the current central unit operation. As previously described, control signals 22-29 are memory access control signals that control the type of memory operation to be performed at the address indicated by the central processing unit. For ease of use in cache 24 , various of these signals are delayed by switching or buffering, and the delayed signals are labeled "CCM", "BCM", "LCM" or "MCM" according to their delay, as can be seen in the figure .

Gemäß Fig. 16 besitzt die Speicher-Steuereinheit 18 eine Schaltung 140, die die Priorität des Hauptspeicher- Zugriffs bestimmt. Diese Schaltung ist so entworfen, daß sie dem Hauptspeicher-Zugriff Priorität vor jeder Bus-Adapter- Anforderung (von seiten eines peripheren Prozessors) gibt. Nur wenn keine Bus-Adapter-Speicher-Anforderung ansteht, gewinnt die Zentraleinheit 12 einen Zugriff zum Hauptspeicher, entweder um zu schreiben oder zu lesen nach einem Cachespeicher-Verfehlen. Das Eingangssignal LC ("Last Cycle", letzter Zyklus) kommt vom Speicher-Steuereinheits- Taktgeber gemäß Fig. 15, was noch zu beschreiben ist, und wird am Ende einer Speicherzugriffs- Operation erzeugt. Bei Beendigung jeder momentanen Speicheroperation wird, wenn keine Bus-Adapter-Speicher-Anforderung ansteht, durch Voreinstellung BA niedrig, und die wartende Zentraleinheits- Adresse wird zum Hauptspeicher 16 übertragen. Daher kann nach einem Cachespeicher-Verfehlen eine Verzögerung von einigen Zyklen auftreten, bis der Hauptspeicher für die Zentraleinheit verfügbar ist. Während dieser Zeit bleibt die Zentraleinheit angehalten, wie noch zu beschreiben ist.Referring to FIG. 16, the memory controller 18 has a circuit 140 that determines the priority of the main memory access. This circuit is designed to give main memory access priority over any bus adapter request (from a peripheral processor side). Only when there is no bus adapter memory request pending does CPU 12 gain access to main memory, either to write or read after a cache miss. The input signal LC ("Last Cycle") comes from the memory control unit clock according to FIG. 15, which will be described later, and is generated at the end of a memory access operation. Upon completion of each current memory operation, if no bus adapter memory request is pending, by default BA will go low and the waiting CPU address will be transferred to main memory 16 . Therefore, after a cache miss, there may be a delay of several cycles until the main memory is available to the central processing unit. During this time, the central unit remains stopped, as will be described.

Diese Zuordnung von Priorität für den Hauptspeicher-Zugriff zwischen der Zentraleinheit und dem Bus-Adapter, abhängig vom Auftreten oder Fehlen von Bus-Adapter-Speicher-Anforderungen, muß deutlich unterschieden werden von der Aufteilung des Cachespeicher-Zyklus zwischen Zentraleinheits-Speicher- Lesen und anderen Operationen, wie noch genauer zu beschreiben ist. Die Schaltung für die Unterteilung des Cachespeicher-Zyklus arbeitet freischwingend und, wie beschrieben, unabhängig davon, ob irgendeine Anforderung von der Zentraleinheit oder einem Bus-Adapter ansteht.This assignment of priority for main memory access between the central unit and the bus adapter the occurrence or absence of bus adapter memory requests, must be clearly distinguished from the division the cache cycle between central processing unit memory Reading and other operations, as more detailed below is to describe. The circuit for dividing the Cache cycle works freely and, as described, regardless of whether any request from the central unit or a bus adapter.

Ausweislich Fig. 17 wird ein "BA-Freigabe"-Signal durch ein Flipflop in einer Freigabeschaltung 142 zur Zeit TA auf jede Bus-Adapter-Speicheranforderung (MRBA) erzeugt, sofern die Speichersteuer-Schaltung bereit ist (R/B). Das BA-Freigabe-Signal wird in die Schaltung von Fig. 13 eingespeist, um die Adresse der BA-Speicher-Operation für Zwecke einer Überprüfung des Cache-Speichers oder einer Ungültigkeitserklärungs- Prozedur, wie noch beschrieben werden wird, einzuspeisen.As evidenced by Fig. 17, a "BA-enable" signal by means of a flip-flop in an enable circuit 142 at time TA in each generated bus adapter memory request (MRBA), provided that the memory control circuit is prepared (R / B). The BA enable signal is fed into the circuit of Fig. 13 to feed the address of the BA memory operation for purposes of cache checking or invalidation procedure, as will be described.

Die zeitlichen Steuersignale (Taktimpulse) werden weitgehend von der Schaltung von Fig. 15 erzeugt, deren größter Teil funktionsmäßig zur Speicher-Steuereinheit 18 gehört. Verfahren zum Takten und Betreiben eines Hauptspeichers für eine Datenverarbeitungsanlage der hier beschriebenen Art sind für sich allgemein bekannt und daher nicht erfindungswesentlich. Deshalb wird die Erzeugung dieser Taktsignale hier nicht im einzelnen beschrieben, sondern nur, soweit sie erfindungswesentlich ist.The timing control signals (clock pulses) are largely generated by the circuit of FIG. 15, the majority of which is functionally part of the memory control unit 18 . Methods for clocking and operating a main memory for a data processing system of the type described here are generally known per se and are therefore not essential to the invention. The generation of these clock signals is therefore not described in detail here, but only insofar as it is essential to the invention.

Ausweislich Fig. 15 werden die Steuersignale CCM 22-29 (von Fig. 18) in einem Decodierer 138 decodiert um zu bestimmen, ob die Zentraleinheits-Speicher-Operation ein Schreiben oder ein Lesen ist. Wenn die Operation ein Lesen ist, erzeugen die Steuersignale nach Decodierung ein "Lese"- Signal, das anzeigt, daß die Zentraleinheits-Speicher-Operation ein Lesen ist, das im Cache-Speicher abzuarbeiten ist. Dieses Signal ist erforderlich im Cache-Speicher 24, um die Erzeugung eines Cachespeicher-Verfehlen-Signals zu gestatten, wie erläutert werden wird.Referring to Fig. 15, the control signals CCM 22-29 (from Fig. 18) are decoded in a decoder 138 to determine whether the central processing unit memory operation is a write or a read. If the operation is a read, the control signals, after decoding, produce a "read" signal indicating that the central processing unit memory operation is a read to be cached. This signal is required in the cache 24 to allow the generation of a cache miss signal, as will be explained.

Wenn die Zentraleinheits-Speicher-Operation ein Schreiben (in den Hauptspeicher) ist, ergeben die Steuersignale CCM 22-29 nach Decodierung die Schreib-Signale WRITE 8 (d. h. Bits), WRITE 32 und WRITE 64, die die Operationen des Schreibens eines Bytes, eines Wortes bzw. eines Doppelwortes angeben. (Im Gegensatz zu den peripheren Prozessoren schreibt die Zentraleinheit nicht ein halbes Wort; daher wird das Signal WRITE 16 nicht durch die Zentraleinheits- Steuersignale erzeugt.) Die Signale BAC 0-2 (Speicherzugriff- Steuersignale) vom Bus-Adapter 22 werden ähnlich in einem Operations-Decodierer 139 decodiert, um Lese- oder Schreib-Signale zur Eingabe in die Schaltung 138 zu gewinnen. Die Bus-Adapter-Schreib-Signale können WRITE 8, WRITE 16, WRITE 32 oder WRITE 64 sein. Das Signal MRBA (Bus- Adapter-Speicher-Anforderung) wird auch vom Bus-Adapter 22 eingegeben.If the central processing unit memory operation is a write (to main memory), the control signals CCM 22-29, after decoding, result in the write signals WRITE 8 (ie bits), WRITE 32 and WRITE 64, which perform the operations of writing a byte, a word or a double word. (In contrast to the peripheral processors, the central processing unit does not write a half-word; therefore the WRITE 16 signal is not generated by the central processing unit control signals.) The signals BAC 0-2 (memory access control signals) from the bus adapter 22 become similar in one Operations decoder 139 decodes to obtain read or write signals for input to circuit 138 . The bus adapter write signals can be WRITE 8, WRITE 16, WRITE 32 or WRITE 64. The MRBA (bus adapter memory request) signal is also input from the bus adapter 22 .

Die CP/BA-Eingangssignale (von Fig. 16) stellen die Prioritätszuordnung für den Hauptspeicher-Zugriff dar. (CP ist hoch, wenn die Zentraleinheit Priorität hat; BA ist hoch, wenn ein peripherer Prozessor Priorität hat.) Das Lösch- Verfehlen-Signal wird im Cache-Speicher 24 in noch zu beschreibender Weise erzeugt, wenn dem Cachespeicher-Verfehlen durch eine Hauptspeicher-Operation nachgekommen worden ist und die angeforderten Daten in das Zentraleinheits- Speicherdaten-Register 56 (Fig. 3) eingespeist worden sind. Wie aus der Figur ersichtlich ist, stellt das Signal "MOP" (Speicheroperation) entweder eine Bus-Adapter-Speicheroperation (BBAC1, BBAC2 und BA-Priorität) oder eine Zentraleinheits- Speicheroperation (MCM24 und 25 sowie CP-Priorität) dar.The CP / BA input signals (of FIG. 16) represent the priority allocation for main memory access. (CP is high if the central unit has priority; BA is high if a peripheral processor has priority.) The delete-miss- Signal is generated in cache memory 24 in a manner to be described when the cache miss by a main memory operation has been resolved and the requested data has been fed into central unit memory data register 56 ( FIG. 3). As can be seen from the figure, the signal "MOP" (store operation) represents either a bus adapter store operation (BBAC 1 , BBAC 2 and BA priority) or a central unit store operation (MCM 24 and 25 as well as CP priority) .

Die Schaltung 138 erzeugt geeignete Speicher-Steuer- und Takt-Signale aus den angegebenen Eingangssignalen. Die Erzeugung der Steuersignale "WRITE 8", "WRITE 16", "WRITE 32" und "WRITE 64" ist bereits beschrieben worden; "READ 64 B" bestimmt die Operation des Lesens eines Doppelwortes. Das Signal R/ (Lesen/Schreiben: R ist hoch für Lesen, W ist hoch für Schreiben) und der Schreibimpuls sind herkömmliche Eingaben in den Hauptspeicher 16. Die Speicher-Takt-Signale schließen ein CAS (Spalten-Adreß-Abtasten), CEN (Spalten- Freigabe) und RAS (Zeilen-Adreß-Abtasten), die sämtlich herkömmlich sind und in den Hauptspeicher 16 eingegeben werden, um ihn in für sich bekannter Weise zu adressieren. Circuit 138 generates appropriate memory control and clock signals from the specified input signals. The generation of the control signals "WRITE 8", "WRITE 16", "WRITE 32" and "WRITE 64" has already been described; "READ 64 B" determines the operation of reading a double word. The signal R / (read / write: R is high for read, W is high for write) and the write pulse are conventional inputs to main memory 16 . The memory clock signals include CAS (column address scan), CEN (column enable) and RAS (row address scan), all of which are conventional and are input to main memory 16 to be in itself address in a known manner.

Die Signale C1, C2 und C3 sind für internen Gebrauch im Cache-Speicher vorgesehen und verfolgen die drei Befehls- Zyklen (jeweils 160 ns), die für eine Hauptspeicher-Operation erforderlich sind. Ihr Einsatz wird im folgenden erläutert. Das Signal LC (letzter Zyklus) ist 160 ns lang und grundsätzlich synchronisiert mit dem letzten Zyklus der Speicher-Operation. Das Signal LC wird eingegeben, um das Flipflop 141 rückzusetzen, das das CP-Prioritätssignal (von Fig. 16) verzögert, um ein gespeichertes CP-Signal (LCP) zu ergeben, dessen Verwendung erläutert werden wird. Ein Flipflop 137 wird benutzt, um das Cachespeicher-Verfehlen-Signal während einer Zentraleinheits-Lese-Operation zu verzögern, indem es ein "MISS EXT" (Invers)-Ausgangssignal abgibt, dessen Verwendung erläutert werden wird.The signals C 1 , C 2 and C 3 are intended for internal use in the cache and follow the three instruction cycles (160 ns each) required for a main memory operation. Their use is explained below. The signal LC (last cycle) is 160 ns long and is basically synchronized with the last cycle of the memory operation. Signal LC is input to reset flip-flop 141 , which delays the CP priority signal (of FIG. 16) to give a stored CP signal (LCP), the use of which will be explained. A flip-flop 137 is used to delay the cache miss signal during a CPU read operation by providing a "MISS EXT" (inverse) output signal, the use of which will be explained.

Das Cachespeicher-Verfehlen-Invers-Signal ist normalerweise hoch und hält das Signal STCP-Invers ("Stop Central Processor", d. h. Anhalten der Zentraleinheit), das vom Flipflop 135 abgegeben wird, normalerweise hoch. Das Signal STCP-Invers wird in den Haupttaktgeber (Fig. 11) eingegeben; es wird ferner eingegeben in das Zentraleinheits- Speicheradreß-Register 58 (Fig. 3). Solange das Signal STCP-Invers hoch bleibt, wird die Zentraleinheit nicht angehalten; die Taktimpulse TA, T0, T1, T2 werden erzeugt, und die Zentraleinheits-Speicheradressen werden aus dem Speicheradreß-Register ausgeleitet. Wenn ein Cachespeicher- Verfehlen-Signal erzeugt wird, und zwar in einer anhand von Fig. 14 zu erläuternden Weise, wird das Signal Cachespeicher-Verfehlen-Invers niedrig, und beim nächsten L1-Taktimpuls (L0 invers ist niedrig) wird das Ausgangssignal STCP-Invers niedrig. Dieses Signal hält die Erzeugung von T-Impulsen für die Zentraleinheit an und verhindert auch, daß die nächste Speicheradresse zum Cache-Speicher geschaltet wird. The cache miss inverse signal is typically high and typically holds the stop central processor (STCP) inverse signal issued by flip-flop 135 . The STCP inverse signal is input to the master clock ( Fig. 11); it is also entered into the central processing unit memory address register 58 ( FIG. 3). As long as the STCP inverse signal remains high, the central unit is not stopped; the clock pulses TA, T 0 , T 1 , T 2 are generated and the central processing unit memory addresses are extracted from the memory address register. When a cache miss signal is generated, in a manner to be explained with reference to Fig. 14, the cache miss inverse signal goes low and the next L 1 clock pulse (L 0 inverse is low) the output signal STCP inverse low. This signal stops the generation of T-pulses for the central processing unit and also prevents the next memory address from being switched to the cache memory.

In der nun zu erläuternden Fig. 13 ist derjenige Teil des Cache-Speichers 24 gezeigt, der insbesondere das Cachespeicher-Adressieren und das Hauptspeicher-Adressieren betrifft. Diese Schaltung unterteilt den Cachespeicher-Zyklus und ordnet abwechselnde Cachespeicher-Unterzyklen bestimmten Funktionen zu. Der erste Cachespeicher-Unterzyklus ist der Verarbeitung einer Zentraleinheits-Lese-Adresse zugeordnet; der zweite Cachespeicher-Unterzyklus ist entweder der Verarbeitung einer Bus-Adapter-Lese-Adresse zur Durchführung einer Cachespeicher-Überprüfung oder dem Schreiben in den Cache-Speicher zugeordnet. Das Schreiben in den Cache-Speicher kann beinhalten entweder das Schreiben des Ungültigkeitsbits eines bestimmten Cachespeicher-Eintrags, nachdem eine Cachespeicher-Überprüfung (auch durchgeführt in einem vorhergehenden Zyklus) ergeben hat, daß ein Identifizierungskennzeichen-Übereinstimmungs-Zustand existiert, oder das Schreiben in den Cachespeicher-Datenspeicher und des Identifizierungskennzeichens, um den Cache- Speicher fortzuschreiben, nachdem einem Cachespeicher- Verfehlen durch den Hauptspeicher 16 nachgekommen worden ist, oder nach einem Zentraleinheits-Hauptspeicher-Schreiben.In FIG. 13 now to be explained, that part of the cache memory 24 is shown which relates in particular to the cache addressing and the main memory addressing. This circuit divides the cache cycle and maps alternate cache sub-cycles to specific functions. The first cache sub-cycle is associated with processing a CPU read address; the second cache subcycle is associated with either processing a bus adapter read address to perform a cache check or writing to the cache. Writing to the cache may include either writing the invalid bit of a particular cache entry after a cache check (also performed in a previous cycle) shows that an identifier match condition exists, or writing to the Cache data store and tag to update cache after completing cache miss by main memory 16 or after a CPU main memory write.

Die Schaltung von Fig. 13 empfängt Adressen von zwei Quellen. Eine Adresse (MA 0-23) wird von der Zentraleinheit 12 für eine Speicher-Operation (Lesen oder Schreiben) empfangen, und eine andere Adresse (BMA 0-23) wird vom Bus-Adapter 22 für eine Cachespeicher-Überprüfung oder eine Ungültigkeitserklärung-Operation (resultierend von einer Bus-Adapter-Hauptspeicher-Schreib-Operation) empfangen. Die Schaltung von Fig. 13 bestimmt, welche Adresse im Vergleicher von Fig. 14 zu vergleichen ist und welche Adresse in den Hauptspeicher 16 zur Speicher-Operation gelangt. Grundsätzlich besitzt diese Schaltung Multiplexer 102 und 104, um den Index und das Identifizierungskennzeichen auszuwählen, die in den Cache-Speicher und den Vergleicher von Fig. 14 einzuspeisen sind; Signalspeicher 110 und 108 speichern die eingegebene Zentraleinheits-Adresse zur Einspeisung in den Hauptspeicher 16 im Fall eines Cachespeicher- Verfehlens; und ein Multiplexer 112 wählt die Adresse aus, die in den Hauptspeicher 16 für eine Speicher-Operation einzugeben ist.The circuit of Fig. 13 receives addresses from two sources. One address (MA 0-23) is received by CPU 12 for a store operation (read or write) and another address (BMA 0-23) is received by bus adapter 22 for cache check or invalidation. Operation (resulting from a bus adapter main memory write operation) received. The circuit of FIG. 13 determines which address is to be compared in the comparator of FIG. 14 and which address enters main memory 16 for the memory operation. Basically, this circuit has multiplexers 102 and 104 to select the index and tag to be fed into the cache and comparator of Figure 14; Latches 110 and 108 store the central processor address entered for injection into main memory 16 in the event of a cache miss; and a multiplexer 112 selects the address to be entered into main memory 16 for a memory operation.

Es sei darauf hingewiesen, daß die Schaltung von Fig. 13 ohne Bezugnahme darauf arbeitet, ob die Zentraleinheits- Speicheroperation ein Lesen oder ein Schreiben ist. Das "Lese"-Signal von Fig. 15 wird in Fig. 14 eingegeben, wo das Cachespeicher-Verfehlen-Signal nur für eine Lese-Operation erzeugt wird. Für eine Zentraleinheits-Schreib-Operation werden alle Operationen bis zur Erzeugung des Cachespeicher- Verfehlen-Signals ausgeführt, es wird jedoch kein Verfehlen-Signal erzeugt. Da erfindungsgemäß dieser Unterzyklus der Verarbeitung einer Zentraleinheits-Speicheroperations- Adresse zugeordnet ist, konnten keine anderen Operationen während dieses Unterzyklus durchgeführt werden, so daß diese "verschwendeten" Operationen keine Zeit kosteten.It should be noted that the circuit of FIG. 13 operates without reference to whether the CPU store operation is a read or a write. The "read" signal of Fig. 15 is input to Fig. 14 where the cache miss signal is only generated for a read operation. For a CPU write operation, all operations are performed until the cache miss signal is generated, but no miss signal is generated. Because this sub-cycle is associated with processing a central processing unit memory operation address, no other operations could be performed during this sub-cycle, so these "wasted" operations did not take time.

Wie weiter aus Fig. 13 ersichtlich ist, führt der Bus 26 Adreß-Leitungen MA 0-23 vom Speicheradreß-Register 58 der Zentraleinheit 12 (Fig. 3), das bei L0 verriegelt ist, sofern die Zentraleinheit nicht angehalten ist (STCP-Invers ist hoch). Der Bus 32 führt Adreß-Leitungen BMA 0-23 vom Bus-Adapter 22. Die Adresse vom Bus-Adapter 22 wird in einem Signalspeicher 100 gespeichert, der (zur Zeit TA) durch das BA-Freigabe-Signal von Fig. 17 durchgeschaltet wird. As further shown in FIG. 13 can be seen, the bus of the central processing unit 26 address lines MA 0-23 from the memory address register 58 12 (Fig. 3) that is locked in L 0, the central processing unit unless stopped is (STCP- Inverse is high). The bus 32 leads address lines BMA 0-23 from the bus adapter 22 . The address of the bus adapter 22 is stored in a signal memory 100 which (at the time TA) is switched through by the BA enable signal from FIG. 17.

Vom ankommenden Zentraleinheits-Adreß-Bus 26 werden Leitungen 9-20 (die die Signale entsprechend dem Index, vgl. Fig. 8, führen) dem Eingang des Index-Wähl-Multiplexers 102 zugeführt, dagegen die Leitungen 0-8 (entsprechend dem Identifizierungskennzeichen, vgl. Fig. 8) dem Eingang des Identifizierungskennzeichen-Wähl-Multiplexers 104. Der ankommende Adapter-Adreß-Bus 32 wird über den Puffer 106 geführt, der durch ein Signal "BA WRITE" (BBAC1) vom Bus-Adapter 22 freigegeben wird und dann ähnlich aufgeteilt wird: Leitungen 0-8 (entsprechend dem Identifizierungskennzeichen) gehen zum Identifizierungskennzeichen- Wähl-Multiplexer 104, Leitungen 9-20 dagegen zum Index-Wähl-Multiplexer 102.Lines 9-20 (which carry the signals corresponding to the index, cf. FIG. 8) are fed from the incoming central unit address bus 26 to the input of the index selection multiplexer 102 , whereas lines 0-8 (corresponding to the identifier) are supplied , see FIG. 8) the input of the identifier dial multiplexer 104 . The incoming adapter address bus 32 is passed through the buffer 106 , which is released by the bus adapter 22 by a signal "BA WRITE" (BBAC 1 ) and is then divided in a similar manner: lines 0-8 (corresponding to the identifier) go to the identifier select multiplexer 104 , lines 9-20, on the other hand, to the index select multiplexer 102 .

Die Eingaben für den Multiplexer 102 werden durch das Taktsignal T12 ausgewählt, während die Eingaben in den Multiplexer 104 durch das Taktsignal T12-Invers ausgewählt werden. Somit werden die Multiplexer 102 und 104 gleichzeitig, jedoch in entgegengesetztem Sinn geschaltet; der Zentraleinheits- Index wird durch den Multiplexer 102 übertragen, wenn das Bus-Adapter-Identifizierungskennzeichen durch den Multiplexer 104 übertragen wird. Aus dem Signal-Zeit- Diagramm von Fig. 12 ist ersichtlich, daß T12 hoch ist während T1 und T2; daher ist T12 ein 80-ns-Impuls.The inputs to multiplexer 102 are selected by clock signal T 12 , while the inputs to multiplexer 104 are selected by clock signal T 12 -inverse. Thus, the multiplexers 102 and 104 are switched simultaneously, but in the opposite sense; the CPU index is transmitted by multiplexer 102 when the bus adapter identifier is transmitted by multiplexer 104 . From the signal-time diagram of Fig. 12 it can be seen that T 12 is high during T 1 and T 2 ; therefore T 12 is an 80 ns pulse.

Die Multiplexer 102 und 104 werden somit zweimal während jedes Cachespeicher-Zugriffs (160 ns) geschaltet. Während der ersten Hälfte des Zyklus werden die A-Eingaben (Zentraleinheits- Index) in den Index-Wähl-Multiplexer 102 zum Cachespeicher- Adreß-Signalspeicher 114 übertragen; während der zweiten Hälfte des Zyklus werden die B-Eingaben übertragen. Die B-Eingaben können sein entweder die Bus-Adapter- Adresse vom Puffer 106 für eine Cachespeicher-Überprüfung (bei BA-Priorität während des Schreibens eines peripheren Prozessors in den Hauptspeicher); dieselbe Bus- Adapter-Adresse (gespeichert im Puffer 106) für ein Ungültigkeitserklärungs- Bit-Schreiben (nachdem eine vorhergehende Cachespeicher-Überprüfung zu einem Identifizierungskennzeichen- Übereinstimmungs-Zustand geführt hat); oder eine vorher eingegebene Zentraleinheits-Adresse (vom Signalspeicher 108). Die vorher eingegebene Zentraleinheits- Adresse ist entweder eine für eine Lese-Speicher-Operation, die ein Cachespeicher-Verfehlen verursacht hat, oder eine für eine Zentraleinheits-Schreib-Speicher Operation; in beiden Fällen muß die Adresse jetzt als die Adresse für eine Cachespeicher-Fortschreib-Schreib-Operation verwendet werden.Multiplexers 102 and 104 are thus switched twice during each cache access (160 ns). During the first half of the cycle, the A (central unit index) inputs are transferred to the index select multiplexer 102 to the cache address latch 114 ; the B inputs are transmitted during the second half of the cycle. The B inputs can be either the bus adapter address from buffer 106 for a cache check (at BA priority while a peripheral processor is writing to main memory); the same bus adapter address (stored in buffer 106 ) for invalidation bit writing (after a previous cache check resulted in an identifier match condition); or a previously entered CPU address (from latch 108 ). The previously entered CPU address is either one for a read operation that caused a cache miss or one for a CPU write operation; in both cases the address must now be used as the address for a cache update-write operation.

Während der ersten Hälfte des Zyklus werden die B-Eingaben zum Identifizierungskennzeichen-Wähl-Multiplexer 104 übertragen, um einen Identifizierungskennzeichen-Signalspeicher 116 zum Ansteuern des Identifizierungskennzeichen-Vergleichers anzuwählen (Fig. 14); während der zweiten Hälfte des Zyklus werden die A-Eingaben in den Multiplexer 104 zu einem Signalspeicher 116 übertragen. Der Zweck dieser Anordnung zur zeitlichen Steuerung wird weiter unten erläutert werden.During the first half of the cycle, the B inputs are transmitted to the tag select multiplexer 104 to select an tag latch 116 to drive the tag comparator ( Fig. 14); during the second half of the cycle, the A inputs to multiplexer 104 are transferred to latch 116 . The purpose of this timing arrangement will be explained below.

Der Cachespeicher-Adreß-Signalspeicher 114 ist durch das "Adreß-Takt"-Signal (L1 LA) verriegelt; der Wähl-Identifizierungskennzeichen- Signalspeicher 116 ist durch das "im Identifizierungskennzeichen-Takt"-Signal (L1 LA-Invers) verriegelt.The cache address latch 114 is latched by the "address clock" signal (L 1 LA); the dial tag latch 116 is latched by the "on tag clock" signal (L 1 LA inverse).

Für jede Hauptspeicher-Operation (einschließlich einem Fortschreiben des Cache-Speichers nach einem Verfehlen) muß eine Adresse zur Einspeisung in den Hauptspeicher 16 für die Speicheroperation ausgewählt werden. Für jede Zentraleinheits- Operation, egal, ob eine Speicheroperation oder eine sonstige Operation, wird die Zentraleinheits- Adresse (MA 0-23) durch den Signalspeicher 110 durch das Taktsignal T2 (sofern die Zentraleinheit 12 nicht angehalten und GT2 hoch ist) durchgeschaltet und dem Hauptspeicher- Adreß-Multiplexer 112 und dem Signalspeicher 108 zugeführt. Wenn die Operation keine Speicher-Operation oder ein Speicher-Lesen ist und ein Cachespeicher-Treffen vorliegt, wird der Inhalt des Signalspeichers 108 niemals benutzt. Wenn ein Cachespeicher-Verfehlen vorliegt, schalten die Signale CP (Zentraleinheitsspeicher-Zugriff-Zyklus von Fig. 16), T1 und C1 (von Fig. 15; Zyklus 1, der erste Zyklus der Speicher-Operation, um dem Verfehlen nachzukommen) die Adresse durch den Signalspeicher 108 zum Multiplexer 102, um die Dateilage im Cachespeicher-Datenspeicher 124 für das Fortschreiben-Schreiben nach Beendigung des Speicher-Zyklus zu indizieren. Der Identifizierungskennzeichen-Anteil der Adresse wird als TW0-8 zum Schreiben in den Cache-Speicher ausgegeben, wie noch erläutert werden wird.For each main memory operation (including updating the cache after a miss), an address to be fed into main memory 16 must be selected for the memory operation. For each CPU operation, whether a store operation or other operation, the CPU address (MA 0-23) is latched through by latch 110 through clock signal T 2 (provided CPU 12 is not stopped and GT 2 is high) and fed to main memory address multiplexer 112 and latch 108 . If the operation is not a store operation or a store read and there is a cache hit, the contents of latch 108 are never used. If there is a cache miss, the signals CP (CPU memory access cycle of Fig. 16), T 1 and C 1 (of Fig. 15; cycle 1, the first cycle of the memory operation to meet the misses) switch. the address through latch 108 to multiplexer 102 to index the file location in cache data store 124 for the update write after the memory cycle is complete. The tag portion of the address is output as TW0-8 for writing to the cache, as will be explained.

Da die Zentraleinheit auf ein Cachespeicher-Verfehlen nach dem Takt-Intervall T0 ihres Zyklus angehalten ist, kann sie bereits (während TA, T0) eine andere Adresse zum Cache- Speicher für ein Speicher-Lesen abgegeben haben, bevor sie durch das Cachespeicher-Verfehlen-Signal angehalten worden ist (wie noch beschrieben werden wird). Diese Adresse geht nicht verloren, da sie im Signalspeicher 110 erhalten bleibt, der nicht vor dem nächsten T2-Taktsignal durchgeschaltet wird, nachdem das Cachespeicher-Verfehlen-Signal gelöscht worden ist. Daher speichert während einer Hauptspeicher- Operation, um einem Cachespeicher-Verfehlen nachzukommen, der Signalspeicher 110 die Adresse für die nächste Speicher-Operation, während der Signalspeicher 108 die Adresse speichert, die das Verfehlen verursacht hat und gerade in den Hauptspeicher für die momentane Operation eingegeben worden ist. Wenn die Speicher-Operation beendet worden ist und die Daten in den Cache-Speicher eingeschrieben werden sollen, wird der Index zum Schreiben in den Cache-Speicher vom Cachespeicher-Adreß-Signalspeicher 108 erhalten. Das Identifizierungskennzeichen wird abgegeben als TW0-8 (Identifizierungskennzeichen-Schreiben), das einzuschreiben ist in den Cachespeicher-Identifizierungskennzeichen- Speicher 120 zur gleichen Zeit.Since the central processing unit is paused for a cache miss after the clock interval T 0 of its cycle, it may have already (during TA, T 0 ) given another address to the cache for a memory read before going through the cache - Missing signal has been stopped (as will be described). This address is not lost because it is retained in latch 110 , which is not gated before the next T 2 clock signal after the cache miss signal has been cleared. Therefore, during a main memory operation to meet a cache miss, latch 110 stores the address for the next store operation, while latch 108 stores the address that caused the miss and is just being entered into main memory for the current operation has been. When the store operation has finished and the data is to be written to the cache, the index for writing to the cache is obtained from the cache address latch 108 . The identifier is issued as TW0-8 (identifier writing) to be written into the cache identifier memory 120 at the same time.

Die abwechselnden Eingaben in den Hauptspeicher-Adreß-Multiplexer 112 werden durch das Signal BA (hoch oder niedrig) aus der Prioritäts-Schaltung von Fig. 16 ausgewählt. Die ausgewählten Adreß-Signale (BMAR 3-20) mit nicht erfindungswesentlichen Modul-Wähl-Signalen) werden abgegeben, um den Hauptspeicher 16 (Fig. 19) und die Speicher-Steuereinheit 18 (DMA 0-23) zu adressieren. Die Speicher-Steuereinheit verwendet die Adreß-Signale zum Unterhalten eines Bus-Transaktions- Logbuchs und für andere Zwecke, die nicht erfindungswesentlich sind.The alternate inputs to main memory address multiplexer 112 are selected by the BA (high or low) signal from the priority circuit of FIG. 16. The selected address signals (BMAR 3-20) with module selection signals not essential to the invention are output in order to address the main memory 16 ( FIG. 19) and the memory control unit 18 (DMA 0-23). The memory control unit uses the address signals to maintain a bus transaction log and for other purposes that are not essential to the invention.

Es sei jetzt Fig. 14 erläutert, die den Speicher- Teil des Cache-Speichers zeigt. Fig. 14 ist insoweit vereinfacht, als nicht die tatsächliche Unterteilung des Cache- Speichers in geraden und ungeraden Teil gezeigt ist, was funktionsmäßig nicht erfindungswesentlich ist. Tatsächlich ist also nur eine Hälfte des Speicher-Teils gezeigt. Um sich die gerade/ungerade Anordnung des Cache-Speichers vorzustellen, kann Fig. 14 bis auf Flipflop 130 als entweder den geraden oder den ungeraden Teil des Cache-Speichers darstellend gedacht werden; der restliche Teil wäre dann durch eine andere ähnliche Schaltungsanordnung, die nicht gezeigt ist, gebildet, deren Ausgang auch Eingang des 1-bit-Flipflops 130 ist, um ein einzelnes Cachespeicher-Verfehlen- Signal abzugeben. It now will be explained in Fig. 14, showing the memory portion of the cache memory. Fig. 14 is to that extent simplified, the actual division is not shown of the cache memory in odd and even part than what is operably not essential to the invention. In fact, only half of the memory part is shown. To imagine the even / odd arrangement of the cache memory, Fig. 14, except for flip-flop 130 , can be thought of as representing either the even or the odd part of the cache memory; the remainder would then be formed by other similar circuitry, not shown, the output of which is also input to the 1-bit flip-flop 130 to provide a single cache miss signal.

Der Daten-Speicher 124 ist ein Direktzugriff-Speicher (RAM), der die Cache-Speicher-Einträge speichert, während der Identifizierungskennzeichen- Speicher 120 die zugehörigen 9-bit-Identifizierungskennzeichen und der Ungültigkeits- Bit-Speicher 122 die zugehörigen Ungültigkeitsbits speichert. Die Baugruppen 124, 122 und 120 werden sämtlich durch den 12-bit-Index vom Cache-Speicher-Adreß-Signalspeicher 114 (Fig. 13) adressiert, in den das "Adreß- Takt"-Zeitsteuersignal (L1 LA) eingegeben wird (Fig. 13). Der Identifizierungskennzeichen-Teil des Cachespeicher- Eintrags wird in einen Identifizierungskennzeichen-Signalspeicher 134 ausgelesen. Der Wort-Teil des Cachespeicher- Eintrags wird gleichzeitig in einen Daten-Signalspeicher 126 ausgelesen.Data memory 124 is a random access memory (RAM) that stores the cache entries, while tag memory 120 stores the associated 9-bit tags and invalidate bit memory 122 stores the associated invalid bits. The assemblies 124, 122 and 120 are all addressed by the 12-bit index from the cache address latch 114 ( FIG. 13) into which the "address clock" timing signal (L 1 LA) is input ( Fig. 13). The identifier portion of the cache entry is read into an identifier latch 134 . The word portion of the cache entry is simultaneously read into a data latch 126 .

Der Identifizierungskennzeichen-Signalspeicher 134 wird durch das "Identifizierungskennzeichen-Signalspeicher- Freigabe"-Signal (Zeitsteuersignale L0+L2, wobei die Impuls-Rückflanke aktiv ist) gesteuert, um das gespeicherte Identifizierungskennzeichen zu einem Identifizierungskennzeichen- Vergleicher 132 zu übertragen. Der Adreß-Identifizierungskennzeichen- Teil, der beim Multiplexer 104 angesteuert ist, dargestellt als CWA 0-8, wird in den Identifizierungskennzeichen-Vergleicher 132 vom Signalspeicher 116 (Fig. 13) durch das Signal "in Identifizierungskennzeichen- Takt" (L1 LA-Invers) zu einem Vergleich eingegeben. Das Verfehlen/Treffen-Ausgangssignal des Vergleichers ist niedrig, wenn die Identifizierungskennzeichen gleich sind, oder hoch, wenn sie ungleich sind. Dieses Ausgangssignal wird in ein 1-bit-Flipflop 130 eingegeben, das durch das Signal "Verfehlen-Takt" (LA-Invers) für eine Zentraleinheits-Lese-Speicher-Operation allein abgegeben wird, wie durch das "Lese"-Signal von Fig. 15 gesteuert. Bei einer Zentraleinheits-Schreib-Speicher-Operation oder bei einem BA-Adreß-Unterzyklus wird kein Cachespeicher- Verfehlen- oder Cachespeicher-Verfehlen-Invers- Signal erzeugt. Das Verfehlen/Treffen-Bit vom Vergleicher 132 wird ODER-verknüpft mit dem gespeicherten Ungültigkeits- Bit aus dem Speicher 122, bevor es in das Flipflop 130 eingegeben wird. Daher resultiert bei einem Zentraleinheits- Lesen entweder ein Kein-Identifizierungskennzeichen-Übereinstimmungs- Zustand oder ein Ungültigkeits-Bit in einem Cachespeicher-Verfehlen, das durch das Cachespeicher-Verfehlen- Signal (Zustands-Signal) dargestellt ist.The tag latch 134 is controlled by the "tag latch enable" signal (timing signals L 0 + L 2 with the pulse trailing edge active) to transfer the stored tag to an tag comparator 132 . The address identifier part, which is controlled by the multiplexer 104 , represented as CWA 0-8, is in the identifier comparator 132 from the signal memory 116 ( FIG. 13) by the signal "in identifier clock" (L 1 LA- Inverse) entered for a comparison. The comparator miss / hit output is low if the identifiers are the same or high if the identifiers are not. This output signal is input to a 1-bit flip-flop 130 which is output by the "miss clock" (LA inverse) signal for a CPU read-only operation, as indicated by the "read" signal of FIG controlled. 15,. No cache miss or cache miss inverse signal is generated in a CPU write or BA address subcycle. The miss / hit bit from comparator 132 is ORed with the stored invalid bit from memory 122 before it is input to flip-flop 130 . Therefore, in a CPU read, either a no match status or an invalid bit results in a cache miss represented by the cache miss signal (status signal).

Das Verfehlen/Treffen-Signal wird in das Flipflop 137 von Fig. 15 eingespeist, wie bereits beschrieben, das ein "Erweitertes- Verfehlen"-Invers-Signal erzeugt (nur während einer Lese-Operation).The miss / hit signal is fed into flip-flop 137 of FIG. 15, as previously described, which produces an "extended miss" inverse signal (only during a read operation).

Die Daten vom Daten-Speicher 124 werden aus dem Daten-Signalspeicher 126 durch das "Daten-Signalspeicher-Freigabe"- Signal (L1 L2) in einen Puffer 128 weitergeschaltet. Wenn die Identifizierungskennzeichen gleich sind und das bit aus dem Speicher 122 anzeigt, daß der Eintrag gültig ist, dann gehen die Daten aus dem Puffer 128 direkt auf dem Bus 40 in das Speicherdaten-Register 56 der Zentraleinheit 12 (Fig. 3); das Signal Erweitertes-Verfehlen-Invers vom Flipflop 137 gibt den Signalspeicher 54 (Fig. 2) frei und sperrt den Puffer 128.The data from data memory 124 is switched from data latch 126 through the "data latch enable" signal (L 1 L 2 ) to buffer 128 . If the identifiers are the same and the bit from memory 122 indicates that the entry is valid, then the data from buffer 128 goes directly on bus 40 to memory data register 56 of CPU 12 ( Fig. 3); the extended miss inverse signal from flip-flop 137 enables latch 54 ( FIG. 2) and blocks buffer 128 .

Das Verfehlen/Treffen-Bit vom Identifizierungskennzeichen- Vergleicher 132 wird ebenfalls eingegeben, um das Flipflop 146 zu setzen. Während eines nachfolgenden Cachespeicher- Zyklus wird, wie genauer anhand von Fig. 22 erläutert werden wird, das Ungültigkeits-Ausgangssignal in den Datenein- Anschluß das Cachespeicher-Ungültigkeitsspeichers 122 eingespeist, um unter der momentan in den Speicher vom Cache- Adreß-Signalspeicher 108 eingespeisten Adresse eingeschrieben zu werden. The miss / hit bit from tag comparator 132 is also input to set flip-flop 146 . During a subsequent cache cycle, as will be explained in more detail with reference to FIG. 22, the invalidate output signal is fed into the data in port of the cache invalidate memory 122 to be currently being fed into the memory from the cache address latch 108 Address to be registered.

Da das Daten-Signalspeicher-Freigabe-Signal nur hoch ist während des ersten Cachespeicher-Operations-Zyklus-Unterzyklus, werden keine Daten zur Zentraleinheit 12 während des zweiten Unterzyklus für eine Cache-Überprüfungs-, Ungültigkeitserklärungs-Schreib- oder Cachespeicher-Daten- Schreib-Operation durchgeschaltet.Since the data latch enable signal is only high during the first cache operation cycle sub-cycle, no data is sent to CPU 12 during the second sub-cycle for cache check, invalidate write, or cache data write - Operation switched through.

Es sei nun erneut auf Fig. 11 eingegangen, wonach, wie bereits beschrieben, das Cachespeicher-Verfehlen- Signal die Zentraleinheit durch Invertieren von GT2 anhält, was die Zeitsteuerimpulse T1 und T2 sperrt. Die Zentraleinheit wird daher nach dem Zeitsteuerimpuls T0 angehalten. Wenn kein Bus-Adapter einen Hauptspeicher-Zugriff anfordert, erzeugt die Prioritätsschaltung von Fig. 16 das Signal CP/(BA-Invers). Dem Cachespeicher-Verfehlen kann unmittelbar nachgekommen werden.Referring now again to FIG. 11 received, after which, as already described, the cache Verfehlen- signal holding the central unit by inverting GT 2, which the timing pulses T 1 and T 2 is turned off. The central unit is therefore stopped after the timing pulse T 0 . If no bus adapter requests main memory access, the priority circuit of FIG. 16 generates the CP / (BA inverse) signal. The cache miss can be addressed immediately.

Um der Zentraleinheits-Lese-Anforderung bei einem Cachespeicher- Verfehlen nachzukommen, werden die Modul-Ansteuer- Bits (nicht gezeigt) und die Adreß-Signale BMAR 3-20 (von Fig. 13) in den Hauptspeicher 16 (Fig. 19) zusammen mit Zeitsteuer- und Steuer-Signalen von Fig. 15 eingegeben, um das adressierte Doppelwort auszuwählen. Drei Befehlszyklen sind erforderlich, um den Hauptspeicher-Zugriff abzuschließen. Das Doppelwort wird über die Speicher-Steuereinheit 18 auf dem Bus 44 weitergeleitet und dann auf dem Bus 52 in den CP-Daten-Signalspeicher 54 (Fig. 2) eingegeben; das Signal Erweitertes-Verfehlen schaltet die Daten in das Speicherdaten-Register 56 (Fig. 13).In order to meet the CPU read request in the event of a cache miss, the module drive bits (not shown) and the address signals BMAR 3-20 (of FIG. 13) are combined into main memory 16 ( FIG. 19) with the timing and control signals of Fig. 15 to select the addressed double word. Three instruction cycles are required to complete main memory access. The double word is passed through memory controller 18 on bus 44 and then entered on bus 52 into CP data latch 54 ( FIG. 2); the extended miss signal switches the data into the memory data register 56 ( Fig. 13).

Das Cachespeicher-Verfehlen-Signal wird gelöscht (Fig. 14) bei L0, wenn die Speicher-Taktschaltung von Fig. 15 festgestellt hat, daß der letzte Zyklus der drei erforderlichen Hauptspeicher-Operations-Zyklen erreicht worden ist für eine Speicher-Lese-Operation, die zur Zentraleinheit gehört (LC, LCM24 und LCP; LCM24 ist das durchgeschaltete Speicher- Steuersignal CM24 von Fig. 18, das immer hoch für eine Lese-Operation ist). Diese Eingangssignale heißen zusammen das Signal "Verfehlen Löschen", das auch in die Schaltung von Fig. 15 eingegeben wird, wo es das Lese-Signal löscht.The cache miss signal is cleared ( Fig. 14) at L 0 when the memory clock circuit of Fig. 15 has determined that the last cycle of the three required main memory operation cycles has been reached for a memory read. Operation belonging to the central processing unit (LC, LCM 24 and LCP; LCM 24 is the switched-on memory control signal CM 24 of FIG. 18, which is always high for a read operation). These input signals are collectively called the "miss erase" signal, which is also input to the circuit of Fig. 15 where it erases the read signal.

Auf das gelöschte Cachespeicher-Verfehlen-Signal hin (Verfehlen- Invers wird hoch) wird das "STCP" ("Stop Central Processor", d. h. Anhalten der Zentraleinheit) bei L0 invertiert (Flipflop 135, Fig. 15). Es sei erneut Fig. 11 angezogen. Wenn das Signal Verfehlen-Invers hoch wird, erlaubt GT2, daß die Impulse T1, T2 an die Zentraleinheit abgegeben werden, die die Zentraleinheit im mittleren Zyklus wieder anlaufen lassen. GT1 erlaubt dann die Abgabe der Impulse TA, T0. Die Zentraleinheit setzt dann ihren Betrieb fort, bis ein anderes Signal Cachespeicher- Verfehlen auftritt (es sei denn, daß eine Schreib-Hauptspeicher- Operation auftritt, die aber nicht erfindungswesentlich ist).In response to the cleared cache miss signal (miss inverse goes high), the "STCP"("Stop Central Processor", ie stopping the central unit) is inverted at L 0 (flip-flop 135 , FIG. 15). It should again Fig. Tightened. 11 When the miss-inverse signal goes high, GT 2 allows the pulses T 1 , T 2 to be delivered to the central unit, which cause the central unit to restart in the middle cycle. GT 1 then allows the pulses TA, T 0 to be output. The CPU then continues to operate until another cache miss signal occurs (unless a write main memory operation occurs but is not essential to the invention).

Genauer gesagt, vgl. jetzt das Zeit-Signal-Diagramm von Fig. 23, das Signal STCP-Invers ist normalerweise hoch. Es wird niedrig entweder im Fall eines Zentraleinheits- Schreibens in den Hauptspeicher, hier nicht beschrieben, oder auf das Verfehlen-Signal vom Flipflop 130 hin (Fig. 14), wie in Fig. 15 gezeigt ist. Das Signal STCP-Invers wird niedrig zur Zeit L1. Ausweislich Fig. 11 ist das Signal STCP-Invers das Eingangssignal des Flipflops 61 zum Löschen von GT1; wenn das Signal STCP-Invers niedrig wird, wird das Signal GT1-Invers ebenfalls erniedrigt, so daß die nächsten Impulse TA, T0 zur Zentraleinheit 12 hin gesperrt werden und das Signal GT1 hoch wird. More specifically, cf. now the time signal diagram of Fig. 23, the signal STCP inverse is normally high. It goes low either in the case of a CPU write to main memory, not described here, or upon the miss signal from flip-flop 130 ( FIG. 14), as shown in FIG. 15. The STCP inverse signal goes low at time L 1 . Is evidenced by Fig 11, the signal STCP inverse the input signal of the flip-flop 61 for erasing GT. 1; if the signal STCP-Invers goes low, the signal GT 1 -Invers is also lowered, so that the next pulses TA, T 0 to the central unit 12 are blocked and the signal GT 1 goes high.

Bei Abwesenheit des Cachespeicher-Verfehlen-Signals (d. h. im Fall einer Zentraleinheits-Hauptspeicher-Schreib-Operation) wird das Signal GT1 in D des GT2-Flipflops 63 eingegeben; danach, beim nächsten Impuls L0, wird das Signal GT2-Invers niedrig, so daß die nächsten Impulse T1, T2 zur Zentraleinheit 12 gesperrt werden. Wenn das Signal STCP-Invers erneut hoch wird (nachdem die Schreib-Operation initialisiert worden ist) beim Impuls L1, wird das Signal GT1-Invers hoch beim Impuls L2 (die Zeitsteuer-Impulse TA, T0 werden durchgelassen) und wird das Signal GT2-Invers hoch beim nächsten Impuls L0 (die Zeitsteuer-Impulse T1, T2 werden durchgelassen). Daher wird im Fall des Hauptspeicher- Schreibens die Zentraleinheit 12 bei TA angehalten und bei diesem Impuls wieder in Betrieb genommen.In the absence of the cache miss signal (ie, in the case of a CPU main write operation), the GT 1 signal is input to D of the GT 2 flip-flop 63 ; then, at the next pulse L 0 , the signal GT 2 inversely low, so that the next pulses T 1 , T 2 to the central unit 12 are blocked. When the STCP inverse signal goes high again (after the write operation has been initialized) at pulse L 1 , the GT 1 inverse signal goes high at pulse L 2 (the timing pulses TA, T 0 are passed) and becomes the signal GT 2 inversely high at the next pulse L 0 (the timing pulses T 1 , T 2 are passed). Therefore, in the case of main memory writing, the central processing unit 12 is stopped at TA and started up again at this pulse.

Bei einem Anhalten der Zentraleinheit wegen eines Cachespeicher- Verfehlens wird das Cachespeicher-Verfehlen-Signal nicht erzeugt bis L0, in der Mitte des Impulses TA. Daher muß eine andere Anhaltezeit (und Wiederaufnahme-Zeit der Operation) in diesem Fall vorgesehen sein. Zu diesem Zweck wird das Cachespeicher-Verfehlen-Invers-Signal UND-verknüpft mit GT1 zur Eingabe in D des GT2-Flipflops 63, und das Cache-Verfehlen-Invers-Signal wird ebenfalls UND- verknüpft mit dem GT2-Invers-Ausgangssignal des Flipflops 63. Daher wird das Schaltsignal GT2 hoch, wenn das Signal Cachespeicher-Verfehlen-Invers niedrig wird, so daß die Impulse T1 und T2 gesperrt werden und die Zentraleinheit im mittleren Befehlszyklus angehalten wird. Das Signal GT1-Invers wird anschließend niedrig gemacht (bei L1) durch STCP.If the central processing unit stops due to a cache miss, the cache miss signal is not generated until L 0 , in the middle of the pulse TA. Therefore, a different stop time (and resumption time of the operation) must be provided in this case. For this purpose, the cache miss inverse signal is ANDed with GT 1 for input to D of the GT 2 flip-flop 63 , and the cache miss inverse signal is also ANDed with the GT 2 inverse. Output signal of the flip-flop 63 . Therefore, the switching signal GT 2 goes high when the cache miss-inverse signal goes low, so that the pulses T 1 and T 2 are inhibited and the CPU is stopped in the middle command cycle. The GT 1 inverse signal is then made low (at L 1 ) by STCP.

Nachdem das Cachespeicher-Fortschreiben beendet worden ist mit dem Einschreiben in den Cachespeicher-Datenspeicher (wie noch erläutert werden wird) zur Zeit TA des zweiten Cachespeicher-Unterzyklus innerhalb des letzten Hauptspeicher- Zyklus, wird das Cachespeicher-Verfehlen-Signal vom Flipflop 130 gelöscht (Fig. 14). Das Signal Cache-Verfehlen- Invers wird hoch bei L0; das Signal STCP-Invers wird hoch bei L1 (Fig. 15). Der Übergang des Signals Cachespeicher- Verfehlen-Invers macht das Signal GT2 niedrig bei L0, so daß die Zeitsteuerimpulse T1, T2 an die Zentraleinheit 12 abgegeben werden können; danach wird bei L2 das Signal GT1-Invers hoch, so daß es die Impulse TA, T0 durchläßt. Der Zentraleinheits-Befehls-Zyklus wird daher im mittleren Zyklus fortgesetzt, wo er aufgehört hatte.After the cache update is finished writing to the cache data memory (as will be explained) at time TA of the second cache sub-cycle within the last main memory cycle, the cache miss signal is cleared by the flip-flop 130 ( Fig. 14). The signal cache miss inverse goes high at L 0 ; the STCP inverse signal goes high at L 1 ( Fig. 15). The transition of the cache miss-inverse signal makes the GT 2 signal low at L 0 so that the timing pulses T 1 , T 2 can be delivered to the CPU 12 ; then the signal GT 1 inversely high at L 2 so that it passes the pulses TA, T 0 . The CPU command cycle therefore continues in the middle cycle where it left off.

Der Cachespeicher-Datenspeicher wird fortgeschrieben nach einem Cachespeicher-Verfehlen oder während einer Zentraleinheits- Hauptspeicher-Schreib-Operation durch eine Schreib- Cachespeicher-Operation.The cache memory is updated after a cache miss or during a central unit Main memory write operation by a write Cache operation.

Es sei nunmehr Fig. 20 erläutert. Die Cachespeicher- Schreib-Schaltung 150 steuert das Schreiben des Cachespeicher- Inhaltes nach einem Cachespeicher-Verfehlen und steuert auch das Lesen des Cachespeicher-Ungültigkeits-Bits nach einer Identifizierungskennzeichen-Übereinstimmung bei einem BA-Adreß-Vergleich. Zum Schreiben des Ungültigkeits- Bits wird das Ungültigkeits(Invers)-Bit (aus dem Flipflop 146, Fig. 14) in die Schaltung 150 eingegeben. Zum Einschreiben in den Cachespeicher-Datenspeicher werden die Steuersignale LCM24 und MCM24 sowie die Schreib-Steuersignale WRITE 8, WRITE 16, WRITE 32 oder WRITE 64 (von Fig. 15) eingegeben. Fig. 20 will now be explained. The cache write circuit 150 controls the writing of the cache content after a cache miss and also controls the reading of the cache invalid bit after an identifier match on a BA address comparison. To write the invalid bit, the invalid (inverse) bit (from flip-flop 146 , Fig. 14) is input to circuit 150 . The control signals LCM 24 and MCM 24 as well as the write control signals WRITE 8, WRITE 16, WRITE 32 or WRITE 64 (from FIG. 15) are input for writing into the cache memory data memory.

Das Einschreiben in den Cachespeicher-Datenspeicher erfolgt zu verschiedenen Zeiten für eine Hauptspeicher-Schreib- oder -Lese-Operation, wie anhand von Fig. 23 ersichtlich ist. Alle Schreib-Operationen erfolgen zur Zeit TA, d. h. während des Unterzyklus B des Cachespeicher-Operations- Zyklus. Für eine Hauptspeicher-Schreib-Operation werden die Schreib-Impulse zur Zeit TA der Speicher-Zyklen C1 und C2 (Fig. 15) abgegeben, während für ein Hauptspeicher- Lesen (Fortschreiben des Cache-Speichers) der Schreib- Impuls zur Zeit TA des Speicher-Zyklus 3 (LC, letzter Zyklus) abgegeben wird. Das Schreiben von Ungültigkeits-Bits erfolgt ebenfalls zur Zeit TA während jedes Zyklus des Hauptspeicher-Zyklus. Da alle Schreib-Operationen während des zweiten Unterzyklus des Cachespeicher-Operations-Zyklus auftreten, können die Cachespeicher-Schreib-Operationen nicht die Annahme einer Zentraleinheits-Lese-Speicher-Anforderung während des ersten Cachespeicher-Unterzyklus stören.The write to the cache memory is done at different times for a main memory write or read operation, as shown in FIG. 23. All write operations occur at time TA, that is, during sub-cycle B of the cache operation cycle. For a main memory write operation, the write pulses are given at the time TA of the memory cycles C 1 and C 2 ( FIG. 15), while for a main memory read (update of the cache memory) the write pulse is given at the time TA of memory cycle 3 (LC, last cycle) is released. Invalid bits are also written at time TA during each cycle of the main memory cycle. Because all writes occur during the second subcycle of the cache operation cycle, the cache write operations cannot interfere with the acceptance of a CPU read request during the first cache subcycle.

Die Schreib-Cachespeicher-Impulse werden in den Identifizierungskennzeichen- Speicher 120, den Ungültigkeitsspeicher 122 und den Daten-Speicher 124 (Fig. 14) eingegeben, wenn angemessen.The write cache pulses are input to tag memory 120 , invalidate memory 122, and data memory 124 ( Fig. 14) when appropriate.

Die Zuordnung der Cachespeicher-Unterzyklen zu bestimmten Funktionen, wie beschrieben, insbesondere die Zuordnung des ersten Unterzyklus ausschließlich der Annahme einer Zentraleinheits-Speicher-Lese-Anforderung, bringt mit sich, daß eine Zentraleinheits-Adresse für eine Speicher-Lese- Operation immer angenommen wird, und zwar einmal in jedem Cachespeicher-Zyklus, um ihr Identifizierungskennzeichen mit dem Cachespeicher-Inhalt zu vergleichen. Wenn ein Cachespeicher- Treffen vorliegt, werden die angeforderten Daten zur Zentraleinheit innerhalb der Periode TA des nächsten Zentraleinheits-Mikrobefehls-Zyklus zurückgelassen. Die Zentraleinheit kann daher ohne Pause weiterarbeiten.The assignment of the cache sub-cycles to specific ones Functions as described, in particular the assignment of the first subcycle, assuming only one CPU read request, entails that a central processing unit address for a memory read Operation is always accepted, once in each Cache cycle to its identifier to compare with the cache content. If a cache If there is a meeting, the requested ones Data on the central unit within the period TA of the next CPU microinstruction cycle left behind. The central unit can therefore continue to work without a break.

Falls ein Cachespeicher-Verfehlen vorliegt, wird die Zentraleinheit angehalten, und es kann vorkommen, daß sie mehrere Zyklen wartet, bis sie einen Hauptspeicher-Zugriff erhält, der nur auftritt, wenn kein Bus-Adapter einen Zugriff verlangt. Wenn die Daten vom Hauptspeicher erhalten sind, werden sie sofort der Zentraleinheit zugeführt, und zwar während des zweiten Unterzyklus des Cachespeicher-Zyklus, und wenn die Zentraleinheit wieder anläuft, weil das Signal Cachespeicher-Verfehlen-Invers hoch wird, beginnt die Zentraleinheit in einer Operations-Phase, wie wenn ein Cachespeicher-Treffen vorgelegen hätte. In den Cachespeicher- Datenspeicher wird während des zweiten Cachespeicher- Unterzyklus eingeschrieben, nachdem die Zentraleinheit wieder angelaufen ist.If there is a cache miss, the central processing unit stopped and there may be several Cycles waits for them to access main memory receives, which only occurs if no bus adapter has access  demands. When the data is received from main memory , they are immediately fed to the central unit, and during the second subcycle of the cache cycle, and when the central unit starts up again because that Cache Missing Inverse signal starts high the central unit in an operational phase, like when there was a cache meeting. In the cache Data storage is made during the second cache Subcycle registered after the central unit has started again.

Der Cache-Speicher wird auf Bus-Adapter-Identifizierungskennzeichen- Übereinstimmungen nur während eines zweiten Unterzyklus des Cachespeicher-Operations-Zyklus überprüft. Bei einem Identifizierungskennzeichen-Übereinstimmungs- Zustand wird das Flipflop 146 gesetzt, und beim nächsten zweiten Unterzyklus (nachdem die Zentraleinheit Gelegenheit gehabt hat, eine Lese-Speicher-Anforderung einzugeben) wird das Ungültigkeits-Bit unter der Übereinstimmungs- Adresse durch die Cachespeicher-Schreib-Logik 150 (Fig. 20) geschrieben. Jeder folgende Versuch der Zentraleinheit, die Dateilage im Cache-Speicher zu lesen, führt zur Erzeugung eines Cachespeicher-Verfehlen-Signals, und der Cache-Speicher wird wie erläutert fortgeschrieben.The cache is checked for bus adapter tag matches only during a second subcycle of the cache operation cycle. In an identifier match state, flip-flop 146 is set, and in the next second sub-cycle (after the CPU has had an opportunity to enter a read memory request), the invalidate bit at the match address is cleared by the cache write. Logic 150 ( Fig. 20) is written. Each subsequent attempt by the CPU to read the cache location results in the generation of a cache miss signal and the cache is updated as explained.

Infolge dieser Zuordnung der Cachespeicher-Operations-Unterzyklen ist das Einschreiben in den Cache-Speicher (entweder das Schreiben eines Ungültigkeits-Bits, das Fortschreiben eines Doppelwortes auf ein Cachespeicher-Verfehlen hin, oder das Fortschreiben des Cache-Speichers nach einem Zentraleinheits- Hauptspeicher-Schreiben) "transparent" für die Lese- Speicher-Operationen der Zentraleinheit. Die Zentraleinheit muß niemals warten, während ein derartiges Schreiben stattfindet. Insbesondere ist im Gegensatz zu vielen Datenverarbeitungsanlagen mit einem Cache-Speicher kein "zugeordneter" Cachespeicher-Zyklus zum Fortschreiben des Cache- Speichers nach einem Cachespeicher-Verfehlen erforderlich, bevor die Zentraleinheit ihre Operation wieder aufnehmen kann. Darüber hinaus kann die Zentraleinheit unmittelbar (bei ihrem nächsten Mikrobefehl-Zyklus) eine Dateilage lesen, die gerade nach einem Cachespeicher-Verfehlen fortgeschrieben worden ist. Wenn die Zentraleinheit versucht, eine Dateilage zu lesen, die gerade die Dateilage einer Hauptspeicher-Schreib-Operation geworden ist, können Anomalien auftreten, was jedoch leicht durch geeignete Vorkehrungen bei der Mikroprogrammierung der Zentraleinheit vermieden werden kann.As a result of this allocation of cache operation sub-cycles is the cache write (either writing an invalid bit, updating a double word for a cache miss, or updating the cache memory after a central processing unit Main memory write) "transparent" for the read Central unit memory operations. The central unit never have to wait while writing takes place. In particular, in contrast to many data processing systems with a cache memory no "allocated"  Cache cycle to update the cache Memory required after a cache miss, before the central unit starts operating again can. In addition, the central unit can immediately read a file location (on your next microinstruction cycle), which just updated after a cache miss has been. If the central unit tries to read a file location that is just the file location of a Main memory write operation can become anomalies occur, however, easily by taking suitable precautions avoided when micro-programming the central unit can be.

Es sei nun anhand der Signal-Zeit-Diagramme von Fig. 21, 22 und 23 der Betrieb der erfindungsgemäßen Datenverarbeitungsanlage erläutert.The operation of the data processing system according to the invention will now be explained with reference to the signal-time diagrams of FIGS. 21, 22 and 23.

Zuerst sei auf Fig. 21 eingegangen, die die Ereignisse einer Zentraleinheits-Lese-Speicher-Operation zeigt.First, reference is made to Fig. 21 which shows the events of a CPU read / store operation.

Der Zentraleinheits-Lese-Speicher-Mikrobefehl beginnt zur Zeit TA und dauert bis einschließlich T2. An der positiven Flanke von LA-Invers wird die Adresse dem Cache-Speicher 24 vom Speicheradreß-Register 58 (Fig. 3) verfügbar gemacht. Während T12 niedrig ist, werden die A-Eingänge des Index- Multiplexers 102 (Fig. 13) angesteuert, so daß der Zentraleinheits- Index zum Cachespeicher-Adreß-Signalspeicher 114 gelangt. Der "Adreß-Takt" (L1, LA) geht hoch bei L1 und überträgt den Zentraleinheits-Index vom Signalspeicher 114 zum Adressieren des Cachespeicher-Speicherteils (Fig. 14). Als Antwort darauf werden Daten vom Datenspeicher 124 abgegeben und aus dem Daten-Signalspeicher 126 während L1, L2 (80 ns) durchgeschaltet. Diese Daten werden in das Zentraleinheits- Speicherdaten-Register 56 (Fig. 3) bei TA durchgeschaltet. Im Fall eines Cachespeicher-Treffens fährt die Zentraleinheit ohne Pause mit ihrem nächsten Mikrobefehl- Zyklus fort.The central processing unit read-memory microinstruction begins at time TA and lasts up to and including T 2 . On the positive edge of LA inverse, the address is made available to cache memory 24 by memory address register 58 ( Fig. 3). While T 12 is low, the A inputs of index multiplexer 102 ( FIG. 13) are driven so that the central unit index arrives at the cache address latch 114 . The "address clock" (L 1 , LA) goes high at L 1 and transfers the central processing unit index from latch 114 to address the cache memory portion ( Fig. 14). In response, data is output from data store 124 and gated through from data latch 126 during L 1 , L 2 (80 ns). This data is switched into the central processing unit memory data register 56 ( FIG. 3) at TA. In the event of a cache hit, the CPU continues with its next microinstruction cycle without a pause.

Wenn T12 hoch geht, wird T12-Invers niedrig, und die A- Eingänge (Zentraleinheits-Identifizierungskennzeichen) des Wähl-Identifizierungskennzeichen-Multiplexers 104 werden ausgewählt und übertragen zum Wähl-Identifizierungskennzeichen- Signalspeicher 116. Der "ein-Identifizierungskennzeichen- Takt" (L1 Invers, LA Invers) schaltet das Identifizierungskennzeichen zum Vergleicher 132 durch (Fig. 14). Das gespeicherte Identifizierungskennzeichen wird vom Identifizierungskennzeichen-Speicher 120 zur gleichen Zeit wie die gespeicherten Daten abgegeben, und zwar auf den eingegebenen Index vom Signalspeicher 114 hin; die negativ verlaufende Flanke des Signals "Identifizierungskennzeichen- Signalspeicher-Freigabe" (L0, L2) überträgt das gespeicherte Identifizierungskennzeichen zum Vergleicher 132. Das Verfehlen-Treffen-Ausgangssignal des Vergleichers 132 wird in das Flipflop 130 eingegeben, abgetastet LA-Invers ("Verfehlen-Takt"). Im Fall eines Cachespeicher- Verfehlens bewirkt das Cachespeicher-Verfehlen- Signal, das in das Flipflop 132 (Fig. 15) eingegeben worden ist, daß das Signal STCP invertiert wird bei L0-Invers.When T 12 goes high, T 12 inverse goes low, and the A inputs (central unit identifier) of the dial identifier multiplexer 104 are selected and transferred to the dial identifier latch 116 . The "one identifier clock" (L 1 inverse, LA inverse) switches the identifier to comparator 132 ( FIG. 14). The stored identifier is released from the identifier memory 120 at the same time as the stored data, in response to the entered index from the latch 114 ; the negative-going edge of the "identifier-latch enable" signal (L 0 , L 2 ) transfers the stored identifier to comparator 132 . The miss-hit output of comparator 132 is input to flip-flop 130 , sampled LA inverse ("miss clock"). In the event of a cache miss, the cache miss signal input to flip-flop 132 ( FIG. 15) causes the STCP signal to be inverted at L 0 inverse.

Wie aus Fig. 21 ersichtlich ist, wird das Cachespeicher- Verfehlen-Signal nur erzeugt, nachdem die Cachespeicher- Daten bereits in das Speicherdaten-Register der Zentraleinheit 12 übertragen worden sind. Wenn kein Verfehlen auftritt, arbeitet die Zentraleinheit mit diesen Daten weiter. Wenn ein Verfehlen auftritt, wird die Zentraleinheit nach T0 angehalten (wie noch anhand von Fig. 23 erläutert werden wird); die Daten werden ersetzt durch die Hauptspeicher-Lese-Operation, bevor die Zentraleinheit die Operation wieder aufnimmt. As can be seen from Fig. 21, the cache miss signal is generated only after the cache data has already been transferred to the central unit 12 memory data register. If there is no missing, the central processing unit continues to work with this data. If a miss occurs, the CPU is stopped after T 0 (as will be explained with reference to Fig. 23); the data is replaced by the main memory read operation before the central unit resumes the operation.

Es sei nun auf Fig. 22 eingegangen, wo die Cachespeicher- Prüfung- und -Ungültigkeitserklärungs-Operationen gezeigt sind. Diese Operationen werden nur ausgelöst bei einer Operation eines Bus-Adapter (peripheren Prozessor)- Schreibens in den Hauptspeicher. Für eine derartige Operation gibt der Bus-Adapter das MRBA-Signal an die Schaltungen von Fig. 16 und 17 ab, die das BA-Prioritäts-Signal und das BA-Freigabe-Signal erzeugen. Das BA-Freigabe-Signal geht hoch bei TA. Eine Hauptspeicher-Operation wird ausgelöst durch die Schaltung von Fig. 15, beginnend mit einem Zyklus 1 (C1) bei T0. Das Speicherzugriff-Steuersignal BAC1 wird durchgeschaltet als BBAC1, wenn die Speicher- Operation beginnt. Wenn T1, T2 hoch ist, werden die B-Eingänge (BA-Index) des Multiplexers 102 ausgewählt und durchgeschaltet zum Cachespeicher-Adreß-Signalspeicher 114. Der "Adreß-Takt" (L1, LA) gibt den BA-Index an den Cachespeicher- Speicherteil (Fig. 14) ab. Keine Daten werden zur Zentraleinheit übertragen.Referring now to Figure 22, the cache checking and invalidation operations are shown. These operations are only triggered when an operation of a bus adapter (peripheral processor) is written to the main memory. For such an operation, the bus adapter outputs the MRBA signal to the circuits of FIGS . 16 and 17, which generate the BA priority signal and the BA enable signal. The BA release signal goes high at TA. A main memory operation is triggered by the circuit of Fig. 15 starting with cycle 1 (C 1 ) at T 0 . The memory access control signal BAC 1 is turned on as BBAC 1 when the memory operation begins. When T 1 , T 2 is high, the B inputs (BA index) of multiplexer 102 are selected and switched through to the cache address latch 114 . The "address clock" (L 1 , LA) outputs the BA index to the cache memory section ( Fig. 14). No data is transferred to the central unit.

Die B-Eingänge (BA-Identifizierungskennzeichen) des Multiplexers 104 werden ausgewählt, wenn T1, T2-Invers hochgeht; das BA-Identifizierungskennzeichen wird zum Wähl-Identifizierungskennzeichen- Signalspeicher 116 übertragen. Der "ein- Identifizierungskennzeichen-Takt" (L1-Invers, LA-Invers) schaltet das Identifizierungskennzeichen durch zum Vergleicher 132. Das gespeicherte Identifizierungskennzeichen wird aus dem Identifizierungskennzeichen-Signalspeicher 134 durch das Signal "Identifizierungskennzeichen-Signalspeicher- Freigabe" (L0, L2) zum Vergleicher 134 geschaltet. Das Verfehlen/Treffen-Bit wird in das Ungültigkeitserklärungs- Flipflop 146 (Fig. 14) eingegeben, das durch den "Ungültigkeitserklärungs- Takt" bei L2 abgetastet wird. Im Fall eines Identifizierungskennzeichen-Übereinstimmungs-Zustandes wird das Ausgangssignal INV-Invers (normalerweise hoch) niedrig. The B inputs (BA identifier) of multiplexer 104 are selected when T 1 , T 2 inverse goes up; the BA identifier is transferred to the dial identifier latch 116 . The "one identifier clock" (L 1 inverse, LA inverse) switches the identifier through to the comparator 132 . The stored identifier is switched from the identifier latch 134 through the "Identifier latch enable" signal (L 0 , L 2 ) to the comparator 134 . The miss / hit bit is input to invalidation flip-flop 146 ( FIG. 14) which is sampled by the "invalidation clock" at L 2 . In the event of an identifier match condition, the INV inverted (usually high) output signal goes low.

Das Signal INV-Invers wird in die Cachespeicher-Schreib- Schaltung von Fig. 20 eingegeben, wo es die Abgabe eines Schreib-Cachespeicher-Impulses bei TA veranlaßt. Das Ausgangssignal INV des Flipflops 146 ist das Dateneingangssignal des Ungültigkeits-Bit-Speichers 122 (Fig. 14), wenn der Schreib-Cachespeicher-Impuls eingegeben wird. Die Adresse, unter der das Signal INV eingeschrieben wird, ist dieselbe Adresse, unter der der Identifizierungskennzeichen- Übereinstimmungs-Zustand ermittelt worden ist, da die Adresse im Puffer 106 während der gesamten BA-Hauptspeicher- Schreib-Operation unterhalten wird (keine weitere BA-Adresse kann eingegeben werden, bis die Speicher-Operation beendet ist, was nach einigen Cachespeicher-Operations-Zyklen der Fall sein kann). Die Ungültigkeitserklärungs-Schreib- Operation kann tatsächlich während jedes Cachespeicher-Zyklus zur gesamten Zeit der Hauptspeicher-Operation wiederholt werden, was keine Schwierigkeiten verursacht. Es sei darauf hingewiesen, daß während der gesamten BA-Hauptspeicher- Operation einschließlich der Ungültigkeitserklärungs- Schreib-Operation die Zentraleinheit weiter in jedem Cachespeicher- Zyklus die Gelegenheit hat, den Cache-Speicher zu lesen. Wenn eine der Zentraleinheits-Lese-Operationen zu einem Cachespeicher-Verfehlen führt, muß die Zentraleinheit bis zur Beendigung der BA-Hauptspeicher-Operation angehalten werden; wenn keine andere BA-Speicher-Operation ansteht, wird dann der Zentraleinheit die Speicher-Priorität durch die Schaltung von Fig. 16 gegeben, und das Hauptspeicher- Lesen sowie das Cachespeicher-Fortschreiben können ablaufen.The INV inverse signal is input to the cache write circuit of Fig. 20 where it causes a write cache pulse to be asserted at TA. The output signal INV of the flip-flop 146 is the data input signal of the invalid bit memory 122 ( FIG. 14) when the write cache pulse is input. The address at which the signal INV is written is the same address at which the identifier match state was determined, since the address in the buffer 106 is maintained during the entire BA main memory write operation (no further BA- Address can be entered until the store operation is complete, which may be the case after a few cache operation cycles). The invalidation write operation can in fact be repeated during each cache cycle at the entire time of the main memory operation, which causes no problems. It should be noted that throughout the BA main memory operation, including the invalidate write operation, the CPU continues to have the opportunity to read the cache every cycle of the cache. If any of the CPU read operations result in a cache miss, the CPU must be stopped until the BA main memory operation is complete; if no other BA memory operation is pending, then the central processing unit is given memory priority by the circuit of Fig. 16 and main memory read and cache update can proceed.

Es sei nun auf Fig. 23 eingegangen, wo die Ereignisse eines Cachespeicher-Verfehlens und -Fortschreibens gezeigt sind. Das Signal Cachespeicher-Verfehlen-Invers wird niedrig bei L0 (Fig. 14); das Signal STCP-Invers wird niedrig bei L1 (Fig. 15). Die Zentraleinheit 12 wird nach T0 angehalten. Die Hauptspeicher-Operation wird mit dem Zyklus 1 (C1) bei T0 ausgelöst. Die Hauptspeicher-Operation umfaßt drei Zyklen; in den Speicher wird während der Zyklen 1 und 2 geschrieben, und er wird während des Zyklus 3 gelesen. Der Cachespeicher-Schreib-Impuls zum Fortschreiben des Cachespeicher-Speicheranteils nach einem Verfehlen wird während des letzten Zyklus (C3) erzeugt, da der Hauptspeicher gelesen werden muß, bevor in den Cachespeicher- Speicherteil geschrieben werden kann. Das Signal Cachespeicher- Verfehlen-Invers geht erneut hoch bei L0 während des letzten Hauptspeicher-Zyklus; das Signal STCP-Invers geht hoch bei L1. Die Zentraleinheit läuft beim Impuls T1 wieder an.Referring now to Fig. 23, the cache miss and update events are shown. The cache miss inverse signal goes low at L 0 ( Fig. 14); the STCP inverse signal goes low at L 1 ( Fig. 15). The central processing unit 12 is stopped after T 0 . The main memory operation is triggered with cycle 1 (C 1 ) at T 0 . The main memory operation involves three cycles; memory is written during cycles 1 and 2 and read during cycle 3. The cache write pulse to update the cache memory portion after a miss is generated during the last cycle (C 3 ) because the main memory must be read before the cache memory portion can be written. The cache miss-inverse signal goes high again at L 0 during the last main memory cycle; the STCP inverse signal goes high at L 1 . The central unit starts again at pulse T 1 .

Für ein Zentraleinheit-Speicher-Schreiben werden die Cachespeicher- Schreib-Impulse bei TA während der Zyklen 1 und 2 abgegeben; die Zentraleinheit läuft wieder an, nachdem die Speicher-Operation begonnen hat. Die Zentraleinheit 12 kann daher den Cache-Speicher während jedes Unterzyklus A lesen, während die Schreib-Cachespeicher-Operation während des Unterzyklus B andauert.For a CPU write, the cache write pulses at TA are issued during cycles 1 and 2; the CPU will restart after the store operation has started. The CPU 12 can therefore read the cache memory during each sub-cycle A, while the write cache operation continues during the sub-cycle B.

Ausdrücklich wird in die Offenbarung der Erfindung auch die Zusammenfassung einbezogen.It is also expressed in the disclosure of the invention included the summary.

Claims (7)

1. Datenverarbeitungsanlage (10) (Fig. 1) mit
  • - einem Hauptspeicher (16)
    • - für Daten mit Befehlen zur Steuerung von Anlagen-Operationen,
  • - einem Prozessor (12) zur Datenverarbeitung,
  • - einem Cache-Speicher (24) mit
    • - einer Speichereinheit
      • - für die Kopie eines Teils der Daten im Hauptspeicher (16) und
    • - einer Cache-Steuereinheit und
  • - einer Speicher-Steuereinheit (18),
1. Data processing system ( 10 ) ( Fig. 1) with
  • - a main memory ( 16 )
    • - for data with commands for controlling plant operations,
  • - a processor ( 12 ) for data processing,
  • - A cache memory ( 24 ) with
    • - a storage unit
      • - For the copy of part of the data in the main memory ( 16 ) and
    • - a cache control unit and
  • - a memory control unit ( 18 ),
gekennzeichnet dadurch, daß
  • - der Cache-Speicher (24) besitzt:
  • - eine Cache-Einrichtung mit
    • - der Speichereinheit
      • - für die Kopie eines Teils der Daten im Hauptspeicher (16),
    • - der Cache-Steuereinheit, ausgebildet für
      • - Empfang von Lese- und Schreib-Anforderungen vom Prozessor (12) und
      • - Abgabe von Adressen entsprechend bestimmter Anforderungen an die Speicher-Steuereinheit (18), und
    • - einer Cache-Übertragungseinheit,
      die anspricht auf den Betrieb der Cache-Steuereinheit zur Datenübertragung von der Speicher-Steuereinheit (18) in den Cache-Speicher (24) und aus dem Cache-Speicher (24) zum Prozessor (12), und
  • - die Speicher-Steuereinheit (18) besitzt:
    • - ein Steuereinheit-Steuerwerk, das
      • - anspricht auf die Adressen zur Abgabe von Ausgangssignalen zum Steuern des Betriebes von Speicher-Steuereinheit (18), Cache-Speicher (24) und Hauptspeicher (16), und
      • - einen Taktgeber (20) besitzt
        für einen Cache-Operationszyklus mit erstem und zweitem Unterzyklus, und
    • - eine Steuereinheit-Übertragungseinrichtung für Übertragungen von
      • - Lese-Daten aus dem Hauptspeicher (16) in den Cache-Speicher (24) und
      • - Schreib-Daten direkt vom Prozessor (12) in den Hauptspeicher (16), und
  • - die Cache-Steuereinheit und das Steuereinheit-Steuerwerk
    • - auf den Taktgeber (20) ansprechen
      • - für Annahme nur von Lese-Anforderungen des Prozessors (12) während der ersten Unterzyklen und
      • - für Annahme und Lösung von Konkurrenzen zwischen allen anderen Cache- und Speicher-Operations-Anforderungen während der zweiten Unterzyklen.
characterized in that
  • - The cache memory ( 24 ) has:
  • - a cache facility with
    • - the storage unit
      • - for copying part of the data in the main memory ( 16 ),
    • - The cache control unit, trained for
      • - Receive read and write requests from the processor ( 12 ) and
      • - Delivery of addresses according to certain requirements to the memory control unit ( 18 ), and
    • a cache transmission unit,
      which is responsive to the operation of the cache controller for data transfer from the memory controller ( 18 ) to the cache memory ( 24 ) and from the cache memory ( 24 ) to the processor ( 12 ), and
  • - The memory control unit ( 18 ) has:
    • - a control unit control unit that
      • - Responds to the addresses for emitting output signals for controlling the operation of memory control unit ( 18 ), cache memory ( 24 ) and main memory ( 16 ), and
      • - Has a clock ( 20 )
        for a cache operation cycle with first and second sub-cycles, and
    • - A control unit transmission device for transmissions from
      • - Read data from the main memory ( 16 ) into the cache memory ( 24 ) and
      • - Write data directly from the processor ( 12 ) into the main memory ( 16 ), and
  • - The cache control unit and the control unit control unit
    • - Respond to the clock ( 20 )
      • - for accepting only read requests from the processor ( 12 ) during the first sub-cycles and
      • for accepting and resolving competitions between all other cache and store operations requests during the second sub-cycle.
2. Anlage nach Anspruch 1, gekennzeichnet dadurch, daß die Cache-Steuereinheit anspricht auf eine während eines ersten Unterzyklus empfangene Daten-Schreib-Anforderung des Prozessors (12) für Abgabe einer entsprechenden Schreib-Adresse an die Speicher-Steuereinheit (18) zum Auslösen eines Daten-Schreib-Betriebes des Prozessors (12) direkt vom Prozessor (12) in den Hauptspeicher (16) über die Speicher-Steuereinheit (18) während eines folgenden zweiten Unterzyklus.2. Installation according to claim 1, characterized in that the cache control unit responds to a data write request received by the processor ( 12 ) during a first sub-cycle for delivery of a corresponding write address to the memory control unit ( 18 ) for triggering a data write operation of the processor ( 12 ) directly from the processor ( 12 ) into the main memory ( 16 ) via the memory control unit ( 18 ) during a subsequent second subcycle. 3. Anlage nach Anspruch 1, gekennzeichnet dadurch, daß die Cache-Steuereinheit anspricht auf eine während eines ersten Unterzyklus empfangene Lese-Anforderung des Prozessors (12) von nicht in der Kopie im Cache-Speicher (24) enthaltenen Daten für Abgabe einer entsprechenden Lese-Adresse an die Speicher-Steuereinheit (18) zum Auslösen eines entsprechenden Lese-Betriebes aus dem Hauptspeicher (16) und über die Speicher-Steuereinheit (18) in den Cache-Speicher (24) während eines folgenden zweiten Unterzyklus.3. Installation according to claim 1, characterized in that the cache control unit responds to a read request received by the processor ( 12 ) during a first subcycle of data not contained in the copy in the cache memory ( 24 ) for the purpose of issuing a corresponding read Address to the memory control unit ( 18 ) for triggering a corresponding read operation from the main memory ( 16 ) and via the memory control unit ( 18 ) into the cache memory ( 24 ) during a subsequent second subcycle. 4. Anlage nach Anspruch 3, gekennzeichnet dadurch, daß die Steuereinheit-Übertragungseinrichtung besitzt:
eine Einrichtung auf den Betrieb des Steuereinheit-Steuerwerks ansprechend, auch für direkte Übertragung der im entsprechenden Lese-Betrieb vom Hauptspeicher (16) in den Cache-Speicher (24) eingelesenen Daten zum Prozessor (12).
4. Plant according to claim 3, characterized in that the control unit transmission device has:
a device responsive to the operation of the control unit control unit, also for direct transmission of the data read in the corresponding read operation from the main memory ( 16 ) into the cache memory ( 24 ) to the processor ( 12 ).
5. Anlage nach Anspruch 1,
  • - mit mindestens einem peripheren Prozessor, gekennzeichnet dadurch, daß
  • - der Cache-Speicher (24) besitzt:
  • - in der Cache-Steuereinheit
    • - eine Einrichtung, die anspricht auf periphere Prozessor-Lese-Schreib-Adressen, für Abgabe peripherer Prozessor-Adressen an die Speicher-Steuereinheit (18), und
  • - in der Steuereinheit-Übertragungseinrichtung eine Einrichtung zur Datenübertragung zwischen peripherem Prozessor und Hauptspeicher (16), und
  • - das Steuereinheit-Steuerwerk anspricht auf periphere Prozessor-Adressen für entsprechende Datenübertragung zwischen peripherem Prozessor und Hauptspeicher (16).
5. Plant according to claim 1,
  • - With at least one peripheral processor, characterized in that
  • - The cache memory ( 24 ) has:
  • - in the cache control unit
    • - A device which responds to peripheral processor read / write addresses, for issuing peripheral processor addresses to the memory control unit ( 18 ), and
  • - In the control unit transmission device, a device for data transmission between the peripheral processor and main memory ( 16 ), and
  • - The control unit control unit responds to peripheral processor addresses for corresponding data transmission between the peripheral processor and main memory ( 16) .
6. Anlage nach Anspruch 5, gekennzeichnet dadurch, daß
  • - die Cache-Steuereinheit anspricht auf periphere Adressen, die sich auf Daten im Cache-Speicher (24) beziehen,
    für Abgabe eines Ausgangssignals an das Steuereinheit-Steuerwerk zum Auslösen eines Einlesens einer neuen Kopie der Daten aus dem Hauptspeicher (16) in den Cache-Speicher (24).
6. Plant according to claim 5, characterized in that
  • - the cache control unit responds to peripheral addresses relating to data in the cache memory ( 24 ),
    for outputting an output signal to the control unit control unit in order to initiate the reading in of a new copy of the data from the main memory ( 16) into the cache memory ( 24 ).
DE19823200042 1981-01-07 1982-01-04 DATA PROCESSING SYSTEM WITH CACHE STORAGE Granted DE3200042A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US22315481A 1981-01-07 1981-01-07

Publications (2)

Publication Number Publication Date
DE3200042A1 DE3200042A1 (en) 1982-08-19
DE3200042C2 true DE3200042C2 (en) 1991-03-07

Family

ID=22835271

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19823200042 Granted DE3200042A1 (en) 1981-01-07 1982-01-04 DATA PROCESSING SYSTEM WITH CACHE STORAGE

Country Status (10)

Country Link
JP (1) JPS57169990A (en)
BE (1) BE891723A (en)
CA (1) CA1175581A (en)
CH (1) CH656470A5 (en)
DE (1) DE3200042A1 (en)
FR (1) FR2497596B1 (en)
GB (1) GB2090681B (en)
IT (1) IT1154407B (en)
NL (1) NL8200043A (en)
SE (1) SE445270B (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS617967A (en) * 1984-06-15 1986-01-14 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション I/o controller
AU5634086A (en) * 1985-05-06 1986-11-13 Wang Laboratories, Inc. Information processing system with enhanced instruction execution and support control
US4814981A (en) * 1986-09-18 1989-03-21 Digital Equipment Corporation Cache invalidate protocol for digital data processing system
DE3920883A1 (en) * 1989-06-26 1991-01-03 Siemens Ag METHOD AND ARRANGEMENT FOR INCREASING THE PROCESSING SPEED OF THE CENTRAL UNIT OF A DATA PROCESSING SYSTEM
JPH03189845A (en) * 1989-12-13 1991-08-19 Internatl Business Mach Corp <Ibm> Hierarchical memory system and cache memory subsystem
JPH0756815A (en) * 1993-07-28 1995-03-03 Internatl Business Mach Corp <Ibm> Cache operating method and cache
WO2010095554A1 (en) 2009-02-20 2010-08-26 旭硝子株式会社 Process for manufacturing electret, and electrostatic induction-type conversion element

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3588829A (en) * 1968-11-14 1971-06-28 Ibm Integrated memory system with block transfer to a buffer store
JPS51148334A (en) * 1975-06-16 1976-12-20 Hitachi Ltd Buffer memory control method
JPS5441291A (en) * 1977-09-09 1979-04-02 Sagami Chem Res Center Cluster fixed substance, production thereof and catalyst
US4169284A (en) * 1978-03-07 1979-09-25 International Business Machines Corporation Cache control for concurrent access
US4208716A (en) * 1978-12-11 1980-06-17 Honeywell Information Systems Inc. Cache arrangement for performing simultaneous read/write operations
GB2037039B (en) * 1978-12-11 1983-08-17 Honeywell Inf Systems Cache memory system

Also Published As

Publication number Publication date
SE8107832L (en) 1982-07-08
GB2090681A (en) 1982-07-14
JPS57169990A (en) 1982-10-19
IT8267010A0 (en) 1982-01-06
FR2497596A1 (en) 1982-07-09
GB2090681B (en) 1985-11-20
IT1154407B (en) 1987-01-21
NL8200043A (en) 1982-08-02
SE445270B (en) 1986-06-09
BE891723A (en) 1982-04-30
CH656470A5 (en) 1986-06-30
FR2497596B1 (en) 1989-03-03
DE3200042A1 (en) 1982-08-19
CA1175581A (en) 1984-10-02
JPH0353657B2 (en) 1991-08-15

Similar Documents

Publication Publication Date Title
EP0013737B1 (en) Multilevel storage hierarchy for a data processing system
DE3909896C2 (en)
DE2241257C3 (en) Data processing system
DE3724317C2 (en)
DE2854485C2 (en) Data processing system
DE3114961C2 (en)
DE2226382C3 (en) Data processing system with several processors and buffer memories assigned to them
DE2230266A1 (en) DATA PROCESSING SYSTEMS WITH A CENTRAL UNIT USING VIRTUAL ADDRESSING
DE3011552A1 (en) DATA PROCESSING SYSTEM WITH A MAIN STORAGE AND AT LEAST A DATA PROCESSOR WITH AN ASSIGNED ADDRESS CONVERTER
DE3320858A1 (en) MEMORY MANAGEMENT ARRANGEMENT FOR MICROPROCESSOR SYSTEMS
DE2523372B2 (en) Input-output port controller
DE3502147C2 (en)
DE4213073A1 (en) CACHE CONTROLLER AND METHOD FOR SELECTING A PATH OF A CACHE DIRECTORY FOR A LINE-FILLED CYCLE
DE3911721C2 (en)
DE3200042C2 (en)
EP0185260B1 (en) Interface for direct information transfer
DE2530599C2 (en) Method and circuit arrangement for controlling input / output devices
DE4114053A1 (en) COMPUTER SYSTEM WITH CACHE MEMORY
DE2749884C2 (en)
DE2610428C3 (en) Arrangement for controlling the intermediate storage of data to be transmitted between two functional units in a buffer memory
EP1076856A1 (en) Cache memory for two-dimensional data fields
DE3832758A1 (en) COMPUTERIZED WORKSTATION
DE69334046T2 (en) Cache memory device
DE4292241C2 (en) Device and method for sequentially performing multiple bus transactions between a processor and pre-installed memory modules in a computer system
DE3842100C2 (en) Control method for a cache system

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
D2 Grant after examination
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: WANG LABORATORIES, INC., BILLERICA, MASS., US

8327 Change in the person/name/address of the patent owner

Owner name: SAMSUNG ELECTRONICS CO. LTD., SUWON, KYUNGKI, KR

8328 Change in the person/name/address of the agent

Free format text: PATENT- UND RECHTSANWAELTE WUESTHOFF & WUESTHOFF, 81541 MUENCHEN