DE2509869B2 - Arbeitsspeicheranordnung - Google Patents

Arbeitsspeicheranordnung

Info

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
Application number
DE19752509869
Other languages
English (en)
Other versions
DE2509869A1 (de
DE2509869C3 (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
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE19752509869 priority Critical patent/DE2509869C3/de
Priority claimed from DE19752509869 external-priority 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

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/462Saving or restoring of program or task context with multiple register sets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking

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)

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 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.
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 true DE2509869B2 (de) 1977-05-26
DE2509869C3 DE2509869C3 (de) 1978-01-05

Family

ID=

Cited By (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
DE3237224C2 (de)
DE3011552C2 (de)
DE2547488C2 (de) Mikroprogrammierte Datenverarbeitungsanlage
DE2302074A1 (de) Speicherschutzanordnung in einem multiprozessorsystem
CH627580A5 (de) Austauschanordnung zur bereitstellung von austauschadressen fuer den betrieb eines pufferspeichers in einer speicherhierarchie.
DE2131066B2 (de) Anordnung zum adressieren eines tabellenspeichers
DE60205231T2 (de) Vorrichtung und verfahren zur effizienten zuteilung von speicherbandbreite in einem netzwerkprozessor
DE2331589A1 (de) Datenverarbeitungsanordnung
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE2221442A1 (de) Assoziativspeicher
DE2912073A1 (de) Stapelspeicheranordnung zur kurzzeitigen speicherung von informationen bei nichtabsetzbarkeit dieser informationen in einem datenverarbeitungssystem
EP0134822B1 (de) Digitalspeicher
DE4302754C1 (de) Monolithisch integrierte Datenspeicheranordnung und Verfahren zu deren Betrieb
DE2509869C3 (de) Arbeitsspeicheranordnung
DE3535215C2 (de)
EP0012207A1 (de) Speicherhierarchie mit Ladungsverschiebungsspeicher
DE2509869B2 (de) Arbeitsspeicheranordnung
DE2210333B2 (de) Speicheranordnung mit Schieberegistern
DE2509835C3 (de) Arbeitsspeicheranordnung
DE2750126A1 (de) Datenverarbeitungssystem mit einem zwischenpufferspeicher
DE2605617A1 (de) Schaltungsanordnung zum adressieren von daten
EP0257405B1 (de) Verfahren und Anordnung zum Aktualisieren von Steuerbitkombinationen

Legal Events

Date Code Title Description
C3 Grant after two publication steps (3rd publication)
8339 Ceased/non-payment of the annual fee