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 VerfahrensInfo
- 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
Links
- 238000012545 processing Methods 0.000 title claims description 74
- 238000000034 method Methods 0.000 title claims description 21
- 230000015654 memory Effects 0.000 claims description 89
- 238000012546 transfer Methods 0.000 claims description 7
- 230000000903 blocking effect Effects 0.000 claims description 2
- 235000021251 pulses Nutrition 0.000 description 25
- 239000000872 buffer Substances 0.000 description 22
- 230000002093 peripheral effect Effects 0.000 description 20
- 230000008569 process Effects 0.000 description 8
- 239000013598 vector Substances 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000002457 bidirectional effect Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 239000003607 modifier Substances 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 101100022451 Mus musculus Mbnl3 gene Proteins 0.000 description 1
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 1
- 244000046052 Phaseolus vulgaris Species 0.000 description 1
- 230000003796 beauty Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 210000003462 vein Anatomy 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
- G06F9/381—Loop buffering
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- 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,
n„mijch 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;
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-
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 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.
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.
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
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
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
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
Befehls
Befehl
1OE
1OF
1OF
110
111
112
113
114
115
111
112
113
114
115
116
117
117
.VOE .VOF
ΛΊ0 ΛΊ1 JC12
JCl 3 JC14
ΛΊ5 (bedingte Verzweigung
nach 103)
ΛΊ6 ΑΊ7
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)
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
105
104
104
0
104
0
103
103
103
107
0
1
1
1
0
0
17
K07
106
106
106
105
105
0
105
0
104
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)
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.
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)
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)
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 |
-
1968
- 1968-12-04 US US780980A patent/US3573853A/en not_active Expired - Lifetime
-
1969
- 1969-09-30 CA CA063949A patent/CA932870A/en not_active Expired
- 1969-10-03 DE DE1949916A patent/DE1949916C3/de not_active Expired
- 1969-10-14 BE BE740261D patent/BE740261A/xx unknown
- 1969-10-20 GB GB51376/69A patent/GB1293548A/en not_active Expired
- 1969-10-29 NL NL6916293A patent/NL6916293A/xx unknown
- 1969-11-25 JP JP44094582A patent/JPS518304B1/ja active Pending
- 1969-12-02 FR FR6941568A patent/FR2025188A1/fr active Pending
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 |