DE2448690A1 - Kellerspeichereinrichtung fuer eine datenverarbeitungsanlage - Google Patents

Kellerspeichereinrichtung fuer eine datenverarbeitungsanlage

Info

Publication number
DE2448690A1
DE2448690A1 DE19742448690 DE2448690A DE2448690A1 DE 2448690 A1 DE2448690 A1 DE 2448690A1 DE 19742448690 DE19742448690 DE 19742448690 DE 2448690 A DE2448690 A DE 2448690A DE 2448690 A1 DE2448690 A1 DE 2448690A1
Authority
DE
Germany
Prior art keywords
stack
address
register
operator
area
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.)
Pending
Application number
DE19742448690
Other languages
English (en)
Inventor
Edward George Drimak
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 DE2448690A1 publication Critical patent/DE2448690A1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/451Stack data

Description

Kellerspeichereinrichtung für eine Datenverarbeitungsanlage
Die Erfindung betrifft Kellerspeichereinrichtungen für Datenverarbeitungsanlagen, die so organisiert sind, daß sie in einer Maschinensprache arbeiten, die mit hohen Problemprogrammiersprachen verknüpft ist. Kellerspeicher sind z.B. in "Elektronische Rechenanlagen", 1959, Seite 176 und in der GE-PS 1 499 224 beschrieben.
In einem Prozessor, der einen Kellerspeicher, dlh. einen Register-Stapelmechanismus zum Speichern von Operatoren und/oder Operanden benutzt, hat man gerne einen in einem Speichermedium enthaltenen Stapel mit einer Geschwindigkeit, die zur Geschwindigkeit des Prozessors selbst paßt. Das ist nicht immer wirtschaftlich möglich, weil die Anzahl von Eintragungen im Stapel durch die Ineinander— schachtelung von Operatoren sehr groß werden kann.
Eine bekannte Lösung dieses Problemes besteht darin, eine feste 2ahl X von Hochgeschwindigkeitsspeicherstellen zu verwenden und jeden überlauf in einem langsameren und billigeren Speichermediumi festzuhalten. Die normale Operation bei vollem Hochgeschwindigkeitsspeicher besteht im "Ausrollen11, d.h. im übertragen seiner X-Eintragungen in den langsameren Speicher. Jetzt stehen die frochgeschwindigkeitsspeicherstellen wieder zum Speichern einer Zahl X von Eintragungen in den Stapel zur Verfügung.
Bei vielen Rechenvorgängeη ist es sehr nützlich, wenn man den Opefandenstapel direkt adressieren oder abfragen kann, ohne Eintragungen der Reihe nach aus dem Stapel auslesen zu müssen, bis die gewünschte Eintragung erreicht ist. Dies wird jedoch sehr schwie-
509818/0780
" 2 " 244869G
rig, wenn keine Garantie dafür vorliegt, daß die gewünschte Ein- !tragung tatsächlich im Hochgeschwindigkeitsstapel steht. Die Steu- !erung der Hochgeschwindigkeitsstapel ist kompliziert, v/eil nur die gewünschte Eintragung betroffen werden soll. Das "Einrollen", d.h., das Einlesen eines vorher "ausgewählten" Speicherinhalts, kann so ;gerade den Hochgeschwindigkeitsstapel mit der zuletzt ausgerollten Kopie des Hochgeschwindigkeitsstapels überlagern. Dadurch würden die Operandenstapeleintragungen zwischen der Spitze des Operandenistapeis und der gewünschten Eintragung zerstört.
,Der Erfindung liegt daher die Aufgäbe.zugrunde, eine Einrichtung anzugeben,· die sicherstellt, daß ein Satz von Eintragungen, der direkt abzufragen ist, immer im Hochgeschwindigkeitsstapel steht, [wenn dieser Satz abgefragt wird. Diese Aufgabe wird durch die im 'Kennzeichen des Hauptanspruches beschriebene Einrichtung gelöst.
Die Erfindung hat den Vorteil, daß die Eintragungen im Operandenstapel vor dem Wiederladen des Operatorregisters durch Entladen äes Operatorstapels nicht entladen werden müssen. Ein Ausführungsbeispiel der Erfindung ist in den Zeichnungen dargestellt und anschließend näher beschrieben. Es zeigen:
ig. 1 in einem Diagramm ein die vorliegende Verbesse
rung enthaltendes Datenverarbeitungssystem
· 2 ' schematisch eine vorgezogene Form der Stapeladres
siereinrichtung
Fig. 3 in einem Diagramm die decodierte Ausgabe eines
Mikrobefehles zur Steuerung der Stapeladressiereinrichtung und
Fign. 4A-4K einschließlich die Arbeitsweise der verbesserten
Stapeladressiereinrichtung durch Darstellung des Zustandes des Hochgeschwindigkeitsstapels vor und nach verschiedenen Operationen.
050"
509818/0780
- 3 Allgemeine Beschreibung des Systems 2448690
Das beschriebene Ausführungsbeispiel mit der verbesserten Adressierstruktur bietet die Möglichkeit, die obersten vier Register j eines Datenstapels direkt abzufragen, während ein direkter Algo- j rithmus für das Einrollen und Ausrollen von Eintragungen in den j Stapel und aus dem Stapel beibehalten wird.
Hierdurch ergibt sich eine wirtschaftlich vereinfachte Maschineneinrichtung für die Abfragemöglichkeit in einer Stapeleinrichtung.
Eine Einrichtung aus zwei Stapeln kann dazu verwendet werden, ein Computerprogramm auszuführen, das als Baumstruktur dargestellt ist, deren Knotenpunkte Operatoren und deren Blätter die Operanden sind. Mit einem Stapel kann man die Operatoreintragungen festhalten und mit dem anderen die Operandeneintragungen und an-' dere Daten, bis alle Operanden für einen gegebenen Operator ausgewertet worden sind, Die Stapeleinrichtung ist im allgemeinen im Hauptspeicher definiert. Bei der Implementierung der Einrichtung ist es wünschenswert, den obersten Teil der beiden Stapel in die Technologie eines schnelleren Arbeitsspeichers zu übernehmen, um die Leistung zu verbessern.
Im Ausführungsbeispiel wird angenommen, daß die Register des Arjbeitsspeicherstapels linear von der der Adresse O (binär OOOO) Ibis 15 CI131) und im allgemeinen durch irgendeinen Satz von 'Mikroprogrammbefehlen adressiert werden können. 15 ist eine willjkürliche Höchstadresse und wird nur als Beispiel zur Illustration ,der Erfindung benutzt,
iDer Arbeitsspeicher oder Hochgeschwindigkeitsstapel ist entsprechend dem hohen und dem niedrigen Adressenende in zwei Bereiche unterteilt, die mit "Stapel hi" und mit "Stapel lo" bezeichbet werden. Im gezeigten Ausführungsbeispiel beginnt der Stapel hi mit dem Register an der Adresse 0 und empfängt Operatoreintra-Igungen in aufsteigender Adreßreihenfolge. Der Stapel Io beginnt mit dem Register an der Adresse 15 und empfängt Operandeneintracjungen in absteigender Adressreihenfolge.
EN 972 050
509818/0780
Im Normalbetrieb wird ein auszuführender Operator A in ein Operatorregister geladen. Wenn zur Ausführung des Operators A vorher ein anderer Operator B fertig ausgeführt sein muß, wird eine Operatoreintragung für Ar auf den Stapel hi gegeben. Der Operator B wird in das Operatorregister geladen. Mit dem Operandenstapel werden dann die Operanden des Operators B ausgewertet und der Operator B ausgeführt. Wenn der Operator B fertig ausgeführt ist, ; wird die Steuerung an den Operator A zurückgegeben, indem die Eintragung des Operators A vom Stapel hi ausgelesen und der Operator A wieder in das Operatorregister geladen wird. Die Operatoreintragungen im Stapel hi enthalten auch den Wert des Adressen-Zeigers zum Stapel Io, der vorhanden ist, wenn die Operatoreintragung auf den Stapel geschoben wird. Dieser Zeiger zum Stapel Io wird zum laufenden lo-Stapelzeiger gemacht, nachdem die Operator- : eintragung aus dem Stapel ausgelesen ist. Dadurch braucht man nichtj. bereits benutzte Eintragungen auf dem Operandenstapel auszulesen, ; bevor das Operatorregister wieder geladen wird, indem man den Ope- : ratorstapel liest. Das erweist sich als sehr bequem, wenn der Operandenstapel Zwischenergebniswerte von Rechenoperationen ent- i hält oder wenn die Operatorausführung anormal durch einen Maschi- ! en- oder Programmfehler beendet wird.
Um Eintragungen in beide Stapel zu setzen, ist ein bestimmter Mikroprogrammbefehl vorgesehen. Durch diesen Befehl wird Information in Register geschrieben, die durch den hi-Stapelzeiger oder auch durch einen lo-Stapelzeiger bezeichnet sind, der in den entsprechenden Maschinenregistern gehalten wird. Abhängig davon, ob sine Operator- oder eine Operandeneintragung gespeichert wird, srhöht dieser Befehl auch die hi-Stapeladresse oder erniedrigt die lo-Stapeladresse,
Ähnlich ist ein anderer Mikroprogrammbefehl vorgesehen für das Auslesen von Operanden- und Operatoreintragungen aus den Bereichen des hi-Stapels und des Ιο-Stapels. Dieser Mikroprogrammbefehl läßt eine Operanden- oder Operatoreintragung aus dem lo-stapelbereich oder dem hi-Stapelbereich auslesen und die entsprechenden Adressen heruntersetzen oder erhöhen.
EN 972 050
509818/0780
Wenn durch eine Einspeicheroperation der hi-Stapelzeiger einen größeren Wert erhält als der lo-Stapelzeiger und dadurch anzeigt, daß die Bereiche des hi-Stapels aufgrund des Ιο-Stapels voll sind, wird über eine Logikschaltung das Ausrollen des gesamten Hochge- ;schwindigkeitsstapels in einen Niedergeschwindigkeitsstapel im Hauptspeicher eingeleitet. Die am Ende der Einspeicheroperation bestehenden hi-Stapeladressen und lo-Stapeladressen werden ebenfalls mit den Eintragungen ausgerollt. Nach Abschluß der Ausroll- !operation wird das hi-Stapelregister wieder auf O und das lo-Stapelregister auf 15 initialisiert. Der nächste Mikroprogrammbefehl wird jetzt ausgeführt.
Wenn versucht wird/ einen Operator zu lesen, wenn der hi-Stapel-. zeiger auf 0 steht und somit keine Operatoreintragungen im Stapel sind oder einen Operanden zu lesen, oder wenn der lo-Stapelzeiger auf 15 steht und somit keine Operandeneintragungen im Stapel sterben, dann wird die zuletzt ausgerollte Kopie des Hocngeschwind!gjkeitsstapels erneut in den Hochgeschwindigkeitsstapel geladen, d. jh, eingerollt. Die mit der zuletzt ausgerollten Kopie gespeicher-Iten Werte des hi-Stapels und des Ιο-Stapels werden in ihre entsprechenden Register zurückgesetzt. Die Leseoperation wird dann versucht.
Es wird angenommen, daß der Ausrollbereich des langsamen Stapels Jim Hauptspeicher entsprechend den Blocks verwaltet werden kann, jdie genauso groß sind wie der Hochgeschwindigkeitsstapel zuzüglich des Inhaltes der hi-Stapelregister und der lo-Stapelregister.
Das Ausführungsbeispiel der verbesserten Arbeitsspeicheradreßeinrichtung sieht eine direkte Abfragemöglichkeit für die oberfl sten vier Eintragungen (zuletzt eingegeben) auf dem Operandensta- ;pel vor und gestattet doch die Benutzung des selben Einrdll- und Ausrollmechanismus,
JDie verbesserte Arbeitsspeicher-Adressiereinrichtung wird über feinen stapelverschiebeähnlichen Mikroprogrammbefehl gesteuert,
EN 972 050
509818/0780
der keine Information auf dem Operandenstapel speichert, sondern nur eine Absicht anzeigt, um später in der Lage zu sein, direkt die obersten 1,2,3 oder 4 Eintragungen des Operandenstapels zu adressieren. Dieser Mikroprogrammbefehl setzt den lo-Stapelzeiger, abhängig von der Anzahl der zur Abfrage zu reservierenden Register, um 1, 2, 3 oder 4 herunter. Mit der Logik, die normalerweise bestimmt, ob der hi-Stapelzeiger einen größeren Viert hat als der lo-Stapelzeiger, um eine Ausrollroutine während der Einspeicheroperation zu veranlassen, wird garantiert,-daß alle . der obersten 1,2, 3 oder 4 Stellen des Operandenstapels niemals getrennt werden, über zwei übereinanderfolgenden Aufzeichnungen des Arbeitsspeicherstapels, d. h. , die reservierten Eintragunspositionen müssen innerhalb der selben Kopie des Hochgeschwindigkeitsstapels liegen. Der verbesserte Arbeitsspeichermechanismus ermöglicht die direkte Abfragemöglichkeit dadurch, daß er normalen Mikroprogrammbefehlen gestattet, irgendeine der obersten vier Stellen des Operandenstapels direkt anzugeben.
Das Ausführungsbeispiel der verbesserten Arbeitsspeichereinrichtung, die die Abfragemöglichkeit bietet, umfaßt Schalteinrichtungen, die auf schieberähnliche Mikroprogrammbefehle reagieren und eine oder mehrere Operandenstapeleintragungen reservieren, um den lo-Stapelzeiger um einen Wert herunterzusetzen, der genauso groß ist wie die Anzahl.von reservierten Stellen und um den heruntergesetzten Wert in das lo-Stapelregister zurückzusetzen. Wenn hinterher eine der reservierten Stellen gewählt und die Daten von dort gelesen werden soll, erhöht der laufende Mikroprogrammbefehl über Schalteinrichtungen den lo-Stapelanzeiger um einen der reservierten STelle entsprechenden Wert. Bei der Einleitung dieses Mikroprogrammwortes muß der lo-Stapelzeiger natürlich oben im reservierten Bereich stehen, d,h«, auf ein Register vor der letzten Registerposition in dem reservierten Bereich zeigen. Der erhöhte lo-Stapelzeiger wird dann zum Adressieren einer Eintragung von der entsprechenden Position im Hochgeschwindigkeitsstapel benutzt, ohne daß man erst Zwischeneintragungen vom stapel lesen muß.
EN 972 050
509818/0730
Auf eine ünterlaufbedingung (Subtraktion einer Eins von null) im hi-Stapelzeigerregister und eine Überlaufbedingung (Addition einer ;Eins zu 15) im lo-Stapelzeigerregister reagieren logische Einrichtungen und leiten Einrollroutinen ein. Schalteinrichtungen zum 'Vergleich der hi-Stapelzeiger und lo-Stapelzeiger leiten eine :Ausrollroutine ein, wenn der Wert des hi-Stapelzeigers denjenigen 'des lo-Stapelzeigers überschreitet.
, Das in Fig. 1 gezeigte System verwendet die Mikroprogrammsteuerung Ί und Datenwege, die im einzelnen in der US-Patentschrift ', Nr. 3 656 123 vom 11. April 1972 beschrieben sind. Durch das Mi-I kroprogramm gesteuerte Schaltglieder werden daher nicht gezeigt. Das System enthält, kurz gesagt, einen konventionellen Hauptspeicher 3 und einen Prozessor mit einer ALU 11 und einen Hochgej schwindigkeitsarbeitsspeicher 1f der zum Prozessor gehört. Die j Eingaberegister 9 und 10 sind für die ALU 11 und ein Z~Register 12 für die ALU-Ausgabe vorgesehen. Der Prozessor arbeitet vorzugsiweise mit Mikroprogramm-Steuerwortroutinen, die in einem Steuerj speicher 30 festgehalten werden, wenn ein Steuerwort aus dem Speicher 30 ausgelesen wird, wird es in ein Steuerregister 31 gegeben, ι Die Steuerdecodierschaltungen 32 und 32A betätigen den Prozessor I während eines Maschinenzyklus aufgrund eines jeden in das Register j 31 eingegebenen Steuerwortes, Die Decodierschaltungen 32 und 32a und ein nicht dargestellter Taktgeber erregen UND-Glieder (nicht !dargestellt) zur Ausführung logischer und arithmetischer Berechnungen und zur Schließung der Datenwege zwecks Datenübertragung innerhalb des Systems auf bekannte Weise.
'Der Prozessor verwendet eine Stapeleinrichtung 2 im Hochgeschwinidigkeitsspeicher 1 zur Aufnahme von Operatoren/Operanden und einen ;Stapelbereich 4 im langsameren Speicher 3 zur Aufnahme eines Stajpelüberflusses aus dem Hochgeschwindigkeitsspeicher 1, Im Ausführungsbeispiel enthält der Stapel 2 sechzehn eindeutige Stellen oder Register HS0-HS15,
Der Stapel 2 wird über das ODER-Glied 22 und die UND-Glieder 23, 24 durch den lo-Stapelzeiger STLO (Fig. 2) adressiert und einen
JaN 972 050
509818/0780
-I .
hi-Stapelzeiger STHI. Der außerhalb des Stapels liegende Teil sowie der Stapelteil des Speichers 1 werden über die Adreßsammelleitung 25 adressiert. Im Ausführungsbeispiel wird angenommen, daß die Register HSO - HS15 die eigentlichen Adressen O bis 15 |des Arbeitsspeichers 1 sind. Dadurch sind ihre werthohen Adreßjbits alle O, Die Sammelleitung 25 kann diese werthohen Nullen lauf nehmen ·
ie Zeiger STHI und STLO in den Registern 150 und 179 (Fig. 2) werden zur Adressierung des Stapels 2 während der Speicher- und Leseoperationen verwendet, Alle derartigen Zugriffe erfolgen zum j Stapel 2, Alle anderen Zugriffe zum Speicher 1 erfolgen über die Adreßsammelleitung 25, '
Der Speicher 3 enthält mehrere Wortstellen zum Speichern von ι Eintragungen einschließlich der Stapelstellen SSRO bis SSRN, Die '■ Sammelleitung 17 und das Eingabe/Ausgabe-Datenspeicherregister (STR) 8 bilden eine Datenbahn (Operatoren/Operanden) vom Speicher ' 3 zum Speicher 1 und Register 10, Die Operatoren können dann vom ! Register 10 über die Sammelleitung 21 und das UND-Glied 14 in das ip-Register 13 übertragen werden. Bei Einrolloperationen vom Staelbereich 4 in den Stapel 2 werden Daten über die Sammelleitung | |17 direkt zum Speicher 1 übertragen. Durch die Sammelleitung 18 I
d ein Z-Register 12 können Zwischenergebnisse von Funktionen er ALU 11 auf dem Stapel 2 gespeichert oder in die Register 9 Dder 10 zur weiteren Verarbeitung zurückgegeben werden.
Der Speicher 1 hat mehrere Wortstellen zum Speichern von Eintragungen einschließlich der Stapelstellen HSO bis HS15, Information vom Speicher 1 wird auf der Sammelleitung 20 entweder in das Register 9 oder in das Register 10 ausgelesen. Diese Information kann für Rechen- und logische Operationen an die ALU 11 geleitet [werden. Die Ausgabe des Speichers 1 wird in das OP-Register 13 [über die Sammelleitung 20 gesetzt, wenn eine Operatoreintragung [aus dem Stapel 2 gelesen wird. Die Ausgabe des Registers 10 wird ber die Sammelleitung 21, das UND-Glied 16a und das STR-Register
EN 972 05ö
509818/0780
8 in den Stapelbereich 4 des langsamen Speichers 3 bei einer Ausrolloperation gegeben. Die Sammelleitung 21 und das UND-Glied 16b" liefern eine Bahn vom Register 10 zum Speicher 3 für Speicherope- ; rationen von nicht im Stapel stehenden Daten.
I
Ein Speicheradreßregister (SAR) 5 wird zur Adressierung des Haupt-
! Speichers 3 benutzt. Die Ausgabe des Registers 9 wird über die Sammelleitung 19 und das ODER-Glied 7 an das Speicheradreßregister 5 zur Adressierung des Speichers 3 geleitet.
j Die Inkrementierschaltung 35 (Fig. 1) und die Dekrementierschal-J tung 36 bringen den SSP-Zeiger im Register 6 auf den neuesten Stand, um die Register SSRO bis SSRN beim Ausrollen und Einrollen über das ODER-Glied 7 und das Speicheradreßregister 5 zu adressieren. Signale auf den Leitungen 14Q( 141 erzwingen feste Ve.rzw.eigungsadressen von Speicher 145 zu dem Steuerspeicheradreßregister ί 30a des Steuerspeichers 30 und veranlassen eine Verzweigung zur J ersten Mikroinstruktion der Ausroll- bzw. Einrollroutine, Die In- ! krementierschaltung 30b erhöht die Adresse im Register 30a während j jedes Ausführungszyklus eines Ausroll- und Einroll-Mikrobefehles j und gestattet das Abrufen des nächsten Mikrobefehles in dieser Routine,
Die Figuren 2 und 3 zeigen die zur Adressierung und Steuerung des Stapels 2 im Hochgeschwindigkeitsspeicher 1 notwendige Maschinenausrüstung, Die Zahl 4 wurde in die meisten Datenwege eingesetzt, um die Adreßsammelleitungen von den Datenleitungen leichter zu unterscheiden.
Der Stapel 2 fordert 2n Eintragungspositionen, um einen wirtschaftlich brauchbaren Umlaufadreßfortschreibemechanismus für·die STHI und STLO-Zeiger zu ermöglichen (d.h. Register 150, 179, Inkrementierschaltungen 151, 174 und Dekrementierschaltungen 152, 176, Der Stapel 2 enthält zur Erklärung nach der Darstellung 16 Eintragungen, HS0-HS15, die durch vier binäre Adreßbits adressiert werden können, ■
EN 972 050
509818/0780
"'"-4O. 244869C ,
Die Dekrementierschaltungen 171, 173, 176, ihre Ausgangsglieder 168, 169, 170 und 178 und das ODER-Glied 166 sind vorgesehen, um den STLO-Zeiger im Register 179 während der Reservierungsoperationen der Spitze des ΙΟ-Stapels auf den neuesten stand zu bringen.
Die Ink reinen tierschal tungen 174, 182, 183, 200, ihre Ausgangsglieder 185, 186, 187, 201 und das ODER-Glied 188 sind zur schnellen Adressierung eines gewünschten Registers im stapel 2 während der Abfrageoperationen vorgesehen, um eine andere Adresse zu wählen als die Stapelspitze im reservierten Bereich des Stapels 2.
Die Stapeleinrichtung 2 ist in zwei Unterstapel unterteilt (siehe Fig, 4A), Die beiden Unterstapel werden als Operatorstapel und Operandenstapel %n wesentlichen genauso benutzt wie das am Anfang der Beschreibung erwähnte Ausführungsmodell mit zwei Stapeln, Der Operatorunterstapel beginnt bei der ersten Eintragungstelle HSO im Stapel 2 und wächst in aufsteigender Adreßreihenfolge. Der Opecandenunterstapel beginnt an der 16. Eintragungsstelle HS15 und wächst in absteigender Adreßreihenfolge. Die Adressen STHI und ISTLQ der nächsten in den Operator- oder dem Operanden-Unterstapel zu setzenden Eintragungen sind in den Registern 150 bzw. 179 enthalten. Nachfolgend wird der Operatorstapel mit hi-Stapel und der 3perandenstapel mit Ιο-Stapel bezeichnet.
likrobefehle im Steuerspeicher 30 dienen der steuerung der Adressierung, Einspeicherung und Ausspeicherung von Eintragungen in jedem der beiden Unterstapel im Stapel 2. Die Decodierschaltungen 32a und die ODER-Glieder 108, 111 und 113 (Fig. 3) entwickeln die verschiedenen Leitsignale zum Steuern der stapeleinrichtung.
Im Normalbetrieb führt das Einspeichern auf dem hi-Stapel dazu, [daß der Inhalt des OP-Registers 13 und des Registers 179 (Fig. 2) jdurch die Schaltung 13a zu einer Operatorstapeleintragung gemischt werden, d,h, zu den Daten, die in den hi-Stapel geschrieben wer-
EN 9-72 050
509818/0780
den. Durch diese Mischung wird die STLO-Adresse mit dem Operator gespeichert, die existiert, wenn ein Operator auf den Hi-Stapel gespeichert wird. Diese Adresse ist die Anfangsadresse für nachfolgend empfangene zu dem Operator gehörende Operanden. Das Ausspeichern einer Operatoreintragung vom Hi-Stapel veranlaßt ein erneutes Laden des OP-Registers 13 und des Registers 179 vom Stapel 2 über die Sammelleitung 20. Diese Synchronisation der bei- ; den Unterstapel erübrigt das Ausspeichern nicht mehr benötigter I Operandeneintragungen aus dem Ιο-Stapel, wenn die Ausführung eines • gegebenen Operators im OP-Register 13 einmal dadurch beendet ist, daß die am weitesten davor liegende Operatoreintragung aus dem hi-Stapel ausgespeichert wird. Die normale Vorgangsfolge umfaßt ι Einspeichern einer Operatoreintragung in den Hi-Stapel, Laden eines neuen Operators in das OP-Register 13, Einspeichern seiner Operanden in den lo-Stapelf Benutzen des Ιο-Stapels für !weitere Berechnungen, Ausspeichern von Operanden aus dem LO-sta-I pel und schließlich Abschluß der Ausführung des Operators im OP-Registers 13 überr eine Rückkehr zur Ausführung des vorhergehenden Operators durch Ausspeichern der Operatoreintragung aus dem hi-Stapel,
Ein Speicher-Adreßregister (SAR) 5 wird zur Adressierung des Hauptspeichers 3 benutzt. Die Ausgabe des Registers 9 wird über die Sammelleitung 19 und das ODER-Glied 7 an das Speieheradreßregister 5 zur Adressierung des Speichers 3 geleitet.
!Die Inkrementierschaltung 35 (Fig. 1) und die Dekrementierschaltung 36 bringen den SSP-Zeiger im Register 6 auf den neuesten Stand, um die Register SSRO-SSRN beim Ausrollen und Einrollen über das ODER-Glied 7 und das Speicheradreßregister 5 zu adres-'sieren. Signale auf den Leitungen 140, 141 erzwingen feste Ver-[zweigungsadressen vom Speicher 145 zu dem Steuerspeicheradreßregister 30a des Steuerspeichers 30 und veranlassen eine Verzweigung zur ersten Mikroinstruktion der Ausroll- bzw. Einrollroutine, Die Inkrementierschaltung 30b erhöht die Adresse im ;Register 30a während jedes Ausführungszyklus eines Ausroll- und
EN 972 050
509818/0780
Einroll-Mikrobefehles und gestattet das Abrufen des nächsten Mikrobefehles in dieser Routine.
Die Figuren 2 und 3 zeigen die zur Adressierung und steuerung des Stapels 2 im Hochgeschwindigkeitsspeicher 1 notwendige Maschinenausrüstung, Die Zah 1 4 wurde in die meisten Datenwege eingesetzt, um die Adreßsammelleitungen von den Datenleitungen ; leichter zu unterscheiden. '
Der Stapel 2 fordert 2n Eintragungspositionen, um einen wirt- j
schaftlich brauchbaren Umlaufadreßfortschreibemechanismus für i die STHI und STLO-Zeiger zu ermöglichen (d.h.) Register 150, 179, \ Inkrementierschaltungen 151, 174 und Dekrementierschaltungen
152f 176), Der Stapel 2 enthält zur Erklärung nach der Darstel- j
lung 16 Eintragungen, HSO-HS15, die durch yier binäre Adreßbits ι adressiert werden können,
Die Dekrementierschaltungen 172, 172, 173, 176, ihre Ausgangsglieder 168, 169, 170 und 178 und das ODER-Glied 166 sind vorgesehen, um den STLO-Zeiger im Register 179 während der Reservierungsoperationen der Spitze des Ιο-Stapels auf den neuesten Stand zu bringen,
Die Inkrementierschaltungen 174, 182, 183, 200, ihre Ausgangsglieder 185, 186r 187, 201 und das ODER-Glied 188 sind zur schnellen Adressierung eines gewünschten Registers im Stapel 2 während der Abfrageoperationen vorgesehen, um eine andere Adresse zu wählen als die Stapelspitze im reservierten Bereich des Stapels 2,
Die Stapeleinrichtung 2 ist in zwei Unterstapel unterteilt (siehe Fig, 4A), Die beiden Unterstapel werden als Operatorstapel und Operandenstapel im wesentlichen genauso benutzt wie das arn Anfang der Beschreibung erwähnte Ausführungsmodell mit zwei Stapeln. Der Operatorunterstapel beginnt bei der ersten Eintragungsstelle HSO im Stapel 2 und wächst in aufsteigender Adreßreihenfolge. Der
EN 9 72 050
509818/0780
ί Operandenunterstapel beginnt an der 16. Eintragungsstelle HS15 und wächst in absteigender Adreßreihenfolge. Die Adressen STHI und STLO der nächsten in den Operator- oder dem Operandenunter-
j stapel zu setzenden Eintragungen sind in den Registern 150 bzw. ! 179 enthalten. Nachfolgend wird der Operatorstapel mit Hi-Stapel
: und der Operandenstapel mit Lo-Stapel bezeichnet.
ι . ■
! Mikrobefehle im Steuerspeicher 30 dienen der Steuerung der Adressierung, der Einspeicherung und Ausspeicherung von Eintragungen ! in jedem der beiden Unterstapel im Stapel 2. Die Decodierschaltungen 32a und die ODER-Glieder 108, 111 und 113 (Fig. 3) ent- \ wickeln die verschiedenen Leitsignale zum Steuern der Stapeleinrichtung,
!Im Normalbetrieb führt das Einspeichern auf dem Hi-Stapel dazu, !daß der Inhalt des OP-Registers 13 und des Registers 179 (Fig. I2) durch die Schaltung 13a zu einer Operatorstapeleintragung !gemischt werden, d.h. zu den Daten, die in den hi-Stapel geschrieben werden. Durch diese Mischung wird die STLO-Adresse mit dem Operator gespeichert, die existiert, wenn ein Operator auf dem hi-Stapel gespeichert wird. Diese Adresse ist die Anfangsadresse für nachfolgend empfangene zu dem Operator gehörende Operanden. Das Ausspeiehern einer Operatoreintragung vom Hi-Stapel veranlaaßt ein erneutes Laden des OP-Registers 13 und des [Registers 179 vom Stapel 2 über die Sammelleitung 20. Diese {Synchronisation der beiden Unterstapel erübrigt das Ausspeichern, nicht mehr benötigter Operandeneintragungen aus dem lo-Stapel, wenn die Ausführung eines gegebenen Operators im OP-Register 13 äinmal dadurch beendet ist, daß die am weitesten davor liegenden Operatoreintragung aus dem Hi-Stapel ausgespeichert wird. !Die normale Vorgangsfolge umfaßt: Einspeichern einer Operator-'eintragung in den hi-Stapel, Laden eines neuen Operators in das OP-Register 13, Einspeichern seiner Operanden in den Lo-Stapel, !Benutzen des Ιο-Stapels für weitere Berechnungen, Ausspeichern von Operanden aus dem Lo-Stapel und schließlich Abschluß der !Ausführung des Operators im OP-Register 13 über eine Rückkehr
EN972O5Ü 509818/0780
zur Ausführung des vorhergehenden Operators durch Ausspeichern der Operatoreintragung aus dem hi-Stapel. Zum letztgenannten Zeitpunkt befindet sich der Ιο-Stapel wieder in dem Zustand, den er einnahm, als die Operatoreintragung in den hi-Stapel eingespeichert wurde.
Wenn der Stapel 2 während einer Einspeicher- oder Reservierungsoperation voll wird, was durch die Schaltungen 160 und 162 in Fig. 2 erkannt wird, geht ein Ruf über das UND-Glied 161, die Leitung 140 und den Speicher 145 an ein Ausroll-Mikroprogramm im Speicher 30, welches den Inhalt des Stapels 2 und die Werte in den' Registern 150 und 179 in den Stapelbereich 4 mit veränderlicher ! Größe im langsamen Speicher 3 speichert. Am Ende der Ausrollroutine wird das Register 150 auf null zurückgestellt durch ein Signal auf der Leitung 1.91, damit es auf die erste Stelle HSO im hi-Stapel zeigt. Das Register 179 wird durch ein Signal auf der Leitung 192 auf 15 gestellt, damit es auf die erste Stelle HS15 des Lo-Stapels zeigt, Die beiden Unterstapel wurden somit initialisiert, daß sie wieder zu wachsen anfangen können. :
Wenn das Ausrollen aufgrund einer Einspeicheroperation erfolgte, wird die Ausführung mit dem nächsten Mikrobefehl fortgesetzt. j Wenn das Ausrollen auf eine Stapelreservierung zurückzuführen war, wird die Ausführung mit der erneuten Ausführung der Reservierungsoperation wieder aufgenommen. '■
Sollte einer der beiden Unterstapel leer werden und eine Leseoperation den leeren Unterstapel adressieren, leiten die Blocks 165, '< 174 oder die Blocks 164, 152 einen Ruf über das ODER-Glied 163, ie Leitung 141 und den Speicher 145 an ein Mikroprogramm im !
peicher 30 ein, welches den Stapel 2, das Register 150 und das ' gister 179 vom Stapelbereich 4 in den langsamen Speicher 3 über ί äie Sammelleitung 17 lädt. Diese Information wurde vorher auf I jrund der letzten Ausrollanforderung ausgerollt. Die Ausführung
wieder aufgenommen durch erneute Ausführung der Ausleseoperation, '
EN 972 050
509818/0780
-Vi-
Ein bestimmter aus dem Steuerspeicher 30 ausgelesener Mikrobefehl kann den Stapel 2 auf vielerlei Art steuern und adressieren. Ein in das Steuerregister 31 geladener Mikrobefehl, der die Decodierschaltung 32a betätigt, kann Daten entweder auf den hi-Stapel oder den Ιο-Stapel speichern, Daten von den beiden Stapeln auslesen, bis zu vier der obersten Eintragungen des Lo-Stapels reservieren, um diese Eintragungen zu einem späteren Zeitpunkt direkt ansprechen zu können und kann Eintragungen auf dem Ιο-Stapel direkt ansprechen, die vorher reserviert wurden, es folgt eine Beschreibung der Funktion der Stapeleinrichtung für diese verschiedenen Steuer- und Adress.ierfunktionen. Der leichteren Darstellung halber wird angenommen, daß der Stapel 2 Register umfaßt, wobei die 16 niedersten Adreßwerte im Speicher 1 und die werthohen Nullen über die Sammelleitung 25 an das Adreßregister 1a angelegt . werden zusammen mit den vier Bitadressen STLOf STHI,
Einspeichern einer Eintragung in den hi-Stapel (Fign. 4A, 4B)
Im Normalbetrieb wird eine Operatoreintragung im OP-Register 13 auf dem hi-Stapel an der im Register 150 stehenden STHI-Adresse eingespeichert. Der Mikrobefehl für die Ausführung dieser Funktion wird vom Steuerspeicher 30 in das Steuerregister 31 gelesen. Die Signale GATE STACK HI, PUSH STACK HI und PUSH auf den Leitungen 105, 107 bzw. 109 werden durch den Decodierer 132a abgegeben. Die STHI-Adresse im Register 150 wird an das Adreßregister 1a des Stapels 2 zur Zeit T2 über das UND-Glied 24 und das ODER-lied 22 geleitet. In dieser Adresse wird der Inhalt des OP-Registers 13 und die STLO-Adresse des Registers 179 geschrieben combiniert zu einer Operatoreintragung durch die Schaltungen 13a, z.B. OP3, 11 in Fig. 4A. Nach dem Zugriff (Zeit T3) wird die STHI-jAdresse im Register 150 über die +1-Schaltung 151 und die Schalt- !glieder 153 und 153a um 1 erhöht.
;Bei Beendigung des Einspeicherzyklus wird der Stapel 2 daraufhin !überprüft, ob er voll ist; d.h. die neue in das Register 150 zu ;ladende STHI-Adresse wird an die Abfühlschaltung 160 über das
EN 972 050
509818/0 780
Schaltglied 153, Sammelleitung 158, ODER-Glied 156 und Sammelleitung 157 und die STLO-Adresse im Register 179 über das UND-Glied 167, das ODER-Glied 166 und die Sammelleitung 159 an die Erkennungsschaltung 160 geleitet. Wenn die STHI-Adresse auf der Sammelleitung 157 größer ist als die STLO-Adresse auf der Sammelleitung 159 (z.B, Fig, 4b) wird ein Ausrollen des Stapels 2 gemäß obiger Beschreibung zur Zeit T3 eingeleitet, andernfalls läuft der Betrieb weiter. Die Einspeichereingabe zum ODER-Glied 162, Eingang T3, zum Schaltglied 161 und die Ausgabe der Schaltung veranlassen das Schaltglied 161 zum Anlegen eines Signales an die Leitung 140 zwecks Einleitung der Ausrollroutine, Fig. 4 zeigt ein Beispiel des Inhaltes des Stapels 2 und die Adreßwerte STHI und STLO in den Registern 150 und 179 vor und nach dem Einspeichern einer Eintragung auf dem hi-Stapel ohne Ausrollen. Fig. 4B zeigt ein weiteres Beispiel für den inhalt, wenn ausgerollt wird.
Einspeichern einer Eintragung auf dem Ιο-Stapel (Fign. 4C und 4P)
Im Normalbetrieb werden Operandendaten entweder von der z-Registersammelleitung 18 oder der STR-Sammelleitung 17 auf dem lo-Stapel eingespeichert. Der Mikrobefehl zur Ausführung dieser Funktion wird aus dem Steuerspeicher 30 in das Steuerregister gelesen. Die Signale GATE STACK LO, PUSH STACK LO und PUSH auf den Leitungen 106, 115 bzw. 109 werden durch den Decodierer 32a angehoben. Die STLO-Adresse im Register 179 wird über das UND-Glied 184, das ODER-Glied 188, das UND-Glied 23 und das ODER-Glied 22 an das Adreßregister 1a des Stapels 2 geleitet. In dieser Adresse werden die Daten von der Z-Sammelleitung 18 oder der STR-»Sammelleitung 17 geschrieben, abhängig davon, welche der Leitungen durch den Mikrobefehl im Steuerregister 31 gewählt wurde. Nach dem Zugriff wird die STLO-Adresse im Register 179 über das Schaltglied 176, das UND-Glied J77, das ODER-Glied 166 und das UND-Glied 166a heruntergesetzt.
Gleichzeitig wird geprüft, ob der Stapel 2 voll ist. Die neue in das Register 179 zu ladende STLO-Adresse wird über das ODER-Glied
EN 972 050
609818/0780
166 und die Sammelleitung 159 an die Erkennungsschaltung 160 geleitet. Die STHI-Adresse im Register 150 wird über das UND-Glied 155, das ODER-Glied 156 und die Sammelleitung 157 an die Erkennungsschaltung 1 60 geleitet. Wenn die STHI-Adresse größer ist als die STLO-Adresse wird der Stapel 2 ausgerollt, d.h., ein PUSH-Signal auf der Leitung 109 erzeugt eine Ausgabe vom ODER-Glied 162, die mit der Ausgabe der Erkennungsschaltung 160 und dem Taktimpuls T3 einer Ausgabe des UND-Gliedes 161 auslöst, andernfalls geht der Normalbetrieb weiter. Fig. 4C zeigt den Inhalt des Stapels 2, des STHI-Registers 150, des STLU-Registers 179 vor und nach dem Einspeichern einer Dateneintragung A5 auf dem lo-Stapel ohne Ausrollen. Fig. 4D zeigt den Inhalt des Stapels 2 vor und nach einer Einspeicheroperation und einem anschließenden Ausrollen.
Auslesen einer Eintragung aus dem hl-Stapel (Flgn. 4Et 4F)
Ein Mikrobefehl zur Ausführung dieser Funktion wird aus dem Steuerspeicher 30 in das Steuerregister 31 gelesen. Der Decodierer 32a liefert die Signale GATE STACK HI, POP STACK HI und POP auf die Leitungen 105, 121 bzw. 122. Wenn die STHI-Adresse gleich null ist, wird dieser Umstand als Unterlauf durch die -1-Schaltung 152, das UND-Glied 164 und das ODER-Glied 163 zur Zeit TO erkannt. Die Schaltung 163 legt ein Signal an die Leitung 141 zur Beendigung des laufenden Stapelzyklus durch Beendigung der Signale auf den Leitungen 105, 121 und 112. Eine Einrollroutine wird eingeleitet. Wenn eine Einrollroutine auftritt, wird der Auslesezyklus bei Beendigung der Einrollroutine wiederholt und dieses Mal versuchtf den neuen Wert des STHI-Zeigers im Register 150, der aufgrund des Einrollens geladen wurde, herunterzusetzen.
Nimmt man an, daß kein Einrollen erfolgte, so wird die STHI-Adres se im Register 150 durch die -1-Schaltung 152 und das UND-Glied 154 zur Zeit T1 um 1 heruntergesetzt. Bei befriedigender Erniedri gung der STHI-Adresse im Register 150 wird die Adresse zur Zeit T2 als Stapeladresse durch die Blocks 24 und 22 an das Register
NE 972 050
509818/0780
geleitet. Die aus dieser Adresse im Stapel 2 gelesene Operatoreintragung wird auf die Sammelleitung 20 gegeben. Der Operatorteil der.Eintragung wird in das OP-Register 13 gesetzt und der untere Stapelteil dieser Eintragung wird in das STLO-Register 179 gesetzt.
Fig, 4E zeigt den Inhalt des Stapels vor und nach dem Auslesen einer Eintragung (0P3-F) aus dem hi-Stapel, wobei angenommen wird,, daß nicht eingerollt wurde. Die Fig. 4F zeigt den Inhalt des Stapels 2 mit Einrollen, Als vorhergehendes Ausrollen wird das in Fig. 4B gezeigte Ausrollen angenommen.
Fig, 4K zeigt den Inhalt des Stapels 2 mit angenommenem Einrollen in einer anderen Vorgangsfreien Folge, in der das vorhergehende Ausrollen in Fig, 4D gezeigt ist.
Auslesen einer Eintragung aus dem Ιο-Stapel (4Gt 4h)
Im Normalbetrieb wird eine Dateneintragung aus dem Ιο-Stapel entweder in das Register 9 oder in das Register 10 ausgelesen. Die Wahl wird durch den Mikrobefehl vorgeschrieben. Der Mikrobefehl zur Ausführung dieser Auslesefunktion wird aus dem Steuerspeicher 30 in das Steuerregister 31 gelesen. Der Decodierer 32a erzeugt die Signale GATE STACK LO, POP STACK LO und POP auf den Leitungen 106, 110 bzw, 112, Wenn die STLO-Adresse aus lauter Einsen besteht (d,h, gleich 15 ist), wird diese Tatsache zur Zeit PO als als Überlauf durch die +1-Schaltung 174 erkannt und ein ÜbertragssignaJL als Überlaufsignal auf der Leitung 126 an das UND-Glied 165 über- i tragen, der laufende Stapelzyklus wird beendet und ein Einrollsignal auf der Leitung 141 durch die Schaltungen 165 und 163 erzeugt. Wenn eingerollt wird, wie oben beschrieben ist, wird die Leseoperation am Ende des Einrollvorganges wieder eingeleitet und dieses Mal der neue Wert in STLO-Register 179 erhöht, der durch das Einrollen dorthin geladen wurde.
Wenn kein Einrollen erfolgt, wird die STLO-Adresse im Register
EN 972 050
609818/0780
179 zur Zeit T1 durch die +1-Schaltung 174 und das UND-Glied 'um 1 erhöht. Bei befriedigender Erhöhung des STLO-Registers 179 wird die STLO-Adresse als Stapeladresse über die Schaltungen 184, 188, 23 und 22 geleitet. Die von dieser Adresse im Stapel 2 gelesenen Daten werden auf die Sammelleitung 20 und in eines der Register 9 oder 10 gesetzt, abhängig davon, welches Register durch den Mikrobefehl im Steuerregister 31 gewählt wurde.
Fig. 4G zeigt den Inhalt des Stapels 2 vor und nach dem Auslesen einer Eintragung A5 vom Ιο-Stapel, wobei kein Einrollen angenommen wird, Fig. 4H zeigt den Inhalt des Stapels 2 vor und nach dem Auslesen einer Eintragung A12 mit Einrollen, Das vorhergehende Ausrollen soll der in Fig, 4D gezeigte Vorgang sein. Die Eintra-" gung A12 wird aus der Stelle 4 des stapeis 2 in das Register 9 oder 10 nach Beendigung des Einrollens gelesen,
Reservierung einiger oberer Eintragungen des lo-Stapels (Fig. 41. 4J)
3urch die Erfindung können die obersten 1,2,3 oder 4 Eintragungen des lo-Stapels zur direkten Adressierung reserviert werden. Der Decodierer 32a und das ODER-Glied 138 erregen das Signal RESERVE STACK LO auf der Leitung 114 und das Signal GATE STACK LO auf der Leitung 106. Abhängig von der Anzahl der zu reservierenden Eintragungen erregt der Decodierer 32a die Signale., TOP OF STACK LO, RESERVE TOP 2 OF STACK LO, RESERVE TOP 3 OF STACK LO, or RESERVE TOP 4 OF STACK LO auf den Leitungen 120, 116, 117 bzw. 118.
Die Hauptfunktion besteht darin, das STLO-Register 179 um den angegebenen Betrag auf den neuesten Stand zu bringen und durch überprüfung sicherzustellen, daß der vergrößerte Ιο-Stapel den hi-Stapel nicht überlappt. Der Stapel~2 wird nicht adressiert. Die STLO-Fortschreibung wird durch ein Signal auf einer der Leitungen 120, 116, 117 oder 118 gesteuert. Wenn das Signal RESERVE TOP OF STACK jLO auf der Leitung 120 hoch ist, wird das STLO-Register 179 durch die -1-Schaltung 176 und die Schaltungen 178, 176 und 166a auf den
EN 972 050
509818/0780
-AO.
neuesten Stand gebracht. Wenn das Signal RESERVE TOP 2 OF STACK LO auf der Leitung 116 hoch ist, wird das STLO-Register 179 durch die -2-Schaltung 173 und die Schaltungen 170, 166 und 166a ; auf den neuesten Stand gebracht. Wenn das Signal RESERVE TOP 3 OF STACK LO auf der Leitung 117 hoch ist, wird das STLO-Register 179 durch die -3-Schaltung 172 und die Schaltungen 169, 166 und 166a auf den neuesten Stand gebracht. Wenn das Signal RESERVE TOP 4 OF STACK LO auf der Leitung 118 hoch ist, wird das STLO-Register 179 durch die -4-Schaltung 171 und die Schaltungen 168, 166 und 166a auf den neuesten Stand gebracht.
Während der Fortschreibefunktion wird der neue in das STLO-Register 179 zu setzende Werte auch über die Sammelstelle 159 an die ι Erkennungsschaltung 160 geleitet, wo er mit der STHI-Adresse ver- j glichen wirdf die über das UND-Glied 155 und das ODER-Glied 156 sowie die Sammelleitung 157 angelegt wurde. Wenn die STHI-Adresse a.uf der Leitung 157 größer ist als die STLO-Adresse auf der Sammelleitung 159 heißt das, daß sich der hi-Stapel und der lo-stapel überlappen und die Fortschreibung des STLO-Registers 179 wird dann durch ein an das Schaltglied 166a über die Leitung 195, den Inverter 196 und das UND-Glied 194 angelegte Signal gesperrt und eine Ausrollanforderung durch das UND-Glied 161 erzeugt. Der Stapel 2 wird dann ausgerollt. Bei Beendigung des Ausrollens wird nocht einmal versucht, die Reservierungsfunktion durchzuführen, die das Ausrollen verursachte. Dieses Mal ist die Fortschreibung des STLO-Registers 179. erfolgreich. Fig. 41 zeigt den Inhalt des Stapels 2 vor und nach einer Reservlerungsfunktion für die obersten drei Positionen ohne Ausrollen. Fig. 4J zeigt den Inhalt des Stapels 2 vor und nach einer Reservierungsfunktion der obersten 4 Positionen mit Ausrollen,
Direktes Ansprechen der oberen Eintragungen des lo-Stapels
In diesem Ausführungsbeispiel der Erfindung ist das direkte Ansprechen einer der vier oberen Eintragungen des lo-Stapeis vorge-
EN 972 050
S09818/0780
sehen. Die adressierte Eintragung steht immer im stapel 2, da ihre Lage vorher durch die gerade beschriebene Reservierungsfunktion garantiert ist·
Ein Mikrobefehl wird in das Steuerregister 31 aus dem Steuerspeicher 30 geladen. Abhängig von der im Ιο-Stapel zu adressierenden Eintragung hebt der Decodierer 32a eines der signale SELECT STACK LO TOP, SELECT STACK LO -1, SELECT STACK LO -2 oder SELECT STACK LO -3 auf den Leitungen 101, 102, 103 oder 104 an. Das Signal GATE STACK LO auf der Leitung 106 wird ebenfalls angehoben. Der Mikrobefehl Steuerregister 31 gibt an, ob Daten von der in den Stapel 2 geleiteten Adresse zu lesen oder dorthin zu schreiben sind. Das Leiten der Adresse wird durch Signale auf den Leitungen 101, 102, 103 und 104 gesteuert. Wenn das Signal SELECT STACK LO STOP auf der Leitung 101 hoch ist, wird die STLO-Adresse im Register 179 über die +!-Schaltung 174 und die Schaltungen 185, 188, 23 und 22 geleitet. Wenn das Signal SELECT STACK LO -1 auf der Leitung 102 hoch ist, wird die STLO-Adresse im Register 179 über die +2-Schaltung 182 und die Schaltungen 186, 188, 23 und "22 ge,-leitet. Wenn das Signal. SELECT STACK LO -2 auf der Leitung 103 hoch ist, wird die STLO-Adresse im Register 179 über die +3-Schaltung 183 und die Schaltungen 187, 188, 2 3 und 22 geleitet. Wenn das Signal SELECT STACK LO -3 auf der Leitung 104 hoch ist, wird die STLO-Adresse im Register 179 über die +4-Schaltung 200 und die Schaltungen 201, 188, 23 und 22 geleitet.
EN 972 ObO
509818/0780

Claims (1)

  1. - a* - IJL 24*8690
    -M *
    PATENTANSP RU CH E
    Kellerspeichereinrichtung für eine Datenverarbeitungsanlage zur Speicherung von Operatoren und von Operanden, die bei Ausführung der Operatoren benötigt werden, dadurch gekennzeichnet, daß die Operatoren in einem ersten Registerstapelbereich gespeichert werden, der von einem Adressenende des Kellerspeichers (2) ausgeht (HSO aufwärts), während die Operanden in einem zweiten Bereich gespeichert werden, der vom anderen Adressenende des Kellerspeichers ausgeht (HS15 abwärts), "
    daß in einer Adressensteuerung (32a) getrennte Adressenregister (150, 179) zur Adressierung der beiden Bereiche vorgesehen sind,
    und daß Einrichtungen IFig» 2) vorgesehen sind, die eine direkte Adressierung einer wählbaren Anzahl von Stapelregistern gestatten, ;
    2, Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß j eine überwachungseinrichtung (160) vorgesehen ist, die eine übertragung des Inhaltes der Kellerspeichereinrichtung (2) in einem langsameren Hauptspeicher (3) veranlaßt, wenn sich die Adressen in den Adressenregistern (150, 179) aus ihren Bereichen heraus überschneiden.
    3, Einrichtung nach Anspruch 2, dadurch gekennzeichnet, daß die Operatoren in den Registern von der niedrigsten Adresse aus aufwärts und die Operanden in den Registern von der höchsten Adresse aus abwärts gespeichert werden, so daß eine Datenübertragung veranlaßt wird, wenn der Adressenwert im Adressenregister (150) zur Adressierung des Operatorenbereiches größer ist als der Adressenwert im Adressenregister (179) zur Adressierung des Operandenbereiches,
    4, Einrichtung nach Anspruch 3, dadurch gekennzeichnet, daß
    EN 972 050
    509818/0780
    eine Datenübertragung vom Hauptspeicher (3) in den Kellerspeicher (2) stattfindet, wenn die Adresse des Operatorenbereiches null unterschreitet, oder die Adresse des Operandenbereiches die höchste Adresse des Kellerspeichers überschreitet.
    Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Eintragungen im Operatorenbereich des Kellerspeichers (2) auch die Adresse im Adressenregister (179) zur Adressierung des Operandenbereiches enthalten, die zu dem Zeitpunkt besteht, in dem der betreffende Operator in den Kellerspeicher geladen wird, und daß diese Adresse wieder in das Adressenregister (79) geladen wird, wenn der betreffende Operator wieder vom Operatorenbereich ausgelesen wird.
    Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß der Operatorenbereich um eine bestimmte Anzahl von Stellen (reservierte Stellen) verschoben werden kann, ohne daß zugleich Operanden im Operandenbereich gespeichert werden, wobei jedoch die Adresse im Adressenregister (179) zur Adressierung des Operandenbereiches um die betreffende Anzahl in ihrem Wert vermindert wird.
    Einrichtung nach Anspruch 6, dadurch gekennzeichnet, daß beim Auslesen aus einer der reservierten Speicherstellen der Adressenwert im Adressenregister um den Stellenwert der reservierten Speicherstelle erhöht wird, worauf dieser erhöhte Adressenwert zur Adressierung des Operandenbereiches verwendet wird.
    Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß jedes einer Vielzahl von Registern des Kellerspeichers
    ÜN y72 050
    509818/0780
    (2) direkt adressiert werden kann, wenn der Adressenwert im Adressenregister des betreffenden Bereiches der Endadresse des Bereiches entspricht.
    EN 972 050
    509818/0780
DE19742448690 1973-10-18 1974-10-12 Kellerspeichereinrichtung fuer eine datenverarbeitungsanlage Pending DE2448690A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US407688A US3889243A (en) 1973-10-18 1973-10-18 Stack mechanism for a data processor

Publications (1)

Publication Number Publication Date
DE2448690A1 true DE2448690A1 (de) 1975-04-30

Family

ID=23613119

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19742448690 Pending DE2448690A1 (de) 1973-10-18 1974-10-12 Kellerspeichereinrichtung fuer eine datenverarbeitungsanlage

Country Status (5)

Country Link
US (1) US3889243A (de)
JP (1) JPS5644507B2 (de)
DE (1) DE2448690A1 (de)
FR (1) FR2248551B1 (de)
GB (1) GB1459613A (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0013291A2 (de) * 1978-10-23 1980-07-23 International Business Machines Corporation Steuersystem für den Befehlsabruf in einem Computer

Families Citing this family (87)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4086628A (en) * 1971-11-10 1978-04-25 International Business Machines Corporation Directory generation system having efficiency increase with sorted input
USRE31318E (en) * 1973-09-10 1983-07-19 Computer Automation, Inc. Automatic modular memory address allocation system
US4025903A (en) * 1973-09-10 1977-05-24 Computer Automation, Inc. Automatic modular memory address allocation system
US4156910A (en) * 1974-02-28 1979-05-29 Burroughs Corporation Nested data structures in a data driven digital data processor
US4156909A (en) * 1974-02-28 1979-05-29 Burroughs Corporation Structured data files in a data driven digital data processor
US4156908A (en) * 1974-02-28 1979-05-29 Burroughs Corporation Cursive mechanism in a data driven digital data processor
US4351024A (en) * 1975-04-21 1982-09-21 Honeywell Information Systems Inc. Switch system base mechanism
US4025901A (en) * 1975-06-19 1977-05-24 Honeywell Information Systems, Inc. Database instruction find owner
US4042912A (en) * 1975-06-19 1977-08-16 Honeywell Information Systems Inc. Database set condition test instruction
US4044334A (en) * 1975-06-19 1977-08-23 Honeywell Information Systems, Inc. Database instruction unload
US4024508A (en) * 1975-06-19 1977-05-17 Honeywell Information Systems, Inc. Database instruction find serial
US4016545A (en) * 1975-07-31 1977-04-05 Harris Corporation Plural memory controller apparatus
US4008460A (en) * 1975-12-24 1977-02-15 International Business Machines Corporation Circuit for implementing a modified LRU replacement algorithm for a cache
GB1525045A (en) * 1976-02-11 1978-09-20 Nat Res Dev Computer stores
SE414087B (sv) * 1977-02-28 1980-07-07 Ellemtel Utvecklings Ab Anordning i ett datorsystem vid utsendning av signaler fran en processor till en eller flera andra processorer varvid prioriterade signaler sends direkt utan tidsfordrojning och oprioriterade signalers ordningsfoljd ...
US4195341A (en) * 1977-12-22 1980-03-25 Honeywell Information Systems Inc. Initialization of cache store to assure valid data
US4432050A (en) * 1978-10-02 1984-02-14 Honeywell Information Systems, Inc. Data processing system write protection mechanism
US4298932A (en) * 1979-06-11 1981-11-03 International Business Machines Corporation Serial storage subsystem for a data processor
US4315313A (en) * 1979-12-27 1982-02-09 Ncr Corporation Diagnostic circuitry in a data processor
US4939640A (en) * 1981-05-22 1990-07-03 Data General Corporation Data processing system having unique microinstruction control and stack means
JPS5862884A (ja) * 1981-10-08 1983-04-14 Nec Corp デ−タ処理システム
US4530049A (en) * 1982-02-11 1985-07-16 At&T Bell Laboratories Stack cache with fixed size stack frames
US4608633A (en) * 1983-04-01 1986-08-26 Honeywell Information Systems Inc. Method for decreasing execution time of numeric instructions
US5179734A (en) * 1984-03-02 1993-01-12 Texas Instruments Incorporated Threaded interpretive data processor
US4704679A (en) * 1985-06-11 1987-11-03 Burroughs Corporation Addressing environment storage for accessing a stack-oriented memory
US4843590A (en) * 1986-05-29 1989-06-27 Hewlett-Packard Company History stack
US4885714A (en) * 1986-10-27 1989-12-05 Hewlett-Packard Company Calculator having a user-accessible object stack for the uniform application of mathematical functions and logical operations to a multiplicity of object types
DE3726192A1 (de) * 1987-08-06 1989-02-16 Otto Mueller Stacksteuerung
JPH01255035A (ja) * 1988-04-05 1989-10-11 Matsushita Electric Ind Co Ltd プロセサ
US4882700A (en) * 1988-06-08 1989-11-21 Micron Technology, Inc. Switched memory module
US5107457A (en) * 1989-04-03 1992-04-21 The Johns Hopkins University Stack data cache having a stack management hardware with internal and external stack pointers and buffers for handling underflow and overflow stack
US5142635A (en) * 1989-04-07 1992-08-25 Intel Corporation Method and circuitry for performing multiple stack operations in succession in a pipelined digital computer
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
US5893148A (en) * 1994-03-03 1999-04-06 International Business Machines Corporation System and method for allocating cache memory storage space
US5502833A (en) * 1994-03-30 1996-03-26 International Business Machines Corporation System and method for management of a predictive split cache for supporting FIFO queues
GB2297399B (en) * 1995-01-18 1999-11-03 Nokia Mobile Phones Ltd Electronic data storage
US6038643A (en) * 1996-01-24 2000-03-14 Sun Microsystems, Inc. Stack management unit and method for a processor having a stack
DE69734399D1 (de) * 1996-01-24 2006-03-02 Sun Microsystems Inc Verfahren und vorrichtung zur stapel-cachespeicherung
KR100529416B1 (ko) * 1996-01-24 2006-01-27 선 마이크로시스템즈 인코퍼레이티드 스택기반컴퓨터를위한명령폴딩방법및장치
US5930820A (en) * 1996-03-18 1999-07-27 Advanced Micro Devices, Inc. Data cache and method using a stack memory for storing stack data separate from cache line storage
US6167488A (en) * 1997-03-31 2000-12-26 Sun Microsystems, Inc. Stack caching circuit with overflow/underflow unit
US6009499A (en) * 1997-03-31 1999-12-28 Sun Microsystems, Inc Pipelined stack caching circuit
US6289418B1 (en) 1997-03-31 2001-09-11 Sun Microsystems, Inc. Address pipelined stack caching method
US6131144A (en) * 1997-04-01 2000-10-10 Sun Microsystems, Inc. Stack caching method with overflow/underflow control using pointers
US6092152A (en) * 1997-06-23 2000-07-18 Sun Microsystems, Inc. Method for stack-caching method frames
US6058457A (en) * 1997-06-23 2000-05-02 Sun Microsystems, Inc. Method for storing method frames in multiple stacks
US6138210A (en) * 1997-06-23 2000-10-24 Sun Microsystems, Inc. Multi-stack memory architecture
US6067602A (en) * 1997-06-23 2000-05-23 Sun Microsystems, Inc. Multi-stack-caching memory architecture
US6341344B1 (en) * 1998-03-20 2002-01-22 Texas Instruments Incorporated Apparatus and method for manipulating data for aligning the stack memory
US6275903B1 (en) 1998-04-22 2001-08-14 Sun Microsystems, Inc. Stack cache miss handling
US6108768A (en) * 1998-04-22 2000-08-22 Sun Microsystems, Inc. Reissue logic for individually reissuing instructions trapped in a multiissue stack based computing system
US6170050B1 (en) 1998-04-22 2001-01-02 Sun Microsystems, Inc. Length decoder for variable length data
US6237086B1 (en) 1998-04-22 2001-05-22 Sun Microsystems, Inc. 1 Method to prevent pipeline stalls in superscalar stack based computing systems
US7225436B1 (en) 1998-12-08 2007-05-29 Nazomi Communications Inc. Java hardware accelerator using microcode engine
US6332215B1 (en) 1998-12-08 2001-12-18 Nazomi Communications, Inc. Java virtual machine hardware for RISC and CISC processors
US20050149694A1 (en) * 1998-12-08 2005-07-07 Mukesh Patel Java hardware accelerator using microcode engine
US6983350B1 (en) 1999-08-31 2006-01-03 Intel Corporation SDRAM controller for parallel processor architecture
US6532509B1 (en) 1999-12-22 2003-03-11 Intel Corporation Arbitrating command requests in a parallel multi-threaded processing system
US6694380B1 (en) 1999-12-27 2004-02-17 Intel Corporation Mapping requests from a processing unit that uses memory-mapped input-output space
US7620702B1 (en) 1999-12-28 2009-11-17 Intel Corporation Providing real-time control data for a network processor
US6661794B1 (en) 1999-12-29 2003-12-09 Intel Corporation Method and apparatus for gigabit packet assignment for multithreaded packet processing
US7480706B1 (en) 1999-12-30 2009-01-20 Intel Corporation Multi-threaded round-robin receive for fast network port
US6584522B1 (en) 1999-12-30 2003-06-24 Intel Corporation Communication between processors
US6952824B1 (en) 1999-12-30 2005-10-04 Intel Corporation Multi-threaded sequenced receive for fast network port stream of packets
US6631462B1 (en) * 2000-01-05 2003-10-07 Intel Corporation Memory shared between processing threads
US6550058B1 (en) 2000-02-03 2003-04-15 International Business Machines Corporation Stack clearing device and method
US6813677B1 (en) * 2000-06-02 2004-11-02 Stmicroelectronics, Inc. Memory decoder and method of operation
US20020069402A1 (en) * 2000-10-05 2002-06-06 Nevill Edward Colles Scheduling control within a system having mixed hardware and software based instruction execution
GB2367654B (en) 2000-10-05 2004-10-27 Advanced Risc Mach Ltd Storing stack operands in registers
GB2367653B (en) 2000-10-05 2004-10-20 Advanced Risc Mach Ltd Restarting translated instructions
EP1197847A3 (de) * 2000-10-10 2003-05-21 Nazomi Communications Inc. Java-Hardwarebeschleuniger mit Mikrokodemaschine
GB2369464B (en) 2000-11-27 2005-01-05 Advanced Risc Mach Ltd A data processing apparatus and method for saving return state
US7076771B2 (en) 2000-12-01 2006-07-11 Arm Limited Instruction interpretation within a data processing system
GB2376097B (en) 2001-05-31 2005-04-06 Advanced Risc Mach Ltd Configuration control within data processing systems
GB2376098B (en) * 2001-05-31 2004-11-24 Advanced Risc Mach Ltd Unhandled operation handling in multiple instruction set systems
GB2376099B (en) * 2001-05-31 2005-11-16 Advanced Risc Mach Ltd Program instruction interpretation
GB2376100B (en) * 2001-05-31 2005-03-09 Advanced Risc Mach Ltd Data processing using multiple instruction sets
US8769508B2 (en) 2001-08-24 2014-07-01 Nazomi Communications Inc. Virtual machine hardware for RISC and CISC processors
US7471688B2 (en) 2002-06-18 2008-12-30 Intel Corporation Scheduling system for transmission of cells to ATM virtual circuits and DSL ports
US7131118B2 (en) * 2002-07-25 2006-10-31 Arm Limited Write-through caching a JAVA® local variable within a register of a register bank
US7352769B2 (en) 2002-09-12 2008-04-01 Intel Corporation Multiple calendar schedule reservation structure and method
US7433307B2 (en) 2002-11-05 2008-10-07 Intel Corporation Flow control in a network environment
GB2399897B (en) * 2003-03-26 2006-02-01 Advanced Risc Mach Ltd Memory recycling in computer systems
US7443836B2 (en) 2003-06-16 2008-10-28 Intel Corporation Processing a data packet
GB2412192B (en) * 2004-03-18 2007-08-29 Advanced Risc Mach Ltd Function calling mechanism
US7802080B2 (en) 2004-03-24 2010-09-21 Arm Limited Null exception handling
US7930526B2 (en) 2004-03-24 2011-04-19 Arm Limited Compare and branch mechanism

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3047228A (en) * 1957-03-30 1962-07-31 Bauer Friedrich Ludwig Automatic computing machines and method of operation
GB979633A (en) * 1960-04-20 1965-01-06 Nat Res Dev Improvements in or relating to electronic digital computing machines
US3200379A (en) * 1961-01-23 1965-08-10 Burroughs Corp Digital computer
US3401376A (en) * 1965-11-26 1968-09-10 Burroughs Corp Central processor
US3546677A (en) * 1967-10-02 1970-12-08 Burroughs Corp Data processing system having tree structured stack implementation
NL6815506A (de) * 1968-10-31 1970-05-04
US3601809A (en) * 1968-11-04 1971-08-24 Univ Pennsylvania Addressable list memory systems
US3624616A (en) * 1969-12-04 1971-11-30 Burroughs Corp Dynamic allocation of multidimensional array memory space
US3786432A (en) * 1972-06-20 1974-01-15 Honeywell Inf Systems Push-pop memory stack having reach down mode and improved means for processing double-word items

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0013291A2 (de) * 1978-10-23 1980-07-23 International Business Machines Corporation Steuersystem für den Befehlsabruf in einem Computer
EP0013291A3 (en) * 1978-10-23 1980-10-01 International Business Machines Corporation Instruction fetch control system in a computer and method for controlling the computer

Also Published As

Publication number Publication date
US3889243A (en) 1975-06-10
JPS5644507B2 (de) 1981-10-20
JPS5068438A (de) 1975-06-07
FR2248551B1 (de) 1976-10-22
GB1459613A (en) 1976-12-22
FR2248551A1 (de) 1975-05-16

Similar Documents

Publication Publication Date Title
DE2448690A1 (de) Kellerspeichereinrichtung fuer eine datenverarbeitungsanlage
DE2515696C2 (de) Datenverarbeitungssystem
DE2351791C2 (de) Datenverarbeitungsanlage
DE3151745C2 (de)
DE3424962C2 (de)
DE2630323B2 (de) Datenspeichereinrichtung mit einem Hauptspeicher, einem Hilfsspeicher und einer Vorausschaulogik
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
DE1499193B2 (de) Speicher-adressierschaltung
CH650600A5 (de) Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister.
DE1285219B (de) Steuerwerk zur Ausfuehrung von Unterprogrammen
DE2054830C3 (de) Informationsverarbeitungsanlage mit Mitteln zum Zugriff zu Speicher-Datenfeldern variabler Länge
DE2746505C2 (de)
DE2747196C2 (de) Vergleichseinrichtung zum Vergleichen von Informationen variabler Länge
DE2339636A1 (de) Programmsteuereinrichtung
DE1774870C3 (de) Einrichtung zur Adressierung einer Speicherzelle eines Speichers in einer Datenverarbeitungsanlage
DE2054947A1 (de) Adressenvorbereitungseinnchtung und verfahren und Speicherzugnffan forderungseinnchtung fur ein Infor mationsver arbeitungssystem
DE3043653A1 (de) Datenverarbeitungsanlage
DE1549531A1 (de) Digitale Rechenanlage
DE2353635A1 (de) Datenverarbeitungssystem und verfahren zur datenverarbeitung
DE2426874A1 (de) Verfahren und schaltungsanordnung zur bestimmung der adressenart eines befehls
DE2429067B2 (de) Speicherschaltung
DE2332971A1 (de) Mikroprogrammsteuersystem
DE2458525B2 (de) Speicheranordnung mit Haupt- und Pufferspeicher
DE2364323A1 (de) Unterbrechungssystem fuer eine datenverarbeitende maschine
DE2233193A1 (de) Stapel-speichersystem

Legal Events

Date Code Title Description
OHJ Non-payment of the annual fee