METHOD AND ARRANGEMENT FOR ADDRESSING TRANSLATION LOOK-ASIDE BUFFERS

Abstract: 1. A method for addressing address conversion stores (ATM A, ATM B, ATM C) which convert the logic address space of a virtual store, which is divided into a plurality of segments each of which has a plurality of pages, into the physical address space of the main store, employing two address conversion stores (ATM A, ATM B) which are of identical size and of a first type and which are addressed by the same portions of the segment component (SEG) and the page component (SE) of the virtual address and transmit a real page address (SA), and employing an address conversion store (ATM C) of a second type which is addressed by the segment component (SEG) of the virtual address and transmits a real page table address (STA) which is added to the page component of the virtual address and allows the addressing of a page table which is present in the main store and contains real page addresses, characterised in that in order to address the address conversion store (ATM C) of a second type the n highest-value bits of the segment component (SEG) of the virtual address is modified by means of n programme character bits (PID 0, 1, 2) in such a manner that each of the 2**n programmes is assigned one of 2**n areas within the address conversion store, and that in order to address both address conversion stores (ATM A, ATM B) of a first type which are respectively divided into 2**m areas, on the one hand the m=n-1 higher-value bits of the page component (SE) of the virtual address are modified by means of m=n-1 programme character bits (PID 1, 2) and on the other hand there is provided an alternating bit store (RAM-ALT) which can be addressed similarly to the two address conversion stores of a first type and whose read-out alternating bit controls in alternating manner one of the two address conversion stores (ATM A, ATM B) of a first type and is re-read into the alternating bit store in an inverted form under the same address.

