PatentDe  


Dokumentenidentifikation DE2542845C3 09.09.1993
Titel Verfahren zum Betreiben eines hierarchisch gegliederten, mehrstufigen Arbeitsspeichersystems und Schaltungsanordnung zur Durchführung des Verfahrens
Anmelder Siemens AG, 1000 Berlin und 8000 München, DE
Erfinder Schneider, Peter, Dr.-phil., 8134 Pöcking, DE
DE-Anmeldedatum 25.09.1975
DE-Aktenzeichen 2542845
Offenlegungstag 31.03.1977
Veröffentlichungstag der Patenterteilung 09.09.1993
Veröffentlichungstag im Patentblatt 09.09.1993
IPC-Hauptklasse G06F 9/46
IPC-Nebenklasse G06F 12/08   
Zusammenfassung Das Verfahren soll die Effektivitaet mehrstufiger Speichersysteme in der Datenverarbeitung steigern. In moderner Technologie aufgebaute Speicher enthalten im Hauptspeicher saemtliche Programme, im bergeordneten kleineren Speicher nur noch die im laufenden Prozess benoetigten Programmseiten (Seitenpuffer), die erst nach einer Speicheranforderung geladen werden und daher eine Verarbeitungstotzeit bedingen. Der Prozessor speichert die Anzahl der ben!tigten aktuellen Seiten bei der ersten Aktivierung im Mehrprogrammbetrieb, um bei Reaktivierung die notwendige Anzahl Seitenrahmen zur Verfuegung zu stellen. Ein neuer Prozess ueberschreibt die reaktivierten Seiten. Das Verfahren vermeidet Mehrfachanforderungen der bereits dem aktuellen Speicherbereich zugeordneten Programmseiten und die damit verbundenen Wartezeiten durch bessere Speicherkapazitaetsausnutzung im Seitenpuffer. Beim Reaktivieren eines Prozesses stehen neben den notwendigen Seitenrahmen die entsprechenden Programmseiten zur Verfuegung, so dass der aktuelle Speicherbereich und dessen Aenderung dynamisch angepasst werden kann. Ein weiterer Vorteil ist der modulare Hauptspeicheraufbau, in dem trotz sequentieller Seitenanforderung der Ladevorgang in den Speichermodulen simultan ablaeuft. ...U.S.W

Beschreibung[de]

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 Mitteln 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 mehrerer 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 Speicherplatzes 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 Seitenwechselanforderungen 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 Arbeitsspeichersystem 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 freigeben. 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ückliegenden 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 abgelaufenen Prozesse bei Seitenanforderungen seine Programmseiten ü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 bereits einmal dem aktuellen Speicherbereich zugeordneter 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 laufend 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 Einrichtung zur Auswahl von im Verlauf einer Programmbearbeitung 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 verschiedenen Speicherstufen eines Arbeitsspeichersystems mit einer Einrichtung ausgestattet, die in einer nicht vorher bestimmten, vom Zufall abhängigen Weise bei einem Seitenfehler entscheidet, ob die im Pufferspeicher fehlende Speicherseite aus dem Hauptspeicher übertragen oder der Hauptspeicher unmittelbar adressiert 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 unvermeidbar, 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 benutzter Programmseiten zu vermeiden und damit einen laufenden Prozeß durch derartige Seitenwechselanforderungen 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 modularen Aufbau des Hauptspeichers zurückzuführen, an den die einzelnen Seitenanforderungen wohl sequentiell gestellt werden, der eigentliche zeitraubende Ladevorgang jedoch in den einzelnen Speichermoduln unabhängig 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 datenverarbeitenden 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 Speichersteuereinheit, die dem Seitenpuffer und dem Hauptspeicher zugeordnet ist.

Nach dem in Fig. 1 dargestellten Prinzipschaltbild einer datenverarbeitenden Anlage verkehrt ein Zentralprozessor 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 gesteuert.

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 Speicherstellen der CCD-Schleifen einer Schleifengruppe, die z. B. sämtliche erste CCD-Schleifen SL 1 der Speicherbausteine 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-Schleifengruppen. Alle Schleifengruppen eines Speichermoduls 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 Schleifengruppen 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-Betrieb 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 Speicherseite 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 nichtredundant 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 Programme, 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 Programme, 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 anzuwenden sind.

