[go: up one dir, main page]

DE3216238C1 - Data processing system with virtual partial addressing of the buffer memory - Google Patents

Data processing system with virtual partial addressing of the buffer memory

Info

Publication number
DE3216238C1
DE3216238C1 DE3216238A DE3216238A DE3216238C1 DE 3216238 C1 DE3216238 C1 DE 3216238C1 DE 3216238 A DE3216238 A DE 3216238A DE 3216238 A DE3216238 A DE 3216238A DE 3216238 C1 DE3216238 C1 DE 3216238C1
Authority
DE
Germany
Prior art keywords
address
memory
tag
page
flag
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
DE3216238A
Other languages
German (de)
Inventor
Wolfgang 8000 München Feißel
Andrew 8014 Neubiberg Simmonds
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
Siemens Corp
Original Assignee
Siemens AG
Siemens Corp
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, Siemens Corp filed Critical Siemens AG
Priority to DE3216238A priority Critical patent/DE3216238C1/en
Application granted granted Critical
Publication of DE3216238C1 publication Critical patent/DE3216238C1/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/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • 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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed

Landscapes

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

Abstract

The virtual subaddressing of the data buffer subdivided into several banks or pages of equal size and of the tag/flag memories in each case associated with one of these data buffers and used for storing the page addresses is done in such a manner that the real class address is extended by n virtual additional bits of the page address for addressing data buffer banks having in each case 2<n>-times the page capacity. Furthermore, several duplicate tag/flag memories (TFD1), associated with the respective original tag/flag memories (TFO1), which are subjected to real addressing also with respect to the n additional bits, and comparison circuits (CO1, DC1) associated with the outputs of the original and duplicate tag/flag memories, are provided in which the real page addresses, or the page address reduced by the n additional bits, are compared with the page address existing in the respective tag/flag memories. Each of the duplicate tag/flag memories associated in each case with one data buffer bank (DB1) consists of 2<n> memory units, each memory unit (TFD1-00, TFD1-01, TFD1-10, TFD1-11) in each case being associated with one of 2<n> bit combinations of the n additional bits. <IMAGE>

Description

Um dieser Beschränkung zu entgehen, wird die Direktadresse gemäß einem aus der DE-OS 29 39 411 bekannten Adressierungsverfahren um so viele virtuelle Adreßbitstellen erweitert, wie für die Adressierung jeweils einer Datenpufferbank erforderlich sind. Mit n Zusatzbits sind demnach jeweils Datenpufferbänke mit 2n-facher Seitenkapazität adressierbar. Bei Verwendung dieses Adressierungsverfahrens erweist es sich dann aber als zweckmäßig, jedem Tag/Flag-Speicher, der ebenfalls mit der virtuellen Teiladresse arbeiten muß, einen Duplikat-Tag/Flag-Speicher zuzuordnen, der im Unterschied zum Original in allen Adreßteilen reell adressiert wird, damit bei Suchvorgängen mit reellen Adressen der Originalteil im Pufferspeicher schnell und unkompliziert gefunden werden kann. Da Original- und Duplikat-Tag/Flag-Speicher immer auf dem gleichen Stand zu halten sind, ergeben sich sowohl von der virtuellen als auch der reellen Teiladresse her Überschneidungen, wenp beim Einrichten der Adreßübersetzungstafeln keine Rücksicht auf die Verkopplung zwischen virtueller und reeller Teiladresse genommen wird. Als Folge davon reduziert sich dann im statistischen Mittel die effektiv genutzte Pufferspeicherkapazität in Abhängigkeit von der Zahl der verwendeten virtuellen Adressierungsbits wie folgt: Zahl der virtuellen Adreßbits Effektive Kapazität/ Cache-Kapazität 0 1,0 1 0,666 2 0,548 3 0,54 Je größer die Zahl der virtuellen Adressierungsbits wird, desto mehr nähert sich die effektiv nutzbare Kapazität dem Wert 50%.To avoid this restriction, the direct address is set according to a from DE-OS 29 39 411 known addressing method by as many virtual address bit positions expanded how each data buffer bank is required for addressing. With n additional bits, there are accordingly data buffer banks with 2n times the page capacity addressable. Using this addressing method then proves it but as expedient, any tag / flag memory that also with the virtual partial address must work to assign a duplicate tag / flag memory, which, in contrast to the original, is actually addressed in all address parts, so in searches with real addresses, the original part in the buffer memory quickly and can be found easily. Because original and duplicate tag / flag storage must always be kept up to date, result from both the virtual and the real partial address overlap, wenp when setting up the Address translation tables do not consider the coupling between virtual and real partial address is taken. As a result, it then reduces in statistical terms Mean the effectively used buffer storage capacity as a function of the number of the virtual addressing bits used as follows: Number of virtual address bits Effective capacity / cache capacity 0 1.0 1 0.666 2 0.548 3 0.54 The larger the The number of virtual addressing bits becomes, the closer it effectively approaches usable capacity to the value 50%.

