DE2835989A1 - Anordnung zum umwandeln einer virtuellen adresse in eine physikalische adresse eines datenwortes - Google Patents

Anordnung zum umwandeln einer virtuellen adresse in eine physikalische adresse eines datenwortes

Info

Publication number
DE2835989A1
DE2835989A1 DE19782835989 DE2835989A DE2835989A1 DE 2835989 A1 DE2835989 A1 DE 2835989A1 DE 19782835989 DE19782835989 DE 19782835989 DE 2835989 A DE2835989 A DE 2835989A DE 2835989 A1 DE2835989 A1 DE 2835989A1
Authority
DE
Germany
Prior art keywords
address
segment
word
page
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE19782835989
Other languages
English (en)
Inventor
Jean-Claude Cassonnet
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.)
Bull SA
Original Assignee
Bull SA
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 Bull SA filed Critical Bull SA
Publication of DE2835989A1 publication Critical patent/DE2835989A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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/1009Address translation using page tables, e.g. page table structures
    • G06F12/1018Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables

Description

Patentanwälte,·
Dipl -Ing Dipl -Chem Dipl -Ing 7 R Q ζ Ο Q
E. Prinz - Dr. G. Hauser - G. Leiser ^OOOgö
Er nsbergerstras se 19
8 München 60
17. August 1978
COMPAGNIE INTERNATIONALE POUR L'INFORMATIQUE
CII- HONEYWELL BULL
94, Avenue Gambetta
75020 Paris / Frankreich
Unser Zeichens C 3194
Anordnung zum Umwandeln einer virtuellen Adresse in eine physikalische Adresse eines Datenwortes
Die Erfindung betrifft Speichersysteme, die in Datenverarbeitungseinheiten benutzt werden, und insbesondere Datenverarbeitungssysteme, die einen Hauptspeicher, einen Hilfsspeicher und eine Anordnung zum dynamischen übersetzen von virtuellen Adressen in echte Adressen durch die Berechnung einer Nummer einer logischen Seite enthalten.
Es sind verschiedene Verfahren bekannt, bei denen mehrere Programme, die durch eine oder mehrere Datenverarbeitungseinheiten ausgeführt werden, sich einen einzigen Speicher teilen. Ein Speicher, den sich Programme auf diese Weise
teilen, verlangt eine sehr große Kapazität, die häufig
größer ist als die wirklich vorhandene Kapazität. Um mit
dieser Situation fertigzuwerden, wird das Prinzip des virtuellen Speichers benutzt. Der virtuelle Speicher ist in
Segmente aufgeteilt, von denen jedes in Seiten unterteilt sein kann, von denen jede eine vorbestimmte Anzahl von
909809/0954
2835983
Bytes enthält. Die Adressen der Segmente und der Seiten im virtuellen Speicher haben eine willkürliche Bezeichnung und keinen besonderen Speicherplatz in dem Hauptspeicher. Die Segmente und die Seiten des virtuellen Speichers können deshalb in beliebiger Weise in den Hauptspeicher eingeordnet werden.
Die beliebige Einordnung der Segmente und Seiten in den Hauptspeicher erfordert die Umwandlung der virtuellen Adresse in eine echte Adresse durch Verwendung einer Gruppe von UmwandlungstäbeIlen, die sich im Hauptspeicher befinden.
In einem Segmentierungssystem ohne Seitenteilung haben die Segmente eine veränderliche Abmessung und ihre Kennzeichnung erfolgt mit Hilfe der Basisadresse (Adressen des ersten Befehls, der das Segment bildet) und der Größe (Länge) des Segments.
Durch diese Kennzeichnungsart erfordert die Ausführung eines Segments, daß es vollständig in den Hauptspeicher überführt wird, was einen Nachteil darstellen kann, wenn dieses Segment nur teilweise ausgeführt wird. Der Speicher ist in diesen Systemen daher unnütz belegt. Schließlich kompliziert die veränderliche Größe der Segmente deutlich den Algorithmus der Suche nach verfügbaren Speicherplätzen zum Aufnehmen eines Segments.
In einem System mit virtuellem Speicher werden Umwandlungstabellen benutzt, die aus Segmenttabellen und aus Seitentabellen bestehen. Jede Seitentabelle in einer Gruppe von Umwandlungstabellen gibt echte Speicherplätze von allen Seiten eines Segments in der Segmenttabelle an.
Dieses System hat mehrere Nachteile. Hauptsächlich läßt es
909809/0954
den Hauptspeicher durch eine große Anzahl von Seitentabellen belegen. Dieselben Nachteile, die sich bei der einfachen Segmentierung ergeben, ergeben sich auch hier wieder hinsichtlich des Algorithmus des Management des durch die Seitentabellen belegten Raums.
Die Erfindung beseitigt· diese Nachteile durch das Prinzip, daß der Zugriff auf eine logische Seite in dem virtuellen Raum zur Berechnung einer Nummer LPN einer logischen Seite führt, die eine eindeutige, aus der Segmentbeschreibung oder Segmentangabe erhaltene Kennzeichnung ist und den pseudoassoziativen Zugriff auf eine Tabelle gestattet, die eine Anzahl von Eingängen hat, welche proportional zu der Anzahl der physikalischen Seiten des Hauptspeichers ist und das Ermitteln der gesuchten physikalischen Adresse gestattet. Dieselbe Nummer LPN einer logischen Seite gestattet, in eindeutiger Weise eine Referenzseite durch mehrere Segmentangaben darzustellen, und zwar ungeachtet dessen, ob sich diese Seite im Hauptspeicher oder im Hilfsspeicher befindet.
In Weiterbildung der Erfindung wird der Adressierungsraum des Systems in Seiten mit fester Größe zerlegt. Eine Seite besitzt einen einzigen und definierten Systemnamen, bei welchem es sich um die Nummer LPN einer logischen Seite handelt. Aufgrund dieses Namens ist es möglich, die Seite in den verschiedenen Speicherebenen des Systems aufzufinden, und zwar entweder im Hilfsspeicher oder im physikalischen Hauptspeicher. Wenn die Seite sich im physikalischen Hauptspeicher befindet, wird ihr Speicherplatz durch eine Nummer PPN einer physikalischen Seite definiert.
Ein Ausführungsbeispiel der Erfindung wird im folgenden unter Bezugnahme auf die beigefügten Zeichnungen näher beschrieben.
909809/0954
Es zeigen:
die Fig. 1A und 1B das Seitenteilungsprinzip, das bei
der Adressenbildung nach der Erfindung angewandt wird,
die Fig. 2A und 2B die physikalische Anordnung, die
die Verwirklichung der Adreßumwandlung nach der Erfindung gestattet, und
die Fig. 3A, 3B,3C in Form von Diagrammen die Betriebsweise der in den Fig. 2A und 2B dargestellten Anordnung.
Das Format einer effektiven Adresse, die den Speicherplatz eines Datenwortes darstellt, ist in Fig. IA an der Stelle 113 dargestellt. Das Format enthält eine Zone J und eine Zone P, die den Namen des Prozesses bezeichnen, zu welchem das Datenwort gehört, eine Zone STN, die eine Segmenttabellennummer bezeichnet, eine Zone STE, die eine Segmentangabe bezeichnet, und eine Zone SRA, die die relative Adresse des Datenwortes in dem Segment bezeichnet. Zum Anwenden des Seitenteilungsprinzips nach der Erfindung wird die relative Adresse SRA in zwei Zonen unterteilt:
- eine Zone SPN, die die Nummer der Seite angibt, zu der das Datenwort in dem Segment gehört; und
- eine Zone SPRA, die die Adresse des Datenwortes auf der durch die Zone SPN angegebenen Seite angibt, wobei es selbstverständlich mehrere Seiten gleicher Länge in einem Segment oder mehrere Segmente auf einer Seite geben kann.
Die Adreßbildung nach der Erfindung macht vom Lesen mehrerer Informationen im Hauptspeicher Gebrauch. Es gibt in der Zen-
9Q9809/095A
35983
traleinheit ein Register BÄR 101, das die Adresse einer Tabelle J 102 im Hauptspeicher enthält, an der sich die Gesamtheit der auszuführenden Arbeiten für eine bestimmte Arbeitsgruppe verzeichnet findet. Die Zahl J, die sich in der Adresse 113 findet, gestattet, nach Addition in dem Summierpunkt 114 zu der Adresse der Tabelle J, die in dem Register BAR 101 enthalten ist, im Innern der Tabelle J 102 die Adresse der Tabelle P zu lesen, die die Gesamtheit der Prozesse enthält, welche für die Ausführung der gerade in der Ausführung begriffenen Arbeit J erforderlich sind. Die Adresse der Tabelle P gestattet, nach Addition in dem Summierpunkt 115 zu der Nummer P, die sich in der effektiven Adresse 113 findet, das Lesen der Adresse eines Prozeßkontrollblockes PCB 104, in welchem sich die Adresse ASW der Tabelle der Segmente verzeichnet findet, die für die Ausführung des Prozesses benutzt wird. Diese Adresse gestattet, nach Addition zu der Zahl STN, die in der effektiven Adresse 113 enthalten ist, die Adresse STW einer Segmenttabelle zu lesen, in der sich die Liste von allen Angaben von Segmenten befindet, die der Zahl STN zugeordnet sind und für den Ablauf des Prozesses benutzt werden. Diese Adresse gestattet, nach Addition in dem Summierpunkt 117 zu der Zahl STE, die in dem Wort der effektiven Adresse 113 enthalten ist, den Inhalt einer Segmentangabe SD zu lesen. Die Segmentangabe besteht für ein seitengeteiltes Segment aus zwei Zonen, nämlich einer Zone S0F, die die Adresse des Anfangs des Segments auf der Seite angibt, und einer Zone SRF, die das Segment in eindeutiger Weise bezeichnet. Der Inhalt der Zone S0F wird zu der relativen Adresse auf der aus der Zone SPRA entnommenen Seite des Adreßwortes 113 addiert, um das Wort mit der physikalischen Adresse im Innern der Seite PRA zu bilden. Der Inhalt der Zone SRF wird mit der Zone SPN des Wortes der effektiven Adresse 113 in einer Einheit 107 verkettet, um die Nummer LPN einer logischen Seite zu bilden. Diese Nummer LPN wird an-
909809/0954
schließend in einer Punktionsschaltung 108 verdichtet (kondensiert) um für die Adressierung der Tabelle LPT 110 der logischen Seiten benutzt zu werden. Die Tabelle LPT enthält alle Nummern LPN der logischen Seiten des gesamten Systems, die Nummern PPN der entsprechenden physikalischen Seitei sowie Verbindungsfelder LINK, die das Verketten der kollidierenden logischen Seiten gestatten. Die Adres se einer Nummer einer logischen Seite im Innern einer Tabelle LPT wird daher erhalten, indem zu dem Inhalt eines Tabellenzeigers 119 ein Index addiert wird, der, entweder bei dem ersten Zugriff aus der über die Funktionsschaltung 108 verdichteten Nummer LPN oder, wenn ergänzende Zugriffe erforderlich sind, aus dem Inhalt der Zone LINK besteht, der sich an der Adresse der vorangehenden Nummer LPN befindet. Diese Operation wird durch die Punktionsschaltungen 119 und 120 ausgeführt. Die Nummer LPN, die in der Seitentabelle LPT gelesen wird, wird in einem Vergleicher 111 mit der Nummer LPN zur Überprüfung verglichen, um die Operation der Verkettung der Nummer PPN, die in der Tabelle LPT gelesen wird, mit der Adresse PRA zur Bildung der physikalischen Adresse 112 zu gestatten.
Die Fig. 2A und 2B zeigen die Anordnung, die das Ausführen der Adressenumwandlung nach der Erfindung gestattet.
Fig. 2A zeigt die Verwendung des VorSpeichers und Fig. 2B die Anordnung nach der Erfindung zum Wiederladen des Vorspeichers .
Diese Anordnung gestattet, sowohl Adreßbildungen von Datenwörtern zu verarbeiten,die zu Segmenten gehören, welche eine Seitenorganisation haben, oder zu Segmenten, die nicht diese Organisation haben. In dem Fall einer Seitenorganisation besteht die virtuelle Adresse, wie oben erwähnt, aus den Parametern STN, STE, SPN und SPRA. In dem Fall, in welchem es
909809/0954
keine Seitenorganisation gibt, besteht die virtuelle Adresse aus den Parametern STN, STE und SRA.
Die Anordnung nach der Erfindung gestattet die Verarbeitung dieser beiden Arten von Parametern.
Diese Anordnung ist direkt an einen Datenbus 224 anschließbar, der alle Einheiten miteinander verbindet, aus denen die Zentraleinheit eines Datenverarbeitungssystems besteht. Solche Einheiten sind bekannt und brauchen hier nicht ausführlich beschrieben zu werden. Es sind lediglich die Hauptspeichereinheit MMU 200 und die Anordnung nach der Erfindung dargestellt. Letztere besteht hinsichtlich des Teils für die Nutzung des Vorspeichers (Fig. 2A) aus Registern STN, STE und SRA 208, einem Datenverdichter 213, einem Vorspeicher 214, Vergleichern 215 und 216, einem Multiplexer 217, Addierern 218 und 219, einem Multiplexer 222 und einem Register 223, und hinsichtlich des Teils für das Wiederladen des Vorspeichers (Fig. 2B) aus einer Registeranordnung 201 für Kennzeichnungen von Tabellen im Hauptspeicher MMU 200, einer Gruppe von Indexregistern 203, einem Addierer 206, einem Vergleicher 205, Registern 207 und 209, 210 und 221, einem Vergleicher 211 und einem Datenverdichter 212. Die Gesamtheit dieser Register und Funktionsschaltungen ist mit dem Datenbus 224, mit einem Testbus 225 und mit einem Speicheradreßbus 226 verbunden.
Das Register 220 wird zum Aufnehmen der Segmentkennzeichnungsnummern STN, STE benutzt. Das Register 208 wird zum Aufnehmen der relativen Adresse SRA eines Datenwortes in einem Segment benutzt, die in dem Fall eines seitengeteilten Segments in eine Nummer SPN einer Seite in dem Segment und in die relative Adresse SPRA des Datenwortes innerhalb der Seite zerfällt.
909809/0954
2835389
Der Inhalt der Register STN, STE 220 und das Feld SPN des Registers 208 werden in den Vorspeicher 214 über den Datenverdichter 213 übertragen, der in herkömmlicher Weise mit Hilfe von Antivalenzschaltungen am Eingang des Adreßselektors des Vorspeichers 214 aufgebaut ist. Es sei daran erinnert, daß ein Vorspeicher ein Pufferspeicher ist, der durch Vorwegnahme mit Hilfe eines Mikroprogramms geladen wird, dessen Algorithmus auf der Feststellung beruht, daß die Informationen, die in naher Zukunft durch die Zentraleinheit verlangt werden, große Chancen haben, im Hauptspeicher in der Nähe der Informationen, die gerade adressiert worden sind, untergebracht zu sein. Der Vorspeicher 214 enthält die Informationen, die für die Berechnung der physikalischen Adresse eines Datenwortes erforderlich sind, wodurch bei einem neuen Zugriff auf ein Datenwort vermieden wird, die Berechnung der Adresse des Datenwortes in seinem Segment oder auf seiner Seite erneut zu beginnen, wenn diese Berechnung bereits ausgeführt worden ist. Das Wort an einer beliebigen Adresse des Vorspeichers 214 enthält eine erste Zustandszone S, die die Gültigkeit des Wortes definiert, die Art der Berechnung der physikalischen Adresse, je nach dem, ob es sich um ein Segment handelt, für das es keine Seiten gibt, oder um ein in Seiten unterteiltes Segment, eine zweite Zone zur Kennzeichnung des Segments oder der Seite, wenn das Segment keine Seiten enthält, wird die Kennzeichnung nur aus den Nummern STN und STE bestehen, während, wenn das Segment in Seiten unterteilt ist, die Kennzeichnung dann außerdem die Nummer SPN enthalten wird, und eine dritte Zone, die eine echte Adresse definiert und entweder die Basisadresse des Segments enthält, wenn dieses nicht in Seiten unterteilt ist, oder die Nummer PPN der physikalischen Seite, die der durch STN, STE und SPN definierten Seite entspricht, und die Verschiebung des Segments im Innern einer Seite (S0F). Diese Zonen werden aufgrund der Felder STN, STE
909809/0954
_ 12 _ 283598S
und SPN adressiert, wenn es eines gibt, und ihr Inhalt wird in den Vergleichern 215 und 216 verglichen. Je nach dem Zustand (S) der adressierten Zone wird das Ergebnis des Vergleiches entweder am Ausgang des Vergleichers 215 oder am Ausgang des Vergleichers 216 über den Multiplexer 217 ausgewählt. Der Addierer 218 addiert die Basis eines in dem Vorspeicher gefundenen Segments zu der relativen Adresse des in dem Register 208 gefundenen Datenwortes SRA. Wenn das Datenwort zu einem nicht in Seiten unterteilten Segment gehört, entspricht das Ergebnis dann der physikalischen Adresse des Datenwortes. Der Addierer 219 addiert den Inhalt der Zone S0F, die in dem Vorspeicher gefunden worden ist, zu dem Inhalt SPRA des Registers 208, um die Adresse des Datenwortes auf der Seite PRA zu bilden.
Der Multiplexer 222 wird durch das Zustandsfeld S gesteuert,das aus dem Vorspeicher 214 stammt, und empfängt an seinem Eingang 1 das Ausgangssignal des Addiers 218, das die physikalische Adresse für ein nichtseitengeteiltes Segment darstellt, und an seinem Eingang 2 die Verkettung des Feldes PPN, das aus dem Vorspeicher 214 stammt, mit dem Ausgangssignal des Addiers 219, das die relative Adresse auf der Seite PRA darstellt.
Das Register 223 enthält das Resultat der Adreßumwandlung. Es wird über den Ausgang des Multiplexers 222 geladen, wenn in den Vergleichern 215 oder 216, die durch den Multiplexer 217 in Abhängigkeit von dem Zustandsfeld S des Vorspeichers 214 ausgewählt werden, eine Gleichheit festgestellt wird.
In Fig. 2B dient die Gruppe der Register 201 zum Kennzeichnen der Tabellen im Hauptspeicher. Diese Register werden von dem Datenbus 224 aus geladen und von dem Selektor 202 aus adressiert. In Fig. 2B beträgt die Anzahl dieser Register
909809/0954
2835983
vier. Ein erstes Register STW ist zur Aufnahme des Adreßwortes der Segmenttabellen bestimmt. Das Register STW unterteilt sich in eine Zone STSZ, die zur Aufnahme der Abmessung der Tabelle bestimmt ist, und in eine Zone STA, die zur Aufnahme des Adreßwortes der Tabelle im echten Speicher bestimmt ist. Ein zweites Register ASW ist in zwei Zonen STWZ und STWA0 unterteilt, wobei die Zone STWZ die Abmessung der Segmenttabellen und die Zone STWA_ das Adreßwort enthält, das gestattet, eine Segmenttabelle im physikalischen Speicher zu adressieren. Ein drittes Register ASW1 ist in zwei Zonen STWZ.j und STWA1 unterteilt.
Die Funktion des letztgenannten Registers ist gleich der des Registers ASW0, mit dem Unterschied, daß dem Register die Segmenttabellennummern STN von 0 bis 7 und den
Registern ASW die Segmenttabellennummern STN von 8 bis 15 zugeordnet werden. Ein viertes Register "LPT Zeiger" enthält das Adreßwort einer Seitentabelle in dem Hauptspeicher MMU 200. Die Gruppe der Indexregister 203 enthält die Indizes, die für die Adressierung von informationen im Innern der Tabellen erforderlich sind, welche durch die Gruppe der Register 201 adressiert werden. Sie enthält ein erstes Register "LPT Index", das bei dem Zugriff auf eine Tabelle logischer Seiten benutzt wird, ein zweites Register STE, das die Adresse eines Eingangs zu dem Inneren einer Segmenttabelle angibt, ein Register STN, das die Adresse eines Wortes im Innern einer Segmenttabelle angibt. Der Selektor wird für die Adressierung der drei vorgenannten indexregister benutzt. Diese Register werden direkt von dem Datenbus 224 aus geladen. Der Vergleicher 205 vergleicht die ersten Zonen STSZ oder STWZ oder STWZ1 von jedem der Register 201 mit dem Inhalt von jedem der Indexregister 203. So kann das Wort STN mit einem der Wörter STWSZ verglichen werden, und das Wort STE kann mit dem Wort STSZ verglichen werden. Der
909809/0954
_ 14 . 2835383
Addierer 206 wird benutzt, um eine Adresse im Speicher MMU zu berechnen, indem der Inhalt eines Wortes STA, STWA oder LPT zu einem Indexwort der Gruppe der Register 203 hinzugefügt wird. Das Ergebnis der Berechnung wird in das Register 221 geladen und dann auf dem Speicheradreßbus 226 übertragen. Das Register 207 wird für die Speicherung einer Segmentangabe SD benutzt. Es enthält eine erste Zone, die entweder das Wort, das die Basis eines Segments bezeichnet, oder die Wörter SRF und S0F enthalten kann, eine zweite Zone, die den Zustand der Segmentangabe SD angibt, und ein Präsenzbit. Das Register 209 enthält die Nummer LPN einer logischen Seite und wird benutzt, um das Wort SRF einer in dem Register 207 enthaltenen Segmentangabe mit dem in dem Register 208 (Fig. 2A) gefundenen Wort SPN zu verketten. Das Ergebnis der Verkettung wird einerseits an einen ersten Eingang des Vergleichers 211 abgegeben, dessen zweiter Eingang mit dem Ausgang des Registers 210 verbunden ist, dessen Inhalt die Nummer LPN2 einer logischen Seite darstellt, die in der Tabelle LPT von logischen Seiten gelesen wird, welche sich in dem Speicher MMU befindet. Das Ergebnis des Vergleiches wird an den Testbus 225 abgegeben. Das Ergebnis der Verkettung in dem Register 209 wird außerdem über einen Datenverdichter 212, der in herkömmlicher Weise mit Hilfe von Antivalenzschaltungen aufgebaut ist, in das Indexregister LPT 203 überführt.
Es wird jetzt die Betriebsweise der Anordnung anhand der Fig. 3A, 3B und 3C beschrieben.
Diese Figuren beschreiben die Betriebsweise der Adreßumwandlungsanordnung.
Die letzten Schritte 315 und 324 werden mit Hilfe der Anordnungen von Fig. 2A ausgeführt. Der Vorspeicher 214 gestattet,
909809/0954
das Durchlaufen der anderen Schritte bei jeder Adreßumwandlung zu vermeiden, wenn das Vorhandensein des Kennzeichens, das aus der bei 220 und 208 dargestellten virtuellen Adresse stammt, erkannt wird.
Es wird angenommen, daß im Anfangszustand des Betriebes die Register 203 LPT, ASW , ASW. in Übereinstimmung mit dem Prozeß (JP) geladen sind, der gerade durch das Datenverarbeitungssystem ausgeführt wird, daß die Register 203, 220 (STN, STE) und 208 (SRA) die Parameter der virtuellen Adresse enthalten und daß auf die Wörter ASWn und ASW1 zugegriffen worden ist und diese Wörter in das Register 201 geladen worden sind. Ausgehend von diesem Anfangszustand, dem Schritt 300 in Fig. 3A, läuft der Prozeß der Adreßberechnung folgendermaßen ab. Die Register ASW0 oder ASW1 werden in Abhängigkeit von dem Wert der Nummer STN in den Schritten 301, 302 und ausgewählt und der Zeiger STWA wird zu dem Inhalt des Wortes STN in dem Addierer 206 addiert, um das Wort der Adresse einer Segmenttabelle zu bilden. Diese Adresse wird in den Hauptspeicher überführt, um das Wort STW in die Registerbank 201 zu laden. Der Wert des Wortes STN wird mit den Wörtern STWSZQ oder STWSZ1 in dem Vergleicher 205 verglichen und eine Ausnahme wird durch diesen Vergleicher erzeugt, wenn STN größer oder gleich STWSZ ist. Wenn STN kleiner als STWSZ ist, wird das Wort STW über den Bus A in das Register STW geladen (Schritt 307). Das Register STW wird ausgewählt und der Zeiger STA wird zu dem Inhalt STE durch den Addierer 206 addiert, um die Adresse einer Segmentangabe SD zu bilden. Diese Adresse wird in den Hauptspeicher überführt, um die Segmentangabe zu suchen, die dann in das Register 207 geladen wird (Schritt 311). Der Wert von STE wird mit dem Wort STSZ in dem Vergleicher 205 verglichen und es ergibt sich eine Ausnahme, wenn STE größer oder gleich STSZ ist, Schritte 309 und 310. Das'erste Wort der Segmentangabe wird in das Register 207 geladen. Der Inhalt des
909809/0954
283598:
Registers 207 wird analysiert und eine Ausnahme wird erzeugt, wenn das Präsenzbit ρ des Segments null ist, Schritte 312 und 313.
Der Schritt 314 besteht darin, die Zone ST (Segmenttyp) der Segmentangabe daraufhin zu überprüfen, ob das Segment ein nichtseitengeteiltes Segment ist, wobei der Adreßumwandlungsmechanismus mit dem Schritt 315 fortgesetzt wird. Der Vorspeicher 214 wird durch den Inhalt der Register STN, STE 220 und das Feld SPN des Registers 208 über den Datenverdichter
213 adressiert. In dem Fall eines nichtseitengeteilten Segments wird der Inhalt des Vorspeichers durch die Felder "STN, STE", die aus dem Register 220 stammen, und die Felder "Basis" und "S", die aus dem Register 207 stammen, über den Datenbus 224 geladen. Die Basisadresse des in dem Vorspeicher
214 gefundenen Segments wird dann zu der relativen Adresse SRA, die in dem Register 208 enthalten ist, durch den Addierer 218 hinzugefügt. Das Ergebnis wird dann in das Register 223 für physikalische Adressen geladen. Das entspricht dem Schritt 315. Wenn das Segment ein seitengeteiltes Element ist, wird der Adreßübersetzungsmechanismus mit dem Schritt 317 fortgesetzt und das Register LPN^ 209 wird durch das Feld SRF, das in dem Register 207 gefunden wird, und das Feld SPn, das in dem Register 208 gefunden wird, geladen. Die in dem Register LPN1 209 enthaltenen Daten werden über den Verdichter 212 verdichtet und in das Indexregister LPT der Registerbank 203 in dem Schritt 318 geladen.
In dem Schritt 319 wird der Inhalt des Registers "LPT Zeiger" in der Registerbank 201 ausgewählt und zu dem Inhalt des Registers "LPT Index" der Registerbank 203 addiert, um die physikalische Adresse des Eingangs einer Tabelle LPT zu bilden. Diese Adresse wird über den Speicheradreßbus 226 in den
909809/0954
— ι / —
Hauptspeicher MMU überführt. Der Inhalt der Tabelle LPT an dem ausgewählten Eingang wird über den Datenbus 224 geladen. Die Zustandszone wird analysiert, um, bei Bedarf, eine Ausnahme aufgrund einer fehlenden Seite zu erzeugen und den Adreßübersetzungsprozeß zu stoppen. Das in der Tabelle LPT gefundenen Feld LPN wird anschließend in das Register LPN2 210 überführt und das Feld "LINK" der Verbindung mit der Nummer LPN, das in der Tabelle LPT gefunden wird, wird in das Indexregister LPT der Registerbank 203 geladen. In dem Schritt 320 wird die in dem Register 210 enthaltene Nummer LPN- in dem Vergleieher 211 mit der in dem Register 209 enthaltenen Nummer LPN- verglichen. Wenn Gleichheit festgestellt wird, wird der Inhalt des Vorspeichers über die Felder STN, STE, SPN, die aus den Registern 220 und 208 stammen, S0F und S, die aus dem Register 207 stammen, über den Datenbus 224 geladen, und das Feld PPN, das aus der Tabelle LPT stammt, wird über den Datenbus 224 geladen.
Das Feld S0F, das aus dem Vorspeicher 214 stammt, wird in dem Addierer 219 zu dem aus dem Register 208 stammenden Feld SPRA addiert. Das Ergebnis PRA wird mit dem aus dem Vorspeicher 214 stammenden Feld PPN verkettet, um die physikalische Adresse zu bilden, die in das Register 223 für physikalische Adressen geladen wird.
Wenn in dem Schritt 320 die Gleichheit der Nummern LPN nicht gefunden wird und wenn in dem Schritt 321 der Eingang der ausgewählten Tabelle LPT nicht der letzte der Kette ist, geht die Ausführung des Adreßübersetzungsprozesses in dem Schritt 323 weiter und kehrt dann zu dem Schritt 319 zurück. Wenn dagegen in dem Schritt 321 der Eingang der ausgewählten Tabelle der letzte der Kette ist, wird eine Ausnahme "Seite fehlt" erzeugt und der Adreßumwandlungsprozeß wird gestoppt.
909809/0954
Leerseife

