DE2509869C3 - Arbeitsspeicheranordnung - Google Patents

Arbeitsspeicheranordnung

Info

Publication number
DE2509869C3
DE2509869C3 DE19752509869 DE2509869A DE2509869C3 DE 2509869 C3 DE2509869 C3 DE 2509869C3 DE 19752509869 DE19752509869 DE 19752509869 DE 2509869 A DE2509869 A DE 2509869A DE 2509869 C3 DE2509869 C3 DE 2509869C3
Authority
DE
Germany
Prior art keywords
memory
cache
data
central processor
assigned
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
Application number
DE19752509869
Other languages
English (en)
Other versions
DE2509869A1 (de
DE2509869B2 (de
Inventor
Peter Dr 8134 Pöcking; Trumpp Gerhard 8000 München 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
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE19752509869 priority Critical patent/DE2509869C3/de
Publication of DE2509869A1 publication Critical patent/DE2509869A1/de
Publication of DE2509869B2 publication Critical patent/DE2509869B2/de
Application granted granted Critical
Publication of DE2509869C3 publication Critical patent/DE2509869C3/de
Expired legal-status Critical Current

Links

Description

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 Datenworts an das Cache. Falls das Cache das gewünschte Datenwort enthält, 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 /um 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 Caches. Unter der Annahme, daß das Cache zu Beginn einer von der Dalenverarbeitungsemrichtung zu bearbeitenden Prozesses leer ist, fehlt dem Prozeß eine aktuelle Speicherumgebung im Cache. Mit wachsender Bearbeitungszeit des Prozesses wird die aktuelle Speicherumgebung immer mehr den Bedürfnissen des Prozesses angepaßt. Die Trefferhä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
is 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 Prozeß 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 Arbeitsspeicheranordnung der eingangs genannten Art dadurch gelöst, daß der Pufferspeicher eine Mehrzahl von Speichereinheiten enthält, die jeweils aus Speicherelementen bestehen, daß die Anzahl der Speicherelemente SE gleich ist der größten Anzahl der zu bearbeitenden Prozesse, daß in jeweils einander zugeordneten Speicherelementen die jedem Prozeß zugeordneten Daten und die zugehörigen Adressen eingespeichert sind und daß eine mit dem Pufferspeicher und dem Zentralprozessor verbundene Steuerstufe vorgesehen ist, die nach jedem Wechsel des Prozesses die Speichereinheiten in der Weise steuert, daß die dem neuen Prozeß zugeordneten Daten und Adressen an Schreib-Lese-Stationen der Speichereinheiten abgegeben werden.
Die Arbeitsspeicheranordnung gemäß der Erfindung hat die Vorteile, daß im Pufferspeicher kostengünstige Speichereinheiten aus seriell angeordneten Speicherelementen eingesetzt werden können. Außerdem hat die Anordnung den Vorteil, daß trotz eines häufigen Wechsels von zu bearbeitenden Programmen und trotz kurzer Bearbeitungszeiten eine große Trefferhäufigkeit im Pufferspeicher erreicht wird.
Die Arbeitsspeicheranordnung erfordert bei einer Herstellung der Speichereinheiten mit großer Pakkungsdichte als integrierte Schaltkreise einen geringen Aufwand, wenn als Speichereinheiten ringförmige Schieberegister vorgesehen sind.
Ein besonders hoher Integrationsgrad der Schaltkreise wird erreicht, wenn als Schieberegister CCD (Charge-Coupled DeciceJ-Speicherbausteine vorgese-
f>o hen sind.
Im folgenden wird ein bevorzugtes Ausführungsbeispiel der Arbeitsspeicheranordnung gemäß der Erfindung an Hand von Zeichnungen beschrieben. Es zeigt
Fig. 1 ein Blockschaltbild einer Arbeitsspeicheran- ^ Ordnung einer Datenverarbeitungseinrichtung,
Fig. 2 ein Blocksuialtbild eines prozeßorientierten Pufferspeichers,
F i g. 3 ein Schaltbild einer Steuerstufe für den
Pufferspeicher.
Bei der in F i g. 1 dargestellten Arbeitsspeicheranordnung einer Datenverarbeitungseinrichtung ist zwischen einem Zentralprozessor ZP und einem Hauptspeicher HS großer Speicherkapazität und erhältnismäßig großer Zugriffszeit ein Pufferspeicher CA kleiner Speicherkapazität und kleiner Zugriffszeit angeordnet Dieser Pufferspeicher CA, auch Cache genannt, hat die Aufgabe, möglichst viele Lesezugriffe des Zentralprozessors der Datenverarbeitungseinrichtung zu befriedi- ιυ gen. Bei einem Lesezugriff gibt der Zentralprozessor an das Cache CA zunächst ein Adressenwort AD ab, das die Adresse des gewünschten Datenworts angibt. Eine Steuerstufe HM des Caches CA 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 AD an den Hauptspeicher HS abgegeben. In diesem Fall wird vom Hauptspeicher HS zum Cache ein Datenblock BL, der aus mehreren Datenwörtern besteht und das gewünschte Datenwort IVO enthält, zunächst zum Cache und anschließend zum Zentralprozessor übertragen.
Die Arbeitsspeicheranordnung enthält weiterhin eine Steuerstufe CS, die bei der Verwendung eines aus seriell organisierten Speichereinheiten bestehenden Caches den Inhalt des Caches derart verschiebt, daß an seinem Ausgang bei jedem zu bearbeitenden Prozeß der jeweils diesem Prozeß zugeordnete Inhalt zur Verfugung steht Auf diese Weise wird nach jeder Unterbrechung eines Prozesses die Bearbeitung mit der zuvor erzielten Trefferrate fortgesetzt. Als seriell organisierte Speichereinheiten im Cache können beispielsweise CCD (Charge-Duopled Device)-Schieberegister oder Eimerkettenspeicher verwendet werden. Geeignete ?s CCD-Schieberegister sind beispielsweise in J. E. Carnes, W. F. Kosnocky, J. M. Chambers und D. ). Sauer: Charge-Coupled Devices für Computer Memories, Proc. National Computer Conference, Chicago, 197< beschrieben. so
Der Steuerstufe CS wird die Nummer des nächsten zu bearbeitenden Prozesses durch ein Signal PNzugeführt. Gleichzeitig wird ihr ein Signal PW zugeführt, das den Wechsel eines Prozesses anzeigt. Die Steuerstufe CS gibt an das Cache Taktimpulse T2 ab, die ein Verschieben des Inhalts der Speichereinheiten im Cache in Abhängigkeit von der Nummer des Prozesses bewirken. Weiterhin gibt sie ein Signal Ä an den Zentralproze'jsor ab, wenn der dem neuen Prozeß zugeordnete Inhalt am Ausgang des Caches zur Verfugung steht.
Um einen Datenblock im Cache finden zu können, muß seine Adresse in einer Tabelle, dem sogenannten Tagfeld, eingetragen sein, die eine Zuordnung zwischen der Adresse und der entsprechenden Soeicherstelle herstellt. Da das Auffinden eines Datenblocks sehr schnell erfolgen soll, bietet sich für die Tabelle die Verwendung einer Assoziativtabelle an. Ein voll assoziativer Zugriff erfordert jedoch im allgemeinen einen großen Aufwand, so daß häufig teilassoziative <·ο Speicher als Cache verwendet werden.
Das in Fig. 2 dargestellte Cache CA enthält eine Mehrzahl von Speichereinheiten, die aus jeweils einem ringförmigen Schieberegister SR gebildet werden. Die Anzahl der Speicherelemente Sf der Schieberegister < >s SR, d. h. die Schleifenlänge, entspricht der maximalen Anzahl der simultanen Prozesse. Der Inhalt jedes einzelnen Speicherelement Sf des Schieberegisters SR gehört einem anderen Prozeß an, so daß der Adreßraum jedes einzelnen Prozesses im Cache in einer Zeile quer über alle Schieberegister SÄ angeordnet ist Die Speicherkapazität ist durch die Schleifenlänge und die Anzahl der Schieberegister SR festgelegt An jedem Schieberegister SÄ befindet sich eine Schreib-Lese-Station SL Diese kann beispielsweise ein Flipflop zum Zwischenspeichern der gelesenen Daten und der zugehörigen Adressen enthalten. Dieses Flipflop kann entweder an Stelle eines Speicherelements S£ Bestandteil des Schieberegisters sein oder zusätzlich außerhalb des Schieberegisters SÄ vorgesehen werden. Während der Bearbeitung eines Prozesses werden die diesem Prozeß zugeordneten Speicherblöcke an den Schreib-Lese-Stationen SL gehalten.
Die Zugriffszeit zu diesem Cache wird nur durch die Dauer der Auswahl der gewünschten Schreib-Lese-Stationen SL bestimmt Bei einem Prozeßwechsel wird der Inhalt sämtlicher Schieberegister SÄ synchron derart verschoben, daß die dem nächsten Prozeß zugeordneten Daten an den Schreib-Lese-Stationen SL anliegen. Die dem vorhergehenden Prozeß zugeordneten Daten bleiben dabei vollständig erhalten. Bei einer weiteren Bearbeitung eines zuvor unterbrochenen Prozesses wird auf diese Weise mit derjenigen Trefferhäufigkeit fortgesetzt, die vor der Unterbrechung vorhanden war. Damit sind weniger Rückgriffe auf den Inhalt des Hauptspeichers HS erforderlich, und die Prozesse werden schneller bearbeitet als mit Pufferspeichern, die nach jedem Prozeßwechsel keine aktuelle Speicherumgebung enthalten.
Falls beispielsweise für das Cache CCD-Schieberegister vorgesehen werden, die in Form von integrierten Bausteinen BA mit jeweils 256 Schieberegistern mit einer Schleifenlänge von 64 Stellen verwendet werden, steht bei einer Verwendung von 128 derartigen Bausteinen im Cache zum Speichern der Daten eine Speicherkapazität von 4 k Byte pro Prozeß zur Verfügung. Insgesamt hat ein derartiges Cache eine Speicherkapazität von 256 k Byte.
Bei Schreib-Lese-Stationen SL, die außerhalb der Schieberegister SÄ liegen, werden bei einem Prozeßwechsel die dem bearbeitenden Prozeß zugeordneten Daten aus den Schreib-Lese-Stationen SL in die Schieberegister SÄ übertragen. Anschließend wird der Inhalt aller Schieberegister SÄ so lange verschoben, bis die dem neuen Prozeß zugeordneten Daten und Adressen in die Schreib-Lese-Stationen SL eingespeichert sind. Danach wird der Inhalt der Schieberegister SÄ um einen fast vollständigen Umlauf so weit verschoben, daß bei einer Unterbrechung des Prozesses wieder in die gleichen Speicherelemente Sf, aus denen zuvor ausgelesen wurde, eingeschrieben wird. Falls Schieberegister SÄ vorhanden sind, deren Inhalt nach beiden Richtungen verschoben wird, ist dieser Umlauf nicht erforderlich.
Die in Fig.3 dargestellte Steuerstufe CSdient dazu, nach einem Prozeßwechsel den Inhalt der Schieberegister SÄ derart zu verschieben, daß die zur Bearbeitung des jeweiligen Prozesses aktuelle Speicherumgebung im Cache zur Verfügung steht.
Bei einem Prozeßwechsel wird die Nummer des nächsten zu bearbeitenden Prozesses als Dualzahl einem ersten Eingang eines Vergleichers VG durch Signale PN zugeführt. Einem zweiten Eingang des Vergleichers VG werden die Signale am Ausgang eines Dualzählers ZA zugeführt, dessen Zählbereich so groß ist wie die Länge eines Schieberegisters SÄ. Es wird
zunächst angenommen, daß der Zählerstand des Dualzählers ZA nicht mit der Nummer des Prozesses übereinstimmt. Am Ausgang des Vergleichers VG wird in diesem Fall ein Signal R abgegeben, das den Binärwert 0 hat. Das Signal R wird einerseits einem Inverter N und andererseits dem Zentralprozessor ZP zugeführt, um anzuzeigen, wann mit der Bearbeitung des nächsten Prozesses begonnen werden kann.
Das Signal am Ausgang des Inverters N wird einem ersten Eingang eines UND-Glieds U1 zugeführt, dessen zweitem Eingang Taktimpulse Tl zugeführt werden, die von einem Taktgeber TG erzeugt werden. Am Ausgang des UND-Glieds Ui werden Taktimpulse Tl erzeugt, die zum Verschieben des Inhalts der Schieberegister SÄ im Cache dienen. Gleichzeitig werden die Taktimpulse Tl einem UND-Glied U2 zugeführt.
Dem UND-Glied Ul werden außerdem das Signal am Ausgang des Inverters N und ein Signal PW zugeführt, das den Binärwert 1 annimmt, wenn ein Prozeßwechsel durchgeführt wird. Die Taktimpulse Tl werden zum Ausgang des UND-Glieds Ul durchge schaltet und dem Dualzähler ZA zugeführt. Dies« Taktimpulse erhöhen den Inhalt des Dualzählers ZA se lange, bis er gleich ist der Prozeßnummer. In diesem FaI nimmt das Signal R den Binärwert 1 an und über der Inverter N wird das UND-Glied Ui gesperrt, da in dei Zwischenzeit so viele Taktimpulse Tl abgegeber wurden, daß die dem neuen Prozeß zugeordneten Dater an den Lesestationen des Schieberegisters SR anliegen.
Gleichzeitig wird das UND-Glied UT. gesperrt, unc ein weiteres Zählen des Dualzählers ZA wird verhin dert. Außerdem wird das Signal R dem Zentralprozes sor ZP zugeführt, um die Bearbeitung des neuer Prozesses freizugeben.
Bei einem weiteren Prozeßwechsel wiederholt siel der Vorgang in gleicher Weise, und es werden wieder se lange Taktimpulse Tl an das Cache abgegeben, bis de Inhalt des Dualzählers ZA mit der Nummer de: nächsten Prozesses übereinstimmt.
Hierzu 2 Blatt Zeichnungen

Claims (3)

Patentansprüche:
1. 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 dem Zentralprozessor angeordneten Pufferspeicher kleiner Speicherkapazität enthält, dadurch gekennzeichnet, daß der Pufferspeicher (CA) eine Mehrzahl von Speichereinheiten (SR) enthält, die jeweils aus Speicherelementen (SE) bestehen, daß die Anzahl der Speicherelemente (SE) gleich ist der größten Anzahl der zu bearbeitenden Prozesse, daß in jeweils einander zugeordneten Speicherelementen (SE) die jedem Prozeß zugeordneten Daten und die zugehörigen Adressen eingespeichert sind und daß eine mit dem Pufferspeicher (CA) und dem Zenlralprozessor (ZP) verbundene Steuerstufe (CS) vorgesehen ist, die nach jedem Wechsel des Prozesses die Speichereinheiten (SR) in der Weise steuert, daß die dem neuen Prozeß zugeordneten Daten und Adressen an Schreib-Lese-Stationen (SL) der Speichereinheiten (SR) abgegeben werden.
2. Arbeitsspeicheranordnung nach Anspruch 1, dadurch gekennzeichnet, daß als Speichereinheiten (SR) ringförmige Schieberegister vorgesehen sind.
3. Arbeitsspeicheranordnung nach Anspruch 2, dadurch gekennzeichnet, daß als Schieberegister (CCD) (Charge-Coupled DeviceJ-Speicherbausteine vorgesehen sind.
DE19752509869 1975-03-06 Arbeitsspeicheranordnung Expired DE2509869C3 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19752509869 DE2509869C3 (de) 1975-03-06 Arbeitsspeicheranordnung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19752509869 DE2509869C3 (de) 1975-03-06 Arbeitsspeicheranordnung

Publications (3)

Publication Number Publication Date
DE2509869A1 DE2509869A1 (de) 1976-09-23
DE2509869B2 DE2509869B2 (de) 1977-05-26
DE2509869C3 true DE2509869C3 (de) 1978-01-05

Family

ID=

Similar Documents

Publication Publication Date Title
DE1956604C3 (de) Datenverarbeitungsanlage
DE3151745C2 (de)
DE69132495T2 (de) Verteilter Verarbeitungsspeicher
DE3752287T2 (de) Registerzuweisung in einer Informationsverarbeitungsvorrichtung
DE3237224C2 (de)
DE4019135C2 (de) Serieller Speicher auf RAM-Basis mit parallelem Voraus-Lesen und Verfahren zum Speichern von Datenelementen in eine serielle Speichervorrichtung
DE2547488C2 (de) Mikroprogrammierte Datenverarbeitungsanlage
DE2302074A1 (de) Speicherschutzanordnung in einem multiprozessorsystem
EP0013737A1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE2154106A1 (de) Arbeitsspeicherwerk
CH627580A5 (de) Austauschanordnung zur bereitstellung von austauschadressen fuer den betrieb eines pufferspeichers in einer speicherhierarchie.
DE68924719T2 (de) Vorrichtung und Verfahren zur Ausführung eines Unterprogramms in einem Datenverarbeitungssystem mit Blockumschaltung.
DE69131917T2 (de) Cache-Speicher mit rekonfigurierbarer Blocklänge und Verfahren dafür
DE19822776A1 (de) Datenverarbeitungsvorrichtung
DE69410660T2 (de) Instruktionsspeichersystem für RISC-Mikroprozessor, fähig zu relativen Progammzahleradressierung
DE2221442A1 (de) Assoziativspeicher
DE2912073A1 (de) Stapelspeicheranordnung zur kurzzeitigen speicherung von informationen bei nichtabsetzbarkeit dieser informationen in einem datenverarbeitungssystem
DE3919802A1 (de) Speicherbaustein mit vektorprozessoren und einem skalarprozessor
DE3751252T2 (de) Mikroprozessor mit selektivem Cachespeicher.
EP0134822B1 (de) Digitalspeicher
DE4302754C1 (de) Monolithisch integrierte Datenspeicheranordnung und Verfahren zu deren Betrieb
DE2509869C3 (de) Arbeitsspeicheranordnung
DE3535215C2 (de)
EP0012207A1 (de) Speicherhierarchie mit Ladungsverschiebungsspeicher
DE69030368T2 (de) Tandem-Cache-Speicher