[go: up one dir, main page]

DE1195074B - Mikroprogramm-Steuerwerk einer programm-gesteuerten Rechenmaschine - Google Patents

Mikroprogramm-Steuerwerk einer programm-gesteuerten Rechenmaschine

Info

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
Application number
DET20653A
Other languages
English (en)
Inventor
Dr Wolfgang Haendler
Dipl-Ing Johannes Martin
Heinz Voigt
Roland Maier
Otto Mueller
Dipl-Ing Karl Voitel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefunken Patentverwertungs GmbH
Original Assignee
Telefunken Patentverwertungs GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to GB1020924D priority Critical patent/GB1020924A/en
Application filed by Telefunken Patentverwertungs GmbH filed Critical Telefunken Patentverwertungs GmbH
Priority to DET20653A priority patent/DE1195074B/de
Priority to US218873A priority patent/US3268871A/en
Priority to FR907683A priority patent/FR1337929A/fr
Publication of DE1195074B publication Critical patent/DE1195074B/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/223Execution 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
Patentverwertungsgesellschaft m. b. H.,
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,
ίο 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
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«.
Die F i g. 13 enthält auf einer Kreuzschienenplatte die logische Verknüpfung für Vor- und Hauptentschlüsselung in disjunktiver Normalform.
Tabelle 1
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;
υ? -^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
Tabelle 2
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).
Tabelle 3
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\ ',
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;
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)

Patentansprüche:
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.
Hierzu 3 Blatt Zeichnungen
509 580/323 6.65 © Bundesdruckerei Berlin
DET20653A 1961-08-25 1961-08-25 Mikroprogramm-Steuerwerk einer programm-gesteuerten Rechenmaschine Pending DE1195074B (de)

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)

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

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

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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
None *

Cited By (2)

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