Description: Verfahren und Schaltungsanordnung zur Adresssierung von Adressumsetzungsspeichern Die Erfindung bezieht sich auf ein Verfahren zur Adressierung von Adressumsetzungsspeichern gemäss dem Oberbegriff des Hauptanspruchs. Bei Datenverarbeitungsanlagen mit virtueller Speicheradressierung ist es bekanntlich erforderlich, dass die virtuelle Adresse vor jedem Zugriff zum Arbeitsspeicher in eine reale physikalische Adresse übersetzt wird. Diese Übersetzung erfolgt, um den Aufwand gering zu halten, dadurch, dass man den virtuellen und den physikalischen Speicher in Seiten gleicher Grösse unterteilt und über Ubersetzungstafeln, die beispielsweise im Arbeitsspeicher stehen können, jeder physikalischen Seitenadresse eine virteuelle Seitenadresse zuordnet. Es sind bereits Datenverarbeitungsanlagen bekannt, bei denen übersetzte Adressen von mehreren virtuellen Adressräumen in einem oder gegebenenfalls mehreren Adressumsetzungsspeichern über Programmgrenzen hinweg resident gehalten werden können. Jeder Eintrag im Adressumsetzungs speicher erhält dabei die gleiche Kennzechnung wie der zugehörige virtuelle Adressenraum. Bei einem Wechsel von einem virtuellen Adressenraum zu einem anderen kann daher das Rücksetzen aller Einträge im AdreBum- tzungsspeicher entfallen, weil eine eindeutige Zuordnung der realen Adressen in den Adressumsetzungsspeichern zum jeweils aktuellen Programm gewährleistet ist. Bei diesem bekannten dressierverfahren bestehen jedoch insofern Probleme, als sich verschiedeneNrogramme ge- genseitig dadurch behindern können, dass bereits Uber- setzte Adressen beim Eintragen neuer realer Adressen in die Adressumsetzungsspeicher gegenseitig Uberschrie- ben werden. Darüber#hinaus werden vielfach einzelne Bereiche der Adressumsetzungsspeicher gegenüber anderen bevorzugt belegt, so dass die an sich vorhandene Kapazität nicht voll genutzt wird. Die Anzahl der Einträge aus der mikroprogrammierten Adressübersetzung eines Programms liegt deshalb in der Regel wesentlich unter der Anzahl der verfügbaren Plätze in dem bzw. den Adressumsetzungsspeichern. Das an sich bekannte Verfahren zur Übersetzung virtueller Adressen in entsprechende reale Adressen wird im folgenden anhand der Figuren 1 und 2 näher erläutert. Bei der in FIG-1 dargestellten Adressumsetzungs- einrichtung sind drei Adressumsetzungsspeicher ATM A, B, C vorgesehen, in denen die Ergebnisse aus früher erfolgten mikroprogrammierten Adressübersetzungen hinterlegt sind. Jedem Adressumsetzungsspeicher'für jeweils 64 Einträge ist ein Speicherteil für Kontroll- und Steuerbits, sogenannte Flags zur Unterscheidung unterschiedlicher Einträge sowie ein Speicherteil für Kennzeichenbits, sogenannte Tags zugeordnet. In den beiden Adress umsetzungsspeichern ATM A und ATM B sind jeweils reale Seitenadressen, im Adressumsetzungsspeicher ATM C sogenannte Seitentafeladressen gespeichert. Die Tag/Flag Speicher werden jeweils mit einem Teil der im Adressregister EAD vorhandenen virtuellen Adresse angesteuert. Sofern der am Ausgang der Tag/Flag-Speicher vorgesehene Vergleicher VG A, B, C Adressengleichheit zwischen dem im Tag/Flag-Speicher enthaltenen Eintrag und dem zugehörigen Anteil der virtuellen Adresse signalisiert, wird die im zugehörigen Adressumsetzungsspeicher enthaltene Adresse an das die reale Adresse aufnehmende Hauptspeicher-Adressregister MA übertragen. Die Funktion dieser bekannten Adressumsetzungseinrichtung wird im folgenden anhand der FIG 2 näher erläutert. Die virtuelle Adresse, bestehend aus dem Segmentteil SEG, dem Seitenteil SE und dem bereits real vor-liegenden Distanzteil DIS wird im Adressregister EAD bereitgestellt. Zur Adressumsetzung wird mit Teilen des Segment- und Seitenteils der virtuellen Adresse in den zwei Adressumsetzungsspeichern ATM A, B, in im denen reale Seitenadressen gespeichert sind und/ATM C, in dem eine reale Seitentafeladresse gespeichert ist, parallel jeweils eine Zeile ausgewählt. Jeder Adressumsetzungsspeicher hat 64 Einträge, die mit sechs Bit adressiert werden. Nach Auswahl des Eintrages wird für jeden der drei Speicher ein Vergleich zwischen Teilen der virtuellen Adresse und dem adressierten Eintrag durchgeführt. Bei Übereinstimmung (Hit) in einem der Adressumsetzungsspeicher ATM A oder ATM B wird aus der realen Seitennummer, die der selektierten Zeile entnommen wird, und der Distanz DIS der virtuellen Adresse die reale Adresse gebildet und zum Hauptspei cher-Adressregister NA übertragen. Gibt es in keinem dieser beiden Adressumsetzungsspeicher ATM A oder ATM B Übereinstimmung, ist sie mit höherer Wahrscheinlichkeit im Adressumsetzungsspeicher ATM C möglich (Partialhit). In diesem Fall wird die reale Adresse durch eine einstufige Adressumsetzung über die Seitentafel ST im Hauptspeicher ermittelt. Die reale Adresse für den Seitentafeleintrag ergibt sich aus der realen Seitentafeladresse STA, die dem adressierten Eintrag des Adressumsetzungsspeichers ATM C entnommen wird, umd dem Seitenteil SE der virtuellen Adresse. Kommt keine Übereinstimmung in einem der drei Adress umsetzungsspeicher ATM A, B oder C zustande, dann wird eine zweistufige Adressumsetzung erforderlich. Ausgangspunkt ist die reale Segnenttafeladresse SGTA. Während der Adressumsetzung wird zunächst zur Segmenttafel SGT und anschliessend gemäss der Tabellenhierarchie zur Seitentafel ST zugegriffen. Die Adresse des Segmenttafeleintrags wird durch Addition der Segmentnummer (Bit 8 bis 15 der virtuellen Adresse) mit der Segmenttafeladresse SGTA gewonnen. Der Segmenttafeleintrag, d.h. die Segmenttafeladresse SGTA einschliesslich der Ringschutzbits, wird in die adressierte Zeile des Adressumsetzungsspeichers ATM C eingetragen. Die Adresse des Seitentafeleintrags wird durch Addition der Seitennummer (Bit 16 bis 20 der virtuellen Adresse) mit der Seitentafeladresse STA gewonnen. Der Seitentafeleintrag enthält Kontrollbits und die reale Seitenadresse SA, die zusammen mit dem Schreib-Kontrollbit in einen der beiden Adress umsetzungsspeicher ATM A oder ATM B eingetragen wird. Zusätzlich werden Teile der virtuellen Adresse als sogenannte Kennzeichenbits bzw. Tags in der adressierten Zeile mit abgespeichert. Die reale Zugriffsadresse ergibt sich schliesslich aus der Addition der Distanz DIS mit der realen Seitenadresse SA. Ausgehend von einem derartigen Adressumsetzungsverfahren liegt der vorliegenden Erfindung die Aufgabe zugrunde, einen Weg aufzuzeigen, wie die durch gegenseitige Überschreibung verursachte Behinderung verschiedener Programme verringert und zugleich eine gleichmässigere Auslastung aller Bereiche innerhalb der einzelnen Adressumsetzungs- speicher erzielt werden kann. Die Lösung dieser Aufgabe ergibt sich erfindungsgemäss aus den Merkmale des kennzeichnenden Teils des Hauptanspruchs. Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben. Im folgenden wird ein Ausführungsbeispiel der Erfindung anhand der FIG 3 bis 6 näher erläutert. Dabei zeigen: FIG 3 eine Schaltungsanordnung zur Adressierung des die Seitentafeladressen speichernden AdreBum- setzungsspeichers ATM C FIG 4 die Zuordnung einzelner Programme auf die ver schiedenen Speicherbereiche in Abhängigkeit von der jeweils durch Kennzeichenbits modifizierten Adresse im Adressumsetzungsspeicher ATM C FIG 5 eine Schaltungsanordnung zur Adressierung der die Seitenadressen speichernden Adressumsetzungs-' speicher ATM A und ATM 3 FIG 6 die Zuordnung einzelner Programme auf die ver schiedenen Speicherbereiche der Adressumsetzungs speicher ATM A und ATM B in Abhängigkeit von der jeweils durch Kennzeichenbits modifizierten Adresse. Für den Adressumsetzungsspeicher ATM C werden die Bits 10 bis 15 des Segmentteils SEG der im Adressregister EAD bereitgestellten virtuellen Adresse zur Adressierung einer bestimmten Zeile benutzt. Jedes der verschiedenen, z.B. acht unterstützten Programme erhält eine eigene Anfangsadresse, von der ab die Seitentafeladresse aus den mikroprogrammierten Ädressübersetzungen#in den Adressumsetzungsspeicher ATM C eingetragen werden können. Die Adressierung für das Auslesen und das Eintragen ist gleich. Die Vergabe der Adressen in Abhängigkeit von den einzelnen Programmkennzeichen, die eine gleichmässige Ausnutzung aller Speicherplätze (Bereiche COr bis C7) gewährleistet, wird durch die in FIG 3 im Prinzip dargestellte Schaltungsanordnung erreicht. Die drei höchstwertigen Bits EAD 10 bis 12 der Zeilenadresse sowie ihre jeweils invertierten Werte werden über Zweifachmultiplexer MUX 0, MUX 1, MUX 2 an den Adressumsetzungsspeicher ATM C geführt. Diese Multiplexer dienen gleichzeitig als Adressenverstärker. Für die übrigen Bits der Zeilenadresse sind separate Adressenverstärker AV vorgesehen. Die Steuerung der eingangsseitig mit den beiden Polaritäten der Adressenbits EAD 10, 11, 12 beschalteten Multiple xer MUX 0, M7X 1, MUX 2 erfolgt direkt durch drei Bits des jeweiligen Programmkennzeichens, das im Register PID gespeichert ist. Dadurch werden die Einträge der 25 =8 unterstützten Programme gruppenweise gegeneinander versetzt bzw. vertauscht (siehe die Tabelle in FIG 4). Die für jedes Programm spezifisches Kennzeichenbits sind im sogenannten Flag-Feld des zugehörigen Adress umsetzungsspeichers abgespeichert. Die Vergabe der Pro gramm-Kennzeichen erfolgt über eine Tabelle im Schattenspeicher. Für jedes der acht unterstützten Programme existiert darin ein Eintrag, der ihren virtuellen Adresenraum repräsentiert. Aus der Platznummer dieses Eintrags in der Tabelle ergibt sich dann das jeweilige Programmkennzeichen (Bit 27 bis 29 der Schattenspeicheradresse des Tabelleneintrags). Bei jedem im Prozessor aktuell werdenden Programm wird zunächst nachgesehen, ob dafür bereits ein Eintrag in der Tabelle existiert. Ist er vorhanden, wird das zugehörige Programmkenn zeichen im Prozessor aktualisiert, so dass das Programm auf seine noch vorhandenen früheren Einträge in den Adressumsetzungsspeichern zurückgreifen kann. Ist dagegen in der Tabelle für das jeweils aktuelle Programm kein Eintrag vorhanden, dann wird der älteste Eintrag, der durch ein Alterungsbit gekennzeichnet ist, durch den neuen ersetzt. Der in der Tabellenadresse zunächst höhere Platz bekommt nun dieses Alterungsbit, d. h. die Tabelle wird zyklisch nach aufsteigenden Tabellenadressen verwaltet. Nach dem achten Eintrag wird wieder mit der niedrigsten Adresse begonnen. Wird ein neuer Eintrag in der'Tabelle im Schattenspeicher vorgenommen, müssen alle Zeilen in den Adressumsetzungsspeichern mit dem entsprechenden Programmkennzeichen für ungültig erklärt werden, weil hierunter jetzt ein neuer virtueller Adressenraum unterstützt wird. Die Einträge in den Adressumsetzungsspeichern können abhängig vom jeweiligen Programmkennzeichen selektiv gelöscht werden. Eine Schaltungsanordnung zur Adressierung der Adressumsetzungsspeicher ATM A und ATM B ist in FIG 5 dargestellt. Die beiden Adressumsetzungsspeicher ATM A und ATM B werden gleichwertig betrieben. Die Adressierung der 64 Zeilen erfolgt für beide mit den Adressenbits EAD 15 bis 20 des Seitenteils der virtuellen Adresse. Im Gegensatz zum Adressumsetzungsspeicher ATM C werden hier aber nur die zwei höchstwertigen Adressenbits EAD 15, 16 des Seitenteils SE der virtuellen Adresse durch das Programmkennzeichen modifiziert. Dadurch werden für die beiden Adressumsetzungsspeicher ATM A und ATM B jeweils nur vier Anfangsadressen vergeben. Die Grösse der einzelnen jeweils einem Programm zugeordneten Speicherbereiche A 0..... A 3, B 0.... B 3, d.h. der Abstand zum jeweils nächsten Bereich ist deswegen grösser gewählt, weil zu jedem Segmenttafeleintrag im Adress umsetzungsspeicher ATM C bis zu 32 Seitentafeladressen STA in den beiden Adressumsetzungsspeichern ATM A und ATM 3 gehören können. Ein zusätzlicher Auswahlmodus über ein Alternierungsbit bewirkt beim Eintragen der Ergebnisse aus der mikro programmierten Adressübersetzung, das abwechselnd in den Adressumsetzungsspeicher ATM A oder ATM 3 geschrieben wird. Auf diese Weise erhält man über beide Speicher acht unterschiedliche Anfangsadressen. Gleichzeitig wird erreicht, dass bei einer möglichen erneuten Adressierung einer Zeile immer nur der ältere der beiden Einträge in den beiden Adressumsetzungsspeichern ATM A oder ATM B überschrieben werden kann. Durch die Über- lagerung der Alternierung mit der Adressenmodifikation durch das Programmkennzeichen werden alle Bereiche in den Adressumsetzungsspeichern vollständig ausgenutzt. Die jeweilige Zuordnung einzelner Programme auf die verschiedenen Speicherbereiche in Abhängigkeit von den jeweils durch Programmkennzeichenbits modifizierten Adressbits und dem Alternierungsbit ist aus der in FIG 6 dargestellten Tabelle ersichtlich. Die in FIG 5 dargestellte Schaltungsanordnung zur Adressierung der beiden Adressumsetzungsspeicher ATM A und ATM B ist ähnlich aufgebaut wie die für den Adress umsetzungsspeicher ATM C. Hier werden dagegen nur die zwei höchstwertigen Bits EAD 15, 16 der Zeilenadresse mit beiden Polaritäten an je einen Zweifachmultiplexer MUX 3, MUX 4 geschaltet. Auch hier dienen die Multiplexer gleichzeitig als Adressenverstärker. Die Ansteuerung erfolgt direkt durch ds beiden Programmkennzeichenbits PID 1 und PID 2. Der wechselweise Betrieb der beiden Adressumsetzungsspeicher ATM A und ATM B wird durch ein Alternierungsbit gesteuert. Dieses Alternierungsbit wird in einem 64 mal 4-Bitspeicher RAN-ALT geführt, der genauso Åadres- siert wird wie die Adressumsetzungsspeicher ATM A und ATM B. Das anhängende Flipflop ALT-FF dient als Puffer und zum Invertieren der ausgelesenen Information. Wird ein Schreibimpuls UPDATAB für einen Eintrag in die Adressumsetzungsspeicher ATM A oder ATM B gegeben, so erfolgt der Eintrag, abhängig von der Stellung des Alternierungsbits, z.B. über das UND-Glied UND 1 in den Adressumsetzungsspeicher ATM B. Gleichzeitig wird mit diesem Schreibimpuls das invertierte Alternierungsbit in den Alternierungsbit-Speicher RAM-ALT unter der gleichen Zeilenadresse zurückgeschrieben. Wird diese Zeile erneut für einen Eintrag adressiert, zeigt das Alternierungsbit auf den Adressumsetzungsspeicher ATM A. Der Schreibimpuls gelangt jetzt über ein zweites UND Glied UND 2 nur an den Adressumsetzungsspeicher ATM A. Im Lesebetrieb werden die AlreBumsetzungsspeicher ATM A und ATM B parallel adressiert. Die reale Adresse bei einem Treffer (Hit) kann dann entweder aus dem Speicher ATM A oder aus dem Speicher ATM B kommen.