Der vorliegenden Erfindung liegt nun die Aufgabe zugrunde, eine Datenverarbeitungsanlage der eingangs genannten Art in der Weise zu verbessern, daß auch bei virtueller Teiladressierung des Pufferspeichers dessen verfügbare Kapazität wieder in vollem Umfang genutzt werden kann. The present invention is based on the object of a data processing system of the type mentioned at the outset in such a way that even with virtual partial addressing of the buffer memory its available capacity is used again to the full can be.

Die Lösung dieser Aufgabe ergibt sich erfindungsgemäß aus den kennzeichnenden Merkmalen des Patentanspruches 1 bzw. des nebengeordneten Anspruches 3. The solution to this problem results according to the invention from the characterizing Features of claim 1 or the independent claim 3.

Im folgenden wird ein Ausführungsbeispiel der Erfindung anhand der Zeichnung näher erläutert. In the following an embodiment of the invention is based on the Drawing explained in more detail.

Die Figur zeigt den prinzipiellen Aufbau eines z. B. in einem Multiprozessorsystem mit mehreren Zentralprozessoren und gegebenenfalls einem oder mehreren Ein-/Ausgabe-Prozessoren zwischen Arbeitsspeicher und je einem der Zentralprozessoren eingeschalteten Pufferspeichers. Arbeitsspeicher und Pufferspeicher sind jeweils in Seiten gleicher Größe eingeteilt, wobei innerhalb jeder Seite wieder nach Klassen unterschieden wird. Jedem Pufferspeicher ist ein eigenes Adreßregister ARP zugeordnet. Der höherwertige Teil dieses Adreßregisters ARP mit den Bitstellen 0 bis 19 enthält dabei die sogenannte Seitenadresse, während im niederwertigen Teil mit den Bitstellen 20 bis 31 die Klassenadresse gespeichert ist, die die Adressierung innerhalb einer Seite vornimmt. Der Pufferspeicher arbeitet nach dem »Set-Assoziativ«-Prinzip und besteht im einzelnen aus einem, in mehrere gleich große Bänke unterteilten Datenpuffer und mehreren, den einzelnen Datenpufferbänken jeweils zugeordneten Tag/Flag-Speichern, in denen die reellen Seitenadressen aller Pufferspeichereinträge gespeichert sind. In der Zeichnung sind aus Platzmangel bzw. im Hinblick auf eine bessere Übersichtlichkeit nur eine -Datenpufferbank DB 1 mit zugehörigem Original-TagfFlag-Speicher TFO 1 dargestellt. The figure shows the basic structure of a z. B. in a multiprocessor system with several central processors and possibly one or more input / output processors between the main memory and one of the central processors each switched on buffer memory. Working memory and buffer memory are each divided into pages of the same size, a distinction is made between classes within each page. Every buffer tank a separate address register ARP is assigned. The most significant part of this address register ARP with the bit positions 0 to 19 contains the so-called page address while the class address is stored in the lower-order part with bit positions 20 to 31 that does the addressing within a page. The buffer memory is working according to the »set-associative« principle and consists of one and several equal-sized banks divided data buffers and several, the individual data buffer banks each assigned tag / flag memory, in which the real page addresses of all Buffer entries are saved. Due to lack of space or with a view to a better overview only one database DB 1 with associated original TagfFlag memory TFO 1 is shown.