Mehrstufige Speichersysteme haben bekanntlich den Zweck, bei einer großen Speicherkapazität solche Informationen, zu denen mit einer gewissen Wahrscheinlichkeit 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 Zugriffszeit behandeln zu wollen, sei wengistens der Vollständigkeit halber die heute allgemein übliche Ladestrategie 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ährend 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 verschiedene 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 entsprechenden 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 festzulegenden 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 Programmbereiches 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 identisch 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 Schleifenposition 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 Eintragszeilen ist 14 Bit lang und kann daher eine Moduladresse MA und eine Schleifenposition SLP aufnehmen. Die letzte Bitstelle speichert als Gültigkeitskennzeichen 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 zugeordnet. 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 Programmseiten 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 Hilfsspeicher WSP durch Setzen des Gültigkeitsbits V bei einer Anforderung der entsprechenden Programmseite während des Prozeßablaufs aktualisiert werden.

Dabei erfolgen Speicherzugriffe des Zentralprozessors 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ählerregisters 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 Schleifenposition 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&min; 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&min; 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 "&sl0;" ist.

Solange der Vergleicher VG bei einer Anforderung auf einen Speicherzugriff kein Fertigsignal abgibt, wird mit dem über einen Inverter/invertierten Ausgangsignal 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ählerregisters 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 "&sl0;".

Da der Vorgang der Bereitstellung des bisher aktuellen Speicherbereiches bei einer neuen Aktivierung 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 Übertragungszeiten treten während des Ablaufes des Prozesses nur dann auf, wenn sich der aktuelle Speicherbereich durch Anforderung einer bisher nicht benötigten Speicherseite ändert. Diese Änderung führt automatisch, wie oben erläutert, zu einem neuen gültigen Eintrag im Hilfsspeicher 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.


Anspruch[de]
  1. 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 gesteuert 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 Zwischenspeichern der Adresse (MA, SLP) der ausgewählten Speicherseite (Sm; m=1 bis 32) registriert und damit der aktuelle Speicherbereich des laufenden Prozesses 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 Speicherbereich 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 Seitenwechselanforderungen abläuft, solange sich der aktuelle Speicherbereich nicht ändert, wobei solche durch Anforderungen bisher nicht benötigter Speicherseiten bedingten Änderungen des aktuellen Speicherbereichs wieder in der Speichersteuereinheit registriert werden.
  2. 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 Seitenpuffer (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. 3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß beim Reaktivieren eines Prozesses durch einen Prozessor (ZP) der Speichersteuereinheit (SST) außer den vollständigen Seitenadressen (MA, SLP) auch ein Startsignal (START) und ein Bereitstellungssignal (WSR) zugeführt wird, das beim Bereitstellen des bisher aktuellen Speicherbereichs im Seitenpuffer (SSP) so lange aufrechterhalten wird, bis sämtliche Speicherseiten ausgewählt sind und dieser Zustand dem anfordernden Prozessor durch ein Quittungssignal (Q) mitgeteilt ist und daß erst dann nach Löschen des Bereitstellungssignals weitere Speicheranforderungen auf den Seitenpuffer durchgeschaltet werden und zu einem Lese- oder Schreibzyklus im Seitenpuffer führen.
  4. 4. Schaltungsanordnung zum Durchführen eines Verfahrens nach einem der Ansprüche 1 bis 3, mit einem hierarchisch aufgebauten Arbeitsspeichersystem, dadurch gekennzeichnet, daß die beiden niedersten Speicherstufen als räumliche Einheit aus Speicherbausteinen mit Ladungsverschiebespeichern 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 Speicherstufe ergeben.
  5. 5. Schaltungsanordnung nach Anspruch 4, dadurch gekennzeichnet, daß in der den beiden niedersten Speicherstufen (HSP, SSP) zugeordneten Speichersteuereinheit (SST) jeweils einem der Speichermoduln (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 unabhängig steuern.
  6. 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 Zwischenspeichern der Seitenadresse (SLP) bei einer Speicheranforderung vorgesehen ist, daß beiden Registern ein Vergleicher (VG) zugeordnet ist, der bei Gleichheit der Registerinhalte eine Fertigmeldung abgibt und damit neben einem Startsignal (ST) eine Wortadresse (WA&min;) auf den Seitenpuffer (SSP) durchschaltet und daß ein Taktgeber (TG) vorgesehen 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.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com