DE2429067B2 - Speicherschaltung - Google Patents

Speicherschaltung

Info

Publication number
DE2429067B2
DE2429067B2 DE2429067A DE2429067A DE2429067B2 DE 2429067 B2 DE2429067 B2 DE 2429067B2 DE 2429067 A DE2429067 A DE 2429067A DE 2429067 A DE2429067 A DE 2429067A DE 2429067 B2 DE2429067 B2 DE 2429067B2
Authority
DE
Germany
Prior art keywords
memory
register
circuit
data
registers
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
DE2429067A
Other languages
English (en)
Other versions
DE2429067C3 (de
DE2429067A1 (de
Inventor
Robert Albert Endicott Healey
Everett Montague Endwell Shimp
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2429067A1 publication Critical patent/DE2429067A1/de
Publication of DE2429067B2 publication Critical patent/DE2429067B2/de
Application granted granted Critical
Publication of DE2429067C3 publication Critical patent/DE2429067C3/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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Complex Calculations (AREA)

Description

Die Erfindung betrifft eine Speicherschaltung, bei der die zuletzt eingespeicherten Daten zuerst wieder abgegeben werden mit einem dateneingabeseitig angeordneten, mit einer Vielzahl von einzeln aneinandergereihten Registern ausgestatteten Schnellspeicher und einem mit einer Vielzahl von einzeln aneinandergereihten Registern ausgestatteten langsameren Hauptspeicher zur Aufnahme der Daten aus den Registern des Schnellspeichers bei Datenüberfluß im Schnellspeicher.
Bei Speicherschaltungen dieser Art dient der langsamere Hauptspeicher dazu, im Falle des DatenüberHusses die überschüssigen Daten aus dem Schnellspeicher vorübergehend aufzunehmen, bis wieder Platz im Schnellspeicher ist. Auf diese Weise ist es möglich, Datenmengen zu verarbeiten, die über die Kapazität des Schnellspeichers hinausgehen.
Bei einer bekannten Speicherschaltung dieser Art werden die überschüssigen Daten, die in den Hauptspeicher abgespeichert worden sind, an den Schnellspeicher zurückgerufen, wenn von dort aus Datenausgabe stattfindet. Das hat zur Folge, daß unter Umständen bei jeder Datenausgabe eine Rückübertragung vom Hauptspeicher zum Schnellspeicher stattfinden muß, und dadurch wird der Zugriff zu der Speicherschaltung im Durchschnitt verlängert.
Aufgabe der Erfindung ist es, eine Speicherschaltung der eingangs genannten Art so auszugestalten, daß auch, wenn Daten in den Hauptspeicher abgespeichert worden sind, der Zugriff im Durchschnitt möglichst niedrig ist.
Die Erfindung ist gekennzeichnet durch folgende Merkmale:
a) Die Dateneingabe erfolgt in die Register des Schnellspeichers in der zyklischen Reihenfolge der Register;
b) die Übertragung bei Überfluß an den Hauptspeicher erfolgt unter Beibehalt der Reihenfolge erst dann, wenn eine Dateneingabe für die Speicherschaltung ansteht und alle Register des Schnellspeichers mit Daten bespeichert sind, die noch nicht ausgegeben wurden;
c) die bei Übertragung gemäß Merkmal b) anstehende Dateneingabe wird bis zur erfolgten Übertragung in einem dafür vorgesehenen Zwischenspeicher zwischengespeichert;
d) die an den Hauptspeicher übertragenen Daten bleiben in den Registern des Schnellspeichers für Datenausgabe verfügbar, bis sie von einer neuen Dateneingabe überspeichert werden;
e) bei Übertragung an den Hauptspeicher werden die Daten auf allen Registern des Schnellspeichers an den Hauptspeicher übertragen;
f) die Rückübertragung der Daten aus den Registern des Hauptspeichers an den Schnellspeicher erfolgt, wenn die Daten aller Register des Schnellspeichers ausgegeben sind;
g) die Rückübertragung erstreckt sich nur auf diejenigen Daten, deren Duplikate nicht in der Zwischenzeit direkt aus dem Schnellspeicher abgegeben worden sind.
Nach der Erfindung erfolgt die Übertragung vom Schnellspeicher zum Hauptspeicher und die Rücküber-
tragung vom Hauptspeicher zum Sehnellspeicher immer erst dann, wenn die Datenbeschickung des Schnellspeichers kein weiteres Zuwarten hinsichtlich dieses Übertragungsvorganges mehr zuläßt. Diese Übertragungen erfolgen also immer »im letzten Moment« und auf diese Weise wirU statistisch die Anzahl der erforderlichen Übertragungsvorgänge auf ein Minimum reduziert und da die durch die weggefallenen Übertragungsvorgänge erforderlichen Wartezeiten wegfallen, wird der Zugriff im Durchschnitt schrsiiler.
Unter diesem Gesichtspunkt ist auch von Bedeutung die Tatsache, daß nicht alle Daten, die in den Hauptspeicher abgespeichert worden sind, wieder rückübertragen werden müssen, wodurch man auch Übertragungszeit einspart und damit den Zugriff begünstigt.
Eine Weiterbildung, die sich durch besonders einfache Gewinnung der für die Übertragung und Rückübertragung erforderlichen Adressen auszeichnet, ist dadurch gekennzeichnet, daß drei Register vorgesehen sind, von denen das erste Register den Wert eines Zeigers mitzählt, der die Ordnungszahl desjenigen Registers des Schnellspeichers anzeigt, in dem sich die zuletzt in die Speicherschaltung eingespeicherten Daten befinden und von denen das zweite Register den Wert eines zweiten Zeigers mitzählt, der die Ordnungszahl desjenigen Registers anzeigt, das von allen Registern des Schnellspeichers die ältesten in die Speicherschaltung eingespeisten Daten enthält und von denen das dritte Register den Wert eines Zeigers mitzählt, der die Ordnungszahl desjenigen Registers des Schnellspeichers anzeigt, die von allen Registern des Schnellspeichers die ältesten in die Speicherschaltung eingespeisten Daten enthält, von denen kein Duplikat in den Registern des Hauptspeichers vorhanden ist.
Die Erfindung wird nun anhand der Zeichnung näher erläutert.
In der Zeichnung zeigt
F i g. 1 eine Speicherschaltung nach der Erfindung,
F i g. 2a und 2b die Schaltungsmittel zur Adressierung bei Übertragung und Rückübertragung zu dem in F i g. 1 dargestellten Ausführungsbeispiel und die
Fig.3 bis 8 tabellarisch den sich bei Übertragungsund Rückübertragungsoperationen ergebenden Speicherinhalt in den Registern des Schnellspeichers und des Hauptspeichers bei dem in F i g. 1 dargestellten Ausführungsbeispiel.
In der nachfolgenden Figurenbeschreibung ist, um den Unterschied deutlich zu machen, von einer »Speichereingabe« beziehungsweise »Speicherausgabe« die Rede, wenn es sich darum handelt, Daten in die Speicherschaltung von außen einzugeben oder nach außen abzugeben. Zum Unterschied davon ist, wenn es sich um die Datenübertragung beziehungsweise Rückübertragung zwischen Schnellspeicher und Hauptspeicher handelt, von einem »Einroll«- beziehungsweise »Ausrollvorgang« gesprochen.
Gemäß F i g. 1 ist mit 3 ein Hauptspeicher, mit 11 eine arithmetische Logikeinheit und 1 ein einem datenverarbeitenden Gerät zugeordneter Schnellspeicher bezeichnet. Das /4-Register 10 und das S-Register 9 sind Eingaberegister der Logikeinheit 11 und das Z-Register 12 ist Ausgaberegister der Logikeinheit 11. Bei dem datenverarbeitenden Gerät handelt es sich um ein solches, dessen Mikroprogrammroutinen durch Steuerwörter gesteuert werden, die in dem Steuerspeicher 30 gespeichert sind. Wenn ein Steuerwort aus dem Steuerspeicher 30 ausgelesen wird, gelangt es in das Steuerregister 31. Der Steuerdecoder 32 dient dazu, das datenverarbeitende Gerät aufgrund eines Steuerwortes aus dem Steuerregister 31 anzusteuern. Der Steuerdecoder 32 und ein nicht dargestellter Taktgeber tasten nicht dargestellte Torschaltungen, um Rechnungen durchzuführen und Datenpfade, über die die Datenübertragung innerhalb des Systems vollzogen wird, einzurichten.
ίο Das datenverarbeitende Gerät arbeitet mit einem Speicherstapel 2, des Schnellspeichers 1, der dazu dient, Operatoren und Operanden zu speichern. Außerdem arbeitel das datenverarbeitende Gerät mit einem Speicherstapel 4 des gegenüber dem Schnellspeicher 2 langsameren Hauptspeichers 3. Dieser Speicherstapel 4 dient dazu, den Überfluß aus dem Schnellspeicher 1 zu speichern. Im dargestellten Ausführungsbeispiel umfaßt der Speicherstapel 2 die Register HSO bis HS 15, die im folgenden »Lokalisationen« genannt sind.
Der Zugriff zum Speicherstapel 2 erfolgt seitens des Stapelspitzenzeigers STP über die Oder-Schaltung 22 und die UND-Schaltung 23. Im übrigen erfolgt der Zugriff zum gesamten Schnellspeicher I über die Adressenkabel 26, 26a, 26b, mit denen die UND-Schaltungen 24,25,25a angesteuert werden, die ihrerseits die ODER-Schaltung 22 ansteuern.
Der Stapelspitzenzeiger STP'm dem Register 101 aus F i g. 2a vollzieht nur den Zugriff zum Speicherstapel 2, während der Speichereingabeoperation und der Speicherausgabeoperation. Alle anderen Zugriffe zum Schnellspeicher 1 erfolgen über die Adressenkabel 26, 26a und 26b.
Der Hauptspeicher 3 weist eine Vielzahl von Wortlokalisationen für Speichereingaben einschließlich der Stapellokalisationen MSO bis MS N auf. Über ein Eingabe-Ausgabe-Speicherdatenregister (SDR) 8 und das Kabel 17 wird ein Datenpfad für Operatoren und Operanden gebildet, der vom Schnellspeicher 1 zum Hauptspeicher 3 und zum A-Register 10 führt. Während der sogenannten Einrolloperationen, während derer Daten vom Speicherstapel 4 zum Speicherstapel 2 gelangen, werden die Daten direkt über das Kabel 17 an den Schnellspeicher 1 gegeben. Über das Kabel 18 gelangen aus dem Z-Register 12 sofort die Ergebnisse aus der Logikeinheit 11 in den Speicherstapel 2 beziehungsweise an das ,4-Register 10 oder das B-Register 9 für die weitere Verarbeitung.
Der Schnellspeicher 1 weist eine Vielzahl von Wortpositionen für Speichereingaben auf einschließlich
so der Lokalisation HSO bis HS 15. Informationen aus dem Schnellspeicher 1 werden über das Kabel 20 ausgelesen und gelangen an das /4-Register 10 oder an das ß-Register 9. Diese Informationen werden dann an die Logikeinheit 11 weitergeleitet und dort verarbeitet. Der Ausgang des A-Registers 10 ist über eine UND-Schaltung 14 an das Operationsregister 13 angeschlossen, wenn Speicherausgabe eines Operators aus dem Speicherstapel 2 erfolgt. Die Ausgabe des -4-Registers 10 gelangt über das Kabel 21 und die UND-Schaltung
W) 16a sowie das SDÄ-Register 8 an den Speicherstapel 4 des Hauptspeichers 3 wenn eine Ausrolloperation stattfindet. Das Kabel 21 und die UND-Schaltung i6b bilden einen vom /4-Register 10 zum Hauptspeicher 3 führenden Datenpfad für Datenspeicheroperationen,
hi die nicht im Speicherstapel stattfinden sollen.
Zur Adressierung des Hauptspeichers 3 dient ein Hauptspeicheradressenregister (SAR) 5. Die Ausgabe des ß-Registers 9 gelangt über das Kabel 19 und die
UND-Schaltung 15a während einer Einrolloperation an das S4/?-Register 5. Bei einer Ausrolloperation ist das S-Register9überdas Kabel 19 und die UND-Schaltung 15candas S/4/?-Register 5 angeschlossen. Die nicht zum Spuicherstapel gehörigen Teile des Hauptspeichers 3 werden durch das ß-Register 9 über das Kabel 19 und die UND-Schaltung 156, die an das S/t/?-Register 5 angeschlossen ist, adressiert. Die Mikroprogrammdecoderleitungen 182,183,184 steuern die UND-Schaltungen 15a, 15i>, 15 c, 16a und 166 an.
In den Fig.2a und 2b sind die Schaltungsteile dargestellt, die nötig sind, um den Speicherstapel 2 des Schnellspeichers 1 zu adressieren und zu steuern.
Der Speicherstapel 2 erfordert 2" Eingangspositionen, damit ein ökonomischer zyklischer Adrcsscnaufdaticrungsmechanismus in den Registern 101,102 und in den Inkrementoren 103, 104 und dem Dekrementor 105 für die Stapelspitzenzeiger ST1P und 5VP stattfinden kann. Nur zum Zwecke der Erläuterung sind für den Speicherstapel 2, 24, also 16 Eingänge entsprechend den 16 Lokalisationen WSO bis HS 15 vorgesehen.
Das Register 102 enthält normalerweise einen Zeiger SVP auf dem frühesten gültigen Eingang des Speicherstapels 2. Wie weiter unten noch dargelegt, gibt es einen ganz besonderen Umstand, unter dem das Register 102 nicht diesen gültigen Eingang anzeigt. Das Register 101 enthält einen Zeiger S7"P auf dem letzten gültigen Eingang des Speicherstapels 2, also der Stapelspitze.
Das Register 106 enthält einen Zeiger SPP auf dem frühesten gültigen Eingang des Speicherstapels 2, für den keine Duplikatkopie im Speicherstapel 4 vorgesehen ist. Ganz anders als die Register 101 und 102 zeigt das Register 106 häufig auf einen ungültigen Eingang.
Wenn das Register 106 auf einen gültigen Eingang im Speicherstapel 2 zeigt, dann war dies der erste Eingang, auf den eine Speichereingabe im Speicherstapel 2 stattfand, nachdem alle Eingänge des Speicherstapels 2 in den Speicherstapel 4 ausgerollt worden sind. Wenn das Register 106 auf einen ungültigen Eingang im Speicherstapel 2 zeigt, dann ist das eine Position, über die zuvor in den Speicherstapel 4 ausgerollt wurde und aus der später Speicherausgabe vom Speicherstapel 2 erfolgte, ohne daß eine Einrolloperation stattgefunden hat.
Da die Arbeitsweise der Schaltelemente aus Fig. 2a und 2b eine Vielzahl von verschiedenen Folgen und Voraussetzungen berücksichtigen muß, sind eine Vielzahl von UND-Schaltungen 107 bis 112 und 201 bis 207 vorgesehen, die von aufeinanderfolgenden Taktsignalen Π bis T 4 angesteuert werden.
Die Vergleicherschaltung 113 vergleicht den in dem Inkrementor 103 um + 1 vermehrten Wert des Zeigers STP aus dem Register 101 mit dem Wert des Zeigers SVP im Register 102. Wenn diese beiden Werte gleich sind (also wenn STP+1 ^SVP) dann leitet die UND-Schaltung 114 den Wert des Zeigers SVPaus dem Register 102 vermehrt um + 1 in dem Inkrementor 104 also SVP+1 an die UND-Schaltung 111 und über das 5VA/-Kabel 117 an die Vergleichsschaltung 224. Wenn eine Speichereingabeoperation durchgeführt ist, dann gelangt durch die UND-Schaltung 111 der Wert SVP+1 in das Register 102. Die auf diese Weise vorgenommene Weiterschaltung des Zeigers SVP in dem Register 102 zeigt an, daß durch die Speichereingabeoperation ein Eingang des Speichcrstapels, der zuvor an den Speicherstapei 4 ausgerollt wurde, mit einem neuen gültigen Eingang gespeichert wird.
Die Vergleichcrschaltung 115 entscheidet, ob STP+ I = SPP ist. Wenn diese beiden Werte gleich sind, dann gelangt über die UND-Schaltung 116 der Wert des Zeigers STPim Register 101, der auf dem ST-Kabel 119 vorliegt, an die Eingangsseite der UND-Schaltung 112 und über das SPAAKabcl 118 an die Vergleicherschaltung 220. Wenn eine Speicherausgabeoperation durchgeführt ist und die Bit-T-Kippschaltung 208 auf T=I vorwärts geschaltet ist, dann gelangt ein Signal auf der T-Leitung 209 an die UND-Schaltung 112, die daraufhin
ίο den Wert STP auf der SPA/-Leitung 118 in das SPP-Register 106gelangen läßt.
Wenn der Wert des Registers 101 auf diese Weise in das Register 106 eingespeist wird aufgrund einer Speicherausgabeoperation, dann entspricht das einem
!5 Herabzählcn des Registers J06 um einen Wert, also SPP neu ist = SPPaIt — 1. Dies kann nur stattfinden unter der Bedingung SPP=STP+\. Hierbei handelt es sich um den obenerwähnten Umstand, unter dem der Zeiger SPP im Register 106 einen ungültigen Eingang im Speicherstapel 2 anzeigt.
Die Bit-T-Kippschaltung 208 wird durch die UND-Schaltung 204 während einer Speicheroperation vorwärts geschaltet, wenn die Vergleicherschaltung 210 anzeigt, daß der Wert auf dem ST-Kabel 119 dem Wert aufdemSP-Kabel 120 gleicht, also STP=SPPgWl.
Die Bit-T-Kippschaltung 208 wird zurückgeschaltet durch die UND-Schaltung 205, während einer Speichereingabeoperation, und zwar über die C-Leitung 121 dann, wenn die Vergleicherschaltung 115 anzeigt, daß srp-i-i=sppgiit.
Die Bit-T-Kippschaltung 208 hat zwei Aufgaben. Die eine Aufgabe besteht darin, über die T-Leitung 209 den Wert aus dem STP-Register 101 in das SPP-Register 106 zu leiten. Das darf nicht stattfinden ehe der
J5 STP-Zeigerwert den Wert des SPP-Zeigers angenommen hat. Demzufolge wird die Bit-T-Kippschaltung 208 nicht vorwärts geschaltet wenn nicht die Vergleicherschaltung 210 anzeigt, daß STP=SPPgUt.
Die andere Aufgabe der Bit-T-Kippschaltung 208 besteht darin, das Ausrollsignal zu blockieren. Wenn auf der Leitung 209 ein Bit-T=I vorliegt, dann kann die Ausrollkippschaltung 211 nicht über die UND-Schaltungen 207 und 212 vorwärts geschaltet werden. Wenn dagegen ein Bit-T=O auf der Leitung 213 vorliegt und auf der C-Leitung 121 angezeigt wird, daß STP+1 = SPP ist, dann schalten die UND-Schaltungen 207 und 212 die Ausrollkippschaltung 2111 während einer Speichereingabeoperation vorwärts.
Wie aus der Folge der Taktsignale ersichtlich, wird die Ausrollkippschaltung 211 durch die UND-Schaltung
207 vorwärts geschaltet, ehe die Bit-T-Kippschaltung
208 durch die UND-Schaltung 205 zurückgeschaltet ist. Die Bedingung für das Ausrollsignal wird also geprüft, bevor die Bit-T-Kippschaltung 208 umgestellt wird. Das
Vt bedeutet, daß, wenn die Bit-T-Kippschaltung 208 während einer Speichereingabeoperation zurückgeschaltet wird, nicht etwa irrlümlich ein Ausrollsignal abgegeben wird. Die Ausrollkippschaltung 211 wird am Ende einer jeden Ausrollroutine zurückgeschaltet.
wi We in die Ausrollkippschaltung 211 vorwärts geschaltet vird, dann ist dies ein Zeichen dafür, daß alle Eingänge des Speicherstapels 2 gültig sind und keiner von diesen Eingängen an den Speicherstapel 4 ausgerollt wurde und eine Spcichercingabeoperation
ΐι·. gerade stattfindet.
Wenn auf der Leitung 214 keine Anzeige darüber vorliegt, daß die Kippschaltung 211 vorwärts geschaltet ist, dann blockiert die Blockicrschaltung 122 nicht
während einer Speichereingabeoperation die UND-Schaltung 108. Die Folge ist, daß die UND-Schaltung 108 und die ODER-Schaltung 123 die UND-Schaltung 23 ansteuern, um den Wert des Zeigers STP über die ODER-Schaltung 22 in das Adressenregister 27 des Schnellspeichers 1 gelangen zu lassen.
Wenn die Ausrollkippschaltung 211 vorwärts geschaltet ist, dann wird über die Leitung 214 die Blockierschaltung 122 veranlaßt, die erwähnten Operationen zu blockieren. Statt dessen steuert während dieser Speichereingabeoperation die Leitung 214 über die UND-Schaltung 286 die UND-Schaltung 24 an, um die Adresse des Registers 28 aus dem Register 28a über die ODER-Schaltung 22 an das Adressenregisler 27 zu leiten. Da die Speichereingabeoperation, die die is Ausrollkippschaltung 211 vorwärts geschaltet hat, vollendet sein muß, ehe die Ausrollroutine begonnen werden kann, wird ein Wiederan'aufregister 28 im Schnellspeicher 1 benötigt, um den Eingang aufzunehmen, der eingespeichert werden soll, wenn keine » Speicherpositionen im Speicherstapel 2 verfügbar sind.
Während einer Speicherausgabeoperation liegt immer ein gültiger Eingang im Speicherstapel 2 vor. Die UND-Schaltung 107 sowie die ODER-Schaltung 123 steuern deshalb die UND-Schaltung 23 an, so daß der Wert des Zeigers STP aus dem Register 101 über die ODER-Schaltung 22 an das Adressenregister 27 gelangt. Alle anderen Werte für das Adressenregister 27 werden zugeliefert von dem Kabel 26 über die ODER-Schaltung 22, dann, wenn die UND-Schaltung 25 durch die ODER-Schaltung 124 aufgetastet ist, oder aber vom Kabel 26a, wenn die UND-Schaltung 25a durch ein Mikroprogrammdecodersignal auf der Leitung 183 aufgetastet ist oder über das Kabel 26b, wie oben beschrieben. Bei dem Mikroprogrammdecodersignal auf der Leitung 183 handelt es sich um das Signal »Kein Stapelzugriff«.
Die Einrollkippschaltung 215 zeigt an, daß der letzte gültige Eingang des Speicherstapels 2 während der gegenwärtigen Speicherausgabeoperation entfernt wird. Die Kippschaltung 215 wird durch die UND-Schaltung 203 vorwärts geschaltet während einer Speicherausgabeoperation, sofern die Vergleicherschaltung 216 über das SV-Kabel 125 und das SF-Kabel 119 feststellt, daß STP=- SVP gilt. Dieser Umstand tritt auf, wenn der letzte gültige Eingang des Speicherstapels 2, wie durch denSTP-Zeigerim.RegisterlOl angezeigt und der erste gültige Eingang im Speicherstapel 2, wie durch den SW-Zeiger im Register 102 angezeigt, unter sich gleich sind. Die Einrollkippschaltung 215 wird am Ende einer jeden Einrollroutine zurückgeschaltet.
Das MS/4-Register 29 des Schnellspeichers 1 enthält den Hauptspeicheradressenwert oder den Zeiger MSA, der dazu dient, den Speicherstapel 4 zu adressieren, und zwar sowohl während einer Einrollroutine als auch während einer Ausrollroutine. Im Falle einer voraufgehenden Ausrollroutine adressiert der Zeiger MSA den letzten Eingang der vom Speicherstapel 2 an den Speicherstapel 4 übertragen wurde.
Wenn die vorausgegangene Operation eine Einroll· t> <> routine war, dann adressiert der Zeiger MSA den ersten Eingang der vom Speicherstapel 4 an den Spcichcrstapel 2 übertragen wurde.
Das MS4-Register 29 wird nur während einer Ausrollroutinc oder einer Einrollroutinc aufdaticrl und b5 deshalb nicht geändert, während eine Speichereingabe oder eine Speicherausgabe am Speicherstapcl 2 stattfindet. Durch diese Stapelimplcmcntieriing ist es möglich, daß Eingänge, die zuvor an den Speicherstapel 4 ausgerollt wurden, vom Speicherstapel 2 im Zuge einer Speicherausgabe ausgegeben werden, ohne daß dazu eine besondere Einrolloperation stattfindet, und dann überlagert werden können mit neuen Eingaben, aufgrund einer Speichereingabeoperation. Außerdem erlaubt diese Implementierung der Speicherstapel, daß Eingänge, die aus dem Speicherstapel 4 in den Speicherstapel 2 eingerollt wurden, mit neuen Eingängen aufgrund einer Speicherabgabeoperation überlagert werden, ehe diese Eingänge einer Speicherausgabe unterworfen worden sind. Der Wert des MS/4-Registers
29 wird aufdatiert, bevor er während einer Ausroll- oder Einrollroutine verwendet wird.
Für den Fall einer Ausrollroutine wird die Notwendigkeit, das MS/4-Register 29 aufzudatieren, durch die Bit-P-Kippschaltung 218 angezeigt. Wenn auf der Ausgangsleitung 214 der Kippschaltung 211 eine logische Eins vorliegt, dann wird in dem Steuerspeicher
30 eine Mikroprogrammroutine über den Speicher 34 ausgewählt, die dazu dient, das MS4-Register aufzudatieren, ehe die Eingänge vom Speicherstapel 2 an den Speicherstapel 4 ausgerollt werden. Die Routine überprüft den Schaltzustand der Bit-P-Kippschaltung 218, um den Wert, um den das MS-4-Register 29 aufdatiert werden muß, zu errechnen.
Die Kippschaltung 218 wird während einer Speicherausgabeoperation durch die UND-Schaltung 206 vorwärts geschaltet, wenn die Vergleicherschaltung 219 anzeigt, daß auf dem SP-Kabel 120 eine Null vorliegt, was der Fall ist, wenn der Zeiger SPP im Register 106 die Lokalisation HSO im Speicherstapel 2 anzeigt, und wenn außerdem die Vergleicherschaltung 220 anzeigt, daß auf dem SPN-Kabel 118 ein Wert entsprechend 15 vorliegt, was der Fall ist, wenn die Lokalisation HS 15 im Speicherstapel angezeigt wird und wenn außerdem die T-Leitung 209 eine logische Eins aufweist, die anzeigt, daß der Wert auf dem S/W-Kabel 118 an das SPP-Register 106 gelangt.
Die Bit-P-Kippschaltung wird vorwärts geschaltet, wenn während der Speicherausgabeoperation der Wert des Zeigers SPP im Register 106 bei Verminderung die Grenze zum sechzehnten Eingang überschreiten würde. Der Wert des SPP-Zeigers im Register 106 wird dann Null, und der neue Wert, der dann in dem Register 106 infolge Verminderung um eine Einheit entsteht, ist 15.
Da das MS/4-Register 29 sowohl während der Einrollals auch während der Ausrollroutine aufdatiert wird, ist die Bit-P-Kippschaltung 218 über die ODER-Schaltung 221 zurückgeschaltet, beim Ende sowohl einer Einrollals auch einer Ausrollroutine, und zwar durch ein Mikroprogrammdecodersignal auf der Leitung 180 oder 181.
Die richtige Startadrcssc für den Speichcrstapcl 4 während einer Ausrollroutine ergibt sich nach der Beziehung:
yv= MOdUIo16[MSzIo+ 1 -(P ■ 16)]+ SPP.
In dieser Gleichung nimmt SPPcincn Wert zwischen 0 und 15 an, das ist der Wert, den der Zeiger SPP im Register 106 hat.
Her Zeiger SPP zeigt immer die richtige Lage innerhalb der Gruppe von 16 Eingängen des Speicherstapels 2 zu der Zeit an, während eine Ausrolloperation signalisiert wird. MSAu ist der Wert im Register 29 während MSAu der aufdatierte Wert von MSA ist, der zum Adressieren des Speichcrstapels 4 dient. P ist ein Bit-Wert, der den Schaltzustand der Bit-P-Kippschul-
tung 218 kennzeichnet und den Wert 1 annimmt, wenn auf der Leitung 22 eine 1 vorliegt, was der Fall ist, wenn die Bit- P- Kippschaltung 218 vorwärts geschaltet ist, anderenfalls ist P=O. Die Werte P und SPP gelangen geschaltet durch mikroprogrammgesteuerte Torschaltungen, die nicht dargestellt sind, an das /4-Register 10 beziehungsweise an das ß-Register 9.
Die Notwendigkeit für eine Aufdatierung des MSA-Registers 29 für eine Einrollroutine wird durch die Bit- V-Kippschaltung 223 angezeigt. Die Rückschaltung ίο oder Vorwärtsschaltung der Bit-V-Kippschaltung 223 hängt davon ab, ob oder ob nicht der Wert des Zeigers SVP'im Register 102 von 0 auf 1 wechselt während einer Speicherausgabeoperation.
Wenn die Vergleicherschaltung 225 feststellt, daß auf dem SV-Kabel 125 eine 0 vorliegt und die Vergleicherschaltung 224 stellt fest, daß auf dem SV/V-Kabel 117 eine 0 vorliegt, dann zeigt die UND-Schaltung 226 an, daß der Wert des Zeigers SVP von 0 auf 1 wechselt. Wenn diese Anzeige während einer Speicherausgabeoperation stattfindet, dann schaltet die UND-Schaltung 202 die Bit- V-Kippschaltung 223 zurück, wenn ein Mikroprogrammdecodersignal an die Eingabeleitung 185 gelangt.
Wenn die UND-Schaltung 226 anzeigt, daß der Wert des Zeigers SVPvon 0 auf 1 wechselt, dann blockiert die Blockierschaltung 227 die UND-Schaltung 201 und die ODER-Schaltung 228, so daß die Bit- V-Kippschaltung 223 nicht vorwärts geschaltet werden kann.
Wenn die UND-Schaltung 201 nicht blockiert ist durch die Blockierschaltung 227 und die UND-Schaltung 212 zeigt an, daß eine Ausrolloperation signalisiert wird, dann wird die Bit-V-Kippschaltung 223 durch die UND-Schaltung 201 und die ODER-Schaltung 228 vorwärts geschaltet. Die Bit-V-Kippschaltung 223 ist außerdem über die ODER-Schaltung 228 vorwärts geschaltet am Ende einer Einrollroutine, und zwar durch ein Mikroprogrammdecodersignal auf der Leitung 181.
Die Bit-V-Kippschaltung 223 dient deshalb, daran zu erinnern, daß der Eingang in den Speicherstapel 2 eingespeichert wurde und daß diese Speichereingabe einer Grenzüberschreitung zum sechzehnten Eingang entspricht.
Aus diesem Grunde ist die richtige Startadresse für den Speicherstapel 4 während einer Einrollroutine
MSAn
\6)] + STP
aufdatiert.
In dieser Gleichung bedeutet V die Anzeige des Schaltzustandes der Bit- V-Kippschaltung 223. Der Wert von Vist 1 wenn die Bit- V-Kippschaltung 223 vorwärts geschaltet ist, anderenfalls ist er 0.
Der Wert des Zeigers STPzwischen 0 und 15 in dem Register 101 kennzeichnet die Lokalisation im Speicherstapel 2 und das ist eine Einheit weniger als die Lokalisation aus der dieser Eingang gerade ausgespeichert wurde, da die Speicherausgabeoperation, die eine Reduzierung des Wertes des Registers 101 durch die in der Dekrcmentorschaltung 105 und die UND-Schaltung 110 verursacht vollendet wird, ehe die Einrollroutine startet. Bei Beginn werden die Register 29, 101, 102 und 106 sämtlichst auf 0 geschaltet und die Kippschaltungen 208,2111215,218 und 223 werden zurückgeschaltet.
liine Spcichcriiusgabeoperation löst die Durchführung eines Mikroprogramniworlus aus. Eine Funktion es die während einer Spcichcmusgabcopcnilion durchgeführt wird, besteht darin, daß ein Operanden- oder Opcralor-F.ingiing vom Speichcrsiapel 2 an das ß-Register 9 oder das /4-Register 10 gelangt. Im Falle, daß der Eingang ein Operator ist, wird der Eingang über die UND-Schaltung 14 in das Operationsregister 13 gesteuert. Im Falle, daß der Eingang ein Operand ist, wird er in dem ß-Register 9 oder /t-Register 10 aufbewahrt, bis ein zweiter Operand in dem anderen Register 9 oder 10 gespeichert ist und der zu exekutierende Operator in dem Operationsregister 13 steht. Die logische oder arithmetische Funktion, die aufgrund dieser Operanden durchgeführt werden soll, wird dann durchgeführt.
Die Ergebnisse der arithmetischen und logischen Funktion aufgrund der Operanden in den Registern 9 und 10 gelangen in das Z-Register 12. Während einer anschließenden Operation werden diese Ergebnisse im Register 12 entweder an die Spitze des Speicherstapels 2 transportiert, und zwar durch eine Speichereingabeoperation, oder über das Kabel 18 in das Register 9 oder 10. Im letztgenannten Fall, wenn also die Ergebnisse vom Register 12 in die Register 9 oder 10 gespeist werden, dienen die Ergebnisse als Eingang für die nächste arithmetische oder logische Funktion.
In manchen Fällen ist der vom Speicherstapel 2 ausgegebene Eingang die Adresse von Daten, die in den nicht zum Speicherstapel gehörigen Teilen des Hauptspeichers 3 gespeichert werden sollen. In diesem Fall wird der Eingang in das ß-Register 9 gegeben und die Adresse gelangt dann in das Speicheradressenregister 5 des Hauptspeichers 3, und zwar über die UND-Schaltung 156. Ein Dateneingang, der an das /4-Register IO während einer voraufgehenden (oder nachfolgenden) Speicherausgabeoperation an das 4-Register 10 übertragen wird, wird dann über das Kabel 21 sowie die UND-Schaltung 166 an die ausgewählte Adresse im Hauptspeicher 3 übertragen. Alternativ wird die im Adressenregister 5 vorgesehene Adresse über das ß-Register 9 benutzt, um die Daten aus den Bezirken des Hauptspeichers 3 auszulesen, die nicht zum Speicherstapel gehören, und zwar auszulesen in das /4-Register 10. Dieser Eingang in das /4-Register 10 wird dann in einer logischen und arithmetischen Funktion in Abhängigkeit von dem im Register 13 befindlichen Operator verarbeitet.
Adressen, die in das ß-Register 9 ausgegeben wurden zum Zugriff für den Hauptspeicher 3, dienen auch dazu, Eingänge aus dem nicht zum Speicherstapel gehörigen Teil des Hauptspeichers zugänglich zu machen, welche Eingänge dann über das Kabel 17 an den Speicherstapel 2 ausgegeben werden.
Im folgenden wird eine Ausrollroutine näher beschrieben. Es sei angenommen, daß bei Beginn einer Speichereingabeoperation die Bit-T-Kippschaltung 208 zurückgeschaltet ist, sich also in ihrem O-Zustand befindet, und die Vergleicherschaltung 115 anzeigt, daß STP+ 1 = SPP ist. Die Ausrollkippschaltung 211 wird d?nn über die UND-Schaltung 207 und 212 vorwärts geschaltet.
Auch die Bit-V-Kippschaltung 223 wird über die UND-Schaltung 202 zurückgeschaltet, wenn die UND-Schaltung 226 und die Vergleicherschaltung 224 und 225 anzeigen, daß der Wert des Zeigers SVPdabei ist, von 0 auf I während der gegenwärtigen Speichereingabeope-1 ation umzuwechseln. Alternativ wird die Bit-V-Kippschaltung 223 während dieser Spcichereingabcopcralion über die UND-Schaltung 201 sowie die ODER-Schaltung 228 vorwärts geschähet, weil die UND-Schallung 212 signalisiert, daß eine Ausrollroutine stattfindet und die Hlockiersdialliing 227 die UND-Schaltung 201
dabei nicht blockiert.
Wenn die Vergleicherschaltung 113 anzeigt, daß SVP= STP+ ! ist, dann wird der Wert in dem Register 102 über die Inkrementorschaltung 104 sowie die UND-Schaltungen 111 und 114 inkrementieri.
Als nächstes wird der Wert in dem Register 101 über die Inkrementorschaltung 103 und die UND-Schaltung 109 inkrementiert. Da die Ausrolleitung 214 anzeigt, daß die Ausrollkippschaltung 211 vorwärts geschaltet ist, blockiert die Blockierschaltung 122 das ST-Kabel 119 to gegenüber dem Adressenregister 27 des Speicherstapels 2 über die UND-Schaltung 23 und statt dessen tastet die Ausrolleiiung 214 die UND-Schaltung 24, worauf der Adressenwert des Registers 28 (im Register 28a^an das Register 27 gelangt. Der Dateneingang für Speichereingaben, der entweder im SD/?-Register 8 oder im Z-Register 12 steht, wird in das Register 28 eingespeist.
Die Leitung 214 zwingt eine feste Verzweigungsadresse im Speicher 34, der zur Speicherung von Konstanten vorgesehen ist, in das Speicheradressenregister 33 des Steuerspeichers 30, um auf das erste Mikroprogrammsteuerwort der Ausrollroutine zu verzweigen. Die erste Funktion dieser Routine ist die Errechnung von MSAn- Die P-Leitung 222 dient dazu, auf eines von zwei Mikroprogrammsteuerwörtern in dem Steuerspeicher 30 zu verzweigen, und zwar abhängig davon, ob eine - 16-Korrektur bei der Errechnung von MSAn erforderlich ist oder nicht. Diese Berechnung wird in konventioneller Weise unte> Steuerung durch ein Mikroprogramm durchgeführt. Der berechnete Wert von MSAn wird in das ß-Register 9 eingesetzt und dient dazu, über die UND-Schaltung 15c den Speicherstapel 4 zu adressieren.
Der erste Eingang des Speicherstapels 2, der ausgerollt werden soll, wird durch den Zeiger STP im Register 101 angezeigt. Dieser Wert des Zeigers STP wird an das Adressenregister 27 des Schnellspeichers 1 übergeben, und zwar über die UND-Schaltung 190, das Register 191, die Leitung 26, die UND-Schaltung 25 und <to die ODER-Schaltung 22. Ein Mikroprogrammdecodersignal auf der Leitung 192 überträgt den Zeiger SrPdes Registers 191 und startet die Adressierung der Ausrollroutine und der Einrollroutine. Der Eingang des Speicherstapels 2 gelangt über das Kabel 20 in das /4-Register 10 und wird in dem Speicherstapel 4 über die UND-Schaltung 16a gespeichert.
Der neue Adressenwert im ß-Register 9 wird um eine Einheit vermehrt und das ß-Register 9 zurückgegeben. Der Wert des Zeigers STP im Register 191, der dazu dient, den Zugriff zum Schnellspeicher 1 über die Leitung 26 vorzunehmen, wird auch, und zwar über den Inkrementor 193 um einen Wert vermehrt. Der vermehrte Wert wird über die UND-Schaltung 196 in das Register 191 zurückgegeben, und zwar aufgrund eines Mikroprogrammsignals auf der Leitung 184. Während des nächsten Ausrollroutinezyklus wird der nächste Eingang dem Speicherstapel 2 in das -4-Register 10 ausgerollt und dann in den Speicherstapel 4 übertragen. wi
Die oben angegebene Folge von Schritten wird wiederholt, bis die sechzehn Hingänge aus dem Speicherstapel 2 in den Speicherstapel 4 ausgerollt sind.
Die Ausrollroutine bewegt den Eingang vom Register 28 in den Speicherstapel 2 unter i-iner Lokalisation, die hr> durch den Zeiger STP angezeigt ist und bewegt den laufenden Wert von MSA vom II-Register 9 in das MSA-Register 29. Die Adressen der Register 28 und 29 dienen auch für die Ausrollroutine über die Leitung 26.1 und ein Mikroprogrammdecodersignal auf der Leitung 198 leitet den Zeiger STPan das Register 27.
Die Ausrollroutine ist schließlich beendet durch Rückschaltung der Kippschaltung 211 und durch Rückschaltung der Bit-P-Kippschaltung 218 über die ODER-Schaltung 221 und kehrt nun auf diejenige Routine zurück, die sich gerade abwickelte, bevor die Ausrollroutine ausgelöst wurde.
Im folgenden wird nun eine Einrollroutine beschrieben. Es sei angenommen, daß, wenn eine Speicherausgabeoperation beginnt, die Werte STP und SVP in den Registern 101 und 102 gleich sind. Diese Gleichheitsbedingung wird in der Vergleicherschaltung 216 ermittelt und die Einrollkippschaltung 215 wird über die UND-Schaltung 203 vorwärts geschaltet.
Zu dieser Zeit wird über die UND-Schaltung 206 die Bit-P-Kippschaltung 218 vorwärts geschaltet wenn die Bil-T-Kippschaltung 208 vorwärts geschaltet ist, wie dies auf der Leitung 209 angezeigt wird und wenn die Vergleicherschaltungen 219 und 220 anzeigen, daß der Wert von SPPim Register 106 von Null auf 15 wechselt aufgrund der genannten Speicherausgabeoperation.
Wenn die Vergleicherschaltung 115 anzeigt, daß SPP=STP+ 1 ist, dann wird der Wert des Zeigers 5TP im Register 101 in das Register 106 gegeben, und zwar über die UND-Schaltungen 116 und 112, wenn die Leitung 209 anzeigt, daß die Bit- Γ-Kippschaltung 208 vorwärts geschaltet ist.
Wenn die Vergleicherschaltung 210 anzeigt, daß STP= SPPist, dann wird über die UND-Schaltung 204 die Bit-Γ-Kippschaltung 208 vorwärts geschaltet. Schließlich wird der Wert des Zeigers STP im Register 101 über die UND-Schaltung 110 durch den Dekrementor 105 um eine Einheit verringert. Das Eiiirollsignal auf der Leitung 217 veranlaßt den Speicher 34, eine Verzweigungsadresse an den Steuerspeicher 30 zu liefern, die das erste Mikroprogrammwort in der Einrollroutine adressiert. Wie im Fall der Ausrollroutine, wird nun die Adresse MSAn berechnet, indem auf der K-Leitung 229 festgestellt wird, ob eine -16-Korrektur erforderlich ist oder nicht. Die Adresse wird dann in das ß-Register 9 eingegeben, um über die UND-Schaltung 15a zur Adressierung im Speicherstapel 4 benutzt zu werden. Der berechnete Wert der Adresse MSAn wird auch in das MSV4-Register 29 eingesetzt, um als MSAo während der nächsten Ausrolloder Einrollroutine benutzt zu werden. Das Register 29 ist über die Leitung 26a adressiert.
Der erste Eingang, der von dem Speicherstapel 4 ausgelesen wird, wird in den Speicherstapel 2 eingegeben. Der Speicherstapel 2 wird über die Leitung 26, die UND-Schaltung 25 und die ODER-Schaltung 22 unter Verwendung des Wertes des Zeigers STP im Register 101 adressiert. Der Wert des Zeigers .977'wird zu diesem Zweck in das Register 191 gegeben, und zwar durch die UND-Schaltung 190 und deren Eirigangslcitung 192.
Der Adressenwerl des Hauptspeichers im B-Register 9 ist um eine Einheit vermindert; der Adressenwert im Register 191 ist durch den Dekremcntor 194 vermindert. Ein anderer Eingang wird von dein SpciehcrMapel 4 an den Speicherstapel 2 eingerollt. Der Adressenwerl, der von dem Dekrementor 194 vermindert ist. wird an das Register 191 zurückgegeben, und /war uher die UND-Schaltung 195 aufgrund eines Mikroprogrammsignals auf der Leitung 182.
Diese Folge von Schrillen winl wiederholt. Ins die
sechzehn Eingänge eingerollt sind und keine Eingänge mehr im Speicherstapel 4 vorhanden sind. Im Falle, daß keine sechzehn Eingänge im Spcichersiapel vorhanden sind, ergibt sich ein Sonderfall im Speicherstapel 2, indem der Zeiger 5VT im Register 102 nicht den frühesten gültigen Eingang im Speicherstapel 2 anzeigt. Diese Bedingung setzt sich durch, bis alle Eingänge aus dem Speicherstapel 2 ausgegeben sind oder ein neuer Eingang in die Lokalisation HS 15 im Zuge einer Speichereingabe eingegeben wurde.
Die Einrollroutine wird beendet durch Rückschaltung der Einrollkippschaltung 215, Vorwärtsschaltung der Bit- ^-Kippschaltung 223 über die ODER-Schaltung 228, Rückschaltung der ßil-P-Kippschaltung 218 über die ODER-Schaltung 221 und Rückkehr auf die zuvor is unterbrochene Rouline.
Die F i g. 3a bis 3c, 4a bis 4d, 5a bis 5d, 6a bis 6d, 7a bis 7f und 8a, 8b zeigen den Inhalt der Speicherstapel 2 und 4, des Registers 28 und des MS/4-Registers 29 sowie die Werte der Zeiger STP, SVP und SPP und den Zustand der Bit-Kippschaltungen V, T und P für eine Speichereingabeoperation, für eine Speicherausgabeoperation, für eine Ausrolloperation und für eine Einrolloperation. Eine ungültige Lokalisation ist in den Figuren mit 0 bezeichnet.
Die F i g. 3a, 3b betreffen eine Speichereingabeoperation. Der Zeiger STPzeigt zunächst den Eingang Hin der Lokalisation HS 7 des Speicherstapels 2 an. Der Zeiger STP wird um eine Einheit aufdatiert auf die Lokalisation HSS, und zwar während der Speichereingabeoperation über die UND-Schaltung 109 und den lnkremenlor 103. Die UND-Schaltung 23 leitet den aufdatierten Zeiger STP zum Zugriff an den Schnellspeicher 1 und die Speichereingabedaten / werden in der Lokalisation HS8 im Speicherstapel 2 gespeichert (vergleiche F i g. 3b).
F i g. 3c betrifft eine Speicherausgabeoperation. Während der nachfolgenden Speicherausgabeoperation werden die Daten /von der Speicherposition HSS des Schnellspeichers ausgegeben. Sie sind adressiert durch den Zeiger STP. Der Zeiger STP wird dann um eine Einheit über die UND-Schaltung 110 und die Dekrementorschaltung 105 vermindert und zeigt erneut den nächsten gültigen Eingang Hin der Lokalisation HS7 des Speicherstapels 2.
Die Fig.4a bis 4d betreffen eine Ausrollroutine. Der Ausrollvorgang aus dem Schneilspeicher 2 wird immer bis zum letzten möglichen Moment verzögert. Es ist Bedingung für einen Ausrollvorgang gemäß F i g. 4a, daß der Speicherstapel (SPP=STP+\) voll ist, was in so der Vergleicherschaltung 115 erregt über die Leitung 121 festgestellt wird, und daß die Bit-7"-Kippschaltung 208 auf 0 zurückgeschaltet ist bei Beginn der Operation, und daß eine Speichereingabeoperation ausgelöst ist. Diese Bedingungen veranlassen ein Signal am Ausgang der UND-Schaltung 212, durch das die Ausrollkippschaltung 211 über die UND-Schaltung 207 vorwärts geschaltet wird und verursacht wird, daß die Daten Q in das Register 28 übertragen werden. Die Vergleicherschaltung 113 stellt nun fest, daß SVP= STP+1 ist, worauf der Wert SVP im Register 102 über die UND-Schaltungen 111 und 114 durch den Inkrementor 104 um einen Wert vermehrt wird. Der Zeiger STPwird über die UND-Schaltung 109 und die Inkrementorschaltung 103, wie bei einer normalen Speichereingabeopel ation, inkrementiert.
Die Ausrollroutine wird ausgelöst durch Verzweigung auf das erste Steuerwort der Routine im Speicher 30, und /war aufgrund eines Signals auf der Leitung 214. Die Ausrollroutine berechnet zunächst den Wert von
AiSAw=MOdUlOi6[O+ i -(O · 16)] + 0 = 0
und bringt diesen Wert in das ß-Regisler 9. Der erste Dateneingang A in der Speicherposition HSO wird durch den Wert im Register 191 über die Leitung 26 adressiert und an den Hauptspeicher 3 Lokalisation MSO ausgerollt (vergleiche F i g. 4d), und zwar über das Kabel 20, das /t-Register 10, das Kabel 21 sowie die UND-Schaltung 16a. Der ausgerollte Dateneingang wird im Speicherstapel 4 unter der Lokalisation MSO, die durch den Adressenwert im Register 9 adressiert ist, gespeichert.
Zusätzliche Eingänge ßbis P werden in der gleichen Weise ausgerollt und die Werte im Ö-Register 9 und auf dem Kabel 26 durch die logische Einheit 11 sowie den Inkrementor 193 aufdatiert, und zwar für jeden Eingang bis die sechzehn Eingänge A bis P ausgerollt sind. F i g. 4d zeigt den JnhaJt des Speicherstapels 4 nachdem alle Eingänge ausgerollt sind und der Endwert des Zeigers (MSA = 15) an das MS/l-Register 29 im Schnellspeicher 1 zurückgegeben wird. Die Ausrollroutine bewegt nun den Eingang Q aus dem Register 28 in die Lokalisation des Speicherstapels 2, die gemäß F i g. 4c durch den Zeiger STP angezeigt ist und endet durch Rückschaltung der Bit-P-Kippschaltung 218 über die ODER-Schaltung 221. Die Routine liefert die Adresse des Registers 28 an die UND-Schaltung 24 über das Kabel 26b. Die Leitung 198 leitet den Zeiger STP vom Register 101 in die UND-Schaltung 23 zum Zugriff zur Speicherstapel-2-Lokalisation.
F i g. 5a zeigt die Ergebnisse, nachdem der Eingang Q und acht weitere Eingänge /?bis Vin den Speicherstapel 2 eingegeben wurden. Es ist ersichtlich, daß der Zeiger SVP über den Zeiger STP gelangt ist, weil während jeder Speichereingabeoperation die Vergleicherschaltung 113 feststellt, daß STP+1 = SVP ist, und deshalb wurde SVP bei jeder Speichereingabeoperation über den Inkrementor 104 und die UND-Schaltungen 111 und 114 um einen Wert vermehrt.
F i g. 5b zeigt das Ergebnis nach insgesamt acht aufeinanderfolgenden Speichereingabeoperationen. Der SVP-Zeiger hat sich nicht bewegt und zeigt immer noch den frühesten Eingang / im Speicherstapel 2 an, der die Duplikat-Kopie des Speicherstapels 4 enthält. Der Zeiger SPP hat sich auch nicht bewegt und zeigt den frühesten Eingang Q im Speicherstapel 2 an, der nicht die Duplikat-Kopie des Speicherstapels 4 enthält.
F i g. 5c zeigt das Ergebnis einer anderen Speicherausgabeoperation. Der Zeiger STP im Register 101 ist über die UND-Schaltung 110 und den Dekrementor 105 um einen Wert vermindert. Da die Vergleicherschaltung 210 feststellt, daß STP=SPPiSt, ehe STPdekrementiert wurde, wird die Bit-T-Kippschaltung 208 über die UND-Schaltung 204 vorwärts geschaltet. Die Bit-T-Kippschaltung 208 blockiert daher die Ausrollkippschaltung 211, so daß diese nicht vorwärts geschaltet werden kann bei der nächstfolgenden Speicherausgabeoperation, auch wenn über die C-Leitung 121 angezeigt wird, daß STP-I-I=SPPiSt.
Fig.5d kennzeichnet das Ergebnis nach einer weiteren Speicherausgabeoperation. Der Zeiger SFPist normalerweise dekrementiert. Die Vergleicherschaltung 115 stellt fest, daß, ehe STP dekrementiert war folgendes gegolten hat -STP+1= SPP. Der nichl dekrementierte Wert von STPwird in das SPP-Register 106 über die UND-Schaltungen 112und 116 eingegeben
und die Γ-Leitung 209 zeigt an, daß die Bit- Γ-Kippschaltung 208 sich in ihrem vorwärts geschalteten Zustand L)t:'indet, wodurch der Zeiger SPP um eine Einheit dekrementiert wird.
Die Vergleicherschaltung 219 und 220 zeigen als Ergebnis dieser Speicherausgabeoperation an, daß der Wert des Zeigers SPP von 0 auf 15 läuft. Da die Bit-T-Kippschaltung 208 auch vorwärts geschaltet ist, wird die Bit-P-Kippschaltung 218 über die UND-Schaltung 296 vorwärts geschaltet. Die Bit-P-Kippschaltung 218 erinnert jetzt daran, daß die Grenze für den Zeiger 5PPüberschritten wird.
Die F i g. 6a bis 6d betreffen eine Einrollroutine. Fünf weitere Speicherausgabeoperationen, beginnend unter den Bedingungen gemäß Fig.5d, führen zu dem Ergebnis, das in Fig. 6a dargestellt ist und das sind die auslösenden Bedingungen für einen Einrollvorgang. Der Speicherstapel 2 hat noch einen gültigen Eingang J unter der Lokalisation HS9und es gilt SVP=STP.
Wenn die nächste Operation eine Speicherausgabeoperation ist, dann wird der Eingang / über die Lokalisation HS9 ausgegeben und die Einrollkippschaltung 215 wird über die UND-Schaltung 203 vorwärts geschaltet, da die Vergleicherschaltung 216 anzeigt, daß SVP=STPiSi. Die Zeiger STP und SPP werden beide dekrementiert, wie in Fig.6b dargestellt, und die Einrollroutine wird vom Speicher 30 ausgelöst.
Die Einrollroutine berechnet zunächst MSAn- Der Wert von MSAo wird vom M5/t-Register 29 abgefragt und ist = 15, wie in Fig.4d dargestellt. Die Bit- V-Kippschaltung 223 ist zurückgeschaltet und zeigt an, daß eine — 16-Korrektur nicht erforderlich ist und der Wertzeiger S7Pist acht.
Die Berechnung ist folgende:
MSAn = Moduloi6[15-(0 · 16)]+8
= 0+8
= 8
Der Zeiger STP wird vom Register 101 über die UND-Schaltung 190 an das Register 191 übertragen, -to und zwar aufgrund eines Mikroprogrammdecodersignals auf der Leitung 192.
Dieser Wert von MSAn wird sowohl an das M5/4-Register 29 als auch an das ß-Register 9 gegeben. Der Wert im ß-Register 9 wird über die UND-Schaltung 15a an das 5Λ/?-Register 5 des Hauptspeichers 3 gegeben. Der im Speicherstapel 4 adressierte Eingang wird über das Kabel 17 an die Einganglokalisation HSS des Speicherstapels 2 gegeben, die durch den Zeiger STPim Register 191 über das Kabel 26 adressiert ist.
Die Einrollroutine datiert die Adressen in den Registern 9 und 191 auf. Nun wird der Eingang H von der Lokalisation MS 7 an die Lokalisation HS 7 gegeben, und so weiter werden nun die Eingänge C bis A von den Lokalisationen MS 6 bis MSO an die Lokalisationen HS6 bis HSO, und zwar Eingang nach Eingang. Die Routine kehrt dann auf das Programm zurück, das gerade lief, als diese Routine ausgelöst wurde.
Nachdem diese Routine beendet ist, wird die e>o Bit- V-Kippschaltung 223 über die ODER-Schaltung 228 vorwärts geschaltet und die Bit-P-Kippschaltung 218 über die ODER-Schaltung 221 zurückgeschaltet (vergleiche F i g. 6c).
Fig.6d zeigt den Speicherstapel 4 nachdem diese Einrollroutine beendet ist.
F i g. 7a zeigt das Ergebnis einer Speichereingabeoperation, vorgenommen an dem Speicherstapel 2, so wie er
10
15
20
25
30
35 in F i g. 6c dargestellt ist. Die Zeiger 5ΓΡ und SVP sind normalerweise um eine Einheit verringert. Der Zeiger 5PPzeigt den frühesten Eingang im Speicherstapel 2, zu dem keine Duplikat-Kopie in dem Speicherstapel 4 besteht. Diese Speichereingabeoperation setzt die Bit-r-Kippschaltung 208 über die UND-Schaltung 205 zurück, da auf der C-Leitung 121 angezeigt wird, daß SPP=STP+ list.
Fig.7b zeigt das Ergebnis nach weiteren sechs Speichereingabeoperationen am Speicherstapel 2 aus F i g. 7a. Eine andere Speichereingabeoperation führt zu dem in Fig.7c dargestellten Ergebnis. Bei allen Speichereingabeoperationen wird der Zeiger STP und der Zeiger SVP inkrementierL Die Speichereingabeoperation gemäß F i g. 7c führt dazu, daß die Bit-V-Kippschaltung 223 über die UND-Schaltungen 202 und 226 zurückgeschaltet wird, da die Vergleicherschaltungen 224 und 225 anzeigen, daß der Wert SVPim Register 102 von 0 auf 1 wechselt, und zwar als Ergebnis dieser Speichereingabeoperation. Die Bit- V-Kippschaltung 223 erinnert daran, daß die Grenze für den Zeiger STP überschritten wird, wenn eine weitere Einrollroutine benötigt wird.
Fig.7d zeigt das Ergebnis nach weiteren neun Speichereingaben an. Die Zeiger STP und 5VP sind wieder normal inkrementiert Die letzte Speichereingabeoperation verursachte, daß die Daten (ZZ) im Register 28 gespeichert wurden.
Da durch die letzte Speichereingabeoperation auch die Ausrollkippschaltung 211 vorwärts geschaltet ist und das Register 162 nicht von 0 auf 1 umgeschaltet wurde, wird die Bit-V-Kippschaltung 223 über die UND-Schaltung 201 und die ODER-Schaltung 228 vorwärts geschaltet.
Ehe die Ausrollroutine beginnen kann, muß MSAn berechnet werden. Wie in F i g. 6d dargestellt, ist 8 der Wert für MSA0. Der Wert des Zeigers 5PP beträgt 9 und die Bit-P-Kippschaltung 218 befindet sich in zurückgeschaltetem Zustand und zeigt an, daß eine — 16-Korrektur nicht erforderlich ist. Die Berechnung läuft daher wie folgt:
MSAn = Modulo16[8+1-(0 · 16)]+9 = 0 + 9 = 9
Der wie in Fig.6d dargestellt korrekte Wert zur Adressierung des Speicherstapels 4 wurde berechnet und der normale Ausrollvorgang der Eingänge des Speicherstapels 2 kann vollzogen werden.
Die Fig.7e und 7f zeigen die Zustände im Speicherstapel 2 und im Speicherstapel 4 nachdem die Eingänge // bis YY an die Lokalisationen Af59 bis MS 24 inklusive ausgerollt sind.
Wenn fünfzehn Speicherausgabeoperationen dann durchgeführt sind, um die Eingänge ZZ bis LL inklusive vom Speicherstapel 2 auszugeben, dann ergeben sich die Bedingungen gemäß F i g. 8a. Der einzige noch verbleibende gültige Eingang ist KK in der Lokalisation HS 10. Der Zeiger SVP wurde während der Speicherausgabeoperation nicht aufdatiert. Der Zeiger 57"P wurde jedoch während jeder Speicherausgabeoperation um einen Wert vermindert. Der Zeiger SPP folgt dem Zeiger STP bei allen Speicherausgabeoperationen, ausgenommen die erste der fünfzehn Speicherausgabeoperationen.
Eine weitere Speicherausgabeoperation entfernt den Eingang KK vom Speicherstapel 2 und löst eine Einrollroutine aus, um die Eingänge JJ bis A von den
17 18
Lokalisationen MS9 bis MSO an die Lokalisation HS9 = 0 + 9
bis HSO zu übertragen. Die Berechnung der anfängli- = 9
chen Hauptspeicheradresse geschieht wie folgt:
Fig.8b zeigt den Speicherstapel 2 nach dem MSAn = Moduloi6[24-(1 · 16)] + 9 5 Einroilvorgang.
= Moduloi6[8]+9
Hierzu 7 Blatt Zeichnungen