Ausgehend von einer Datenverarbeitungsanlage mit virtueller Speicheradressierung weist nun das in der Figur dargestellte Cache insofern eine Besonderheit auf, als zur Adressierung der Tag/Flag-Speicher TFO 1 und der Datenpufferbänke DB 1 nicht nur die Klassenadresse - Bits20 bis 31 aus dem Adreßregister ARP -sondern so viele weitere, aber virtuelle Adreßbits VAD benutzt werden, wie zur vollständigen Adressierung jeder Datenpufferbank notwendig sind. Beispielsweise können mit zwei virtuellen Zusatzbits 18, 19 jeweils Datenpufferbänke mit vierfacher Seitenkapazität, allgemein mit n Zusatzbits Datenpufferbänke mit 2"-facher Seitenkapazität adressiert werden. Nach Ablauf der Zugriffszeit stehen dann an den Ausgängen des Tag/Flag-Speichers TFO 1 und der Datenpufferbank DB 1 die jeweils in Frage kommenden Einträge zur Verfügung. Durch Vergleich der jeweils aktuellen reellen Seitenadresse aus dem Adreßregister ARP mit dem reellen Seitenadreßeintrag aus dem Tag/Flag-Speicher TFO 1 kann mit Hilfe eines dem Tag/Flag-Speicher TFO 1 nachgeschalteten Vergleichers CO 1 erkannt werden, ob der gewünschte Eintrag im Cache vorliegt, da ein Eintrag im Cache wie beim »Lesen« auch mit den virtuellen Zusatzadreßbits VAD ausgeführt wird. Bei Adressengleichheit entsteht ein Steuersignal, mit dem die jeweils zuständige Datenbank ausgewählt und die angeforderten Daten D durchgeschaltet werden. Based on a data processing system with virtual memory addressing the cache shown in the figure now has a special feature in that not for addressing the tag / flag memory TFO 1 and the data buffer banks DB 1 only the class address - bits 20 to 31 from the address register ARP - but so many further, but virtual address bits VAD are used, such as for complete addressing each data buffer bank are necessary. For example, with two virtual Additional bits 18, 19 each have data buffer banks with four times the page capacity, in general n additional bits can be used to address data buffer banks with 2 "times the page capacity. After the access time has expired, the tag / flag memory outputs are available TFO 1 and the data buffer bank DB 1, the relevant entries are available. By comparing the current real page address from the address register ARP with the real page address entry from the tag / flag memory TFO 1 can be used with Detected by means of a comparator CO 1 connected downstream of the tag / flag memory TFO 1 whether the desired entry is in the cache, since an entry in the cache such as is also executed with the virtual additional address bits VAD when "reading". If the addresses are the same a control signal is created with which the relevant database is selected and the requested data D are switched through.

Es gibt demnach beim Lesen von Cache-Einträgen dann keine Probleme mit der virtuellen Teiladressierung, solange der Zugriff auf die gleiche Adressierungsweise, d. h. mit der gleichen reellen Klassenadresse und der gleichen virtuellen Seitenadresse vorgenommen wird. Greifen nun mehrere Benutzer mit verschiedenen virtuellen Adressen - wobei im vorliegenden Beispiel die verschiedenen virtuellen Adressen aufgrund von entsprechenden Übersetzungstafeln stets zur gleichen reellen Adresse führen sollen - zum gleichen reellen Speichereintrag zu, dann kommen zwar sämtliche Einträge in das Cache, aber jeweils an verschiedenen Stellen im Cache. Diese Vorgehensweise hätte den Nachteil, daß bei einer Änderung der Information, z. B. There are therefore no problems reading cache entries with the virtual partial addressing, as long as the access to the same addressing method, d. H. with the same real class address and the same virtual page address is made. Access now multiple users with different virtual addresses - where in the present example the different virtual addresses are due always lead from corresponding translation tables to the same real address should - to the same real memory entry, then all entries come in the cache, but in different places in the cache. This approach would have the disadvantage that if the information changes, e.g. B.

