DE2542845C3 - - Google Patents

Info

Publication number
DE2542845C3
DE2542845C3 DE19752542845 DE2542845A DE2542845C3 DE 2542845 C3 DE2542845 C3 DE 2542845C3 DE 19752542845 DE19752542845 DE 19752542845 DE 2542845 A DE2542845 A DE 2542845A DE 2542845 C3 DE2542845 C3 DE 2542845C3
Authority
DE
Germany
Prior art keywords
memory
page
module
page buffer
ssp
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
DE19752542845
Other languages
English (en)
Other versions
DE2542845B2 (de
DE2542845A1 (de
Inventor
Peter Dr.-Phil. 8134 Poecking De Schneider
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.)
Siemens AG
Original Assignee
Siemens AG
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=5957433&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE2542845(C3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE19752542845 priority Critical patent/DE2542845B2/de
Publication of DE2542845A1 publication Critical patent/DE2542845A1/de
Publication of DE2542845B2 publication Critical patent/DE2542845B2/de
Application granted granted Critical
Publication of DE2542845C3 publication Critical patent/DE2542845C3/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/462Saving or restoring of program or task context with multiple register sets

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

Die Erfindung bezieht sich auf ein Verfahren zum Betreiben eines hierarchisch gegliederten, mehrstufigen Arbeitsspeichersystems gemäß dem Oberbegriff des Hauptanspruchs und auf eine Schaltungsanordnung zur Durchführung des Verfahrens.
In allen hierarchisch gegliederten, mehrstufigen Speichersystemen, deren Speicherstufen mit den Mit­ teln moderner Speichertechnologien aufgebaut sind, werden die vollständigen Programme der einzelnen simultan in der Datenverarbeitungsanlage ablaufenden Prozesse in der niedrigsten Speicherstufe abgelegt. Jede höhere Speicherstufe enthält dann nur mehr Teile dieser Programme. Wenn der Hauptspeicher die niederste Speicherstufe darstellt, sind in der ihm übergeordneten Speicherstufe nur noch einige Programmseiten mehre­ rer verschiedener Prozesse enthalten, daher bezeichnet man diese Speicherstufe auch als Seitenpuffer.
Wegen der beschränkten Speicherkapazität dieses Seitenpuffers ist u. a. die Verteilung seines Speicherplat­ zes auf die verschiedenen Prozesse sehr wesentlich für die Effizienz des Speichersystems. Nun ist es heute allgemein üblich, erst dann eine Speicherseite in den Seitenpuffer zu übertragen, wenn sie bei einer Speicheranforderung fehlt. Diese Ladestrategie des Seitenpuffers mit nachträglichen Seitenwechselanforde­ rungen wird vielfach als "Paging on demand" bezeichnet. Das Verfahren hat grundsätzlich den Nachteil einer Totzeit bei jeder Seitenübertragung in den Seitenpuffer, während der der anfordernde Prozessor unbeschäftigt ist oder der laufende Prozeß unterbrochen werden muß.
Diese Betrachtungsweise läßt noch außer Acht, daß in Datenverarbeitungsanlagen mit Mehrprogramm- oder Multiprozessorbetrieb, vom gemeinsamen Arbeits­ speichersystem aus betrachtet, gleichzeitig mehrere Prozesse ablaufen, für die Speicherkapazität im Seitenpuffer bereitgestellt werden muß. Um den dabei auftretenden Konflikt bei der Speicherplatzbelegung durch die verschiedenen Prozesse zu lösen, macht man sich den Umstand zunutze, daß ein Prozeß bei einem Teilablauf immer nur eine begrenzte Anzahl von Programmseiten benötigt. Unter einem aktuellen Speicherbereich, dem "Working Set" eines Prozesses versteht man in diesem Zusammenhang die Menge von Programmseiten, die der Prozeß in einem festgelegten zurückliegenden Zeitintervall benötigt hat. Beginnend mit der ersten Aktivierung eines Prozesses wird bei heutigen Datenverarbeitungsanlagen mit virtuellem Speichersystem programmgesteuert bei jeder Anforderung einer neuen Speicherseite aus dem Hauptspeicher der Stand eines Zählers um 1 erhöht. Erniedrigt wird dieser Zählerstand um einen entsprechenden Betrag, wenn der Prozeß eine oder mehrere Speicherseiten freigibt.
Dabei kann der Fall eintreten, daß der Umfang der laufenden Prozesse den gesamten Seitenpuffer füllt. Dann muß ein Prozeß bei Anforderung einer neuen Speicherseite eine seiner eigenen Speicherseiten freige­ ben. Der Umfang des aktuellen Speicherbereichs ändert sich dabei nicht. Bei der Deaktivierung des Prozesses gibt dieser alle seine Seiten frei, die dann nicht mehr belegten Seitenrahmen im Seitenpuffer stehen wieder den übrigen Prozessen zur Verfügung.
Der Zählerstand mit dem Umfang des im zurücklie­ genden Bearbeitungszeitraum benötigten aktuellen Speicherbereichs wird jedoch gespeichert, um den Prozeß bei einer erneuten Aktivierung eine diesem Zählerstand entsprechende Anzahl von Seitenrahmen zur Verfügung zu stellen. Dies bedeutet jedoch nicht, daß der Prozeß dabei im Seitenpuffer noch eigene Programmseiten vorfindet, da die inzwischen abgelaufe­ nen Prozesse bei Seitenanforderungen seine Pro­ grammseiten überschrieben haben können. Von diesem Umfang der Seitenanforderungen anderer Prozesse während seiner inaktiven Phase hängt es ab, wie oft der reaktivierte Prozeß in seiner Bearbeitungszeit bereits früher benutzte Programmseiten aus dem Hauptspeicher erneut anfordern muß. Solche mehrfachen Seitenanforderungen aus dem Hauptspeicher sind, über den gesamten Zeitraum der Bearbeitung eines Prozesses betrachtet, besonders ungünstig, da sie jeweils erneut eine Wartezeit des anfordernden Prozessors bedingen.
Der Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren der eingangs genannten Art zu schaffen, das es erlaubt, die vorhandene Speicherkapazität im Seitenpuffer besser auf die einzelnen Prozesse zu verteilen, indem mehrfache Seitenanforderungen be­ reits einmal dem aktuellen Speicherbereich zugeordne­ ter Programmseiten vermieden werden.
Diese Aufgabe wird bei einem Verfahren der eingangs genannten Art erfindungsgemäß gelöst durch die im Kennzeichen des Hauptanspruches genannten Merkmale. In seiner Funktion liegt der wesentliche Unterschied der erfindungsgemäßen Lösung gegenüber den bekannten Verfahren darin, daß beim Reaktivieren eines Prozesses diesem in dem Seitenpuffer nicht nur eine ausreichende Anzahl von Seitenrahmen, also der notwendige Speicherplatz an sich, für seinen bisher aktuellen Speicherbereich, das "Working-Set", zur Verfügung gestellt wird, sondern die entsprechenden Programmseiten selbst. Dies läßt sich mit geringem Steuerungsaufwand erreichen, da es möglich ist, wie in Unteransprüchen beschriebene Weiterbildungen der Erfindung zeigen, den aktuellen Speicherbereich lau­ fend zu erfassen und die Änderungen so zu verarbeiten, daß die Information über den aktuellen Speicherbereich den tatsächlichen Erfordernissen dynamisch angepaßt wird.
Welches Gewicht diese Eigenschaft der Erfindung hat, geht z. B. aus einem Vergleich mit der in der deutschen Auslegeschrift 21 49 200 beschriebenen Ein­ richtung zur Auswahl von im Verlauf einer Programm­ bearbeitung am häufigsten benötigten Daten hervor. In dieser Auslegeschrift ist in Spalte 6 dargelegt, daß im statistischen Mittel 95% aller Speicherzugriffe bereits auf die Hälfte aller Speicherseiten eines Programms entfallen, jedoch keine wirtschaftlichen Möglichkeiten bestünden, in jedem Fall diese besonders häufig benutzten Speicherseiten zweckmäßig festzustellen. Deshalb wird eine Adressiereinrichtung für die ver­ schiedenen Speicherstufen eines Arbeitsspeichersy­ stems mit einer Einrichtung ausgestattet, die in einer nicht vorher bestimmten, vom Zufall abhängigen Weise bei einem Seitenfehler entscheidet, ob die im Pufferspei­ cher fehlende Speicherseite aus dem Hauptspeicher übertragen oder der Hauptspeicher unmittelbar adres­ siert werden soll. Im statistischen Mittel werden sich dann, allerdings erst nach längerer Laufzeit, eines Programmes die am häufigsten benötigten Daten im schnellen Pufferspeicher ansammeln.
Abgesehen von prinzipiellen Unterschieden zum Gegenstand der Erfindung, sollen z. B. bei der Speicheradressierung Daten aus dem Hauptspeicher auch direkt gelesen werden können, sind damit mehrfache Seitenanforderungen zumindest in einer Anlaufphase einer Programmverarbeitung unvermeid­ bar, da die Wahrscheinlichkeit einer Übertragung einer Speicherseite in den schnellen Pufferspeicher gerade nur mit der Häufigkeit von Speicheranforderungen aus dieser Speicherseite steigt.
Die erfindungsgemäße Lösung hat jedoch nicht nur den Vorteil, ohne eine solche lange Anlaufphase mehrfache Seitenanforderungen bereits früher benutz­ ter Programmseiten zu vermeiden und damit einen laufenden Prozeß durch derartige Seitenwechselanfor­ derungen nicht zu verzögern, sondern auch den weiteren Vorteil einer größeren Leistungsfähigkeit des Arbeitsspeichersystems. Das ist darauf zurückzuführen, daß beim Reaktivieren eines Prozesses, d. h. dem Bereitstellen des bisherigen aktuellen Speicherbereichs im Seitenpuffer insgesamt weniger Zeit benötigt wird, als für die Summe der einzelnen damit eingesparten Seitenwechselanforderungen. Dies ist auf den modula­ ren Aufbau des Hauptspeichers zurückzuführen, an den die einzelnen Seitenanforderungen wohl sequentiell gestellt werden, der eigentliche zeitraubende Ladevor­ gang jedoch in den einzelnen Speichermoduln unabhän­ gig voneinander abläuft.
Ein Ausführungsbeispiel der Erfindung wird im folgenden anhand der Zeichnung näher erläutert. Es zeigt
Fig. 1 das Prinzipschaltbild einer datenverarbeiten­ den Anlage mit einem Zentralprozessor und einem dreistufigen Speichersystem,
Fig. 2 einen aus CCD-Bausteinen aufgebauten Speichermodul in schematischer Darstellung und
Fig. 3 das Blockschaltbild für eine Speichersteuerein­ heit, die dem Seitenpuffer und dem Hauptspeicher zugeordnet ist.
Nach dem in Fig. 1 dargestellten Prinzipschaltbild einer datenverarbeitenden Anlage verkehrt ein Zentral­ prozessor ZP mit einem dreistufigen Speichersystem, bestehend aus einem schnellen Pufferspeicher, einem sogenannten "Cache" CA, einem Seitenpufferspeicher SSP und einem Hauptspeicher HSP. Bei einem Arbeitsspeicherzugriff adressiert der Zentralprozessor ZP zunächst das Cache CA über eine sogenannte Hit/Miss-Logik HML, in der die Einträge im Cache zumindestens teilweise assoziativ mit der gesuchten Speicheradresse verglichen werden. Bei einem Treffer (Hit) wird die angeforderte Speicherinformation direkt aus dem Cache gelesen.
Erst bei einem ergebnislosen Vergleich (Miss) wird zu den niedrigeren, in diesem Fall räumlich vereinigten Speicherstufen, dem Seitenpufferspeicher SSP und dem Hauptspeicher HSP zugegriffen. Dies wird durch eine ihnen zugeordnete Speichersteuereinheit SST ge­ steuert.
In diesem Ausführungsbeispiel sind diese zwei niedrigsten Speicherstufen aus CCD-(Charge Coupled Devices)-Bausteinen aufgebaut. In Fig. 1 ist angedeutet, daß der Hauptspeicher HSP 32 Speichermoduln MOD 1 bis MOD 3 enthält, von denen einer in Fig. 2 schematisch dargestellt ist. Daraus ist zu erkennen, daß 72 Speicherbausteine SB 1 bis SB 72 einen Speichermodul bilden, die ihrerseits 256 CCD-Schleifen SL 1 bis SL 256 enthalten. Wenn jede dieser CCD-Schleifen eine Länge von 256 Bit aufweist, so ergibt sich eine Speicherkapazität des Moduls zu 524 288 Byte, sofern ein Byte neun Bit, d. h. acht Daten - und ein Paritätsbit umfaßt. Der gesamte Hauptspeicher umfaßt dann 5 MB. Wie schematisch angedeutet, enthält jede CCD-Schleife an einer homologen Bitstelle eine Lese/Schreib-Station L/S. Der prinzipielle Aufbau derartiger CCD-Schleifen ist z. B. aus "The Journal of Vacuum Science and Technology", Volume 9 Nr. 4 Juli/August 1972, Seiten 1166 bis 1181 bekannt und wird daher nicht näher erläutert.
In Fig. 1 ist schematisch angedeutet, daß der CCD-Speicher, obwohl räumlich eine Einheit bildend, strukturell in die beiden untersten Hierarchiestufen, einen Hauptspeicher HSP und einen Seitenpuffer SSP gegliedert ist. Aus Fig. 2 geht hervor, daß jeweils die an der Lese/Schreib-Station L/S liegende Bitstelle aller CCD-Schleifen SL diesem Seitenpufifer SSP zuzuordnen ist. Bei der obenerwähnten Speicherkapazität eines Speichermoduls MODm umfaßt dann der Anteil des Seitenpuffers SSP an einem Speichermodul eine Speicherseite SM mit einer Kapazität von 2 KByte in dem mit gestrichelten Linien angedeuteten Block.
Je nach Art der Datenübertragung über die Schnittstelle zwischen dem Seitenpuffer SSP und dem Hauptspeicher HSP läßt sich diese Speicherstruktur unterschiedlich aufteilen. Bei einer verhältnismäßig geringen Datenbreite dieser Schnittstelle wird man die Speicherseite Sm seriell in den Seitenpuffer SSP übertragen und die Information in den CCD-Schleifen des Hauptspeichers HSP ebenfalls seriell speichern. In diesem Fall liegen aufeinanderfolgende Datenworte einer Speicherseite an aufeinanderfolgenden Speicher­ stellen der CCD-Schleifen einer Schleifengruppe, die z. B. sämtliche erste CCD-Schleifen SL 1 der Speicher­ bausteine SB 1 bis SB 72 umfaßt. Man wird in diesem Fall die Seitengröße so wählen, daß bei einer Seitenübertragung genau ein Umlauf aller parallel arbeitenden Schleifen, d. h. einer Schleifengruppe über alle Speicherstellen erforderlich ist. Bei einer derartigen Speicherstruktur spricht man üblicherweise von einer Serienadressierung.
In Fig. 2 ist die zweite mögliche Struktur dargestellt, bei der man eine sogenannte Queradressierung anwendet. Hier liegen die Worte einer Speicherseite an homologen Speicherstellen verschiedener CCD-Schlei­ fengruppen. Alle Schleifengruppen eines Speichermo­ duls MODm werden synchron verschoben, so daß an den Lese/Schreib-Stationen L/S alle Worte einer Speicherseite gleichzeitig anliegen. Daher ist in Fig. 2 auch der mit gestrichelten Linien dargestellte Block als Speicherseite Sm bezeichnet. Als weiteres Beispiel für eine andere Speicherseite sind die in einer Ebene liegenden Schleifenpositionen SLPn angedeutet, die die homologen Speicherstellen aller CCD-Speicher umfassen und damit ebenfalls eine Speicherseite im Hauptspeicher HSP bilden.
Nach dem synchronen Schieben aller Schleifengrup­ pen eines Speichermoduls MODm werden alle Worte einer Speicherseite SM an den Lese/Schreib-Stationen L/S gehalten. Dazu müssen diese selbst speichernd ausgeführt und in den CCD-Schleifen ein Start/Stop-Be­ trieb möglich sein. Diese Forderung läßt sich bei CCD-Speicherbausteinen z. B. in einer entsprechend abgewandelten MOS-Technologie erreichen.
Bei dieser Struktur des CCD-Speichers bilden Hauptspeicher HSP und Seitenpuffer SSP eine bauliche Einheit mit einer internen Schnittstelle. Diese hat in jedem Speichermodul MODm eine Datenbreite von einer Speicherseite Sm, d. h. die Worte einer Speicher­ seite werden parallel übertragen. Dies geschieht mit hoher Datenrate, da nur ein einfaches Schieben, nicht aber Schieben und Auslesen erforderlich ist. Als weiteres Kennzeichen dieser Speicherstruktur ist die im Seitenpuffer SSP enthaltene Information nichtredun­ dant gespeichert, d. h. der Hauptspeicher HSP enthält diese Information nicht noch einmal.
In diesem insoweit erläuterten mehrstufigen Speichersystem befinden sich die vollständigen Pro­ gramme, mit Ausnahme der in den Seitenpuffer SSP ausgelagerten Seiten, in der niedrigsten Hierarchiestufe, dem Hauptspeicher HSP. Der Seitenpuffer SSP und das Cache CA enthalten jeweils wiederum nur mehr Teile der in der niedrigeren Hierarchiestufe gespeicherten Information. Der Seitenpuffer SSP enthält daher immer einige Programmseiten mehrerer verschiedener Pro­ gramme, die der in Fig. 1 schematisch angedeutete Zentralprozessor ZP simultan bearbeitet. Die Angabe eines einzigen Prozessors bedeutet hierbei bezüglich des Aufbaues und der Betriebsweise im Speichersystem nur eine Einschränkung in der Darstellung, jedoch nicht in der prinzipiellen Wirkungsweise, so daß die folgenden Erläuterungen ebenso auf Mehrprozessoranlagen anzu­ wenden sind.
Mehrstufige Speichersysteme haben bekanntlich den Zweck, bei einer großen Speicherkapazität solche Informationen, zu denen mit einer gewissen Wahr­ scheinlichkeit bald zugegriffen wird, so bereitzuhalten, daß zu ihnen möglichst kurzfristig zugegriffen werden kann. Die sogenannten Ladestrategien, d. h. die Verteilung der Informationen auf die einzelnen Hierarchiestufen des Speichersystems bestimmen daher wesentlich die Effizienz einer gegebenen Speicherstruktur.
Ohne hier die bekannte Betriebsweise im Cache CA als der höchsten Hierarchiestufe mit kürzester Zugriffs­ zeit behandeln zu wollen, sei wengistens der Vollständig­ keit halber die heute allgemein übliche Ladestrate­ gie für den Seitenpuffer SSP angedeutet. Ergibt sich bei einem Speicherzugriff ein Miss im Cache CA, so wird zum Seitenpuffer SSP durchgegriffen. Wenn dort das Fehlen der angeforderten Speicherseite Sm festgestellt ist, wird diese Seite nachträglich in den Seitenpuffer SSP geholt. Dieses Verfahren hat grundsätzlich den Nachteil, einer Totzeit bis zur Beendigung der dann notwendigen Seitenübertragung aus dem Hauptspeicher HSP wäh­ rend der der anfordernde Prozessor unbeschäftigt ist oder das laufende Programm unterbrochen werden muß. Um solche Seitenwechselanforderungen während eines Programmlaufs, die sogenannten "Page Faults" zu verringern, sind Ladestrategien des Vorausladens oder Voreinstellens im Seitenpuffer SSP denkbar.
Eine derartige Ladestrategie soll nun im folgenden erläutert werden. In der in Fig. 1 schematisch angedeuteten Datenverarbeitungsanlage werden ver­ schiedene Prozesse simultan verarbeitet, d. h. es laufen Teile von unterschiedlichen Programmen nacheinander ab. Bekanntlich muß bei dem Ablauf eines Prozesses nicht ständig das gesamte Programm in einer höheren Hierarchiestufe des Speichersystems zur Verfügung gehalten werden, wie theoretische Untersuchungen erwiesen haben. Untersuchungen an Programmen aus den verschiedensten Anwendungsbereichen haben ergeben, daß dieser aktive Bereich eines Programms, das sogenannte "Working Set" unterschiedlich groß ist und zwischen 5 und etwa 35 Speicherseiten umfaßt. Die obere Grenze dieses aktiven Programmbereichs wird dabei nur selten erreicht, kann jedoch auch in Ausnahmefällen einmal überschritten werden.
Hier wird nun von der Überlegung ausgegangen, daß man bei einem in einem Zeitintervall zu aktivierenden Prozeß nicht nur Angaben über dessen Adreßbereich im Seitenpuffer SSP zur Verfügung stellen muß, der dem Umfang des im vorhergehenden Zeitintervall aktiven Programmbereiches entspricht, sondern die entspre­ chenden Speicherseiten selbst. Dazu ist es notwendig, die während der Prozeßbearbeitung benutzten Speicherseiten zu kennzeichnen und dabei auch zu speichern, wann zu einer Speicherseite zugegriffen wurde. Dann ist es möglich, eine solche Tabelle dynamisch zu verändern, d. h. innerhalb eines festzule­ genden Zeitraumes nicht mehr benutzte Speicherseiten aus dem aktiven Programmbereich auszuscheiden.
Wie dies im einzelnen geschehen soll, wird nun im Zusammenhang mit Fig. 2 und Fig. 3 der Zeichnung erläutert: Beim Ablauf eines aktivierten Prozesses tritt der Fall ein, daß eine im m-ten Speichermodul MODm aus den n-ten Schleifenpositionen SLPn niedergelegte Speicherseite im Seitenpuffer SSP nicht enthalten ist. Dies führt zu einer Seitenwechselanforderung, bei der diese Speicherseite in die Lese/Schreib-Stationen L/S gedreht wird. Jede derartige Seitenwechselanforderung zeigt auch eine Änderung des aktiven Programmberei­ ches an, die dann protokolliert werden muß. Dies geschieht mit Hilfe der in Fig. 3 dargestellten Speichersteuereinheit, die hier allerdings nur insoweit detailliert ausgeführt ist, als es für das Verständnis im vorliegenden Fall notwendig ist und dann mit der in Fig. 1 dargestellten Speichensteuereinheit SST iden­ tisch ist.
Um den Zusammenhang mit der schematischen Darstellung in Fig. 1 herzustellen, ist in Fig. 3 ein Adreßregister AR angegeben, das 24 Bitstellen umfaßt. Mit dem Inhalt dieses Adreßregisters wird der CCD-Speicher adressiert. Die ersten fünf Bitstellen ergeben die Modularadresse MA mit einer Auswahl 1 aus 32. Die nächsten 8 Bitstellen definieren eine Schleifen­ position SLP, d. h. die homologen Speicherstellen innerhalb eines Speichermoduls mit einer Auswahl 1 aus 256. Die restlichen 11 Bitstellen bilden die Wortadresse WA eines Datenwortes innerhalb der so adressierten Speicherseite. Bei einer Anforderung an den Hauptspeicher HSP wird diese Adresse der Speichersteuereinheit SST über ihre prozessorseitige Schnittstelle SS auf hier stärker hervorgehobenen Leitungsbündeln zugeführt. Entsprechend den 32 Moduln des CCD-Speichers sind diese Leitungsbündel parallel an 32 Steuermoduln ST 1 bis ST 32 angeschlossen. Diesen Steuermoduln werden parallel ebenfalls zwei weitere Steuerleitungen WSR ( Working Set Restoration) und START über die prozessorseitige Schnittstelle SS zugeführt.
Daneben enthält die Speichersteuereinheit SST einen weiteren Hilfsspeicher WSP mit einer Liste des "Working Set" des gerade laufenden Prozesses. Dieser Hilfsspeicher enthält 32 Eintragszeilen, die den maximal 32 im Seitenpuffer SSP gleichzeitig maximal gehaltenen Speicherseiten entsprechen. Das Format dieser Ein­ tragszeilen ist 14 Bit lang und kann daher eine Moduladresse MA und eine Schleifenposition SLP aufnehmen. Die letzte Bitstelle speichert als Gültigkeits­ kennzeichen des Eintrages ein Bit V, das nur bei einem gültigen Eintrag auf "1" gesetzt ist. Zur Auswahl einer Eintragszeile mit Hilfe der Moduladresse MA ist diesem Hilfsspeicher WSP ein erster Decoder DEC 1 zugeord­ net. Eine Eintragszeile ist also jeweils einem der Speichermoduln MODm direkt zugeordnet.
Bei einem Prozeßwechsel werden alle gültigen Einträge im Hilfsspeicher WSP in den CCD-Speicher abgespeichert. Im Hauptspeicher HSP ist dazu jedem Prozeß ein bestimmter Speicherbereich zur Aufnahme der maximal 32 Einträge reserviert. Wird ein derart unterbrochener Prozeß durch das Betriebssystem der datenverarbeitenden Anlage erneut aktiviert, so werden alle in den Hauptspeicher HSP ausgelagerten Pro­ grammseiten des bisher aktuellen Speicherbereichs sequentiell in den Seitenpuffer SST übertragen. Das geschieht aufgrund der zuletzt gültigen "Working Set"-Tabelle des Prozesses, deren Einträge im Hilfsspei­ cher WSP durch Setzen des Gültigkeitsbits V bei einer Anforderung der entsprechenden Programmseite wäh­ rend des Prozeßablaufs aktualisiert werden.
Dabei erfolgen Speicherzugriffe des Zentralprozes­ sors ZP an den CCD-Speicher gleichzeitig mit dem Signal START. Es wird die Moduladresse MA und die Schleifenposition SLP in den Hilfsspeicher WSP eingetragen und dort als gültig gekennzeichnet, sofern der Signalzustand auf der zweiten Signalleitung WSR "0" ist. Die Signalleitung WSR ist nur dann im Signalzustand "1", so lange das "Workung Set" bei der Aktivierung eines Prozesses durch das Betriebssystem noch nicht in den Seitenpuffer SSP übertragen ist.
Gleichzeitig wird durch die Moduladresse MA einer der Steuermoduln ST1 bis 32 ausgewählt. Dies geschieht durch einen, in dem Steuermodul enthaltenen zweiten Decodierer DEC 2, der dann ein erstes UND-Glied UG 1 aktiviert, das die Schleifenposition SLP auf ein Speicherregister SPR durchschaltet. Nach einer durch das Signal START gesteuerten Übernahme dieser Seitenadresse in das Speicherregister SPR gibt dieses ein Quittungssignal QM (m=1 bis 32) ab.
Ist die durch die Schleifenposition SLP bezeichnete Speicherseite im Seitenpuffer SSP enthalten, so kann direkt zu dieser Speicherseite mit Hilfe der Wortadresse WA zugegriffen werden. Um diesen Vorgang zu steuern, ist ein Vergleicher VG vorgesehen, in dem der Inhalt des Speicherregisters SPR und eines Zählerregi­ sters ZA miteinander verglichen wird. Der Inhalt dieses Zählerregisters gibt diejenige Schleifenposition im zugeordneten Speichermodul MODm an, die gerade an den Lese/Schreib-Stationen L/S steht. Bei Gleichheit beider Registerinhalte ist also die mit der Schleifenposi­ tion SLP angeforderte Speicherseite im Seitenpuffer SSP enthalten.
In diesem Fall gibt der Vergleicher VG ein Fertigsignal ab, das ein zweites UND-Glied UG 2 vorbereitet, mit dem die Wortadresse WA auf ein weiteres Leitungsbündel WA′ durchgeschaltet wird. Diese Speicheranforderung wirkt sich im Seitenpuffer SSP jedoch nur dann aus, wenn gleichzeitig über ein drittes UND-Glied UG3 und ein Startsignal ST′ an den Seitenpuffer SSP abgegeben wird. In diesem dritten UND-Glied UG 3 wird das vom Zentralprozessor ZP abgegebene Startsignal START mit dem Fertigsignal des Vergleiches VG unter der Nebenbedingung verknüpft, daß kein Prozeß neu aktiviert wird, d. h. das Signal auf der Signalleitung WSR im Zustand "" ist.
Solange der Vergleicher VG bei einer Anforderung auf einen Speicherzugriff kein Fertigsignal abgibt, wird mit dem über einen Inverter/invertierten Ausgangsi­ gnal ein weiteres UND-Glied UG 4 aktiviert, das einen Taktgeber TG auf eine Taktleitung T durchschaltet, die dem Zählerregister ZA und dem CCD-Speicher zugeführt wird. Diese Taktleitung T liefert den Schiebetakt für die CCD-Schleifen SL und bleibt so lange aktiviert, bis der Vergleicher VG Gleichheit des Inhalts des Speicherregisters SPR und des Zählerregi­ sters ZA feststellt.
Bei Aktivierung eines neuen Prozesses wird dagegen die im Hauptspeicher HSP gespeicherte Tabelle seines vorher aktiven Speicherbereiches ausgewertet. Dabei wird vom Betriebssystem die in jeder Eintragszeile enthaltene Information, d. h. die Moduladresse MA und die Schleifenposition SLP an die Speichersteuereinheit SST gerichtet. In dem ausgewählten Steuermodul wird mit dem Signal auf der Steuerleitung START die ausgewählte Seitenadresse SLP in das Speicherregister SPR eingetragen. Sobald der Zentralprozessor das Quittungssignal Qin erhält, wird von ihm der nächste Eintrag in der Tabelle ausgelesen und an die Speichersteuereinheit SST gerichtet. Dies wiederholt sich so lange, bis sämtliche Eintragszeilen der Tabelle ausgelesen sind und beim Zentralprozessor ZP das letzte Quittungssignal Qm eingetroffen ist. In diesem Fall wechselt das Signal auf der Steuersignalleitung WSR vom Zustand "1" in den Zustand "".
Da der Vorgang der Bereitstellung des bisher aktuellen Speicherbereiches bei einer neuen Aktivie­ rung eines Prozesses, d. h. die Bereitstellung des alten "Working Set" durch Eintragen der geforderten Seitenadressen in die einzelnen Speicherregister SPR der Steuermoduln STi sehr schnell von sich geht, erscheint es so, als ob alle beim folgenden Prozeßlauf möglicherweise benötigten Speicherseiten nahezu gleichzeitig eingestellt würden. Dies bedeutet gegen­ über dem bisherigen Verfahren, bei dem eine im Seitenpuffer SSP fehlende Speicherseite immer erst auf Anforderung bereitgestellt wird, einen wesentlichen Zeitgewinn, denn bei einer erneuten Aktivierung eines Prozesses wird nur eine einzige Übertragungszeit für das "Working Set" benötigt. Zusätzliche Übertragungs­ zeiten treten während des Ablaufes des Prozesses nur dann auf, wenn sich der aktuelle Speicherbereich durch Anforderung einer bisher nicht benötigten Speichersei­ te ändert. Diese Änderung führt automatisch, wie oben erläutert, zu einem neuen gültigen Eintrag im Hilfsspei­ cher WSP, dessen Inhalt damit dynamisch aktualisiert wird, so daß für jeden laufenden Prozeß beim Prozeßwechsel die gültigen Einträge im Hilfsspeicher WSP den zuletzt benötigten aktuellen Speicherbereich kennzeichnen.

Claims (6)

1. Verfahren zum Betreiben eines hierarchisch gegliederten, mehrstufigen Arbeitsspeichersystems einer simultan mehrere Prozesse bearbeitenden datenverarbeitenden Anlage, dessen zwei niederste Speicherstufen aus einem alle Daten der simultan ablaufenden Prozesse enthaltenden Hauptspeicher und aus einem nur eine Auswahl von Speicherseiten umfassenden Seitenpuffer bestehen, zu dem ge­ steuert durch eine Speichersteuereinheit bevorzugt zugegriffen wird und in den eine bei einem Speicherzugriff fehlende Speicherseite übertragen wird, dadurch gekennzeichnet, daß beim Ablauf eines Prozesses jede Anforderung auf einen Speicherzugriff zum Seitenpuffer (SSP) in der Speichersteuereinheit (SST) durch Zwischenspei­ chern der Adresse (MA, SLP) der ausgewählten Speicherseite (Sm; m=1 bis 32) registriert und damit der aktuelle Speicherbereich des laufenden Prozes­ ses ermittelt wird, daß die zwischengespeicherten Seitenadressen bei einem Prozeßwechsel in den Hauptspeicher (HSP) übertragen werden, daß bei einer späteren erneuten Aktivierung des Prozesses durch einen Prozessor (ZP) der datenverarbeitenden Anlage aus dem Hauptspeicher zunächst die Information über den bisher aktuellen Speicherbe­ reich ausgelesen und mit diesem gespeicherten Seitenadressen sequentiell die zugeordneten Speicherseiten im Hauptspeicher ausgewählt und in den Seitenpuffer übertragen werden, sofern sie inzwischen beim Verarbeiten anderer Prozesse daraus verdrängt wurden und daß nach dem Bereitstellen des bisher aktuellen Speicherbereichs des zu aktivierenden Prozesses im Seitenpuffer dieser Prozeß unbehindert durch Seitenwechselan­ forderungen abläuft, solange sich der aktuelle Speicherbereich nicht ändert, wobei solche durch Anforderungen bisher nicht benötigter Speicherseiten bedingten Änderungen des aktuellen Speicher­ bereichs wieder in der Speichersteuereinheit regi­ striert werden.
2. Verfahren zum Betreiben eines hierarchisch gegliederten Arbeitsspeichersystems nach Anspruch 1 mit einem modular aufgebauten Hauptspeicher und einem diesem übergeordneten Seitenpuffer, der aus jedem Hauptspeichermodul eine Speicherseite zu übernehmen vermag, dadurch gekennzeichnet, daß bei jeder Speicheranforderung an den Seiten­ puffer (SSP) in einem in der Speichersteuereinheit (SST) angeordneten Hilfsspeicher (WSP) mit einem die Moduladresse (MA) im Hauptspeicher (HSP) bildenden Teil der vollständigen Speicheradresse direkt eine Eintragszeile ausgewählt und dort diese Moduladresse und der die angeforderte Speicherseite (Sm) bezeichnende Teil (SLP) der Speicheradresse zwischengespeichert und dieser Eintrag durch Setzen einer weiteren Bitstelle (V) als gültig gekennzeichnet wird und daß bei einem Prozeß­ wechsel nur die als gültig gekennzeichneten Eintragszeilen im Hilfsspeicher in einen dafür reservierten Bereich im Hauptspeicher übertragen werden.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß beim Reaktivieren eines Pro­ zesses durch einen Prozessor (ZP) der Speicher­ steuereinheit (SST) außer den vollständigen Seiten­ adressen (MA, SLP) auch ein Startsignal (START) und ein Bereitstellungssignal (WSR) zugeführt wird, das beim Bereitstellen des bisher aktuellen Speicher­ bereichs im Seitenpuffer (SSP) so lange aufrechter­ halten wird, bis sämtliche Speicherseiten ausgewählt sind und dieser Zustand dem anfordernden Prozes­ sor durch ein Quittungssignal (Q) mitgeteilt ist und daß erst dann nach Löschen des Bereitstellungssig­ nals weitere Speicheranforderungen auf den Seitenpuffer durchgeschaltet werden und zu einem Lese- oder Schreibzyklus im Seitenpuffer führen.
4. Schaltungsanordnung zum Durchführen eines Verfahrens nach einem der Ansprüche 1 bis 3, mit einem hierarchisch aufgebauten Arbeitsspeichersy­ stem, dadurch gekennzeichnet, daß die beiden niedersten Speicherstufen als räumliche Einheit aus Speicherbausteinen mit Ladungsverschiebespei­ chern derart modular aufgebaut sind, daß die Speicherschleifen (SLi; i=1 bis 256) eines Moduls (MODm; m=1 bis 32) des Hauptspeichers (HSP) synchron verschiebbar sind und die homologen Speicherzellen (z. B. SLPn; n=1 bis 256) gemeinsam jeweils eine Speicherseite bilden und daß die Lese/Schreib-Stationen (L/S) aller Speichermoduln den Seitenpuffer (SSP) als übergeordnete Speicher­ stufe ergeben.
5. Schaltungsanordnung nach Anspruch 4, dadurch gekennzeichnet, daß in der den beiden niedersten Speicherstufen (HSP, SSP) zugeordneten Speicher­ steuereinheit (SST) jeweils einem der Speichermo­ duln (MODm) gleichartig aufgebaute Steuermoduln (STm; m=1 bis 32) zugeordnet sind, die über einen in ihnen enthaltenen Decodierer (DEC 2) nur durch die den zugeordneten Speichermodul auswählende Moduladresse (MA) aktivierbar sind und eine Speicheranforderung an diesen Speichermodul un­ abhängig steuern.
6. Schaltungsanordnung nach Anspruch 5, dadurch gekennzeichnet, daß in jedem Steuermodul (STm) der Speichersteuereinheit (SST) ein Zählerregister (ZA) vorgesehen ist, dessen Zählerstand unmittelbar die Schleifenposition (SLPn) der Speicherschleifen (SLi) des Speichermoduls (MODm) angibt, die an den Lese/Schreibstationen (L/S) liegen und daß weiterhin ein Speicherregister (SPR) zum Zwischen­ speichern der Seitenadresse (SLP) bei einer Speicheranforderung vorgesehen ist, daß beiden Registern ein Vergleicher (VG) zugeordnet ist, der bei Gleichheit der Registerinhalte eine Fertigmel­ dung abgibt und damit neben einem Startsignal (ST) eine Wortadresse (WA′) auf den Seitenpuffer (SSP) durchschaltet und daß ein Taktgeber (TG) vorgese­ hen ist, dessen Ausgang bei fehlender Fertigmeldung auf eine Taktleitung (T) durchschaltbar ist, die den Verschiebetakt für alle Speicherschleifen (SLi) im zugeordneten Speichermodul (MODm) liefert und zugleich an einem Zähleingang des Zählerregisters angeschlossen ist.
DE19752542845 1975-09-25 1975-09-25 Verfahren zum Betreiben eines hierarchisch gegliederten, mehrstufigen Arbeitsspeichersystems und Schaltungsanordnung zur Durchführung des Verfahrens Granted DE2542845B2 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19752542845 DE2542845B2 (de) 1975-09-25 1975-09-25 Verfahren zum Betreiben eines hierarchisch gegliederten, mehrstufigen Arbeitsspeichersystems und Schaltungsanordnung zur Durchführung des Verfahrens

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19752542845 DE2542845B2 (de) 1975-09-25 1975-09-25 Verfahren zum Betreiben eines hierarchisch gegliederten, mehrstufigen Arbeitsspeichersystems und Schaltungsanordnung zur Durchführung des Verfahrens

Publications (3)

Publication Number Publication Date
DE2542845A1 DE2542845A1 (de) 1977-03-31
DE2542845B2 DE2542845B2 (de) 1980-03-13
DE2542845C3 true DE2542845C3 (de) 1993-09-09

Family

ID=5957433

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19752542845 Granted DE2542845B2 (de) 1975-09-25 1975-09-25 Verfahren zum Betreiben eines hierarchisch gegliederten, mehrstufigen Arbeitsspeichersystems und Schaltungsanordnung zur Durchführung des Verfahrens

Country Status (1)

Country Link
DE (1) DE2542845B2 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19744407C1 (de) 1997-10-08 1999-02-11 Luratech Ges Fuer Luft Und Rau Verfahren zur mehrdimensionalen, diskreten Wavelet-Transformation und Transformationseinheit zur Durchführung des Verfahrens
US6724645B1 (en) * 2003-01-30 2004-04-20 Agilent Technologies, Inc. Method and apparatus for shortening read operations in destructive read memories

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3701107A (en) * 1970-10-01 1972-10-24 Rca Corp Computer with probability means to transfer pages from large memory to fast memory
US3761881A (en) * 1971-06-30 1973-09-25 Ibm Translation storage scheme for virtual memory system

Also Published As

Publication number Publication date
DE2542845B2 (de) 1980-03-13
DE2542845A1 (de) 1977-03-31

Similar Documents

Publication Publication Date Title
DE2617408C3 (de) Speichermodul fur ein Datenverarbeitungsgerät mit Speicherhierarchie
EP0163096B1 (de) Einrichtung zur Rettung eines Rechnerzustandes
EP0013737A1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE1956604A1 (de) Datenverarbeitungsanlage mit einem Speichersystem
DE2230266A1 (de) Datenverarbeitungsanlagen mit einer zentraleinheit unter verwendung virtueller adressierung
DE2303596A1 (de) Datenverarbeitungsanordnung
CH627580A5 (de) Austauschanordnung zur bereitstellung von austauschadressen fuer den betrieb eines pufferspeichers in einer speicherhierarchie.
DE2746064A1 (de) Datenspeicher mit auffrischung
DE2809602A1 (de) Kanalbus-steuereinrichtung
DE3126363A1 (de) Verfahren und vorrichtung zur steuerung einer datenuebertragung mit direktem speicherzugriff
EP0651536A2 (de) Verfahren zur Wiederherstellung einer vorgegebenen Reihenfolge für ATM-Zellen
DE2454613C2 (de) Kanaleinheit für die Steuerung der Datenübertragung auf einer Vielzahl von Kanälen zwischen den peripheren Einrichtungen und dem Hauptspeicher einer digitalen Datenverarbeitungsanlage
EP0739509B1 (de) Anordnung mit master- und slave-einheiten
DE3936339C2 (de) DMA-Controller
DE2530599C2 (de) Verfahren und Schaltungsanordnung zur Steuerung von Ein-/Ausgabe-Geräten
EP0012207B1 (de) Speicherhierarchie mit Ladungsverschiebungsspeicher
DE2542845C3 (de)
DE2404887C2 (de) Schaltungsanordnung für den Informationsaustausch mit einem Rechner
WO1998044421A1 (de) Schaltungsanordnung mit einem prozessor und einem datenspeicher
EP0280954B1 (de) Verfahren zur Steuerung des Datenaustausches zwischen Verarbeitungseinheiten und einem Speichersystem mit Cachespeicher in Datenverarbeitungsanlagen, sowie ein entsprechend arbeitender Cachespeicher
DE2544071C3 (de) Mehrstufiges Arbeitsspeichersystem
EP0156989B1 (de) Verfahren und Anordnung zur zeitgerechten Bereitstellung von reellen Speicheradressen für den direkten Zugriff zum Hauptspeicher durch periphere Geräte in einer Datenverarbeitungsanlage
DE2542102C2 (de) Datenverarbeitende Anlage
EP0970426B1 (de) Abhängigkeitssteuerung für überlappende speicherzugriffe
EP0556430B1 (de) Verfahren zur Steuerung eines Peripheriesystems

Legal Events

Date Code Title Description
C3 Grant after two publication steps (3rd publication)
8339 Ceased/non-payment of the annual fee