Claims (8)

  1. Patentanwälte «£ U >5 3 3 O »
    Dipl.-Ing. Dipl.-Chem. Dipl.-Ing.
    E. Prinz - Dr. G. Hauser - G. Leiser
    17. August 1978
    Ernsbergerstrasse 19
    8 München 60
    COMPAGNIE INTERNATIONALE POUR L»INFORMATIQUE CII - HONEYWELL BULL
    94, Avenue Gambetta
    75020 Pariβ / Frankreich
    Unser Zeichen; C 3194
    Patentansprüche :
    r\ . Anordnung zum Umwandeln einer virtuellen Adresse in eine physikalische Adresse eines Datenwortes in einem Datenverarbeitungssystem, mit ersten Einrichtungen zum Adressieren einer Segmentangabe im Hauptspeicher aufgrund einer Segmenttabellennummer und einer Tabelleneingangsnummer, die in dem Wort der effektiven Adresse des Datenwortes gefunden wird, gekennzeichnet durch zweite Einrichtungen, die das Bestimmen einer Nummer einer logischen Seite aufgrund einer Segmentangabe, die durch die ersten Einrichtungen adressiert wird, und einer Seitennummer, die durch das Wort der effektiven Adresse des Datenwortes angegeben wird, gestatten.
  2. 2. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß die Nummer einer logischen Seite durch eine Einrichtung erhalten wird, die die Verkettung der Seitennummer in dem Segment, die in der effektiven Adresse gefunden wird, und der Segmentangabe, die in einer durch die ersten Einrichtungen adressierten Segmenttabelle gefunden wird, gestattet.
  3. 3. Anordnung nach Anspruch 1 und 2, gekennzeichnet durch dritte Einrichtungen zum Auswählen von Adressen im Innern einer logischen Tabelle, die im Hauptspeicher enthalten ist.
    909809/0954 ORIGINAL INSPECTED
    2835983
    aufgrund der Nummer einer logischen Seite, die aufgrund der zweiten Einrichtungen erhalten wird, und einer vierten Einrichtung, die die Anfangsadresse der logischen Tabelle angibt.
  4. 4. Anordnung nach Anspruch 3 ,dadurch gekennzeichnet,daß die Adressierung/die durch die dritten Einrichtungen vorgenommen wird, mit Hilfe einer Einrichtung zur Verdichtung der Nummer einer logischen Seite erfolgt.
  5. 5. Anordnung nach Anspruch 3, dadurch gekennzeichnet, daß die Adressierung, die durch die dritten Einrichtungen vorgenommen wird, mit Hilfe einer vierten Einrichtung erfolgt, die das Verknüpfen der Nummern von logischen Seiten mit dem Innern der logischen Tabelle gestattet.
  6. 6. Anordnung nach den Ansprüchen 1 bis 5, gekennzeichnet durch fünfte Einrichtungen zum Vergleichen der Nummer einer logischen Seite, die durch die zweiten Einrichtungen bestimmt wird, mit einer Nummer einer logischen Seite, die durch die dritten Einrichtungen adressiert wird.
  7. 7. Anordnung nach den Ansprüchen 1 bis 6, gekennzeichnet durch eine siebente Einrichtung zum Verketten eines Wortes der Nummer einer physikalischen Seite, die durch die dritten Einrichtungen adressiert wird, mit einem Wort einer relativen Adresse des Datenwortes auf der Seite, die aufgrund des Wortes der effektiven Adresse gefunden wird, um die physikalische Adresse des Datenwortes im Hauptspeicher zu erhalten.
  8. 8. Anordnung nach Anspruch 7, gekennzeichnet durch eine achte Einrichtung, die das Erhalten der relativen Adresse auf einer physikalischen Seite gestattet, indem eine Ver-
    909809/0954
    Schiebung des Segments auf der Seite, die in der durch die ersten Einrichtungen adressierten Segmentangabe gefunden wird, zu der relativen Adresse in dem Segment, die in dem Wort der effektiven Adresse gefunden wird, addiert wird.
    9/0954
