DE3012205C2 - Multiprocessor data processing system with several buffer memories each assigned to a processor - Google Patents

Multiprocessor data processing system with several buffer memories each assigned to a processor

Info

Publication number
DE3012205C2
DE3012205C2 DE3012205A DE3012205A DE3012205C2 DE 3012205 C2 DE3012205 C2 DE 3012205C2 DE 3012205 A DE3012205 A DE 3012205A DE 3012205 A DE3012205 A DE 3012205A DE 3012205 C2 DE3012205 C2 DE 3012205C2
Authority
DE
Germany
Prior art keywords
address
tag
memory
flag
original
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
Application number
DE3012205A
Other languages
German (de)
Other versions
DE3012205A1 (en
Inventor
Wolfgang Dipl.-Phys. 8000 München Feißel
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Priority to DE3012205A priority Critical patent/DE3012205C2/en
Publication of DE3012205A1 publication Critical patent/DE3012205A1/en
Application granted granted Critical
Publication of DE3012205C2 publication Critical patent/DE3012205C2/en
Expired 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/0806Multiuser, multiprocessor or multiprocessing cache systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

Die Erfindung bezieht sich auf eine Multiprozessor-Datenverarbeitungsanlage gemäß dem Oberbegriff des Hauptanspruches.The invention relates to a multiprocessor data processing system according to the preamble of the main claim.

Eine derartige Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern ist aus der DE-AS 22 26 382 bekannt.Such a data processing system with several processors and buffer memories assigned to them is known from DE-AS 22 26 382.

Größere Datenverarbeitungsanlagen enthalten neben einem Zentralprozessor vielfach noch wenigstens einen Ein/Ausgabe-Prozessor, der selbständig die Übertragung von Daten zwischen peripheren Einheiten und dem Arbeitsspeicher bzw. umgekehrt steuert. Es ist ferner bekannt, ab einer bestimmten Leistungsklasse zwischen Zentralprozessor und Arbeitsspeicher einen Pufferspeicher, ein sogenanntes Cache, vorzusehen, in welchem ein Teil des im Arbeitsspeicher enthaltenen Gesamtdatenbestandes zum Zwecke eines schnelleren Zugriffs zwischengespeichert werden kann. Die Effektivität eines solchen Pufferspeichers ist dabei dann am größten, wenn er ausschließlich vom Zentralprozessor benutzt wird, d. h. auf Multiprozessor-Anlagen übertragen, wenn — wie aus der DE-AS 22 26 382 bekannt — jedem Prozessor dieses Systems ein eigener Pufferspeicher ein sogenannter »Private Cache« zur Verfügung steht. Beim Private Cache ergeben sich jedoch Probleme in bezug auf die korrekte Datenhaltung, wasLarger data processing systems often contain at least a central processor an input / output processor that independently transfers data between peripheral units and the main memory and vice versa. It is also known from a certain performance class to provide a buffer memory, a so-called cache, between the central processor and the main memory, in which part of the total database contained in the main memory for the purpose of faster Access can be cached. The effectiveness of such a buffer storage is then on largest if it is used exclusively by the central processor, d. H. transferred to multiprocessor systems, if - as known from DE-AS 22 26 382 - each processor of this system has its own buffer memory a so-called "private cache" is available. In the case of the private cache, however, there are Problems with correct data management, what

im folgenden anhand einer kurzen Erläuterung von Aufbau und Arbeitsprinzip eines Cache näher dargelegt werden soll.In the following, a brief explanation of the structure and working principle of a cache is explained in more detail shall be.

Ein Pufferspeicher besteht üblicherweise aus π Zeilen, in die Daten aus dem Arbeitsspeicher übertragen werden können. Aus organisatorischen Gründen sind der Hauptspeicher und das Cache i:· Seiten bzw. Bänke und in Klassen eingeteilt.A buffer memory usually consists of π lines into which data can be transferred from the main memory. For organizational reasons, the main memory and the cache i are: · Pages or banks and divided into classes.

Stellt man sich bildlich vor, daß die Klassen in horizontaler Richtung und die Seiten (Bänke) in vertikaler Richtung gezählt werden, dann werden die zu übertragenden Daten, z. B. in Form von Datenblöcken immer nur in vertikaler Richtung von der jeweiligen Klasse des Hauptspeichers in die jeweils gleiche Klasse des Cache bzw. umgekehrt übertragen.Imagine that the classes in a horizontal direction and the sides (banks) in vertical direction are counted, then the data to be transmitted, z. B. in the form of data blocks always only in the vertical direction from the respective class of the main memory to the same class of the cache and vice versa.

Das Adreßwort zum Auffinden einer bestimmten Speicherstelle im Hauptspeicher setzt sich folgerichtig aus drei Teilen zusammen, nämlich der Seitenadresse mit den höchstwertigen Bits, der Klassenadresse mit niederwertigeren Bits und der Zellenadresse mit den niederwertigsten Bits. Jeder dieser Dalenpufferzellen ist für den jeweils zugehörigen Seitenadreßteil (Tag) sowie für ein oder mehrere Kennzeichenbits (Flag) eine im sogenannten Tag/Flag-Speicherteil vorhandene Tag/ Flag-Zelle fest zugeordnet. Bei Lesezugriffen des Zentralprozessors wird deshalb zunächst dieser Tag/ Flag-Speicher daraufhin untersucht, ob die vom Zentralprozessor gesendete Adresse bzw. die zugehörigen Daten überhaupt im Pufferspeicher enthalten sind. Sofern die gewünschte Adresse gespeichert ist, können die zugehörigen Daten unmittelbar aus dem Datenpufferteil zum Zentralprozessor übertragen werden, ansonsten wird ein Zugriff zum Arbeitsspeicher erforderlich. In bezug auf Schreiboperationen werden Arbeitsspeicher und Pufferspeicher vielfach so betrieben, daß gemäß dem »Store-through«-Prinzip immer in den Arbeitsspeicher geschrieben wird und in das Cache nur dann, wenn die zu überschreibenden Daten bereits im Cache dupliziert werden. Wenn dann bei einem Lesezugriff die gewünschte Adresse nicht im Tag/Flag-Speicherteil des Caches vorgefunden wird, können die zugehörigen, aktuellen Daten auf alle Fälle aus dem Arbeitsspeicher geholt werden. Die konsequente Anwendung des »Store-through«-Prinzips bei Multiprozessor-Systemen hat nun zwangsläufig zur Folge, daß bei Schreiboperationen in den Arbeitsspeicher und in jeden der im System vorhandenen »Private-Caches« geschrieben wird, sofern dort die zu überschreibenden Daten bereits dupliziert waren. Letzteres ist jedoch nur dann festzustellen, wenn die Tag/Flag-Speicher aller »Private-Caches« durchgemustert werden. Daraus ergeben sich nun zwei unangenehme Folgen. Einmal muß von jedem »Private-Cache« zu allen anderen je eine Schreibverbindung hergestellt werden und zum anderen wird der private Lese-Schreibbeirieb zwischen einem Zentralprozessor und seinem »Private-Cache« zeitlich empfindlich gestört. Das erstgenannte Verbindungsproblem läßt sich dadurch entschärfen und zumindest im Aufwand reduzieren, wenn die Aktualisi^rungsaufforderung bei Schreiboperationen zentral vom Arbeitsspeicher gesteuert wird. Hinsichtlich des zweiten Problems, d. h. der zeitlichen Störung des Betriebs zwischen Zentralprozessor und seinem »Private-Cache« durch Schreiboperationen anderer Prozessoren wird davon ausgegangen, daß die verschiedenen, an einem System beteiligten Prozessoren nie ständig simultan die gleichen Bereiche, sondern mit hoher Wahrscheinlichkeit verschiedene Adreßbereiche im Arbeitsspeicher beschreiben. Es folgt de raus, daß bei nur wenigen der von anderen Prozessoren bewirkten Schreibaktualisierungsaufforderungen die zu überschreibenden Daten dupliziert vorliegen und daß der Inhalt des Datenpuffers deshalb nur selten modifizieri werden muß. Nur ein sc'cher Vorgang ist in den laufenden Betrieb des Zentralprozessors und seines »Private-Cache« einzuschieben und führt zu einer zeitlichen Störung.The address word for finding a specific memory location in the main memory is consistent composed of three parts, namely the page address with the most significant bits and the class address with the least significant bits and the cell address with the least significant bits. Each of these Dalenbuffer cells is for the associated page address part (tag) and for one or more identifier bits (flag) an im so-called tag / flag memory part permanently assigned to existing tag / flag cell. With read access to the Central processor is therefore first examined this tag / flag memory to see whether the from Central processor sent address or the associated data are actually contained in the buffer memory. If the desired address is saved, the associated data can be taken directly from the data buffer part to the central processor, otherwise there is an access to the main memory necessary. With regard to write operations, the main memory and buffer memory are often operated in such a way that that according to the "store-through" principle, writing is always carried out in the main memory and in the cache only if the data to be overwritten is already duplicated in the cache. If then with one Read access the desired address is not found in the tag / flag memory part of the cache, the associated, current data can be fetched from the main memory in any case. The consistent one Use of the "store-through" principle in multiprocessor systems now has the inevitable consequence that during write operations in the main memory and is written to each of the "private caches" in the system, provided that there are those to be overwritten Data was already duplicated. The latter can only be determined if the tag / flag memory of all "Private caches" are screened. This now has two unpleasant consequences. Must once a write connection can be established from each "private cache" to all the others and to the other becomes the private read-write operation between a central processor and its "private cache" in terms of time sensitively disturbed. The first-mentioned connection problem can thereby be defused and at least in the Reduce effort if the update request for write operations is centrally from the main memory is controlled. Regarding the second problem, i. H. the temporal disruption of operations between Central processor and its "private cache" by write operations of other processors is therefrom assumed that the various processors involved in a system never constantly and simultaneously the same areas, but with a high probability different address areas in the main memory describe. It follows that with only a few of the write update requests issued by other processors the data to be overwritten are duplicated and that the content of the data buffer therefore only rarely has to be modified. Just one This process is to be pushed into the ongoing operation of the central processor and its "private cache" and leads to a temporal disruption.

Der vorliegenden Erfindung liegt nun die AufgabeThe present invention is now the task

ίο zugrunde, einen Lösungsweg aufzuzeigen, wie die beim »Private-Cache«-Betrieb durch Aktualisierungsanforderungen bedingten zeitlichen Störungen möglichst einfach verhindert oder wenigstens erheblich reduziert werden können.ίο based on showing a solution, like the one with "Private cache" operation if possible due to time disruptions caused by update requests can easily be prevented or at least significantly reduced.

Ausgehend von einer Multiprozessor-Datenverarbei-Kingsanlage der eingangs näher bezeichneten Art wird diese Aufgabe erfindungsgemäß durch die im kennzeichnenden Teil des Hauptanspruches genannten Merkmale gelöst.Based on a multiprocessor data processing system of the type specified in the introduction, this object is achieved according to the invention by the in the characterizing Part of the main claim mentioned features solved.

Die MaiEnahme, den Tag/Flag-Speicher eines jeden »Private-Cache« zu duplizieren, hat nämlich den Vorteil, daß der eine als Original bezeichnete Tag/Flag-Speicher wie üblich zur Auffindung der Daten im Datenpufferteil bei Lese/Schreibzugriffen des zugehörigen Prozessors dient, während der zweite, als Duplikat bezeichnete Tag/Flag-Speicher zur Auffindung der Daten im DatenpuFerteil bei Schreiboperationen aller anderen Prozessoren herangezogen wird. Beide Tag/Flag-Speicher werden demnach völlig unabhängig voneinander benutzt und laufen mit zwei Ausnahmen asynchron zueinander. Der eine Ausnahmefall ist dann gegeben, wenn die Lesedaten in den Daienpufferteil eingetragen werden, weil dann die Adresse des Dateneintrags in beide Tag/Flag-Speicher simultan eingeschrieben werden muß. Im zweiten Fall, wenn das Duplikat bei einer Aktualisierungsanforderung das Vorhandensein der zu überschreibender, Daten anzeigt, wird der Prozessor Cache-Betrieb angehalten und eine Schreib- oder auch Löschoperation ausgeführt.The assumption of duplicating the tag / flag memory of each "private cache" has the advantage of that the one designated as original tag / flag memory, as usual, to find the data in the data buffer part is used for read / write accesses by the associated processor, while the second is called a duplicate Tag / flag memory for finding the data in the data buffer part during write operations of all others Processors is used. Both tag / flag memories are therefore completely independent of one another used and run asynchronously to each other with two exceptions. The one exceptional case is then given when the read data is entered in the file buffer part because the address of the data entry is then written into both tag / flag memories simultaneously got to. In the second case, if the duplicate is detected by an update request, the to Overwriting, indicating data, the processor cache operation is paused and a write or also Delete operation performed.

■to Im folgenden wird ein Ausführungsbeispiel der Erfindung anhand der Zeichnung näher erläutert.In the following, an embodiment of the Invention explained in more detail with reference to the drawing.

Die Figur zeigt den prinzipiellen Aufbau eines in einem Muütiprozessorsystem zwischen Arbeitsspeicher und je einem der Prozessoren eingeschalteten Puffer-Speichers. Arbeitsspeicher und Pufferspeicher sind jeweils in Seiten unterteilt, die beispielsweise einen Umfang von 2 KByte haben. Jede Seite ist wiederum in Klassen unterteilt. Für die Arbeitsweise des Pufferspeichers ist dabei wesentlich, daß Daten aus dem Arbeitsspeicher nur in die gleiche Klasse im Datenpuffer eingetragen werden, aus der sie im Arbeitsspeicher stammen.The figure shows the basic structure of a in a Muütiprocessorsystem between working memory and one of the processors activated buffer memory. RAM and buffer memory are each subdivided into pages that have a size of 2 KByte, for example. Each side is in turn in Classes divided. For the operation of the buffer memory it is essential that data from the Main memory can only be entered in the same class in the data buffer from which it is entered in the main memory come.

Jedem Pufferspeicher, der üblicherweise auch als Cache bezeichnet wird, ist ein eigenes Adreßregister ARP zur Speicherung der vollständigen Adresse zugeordnet, mit der über den Arbeitsspeicher zum Pufferspeicher zugegriffen wird. Der höherwertige Teil des Adreßregisters ARP enthält dabei die sogenannte Seitenadresse, während im niederwertigen Teil die Klassenadresse gespeichert ist, die die Adressierung innerhalb einer Seite vornimmt. Der Pufferspeicher besteht im einzelnen aus einem in η gleich große Bänke DX ... Bn unterteilten Datenpuffer und ebenfalls n, den einzelnen Datenpufferbänken zugeordneten Tag/Flag-Speichern, in denen die Seitenadressen aller Pufferspeichereinträge gespeichert sind, wobei gemäß dem »Set-Assoz:iativ«-Prinzip keine strenge Zuordnung auf eine bestimmte Bank, sondern nur eine teilassoziativeEach buffer memory, which is usually also referred to as a cache, is assigned its own address register ARP for storing the complete address with which the buffer memory is accessed via the main memory. The higher-order part of the address register ARP contains the so-called page address, while the lower-order part stores the class address that performs the addressing within a page. The buffer memory consists in detail of a data buffer subdivided into η banks of equal size DX ... Bn and also n tag / flag memories assigned to the individual data buffer banks in which the page addresses of all buffer memory entries are stored, whereby according to the »Set-Assoz: iative «principle, there is no strict assignment to a specific bank, but only a partially associative one

Zuordnung auf eine von mehreren Bänken vorgesehen ist.Assignment to one of several banks is provided.

Jeder Tag/Flag-Speicher besteht aus zwei Speichereinheiten mit identischem Speicherinhalt, wobei die erste Speichereinheit im folgenden als Original-Tag/ Flag-Speicher TFO 1 ... η und die andere Speichereinheit als Duplikat-Tag/Flag-Speicher TFD1 ... π bezeichnet wird. Beide Speichereinheiten 7"FO \ ... η und 7"FD1 ... η sind am Dateneingang mit dem Seitenadreßteil des dem zugehörigen Prozessor, z. B. dem Zentralprozessor zugeordneten Adreßregister ARP verbunden. Lese/Schreib-Zugriffe des jeweiligen Prozessors erfolgen wie üblich in der Weise, daß mit Hilfe der im Adreßregister ARP vorhandenen niederwertigen Adreßbits, der Klassenadresse, eine Seitenadresse pro Bank ausgewählt und diese ausgewählte Seitenadresse mit der Seitenadresse des Adreßregisters ARP verglichen wird. Dieser Adressenvergleich findet in einzelnen, den Original-Tag/Flag-Speichern 7"FO 1 ... π nachgeschalteten Vergleichsschaltungen CO 1 ... η statt, die bei Gleichheit beider Adressen anzeigen, daß die adressierten Daten in einer der Bänke Bi ... Bn des Datenpuffers vorhanden sind und in den zugehörigen Prozessor übertragen werden können.Each tag / flag memory consists of two memory units with identical memory contents, the first memory unit in the following as the original tag / flag memory TFO 1 ... η and the other memory unit as a duplicate tag / flag memory TFD 1 .. . π is denoted. Both memory units 7 "FO \ ... η and 7" FD1 ... η are connected to the data input with the page address part of the associated processor, e.g. B. the central processor associated address register ARP connected. Read / write accesses of the respective processor are carried out as usual in such a way that with the help of the low-order address bits in the address register ARP , the class address, one page address is selected per bank and this selected page address is compared with the page address of the address register ARP. This address comparison takes place in individual comparison circuits CO 1 ... η connected downstream of the original tag / flag memories 7 "FO 1 ... π, which, if both addresses are the same, indicate that the addressed data is in one of the banks Bi .. Bn of the data buffer are available and can be transferred to the associated processor.

Bei Schreibaktualisierungsanforderungen an das »Private-Cache« wird nun anstelle des Original-Tag/ Flag-Speichers 7"FO1 ... η das sogenannte Duplikat 7FD1 ... η verwendet, wodurch die ansonsten unvermeidliche zeitliche Belastung des Private-Cache in vorteilhafter Weise weitgehend reduziert werden kann. Die für die Schreiboperationen erforderlichen Aktualisierungsadressen werden in einem eigenen, dem Arbeitsspeicher zugeordneten Adreßregister ARS bereiigestellt. Der Zugriff erfolgt auch hier analog zum Original-Tag/Flag-Speicher TFO 1 ... /7 in der Weise, daß über die Klassenadresse, d. h. in diesem Fall über die niederwertigen Adreßbits des Adreßregisters A/?S eine Seitenadresse pro Bank im Duplikat TFD1 ... π ausgewählt und mit Hilfe von den Duplikat-Tag/Flag-Speichern TFD1 ... η nachgeschalteten Vergleichsschaltungen CDI ... η ein Vergleich zwischen der ausgewählten Seitenadresse und der im Adreßregister ARS vorhandenen Seitenadresse durchgeführt wird.In the case of write update requests to the "private cache", the so-called duplicate 7FD1 ... η is now used instead of the original tag / flag memory 7 "FO1 ... η , which advantageously reduces the otherwise unavoidable time load on the private cache The update addresses required for the write operations are provided in a separate address register ARS assigned to the main memory. Here, too, access is analogous to the original tag / flag memory TFO 1 the class address, ie in this case a page address per bank in the duplicate TFD 1 ... π is selected via the low-order address bits of the address register A /? S and comparison circuits connected downstream using the duplicate tag / flag memories TFD 1 ... η CDI ... η a comparison is made between the selected page address and the page address present in the address register ARS.

Die in Abhängigkeit von der Art der verschiedenen Zugriffe zum Pufferspeicher unterschiedliche Zuschaltung der in den beiden Adreßregistern ARP und ARS bereitgestellten Adressen erfolgt mittels zweier Multiplexer MUXX bzw. MUX 2, wobei die Ausgänge des Multiplexers MUX 1 mit dem Original-Tag/Flag-Speicher TFO 1 ... η und die Ausgänge des Multiplexers MUX2 mit dem Duplikat-Tag/Flag-Speicher TFDX ... η verbunden sind. Eingangsseitig s:nd die beiden Multiplexer MUXX und MUX 2 in der Weise geschaltet, daß der Klassenadreßteil des Adreßregisters ARP mit dem ersten Eingang von MUX1 und mit dem zweiten Eingang von MUX 2 verbunden ist, während der Klassenadreßteil des Adreßregisters A/?Smit dem ersten Eingang von MUX 2 und mit dem zweiten Eingang von MUX 1 verbunden ist.Depending on the type of different accesses to the buffer memory, the addresses provided in the two address registers ARP and ARS are switched on by means of two multiplexers MUXX or MUX 2, the outputs of multiplexer MUX 1 with the original tag / flag memory TFO 1 ... η and the outputs of the multiplexer MUX2 are connected to the duplicate tag / flag memory TFDX ... η . On the input side s : nd the two multiplexers MUXX and MUX 2 connected in such a way that the class address part of the address register ARP is connected to the first input of MUX 1 and to the second input of MUX 2 , while the class address part of the address register A /? first input of MUX 2 and connected to the second input of MUX 1.

Normale Lesezugriffe vom Prozessor erfolgen nun in der Weise, daß — sofern an einem der Vergleicherschaltungen COl ... η Adressengleichheit signalisiert wird — über einen mit den Ausgängen aller Vergleicherschaltungen CO1... η verbundenen Bankauswahlcodierer BACein Auswahlcode an einen Bankauswahlmultiplexer BAM geht, mit dem die jeweils zuständige Bank B1... η eingestellt und die angeforderten Daten D vom Pufferspeicher zum Prozessor durchgeschaltet werden.Normal read accesses by the processor are now carried out in such a way that - if the same address is signaled at one of the comparator circuits CO1 ... η - a selection code is sent to a bank selection multiplexer BAM via a bank selection encoder BAC connected to the outputs of all comparator circuits CO 1 ... with which the respectively responsible bank B 1 ... η is set and the requested data D is switched through from the buffer memory to the processor.

Bei Schreiboperationen muß zunächst festgestelltIn the case of write operations, it must first be established

werden, ob die Information im Cache dupliziert ist. Dazu sind die Ausgänge der Korriparatoren COl ... η außerdem mit jeweils zugeordneten UND-Gliedern UD1 ... π verbunden, deren jeweils zweite Eingänge mit einem Schreibimpuls WCL angesteuert werden. Die Ausgänge dieser UND-Glieder wiederum sind mit der jeweils zugehörigen Bank BX ... η des Datenpuffers verbunden, so daß bei Schreiboperationen, sofern eine Adreßübereinstimmung vorliegt, die neuen Daten in den Datenpuffer eingetragen werden können. Dem Datenpuffer ist ferner ein eigenes Datenregister DR zugeordnet, in dem in Abhängigkeit von der jeweiligen Operation ent weder die Leseda ten vom Arbeitsspeicher oder die Schreibdaten vom Prozessor bereitgestellt werden.whether the information in the cache is duplicated. For this purpose, the outputs of the Korriparatoren COl ... also η with respectively associated AND gates UD 1 ... π connected, whose respective second inputs are controlled by a write pulse WCL. The outputs of these AND gates are in turn connected to the respectively associated bank BX... The data buffer is also assigned its own data register DR , in which, depending on the respective operation, either the read data from the main memory or the write data from the processor are provided.

Die Ausgänge der den Duplikat-Tag/Flag-Speichern TFD 1 ... π zugeordneten Vergleichsschaltung-^ CD 1 ... η sind über eine ODER-Verknüpfung OG mit nachgeschaltetem Flipflop FF mit einer Ablaufsteuerung AS verbunden, die unter anderem die Ansteuerung für die beiden Adreßmultiplexer MUX1 und MUX 2 sowie die Erzeugung eines Schreib/Löschsignals SL bewirkt.The outputs of the comparison circuit- ^ CD 1 ... η assigned to the duplicate tag / flag memory TFD 1 ... π are connected via an OR operation OG with a downstream flip-flop FF to a sequence control AS which, among other things, controls the causes the two address multiplexers MUX 1 and MUX 2 and the generation of a write / erase signal SL .

Die Ausgänge der Vergleichsschaltungen CD X ... η sind außerdem über η weitere UND-Glieder UD X ... η mit dem Schreib- bzw. Löschsignal SL verknüpft, während die jeweiligen Ausgänge dieser UND-Glieder UD1 ... π sowohl mit den zugehörigen Original-Tag/ Flag-Speichern TFOl ... η als auch mit den entsprechenden Duplikat-Tag/Flag-Speichern TFD1 ... η verbunden sind. Auf diese Weise können bei Schreibaktualisierungen — sofern in den jeweiligen Vergleichsschaltungen CDX ... η Adressengleichheit gegeben ist — die Tag/Flag-Einträge duplizierter Daten sowohl im Original-Tag/Flag-Speicher 7F01 ... π als auch im Duplikat-Tag/Flag-Speicher TFD1... π jeweils für ungültig erklärt werden. Bei Lesezugriffen, bei denen die gewünschten Daten nicht im Pufferspeicher vorhanden sind und deshalb erst neu eingetragen werden müssen, kann mit Hilfe des Schreibimpulses WCL die zugehörige Schreibadresse sowohl in den Original- als auch in den Duplikat-Tag/Flag-Speicher eingetragen werden.The outputs of the comparison circuits CD X ... η are also linked via η further AND elements UD X ... η with the write or delete signal SL , while the respective outputs of these AND elements UD 1 ... π both with the associated original tag / flag memory TFOl ... η as well as the corresponding duplicate tag / flag memory TFD 1 ... η are connected. In this way, in the case of write updates - provided that the respective comparison circuits CDX ... η have the same address - the tag / flag entries of duplicated data both in the original tag / flag memory 7F01 ... π and in the duplicate tag / Flag memory TFD 1 ... π can each be declared invalid. For read accesses where the desired data is not available in the buffer memory and therefore has to be re-entered, the associated write address can be entered in both the original and the duplicate tag / flag memory with the help of the write pulse WCL.

Hierzu 1 Blatt Zeichnungen1 sheet of drawings

Claims (4)

Patentansprüche:Patent claims: 1. Multiprozessor-Datenverarbeitungsanlage mit einem Arbeitsspeicher und mehreren, jeweils zwischen Arbeitsspeicher und je einem der Prozessoren eingeschalteten Pufferspeichern, die jeweils ein Adreßregister mit einem niedrigwertigen Teil für dl·; Klassenadresse und einem höherwertigen Teil für eine Seitenadresse enthalten, die ferner aus einem in mehrere gleich große Seiten unterteilten Datenpuffer und mehreren, jeweils einem dieser Seiten zugeordneten, der Speicherung der Seitenadresse dienenden Original-Tag/Flag-Speichern bestehen, wobei Pufferspeicher und Arbeitsspeicher in eine vorgegebene Anzahl von Klassen unterteilt sind und '5 die Daten in beiden Speichern in die jeweils gleiche Klasse eingespeichert werden, ferner mit der Klassenadresse der jeweilige Inhalt von Datenpuffer und zugehörigem Original-Tag/Flag-Speicher ausgewählt wird und am Ausgang eines jeden Original-Tag/Flag-Speichers mit Hilfe je einer Vergleichsschaltung ein Adressenvergleich zwischen der unmittelbar vom Adreßregister des Prozessors stammenden Adresse und der im Original-Tag/Flag-Speicher gegebenen gespeicherten Seitenadresse erfolgt, dadurch gekennzeichnet, daß jedem Original-Tag/Flag-Speicher (TFO 1 ... n) ein Duplikat-Tag/Flag-Speicher (TFD 1 ... n) zugeordnet ist, der einerseits ebenso wie der Original-Tag/Flag-Speicher mit dem Seitenadreßteil des dem zugehörigen Prozessor zugeordneten Adreßregister (ARP) verbunden und andererseits mit dem Klassen-Adreßteil eines dem Arbeitsspeicher zugeordneten weiteren Adreßregisters (ARS) steuerbar ist und dessen Ausgang mit einer weiteren Vergleichsschaltung (CD 1 ... n) verbunden ist, in der ein Adressenvergleich zwischen der im Duplikat-Tag/F!ag-Speicher gespeicherten Seitenadresse und einer unmittelbar vom Arbeitsspeicher kommenden Seitenadresse stattfindet, daß Original- ίο Tag/Flag-Speicher (TFO 1 ... n> und Duplikat-Tag/ Flag-Speicher (TFD 1 ... n) wechselweise vom Klassenadreßteil des Prozessor-Adreßregisters (ARP) und des weiteren Adreßregisters (ARS) ansteuerbar sind und daß die Ausgänge der Vergleichsschaltungen in der Weise geschaltet sind, daß mittels der Ausgangssignale der Original-Vergleichsschaltungen (CO i ... n) sowohl die Datenausgabe aus der jeweils zugehörigen Datenpufferbank (B i ... n) als auch die Einspeicherung neuer Daten in die jeweils zugehörige Datenpufferbank (B 1 ... n) gesteuert werden und mittels der mit einem Schreib/Löschsignal (SL) verknüpfbaren Ausgangssignale der Duplikat-Vergleichsschaltungen (CD 1 ... n) die jeweiligen Einträge sowohl im Original- als auch im Duplikat-Tag/Flag-Speicher löschbar und neue Einträge einspeicherbar sind.1. Multiprocessor data processing system with a working memory and several buffer memories, each connected between the working memory and one of the processors, each having an address register with a low-order part for dl ·; Contain class address and a more significant part for a page address, which also consist of a data buffer divided into several pages of the same size and several original tag / flag memories assigned to one of these pages and used to store the page address predetermined number of classes are subdivided and '5 the data are stored in both memories in the same class, furthermore the respective content of the data buffer and associated original tag / flag memory is selected with the class address and at the output of each original tag / Flag memory with the help of a comparison circuit, an address comparison is made between the address coming directly from the address register of the processor and the stored page address given in the original tag / flag memory, characterized in that each original tag / flag memory (TFO 1 ... n) a duplicate tag / flag memory (TFD 1 ... n) , which on the one hand, like the original tag / flag memory, is connected to the page address part of the address register (ARP) assigned to the associated processor and, on the other hand, can be controlled with the class address part of a further address register (ARS) assigned to the main memory Output is connected to a further comparison circuit (CD 1 ... n) in which an address comparison takes place between the page address stored in the duplicate tag / F! Ag memory and a page address coming directly from the main memory, the original ίο tag / flag -Memory (TFO 1 ... n> and duplicate tag / flag memory (TFD 1 ... n) can be controlled alternately by the class address part of the processor address register (ARP) and the further address register (ARS) and that the outputs of the Comparison circuits are connected in such a way that, by means of the output signals of the original comparison circuits (CO i ... n), both the data output from the respective associated data buffer ferbank (B i ... n) as well as the storage of new data into the respective associated data buffer bank (B 1 ... n) be controlled and (by means of the connectable with a write / erase signal (SL) output signals of the duplicate comparison circuits CD 1 ... n) the respective entries in both the original and the duplicate tag / flag memory can be deleted and new entries can be saved. 2. Multiprozessor-Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet, daß zwischen den Adreßregistern (ARP, ARS) des f>o Prozessors und des Arbeitsspeichers und dem Original- bzw. Duplikat-Tag/Flag-Speicher (TFO i ... π bzw. TFDi ... n) zwei Multiplexer (MUXi, MUX2) eingeschaltet sind, derart, daß der Klassenadreßteil des dem Prozessor zugeordneten Adreßregisters (ARP) mit dem ersten Eingang (1) des einen Multiplexers (MUX 1) und mit dem zweiten Eingang (2) des anderen Multiplexers (MUX2) verbunden ist, wahrend der Klassenadreßteil des dem Arbeitsspeicher zugeordneten Adreßregisters (ARS) mit dem zweiten Eingang (2) des einen Multiplexers (MUX 1) und dem ersten Eingang (!) des anderen Multiplexers (MUX 2} verknüpfi ist und daß ferner der Ausgang des einen Multiplexers (MUXi) mi·, dem Original-Tag/Flag-Speicher (FOi ... n) und der Ausgang des anderen Multiplexers (MUX 2) mit dem Duplikat-Tag/Flag-Speicher verbunden ist.2. Multiprocessor data processing system according to claim 1, characterized in that between the address registers (ARP, ARS) of the f> o processor and the main memory and the original or duplicate tag / flag memory (TFO i ... π or . TFDi ... n) two multiplexers (MUXi, MUX 2) are switched on, so that the class address part of the address register (ARP) assigned to the processor with the first input (1) of one multiplexer (MUX 1) and with the second input (2) of the other multiplexer (MUX 2) is connected, while the class address part of the address register (ARS) assigned to the main memory is connected to the second input (2) of one multiplexer (MUX 1) and the first input (!) Of the other multiplexer (MUX 2} is linked and that the output of one multiplexer (MUXi) mi ·, the original tag / flag memory (FOi ... n) and the output of the other multiplexer (MUX 2) with the duplicate tag / flag -Storage is connected. 3. Multiprozessor-Datenverarbeitungsanlage nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die Ausgänge der dem Original-Tag/Flag-Speicher (TFOi ... n) nachgeschalteten Vergleicherschaltungen (COi ... n) einerseits mit einem Bankauswahlcodierer (BAC) zur Ansteuerung eines den Datenpufferbänken (B 1 ... n)nachgeschalteten Bankauswahlmu.'tiplexers (BAM) verbunden und andererseits mit einem Schreibimpuls (WCL) über jeweils zugeordnete UND-Glieder (UGi ... n) verknüpft sind, deren Ausgänge mit den jeweils zugeordneten Bänken (Bi ... n) des Datenpuffers verbunden sind.3. Multiprocessor data processing system according to claim 1 or 2, characterized in that the outputs of the original tag / flag memory (TFOi ... n) downstream comparator circuits (COi ... n) on the one hand with a bank selection encoder (BAC) for Control of a bank selection mu.'tiplexer (BAM) connected downstream of the data buffer banks (B 1 ... n) and, on the other hand, linked to a write pulse (WCL) via respectively assigned AND elements (UGi ... n) , the outputs of which are linked to the respectively associated banks (Bi ... n) of the data buffer are connected. 4. Multiprozessor-Datenverarbeitungsanlage nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Ausgänge der den Duplikat-Tag/Flag-Speichern (TFDi... ^zugeordneten Vergleichsschaltungen (CD i ... n) einerseits mit einem Schreib-Löschsignal (SL) über jeweils zugeordnete zweite UND-Glieder (UDi ... n) verknüpft sind, deren Ausgänge sowohl mit den jeweils zugehörigen Duplikat-Tag/Flag-Speichern (TFD 1 ... n) als auch mit dem jeweils entsprechenden Original-Tag/Flag-Speichern (TFO i ... n) verbunden sind und andererseits über ein ODER-Glied (OG) mit einer Ablaufsteuerung (AS) verbunden sind, deren Ausgangssignal zur Ansteuerung sowohl der Adreß-Multiplexer (MUX 1, MUX2) als auch des Schreib-Löschsignal-Eingangs der zweiten UND-Glieder (UD 1... n^dient.4. Multiprocessor data processing system according to one of the preceding claims, characterized in that the outputs of the duplicate tag / flag memories (TFDi ... ^ associated comparison circuits (CD i ... n) on the one hand with a write / delete signal (SL ) are linked via assigned second AND elements (UDi ... n) , the outputs of which are linked to the respective associated duplicate tag / flag memory (TFD 1 ... n) as well as to the respective original tag / Flag memories (TFO i ... n) are connected and, on the other hand, are connected via an OR gate (OG) to a sequence control (AS) whose output signal is used to control both the address multiplexer (MUX 1, MUX2) and the Write / delete signal input of the second AND element (UD 1 ... n ^ is used.
DE3012205A 1980-03-28 1980-03-28 Multiprocessor data processing system with several buffer memories each assigned to a processor Expired DE3012205C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE3012205A DE3012205C2 (en) 1980-03-28 1980-03-28 Multiprocessor data processing system with several buffer memories each assigned to a processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE3012205A DE3012205C2 (en) 1980-03-28 1980-03-28 Multiprocessor data processing system with several buffer memories each assigned to a processor

Publications (2)

Publication Number Publication Date
DE3012205A1 DE3012205A1 (en) 1981-10-08
DE3012205C2 true DE3012205C2 (en) 1982-05-27

Family

ID=6098714

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3012205A Expired DE3012205C2 (en) 1980-03-28 1980-03-28 Multiprocessor data processing system with several buffer memories each assigned to a processor

Country Status (1)

Country Link
DE (1) DE3012205C2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724549A (en) * 1992-04-06 1998-03-03 Cyrix Corporation Cache coherency without bus master arbitration signals

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3771137A (en) * 1971-09-10 1973-11-06 Ibm Memory control in a multipurpose system utilizing a broadcast

Also Published As

Publication number Publication date
DE3012205A1 (en) 1981-10-08

Similar Documents

Publication Publication Date Title
DE2226382C3 (en) Data processing system with several processors and buffer memories assigned to them
DE3131341C2 (en)
DE2227882C2 (en) Virtual storage arrangement
DE2235841C2 (en) Data processing system with memory control for at least one processor and buffer memories assigned to it
DE3151745C2 (en)
DE2630323C3 (en) Data storage device with a main memory, an auxiliary memory and a look-ahead logic
DE2241257C3 (en) Data processing system
DE69629140T2 (en) Cache-ability attribute for virtual addresses in caches with both virtual and physical index
DE2939411C2 (en) Data processing system with virtual memory addressing
DE2847960A1 (en) MEMORY CONTROL DEVICE
DE2523414B2 (en) Hierarchical storage arrangement with more than two storage levels
DE2339636C2 (en) Device for addressing a writable microprogram memory
DE3621321A1 (en) CACHE STORAGE OR MULTIPROCESSOR SYSTEM AND OPERATING METHOD
DE2240433A1 (en) HIERARCHICAL DATA STORAGE DEVICE
DE2749850A1 (en) HYBRID SEMICONDUCTOR STORAGE WITH ASSOCIATIVE PAGE ADDRESSING, PAGE EXCHANGE AND CONTROL ON THE CHIP
DE3803759A1 (en) CACHE STORAGE FOR USE IN MULTIPROCESSOR SYSTEMS
DE2726488A1 (en) ADDRESS TRANSLATION DEVICE
DE10006430A1 (en) Method for adhering to coherence protocol for data storage system especially computer cache, includes switching of first status of entry in first cache through first cache into second status, so that entry of first cache can be cleared
DE69130626T2 (en) Method for managing a cache memory device
DE4234695C2 (en) Computer storage system and method for maintaining cache coherence between a data cache and a segment descriptor cache
DE3012205C2 (en) Multiprocessor data processing system with several buffer memories each assigned to a processor
EP1449091A2 (en) Method for synchronising a memory with the main memory of a computer
DE4227784A1 (en) COMPUTER SYSTEM AND METHOD FOR REMOVING A PAGE ERROR
DE3121710C2 (en) Control device for a virtual memory in a data processing system
EP0257405B1 (en) Method and apparatus for updating control bit combinations

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8339 Ceased/non-payment of the annual fee