[go: up one dir, main page]

DE2455047A1 - Datenverarbeitungssystem - Google Patents

Datenverarbeitungssystem

Info

Publication number
DE2455047A1
DE2455047A1 DE19742455047 DE2455047A DE2455047A1 DE 2455047 A1 DE2455047 A1 DE 2455047A1 DE 19742455047 DE19742455047 DE 19742455047 DE 2455047 A DE2455047 A DE 2455047A DE 2455047 A1 DE2455047 A1 DE 2455047A1
Authority
DE
Germany
Prior art keywords
memory
program
name
logical
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19742455047
Other languages
English (en)
Other versions
DE2455047C2 (de
Inventor
Gene Myron Amdahl
Takashi Chiba
Richard Joseph Tobias
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.)
Fujitsu Ltd
Fujitsu IT Holdings Inc
Original Assignee
Fujitsu Ltd
Amdahl Corp
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 Fujitsu Ltd, Amdahl Corp filed Critical Fujitsu Ltd
Publication of DE2455047A1 publication Critical patent/DE2455047A1/de
Application granted granted Critical
Publication of DE2455047C2 publication Critical patent/DE2455047C2/de
Expired legal-status Critical Current

Links

Classifications

    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Devices For Executing Special Programs (AREA)

Description

Datenverarbeitungssystem.
Für diese Anmeldung wird die Priorität aus der entsprechenden Anmeldung in den Vereinigten Staaten, Serial No. 418.050 vom 21. November 1973 beansprucht.
Die Erfindung bezieht sich auf ein Datenverarbeitungssystem, welches einen mittels realer Adressen adressierten Speicher und eine Verarbeitungseinheit zur Speicheradressierung für das Heranholen und Speichern von Informationen in Ver-
bindung mit der Ausführung von Instruktionen aufweist, wobei die Instruktionen aus einer Mehrzahl von Systemprogrammen empfangen werden und wobei die Programme zur Identifizierung von Speicherungsstellen dienen, indem logische Adressen benutzt werden, und wobei jedem Programm eine einmalige Speichertabelle zur Übersetzung logischer Adressen in reale Adressen zugeordnet ist.
In neuerer Zeit sind Datenverarbeitungssysteme mit .
509821/1003
virtueller Speicherung entwickelt worden, bei welchen verschiedene Benutzerprogramme zur Wirkung gebracht werden können. Die Programme identifizieren Speicherstellen mit logischen Adressen. Die logischen Adressen werden dynamisch in reale Adressen während der Verarbeitung von Instruktionen übersetzt. Die dynamische Adressenübersetzung ist besonders wichtig in Umgebungen mit Mehrprogrammbetrieb, da verschiedene Programme die Freiheit haben, die gleichen logischen Adressen zu benutzen. Um eine gegenseitige Störung zu vermeiden, muss das System solche logischen Adressen, welche nicht einmalig sind, in reale Adressen übersetzen, die für jedes geladene Programm einmalig sind.
Um für die Einmaligkeit der realen Adressen zu sorgen, wenn nicht einmalige logische Adressen verwendet werden, sind Übersetzungstabellen vorgesehen, die für jedes Programm einmalig sind. Die Übersetzungstabellen sind typischerweise in dem Hauptspeicher gespeichert. Der Zugriff auf die Übersetzungstabellen in dem Hauptspeicher erfordert aber einen beträchtlichen Zeitaufwand, der die Leistungsfähigkeit des Systems herabsetzen kann. Um die Leistungsfähigkeit zu erhöhen, wenn Übersetzungen gemacht werden, ist es erwünscht, übersetzte Informationen in Hochgeschwindigkeitspuffern oder -zwischenspeichern zu speichern, um die Zahl der Zugriffe auf den Hauptspeicher zu vermindern.
509821/1003
Es ist bei neueren Datenverarbeitungssystemen üblich, eine Speicherhierarchie zu haben, in welcher Pufferspeicher von relativ niedriger Kapazität, aber relativ hoher Geschwindigkeit mit Hauptspeichern von relativ hoher Kapazität, aber relativ niedriger Geschwindigkeit zusammenarbeiten. Es ist erxvünscht, dass die grosse Mehrzahl der Zugriffe, sei es zum Heranholen, sei es zum Speichern von Informationen aus dem Pufferspeicher erfolgt, so dass die Gesamtzugriffszeit des Systems verbessert wird. Um zu erreichen, dass die grosse Mehrzahl der Zugriffe aus dem relativ schnellen Pufferspeicher erfolgt, xvird die Information ausgetauscht zwischen dem Hauptspeicher und dem Pufferspeicher, und zwar geschieht dies in Übereinstimmung mit vorbestimmten Algorithmen.
Bei Systemen für Mehrprogrammbetrieb mit virtueller Speicherung ist es auch erwünscht, Informationen in dem Pufferspeicher zu speichern, um Zugriffe auf den Hauptspeicher zu vermindern. Zusätzlich zu realen Datenadressen und den Daten selbst speichert der Pufferspeicher -erwünschte.logische Adressen und Programmidentifizierer. Wenn der Pufferspeicher diese Informationen enthält, werden vergleichsweise mehr Zeit verbrauchende Zugriffe auf den Hauptspeicher für die gleiche Information vermieden.
Der Wirkungsgrad, mit dem ein Pufferspeicher bei der Verkleinerung der Zugriffszeit des Gesamtsystems arbeitet-, ist abhängig von einer Anzahl von Variablen. Zum Beispiel sind es
50982 1/1003
die Kapazität des Pufferspeichers, die Kapazität des Hauptspeichers, die Datenübertragungsgeschwindigkeit zwischen den Speichern und die Austauschalgorithmen, welche bestimmen, wann Übertragungen zwischen dem Hauptspeicher und dem Puffer stattfinden.
Es besteht ein Bedarf ah verbesserten Pufferspeichersystemen, die für Datenverarbeitungssysteme mit virtueller Speicherung und Mehrprogrammbetrieb besonders geeignet sind. Insbesondere besteht ein Bedarf bei solchen System für Speicherhierarchien oder -rangordnungen, welche bessere Methoden und Apparaturen für eine dynamische Adressenübersetzung aufweisen.
Der Erfindung liegt die Aufgabe zugrunde, ein diesen Bedarf befriedigendes Datenverarbeitungssystem zu schaffen.
Um dies zu ermöglichen, weist ein Datenverarbeitungssystem der eingangs genannten Gattung erfindungsgemäss folgende Merkmale auf:
Eine logische Übersetzungsspeichereinrichtung zum Speichern des Namens eines Programmidentifizierers sowie zugeordneter logischer Adressen und zum Speichern entsprechender übersetzter realer Adressen,
eine Puffer- oder Zwischenspeichereinrichtung für Daten zum Speichern von Informationen nach Zugriff von realen Adressen her,
509821/1003
eine Programmidentifizier-Speichereinrichtung mit mehreren Namenstellen zur Speicherung je eines Namens, der unterschiedliches Programm identifiziert, welches Informationen in der logischen Übersetzungsspeichereinrichtung hat, wobei die Programmidentifizier-Speichereinrichtung Mittel zur Leerhaltung mindestens einer der Stellen zwecks Verfügbarkeit zur Verwendung für ein neues Programm enthält, das keine Information in dem logischen Übersetzungsspeicher hat.
Ein solches neuartiges Datenverarbeitungssystem hat eine vergleichsweise niedrige Kapazität, einen mit hoher Geschwindigkeit arbeitenden Puffer- oder Zwischenspeicher und einen mit niedriger Geschwindigkeit arbeitenden Hauptspeicher von vergleichweise hoher Kapazität. Die Speicherrangordnung ist als ein virtuelles Speichersystem organisiert, bei welchem Systemprogramme Speicherstellen bei Verwendung logischer Adressen definieren. Die logischen Adressen werden dynamisch während der Verarbeitung von Instruktionen in reale Adressen übersetzt.
Demgemäss identifiziert ein Programmidentifizierspeicher als Teil des Puffer- oder Zwischenspeichers, welche Systemprogramme Übersetzungsinformationen in dem Zwischenspeicher haben. Der Identifizierspeicher wird an mindestens einer Stelle leer gehalten. Die leere Stelle erleichtert die unmittelbare Eingabe einer zu einem Systemprogramm gehörenden Information, das dann keine Übersetzungsinformation in dem Zwischenspeicher aufweist. Das Leerhalten mindestens einer Stelle für eine neue
509821/1003
Information fördert den ÜbersetzungsVorgang, da ein neues Prograiran nicht auf eine alte Information zu warten braucht, die erst beseitigt werden muss, bevor ein Zugriff auf den Identifizierspeicher erfolgen kann.
Bei einer Ausführungsform wird der Programmidentifizierspeicher implementiert als ein adressierbarer Speicher mit einer grossen Zahl von Stellen, z.B. 128 Stellen, von denen nur eine kleine Anzahl, z.B. 31 zu jeder Zeit gültige Einträge aufweisen. Der Identifizierspeicher enthält eine Mehrzahl von Feldern, insbesondere sind dies ein gültiges Feld für die Identifizierung, welche der Stellen gültige Einträge aufweist, ein Übersetzungsfeld, auch Segmentbasisfeld genannt, zur Speicherung einer einmaligen mit einem besonderen Programm verbundenen Information, ein Namensfeld zur Identifizierung eines Namens für jeden gültigen Eintrag und ein Prioritätsfeld zur Identifizierung der Priorität der gültigen Einträge in dem Speicher. Der Identifizierspeicher ist redundant adressiert, insofern als viele Segmentbasen in eine einzige Identifizierspeicherstelle abge-
18
bildet sind. Zum Beispiel sind 2 Segmentbasen redundant in
7
•2' Identifizierspeicherstellen abgebildet. Die Abbildung tritt entsprechend einer vorbestimmten Beziehung auf. Bei diesem Beispiel stellt jede der durch die 2' Adressen spezifizierten
Ί Ί Λ 9k
Stellen 2 von den 2 möglichen Segmentbasen dar.
Der Zwischenspeicher enthält auch einen logischen Übersetzungsspeicher s der einen Indexabschnitt zum Speichern logischer
509821/1003
Adressen und Programmnamen aufweist, die mit Programmen verbunden sind, welche Informationen in dem Zwischenspeicher iiaben.'Der logische Übersetzungsspeicher enthält auch einen Datenteil mit Stellen, welche eine 1:1-Entsprechung zu den Indexteilstellen haben. Der Datenteil speichert die reale Adresse, die der logischen Adresse zugeordnet ist und den Pro-Crammnamen in der entsprechenden Indexteilstelle.
Die Speicher-Rangordnung enthält ferner einen Pufferdatenspeicher, der ebenfalls in einen Indexteil und einen zugeordneten Datenteil organisiert ist. Die Indexteilinformation wird mit der Datenteilausgabe aus dem logischen Übersetzungsspeicher verglichen.
Bei einer Ausführungsform der Erfindung sind der Programmidentifizierspeicher, der logische Übersetzungsspeicher und der Pufferdatenspeicher jeweils ein Speicher mit einem Indexteil und einem entsprechenden Datenteil. Ferner ist jeder Indexteil und jeder Datenteil in Primär- und Austauschabschnitte geteilt.
Gemäss einem Aspekt der Erfindung wird ein vorher.benutzt er Name ungültig gemacht und dadurch zur. Verwendung durch ein neues Programm verwendbar gemacht, wenn der.Programmidentifizierspeicher sämtliche Namen zugewiesen hat. Der vorher benutzte Name wird aus dem logischen Übersetzungsspeicher gelöscht, und zwar durch aufeinanderfolgendes Abrufen aller
5098 21/1003
logischen Übersetzungsspeicherstellen bei Ausschau nach jeglichen Einprägen, welche den besonderen vorher benutzten Namen aufweisen. Die Löschung erfolgt im allgemeinen lange bevor der vorher benutzte Name erneut zugewiesen wird und daher ist bei erneuter Zuweisung keine Verzögerung erforderlich, um den logischen Übersetzungsspeicher zu löschen.
Gemäss dieser kurzen Zusammenfassung wird durch die Erfindung das Ziel erreicht, dass eine verbesserte Speicher-Rangordnung für die dynamische Adressierungsübersetzung bei Datenverarbeitungssystemen mit Mehrprogrammbetrieb geschaffen wird.
Im folgenden ist die Erfindung anhand der Zeichnungen beispielsweise näher erläutert. Es zeigen
Fig. 1 ein Blockschema eines gesamten Datenverarbeitungssystems gemäss der Erfindung;
Fig. 2 eine schematische Darstellung einer Speichersteuerungseinheit mit einem in dem System nach Fig. 1 benutzten N-Pegel-Primär-ZAustausch-Pufferspeieher;
Fig. 3 eine schematische Darstellung einer Speichersteuerungseinheit mit einem Zweipegel-Primär-/ Austausch-Pufferspeicher und einem Programmidentifizierspeicher, wie er in dem System nach Fig. 1 benutzt wird;
509821/1003
Pig. 4 eine schematische Darstellung von Einzelheiten eines Programmidentifizierspeichers entsprechend der Speichereinheit von Fig. 3;
Fig. 5 eine schematische Darstellung des Hauptspeichers, der Speichersteuereinheit und ihrer Nahtstelle, wie sie bei dem System gemäss Fig. 1 vorhanden sind,
Fig. 6 eine schematische Darstellung der Instruktionseinheit, wie sie bei dem System nach Fig. 1 vorhanden ist;
Fig. 7
bis 10 geben eine Darstellung eines Teils-der sequentiellen Zeitmessungsmaschine wieder, die einen Teil der Steuerschaltung des Pufferspeichers bildet.
Das in Fig. 1 dargestellte Ausführungsbeispiel eines Datenverarbeitungssystens gemäss der Erfindung weist einen Hauptspeicher 2, eine Speichersteuereinheit 4, eine Instruktionseinheit 8, eine Ausführungseinheit 10, eine Kanaleinheit 6 mit zugeordnetem I/O und eine Konsoleinheit 12 auf. Das System nach Fig. 1 arbeitet aufgrund der Steuerung von Systeminstruktionen, wobei eine.organisierte Gruppe solcher Instruktionen ein Benutzersystemprogramm bildet . Bei Mehrprogrammbetrieb wird mehr als ein Benutzerprogramm durch das System verarbeitet. Die Systeminstruktionen und die Daten, aufgrund deren die Instruktionen wirken, werden aus der I/O-Einrichtung (Ein-/Aus-
509821/1003
— 1Ω —
gabegerät) über die Kanaleinheit 6 durch die Speichersteuerungseinheit 4 in den Hauptspeicher 2 eingeführt. Aus dem Hauptspeicher 2 werden die Systeminstruktionen und Daten durch die Instruktionseinheit 8 über die Speichersteuerung 4 herangeholt, wobei sie zur Ausführung der Steuerung verarbeitet v/erden, beispielsweise in der Ausführungseinheit 10. Lin Überwachungsprogramm, das für die Benutzerprogramme transparent ist, bewirkt die überwachung der Gesamtarbeitsweise des Systems.
In Fig. 2 ist eine Ausführungsform der Speichersteuerungseinheit 4 von Pig. 1 gezeigt, und zwar eine Dreipegel-Speichersteuerungseinheit. Die Speichersteuerungseinheit 4 ist ein Puffer- oder Zxtfischenspeicher, der in der Weise wirkt, dass er auf der Schiene oder dem Sammelkanal 362 Adressen aus der Instruktionseinheit 8 von Fig. 1 empfängt. Die Adressen sind typischerweise logische Adressen und sind in dem Pufferadressenregister (BAR) 363 gespeichert. Das Register 363 empfängt auch eine Eingabe auf dem Sammelkanal 354 aus den Steuerregistern in der Instruktionseinheit 8 von Fig. 1. Die Information auf dem Sammelkanal 354 identifiziert einmalig das Stromprogramm, das die Steuerung des Systems von Fig. 1 aufweist, und insbesondere die Segmentbasisinformation, welche die Übersetzungstabellen identifiziert, die bei der Umwandlung logischer Adressen in reale Adressen benutzt werden.
Die Segmentbasisinformation auf dem Sammelkanal 354 ent- hält die Seitenabmessung und die Segmentabmessung, die reale
509821/1003
Adresse im Hauptspeicher, bei welcher die Segmenttabelle angeordnet ist (Segmenttabellenursprung) und die Länge der Segmenttabelle. Insgesamt, wird diese Information als Segmentbasisinforrnation bezeichnet. Die Bits niederer Ordnung des Segmenttabellenursprungs werden -eingegeben, um den Programmidentifizierspeieher 155 zu adressieren. Der Abgleich der Segmentbasisinformation wird in das Register 393 und dann wieder in die Vergleicher 317 und 321 eingegeben.
Der Programmidentifizierspeicher (PIS) 155 enthält einen Indexteil und einen Datenteil. Sowohl der Indexteil als auch der Datenteil sind wiederum unterteilt in einen Primärabschnitt und einen Aus t aus cl'i ab schnitt. Insbesondere enthält der Indexteil den Primärabschnitt 319 und den Austauschabschnitt 320. Der Datenteil enthalt einen Primärabschnitt 323 und einen Austauschabschnitt 324. Alle vier Abschnitte des Speichers 155 werden durch die Adresseneingabekanäle (AI) adressiert. Die Bits höherer Ordnung des Segmenttabellenursprungs und die Abmessungsinformation für eineilehrheit von Programmen-wird in dem Indexteil des Speichers 155 gespeichert. Diese Information wird über den Dateneingabekanal (DI) gespeichert. Wenn das Programm laufend aufgrund der Steuerung des Datenverarbeitungssystems von Fig. 1 anfänglich eine Steuerung gewinnt, wird seine Segmentbasisinformation über den Sammelkanal 354 in das Register 3^3 eingegeben. Adressenbits niederer Ordnung werden eingegeben, um den Speicher 155 zu adressieren, und der Abgleich der Segmentbasisinformation wird in das Register 393 und die
50982 171003
Vergleicher317 und 321 eingegeben. Die durch die Datenausgangskanäle (DO) der Abschnitte 319 und 320 ausgelesenen Informationen werden auch in die Vergleicher 317 bzw. 321 eingegeben. Die Vergleicher bestimmen, ob das Stromprogramm (oder das laufende Programm) aufgrund der Steuerung eine Information in dem Speicher 155 hat oder nicht.
In den Datenteil des Speichers 155 werden die Identifiziernamen durch den Namengenerator 264 über den Dateneingabekanal (DI) eingegeben. Der Primärabschnitt 323 und der Austauschabschnitt 324 des Datenteils werden in das Register 379 eingegeben. Der eine oder andere der Abschnitte 323 oder 324 wird gewählt als Punktion einer Vergleichersignalausgabe aus den Vergleichern 317 bzw. 321. Nach erfolgter Wahl wird ein einmaliger Name, der dem in der Steuerung befindlichen Programm zugeordnet ist, in das Register 379 durchgelassen. Das Register 379 enthält auch die logischen Adressenbits höherer Ordnung.
Der logische Adressenspeicher (LTS) 255 enthält ferner einen Primärabschnitt 38I und einen Austauschabschnitt 38.2, welche zusammen einen Indexteil und einen Primärabschnitt sowie einen Austauschabschnitt 357 bilden, die wieder'um zusammen einen Datenteil bilden. Die Bits niederer Ordnung der logischen Adressen aus dem Register 363 werden benutzt, um jeden der Abschnitte in dem Speicher 357 über die Adresseneingabekanäle (AI) zu adressieren. Der Indexteil' des Speichers 255 wird mit den Bits höherer Ordnung der logischen Adresse und des
509821/10 03
aus dein Register 379 zu dem Dateneingabekanal (DI) durchgelassenen Namens beladen.
Der Datenteil des Speichers 255 wird mit realen Adressen beladen, welche übersetzt werden und den in dem Indexteil des Speichers 255 gespeicherten logischen Adressen entsprechen. Die realen Adressen werden .über den Dateneingabekanal (DI) aufgeladen, wenn sie aus dem Hauptspeicher über die Datenregister 384 und 385.empfangen worden sind. Nach der Adressierung bewirkt der logische Übersetzungsspeicher 255 einen Vergleich des Namens und der logischen Adresse des Registers 379 in den Vergleichern 328 und 329 mit den adressierten Stelleninhalten in dem Indexteil des Speichers. Wenn der Vergleich gefunden ist, veranlasst der Vergleicher 328 oder 329, je nachdem, welcher einen Vergleich hat, dass die realen Adressen aus dem Datenteil des Speichers 2*55 in das Register 359 durchgelassen werden. Die reale Adresse in dem Register 359 wird in die Vergleicher 336 und 337 eingegeben. Wenn kein Vergleich gefunden wird, wird der Hauptspeicher adressiert, um die erwünschten Übersetzungstabellen abzurufen, welche die reale Adresse ergeben, die dann in dem Datenteil des Speichers 255 gespeichert wird.
Der Datenpufferspeicher (BDS) 355 enthält einen Indexteil und einen Datenteil. Der Primärabschnitt 365 und der Austauschabschnitt 366 umfassen den Indexteil des -Speichers 355. Der Primärabschnitt 367 und der Austauschabschnitt 368 bilden den
509821/1003
Datenteil, des Speichers 355- Die vier Abschnitte des Speichers '355 werden durch die Bits hoher Ordnung der logischen Adresse aus dem Register 363 adressiert. Die Adressenbits niedriger Ordnung der logischen Adresse sind identisch den Adressenbits niedriger Ordnung der realen Adresse. Wenn der Speicher 355 adressiert wird, werden die realen Adressen aus dem Indexteil in die Vergleicher 336 und 337 eingegeben, und wenn ein Vergleich gefunden ist, werden die entsprechenden Daten aus dem Datenteil in das Register 387 eingegeben. Die dann in dem Register 387 befindlichen Daten sind die ursprünglich durch die logischen Adressen in dem Register 363 adressierten Daten. Wenn keine Anpassung in dem Indexteil des Datenspeichers 355 gefunden wird, wird der Hauptspeicher adressiert, um die gewünschte Information abzurufen und diese in den Datenteil des Speichers geladen, während die Adressenbits höchster Ordnung in ähnlicher Weise in den Indexteil geladen werden. Die Information in dem Register 387 wird zu der passenden Einheit in Fig. 1 gesandt (I-Einheit, Ε-Einheit oder C-Einheit), wo sie durch das System benutzt wird.
In Fig. 3 ist eine Ausführungsform der Speichersteuerungseinheit 4 zum Gebrauch in dem System von Fig. 1 gezeigt. Die Speichereinheit von Fig. 3 ist ein Puffer- oder Zwischenspeicher und empfängt Adressen aus der Instruktionseinheit 8 auf dem Sammelkanal 362, aus der Kanaleinheit an dem Sammelkanal 353 oder von einer äusseren Zentraleinheit (Processor) an· dem Sammelkanal 309· Der Sammelkanal 309 wird bei einer
509821/1003
Simultanverarbeitungs-Ausbaustufe des Systems von Fig. 1 benutzt. Wenn eine logische Eingangsadresse an einem der angegebenen Sammelkanäle empfangen wird, bewirkt der Zwischenspeicher von Fig. 3 das Auslesen der adressierten Daten in eines der Ausgangsregister 387 bis 391. Wenn die logisch adressierte Information nicht in dem Zwischenspeicher von Fig. verfügbar ist,, wird nach der übersetzung die reale Adresse der Information an den Sammelkanal 809' an den Hauptspeicher von Fig. 1 ausgegeben, um die adressierte Information abzurufen. Die abgerufene Information wird an dem Hauptspeicherdatenausgangssammelkanal 811 verfügbar. Wenn der Zwischenspeicher von Fig. 3 eine an den Hauptspeicher zu übertragende Information hat, wird diese über den Sammelkanal 808 ausgegeben. Die Eingangsadressen zu dem Zwischenspeicher aus den Sammelkanälen 353j 362 und 309 werden in dem Zwischenspeicher-Adressenregister (BAR) 363 gespeichert. Das Register 363 speichert typischerweise 24 Adressenbits (BITS 8-31) und fünf Programmidentifizierbits (BITS 32-36), zusammen 29 Bits. Der Ausgang des Registers 363 ist mit vielen Stellen verbunden. Insbesondere sind alle 29 Bits mit dem B2-Adressenregister (B2AR) 37&, dem Instruktipnsheranhol-Adressenregister (IFAR) 374, dem Rechengrössen-Adressenregister (OPAR) 375 und dem Kanaleinheit-Adressenregister (CUAR) 376 verbunden. Acht Bits werden in das Segmentzahlregister (SNR) 261 eingegeben und neun Bits werden eingegeben in das Seitenzahlregister (PNR) 262. 2h Bits aus dem Register 363 (BITS 8-26 und die fünf Identifiziernamenbits) werden in das logische Adress.enregister
509821/1003
(LAR) 379 eingegeben. Sieben von den Adressenbits aus dem Register 363 (BITS 14-20) v/erden eingegeben in die Adresseneingangskanäle (AI) des logischen Übersetzungsspeichers 255 -
Der logische Übersetzung-sspeicher 255 ist ein Hochgescliwindigkeitsumsetzer (HSD), der einen Indexteil mit einem Primärabschnitt 38l und einen Austauschabschnitt 382 aufweist. Jeder der Abschnitte 38I und 382 enthält typischerweise 128 Stellen von je elf Bits. Die 128 Stellen in jedem Abschnitt werden gleichlaufend durch die sieben Eingangsadressenbits aus dem Register 363 (BITS 14-20) adressiert. Elf Bits werden in der adressierten Stelle durch den Dateneingangskanal (DI) adressiert. Die elf Bits enthalten sechs Adressenbits hoher Ordnung (BITS 8-I3) und die fünf Identifiziernamen Bits aus dem Register 363· Der Indexteil.einschliesslich Primär- und Sekundärabschnitt 38I und 382 bewirken die Speicherung dieser elf Bits für Systemprogramme, welche in der Steuerung des Systems nach Fig. 1 gewesen sind. Wenn ein neues Programm die Steuerung des Systems nach Fig. 1 gewinnt, werden sein Identifiziername und die Adressenbits hoher Ordnung einer besonderen Adresse aus dem Register 363 auf das Register 379 übertragen, dessen Ausgang mit den Vergleichern 328 und 329 verbunden ist. Natürlich kann ein Programm und sein Identifiziername mit vielen verschiedenen Adressen verwendet werden. Die Vergleicher 328 und 329 vergleichen die logischen Adressenbits hoher Ordnung und die Identifiziernamenbits aus dem Primär- und Austauschabschnitt 38I und 382, wie sie an den Datenaus-
509821/1003
gangskanälen (DO) herausgelassen werden. Auf diese Weise wird ein Vergleich durchgefünrt, um zu bestimmen, ob die laufende logische Adresse für das laufende Programm in der Steuerung sich in dem Zwischenspeicher von Fig. 3 befindet.
Der logische übersetz-ungsspeicher 255 enthält auch· einen Datenteil mit einem Primärabschnitt 356 und einem Austauschabschnitt 357. Jeder Abschnitt 356 bzw. 357 enthält typischerweise 128 Stellen von je 13 Bits. Jeder Abschnitt wird durch die gleichen sieben Bits wie der Indexteil adressiert, um Information auf dem Dateneingangskanal (DI) oder ausgegebene Daten auf den Ausgangsdatenkanälen (DO) zu speichern. Die Information aus den Speichern 356 und 357 werden in das reale Adressenregister (RAR) 359 eingegeben. Das 'Register 359 empfängt die Information entweder aus dem Primärabschnitt 356 oder dem Austauschabschnitt 357 als Punktion eines von den Vergleichern 328 bzw. 329 festgestellten Vergleichs. Auch kann das reale Adressenregister 359 direkt mit den Inhalten der logischen Adressenregister 379 beladen werden.
Die dreizehn Bits in den Primär- und Austauschabschnitten 356 bzw. 357 werden aus dem Übersetzungsregister 387 über den Dateneingangskanal (DI) geladen. Die dreizehn Bits aus dem Übersetzungsregister 387 sind die dreizehn realen Adressenbits hoher Ordnung (BITS 8-20), welche den logischen Adressen in der gleichen Adresse in dem Indexteil des Speichers 255 entsprechen.
509821/1003
Die aus dem realen Adressenregister 359 ausgegebenen Bits '19 und 20 werden in einen üblichen Decoder 331 eingegeoen, der vier Auswahlleitungen bildet,, von denen jeweils eine erregt wird. Auch werden aus dem Register 359 neunzehn Bits (BIx1S 3-26) ausgegeben, Vielehe in das Hauptspeicher-Adressenregister (MSAfO 364 eingegeben werden. Wenn sich die adressierte Information nicht in dem Zwischenspeicher von Fig. 3 befindet> wird die reale Adresse aus dem Register 364 benutzt, um einen Zugriff auf den Hauptspeicher 2 von Fig. 1 einzuleiten, von wo aus die erwünschte Information schliesslich erhalten wird.
Das Pufferadressenregister 363 verbindet auch acht Bits als eine Eingabe mit dem Pufferdatenspeicher 355· Der Speicher 355 enthält einen Indexteil mit einem Primärabschnitt 365 und einem Austauschabschnitt 366. Jeder Indexabschnitt 365j 366 enthält typischerweise 256 Stellen mit sechzehn Bits pro Stelle. Jede Stelle wird adressiert durch sechs logische Adressenbits niederer Ordnung (BITS 21-26). Jede Stelle in dem Primär- und Austauschabschnitt 365, 366 ist verfügbar zum Speichern eines fünf-Bit-Hauptspeicherschlüssels (MSKEY) und elf von den neun-.zehn in dem Register 359· Die Bits 19 und 20 aus dem Register 359 werden in den Decoder 331 eingegeben und die elf Bits hoher Ordnung werden durch den Dateneingangskanal (DI) verfügbar für die Speicherung in den Abschnitten 365 und 366. Jeder Abschnitt 365 bzw. 366 lässt, wenn er adressiert wird, vier 16-Bit-Gruppen heraus, die je elf Adressenbits und fünf Schlüsselbits umfassen. Die vier Ausgaben werden durch die
509821/1003
BAD ORIGINAL
Datenausgangskanäle (DO) zu den Wahlstromkreisen 396 bzw. 397 herausgelassen. Die Wahlstromkreise 396 und 397 bewirken die
Auswahl eines der vier.Ausgänge für jeden der Abschnitte 365 5 366 in Abhängigkeit von dem einen aus den vier Ausgängen aus
dem Decoder 331. Die gewählten Ausgänge aus den Wahlkreisen
396 und 397 werden in die Vergleicher 336 bzw. 337 eingegeben. Die Vergleicher 336 und 337 bewirken einen Vergleich der laufenden realen Adresse in- dem Register 359 nit einer vorher
benutzten realen Adresse in den Abschnitten 365 und 366. Wenn ein Vergleich gefunden wird, bewirken die Vergleicher 336 und 337 die Wahl entweder des Primärabschnitts 367 oder des Austauschabschnitts 368.
Der Primärabschnitt 367 und der Austauschabschnitt 368
enthalten typischerweise je 256 Stellen von je 256 Bits. Die
256 Stellen für jeden Datenabschnitt 367? 368 werden je adressiert durch acht logische Adressenbits niederer Ordnung
(BITS 21-28) und liefern je vier partielle Datenstellen zu
einer Zeit (64 Bits pro 'partielle Datenstelle) auf den Datenausgangskanälen (DO). Eine volle Stelle enthält 256 üatenbits und wird durch die Bits 21-26 adressiert. Von diesen 256 Datenbits wählen die Bits 27-28 vierundsechzig Datenbits, welche
zu den V/ahltoren1 398 und 399 ausgegeben werden. Die vier Ausgaben aus den Abschnitten 367 und 368 werden in die Wahlkreise 398 bzw. 399 eingegeben. Die Wahlkreise 398 und 399 werden
gewählt, um in Abhängigkeit von der ausgewählten einen'der Ausgaben aus dem Decoder 331 eine Ausgabe zu bilden. Die. Ausgabe
5 0 9 8 2 1/10 0 3
aus den Wahlkreisen 398 und 399 werden über Heranhol-Ausrichtungskreise 372 bzw. 373 einem oder mehreren von fünf Ausgangsregistern 387-391 eingegeben. Die Bestimmung ob der Primär- oder der Austauschausgang gewählt wird., wird durch die Vergleicher 336 und 337 gesteuert, von denen jeder einen Eingang zu den Registern 387~391 besitzt.
Der Speicher 355 wird verxirendet, um zu bestimmen, ob die laufend adressierte Stelle, wie sie durch die Adresse des Registers 359 spezifiziert ist, die gleiche Adresse in den Indexabschnitten 365 oder 366 hat. Ist dies der Fall, so wird die Korrespondenz durch den Vergleicher 336 oder 337 festgestellt und die entsprechenden Daten in den Datenabschnitten 367 bzw. 368 werden in ein passendes von den Registern 387~391 durchgelassen. Die Daten werden in die Datenabschnitte 367 und 368 über einen 64-Bit-Sammelkanal aus dem Register 385 durch den Datenkanal (DI) geladen. Der Dateneingangskanal empfängt 64 Bits aus dem 64-Bit-Sammelkanal, der mit dem Hoengeschwindigkeits-Datenpufferregister (HSBDR) 385 verbunden ist. Die Wähltore 369 sind so auswählbar, dass die Datenabschnitte 367 und 368 umgangen werden, welche die Information im Register 3Ö5 direkt durch die Heranhol-Ausrichtschaltung (FETAL) 372 durch 391 zu einem oder mehreren von den Registern 387 durchlassen.
Das Register 385 ist so geschaltet, dass es Information aus dem Hauptspeicher über das Hauptspeicherdatenregister (MSDR) 384 und aus einer Speicher-Ausrichtschaltung (STOAL) 383 aus
509821 /1003
den Wähltoren 386 empfängt. Die Wähltore 386 wählen die Information grundsätzlich aus der Instruktionseinheit über den Samrnelkanal 352 oder aus der Kanaleinheit über den Sammelkanal 358. Die Informationsausgabe aus der Wählschaltung 398 und 399 wird in das Register 384 eingegeben. Die Ausgabe aus dem Register 384 kehrt auch zurück zu dem Hauptspeicher-Dateneingabekanal 808, um die Information zu der Hauptspeichereinheit 2 von Fig. 1 zurückzusenden.
Die Ausgaberegister 387~391 empfangen Information aus den Speichern 367 und 368. Das Übersetzungsregister 387 ist ein gewöhnliches 32-Bit-Register und wird verwendet in Verbindung mit der dynamischen Adressenübersetzung, die zur Umwandlung logischer Adressen in reale Adressen gebraucht wird. Das Instruktionswortregister (IWR) 388 wird in Verbindung mit der Sendung von Instruktionsworten zur Instruktionseinheit 8 üter den Sammelkanal 396. Das Rechengrössenregister (OWR) 399 wird gebraucht in Verbindung mit der Übersendung von Rechengrössen zur Ausführungseinheit 10 über den Sammelkanal 395· Das Kanalwortregister (CWR) 390 wird gebraucht in Verbindung mit der Sendung von Informationen über den Sammelkanal 394 zu der Kanaleinheit 6. Das Fehlerregister (ERR) 391 wird gebraucht in-Verbindung mit der Fehlerprüfung und der Korrekturschaltung.
Die für die Identifizierer benutzten Namen bei der Unterscheidung unterschiedlicher Programme, die in dem System von Fig. 1 laufen können, werden von einem
50 9821/1003
speicher 340 geliefert. Der Speicher 340 empfängt eine Segmentb as is information aus den .Steuerregistern in der Iristruktionseinheit 8 über den 30-Bit-Sarnmelkanal 351I. Der Speicher 340 enthält typischerweise 128 Stellen zur Speicherung von Informationen, die mit bis zu 31 Programmen gleichlaufend verbunden sind. Ein 32. Programrnidentifiziername \\rird unbenutzt behalten, so dass er stets verfügbar ist zur Zuweisung zu einem neuen Programm, das sich noch nicht laufend in dem Speicher 340 befindet. Der Speicher 340 liefert den Prograrr;nidentifiziernar.en auf dem 5-Bit-Sammelkanal 392, der in das Pufferadressenregiüter 363 eingegeben ist. Weitere Einzelheiten des Speichers 340 werden nachstehend in Verbindung mit Pig. 4 beschrieben.
Die Register 37^~377 nebst dem Übersetzungsregister (TRR) 387 sind durch die Wähltore 38O als Eingaben in den Leitungsaddierer 3βΟ oder den Byteaddierer 36I wählbar. Das B2-Adressen~ register (B2AR) 378 wird eingegeben in das Vorhol-Adressenregister (PFAR) 377 zur Auswahl durch die Tore 380. Auch das Register 378 ist durch das Tor 333 wählbar zum Durchlassen in das Rechengrössenwortregister (OPW) 389 oder das Kanalwort-.register (CWR) 390. Der Addierer 36Ο bewirkt die Inkrementierung der vollständigen Adresse durch Inkremente von 0, 32 oder 2043 und der Addierer -361 bewirkt die Inkrementierung der Eyteadresse durch Inkremente von 0, +4 bzw. +8. Die inkrementierte Adresse wird ausgegeben über einen 29-3it-Adressenkanal als Eingabe zu dem Pufferadressenregister 363. Das gespeicherte Übersetzungswort auf dem Sammelkanal 358 ist gleichfalls wählbar-
509.821/1003'
üurca die Tore 333 zur Eingabe in das TRR-Register 387.
Die v/ähltore 333 verbinden nach der Wahl auch die CPU-Gegmentbasisinforination auf dem Sammelkanal 354, den 5~BitfJchlüssel aus dem Register 384, und die Kanaleinheit-Segmentbasisinformation auf de'm Sammelkanal 358 mit den Registern 387, 38"9 und 390.
In Fig. 4 ist der Programmidentifizierspeicher 340 im einzelnen gezeigt, der in dem Pufferspeicner von Fig. 3 verwendet ist. Der Speicher von Fig. 4 empfängt die Segmentbasisinformation auf dem Sammelkanal 354 aus den Steuerregistern CRO und CRl der Instruktionseinheit. Die 30 Bits auf dem Sammelkanal .354 enthalten vier Bits aus dem Steuerregister CRO. Diese vier Bits sind die BITS 8 und 9, welche die Seitenabmessung bestimmen, je nachdem, ob diese 2K Bytes oder 4K Bytes beträgt. Ausserdern bestimmen die BITS 11 und 12 die Segment abmessung, je nachdem, ob diese 64K Bytes oder Ιΐ'Ί Bytes beträgt. Der Sammelkanal 354 enthält auch 26 Bits aus dem Steuerregister CRl. Insbesondere bestimmen die BITS 0-7 die Segmenttabellenlänge und die BITS 8-25 die Segmenttabellenadresse, d.h. den Ursprung der Segmenttabelle.
Jedes Programm in dem Datenverarbeitungssystem hat typischerweise eine'n unterschiedlichen Segmenttabellenursprung, so dass der Ursprung einmalig das Programm definiert, das eine Steuerung des Datenverarbeitungssystems hat. Die BITS 8-25 werden in eine
509 8 21/1003
BAD ORfGINAL
Recodier- oder Kontrollsummensehaltung 287 eingegeben, welche die eingegebenen 18 Bits in sieben Ausgangsbits abbildet. Die Abbildung erfolgt vorzugsweise zufällig, obwohl sie sich nicht ändert, wenn sie einmal gewählt ist.
Jede der durch die sieben Ausgangsbits spezifizierten
11 —
Adressen stellt 2 Adressenstellen dar, die durch die 18 Eingangsbits spezifiziert sind. Die sieben Ausgangsadressenbits aus der Schaltung 287 werden durch Tore 288 ausgewählt und in einem Adressenregister 289 gespeichert. Das Adressenregister verwendet die sieben Adressenbits, um den Segmentbasisstapel (SB) 291 zu adressieren. Auch die Adresse in dem Register 289 kann um eins in dem Inkrementer 290 inkrementiert und durch Tore 288 ausgewählt werden, um eine neue inkrementierte Adresse in dem Register 289 zu bilden.
Der SB-Stapel 291 enthält 128 Stellen von je 14 Bits pro Stelle. 13 Bits sind aus dem Sammelkanal 354 abgeleitet und enthalten die Segmentgrösse, die Seitengrösse, die Segmenttabellenursprungadresse und die Segmenttabellenlänge. Ausserdem enthält jede Stelle einen 5-Bit-Identifizierer für die Benennung jeder Eingabe in den Stapel 291. Ferner enthält jede Stelle ein 5 Bit-Prioritätsfeld für die Pestsetzung der Priorität der Eingaben in den Stapel 291. Weiterhin ist ein 1 Bitgültiges Feld in jeder Stelle vorhanden. Die Information wird aus dem Stapel 291 in eine Anzahl von Registern ausgelesen, wenn der Stapel durch die Adresse in dem Register 289 adressiert ist.
509821/1003 -
Das Gültig-Bit wird in die VA undAB-Register 210 und 209 zum Gebrauch bei der Pestsetzung der Gültigkeit |er ausge-
lesenen Information ausgelesen.
Das Gültigkeitsfeld in dem Stapel 291 wird zur Identifizierung von bis zu 31 gültigen Eingaben aus der Gesamtheit von 128 Stellen verwendet. Das VA-Register 210 hat einen gesteuerten Taktgeber und wird nur auf Kommando beladen. Das VB-Register 209 ist freilaufend und wird stets jedesmal dann beladen, wenn der Stapel 291 adressiert wird. Die Register 210 und 209 werden in Verbindung mit der Austausch-Inkrementiervorrichtung 290 gebraucht. Jedesmal, wenn 'der Stapel 291 anfänglich durch eine Adresse aus dem Register 289 abgerufen wird und die adressierte Information sich nicht in dem Stapel 291 befindet, wird der Stapel durch die nächst folgende Adresse nochmals adressiert. Insbesondere wird der Ausfall des Stapels 291 bezüglich der adressierten Information durch die Abwesenheit eines FND-Signals aus dem AND-Tor 282 gekennzeichnet. Die Abwesenheit eines Signals aus dem Tor 282 hat zur Folge, dass der +1-Kreis 290 die Adresse in dem Register 289 zu der nächsten Adresse inkrementiert. Wenn die erwünschte Information an dieser Stelle gefunden ist, wird der passende Name durch die Register 29^ und 205 durchgelassen und durch das Tor 206 als eine Eingabe in das Ädressenpufferregister gewählt. Wenn die Segmentbasisinformation nicht in dem Stapel an der zweiten Stelle vorhanden is.t, dann muss diese Information, ein Name und eine Priorität, in den Stapel 291 an einer der beiden vorher abge-
509821/100 3
rufenen Stellen geladen werden. Die in den Registern 210 und .209 gespeicherten Gültigkeitsbits werden in Verbindung mit der Prioritätsinformation in den Prioritätsfeldern für jede Stapelstelle verwendet, um zu bestimmen, wo eine neue Eingabe in dem Stapel 291 gespeichert wird.
Wenn der Stapel 291 adressiert ist, wird die Segmentbasisinformation in das 30 Bit-Datenregister 292 ausgelesen. Die Segmentbasisinformation in dem Register 292 wird mit der laufenden Segmentbasisinformation auf dem Sammelkanal 354 in einem 30 Bit-Vergleicher 292 verglichen. Wenn die SB-Information aus dem Stapel und die Information auf dem Sammelkanal 354 gleich sind und der gültige Bit in das VB-Register 209 gesetzt ist, dann bildet das AND-Tor 282 ein FND-Signal, welches anzeigt, dass die laufende Segmentbasisinformation vorher in den Stapel 291 eingegeben wurde.
Jedesmal, wenn der Stapel 291 adressiert wird, wird der Name der abgerufenen Eingabe in das freilaufende IA-Register 294 eingegeben. Wenn ein Stapelzugriff entweder eine FND-Anzeige aus dem Tor 282 ergibt" oder gebraucht wird, um eine neue Eingabe zu schreiben, wird entweder der "gefundene" Name oder der neue Name aus dem IA-Register 294 ausgegeben und in einem IB-Register 205 bewahrt. Von hier aus wird der Name durch den Wähler 206 auf den Sammelkanal 392 zur Eingabe in das Adressenpufferregister 363 in Pig. 3 eingegeben.
509821/1003
Wenn das Einschreiben einer neuen Eingabe in den Stapel die Verlagerung einer alten Eingabe verursacht, muss der Stapel zuerst abgerufen und der Name der verlagerten Eingabe aus dem IÄ-Register 294 bewegt und in dein IAB-Register 204 und dem IB-register 205 bewahrt werden. Diese Verlagerung wird veranlasst, wenn eine neue. Eingabe in eine:; vorher volle Stelle geschrieben v/erden muss oder.wenn der Stapel 291 schon 31 Programmeingaben enthält. Aus dem IB-Register 205 wird der verlagerte Name zeitweise durch den Wähler 206 in den Sammelkanal 392 zur Eingabe in das Adressenpufferregister 363 in Fig. 3 durchgelassen. Dort wird er später benutzt, um alle Eingaben in dem logischen Übersetzungsspeicher ungültig zu machen, welche den gleichen Namen haben. Der verlagerte in dem IAB-Register 204 bewahrte Name ist auch der nächste Name, der einer neuen Programmeingabe zugewiesen wird. Das CTB-Register 207 enthält den Namen, der einer neuen Programmeingabe zugewiesen wird, wenn das IAB-Register leer ist. Anfänglich wird das CTB-Register 207 auf den ersten einer Folge von 32 Namen (den Namen "0") eingestellt. Wenn der Name in dem CTB-Register 207 gebraucht wird, sobald eine neue Programmeingabe in den Stapel 291 gemacht wird, so wird der nächstfolgende Name in dem Inkrementor 208 erzeugt und das CTB-Register 207 auf den neuesten Stand gebracht.
Sobald ein Programm etwa dazu gelangt, die Steuerung des Systems zu übernehmen, wird die laufende Priorität seiner Programmeingabe, wenn eine vorhanden ist, oder die Priorität 31 (die niedrigste) wenn eine neue Programmeingabe gemacht werden
509821/1003
muss, in einem PAA-Register 298 bewahrt. Wenn die Systemsteuerung auf das Programm umgeschaltet wird, wird die Priorität seiner Programmeingabe auf Null gestellt - den Höchstwert und sein Name wird in dem IAA-Register 295 bewahrt. Die Priorität muss nunmehr durch den Ausgabestapel 291 auf den neuesten Stand gebracht werden. Der Stapel 291 wird an jeder Stelle durch sequentielles Ordnen sämtlicher durch das CTA-Register spezifizierbare Adressenkombinationen adressiert. Jedesmal, wenn eine gültige Programmeingabe abgerufen wird, wird ihr Name in dem IA-Register 294 und ihre Priorität in dem PA-Register verriegelt. Das IA-Register 294 wird mit dem IAA-Register 295 in dem Vergleicher 296 verglichen. Wenn diese die gleichen sind, d.h. auf die gerade vorher gemachte Programmeingabe zugegriffen wird, ist keine Aktualisierung der Priorität erforderlich. Wenn das IA-Register 294 und das IAA-Register 295 verschieden sind, wird das PA-Register 297 mit dem PAA-Register 298 in dem Vergleicher 299 verglichen. Wenn das PA-Register 297 geringer ist als das PAA-Register 298, war die angeforderte Programmeingabe von höherer Priorität als das laufend in der Systemsteuerung befindliche Programm (das nunmehr die höchste Priorität hat). Das PA-Register 297 wird dann in der Prioritätsschaltung 202 inkrementiert und in das PB-Register 203 gebracht. Von da aus wird es in den Stapel 291 zurückgeschrieben, um die angeforderte Programmeingabenpriorität niedriger zu machen. Wenn die Prioritätszählung in dem PA-Register 297 grosser ist als die Zählung in dem PAA-Register 298, verändert die Schaltung 202 nicht den in dem PB-Register 203 plazierten Wert des PA-Registers 297
509821/1003
und die angeforderte Pfogrammeingabenpriorität bleibt dieselbe.
In Fig. 5 ist ein allgemeines Blockschema des Hauptspeichers 2 von Fig. 1 gezeigt. Die Speichersteuerungseinheit 4 vermittelt 81 Datenbits an den Sammelkanal 808, 19 Adressenbits an den Sammelkanal 809', 30 Steuerbits an den Sammelkanal 810 der Sammelkanalverkehrseinheit 805 in dem Hauptspeicher 2. üie Sammelkanalverkehrseinheit 805 schickt 81 Datenbits über den Sammelkanal 811 zu der Speichersteuerungseinheit 4 zurück. Die Sammelkanäle 808 und 811 enthalten generell 64 Datenbits , 9 Bits eines dazugehörigen Fehlerkorrekturcodes, 5 Schlüsselbits, einen zugeordneten Paritätsbit und zwei zusätzliche Steuerbits. Der Adressensammelkanal 809' enthält entsprechend der Angabe 19 Adressenbits. Die Zahl der Adressenbits ändert sich, aber in Abhängigkeit von der Grosse des Hauptspeichers 2. Für eine kleinere Ausbaustufe sind 16 Adressenbits typisch.
In Fig. 5 ist die Instruktionseinheit 8 von Fig. 1 im einzelnen gezeigt. Eine Mehrheit von 14 Registern 3IO-316 bewirken die Eingabe von Informationen in einen effektiven Adressenaddierer 318, der nach dem effektivem Adressenregister 322 hin mündet. Das Register 322 speist über den Sammelkanal 362 das Adressenpufferregister der Speichereinheit. Die Instruktionseinheit 8 enthält auch gerade und ungerade,Registerstapel 338 und 339, die durch die Register 334 und 335 aufgeladen werden und nach den Registern 341 und 342 hin münden. Eine Mehrzahl von Steuerregistern 344-348 werden zur Steuerung verschiedener
5 09821/1003
Steuerinformationen angewendet. Insbesondere werden das CR-O-Register 344 und das CR-1-Register 345 in Verbindung mit einer dynamisch adressierten übersetzung benutzt und geben ihre Information über den 30 Bit-Saramelkanal 354 zu der Speichereinheit 'von Fig. 2 und 3 ab. '
Die Arbeitsweise ist folgende:
Die Speichereinheit von Fig. 3 wird in der Weise, dass sie eine dynamische Adressenübersetzung jedesmal erreicht, wenn eine Speicherregister-Bezugnahme erfolgt. Übersetzungen treten in Form von Blockadressen auf, "Segmente" genannt, wobei die Segmente weiter in "Seiten" genannte Blöcke unterteilt sind. Ein Segment ist typischerweise ein Block von sequentiellen logischen Adressen mit einer Spannweite von 65 536 oder 1 048 576 Bytes. Das Segment beginnt bei einer Adresse, die ein vielfaches seiner Abmessung darstellt. Die Abmessung oder Grosse des Segments wird durch Bits 11 und 12 aus dem Steuerregister 0 (CRO) gesteuert, das in der Instruktioriseinheit 8 des Systems von Fig. 1 angeordnet ist.
Eine Seite ist typischerweise ein Block eines kontinuierlichen Speichers, der 2 048 oder 4 096 Bytes enthält. Eine Seite beginnt an einer Adresse, die ein vielfaches ihrer Crösse oder Abmessung darstellt. Die Seitengrösse wird bestimmt durch die Bits 8 und 9 in dem Steuerregister 0 (CRO). Jede logische Adresse ist in ein Segmentindexfeld, ein Seitenindexfeld und ein
509821/100 3
Byteindexfeld unterteilt.
Bei der übersetzung der logischen Adresse in eine reale Adresse werden zwei Übersetzungstabellen angewendet. Die Übersetzungstabellen sind normalerweise in dem Hauptspeicher 2 gespeichert. Der Segmentindexteil jeder logischen Adresse wird gebraucht, um eine Eingabe.aus einer Segmenttabelle zu wählen, wobei die Startadresse und Länge der Segmenttabeile durch die Inhalte des Steuerregisters 1 (CRl) in der Instruktionseinheit spezifiziert sind. Die Einga.be in die Segmenttabelle bezeichnet die zu gebrauchende Seitentabelle. Der Seitenindexteil der logischen Adresse wird benutzt, um eine Eingabe aus der Seitentabelle zu wählen. Diese Eingabe in der Seitentabelle enthält die Bits hoher Ordnung der realen Adresse, die der zu übersetzenden logischen Adresse entspricht. Das Byteindexfeld der logischen Adresse \tfird.unverändert für die Bitpositionen der realen Adresse niederer Ordnung benutzt.
Bei der übersetzung logischer Adressen in reale Adressen muss der angegebenen Nachschlagetabellenprozedur gefolgt werden, Da dynamische Adressenübersetzungen auf einer Seitenbasis durchgeführt werden, ist es höchstwahrscheinlich, dass, die gleiche übersetzung von einem in der Steuerung befindlichen Programm mehrmals gebraucht wird. Wenn also eine übersetzung von einer logischen in eine reale Adresse unter Benutzung des Nachschlagetabellenverfahrens gemacht ist, werden die reale Adresse und die logische Adresse, von der sie übersetzt wurde,
5098 21/1003
in einem Jochgeschwindigkeitsverseichnis, das als logischer übersetzungsspeicher bezeichnet wird, festgehalten. t.ine nachfolgende Anforderung nach der gleichen logischen Adresse kann, vorausgesetzt, dass das deiche Programm in der Steuerung ist, unmittelbar aus dem Übersetzungsspeicher' herausgezogen werden, ohne das ο auf den Hauptspeicher zugegriffen wird.
Jede Beziehung zwischen logischen Adressen und realen Adressen (LA/i-ίΛ), die in das Hochgeschwindigkeitsverzeichnis eingegeben ist, ist nur gültig für das besondere Programm, das in der Steuerung des Systems von Piß. 1 zur Zeit der ursprünglichen übersetzung der -Jachschlagtabelle war. Uni zu vermeiden, dass diese LA/RA-Information aus dem logischen übersetzungsspeicher entfernt werden muss, sobald ein neues Programm die Steuerung des Systems übernimmt, wird ein Identifizierer oder Name an jede LA/RA-Eingabe in dem Übersetzurigsspeicher angehängt. Der Name dient dazu, die Eingabe für nur dasjenige Programm verfügbar zu machen, das seine Linbringung verursachte und macht es daher für alle anderen Programme unbenutzbar, liine gültige reale Adresse kann aus dem logischen übersetzungspeicher nur angefordert v/erden, wenn sowohl der Name als auch die Adresse, die mit dem in der Steuerung befindlichen Programm verbunden sind, gleich dem Namen und der Adresse in dem logischen Übersetzungsspeicher sind. Die Entsprechung zwischen Programmen und Programmnamen wird in einem Programmidentifizierspeicher aufrechterhalten.
BAD ORIGINAL
509821/1003
Jedes zur Steuerung des Systems verwendete Programm hat eine Anzahl von Parametern, welche die Art bestimmen, in welcher Übersetzungen gemacht werden. Solche Parameter sind der Segmenttabellenursprung (STO), die Segmenttabellenlänge, die Segmentgrösse und die Seitengrösse. Zusammengefasst können diese Parameter als Segmentbasisinformation (SB) bezeichnet werden. Jedes Programm bzw. jeder Auftrag hat seine eigene Segmenttabelle, die an dem Segmenttabellenursprung beginnt.
Der Programmidentifizierspeicher bewirkt die Speicherung der Segmentbasisinformation für viele verschiedene Programme. Die Segmentbasisinformation eines jeden Programms wird einem 5 Bit-Namen zugeordnet, wobei zu jeder Zeit bis zu 31 Namen gleichlaufend 31 verschiedenen Programmen zugewiesen werden können. Jedesmal, wenn ein 30 Sekundenprogramm, das sich nicht gleichlaufend in dem Programmidentifizierspeicher befindet, die Steuerung des Systems übernimmt, wird der 32. Name unmittelbar zugewiesen und eine vorher verfügbare Programmeingabe in dem Stapel wird entfernt. Ein Prioritätsfeld in dem Stapel 3^0 bestimmt, welches Programm zu eliminieren ist, sobald der Stapel 32 Programmeingaben enthält. Durch Lieferung eines unbenutzten Namens wird der Stapel immer verfügbar und bereit für eine unmittelbare Zuweisung eines neuen Programms, die es dem System erlaubt, unmittelbar mit der Verarbeitung eines neuen Programms zu beginnen, ohne warten zu müssen, bis ein Name verfügbar gemacht ist.
509821/1003
Wenn eine alte Programmeingabe aus der; Programmicleritifi-■zierspeicher weggenommen wird, nüssen alle eingaben, welche den Hamen dieses alten Programms haben, ebenfalls aus dem Pufferoder Zwischenspeicher entfernt v/erden. Dieser Vorgang des Ungültigmächens alter logischer übersetzungsspeichereirigaoen in Verbindung mit einem einzelnen Programm geschieht iir. Hintergrund, während der neue Auftrag verarbeitet wird. Die Fähigkeit zur Aktualisierung des logischen Übersetzungsspeichers ohne Störung mit der Verarbeitung eines laufend in der Steuerung befindlichen Programms ist möglich, weil nur die eingaben im logischen Übersetzungsspeicher mit dem Namen des in der Steuerung befindlichen Programms für Übersetzungszwecke verfügbar sind. Daher können jegliche Eingaben in den logischen Übersetzungsspeicher mit einem unterschiedlichen Namen und insbesondere solche mit dem Namen des eliminierten Programms nicht benutzt werden.
Wenn das Datenverarbeitungssystem von Pig. I seine Arbeit beginnt, sind die ersten durchgeführten Schritte die einleitende Ladung des Programms (IPL). Wenn die einleitende Programmladung durchgeführt ist, bewirkt das überwachung- oder Leitprogramm die Ladung der zu ladenden Steuerregister, insbesondere des CR-O-Registers 344 und des CR-1-Registers 345. Das CR-O-Register 344 hat 4 Bits, welche die Seitengrösse und die Segmentgrösse bestimmen. Das CR-1-Register 345 bestimmt die Segmenttabellenlänge mit den BITS 0-7, wobei die Länge in Einheiten von 64 Bytes ausgedrückt wird. Die BITS 8-25 des CR-1-Registers 345 bezeichnen
5 0 9 8 2 1/10 0 3 BAD ORIGINAL
eine reale Adresse mit 24 Bits (wobei 6 Q's niederer Ordnung angehängt sind); es handelt sich dabei um die reale Adresse, welche den Beginn der Segmenttabelle für das erste Programm bezeichnet. Die Information der Register 344 und 345 befähigt, sobald sie in das Leitprogramm geladen ist, das'System, die Instruktionen des ersten·Programms zu verarbeiten. Jede logische 'Adresse in einer Instruktion wird in eine reale Adresse durch den Gebrauch von Übersetzungstabellen übersetzt, welche in den Hauptspeicher plaziert sind.
Die Einzelheiten der Arbeitsweise des Programmidentifizierspeichers werden anhand der Fig..7~9 erläutert. Die im folgenden beschriebenen Übersetzungsschritte lassen sich anhand der stark gezeichneten Linie in diesen Figuren, beginnend bei START, verfolgen. Der Übersetzungsvorgang beginnt durch Inspektion der Steuerregister 344 und 345 (CR CHARGE SIG von Fig. 7). Die Information wird auf dem Sammelkanal 354 zu dem Programmidentifizierspeicher von Fig. 4 durchgelassen. Da in dem vorliegenden Beispiel angenommen ist, dass das erste Programm sich in der Steuerung befindet und zu laufen beginnt (kein STACK SCAW), befindet sich keine Eingabe in dem Programmidentifizierspeicher von Fig. 4. Die 18 Bits der Segrnenttabellenadresse werden durch die Transformationsschaltung 287 durchgelassen und in den 7 Adressenbits in dem Register 289 abgebildet. Das Register 289 adressiert dann eine einmalige Stelle in dem Stapel 291. Der Stapel 291 leitet daraufhin Informationen zu den Registern 210 und 209, dem Register 292, und den Registern 294, 295,
509821/1003
und 298. Da keine Eingabe in dem Stapel vorhanden ist, ist der Gültigkeitsbit nicht da und das Register 209 verhindert die Befriedigung des Tors 282, so dass ein Signal "nicht gefunden" aus dem Tor 282 (ENTRY PND3 und zwar M) ausgegeben wird.
Die Steuerung 272 stellt fest, dass ein gefundenes Signal nicht aus dem Tor 282 ausgegeben wurde und veranlasst, dass die Adresse in dem Register 289 durch den +1-Inkrementor (LOCATION number, nämlich 1) durchgelassen wird. Die inkrercentierte Adresse wird durch den Wähler 282 in das Register 289 '
(CTA+1 ->CTA) eingegeben. Der Stapel 291 wird mit der +1,-
inkrementierten Adresse erneut adressiert. Da es sich bei dem hier beschriebenen Beispiel um die erste Adresse des Programms handelt, ist der Gültigbit wieder nicht da und ein Signal "gefunden" ergibt sich wiederum nicht (ENTRY PND, nämlich N).
Die Steuerung 272 stellt wieder kein "gefunden"-Signal aus dem Tor 282 fest und veranlasst die Ladung der Segmentbasisinformation auf dem Sammelkanal 35^ in die durch das Register 289 adressierte Stelle und veranlasst weiterhin, dass das Gültigbit gesetzt wird. Zur gleichen Zeit wird das CTB-Register 207 auf das Namensfeld geschaltet, um den ersten von 31 Namen zuzuweisen und das Prioritätsfeld wird auf sämtliche O's eingestellt, um dem ersten Programm die höchste Priorität zu erteilen. Auf diese Weise wird der Prqgrammidentifizierspeicher von Fig. 4 mit der Segmentbasisinformation für das erste Programm geladen, während, ein Name und eine Priorität
509821/1 003
diesem Programm zugewiesen werden.
Als nächstes wird der Programmidentifizierspeicher erneut abgerufen. Dabei wird der Name zu dem ΙΑ-Register 29^ und IAA-Register 205 durchgegeben und auf diese Weise verfügbar gemacht, wenn er durch die Tore 206 für das Adressenpuff erregist er in Pig. 3 gewählt wird.
Die Adresse auf dem Sammelkanal 362 in Fig. 3 aus dem effektiven Adressenregister 322 in der Instruktionseinheit von B1Ig. 6 wird zusammen mit dem Hamen auf dem Sammelkanal 392 aus dem Programmidentifizierspeicher 340 in da's Adressenpufferregist er geladen. Der logische Übersetzungsspeicher 255 wird dann adressiert, um zu bestimmen., ob eine logische Adresse mit dem gleichen Namen, wie er aus dem Programmidentifizierspeicher abgerufen wurde, sich in dem Speicher 255 befindet. Die logische Adresse und der Name aus dem Adressenpufferregister 363 werden in das logische Adressenregister 379 eingegeben und von dort aus verglichen mit den Ausgaben aus dem logischen Übersetzungsindexteil des Speichers 255 in den Vergleichern 328 und 329. Da das hier erörterte Beispiel den ersten Zugriff betrifft, wird keine Eingabe in1 dem logischen, Übersetzungsspeicher 255 gefunden. Um die gewünschte Information zu erhalten, muss auf die Segmenttabelle in dem Hauptspeicher zugegriffen werden.
Die reale Adresse des Segmenttabellenursprungs wird auf
509821/1003 · .
dem CPU SBR-Sammelkanal 35^ aus der Instruktionseinheit in das Übersetzungsregister -387 durch die Wähltore 333 durchge- · lassen. Auch die Segmentzahl aus dem Adressenpufferregister wird in das Segmentζahlregister 261 durchgelassen. Die Segmentzahl wird dargestellt durch die Bits hoher Ordnung der logischen Adresse und kann die BITS 8-15 umfassen, je nach der Segmentgrösse. Danach werden die Inhalte des Übersetzungsregisters 387 durch die Tore 38Ο gewählt und an den Leitungsaddierer 36Ο durchgegeben, und die Se'gmentregisterzahl aus dem Register 26l wird gleichfalls gewählt, zu dem Leitungsaddierer 36Ο gegeben; beide werden addiert und bilden ein Ergebnis, das in dem Adressenpufferregister 363 gespeichert wird. Die Inhalte des Registers 363 sind nun die Adresse der Segmenttabelleneingabe, die durch das Register 379, das Register 359 und das Hauptspeicher-Adressenregister 36^ gebraucht wird, um den Hauptspeicher über den Sammelkanal 8091 zu adressieren. Die so aus dem Hauptspeicher angeforderte Information ist die Segmenttabelleneingabe, welche die Adresse des Ursprungs oder Anfangs der Tabellenseite enthält. Diese wird über das Hauptspeicherdatenregister 384 zu dem Hochgeschwindigkeits-Datenpufferregister 385 und durch die Wähltore 369 in das Übersetzungsregister 387 geleitet.
Als nächstes erfolgt der Zugriff auf die Seitentabelle in dem Hauptspeicher. Die Adresse des Anfangs oder Ursprungs der Seitentabelle befindet sich in dem Übersetzungsregister und die Seitenzahl in dem Seitentabellenregister 362. Die Sei-
509821/1003
tentabellenzahl ist dargestellt durch die Bits niederer Ordnung der logischen Adresse und kann die BITS 12-20 umfassen, je nach der Segmentgrösse und der Seitengrösse. Wenn die Seg-: mentzahl die BITS 8-14 enthält, dann enthält die Seitenzahl
den Abgleich der Adressenbits, d.h. die BITS 15-20. Die Seitenzahl wird aus dem Register 2β2 ausgewählt und in den Leitungsaddierer 3öQ eingegeben und der Seitentabellenanfang aus dem Übersetzungsregister 387 wird durch den Wahlkreis 38Ο zu dem Leitungsaddierer 36Ο durchgeschaltet. Der Anfang und die Seitenzahl v/erden addiert und das Ergebnis in das Adressenpuff erregister 363 eingegeben, um die reale Adresse der Seitentabelleneingabe zu bilden. Die Inhalte des Adressenpufferregisters 363 werden durch das Dogisehe Adressenregister 379» das reale Adressenregister 359 und das Hauptspeicher-Adressenregister J>6k hindurchgegeben, um die Hauptspeicheradresse auf dem Sammelkanal 8Ο9' zu adressieren. Das Ergebnis des Zugri-ffs, die Seitentabelleneingabe, erscheint in dem Hauptspeicherdatenregister 384, wo es auf das Hochgeschwindigkeits-Datenpufferregister 385 übertragen, durch den Kreis 369 ausgewählt und in das Übersetzungsregister 387 eingegeben wird.
Die Information ist nun zum Laden des logischen Übersetzungsspeichers von Fig. 3 verfügbar. Die logische Adresse wird aus dem Register 374 durch den Kreis 38Ο gewählt und zu dem Addierer 36Ο geleitet, wo nichts dazu addiert wird, und wird dann durch das Adressenpufferregister 363 durchgelassen. Die logische Adresse und der Name in dem Register 363 adressieren
5 03821/1003
den logischen Übersetzungsspeicher 355. Die in dem Übersetzungsregister 387 gespeicherte Seiteneingabe bildet die BITS 8-20 der realen Adresse der Daten, und diese reale Adresse wird durch den Dateneingabekanal (DI) des Datenteils des logischen Übersetzungsspeichers 255 eingegeben. Die logische Adresse mit den BITS 8-I3 und die 5 Namenbits aus dem Adressenpufferregister 363 werden durch den Dateneingabekanal (DI) des Indexteils des logischen Übersetzungsspeichers 255 durchgelassen.
Der- logische Übersetzungsspeicher 255 wird nun erneut mit der Information in dem Pufferregister 363 adressiert. Da der Speicher 255 nun beladen ist, werden die realen Adressenbits hoher Ordnung in das reale Adressenregister aus dem Datenteil des Speichers 255 eingegeben. Der Datenpufferspeicher 355 wird ebenfalls adressiert unter Verwendung der Information aus dem Adressenpufferregister 363. Die Inhalte des Indexteils des Speichers 355 werden ausgelesen aus den adressierten Stellen und durch Wählstromkreise 396 und 397 gewählt, um eine Eingabe an die Vergleicher 336 und 337 zu bilden. In diesen erfolgt ein Vergleich mit den Inhalten des realen Adressenregisters 359· Da es sich bei dem hier erörterten Beispiel um den ersten Zugriff auf den Datenpufferspeicher 355 handelt, erfolgt kein Vergleich. Dementsprechend wird die reale Adresse aus dem Register 359 in das Hauptspeicheradressenregister 364 eingegeben, von wo sie über den Adressensarnme!kanal 809' an die Hauptspeichereinheit ausgegeben wird. Die Adresse an dem Saimr.el-
5Ö9821/1003
kanal 8O9T veranlasst den Zugriff auf den Hauptspeicher und die adressierten Daten werden in dem Hauptspeicherregister über den Datensammelkanal 811 verriegelt. Die Information aus dem Register 384 wird auf das Hochgeschwindigkeits-Datenpufferregister 385 übertragen, νιο sie von dem Kreis 3&9 gewählt und in dem Instruktionswortregister 388 gespeichert wird. Zur gleichen Zeit werden die Daten in den Datenteil des Datenpufferspeichers 355 über den Dateneingabekanal (DI) eingegeben. Ausserdem werden die realen Adressenbits aus dem Register an den Indexteil des Datenpufferspeichers 355 über den Dateneingangskanal (DI) eingegeben. Das Instruktionswort in dem Register 388 war die ursprünglich gewünschte und von der logischen Adresse adressierte Instruktion; sie wird aus dem Register 388 auf die Instruktionseinheit übertragen.
Wenn der nächste Zugriff auf den Speicher das gleiche Programm umfasst, dann wird der gleiche Name von dem Prograinmidentifizierspeicher 3^0 zu dem Adressenpufferregister 363 ausgegeben. Wenn die logische Adresse ebenfalls die gleiche ist, so wird die Information in dem logischen Übersetzungsspeicher 255 und in dem Datenpufferspeicher 355 gefunden, so dass die gewünschte Information unmittelbar in einem der Ausgangsregister 387-39I ohne Notwendigkeit eines Zugriffs.auf den Hauptspeicher gespeichert werden kann. Wenn die logische Adresse verschieden, aber das Programm dasselbe ist, wird erneut auf den Hauptspeicher zugegriffen, urn die Speicher 255 und 355 in der vorher angegebenen Weise zu beladen.
5 0 9 8 2 1/10 0 3
Wenn ein neues Programm die Steuerung-des Systems nach Pig. 1 übernimmt, werden 'die Steuerregister in der Instruktionseinheit von Fig. 6 mit der neuen Segrnentbasisinformation beladen. Die Segmentbasisinformation wird in den Progrannidentifizierspeicher von Pie« '· eingegeben, wo eine erste Stelle adressiert wird und kein Abgleich gefunden wird. ..de Adresse wird um eins inkreraentiert, und wiederum wird die Adresse nicht gefunden. Ls wird ein neuer Uame durch das CTE-Ilegister 2u7 zugewiesen, da bei dem vorliegenden Beispiel angenommen ist, dass es sich um das zweite Programm in der Steuerung des Systems handelt. Die Priorität wird aktualisierts der gültige Bit gesetzt und die Information aus dem Progranmidentifizierspeicher von Fig. 4 ausgelesen, wobei ein Name in das Adressenpufferregister 363 von Fig. 3 plaziert wird.
Die Arbeitsweise des Puffer- oder Zwischenspeichers von Pig. 3 verläuft dann weiter wie vorher angegeben. Jeciear.ial, wenn die Programme in der Steuerung die Gesamtzahl 31 erreichen und ein neues Programm die Steuerung übernimmt, wird den Programm sofort ein 32. Name zugewiesen, aber es wird auch sofort .einer der vorher in dem Programnidentifizierspeicher befindlichen Namen eliminiert. Die entfernte Eingabe wird in dem IAB-Register 204 des Programmidentifizierspeichers 272 festgehalten. Alle 256 Stellen in dem logischen (Joersetzungs- , speicher 255 werden dann zu je zweien für einen Vergleich mit dem 5 Bit-Namensfeld adressiert, das von dem Register 204 über' das· Adressenpufferregister 363 zu dem logischen Adressenre-
509821/1003 bad ORtGlNAL
Eist er 379 durchgeschaltet wird, riur das Namens feld wird verglichen und für jede Stelle, die einen Vergleich hat, wird die Information in dem- Speicher eliminiert. Die hliminierung von Information bewirkt aber keine gegenseitige Störung mit dor Verarbeitung einer Anforderung an den Speicher von selten des neuen 32. Programms, da dem neuen Programm ein eigener Käme zugewiesen wurde, der sich von demjenigen, der gelöscht wurde« unterscheidet. Die Löschung einer Information aus dem logischen Übersetsungsspeicher geschieht im Hintergrund, generell ohne die Leistungsfähigkeit des Datenverarbeitungssystems zu beeinträchtigen.
Im Zusammenhang mit Fig. 2 wurde eine Ausführungsform eines Programmidentifizierspeichers beschrieben, bei v-ielcher der Speicher einen Indexteil und einen Datenteil aufwies. Ferner waren der Indexteil und der Datenteil je umfasst von einem Primärabschnitt und einem Austauschabschnitt. Der Programmidentifizierspeicher von Fig. 2 bewirkte die Adressierung eines logischen Übersetzungsspeichers. Im Zusammenhang mit' Fig. 3 wurde eine andere Ausführungsform eines Programmidentifizierspeichers beschrieben, bei dem der Speicher redundant von der übersetzung der Segmentbasisinformation aus einer Kontrollsumraentabelle adressiert wurde. Der Programmidentifizierspeicher von Fig. 3 bewirkte auch die Adressierung des logischen ü'oersetzungsspeichers. Bei den Aus führungs formen nach Fig. 2 und nach Fig. 3 adressierte der logische Übersetzungsspeicher v.7iederum einen Datenpufferspeicher. Während zwei Ausführungs-
5 0 9 8 2 1/10 0 3 p original
formen eines Programmidentifizierspeichers beschrieben wurden, können auch weitere Ausführungsformen angewendet werden, bei denen der Programmidentifizierspeicher den logischen Übersetzungsspeicher adressiert, der wiederum den Datenpufferspeicher adressiert.
In Verbindung mit der Adressierung des logischen Übersetzungsspeichers 255 in Fig. 3 wurden die 7 Bits niederer Ordnung zum Adressieren sowohl des Datenteils als auch des Indexteils des Speichers benutzt. Der Indexteil des Speichers wiederum speicherte die 6 Adressenbits hoher Ordnung zuzüglich 5 Namenbits. Eine wahlweise anwendbare Ausführungsform für den logischen Übersetzungsspeicher besteht darin, dass ein Kontrollsummentabellen-Adressierschema benutzt wird. Bei dieser wahlweise anwendbaren Ausführungsform werden beispielsweise die 5 Namenbits zuzüglich den 13 Adressenbits hoher Ordnung (BITS 8-20) in eine Kontrollsummentabelle eingegeben und in 7 Adressenbits abgebildet. Diese 7 abgebildeten Adressenbits werden dann benutzt, um sowohl den Indexteil als auch den Datenteil des logischen Übersetzungsspeichers 255 zu adressieren. Bei der wahlweisen Ausführungsform enthält der Indexteil des Speichers 255 noch die 6 Adressenbits hoher Ordnung zuzüglich der 5 Namenbits, welche auf die Adressierung hin an die Vergleicher 328 und 329 ausgegeben werden.
Die Erfindung wurde hier unter Bezugnahme auf bevorzugte
509821/1003
Ausführungsformen davon beschrieben und dargestellt. Es versteht sich jedoch von selbst, dass im einzelnen auch Abänderungen gemacht werden können 3 ohne dass dadurch von dem grundsätzlichen Erfindungsgedanken abgewichen wird. Alle beschriebenen oder dargestellten Einzelheiten sind, soweit sie in diesem Zusammenhange neu sind, als erfindungswesentlich anzusehen.
5098 21/1003

Claims (19)

  1. Patentansprüche
    (Iy Datenverarbeitungssystem, welches einen mittels realer Adressen adressierten Speicher und eine Verarbeitungseinheit zur Speicheradressierung für das Heranholen und Speichern von Informationen in Verbindung mit der Ausführung von Instruktionen aufweist, wobei die Instruktionen aus einer Mehrzahl von Systemprogrammen empfangen werden und wobei die Programme zur Identifizierung von Speicherungsstellen dienen, indem logische Adressen benutzt werden, und wobei jedem Programm eine einmalige Speichertabelle zur Übersetzung logischer Adressen in reale Adressen zugeordnet ist, gekennzeichnet durch folgende Merkmale:
    Eine logische Übersetzungsspeichereinrichtung zum Speichern des Namens eines Programmidentifizierers sowie zugeordneter logischer Adressen und zum Speichern entsprechender übersetzter realer Adressen,
    eine Puffer- oder Zwischenspeichereinrichtung für Daten zum Speichern von Informationen nach Zugriff von realen Adressen her,
    eine Programmidentifizier-Speichereinrichtung mit mehreren Namenstellen zur Speicherung je eines Hamens, der ein unterschiedliches Programm identifiziert, welches Informationen in der logischen Übersetzungsspeichereinrichtung hat, wobei die Programmidentifizier-Speichereinrichtung Mittel zur Leerhaltung·
    509821/1003
    mindestens einer der Stellen zwecks Verfügbarkeit zur Verwendung für ein neues Programm enthält, das keine Information in dem logischen Übersetzungsspeicher hat.
  2. 2. Datenverarbeitungssystem nach Anspruch 1, dadurch gekennzeichnet, dass die Programmidentifizier-Speichereinrichtung folgende weiteren Merkmale aufweist:
    Einen redundant adressierten Speicherstapel mit mehreren Stellen, von denen jede ein Segmentbasisfeld zur einmaligen Identifizierung eines Programms, ein Namenfeld zur Speicherung eines dem in dem Segmentbasisfeld identifizierten Programm zugeordneten Namens und ein Prioritätsfeld zur Bildung einer Ersatz- oder 'Austauschpriorität für das in dem Segmentbasisfeld identifizierten Programm enthält,
    eine Adressiervorrichtung zum Adressieren der Stellen in dem Speicherstapel,
    eine Datenausgabevorrichtung zum Speichern der aus dem Speicherstapel ausgelesenen Informationen,
    .eine Dateneingabevorrichtung zum Beladen des Speicherstapels mit Informationen,
    eine Stapelsteuervorrichtung zum Steuern der Adressiervorrichtung, der Dateneingabevorrichtung und der Datenausgabevorrichtung.
    509 821/1003
  3. 3. Datenverarbeitungssystem nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Adressiervorrichtung eine Quasizufallszahltafel zur Abbildung eines ersten Adressenbitfeldes auf ein zweites Adressenbitfeld enthält, wobei das zweite Feld kleiner ist als das erste.
  4. k. Datenverarbeitungssystem nach Anspruch 1, dadurch gekennzeichnet, dass die Programmidentifizier-Speichereinrichtung, die logische Übersetzungsspeichereinrichtung und die Puffer- oder Zwischenspeichereinrichtung für Daten je einen Indexteil und einen zugeordneten Datenteil enthält, wobei der Indexteil und der Datenteil in jedem Speicher durch die gleichen Adressierungsbits adressiert sind.
  5. 5. Datenverarbeitungssystem nach Anspruch h, dadurch gekennzeichnet, dass jeder von diesen Indexteilen und jeder von diesen Datenteilen einen Primärabschnitt und einen Austauschabschnitt enthält, dass das System weiterhin eine Adressiervorrichtung für jeden Speicher zum Adressieren dieser Speicher enthält und dass diese Adressiervorrichtungen Primär- und Austauschvergleichervorrichtungen zur Aufnahme der Inhalte einer adressierten Stelle in den Primär- und Austauschabschnitten des Indexteils zum Vergleich mit einer Eingabeadresse und eine Einrichtung zur Auswahl des Primär- oder Austauschabschnitts des Datenteils als Funktion eines Vergleichs in der Primär- bzw. Austauschvergleichervorrichtung enthält, und dass das System eine Einrichtung zum Verbinden des gewählten
    509821/1003
    Ausgangs aus dem Datenteil des Programmidentifizierspeichers mit der Vergleichervorrichtung für den logischen Übersetzungsspeicher sowie eine Einrichtung zum Verbinden des gewählten Ausgangs aus dem Datenteil des. logischen Übersetzungsspeichers mit der Vergleichervorrichtung für den Datenpuffer- oder Zwischenspeicher enthält.
  6. 6. Datenverarbeitungssystem nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass der Speicherstapel ferner ein Gültigkeitsfeld in jeder Stelle zur Identifizierung gültiger Eingaben in den Speicherstapel aufweist.
  7. 7." Datenverarbeitungssystem nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass der Speicherstapel eine erste Anzahl von Stellen aufweist und dass das Namensfeld eine Anzahl von Bits enthält j welche einmalig eine zweite Zahl von Namen angeben, wobei die zweite Zahl kleiner ist als die erste, so dass die Zahl gültiger Eingaben in den Speicherstapel kleiner ist als die Zahl der Stellen in dem Speicherstapel.
  8. 8. Datenverarbeitmngssystem nach einem der Ansprüche 1-79 dadurch gekennzeichnet, dass der Speicherstapel Stellen enthält, an denen die Grosse oder Abmessung des Prioritätsfeldes gleich der Grosse oder Abmessung des Namensfeldes. ist.
    509821/1003
  9. 9. Datenverarbeitungssystem nach einem der Ansprüche 1-6, dadurch gekennzeichnet, d-ass die Datenausgabevorrichtung für jedes dieser Felder ein Freilaufregister zum Speichern des Ausgabewerts des Speicherstapels, jedesmal, wenn der Speicherstapel adressiert ist und ein unter Kontrolle der Steuereinrichtung stehendes, gesteuertes Register zum Speichern-ausgewählter Ausgabewerte aus dem Speicherstapel aufweist.
  10. 10. Datenverarbeitungssystem nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Programmidentifiziereinrichtung ferner noch folgende Merkmale aufweist:
    Eine in dem redundant adressierten Speicherstapel weiterhin enthaltenes Gültigkeitsfeld zur Identifizierung, ob das Namensfeld gültig ist,
    eine zugleich auch zum Abrufen der Gültigkeits-, der Segmentbasis-, der Namens- und der Prioritätsinformation dienende Speicherstapelsteuervorrichtung.
  11. 11. Datenverarbeitungssystem nach einem der Ansprüche 1-10, dadurch gekennzeichnet, dass die Speicherstapelsteuervorrichtung ausserdem eine Einrichtung zum Zuweisen von Namen, bis zur grösstmöglichen Anzahl von Namen, zur Eingabe in die Namensfelder und einer Einrichtung zum Ungültigmachen eines vorher verwendeten Namens, wenn die grösstmögliche Zahl von Namen zugewiesen worden ist, aufweist, so dass der vorher
    509821/1003
    verwendete Name zur Zuordnung zu einem neuen Programm verfügbar, wird.
  12. 12. Datenverarbeitungssystem nach einem der Ansprüche 1-11, dadurch gekennzeichnet, dass die Datenausgabevorrichtung eine Einrichtung zum Speichern des vorher benutzten Namens enthält, so dass dieser zur Adressierung der logischen Übersetzungsspeichereinrichtung und-zur Löschung des vorher benutzten Namens aus der logischen Übersetzungsspeichereinrichtung verfügbar ist.
  13. 13· Datenverarbeitungssystem nach einem der Ansprüche 1-10, dadurch gekennzeichnet, dass die Speicherstapelsteuervorrichtung weiterhin eine Einrichtung zum Gültigmachen einer Anzahl, die kleiner ist als die grösstmögliche Zahl der gültigen Felder, enthält, so dass mindestens eines der gültigen Felder nicht gültig gemacht ist und das zugeordnete Namensfeld für den Empfang eines einer neuen Segmentbasis zugeordneten Namens und eines zugeordneten neuen Programms verfügbar ist.
  14. 14. Datenverarbeitungssystem nach Anspruch 1, gekennzeichnet durch eine Einrichtung zum Adressieren des logischen Übersetzungsspeichers, um eine der realen Adressen zu erhalten, mit einer durch ein besonderes Systemprogramm gelieferten logischen Adresse und mit einem Namen aus dem diesem zugeordneten Programmidentifizierungsspeicher, sowie eine Einrichtung zum Adressieren der Puffer- oder Zwischenspeichereinrichtung für Daten mit einer
    5 09821/1003
    der realen Adressen zwecks Abrufs der dieser realen Adresse zugeordneten Information.
  15. 15. Datenverarbeitungssystem nach einem der Ansprüche 1-14, dadurch gekennzeichnet, dass die Speicherstapelsteuereinrichtung ferner eine Einrichtung zur Zuweisung von Namen, bis zur grösstmöglichen Anzahl von Namen, zur Eingabe in die Namenfelder sowie eine Einrichtung zum Ungültigmachen eines vorher benutzten Namens enthält, sobald die grösstrnögliche Zahl von Namen zugewiesen ist, um den vorher benutzten Namen zur Zuordnung zu einem neuen Programm verfügbar zu machen.
  16. 16. Datenverarbeitungssystem nach einem der Ansprüche 1-15, dadurch gekennzeichnet, dass die Datenausgabevorrichtung eine Einrichtung zum Speichern des vorher benutzten Namens aufweist, so dass der vorher benutzte Name für die Einrichtung zum Adressieren des logischen Übersetzungsspeichers verfügbar ist, aufweist, und dass diese Einrichtung zum Adressieren der logischen Übersetzungsspeichereinrichtung Mittel zum nacheinandei/erfolgenden Adressieren sämtlicher logischer Übersetzungsspeicherstellen sowie Mittel zur Peststellung des vorher benutzten Namens an jeder adressierten Stelle und Mittel zum Löschen des vorher benutzten Namens, sobald er an irgendeiner adressierten Stelle festgestellt ist, enthält.
  17. 17· Datenverarbeitungssystem mit einem durch reale Adressen adressierten Systemspeicher und mit einer Verarbeitungseinheit
    5 0 9 8 21/10 0 3
    zum Adressieren des Systemspeichers, zum Heranholen und Speichern von Informationen in Verbindung mit der Ausführung von Instruktionen sowie zum Ausführen dynamischer Adressenübersetzungen, wenn die Instruktionen aus einer Mehrzahl von Systemprogrammen empfangen sind, wenn jedes Programm Stellen in dem Systemspeicher identifiziert, wobei logische Adressen benutzt werden, die nicht einmalig für ein Programm sind, und wenn jedes Programm mit einer einmaligen Tabelle in dem Speicher zum dynamischen übersetzen nicht einmaliger logischer Adressen in einmalige reale Adressen verbunden ist, gekennzeichnet durch folgende Merkmale: ' .
    Eine logische Übersetzungsspeichervorrichtung, die einen Indexteil mit einer Mehrzahl von Stellen zum Speichern von ' Programmidentifiziernamen und zum Speichern dazugehöriger logischer Adressen sowie einen Datenteil mit einer Mehrzahl von Stellen zum Speichern entsprechender realer Adressen enthält, die durch übersetzen logischer Adressen in reale Adressen bei Verwendung einer einmaligen Tabelle erhalten worden sind,
    eine Puffer- oder Zwischenspeichereinrichtung für Daten mit einem Indexteil zum Speichern realer Adressen und mit einem Datenteil zum Speichern durch Zugriff aus dem Systemspeicher an den realen Adressen erhaltenen Informationen,
    eine Programmidentifizier-Speichereinrichtung mit einem redundant adressierten Speicherstapel, der eine Mehrzahl adres -
    509821/1003
    sierbarer Stellen mit je einem Segmentbasisfeld zur einmaligen Identifizierung eines Programms sowie ein Namenfeld zum Speichern eines dem in dem Segmentbasisfeld identifizierten Programm zugeordneten Namens, ein Prioritätsfeld zur Herstellung einer Austauschpriorität für das in dem Segmentbasisfeld identifizierte Programm und ein Gültigkeitsfeld zur Identifizierung, ob die Eingabe in das Namenfeld gültig ist, aufweist, wobei die Programmidentifizier-Speichereinrichtung eine Datenausgabevorrichtung zur Speicherung durch Zugriff von den adressierten Stellen in dem Speicherstapel erhaltener Informationen sowie eine Steuervorrichtung zum Steuern der Adressiervorrichtung, der Dateneingabevorrichtung und der Datenausgabevorrichtung zum Zugriff auf Gültigkeits-, Segmentbasis-, Namens-, und-Prioritätsinformation aufweist und die Speicherstapelsteuervorrichtung Mittel zur Zuweisung von Namen, bis zur grösstmöglichen Anzahl von Namen, zur Eingabe in die Namenfelder und Mittel zum Ungültigmachen eines vorher benutzten Namens, wenn die grösstmögliche Zahl von Namen zugewiesen ist, und zum Speichern des vorher benutzten Namens in der Datenausgabevorrichtung aufweist,
    eine Einrichtung zum Adressieren der Programmidentifizier-Speichervorrichtung mit der einem besonderen Programm zugeordneten Segmentbasisinformation bei laufender Steuerung des Datenverarbeitungssystems, um einen Namen, der dieses besondere Programm identifiziert, zu erhalten,
    509821/1003
    eine Einrichtung zum Adressieren der logischen Übersetzungsspeichereinrichtung, um eine der realen Adressen zu erhalten, bei Verwendung einer logischen Adresse aus dem besonderen Programm und bei Verwendung eines Namens aus der Programmidentifizier-Speichereinrichtung, welche das besondere Programm identifiziert, wobei die Einrichtung zum Adressieren der logischen Übersetzungsspeichereinrichtung auch Mittel zum nacheinander erfolgenden Adressieren sämtlicher logischer Übersetzungsspeicherstellen, wenn diese nicht durch eine logische Adresse zum Feststellen und Löschen des vorher benutzten Namens aus der logischen Übersetzungsspeichereinrichtung adressiert ist, enthält,
    eine Einrichtung zum Adressieren der Datenpuffer- oder Speichereinrichtung mit der erwähnten einen von den realen Adressen zum Zugriff auf die mit dieser realen Adresse verbundene Information.
  18. 18. Datenverarbeitungssystem mit einem durch reale Adressen adressierten Speicher und einer Verarbeitungseinheit" für die Speicheradressierung zum Heranholen und Speichern von Informationen in Verbindung mit der Ausführung von. Instruktionen, wobei diese Instruktionen aus einer Mehrheit von Systemprogrammen empfangen werden, wobei die Programme Speicherstellen identifizieren, indem logische Adressen benutzt werden und wobei jedes Programm mit einer einmaligen Speichertabelle zur übersetzung logischer Adressen in reale Adressen verbunden
    50982 1/1003
    ist, gekennzeichnet durch folgende Merkmale:
    Eine logische Übersetzungsspeichereinrichtung mit einem in Primär- und Austauschabschnitte zur Speicherung von Programmidentifizierungsnamen und zugehörigen logischen Adressen unterteilten Indexteil und mit einem in Primär- und Austauschabschnitte zum Speichern entsprechend übersetzter realer Adressen unterteilten Datenteil, eine Datenpuffer- oder Zwischenspeichereinrichtung mit einem in Primär- und Austauschabschnitte zum Speichern realer Adressen unterteilten Indexteil und mit einem in Primär- und Austauschabschnitte zum Speichern von aus den realen Adressen abgerufenen Informationen unterteilten Datenteil,
    eine,Programmidentifizier-Speichereinrichtung mit einer Mehrheit von Namenstellen zur Speicherung je eines zur Identifizierung eines unterschiedlichen Programms dienenden Namens, der eine Information in der logischen Übersetzungsspeichereinrichtung hat, wobei diese Programmidentifizier-Speichereinrichtung Mittel enthält, die dazu dienen, mindestens eine dieser Stellen leer und verfügbar zum Gebrauch durch ein neues Programm zu halten, das keine Information in der logischen Übersetzungsspeichereinrichtung hat,
    eine Einrichtung zum gleichzeitigen Adressieren der Primär- und Austauschabschnitte des Indexteils der logischen Übersetzungsspeichereinrichtung mit einer logischen Adresse, die
    509821/1003
    - as- -
    von einem besonderen Systemprogramm geliefert wird und mit einem Namen aus dem Programmidentifizierspeicher, der mit dem besonderen Systemprogramm verbunden ist, um eine der realen Adressen aus dem Primär- bzw. Austauschabschnitt des Datenteils der logischen Übersetzungsspeichereinrichtung zu erhalten,
    eine Einrichtung zum gleichzeitigen Adressieren der Primär- und Austauschabschnitte des Indexteils der Datenpuffer- oder Zwischenspeichereinriehtung mit einer der realen Adressen zum Zugriff auf mit dieser einen realen Adresse aus dem Primärbzw. Austauschabschnitt des Datenteils des Datenpuffer- oder Zwischenspeichers verbundene Informationen.
  19. 19. Datenverarbeitungssystem mit einem durch reale Adressen adressierten Speicher und eine Verarbeitungseinheit für die Speicheradressierung zum Heranholen und Speichern von Informationen in Verbindung mit der Ausführung von Instruktionen, wobei diese Instruktionen aus einer Mehrheit von Systemprogrammen empfangen werden, wobei die Programme Speicherstellen identifizieren, indem logische Adressen benutzt werden, und wobei jedes Programm mit einer einmaligen Speichertabelle für die übersetzung logischer Adressen in reale Adressen verbunden ist, gekennzeichnet durch folgende Merkmale:
    Eine logische Übersetzungsspeichereinrichtung zum Speichern eines Programmidentifiziernamens und dazugehöriger logischer
    509821/1003
    Adressen sowie zum Speichern entsprechend übersetzter realer Adressen,
    eine Datenpuffer- oder Zwischenspeichereinrichtung zum Speichern durch Zugriff aus den realen Adressen erhaltenen Informationen,
    eine Programmidentifizier-Speichereinrichtung mit einer Mehrzahl von Namenstellen zur Speicherung je eines Namens, der ein unterschiedliches Programm identifiziert, das eine Information in der logischen Übersetzungsspeichereinrichtung hat, wobei diese Programmidentifizier-Speichereinrichtung folgende Bestandteile umfasst:
    einen redundant adressierten Speicherstapel mit einer Mehrzahl von Stellen, von denen jede ein Segmentbasisfeld zur einmaligen Identifizierung eines Programms, ein Namenfeld zum Speichern eines dem in dem Segmentbasisfeld identifizierten Programm zugeordneten Namens, ein Prioritätsfeld zur Herstellung einer Austauschpriorität für das i-n dem Segmentbasisfeld identMzierte Programm und ein Gültigkeitsfeld enthält, das zur Identifizierung, ob das Namensfeld gültig ist, dient,
    eine Adressiereinrichtung zum Adressieren 509821/1003
    der Stellen in dem Speicherstapel mit der mit den Systemprogrammen verbundenen Segmentbasisinformation 3
    eine Datenausgabevorrichtung zum Speiehern von durch Zugriff aus den adressierten Stellen in dem Speicherstapel erhaltenen Informationen,
    eine Dateneingabevorrichtung zum Beladen adressierter Stellen in dem Speicher-Stapel mit Informationen,
    eine Speicherstapelsteuervorrichtung zum Steuern der Adressiervorrichtung, der Dateneingabevorrichtung und der Datenausgabevorrichtung zum Zugriff auf Gültigkeits-, Segmentbasis-, Namen- und Prioritätsinformation, wobei die Speicherstapelsteuereinrichtung Mittel zur Inkrementierung der Segmentbasisinformation um eins enthält, so dass die Adressiervorrichtung veranlasst wird, den Speicherstapel erneut zu adressieren, wenn die Adressiervorrichtung nicht veranlasst, dass ein gültiger Name in die Datenausgabevorrichtung eingeklinkt wird.
    509821 /1003
DE2455047A 1973-11-21 1974-11-20 Datenverarbeitungssystem mit einem Informationsspeicher Expired DE2455047C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US418050A US3902163A (en) 1973-11-21 1973-11-21 Buffered virtual storage and data processing system

Publications (2)

Publication Number Publication Date
DE2455047A1 true DE2455047A1 (de) 1975-05-22
DE2455047C2 DE2455047C2 (de) 1984-10-18

Family

ID=23656475

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2455047A Expired DE2455047C2 (de) 1973-11-21 1974-11-20 Datenverarbeitungssystem mit einem Informationsspeicher

Country Status (10)

Country Link
US (1) US3902163A (de)
JP (1) JPS5325774B2 (de)
BE (1) BE822410A (de)
CA (1) CA1026010A (de)
DE (1) DE2455047C2 (de)
ES (1) ES432147A1 (de)
FR (2) FR2251861B1 (de)
GB (1) GB1487078A (de)
IT (1) IT1025884B (de)
NL (1) NL183256C (de)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS51115737A (en) * 1975-03-24 1976-10-12 Hitachi Ltd Adress conversion versus control system
US3976978A (en) * 1975-03-26 1976-08-24 Honeywell Information Systems, Inc. Method of generating addresses to a paged memory
FR2323190A1 (fr) * 1975-09-05 1977-04-01 Honeywell Bull Soc Ind Dispositif pour proteger l'information contenue en memoire dans un calculateur numerique
GB1548401A (en) * 1975-10-08 1979-07-11 Plessey Co Ltd Data processing memory space allocation and deallocation arrangements
JPS52130532A (en) * 1976-04-27 1977-11-01 Fujitsu Ltd Address conversion system
US4042911A (en) * 1976-04-30 1977-08-16 International Business Machines Corporation Outer and asynchronous storage extension system
US4050094A (en) * 1976-04-30 1977-09-20 International Business Machines Corporation Translator lookahead controls
US4122530A (en) * 1976-05-25 1978-10-24 Control Data Corporation Data management method and system for random access electron beam memory
JPS52149924A (en) * 1976-06-09 1977-12-13 Hitachi Ltd Address converter
US4099256A (en) * 1976-11-16 1978-07-04 Bell Telephone Laboratories, Incorporated Method and apparatus for establishing, reading, and rapidly clearing a translation table memory
US4136385A (en) * 1977-03-24 1979-01-23 International Business Machines Corporation Synonym control means for multiple virtual storage systems
US4096573A (en) * 1977-04-25 1978-06-20 International Business Machines Corporation DLAT Synonym control means for common portions of all address spaces
FR2400729A1 (fr) * 1977-08-17 1979-03-16 Cii Honeywell Bull Dispositif pour la transformation d'adresses virtuelles en adresses physiques dans un systeme de traitement de donnees
US4453230A (en) * 1977-12-29 1984-06-05 Tokyo Shibaura Electric Co., Ltd. Address conversion system
JPS54161079U (de) * 1978-04-11 1979-11-10
US4373179A (en) * 1978-06-26 1983-02-08 Fujitsu Limited Dynamic address translation system
US4277826A (en) 1978-10-23 1981-07-07 Collins Robert W Synchronizing mechanism for page replacement control
JPS5580164A (en) * 1978-12-13 1980-06-17 Fujitsu Ltd Main memory constitution control system
JPS5687282A (en) * 1979-12-14 1981-07-15 Nec Corp Data processor
US4500952A (en) * 1980-05-23 1985-02-19 International Business Machines Corporation Mechanism for control of address translation by a program using a plurality of translation tables
US4482952A (en) * 1980-12-15 1984-11-13 Nippon Electric Co., Ltd. Virtual addressing system using page field comparisons to selectively validate cache buffer data on read main memory data
DE3107632A1 (de) * 1981-02-27 1982-09-16 Siemens AG, 1000 Berlin und 8000 München Verfahren und schaltungsanordnung zur adressierung von adressumsetzungsspeichern
US4821184A (en) * 1981-05-22 1989-04-11 Data General Corporation Universal addressing system for a digital data processing system
US4525780A (en) * 1981-05-22 1985-06-25 Data General Corporation Data processing system having a memory using object-based information and a protection scheme for determining access rights to such information
DE3280449T2 (de) * 1981-05-22 1994-05-11 Data General Corp Digitales Datenverarbeitungssystem.
US4660142A (en) * 1981-05-22 1987-04-21 Data General Corporation Digital data processing system employing an object-based addressing system with a single object table
US4456954A (en) * 1981-06-15 1984-06-26 International Business Machines Corporation Virtual machine system with guest architecture emulation using hardware TLB's for plural level address translations
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
JPS58147879A (ja) * 1982-02-26 1983-09-02 Toshiba Corp キヤツシユメモリ制御方式
US4926316A (en) * 1982-09-29 1990-05-15 Apple Computer, Inc. Memory management unit with overlapping control for accessing main memory of a digital computer
SE441872B (sv) * 1984-04-06 1985-11-11 Ericsson Telefon Ab L M Anordning for overvakning av ett databehandlingssystem
JPS6194159A (ja) * 1984-07-31 1986-05-13 テキサス インスツルメンツ インコ−ポレイテツド メモリ装置
US4985829A (en) * 1984-07-31 1991-01-15 Texas Instruments Incorporated Cache hierarchy design for use in a memory management unit
JPS61166653A (ja) * 1985-01-19 1986-07-28 Panafacom Ltd アドレス変換エラー処理方法
US4780816A (en) * 1986-05-16 1988-10-25 The United States Of America As Represented By The Secretary Of The Army Key-to-address transformations
US4922417A (en) * 1986-10-24 1990-05-01 American Telephone And Telegraph Company Method and apparatus for data hashing using selection from a table of random numbers in combination with folding and bit manipulation of the selected random numbers
US5101341A (en) * 1988-08-25 1992-03-31 Edgcore Technology, Inc. Pipelined system for reducing instruction access time by accumulating predecoded instruction bits a FIFO
JPH0291747A (ja) * 1988-09-29 1990-03-30 Hitachi Ltd 情報処理装置
JPH0760411B2 (ja) * 1989-05-23 1995-06-28 株式会社日立製作所 バッファ記憶制御装置
US5109496A (en) * 1989-09-27 1992-04-28 International Business Machines Corporation Most recently used address translation system with least recently used (LRU) replacement
US5956754A (en) * 1997-03-03 1999-09-21 Data General Corporation Dynamic shared user-mode mapping of shared memory
US6286062B1 (en) * 1997-07-01 2001-09-04 Micron Technology, Inc. Pipelined packet-oriented memory system having a unidirectional command and address bus and a bidirectional data bus
US6195734B1 (en) * 1997-07-02 2001-02-27 Micron Technology, Inc. System for implementing a graphic address remapping table as a virtual register file in system memory
US7299329B2 (en) * 2004-01-29 2007-11-20 Micron Technology, Inc. Dual edge command in DRAM
US7707385B2 (en) * 2004-12-14 2010-04-27 Sony Computer Entertainment Inc. Methods and apparatus for address translation from an external device to a memory of a processor

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2227882A1 (de) * 1971-06-30 1972-12-28 Ibm Virtuelle Speicheranordnung
US3723976A (en) * 1972-01-20 1973-03-27 Ibm Memory system with logical and real addressing

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3351917A (en) * 1965-02-05 1967-11-07 Burroughs Corp Information storage and retrieval system having a dynamic memory device
US3533075A (en) * 1967-10-19 1970-10-06 Ibm Dynamic address translation unit with look-ahead
US3665487A (en) * 1969-06-05 1972-05-23 Honeywell Inf Systems Storage structure for management control subsystem in multiprogrammed data processing system
UST843614I4 (de) * 1969-07-22
FR10582E (fr) * 1970-06-29 1909-07-30 Paul Alexis Victor Lerolle Jeu de serrures avec passe-partout
US3693165A (en) * 1971-06-29 1972-09-19 Ibm Parallel addressing of a storage hierarchy in a data processing system using virtual addressing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2227882A1 (de) * 1971-06-30 1972-12-28 Ibm Virtuelle Speicheranordnung
US3723976A (en) * 1972-01-20 1973-03-27 Ibm Memory system with logical and real addressing

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
IBM Druckschrift, No. GA22-7000-5 *
Lexikon der Datenverarbeitung, Verlag "Moderne Industrie", München, 4. Auflage, 1969, S. 602-605 *
Proceedings of the IEEE, Dez. 1966, S. 1774-1779 *

Also Published As

Publication number Publication date
FR2251861A1 (de) 1975-06-13
NL183256C (nl) 1988-09-01
US3902163A (en) 1975-08-26
JPS5081740A (de) 1975-07-02
JPS5325774B2 (de) 1978-07-28
DE2455047C2 (de) 1984-10-18
IT1025884B (it) 1978-08-30
BE822410A (fr) 1975-03-14
NL7415051A (nl) 1975-05-23
NL183256B (nl) 1988-04-05
FR130806A (de)
FR2251861B1 (de) 1978-06-16
ES432147A1 (es) 1976-09-16
GB1487078A (en) 1977-09-28
CA1026010A (en) 1978-02-07

Similar Documents

Publication Publication Date Title
DE2455047A1 (de) Datenverarbeitungssystem
DE3011552C2 (de)
DE2227882C2 (de) Virtuelle Speicheranordnung
DE2260353C2 (de) Schaltungsanordnung für die Adressenumsetzung in einer Datenverarbeitungsanlage
DE2235841C2 (de) Datenverarbeitungsanlage mit Speichersteuerung für mindestens einen Prozessor und diesen zugeordneten Pufferspeichern
DE2226382C3 (de) Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern
DE69637294T2 (de) Mikro-tlb mit parallelem zugriff zum beschleunigen der adressübersetzung
DE2231146C3 (de) Datenverarbeitungsanlage mit virtueller Adressierung
DE2131066C3 (de) Anordnung zum Adressieren eines Tabellenspeichers
DE1956604C3 (de) Datenverarbeitungsanlage
DE2459006C2 (de) Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage
DE3586635T2 (de) Vorausholungsanordnung fuer einen schnellpufferspeicher.
DE1815234A1 (de) Adressiereinrichtung fuer ein Speichersystem mit einem Grossraumspeicher und einem schnellen Arbeitsspeicher
DE4022885C2 (de) Verfahren zum Verschieben von Speicherbereichen und Hierarchie-Speichersystem
DE10002120B4 (de) Adressumsetzpufferanordnung und Verfahren für den Betrieb einer Adressumsetzpufferanordnung
DE2230266A1 (de) Datenverarbeitungsanlagen mit einer zentraleinheit unter verwendung virtueller adressierung
DE2302074A1 (de) Speicherschutzanordnung in einem multiprozessorsystem
EP0013737A1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
EP0600112A1 (de) Datenverarbeitungsanlage mit virtueller Speicheradressierung und schlüsselgesteuertem Speicherzugriff
DE1524129A1 (de) Datenverarbeitungssystem mit gemeinsamem Zugang
DE2939411C2 (de) Datenverarbeitungsanlage mit virtueller Speicheradressierung
DE2641722B2 (de) Hierarchisch geordnetes Speichersystem für eine datenverarbeitende Anlage mit virtueller Adressierung
DE2047062A1 (de) Verfahren und Einrichtung zur Messung der Effektivität einer Daten Verarbeitungsanlage mit virtueller Adre»»ici uiig
DE3931505C2 (de) Speichersteuerung in einer Datenverarbeitungsanlage
DE2331394B1 (de) Datenverarbeitungsanlage mit virtueller adressierung

Legal Events

Date Code Title Description
OD Request for examination
D2 Grant after examination
8364 No opposition during term of opposition