[go: up one dir, main page]

DE2459006C2 - Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage - Google Patents

Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage

Info

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
Application number
DE2459006A
Other languages
English (en)
Other versions
DE2459006A1 (de
Inventor
James L. Chelmsford Mass. Brown
Richard P. Nashua N.H. Kelly
Richard P. N.Billerica Mass. Wilder jun.
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 HN Information Systems Inc
Original Assignee
Honeywell Information Systems Inc
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 Honeywell Information Systems Inc filed Critical Honeywell Information Systems Inc
Publication of DE2459006A1 publication Critical patent/DE2459006A1/de
Application granted granted Critical
Publication of DE2459006C2 publication Critical patent/DE2459006C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/342Extension of operand address space
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/0623Address 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 (2221), 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-
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-
T&beile. Der Umfang der durch diese Tabellen erreich- tet, daS der Datendescriptor 710 eine indirekte Adres-
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.
STE-FeId. Das 4-Bit-STN-Feld, dessen höchstwertiges Diese relative Segmentadresse 711 enthält zusammen Bit gleich Eins ist, ergibt Zugriff zu 8 Segmenttabellen. mit der Segmentnummer und gegebenenfalls einem In- Das 8-Bit-STE-Feld macht 256 Segmentdescriptoren in- dex eine zweite effektive Segmentadresse, die zur BiI-
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
Anzahl von Tabellen oder Segmenten im Rahmen der 20 ITS. Verfahren und Hardware sind ähnlich dem ITB- Erfindung vorgesehen sein. Modus mit Ausnahme, daß der Datendescriptor 810 Im Flußdiagramm gemäß F i g. 4 beziehen sich die nicht wie der Dptenciescriptor 710 in F i g. 7 auf ein Ba- Schritte 506 bis 517 auf die Bildung einer effektiven sisregister gerichtet ist, sondern direkt über seine Seg- Segmentadresse bei indirekter oder direkter Indizie- mentnummer SEG auf das Segment Das Format 200D
rung. Die F i g. 6 und 7 zeigen hierfür die erforderliche 25 bzw. 20Oi? des Datendescriptors 810, gezeigt in den
Hardware zur Erzeugung der effektiven und der absolu- F i g. 2D und 2E, ist folglich anders als das des Datende-
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
Unter Bezugnahme auf F i g. 4 sei angenommen, daß Segrnentnummer SEG und die Verschiebung D. Das
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
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
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
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)

b) Patentansprüche:
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.
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.
DE2459006A 1973-12-17 1974-12-13 Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage Expired DE2459006C2 (de)

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)

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

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

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