DE1949916C3 - Verfahren zum Betrieb einer programmgesteuerten Datenverarbeitungsanlage und Anordnung zur Durchführung des Verfahrens - Google Patents

Verfahren zum Betrieb einer programmgesteuerten Datenverarbeitungsanlage und Anordnung zur Durchführung des Verfahrens

Info

Publication number
DE1949916C3
DE1949916C3 DE1949916A DE1949916A DE1949916C3 DE 1949916 C3 DE1949916 C3 DE 1949916C3 DE 1949916 A DE1949916 A DE 1949916A DE 1949916 A DE1949916 A DE 1949916A DE 1949916 C3 DE1949916 C3 DE 1949916C3
Authority
DE
Germany
Prior art keywords
command
arrangement
look
instruction
ahead
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
DE1949916A
Other languages
English (en)
Other versions
DE1949916B2 (de
DE1949916A1 (de
Inventor
Thomas Edward Cooper
William Joseph Watson
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
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 Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of DE1949916A1 publication Critical patent/DE1949916A1/de
Publication of DE1949916B2 publication Critical patent/DE1949916B2/de
Application granted granted Critical
Publication of DE1949916C3 publication Critical patent/DE1949916C3/de
Expired 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)
  • Complex Calculations (AREA)

Description

Die Erfindung bezieht sich auf ein Verfahren zum Betrieb einer programmgesteuerten Datenverarbeitungsanlage zur Verwendung in Verbindung mit einer in einem Speicher enthaltenen Befehlsfolge, die wenigstens einen Verzweigungsbefehl, insbesondere einen bedingten Verzweigungsbefehl enthält, sowie auf eine Anordnung zur Durchführung des Verfahrens.
Die in einer Befehlsfolge mit einem Verzweigungsbefehl enthaltenen Befehle werden von einer programmgesteuerten Datenverarbeitungsanlage zunächst nacheinander verarbeitet, bis der Verzweigungsbefehl an der Reihe ist. Nach der Verarbeitung des Verzweigungsbefehls muß abhängig vom Verarbeitungsergebnis entschieden werden, mit welchem Befehl fortgefahren wird. Der nächste zu verarbeitende Befehl wird also erst nach dem Fällen dieser Entscheidung aus dem Speicher geholt und zur Verarbeitung bereitgestellt. Wenn es sich bei dem Verzweigungsbefehl nun um einen bedingten Verzweigungsbefehl handelt, der den oftmaligen Durchlauf einer Programmschleife zur Folge hat, dann entsteht vor jedem neuen Schleifendurchlauf eine Zeitverzögerung dadurch, daß erst die zur Verzweigung führende Entscheidung abgewartet werden muß und daß dann abhängig von der Entscheidung der nächste Befehl aus dem Speicher geholt wird. Diese Zeitverzögerung kann bei oftmaligem Durchlaufen
der Programmschleife beträchtliche Werte annehmen, so daß die Verarbeitungsgeschwindigkeit der Datenverarbeitungsanordnung stark herahgcscf/l wirci.
Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren und eine Anordnung anzugeben, mit deren Hilfe die Vcrarbeitungsgeschwindigkrt einer Dalenverarbeiiungsanordnung erhöht werden kann.
Zur Lösung dieser Aufgabe ist das Verfahren ertindungsgemäß derart ausgestaltet, daß in die Befehlsfolge ein Vorausschaubefehl an einer Stelle eingefügt ist, die in einem festgelegten Abstand von einem dem Verzweigungsbefehl zugeordneten Rückkehrpunkt in der Befehlsfolge liegt, wobei der Vorausschaubefehl eine Codegruppe enthält, welche die Anzahl der Befehle angibt, um welche der Vorausschaubefehl vor dem Verzweigungsbefehl Hegt, daß aus dem Speicher Befehle geholt werden, daß beim Holen des Vorausschaubefehls aus dem Speicher ein Zählerstand eingestellt wird, der die genannte Anzahl darstellt, daß eine zur Verarbeitung durch die Datenverarbeitungsanlage verfügbare Befehlskette im voraus -in einer Speichervorrichtung gebildet wird, daß der Zählerstand für jeden verarbeiteten Befehl verändert wird und daß jedesmal dann, wenn sich der Zählerstand um einen die genannte Anzahl darstellenden Betrag geändert hat, aus dem Speicher wiederum Befehle geholt werden, die den Vorausschaubefehl enthalten.
Bei der Durchführung des erfindungsgemäßen Verfahrens ist in die zu verarbeitende Befehlsfolge ein Vorausschaubefehl eingefügt, der eine Aussage enthält, um wieviele Befehle er vor dem nächsten Verzweigungsbeifehl in der Befehlsfolge liegt. Die Anzahl der dazwischenliegenden Betehle wird in einem Zähler festgehalten, der mit der Verarbeitung jedes einzelnen Befehls um einen Schritt verändert wird. Wenn der Zählerstand dieses Zählers um die Zahl der Befehle zwischen dem Vorausschaubefehl und dem Verzweigungsbefehl verändert worden ist, wird aus dem Speicher automatisch wieder eine Befehlsfolge geholt, die den Vorausschaubefehl enthält. Dieses Holen der Befehlsfolge aus dem Speicher und ihre Bereitstellung in einer Speichervorrichtung erfolgt unabhängig vom Ergebnis der im Anschluß an die Verarbeitung des Verzweigungsbefehls getroffenen Entscheidung.
Die Verarbeitung von Progiammschleifen jnier Anwendung des erfindungsgemäßen Verfahrens kann ohne die zum Holen des nächsten Befehls nach dem Verzweigungsbefehl aus dem Speicher benötigte Wartezeit erfolgen, da die gesamte Befehlsfolge der Programmschleife bereits in einer Speicheranordnung für die Verarbeitung zur Verfugung steht. Die Befehlsschleifen werden sozusagen in einer kontinuierlichen Befehlskette hintereinander angeordnet, so daß die Datenverarbeitungsanlage die Programmschleifen in der gleichen Weise wie kontinuierliche Befehlsfolgen ohne Verzweigungsbefehl verarbeiten kann. Wartezeiten der obenerwähnten Art treten also nicht mehr auf, so daß die Verarbeitungsgeschwindigkeit der Datenverarbeitungsanordnung wesentlich erhöht wird.
Eine Anordnung zur Durchführung des erfindungsgemäßen Verfahrens ist gebildet durch einen Decodicrer, der auf einen in der Befehlsfolge enthaltenen VorausschaubefeW anspricht, um eine Zählanordnung auf einen die genannte Anzahl darstellenden Anfangszuslfinü einzustellen, eine Anordnung, die für jeden vun der Voruusschauanordnung verarbeiteten Befehl den Inhalt der Zählanordnung verändert, die beim Erreichen eines ".orbestimmten Zählerstandes in der Zählanordnung bewirkt, daß aus dem Speicher wiederum Befehle geholt werden, die den Vorausschaubefehl enthalten.
Nachfolgend wird ein Ausführungsbeispiel der Er lindung an Hand der Zeichnung erläutert. Es zeigt
F i g. 1 eine Anordnung von Einheiten und Peripheriegeräten einer Datenverarbeitungsanordnung,
F i g. 2 ein Blockschaltbild zu F i g. 1,
F i g. 3 ein Blockschaltbild zur Darstellung des Befehls- und Datenflusses zu-einem Rechenwerk,
F i g. 4 ein Blockschaltbild der zentralen Datenverarbeitungseinheit von F i g. 2 und
F i g. 5 ein Blockschaltbild einer Ausführungsform der erfindungsgemäßen Vorausschauanordnung.
In der nachfolgenden Beschreibung sines Anwendungsbeispiels der Erfindung wird die Zusammenarbeit einzelner Einheiten innerhalb eines vorzugsweise zur Verarbeitung wissenschaftlicher Daten ausgelegten Rechners genau erläutert.
Zu Fig. 1
Der Rechner enthält eine zentrale Datenverarbeitungseinheit 10 sowie eine periphere Datenverarbeitungseinheit 11. Ein Zentralspeicher besteht aus vier, von Dünnschichtspeichereleoenten gebildeten Speichern 12 bis 15 mit einer Zykluszeit von 160 Nanosekunden bei einer durchschnittlichen Zugriffszeit von 100 Nanosekunden. In den Speichern erfolgt beim Lesen ein Löschvorgang. Der Zentialspeicher ist an die zentrale Datenverarbeitungseinheit 10 und an die periphere Datenverarbeitungseinheit 11 angeschlossen; er kann von konventioneller Bauart sein.
Jeder Speicher 12 bis iS ha. eine Wortkapazität von 16 384 Wörtern. Ein Wort bestellt aus 32 Bits. 256 Bits = 8 · 32 Bits = 8 Wörter heißen »Wortgruppe«, was bedeutet, daß 2048 Wortgruppen zu je 256 Bits in jedem der Speicher 12 bis 15 gespeichert sind. Eine Speichersteuereinheit 18 stellt die Lese-Schreib-Steuerung für ckn Zentralspeicher und damit das im allgemeinen notwendige Zwischenstück zwischen dem Zentralspeicher einerseits und der zentralen Datenverarbeitungseinheit 10 bzw. der peripheren uaienverarbeitungsciinheit 11 andererseits dar. Die Speichersteuereinheit 18 hat eine Pufferwirkung, und sie enthält Vorrichtungen zur Ein- und Ausblendung, Kartierung und zum Schutz der Daten in den Speichern 12 bis 15.
Die zentrale Datenverarbeitungseinheit 10, die periphere Patenverarbeitungseinh;it 11, die Speicihersteuereinheii 18 und die Speicher 10 bis 15 arbeiten synchron miteinander. Ein Taktsignal für die zentrale Daienverarbeitungseinheit erscheint alle 50 Nanc-iekunden, während ein Taktsignal für die periphere Datenverarbeitungseinheit alle 65 Nanosekunden erscheint. Weitere Speichereinheiten werden von Plattenspeichem 16, 17 rr.it einer durchschnittlichen Zugriffszeit von etwa 60 Millisekunden und von Bandspeichern 21 bis 26 gebildet. In den Bandspeichern'21. 22 werden vorzugsweise 1-Zoll-Bänder verwendet, während in den Bandspeichern 23 bis 26 Halbzollbänder verwendet wurden. Alle Bandspeicher können als Arbeitsspeicher und auch zu Ein- und Ausgibezwecken verwendet werden. Ein Kartenleser 19 dient zur Eingabe von auf Lochkar-
ten gespeicherten Daten, und ein Kartenstanzer 20 dient zur Ausgabe von Daten auf gestanzten Lochkarten. Ein Zeilendrucker 27 ist als Ausgabegerät vorgesehen.
Als weiteres Ein- und Ausgabegerät dient eine Bildschirmkonsolc 28. Diese Bildschirmkonsole enthiil! zwei Bedienungspulte, die mit der peripheren Datenvcrarbeitungsciiiheit 11 gekoppelt sind und zwei Bildschirme von Zwcistrahl-Kathodenstrahlröhren enthalten. Die Bedienungspulte bilden nicht nur die Steuereinheit für die Bildschirmkonsolc 28, sondern auch für den Kartenleser 19, den Kartenstanzer 20, den Zeilendrucker 27 und die Bandspeicher 21 bis 26. Über die Bedienungspulte kann eine Bedienungsperson in den Rechner Befehle zum Prüfen der Hardware oder der Software eingeben; ebenso können über die Bedienungspulte Programmunterbrechungen an bestimmten Stellen ausgeführt werden, die es erlauben, den Fortgang einer Operation zu überprüfen und auf Grund der erzielten Fortschritte in ihrem weiteren Ablauf zu beeinflussen. Letzteres kann bedeuten, daß die Operation auf dem eingeschlagenen Weg weitergeführt wird oder das möglicherweise mit anderen Daten auf einem anderen Weg fortgefahren wird.
Wie es bei Rechner allgemein üblich ist, sind in dem in Fig. I dargestellten Rechner mehrere Speicherhierarchien vorgesehen. Beispielsweise gibt es die vier folgenden Hierarchien: a) die zentrale Datenverarbeitungseinheit 10 mit dem schnellsten Speicher, b) die Speicher 12 bis 15 des Zcntralspeichers, die etwas langsamer arbeiten, c) die Plattenspeicher 16, 17, die noch langsamer arbeiten und d) die Bandspeicher 21 bis 26, die im Vergleich zu den zuvor erwähnten Speichern die längste mittlere Zugriffszeit haben, falls von ihnen keine entsprechend vorsortierten Daten abgerufen werden.
Der Rechner von Fig. 1 verfügt über mehrere Untersysteme, die neu sind und eine bemerkenswerte Steigerung der Vcrarbeilungskapazität für die Fälle aufweisen, bei denen eine große Anzahl vorsortierter, in bestimmten Gruppen geordneter Daten zur Verarbeitung anfallen.
Zu Fig. 2
Die Organisation des Rechners von F i g. 1 ist durch eine Erläuterung der im Blockschaltbild von F i g. 2 aufgezeigten Datenkanäle leicht zu umreißen. Ein Kanal 29 verbindet die Speichersteucrcinheit 18 mit einer puffernden Platten- und Trommelsteuereinheit 30, von der ein Kanal zum Plattenspeicher 16 und ein weiterer Kanal zum Plattenspeicher 17 führen. Die Platten- und Trommelsteuereinheit 30 ist ein einfacher, fest verdrahteter Einzweckrechner zur Durchführung des Datentransports zwischen den mit der Speichersteuereinheit 18 verbundenen Zentralspeicher und den Plattenspeichern 16, 17 über den Kanal 29 nach Erhalt eines entsprechenden Befehls.
Die eben erwähnten Kanäle sind bidirektional, wobei in dem zwischen den Plattenspeichern 16 und und der Platten- und Trommelsteuereinheit 30 liegenden Kanal nur jeweils ein Wort pro Taktzeit gefördert wird. Im Kanal 29 werden dagegen gleichzeitig acht Wörter, also eine Wortgruppe, zwischen der Speichersteuereinheit 18 und der Platten- und Trornmelsteuereinheit 30 transportiert.
Der Anschluß eines Trommelspeichers 31 an die Platten- und Trommelsteuereinheit 30 zur Erhöhung der Speicherkapazität mit mittlerer Zugriffszeit könnte über einen weiteren bidirektionalen Kanal erfolgen. Hin weiterer Kanal zur simultanen Übertragung von 256 Bits ist der bidirektionale Knnal 32 zwischen der Speichcrsteucreinheit 18 und der peripheren Datenverarbcitung;seinhcit 11, der je eine Wortgruppc zwischen dem Zcntralspeicher und der peripheren Datenverarbcitungscinheit 11 über die Speichersteucrcinheit 18 transportiert.
ίο Wie oben bereits angedeutet wurde, dient die periphere Datenverarbeitungseinheit 11 als Mehrzweckrechner, dem unter anderem die Steuerung des Datenflusses zu allen Peripheriegeräten, deren Datenkanäle an ihn angeschlossen sind, mit Ausnahme der Plattenspeicher 16 und 17 und des Trommelspeichers 31 obliegt.
Beim nicht zerstörungsfreien Auslesen aus dem Zentralspeicher müssen die ausgelesenen Daten regenerativ wieder eingespeichert werden, während ao nur eines der acht Wörter einer Wortgruppc in der peripheren Datenverarbeitungseinheit 11 verarbeitet wird. Dies erweist sich schon deshalb als notwendig, da von der peripheren Datenverarbeitungseinheit Il infolge der mehr oder weniger langsam arbeitenden Peripheriegeräte nur jeweils ein Wort aus der Achtwortgruppe (maximal) benötigt wird. Eine typische Größe eier Datenübertragungsgeschwindigkeit für die Übertragung von Daten innerhalb der peripheren Datenverarbeitungscinheit 11 für ein Peripheriegerät liegt bei etwa 100 000 Wörtern pro Sekunde.
Die periphere Datenverarbeitungseinheit 11 enthält acht virtuelle Datcnvcrarbeitungscinheiten, vein denen die Mehrzahl so programmiert werden kann, daß jede beliebige virtuelle Datenverarbeitungscinheit mit jedem beliebigen Peripheriegerät gekoppelt wer den kann. Die periphere Datenvcrarbeitungseinlicit 11 arbeitet mit Hilfe der virtuellen Datenvcrarhcitungscinheiten entsprechend dem im Zentralspeicher gespeicherlcn Programm, wobei die virtuellen Dalcnverarbcitiingscinheitcn außerdem das in der zentralen Datenverarbeitungseinheil 10 laufende Programm überwachen.
Ein Kanal 33 verbindet die zentrale Datenverarbeitungseinheit 10 mit der Speichersteuereinheit 18, die ihrerseits über Datenkanälc mit den Speichern 12 bis 15 des Zentralspcichers in Verbindung steht. Im Gegensatz zu den obigen Ausführungen hinsichtlich der peripheren Datenverarbeitungseinheit V. kann die zentrale Datenverarbeitungseinheit 10 alle acht Wörter einer Wortgruppe aus dem Zentralspeicher verwerten, wobei sie überdies die Fähigkeit besitzt, eine beliebige Kombination dieser acht Wörter zu lesen oder zu schreiben. Im Kanal 33 werden vorzugsweise alle 50 Nanosekunden drei Wörter transportiert, wobei zwei Wörter in die zentrale Datenver-.arbeitungseinheit 10 eingegeben werden, während ein Wort zur Speichersteuereinheit 18 gelangt.
Die zentrale Datenverarbeitungseinheit 10 kanr Vektoroperationen direkt und ohne Übersetzung durch einen Compiler ausführen, wodurch lange Befehlsketten vermieden werden, da die zentrale Daten Verarbeitungseinheit 10 solche Operationen auf Grunc eines einzigen Makrobefehls intern ausführt. Die zen trale Datenverarbeitungseinheit 10 hat diese Fähigkei insbesondere deshalb, weil zwischen der Speicher Steuereinheit 18 und dem Rechenwerk innerhalb de zentralen Datenverarbeitungseinheit 10 Puffer vorge sehen sind, die solche zur Bildung der erforderlichei
3901
, ··,■ , „ Miwrnhpfehle enthalten oder Befeh ske.ten hcm.t.gtcn M.krobefe JHc
tu bilden gestatten. Zi is,atzl.«.hent halt ü '-' Datenverarbctungsemhct 10 das ah %enann Schlauchrechner ausgebildete ^dLcn^.rk r
Ein Kanal 34 ^.^^iJ^^ heit 18 ist zur Erweiterungdc Rech j^
gesehen fal s weit.,e zentralDatu ve a ^g einheilen od. dgl. zusätzlich ...!geschlossen wem
müssen. h üb di
Jeder der Kanäle 29 und 32 bis 34hat uo
Spcichcrstcucrcu,-licit ιβ d\r^1 2J 's Zu I-rhö-Speichern bis S des Zen tr al puthe . Zu L hung der Verarheitungsgcschw.nd^ Rechner und insbesondere in Zcnlrd«P™ sJJ vorzugsweise zeitlich überlappende Arbcitszyk cn „ angewendet. In der Spc.chcrsteucrc heit 18 . emc Vorrangstcucrung mit v.^rzugswcisc festen ^uorunu gen vorgesehen, damit Anfragen an den Zentr.mpe eher in einer gewünsch en Hc hcnfol t bean two. r. werden können. So werden Anfragen νun den an du. ao Kanäle 29, 32, 33 und 34 „mn..ttelba ang en/xndc Einheiten vorzugsweise in diese, Re.hcnUjge u vorrangiger behandelt als Anfragen y η ™ J ^. heilen, die nachgeschaut sind, wöbe, c ™'J' . ; besteht, die Prioritätsreihenfolgc bei κ bit an/uanui. . >5
γ u pig T1
Die Verarbcitungsgcschwindigkeit üa zcn r Dateiirerarbeitungscinhc.i 10 des licr '™r*?'
Rechners liegt wesentlich übe, d. 1 >crdriL' * geschwindigkeit, mit der Daten aus einen spei _ ausgelesen und in diesen wieder c'n^sPLlt'lcr!, ■ den können. Damit die ^^^"^''"S'^'". digkeit innerhalb der zentralen Datcnvtrarnc my einheit 10 zur Vcrarheilung groß er rs«, encr Datenblöcke, beispielsweise bei ^VeKtc-iroperaiic -. ausgenutzt werden können wird 7^ 1^ Rechenwerk und dem Speicher ei nc KoPP ""&«'" richtung angebracht, die speziell der F"rtler"n8 "^" höchster Verarbeilungsgcschwimligkcit Kccnnu ^. iragt. Die Kopplungseinrichtung wird im •olfecn"tI als Pufferspeicher 100 bezeichnet, die naen t t■ zwischen die Spcichcrsteunrcinheitie una.u/; * chenwerklOl eingefügi ist. Der 1 i.i.crspeicner «. vird als Teil der zentralen Datenyerarbcitungseini.eit 10 angesehen, und sie ist über den Nana ■» ■ •;er Speicherstcucrcinheit 18 verbunclcn. Auui^raern eren zwei Datenkanäle 100(7 unu ivvn v™ iufferspeicher 100 zum Rechenwerk ιui. aas m. ._ Vektorenrechenwerk bezeichnet werden wπ . Datenkanal 100c führt vom RechenwKi« ζ Pufferspeicher 100. Über die Datenkanaie lw«_ ·■ • OOfc werden Operanden zum R<*ne"wei.K , Mert, während der Datenkanal 100 c das imiw werk erzeugte Resultat zum Pufferspcicne iw uu. trägt, von wo es über die Speichersteuereinneii den Speichern 12 bis 15 gelangen kann. z Fie 4
, ■ einzelne
Unter Bezugnahme auf die menr ins '
gehende Darstellung von F1 g. 4 Kann mi &
des Pufferspeichers 100 bei Hochgescnw nuig Übertragungen zum und vom RecnenwerK 1 <^
'crt werden. Wie bereits erwähnt wurac,s'"" ; /u 6& tralspeicher Wortgruppen von 2.6 bits in >vu .-^ je 32 Bits enthalten; eine Wortgruppe 10di.. jeweils gleichzeitig gelesen oder geschrienu " r Die Wortgruppen werden aus dem Zentrale.J.
über die Speichersteuereinheit 1» und den Kanal 33
einer T^,ha,tungscinheU 1ββ transportiert. Der
Torschaltungseinheit 18a ist der Pufferspeicher 100
halfct. wie in Fig.6 dargestellt ist, ver-
laufc* zwischen dem Pufteispeicher 100 und dem
Rechenwerk 101 drei Datenkanäle 100«, 100/, und
Der Kanal 100fl ist der Ausgangsteil eines
isterkanals fur den Operanden A, der zwei in
^ geschaUete pufler 102 und 103 enthalt- Der
Kanal 100 6 ist der Ausgangskanal eines Register- ^ ^ nden ß> def von zwei in Seric
geschalteten PufTcrn 105 und 106 gebildet wird. Der S .^ ^ E| skana, eines
Registerkanals für das Resultate, der aus zwei in
s * geschalteten Puffern 108 und 107 besteht. Die * B dje Q ^ ^ un(] ß m
Q lden auf dem ^ zwiscncn dcm Zentrat-
» und dem Rechenwerk Der Resultatregister-
μ ^ die ^ Rechcnwerk 101 aus.
^ Ergebnisse, ehe sie beispielsweise in Worlesammelt zu den Speichern 12 bis .15 zu ^ p^ ^ ^ ^ aufgebauti daß er beispiels.
weise mit jeder achten Takt/.cit auf einmal eine aus acht Wörtern bestehende Wortgruppe empfangen und abgpe.chern kann Synchron mit dem Puffer 102 wird jede Wortgruppe zum Puffer 103 weitertransportiert. Aus 32 Bits bestehende Wörter werden vom PufTcr ^3 zum Rechenwerk 101 so übertragen, daß ein
Wort pro Taktimpuls bewegt wird. Jc nach Art der vom Rechenwerk 101 auszuführenden Operation wird ^ Taktzeit ein vom Rechenwerk gebildetes
Resultat aus den Puffern 108 und 107 zum Zentralspeicher ebracht. Der Rechner kann in gleicher ^.^ hochwirksamc operationen wie auch Opcra-UoMn m|t geringeren Anforderungen ausführen. Ein b . ,e, für höchstc Anforderungen bei einer Operation des Pufferspeichers 100 und des Rechenwerks ,01 ist die Addition von Vektoren, bei der die z-ei Operanden aus den PufTcrn 103 und 106 mit jedem T^ktim ,s zum Rechenwerk 101 übertragen werden, das mit jedem Taktimpuls eine Summe bildet, die unmiUelbar vom Puffer 108 aufgenommen wird.
In der zentralen Datenverarbeitungseinheit 10 befindet sich ejne Oa{c[ aus adressierbaren Registern, nmijch Basisregistern 120, 121, allgemeinen Regis(em ,22 und J23^ einem indexregister 124 sowie ^^ Vektorparameterregister 125. Jedes der Regic(er J20 bis 125 hat über einen gemeinsamen KommunikauOnskanal 104 und eine Operandenabruf- und Operandenspeicheranordnung 126 Zugang zum Rechenwerk 101. Die Anordnung 126 dient als Durchgangskanal zu Operanden in beiden Richtungen. Eine Steuereinheit 127 dient unter anderem zur Steuerung des Rechenwerks 1Oi dadurch, daß sie ihre Steuer- ^ ^ G^a ^ ^ ^m Befehispufferspei. ^ J27a gdieferten Befehle bildet Der Befehlspufferspeicher 127α dient der Pufferung von Befehlen> die aus einer Befehlsabruf einheit 128 stammen Die Befehlsabrufeinheit 128 beliefert nicht nur der Befehlspufferspeicher 127a mit Befehlen, sondern ei Hefert auch Adressen an eine Indexeinheit 126a; dei Ausgang der Indexeinheit 126a führt dabei zur An-Ordnung 126. Die Befehlsdateien 129 und 130 bilder puffernde Kanäle für einen Befehlsfiuß von den Spei- ^^ J2 ^ 1$ ^γ Befeh!sabru{einheit 12g
Ejne Steuereinheit 131 steht mit Ausnahme dei Befehlsdateien 129 und 130 mit allen in Fig-4 ge-
3903 I
zeigten Einheiten in Verbindung; es besteht auch eine Verbindung zwischen ihr und der Torschaltungseinheit 18a. Zur Aufgabe der Steuereinheit 131 gehört es, auf Grund eines Befehls den gesamten augenblicklichen Zustand der zentralen Datenverarbeitungseinheit 10 vorzugsweise in den Zentralspeicher zu übertragen und an Stelle dieses Zustandes in die zentrale Datenvcrarbtitungseinheit einen neuen Zustand einzugeben, so daß der Ablauf eines neuen Programms begonnen werden kann.
Der Pufferspeicher 100 enthält eine Parameterregisterdatei 132 und eine Arbeitsspeicherregisterdatei 133. Die Parameterregisterdp.tei 132 ist über einen Kanal 134 und über den Kommunikationskanal 104 mit dem Vektorparameterregister 125 verbunden. Der Inhalt des Vektorparameterregisters 125 wird in die Parameterregisterdatei 132 übertragen, sobald ein Vektorbefehl aus dem Zcntralspeicher zum Bcfehlsspeicherrcgister 128 geholt wird. Wenn das Befehlsspeicherregister 128 beispielsweise einen solchen Vcklorbefchl aufgenommen hat, erfolgt unmittelbar in Maschinenspruche eine Übertragung der Parameterdaten aus dem Vektorparameterregister 125 in die Parameterregislerdatei 132. Die Ausführung der daraufhin erfolgenden Operationen erfolgt vermittels der Indexeinheit 126a, des BefehlspufTerspeichers 127« sowie der Anordnung 126 und der Steuereinheit 127. Dies bedeutet im einzelnen, daß im Verlauf der Zeit, in der das Rechenwerk 101 eine bestimmte Operation ausführt, die Anordnung 126 und die Steuereinheit 127 die nächste nachfolgende Operation zur Durchführung durch das Rechenwerk 101 vorbereiten. In der gleichen Zeit bereiten auch die Indexcinheit 126« und der BefehlspufTerspeicher 127« die nächstfolgende Operation vor. Schließlich nimmt während derselben Zeitdauer die Befehlsabrufeinheit 128 den daraufhin folgenden Befehl auf. Dieser Befehl wird somit im Rechenwerk 10! drei Operationen später als der augenblicklich wirksame Befehl ausgeführt. Bei einer derartigen Organisation werden also vier Befehle gleichzeitig vc/arbeitet, indem sich jeder in einer verschiedenen Verarbeitungsstufe hinsichtlich der anderen Befehle befindet, wie dies in F i g. 4 durch die Zeiten 71, 72, 73 und 74 angedeutet ist.
Zu Fi g. 5
In dieser Figur sind die Schaltungsanordnur.gen zur Ausführung eines Vorausschaubefehls LLA dargestellt. Dieser Befehl dient in besonderer Weise einer Simultanverarbeitung, indem er ermöglicht, diese Verarbeitungsart insbesondere bei Programmschleifen und sonstigen itterativen Programmoperationen einzusetzen, die durch bedingte Verzweigungen gekennzeichnet sind. Die Wirkungsweise der in F i g. 5 dargestellten Schaltung voll an Hand eines Beispiels erklärt werden, bei dem zu Beginn einer Befehlsfolge ein Vorausschaubefehl LLA und im Verlauf der Befehlsfolge ein bedingter Verzweigungsbefehl vorhanden ist, wie dies in der am Ende angefügten Tabelle I dargestellt, ist. Der Rechner führt ein solches Programm derart aus, daß die in der Tabelle I angegebenen Befehle nacheinander durchgeführt werden, bis ein bedingter Verzweigungsbefehl an der Reihe ist. Die Besonderheit an dieser Stelle ist nun, daß zu diesem Zeitpunkt bereits eine neue Befehlsfolge aus Befehlsworten bereitgestellt ist, die den Vorausschaubefehl LLA enthält, so daß dem in Fig. 4 darf "stellten Rechenwerk 101 ohne nennenswerte Unterbrechung weitere Befehle laufend angeboten werden können. Dies wird insbesondere mit Hilfe der liefehlsdateien 129, 130 ermöglicht, die Informationsblöcke, die aus acht Befehlswörtern bestehen, parallel aufnehmen und seriell abgeben. Die Befchlsdatei 129 enthält acht Register KOO bis K 07 für die acht Befehlswörter eines Befehlsblocks, und
ίο die Befehlsdatei 130 enthält in entsprechender Weise acht Register K10 bis K" 17. Die Bezeichnung der Register lautet jeweils W0 bis W7.
In der Tabelle I ist nur ein bestimmter Teil einer Befehlsfolge angegeben, der zwischen den Adressen 103 und 117 liegt. Bei der Adresse 103 befindet sich ein Vorausschaubefehl LLA, bei dem durch die. Zahl 18 angegeben ist, daß nach 18 Befehlen ein bedingter Verzweigungsbefehl folgt. Dieser bedingte Verzwcigungsbefehl steht demnach am Ort der
»o Adresse 115.
Wie aus der Tabelle I zu erkennen ist, sind die Befehlsadressen in Hexadezimaldarstellung angegeben und in Achtergruppen unterteilt. Die erste Achtergruppe der Befehle umfaßt die Adressen 100
»5 bis 107, die zweite Achtergruppe umfaßt die Adressen K)H bis K)F und die dritte Achtergruppe umfaßt die Adressen 110 bis 117.
Der Vorausschaubefehl LLA ist zwar bei der Adresse 10.1 angegeben, doch kann er natürlich auch
3" an einer anderen Adresse stehen. Der in der Befehlsfolge vorkommende bedingte Verzweigungsbefehl kann einen Rücksprung zur Adresse 103 zur Folge haben, damit beispielsweise eine Programmschleife ausgeführt wird, die so lange wirksam ist, bis eine bestimmte Bedingung erfüllt wird, worauf der Rechner im Programm mit der Adresse 116, 117 usw. fortfährt und nicht mehr von der Adresse 115 zur Adresse 103 zurückspringt.
Der besondere Vorteil des hier beschriebenen Verfahrens und der Anordnung zur D. .rchführung des Verfahrens ergibt sich bei der Bearbeitung von Programmschleifen. Zwar ist bekannt, daß die allgemeine Verlustzeit bei einem Rechner infolge einer zufälligen falschen Führung bei einer Vorausschausteuerung nur geringfügig ist, doch addieren sich bei itericrcnden Programmen mit vielen Programmschleifen diese an sich geringfügigen Verlustzeiten zu einem beträchtlichen, nicht mehr zu vernachlässigenden Betrag. Dadurch, daß an den Anfang einer solchen Programmschleife ein Vorausschaubefehl gesetzt wird, können die sich addierenden Verlustzeiten vermieden werden. Der Vorausschaubefehl LLA hat keinerlei Steuerfunktion hinsichtlich dei zum Zeitpunkt des bedingten Verzweigungsbefehlf zu treffenden Entscheidung. Der Befehl besagt irr Beispiel der Tabelle I lediglich, daß an der 18. Stelle innerhalb der Programmschleife eine Entscheidung getroffen wird, auf Grund der entweder an die Stelh des Vorausschaubefehls LLA zurückgesprungen odei
in der Befehlsfolge in der gewohnten Weise weiter gefahren wird.
Beim Durchlaufen der letzten Schleife läuft de; durch den Vorausschaubefehl in Gang gebracht« Vorgang in der vorgesehenen Weise ab. Ergibt siel jedoch zur Zeit des bedingten Verzweigungsbefehls daß eine weitere Programmschleife nicht erfordernd ist, dann erhält die Vorausschauanordnung einei Rücksetzimpuls, durch den die Befehle, die durc!
3903
Il
die Vorausschauanordnunj; vorsorglich bereitgestellt worden sind und die den Vorausschaubefehl [..LA enthielten, auf den gegebenenfalls zurückgesprungen werden sollte, unwirksam jjemacht werden. Das Programm läuft dann in der Befchlsfolge weiter, bis der nächste Vorausschaubefehl LLA gefunden wird. Wird also eine Programmschleife verlassen, erhalt die Vorausschauanordnung grundsätzlich einen RUcksctzimpuls.
Die gleichzeitige Eingabe von jeweils acht Befehlswörtern in die Befehlsdateien 129 und 130 wird mit Hilfe von Und-Schaltungen 208 bzw. 209 ermöglicht. Die acht Befehlswörter mit insgesamt 25ίί Bits (8 · 32 Bits) werden über Kanäle 200 bis 207 über die Und-Schaltungen 208 in die Register K«0 bis K07 der Befchlsdatei 129 und über die Und-Schallungcn 209 in die Register KlO bis K 17 der Befehlsdatei 130 transportiert. Die Und-Schaltungen 208, 209 werden durch Signale auf Leitungen 210 bzw. 211 gesteuert. Die Leitung 210 ist die Ausgangsleitung einer Und-Schaltung 212, während die Leitung 211 die Ausgangsleitung einer Und-Schaltung 213 ist'. An der Leitung 210 kann ein Signal LA 0 liegen, und an der Leitung 211 kann ein Signal LA 1 liegen. Die Kanäle 200 bis 207 übertragen jeweils 32 Bits; sie kommen von der Speicherstcucrcinheit 18 des aus den Speichern 12 bis 15 bestehenden Zentralspeichers.
Die Ausgänge der Dateien 129 und 130 sind über 32-Bit-Kanäle mit den Eingängen von Und-Schaltungen 215 bzw. 216 verbunden. Diese Und-Schaltungen 215 und 216 werden von einem Decodierer 218 so gesteuert, daß jeweils nur der Inhalt eines der Register KOQ bis K17 über die Und-Schaltungen an eine Oder-Schaltung 217 gelangt, deren Ausgang über einen 32-Bit-Kanal 220 mit dem Eingang eines Befehlsregisters 221 verbunden ist, das ein Befehlsregister -jincr ersten Verarbeitungsebene ist. Während nun der Decodierer 218 bewirkt, daß zu einem Zeitpunkt jeweils nur 32 Bits in Form eines Befehls in das Befehlsregister 221 gelangen, verursachen die abwechselnd an den Leitungen 210 und 211 erscheinenden Signale LA 0 bzw. LA 1 das parallele, also gleichzeitige Laden der Dateien 129 bzw. 130 mit einer Gruppe von acht Befehlen aus der Speichersteuereinheit 18.
Die in Fig. 5 breit gezeichneten Kanäle transportieren jeweils 32 Bits parallel; die etwas weniger breit gezeichneten Kanäle (beispielsweise der Kanal 243) übertragen 24 Bits; die noch schmaler gezeichneten Kanäle (beispielsweise der Kanal 233), können acht Bits transportieren, und die nur als Striche gezeichneten Leitungen übertragen jeweils ein Bit.
Dem Befehlsregister 221 ist ein Adressenregister 222 zugeordnet, das die Adressen enthält, die zu dem im Befehlsregister 221 befindlichen Befehl gehört. Ein Kanal 223 führt vom Ausgang des Befehlsregisters 221 zum Eingang eines weiteren Befehlsregisters 224 einer zweiten Verarbeitungsebene. In gleicher Weise führt vom Ausgang des Befehlsregisters 221 ein Kanal .225 zum Eingang eines Decodierers 226. Ein Adressenregister 227 ist mit dem Adressenregister 222 verbunden; es enthält die Adresse des im Befehlsregister 224 enthaltenen Befehls.
Vom Ausgang des Befehlsregisters 224 führt ein Kanal zu einem weiteren Befehlsregister 229 einer dritten Verarbeitungsebene. Zu diesem Befehlsregister 229 gehört das Adressenregister 230. Die Adresse des im Befehlsregister 229 enthaltenen Befehls wird normalerweise zum Pufferspeicher 100 und zum Rechenwerk 101 geleitet, wo diese Adressen als Operandenadressen über die Torschaltungseinheit 18« zum Zentralspeicher weitergeleitet werden. Der Kanal 233 verbindet den Ausgang des Befehlsregisters 224 mit dem Eingang des Üecodierers 234 zum Decodieren eines bedingten Vcrzwcigungsbcfehls. Ferner führt der Kanal 233 zu Hncr Und-Schaltung 235, deren weiterer Eingang über eine Leitung 236 mit dem Ausgang des Decodieren 226 verbunden ist, der das Signal LLA abgibt, sobald er einen Vorausschaubefehl erkannt hat. Die Leitung 236 führt ferner an eine weitere Und-Schaltung 264. Ein weiterer Ausgangskanal des Befchlsregis'crs 224 ist über einen Indexer 231 mit cin^m Adressenregister 232 verbunden.
Der Ausgang des Adressenregisters 232 ist mit
ao einer Und-Schaltung 242 verbunden, deren weiterer Eingang mit einer Leitung 234« in Verbindung steht, die am Ausgang des Decodiercrs 234 angeschlossen ist. Am Ausgang der Und-Schaltung 242 ist der Kanal 243 angeschlossen, der eine Verzweigungsadresse
as von 24 Bits an ein Adressenregister 244 liefert, die in diesem gespeichert wird. Die Leitung 234« aus dem Decodierer 234 ist über einen Inverter 246 und eine Und-Schiiltung 248 mit einem Fortschaltcingang des Adressenregisters 244 verbunden, über den die gespeicherte Adresse mittels eines ( I 1 ^Modifizieren 250, dessen Ausgang mit dem Eingang der Und-Schaltung 248 verbunden ist, jeweils um den Wert 1 vergrößert werden kann. Y.m Ausgang des Adressenregisters 244 führt über einen Kanal 252 zum Eingang des Adressenregisters 222. Wie bereits erwähnt wurde, ist der Ausgang des Adressenregisters 222 mit dem Adressenregister 227 verbunden. Düs Adrrssenregister 227 besitzt zwei Ausgänge, die zum Eingang des Adressenregislers 230 bzw. über einen Kanal 254 zur Und-Schaltung 264 führen.
Ein Kanal 256 verbindet den Ausgang der Und-Schaltung 235 mit dem Selzeingang einer Zählanordnung 256, der über einen ( 1)-Modifiziercr 260 den eingespeicherten Inhalt, schri'iweise jeweils um 1 verkleinern kann. Ein Detektor 262 prüft laufend den Inhalt der Zählanordnung 258, und er liefert ein Ausgangssignal zu einer Und-Schaltung 263, sobald der Inhalt der Zählanordnung 258 kleiner als 12 und größer als 3 ist.
Die Ausgänge der letzten drei Binärr-.ilen des Ailressenregisters 244 sind an eine Und-Schaltung 266 angeschlossen, deren Ausging mit dem zweiten Eingang der Und-Schaltung 263, mit dem Fortschalteingang einer Flip-Flop-Schaltung 282, dem Rücksetzeingang einer Flip-Flop-Schaltung 284 und mit den Eingängen der Und-Schaltungen 294 und 270 verbunden ist. Ausgänge der letzten drei Bitstellen des Adressenregisters 244 sind auch mit dem Decodierer 218 verbunden, damit die sequentielle Befehlsausgabe aus den Dateien 229 und 230 gesteuerl wird. Der Ausgang der Und-Schaltung 263 ist einer seits über einen Inverter 268 mit dem zweiten Eingang der Und-Schaltung 270 und andererseits direki mit einem Eingang einer Und-Schaltung 272 ver
blinden, deren zweiter Eingang mit einem von einen Adressenregister 274 kommenden Kanal in Verbin dung steht. Das Adressenregister 274 wird über dei Ausgang der Und-Schaltung 264 geladen. Über dei
3903
Ausgang der Und-Schaltung 272 wird das Adressenregister 276 geladen, das über einen Kanal 277 einen Zugriff auf die Speichersteuereinheit 18 ausüben kann.
Ein Eingang einer dnd-Schaltung 278 ist mit dem Ausgang der Und-Schaltung 270 verbunden; der andere Eingang der Und-Schaltung 278 steht mit dem Ausgang einer Anordnung 280 zur ( + 8)-Modifizierung in verbindung. Bei einem geeigneten Zustand der Bits in den letzten drei Stellen des Adressenregisters 244 kann der Inhalt des Adressenregisters 276 mit Hilfe der Anordnung 280 um acht erhöht werd;n.
Der Setzeingang der Flip-Flop-Schaltung 284 ist mit einer Leitung 286 verbunden, an der dann ein Signal anliegt, wenn Daten übertragen werden können, d. h., wenn die Speichersteuereinheit 18 Befehlsblöcke zur Übertragung in die Dateien 129 oder 130 bereitgestellt hat. Der Ja-Ausgang der Flip-Flop-Schaltung 2E4 ist mit einem zweiten Eingang der Und-Schaltung 294 verbunden. Der Nein-Ausgang der Flip-Flop-Schaltung 282 ist mit einem Eingang einer Und-Schaltung 288 verbunden, während der Ja-Ausgang dieser Flip-Flop-Schaltung mit einem Eingang einer Und-Schaltung 290 verbunden ist.
Die Und-Schaltung 288 liefert an den Decodierer in Form von Signalen PUO bzw. PUl weitere Informationen, mit deren Hilfe der Decodierer die richtige serielle Weitergabe der geeigneten Befehle aus den Dateien 129, 130 an die Befehlsregister ausführen kann. Die zweiten Eingänge der Und-Schaltung 288 und der Und-Schaitung 290 sind mit dem Ja-Ausgang einer Flip-Flop-Schaltung 292. verbunden, der gleichzeitig mit dem dritten Eingang der Und-Schaltung 248 in Verbindung steht.
Der Setzeingang der Flip-Flop-Schaitung 292 ist mit der Leitung 286 verbunden, die ferner an jeweils einen Eingang der Und-Schaltungen 212. 213 führt. Der andere Eingang der Und-Schaltung 212 ist mit dem Ja-Ausgang der Flip-Flop-Schaltung 282 verbunden, und der andere Eingang der Und-Schaltung 213 ist mit dem Nein-Ausgang dieser Flip-Flop-Schaltung verbunden. Der Ausgang der Und-Schaltur.g 294 ist mit dem Rücksetzeingang der Flip-Flop-Schaltn ig 292 verbunden.
Bei ι. r in Fig. 5 dargestellten Schaltung werden ausschließlich fest verdrahtete Schaltkreise verwendet, die auf den Vorausschaubefehl und auf dun später folgenden bedingten Verzweigungsbefehl reagieren.
Der Decodierer 226 entschlüsseli den Vorausschaubefehl LLA, sobald dieser im Befehlsregister 221 und somit in der ersten Verarbeitungsebene ankommt. Wie bereits erwähnt wurde, sind in der Schaltung von Fig. 5 insgesamt drei Verarbeitungsebenen vorgesehen. Der Decodierer 234 entschlüsselt entsprechend einen bedingten Vcrzwcigungsbefehl, wenn dieser in die zweite Verarbeitungsebene gelangt ist. Das aus der zuletzt genannten Entschlüsselung resultierende Signal an der Leitung 234« öffnet die Und-Schaltung 242 und sperrt infolge des dazwischcngcschaltctcn Inverters 246 die Und-Schaltung 248. Somit wird eine weitere Erhöhung des Inhalts des Adressenregisters 244 vermieden, und der Inhalt dieses Adressen registers wird auf den Wert gebracht, der im Adressenregister 232 gespeichert war und nun über die Und-Schaltung 244 übertragen wird. Dieser Ladevorgiing des Adressenregisters 244 findet bei jedem Wiederanlauf einer Befehlsschleife statt, und er unterbleibt erst dann, wenn die Befehlsschleife zur Zeit des bedingten Verzweigungsbefehls infolge der Erfüllung der Bedingung verlassen werden kann. Ob die Bedingung erfüllt oder nicht erfüllt ist, wird beispielsweise durch das Rechenwerk 101 dadurch angezeigt, daß dieses auf den Leitungen 2446, 244c entsprechende Signale abgibt, die dem Setz- oder Rücksetzeingang einer von
ίο einer Flip-Flop-Schaltung gebildeten Rückstellanordnung 234 b zugeführt werden.
Eine Leitung 234 e verbindet den Nein-Ausgang der Rückstellanordnung 234 d mit dem Decodierer 234. Wenn zur Zeit des Auftretens eines bedingten Verzweigungsbefehls in der zweiten Verarbeitungsebene an dieser Leitung kein Signal anliegt, liegt an der Leitung 234a ein Signal, das den oben beschriebenen Ladevorgang des Adressenregisters 244 mit dem im Adressenregister 232 gespeicherten Wert zur
Folge hat. Wenn jedoch an der Leitung 234 e ein Signal anliegt, wird das Auftreten eines Signals an der Leitung 234 a unterbunden, so daß der Ladevorgang entfällt und das Adressenregister 244 von Seiten des Inverters 246 unbeeinflußt bleibt; der Inhalt des
»5 Adressenregisters 244 wird jedoch um 1 erhöht, so daß das Programm die Schleife verläßt und den von der Programmfolge vorgeschriebenen Weg weiterverfolgt.
In der am Ende angefügten Tabelle II ist ein Funktionsdiagramm zur Durchführung einer Schleife gem;i.ß Tabelle I in der Art eines vereinfachten Zeitdiagramms angegeben, in welchem die verschiedenen Zustände bestimmter wichtiger Schaltungselemente in ihrer zeitlichen Reihenfolge im Verlauf der Taktimpulszeiten 1 bis 26 verfolgt werden können. Die Taktimpulse werden dabei von einem Taktimpulsgeber 300 von F i g. 5 erzeugt.
In der nachfolgenden Beschreibung wird das in der Tabelle II festgehaltene Geschehen während einer Schleife des Programmierbeispiels von Tabelle I. erläutert. In der Tabelle I ist an der Adresse 103 ein Vorausschaubefehl LLA gespeichert, bei dem durch die beigegebene Zahl 18 angezeigt wird, daß nach 18 weiteren Befehlen in der Programmfolge, also an der Adresse 115, ein bedingter Verzweigungsbefchl folgt. Auf Grund des zuletzt genannten Befehls springt der Rechner entweder zur Adresse 103 und damit erneut zum Vorausschaubefehl LLA zurück, oder er wird nach Erfüllung bestimmter Bedingungen mit dem Programm so fortfahren, daß nach dem an der Adresse 115 vorliegenden Befehl der Befehl mit der Adresse 116 und dann der mit der Adresse 117 usw. folgen.
Die in der Tabelle II gezeigten Operationen beziehen sich zunächst auf den Teil des Programms, bei dem sich die Befehlswörter mit den Adressen ICO bis 107 in der Datei 129 befinden; unter diesen Befehlswörtern befindet sich gemäß Tabelle I an der Adresse 103 der Vorausschaubefehl LLA. In der Tabelle II sind nun die Zustände bestimmter Schaltungselemente nach dem Auftreten der Taktimpulsc 1, 2, 3 ... aufgezeichnet. In den Registern KOO bis KOl der Datei 129 befindet sich ein aus acht Befehlen bestehender Befehlsblock, der bei den Adressen 100 bis 107 liegt. Ein zweiter Bcfehlshlock aus acht Befehlen befindet sich in den Registern K10 bis K17 der Befchlsdatei 130 an den Adressen 10 bis K)F.
15 (O
Ntch dem Taktimpuls 1 wurde der lnhnlt des Adressenregisters 244 weiterhin jeweils um 1 erhöht. Wie bereits erwähnt wurde, dient dieses Adressenregister 244 dazu, dem Decodierer 218 das richtige Befehlswort aus den Dateien 129, 130 auszuwählen und in das Befehlsregister 221 zu befördern, in der in Fig. 5 dargestellten Schaltung liegen folgende Zustände vor:
Nach dem Taktimpuls 1:
Das Adressenregister 244 enthält den Wert 103; das Adressenregister 276 enthält den Wert 108", der die Anfangsadresse des Befehlsblocks ist, der als nächstes aufgerufen wird. Der in der Datei 130 vorhandene Befehlsblock mit den Adressen 108 bis 1OF war dadurch aus der Speichersteuereinheit 18 in die Datei 130 gelangt, daß die Leitung 286 ein Signal führte, das die Flip-Flop-Schaltung 292 setzte und die TJnd-Schaltung 213 zur Erzeugung des Signals LA 1 öffnete; das Signal LA 0 hat den Signalwert 0, und das Signal LA 1 hat den Signalwert 1.
Wegen der Erfüllung der Und-Verknüpfung an der Und-Schaltung 288 hat das Signal PUO den Signalwert 1, so daß die Und-Schaltungen 215 zum Auslesen aus der Datei 129 gewählt werden; das Signal PUi hat somit den Signalwert 0, so daß die Ünd-Schaltungen 216 gesperrt werden; auf Grund der Werte der in den letzten drei Stellen des Adressenregisters 244 gespeicherten Bits wählt der Decodierer 718 diejenige Und-Schaltung 215 aus, die den Übertragungsweg vom Register K 03 zur Oder-Schaltung 217 öffnet.
Nach dem Taktimpuls 2:
Der Inhalt des Adressenregisters 244 wurde auf 104 erhöht; der Inhalt aus dem Register K 03 der Datei 129 ist über die entsprechende Und-Schaltung 215 zum Befehlsregister 221 gelangt. Der Wert 103 ist aus dem Adressenregister 244 in das Adressenregister 222 zu übertragen.
Nach dem Taktimpuls 3:
Der Inhalt des Adressenregisters 244 ist auf den Wert 105 gebracht; der Decodierer 218 wählt auf Grund des Werts 5 in den letzten drei Stellen des Adressenregisters 244 und auf Grund des Signals PUO den Ausgang des Registers K 05 an;
die Adresse 104 war vom Adresscnregistei 244 in das Adressenregister 222 übertragen worden; andererseits war die im Adressenregister 222 enthaltene Adresse 103 in das Adressenregister 227 übertragen worden;
der an der Adresse 103 vorhandene Inhnlt des Befehlsregisters 221 war in das Befehlsregister 224 übertragen worden, wobei 8 Bits über den Kanal 225 zum Decodierer 226 übertragen wurden;
der Decodierer 226 erzeugt an der Leitung ein dem Vorausschaubefehl LLA entsprechendes Signal:
tier Tnt< rvailbetrag auf der Leitung 256 ist IS, sobald im Befehlsregister 224 der Voran1- h;m· bcfchl LLΛ iingcktimmen ist.
Nach dem Taktimpuls 4:
Der Inhalt des Adressenregisters 244 wurde auf den Wert 106 erhöht;
die Adresse 105 ist vom Advessen register 244 in das Adrer.senregister 222 übertragen worden; das an der Adresse 105 vorliegende Befehlswort ist in das Befehlsregister 221 eingegeben worden;
ίο die Adresse 104 befindet sich im Adressenregister 227, und das an dieser Adresse vorhandene Befehlswort befindet sich im Befehlsregister 224;
das dem Vorausschaubefehl LLA entsprechende Signal auf der Leitung 236 liegt nicht mehr vor;
die Adresse 103 wurde in das Adressenregister 230 übertragen, und der an der Adresse 103 vorhandene Befehl wurde in das Befehlsregister 229 übertragen;
ao in die Zählanordnung wurde de*· Wert 18 aus
dem Vorausschaubefehl LLA eingegeben;
das Adressenregister 274 erhielt den Wert 100, in dem die letzten 3 Bits des Adressenwerts 103 aus dem Adressenregister 227 unterdrückt wur-
*5 den; mit dem vierten Taktimpuls wurde die
Adresse 103 aus dem Adressenregister 227 in das Adressenregister 274 übertragen.
Nach dem Taktimpuls 5:
Der Inhalt des Adressenregisters 244 wurde auf den Wert 107 gebracht, und in entsprechender Weise wurde der Inhalt der Zählanordnung 258 auf den Wert 17 erniedrigt;
der Decodierer 218 wählt auf Grund des Werts 107 im Adressenregister 244 und auf Grund des Signals PU0 den Ausgang des Registers K 07 der Datei 129 an;
das Adressenregister 222 enthält die Adresse 106, und das an der Adresse 106 vorhandene Befehlswort ist im Befehlsregister 221 enthalten;
das Adressenregister 227 enthält die Adresse 105, und dementsprechend enthält das Befehlsregister 224 den an der Adresse 105 vorhandenen Befehl;
das dem Vorausschaubefehl LLA entsprechende Signal an der Leitung 236 ist weiterhin nicht vorhanden; das Adressenregister 230 enthält die Adresse 204, und das ,ugchörigc Befehlsregister 229 enthält den an der Adresse 104 vorhandenen Befehl.
Nach dem Taktimpuls 6:
Das Adressenregister 244 enthalt den Wert 108; das Adresscnriigister 276 enthält die Adresse 110, da die bisherige Adresse 108 infolge eines Signals an der Ausgangsleitung der Und-Schaltung 266 und infolge des Fehlens eines Signals am Ausgang des Detektors 262 um 8 erhöht worden ist;
ein I 'nischnltcn der Γ üp-Flop-Schaltung 282 als FoIt;e eines Ausg;!^:-signals aus der Und-Schiil-6r. Uing 266 hat /ur ! olnc daß d;s Signal LA 0 an
der Leitung 210 ιU1Ii Siunalwcii I inid das Signal LA 1 an r'.'.T I ciiunL 211 den Signalwcrt 0 annimmt;
409 611/339
Il
die Verknüpfungsbedingungen der Und-Schaltung 288 sind somit nicht mehr erfüllt; die Und-Schaltung 290 kann jedoch das Signal PUl abgeben,
der Inhalt der Zählanordnung 258 wurde um I verkleinert; er betragt nun 16;
der Decodierer wählt auf Grund des Werts 0 in den letzten drei Stellen des Adressenregisters 244 sowie auf Grund des Signals PUl den Ausgang des Registers K10 und somit die am weitesten oben dargestellte Und-Schaltung 216 an; das Adressenregister 222 enthält die Adresse 107, und das Befehlsregister 22J. enthält den an der Adresse 107 vorhandenen Befehl;
das Adressenregister 227 enthält die Adresse 106, und das Befehlsregister 224 enthält den an der Adresse 106 vorhandenen Befehl;
das Adressenregister 230 enthält die Adresse 105, und das Befehlsregister 229 enthält den an der Adresse 105 vorhandenen Befehl.
Auf diese Weise werden;die in Fig. 5 dargestellten Schaltungselemente mit jedem Taktimpuls weitergeschaltet, wobei nun bis nach dem Taktimpuls 13 keine wesentlichen Änderungen stattfinden.
Nach dem Taktimpuls 13:
Die Datei 129 enthält nun Befehle mit den Adrev sen 110 bis 117;
im Adressenregister 244 ist der Wert 1OF gespeichert;
im übrigen verhalten sich die weiteren Schaltungselemente erwartungsgemäß, wie auch aus der Tabelle II zu ersehen ist
Nach dem Taktimpuls 14:
Der Inhalt des Adressenregisters 244 ist auf den Wert 110 gebracht worden;
das Adressenregister 276 enthält nun den Wert 100, der ihm zur Zeit des Null-Zustands der letzten drei Stellen des Adressenregisters 244 und damit zur Zeit eines Signals auf der Ausgangsleitung der Und-Schaltung 266 aus dein Adressenregister 274 über die" Und-Schaltung 272 zugeführt worden ist, da die Und-Schaltung 263 infolge des auf Grund der Zahl 8 in der Zählanordnung 258 abgeleiteten Signals ein Ausgangssignal abgab;
das Signal LA 1 an der Leitung 211 hat den Signalwert 1, und das Signal LAO an der Leitung 210 hat den Signalwert 0; das Signal PUO hat den Signalwert 1, und das Signal PUl hat den Signalwert 0;
der Inhalt der Zählanordnung 258 hat den Wert 8;
das Adressenregister 274 enthält noch den Wert 100, der, wie oben bereits erwähnt wurde, in das Adressenregister 276 übertragen wurde;
die Befehlsregister 221, 224, 229 enthalten die an den Adressen 1OF, 1OE bzw. IOD vorhandenen Befehle.
Nach dem Taktimpuls 21:
Die Datei 130 enthält die Befehlsworte mit den Adressen 100 bis 107;
der Inhalt des Adressenregisters 244 wurde wie üblich um den Wert I weitergeschaltet, und es enthält nun den Wert 117.
Nach dem Taktimpuls 22:
5
Der Inhalt des Adressenregisters 244 wurde in-
fulge eines Signais «n der Leitung 234 a und der dementsprechenden Sperrung der Und-Schaltung248 auf den Wert 0 gestellt;
ίο das Adressenregister 276 enthält die Adresse
108;
das Signal LAO hat den Signalwert 1, und das Signal LA 1 hat den Signalwert 0;
die Umschaltung zwischen den Signalen LA 0 und LA 1 erfolgt auf Grund eines Umschaltens der Flip-Flop-Sciialtung 282;
das Signal PUO wurde entsprechend auf den WertO gestellt, und das Signal PU1 wurde auf
den Wert 1 gestellt;
ao der Inhalt der Zählanordnung 258 wurde auf
den Wert 0 erniedrigt;
das Adressenregister 222 enthält die Adresse 117, und das zugehörige Befehlsregister 221 enthält den an der Adresse 107 vorhandenen Befehl;
das Adressenregister 227 enthält die Adresse 116, und das Befehlsregister 224 enthält das an dieser Adresse vorhandene Befehlswort;
das Adressenregister 230 enthält die Adresse 115, und das Befehlsregister 229 enthält das an dieser Adresse 115 vorhandene Befehlswort.
Nach dem Taktimpuls 23:
Das Adressenregister 244 enthält die Adresse 103, die ihr über das Adressenregister 232 zugeführt wurde;
die Und-Schaltung 242 wird durch ein Signal an der Leitung 234 a geöffnet, das infolge des Auftretens des bedingter. Veri.veigungsbefeh!s entstand, so daß der Inhalt des Adressenregisters 232 (Adresse 103) in das Adressenregister 244 eingegeben werden konnte;
der Decodierer 218 wählt auf Grund der Werte der Bits in den letzten drei Stellen des Adressenregisters 244 und auf Grund des Signals PU I den Ausgang des Registers K13 der Datei 130 an, in der sich der Vorausschaubefehl LLA mi! der Adresse 103 befindet.
Der Taktimpuls 23 leitet einen erneuten Durchlauf der Programmschleife ein, der mit dem Vorausschaubefehl LLA mit der Adresse 103 beginnt und mit dem bedingten Verzweigungsbefehl mit dei Adresse 115 endet. Solche Programmschleifen werden nun so oft wiederholt, bis eine bestimmte Bedingung erfüllt ist, die am Auftreten des Signals ar der Leitung 2346 und infolgedessen des Signals ar der Leitung 234 e zu erkennen ist, das zur Zeit de; bedingten Verzweigungsbefehls das Signal an dei Leitung 234a nicht auftreten läßt; damit bleibt de! Inhalt des Adressenregisters 244 in der um 1 erhöh ten Form erhalten, so daß nunmehr die Befehlsfolg< die Schleife verläßt und mit den Befehlen 116 117 ... der Tabelle I fortfährt.
Das Adressenregister 230 hat dieselbe Funktion wie sie bei üblichen Rechnern von Programmzählen ausgeübt wird.
19
Tabelle I
Sp sicher- Befehl
adresse des
Hefehlä 11/1—18 (Vorausschauhefehl)
103 JCG4
1. 104 .V05
2. 105 ΛΌ6
3. 106 ΑΌ7
4. 107 ΛΌ8
5. 108 ΛΌ9
6. 109 XO A
7. 10/1 XOS
8. 10 B XOC
9. IOC XOD
10. 10 D
11. 12.
13. 14. 15. 16. 17. 18.
Speicheradresse des
Befehls
Befehl
1OE
1OF
110
111
112
113
114
115
116
117
.VOE .VOF
ΛΊ0 ΛΊ1 JC12 JCl 3 JC14
ΛΊ5 (bedingte Verzweigung nach 103)
ΛΊ6 ΑΊ7
Tabelle II
1. 2. 3. 4. 5. 6. 7. 8.
9. 10. 11. 12. 13. 14. 15. 16.
28. 29. 30. 31. 32. 33.
Register
129:
130:
< WO KQO
W\ K0\
Wl K02
Wl KOZ
W4 ΑΌ4
W5 K05
W6 ΑΌ6
W7 KOl
WO KlO
Wl KU
Wl KM
Wi K\7>
W4 KX4
W5 K\5
W6 KX6
Wl KM
244: Adressenregister 276: Adressenregister
212; 210: Signal LA 213; 211: Signal LA
288: Signal PU
290: Signal PU
258: Zählanordnung 274: Adressenregister 217: Befehl aus:
221: Befehlsregister (Inhalt) 222: Adressenregister
224: Befehlsregister (Inhalt)
227: Adressenregister
226: Decodierer
256: !Canal
229: Befehlsregister (Inhalt)
IM: Adttueoregister
100 101 102 103 104 105 106 107
108
109
XOA
XQB
IOC
IOD
1OE
1OF
103 1OH
0 1 1 0
K03
104
KQA
103 103
Taktimpuls 15 16
10
106
100
KOß
105
105
104
104
0
103
103
107
0
1
1
0
17
K07
106
106
105
105
0
104
104
108 110
1 0 0 1
KlO
107 107
106 106 O
105 105
109
1 0 0
15
KU
108 108
107 107 0
106 106
10/4
1 0 O 1
14
K\2
109 109
108 0
107 107
105
1 0 O
13
/Π3
10/4 10/1
109 109 0
108 108
1 0 0
K14
XQB 10 B
Tabelle II (Fortsetzung)
11 12 13 14 IS 16 17 Takt ir
18
npiils
19
20 21 j 22 108
1
O
O
1
I 23 24 I 25 I 26 105 106
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
3?..
33.
110
111
112
113
114
115
116
117
O
117
117
116
116
O
1
O
O
1
1
O
O
1
IH
100
K\<-
Id-
IC"
ll'J
O
115
115
KlS
104
104
103
103
LLA
18
i'i ■
IOD
1
O
O
1
11
K\S
IOC
IOC
WB
lOfl
O
10A
lOA
10£
1
O
O
1
10
K16
IOD
IOD
IOC
IOC
O
1OF
1
O
O
1
9
ΛΓ17
10£
10£
IOD
IOD
O
100
101
.102
103
104
105
106
107
117
1OB
10ß
IOC
IOC
O
1
1
O
1
KOl
116
116
115
115
O
114
114
110
100
O
1
1
O
8
100
KOO
1OF
1OF
10£
10£
O
111 112 113 114 115 116 103 104
IOD
IOD
O
1
1
O
7
O
1
1
O
6
O
1
1
O
5
O
1
1
O
4
O
1
1
O
3
O
1
1
O
2
1
O
O
1
1
O
O
1
AOl
110
110
1OF
1OF
O
ΑΌ2
111
111
110
110
O
K03
112
112
111
111
O
A'04
113
113
112
112
O
K05
114
114
113
113
O
K06
115
115
114
114
O
ΑΓ13
O
ΑΓ14
103
103
O
10£
10 £
1OF
1OF
110
110
111
111
112
112
Die in F i g. 5 dargestellte Schaltung ist nur ein Ausführungsbeispiei, das insbesondere der Adressensteuerung d?·= ;n den F i g. 1 bis 4 gezeigten Rechners für die Verarbeitung wissenschaftlicher Daten dient. Die Schaltung enthält insbesondere drei Befehlsregister 221, 224 und 229, die jeweils eine Verarbeitungsebene für drei gerade ausgeführte Befehle darstellen. Der im Befehlsregister 229 enthaltene Befehl weist beispielsweise das Rechenwerk 101 der zentralen Datenverarbeitungseinheit zur Durchführung einer Operation in der dritten Veraibeitungsebene an, während die in den Befehlsregistern 221 und 224 enthaltenen Befehle zweckmäßigerweise vor Vorausschauoperationen, wie sie oben beschrieben wurden, verwendet werden. Wenn sich die im Adressenregister 244 befindliche Adresse derart ändert, daß eine Umschaltung der Auswahl der Ausgänge der Dateien 129, 130 stattfindet, indem beispielsweise von einem Befehlsblock zu einem anderen umgeschaltet wird, erfolgt eine Übertragung des Inhalts des Adressenregisters 244 in das Adressenregistcr 276, falls der Inhalt der Speicheranordnung 258 den Wert einer Blocklänge oder einen Wert kleiner als 3 hat. Die so übertragene neue Adresse im Adressenregister 276 wird nun über den Kanal 277 an die Speichersteuereinheit 18 gemeldet, die darauf' 1 rechtzeitig denjenigen Befehlsblock in die als niicr.--.:■: zu füllende Datei überträgt, die den letzten Vom schaubefehl LLA enthält.
So werden in dem hier beschriebenen Λυ^ίι1 ' rungsbeispiel Zähler und Decodierer verwendet. ■ bei ein Decodierer (der Decodierer 226) «.iim Abfinden eines Vorausschaubefehls LLA und zur W:- einstellung eines Zählers mit dem den Voraussehe: befehl LLA beigegebenen Betrag verwendet wird Der erwähnte Zähler ist bei dem beschriebenen Aus führungsbeispiel die Zählanordnung 258 und der ητν zugeordnete Modifizierer 260; der Inhalt des Zähierwird mit jedem auf den Vorausschaubefehl LLA folgenden Befehl geändert. Eine Anordnung zum Abn; der Befehlsblöcke aus dem Zentralspeicher wird se gesteuert, daß sie je nach dem Auftreten einer be stimmten Bedingung während eines am Ende de Programmschleife befindlichen bedingten Verzwei gungsbefehls die Übertragung desjenigen Bcfehis Blocks in die Befehlsregister bewerkstelligt, der ciei Vorausschaubefehl LLA enthält; dieser Vorgang er folgt in einem Zeitpunkt, der durch einen bestinw; ten Inhalt der Speicheranordnung 258 gekennzeie' net wird.
Hierzu 1 Blatt Zeichnungen

Claims (10)

I 949 Patentansprüche:
1. Verfahren zum Betrieb einer programmgesteuerten Datenverarbeitungsanlage zur Verwendung in Verbindung mit einer in einem Speicher enthaltenen Befehlsfolge, die wenigstens einen Verzweigungsbefehl, insbesondere einen bedingten Verzweigungsbefehl enthält, dadurch gekennzeichnet, daß in die Befehlsfolge ein Vorausschaubefehl an einer Stelle eingefügt ist, die in einem festgelegten Abstand von einem dem Verzweigungsbefehl zugeordneten Rückkehrpunkt in der Befehlsfolge liegt, wobei der Vorausschaubefehl eine Codegruppe enthält, welche die Anzahl der Befehle angibt, um welche der Vorausschaubefehl vor dem Verzweigungsbefehl liegt, daß aus dem Speicher Befehle geholt werden, daß beim Holen des Vorausschaubefehis aus dem Speicher ein Zählerstand eingestellt wird, der die genannte Anzahl darstellt, daß eine zur Verarbeitung durch die Datenverarbeitungsanlage verfügbare Befehlskette im voraus in einer Speichervorrichtung gebildet wird, daß der Zählerstand für jeden verarbeiteten Befehl verändert wird und daß jedesmal dann, wenn sich der Zählerstand um einen die genmnte Anzahl darstellenden Betrag geändert hat, aus dem Speicher wiederum Befehle geholt werden, die den Vorausschaubefehl enthalten.
2. Voraus: 'hauanordnung zur Durchführung des Verfahrens nach Anspruch 1, gekennzeichnet durch einen Decodiere/(226;, der auf einen in der Befehlsfolge enthaltenen ^'orausschaubefehl anspricht, um eine Zählanordnung (258) auf einen die genannte Anzahl darstellenden Anfangszustand einzustellen, eine Anordnung (260), die für jeden von der Vorausschauanordnung verarbeiteten Befehl den Inhalt der Zählanordnung (258) verändert, und durch eine Anordnung (263), die beim Erreichen eines vorbestimmten Zählerstandes in der Zählanordnung bewirkt, daß aus dem Speicher wiederum Befehle geholt werden, die den Vorausschaubefehl enthalten.
3. Vorausschauanordnung nach Anspruch 2, dadurch gekennzeichnet, daß die im voraus gebildete Befehlskette in einer Befehlskanal-Datei (129,130) vorbestimmter Länge gespeichert wird, die zwischen dem Speicher (12 und 15) und dem Rechenwerk (101) der Datenverarbeitungsanlage angeordnet ist.
4. Vorausschauanordnung nach Anspruch 2 oder 3, gekennzeichnet durch eine Rückstellanordnung (234 rf), welche die Vorausschauanordnung zurückstellt, um die von der Vorausschauanordnung im voraus aus dem Speicher geholten Befehle unwirksam zu machen.
5. Vorausschauanordnung nach einem der Ansprüche 2 bis 4, gekennzeichnet durch ein erstes Adressenregister (274) zur Speicherung der Adresse der Voraussch.'xibefehle, einen zweiten Decodierer (234), der auf den ersten Decodierer (226) folgt, um einen bedingten Verzweigungsbefchl festzustellen, ein zweites Adressenregister (244) zur Speicherung der Adresse des gerade aus dem Speicher geholten Befehls, ein drittes Adressenregister (276), das die Adresse des nächsten aus dem Speicher zu holenden Befehls enthält und durch eine Anordnung (263), die auf vorbestimmte Zustände in dem zwe.ten Adressenregister (244) und in der Zählanordnung (118) anspricht, um den Inhalt des ersten Adressenregisters (274) in das dritte Adressenreg.ster (276) zu übertragen.
6 Vorausschauanordnung nach Anspruch 5, dadurch gekennzeichnet, daß die Rückstellanordnune (234 d) bei Erfüllung der Bcuingung des bedingten Verzweigungsbefehls zur Sperrung des zweiten Decodierers (234) wirksam wird.
7 Vorausschauanordnung nach einem der Ansprüche 2 bis 6, dadurch gekennzeichnet daß der Zählerstand in der Zählanordnung (258) be.m Holen jedes Befehls aus dem Speicher zwischen dem Vorausschaubefehl und dem Verzweigungsbefehl verringert wird. . JA
8 Vorausschausystem nach einem der An-Qnriiche 2 bis 6 gekennzeichnet durch eine Anidnung(2oS SsW 129, 130), welche Befehle aus dem Speicher in BefehlsbIttkea holt und durch eine Anordnung (215, 216, 217), dit bi fehle aus jedem Befehlsblock der Re.he nach dem ersten Decodierer (226) zuführt.
9 Vorausschausystem nach Anspruch 8, gekennzeichnet durch eine Anordnung 280),die den Inhalt des dritten Adressenregisters (276) schrittweise um Beträge erhöht die gleich der Anzahl der Befehle in jedem Befehlsblock ist
10 Vorausschauanordnung nach Anspruch 8 oder 9, gekennzeichnet durch einen dritten Decodierer (218), der auf den Inhalt des zwe.ten Adressenregisters (244) anspricht, um die Zufuhrung von Befehlen der Reihe nach zu dem ersten Decodierer (226) zuzulassen.
DE1949916A 1968-12-04 1969-10-03 Verfahren zum Betrieb einer programmgesteuerten Datenverarbeitungsanlage und Anordnung zur Durchführung des Verfahrens Expired DE1949916C3 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US78098068A 1968-12-04 1968-12-04

Publications (3)

Publication Number Publication Date
DE1949916A1 DE1949916A1 (de) 1970-06-18
DE1949916B2 DE1949916B2 (de) 1973-08-09
DE1949916C3 true DE1949916C3 (de) 1974-03-14

Family

ID=25121279

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1949916A Expired DE1949916C3 (de) 1968-12-04 1969-10-03 Verfahren zum Betrieb einer programmgesteuerten Datenverarbeitungsanlage und Anordnung zur Durchführung des Verfahrens

Country Status (8)

Country Link
US (1) US3573853A (de)
JP (1) JPS518304B1 (de)
BE (1) BE740261A (de)
CA (1) CA932870A (de)
DE (1) DE1949916C3 (de)
FR (1) FR2025188A1 (de)
GB (1) GB1293548A (de)
NL (1) NL6916293A (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3673573A (en) * 1970-09-11 1972-06-27 Rca Corp Computer with program tracing facility
US3764988A (en) * 1971-03-01 1973-10-09 Hitachi Ltd Instruction processing device using advanced control system
US3731280A (en) * 1972-03-16 1973-05-01 Varisystems Corp Programmable controller
US3959777A (en) * 1972-07-17 1976-05-25 International Business Machines Corporation Data processor for pattern recognition and the like
DE2637866A1 (de) * 1976-08-23 1978-03-02 Siemens Ag Verfahren zum betrieb einer programmgesteuerten datenverarbeitungsanlage
US4166289A (en) * 1977-09-13 1979-08-28 Westinghouse Electric Corp. Storage controller for a digital signal processing system
US4181942A (en) * 1978-03-31 1980-01-01 International Business Machines Corporation Program branching method and apparatus
JPS5927935B2 (ja) * 1980-02-29 1984-07-09 株式会社日立製作所 情報処理装置
US4439827A (en) * 1981-12-28 1984-03-27 Raytheon Company Dual fetch microsequencer
US5226171A (en) * 1984-12-03 1993-07-06 Cray Research, Inc. Parallel vector processing system for individual and broadcast distribution of operands and control information
US5081573A (en) * 1984-12-03 1992-01-14 Floating Point Systems, Inc. Parallel processing system
US4760518A (en) * 1986-02-28 1988-07-26 Scientific Computer Systems Corporation Bi-directional databus system for supporting superposition of vector and scalar operations in a computer
JP2810068B2 (ja) * 1988-11-11 1998-10-15 株式会社日立製作所 プロセッサシステム、コンピュータシステム及び命令処理方法
GB2317469B (en) * 1996-09-23 2001-02-21 Advanced Risc Mach Ltd Data processing system register control
US20160283243A1 (en) * 2015-03-28 2016-09-29 Yong-Kyu Jung Branch look-ahead instruction disassembling, assembling, and delivering system apparatus and method for microprocessor system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE26087E (en) * 1959-12-30 1966-09-20 Multi-computer system including multiplexed memories. lookahead, and address interleaving features
US3312951A (en) * 1964-05-29 1967-04-04 North American Aviation Inc Multiple computer system with program interrupt

Also Published As

Publication number Publication date
BE740261A (de) 1970-03-16
DE1949916B2 (de) 1973-08-09
GB1293548A (en) 1972-10-18
JPS518304B1 (de) 1976-03-16
NL6916293A (de) 1970-06-08
FR2025188A1 (de) 1970-09-04
DE1949916A1 (de) 1970-06-18
US3573853A (en) 1971-04-06
CA932870A (en) 1973-08-28

Similar Documents

Publication Publication Date Title
DE1949916C3 (de) Verfahren zum Betrieb einer programmgesteuerten Datenverarbeitungsanlage und Anordnung zur Durchführung des Verfahrens
DE69924857T2 (de) Programm-kode-umwandlung
DE4206062C2 (de) Pipelineverarbeitung von Instruktionen
DE2234867C2 (de) Anordnung in einer Datenverarbeitungsanlage zum Steuern der Verarbeitung zweier voneinander unabhängiger Befehlsfolgen
DE3210816C2 (de)
DE2353258C2 (de) Datenverarbeitungsanlage
DE69727127T2 (de) Verarbeitungsgerät zum lesen von befehlen aus einem speicher
EP0097725B1 (de) Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
DE3638572C2 (de)
DE1949666A1 (de) Adressensteuerung fuer digitale Computer
CH657218A5 (de) Mehrbenuetzer-datenverarbeitungsmaschine mit virtuellem speicher.
DE19527031A1 (de) Verbesserte Vorrichtung zum Reduzieren von Verzögerungen aufgrund von Verzweigungen
DE4237417A1 (de) Speicherprozessor, der eine aggressive Ausführung von Ladebefehlen erlaubt
DE1499722B1 (de) Einrichtung zur modifizierung von informationswoertern
DE2758830A1 (de) Rechenvorrichtung
DE4220698A1 (de) System zur dynamischen verknuepfung modularer abschnitte von computersoftware
DE69816775T2 (de) Vorrichtung zur datenverarbeitung mit stapelstruktur
DE4103093C2 (de) Verfahren zum Steuern eines Datenübertragungs-Pufferspeichers und Computersystem zum Durchführen dieses Verfahrens
DE2927481C2 (de) Datenverarbeitungsvorrichtung
DE19824289A1 (de) Pipelineverarbeitungsmaschine
DE2245284A1 (de) Datenverarbeitungsanlage
DE2108157A1 (de) Datenverarbeitungsanlage mit über lagertem Speicherverkehr
DE2755656A1 (de) Einrichtung zum speicherschutz fuer digitalspeicher
DE2418921A1 (de) Vorrichtung und verfahren zum speichern und ausfuehren von mikroprogrammen in einem datenverarbeitungssystem
CH632349A5 (de) Einrichtung zur mikrobefehlssteuerung.

Legal Events

Date Code Title Description
C3 Grant after two publication steps (3rd publication)
E77 Valid patent as to the heymanns-index 1977
8339 Ceased/non-payment of the annual fee