DE2459006C2 - Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage - Google Patents
Einrichtung zum Bilden einer absoluten Adresse in einer DatenverarbeitunsanlageInfo
- Publication number
- DE2459006C2 DE2459006C2 DE2459006A DE2459006A DE2459006C2 DE 2459006 C2 DE2459006 C2 DE 2459006C2 DE 2459006 A DE2459006 A DE 2459006A DE 2459006 A DE2459006 A DE 2459006A DE 2459006 C2 DE2459006 C2 DE 2459006C2
- Authority
- DE
- Germany
- Prior art keywords
- segment
- address
- register
- descriptor
- base
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/342—Extension of operand address space
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/0623—Address space extension for memory modules
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
Description
Die Erfindung betrifft eine Einrichtung der im Oberbegriff des Patentanspruchs 1 genannten Art.
Mit der fortlaufenden Erhöhung der Arbeitsgeschwindigkeit von Rechenanlagen und der zugehörigen
Ein/Ausgabegeräte und der Entwicklung von Standardprogrammen,
weiche gesteuert durch ein Betriebssystem (Steuerprogramm) Funktionen übernommen haben,
welche vorher den Eingriff des Programmierers erforderten, hat sich die Einzelprogrammverarbeitung
durch einen einzelnen Processor zur heutigen Stapelverarbeitung weiterentwickelt, bei welcher mehrere
Jobs zum Compilieren oder Assemblieren der Primärprogrammstapel in Objektprogramm-Kartensätze, d. h.
ίο zur Umsetzung des Benutzerprogramms aus der Symbolsprache
in die Maschinensprache, sowie zum Laden und Ausführen des Benutzerprogramms gruppenweise
zusammengefaßt werden. Durch den Stapelbetrieb wurde insbesondere der Tatsache Rechnung getragen, daß
die Rüstzeit zur Vorbereitung eines Programms bei den immer schneller werdenden Rechnern ein Vielfaches
der eigentlichen Rechenzeit beträgt Mit dem zunehmenden Einsatz von Rechnern für Geschäfts- und Verwaltungsaufgaben
entstand der Wunsch nach höherem Wirkungsgrad sowie nach Betriebssystemen, welche
durch Mehrfachprogrammierung alle Dienstprogramme und de Steuerung für die Durchführung der Jobs
zusammenfassen. Bei einfachen Stapelbetriebssystemen ist die Informationsquelle des Speichers mit wahlfreiem
Zugriff, zumeist eines Kernspeichers, jedoch in jüngster
Zeit vielfach eines MOS-Halbleiterspeichers, dem einzelnen
Programm zugeordnet Dies stellt jedoch eine Verschwendung von Speicherplatz dar, wenn das Programm
nicht den gesamten Speicher ausfüllt Eine Hauptaufgabe der Mehrfachprogrammierung besteht
folglich in einer wirkungsvolleren Ausnutzung des Hauptspeichers, insbesondere wenn von der gleichen
Prozedur mehrere Systemfunktionen angerufen werden. Als erster Schritt wurde der Kernspeicher unterteilt,
so daß Mehrfachprogramme zur gleichen Zeit in abgetrennten Bereichen des Kernspeichers abgelegt,
werden konnten. Da jedoch Programme nur selten den gleichen Umfang haben, droht hierbei eine Überlappung
der Speicherbereiche und damit verbunden ein
Überdecken eines Programms durch ein anderes. Dies ließ sich durch Zuweisung nicht überlappender Adressraumbereiche
für jedes Programm vermeiden. Jedoch führt dies zu ungenutzten Kernspeicherteilen, welche
für die Unterbringung anderer Informationen zu klein sind. Als Lösung dieses Problems wurde ein Umordnungs-
oder Verschieberegister vorgeschlagen, welches die fortlaufenden Adressen im Namenfeld in fortlaufende
Adressen im Speicherraum umwandelt. Hierdurch gewinnt das System mehr Freiheit für die Zuordnung
von Speicherplätzen und faßt die nicht benutzten Bereiche des Hauptspeichers zu einem fortlaufenden Teil zusammen.
Dieses fortlaufende Umordnen und Verschieben ist jedoch umständlich und führt zu beträchtlichen
Schwierigkeiten bei der Überwachung, insbesondere wenn mehrere gleichzeitig laufende Programme ständig
ihre Anforderung an Speicherplatz ändern. Um hier Abhilfe zu schaffen, wurde das System der seitenweisen
Zusammenfassung entwickelt Hierbei wird das Namensfeld eines Programms in gleiche Teile, genannt Seiten,
unterteilt, und der Hauptspeicher ist ebenfalls in gleiche Teile, genannt Blocks, unterteilt, wobei der Umfang
einer Seite gleiche dem eines Blockes ist, obwohl das gesamte Namensfeld nicht gleich dem gesamten
Speicherplatz sein muß. Für die Zuordnung jedes einzelnen Blockes zu einer bestimmten Seite wird ein Blockindex
verwendet, so daß es nicht nötig ist, eine Seite bei jedem Programmaufruf zu verschieben. Jeder freie
Block ist ebensogut wie jeder andere, in den eine Seite
eingespeichert werden kann, weil die Gleichförmigkeit des Programms über den genannten Blockindex erzielt
wird und die Wahrscheinlichkeit, daß für eire neue Seite
ein freier Block im Hauptspeicher gefunden werden kann, ziemlich groß ist Rechnersysteme, welche diese
seitenweise Zusammenfassung benutzen, sind der Atlasrechner der Manchester University X.DS940 sowie der
Rechner HlS 645 von Honeywell Information Systems Inc.
Obwohl die genannte Seiten-Technik das Problem der Zuordnung von Speicherraum zu mehreren Programmen
im wesentlichen löst, blieb das Problem der Zuordnung von Adressen im Namensfeld zwischen
mehreren Programmen sowie der Schutz der Information im Hauptspeicher bestehen. In einem Aufsatz »Program
Organization and Record Keeping für Dynamic Storage Allocation, Information Processing 62«, veröffentlicht
durch North-Holland Publishing Po, Amsterdam
1962, schlägt A. W. Holt eine Segmentierung vor, und J. B. Dennis hat dieses Konzept der Segmentierung
zwecks Beibehaltung der Benennung und Bezugnahme auf Information weiterentwickelt und in einem Aufsatz
»Segmentation of the Design of Multiprogrammed Computer Systems«, veröffentlicht im Journal of the
Association for Computing Machinery, Band 12, Heft 4,
Oktober 1965, auf den Seiten 589 bis 602 beschrieben.
Das Segment-Prinzip wurde im Rechner Burroughs B5000 sowie bei Anwendung des MULTICS Betriebssystems
im Honeywell-Rechner 645 eingesetzt Beim segmentierten Adressieren ist ein Segment definiert als eine
geordnete Gruppe von Worten, welche durch einen Scgmentnimen bezeichnet wird, der dieses Segment
von allen anderen Segmenten unterscheidet, und durch eine Gesamtadresse, welche zur Auswahl eines bestimmten
Elements der geordneten Gruppe dient Das Segment ist die Einheit für die gemeinsame Benutzung
durch mehrere Benutzer, trägt einen Symbolnamen und hat einen Satz zugeordneter Zugriffsmerkmale, welche
u. a. die Funktion beschreiben, bei welcher der Benutzer Zugang zu den in dem Segment enthaltenen Prozeduren
und/oder Daten hat Das Segment kann wachsen und schrumpfen und ist in den Programmen direkt adressierbar.
Das Segment ist gedacht als eine Erweiterung des Dateibegriffs in herkömmlichen Systemen; jedoch ist
eine Datei nicht direkt adressierbar, noch können in den Kernspeicher übertragene Dateien direkt von Programmen
anderer Benutzer mitbenutzt werden.
Das Segmentieren ist eine wirksame Lösung für das Problem der Benennung, Adressierung, Zuordnung und
des Schutzes von Informationen im Hauptspeicher, indem:
(1) Für eine Berechnung die Benutzung eines Namensfeldes genügender Größe zur Verfügung stehen
sollte, damit jeder Information auf die Bezug gcnommen
wird, ein einziger Name zugeordnet wird und daß eine Verschiebung oder Umordnung von
Information innerhalb des Namensfelds nicht notwendig ist;
(2) Datenobjekte für einen Rechenvorgang ohne Um-Ordnung des Namenfeldes vergrößerbar sein 00II-ten;
(3) die von mehreren Rechenvorgängen gemeinsam herangezogenen informationen den gleichen Namen
für alle Rechenvorgänge haben seilten; und
(4) ein Schutzmechanismus im Namensfeld wirksam sein sollte, welcher im Rechenvorgang den Zugriff
zu Informationen nur bei entsprechender Authorisierung gestattet (vgl. »Segmentalion and the Design
of Multiprogrammed Computer Systems« von Jack B. Dennis, veröffentlicht in Journal of the Association
of Computing Machinery, Band 12, Heft 4, Oktober 1965, Seiten 598-602).
Während einige der obengenannten Rechnersysteme das Prinzip der seitenweisen und blockweisen Zusammenfassung
sowie des Segmentierens zum Verbessern der Speicherausnutzung anwenden, sind diese Techniken
dort nicht voll zum Einsatz gebracht und werden allgemein hauptsächlich in Form von Software realisiert
Der in gewissem Umfang die seitenweise Zusammenfassung und das Segmentieren benutzende Honeywell-ilechner
HIS 645 beispielsweise, ist ein weiterentwickeltes System HIS 635, welches durch Modifikation
mehrere Speichermodule, mehrere Eingabe/Ausgabe-Steuerungen, mehrere Processoren und eine Reihe von
Zusatzregister genannten Sonderregistern enthält. Zusammen mit einem virtuellen Speicher und der Software
des MULTICS-Systems erfüllt der Rechner HIS 645 einige der obengenannten Anforderungen.
Auf das System MULTICS nimmt auch ein Aufsatz »Sprachorientierte Rechner — Probleme der Adressierung«,
veröffentlicht in der Zeitschrift »Elektronische Rechenanlagen«, Band 12 (1970), Heft 1, Seiten 26—35,
Bezug, wo im Abschnitt »Segmentierter Prozeß« auf Seite 28/29 ein Proieß als eine bearbeitbare Ansammlung
von Programmsegmenten und Datensegmenten bezeichnet wird, die durch eine Verweisliste (Segmenttabelle)
zusammengefaßt sind. Jedes Datenwort kann über eine Segmentnummer SN sowie eine Wortnummer
WN, also in zwei Verzweigungsebenen adressiert werden, wobei die Adresse für einen linearen Speicher
über eine Tabelle von Segmentanfangsadressen mit Inkrementierung gewonnen wird. Die Segmente dienen
als Zuweisungseinheiten für den Arbeitsspeicher und haben beliebige, zum Teil auch veränderliche Größe. Sie
können damit an problembedingte Datenmengen angepaßt werden.
Der Erfindung liegt die Aufgabe zugrunde, die Technik der Segmentadressierung weiter zu verbessern und
insbesondere in Form von Hardware zu realisieren. Dabei soll das Segment als Einheit der Adressierung dienen,
der Aufbau der Hardware möglichst einfach und übersichtlich sein und die Segmentadressierung sowohl
bei direkter als auch bei indirekter Adressierung ermöglicht werden.
Diese Aufgabe löst die im Anspruch 1 beschriebene Einrichtung. Die gemäß der Erfindung aus einer Anzahl
von Adresselementen entwickelte absolute Adresse weist auf einen Byte-Speicherplatz im Hauptspeicher
hin. Während der Adressentwicklung werden Hardware-Tests ausgeführt, um sicherzustellen, daß die entwikkelte
absolute Adresse die geforderte Adresse ist. Grundelement der Adressierung ist das Segment. Ein
Adressenraum ist für einen Prozeß definiert als Gruppe logischer Adressen, welche die Hardware während der
Ausführung des Prozesses in absolute Adressen umwandeln darf. Eine logische Adresse besteht im typischen
Fall aus einem Paar (s, d), wobei s die Segmentnumber
und d die Verschiebung darstellt. Die Hardware erhält Tabellen, nämlich die Segmenttabellen, welche
den Adressenraum des Prozesses bestimmen. Eine Segmenttabelle ST enthält einen Eingangs- oder Segmentdescriptor
für jedes Segment. Jeder Segmentdescriptor umfaßt alle Merkmale des Segments, unter denen sich
die absolute Kernadresse des Segments und die Länge
des Segments befinden. Ein Befehl kann einen Operanden entweder direkt oder indirekt über einen Datendescriptor
erreichen, wobei eine Adreßsilbe im Befehl als Hinweis dient und angibt, ob die Bezugnahme direkt
oder indirekt ist. Darüberhinaus nennt die Adreßsilbe
ein Basisregister, welches das anzuwählende Segment definiert und ebenso den OFFSET innerhalb des Segments.
Die Adreßsilbe enthält ferner eine Verschiebung gegenüber der genannten Basis. Die Hardware zur
Adressenentwicklung erhält die absolute Adresse des Segmentanfangs, addiert zu dieser den durch die genannten
Register definierten OFFSET, die durch den Befehl bestimmte Verschiebung sowie, falis erforderlich,
den Inhalt eines Indexregisters. Aus dieser Summation entsteht die erforderliche absolute Adresse.
Vorteilhafte Weiterbildungen der Erfindung ergeben sich aus den Unteransprüchen.
Zur Erläuterung der Erfindung im einzelnen wird nachfolgend auf die in den Zeichnungen wiedergegebenen
Ausführungsbeispiele Bezug genommen. Hierbei zeigt
F i g. 1 schematisch eine Anzahl von Segmenten im Hauptspeicher;
F i g. 2A bis 2M die schematische Darstellung mehrerer Hardware-Strukturen, nämlich
F i g. 2A und 2B Segmentdescriptoren, F i g. 2C bis 2E Datendescriptoren, F i g. 2CDE einen erweiterten Datendescriptor,
F i g. 2E und 2G Basisregister, F i g. 2H und 21 Adreßsilben,
F i g. 2 J und 2JC effektive Adreßelemente,
F i g. 2L ein typisches Adreßraumwort ASW, F i g. 2M ein typisches Segmenttabellenwort STW;
F i g. 3 eine schemadsche Darstellung der gemeinsamen Benutzung von Segmentdescriptoren durch menrere
Prozesse;
F i g. 4 die schematische Darstellung der Hardware-Strukturen für die segmentierte Adressierung sowie den
allgemeinen Verfahrensablauf bei Segmentadressierung;
F i g. 5 das Flußdiagramm der Entwicklung einer segmentierten Adresse für die Erzeugung einer effektiven
Adresse durch direkte oder indirekte Adressenentwicklung;
F i g. 6 den Aufbau der Einrichtung für die direkte Segmentadressenentwicklung;
F i g. 7 eine Einrichtung für die Entwicklung einer indirekten Segmentadresse über die Basis ITB;
F i g. 8 eine Einrichtung zur indirekten Segmentadressenentwicklung
über das Segment ITS;
F i g. 9 das Fiußdiagramm der Entwicklung einer Segmentadresse
für die Entwicklung einer absoluten Adresse;
Fig. 10 eine Einrichtung für die Entwicklung einer
absoluten Adresse;
F i g. 11 eine Einrichtung für die Entwicklung einer
Segmentadresse unter Verwendung eines inhaltadressierten Speichers;
F i g. 12A eine Weiterentwicklung für die Entwicklung
einer Segmentadresse;
Fig. 12B bis 12E den Zuständen der Einrichtung zur
Entwicklung von Segmentadressen während verschiedener Zyklen.
In älteren Datenverarbeitungsanlagen wurde zu gegebener
Zeit jeweils ein Programm verarbeitet, welches Zugriff zu allen Speicherquellen hatte. Überschritt das
Programm den vorhandenen Speicherraum, so mußte der Programmierer sein Programm und/oder die Daten
unterteilen und das Laden der einzelnen Teile steuern. In DV-Anlagen mit Mehrprogrammverarbeitung befinden
sich gleichezeitig viele Programme im Speicher. Um die Zuordnung von Speicherplätzen zu erleichtern, erfolgt
eine dynamische Zuordnung durch eine Kombination des Betriebssystems mit der Hardware. Wegen des
unterschiedlichen Umfangs der Programme ordnet dieses System den Speicher in Segmente unterschiedlicher
Größe und hat die Möglichkeit, während des Programmablaufs die Speicherzuordnung umzuordnen. Somit
können einem Programm mehrere Speichersegmente zugeordnet sein, welche nicht in aufeinanderfolgenden
Bereichen des Speichers liegen. F i g. 1 zeigt aus einem Rechner den Speicher 100 mit wahlweisem Zugriff,
in dem fünf verschiedene Segmente von drei verschiedenen Programmen A, B und C gespeichert sind.
Segment 1 des Programms 1 ist im Teil 101 des Hauptspeichers 100 abgelegt, ein Segment 3 des Programms B
in einem Teil 102, ein Segment 6 des Programms C in einem Teil 103 des Speichers, ein Segment 2 des Programms
B in einem Speicherteil 104 und schließlich ein Segment 2 des Programms A im Speicherteil 105. Andere
Bereiche des Speichers können verschiedene Segmente weiterer Programme oder Daten aufnehmen. Bei
dieser Prozedur ergibt sich normalerweise das Problem, daß alle Speicheradressen in einem Programm modifiziert
werden müssen, wenn ein Programm oder ein Programmsegment anders zugeordnet wird. Um dies zu
vermeiden, werden hier im Benutzerprogramm logische Adressen statt absoluter Hauptspeicheradressen verwendet
Diese logischen Adressen dienen dann zur Entwicklung der absoluten Hauptspeicheradresse. Mit dieser
Technik können Benutzerprogramme ohne Rücksicht auf die zur Verfügung stehenden Speicherplätze
im Hauptspeicher geschrieben werden. Mit diesem Speicherzuordnungssystem hat jeder Prozeß über entsprechende
Segmentdescriptoren Zugriff zu seinen eigenen oder zugehörigen Speichersegmenten. Das Format
eines Segmentdescriptors ist in den F i g. 2A und 2B wiedergegeben. F i g. 2A zeigt einen direkten Segmentdescriptor
200Λ und F i g. 2B einen indirekten Segmentdescriptor 200Ä Ein direkter Segmentdescriptor beschreibt
ein Segment und wiest auf dieses hin, während ein indirekter Segmentdescriptor auf einen anderen
Segmentdescriptor hinweist In F i g. 2A befindet sich an der Bit-Stelle 0 das Anwesenheitszeichen P. Es nimmt
den Wert »1« an, wenn für die dem Segmentdescriptor entsprechende Segmentnummer im Hauptspeicher ein
Segment angegeben ist Hat das P-FeId den Wert »0«, so ist kein Segment bestimmt und beim Anwählen dieses
SegmenidesCripiöfS ciUSichi ein FehisegiTiciii-AüSnähmesignal.
Das Ein-Bit-Feld I an der zweiten Stelle zeigt, daß der Descriptor die absolute Adresse eines anderen
Segmentdescriptors und nicht die Basisadresse eines Segments enthält Das Zugriffsfeld des indirekten Descriptors
I wird in Zugriffsschutzprüfungen anstelle des Zugriffsfeldes des Segmentdescriptors benutzt, auf den
der indirekte Descriptor hinweist Ein Benutzungsanzeiger U in der Bit-Position Zwei läßt erkennen, ob ein
Zugriff zum Segment erfolgt ist oder nicht Das Feld hat den Wert »0«, wenn kein Zugriff erfolgt und nimmt im
Falle eines Zugriffs den Wert »1« an. Der Schreibanzeiger W an der Bit-Position Fünf zeigt, ob in das Segment
Information eingeschrieben woden ist oder nicht Wurde keine Information eingeschrieben, so hat dieses Feld
den Wert »0«. Diese Anzeiger werden bei jedem Zugriff
zu einem Segment durch Firmware fortgeschrieben, wozu eine indirekte Adressierung und Prozedur oder
eine Semaphoresteuerung gehört. Das Zugängigkeits-Bit A an der Stelle Drei gibt an, ob das Segment zur
Verfügung steht. Es hat den Wert »1«, wenn das dem Descriptor entsprechende Segment verfügbar ist, während
der Wert »0« ist, falls das Segment gesperrt ist. In diesem Falle erzeugt ein Anwählen des Segmentdescriptors
ein Segmentsperr-Ausnahmesignal. Der Durchschaltungsanzeiger G-S ist ein Zwei-Bit-Feld,
welcher überprüft wird, falls bestimmte Befehle ausgeführt werden sollen. Beispielsweise verlangt ein Prozeduranfangsbefehl
ENT, das das G-S-FeId die Codierung 1 0 hat, während ein Semaphorebefehl den Code 0 1
erfordert. Jeder andere als der erforderliche Code führt zu einem Segmentdescriptor-Ungültigkeits-Ausnahmesignal.
Das Feld MBZ an der Stelle Vier zeigt, wenn es den Wert »0«, daß das adressierte Segment nicht größer
als ein vorgegebener Umfang ist. Erneut entsteht ein Segmentdescriptor-Ungültigkeits-Ausnahmesignal, falls
das Feld MBZ nicht den Wert »0« hat. Die Segmentbasis X24 im direkten Segmentdescriptor ist ein 24-Bit-Basis-FeId,
welches die absolute Adresse der Basis eines im direkten Segmentdescriptor bestimmten Segments angibt.
Der indirekte Segmentdescriptor gemäß F i g. 2B hat eine verringerte Anzahl von Indikatoren und ein
28-Bit-Descriptorplatzfeld, welches die absolute Adresse
eines direkten Descriptors bestimmt. Die Indikatoren P, 1, MBZ und A des indirekten Descriptors 200Ä haben
gleichartige Funktionen, wie die entsprechenden Indikatoren in direkten Descriptor.
Uni eine möglichst hohe Flexibilität zu erzielen, hat
jeder Prozeß die Möglichkeit des Zugriffs zu üblicherweise 2048 Speichersegmenten, obwohl diese Zahl auch
größer oder kleiner sein kann. Für den genannten FaIi wären somit 2048 Segmentdescriptoren pro Prozeß erforderlich.
In einer Gruppe zusammen ablaufender Prozesse sind jedoch normalerweise eine Vielzahl von Segmenten,
die von mehr als einem Prozeß benutzt werden. Folglich werden die Segmentdescriptoren gruppenweise
zu Segmenttabellen zusammengefaßt, welche davon abhängen, ob sie für einen Prozeß, eine Gruppe von
Prozessen (Job) oder jeden Prozeß im System zugängig sind. Diese gruppenweise Zusammenfassung dient auch
dem Programmschutz. Somit wird eine Reihe von Segmentdescriptor-Tabelien
für Einzelprogrammbenutzung, Mehrfachprogrammbenutzung und allgemeine Benutzung zusammengestellt In diesem System hat jedes
Segment nur einen Segmentdescriptor. Hierdurch verringert sich der für die Unterbringung der Segmentdescriptoren
erforderliche Speicherraum, und außerdem wird die Fortschreibung während der Umordnung
des Speichers verringert, in F i g. 3 sind die Segmentdescriptoren
in drei verschiedenen Segmentdescriptor-Tabellen 304,305 und 306 zusammengefaßt Die Segmentdescriptor-Tabelle
304 umfaßt die gemeinsamen Segmentdescriptoren, was dadurch angezeigt wird, daß die
Prozesse A, B und C aus den Blocks 301, 302 und 303 Zugriff zu dieser Tabelle 304 haben, wie dies durch die
Pfeile 307, 308 und 309 angedeutet ist Demgegenüber können nur die Prozesse B und C in den Blocks 302 und
303 den Job-Segmentdescriptor 305 erreichen, während
nur der Prozeß C im Block 303 Zugriff zu dem Prozeß C-Segmentdescriptor 306 hat Wegen der großen Anzahl
der im System vorhandenen Jobs und damit der entsprechenden Anzahl von Segmenttabellen muß jeder
Prozeß bestimmen können, zu welcher Segmenttabelle er Zugriff hat Zu diesem Zweck hat jeder Prozeß
zwei Segmenttabellen-Wortfelder, welche die Adressen aller für den Prozeß zugängigen Segmeiittabellen enthalten.
In den Segmenttabellen selbst befinden sich die Segmentdescriptoren. Die Segmenttabellen-Wortfelder
STWA enthalten die Segmenttabellenworte STWs, deren Form in F i g. 2M gezeigt ist.
In F i g. 2M bestimmt das Umfangsfeld STSZ, welches die Bitstellen 0 bis 7 Umfaßt, die Gesamtzahl der Segmentdescriptoren
in der Segmenttabelle. Die Anzahl kann von 0 bis 4 für die Segmenttabellenworte im Feld
Nr. 0 variieren, welches durch das Adreßraumwort
ίο ASW Nr. 0 angewählt wird. Die Anzahl kann zwischen 0
und 255 für Segmenttabellenworte im Feld Nr. 1 liegen, auf welches durch das Adressenraumwort Nr. 1 hingewiesen
wird. Ist das Umfangsfeld STSZ gleich »0«, so ist die Segmenttabelle leer. Das Segmenttabellen-Adressenfeld
STA mti den Bits 8 bis 3i bestimmt die absolute Adresse der Segmenttabelle, welche gleich 16 χ STA in
Bytes ist. Die Segmenttabellen-Wortfelder STWA werden durch die zuvorerwähnten Adreßraumworte ASW
gekennzeichnet und haben das in F i g. 2L gezeigte Format.
Es ist dem Format der Segmenttabellenworte STW ähnlich, jedoch bezieht sich das STWZ-FeId auf den
Umfang des Feldes. Der Höchstwert eines Segmenttabellenwort-Umfangsfeldes STWSZ ist gleich 6 für das
Adreßraumwort Nr. 0 und ist gleich 8 für das Adreßraumwort Nr. 1. Das Segmenttabellen-Wortfeld STWA
mit den Bits 8—31 adressiert die absolute Adresse des Segmenttabellen-Wortfeldes in Einheiten von 16 Bytes.
In Fi g. 4 sind einige der Schritte wiedergegeben, mit
denen ein vorgegebener Prozeß Zugriff zu einem zulässigen
Segment erreichen kann. Ein Prozeß A, B oder C, dargestellt durch die Blocks 401, 402 und 403 ist mit
zwei Adreßraumworten ASWO und ASWl ausgestattet, welche durch die Blocks 404 bis 409 dargestellt sind. Die
Adreßraumworte ASW sind in einem Prozeßsteuerblock PCB abgelegt, der durch einen Prozeß erzeugt
wird. Jedem Prozeß ist ein Prozeßsteuerblock zugeordnet und enthält die erforderlichen Informationen über
den Prozeß einschließlich der absoluten Anfangsadresse der die vom Prozeß erreichebaren Segmenttabellen bestimmenden
Tabellen. Jeder Prozeß braucht zwei Adreßraumworte ASW, weil zwei Arten von Segmenten
dem Prozeß zugeordnet sein können, nämlich sehr große Segmente mit einem Verschiebebereich von
(222— 1), und eine große Anzahl kleinerer Segmente mit einem Verschiebebereich von Null bis (216—1). Die
Adreßraumworte 404 bis 409 liefern die Adresse für die Segmenttabellen-Wortfelder STWA 410 bis 415. Letztere
enthalten die Segmenttabellenwortdescriptoren und liefern die Adresse der Segmenttabellen, welche dem
so zugehörigen Prozeß zugängig sind. Die Segmenttabellen 416 bis 425 enthalten die Segmentdescriptoren und
werden zur Bezeichnung eines bestimmten Segments 425 bis 439 im Hauptspeicher verwendet
Die Entwicklung einer absoluten Hauptspeicheradresse besteht aus zwei Phasen, nämlich erstens aus
der Entwicklung einer effektiven Adresse aus der die logische Adresse enthaltenden Adreßsilbe; und zweitens
der Entwicklung einer absoluten Adresse aus der effektiven Adresse aufgrund von Informationen aus der
Adreßsilbe und Informationen in einem Basisregister, wobei die effektive Adresse aus der Addition des OFFSET im Basisregister zur Verschiebung in der Adreßsilbe
besteht um eine relative Segmentadresse SRA zu erhalten. Die effektive Adresse gewinnt man durch Addieren
des Inhalts eines Indexregisters, sofern vorhanden, zur relativen Segmentadresse SRA. In der zweiten
Phase wird die absolute Adresse dadurch entwickelt, daß man die Segmentnummer SEG im Basisregister für
ίο
den Zugriff zu einem Segmentdescriptor verwendet und die Basiscdresse im Segmentdescriptor zur effektiven
Segmentadresse addiert.
Bei der Entwicklung einer effektiven Adresse wird das Basisregister zusammen mit einer Adreßsilbe benutzt.
Im gezeigten Ausführungsbeispiel werden typischerweise 8 Basisregister, bezeichnet mit Register 0 bis
Register 7, eingesetzt (vgl. Block 1102 in Fig. 11). Das
Format des Basisregisters ergibt sich aus den F i g. 2F und 2G. Auch hieraus zeigt sich, daß zwei Formate erforderlich
sind, für die Adressierung von zwei unterschiedlichen Arten von Segmenten. Das Format der Basisregister
gemäß den F i g. 2F und 2G ist ähnlich mit Ausnahme, daß unterschiedliche Eingangsgrößen verschiedene
Bit-Fe!d-P!ätze besetzen. Das Hinweisfeld TAG ist ein 2-Bit-Feld, welches dem TAG-FeId des Datendescriptors
gemäß den F i g. 2C bis 2E entspricht. Ein 2-Bit-Ringfeld enthält die der Segmentadresse zugordnete
Ringnummer und wird für den Informationsschutz verwendet. Das Segmentkennzeichnungsfeld SEG besteht
aus der Segmenttabellennummer STN und der Segmenttabellen-Eingangsnummer STE und stellt dasjenige
Feld dar, welches ein Segment in der Segmenttabelle beschreibt Der OFFSET ist je nach Segmenttabellennummer
ein 16-Bit- oder ein 22-Bit-Feld, welches ein
positive ganze Zahl darstellt und bei der Adressenentwicklung als Hinweisadresse innerhalb eines Segments
dient.
Das Format der Adressensilbe ergibt sich aus den F i g. 2H und 21. Das Indirektadressierungs-Bit IND gibt
an, ob direkt oder indirekt adressiert wird. Hat dieses Bit den Wert »0«, so erfolgt direkte Adressierung, während
beim Wert »1« eine indirekte Adressierung vorgenommen wird. Das Basisregisterfeld BR bezeichnet dasjenige
der 8 Basisregister, welches bei der Entwicklung der effektiven Adresse angewählt wird. Das Index-Bit IDX
dient zur Festlegung, ob bei der Adressenentwicklung ein Indexregister benutzt wird oder nicht, sowie zur
Angabe der Länge des Verschiebungsfeldes D. Hat das Index-Bit IDX den Wert »0«, so bedeutet dies, daß kein
Indexregister zu benutzen ist und die Verschiebung D 15 Bits lang ist Hat hingegen das Index-Bit IDX den
Wert »1«, so wird damit angzeigt, daß ein durch das Feld
IXR bestimmtes Indexregister benutzt werden soll und das Verschiebungsfeld D 12 Bits lang ist. Hieraus ersieht
man, daß das Format gemäß F i g. 1 das Indexformat der Adreßsilbe ist Das Feld IXR ist nur vorhanden, wenn
IDX gleich »1« ist und gibt dann das Indexregister an, welches bei der Entwicklung der effektiven Adresse anzuwählen
ist. Das Verschiebungsfeld D entspricht einer nQsitiYen "snzeii Zäh! welche als Verschiebung dient
Ist IDX gleich »0«, so ist der Maximalwert von D gleich (215— 1), während bei IDX gleich »1« der Maximalwert
von D (212—1) beträgt Das Adreßsilbenformat beginnt
mit Bit 12 und endet mit Bit 31. Dies ist dadurch bedingt,
daß die Adressensilbe üblicherweise einen Teil eines Befehls enthält und in den Befehl beginnend mit Bit 12
eingeordnet ist
Die Entwicklung einer effektiven Adresse aus einer Adreßsilbe kann auf vier verschiedenen Wegen vorgenommen
werden: (1) Die Entwicklung der effektiven Adresse kann direkt sein; (2) die Entwicklung der effektiven
Adresse kann indirekt erfolgen; (3) die Entwicklung der effektiven Adresse kann direkt und indiziert
sein; und (4) die effektive Adresse kann indirekt und indiziert entwickelt werden. Alle vier Arten der Adressensilbe
enthalten ein Basisregister-Feld BR, welches den Zugriff zum Basisregister bestimmt welches eines
der beiden in den Fig.2F und 2G wiedergegebenen
Formate 200F und 200G haben kann. Die Inhalte des
Basisregisters werden durch ein Benutzerprogramm verarbeitet, welches einen Basisregister-Ladebefehl benutzt.
Das direkte Verfahren zur Entwicklung einer effektiven Adresse ist in den F i g. 5 und 6 wiedergegeben. Eine
Direkt-Adressensilbe 500 in F i g. 5 bzw. 601 in F i g. 6, dargestellt dadurch, daß ihr Indirektadressierungs-Bit
ίο IND gleich »0«, ihr Index-Bit IDX gleich »0« und das
Verschiebefeld D sehr lang ist, weist auf ein Basisregister 602, das die Segmentnummer SEG der Segmenttabelle
604 sowie einen OFFSET innerhalb dieser Segmenttabelle angibt. Diese Segmenttabelle enthält Seg-
te rrisntCtwSTiDtcrsn von dsnsn einer in ciiessm speziellen
Beispiel eine Basisadresse für das Segment beschreibt. Die Adreßsilbe 601 liefert ferner das Verschiebungsfeld
D. Durch Addieren der Verschiebung D der Adreßsilbe 601 und des OFFSET des Basisregisters 602 wird eine
relative Segmentadresse SRA erzeugt. Die Basiselemente der effektiven Adresse umfassen die Basis des
Segments, welches durch die Segmentnummer SEG und die relative Segmentadresse bestimmt sind, sowie einen
Index (falls überhaupt) im Indexregister 602. Bei einer anderen Ausführungsform ist der Index aus dem Indexregister
602 nicht Teil der effektiven Adresse, sondern wird gemäß dem strichpunktiertem Pfeil 621 der absoluten
Adresse 608 zugeleitet
Das Format der effektiven Adresse ergibt sich aus den F i g. 2 J und 2K. In dieses Format ist ein zusätzliches Basiselement nämlich die effektive Adreßringnummer EAR eingeschlossen. Diese stellt eine Schutzinformation dar, die die Zugriffsmöglichkeit zum Speicher bestimmt Sie liegt zwischen Null und Drei und führt zu einer Datenverarbeitung innerhalb von vier Privilegringen unterschiedlichen Grades (vgl. DE-PS 24 58 065). Das Bit-Feld zwischen den Bits Null und Eins hat keine Bedeutung für die effektive Adresse, sondern entspricht dem TAG-FeId des Datendescriptors. Das Feld STN der Segmenttabellennummer bestimmt eine von 15 dem Prozeß zugeordneten Segmenttabeilen. Das Segmenttabellen-Eingangsfeld STE gibt eine bestimmte Eingangsstelle innerhalb des Segments an, welches einen Segmentdescriptor enthält und ein bestimmtes Segment bezeichnet Das Relativsegment-Adressenfeld SRA stellt eine 16 oder 22 Bit lange positive Zahl dar, die die Anzahl des Bytes von der Basis des Segments bis zum ersten Byte des Operanden angibt Für ein großes Segment (Segment Null bis Sechs) kann die relative Seg-
Das Format der effektiven Adresse ergibt sich aus den F i g. 2 J und 2K. In dieses Format ist ein zusätzliches Basiselement nämlich die effektive Adreßringnummer EAR eingeschlossen. Diese stellt eine Schutzinformation dar, die die Zugriffsmöglichkeit zum Speicher bestimmt Sie liegt zwischen Null und Drei und führt zu einer Datenverarbeitung innerhalb von vier Privilegringen unterschiedlichen Grades (vgl. DE-PS 24 58 065). Das Bit-Feld zwischen den Bits Null und Eins hat keine Bedeutung für die effektive Adresse, sondern entspricht dem TAG-FeId des Datendescriptors. Das Feld STN der Segmenttabellennummer bestimmt eine von 15 dem Prozeß zugeordneten Segmenttabeilen. Das Segmenttabellen-Eingangsfeld STE gibt eine bestimmte Eingangsstelle innerhalb des Segments an, welches einen Segmentdescriptor enthält und ein bestimmtes Segment bezeichnet Das Relativsegment-Adressenfeld SRA stellt eine 16 oder 22 Bit lange positive Zahl dar, die die Anzahl des Bytes von der Basis des Segments bis zum ersten Byte des Operanden angibt Für ein großes Segment (Segment Null bis Sechs) kann die relative Seg-
mentnummer zwischen 0 bis (222— 1) liegen. Bei kleinen
Segmenten (Segmente Acht bis Fünfzehn) liegt die relative Segmentadresse zwischen 0 und (216— 1). Das Effektivadressen-Bit-OFFSET-Feld
EBO besteht nur, wenn der Operand im Speicher eine Bit-Zeichenfolge ist Die der Adressenentwicklung dienende Hardware 607 erhält
die absolute Adresse des durch die Basisadresse des Segmentdescriptors 605 bezeichneten Segmentanfangs,
wobei der Segmentdescriptor seinerseits durch die Segmentnummer SEG gekennzeichnet ist Sie addiert die
Basisadresse zur relativen Segmentadresse SRA und erzeugt auf diese Weise eine absolute Adresse 608.
In F i g. 5 beschreiben die Schritte 500,501,502,504
und 505 die Entwicklung einer effektiven Adresse mit einer direkten Silbe. Die Schritte 500,501, 503 und 505
beschreiben die zweite Methode für die Entwicklung einer effektiven Adresse unter Verwendung einer direkten
indizierten Adreßsilbe. Die Entwicklung einer effektiven Adresse aus einer direkten indizierten Adreßsilbe,
d. h. wenn das Indirektadressierungs-Bit IND in den F i g. 2H und 21 gleich »0« und das Index-Bit IDX gleich
»1« und ein kurzes Verschiebungsfeld vorhanden ist, erfolgt in der gleichen Weise wie die Entwicklung aus
einer direkten Adreßsilbe, jedoch mit einer Ausnahme: Die relative Segmentadresse SRA wird durch Addieren
des Verschiebefeldes der Adreßsilbe 601 in F i g. 6, des OFFSET-Feldes im Basisregister 602 und des Inhalts
des durch das Indexregisterfeld IXR der Adreßsilbe benannten Indexregisters 603 entwickelt.
Bei der Entwicklung der indirekten oder der indirekten indizierten effektiven Adresse erfolgt der Zugriff zu
einem Operanden über eine oder zwei Ebenen indirekter Adressierung, ά. h. nach der Erzeugung einer absoluten
Adresse aus der ersten effektiven Adresse wird ein Datendescriptor abgerufen, aus dem eine andere effektive
Adresse entwickelt wird, ehe die Entwicklung der endgültigen absoluten Adresse erfolgt, die zum Abruf
des Operanden dient Es gibt zwei Arten der Entwicklung indirekter und indirekter indizierter Adressen: Die
eine steht in einer indirekten Adressierung ITB der Basis, wobei ein Datendescriptor vom Format 200C in
F i g. 2C abgerufen wird, und die andere in der indirekten Adressierung ITS eines Segments, wobei ein Descriptor
vom Format 200D in F i g. 2D abgerufen wird.
Die F i g. 2C bis 2E zeigen verschiedene Arten von Datendescriptoren. In Fig.2C ist ein ITB-Datendescriptor
für die indirekte Adressierung der Basis, während die F i g. 2D und 2E ITS-Datendescriptoren für die
indirekte Adressierung des Segments wiedergeben. Ein weiteres Format gemäß F i g. 2CDE stellt einen erweiterten
Datendescriptor dar und kann den anderen Datendescriptoren an der Bit-Stelle 3L zugeführt werden.
Es gibt auch zwei verschiedene Formate des ITS-Datendescriptors, von denen das eine gemäß Fig.2D zum
Bezeichnen einer Segmenttabellennummer 0 bis 6 in den großen Segmenten dient, während das Format des
Datendescriptors gemäß F i g. 2E zur Bezeichnung der Segmenttabellennummer STN 8 bis 15 in der Maschine
dient, die zur Benennung kleinerer Segmente verwendet werden. Ein Datendescriptor kann auch Operanden bezeichnen,
statt einen anderen Datendescriptor oder einen Segmentdescriptor.
Die Mindestgröße eines Datendescriptors beträgt vier Bytes. Der Speicherplatz des Datendescriptors wird
durch die Adresse des am weitesten links stehenden Bytes bestimmt, das irgendeine Byte-Adresse sein kann.
Der Datendescriptor bestimmt Adressen im Speicher entweder durch indirekte Basisadressierung ITB oder
durch indirekte Segmentadressierung ITS. Die Basisadressierung ITB ist gegeben, wenn die Bits 4 bis 7 der
obengenannten Formate 200Cbis 200Fgleich 0111 sind.
Eine indirekte Segmentadressierung wird festgestellt,
wenn die Bits 4 bis 7 des Datendescriptor-Formats von 0111 verschieden sind. Der ITS-Descriptor bezeichnet
eine Segmentnummer SEG, bestehend aus einer Segmenttabellennummer STN und einer Segmenttabellen-Eingangsnummer
STE, welche für die Bildung der effektiven Adresse zu benutzen sind. Der ITB-Descriptor
entspricht einer Adressensilbe, welche über das Datenbasisregister in eine effektive Adresse umgeformt wird.
In den Fig.2C bis 2E bezeichnet das TAG-FeId die
Art des Descriptors wie folgt:
00 bedeutet den normalen direkten Descriptor, welcher auf Daten hinweist;
01 ist der erweiterte direkte Datendescriptor, worin der Descriptor auf Daten hinweist;
10 ist der indirekte Datendescriptor, wobei der Descriptor auf einen anderen Descriptor hinweist;
11 bedeutet eine Fehleranzeige.
Das DRN-FeId bezeichnet die Ringnummer, zu der der betreffende Descriptor Zugang hat. STN bezeichnet
die von jenem Descriptor angewählte Segmenttabellennummer,
wenn die Bits 4 bis 7 seines Formats jede andere Zahl außer Olli haben. Diese Segmenttabelleneingangsnummer
STE liegt üblicherweise zwischen 0 und 3, d. h. bezieht sich auf sehr große Segmente, wenn STN
zwischen 0 und 6 liegt (Format 200D), während bei kleineren Segmenten, d. h. für STN zwischen 8 und 15 STE
zwischen 0 und 254 liegt (Format 2O0E). Die Segmentta-
!5 beüennummer STN und die Segmenttabellen-Eingangsnummer
STE bilden zusammen die Segmentnummer SEG. Das Datendescriptorformat 200D beschreibt also
vier Segmente, welche die Segmentnummern SEG 0 bis 4 in der Maschine kennzeichnen, während der Datendescriptor
vom Format 200£ 256 Segmente beschreibt, welche in der Maschine die Nummern SEG 0 bis 255
haben, also eine große Anzahl kleiner Segmente darstellen. Die Verschiebung DlSP bezeichnet die Byte-Adresse
eines Segmentwortes, welches durch eine Segmentnummer SEG gekennzeichnet ist. Als Beispiel hierfür
würde bei einem Descriptorformat 200D oder 200E,
falls STN die Nummer 5 und STE die Nummer 7 sowie DISP die Nummer 4 enthielte, ein Zugriff zum vierten
Byte eines Wortes, in dem durch den siebenten Descriptor in der Segmenttabelle 5 bezeichneten Segment erfolgen
sollen.
Ein ITB-Descriptor ist eine Adressensilbe, welche über ein Datenbasisregister in eine effektive Adresse
entwickelt wird. Ein ITS-Descriptor stellt eine effektive Adresse dar, die zur Entwicklung einer absoluten Adresse
dient. Bei der Bildung einer effektiven Adresse entweder von einem ITB oder einem ITS-Descriptor wird
zunächst überprüft, ob nicht eine zweite Stufe indirekter Adressierung erforderlich ist. 1st eine solche zweite Stufe
nicht nötig, so wird überprüft, ob das Index-Bit in der Adreßsilbe gleich Eins ist. Trifft dies zu, so wird der
Inhalt des durch die Adreßsilbe bestimmten Indexregister der Adresse angehängt. Ist jedoch eine zweite Stufe
indirekter Adressierung nötig, so wird sie in der gleichen Weise durchgeführt wie die erste. Während der Bidlung
einer Segmentadresse sind bis zu 16 Schritte oder Ebenen
indirekter Adressierung zulässig. Jede effektive Adresse besteht aus einer Segmentnummer, welche den
Zugriff zu einem bestimmten Speichersegment bestimmt, und der Verschiebung, die für den Zugriff zu
einem bestimmten Speicherplatz innerhalb des Segments zuständig ist Die Segmentnummer besteht, wie
oben erwähnt, aus der Segmenttabellennummer STN und der Segmenttabellen-Eingangsnummer STE, wobei
STN zur Bildung der Segmenttabellenadresse und STE zur Bildung einer Segmentdescriptorenadresse innerhalb
der Tabelle dient Die Segmentnummer wird aus dem Basisregister geholt, welches von der Adreßsilbe
angewählt ist Die Segmentnummer hat entweder 6 oder 12 Bits, je nach dem angewählten Basisregister und
seinem Format, welches entweder dem Format 200F oder 200G entsprechen kann. Das letztgenannte besteht
außer einer 6-Bit-Segmentnummer SEG, die aus einem 4-Bit-Segmenttabelien-Nummernfeld STN und einem
2-Bit-Segmenttabelleneingangsfeid STE zusammengesetzt ist Das 4-Bit-STN-Feld, dessen höchstwertiges Bit
gleich Null ist, ermöglicht den Zugriff zu sieben Segmenttabellen 0 bis 6 (STN gleich 7 ist unzulässig). Das
13 14
2-Bit-SIt-FeId ermöglicht vier Segmentdescriptoren eingesetzt Das Basisregisterfeld BR des Datendescrip-
innerhalb jeder Tabelle oder vier Eingangsstellen zu der tors 710 hätt in diesem Fall den Code 0111, was bedeu-
baren Segmente kann bis zu 4 Megabyte betragen, weil sierung zum Basis ITB-Format enthält (siehe Datende-
ein 22-ßit OFFSET vorgesehen ist Bei Benutzung die- 5 scriptorformat 200C und 200EjI Das Basisregisterfeld
ses Formats kann ein Prozeßzugriff zu achtundzwanzig BR des Datendescriptors 710 weist ferner auf das Da-
4-Megabyte-Scgmenten haben (7 Segmenttabellen, tenbasisregister 704 hin. Der OFFSET des Datenbasis-
4 Segmentdescriptoren pro Tabelle). Das Basisregister- registers 704 und die Verschiebung des Datendescrip-
format 200F ergibt eine 12-Bit-Segraentnummer SEG, tors 710 und, sofern vorhanden, der Index des Indexregi-
bestehend aus einem 4-Bit-STN-Feld und einem 8-Bit 10 sters 706, bilden die relative Segmentadresse SRA 711.
nerhalb jeder Tabelle zugängig. Der Umfang der durch dung der absoluten Adresse 713 desjenigen Operanden
diese Tabellen erreichbaren Segmente kann 64 Kilobyte 15 im Hauptspeicher dient, zu dem Zugriff erfolgen solL
betragen, weil ein 16-Bit-OFFSET vorgesehen ist Die- Die Schritte 506 bis 509,511,515 bis 517 und 512 bis
ses Format ermöglicht Zugriff zu 2048 Segmenten von 514 in F i g. 5 sowie F i g. 8 zeigen das Verfahren und die
je 64 Kilobyte (8 Segmenttabellen, 256 Segmentdescrip- Hardware zur indirekten Adressenbildung gemäß der
toren pro Tabelle). Natürlich kann auch eine andere Methode der indirekten Adressierung eines Segments
rung. Die F i g. 6 und 7 zeigen hierfür die erforderliche 25 bzw. 20Oi? des Datendescriptors 810, gezeigt in den
ten Segmentadressen. Die Bildung einer relativen Seg- scriptor710.
mentadresse SRA 606,711 erfolgt ähnlich wie bei direk- Nachdem die Elemente der effektiven Segmentadrester Segmentadressierung, und die effektive Segment- se zur Verfügung stehen, kann nunmehr die absolute
adresse benutzt die relative Segmentadresse SRA 606, 30 Adresse des Operanden oder Descriptors gebildet wer-711 und die Segmenttabellennummer sowie die Seg- den. Die F i g. 9 und 10 zeigen eine Ausführungsform des
menttabellen-Eingangsnummer der Basisregister 602, Verfahrens und der Hardware für die Entwicklung einer
701 (siehe Formate 200/ und 200/Q. Später wird noch absoluten Adresse. Hierbei wird der Prozeßsteuerblock
die Bildung einer absoluten Adresse 608, 709 beschrie- 1002 über J. P. Tabellen erreicht Diese stellen eine
ben werden, die der Entwicklung der endgültigen effek- 3s Sammlung logischer Adressen für die Ermittlung eines
tiven Adresse dient, welche ihrerseits für die Bildung der dem Prozeß zugeordneten ProzeßsteuerblocL. dar. Unendgültigen absoluten, den Zugriff zum Operanden be- ter einer logischen Adresse ist hierbei ein Element des
wirkenden Adresse benutzt wird. Prozeßadreßraums zu verstehen, beispielsweise die
die Adressensilbe 700 in ihrem Indirektadressierungs- 40 höherwertige Bit der Segmenttabellennummer STN der
feld IND eine »1« aufweist, was auf indirekte Adressie- effektiven Adresse 1001 wird für den Zugriff zu einem
rung hinweist Das Basisregisterfeld BR der Adressensil- der beiden Adreßraumworte 1003 oder 1004 benutzt
be 700 weist auf das Basisregister 701 hin, welches sei- Das angewählte Adreßraumwort enthält die Basisadres-
nerseits eine Segmentnummer SEG liefert, die ihrerseits se eines Segmenttabellenwortfeldes 1005. Der Inhalt
eine Segmenttabelleneingangsstelle der Segmentdes- 45 des Adreßraumwortes wird den 3 Bits niedriger Ord-
criptoren 704 bereitstellt, die sich in der Segmenttabelle nung der Segmenttabellennummer STN der effektiver
702 befinden. Das Index-Bit IDX der Adreßsilbe 700 ist Adresse 1001 über den Addierer 1011 hinzugefügt, wobei diesem Beispiel auf »0« gesetzt und gibt an, daß kein durch die Adresse eines Segmenttabellenwortes 1006
Indexregister zu benutzen ist. Wäre das Index-Bit IDX innerhalb des Segmenttabellen-Wortfeldes 1005 entgleich »1«, so würde eine indirekte indizierte Adressie- 50 steht. Jedes Segmenttabellenwort 1006 enthält die absolving erfolgen müssen und über die gestrichelte Leitung lute Anfangsadresse einer Segmenttabelle 1007, die den
706a das Indexregister 706 für die Bildung der endgülti- Segmentdescriptor 1008 enthält Durch Auslesen des
gen relativen Segmentadresse herangezogen werden. Segmenttabellenwortes 1006 und Hinzufügen der Seg-Die relative Segmentadresse SRA "37 wird aus dem menttabellen-Eingangsnummer STE der effektiven
OFFSET des Basisregisters 701 gebildet der auf das 55 Adresse 1001 mittels des Addierers 1012 entsteht die
erste Byte eines Wortes innerhalb des Segments hin- Adresse eines bestimmten Segmentdescriptors 1008 ir
weist, auf dessen Basisspeicherplatz das Basisfeld des der Segmenttabelle 1007. Wie zuvor beschrieben wurde
Segmentdescriptors gerichtet ist; und zwar desjenigen enthält der Segmentdescriptor Information über ein zu-Segmentdescriptors, auf den STN und STE sowie sie gehöriges Speichersegment einschließlich der Start
Verschiebung der Adreßsilbe 700 hinweisen, die auf das eo oder Basisadresse des Segments und der Länge des Seg
Byte eines Wortes gerichtet ist. Die relative Segment- ments. Somit wird durch Hinzufügen der absoluter
adresse SRA zusammen mit der Segmentnummer bil- Startadresse des Segments und des Verschiebungs-Bit!
den in diesem Fall die Elemente der effektiven Segment- der relativen Segmentadresse der effektiven Adress«
adresse, weil keine Indizierung erforderlich war. Fände 101 die gewünschte Hauptspeicheradresse 1010 erhal
eine Indizierung statt, so würde die effektive Adresse 65 ten. Diese kann nur mittels Zugriff zu den Segmentta
den Index enthalten. Diese effektive Segmentadresse bellen der absoluten Hauptspeicheradresse zugeordnei
wird in später noch zu beschreibender Weise für die werden. Da jedoch für die Entwicklung der Basisadresse
Bildung einer absoluten Datendescripioradresse 709 des in dem Segrnentdescriptor enthaltenen Speicher-
15 16
segments eine Anzahl von Speicherzugriffen erforder- werden. Jedes Register ist 36 Bits groß (32 Daten-Bits,
lieh ist, speichert üblicherweise eine Assoziativspeicher 4 Paritäts-Bits). Die Registerdatei ist mit einer diskreten
in der Zentraleinheit CPU (vgL F i g. 11) die acht zuletzt Logik versehen und derart strukturiert, daß gleichzeitig
benutzten Segmentdescriptoren zusammen mit ihren in jedes jedes der Register eingegeben und aus drei der
Segmentnummern. Bei der Slidung der absoluten 5 Register ausgespeichert werden kann. Die ersten acht
Adresse wird die Segmentnummer in der effektiven Register BRO bis BR7 der Datei sind Basisregister und
Adresse 1001 mit der Segmentnummer im Assoziativ- sind für den Programmierer zugängig. Die letzten vier
speicher verglichen, und wenn eine Übereinstimmung Register UW4 bis UW7 sind Arbeitsregister, welche nur
(Treffer) ermittelt wird, wird der Segmentdescriptor im der Hardware zugängig sind (nur Internbetrieb). Die in
Assoziativspeicher für die Adressenbildung herangezo- io die Register einzuspeichernden Daten werden aus ve--
gen. Die Verwendung eines Assoziativspeichers für die schiedenen Quellen durch einen UWB-Datenselektor
Adressenentwicklung ist Gegenstand der DE-OS 1203 ausgewählt, der weiter nichts zu sein braucht als
23 39 741. em Multiplexer, während das bestimmte Register, in
Wird jedoch keine Übereinstimmung festgestellt, so welches eingelesen werden soll, durch eine Schreib/
wird der Segmentdescriptor 1008 in der üblichen Weise 15 Steuerlogik 1203/1 (Fig. 12B) bestimmt wird, die Teil
aus dem Speicher abgerufen und zusammen mit seiner des Datenselektors 1203 ist. Das Auslesen aus der Regi-Segmentnummer
für spätere Verwendung in den Asso- sterdatei wird über die Selektoren 1215 und UBS 1216
ziativspeicher 1206 eingegeben. Bei dieser Erläuterung bewerkstelligt, die ebenfalls Multiplexer sein können,
der Bildung absoluter Adressen ist angenommen, daß Die Asynchronlogik des Basisregisterselektors 1208
der Segmentdescriptor ein direkter Segmentdescriptor 20 wählt eines der ersten acht Basisregister über den Seist
Es kann sich jedoch auch um einen indirekten Des- lektor UBS 1216 aus, während das Adreßregister
criptor handeln, der die absolute Adresse eines zweiten UK 1211 die gleiche Funktion für die letzten acht (4 Ba-Descriptors
enthält Die Adresse des zweiten Descrip- sis- und 4 Arbeits-)Register über den Selektor USB1215
tors wird dann zum Abruf eines zweiten Datendescrip- erfüllt Ein Addierer UBD 1219 summiert den Inhalt des
tors benutzt, der die absolute Startadresse des Seg- 25 Selektors USB 1215 und des Basis-OFFSET-Registers
ments enthält UN 1221. Der Bestimmungsplatz des Addiereraus-
Anhand von F i g. 11 wird nachstehend die Entwick- gangssignals wird durch die Art der durchgeführten
lung einer effektiven und absoluten Segmentadresse un- Operation festgelegt. Sobald eine absolute Adresse ge-
ter Verwendung eines Assoziators oder inhaltsadres- bildet ist, wird sie über das UA-Register 1220 der
sierbaren Speichers 1106 erläutert (vgl. auch DT-OS 30 Hauptspeicher-Schnittstelleneinheit MIU zugeleitet.
23 39 741). Die Basisregister BRO bis BR7 werden durch Das Grenzregister UL 1227 enthält eine Adresse, die die
den Inhalt der UG und UH Register 1103 und 1104 über Grenze oder das obere Ende der absoluten Adresse im
den UWB Daten-Selektor 1203 (vgl. Fig. 12A) adres- UA-Register 1220 darstellt. Diese beiden Adressen wer-
siert Die Register 1103 und 1104 enthalten die Basisre- den im Grenzübeiprüfer ULC 1229 verglichen, de· ei-
gisteradressen von einem Befehle, einem Mikrobefehl 35 nen Prüfanzeiger erzeugt, wenn die Inhalte übereinstim-
oder sonstwie. Die Segmentnummer SEG der Basisregi- men, bzw. UA <
UL ist.
steradresse wird über den UBS-Sektor 1110 in das US- Der Adressenassoziator 1222 enthält die Segment-Register
1105 eingegeben und der OFFSET des Basisre- nummern STN/STE von bis zu 16 Segmentdescriptoren,
gisteradresse über den UBS-Selektor 1110 in das UN- welche im Assoziatorpuffer 1226 untergebracht sind. Je-Register
1107, von wo aus es in den UBD-Addierer 1108 40 der der 16 Speicherplätze im Adressenassoziator 1222
übertragen und der Verschiebung aus der Adreßsilbe besteht aus 12 Daten-Bits und 4 Bits für Steuer- und
hinzugefügt werden kann. Die Summe aus Verschie- Prüfzwecke. Während der Adressenbildung wird die
bung und OFFSET wird dann in das 1-Arbeitsregister Nummer des gewünschten Segments in das US-Regi-UW
1101 eingegeben. Der UAS Assoziativspeicher ster 1217 geladen. Der Inhalt dieses Registers wird ei-
1106 wird abgefragt um festzustellen, ob sich die Adres- 45 nem simultanen Parallelvergleich mit den Segmentnumse
im US-Register 1105 im Assoziativspeicher befindet, mern aller 16 Adreßassoziator-Speicherplätzen unter-
und falls dies zutrifft, wird die Segmentbasisadresse aus worfen. Dieser Vergleich benötigt weniger als einen Zydem
Assoziativspeicher UAS 1106 in das UN-Register klus, d. h. weniger als 510 ns. Zeigt der Vergleich eine
1105) eingespeichert Sodann wird das den OFFSET und Übereinstimmung (Treffer), so werden die Bits des
die Verschiebung enthaltende UW-Register abgefragt 50 Adressenassoziatorwortes durch einen Trefferdecoder/
und sein Inhalt in den UBD-Addierer 1108 überführt Codierer 1223 in einen 4-Bit-Code decodiert, der seinerund
dort an die im UN-Register 1107 gespeicherte Seg- seits dasjenige Wort im Assoziatorpuffer auswählt, welmentbasisadresse
angehängt. Das Ergebnis dieser Addi- ches den Segmentdescriptor enthält. Da eine gegebene
tion ist die absolute Adresse der Adressensilbe. Sie kann Segmentnummer nur einmal im Adressenassoziator
dem UA-Register 1109 für die Adressierung des Haupt- 55 auftreten sollte, führt ein Mehrfachtreffer zu einer
Speichers zugeführt werden. Die absolute Adresse kann Überprüfung mittels des Trefferdecoders. Besteht keine
auch im 2-Arbeitsregister UW gespeichert werden. Ist Übereinstimmung (kein Treffer), so wird der Descriptor
die Information im UAS-Assoziativspeicher 1106 nicht für das gewünschte Segment über die Sammelschiene
verfügbar, so wird die Segmentnummer benutzt, um den 1223 aus dem Hauptspeicher abgerufen und über das
Segmentdescriptor aus dem Hauptspeicher abzurufen. 60 UY-Register 1228 in den Assoziatorpuffer eingegeben.
Der Segmentdescriptor kann dann im Assoziativspei- Das UY-Register 1228 wird zum Lesen und Schreiben
eher 1106 zusammen mit einem die Übereinstimmung im Assoziatorpuffer verwendet. Da dieser die Descripanzeigenden
Treffer-Bit für spätere Benutzung abgelegt toren für die 16 zuletzt benutzten Segmente enthält und
werden. da die meisten Programme nur wenige Segmente benut-F i g. 12A zeigt nähere Einzelheiten der Hardware ge- 65 zen, können mehr als 90% aller Adressen über diese
maß Fig. 11. Eine Registerdatei 1204 umfaßt vier Ar- Hochgeschwindigkeitseinheit entwickelt werden,
beitsregister UW4 bis UW7 sowie acht Basisregister Die verschiedenen Zyklen zur Bildung einer ausge-BRO bis BR7, die bei der Adressenbildung eingesetzt wählten Adresse werden nachfolgend anhand der
beitsregister UW4 bis UW7 sowie acht Basisregister Die verschiedenen Zyklen zur Bildung einer ausge-BRO bis BR7, die bei der Adressenbildung eingesetzt wählten Adresse werden nachfolgend anhand der
17 18
Fig. 12Bbis 12Eerläutert SET-Register UN1221 ebenfalls dem Addierer
1219 zugeleitet und dort der relativen Segment-Zyklus 1 (Hardware-Status gemäß F i g. 12B) adresse hinzugefügt, wodurch die absolute Adresse
a. Das Verschiebungsfeld des Befehls wird, gesteuert entsteht
durch die Schreib/Steuerlogik 1203Λ über den Da- 5 c Die absolute Adresse wird in aas UA Register 1220
tenselektor 1203, einem Arbeitsregister 1204 züge- übertragen.
führt Am Ende des 3. Zyklus ergibt sich somit folgender Zu-
b. Die Basisregisteradresse wird zum Basisregisterse- stand:
lektorUBR 1209 übertragen, welcher das zum Aus- 1. Die absolute Adresse liegt im UA-Register 1220.
lesen geeignete Basisregister auswählt 10 2. Die Grenze für die Adresse befindet sich UL-
c. Das Basisregister-OFFSET-Feld wird in das Basis- Grenzregister 1227.
OFFSET-Register übertragen, das während des
OFFSET-Register übertragen, das während des
Zyklus 2 benutzt wird. Zyklus 4 (Hardware-Status gemäß F i g. 12E)
d. STN und STE, d. h. die Segmentnumnwr SEG wer- a. Die absolute Adresse wird an die nicht dargestellte
den gleichzeitig in das US-Register 1217 (Vtrriege- 15 Hauptspeicher-Schiüttstelleneinheit MIU und den
längsregister) eingegeben. Grenzüberprüfer ULC1229 weitergegeben; Der
e. Während des Einspeicherns in das US-Register Hauptspeicher-Schnittstellenzyklus beginnt
1217 beginnt die gleichzeitige Abfrage aller 16 b. Die Grenzinformation im Grenzregister 1227 wird
Adreßassoziator-Speicherplätze. dem Grenzüberprüfer 1129 zugeführt und dort mit
Am Ende des Zyklus 1 ergibt sich somit folgender Zu- 20 der absoluten Adresse verglichen. Überschreitet
stand: die Adresse den Grenzwert, d.h. der Inhalt
1. Das Verschiebefeld des Befehls befindet sich in ei- U.\ > UL, so erscheint ein Obergrenzen-Prüfsignal
nem Arbeitsregister. und der Hauptspeicher-Schnittstellenzyklus gemäß
2. Das Basisregister-OFFSET-Feld befindet sich im (a) wird abgebrochen. Ein solcher Zyklus beginnt in
Basis/OFFSET-Register UN 1221. 25 Erwartung einer gültigen Adresse bereits vor Ab-
3. Der Adressenassoziativspeicher wird abgefragt schluQ der Grenzüberprüfung. Da mehrere Zyklen
für den Speicherzugriff erforderlich sind, kann die
Zyklus 2 (Hardware-Status gemäß F i g. 12C) Operation leicht abgebrochen werden, ehe Daten
a. Das die Verschiebung enthaltende Arbeitsregister zerstört werden. Der Abbruch des Schnittstellenzywird
durch das UK-Register 1211 ausgewählt und 30 klus erfolgt durch Umwandlung in eine Leseoperadie
Verschiebung über den USB-Selektor 1215 in tion, wodurch Änderungen der gespeicherten Daden
Addierer 1219 übertragen. ten verhindert werden.
b. Der OFFSET wird aus dem Basis/OFFSET-Register UN 1221 zum Addierer 1217 übertragen und Die Erfindung zeigt somit ein Adressierverfahren, bei
dort der Verschiebung hinzugefügt 35 welchem der direkte Zugriff entweder in Höhe einem
c. Die Summe von OFFSET und Verschiebung, d. h. einzelnen Prozeß zugeordneter Segmente, oder in der
die relative Segmentadresse wird vom Addierer Ebene der von mehreren Prozessen einer Prozeßgrupüber
den Datenselektor 1203 in ein Arüeitsregister pe gemeinsam benutzten Segmente oder schließlich bei
übertragen. den von allen Prozessen benutzten Segmenten erfolgt
d. Die Abfrage des Adressenassoziativspeichers wird 40 Die Adressierung bei gleichzeitiger Benutzung mehrezu
Ende geführt; da angenommen wurde, daß der rer Prozesse erfolgt durch indirekten Zugriff,
gewünschte Segmentdescriptor sich im Assozitor- Wesentliches Element für die Adressierung ist das puffer 1226 befindet Hegt seine Segmentnummer Segment, wobei ein Adressenraum für den Prozeß defiim Adreßassoziativspeicher 1222 und ein Überein- niert und als Teil der gesteuerten Information des logistimmungszustand (Treffer) ist gegeben. 45 sehen Prozessors eingeschlossen ist Der Adressenraum
gewünschte Segmentdescriptor sich im Assozitor- Wesentliches Element für die Adressierung ist das puffer 1226 befindet Hegt seine Segmentnummer Segment, wobei ein Adressenraum für den Prozeß defiim Adreßassoziativspeicher 1222 und ein Überein- niert und als Teil der gesteuerten Information des logistimmungszustand (Treffer) ist gegeben. 45 sehen Prozessors eingeschlossen ist Der Adressenraum
e. Der Inhalt des Adreßassoziator-Speicherplatzes, in definiert eine vorgegebene Anzahl unterschiedlicher
welchem die Übereinstimmung auftrat, wird dem Segmente, in welchen Befehle Operanden erreichen
Trefferdecoder 1223 zugeleitet, welcher seinerseits können. Innerhalb eines Segments wird der Zugriff
den geeigneten Assoziatorpuffer-Speicherplatz durch relative Anwahl des Segmentanfangs bewerkstelzum
Ausspeichern auswählt. 50 ligt und das Segment während der Adressenbildung be-
f. Die Segmentdescriptorbasis wird in das Basis/ rechnet Jeder Versuch, Information oberhalb einer Seg-OFFSET-Register
UN 1221 übertragen und das mentgrenze zu erreichen, wird durch die Hardware fest-Grenzfeld
in das UL Grenzregister 1227. gestellt und ein Ausnahmesignal erscheint Ein Befehl
Am Ende des 2. Zyklus ergibt sich folgender Zustand: kann einen Operanden entweder direkt oder indirekt
1. Die relative Segmentadresse liegt in einem Arbeits- 55 über einen Datendescriptor erreichen, wobei eine
register. Adreßsilbe im Befehl als Bezugnahme dient und angibt,
2. Die Segmentdescriptorbasis befindet sich im Basis/ ob die Bezugnahme direkt oder indirekt sein soll. Die
OFFSET-Register. Adressensilbe bezeichnet ein Basisregister, das das an-
3. Die Grenze, d. h. die Adresse über welche die abso- zuwählende Segment bestimmt, sowie einen OFFSET
lute Adresse nicht hinausgehen kann, liegt im 60 innerhalb des Segment. Die Adressensilbe enthält ferner
Grenzregister. eine Verschiebung gegenüber dieser genannten Basis.
Die Hardware zur Adressenbildung erhält die absolute
Zyklus 3 (Hardware-Status gemäß F i g. 12D) Adresse vom Beginn des Segments, fügt zu dieser den in
a. Das die relative Segmentadresse SRA enthaltende den Basisregistern bestimmten OFFSET, die durch den
Arbeitsregister wird vom UK-Register 1211 ausge- 65 Befehl definierte Verschiebung und erforderlichenfalls
wählt und die relative Segmentadresse über den den Inhalt eines Indexregisters hinzu, so daß durch diese
USB-Selektor 1215 dem Addierer 1219 zugeleitet. Summierung die gewünschte absolute Adresse entsteht.
b. Die Segmentdescriptorbasis wird vom Basis/OFF-
3egriffsliste
Der Job ist die Hauptarbeitseinhei! bei Stapelverarbeitung.
Er dient der Beschreibung, Planung und Abrechnung der Arbeit, welche der Benutzer
durchführen läßt
Job-Schritt
Eine kieine Einheit bei Stapelverarbeitung. Sie bezeichnet im allgemeinen einen Schritt, welcher in
der Verarbeitung logisch zusammenhängender Vorgänge besteht
10 berechnet, die auf einen Byte-Speicherplatz im
Kernspeicher hinweist
Prozeß-Steuerblock
Jedem Prozeß ist ein Prozeß-Steuerblock PCB zugeordnet
Er enthält die für den zugehörigen Prozeß erforderlichen Informationen einschließlich der
die für den Prozeß zugängigen Segmenttabellen bestimmenden Tabellen.
J. P.-Tabellen Eine Sammlung logischer Adressen für die Feststellung
eines einem Prozeß zugeordneten Prozeßsteuerblocks.
15
20
25
Die kleinste Einheit der vom Benutzer bestimmten Arbeit Innerhalb dieser Arbeitseinheit ist keine für
den Benutzer sichtbare Gleichzeitigkeit von Operationen zulässig.
Programm
Eine Gruppe von einem Programmierer geschriebener Algorithmen, welche die zur Durchführung
eines Jobs oder eines Teils hiervon erforderlichen Prozedurinformationen liefert
Prozeßgruppe
Eine Gruppe zusammengehöriger Prozesse, üblicherweise diejenigen, welche zur Durchführung eines
Job-Schrittes erforderlich sind.
Prozeß
Die gesteuerte Durchführung von Befehlen ohne Gleichzeitigkeit Ihre physikalische Darstellung
und Steuerung werden durch die interne Systembildung oder durch Konvention bestimmt
Prozedur
Eine benannte Software-Funktion oder ein Algorithmus, welcher von einem Rechner ohne Gleichzeitigkeit
durchführbar ist. Ihre physikalische Darstellung und Durchführung wird durch das interne
System oder eine Konvention bestimmt.
Logischer Prozeß Eine Sammlung von Hardware-Quellen und Steuerinformationen
für die Durchführung eines Prozesses.
Adressenraum (Segmentierung) Die Gruppe derjenigen logischen Adressen, welche
die Zentraleinheit CPU während eines bestimmten Prozesses in absolute Adressen umformen kann.
Obwohl ein Prozessor die technische Möglichkeit der Adressierung jeder einzelnen Zelle eines Speichers
hat, ist es erwünscht, den Zugriff auf jene Zellen zu beschränken, welche während der Durchführung
des dem Prozessor zugeordneten Prozesses benutzt werden.
Logische Adresse
Ein Element des Prozeßadressenraums, beispielsweise die Segmentnummer SEG und die Verschiebung
D.
Basisadressenentwicklung
Eine Hardware-Prozedur, die aufgrund einer Anzahl von Adressenelementen eine absolute Adresse
60
65 Hierzu 17 Blatt Zeichnungen
Claims (5)
1. Einrichtung zum Bilden einer absoluten Adresse für einen Operanden in einer Datenverarbeitungsanlage
mit einem Befehlssilbenregister und mit einem Hauptspeicher, der in eine Vielzahl von Segmenten
unterschiedlicher Größe unterteilt ist, wobei die einzelnen Speichersegmente über Segmenttabellen,
die Segmentdeskriptoren mit Segmentlängenangaben enthalten, adressiert werden, gekennzeichnet
durch
a) ein Basisregister (602),
das für jeden Prozeß die Segmenttabeliennummer (STN) der dem Prozeß zugeordneten Segmenttabelle
(604),
eine Hinweisadresse (STE) auf den Segmentdeskriptor (605) relativ zum Segmenttabellenanfang
und eine Offsetadresse aufweist
einen Addierer (606, 607), der die absolute Adresse durch Addition einer in dem jeweiligen Befehlssilbenregister (601) enthaltenen Verschiebung (D), der Offsetadresse des Basisregisters (602) und einer im Segmentdeskriptor (605) enthaltenen Segmentbasisadresse gewinnt.
einen Addierer (606, 607), der die absolute Adresse durch Addition einer in dem jeweiligen Befehlssilbenregister (601) enthaltenen Verschiebung (D), der Offsetadresse des Basisregisters (602) und einer im Segmentdeskriptor (605) enthaltenen Segmentbasisadresse gewinnt.
2. Einrichtung nach Anspruch 1, gekennzeichnet durch
c) ein Indexregister (603),
welches durch ein im Befehlssilbenregister (601) enthaltenes Indexregisierfeld (IXR) anwählbar
ist, sowie
d) eine Verbindung des Indexregisters mit einem Eingang des Addierers (606,607).
3. Einrichtung nach Anspruch 1, gekennzeichnet durch
e) einen zweiten Addierer (711,712). der eine indirekt
erzeugte absolute Adresse durch Addition der vom ersten Addierer (606, 607) gelieferten
absoluten Adresse (608), einer in einem Datendeskriptorregister (710) enthaltenen Verschiebung
(D), der Offsetadresse eines zweiten Basisregisters (704) und einer im Segmentdeskriptor
(705.1) einer zweiten Segmenttabelle (705) enthaltenen Segmentbasisadresse gewinnt.
4. Einrichtung nach Anspruch 1 oder 2, gekennzeichnet durch
f) einen zweiten Addierer (811,812), der eine indirekt
erzeugte Absolutadresse durch Addition der von einem ersten Addierer (606,607) gelieferten
absoluten Adresse (608), einer in einem Datendeskriptorregister (810) enthaltenen Verschiebung
(D) und einer in Segmentdeskriptor (805) einer zweiten Segmenttabelle (804) enthaltenen
Segmentbasisadresse gewinnt.
5. Einrichtung nach Anspruch 2 und Anspruch 3 oder 4, dadurch gekennzeichnet, daß das Indexregister
(706,806) mit einem Eingang des zweiten Addierers (711,712; 811,812) verbunden ist.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US05/425,356 US3938096A (en) | 1973-12-17 | 1973-12-17 | Apparatus for developing an address of a segment within main memory and an absolute address of an operand within the segment |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE2459006A1 DE2459006A1 (de) | 1975-07-03 |
| DE2459006C2 true DE2459006C2 (de) | 1986-02-13 |
Family
ID=23686198
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE2459006A Expired DE2459006C2 (de) | 1973-12-17 | 1974-12-13 | Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage |
Country Status (8)
| Country | Link |
|---|---|
| US (1) | US3938096A (de) |
| JP (1) | JPS5757781B2 (de) |
| BE (1) | BE823436A (de) |
| CA (1) | CA1037158A (de) |
| DE (1) | DE2459006C2 (de) |
| FR (2) | FR2254827B1 (de) |
| GB (1) | GB1492067A (de) |
| IT (1) | IT1024461B (de) |
Families Citing this family (68)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2230258A5 (de) * | 1973-05-16 | 1974-12-13 | Honeywell Bull Soc Ind | |
| FR2253421A5 (de) * | 1973-11-30 | 1975-06-27 | Honeywell Bull Soc Ind | |
| US4300192A (en) * | 1974-04-18 | 1981-11-10 | Honeywell Information Systems Inc. | Method and means for storing and accessing information in a shared access multiprogrammed data processing system |
| JPS5148937A (en) * | 1974-10-25 | 1976-04-27 | Fujitsu Ltd | Kiokusochi niokeru junjoseigyohoshiki |
| JPS5171648A (de) * | 1974-12-18 | 1976-06-21 | Panafacom Ltd | |
| US4024508A (en) * | 1975-06-19 | 1977-05-17 | Honeywell Information Systems, Inc. | Database instruction find serial |
| GB1528062A (en) * | 1975-06-19 | 1978-10-11 | Honeywell Inf Systems | Data processing systems |
| US4025901A (en) * | 1975-06-19 | 1977-05-24 | Honeywell Information Systems, Inc. | Database instruction find owner |
| US4044334A (en) * | 1975-06-19 | 1977-08-23 | Honeywell Information Systems, Inc. | Database instruction unload |
| US4042912A (en) * | 1975-06-19 | 1977-08-16 | Honeywell Information Systems Inc. | Database set condition test instruction |
| JPS6020767B2 (ja) * | 1975-06-24 | 1985-05-23 | 日本電気株式会社 | 情報探索機能を有する電子計算機 |
| US4173783A (en) * | 1975-06-30 | 1979-11-06 | Honeywell Information Systems, Inc. | Method of accessing paged memory by an input-output unit |
| US4079451A (en) * | 1976-04-07 | 1978-03-14 | Honeywell Information Systems Inc. | Word, byte and bit indexed addressing in a data processing system |
| US4042911A (en) * | 1976-04-30 | 1977-08-16 | International Business Machines Corporation | Outer and asynchronous storage extension system |
| US4079453A (en) * | 1976-08-20 | 1978-03-14 | Honeywell Information Systems Inc. | Method and apparatus to test address formulation in an advanced computer system |
| US4092715A (en) * | 1976-09-22 | 1978-05-30 | Honeywell Information Systems Inc. | Input-output unit having extended addressing capability |
| US4084226A (en) * | 1976-09-24 | 1978-04-11 | Sperry Rand Corporation | Virtual address translator |
| JPS5815814B2 (ja) * | 1976-11-05 | 1983-03-28 | 横河電機株式会社 | マルチプロセサ方式のデ−タ処理装置 |
| US4093986A (en) * | 1976-12-27 | 1978-06-06 | International Business Machines Corporation | Address translation with storage protection |
| JPS5464933A (en) * | 1977-11-01 | 1979-05-25 | Panafacom Ltd | Main storage extension system |
| GB2008821B (en) * | 1977-11-04 | 1982-01-13 | Sperry Rand Corp | Digital computers |
| US4363091A (en) * | 1978-01-31 | 1982-12-07 | Intel Corporation | Extended address, single and multiple bit microprocessor |
| US4340932A (en) * | 1978-05-17 | 1982-07-20 | Harris Corporation | Dual mapping memory expansion unit |
| NL7807314A (nl) * | 1978-07-06 | 1980-01-08 | Philips Nv | Inrichting voor het vergroten van de lengte van een logisch computeradres. |
| US4218743A (en) * | 1978-07-17 | 1980-08-19 | International Business Machines Corporation | Address translation apparatus |
| US4388685A (en) * | 1978-08-04 | 1983-06-14 | Digital Equipment Corporation | Central processor with apparatus for extended virtual addressing |
| US4251860A (en) * | 1978-10-23 | 1981-02-17 | International Business Machines Corporation | Virtual addressing apparatus employing separate data paths for segment and offset portions of a virtual address and utilizing only the offset portion to calculate virtual address |
| US4215402A (en) * | 1978-10-23 | 1980-07-29 | International Business Machines Corporation | Hash index table hash generator apparatus |
| FR2445989B1 (fr) * | 1979-01-02 | 1987-06-26 | Honeywell Inf Systems | Dispositif de determination de priorite et d'interruption d'un systeme de traitement de donnees |
| US4255786A (en) * | 1979-01-02 | 1981-03-10 | Honeywell Information Systems Inc. | Multi-way vectored interrupt capability |
| FR2445988A1 (fr) * | 1979-01-02 | 1980-08-01 | Honeywell Inf Systems | Dispositif d'adressage perfectionne d'un systeme de traitement de donnees |
| US4290104A (en) * | 1979-01-02 | 1981-09-15 | Honeywell Information Systems Inc. | Computer system having a paging apparatus for mapping virtual addresses to real addresses for a memory of a multiline communications controller |
| US4507781A (en) * | 1980-03-14 | 1985-03-26 | Ibm Corporation | Time domain multiple access broadcasting, multipoint, and conferencing communication apparatus and method |
| US4355355A (en) * | 1980-03-19 | 1982-10-19 | International Business Machines Corp. | Address generating mechanism for multiple virtual spaces |
| DE3177242D1 (de) * | 1980-04-25 | 1991-04-11 | Data General Corp | Datenverarbeitungssystem. |
| JPS6017130B2 (ja) * | 1980-06-06 | 1985-05-01 | 日本電気株式会社 | アドレス制御装置 |
| JPS5734251A (en) * | 1980-08-07 | 1982-02-24 | Toshiba Corp | Address conversion and generating system |
| JPS5750052A (en) * | 1980-09-09 | 1982-03-24 | Toshiba Corp | Address extension system |
| US4521846A (en) * | 1981-02-20 | 1985-06-04 | International Business Machines Corporation | Mechanism for accessing multiple virtual address spaces |
| US4574349A (en) * | 1981-03-30 | 1986-03-04 | International Business Machines Corp. | Apparatus for addressing a larger number of instruction addressable central processor registers than can be identified by a program instruction |
| US4432053A (en) * | 1981-06-29 | 1984-02-14 | Burroughs Corporation | Address generating apparatus and method |
| US4453212A (en) * | 1981-07-13 | 1984-06-05 | Burroughs Corporation | Extended address generating apparatus and method |
| US4428045A (en) | 1981-09-11 | 1984-01-24 | Data General Corporation | Apparatus for specifying and resolving addresses of operands in a digital data processing system |
| US4594682A (en) * | 1982-12-22 | 1986-06-10 | Ibm Corporation | Vector processing |
| US4607346A (en) * | 1983-03-28 | 1986-08-19 | International Business Machines Corporation | Apparatus and method for placing data on a partitioned direct access storage device |
| JPS6051957A (ja) * | 1983-08-31 | 1985-03-23 | Toshiba Corp | マイクロプロセツサシステム |
| EP0136882B1 (de) * | 1983-10-05 | 1988-03-30 | Nippon Gakki Seizo Kabushiki Kaisha | Datenverarbeitungskreis für ein digitales Audiosystem |
| US4757438A (en) * | 1984-07-12 | 1988-07-12 | Texas Instruments Incorporated | Computer system enabling automatic memory management operations |
| US4984151A (en) * | 1985-03-01 | 1991-01-08 | Advanced Micro Devices, Inc. | Flexible, next-address generation microprogram sequencer |
| US4972338A (en) * | 1985-06-13 | 1990-11-20 | Intel Corporation | Memory management for microprocessor system |
| US5056003A (en) * | 1985-06-17 | 1991-10-08 | International Business Machines Corporation | Distributed data management mechanism |
| US5218713A (en) * | 1985-06-17 | 1993-06-08 | International Business Machines Corporation | Distributed data management mechanism for handling a data stream |
| JPH0658649B2 (ja) * | 1985-10-28 | 1994-08-03 | 株式会社日立製作所 | 仮想記憶装置における領域管理方法 |
| US5561429A (en) * | 1986-04-16 | 1996-10-01 | Raytheon Company | Content limit addressable memory |
| US5053951A (en) * | 1986-12-23 | 1991-10-01 | Bull Hn Information Systems Inc. | Segment descriptor unit for performing static and dynamic address translation operations |
| KR0120930B1 (ko) * | 1987-12-01 | 1997-10-29 | 미다 가쓰시게 | 실행어드레스의 계산방법 및 통신제어장치 |
| US5418965A (en) * | 1988-06-24 | 1995-05-23 | Mahar; Robert C. | Subroutine-type computer program for enhancing the speed of data processing in data management programs systems |
| JPH0289132A (ja) * | 1988-09-26 | 1990-03-29 | Nec Corp | 論理アドレス生成方式 |
| EP0429733B1 (de) * | 1989-11-17 | 1999-04-28 | Texas Instruments Incorporated | Multiprozessor mit Koordinatenschalter zwischen Prozessoren und Speichern |
| JP2536651B2 (ja) * | 1990-02-21 | 1996-09-18 | 日本電気株式会社 | 例外アドレスバッファ管理方式 |
| 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 |
| DE69325207T2 (de) * | 1992-06-15 | 1999-12-09 | Koninklijke Philips Electronics N.V., Eindhoven | Prozessor zur Verarbeitung zeitdiskreter Signale |
| US5890222A (en) * | 1995-01-04 | 1999-03-30 | International Business Machines Corporation | Method and system for addressing registers in a data processing unit in an indirect addressing mode |
| US5845296A (en) * | 1996-07-10 | 1998-12-01 | Oracle Corporation | Method and apparatus for implementing segmented arrays in a database |
| US7599753B2 (en) * | 2000-09-23 | 2009-10-06 | Microsoft Corporation | Systems and methods for running priority-based application threads on a realtime component |
| JP2008165589A (ja) * | 2006-12-28 | 2008-07-17 | Fujitsu Ltd | 情報処理装置 |
| TWI421685B (zh) * | 2007-10-16 | 2014-01-01 | Mstar Semiconductor Inc | 記憶裝置之定址裝置及方法 |
| KR20240065774A (ko) * | 2022-11-07 | 2024-05-14 | 에스케이하이닉스 주식회사 | 네임스페이스의 순차성을 기초로 논리 주소를 변환하는 스토리지 장치 및 그 동작 방법 |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3685020A (en) * | 1970-05-25 | 1972-08-15 | Cogar Corp | Compound and multilevel memories |
| US3699533A (en) * | 1970-10-29 | 1972-10-17 | Rca Corp | Memory system including buffer memories |
| US3701984A (en) * | 1971-03-05 | 1972-10-31 | Rca Corp | Memory subsystem array |
| US3731283A (en) * | 1971-04-13 | 1973-05-01 | L Carlson | Digital computer incorporating base relative addressing of instructions |
| US3693165A (en) * | 1971-06-29 | 1972-09-19 | Ibm | Parallel addressing of a storage hierarchy in a data processing system using virtual addressing |
| US3764996A (en) * | 1971-12-23 | 1973-10-09 | Ibm | Storage control and address translation |
| US3800286A (en) * | 1972-08-24 | 1974-03-26 | Honeywell Inf Systems | Address development technique utilizing a content addressable memory |
-
0
- FR FR122199D patent/FR122199A/fr active Active
-
1973
- 1973-12-17 US US05/425,356 patent/US3938096A/en not_active Expired - Lifetime
-
1974
- 1974-12-13 CA CA215,950A patent/CA1037158A/en not_active Expired
- 1974-12-13 IT IT54557/74A patent/IT1024461B/it active
- 1974-12-13 DE DE2459006A patent/DE2459006C2/de not_active Expired
- 1974-12-16 FR FR7441411A patent/FR2254827B1/fr not_active Expired
- 1974-12-17 JP JP49144179A patent/JPS5757781B2/ja not_active Expired
- 1974-12-17 BE BE151572A patent/BE823436A/xx not_active IP Right Cessation
- 1974-12-17 GB GB54421/74A patent/GB1492067A/en not_active Expired
Also Published As
| Publication number | Publication date |
|---|---|
| IT1024461B (it) | 1978-06-20 |
| JPS5757781B2 (de) | 1982-12-06 |
| BE823436A (fr) | 1975-04-16 |
| US3938096A (en) | 1976-02-10 |
| DE2459006A1 (de) | 1975-07-03 |
| FR2254827A1 (de) | 1975-07-11 |
| CA1037158A (en) | 1978-08-22 |
| FR2254827B1 (de) | 1978-06-23 |
| JPS5093343A (de) | 1975-07-25 |
| GB1492067A (en) | 1977-11-16 |
| FR122199A (de) | |
| AU7640474A (en) | 1976-06-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE2459006C2 (de) | Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage | |
| DE69427625T2 (de) | Adressübersetzungsmechanismus für Rechnersystem mit virtuellen Speicher, der eine Vielzahl von Seitengrössen unterstützt | |
| DE4410060B4 (de) | Übersetzungsvorrichtung zum Umsetzen einer virtuellen Speicheradresse in eine physikalische Speicheradresse | |
| DE2227882C2 (de) | Virtuelle Speicheranordnung | |
| DE2423194C2 (de) | Vorrichtung zum Berechnen einer absoluten Hauptspeicheradresse in einer Datenverarbeitungsanlage | |
| DE69231611T2 (de) | Verfahren zu grosser logischer Adressierung | |
| DE68911398T2 (de) | Methode und digitaler computer zum vorausholen von vektordaten aus dem speicher in einem für skalaverarbeitung bestimmten speichersystem. | |
| DE3833933C2 (de) | Informationsverarbeitungseinrichtung mit einer Adressenerweiterungsfunktion | |
| DE2235841C2 (de) | Datenverarbeitungsanlage mit Speichersteuerung für mindestens einen Prozessor und diesen zugeordneten Pufferspeichern | |
| DE69221356T2 (de) | Flexible N-fach-Speicherverschachtelung | |
| DE3587694T2 (de) | Speicherzugriffssteuergerät zur Realisierung von geschützten Gebieten in einem Speicher, und mit solchem Speicherzugriffssteuergerät ausgerüsteter Speicher. | |
| DE69028269T2 (de) | Virtuelles Adressierungsverfahren zum Betrieb eines Speichers in einer Datenverarbeitungsanlage und Einrichtung zur Ausführung besagten Verfahrens | |
| DE68923863T2 (de) | Ein-/Ausgabecachespeicherung. | |
| DE2725718A1 (de) | Verarbeitungssystem mit mehreren virtuellen adressenraeumen | |
| DE69229667T2 (de) | Simulierte cachespeicher-assoziativität | |
| DE3131204A1 (de) | Adressumrechnungs- und generatoranordnung | |
| DE69522426T2 (de) | Wort-Wiederauffindungsapparat für ein Wörterbuch | |
| DE2054947A1 (de) | Adressenvorbereitungseinnchtung und verfahren und Speicherzugnffan forderungseinnchtung fur ein Infor mationsver arbeitungssystem | |
| DE3689217T2 (de) | Datenverarbeitungseinrichtung mit einer Schaltung zur Prüfung der Adressgrenzen in einem virtuellen Speicher. | |
| DE3688811T2 (de) | Speicherblock für eine Ringschutzarchitektur. | |
| DE10329680A1 (de) | Prozessorarchitektur für exakte Zeigeridentifizierung | |
| DE2458286A1 (de) | Datenverarbeitungssystem zum verschieben von datenfeldern mit verschiedenen strukturen | |
| DE112017007323T5 (de) | Cache-speicher und verfahren zur steuerung desselben | |
| DE10392127T5 (de) | Verwendung eines Kontextidentifizierers in einem Zwischenspeicher | |
| DE2458259A1 (de) | Datenverarbeitungssystem zum vergleichen verschiedener datenstrukturen |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 8110 | Request for examination paragraph 44 | ||
| 8125 | Change of the main classification |
Ipc: G06F 9/36 |
|
| D2 | Grant after examination | ||
| 8364 | No opposition during term of opposition | ||
| 8327 | Change in the person/name/address of the patent owner |
Owner name: HONEYWELL BULL INC., MINNEAPOLIS, MINN., US |
|
| 8339 | Ceased/non-payment of the annual fee |