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 datenwortesInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
- G06F12/1018—Address 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
CII- HONEYWELL BULL
94, Avenue Gambetta
75020 Paris / Frankreich
75020 Paris / Frankreich
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
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)
- Patentanwälte «£ U >5 3 3 O »Dipl.-Ing. Dipl.-Chem. Dipl.-Ing.E. Prinz - Dr. G. Hauser - G. Leiser17. August 1978Ernsbergerstrasse 198 München 60COMPAGNIE INTERNATIONALE POUR L»INFORMATIQUE CII - HONEYWELL BULL94, Avenue Gambetta
75020 Pariβ / FrankreichUnser Zeichen; C 3194Patentansprü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. 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. 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 INSPECTED2835983aufgrund der Nummer einer logischen Seite, die aufgrund der zweiten Einrichtungen erhalten wird, und einer vierten Einrichtung, die die Anfangsadresse der logischen Tabelle angibt.
- 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. 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. 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. 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. Anordnung nach Anspruch 7, gekennzeichnet durch eine achte Einrichtung, die das Erhalten der relativen Adresse auf einer physikalischen Seite gestattet, indem eine Ver-909809/0954Schiebung 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
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)
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)
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 |
-
1977
- 1977-08-17 FR FR7725121A patent/FR2400729A1/fr active Granted
-
1978
- 1978-08-10 IT IT26648/78A patent/IT1109525B/it active
- 1978-08-11 GB GB7833096A patent/GB2005447B/en not_active Expired
- 1978-08-14 US US05/933,546 patent/US4279014A/en not_active Expired - Lifetime
- 1978-08-17 DE DE19782835989 patent/DE2835989A1/de not_active Withdrawn
Non-Patent Citations (2)
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 |