DE2429067A1 - 8speicherschaltung - Google Patents

8speicherschaltung

Info

Publication number
DE2429067A1
DE2429067A1 DE2429067A DE2429067A DE2429067A1 DE 2429067 A1 DE2429067 A1 DE 2429067A1 DE 2429067 A DE2429067 A DE 2429067A DE 2429067 A DE2429067 A DE 2429067A DE 2429067 A1 DE2429067 A1 DE 2429067A1
Authority
DE
Germany
Prior art keywords
memory
register
circuit
data
registers
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE2429067A
Other languages
English (en)
Other versions
DE2429067C3 (de
DE2429067B2 (de
Inventor
Robert Albert Healey
Everett Montague 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

International Business Machines Corporation, Armonk, N.Y. Io5o4, USA
Speicherschaltung
Die Erfindung betrifft eine Speicherschaltung, bei der die zuletzt eingespeicherten Daten zuerst wieder abgegeben werden mit einem dateneingabeseitig angeordneten, mit einer Vielzahl von einzeln aneinandergereihten Registern ausgestatteten Schnellspeicher und einem mit einer Vielzahl von einzeln aneinandergereihten Registern ausgestatteten langsameren Hauptspeicher zur Aufnahme der Daten aus den Registern des Schnellspeichers bei Datenüberfluß im Schnellspeicher.
Bei Speicherschaltungen dieser Art dient der langsamere Hauptspeicher dazu, im Falle des Datenü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
409883/0933
2 P 15 979
im Durchschnitt verlängert. 9 A 9 Q Ω R 7
Aufgabe der Erfindung ist es, eine Speicherschaltung der eingangs genannten Art so auszugestalten, daß auch, wenn Daten in den Hauptspeicher abgespeichert worden sind, der Zugriff im Durchschnitt möglichst niedrig ist.
Die Erfindung ist gekennzeichnet durch folgende Merkmale
a) die Dateneingabe erfolgt in die Register des Schnellspeichers in der zyklischen Reihenfolge der Register;
b) die Übertragung bei Überfluß an den Hauptspeicher erfolgt unter Beibehalt der Reihenfolge erst dann, wenn eine Dateneingabe für die Speicherschaltung ansteht und alle Register des Schnellspeichers mit Daten bespeichert sind, die noch nicht ausgegeben wurden;
c) die bei Übertragung gemäß Merkmal b anstehende Dateneingabe wird bis zur erfolgten Übertragung in einem dafür vorgesehenen Zwischenspeicher zwischengespeichert;
d) die an den Hauptspeicher übertragenen Daten bleiben in den. Registern des Schnellspeichers für Datenausgabe verfügbar, bis sie von einer neuen Dateneingabe überspeichert werden;
e) bei Übertragung an den Hauptspeicher werden die Daten auf allen Registern des Schnellspeichers an den Hauptspeicher tibertragen;
f) die Rückübertragung der Daten .aus den Registern des Hauptspeichers an den Schnellspeicher erfolgt, wenn die Daten aller Register des Schnellspeichers ausgegeben sind;
g) die Rückübertragung erstreckt sich nur auf diejenigen Daten, deren Duplikate nicht in der Zwischenzeit direkt aus dem Schnellspeicher abgegeben worden sind.
Nach der Erfindung erfolgt die Übertragung vom Schnellspeicher zum Hauptspeicher und die Rückübertragung 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 schneUer. 409883/0933
Unter diesem Gesichtspunkt ist auch von Bedeutung die Tatsache, daß nicht alle Daten, die in den Hauptspeicher abgespeichert worden sind, wieder rückübertragen werden müssen, wodurch man auch Übertragungszeit einspart und damit den Zugriff begünstigt.
Eine Weiterbildung, die sich durch besonders einfache Gewinnung der für die Übertragung und Rückübertragung erforderlichen Adressen auszeichnet, ist dadurch gekennzeichnet, daß drei Register vorgesehen sind, von denen das erste Register den Wert öines 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 Registei 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 Ordnungzahl 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 uen Registern des Hauptspeichers vorhanden ist.
Die Erfindung wird nun anhand der beigefügten Zeichnung näher erläutert.
409883/0933
- 4 P 15 979
In der Zeichnung zeigt:
Figur 1 eine Speicherschaltung nach der Erfindung,
Figur 2a und 2b die Schaltungsmittel zur Adressierung bei
Übertragung und RückÜbertragung zu dem in Figur 1 dargestellten Ausführungsbeispiel, und die
Figuren 3 bis 8 tabellarisch den sich bei Übertraguns- und
Rückübertragungsoperationen ergebenden Speicherinhalt in den Registern des Schnellspeichers und des Hauptspeichers bei dem in Figur 1 dargestellten Ausführungsbeispiel.
In der nachfolgenden Figurenbeschreibung ist, um den Unterschied deutlich zu machen, von einer"speichereingabe" beziehungsweise "speicherausgabe" die Rede, wenn es sich darum handelt, Daten in die Speicherschaltung von außen einzugeben oder nach außen abzugeben. Zum Unterschied davon ist, wenn es sich um die Datenübertragung beziehungsweise Rückübertragung zwischen Schnellspeicher und Hauptspeicher handelt, von einem*Einroll- beziehungsweise''Ausrollvorgang11 gesprochen.
409883/0933
5 P 15 979
Gemäß Figur 1 ist mit 5 ein Hauptspeicher, mit 11 eine arithmetische Logikeinheit und 1 ein einem datenverarbeitenden Gerät zugeordneter Schnellspeicher bezeichnet. Das A-Register1o und das B-Register 9 sind Eingaberegister der Logikeinheit 11 und das Z-Register 12 ist Ausgaberegister der Logikeinheit 11. Bei dem datenverarbeitenden Gerät handelt es sich um ein solches, dessen Mikroprogrammroutinen durch Steuerwörter gesteuert werden, die in dem Steuercpeicher 3o gespeichert sind. Wenn ein Steuerwort aus dem Steuerspeicher 3o ausgelesen wird, gelangt es in das Steuerregister 31. Der Steuerdecoder 32 dient dazu, das datenverarbeitende Gerät aufgrund eines Steuerwortes aus dem Steuerregister 31 anzusteuern. Der Steuerdecoder 32 und einsieht dargestellter Taktgeber tasten nicht dargestellte Torschaltungen, um Rechnungen durchzuführen und Datenpfade, über die Sie 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 Operanten zu speichern. Außerdem arbeitet das datenverarbeitende Gerät mit einem Speichers'tapel 4 des gegenüber dem Schnellspeicher 2 langsameren Hauptspeichers 3. Dieser Speicherstapel 4 dient dazu, den Überfluß aus dem Schnellspeicher 1 zu speichern. Im dargestellten Ausführungsbeispiel umfaßt der Speicherstapel 2 die Register HSO bis HS15, die im folgenden*Lokalisationenl*genannt sind.
Der Zugriff zum Speicherstapel 2 erfolgt seitens des Stapelspitzenzeigers STP über die Oder-Schaltung 22 und die UND-Schaltung 23.· Im übrigen erfolgt der Zugriff zum gesamten Schnellspeicher 1 über die Adressenkabel 26, 26a, 26b, mit denen die UND-Schaltungen 24,
25, 25a angesteuert werden, die ihrerseits die ODER-Schaltung 22 ansteuern.
Der Stapelspitzenzeiger STP in dem Register 1o1 aus Figur 2a vollzieht nur den Zugriff zum Speicherstapel 2, während der Speichereingabeoperation und der Speicherausgabeoperation.- Alle anderen Zugriffe zum Schnellspeicher 1 erfolgen über die Adressenkabel
26, 26a und 26b.
409883/0933
2A29067
6 P 15 979
Der Hauptspeicher 3 weist eine Vielzahl von .Wortlokalisationen für Speichereingaben einschließlich der Stapellokalisationen MSO bis MSN auf. über ein Eingabe-Ausgabe-Speicherdatenregister(SDE) 8 und das Kabel 17 wird ein Datenpfad für Operatoren und Operanten gebildet, der vom Schnellspeicher 1 zum Hauptspeicher 3 und zum Α-Register führt. Während der sogenannten Einrolloperationen, während derer Daten vom Speicherstapel 4 zum Speicherstapel 2 gelangen, werden die Daten direkt über das Kabel 17 an den Schnellspeicher 1 gegeben. Über das Kabel 18 gelangen aus dem Z-Register 12 sofort die Ergebnisse aus der Logikeinheit 11 in den Speicherstapel 2 beziehungsweise an das Α-Register 1o oder das B-Register 9 für die weitere Verarbeitung.
Der Schnellspeicher 1 weist eine Vielzahl von Wortpositionen für Speichereingaben auf einschließlich der Lokalisation HSO bis HS15· Informationen aus dem Schnellspeicher 1 werden über das Kabel 2o ausgelesen und gelangen an das Α-Register 1o oder an das B-Register 9· Diese Informationen werden dann an die Logikeinheit 11 weitergeleitet und dort verarbeitet. Der Ausgang des Α-Registers ist über eine UND-Schaltung 14 an das Operationsregister 13 angeschlossen wenn Speicherausgabe eines Operators aus dem Speicherstapel 2 erfolgt. Die Ausgabe des Α-Registers 1o gelangt über das Kabel 21 und die UND-Schaltung 16a sowie das SDR-Register 8 an den Speicherstapel 4 des Hauptspeichers 3 wenn eine Ausrolloperation stattfindet. Das Kabel 21 und die UND-Schaltung 16b bilden einen vom Α-Register 1o zum Hauptspeicher 3 führenden Datenpfad für Datenspeicheroperationen, die nicht im Speicherstapel stattfinden sollen.
Zur Adressierung des Hauptspeichers 3 dient ein Hauptspeicheradressenregister ( SAR) 5. Die Ausgabe des B-Registers 9 gelangt über das Kabel 19 und die UND-Schaltung 15a während einer Einrolloperation an das SAR-Register 5. Bei einer Ausrolloperation ist das B-Register 9 über das Kabel 19 und die UND-Schaltung 15c an das SAR-Register 5 angeschlossen. Die nicht zum Speicherstapel gehörigen Teile des Hauptspeichers 3 werden durch das B-Register über das Kabel 19 und die UND-Schaltung 15b, die an das SAR-Register 5 angeschlossen ist, adressiert. Die Mikroprogrammdecoderleitungen 182, 183, 184 steuern die UND-Schaltungen 15a, 15b, 15c, 16a und 16b an. 409883/0933
7■ - P 15 979
In den Figuren 2a und 2b sind die Schaltungsteile dargestellt, die nötig sind, um den Speicherstapel 2 des Schnellspeichers 1 zu adressieren und zu steuern.
Der Speicherstapel 2 erfordert 2n Eingangspositionen, damit ein ökonomischer zyklischer Adressenaufdatierungsmechanismus in den Registern 1o1, 1o2 und in den Inkrementoren 1o3t 1o4 und dem Dekrementor 1o5 für die Stapelspitzenzeiger STP und SVP stattfinden kann. Nur zum Zwecke der Erläuterung sind für den Speicherstapel 2 2^ also 16 Eingänge entsprechend den 16 Lokalisat ionen HSO bis HS15 vorgesehen.
Das Register 1o2 enthält normalerweise einen Zeiger SVP, auf dem frühesten gültigen Eingang des Speicherstapels 2. Wie weiter unten noch dargelegt, gibt es einen ganz besonderen Umstand, unter dem das Register 1o2 nicht diesen gültigen Eingang anzeigt. Das Register 1oT enthält einen Zeiger STP auf dem letzten gültigen Eingang des Speicherstapels 2, also der Stapelepitze.
Das Register 1o6 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 1o1 und 1o2 zeigt das Register 1o6 häufig auf einen ungültigen Eingang.
Wenn das Register 1o6 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 1o6 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 Figur 2a und 2b eine Vielzahl von verschiedenen Polgen und Voraussetzungen berücksichtigen muß, sind eine Vielzahl von UND-Schaltungen 1o7 bis 112 und 2o1 bis 2o7 vorgesehen, die von aufeinanderfolgenden Taktsignalen T1 bis T4 angesteuert werden.
409883/0933
8 P 15 979.
Die Vergleicherschaltung 113 vergleicht den in dem Inkrementor 1o3 um +1 vermehrten Wert des Zeigers STP aus dem Register 1o1 mit dem Wert des Zeigers SVP im Register 1o2. Wenn diese beiden Werte gleich sind ( also wenn STP + 1 « SVP ) dann leitet die UND-Schaltung 114 den Wert des Zeigers SVP aus dem Register 1o2 vermehrt um +1 in dem Inkrementor 1o4 also SVP + 1 an die UND-Schaltung 111 und über das SVN-Kabel 117 an die Vergleicherschaltung 224. Wenn eine Speichereingabeoperation durchgeführt ist, dann gelangt durch die UND-Schaltung 111 der Wert SVP + 1 in das Register 1o2. Die auf diese Weise vorgenommene Weiterschaltung des Zeigers SVP in dem Register 1o2 zeigt an, daß durch die Speichereingabeoperation ein Eingang des Speicherstapels, der zuvor an den Speicherstapel 4 ausgerollt wurde, mit einem neuen gültigen Eingang gespeichert wird.
Die Vergleicherschaltung 115 entscheidet, ob STP + 1 = SPP ist. Wenn diese beiden Werte gleich sind, dann gelangt über die UND-Schaltung 116 der Wert des Zeigers STP im Register 1o1, der auf dem ST-Kabel 119 vorliegt, an die Eingangsseite der UND-Schaltung 112 und über das SPN-Kabel 118 an die Vergleicherschaltung 22o. Wenn eine Speicherausgabeoperation durchgeführt ist und die Bit-T-Kippschaltung 2o8 auf T » 1 vorwärtsgeschaltet ist, dann gelangt ein Signal auf der T-Leitung 2o9 an die UND-Schaltung 112, die daraufhin den Wert STP auf der SPN-Leitung 118 in das SPP-Register 1o6 gelangen läßt.
Wenn der Wert des Registers 1o1 auf diese Weise in das Register 1o6 eingespeist wird aufgrund einer Speicherausgabeoperation, dann entspricht das einem Herabzählen des Registers 1o6 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 oben erwähnten Umstand, unter dem der Zeiger SPP im Register 1o6 einen ungültigen Eingang im Speicherstapel 2 anzeigt.
Die Bit-T-Kippschaltung 2o8 wird durch die UND-Schaltung 2o4 während einer Speicheroperation vorwärtsgeschaltet, wenn die Vergleicherschaltung 21 ο anzeigt, daß der Wert auf dem ST-Kabel 119 dem Wert auf dem SP-Kabel 12o gleicht, also STP * SPP gilt.
409883/0933
9 P 15 979
Die Bit-T-Kippschaltung 2o8 wird zurückgeschaltet durch die UND-Schaltung 2o5, 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 2o8 hat zwei Aufgaben. Die öine Aufgabe besteht darin, über die !--Leitung 2o9 den Wert aus dem STP-Register 1o1 in das SPP-Regisxter 1o6 zu leiten. Das darf nicht stattfinden ehe der STP-Zeigerwert den Wert des SPP-Zeigers angenommen hat. Demzufolge wird die Bit-T-Kippschaltung 2o8 nicht vorwärtsgeschaltet wenn nicht die Vergleicherschaltung 21 ο anzeigt, daß STP = SPP gilt.
Die andere Aufgabe der Bit-T-Kippschaltung 2o8 besteht darin, das Ausrollsignal zu blockieren. Wenn auf der leitung 2o9 ein Bit-T ■« vorliegt, dann kann die Ausrollkippschaltung 211 nicht über die UND-Schaltungen 2o7 und 212 vorwärtsgeschaltet werden. Wenn dagegen ein Bit-T-= O auf der Leitung 213 vorliegt und auf der G-Leitung 121 angezeigt wird, daß STP + 1 « SPP ist, dann schalten die UND-Schaltungen 2o7 und 212 die Ausrollkippschaltung 211 während einer Speichereingabeoperation vorwärts.
Wie aus der Folge der Taktsignale ersichtlich, wird die Ausrollkippschaltung 211 durch die UND-Schaltung 2o7 vorwärtsgeaphaltet, ehe die Bit-T-Kippschaltung 2o8 durch die UND-Schaltung 2o5 zurückgeschaltet ist. Die Bedingung für das Ausrollsignal wird also geprüft, bevor die Bit-T-Kippschaltung 2o8 umgestellt wird. Das bedeutet, daß, wenn die Bit-T-Kippschaltung 2o8 während einer Speichereingabeoperatiori zurückgeschaltet wird, nicht etwa irrtümlich ein Ausrollsignal abgegeben wird. Die Ausrollkippschaltung 211 wird am Ende einer Seelen Ausrollroutine zurückgeschaltet.
Wenn die Ausrollkippschaltung 211 vorwärtsgeschaltet 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. *
/, η Q a a ^ / η Q
-ίο- Ρ 15 979
Wenn auf der Leitung 214 keine Anzeige darüber vorliegt, daß die Kippschaltung 211 vorwärtsgescbaltet ist, dann blockiert die Blockierschaltung 122 nicht während einer Speichereingabeoperation die UND-Schaltung 1o8. Die Folge ist, daß die UND-Schaltung 1o8. und die ODER-Schaltung 123 die UND-Schaltung 23 ansteuern, um den Wert des Zeigers STP über die ODER-Schaltung 22 in das Adressenregister 27 des Schnellspeichers 1 gelangen zu lassen.
Wenn die Ausrollkippschaltung 211 vorwärtsgeschaltet ist, dann wird über die Leitung 214 die 'Blockierschaltung 122 veranlaßt, die erwähnten Operationen zu blockieren. Statt dessen steuert während dieser Speichereingabeoperation die Leitung 214 über die UND-Schaltung 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 Speiohereingabeoperation, die die Ausrollkippschaltung 211 vorwärtsgeschaltet hat, vollendet sein muß, ehe die Ausrollroutine begonnen werden kann, wird ein Wiederanlaufregister 28 im Schnellspeicher 1 benötigt, um den Eingang aufzunehmen, der eingespeichert werden soll, wenn keine Speicherpositionen im Speicherstapel 2 verfügbar sind.
Während einer Speicherausgabeoperation liegt immer ein gültiger Eingang im Speicherstapel 2 vor. Die UND-Schaltung 1o7 sowie die ODER-Schaltung 123 steuern deshalb die UND-Schaltung 23 an, so daß der Wert des Zeigers-STP aus dem Register 1o1 über die ODER-Schaltung 22 an das Adressenregister 27 gelangt. Alle anderen Werte für das Adressenregister 27 werden zugeliefert von dem Kabel 26 über die ODER-Schaltung 22, dann, wenn die UND-Schaltung 25 durch die ODER-Schaltung 124 aufgetastet ist, oder aber vom Kabel 26a, wenn die UND-Schaltung 25a durch ein Mikroprogrammdecodersignal auf der Leitung 183 aufgetastet ist oder über das Kabel 26b, wie oben beschrieben. Bei dem Mikroprogrammdecodersignal auf der Leitung 183 handelt es sich um das Signal "Kein Stapelzugriff1'.
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 2o3 vorwärtsgeschaltet während einer Speicherausgabeoperation, sofern die Vergleioherschaltung 216
409883/0933
- 11 - P 1.5 979
über das SV-Kabel 125 und das ST-Kabel 119 feststellt, daß STP ü SVP gilt. Dieser Umstand tritt auf, wenn der letzte gültige Eingang des Speicherstapels 2, wie durch den STP-Zeiger im-Register 1o1 angezeigt und der erste gültige Eingang im Speicherstapel 2, wie durch den SVP-Zeiger im Register 1o2 angezeigt, unter sich gleich sind. Die Einrollkippschaltung wird am Ende einer jeden Einrollroutine zurückgeschaltet.
Das MSA-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 Speicher^stapel 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 Speichereingabeoperation. Außerdem erlaubt diese Implementierung der Speicherstapel, daß !Eingänge die aus dem Speicherstapel 4 in den Speicherstapel 2 eingerollt wurden, mit neuen Eingängen aufgrund einer Speichereingabeoperation ü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 Einroll- rputine verwendet wird.
40988 3/0933
2A29067
12 - P 15 979
Pur den Fall einer Ausrollroutine wird die Notwendigkeit, das MSA-Register 29 aufzudatieren, durch die Bit-P-Kippschaltung 218 angezeigt. Wenn auf der Ausgangsleitung 214 der Kippschaltung 211 eine logische Eins vorliegt, dann wird in dem Steuerspeicher 3o eine Mikroprogrammroutine über den Speicher 34 ausgewählt, die dazu dient, das MSA-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 MSA-Register 29 aufdatiert werden muß, zu errechnen.
Die Kippschaltung 218 wird während einer Speicherausgabeoperation durch die UND-Schaltung 2o6 vorwärtsgeschaltet, wenn die Vergleicherschaltung 219 anzeigt, daß auf dem SP-Kabel 12o eine Null vorliegt, was der Fall ist, wenn der Zeiger SPP im Register 1o6 die Lokalisation HSO im Speicherstapel 2 anzeigt, und wenn außerdem die Vergleicherschaltung 22o anzeigt, daß auf dem SPN-Kabel 118 ein Wert entsprechend 15 vorliegt, was der Fall ist, wenn die ' Lokalisation HS15 im Speicherstapel angezeigt wird und wenn außerdem die T-Leitung 2o9 eine logische Eins aufweist, die anzeigt, daß der Wert auf dem SPN-Kabel 118 an das SPP-Register 1o6 gelangt.
Die Bit-P-Kippschaltung wird vorwärtsgeschaltet, wenn .während der Speicherausgabeoperation der Wert des Zeigers SPP im Register 1o6 bei Verminderung die Grenze zum sechzehnten Eingang überschreiten würde. Der Wert des SPP-Zeigers im Register 1o6 wird dann Null und der neue Wert, der dann in dem Register 1o6 infolge Verminderung um eineiEinheit entsteht, ist 15.
Da.das MSA-Register 29 sowohl während der Einroll- als auch während der Ausrollroutine aufdatiert wird, ist die Bit-P-Kippschaltung 218 über die ODER-Schaltung 221 zurückgeschaltet beim Ende sowohl einer Einroll- als auch einer Ausrollroutine, und zwar durch ein Mikroprogrammdecodersignal auf der Leitung I80 oder 181.
409883/0933
- -, 3 - P 1? 979
Die richtige Startadresse für den Speicherstapel 4 während einer Ausrollroutine ergibt sich nach der Beziehung:
MSAn = Modulo16 f MSAQ + 1 - ( P χ 16 ) ] + SPP.
In dieser Gleichung nimmt SPP einen Wert zwischen O und 15 an, das ist der Wert, den der Zeiger SPP im Register 1o6 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 eineAusrolloperation signalisiert wird. MSAQ ist der Wert im Register 29 während MSA^ der aufdatierte Wert von MSA ist, der zum Adressieren des Speicherstapels 4 dient. P ist ein Bit-Wert, der den Schaltzustand der Bit-P-Kippschaltung 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ärtsgeschaltet ist, anderenfalls ist P »,0. Die Werte P und SPP gelangen geschaltet durch mikroprogrammgesteuerte Torschaltungen, die nicht dargestellt sind, an das A-rRegister 1o beziehungsweise an das B-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ärtschaltung der Bit-V-Kippschaltung 223 hängt davon ab, ob oder ob nicht der Wert des Zeigers SVP im Register 1o2 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 SVN-Kabel 117 eine O vorliegt, dann zeigt die UND-Schaltung 226 an, daß der Wert des Zeigers SVP von O auf 1 wechselt. Wenn diese Anzeige während einer Speicherausgabeoperation stattfindet, dann schaltet die UND-Schaltung 2o2 die Bit-V-Kippschaltung 223 zurück, wenn ein Mikroprogrammdeood'-.ersignal an die Eingabeleitung 185 gelangt.
409883/0933
- 14 - P 15 979
Wenn die UND-Schaltung 226 anzeigt, daß der Wert des Zeigers SVP von ρ auf 1 wechselt, dann blockiert die Blockierschaltung 227 die UND-Schaltung 2o1 und die ODER-Schaltung 228, so daß die Bit-V-Kippschaltung 223 nicht vorwärtsgeschaltet werden kann.
Wenn die OTD-Schaltung 2o1 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 2o1 und die ODER-Schaltung 228 vorwärtsgesehaltet. Die Bit-V-Kippschaltung 223 ist außerdem über die ODER-Schaltung 228 vorwärtsgeschaltet 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 eBtspricht. .
Aus diesem Grunde ist die richtige Startadresse für den Speicheretapel 4 während einer Einrollroutine
MSAn = Modulo16 [mSAq - (V χ 16 )J + STP aufdatiert.
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ärtsgeschaltet ist, anderenfalls ist er O.
Der Wert dee Zeigers STP zwischen 0 und 15 in dem Register 1o1 kennzeichnet die Lokalisation im Speicherstapel 2 und das ist eine Einheit weniger als die Lokalisation aus der dieser Eingang gerade ausgespeichert wurde, da die Speicherausgabeoperation, die eine Reduzierung des Wertes des Registers 1o1 durch die in der Dekrementorschaltung 1o5 und die UND-Schaltung 11 ο verursacht vollendet wird, ehe die Einrollroutine startet. Bei Beginn werden die Register 29, 1o1, 1o2 und 1o6 sämtlichst, auf 0 geschaltet und die Kippschaltungen 2o8, 211, 215, 218 und 223 werden zurückgeschaltet.
409883/0933
15 - P 15 979
Eine Speicherausgabeoperation. löst die Durchführung eines Mikroprogrammwortes aus. Eine Funktion die während einer Speicherausgabeoperation durchgeführt wird, besteht darin, daß ein» Operanten- oder Operator-Eingang vom Speicherstapel 2 an das B-Register 9 oder das Α-Register 1o gelangt. Im Falle, daß der Eingang ein Operator ist, wird der Eingang über die UND-Schaltung H in das Operationsregister 13 gesteuert. Im Falle, daß der Eingang ein Operant ist, wird er in dem B-Register 9 oder A-r-Register 1o aufbewahrt, bis ein zweiter Operant in dem anderen Register 9 oder 1o gespeichert ist und der zu exekutierende Operator in dem Operationsregister 13 steht. Die logische oder arithmetische Funktion, die aufgrund dieser Operanten durchgeführt werden soll, wird dann durchgeführt
Die Ergebnisse der arithmetischen und logischen Funktion aufgrund der Operanten in den Registern.9 und 1o gelangen in das Z-Register 12. Während einer anschließenden Operation werden diese Ergebnisse im Register 12 entweder an die Spitze des Speicherstapels 2 transportiert, und zwar durch eine Speichereingabeoperation, oder über das Kabel 18 in das Register 9 oder 1o. Im letztgenannten Fall, wenn · also die Ergebnisse vom Register 12 in die Register 9 oder 1o 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 B-Register 9 gegeben und die Adresse gelangt dann in das Speicheradressenregister 5 des Hauptspeichers 3» und zwar über die UND-Schaltung 15b. Ein Dateneingang, der an das Α-Register 1o während einer voraufgehenden ( oder nachfolgenden ) Speicherausgabeoperation an das Α-Register 1o übertragen wird, wird dann über das Kabel 21 sowie die UND-Schaltung 16b an die ausgewählte Adresse im Hauptspreicher 3 übertragen. Alternativ wird die im Adressenregister 5 vorgesehene Adresse über das B-Register 9 benutzt, um die Daten aus den Bezirken des Hauptspeichers 3 auszulesen, die nicht zum Speicherstapel gehören, und zwar auszulesen in das Α-Register 1o. Dieser Eingang in das Α-Register 1o wird dann in einer logischen und arithmetischen Funktion in Abhängigkeit von dem im Register 13
409883/0933
16 P 15 979
befindlichen Operator verarbeitet.
Adressen, die in das B-Register 9 ausgegeben wurden zum Zugriff für den Hauptspeicher 3» dienen auch dazu, Eingänge aus dem nicht zum Speicherstapel gehörigen Teil des Hauptspeichers zugänglich zu machen, welche Eingänge dann über das Kabel 17 an den Speicherstapel 2 ausgegeben werden.
Im folgenden wird eine Ausrollroutine näher beschrieben. Es sei angenommen, daß bei Beginn einer Speichereingabeoperation die Bit-T-Kippschaltung 2o8 zurückgeschaltet ist, sich also in ihrem O-Zustand befindet, und die Vergleicherschaltung 115 anzeigt, daß STP + 1 μ SPP ist. Die Ausrollkippschaltung 211 wird dann über die UHD-Sehaltung 2o7 und 212 vorwärtsgeschaltet.
Auch die Bit-V-Kippschaltung 223 wird über die UND-Schaltung 2o2 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 Speichereingabeoperation über die UND-Schaltung: 201 sowie die ODER-Schaltung 228 vorwärtsgeschaltet,--weil die UND-Schaltung 212 signalisiert, daß eine Ausrollroutine stattfindet und die Blockierschaltung 227 die UND-Schaltung 2oi dabei nicht blockiert-
Wenn die Vergleicherschaltung 113 anzeigt, daß SVP = STP + 1 ist, dann wird der Wert in dem Register 1o2 über die Inkrementorschaltung 1o4 sowie die UND-Schaltungen 111 und 114 inkrementiert.
0^ Als nächstes wird der Wert in dem Register 1o1 über die Inkrecn mentorschaltung 1o3 und die UND-Schaltung 1o9 inkrementiert. Da
-^. die Ausrolleitung 214 anzeigt, daß die Ausrollkippschaltung vorwärtsgeschaltet ist, blockiert die Blockierschaltung 122 das ST-Kabel 119 gegenüber dem Adressenregister 27 des Speicherstao pels 2 über die UND-Schaltung 23 und statt dessen tastet die Ausrolleitung 214 die UND-Schaltung 24» worauf der Adressenwert des Registers 28 (im Register 28a ) an das Register 27 gelangt. Der Dateneingang für Speichereingaben, der entweder im SDR-Register 8 oder im Z-Register 12 steht, wird in das Register 28 eingespeist.
17 P 15 979
Die Leitung 214 zwingt eine feste Verzweigungsadresse im Speicher 34, der zur Speicherung von Konstanten vorgesehen ist, in das Speicheradressenregister 33 des Steuerspeichers 3o, um auf das erste Mikroprogrammsteuerwort der Ausrollroutine zu verzweigen.· Die erste Punktion dieser Routine ist die Errechnung von MSAn. Die P-Ieitung 222 dient dazu, auf eines von zwei Mikroprogrammsteuerwörtern in dem Steuerspeicher 3o zu verzweigen, und zwar abhängig davon, ob eine ^-16-Korrektur bei der Errechnung von
erforderlich ist oder nicht. Diese Berechnung wird in konventioneller Weise unter Steuerung durch ein Mikroprogramm durchgeführt. Der berechnete Wert von MSA«. wird in das B-Register 9 eingesetzt und dient dazu, über die UND-Schaltung 15c den Speicherstapel 4 zu adressieren.
Der erste Eingang des Speicherstapels 2, der ausgerollt werden soll, wird durch den Zeiger STP im Register 1o1 angezeigt. Dieser Wert des Zeigers STP wird an das Adressenregister 27 des Schnellspeichers 1 übergeben, und zwar über die UHD-Schaltung 19o, 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 STP des Registers 191 und startet die Adressierung der Ausrollroutine und der Einrollroutine. Der Eingang des Speicherstapels 2 gelangt über das Kabel 2o in das A-rRegister 1o und wird in dem Speicherstapel 4 über die UND-Schaltung 16a gespeichert.
Der neue Adressenwert im B-Register 9 wird um eine Einheit vermehrt und das B-Register 9 zurückgegeben. Der Wert des Zeigers STP im Register 191, der dazu dient, den Zugriff zum Schnellspeicher 1 über die Leitung 26 vorzunehmen, wird auch, und zwar über den Inkrementor 193 unreinen Wert vermehrt. Der vermehrte Wert wird über die UND-Schaltung 196 inudas Register 191 zurückgegeben, und zwar aufgrund eines Mikroprogrammsignals auf der Leitung 184. Während des nächsten Ausrollroutinezyklusses wird der nächste Eingang dem Speicherstapel 2 in das Α-Register 1o ausgerollt und dann in den Speicherstapel 4 übertragen.
409883/0933
18 P 15 97!?
Die oben angegebene Folge von Schritten wird wiederholt, bis die sechzehn Eingänge aus dem Speicherstapel 2 in den Speicherstapel 4· ausgerollt sind.
Die Ausrollroutine bewegt den Eingang vom Register 28 in den Speicberstapel 2 unter einer lokalisation, die durch den Zeiger STP angezeigt ist und bewegt den laufenden Wert von MSA vom B-Register 9 in das MSA-Register 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 STP an das Register 27.
Die Ausrollroutine ist schließlich beendet durch Rüekschaltung der Kippschaltung 211 und durch Rüekschaltung 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 1o1 und 1o2 gleich sind. Diese Gleichheitsbedingung wird in der Vergleicherschaltung 216 ermittelt und die Einrollkippschaltung 215 wird über die UND-Schaltung 2o3 vorwärtsgeschaltet.
Zu dieser Zeit wird über die UND-Schaltung 2o6 die Bit-2-Kippschaltung 2Ϊ8 vorwärtsgeschaltet wenn die Bit-T-Kippschaltung 2o8 vorwärtsgeschaltet ist, wie dies auf der Leitung 2o9 angezeigt wird und wenn die Vergleicherschaltungen 219 und 22o anzeigen, daß der Wert von SPP im Register 1o6 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 1o1 in das Register ο 1o6 gegeben, und zwar über die UND-Schaltungen 116 und 112, wenn ίί die Leitung 2o9 anzeigt, daß die Bit-T-Kippschaltung 2o8 vorwärtsgesehaltet ist.
co
cn
ο
Wenn die Vergleicherschaltung 21 ο anzeigt, daß STP « SPP ist, dann wird über die UND-Schaltung 2o4 die Bit-T-Kippschaltung 2o8 vorwärtsschalten Schließlich wird der Wert des Zeigers STP im
_ 19 - P 15 979
Register 101 über die UND-Schaltung 11o durch den Dekrementor 1o5 um eine Einheit verringert. Das Einrollsignal auf der Leitung 217 veranlaßt den Speicher 34, eine Verzweigungsadresse an den Steuerspeicher 3o zu liefexn, die das erste Mikroprogrammwort in der Einrollroutine adressiert. Wie im Fall der Ausrollroutine, wird nun die Adresse MSA^ berechnet, indem auf der V-Leitung festgestellt wird, ob eine -16-Korrektur erforderlich ist oder nicht. Die Adresse wird dann in das B-Register 9 eingegeben, um über die UND-Schaltung 15a zur Adressierung im Speicherstapel 4 benutzt zu werden. Der berechnete Wert der Adresse MSA^ wird auch in das MSA-Register 29 eingesetzt, um als MSAQ während der nächsten Ausroll- oder Einrollroutine benutzt zu werden. Das Register 29 ist über die Leitung 26a adressiert.
Der erste Eingang, der von dem Speicherstapel 4 ausgelesen wird, wird in den Speicherstapel 2 ieringegeben. 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 1o1 adressiert. Der Wert des Zeigers STP wird zu diesem Zweck in das Register 191 gegeben und zwar durch die UND-Schaltung 19o 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 Mikroprogrammsignals auf der Leitung 182.
Diese Folge von Schritten wird wiederholt, bis die sechzehn Eingänge eingerollt sind und keine Eingänge mehr im Speicherstapel 4 vorhanden sind. Im Falle, daß keine sechzehn Eingängeim Speicherstapel vorhanden sind, ergibt sich ein Sonderfall im Speicherstapel 2, indem der Zeiger SVP im Register 1o2 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 HS15 im Zuge einer Speichereingabe eingegeben wurde.
-4098-83/0933
- 2ο - P 15 'J79
Die Einrollroutine wird beendet durch Rückschaltung der Einrollkippschaltung 215, Vorwärtsschaltung der Bit-V-Kippschaltung 223 über die ODER-Schaltung 228, Rückschaltung der Bit-P-Kippschaltung -.218 über die ODER-Schaltung 221 und Rückkehr auf die zuvor unterbrochene Routine.
Die Figuren 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, SVP und SPP und den Zustand der Bit-Kippschaltungen V, T und P für eine Speichereingabeoperation, für eine Speicherausgabeoperation, für eine Ausrolloperation und für eine Einrolloperation. Eine ungültige Lokalisation ist in den Figuren mit φ bezeichnet.
Die Figuren 3a, 3b betreffen eine Speichereingabeoperation. Der Zeiger STP zeigt zunächst den Eingang H in der Lokalisation HS7 des Speicherstapels 2 an. Der Zeiger STP wird um eine Einheit aufdatiert auf die Lokalisation HS8, und zwar während der Speichereingabeoperation über die UND-Schaltung 1o9 und den Inkrementor 1o3· Die UND-Schaltung 23 leitet den aufdatierten Zeiger STP zum Zugriff an den Schnellspeicher 1 und die Speichereingabedaten I werden in der Lokalisation HS8 im Speicherstapel 2 gespeichert. (Vergleiche Figur yd)
Figur 3c betrifft eine Speicherausgabeoperation. Während der nachfolgenden Speicherausgabeoperation werden die Daten I von der Speicherposition HS8 des Schnellspeichers ausgegeben. Sie sind adressiert durch den Zeiger STP. Der Zeiger STP wird dann um eine Einheit über die UND-Schaltung 11o und die Dekrementorschaltung 1o5 vermindert und zeigt erneut den nächsten gültigen Eingang H in der Lokalisation HS7 des Speicherstapels 2.
Die Figuren 4a bis 4d betreffen eine Ausrollroutine. Der Ausrollvorgang aus dem Schnellspeicher 2 wird immer bis zum letzten möglichen Moment verzögert. Es ist Bedingung für einen Ausrollvorgang gemäß Figur 4a, daß der Speicherstapel (SPP » STP + 1) · voll ist, was in der Vergleicherschaltung 115 erregt über die Leitung 121 festgestellt wird, und daß die Bit-T-Kippschaltung
409883/0933
21 - P 15 979
2o8 auf O zurückgeschaltet ist bei Beginn der Operation, und daß eine Speichereingabeoperation ausgelöst ist. Diese Bedingungen veranlassen ein Signal am Ausgang der UND-Schaltung 212, durch das die Ausrollkippschaltung 211 über die UND-Schaltung 207 vorwärtsgeschaltet wird und verursacht wird^, daß die Daten q in das Register 28 übertragen werden. Die Vergleicherschaltung 113 stellt nun fest, daß SYP * STP + 1 ist, worauf der Wert SVP im Register 1o2 über die UND-Schaltungen 111 und 114 durch den Inkrementor 1o4 um einen Wert vermehrt wird. Der Zeiger STP wird über die UND-Schaltung 1o9 und die Ihkrementorschaltung 1o3» wie bei einer normalen Speichereingabeoperation inkrementiert.
Die Ausrollroutine wird ausgelöst durch Verzweigung auf das erste Steuerwort der Routine im Speicher 3o, und zwar aufgrund eines Signals auf der Leitung 214. Die Ausrollroutine berechnet zunächst den Wert von MSAN*£ Modulo^ (0 + 1-(Ox 16)} +0-0 und bringt diesen Wert in das B-Register 9· Der erste Dateneingang A in der Speicherposition HSO wird durch den Wert im Register 191 über .die leitung 26 adressiert und an den Hauptspeicher 3 Lokalisation MSO ausgerollt (vergleiche Figur 4d ) und zwar über das Kabel 2o, das Α-Register 1o, 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 sechsehn Eingänge A bis P ausgerollt sind. Figur 4d zeigt den Inhalt des Speicherstapels 4 nachdem alle Eingänge ausgerollt sind und der Endwert des Zeigers ( MSA * 15 ) an das MSA-Register 29 im Schnellspeicher 1 zurückgegeben wird. Die Ausrollroutine bewegt nun den Eingang Q aus dem Register 28 in die Lokalisation des Speicherstapels 2, die gemäß Figur 4c durch den Zeiger STP angezeigt ist und endet durch Rückschaltung der Bit-P-Kippschaltung 218 über die ODER-Schaltung 221. Die Routine liefert die Adresse des Registers 28 an die UND-Schaltung 24 über das Kabel 26b. Die Leitung 198 leitet den Zeiger STP vom Register 1o1 in die UND-Schaltung 23 zum Zugriff zur Speicherstapel 2-Lokalisation. 409883/0933
22 - P 15 979
Figur 5a zeigt die Ergebnisse, nachdem der Eingang Q und acht weitere Eingänge R bis Y in 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 1o4 und die UND-Schaltungen 111 und 114 um einen Wert vermehrt.
Figur 5b zeigt das Ergebnis nach insgesamt acht aufeinanderfolgenden Speichereingabeoperationen. Der SVP Zeiger hat sich nicht bewegt und zeigt immer noch den frühesten Eingang J im Speicherstapel 2 a, 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.
Figur 5c zeigt das Ergebnis einer anderen Speicherausgabeoperation. Der Zeiger STP im Register 1o1 ist über die· UND-Schaltung 11o und den Dekrementor 1o5 um einen Wert vermindert. Da die Vergleicherschaltung 21 ο feststellt, daß STP = SPP ist, ehe STP dekrementiert wurde, wird die Bit-T-Kippschaltung 2o8 über die UND-Schaltung 2o4 vorwärtsgeschaltet. Die Bit-T-Kippschaltung 2o8 blockiert daher die Ausrollkippschaltung 211, so daß diese nicht vorwärtsgeschaltet werden kann bei der nächstfolgenden Speicherausgabeoperation, auch wenn über die C-Leitung 121.angezeigt wird, daß STP + 1 » SPP ist. .
Figur 5d kennzeichnet das Ergebnis nach einer weiteren Speicherausgabeoperation. Der Zeiger STP ist normalerweise dekrementiert. Die Vergleicherschaltung 115 stellt fest, daß ehe STP dekrementiert war, folgendes gegolten hat - STP + 1 = SPP. Der nicht dekrementierte Wert von STP wird in das SPP Register 1o6 über die UND-Schaltungen 112 und 116 eingegeben und die T-Leitung 2o9 zeigt an, daß die Bit-T-Kippschaltung 2o8 sich in ihrem vorwärtsgeschalteten Zustand befindet, wodurch der Zeiger SPP um eine Einheit dekrementiert wird.
409883/0933
23 P 15 979
Die Vergleicherschaltung 219 und 22o zeigen als Ergebnis dieser Speicherausgabeoperation an, daß der Wert des Zeigers SPP von 0 auf 15 läuft. Da die Bit-T-Kippschaltung 2o8 auch vorwärtsgeschaltet ist, wird die Bit-P-Kippschaltung 218 über die UND-Schaltung 2o6 vorwärtsgeschaltet. Die Bit-P-Kippschaltung 218 erinnert jetzt daran, daß die Grenze für den Zeiger SPP überschritten wird.
Die Figuren 6a bis 6d betreffen eine Einrollroutine. Fünf weitere Speicherausgabeoperationen, beginnend unter den Bedingungen gemäß Figur 5d, führen zu dem Ergebnis, das in Figur 6a dargestellt ist und das sind die auslösenden Bedingungen für einen Einrollvorgang. Der Speicherstapel 2 hat noch einen gültigen Eingang J unter der lokalisation HS9 und es gilt SVP « STP.
Wenn die nächste Operation eine Speicherausgabeopreation ist, dann wird der"Eingang J über die Lokalisation HS9 ausgegeben und die Einroilkippschaltung 215 wird über die UND-Schaltung 2o3 vorwärtsgeschaltet, da die Vergleicherschaltung 216 anzeigt, daß SVP = STP ist. Die Zeiger STP und SPP werden beide dekrementiert, wie, in Figur 6b dargestellt, und die Einrollroutine wird vom Speicher 3o ausgelöst. >
Die Einroll rout ine " berechne ti;zunächst MSA^.. Der Wert von MSAQ wird vom MSA-Register 29 abgefragt und ist «15, wie in Figur 4d dargestellt. Die Bit-V-Kippschaltung 223 ist zurückgeschaltet und zeigt an, daß eine -16-Korrektur nicht erforderlich ist und der Wertzeiger STP ist acht.
Die Berechnung ist folgende:
MSAn = MOdUlO16 (15 - (O x 16)) + 8 = 0 + 8
- 8
Der Zeiger STP wird vom Register 1o1 über die UND-Schaltung an das Register 191 übertragen und zwar aufgrund eines Mikroprogrammdecodersignals auf der Leitung 192.
409883/0933
24 P 15 979
Dieser Wert von MSA^. wird sowohl an das MSA-Register 29 als auch an das B-Register 9 gegeben. Der Wert im B-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 Einganglokalisation HS8 des Speicherstapels gegeben, die durch den Zeiger STP im Register 191 über das Kabel 26 adressiert ist.
Die Einrollroutine datiert die Adressen in den Registern 9 und 191 auf.Nun wird der Eingang H von der Lokalisation MS7 an die Lokalisation HS 7 gegeben, und so weiter werden nun die Eingänge G bis A von den Lokalisationen MS 6 bis MSO an die Lokalisationen HS6 bis HSO, und zwar Eingang nach Eingang. Die Routine kehrt dann auf das Programm zurück, das gerade lief, als diese Routine ausgelöst wurde.
Nachdem diese Routine beendet ist, wird die Bit-V-Kippschaltung 223 über die ODER-Schaltung 228 vorwärtsgeschaltet und die Bit-P-Kippschaltung 218 über die ODER-Schaltung 221 zurückgeschaltet. (Vergleiche Figur 6c)
Figur 6d zeigt den Speicherstapel 4 nachdem diese Einrollroutine beendet ist.
Figur 7a zeigt das Ergebnis einer Speichereingabeoperation, vorgenommen an dem Speicherstapel 2, so wie er in Figur 6c dargestellt ist. Die Zeiger STP und SVP sind normalerweise um eine Einheit verringert. Der Zeiger SPP zeigt, den frühesten Eingang im Speicherstapel 2, zu dem keine Duplikat-Kopie in dem Speicherstapel 4 besteht. Diese Speichereingabeoperation setzt die Bit-T-Kippschaltung 2o8 über die UND-Schaltung 2o5 zurück, da auf der C-Leitung 121 angezeigt wird, daß SPP * STP + 1 ist.
Figur 7b zeigt das Ergebnis nach weiteren sechs Speichereingabeoperationen am Speicherstapel 2 aus Figur 7a. Eine andere Speichereingabeoperation führt zu dem in Figur 7c dargestellten Ergebnis. Bei allen Speichereingabeoperationen wird der Zeiger STP und der Zeiger SVP inkrementiert. Die Speichereingabeoperation gemäß Figur 7c führt dazu, daß die Bit-V-Kippschaltung 223 über die UND-Schaltungen 2o2 und 226 zurückgeschaltet wird, da die
409883/0933
- 25 - ' Γ 15 979
Vergleicherschaltungen 224 und 225 anzeigen, daß der Wert SVP im Register 1o2 von O 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.
Figur 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ärtsgeschaltet ist und das Register 1o2 nicht von 0 auf 1·umgeschaltet wurde, wird die Bit-V-Kippschaltung 223 über die UND-Schaltung 2o1 und die ODER-Schaltung 228 vorwärtsgeschaltet.
Ehe die Ausrollroutine beginnen kann, muss MSA^ berechnet werden. Wie in Figur 6d dargestellt, ist 8 der Wert für MSAQ. Der Wert des Zeigers SPP beträgt 9 und die Bit-P-Kippschaltung 218 befindet sich in zurückgeschaltetem Zustand und zeigt an, daß eine -16-Korrektur nicht erforderlich ist. Die Berechnung läuft daher wie -folgt:
MSAn s MOdUlO16 (8 + 1 - (O χ 16)] + 9 «0 + 9
= 9 ■
Der wie in Figur 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 Figuren 7e und 7f zeigen die Zustände im Speicherstapel 2 und im Speicherstapel 4 nachdem die Eingänge JJ bis YY an die Lokalisationen MS9 bis MS24 inklusive ausgerollt sind.
409883/0933
- 26 - P 15 979
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äß Figur 8a. Der einzige noch verbleibende gültige Eingang ist KK in der Lokalisation HS1o. Der Zeiger SVP wurde während der Speicherausgabeoperation nicht aufdatiert. Der Zeiger STP wurde jedoch während jeder Speicherausgabeoperation um einen Wert vermindert. Der Zeiger SPP folgt dem Zeiger STP bei allen Speicherausgabeoperationen, ausgenommen die erste der fünfzehn Speicherausgabeoperationen.
Eine weitere Speicherausgabeoperation entfernt den Eingang KK vom Speicherstapel 2 und löst eine Einrollroutine aus, um die Eingänge JJ bis A von den Lokalisationen MS9 bis MSO an die Lokalisation HS9 bis HSO zu übertragen. Die Berechnung der anfänglichen Hauptspeicheradresse geschieht wie folgt:
MSAn = MOdUlO16 {2\ - (1 χ 16 )J + 9 = Modulo16 [8J + 9
«0 + 9 -
= 9
Figur 8b zeigt den Speicherstapel 2 nachädem Einrollvorgang.
409883/0933

Claims (3)

  1. P 15 979
    ANSPRÜCHE
    nJ Speicherschaltung, bei der die zuletzt eingespeicherten Daten zuerst wieder abgegeben werden mit einem dateneingabeseitig angeordneten, mit einer Vielzahl von einzeln aneinandergereihten Registern ausgestatteten Schnellspeicher und einem mit einer Vielzahl von einzeln aneinandergereihten Registern ausgestatteten , langsameren Hauptspeicher zur Aufnahme der Daten aus den Registern des SchnellSpeichers bei Datenüberfluß im Schnellspeicher, gekennzeichnet durch folgende Merkmale
    a) die Dateneingabe erfolgt in die Register ( HS ) des
    Schnellspeichers ( 1 ) nacheinander in der zyklischen Reihenfolge der Register;
    b) die Übertragung bei Überfluß an den Hauptspeicher ( 3 ) erfolgt unter Beibehalt der Reihenfolge erst,dann, wenn eine Dateneingabe für. die Speicherschaltung ansteht und alle Register ( HS .... ) des Schnellspeichers mit Daten bespeichert sind, die noch' nicht ausgegeben wurden;
    c) die bei Übertragung gemäß Merkmal b anstehende Dateneingabe wird bis zur erfolgten Übertragung in einem dafür vorgesehenen Zwischenspeicher ( 28 ) zwischengespeichert;
    d) die an den Hauptspeicher ( 3 ) übertragenen Daten bleiben in den Registern ( HS .... ) des Schnellspeichers ( 1 ) für Datenausgabe verfügbar, bis sie von einer neuen Dateneingabe überspeichert werden.
    409883/0933
    - r - 9 P 15 979
    e) Bei übertragung an den Hauptspeicher ( 3 ) werden die Daten auf allen Registern des Schnellspeichers an den Hauptspeicher übertragen;
    f) die Rückübertragung der Daten aus den Registern ( MS )
    des Hauptspeichers an den Schnellspeicher ( 1 ) erfolgt, wenn die Daten aller Register des Schnellspeichers ausgegeben sind;
    g) die Rückübertragung erstreckt sich nur auf diejenigen Daten, deren Duplikate nicht in der Zwischenzeit direkt aus dem Schnellspeicher ( 1 ) abgegeben worden sind.
  2. 2. Speicherschaltung nach Anspruch 1, dadurch gekennzeichnet, daß für die Adressierung der Übertragung und Rückübertragung drei Register ( 1oi, io2, 1o6 ) vorgesehen sind, von denen das erste Register ( 1ο1 ) 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 ( 1O2 ) den Wert eines zweiten Zeigers ( SVP ) mitzählt, der
    die Ordnungszahl desjenigen Registers anzeigt, das von allen Registern ( HS ) des Schnellspeichers die ältestöiin die Speicherschaltung eingespeisten Daten enthält und von denen das dritte Register (io6 ) den Wert eines Zeigers ( SPP ) mitzählt, der die Ordnungzahl desjenigen Registers ( HS ) des Schnellspeichers ( 1 ) anzeigt, die von allen Registern des Schnellspeichers die altesten in die Speicherschaltung eingespeisten Daten enthält, von denen kein Duplikat in den Registern ( MS ) des Hauptspeichers vorhanden ist.
  3. 3. Speicherschaltung nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die Anzahl der Register ( HS ) des Schnellspeichers 2n beträgt, wobei η eine positive ganze Zahl größer als 1 ist.
    0 9883/0933
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 true DE2429067A1 (de) 1975-01-16
DE2429067B2 DE2429067B2 (de) 1978-03-02
DE2429067C3 DE2429067C3 (de) 1978-10-19

