DE2455047A1 - Datenverarbeitungssystem - Google Patents
DatenverarbeitungssystemInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1063—Address 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing 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
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
•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.
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
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.
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 BÄ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)
- 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/1003mindestens einer der Stellen zwecks Verfügbarkeit zur Verwendung für ein neues Programm enthält, das keine Information in dem logischen Übersetzungsspeicher hat.
- 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. 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.
- 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. 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ählten509821/1003Ausgangs 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. 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." 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. 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. 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. 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. 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 vorher509821/1003verwendete Name zur Zuordnung zu einem neuen Programm verfügbar, wird.
- 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· 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. 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 einer5 09821/1003der realen Adressen zwecks Abrufs der dieser realen Adresse zugeordneten Information.
- 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. 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· Datenverarbeitungssystem mit einem durch reale Adressen adressierten Systemspeicher und mit einer Verarbeitungseinheit5 0 9 8 21/10 0 3zum 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/1003sierbarer 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/1003eine 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. 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 verbunden50982 1/1003ist, 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, die509821/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. 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 logischer509821/1003Adressen 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/1003der Stellen in dem Speicherstapel mit der mit den Systemprogrammen verbundenen Segmentbasisinformation 3eine 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
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)
| 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)
| 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)
| 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 |
-
0
- FR FR130806D patent/FR130806A/fr active Active
-
1973
- 1973-11-21 US US418050A patent/US3902163A/en not_active Expired - Lifetime
-
1974
- 1974-11-11 GB GB48768/74A patent/GB1487078A/en not_active Expired
- 1974-11-19 NL NLAANVRAGE7415051,A patent/NL183256C/xx not_active IP Right Cessation
- 1974-11-20 BE BE150695A patent/BE822410A/xx not_active IP Right Cessation
- 1974-11-20 DE DE2455047A patent/DE2455047C2/de not_active Expired
- 1974-11-20 CA CA214,262A patent/CA1026010A/en not_active Expired
- 1974-11-20 FR FR7438144A patent/FR2251861B1/fr not_active Expired
- 1974-11-21 ES ES432147A patent/ES432147A1/es not_active Expired
- 1974-11-21 IT IT29681/74A patent/IT1025884B/it active
- 1974-11-21 JP JP13507474A patent/JPS5325774B2/ja not_active Expired
Patent Citations (2)
| 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)
| 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 |