DE2429067C3 - Speicherschaltung - Google Patents
SpeicherschaltungInfo
- Publication number
- DE2429067C3 DE2429067C3 DE2429067A DE2429067A DE2429067C3 DE 2429067 C3 DE2429067 C3 DE 2429067C3 DE 2429067 A DE2429067 A DE 2429067A DE 2429067 A DE2429067 A DE 2429067A DE 2429067 C3 DE2429067 C3 DE 2429067C3
- 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.)
- Expired
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 dateneingabsseitig 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
Sohnellspeichers bei Datenüberfluß im Schnellspeicher.
Bei Speicherschaltungen dieser Art dient der langsamere Hauptspeicher dazu, im Falle des Datenüberflusses
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 Jie 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 ijchnellspeicher zum Hauptspeicher und die Rückübef-
tragung vom Hauptspeicher zum Schnellspeicher 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 wird 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
schneller.
Untev 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 einer- 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 ein» 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 Schne.lspeichers und des
Hauptspeichers bei dem in Fig. 1 dargestellten Ausführungsbeispiel.
In der nachfolgenden Figurenbeschreibung ist, um den Unterschied deutlich zu machen, von einer
»Speichereingabe« beziehungsweise »Speicherausgabe« die Reue, 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 /wischen .Schnellspeicher und Hauptspeicher
handelt, von einem »Einroll«· beziehungsweise »Ausrollvorgang« gesprochen.
Gemäß F · g. 1 ist mit 3 ein Hauptspeicher, mit 11 eine
arithmetische Logikeinheit und 1 ein einem datenverar behenden Gerät zugeordneter Schnellspeicher bezeichnet
Das -4-Register 10 und das ß-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
lolches, dessen Mikroprogrammroutinen durch Steuerwörter gesteuert werdeit.,die in dem Steuerspeicher 30
«esoeichert sind. Wenn ein SteuefWöft aus dem
Steuerspeicher 30 ausgelesen wird, gelangt es in das
Steuerregister 31. Der Steuerdecoder 32 dient daüii, das
datenveraroeitende 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 arbeitet 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 HSQ bis HS 15, die im
folgenden »Lokalisationen« genannt sind.
Der Zugriff zum Speicherstapel 2 erfolgt seitens des Stapelspitzenzeigers STP über die orler-Schaltung 22 und die UND-Schaltung 23. Im übrigen erfolgt der Zugriff zum gesamten Schnellspeicher 1 über die Adressenkabel 26, 26a, 26ö, mit denen die UND-Schaltungen 24,25,25a angesteuert werden, die ihrerseits die ODER-Schaltung 22 ansteuern.
Der Zugriff zum Speicherstapel 2 erfolgt seitens des Stapelspitzenzeigers STP über die orler-Schaltung 22 und die UND-Schaltung 23. Im übrigen erfolgt der Zugriff zum gesamten Schnellspeicher 1 über die Adressenkabel 26, 26a, 26ö, mit denen die UND-Schaltungen 24,25,25a angesteuert werden, die ihrerseits die ODER-Schaltung 22 ansteuern.
Der Stapelspitzenzeiger STP in dem Register 101 aus Fi g. 2a vollzieht nur den Zugriff zum Speicherstapel 2,
während der Speichereingabeoptration und der jo 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 t zum Hauptspeicher 3 und zum A-Register 10 führt. Wahrend
der sogenannten Einrolloperationen, während derer Da'°n 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 Spsicherstipel 2 beziehungsweise an das /4-Register 10 oder das
B- Register 9 für die weitere Verarbeitung.
Der Schnellspeicher 1 weis» eine Vielzahl von Wortpositionen für Speichereingaben auf einschließlich
der Lokalisation HSQ bis HS 15. Informationen aus dem Schnellspeicher 1 wurden über das Kabel 20 ausgele'en
und gelangen an das /4-Register 10 oder an das fl-Repister 9. Diese Informationen werden dann an die
Logikeinheit 11 weitergeleitet und dort verarbeitet. Der
π Ausgang des A-Reeisters 10 ist über eine UND-Schaltung
14 an das Operationsregister 13 angeschossen, wenn Speicherausgabe eines Operators aus dem
Speicherstapel 2 erfolgt. Die Ausgabe des 4-Registers
10 gelangt über d s Kabel 21 und die UND-Schaltung w) 16d sowie das SDR-Register 8 an den Speichers!ape! 4
des Hauptspeichers 3 wenn eine Ausrollopexation stattfindet. Das Kabel 21 und die UND-Schaltung 16Z*
bilden einen vom Λ-Register IO zum Hauptspeicher 3
führenden Datenpfad für Datenspeicheroperationen, h-, die nicht im Speichersiapel stattfinden sollen.
Zur Adressierung des Hauptspeichers 3 dient ein Hauptspeicheradressenregister (SAR) 5. Die Ausgabe
des ß-Registefs 9 gelangt über das Kabel 19 und die
10
15
20
UND-Schaltung 15a während einer Einrolloperation an das SA/?-Regisler 5. Bei einer Ausrolloperation ist das
Ö-Register9 über das Kabel 19 und die UND-Schaltung
!Scan das S4/?-Register5 angeschlossen, Die nicht zum
Speicherstapel gehörigen Teile des Hauptspeichers 3 werden durch das ß-Register 9 über das Kabel 19 und
die UND-Schaltung 156, die an das S/4/?-Registef 5
angeschlossen ist, adressiert. Die Mikroprogrammdecoderleitungen 182,183,184 steuern die UND-Schaltungen
15a. 150.15c, 16a und 166 an.
In den Fig.2a und 2b sind die Schaltungsteile
dargestellt, die nötig sind, um den Speicherslapel 2 des
Schnellspeichers 1 zu adressieren und zu steuern.
Der Speicherstapel 2 erfordert 2" Eingangspositionen,
damit ein ökonomischer zyklischer Adressenaufdatiefüngsmechanismus
in den Registern 101,102 und in den inkrementoren 103,104 und dem Dekrementor 105 für
die Stape!spit2en7Piger .9Tf und 5Vf stattfinden kann.
Nur zum Zwecke der Erläuterung sind für den Speicherstapel 2,24, also 16 Eingänge entsprechend den
16 Lokalisationen HSO bis HS 15 vorgesehen.
Das Register 102 enthält normalerweise einen Zeiger SVP auf dem frühesten gültigen Eingang des Speicherstapels
Z 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 STP 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 Tl bis 7*4 angesäuert werden.
Die Vergleicherschaltung 113 vergleicht den in dem Jnkrementor 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 4-1 in dem Inkrementor 104 also SVP+1 an die UND-Schaltung 111 und über das
SVJV-Kabel 117 an die Vergleicherschaltung 224. Wenn
eine Speichereingabeoperation durchgeführt ist, dann ta gelangt durch die UND-Schaltung 111 der Wert
SVP+1 in das Register 10Z Die auf diese Weise vorgenommene Weiterschaltung des Zeigers SVP in
dem Register 102 zeigt an, daß durch die Speichereingabeoperation ein Eingang des Speicherstapeis, der zuvor as
an den Speicherstapel 4 ausgerollt wurde, mit einem neuen gültigen Eingang gespeichert wird.
Die Vergleicherschaltung 115 entscheidet, ob
30
35
45
50 STP+1 = SPfist. Wenn diese beiden Werte gleich sind,
dann gelangt über die UND-Schaltung 116 der Wert des Zeigers STP im Register 101, der auf dem S'AKabel 119
vorliegt, an die Eingangsseile der UND-Schaltung 112 und über das SfMKabel 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 f-Leitung 209 an die UND-Schaltung 112, die daraufhin
den Wert STP auf der SPW-Leitung 118 in das SPf-Register 106 gelangen läßt.
Wenn der Wert des Registers 101 auf diese Weise in das Register 106 eingespeist wird aufgrund einer
Speicherausgabeoperation, dann entspricht das einem Herabzählen des Registers 106 um einen Wert, also SPP
neu ist = SPP alt - 1. Dies kann nur stattfinden unter der Bedingung SPP= STP+ 1. 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
auf dem Sf-Kabel 120 gleicht, also STP= SPPgilt.
Die Bit-T-Kippschaltung 208 wird zurückgeschaltet durch di" UND-Schaltung 205. während einer Speichereingabeoperation,
und zwar über die C-Leitung 121 dann, wenn die Vergleicherschaltung 115 anzeigt, daß
STP+ 1- SPP gilt.
Die Bit-T-Kippschaltung 208 hat zwei Aufgaben. Die eine Aufgabe besteht darin, über die T-Leitung 209 den
Wert aus dem STf-Register 101 in das Sff-Register 106 zu leiten. Das darf nicht stattfinden ehe der
STf-Zeigerwert den Wert des Sff-Zeigers angenommen hat. Demzufolge wird die Bit- T-Kippschaltung 208
nicht vorwärts geschaltet wenn nicht die Vergleicherschaltung 210 anzeigt, daß STP= SPP gilt.
Die andere Aufgabe der Bit-T-Kippschaltung 208 besteht darin, das Ausrollsignal zu blockieren. Wenn auf
der Leitung 209 ein Bit-T= 1 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 211 während einer
Speichereingabeoperation vorwärts.
Wie aus der Folge der Taktsignale ersichtlich, wird die Ausrollkippschaltung211 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 Aüsföllsignal wird also geprüft
bevor die Bit-T-Kippschaltung 208 umgestellt wird. Das
bedeutet, daß, wenn die Bit-T-Kippschaltung 208 während einer Speichereingabeoperation zurückgeschaltet
wird, nicht etwa irrtümlich ein Ausrollsignal abgegeben wird. Die Ausrollkippschaltung 211 wird am
Ende einer jeden Ausrollroutine zurückgeschaltet.
Wenn die Ausrollkippschaltung 211 vorwärts geschaltet
wird, 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 Speichereingabeoperation
gerade stattfindet.
Wenn auf der Leitung 214 keine Anzeige darüber vorliegt daß die Kippschaltung 211 vorwärts geschaltet
ist dann blockiert die Blockierschaltung 122 nicht
während einer Speichereingabeoperatiort die UND-Schaltung 108. Die Folge istt 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.
We«?/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äbfetid dieser Speichereingabeoperation die Leitung 214 über die
UND-Schaltung 28b die UND-Schaltung 24 an, um die Adresse des Registers 28 aus dem Register 28a über die
ODER-Schaltung 22 an das Adressenregister 27 zu leiten. Da die Speichereingabeoperation, die die
Ausrollkippschaltung 211 vorwärts geschaltet hat, vollendet sein muß, ehe die Ausrollroutine begonnen
w'cfucfi ΚΗΠΠ, Wii\j €ίΠ TT iCucräuiäüirEgioiSr acj um
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
ODEi<-Schaltung22,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 266, 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 5V-Kabei 125 und das 5f-KabeI 119 feststellt daß 57P= SVP gilt Dieser Umstand tritt auf,
wenn der letzte gültige Eingang des Speicherstapels 2, wie durch den5TP-Zeigerim Register 101 angezeigt und
der erste gültige Eingang im Speicherstapel 2, wie durch den 5VP-Zeiger im Register 102 angezeigt unter sich
gleich sind. Die Einrollkippschaltung 215 wird am Ende einer jeden Einrollroutine zurückgeschaltet
Das Λ/5/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 Einrollroutine war, dann adressiert der Zeiger MSA den ersten
Eingang der vom Speicherstapel 4 an den Speicherstapel 2 übertragen wurde.
Das MSA-Register 29 wird nur während einer
Ausrollroutine oder einer Einrollroutine aufdatiert und deshalb nicht geändert, während eine Speichereingabe
oder eine Speicherausgabe am Speicherstapel 2 stattfindet Durch diese Stapelimplementierung 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 Speichefeingabeopefatiori. Außerdem
erlaubt diese Implementierung der Speicherstapel, daß Eingänge, die aus dem Speicherstapel 4 in den
Speicherstapel 2 eingerollt wurden, mit neuen Eingän-
jo gen aufgrund einer Speicherabgabeoperation überlagert werden, ehe diese Eingänge einer Speicherausgabe
unterworfen worden sind. Der Wert des MSA-Registers
29 wird aufdatiert, bevor er während einer Ausroll- oder Einrollroutine verwendet wird.
Für den Fall einer Ausrollroutine wird die Notwendigkeit, das MSA- Register 29 aufzudatieren, durch die
Bit-P-Kippschaltung 218 angezeigt Wenn auf der
logische Eins vorliegt, dann wird in dem Steuerspeicher
30 eine Mikroprogrammroutine über den Speicher 34 ausgewählt, die dazu dient, das M&4-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 /W54-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 5P-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 5P/V-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 7-Leitung 209 eine logische Eins aufweist, die anzeigt, daß der Wert auf dem 5P/v"-Kabel 118 an das
5PP-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 5PP-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 Λ/5/l-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 Einrollais auch einer Ausrollroutine, und zwar durch ein
Mikroprogrammdecodersignal auf der Leitung 180 oder 181.
Die richtige Startadresse für den Speicherstapel 4 während einer Ausrollroutine ergibt sich nach der Beziehung:
Die richtige Startadresse für den Speicherstapel 4 während einer Ausrollroutine ergibt sich nach der Beziehung:
-(P- 16)]+SPP.
In dieser Gleichung nimmt SPP einen Wert zwischen 0 und 15 an, das ist der Wert, den der Zeiger SPP im
Register 106 hat
Der 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. MSAo ist der Wert im Register 29
während MSAn der aufdatierte Wert von MSA ist, der zum Adressieren des Speicherstapels 4 dient P ist ein
Bit-Wert der den Schaltzustand der Bit-P-Kippschal-
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 fund SPP gelangen
geschaltet durch mikroprogrammgesteuerte Torschaltungen, die nicht dargestellt sind, an das A-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 SVPim 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 SW-Kabel 117 eine 0 vorliegt, dann zeigt die UND-Schaltung 226 an,
dali der Wert des Zeigers avF von ΰ auf i 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 wechseil, 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
40
aufdatierL
In dieser Gleichung bedeutet V die Anzeige des Schaltzustandes der Bit- V-Kippschaltung 223. Der Wert
von V ist 1 wenn die Bit-V-Kippschaltung 223 vorwärts
geschaltet ist, anderenfalls ist er 0.
Der Wert des Zeigers STP zwischen 0 und 15 in dem Register 101 kennzeichnet die Lokalisation im Speicher-Stapel
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 Dekrementorschaltung 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,211,215,218 und 223 werden zurückgeschaltet
Eine Speicherausgabeoperation löst die Durchführung eines iriikroprograrnmvvortes aus. Είπε Funktion
die während einer Speicherausgabeoperation durchgeführt wird, besteht darin, daß ein Operanden- oder
Operator-Eingang vom Speicherstapel 2 an das ß-Register 9 oder das A-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 A-Register 10
aufbewahrt, bis ein zweiter Operand in dem anderen Register 9 oder 10 gespeichert ist und der zu
exekutierende Operator in derri 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-Rcgisler 12. Während einer anschließenden Operation werden diese Ergebnisse im
Register 12 entweder an die Spitze des Speicherstapeis 2 transportiert, und zwar durch eine Speiche» eingabeoperation,
oder über das Kabel 18 in das Register 9 öder lö. im letztgenannten Faii, wenn aiso 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 15/). Ein Dateneingang, der an das A-Register 10
während einer voraufgehenden (oder nachfolgenden) Speicherausgabeoperation an das A-Register 10 Obertragen
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 A-Register 10. Dieser Eingang in das /4-Register 10 wird
dann in einer logischen und arithmetischen i unktion 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 f 7 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 0-Zustand
befindet und die Vergleicherschaltung 115 anzeigt, daß STP+ 1= SPP ist Die Ausrollkippschaltung 211 wird
dann ü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 SVP dabei ist von 0
auf 1 während der gegenwärtigen Speichereingabeoperation umzuwechseln. Alternativ wird die Bit-V-Kippschaltung
223 während dieser Speichereingabeoperaiion über die UND-Schaltung 201 sowie die ODER^-
Schaltung 228 vorwärts geschaltet, weil die UND-Schaltung
212 signalisiert, daß eine Ausrollroutine stattfindet und die Blockierschaltung 227 die UND-Schaltung 201
dabei nicht blockiert.
Wenn die Vergleicherschaltung 113 anzeigt, daß SVP=STF+I ist, dann wird der Wert in dem Register
102 über die Inkrementorschaltung 104 sowie die UND-Schaltungen 111 und 114 inkrementiert.
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
gegenüber dem Adressenregister 27 des Speicherstapels 2 über die UND-Schaltung 23 und statt dessen
lastet die Ausrolleilung 214 die UND-Schaltung 24, worauf der Arlressenwert 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 2i4 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-K.orrektur bei der
Errechnung von MSAnerforden'.ch ist oder nicht. Diese
Berechnung wird in konventioneller Weise unter Steuerung durch ein Mikroprogramm durchgeführt. Der
berechnete Wert von MSAn wird in das B- Register 9 eingesetzt und dient dazu, über die UND-Schaltung 15c
den Speicherstapei 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
die ODER-Schaltung 22. Ein Mikroprogrammdecodersignal auf der Leitung 192 überträgt den Zeiger STPdes
Registers 191 und startet die Adressierung der Ausrollroutine und der EinroIIroutfhe. Der Eingang des
Speicherstapels 2 gelangt über das Kabel 20 in das /!-Register 10 und wird in dem Speicherstapel 4 über die
UND-Schaltung 16a gespeichert
Der neue Adressen wert im B- Register 9 wird um eine
Einheit vermehrt und das ß-Register 9 zurückgegeben.
Der Wert des Zeigers STP im Register 191, der dazu so 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 A-Register 10 ausgerollt und dann in den Speicherstapei 4
übertragen.
Die oben angegebene Folge von Schritten wird wiederholt, bis die sechzehn Eingänge aus dem
Speicherstapel 2 in den Speicherstapsl 4 ausgerollt sind.
Die Ausrollroutine bewegt den Eingang vom Register 28 in den Speicherstape! 2 unter einer Lokalisation, die es
durch den Zeiger 5TF angezeigt ist und bewegt den laufenden Wert von MSA vom ß-Register 9 in das
MSÄ-Reeister 29. Die Adressen der Register 28 und 29
dienen auch für die Ausrollroutine über die Leitung 26a 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 Gleichheitsbe-Üingung
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 ;>06 die
Bit-P-Kippschaltung 218 vorwärts geschaltet wenn die Bit-/"-Kippschaltung 208 vorwärts gesuhaiiei 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 STP
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-T-Kippschaltung 208
vorwärts geschaltet ist.
Wenn die Vergleicherschaltung 210 anzeigt, daß STP=SPPiSt, dann wird über die UND-Schaltung 204
die Bit-T-Kippschallung 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 Einrollsignal 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. V/ie im Fall der Ausrollroutine, wird nun die Adresse MSAn berechnet, indem auf
der V-Leitung 229 festgestellt wird, ob eine - lß-Korrektur
erforderlich ist oder nicht. Die Adresse wird dann in das S-Register 9 eingegeben, um üivr die
UND-Schaltung 15a zur Adressierung im Speicherstapei 4 benutzt zu werden. Der berechnete Wert der
Adresse MSAn wird auch in das AiS/4-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 Speicherstapei 4 ausgelesen wird, wird in den Speicherstape1 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 STPwird
zu diesem Zweck in das Register 191 gegeben, und zwar durch die UND-Schaltung 190 und deren Eingangsleitung
192.
Der Adressenwert des Hauptspeichers im B-Register 9 ist um eine Einheit vermindert; der Adressenwert im
Register 191 ist durch den Dekrementor 194 vermindert
Ein anderer Eingang wird von dem Speicherstapel 4 an den Speicherstapel 2 eingerollt Der Adressenwert, der
von dem Dekrementor 194 vermindert ist wird an das Register 191 zurückgegeben, und zwar über die
UND-Schaltung 195 aufgrund eines Mikroprogirammsignals auf der Leitung 182.
Diese Folge von Schritten wird wiederholt, bis die
sechzehn Eingänge eingerullt sind und ke.iie Eingänge
mehr im Speicherstapel 4 vorhanden sind. Im Falle, daß
keine sechzehn Eingänge im Speichersiapel vorhanden
sind, ergibt sich ein Sonderfall im Speicherstapel Z
indem der Zeiger SVP 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 WS 15 im Zuge einer
Speichereingabe eingegeben wurde.
Die Einrollroutine wird beendet durch Rückschaltung der Einrollkippschaltung 215, Vorwärtsschaitung der
Bit- V-Kippschaltung 223 über die ODER-Schaltung 228.
Rückschaltung der B-.t-P-Kippschaltung 218 über die
ODER-Schaltung 221 und Rückkehr auf die zuvor unterbrochene Routine.
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 MSA Registers 29 sowie die Werte der Zeiger STP. SV P und SPP und den Zustand
der Bit-rCippschaltungen V. T und P für eine
Speichereingabeoperation, fur eine Speichere jsga·
beoperation. fur eine A.usrolloperation und für eine
Einrolloperation. Eine ungültige Lokalisation ist in den
Figuren mit C bezeichnet.
Die F ι g 3a. 3b betreffen eine Speichereingabeoperation.
Der Zeiger STP zeigt zunächst den Eingang H in dt Lokalisation HS 7 des Speicherstapeis 2 an. Der
Zeiger STP wird um eine Einheit aufdatiert auf die Lokalisation HS8. und zwar während der Speichereingabeoperation
über die UND-Schaltung 109 und den inkrementor 103. Die I ND Schaltung 23 leitet den
aufdatierten Zeiger STP /um Zugriff an den Schnellspeicher 1 und die Speichereingabedaten / werden in
der Lokalisation WS 8 ι τι Speicherstapel 2 gespeichert
(vergleiche F ι g. 3b).
F ι g. 3c betrifft eine Speicherausgabeoperation. Während
der nachfolgenden Speicherausgabeoperation werden die Daten /von der Speicherposition HS8 des
Schnellspeichers ausgegeben. Sie sind adressiert durch *o
den Zeiger STP Der Zeiger STP wird dann um eine Einheit über die UND-Schaltung HO und die Dekre
mentorschaltung 105 vermindert und zeigt erneut den nächsten gültigen Eingang W in der Lokalisation WS7
des Speicherstapeis 2. *5
Die F ι g 4a bis 4d be;reffen eine Ausrollroutine. Der
Ausrollvorgang aus dem Schnellspeicher 2 wird immer bis /um letzten möglichen Moment verzögert. Es ist
Bedingung fur einen Ausrollvorgang gemäß Fig. 4a. daß der Speicherstapel (SPP=STP+ 1) voll ist. was in
der Vergleicherschalturg 115 erregt über die Leitung 121 festgestellt wird, und daß die Bit-^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 Ausrollkipp
schaltung 211 über die UND Schaltung 207 vorwärts
geschaltet wird und verursacht wird, daß die Daten Q in
das Register 28 tihc-tr.igen werden. Die Vergleiche··
schaltung 113 stellt nun fest, daß SVP=STP+\ ist,
worauf der Wert SVP im Register 102 über die UND-Schaltungen Hl und 114 durch den lnkfementor
104 um einen Wert vermehrt wird. Der Zeiger STP wird über die UND-Schaltung 109 und die lnkrementorschaltung
103, wie bei einer normalen Speichereingabeoperation,inkrementiert.
Die Ausrollroutine wird ausgelöst durch Verzweigung auf das erste Steuerwort der Routine im Speicher
30, und zwar aufgrund eines Signals auf der Leitung 214. Die Ausroilroutine berechnet zunächst den Wert von
= Modulo,b[0+l-(0
und bringt diesen Wert in das B- Register 9. Der erste
Dateneingang A in der Speicherposition WSO wird durch den Wert im Register 191 über die Leitung 26
adressiert und an den Hauptspeicher 3 Lokalisation MS 0 ausgerollt (vergleiche F i g. 4d), und zwar über das
Kabel 20, das A-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 B bis P werden in der gleichen Weise ausgerollt und die Werte im B-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 4 bis P ausgerollt sind F ι g. 4d zeigt den Inhalt des Speichersupels 4 nachdem
alle Eingänge ausgerollt sind und der Endwert des Zeigers (MSA= \5) an das MSA-Register 29 im
Schnellspeicher 1 zurückgegeben wird. Die Ausrollroutine
bewegt nun den Eingang Qaus dem Register 28 in
die Lokalisation des Speicherstapels Z die gemäß F ι 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 266. Die Leitung 198 leitet den Zeiger STP
vom Register 101 in die UND-Schaltung 23 zum Zugriff ZVT Speicherstapel-2-l>okalisation.
F ι g. 5a zeigt die Ergebnisse, nachdem der Eingang Q
und acht weitere Eingänge R 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 F.rgebnis 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 F.rgebms einer anderen Speicherausgabeoperation.
Der Zeiger STP im Register 101 ist über die UND Schaltung 110 und den Dekrementor 105
um einen Wert vermindert Da du: Vergleichsschaltung 210 feststellt, daß STP= SPPist. ehe STPdekrementiert
wurde, wird die Bit- T Kippschaltung 203 über die
UND-Schaltung 204 vorwärts geschaltet. Die Bit-Γ
Kippschaltung 208 blockiert daher die Ausrollkippschaltung 211. so daß diese nicht vorwärts geschaltet werden
kann bei der nächstfolgenden Speicherausgabeopera tion, auch wenn über die C-Leitung 121 angezeigt wird,
daß STP+ I=SPPiSt.
Fig.5d kennzeichnet das Ergebnis nach einer weiteren Speicherausgabeoperation. Der Zeiger STPist
normalerweise dekrementiert Die Vergleicherschal· tung 115 stellt fest daß, ehe STPdekrementiert war,
folgendes gegolten hat - STP+\-SPP. Der nicht dekrementierte Wert von STPwird in das SPP-Register
106 über die UND-Schaltungen 112 und 116 eingegeben
und die Γ-Leitung 209 zeigt an, daß die Bit-Γ-Kippschaltung
208 sich in ihrem vorwärts geschalteten Zustand befindet, 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 206 vorwärts geschaltet Die Bit-P-Kippschaltung
218 erinnert jetzt daran, daß die Grenze für den Zeiger 5PPüberschritten wird.
Die Fig.6a bis 6d betreffen eine Einrollroutine. Fünf
weitere Speicherausgabeoperationen, beginnend unter den Bedingungen gemäß Fig. 5d, führen zu dem is
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 /
unter der Lokalisation //59 und 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= STP ist. 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 MS/4-Register 29 abgefragt
und ist = 15, wie in Fig.4d dargestellt. Die jo
Bit-V-Kippschaltung 223 ist zurückgeschaltet und zeigt
an, daß eine - 16-Korrektur nicht erforderlich ist und der Wertzeiger 5TPist acht.
Die Berechnung ist folgende:
MSAS = Modulo,6[15-(0 · 16)] + 8 '"'
= 0 + 8
= 8
= 8
Der Zeiger 57"P wird vom Register 101 über die UND-Schaltung 190 an das Register 191 übertragen,
und zwar aufgrund eines Mikroprogrammdecodersignals auf der Leitung 192.
Dieser Wert von MSAn wird sowohl an das yV/5/4-Register 29 als auch an das Ö-Regisier 9 gegeben.
Der Wert im ß-Register 9 wird über die UND-Schaltung
15a an das SAR-Register 5 des Hauptspeichers 3 gegeben. Der im Speicherstapel 4 adressierte Eingang
wird über das Kabel 17 an die üinganglokalisation //58
des Speicherstapels 2 gegeben, die durch den Zeiger 5TPim Register 191 über das Kabel 26 adressiert ist. w
Die Einrollroutine datiert die Adressen in den
Registern 9 und 191 auf. Nun wird der Eingang //von der Lokalisation M57 an die lokalisation //57
gegeben, und so weiter werden nun die Eingange G bis
A von den Lokalisationen MSb bis M.iO an die π
Lokalisationen //56 bis //50. und zwar Hingang nach
Eingang. Die Routine kehrt dann auf das Programm zurück, das gerade lief, als diese Routine ausgelost
wurde.
Nachdem diese Routine beendet ist. wird die wi
Bit· V-Kippschallung 223 über die ODER-Schaltung 228 vorwärts geschaltet Und die Bit'P-KippschallUng 218
über die ODER-Schaltung 221 zurückgeschaltet (vergleiche Fig. 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 in F i g. 6c dargestellt ist. Die Zeiger STP und SVP sind
normalerweise um eine Einheit verringert. Der Zeiger SPPzeigt 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.
F i g. 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 5VP inkrementiert. Die Speichereingabeoperation
gemäß Fig. 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 Wtn SVP im
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.
F i g. 7d zeigt das Ergebnis nach weiteren neun Speichereingaben an. Die Zeiger STP und SVP 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 Fig.6d dargestellt, ist 8 der
Wert für MSAa. Der Wert des Zeigers SPP beträgt 9
und die Bil-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 = Modulo,6[8+I-(0 · 16)] + 9
= 0 + 9
= 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 neigen die Zustände im Speicherstapel 2 und im Speicherstapel 4 nachdem die
Eingänge // bis KV an die Lokalisationen /V/59 bi«.
MS24 inklusive ausgerolli 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 1 g. 8a. Der einzige noch verbleibende
gültige Eingang ist KK in der Lokalisation //5 10
Der Zeiger 5VP wurde während der Speicherausga beoperation nicht aufdatiert Der Zeiger STP wurde
jedoch während jeder Speicherausgabeoperation um einen Wert vermindert. Der Zeiger SPP folgt dem
Zeiger STP bei allen SpcicheratJsgabeoperalioneri,
ausgenommen die erste der fünfzehn Speicherausgabeoperationen.
Eine weitere Speicheraiisgabeoperation entfernt den
Eingang KK vom Speicherstapel 2 und löst eine Einrollroutine aus, um die Eingänge // bis A von den
17 18
Lokalisationen MS9 bis MSO an die Lokalisation HS9 = 0 + 9
bis HSO zu übertragen. Die Berechnung der arilängli- = 9
chen Hauptspeicheradresse geschieht wie folgt:
Fig.8b zeigt den Speicherstapel 2 nach dem
MSAn = Modulo,6[24—(1 · 16)]+9 5 Einrollvorgang,
= ModulO|6[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
Schnellsp- :chers (1) für Datenausgabe verfügbar,
bis sie von einer neuen Dateneingabe überspeichert werden;
e) bei Übertragung an r.'en 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 (MS) des Hauptspei- μ
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 DE2429067B2 (de) | 1978-03-02 |
DE2429067C3 true 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 |
---|---|
GB1457330A (en) | 1976-12-01 |
DE2429067B2 (de) | 1978-03-02 |
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 | |
DE2161886C2 (de) | Befehlsausführungseinheit in einer elektronischen Datenverarbeitungszentrale für die gleichzeitige Verarbeitung mehrerer Befehle | |
DE2351791C2 (de) | Datenverarbeitungsanlage | |
EP0013737B1 (de) | Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem | |
DE1449765C3 (de) | Einrichtung zur Abfrage eines assoziativen Speichers | |
DE2704842C2 (de) | Im Pipeline-Betrieb arbeitende Datenverarbeitungseinrichtung | |
DE2515696C2 (de) | Datenverarbeitungssystem | |
DE2715073C3 (de) | Mikroprogrammierte Rechner-Steuervorrichtung | |
DE2339636C2 (de) | Einrichtung zur Adressierung eines schreibbaren Mikroprogrammspeichers | |
DE3302922A1 (de) | Verfahren und vorrichtung fuer speichersteuerungen | |
DE2630323A1 (de) | Datenspeichereinrichtung | |
DE2240433A1 (de) | Hierarchische datenspeichereinrichtung | |
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 | |
DE2739525C2 (de) | Rechner | |
DE3031964A1 (de) | Rechnersystem, bei dem sich der programmspeicher zum durchlaufen eignet, wobei einem befehl nicht zugeordnete daten einzeln detektiert werden | |
DE2245284A1 (de) | Datenverarbeitungsanlage | |
EP0655688B1 (de) | Programmspeichererweiterung für einen Mikroprozessor | |
DE1499224C3 (de) | Datenverarbeitungsanlage mit Kellerspeichereinrichtungen | |
DE2704560C2 (de) | Datenverarbeitende Anlage mit paralleler Bereitstellung und Ausführung von Maschinenbefehlen | |
DE2425380C2 (de) | Datenverarbeitungsanlage zur parallelen Ausführung von Verarbeitungsoperationen | |
DE1499286B2 (de) | Datenbearbeitungsanlage | |
DE2024584B2 (de) | Steuereinrichtung für eine allgemeine Datenverarbeitungseinrichtung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C3 | Grant after two publication steps (3rd publication) | ||
8339 | Ceased/non-payment of the annual fee |