CH657218A5 - Mehrbenuetzer-datenverarbeitungsmaschine mit virtuellem speicher. - Google Patents

Mehrbenuetzer-datenverarbeitungsmaschine mit virtuellem speicher. Download PDF

Info

Publication number
CH657218A5
CH657218A5 CH8338/81A CH833881A CH657218A5 CH 657218 A5 CH657218 A5 CH 657218A5 CH 8338/81 A CH8338/81 A CH 8338/81A CH 833881 A CH833881 A CH 833881A CH 657218 A5 CH657218 A5 CH 657218A5
Authority
CH
Switzerland
Prior art keywords
memory
signals
address
page
processing unit
Prior art date
Application number
CH8338/81A
Other languages
English (en)
Inventor
Arthur B Barrow
Horace H Tsiang
Original Assignee
Wang Laboratories
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wang Laboratories filed Critical Wang Laboratories
Publication of CH657218A5 publication Critical patent/CH657218A5/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation

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)

Description

Die Erfindung betrifft eine Mehrbenützer-Datenverarbei-tungsmaschine gemäss Oberbegriff des Patentanspruches 1.
Im allgemeinen laufen die Kosten pro Speichereinheit von Speichern in datenverarbeitenden Maschinen umgekehrt zu der Geschwindigkeit, mit welcher eine solche Speichereinheit angesteuert werden kann. Speicher mit sehr schnellem Zugriff sind teurer als Speicher, welche eine längere Zugriffszeit verlangen. In dem Bestreben, preiswerte Datenverarbeitungsmaschinen zu schaffen, werden daher viele Maschinen mit einer Hierarchie von Speichern versehen, in welcher einige Speicher zwar langsam sind, aber eine grosse Kapazität haben, während andere schnell arbeiten, jedoch nur eine kleine Kapazität aufweisen. Während des Betriebes der datenverarbeitenden Maschine werden die Inhalte der Speicher je nach Bedarf von einem zum anderen transferiert, oder kopiert.
Datenverarbeitungsmaschinen besitzen insbesondere meistens einen Hauptspeicher, welcher sich in der Maschine selbst befindet, und durch die zentrale Verarbeitungseinheit direkt angesprochen werden kann. Dieser Speicher besteht meist aus dynamischen Speichereinheiten mit wahlfreiem Zugriff (RAMs).
Solche Maschinen besitzen im allgemeinen noch zusätzliche, sogenannte sekundäre Speicher (oder «Dateien»), welche in peripheren Einheiten beispielsweise auf magnetischen Bändern oder Platten untergebracht sind. Die Zugriffszeit zum Hauptspeicher beträgt heutzutage etwa 500 Nonosekunden, während die Zugriffszeit zu einer magnetischen Platte etwa 20 Millisekunden beträgt.
Schliesslich besitzen solche datenverarbeitenden Maschinen im allgemeinen einen Steuerspeicher, welcher vom Hauptspeicher getrennt sein kann oder einen gegen Überschreiben gesicherten Teil desselben bilden kann sowie einen äusserst schnellen Momentanspeicher, welcher einen zeitlich veränderlichen Teil des Inhaltes des Hauptspeichers enthält. Der Momentanspeicher befindet sich meist innerhalb der zentralen Verarbeitungseinheit.
Wenn die Daten (welche auch das Macroprogramm umfassen können) die von der Datenverarbeitungsmaschine verarbeitet werden, mehr Speicherraum verlangen, als im Hauptspeicher zur Verfügung steht, bietet der sekundäre Speicher weitere Speichermöglichkeiten. Vor der Einführung virtueller Speicher, wurden die Daten durch den Programmierer in einzelne Bündel eingeteilt, welche als Schichten bezeichnet werden, und von denen jede einzelne im Hauptspeicher untergebracht werden konnte. Die Schichten wurden während des Betriebes der Maschine einzeln in den Hauptspeicher transferiert; durch ein später eingebrachtes Bündel von Daten wurde ein früher in den Hauptspeicher eingelesenes Bündel von Daten jeweils überschrieben. Es war der Programmierer für die Einteilung der Daten in Schichten verantwortlich, und hatte zu entscheiden, wo jede einzelne Schicht im sekundären Speicher untergebracht werden sollte, wie die Notwendigkeit, eine neue Schicht einzule-sen jeweils festgestellt werden sollte, wie der Transport von Schichten zwischen dem Hauptspeicher und dem sekundären zu geschehen hatte, und ganz allgemein musste der Programmierer die ganze, mit den Schichten zusammenhängende Organisation ohne Hilfe seitens der Maschine bewerkstelligen.
Die Entwicklung virtueller Speicher hat es ermöglicht, die Verwaltung dieser Organisation der datenverarbeitenden Ma-5 schine zu überbürden, ohne dass der Programmierer die entsprechenden Vorgänge überwachen oder sich ihres Ablaufes überhaupt bewusst sein muss. Bei dieser Anordnung wird ein grosser Adressraum, auf welchen die zentrale Verarbeitungseinheit der Datenverarbeitungsmaschine Zugriff hat, definiert, und io als virtueller Adressraum bezeichnet. Der virtuelle Adressraum kann viel grösser sein, als der effektive, im Hauptspeicher zur Verfügung stehende Speicherraum. Im sekundären Speicher werden Daten blockweise gespeichert, wobei die, im allgemeinen gleich grossen, Blöcke, als «Seiten» bezeichnet werden und 15 die Daten seitenweise zum Hauptspeicher transferiert werden. Der Hauptspeicher seinerseits ist in Abschnitte eingeteilt, welche je dieselbe Grösse wie die Seiten haben. Eine Seite von Daten wird innerhalb eines Abschnittes gespeichert, wobei sie mit dessen Anfang und Ende ausgerichtet ist.
20 Wenn während des Betriebes der datenverarbeitenden Maschine auf den Speicher zugegriffen werden muss, werden durch die zentrale Verarbeitungseinheit Signale erzeugt, welche eine virtuelle Speicheradresse darstellen. Die virtuelle Adresse umfasst eine Seitennummer, die die Seite mit dem benötigten In-25 halt kennzeichnet, sowie einen weiteren Adresswert, genannt Verschiebung, welcher den Ort der gesuchten Daten innerhalb der Seiten kennzeichnet. Um den Zugriff auf den Speicher zu bewerkstelligen, muss die virtuelle Seitennummer in eine effektive Seitennummer umgerechnet werden, welche einen Rahmen-30 abschnitt kennzeichnet und sich auf den effektiven Speicherraum im Hauptspeicher bezieht. Falls die gesuchten Daten schon im Hauptspeicher gespeichert sind, können sie von dort her bezogen werden und die Verarbeitung geht weiter. (Es kann auch eine weitere Prüfung durchgeführt werden, um zu erse-35 hen, ob die Daten sich im Momentanspeicher befinden, und falls ja, um sie direkt von dort her auszulesen; die vorliegende Erfindung befasst sich jedoch nicht mit diesem weiteren Schritt.) Wenn sich die Daten nicht im Speicher befinden, muss die datenverarbeitende Maschine aus dem Sekundärspeicher die 40 Datenseite erhalten, welche die notwendigen Daten enthält, und diese Datenseite in den Hauptspeicher einlesen, wonach die notwendigen Daten aus dieser Seite ausgelesen werden und die Verarbeitung weitergeht.
Solch ein Verfahren wird dadurch sinnvoll, dass der Fluss 45 der logischen Verarbeitung innerhalb der meisten Programme so verläuft, dass während der Ausführung des Programmes jeweils nicht das ganze Programm ständig im Hauptspeicher enthalten sein muss. So werden beispielsweise die Anfangs- und Endroutinen bei Durchführung eines Programms jeweils nur so einmal ausgeführt. Alle Routinen, welche mit Ausnahmezuständen zu tun haben, wie beispielsweise Fehlerroutinen, werden nur dann benötigt, wenn dieser Ausnahmezustand eintritt. Anders gesagt, muss während der Durchführung des Programmes in jedem Augenblick nur auf ein Teil des gesamten Program-55 mes zugegriffen werden können, und die Elemente, welche diesen Teil bilden, liegen im allgemeinen nahe beisammen. Dieser Teil wird manchmal als das für ein Programm charakteristische «Zugriffsgebiet» bezeichnet.
Das Einführen eines virtuellen Speichers bietet für die Orga-60 nisation und Verwaltung des Speichers grosse Vorteile, da es den Programmierer davon befreit, Schichten einteilen und überwachen zu müssen, und auch von der Sorge, den verfügbaren Raum im Hauptspeicher zu überschreiten. Zudem kann eine Maschine, die einen virtuellen Speicher gebraucht, mit einer 65 verhältnismässig grossen Menge von relativ preiswertem (langsamen) Sekundärspeicher sowie mit einer verhältnismässig kleinen Menge von relativ kostspieligem (schnellem) Hauptspeicher arbeiten, wodurch die Kosten der Maschine gesenkt werden.
657 218
4
Die Verwendung eines Sekundärspeiehers zieht jedoch nach sich, dass ein gewisser Anteil der Betriebszeit darauf verwendet wird, die Operationen durchzuführen, welche nötig sind, um die effektive Adresse aus der virtuellen Adresse abzuleiten. Die Übersetzung der virtuellen Adresse in eine effektive Adresse verlangt den Zugriff zu einer Seitentabelle, die im Hauptspeicher gespeichert ist und durch eine Segmentnummer identifiziert wird. Die Tabelle enthält Informationen bezüglich der Lage im Hauptspeicher von allen Seiten, welche sich innerhalb dieses Segmentes des laufenden virtuellen Adressraumes befinden. Um die gewünschten Werte innerhalb der Seitentabelle zu finden, geschieht der Zugriff zur Seitentabelle über die virtuelle Seitennummer. Jede Eintragung in der Seitentabelle umfasst ein Fehler-Bit, welches angibt, ob die Seite in den Hauptspeicher transferiert wurde oder nicht. Des weiteren enthält die Eintragung in der Seitentabelle Schutz-Bits und die Nummer des Rahmenabschnittes (innerhalb des effektiven Hauptspeichers) in welchem sich die Seite befindet, sofern sie im Hauptspeicher vorhanden ist.
Das Übersetzungsverfahren umfasst also folgende Schritte, welche durch die (ein Mikroprogramm ausführende) zentrale Verarbeitungseinheit oder durch spezielle Schaltungen ausgeführt werden müssen: Verwendung der Segmentnummer, um die Seitentabelle zu lokalisieren, Verwendung der virtuellen Seitennummer, um eine Eintragung innerhalb der Seitentabelle zu finden, Auslesen der Eintragung in der Seitentabelle, Prüfung des Fehler-Bits und (falls sich die Seite im Hauptspeicher befindet) Kombination der Rahmenabschnittsnummer mit der Verschiebung gegenüber der virtuellen Adresse, um die eigentliche Adresse zu bilden.
Es nimmt daher der Übersetzungsvorgang eine endliche Zeit in Anspruch, und zwar jedesmal, wenn er durchgeführt wird. Falls der Vorgang jedesmal durchgeführt werden muss, wenn ein Zugriff auf den Speicher geschieht, dann wird die Verwendung des Speichers durch die datenverarbeitende Maschine wesentlich verlangsamt. Es ist daher wünschenswert, die notwendige Übersetzungszeit herabzusetzen.
Eine bekannte Lösung dieses Problèmes besteht darin, ausserhalb der zentralen Verarbeitungseinheit (in der Steuerung des Speichers) ein kleines Pufferregister vorzusehen, um Signale zu speichern, welche kürzlich übersetzte Adressen darstellen. Dieser Puffer besteht beispielsweise aus einem Satz von 8-32 assoziativen Registern, von denen jedes zwei Felder enthält. Das erste Feld enthält ein Signal zur Darstellung der Seitennummer einer kürzlichen virtuellen Speicheradresse. Das zweite Feld enthält Signale zur Kennzeichnung des augenblicklich der virtuellen Speicherseite zugeordneten Rahmenabschnittes. Jedesmal wenn während der Verarbeitung eine virtuelle Speicheradresse übersetzt wird, werden in diesen Puffer Signale eingelesen, die der Seitennummer der virtuellen Speicheradresse sowie der dazugehörigen Rahmenabschnittsadresse im effektiven Speicher entsprechen. Die längste nicht-Benützung wird als Kriterium verwendet, um das Register auszuwählen, in welches die neue Übersetzung eingelesen wird (und in welchem die ältere Übersetzung demnach überschrieben wird).
Wenn im Verlauf des Betriebes der datenverarbeitenden Maschine ein durch eine virtuelle Adresse gekennzeichneter Speicher-Aufruf nötig ist, dann werden die acht Register gleichzeitig durchgesucht (in Parallelbetrieb). Die in jedem Register befindlichen Signale zur Kennzeichnung der virtuellen Seitennummer werden mit den Signalen verglichen, welche die virtuelle Seitennummer der virtuellen Adresse des laufenden Speicheraufrufes kennzeichnen. Falls eine Übereinstimmung gefunden wird, wird das Signal zur Identifikation der Nummer des Rahmenabschnittes aus dem entsprechenden Register entnommen und mit dem Verschiebungssignal kombiniert, um eine effektive Adresse zu bilden. Falls keine Übereinstimmung gefunden wird, wird das normale Übersetzungsverfahren angewandt.
Dieser Aufbau weist mehrere Nachteile auf. Zunächst ist eine parallele Suche (assoziative Adressierung) zwar schnell, die entsprechende Schaltung aber jedoch kostspielig. Des weiteren ist die Adressierschaltung an sich komplex und diese Komplexität steigt sehr rasch mit zunehmender Anzahl der zu vergleichenden Register. Daraus ergibt sich in der Praxis eine scharfe Beschränkung der Grösse des Puffers, bedingt sowohl durch den Preis wie durch die Komplexität. Demzufolge kann nur eine sehr beschränkte Menge von kürzlich übersetzten Adressen aufbewahrt werden.
In einer Mehrbenützer-Maschine muss zudem der Inhalt des ganzen Puffers (8-32 Register) genullt werden, wenn die datenverarbeitende Maschine von einem Programm zu einem anderen übergeht. Dies kann sehr oft passieren. Diese Bedingung hat aber zwei nachteilige Folgen. Erstens wird Zeit benötigt, um den Puffer zu nullen. Zweitens stehen, nachdem der Puffer genullt wurde, keine übersetzten Adressen zur Verfügung, so dass für jeden darauf folgenden Speicher-Zugriff der Puffer erst durchsucht werden muss und dann die neu übersetzte Adresse darin eingelesen werden muss, bis der Puffer wieder gefüllt ist. Dies verbraucht weitere Zeit.
Es ist daher ein Ziel der Erfindung eine Datenverarbeitungsmaschine der eingangs genannten Art zu schaffen, bei der die Wirksamkeit und die Geschwindigkeit erhöht ist, und zwar durch Herabsetzen der für Adressübersetzungen benötigten Gesamtzeit.
Dies wird durch die kennzeichnenden Merkmale des Patentanspruchs 1 erreicht.
Bei einer besonderen Ausführungsform weist die zentrale Verarbeitungseinheit der Datenverarbeitungsmaschine ein Zustandsregister mit einer Mehrzahl von einstellbaren Statusbits auf, um ihren Operationsstatus anzuzeigen. Die Maschine weist auch indexierte Steuermittel auf, inklusive einer Referenztabelle und einer Abänderungstabelle, welche für jeden Rahmenabschnitt im zentralen Speicher ein einstellbares Referenzbit und ein einstellbares Abänderungsbit bieten. Die Referenz- und Abänderungstabelle sind mit dem Ausgang des indexierten Speichers mit wahlfreiem Zugriff verbunden, um die Tabelle mit der Rahmenabschnittskennzahl zu indexieren. Es sind die zentrale Verarbeitungseinheit und der Steuerspeicher gemeinsam durch einen Speicherzugriff Makrobefehl steuerbar, um das Referenzbit zu setzen, und sie sind weiterhin durch einen Speicherzugriff Einlesmakrobefehl steuerbar, um das Abänderungsbit zu setzen. Der Ausgang der Referenz-Abänderungs-Tabelle ist mit dem Zustandsregister verbunden, um bestimmte Zustands-bits zu setzen, und zwar in Abhängigkeit vom Zustand des indexierten Referenz- und des Abänderungsbits.
Bei einer weiteren Ausführungsform weist die Datenverarbeitungsmaschine im Hauptspeicher Überwachungsbits auf, welche je ein Segment des virtuellen Speichers aufweisen und zwei mögliche Zustände besitzen, und es kann die Maschine auch in der zentralen Verarbeitungseinheit Speichermittel für Eingabespeichersignal aufweisen. Es sind die zentrale Verarbeitungseinheit und die Steuermittel gemeinsam durch den zweiten Zustand des Federsignales sowie durch die Signale, welche der Kennzahl des virtuellen Adresssegmentes entsprechen steuerbar, und zwar während der Übersetzung der virtuellen Adresse, um das Überwachungsbit, welches diesem Segment entspricht auszulesen, und um seinen Zustand zu prüfen. Die zentrale Verarbeitungseinheit und die Steuermittel sind durch einen ersten Zustand des Überwachungsbits steuerbar, um die Seitenkennzah-len der virtuellen Adresse den Stapelsteuermitteln zuzuführen, zwecks Speicherung.
Die zentrale Verarbeitungseinheit und die Steuermittel sind durch einen Befehlsschalter steuerbar, um während des Betriebes der Maschine die der Kennzahl der virtuellen Adresse der Seite aus den Stapelspeichermitteln auszulesen, und um die gespeicherten Signale zum Indexieren des Speichers mit wahl5
10
15
20
25
30
35
40
45
50
55
60
65
5
657 218
freiem Zugriff zu verwenden, derart, dass das Fehlersignal in seinen zweiten Zustand gesetzt wird.
Es soll nunmehr die Erfindung anhand der Beschreibung und der Zeichnung näher erläutert werden. Es zeigt:
Fig. 1 eine schematische Übersicht über eine erfindungsge-mässe Datenverarbeitungsmaschine;
Fig. 2 ein vereinfachtes Blockdiagramm der zentralen Verarbeitungseinheit der Datenverarbeitungsmaschine der Fig. 1 ;
Fig. 3 einen synoptischen Überblick über den virtuellen Speicherraum der Datenverarbeitungsmaschine der Fig. 1 ;
Fig. 4 die Form eines Eingabesignales in das Übersetzungs-RAM der Erfindung;
Fig. 5 die Form einer virtuellen Adresse;
Fig. 6 die Form eines Eingabesignales für eine Seitentabelle;
Fig. 7 die Form eines Kontrollregisters für Segmente;
Fig. 8 die Form einer effektiven Adresse;
Fig. 9 ein Schema des Kontrollspeichers und seiner Ausgänge;
Fig. 10 eine Schaltung, um aus gewissen Ausgangssignalen des Steuerspeichers bestimmte Kontrollsignale zu erzeugen;
Fig. 11 Einzelheiten der Schaltung des T/RAM Adresszwischenspeichers;
Fig. 12 Einzelheiten der Schaltung des T/RAM;
Fig. 13, 14 und 15 Schaltungen zum Erzeugen bestimmter Kontrollsignale;
Fig. 16 Einzelheiten des Multiplexers der T/RAM Schaltung;
Fig. 17 Einzelheiten der Schaltung der Referenz-/Abände-rungstabelle;
Fig. 18 die Zeitsignale zur Steuerung des Operationsablaufes in der Datenverarbeitungsmaschine;
Fig. 19 die einzelnen Elemente der zentralen Verarbeitungseinheit im Zusammenhang mit der Überwachungsfunktion;
Fig. 20 eine Gesamtansicht eines Vorganges bei der Löschung überwachter Eingaben im T/RAM;
Fig. 21 Einzelheiten der Schaltung des Multiplexers für die Speicheradressregister, und
Fig. 22 und 23 das Takten des Zugriffes zum T/RAM, und des Einlesens einer Eingabegrösse in denselben.
Es wird Bezug genommen auf die Fig. 1, welche im Überblick eine Datenverarbeitungsmaschine zeigt, die einen virtuellen Speicher aufweist. Die Datenverarbeitungsmaschine 10 besitzt eine zentrale Verarbeitungseinheit (CPU) 12, welche einen Steuerspeicher 14 direkt ausliest, der Signalgruppen zur Steuerung der Datenverarbeitungsmaschine enthält. Es werden in bekannter Weise bestimmte Gruppen von Steuersignalen ausgelesen, und zwar in Abhängigkeit von Befehlen, welche durch periphere Vorrichtungen eingehen oder in Abhängigkeit vom jeweiligen Zustand innerhalb der zentralen Verarbeitungseinheit.
Die Daten Verarbeitungsmaschine 10 weist weiterhin einen Hauptspeicher 16 und eine Speichersteuerung 18 auf, deren Aufgabe die Zuweisung der Speicherzugriffe zwischen der zentralen Verarbeitungseinheit und den peripheren Vorrichtungen ist. Zu den peripheren Vorrichtungen gehört ein sekundärer Speicher 20, sowie andere Vorrichtungen, wie etwa eine Tastatur, eine Bildschirmanzeige, ein Drucker, Schnittstellen für Informationsübertragung, und dergleichen. Der Hauptspeicher 16 wird von der zentralen Verarbeitungseinheit über die Schiene 15 (welche Daten- und Adressleitungen aufweist) und über die Speichersteuerung 18 erreicht.
Der Hauptspeicher hat eine Kapazität von 8 Megabit (8 388 608 Bit) bei einer Wortgrösse von 32 Bit (4 Bit). Der Hauptspeicher 16 wird über 24 Leitungen angesprochen, besitzt also eine effektive Adresse von 24 Bits. Der Inhalt des Hauptspeichers 16 wird als in Seitenabschnitte eingeteilt angesehen. Der Umfang eines Seitenabschnittes ist 2 K Bit. Wie in Fig. 8 gezeigt, umfasst die effektive 24-Bit Adresse eine Seitenabschnittskennzahl von 13 Bit, und eine 11-Bit Verschiebung zur
Identifikation eines Bitsinhalts der Seite. Das (an höchster Stelle befindliche) zusätzliche Bit in der Kennzahl des Seitenabschnittes gestattet eine spätere Erweiterung des Speichers um einen Faktor 2.
s Der Inhalt der Datei oder des sekundären Speichers 20 wird als in Seiten eingeteilt angesehen, wobei jede Seite dieselbe Grösse wie ein Seitenabschnitt im Hauptspeicher 16 hat, d.h. 2 K Bit. Zwischen dem Sekundärspeicher und dem Hauptspeicher werden Daten blockweise verschoben, und zwar im wesentli-lo chen seitenweise. Die spezifische Art und Weise, in der dies geschieht, bildet keinen Teil der vorliegenden Erfindung.
Fig. 2 zeigt gewisse, im Zusammenhang mit der Erfindung wesentliche Teile der zentralen Verarbeitungseinheit 12 in grösserem Detail als in der Fig. 1. Insbesondere umfasst die zentrale i5 Verarbeitungseinheit 12 eine arithmetische Einheit (ALU) 22 bekannter Bauart, mit zwei 32-Bit-Eingangsschienen, die A-Schiene 21 und die B-Schiene 23, und mit einer 32-Ausgangs-schiene der C-Schiene 24. Die C-Schiene 24 bildet unter anderem den Eingang zu einem Stapel 30, der 256 32-Bitregister auf-20 weist, zu einem C-Schiene-Speichermultiplexer 32, zu einem T/RAM Adressenzwischenspeicher 38, und zu einem 24-Bit-register 26 für virtuelle Adressen. Ein Teil des Stapels 30 ist als Überwachungsstelle 34 bezeichnet, und enthält Register mit 128 Wörtern zu je 32 Bits. Wie aus dem folgenden hervorgeht, wird 25 die Überwachungsstelle 34 zur Speicherung einer Liste von kürzlich übersetzten virtuellen Adressen verwendet. Die Funktion der Überwachungsstelle geht aus dem folgenden hervor, insbesondere im Zusammenhang mit der Beschreibung der Fig. 19.
3o Ein weiterer Teil 36 des Stapels 30 wird zur Speicherung eines Satzes von Signalen verwendet, welcher als Tabelle von Segmentidentifikationen bezeichnet wird. In der Tabelle befinden sich 8 Segmentidentifikatoren, einer für jedes Segment des virtuellen Adressraumes, welcher zu irgend einer Zeit durch Schal-35 tungen realisiert werden kann. Die Form eines Segment-Identi-fikators ist in Fig. 7 gezeigt, und seine Verwendung wird im Zusammenhang mit der Beschreibung der Fig. 19 erklärt werden.
Der Speichermultiplexer 32 für die C-Schiene wird durch hier nicht relevante Speichersteuersignale so gesteuert, dass er 40 entweder Daten vom Hauptspeicher 16, oder Daten von der C-Schiene 24 überträgt, und der Ausgang des Multiplexers 32 ist mit einem Satz von 5 Speicherdatenregistern (0-4) 40 verbunden. Der Ausgang der Speicherdatenregister 40 führt entweder zu einem Datenpuffer 44 und danach zum Hauptspeicher 16, 45 oder aber zu einem Satz von Arbeitsregistern und zu einer Verschiebungs- und Multiplizierlogik, welche hier nicht im einzelnen gezeigt ist, da ihre besondere Ausführung im Zusammenhang mit der Erfindung nicht relevant ist.
Das 32-Bit Zustandsregister 46 ist nicht mit den Schienen A-50 B oder C verbunden; seine Bits werden während des Betriebes einzeln durch die Schaltung der zentralen Verarbeitungseinheit 12 gesetzt und abgetastet. Die speziellen Zustands-Bits, welche hier wesentlich sind, sind die mit «M2H» und mit «M2B» bezeichneten, welche in noch zu beschreibender Weise durch die 55 Schaltung der Fig. 17 gesetzt werden, so wie das mit «STATE» bezeichnete, welches ein Eingangssignal zur Schaltung der Fig. 14 bildet. Das «STATE» Bit zeigt entweder einen «Systemzustand» (STATE = 0) oder einen «Benützerzustand» (STATE = 1) an; das Operationssystem funktioniert im Systemzustand, 6o während alle Programme im Benützerzustand funktionieren. Gewisse Funktionen der Maschine mögen im einen oder anderen Zustand unerreichbar sein; die entsprechenden Einzelheiten sind im Zusammenhang mit der vorliegenden Erfindung nicht von Bedeutung.
65 Der Hauptspeicher 16 wird durch einen Satz von 3 Speicheradressregistern (MAR 0-2) adressiert, welche gemeinsam mit 28 bezeichnet sind. Die Speicheradressregister 28 werden durch den MAR Multiplexer 52 geladen, welcher in grösserem Detail
657 218
6
in Fig. 21 gezeigt ist. Die drei einzelnen Speicheradressregister besitzen 24, 32 und 32 Bit. Zur Ausführung einzelner Funktionen durch die zentrale Verarbeitungseinheit 12 werden einzelne unter den 3 Speicheradressregistern ausgewählt, diese Auswahl ist jedoch für die vorliegende Erfindung nicht wesentlich, und wird im folgenden nicht weiter beschrieben werden. Das Ausgangssignal des Speicheradressregisters 28 wird an die fi-Schiene 23 und an eine (nicht gezeigte) Speicheradresskoppelung angelegt, aus welcher die (effektiven) Adresssignale in üblicher Weise dem Hauptspeicher 16 zugeführt werden, was hier ebenfalls nicht weiter beschrieben zu werden braucht.
Um die gewünschten Vorteile beim Speicherzugriff zu erhalten, besitzt die zentrale Verarbeitungseinheit 12 noch einen Speicher 42 mit wahlfreiem Zugriff, der als Übersetzungs-RAM oder T/RAM bezeichnet wird, und 4K (4096) Eingaben zu je 16 Bits enthält. T/RAM 42 wird durch 12 Zeilen indexiert, welche einen 12-Bit Index liefern. Das Übersetzungs-RAM 42 enthält eine Eingabe pro Seite (wobei jede Seite 2K Bits enthält), und zwar für den ganzen, zu irgendeinem Zeitpunkt anschliessbaren virtuellen Adressraum von 8 Megabits.
In einer Mehrbenützer-Datenverarbeitungsmaschine kann man den virtuellen Adressraum als in Segmente unterteilt ansehen. In der hier beschriebenen Maschine ist der virtuelle Adressraum in 8 Segmente von je 1 Megabit unterteilt. Fig. 3 zeigt eine Synopsis des gesamten, zu irgendeinem Zeitpunkt angeschlossenen virtuellen Adressraumes, und es enthält darin: Segment 0 das Betriebssystem der datenverarbeitenden Maschine, Segment 1 ein Benützerprogramm, Segment 2 Benützerda-ten; weitere Segmente stehen für Erweiterungen zur Verfügung. Jeder Benützer der Maschine sieht einen aus 8 Segmenten bestehenden virtuellen Adressraum, wobei sich das Betriebssystem in jedem solchen Adressraum im Segment 0 befindet, in den übrigen Segmenten sich aber jeweils die eigenen Programme und Daten des einzelnen Benützers befinden.
Die Form der 24-Bit virtuellen Adresse ist in Fig. 5 gezeigt. Das erste Bit (höchste Ordnung) (VO) im virtuellen Adresssignal ist ein Ungültigkeitsbit, welches in einer gültigen 23-Bit-adresse = 0 ist; falls dieses Bit = 1 ist, ist die Adresse grösser als erlaubt. Die aus 24 Bits bestehende virtuelle Adressform gestattet eine zukünftige Erweiterung des anschliessbaren virtuellen Adressraumes. Der Zustand des Bits höchste Ordnung VO wird durch Schaltungen der Maschine geprüft, wie noch zu beschreiben ist. Die Bits VI bis V12 umfassen eine als T/RAM Index bezeichnete Einheit. Während des Betriebes der zentralen Verarbeitungseinheit ist dieser Abschnitt der Adresse logisch in zwei Teile geteilt, nämlich eine Segmentkennzahl und eine Seitenkennzahl. Schaltungsmässig besteht zwischen beiden jedoch kein Unterschied. Wie beschrieben werden wird, wird der T/RAM-Index im Verlaufe der Abbildung der virtuellen Adresse auf eine effektive Adresse übersetzt. Der restliche Abschnitt der virtuellen Adresse (V13-V23) ist eine 11-Bit Verschiebung zur Lokalisierung des Bitsinhaltes der Seite. Dieser Teil der Adresse wird nicht übersetzt, da er für virtuelle und effektive Adressen gleich bleibt.
Um Signale in den T/RAM zu speichern, oder daraus auszulesen, wird das T/RAM durch die 12 «T/RAM-Indexe» indexiert, welche Ausgangssignale des T/RAM Adresszwischenspeichers 38 bilden, welche Einheit die 24 virtuellen Adresssignale (wie in Fig. 5 gezeigt) von der C-Schiene 24 erhält. Während des Betriebes der datenverarbeitenden Maschine wird das T/RAM mit einer Eingabe nach der andern geladen, und zwar ausgehend vom virtuellen Adressregister 26, wie im folgenden noch zu beschreiben ist.
Fig. 4 zeigt die Form einer T/RAM-Eingabe. Die ganze Eingabe umfasst 16 Bits; Bit 0 ist ein Fehlerbit, Bit 1 ist ein Lese-Schutzbit, Bit 2 ist ein Schreib-Schutzbit und die Bits 3-15 umfassen eine Seitenabschnittskennzahl. Wie aus Fig. 2 ersichtlich wird, wird die Seitenabschnittskennzahl einer adressierten Eingabe aus dem T/RAM 42 in den T/RAM Multiplexer 54 gelesen, welch letzterer auch von dem T/RAM-Adresszwischenspeicher 38 ein Eingangssignal erhält. Die Funktionsweise des T/RAM-Multiplexers 54 wird im Zusammenhang mit der Fig. 16 behandelt.
Der Teil des Ausgabesignales des T/RAM 42, der sich auf die Seitenabschnittskennzahl bezieht (Bit 3-15) wird auch den Indexreferenz- und Abänderungs-Tabellen 50 zugeführt, welche pro Seitenabschnittskennzahl eine 2 Bit Eintragung enthalten. Die Verwendung einer Referenz- und Abänderungs-Tabelle ist an und für sich wohl bekannt, und wird hier nicht im einzelnen beschrieben. Die 2 Bits umfassen ein Referenzbit und ein Abänderungs-Bit pro Seitenabschnittskennzahl. Das Referenz-Bit wird gesetzt, um auf einen Bezug auf diesen Seitenabschnitt im Hauptspeicher hinzuweisen; das Abänderungs-Bit wird gesetzt, um anzuzeigen, dass die entsprechende Eintragung im Hauptspeicher abgeändert wurde. Als ein Teil seiner «Haushaltsarbeiten» prüft das Betriebssystem das Abänderungsbit, und schreibt den entsprechenden Teil des Sekundärspeichers neu, um es in Übereinstimmung mit dem Inhalt des Hauptspeichers zu halten. Die Referenz- und Abänderungs-Bits werden nur anlässlich einer Übersetzung gesetzt, nicht bei jedem Speicherzugriff. (Das Vorkommen von Speicherzugriffen ohne Übersetzung wird im folgenden noch besprochen werden.) Referenz- und Abände-rungs-Bit werden neu gesetzt, wenn der Seitenabschnitt neu benützt wird, d.h. wenn ein anderer Teil des Sekundärspeichers in diesen Seitenabschnitt des Hauptspeichers eingelesen wird. Gewöhnlich geschieht dies, wenn die Datenverarbeitungsmaschine von einem Benützer zum anderen überwechselt.
Soweit es vom Standpunkt der vorliegenden Erfindung von Interesse ist, erhält das Adressspeicherregister 28 Eingangssignale auf zwei verschiedene Weisen. Erstens beim Auftreten eines «T/RAM-Fehlers», welcher im folgenden beschrieben werden wird, werden die Signale der «virtuellen» Seitenkennzahlen von dem T/RAM-Adresszwischenspeicher 38 empfangen. Wenn umgekehrt das T/RAM keine Fehlerkennzeichnung aufweist, werden die Signale der «effektiven» Seitenabschnittskennzahl von dem T/RAM Multiplexer 54 erhalten. In beiden Fällen werden die Verschiebungssignale (die 11 Bit niedriger Ordnung) von der T/RAM-Adresskoppelungseinheit 38 empfangen.
Wie aus Fig. 9 ersichtlich, enthält der Steuerspeicher 14 Kontrollsignale, welche auf 48 parallelen Leitungen in Gruppen von 48 Ausgangssignalen erhältlich sind. Das Signal auf jeder Leitung kann entweder «hoch» (1) oder «niedrig» (0) sein, und wird direkt an die Schaltung der zentralen Verarbeitungseinheit 12 angelegt, um ihre Funktionsweise zu steuern. Es sind nur einige der Signale im Zusammenhang mit der Erfindung von Interesse. Dies sind die Signale 0-6, welche als eine Gruppe an die Entschlüsselungsschaltung 70 (Fig. 10) angelegt werden, um eines der folgenden Steuersignale zu erhalten: «LT-RAM» (Eingabe in das T/RAM einlesen), «T/RAM» (Prüfung der Referenz- und Abänderungs-Tabelle), und «RRCT» (Neusetzen der Referenz- und Abänderungs-Tabelle), Signal 22 und 23, welche eines der drei Speicheradressregister 28 auswählen, und deren Anwendung im folgenden erwähnt werden wird; und Signale 27-29, welche als Gruppe an eine Entschlüsselungsschaltung (Fig. 10) angelegt werden, um eines oder beide der Übersetzungssteuersignale zu erzeugen, welche mit «WT» (Übersetzung im Schreibmodus), und «T/RAM» (Übersetzung) bezeichnet sind. Die spezielle Anwendung der erzeugten Kontrollsignale wird im folgenden erläutert werden.
Das allgemeine Verfahren, nach welchem in Abhängigkeit von Makrobefehlen und des Maschinenzustandes einzelne Gruppen von Kontrollsignalen angesteuert werden, bildet keinen Teil der vorliegenden Erfindung und ist dem Fachmann der Steuerung von datenverarbeitenden Maschinen wohl bekannt. Der Zugriff zu besonderen Gruppen, welche hier wesentlich sind, wird im folgenden beschrieben.
5
10
15
20
25
30
35
40
45
50
55
60
65
7
657 218
Fig. 11 zeigt die Einzelheiten der Schaltung des T/RAM Adresszwischenspeichers 38. Die Bits 8-31 aus der 32-Bit C-Schiene 24, welche die 24-Bit virtuelle Adresse fassen, werden dem Zwischenspeicher 38 eingegeben. Der Zwischenspeicher 38 wird durch ein in «CK» eingegebenes Signal gesteuert, welches ein Kontrollsignal und ein Zeitsignal umfasst; das Kontrollsignal ist eines von den als TRAN, LT/RAM, TRCT oder RRCT bezeichneten, deren Ableitung in Fig. 10 gezeigt ist; das Zeitsignal ist in «T2» (Fig. 18). Wenn der Zwischenspeicher getaktet wird, überträgt er die Bits 0-13, inklusive des VO-Bit («IVA») und des 12-Bit T/RAM Indexes (siehe Fig. 5) der virtuellen Adresse. Die übrigen Ausgangssignale des Zwischenspeichers 38 umfassen die 11-Bit Verschiebung (siehe Fig. 5) und werden an den Speicheradressregister-Multiplexer 52 angelegt.
Es zeigt die Fig. 12 die Einzelheiten der Schaltung des T/RAM 42. Die zwölf T/RAM Indexbits des Zwischenspeichers 38 (Fig. 11) werden verwendet, um das T/RAM für den Ein- oder Ausgang zu indexieren. Zusammen mit dem Textsignal T2 (Fig. 18) können, bei Anwendung des Kontrollsigna-les «LT/RAM» (aus der Schaltung der Fig. 10), an den Dateneingang («DI») des T/RAM Signale angelegt werden, die eine T/RAM-Eingabe darstellen. Die Signale werden an den indexierten Stellen gespeichert. Signale, welche die indexierten Eingaben darstellen, werden an den Datenausgängen («DO») ausgegeben, und die Bits 3-15 (welche die Seitenabschnitts-Kennzahl darstellen) werden an den T/RAM Multiplexer 54 (Fig. 16) angelegt, dessen Funktionsweise beschrieben werden wird.
Wie aus Fig. 4 ersichtlich, umfasst das als eine T/RAM-Eingabe gespeicherte Signal ein Fehler-Bit (F), ein Leseschutz-(RP) und ein Schreibschutz (WP)-Bit, und eine aus 13 Bits bestehende Seitenabschnittskennzahl. Wie aus Fig. 12 ersichtlich, werden diese 16 Signale am Datenausgang (DO) des T/RAM 42 ausgegeben. Wie aus Fig. 13 hervorgeht, wird das Fehler-Bit, zusammen mit dem «IVA»-Bit aus dem T/RAM Zwischenspeicher 38 (Fig. 11), den Kontrollsignalen CM 22 und 23 vom Steuerspeicher 14 (MAR Auswahl-Signal) und dem Signal TRAN (aus Fig. 10) an die logische Fangschaltung 56 angelegt, welche eines von zwei möglichen Signalen, ttO und ttl, erzeugt. Diese beziehen sich beide auf Übersetzungen; der Unterschied zwischen beiden hängt davon ab, welches der Adressspeicherregister das Adresssignal erhalten soll, eine Frage, die nicht mit der vorliegenden Erfindung zusammenhängt.
Fig. 14 zeigt, dass die WP- und RP-Bits des T/RAM 42, zusammen mit dem Status-Bit STATE (Fig. 2) und den WT- und TRAN-Kontrollsignalen (aus Fig. 10), an eine logische Schutzfangschaltung 58 angelegt werden. Diese Schaltung erzeugt ein Fangsignal tt2. Die Verwendung von Schutzbits ist wohlbekannt und wird hier nicht weiter beschrieben.
Die drei Fangsignale werden an die Schaltung 60 der Fig. 15 angelegt, welche, sofern kein Fangsignal erzeugt wird (d.h.
wenn weder ein T/RAM-Fehler, noch ein Schutz-Fehler vorliegt), ein «Kein-Fang» Kontrollsignal TT erzeugt. Die weitere Funktion der drei Fangsignale wird im folgenden erläutert.
Wie Fig. 16 zeigt, wird das Kontrollsignal TT zusammen mit dem Taktsignal Tl, an den T/RAM-Multiplexer 54 angelegt, um einen seiner zwei Eingänge auszuwählen (wobei jeder Eingang aus einem Satz von Leitungen besteht). Wenn kein Fang vorliegt, wird die aus dem T/RAM 42 (effektive Adresse) ausgelesene 13-Bits-Seitenabschnittskennzahl der T/RAM-Ein-gabe durch den Multiplexer 54 auf die Leitungen TR 0-12, und zum Adressspeicherregister-Multiplexer 52 (Fig. 2) übertragen. Falls umgekehrt ein Fang vorliegt, werden die Bits 8-20 der C-Schiene (virtuelle Adresse) auf den Leitungen TR 0-12 an den Adressspeicherregister-Multiplexer 52 übertragen.
Es zeigt die Fig. 17 die Referenz-Abänderungs-Tabelle 50 im einzelnen. Die Kontrollsignale, welche die Funktion dieser Tabelle kontrollieren, sind wie folgt bezeichnet: WT (Einlese-
Übersetzungsoperation), RRCT (neu setzen der Referenz-Abänderungstabelle), RF (Referenz-Bit setzen), und TRCT (Prüfung der Referenz-Abänderungstabelle), alle aus Fig. 10;
TRAN (Übersetzen), aus Fig. 13; TT (kein Fang) aus Fig. 15; CM 22 (eines der MAR Auswahlkontrollsignale) aus Fig. 9; und CL 9 und CL 10, welche Ausgangssignale des T/RAM Zwischenspeichers 38 (Fig. 11) sind. Des weiteren steuern die Taktsignale Tl und TA (Fig. 18) die Funktionsweise der Referenz-Abänderungs-Tabelle. Das Signal RRCT setzt die 2-Bit-Eingabe neu, welche durch die T/RAM-Bits 3-15 indexiert ist, und zwar auf «00» (beide Bits werden auf «tief» gesetzt). Das Signal RF setzt das Referenz-Bit der indexierten Eingabe auf «hoch». Das Signal WT mit TT setzt das «Abänderungs»-Bit der indexierten Eingabe auf «hoch». Die Verwendung der Seitenabschnittskennzahl aus dem T/RAM 42, um die Referenz-Abänderungs-Tabelle 50 zu indexieren, erhöht die Geschwindigkeit und Effizienz der Funktion der datenverarbeitenden Maschine.
Das Signal TRCT bewirkt, dass die Zustands-Bits «M2H» und «M2B» im Zustandsregister 46 (Fig. 2) auf die Werte des Referenz- und des Abänderungs-Bits der adressierten Grösse gesetzt werden. Die Zustands-Bit werden später durch das Betriebssystem geprüft, um zu bestimmen, welche Teile des Sekundärspeichers neu geschrieben werden müssen, um sie in Übereinstimmung mit dem Inhalt des Hauptspeichers zu halten. Dieser Vorgang ist in Fachkreisen wohl bekannt und bildet keinen Teil der vorliegenden Erfindung.
Aus Fig. 9 ersieht man, dass die Fangsignale ttO und ttl und tt2 besondere Gruppen von im Steuerspeicher gespeicherten Steuersignalen ansprechen. Die Einzelheiten spezieller Kontrollsignale zur Durchführung der angegebenen Funktionen hängen von der genauen Struktur der jeweiligen Maschine ab, mit welcher sie zur Anwendung kommen, und es ist der Fachmann auf diesem Gebiet in der Lage, solche Signale auf geeignete Weise auszuwählen. Daher wird dieser Aspekt der Maschinenfunktion auf allgemeine Weise beschrieben, ohne Einzelheiten der Kontrollsignale anzugeben, mit Ausnahme des Signales das zum Laden des T/RAM notwendig ist.
Im allgemeinen steuert die T/RAM-Fehlerverarbeitungs-gruppe von Kontrollsignalen die zentrale Verarbeitungseinheit, um Signale, welche vom Speicheradressregister 28 über die B-Schiene 23 in ein Arbeitsregister verschoben worden sind, aus dem Teil 36 des Stapels 30 (Tabelle der Segmentidentifikatoren) in eines der Speicherdatenregister 40 zu kopieren. Diese Signale entsprechen einem bestimmten Segment-Identifikator, der durch den Segmentteil (d.h. die drei Bits höchster Ordnung) des T/RAM-Indexes des virtuellen Adresssignales gekennzeichnet ist.
Wie durch Fig. 7 illustriert, umfasst jeder Segment-Identi-fikator 32 Bits, von denen Bit 0 als «Überwachungs-Bit» bezeichnet wird (seine Verwendung wird weiter unten erläutert); Bits 1-10 stellen die Länge der Seitentabelle für das Segment dar; Bits 11-30 stellen die Adresse der Seitentabelle für das Segment dar; und Bit 31 ist ein «virtuell/effektiv» Bit, welches angibt, ob die Adresse virtuell oder effektiv ist. Wenn die Adresse der Seitentabelle effektiv ist, braucht die Adresse nicht übersetzt zu werden; wenn sie virtuell ist, muss sie vor der Weiterverarbeitung übersetzt werden.
Der Adressteil der Seitentabelle des Signales zur Segmentidentifikation wird für die Adressierung der Seitentabelle im Hauptspeicher 16 verwendet. Fig. 6 zeigt die Form einer Seitentabelle-Eingabe, und man kann sehen, dass diese identisch mit einer T/RAM-Eingabe ist. Eine bestimmte Seitentabelle-Ein-tragung innerhalb der Seitentabelle wird unter Verwendung des Seitenteiles des T/RAM-Indexteiles (Bit VI-VI3) des virtuellen Adresssignales (welches sich nunmehr in einem Arbeitsregister befindet) aufgerufen. Die die Eintragung in der angesprochenen Seitentabelle darstellenden Signale werden vom Hauptspeicher
5
10
15
20
25
30
35
40
45
50
55
60
65
657 218
in das virtuelle Adressregister 26 gebracht. Das Fehler-Bit des PTE wird geprüft. Wenn das Fehler-Bit gleich 1 ist, befindet sich die Seite nicht im Hauptspeicher und muss auf übliche Weise dorthin gebracht werden, und das Fehler-Bit muss auf 0 neu gesetzt werden. Wenn das Fehler-Bit gleich 0 ist, dann lädt das Kontrollsignal LT/RAM (Fig. 10) die Signale für die Seitentabellen-Eintragung in das T/RAM, und zwar an der indexierten Stelle, zusammen mit einem auf 0 gesetzten Fehler-Bit sowie mit Schutz-Bits, deren Zustände in einer hier nicht massgeblichen Weise bestimmt wurden.
Wie die Fig. 19 veranschaulicht, wird das «Überwachungs-Bit» des Signales zur Segmentidentifikation durch die Schaltung 62 geprüft. Falls das Überwachungs-Bit tief ist, wird die Interpretation des Makrobefehles neu gestartet. Wenn das Überwachungs-Bit hoch ist, wird ein Kontrollsignal «MOVE VA» erzeugt, welches bewirkt, dass die virtuellen Adresssignale vom Arbeitsregister an den Stapel 30 gesandt werden. Die logische Adressierschaltung 64 des Stapels spricht eine Stelle innerhalb des Überwachungsgebietes 34 des Stapels an; die virtuellen Adresssignale werden innerhalb des Überwachungsgebietes gespeichert. Es können bis zu 128 virtuelle Adressen im Überwachungsgebiet gespeichert werden. Die Zahl der Adressen wird festgehalten und von der Adressierlogik 64 des Stapels beim Einlesen weiterer virtueller Adressen verwendet. Nachdem die virtuellen Adresssignale im Überwachungsgebiet 34 gestapelt worden sind, wird die Interpretation des Makrobefehles neu gestartet.
Die im Überwachungsgebiet 34 gespeicherten virtuellen Adresssignale werden verwendet, um bestimmte Eintragungen im T/RAM 42 zu löschen. Dies kann auf verschiedene Weisen geschehen, nach Massgabe von für die vorliegende Erfindung nicht relevanten Operations-Bedingungen. Wenn die datenverarbeitende Maschine insbesondere von einem Benützer zum anderen umschaltet, werden die überwachten Eintragungen alle durch das Betriebssystem gelöscht, und zwar im Zusammenhang mit weiteren «Haushaltungsaufgaben», welche im Zusammenhang mit dem Benützerwechsel durchgeführt werden, und für die vorliegende Erfindung nicht relevant sind. Wie in Fig. 9 gezeigt, werden die überwachten Eintragungen durch ein mit «TASK SW» bezeichnetes Signal (des Betriebssystems) gelöscht, das auf bestimmte Kontrollsignale innerhalb des Steuerspeichers Zugriff hat.
Wie in der Übersichtsfigur 20 gezeigt, wird eine bestimmte, zu löschende, Eintragung indexiert, indem die im Überwachungsgebiet 34 des Stapels 30 befindlichen virtuellen Adresssignale an den T/RAM-Adresszwischenspeicher 38 angelegt werden. Um die Eintragung zu löschen wird an der indexierten Stelle das höchste (Fehler)-Bit der Eintragung auf hoch gesetzt und die übrigen auf tief. Ein durch Verwendung der Adressen aus dem Überwachungsgebiet kann eine bestimmte überwachte Eintragung schnell gelöscht werden, ohne dass es notwendig ist, das ganze T/RAM zu löschen. Gleichzeitig werden nichtüber-wachte Eintragungen (wie etwa Signale, welche Adressen innerhalb des dem Betriebssystem zugeteilten Segmente darstellen) innerhalb des T/RAM erhalten und brauchen nicht beim nächsten Speicherzugriff gelöscht und neu geladen zu werden. Dadurch wird weitere Zeit gespart.
Man betrachte z.B. die Verwendung des Segmentes 1 des virtuellen Adressraumes (Fig. 3). Beim Betriebsbeginn der datenverarbeitenden Maschine befinden sich im T/RAM keine gültigen Eintragungen für das Segment 1 des virtuellen Adressraumes. Zu Anfang lädt das Betriebssystem den Segment-Iden-tifikator für Segment 1, und zwar mit M = 1 (dies kennzeichnet die Überwachung; siehe Fig. 7). Die Segment 1 benützende Arbeit beginnt danach.
Angenommen die Durchführung dieser Arbeit benötigte Speicherzugriffe zu 9 Seiten des Segmentes 1, bevor die Arbeit unterbrochen wird. Sobald auf eine dieser Seiten zugegriffen wird, wird ihre virtuelle Adresse unter Bezugnahme auf die Segmentidentifikation und die Seitentabelle übersetzt; bei jedem Zugriff wird der Zustand des Überwachungs-Bits geprüft, und während jede effektive Adresse im T/RAM gespeichert wird, wird die virtuelle Adresse im Überwachungsgebiet 34 gespeichert. Bei Unterbruch der Arbeit müssen die T/RAM-Ein-tragungen aus Segment 1 gelöscht werden. In diesem Beispiel werden zu diesem Zeitpunkt 9 virtuelle Adressen im Überwachungsgebiet 34 des Stapels 30 gespeichert sein. Daher brauchen nur diese 9 T/RAM-Eintragungen gelöscht zu werden. Im Betrieb wird die Übersetzungsfunktion während des Betriebes der zentralen Verarbeitungseinheit aufgrund eines Makrobefehles aufgerufen, d.h. eines Befehles, welcher einen Teil des durch die datenverarbeitende Maschine ausgeführten Programmes bildet. Die zentrale Verarbeitungseinheit 12 interpretiert jeden Makrobefehl und ihre Schaltelemente arbeiten entsprechend dieser Interpretation, um die gewünschte Operation durchzuführen. Eine solche Interpretation von Makrobefehlen durch Schaltungen ist dem Fachmann wohl bekannt und deren Einzelheiten bilden keinen Teil der vorliegenden Erfindung, abgesehen von dem im folgenden beschriebenen Punkt. Wenn die zentrale Verarbeitungseinheit 12 im Verlaufe der Interpretation eines Makrobefehles erkennt, dass ein Speicherzugriff verlangt wird, wird die zentrale Verarbeitungseinheit 12 auf ein bestimmtes Kontrollsignal des Steuerspeichers 14 zugreifen, inklusive bestimmte Signale auf den Leitungen CM 27-29 (Fig. 10).
Es verlangt nicht jeder Zugriff zum Speicher die Durchführung einer Übersetzung. Oft beziehen sich aufeinanderfolgende Speicherzugriffe auf benachbarte Stellen im Speicher, und es ist möglich, den Ort des nächsten Speicherzugriffes durch Erhöhen oder Verringern einer schon erzeugten Adresse (die auch schon in MARs 28 vorliegt) zu bestimmen. Solche Erhöhung- oder Verringerungsschritte werden als «Domino»-Operationen bezeichnet und in der hier beschriebenen Maschine wird die «Do-mino»-Funktion durch Kombinationen der Kontrollsignale auf den Leitungen CM 27-29 bestimmt, mit Ausnahme der in Fig. 10 gezeigten. Die Wahl der «Domino»- oder «Übersetzung»-Gruppen von Kontrollsignalen innerhalb des Steuerspeichers wird durch andere Bedingungen bei der Interpretation eines Makrobefehles durch die zentrale Verarbeitungseinheit 12 bestimmt, welche hier nicht relevant sind.
Wenn die nächste effektive Adresse durch Übersetzung bestimmt werden muss und nicht durch ein «Domino»-Verfahren, dann bestimmen — je nachdem ob eine Lese- oder Schreiboperation betroffen ist — die Ausgangssignale der drei Leitungen CM 27-29 entweder eine Operation «Lesehauptspeicher mit Übersetzung» (RTRAN) oder eine Operation «Einlesen in den Hauptspeicher» (WTRAN). Es sind zwei Arten von «RTRAN»-Operationen vorgesehen, in Abhängigkeit von gewissen, hier nicht wesentlichen Betriebsbedingungen.
Die Kontrollsignal-Gruppe, welche die RTRAN oder WTRAN-Signalkombinationen auf den Leitungen CM 27-29 umfasst, enthält auch C-Schienen-Kontrollsignale, welche bewirken, dass das Signal, welches die virtuelle Adresse darstellt, in welcher auf den Speicher zugegriffen werden soll, auf die C-Schiene 24 gespiesen werden, und von der C-24-Schiene zum virtuellen Adressregister 26 und zum T/RAM-Adresszwischen-speicher 38 geführt werden. Das Kontrollsignal TRAN koppelt den Indexteil des T/RAM virtuellen Adresssignales von dem T/RAM-Adresszwischenspeicher 38 an den T/RAM 42. Die indexierten T/RAM-Eingabesignale bewirken Ausgabesignale an den Ausgängen des T/RAM 42. Die Fehler- und Schutz-Bits (TR 0 - TR 2) werden an die Fangschaltungen der Figuren 13 und 14 angelegt, während die Bits der Seitenabschnittskennzah-len (TR 3-15) an den T/RAM-Multiplexer 54 angelegt werden (Fig. 16). Liegt kein Fang vor, dann schaltet das «Kein Fang»-Signal TT den Multiplexer 54, um dem MAR-Multiplexer 52 (Fig. 2) die Signale der Seitenabschnittskennzahlen zu übermit5
10
15
20
25
30
35
40
45
50
55
60
65
teln. Dieser Multiplexer überträgt die Signale, zusammen mit den Verschiebungssignalen (V14-23) an MAR 28, so dass ein Satz von Signalen zusammengestellt wird, welches die effektive Adresse darstellt. Zu diesem Zeitpunkt wird die indexierte Eingabe in der Referenz-Abänderungs-Tabelle 50 aufgefrischt.
Wenn andererseits ein T/RAM-Fehler vorliegt, bewirkt die Eingabe des Fehler-Bits (TR 0) in die Schaltung 56 der Fig. 13 die Erzeugung eines Übersetzungsfangsignales ttO pder ttl. Es schaltet das Ausgangssignal der Schaltung 60 (Fig. 15) den Multiplexer 54, so dass die T/RAM-Adresssignale von der C-Schiene 24 an den MAR-Multiplexer 52 abgegeben werden. Das Übersetzungsfangsignal ergreift eine besondere Gruppe von Steuersignalen im Steuerspeicher 14 auf, welche bewirken, dass ein Seg-ment-Identifikator in der Tabelle 36 des Stapels 30 verwendet wird, um die Seitentabelle für das Segment im Hauptspeicher 16 zu lokalisieren. Die Seitentabelleneintragung wird in der Segmentseitentabelle gefunden und das bestimmte dekodierte Steuersignal LT/RAM (Fig. 10) bewirkt, dass die Eintragungssignale der Seitentabelle in das T/RAM 42 (Fig. 12) gespeichert werden, und zwar von V MAR 26, und an der durch das T/RAM-Index-signal aus dem T/RAM-Adresszwischenspeicher 38 angegebenen Stelle. Das Überwachungs-Bit des Segmentidentifikators wird durch die Schaltung 62 geprüft und, falls es hoch ist, werden die virtuellen Adresssignale im Überwachungsgebiet 34 des Stapels 30 gespeichert, um später beim teilweisen Löschen von T/RAM-Eingaben verwendet zu werden.
Danach wird die Interpretation des Makrobefehles wieder gestartet. Die Steuersignale WTRAN oder RTRAN werden wieder die Schaltungen der Fig. 10 gelegt und die Signale der indexierten Eintragung werden aus T/RAM 42 ausgelesen. Jetzt ist das Fehler-Bit = 0 und es können daher die übersetzten Signale der Seitenabschnittskennzahl in MARs 28 eingebracht werden, um die durch den Makrobefehl bestimmte Ein- oder Ausleseoperation durchzuführen. Zu diesem Zeitpunkt wird die Referenz-Abänderungs-Tabelle 50 an der durch das Signal der Seitenabschnittskennzahl indexierten Stelle aufgefrischt.
Wenn ein Schutzfehler auftritt, der durch die Schaltung 58 der Fig. 14 festgestellt wird, dann greift das Fangschutzsignal tt2 ein bestimmtes Steuersignal im Steuerspeicher 14 (Fig. 9) auf, um in einer für die vorliegende Erfindung irrelevanten Weise eine passende Wirkungsweise der zentralen Verarbeitungseinheit 12 zu bewirken.
Das Takten des Indexierens des T/RAM 42 wird durch Fig. 22 veranschaulicht. Wie aus dieser Figur ersichtlich, umfasst ein Zyklus der zentralen Verarbeitungseinheit (CP) die vier Zeitintervalle TA, TO, Tl und T2 (diese Signale werden wie in Fig. 18 gezeigt erzeugt). Jede Übersetzung verlangt zwei CP-Zyklen, ein «MOVE» und ein «TRAN». Das Takten bleibt dasselbe, ob ein T/RAM-Fehler vorliegt oder nicht.
Um das T/RAM 42 durch Ankoppeln der virtuellen Adresssignale von der C-Schiene 24 zu indexieren, wird ein Zeitsignal T2 dem T/RAM-Adresszwischenspeicher 38 eingegeben (Fig. 11). Die Bits F, WP und RP des T/RAM-Ausgangssignales werden an die Schaltungen der Fig. 13 und 14 angelegt, um Fangsignale zu erzeugen, und das Ausgangssignal der Schaltung 60 (Fig. 15) wird mitsamt dem Zeitsignal Tl an den T/RAM-Multiplexer 54 angelegt. Liegt ein T/RAM-Fehler vor, dann
657 218
werdén die virtuellen Adresssignale zum MAR-Multiplexer 52 geführt; andernfalls werden die Seitenabschnittskennzahlen (effektive Adressen) übertragen. Das Ausgangssignal des MAR-Multiplexers 52 (Fig. 23) wird bei T2 in das MAR 28 geladen. Schliesslich wird beim nächsten Tl (wenn kein T/RAM-Fehler vorliegt) die Referenz- und Abänderungs-Tabelle 50 aufgefrischt.
Wie schon beschrieben, wird im Falle eines T/RAM-Fehlers ein Fangsignal an den Steuerspeicher 14 angelegt, um auf die zur Behandlung des Fehlers passenden Kontrollsignale zuzugreifen. Eines der aus den so zugegriffenen Signalen abgeleitetes Signal ist LT/RAM (T/RAM laden, Fig. 10), welches, wie schon beschrieben, das Einlesen von Signalen zur Seitenabschnittskennzeichnung in das T/RAM bewirkt. Der zeitliche Ablauf des Einlesens einer Eintragung in das T/RAM 42, nach einem T/RAM-Fehler, ist in Fig. 23 veranschaulicht.
Nachdem die datenverarbeitende Maschine einen Teil des Programmes eines ersten Benützers durchgeführt hat, schaltet sie zum Programm eines anderen Benützers über. Dies bedeutet im allgemeinen, dass neue Daten aus der Datei (sekundärer Speicher 20, Fig. 1) in den Hauptspeicher eingebracht werden. Eine Seitentabelle (für jedes Segment des virtuellen Adressraumes des zweiten Benützers) wird durch das Betriebssystem aufgestellt, um diejenigen Seitenabschnitte im Hauptspeicher zu notieren, in welche bestimmte Seiten des Sekundärspeichers ein-gelesen wurden. Diese Seitentabellen werden zur Übersetzung von virtuellen in effektive Adressen verwendet, und zwar für den virtuellen Speicher, sowie der dem zweiten Benützer erscheint. Die Seitentabellen für das System des vorangehenden Benützers sind nicht mehr gültig (da Programme oder Daten des zweiten Benützers sich nunmehr in Seitenabschnitten befinden können, welche früher vom ersten Benützer benützt wurden, und Eintragung in das T/RAM, welche auf die ersten Seitentabellen bezug nehmen müssen, ungültig erklärt werden. Das Betriebssystem reagiert auf diesen Arbeitsschalter, indem es eine Anzahl von «Haushaltsarbeiten» durchführt, inklusive der Aktivierung von neuen Seitentabellen, indem aus dem Hauptspeicher neue Segmentidentifikatoren zum Teil 36 des Stapels 30 gebracht werden, um auf die Seitentabellen zu deuten. Im Verlaufe solcher Arbeiten löscht das Operationssystem die überwachten Eintragungen aus dem T/RAM, wie in Fig. 20 gezeigt, unter Verwendung der im Überwachungsgebiet 34 des Stapels 30 gespeicherten virtuellen Adressen, wie dies schon beschrieben wurde. Es. sind jedoch nicht alle Eintragungen in dem T/RAM ungültig; diejenigen, welche sich auf das Segment des Betriebssystemes (Segment 0) beziehen, bleiben gültig. Solche Teile des Betriebssystems sind beispielsweise eine Zeitfolgeroutine, eine Seiteneinteilungsroutine, Dateiverwaltungsroutinen oder auch Datei Verarbeitungsroutinen. In solchen Fällen hat der Segmentidentifikator für das die Routine enthaltende Segment ein Überwachungs-Bit, das auf tief gesetzt ist, und es wird demzufolge keine virtuelle Adresse dieses Segmentes im Überwachungsgebiet 34 gespeichert. Daher wird keine der T/RAM-Eingaben für dieses Segment bei einem Benützerwechsel gelöscht. Es werden nur die Eintragungen aus der Seitentabelle eines überwachten Segmentes als ungültig erklärt, wenn eine neue Arbeit aufgenommen wird.
9
5
10
15
20
25
30
35
40
45
50
55
V
13 Blätter Zeichnungen

Claims (3)

  1. 657 218
    2
    PATENTANSPRÜCHE
    1. Mehrbenützer-Datenverarbeitungsmaschine mit einem mehrere Segmente aufweisenden virtuellen Speicher und mit:
    — einer zentralen Verarbeitungseinheit (12) mit einer Zwischenspeicherschaltung (38), mindestens einem Speicheradressregister (28) und einem Speicherdatenregister (40),
    — einem mit der zentralen Verarbeitungseinheit (12) verbundenen Steuerspeicher (14),
    — einer mit der zentralen Verarbeitungseinheit (12) verbundenen Sammelschiene (15), die einerseits Adressleitungen, welche Adressen vom Adress-Speicherregister erhalten, und andererseits Datenleitungen, welche sowohl Daten vom Daten-Spei-cherregister erhalten wie auch diesem zuführen, aufweist,
    — einem Speicher zum Speichern von Signalen, welche Daten und auch Makrobefehle darstellen, wobei dieser Speicher zwei Hauptteile umfasst, nämlich
    — einen mit der Sammelschiene (15) verbundenen sekundären Speicher (20) mit verhältnismässig langsamem Zugriff, welcher in mehrere Seiten unterteilt ist, von denen jede zur Speicherung einer Mehrzahl von Signalen ausgebildet ist, und
    — einen mit der Sammelschiene (15) verbundenen Hauptspeicher (16) mit verhältnismässig schnellem Zugriff, der Datensignale von der Sammelschiene empfangen und auch an diese abgeben kann und von ihr Adress-Signale empfangen kann, wobei dieser Hauptspeicher (16) mehrere Abschnitte aufweist, von denen jeder beschaffen ist, um dieselbe Speicherkapazität für Signale zu umfassen, wie eine Seite des sekundären Speichers (20), und wobei der Zugriff in den Hauptspeicher (16) durch Adress-Signale steuerbar ist, welche eine Seiten-Kennzahl und ein Verschiebungssignal enthalten,
    — wobei die zentrale Verarbeitungseinheit (12), der Steuerspeicher (14) und die Sammelschiene (15) zusammen eingerichtet sind, um Mittel zum Kopieren einer eine Seite umfassende Menge von Daten aus dem Sekundär-Speicher (20) in bestimmte, durch das Adress-Signal gekennzeichnete, Abschnitte des Hauptspeichers (16) sowie für den umgekehrten Vorgang, zu bilden,
    — wobei die datenverarbeitende Maschine zum Betrieb in Abhängigkeit von bestimmten, im Speicher vorhandenen, Makrobefehle darstellenden Signalen eingerichtet ist und die zentrale Verarbeitungseinheit (12) eingerichtet ist, um, zusammen mit dem Steuerspeicher (14), in Abhängigkeit von bestimmten Makrobefehlen für gewisse Schreib- und Lesezugriffe virtuelle Adress-Signale zu erzeugen, die eine Segment-Kennzahl, eine Seitenkennzahl und ein Verschiebungssignal umfassen sowie, um dieses virtuelle Adress-Signal der Zwischenspeicherschaltung (38) zuzuführen,
    — wobei die zentrale Verarbeitungseinheit (12) und der Steuerspeicher (14) durch den Zugriffs-Makrobefehl steuerbar sind, um eine Übersetzung der virtuellen Adresse in eine effektive Adresse zu bewirken, welche Übersetzung folgende Schritte umfasst: das Anlegen der Segment-Kennzahl und der Seitenkennzahl an den Hauptspeicher (16), um bestimmte Stellen desselben aufzurufen, die Seitenkennzahlen der Hauptspeicherabschnitte enthalten, und die Übertragung dieser Seitenkennzahlen aus dem Hauptspeicher (16) zum Speicheradressregister (28), zusammen mit den Verschiebungssignalen aus der Zwischenspeicherschaltung (38),
    — wobei die zentrale Verarbeitungseinheit (12) und der Steuerspeicher (14) durch den Zugriffs-Makrobefehl steuerbar sind, um Daten aus den aufgerufenen Hauptspeicher-Abschnitten an das Speicherdatenregister (40) anzulegen, und durch die Makrobefehle für Schreibzugriff steuerbar sind, um Signale aus dem Speicherdatenregister (40) an die aufgerufenen Hauptspeicherabschnitte anzulegen, welche Datenverarbeitungsmaschine gekennzeichnet ist durch:
    — einen innerhalb der zentralen Verarbeitungseinheit (12) befindlichen indexierten Speicher (42) mit wahlfreiem Zugriff,
    dessen Indexiermittel mit gewissen Ausgängen der Zwischenspeicherschaltung (38) verbunden sind,
    — Multiplexiermittel (52), deren Ausgänge mit den Eingängen des Speicheradressregisters (28) verbunden sind, und mit zwei Sätzen von Eingängen, wobei die Ausgänge des Speichers (42) mit wahlfreiem Zugriff mit dem ersten Satz von Eingängen verbunden sind, und die Ausgänge der Zwischenspeicherschaltung (38) mit dem zweiten Satz von Eingängen verbunden ist,
    — wobei die zentrale Verarbeitungseinheit (12) und der Steuerspeicher (14) gemeinsam zunächst durch den Zugriffs-Makrobefehl steuerbar sind, um von der Zwischenspeicherschaltung (38) kommende Signale, die der virtuellen Adress-Seitenkennzahl entsprechen, an die Indexiermittel des Speichers (42) mit wahlfreiem Zugriff anzulegen, um an deren Ausgängen den Satz von an den indexierten Stellen befindlichen Signalen zu erhalten, und zwar inklusive von Signalen, welche die Ab-schnitts-Seitenkennzahl darstellen sowie eines in einem von zwei möglichen Zuständen befindlichen Fehlersignals,
    — wobei die Multiplexiermittel (52) durch einen ersten Zustand des Fehlersignals steuerbar sind, um die indexierte Ab-schnitts-Seitenkennzahl vom Speicher (42) mit wahlfreiem Zugriff zum Speicheradressregister (28) zu übertragen, um den Hauptspeicher (16) aufzurufen, und durch den zweiten Zustand des Fehlersignales steuerbar sind, um die ausgegebene virtuelle Adresse, zwecks Übersetzung von der Zwischenspeicherschaltung (38) zum Speicheradressregister (28) zu übertragen, und
    — wobei ausserdem die zentrale Verarbeitungseinheit (12) und der Steuerspeicher (14) durch den zweiten Zustand des Fehlersignales steuerbar sind, um eine virtuelle Adresse zu übersetzen sowie, um an die indexierte Stelle im Speicher (42) mit wahlfreiem Zugriff Signale anzulegen, die der übersetzten Ab-schnitts-Seitenkennzahl entsprechen, zusammen mit einem in seinem ersten Zustand befindlichen Fehlersignal.
  2. 2. Datenverarbeitungsmaschine nach Anspruch 1, gekennzeichnet durch:
    — ein Zustandsregister (46) mit mehreren setzbaren Zu-standsbitstellen, um den jeweiligen Operationszustand der Maschine anzuzeigen,
    — eine indexierte Referenz- und Abänderungstabelle (50) mit je einer setzbaren Referenz-Bitstelle und einer setzbaren Ab-änderungs-Bitstelle für jeden Abschnitt des Hauptspeichers (16),
    — wobei die Referenz- und Abänderungstabelle (50) zwecks Indexierung der Tabelle durch die Abschnitts-Seitenkennzahl mit dem Ausgang des indexierten Speichers (42) mit wahlfreiem Zugriff verbunden ist,
    — wobei die zentrale Verarbeitungseinheit (12) und der Steuerspeicher (14) zusammen durch den Zugriffs-Makrobefehl steuerbar sind, um das Referenz-Bit zu setzen und durch den Makrobefehl für Schreibzugriff steuerbar sind, um das Abänderungs-Bit zu setzen, und
    — dadurch, dass der Ausgang der Referenz- und Abänderungstabelle (50) mit dem Zustandsregister (46) verbunden ist, um in Abhängigkeit vom Zustand der Referenz- und Abände-rungs-Bits bestimmte Zustandsbits zu setzen.
  3. 3. Datenverarbeitungsmaschine nach Anspruch 1, gekennzeichnet durch:
    — im Hauptspeicher (16) befindliche, je einem der Segmente des virtuellen Speichers zugeordnete Überwachungs-Bits mit je zwei möglichen Zuständen,
    — einen in der zentralen Verarbeitungseinheit (12) befindlichen Stapelspeicher (30),
    — wobei zentrale Verarbeitungseinheit (12) und Steuerspeicher durch den zweiten Zustand des Fehlersignales und durch die virtuelle Adresse des Segmentes während der Übersetzung dieser virtuellen Adresse steuerbar sind, um das Überwachungs-Bit des betreffenden Segmentes aufzurufen und seinen Zustand zu prüfen,
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    65
    3
    657 218
    — wobei zentrale Verarbeitungseinheit und Steuerspeicher durch den ersten Zustand des Überwachungs-Bit steuerbar sind, um die virtuelle Adress-Seitenkennzahl zwecks Speicherung an den Stapelspeicher (30) anzulegen, und
    — wobei zentrale Verarbeitungseinheit und Steuerspeicher durch den während des Maschinenbetriebes erfolgenden Benüt-zerwechsel steuerbar sind, um die gespeicherte virtuelle Adress-Seitenkennzahl aus dem Stapelspeicher (30) zurückzugewinnen und um das entsprechende Signal zum Indexieren des Speichers (42) mit wahlfreiem Zugriff zu verwenden, um das Fehlersignal auf seinen zweiten Zustand zu setzen.
CH8338/81A 1980-12-29 1981-12-29 Mehrbenuetzer-datenverarbeitungsmaschine mit virtuellem speicher. CH657218A5 (de)

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 (1)

Publication Number Publication Date
CH657218A5 true CH657218A5 (de) 1986-08-15

Family

ID=22825488

Family Applications (1)

Application Number Title Priority Date Filing Date
CH8338/81A CH657218A5 (de) 1980-12-29 1981-12-29 Mehrbenuetzer-datenverarbeitungsmaschine mit virtuellem speicher.

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)

