DE2847737C2 - Schaltung zur Umsetzung virtueller Adressen in eine reelle Adresse von größerer Länge - Google Patents
Schaltung zur Umsetzung virtueller Adressen in eine reelle Adresse von größerer LängeInfo
- Publication number
- DE2847737C2 DE2847737C2 DE2847737A DE2847737A DE2847737C2 DE 2847737 C2 DE2847737 C2 DE 2847737C2 DE 2847737 A DE2847737 A DE 2847737A DE 2847737 A DE2847737 A DE 2847737A DE 2847737 C2 DE2847737 C2 DE 2847737C2
- Authority
- DE
- Germany
- Prior art keywords
- address
- sub
- area
- memory
- bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
- 238000000034 method Methods 0.000 description 19
- 238000006243 chemical reaction Methods 0.000 description 18
- 230000007246 mechanism Effects 0.000 description 15
- 230000008569 process Effects 0.000 description 12
- 238000005192 partition Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000009472 formulation Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000002689 soil Substances 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
Die Erfindung betrifft eine Schaltung zur Umsetzung einer virtuellen Adresse in eine reelle Adresse von
größerer Länge mit einem mehrere Speicherbereiche angebenden Registerstapel, von dem jeweils ein
Register von einem ersten Teil der virtuellen Adresse adressierbar ist, mit einem Addierer, von dem ein
zweiter Teil der virtuellen Adresse mit einem Teil der vom adressierten Register ausgegebenen Bitgruppe
addierbar ist, und mit einem Gerät, von dem ein dritter
Teil der virtuellen Adresse an den vom Addierer ausgegebenen Adressenabschnitt ungeändert anfügbar
ist
■> Die derzeitigen Rechenautomaten sind häufig mehreren
Benutzern, Programmen und Befehlsrechnern zugänglich, und in solchen Fällen arbeiten sie unter dem
Einfluß mehrerer Rechenabläufe und Programme, die im Hauptspeicher untergebracht sind. Der einzelne
ίο Benutzer schreibt sein Programm vor, als ob es von sich
aus laufen sollte, und das Programm kann dementsprechend alle Mittel des Systems benutzen. Der Rechenautomat
liefert die zur Stützung des Programms nötigen Dienste und koordiniert es mit anderen Programmen
und mit den in Betrieb befindlichen Schaltelementen. Die Schaltungen des Systems werden mit einem
ausführenden Programm kombiniert, um eine leistungsfähigere Maschine zu simulieren, für die die Programme
geschrieben sind. Bei dieser Art der Mehrfachbearbeitung erscheint es dem Benutzer, daß ihm sein eigener
Rechenautomat zur Verfugung steht
Bei der Arbeit eines Rechenautomaten unter dem Einfluß mehrerer Rechenabläufe und Programme
entstehen Probleme bezüglich der Adressierung des Speichers. Die reellen Speicheradressen eines Programms
brauchen nicht mit den reellen Speicheradressen eines anderen Programmes im Widerspruch zu
stehen. Somit sind die üblichen Pläne des körperlichen Adressierens schwierig in einem System mit mehreren
so Rechenabläufen in die Wirklichkeit umzusetzen.
Aus diesem Grunde benutzen die jetzigen, mehrere Rechenabläufe ausführenden Rechenautomaten eine
Form der virtuellen Adressierung, bei der der Benutzer sein Programm derart schreibt, als ob es von selbst auf
seiner eigenen, virtuellen Maschine ablaufen sollte. Verschiedene Programme können sich dabei auf
dieselbe virtuelle Adresse beziehen, aber diese entsprechen unterschiedlichen reellen Speicheradressen. Deshalb
muß ein solcher Rechenautomat ein Hilfsmittel enthalten, von dem die virtuellen Adressen in die reellen
Adressen umgewandelt, also überführt werden. Ferner muß die richtige Durchführung der Umwandlung
sichergestellt sein, damit sich eine virtuelle Adresse eines Programms nur auf ihre entsprechende reelle
Adresse und nicht auf eine andere reelle Adresse bezieht, die derselben virtuellen Adresse in einem
anderen Programm entspricht.
Die Arbeitsweise eines Rechenautomaten mit mehreren Rechenabläufen und einer beliebigen Form der
virtuellen Adressierung bringt Probleme der Zuweisung und Ausnutzung des Speicherraumes mit sich. Die
Lösungen bei den bisherigen Systemen fallen in drei Kategorien, nämlich in die Bereichsbildung, die
Seitenaufteilung oder in eine Kombination dieser beiden Möglichkeiten. Beim Entwurf eines optimalen
Schemas für einen gegebenen Rechenautomaten müssen Kompromisse zwischen einer Anzahl von Faktoren
eingegangen werden.
Aus der US-Patentschrift 38 54 126 ist bereits bekannt, eine dreiteilige virtuelle Adresse aus 16 Bits in eine reelle Adresse aus 18 Bits umzuwandeln. Die niederrangigen Bits 00 bis 05 der virtuellen Adresse, die mit Wortnummer bezeichnet sind, werden ungeändert als niederrangige Bits der reellen Adresse übernommen.
Aus der US-Patentschrift 38 54 126 ist bereits bekannt, eine dreiteilige virtuelle Adresse aus 16 Bits in eine reelle Adresse aus 18 Bits umzuwandeln. Die niederrangigen Bits 00 bis 05 der virtuellen Adresse, die mit Wortnummer bezeichnet sind, werden ungeändert als niederrangige Bits der reellen Adresse übernommen.
Die höchstrangigen Bits 13 bis 15 der virtuellen Adresse dienen der Auswahl eines oder mehrerer gleichwertiger
Register innerhalb eines Registerstapels, dem bzw. denen eine Seitenadresse, die Seitenlänge, sowie
Steuerbits und Anzeigebits entnehmbar sind. Die Seitenadresse wird in einen Addierer eingegeben, dem
zusätzlich der mittlere Teil der virtuellen Adresse, der als Blocknummer bezeichnet ist, nämlich die Bits 06 bis
12 zugeführt werden. Diese sieben Bits werden mit den
sieben niederrangigen Bits der Seitenadresse addiert,
und an den sich ergebenden Abschnitt der reellen Adresse werden noch die niederrangigen Bits 00 bis 05
aus der virtuellen Adresse ungeändert angefügt, so daß die gesamte reelle Adresse über 18 Bits verfügt, die in
einem dem reellen Speicher vorgeschalteten Treiber hineinlaufen.
Mit Hilfe dieser bekannten Schaltung können einem Benutzer gerade so viele reelle Adressen und damit
Speicherplätze für Bitgruppen innerhalb eines Bereiches im reellen Speicher zur Verfügung gestellt werden,
wie es die Anzahl der Bitstellen des mittleren und letzten Teils der virtuellen Adresse erlaubt, während die
Bits im ersten Teil ihm die eine Grenze seines Bereiches vorschreiben. Die Anzahl der Bitstellen dieses ersten
Teils stellt zugleich als Potenz von 2 die maximale Anzahl gesondert adressierbarer Register im Registerstapel
dar und gibt damit die maximal mögliche Anzahl von Benutzern an, wenn jedem Benutzer über die ihm
zur Verfügung stehenden virtuellen Adressen ein Bereich reeller Adressen (Speicherplätze) im reellen
Speicher zugeordnet ist
Der Erfindung liegt die Aufgabe zugrunde, unter Inanspruchnahme von möglichst wenig zusätzlichem
Schaltungsaufwand einem Benutzer unter den gegebenen Bedingungen, also bei derselben Anzahl ihm zur
Verfügung stehender virtueller Adressen zumindest zwei oder auch mehrere nichtzusammenhängende
Bereiche des reellen Speichers zuzuteilen.
Diese Aufgabe wird erfindungsgemäß dadurch gelöst, daß von einem Bit der vom adressierten Register
ausgegebenen Bitgruppe unter Ausschaltung des Addierers das Gerät derart umschaltbar ist daß an dem von
dem Bit unterschiedlichen Teil der vom adressierten Register ausgegebenen Bitgruppe der zweite Teil der
virtuellen Adresse ungeändert anfügbar ist, und daß von der entstandenen Adresse eines unter mehreren
Registern einer Teilbereichsanzeiger-Tabelle adressierbar ist, an dessen Inhalt der dritte Teil der virtuellen
Adresse anfügbar ist.
Mit der Erfindung wird ein Schema für die Umsetzung der virtuellen Adressen in reelle Adressen in
einmaliger Weise für einen Rechenautomaten geschaffen, wobei die wirkungsvolle Mechanisierung der
Schaltungen für die Speicherplatzzuweisung, die Erweiterung der Speicheradressen und den Schutz der
Zugriffe leichter bewerkstelligt wird. Die Möglichkeit ist besonders, obgleich nicht darauf begrenzt, für
Systeme von Rechenautomaten wertvoll, die die Funktion einer Datenübertragung übernehmer, da die
üblichen Verfahren der Bedienung eines Speichers dazu neigen, bei einer Realzeitsteuerung in ihrer Ausnutzung
der Hilfsmittel unwirksam zu sein.
Während das Schema der Umsetzung am besten durch eine Bereichsbildung gekennzeichnet ist, wobei
der kleinere Raum der virtuellen Adressen jedes Benutzers irgendwo im größeren Raum der reellen
Adressen des Speichers durch eine Zuweisung auf Bereichsbasis eingeschrieben wird, wodurch ein zusammenhängender
Speicherbereich mit einer vorgegebenen maximalen Größe belegt wird, verwendet es auch
eine Bereichssuchtechnik, die abwechselnd ein Legen des Raumes der virtuellen Adressen in nicht zusammenhängende
Teilbereiche des Speichers mit einer geringeren, vorgegebenen, maximalen Größe erlaubt Mit
anderen Worten ausgedrückt ist das Umwandlungsschema auf zwei Arten, nämlich mit zusammenhängen-
·'· den Bereichen und nichtzusammenhängenden Teilbereichen durchführbar, wodurch eine Feinkörnigkeit der
Speic'nerzuweisung zustandekommt während, wenn nötig, noch Zugriffe auf den Speicher mit hoher
Geschwindigkeit möglich sind. Obgleich ein zusätzlicher
ίο Aufwand mit der Adressenformulierung in den Teilbereichen
verbunden ist bei denen die Vorteile der Feinkörnigkeit ausgenutzt werden, erscheint dieser als
ein vernünftiger Preis für ein flexibles Speicherzuweisungsschema.
π Dementsprechend ist hier ein Mechanismus zur Umwandlung einer im Programm erzeugten, virtuellen
Adresse in eine reelle Adresse von zumindest einem
Abschnitt eines Speicherbereiches des Rechenautomaten vorgesehen, z. B. einer Bitgruppe. Die Adressenum-Wandlung
kann zur Formulierung der reellen Speicheradresse auf zwei Arten erfolgen. Bei den beiden
Betriebsarten wird ein erster Abschnitt der virtuellen Adresse zur Auswahl eines von mehreren Bereichsanzeigern
benutzt, die je zwei Felder aufweisen. Das erste Feld gibt an, ob der Aufbau des Speicherbereiches
zusammenhängende Blöcke zur Bildung eines zusammenhängenden Speicherbereiches oder nichtzusammenhängende
Teilbereiche enthält, und bewirkt dementsprechend die Adressenumwandlung, bei der in der
jo einen oder anderen Art weitergearbeitet wird.
In der ersten bekannten Betriebsart wird die reelle Adresse aus dem zweiten Feld des gewählten
Bereichsanzeigers und den anderen Abschnitten der virtuellen Adresse gewählt Insbesondere wird ein
υ zweiter Abschnitt der virtuellen Adresse zu dem
zweiten Feld addiert, damit eine Summe zustandekommt und ein dritter Abschnitt der virtuellen Adresse
wird zur Bildung der reellen Adresse mit der Summe verknüpft
In der zweiten Betriebsart wird die reelle Adresse aus den anderen Abschnitten der virtuellen Adresse und
einem Feld eines Teilbereichsanzeigers formuliert, der vom zweiten Feld des adressierten Bereichsanzeigers
angewählt wird. Insbesondere wird zur Wahl eines vorgegebenen von mehreren Teilbereichsanzeigern der
zweite Abschnitt der virtuellen Adresse mit dem zweiten Feld des adressierten Bereichsanzeigers verknüpft.
In der Schaltungsanordnung des Umwandlungsmechanismus ist als Hilfsmittel eine Tabelle vorgesehen, die mehrere Bereichsanzeiger enthält. Außerdem weist der Mechanismus Steuervorrichtungen auf, die auf das erste Feld des adressierten Bereichsanzeigers ansprechen, damit festgelegt wird, in welcher der beiden Betriebsarten der Mechanismus bei der Umwandlung der virtuellen Adresse in die reelle Speicheradresse vorgehen soll. Die Teilbereichsanzeiger sind in einer Tabelle im Speicher des Systems untergebracht. Wenn der Mechanismus gerade in der zweiten Betriebsart arbeitet, muß daher ein gesonderter Zyklus zur Adressierung und zum Holen eines der Teilbereichsanzeiger durchlaufen werden.
In der Schaltungsanordnung des Umwandlungsmechanismus ist als Hilfsmittel eine Tabelle vorgesehen, die mehrere Bereichsanzeiger enthält. Außerdem weist der Mechanismus Steuervorrichtungen auf, die auf das erste Feld des adressierten Bereichsanzeigers ansprechen, damit festgelegt wird, in welcher der beiden Betriebsarten der Mechanismus bei der Umwandlung der virtuellen Adresse in die reelle Speicheradresse vorgehen soll. Die Teilbereichsanzeiger sind in einer Tabelle im Speicher des Systems untergebracht. Wenn der Mechanismus gerade in der zweiten Betriebsart arbeitet, muß daher ein gesonderter Zyklus zur Adressierung und zum Holen eines der Teilbereichsanzeiger durchlaufen werden.
Zusätzlich zu den beiden oben erwähnten Feldern des Bereichsanzeigers können noch weitere Felder vorhanden
sein, die vorschreiben, ob der Bereich festliegt öder nicht, für welche speziellen Funktionen ein Zugriff auf
den Bereich erfolgen kann, und welche Länge der Bereich hat. Auch der Teilbereichsanzeiger weist ein
weiteres Feld auf, das angibt, ob der Teilbereich festliegt oder nicht
Der hier erläuterte Mechanismus zur Umwandlung der virtuellen Adressen in reelle Adressen bildet einen
Teil der Anordnung eines Rechenautomaten für allgemeine Zwecke, dessen Arbeit unter dem Einfluß
mehrerer Rechenvorgänge auf der Basis von Programmen erleichtert wird, die in einem örtlichen Speicher
untergebracht sind. Der Umwandlungs-Mechanismus selbst ist für die Programme nicht erkennbar.
Ein Ausführungsbeispiel der Erfindung wird in der Zeichnung dargestellt und im folgenden näher erläutert.
Es stellt dar
Fig. 1 ein Flußdiagramm des Verfahrens zur Umwandlung von virtuellen Adressen in reelle Adressen, das die beider, Betriebsarten mit den verschiedenen
Überprüfungen veranschaulicht,
F i g. 2 die Schritte bei der genannten Umwandlung in der zweiten Betriebsart mit Teilbereichen und
Fig.3A bis 3C in einer ausführlicheren Form die
Schritte bei der zweiten Betriebsart
In einem Ausführungsbeispiel ist der Umwandlungsmechanismus bei der Ableitung einer reellen Speicheradresse aus 24 Bits aus einer virtuellen Adresse mit
17 Bits befähigt, einen Raum der virtuellen Adressen
eines Benutzers mit 131 072 Bitgruppen in einem Raum
der reellen Speicheradressen aus 16 777 216 Bitgruppen
hineinzubringen. Das vom Mechanismus benutzte Einbringungsverfahren ist insofern einmalig, als die
131 072 Bitgruppen des für den Benutzer zusammenhängenden Raumes der virtuellen Adressen tatsächlich
in einer kombinierten Summe von (bis zu) 32 zusammenhängenden bzw. nicht zusammenhängenden
Bereichen mit 4096 Bitgruppen enthalten sein können, die sich jeweils irgendwo im reellen Speicher für die
16 777 216 Bitgruppen befinden. Ein,zusammenhängender Speicherbereich kann bis zu 4096 Bitgruppen in
Anteilen von 128 Bitgruppen, nämlich in (bis zu) 32 zusammenhängenden Blöcken mit je 128 Bitgruppen
enthalten, während ein nicht zusammenhängender Bereich bis zu 32 nicht zusammenhängende Teilbereiche
mit je 128 Bitgruppen aufweisen kann, so daß die beiden
Arten Bereiche denselben Minimalumfang besitzen, unter dem also 128 zusammenhängend gespeicherte
Bitgruppen verstanden werden. Im Ergebnis besteht der dem Benutzerprogramm zugängliche Raum der virtuellen Adressen aus 131 072 Bitgruppen innerhalb des
ganzen Speichers bei einem minimalen zusammenhängenden Teilbereich von 128 Bitgruppen. Zusätzlich kann
der virtuelle Speicherraum eine beliebige Kombination
von zusammenhängenden Bereichen mit schnellem Zugriff bei einem Umfang von 4096 Bitgruppen und
nicht zusammenhängenden Bereichen mit langsamerem Zugriff bei einem Minimalumfang von 128 Bitgruppen
aufweisen, wie sie die jeweilige Anwendung vorzuschreiben hat
Die reelle Speicheradresse eines zusammenhängenden Datenbereiches wird unmittelbar von einem
Bereichsanzeiger erzeugt, der in einer Tabelle mit 32 Bereichsanzeigern enthalten ist, die für einen schnellen
Zugriff in den Registern des Umwandlungsmechanismus festliegen. Die reelle Speicheradresse eines
nichtzusammenhängenden Datenbereiches wird indirekt von einem Bereichsanzeiger, nämlich über einen
Teilbereichsanzeiger erzeugt, der vom Bereichsanzeiger vorgeschrieben und aus einer Tabelle mit 32
Teilbereichsanzeigem ausgewählt wird, die im Speicher
ruhen.
Die Bereichsanzeiger- und Teilbereichsanzeiger-Tabellen, die die Glieder für die Übereinstimmung
zwischen dem Raum der virtuellen Adressen des Benutzers und dem Raum der reellen Speicheradressen
■ liefern, werden vom ausführenden Programm im Rechenautomaten hervorgebracht und sind keiner
Veränderung durch die Anwendungsprogramme des Benutzers zugänglich.
Im Flußdiagramm der Fig. 1 ist das bevorzugte
ι,· Format für eine virtuelle Adresse wiedergegeben, die in
üblicher Weise einem von mehreren Programmbefehlen entnommen ist und 17 Bits enthält; sie ist aus einem
Bereichsfeld SEG (Bits 0 bis 4), einem Teilbereichsfeld 5t/ß(Bits 5 bis 9) und einem Verschiebungsfeld DISPL
, (Bits 10 bis 16) aufgebaut. — Das Bit 0 sei hier das
bedeutsamste und das Bit 16 das unbedeutendste. —
Die Bits 0 bis 4, also die fünf bedeutendsten Bits der virtuellen Adresse schreiben daher vor, welche Adresse
in der Tabelle der Bereichsanzeiger im Adressenum-
■i, wandlungs-Verfahren verwendet werden soll. Die Bits
10 bis 16, also die sieben unbedeutendsten Bits der virtuellen Adresse, die als Verschiebungsfeld keiner
Abänderung unterliegen, stellen unmittelbar die sieben unbedeutendsten Bits der reellen Adresse dar. Die
■ ι spezielle Nutzung der fünf mittleren Bits, also der Bits 5
bis 9 der virtuellen Adresse hängt davon ab, bei welcher Betriebsart der Umwandlungsmechanismus die reelle
Adresse erzeugen soll. Falls die bekannte Betriebsart vorgeschrieben ist werden die fünf mittleren Bits der
'Jj virtuellen Adresse bei der Errechnung der reellen
Adresse benötigt. Bei der anderen Betriebsart dienen die fünf mittleren Bits der Bildung einer Adresse in der
Tabelle der Teilbereichsanzeiger.
Ji einen Bereichsanzeiger SD wiedergegeben, der ein
Wort aus 32 Bits darstellt in dem ein Zugriffsschlüsselfeld K (Bits 0 bis 7), ein Basisadressenfeld BA (Bits 8 bis
24) und ein Längenfeld (Bits 27 bis 31) enthalten sind und die Bits 25 und 26 nicht gebraucht werden und daher mit
4u Nullen belegt sind.
Von den Bits des Zugriffsschlüsselfeldes K werden verschiedene Maßnahmen festgelegt Vom Bit 0, das
auch mit SP bezeichnet ist wird vorgeschrieben, ob überhaupt der Bereich im reellen Speicher vorhanden
ist Falls das Bit 0 mit einer Eins belegt ist befindet sich der adressierte Bereich gerade im Speicher, während
die Belegung mit einer Null das Gegenteil angibt und die Einleitung eines Zugriffes auf den Bereich eine
Unterbrechung bewirkt Als nächstes wird vom Bit 1 des
Zugriffsschlüsselfeldes K, das mit SS bezeichnet ist die
Art des Bereiches vorgegeben, also ob er zusammenhängend ist oder nicht Wenn das Bit 1 mit einer Eins
belegt ist ist ein Bereich definiert der bis zu 32 zusammenhängende Speicherblöcke mit je 128 Bitgrup
pen oder bis zu 4096 zusammenhängende Bitgruppen
aufweist Falls das Bit 1 mit einer Null besetzt ist, ist ein Bereich festgelegt, der bis zu 32 nichtzusammenhängende Teilbereiches des Speichers umfaßt, in denen sich je
128 Bitgruppen oder bis zu 4096 Bitgruppen eines
nichtzusammenhängenden Speichers-Modulo ^befinden. Somit schreibt das Bit 1 als Bit SS des
Zugriffsschlüsselfeldes K des Bereichsanzeigers das spezielle Umwandlungsverfahren vor, also ob die eine
oder andere Betriebsart vom Umwandlungsmechanis
mus bei der Erzeugung der reellen Adresse angewendet
werden soIL Von den übrigen Bits 2 bis 7 des Zugriffsschlfisselfeides K wird festgelegt, ob der Inhalt
des Bereiches für verschiedene Funktionen, z. B. zum
Ausführen, Lesen, Schreiben usw. benutzt werden soll; da diese Bits zum Verständnis nicht benötigt werden,
werden sie nicht weiter erläutert.
Die nächsten siebzehn Bits 8 bis 24 des Basisadressenfeldes BA im Bereichsanzeiger geben eine von zwei
Maßnahmen an in Abhängigkeit davon, ob für die Formulierung der reellen Adresse die eine oder andere
Betriebsart angewendet wird. Im ersteren Fall, wenn das Bit SS mit einer Eins besetzt ist, stellen die 17 Bits des
Basisadressenfeldes BA die reelle Adresse im Speicher dar, bei der der Bereich mit bis zu 32 zusammenhängenden
Blöcken beginnt. Mit anderen Worten gesagt, weist das Basisadressenfeld BA gerade auf den ersten der
32 Blöcke mit 128 Bitgruppen eines spezifischen zusammenhängenden Bereiches hin. Falls die andere
Betriebsart infolge der Belegung des Bit SS durch eine Null vorgeschrieben ist, stellen die 17 Bits des
Basisadressenfeldes die reelle Adresse des Beginns der Tabelle der Teilbereichsanzeiger im Speicher dar, die
einen Bereich mit bis zu 32 nichtzusammenhängenden Teilbereichen beschreibt.
Schließlich geben auch die fünf Bits 27 bis 31 des Längenfeldes L eine von zwei Maßnahmen an. Bei der
bekannten Betriebsart geben sie die fünf bedeutendsten Bits einer Binärzahl an, die die Länge des Bereiches
festlegt. Sie geben eine minimale Länge des Bereiches von 128 Bitgruppen oder einen Block vor, (wie er von
der Binärzahl 00000 wiedergegeben wird), und bezeichnen eine maximale Länge von 4096 Bitgruppen oder
32 Blöcken (wie sie von der Binärzahl 11111 umschrieben
werden). Bei der anderen Betriebsart definieren diese fünf Bits des Längenfeldes L die Zahl der zuletzt
gültigen Adresse in der Tabelle der Teilbereichsanzeiger.
Ferner ist in der F i g. 1 ein bevorzugtes Format für einen Teilbereichsanzeiger SSD veranschaulicht, der ein
Wort mit 32 Bits umfaßt, das ein Teilbereichsfeld P(Bit 0) und ein Basisadressenfeld BA (Bits 8 bis 24) enthält.
Die Bits 1 bis 7 und 25 bis 31 werden nicht benötigt und sind mit Nullen besetzt.
Vom Bit 0 im Teilbcrcichsfeld P, also dem ersten Bit des Teilbereichsanzeigers wird bestimmt, ob der
spezielle Teilbereich nichtzusammenhängend im reellen Speicher vorliegt oder nicht Falls dieses Bit 0 mit einer
Eins besetzt ist, ruht der Teilbereich gerade im Speicher. Bei der Besetzung mit einer Null kann der Teilbereich
nicht bei der Adressenberechnung benutzt werden, wobei der Grund hierfür gleichgültig ist, und die
Einleitung eines Zugriffes auf den Teilbereich bewirkt in diesem Fall die Erzeugung eines Unterbrechungssignals.
Somit liefert dieses erste Bit im Teilbereichsfeld P ein alternatives Hilfsmittel zu dem bereits erläuterten
■ Längenfeld L des Bereichsanzeigers, um die Länge eines
nichtzusammenhängenden Bereiches einzustellen.
Die 17 Bits 8 bis 24 des Basisadressenfeldes im Teilbereichsanzeiger stellen die reelle Adresse im
Speicher dar, die sich auf einen speziellen Teilbereich eines Bereiches bezieht, der bis zu 32 nichtzusammenhängende
Teilbereiche enthält Mit anderen Worten ausgedrückt weist der Teilbereichsanzeiger auf ein
speziellen Block der 32 Blöcke mit 128 Bitgruppen hin,
die irgendwo im Speicher an einer Grenze von 128
Bitgruppen sein können.
Insbesondere veranschaulicht die Fig.3A einen Speicher 10, eine Rechner/Speieher-Zwischeneinheit 12
und ein Multiplexgerät 14, sowie einen Mechanismus 16 zur Obersetzung der Adressen, der einen Teil des
Rechners bildet Die beiden Betriebsarten der Adressen-Umwandlung (Übersetzung) werden eingeleitet,
wenn auf einen programmierten Befehl hin der Inhalt (Bits 15 bis 31) eines Speicheradressen-Registers MAR
in der Rechner/Speicher-Zwischeneinheit 12 von der Steuerung des Rechners (nicht gezeigt) angewählt wird.
Dieser Inhalt ist eine virtuelle Adresse VA mit 17 Bits in
der bereits beschriebenen Zusammensetzung.
Die fünf bedeutsamsten Bits 0 bis 4 im Bereichsfeld SEC der gewählten virtuellen Adresse VA werden über
mehrere Bitleitungen 18 und ein Multiplexgerät 19 einer Bank aus Registern zugeleitet, die gemeinsam eine
Tabelle 20 mit bis zu 32 Eingängen der Bereichsanzeiger SD bilden. Eine gegebene Kombination von binären
Einsen und Nullen (aus 32 möglichen Kombinationen) in den fünf ersten Bits der virtuellen Adresse VA veranlaßt
das Multiplexgerät 19 zur Auswahl eines Registers in der Tabelle 20 der Bereichsanzeiger 5D(F i g. 1 und 3A).
Auf die Wahl eines speziellen Registers hin werden verschiedene Überprüfungen an ihm zur Bestimmung
vorgenommen, ob die Übersetzung fortdauern kann. Wie bereits gesagt, hat jeder Bereichsanzeiger SD ein
Zugriffsschlüsselfeld K und ein Längenfeld L, von denen
das erste als Bit 0 oder SP das Vorhandensein des Bereiches und das Bit 1 oder SS das Umwandlungsverfahren
anzeigt. Dieses Bit 0 oder SP läuft in eine Schaltung 22 (Fig. 1) hinein, die im Falle seiner
Belegung mit einer binären Null ein Unterbrechungssignal hervorruft, das angibt, daß der Bereich nicht im
Speicher vorhanden ist und der Übersetzungsvorgang nicht weitergehen darf. Das Bit 1 oder SS gelangt in eine
Steuerschaltung 24 (F i g. 1 und 3A), die bei seiner Belegung mit einer binären Eins ein Steuersignal zur
Bestimmung erzeugt, daß der Übersetzungsvorgang in der bekannten Betriebsart weitergehen kann. Das
Längenfeld L mit den Bits 27 bis 31 des Bereichsanzeigers SD tritt in einen Komparator 26 (Fig. 1)
gemeinsam mit dem Teilbereichsfeld SUB der virtuellen Adresse VA (Bits 5 bis 9) ein; dort entsteht im Falle
SUB > L ein Unterbrechungssignal, das angibt, daß der Bereich überquert wird, so daß der Übersetzungsvorgang
nicht fortdauern darf.
Bei der Betriebsart gemäß dem Ausführungsbeispiel der Erfindung wird einer von 32 Bereichsanzeigern in
den Registern ausgewählt und von den ersten fünf Bits 0 bis 4 einer gegebenen virtuellen Adresse VA in
derselben Weise abgerufen, wie in Verbindung mit der bekannten Betriebsart beschrieben ist. In diesem Fall ist
das Bit 1, das auch mit SS bezeichnet ist in dem gewählten Bereichsanzeiger SD eine binäre Null, die bei
ihrer Heranführung an die Steuerschaltung 24 ein Steuersignal hervorruft das festlegt, daß die Überführung
der Adressen in der Betriebsart mit den Teilbereichen fortgesetzt werden soll.
Da die Tabelle mit den 32 Teilbereichs-Anzeigern SSD im Speicher 10 ruht muß die reelle Adresse eines
solchen Anzeigers 5SD zuerst vom Mechanismus 16 formuliert werden, und es muß ein gesonderter
Speicherzyklus durchlaufen werden, um den gewählten Teilbereichs-Anzeiger zu holen, ehe die reelle Adresse
des die angeforderten Daten speichernden Platzes endgültig vom Mechanismus 16 erzeugt werden kann.
Folglich unterdrückt das Multiplexgerät 30 bei dieser Betriebsart entsprechend dem Betriebszustand der
Steuerschaltung 24 die auf den Leitungen 40 und 42 auftretenden Bitsignale und bewirkt daß die Bits 5 bis 9
im Teflbereichsfeld SUB der virtuellen Adresse VA, die
in den Bitleitungen 38 übertragen werden, mit dem Basisadressenfeld BA des gewählten Bereichsanzeigers
verknüpft werden, das in den Bitleitungen 34 auftritt. Auf den Bitleitungen 44 am Ausgang des Multiplexgerätes
30 folgen dem unbedeutendsten Bit des Teilbereichsfeldes SUB der virtuellen Adresse VA zwei sich
ergebende binäre Nullen in der reellen Adresse aus 24 Bits für einen speziellen Eingang der Teilbereichsanzeiger-Tabelle
im Speicher 10. Insbesondere stellt das Basisadressenfeld BA mit 17 Bits die reelle Adresse des
Beginns dieser bezeichneten Tabelle dar, während die Bits 5 bis 9 der virtuellen Adresse VA nach ihrer
Verknüpfung mit dem Basisadressenfeld BA, (wobei die beiden sich ergebenden binären Nullen nachgestellt
sind), die reelle Adresse des gewählten Teilbereichanzeigers unter den 32 Teilbereichanzeigern in der Tabelle
innerhalb des Speichers 10 wiedergeben. Mit anderen Worten gesagt, weist die reelle Adresse aus 24 Bits auf
einen speziellen Teilbereichanzeiger hin, der im Speicher 10 untergebracht ist. Da hier jeder Teilbereichanzeiger
ein Wort aus 32 Bits ist und die 32 Teilbereichanzeiger die Tabelle bilden, paßt die letztere
in einen Block des Speichers aus 128 Bitgruppen hinein.
Daher gibt es keine Möglichkeit, daß einzelne Eingänge an nichtzusammenhängenden Speicherplätzen vorgefunden
werden.
Wie aus der F i g. 3A hervorgeht, wird die reelle Adresse als Eingang zur Teilbereichanzeiger-Tabelle
über den Treiber 46, der auch mit DR bezeichnet ist, in den Speicher 10 eingespeist, und der bei dieser Adresse
abgegriffene Teilbereichanzeiger läuft vom Speicher 10 über eine Leitung 48 zum Multiplexgerät 14 und zur
Rechner/Speicher-Zwischeneinheit 12, von der er in Datenübertragungsleitungen 52 in die Register 20
gelangt, von denen eines über das Multiplexgerät 19 angewählt wird (F i g. 3B).
Das Bit 0 des gewählten Teilbereichanzeigers SSD wird als Feld /»einer Schaltung 50 (Fig. 1) zugeleitet,
die bei einer Belegung dieses Feldes mit einer binären Null ein Unterbrechungssignal zur Anzeige hervorbringt,
daß der spezielle Teilbereichanzeiger eines nichtzusammenhängenden Bereiches nicht bei der
Adressenumwandlung benutzt werden kann, so daß der Umsetzungsvorgang nicht weitergehen darf. Unter der
Annahme einer Belegung des Feldes Pmit einer binären Eins zur Anzeige, daß sich der Teilbereich gerade im
Speicher befindet, wird der Umwandlungsvorgang fortgesetzt, in dem die Bits 8 bis 24 des Teilbereichanzeigers
als Basisadressenfeld BA über die Leitungen 34 dem Multiplexgerät 30 zugeleitet werden.
Wie bereits erläutert, stellen die 17 Bits des Basisadressenfeldes BA im Teilbereichanzeiger SSD die
reelle Adresse eines speziellen Teilbereiches eines Bereiches im örtlichen Speicher 10 dar, der bis zu 32
ίο nichtzusammenhängende Teilbereiche enthalten kann.
Mit anderen Worten gesagt, weist das Basisadressenfeld BA gerade auf einen besonderen Block mit 128
Bitgruppen unter Blöcken hin, die irgendwo im Speicher an einer Grenze der 128 Bitgruppen angeordnet sein
υ können.
Die reelle Adresse einer bestimmten Bitgruppe innerhalb eines gewählten Teilbereiches (oder eine der
bis zu 128 möglichen Bitgruppen) wird vom Multiplexgerät 30 erzeugt, das eine Verknüpfung der über die
Leitungen 40 herankommenden Bitc 10 bis 16 des Verschiebungsfeldes DlSPL der virtuellen Adresse VA
mit dem Basisadressenfeld BA aus 17 Bits des Teilbereichanzeigers bewirkt. Die Bits 10 bis 16 der
virtuellen Adresse VA geben somit die reelle Adresse einer speziellen Bitgruppe innerhalb eines Blockes aus
128 Bitgruppen im Speicher 10 wieder, der vom Basisadressenfeld BA des Teilbereichanzeigers SSD
identifiziert ist. Die Steuerschaltung 24 veranlaßt bei dieser Betriebsart das Multiplexgerät 30, die ihm in die
Leitungen 38 und 42 eintretenden Bitsignale zu unterdrücken. Die in den Bitleitungen 44 vom
Multiplexgerät 30 ausgegebene reelle Adresse aus 24 Bits für eine Bitgruppe läuft über den Treiber 46, der
auch mit DR bezeichnet ist, zum Speicher 10 (F i g. 3C).
Mit dem Abschluß des Umwandlungsvorganges ist eine diesem Speicher 10 zur Verfügung stehende, reelle
Adresse in Form von 24 Bits für eine Bitgruppe erzeugt, die den Platz der angeforderten Bitgruppe im Speicher
10 für Daten vorschreibt Die Daten, auf die somit zugegriffen wurde, werden dann vom Speicher 10 in
andere Abschnitte des Rechners auf übliche Weise übertragen, damit Rechenvorgänge ausgeführt werden
können.
Hierzu 5 Blatt Zeichnungen
Claims (6)
1. Schaltung zur Umsetzung einer virtuellen Adresse in eine reelle Adresse von größerer Länge
mit einem mehrere Speicherbereiche angebenden Registerstapel, von dem jeweils ein Register von
einem ersten Teil der virtuellen Adresse adressierbar ist, mit einem Addierer, von dem ein zweiter Teil
der virtuellen Adresse mit einem Teil der vom adressierten Register ausgegebenen Bitgruppe addierbar
ist, und mit einem Gerät, von dem ein dritter
Teil der virtuellen Adresse an den vom Addierer ausgegebenen Adressenabschnitt ungeändert anfügbar
ist, dadurch gekennzeichnet, daß von einem Bit (SS) der vom adressierten Register
ausgegebenen Bitgruppe (SD) unter Ausschaltung des Addierers (28) das Gerät (30) derart umschaltbar
ist, daß an <iem von dem Bit (SS) unterschiedlichen
Teil (SD [BA]) der vom adressierten Register ausgegebenen Bitgruppe (SD) der zweite Teil (SUB)
der virtuellen Adresse (VA) anfügbar ist, und daß von der entstandenen Adresse (SD[BAJ SUB) eines
unter mehreren Registern (20) einer Teilbereichsanzeiger-Tabelle adressierbar ist, an dessen Inhalt
(SSD [BA]) der dritte Teil (DISPL) der virtuellen Adresse (VA) anfügbar ist
2. Schaltung nach dem Anspruch 1, dadurch gekennzeichnet, daß der Inhalt (SSD [BA]) des
adressierbaren Registers (20) der Teilbereichsanzeiger-Tabelle die reelle Adresse eines nichtzusammenhängenden
Teilbereiches in einem Speicher (10) und der dritte Teil (DISPL) der virtuellen Adresse (VA)
die reelle Adresse eines Abschnittes (Bitgruppe) innerhalb des nichtzusammenhängenden Teilbereiches
darstellen.
3. Schaltung nach dem Anspruch 1 oder 2, dadurch gekennzeichnet, daß das Bit (SS) der vom adressierten
Register ausgegebenen Bitgruppe (SD) auf seinen Zustand (0 oder 1) von einer Steuerschaltung
(24) überprüfbar ist, von der das Gerät (30) entsprechend dem Zustand (0 oder 1) einstellbar ist.
4. Schaltung nach dem Anspruch 1, dadurch gekennzeichnet, daß die Teilbereichsanzeiger-Tabelle
im Speicher (10) untergebracht ist.
5. Schaltung nach dem Anspruch 1, dadurch gekennzeichnet, daß die Bitgruppe (SD) einen
dritten Teil (SD[L]) enthält, von dem die Zahl des zuletzt gültigen Einganges in die Teilbereichsanzeiger-Tabelle
definiert wird, und der in einem Komparator (26) mit dem zweiten Teil der virtuellen
Adresse (VA [SUB]) vergleichbar ist.
6. Schaltung nach dem Anspruch 1, dadurch gekennzeichnet, daß zum Inhalt der Register (20) der
Teilbereichsanzeiger-Tabelle ein Feld (P) gehört, von dem festsetzbar ist, ob der adressierte
Teilbereich im Speicher (10) verfügbar ist oder nicht.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US84853577A | 1977-11-04 | 1977-11-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2847737A1 DE2847737A1 (de) | 1979-05-17 |
DE2847737C2 true DE2847737C2 (de) | 1982-08-05 |
Family
ID=25303555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2847737A Expired DE2847737C2 (de) | 1977-11-04 | 1978-11-03 | Schaltung zur Umsetzung virtueller Adressen in eine reelle Adresse von größerer Länge |
Country Status (6)
Country | Link |
---|---|
JP (1) | JPS5474636A (de) |
CA (1) | CA1119313A (de) |
DE (1) | DE2847737C2 (de) |
FR (1) | FR2408176A1 (de) |
GB (1) | GB2008821B (de) |
IT (1) | IT1100062B (de) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6017130B2 (ja) * | 1980-06-06 | 1985-05-01 | 日本電気株式会社 | アドレス制御装置 |
JPS5734251A (en) * | 1980-08-07 | 1982-02-24 | Toshiba Corp | Address conversion and generating system |
US4532586A (en) * | 1981-05-22 | 1985-07-30 | Data General Corporation | Digital data processing system with tripartite description-based addressing multi-level microcode control, and multi-level stacks |
US4550368A (en) * | 1982-07-02 | 1985-10-29 | Sun Microsystems, Inc. | High-speed memory and memory management system |
US4545016A (en) * | 1983-01-07 | 1985-10-01 | Tandy Corporation | Memory management system |
GB8405491D0 (en) * | 1984-03-02 | 1984-04-04 | Hemdal G | Computers |
JP2522248B2 (ja) * | 1986-05-24 | 1996-08-07 | 株式会社日立製作所 | 記憶装置アクセス機構 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BE756243A (fr) * | 1969-09-17 | 1971-03-01 | Burroughs Corp | Procede et appareil pour effectuer et desaffecter de petits espaces d'une memoire a un programme de calculateur. |
US3764996A (en) * | 1971-12-23 | 1973-10-09 | Ibm | Storage control and address translation |
FR122199A (de) * | 1973-12-17 | |||
US3938100A (en) * | 1974-06-07 | 1976-02-10 | Control Data Corporation | Virtual addressing apparatus for addressing the memory of a computer utilizing associative addressing techniques |
FR2315744A1 (fr) * | 1975-06-27 | 1977-01-21 | Telemecanique Electrique | Dispositif auxiliaire d'adressage virtuel |
-
1978
- 1978-11-02 GB GB7842889A patent/GB2008821B/en not_active Expired
- 1978-11-03 IT IT29424/78A patent/IT1100062B/it active
- 1978-11-03 FR FR7831169A patent/FR2408176A1/fr active Granted
- 1978-11-03 DE DE2847737A patent/DE2847737C2/de not_active Expired
- 1978-11-04 JP JP13621778A patent/JPS5474636A/ja active Granted
- 1978-11-06 CA CA000315832A patent/CA1119313A/en not_active Expired
Non-Patent Citations (1)
Title |
---|
NICHTS-ERMITTELT |
Also Published As
Publication number | Publication date |
---|---|
IT1100062B (it) | 1985-09-28 |
FR2408176A1 (fr) | 1979-06-01 |
JPS6136264B2 (de) | 1986-08-18 |
IT7829424A0 (it) | 1978-11-03 |
CA1119313A (en) | 1982-03-02 |
DE2847737A1 (de) | 1979-05-17 |
GB2008821B (en) | 1982-01-13 |
JPS5474636A (en) | 1979-06-14 |
FR2408176B1 (de) | 1982-06-25 |
GB2008821A (en) | 1979-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2350884C2 (de) | Adreßumsetzungseinheit | |
DE3588009T2 (de) | Vorrichtung und Verfahren zum Rekonfigurieren eines Speichers in einer Datenverarbeitungsanordnung. | |
DE19728726B4 (de) | Robotercontroller und dessen Steuerverfahren | |
DE3607889C2 (de) | ||
DE69819686T2 (de) | Objekt und verfahren zum bereitstellen eines effizienten mehrbenutzerzugriff auf verteilten betriebssystemkernkode durch instanzierung | |
DE3782756T2 (de) | Direktzugriffspeichereinrichtung. | |
DE69635865T2 (de) | Adressentransformation in einem cluster-computersystem | |
DE3741953A1 (de) | Multiprozessorsystem und verfahren zur arbeitslastverteilung bei einem solchen | |
DE69229667T2 (de) | Simulierte cachespeicher-assoziativität | |
DE2556661A1 (de) | Steuerschaltung mit adressenerweiterung | |
DE3885780T2 (de) | Adressierung in einer Computer-Anordnung. | |
DE2737353A1 (de) | Verfahren zum testen der adressbildung in einem dv-system und vorrichtung zur durchfuehrung des verfahrens | |
EP0010185A1 (de) | Virtuell-Adressiervorrichtung für einen Computer | |
DE2854782C2 (de) | Datenverarbeitungssystem und Verfahren zum Ersetzen eines Datenblocks in einem Schnellspeicher | |
DE102013006396A1 (de) | Eine grafikverarbeitungseinheit, in der eine standardverarbeitungseinheit verwendet ist, und ein verfahren zum aufbau einer grafikverarbeitungseinheit | |
DE2517302A1 (de) | Datenverarbeitungssystem mit mehrprogramm-verarbeitung | |
DE2746505A1 (de) | Dv-system mit einer einrichtung zum adressieren in einem festwertspeicher abgelegter mikroprogramme | |
DE2758829A1 (de) | Multiprozessor-datenverarbeitungssystem | |
DE3013064C2 (de) | Schaltungsanordnung zur Übertragung von Bitgruppen zwischen einer von mehreren peripheren Einheiten und einem Pufferspeicher | |
DE2847737C2 (de) | Schaltung zur Umsetzung virtueller Adressen in eine reelle Adresse von größerer Länge | |
DE3785956T2 (de) | Adressuebersetzungsschaltung. | |
DE2458259A1 (de) | Datenverarbeitungssystem zum vergleichen verschiedener datenstrukturen | |
DE2658950A1 (de) | Mikroprogrammierte verarbeitungseinheit sowie verfahren zur organisation derselben | |
CH495584A (de) | Datenverarbeitungsanlage | |
DE3025167C2 (de) | Datenverarbeitungseinrichtung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OAP | Request for examination filed | ||
OD | Request for examination | ||
OGA | New person/name/address of the applicant | ||
8126 | Change of the secondary classification |
Ipc: ENTFAELLT |
|
D2 | Grant after examination | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: UNISYS CORP. (N.D.GES.D.STAATES DELAWARE), BLUE BE |
|
8328 | Change in the person/name/address of the agent |
Free format text: EISENFUEHR, G., DIPL.-ING. SPEISER, D., DIPL.-ING. RABUS, W., DR.-ING. BRUEGGE, J., DIPL.-ING., 2800 BREMEN MAIWALD, W., DIPL.-CHEM.DR., PAT.-ANWAELTE, 8000 MUENCHEN |