Claims: Patentansorüche 1. Verfahren zur Adressierung von Adressumsetzungs- speichern für virtuelle Adressen eines in Segmente mit jeweils mehreren Seiten unterteilten virtuellen Speichers, unter Verwendung wenigstens eines Adressumsetzungsspeichers für reale Seitenadressen und eines Adressumsetzungsspeichers für Seitentafeladressen, dessen Einträge über eine Seitentafel im Hauptspeicher in reale Seitenadressen umgesetzt werden, d a d u r c h g e k e n n z e i c h n e t , dass die jeweils n höherwertigen Bits der virtuellen Segment- bzw. Seitenadresse mit n Programmkennzeichen-Bits derart modifiziert werden, dass jedem der n Programme jeweils einer von 2n Bereichen innerhalb der Adressumsetzungsspeicher zugeordnet wird. 2. Verfahren nach Anspruch 1, d a d u r c h g e k e n n z e i c h n e t , dass für den den Seitenadressen zugeordneten Adressumsetzungsspeicher zwei gleichgrosse -Speichereinheiten verwendet werden und dass die beiden Speichereinheiten in jeweils 2m Bereiche unterteilt sind, die mittels m=n-1 modifizierte Adressbits der Seitenadresse getrennt ansteuerbar sind. 3. Verfahren nach Anspruch 2, d a d u r c h g e k e n n z e i c h n e t , dass mittels eines Alternierungsbits die beiden Speichereinheiten jeweils abwechselnd ansteuerbar sind. 4. Schaltungsanordnung zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 3, d a d u r c h g e k e n n z e i c h n et , dass die jeweils höchstwertigen Bits (EAD 10, n, 12 bzw. EAD 15, 16) der virtuellen Segment bzw. Seitenadresse mit beiden Polaritäten je einem, durch Programmkennzeichen-Bits (PID 0, 1, 2). steuerbaren Zweifachmultiplexer (MUX 0, 1, 2 bzw. MUX 3, 4) zugeführt sind und dass die Ausgangssignale der Zweifachmultiplexer zusammen mit den übrigen Adressbits der Segment- bzw. Seitenadresse die Zeilenadresse für den jeweils zugehörigen Adressumsetzungsspeicher (ATM C bzw. ATM A, B) bilden. 5. Schaltungsanordnung nach Anspruch 4, d a d u r c h g e k e n n z e i c h n e t , dass ein mit der Zeilenadresse der die Seitenadressen speichernden Adressumsetzungsspeicher (ATM A, B) adressierbarer Alternierungsbit-Speicher (RAM-ALT) vorgesehen ist, dessen Ausgang mit einem Puffer-Flipflop (AkT-FF) verbunden ist und dass die beiden Ausgangssignale des Puffer-Flipflops (ALT-FF) mit jeweils verschiedener Polarität über je ein UND-Glied (UND 2, 1) mit einem Schreibimpuls (UPDATAB) zur wechselweisen Ansteuerung eines der beiden Adressumsetzungsspeicher (ATM A, B) verknüpft sind.

Inventors: BETHMANN, JURGEN, DIPL.-ING., Bethmann, Jürgen, Dipl.-Ing.
Applicants: SIEMENS AKTIENGESELLSCHAFT
Application year: 1981
Main classification: G06F12
IPC codes: G06F12