DE2509869C3 - Arbeitsspeicheranordnung - Google Patents
ArbeitsspeicheranordnungInfo
- 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
Links
- 238000000034 method Methods 0.000 claims description 60
- 230000015654 memory Effects 0.000 claims description 46
- 230000003936 working memory Effects 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 3
- 229910004682 ON-OFF Inorganic materials 0.000 description 1
- 230000000875 corresponding Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000000717 retained Effects 0.000 description 1
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
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. 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
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)
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.
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 |