* Cited by examiner, † Cited by third party
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
USRE37305E1 (en) * 1982-12-30 2001-07-31 International Business Machines Corporation Virtual memory address translation mechanism with controlled data persistence
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
EP0452990A3 (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)

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

Also Published As

Publication number Publication date
GB2090448B (en) 1984-11-28
NL8105849A (nl) 1982-07-16
SE445269B (sv) 1986-06-09
SE8107831L (sv) 1982-06-30
US4410941A (en) 1983-10-18
DE3151745A1 (de) 1982-08-19
NL192144C (nl) 1997-02-04
NL192144B (nl) 1996-10-01
GB2090448A (en) 1982-07-07
JPS57135493A (en) 1982-08-21
FR2497374B1 (fr) 1988-05-06
FR2497374A1 (fr) 1982-07-02
DE3151745C2 (de) 1991-05-16
CA1165898A (en) 1984-04-17
BE891653A (fr) 1982-04-16
IT1145635B (it) 1986-11-05
JPH0425579B2 (de) 1992-05-01
IT8168706A0 (it) 1981-12-29

Similar Documents

Publication Publication Date Title
CH657218A5 (de) Mehrbenuetzer-datenverarbeitungsmaschine mit virtuellem speicher.
EP1393184B1 (de) Vorrichtung und verfahren zum ermitteln einer physikalischen adresse aus einer virtuellen adresse unter verwendung einer hierarchischen abbildungsvorschrift mit komprimierten knoten
DE2423194C2 (de) Vorrichtung zum Berechnen einer absoluten Hauptspeicheradresse in einer Datenverarbeitungsanlage
DE2645537C2 (de)
DE4410060B4 (de) Übersetzungsvorrichtung zum Umsetzen einer virtuellen Speicheradresse in eine physikalische Speicheradresse
DE3131341C2 (de)
DE1499182C3 (de) Datenspeichersystem
DE2054835C2 (de) Steuereinrichtung in einem Prozessor einer Mehrprozessor-Datenverarbeitungsanlage
DE2417795C2 (de) Datenverarbeitungsanlage
DE2346525A1 (de) Virtuelle speichereinrichtung
DE2547488C2 (de) Mikroprogrammierte Datenverarbeitungsanlage
DE2912738A1 (de) System mit direkter uebertragung zwischen subsystemen
DE3932675A1 (de) Virtuelles maschinensystem
DE3280414T2 (de) Methode fuer den betrieb eines virtuellen speicherorganisationssystems.
DE2360303C2 (de) Datenverarbeitungsanlage mit Adreßübersetzung für Ein-/Ausgabekanäle
DE2054830C3 (de) Informationsverarbeitungsanlage mit Mitteln zum Zugriff zu Speicher-Datenfeldern variabler Länge
DE1549531A1 (de) Digitale Rechenanlage
DE3046912C2 (de) Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage
DE3338329C2 (de)
DE3688136T2 (de) Verfahren zum Testen und Setzen von Daten in einen Datensatz auf einer Platte in eine atomaren Ein/Ausgabeoperation.
DE3518818A1 (de) Datenverarbeitungsvorrichtung und verfahren und vorrichtung zur umsetzung von datenelementen
DE2245284A1 (de) Datenverarbeitungsanlage
DE2456710A1 (de) Einrichtung zum packen von seitenrahmen eines hauptspeichers mit datensegmenten
DE2403039C2 (de) Einrichtung zur Befehlsausführung in einer adressenerweiterten elektronischen Datenverarbeitungsanlage
DE68928782T2 (de) Datenverwaltungssystem

Legal Events

Date Code Title Description
PL Patent ceased