DE2509869B2 - Arbeitsspeicheranordnung - Google Patents
ArbeitsspeicheranordnungInfo
- Publication number
- DE2509869B2 DE2509869B2 DE19752509869 DE2509869A DE2509869B2 DE 2509869 B2 DE2509869 B2 DE 2509869B2 DE 19752509869 DE19752509869 DE 19752509869 DE 2509869 A DE2509869 A DE 2509869A DE 2509869 B2 DE2509869 B2 DE 2509869B2
- Authority
- DE
- Germany
- Prior art keywords
- memory
- cache
- data
- central processor
- units
- 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.)
- Granted
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
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 fto
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 Zentral- <>5
Prozessors zum Cache definiert wird, ist ein Maß für die Wirksamkeit des Caches. Unter der Annahme, daß das
Cache zu Beginn einer von der Datenverarbeitungseinrichtung 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. JOl.-
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 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 vorgesehen sind.
Im folgenden wird ein bevorzugtes Ausführungsbeispiel der Arbeitsspeicheranordnung gemäß der Erfindung
an Hand von Zeichnungen beschrieben. Es zeigt
F i g. 1 ein Blockschaltbild einer Arbeitsspeicheranordnung einer Datenverarbeitungseinrichtung,
F i g. 2 ein Blockschaltbild eines prozeßorientierten Pufferspeichers,
Fig.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 verhä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 befriedigen. 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 WO
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
CCD-Schieberegister sind beispielsweise in J. E. Carnes.W. l·. Kosnocky.J. M. Chambers und
D. J. Sauer: Charge-Coupled Devices für Computer Memories, Proc. National Computer Conference,
Chicago, 1974 beschrieben.
Der Steuerstufe CS wird die Nummer des nächsten zu bearbeitenden Prozesses durch ein Signal PN zugeführt.
Gleichzeitig wird ihr ein Signal PW zugeführt, das den
Wechsel eines Prozesses anzeigt. Die Steuerstufe CS gibt an das Cache Taktimpulse Tl ab, die ein
Verschieben des Inhalts der Speichereinheiten im Cache in Abhängigkeit von der Nummer des Prozesses
bewirken. Weiterhin gibt sie ein Signal R an den Zentralprozessor ab, wenn der dem neuen Prozeß
zugeordnete Inhalt am Ausgang des Caches zur Verfügung 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 Speicherstelle
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 F i g. 2 dargestellte Cache CA enthält eine Mehrzahl von Speichereinheiten, die aus jeweils 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 SDeicherelements SEdes 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 SR angeordnet ist Die Speicherkapazität ist durch die Schleifenlänge und die
Anzahl der Schieberegister SR festgelegt An jedem Schieberegister SR 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 Speicherelernents SE Bestandteil
des Schieberegisters sein oder zusätzlich außerhalb des Schieberegisters SR 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 SR 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 SR liegen, werden bei einem Prozeßwechsel die dem bearbeitenden Prozeß zugeordneten
Daten aus den Schreib-Lese-Stationen SL in die Schieberegister SR übertragen. Anschließend wird der
Inhalt aller Schieberegister SR 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
SR um einen fast vollständigen Umlauf so wek verschoben, daß bei einer Unterbrechung des Prozesses
wieder in die gleichen Speicherelemente SE, aus denen zuvor ausgelesen wurde, eingeschrieben wird. Falls
Schieberegister SR vorhanden sind, deren Inhalt nach beiden Richtungen verschoben wird, ist dieser Umlauf
nicht erforderlich.
Die in F i g. 3 dargestellte Steuerstufe CS dient dazu, nach einem Prozeßwechsel den Inhalt der Schieberegister
SR 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 SR. 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 s 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 UX zugeführt, dessen ;„
zweitem Eingang Taktimpulse TX zugeführt werden, die von einem Taktgeber TG erzeugt werden. Am
Ausgang des UND-Glieds Ut werden Taktimpulse Tl
erzeugt, die zum Verschieben des Inhalts der Schieberegister SR im Cache dienen. Gleichzeitig werden die ι ^,
Taktinipulse Tt einem UND-Glied t/2 zugeführt.
Dem UND-Glied t/2 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 >0
werden zum Ausgang des UND-Glieds t/2 durchgeschaltet und dem Dualzähler ZA zugeführt. Diese
Taktimpulse erhöhen den Inhalt des Dualzählers ZA so lange, bis er gleich ist der Prozeßnummer. In diesem Fall
nimmt das Signal R den Binärwert 1 an und über den Inverter N wird das UND-Glied UX gesperrt, da in der
Zwischenzeit so viele Taktimpulse Tl abgegeben wurden, daß die dem neuen Prozeß zugeordneten Daten
an den Lesestationen des Schieberegisters SR anliegen.
Gleichzeitig wird das UND-Glied Ul gesperrt, und
ein weiteres Zählen des Dualzählers ZA wird verhindert. Außerdem wird das Signal R dem Zentralprozessor
ZP zugeführt, um die Bearbeitung des neuen Prozesses freizugeben.
Bei einem weiteren Prozeßwechsel wiederholt sich der Vorgang in gleicher Weise, und es werden wieder so
lange Taktimpulse Tl an das Cache abgegeben, bis der Inhalt des Dualzählers ZA mit der Nummer des
nächsten Prozesses übereinstimmt.
Hierzu 2 Blatt Zeichnungen
5710
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 Speicher- ι ο kapazitä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 ι j
Anzahl der zu bearbeitenden Prozesse, daß in jeweils einander zugeordneten Speicherelementen
(SE)a\e Jedem Prozeß zugeordneten Daten und die zugehörigen Adressen eingespeichert sind und daß
eine mit dem Pufferspeicher (CA) und dem zo
Zentralprozessor (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 true DE2509869B2 (de) | 1977-05-26 |
DE2509869C3 DE2509869C3 (de) | 1978-01-05 |
Family
ID=
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3011552A1 (de) * | 1979-03-30 | 1980-10-09 | Honeywell Inc | Datenverarbeitungsanlage mit einem hauptspeicher sowie wenigsten einem datenprozessor mit zugeordnetem adressenumformer |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3011552A1 (de) * | 1979-03-30 | 1980-10-09 | Honeywell Inc | Datenverarbeitungsanlage mit einem hauptspeicher sowie wenigsten einem datenprozessor mit zugeordnetem adressenumformer |
Also Published As
Publication number | Publication date |
---|---|
DE2509869A1 (de) | 1976-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE1956604C3 (de) | Datenverarbeitungsanlage | |
DE3151745C2 (de) | ||
DE2560206C2 (de) | Speichersystem mit einem langsam arbeitenden Hauptspeicher großer Kapazität und mit zumindest einem schnell arbeitenden Pufferspeicher geringer Kapazität | |
DE3752287T2 (de) | Registerzuweisung in einer Informationsverarbeitungsvorrichtung | |
DE3237224C2 (de) | ||
DE2302074A1 (de) | Speicherschutzanordnung in einem multiprozessorsystem | |
CH627580A5 (de) | Austauschanordnung zur bereitstellung von austauschadressen fuer den betrieb eines pufferspeichers in einer speicherhierarchie. | |
EP0013737A1 (de) | Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem | |
DE2131066B2 (de) | Anordnung zum adressieren eines tabellenspeichers | |
DE3011552A1 (de) | Datenverarbeitungsanlage mit einem hauptspeicher sowie wenigsten einem datenprozessor mit zugeordnetem adressenumformer | |
DE2154106A1 (de) | Arbeitsspeicherwerk | |
DE69125874T2 (de) | Generator für mehrdimensionale Adressen und Anordnung zum Steuern desselben | |
DE2547488A1 (de) | Mikroprogrammierte datenverarbeitungsanlage | |
DE68928333T2 (de) | Pufferspeicher, der zur Speicherung von Befehls- und Datenblöcken auf verschiedene Blockgrössen geeignet ist | |
DE2221442A1 (de) | Assoziativspeicher | |
DE2912073A1 (de) | Stapelspeicheranordnung zur kurzzeitigen speicherung von informationen bei nichtabsetzbarkeit dieser informationen in einem datenverarbeitungssystem | |
EP0134822B1 (de) | Digitalspeicher | |
EP0012207B1 (de) | Speicherhierarchie mit Ladungsverschiebungsspeicher | |
DE4302754C1 (de) | Monolithisch integrierte Datenspeicheranordnung und Verfahren zu deren Betrieb | |
DE4323929A1 (de) | Software-geführtes Mehrebenen-Cache-Speichersystem | |
DE2509869C3 (de) | Arbeitsspeicheranordnung | |
DE3535215C2 (de) | ||
DE69030368T2 (de) | Tandem-Cache-Speicher | |
DE2509869B2 (de) | Arbeitsspeicheranordnung | |
DE2509835C3 (de) | Arbeitsspeicheranordnung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C3 | Grant after two publication steps (3rd publication) | ||
8339 | Ceased/non-payment of the annual fee |