bei einem Schreibvorgang, nur jeweils ein Cache-Eintrag direkt, und zwar nur der dem jeweils aktuellen Benutzer zugeordnete Cache-Eintrag adressiert würde, während die anderen zeitaufwendig gesucht werden müßten. Um dies zu vermeiden, ist dafür zu sorgen, daß der jeweilige Cache-Eintrag stets nur einmal vorhanden ist. Dies kann aber dann bei einem Lesezugriff eines Benutzers immer noch dazu führen, daß ein Eintrag direkt nicht gefunden wird, obwohl er an einer anderen Stelle im Cache - von einem anderen Benutzer mit einer anderen virtuellen Teiladresse geladen - doch vorhanden ist. Das Aufdecken eines solchen Falles wird über die gemeinsame reelle Adresse in der Weise gelöst, daß die reelle Seitenadresse im Tag/Flag-Speicher nicht nur einmal gespeichert wird, sondern zusätzlich ein zweites Mal in dem sogenannten Duplikat-Tag/Flag-Speicher TFD 1, der im Unterschied zum Original-Tag/ Flag-Speicher TFO 1 in allen Adreßteilen reell adressiert wird. Demzufolge wird bei Schreibaktualisierungsvorgängen zusätzlich zum Original-Tag/Flag-Speicher TFO 1 auch noch der entsprechende Duplikat-Tag/ Flag-Speicher TFD 1 verwendet, wobei die für die Schreiboperationen erforderlichen Aktualisierungsadressen in einem eigenen, dem Arbeitsspeicher zugeordneten Adreßregister ARS bereitgestellt werden. Da Original- und Duplikat-Tag/Flag-Speicher immer auf dem gleichen Stand zu halten sind, ergeben sich sowohl von der virtuellen als auch der reellen Teiladresse her Überschneidungen, wenn beim Einrichten der Adreßübersetzungstafeln keine Rücksicht auf die Verkopplung zwischen virtueller und reeller Teiladresse genommen wird. Diese Überschneidungen führen dann dazu, daß die an sich verfügbare Kapazität des Pufferspeichers mit wachsender Zahl der verwendeten virtuellen Zusatzbits VAD effektiv auf die Hälfte reduziert wird. Dieser effektiven Kapazitätsreduzierung wird nun dadurch begegnet, daß der jeweils einer Datenpufferbank DB 1 zugeordnete Duplikat-Tagl Flag-Speicher TFD 1 jeweils mehrfach ausgebildet wird, wobei die Zahl der einzelnen Speichereinheiten TFD 1-00, TFD 1-01, TFD 1-11 jeweils durch die Anzahl der möglichen Bitkombinationen aus den für die Adressierung vorgesehenen virtuellen Zusatzbits VAD bestimmt wird. Bei einem virtuellen Zusatzbit werden demnach pro Datenpufferbank zwei Duplikate, bei zwei Zusatzbits gemäß dem dargestellten Beispiel insgesamt vier TaglFlag-Duplikate, allgemein bei n Zusatzbits insgesamt 2n Tag/Flag-Duplikate benötigt. Jedes dieser Tag/Flag-Duplikate ist einer bestimmten Bitkombination streng zugeordnet. Hierdurch wird bei voller Ausnutzung des Pufferspeichers eine Überschneidung im Tag/Flag-Duplikat vermieden. Der Original-Tag/ Flag-Speicher bleibt von dieser Maßnahme unberührt, so daß sich die Zugriffszeit seitens des Zentralprozessors nicht verändert.in the case of a write process, only one cache entry directly at a time, and only the cache entry assigned to the current user is addressed while the others would have to be searched for in a time-consuming process. To avoid this, it must be ensured that the respective cache entry only ever exists once is. However, if a user has read access, this can still lead to that an entry is not found directly, although it is in a different place in the Cache - loaded by another user with a different partial virtual address - but is present. Uncovering such a case is about the common real address resolved in such a way that the real page address is in tag / flag memory is not only saved once, but also a second time in the so-called Duplicate tag / flag memory TFD 1, which differs from the original tag / flag memory TFO 1 is actually addressed in all address parts. As a result, during write updates in addition to the original tag / flag memory TFO 1 also the corresponding duplicate tag / Flag memory TFD 1 used, with those required for the write operations Update addresses in a separate address register assigned to the main memory ARS will be provided. Because original and duplicate tag / flag memory is always on must be kept at the same level arise from the virtual as well as the real one Partial address from overlaps when setting up the address translation tables do not consider the coupling between virtual and real partial address is taken. These overlaps then lead to that the available capacity of the buffer memory as the number of used virtual additional bits VAD is effectively reduced by half. This effective capacity reduction is countered by the fact that each one Duplicate tag / flag memory TFD 1 allocated to data buffer bank DB 1 multiple times in each case is formed, the number of individual storage units TFD 1-00, TFD 1-01, TFD 1-11 by the number of possible bit combinations from the for the Addressing provided virtual additional bits VAD is determined. With a virtual Additional bits are accordingly two duplicates per data buffer bank, with two additional bits according to the example shown, a total of four TaglFlag duplicates, generally at n additional bits required a total of 2n tag / flag duplicates. Each of these tag / flag duplicates is strictly assigned to a certain bit combination. This will be at full Using the buffer memory, an overlap in the tag / flag duplicate is avoided. The original tag / flag memory remains unaffected by this measure, so that the access time on the part of the central processor does not change.

