DE1574595A1 - Schaltungsanordnung zur Steuerung des Befehlsflusses in Datenverarbeitungssystemen - Google Patents
Schaltungsanordnung zur Steuerung des Befehlsflusses in DatenverarbeitungssystemenInfo
- Publication number
- DE1574595A1 DE1574595A1 DE19681574595 DE1574595A DE1574595A1 DE 1574595 A1 DE1574595 A1 DE 1574595A1 DE 19681574595 DE19681574595 DE 19681574595 DE 1574595 A DE1574595 A DE 1574595A DE 1574595 A1 DE1574595 A1 DE 1574595A1
- Authority
- DE
- Germany
- Prior art keywords
- instruction
- counter
- register
- internal memory
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims description 11
- 230000015654 memory Effects 0.000 claims description 127
- 238000003860 storage Methods 0.000 claims description 14
- 230000001174 ascending effect Effects 0.000 claims description 3
- 238000012360 testing method Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 8
- 239000000872 buffer Substances 0.000 description 6
- 238000000034 method Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 4
- 102100021661 Aryl hydrocarbon receptor nuclear translocator-like protein 2 Human genes 0.000 description 3
- 101000896221 Homo sapiens Aryl hydrocarbon receptor nuclear translocator-like protein 2 Proteins 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 239000007853 buffer solution Substances 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 101710177347 50S ribosomal protein L15, chloroplastic Proteins 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- BPPVUXSMLBXYGG-UHFFFAOYSA-N 4-[3-(4,5-dihydro-1,2-oxazol-3-yl)-2-methyl-4-methylsulfonylbenzoyl]-2-methyl-1h-pyrazol-3-one Chemical compound CC1=C(C(=O)C=2C(N(C)NC=2)=O)C=CC(S(C)(=O)=O)=C1C1=NOCC1 BPPVUXSMLBXYGG-UHFFFAOYSA-N 0.000 description 1
- 101710082414 50S ribosomal protein L12, chloroplastic Proteins 0.000 description 1
- 101710164994 50S ribosomal protein L13, chloroplastic Proteins 0.000 description 1
- 101710149636 50S ribosomal protein L18, chloroplastic Proteins 0.000 description 1
- 241001091551 Clio Species 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
- G06F9/381—Loop buffering
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
IBM Deutschland
Internationale Büro-Matdiinen Geselltchafi mbH
Böblingen, 10. 1. 1968 ru-hn
Anmelderin:
International Business Machines Corporation, Armonk, N. Y. 10 504
Amtliches Aktenzeichen:
Neuanmeldung
Aktenzeichen der Anmelderin: Docket 10 914
Schaltungsanordnung zur Steuerung des Befehlsflusses in Datenverarbeitungs systemen
Die Erfindung betrifft eine Schaltungsanordnung zum Steuern des Befehls flusses
in Datenverarbeitungsanlagen, die einen Hauptspeicher, ein Rechenwerk und ein Steuerwerk umfassen, das Befehlsregister, Befehlszähler
sowie AdressZugriffsregister zum Hauptspeicher und Register zum Zwischenspeichern
und Laden von Instruktionen enthält.
Eine Datenverarbeitungsanlage muß die Fähigkeit haben, mehrere Programme,
die aus einer Vielzahl von Instruktionen bestehen, abzuarbeiten. Dabei sind im allgemeinen die Instruktionen eines Programms im Hauptspeicher
er abgespeichert. Bei dt-r Ausführung eines Programms werden
1 0 3 8 J 7 / 1 1 3 2
die Instruktionen unter Steuerung eines Befehlszählers aus diesem Speicher der Reihe nach entnommen, Es ist bekannt, bei Programmverzweigungen
den Befehlszählerinhalt auszutauschen, so daß immer diejenige Adresse im Befehlszähler steht, bei der die Schleife in das
Programm vor- bzw.zurückgreift. Auch ist es bekannt, Programmschleifen
mit Hilfe von zusätzlichen Rechenwerken durch Adressensubstitution, -Addition oder -Subtraktion bzw. durch Indexierung zu bilden. Auch ist
es z.B. durch die deutsche Patentschrift 1 177 380 bekannt, die Instruktionen in Schnellpufferspeicher zu überführen, um zusammen mit einer
schnellen Befehlsauf Stellung eine relativ hohe Befehlsfolgefrequenz zu ermöglichen. Jeder Befehl enthält hierbei außerdem Bedingungszeichen,
die über seine Ausführung bestimmen und somit die Anzahl der eigentlichen Sprungbefehle herabsetzen. Die Auswahl der einzelnen Befehle erfolgt
dabei über ein logisches Netzwerk.
Durch die deutsche Auslege schrift 1 171 185 ist ebenfalls eine Rechenmaschine
bekannt geworden, die zwei Speicher, in denen Befehle gespeichert sein können, besitzt. Der eine Speicher ist dabei der Hauptspeicher
der Anlage und der andere ist wieder ein Schnellspeicher. Um in solchen Systemen eine Steigerung der Operationsgeschwindigkeit zu erreichen,
wird nach der genannten Auslege schrift eine programmgesteuerte digitale Rechenmaschine angegeben, die mit mindestens zwfi Speichern
und einem Befehlswerk ausgestattet ist, welches ein Steuerregister,
109837/ 1 182
BAD ORIGINAL
157A595
ein Abrufregister und ein Befehlsregister enthält und bei dem die Befehle
je nach Bedarf von einem der Speicher oder vom Abrufregister in das Befehlsregister geholt und von diesem parallel in das Steuerregister
übernommen werden, wobei weiterhin bei Übernahme eines neuen Befehls der bisherige Inhalt des Befehlsregisters um Eins erhöht
und in das Abruf register überführt wird, die dadurch charakterisiert ist, daß zusätzliche Transportwege sowie in diesen enthaltene
Torschaltungen vorgesehen sind, die während der Ausführungsphase
einer Rechenoperation beim gleichzeitigen Auftreten folgender Kriterien:
a) die Operation ist mit dem zweiten Speicher auszuführen,
b) der augenblickliche Programmablauf ist linear,
c) der nächste , im Augenblick noch im Abrufregister stehende
Befehlsadressteil betrifft den ersten Speicher,
d) durch aus diesen abgeleitete Signale eine Übernahme sowohl des nächsten Befehlsadressenteils vom Abrufregister in das Steuerregister
als auch des nächsten Befehls selbst aus dem ersten Speicher in das Befehlsregister freigegeben sowie die Erhöhung
des zugehörigen Adressenteils im Abrufregister veranlassen.
Diese beschriebenen bekannten Steuerschaltungen für den Befehlsablauf
haben jedoch den Nachteil, daß beim Vorhandensein vieler Programm-
109837/1182 bad
schleifen nur jeweils eine Programmschleife voll in dem Speicher gespeichert
sein kann und damit die Kapazität des Schnellspeichers er-
in schöpft ist. Daraus ergibt sich, daß bei der Verzweigung; eine andere
Programmschleife der Befehls schnellspei eher erst geleert werden muß
und die neue Programmschleife in den Befehlsschnellspeicher übernommen werden muß. Durch diese relativ häufigen Übertragungen zwischen
dem Befehlsschnellspeicher und dem Hauptspeicher einer Datenverarbeitungsanlage wird die Gesamtinstruktionsfolge wesentlich herabgesetzt
und die Leistung der Datenverarbeitungsanlage wird somit unnötig begrenzt.
Der Erfindung liegt deshalb die Aufgabe zu Grunde, eine Schaltungsanordnung
zur Steuerung des Befehlsflusses in Datenverarbeitungsanlagen anzugeben, die die Ausführung von Programmen mit vielen Schleifen
gewährleistet, ohne daß die langwierigen geschilderten Austauschoperationen zwischen dem Hauptspeicher und dem Befehls Schnellspeicher erforderlich
sind.
Die erfindungsgemäße Lösung besteht darin, daß mindestens ein Teil
der Instruktionen jeder Programmschleife im. Instruktions schnellspeieher
steht und der Rest im Hauptspeicher, daß jeder Programmschlei-
Ursprungs
fe ein -register und ein Programmschleifenzähler zugeordnet
sind, die zusammen mit einem Zähler, der über einen Decoder
BAD OFUGINAL
109837/1 182
mit dem Programmschleifenzähler in Steuer verbindung steht und einem
logischen Netzwerk die Anzeige einer gespeicherten Instruktion, den Zugriff zu einer gespeicherten Information oder die Bestimmung des
jeweiligen Speicherplatzes in dem Befehls Schnellspeicher steuert.
Die erfindungsgemäße Schaltungsanordnung hat gegenüber den bekannten
Steuerwerken in Datenverarbeitungsanlagen den Vorteil, daß trotz völliger Ausnutzung der Befehls Schnellspeicher-Kapazität sehr schnell und
automatisch ohne Übertragungsoperationen zwischen dem B efehls schnellspeicher
und dem Hauptspeicher auf eine der vielen Schleifen übergegangen werden kann. Daraus ergibt sich eine wesentliche Leistungssteigerung
der gesamten Datenverarbeitungsanlage, in der eine solche Steuerung des Befehlsflusses angewendet wird.
Die Erfindung wird anhand von in den Zeichnungen dargestellten Ausführungsbeispielen
erklärt. Es zeigen:
Fig. 1: ein Funktionsblockdiagramm der Hauptfunktionsteile des vorliegenden
Instruktionspuffer systems,
Fig. 2: im einzelnen die Folge der Arbeitsschritte und Prüfungen,
die durch das vorliegende System bei der Ausführung einer Instruktion orgenomman werden ungeachtet üt.:.isen, ob tu ο
10 9 8 3 ■■ 118 2
BAD
bereits im Puffer gespeichert ist oder nicht, Fig. 3: die Anordnung der Fig. 3a bis 3g zueinander,
Fig. 3a-g: die Schaltlogik eines vorteilhaften Ausführungsbeispiels
des in Fig. 1 funktionsmäßig dargestellten Instruktions Puff er sy stems,
Fig. 4: die Schaltlogik der Folge schaltungen für das in den Fig.
3a bis 3g gezeigte System.
Bei Benutzung des Systemes mit einem neuen Programm muß zuerst
entschieden werden, ob jede Instruktion einen Teil einer Programmschleife bildet, die der Programmierer in dem im folgenden "interner
Speicher11 genannten Speicher gespeichert haben will, der einen
Teil des Instruktions-Puffer systems bildet« Ist das nicht der Fall,
werden die Instruktionen auf die übliche Art an die Ausführungseinheiten weitergegeben und das System bleibt außer Betrieb. Wenn jedoch
entschieden wird, daß eine bestimmte Instruktion ein Teil einer zu puffernden Programmschleife ist, untersucht das System zuerst
die im Instruktions zähler enthaltene Adresse dieser Schleife, urn festzustellen,
ob sie bereits im internen Speicher gespeichert ist oder nicht. Ist sie nicht gespeichert, erzeugt das System eine entsprochen-
109337/1162 bad original
157Α595
de Adresse für seinen internen Speicher und überträgt die ganze Instruktion
vom Instruktionsregister in den internen Speicher, Wenn auf der anderen Seite festgestellt wird, daß die Instruktion bereits
im internen Speicher bei einem vorherigen Zyklus gespeichert wurde, erzeugt das System die Adresse, an der die gewünschte Instruktion
im internen Speicher steht. Dann holt sie diese Adresse direkt aus dem internen Speicher und setzt sie in das Instruktionsadressregister.
Somit wird ein Hauptspeicherzyklus vermieden. Die Einzelheiten dieses Verfahrens, in dem mehr als eine Schleife erkannt, gespeichert
und aus dem System annexes ;m wird, sowie des Verfahrens, in dem
die verschiedenen Adressen erzeugt und Prüfungen durchgeführt werden, werden in der genaueren Beschreibung der in Fig. 3 (Fig. 3a
e
bis 3g) dargestellten Ausführung beschrfben.
bis 3g) dargestellten Ausführung beschrfben.
Die Funktionen der im Funktionsblockdiagramm der Fig. 1 dargestellten
Hauptblocks wurden oben allgemein beschrieben. Wie im folgenden beschrieben, haben die in dieser Figur gezeigten Instruktionsregister
und Instruktions zähler außer ihren normalen Aufgaben in einem herkömmlichen Computer im vorliegenden System noch die Aufgabe, Instruktionsfolgen,
zu haben und diese zwecks Ausführung an den erwähnten Computer -zu geben. Der Block mit der Bezeichnung CLIF bezieht sich auf eine
Kippschaltung in diesem System, die anzeigt, ob das Instruktionspuffer-
109837/1162 BAD original
system eingeschaltet ist oder nicht. Das Puffersystem kann am einfachsten
durch eine besondere Instruktion ein- und ausgeschaltet werden. Wenn diese Kippschaltung eingeschaltet wird, ist damit sichergestellt,
daß die nachfolgende Instruktionsfolge im internen Speicher gespeichert werden soll. Die Abkürzung CLI gilt für eine Instruktion "Anfang Instruktionen
laden". Wie dargestellt, geht der Ausgang des mit CLIF markierten Symbols auf ein Symbol mit der Bezeichnung "Adressprüfschaltung"
im internen Speicher. Diese Schaltung verwendet die momentan im Instruktionszähler befindliche Instruktionsadresse und vergleicht
sie mit den Adressen, die das System in internen Speicher gespeichert hat und stellt fest, ob diese Instruktion bereits gespeichert ist oder
nicht. Wenn festgestellt wird, daß die Instruktion bereits früher gespeichert war, muß ihre Adresse im internen Speicher rekonstruiert
werden, was durch Kombination des momentanen Inhalts von Instruktionszähler-Ursprungsregister
und der später zu beschreibenden LP-Register geschieht. Wenn andererseits festgestellt wird, daß die Instruktion noch
nicht im internen Speicher gespeichert ist, muß die Adresse im internen
Speicher erzeugt und im Ursprungs- und den LP-Registern aufgezeichnet werden, wie ebenfalls im folgenden genauer beschrieben wird. Die Ausführung
dieser beiden Funktionen ist in Fig. 1 im Block IM dargestellt sowie in der Adress-Erzeugungsschaltung, die darstellungsgemäß von
unten aus dem Symbol mit -der Bezeichnung Adr essprüf schaltung gespeist
wird. Aus der folgenden Beschreibung geht hervor, daß ein großer Teil
10S837/11$2 bad original
der Schaltung, die verschiedene Zähler, Speicherregister usw. umfaßt,
effektiv von beiden "Adress-Funktionseinheiten" benutzt wird. Die Darstellung
in der allgemein üblichen Art zeigt, daß die Adressen von oben in den internen Speicher kommen und die Daten von unten hereinkommen
und auch wieder unten aus dem internen Speicher entnommen werden. Wie bereits gesagt, verläuft der Datenfluß vom internen Speicher zum
Instruktionsregister, wenn eine gewünschte Instruktion darin gespeichert ist und umgekehrt vom Instruktions register zum internen Speicher, wenn
festgestellt wird, daß eine gegebene Instruktion ein Teil einer zu speichernden Schleife ist, die momentan noch nicht im internen Speicher
steht, obwohl dieser noch ungenutzte Kapazität frei hat. *
Das erfindungsgemäße System gestattet die Speicherung mehrerer Programmschleifen im internen Speicher durch eine Vielzahl von "Ursprungs-Registern" und eine gleiche Zahl von. Schleifenzählern LP. Jedes Ursprungsregister und der zugehörige LP-Zähler schreiben einen Teil
des Hauptspeichers vor, der einen Teil oder die gesamte Programm schleife enthalten kann, die zusammengenommen klein genug iet, um
im internen Speicher Platz zu finden.
Wenn eine CLI-Instruktion erkannt wird, wird die erste Schleife in
einem Abschnitt des internen Speichers, beginnend mit der internen
Speicheradresse 0, gespeichert. Die Adresse der prjtfn Instruktion
1 D 9 8 1 Γ· / 1 1 6 2
BAD
ί:! der Schleife erhält man vom Instruktionszähler, speichert sie im
Ursprungsregister Nr, 1 und der LP-Zähler Nr, 1 wird weitergeschaltet.
Da jede Instruktion im internen Speicher gespeichert wird, wird der Instruktionszähler bei der ersten Ausführung der Schleife
auf die Reihenfolge überprüft. Die aufsteigende Nummernfolge wird unterbrochen, wenn die Schleife geschlossen" ist und dieser Punkt abgefühlt
wird. Die Folge wird nicht unterbrochen, wenn die übertragene Instruktion bereits im internen Speicher steht. Wenn die Folge unterbrochen
wird und die Instruktionen nicht im internen Speicher stehen, heißt das, daß das Programm zu einer anderen Schleife verzweigt hat.
Die Startinstruktion der neuen Schleife wird dann in das Ursprungsregister Nr. 2 gesetzt und die Schleife wie oben beschrieben, in den danebenliegenden
Abschnitt des internen Speichers gespeichert. Dieses Ver-
daß fahren läuft weiter, bis soviele Schleifen gespeichert sind,Ya.lle Ursprungs
register und LP-Zähler auslaufen oder die Kapazität des internen Speichers ausgeschöpft ist.
Das Arbeitsprinzip des Systemes ist genauer in Verbindung mit Fig. 2
beschrieben. Es wird angenommen, daß zu dem Zeitpunkt, an welchem
der Instruktions zähler weite rge schaltet oder sein Inhalt durch eine neue
Adresse ersetzt wird, ein Impuls zur Verfügung steht, der den Operations-Code des Instruktions register s abfragt, um festzustellen, ob es sich
.im eine CLI-Instruktion handelt oder nicht. Wenn eine CLI-Instruktion
10983^/1182 bad original
- 11 -
vorliegt, laufen die im Symbol 28 aufgezeichneten Vorgänge ab. Der
Zähler K hält mit dem Ursprungsregister und dadurch mit der gegenwärtig benutzten Schleife Schritt. Der Zähler LM enthält die laufende
Gesamtzahl der LP-Zähler. Der Zähler J wird zur Folgeprüfung benutzt.
Die CLI-Kippschaltung wird durch die CLI-Instruktion eingeschaltet
und kann natürlich durch jedes gewünschte Mittel wie eine andere Instruktion, einen Wechsel der Betriebsart der Maschine, den
ersten Start der Maschine, wieder ausgeschaltet werden.
Nach diesen einleitenden Arbeitsgängen läuft eine Folge schaltung an,
die alle in Fig. 2 dargestellten Arbeitsgänge der Reihe nach durchgeht. Zuerst wird gefragt:"Befindet sich die Instruktion im internen
Speicher (Symbol 30)?"
Die Funktionen des Symbols 30 werden natürlich im folgenden noch genauer
erklärt. Grundsätzlich wird der interne Speicher jedoch nach der vorgeschriebenen Instruktionsadresse wie folgt abgesucht. Die
Adresse der gewünschten Instruktion wird mit dem momenartnen Inhalt
des Ursprungsregisters verglichen. Wenn der Inhalt eines Ursprungsregisters kleiner als die gewünschte Adresse ist, wird die
Differenz rrdt dem Inhalt des entsprechenden LP-Zählers verglichen.
Stellt sich ^"bei heraus, daß die Differenz nicht größer ist als der
Wert eines 1 V -Zählers, befindet sich die angefragte Instruktion im
1 h b ü ώ ' ■ ! * * BAD ORIGINAL
entsprechenden Teil des internen Speichers. Die genaue Lage dieser
Instruktion innerhalb des internen Speichers wird durch den Ursprung des Abschnitts gegeben, der die Instruktion zuzüglich der genannten
Differenz enthält. In dem vorliegenden Ausführungsbeispiel ist die Speicherkapazität für drei Programmabschnitte an einem Beispiel
gezeigt.
Wie aus Fig. 2 zu sehen ist, lautet die Antwort auf die in obigem
Beispiel gestellte Frage "nein" und als nächstes wird eine Instruktion aus dem Hauptspeicher geholt. (Symbol 32) Gleichzeitig wird die Adressfolge
geprüft (Symbol 34). Der Inhalt des Zählers J ist gleich dem des
nicht
InstruktionsZählers und daher geschieht nichts; d.h. die Folge wird unterbrochen.
Nachdem die Instruktion geholt worden ist, wird die CLI-Kippschaltung geprüft (Symbol 36), In diesem Fall sei sie eingeschaltet
und der ZählerK wird geprüft, um festzustellen, ob alle Ursprungsregister
und die zugehörigen LP-Zähler benutzt worden sind oder nicht (Symbol 38), In unserem Beispiel eAält der Zähler K eine Eins, so daß
die Folge als nächstes prüft, ob noch Platz im internen Speicher ist (Symbol 40). In diesem Fall wird noch Platz vorgefunden, so daß die
Instruktion im internen Speicher gespeichert wird (Symbol 42). Nachdem die Instruktion gespeichert ist, werden der LP-Zähler 1, der Zähler
J und der Zähler LM parallel zueinander weitergeschaltet, was durch die Kästen 44 und 46 angezeigt ist. Jetzt muß wieder eine Folge -
109837/1162 8^ original
1 57A595
prüfung durchgeführt werden, da im Falle einer Unterbrechung der Folge der Zähler K weitergeschaltet worden wäre (Symbol 34). Wenn
eine Unterbrechung der Reihenfolge auftritt, heißt dag, daß eine neue Programmfolge gespeichert werden soll und daher die erste Instruktion
dieser Schleife auf das entsprechende Ursprungsregister und den Zähler J gegeben werden muß. Wenn Schritt 46 erforderlich ist, wird angenommen,
daß er ausgeführt wird, bevor der Zähler J im Schritt 42 weiter geschaltet wird. Nötigenfalls kann die Weiterschaltung des Zählers J
verzögert werden, bis Schritt 46 ausgeführt ist. Aus Fig. 2 ist zu ersehen, daß die Maschine weiterläuft (Symbol 48), nachdem die Instruktion
aus dem Hauptspeicher geholt worden ist (Symbol 32), Dieser Schritt kann jedoch nötigenfalls verzögert werden, . damit die eben beschriebenen
Vorgänge ablaufen können. Auf diese Weise wird die erste Instruktion der ersten Schleife sowohl ausgeführt als auch im internen
Speicher gespeichert.
Während aufeinanderfolgende Instruktionen der ersten Schleife gelesen
werden, werden sie auf Symbol 30 in Fig. 2 und über Symbol 50 geleitet und im internen Speicher gespeichert. Wenn das Programm zurückverzweigt
und die Schleife schließt, gibt Symbol 30 ein Ausgangssignal an Symbol 52 und die Instruktion wird vom internen Speicher
geholt.
109837/1162 %d original
Das Arbeitsprinzip des Systems ist im einzelnen aus den Fig. 3a bis
3g und Fig. 4 zu ersehen. Die einzelnen Schritte der Folge sind der Reihe nach numeriert.
Die Folge ist in Fig. 4 durch eine Reihe von monostabilen Kippschaltungen
dargestellt. So kann z.B. die Kippschaltung 1 eingeschaltet werden durch einen Impuls^entweder auf der Leitung 54 oder auf der Leitung
56. Während der eingeschalteten Zeitspanne ist die Leitung CLl leitend. Wenn die Kippschaltung 1 abgeschaltet wird, gibt sie einen
kurzen Impuls auf die Leitung 80, der zum Einschalten der Kippschaltung 2 benutzt wird usw.
Bevor die genaue Beschreibung des Arbeitsprinzips des Systems mit Bezug auf die Schaltbilder in den Fig. 3a bis 3g fortgesetzt wird, sind
einige allgemeine Bemerkungen über die Funktionen der verschiedenen Abschnitte am Platze. In Fig. 3a ist das Instruktionsregister zusammen
mit der CLI-Kippschaltung zu sehen. Die Einstellung dieser Kippschaltung
löst eigentlich den Betrieb des übrigen Systems, wie oben gesagt und im folgenden beschrieben, aus. In Fig. 3b ist der interne
Speicher mit dem zugehörigen Adressregister und dem Datenregister zur Lieferung der Adressen bzw. Daten dargestellt. Oben in Fig. 3b
erscheint der Zähler LM, der, wie aus dem folgenden zu sehen, die eigentlichen Adressen im internen Speicher erzeugt, unter denen die
109837/1182
1 57Α595
Instruktionen gespeichert werden. Der Zähler J sowie der Instruktions zähler
und der Zähler L sind in Fig. 3c dargestellt. Der Zähler J wird^susammen mit dem Inhalt des Instruktions zähl "er s für die Bestimmung
benutzt, ob die folgenden Instruktionen ein Teil der laufenden Programmschleife sind oder eine neue Schleife darstellen. Der
Zähler L untersucht zusammen mit dem Zähler K aufeinanderfolgende Teile des internen Speichers, um festzustellen, ob die angefrage Instruktion
darin gespeichert ist. Der Zähler K, die LP-Zähler und die
Ursprungsregister sind in Fig. 3d dargestellt. Der Zähler K steuert
den Anfang von aufeinanderfolgenden Schleifenbereichen im in ternen Speicher und das entsprechende Ursprungsregister und der zugehörige
LP-Zähler werden unter Steuerung des Zählers K für gegebene Speicher
operationen gewählt. Die Ursprungsregister speichern die tatsächliche Instruktionsadresse vom Instruktions zähler und ermöglichen den
nachfolgenden Zugriff desselben und der zugehörigen LP-Zähler und halten im wesentlichen Schritt mit der Anzahl der in der Schleife gespeicherten
Instruktionen. Die in der Fig. 3f gezeigte Rechenschaltung
übernimmt im wesentlichen die Funktion des Vergleichens der verschiedenen Inhalte der LP-Zähler, der Ursprungsregister und der Instruktions zähler,
um festzustellen, ob eine gegebene Instruktion innerhalb eines bestimmten Abschnittes im internen Speicher liegt. Die Rechenschaltung
der Fig. 3g erzeugt die richtige Adresse im internen Speicher und gibt diese auf das Speicheradressregister, wenn festgestellt ist, daß eine
109837/1162 BAD 0RIGINAJ
gegebene angefragte Instruktion, deren Adresse auf den Instruktions zähler
gegeben wurde, tatsächlich in dem genannten internen Speicher gespeichert ist. Daraus ist natürlich zu ersehen, daß die jeweils im
Instruktionszähler gespeicherte Adresse aller Wahrscheinlichkeit nach keine Beziehung zur Adresse im internen Speicher hat, wo die Instruktion
gespeichert ist. Somit muß die Adresse im internen Speicher aus dem Inhalt des LP-Zählers rekonstruiert werden, wie im folgenden
genauer erklärt.
Wie aus Fig. 3 zu ersehen, kann das Instruktions register IR entweder
vom Hauptspeicher oder vom internen Speicher geladen werdm . Der Inhalt des Operations-Codeteiles des Instruktionsregisters wird auf
den Decoder 82 gegeben, der im Falle einer CLI-Instruktion ein Ausgangssignal
auf der Leitung 84 erzeugt, andernfalls auf der Leitung 86.
Ein von der Leitung 88 auf die Schaltung 90 gegebener Impuls prüft
die Leitungen 84 und 86. Ist die Leitung 84 stromführend, erscheiit
ein Impuls auf der Leitung 92, der über die Leitung 84 die CLI-Kipp-
schaltung einschaltet. Eine auf den Leitungen 96 und 98 bestehende
Verzweigungsschaltung schaltet den Zähler LM auf Null zurück. Die
Leitung 96 geht weiter auf Leitung 100 (Fig. 3), über die der Inhalt
des Instruktions zähler s auf das Ursprungsregister 1 und den Zähler
BAD
OFUGlNAL
109837/1162
J geleitet wird. Über die Leitung 96 werden weiterhin LPl, LP2,
LP3 Ursprung 2 und Ursprung 3 gelöscht. Der Zähler K wird auf
Eins zurückgestellt. Alle diese Funktionen sind im Symbol 28 in Fig. 2 dargestellt, Die Leitung 96 speist auch die Verzögerungseinheit
102 in Fig. 3, deren Ausgangs signal auf der Leitung 56 erscheint, die in Fig. 4 weitergeführt ist, und die mono stabile Kippschaltung
1 des Taktgebers einschaltet. Ist statt Leitung 84 die Leitung 86 stromführend, gibt die Schaltung 90 ein Ausgangs signal auf
Leitung 58, die ebenfalls in Fig. 4 weitergeführt ist und die monostabile
Kippschaltung 6 einschaltet.
Wenn angenommen wird, daß die erste CLI-Instruktion gerade angetroffen
wurde, laufen die folgenden Vorgänge ab. Die in Fig. 4 dargestellte monostabile Kippschaltung 1 gibt ein Ausgangs signal auf der
Leitung CLl ab, das auf die Schaltung 104 oben in Fig. 3 gegeben wird, um den Inhalt des Zählers K auf Zähler L zu übertragen. Der
Zähler K zählt bis vier und auch weitere Schaltimpulse können ihn nicht weite rs ehalten. Der Inhalt des Zählers K wird folgendermaßen
auf Zähler L übertragen: eine Vier im Zähler K wird auf den Zähler L als Drei gegeben, eine Drei im Zähler K gelangt als Drei auf den
Zähler L, eine Zwei im Zahler K als Zwei auf Zähler L und eine Eins in Zähler K als Eins im Zähler L. In lern beschriebenen Beispiel
zähJi Zahler K bis Einy und Zähler L bis Eius. Der in Fig.
10 9 8 3 7/1162 ' '*
3AD ORIGINAL
3 dargestellte Decoder 106 gibt ein Ausgangs signal auf Leitung 108,
die in Fig. 3 die Leitungen 110 und 112 speist. Die Leitung 110
verbindet LPl mit dem Decoder 114, der ein Aus gangs signal auf die Leitung 116 gibt, welche über die Oder-Schaltung 118 auf die
Leitung 112 und über diese zur Schaltung 10 läuft.
Wenn die monostabile Kippschaltung 1 zurückschaltet, schaltet sie
die monostabile Kippschaltung 2 in Fig. 4 ein und die Leitung CL2 wird leitend. Diese Leitung läuft unten zur Fig. 3, wo sie zur Schaltung
10 führt. Die Leitung 76 wird leitend und schaltet die monostabile Kippschaltung 14 ein. Der CL14-ImpuJ.s schaltet den Zähler
zurück, der in diesem Fall von Eins auf Null schaltet. Wenn die monostabile Kippschaltung 14 zurückschaltet, schaltet sie die monestabile
Kippschaltung 15 ein und der CL15-Impuls prüft die Schaltung
Die Leitung 72 wird leitend und schaltet die monostabilen Kippschaltungen 7 und 16 ein. CL7 holt jede Instruktion vom Hauptspeicher.
CL16 prüft die Schaltung 20. In diesem Fall hat die Schaltung 20 kein Ausgangssignal, da der Inhalt des Instruktionszählers gleich
dem des Zahlers J ist. Wenn CL7 auf 0 geht, wird die Instruktion ausgeführt und die monostabile Kippschaltung 8 eingeschaltet. Der
CL-8-Impuls prüft die Schaltung 20 und da die CLI-Kippschaltung
eingeschaltet ist, erscheint ein Aus gangs signal auf der Leitung 64, das die monostabile Kippschaltung 9 einschaltet. Der CL-^-Impuls
109837/1162 ßAD
prüft die Schaltung 16 und Leitung 66 hat ein Aus gangs signal, weil
der Zähler K nicht auf Vier steht. Die monostabile Kippschaltung 10 wird eingeschaltet und der CLIO-Impuls prüft die Schaltung 18 und
Leitung 62 wird leitend, weil kein Platz mehr im internen Speicher ist. Die Leitung 6Z schaltet die monostabilen Kippschaltungen 11 und
18 ein. Der CL18-Impuls prüft die Schaltung 24, ist jedoch zu diesem Zeitpunkt unwirksam, weil der Inhalt des Instruktionszählers gleich dem
des Zählers J ist. Der CLlI- Impuls leitet den Inhalt des Instruktionszählers
auf das Datenregister im internen Speicher und den Inhalt des Zählers LM ( der zu diesem Zeitpuntk auf Null steht) auf das Adressenregister
im internen Speicher. Wenn die monostabile Kippschaltung 11 zurückschaltet, schaltet sie die mono stabile Kippschaltung 12 ein und
der CL12 Impuls in Fig. 3 verursacht einen "Schreib-Zugriff" in den
internen Speicher. Die monostabile Kippschaltung 13 wird eingeschaltet,
wenn die monostabile Kippschaltung 12 ausgeschaltet wird. Der Impuls CL13 schaltet Über die Leitung 122 die Zähler LM, LPl und J weiter.
Es ist zu beachten, daß der Weiters chaltimpuls für LPl über die Schaltung
124 läuft, die jetzt eingeschaltet ist, weil der Zähler K auf Eins steht. Auf diese Weise wird die erste Instruktion der ersten Schleife
im internen Speicher gespeichert.
Als nächstes folgt keine CLI-Instruktion, so daß das Ausgangs signal der
Schaltung 90 auf der Leitung 58 die monostabile Kippschaltung 6 in Fig.
109837/1182
4 einschaltet. Der CL.6-Im.puls fragt die Schaltung 12 ab und die
Leitung 54 wird leitend und schaltet die monostabile Kippschaltung 1 ein. Von diesem Moment ab sind die Vorgänge zur Speicherung
der zweiten Instruktion der Schleife dieselben wie. sie für die erste Instruktion beschrieben wurden. Alle nachfolgenden Instruktionen der
ersten Schleife wreden dann genauso behandelt.
Wenn die Adresse im Ins tr uktions zähler auf die Adresse der ersten Instruktion
der ersten Schleife wechselt (die erste Schleife kehrt zu sich selbst zurück) führt Symbol 30 in Fig. 2 ein Ausgangs signal auf der
"Ja"-Leitung. Dieses Ausgangssignal erhält man, wenn die folgenden
drei Bedingungen für das Vorhandensein einer Instruktion im internen Speicher erfüllt sind.
1. Wenn die Instruktion im internen Speicher steht, muß LP größer als Null sein,
2. wenn die Instruktion im internen Speicher steht, muß die Instruktionsadresse
gleich oder größer als der Urpsrungsregisterinhalt sein,
3. Wenn die Instruktion im internen Speicher steht, muß die Instruktionsadresse
gleich oder kleiner als der Inhalt vom Ursprungsregister +LP - 1 sein. _._ '
109837/1162 »»origin«.
Die Schaltung für diese Prüfungen ist in Fig. 3 dargestellt. Der Decoder
114 führt die erste Prüfung durch, und wenn LP Null ist, brauchen die nächsten beiden Prüfungen nicht durchgeführt zu werden. Wenn
LP nicht Null ist, wird Leitung 126 leitend und die beiden nächsten Bedingungen werden geprüft. Wenn eines dieser beiden Prüfergebnisse
negativ ist, befindet sich die Instruktion nicht im internen Speicher. Wenn beide Prüfergebnisse positiv sind, befindet sich die Instruktion
im internen Speicher. Die Subtraktions schaltung 128 erzeugt die Differenz LP - 1. Die Additionsschaltung 130 addiert die Differenz zum Inhalt
des Ursprungsregisters. Die Vergleichereinheiten 132 und 134 führen die für die zweite und dritte Bedingung notwendigen Vergleiche durch.
Wenn z. B. die erste Bedingung erfüllt ist und die zweite nicht, spricht
die Und-Schaltung 136 an und gibt ein Ausgangs signal an die Oder-Schaltung
118, welches anzeigt, daß die Instruktion nicht im Abschnitt des internen Speichers steht. Wenn die erste Bedingung erfüllt ist und die
dritte nicht, gibt die Und-Schaltung 138 ein Ausgangs signal an die Oder-Schaltung
118. Wenn die erste und die zweite Bedingung erfüllt sind, gibt die Und-Schaltung 140 ein Ausgangssignal an die Und-Schaltung 142.
Wenn alle drei Bedingungen erfüllt sind, zeigt das Ausgangs signal der Und-Schaltung 142 an, daß sich die Instruktion im internen Speicher
befindet. Es ist zu beachten, daß der Inhalt vom Ursprungsregister 1 und von LPl über die Leitung 108 und die Schaltungen 14 und 146 auf
die Prüfkreise gegeben werden, wenn der Zähler 11 auf Eins steht. Ursprung
2 und LP2 werden über Leitung 148 und die Schaltungen 15.
109837/1162
152 auf die Prüfkreise gegeben, wenn der Zähler L auf Zwei steht. Ursprung 3 und LP3 werden über die Leitung 154 und die Schaltungen
156 und 158 auf die Prüfkreise gegeben, wenn der Zähler L auf 3 steht. Zuerst wird der Stand des Zählers L geprüft, wenn er vom
Zähler K geladen wird und wenn sich die Instruktion nicht in diesem Abschnitt des internen Speichers befindet, wird der Zähler L zurückgeschaltet
und der nächstniedere Abschnitt des internen Speichers geprüft. Das läuft weiter, bis der Zähler L den Stand Null erreicht, und
dadurch anzeigt, daß sich die Instruktion nicht im internen Speicher befindet. Das geschieht auf folgende Weise:
Angenommen, Zähler L steht auf Drei, dann prüft der Taktimpuls CL2
zuerst den Abschnitt 3 des internen Speichers. Befindet sich die Instruktion dort nicht, wird durch das Ausgangs signal auf Leitung 76 die monostabile
Kippschaltung 14 eingeschaltet. Der Taktimpuls CL14 schaltet
den Zähler L zurück und die monostabile Kippschaltung 15 ein. Der Impuls
CL15 prüft den Zähler L auf Null. Der Zähler L steht jedoch auf
Zwei, so daß der Taktimpuls nach CL2 verzweigt, wodurch der zweite Abschnitt des internen Speichers auf die Instruktion hin geprüft wird.
Wenn die Instruktion auch dort nicht steht, wird die Taktschleife wiederholt. Zähler L wird auf Eins heruntergeschaltet und Abschnitt 1 des
Speichers geprüft. Wenn die Instruktion auch nicht in diesem Abschnitt steht, wird der Zähler L diesesmal auf Null zurückgeschaltet und wenn
er jetzt durch den Impuls CLl5 abgefragt wird, verzweigt der Taktim-
109837/1182 BADORiG.'NAL
'574595
puls nach CL7 und CL16. Diese Verzweigung entspricht dem "Nein"-Ausgangssignal
des Symbols 30 in Fig. 2.
Bevor eine Instruktion vom internen Speicher geholt werden kann, muß
die Instruktionsadresse im internen Speicher festgelegt werden. Dafür
gelten folgende Regeln:
Wenn Zähler 1 = "1", Adresse in IM = (IC minus Ursprungsregister 1)
Wenn Zähler 1 = "2", Adresse in IM = (IC minus Ursprung-u-egisiei· 2 +
Wenn Zähle- 1 = :!3", Adresse in IM = (IC minus Ursprungsregis-jir 3) +
(LPl + LP2)
Die Schaltung zur Ausführung obiger Funktionen ist in Fig. 3 wiedergegeben
und bedarf kaum einer weiteren Erklärung. Wenn Zähler L auf Eins steht, werden Nullen zur Differenz des Instruktions zähle rs und des
Ursprunges 1 addiert. Wenn eine Instruktion im internen Speicher gefunden wird, verzweigt der Takt nach CL3 und dieser Impuls lädt das
Speicheradressregister des internen Speichers.
Die folgende Liste der Taktfolgen schreibt die einzelnen Operationen vor,
die durch und während jeder Taktperiode ausgeführt werden. Die Verzwei gungspunkte des Systems sind ebenfalls klar gekennzeichnet.
10 9 8 3 7/1162 bad original
*c~4595
CL-I Zähler K nach Zähler
-=* CL-2
CL-2 Schaltung 10 prüfen ob Adresse im von Zähler 1 angegebenen IM-Ab schnitt steht *$■ CL-3 wenn Adresse dort nicht
steht
-> CL-14
CL-3 Adresse auf MAR des IM geben ^ CL-4
CL-4 Lese-Zugriff IM ~5>
- CL -5
CL-5 MDR des IM auf Instruktionsregister geben
Instruktion ausführen CL-6 Schaltung 12 prüfen
Wenn CLI auf "1" =^ CL-I
Wenn CLI auf "0" ^- CL -7 CL-7 Instruktion vom Hauptspeicher holen
^- Instruktion ausführen (nach Verzögerung)
CL-8 Schaltung 14 prüfen
Wenn CLI Schaltung auf "1" -* CL-9
CL-9 Schaltung 16 prüfen
wenn "LStitex k nicht auf "4" 5>
CL-IO CL-IO Schaltung 18 prüfen
Wenn Platz ist im IM ■=» CL-Il
- CL-18
BAD ORJGiNA.'. 109837/1
CL-Il Instruktionsregister in MDR von IM
Zähler Im nach MAR von IM leiten ... CL-
CL-12 Schreib-Zugriff in IM ~i> CL-13
CL-13 Erhöhe LP
Erhöhe Zähler j Erhöhe Zähler Im CL-14 Erniedrige Zähler 1
CL-15 CL-15 Schaltung 22 prüfen
Wenn Zähler 1 nicht auf Null ist -=*» CL-2
Wenn Zähler 1 auf Null ist ^ CL-16
^=* CL-7 CL-16 Schaltung prüfen
Wenn IC ungliech Zähler j —>
CL-17 CL-17 Erhöhe Zähler k
CL-18 Schaltung 24 prüfen
Wenn IC ungleich Zähler j .^ CL-19
CL-19 IC nach Ursprungsregister
IC zu Zähler j
Die obige Beschreibung zeigt klar das Arbeitsprinzip der vorliegenden
Erfindung. In ihrer einfachsten Form kann sie natürlich nur einen Programmabschnitt
speichern. Eine zusätzliche Einrichtung, die in ein der-
109837/1162 bad original
artiges Puffersystem eingebaut werden kann, wäre eine Anzahl von Stellen innerhalb des internen Speichers für andere Systemzwecke,
wobei die Zahl ein Programmparameter ist. So fordert z.B. die Übersetzung
einer Programmsprache in Blockstruktur (wie Algol oder PLI) eine Anzahl von Datenadress-Basisregistern, die gleich der Anzahl der
Programmblocks ist, die statisch die laufende Instruktion einschließen.
Das erweiterte Schema des internen Speichers könnte zu jedem Zeitpunkt genausoviele interne Speicher stellen für die Zwecke eines Systems
geben, wie gefordert werden, wobei alle übrigen Stellen des internen Speichers für die Instruktionspuffer-ung zur Verfügung stehen.
Diese Einrichtung könnte ein zusätzliches Register mit einem Grenzwert
sein, mit welchem KM jedesmal verglichen wird, bevor LP weitergeschaltet wird. Somit begrenzt der momentane Inhalt des Registers den
für die Ins truktionspufferung verfügbaren Raum, im internen Speicher,
so daß der Rest des internen Speichers für andere Zwecke, wie die oben erwähnten, benutzt werden kann. Die Änderung des Inhaltes des
Registers wäre eine administrative Funktion, die im einzelnen durch das System aufgerufen wird, wenn die relative Zuordnung der Speicherbereiche
sich ändert. Wenn z.B. bei der dynamischen Speicherzuordnung jedesmal ein neuer Programmblock eingegeben wird, ist
eine der Aufgaben, die das System automatisch auszuführen hat, des
Abbauen des Inhaltes des Registers um eine Einheit (das Gegenteil bei
109837/1162
157A595
Verlassen eines Blockes), wodurch der verfügbare Pufferraum des internen
Speichers effektiv um ein Wort gekürzt wird. Wenn zu diesem Zeitpunkt der interne Speicher voll wäre, müßte LP ebenfalls gekürzt
werden.
Aus der obigen genauen Beschreibung der Erfindung gehen ihr Arbeitsprinzip
und die Vorteile des Systems bezüglich der Hauptspeicher-Zugriffszeit
klar hervor. Die Vorteile können durch Ideinste Bemühungen seitens des Programmierers wahrgenommen werden» der xez? bes.£rfcen
muß, daß csr Anfang einer Programmschleife, die in dein interne:« Speicher
gespeichert werden soll, gekennzeichnet sein muß. Während es ftir den Programmierer vorteilhaft ist, die Zahl der speicherbaren Programmschleifen,
begrenzt durch die Anzahl von Ursprungsregistern und LP-Registern, zu kennen, braucht er die ganze Zahl der Instruktions-Speicherstellen
im internen Speicher nicht zu kennen. Wie aus obiger Beschreibung zu ersehen, arbeitet das System, selbstständig, und solbäd der interne
Speicher voll ist, werden die Instruktionen aus dem Hauptspeicher geholt,
ohne daß der interne Speicher übers chireben wird, wodurch sein Nutzen insofern erhalten bleibt, als darin gespeicherte Instruktionen
jederzeit auf Programmabfrage hin zugänglich sind. Außerdem können weitere Änderungen vorgenommen werden, ohne daß das Prinzip der Erfindung
verlassen wird.
Z.B. kann die CLIF-Schaltung ganz weggelassen werden, wenn ein Ba-
109 837/1162 - <
BAD ORIGINAL
sis system mit nur einem Ursprung und einem LP benutzt wird. In diesem Fall enthält das interne Register immer den Programmabschnitt,
der in aufsteigender Adress-Reihenfolge der letzten ausgeführten
CLI-Instruktion folgt. Die erste Verzweigungsinstruktion, die nach der genannten CLI-Instruktion ausgeführt wird, begrenzt das
Laden des internen Speichers. Wenn eine andere CLI-Instruktion ausgeführt wird, wird der vorherige Inhalt des internen Speichers durch
den Programmabschnitt überschrieben, der im Hauptspeicher-Adress
abstand der anderen CLI-Instruktion folgt. Dieses Basissystem würde ausreichen, um die innerste Schleife eines Schleifenbündels zu speichern,
die natürlich der am häufigsten ausgeführte Programmabschnitt ist.
ORIGINAL 109837/1 162
Claims (5)
1. Schaltungsanordnung zur Steuerung des Befehlsflusses in Datenverarbeitungsanlagen,
die einen Hauptspeicher, ein Rechenwerk und ein Steuerwerk umfassen, das Instruktionsregister-Zähler, -Schnellspeicher
sowie Adresszugriff sregister zum Hauptspeicher und Register zurrt Zwischenspeichern und Laden von Instruktionen enthält,
dadurch gekennzeichnet, daß mindestens ein Teil der Instruktionen jeder Programmschleife im Instruktions Schnellspeicher (IM) steht
und der Rest im Hauptspeicher (MM), daß jeder Programmschleife
Ursprungs
ein register (OR) und ein Programmschleifenzähler (LP) zugeordnet sind, die zusammen mit einem Zähler (K), der über einen Decoder (Dec) mit dem Programmschleifenzähler in Steuer verbindung steht und einem logischen Netzwerk (J, K, L, LM, CLI) die Anzeige einer gespeicherten Instruktion, den Zugriff zu einer gespeicherten Instruktion oder die Bestimmung des jeweiligen Speicherplatzes in dem Befehls Schnellspeicher steuert.
ein register (OR) und ein Programmschleifenzähler (LP) zugeordnet sind, die zusammen mit einem Zähler (K), der über einen Decoder (Dec) mit dem Programmschleifenzähler in Steuer verbindung steht und einem logischen Netzwerk (J, K, L, LM, CLI) die Anzeige einer gespeicherten Instruktion, den Zugriff zu einer gespeicherten Instruktion oder die Bestimmung des jeweiligen Speicherplatzes in dem Befehls Schnellspeicher steuert.
2. Schaltungsanordnung nach Anspruch 1, dadurch gekennzeichnet, daß
die Ursprungsregister (OR) und die Programmschleifenzähler (LP) in Verbindung mit dem bekannten Instruktions zähler (CTR) und den
Instruktionsregistern (IR) einer bekannten Datenverarbeitungsanlage
109837/1162 ~ *
1 57A595
stehen und daß der Inhalt des Instruktions zähle rs zu Beginn einer
jeden Programmschleife in die Ur Sprungs register (OR) in aufsteigender
Folge übertragen werden.
3. Schaltungsanordnung nach den Ansprüchen 1 und 2, dadurch gekennzeichnet,
daß der Zähler (K) den Anfang von aufeinanderfolgenden Programmschleifenbereichen im Befehls Schnellspeicher (IM) steuert
und daß das entsprechende Ursprungsregister (OR) und der zugehörige Programmschleifenzähler (LP) unter Steuerung des Zählers
(K) für eine erforderliche Speicheroperation ausgewählt werden.
4. Schaltungsanordnung nach Anspruch 3, dadurch gekennzeichnet, daß
die Ursprungsregister (OR) die tatsächliche Instruktionsadresse vom
Instruktions zähler (CTR) speichern und den Zugriff zu dem Befehls Schnellspeicher
(IM) steuern.
5. Schaltungsanordnung nach den Ansprüchen 1 bis 4, dadurch gekennzeichnet,
daß dem Instruktionsregister (IR), das entweder vom Hauptspeicher (MM) oder vom Befehls Schnellspeicher (IM) geladen wird,
ein Decoder (82) nachgeschaltet ist, der im Falle einer CLI-Instruktion
ein Ausgangs signal auf einer Leitung (84) erzeugt, das auf eine nachgeschaltete Kippschaltung (CLI) gegeben wird, wodurch der Betrieb
der gesamten Schaltungsanordnung gesteuert wird.
109837/1162 BAD
Cj
Le e rs e i te
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US60916067A | 1967-01-13 | 1967-01-13 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE1574595A1 true DE1574595A1 (de) | 1971-09-09 |
Family
ID=24439591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19681574595 Pending DE1574595A1 (de) | 1967-01-13 | 1968-01-12 | Schaltungsanordnung zur Steuerung des Befehlsflusses in Datenverarbeitungssystemen |
Country Status (4)
Country | Link |
---|---|
US (1) | US3466613A (de) |
DE (1) | DE1574595A1 (de) |
FR (1) | FR1572992A (de) |
GB (1) | GB1158533A (de) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3593306A (en) * | 1969-07-25 | 1971-07-13 | Bell Telephone Labor Inc | Apparatus for reducing memory fetches in program loops |
US3868644A (en) * | 1973-06-26 | 1975-02-25 | Ibm | Stack mechanism for a data processor |
US4008460A (en) * | 1975-12-24 | 1977-02-15 | International Business Machines Corporation | Circuit for implementing a modified LRU replacement algorithm for a cache |
US4691277A (en) * | 1984-10-24 | 1987-09-01 | International Business Machines Corp. | Small instruction cache using branch target table to effect instruction prefetch |
JP2675779B2 (ja) * | 1987-01-12 | 1997-11-12 | 沖電気工業株式会社 | 命令解読装置 |
EP0449369B1 (de) * | 1990-03-27 | 1998-07-29 | Koninklijke Philips Electronics N.V. | Datenverarbeitungssystem mit einem leistungsverbessernden Befehlscachespeicher |
JPH04293124A (ja) * | 1991-03-20 | 1992-10-16 | Hitachi Ltd | データ処理プロセッサ |
US6898693B1 (en) * | 2000-11-02 | 2005-05-24 | Intel Corporation | Hardware loops |
US10223118B2 (en) * | 2016-03-24 | 2019-03-05 | Qualcomm Incorporated | Providing references to previously decoded instructions of recently-provided instructions to be executed by a processor |
CN116074406B (zh) * | 2022-11-29 | 2024-07-19 | 北京华峰装备技术有限公司 | 指令发送方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3251041A (en) * | 1962-04-17 | 1966-05-10 | Melpar Inc | Computer memory system |
US3275991A (en) * | 1962-12-03 | 1966-09-27 | Bunker Ramo | Memory system |
US3290656A (en) * | 1963-06-28 | 1966-12-06 | Ibm | Associative memory for subroutines |
US3337851A (en) * | 1963-12-09 | 1967-08-22 | Burroughs Corp | Memory organization for reducing access time of program repetitions |
-
1967
- 1967-01-13 US US609160A patent/US3466613A/en not_active Expired - Lifetime
- 1967-12-07 FR FR1572992D patent/FR1572992A/fr not_active Expired
-
1968
- 1968-01-04 GB GB625/68A patent/GB1158533A/en not_active Expired
- 1968-01-12 DE DE19681574595 patent/DE1574595A1/de active Pending
Also Published As
Publication number | Publication date |
---|---|
FR1572992A (de) | 1969-07-04 |
US3466613A (en) | 1969-09-09 |
GB1158533A (en) | 1969-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0010198B1 (de) | Vorrichtung zur Steuerung des Seitenaustausches in einem Datenverarbeitungssystem mit virtuellem Speicher | |
DE3151745C2 (de) | ||
DE2716369C2 (de) | ||
DE3751164T2 (de) | Datenprozessor mit verschiedenen Unterbrechungsverarbeitungsarten. | |
DE2847960C2 (de) | Speichersteuereinrichtung | |
DE1449765C3 (de) | Einrichtung zur Abfrage eines assoziativen Speichers | |
DE69131472T2 (de) | Verfahren zum Vorsehen eines synchronisierten Datencachespeicherbetriebs für Prozessoren in einer parallelen Verarbeitungsanordnung und parallele Verarbeitungsanordnung zur Durchführung des Verfahrens | |
DE2547488C2 (de) | Mikroprogrammierte Datenverarbeitungsanlage | |
DE1803767A1 (de) | Elektronisches Datenverarbeitungssystem | |
DE2523414A1 (de) | Hierarchische speicheranordnung | |
DE2855673C2 (de) | ||
DE3113195A1 (de) | "speicheradressiervorrichtung" | |
EP0013737A1 (de) | Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem | |
DE2160528C3 (de) | Digitaler Differential-integrator | |
DE2165765C3 (de) | Informationsspeicher mit Schieberegistern | |
DE1574595A1 (de) | Schaltungsanordnung zur Steuerung des Befehlsflusses in Datenverarbeitungssystemen | |
DE1949916B2 (de) | Verfahren zum betrieb einer programmgesteuerten datenverarbeitungsanlage und anordnung zur durchfuehrung des verfahrens | |
DE2245284A1 (de) | Datenverarbeitungsanlage | |
DE2311503A1 (de) | Datenverarbeitungsanlage mit mehreren zentraleinheiten | |
DE68928782T2 (de) | Datenverwaltungssystem | |
DE1774211C3 (de) | Datenspeicheranordnung für ein Datenverarbeitungssystem | |
DE2459476C3 (de) | ||
DE1115483B (de) | Vorrichtung zum Abfragen eines Ziffernspeichers | |
DE2459476A1 (de) | Schaltungsanordnung fuer nichtzyklische datenpermutationen | |
DE2610428A1 (de) | Anordnung zur steuerung der zwischenspeicherung von zwischen zwei funktionseinheiten zu uebertragenden daten in einem pufferspeicher |