DE2423194C2 - Vorrichtung zum Berechnen einer absoluten Hauptspeicheradresse in einer Datenverarbeitungsanlage - Google Patents

Vorrichtung zum Berechnen einer absoluten Hauptspeicheradresse in einer Datenverarbeitungsanlage

Info

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
Application number
DE2423194A
Other languages
English (en)
Other versions
DE2423194A1 (de
Inventor
Jacques Michel Jean Paris Bienvenu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull SA
Original Assignee
Bull SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bull SA filed Critical Bull SA
Publication of DE2423194A1 publication Critical patent/DE2423194A1/de
Application granted granted Critical
Publication of DE2423194C2 publication Critical patent/DE2423194C2/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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address 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 {2n1) 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)

Patentansprüche:
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
DE2423194A 1973-05-16 1974-05-14 Vorrichtung zum Berechnen einer absoluten Hauptspeicheradresse in einer Datenverarbeitungsanlage Expired DE2423194C2 (de)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1114518A (en) * 1977-10-25 1981-12-15 William D. Strecker 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
SE424581B (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
US6981132B2 (en) 2000-08-09 2005-12-27 Advanced Micro Devices, Inc. Uniform register addressing using prefix byte
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
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)

* Cited by examiner, † Cited by third party
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
US4025901A (en) * 1975-06-19 1977-05-24 Honeywell Information Systems, Inc. Database instruction find owner
US4024508A (en) * 1975-06-19 1977-05-17 Honeywell Information Systems, Inc. Database instruction find serial

Also Published As

Publication number Publication date
US4385352A (en) 1983-05-24
GB1465344A (en) 1977-02-23
IT1012439B (it) 1977-03-10
JPS5042752A (de) 1975-04-18
DE2423194A1 (de) 1974-12-05
FR2230258A5 (de) 1974-12-13

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
EP1393184B1 (de) Vorrichtung und verfahren zum ermitteln einer physikalischen adresse aus einer virtuellen adresse unter verwendung einer hierarchischen abbildungsvorschrift mit komprimierten knoten
DE2735814C2 (de) Nach dem Pipelineprinzip arbeitende Datenverarbeitungseinrichtung
WO1996002883A1 (de) Verfahren zur steuerung von technischen vorgängen oder prozessen
DE3151745C2 (de)
DE2417795C2 (de) Datenverarbeitungsanlage
DE2302074A1 (de) Speicherschutzanordnung in einem multiprozessorsystem
DE2414311C2 (de) Speicherschutzeinrichtung
DE2431379A1 (de) Datenverarbeitungseinrichtung
DE2556661A1 (de) Steuerschaltung mit adressenerweiterung
DE2101949A1 (de) Verfahren zum Schutz von Datengruppen in einer Multiprocessing-Datenverarbeitungsanlage
DE1549531A1 (de) Digitale Rechenanlage
DE60027357T2 (de) Eine Unterbrechungssteuerung und ein Mikrorechner, der diese Unterbrechungssteuerung beinhaltet
DE3507584C2 (de)
DE2245284A1 (de) Datenverarbeitungsanlage
DE2723706A1 (de) Einrichtung zum adressenvergleich
CH670715A5 (de)
DE3333894A1 (de) Speichermanagementeinheit
EP0499213A2 (de) Modular strukturiertes ISDN-Kommunikationssystem
DE2516050A1 (de) Verfahren und einrichtung zur informationsspeicherung in einem datenverarbeitungssystem
DE2331394B1 (de) Datenverarbeitungsanlage mit virtueller adressierung
EP1204917A1 (de) Operandenstapelspeicher und verfahren zum betreiben eines operandenstapelspeichers
DE2442014A1 (de) Verfahren und vorrichtung zur organisation eines steuerspeichers
DE1549528A1 (de) Digitale Rechenanlage

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