Den Ausgängen der einzelnen Duplikat-Tag/Flag-Speicher sind jeweils Duplikat-Komparatoren DC1-00, DC 1-01, DC 1-10, DC 1-11 zugeordnet, in denen ein Adressenvergleich zwischen der im jeweiligen Duplikat-Tag/Flag-Speicher gespeicherten Adresse mit der reellen, um die reellen Zusatz-Adreßbits verringerten Seitenadresse stattfindet. Die Ausgänge der einzelnen Duplikat-Komparatoren sind schließlich über ein ODER-Glied OR mit einer Schreibsteuerung WRC verbunden, die ein entsprechendes Steuersignal für die jeweils zugehörige Datenpufferbank liefert, so daß bei Schreiboperationen, sofern eine Adreßübereinstimmung vorliegt, die neuen Daten in den Datenpuffer eingetragen werden können. Dem Datenpuffer ist eingangsseitig ein eigenes Datenregister DR zugeordnet, in dem in Abhängigkeit von der jeweiligen Operation entweder die Lesedaten LD vom Arbeitsspeicher oder die Schreibdaten SD vom Prozessor bereitgestellt werden. The outputs of the individual duplicate tag / flag memory are each Duplicate Comparators DC1-00, DC 1-01, DC 1-10, DC 1-11 assigned, in which a Address comparison between those stored in the respective duplicate tag / flag memory Address with the real page address reduced by the real additional address bits takes place. The outputs of the individual duplicate comparators are finally over an OR gate OR connected to a write control WRC, which has a corresponding Supplies control signal for the respective data buffer bank, so that during write operations, if there is an address match, the new data is entered in the data buffer can be. A separate data register DR is assigned to the data buffer on the input side, in which, depending on the respective operation, either the read data LD from RAM or the write data SD are provided by the processor.

Die in der Figur dargestellte Schaltung läßt sich hinsichtlich der Duplikat-Tag/Flag-Speicher vereinfachen, wenn die den virtuellen Zusatz-Adreßbits entsprechenden reellen Zusatzadreßbits im Duplikat-Tag/Flag-Speicher mit abgespeichert und bei einem Zugriff in den jeweiligen Vergleichsvorgang mit einbezogen werden. Dadurch läßt sich die Vergrößerung des Duplikat Tag/Flag-Speichers um den Faktor 2n vermeiden, weil in diesem Fall - abgesehen vom erforderlichen Speicherplatz für die Zusatzbits - die ursprüngliche Kapazität ausreicht. The circuit shown in the figure can be in terms of Simplify duplicate tag / flag memory if the additional virtual address bits corresponding real additional address bits are also stored in the duplicate tag / flag memory and be included in the respective comparison process when accessed. This allows the duplicate tag / flag memory to be enlarged by the factor Avoid 2n because in this case - apart from the space required for the additional bits - the original capacity is sufficient.

Claims (3)

