DE2423194A1 - Vorrichtung zur adressengewinnung und -berechnung in einem segmentierten speicher - Google Patents

Vorrichtung zur adressengewinnung und -berechnung in einem segmentierten speicher

Info

Publication number
DE2423194A1
DE2423194A1 DE2423194A DE2423194A DE2423194A1 DE 2423194 A1 DE2423194 A1 DE 2423194A1 DE 2423194 A DE2423194 A DE 2423194A DE 2423194 A DE2423194 A DE 2423194A DE 2423194 A1 DE2423194 A1 DE 2423194A1
Authority
DE
Germany
Prior art keywords
address
segment
base
operand
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.)
Granted
Application number
DE2423194A
Other languages
English (en)
Other versions
DE2423194C2 (de
Inventor
Jacques Michel Jean 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

Description

COMPAGHIE H01TEYWELL BULL
94 Avenue Gatnbetta ;
PARIS (20) /Frankreich
Unser Zeichen: H 1008
Vorrichtung zur Adressengewinnung und -berechnung in einem segmentierten Speicher
Die Erfindung betrifft* allgemein Datenverarbeitungssysteme und insbesondere die Hardware oder technischen Teile des Systems und die Adressenberechnungsverfahren.
In den Anfangszeiten der.Computer war es wesentlich» ihren Aufbau und ihre Betriebskennwerte genau zu kenrnen, damit sie wirkungsvoll verwendet und die gestellten Probleme gelöst werden konnten. Der erste Anwendungsfall der Computer war damals die mathematische Berechnung mit einem Minimum an Ausnutzung in der Verwaltung öder Betriebsführung. Die Programme waren in der Computersprache für nur für Fachleute bestimmte Anwen- ·
409849/0810
düngen geschrieben und waren 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 Inhalts.
Als die Möglichkeiten des Computers sichtbar wurden, insbesondere durch die Verbesserung der Geschwindigkeit und der Eingabe- und Ausgabeausrü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 die standardisierten 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 an die gruppenweise Verarbeitung ab. Das System des gruppenweisen Betriebs hat ermöglicht, eine bestimmte Anzahl von Arbeiten mit dem Ziel gruppenweise zusammenzufassen, die "Quelle"-Kartenstapel in "Objekf'-Kartenstapel 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
409849/0810
Hinblick auf die Ausführung desselben erforderlich war, in keinem Verhältnis zu der wirklichen Programmausführungszeit. Das System der gruppenweisen Verarbeitung hat geholfen, dieses Problem zu lösen. Darüberhinaus ist durch dieses System das Prinzip eines Überwachungsmodus und eines Anwendermodus oder Problemmodus für die Betriebsweise des Computers eingeführt worden.
Als die Vorbereitungszeit auf einen vernachlässigbaren Prozentsatz der Maschinendurchlaufzeit für eine bestimmte Arbeit verringert worden war, wurden die Computer für die Informationsverarbeitung im allgemeinen interessanter und beschränkten sich nicht mehr allein auf die mathematische Berechnung.
Die zunehmende Benutzung der Computer durch die privaten und öffentlichen Verwaltungsorgane führte zu einem stärkeren Verlangen nach einem größeren Wirkungsgrad und zu einer zunehmenden Nachfrage nach Betriebssystemen, die für sämtliche Dienste und Kontrollen Vorsorge treffen, damit die Arbeiten in Multiprogrammverarbeitung geplant und ausgeführt werden können. Deshalb wurden die Computer der dritten Generation geschaffen.
In den einfachen Systemen, bei welchen die Gruppierung verwendet wurde, war das wichtige Hilfsmittel, das der Speicher mit wahlfreiem Zugriff bietet (im allgemeinen ein Kernspeicher, in jüngerer Zeit aber ein MOS-Speicher), für ein einziges Programm bestimmt, was sich jedesmal dann als eine Vergeudung der Verwendungsmöglichkeiten des Hauptspeichers erwies , wenn das Programm nicht den gesamten Speicher benötigte. Eines der ersten Probleme, die durch das System der Multiprogrammverarbeitung aufgeworfen wurden, bestand in der wirksamen Ausnutzung des Hauptspeichers,
409849/0810
insbesondere wenn mehrere Funktionen des Systems dieselbe Prozedur betrafen.
In einer ersten Entwicklungsstufe wurde der Hauptspeicher unterteilt, damit verschiedene Programme gleichzeitig in getrennten Zonen des Speichers untergebracht werden konnten. Da jedoch die Programme selten dieselbe Abmessung haben, war die Überschneidung der Zonen, die zu der überdeckung eines Programms durch ein anderes führt, immer zu befürchten. 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 überdeckung zwar teilweise gelöst, es hat jedoch das Problem der Zerstückelung des Hauptspeichers geschaffen, d.h. "Löcher" oder nicht genutzte Teile, die zu klein sind, um irgendetwas aufzunehmen und deshalb eine Vergeudung dieses Speicherteils darstellen. Eine Lösung dieses Problems der Zerstückelung des Speichers bestand aarin, ein Basisregister zum übersetzen der benachbarten Adressen in dem Namenraum in benachbarte Adressen im Speicherraum vorzusehen. Das bedeutete, daß dem System eine gewisse Freiheit in der Zuordnung der räumlichen Speicherstellen des Speichers gegeben werden mußte, indem ermöglicht wurde, den Namenraum derart zu verschieben, daß die ungenutzten Teile des Hauptspeichers zu einem durchgehenden Teil des Speichere verdichtet wurden. Diese konstante Neuzuordnung des Hauptspeichers führte aber zu einer Vergeudung und erschwerte beträchtlich die überwachung, insbesondere wenn zahlreiche gleichzeitige Programme fortwährend ihre Forderungen an den Hauptspeicher änderten. Die nächste Stufe in der Entwicklung der wirksamen Ausnutzung des Speichers ist die Einführung des Prinzips der Organisation nach Seiten (engl.: paging) gewesen. Diese Organisation
409849/0810
ist eine SpeicherZuweisungsmethode, gemäß welcher der Namenraum des Programms in gleiche Teile oder Seiten aufgeteilt wird/ wobei der Hauptspeicher in gleiche Teile oder Blöcke aufgeteilt ist, und gemäß welcher die Abmessung der Seite gleich der Abmessung des Blocks ist, obgleich die Gesamtheit des Namenraums nicht notwendigerweise gleich der Abmessung des Hauptspeichers zu sein braucht. Ein Blockindex wird verwendet, um einen beliebigen bestimmten Block einer beliebigen bestimmten Seite zuzuordnen. Es ist deshalb nicht erforderlich, für jede Programmanforderung eine Seite zu verschieben. Für die Zuordnung einer Seite ist ein freier Block ebenso gültig wie ein anderer, da die Kontinuität in einem Programm durch den Blockindex erhalten wird und da die Wahrscheinlichkeit groß ist, für eine neue Seite in dem Hauptspeicher einen freien Block zu finden. Für Computer, die die Organisation nach Seiten verwenden, sind hier unter anderen zu nennen: Atlas Computer der Universität von Manchester, XDS 940, und der Computer Honeywell Information Systems HIS 645.
Obwohl die Technik der Organisation nach Seiten das Problem löst, den Raum des Hauptspeichers mehreren Programmen zuzuordnen, löst sie weder das Problem der Zuordnung der Adressen in dem Namenraum von mehreren Programmen noch das Problem des Schutzes der Information in dem Hauptspeicher. A.W. HOLT gab als erster das Prinzip der Segmentierung an (Program Organization and Record Keeping for Dynamic Storage Allocation, Information Processing, 62 North Holland Publishing Co., Amsterdam, 1962, Seite 539). J.B. DENNIS entwickelte danach die Idee der Segmentierung mit dem Ziel, die Probleme zu lösen, die sich beim Benennen und Aufrufen einer Information ergeben (Segmentation of the Design of Multiprogrammed Computer Systems, Journal of the Association for Computing Machinery, Band 12, Nr.4, Oktober 1965, Seiten 589-602). Das Prinzip der Segmentierung war be-
409849/08 I Q.
reits in dem Computer Burroughs B 5000 sowie in dem Computer Honeywell Information Systems 645, der das Betriebssystem "Multics" benutzt, verwendet worden.
In dem Segmentierungssystem ist ein Segment als eine Gruppe von geordneten Worten definiert, die mit einem Segmentnamen, der es von allen anderen Segmenten unterscheidet, und mit einer vollständigen Adresse bezeichnet ist, die dazu verwendet wird, ein charakteristisches Element 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 Funktion 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 Dateibegriffs 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.
Das Prinzip der Segmentierung stellt eine vernünftige Lösung des Problems der Identifizierung, der Adressierung, der Zuordnung und des Schutzes der Information in dem Hauptspeicher dar, was sich folgendermaßen ausdrücken läßt:
1) Eine Verarbeitung muß über einen Namenraum verfügen, der ausreichend groß ist, damit alle Informationen, die sie betreffen, bestimmte Namen empfangen können,so daß die Neuzuordnung der Information in ihrem Namenraum niemals notwendig ist.
2) Die Daten einer Verarbeitung müssen erweiterbar sein, ohne eine Neuzuordnung des Namenraums zu erfordern.
3) Eine Information, die durch mehrere Verarbeitungen gleichzeitig aufgerufen wird, muß denselben Namen
409849/0810
für alle Berechnungen haben, die sie betreffen. 4) Ein Schutzmechanismus muß in dem Namenraum derart funktionieren, daß allein die berechtigten Verarbeitungen zu bestimmten Daten Zugriff erhalten (Jack B. Dennis, Segmentation and the Design of Multiprogrammed Computer Systems, Journal of the Association of Computing Machinery, Band 12, Nr.4, Oktober 1965, Seiten 589-6Q2).
Obwohl die oben genannten Systeme einige der Prinzipien der Einteilung nach Seiten (paging), der Gruppierung nach Blöcken und der Segmentierung verwenden, um die Ausnutzung des Speichers in wirksamer Weise zu verbessern, sind diese Verfahren nicht vollständig ausgenutzt worden. Gegenwärtig werden sie im allgemeinen in den Software-Systemen mit einem Minimum an Hardware ausgenutzt. Beispielsweise macht der Computer HIS 645 von einigen der Paging- und Segmentierungsprinzipien Gebrauch.
Ziele der Erfindung
Ein Ziel der Erfindung besteht demgemäß darin, eine Vorrichtung zur segmentierten Adressierung zu schaffen.
Ein weiteres Ziel der Erfindung ist es, ein verbessertes Verfahren und eine verbesserte Vorrichtung für.die Adressierung in den Computern zu schaffen, in welchen das Segment die Adressierungseinheit ist.
Weiter ist es Ziel der Erfindung, eine Adressierungsvorrichtung für die Computer zu schaffen, in welchen die Ebene des direkten Zugriffs auf der Ebene der Segmente liegt, die zu einem Vorgang gehören.
Außerdem soll durch die Erfindung eine Adressierungsvorrichtung für einen Computer geschaffen werden, in welchem die Ebene des direkten Zugriffs auf der Ebene
409849/0810
der Segmente liegt, die auf die Vorgänge einer Gruppe von Vorgängen aufgeteilt sind.
Ein anderes Ziel der Erfindung besteht darin, eine Adressierungsvorrichtung für ein Datenverarbeitungssystem zu schaffen, in welchem sich die Ebene des direkten Zugriffs auf der Ebene der Segmente befindet, die auf sämtliche Vorgänge aufgeteilt sind. Noch ein weiteres Ziel der Erfindung besteht außerdem darin, eine Adressierungsvorrichtung für einen Computer zu schaffen, in welchem die Aufteilung der Vorgänge durch einen indirekten Zugriff ausgeführt wird.
Weitere Ziele der Erfindung ergeben sich aus der nachstehenden Beschreibung eines bevorzugten Ausführungsbeispiels in Verbindung mit den beigefügten Zeichnungen.
Überblick über die Erfindung
Die Ziele der Erfindung werden durch die Benutzung einer Adressierungsvorrichtung und eines Verfahrens zum Gewinnen der Adresse verwirklicht, wobei auf eine bestimmte Anzahl von Elementen zum Berechnen einer absoluten Adresse eingewirkt wird, die ihrerseits zum Bezeichnen einer Oktadespeicherzelle in dem Speicher verwendet wird.
Eine bestimmte Anzahl von Betriebsarten zum Gewinnen von Adressen steht zur Verfügung, und es werden während der Gewinnung der Adressen Hardware-Kontrollen ausgeführt, um sicherzustellen, daß die erhaltene absolute Adresse genau die gewünschte ist.
Das grundlegende Element der Adressierung ist das Segment. Ein Adressenraum wird für einen Vorgang definiert und umfaßt die Gruppe von logischen Adressen, zu deren Umformung in absolute Adressen während der Ausführung der Prozedur die Hardware berechtigt ist (eine logische Adresse besteht typischerweise aus einem Paar
409849/081Q
S/ d , wobei "s" die Segmentnummer und "d" die Verschiebung ist). Die Hardware enthält Tabellen von Segmenten/ die den Adressenraum des Vorgangs definieren. Eine Segmenttabelle st enthält ein Element (oder Segmentbeschreibung, Segmentkennbegriff) für jedes Segment. Jede Segmentbeschreibung enthält alle Merkmale des Segments, darunter die absolute Adresse des Segments in dem Speicher und die Länge des Segments.
Ein Befehl kann auf einen Operand entweder direkt oder indirekt durch eine Datenwortbeschreibung Zugriff erlangen, in welcher die Adreßsilbe des Befehls, die zur Bezugrahme verwendet wird, angibt, ob die Bezugnahme eine direkte oder indirekte ist, und außerdem ein Register angibt, welches das Segment, bevor auf es Bezug genommen wird, und außerdem eine Verschiebung (offset) innerhalb des Segments festlegt. Die Adreßsilbe enthält außerdem eine Verschiebung von der festgelegten Basis aus.
Die Hardware zur Gewinnung der Adresse erhält die absolite Adresse des Segmentanfangs, fügt zu dieser die durch den Befehl festgelegte Verschiebung (offset) in den oben genannten Registern und, falls erforderlich, den Inhalt eines Indexregisters hinzu. Diese Addition liefert die absolute Adresse.
Die Merkmale der Erfindung sind in ausführlicher Form in den beigefügten Patentansprüchen dargelegt. Die Erfindung wird jedoch hinsichtlich der Organisation und der Betriebsweise (einschließlich ihrer Ziele und ihrer Vorteile) unter Bezugnahme auf die folgende Beschreibung sowie auf die Zeichnungen vollständig verständlich. Es zeigen:
Fig. 1 eire schematische Darstellung einer bestimmten
409849/0810
— 1O —
Anzahl von Segmenten in dem Hauptspeicher,
Fig. 2A-2M ' schematische Darstellungen von verschiedenen neuen Strukturen, die bei der Erfindung verwendet werden,
Fig. 2A-2B Segmentbeschreibungen,
Fig. 2C-2E Datenwortbeschreibungen
Fig. 2CDE eine erweiterte Datenwortbeschreibung,
Fig. 2F-2G Basisregister,
Fig. 2H-2I Adreßsilben,
Fig. 2J-2K Elemente der effektiven Adresse,
Fig. 2L ein AdressenraumwortbeispielASW,
Fig. 2M ein Segmenttabellenwortbeispiel STW,
Fig. 3 eine schematische Darstellung einer Segmentbeschreibung für die Aufteilung und die Verwendung durch verschiedene Vorgänge,
Fig. 4 eine schematische Darstellung der allgemeinen
Hardware-Strukturen für die segmentierte Adresse und ein gesamtes Ablaufdiagramm der segmentierten Adressierung,
Fig. 5 ein Ablaufdiagramm der Gewinnung der segmentierten Adresse, welches die Gewinnung einer effektiven Adresse durch direkte und indirekte Adressierung angibt,
409849/081 0
Pig. 6 eine schematische Darstellung der Hardware, welche die Gewinnung der direkten segmentierten Adresse ausführt,
Fig. 7 eine schematische Darstellung der Hardware, welche die Gewinnung der indirekten segmentierten Adresse ausführt, mit indirekter Adressierung Clndirection"), mittels der Basis ITB,
Fig. 8 eine schematische Darstellung der Hardware, welche die Gewinnung der indirekten segmentierten Adresse ausführt, mit indirekter Adressierung ("indirection"), mittels des Segments ITS,
Fig. 9 ein Ablaufdiagramm einer Gewinnung der segmentierten Adresse für die Gewinnung der absoluten Adresse,
Fig. 10 eine schematische Darstellung der Hardware
zur Gewinnung einer absoluten Adresse, und
Fig. 11 eine schematische Darstellung der Hardware
für die Gewinnung der segmentierten Adresse unter Verwendung eines assoziativen Speichers.
Ausführliche Beschreibung der Erfindung
Allgemeine Gesichtspunkte:
In den früheren, weniger aufwendigen Datenverarbeitungssystemen wurde von den Programmen jeweils nur eines auf einmal verarbeitet, wobei jede» Programm Zugriff zu allen Speichern hatte. In den meisten Fällen erfolgtö die Zuordnung des Speichers ganz direkt. In den Fällen, in
welchen das Programm größer war als der verfügbare Speicher, war der Programmierer indessen gezwungen, sein
Programm und/oder die Daten aufzuteilen und das Laden
409849/0810
von auf diese Weise gebildeten Teilen zu kontrollieren.
In einem System mit Multiprogrammverarbeitung sind in dem Speicher in jedem beliebigen Augenblick zahlreiche Programme enthalten. Demzufolge ist das Problem der absoluten Zuordnung des Speichers, wie es zuvor erläutert worden ist, ein schwieriges Problem. Om die Lösung dieses Problems zu erleichtern, wird ein Speicherraumsystem mit dynamischer Zuordnung durch veine Kombination des Betriebssysteme (Software) und der Vorrichtung (Hardware) verwendet. Infolge der beliebigen Art der Abmessung der Programme teilt dieses System den Speicher in Segmente mit veränderlicher Abmessung auf und macht Gebrauch von Einrichtungen zum Rekonstruieren der Zuordnung des Speichers im Verlauf eines Programmdurchlaufs. Ein Programm kann deshalb eine bestimmte Anzahl von Speichersegmenten haben/ die ihm zugeordnet sind und sich nicht in aufeinanderfolgenden Zonen des Speichers befinden (vgl. Fig. 1). In Fig. 1 ist der Direktzugriffsspeicher 1OO eines Universalcomputers mit fünf 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.
Diese Methode bringt ein Problem mit sich, weil alle Speicheradressen in einem Programm jedesmal dann modi-
A098A9/0810
13 " 2A23194
fiziert werden müssen, wenn ein Programm oder ein Programmsegment neu zugeordnet worden ist. Zur Beseitigung dieses Nachteils verwendet die Erfindung ein Verfahren, gemäß welchem die in dem Anwenderprogramm enthaltenen Adressen logische Adressen sind, statt absolute Adressen in dem Hauptspeicher (vgl. das Glossar der Ausdrücke für die Definitionen). Diese logischen Adressen 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 Vorgang Cvgl. das Glossar der Ausdrücke für die Definitionen) Zugriff zu seinen eigenen Speichersegmenten (oder zu den Segmenten, die ihm zugeordnet sind) durch das System von Segmentbeschreibungen zu erhalten. Das Modell einer Segmentbeschreibung ist in den Fig. 2A und 2B dargestellt. Diese beiden Figuren zeigen das Modell einer direkten Segmentbeschreibung 200A bzw. einer indirekten Segmentbeschreibung 200B. Die direkte Segmentbeschreibung beschreibt und bezeichnet ein Segment, während die indirekte Segmentbeschreibung eine andere Segmentbeschreibung bezeichnet. Fig. 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 Segmentbeschreibung ruft einenals "Segment nicht vorhanden" bezeichneten Einwand hervor. Wenn das Feld eines Bits I in der Binärstellung Eins ist, ist die Prozedur indirekt. Die Segmentbeschreibung enthält nun
A098A9/0810
die absolute Adresse einer anderen Segmentbeschreibung, jedoch nicht die Basisadresse eines Segments. Die Zugriffszone I der indirekten Segmentbeschreibung wird für Zugriffsschutztests an der Stelle 'der Zugriffszone der Segmentbeschreibung verwendet, die die indirekte Segmentbeschreibung bezeichnet. Eine Zone U "Anzeiger = benutzt" in der Binärposition 2 zeigt an, ob das Segment benutzt wird oder nicht. Wenn der Anzeiger U in den Zustand "Ο" 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 ist. Die Zone W "Anzeiger = geschrieben" incer Binärposition 5 wird dazu verwendet, anzuzeigen, ob das Segment geschrieben worden ist oder nicht.
Wenn der Anzeiger W auf "0" gesetzt ist, zeigt das < »
an, daß das Segment nicht geschrieben worden ist, während, wenn der Anzeiger W auf "1" gesetzt worden ist, das anzeigt, daß das Segment geschrieben 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 zu den Semaphoren und Prozeduren, die nicht Teil der Erfindung sind. Das verfügbare Bit 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 GS ist eine Zone G-S mit zwei Bits, die kontrolliert wird, wenn die vorbestimmten Befehle ausgeführt werden müssen. Beispielsweise verlangt der Eingabeprozedurbefehl ENT (nicht dargestellt), daß die
409849/0810
Zone G-S den Code Zehn enthält, während die Befehle über Semaphoren den Code 01 verlangen. Jeder andere als dieser verlangte Code würde einen Einwand "Segmentbeschreibung gesperrt" hervorrufen. Die Zone MBZ, die 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 Speicher zulässige vorbestimmte Abmessung. Ein Einwand "Segmentbeschreibung gesperrt" wird erzeugt, wenn die Zone MBZ nicht auf "O" ist. Die Segmentbasis X24 in der direkten Segmentbeschreibung 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 Fig. 2B dargestellt ist, hat eine kleinere Anzahl von Anzeigern und eine Lokalisierungszone mit 28 Bits, die die absolute Adresse einer direkten Segmentbeschreibung definiert. Die Anzeiger P, I, MBZ, A der indirekten Segmentbeschreibung 200B übernehmen für die indirekte Segmentbeschreibung Funktionen, die denen entsprechen, welche sie für die.direkte Segmentbeschreibung übernehmen.
Damit die maximale Vielseitigkeit sichergestellt ist, gewährt jeder Vorgang Zugriff zu, beispielsweise, 2048 Speichersegmenten, aber auch zu .jeder anderen größeren oder kleineren Anzahl. Normalerweise würde das bis zu 2048 Segmentbeschreibungen pro Vorgang 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 Segmentbeschreibungen in Segmenttabellen danach gruppenweise zusammengefaßt, ob sie durch einen Vorgang, durch eine Gruppe von Vorgängen (Arbeit) oder durch einen beliebigen Vorgang in dem System verwendet werden können (diese gruppenweise Zusammenfassung bildet außerdem
4098A9/0810
eine Hilfe bei dem Programmschutz). Deshalb können die Tabellen von Segmentbeschreibungen durch ein einziges Programm, durch mehrere Programme oder durch die Gesamtheit des Systems verwendet werden. Bei Verwendung dieser Methode hat jedes Segment nur eine Segmentbeschreibung. Auf diese Heise wird die Größe des für die Segmentbeschreibungen verlangten Speicherraums verringert und die Zeit zum auf den neuesten Stand Bringen im Verlauf der Neuzuordnung des Speichers wird reduziert. Fig. 3 zeigt dieses Merkmal der Erfindung.
In Fig. 3 sind die Segmentbeschreibungen in drei verschiedenen Tabellen von Segmentbeschreibungen organisiert, nämlich den Tabellen 304, 305 und 306. Die Tabelle 304 ist eine Tabelle von gemeinsamen Segmentbeschreibungen, die dadurch gekennzeichnet ist, daß die Prozeduren A, B und C der Blöcke 301, 302 und 303 jeweils zu der Tabelle 304 Zugriff erhalten können, wie es die Pfeile 307, 308 und 3Ö9 zeigen. Es ist ausserdem zu erkennen, daß allein die Prozeduren B und C, die durch die Blöcke 302 bzw. 303 dargestellt sind, Zugriff zu den "Job"-Segmentbeschreibungen 305 erhalten können, während allein die Prozedur C des Blocks 303 Zugriff zu den Vprgang-Segmentbeschreibungen erhalten kann.
Infolge der großen Anzahl von Jobs, die in dem System vorhanden sein können,und folglich der großen Anzahl der Seg· menttabellen muß jeder Vorgang in der Lage sein zu bestimmen, auf welche Segmenttabellen zuzugreifen er berechtigt ist. Diese Fähigkeit ist ihm dadurch verliehen, daß jeder Vorgang zwei Listen von Worten hat, die Segmenttabellen beschreiben. Die Listen von Segmenttabellenworten enthalten die Adressen sämtlicher Segmenttabellen, auf welche der Vorgang zugreifen kann.
409849/0810
Die Segmenttabellen enthalten die oben beschriebenen Segmentbeschreibungen. Die Listen von Segmenttabellenworten STWA enthalten die Segmenttabellenworte STW, deren Form in Fig. 2M dargestellt ist.
In der Fig. 2M gibt die Abmessungszone STSZ (Bitposition 0-7) die Gesamtanzahl von Segmentbeschreibungen in der Segmenttabelle an. Diese Anzahl kann sich für das Wort STW in der Liste Nr. 0 zwischen 0 und 4 ändern, welches durch das Adressenraumwort ASW Nr. 0 (das später beschrieben wird) bezeichnet ist, und es kann sich zwischen 0 und 225 für das Wort STW in der Liste Nr. 1 ändern, welches durch das Wort ASW Nr. 1 bezeichnet ist. Wenn die Zone STSZ gleich 11O" ist, ist die Segmenttabelle leer. Die Segmenttabellenadressenzone STA (Bits 8-31) gibt die absolute Adresse der Segmente an, die gleich
16 X STA in Oktaden ist..
Die Listen STWA der Wörter, die die Segmenttabellen beschreiben, sind durch die Adressenraumworte ASW festgelegt, die oben genannt worden sind und die das in Fig. 2L dargestellte Format haben. Aus Fig. 2L ist zu erkennen, daß das Format eines Wortes ASW analog dem eines Wortes STW ist. Indessen betrifft die Zone STWSZ die Abmessung der Liste. Der Maximalwert von STWSZ beträgt 6 für das Wort ASW Nr. 0 und 8 für das Wort ASW Nr.1 Die Zone STWA (Bits 8-31) adressiert die absolute Adresse STWA der Liste in Einheiten von 16 Oktaden.
Fig. 4 zeigt einige der Stufen durch die ein bestimmter Vorgang berechtigt auf ein Segment zugreifen kann. Ein bestimmter Vorgang A, B oder C, der schematisch durch die Blöcke 401 bzw. 402 bzw. 403 dargestellt ist, ist seinen beiden Adressenraumworten ASWO und ASW1 zugeordnet, die durch die Blöcke 404 bis 409 dargestellt sind.
409849/0810
Die Adressenraumworte ASW sind in einem Vorgangssteuerblock PCB angeordnet, 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 welche der Vorgang zugreifen kann).Jeder Vorgang erfordert zwei Adressenraumworte ASW, weil zwei Arten von Segmenten jedem Vorgang zugeordnet sein können: die sehr großen Segmente, die eine Verschiebungs-
22
weite von (2 - 1) haben, und eine große Anzahl von kleineren Segmenten, die eine Verschiebungsweite von Null bis (2 - 1) haben. Die Adressenraumworte 404-409 liefern die Adresse der Listen, welche die Segmenttabellen STWA 410 bis 415 beschreiben. Die Listen STWA enthalten die zuvor beschriebenen Segmentbeschreibungen STW und 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.
Adressengewinnung
Die Gewinnung einer absoluten Adresse des Hauptspeichers umfaßt zwei Phasen: 1) Die Gewinnung einer effektiven Adresse aus einer Adreßsilbe, die eine logische 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 der Adreßsilbe zu addieren, damit eine relative Segmentadresse SRA erhalten wird. Die effek-
409849/0810
tive 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 ver wendet wird, auf eine Segmentbeschreibung zuzugreifen, und indem die Basisadresse in der Segmentbeschreibung zu der effektiven Segmentadresse addiert wird.
Gewinnung der effektiven Adresse
Für die Gewinnung der effektiven Adresse wird ein Basisregister gleichzeitig mit einer Adreßsilbe verwendet. Gemäß der Erfindung sind acht Basisregister vorhanden, die mit den Registernummern 0 bis 7 bezeichnet sind. Die Struktur des Basisrecristers ist in den Fig. 2F und 2G dargestellt. Es ist wiederum klar, daß zwai Strukturen für die Adressierung von zwei verschiedenen Arten von Segmenten erforderlich sind. Die Strukturen der in den Fig. 2F und 2G dargestellten Basisregister sind analog, abgesehen davon daß die verschiedenen Größen unterschiedliche Bitspeicherzonen einnehmen. Die Fig. 2F und 2G zeigen das Kennzeichen (im folgenden als TAG bezeichnet), bei welchem es sich um eine Zone mit zwei Bits handelt, die dem TAG einer in den Fig. 2C - 2E dargestellten Datenwortbeschreibung entspricht. Eine Zone RING mit zwei Bits enthält die Ringnummer, die der segmentierten Adresse zugeordnet ist. Die Segmentidentifizierungszone SEG besteht aus der Segmenttabellennummer STN der Segmenttabelleneingabe STE; das ist die Zone, die ein in einer Segmenttabelle beschriebenes Segment bezeichnet. Die Verschiebung (OFFSET) ist eine Zone mit 16 oder mit Bits, in Abhängigkeit von der Segmenttabellennummer, die eine ganze positive Zahl angibt und bei der Adressengewinnung als Hinweis in einem Segment verwendet wird.
409849/081 0
Die Struktur der Adreßsilbe ist in den Fig. 2H und dargestellt. In diesen Figuren ist ersichtlich/ daß das Bit für indirekte Adressierung IND verwendet wird, um die direkte oder indirekte Adressierungsart festzulegen. "0" zeigt die direkte Adressierungsart an, während "1" die indirekte Adressierungsart angibt. Das Feld BR legt fest, welches der acht Basisregister durch den Mechanismus der Gewinnung der effektiven Adresse aufgerufen werden muß. Das Indexbit IDX wird dazu verwendet anzugeben, ob bei der Gewinnung der Adresse ein Indexregister verwendet werden muß oder nicht, und es wird außerdem verwendet, die Länge der Verschiebungszone D anzugeben. Wenn der Inhalt des Indexbits IDX "0" ist,.zeigt das an, daß kein Indexregister verwendet werden wird, und daß die Verschiebung D 15 Bits lang ist. Wenn das Indexbit IDX gleich "1" ist, zeigt das an, daß ein Indexregister, welches durch die Zone IXR angegeben ist, benutzt werden muß und daß die Verschiebungszone D eine Länge von 12 Bits hat. Es ist folglich zu erkennen, daß die Struktur der Fig. 21 die Indizierungsstruktur der Adreßsilbe ist. Die Zone IXR ist nur vorhanden, wenn IDX gleich Eins ist und angibt, daß bei der Gewinnung der effektiven Adresse auf das Indexregister Bezug genommen werden muß. Die Verschiebung D gibt an, daß eine ganze positive Zahl als Verschiebung benutzt werden muß. Wenn das Indexbit IDX gleich "0" ist, so ist der Maximalwert von D gleich (2 - 1), dagegen ist, wenn das Indexbit IDX gleich "1" ist, der Maximalwert von D
1 2
gleich (2 - 1). Man wird feststellen, daß die Zone der Adreßsilbe mit dem Bit 12 beginnt und mit dem Bit 31 endet. Der Grund dafür ist, daß die Adreßsilbe gewöhnlich ein Teil eines Befehls ist und daß sie in den Befehl beginnend mit dem Bit 12 eingefügt ist.
Die Gewinnung einer effektiven Adresse aus einer Adreß-
409849/0810
silbe kann auf vier unterschiedlichen Wegen erfolgen: 1) Die Gewinnung der effektiven Adresse kann direkt erfolgen; 2) die Gewinnung der effektiven Adresse kann indirekt erfolgen; 3) die Gewinnung der effektiven Adresse kann direkt und indiziert erfolgen; und 4) die Gewinnung der effektiven Adresse kann indirekt und indiziert erfolgen. Die vier Arten von Adreßsilben enthalten eine Basisregisterzone BR, die für den Zugriff auf ein Basisregister verwendet wird, dessen Inhalt eine der beiden Strukturen 200P und 200G der Figuren 2F bzw. 2G sein kann. Der Inhalt des Basisregisters wird durch die Anwenderprogramme modifiziert, die von einem Befehl zum Laden des Basisregisters (nicht dargestellt) Gebrauch machen.
Die direkte Methode der Gewinnung der effektiven Adresse ist in den Fig. 5 "und 6 dargestellt. In Fig. 6 ist die Adreßsilbe 601 dadurch gekennzeichnet, daß das Bit IND für indirekte Adressierung Null ist, daß das Indexbit IDX Null ist und daß eine lange Verschiebungszone D vorhanden ist. Ein Basisregister 602 liefert die Segmentnummer SEG der Segmenttabelle 604 und eine Verschiebung in dieser Segmenttabelle. Die Segmenttabelle 604 enthält Segmentbeschreibungen, von denen eine - in diesem besonderen Beispiel - eine Basisadresse für das beschriebene Segment liefert. Die Adreßsilbe 601 liefert außerdem eine Verschiebung D. Durch Addition der Verschiebung D der Adreßsilbe 601 zu der Verschiebung (offset) des Basisregisters 602 erhält man eine relative Segmentadresse SRA. Die Basiselemente der effektiven Adresse enthalten die Basis des durch die Segmentnummer SEG bezeichneten Segments und die relative Segmentadresse SRA sowie einen Index (falls vorhanden) in dem Indexregister 603. In einer anderen Ausführungsforitt bildet der aus dem Indexregister 603 stammende Index keinen Teil der effektiven Adresse, sondern er wird der absoluten Adresse
■4Ό9849/08Ί0
608 zugeführt (vgl. die mit Pfeil versehene strichpunktierte Linie 621).
Die Struktur der effektiven Adresse ist in den Fig. 2J und 2K dargestellt. In dieser Struktur ist ein zusätzliches Basiselement enthalten/ und zwar die Ringnummer der effektiven Adresse EAR. Die Bitzone der Bits Null bis Eins hat in der effektiven Adresse keine Bedeutung, sondern entspricht der Zone TAG einer Datenwortbeschreibung. Die Zone der Segmenttabellennummer STN gibt eine beliebige der fünfzehn Segmenttabellen an, die einem bestimmten Vorgang zugeordnet sind. Die Segmenttabelleneingabezone STE gibt eine bestimmte Eintragung im Inneren einer Segmenttabelle an, die eine Segmentbeschreibung enthält, und sie gibt ein bestimmtes Segment an. Die Zone der relativen Segmentadresse SRA ist eine ganze positive Zahl mit 16 oder 22 Bits, die die Anzahl von Oktaden zwischen der Segmentbasis und der ersten Oktade des Operanden angibt. Bei einem großen Segment (Segmente null bis
22
sechs) kann sich die Zone SRA von 0 bis (2 - 1) err strecken. Bei den kleinen Segmenten (Segment acht bis fünfzehn) kann sich die Zone SRA von 0 bis (2 - 1) erstrecken. Die Verschliebungszone EBO für Bits der effektiven Adresse ist nur vorhanden, wenn der Operand im Speicher eine Kette von Bits (hier weder dargestellt noch beschrieben) ist.
Die Hardware 607 für die Adressengewinnung (die später ausführlicher beschrieben wird) erhält die absolute Adresse des Segmentanfangs, der durch die Basisadresse der Segmentbeschreibung 605 angegeben ist, die ihrerseits durch die Segmentnummer SEG aufgerufen wird, und fügt die Basisadresse zu der relativen Segmentadresse SRA hinzu, damit eine absolute Adresse 608 erhalten wird.
409849/0810
In Fig. 5 bezeichnen die Bezugszahlen 500, 501, 502,
504 und 505 die Gewinnung der effektiven Adresse unter Benutzung einer direkten Adreßsilbe. Die Bezugszahlen
500, 501, 502, 503 und 505 bezeichnen die zweite
Methode zur Gewinnung der effektiven Adresse unter
Verwendung einer indizierten direkten Adreßsilbe. Die Gewinnung einer effektiven Adresse aus einer
direkten indizierten Adreßsilbe (d.h.:Bit IND für indirekte Adressierung in den Fig. 2H und 21 ist 11O", das
Indexbit IDX ist '"1" und eine kurze Verschiebungszone ist vorhanden) wird in zu der Gewinnung aus einer direkten Adreßsilbe analoger Weise ausgeführt, mit einer Ausnahme: Die relative Segmentadresse SRA wird durch die Addition der Verschiebungszone der Adreßsilbe 6O1 von Fig. 6, der Verschiebungszone (offset) in dem Basisregister und des Inhaltsdes Indexregisters 603 gewonnen, der
durch die Indexregisterzone IXR der Adreßsilbe festgelegt ist.
Bei der indirekten oder indirekten indizierten Gewinnung der effektiven Adresse erfolgt der Zugriff auf einen
Operanden durch ein oder zwei indirekte Adressierungsebenen, d.h., daß nach Erzeugung einer absoluten Adresse aus der ersten effektiven Adresse eine Datenwortbeschreibung ermittelt wird, aus der eine weitere effektive Adresse gewonnen wird, bevor die endgültige absolute Adresse gewonnen wird, die wirklich zum Bestimmen eines Operanden benutzt wird. Es stehen zwei Arten
der indirekten und der indirekten indizierten Adressengewinnung zur Verfugung: Die eine ist die indirekte Gewinnung ("indirection") mittels des Basismodus ITB, gemäß welchem eine Datenwortbeschreibung, die die Struktur 200C hat ermittelt wird, und die andere ist die indirekte Gewinnung ("indirection") mittels des Segmentmodus ITS, gemäß welchem eine Beschreibung ermittelt wird, die die Struktur 200D hat
409849/0810
Die Fig. 2C bis 2E zeigen zwei verschiedene Arten von Datenwortbeschreibungen. Die Fig. 2C zeigt die indirekte Gewinnung mittels der Basis ITB der Datenwortbeschreibungen, während die Fig. 2D und 2E die indirekte Gewinnung mittels des Segments ITS der Datenwortbeschreibungen zeigen. Eine weitere Struktur, Fig. 2CDE, ist eine erweitere Datenwortbeschreibung, die an die andere Art von Datenwortbeschreibungen an der Bitposition 39 angefügt sein kann. Es gibt außerdem zwei verschiedene Strukturen für die Datenwortbeschreibung ITS, wobei die eine die Struktur von Fig. 2D ist, die dazu verwendet wird, Segmenttabellennummern aufzurufen, die in der Maschine mit 0 bis 6 bezeichnet sind und im allgemeinen dazu benutzt werden, große Segmente aufzurufen, während die Datenwortbeschreibung von Fig. 2E dazu verwendet wird, die Segmenttabellennummern STN aufzurufen, die in der Maschine mit 8 bis 15 bezeichnet sind und dazu verwendet werden, kleine Segmente aufzurufen. Eine Datenwortbeschreibung kann außerdem Operanden statt anderen Datenwortbeschreibungen oder Segmentbeschreibungen aufrufen.
Die minimale Abmessung einer Datenwortbeschreibung beträgt vier Oktaden. Die Speicherzelle einer Datenwortbeschreibung ist durch die Adresse der am weitesten links stehenden Oktade festgelegt, bei welcher es sich um eine beliebige Oktadenadresse handeln kann. Die Datenwortbeschreibung gibt die Adresse im Speicher an, entweder durch indirekte Gewinnung mitteΙέ einer Basis ITB oder durch indirekte Gewinnung mittels eines Segments ITS. Die Basis ITB wird identifiziert, wenn die Bits 4 bis 7 der oben genannten Strukturen 20OC bis 200E gleich 0 1 1*1 sind. Das Segment ITS wird identifiziert, wenn die Bits 4 bis 7 der Struktur der Datenwortbeschreibung von 0 111 verschieden ist.
409849/0810
Die Segmentbeschreibung ITS gibt eine Segmentnummer SEG an, die die Segmenttabellennummer STN und die Segmenttabelleneintragung STE enthält, bevor" sie während der Gewinnung einer effektiven Adresse verwendet wird. Die Beschreibung ITB ist eine äquivalente Adreßsilbe, aus der durch ein Datenbasisregister eine effektive Adresse gebildet wird.
In den Fig. 2C bis 2E bezeichnet die Zone TAG die Art der Beschreibung. Der Inhalt der TAG-Zone wird folgendermaßen interpretiert:
00 ist die normale direkte Beschreibung, die das Datenwort bezeichnet.;
01 ist die erweiterte direkte Datenwortbeschreibung, in welcher die Beschreibung das Datenwort bezeichnet;
10 ist die indirekte Beschreibung, in welcher die Beschreibung eine andere Beschreibung bezeichnet;
11 gibt eine Störung an.
Die Zone DRN gibt die Ringnummer an, auf welche die besondere Beschreibung zugreifen kann. STN bezeichnet die Segmenttabellennummer, die durch die Beschreibung aufgerufen wird, wenn die Bits 4 bis 7 ihrer Struktur eine beliebige von 0111 verschiedene Zahl enthalten. STE, die Segmenttabelleneintragung, erstreckt sich von 0 bis 3 (d.h. Aufruf von sehr großen Segmenten) für STN zwischen 0 und 6 (Struktur 200D), während sich STN zwischen 8 und 15 von 0 bis 254 erstreckt (d.h. Aufruf von kleineren Segmenten) (Struktur 200E). Die Segmenttabellennummer STN und die Segmenttabelleneintragung STE definieren die Segmentnummer SEG. Deshalb ist zu bemerken, daß die Datenwortbeschreibung (Struktur 200D) vier Segmente beschreibt, die die Segmentnummern SEG 0 bis 4 in der Maschine bezeichnen, während die Datenwortbeschreibung, die die Struktur 200E hat, 256 Segmente beschreibt, die die Segmentnummern SEG 0 bis 256 in der Maschine identifizieren, d.h. eine große An-
409849/0810
zahl von viel kleineren Segmenten. Die Verschiebung DISP bezeichnet die adressierte Oktade eines Worts eines Segments, welches durch die Segmentnummer SEG angegeben ist, die die Segmenttabellennummer STN und den Segmenttabelleneingang STE umfaßt. Es sei ein Beispiel gebildet und eine Datenwortbeschreibung mit der Struktur 200D oder 200E angenommen: Wenn der Teil STN die Nummer 5 enthält, der Teil STE die Nummer 7 enthält und DISP die Nummer 4 enthält, zeigt das an, daß die vierte Oktade eines Wortes in dem Segment, welches durch die siebente Beschreibung in der Segmenttabellennummer STN 5 bezeichnet ist, erreicht sein muß.
Eine Beschreibung ITB ist eine Adreßsilbe, die aus einer effektiven Adresse durch ein Datenbasisregister gewonnen wird. Eine Beschreibung ITS ist eine effektive Adresse, die dazu verwendet wird, eine absolute Adresse zu gewinnen. Bei der Gewinnung einer effektiven Adresse, entweder aus einer Beschreibung ITB oder aus einer Beschreibung ITS, wird eine Kontrolle ausgeführt, um sicherzustellen, daß eine zweite Ebene der indirekten Gewinnung nicht verlangt ist. Wenn eine zweite Ebene der indirekten Gewinnung nicht verlangt ist, erfolgt eine Kontrolle, um festzustellen, ob das Indexbit in der Adreßsilbe gleich Eins ist. Wenn das Indexbit gleich Eins ist, wird der Inhalt des Indexregisters, der in der Adreßsilbe bezeichnet ist, zu der Adresse hinzugefügt. Wenn eine zweite Ebene der indirekten Gewinnung verlangt ist, wird sie in zu der ersten Ebene identischa: Weise ausgeführt, usw. bis zu einer sechzehnten Ebene. Auf diese Weise sind allein sechzehn Ebenen der indirekten Gewinnung während der Gewinnung der segmentierten Adresse zugelassen. Jede effektive Adresse besteht aus einer Segmentnummer, die Zugriff auf ein bestimmtes Segment des Speichers gibt, und aus der Verschiebung, die Zugriff auf die bezeichneten Speicherzellen in dem
409849/0810
Segment gibt. Die Segmentnummer besteht in Wirklichkeit aus zwei Zonen, nämlich der Segmenttabellennummer STN und dem Segmenttabelleneingang STE. Die Zone STN wird dazu verwendet, die Adresse der Segmenttabelle zu gewinnen,, während die Zone STE dazu verwendet wird, die Adresse einer Segmentbeschreibung in der Tabelle zu gewinnen. Wie zuvor beschrieben, wird die Segmentnummer von dem Basisregister aus angenommen, welches durch die Adreßsilbe erreicht wird. Demzufolge hat die Segmentnummer entweder sechs oder zwölf Bits, in Abhängigkeit von dem Basisregister, welches erreicht worden ist, und von seiner Struktur, die 200F oder 200G sein kann. Desgleichen besteht eine Basisregisterstruktur 200C, die oben erläutert ist, aus einer Segmentnummer SEG mit sechs Bits, die eine Segmenttabellennummerzone STN mit vier Bits und eine Segmenttabelleneingangszone STE mit zwei Bits hat. Die Zone STN mit vier Bits, deren Bit mit dem höchsten Stellenwert gleich Null ist, ermöglicht den Zugriff auf Tabellen mit sechs Segmenten (STN gleich 6 oder gleich 7 ist untersagt). Die Zone STE mit zwei Bits ermöglicht vier Segmentbeschreibungen in jeder Tabelle oder vier Eintragungen in diese Tabelle. Die Abmessung der Segmente die durch diese Tabellen erreicht wird, kann bis 4 Megaoktaden reichen, da eine Verschiebung von 22 Bits vorgesehen ist. Unter Verwendung dieser Struktur kann ein Vorgang auf 24 Segmente von 4 Megaoktaden zugreifen (sechs Segmenttabellen, vier Segmentbeschreibungen pro Tabelle). Die Basisregisterstruktur 200F liefert eine Segmentnummer SEG mit zwölf Bits die aus einer Segmenttabellennummernzone STN mit vier Bits und einer Segmenttabelleneingangszone STE mit. acht Bits besteht. Die Zone STN mit vier Bits, deren Bit mit dem höchsten Stellenwert gleich Eins ist, ermöglicht den Zugriff auf acht Segmenttabellen. Die Zone STE mit acht Bits
4098A9/0810
.- 28 -
ermöglicht 256 Segmentbeschreibungen in jeder Tabelle. Die Größe der Segmente, die durch diese Tabellen erreicht wird, kann 64 Kilooktaden betragen, da eine Verschiebung von sechzehn Bits vorgesehen ist. Dieser Aufbau sieht den Zugriff auf 2048 Segmente mit 64 Kilooktaden vor (acht Segmenttabellen, 256 Segmentbeschreibungen pro Tabelle). Es ist selbstverständlich klar, daß man gemäß der Erfindung eine andere Anzahl von Tabellen oder Segmenten verwenden kann.
Das Ablaufdiagramm von Fig. 5 (Bezugszahlen 506 bis 517) zeigt die Schritte der Gewinnung der segmentierten effektiven Adresse für die indirekten und indiziert indirekten Adressierungsarten. Die Fig. 6 und 7 zeigen die Hardwareeinrichtungen für die Erzeugung der segmentierten effektiven und absoluten Adressen der indirekten und indizierten indirekten Adressierungsarten. Betrachtet man nun die Fig. 5, 6 und 7, so sieht man, daß eine segmentierte relative Adresse SRA 606, 711 in der gleichen Weise wie bei der segmentierten direkten Adressierungsart gewonnen wird und daß die segmentierte effektive Adresse unter Benutzung der relativen Segmentadresse SRA 606, 711 sowie der Segmenttabellennummer und der Segmenttabelleneintragung der Basisregister 602, 701 gewonnen wird (vgl. die Strukturen 200J und 200K, die weiter oben für die Strukturen der effektiven Adresse erläutert sind). Eine absolute Adresse 608, 709 wird durch ein Verfahren und eine Hardware zur absoluten Adressierung gewonnen, die weiter unten beschrieben sind und zum Gewinnen der endgültigen effektiven Adresse verwendet werden, die ihrerseits zum Gewinnen der endgültigen absoluten Adresse verwendet wird, die zu dem Operanden gelangt.
Unter besonderer Bezugnahme auf Fig. 7 wird angenommen, daß die Adreßsilbe 700 eine "V in ihrer Indirekt-Zone IND hat, die eine indirekte Adressierungsart anzeigt.
409849/081 0
Die Zone BR des Basisregisters der Adreßsilbe 700 zeigt das Basisregister 701 an, welches seinerseits eine Segmentnummer SEG (d.h. STN und STE) liefert, die wiederum eine Segmenttabelleneintragung der Segmentbeschreibungen 703 liefert, welche in der Segmenttabelle 702 enthalten sind. Das Indizierungsbit IDX der Adreßsilbe 700 ist in dem besonderen Beispiel auf 11O" gesetzt und gibt an, daß kein Indexregister verwendet wird. Wenn das Indizierungsbit IDX auf "1" gesetzt wäre, würde es dadurch eine indizierte indirekte Adressierungsart angeben und das Indexregister 706, welches durch die gestrichelte Linie 7O6A erreicht wird, würde während der endgültigen Bildung der relativen Segmentadresse SRA benutzt werden. Diese Adresse SRA 707 wird aus der Verschiebung (Offset) des Basisregisters 701 gebildet, welches die erste Oktade eines Wortes in einem Segment bezeichnet, dessen Basisspeicherzelle durch die Basiszone der Segmentbeschreibung bezeichnet ist, welche durch STN und. STE und die Verschiebung der Adreßsilbe 700 bezeichnet ist, die die Oktade eines Wortes bezeichnet. Die relative Segmentadresse SRA stellt gemeinsam mit der Segmentnummer SEG in diesem Beispiel Elemente der segmentierten effektiven Adresse dar, weil keine Indizierung verlangt worden ist. Wenn eine solche Indizierung verlangt worden wäre, würde die effektive Adresse den Index enthalten. Die segmentierte effektive Adresse wird gemäß einer Methode und einer Hardware verwendet, die weiter unten beschrieben sind, damit eine absolute Adresse 709 einer Datenwortbeschreibung gebildet wird. Die Zone BR des Basisregisters der Datenwortbeschreibung 710 hätte in diesem Beispiel den Code 0 1 1 1, der anzeigt, daß die Datenwortbeschreibung 710 gemäß einer Basisstruktur ITB indirekt ist (vgl. die Struktur der Datenwortbeschreibung' 200C-200E). Die Zone BR des Basisregisters BR der Datenwortbe-
A09849/0810
Schreibung 710 bezeichnet außerdem das Datenbasisregister 704. Die Verschiebung (OFFSET) des Registers 704 und die Verschiebung der Datenwortbeschreibung 710 ebenso wie der INDEX (falls er verwendet wird) des Indexregisters 706 bilden die relative Segmentadresse SRA 711. Diese Adresse SRA 711 ebenso wie die Segmentnummer SEG und ein Index (gegebenenfalls) enthalten eine zweite segmentierte effektive Adresse, die zum Bilden der absoluten Adresse 713 für den Zugriff auf einen Operanden in dem Hauptspeicher benutzt wird.
In Fig. 5 (Bezugszahlen 506-509, 511, 515-517 und 512-514) und in Fig. 8 erkennt man die. Methode und die Hardware für die Gewinnung der indirekten Adresse unter Verwendung der indirekten Adressierung mittels der Segmentadressierungsart ITS. Es ist zu bemerken, daß die Hardware und die Methode praktisch gleich der Adressierungsart ITB sind, mit der Ausnahme, daß die Datenwortbeschreibung 810 (710 in Fig. 7) nicht ein Basisregister bezeichnet, wie es die Datenwortbeschreibung 710 tut, sondern statt dessen direkt das Segment durch seine Segmentnummer SEG angibt. Die Struktur der Datenwortbeschreibung 810 ist demgemäß von der der Datenwortbeschreibung 710 verschieden und zwar dahingehend, daß sie die Struktur 200D oder 200E der Fig. 2D bzw. 2E hat. In bestimmten anderen Beziehungen wird man feststellen, daß die Hardware und die Methode praktisch gleich sind.
Gewinnung der absoluten Adresse
Die Elemente der segmentierten effektiven Adresse,die gewonnen worden sind, die absolute Adresse des Operanden oder der Beschreibung, je nach dem, können gewonnen werden. In den Fig. 9 und 10 ist ein Ausführungsbeispiel des Verfahrens und der Hardware für die Gewinnung der absoluten Adresse dargestellt. In diesem Ausführungsbeispiel wird der Prozedursteuerblock 1002 durch
409849/0810
"Tabellen J.P." (vgl. das Glossar) aufgerufen. Das Bit hoher Stellenwertigkeit der Segmenttabellennummer STN der effektiven Adresse 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 Liste 1005 der Worte, die die Segmenttabellen beschreiben. Der Inhalt des Adresseraumworts wird zu den Bits niedriger Stellenwertigkeit 3 der Segmenttabellennummer STN der effektiven Adresse 1001 mit Hilfe des Addierers 1011 hinzugefügt, damit die Adresse eines Segmenttabellenworts 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 durch Lesen des Segmenttabellenworts 1006 und durch Hinzufügen der Segmenttabelleneintragung STE der effektiven Adresse 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 (vgl. die Struktur der weiter oben beschriebenen Segmentbeschreibung) und .der Verschiebungsbits der segmentierten relativen Adresse der effektiven Adresse 1001 die gewünschte Ilauptspeicheradresse 1010 erhalten. Man könnte die obigen Erläuterungen damit abschließen, 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 Segmentbeschreibung enthalten
409849/0810
ist, speichert gleichwohl ein assoziativer Speicher in der Zentraleinheit CPU, die in Fig. 11 dargestellt ist, die acht Segmentbeschreibungen, die früher mit ihren Segmentnummern benutzt worden sind. Während der Gewinnung der absoluten Adresse wird die Segmentnummer in der effektiven Adresse 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 (diese Technik des assoziativen Speichers für die Bildung der Adresse ist Gegenstand einer deutschen Patentanmeldung vom 26. September 1973, Aktenzeichen ρ 23 48 486.8).
Fig. 11 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äß Fig. 11 werden die Basisregister 1202 BRO bis BR7 durch ein Register 1203 adressiert, welches die Adresse eines Basisregisters enthält, die aus dem Adreßsilbenteil eines Befehls oder aus einer Datonwortbeschreibung (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 s.tammt, 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 Inhat von AC addiert und das Ergebnis wird erneut in das Register 1210 eingegeben). Der Inhalt des Registers 1210 enthält nun
409849/Ü810
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 1206b befindet. Wenn die Information (Fall 2) in dem asspziativen 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 PAO bis PA3 enthält, für eine spätere Verwendung aufbewahrt werden.
Die vorliegende Erfindung ist selbstverständlich keineswegs auf die angegebenen vier Ausführungsbeispiele beschränkt. Im Rahmen der Erfindung sind zahlreiche Abwandlungen und Abänderungen möglich.
409849/0810
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.
Das ist die kleinste Arbeitseinheit bei gruppenweiser Verarbeitung. Während der Ausführung einer Task (Aufgabe) kann keine andere Operation in sichtbarer Weise durch den Anwender ausgeführt werden.
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
Vorgängen
Gesamtheit der Vorgänge, die allgemein zum Ausführen einer einzelnen Arbeitsstufe erforderlich sind.
Vorgang Kontrollierte Ausführung von nicht gleichzeitigen Befehlen. Seine räumliche Darstellung und seine Kontrolle sind durch den internen Aufbau des Systems oder durch Vereinbarung festgelegt.
Prozedur Bezeichnung einer Software- oder Algorithmusfunktion, die durch einen Rechenprozessor ohne
40984 9/0810
Gleichzeitigkeit ausgeführt werden kann. Ihre räumliche Darstellung ( Code + zugeordnete Information), Aufruf und Verwendung sind durch den internen Aufbau des Systems oder durch eine bestimmte Vereinbarung festgelegt.
Logischer
Prozessor
Gesamtheit der Hafdwareeinrichtungen und der Steuerinformationeh, die für die Ausführung eines Vorgangs erforderlich sind.
Adressenraum (Segmentierung)
Gesamtheit der logischen 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.
Namen raum
Gesamtheit der Namen, die zum Bezeichnen der Größen (Vorgänge und Daten) verwendet werden, welche durch einen bestimmten Vorgang verarbeitet werden.
Logische
Adresse
Element des Adressenraums des Vorgangs, wie etwa der Segmentname SEG und die Verschiebung D.
Grundmethode
der Adressengewinnung Hardwareprozedur, die mehrere Adrossenelenu;nte
koordiniert, um eine absolute Adresse zu borech-
409849/0810
nen, welche als Hinweis auf eine Oktadeposition in dem Hauptspeicher verwendet wird.
Vorgangssteuerblock Ein Vorgangssteuerblock PCB ist jedem Vorgang zugeordnet und enthält die notwendigen Informationen, die diesen Vorgang betreffen, und insbesondere die absolute Adresse der Tabellen, die die Segmenttabellen angeben, auf welche der Vorgang zugreifen kann.
Tabellen J.P. Gesamtheit der logischen Adressen, die das
Auffinden des einem Vorgang zugeordneten Vorgangssteuerblocks ermöglichen.
409849/081 0

Claims (23)

Patentansprüche :
1. Vorrichtung zum Berechnen der relativen Adresse SRA eines in einem Segment enthaltenen Operanden in einem Datenverarbeitungssystem, welches auf Befehlsworte anspricht und verschiedene Datenanordnungen gespeichert hat, wobei jede Datenanordnung einem Adressenraum mit bestimmten Abmessungen zugeordnet ist, gekennzeichnet durch:
a) Einrichtungen zum Speichern mindestens einer Segmenttabelle, die eine Anordnung von Segmentbeschreibungen mit einer vorbestimmten Struktur enthält, wobei die Segmentbeschreibungen jeweils eine bestimmte Struktur haben, die ein zugeordnetes Segment beschreibt und eine Basisadresse desselben enthält,
b) eine Anordnung von zweiten Einrichtungen zum Speichern von Segmentnummern, die die Identifizierung von Segmenttabellen und der Speicherzelle einer Segmentbeschreibung ermöglichen, wobei die zweiten Einrichtungen außerdem die. Speicherung einer Verschiebung OFFSET ermöglichen, die zum Auffinden der ersten Oktade eines Wortes im Inneren des Segments von der Segmentbasis aus dient,
c) dritte Einrichtungen, die auf ein Adreßsilbenelement eines auszuführenden Befehls für die Adressierung einer der zweiten Einrichtungen ansprechen,
d) vierte Einrichtungen zum Speichern einer Verschiebung (D), die in der Adreßsilbe enthalten ist und dazu dient, von der ersten Oktade eines Wortes eines Segments aus eine weitere Oktade dieses Wortes aufzufinden, und
e) Einrichtungen zum Addieren der Verschiebung (D) zu der OFFSET-Verschiebung.
409849/0810
2. Vorrichtung nach Anspruch 1, gekennzeichnet durch Einrichtungen zum Speichern eines Adressierungsindex des in der Adressierungsfolge folgenden Wortes und durch Einrichtungen zum Addieren des Index zu der Verschiebung (D) und der OFFSET-VerSchiebung.
3. Vorrichtung nach Anspruch 1, gekennzeichnet durch Einrichtungen zum Erzeugen der absoluten Adresse eines Operanden durch Addition der relativen Adresse (SRA) des Segments zu der Basisadresse desselben, die in der Segmentbeschreibung enthalten ist.
4. Vorrichtung nach Anspruch 3, gekennzeichnet durch Einrichtungen, mittels welchen die absolute Adresse des Operanden inkrementiert wird, damit das folgende Wort erhalten wird.
5. Vorrichtung zum Berechnen der relativen Adresse SRA eines in einem beliebigen Segment enthaltenen Operanden durch indirekte Adressierung für ein Datenverarbeitungssystem mit interner Programmierung, welches auf Befehlsworte anspricht, mehrere Basisregister besitzt und im Speicher Daten enthält, die zu Anordnungen zusammengefaßt sind, wobei jede Anordnung einem Adressenraum mit bestimmten Abmessungen zugeordnet ist, gekennzeichnet durch:
a) Einrichtungen zum Erzeugen der absoluten Adresse einer Datenwortbeschreibung, die ein Basisregisteradressenelement enthält, welches die Identifizierung eines der Basisregister ermöglicht, das die ersten Adressenelemente der Adresse eines Operanden, welcher sich innerhalb eines Segments befindet, und die Datenwortbeschreibung enthält, die das Ermitteln der zweiten Adressenelemente eines Operanden ermöglicht, der sich innerhalb des Segments befindet,
409849/0810
b) Einrichtungen zum Speichern mindestens einer Segmenttabelle, die mehrere Segmentbeschreibungen enthält und einen vorbestimmten Aufbau hat, wobei die Segmentbeschreibungen jeweils ein zugeordnetes Segment beschreiben und die Basisadresse dieses Segments enthalten und wobei die Segmentbeschreibung durch ein in dem Basisregister enthaltenes Adressenelement identifiziert wird, und
c) Einrichtungen zum Erzeugen der relativen Adresse
(SRA) aus den ersten und zweiten Adressenelementen.
6. Vorrichtung nach Anspruch 5, gekennzeichnet durch Einrichtungen zum Berechnen der absoluten Adresse eines in einem Segment enthaltenen Operanden aus der relativen Adresse (SRA) und der Basisadresse.
7. Vorrichtung nach Anspruch 5, gekennzeichnet durch erste Adressenelemente, die eine Segmentnummer (SEG) und eine OFFSET-Adresse enthalten, wobei die Segmentnummer das Auffinden der Segmentbeschreibungen in der Segmenttabelle ermöglicht und wobei die OFFSET-Adresse ermöglicht, einen ersten Operanden von der Basis des Segments aus zu adressieren, die sich am Anfang des Segments befindet.
8. Vorrichtung nach Anspruch 7, dadurch gekennzeichnet, daß die zweiten Adressenelemente eine Verschiebung (D) enthalten, die das Auffinden einer Oktade in einem Wort ermöglicht, welches ausgehend von dem Beginn der ersten Oktade des Wortes mehrere Oktaden enthält.
9. Vorrichtung nach Anspruch 8, gekennzeichnet durch Einrichtungen zum Addieren der OFFSET-VerSchiebung und der Verschiebung (D) zum Gewinnen der relativen Adresse (SRA).
409849/0810
10. Vorrichtung nach Anspruch 9, gekennzeichnet durch Einrichtungen zum Berechnen der absoluten Adresse eines in dem Segment enthaltenen Operanden durch Addition der Basisadresse und der relativen Adresse.
11. Vorrichtung zum Gewinnen der relativen Adresse SRA eines in einem Segment enthaltenen Operandenwortes durch η indirekte Adressierungen, nach den Ansprüchen 1 und 5, dadurch gekennzeichnet, daß:
. a) das Basisadressenelement das Auffinden der Basis des zugeordneten Segments ermöglicht und daß eine Segmentbeschreibung durch ein erstes Element identifiziert wird, welches in einem der Basisre-• gister gespeichert ist,
b) eine Anordnung von zweiten Einrichtungen das Speichern einer Adreßsilbe des Befehls ermöglicht, wobei die Adreßsilbe die Adresse eines Basisregisters enthält, welches ein zweites Adressenelement enthält, und ein Element der Verschiebung (D) mit Bezug auf die erste Oktade des ersten Wortes des Operanden,
c) eine dritte Anordnung von Einrichtungen "zum Berechnen der absoluten Adresse einer Datenwortbeschreibung aus dem zweiten Adressenelement, der Verschiebung und der Basisadresse vorgesehen ist, wobei die Datenwortbeschreibung ein zweites Basisadressenelement enthält, welches ein zweites Basisregister bezeichnet, das ein drittes Adressenelement eines Operanden enthält, der sich innerhalb eines zweiten Segments befindet, und wobei die Datenwortbeschreibung eine Verschiebung enthält, die das ■Adressieren einer Oktade des zweiten Segments von dem Anfang der ersten Oktade des letzten Operandenworts aus ermöglicht, und
409849/0810
d) vierte Einrichtungen vorgesehen sind zum Berechnen der relativen Adresse des Segments des letzten Operanden aus dem dritten Adressenelement und der zweiten Verschiebung.
12. Vorrichtung nach Anspruch 11, dadurch gekennzeichnet, daß das dritte Ädressenelement eine Segmentnummer (SEG) zum Auffinden der zweiten Datenwortbeschreibung enthält, die dem Segment des dritten Adressenelements in der zweiten Basisregisteranordnung zugeordnet ist, welches eine OFFSET-Verschiebung zum Auffinden des letzten Operanden in dem zweiten Segment enthält.
13. Vorrichtung nach Anspruch 12, gekennzeichnet durch Einrichtungen zum Berechnen der Adresse des Wortes eines letzten Operanden aus der OFFSET-Verschiebung und der relativen Adresse des letzten Operanden.
14. Vorrichtung nach Anspruch 13, dadurch gekennzeichnet, daß die Einrichtungen zum Berechnen der absoluten Adresse aus einem Addierer bestehen, in welchem die OFFSET-Verschiebung und die relative Segmentadresse (SRA) addiert werden.
15. Vorrichtung nach Anspruch 1 zum Gewinnen der relativen Adresse SRA eines in einem Segment enthaltenen letzten Operanden durch η indirekte Prozeduren, gekennzeichnet durch
a) Einrichtungen zum Speichern von Segmenttabellen, die mehrere Segmentbeschreibungen enthalten, welche jeweils ein Segment beschreiben, wobei eine Segmentbeschreibung ein Basisadressenelement enthält und das Auffinden des Anfangs des Segments ermöglicht,
409849/0810
b) zweite Einrichtungen zum Speichern einer Adreßsilbe, die ein Adressenelenient eines Basisregisters enthält, welches das Identifizieren eines dieser Register ermöglicht, welches ein zweites Adressenelement eines Operandenwortes innerhalb des ersten Segments, und von der Basis desselben ars enthält, wobei die Adreßsilbe außerdem eine erste Adressenverschiebung für die Adressierung einer Oktade des ersten Operanden enthält und wobei diese Oktade mit Bezug auf den Anfang des ersten Operanden adressiert wird,
c) dritte Einrichtungen zum Berechnen der absoluten Adresse der Datenwortbeschreibung aus einem zweiten Adressenelement der ersten Verschiebung und der Basisadresse, wobei die Datenwortbeschreibung eine dritte Basisadresse des Operanden enthält, der sich in einem zweiten Segment befindet, und wobei die Datenwortbeschreibung eine zweite Verschiebung enthält, die das Adressieren einer Oktade des zweiten Operandenwortes mit Bezug auf den Anfang des Wortes des letzten Operanden ermöglicht, und
d) vierte Einrichtungen zum Berechnen der relativen Adresse (SRA) aus dem dritten Adressenelement und der zweiten Verschiebung.
16. Vorrichtung nach Anspruch 15, dadurch gekennzeichnet, daß das dritte Adressenelement der Datenwortbeschreibung eine Segmentnummer (SEG) zum Auffinden der zweiten Segmentbeschreibung enthält.
17. Vorrichtung nach Anspruch 16, dadurch gekennzeichnet, daß es sich bei der Datenwortbeschreibung um eine direkte Beschreibung handelt, daß die zweite Segmentbeschreibung eine zweite Basisadresse des Anfangs des zweiten Segments enthält, und daß Einrichtungen zum Berechnen der absoluten
409849/0810
Adresse des Befehlswortes des letzten Operanden aus der zweiten Verschiebung und der zweiten Basisadresse der zweiten Segmentbeschreibung vorgesehen sind.
18. Vorrichtung nach Anspruch 17, dadurch gekennzeichnet, daß die Einrichtungen zum Berechnen des letzten Operanden aus einem Addierer bestehen, in welchem die zweite Verschiebung und die zweite Basisadresse addiert werden.
19. Vorrichtung nach Anspruch 18, gekennzeichnet durch Einrichtungen zum Inkrementieren der absoluten Adresse des letzten Operanden zum Gewinnen des folgenden Wortes.
20. Vorrichtung nach Anspruch 18, gekennzeichnet durch Indizierungseinrichtungen für die Inkrementierung der relativen Adresse (SRA) des letzten Operanden zum Gewinnen der relativen Adresse des folgenden Wortes.
21. Vorrichtung nach einem der Ansprüche 1 bis 20 zum Berechnen der absoluten Adresse des in einem vorbestimmten Segment enthaltenen letzten Operanden für ein Datenverarbeitungssystem, welches auf Befehlsworte anspricht und mehrere erste Einrichtungen zum Speichern von Adressenelementen eines letzten Operanden hat, in welche verschiedene Anordnungen von Daten eingespeichert sind, wobei jede Anordnung von Daten einem Adressenraum zugeordnet ist, gekennzeichnet durch:
a) erste Einrichtungen, die auf ein erstes und auf ein zweites Adressenelement ansprechen, wobei das erste Element in den Befehlen und das zweite Element in den ersten Speichereinrichtungen enthalten ist und wobei die ersten Einrichtungen auf eines der ersten Elemente und auf eines der zweiten Elemente hin die relative Adresse (SRA) des letzten Operanden berechnen,
4098 4 9/0810
b) zweite Einrichtungen zum Speichern mindestens einer Segmenttabelle, die Segmentbeschreibungen enthält, welche jeweils einem Segment zugeordnet
.sind und welche jeweils die Basisadresse des zugeordneten Segments enthalten, und
c) Einrichtungen zum Berechnen der absoluten Adresse des letzten Operanden aus der Basisadresse und der relativen Adresse (SRA).
22. Vorrichtung nach Anspruch 21, gekennzeichnet durch Einrichtungen zum Inkrementieren der absoluten Adresse des letzten Operanden, damit die absolute Adresse des folgenden Wortes erhalten wird.
23. Vorrichtung nach Anspruch 22, gekennzeichnet durch Inkrementierungseinrichtungen zum Gewinnen der relativen Adresse (SRA), die der relativen Adresse des laufenden Wortes folgt.
409849/081Q
Leerseife
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 true DE2423194A1 (de) 1974-12-05
DE2423194C2 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
DE2846495C2 (de) * 1977-10-25 1993-10-21 Digital Equipment Corp Zentraleinheit
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
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
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
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)