DE19782835989 1977-08-17 1978-08-17 Anordnung zum umwandeln einer virtuellen adresse in eine physikalische adresse eines datenwortes Withdrawn DE2835989A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR7725121A FR2400729A1 (fr) 1977-08-17 1977-08-17 Dispositif pour la transformation d'adresses virtuelles en adresses physiques dans un systeme de traitement de donnees

Publications (1)

Publication Number Publication Date
DE2835989A1 true DE2835989A1 (de) 1979-03-01

Family

ID=9194560

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19782835989 Withdrawn DE2835989A1 (de) 1977-08-17 1978-08-17 Anordnung zum umwandeln einer virtuellen adresse in eine physikalische adresse eines datenwortes

Country Status (5)

Country Link
US (1) US4279014A (de)
DE (1) DE2835989A1 (de)
FR (1) FR2400729A1 (de)
GB (1) GB2005447B (de)
IT (1) IT1109525B (de)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2472231B1 (fr) * 1979-12-20 1986-02-21 Cii Honeywell Bull Dispositif d'adressage d'elements d'informations dans une table a plusieurs entrees, enregistree dans une memoire
US4356549A (en) * 1980-04-02 1982-10-26 Control Data Corporation System page table apparatus
JPS5734251A (en) * 1980-08-07 1982-02-24 Toshiba Corp Address conversion and generating system
US4493023A (en) * 1981-05-22 1985-01-08 Data General Corporation Digital data processing system having unique addressing means and means for identifying and accessing operands
US4456954A (en) * 1981-06-15 1984-06-26 International Business Machines Corporation Virtual machine system with guest architecture emulation using hardware TLB's for plural level address translations
US4432053A (en) * 1981-06-29 1984-02-14 Burroughs Corporation Address generating apparatus and method
US4495565A (en) * 1981-11-09 1985-01-22 At&T Bell Laboratories Computer memory address matcher and process
US4473878A (en) * 1981-11-23 1984-09-25 Motorola, Inc. Memory management unit
US4602328A (en) * 1982-12-17 1986-07-22 L'etat Francais Represente Par Le Ministre Des P.T.T. (Centre National D'etudes Des Telecommunications) Management system for the memory of a processor or microprocessor
US4638426A (en) * 1982-12-30 1987-01-20 International Business Machines Corporation Virtual memory address translation mechanism with controlled data persistence
US4587610A (en) * 1984-02-10 1986-05-06 Prime Computer, Inc. Address translation systems for high speed computer memories
US4710868A (en) * 1984-06-29 1987-12-01 International Business Machines Corporation Interconnect scheme for shared memory local networks
US4695950A (en) * 1984-09-17 1987-09-22 International Business Machines Corporation Fast two-level dynamic address translation method and means
JPS61148551A (ja) * 1984-12-24 1986-07-07 Hitachi Ltd アドレス変換方式
US4821171A (en) * 1985-05-07 1989-04-11 Prime Computer, Inc. System of selective purging of address translation in computer memories
US4972338A (en) * 1985-06-13 1990-11-20 Intel Corporation Memory management for microprocessor system
DE3675880D1 (de) * 1985-10-18 1991-01-10 Bbc Brown Boveri & Cie Schaltungsanordnung zur transformation von 2n in einem leittechniksystem mit mehreren teilnehmern verwendeten globalen adressen in 2m in einem der teilnehmer des systems verwendeten lokalen adressen.
US4926322A (en) * 1987-08-03 1990-05-15 Compag Computer Corporation Software emulation of bank-switched memory using a virtual DOS monitor and paged memory management
CA2045789A1 (en) * 1990-06-29 1991-12-30 Richard Lee Sites Granularity hint for translation buffer in high performance processor
US5381537A (en) * 1991-12-06 1995-01-10 International Business Machines Corporation Large logical addressing method and means
JP3219826B2 (ja) * 1992-02-21 2001-10-15 日本電気株式会社 情報処理装置
US6735685B1 (en) * 1992-09-29 2004-05-11 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
FR2774788B1 (fr) * 1998-02-12 2000-03-24 Bull Sa Procede de controle d'acces memoire sur une machine avec memoire a acces non uniforme et machine pour mettre en oeuvre ce procede
FR2777672B1 (fr) 1998-04-15 2000-05-19 Bull Sa Procede pour acceder indifferemment en mode d'adressage physique et en mode d'adressage virtuel a une meme zone memoire de machine de traitement numerique et machine mettant en oeuvre ce procede
FR2787901B1 (fr) 1998-12-28 2001-02-09 Bull Sa Organisation memoire par zones physiques
FR2795196B1 (fr) 1999-06-21 2001-08-10 Bull Sa Processus de liberation de pages physiques pour mecanisme d'adressage virtuel
US6662289B1 (en) 2001-05-15 2003-12-09 Hewlett-Packard Development Company, Lp. Method and apparatus for direct conveyance of physical addresses from user level code to peripheral devices in virtual memory systems
FR2929729A1 (fr) * 2008-04-03 2009-10-09 Alveol Technology Sarl Dispositif de gestion de la memoire d'un environnement informatique
US9483400B2 (en) * 2014-04-21 2016-11-01 Microsoft Technology Licensing, Llc Multiplexed memory for segments and pages

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3394350A (en) * 1965-01-14 1968-07-23 Burroughs Corp Digital processor implementation of transfer and translate operation
JPS5040738B1 (de) * 1970-06-11 1975-12-26
FR130806A (de) * 1973-11-21
FR119649A (de) * 1975-03-24
US4092715A (en) * 1976-09-22 1978-05-30 Honeywell Information Systems Inc. Input-output unit having extended addressing capability
US9402643B2 (en) * 2008-01-15 2016-08-02 Novartis Ag Targeted illumination for surgical instrument

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
US-Buch "Introduction to Computer Architecture" H.S. Stone, SRA Inc., 1975 S. 230-247 *
US-Firmenschrift "Das IBM System/370 Modell 16 8 , U. Fischer, 1976, S. 5-14 *