Patentansprüche: 1. Datenverarbeitungsanlage mit wenigstens einem Zentralprozessor und wenigstens einem dem jeweiligen Zentralprozessor individuell zugeordneten Pufferspeicher mit virtueller Teiladressierung des aus einem in mehrere gleich große Bänke bzw. Claims: 1. Data processing system with at least one Central processor and at least one of the respective central processor individually allocated buffer memory with virtual partial addressing of the from one to several equally sized benches or Seiten unterteilten Datenpuffers und mehreren, jeweils einem dieser Datenpufferbänke zugeordneten, der Speicherung der Seitenadressen dienenden Original-Tag/Flag-Speichern in der Weise, daß die reelle Klassenadresse um n virtuelle Zusatzbits der Seitenadresse zur Adressierung von Datenpufferbänken mit jeweils 2n-facher Seitenkapazität erweitert wird, ferner mit mehreren, den jeweiligen Original-Tag/Flag-Speichern zugeordneten Duplikat-Tag/Flag-Speichern, die auch hinsichtlich der n Zusatzbits reell adressiert werden, sowie mit an den Ausgängen der Original- und Duplikat-Tag/Flag-Speichern vorgesehenen Vergleichsschaltungen, in denen ein Vergleich der aus der virtuellen Seitenadresse durch Übersetzung abgeleiteten reellen Seitenadresse bzw. der reellen Seitenadresse abzüglich der n Zusatzbits mit der in den Original-bzw. Duplikat-Tag/Flag-Speichern gegebenenfalls vorhandenen Seitenadresse #erfolgt und die bei Adressengleichheit ein Steuersignal für die zugehörige Datenpufferbank liefern, d a d u r c h g e -kennzeichnet, daß jeder der jeweils einer Datenbank (DB 1) zugeordneten Duplikat-Tag/ Flag-Speicher (TFD 1) aus 2n Speichereinheiten (TFD 1-00, TFD 1-01, TFD 1-10, TFD 1-11) besteht.Pages of subdivided data buffers and several, each one of these Original tag / flag memories assigned to data buffer banks and used to store the page addresses in such a way that the real class address is increased by n additional virtual bits of the page address for addressing data buffer banks each with 2n times the page capacity is, furthermore, assigned to several of the respective original tag / flag memories Duplicate tag / flag storage, which is also actually addressed with regard to the n additional bits as well as at the outputs of the original and duplicate tag / flag memories provided comparison circuits in which a comparison of the from the virtual Page address or the real page address derived by translation Page address minus the n additional bits with the one in the original or Duplicate Tag / Flag Save Any existing page address # takes place and if the addresses are the same provide a control signal for the associated data buffer bank, d a d u r c h g e - identifies, that each of the duplicate tag / flag memories assigned to a database (DB 1) (TFD 1) consists of 2n storage units (TFD 1-00, TFD 1-01, TFD 1-10, TFD 1-11). 2. Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet, daß jede Speichereinheit (TFD 1-00, TFD 1-01, TFD 1-10, TFD 1-11) des Duplikat-Tag/Flag-Speichers jeweils einer von 2n-Bitkombinationen aus den n Zusatz-Adreßbits zugeordnet ist und daß beim Nachladen des Pufferspeichers jeweils nur diejenige Speichereinheit ansteuerbar ist, deren zugeordnete Bitkombination mit der in der aktuellen virtuellen Schreibadresse vorhandenen Bitkombination für die n Zusatzbits übereinstimmt. 2. Data processing system according to claim 1, characterized in that that each storage unit (TFD 1-00, TFD 1-01, TFD 1-10, TFD 1-11) of the duplicate tag / flag memory is assigned to one of 2n-bit combinations from the n additional address bits and that when reloading the buffer memory only that memory unit is controllable whose assigned bit combination with that in the current virtual Write address matches the existing bit combination for the n additional bits. 3. Datenverarbeitungsanlage mit wenigstens einem Zentralprozessor und wenigstens einem dem jeweiligen Zentralprozessor individuell zugeordneten Pufferspeicher mit virtueller Teiladressierung des aus einem in mehrere gleich große Bänke bzw. 3. Data processing system with at least one central processor and at least one buffer memory individually assigned to the respective central processor with virtual partial addressing of the from one to several banks of the same size or Seiten unterteilten Datenpuffers und mehreren, jeweils einem dieser Datenpufferbänke zugeordneten, der Speicherung der Seitenadressen dienenden Original-Tag/Flag-Speichern in der Weise, daß die reelle Klassenadresse um n virtuelle Zusatzbits der Seitenadresse zur Adressierung von Datenpufferbänken mit jeweils 2n-facher Seitenkapazität erweitert wird, ferner mit mehreren, den jeweiligen Original-Tag/Flag-Speichern zugeordneten Duplikat-Tag/Flag-Speichern, die auch hinsichtlich der n Zusatzbits reell adressiert werden, sowie mit an den Ausgängen der Original- und Duplikat-Tag/Flag-Speichern vorgesehenen Vergleichsschaltungen, in denen ein Vergleich der aus der virtuellen Seitenadresse durch Übersetzung abgeleiteten reellen Seitenadresse bzw. der reellen Seitenadresse abzüglich der n Zusatzbits mit der in den Original-bzw. Duplikat-Tag/Flag-Speichern gegebenenfalls vorhandenen Seitenadresse erfolgt und die bei Adressengleichheit ein Steuersignal für die zugehörige Datenpufferbank liefern, dadurch gekennzeichnet, daß im Duplikat-Tag/Flag-Speicher zusätzlich zur reellen Seitenadresse die den n virtuellen Zusatzbits entsprechenden reellen n Zusatzbits abgespeichert sind.Pages of subdivided data buffers and several, each one of these Original tag / flag memories assigned to data buffer banks and used to store the page addresses in such a way that the real class address is increased by n additional virtual bits of the page address for addressing data buffer banks each with 2n times the page capacity is, furthermore, assigned to several of the respective original tag / flag memories Duplicate tag / flag storage, which is also actually addressed with regard to the n additional bits as well as at the outputs of the original and duplicate tag / flag memories provided comparison circuits in which a comparison of the from the virtual Page address or the real page address derived by translation Page address minus the n additional bits with the one in the original or Duplicate Tag / Flag Save possibly existing page address and the Address equality a Supply control signal for the associated data buffer bank, characterized in that that in the duplicate tag / flag memory, in addition to the real page address, the n Real n additional bits corresponding to virtual additional bits are stored. Die Erfindung bezieht sich auf eine Datenverarbeitungsanlage mit wenigstens einem Zentralprozessor gemäß den Merkmalen des Oberbegriffs des Patentanspruchs 1 bzw. 3. The invention relates to a data processing system at least one central processor according to the features of the preamble of the patent claim 1 or 3. Größere Datenverarbeitungsanlagen arbeiten vielfach mit virtueller Speicheradressierung. Dies hat zur Folge, daß beim Zugriff zum Arbeitsspeicher vorher jede virtuelle Adresse in eine reelle physikalische Adresse übersetzt werden muß. 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. Pufferspeicher und Arbeitsspeicher sind üblicherweise nach dem Kongruenzklassenprinzip organisiert, d. h. in Seiten unterteilt, wobei innerhalb jeder Seite wieder nach Klassen unterschieden wird. Für die Arbeitsweise der in mehrere- Bänke von Seitengröße unterteilten Pufferspeicher ist nun die Festlegung wichtig, daß Datenworte aus dem Arbeitsspeicher zwar in irgendeine Bank des Pufferspeichers, aber innerhalb einer jeden Bank nur in diejenige Klasse eingetragen werden dürfen, aus der das Datenwort aus dem Arbeitsspeicher entnommen wurde. Dies hat den Vorteil, daß bei einem Suchvorgang nach einem bestimmten Eintrag im Pufferspeicher sowohl die Bänke des Datenpuffers als auch die den Bänken zugeordneten Tag/Flag-Speicher, in denen die Seitenadressen der einzelnen Einträge enthalten sind, direkt und sofort mit der Klassenadresse selektiert werden können, weil der Klassenadreßteil einer Benutzeradresse bei der Adreßübersetzung unverändert bleibt. Wenn der Adreßübersetzungsspeicher wie üblich analog dem Pufferspeicher aufgebaut und organisiert ist, kann dieser zum gleichen Zeitpunkt wie die jeweils mit der reellen Klassenadresse angesteuerten Tag/Flag-Speicher und die Datenpufferbänke mit der virtuellen Seitenadresse angesteuert werden, so daß alle drei Aggregate nach Ablauf der Zugriffszeit gleichzeitig den selektierten Inhalt an ihren Ausgängen präsentieren. Dieser simultane Zugriff zum Tag/Flag-Speicher und zu den Datenpufferbänken ist aber nur dann möglich, wenn die Kapazität der einzelnen Datenpufferbänke mit der für die Adreßübersetzung gewählten Seitengröße übereinstimmt. Neuere Speicherbausteine mit größerer Kapazität gestatten es nun, in einem Speicherbaustein mehrere Seiten zu speichern mit der Folge, daß dann eine Ansteuerung allein mit der Klassenadresse nicht mehr möglich ist. Larger data processing systems often work with virtual ones Memory addressing. This has the consequence that when accessing the main memory beforehand every virtual address has to be translated into a real physical address. It is also known from a certain performance class between the central processor and working memory to provide a buffer memory, a so-called cache, in which part of the total database contained in the main memory for the purpose can be cached for faster access. Buffer memory and memory are usually organized according to the congruence class principle, i. H. in pages subdivided, whereby within each page a distinction is made again according to classes. For the operation of the buffer memory divided into several banks of page size it is now important to establish that data words from the main memory are in some Bank of the buffer memory, but only in that class within each bank may be entered from which the data word is taken from the main memory became. This has the advantage that when searching for a specific entry in the buffer memory both the banks of the data buffer and those assigned to the banks Tag / flag memory in which the page addresses of the individual entries are contained can be selected directly and immediately with the class address, because the The class address part of a user address remains unchanged during the address translation. If the address translation memory is structured as usual in the same way as the buffer memory and is organized, this can be done at the same time as each with the real class address controlled tag / flag memory and the data buffer banks can be controlled with the virtual page address, so that all three units after the access time has expired, the selected content is simultaneously at their outputs present. This simultaneous access to the tag / flag memory and the data buffer banks but is only possible if the capacity of the individual data buffer banks is with matches the page size selected for the address translation. Newer memory modules With a larger capacity, it is now possible to have several pages in one memory module to save with the result that then a control with the class address alone is no longer possible.
DE3216238A 1982-04-30 1982-04-30 Data processing system with virtual partial addressing of the buffer memory Expired DE3216238C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE3216238A DE3216238C1 (en) 1982-04-30 1982-04-30 Data processing system with virtual partial addressing of the buffer memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE3216238A DE3216238C1 (en) 1982-04-30 1982-04-30 Data processing system with virtual partial addressing of the buffer memory

