DE3280414T2 - Methode fuer den betrieb eines virtuellen speicherorganisationssystems. - Google Patents

Methode fuer den betrieb eines virtuellen speicherorganisationssystems.

Info

Publication number
DE3280414T2
DE3280414T2 DE8282111440T DE3280414T DE3280414T2 DE 3280414 T2 DE3280414 T2 DE 3280414T2 DE 8282111440 T DE8282111440 T DE 8282111440T DE 3280414 T DE3280414 T DE 3280414T DE 3280414 T2 DE3280414 T2 DE 3280414T2
Authority
DE
Germany
Prior art keywords
address
area
program
page
task
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
DE8282111440T
Other languages
English (en)
Other versions
DE3280414D1 (de
Inventor
Koji Hirai
Tomoaki Nakamura
Keiichi Nakane
Hiroaki Nakanishi
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Application granted granted Critical
Publication of DE3280414D1 publication Critical patent/DE3280414D1/de
Publication of DE3280414T2 publication Critical patent/DE3280414T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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

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 vorliegende Erfindung betrifft ein Hauptspeicherverwaltungssystem für Computersysteme, spezieller ein virtuelles Speicherverwaltungssystem, das für eine Verwendung geeignet ist, bei der ein Programm, das hohe Antwort- oder Ansprechgeschwindigkeit benötigt, und ein Programm, das eine große Speicherkapazität benötigt, gleichzeitig ausgeführt werden.
  • Bisher ist als eines der hochwertigsten Verwaltungssysteme als Hauptspeicherverwaltungssystem für Computersysteme ein virtuelles Speichersystem bekannt, das ON-DEMAND PAGE SWAPPING (Seitenumlagerung auf Anforderung) (Abkürzung DEMAND PAGING = Bedarfspaging) bekannt ist. Ein Beispiel für ein solches System ist in S. E. Mandick & Conovan: Operating Systems, S. 139-165, MacGraw-Hill Book Company, 1974 dargelegt.
  • Das virtuelle Speicherverwaltungssystem ist dadurch gekennzeichnet, daß die Adresse der Speichervorrichtung nicht die reale oder tatsächliche Adresse (oder physikalische Adresse) ist, die dem physikalischen Hauptspeicher zugeordnet ist, sondern daß sie durch eine virtuelle Adresse beschrieben ist, die einem virtuellen Speicherbereich zugeordnet ist, der nicht tatsächlich vorhanden ist, und daß sie nur als logische Konstruktion gebildet ist. Daher ist es wesentlich, Hardware zu verwenden, um die Entsprechung zwischen der virtuellen Adresse und der tatsächlichen Adresse zu erhalten, wie auch ein Softwareprogramm zu diesem Zweck erforderlich ist. Die Hardware und die Software zum Erhalten dieser Entsprechung werden gemeinsam im allgemeinen als Adreßübersetzungsmechanismus bezeichnet. Das oben genannte BEDARFSPAGING ist eines der Beispiele der Maßnahmen zum Realisieren des Adreßübersetzungsmechanismus. Das BEDARFSPAGINGVERFAHREN wird daher untenstehend skizziert.
  • Gemäß dem BEDARFSPAGINGVERFAHREN wird der virtuelle Speicherbereich vorab in mehrere kleine Bereiche fester Länge unterteilt, die als "Seiten" bezeichnet werden. Andererseits wird der Hauptspeicher vorab in kleine Bereiche derselben Länge, wie sie derjenigen einer Seite entspricht, unterteilt, die als Seitenrahmen bezeichnet werden (nachfolgend abgekürzt mit PF = Page Frame). Die Seiten und die PFs werden mit Nummern versehen, die jeweils von 0 (Null) aus beginnen. Das Programm ist auf einer oder mehreren aufeinanderfolgenden Seiten in solcher Weise angeordnet, daß es nicht mit Seiten überlappt, die andere Programme enthalten. Der folgende Ablauf wird beim BEDARFSPAGINGVERFAHREN zum Ausführen des Programms verwendet. Während des Ausführens eines Programms wird, wenn sich herausstellt, daß eine Bezugnahme auf eine virtuelle Adresse in der Seite vorgenommen wird, die nicht dem PF zugeordnet ist (dies wird als "Seitenfehler" bezeichnet), ein Ablauf vorgenommen, um Übereinstimmung zwischen der Seite und dem PF zu erzielen genauer gesagt, arbeitet der oben genannte Adreßübersetzungsmechanismus dahin, Übereinstimmung zwischen der Seite und einem PF herzustellen, der bisher der Seite nicht zugeordnet war (ein derartiger PF wird als "leerer" PF bezeichnet). Wenn kein leerer PF vorhanden ist, wird die Entsprechung zwischen einer anderen Seite und einem PF aufgegeben, um den PF zu leeren, und dieser neue, leere PF wird zur Entsprechung mit der vorgenannten Seite gebracht.
  • Nachdem das Programm ausgeführt ist, wird die Entsprechung aller durch das Programm verwendeten Seiten zu den PFs aufgegeben, so daß die PFs frei werden.
  • Dieses BEDARFSPAGINGVERFAHREN bietet die folgenden Vorteile.
  • (1) Da nur die ausgeführten Seiten zur Übereinstimmung mit einem PF gebracht werden müssen, ist die Größe eines Programms nicht durch die Kapazität des Hauptspeichers beschränkt. Genauer gesagt, besteht theoretisch keine Grenze für die Größe des virtuellen Speicherbereichs.
  • (2) Es besteht keine Neigung dazu, daß die Seiten für die Bezugnahme und Ausführung während einer vorbestimmten Zeitspanne nur auf einen Teil des Programmbereichs konzentriert sind, so daß es selten geschieht, daß eine ausgeführte Seite in unerwünschter Weise den PF belegt. Folglich ist der Wirkungsgrad des Hauptspeichers bemerkenswert hoch.
  • (3) Aus diesen Gründen kann, wenn mehrere Programme gleichzeitig ausgeführt werden (als "Mehrfachprogrammierung" bezeichnet), die Gesamtzahl verwendeter Seiten viel kleiner gemacht werden, als es der Gesamtzahl an Seiten der Programmgruppe entspricht.
  • Folglich ist die Anzahl an Programmen, die in der Hauptspeichervorrichtung enthalten sein können, viel größer als die Anzahl, die durch die gesamte Seitenzahl gegeben ist. Dies erlaubt in zweckdienlicher Weise einen Multiplizierungsgrad von Programmen.
  • Andererseits leidet dieses Verfahren jedoch unter den folgenden Schwierigkeiten.
  • (1) Da ein Seitenfehler während der Ausführung des Programms mit bestimmter Häufigkeit auftritt, wird die ursprüngliche Programmausführungszeit um die Zeitspanne verlängert, die zum Ausführen des Ersetzungsalgorithmus erforderlich ist (diese Zeitspanne wird als "Betriebssystem-Overhead" bezeichnet), was zu verschlechterter Verarbeitungsleistung führt.
  • (2) Da keine Einrichtung vorhanden ist, um diese Verringerung der Verarbeitungsleistung vorab vorauszusagen, tritt, wenn viele Programme in zufälliger Weise ausgeführt werden, ein unerwünschtes Phänomen auf, das als "Überlastung" ("Thrashing") bezeichnet wird, bei dem der größte Teil der Arbeitszeit des Computers für den Betriebssystem-Overhead verbraucht wird, so daß die Funktion des Computersystems dem Wesen nach ausfällt.
  • (3) Der Preis des Computersystems wird durch die Hinzufügung des Adreßübersetzungsmechanismus erhöht.
  • Von diesen drei Schwierigkeiten ist die dritte nicht so ernst, da der Adreßübersetzungsmechanismus heutzutage dank der aktuellen Entwicklung der Technik betreffend Hardwarevorrichtungen mit ausreichend niedrigen Kosten erzeugt werden kann. Die erste und die zweite Schwierigkeit sind jedoch grundsätzlicher Art und sind insbesondere dann schwerwiegend, wenn Echtzeitverarbeitung wie bei einem Anlagensteuerungssystem ausgeführt wird.
  • Ein verbessertes virtuelles Speicherverwaltungssystem ist in US-P-3 902 164 offenbart. Bei diesem System ist der virtuelle Adreßraum in einen Bereich unterteilt, in dem virtuelle und tatsächliche Adressen gleich sind und keine Adreßübersetzung erforderlich ist, und in einen Bereich, in dem Adreßübersetzungen ausgeführt werden. Auf den letzteren Bereich wird auf ähnliche Weise zugegriffen wie beim Bedarfspagingverfahren. Der virtuelle Adreßraum ist in Seiten unterteilt, und die Entsprechung zwischen der virtuellen Adresse einer Seite und ihrer zugehörigen, tatsächlichen Adresse ist in Tabellen abgelegt. Die Verbesserung in der Systemleistung wird dadurch erzielt, daß häufig verwendete Daten und Teile des Betriebssystems in demjenigen Speicherbereich abgelegt werden, in dem keine Adreßübersetzung erforderlich ist und bei dem die Zugriffszeit besonders kurz ist.
  • US-P-3 914 747 beschreibt ein virtuelles Speicherverwaltungssystem mit einem Direktadressiermodus. In diesem Modus wird ein kontinuierlicher Abschnitt des virtuellen Adreßraums, wie er durch Hardwareschalter festgelegt wird, in Eins-zu-Eins-Weise in einen kontinuierlichen Abschnitt am untersten Ende des tatsächlichen Adreßraums übersetzt. Darüber hinaus legt bei diesem System ein Paar Steuerregister einen Adreßbereich im virtuellen Adreßraum fest, der in Seiten unterteilt ist, wobei jede Seite willkürlich einer Seite im tatsächlichen Adreßraum durch Kartierungszeiger zugeordnet werden kann, die in einer Kartogrammtabelle vorhanden sind.
  • Jedoch sind die Systems aus dem Stand der Technik nicht ausreichend flexibel dafür, daß die Ausführung eines Programms zugelassen ist, das hohe Ansprechgeschwindigkeit erfordert, wie z. B. bei Echtzeitanwendungen, wie auch eines Programms, das eine große Speicherkapazität erfordert.
  • Demgemäß ist es eine Aufgabe der Erfindung, ein Verfahren zum Betreiben eines virtuellen Speicherverwaltungssystems anzugeben, das wirkungsvolle Ausführung eines Programms erlaubt, das hohe Ansprechgeschwindigkeit erfordert, während der Vorteil des BEDARFSPAGINGVERFAHRENS beibehalten wird, bei dem ein Programm großer Kapazität ausgeführt wird, ohne daß eine Beschränkung durch die Kapazität des Hauptspeichers besteht.
  • Diese Aufgabe wird durch das in Anspruch 1 definierte Verfahren gelöst. Gemäß der Erfindung wird der virtuelle Speicherbereich, der Gegenstand der Adreßübersetzung ist, in mindestens zwei Teile unterteilt: nämlich einen Bereich mit fester Adreßübersetzung (nachfolgend als "FX-Bereich" bezeichnet), in dem die Entsprechung zwischen den Seiten und den PFs (Page Frames = Seitenrahmen) zum Zeitpunkt der Systemerzeugung erstellt wird, und einen Bereich mit variabler Adreßübersetzung (schwimmender Bereich: nachfolgend als "FL"-Bereich bezeichnet), in dem die Entsprechung zwischen den Seiten und den PFs zum Zeitpunkt des Beginns der Programmausführung errichtet wird und aufgegeben wird, wenn die Ausführung vorüber ist.
  • Die Grenze zwischen dem FX- und dem FL-Bereich wird durch ein Register angezeigt. Wenn ein Task erzeugt wird, wird durch dieses Register beurteilt, ob der Speicherbereich zum FX- oder zum FL-Bereich gehört. Wenn entschieden wird, daß der Task zum FL-Bereich gehört, wird die Entsprechung zwischen den virtuellen und den tatsächlichen Adressen erhalten und wieder aufgegeben, wenn die Ausführung des Tasks abgeschlossen ist.
  • Vorzugsweise werden hohe Ansprechgeschwindigkeit erfordernde Programme im FX-Bereich angeordnet, während Programme großer Kapazität, die keine hohe Ansprechgeschwindigkeit erfordern, im FL-Bereich angeordnet werden.
  • Der Grund, weswegen auch der FX-Bereich als Gegenstand der Adreßübersetzung verwendet wird, ist der folgende. Die Adreßübersetzung ist während der Ausführung des Programms fest eingestellt. Wenn eine Zunahme der Kapazität aufgrund eines Hinzufügens von Funktionen zum Programm auftritt, wird das veränderte Programm in einem anderen virtuellen Speicherbereich angeordnet. Die Entsprechung zwischen den Adressen und PFs ist derart, daß Seiten mit unverändertem Inhalt denselben PFs wie die vorigen zugeteilt werden, während die Seiten, die einen geänderten oder modifizierten Inhalt aufweisen, den leeren PFs zugeteilt werden. Durch diese Vorgehensweise ist es möglich, den Bedarf zum Erstrecken oder Ausdehnen des Systems mit minimaler Umordnung im Hauptspeicher zu meistern.
  • Die obige und andere Aufgaben und Merkmale der Erfindung gehen aus der folgenden Beschreibung in Zusammenhang mit den beigefügten Zeichnungen hervor, in denen
  • Fig. 1 ein Adreßübersetzungsprogramm zum Erläutern eines erfindungsgemäßen virtuellen Speicherverwaltungssystems ist;
  • Fig. 2 ein Beispiel eines Computersystems zeigt, auf das die vorliegende Erfindung angewendet wird;
  • Fig. 3 Beispiele einer Betriebssystemtabelle und eines Programms veranschaulicht, wie sie vom erfindungsgemäßen virtuellen Speicherverwaltungssystem verwendet werden;
  • Fig. 4 eine Darstellung eines Beispiels einer Steuertabelle ist, wie sie gemäß der Erfindung beschickt wird;
  • Fig. 5A und 5B Flußdiagramme eines Bereichsregistrier- und löschprogramms sind;
  • Fig. 6A und 6B Flußdiagramme von Taskbildungs- und -aufgabeprogrammen 2 sind;
  • Fig. 7A und 7B Flußdiagramme von Taskstart- und -beendigungsprogrammen sind;
  • Fig. 8 ein Flußdiagramm eines Taskdispatchers 4 ist; und
  • Fig. 9A und 9B Flußdiagramme von Hauptspeicheranforderungs- und -freigabeprogrammen sind.
  • Ein bevorzugtes Ausführungsbeispiel der Erfindung wird nachfolgend unter Bezugnahme auf die Fig. 1 bis 4 beschrieben.
  • Die hier verwendeten Abkürzungen und deren formelle Bezeichnungen sind in der folgenden Tabelle 1 aufgelistet. Tabelle 1 Bezugszeichen formelle Bezeichnungen Abkürzungen virtueller Speicher (virtual storage) Betriebssystem(operating system) zukünftige Verwendung (future use) Globaler Bereich (global area) residente Unterroutine (resident subroutine) residenter Task (resident task) nichtresidenter Task(non-resident task) dito Adreßübersetzungsmechanismus (adress translating mechanism) Hauptspeicher (maein storage) Seitenrahmen (page frame) Sekundärspeicher (secondary storage) ursprünglich geladenes Programm (initial program load)
  • Fig. 1 zeigt eine erfindungsgemäße Anordnung eines virtuellen Speichers 100 (nachfolgend als "VS" bezeichnet), eines Hauptspeichers 300 (nachfolgend als "MS" bezeichnet) und eines Sekundärspeichers 400 (nachfolgend als "SS" bezeichnet), wie auch die Entsprechung von Teilen einschließlich eines Adreßübersetzungsmechanismus 200. Der virtuelle Speicher 100 besteht aus einem adressennichtübersetzenden Bereich (nachfolgend als "V=R-Bereich" bezeichnet) und einem Adreßübersetzungsbereich (nachfolgend als "V≠Bereich" bezeichnet). Virtuelle Adressen werden jedem Byte in Aufwärtsreihenfolge, ausgehend von der Adressennummer 0, zugeteilt, die dem oberen linken Ende in den Zeichnungen zugeteilt ist. Der V≠R-Bereich besteht aus einem OS(Betriebssystem)-Bereich 110, wobei es sich um ein grundlegendes Softwareprogramm handelt, und einem FU(zukünftige Verwendung) -Bereich 120, der als zukünftiger Ausdehnungsbereich für den OS-Bereich verwendet wird.
  • Der V≠R-Bereich, bei dem es sich um einen Adreßübersetzungsbereich handelt, besteht aus einem FX-Bereich, in dem die
  • Entsprechung zwischen einer Seite und einem PF zum Zeitpunkt der Systemerzeugung erhalten wird, und einem FL-Bereich, in dem die Entsprechung zwischen einer Seite und einem PF zum Zeitpunkt des Beginns einer Programmausführung erhalten wird und zum Zeitpunkt des Abschlusses der Programmausführung aufgegeben wird.
  • Der FX-Bereich besteht aus einem RTASK (residenter Task) 150 und einem NRTASK (nichtresidenter Task) 160, bei denen es sich um Verarbeitungsprogramme handelt, die dazu in der Lage sind, eine Gruppe von Funktionen parallel auszuführen, einem Globalbereich (GLB) 130, bei dem es sich um eine von den Tasks gemeinsam nutzbare Tabelle handelt, und einer Unterroutine (RSUB) 140, die von den Tasks gemeinsam verwendet wird.
  • Der Bereich des RTASK 150 ist ein Bereich, in dem Seiten von den Tasks ohne jede Überlappung gemeinsam genutzt werden, und diese Tasks werden vom SS400 zum Zeitpunkt des Starts durch den IPL410 in den MS300 geladen.
  • Im Gegensatz hierzu ist der NRTASK 160 ein Bereich, in dem mehrere Tasks, die nicht gleichzeitig ausgeführt werden oder die nicht gleichzeitig ausgeführt werden müssen, zur Entsprechung mit derselben VS-Adresse gebracht sind, wodurch wirkungsvollere Nutzung des VS erfolgt. Die Priorität für die Verwendung dieses Bereichs wird abhängig von den Prioritätspegeln dieser Tasks beurteilt. Die Beurteilung erfolgt nicht zum Zeitpunkt des Starts, sondern zum Zeitpunkt der Ausführung des Tasks, und die Tasks untergeordneten Prioritätsrangs werden im Schutzbereich 420 des SS400 geschützt.
  • Auch der FL-Bereich enthält einen NRTASK 170.
  • In jedem der Bereiche OS110, GLB130, RSUB140,RTASK150 und NRTASK160 sind die MS300 in 1:1-Beziehung zu den VSs angeordnet. Der FL-Bereich im MS300 ist kleiner als der FL-Bereich im VS.
  • Tatsächliche Adressen werden auch dem MS, beginnend von 0 (Null), ausgehend vom linken Ende in ansteigender Ordnung für jedes Byte zugeteilt. Der V≠R-Bereich ist durch die Einheiten der Seiten 180 und der PFs 310 unterteilt. Nummern sind auch den Seiten 180 und den PFs 310 in ansteigender Reihenfolge, ausgehend von 0 (Null), ab den linken Enden des VS und des MS zugeteilt. Der SS400 betseht aus einem anfangsgeladenen Programm (IPL)410, die dem es sich um ein Programm handelt, das so ausgebildet ist, daß es alle Bereiche mit Ausnahme des FU120 des VS100-Programms speichert und Information für verschiedene Bereiche im MS für den Zustand ausarbeitet, bei dem der Inhalt des MS300 instabil ist, wie im Fall des Ein- und Ausschaltens der Spannungsversorgung, einem Bereich zum Speichern einer Datei großer Kapazität, die nicht in den VS100 eingespeichert werden kann, und einem Bereich zum Speichern eines Sicherungsbereichs 420 für
  • NRTASK160. Adreßnummern werden auch dem SS400, ausgehend von 0 (Null), ab dem linken Ende in aufsteigender Reihenfolge für jede Einheit von 512 Bytes zugeteilt. Diese Adresse wird als logische Sektoradresse bezeichnet (nachfolgend mit "LSA" abgekürzt).
  • Dadurch führt VS100 drei Arten von Tasks aus, die verschiedene Verwaltungsverfahren aufweist, nämlich RTASK150, NRTASK160 und NRTASK170. RTASK120 des FX-Bereichs wird für Tasks für Hochgeschwindigkeitsverarbeitung mit den strengsten zeitlichen Bedingungen verwendet, während NRTASK170 des FL-Bereichs für die Tasks verwendet wird, die Größen aufweisen, die diejenigen von RTASK150 und NRTASK160 überschreiten. Andererseits wird NRTASK 160 des FX-Bereichs für Tasks mit Echtzeitcharakteristik und einer Kapazität verwendet, die zwischen denjenigen der zwei oben genannten Taskarten liegt. Durch Einführen dieser Unterteilung dreier Taskarten ist es möglich, die Aufgabe der Erfindung zu lösen.
  • Um die zuvor in Zusammenhang mit Fig. 1 erläuterte Entsprechung zwischen VS100, MS300 und SS400, wie auch das Verfahren zum Verwenden derselben zu realisieren, ist es erforderlich, die folgenden drei Punkte verständlich zu machen.
  • (1) Einzelheiten des Adreßübersetzungsmechanismus.
  • (2) Spezifikation der Taskausführung durch OS110 zum Bestimmen der Entsprechung zwischen den Seiten 180 im FL-Bereich und den PF310 im selben.
  • (3) Spezifikation des VS-Raumverwaltungsprogramms zum Verwalten der Anordnung im VS100, der Registrierung oder Löschung von GLB130, RSUB140, RTASK150 und NRTASK160,170 und zum Vorlegen von Informationen, die zum Verarbeiten der oben genannten Punkte (1) und (2) erforderlich sind.
  • Eine detaillierte Erläuterung wird nachfolgend zu den oben angegebenen Punkten (1) bis (3) unter besonderer Bezugnahme auf die Fig. 2 bis 3 gegeben.
  • Fig. 2 zeigt die gesamte Hardwareanordnung eines Computersystems, auf das sich das Ausführungsbeispiel der Erfindung bezieht.
  • Die hier verwendeten Abkürzungen und ihre formellen Bezeichnungen sind in der folgenden Tabelle 2 dargestellt. Tabelle 2 Bezugszeichen formelle Bezeichnungen Abkürzungen Speichersteuereinheit (memory control unit) Übersetzungsnebenpuffer (translation look-aside buffer) Hauptspeicheradreßregister (maein storageadrese register virtuelles Speicheradreßregister) (virtual storage address register) Flip-Flops Pufferregister (buffer register) V=R-Bereichsregister Seitentabellenindex-Ursprungsregister (pagetable index origin register) Systembuscontroller (Jobprozessor (job processor) Speicheradreßregister (memory adress register) Flip-Flops Datenregister (data register) Arithmetikbetriebseinheit (arithmetic operation unit) beschreibbarer Steuerspeicher (writable control storage) Mikroprogrammzähler (micro program counter) Cachespeicher Programmzähler (program counter) allgemeines Register Dateisteuerprozessor (file control processor) Datenpuffer (data buffer) I/O-Controller Dateisteuerelektronik (file control electronics)
  • Im allgemeinen besteht ein Computersystem aus dem oben genannten MS300, einer Hauptspeichersteuereinheit 500 (die als "MCU" bezeichnet wird) zum Steuern des MS, einem Jobprozessor (der nachfolgend als "JOBP" bezeichnet wird) mit einer Funktion zum Lesen und Ausführen des Maschinenbefehls im MS, dem vorgenannten SS400, einer Dateisteuerelektronik 890 (nachfolgend als "FCE" bezeichnet) zum Steuern des 55400, einem Dateisteuerprozessor 800 (nachfolgend als "FCP" bezeichnet) zum Vornehmen einer Datenübertragung zwischen dem SS400 und der MCU500 gemäß den über die FCE890 durch den JOBP700 gegebenen Anweisungen, einem System 610, der die MCU500, den JOBP700 und den FCP800 miteinander verbindet und die Datenübertragungseinrichtung bildet, und einem Systembuscontroller 500 (nachfolgend als "SBC" bezeichnet).
  • Der JOBP700 besteht aus einem Speicheradreßregister 710 (nachfolgend als "MAR" bezeichnet), um der MCU500 eine Anweisung betreffend die VS-Adresse als Adreßobjekt zu geben, einem Datenregister 730 (nachfolgend als "DR" bezeichnet) zum Speichern der Daten zum Lesen und Schreiben, einer Gruppe von Flip-Flops 720 (nachfolgend als "FF" bezeichnet) zum Steuern der MCU500 und des FCP800, einer Arithmetikbetriebseinheit 740 (nachfolgend als "ALU" bezeichnet) mit Funktionen für logische Operationen, arithmetische Operationen und Verschiebeoperationen, einem Programmzähler 780 (nachfolgend als "PC" bezeichnet) zum Anzeigen der als nächstes auszuführenden VS-Adresse, die den Maschinenbefehl speichert, einer Gruppe allgemeiner Register 790 (nachfolgend als "GR" bezeichnet) zur Verwendung bei Operationen, einem beschreibbaren Steuerspeicher 750 (nachfolgend als "WCS" bezeichnet) zum Lesen der Maschinenbefehle und zum Speichern, welche Verarbeitungsart ausgeführt werden sollte, einem Mikroprogrammzähler 760 (nachfolgend als "MPC" bezeichnet) zum Zeigen der als nächstes auszuführenden WCS750-Adresse, und
  • einem Cachespeicher 770 hoher Geschwindigkeit und kleiner Kapazität (nachfolgend als "Cache" bezeichnet), der, um die Zugriffszeit auf Information im MS300 zu verkürzen, die Information speichert, auf die im MS Bezug genommen wurde, und der dazu verwendet wird, Daten aus dem MS zu lesen, bis sie überschrieben wird, oder zusätzliches Einschreiben wegen Auffüllens der Kapazität erfolgt.
  • Der FCP800 weist einen Aufbau ähnlich dem des JOBP700 auf und entspricht jeweils ALU740, WCS750, MPC760, ALU840, WCS850 und MPC860, weist jedoch keinen PC780 auf, da er keine Funktion zum Ausführen der Maschinenbefehle aus dem MS300 hat. Stattdessen weist er einen Datenübertragungspuffer 870 zum Auffangen des Unterschieds in den Datenübertragungsgeschwindigkeiten des 55400 und der MCU500 und eine Eingabe/ Ausgabe-Steuerschaltung 880 auf, zum Steuern der Übertragung von Daten zwischen ihm und der zuvor genannten FCE890.
  • Die MCU500 weist ein Eingabe/Ausgabe-Pufferregister 550, ein VS-Adreßregister 530 (nachfolgend als "VAR" bezeichnet), ein Adreßregister 520 für tatsächliche Adressen (nachfolgend als "RAR" bezeichnet), eine Adreßübersetzungseinheit 580 (nachfolgend als "ATU" bezeichnet), einen Übersetzungsnebenpuffer 510 (nachfolgend als "TLB" bezeichnet), ein V= R-Bereichsgrenzenregister (VEQR)560, ein Seitentabellenindex-Ursprungsregister (PTIOR)570 und eine Gruppe von Flip-Flops 540 auf, die denjenigen beim oben genannten JOBP700 und dem FF720 beim FCP800 entsprechen.
  • Nachfolgend wird ein Ablauf erläutert, der eingeschlagen wird, wenn als Ergebnis einer Ausführung einer durch den PC780 unter Steuerung des WCS750 gegebenen Befehls ein Zugriff auf den MS300 erfolgt. Zunächst stellt der JOBP700 im MAR710 die VS-Adresse ein, auf die zugegriffen werden soll, und setzt im FF720 eine Information, die anzeigt, daß eine Bezugnahme erfolgt. Wenn dieses Signal vom FF540 empfangen wird, liest die MCU500 die VS-Adresse in das VAR-530 ein und startet dann die ATU580. Die ATU580 bestimmt die tatsächliche Adresse unter Bezugnahme auf VEQR560, PTIOR570 und TLB510 und gibt dieselbe in das RAR520 ein, um dadurch den MS300 zu starten. Die ATU580 greift dann auf den Datenwert zu, wie er durch die Adresse vom RAR520 angezeigt wird, und gibt denselben in das Eingangs/Ausgangs-Pufferregister 550 ein und informiert danach das FF540 über die Tatsache, daß die Daten entnommen wurden. Wenn der oben angegebene Befehl vom FF720 empfangen wird, entnimmt der JOBP700 die Daten aus dem Eingangs/Ausgangs-Pufferregister 550 in das DR730, um dadurch die Reihe von Operationen abzuschließen, die zur Bezugnahme auf den MS dienen.
  • Nachfolgend wird unter besonderer Bezugnahme auf die Fig. 3 und 4 eine Erläuterung für eine Adreßübersetzung gegeben, wie sie von der ATU580 unter Verwendung der in Fig. 2 dargestellten Hardware als Grundlage ausgeführt wird.
  • Fig. 3 zeigt den Aufbau des OS-Bereichs 110 im VS100. Die hierbei verwendeten Abkürzungen und ihre formellen Bezeichnungen sind untenstehend aufgelistet. Tabelle 3 Bezugszeichen formelle Bezeichnungen Abkürzungen Betriebssystemgemeinschaftsblock (operating system common block) V=R-Register Seitentabelleindex-Ursprungsregister (page table index origin register) oberste Adresse von PFQ von RQOB von TCB von ACT FX/FL-Grenzadresse des VS des MS maximale Größe des MS Seitentabellenindex (page table index) Seitentabelle (page table) Seitenrahmenschlange (page frame queue) Bereitschaftsschlangenzeigerblock (read queue pointer block) Tasksteuerblock Bereichssteuerblock Seitenrahmentabelle (page frame table)
  • Im allgemeinen besteht der OS-Bereich aus einer Steuertabelle und einem Steuerprogramm. Die Steuertabelle weist einen vielstufigen Listenaufbau einschließlich eines OS-Gemeinschaftsblocks (OSCB)10 auf, der in der obersten Stufe angeordnet ist, unter der ein Seitentabellenindex (PTIX)20, eine Seitenrahmenschlangentabelle (PFQ) 40, ein Bereitschaftsschlangenzeigerblock (RQPB) 50, ein Tasksteuerblock (TCB) 60 und eine Bereichssteuertabelle (ACT) 70 angeordnet sind. Darüber hinaus sind mehrere Seitentabellen (PT)30 unter dem PTIX20 angeordnet, und unter der PFQ40 sind Seitenrahmentabellen (PFT)80 mit Listenaufbau und der TCB60 angeordnet. Darüber hinaus ist ein TCB60 mit Listenaufbau unter dem RQPB50 angeordnet. Der oben genannte OSCB10 ist an einer festgelegten Adresse des VS100 angeordnet und besteht aus Feldern, wie VEQR(V=R-Register)11, das die endgültige Seitenadresse des V=R-Bereichs enthält, wie in Verbindung mit Fig. 1 erläutert, PTIOR ( Seitentabellenindex-Ursprungsregister)12, TPPFQ(oberste Adresse der PFQ)13, TPRQPB(oberste Adresse des RQPB)14, TPTCB(oberste Adresse des TCB)15 und TPACT(oberste Adresse des ACT) 16, die die obersten Adressen von PFQ40, RQPB50, TCB60 und ACT70 repräsentieren. Der OSCB enthält ferner Felder wie FXFLBV(FX/FL-Grenzadresse des VS) 17, die die oberste VS-Adresse des FX-Bereichs im VS100 repräsentiert, FXFLBM(FX/FL-Grenzadresse des MS)18, das die oberste Adresse des FX-Bereichs im MS300 repräsentiert, und MAXMS(maximale Größe von MS)19, das die endgültige, tatsächliche Adresse des MS repräsentiert.
  • Das Steuerprogramm beinhaltet ein Bereichs-Registrierung/ Lösch-Programm 1 (Fig. 5) mit einer Funktion zum Verwalten von Bereichen im VS100, ein Task-Bildung/Aufgabe-Programm 2 (Fig. 6) zum Ausführen von RTASK150, NRTASK160,170 als Tasks aus diesen Bereichen, ein Task-Start/Ende-Programm 3 (Fig. 7) mit einer Funktion zum Starten und Beenden der durch das Programm 2 gebildeten Tasks, einen Taskdispatcher 4 (Fig. 8) (der nachfolgend als "DISP" bezeichnet wird) mit einer Funktion zum Auswählen aus mehreren Tasks, für die Startanforderungen vorliegen, desjenigen, der ausführbar ist und den höchsten Prioritätsrang aufweist, und um die Steuerung des ausgewählten Tasks zu verschieben, und ein MS-Anforderungs/ Freigabe-Programm 5 (Fig. 9), das vom DISP4 aufgerufen wird und dann, wenn der Task der NRTASKI70 ist, die Entsprechung zwischen den Seiten 180 und den PFs 310 gewinnt und aufgibt.
  • Fig. 4 zeigt den Aufbau des TLB510 im MCU500, wie auch den Aufbau der Steuertabellen PTIOR12, PTIX20, PT30, PFQ40, RQPB50, TCB60, ACT70 und PFT80. Die hierbei verwendeten Abkürzungen und ihre formellen Bezeichnungen sind untenstehend aufgelistet. Tabelle 4 Bezugszeichen formelle Bezeichnungen Abkürzungen Gültigkeitsanzeigeflag (validity indication flag) VS-Anfangsadresse Länge der PT30 Gültigkeitsanzeigeflag Seitenrahmennummer (page frame no.) Zugriffsschutzinformation (access protection information) Gesamtcasenummerder PFT Anzahl freier Seitenrahmen VS-Anfangsadresse der freien PFTs VS-Endadresse freier PFTs VS-Anfangsadresse der belegten PFTs VS-Endadresse der belegten PFTs VS-Anfangsadressewartender TCBs VS-Endadresse wartender TCBs Bereitschaftsschlange-Vorwärts-TCB-Zeiger Bereitschaftsschlange-Rückwärts-TCB-Zeiger Warteresource-Vorwärts-TCB-Zeiger Warteresource-Rückwärts-TCB-Zeiger Tasknummer Wartestatusflag Zugriffsschutzinformation Prioritätsrang ACT-Vorwärtszeiger (forward pointer of ACT) ACT-Rückwärtszeiger (backward pointer of ACT) Modulidentifizierinformation viruelle Adresse Logiksektoradresse Bereichsgröße
  • Klein geschriebene Zahlen, die an die linken Enden der jeweiligen Tabelle angefügt sind, zeigen die jeweiligen Bitpositionen. Beim dargestellten Ausführungsbeispiel weist die VS-Adresse eine Breite von 32 Bits (4 Bytes) auf, und die Seitengröße ist 2048 Bytes.
  • Der TLB510 weist 2 (zwei) Sätze von Tabellen mit 1024 Einträgen auf. In jeder Tabelle entspricht ein Eintrag einer Seite, und der Zugriff erfolgt dadurch, daß die Eintragsnummer des TLB durch die Nummer der virtuellen Seite (nachfolgend als "VPN" bezeichnet) des 11-ten bis 20-ten Bits der VS-Adresse ermittelt wird. Er wird durch die Seitenrahmennummer PFN511, die Zugriffsschutzinformation PRT512 für diese Seite, VA513 entsprechend dem ersten bis zehnten Bit der VS-Adresse (Nummer, wie sie erhalten wird, wenn der VS für IMB unterteilt wird), ein Bit V514 zum Beurteilen der Gültigkeit des TLB und ein Bit R515 zum Steuern des Neuschreibens der zwei Sätze des TLB gebildet.
  • Das PTIOR12 und der PTIX20 weisen identischen Aufbau auf, und ein Eintrag ds PTIX20 wird für IMB des VS-Bereichs erstellt. Dieser wird durch ein Gültigkeitsanzeigeflag V21 und TPPT(I)22 gebildet, die die VS-Anfangsadresse von PTIX20 oder PT30 und die Länge 23 anzeigt. Ein Eintrag für PT30 wird für eine Seite erstellt. Die PT30 besteht aus einem Gültigkeitsanzeigeflag 31, einer Seitenrahmennummer PFN32 und einer Zugriffsschutzinformation PRT33.
  • Die Seitenrahmenschlangentabelle PFQ40 besteht aus der Seitenrahmentabelle (PFT)80, der Gesamtcasenummer PFCT41 der PFT, der Anzahl EPFCT42 freier Seitenrahmen, VS-Adressen (EFPNT, EBPNT) 43, 44 für den ersten und letzten Fall freier PFTs, VS-Adressen (OFPNT, OBPNT)45, 46 des ersten und des letzten Falls belegter PFTs und einem Wartezeilenverwaltungsbereich (PFWFP, PFWBP)47, 48 zum Anhalten einer Task im Wartezustand, wenn im vorgenannten MS-Anforderungsprogramm 5 festgestellt wird, daß die freie PFT80 unzureichend ist.
  • Zahlen 47 und 48 bezeichnen die Adressen für den ersten und letzten Fall des wartenden TCB. Alle Tabellen des Listenaufbaus werden durch die VS-Adressen für den ersten und den letzten Fall in der aktuellen Tabelle verwaltet.
  • Ein Eintrag des RQPB50 wird für jeden Vorzugsrang eines Tasks erstellt, gebildet durch die Wartezeilenköpfe 51, 52 des TCB60. Das oben genannte Taskstartprogramm 3 verbindet den TCB60 des zu startenden Tasks mit dem hinteren Ende der auf Ausführung wartenden Zeile, unter Steuerung der Verwaltungstabelle, die der dem Vorzugsrang entsprechende RQPB ist, wie durch den zu startenden Task bestimmt. Das Taskabschlußprogramm 3 wird den TCB60 aus der auf Ausführung wartenden Zeile wieder los, wenn die Ausführung des Tasks abgeschlossen wird.
  • Der TCB60 besteht aus Zeigern RQFP61, RQBP62, die für jeden Task erstellt sind, und für Verbindung mit dem RQPB50 ausgebildet sind, Resourcenwartezeigern 63, 64, die bei Vorliegen der Resourcenwartebedingung für die Resourcen, wie PFWFP47, PFWBP48 der PFQ40 angekuppelt werden, der Tasknummer 5, dem Warteflag E66-1, dem anderen Steuerflag 66, einem Vorzugsflag 67-1, Zugriffsschutzinformation (PRT)67 und anderen Steuerinformationen 68.
  • Die ACT70 wird für jeden Modul (jeden RSUB, GLB, Task usw.) in jedem Bereich im VS100 erstellt und besteht aus Zeigern ACTFP71, ACTBP72 zum Suchen der VS-Adresse der nächsten Tabelle, Modulidentifizierinformation BEZEICHNER 73, der VS- Anfangsadresse VA74, unter der der Modul angeordnet ist, der SS-Anfangsadresse LSA75, der Modulgröße (Anzahl von Bytes) Größe 76 und anderen Steuerinformationen.
  • Die Anzahl erstellter PFT80 entspricht der Anzahl der PF310 im FX-Bereich im vorgenannten MS300. Jede PFT80 besteht aus Zeigern FPNT81, BPNT82 zum Suchen der VS-Adressen der nächsten Tabelle, einer Seitennummer VPN83 und einer Seitenrahmennummer PFN84.
  • Nachfolgend wird eine Erläuterung betreffend das Verfahren der Adreßübersetzung in der vorgenannten MCU500 auf Grundlage der Fig. 3 und 4 gegeben.
  • In der MCU500 wird zuallererst ein Vergleich zwischen der durch den VAR530 gegebenen VS-Adresse und dem Inhalt des vorgenannten V=R-Registers VEQR560 ausgeführt. Wenn die VS- Adresse kleiner ist als oder gleich groß ist wie VEQR560 oder wenn das V-Bit 21 des vorgenannten PTIOR570 Ungültigkeit zeigt, wird keine Adreßübersetzung vorgenommen, und das neunte bis 31-ste Bit des VAR530 werden unverändert eingestellt. Daher wird, da der V=R-Bereich im VS100 kleiner ist als die durch das vorgenannte VEQR560 angezeigte Adresse, keine Adreßübersetzung vorgenommen, sondern sie wird so eingestellt, daß sie dem MS300 entspricht. Wenn es sich herausstellt, daß die VS-Adresse größer ist als das vorgenannte VEQR560 und daß das V-Bit 21 des PTIOR570 gültig ist, wird der Eintrag des TLB510 aus dem 11-ten bis 20-ten Bit des VAR530 herausgesucht, und es wird überprüft, ob das erste bis zehnte Bit mit der VA513 einer der beiden Sätze des TLB510 übereinstimmen. Wenn Übereinstimmung bestätigt wird (nachfolgend als "TLB-Treffer" bezeichnet), wird die PFN511 des TLB510 in das 9-te bis 20-te Bit im RAR520 eingeschrieben, und das 21-ste bis 31-ste Bit des VAR werden in das 21-ste bis 31-ste Bit im RAR520 eingeschrieben, wodurch die Adreßübersetzung abgeschlossen wird. Wenn bei der Beurteilung für keinen der TLBs Übereinstimmung besteht (nachfolgend als "TLB-Fehltreffer" bezeichnet), geht der Prozeß zum nächsten Schritt über. Im nächsten Schritt wird zunächst die Anfangsadresse des PTIX20 aus der TPPT(I)22 des vorgenannten PTIOR570 bestimmt. Dann wird die LÄNGE23 mit dem ersten bis siebten Bit des VAR530 verglichen und, wenn der letztere Wert kleiner ist, wird diese Bedingung als der oben erwähnte Seitenfehler bewertet, da dies bedeutet, daß kein PTIX20 vorliegt. Wenn die LÄNGE23 gleich groß ist wie oder größer ist als der Inhalt des ersten bis siebten Bits des VAR530, wird die Adresse des dem PTIX20 entsprechenden Falls aus dem ersten bis elften Bit des VAR530 ausgelesen, und das V-Bit 21 wird beurteilt. Der Zustand wird als Seitenfehler beurteilt, wenn das V-Bit als ungültig bewertet wird. Wenn Gültigkeit vorliegt, wird die Adresse der PT30 durch die TPPT(I)22 bestimmt. Dann wird ein Vergleich zwischen dem 12-ten bis 16-ten Bit des VAR530 und der LÄNGE23 des PTIX20 ausgeführt, um die Länge der PT30 zu überprüfen, wie im zuvor erläuterten Fall. Dann wird die Adresse des der PT30 entsprechenden Falls aus dem 12-ten bis 20-ten Bit des VAR530 bestimmt, und es wird eine Beurteilung vorgenommen, ob das V-Bit 31 gültig ist. Wenn sich herausstellt, daß das V-Bit 31 ungültig ist, wird der Zustand als Seitenfehler bewertet. Wenn es gültig ist, wird die PFN32 in das 9-te bis 20-te Bit des RAR520 eingeschrieben, während das 21-ste bis 31-ste Bit, die folgen, das 21-ste bis 31-ste Bit der VAR530 erhalten, wodurch die Adreßübersetzung abgeschlossen wird.
  • Wie es aus der vorstehenden Erläuterung erkennbar ist, ist es möglich, die Adreßübersetzung festzulegen und demgemäß den vorgenannten FX-Bereich dadurch zu realisieren, daß vorab die entsprechende Seitenrahmennummer zum Zeitpunkt der Systemerzeugung in der PFN32 der PT30 eingestellt wird.
  • Die Fig. 5 bis 9B zeigen in Kombination die Flußdiagramme der in Fig. 3 dargestellten Steuerprogramme 1 bis 5.
  • Die Fig. 5A und 5B zeigen das Flußdiagramm des Bereich-Registrier/Lösch-Proramms 1. Das Bereichsregistrierprogramm A führt das Eingeben der Nummer zum Kennzeichnen der Art des Bereichs, der VS-Anfangsadresse, der SS-Anfangsadresse, von Kapazitäts- und Steuerinformation aus und führt einen Arbeitsablauf (902, 903) zum Eingeben derselben in die ACT70 aus.
  • Andererseits führt das Bereichslöschprogramm B das Eingeben (904) der Art und der Kennzeichnungsnummer des Bereichs aus, wie auch einen Ablauf (905, 906) zum Leeren der ACT70.
  • Die Fig. 6A und 6B zeigen
  • Flußdiagramme für das Task-Bildung/Aufgabe-Programm 2 dar. Das Taskbildungsprogramm 2 führt das Eingeben (10) der Tasknummer, des Vorzugsrangs und der Schutzinformation aus, wie auch das Eingeben (911 bis 915) derselben in den TCB60.
  • Das Taskaufgabeprogramm B führt das Eingeben (916) der Tasknummer und einen Ablauf (917, 918) zum Leeren des TCB60 aus.
  • Die Fig. 7A und 7B zeigen
  • Flußdiagramme des Task-Start/Ende- Programms 3. Das Taskstartprogramm A führt das Eingeben (920) der Tasknummer und das Bestimmen des Vorzugsrangs des zugehörigen Tasks aus (921, 923). Das Taskstartprogramm A führt darüber hinaus einen Ablauf (923, 924) aus, um den TCB60 mit der Wartezeile des Vorzugsrangs zu verbinden, wie vom RQPB50 verwaltet.
  • Andererseits führt das Taskendeprogramm B Abläufe aus, wie die Bestimmung (925) des Vorzugsrangs vom TCB60 selbst, Abtrennung (926, 927) desselben von der Ausführungswartezeile und Verschieben (928) der Steuerung zum Taskdispatcher 4, bevor die Steuerung auf einen anderen Task gewechselt wird.
  • Fig. 8 zeigt das Flußdiagramm des Taskdispatchers 4. Dieses Programm führt eine Suche (930, 931, 933, 934) für den TCB60 sequentiell ab der Ausführungswartezeile des RQPB50 vom höchsten Vorzugsrang aus und sucht (932) denjenigen heraus, für den das E-Flag 66-1 AUS ist. Dieses Programm nimmt dann eine Beurteilung (935, 936, 937) vor, um zu bestimmen, ob dieser Task zum FL-Bereich gehört. Wenn dies der Fall ist, verlangt das Programm nach dem vom MS angeforderten Programm 5 (938, 939) und, wenn ein Endevorgang auf normale Art ausgeführt wird, führt es einen Ablauf (941) zum Verschieben der Steuerung auf diesen Task aus.
  • Die Fig. 9A und 9B zeigen
  • Flußdiagramme des MS-Anforderung/ Freigabe-Programms 5. Das MS-Anforderungsprogramm A führt Abläufe wie ein Eingeben (950) der Tasknummer, der Anfangsadresse des VS-Bereichs und der Seitennummer und eine Beurteilung (951) dahingehend aus, ob ausreichend viel leerer Raum für die PFT80 vorhanden ist. Wenn ausreichend leere PFT vorhanden ist, bestimmt das Programm die PFT80 und belegt dieselbe (952, 953) und gibt die VPN83 ein (955), während sie einen Ablauf ausführt (956, 957), um entsprechende PT30 für alle Seiten (958, 959) zu bestimmen, um eine normale Beendigung zu erlauben. Wenn die oben genannte Beurteilung durch die PFQ eine unzureichende Anzahl von PFT80 zeigt, hält das Programm A im Wartezustand an (961, 962, 963) und führt einen Ablauf (964) zum Berichten des Mangels an Rahmennummern aus.
  • Das MS-Freigabeprogramm B gibt die Anfangsadresse des VS-Bereichs und der Seitennummer ein (970) und führt einen Ablauf aus (971, 972, 974, 975, 976), um die entsprechende PFT80 zu leeren. Das Programm B nimmt dann eine Beurteilung dahingehend vor (977), ob irgendein TCB auf einen leeren Seitenrahmen wartet. Wenn einer vorliegt, führt es einen Ablauf (978) zum Aufgeben von Tasks aus dem Wartezustand aus.
  • Nachfolgend wird eine Erläuterung dahingehend gegeben, wie die vorstehend erklärten Programme 1 bis 5 arbeiten. Zum Ausführen eines Tasks werden das Bereichsregistrierprogramm (Fig. 5A), das Taskbildungsprogramm (Fig. 6A) und das Taskstartprogramm (Fig. 7A) in zeitlicher Beziehung in der genannten Reihenfolge ausgeführt. Der Zeitablauf zum Ausführen des Taskdispatchers (siehe Fig. 8) und des MS-Anforderungsprogramms (siehe Fig. 9A) wird durch das OS110 selbst bestimmt.
  • Wenn es erwünscht ist, einen bestimmten Task zu löschen, werden das Taskendeprogramm (Fig. 7B), das Tasklöschprogramm (Fig. 6B) und das Bereichslöschprogramm (Fig. 5B) in zeitlicher Beziehung in der genannten Reihenfolge ausgeführt. Wie es aus der vorstehenden Beschreibung ersichtlich ist, ist es gemäß der Erfindung möglich, ein Programm großen Volumens auszuführen, ohne daß eine Beschränkung durch die Kapazität des Hauptspeichers besteht. Darüber hinaus ist es möglich, ein Programm auszuführen, das eine hohe Ansprechgeschwindigkeit erfordert. Folglich ist es gemäß der Erfindung möglich, flexible Anpaßbarkeit und erhöhte Expandierbarkeit eines Computers zu erzielen.
  • Genauer gesagt, ist gemäß der Erfindung der Bereich mit festen Adressen im Adreßübersetzungsbereich ein Bereich, in dem die Beziehung oder Entsprechung zwischen der virtuellen Adresse und der physischen Adresse festgelegt ist. Echtzeittasks, die hohe Ansprechgeschwindigkeit erfordern, können dadurch ausgeführt werden, daß von diesem Bereich mit festgelegten Adressen Gebrauch gemacht wird. Andererseits ist der Bereich mit variablen Adressen ein Bereich, der den tatsächlichen Raum, wie er beim Starten eines Tasks erforderlich ist, dynamisch zuteilt und betreibt. Ein Programm, das keinen Echtzeitablauf erfordert, kann dadurch ausgeführt werden, daß von diesem Bereich Gebrauch gemacht wird, ohne daß eine Beschränkung durch die Adresse besteht, d. h. ohne Beschränkung durch die Kapazität des Hauptspeichers.

Claims (2)

1. Verfahren zum Betrieb eines virtuellen Speicherverwaltungssystems, in dem auf eine Hauptspeichereinrichtung (300), die Daten und ein einem Task entsprechendes Programm speichert, mittels logischer, virtueller Adressen zugegriffen wird,
wobei der virtuelle Adreßraum (100) einen Nicht-Übersetzungs-Adreßbereich (110, 120), in dem eine Adressenübersetzung von virtuellen in reale Adressen nicht notwendig ist, und einen Übersetzungs-Adreßbereich (130, 140, 150, 160, 170), in dem eine Adressenübersetzung notwendig ist, aufweist,
wobei der Übersetzungs-Adreßbereich des virtuellen Adreßraums (100) in Seiten (180) und der entsprechende Bereich der Hauptspeichereinrichtung (300) in seitenrahmen (310) unterteilt ist,
wobei eine Seitentabelle (PT30) vorgesehen ist, die die Seitenrahmen-Nummer (PFN32) eines einer gewissen Seite zugeordneten Seitenrahmens beinhaltet,
wobei der Übersetzungs-Adreßbereich (110, 120) eine Steuertabelle des Betriebssystems (110) umfaßt, die beinhaltet:
ein Register (17, 18) mit Daten (FXFLBV, FXFLBM), die eine Grenze angeben, die den Übersetzungs-Adreßbereich (130, 140, 150, 160, 170) in einen festgelegten Adreßbereich (FX), in dem virtuelle und reale Adressen einander eins-zu-eins entsprechen, und einen variablen Adreßbereich (FL) teilt, die genannte Seitentabelle (PT30) , und
eine Bereichs-Steuertabelle (ACT70), die eine Identifizierung (73) aufweist, die angibt, ob ein spezieller Task zu dem variablen (FL) oder festgelegten (FX) Adreßbereichs gehört,
wobei in dem Verfahren diejenigen Seitenrahmen-Nummern, die Seiten in dem festgelegten Adreßbereich (FX) entsprechen, in die Seitentabelle (PT30) zum Zeitpunkt der Systemgenerierung eingetragen werden,
wobei, wenn ein Task generiert wird, aufgrund des genannten Registers (17, 18) eine Entscheidung durchgeführt wird, ob der Speicherbereich des Tasks zu dem festgelegten Adreßbereich (FX) oder dem variablen Adreßbereich (FL) ge- - hört und die zugehörige Identifizierung (73) entsprechenderweise gesetzt wird, und
wobei, bevor die Kontrolle an den Task übergeben wird, die zugehörige Identifizierung (73) geprüft wird und, wenn der Task zu dem variablen Adreßbereichs (FL) gehört, die Entsprechung zwischen Seiten und seitenrahmen in die Seitentabelle (PT30) eingetragen wird, wo sie wieder fallengelasse wird, wenn die Ausführung des Programms beendet ist.
2. Verfahren nach Anspruch i, wobei ein Echtzeit-Programm, das eine hohe Antwortgeschwindigkeit benötigt, in dem festgelegten Adreßbereich (FX) abgelegt wird, während ein Programm, das keine Echtzeit-Antwortgeschwindigkeit benötigt, in dem variablen Adreßbereich (FL) angeordnet wird.
DE8282111440T 1981-12-11 1982-12-10 Methode fuer den betrieb eines virtuellen speicherorganisationssystems. Expired - Fee Related DE3280414T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP56200645A JPS58102380A (ja) 1981-12-11 1981-12-11 仮想記憶管理方法

Publications (2)

Publication Number Publication Date
DE3280414D1 DE3280414D1 (de) 1992-10-15
DE3280414T2 true DE3280414T2 (de) 1993-03-25

Family

ID=16427835

Family Applications (1)

Application Number Title Priority Date Filing Date
DE8282111440T Expired - Fee Related DE3280414T2 (de) 1981-12-11 1982-12-10 Methode fuer den betrieb eines virtuellen speicherorganisationssystems.

Country Status (4)

Country Link
US (1) US4563737A (de)
EP (1) EP0081822B1 (de)
JP (1) JPS58102380A (de)
DE (1) DE3280414T2 (de)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4933835A (en) * 1985-02-22 1990-06-12 Intergraph Corporation Apparatus for maintaining consistency of a cache memory with a primary memory
US5255384A (en) * 1985-02-22 1993-10-19 Intergraph Corporation Memory address translation system having modifiable and non-modifiable translation mechanisms
US4899275A (en) * 1985-02-22 1990-02-06 Intergraph Corporation Cache-MMU system
US4884197A (en) * 1985-02-22 1989-11-28 Intergraph Corporation Method and apparatus for addressing a cache memory
US4860192A (en) * 1985-02-22 1989-08-22 Intergraph Corporation Quadword boundary cache system
US5091846A (en) * 1986-10-03 1992-02-25 Intergraph Corporation Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency
JPS6484354A (en) * 1987-09-28 1989-03-29 Nec Corp Memory access system
US5369749A (en) * 1989-05-17 1994-11-29 Ibm Corporation Method and apparatus for the direct transfer of information between application programs running on distinct processors without utilizing the services of one or both operating systems
US5144692A (en) * 1989-05-17 1992-09-01 International Business Machines Corporation System for controlling access by first system to portion of main memory dedicated exclusively to second system to facilitate input/output processing via first system
US5369767A (en) * 1989-05-17 1994-11-29 International Business Machines Corp. Servicing interrupt requests in a data processing system without using the services of an operating system
US5113522A (en) * 1989-05-17 1992-05-12 International Business Machines Corporation Data processing system with system resource management for itself and for an associated alien processor
US5155809A (en) * 1989-05-17 1992-10-13 International Business Machines Corp. Uncoupling a central processing unit from its associated hardware for interaction with data handling apparatus alien to the operating system controlling said unit and hardware
US5325517A (en) * 1989-05-17 1994-06-28 International Business Machines Corporation Fault tolerant data processing system
US5283868A (en) * 1989-05-17 1994-02-01 International Business Machines Corp. Providing additional system characteristics to a data processing system through operations of an application program, transparently to the operating system
US5329629A (en) * 1989-07-03 1994-07-12 Tandem Computers Incorporated Apparatus and method for reading, writing, and refreshing memory with direct virtual or physical access
US5282274A (en) * 1990-05-24 1994-01-25 International Business Machines Corporation Translation of multiple virtual pages upon a TLB miss
DE19717102A1 (de) * 1997-04-23 1998-10-29 Siemens Nixdorf Inf Syst Verfahren zur Übertragung eines Betriebssystems in Datenverarbeitungsanlagen
US6148387A (en) 1997-10-09 2000-11-14 Phoenix Technologies, Ltd. System and method for securely utilizing basic input and output system (BIOS) services
US6026475A (en) * 1997-11-26 2000-02-15 Digital Equipment Corporation Method for dynamically remapping a virtual address to a physical address to maintain an even distribution of cache page addresses in a virtual address space
US7302546B2 (en) 2004-01-09 2007-11-27 International Business Machines Corporation Method, system, and article of manufacture for reserving memory
GB2460462A (en) * 2008-05-30 2009-12-02 Symbian Software Ltd Method for loading software components into RAM by modifying the software part to be loaded based on the memory location to be used.

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3902164A (en) * 1972-07-21 1975-08-26 Ibm Method and means for reducing the amount of address translation in a virtual memory data processing system
US3825904A (en) * 1973-06-08 1974-07-23 Ibm Virtual memory system
US3964028A (en) * 1973-08-02 1976-06-15 International Business Machines Corporation System and method for evaluating paging behavior
US3914747A (en) * 1974-02-26 1975-10-21 Periphonics Corp Memory having non-fixed relationships between addresses and storage locations
US4037215A (en) * 1976-04-30 1977-07-19 International Business Machines Corporation Key controlled address relocation translation system
JPS5821307B2 (ja) * 1976-09-14 1983-04-28 横河電機株式会社 アドレス変換機能を持つたデ−タ処理装置
US4084225A (en) * 1976-09-24 1978-04-11 Sperry Rand Corporation Virtual address translator
US4096568A (en) * 1976-09-24 1978-06-20 Sperry Rand Corporation Virtual address translator
JPS56119981A (en) * 1980-02-25 1981-09-19 Mitsubishi Electric Corp Address converting circuit

Also Published As

Publication number Publication date
EP0081822B1 (de) 1992-09-09
JPS58102380A (ja) 1983-06-17
EP0081822A2 (de) 1983-06-22
JPH0313615B2 (de) 1991-02-22
DE3280414D1 (de) 1992-10-15
EP0081822A3 (en) 1986-07-16
US4563737A (en) 1986-01-07

Similar Documents

Publication Publication Date Title
DE3280414T2 (de) Methode fuer den betrieb eines virtuellen speicherorganisationssystems.
DE69526751T2 (de) Multiprozessorsystem zur lokalen Verwaltung von Adressenübersetzungstabellen
DE69721590T2 (de) Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung
DE2459006C2 (de) Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage
DE3151745C2 (de)
DE69637294T2 (de) Mikro-tlb mit parallelem zugriff zum beschleunigen der adressübersetzung
DE3751645T2 (de) Anteilige Nutzung von Kopie-beim-Schreiben-Segmenten in einer Datenverarbeitungsanlage mit virtuellen Maschinen und virtuellem Speicher
DE3587960T2 (de) Datenverarbeitungsanlage mit einem Speicherzugriffssteuergerät.
DE69331039T2 (de) Rechnersystem mit einem Vorausholungscachespeicher
DE2226382C3 (de) Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern
DE112005003859B4 (de) Verwalten von Prozessorressourcen während Architekturereignissen
DE69518676T2 (de) Cache-Speicheranordnung für einen Speicher
DE4410060B4 (de) Übersetzungsvorrichtung zum Umsetzen einer virtuellen Speicheradresse in eine physikalische Speicheradresse
DE60003273T2 (de) Verfahren und Vorrichtung zur Erzeugung einer Eingabeadresse
DE602004011018T2 (de) Ungültigkeitserklärung eines speichers und löschen von puffereinträgen
DE69019925T2 (de) Multiprozessorsystem mit verteilten gemeinsamen Betriebsmitteln und mit Vervielfältigung von globalen Daten.
DE69033064T2 (de) Verfahren zur Zuordnung von reellen Seiten zu virtuellen Seiten mit davon verschiedenen Seitengrössen
DE3833933C2 (de) Informationsverarbeitungseinrichtung mit einer Adressenerweiterungsfunktion
DE69029173T2 (de) Mikroprozessor
DE10002120A1 (de) Logikstruktur eines Adressumsetzpuffers
DE68923863T2 (de) Ein-/Ausgabecachespeicherung.
DE69527634T2 (de) Rechner-Cachespeichersystem
DE68924992T2 (de) Symmetrische Steuerungsanordnung für Multiverarbeitung.
DE112018002032T5 (de) Gemeinsames nutzen von virtuellen und realen übersetzungen in einem virtuellen cache
DE68925336T2 (de) Datenverarbeitungsvorrichtung mit Cache-Speicher

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee