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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
- G06F9/462—Saving 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.
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)
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)
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 |
-
1975
- 1975-09-25 DE DE19752542845 patent/DE2542845B2/de active Granted
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 |