DE1195074B - Mikroprogramm-Steuerwerk einer programm-gesteuerten Rechenmaschine - Google Patents
Mikroprogramm-Steuerwerk einer programm-gesteuerten RechenmaschineInfo
- Publication number
- DE1195074B DE1195074B DET20653A DET0020653A DE1195074B DE 1195074 B DE1195074 B DE 1195074B DE T20653 A DET20653 A DE T20653A DE T0020653 A DET0020653 A DE T0020653A DE 1195074 B DE1195074 B DE 1195074B
- Authority
- DE
- Germany
- Prior art keywords
- microprogram
- command
- chain
- nanoprogram
- elements
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/22—Microcontrol or microprogram arrangements
- G06F9/223—Execution means for microinstructions irrespective of the microinstruction function, e.g. decoding of microinstructions and nanoinstructions; timing of microinstructions; programmable logic arrays; delays and fan-out problems
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Logic Circuits (AREA)
Description
BUNDESREPUBLIK DEUTSCHLAND
DEUTSCHES
PATENTAMT
AUSLEGESCHRIFT
Int. α.:
G06f
Deutsche Kl.: 42 m -14
Nummer: 1195 074
Aktenzeichen: T 20653 IX c/42 m
Anmeldetag: 25. August 1961
Auslegetag: 16. Juni 1965
Jede digitale programmgesteuerte elektronische Rechenmaschine besitzt mindestens einen Funktionsteil,
der Organisations- oder Rechenoperationen auszuführen vermag (Rechenwerk), einen Funktionsteil,
der Informationen für das Rechenwerk bereithält und aus diesem übernimmt (Ein-, Ausgabewerk bzw.
Speicherwerk), und einen Funktionsteil, der den Verkehr zwischen diesen Werken sowie deren Funktion
selbst steuert (Befehlswerk). Eine zweckmäßige Fortbildung der Rechenmaschine stellt die Einführung
eines Steuerwerkes dar, welches die steuernden Funktionen des Befehlswerkes übernimmt und seinerseits
das Befehlswerk nun als passiven Funktionsteil der Rechenmaschine ebenso behandelt wie alle übrigen
Werke. Dabei werden im Befehlswerk allgemeine Organisationsoperationen und alle Adreßrechnungen
ausgeführt. Die Erfindung bezieht sich auf das Steuerwerk einer digitalen programmgesteuerten Rechenmaschine.
Solchen Steuerwerken werden aus einem Speicherwerk oder einem Eingabe-Ausgabe-Werk
Befehle meist zusammen mit einer oder mehreren Adreßangaben angeboten, die auf Operanden hinweisen.
Im Befehlswerk ist zur Aufnahme dieser meist in elektrisch binärer Form vorgegebenen Befehlszeichen
ein Befehlsregister vorgesehen, das aus bistabilen Registerelementen, beispielsweise Flip-Flops
oder Magnetkernanordnungen mit Rechteckferriten, aufgebaut ist. Wenn ein Befehl ausgeführt ist, dann
veranlaßt ein Schlußzeichen die Übernahme des folgenden Befehls in das Befehlsregister, wobei in
schnellen Rechenmaschinen diese Übernahme bereits während der Ausführung des vorherigen Befehls
vorbereitet wird.
Der Inhalt des Befehlsregisters wird einer zum Steuerwerk gehörigen Entschlüsselungseinrichtung
zugeführt, die eines oder mehrere Operationselemente ansteuert, welche wiederum Elementaroperationen,
wie z.B. die logische Verknüpfung mehrerer Register im Rechenwerk, Informationstransporte od. ä., ermöglichen.
Für viele Rechenmaschinen jedoch genügt diese Decodier- und Wiedercodiereinrichtung, also ein rein
passives logisches Netzwerk, nicht zur Befehlsentschlüsselung. Es ist vielfach erwünscht, durch einen
Befehl mehrere Elementaroperationen auszulösen, die nicht alle gleichzeitig, sondern in einer festgelegten
Aufeinanderfolge ablaufen sollen (z. B. der Befehl »addiere« bedeutet in einer Parallelrechenmaschine
die zyklische Summenbildung der Operanden und gleichzeitig die Übertragsbildung, während
daran anschließend der Übertrag abgebaut wird).
Es ist zu diesem Zweck bekannt, anstatt einer Mikroprogramm-Steuerwerk einer programmgesteuerten
Rechenmaschine
Anmelder:
Telefunken
Telefunken
Patentverwertungsgesellschaft m. b. H.,
Ulm/Donau, Elisabethenstr. 3
Ulm/Donau, Elisabethenstr. 3
Als Erfinder benannt:
Dr. Wolfgang Händler, Hannover;
Dipl.-Ing. Johannes Martin, Essen;
Heinz Voigt, Konstanz;
Roland Maier, Frankfurt/M.;
Otto Müller, York Town Heights, N.Y.
(V. St. Α.);
Dipl.-Ing. Karl Voitel, Backnang
Elementaroperation eine Fortschaltekette anzusteuern, welche durch den Maschinentakt und/oder ihre
eigenen Kettenglieder weitergeschaltet wird, wobei die Elementaroperationen durch die einzelnen Glieder
der Fortschaltekette ausgelöst werden. Ein bekanntes Steuerwerk dieser Art verwendet magnetisch
bistabile Kreise als Glieder der Fortschalteketten und besitzt ebenso viele Fortschalteketten wie Befehle
mit zeitlich aufeinanderfolgenden Elementar-Operationen. Es ist leicht einzusehen, daß ein solches
Steuerwerk besonders in bezug auf geringen Aufwand nicht optimal bemessen ist. Ein anderes System ist
in »Elektronische Rechenanlagen«, 3/1960, S. 177 ff., Abb. 13, beschrieben. Hier wird aus nur zwei Fortschalteketten
gedanklich ein zweidimensionales Koordinatensystem aufgestellt, wobei die gleichzeitig
anzusteuernden Operationselemente in einer weiteren Dimension angeordnet sind und durch je ein Glied
beider Fortschalteketten ausgewählt werden. Diese Anordnung bietet schon eine wesentliche Einsparung
an Fortschalteketten.
Die Erfindung geht somit aus von einem Mikroprogramm-Steuerwerk, das die in einem iV-stelligen
Befehlsregister vorgegebenen Befehle in eine Folge und Kombination von mehreren Elementaroperationen
mit Hilfe von 2" Fortschalteketten auflöst, deren Wirkausgänge die einzelnen Elementaropera-
509 580/323
tionen ansteuern, indem nach Maßgabe des vorliegenden Befehls ein Anfangsglied einer bestimmten
Kette eingeschaltet wird, worauf sich die Kette selbsttätig fortschaltet.
Gemäß der Erfindung wird ein Anfangsglied einer der 2" Fortschalteketten durch einen n-stelligen Teil
des Befehls bestimmt und eingeschaltet, und an jedem Wirkausgang eines jeden Gliedes einer Fortschaltekette
sind mehrere zu verschiedenen Befehlen gehörende Elementaroperationen angeschlossen, von
denen eine oder mehrere durch Entschlüsselung der übrigen N—n Stellen des Befehlsregisters ausgewählt
werden.
Zu diesem Zweck besitzt die Entschlüsselungseinrichtung neben den Fortschalteketten noch mehrere
bistabile Bedingungselemente, wobei eines der 2" möglichen Mikroprogramme ausgewählt wird,
indem das erste Glied einer der 2" Fortschalteketten abhängig von einer ersten Teilgruppe von η binären
Befehlszeichen und eines der mit einer Fortschaltekette verbundenen Mikroprogramme durch eines
oder mehrere Bedingungselemente ausgewählt wird, die abhängig von der zweiten Teilgruppe von N—n
binären Befehlszeichen eingeschaltet werden und während der Ausführung des Befehls eingeschaltet
bleiben.
Im folgenden soll ein erfindungsgemäßes Mikroprogramm-Steuerwerk mit HiKe der Fig. 1 bis 13
beschrieben werden. Es zeigt
Fig. 1 das Prinzipschaltbild einer digitalen programmgesteuerten Rechenmaschine,
Fig. 2 das Prinzipschema eines Steuerwerkes nach
der Erfindung für eine solche Rechenmaschine,
Fig. 3 und 4 bekannte bistabile Elemente, die in einem solchen Steuerwerk verwendet werden können,
F i g. 5 und 6 die symbolische Darstellung der in F i g. 3 und 4 gezeichneten Elemente,
F i g. 7 einen Ausschnitt aus dem Steuerwerk nach F i g. 2 in herkömmlicher Schaltungsdarstellung,
Fig. 8 und 9 zwei erfindungsgemäße Varianten der Entschlüsselungseinrichtung,
Fig. 10 den Zusammenhang zwischen dargestellter
Verknüpfungsschaltung und Schaltelementen,
Fig. 11 einen Ausschnitt aus einer Schaltungsplatte mit bistabilen Elementen,
F i g. 12 eine Erläuterung zu F i g. 13 und
F i g. 13 eine Decodierschaltung, die in bekannter Weise auf einer Kreuzschienenplatte verdrahtet ist.
Besonders vorteilhaft läßt sich ein solches Mikroprogramm-Steuerwerk
dadurch ausbauen, daß gemäß weiterer Erfindung mindestens eine weitere Fortschaltekette,
eine sogenannte Nanoprogrammfortschaltekette, vorgesehen ist, deren Anfangsglied unabhängig
vom Inhalt des Befehlsregisters von einem Glied einer der 2" Mikroprogrammfortschalteketten
angesteuert wird, um häufig verwendete Rechenoder Organisationssubroutinen, sogenannte Nanoprogramme,
auszuführen. Dabei können mit einer Nanoprogrammfortschaltekette mehrere Nanoprogramme
verknüpft sein, wobei zur Auswahl des gewünschten Nanoprogramms ein oder mehrere bistabile
Elemente, sogenannte Nanoprogrammelemente, vorgesehen sind, die von einem Glied der Fortschaltekette
des jeweils übergeordneten Mikroprogramms gesetzt werden und im letzten Schritt des
Nanoprogramms wieder gelöscht werden.
In Fig. 1 sind die wichtigsten Funktionsteile einer betrachteten Rechenmaschine im Prinzip dargestellt.
Ein Befehlswerk 1, ein Rechenwerk 2, ein Speicherwerk 3, ein Werk zur Informationsein- und -ausgabe 4
und ein Steuerwerk 5 arbeiten in bekannter Weise zusammen. Die durch Pfeile angedeuteten Informationswege
sind nicht vollständig und haben nur symbolischen Charakter. Die Bearbeitung und der Transport
eines Wortes (Gruppe von Binärzeichen) erfolgt im angegebenen Beispiel gleichzeitig (parallel).
Das Befehlswerk 1 enthält ein Befehlsregister 6, 7,
Das Befehlswerk 1 enthält ein Befehlsregister 6, 7,
ίο welches aus dem Operationsregister OP (6) und dem
Adreßregister^ (7) besteht. Im OperationsregisterOP
(im vorliegenden Fall mit acht Registerelementen) befindet sich der Operationsteil eines gerade auszuführenden
Befehls in codierter Form, im Adreßregister A die Adresse des Befehls für die Speicheransteuerung.
Weiterhin ist im Befehlswerk 1 ein Befehlszähler BZ (8), der die Adresse kontinuierlich
um 1 erhöht, und ein Register B (9), welches zu Adreßumrechnungen verwendet wird, vorgesehen.
Das Rechenwerk 2 besteht aus drei Registern Λ[ C
(10), HR (11) und MD (12). Im Speicherwerk 3 sind ein Indexspeicher X (14) mit dem zugehörigen Ansteuerregister
AX (13) für Adreßentschlüsselung und dem zugehörigen Speicherregister SRX (15) sowie ein
Speicherblock SP (17) mit Adreßentschlüsselungsregister AR (16) und Speicherregister SR (18) angedeutet.
Über das Eingabe-Ausgabe-Werk 4 werden Informationen in die Maschine gegeben bzw. aus der
Maschine entnommen.
Der in der Erfindung beschriebene Funktionsteil ist das Mikroprogrammsteuerwerk 5 mit den Entschlüsselungseinrichtungen
19, 20 und 21, einem Operationselement LA (23) und dem eigentlichen die Fortschalteketten und Bedingungselemente enthaltenden
Steuerteil MPS (22), welches den zeitlichen Ablauf aller Befehle steuert. Über die Anschlußklemme
24 wird beim Start der Rechenmaschine gleichzeitig mit dem Eingabe-Ausgabe-Werk 4 das Operationselement 23 angesteuert, welches das Mikroprogramm-
Steuerwerk 5 in Funktion setzt.
Ein Verteilerregister VR (25) dient dem Informationsfluß zwischen den einzelnen Werken und der
kurzzeitigen Zwischenspeicherung von Informationen. Das Befehlsregister 6, 7 besitzt die gleiche Kapazität
wie die Rechenwerksregister 10,11,12, das Speicherregister
18 und das Verteilerregister 25.
Die betrachtete Rechenmaschine vermöge 2N verschiedene
Befehle oder Mikroprogramme auszuführen. Zu deren Kennzeichnung sind daher N Binärstellen
im Befehlsteil des Befehlsregisters vorgesehen. Im ausgeführten Beispiel beträgt N = 8. In Fig. 2 ist
das Befehlsregister 6, 7 aus F i g. 1 in drei Kästen 31, 32 und 7 eingeteilt gezeichnet, von denen 31 und 32
den Befehlsteil OP und 7 den Adreßteil A darstellen sollen. Die in Fig. 1 und 2 gleichen Einheiten sind
mit gleichen Nummern bezeichnet. Die Anzahl und Länge der Adressen ist für die vorliegende Aufgabe
ohne Bedeutung, so daß im folgenden auf den Adreßteil nicht mehr eingegangen zu werden braucht. Der
8stellige Befehlsteil ist wiederum unterteilt in eine erste Teilgruppe 1 von, im allgemeinen n, in ausgeführten
Beispiel η = 3 Befehlszeichen und eine zweite Teilgruppe 2 mit den restlichen Befehlszeichen. Entsprechend dieser Einteilung sind zwei
Einrichtungen 19 und 20 zur Decodierung »1 aus 23« und »1 aus 28-3« vorgesehen, so daß eine von 2S
Fortschalteketten 6 und eines von 28-3 Bedingungselementen? durch jeden Befehl eingeschaltet werden.
Jede Fortschaltekette S0 besteht in der Figur aus
drei Kettengliedern LSal, LSa2, LS03, doch ist diese
Zahl nur beispielhaft, und sie wird in der Praxis meist größer sein. Die einzelnen Glieder einer Kette
sind vorteilhaft nicht starr miteinander verbunden, sondern werden in programmabhängiger Folge weitergeschaltet.
Auf die praktische Ausführung solcher Ketten wird später noch eingegangen. Die Einrichtung
19 wählt auf Grund der ersten Teilgruppe 31 der Befehlszeichen eine der 23 Fortschalteketten an
bzw. ein bevorzugtes Glied aus einer Kette. Dieses (und jedes andere) Kettenglied vermag mehrere Operationselemente
anzusteuern, die wiederum die Operationen ermöglichen. In der F i g. 2 sind mehrere
Operationselemente, die innerhalb eines Mikroprogramms gleichzeitig eingeschaltet werden sollen, mit
einem Kreispunkt 38 symbolisiert. Aus solchen kleinen Kreisen ist ein räumliches Netzwerk gedanklich
aufgebaut, wobei eine der 23 parallel zur Zeichenfläche liegenden Ebenen durch die Einrichtung 19
bzw. das erste Glied einer Zeitschaltekette ausgewählt wird, während die 28"3 Bedingungselemente
37 eine Spalte und die jeweilige Stellung der Fortschaltekette eine Zeile ansteuern. In einer senkrechten
Spalte einer Ebene ist also genau ein Mikroprogramm verdrahtet, das durch ein Bedingungselement
37, z. B. Rb 2, und eine Fortschaltekette, z. B. S1, bestimmt
ist. In diesem beispielhaften Mikroprogramm sind drei verschiedene Stationen mit jeweils mehreren
Elementaroperationen möglich: O112, O122 und O132.
Schon an diesem Prinzipschema lassen sich wichtige Merkmale der Erfindung zeigen: Jedes Mikroprogramm
besitzt in einer Ebene genau eine Spalte, d. h., es ist fest mit einer Fortschaltekette und mit
einem Bedingungselement verknüpft; die Fortschaltung innerhalb eines Mikroprogramms geschieht mittels
nur einer Fortschaltekette; dabei sind wesentlich weniger Fortschalteketten als mögliche Befehle vorgesehen;
den Fortschalteketten 36 und den Bedingungselementen 37 sind je bestimmte Gruppen von
Befehlszeichen zugeordnet, so daß mehrere Mikroprogramme, die nach irgendwelchen Gesichtspunkten
zu Gruppen zusammengefaßt werden sollen, von einem Bedingungselement oder von einer Kette angesteuert
werden und deshalb ähnlichen Befehlscode besitzen.
In den Fig. 3 und 4 sind zwei Arten von bistabilen Elementen dargestellt, die für eine bevorzugte technische
Ausführungsform des in Fig. 2 dargestellten Prinzips verwendet werden können. F i g. 3 zeigt ein
bekanntes bistabiles Element mit den Transistoren 9 und 10 in Eccles-Jordan-Schaltung. Die Schaltung
besitzt zwei Informationseingänge E' und Έ', einen
Takteingang T und zwei Informationsausgänge E und Έ sowie zwei Vorspeicherkondensatoren 11 und
12, deren von der Eingangsinformation abhängige Ladung durch den Taktimpuls abgefragt wird. Liegt
zu einem Zeitpunkt am Eingang E' ein der logischen EINS entsprechender Eingangsimpuls, so wird das
bistabile Element mit dem nächsten Taktimpuls in die EINS-Lage gebracht, so daß am Ausgang E eine
der logischen EINS entsprechende Spannung und am Ausgang Έ eine NULL-Spannung liegen. Diese Stellung
sei durch positiveres Potential des Ausgangs E gegenüber Έ definiert. Der Taktimpuls allein vermag
das Element nicht zu verändern. In Fig. 4 ist ein ähnliches bekanntes bistabiles Element dargestellt
mit nur einem Eingang E' und einem Ausgang E für Informationen sowie einem Takteingang T und Vorspeicherkondensatoren
13 und 13 a. Am Ausgang E erscheint nur dann eine EINS-Spannung, wenn der
Kondensator 13 durch den Eingang E' aufgeladen ist und ein Taktimpuls anliegt. Liegt nur der (obligatorische)
Taktimpuls an, dann wird über einen Kondensator 13 α und den Emitter eines Transistors des
bistabilen Kreises das Element wieder auf NULL gestellt (wobei als EINS-Spannung jeweils die positivere
Spannung als vereinbart gelten soll).
Diese kurze Beschreibung der Elemente genüge in Anbetracht dessen, daß sie nicht Gegenstand der
Erfindung und allgemein bekannt sind. Im folgenden wird das Element nach Art der F i g. 3 als Registerelement
R und das Element in F i g. 4 als Leistungselement L bezeichnet; ersteres wird in den folgenden
Fig. 7 bis 11 als Quadrat mit vier Anschlüssen symbolisiert (Fig. 5), während das Leistungselement
durch ein Rechteck mit zwei Anschlüssen angedeutet ist (Fig. 6).
Diese Elemente bilden in vielfältiger Kombination mit Widerständen und Dioden unter Benutzung der
Diodenlogik das in Fig. 2 angedeutete Steuerwerk, von dem in Fig. 7 ein Ausschnitt praktisch ausgeführt
ist. Die Darstellung ist beschränkt auf eine Ebene, d. h. eine Fortschaltekette S1, bzw. sogar auf
nur ein Mikroprogramm, das von dem Bedingungselement Rb 2 angesteuert wird. Die drei Gitterpunkte
aus der F i g. 2 O112, Oi22, O132 entsprechen der in
F i g.7 dargestellten Schaltung.
Die erste Teilgruppe von Befehlszeichen wählt über die Decodierschaltung 19 das erste Leistungselement LS11 der ersten Fortschaltekette aus. Mit
dessen Ausgang sind zwei Konjunktionswiderstände 44 und 45 verbunden, die je zum Konjunktionspunkt
einer bekannten Und-Schaltung führen. Die zugehörigen Dioden hängen teils an dem Bedingungselement
Rb 2, teils sind sie zur Erfüllung von Zusatzbedingungen (abhängig von einem früheren Programm,
von der Stellung der Rechenregister oder ähnlichen) vorgesehen, deren Anschlüsse mit 56 und 57 bezeichnet
sind. Den Ausgang der Und-Schaltung bildet der Konjunktionspunkt selbst, welcher wiederum
als Eingang einer nachfolgenden Oder-Schaltung wirkt (deren Arbeitswiderstand in der Eingangsschaltung
der nachfolgenden bistabilen Elemente liegt). Die erste Verknüpfungsschaltung (mit dem
Widerstand 44) schaltet dann, wenn sowohl LSn und
Rb 2 als auch die Zusatzbedingung 56 positives Ausgangspotential besitzen, das zweite Element der
Fortschaltekette LS12 und ein Operationselement 46
ein, während bei Erfüllung der anderen Zusatzbedingung (Klemme 57 positiv) die zweite Verknüpfungsschaltung
(mit dem Widerstand 45) aktiviert wird und kein Operationselement, sondern nur unter
Überspringen von LS12 das dritte Glied LS13 eingeschaltet
wird.
Das kurze beispielhafte Programm wird im ersten Fall fortgesetzt, indem mit dem folgenden Taktimpuls
das zweite Glied LS12 der Fortschaltekette auf
EIN kippt, während nach Konvention das erste Glied durch den Takt gelöscht wird. In diesem Schritt werden
zwei weitere Operationselemente 47 und 48 ohne Zusatzbedingung eingeschaltet und das dritte Glied
der Fortschaltekette vorbereitet, das gegebenenfalls schon vorher von LS11 über Widerstand 45 angesteuert
wurde. Im dritten Schritt sind wieder zwei Möglichkeiten vorgesehen (bedingte Operation),' wobei
ein Registerelement 49 das Programm variiert. Nach zweimaligem Durchlauf der Kette solle das Mikroprogramm
beendet sein und ein Schlußzeichen SO gesetzt werden. Bei Beginn des Programms stehe das
Element 49 auf NULL; dann wird die Konjunktion mit dem Widerstand 51 eingeschaltet, nicht jedoch
die mit dem Widerstand 52. Es wird ein Operationselement 53 und das Element 49 vorbereitet und der
Rücksprung nach dem ersten Glied LSn der Fortschaltekette
durchgeführt. Daraufhin beginnt das beschriebene Programm von neuem, nur daß nun zum
Schluß nicht das Operationselement 53, sondern zwei andere Operationselemente 54 und 55 sowie das
Schlußzeichen 50 gesetzt werden, da das Element 49 auf EIN steht.
Das soweit beschriebene Steuerwerk läßt sich weitgehend variieren, wobei eine vorteilhafte Änderung
angeführt sei: Von den 28 Mikroprogrammen ähneln sich manche Programme (z. B. die Addition, Subtraktion,
Betragsaddition, Betragssubtraktion). Zur weitgehenden Zusammenlegung solcher Programme
wird das eingangs geschilderte Prinzip verlassen und die zweite Teilgruppe von Befehlszeichen, die bisher
eines der Bedingungselemente 37 bestimmte, nochmals geteilt. Ein oder zwei (allgemein m) Befehlszeichen werden abgezweigt und bilden bzw. steuern
sogenannte Modifikationselemente an, die Zusatzbedingungen in der in F i g. 7 beschriebenen Art darstellen
(Klemmen 56 und 57). Durch diese Modifikationselemente werden mehrere an einer Fortschaltekette
und einem Bedingungselement liegende ähnliche Mikroprogramme in den abweichenden Programmteilen
voneinander unterschieden, so daß die Modifikationselemente also auch nur in solchen unterschiedlichen
Teilen abgefragt werden. Aus Gründen der Übersichtlichkeit ist es erstrebenswert, daß alle
Fortschalteketten gleiche Anzahl von Gliedern besitzen. Manche Mikroprogramme jedoch überschreiten
das Fassungsvermögen einer Kette, so daß in solch einem Fall im letzten Schritt der ersten Kette
das von der Entschlüsselung gesetzte Bedingungselement gelöscht und dafür ein Registerelement als
Kettenverlängerungselement eingeschaltet wird und eine Verlängerungskette sowie ein weiteres Bedingungselement
angesteuert werden. Das Kettenverlängerungselement wirkt als Zusatzbedingung im Sinne
des Anschlusses 56 in F i g. 7 bei allen Schritten der
folgenden Kette und muß am Schluß des Programms gelöscht werden. Die Verlängerungskette kann eine
beliebige andere oder auch dieselbe Fortschaltekette sein; das Befehlsregister wird bei dieser Verlängerung
nicht geändert.
Man braucht dann also zusätzlich zu den 2N-" von
der Entschlüsselung gesetzten Bedingungselementen noch die Kettenverlängerungselemente, die selbstverständlich
von allen Ketten benutzt werden können.
Besonders vorteilhaft zeigt sich das erfindungsgemäße Steuerwerk bei der Verarbeitung von häufig
auftretenden Subroutinen, sogenannten Nanoprogrammen. Solche Programmteile, die nicht selbständige
Befehele sind, werden gemäß weiterer Erfindung auf eine oder einige zusätzliche Fortschalteketten gelegt,
die nicht über die Befehlsentschlüsselung ansteuerbar sind.
F i g. 8 zeigt in üblicher logischer Darstellung einen Mikroprogrammausschnitt, in dem einNanoprogramm
benutzt wird. Die Glieder einer Nanoprogrammkette, die nicht vom Befehlsregister direkt ansteuerbar sind,
werden mit LNS1 bis LMS4 bezeichnet. LSn sind die
Glieder einer normalen Fortschaltekette, LO sind Operationselemente, und Rb ist eines der Bedingungselemente 37. Es befindet sich zum interessierenden
Zeitpunkt zusammen mit dem Glied 58 der normalen Fortschaltekette im EIN-Zustand. An Stelle eines
Operationselements wird das Glied LNS1 einer Nanoprogrammfortschaltekette
angesteuert und zur Unterscheidung mehrerer Nanoprogramme auf einer Nanoprogrammfortschaltekette
(analog dem Bedingungselement im Mikroprogramm) ein Registerelement 59 als Nanoprogrammelement gesetzt. Daraufhin läuft
ein Nanoprogramm ab mit allen Möglichkeiten, die vom Mikroprogramm her bereits bekannt sind. Im
gezeichneten Beispiel ist ein bedingter Sprung LMS1 ... LNS3 vorgesehen, dessen Bedingung etwa vom
übergeordneten Mikroprogramm gestellt wurde; abhängig davon wird nacheinander entweder LNS1,
LNS2 oder LNS1, LNS3, LNS1 eingeschaltet. Mit dem
letzten Schritt wird das Element 59 wieder gelöscht, so daß im Mikroprogramm fortgefahren werden kann.
Da mehrere Mikroprogramme ein Nanoprogramm benutzen können, muß die Rückkehr vom Nanoprogramm
in das richtige Mikroprogramm organisiert sein. Das könnte z. B. so geschehen, daß jedes dieser
Mikroprogramme beim Sprung in das Nanoprogramm eine bestimmte Anzahl dafür vorgesehener
Registerelemente charakteristisch setzt und daß das Nanoprogramm in seinem letzten Schritt in Abhängigkeit
dieser Registerelemente nur das Mikroprogramm einschaltet (durch Setzen eines bestimmten
Gliedes seiner Zeitschaltkette und seines Bedingungselementes), aus dem der Sprung in das Nanoprogramm
erfolgte.
Das erfordert
1. die Registerelemente selbst,
2. das jeweils charakteristische Setzen dieser Registerelemente von allen in Frage kommenden
Mikroprogrammen,
3. den komplizierten Entschlüsselungsrücksprung vom Nanoprogramm.
Eine erfindungsgemäße Vereinfachung dieses Rücksprunges besteht darin, daß das übergeordnete
Mikroprogramm gleichzeitig mit seinem Sprung in das Nanoprogramm z. B. auf das nächste Glied der
Kette 60 seiner Fortschaltekette springt und dort während des Ablaufs des Nanoprogramms dieses
Glied so lange ansteuert, wie das Nanoprogrammelement 59 gesetzt ist, und daß die Operation, die mit
dem Glied 60 verbunden ist, erst wirksam wird, wenn das Nanoprogramm im letzten Schritt sein Nanoprogrammelement
59 gelöscht hat. Dann braucht das Nanoprogramm nach Ablauf nur sein Nanoprogrammelement
zu löschen, denn es wird nur dasjenige übergeordnete Mikroprogramm fortgesetzt, das gewartet
hatte.
Unter gewissen Voraussetzungen, die später noch erläutert werden, können, wenn Simultanbetrieb mehrerer
Werke der Maschinen möglich ist, Nanoprogramm und Mikroprogramm gleichzeitig weiterlaufen.
Der Wartetakt kann in diesem Fall auf einem späteren Glied der Mikroprogrammfortschaltekette liegen.
Ein weiterer erfindungsgemäßer Rücksprung besteht darin, daß das Nanoprogramm in seinem letzten
Schritt das übergeordnete Mikroprogramm durch er-
ίο
gungen für die Weiterarbeit erfüllt sind. Diese Bedingungen bilden im vorliegenden Beispiel etwa das
fehlende Schlußzeichen des Vorrangprogramms oder die »Aus«-Stellung des Simultanelements.
Die nächste zu erläuternde Erweiterung des erfindungsgemäßen
Steuerwerkes betrifft die Anwendung eines Mikroprogramms als Nanoprogramm. Unter
Mikroprogramm wurde bisher eine Folge von Elementaroperationen verstanden, deren erste durch
rere Mikroprogramme.
Will man ein Mikroprogramm als Nanoprogramm betreiben (z. B. das Mikroprogramm Addition im
neute Entschlüsselung dessen noch im Befehlsregister stehenden Operationscodes ansteuert.
In F i g. 9 ist eine Anordnung mit ähnlicher Funktion wie in F i g. 8 dargestellt, die jedoch auf die Glieder
der Nanoprogrammkette verzichtet. Denn da sowohl Operationselemente als auch die Glieder der
Ketten aus Leistungselementen nach der F i g. 3 aufgebaut sein können, lassen sich letztere durch Operationselemente ersetzen. Eine eindeutige Operationsfolge läßt sich jedoch nur erzielen, wenn die der Fort- io Entschlüsselung des Befehlsteils des Befehlsregisters schaltung dienenden Operationselemente alle von- auf ein erstes Glied einer Fortschaltekette angesteuert einander und auch von den übrigen Operationsele- wird. Diese Definition muß für den vorliegenden menten des Nanoprogramms verschieden sind, was Betriebsfall dahingehend präzisiert werden, daß ein oft bei einfachen Programmen zutrifft. Mikroprogramm vom Befehlsregister aus angestoßen
Ketten aus Leistungselementen nach der F i g. 3 aufgebaut sein können, lassen sich letztere durch Operationselemente ersetzen. Eine eindeutige Operationsfolge läßt sich jedoch nur erzielen, wenn die der Fort- io Entschlüsselung des Befehlsteils des Befehlsregisters schaltung dienenden Operationselemente alle von- auf ein erstes Glied einer Fortschaltekette angesteuert einander und auch von den übrigen Operationsele- wird. Diese Definition muß für den vorliegenden menten des Nanoprogramms verschieden sind, was Betriebsfall dahingehend präzisiert werden, daß ein oft bei einfachen Programmen zutrifft. Mikroprogramm vom Befehlsregister aus angestoßen
Das erfindungsgemäße Steuerwerk eignet sich auch 15 werden kann, während ein Nanoprogramm von einem
gut für schnelle Rechner mit Simultanarbeit. Solche anderen Mikro- oder Nanoprogramm angesteuert
Rechenmaschinen besitzen mehrere Werke zur Bear- werden muß. In diesem Sinne sind auch die Begriffe
beitung der Informationen, beispielsweis mehrere »Befehl« und Mikroprogramm zu unterscheiden:
Rechenwerke oder ein Rechenwerk und ein Speicher- Jedes Mikroprogramm führt eventuell zusammen mit
werk. Zur Beschleunigung der Informationsverarbei- 20 Nanoprogrammen genau einen einfachen Befehl aus,
tung ist es erwünscht, daß mehrere Werke gleichzeitig aber komplizierte Befehle benutzen bei Bedarf meharbeiten.
Man unterscheidet gemäß der Erfindung zu diesem Zweck Mikroprogramme nach dem Werk bzw. den
Werken, die sie benutzen. In einem weiter unten aus- 25 Rahmen eines Mikroprogramms Vektoraddition),
geführten Beispiel wird zwischen Mikroprogrammen dann muß für einen sinnvollen Übergang zu Beginn
unterschieden, die nur im Befehlswerk und im Spei- und am Ende des untergeordneten Mikroprogramms
cherwerk behandelt werden (z. B. Sprungbefehle, Be- gesorgt werden. Soll ein Mikroprogramm untergeordfehle
für Adreßrechnungen, Ersetzbefehle, Wort- net angesteuert werden, dann werden vom übergeordgruppentransportbefehle
innerhalb des Speichers), 30 neten Programm das erste Glied der neuen Fort- und den übrigen Mikroprogrammen, die im Rechen- schaltekette, das Bedingungselement und die Modinwerk
behandelt werden. Gemäß der Erfindung legt kationselemente eingeschaltet, während das Bedinman
die erste Art von Mikroprogrammen ausschließ- gungselement und die Modifikationselemente für das
lieh auf eine oder zwei Fortschalteketten, so daß im übergeordnete Programm gelöscht werden. Schließletzteren
Falle die ersten (n—l) Befehlszeichen be- 35 lieh muß noch ein neues Registerelement, das Blokreits
über die Art des Befehls Auskunft geben. Wei- kierelement, eingeschaltet werden, um zu verhindern,
ter sind die Bedingungselemente 37 und die Modifi- daß ein neuer Befehl mit dem Schlußzeichen des
kationselemente zweifach vorgesehen, wobei die erste untergeordneten Programms in das Befehlsregister
Gruppe nur auf Fortschalteketten einwirkt, die die (in dem ja noch der übergeordnete Befehl steht!) geunabhängig
arbeitenden Mikroprogramme trägt, 40 holt wird. Erscheint dieses Schlußzeichen, so wird
während die andere Gruppe mit den übrigen Ketten das Befehlsregister wieder auf Fortschaltekette, Bezusammenwirkt.
Wurde also ein Mikroprogramm der ersten Art begonnen, so wird der nächstfolgende Befehl in das
Befehlsregister übernommen, und es wird geprüft, ob er Simultanarbeit gestattet. Ist dies der Fall, dann
wird ein Registerelement zur Simultananzeige automatisch eingeschaltet und der zweite Befehl teils auf
die Fortschaltekette, teils auf die entsprechende
Gruppe von Bedingungselementen und Modifika- 50 erster sich mit der Organisationsphase des Befehlstionselementen
entschlüsselt, wobei sich die Wahl der zyklus und deren zweiter sich mit dem gewählten
Gruppe aus den ersten Befehlszeichen ergibt. Nun Befehl befaßt.
arbeiten zwei Fortschalteketten gleichzeitig an ver- Unter Befehlszyklus oder Organisationsphase sind
schiedenen Programmen. die Mikrooperationen zu verstehen, die jede Befehls-
Es ist auch vorteilhaft, Mikroprogramme auf eine 55 ausführung einleiten (hole den nächsten Befehl aus
besondere Fortschaltekette zu ordnen, die nur zu Be- dem Speicher; modifiziere ihn, wenn nötig; hole die
dingungs- und Modifikationselemente entschlüsselt, das Blockierelement gelöscht und im übergeordneten
Programm weitergefahren.
Abschließend soll die Realisierung einer Befehlsausführung in technische Einzelheiten erläutert werden,
wobei der gewählte Befehl zahlreiche Merkmale der Erfindung in sich vereinigt.
Die Beschreibung gliedert sich in zwei Teile, deren
ginn mehrere Werke benutzen und dann in einem unabhängigen Werk weiterarbeiten, oder solche, die
zu Beginn ein unabhängiges Werk benutzen und später Simultanbetrieb nicht mehr erlauben. In solchen
Fällen schiebt man einen Wartetakt ein und löscht bzw. setzt das Simultanelement, wenn die Simultanarbeit
enden muß oder beginnen kann. Bei diesem Betriebsfall muß jedoch dafür gesorgt werden, daß
Operanden; schalte die Fortschaltekette, das Bedingungselement und das Modifikationselement ein;
überwache einen eventuellen Simultanbetrieb).
Diese Organisationsphase ist vorteilhaft für alle Befehle gemeinsam nur einmal in Form eines Abrufprogramms
realisiert. Im Rahmen der obigen Definitionen der Begriffe Mikroprogramm und Nanoprogramm
ist die Organisationsphase zu letzteren zu
mit der Löschung des Simultanelements eines der 65 rechnen, da sie keinem selbständigen Befehl zuzuordbeiden
laufenden Programme den Vorrang erhält, nen ist. Systematisch betrachtet liegt sie zwar wegen
während der andere in einen Wartetakt mündet, der ihrer Sonderstellung außerhalb beider Begriffe; sie
so lange angesteuert wird, bis irgendwelche Bedin- läßt sich aber mit denselben Mitteln (Operationsele-
509 580/323
mente, Fortschaltekette usw.) verwirklichen und beschreiben wie die normalen Programme.
Für die folgenden Programme (Abrufprogramm, beispielhafter Befehl) wird eine übersichtlichere Darstellungsweise
als bisher benutzt, die auch bei langen und komplizierten Programmen in der Praxis verwendet
wird, nämlich die schaltalgebraische Darstellung.
F i g. 10 zeigt an einer einfachen logischen Schaltung
die Analogie zur Schaltalgebra. Ein Leistungselement liegt mit seinem Ausgang am Anschluß L,
der über Widerstände R (Konjunktionswiderstände) mit Konjunktionspunkten verbunden ist. An Konjunktionsdioden
D1, D2, D3, D4, D5 liegen die Ausgänge
a, b, c, d, e von Registerelementen, und an Disjunktionsdioden D6 und D1 liegt der Eingang x' eines
weiteren Elements (Register- oder Leistungselement). Die Dioden D1 bis D3 und D4 bis D5 bilden je eine
Konjunktion und sind über Disjunktionen D6 und D7
(deren Disjunktionswiderstände im Eingangskreis der bistabilen Elemente liegen) zusammengefaßt. Sie wirken
auf die Eingänge der bistabilen Elemente (x' in F i g. 10). Statt eine solche logische Funktion durch
die bekannten Schaltsymbole (F i g. 10) darzustellen, wird sie im folgenden auch schaltalgebraisch angeführt:
x' = Labe ν Lde. Eine Konjunktion wird dabei
durch ein Malzeichen (Punkt) zwischen den die Elementausgänge darstellenden Zeichen angedeutet,
wobei der Punkt in eindeutigen Fällen auch weggelassen wird. Eine Disjunktion wird durch das Oder-Zeichen
ν zwischen den entsprechenden Schaltzeichensymbolen dargestellt.
Zweckmäßigerweise führt man die Verdrahtung einer programmgesteuerten parallelen Rechenmaschine
auf sogenannten Kreuzschienenplatten aus, um beispielsweise einen systematischen Aufbau zu erhalten.
Die Kreuzschienenplatten sind beidseitig mit Scharen paralleler Leiter bedruckte Isolierplatten.
Beide Leiterscharen stehen senkrecht aufeinander, und nur eine Leiterschar ist über Anschlüsse nach
außen geführt. Die Kreuzschienenplatten werden mit den Schaltmitteln (Widerstände und Dioden) bestückt
und mit Platten, auf denen sich die zugehörigen Schaltelemente befinden, derart verbunden, daß
gleichnamige Anschlüsse auf verschiedenen Kreuzschienenplatten und Elementplatten miteinander verbunden
werden. Erscheint also auf einer Kreuzschienenplatte der Anschluß S1, so wird der Ausgang
des auf einer Elementplatte befindlichen Leistungselements LS1 mit diesem Anschluß verbunden.
Bei der Darstellung der Schaltelemente für die Mikroprogramme auf Kreuzschienenplatten werden
die in Fi g. 12 gezeichneten Symbole benutzt. Ein Kreuzungspunkt zweier Leiter ohne Kennzeichnung
bedeutet, daß die Leiter an dieser Stelle nicht verbunden sind. Ein Kreuzungspunkt mit einem Schrägstrich
symbolisiert einen Richtleiter als Verbindung zwischen den Leitern, derart geschaltet, daß die
Kathode des Richtleiters mit der zu den Elementanschlüssen führenden Leitung verbunden ist. Ein
Punkt bedeutet schließlich einen Widerstand als Verbindungselement.
Die zur Realisierung der Programme benötigten bistabilen Elemente sind in Fig. 11 dargestellt. Sie
können konstruktiv beliebig auf Druckschaltungsplatten zusammengefaßt sein.
Im Befehlswerk 1 der Rechenmaschine befinden sich unter anderem folgende für die Darstellung der
Erfindung notwendigen Elemente: Ro1... Ro9 sind
sechs der im Befehlsregister 6 enthaltenen bistabilen Elemente, Ra1 ist ein Element des Adreßteils 7, Rrw,
Rbw, Rs, Rx, Re, Rra, Rrb, Rrc, Rrd, Rr3, Rr, und
Rr1 sind Registerelemente für noch zu beschreibende
spezielle Funktionen. Die Registerelemente Rb1 K...
Rb8R und RblB.. .RbsB sind die beschriebenen
beiden Gruppen von Bedingungselementen zur Auswahl einzelner Mikroprogramme. LS0 Λ... LS71 bil-
den die jeweils ersten Glieder der acht Mikroprogrammfortschalteketten.
LS42, LS52 und LS53 sind
weitere Glieder von Mikroprogrammfortschalteketten. LNS1... LAZS4 sind die Glieder einer Nanoprogrammkette,
von der auch das Abrufprogramm zusammen mit dem Nanoprogrammelement RaB angesteuert
wird.
Darüber hinaus sind noch zahlreiche Operationselemente vorgesehen, die von den Fortschalteketten
angesteuert werden und selbst in bekannter Weise
ao Operationen im Rechenwerk oder im Befehlswerk verursachen:
LS1, bedingt Befehlsvorentschlüsselung zur Moag
difizierung des Abrufprogramms;
LE bedingt die Entschlüsselung des im Befehlsregister
stehenden Operationscodes auf Fortschalteketten und Bedingungselemente;
LA2 bedingt Transport des Befehlszählerstandes
in den Adreßteil des Befehlsregisters;
LAp bedingt einen Sprung in das Abruf programm;
LZ+1 erhöht den Befehlszählerstand;
LPa regt einen Speicherzyklus an (wobei die Registerelemente
Rs, Rx und Rrs die Unterscheidung zwischen Hauptspeicher und
Indexspeicher bzw. zwischen Lesen und Schreiben besorgen);
LV8 transportiert den Inhalt des Speicherregisters
18 in das Verteilerregister 25;
+5 LAx, bringt den Verteilerregisterinhalt nach dem
Befehlsregister;
LRx, stellt eine Operation des abschließenden
Gemischtprogramms dar; da nicht dieses Programm, sondern die Ablauforganisation
bzw. Programmanschlußtechnik Gegenstand dieser Erörterung ist, werden die weiteren
Operationen dieses Programms ebenfalls nur allgemein angedeutet;
LO1 ... LO4, LMx, sind weitere solche Operationen;
LAß bedingt den Transport vom Register 9 in den Adreßteil 7 des Befehlsregisters;
LBA bedingt den entgegengesetzten Transport;
LA + 2 erhöht den Inhalt des Adreßteils 7 um »Zwei«.
LA + 2 erhöht den Inhalt des Adreßteils 7 um »Zwei«.
Die F i g. 13 enthält auf einer Kreuzschienenplatte die logische Verknüpfung für Vor- und Hauptentschlüsselung
in disjunktiver Normalform.
S' = Βν·Ο3;
X' = B9-O5O6;
e' = Bv-V1;
13
Si1 = E-V1V2O3; SL = E-V1O2V3; Si1=E-O1O2O3; SU = E-O1O2O3; Sl1 = E-O1O2O3; SL = E-O1O2O3; Sl1=E-O1O2O3;
Si1 = E-V1V2O3; SL = E-V1O2V3; Si1=E-O1O2O3; SU = E-O1O2O3; Sl1 = E-O1O2O3; SL = E-O1O2O3; Sl1=E-O1O2O3;
υ? -^r91-VJ)5V6;
Kr = E
Kr =E-rw
Kr = E-rw
Kr = E-r9i
Kr = E-rm
-VJ)5O1.
■ν,ο,ο,
-OJ)5V6
Kr = E-rw-OJ)5O6
%R = E-rn
Kx = E-rw
Kb = E-T9,
Kb = E-T9,
-O1O5V6
·σ4σ5ο6;
Kb = E-T9,-ViO5O^
Kb = E-T9, -OJ)5O6;
Kb = E-rw-OiO5V6;
Kb = E-T9,-OiO5O6.
In Tabelle 1 ist diese Verdrahtung in schaltalgebraischer Form wiedergegeben. Wird das Leistungselement LB9 eingeschaltet, dann verursacht es abhängig
vom Befehlscode, daß die Elemente Rr9, bzw.
Rb9, eingeschaltet werden, je nachdem, ob der im
Befehlsregister stehende Befehl das Rechenwerk (rw'), das Befehlswerk (bw') oder beide benutzt (rw',
bw'). Weiter setzt es das Element Rs oder das Element
Rx, wenn der Operand für den Befehl aus dem Hauptspeicher oder dem Indexspeicher geholt werden
soll. Schließlich wird noch das Element Re gesetzt, wenn der vorliegende Befehl eine Adreßersetzung
vorsieht. Außerdem enthält die Tabelle 1 die Verdrahtung der Entschlüsselung auf Fortschaltketten
und Bedingungselemente. Sie wird durch das Leistungselement LE verursacht.
Die in Tabelle 1 angegebenen Funktionen stellen Operationen dar, die von den Operationselementen
LB9 bzw. LE angesteuert werden. Im folgenden wird
diese Ebene der Darstellung wieder verlassen und nur auf die Ansteuerung der Operationselemente eingegangen,
während deren Wirkung als bekannt vorausgesetzt wird. Zugleich wird auch die explizite
Darstellung der logischen Funktion auf Kreuzschienenplatten wieder verlassen, da sich nach dem
bisher Gesagten ohne weiteres aus der schaltalgebraischen Darstellung die technische Ausführung entnehmen
läßt.
LAP
LA2
LPa
LVS
LNS1
LNS2
LNS3
Al, a'B = Ap ra ; NSi, aB = Ap re ;
JVS3', cig = A„ rd ;
yi ρ' <,' -z' r<
A π ■
V. = PaU3S; P'a =PaaBS;
NSi, K = Vs ■ aB ■ rb; NSi =VraBfb;
NSi, Bl, J'K, K, e',7i = NS1 - aB;
r'b = NS2 - aB ■ e; P'a = NS2 aB;
NSi = NS3 - aB ■ r„Tf ;
Si, Mb, bo3, K3, Kb, Kb, Kb,
Ti' h' —
NSi, biR, b2R, b3R, biR,
KR, Kr = NS3 aBrwrf;
, bSR,
LNS,: A'pr'a = NS, aBK; ä'B, E' = NS, aB
In Tabelle 2 ist das zentrale Abrufprogramm dargestellt, welches jedem Programm vorausgeht. Seine
Funktion ist folgendermaßen:
Das Leistungselement LA1, wird beispielsweise zu-
sammen mit einem der Programmelemente Rra, Rrc,
Rrd vom Ende eines Mikroprogramms angesteuert. Es sorgt zusammen mit dem Element Rra im ersten
Takt des Abrufprogramms dafür, daß das Nanoprogrammelement RaB der Abrufphase gesetzt wird.
Gleichzeitig wird der Befehlszählerinhalt in den Adreßteil 7 gebracht (A2'). Im nächsten Takt ist LA2
eingeschaltet und wirkt zugleich als Glied dieser Fortschaltekette; es verursacht die Erhöhung des
Befehlszählerstands (Z+ ij und die Ansteuerung des
Hauptspeicherzyklus »Lesen« (P/, /, rs'). Im nächsten
Takt wirkt LPa als Fortschalteglied und sorgt
für einen Wartetakt, wenn der Speicherzyklus noch nicht abgelaufen ist (s). Ist die Information dann im
Speicherregister verfügbar (5), dann wird sie in das Verteilerregister gebracht (V3'). Im nächsten Takt
wird ein normales Nanoprogrammfortschalteglied LNS1 eingeschaltet und der im Verteilerregister
stehende Befehl in das Befehlsregister gebracht (A9).
Nun kann der Befehl vorentschlüsselt werden (B9')
und im nächsten Takt der Operand geholt werden (F0'). Da LPa jedoch bereits als Glied der Fortschaltekette
benutzt wurde, springt das Programm automatisch wieder in diese Schleife hinein und holt
ein Wort aus dem Speicher in das Verteilerregister.
Vorher war das Programmelement Rrb gelöscht
worden, so daß nun der Inhalt des Verteilerregisters nicht mehr in das Befehlsregister geholt wird, sondern
nach dem Fortschaltepunkt LNS3 geschaltet wird. Hier wird normalerweise die Hauptentschlüsselung
folgen, d. h., es werden zuerst alle Bedingungselemente nullgesetzt und im nächsten Takt (LNSi)
neu eingestellt (E'). Der Operand steht nun im Verteilerregister, und das entschlüsselte Mikroprogramm
kann beginnen.
Der bisher beschriebene Ablauf muß modifiziert werden, wenn die Adresse des Befehlsregisters nicht
Nennadresse ist. Unter den vielen Modifikationsmöglichkeiten wurde für das vorliegende Beispiel der
Ersetzbefehl herausgegriffen. Er wurde in der Befehlsvorentschlüsselung durch Setzen des Registerelements
Re gekennzeichnet. Dann war nämlich im Schritt LS2 nicht der Operand geholt worden, sondern
ein weiterer Befehl, der nun wieder vorent-
schlüsselt werden muß. Zu diesem Zweck wurde das Element Rrb wieder gesetzt, das im Schritt vorher
gelöscht worden war, so daß nach der Speicheransteuerung der Verteilerregisterinhalt wieder in das
Befehlsregister übernommen wird. Erst wenn ein Befehl kein Ersetzbefehl mehr ist, läuft das Programm
wieder in die beschriebene Schlußphase.
Bei Simultanbetrieb kann es vorkommen, daß das Abrufprogramm bereits bis zur Entschlüsselung vorgedrungen
ist, während gleichzeitig noch ein anderes Programm im Rechenwerk abläuft. In solchen Fällen
muß das Abrufprogramm in einen Wartetakt münden (NS3' = NS3·αΒ·τν·r,). Das Element Rr, stellt die
Belegtmeldung des Rechenwerkes dar, es wird erst auf EINS geschaltet, wenn das Rechenwerk zur
Übernahme eines neuen Programms bereit ist. Läuft der entschlüsselte Befehl jedoch im Befehlswerk ab
(rw), dann kann sofort die Entschlüsselung folgen, da das Abrufprogramm selbst das Befehlswerk besetzt
gehalten hatte. Wenn dagegen ein Rechenwerksbefehl vorlag (Bw), dann kann bereits der nächstfolgende
Befehl seine Abrufphase durchlaufen, so daß mit der Entschlüsselung im Punkt LNS4 bereits
wieder der Punkt LA1, angesteuert wird.
Dieses Abrufprogramm kann, wie später gezeigt wird, auch als normales Nanoprogramm benutzt
werden, indem von einem übergeordneten Mikroprogramm das Element LA1, eingeschaltet wird. Der
Einsprungpunkt wird durch Programmelement Rrc oder Rrd festgelegt. Entsprechend wird gleich die
Vorentschlüsselung oder die Hauptentschlüsselung angesprungen.
Das Abrufprogramm wird vor jeder Befehlsausführung angesprungen und dient auch für das folgende
Mikroprogramm als Abruf phase.
Dieses Mikroprogramm ist in Tabelle 3 dargestellt und soll die Verbindung des Abrufprogramms mit
einem Programm zeigen, das im Rechenwerk und im Befehlswerk abläuft. Es liegt auf der Fortschaltekette
4 und ist mit dem Bedingungselement Rb1 R
verknüpft. Weiter soll es zeigen, wie ein Mikroprogramm ein anderes Mikroprogramm ansteuert.
Dieses andere Mikroprogramm liegt beispielsweise auf der Fortschaltekette 5 und dem Bedienungselement
Rb2 R. Das Abrufprogramm bringt, wie beschrieben, einen Operanden in das Verteilerregister
und schaltet dann, wenn das Rechenwerk frei ist, in der Hauptentschlüsselung Fortschaltekette und Bedingungselement ein. Mit
dem ersten Glied sind die Operationen Rv\ AB' und
B/ verbunden. Letztere vertauschen den Inhalt von Register 7 mit Register 9. In Register 9 stehe zu
Anfang die erste Adresse einer Gruppe von Informationen, die mit einer zweiten Gruppe verknüpft
werden soll, deren erste Adresse im Register 7 steht. Die beiden Adressen sollen nebeneinander liegen, so
daß die beiden Gruppen im Speicher wechselweise ineinander verschachtelt sind. Die Operation Rv'
bedingt also beispielsweise den Transport des ersten Operanden aus dem Verteilerregister in ein erstes
Rechenregister. In diesem ersten Takt wird auch die Rechenwerksfreimeldung aufgehoben (rf). Im zweiten
Takt dieses Programms wird ein Mikroprogramm eingeschaltet, das diesen Operanden mit Hilfe der
Operationselemente LO1, LO2, LO3, LO4 verarbeitet.
Gleichzeitig mit dem Sprung in das Mikroprogramm wird wieder in die Abrufphase gesprungen und der
Inhalt des Registers7 um zwei erhöht (A'p, rc, A'+2).
Rb\R, L041 · Λ, , Tf , Γι , Ag, OA, i>i:i = O4 χ ' O1Jj Τχ',
M'v, 7/, A'B, B'A, Si2 = Su-A1^r1 ;
RbiR, LS1X: S3.1, ό/jj, b2R = S4-2 · ο, R T1 ;
Ap, rd, A+o = 04.2 · Oi R d\ ',
RbiR, LS1X: S3.1, ό/jj, b2R = S4-2 · ο, R T1 ;
Ap, rd, A+o = 04.2 · Oi R d\ ',
Ap , fa = O2-3 ' "1 jj U1 ',
Rb*jj, LiS5-1: O1', On, Sr'-2 — S5]1 -b2R',
Rb2R, LS5-2: O3', S3-3 = S5-2-O2J?;
Rb2R, LS:,3: OI, r'f = S5-3-O2 fi;
Rb2R, LS:,3: OI, r'f = S5-3-O2 fi;
Gemäß der Erfindung wird nun der Rücksprung vom untergeordneten Mikroprogramm in das übergeordnete
Programm mit der Freimeldung des Rechenwerks (?,') unter Zuhilfenahme eines Teiles
des Abrufprogramms verbunden. Das Abrufprogramm wurde im Schritt LNS3, also in der Hauptentschlüsselung
angesprungen. Dort ist ein Wartetakt vorgesehen, der zur Hauptentschlüsselung erst durch
das Element Rr1 verlassen wird. Bei der neuerlichen
Entschlüsselung des übergeordneten Programms wird nun ein Operand der zweiten Gruppe mit M/ in ein
zweites Rechenregister geholt, da bei dem ersten Durchlauf das Element Rr1 gesetzt wurde, das im
zweiten Durchlauf wieder gelöscht wird.
So wird abwechselnd ein Operand der einen Gruppe und einer der anderen Gruppe in das jeweilige
Rechenregister gebracht und in dem untergeordneten Mikroprogramm verarbeitet, bis die letzten
Operanden verarbeitet sind. Dieses Ende ist beispielsweise durch das Element Ra1 gekennzeichnet,
das nach dem letzten Operanden der zweiten Gruppe durch Weiterzählen im Register 7 (A'+t) gesetzt
wurde. In diesem Fall wird im Schritt Rb1 R, LS40
das Abrufprogramm zur Übernahme eines neuen Befehls angesprungen.
Das beschriebene Beispiel erläutert einerseits die Verbindung des Abrufprogramms mit einem Mikroprogramm
und andererseits die Verbindung eines Mikroprogramms mit einem untergeordneten Mikroprogramm;
weiter erläutert es den Simultanbetrieb zwischen unabhängigen Werken der Rechenmaschine
sowie die Ersetzung von Leistungselementen der Fortschalteketten durch Operationselemente.
All diese Möglichkeiten ergeben sich nur bei dem erfindungsgemäßen Steuerwerk, und zwar durch die
sinnvolle Kombination von Fortschalteketten und Bedingungselementen, die während des ganzen Ablaufs
eines Mikroprogrammes ungeändert bleiben. Dies bedingt zwangläufig eine sehr logische Befehlsentschlüsselung, die darüber hinaus den Erfordernissen
der Aufwandsbeschränkung Rechnung trägt, wenn man ungefähr die Zahl der Fortschalteketten
gleich der Anzahl der Bedingungselemente wählt und damit das Gitternetz aus F i g. 2 mit annähernd quadratischem
Querschnitt auslegt. Durch Einführung der Modifikationselemente wird effektiv die Anzahl
der zu entschlüsselnden Befehlszeichen um eins oder zwei verringert, da diese Elemente nicht bei jedem
Programmschritt, sondern nur dort abgefragt werden, wo Unterschiede in den ähnlichen Programmen
auftreten. Verlängerungsbedingungselemente ermöglichen Fortschalteketten mit weniger Gliedern.
Die Nanoprogramme bringen eine Verkürzung vieler Mikroprogramme, da der Inhalt eines Nanoprogramms
sonst in mehrere Mikroprogramme ein-
gebaut werden müßte. Die Organisation der Rückkehr aus einem Nanoprogramm in ein Mikroprogramm
mittels Wartetakt bzw. erneuter Operationscodeentschlüsselung ermöglicht flexible Anwendung
der Nanoprogramme und Simultanarbeit von Mikro- und Nanoprogramm.
Die Simultanarbeit schließlich verkürzt die Rechenzeiten bei gleicher Maschinengeschwindigkeit.
IO
Claims (13)
1. Mikroprogramm-Steuerwerk einer programmgesteuerten
Rechenmaschine, das die in einem iV-Stelligen Befehlsregister vorgegebenen
Befehle in eine Folge und Kombination von mehreren Elementaroperationen mit Hilfe von
2" Fortschalteketten, deren Wirkausgänge die einzelnen Elementaroperationen ansteuern, auflöst,
indem nach Maßgabe des vorliegenden Befehls ein Anfangsglied einer bestimmten Kette
eingeschaltet wird, worauf sich die Kette selbsttätig fortschaltet, α3αμτο1ι gekennzeichnet,
daß ein AnfangsgHed (z. B. LS21) einer der
2" Fortschalteketten durch einen «-stelligen Teil des Befehls bestimmt und eingeschaltet wird und
daß an jedem Wirkausgang eines Gliedes einer Fortschaltekette mehrere zu verschiedenen Befehlen
gehörende Elementaroperationen angeschlossen sind, von denen eine oder mehrere durch Entschlüsselung der übrigen Ν—η Stellen
des Befehlsregisters ausgewählt werden.
2. Steuerwerk nach Anspruch 1, dadurch gekennzeichnet, daß bistabile Bedingungselemente
vorgesehen sind, die durch Entschlüsselung der übrigen N—«Stellen des Befehlsregisters einzeln
auswählbar sind und von denen jedes ein Mikroprogramm auf jeder Fortschaltekette auswählt,
so daß jedem Bedingungselement 2" Mikroprogramme fest zugeordnet sind.
3. Steuerwerk nach Anspruch 1, dadurch gekennzeichnet, daß eine Anzahl b der übrigen
N—n Stellen des Befehlsregisters eines von 26 Bedingungselementen bestimmt, so daß jedes
Bedingungselement auf jeder Fortschaltekette mehreren Mikroprogrammen zugeordnet ist mit
im wesentlichen gleichem Operationsablauf, während die übrigen N—n—b =■ m Stellen des Befehlsregisters
eines oder mehrere Bedingungselemente als Modifikationselemente einschalten, die nur bei unterschiedlichem Operationsablauf
der ähnlichen Mikroprogramme als Zusatzbedingungen abgefragt werden.
4. Steuerwerk nach Anspruch 1, dadurch gekennzeichnet, daß alle Fortschalteketten die
gleiche Anzahl Glieder besitzen und daß für umfangreichere Mikroprogramme mindestens ein ·
bistabiles Kettenverbindungselement vorgesehen ist, das vom letzten Glied einer ersten Fortschaltekette
eingeschaltet wird und den Anruf einer anderen oder auch derselben Fortschaltekette
bewirkt und beim folgenden Durchlauf derselben als konjunktive Zusatzbedingung zur Auswahl
des Mikroprogramms wirkt.
5. Steuerwerk nach Anspruch 1, dadurch gekennzeichnet, daß mindestens eine weitere Fortschaltekette
(Nanoprogramm - Fortschaltekette) vorgesehen ist, deren AnfangsgHed unabhängig
vom Inhalt des Befehlsregisters von einem Glied einer der 2" Mikroprogrammfortschalteketten angesteuert
wird, um häufig verwendete Rechenoder Organisationssubroutinen (sogenannte Nanoprogramme)
auszuführen.
6. Steuerwerk nach Anspruch 5, dadurch gekennzeichnet, daß mit einer Nanoprogrammfortschaltekette
mehrere Nanoprogramme verknüpft sind und daß zur Auswahl des Nanoprogramms ein oder mehrere bistabile Elemente (Nanoprogrammelemente
59) vorgesehen sind, die von einem Glied der Fortschaltekette des jeweils übergeordneten Mikroprogramms gesetzt werden
und im letzteren Schritt des Nanoprogramms wieder gelöscht werden.
7. Steuerwerk nach Anspruch 5, dadurch gekennzeichnet, daß zur Modifizierung eines Nanoprogramms
mindestens ein bistabiles Element vorgesehen ist, das im Verlauf des übergeordneten
Mikroprogramms abhängig von Bedingungen eingestellt und im Verlauf des Nanoprogramms
abgefragt wird.
8. Steuerwerk nach einem der Ansprüche 5 bis 7, dadurch gekennzeichnet, daß für die jeder
Befehlsausführung vorangehenden Organisationsroutinen (z. B. Holen des nächsten Befehls, Erhöhen
des Befehlszählerstandes, Adreßmodifikation, Holen der Operanden, Entschlüsseln des
Befehlscodes auf Fortschalteketten und Bedingungselemente) ein spezielles Nanoprogramm
(sogenanntes Abrufprogramm) vorgesehen ist, das im Verlauf oder am Ende eines vorhergehenden
Mikroprogramms angestoßen wird (Tabelle 2).
9. Steuerwerk nach Anspruch 8, dadurch gekennzeichnet, daß das spezielle Nanoprogramm
abhängig von Bedingungen modifiziert wird, die mittels Vorentschlüsselung aus dem Befehlscode
im Befehlsregister entnommen werden (Tabelle 1).
10. Steuerwerk nach Anspruch 8, dadurch gekennzeichnet, daß zur Ansteuerung eines Mikroprogramms
von einem anderen ihm übergeordneten Mikroprogramm Schaltmittel vorgesehen sind,
die, abhängig vom übergeordneten Mikroprogramm, Fortschalteketten, Bedingungs- und Modifikationselemente
löschen und dafür Bedingungs- und Modifikationselemente sowie Fortschalteketten des anzusteuernden Mikroprogramms
einschalten und die gleichzeitig ein bistabiles Element (Blockierelement Rrc oder
Rrd) einschalten, das in einem vom untergeordneten
Mikroprogramm nach seinem Ablauf angesteuerten speziellen Nanoprogramm das Holen
des nächsten Befehls ins Befehlsregister verhindert und statt dessen das Zurückschalten auf das
übergeordnete Mikropragramm durch erneute Entschlüsselung seines noch im Befehlsregister
stehenden Operationscodes bewirkt, wobei das Blockierelement außerdem im übergeordneten
Mikroprogramm als unterscheidende Bedingung zwischen dem zweiten und dem ersten Ablauf
dient (Tabelle 3).
11. Steuerwerk nach Anspruch 8 bis 10, dadurch gekennzeichnet, daß zur Verwendung von
Teilen des speziellen Nanoprogramms (z. B. Addition im Befehlswerk, Holen eines Operanden
aus einem der Speicher) in einem Nanoprogramm, das von einem Mikroprgramm angesteuert
wird, die Ansteuerung durch Setzen des
509 580/323
Nanoprogrammelements und des entsprechenden Elements der Fortschaltekette des speziellen
Nanoprogramms, vorzugsweise über ein eigenes Operationselement (LAP), bewirkt wird und daß
der Rücksprung in das übergeordnete Mikroprogramm durch die das spezielle Nanoprogramm
abschließende Entschlüsselung des im Befehlsregister stehenden Befehlscode bewirkt wird.
12. Steuerwerk nach Anspruch 1, dadurch gekennzeichnet, daß die Mikroprogramme so auf
die Fortschalteketten verteilt sind, daß mindestens eine der Fortschalteketten nur Mikroprogramme
ansteuert, die ein unabhängig arbeitendes Werk der Maschine, beispielsweise das Rechenwerk benutzt, und daß Mittel vorgesehen
sind, in solchen Fällen einen weiteren Befehl zu übernehmen und gleichzeitig zu bearbeiten
(Simultanbetrieb).
13. Steuerwerk nach Anspruch 2 und 12, dadurch gekennzeichnet, daß zwei Gruppen von
Bedingungselementen vorgesehen sind (Rb R bzw. RbB) sowie mindestens ein bistabiles Element
(Simultanelement Rrw, Rbw), das gesetzt wird,
wenn Simultanbetrieb in mehreren unabhängig arbeitenden Werken der Maschine möglich ist,
wobei die eine Gruppe der Bedingungselemente nur unabhängige Befehle aufnimmt und auf Fortschalteketten
einwirkt, die Mikroprogramme in einem unabhängig arbeitenden Werk ausführen, während die andere Gruppe der Bedingungselemente mit den übrigen Fortschalteketten zusammenarbeitet
und den übrigen Befehlen zugeordnet ist.
In Betracht gezogene Druckschriften:
Elektronische Rundschau, 1955, S. 349 bis 353.
Elektronische Rundschau, 1955, S. 349 bis 353.
Hierzu 3 Blatt Zeichnungen
509 580/323 6.65 © Bundesdruckerei Berlin
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB1020924D GB1020924A (de) | 1961-08-25 | ||
| DET20653A DE1195074B (de) | 1961-08-25 | 1961-08-25 | Mikroprogramm-Steuerwerk einer programm-gesteuerten Rechenmaschine |
| US218873A US3268871A (en) | 1961-08-25 | 1962-08-23 | Computer control device |
| FR907683A FR1337929A (fr) | 1961-08-25 | 1962-08-24 | Unité de commande pour une calculatrice numérique à programmes |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DET20653A DE1195074B (de) | 1961-08-25 | 1961-08-25 | Mikroprogramm-Steuerwerk einer programm-gesteuerten Rechenmaschine |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| DE1195074B true DE1195074B (de) | 1965-06-16 |
Family
ID=7549797
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DET20653A Pending DE1195074B (de) | 1961-08-25 | 1961-08-25 | Mikroprogramm-Steuerwerk einer programm-gesteuerten Rechenmaschine |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US3268871A (de) |
| DE (1) | DE1195074B (de) |
| GB (1) | GB1020924A (de) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE1774296A1 (de) * | 1967-05-23 | 1971-08-19 | Ibm | Steuereinheit fuer elektronische Digitalrechner |
| DE2327950A1 (de) * | 1973-06-01 | 1974-12-19 | Licentia Gmbh | Verfahren und vorrichtung zur steuerung industrieller einrichtungen |
Families Citing this family (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3569939A (en) * | 1963-12-31 | 1971-03-09 | Bell Telephone Labor Inc | Program controlled data processing system |
| FR1477814A (de) * | 1965-04-05 | 1967-07-07 | ||
| US3413609A (en) * | 1965-04-15 | 1968-11-26 | Gen Electric | Indirect addressing apparatus for a data processing system |
| US3493936A (en) * | 1967-05-04 | 1970-02-03 | Ncr Co | Low cost high capability electronic data processing system |
| IT951233B (it) * | 1972-04-07 | 1973-06-30 | Honeywell Inf Systems | Sistema di comando di un calcola tore mediante microprogrammazione ed estensione dinamica delle fun zioni di controllo ottenuta da reti logiche |
| US3781823A (en) * | 1972-07-28 | 1973-12-25 | Bell Telephone Labor Inc | Computer control unit capable of dynamically reinterpreting instructions |
| US3938103A (en) * | 1974-03-20 | 1976-02-10 | Welin Andrew M | Inherently micro programmable high level language processor |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB803734A (en) * | 1955-11-16 | 1958-10-29 | Powers Samas Account Mach Ltd | Improvements in or relating to programme apparatus for electronic computing machines |
-
0
- GB GB1020924D patent/GB1020924A/en active Active
-
1961
- 1961-08-25 DE DET20653A patent/DE1195074B/de active Pending
-
1962
- 1962-08-23 US US218873A patent/US3268871A/en not_active Expired - Lifetime
Non-Patent Citations (1)
| Title |
|---|
| None * |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE1774296A1 (de) * | 1967-05-23 | 1971-08-19 | Ibm | Steuereinheit fuer elektronische Digitalrechner |
| DE2327950A1 (de) * | 1973-06-01 | 1974-12-19 | Licentia Gmbh | Verfahren und vorrichtung zur steuerung industrieller einrichtungen |
Also Published As
| Publication number | Publication date |
|---|---|
| US3268871A (en) | 1966-08-23 |
| GB1020924A (de) |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE1499193C3 (de) | Speicher-Adressierschaltung | |
| DE2748991A1 (de) | Einrichtung zur umsetzung von datenformaten | |
| DE2318069C2 (de) | Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix | |
| DE2436963A1 (de) | Verfahren und vorrichtung zur mikroprogrammierung in der zentraleinheit eines digitalrechners | |
| DE2145120A1 (de) | Digitales Datenverarbeitungsgerat | |
| DE1275800B (de) | Steuerwerk fuer datenverarbeitende Maschinen | |
| DE2420058A1 (de) | Elektronischer computer mit tastatur | |
| DE2164793A1 (de) | Verfahren und Datenverarbeitungsanlage zur Steuerung einer Vielzahl von Eingabe/ Ausgabe-Einheiten mittels eine Zentraleinheit | |
| DE1549474B2 (de) | Anordnung in einer elektronischen digitalen Datenverarbeitungsanlage zur Ausführung eines ersten Befehls und gleichzeitigen Decodierung eines folgenden Befehls | |
| DE2556617A1 (de) | Datenverarbeiter zum rotierbaren verschieben von bits eines datenwortes | |
| DE3507584C2 (de) | ||
| DE1195074B (de) | Mikroprogramm-Steuerwerk einer programm-gesteuerten Rechenmaschine | |
| DE1799012B1 (de) | Registereinrichtung zur Erleichterung des Wechsels von Teilprogrammen und Teilprogrammschnitten in einem elektronischen Rechner | |
| DE2440390B2 (de) | Elektronischer rechner | |
| DE1549435A1 (de) | Datenverarbeitungsanlage | |
| DE1549381B2 (de) | Datenverarbeitungsanlage | |
| DE1499284A1 (de) | Datenbearbeitungsanlage | |
| DE2024584B2 (de) | Steuereinrichtung für eine allgemeine Datenverarbeitungseinrichtung | |
| DE1194605B (de) | Verbesserung an Geraeten zur Verarbeitung von Angaben, Informationen od. dgl. | |
| DE2136536C3 (de) | Anordnung zur Komprimierung binarer Daten | |
| DE1107432B (de) | Elektronische Rechenmaschine | |
| DE1474090B2 (de) | Datenverarbeitungsanlage | |
| DE2264346A1 (de) | Mehrstufiges selbstanpassendes decodiersystem fuer binaere mikrobefehle | |
| DE1524211A1 (de) | Datenverarbeitungsanlage | |
| DE1449567C3 (de) | Digitales Datenverarbeitungssystem |