DE3151745C2 - - Google Patents
Info
- Publication number
- DE3151745C2 DE3151745C2 DE3151745A DE3151745A DE3151745C2 DE 3151745 C2 DE3151745 C2 DE 3151745C2 DE 3151745 A DE3151745 A DE 3151745A DE 3151745 A DE3151745 A DE 3151745A DE 3151745 C2 DE3151745 C2 DE 3151745C2
- Authority
- DE
- Germany
- Prior art keywords
- memory
- signals
- address
- page
- ram
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
Description
Die Erfindung betrifft eine Multitasking-Datenverarbeitungsanlage
nach dem Oberbegriff des Patentanspruchs 1.
Insbesondere betrifft die Erfindung eine Verbesserung der
Speicher-Verwaltung in Datenverarbeitungsanlagen, die einen
virtuellen Speicher unterstützen.
Grundsätzlich sind in physischen (realen) Speichern zum Einsatz
in Datenverarbeitungsanlagen die Kosten (je Speichereinheit)
des Speichers direkt proportional zur Zugriffsgeschwindigkeit
zur Speichereinheit. Speicher mit sehr schnellem Zugriff
sind teurer als Speicher mit längerer Zugriffszeit.
Daher werden beim Entwurf von wirtschaftlichen Datenverarbeitungsanlagen
viele mit einer Hierarchie von Speichern
versehen, von denen einige eine längere Zugriffszeit, jedoch
eine große Speicherkapazität besitzen, während andere eine
kurze Zugriffszeit zeigen, jedoch von kleiner Speicherkapazität
sind. Beim Betrieb der Datenverarbeitungsanlage wird der
Inhalt der Speicher zwischen den einzelnen Speichern übertragen
bzw. kopiert.
Insbesondere besitzen Datenverarbeitungsanlagen im allgemeinen
einen "Hauptspeicher" (auch Arbeits- oder Zentralspeicher
genannt), der sich innerhalb der Anlage befindet und zu dem
durch die Zentraleinheit der Anlage ein direkter Zugriff erfolgen
kann. Ein derartiger Speicher besteht typischerweise
aus dynamischen Direkt-Zugriff-Speichern (RAM′s).
Außerdem besitzen derartige Anlagen im allgemeinen einen
"Hilfsspeicher" (oder "Dateien" oder "Ablagen"), die in peripheren
Geräten wie Magnetbändern oder -platten vorgesehen
sind. Die Zugriffszeit zum Hauptspeicher beträgt typischerweise
500 ns, dagegen zu einer Magnetplatte typischerweise
20 ms.
Schließlich besitzen derartige Datenverarbeitungsanlagen im
allgemeinen einen Steuer-Speicher, der vom Hauptspeicher getrennt
oder ein gegen Überschreiben geschützter Teil des
Hauptspeichers sein kann, sowie einen sehr schnellen Cache-
Speicher, der eine zeitveränderliche Untermenge des Inhalts
des Hauptspeichers enthält und sich im allgemeinen in der
Zentraleinheit befindet.
Wenn die Daten (die das Makroprogramm einschließen können),
die von der Datenverarbeitungsanlage benutzt werden, mehr
Speicherkapazität erfordern, als im Hauptspeicher verfügbar
ist, ist weitere Speicherkapazität im Hilfsspeicher vorgesehen.
Vor der Entwicklung des virtuellen Speichers wurden die
Daten durch den Programmierer in Abschnitte aufgeteilt, sogenannte
Überlagerungen, deren jede in den Hauptspeicher paßte.
Es wurde jeweils nur eine der Überlagerungen in den Hauptspeicher
beim Betrieb der Anlage eingespeichert; ein Teil der Daten,
die später eingespeichert wurden, wurde dem früher eingespeicherten
Teil überschrieben. Der Programmierer war verantwortlich
für die Aufteilung seiner Daten in Überlagerungen,
wobei er zu entscheiden hatte, wo im Hilfsspeicher jede Überlagerung
zu speichern war, zu verfolgen hatte, wann eine neue
Überlagerung einzuspeichern war, den Transport von Überlagerungen
zwischen Hauptspeicher und Hilfsspeicher zu organisieren
hatte und grundsätzlich den gesamten Überlagerungsprozeß
ohne jede Hilfe von der Datenverarbeitungsanlage durchzuführen
hatte.
Die Entwicklung des virtuellen Speichers ermöglichte nun, daß
diese Organisation von der Datenverarbeitungsanlage vorgenommen
wird, ohne daß der Programmierer den Prozeß steuern oder
überhaupt daran denken muß. Gemäß dieser Entwicklung wird
ein großer Adreß-Raum definiert, der durch die Zentraleinheit
der Datenverarbeitungsanlage adressierbar ist und virtueller
Adreß-Raum heißt. Der virtuelle Adreß-Raum kann viel größer
als die physische (reale) Speicherkapazität sein, die im
Hauptspeicher verfügbar ist. Die Daten werden im Hilfsspeicher
als Blöcke von grundsätzlich gleicher Größe, sogenannte
Seiten, gespeichert, und jeweils eine Seite wird zum Hauptspeicher
übertragen. Der Hauptspeicher ist in Blöcke, sogenannte
Seiten-Rahmen, von gleicher Größe wie die Seiten aufgeteilt.
Eine Daten-Seite wird innerhalb eines Seiten-Rahmens
gespeichert, und zwar ausgerichtet hinsichtlich Anfang und
Ende des Seiten-Rahmens.
Beim Betrieb der Datenverarbeitungsanlage werden bei auftretendem
Bedarf an Speicherzugriff Signale entsprechend einer
Adresse des virtuellen Speichers (kurz virtuelle Speicher-
Adresse genannt) durch die Zentraleinheit erzeugt. Die virtuelle
Adresse besitzt eine Seiten-Nummer, die die Seite angibt,
die die notwendigen Daten enthält, sowie eine weitere
Adressen-Größe, einen sogenannten Relativzeiger (offset), der
den Ort der betreffenden Daten innerhalb der Seiten angibt.
Zur Vornahme des Speicherzugriffs muß die Seiten-Nummer der
virtuellen Adresse (kurz virtuelle Adressen-Seiten-Nummer genannt)
in eine Seiten-Rahmen-Nummer einer physischen Adresse
(kurz physische Adressen-Seiten-Rahmen-Nummer genannt) übersetzt
werden, die sich auf den physischen (realen) Raum im
Hauptspeicher bezieht. Wenn die Daten sich bereits im Hauptspeicher
befinden, werden sie vom physischen (realen) Speicherplatz
erhalten, so daß die Datenverarbeitung fortschreitet.
(Es kann ein weiterer Schritt der Überprüfung vorgesehen
sein, ob die Daten sich im schnellen Cache-Speicher befinden,
und wenn ja, des direkten Empfangs vom Cache-Speicher; die
Erfindung beschäftigt sich jedoch nicht mit diesem weiteren
Schritt.) Falls die Daten sich nicht im Hauptspeicher befinden,
muß die Datenverarbeitungsanlage die Seite mit den
erforderlichen Daten aus dem Hilfsspeicher erhalten und in
den Hauptspeicher einspeichern, wonach die notwendigen Daten
von der Seite erhalten werden und die Datenverarbeitung fortgesetzt
wird.
Ein derartiger Aufbau der Datenverarbeitungsanlage ist zweckmäßig,
da der logische Verarbeitungs-Fluß bei den meisten
Programmen derart ist, daß nicht das gesamte Programm im
Hauptspeicher ständig während der Ausführung des Programms
gespeichert sein muß. Zum Beispiel werden Initialisierungs- und Beendigungs-
Routinen nur einmal während des Betriebs eines Programms
ausgeführt. Jede einen Ausnahmezustand behandelnde
Prozedur wie z. B. eine Fehler-Routine wird nur benötigt,
wenn der Ausnahmezustand auftritt. Das heißt, zu jedem gegebenen
Zeitpunkt während der Ausführung des Programms muß nur auf
eine Untermenge des gesamten Programms Bezug genommen werden,
wobei die Elemente dieser Untermenge im allgemeinen benachbart
sind.
Das Vorsehen eines virtuellen Speichers bringt große Vorteile
in der Speicher-Verwaltung mit sich, befreit den Programmierer
von der Verwaltung von Überlagerungen und von der Rücksichtnahme
auf einen Überlauf des verfügbaren Hauptspeichers der
Datenverarbeitungsanlage. Außerdem kann eine Anlage mit einem
virtuellen Speicher mit einer relativ großen Anzahl von
relativ kostengünstigen (langsamen) Hilfsspeichern sowie einer
relativ kleinen Anzahl von relativ kostenaufwendigen
(schnellen) Hauptspeichern arbeiten, was die Gesamtkosten
der Anlage reduziert.
Der Einsatz eines virtuellen Speichers bringt jedoch mit
sich, daß Betriebszeit für die Ausführung geeigneter Befehle
verlorengeht, um die physische Adresse aus der virtuellen
Adresse zu erhalten. Die Übersetzung der virtuellen Adresse
in die physische Adresse erfordert einen Zugriff zu einer
Seiten-Tabelle, die durch eine Segment-Nummer identifiziert
und im Hauptspeicher gespeichert ist, die Information über
die Lage (im Hauptspeicher) aller Seiten in diesem Segment
des momentan unterstützten virtuellen Adreß-Raums enthält.
Die Seiten-Tabelle wird durch die virtuelle Seiten-Nummer
adressiert, um den gewünschten Eintrag in der Seiten-Tabelle
zu bestimmen. Jeder Eintrag in die Seiten-Tabelle umfaßt
ein Fehler-Bit, das anzeigt, ob die Seite in den Hauptspeicher
eingespeichert worden ist oder nicht. Ferner umfaßt
der Seiten-Tabelle-Eintrag Schutz-Bits und die Seiten-Rahmen-
Nummer (die auf den physischen Hauptspeicher bezogen ist),
wo sich die Seite befindet, wenn sie im Hauptspeicher eingespeichert
ist.
Der Übersetzungs-Prozeß dafür beinhaltet die folgenden Schritte,
die durch die Zentraleinheit (den Prozessor) (auch zentrale
Prozessoreinheit genannt) (die bzw. der ein Mikroprogramm ausführt)
oder durch zugeordnete Hardware in der Zentraleinheit
durchgeführt werden müssen: Einspeisung der Segment-Nummer,
um die Seiten-Tabelle zu ermitteln, Einspeisung der virtuellen
Seiten-Nummer zum Adressieren eines Eintrags in der Seiten-
Tabelle, Erhalten des Seiten-Tabellen-Eintrags, Prüfen
des Zustands (des Status) des Fehler-Bits und (falls die Seite
sich im Hauptspeicher befindet) Verknüpfen der Seiten-Rahmen-
Nummer mit dem Relativzeiger von der virtuellen Adresse
zum Erzeugen der physischen Adresse.
Der Übersetzungs-Prozeß erfordert daher eine bestimmte Zeit,
und zwar jedesmal, wenn er abläuft. Wenn der Prozeß jedesmal
bei Auftreten eines Speicher-Zugriffs ablaufen muß, wird
der Speicher-Betrieb der Datenverarbeitungsanlage beträchtlich
verzögert. Es ist daher wünschenswert, die erforderliche
Übersetzungszeit zu verringern.
Ein Versuch zur Lösung dieses Problems besteht darin, ein
kleines Puffer-Register außerhalb der Zentraleinheit (in der
Speicher-Steuereinheit) vorzusehen, um Signale entsprechend
kurz vorher übersetzten Adressen zu speichern. Dieser Puffer
ist z. B. als ein Satz von acht bis zweiunddreißig Assoziativ-
Registern aufgebaut, die jeweils zwei Felder enthalten.
Das erste Feld enthält Signale entsprechend der Seiten-Nummer
einer kurz vorher übersetzten virtuellen Speicher-Adresse.
Das zweite Feld enthält Signale entsprechend dem Seiten-Rahmen,
der momentan der virtuellen Speicher-Seite zugeordnet
ist. Jedesmal, wenn eine virtuelle Speicher-Adresse während
einer Befehls-Ausführung übersetzt wird, werden Signale entsprechend
der virtuellen Speicher-Adressen-Seiten-Nummer und
der resultierenden realen Speicher-Adressen-Seitenrahmen-Nummer
in diesen Puffer eingespeichert. Ein LRU-Algorithmus
wird benutzt, um das Register auszuwählen,
in das die neue Übersetzung einzuspeichern ist
(bei Ersetzen einer älteren Übersetzung).
Wenn eine Speicher-Bezugnahme, angegeben durch eine virtuelle
Adresse, beim Betrieb der Datenverarbeitungsanlage erforderlich
ist, werden die acht Register gleichzeitig (parallel)
abgesucht. Die Signale entsprechend der virtuellen Seiten-
Nummer in jedem Register werden mit den Signalen entsprechend
der virtuellen Seiten-Nummer der virtuellen Adresse
des momentanen Speicher-Betriebs verglichen. Bei Übereinstimmung
werden die Seitenrahmen-Nummer-Signale aus dem Register
ausgelesen und mit den Relativzeiger-Signalen verknüpft, um
die physische Adresse zu erzeugen. Bei fehlender Übereinstimmung
wird die normale Übersetzungs-Prozedur ausgeführt.
Ein derartiger Aufbau besitzt verschiedene Nachteile: Erstens ist, obwohl eine parallele
Suche (ein assoziatives Adressieren) schnell abläuft, die Schaltung für eine derartige Suche
teuer. Ferner ist die Adreß-Schaltung hardwaremäßig kompliziert, und ihre
Kompliziertheit nimmt sehr schnell mit der Anzahl der abzusuchenden Register zu. Daher
existiert in der Praxis eine scharfe Begrenzung der möglichen Größe des Puffers, die sowohl
durch die Kosten als auch die Kompliziertheit auferlegt ist. Infolgedessen kann nur eine sehr
begrenzte Untermenge kurz vorher übersetzter Adressen unterhalten werden.
Zusätzlich muß in einer Multitasking-Datenverarbeitungsanlage der Inhalt des gesamten
Puffers (acht bis zweiunddreißig Register) gelöscht werden, wenn die Datenverarbeitungsanlage
die Tasks (Aufgaben) umschaltet. Dies kann sehr häufig der Fall sein. Dieses
Erfordernis bringt zwei Nachteile mit sich. Erstens, zum Löschen des Puffers ist Zeit
erforderlich. Zweitens, nachdem der Puffer gelöscht worden ist, sind keine übersetzten
Adressen verfügbar, so daß für jeden nachfolgenden Speicher-Zugriff der Puffer abgesucht
werden muß und dann die neu übersetzte Adresse in den Puffer eingespeichert werden muß,
bis der Puffer gefüllt worden ist, was weitere Zeit erfordert.
Bereits seit längerem bekannt, vgl.
DE-Z: Elektronik, Heft 12, 1972, S. 437-440, ist
eine Übersetzung von virtuellen in physikalische Adressen wie folgt:
Ein Hardware-Zusatz in Form einer Umsetzungstabelle (translation memory) muß den
gesamten virtuellen Adreßraum abbilden können, um aus einer virtuellen eine reelle
Adresse innerhalb eines Speicherzyklusses zu bilden, und für jede virtuelle Seite genügend
Platz haben, um ihre reelle Anfangsadresse (wenn die Seite im Arbeitsspeicher steht) und
ihre Zusatzinformationen aufnehmen zu können. Jede virtuelle Seite hat in der Umsetzungstabelle
ihren eindeutigen Platz; die Seitennummer wird zur direkten Adressierung in der
Umsetzungstabelle benutzt. Steht eine Seite nicht im Arbeitsspeicher, so ist dies in der
Umsetzungstabelle vermerkt.
Drei Seiten eines sieben Seiten großen Programmes stehen im Arbeitsspeicher. Das
Betriebssystem hat diese drei Seiten vom Zubringerspeicher geholt und im Arbeitsspeicher
verteilt, kennt also deren Lage und trägt dies in seine im Arbeitsspeicher befindlichen
Tabellen ein. Kurz vor Ablauf des Programms wird der Tabelleninhalt in die Umsetzungstabelle
geladen. Soll nun ein Befehl aus der Seite 1 (virtuell) Daten verarbeiten, die auf der
Seite 2 (virtuell) stehen, so geschieht folgendes:
- - Aus der virtuellen Adresse wird die Seitennummer ermittelt.
- - Die Seitennummer wird zur direkten Adressierung der Umsetzungstabelle benutzt.
- - Aus der Umsetzungstabelle wird die reelle Anfangsadresse der im Arbeitsspeicher befindlichen Seite herausgeholt.
- - Zu dieser reellen Seitenadresse wird die Distanzadresse hinzugefügt.
- - Als Ergebnis wird genau die über eine virtuelle Adresse angepeilte Arbeitsspeicherstelle gefunden.
Ein Umsetzen einer virtuellen in eine reelle Adresse läuft innerhalb der Speicherzykluszeit
ab und benötigt keine zusätzliche Zeit. Wird eine Seite angesprochen, die nicht im Arbeitsspeicher
steht, so wird während der Umsetzung gemerkt, daß die Seite fehlt. Dies führt
sofort zu einer Programmunterbrechung. Das Betriebssystem muß erst die Seite in den
Arbeitsspeicher holen. In dieser Zeit laufen solange andere Programme, bis die Seite im
Arbeitsspeicher steht.
Dieser Zusatz, der für kleinere Adreßräume, damit für kleinere EDV-Anlagen geeignet ist,
ist zwar eine einfache, nicht sehr aufwendige Hardware-Ausrüstung.
Nachteilig dagegen ist die Notwendigkeit, daß die Umsetzungstabelle den maximalen
virtuellen Adreßraum abbilden muß, obwohl während einer Zeitscheibe unverhältnismäßig
wenige Seiten im Arbeitsspeicher stehen, und daß das Laden und Entladen der
Umsetzungstabelle über Softwarebefehle und damit relativ langsam durchgeführt werden
muß.
Aufgabe der Erfindung ist demgegenüber
die Erhöhung von Wirksamkeit und Geschwindigkeit des Betriebs einer
Multitasking-Datenverarbeitungsanlage mit virtuellem Speicher
durch Verkürzung der Adressen-Übersetzungs-Gesamtzeit,
indem
das Absuchen eines gesamten bestimmten Speichers nach den zu einer
bestimmten Task gehörigen Einträgen, vermieden wird.
Die erfindungsgemäße Lösung dieser Aufgabe erfolgt bei einer
Multitasking-Datenverarbeitungsanlage nach dem Oberbegriff des Patentanspruchs 1
durch die Lehre nach dem kennzeichnenden Teil des Patentanspruchs 1.
Wesentliche Merkmale sind insbesondere
die Zuordnung jeweils eines Eintrags im Direktzugriff-Speicher T/RAM
zu jeder Seite des virtuellen Adreßraums
in Verbindung mit der Speicherung der von einer Task verwendeten virtuellen Adresse im
Signal-Stapelspeicher und
das selektive Rücksetzen der T/RAM-Einträge
durch Auslesen dieser Adressen aus dem Signal-Stapelspeicher,
um damit die von der Task benutzten T/RAM-Einträge gezielt zu adressieren und ungültig
zu setzen,
wodurch ein Absuchen des gesamten T/RAMs
nach den zu einer bestimmten Task gehörigen Einträgen vermieden wird.
Im übrigen war noch bekannt, vgl.
US 40 68 303 (MORITA),
eine gattungsgemäße Datenverarbeitungsanlage mit Direktzugriff-Speicher (TLB)
zur Übersetzung virtueller Adressen in physikalische Adressen.
Zwar können im TLB selektiv die zu einer bestimmten Task gehörigen Einträge gelöscht
werden, jedoch ist hierfür im Gegensatz zur Erfindung ein Abfragen sämtlicher TLB-
Einträge notwendig.
Vorteilhafte Ausgestaltungen der Erfindung sind in den Unteransprüchen
angegeben.
Anhand der Zeichnung wird die Erfindung beispielsweise näher
erläutert. Es zeigt
Fig. 1 das Blockschaltbild einer erfindungsgemäßen
Datenverarbeitungsanlage;
Fig. 2 ein vereinfachtes Blockschaltbild
der Zentraleinheit der Datenverarbeitungsanlage
von Fig. 1;
Fig. 3 das räumliche Konzept des virtuellen
Adreßraums der Datenverarbeitungsanlage
von Fig. 1;
Fig. 4 das Format eines Eintrags in den
Übersetzungs-Direktzugriffs-Speicher
(T/RAM) gemäß der Erfindung;
Fig. 5 das Format einer virtuellen Adresse;
Fig. 6 das Format eines Seitentabellen-
Eintrags;
Fig. 7 das Format eines Segment-Kontroll-
Registers;
Fig. 8 das Format einer physischen (realen)
Adresse;
Fig. 9 schematisch den Steuerspeicher und
seine Ausgänge;
Fig. 10 eine Schaltung zur Gewinnung besonderer
Steuersignale aus bestimmten
Ausgangssignalen des Steuerspeichers;
Fig. 11 genauer die Schaltung des T/RAM-
Adreß-Schalters;
Fig. 12 genauer die Schaltung des T/RAM;
Fig. 13-15 Schaltungen zur Gewinnung besonderer
Steuersignale;
Fig. 16 genauer die Schaltung des T/RAM-
Multiplexers;
Fig. 17 genauer die Schaltung der Referenz/
Änderungs-Tabelle;
Fig. 18 die Taktsignale zum Steuern des Betriebs
der Datenverarbeitungsanlage;
Fig. 19 genauer Baugruppen der Zentraleinheit
im Zusammenhang mit der Überwachungsfunktion;
Fig. 20 das Konzept des Ablaufs des Löschens
überwachter Einträge im
T/RAM;
Fig. 21 genauer die Schaltung des Speicheradreßregister-
Multiplexers; und
Fig. 22 und 23 das Takten eines Zugriffs zum T/RAM
und eines Ladens eines Eintrags in
den T/RAM gemäß der Erfindung.
Insbesondere in Fig. 1 ist schematisch eine Datenverarbeitungsanlage
gezeigt, die einen virtuellen Speicher verwendet.
Die Datenverarbeitungsanlage 10 besitzt eine Zentraleinheit
(CPU) 12 mit direktem Zugriff zu einem Steuer-Speicher
14, der Gruppen von Steuersignalen zum Steuern des Betriebs
der Datenverarbeitungsanlagen-Hardware enthält. Zu bestimmten
Gruppen von Steuersignalen erfolgt der Zugriff aufgrund
von Befehlen, die über periphere Geräte eingegeben werden,
oder aufgrund momentaner Betriebszustände in der Zentraleinheit,
und zwar in jeweils für sich gut bekannter Weise.
Die Datenverarbeitungsanlage 10 besitzt ferner einen Hauptspeicher
16 und eine Speicher-Steuereinheit 18, die den Speicherzugriff
zwischen der Zentraleinheit und den peripheren Geräten
zuteilt. Zu den peripheren Geräten gehören ein Hilfsspeicher
20 und andere Geräte wie Tastatur, Elektronenstrahlröhren-
Anzeige, Drucker, Nachrichtenübertragungs-Schnittstelle
od. dgl. Der Hauptspeicher 16 wird durch die Zentraleinheit
über einen Bus (Sammelleitung) 15 (mit Daten- und Adreß-
Leitungen) sowie die Speicher-Steuereinheit 18 adressiert.
Der Hauptspeicher 16 besitzt eine Kapazität von 8 Mbytes
(8 388 608 bytes) bei einer Wortgröße von 32 bits (4 bytes).
Der Hauptspeicher 16 wird durch 24 Leitungen adressiert, die
eine physische Adresse von 24 bit ergeben. Der Inhalt des
Hauptspeichers 16 gilt als in Seiten-Rahmen aufgeteilt. Die
Größe eines Seiten-Rahmens ist 2 kbytes. Ausweislich
Fig. 8 besitzt das 24-bit-Format der physischen Adresse
eine 13-bit-Seiten-Rahmen-Nummer und einen 11-bit-Relativzeiger
(offset), der ein Byte innerhalb des Seiten-Rahmens angibt.
(Das Sonder-Bit (höherer Ordnung) in der Seiten-Rahmen-
Nummer erlaubt eine zukünftige Erweiterung des Speichers um
einen Faktor zwei.)
Der Inhalt der Dateien oder des Hilfsspeichers 20 gilt als
in Seiten aufgeteilt, deren jede dieselbe Größe wie ein Seiten-
Rahmen im Hauptspeicher 16, d. h., 2 kbytes, besitzt. Daten
werden zwischen dem Hilfsspeicher und dem Hauptspeicher
als Blöcke, insbesondere Seiten, übertragen. Die Übertragung
im einzelnen ist nicht erfindungswesentlich.
Es sei nun auf Fig. 2 eingegangen, wo gewisse Baugruppen
der Zentraleinheit 12, die erfindungswesentlich sind,
als Blockschaltbild, jedoch genauer als in Fig. 1 gezeigt
sind. Insbesondere besitzt die Zentraleinheit 12 eine Arithmethik-
Logik-Einheit (ALU) 22 für sich bekannten Aufbaus,
die zwei 32-bit-Eingangs-Busse, nämlich einen A-Bus 21 und
einen B-Bus 23, aufweist und mit ihrem Ausgang an einen 32-
bit-Ziel-Bus angeschlossen ist, nämlich den C-Bus 24. Der C-
Bus 24 führt unter anderem zu einem Stapelspeicher (stack) 30
mit 256 32-bit-Registern, zu einem C-Bus/Speicher-Multiplexer
32, zu einem T/RAM-Adreß-Schalter 38 und zu einem 24-bit-
Register 26 virtueller Adressen (virtuelles Adreß-Register).
Ein Teil des Stapelspeichers 30 ist als Überwachungsbereich
34 ausgewiesen, der Register mit 128 Wörtern von je 32 bit besitzt.
Wie im folgenden ersichtlich werden wird, dient der
Überwachungsbereich 34 zum Speichern einer Liste von kurz
vorher umgesetzten virtuellen Adressen. Die Funktion des
Überwachungsbereichs wird weiter unten, insbesondere anhand
von Fig. 19, erläutert werden.
Ein weiterer Teil 36 des Stapelspeichers 30 dient zum Speichern
eines Satzes von Signalen, der Tabelle von Segment-
Beschreibern (Descriptoren) heißt. Es gibt acht Segment-Beschreiber
in der Tabelle, und zwar einen für jedes Segment
des virtuellen Adreßraums, unterstützt durch die Hardware
zu jedem Zeitpunkt. Das Format eines Segment-Beschreibers
ist in Fig. 7 gezeigt, und seine Anwendung wird
anhand von Fig. 19 erläutert werden.
Der C-Bus/Speicher-Multiplexer 32 wird durch Speicher-Steuersignale,
die nicht erfindungswesentlich sind, so geschaltet,
daß entweder Daten vom Hauptspeicher 16 oder vom C-Bus 24
übertragen werden, und der Ausgang des Multiplexers 32 ist
an einen Satz von fünf Speicherdaten-Registern (0-4) 40 angeschlossen.
Der Ausgang der Speicherdaten-Register 40 ist
entweder an einen Daten-Puffer 44 und dann an den Hauptspeicher
16 angeschlossen, oder an einen Satz von Arbeitsregistern
sowie Schiebe/Multiplizier-Logik, die - da nicht erfindungswesentlich
- nicht genauer gezeigt sind.
Ein 32-bit-Status(Zustands)-Register 46 ist nicht mit dem
A-, B- und C-Bus verbunden; seine Bits werden gesondert gesetzt
und gelesen durch die Hardware der Zentraleinheit 12
beim Betrieb. Erfindungswesentlich von den Status-Bits sind
"M2H" und "M2B", die durch die Schaltung von Fig. 17 in
noch zu beschreibender Weise gesetzt werden, sowie "STATE",
das das Eingangssignal der Schaltung von Fig. 14 ist. Das
"STATE"-Bit zeigt entweder einen "System-Zustand" (STATE=
0) oder "Benutzer-Zustand" (STATE=1) an; das Betriebssystem
arbeitet im System-Zustand, während alle Programme
im Benutzer-Zustand laufen. Gewisse Maschinen-Funktionen
können im einen oder anderen Zustand nicht verfügbar sein;
die Einzelheiten sind aber nicht erfindungswesentlich.
Der Hauptspeicher 16 wird über einen Satz von drei Speicher-
Adreß-Registern (MAR 0-2) adressiert, die zusammen mit der
Bezugszahl 28 bezeichnet sind. Die MAR′s werden vom MAR-Multiplexer
52 geladen, der genauer in Fig. 21 gezeigt
ist. Die drei einzelnen MAR-Register besitzen 24, 32 bzw. 32
bit. Einzelne der drei Speicheradreß-Register werden zur
Ausführung verschiedener Funktionen durch die Zentraleinheit
12 angesteuert, jedoch ist eine derartige Ansteuerung nicht
erfindungswesentlich, weshalb sie nicht genauer erläutert
wird. Der Ausgang der MAR′s 28 ist an den B-Bus 23 und an
einen Speicheradreß-Schalter (nicht gezeigt) angeschlossen,
von dem die (physischen) Adreß-Signale an den Adreß-Hauptspeicher
16 in herkömmlicher, nicht erfindungswesentlicher
Weise abgegeben werden.
Um die Vorteile der erfindungsgemäßen Speicher-Verwaltung
zu erreichen, besitzt die Zentraleinheit 10 ferner einen lokalen
Direktzugriffs-Speicher (RAM) 42, der Übersetzungs(Translation)-
RAM oder T/RAM heißt und 4 k (4096) Einträge von jeweils
16 bit speichert. Der T/RAM 42 wird durch zwölf Leitungen
adressiert, die einen 12-bit-Index liefern. Der T/RAM
speichert einen Eintrag je Seite (jede Seite enthält 2 kbytes)
für den gesamten 8 Mbyte virtuellen Adreßraum, der zu
jedem Zeitpunkt von der Hardware unterstützt wird.
In einer Multitasking(Mehrprozeß)-Datenverarbeitungsanlage
gilt der virtuelle Adreßraum als in Segmente aufgeteilt.
Bei der hier beschriebenen beispielhaften Datenverarbeitungsanlage
ist der virtuelle Adreßraum in acht Segmente von jeweils
1 Mbyte aufgeteilt. Ausweislich Fig. 3, die das
Konzept des virtuellen Adreßraums zeigt, der durch die Hardware
zu jedem Zeitpunkt unterstützt ist, enthält das Segment
0 das Betriebssystem der Datenverarbeitungsanlage, das Segment
1 ein Benutzer-Programm, das Segment 2 Benutzer-Daten
und sind weitere Segmente für einen Ausbau verfügbar. Jeder
Benutzer der Datenverarbeitungsanlage sieht einen aus acht
Segmenten bestehenden virtuellen Adreßraum, wobei sich das
Betriebssystem im Segment 0 eines jeden derartigen Raums befindet,
jedoch sein eigenes Programm und seine eigenen Daten
in den übrigen Segmenten.
Das Format der virtuellen Adresse mit 24 bit ist in
Fig. 5 gezeigt. Das erste (höherwertige) (V0) Bit in
den virtuellen Adreß-Signalen ist ein Ungültigkeits-Bit, das
in einer gültigen 23-bit-Adresse gleich Null ist; wenn dieses
Bit gleich Eins ist, ist die Adresse größer als erlaubt.
(Das 24-bit-Format für die virtuellen Adressen erlaubt eine
spätere Erweiterung des unterstützten virtuellen Adreßraums.)
Der Status des höherwertigen Bits V0 wird durch die Hardware
in der Datenverarbeitungsanlage getestet, wie noch erläutert
werden wird. Bits V1-V12 bilden eine Einheit, nämlich
den T/RAM-Index. Dieser Teil der Adresse ist logisch in zwei
Anteile, eine Segment-Nummer und eine Seiten-Nummer, während
des Betriebs der Zentraleinheit aufgeteilt. Hinsichtlich der
Hardware besteht jedoch kein Unterschied. Der T/RAM-Index
wird während des Abbildens der virtuellen Adresse auf eine
physische Adresse übersetzt, wie noch erläutert werden wird.
Der übrige Teil der virtuellen Adresse (V13-V23) ist der
11-bit-Relativzeiger oder der Ort des Bytes innerhalb der
Seite. Dieser Teil der Adresse wird nicht umgesetzt, da er für
die virtuelle und die physische Adresse gleich ist.
Zum Speichern von Signalen im T/RAM oder zum Wiederauffinden
von Signalen daraus ist der T/RAM durch die zwölf "T/RAM-Index"-
Signale vom Ausgang des T/RAM-Adreß-Schalters 38 indiziert,
der die vierundzwanzig virtuellen Adreß-Signale (wie
in Fig. 5 gezeigt) vom C-Bus 24 empfängt. Beim Betrieb der
Datenverarbeitungsanlage wird der T/RAM mit einem Eintrag
zu jedem Zeitpunkt aus dem virtuellen Adreß-Register 26 folgendermaßen
geladen:
Das Format eines T/RAM-Eintrags ist in Fig. 4 gezeigt.
Der gesamte Eintrag besitzt 16 bit; ein Bit 0 als Fehler-Bit,
ein Bit 1 als Lese-Schutz-Bit, ein Bit 2 als Schreib-
Schutz-Bit sowie Bits 3-15 als Seiten-Rahmen-Nummer. Aus
der erneut angezogenen Fig. 2 ist ersichtlich, daß
die Seiten-Rahmen-Nummer-Signale eines adressierten Eintrags
aus dem T/RAM 42 zum T/RAM-Multiplexer 54 gelesen werden,
der auch ein Eingangssignal vom T/RAM-Adreß-Schalter 38 empfängt.
Der Betrieb des T/RAM-Multiplexers 54 wird anhand
von Fig. 16 erläutert werden.
Der Seiten-Rahmen-Nummer-Teil (Bits 3-15) des Ausgangssignals
des T/RAM 42 wird auch in eine Index-Referenz- und
Änderungs-Tabelle 50 eingespeist, die einen 2-bit-Eintrag
je Seiten-Rahmen-Nummer enthält. Die Verwendung einer Referenz/
Änderungs-Tabelle ist für sich gut bekannt und braucht
daher nicht in allen Einzelheiten erläutert zu werden. Die
beiden Bits sind ein Referenz-Bit und ein Änderungs-Bit für
jeden Seiten-Rahmen; das Referenz-Bit wird hochgesetzt, um
eine Bezugnahme auf den betreffenden Seiten-Rahmen im Hauptspeicher
anzuzeigen; das Änderungs-Bit wird hochgesetzt, um
anzuzeigen, daß der entsprechende Eintrag im Hauptspeicher
geändert worden ist. Das Betriebssystem bezieht sich während
eines Teils seiner Verwaltungs- oder organisatorischen Operationen
auf das Änderungs-Bit und schreibt den entsprechenden
Anteil des Hilfsspeichers um, um ihn an den Hauptspeicher anzupassen.
Das Referenz- und das Änderungs-Bit werden nur gesetzt,
wenn eine Übersetzung durchgeführt wird, d. h. nicht bei
jeder Bezugnahme auf den Speicher. (Das Auftreten der Nicht-
Übersetzungs-Speicher-Bezugnahme wird weiter unten erläutert
werden.) Das Referenz- und das Änderungs-Bit werden rückgesetzt,
wenn der Seiten-Rahmen wieder verwendet wird, d. h.,
wenn ein anderer Teil des Hilfsspeichers in diesen Seiten-
Rahmen des Hauptspeichers gelesen wird, regelmäßig zu einem
Zeitpunkt, wenn die Datenverarbeitungsanlage zwischen Tasks (Prozessen, Aufgaben)
umschaltet.
Soweit es erfindungswesentlich ist, empfangen die Speicheradreß-Register 28
Eingangssignale auf zwei verschiedene Weisen. Erstens, bei Auftreten eines noch zu
beschreibenden Verfehlens des Zugriffs auf bestimmte Dateninhalte, wenn sie nicht im
Speicher vorhanden sind, werden die (virtuellen) Seiten-Nummer-Signale vom T/RAM-
Adreß-Schalter 38 empfangen. Wahlweise, wenn im T/RAM kein derartiges Verfehlen
auftritt, werden die (physischen) Seiten-Rahmen-Nummern-Signale vom
T/RAM-Multiplexer 54 empfangen. In beiden Fällen werden die Relativzeiger-Signale
(11 niederwertige Bits) vom T/RAM-Adreß-Schalter 38 empfangen.
Auf Fig. 9 sei nun besonders eingegangen; der Steuer-Speicher 14 enthält
Steuersignale, zu denen der Zugriff in Gruppen von achtundvierzig Signalen am Ausgang
auf achtundvierzig parallelen Leitungen erfolgt. Das Signal auf jeder Leitung kann
entweder hoch (1) oder niedrig (0) sein, und wird direkt in die Hardware-Schaltung der
Zentraleinheit 12 eingespeist, um deren Betrieb zu steuern. Von den Signalen auf den
Leitungen sind nur bestimmte erfindungswesentlich. Es sind dies die Signale 0-6, die
als Gruppe in einen Decodierer (Fig. 10) eingespeist werden, um eines
der Steuersignale abzuleiten, die die mnemotechnisch günstigen Bezeichnungen "LT/RAM"
(Laden eines Eintrags in den T/RAM), "TRCT" (Testen der Referenz/Änderungs-Tabelle)
und "RRCT" (Rücksetzen der Referenz/Änderungs-Tabelle) tragen; ferner von Signalen
22 und 23, die eines der drei MAR-Register 28 ansteuern und deren Anwendung noch
erläutert werden wird, ferner Signale 27-29, die als Gruppe in den Decodierer
(Fig. 10) eingespeist werden, um eines oder beide Übersetz-Steuer-Signale, die durch
die mnemotechnischen Bezeichnungen "WT" (Schreib-Art-Übersetzen-Operation) und
"TRAN" (Übersetzen) genannt sind, abzuleiten. Die Anwendung der abgeleiteten
Steuersignale im einzelnen wird im folgenden erläutert
werden.
Die grundsätzliche Art des Zugriffs zu bestimmten Gruppen
von Steuersignalen auf Makrobefehle und Maschinenzustände
hin ist nicht erfindungswesentlich, zumal sie dem Fachmann
auf dem Gebiet der Steuerung von Datenverarbeitungsanlagen
gut bekannt ist. Der Zugriff zu bestimmten Gruppen, die erfindungswesentlich
sind, sei jedoch im folgenden beschrieben:
In Fig. 11 ist der Schaltungsaufbau des T/RAM-Adreß-
Schalters 38 im einzelnen gezeigt. Bits 8-31 vom 32-bit-C-
Bus 24, die die 24-bit-umfassende virtuelle Adresse bilden,
werden in den Schalter 38 eingespeist. Der Schalter 38 wird
durch ein Eingangssignal bei "CK" gesteuert, das ein Steuersignal
und ein Taktsignal umfaßt; das Steuersignal ist eines
der Signale TRAN, LT/RAM, TRCT und RRCT, dessen Ableitungen
in Fig. 10 gezeigt sind, während das Taktsignal ein Signal
"T2" (vgl. Fig. 18) ist. Im getakteten Zustand überträgt
der Schalter Bits 0-13, nämlich das V0-Bit ("IVA") und den
12-bit-T/RAM-Index (vgl. Fig. 5) der virtuellen Adresse. Die
übrigen Ausgangssignale des Schalters 38 bilden den 11-bit-
Relativzeiger (vgl. Fig. 5) und werden in den MAR-Multiplexer
52 eingespeist.
In der nun zu erläuternden Fig. 12 ist der Schaltungsaufbau
des T/RAM 42 im einzelnen gezeigt. Die zwölf T/RAM-Index-
Bits vom Schalter 38 (Fig. 11) werden eingespeist, um den
T/RAM für entweder Eingabe oder Ausgabe zu indizieren,
Signale, die einen T/RAM-Eintrag darstellen, können in den
T/RAM an Dateneingabe("DI")-Anschlüssen vom virtuellen Adreß-
Register 26 bei Einspeisung des Steuersignals "LT/RAM" (von
der Schaltung von Fig. 10) zusammen mit einem Taktsignal T2
(Fig. 18) eingegeben werden. Die Signale werden in indizierter
Lage gespeichert. Signale entsprechend dem indizierten
Eintrag werden an Datenausgabe("DO")-Anschlüssen abgegeben,
und Bits 3-15 (entsprechend der Seiten-Rahmen-Nummer)
werden in den T/RAM-Multiplexer 54 (Fig. 16) eingespeist,
dessen Betrieb noch erläutert werden wird.
Ausweislich Fig. 4 umfassen die als T/RAM-Eintrag gespeicherten
Signale das Fehler-Bit (F), das Lese-Schutz(RP)-
und das Schreib-Schutz(WP)-Bit sowie die 13-bit-Rahmen-
Nummer. Gemäß Fig. 12 werden diese 16 Signale an den Datenausgabe
(DO)-Anschlüssen des T/RAM 42 ausgegeben. Ausweislich
Fig. 13 werden das Fehler-Bit zusammen mit dem
"IVA"-Bit vom T/RAM-Adreß-Schalter 38 (Fig. 11), die Steuersignale
CM 22 und 23 vom Steuerspeicher 14 (MAR-Ansteuersignale)
sowie TRAN (von Fig. 10) in eine Übersetzungs-Fallen-Logik
56 eingespeist, die eines von zwei möglichen Fallen-Signalen,
TT0 und TT1, erzeugt. Beide sind Übersetzungs-Fallen; die
Unterscheidung zwischen ihnen hängt davon ab, welches der
Speicher-Adreß-Register die Adreß-Signale empfangen soll,
was aber nicht erfindungswesentlich ist.
Ausweislich Fig. 14 werden das WP- und das RP-Bit
vom T/RAM 42 zusammen mit dem Status-Bit STATE (Fig. 2)
und den Steuersignalen WT und TRAN (von Fig. 10) in eine
Schutz-Fallen-Logik 58 eingespeist, die ein Fallen-Signal
TT2 erzeugt. Die Verwendung von Schutz-Bits ist für sich
allgemein bekannt, weshalb sie nicht näher erläutert zu werden
braucht.
Die drei Fallen-Signale werden in eine Schaltung 60 von
Fig. 15 eingespeist, die, wenn kein Fallen-Signal
erzeugt wird (d. h. weder ein T/RAM-Fehler noch ein Schutz-
Fehler vorhanden ist), ein "Keine Falle"-Steuersignal TT
erzeugt. Die weitere Funktion der drei Fallen-Signale wird
im folgenden erläutert.
Gemäß Fig. 16 wird das Steuersignal TT zusammen mit
dem Taktsignal T1 in den T/RAM-Multiplexer 54 eingespeist,
um einen seiner beiden Eingänge anzusteuern (jeder Eingang
ist ein Satz Leitungen). Wenn keine Fallen vorhanden sind,
wird der 13-bit-Seiten-Rahmen-Nummer-Anteil des T/RAM-
Eintrags, der aus dem T/RAM 42 (physische Adresse) ausgelesen
ist, durch den Multiplexer 54 auf Leitungen TR0-12
zum MAR-Multiplexer 52 (Fig. 2) übertragen. Wahlweise werden
bei Auftreten einer Falle die C-Bus-Bits 8-20 (virtuelle
Adresse) auf den Leitungen TR0-12 zum MAR-Multiplexer
52 übertragen.
In Fig. 17 ist die Referenz/Änderungs-Tabelle 50 im
einzelnen gezeigt. Die Steuersignale, die den Betrieb dieser
Tabelle steuern, sind mit den mnemotechnischen Abkürzungen
WT (Schreib-Art-Übersetzen), RRCT (Rücksetzen der Referenz/
Änderungs-Tabelle), RF (Setzen des Referenz-Bits) und TRCT
(Testen der Referenz/Änderungs-Tabelle), die sämtlich von
Fig. 10 kommen, TRAN (Übersetzen) von Fig. 13, TT (keine Fallen)
von Fig. 15, CM 22 (eines der MAR-Ansteuer-Steuersignale)
von Fig. 9 und CL 9 sowie CL 10, die Ausgangssignale vom T/RAM-
Schalter 38 (Fig. 11) sind, bezeichnet. Taktsignale T1 und
TA (Fig. 18) dienen ebenfalls zur Steuerung der Referenz/Änderungs-Tabelle.
Das Signal RRCT setzt den 2-bit-Eintrag,
der durch die T/RAM-Bits 3-15 indiziert ist, auf
"00" (beide Bits werden niedrig gesetzt). Das Signal RF
setzt das "Referenz"-Bit des indizierten Eintrags hoch. Das
Signal WT setzt mit dem Signal TT das "Änderungs"-Bit des indizierten
Eintrags hoch. Die Verwendung der Seiten-Rahmen-
Nummer vom T/RAM 42 zum Indizieren der Referenz/Änderungs-Tabelle
50 erhöht Geschwindigkeit und Leistung des Betriebs
der Datenverarbeitungsanlage.
Das Signal TRCT bewirkt, daß die Status-Bits "M2H" und "M2B"
im Status-Register 46 (Fig. 2) auf die Werte der Referenz-
und Änderungs-Bits des adressierten Eintrags gesetzt werden.
Die Status-Bits werden später durch das Betriebssystem getestet,
um zu ermitteln, welche Teile des Hilfsspeichers umgeschrieben
werden müssen, um sie an den Inhalt des Hauptspeichers
angepaßt zu halten. Dieses Vorgehen ist für sich
beim Betrieb von Datenverarbeitungsanlagen gut bekannt, so
daß es nicht erfindungswesentlich ist.
Ausweislich Fig. 9 nehmen die Fallen-Signale tt0,
tt1 und tt2 einen Zugriff zu bestimmten Gruppen von Steuersignalen
vor, die im Steuerspeicher gespeichert sind. Die
Einzelheiten der bestimmten Steuersignale, die die angedeuteten
Funktionen durchführen, hängen vom genauen Aufbau
der Datenverarbeitungsanlage ab, in der sie benutzt werden
sollen, wobei es keiner erfinderischen Bemühungen bedarf,
um derartige bestimmte Signale auszuwählen. Daher wird
dieser Teil des Betriebs der Datenverarbeitungsanlage allgemein
beschrieben, nämlich ohne genaueres Eingehen auf die
Steuersignale, wovon jedoch das Signal ausgenommen ist, das
zum Laden des T/RAM erforderlich ist.
Grundsätzlich steuert die T/RAM-Fehler-Behandlungsgruppe
der Steuersignale die Zentraleinheit, um aus dem Teil 36 des
Stapelspeichers 30 (Tabelle der Segment-Beschreiber) in eines
der Speicherdatenregister 40 Signale entsprechend einem
bestimmten Segment-Beschreiber, der durch den Segment-Abschnitt
angedeutet ist (höherwertige drei Bits) des T/RAM-
Indexes der virtuellen Adreß-Signale zu kopieren, die in
ein Arbeitsregister aus den Speicheradreß-Registern 28 über
den B-Bus 23 übertragen worden sind.
Gemäß Fig. 7 besitzt jeder Segement-Beschreiber 32
bit, von denen das Bit 0 das "Überwachungs-Bit" ist, dessen
Benutzung noch erläutert werden wird, die Bits 1-10 die
Länge der Seiten-Tabelle für das Segment und die Bits 11-
30 die Adresse der Seiten-Tabelle für das Segment darstellen,
während das Bit 31 ein "virtuelles/physisches" Bit ist, das
anzeigt, ob die Adresse virtuell oder physisch ist. Wenn
die Seiten-Tabellen-Adresse physisch ist, braucht die Adresse
nicht umgesetzt zu werden; falls sie jedoch virtuell ist,
muß sie vor der Verarbeitung umgesetzt werden.
Der Seiten-Tabellen-Adreß-Teil der Segment-Beschreiber-Signale
wird zum Adressieren der Seiten-Tabelle im Hauptspeicher
16 benutzt. Das Format eines Seiten-Tabellen-Eintrags ist
in Fig. 6 gezeigt, woraus ersichtlich ist, daß es
identisch mit dem eines T/RAM-Eintrags ist. Der jeweilige
Seiten-Tabellen-Eintrag innerhalb der Seiten-Tabelle wird
adressiert durch Benutzung des Seiten-Teils des T/RAM-Index-
Teils (Bits V1-V13) der virtuellen Adreß-Signale (jetzt
in einem Arbeitsregister). Die Signale entsprechend dem
adressierten Seiten-Tabellen-Eintrag werden aus dem Hauptspeicher
16 in das virtuelle Adressenregister 26 gebracht.
Das Fehler-Bit des Seitentabellen-Eintrags wird getestet. Wenn das Fehler-Bit
gleich 1 ist, befindet sich die Seite nicht im Speicher,
so daß sie durch herkömmliche Mittel eingespeichert werden
muß, und wird das Fehler-Bit auf 0 gesetzt. Wenn das Fehler-
Bit gleich 0 ist, lädt das Steuersignal LT/RAM (Fig. 10) die
Seiten-Tabellen-Eintrag-Signale in den T/RAM am indizierten
Ort zusammen mit dem Setzen des Fehler-Bits gleich 0 sowie
Schutz-Bits, dessen Status auf nicht erfindungswesentliche
Weise ermittelt wird.
Ausweislich Fig. 19 wird das "Überwachungs-Bit"
der Segment-Beschreiber-Signale durch eine Schaltung 62 getestet.
Wenn das Überwachungs-Bit als niedrig ermittelt
wird, wird die Übersetzung (Interpretation) des Makrobefehls
erneut begonnen. Wenn das Überwachungs-Bit als hoch ermittelt
wird, wird ein Steuersignal "MOVE VA" abgegeben, das die virtuellen
Adreß-Signale aus dem Arbeitsregister in den Stapelspeicher
30 einspeisen läßt. Eine Stapelspeicher-Adreßlogik
64 adressiert eine Stelle im Überwachungs-Bereich 34 des
Stapelspeichers; die virtuellen Adreß-Signale werden innerhalb
des Überwachungs-Bereichs gespeichert. Bis zu 128 virtuelle
Adressen können im Überwachungs-Bereich gespeichert
sein. Ein Zählerstand wird gehalten und verwendet durch
die Stapelspeicher-Adreßlogik 64 beim Laden weiterer virtueller
Adressen. Nachdem die virtuellen Adreß-Signale im Überwachungs-
Bereich 34 gespeichert worden sind, wird die Übersetzung
des Makrobefehls erneut begonnen.
Die virtuellen Adreß-Signale, die im Überwachungs-Bereich 34
gespeichert sind, sind zur Verwendung beim Löschen bestimmter
Einträge im T/RAM 42 verfügbar. Dies kann auf verschiedene
Weise erfolgen, je nach den nicht erfindungswesentlichen
Operations-Zuständen. Insbesondere werden, wenn die Datenverarbeitungsanlage
von einer Task zu einem anderen umschaltet,
die überwachten Einträge gelöscht durch das Betriebssystem
in Verbindung mit anderen Verwaltungs- oder organisatorischen
Operationen, die in Verbindung mit dem Task-Umschalten
durchgeführt werden und sonst nicht erfindungswesentlich
sind. Gemäß Fig. 9 nimmt ein "Task-Umschalt"-Signal
(vom Betriebssystem) einen Zugriff zu bestimmten Steuersignalen
innerhalb des Steuerspeichers vor, um die überwachten
Einträge zu löschen.
Beim Löschen eines T/RAM-Eintrags, wie im Konzept von
Fig. 20 ersichtlich, werden die virtuellen Adreß-Signale,
die im Überwachungs-Bereich 34 des Stapel-Speichers 30
gespeichert sind, dem T/RAM-Adreß-Schalter 38 zugeführt, um
den bestimmten zu löschenden Eintrag zu indizieren. Das höherwertige
(Fehler-)Bit des Eintrags wird hochgesetzt, und
die übrigen Bits werden niedrig umgesetzt am indizierten Ort,
um den Eintrag zu löschen. Durch Benutzung der Adressen aus
dem Überwachungs-Bereich können die bestimmten überwachten
Einträge schnell gelöscht werden, ohne daß der gesamte T/RAM
gelöscht werden muß. Gleichzeitig bleiben Einträge, die nicht
überwacht sind (wie Signale entsprechend den Adressen für
das Betriebssystem-Segement), im T/RAM, und sie brauchen nicht
gelöscht oder beim nächsten Speicher-Zugriff erneut geladen
zu werden. Dadurch wird weitere Betriebszeit eingespart.
Es sei z. B. die Benutzung des Segments 1 des virtuellen
Adreßraums betrachtet (Fig. 3). Bei Beginn des Betriebs
der Datenverarbeitungsanlage sind keine gültigen Einträge
im T/RAM für das Segment 1 des virtuellen Adreßraums vorhanden.
Das Betriebssystem lädt anfangs den Segment-Beschreiber
für das Segment 1 mit M=1 (was die Überwachung anzeigt;
vgl. Fig. 7). Die Task (Aufgabe), die das Segment 1
benutzt, beginnt dann.
Es sei angenommen, daß die Ausführung dieser Task Speicher-
Bezugnahme auf neun Seiten des Segments 1 mit sich bringt,
bevor die Task unterbrochen wird. Da zu jeder dieser Seiten
ein Zugriff erfolgt, wird ihre virtuelle Adresse durch
Bezugnahme auf dem Segment-Beschreiber und die Seiten-Tabelle
übersetzt. Bei jeder Bezugnahme wird der Status des
Überwachungs-Bits erfaßt, und da jede physische Adresse im
T/RAM gespeichert wird, wird die virtuelle Adresse im Überwachungs-
Bereich 34 gespeichert. Wenn die Task unterbrochen
wird, müssen die Segment-1-T/RAM-Einträge dann gelöscht werden.
Bei diesem Beispiel sind zu diesem Zeitpunkt neun virtuelle
Adressen im Überwachungs-Bereich 34 des Stapel-Speichers
30 gespeichert. Daher brauchen nur diese neun T/RAM-
Einträge gelöscht zu werden. Beim Betrieb wird die Übersetzungsfunktion
während des Betriebs der Zentraleinheit 12
durch einen Makrobefehl ausgelöst, d. h., einen Befehl, der
Teil eines durch die Datenverarbeitungsanlage ausgeführten
Programms ist. Die Zentraleinheit 12 übersetzt jeden Makrobefehl,
und die Hardware-Baugruppen der Zentraleinheit 12
arbeiten entsprechend der Übersetzung, um die jeweilige
Operation auszuführen. Eine derartige Übersetzung von Makrobefehlen
durch Hardware ist für sich gut bekannt und im einzelnen
nicht erfindungswesentlich, ausgenommen jedoch die
folgenden Erläuterungen.
Beim Übersetzen des Makrobefehls erfolgt, wenn die Zentraleinheit
12 erkennt, daß eine Speicherzugriffs-Operation angegeben
ist, durch die Zentraleinheit 12 ein Zugriff zu
bestimmten Steuersignalen aus dem Steuer-Speicher 14 einschließlich
bestimmten Signalen auf den Leitungen CM 27-29
(Fig. 10).
Jedoch erfordert nicht jeder Zugriff zum Speicher eine Übersetzungs-
Operation. Häufig erfolgen aufeinanderfolgende Speicher-
Operationen an benachbarten Stellen im Speicher, so daß
anstelle der Erzeugung einer vollständigen 23-bit-Adresse für
jede aufeinanderfolgende Speicher-Operation es möglich ist,
durch Erhöhen oder Erniedrigen einer bereits erzeugten Adresse
(die bereits in den MAR′s 28 vorhanden ist), den Ort für
die nächste Speicher-Operation anzugeben. Ein derartiges Erhöhen
bzw. Erniedrigen wird "ripple" ("Auf- und Ab")-Operation
genannt, und in der hier beschriebenen Datenverarbeitungsanlage
ist die "ripple"-Funktion durch Kombinationen
der Steuersignale auf den Leitungen CM 27 bis 29 bewirkt,
die von denen in Fig. 10 gezeigten verschieden
sind. Die Auswahl der "ripple"- oder "Übersetzungs"-Gruppen
der Steuersignale innerhalb des Steuerspeichers wird durch
andere Merkmale der Übersetzung von Makrobefehlen durch die
Zentraleinheit 12 gesteuert, die nicht erfindungswesentlich
sind.
Wenn die nächste physische Adresse durch Übersetzung anstatt
durch eine "ripple"-Operation ermittelt werden soll, werden,
je nachdem, ob eine Lese- oder eine Schreib-Operation beteiligt
ist, durch die Ausgangssignale auf den drei Leitungen
CM 27-29 entweder eine "Lesen des Hauptspeichers mit
Übersetzung"-Operation (RTRAN) oder eine "Schreiben in den
Hauptspeicher mit Übersetzung"-Operation (WTRAN) gesteuert.
Es sind zwei Arten von "RTRAN"-Operationen vorgesehen, und
zwar je nach bestimmten Betriebs-Zuständen, die nicht erfindungswesentlich
sind.
Die Gruppe von Steuersignalen mit der RTRAN- oder WTRAN-Kombination
von Signalen auf den Leitungen CM 27-29 umfaßt
auch C-Bus-Ziel-Steuersignale, die bewirken, daß die Signale
entsprechend der virtuellen Adresse, unter der der Speicher-
Zugriff zu erfolgen hat, auf den C-Bus 24 gelangen und vom
C-Bus 24 in das virtuelle Adreß-Register 26 und den T/RAM-
Adreß-Schalter 38 eingespeist werden. Das Steuersignal
T/RAM schaltet den T/RAM-Index-Anteil der virtuellen Adreß-
Signale vom T/RAM-Adreß-Schalter 38 zum T/RAM 42. Die indizierten
T/RAM-Eintrag-Signale werden an den Datenausgabe-
Anschlüssen des T/RAM 42 abgegeben. Die Fehler- und Schutz-
Bits (TR 0-TR 2) werden in die Fallen-Schaltungen von
Fig. 13 und 14 eingespeist, während die Seiten-Rahmen-Nummer-
Bits (TR 3-15) dem T/RAM-Multiplexer 54 zugeführt werden
(Fig. 16). Bei Abwesenheit von Fallen schaltet das "Keine
Falle"-Signal TT den Multiplexer 54, um die Seiten-Rahmen-
Nummer-Signale zum MAR-Multiplexer 52 zu übertragen (Fig. 2),
der diese, zusammen mit den Relativzeiger-Signalen (V14-23),
zu den MAR′s 28 überträgt, die den Satz von Signalen entsprechend
der physischen Adresse erzeugen. Der indizierte Eintrag
in der Referenz/Änderungs-Tabelle 50 wird zu diesem Zeitpunkt
fortgeschrieben.
Wahlweise, bei Auftreten eines T/RAM-Fehlers, bewirkt die
Einspeisung eines Fehler-Bits (TR 0) in die Schaltung 56 von
Fig. 13 die Erzeugung eines Übersetzungs-Fallen-Signals tt 0
oder tt 1. Das Ausgangssignal der Schaltung 60 (Fig. 15)
schaltet den Multiplexer 54 zur Ausgabe der T/RAM-Adreß-Signale
vom C-Bus 24 zum MAR-Multiplexer 52. Das Übersetzungs-
Fallen-Signal nimmt einen Zugriff zu einer bestimmten Gruppe
von Steuersignalen im Steuer-Speicher 14 vor, was bewirkt,
daß ein Segment-Beschreiber in der Tabelle 36 im Stapel-Speicher
30 verwendet wird, um im Hauptspeicher 16 die Seiten-Tabelle
für das Segment zu bestimmten. Der Seiten-Tabellen-
Eintrag wird in der Segment-Seiten-Tabelle ermittelt, und
das bestimmte decodierte Steuersignal LT/RAM (Fig. 10) bewirkt,
daß die Seiten-Tabellen-Eintrag-Signale in den T/RAM
42 (Fig. 12) aus dem V-MAR 26 an den Ort geladen werden,
der durch die T/RAM-Index-Signale aus dem T/RAM-Adreß-Schalter
38 angezeigt ist. Das Überwachungs-Bit des Segment-Beschreibers
wird durch die Schaltung 62 getestet, und, wenn
es hoch ist, werden die virtuellen Adreß-Signale im Überwachungs-
Bereich 34 des Stapel-Speichers 30 zur Verwendung beim
ausgewählten Löschen des T/RAM-Eintrags zu einem späteren
Zeitpunkt gespeichert.
Die Übersetzung des Makrobefehls wird dann erneut begonnen.
Die WTRAN- oder RTRAN-Steuersignale werden dann erneut in die
Schaltung von Fig. 10 eingespeichert, und die Signale des
indizierten Eintrags werden aus dem T/RAM ausgelesen. Dieses
Mal, beim Fehler-Bit=0, ist es möglich, daß die übersetzten
Seiten-Rahmen-Nummer-Signale in die MAR′s 28 eingespeichert
werden, um die Lese- oder Schreib-Operation entsprechend
dem Makrobefehl auszuführen. Die Referenz/Änderungs-Tabelle
50 wird an der Stelle fortgeschrieben, die
durch die Seiten-Rahmen-Nummer-Signale (Fig. 17) zu diesem
Zeitpunkt indiziert ist.
Falls ein Schutz-Fehler auftritt, erfaßt durch die Schaltung
58 von Fig. 14, nimmt das Schutz-Fallen-Signal tt2 einen Zugriff
zu bestimmten Steuersignalen innerhalb des Steuerspeichers
14 vor (Fig. 9), um einen geeigneten Betrieb der Zentraleinheit
12 in nicht erfindungswesentlicher Weise zu bewirken.
Der zeitliche Ablauf der Indizierung des T/RAM 42 ist in
Fig. 22 gezeigt. Ausweislich Fig. 22 umfaßt ein
Zentraleinheits(CP)-Zyklus die vier Taktintervalle TA, T0,
T1 und T2 (diese Signale sind erzeugt, wie in Fig. 18 gezeigt).
Jede Übersetzungs-Operation erfordert zwei Zentraleinheits
(CP)-Zyklen, einen "MOVE" und einen "TRAN". Das
Takten ist unabhängig davon, ob ein T/RAM-Fehler auftritt
oder nicht.
Das Zeitsignal T2 wird in den T/RAM-Adreß-Schalter 38 (Fig. 11)
eingegeben, um die virtuellen Adreß-Signale vom C-Bus
24 zum Indizieren des T/RAM 42 zu schalten. Die Bits F,
WP und RP am Ausgang des T/RAM 42 werden in die Schaltungen
von Fig. 13 und 14 eingespeist, um Fallen-Signale zu erzeugen,
das Ausgangssignal der Schaltung 60 (Fig. 15) wird zusammen
mit dem Taktsignal T1 dem T/RAM-Multiplexer 54 zugeführt.
Bei Auftreten eines T/RAM-Fehlers werden die virtuellen
Adreß-Signale zum MAR-Multiplexer 52 übertragen; sonst
werden die Seiten-Rahmen-Nummer-Signale (die physische Adresse)
übertragen. Das Ausgangssignal des MAR-Multiplexers 52
(Fig. 23) wird in die MAR′s 28 bei T2 geladen. Schließlich
wird die Referenz/Änderungs-Tabelle 50 beim nächsten Taktsignal
T1 (wenn kein T/RAM-Fehler auftritt) fortgeschrieben.
Wie bereits beschrieben, wird bei Auftreten eines T/RAM-Fehlers
ein Fallen-Signal in den Steuerspeicher 14 eingespeist,
um einen Zugriff zu den geeigneten Steuersignalen zum Behandeln
des Fehlers vorzunehmen. Eines der Signale, zu denen
so der Zugriff erfolgt ist, ist das Signal LT/RAM (Laden
des T/RAM, Fig. 10), das, wie bereits beschrieben, das Laden
der Seiten-Rahmen-Nummer-Signale in den T/RAM bewirkt. Das
Takten des Ladens eines Eintrags in den T/RAM 42, nach einem
T/RAM-Fehler, ist in Fig. 23 gezeigt.
Nachdem die Datenverarbeitungsanlage einen gewissen Teil eines
Programms eines ersten Benutzers ausgeführt hat, schaltet
sie um auf die Ausführung des Programms eines weiteren
Benutzers. Dies bedeutet regelmäßig, daß neue Daten aus den
Dateien (dem Hilfsspeicher 20, Fig. 1) in den Hauptspeicher
eingespeichert werden. Eine Seiten-Tabelle (für jedes Segment
des virtuellen Adreßraums des zweiten Benutzers) wird durch
das Betriebssystem aufgebaut, um die betreffenden Seiten-
Rahmen im Hauptspeicher aufzuzeichnen, in die bestimmte
Seiten des Hilfsspeichers geschrieben werden. Diese Seiten-Tabellen
werden zum Übersetzen der virtuellen in die physischen
Adressen für den virtuellen Speicher, wie vom zweiten
Benutzer gesehen, verwendet. Die Seiten-Tabellen für das System
des vorhergehenden Benutzers sind nicht mehr gültig (da
das Programm oder die Daten des zweiten Benutzers jetzt in
Seiten-Rahmen abgespeichert werden können, die vorher vom
ersten Benutzer benutzt wurden), und Einträge im T/RAM, die
auf die ersten Seiten-Tabellen bezug nehmen, müssen ungültig
erklärt werden.
Das Betriebssystem antwortet auf dieses Task-Umschalten durch
Ausführen einer Anzahl von Verwaltungs- oder organisatorischen
Operationen einschließlich der Aktivierung der neuen Seiten-Tabellen
durch Einspeisen neuer Segment-Beschreiber aus dem
Hauptspeicher in den Teil 36 des Stapelspeichers 30 zum Zeigen
auf die Seiten-Tabellen. Im Verlauf dieser Operationen löscht
das Betriebssystem die überwachten Einträge aus dem T/RAM,
wie in Fig. 20 gezeigt, bei Benutzung der virtuellen Adressen,
die im Überwachungs-Bereich 34 des Stapelspeichers 30 gespeichert
sind, in der beschriebenen Weise. Jedoch werden
nicht alle Einträge im T/RAM ungültig gemacht; diejenigen,
die sich auf das Betriebssystem-Segment (Segment 0) beziehen,
bleiben gültig. Derartige Betriebssystem-Teile sind z. B.
ein Scheduler-Modul, ein Seitenwechsel-Modul, Datei-Verwaltungs-
Dienste oder Datenbasis-Verwaltungs-Dienste. In derartigen
Fällen würde der Segment-Beschreiber für das Segment,
das den Modul enthält, ein Überwachungs-Bit niedrig gesetzt
haben, was zur Folge hätte, daß keine virtuellen Adressen
in diesem Segment im Überwachungsbereich 34 gespeichert
würden. Daher würde keiner der T/RAM-Einträge für dieses
Segment bei einem Task-Umschalten gelöscht werden. Erfindungsgemäß
werden nur die Einträge aus der Seiten-Tabelle
für ein überwachtes Segment ungültig erklärt, wenn eine neue
Task ausgeführt wird.
Claims (4)
1. Multitasking (Mehr-Task)-Datenverarbeitungsanlage,
die einen Segmente besitzenden virtuellen Speicher unterstützt,
mit
- - einer Zentraleinheit (zentralen Prozessoreinheit) (12) mit
- - einem (anlageninternen) Schalter (Signalspeicher) (38),
- - einem Speicheradreß-Register (28) und
- - einem Speicherdaten-Register (40),
- - einem Steuer-Speicher (14),
- - der an die Zentraleinheit (12) angeschlossen ist,
- - einem Bus (15), der
- - an die Zentraleinheit (12) angeschlossen ist und besitzt:
- - Adreßsignal-Leitungen, die Adreß-Signale vom Speicheradreß-Register (28) empfangen, und
- - Datensignal-Leitungen, die Daten-Signale vom Speicherdaten-Register (40) empfangen und Daten-Signale an das Speicherdaten-Register (40) abgeben,
- - einem physischen (realen) Speicher,
- - zum Speichern von Daten-Signalen entsprechend Daten und Makrobefehlen mit:
- - einem Hilfsspeicher (20) mit relativ langsamem Zugriff,
- - der an den Bus (15) angeschlossen ist und eine Anzahl Seiten vorsieht, die jeweils eine Anzahl Daten-Signale enthalten, und
- - einem Hauptspeicher (Arbeits-, Zentralspeicher) (16)
mit relativ schnellem Zugriff, der
- - an den Bus (15) zum Empfangen und Abgeben von Daten-Signalen und zum Empfangen von Adreß-Signalen angeschlossen ist,
- - eine Anzahl Seiten-Rahmen aufweist, die jeweils dieselbe Anzahl Daten-Signale, enthalten in einer der Hilfsspeicher-Seiten, enthalten kann und
- - durch physische Adreß-Signale (Fig. 8) adressierbar ist, die Seitenrahmen-Nummer-Signale und Relativzeiger-Signale umfassen,
- - wobei die Zentraleinheit (12), der Steuer-Speicher (14) und der Bus (15),
- - zusammen eine Einrichtung zum Steuern des Kopierens einer seitenformatigen Anzahl der Daten-Signale des Hilfsspeichers (20) in die adressierten Hauptspeicher-Seitenrahmen und umgekehrt bilden,
- - wobei die Datenverarbeitungsanlage
- - auf bestimmte der Daten-Signale entsprechend Makrobefehlen im physischen Speicher hin betreibbar ist, und
- - wobei die Zentraleinheit (12) und der Steuer-Speicher (14) ansprechbar sind:
- - zusammen auf Signale entsprechend bestimmten
Lese- und Schreib-Speicherzugriff-Markobefehlen,
- - um virtuelle Adreß-Signale mit Segment-Nummer-Signalen, Seiten-Nummer-Signalen und Relativzeiger-Signalen zu erzeugen und die virtuellen Adreß-Signale an den Schalter (38) abzugeben,
- - auf die Speicherzugriff-Makrobefehle,
um eine Übersetzung der virtuellen Adreß-Signale in entsprechende
physische Adreß-Signale vorzunehmen, wobei die Übersetzung umfaßt:
- - das Einspeisen der Segment-Nummer- und der Seiten-Nummer-Signale in den Hauptspeicher (16) zum Adressieren bestimmter Teile des Hauptspeichers (16), die die Seitenrahmen-Nummer-Signale enthalten, und
- - die Übertragung der Seitenrahmen-Nummer-Signale aus dem Hauptspeicher (16) zusammen mit den Relativzeiger-Signalen aus dem Schalter (38) zum Speicheradreß-Register (28), und
- - auf die Lese-Speicherzugriff-Makrobefehle, um in das Speicherdaten-Register (40) Daten-Signale aus den adressierten Hauptspeicher-Seitenrahmen einzugeben, und
- - auf die Schreib-Speicherzugriff-Makrobefehle, um in die adressierten Hauptspeicher-Seitenrahmen Signale aus dem Speicherdaten-Register (28) einzugeben,
- - zusammen auf Signale entsprechend bestimmten
Lese- und Schreib-Speicherzugriff-Markobefehlen,
gekennzeichnet durch
- - einen indizierten Direktzugriff-Speicher (T/RAM) (42), der
- - innerhalb der Zentraleinheit (12) angeordnet und
- - mit seiner Indizier-Einrichtung an bestimmte Ausgänge des Schalters (38) angeschlossen ist,
- - einen Signal-Stapelspeicher (30)
- - in der Zentraleinheit (12),
- - die Zuordnung jeweils eines Eintrags im Direktzugriff-Speicher (T/RAM) (42) zu jeder Seite des virtuellen Adreß-Raums,
- - die Speicherung der von einer Task verwendeten virtuellen Adressen im Signal-Stapelspeicher (30) und
- - das selektive Rücksetzen der Einträge im Direktzugriff-Speicher (T/RAM) (42) durch Auslesen der Adressen aus dem Signal-Stapelspeicher (30),
- - um damit die von der Task benutzten Einträge im Direktzugriff-Speicher (T/RAM) (42) gezielt zu adressieren und ungültig zu setzen, wodurch ein Absuchen des gesamten Direktzugriff-Speichers (T/RAM) (42) nach den zu einer bestimmten Task gehörigen Einträgen vermieden wird,
- - eine Multiplexer-Einheit (52), die
- - mit ihren Ausgängen an die Eingänge des Speicheradreß-Registers (28) angeschlossen ist und
- - zwei Sätze von Eingängen hat, deren erste mit den Ausgängen des Direktzugriff-Speichers (42) und deren zweiter mit den Ausgängen des Schalters (38) verbunden ist,
- - wobei die Zentraleinheit (12) und der Steuer-Speicher (14)
- - zusammen anfangs auf einen der Speicherzugriff-Makrobefehle ansprechbar sind,
um Signale entsprechend der virtuellen Adreß-Seiten-Nummer (Fig. 5)
vom Schalter (38) in die Indizier-Einrichtung des Direktzugriff-Speichers (42)
einzugeben, um an seinen Ausgängen den in der indizierten Dateilage
gespeicherten Satz von Signalen abzugeben, einschließlich
- - Signalen entsprechend der Seitenrahmen-Nummer (Fig. 6, 8) und
- - eines Fehler-Signals (F) (Fig. 4, 6) mit einem von zwei Zuständen,
- - zusammen anfangs auf einen der Speicherzugriff-Makrobefehle ansprechbar sind,
um Signale entsprechend der virtuellen Adreß-Seiten-Nummer (Fig. 5)
vom Schalter (38) in die Indizier-Einrichtung des Direktzugriff-Speichers (42)
einzugeben, um an seinen Ausgängen den in der indizierten Dateilage
gespeicherten Satz von Signalen abzugeben, einschließlich
- - wobei die Multiplexer-Einheit (52) ansprechbar ist auf
- - einen ersten Zustand des Fehler-Signals (F) zum Übertragen der indizierten Seitenrahmen-Nummer-Signale vom Direktzugriff-Speicher (42) zum Speicheradreß-Register (28) zum Adressieren des Hauptspeichers (16) und
- - einen zweiten Zustand des Fehler-Signals (F) zum Übertragen der virtuellen Adreß-Signale am Ausgang des Schalters (38) zum Speicheradreß-Register (28) zum Übersetzen, und
- - wobei die Zentraleinheit (12) und der Steuer-Speicher (14)
- - ansprechbar sind auf den zweiten Zustand des Fehler-Signals (F) zum
- - Durchführen der Übersetzung der virtuellen Adreß-Signale und
- - Eingeben von Signalen entsprechend der übersetzten Seitenrahmen-Nummer in der indizierten Dateilage im Direktzugriff-Speicher (42) zusammen mit dem Fehler-Signal im ersten Zustand (Fig. 1, 2).
- - ansprechbar sind auf den zweiten Zustand des Fehler-Signals (F) zum
2. Datenverarbeitungsanlage nach Anspruch 1,
gekennzeichnet dadurch, daß
- - die Zentraleinheit (12) besitzt:
- - ein Status-Register (46),
- - das eine Anzahl setzbarer Status-Bits (M2H, M2B, STATE) zur Anzeige des Betriebs-Zustands der Datenverarbeitungsanlage aufweist, und
- - eine indizierte Referenz/Änderungs-Tabelle (50), die
- - ein setzbares Referenz-Bit und
- - ein setzbares Änderungs-Bit für jeden Seitenrahmen im Hauptspeicher (16) aufweist, und
- - an den Ausgang des indizierten Direktzugriff-Speichers (42) zum Indizieren der Tabelle (50) durch die Seitenrahmen-Nummer angeschlossen ist,
- - wobei die Zentraleinheit (12) und der Steuer-Speicher (14)
zusammen ansprechbar sind auf
- - einen der Speicherzugriff-Makrobefehle zum Setzen des indizierten Referenz-Bits und
- - einen der Schreib-Speicherzugriff-Makrobefehle zum Setzen des indizierten Änderungs-Bits, und
- - wobei die Referenz/Änderungs-Tabelle (50)
- - mit ihrem Ausgang an das Status-Register (46) zum Setzen bestimmter der Status-Bits entsprechend dem Zustand der indizierten Referenz- und Änderungs-Bits angeschlossen ist (Fig. 2, 17).
3. Datenverarbeitungsanlage nach Anspruch 1,
gekennzeichnet durch
- - ein Überwachungs-Bit (0 in Fig. 7)
- - im Hauptspeicher (16), das jedem virtuellen Speicher-Segment (Fig. 3) zugeordnet ist und einen von zwei Zuständen annimmt, und
- - wobei die Zentraleinheit (12) und die Steuereinrichtung ansprechbar sind:
- - zusammen auf den zweiten Zustand des Fehler-Signals (F) und die virtuellen Adreß-Segment-Nummer-Signale (Fig. 5) beim Übersetzen der virtuellen Adresse zum Adressieren des Überwachungs-Bits (0) für das Segment und zum Testen seines Zustands,
- - auf einen ersten Zustand des Überwachungs-Bits (0) zum Eingeben der virtuellen Adreß-Seiten-Nummer-Signale in den Signal-Stapelspeicher (30) zum Speichern und
- - auf ein Task-Umschalten beim Betrieb der Datenverarbeitungsanlage zum
- - Wiederauffinden der gespeicherten virtuellen Adreß-Seiten-Nummer-Signale aus dem Signal-Stapelspeicher (30) und
- - Eingeben der gespeicherten Signale zum Indizieren des Direktzugriff-Speichers (42) für das Setzen des Fehlersignals (F) in dessen zweiten Zustand (Fig. 1, 2).
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/220,902 US4410941A (en) | 1980-12-29 | 1980-12-29 | Computer having an indexed local ram to store previously translated virtual addresses |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3151745A1 DE3151745A1 (de) | 1982-08-19 |
DE3151745C2 true DE3151745C2 (de) | 1991-05-16 |
Family
ID=22825488
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19813151745 Granted DE3151745A1 (de) | 1980-12-29 | 1981-12-29 | Multitasking-datenverarbeitungsanlage |
Country Status (11)
Country | Link |
---|---|
US (1) | US4410941A (de) |
JP (1) | JPS57135493A (de) |
BE (1) | BE891653A (de) |
CA (1) | CA1165898A (de) |
CH (1) | CH657218A5 (de) |
DE (1) | DE3151745A1 (de) |
FR (1) | FR2497374B1 (de) |
GB (1) | GB2090448B (de) |
IT (1) | IT1145635B (de) |
NL (1) | NL192144C (de) |
SE (1) | SE445269B (de) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4464713A (en) * | 1981-08-17 | 1984-08-07 | International Business Machines Corporation | Method and apparatus for converting addresses of a backing store having addressable data storage devices for accessing a cache attached to the backing store |
US4525778A (en) * | 1982-05-25 | 1985-06-25 | Massachusetts Computer Corporation | Computer memory control |
JPS6047624B2 (ja) * | 1982-06-30 | 1985-10-22 | 富士通株式会社 | アドレス変換制御方式 |
US4513371A (en) * | 1982-07-29 | 1985-04-23 | Ncr Corporation | Computer interface apparatus using split-cycle lookahead addressing for faster access to paged memory |
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 |
US4524415A (en) * | 1982-12-07 | 1985-06-18 | Motorola, Inc. | Virtual machine data processor |
JPH0658646B2 (ja) * | 1982-12-30 | 1994-08-03 | インタ−ナショナル・ビジネス・マシ−ンズ・コ−ポレ−ション | デ−タ持続性が制御される仮想記憶アドレス変換機構 |
DE3300223A1 (de) * | 1983-01-05 | 1984-07-05 | Siemens AG, 1000 Berlin und 8000 München | Anordnung zur umwandlung einer virtuellen adresse in eine physikalische adresse fuer einen in seiten organisierten arbeitsspeicher einer datenverarbeitungsanlage |
US4580217A (en) * | 1983-06-22 | 1986-04-01 | Ncr Corporation | High speed memory management system and method |
US4538241A (en) * | 1983-07-14 | 1985-08-27 | Burroughs Corporation | Address translation buffer |
US4747043A (en) * | 1984-02-10 | 1988-05-24 | Prime Computer, Inc. | Multiprocessor cache coherence system |
US4669043A (en) * | 1984-02-17 | 1987-05-26 | Signetics Corporation | Memory access controller |
US4873629A (en) * | 1984-06-20 | 1989-10-10 | Convex Computer Corporation | Instruction processing unit for computer |
US4757438A (en) * | 1984-07-12 | 1988-07-12 | Texas Instruments Incorporated | Computer system enabling automatic memory management operations |
EP0182501A3 (de) * | 1984-11-20 | 1988-01-20 | Tektronix, Inc. | Speicherabbildungsverfahren und -vorrichtung |
EP0452991A3 (en) * | 1985-05-29 | 1992-04-15 | Kabushiki Kaisha Toshiba | Cache system adopting an lru system |
US4972338A (en) * | 1985-06-13 | 1990-11-20 | Intel Corporation | Memory management for microprocessor system |
US4698749A (en) * | 1985-10-18 | 1987-10-06 | Gte Communication Systems Corporation | RAM memory overlay gate array circuit |
JPH0814803B2 (ja) * | 1986-05-23 | 1996-02-14 | 株式会社日立製作所 | アドレス変換方式 |
US4930065A (en) * | 1987-08-20 | 1990-05-29 | David Computer Corporation | Automatic data channels for a computer system |
US4937736A (en) * | 1987-11-30 | 1990-06-26 | International Business Machines Corporation | Memory controller for protected memory with automatic access granting capability |
US5155834A (en) * | 1988-03-18 | 1992-10-13 | Wang Laboratories, Inc. | Reference and change table storage system for virtual memory data processing system having a plurality of processors accessing common memory |
US5155826A (en) * | 1988-12-05 | 1992-10-13 | Fadem Richard J | Memory paging method and apparatus |
US5099415A (en) * | 1989-02-15 | 1992-03-24 | International Business Machines | Guess mechanism for virtual address translation |
US5644787A (en) * | 1993-08-03 | 1997-07-01 | Seiko Epson Corporation | Apparatus for controlling data transfer between external interfaces through buffer memory using table data having transfer start address transfer count and unit selection parameter |
US5479628A (en) * | 1993-10-12 | 1995-12-26 | Wang Laboratories, Inc. | Virtual address translation hardware assist circuit and method |
US5842225A (en) * | 1995-02-27 | 1998-11-24 | Sun Microsystems, Inc. | Method and apparatus for implementing non-faulting load instruction |
US5838893A (en) | 1996-12-26 | 1998-11-17 | Microsoft Corporation | Method and system for remapping physical memory |
US5956754A (en) * | 1997-03-03 | 1999-09-21 | Data General Corporation | Dynamic shared user-mode mapping of shared memory |
KR100546403B1 (ko) * | 2004-02-19 | 2006-01-26 | 삼성전자주식회사 | 감소된 메모리 버스 점유 시간을 가지는 시리얼 플레쉬메모리 컨트롤러 |
US7506009B2 (en) * | 2005-01-28 | 2009-03-17 | Dell Products Lp | Systems and methods for accessing a shared storage network using multiple system nodes configured as server nodes |
GB0505289D0 (en) * | 2005-03-15 | 2005-04-20 | Symbian Software Ltd | Computing device with automated page based rem shadowing and method of operation |
US20070039060A1 (en) * | 2005-08-12 | 2007-02-15 | Jamieson Georges E | Methods and systems for programming secure data into programmable and irreversible cells |
US9588902B2 (en) * | 2012-12-04 | 2017-03-07 | Advanced Micro Devices, Inc. | Flexible page sizes for virtual memory |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3829840A (en) * | 1972-07-24 | 1974-08-13 | Ibm | Virtual memory system |
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 |
JPS52149444A (en) * | 1976-06-08 | 1977-12-12 | Fujitsu Ltd | Multiplex virtual space processing data processing system |
DE2641722C3 (de) * | 1976-09-16 | 1981-10-08 | Siemens AG, 1000 Berlin und 8000 München | Hierarchisch geordnetes Speichersystem für eine datenverarbeitende Anlage mit virtueller Adressierung |
JPS53121538A (en) * | 1977-03-31 | 1978-10-24 | Fujitsu Ltd | Information processor |
-
1980
- 1980-12-29 US US06/220,902 patent/US4410941A/en not_active Expired - Lifetime
-
1981
- 1981-12-23 GB GB8138738A patent/GB2090448B/en not_active Expired
- 1981-12-24 NL NL8105849A patent/NL192144C/nl not_active IP Right Cessation
- 1981-12-24 CA CA000393216A patent/CA1165898A/en not_active Expired
- 1981-12-29 IT IT68706/81A patent/IT1145635B/it active
- 1981-12-29 CH CH8338/81A patent/CH657218A5/de not_active IP Right Cessation
- 1981-12-29 DE DE19813151745 patent/DE3151745A1/de active Granted
- 1981-12-29 FR FR8124447A patent/FR2497374B1/fr not_active Expired
- 1981-12-29 SE SE8107831A patent/SE445269B/sv not_active IP Right Cessation
- 1981-12-29 BE BE0/206958A patent/BE891653A/fr not_active IP Right Cessation
- 1981-12-29 JP JP56216089A patent/JPS57135493A/ja active Granted
Also Published As
Publication number | Publication date |
---|---|
CH657218A5 (de) | 1986-08-15 |
JPS57135493A (en) | 1982-08-21 |
NL192144C (nl) | 1997-02-04 |
IT1145635B (it) | 1986-11-05 |
BE891653A (fr) | 1982-04-16 |
JPH0425579B2 (de) | 1992-05-01 |
FR2497374B1 (fr) | 1988-05-06 |
FR2497374A1 (fr) | 1982-07-02 |
SE445269B (sv) | 1986-06-09 |
GB2090448B (en) | 1984-11-28 |
SE8107831L (sv) | 1982-06-30 |
CA1165898A (en) | 1984-04-17 |
DE3151745A1 (de) | 1982-08-19 |
US4410941A (en) | 1983-10-18 |
NL8105849A (nl) | 1982-07-16 |
IT8168706A0 (it) | 1981-12-29 |
GB2090448A (en) | 1982-07-07 |
NL192144B (nl) | 1996-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3151745C2 (de) | ||
DE69133302T2 (de) | Registerabbildung in einem einzigen Taktzyklus | |
DE4410060B4 (de) | Übersetzungsvorrichtung zum Umsetzen einer virtuellen Speicheradresse in eine physikalische Speicheradresse | |
DE2226382C3 (de) | Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern | |
DE2415900C3 (de) | Rechenautomat mit mehreren mit je einem Vorratsspeicher versehenen Rechenanlagen | |
DE3131341C2 (de) | ||
DE2235841C2 (de) | Datenverarbeitungsanlage mit Speichersteuerung für mindestens einen Prozessor und diesen zugeordneten Pufferspeichern | |
DE2515696C2 (de) | Datenverarbeitungssystem | |
DE69721590T2 (de) | Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung | |
DE69738101T2 (de) | Verwaltung des Zugangs zu Objekten mit Hilfe von Referenzen mit drei Zuständen | |
DE60036960T2 (de) | Unterscheidung von feinkorntranslation | |
DE2339636C2 (de) | Einrichtung zur Adressierung eines schreibbaren Mikroprogrammspeichers | |
EP0013737A1 (de) | Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem | |
DE2302074A1 (de) | Speicherschutzanordnung in einem multiprozessorsystem | |
DE3932675A1 (de) | Virtuelles maschinensystem | |
DE2230102A1 (de) | Rechenwerk fuer variable wortlaengen | |
DE1499182B2 (de) | Datenspeichersystem | |
EP0010186B1 (de) | Vorrichtung zum Bearbeiten bezeichneter Hinweise | |
DE3046912C2 (de) | Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage | |
DE69130626T2 (de) | Verfahren zur Verwaltung einer Cache-Speicheranordnung | |
DE3518818A1 (de) | Datenverarbeitungsvorrichtung und verfahren und vorrichtung zur umsetzung von datenelementen | |
DE4114053A1 (de) | Computersystem mit cachespeicher | |
DE3919802A1 (de) | Speicherbaustein mit vektorprozessoren und einem skalarprozessor | |
EP1449091B1 (de) | Verfahren zum synchronisieren eines speichers mit dem hauptspeicher einer rechenanlage | |
DE3025167C2 (de) | Datenverarbeitungseinrichtung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8128 | New person/name/address of the agent |
Representative=s name: HEIDRICH, U., DIPL.-PHYS. DR.JUR., PAT.- U. RECHTS |
|
8110 | Request for examination paragraph 44 | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |