DE2429067B2 - Speicherschaltung - Google Patents
SpeicherschaltungInfo
- 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
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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing 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 Of A Hierarchy Structure (AREA)
- Memory System (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.
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.
MSAn = Moduloi6[15-(0 · 16)]+8
= 0+8
= 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)
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.
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)
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)
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 |
-
1973
- 1973-06-26 US US373847A patent/US3868644A/en not_active Expired - Lifetime
-
1974
- 1974-05-15 FR FR7417743A patent/FR2235428B1/fr not_active Expired
- 1974-05-16 GB GB2168874A patent/GB1457330A/en not_active Expired
- 1974-05-22 JP JP5679274A patent/JPS546330B2/ja not_active Expired
- 1974-05-31 IT IT23407/74A patent/IT1012995B/it active
- 1974-06-07 CA CA201,941A patent/CA1016661A/en not_active Expired
- 1974-06-18 DE DE2429067A patent/DE2429067C3/de not_active Expired
Also Published As
Publication number | Publication date |
---|---|
DE2429067C3 (de) | 1978-10-19 |
GB1457330A (en) | 1976-12-01 |
US3868644A (en) | 1975-02-25 |
FR2235428B1 (de) | 1976-06-25 |
DE2429067A1 (de) | 1975-01-16 |
JPS546330B2 (de) | 1979-03-27 |
CA1016661A (en) | 1977-08-30 |
FR2235428A1 (de) | 1975-01-24 |
IT1012995B (it) | 1977-03-10 |
JPS5023944A (de) | 1975-03-14 |
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 | |
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 | |
CH631386A5 (de) | Textverarbeitungsmaschine. | |
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 | |
DE1499224C3 (de) | Datenverarbeitungsanlage mit Kellerspeichereinrichtungen | |
DE2704560C2 (de) | Datenverarbeitende Anlage mit paralleler Bereitstellung und Ausführung von Maschinenbefehlen | |
DE2458777C2 (de) | Schaltungsanordnung zur Textverarbeitung | |
DE1499286B2 (de) | Datenbearbeitungsanlage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C3 | Grant after two publication steps (3rd publication) | ||
8339 | Ceased/non-payment of the annual fee |