Family

ID=23474135

Family Applications (1)

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

Country Status (7)

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

Families Citing this family (18)

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

Family Cites Families (8)

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

Also Published As

Publication number Publication date
DE2429067C3 (de) 1978-10-19
GB1457330A (en) 1976-12-01
DE2429067B2 (de) 1978-03-02
US3868644A (en) 1975-02-25
FR2235428B1 (de) 1976-06-25
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
DE2429067A1 (de) 8speicherschaltung
EP0013737B1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE1966633C3 (de) Datenverarbeitungsanlage mit überlappter Arbeitsweise bei Verwendung eines Haupt- und Pufferspeichers
DE2351791C2 (de) Datenverarbeitungsanlage
DE1449765C3 (de) Einrichtung zur Abfrage eines assoziativen Speichers
EP1222739A1 (de) Rekonfigurierbares gate-array
DE1499182B2 (de) Datenspeichersystem
EP0134831B1 (de) Einrichtung im Befehlswerk eines Fliessbandprozessors zur Befehlsunterbrechung und -wiederholung
DE2721599C2 (de) Schaltungsanordnung zur Verhinderung der Ausgabe von Datenworten aus einer EDV-Anlage ohne Sicherheitsverifizierung
DE2755611A1 (de) Steuereinheit fuer datenverarbeitungsanlagen
DE3043653A1 (de) Datenverarbeitungsanlage
DE1949916B2 (de) Verfahren zum betrieb einer programmgesteuerten datenverarbeitungsanlage und anordnung zur durchfuehrung des verfahrens
DE2458525B2 (de) Speicheranordnung mit Haupt- und Pufferspeicher
DE1185404B (de) Fehlerermittlungsanlage
DE2245284A1 (de) Datenverarbeitungsanlage
DE1293188B (de) Schaltungsanordnung zur UEbertragung von Pruefinformationen mit vorbestimmter Paritaet in Datenverarbeitungsanlagen
DE1449774C3 (de) Speichereinrichtung mit kurzer Zugriffszeit
DE2633155B2 (de) Einrichtung zur Erzeugung zeitdefinierter Funktionssteuersignale
EP0655688A2 (de) Programmspeichererweiterung für einen Mikroprozessor
DE1935945B2 (de) Taktsteuereinrichtung fuer mehrere speicher und eine ihnen gemeinsame fehlerkorrektureinrichtung
DE1222289B (de) Datenverarbeitungseinrichtung
DE1524211C3 (de) Datenverarbeitungsanlage
DE1296430B (de) Steuerschaltung fuer den Zugriff eines Rechenwerkes und mindestens einer peripheren Einheit zum Hauptspeicher eines programm-gesteuerten Ziffernrechners
DE3633898A1 (de) Einrichtung zur folgesteuerung eines aeusseren kreises, beispielsweise eines pipelineprozessors
DE2954533C2 (de)

Legal Events

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