Publications (1)

Publication Number Publication Date
DE3216238C1 true DE3216238C1 (en) 1983-11-03

Family

ID=6162416

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3216238A Expired DE3216238C1 (en) 1982-04-30 1982-04-30 Data processing system with virtual partial addressing of the buffer memory

Country Status (1)

Country Link
DE (1) DE3216238C1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0224168A2 (en) * 1985-11-19 1987-06-03 Hitachi, Ltd. Buffer storage control system
EP0372578A2 (en) * 1988-12-09 1990-06-13 Tandem Computers Incorporated Memory management in high-performance fault-tolerant computer system
WO1996007140A3 (en) * 1994-09-01 1996-05-02 Gmd Gmbh Data storage cache system
CN110782389A (en) * 2019-09-23 2020-02-11 五八有限公司 Image data byte alignment method and terminal

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
NICHTS-ERMITTELT *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0224168A2 (en) * 1985-11-19 1987-06-03 Hitachi, Ltd. Buffer storage control system
EP0224168A3 (en) * 1985-11-19 1990-03-14 Hitachi, Ltd. Buffer storage control system
EP0372578A2 (en) * 1988-12-09 1990-06-13 Tandem Computers Incorporated Memory management in high-performance fault-tolerant computer system
EP0372578A3 (en) * 1988-12-09 1992-01-15 Tandem Computers Incorporated Memory management in high-performance fault-tolerant computer system
WO1996007140A3 (en) * 1994-09-01 1996-05-02 Gmd Gmbh Data storage cache system
CN110782389A (en) * 2019-09-23 2020-02-11 五八有限公司 Image data byte alignment method and terminal
CN110782389B (en) * 2019-09-23 2023-09-15 五八有限公司 Image data byte alignment method and terminal

