DE2854400C2 - Anordnung zum Wechsel zwischen verzahnt zu verarbeitenden Programmen - Google Patents
Anordnung zum Wechsel zwischen verzahnt zu verarbeitenden ProgrammenInfo
- Publication number
- DE2854400C2 DE2854400C2 DE2854400A DE2854400A DE2854400C2 DE 2854400 C2 DE2854400 C2 DE 2854400C2 DE 2854400 A DE2854400 A DE 2854400A DE 2854400 A DE2854400 A DE 2854400A DE 2854400 C2 DE2854400 C2 DE 2854400C2
- Authority
- DE
- Germany
- Prior art keywords
- register
- command
- address
- connection
- bits
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
- G06F9/4486—Formation of subprogram jump address
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)
- Information Transfer Between Computers (AREA)
Description
Die vorliegende Erfindung betrifft eine Anordnung zum Wechsel zwischen verzahnt zu verarbeitenden,
voneinander unabhängigen Programmen oder Programmsegmenten in einer Datenverarbeitungsanlage
nach dem Oberbegriff des Anspruchs 1.
In manchen Funktionseinheiten einer Datenverarbeitungsanlage müssen verschiedene Routinen quasi
gleichzeitig ausgeführt werden, so z. B. in einer
is Eingabe/Ausgabe-Steuereinheit, die mehrere Eingabe/
Ausgabe-Geräte bedient. Praktisch wird dabei so verfahren, daß man zwischen den Routinen oder
Programmsegmenten, die voneinander unabhängig sein und asynchron ablaufen können, hin- und herwechselt.
Die »Umschaltung« von einer Routine auf eine andere kann auf verschiedene Arten bewerkstelligt werden.
So ist z. B. das Verfahren der Programmunterbrechung
allgemein bekannt, bei dem aufgrund einer besonderen Anforderung zunächst die Ausführung eines
ersten Programms unterbrochen wird, dessen Parameter in einem besonderen Registersatz oder im
Arbeitsspeicher abgespeichert werden, wonach die Parameter eines zweiten Programms in die entsprechenden
Register geladen und dann mit der Ausführung begonnen wird. Dies ist jedoch aufwendig und
zeitraubend, weil eine besondere Unterbrechungsprozedur durchgeführt werden muß und Speicherzugriffe
'nötig sind. Für einfachere Anlagen oder Steuereinheiten ist deshalb eine weniger aufwendige Umschaltmethode
zum Programmwechsel nötig.
Es ist auch allgemein bekannt, in einem Hauptprogramm
Unterprogramme durch einen besonderen Befehl aufzurufen, bei dessen Aufführung auch die
Adresse der nächstfolgenden Instruktion des Hauptprogramms
(Rückkehradresse) in einen: besonderen Verbindungsregister gespeichert wird, um so nach Beendigung
des Unterprogramms leicht zur richtigen Stelle des Hauptprogramms zurückkehren zu können. Dieser
Vorgang ist jedoch einseitig, und der Übergang zum Unterprogramm ist umständlicher und erfordert mindestens
Zugriffe auf andere Register oder zum Speicher.
Es ist auch bekannt, z. B. aus dem US-Patent 39 72 029, ein einzelnes Verbindungsregister zu benutzen,
aus dem beim Wechsel zwischen Programmsegmenten jeweils die Eintrittsadresse des als nächsten
auszuführenden Programmsegmentes entnommen, und in das dann die Wiedereintrittsadresse des zuletzt
ausgeführten Programmsegmentes abgespeichert wird. Hierbei werden aber jeweils zwei Befehle ausgeführt.
und die im Hilfsregister zu speichernde Wiedereintrittsadresse muß in dem einen Befehl enthalten sein und
diesem entnommen werden. Außerdem ist keine Rettung bestimmter Zustandsdaten möglich, die nötig
wären, um beim Wiedereintritt in ein Programmsegment die gleichen Bedingungen wie beim letzten
Verlassen des Programmsegmenies wieder herzustellen.
Des weiteren ist in der DE-OS 22 58 460 eine programmierbare Steueranordnung beschrieben, die es
einer Datenverarbeitungsanlage gestattet, drei Programme im Verhältnis 1:1:1 laufen zu lassen. Dieses
bedeutet, daß einem Befehl des Programms A ein Befehl des Programms B und diesem ein Befehl des Programms
C und diesem wiederum ein Befehl des Programms A usw. folgt Ein flexibles Hin- und Herspringen zwischen
Programmen außerhalb der genannten Reihenfolge ist mit der beschriebenen programmierbaren Steueranordnung
nicht möglich.
Schließlich ist in einer Abhandlung »Advanced Micro Devices«, veröffentlicht im Microprogramming Handbook, 1976, Seiten 1-1 bis 1-6 eine Anordnung zum
Aufruf eines Unterprogramms durch einen Verzweigungsbefehl bekanntgeworden, bei dessen Ausführung
auch die Adresse des nächstfolgenden Befehls im aufrufenden Hauptprogramm aus einen Befehlsregister
in ein Verbindungsregister geladen wird. Ein einfaches Hin- und Herspringen zwischen Programmen erlaubt
auch diese beschriebene Lösung nicht
Der Erfindung liegt somit die Aufgabe zugrunde, eine Anordnung zum Wechsel zwischen verzahnt zu
verarbeitenden, voneinander unabhängigen Programmen oder Programmsegmenten in einer Datenverarbeitungsanlage
der im Oberbegriff des Patentanspruchs 1 genannter; A.rt so weiterzubilden, daß der Wechsel
zwischen voneinander unabhängigen Programmen oder Programmsegmenten vereinfacht wird.
Gelöst wird diese Aufgabe der Erfindung für eine Anordnung durch die im Anspruch 1, für ein Verfahren
durch die im Anspruch 7 genannten Merkmale.
Auf diese Weise wird der Vorteil erreicht daß auf einfache und zuverlässige Weise zwischen zwei
Programmroutinen in einer elektronischen Datenverarbeitungsanlage umgeschaltet werden kann.
Ein Ausführungsbeispiel der Erfindung wird im folgenden anhand einer Zeichnung beschrieben. In der
-| Zeichnung ist eine Steuereinheit mit Rechenwerk und
f-i Mikroprogramm-Steuerung für Eingabe/Ausgabe-Vor-'"
gänge als Blockschaltbild dargestellt
&· Allgemeiner Datenfluß
' j Die Zeichnung zeigt den Datenfluß einer als i, Ausführungsbeispiel gewählten Steuereinheit mit Pro-
^Z grammspeicher. In die Steuereinheit hineinkommende
«v. Eingabedaten gelangen in die Positionen PR 0 und PR 1
ί eines Programmregisterstapels 1. Die vier werthohen
Bits der Daten gelangen in die Position PRO und die *. vier wertniederen Bits in die Positon PR I. Die
Steuerung verlassende Ausgabedaten kommen von { PR 0 und PR1 des Programmregisterstapels. Daten von
einem jeden der beiden Register und/oder von einem Datenadreßregisterstapel (DAR) 3 können über sin
Rechenwerk (ALU) 3 gesendet und das Ergebnis in einen der beiden Stapel eingegeben werden. Das
Rechenwerk kann die Funktionen Addieren, Subtrahie- * ren, UND. ODER und EXKLUSIV-ODER (ANTIVALENZ)
ausführen. Außerdem können die Funktionen ■ Übertragen, Vergleichen, Piüfen und Verschieben in
φ sechs verschiedenen Betriebsarten (d. h. mit verschiedc-'*!
nen Paaren von Quelle und Ziel) ausgeführt werden.
Daten von einem Festwertspeicher können in die
( l Registerstapel eingegeben werden. Bej Verwendung
eines Lese-Schreib-Speichers können Daten aus den Stapeln auch in den Speicher geschrieben werden.
Befehle werden gemäß Adressierung durch ein Befehjsadreßrsgister
(IAR) 4 in ein Operationsregister 5 eingegeben. Eine Verzweigungs-Zieladresse kann von
den direkten Daten im Befehl, von einem Datenadreßregister DAR oder von einem Verbindungsregister 6,
kommen.
Zustandsmerker (bistabue Kippglieder) 7 werden
durch die das Rechenwerk (A LU) bi^wuendfin Befehle
gesetzt. Diese Merker können mjt Prüf- und Verzweigungsbefehlen dazu benutzt werden, den Bcfehlsfluß z^r
ändern.
Funktionseinheiten im Datenfluß
In der Zeichnung sind die Haupteinheiten im
Datenfluß der als Ausführungsbeispiel gewählten
Steuereinheit dargestellt
Der Datenadreßregisterstapel (DARJ2 besteht aus 16
to jeweils vier Bit großen Vielzweckregistern, von denejj|
jedes mit der binären Darstellung der Dezimalzahlen Q
bis 15 geladen werden kann. Die Datenandreßregister 0,
1 und 2 werden außerdem zum Adressieren des Speichers benutzt und enthalten bei Speicheroperatio-
nen eine 12 Bit große Speicheradresse. Die DatenadreS-Hilfsregister
(HiVs-DAR) 8 sind drei je vier Bit große
Register, in die ebenfalls die binäre Darstellung der
Dezimalzahlen 0 bis 15 geladen werden kann. Der Datenadreßregisterstapel 2 oder die Datenadreß-Hilfs*
register 8 werden zur SpeicherarYessiening bei
Speicheroperationen nach ProgramnäjjfehleB *DAB
aktiv wählen« oder »DAR-HiIfsregister aktiv wählet)«
benutzt
Der Programmregisterstapel t besteht aus 16 je vier
Bit großen Vielzweckregistern, in die die Dezimalzahlen 0 bis 15 in binärer Darstellung geladen werden können.
Daten von den E/A-Geräten· werden in die beiden ersten Programmregister (die Register 0 und 1) geladen,
von wo auch Daten für die E/A-Gerät? entnommen
werden.
Das 16 Bit große Operationsregister 5 empfängt alle
Befehle vom Speicher. Die Bits 0 bis 7 eines Befehlswortes enthalten den Operationscode und die
Bits 8 bis 11 und 12 bis |5 die Adressen und/oder
Maskierungsdaten.
Das 12 Bit große Befehlsadreßregister (IAR)^ enthält
die Adresse des nächsten auszuführenden Befehls. Während der ersten Programmladung (IPL) enXh<aas
Befehlsadreßregister die Byteadresse der Daten vom E/A-Gerät, die in aufeinanderfolgende Speicheradressen,
beginnend bei der Adresse 0 geladen werden. Das wertniedere Bit (Bit 11) wählt entweder das hohe oder
niedrige Byte eines Wortes. Zur Vergrößerung der Speicherkapazität ist ein Paar bistabile Kipplieder als
Zustandsregister 9 vorgesehen- Die 12 Bit großen Adreßregister, das Befehlsadreßregister (IAR) 4 und das
Speicheradreßregister (SAR) 10 können 4096 Bytes oder 2048 Wörter adressieren· Die Kippglieder 9
umfassen ein Datenkippglied (D) 27 und ein Befehlsso kippglied (1)ΊΆ für die Adressierung, wenn sie für Daten
über 2K Wörter (2048) und für Befehle über 4K Wörter (4096) hinaufgeht Wenn eines dieser beiden Kippgüeder
geset**, ist. adressiert das Datenadreßregister oder
das B,efehlsadreßregister die oberen 2 K Speicherwörter;
wenn das Kjppgüe^ rückgestellt ist, adressieren das
D/\R oder das .JAR die unteren 2K Wörter. Diese
Kippglieder werden gesetzt bzw. rückgestellt durch die Befehle »Datenspeicher hoch« (SDH), »Datenspeicher
niedrig« (SDL) »Beiehlsspeicher hoch« (SlH) bzw.
W' »ßefehjsspeicfer niedrig« (SIL).
ps gibt drej Register, nämlich das Verbindungsjegister
6 und die beiden Rückgriffregjster 11 unu 12, die die
Möglichkeit bjeten, die Steuerung von einem Programm zqm anderen oder von einem Programm zu einem
$s ,Unterprogramm zu übertragen. Im vorliegenden Aus-,fahrungsbeispjel hat das Verbindungsregister 15 Bitpositionen. Aus Gründen, die mit der Erfindung nicht
zusammenhängen, sind die beiden werthohen Bits Q. Die
Bits 3 und 4 geben die Einstellung der beiden bistabilen
Kippgiieder 9 an. Die Bits 5 bis 15 sind elf Adreßbits
(Bits 0 bis 10). (Das wertniedere Adreßbit Il ist während
der Verbindungsoperationen immer 0, da in diesem Ausführungsbeispiel nur mit Vollwort-Befehlsadressierung
gearbeitet wird.) Die beiden Rückgriffregister 11 und 12 haben je 13 Bitpositionen, und zwar zwei
Zustandsbits Für »Daten hoher Teil« und »Befehl hoher Teil« sowie elf Adreßbits (Bits 0 bis 10). Bei einem Befehl
» Verzweigen und Verbinden« (BAL) wird das Verbindungsregister
6 mit dem Inhalt des IAR4 (Adresse hinter dem BAL-BtItM) und den Bits für die beiden
Kippglieder 9 geladen. Dadurch kann ein späterer Rückkehrbefehl (RTN) das Programm auf den nächstfolgenden
Befehl im gespeicherten Programm zurückführen und die beiden Kippglieder 9, das D-Kippglied 27
und das /-Kippglied 28, so einstellen, wie sie vor der
Ausführung des BAL-Befehles slanden. Sollte ein
zweiter BAL-Befehl ausgeführt werden, bevor ein
/?77V-Bcfehl ausgeführt wird, wird der Inhalt des Verbindungsregisters 6 in das erste Rückgriff register 11
übetragen und der neue IAR-Wert und die Zustandsbits für die Kippglieder 9 in das Verbindungsregister gesetzt.
Wenn ein dritter BAL-BdM ausgeführt wird, gehl der
Inhalt des ersten Rückgriffsregisters in das zweite Rückgriftregister 12. Der Verbindungsregisterinhalt
wird in das Rückgriffregister 11 übertragen, und der
neue IAR-Wert und der Zustand der Kippglieder 9 werden in das Verbindungsregister gesetzt (der Inhalt
der Rückgriffregister kann im vorliegenden Ausführungsbeispiei per Programmierung weder adressiert
noch verändert werden).
Bei Ausführung eines /?rA/-Befehles laufen dieselben
Schritte ab wie bei einem BAL-Be(eh\, jedoch in
umgekehrter Reihenfolge. Wenn mehrere /?7W-Befehle vor einem weiteren BAL-Beieh\ aufeinanderfolgen,
verzweigt das Programm zu der Adresse im Verbindungsregister 6. um die Programmausführung fortzusetzen,
und überträgt den Inhalt des Rückgriffsregister Il in das Verbindungsregister 6 und den Inhalt des «o
Rückgriffregisters 12 in das Rückgriffregister 11.
Wenn ein Befehl »Rückkehren und Verbinden« (RAL) ausgeführt wird, wird durch diesen mit der
vorliegenden Erfindung implementierten Befehl der Inhalt des Verbindungsregisters 6 für die nächste *5
Befehlsadresse benutzt (wie bei einem RTN-Befeh\) und
dadurch der Inhalt des IAR 4 und der beiden Kippglieder 9 im Verbindungsregister 6 gespeichert.
Der Inhalt des IAR und der beiden Kippglieder9 wird in das Verbindungsregister 6 ähnlich übertragen wie bei
der Ausführung eines ÄAL-Befehles. im vorliegenden
Ausführungsbeispiel wird durch die Ausführung des RA Ζ,-Befehles jedoch der Inhalt der Rückgriff register
11 und 12 nicht beeinflußt.
Das Speicheradreßregister (SAR) 10 ist ein 12 Bit großes Register (Bits 0 bis 11). das die Adresse des im
Speicher adressierten Befehls- oder Datenwortes enthält Wenn der über 2K Wörter (2048) hinaus
erweiterte Speicher benutzt wird, bestimmt der Zustand des D-Kippgliedes bei Datenabrufen oder des /-Kipp- *>
gliedes bei Befehlsabrufen, ob die obere oder untere Hälfte des Speichers adressiert wird.
Die Befehlsadresse wird vom IAR4 in das SAR 10
übertragen, wenn der nächstfolgende Befehl auszuführen ist, oder vom Operationsregister 5, wenn eine
Verzweigung auftritt Bei einem RTN- oder RAL-Befehls,
wird der Inhalt des Verbindungsregisters 6 in das SAR 10 übertragen. Speicherbyte-Datenadressen werden
vom Operationsregister 5 oder vom DA/?-Stapel 2
in das SAR übertragen. Für die Bildung einer 12 Bit mit großen Adresse werden drei Register des DAR2
benötigt.
Das A-Register 13 und das B-Register 14 sind je vier
Bit groß und enthalten die werthohen bzw. wertniederen Bits während der Datenbyteübertragung von der
Eingangsbusleitung oder zur Ausgangsbuslcitung. Das A-Register 13 und dan B-Register 14 enthalten die im
Rechenwerk (ALi))Z bei arithmetisch-logischen Operationen zu bearbeitenden Daten. Während dieser
Operationen wird der Inhalt des durch das λ'-Feld oder
die Maskendalcn bezeichneten Registers in das A-Register gesetzt. Der Inhalt des durch das V-FeId
bezeichneten Registers wird in das B-Rcgister gesetzt. Eine 12 Bit große Inkrcmentierschaltung 15 erhöht
den Inhalt des DAR! oder des IAR4 über das SAR 10
um ! oder 2 je nach Bedarf Her ausgeführten Operation.
Die Assembler-Schaltung 16 ist eine Matrix, die
Daten vom Programmregisterstapel !,dem DAR2.den
Datenadreß-Hilfsregisiern 8, dem Operationsregister 5 und der Spcicherdaten-Busleitung 17 an das A-Register
13 und/oder das B-Regiister Hieltet.
Das Rechenwerk (ALU)Z empfängt Daten vom
A-Register und vom B-Register und gibt Daten und Ergebnisse an das Programm, das Datenadreßregister
oder d'r Daienadreß-Hilfsregister aus. Durch die ALU
laufende Daten können addiert, subtrahiert oder logisch manipuliert werden. Die Zustandsmerker 7 für »Übertrag«,
»Null« und >>Nicht-Null« können abhängig von den Operationsergebnissen geseizt werden.
Die Parität der auf der Speicherdaten-Busleitung 17 hereinkommenden Bits wird im Paritätsprüfer 18
geprüft. Zu den auf der Ausgangsdaten-Busleitung 19 ausgegebenen Datenbits gehört auch ein Paritätsbit, das
nach Bedarf vom Paritätsbitgenerator 20 erzeugt wird, um im vorliegenden Ausführungsbeispiel eine ungerade
Parität zu bekommen.
Ein Ausgangstor 21 am Ausgang des SAR 10 läßt Bits zur Speicheradressierung durchlaufen. (Wenn die
Steuereinheit im Prüfbetrieb läuft, verhindert das Ausgangstor 21 die Ausgabe von Bits vom SAR 10 auf
die Speicheradreß-Busleitung 22)
Die drei Zustandsmerker 7 können aufgrund der /4Z.i/-Ergebnisse eines Rechenbefehles, eines Ladebefehles
oder eines Eingangsbefehles gesetzt werden. Diese Merker (Kippglieder) bleiben gesetzt, bis sie
durch eine andere Operation zurückgestellt werden (die reine Abfrage ändert ihren Zustand nicht). Alle
bistabilen Kippglieder werden gleichzeitig zurijkgestellt.
auch wenn der ausgeführte Befehl nicht alle Merker (Kippglieder) Hetzen kann. Der Übertragsmerker
24 hat zwei abfragbare Zustände, nämlich »Übertrag« und »kein Übertrag«. »Übertrag« wird bei
Vorliegen eines Ausgangsübertrags vom ALU-Bit 0 während einer Addition gesetzt Dieser Zustand kann
auch während eines Befehls zur rückgekoppelten Linksoder Rechtsverschiebung gesetzt werden, wenn in der
Position 3 des zu verschiebenden Registers ein Eins-Bit steht Der Null-Merker 25 wird gesetzt wenn das
Rechenwerk (ALU) Nullen ausgibt Dieser Merker kann gleichzeitig mit dem Merker »Übertrag — kein
Übertrag« gesetzt sein. Während Zusammenfassungs-, Eingabe- und Ladeop«rationen können sowohl der
Merker (Kippglied) für Null als auch der für Nicht-Null eingeschaltet sein. Der Nicht-Null-Merker 26 wird
gesetzt wenn ein von Null verschiedener Wen vom Rechenwerk (ALU) ausgegeben wird. Dieser Merker
kann gleichzeitig mit dem Merker »Übertrag — kein
Übertrag« gesetzt sein. Die Zustandsmerker werden gesetzt, wenn man Daten durch das Rechenwerk (ALU)
weiterleitet. Wenn ein Befehl (wie IN, SNS oder LD) ausgeführt wird, der zwei je vier Bit lange Daienwörter
(Kleinwörter) durch das Rechenwerk (ALU) leitet, werden für das zweite dieser Datenwörter die
Zustar.Jsmerker nicht zurückgestellt. Diese Betriebsart ist als Zusammenfassungsbetrieb definiert. Der Zusammenfassungsbetrieb
wird auch für einige Rechenbefehle to eingeschaltet, damit mehrere Operationen mit einem
einzigen bedingten Verzweigungsbefehl ausgeführt und geprüft werden können.
Mit dem Dalenkippglied D und dem Befehlskippglied /, zusammengefaßt als Kippglieder 9, werden hohe oder
niedrige Speicheradressen bei Speicherdatenzyklen bzw. Befchlsabrufen gewählt. Das D-Kippglied 27 und
das /-Kippglied 28 werden separat mittels Programmierung ein- oder ausgeschaltet, indem man das Zusiandsbit
»Dillen niedriger Teil« (SDH) für die Datenzyklen und das Zustandsbit »Befehl niedriger Teil« (SIL) oder
»Befehl hoher Teil« (SIH) für die Befehlsabrufzyklen benutzt. Diese Kippglieder werden auch aufgrund der
Ausführung von RAL- oder /?7A/-Befehlen ein- oder
ausgeschaltet. Wahrend der Ausführung dieser Befehle
werden das D- und /-Kippglied ein- oder ausgeschaltet, entsprechend dem Zustand der D//-Bits im Verbindungsregister.
Sie werden gesetzt (eingeschaltet), wenn das Zustandsbit eine Eins ist. und sie werden rückgestellt
(ausgeschaltet), wenn das Zustandsbit eine Null ist. Eingeschaltet veranlassen diese Kippglieder die Steuereinheit
dazu. Speicherstellen zwischen den Wortadressen 2048 und 4095 im hohen Speicherteil zu wählen.
Ausgeschaltet veranlassen diese Kippglieder die Steuereinheit dazu, nur den niedrigen Speicher oder die ersten ·
Wörter bis zur Adresse 2048 zu wählen. Wenn zur 2K
stehen, dürfen diese Merker (Kippglieder) in der Programmierung nicht benutzt (eingeschaltet) werden.
Wenn mehr als 2K Wörter im Speicher zur Verfügung stehen, können diese Merker (Kippglieder) zusammen
oder einzeln benutzt werden. Bei der Einzelbenutzung können Daten beispielsweise im niedrigen Speicher und
Befehle im hohen Speicher (oder umgekehrt) abgerufen werden.
Während der Maschinenzyklen, in denen SDL-. SDH-. SIL- und SW-Befehle decodiert und die
Kippglieder D und / zurückgestellt bzw. eingeschaltet werden, wird der Speicher für den nächsten Befehl
angesteuert, basierend auf dem Zustand des /-Kippgliedes zu Beginn des Zyklus. Daher wird der zweite Befehl
nach dem S//.-Befehl oder dem S/H-Befehl ausgeführt
vor den Zugriffen zum hohen oder niedrigen Tej| des Speichers, entsprechend dem neuen Zustand des
/-Kippgliedes 28. Speicherdatenbefehle nach dem SDL- oder SDH-Befehl adressieren jedoch den hohen oder
niedrigen Speicherteil, entsprechend dem neuen, Zustand des D-Kippgliedes 27, da es sich hier um
Zwei-Zyklus-Operationen handelt. Nach den SDH-, SDL-, SIH- und S/Z--Befehlen kann man mit dem Befehl
» Verzweigen und Verbinden« die Speicherseitenfolgen von Daten und/oder Befehlszugriffen zum hohen und
niedrigen Speicherteil verfolgen und zu Unterroutinen verzweigen. Der Ä77V-Befehl gestattet ejne Rückkehr
zur unterbrochenen Befehlsreihe und für Spejcherzu-, ß5
griffe zum früheren Zustand der D- und /-Kippgjjeder.;
Während des /PL-Befehls wird das D-Kippglied, eingeschaltet, nachdem 4096 Bytes geladen wurden,
damit ein IPLbhzu 8192 Datenbytes möglich ist.
Mit dem bistabilen Kippglied 23 für das Datenbit X werden Speicher/Wortadressen zwischen 4096 und
8191 gewählt. In der Programmierung wird dieses Kippglied gesetzt durch den Befehl SXN und zurückgestellt
durch den Befehl SXF. Wenn das Kippglied für das Datenbit X gesetzt ist, erfolgen alle Speicherzugriffe
zwischen den Adressen 4096 und 8191, wobei der Zustand der Merker (Kippglieder) Dund /bestimmt,ob
die unteren Adressen 4096 bis 6143 oder die oberen Adressen von 6144 bis 8191 gewählt werden. Die
Befehle SXN und SXF können mit SIL und SIH so kombiniert werden, daß Verzweigungen von und zu
jeder Adresse im Speicher nach der entsprechenden Speicherwahl vorgenommen werden können.
Die Adressierung durch die Steuerung ist auf Speichermoduln von 1024 Wörtern ausgelegt (ROS
oder RAM), wobei jedes Wort 16 Datenbits ( 2 Bytes +'
2 Paritätsbits) umfaßt. Die acht Speicherwahiieiiungen
30 gestatten die Wahl einzelner Speichermoduln. Die Bits I bis 10 auf der Speicheradreßbusleitung 22
abdressicren ein Modulwort zwischen 0 und 1023. Für
eine Speicherschreiboperation wird die Bytewahl innerhalb des 2 Byte großen Wortes eingestellt über die
Sehreibleitung 32 (hohes/niedriges Byte), die das Speicheradreßbit 11 vom SAR 10 führt.
Der Datenadreßdecodierer 29 hat drei Eingänge, und zwar einen vom bistabilen Kippglied 23 für das Datenbit
X. einen von den Kippgliedern 9 (abhängig von der Adressierung der Daten oder Befehle), und einen von
dem werthohen Bit vom SAR 10 (über das Ausgangstor 21). Der Datenadreßdecodierer 29 wandelt den aus drei
Bits bestehenden Eingangswert in eine l-aus-8-Darstellung
am Ausgang um, um einen der acht Blöcke aus Speicherwörtern (Kapazität je IK) durch Anheben des
Signals auf einer der acht Speicherwahlleitungen 30 zu wählen.
Die Zyklussteuerung 31 ist ein Mikrobefehlsdecodierer.
Sie decodiert Mikrobefehle, die im Operationsregister 5 stehen, und erzeugt aufgrund dieser Befehle
zusammen mit Taktsignalen und verschiedenen Systemsteuersignalen, wie beispielsweise Rückstellsignalen, die
Leitsignale für jeden Operationszyklus. Konstruktive Einzelheiten der Zyklussteuerung 31 sind Fachleuten
allgemein bekannt und werden daher nicht genauer beschriebenen. Diese Einheit ist weitgehend durch den
Befehlssatz eines Datenprozessors definiert, und daher ändert sich ihre spezifische Ausführung von einem
System zum anderen weitgehend.
Mikrobefehlssteuerung
Wie oben schon gesagt, empfängt das Operationsregistür
5 Mikrobefehle vom Speicher über die Speicherdaten-ßusieitung \7. Jm. vorliegenden Ausführungsbeispiel
des Systems enthält jeder Mikrobefehl 16 Bits. Die ersten vier Bits definieren eine Verarbeitungsart für das
System und werden immer zur Decodierung an die Zyklussteuerung 31 gesendet. Das vorliegende Ausführungsbeispiel
der Erfindung ist Teil eines Systems mit elf Betriebsarten, die durch die ersten vier Bits des
Mikrobefehles wie folgt definiert sind.
BM{«-3
Prpgrammregister an Prognunmregistcr
Datenadreßregister an DatenadieBregister
Programmregister an Datenadre8register
0001
0011 Datenadreßregister an Programmregister
0100 Maske an Programmregister
0101 Maske an Datenadreßregister
0110 Eingabe
0111 Ausgabe
lOOx Laden
101a· Speichern
llxv Verzweigen
lOOx Laden
101a· Speichern
llxv Verzweigen
(x heißt: nicht signifikant)
Die Bedeutung der übrigen Felder (Bits 4 bis 15) des
Mikrobefehls hängt von der jeweiligen Betriebsart ab. Die in jeder Betriebsart ausgeführte Funktion wird
nachstehend beschrieben. Außorrlpm sinrl clir /π jeder
Betriebsart gehörenden Befehle aufgelistet. Abgesehen von der Kurzdarstellung in dieser Liste sind die
nachfolgenden Befehle größtenteils nur so weit beschrieben, wie sie für die Erfindung von Bedeutung
sind.
Die oben aufgeführten ersten sechs Betriebsarten werden alle für arithmetische und logische Operationen
im Rechenwerk (ALU)Z benutzt. In diesen Betriebsarten definieren die Bits 4 bis 7 die vom Rechenwerk mit
zwei erhaltenen Datenfeldern auszuführenden Operationen. Dieses Feld ist ein ALU-BefeM und wird vom
Operationsregister 5 an die Zyklussteuerung 31 übertragen, die es zur Erzeugung der Steuersignale für
das Rechenwerk (ALU) decodiert. Die Bits 8 bis Il
definieren eine A'-Feldadresse für die Betriebsarten PR
an PR. DAR an DAR. PR and DAR und DAR an PR und
eine Maske für die Betriebsarten MASKE an PR und MASKE an DAR. Die Bits 12 bis 15 definieren ein
V-Adreßfeld für alle sechs Betriebsarten.
Betriebsart PR an W(OOOO): Der Inhalt des durch das X-FeId angegebenen Programmregisters wird mit dem
Inhalt des durch das V-FeId bezeichneten Programmregisters in der vom Ai.U-Befehl gesteuerten Art
kombiniert. Die Ergebnisse werden in das durch das V-FeId bezeichnete f7?-Regisier gesetzt, wenn sie
gespeichert werden. Durch die Rechen- und Schiebeoperationen kann jeder der Zustandsmerker 7 gesetzt
werden. Die logischen Befehle können die Merker für Null oder Nicht-Null setzen. Die Zusammenfassungsbefehle
stellen die Merker (Kippglieder) nicht zurück, sondern nehmen ODER-Verknüpfungen der Ergebnisse
mit den vorhandenen Zustandsanzeigen vor.
Betriebsart DARan DAR(000\):
In dieser Betriebsart arbeitet das System genau so wie in der Betriebsart PR an PR. jedoch bezeichnen
das A--FeId und das V-FeId Datenadreßregister.
Betriebsart PKan DAR(00\0):
In dieser Betriebsart funktioniert das System genauso wie in der Betriebsart PR an PR. jedoch
bezeichnet das V-FeId ein Datenadreßregister.
Betriebsart DARan PR[OOW):
In dieser Betriebsart funktioniert das System genauso wie in der Betriebsart PR an PR, jedoch
bezeichnet das X-FeId ein Datenadreßregister.
Betriebsart Maske zn PR(OXOO):
In dieser Betriebsart funktioniert das System genauso wie in der Betriebsart PR an Pk, jedoch
bezeichnen die Bits 8 bis 11 eine Maske und keine Adresse.
Betriebsart Maskean DAR(0\0\):
In dieser Betriebsart funktioniert das System
genauso wie in der Betriebsart Maske an PR. jedoch bezeichnet das V-FcId ein Datenadreßregistcr.
Die 16 Funktionen werden vom Rechenwerk (ALU)
aufgrund der nachstehenden /W-lABefchle ausgeführt
(in den oben aufgeführten sechs Betriebsarten die Bits 4 ίο bis 7):
Funktion
Λ Z. i/Befehl
(Bits 4-"M
Addiere | 0000 |
Addiere mit Übertrag | 0001 |
übertragen | 0OiG |
Subtrahieren mit Borgen | 0011 |
Subtrahieren | 0100 |
Vergleichen | 0101 |
Subtrahieren Zusammengefaßt | 0110 |
Vergleichen Zusammengefaßt | Olli |
UND | 1000 |
Prüfung | 1001 |
UND Zusammengefaßt | 1010 |
Prüfung Zusammengefaßt | "1011 |
ODER | 1100 |
Rechtsverschiebung*) | 1101 |
EXKLUSIV-ODER (ANTIVALENZ) | UlO |
Rechtsverschiebung mit Rück | 1111 |
kopplung*) |
*) Diese beiden Funktionen werden im Maskenbetrieb nicht ausgerührt.
Im Eingabebetrieb (OUO) werden die acht Datenbits (I Byte) auf der Eingangsdaten-Busleitung 33 übertragen
und/oder geprüft. Daten werden auf diese Busleitung von dem gewählten Gerät gegeben, dessen
Adresse im Operandenfeld des Befehls in den Bits 8 bis 15 definiert ist. Diese Adresse kann jeder Wert zwischen
0 und 225 dezimal oder FF hexadezimal sein. Im Eingangsbetrieb gibt es zwei Befehle, und zwar Eingabe
vom Gerät (IN) und Gerät abfragen (SNS) Bei dem Befehl IN leitet das System die Daten von der
Eingangsdaten-Busleitung 33 (auf die sie vom gewählten Gerät gegeben wurden) weiter und speichert sie im
PRO und PR 1. PRO enthält die Bits 0 bis 3 und PR 1 die Bits 4 bis 7. Die Operation beim S/VS-Befeh!
unterscheidet sich nur dadurch, daß die Daten nicht in
einem Register gespeichert, sondern auf den Zustand Null oder Nicht-Null geprüft werden. Die Befehle IN
und SNS stellen alle Zustandsmerker 7 zu Beginn der Operation zurück, und es können nur die Merker Null
und Nicht-Null gesetzt werden. Das zweite Byte läuft durch das Rechenwerk (ALU)Z im Zusammenfassungsbetrieb, und die Zustandsmerker zeigen das ODER-verknüpfte
Ergebnis der beiden durch das Rechenwerk {\LU) laufenden Bytes an. Die beiden Merker
(Kippglieder) 25 und 26 für Null und Nicht-Null können
am Ende der Operation beide gesetzt sein.
Im Ausgabebetrieb (Olli) werden acht Bits (ein Datenbyte) über die Ausgangsdaten-Busleitung 19 an
das gewählte Gerät übertragen. Wie im Eingabebetrieb wird das Datenempfangsgerät durch die entsprechende
Geräteadressc im Operandenfeld des Befehles gewählt. Die Geräteadresse im Operandenfeld kann höchstens
dezimal 255 oder hexadezimal FFsein. Im Ausgabebetrieb
gibt es zwei Befehle, und zwar den Befehl Ausgabe an Gerät (OUT) und direkte Eingabe und Ausgabe
(DlO). Bei dem Befehl OUT wird ein Datenbyte von PRO und PR 1 an das Gerät gesendet PRO enthält die
Bits 0 bis 3 und PR 1 die Bits 4 bis 7. Mit dem Befehl DIO werden die Daten von der Eingangsdaten-Busleitung 33
an die Ausgangsdaten-Busleitung 19 übertragen. (Das Gerät, das die Daten auf die Eingangsdaten-Busleitung
gibt, muß dieselbe Adresse haben wie das Gerät, das die Daten von der Ausgangsdaten-Busleitung in diesem
System empfängt.) Die Befehle OLT und DIO ändern die Zustandsmerker nicht.
Ladebetrieb (1000) (ausgenommen »Laden absolute
>Befehles codiert ist, zur Definition der Speicheradresse.
Die 12 Bit große Adresse wird gebildet unter-Verwendung
des Inhaltes des DAR 0 als Adreßbit 0 bis 3, des DAR 1 als Adreßbus 4 bis 7 und des Wertes im
Befehl als Adreßbits 8 bis 11. Die geladenen Daten
gehen in die PR 0 und 1. Das PR 0 enthält die ersten vier
Bits und das PR1 die nächsten vier Bits. Dieser Befehl
gestattet dem Programmierer die Adressierung von bis zu 16 Speicherstellen, ohne den Inhalt des DARQ und 1
ίο zu verändern. Die Bits 4 bis 7 sind 1010. Die Bits 8 bis Jl
können ignoriert werden oder eine besondere Konfiguration wie z. B. 0000 haben.
Der Befehl »Speicher qn E/A-Gerät« (MIO) benutzt
d'-t in den DARO, 1 und 2 enthaltene Adresse zur
Definition der Speicheradresse für die an ein E/A-Gerät zu sendenden Daten, wobei das Gerät durch die Bits δ
bis 15 des Befehles definiert ist. Die drei DAR bilden die 12 Bits große Adresse aus dem Inhalt des DAR 0 für die
Sbits 4 bis 7
i Lädcucificu AdrcSbits 0 bis 3, das DAR X für die AdrcSbits 4 bi
haben alle Befehle eine Ausführungslänge von zwei Zyklen. Wählend des zweiten Zyklus (Datenzyklus)
wird ein volles Datenwort aus dem Speicher auf die Speicherdaten-Buslcitung 17 gelesen. Das hohe (HO)
oder niedrige (Nl) Byte des Datenworts wird zur Verarbeitung geleitet, abhängig davon, ob die DAR-Adresse
(Bit 11) oder die Operandenadresse gerade bzw. ungerade ist. Das Byte wird an PR, DAR oder das
E/A-Gerät geleitet. Bei den zwei Befehlen »Verbin- dungsregisterladerm (LDL) wen'en beide Bytes des
Dr.tenwortes in das Verbindungsregister 6 geleitet. Es gibt zehn verschiedene Ladebefehle.
Der Befehl »Laden PR« (LDR) veranlaßt das System
dazu, ein Datenbyte von der durch die drei Datenadreßregister (DAR)definierten Speicherstelle zu holen. Die
Daten werden in zwei Programmregister (PR) gesetzt, die durcn das X-FeId und V-FeId definiert sind. Die erste
Hälfte des Datenfeldes wird in das .Y-FeId-Register un4
die zweite Hälfte in das V-Feld-Register gesetzt. Die drei DA R's bilden die 12 Bit große Byteadresse aus dem
Inhalt des DARO für die Bits 0 bis 3, des DAR 1 für die
Bits 4 bis 6 und des DAR2 für die Bits 8 bis H. Die DARO, 1 und 2 müssen auf die gewünschte Speicheradresse
gesetzt werden, bevor der Ladebefehl ausgeführt wird. Für die Operation LDR sind die Bits 4 bis 7
des Mikrobefehles 1001.
Der Befehl »Laden PR und Erhöhen DAR + 1«
(LDRP) ist derselbe wie der LDK-Befehl, erhöht
jedoch den Inhalt von DARO, 1 und 2 um +1. Die Bits 4 bis 7 dieses Mikrobefehles sind 1011.
Der Befehl »Laden DAR« (LDD) veranlaßt das System zum Abruf eines Datenbytes aus der durch die
drei DARO, 1 und 2 definierten Speicherstelle. Die Daten werden in die beiden DAR gesetzt, die durch das
X-FeId und das V-FeId definiert sind, uncj zwar wird die
erste Hälfte des Datenbyte in das X-Feld-Register und
die zweite Hälfte in das V-Feld-Register gesetzt Die
drei DAR bilden die 12 Bit große Adresse nut dem Inhalt des DAR 0 für die Bits 0 bis 3, des DAR 1 für die
Bits 4 bis 7 und des DAR 2 für die Bits 8 bis 1 ]. Das DAR muß auf die gewünschte Adresse eingestellt sein, bevor
der Ladebefehl ausgeführt wird. Für diesen Mikrobefehl sind die Bits 4 bis 7 0100.
Der Befehl »Laden DAR und Erhöhen DAR +1« (LDDP) ist derselbe wie der Befehl LDD, erhöht jedoch
den Inhalt von DAR 0,1 und 2 um +1. Die Bits 4 bis 7
sind 0110.
Der Befehl »Laden Speicher indexiert« ^L£)$ benutzt
DAR 0 und 1 und den Wert, der in den Bits \2 bis }5 des
und das DAR2 für die Adreßbus 8 bis U. Die gewünschte Adresse muß in den DAR vor Ausführung
des Af/O-Befehls enthalten sein. Die Identifikation für
das zu adressierende Gerät ist im Operandenbefehl codiert und muß zwischen dezimal 0 und 255 liegen. Die
Bits 4 his 7 sind UOO.
Der Befehl »Speicher an E/A-Gerät und DAR +1 erhöhen« (MIOP) tut dasselbe wie der M/O-Befehl,
erhöht aber außerdem noch den Inhalt von DARQ, 1 und 2 um + 1. Die Bits 4 bis 7 sind U10.
Der Befehl »Verbindungsregister Laden« (LDL) veranlaßt das System dazu, das Verbindungsregister 6
aus dem Speicher unter Benutzung der durch die DARQ, 1 und 2. definierten Adresse zu laden. Die
DARO, \ und 2 müssen vor Benutzung dieses Befehles
- 35 eingestellt sein und eine gerade Adresse enthalten, da
diese Operation ein ganzes Wort im Speicher adressiert Die Bits 4 bis 7 des ersten Speicherbyte und die Bits 0 bis
6 des zweiten Speicherbyte bilden die in das Verbindungsregister geladen*; Adresse. Bit 2 des ersten
■to Byte ist das Steuerbjt für die Wahl des hohen oder
niedrigen Teils des Datenspeichers (Einstellung des D-Kippg|ieds), und Bit 3 des ersten Byte ist das Steuerbit
für die Wahl des hohen oder niedrigen TeSs des Befehlsspeichers (Einstellung des /-Kippglieds). Gieichzeitig
mit der Ausführung des LDL- Befehles wird der Inhalt des ersten Rückgriffregisters 11 in das zweite
Rückgriffregister 12 und der Inhalt des Verbindungsregisters 6 in das erste Rückgriffregister 11 genauso
übertragen, wie bei einem ßi4L-Befehl. Dieser Befehl
so kann zur Initialisierung des Verbindungsregisters 6 für
den A4L-Befehl benutzt werden. Die Bits 4 bis 7 sind
0000. Die Bits 8 bis 15 können ignoriert werden.
Der Befehl »Yerbindungsregister Laden und DAR + 2 erhöhen« (LDLP)XUX dasselbe wie der Befehl LDL
erhöht jedoch den laufenden Inhalt yon DAR 0,1 und 2 um -f-ZDieBn^l^sindOOlO.
|n den Bits 4 bis 13 des Befehles »Laden absolute Adresse« (LDA) ist die Adresse des Speicherplatzes
definiert dessen inhalt (1 Byte) in die PR 0 und 1 zu
§Q übertragen ist Das PR 0 erhält die Bits 0 bis 3 und das
PR1 die Bits 4 bis 7 des abgerufenen Byte. Die Bits 0 bis
3 dieses Befehles sjnd, 1001.
Die Ladebefehje mit Ausnahme von MIO, MIOP, LDL und LDLP stellen, die Zustandsmerker 7 für das
, 65 Rechenwerk (ALU) zu, Beginn einer jeden Operation
zurück. Es können nur dje Merker (Kippglieder) 25 und
■ 26 für Null bzw. r^jcJij-NuU gesetzt werden- Das zweite
Haibbyte läuft durch das Rechenwerk (ALU)i im
ί3
Zusammenfassüngsbetrieb und die Zusiaridsmerker
enthalten das ODER-verkHflpfte Ergebnis der beiden
durch das Rechenwerk (ALU) laufenden ttalbbytes. Die
Merker für Null und Nicht-NtiÜ können am Ende der Operation beide eingeschaltet sein. Die Befehle MIO,
MIOP, LDL, und LDLP Verändern den Schaltzustand der Zustandsmerker nicht
Speicherbetrieb (1010) (mit Ausnahme »Speichern in absoluter Adresse«, dessen Kennzeichen 1011 ist): Diese
Befehle sind im wesentlichen das Gegenstück für die Befehle des Ladebetriebes. Im Ladebetrieb finden
Übertragungen vom Speicher in die Register statt und ir.? Speicherbetrieb Übertragungen von den Registern
in den Speicher.
Mit Ausnahme von STI und STA speichern alle Speicherbefehle ein Datenbyte in einem Speicherplatz,
dessen Adresse durch die aktiven DARO, 1 und 2 definiert ist. Diese Register bilden eine 12 Bit große
Adresse aus dem Inhalt des DARO für die Adreßbits 0 bis 3. des DAR I für die Adreßbits ö bis 7 und des DARI
für die Adreßbits 8 bis 11. Im EINS-Zustand veranlaßt
das Bit U eine Speicherung im hohen Byte und im NULL-Zustand im niedrigen Byte des Wortes. Die
DA RO, 1 und 2 müssen auf die gewünschte Adresse
eingestellt sein, bevor der Speicherbefehl ausgeführt wird. Ein Speicherbefehl wird für einen Festwertspeicher wie eine Null-OP-Operation behandelt. Die
Speicherbefehle ändern den Schaltzustand der Zustandsmerker nicht
Die folgenden acht Speicherbefehle sind einfach die Umkehrung der entsprechenden Ladebefehle (Bits 4 bis
15 sind dieselben): Speichern PR (STR). Speichern PR
und DAR +1 erhöhen (SDRP). Speichern DAR(STD).
Speichern DAR und DAR +1 erhöhen (STDP). E/A-Daten an Speicher (IOM), E/A-Daten an Speicher
und DAR +1 erhöhen (IOMP). Speicher indexiziert
speichern (STI) und Speichern in absoluter Adresse (STA)
Im Speicherbetrieb sind vier Befehle auf das Verbindungsregister bezogen (im Ladebetrieb waren es
zwei). Diese Befehle sind nachfolgend definiert.
Der Befehl »Speichern hohen Teil aus Verbindungsregister« (SLH) veranlaßt das System zum Speichern
der werthohen Bits des Verbindungsregisters 6 im Speicherplatz mit der Adresse, die durch die ersten drei
DAR definiert ist Diese müssen eingestellt sein, bevor dieser Befehl ausgeführt wird. Dadurch werden die
Zustandsbits D und / des Verbindungsregisters in die Speicherbits 2 und 3 gesetzt, und die Speicherbits 0 und
1 auf Null gesetzt. Die Speicherbits 4 bis 7 empfangen die Bits 0 bis 3 des Verbindungsregister-Adreßfeldes.
Dieser Befehl muß die werthohen Bits des Verbindungsregisters in eine gerade Byteadresse speichern, so daß
sie als der werthohe Teil eines Vollwortes für die Befehle LDL und LDLPzur Verfügung stehen.
Der Befehl »Speichern hohen Teil aus Verbindungsregister und DAR +1 erhöhen« (SLHP) tut dasselbe
wie der Befehl SLH, erhöht jedoch den Inhalt von DA R 0,1 und 2 um +1.
Der Befehl »Speichern niedrigen Teil aus Verbindungsregister« (SLL) veranlaßt das System dazu, die
Bits 4 bis 10 des Adreßfeldes des Verbindungsregisters 6
in die Bitposition 0 bis 6 der Speicherstelle zu speichern, die durch den Inhalt von DARO, I und 2 definiert ist.
Bit 7 der Speicherstelle wird auf Null gestellt. Der SLZ.-Befehl muß die wertniederen Bits des Verbindungsregisters in eine ungerade Byteadresse speichern,
und es muß das Byte nach dem geraden Byte sein, das im
5L//-Befehi benutzt wurde. Dadurch kann der gespeicherte Inhalt des Verbmäungsregisters 6 für das'
Neuladen durch die LDL-Eefehis zur Verfügung gestellt
werden.
Der Befehl »Speichern niedrigen Teil aus Verbindungsregister und DAR +1 erhöhen« (SLLP) tut
dasselbe wie der Befehl SLL. erhöht jedoch den Inhalt von DAR 0,1 und 2 um +1.
Verzweigungsbetrieb (1 \XXy. Die die Umgebung des vorliegenden Ausführungsbeispieles der Erfindung
bildende Steuerung kann sechs unbedingte Verzweigungsbefehle ausführen. Drei benutzten das Verbindungsregister 6. Einer von ihnen, der Befehl »Rückkehren und Verbinden« (RAL) ist ein direktes Ergebnis der
Ausführung dieser Erfindung. Alle Verzweigungszieladressen sind Vollwortadressen (Zwei-Byte-Adressen)
und durch die Bits 4 bis 14 definiert Die Adressen müssen gerade sein, weil alle Befehle an einer geraden
Bytegrenze beginnen. Bit 15 ist Teil der Betriebsfunktion für Verzweigungsbefehie. Der an der Verzweigungs-Zieladresse stehende Befehl wird für die Ausführung aus dem Speicher geholt Die Verzweigungs-Zieladresse wird um 1 erhöht und in das Befehls-Adreßregister IA R 4 gesetzt so daß dieses die Adresse des
nächsten auszuführenden Befehles enthält
Der Befehl »Verzweigen und Warten« (BAW) veranlaßt das Systeni zum Verzweigen und anschließenden Stoppen des Steuerungstaktes nach Ausführung der
Verzweigung. Die Steuerung startet wenn ein Start-
Taktimpuls empfangen wird. Ein System-Rückstellsi
gnal nimmt die Steuerung ebenfalls aus dem Verzweigungs- und Wartezustand heraus. Die Bits I bis 3 dieses
'Mikrobefehles sind 1100. Die Bits 4 bis 14 geben die Verzweigungs-Zieladresse an, und Bit 15 ist Null.
definierten Adresse. Die Bits 0 bis 3 sind 1101, Bit 15 ist
Der Befehl »Verzweigen und Verbinden« (BAL) ist
ein unbedingter Verzweigungsbefehl zu der in den Bits 4
bis 14 definierten Adresse, der auch die Adresse des nächstfolgenden Befehles (nach dem Befehl BAL) und
den Zustand der Kippglieder (Merker) D und / in das Verbindungsregister zur künftigen Benutzung durch
«5 einen der Befehle RTNoder /M Z. setzen läßt Die Bits 0
bis 3 sind 1110, Bit 15 ist Null. Im vorliegenden System
können bis zu 3 R4L-Befehle gegeben werden, bevor
ein K77V-Befehl gegeben wird, ohne daß die Rückkehradresse verloren geht, per SAL-Befehl läßt außerdem
so den Inhalt des Verbindungsregisters in das erste
Rückgriffregister 11 und dessen Inhalt in das zweite Rückgriffregister 12 übertragen. Wenn mehr als drei
BA Z,-Befehle gegeben werden, werden nur die jeweils
letzten drei Adressen gerettet Der Befehl» Verzweigen
ober Verbindungsregister« (RTN) löst eine unbedingte Verzweigung zu der im Verbindungsregisier enthaltenen Adresse aus. Die Kippglieder (Merker) D und /
werden außerdem entsprechend den Zustandsbits im Verbindungsregister eingestellt. Außerdem wird der
Inhalt des ersten Rückgriff registers 11 in das Verbindungsregister und der Inhalt des zweiten Rückgriffregisters 12 in das erste Rückgriffregister Il übertragen.
Der Befehl RTNhai das Format
Uli 0000 0000 0001 .
Der Befehl »Rückkehren und Verbinden» (RAL) benutzt das Verbindungsregister 6. die Kippglieder 9
und das Befehlsadreßrcgister IAR4. Vor der Ausfiih-
rung des RAL-Befehles muß das Verbindungsregister
geladen worden sein (z. B. durch BAL, LDL oder LDLP).
Zur Zeit der Ausführung wird der Inhalt des
Verbindungsregisters 6 für die nächste Befehlsadresse benutzt und dann der Inhalt des /ΛΛ4 und der
Kippglieder 9 in das Verbhidungsregister 6 gesetzt
Dieser Befehl verändert den Inhalt der beiden Rückgriffregister 11 oder 12 nicht (im Gegensatz zu den
Befehlen BAL und Ä77V, die das tun). Im vorliegenden
Ausführungsbeispiel hat der RAL-Befehl das Format
1111 0010 0000 0001.
Der Befehl »Verzweigen überDARa(BVD)löst eine
Verzweigung zu der durch die drei DAR gebildeten Adresse aus. Das DA R 0 liefert die Adreßbits 0 bis 3, das
DARi die Adreßbits 4 bis 7 und das DARI die Adreßbits 8 bis 10 der Speicherzieladresse. Das
wertniedere Bit vom DAR2 (Bit 11) wird für den Speicherzugriff nicht gebraucht. Damit ist sichergestellt,
daß alle Verzweigungen zu einer geraden Bytegrenze
erfolgen. Der Inhalt der DAR wird durch diesen Befehl nicht verändert Der VD-Befehl hat das Format
Uli 1000 0000 0001.
Im umgebenden System gibt es auch zehn bedingte Verzweigungsbefehle, die nachfolgend zusammen mit
der Bitkonfiguration für die Bits 0 bis 3 und 15 aufgelistet sind. Die Bits 4 bis 14 definieren die
Verzweigungs-Zieladresse.
30
Befehl
Bits 0-3
Bit 15
1100 | 1 |
1101 | 0 |
1110 | 1 |
1111 | 0 |
1100 | 1 |
1101 | 0 |
UlO | 1 |
1111 | 0 |
UlO | 1 |
1111 | 0 |
•
40
Verzweigung Kein Obertrag
Verzweigung Obertrag
Verzweigung Nicht-Null
Verzweigung Null
Verzweigung Hoch
Verzweigung Niedrig bei deich
Verzweigung Nicht deich
Verzweigung Gleich
Verzweigung Wahr
Verzweigung Falsch
Die Bitkonfiguration einiger dieser Befehle ist mit anderen identisch. So haben z. B. die Befehle Verzweigung Nicht-Null. Verzweigung Nicht deich und
Verzweigung Wahr alle dieselbe Bitkonfiguration 1110
... 1 und sind somit tatsächlich derselbe Befehl. Die eigentliche Bedeutung dieser Befehle hängt von ihrer
Benutzung in einem Programm ab. Die ersten vier oben aufgelisteten Befehle werden nach einer Rechenoperation benutzt. Die nächsten vier Befehle werden nach
einer Vergleichsoperation benutzt und die leinen zwei Befehle nach einer Prüfoperation. Jeder dieser Verzwei- ss
gungsbefehle fragt tatsächlich die * Stellung eines Kippgliedes (Merker) ab, die Bedeutung der Stellung
der verschiedenen Kippglieder (Merker) wird jedoch durch die vorhergehende Operation bestimmt.
Bei Verwirklichung dieser Erfindung in einem System 6ö
sind wesentliche Elemente (und ihre Realisierung im vorliegenden Ausführungsbeispiel): eine Verbindungseinrichtung zum Retten von Adressen (Verbindungsregister 6). eine Einrichtung zur Initialisierung der
Verbindungseinrichtung (Zyklussteuerung 31, die die Reaktion des Systems auf die Befehle BAL LDL und
: LDLP steuert) und eine Einrichtung zur Übertragung 'der Steuerung an einen Befehl mit der in der
Verbindungseinrichtung geretteten Adresse und zur Einstellung der Verbindungseinrichtung auf einen neuen
Wert (Zyklussteuerung 31 veranlaßt aufgrund eines R/VL-Befehles die Übertragung des Inhaltes des
Verbindungsregisters 6 in die Kippglieder 9 und das Befehls-Adreßregister 4 und läßt den Inhalt der
Kippglieder 9 und des Befehls-Adreßregisters 4 in das Verbindungsregister 6 übertragen).
Im vorliegenden Ausführungsbeispiel wird ein Verzögerungselement 35 (das z.B. aus einem Paar
Kippgliedern zur vorübergehenden Speicherung bestehen kann) benutzt, während der Inhalt des Verbindungsregisters 6 gegen den Inhalt der Kippglieder 9 und des
IAR4 ausgetauscht wird. Bevor eine Eingangsinformation empfangen wird, die die Stellung der Ktppgtfeder 9
ändern würde, wird deren Inhalt in das Verzögerungselement 35 übertragen. Wenn die Zyklussteuerung 31
einen ÄAL-Befehl decodiert, wird der Inhalt des
Verbindungsregisters gegen den Inhalt der Kippglieder 9 und des IAR4 wie folgt vertauscht: Die Bahnen vom
Verbindungsregister 6 zum Speicher-Adreßregister (SAR) 10 und vom Verbindungsregister 6 zu den
Kippgliedern 9 werden so aktiviert, daß der Inhalt des Verbindungsregisters in das SAR 10 und die Kippglieder 9 wie bei einem /?77V-Befehl übertragen wird (in
diesem Fall wird der Inhalt der Rückgriffregister 11 und
12 jedoch nicht betroffen). Dadurch wird dar Adreßmechanismus des Systems so eingestellt, daß als nächster
aus dem Speicher ein Befehl geholt wird, der an einem vorher festgelegten Rückkehrpunkt steht. Dann werden
die Bahnen vom IA R 4 zum Verbindungsregister 6 und
vom Verzögerungselement 35 (das den früheren Inhalt der Kippglieder 9 enthält) zum Verbindungsregister 6
aktiviert und der Inhalt des IAR4 sowie der alte Inhalt der Kippglieder 9 in das Verbindungsregister 6
übertragen (wie bei einem BAL-Befehl, jedoch sind hier
die Rückgriffregister 11 und 12 nicht betroffen). Dadurch wird in das Verbindungsregister 6 die
Information eingegeben, die später durch einen anderen RAL-Befehl (oder einen Ä7A/-Befehl) dazu benutzt
wird, zu dem Befehl zurückzukehren, der diesem RAL-Bcfehl folgt. Dann wird die Bahn vom SAR 10
über die Inkrementierschaliung 15 zum IAR4 aktiviert
und der neue Inhalt des SARiO (empfangen vom Verbindungsregister 6) um +2 erhöht (weil die
Befehlsadressierung auf Wortgrenzen läuft) und im IAR4 gespeichert. Somit enthält das "iAR4 jetzt die
Adresse desjenigen Befehles, der dem Befehl an dem vorher festgelegten Rückkehrpunkt folgt.
Die Erfindung erleichtert die Verbindung zwischen Computerprogrammen und ermöglicht so einen im
wesentlichen gleichzeitigen Betrieb zweier separater Programme. Diese Möglichkeit wird ohne die allgemeine Belastung (z. B. Komplexität, Kosten, Programmieraufwand usw.) geschaffen, die durch ein Unterbrechungssystem eingeführt würde. Außerdem wird durch
eine erfindungsgemäße Anordnung die Verbindung zwischen Programmen schneller hergestellt als bei den
anfangs beschriebenen herkömmlichen Einrichtungen. Gerade der letzte Punkt ist bei einem E/A-Steuergerät
besonders wichtig, das zwei Geräte gleichzeitig überwachen und jeweils einem von beiden sehr schnell
antworten muß.
Claims (7)
1. Anordnung zum Wechsel zwischen verzahnt zu verarbeitenden, voneinander unabhängigen Programmen
oder Programmsegmenten in einer Datenverarbeitungsanlage, die ein Speicherregister für die
jeweils benutzte Befehlsadresse, ein Befehlsadreßregister für die als nächste zu benutzende Befehlsadresse,
ein Verbindungsregister für eine Widereintrittsadresse sowie ein Zustandsregister zur Aufnahme
von Zustandsangaben enthält, gekennzeichnet durch die Kombination,
daß das Verbindungsregister (6) zur direkten Verbindung zwischen den seriell auszuführenden
Befehlen mehrerer Programme mittels eines Verzweigungsbefehls (BAL) mit der Adresse des
nächstfolgenden Befehls aus dem Befehlsadreßregister (4) undxtitn Inhalt des Zustandsregisters (9), Γη
dem sich Züstandsifsforination des dem Verzweigungsbefehl
vorangehenden Befehls befindet, geladen wird und
daß zur Rückkehr zum nächsten Befehl des unterbrochenen Programme mittels eines besonderen
Befehls (RAL) die im Verbindungsregister (6) gespeicherte Adresse in das Speicheradressenregister
(10) und die Zustandsinformation in das Zustandsregister(9) und danach die im Befehlsadreßregister
(4) gespeicherte Befehlsadresse und die im Zustandsregisf <rr (9) gespeicherte Zustandsinformation
in das Verbindungsregister (6) übertragen werden.
2. Anordnung itach Patentanspruch 1, dadurch
gekennzeichnet, daß Ausgänge dt. Zustandsregister (9) über ein Verzögerungselement (35) mit Eingängen
des Verbindungsregisters (6) verbunden sind.
3. Anordnung nach Patentanspruch 1 und/oder 2, dadurch gekennzeichnet, daß Ausgänge der Zustandsregister
(9) mit Steuereinrichtungen (29, 30) zur Auswahl von Speicherbereichen verbunden sind.
4. Anordnung nach einem der Patentansprüche 1 bis 3, dadurch gekennzeichnet, daß das Verbindungsregister (6) weitere Eingänge zum Laden dieses
Registers aus einer anderen Quelle als dem Befehlsadreßregister aufweist.
5. Anordnung nach einem der Patentansprüche I bis 4, dadurch gekennzeichnet, daß mindestens ein
Rückgriff register (11) vorgesehen ist, dessen Eingänge mit Ausgängen des Verbindungsregisters (6) und
dessen Ausgänge mit Eingängen des Verbindungsregisters verbunden sind, so daß beim Laden des
Verbindungsregisters dessen Inhalt in das Rückgriffregister verschoben werden kann, und daß bei
Entnahme des Inhaltes des Verbindungsregisters dieses aus dem Rückgriffregister nachgeladen
werden kann.
6. Anordnung nach Patentanspruch 5, dadurch gekennzeichnet, daß bei Decodierung des besonderen
Befehls (RAL) das Verschieben der Inhalte zwischen Rückgriff register (11) und Verbindungsregister
(6) unterbunden wird.
7. Verfahren zum Betrieb der Anordnung nach einem der Patentansprüche 1 bis 6, dadurch
gekennzeichnet, daß zum Wechsel zwischen zwei Programmen in beiden Programmen der besondere
Befehl (RAL) verwendet wird, so daß nach initialisieren des Inhaltes des Verbindungsregisters
(6) jeweils nur die Ausführung dieses besonderen Befehls zürn Wechsel in Richtung beider Programme
erforderlich ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US05/866,425 US4173782A (en) | 1978-01-03 | 1978-01-03 | Return and link mechanism |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2854400A1 DE2854400A1 (de) | 1979-07-05 |
DE2854400C2 true DE2854400C2 (de) | 1983-12-22 |
Family
ID=25347587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2854400A Expired DE2854400C2 (de) | 1978-01-03 | 1978-12-16 | Anordnung zum Wechsel zwischen verzahnt zu verarbeitenden Programmen |
Country Status (12)
Country | Link |
---|---|
US (1) | US4173782A (de) |
JP (1) | JPS5495140A (de) |
AU (1) | AU4306079A (de) |
BR (1) | BR7900028A (de) |
CA (1) | CA1103365A (de) |
CH (1) | CH635451A5 (de) |
DE (1) | DE2854400C2 (de) |
ES (1) | ES476361A1 (de) |
FR (1) | FR2413715B1 (de) |
GB (1) | GB2011674A (de) |
IT (1) | IT1160340B (de) |
SE (1) | SE7813379L (de) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4309753A (en) * | 1979-01-03 | 1982-01-05 | Honeywell Information System Inc. | Apparatus and method for next address generation in a data processing system |
US4296470A (en) * | 1979-06-21 | 1981-10-20 | International Business Machines Corp. | Link register storage and restore system for use in an instruction pre-fetch micro-processor interrupt system |
US4410940A (en) * | 1980-12-05 | 1983-10-18 | International Business Machines Corporation | Transfer of control method and means among hierarchical cooperating sequential processes |
US4467410A (en) * | 1981-02-04 | 1984-08-21 | Burroughs Corporation | Multi-phase subroutine control circuitry |
US4649472A (en) * | 1981-02-04 | 1987-03-10 | Burroughs Corporation | Multi-phase subroutine control circuitry |
US4939640A (en) * | 1981-05-22 | 1990-07-03 | Data General Corporation | Data processing system having unique microinstruction control and stack means |
US4494193A (en) * | 1982-09-30 | 1985-01-15 | At&T Bell Laboratories | Deadlock detection and resolution scheme |
GB8602964D0 (en) * | 1986-02-06 | 1986-03-12 | Metaforth Computer Systems Ltd | Computer architecture |
JP2545789B2 (ja) * | 1986-04-14 | 1996-10-23 | 株式会社日立製作所 | 情報処理装置 |
JPS6378231A (ja) * | 1986-09-22 | 1988-04-08 | Nec Corp | 部分的プログラム結合方式 |
US5835743A (en) * | 1994-06-30 | 1998-11-10 | Sun Microsystems, Inc. | Application binary interface and method of interfacing binary application program to digital computer |
US6154865A (en) * | 1998-11-13 | 2000-11-28 | Credence Systems Corporation | Instruction processing pattern generator controlling an integrated circuit tester |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3309672A (en) * | 1963-01-04 | 1967-03-14 | Sylvania Electric Prod | Electronic computer interrupt system |
US3676852A (en) * | 1970-07-20 | 1972-07-11 | Ibm | Multiple program digital computer |
US3693162A (en) * | 1970-10-14 | 1972-09-19 | Hewlett Packard Co | Subroutine call and return means for an electronic calculator |
US3849765A (en) * | 1971-11-30 | 1974-11-19 | Matsushita Electric Ind Co Ltd | Programmable logic controller |
JPS535140B2 (de) * | 1973-07-11 | 1978-02-24 | ||
US3972029A (en) * | 1974-12-24 | 1976-07-27 | Honeywell Information Systems, Inc. | Concurrent microprocessing control method and apparatus |
-
1978
- 1978-01-03 US US05/866,425 patent/US4173782A/en not_active Expired - Lifetime
- 1978-10-27 CA CA314,552A patent/CA1103365A/en not_active Expired
- 1978-12-05 FR FR7836052A patent/FR2413715B1/fr not_active Expired
- 1978-12-11 GB GB7847970A patent/GB2011674A/en not_active Withdrawn
- 1978-12-12 JP JP15277078A patent/JPS5495140A/ja active Granted
- 1978-12-15 IT IT30868/78A patent/IT1160340B/it active
- 1978-12-16 DE DE2854400A patent/DE2854400C2/de not_active Expired
- 1978-12-19 CH CH1290978A patent/CH635451A5/de not_active IP Right Cessation
- 1978-12-27 ES ES476361A patent/ES476361A1/es not_active Expired
- 1978-12-28 SE SE7813379A patent/SE7813379L/xx unknown
-
1979
- 1979-01-02 AU AU43060/79A patent/AU4306079A/en not_active Abandoned
- 1979-01-03 BR BR7900028A patent/BR7900028A/pt unknown
Also Published As
Publication number | Publication date |
---|---|
CA1103365A (en) | 1981-06-16 |
SE7813379L (sv) | 1979-07-04 |
FR2413715A1 (fr) | 1979-07-27 |
BR7900028A (pt) | 1979-08-07 |
CH635451A5 (de) | 1983-03-31 |
AU4306079A (en) | 1979-07-12 |
IT1160340B (it) | 1987-03-11 |
FR2413715B1 (fr) | 1986-02-21 |
DE2854400A1 (de) | 1979-07-05 |
JPS5495140A (en) | 1979-07-27 |
JPS5715422B2 (de) | 1982-03-30 |
GB2011674A (en) | 1979-07-11 |
ES476361A1 (es) | 1979-07-16 |
IT7830868A0 (it) | 1978-12-15 |
US4173782A (en) | 1979-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2555963C2 (de) | Einrichtung zur Funktionsmodifizierung | |
DE3587591T2 (de) | Mikroprozessor für Forth-ähnliche Sprache. | |
DE3685913T2 (de) | Vektorenverarbeitung. | |
DE1931966C3 (de) | Datenverarbeitungsanlage mit Assoziativspeichern | |
DE2318069C2 (de) | Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix | |
DE2715073C3 (de) | Mikroprogrammierte Rechner-Steuervorrichtung | |
DE2714805A1 (de) | Datenverarbeitungssystem | |
DE1499200B2 (de) | Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung | |
DE2854400C2 (de) | Anordnung zum Wechsel zwischen verzahnt zu verarbeitenden Programmen | |
DE1299146B (de) | Befehlssteuereinheit | |
DE2907181A1 (de) | Befehlssatz-modifizierregister fuer einen datenprozessor | |
DE2424931A1 (de) | Datenverarbeitungsanlage, insbesondere mikroprogramm-datenverarbeitungseinheit mit parallelen befehlsstroemen fuer mehrere ebenen von subbefehlsvorraeten | |
CH623947A5 (de) | ||
DE2322674A1 (de) | Mikroprogramm-steuereinrichtung | |
DE2719635A1 (de) | Anordnung fuer eine erweiterung einer mikroprogrammsteuerung einer datenverarbeitungsanlage | |
CH650600A5 (de) | Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister. | |
DE2935906A1 (de) | Mikrokomputer | |
DE2457612B2 (de) | Mikroprogrammier-Steuereinrichtung | |
DE4216905C2 (de) | Superskalarprozessor | |
DE3638572A1 (de) | Vektorprozessor | |
DE2556617C2 (de) | Schiebe- und Rotierschaltung | |
DE3802025C1 (de) | ||
DE2418921C2 (de) | Vorrichtung zum Speichern von Mikroprogrammen in einer Datenverarbeitungsanlage | |
DE2702722C2 (de) | Einrichtung zur Verarbeitung nicht direkt ausführbarer Instruktionen | |
DE1499224C3 (de) | Datenverarbeitungsanlage mit Kellerspeichereinrichtungen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OAP | Request for examination filed | ||
OD | Request for examination | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |