DE2423194C2 - Vorrichtung zum Berechnen einer absoluten Hauptspeicheradresse in einer Datenverarbeitungsanlage - Google Patents
Vorrichtung zum Berechnen einer absoluten Hauptspeicheradresse in einer DatenverarbeitungsanlageInfo
- Publication number
- DE2423194C2 DE2423194C2 DE2423194A DE2423194A DE2423194C2 DE 2423194 C2 DE2423194 C2 DE 2423194C2 DE 2423194 A DE2423194 A DE 2423194A DE 2423194 A DE2423194 A DE 2423194A DE 2423194 C2 DE2423194 C2 DE 2423194C2
- Authority
- DE
- Germany
- Prior art keywords
- segment
- address
- main memory
- memory
- word
- 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
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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
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)
- Executing Machine-Instructions (AREA)
Description
Die Erfindung betrifft eine Vorrichtung zum Berechnen einer absoluten Hauptspeicheradresse in einer *o
Datenverarbeitungsanlage nach dem Oberbegriff des Patentanspruchs 1.
In den Anfangszeiten der Computer war es wesentlich, ihren Aufbau und ihre Betriebskennwerte
genau zu kennen, damit sie zur Lösung der gestellten Probleme rationell eingesetzt werden konnten. Der
erste Anwendungsfall der Computer war die mathematische Berechnung mit einem Minimum an Ausnutzung
in der Verwaltung oder Betriebsführung. Die Programme waren in der Computersprache für nur für Fachleute
bestimmte Anwendungen geschrieben und im allgemeinen nur für die Person von Interesse, die das Programm
oder seine Organisation erstellte. Außerdem war der Programmierer im allgemeinen die einzige Person, die
in der Lage war, vorauszusehen, wie der Computer bei der Eingabe seines Programms in die Maschine
reagieren würde. Deshalb war seine Anwesenheit an dem Bedienungspult des Computers während des
Ablaufs seines Programms erforderlich, damit unerwartete Ereignisse korrigiert werden konnten. Im Verlauf
dieser Anfangsperiode erfolgte praktisch weder eine Standardisierung der Programme noch eine Dokumentation
ihres Inhaltes.
Als die Möglichkeiten des Computers sichtbar wurden, insbesondere durch die Erhöhung der Geschwindigkeit
und Verbesserung der Eingabe- und Ausgaberüstung der Computer und durch das Aufkommen
von Sprachen hohen Niveaus, wie etwa FORTRAN und COBOL, die die symbolische Abfassung der
Programme ermöglichten, vergrößerte sich das Anwendungsgebiet des Computers. Als standardisierte Programme
unter der Steuerung eines Betriebssystems (Verwaltungsprogramm) die Funktionen übernahmen,
die am Anfang notwendigerweise dem Programmierer vorbehalten waren, trat das Prinzip des einzigen
Programms, mit welchem eine einzige Datenverarbeitungsanlage während langer Zeitspannen ohne öffnung
gegenüber der Außenwelt rechnete, seinen Platz «..n die
gruppenweise Verarbeitung ab. Das System des gruppenweisen Betriebes hat ermöglicht, eine bestimmte
Anzahl von Arbeiten mit dem Ziel gruppenweise zusammenzufassen, die »Quelle«-Kartenstapel in »Objekt«-Katenstapel
zu kompilieren oder assemblieren (d. h, das Anwenderprogramm aus einer symbolischen
Sprache in die Maschinensprache zu übersetzen) und die Anwenderprogramme zu laden und auszuführen. Da die
Computer der zweiten Generation viel schneller waren als ihre Vorgänger, stand die Länge der Zeitspanne, die
für die Vorbereitung eines Computerprogramms im Hinblick auf seine Ausführung erforderlich war. in
keinem Verhältnis zu der wirklichen Programmausführungszeit. Das System der gruppenweisen Verarbeitung
hat geholfen, dieses Problem zu lösen.
Zur rationellen Ausnutzung von Computern der dritten Generation wurde ferner die Multiprogrammverarbeitung
eingeführt
In einer ersten Entwicklungsstufe wurde der Hauptspeicher der Datenverarbeitungsanlage unterteilt, damit
verschiedene Programme gleichzeitig in getrennten Zonen des Speichers untergebracht werden konnten.
Da jedoch die Programme selten dieselbe Abmessung haben, war eine gegenseitige Überschneidung der
Speicherzonen möglich, die zu der Überdeckung eines Programms durch ein anderes führt Zur Beseitigung
dieser Situation hat man jedem Programm Zonen zugewiesen, in denen sich die Adressenräume nicht
überdecken können. Dieses Verfahren hat das weiter oben genannte Problem der ÜberdecHng zwar gelöst,
es hat jedoch das Problem der Zerstückelung des Hauptspeichers geschaffen, wobei Teile des Speichers
ungenutzt bleiben, weil sie zu klein sind.
Um bei Anwendung der Multiprogrammverarbeitung eine Zerstückelung des Hauptspeichers und Vergeudung
des darin zur Verfügung stehenden Speicherraumes zu vermeiden, wurde die virtuelle Speicherung
eingeführt. Bei der virtuellen Speicherung ist der Speicher nach »Seiten« organisiert. Diese Organisation
beruht auf einer Speicherzuweisung, bei welcher der Namenraum des Programms in gleiche Teile bzw.
»Seiten« aufgeteilt wird. Der Hauptspeicher wird in gleiche Teile oder Blöcke aufgeteilt, und die Abmessung
einer Seite ist gleich der Abmessung eines Blocks. Dabei muß die Gesamtheit des Namenraumes nicht notwendigerweise
gleich der Abmessung des Hauptspeichers sein. Eine Vorrichtung zum Berechnen der absoluten
Hauptspeicheradressen in einer Datenverarbeitungsanlage, die mit virtueller Speicherung arbeitet, ist aus
»AFIPS Proceedings of the Spring Joint Computer Conference«, 1966, Seiten 65 bis 69, bekannt. Bei dieser
bekannten Vorrichtung wird die absolute Hauptspeicheradresse ausgehend von einem virtuellen Adressenwort
berechnet, das eine Segmentnummer in einer die Anfangsadressen der Segmente angebenden Segmcnttabelle
und die Relativadresse der zu adressierenden Information innerhalb eines Segmentes enthält Die
gesuchte absolute Hauptspeicheradresse innerhalb
eines Segmentes wisd durch Addition der Relativadresse
zur jeweiligen Segment-Anfangsadresse gebildet
Bei der Seiten- bzw. blockweisen Organisation eines virutellen Speichers haben die Seiten bzw. Blöcke
bestimmte, stets gleichbleibende Abmessungen. Eine optimale Ausnutzung des verfügbaren Speicherraumes
ist aber nrr gewährleistet, wenn die Seiten bzw. Blöcke
vollständig aufgefüllt werden. Dies zwingt den Programmierer zur Programmierung in vollständigen
Seiten bzw. Blöcken und schränkt daher die freie Programmgestaltung beträchtlich ein.
Aufgabe der Erfindung ist es, in einer Datenverarbeitungsanlage, bei der die gespeicherten Daten Segmenten
zugeordnet sind, die einen virtuellen Adressenraum definieren, die Speicherkapazität des Hauptspeichers
optimal auszunützen, ohne eine Programmierung in vollständig aufzufüllenden Programmabschnitten vorgeschriebener
Länge zu erfordern.
Diese Aufgabe wird durch die Merkmale des Patentanspruchs 1 gelöst
Bei der erfindungsgemäßen Vorrichtung ist ein Segment als eine Gruppe von geordneten Worten
definiert die mit einem Segmentnamen, der e - von allen anderen Segmenten unterscheidet und mit einer
vollständigen Adresse bezeichnet ist die dazu verwendet wird, ein charakteristisches Wort der nach der
Anwendung geordneten Gruppe in dem Segment auszuwählen. Das Segment ist einem Anwender
zugeteilt Es trägt einen symbolischen Namen, besitzt eine Anordnung von zugeordneten Zugriffsmerkmalen,
die unter anderem die Funktionen beschreibt, für die jeder Anwender berechtigt ist die Prozeduren und/oder
die Daten, die es enthält aufzurufen. Das Segment kann sich ausdehnen oder schrumpfen, und es ist in den
Programmen direkt adressierbar. Das Segment ist wie eine in den klassischen Systemen bekannte Erweiterung
des Dateibegriffes aufgebaut. Die Datei ist jedoch nicht direkt adressierbar, und die kopierten Dateien in dem
Speicher können nicht direkt durch die Programme der anderen Anwender aufgeteilt werden. Jede Segmentbeschreibung
snthält alle Merkmale des Segmentes, darunter die absolute Adresse des Segmentes in dem
Speicher und die Länge des Segmentes.
Die Erfindung wird nun anhand eines Ausführungsbeispiels und unter Bezugnahme auf die Zeichnungen
weiter erläutert. Es zeigt
F i g. 1 eine schernatische Darstellung einer bestimmten
Anzahl von Segmenten in dem Hauptspeicher,
F i g. 2A — 2B Segmentbeschreibungen,
F ι g. 2C ein Segmenttabellenwortbeispiel STW,
F i g. 2D ein Adressenruumwortbeispiel ASW,
F i g. 3 eine schematische Darstellung einer Segmentbeschreibu.ig
für die Aufteilung und die Verwendung durch verschiedene Vorgänge,
F i g. 4 eine schematische Darstellung der allgemeinen Hardware-Strukturen für die segmentierte Adresse und
ein gesamtes Ablaufdiagramm der segmentierten Adressierung,
Fig.5 ein Ablaufdiagramm einer Gewinnung der
segmentierten Adresse für die Gewinnung der absoluten Adresse,
Fig.6 eine schematische Darstellung der Hardware
zur Gewinnung einer absoluten Adresse und
Fig. 7 eine schematische Darstellung der Hardware
für die Gewinnung der segmentierten Adresse unter Verwendung eines assoziativen Speichers.
In Fig. 1 ist der Direktzugriffspeicher 100 eines
Universalcomputers mit ''Jnf verschiedenen Segmenten
dargestellt, die zu drei verschiedenen Programmen A, B und C gehören, welche darin gespeichert sind. Das
Segment 1 des Programms A ist in dem Teil 101 des Hauptspeichers 100 gespeichert, das Segment 3 des
Programms B ist in dem Teil 102 des Hauptspeichers 100 gespeichert das Segment 6 des Programms C ist in
dem Teil 103 gespeichert das Segment 2 des Programms B ist in dem Teil 105 gespeichert und das
Segment 2 des Programms A ist in dem Teil 105
ίο desselben Hauptspeichers gespeichert Weitere Teile
können auf diese Weise durch verschiedene Segmente der verschiedenen Programme und/oder die verschiedenen
Daten belegt sein, und zwar bis zur gesamten Belegung der Kapazität des Hauptspeichers.
is Die in einem Anwenderprogramm enthaltenen Adressen sind virtuelle Adressenwörter, also keine
absoluten Adressen in dem Hauptspeicher (vgL das Glossar der Ausdrücke für die Defini'.ionen am Ende der
Beschreibung). Diese virtuellen Adressenwörter werden danach zum Gewinnen der absoluten Adressen des
Hauptspeichers verwendet Durch dieses Verfahren können die Anwenderprogramme aufgezeichnet werden,
ohne die absoluten Adressen im Hauptspeicher zu berücksichtigen.
Dieses System der Speicherzuordnung ermöglicht bei jedem Prozeß (vgl. das Glossar der Ausdrücke für
die Deiinitionen) Zugriff zu den zugeordneten Speichersegmenten
durch das System von Segmentbeschreibungen zu erhalten. Das Modell einer Segmentbeschreibung
ist in den F i g. 2A und 2B dargestellt Diese beiden Figuren zeigen das Modell einer direkten Segmentbeschreibung
2OOA bzw. einer indirekten Segmentbeschreibung
200E Die direkte Segmentbeschreibung beschreibt und bezeichnet ein Segment, während die
indirekte Segmentbeschreibung eine andere Segmentbeschreibung bezeichnet F i g. 2A zeigt einen Vorhandenseinanzeiger
P, der in der Bitposition 0 dargestellt ist. Der Vorhandenseinanzeiger P, welcher ein Feld P
für ein Bit ist, zeigt an, daß ein Segment in dem Hauptspeicher für die Segmentnummer definiert ist,
welcher diese Segmentbeschreibung entspricht, wenn der Vorhandenseinanzeiger in dem Zustand 1 ist. Wenn
das Feld P in den Zustand »0« rückgestellt ist, ist kein Segment definiert und der Aufruf der Segmsntbeschreibung
ruft einen als »Segment nicht vorhanden« bezeichneten Einwand hervor. Wenn das Feld eines Bits
/ in der Binärstellung Eins ist, ist die Prozedur indirekt. Die Segmentbeschreibung enthält nun die absolute
Adresse einer anderen Segmentbeschreibung, jedoch nicht die Basisadresse eines Segments. Das Zugriffsfeld /
der indirekten Segmentbeschreibung wird für Zugriffsschutztests an der Stelle des Zugriffsfeldes der
Segmerstbeschreibung verwendet, die die indirekte Segmentbeschreibung bezeichnet. Ein Feld U »Anzeiger
= benutzt« in der Binärposition 2 zeigt an, ob das Segment benutzt vjrde oder nicht. Wenn der Anzeiger
U in den Zustand »0« gesetzt ist, ist das Segment nicht benutzt worden, während, wenn der Anzeiger {/auf »1«
gesetzt ist, dadurch angezeigt wird, daß das Segment benutzt worden is.*. Das Feld W»Anzeiger = geschrieben«
in der Binärposition 5 wird dazu verwendet anzuzeigen, ob das Segment beschrieben worden ist
oder nicht. Wenn der Anzeiger W auf »0« gesetzt ist, zeigt das an, daß das Segment nicht beschrieben worden
ist, während, wenn der Anzeiger W auf »1« gpsem
worden isc, das anzeigt, da3 das Segment beschrieben
worden ist. Diese Anzeiger werden durch die Firmware bei jedem Segmentzugriff auf den neuesten Stand
gebracht, einschließlich der indirekten Adressierung und der Kontrolle des Zugriffs /n den Semaphoren und
Prozeduren, die nicht Teil der Erfindung sind. Das Feld A, welches sich in der Binärposition 3 befindet, ist ein
Feld für ein Bit, welches anzeigt, ob das Segment verfügbar ist oder nicht. Wenn der Anzeiger A auf »1«
gesetzt ist, kann das Segment, welchem die Segmentbeschreibung entspricht, benutzt werden (d. h., daß es nicht
blockiert ist), dagegen ist, wenn der Anzeiger A auf »0« gesetzt ist, das Segment blockiert, und ein Aufruf der
Segmentbeschreibung bewirkt einen als »Segment blockiert« bezeichneten Einwand. Der Bedingungsanzeiger
G-S ist in Feld, das kontrolliert wird, wenn bestimmte Befehle ausgeführt werden müssen. Beispielsweise
verlangt der Eingabeprozedurbefehl ENT (nicht dargestellt), daß das Feld G- S den Code Zehn
enthält, während die Semaphor-Befehle den Code 01 verlangen. Jeder andere als dieser verlangte Code
würde einen Einwand »Segmentbeschreibung gesperrt« hervorrufen. Das Feld MBZ, das in der Binärposition 4
liegt, zeigt, wenn sie in dem Zustand »0« ist, an, daß das adressierte Segment nicht größer ist als eine für den
Speicherzulässige vorbestimmte Abmessung. Ein Einwand »Segmentbeschreibung gesperrt« wird erzeugt,
wenn das Feld MBZnicht auf »0« ist. Die Segmentbasis
X24 in der direkten Segmentbeschreibiing ist eine
Basiszone mit 24 Bits, die die absolute Adresse der Segmentbasis anzeigt, welche durch eine direkte
Segmentbeschreibung definiert ist. Die indirekte Segmentbeschreibung, die in F i g. 2B dargestellt ist, hat eine
kleinere Anzahl von Anzeigern und ein Lokalisierungsfeld mit 28 Bits, die die absolute Adresse einer direkten
Segmentbeschreibung definiert. Die Anzeiger P, I. MBZ, A der indirekten Segmentbeschreibung 200S übernehmen
für die indirekte Segmentbeschreibung Funktionen, die denen für die direkte Segmentbeschreibung
entsprechen.
Damit die maximale Vielseitigkeit sichergestellt ist, gewährt jeder Prozeß Zugriff zu, beispielsweise. 2048
Speichersegmenten, aber auch zu jeder anderen größeren oder kleineren Anzahl. Normalerweise würde
das bis zu 2048 Segmentbeschreibungen pro Prozeß erfordern, indessen gibt es in einer Gruppe von
gleichzeitig ablaufenden Vorgängen normalerweise eine große Anzahl von Segmenten, die für mehr als eine
Prozedur verwendet werden. Demzufolge sind die Segmenttabellenworte in Segmenttabellenlisten nach
dem Kriterium gruppenweise zusammengefaßt, ob sie durch einen Prozeß, durch eine Gruppe von Prozessen
oder durch einen beliebigen Prozeß in dem System verwendet werden können (diese gruppenweise Zusammenfassung
erleichtert außerdem den Programmschutz). Deshalb können die Segmenttabellenlisten
durch einen einzigen Prozeß, durch mehrere Prozesse oder durch die Gesamtheit des Systems verwendet
werden. Bei Verwendung dieser Methode hat jedes Segment nur eine Segmentbeschreibung. Auf diese
Weise wird die Größe des für die Segmentbeschreibungen erforderlichen Speicherraums verringert, und die
Zeit zum »auf den neuesten Stand bringem.· im Verlauf der Neuzuordnung des Speichers wird reduziert. F i g. 3
zeigt dieses Merkmal.
In Fig.3 sind die Segmenttabellenworte in drei
verschiedenen Segmenttabellenlisten organisiert, nämlich den Listen 304, 305 und 306. Die Liste 304 ist eine
Tabeiie von gemeinsamen Segmenüäbeilenworten, die
dadurch gekennzeichnet ist, daß die Prozeduren A, B und Cder Blöcke 301, 302 und 303 jeweils zu der Liste
304 Zugriff erhalten können, wie es die Pfeile 307, 308 und 309 zeigen. Es ist außerdem zu erkennen, daß allein
die Prozeduren B und C, die durch die Blöcke 302 bzw. 303 dargestellt sind, Zugriff zu den »Job«-Segrnenttabellenlisten
305 erhalten können, während allein die Prozedur C des Blockes 303 Zugriff zu der speziellen
Segmenttabellenliste 306 erhalten kann.
Infolge der großen Anzahl von Jobs, die in dem System vorhanden sein können, und folglich der großen
Anzahl der Segmenttabellenlisten muß jeder Prozeß in der Lage sein zu bestimmen, auf welche Segmenttabellenworte
zugriffsberechtigt ist. Diese Fähigkeit ist ihm dadurch verliehen, '-iß jeder Prozeß zwei Listen von
Worten hat, die Segmenttabellenlisten beschreiben. Diese Listen von Segmenttabellenwor'en enthalten die
Adressen sämtlicher Segmenttabellen, auf welche der Vorgang zugreifen kann. Die .Segmenttabellen enthalten
die oben beschriebenen Segmentbeschreibungen. Die Listen von Segmenttabellenworten STWA enthalten
die Segmentiabeiietiwui ic STW, deren Torrn in
Fig. 2C dargestellt ist.
In der F i g. 2C gibt die Abmessungszone STSZ
(Bitposition 0-7) die Gesamtanzahl von Segmentbeschreibungen in der Segmenttabelle an. Diese Anzahl
kann rieh für das Wort STWin der Liste Nr. 0 zwischen
0 und 4 ändern, welches durch das Adressenraumwort /45WNr. 0 (das später beschrieben wird) bezeichnet ist,
und es kann sich zwischen 0 und 225 für das Wort STW in der Lisa; Nr. I ändern, welches durch das Wort ASW
Nr. I bezeichnet ist. Wenn die Zone STSZgleich »0« ist, ist die Segmenttabelle leer. Die Segmenttabellenadressenzone
STA (Bits 8 - 31) gibt die absolute Adresse der Segmente an, die gleich
l6x57/4inOktadenist.
Die Listen STWA der Wörter, die die Segmenttabellen beschreiben, sind durch die Adressenraumworte
ASWfestgelegt, die oben genannt worden sind und die
das in F i g. 2D dargestellte Format haben. Aus F i g. 2D ist zu erkennen, daß das Format eines Wortes ASW
analog dem eines Wortes SVWist. Indessen betrifft die
Zone STWSZ die Abmessung der Liste. Der Maximalwert von SrWSZbeträgt 6 für das Wort /15WNr. 0 und
8 für das Wort /\5WNr. 1. Die Zone STWA (Bits 8-31)
adressiert die absolute Adresse SrW4 der Liste in Einheiten von 16 Oktaden.
Fig.4 zeigt einige der Stufen, durch die ein bestimmter Prozeß berechtigt auf ein Segment zugreifen
kann. Einem bestimmten Prozeß A, B oder C, der schematisch durch die Blöcke 401 bzw. 402 bzw. 403
dargestellt ist, sind jeweils zwei Adressenraumworte ,4SWO und ASWl zugeordnet, die durch die Blocke
404 bis 409 dargestellt sind.
Die Adressenraumworte ASW sind in einem Vorgangssteuerblock
PCB zugeordnet, der für einen bestimmten Vorgang verwirklicht ist (ein Vorgangssteuerblock
ist; jedem Vorgang zugeordnet und enthält genaue Informationen über den zugeordneten Vorgang,
einschließlich der absoluten Adresse des Anfangs der Tabellen, die die Segmenttabellen angeben, auf weiche
der Vorgang zugreifen kann). Jeder Prozeß erfordert
zwei Adressenraumworte /4SW, weil zwei Arten von Segmenten jedem Vorgang zugeordnet sein können: die
sehr großen Segmente, die eine Breite von {2n — 1)
Positionen haben, und eine große Anzahl von kleineren Segmenten, die eine Breite von NuH bis (216— 1)
Positionen haben. Die Adressenraumworte 404—409 liefern die Adresse der Listen, welche die Segmenttabel-
len STWA 410 bis 415 beschreiben. Die Listen STWA
enthalten die zuvor beschriebenen Segmentbeschreibungen SriVund liefern die Adresse der Segmenttabellen,
auf welche der zugeordnete Vorgang zugreifen kann. Die Segmenttabellen 416-425 enthalten die
zuvor beschriebenen Segmentbeschreibungen und werden dazu verwendet, ein bestimmtes Segment 426-439
in einer Speicherzelle des Hauptspeichers zu definieren.
Die 'Gewinnung einer absoluten Adresse des Hauptspeichers
umfaßt zwei Phasen: 1) Die Gewinnung einer effektiven Adresse aus einer Adreßsilbe, die eine
virtuelle Adresse enthält; und 2) die Gewinnung einer
absoluten Adresse aus der effektiven Adresse. Die effektive Adresse wird aus der Information erhalten, die
in einer Adreßsilbe enthalten ist, und aus der Information, die in einem Basisregister enthalten ist,
wobei die effektive Adresse darin besteht, die Verschiebung in dem Basisregister zu der Verschiebung
in dcr Adreßsilbe zu addieren, damit eine relative
Segmcntsdrcssc SRA erhalten, wird. Die pffektive
Adresse wird erhalten, indem der Inhalt eines Indexregisters, sofern eines vorhanden ist, zu der
relativen Segmentadresse SRA addiert wird. Im Verlauf der zweiten Phase wird die absolute Adresse gewonnen,
indem die Segmentnummer in dem Basisregister dazu verwendet wird, auf eine Segmentbeschreibung zuzugreifen,
und indem die Basisadresse in der Segmentbeschreibung zu der effektiven Segmentadresse addiert
wird.
In den Fi g. 5 und 6 ist ein Ausführungsbeispiel einer
Vorrichtung für die Gewinnung der absoluten Adresse aus c^m effektiven virtuellen Adressenwort dargestellt.
In diesem Ausführungsbeispiel wird der Prozedursteuerblock 1032 durch »Tabellen J.P.« aufgerufen. Das Bit
hoher Stellenwertigkeit der Segmenttabellennummer STN des effektiven virtuellen Adressenwortes 1001
wird dazu benutzt, auf ein oder zwei Adressenraumworte 1003 oder 1004 zuzugreifen. Das Adressenraumwort,
auf welches der Zugriff erfolgt ist, enthält die Basisadresse einer Segmenttabellenliste 1005, die die
Segmenttabellen beschreibt. Der Inhalt des Adreßraumwortes wird zu den Bits niedriger Stellenwertigkeit der
Segmenttabellennummer STN des effektiven virtuellen
Adressenwortes 1001 mit Hilfe des Addierers 1011 hinzugefügt, damit die Adresse eines Segmenttabellen-Wortes
1006 in der Liste 1005 erzeugt wird. Jedes Segmenttabellenwort 1006 enthält die absolute Adresse
des Anfangs einer Segmenttabelle 1007, die die Segmentbeschreibung 1008 enthält. Folglich erhält man
aurch Lesen des Segmenttabellenwortes 1006 und durch Hinzufügen der Segmenttabelleneintragung STE des
effektiven virtuellen Adressenwortes 1001 mit Hilfe des Addierers 1012 die Adresse einer besonderen Segmentbeschreibung
1008 in der Segmenttabelle 1007. So, wie es bis hierher beschrieben worden ist, enthalten die
Segmentbeschreibungen Informationen, welche ein zugeordnetes Speichersegment betreffen, einschließlich
der Anfangsadresse oder der Basisadresse des Segments und der Länge des Segments. Deshalb wird durch
Hinzufügen der absoluten Adresse des Anfangs der Segmente und der Verschiebungsbits der segmentierten
relativen Adresse des effektiven virtuellen Adressen wortes 1001 die gewünschte Hauptspeicheradresse 1010
erhalten. Aus obigen Erläuterungen geht hervor, daß die effektive Adresse des Hauptspeichers nur durch Zugriff
auf die Segmenttabellen mit der absoluten Adresse des Hauptspeichers »verglichen« werden kann. Infolge der
Anzahl von Zugriffen im Speicher, die ausgeführt
werden müssen, um die Basisadresse des Speichersegments zu erhalten, die in der Sopmentbeschreibung
enthalten ist, speichert gleichwohl ein assoziativer Speicher in der Zentraleinheit, die acht Segmentbeschreibungen,
die früher mit ihren Segmentnummern benutzt worden sind. Wahrend der Gewinnung der
absoluten Adresse wird die Segmentnummer in dem effektiven virtuellen Adressenwort 1001 mit der
Segmentnummer in dem assoziativen Speicher verglichen und, wenn dieser Vergleich eine Gleichheit ergibt,
wird die Segmentbeschreibung in dem assoziativen Speicher zum Bilden der Adresse verwendet.
F i g. 7 zeigt ein anderes Beispiel einer Schaltung, die bei der Gewinnung der effektiven Adresse aus einem
Segment und der absoluten Adresse mit Hilfe eines assoziativen Speichers 1206 verwendet wird.
Gemäß F i g. 7 werden die Basisregister 1202 BRO bis
BR 7 durch ein Register 1203 adressiert, welches die
Adresse eines Basisregisters enthält, die aus dem AHreßsilbenteil eines Befehls oder aus einer Datenwortbeschreibung
(Fall ITB) stammt. Die Segmentnummer SEG, die aus der Adresse kommt, welche in dem
Basisregister enthalten ist, oder aus der Adresse, die in einer Datenwortbeschreibung enthalten ist, wird in das
Register 1205 gebracht, während die Verschiebung (OFFSET), welche dieselbe Herkunft hat, in das
Register 1210 gebracht wird. Diese Verschiebung (OFFSET) wird durch den Addierer 1208 zu der
Verschiebung addiert, die aus der Adreßsilbe stammt, welche in dem Befehl enthalten ist, und das Ergebnis
wird wieder in das Register 1210 eingebracht (wenn eine Indizierung erfolgt, wird danach der Index durch den
Addierer 1208a zu dem Inhalt von AC addiert, und das
Ergebnis wird erneut in das Register 1210 eingegeben). Der Inhalt des Registers 1210 enthält nun die effektive
Adresse innerhalb des Segments.
Die in das Register 1205 eingegebene Segmentnummer wird an den Eingang des assoziativen Speichers
1206a abgegeben. Wenn die Information (Fall 1) in dem assoziativen Speicher zur Verfügung steht, wählt
derselbe eine entsprechende Segmentbeschreibung aus, die sich in einem Segmentbeschreibungsspeicher 12066
befindet. Wenn die Information (Fall 2) in dem assoziativen Speicher nicht zur Verfügung steht, macht
derselbe von einer besonderen Vorrichtung Gebrauch, die nach dem Zugriff in den zuvor beschriebenen
Tabellen die entsprechende Segmentbeschreibung in dem Hauptspeicher sucht. Diese Segmentbeschreibung
wird nun in den Segmentbeschreibungsspeicher eingegeben, und die interne Segmentnummer in RS wird in
den assoziativen Speicher geladen. Man befindet sich nun wieder in dem Fall 1.
Die in der Segmentbeschreibung enthaltene Basisadresse wird nun in einem Addierer 1208b zu der
effektiven Adresse addiert, und das Ergebnis (absolute Adresse) wird in das Register 1209 eingegeben. Das
Register 1209 wird zum Adressieren des Hauptspeichers verwendet Der Inhalt des Registers 1209 kann in
einem Speicher 1201 für absolute Adressen, der vier Speicherzellen PA 0 bis PA 3 enthält, für eine spätere
Verwendung aufbewahrt werden.
Glossar
»Arbeit« (oder Job)
Eine Arbeit ist die Operationshaupteinheit für den
Anwender bei der gruppenweisen Verarbeitungsorganisation.
»Arbeitsstufe«
Eine kleinere Einheit der gruppenweisen Verarbeitung. Es handelt sich allgemein um eine Stufe in der
Ausführung einer Arbeit, die aus ineinandergefügten Verarbeitungen besteht.
»Programm«
Gesamtheit der von einem Programmierer geschriebenen Algorithmen, die die Prozedur angeben,
welche zum Ausführen einer Arbeit oder eines Arbeitsteils erforderlich ist.
»Gruppe von Prozessen«
Gesamtheit der Vorgänge, die allgemein zum Ausführen einer einzelnen Arbeitsstufe erforderlich
sind.
»Prozeß«
Kontrollierte Ausführung von nicht gleichzeitigen Befehlen. Seine räumliche Darstellung und seine
Kontrolle sind durch den internen Aufbau des Systems oder durch Vereinbarung iesigeiegi.
»Prozedur«
Bezeichnung einer Software- oder Algorithmusfunktion, die durch einen Rechenprozessor ohne
Gleichzeitigkeit ausgeführt werden kann. Ihre räumliche Darstellung (Code+ zugeordnete Daten),
Aufruf und Verwendung sind durch den
internen Aufbau des Systems oder durch eine bestimmte Vereinbarung festgelegt.
»Logischer Prozessor«
Gesamtheit der Hardwareeinrichtungen und der Steuerinformationen, die für die Ausführung eines
Vorgangs erforderlich sind.
»Adressenraum« (Segmentierung)
Gesamtheit der virtuellen Adressen, die der Zentralprozessor während der Ausführung eines
bestimmten Vorgangs in absolute Adressen umformen kann. Obwohl der Prozessor die technische
Möglichkeit hat, jede einfache Zelle des Taktgeberspeichers zu adressieren, ist es erwünscht, den
Zugriff auf diejenigen zu beschränken, die während der Ausführung des dem Prozessor zugeordneten
Vorgangs benutzt werden.
»Namenraum«
Gesamtheit der Namen, die zum Bezeichnen der Größen (Vorgänge und Daten) verv.'eridet werden,
welche durch einen bestimmten Vorgang verarbeitet werden.
»Virtuelle Adresse«
Element des Adressenraumes des Vorgangs, wie etwa der Segmentname SEC und die Verschiebung
D.
Hierzu 7 Blatt Zeichnungen
Claims (3)
1. Vorrichtung zum Berechnen einer absoluten Hauptspeicheradresse in einer Datenverarbeitungsanlage,
ausgehend von einem virtuellen Adressen wort, das eine Segmentnummer in einer die
Anfangsadressen der Segmente angebenden Segmenttabelle und die Relativadresse der zu adressierenden
Information innerhalb eines Segments enthält, wobei die absolute Hauptspeicheradresse
innerhalb eines Segments durch Addition der Relativadresse zur jeweiligen Segment-Anfangsadresse
gebildet wird, dadurch gekennzeichnet,
daß in den Segmenttabellen (1007) die Segmente (1009) durch Segmentbeschreibungen
(1008) beschrieben sind, die die veränderliche Länge der Segmente (1009) angeben.
2. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet,
daß die Datenverarbeitungsanalge mehrere verschiedene Segmenttabellen (1007) enthält, die
über eine Segmenttabeüer.liste (iOO5) zugänglich
sind, welche durch einen in dem virtuellen Adressenwort (1001) enthaltenen Listen-Adressenteil
(STN) adressierbar ist und welche die Anfangsadressen der für jeweils ein auszuführendes Benutzerprogramm
zugänglichen Segmenttabellen (1007) enthält.
3. Vorrichtung nach Anspruch 2, dadurch gekennzeichnet, daß mehrere Segmenttabellenlisten (1005)
vorgesehen sind, die jeweils einem Benutzerprogrammtyp (A 5, Q zugeordnet sind und jeweils
voneinander verschiedene Listen von über sie zugänglichen Segmenttabellen (1J 007) bilden.
35
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR7317765A FR2230258A5 (de) | 1973-05-16 | 1973-05-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2423194A1 DE2423194A1 (de) | 1974-12-05 |
DE2423194C2 true DE2423194C2 (de) | 1983-02-24 |
Family
ID=9119429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2423194A Expired DE2423194C2 (de) | 1973-05-16 | 1974-05-14 | Vorrichtung zum Berechnen einer absoluten Hauptspeicheradresse in einer Datenverarbeitungsanlage |
Country Status (6)
Country | Link |
---|---|
US (1) | US4385352A (de) |
JP (1) | JPS5042752A (de) |
DE (1) | DE2423194C2 (de) |
FR (1) | FR2230258A5 (de) |
GB (1) | GB1465344A (de) |
IT (1) | IT1012439B (de) |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2007889B (en) * | 1977-10-25 | 1982-04-21 | Digital Equipment Corp | Central processor unit for executing instructions with a special operand specifier |
JPS6017130B2 (ja) * | 1980-06-06 | 1985-05-01 | 日本電気株式会社 | アドレス制御装置 |
JPS5734251A (en) * | 1980-08-07 | 1982-02-24 | Toshiba Corp | Address conversion and generating system |
SE8104981L (sv) * | 1981-08-21 | 1982-07-26 | Ibm Svenska Ab | Metod och anordning for adressering av ett minne |
GB2127998B (en) * | 1982-09-27 | 1986-06-18 | Data General Corp | Encachement apparatus |
JPS6051957A (ja) * | 1983-08-31 | 1985-03-23 | Toshiba Corp | マイクロプロセツサシステム |
JPS60110056A (ja) * | 1983-10-31 | 1985-06-15 | Nec Corp | デ−タ処理システムにおけるメモリのアドレス生成を動的に変更する方法 |
GB8405491D0 (en) * | 1984-03-02 | 1984-04-04 | Hemdal G | Computers |
JPS61190638A (ja) * | 1985-02-20 | 1986-08-25 | Hitachi Ltd | 仮想計算機のフアイル制御方式 |
US4984151A (en) * | 1985-03-01 | 1991-01-08 | Advanced Micro Devices, Inc. | Flexible, next-address generation microprogram sequencer |
US4758951A (en) * | 1985-04-09 | 1988-07-19 | Tektronix, Inc. | Method for translating virtual addresses into real addresses |
US5027273A (en) * | 1985-04-10 | 1991-06-25 | Microsoft Corporation | Method and operating system for executing programs in a multi-mode microprocessor |
US4972338A (en) * | 1985-06-13 | 1990-11-20 | Intel Corporation | Memory management for microprocessor system |
JPH06105435B2 (ja) * | 1985-10-25 | 1994-12-21 | 株式会社日立製作所 | 情報処理装置による記憶管理機構 |
JPH0658649B2 (ja) * | 1985-10-28 | 1994-08-03 | 株式会社日立製作所 | 仮想記憶装置における領域管理方法 |
US4763244A (en) * | 1986-01-15 | 1988-08-09 | Motorola, Inc. | Paged memory management unit capable of selectively supporting multiple address spaces |
JP2545789B2 (ja) * | 1986-04-14 | 1996-10-23 | 株式会社日立製作所 | 情報処理装置 |
US4922417A (en) * | 1986-10-24 | 1990-05-01 | American Telephone And Telegraph Company | Method and apparatus for data hashing using selection from a table of random numbers in combination with folding and bit manipulation of the selected random numbers |
US5053951A (en) * | 1986-12-23 | 1991-10-01 | Bull Hn Information Systems Inc. | Segment descriptor unit for performing static and dynamic address translation operations |
US5317717A (en) * | 1987-07-01 | 1994-05-31 | Digital Equipment Corp. | Apparatus and method for main memory unit protection using access and fault logic signals |
JPH01112450A (ja) * | 1987-10-27 | 1989-05-01 | Sharp Corp | メモリ管理ユニット |
US4961139A (en) * | 1988-06-30 | 1990-10-02 | Hewlett-Packard Company | Data base management system for real-time applications |
JPH0289132A (ja) * | 1988-09-26 | 1990-03-29 | Nec Corp | 論理アドレス生成方式 |
US5051894A (en) * | 1989-01-05 | 1991-09-24 | Bull Hn Information Systems Inc. | Apparatus and method for address translation of non-aligned double word virtual addresses |
FR2652926B1 (fr) * | 1989-10-06 | 1994-07-08 | Bull Sa | Procede d'exploitation de la memoire dans un systeme informatique du type a adressage virtuel et dispositif pour la mise en óoeuvre dudit procede. |
US5313606A (en) * | 1991-01-17 | 1994-05-17 | Chips And Technologies, Inc. | System for detecting boundary cross-over of instruction memory space using reduced number of address bits |
US5297285A (en) * | 1991-07-23 | 1994-03-22 | Telefonaktiebolaget L M Ericsson | System for dynamically linking modular portions of computer software |
CA2083634C (en) * | 1991-12-30 | 1999-01-19 | Hung Ping Wong | Method and apparatus for mapping page table trees into virtual address space for address translation |
US5765210A (en) * | 1994-12-12 | 1998-06-09 | International Business Machines Corporation | Allocation of real storage for hardware descriptors within virtual memory that are associated with on-line storage increments |
JP2820048B2 (ja) * | 1995-01-18 | 1998-11-05 | 日本電気株式会社 | 画像処理システムとその記憶装置およびそのアクセス方法 |
US5822778A (en) * | 1995-06-07 | 1998-10-13 | Advanced Micro Devices, Inc. | Microprocessor and method of using a segment override prefix instruction field to expand the register file |
US5768574A (en) * | 1995-06-07 | 1998-06-16 | Advanced Micro Devices, Inc. | Microprocessor using an instruction field to expand the condition flags and a computer system employing the microprocessor |
US5680578A (en) * | 1995-06-07 | 1997-10-21 | Advanced Micro Devices, Inc. | Microprocessor using an instruction field to specify expanded functionality and a computer system employing same |
US5819080A (en) * | 1996-01-02 | 1998-10-06 | Advanced Micro Devices, Inc. | Microprocessor using an instruction field to specify condition flags for use with branch instructions and a computer system employing the microprocessor |
US5951676A (en) * | 1997-07-30 | 1999-09-14 | Integrated Device Technology, Inc. | Apparatus and method for direct loading of offset register during pointer load operation |
JPH11109911A (ja) * | 1997-09-30 | 1999-04-23 | Fuurie Kk | 表示装置 |
US6230259B1 (en) | 1997-10-31 | 2001-05-08 | Advanced Micro Devices, Inc. | Transparent extended state save |
US6157996A (en) * | 1997-11-13 | 2000-12-05 | Advanced Micro Devices, Inc. | Processor programably configurable to execute enhanced variable byte length instructions including predicated execution, three operand addressing, and increased register space |
US6877084B1 (en) | 2000-08-09 | 2005-04-05 | Advanced Micro Devices, Inc. | Central processing unit (CPU) accessing an extended register set in an extended register mode |
US6981132B2 (en) | 2000-08-09 | 2005-12-27 | Advanced Micro Devices, Inc. | Uniform register addressing using prefix byte |
US7146373B2 (en) * | 2002-07-19 | 2006-12-05 | International Business Machines Corporation | Data-space tracking with index data-spaces and data data-spaces |
US7085787B2 (en) | 2002-07-19 | 2006-08-01 | International Business Machines Corporation | Capturing data changes utilizing data-space tracking |
US8843727B2 (en) * | 2004-09-30 | 2014-09-23 | Intel Corporation | Performance enhancement of address translation using translation tables covering large address spaces |
US7707385B2 (en) | 2004-12-14 | 2010-04-27 | Sony Computer Entertainment Inc. | Methods and apparatus for address translation from an external device to a memory of a processor |
US8538935B2 (en) * | 2009-09-25 | 2013-09-17 | Formrouter Inc. | One-to-one and one-to-many relationships in databases |
GB2488980B (en) | 2011-03-07 | 2020-02-19 | Advanced Risc Mach Ltd | Address generation in a data processing apparatus |
US8793429B1 (en) * | 2011-06-03 | 2014-07-29 | Western Digital Technologies, Inc. | Solid-state drive with reduced power up time |
US10333696B2 (en) | 2015-01-12 | 2019-06-25 | X-Prime, Inc. | Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3504349A (en) * | 1967-09-27 | 1970-03-31 | Ibm | Address examination mechanism for use in a system operating with dynamic storage relocation |
GB1329721A (en) * | 1970-05-26 | 1973-09-12 | Plessey Co Ltd | Data processing devices |
FR122199A (de) * | 1973-12-17 | |||
US4024508A (en) * | 1975-06-19 | 1977-05-17 | Honeywell Information Systems, Inc. | Database instruction find serial |
US4025901A (en) * | 1975-06-19 | 1977-05-24 | Honeywell Information Systems, Inc. | Database instruction find owner |
-
1973
- 1973-05-16 FR FR7317765A patent/FR2230258A5/fr not_active Expired
-
1974
- 1974-05-14 DE DE2423194A patent/DE2423194C2/de not_active Expired
- 1974-05-15 JP JP49053474A patent/JPS5042752A/ja active Pending
- 1974-05-15 GB GB2163074A patent/GB1465344A/en not_active Expired
- 1974-05-16 IT IT22811/74A patent/IT1012439B/it active
-
1981
- 1981-04-13 US US06/253,879 patent/US4385352A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
IT1012439B (it) | 1977-03-10 |
GB1465344A (en) | 1977-02-23 |
JPS5042752A (de) | 1975-04-18 |
US4385352A (en) | 1983-05-24 |
FR2230258A5 (de) | 1974-12-13 |
DE2423194A1 (de) | 1974-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2423194C2 (de) | Vorrichtung zum Berechnen einer absoluten Hauptspeicheradresse in einer Datenverarbeitungsanlage | |
DE2459006C2 (de) | Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage | |
DE69803860T2 (de) | Direktspeicherzugriffseinheit | |
DE69526751T2 (de) | Multiprozessorsystem zur lokalen Verwaltung von Adressenübersetzungstabellen | |
EP1393184B1 (de) | Vorrichtung und verfahren zum ermitteln einer physikalischen adresse aus einer virtuellen adresse unter verwendung einer hierarchischen abbildungsvorschrift mit komprimierten knoten | |
DE68926775T2 (de) | System und Verfahren für eine allgemeine Schnittstelle für Anwendungsprogramme | |
DE2735814C2 (de) | Nach dem Pipelineprinzip arbeitende Datenverarbeitungseinrichtung | |
EP0771444A1 (de) | Verfahren zur steuerung von technischen vorgängen oder prozessen | |
DE69028269T2 (de) | Virtuelles Adressierungsverfahren zum Betrieb eines Speichers in einer Datenverarbeitungsanlage und Einrichtung zur Ausführung besagten Verfahrens | |
CH657218A5 (de) | Mehrbenuetzer-datenverarbeitungsmaschine mit virtuellem speicher. | |
DE68916853T2 (de) | Unabhängige Programmlader für virtuelle Maschinenarchitektur. | |
DE2417795C2 (de) | Datenverarbeitungsanlage | |
DE2302074A1 (de) | Speicherschutzanordnung in einem multiprozessorsystem | |
DE2414311C2 (de) | Speicherschutzeinrichtung | |
DE2431379A1 (de) | Datenverarbeitungseinrichtung | |
DE68929080T2 (de) | Anordnung zum Speichern von Informationen für einen Datenanbieterprozessor | |
DE2556661A1 (de) | Steuerschaltung mit adressenerweiterung | |
DE2101949A1 (de) | Verfahren zum Schutz von Datengruppen in einer Multiprocessing-Datenverarbeitungsanlage | |
DE1549531A1 (de) | Digitale Rechenanlage | |
DE3507584C2 (de) | ||
DE3689217T2 (de) | Datenverarbeitungseinrichtung mit einer Schaltung zur Prüfung der Adressgrenzen in einem virtuellen Speicher. | |
DE2723706A1 (de) | Einrichtung zum adressenvergleich | |
CH670715A5 (de) | ||
DE3333894A1 (de) | Speichermanagementeinheit | |
EP0499213A2 (de) | Modular strukturiertes ISDN-Kommunikationssystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OGA | New person/name/address of the applicant | ||
8110 | Request for examination paragraph 44 | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |