DE2351791A1 - Datenverarbeitungsanlage - Google Patents
DatenverarbeitungsanlageInfo
- Publication number
- DE2351791A1 DE2351791A1 DE19732351791 DE2351791A DE2351791A1 DE 2351791 A1 DE2351791 A1 DE 2351791A1 DE 19732351791 DE19732351791 DE 19732351791 DE 2351791 A DE2351791 A DE 2351791A DE 2351791 A1 DE2351791 A1 DE 2351791A1
- Authority
- DE
- Germany
- Prior art keywords
- register
- stack
- memory
- entry
- data processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
- G06F7/78—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/451—Stack data
Description
Böblingen, den 11. Oktober 1973
ru-aa
Anmelderin: International Business Machines
Corporation,. Armonk, N.Y. 10504
Amtliches Aktenzeichen: Neuanmeldung ο q c i π η ι
Aktenzeichen der Anmelderin: EN 972 Ο51
Die Erfindung betrifft eine Datenverarbeitungsanlage, die mit einer Maschinensprache arbeitet, die auf eine höhere Problemprogrammsprache
bezogen ist und mit mindestens einem Prozessor und mindestens einem Hochgeschwindigkeitsspeicher zum Stapeln von
Operanden- und/oder Operatoreneintragungen unmittelbar vor ihrer Verarbeitung ausgerüstet ist.
In einem Datenverarbeitungssystem, welches Operatoren und/oder
Operanden stapelt, sollte der Stapel in einem Speicher enthalten sein, dessen Geschwindigkeit an die Geschwindigkeit des Prozessors
selbst angepaßt ist. Dieser Wunsch läßt sich nicht immer wirtschaftlich
verwirklichen, weil die Anzahl von Eintragungen im Stapel sehr groß werden kann durch die Verflechtung von Operatoren.
Die normale Lösung dieses Problemes besteht darin, daß man eine
feste Anzahl X von sehr schnellen Speicherstellen hat und einen überlauf in einem langsameren Speichermedium aufnimmt. Wenn
der Hochgeschwindigkeitsspeicher voll ist, besteht der normale Betrieb in einem Ausschieben seiner X Eintragungen in den langsameren
Speicher. Jetzt stehen, die Hochgeschwindigkeits-Speicherstellen wieder zum Speichern von X-Eintragungen in den
409817/0897
Stapel zur Verfugung.
Beim Lesen der Eintragungen aus dem Stapel zwecks Verarbeitung wird das Verfahren umgekehrt. Wenn der Hochgeschwindigkeitsspeicher
keine gültigen Eintragungen mehr enthält, werden X Eintragungen aus dem langsamen Speicher eingeschoben. Dieses Verfahren
erfordert nur zwei Hinweise, den oberen Stapelhinweis (STP) für den Hochgeschwindigkeitsspeicher und den langsamen Speicherhinweis
(SSP) für den langsamen Speicher.
Die Gefahr bei dem oben erwähnten Verfahren besteht darin, daß das verarbeitete Programm in eine Betriebsart hineinläuft, die,
andere Speicher- und Leseoperationen und dadurch wieder ein Ausschieben und Einschieben für jede Operation erfordert. Aus einem
Übermaß an Einschiebe- und Ausschiebeoperationen resultiert eine beträchtliche Leistungsverschlechterung des Systems.
Ein anderer Vorschlag wird in der US-Patentschrift 3 401 376
gemacht. Dort wird ein Hochgeschwindigkeitsstapel beschrieben, der einen Speicher für 12 Eintragungen und zwei Maschinenregister
für die beiden obersten Eintragungen umfaßt. Sobald der Speicher voll ist, werden vier Eintragungen in einen langsamen
Speicher geschoben. Wenn der Hochgeschwindigkeitsspeicher weniger als vier Eintragungen enthält, werden vier Eintragungen aus dem
langsamen Speicher eingeschoben. Alle Lese- oder Speicheroperationen erfordern eine übertragung zwischen den Registern und
zwischen einem Register und dem Hochgeschwindigkeitsspeicher.
Daraus ergibt sich die Aufgabe der Erfindung, nämlich die Verzögerung
von Einschiebe- oder Ausschiebeoperationen von Eintragungen
in einem Hochgeschwindigkeitsstapel bis zum letztmöglichen Zeitpunkt.
Die Aufgabe der Erfindung wird gelöst in einem Datenverarbeitungssystem
mit einem Prozessor und einem Hochgeschwindigkeitsstapel zum Speichern von Operanden- und/oder Operatoreintragun-
en 972 051 409817/089?
gen unmittelbar vor ihrer Verarbeitung, das dadurch gekennzeichnet
ist, daß die Operanden- und/oder Operatoreneintragungen in einen Stapel und aus dem Stapel nach dem an sich bekannten
"Zuletzt Ein-Zuerst Aus"-Verfahren einer speichernden Einrichtung
ein- bzw. ausgegeben werden, und daß entstehende überlaufeintragungen
vom genannten Stapel in einen weiteren Stapel einer zweiten, langsameren speichernden Einrichtung eingetragen werden,
wobei der umgekehrte Vorgang, nämlich das übertragen von Eintragungen
aus dem Stapel der langsameren speichernden Einrichtung in den,Stapel der schnelleren speichernden Einrichtung erfolgt,
wenn die Anzahl der gültigen Eintragungen im Stapel der schnelleren
speichernden Einrichtung einen vorgegebenen unteren Grenzwert erreicht.
Weitere wesentliche Merkmale ergeben sich insbesondere aus den Ansprüchen 2 und 3.
Der Vorteil der vorliegenden Erfindung besteht vor allem in der Elliminierung vieler sonst erforderlicher Einschiebe- oder Ausschiebeoperationen
von Eintragungen in den Hochgeschwindigkeitsspeicherstapel bzw. in die Register. Durch die Verwendung eines
Rückgriffregister zum Speichern einer zusätzlichen Speichereintragung
oder einer gelesenen Eintragung wird der bei bisherigen Anlagen auftretende verlangsamte Betrieb, nämlich dann, wenn
das verarbeitete Programm in eine andere Betriebsart eingelaufen ist, die andere Folgen von Lese-" und Speicheroperationen und
somit wieder andere Folgen von Ein- und Ausschiebeoperationen erfordert, auf ein Minimum reduziert.
Ein Ausführungsbeispiel der Erfindung ist in den Zeichnungen dargestellt
und wird anschließend näher beschrieben.
Es zeigen:
Fig. 1 einen Prpzessor, eine Stapeleinrichtung und
einen langsamen Speicher,
en 972 051 409817/0897
Fig. 2 ein Ausführungsbeispiel der verbesserten Stapel-
adreßeinrichtung sowie Einschiebe- und Ausschiebeste
ue rungen , und
Fig. 3,4+5 in Beispielen Speicher- und Leseoperationen
sowie Ausschiebe- und Einschieberoutinen.
Das schematisch in Fig. 1 gezeigte System arbeitet vorzugsweise unter Mikroprogrammsteuerung und mit Datenwegenf wie sie im
einzelnen in der US-Patentschrift Nummer 3 656 123 vom 11. April
1972 beschrieben sind. Durch Mikroprogramm gesteuerte Tore werden daher nicht gezeigt. Kurz gesagt umfaßt das System einen konventionellen
Hauptspeicher 3 und einen Prozessor mit einer arithmetisch logischen Einheit ALU 11 sowie einen zum Prozessor gehörenden
sehr schnellen Arbeitsspeicher 1. Pas A-Eingaberegister
9 und das B-Eingaberegister 10 sind am Eingang der ALU 11 und ein Z-Register 12 an ihrem Ausgang vorgesehen. Der Prozessor
wird mit Mikroprogramm-Steuerwortroutinen betrieben, die in einem Steuerspeicher 30 gehalten werden. Jedes aus dem Steuerspeicher
30 gelesene Wort wird in ein Steuerregister 31 eingegeben.
Steuerdecodierschaltungen 32 betätigen den Prozessor während eines Maschinenzyklus aufgrund eines jeden in das Register 31
eingegebenen Steuerwortes. Die Decodierschaltungen 32 und ein nicht dargestellter Taktgeber erregen ebenfalls nicht dargestellte
UND-Glieder und vervollständigen die Datenwege zur übertragung
der Daten im System auf bekannte Weise."
Im Hochgeschwindigkeitsspexcher 1 benutzt der Prozessor eine Stapeleinrichtung
2, um Operatoren/Operanden zu halten und einen Stapelbereich 4 im langsamen Speicher 3, um jeden Stapelüberlauf
vom Hochgeschwindigkeitsspeicher 1 festzuhalten.
Die Stapeleinrichtung 2 wird über das ODER-Glied 22 und das UND-Glied
23 oder 2 4 entweder durch den oberen Stapelhinweis STP oder den unteren Stapelhinweis SBP adressiert. Der nicht zum
Stapel gehörende Teil des Speichers 1 wird über die Sammelleitung
en 972 O51 409817/0897
25 und das ODER-Glied 22 adressiert.
Mit den Hinweisen STP und SBP wird der Stapel nur beim Speichern,
und Lesen sowie während der Aus- und Einschieberoutinen adressiert. Alle diese Zugriffe erfolgen zum Stapel 2. Alle anderen
Zugriffe zum Speicher 1 erfolgen über die Sammelleitung 25.
Der Speicher 1 enthält mehrere Eintragungen. Die Sammelleitung 17 und das Eingabe/Ausgabe-Speicherdatenregister (SDR) 8 stellen
eine Datenbahn für Operatoren/Operanden vom Speicher 3 zum Speicher
1 und den Registern 10, 15 dar. Während der Einschiebeoperationen vom Speicherbereich 4 zum Speicher 2 werden Daten über
die Sammelleitung 17, das BR-Register 15 und die Sammelleitung übertragen. Sammelleitung 18a und ein Z-Register 12 ermöglichen
es, Zwischenergebnisse der ALU 11 im Stapel 2 zu speichern oder zur weiteren Verarbeitung in das A-Register 10 zurückzuleiten.
Die Sammelleitung 18b stellt eine Verbindung vom Register 12 zum Rückgriffregister (BR) 15 her. Die Sammelleitung 19 bildet eine
Datenbahn vom BR-Register 15 zum Stapel 2 im Speicher 1 und zu den Registern 9, 10.
Information vom Stapel 2 im Speicher 1 wird auf der Sammelleitung
20 entweder in das A-Register 10 oder in das B-Register 9 ausgelesen.
Diese Information kann der ALU 11 für Rechen- oder logische Operationen zugeführt werden. Die Ausgabe des A-Registers
A wird in das Op-Register 13 über das UND-Glied 14 geleitet, wenn
eine Operatoreintragung vom Stapel 2 gelesen wird. Die Ausgabe des A-Registers 10 wird über die Sammelleitung 21, das UND-Glied
16a und das SDR-Register 8 in den Stapelbereich 4 des langsamen
Speichers 3 bei einer AusSchiebeoperation geleitet. Die Bahn 21
und das UND-Glied 16b bilden eine Datenbahn vom Register 10 zum Speicher 3 bei den Stapel nicht betreffenden Datenspeicheroperationen.
Das BR-Register 15 bildet außerdem eine Speichereinrichtung zum Speichern einer zusätzlichen Stapeleintragung nachdem der Stapel
en 972 O51 409817/0897
2 voll ist und eine Speicheroperation erfolgt. Es gestattet außerdem eine zusätzliche Leseoperation, nachdem die letzte gültige
Stapeleintragung aus dem Stapel 2 gelesen worden ist, da dieses Register eine Kopie der letzten gültigen Eintragung im
Stapelbereich 4 des langsamen Speichers 3 speichert.
Das Speicheradreßregister (SAR) 5 empfängt Adressen zur Adressierung
des langsamen Speichers 3 über das ODER-Glied 7 und zur Adressierung der nicht zum Stapel gehörenden Bereiche entweder
vom B-Register 9 oder vom langsamen Hinweis SSP im Register 6 für Einschiebe- oder AusSchieberoutinen, die den Stapelbereich
4 adressieren. Während der Einschiebe- und AusSchieberoutinen
bringen ein Vorwärts zähler 35 und ein Rückwärts zähler 36 den Hinweis
SSP auf den neuesten Stand.
Fig. 2 zeigt die zur Adressierung und Steuerung des Stapels 2 im Hochgeschwindigkeitsspeicher 1 notwendigen Maschinenausrüstung.
Das Register 112 und das Register 113 enthalten die Hinweise STP und SBP und zeigen immer auf gültige Eintragungen im
Stapel 2, wenn das X-Bit in der Verriegelung 1Ol gleich Null ist. Hat das X-Bit den Wert 1, heißt das, daß im Hochgeschwindigkeitsstapel
2 keine gültigen Eintragungen stehen.
Bei jeder Speicheroperation in dem Stapel 2 hinein und am Ende einer jeden Ausschieberoutine wird der X-Bit-Riegel 101 auf
X-Bit = 0 zurückgestellt über das ODER-Glied 102. Der Riegel wird auf X-Bit = 1 über das UND-Glied 103 und die Vergleicherschaltung
106 gestellt, wenn die letzte gültige Eintragung aus dem Stapel 2 gelesen wird (Stapel leer). Eine nachfolgende Leseoperation
schaltet das UND-Glied 10,4 so, daß eine Eintragung vom Rückgriff register 15 gelesen und die Einschieberoutine aufgerufen
wird. Die Einschiebung wird bis zum spätest möglichen Zeitpunkt durch dieses zusätzliche Lesen aus dem Rückgriffregister
15 verzögert.
EN 972 05! 409817/0897
Die Vergleicherschaltung 106 vergleicht den oberen Stapelzeiger STP im Register 112 und den unteren Stapelzeiger SBP im Register
113 miteinander. Wenn beide übereinstimmen, befindet sich keine gültige Eintragung mehr im Stapel 2 und das UND-Glied 103 wird
vorbereitet. Eine nachfolgende Leseoperation schaltet das UND-Glied
103 ein, so daß das X-Bit in der Verriegelung 101 auf 1 gesetzt und dadurch angezeigt wird, daß die letzte gültige Eintragung
aus dem Stapel gelesen wurde. Eine zusätzliche Leseoperation erhält die nächste Eintragung vom BR-Register 15 über das
UND-Glied 104 und leitet eine Einschieberoutine ein.
Die Vergleicherschaltung 107 zeigt an, daß der Stapel voll ist (SBP=STP+1). Wenn das X-Bit = O ist von einer vorhergehenden
Speicheroperation und SBP = STP+1, schaltet eine Speicheroperation
das UND-Glied 105 ein, so daß Daten in das Rückgriffregister
15 gespeichert werden, und leitet eine Ausschieberoutine ein.
Die Vergleicherschaltung 1O7 kann SBP=STP+1 erkennen, wenn der
Stapel 2 leer ist. Bei der Bedingung X-Bit = 1 und einer nachfolgenden
Speicheroperation werden jedoch keine Daten in das Register 15 gespeichert unä die Ausschieberoutine aufgerufen, weil
das UND-Glied 105 durch das Signal X-Bit=0 abgeschaltet ist.
Durch Verwendung des Registers 15 zum Speichern einer zusätzlichen
Speichereintragung oder einer gelesenen Eintragung wird der schleppende Betrieb, der bei bisherigen Anlagen auftrat, wenn das
verarbeitete Programm in eine andere Betriebsart einläuft, die andere Folgen von Lese- und Speicheroperationen und somit wieder
andere Folgen von Ein- und Ausschiebeoperationen erfordert s auf
ein Minimum reduziert.
Der Stapel 2 benötigt 2n Eintragungspositionen, um die Adreßfortschreibung
in zyklischer Adreßreihenfolge (d=h« Register 112, 123, Vorwärtszähler 120? 121 und Rückwärtswähler 122 9 123) für
die Hinweise STP und SBP wirtschaftlich zu ermöglichen- Das Re-
en 972 O51 409817/0897
gister 15 verbessert die Leistung des Stapeis mit fester Länge
wesentlich«
Die UND-Glieder 108, 109, 110 und 111 steuern die Vor-und Rückwärts
zählung des STF-Registers 112 und des SBP-Hinweises im
Register 113 während jeder Eintragung gespeichert oder aus dem
Stapel 2 gelesen wird. Das UND-Glied 23 leitet bei Lese- und Speicheroperationen den Hinweis STP auf die Adresse, die der Lage
der Eintragung im Hochgeschwindigkeitsstapel entspricht. Das UND-Glied 24 leitet bei Einschiebe- und Ausschiebeoperationen den
SBP-Hinweis auf die Adresse, die der Lage der Eintragung im Stapel entspricht.
Bei Speicheroperationen muß der STP-Hinweis auf den neuesten Stand gebracht werden, bevor,der Stapel 2 adressiert wird. Die
UND-Glieder 110 und 124 erhalten daher die aufeinanderfolgenden Taktsignale Tl und T2, um den neuesten Wert des STP-Hinweises
auf den Speicher 1 über die ODER-Schaltung 126 zu leiten. Während
einer Leseoperation kann der STP-Hinweis zum Adreßregister des Speichers 1 nur geleitet werden, wenn im Stapel 2 eine gültige
Eintragung steht. Somit werden dem UND-Glied 125 eine Eingabe
X=O (gültige Eintragung) und eine Leseeingabe zugeführt. Das UND-Glied 125 ist über ein ODER-Glied 126 mit dem UND-Glied 23 verbunden
.
Im Ausführungsbeispiel bringt eine Leseoperation die Ausführung
eines Mikroprogrammwortes mit sich. Eine während einer Leseoperation ausgeführte Funktion ist die Übertragung einer Operandenoder
Operatoreintragung aus dem Stapel 2 in das A-Register 9
oder das B-Register 10. Wenn die Eintragung ein Operator ist, wird
sie in das Op-Register 13 über das UND-Glied 14 geleitet. Wenn die Eintragung ein Operand ist, wird er im A-Register 9 oder im
B-Register IO festgehalten, bis ein zweiter Operand in dem jeweils
anderen Register gespeichert ist und der auszuführende Operator
im Op-Register 13 steht. Die auf den Operandeneintragungen vorzu-
409817/0897
EN 972 051
nehmende logische oder arithmetische Funktion wird dann ausgeführt.
Wenn der Stapel 2 zu dem Zeitpunkt, an dem eine Leseoperation eingeleitet
wird, leer ist, wird die Eintragung im BR-Register 15 in das Register 9 oder das Register 10 unter Mikroprogrammsteuerung
übertragen. .
Das Ergebnis der auf den Operanden in den Registern 9 und 10 ausgeführten arithmetischen oder logischen Funktion wird in das Z-Register
12 übertragen. Während einer nachfolgenden Speicheroperation werden diese Ergebnisse im Register 12 entweder oben in den
Stapel 2 oder in das A-Register 10 übertragen. Im letzteren Fall werden die Ergebnisse als Eintragung für die nächste arithmetische
oder logische Funktion benutzt.
In manchen Fällen handelt es sich bei der aus dem Stapel 2 oder dem BR-Register 15 gelesenen Eintragung um die Adresse von in dem
nicht zum Stapel gehörenden Bereich des Hauptspeichers 3 gespeicherten
Daten. In diesem Fall wird die Eintragung in das B-Register
9 gelesen und die Adresse dann in das Speicher-Adreßregister 5 des Hauptspeichers 3 über das'ODER-Glied 7 geleitet. Eine in das
A-Register 10 während einer vorhergehenden oder nachfolgenden Leseoperation übertragene Dateneintragung wird dann über die Sammelleitung
21 und das UND-Glied 16b an die ausgewählte Adresse im
Hauptspeicher 3 übertragen. Andererseits wird die über das B-Register 9 an das Adreßregister 5 gelieferte Adresse zum Lesen von
Daten aus dem nicht zum Stapel gehörenden Bereich des Hauptspeichers 3 in das A-Register 10 benutzt. Diese Eintragung im Register
10 wird dann in einer logischen oder arithmetischen Funktion gemäß
dem Operator im Register 13 benutzt.
Mit den in das B-Register 9 zur Adressierung des langsamen Speichers
3 geknallten Adressen werden auch Eintragungen aus dem nicht zum Stapel gehörenden Bereich des Speichers abgerufen und dann
durch.die Sammelleitung 17 auf den Stapel 2 gestoßen.
409817/0897
EN 972 051,
Zur Beschreibtang der Ausschieberoutine wird angenommen, daß während
einer Speicheroperation der STP-Hinweis erhöht wird und die Vergleicherschaltung
107 den erhöhten Wert des STP-Hinweises übereinstimmend mit dem Wert des SBP-Hinweises feststellt. Wenn man
annimmt, daß die Verriegelungsschaltung 101 auf logisch 0 steht, zeigt sie an, daß gültige Eintragungen im Stapel 2 stehen und
das gleiche Vergleichsergebnis von der Schaltung 107 zeigt an, daß der Stapel 2 voll ist. Die Aus gangs sign a Ie von der Vergleicherschaltung
107 und der Verriegelungsschaltung 1Ol zusammen mit dem Speichersignal schalten dann das UND-Glied 105 ein zur
Erzeugung eines Signales auf der Leitung 140.
Die aus dem nicht zum Stapel gehörenden Bereich des Hauptspeichers
3 abgerufenen Speicherdaten werden vom Ausgaberegister in das Z-Register
12 übertragen durch das Α-Register IO und die ALU 11. Die Speicherdaten können auch von Anfang an im Z-Register 12 gestanden
haben. Die Leitung 140 leitet die Ausgabe des Z-Registers 12 in das BR-Register 15 über das UND-Glied 127 und sperrt die
Ausgabe des Z-Registers 12 zum Stapel 2 durch die Sperrschaltung
128.
Außerdem zwingt die Leitung 140 eine feste Verzweigungsadresse in einem Speicher 145 (zum speichern von Konstanten) in das Speiche
radreßregister des Steuerspeichers 3O, um zum ersten Mikroprogramms
teuerwort der Ausschieberoutine zu verzweigen.
Der Abstimmwert für das jeweils ausgeführte Programm wird in das Register 142 des Speichers 1 angegeben und der Prozessor ist für
die Ausschieberoutinen vom Stapel 2 in den Stapelbereich 4 bereit..
Jede aus dem Stapel 2 in den Stapel 4 ausgeschobene Eintragung wird über die Sammelleitung das A-Register 10, die Sammelleitung
21 und das UND-Glied 16a übertragen. Der SBP-Hinweis wird über das UND-Glied 2 4 geleitet und wählt jede Eintragung vom Stapel
2 für das Ausschieben aus. Mit dem SSP-Hinweis im Register 6 wird eines der Register SSR 1 bis SSR-η im Stapelbereich 4 ausgewählt,
wo die ausgeschobene Eintragung zu speichern ist.
409817/0897
EN 972 051
Die Hinweise SBP und SSi* «werde« beim Ausschieber einer jeden
Eintragung erhöht* für jede ausgesehobene Eintragung wird der
Wert int Register 142 des Speichers 1 in das A-Register' 10 übertragen
, durch die ALU 11 heruntergesetzt, in das Z-Register 12
übertragen und dann in das Register 142 zurückgeführt. Während
der Wert im Z-Register 12 steht, wird er auf Gleichheit mit Null
geprüft. Wenn der Wert O ist, ist die Ausschieberoutine beendet*
Die obige Reihe von Schritten wird zum Äusschieben einer Eintragung
nach der anderen wiederholt, bis der heruntergesetzte Wert
vom Register 142 Null erreicht. Zu diesem Zeitpunkt folgt eine
Verzweigung zu der Routine, die ausgeführt wurde, bevor die Ausschieberoutine
eingeleitet wurde. Wenn die Routine beendet ist, wird die noch im BR-Register 15 stehende Speichereintragung auf
dem Stapel 2 gespeichert und die aus diesem ausgeschoben und noch im Ä-Register 10 festgehaltene letzte gültige Eintragung
über die ALU 11, das Z-Register 12 und die Sammelleitung 18b in
das BR-Register 15 übertragen.
Zur Beschreibung der Einschieberoutine wird angenoiranen, daß eine
gültige Eintragung noch im Stapel 2 steht und eine Leseoperation stattfindet* Wenn nur noch eine gültige Eintragung im Stapel 2
steht, Sind die Hinweise SBP und STP gleich, Wodurch die Ausgabe
der Vergleichsschaltung 106 und das Lesesignal das UND-Glied 103 einschalten und in der Verriegelung 101 das X-Bit auf 1
setzen. Es wird angenommen, daß eine weitere Leseoperation erfolgt. Die Ausgabe der Verriegelung lOi und das Lesesignal schalten
das UND-Glied 104 ein, so daß es ein Signal auf der Leitung
141 erzeugt. Das Signal auf der Leitung 141 zusammen mit dem Mikroprogramm veranlassen dann die Überleitung der Eintragung im
BR-Register 15 entweder auf das B-Register 9 oder das A-Register 10,
Durch das Signal auf der Leitung 141 liefert auch der Speicher 145 eine Verzweigungsadresse an den Steuerspeicher 30 zur Adressierung
des ersten Mikroprogrammwortes in der Einschieberoutine.
409817/0897 .
EN 972 OSl
Wie bei der Ausschieberoutine wird der Abstimmwert für das jeweils
ausgeführt Programm in das Register 142 im Speicher 1 eingegeben. Um die erste Eintragung aus dem Stapelbereich 4 in den
Stapel 2 zu schieben, wird zuerst der Hinweis SSP heruntergesetzt, da er auf ein leeres Pegister im Bereich 4 zeigt. Der
heruntergesetzte SSP-Wert wird dann in das Speicheradreßregister 5 gegeben, um die zuletzt eingegebene gültige Eintragung im Stapelbereich
4 zu adressieren (hierbei handelt es sich um dieselbe
Eintragung, die vom BR-Register 15 in das Register 9 oder 10
übertragen wurde). Der SBP-Hinweis wird heruntergesetzt und der heruntergesetzte Wert des Hinweises durch das UND-Glied 24 geleitet,
um die Position im Stapel 2 zu adressieren, in welche die Eintragung geschoben werden soll. Die Eintragung wird dann
vom Register 8 des Speichers 3 in den Stapel 2 durch die Sammelleitung 17, das BR-Register 15 und die Sammelleitung 19 übertragen.
Der Abstimmwert im Register 142 wird dann durch das A-Register 10 an die ALU 11 übertragen, heruntergesetzt und in das
Register 142 durch das Z-Register 12 und die Sammelleitung 18a zurückgeführt. Während der heruntergesetzte Wert im Z-Register
12 steht, prüft ihn die Schaltung 143 auf Gleichheit mit Null. Mit derselben Schrittfolge wird jede Eintragung im Stapelbereich
4 in den Stapel 2 übertragen, bis die Schaltung 143 feststellt, daß der heruntergesetzte Abstimmwert gleich Null ist. Zu diesem
Zeitpunkt ist die Einschieberoutine beendet.
Vor der Beendigung wird jedoch die nächste gültige Eintragung im Stapelbereich 4 in das BR-Register 15 übertragen und dort
festgehalten. Zum Rückstellen der Verriegelung 101 wird über das ODER-Glied 102 ein Signal angelegt. Vor der übertragung der
letzten gültigen Eintragung im Stapelbereich 4 in das BR-Register 15 wurde der SSP-Hinweis im Register 6 heruntergesetzt. Nach dieser
Operation muß der SSP-Hinweis heraufgesetzt werden, so daß er jetzt auf die erste leere Stelle im Bereich 4 zeigt.
Die Fign. 3a bis 3c, 4a bis 4f und 5a bis 5f zeigen den Inhalt
des Stapels 2 und des Rückgriffregisters 15, die Werte der Sta-
409817/0897
EN 972 O51
pelhinweise STP und SBP und den Zustand des X-Bit für ein Beispiel
des Lesens, Speicherns, Einschiebens und Ausschiebens.
Der oberste Stapelhinweis STP zeigt am Anfang auf die Eintragungsstelle
HS7 des Stapels 2 (Fig. 3a). Der STP-Hinweis wird um +1 erhöht und zeigt auf die Stelle HS8 während der Speicheroperation
über das UND-Glied HO und die Erhöhungsschaltung 121. Das UND-Glied 23 leitet den auf den neuesten Stand gebrachten
STP-Hinweis zur Adressierung des Hochgeschwindigkeitsspeichers 1
und die Speicherdaten I werden in der Stelle HS8 im Stapel 2 (Fig. 3b) gespeichert.
Während einer nachfolgenden Leseoperation werden die Daten I aus
der Stelle HS8 im Hochgeschwindigkeitsspeicher durch den obersten Stapelhinweis STP adressiert. Der STP-Hinweis wird dann über das
UND-Glied 111 und die Erniedrigungsschaltung 123 heruntergesetzt und zeigt wieder auf die nächste gültige Eintragung H in der
Stelle HS7 des Stapels 2.
Das Ausschieben des Hochgeschwindigkeitsspeicherstapels wird bis
zum spätest möglichen Zeitpunkt verzögert. Um eine Ausschiebeoperation
einzuleiten, muß einmal durch die Vergleicherschaltung 1O7 festgestellt werden, daß der Stapel voll ist (SBP=STP+1).,
das X-Bit in der Verriegelungsschaltung 101 auf Null stehen (durch eine vorhergehende Speicheroperation) und eine weitere
Speicheroperation eingeleitet sein. Diese Bedingungen erzeugen ein Signal am Ausgang 140 des UND-Gliedes 105 in Fig. 2, wodurch
die Speicherdaten Q vom Register 12 in das Rückgriffregister 15
übertragen werden. Die AusSchieberoutine wird eingeleitet durch
eine Verzweigung zum ersten Steuerwort der Routine im Speicher
Der oberste Stapelhinweis STP wird über das UND-Glied 110 und die
409817/0897
EN 972 051
Erhöhungsschaltung 121 wie bei der normalen Speicheroperation erhöht.
Die Ausschieberoutine legt am Anfang einen Impuls an das UND-Glied
24 f um den unteren Stapelhinweise SBP auf das Adreßregister des
Speichers 1 zu leiten. Die Daten in der durch den SBP-Hinweis adressierten Stelle werden über die Sammelleitung 20, das A-Register
10, die Sammelleitung 21 und das UND-Glied 16a gemäß
Darstellung in Fig. 1 in den Speicher 3 ausgeschoben. Die ausgeschobenen Daten v/erden im langsamen Speicherstapelbereich 4 an
der durch den SSP-Hinweis im Register 6 angegebenen Stelle gespeichert und der SSP-Hinweis durch die Erhöhungsschaltung 35
auf den neuesten Stand gebracht, und zwar über das UFD-Glied 1O8
in Fig. 2 und die Erhöhungsschaltung 120, so daß er jetzt auf die nächste auszuschiebende Eintragung zeigt.
Weitere Eintragungen werden genauso ausgeschoben und die Hinweise SSP und SBP für jede Eintragung fortgeschrieben, bis die gewählte
Anzahl von Eintragungen ausgeschoben ist. Die Anzahl der aus geschobenen Eintragungen wird durch das Ausschiebemikroprogramm
und ein Register 142 im Speicher 1 gesteuert. Während der Ausführung des ersten Mikroprogrammwortes der AusSchieberoutine
wird das Register 142 mit einem Wert gefüllt, der gleich der Anzahl auszuschiebender Eintragungen ist. Während des Ausschiebens
einer jeden Eintragung liest das Mikroprogramm den Wert im Register 142 aus, setzt ihn herunter und speichert ihn in das
Register 142 zurück. Wenn dieser Wert Null erreicht, ist die Ausschieberoutine beendet und es erfolgt eine Verzweigung zum Problemprogramm.
Diese Bedingung wird durch die Vergleicherschaltung 143 erkannt.
Die Fign. 4a bis 4f zeigen 12 ausgeschobene Eintragungen A bis L
und den SBP-Hinweis, der so auf den neuesten Stand gebracht wurde,
das auf die Eintragung M im Stapelregister HS12, den neuen Stapelboden zeigt. Fig. 5a zeigt den Stapel 2 gefüllt, wobei die
Eintragungen A bis P in den Stellen HS0-HS15 stehen. Der oberste
409817/0897
EN 972 051
EN 972 051
Sirapelhinweis STP zeigt auf die Stelle HSlS und der untere
Stapelhinweis SBP auf die Stelle HSO. Eine Speieheroperation
wird eingeleitet. Der STP-Hinweis wird heraufgesetzt (d.h. er wird von binär 1111 auf binär 0 verändert) und die Vergleicherschaltung
107 erkennt SBP=STP+! und erzeugt ein Aus gangs signal.
Da in der Verriegelungsschaltung 101 das X-Bit = Null ist, erzeugt das UND-Glied 105 ein Ausgangssignal auf der Leitung I4o
zum Speichern der Speicherdaten O. im BR-Register Ϊ5 (Fig. 4b) .
Es erfolgt eine Verzweigung zur Ausschieberoutine im Steuerspeicher 30. Die Eintragungen A bis L werden in den Speicherbereich
4 ausgeschoben, der SBP-Hinweis zwölfmal erhöht und zeigt dann
auf die Stelle HS 12 und das Register 142 wird auf Null heruntergesetzt
(Fig. 4d) .
Dann wird der Inhalt Q des BR-Registers 15 in der Hochgeschwindigkeitsspeicherstelle
HSO gespeichert, die durch den STP-Hinweis angegeben wird (Fig. 4e). Schließlich wird die letzte in
den langsamen Speicher ausgeschobenen und noch im A-Register
stehende Einntragung L in das BR-Register 15 gespeichert (Fig. 4f)
Dadurch werden die Daten im BR-Register 15 für eine weitere Leseoperation zu einem späteren Zeitpunkt zur Verfugung gestellt.
Die Anfangsbedingungen zum Einleiten einer Einschiebung sind in Fig. 5a gezeigt. Der Stapel 2 enthält eine gültige Eintragung
M in der Stelle HS12, SBP=STP, X-BIt=O aus einer vorhergehenden
Speicheroperation und das BR-Register 15 enthält eine Kopie der obersten Stapeleintragung L im langsamen Speicherstapelbereich
(aus der vorhergehenden oben beschriebenen Ausführung).
Bei der nächsten Leseoperation wird .die letzte gültige Eintragung
M aus dem Stapel zur Verarbeitung gelesen (Fig. 5b). Die Ausgabe der Vergleicherschaltung 106 und das Lesesignal schalten
das UND-Glied 103, so daß das X-Bit in der Verriegelungsschaltung 101 auf 1 gesetzt wird. Der STP-Hinweis wird um 1 heruntergesetzt.
40-98-17/0897
EN 972 OS^ - .-
Wenn die nächste auch wieder eine Leseoperation ist, schalten die Ausgabe der Verriegelungsschaltung 101 und das Lesesignal das
UND-Glied 104 ein und des erzeugt ein Signal auf der Leitung 141. Dadurch werden die Daten L (ein Duplikat der obersten Eintragung
im langsamsten Speicher) aus dem BR-Register 15 zur Verarbeitung gelesen, eine Einschieberoutine in den Speicher 30 eingeleitet
und der STP-Hinweis um 1 heruntergesetzt (Fig. 5c).
Die Einschieberoutine setzt zuerst den SSP-Hinweis um 1 herunter.
Die Eintragung L wird dann aus der Stelle im langsamen Speicher im Stapelbereich 4, die durch den SSP-Hinweis bezeichnet ist
(im Register 6), ausgelesen in das Speicher-Datenregister 8. Der SBP-Hinweis wird um 1 heruntergesetzt und die SDR-Daten (L) über
die Sammelleitung 17 und das BR-Register 15 in die durch den
SBP-Hinweis angegebene Stelle HSIl gespeichert (Fig. 5d). Diese
Eintragung L im Hoehgeschwindigkeitsstapel 2 ist ungültig, weil sie bereits beim Lesen aus dem BR-Register 15 benutzt wurde, da
sieh die Hinweise STP und SBP jedoch beim Beginn des Einschiebens um zwei Eintragungspositionen voneinander unterschieden haben,
wird diese Eintragung nie mehr benutzt und der oberste Stapelhinweis zeigt auf die neue Stapelspitze im Register HSlO,
Als nächstes werden die Hinweise SSP und SBP heruntergesetzt und
die Eintragung K aus dem Stäpeibereich 4 in den Stapel 2, und zwar in das Register HSIÖ Übertragen (Fig<
Se)* Das Einschieben geht weiter, bis die gewählte Anzahl von Eintragungen J-A gesteuert
durch das Einschiel3emikröprögrainnLJ.ri die Höchgeschwihdigkeits-Speieherregister
HS9 bis HSO entsprechend eingeschoben worden
sind und der SBP-Hlriweiä die Stelle (HSO) der letzten gültigen
Eintragung A angibt (Fig; Sf)<
Wie im Eüsammennäng mit der ÄüsschieBerbütihe erklärt würde, wird
das Register 42 im Speieher 1 aiii Ärifäritj der El ns ch leib er öu tine
iriitiäiisiisft und mit jeder EihtragüngsüBerträgiihg vom Speicher
3 in den Speicher i heruntörgisetzt. Wenn die 2ähl im Register 42
46-18.1
EM 972 Ö5i
den Wert O erreicht, wird dadurch das Ende der Einschieberoutine
signalisiert.
Das Einschiebemikroprogramm liest dann eine weitere Eintragung aus dem langsamen Speicherbereich 4 in das Rückgriffregister 15
und setzt das X-Bit in der Verriegelungsschaltung 101 über das ODER-Glied 102 auf Null. Die in das BR-Register 15 gelesene Eintragung
kann eine gültige Eintragung aus dem langsamen Speicherstapelbereich 4 oder eine Spezialeintragung aus dem langsamen
Register SSRO sein.und anzeigen, daß keine gültigen Eintragungen
im Stapelbereich 4 bleiben und so ein Ende für die Programmausführung
liefern, wenn sie zu einem späteren Zeitpunkt aus dem BR-Register 15 gelesen wird. Die Einschieberoutine erhöht schließlich
noch den SSP-Hinweis um 1 und setzt ihn so auf die erste leere Stelle für eine spätere Ausschiebeoperation.
409817/0897
EN 972 051
Claims (10)
- PATENTANSPRÜCHEDatenverarbeitungsanlage, die mit einer Maschinensprache arbeitet, die auf eine höhere Problemprogrammiersprache bezogen ist und mit einem Prozessor und einen Hochgeschwindigkeitsspeicher zum Stapeln von Operanden- und/ oder Operatoreneintragungen unmittelbar vor ihrer Verarbeitung ausgerüstet ist,dadurch gekennzeichnet, daß die Operanden- und/oder Operatoreneintragungen in einen Stapel und aus dem Stapel nach dem an sich bekannten "Zuletzt Ein-Zuerst Aus-"Verfahren einer speichernden Einrichtung ein- bzw. ausgegeben werden, und daß entstehende Überlaufeintragungen vom genannten Stapel in einen weiteren Stapel einer zweiten, langsameren speichernden Einrichtung eingetragen werden, wobei der umgekehrte Vorgang, nämlich das übertragen von Eintragungen aus dem Stapel der langsameren speichernden Einrichtung in den Stapel der schnelleren speichernden Einrichtung erfolgt, wenn die Anzahl der gültigen Eintragungen im Stapel der schnelleren speichernden Einrichtung einen vorgegebenen unteren Grenzwert erreicht.
- 2. Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet, daß den bekannten Eingaberegistern (9 und 10) einer arithmetisch logischen Einheit (11) ein weiteres Register (15) zugeordnet ist, das als Rückgriffregister dient und sowohl mit dem langsameren Speicher (3) als auch mit dem schnelleren Speicher (1) sowie über ein UND-Glied (127) mit dem Ausgang der arithmetisch logischen Einheit (11) und den Steuersignalen für die Verschiebeoperationen (140) verbunden ist.409817/0897EN 972 051- 19 - . 7351791
- 3. Datenverarbeitung^anlage nach den Ansprüchen 1 ühd 2f dadurch gekennzeichnet ^ daß das Rückgriffregister (15) zum Stapeln von Einträgen dient, wenn der Stapel (2) des schnellen Speichers (1) voll ist und daß er außerdem eine zusätzliche Leseoperation ermöglicht, nachdem die letzte gültige Stapeleintragung aus dem Stapel (2) gelesen worden ist.
- 4. Datenverarbeitungsanlage nach den Ansprüchen 1 bis 3, dadurch gekennzeichnet, daß ein Speieherädreßregister (5) Adressen zur Adressierung des langsamen Speichers (3) über das ODER-Glied und zur Adressierung der nicht zum Stapel gehörenden Bereiche entweder von einem ersten Register (9) oder von einem zweiten Register (6) für Einschiebe- oder Aüsschieberoutlrien, die den Stapelbereich (4) adressieren, empfängt.
- 5. Datenverarbeitungsanlage nach Anspruch 4, dadurch gekennzeichnet, daß die im Register (6) gespeicherte Information durch einen Vorwärtszähler (35) und einen Rückwärtszähler (36) während der Einschiebe- und Ausschieberöutineri auf den neusten Stand gebracht wird.
- 6< Datenverarbeitungsanlage nach den Ansprüchen 1 bis 5> dadurch gekennzeichnet, daß dem schnelieren Speicher (1) zwei Register (112 und 113) vorgeschaltet sind* die Hinweise (Si?P und SBP) enthalten, die immer darin auf gültige Eintragungen im Stapel (2) zeigeni Wenn ein Sit (X) = G ist*
- 7; Dätenverärbeltürigsähiäge nach Anspruch 6* dadurch gekennzeichnet jr däJB nach der Leseoperation* nach der die letzte gültige Eintragung aus dem Stapel (2) gelesen Würde-, eine nachfolgende Leseoperätiön ein ÜNb-Glieä (ίο!J am Eingang4Ö98 17/Ö8S7EN 972 051- 20 - 7351791so beaufschlagt, daß eine Eintragung aus dem Rückgriffregister (15) gelesen und eine Einschieberoutine aufgerufen wird.
- 8. Datenverarbeitungsanlage nach den Ansprüchen 1 bis 7, dadurch gekennzeichnet, daß zwischen dem Register (112) für einen oberen Stapelzeiger (STP) und dem Register (113) für einen unteren Stapelzeiger (SBP) eine Vergleicherschaltung (1O6) angeordnet ist, die bei Übereinstimmung der Registerinhalte ein nachgeschaltetes UND-Glied (103) vorbereitet, um bei der nachfolgenden Leseoperation das X-Bit auf Eins zu setzen.
- 9« Datenverarbeitungssystem nach Anspruch 8, dadurch gekennzeichnet, daß durch die nächste Eintragung vom Rückgriffregister (15) über das UND-Glied (1O4) eine Einschieberoutine eingeleitet wird.
- 10. Datenverarbeitungssystem nach den Ansprüchen 8 und 9, dadurch gekennzeichnet, daß eine weitere Vergleicherschaltung (1O7) angeordnet ist, die bei SBP=STP + 1 und X-Bit
= 0 eine Speicheroperation und ein UND-Glied (105) einschaltet, wodurch Daten in das Rückgriffregister (15) gespeichert werden, und daß dadurch außerdem eine Ausschieberoutlne eingeleitet wird.409817/Ό897EN 972 051Uersei te
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US00299499A US3810117A (en) | 1972-10-20 | 1972-10-20 | Stack mechanism for a data processor |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2351791A1 true DE2351791A1 (de) | 1974-04-25 |
DE2351791C2 DE2351791C2 (de) | 1982-09-02 |
Family
ID=23155070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2351791A Expired DE2351791C2 (de) | 1972-10-20 | 1973-10-16 | Datenverarbeitungsanlage |
Country Status (6)
Country | Link |
---|---|
US (1) | US3810117A (de) |
JP (1) | JPS5241132B2 (de) |
DE (1) | DE2351791C2 (de) |
FR (1) | FR2204317A5 (de) |
GB (1) | GB1405700A (de) |
IT (1) | IT1001544B (de) |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2253418A5 (de) * | 1973-11-30 | 1975-06-27 | Honeywell Bull Soc Ind | |
JPS5263038A (en) * | 1975-10-01 | 1977-05-25 | Hitachi Ltd | Data processing device |
FR2337376A1 (fr) * | 1975-12-31 | 1977-07-29 | Honeywell Bull Soc Ind | Appareil permettant le transfert de blocs de donnees de longueur variable entre deux interfaces de largeur differente |
US4398248A (en) * | 1980-10-20 | 1983-08-09 | Mcdonnell Douglas Corporation | Adaptive WSI/MNOS solid state memory system |
JPS5569855A (en) * | 1978-11-20 | 1980-05-26 | Panafacom Ltd | Data processing system |
US4298932A (en) * | 1979-06-11 | 1981-11-03 | International Business Machines Corporation | Serial storage subsystem for a data processor |
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 | デ−タ・アクセス方法 |
EP0264077A3 (de) * | 1986-10-14 | 1991-01-30 | Honeywell Bull Inc. | Puffer-Adressenspeicher |
JPH01255035A (ja) * | 1988-04-05 | 1989-10-11 | Matsushita Electric Ind Co Ltd | プロセサ |
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 |
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 |
DE69734399D1 (de) * | 1996-01-24 | 2006-03-02 | Sun Microsystems Inc | Verfahren und vorrichtung zur stapel-cachespeicherung |
US6038643A (en) * | 1996-01-24 | 2000-03-14 | Sun Microsystems, Inc. | Stack management unit and method for a processor having a stack |
US5953741A (en) * | 1996-11-27 | 1999-09-14 | Vlsi Technology, Inc. | Stack cache for stack-based processor and method thereof |
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 |
US6167488A (en) * | 1997-03-31 | 2000-12-26 | Sun Microsystems, Inc. | Stack caching circuit with overflow/underflow unit |
US6131144A (en) * | 1997-04-01 | 2000-10-10 | Sun Microsystems, Inc. | Stack caching method with overflow/underflow control using pointers |
US6058457A (en) * | 1997-06-23 | 2000-05-02 | Sun Microsystems, Inc. | Method for storing method frames in multiple stacks |
US6092152A (en) * | 1997-06-23 | 2000-07-18 | Sun Microsystems, Inc. | Method for stack-caching method frames |
US6067602A (en) * | 1997-06-23 | 2000-05-23 | Sun Microsystems, Inc. | Multi-stack-caching memory architecture |
US6138210A (en) * | 1997-06-23 | 2000-10-24 | Sun Microsystems, Inc. | Multi-stack memory architecture |
US6314513B1 (en) | 1997-09-30 | 2001-11-06 | Intel Corporation | Method and apparatus for transferring data between a register stack and a memory resource |
US6263401B1 (en) * | 1997-09-30 | 2001-07-17 | Institute For The Development Of Emerging Architectures, L.L.C. | Method and apparatus for transferring data between a register stack and a memory resource |
US6237086B1 (en) | 1998-04-22 | 2001-05-22 | Sun Microsystems, Inc. | 1 Method to prevent pipeline stalls in superscalar stack based computing systems |
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 |
JP2004157636A (ja) * | 2002-11-05 | 2004-06-03 | Renesas Technology Corp | データ処理装置 |
US7139876B2 (en) * | 2003-01-16 | 2006-11-21 | Ip-First, Llc | Microprocessor and apparatus for performing fast speculative pop operation from a stack memory cache |
US7191291B2 (en) * | 2003-01-16 | 2007-03-13 | Ip-First, Llc | Microprocessor with variable latency stack cache |
US7139877B2 (en) * | 2003-01-16 | 2006-11-21 | Ip-First, Llc | Microprocessor and apparatus for performing speculative load operation from a stack memory cache |
US7136990B2 (en) * | 2003-01-16 | 2006-11-14 | Ip-First, Llc. | Fast POP operation from RAM cache using cache row value stack |
JP2006309508A (ja) * | 2005-04-28 | 2006-11-09 | Oki Electric Ind Co Ltd | スタック制御装置およびその方法 |
FR2896601B1 (fr) * | 2006-01-24 | 2008-08-15 | Atmel Nantes Sa | Dispositif de traitement en notation polonaise inversee, et circuit integre electronique comprenant un tel dispositif de traitement. |
US20070282928A1 (en) * | 2006-06-06 | 2007-12-06 | Guofang Jiao | Processor core stack extension |
US10338928B2 (en) * | 2011-05-20 | 2019-07-02 | Oracle International Corporation | Utilizing a stack head register with a call return stack for each instruction fetch |
US8793284B2 (en) | 2011-05-26 | 2014-07-29 | Laurie Dean Perrin | Electronic device with reversing stack data container and related methods |
CN112948000B (zh) * | 2021-03-17 | 2023-03-03 | 星汉智能科技股份有限公司 | 栈空间统计方法、装置及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3401376A (en) * | 1965-11-26 | 1968-09-10 | Burroughs Corp | Central processor |
US3461494A (en) * | 1966-03-03 | 1969-08-19 | Soudure Autogene Elect | Manufacture of welding electrodes |
DE1774466B2 (de) * | 1967-06-28 | 1973-07-05 | English Electric Computers Ltd , London | Datenverarbeitungsanlage |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3200379A (en) * | 1961-01-23 | 1965-08-10 | Burroughs Corp | Digital computer |
US3292152A (en) * | 1962-09-17 | 1966-12-13 | Burroughs Corp | Memory |
US3292153A (en) * | 1962-10-01 | 1966-12-13 | Burroughs Corp | Memory system |
US3548384A (en) * | 1967-10-02 | 1970-12-15 | Burroughs Corp | Procedure entry for a data processor employing a stack |
US3461434A (en) * | 1967-10-02 | 1969-08-12 | Burroughs Corp | Stack mechanism having multiple display registers |
US3546677A (en) * | 1967-10-02 | 1970-12-08 | Burroughs Corp | Data processing system having tree structured stack implementation |
US3560935A (en) * | 1968-03-15 | 1971-02-02 | Burroughs Corp | Interrupt apparatus for a modular data processing system |
-
1972
- 1972-10-20 US US00299499A patent/US3810117A/en not_active Expired - Lifetime
-
1973
- 1973-09-05 GB GB4170173A patent/GB1405700A/en not_active Expired
- 1973-09-18 IT IT29046/73A patent/IT1001544B/it active
- 1973-09-19 FR FR7334202A patent/FR2204317A5/fr not_active Expired
- 1973-09-21 JP JP48106058A patent/JPS5241132B2/ja not_active Expired
- 1973-10-16 DE DE2351791A patent/DE2351791C2/de not_active Expired
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3401376A (en) * | 1965-11-26 | 1968-09-10 | Burroughs Corp | Central processor |
US3461494A (en) * | 1966-03-03 | 1969-08-19 | Soudure Autogene Elect | Manufacture of welding electrodes |
DE1774466B2 (de) * | 1967-06-28 | 1973-07-05 | English Electric Computers Ltd , London | Datenverarbeitungsanlage |
Non-Patent Citations (1)
Title |
---|
R.K. Richards Electronic Digital Systems, 1966, S. 227-229 * |
Also Published As
Publication number | Publication date |
---|---|
US3810117A (en) | 1974-05-07 |
JPS4975038A (de) | 1974-07-19 |
JPS5241132B2 (de) | 1977-10-17 |
FR2204317A5 (de) | 1974-05-17 |
DE2351791C2 (de) | 1982-09-02 |
GB1405700A (en) | 1975-09-10 |
IT1001544B (it) | 1976-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2351791A1 (de) | Datenverarbeitungsanlage | |
DE1449765C3 (de) | Einrichtung zur Abfrage eines assoziativen Speichers | |
DE2502910C2 (de) | Informations-Sortiereinrichtung | |
DE4019135C2 (de) | Serieller Speicher auf RAM-Basis mit parallelem Voraus-Lesen und Verfahren zum Speichern von Datenelementen in eine serielle Speichervorrichtung | |
DE2519381A1 (de) | Datenverarbeitungssystem | |
DE2551238C3 (de) | Datenkonzentrator | |
DE2551239C3 (de) | Datenverarbeitungsanlage | |
DE2346525B2 (de) | Virtuelle Speichereinrichtung | |
DE2448690A1 (de) | Kellerspeichereinrichtung fuer eine datenverarbeitungsanlage | |
DE2421229C2 (de) | Digitale Datenverarbeitungsanlage | |
DE2261694A1 (de) | Speichersystem | |
DE3148099C2 (de) | Anordnung zum Erkennen einer Digitalfolge | |
DE2747196C2 (de) | Vergleichseinrichtung zum Vergleichen von Informationen variabler Länge | |
DE2429067C3 (de) | Speicherschaltung | |
DE2617485C3 (de) | Schaltungsanordnung für Datenverarbeitungsanlagen zur Abarbeitung von Mikrobefehlsfolgen | |
DE1805992B2 (de) | Einrichtung zur Adressierung von Zwischenspeichern beim Sortieren/Mischen von vorsortierten Datenfolgen | |
DE1474351C3 (de) | Datenspeicher | |
DE1119567B (de) | Geraet zur Speicherung von Informationen | |
DE1285218B (de) | Datenverarbeitungsanlage | |
DE2210333C3 (de) | ||
DE2458777C2 (de) | Schaltungsanordnung zur Textverarbeitung | |
DE1957600C3 (de) | ||
DE2519195A1 (de) | Assoziativspeicher | |
DE2525394B2 (de) | Verfahren und schaltungsanordnung zum uebertragen, einspeichern und ausspeichern von binaercodierten datenbloecken | |
DE1817795C3 (de) | Verarbeitungsanordnung für Radar-Videosignal-Informationen mit ein Schieberegister enthaltender Speicheranordnung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OD | Request for examination | ||
D2 | Grant after examination | ||
8339 | Ceased/non-payment of the annual fee |