Similar Documents

Publication Publication Date Title
DE3011552C2 (en)
DE2807476C2 (en) Storage device with several virtual address spaces
DE2260353C2 (en) Circuit arrangement for address translation in a data processing system
DE69225622T2 (en) Address translation buffer memory with variable page size by input
DE69031967T2 (en) Information processing arrangement
DE69030945T2 (en) Two-level address translation buffer with partial addresses to increase speed
DE2227882C2 (en) Virtual storage arrangement
DE2939411C2 (en) Data processing system with virtual memory addressing
DE2302074A1 (en) MEMORY PROTECTION ARRANGEMENT IN A MULTIPROCESSOR SYSTEM
EP0013737A1 (en) Multilevel storage hierarchy for a data processing system
DE10002120B4 (en) An address translation buffer arrangement and method for operating an address translation buffer arrangement
DE2415900B2 (en) Computing machine with several computing systems, each provided with a storage tank
DE3932675A1 (en) VIRTUAL MACHINE SYSTEM
DE2226382A1 (en) DATA PROCESSING SYSTEM
DE3618163A1 (en) MEMORY MANAGEMENT FOR A MICROPROCESSOR SYSTEM
DE2835989A1 (en) ARRANGEMENT FOR CONVERTING A VIRTUAL ADDRESS INTO A PHYSICAL ADDRESS OF A DATA WORD
DE68925336T2 (en) Data processing device with cache memory
DE3873388T2 (en) CACHE STORAGE.
DE3216238C1 (en) Data processing system with virtual partial addressing of the buffer memory
DE1574502B2 (en) Associative memory
DE3340956C2 (en)
DE3121710C2 (en) Control device for a virtual memory in a data processing system
DE2939412C2 (en) Circuit arrangement for addressing data for read and write access in a data processing system
EP0257405B1 (en) Method and apparatus for updating control bit combinations
DE3633227A1 (en) Arrangement for conversion of a virtual address into a physical address for a working memory organised in pages in a data processing system

Legal Events

Date Code Title Description
8100 Publication of the examined application without publication of unexamined application
D1 Grant (no unexamined application published) patent law 81
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee