-
Arbeitsspeicheranordnung Die Erfindung bezieht sich auf eine Arbeitsspeicheranordnung
für eine zum Bearbeiten von mehreren verschiedenen Prozessen in einem Time-Sharing-Betrieb
vorgesehene Datenverarbeitungseinrichtung, die einen Hauptspeicher großer Speicherkapazität
und einen im Verbindungsweg zwischen diesem und einem Zentralprozessor angeordneten
Pufferspeicher kleiner Speicherkapazität enthält.
-
Es ist bereits bekannt, zwischen einem Zentralprozessor einer Datenverarbeitungseinrichtung
und einem zugehörigen Hauptspeicher großer Speicherkapazität einen Pufferspeicher
kleiner Speicherkapazität und kleiner Zugriffszeit anzuordnen. Der Pufferspeicher,
der auch als Cache bezeichnet wird, hat die Aufgabe, möglichst viele Lesezugriffe
des Zentralprozessors zu befriedigen. Bei einem Lesezugriff gibt der Zentralprozessor
zunächst die Adresse des gewünschten Datenwortes an das Cache. Falls das Cache das
gewünschte Datenwort enthält1 wird dieses sofort an den Zentralprozessor weitergegeben.
In diesem Fall spricht man von einem Treffer (Hit>.
-
Andernfalls muß die Adresse an den Hauptspeicher weitergeleitet werden,
und ein aus mehreren Datenwörtern bestehender Datenblock, der auch das gesuchte
Datenwort enthält, wird zunächst vom Hauptspeicher an das Cache und danach- von
diesem zum Zentralprozessor übertragen.
-
Die Trefferhäufigkeit, die als die Anzahl der treffer, bezogen auf
die Anzahl der Lesezugriffe des Zentralprozessors zum Cache definiert wird, ist
ein Maß für die Wirksamkeit des Cache. Unter der Annahme, daß das Cache zu Beginn
einer von der Datenverarbeitungseinrichtung zu bearbeitenden Prozesses leer ist,
fehlt dem Prozeß eine aktuelle Speicheruingebung im Cache. Mit wachsender Bearbeitungszeit
des Prozesses wird die aktuelle Speicherumgebung immer mehr den Bedürfnissen des
Prozesses angepaßt. Die Tref£ehäufigkeit
ist also zu Beginn des
Prozesses sehr klein und strebt mit zunehmender Bearbeitungszeit einem wesentlich
größeren Grenzwert zu.
-
Untersuchungen haben gezeigt, daß bei einer simultanen Bearbeitung
von mehreren Prozessen in einem Multiprogramming- oder Time-Sharing-Betrieb sehr
häufig Prozesse mit kurzer Bearbeitungszeit auftreten.
-
Unter simultaner Bearbeitung wird dabei eine scheinbar gleichzeitige
Bearbeitung mehrerer Prozesse in einem Prozessor verstanden. Nach jedem Wechsel
des Prozesses werden nur kleine Trefferhäufigkeiten im Cache erreicht, da sich die
Speicherumgebung im Cache auf den zuvor bearbeiteten Prozess eingestellt hat. Da
die Prozesse im allgemeinen eine kurze Bearbeitungszeit haben, werden auch während
der Bearbeitung der Prozesse nur kleine Trefferhäufigkeiten erreicht.
-
Der Erfindung liegt die Aufgabe zugrunde, eine Arbeitsspeicheranordnung
anzugeben, mit der eine große Trefferhäufigkeit im Cache auch dann erreicht wird,
wenn bei einer simultanen Bearbeitung von mehreren Prozessen in einem Time-Sharing-Betrieb
die zu bearbeitenden Prozesse häufig gewechselt werden.
-
Erfindungsgemäß wird die Aufgabe bei der Arbeftsspeicheranordnung
der eingangs genannten Art dadurch gelöst, daß ein mit dem Puffer-Speicher verbundener
Zwischenspeicher vorgesehen ist, der eine Mehrzahl von Speichereinheiten enthält
und daß eine mit dem Zwischenspeicher und dem Pufferspeicher verbundene Steuerstufe
-vorgesehen ist, die bei jedem Wechsel eines Prozesses die Speichereinheiten im
Zwischenspeicher in der Weise steuert, daß der dem neuen Pxoxeß zuteordnete Inhalt
des Zwischenspeichers an seinem Ausgang abgegeben wird, und die eine Übertragung
dieses Inhalts vom Zwiachenspe;-cher zum Pufferspeicher steuert.
-
pJaX Arhe~iFsspeicheranordnung gemäß der Erfindung hat die Vorteile,
dat im Zwischenspeicher kostengünstige Speichereinheiten aus sev angeordneten Speicherelementen
eingesetzt werden können.
-
AuBerdem hat die Arbeitsspeicheranordung den Vorteil, daß trotz eines-häu£igen
Wechsels von zu bearbeitenden Prozessen und trotz kurzer Bearbeitungszeiten eine
große Trefferhäufigkeit im Pufferspeicher
erreicht wird Außerdem
kann die Arbeitsspeicheranordnung nachträglich in bereits vorhandene Datenverarbeitungseinrichtungen
eingebaut werden, wenn diese für eine Bearbeitung von mehreren Prozessen im Time-Sharing-Betrieb
eingesetzt werden sollen Eine vorteilhafte Ausführungsform des Zwischenspeichers
ist dadurch gekennzeichnet, daß die Speichereinheiten aus Speiclierelementen bestehen,
deren Anzahl gleich ist der größten Anzahl- der simultan zu bearbeitenden Prozesse
und daß in jeweils einander zuge-ordneten Speicherelementen die zu jedem Prozeß
gehörenden aktuellen Daten und die zugehörigen Adressen der Daten eingespeichert
sind.
-
Der Zwischenspeicher erfordert bei einer Herstellung der Speidhereinheieen
mit großer Packungsdichte als integrierte Schaltkreise einen geringen Aufwand, wenn
als Speichereinheiten ringförmige Schieberegister vorgesehen sind.
-
Eine besonders große Packungsdichte der Schaltkreise wird erreicht,
wenn als Schieberegister CCD (Charge-Coupled Device)-Speichetbausteine vorgesehen
sind.
-
im folgenden wird ein bevorzugtes Ausführungsbeispiel der Arbeitsspeicheranordnung
gemäß der Erfindung anhand von Zeichnungen beschrieben.
-
Es zeigen: Fig. 1 ein Blockschaltbild einer Arbeitsspeicheranordnung
einer Datenverarbeitungseinrichtung, Fig. 2 ein Blockschaltbild eines Zwischenspeichers
und Fig. 3 ein Schaltbild einer Steuerstufe für den Zwischen-##ei cher.
-
Bej der in Figv 1 dargestellten Arbeitsspeicheranordnung einer Datenverarbeitungseinrichtung
ist zwischen einem Sentrawro2essor ;P und einem Hauptspeicher HS großer Speicherkapazität
und verhältg ßiq großer Zugriffszeit ein Pufferspeicher CA kleiner Speicherkapazität
und kleiner Zugriffszeit angeordnetw Dieser Pufferspeicher CA, auch Cache genannt,
hat die Aufgabe, möglichst viele Lesezugriffe des Zentralprozessors der Datenverarbeitungseinrichtung
zu
befriedigen. Bei einem Lesezugriff gibt der Zentralprozessor an das Cache zunächst
ein Adressenwort AD1 ab, das die Adresse des gewünschten Datenwortes angibt. Eine
Steuerstufe HM des Caches prüft, ob das gewünschte Datenwort im Cache enthalten
ist. Falls das der Fall ist, wird das Datenwort WO an den Zentralprozessor abgegeben.
Andernfalls wird das Adressenwort als Adressenwort AD2 an den Hauptspeicher ES abgegeben.
In diesen Fall wird vom Hauptspeicher HS ein Datenblock BL1, der aus mehreren Datenwörtern
besteht und das gewünschte Datenwort WO enthält, zunächst zum Cache und anschließend
zum Zentralprozessor übertragen.
-
Die Arbeitsspeicheranordnung enthält weiterhin einen mit einer Steuerstufe
ST verbundenen Zwischenspeicher ZS. In diesem Zwischenspeicher werden bei jeder
Unterbrechung eines Prozesses die diesem Prozeß zugeordneten Daten und ihre Adressen
zwischengespeichert und bei einer späteren, weiteren Bearbeitung wieder zum Cache
übertragen. Auf diese Weise wird erreicht, daß nach jeder Unterbrechung die Bearbeitung
eines Prozesses mit der zuvor erzielten Trefferhäufigkeit fortgesetzt werden kann.
Als Zwischenspeicher können in vorteilhafter Weise seriell organisierte Speichereinheiten,
wie CCD-Schieberegister oder Eimerkettenspeicher verwendet werden. Gesignete CCD-Schieberegister
sind bereits allgemein bekannt und beispielsweise in J.E. Harnes, W.F. Kosonocky,
J.M. Chambos und D.J.
-
Sauer: Charge-Coupled Devices for Computer Memories, Proc. Wational
Computer Conference, Chicago 1974 beschrieben.
-
Der Steuerstufe ST wird vom Zentralpro2essor ZP ein Signal PW zugeführt,
das einen Prozeßwechsel anzeigt. Anschließend wird aa das Cache ein Signal LS übertragen,
das durch einen ersten SinXrwert angibt, daß der Inhalt des Caches ausgelesen und
zum Zwi-$<¢enspeicher übertragen werden soll. Gleichzeitig werden Adressensignale
Al und Taktimpulse T1 als Lesetakte an das Cache übertra-##n-. Die Daten werden
als Datensignale DA1 vom Cache zum Zwischen speicher übertragen. Bei einem Durchspeichern
der Daten vom Cache zum Zwischenspeicher kann auf eine Übertragung der Daten vom
Cache X wischenspeicher verzichtet werden #ach der tbertragung wird der Inhalt des
Zwischenspeichers mit
hilfe von weiteren Taktimpulsen und einer
als Signal PN mitgeteilten Nummer des nächsten Prozesses so verschoben, daß die
dem neuen Prozeß zugeordneten Daten am Ausgang des Zwischenspeichers zur Verfügung
stehen. Danach bereitet die Steuerstufe durch das Signal LS, das einen zweiten Binänvert
annimmt, das Cache auf ein Einschreiben von Daten vor und mit Hilfe der Adressensignale
A# und der Taktimpulse Ti werden die dem neuen Prozeß zugeordneten Daten als Datensignale
DA2 vom Zwischenspeicher zum Cache übertragen. Anschließend wird mit der Bearbeitung
dieses neuen Prozesses beqonnen.
-
Der in Fig. 2 dargestellte Zwischenspeicher ZS enthält eine Mthrzahl
von Speichereinheiten, die jeweils aus einem ringförmigen Schieberegister SR gebildet
werden. Die Anzahl der Speicherelemente SE der Schieberegister SR, d.h. die Schleifenlänge,
entspricht der maximalen Anzahl der simultanen Prozesse. Der Inhalt jedes einzelnen
Speicherelementes SE des Schieberegisters SR gehört einem anderen Prozeß an, so
daß der Adreßraum jedes einzelnen Prozesses im Zwischenspeicher in einer Zeile quer
über alle Schieberegister SR angeordnet ist. An jedem'Schieberegister SR befindet
sich eine Schreib-Lese-Station SL. Diese kann beispielsweise ein Flipflop zum Zwischenspeichern
der gelesenen und einzuschreibenden Daten enthalten. Dieses Flipflop kann entweder
anstelle eines Speicherelementes SE Bestandteil des Schieberegisters SR sein oder
zusätzlich außerhalb des Schieberegisters SR vorgesehen werden.
-
Falls die Speichereinheiten beispeilsweise aus integrierten Bausteinen
BA mit jeweils 256 CCD-Schieberegistern mit einer Schleifenlänge von 64 Speicherelementen
SE bestehen, steht bei einer Verwendung von 128 derartigen Bausteinen im Zwischenspeicher
zum Speichern der Daten eine Speicherkapazität von 4 Byte pro Prozeß zur Verfügung.
Insgesamt hat ein derartiger Zwischenspeicher eine Speicherkapazität von 256 Byte.
Bei jedem Prozeßwechsei werden die dem gerade bearbeiteten Prozeß zugeordneten Daten
aus dem Cache über die 5chreib-Lese-Stati3nen St in das Schieberegister SR eìngeschrieben.
Die Auswahl der Schreib-Lese-Stationen St innerhalb einer Zeile erfolgt dabei beispielsweise
mit Hilfe eines nicht dargestellten Demultiplexers dem die Datensignale DA1 und
Adressensignale
A2 von der Steuerstufe ST zugeführt werden. Anschließend
wird mittels Takti.mpulsen T3 der Inhalt aller Schieberegister SR solange verschoben,
bis die dem neuen Prozeß zugeordneten Daten in den Schreib-Lese-Stationen SL gespeichert
sind. Danach werden sie beispielsweise über einen nicht dargestellten Multiplexer,
dem ebenfalls die Adressensignale A2 zugeführt werden, ausgelesen und zum Cache
übertragen. Anschließend werden sie, gesteuert durch die Adressensignale Al und
die als Schreibtakte dienenden Taktimpulse Ti, in das Cache eingespeichert.
-
Die in Fig. 3 dargestellte Steuerstufe ST steuert die Übertragung
der Daten zwischen dem Cache und dem Zwischenspeicher. Sie enthält einen Taktgeber
TG, drei Zähler Zi bis Z3, einen Vergleicher VG, drei Flipflops Fl bis F3 und mehrere
binäre Verknüpfungsglieder.
-
Bei einem Prozeßwechsel gibt der Zentralprozessor das Signal PW ab.
Dieses Signal PW setzt die Flipflops Fl und F2. Das Signal LS am Ausgang des Flipflops
F1 nimmt den Binärwert 1 an und bereitet den Zwischenspeicher für ein Einschreiben
und das Cache für -ein Auslesen von Daten vor. Das Signal am Ausgang des Flipflops
F2 gibt ein UND-Glied Ul frei, über das Taktimpulse Tl zu den Zählern Z1 und Z2
durchgeschaltet werden.
-
Der Zähler Zi gibt an das Cache die Adressensignale Al ab, und der
Zähler Z2 erzeugt Adressensignale A2 für den Zwischenspeicher.
-
Mit jedem Taktimpuls Tl werden die Zähler fortgeschaltet. Außerdem
werden mit Hilfe der Taktimpulse Ti, die als Lesetakte für das Cache und gleichzeitig
als Schreibtakte für den Zwischenspeicher diene die Daten vom Cache zum Zwischenspeicher
übertragen.
-
Wenn alle Daterz übertragen worden sind# gibt der Zähler Z2 ein Signal
5 ab, das die Flipflops Fl und F2 zurücksetzt und gleichz über elr UND-Glied U2
das Flipflop F3 setzt. Das Signal am Ausgang des Flipflops F3 wird dem UND-Glied
U2 zugeführt. Da -dle durch Signale PN dem Vergleicher VG zugeführte Nummer des
neuen prozesses nicht mit dem zuvor bearbeiteten Prozeß'übereinstxmmb wad das Signal
am Ausgang des Vergleichers VG den Binärwert o hat; gibt das Signal am Ausgang eines
Inverters N ein UND-Glied
U3 frei. Über das UND-Glied U3 werden
Taktimpulse T2 dem Zähler s3 zugeführt, die diesen solange fortschalten, bis sein
Inhalt mit der Prozeßnummer übereinstimmt. Gleichzeitig werden die Taktimpulse T2
über ein UND-Glied U4 als Taktimpulse T3 den Schieberegistern SR im Zwischenspeicher
zugeführt, und der Inhalt dieser Schieberegister SR wird verschoben.
-
Wenn der Inhalt des Zählers Z3, dessen Zählbereich gleich ist der
Schleifenlänge der Schieberegister SR, mit der Nummer des Prozesses übereinstimmt,
nimmt das Signal am Ausgang des Vergleichers VG den Binärwert O an, und die Abgabe
von weiteren Taktimpulsen T3 wird gesperrt. Die Schreib-Lese-Stationen SL der Schieberegister
enthalten zu diesem Zeitpunkt die dem nächsten Prozeß zugeordneten Daten.
-
Gleichzeitig wird über ein ODER-Glied D das Flipflop F2 gesetzt.
-
Das Signal LS hat nun den Binärwert Q und bereitet das Cache zum Einschreiben
und den Zwischenspeicher zum Auslesen von Daten vor.
-
Über das UND-Glied U1 werden wieder Taktimpulse Tl abgegeben, und
die Zähler Zu und Z2 werden fortgeschaltet. Mit Hilfe der Adressensignale Al und
A2 und der zugehörigen Taktimpulse Ti wird der Inhalt der Schreib-Lese-Stationen
SL zum Cache übertragen.
-
Wenn alle Daten übertragen worden sind, gibt der Zähler Z2 erneut
ein Signal 5 ab, das das Flipflop F2 zurücksetzt. Das Signal 5 setzt auch wieder
das Flipflop F1 und gibt außerdem über ein UND-Glied US ein Signal R an den Zentralprozessor
ab, das ihm anzeigt, daß mit der Bearbeitung des neuen Prozesses begonnen werden
kann.
-
Bei einem weiteren Prozeßwechsel wiederholt sich der Vorgang in gleicher
Weise, und es wird wieder zunächst der Inhalt des Faches zum Zwischenspeicher übertragen.
Anschließend werden wieder die dem neuen zu bearbeitenden Prozeß zugeordneten Daten
vom Zwischenspelcher sut Cache übertragen, und mit der Bearbeitung des neuen Prozesses
wird begonnen.
-
Da in das Cache vor jeder Bearbeitung des zuvor unterbrochenen Proæesses
die diesem Prozeß zugeordneten Daten vom Zwischenspeicher
alr.geschrieben
werden, kann die Bearbeitung mit der gleichen Trefferhäufigkeit fortgesetzt werden,
die vor der letzten Unterbrechung rreicht wurde. Auf diese Weise kann trotz häufiger
Unterbrechung der Prozesse eine große Trefferhäufigkeit im Cache und damit eine
kurze Bearbeitungszeit der Prozesse erreicht werden.
-
4 Patentansprüche 3 Figuren