Also Published As

Publication number Publication date
FR2400729A1 (fr) 1979-03-16
IT1109525B (it) 1985-12-16
IT7826648A0 (it) 1978-08-10
GB2005447A (en) 1979-04-19
FR2400729B1 (de) 1981-10-16
US4279014A (en) 1981-07-14
GB2005447B (en) 1982-04-21

Similar Documents

Publication Publication Date Title
DE2835989A1 (de) Anordnung zum umwandeln einer virtuellen adresse in eine physikalische adresse eines datenwortes
DE2227882C2 (de) Virtuelle Speicheranordnung
DE2807476C2 (de) Speichereinrichtung mit mehreren virtuellen Adreßräumen
DE69724572T2 (de) Verfahren und Vorrichtung zur Vorladung von verschiedenen vorgegebenen Adressenübersetzungsattributen
DE3151745C2 (de)
DE2459006C2 (de) Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage
DE2235841C2 (de) Datenverarbeitungsanlage mit Speichersteuerung für mindestens einen Prozessor und diesen zugeordneten Pufferspeichern
DE2725718C2 (de) Datenverarbeitungsanordnung zum Übersetzen von virtuellen Adressen
DE2131066C3 (de) Anordnung zum Adressieren eines Tabellenspeichers
DE2712575C2 (de) Assoziatives Speichersystem in hochintegrierter Halbleitertechnik
DE2939411C2 (de) Datenverarbeitungsanlage mit virtueller Speicheradressierung
DE2218839A1 (de) Verfahren und einrichtung zur zuteilung von speicheradressen zu datenelementen
DE3518818A1 (de) Datenverarbeitungsvorrichtung und verfahren und vorrichtung zur umsetzung von datenelementen
CH495584A (de) Datenverarbeitungsanlage
EP0057755B1 (de) Mikrorechnersystem zum raschen Auffinden von Kennzeichenblöcken
DE2062164A1 (de) Verfahren zur Erzeugung eines mehr stufigen Index für gespeicherte Daten einheiten
DE2331394B1 (de) Datenverarbeitungsanlage mit virtueller adressierung
DE2041171C3 (de) Adressrecheneinrichtung fur Großraumspeicher
DE3121710C2 (de) Steuereinrichtung für einen virtuellen Speicher in einer Datenverarbeitungsanlage
DE3216238C1 (de) Datenverarbeitungsanlage mit virtueller Teiladressierung des Pufferspeichers
EP1325412B1 (de) Verfahren zum zugriff auf eine speichereinheit, in der vermerkfolgen gespeichert sind, zugehörige speichereinheit und zugehöriges programm
DE2629311C2 (de)
DE4439809C2 (de) Virtuell indizierbarer Cache-Speicher
DE2532945C3 (de) Arbeitsspeicheranordnung
EP1429254B1 (de) Interrupt-Behandlung in einem CAN-Knoten

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8136 Disposal/non-payment of the fee for publication/grant