DE2351791C2 - Datenverarbeitungsanlage - Google Patents
DatenverarbeitungsanlageInfo
- Publication number
- DE2351791C2 DE2351791C2 DE2351791A DE2351791A DE2351791C2 DE 2351791 C2 DE2351791 C2 DE 2351791C2 DE 2351791 A DE2351791 A DE 2351791A DE 2351791 A DE2351791 A DE 2351791A DE 2351791 C2 DE2351791 C2 DE 2351791C2
- Authority
- DE
- Germany
- Prior art keywords
- register
- stack
- memory
- entry
- processing system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
Die Erfindung betrifft eine Datenverarbeitungsanlage nach dem Oberbegriff des Patentanspruchs 1.
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.
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 Problems 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 Stapel zur Verfügung.
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 obenerwä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 ist aus der US-Patentschrift
34 01376 bekannt. Dort wird ein H-jchgeschwindigkeitsstapel
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.
Der vorliegenden Erfindung liegt die Aufgabe zügrunde, eine verbesserte Datenverarbeitungsanlage,
die mit einer Maschinensprache arbeitet, die auf eine höhere Problemprogrammiersprache bezogen ist und
mit einem Prozessor und einem Hochgeschwindigkeitsspeicher zum Stapeln von Operanden- und/oder
Operatoreintragungen unmittelbar vor ihrer Verarbeitung sowie mit einem langsameren Speicher zur
Aufnahme der Überläufe aus dem erstgenannten Speicher ausgerüstet ist, zu schaffen, um die Anzahl der
Einschiebe- oder Ausschiebeoperationen im Hochgeschwindigkeitsspeicherstapel
bzw. in den Registern wesentlich zu verringern, und zwar ohne größeren schaltungstechnischen Aufwand.
Die erfindungsgemäße Lösung ist im Kennzeichen des Anspruchs 1 angegeben.
Weitere wesentliche Merkmale ergeben sich insbesondere aus den Ansprüchen 2 und 3.
Der Vorteil der vorliegenden Erfindung besteht vor allem in der Eliminierung vieler sonst erforderlicher
Einschiebe- oder Ausschiebeoperationen von Eintragungen in den Hochgeschwindigkeitsspeicherstapel
bzw. in die Register. Durch die Verwendung eines Rückgriffregisters 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 zeigt
F i g. 1 einen Prozessor, eine Stapeleinrichtung und einen langsamen Speicher,
F i g. 2 ein Ausführurigsbeispiel der veroesserten
Stapeladreßeinrichtung sowie Einschiebe- und Ausschiebesteuerungen und
F i g. 3, 4 und 5 in Beispielen Speicher- und Leseoperationen sowie Ausschiebe- und Einschieberoutinen.
Das schematisch in Fig. 1 gezeigte System arbeitet vorzugsweise unter Mikroprogrammsteuerung und mit
Datenwegen, wie sie im einzelnen in der US-Patentschrift 36 56 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 ALLJIi sowie
einen zum Prozessor gehörenden, sehr schnellen Arbeitsspeicher 1. Da.s 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 einv.-s 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 Hochgeschwindigkeitsspeicher 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 Uf J D-Glied 23 oder 24 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 25 und das ODER-Glied 22 adressiert.
Mit den Hinweisen STPund SSP wird der Stapel nur
beim Speichern und Lesen sowie während der Aus- und Einschieberoutinen adressiert. Alle diese Zugriffe
jo 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 19 ü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 186
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 Α-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 166 bilden einu 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 Stapeleintracung,
nachdem der Stapel 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 Stapelgehö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ärtszähler 35 und
ein Rückwärtszähler 36 den Hinweis SSP auf den neuesten Stand.
Fi g. 2 zeigt die zur Adressierung und Steuerung des
Stapels 2 im Hochgeschwindigkeitsspeicher 1 notwendige Maschinenausrüstung. Das Register 112 und das
Register 113 enthalten die Hinweise STP und SßPund
zeigen immer auf gültige Eintragungen im Stapel 2, wenn das X-Bit in der Verriegelung 101 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 den Stapel 2 hinein und am Ende einer jeden Ausschieberoutine wird der
X-Bit-Riegel 101 auf X-Bh = O zurückgestellt über das ODER-Glied 102. Der Riegel 101 wird auf X-Bn=I
ü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 104 so, daß eine
Eintragung vom Rückgriffregister 15 gelesen und die Einschieberoutine aufgerufen wird. Die Einschiebung
wird bis zum spätestmöglichen Zeitpunkt durch dieses zusätzliche Lesen aus dem Rückgriff register 15
verzögert.
Die Vergleichsschaltung 105 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üllige 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-Bh = 0 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 Vcrgleicherschaiiung 197 kann SBP= STP+\
erkennen, wenn der Stapel 2 leer ist Bei der Bedingung X-Bh = I und einer nachfolgenden Speicheroperation
werden jedoch keine Daten in das Register 15 gespeichert und die Ausschieberoutine aufgerufen, weil
das UND-Glied 105 durch das Signal X-BU=O 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 Speicheroperatiorten und
somit wieder andere Folgen von Ein- und Ausschiebeoperationen erfordert auf ein Minimum reduziert
Der Stapel 2 benötigt 2" Eintragungspositionen, um
die Adreßfortschreibung in zyklischer Adreßreihenfolge (d.h. Register 112, 123, Vorwärtszähler 120, 121 und
Rückwärtszähler 122, 123) für die Hinweise STP und SBP wirtschaftlich zu ermöglichen. Das Register 15
verbessert die Leistung des Stapels mit fester Länge wesentlich.
Die UND-Glieder 108, 109, 110 und 111 steuern die
Vor- und Rückwärtszählung des STP-Registers 112 und des SBP-Hinweises im Register 113, während jede
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 Γ2, 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
werdendem 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 UN D-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 Operanden- oder 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 10 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 vorzunehmende 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 Spp-ichfToperation 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 öder nachfolgenden Leseoperation übertragene Dateneintragung wird dann
über die Sammelleitung 21 und das UND-Glied \6b an die ausgewählte Adresse im Hauptspeicher 3 übertragen.
Andererseils 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.
Zur Beschreibung der Ausschieberoutine wird angenommen,
daß während einer Speicheroperation der STP-Hinweis erhöht wird und die Vergieicherschaitung
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
Ausgangssignale von der Vergleicherschaltung 107 und der Verriegelungsschaltung 101 zusammen mit dem
Speichersignal schalten dann das UND-Glied 105 ein zur Erzeugung eines Signals 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 A-Register 10 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 Speicheradreßregister des Steuerspeichers 30, um zum ersten Mikroprogrammsteuerwort
der Ausschieberoutine zu verzweigen.
Der Abstimmwert für das jeweils ausgeführte Programm wird in das Register 142 des Speichers 1
.eingegeben, 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 24 geleitet und wählt jede Eintragung vom Stapel
2 für das Ausschieben aus. rviit dem SSP-Hinweis im
Register 6 wird eines der Register SSR1 bis SSR π im
Stapelbereich 4 ausgewählt, wo die ausgeschobene Eintragung zu speichern ist
Die Hinweise SBP und SSP werden beim Ausschieben
einer jeden Eintragung erhöht Für jede ausgeschobene Eintragung wird der Wert im 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-Regisier 12 steht wird er auf
Gleichheit mit Null geprüft Wenn der Wert 0 ist, ist die Ausschieberoutine beendet
Die obige Reihe von Schritten wird zum Ausschieben 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
ausgeschobene und noch im A-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 angenommen, 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 SBPund STPgleich, wodurch die Ausgabe der
Vergleicherschaltung 106 und das Lesesignal das UND-Glied 103 einschalten und in der Verriegelung 101
das Ä'-Bit auf i setzen. Es wird angenommen, daß eine weitere Leseoperation erfolgt. Die Ausgabe der
Verriegelung 101 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.
Wie bei der Ausschieberoutine wird der Abstimmwert für das jeweils ausgeführte 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 Register im Bereich 4 zeigt. Der
heruntergesetzte SSP-Wert wird dann in das Speicneradreß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 Schriüfoigc 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 Fig.3a bis 3c, 4a bis 4f und 5a bis 5f zeigen den
230 235/99
Inhalt des Stapels 2 und des Rückgriffregisters 15, die Werte der Stapelhinweise STP und SBP und den
Zustand des X-Bit für ein Beispiel des Lesens, Speicherns, Einschiebens und Ausschiebens.
Speicheroperation (Fig. 3a, 3b)
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
110 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.
Leseoperation (F i g. 3c)
Während einer nachfolgenden Leseoperation werden die Daten I aus der Stelle HS8 im Hochgeschwindigkeitsspeicher
durch den obersten Stapelhinweis 57P 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 HS 7 des Stapels 2.
Ausschieberoutine (F i g. 4a bis 4f)
Das Ausschieben des Hochgeschwindigkeitsspeicherstapels
wird bis zum spätestmöglichen Zeitpunkt verzögert. Um eine Ausschiebeoperation einzuleiten,
muß einmal durch die Vergleicherschaltung 107 festgestellt werden, daß der Stapel voll ist
(SBP= STP+1), das Ä"-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 30. Der
oberste Stapelhinweis STPwird über das UND-Glied
110 und die Erhöhungsschaltung 121 wie bei der normalen Speicheroperation erhöht.
Die Ausschieberoutine legt am Anfang einen Impuls an das UND-Glied 24, um den unteren Stapelhinweis
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 F i g. 1 in den Speicher 3 ausgeschoben. Die ausgeschobenen Daten werden im langsamen
SpciLTieriiapcäicfciCn 4 an dcf diifCn ucii SSr-KiiiwciS
im Register 6 angegebenen Stelle gespeichert und der SSP-Hinweis durch die Erhöhungsschaltung 35 auf den
neuesten Stand gebracht, und zwar über das UND-Glied 108 in Fi g. 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 ausgeschobenen
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 Fig. 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 HS 12, den neuen
Stapelboden, zeigt. Fig.5a zeigt den Stapel 2 gefüllt,
wobei die Eintragungen A bis P in den Stellen HSQ- HS 15 stehen. Der oberste Stapelhinweis 5TP
zeigt auf die Stelle HS 15 und der untere Stapelhinweis
SBP auf die Stelle HSG. Eine Speicheroperation wird
eingeleitet. Der STP-Hinweis wird heraufgesetzt (d. tier wird von binär 1111 auf binär 0 verändert), und die
Vergleicherschaltung 107 erkennt SBP= STP+1 und
erzeugt ein Ausgangssignal. Da in der Verriegelungsschaltung 101 das X-Bit = Null ist. erzeugt das
UND-Glied 105 ein Ausgangssignal auf der Leitung 140 zum Speichern der Speicherdaten Q\m BR-Register 15
(F i g. 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ölf mal erhöht und zeigt dann auf die
Stelle HS 12, und das Register 142 wird auf Null heruntergesetzt (F i g. 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
ausgeschobcn und noch irr, Α-Register stehende
Eintragung L in das BR-Register 15 gespeichert (F i g. 4f). Dadurch werden die Daten im BR-Register 15
für eine weitere Leseoperation zu einem späteren Zeitpunkt zur Verfugung gestellt.
Einschieberoutine (F i g. 5a bis 5f)
Die Anfangsbedingungen zum Einleiten einer Einschiebung sind in Fig. 5a gezeigt Der Stapel 2 enthält
eine gültige Eintragung M in der Stelle HS 12, SBP=STP. X-BU = O aus einer vorhergehenden
Speicheroperation und das BR-Register 15 enthält eine Kopie der obersten Stapeleintragung L im langsamen
Speicherstapelbereich 4 (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
(F i g. 5b). Die Ausgabe der Vergleicherschaltung 106 und das Lesesignai schalten das UND Glied 103, so daß
das X-Bn in der Verriegelungsschaltung 101 auf 1 gesetzt wird. Der STP-Hinweis wird um 1 heruntergesetzt
Wenn die nächste auch wieder eine Leseoperation ist,
schalten die Ausgabe der Verriegelungsschaltung 101 und das Lesesignal das UND-Glied 104 ein, und dies
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 WSIl gespeichert (Fig.5d). Diese
Eintragung L im Hochgeschwindigkeitsstapel 2 ist ungültig, weil sie bereits beim Lesen aus dem
BR-Register 15 benutzt wurde, da sich die Hinweise STPund SBP jedoch beim Beginn des Einschiebens um
zwei Eintragungspositionen voneinander unterschieden haben, wird die Eintragung nie mehr benutzt, und der
oberste Stapelhinweis zeigt auf die neue Stapelspitze im Register HS 10.
Als nächstes werden die Hinweise SSP und SBP heruntergesetzt und die Eintragung K aus dem
Slapeibereich 4 in den Stapel 2, und zwar in das Register
HSlO, übertragen (Fig.5e). Das Einschieben geht weiter, bis die gewählte Anzahl von Eintragungen /- A,
gesteuert durch das Einschiebemikroprogramm, in die Hochgeschwindigkeits-Speicherregister HS 9 bis HSO
entsprechend eingeschoben worden sind und der SBP-Hinweis die Stelle (HSO) der letzten gültigen
Eintragung A angibt (F i g. 5f).
Wie im Zusammenhang mit der Ausschieberoutine erklärt wurde, wird das Register 42 im Speicher 1 am
Anfang der Einschieberouline initialisiert und mit jeder Eintragungsübertragung vom Speicher 3 in den
Speicher 1 heruntergesetzt. Wenn die Zahl im Register 42 den Wert 0 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-Bh in der Verriegelungsschaltung 101 über das ODER-Glied 102
auf Null. Die in das BR-Regisier 15 gelesene Eintragung kann eine gültige Eintragung aus dem langsamen
Speicherstapelbereich 4 oder eine Spezialeintragung aus dem langsamen Register SSR O 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 setzl
ihn so auf die erste leere Stelle für eine spätere Ausschiebeoperation.
Hierzu 4 Blatt Zeichnungen
Claims (10)
1. Datenverarbeitungsanlage, die mit einer Maschinensprache arbeitet, die auf eine höhere
Problemprogrammiersprache bezogen ist und mit einem Prozessor und einem Hochgeschwindigkeitsspeicher
zum Stapeln von Operanden- und/oder Operatoreneintragungen unmittelbar vor ihrer Verarbeitung
ausgerüstet ist, wobei die Operanden- und/oder Operatoreneintragungen in einen Stapel
und aus dem Stapel nach dem »Zuletzt Ein —Zuerst Aus«-Verfahren einer speichernden Einrichtung ein-
bzw. ausgegeben werden und entstehende Oberlaufeintragungen vom Stapel in einen weiteren Stapel
der zweiten, langsameren speichernden Einrichtung eingetragen werden, mit einer arithmetisch logischen
Einheit, der Eingaberepister vorgeschaltet sind, dadurch gekennzeichnet, daß den
Eingaberegistern (9 und 10) ein weiteres Register (15) zugeordnet ist, das als Rückgriffregister dient
und sowohl mit dem langsameren Speicher (3) als auch mil dem schnelleren Speicher (1) sowie über
eine logische Schaltung (127) mit dem Ausgang der arithmetisch logischen Einheit (11) und den Steuersignalen
für die Verschiebeoperation (140) verbunden ist.
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.
3. Datenverarbeitungsanlage nach den Ansprüchen 1 und 2, 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ß es 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
Speicheradreßregister (5) vom Ausgang eines mit zwei Eingängen versehenen ODER-Gliedes (7)
Adressen zur Adressierung des langsamen Speichers (3) und zur Adressierung der nicht zum Stapel
gehörenden Bereiche entweder von einem ersten Register (9), das mit dem einen Eingang des
ODER-Gliedes (7) verbunden ist, oder von einem zweiten Register (6), das mit dem anderen Eingang
des ODER-Gliedes (7) verbunden ist, für Einschiebeoder Ausschieberoutinen, 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 Ausschieberoutinen auf den neuesten Stand gebracht wird.
6. Datenverarbeitungsanlage nach den Ansprüchen 1 bis 5, dadurch gekennzeichnet, daß dem
schnelleren Speicher (1) zwei Register (112 und 113)
vorgeschaltet sind, die Hinweise (STP und SBP)
enthalten, die immer dann auf gültige Eintragungen im Stapel (2) zeigen, wenn ein Bit (X)= 0 ist.
7. Datenverarbeitungsanlage nach Anspruch 6, dadurch gekennzeichnet, daß nach der Leseoperation,
nach der die letzte gültige Eintragung aus dem Stapel (2) gelesen wurde, eine nachfolgende
Leseoperation ein UND-Glied (104) am Eingang so beaufschlagt, daß eine Eintragung aus dem Rückgriffregister
(15) gelesen und eine Einschieberoutine aufgerufen wird.
<J. 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 (106)
angeordnet ist, die bei Obereinstimmung 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 (104) eine Einschieberoutine eingeleitet
wird.
10. Datenverarbeitungssystem nach den Ansprüchen 8 und 9, dadurch gekennzeichnet, daß eine
weitere Vergleicherschaltung (107) angeordnet ist, die bei SBP=STP+\ 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 Ausschieberoutine eingeleitet wird.
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 DE2351791A1 (de) | 1974-04-25 |
DE2351791C2 true 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 |
US6167488A (en) * | 1997-03-31 | 2000-12-26 | Sun Microsystems, Inc. | Stack caching circuit with overflow/underflow unit |
US6289418B1 (en) | 1997-03-31 | 2001-09-11 | Sun Microsystems, Inc. | Address pipelined stack caching method |
US6009499A (en) * | 1997-03-31 | 1999-12-28 | Sun Microsystems, Inc | Pipelined stack caching circuit |
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 |
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 |
US6058457A (en) * | 1997-06-23 | 2000-05-02 | Sun Microsystems, Inc. | Method for storing method frames in multiple stacks |
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 |
US6170050B1 (en) | 1998-04-22 | 2001-01-02 | Sun Microsystems, Inc. | Length decoder for variable length data |
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 |
US6275903B1 (en) | 1998-04-22 | 2001-08-14 | Sun Microsystems, Inc. | Stack cache miss handling |
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 |
US7139877B2 (en) * | 2003-01-16 | 2006-11-21 | Ip-First, Llc | Microprocessor and apparatus for performing speculative load operation from a stack memory cache |
US7191291B2 (en) * | 2003-01-16 | 2007-03-13 | Ip-First, Llc | Microprocessor with variable latency stack 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 | 星汉智能科技股份有限公司 | 栈空间统计方法、装置及介质 |
Family Cites Families (10)
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 |
US3401376A (en) * | 1965-11-26 | 1968-09-10 | Burroughs Corp | Central processor |
BE681175A (de) * | 1966-03-03 | 1966-10-31 | ||
GB1199991A (en) * | 1967-06-28 | 1970-07-22 | Int Computers Ltd | Improvements relating to Data Handling Arrangements |
US3461434A (en) * | 1967-10-02 | 1969-08-12 | Burroughs Corp | Stack mechanism having multiple display registers |
US3548384A (en) * | 1967-10-02 | 1970-12-15 | Burroughs Corp | Procedure entry for a data processor employing a stack |
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
Also Published As
Publication number | Publication date |
---|---|
FR2204317A5 (de) | 1974-05-17 |
IT1001544B (it) | 1976-04-30 |
JPS5241132B2 (de) | 1977-10-17 |
JPS4975038A (de) | 1974-07-19 |
DE2351791A1 (de) | 1974-04-25 |
GB1405700A (en) | 1975-09-10 |
US3810117A (en) | 1974-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2351791C2 (de) | Datenverarbeitungsanlage | |
DE1449765C3 (de) | Einrichtung zur Abfrage eines assoziativen Speichers | |
DE2515696C2 (de) | Datenverarbeitungssystem | |
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 | |
DE2339636C2 (de) | Einrichtung zur Adressierung eines schreibbaren Mikroprogrammspeichers | |
DE2551238C3 (de) | Datenkonzentrator | |
DE2418653C3 (de) | Vorrichtung zum Anzeigen eines Extremwertes einer Folge von Digitalwerten | |
DE2755875C2 (de) | ||
DE2448690A1 (de) | Kellerspeichereinrichtung fuer eine datenverarbeitungsanlage | |
DE2139731A1 (de) | Anordnung und Verfahren zur Code Um Setzung mit einem Assoziativ Speicher | |
DE2360303C2 (de) | Datenverarbeitungsanlage mit Adreßübersetzung für Ein-/Ausgabekanäle | |
DE2036729A1 (de) | Digital Datenverarbeiter | |
DE3148099C2 (de) | Anordnung zum Erkennen einer Digitalfolge | |
DE2432608A1 (de) | Speicheranordnung fuer datenverarbeitungseinrichtungen | |
DE2429067B2 (de) | Speicherschaltung | |
DE2063195C2 (de) | Verfahren und Einrichtung zur Operationssteuerung einer Anzahl von externen Datenspeichern | |
DE2617485C3 (de) | Schaltungsanordnung für Datenverarbeitungsanlagen zur Abarbeitung von Mikrobefehlsfolgen | |
DE1285218B (de) | Datenverarbeitungsanlage | |
DE3039306C2 (de) | Einrichtung für den Empfang von asynchron und bitweise seriell übertragenen Daten | |
DE2458777C2 (de) | Schaltungsanordnung zur Textverarbeitung | |
DE2901455C3 (de) | Speicherzugriffssteuerung zum wahlfreien Zugriff zu einem umlaufenden Speicher und Verfahren zum Betreiben desselben | |
DE2936801C2 (de) | Steuereinrichtung zur Ausführung von Instruktionen | |
DE2257140A1 (de) | Vorrichtung zum aufsuchen einer information | |
DE2404259C3 (de) | Schaltungsanordnung zum Zwischenspeichern von Datensätzen unterschiedlicher Länge |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OD | Request for examination | ||
D2 | Grant after examination | ||
8339 | Ceased/non-payment of the annual fee |