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
Application number
DE3151745A
Other languages
English (en)
Other versions
DE3151745A1 (de
Inventor
Arthur Acton Mass. Us Barrow
Horace H. North Andover Mass. Us Tsiang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wang Laboratories Inc
Original Assignee
Wang Laboratories Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wang Laboratories Inc filed Critical Wang Laboratories Inc
Publication of DE3151745A1 publication Critical patent/DE3151745A1/de
Application granted granted Critical
Publication of DE3151745C2 publication Critical patent/DE3151745C2/de
Granted legal-status Critical Current

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

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,
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,
  • - 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).
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).
DE19813151745 1980-12-29 1981-12-29 Multitasking-datenverarbeitungsanlage Granted DE3151745A1 (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 (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)

* 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
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)

* 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
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