DE1574595A1 - Schaltungsanordnung zur Steuerung des Befehlsflusses in Datenverarbeitungssystemen - Google Patents

Schaltungsanordnung zur Steuerung des Befehlsflusses in Datenverarbeitungssystemen

Info

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
Application number
DE19681574595
Other languages
English (en)
Inventor
Hans Schlaeppi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE1574595A1 publication Critical patent/DE1574595A1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • G06F9/381Loop 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.
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)

- 29 - Böblingen, 11. 1." 1968 ru-hn PATENTANSPRÜCHE
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.
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
DE19681574595 1967-01-13 1968-01-12 Schaltungsanordnung zur Steuerung des Befehlsflusses in Datenverarbeitungssystemen Pending DE1574595A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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) &#34;speicheradressiervorrichtung&#34;
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