Claims (3)

24 29 06; Patentansprüche:
1. Speicherschaltung, bei der die zuletzt eingespeicherten Daten zuerst wieder abgegeben werden mit einem dateneingabeseitig angeordneten, mit einer Vielzahl von einzeln aneinandergereihten Registern ausgestatteten Schnellspeicher und einem mit einer Vielzahl von einzeln aneinandergereihten Registern ausgestatteten, langsameren Hauptspeicher zur Aufnahme der Daten aus den Registern des Schnellspeichers bei Datenüberfluß im Schnellspeicher, gekennzeichnet durch folgende Merkmale:
a) Die Dateneingabe erfolgt in die Register (HS ...) des Schnellspeichers (1) nacheinander in der zyklischen Reihenfolge der Register;
b) die Übertragung bei Überfluß an den Hauptspeicher (3) erfolgt unter Beibehalt der Reihenfolge erst dann, wenn eine Dateneingabe für die Speicherschaltung ansteht und alle Register (HS ...) des Schnellspeichers mit Daten bespeichert sind, die noch nicht ausgegeben wurden;
c) die bei Übertragung gemäß Merkmal b) anstehende Dateneingabe wird bis zur erfolgten Übertragung in einem dafür vorgesehenen Zwischenspeicher (28) zwischengespeichert;
d) die an den Hauptspeicher (3) übertragenen Daten bleiben in den Registern (HS ...) des Schnellspeichers (1) für Datenausgabe verfügbar, bis sie von einer neuen Dateneingabe überspeichert werden;
e) bei Übertragung an den Hauptspeicher (3) werden die Daten auf allen Registern des Schnellspeichers an den Hauptspeicher übertragen;
f) die Rückübertragung der Daten aus den Registern (MS...) des Hauptspeichers an den Schnellspeicher (1) erfolgt, wenn die Daten aller Register des Schnellspeichers ausgegeben sind;
g) die Rückübertragung erstreckt sich nur auf diejenigen Daten, deren Duplikate nicht in der Zwischenzeit direkt aus dem Schnellspeicher (1) abgegeben worden sind.
2. Speicherschaltung nach Anspruch 1, dadurch gekennzeichnet, daß für die Adressierung der Übertragung und Rückübertragung drei Register (101,102,106) vorgesehen sind, von denen das erste Register (101) den Wert eines Zeigers (STP) mitzählt, der die Ordnungszahl desjenigen Registers (HS)des Schnellspeichers (1) anzeigt, in dem sich die zuletzt in die Speicherschaltung eingespeicherten Daten befinden und von denen das zweite Register (102) den Wert eines zweiten Zeigers (SVP) mitzählt, der die Ordnungszahl desjenigen Registers anzeigt, das von allen Registern (HS) des Schnellspeichers die ältesten in die Speicherschaltung eingespeisten Daten enthält und von denen das dritte Register (106) den Wert eines Zeigers (SPP) mitzählt, der die Ordnungszahl desjenigen Registers (HS) des Schnellspeichers (1) anzeigt, die von allen Registern des Schnellspeichers die ältesten in die Speicherschaltung eingespeisten Daten enthält, von denen kein Duplikat in den Registern (MSJ des Hauptspei- in chers vorhanden ist.
3. Speicherschaltung nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die Anzahl der Register (HS)des Schnellspeichers 2" beträgt, wobei η eine positive ganze Zahl größer als 1 ist.
DE2429067A 1973-06-26 1974-06-18 Speicherschaltung Expired DE2429067C3 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US373847A US3868644A (en) 1973-06-26 1973-06-26 Stack mechanism for a data processor

Publications (3)

Publication Number Publication Date
DE2429067A1 DE2429067A1 (de) 1975-01-16
DE2429067B2 true DE2429067B2 (de) 1978-03-02
DE2429067C3 DE2429067C3 (de) 1978-10-19

Family

ID=23474135

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2429067A Expired DE2429067C3 (de) 1973-06-26 1974-06-18 Speicherschaltung

Country Status (7)

Country Link
US (1) US3868644A (de)
JP (1) JPS546330B2 (de)
CA (1) CA1016661A (de)
DE (1) DE2429067C3 (de)
FR (1) FR2235428B1 (de)
GB (1) GB1457330A (de)
IT (1) IT1012995B (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1441816A (en) * 1973-07-18 1976-07-07 Int Computers Ltd Electronic digital data processing systems
US4205370A (en) * 1975-04-16 1980-05-27 Honeywell Information Systems Inc. Trace method and apparatus for use in a data processing system
US4041462A (en) * 1976-04-30 1977-08-09 International Business Machines Corporation Data processing system featuring subroutine linkage operations using hardware controlled stacks
US4097920A (en) * 1976-12-13 1978-06-27 Rca Corporation Hardware control for repeating program loops in electronic computers
JPS5474651A (en) * 1977-11-28 1979-06-14 Toshiba Corp Stack control system
US4298929A (en) * 1979-01-26 1981-11-03 International Business Machines Corporation Integrated multilevel storage hierarchy for a data processing system with improved channel to memory write capability
EP0019358B1 (de) * 1979-05-09 1984-07-11 International Computers Limited Hierarchisches Datenspeichersystem
US4442488A (en) * 1980-05-05 1984-04-10 Floating Point Systems, Inc. Instruction cache memory system
HU180133B (en) * 1980-05-07 1983-02-28 Szamitastech Koord Equipment for displaying and storing tv picture information by means of useiof a computer access memory
US4504925A (en) * 1982-01-18 1985-03-12 M/A-Com Linkabit, Inc. Self-shifting LIFO stack
US4530049A (en) * 1982-02-11 1985-07-16 At&T Bell Laboratories Stack cache with fixed size stack frames
JPS5996588A (ja) * 1982-11-24 1984-06-04 Mitsubishi Electric Corp デ−タ・アクセス方法
US4704679A (en) * 1985-06-11 1987-11-03 Burroughs Corporation Addressing environment storage for accessing a stack-oriented memory
US4899307A (en) * 1987-04-10 1990-02-06 Tandem Computers Incorporated Stack with unary encoded stack pointer
JPH02143329A (ja) * 1988-11-25 1990-06-01 Toshiba Corp プロセッサシステム
JPH02187825A (ja) * 1989-01-13 1990-07-24 Mitsubishi Electric Corp コンピュータ
JPH02299025A (ja) * 1989-05-12 1990-12-11 Nec Corp マイクロコンピュータ
US5539893A (en) * 1993-11-16 1996-07-23 Unisys Corporation Multi-level memory and methods for allocating data most likely to be used to the fastest memory level

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3245047A (en) * 1962-09-19 1966-04-05 Ibm Selective data transfer apparatus
US3287705A (en) * 1963-03-07 1966-11-22 Rca Corp Computer system
GB1124017A (en) * 1964-12-17 1968-08-14 English Electric Computers Ltd Data storage apparatus
US3401376A (en) * 1965-11-26 1968-09-10 Burroughs Corp Central processor
US3466613A (en) * 1967-01-13 1969-09-09 Ibm Instruction buffering system
US3546677A (en) * 1967-10-02 1970-12-08 Burroughs Corp Data processing system having tree structured stack implementation
BE758815A (fr) * 1969-11-28 1971-04-16 Burroughs Corp Systeme de traitement d'information presentant des moyens pour la preparation dynamique d'adresses de memoire
US3670309A (en) * 1969-12-23 1972-06-13 Ibm Storage control system

Also Published As

Publication number Publication date
FR2235428B1 (de) 1976-06-25
JPS5023944A (de) 1975-03-14
IT1012995B (it) 1977-03-10
CA1016661A (en) 1977-08-30
JPS546330B2 (de) 1979-03-27
DE2429067C3 (de) 1978-10-19
US3868644A (en) 1975-02-25
DE2429067A1 (de) 1975-01-16
FR2235428A1 (de) 1975-01-24
GB1457330A (en) 1976-12-01

Similar Documents

Publication Publication Date Title
DE2429067C3 (de) Speicherschaltung
DE2351791C2 (de) Datenverarbeitungsanlage
DE2415900C3 (de) Rechenautomat mit mehreren mit je einem Vorratsspeicher versehenen Rechenanlagen
DE1449765C3 (de) Einrichtung zur Abfrage eines assoziativen Speichers
DE2224537C2 (de) Einrichtung und Verfahren zur Instruktionsauswahl in einem Fließbandprozessor
DE2424931C2 (de) Mikroprogrammierbare Datenverarbeitungsanlage
DE3302922A1 (de) Verfahren und vorrichtung fuer speichersteuerungen
EP0013737A1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE2543522C2 (de) Mikroprogrammierbare Datenverarbeitungseinrichtung
DE2630323A1 (de) Datenspeichereinrichtung
DE2448690A1 (de) Kellerspeichereinrichtung fuer eine datenverarbeitungsanlage
DE2036729A1 (de) Digital Datenverarbeiter
DE2853239A1 (de) Datenpufferspeicher vom typ first-in, first-out mit variablem eingang und festem ausgang
EP0134831B1 (de) Einrichtung im Befehlswerk eines Fliessbandprozessors zur Befehlsunterbrechung und -wiederholung
DE1286789B (de) Einrichtung an einem elektronischen Ziffernrechner zum schnellen Datenaustausch zwischen der Verarbeitungseinheit und dem zentralen Speicher
DE1499206C3 (de) Rechenanlage
DE2054830A1 (de) Informationsverarbeitungssystem mit wortstrukturiertem Speicher und Verfahren fur einen Zugriff zu einem derar tigen Speicher
DE2625113C2 (de) Speicherschutzeinrichtung
DE2720864C3 (de) Anordnung zum lückenfreien Einspeichern einer Anzahl von Datenblocks unbestimmte r Lange
DE2063195C2 (de) Verfahren und Einrichtung zur Operationssteuerung einer Anzahl von externen Datenspeichern
DE2739525C2 (de) Rechner
DE2704560C2 (de) Datenverarbeitende Anlage mit paralleler Bereitstellung und Ausführung von Maschinenbefehlen
DE2458777C2 (de) Schaltungsanordnung zur Textverarbeitung
DE1499286B2 (de) Datenbearbeitungsanlage
DE1449774A1 (de) Speichersystem mit kurzer Zugriffzeit

Legal Events

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