DE2429067C3 - Speicherschaltung - Google Patents

Speicherschaltung

Info

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
Application number
DE2429067A
Other languages
English (en)
Other versions
DE2429067B2 (de
DE2429067A1 (de
Inventor
Robert Albert Endicott Healey
Everett Montague Endwell Shimp
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2429067A1 publication Critical patent/DE2429067A1/de
Publication of DE2429067B2 publication Critical patent/DE2429067B2/de
Application granted granted Critical
Publication of DE2429067C3 publication Critical patent/DE2429067C3/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System 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 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:
-(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
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
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)

Patentansprüche:
1. Speicherschaltung, bei der die zuletzt eingespeicherten Daten zuerst wieder abgegeben werden mit einem dateneingabeseitig angeordneten, mit einer Vielzahl von einzeln aneinandergereihten Registern ausgestatteten Schnellspeicher und einem mit einer Vielzahl von einzeln aneinandergereihten Registern ausgestatteten, langsameren Hauptspeicher zur Aufnahme der Daten aus den Registern des Schnellspeichers bei Datenüberfluß im Schnellspeicher, gekennzeichnet durch folgende Merkmale:
a) Die Dateneingabe erfolgt in die Register (HS ...) des Schnellspeichers (1) nacheinander in der zyklischen Reihenfolge der Register;
b) die Übertragung bei Überfluß an den Hauptspeicher (3) erfolgt unter Beibehalt der Reihenfolge erst dann, wenn eine Dateneingabe für die Speicherschaltung ansteht und alle Register (HS ...) des Schnellspeichers mit Daten bespeichert sind, die noch nicht ausgegeben wurden;
c) die bei Übertragung gemäß Merkmal b) anstehende Dateneingabe wird bis zur erfolgten Übertragung in einem dafür vorgesehenen Zwischenspeicher (28) zwischengespeichert;
d) die an den Hauptspeicher (3) übertragenen Daten bleiben in den Registern (HS ...) des 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 beträgt, wobei η eine positive ganze Zahl größer als 1 ist.
DE2429067A 1973-06-26 1974-06-18 Speicherschaltung Expired DE2429067C3 (de)

Applications Claiming Priority (1)

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

Publications (3)

Publication Number Publication Date
DE2429067A1 DE2429067A1 (de) 1975-01-16
DE2429067B2 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)

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

Family Cites Families (8)

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

Also Published As

Publication number Publication date
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