* 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
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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
AFIPS Proceedings of the Spring Joint Computer Conference, 1966, Seiten 65 bis 69 *

Also Published As

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

Similar Documents

Publication Publication Date Title
DE2423194A1 (de) Vorrichtung zur adressengewinnung und -berechnung in einem segmentierten speicher
DE69819686T2 (de) Objekt und verfahren zum bereitstellen eines effizienten mehrbenutzerzugriff auf verteilten betriebssystemkernkode durch instanzierung
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
DE3151745C2 (de)
DE2725718C2 (de) Datenverarbeitungsanordnung zum Übersetzen von virtuellen Adressen
DE69738101T2 (de) Verwaltung des Zugangs zu Objekten mit Hilfe von Referenzen mit drei Zuständen
DE2716051A1 (de) Datenverarbeitungsanlage, bei der zum speicherzugriff schluessel verwendet werden
DE3741953A1 (de) Multiprozessorsystem und verfahren zur arbeitslastverteilung bei einem solchen
DE102013017509A1 (de) Effiziente Speichervirtualisierung in mehrsträngigen Verarbeitungseinheiten
DE1524129A1 (de) Datenverarbeitungssystem mit gemeinsamem Zugang
DE2302074A1 (de) Speicherschutzanordnung in einem multiprozessorsystem
DE2226382A1 (de) Datenverarbeitungsanlage
EP0771444A1 (de) Verfahren zur steuerung von technischen vorgängen oder prozessen
DE2515696A1 (de) Anordnung zum selektiven loeschen von teilen beziehungsweise zum ersatz von daten in einem cache-speicher
DE2556661A1 (de) Steuerschaltung mit adressenerweiterung
DE19852250A1 (de) System und Verfahren zum Ändern der Zuordnung einer Partition zu einem logischen Laufwerk in einem Computerspeicher
DE1549531A1 (de) Digitale Rechenanlage
DE2641722A1 (de) Hierarchisch geordnetes speichersystem fuer eine datenverarbeitende anlage mit virtueller adressierung
DE2101949A1 (de) Verfahren zum Schutz von Datengruppen in einer Multiprocessing-Datenverarbeitungsanlage
DE112019001821T5 (de) Verfahren und vorrichtung zur wiedergabe eines aktivierungsrahmens für unterbrechungsfreie speicherbereinigung (pause-less garbage collection)
DE60027357T2 (de) Eine Unterbrechungssteuerung und ein Mikrorechner, der diese Unterbrechungssteuerung beinhaltet
DE112019000627T5 (de) Speicherstrukturbasiertes Coherency Directory Cache
EP0265636A1 (de) Multiprozessor mit mehreren mit Cache-Speichern ausgerüsteten Prozessoren und einem gemeinsamen Speicher
CH495584A (de) Datenverarbeitungsanlage

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