[go: up one dir, main page]

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änge

Info

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
Application number
DE2847737A
Other languages
English (en)
Other versions
DE2847737A1 (de
Inventor
Lewis Rossland Carlson
Dennis Charles Salt Lake City Utah Gassman
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.)
Unisys Corp
Original Assignee
Sperry Corp 10104 New York NY
Sperry Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sperry Corp 10104 New York NY, Sperry Corp filed Critical Sperry Corp 10104 New York NY
Publication of DE2847737A1 publication Critical patent/DE2847737A1/de
Application granted granted Critical
Publication of DE2847737C2 publication Critical patent/DE2847737C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/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

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.
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.
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.
In der F i g. 1 ist auch das bevorzugte Format für
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)

Patentansprüche:
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.
DE2847737A 1977-11-04 1978-11-03 Schaltung zur Umsetzung virtueller Adressen in eine reelle Adresse von größerer Länge Expired DE2847737C2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
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