DE3726859C2 - - Google Patents
Info
- Publication number
- DE3726859C2 DE3726859C2 DE19873726859 DE3726859A DE3726859C2 DE 3726859 C2 DE3726859 C2 DE 3726859C2 DE 19873726859 DE19873726859 DE 19873726859 DE 3726859 A DE3726859 A DE 3726859A DE 3726859 C2 DE3726859 C2 DE 3726859C2
- Authority
- DE
- Germany
- Prior art keywords
- program
- address
- input
- data
- block
- 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 - Fee Related
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23233—Input state executes immediately corresponding block program
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/25—Pc structure of the system
- G05B2219/25369—Control of states, real time
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/25—Pc structure of the system
- G05B2219/25413—Interrupt, event, state change triggered
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Debugging And Monitoring (AREA)
- Programmable Controllers (AREA)
- Complex Calculations (AREA)
Description
Die Erfindung betrifft eine Hochgeschwindigkeits-Datenverarbeitungseinrichtung
der im Oberbegriff des Patentanspruchs 1
genannten Art.
Eine solche Datenverarbeitungseinrichtung ist
aus der US 44 07 015 bekannt.
Die Fig. 1 der Zeichnung zeigt ein Beispiel für eine herkömmliche
Folgesteuerung. Aus tatsächlichen Eingangssignalen
von einem Prozeß, Kennzeichen für AN/AUS-Signale von Zählern,
Kennzeichen für AN/AUS-Signale von einem Zeitgeber
usw. werden Eingangssignale I₁, I₂, . . ., I₁₀₀₀ aufgebaut.
Dabei ist das Kennzeichen für AN/AUS-Signale ein derartiges
Kennzeichen, das als EIN behandelt wird, wenn eine addierte
Anzahl von Eingangsimpulsen mit einem vorbestimmten Wert
übereinstimmt, während es in den anderen Fällen als AUS behandelt
wird. Die Folgeschaltung besteht aus einem UND-Glied
2 zum Bilden des logischen Produktes der Eingangssignale I₁
und I₂, einem ODER-Glied 3 zum Bilden der logischen Summe
des Ausgangssignals des UND-Gliedes 2 und des Eingangssignals
I₃, einem UND-Glied 5, an dem die Eingangssignale
I₁₀₀ und I₁₀₂ an H-aktiven Anschlüssen und das Eingangssignal
I₁₀₁ am invertierenden Eingang 5a liegen, einem ODER-
Glied 6, das das Ausgangssignal des UND-Gliedes 5 an seinem
H-aktiven Anschluß und das Eingangssignal I₁₀₃ an seinem
invertierenden Eingang 6a erhält, und Ausgangsabschnitte 4
und 7, deren Ausgangssignale gleich 0₁ und 0₁₀₀ werden. Die
Folgesteuerung setzt sich aus der Eingangsgruppe 1, den
UND-Gliedern 2 und 5, den ODER-Gliedern 3 und 6, den Ausgangsabschnitten
4 und 7 und Folgesteuereinheiten 8, 9 mit
dem gleichen Aufbau zusammen.
Das UND-Glied 2 liefert ein Ausgangssignal mit hohem Pegel,
wenn die Eingangssignale I₁ und I₂ einen hohen Pegel haben,
und das ODER-Glied 3 liefert ein Ausgangssignal mit hohem
Pegel an den Ausgangsabschnitt 4, wenn entweder das Ausgangssignal
des UND-Gliedes 2 oder das Eingangssignal I₃
einen hohen Pegel hat. Bei der herkömmlichen Folgesteuerschaltung
wird die Folgesteuerung damit so ausgeführt, daß
die Eingangssignale für jeden Eingang I₁, I₂, . . ., I₁₀₀₀ der
Eingangsgruppe 1 in die Folgesteuereinheiten 8, 9, . . . eingelesen
werden, um darin verarbeitet zu werden, und daß die
verarbeiteten Ergebnisse an die Ausgangsabschnitte 4, 7, . . .
abgegeben werden. Um alle Eingangssignale zu verarbeiten,
ist daher sehr viel Zeit erforderlich. Die Verarbeitungszeit
ist proportional dazu, wie kompliziert der logische Schaltungsaufbau
ist. Wenn die Ansprechzeit stärkere Bedeutung
bekommt, muß die Verarbeitungsgeschwindigkeit erhöht werden.
Bei 10K Verarbeitungsschritten ist beispielsweise für einen
30-ms-Steuerzyklus eine Geschwindigkeit von 3 µs pro Verarbeitungsschritt
oder für einen 10-ms-Steuerzyklus von 1 µs
pro Verarbeitungsschritt erforderlich.
Es wurde andererseits bereits eine Schaltung mit einem Detektor
für veränderte Zustände vorgeschlagen, der im folgenden
kurz als SV-Detektor bezeichnet wird. Dieser SV-Detektor
ist in der im Blockschaltbild der Fig. 2 dargestellten Weise
zwischen einem Datensystem und einem Datenprozessor vorgesehen.
Die Vorrichtung umfaßt Datensignalleitungen 10 und 11,
über die verschiedene Daten vom nicht dargestellten Datensystem
zur Vorrichtung übertragen werden, Rauschfilter 12
und 13, die das in den Datensignalen, die über die Datensignalleitungen
übertragen werden, enthaltene Rauschen herausfiltern,
einen Wähler 14, der die Ausgangssignale der beiden
Filter 12 und 13 erhält, einen SV-Detektor 15, der nur das
Ausgangssignal des Rauschfilters 12 empfängt, einen SV-Detektor
16, der nur das Ausgangssignal des Rauschfilters 13
erhält, Flip-Flop-Schaltungen 17 und 18, an denen jeweils
die Ausgangssignale der SV-Detektoren 15 und 16 liegen,
einen monostabilen Multivibrator 20, an den über ein ODER-
Glied 19 die Ausgangssignale der Flip-Flop-Schaltungen 17
und 18 geführt werden, eine CPU 21 als Datenprozessor zum
Verarbeiten der Ausgangssignale des Wählers 14 und des Multivibrators
20 sowie eine Anzeigeeinheit 22, die den Inhalt
der Daten anzeigt, die durch die DPU 21 verarbeitet werden.
Der Multivibrator 20 und der Wähler 14 sind mit der CPU 21
über Signalleitungen 23a, 23b, 23c und eine Sammelleitung 24
verbunden.
Im folgenden wird die Arbeitsweise der obigen Vorrichtung
beschrieben. Daten A, die vom Datensystem über die Datensignalleitungen
10, 11 eingegeben werden, werden durch die
Rauschfilter 12, 13 gefiltert und als Signale B davon ausgegeben.
Die Signale B liegen einzeln an den SV-Detektoren
15 und 16 und gemeinsam am Wähler 14 an. Wenn anhand des
Signals B im SV-Detektor 15 oder 16 ein veränderter Zustand
festgestellt wird, gibt der entsprechende Detektor ein Detektorsignal
C aus. Die das Signal C empfangende Flip-Flop-
Schaltung 17 oder 18 gibt dann ein Ausgangssignal D über das
ODER-Glied 19 an den Steueranschluß des Multivibrators 20.
Normalerweise werden die gefilterten Signale B jedoch über
den Wähler 14, die Signalleitung 23c und die Sammelleitung
24 an die CPU 21 gegeben, um darin verarbeitet zu werden.
Erst wenn in den Signalen A nichtnormale Verhältnisse auftreten,
werden die Signale C, D und E zu der CPU 21 geliefert,
wobei das Signal E vom Multivibrator 20 als Unterbrechungssignal
dient, das bewirkt, daß die CPU 21 ein Lesesignal
F an den Wähler 14 gibt. Die SV-Detektoren 15 und 16
und der Wähler 14 sind so ausgebildet, daß ihre Schwellenwerte
verschieden sind, und das Signal C von den SV-Detektoren
15 und 16 wird über den Multivibrator 20 verzögert zur
CPU 21 gegeben. Wenn daher im Signal B eine Änderung auftritt,
werden die Eingangsdaten am Wähler 14 nach Maßgabe
des Lesesignals F verzögert ausgelesen und durch die CPU 21
verarbeitet.
Auch bei dieser Schaltung ändert sich an der Situation, daß
das durch die CPU zu verarbeitende Datenvolumen aus allen
Eingangsdaten besteht, nichts.
Ein Beispiel für Vorrichtungen, die eine Datenverarbeitung
mit hoher Geschwindigkeit benötigen, sind Explosionsschutzvorrichtungen
in chemischen Anlagen. Bei einer derartigen
Vorrichtung ist es im Notfall erforderlich, daß unabhängig
vom normalen Steuerzyklus gewisse Notmaßnahmen mit höchstmöglicher
Geschwindigkeit ergriffen werden.
Die eingangs genannte US 44 07 015 beschreibt eine Schaltung
zur Folgesteuerung, bei der ständig alle an einer Anzahl von
parallelen Eingängen anliegenden Zustände abgefragt werden.
Die Eingangszustände werden von einem Multiplexer umgesetzt
und entsprechend einem gespeicherten Programm verarbeitet,
wobei Zustandskombinationen von mehreren Eingängen berücksichtigt
werden können.
Da das zu verarbeitende Datenvolumen dabei jedoch nach wie
vor immer aus allen Eingangsdaten besteht, hat diese Anordnung
ebenfalls den Nachteil, daß entweder die Verarbeitungszeit
im nachgeschalteten Hauptprozessor groß ist oder daß
aufwendige Hochgeschwindigkeits-Schaltungen verwendet werden
müssen, wenn die Verarbeitungszeiten klein bleiben sollen,
beispielsweise, wenn die Anordnung für die Steuerung von
Prozessen in chemischen Anlagen mit Explosionsgefahr vorgesehen
ist.
Der Erfindung liegt demgemäß die Aufgabe zugrunde, die im
Oberbegriff des Patentanspruchs 1 bezeichnete Vorrichtung so
auszugestalten, daß sie mit hoher Geschwindigkeit arbeiten
kann, ohne daß dafür aufwendige Hochgeschwindigkeits-Schaltungen
erforderlich sind.
Diese Aufgabe wird erfindungsgemäß mit den im Kennzeichen
des Patentanspruchs 1 angegebenen Merkmalen gelöst.
Die erfindungsgemäß vorgesehene Zustandsauswerteeinheit
stellt Änderungen in den Zuständen am Eingang der Vorrichtung
fest, so daß der Hauptprozessor der Vorrichtung nur
mehr Daten zu verarbeiten braucht, die den Änderungen entsprechen.
Die zu verarbeitende Datenmenge ist damit erheblich
herabgesetzt, so daß auch einfache Prozessoren die
erforderlichen Prozeßschritte in sehr kurzer Zeit ausführen
können.
Die Unteransprüche 2 bis 4 enthalten vorteilhafte Ausgestaltungen
der erfindungsgemäßen Vorrichtung. Die Unterbrechungseinheit
nach Anspruch 2 ermöglicht es dabei, im Notfall,
etwa wenn unmittelbar eine Explosion droht, nach einer
vorgegebenen Priorität den laufenden Betrieb des Prozessors
zu unterbrechen und bestimmte Maßnahmen zu ergreifen.
Im folgenden werden anhand der Zeichnungen Ausführungsbeispiele
der Erfindung näher beschrieben. Es zeigt
Fig. 1 ein Beispiel für eine Folgesteuerung in einer
herkömmlichen Folgesteuervorrichtung,
Fig. 2 in einem Blockschaltbild den Grundaufbau einer
Datenverarbeitungsvorrichtung mit einem Detektor
für einen variablen Zustand als Beispiel
für eine herkömmliche Hochgeschwindigkeits-
Datenverarbeitungseinrichtung,
Fig. 3 in einem Blockschaltbild ein
erstes Ausführungsbeispiel für die erfindungsgemäße
Hochgeschwindigkeits-Datenverarbeitungseinrichtung,
Fig. 4 in einem Blockschaltbild den Aufbau des in Fig. 3
dargestellten Ausführungsbeispiels und insbesondere
den Berich um den Prozessor für den
variablen Zustand herum im einzelnen,
Fig. 5 das logische Folgeblockdiagramm einer
Steuereinheit zur Erläuterung der Verarbeitungsvorgänge
bei dem Ausführungsbeispiel der
Fig. 3,
Fig. 6 das Zeitdiagramm bezüglich der Steuereinheit
von Fig. 5,
Fig. 7 in einem schematischen Erläuterungsdiagramm ein
Anzeigebeispiel an der Anzeigeeinheit des in
Fig. 3 und 4 dargestellten ersten Ausführungsbeispiels,
Fig. 8 in einem schematischen Blockschaltbild ein
zweites Ausführungsbeispiel der Erfindung,
Fig. 9 in einem Blockschaltbild den Aufbau des in Fig. 8
dargestellten zweiten Ausführungsbeispiels
im einzelnen und
Fig. 10 in einem Zeitdaigramm die Abfolge
der Verarbeitungsvorgänge des zweiten, in Fig. 8
dargestellten Ausführungsbeispiels.
Vor der Beschreibung eines konkreten Ausführungsbeispiels
sei darauf hingewiesen, daß
Reihen von Verarbeitungsschritten als Folge von
Aufgaben in Teile oder Abschnitte unterteilt sind, derart,
daß jeder Teil dem Schritt des tatsächlichen Prozesses
entspricht oder dem Raum des Bildes entspricht, das an
der Anzeigeeinheit angezeigt wird, wobei jede abgeteilte
Reihe von Verarbeitungsvorgängen ein Folgeblock genannt
wird, der im folgenden als SB bezeichnet wird. Jeder
Schritt zur Ausführung logischer Operationen an einem
gegebenen Eingangssignal gehört somit immer zu einem
dieser SB-Blöcke.
Im folgenden wird anhand der Fig. 3 und 4 der konkrete
Aufbau eines ersten Ausführungsbeispiels für die
Hochgeschwindigkeits-Datenverarbeitungseinrichtung beschrieben.
Wie es in Fig. 3 dargestellt ist, besteht die
Datenverarbeitungseinrichtung aus einem
Eingangsteil 25, dem Datensignale vom Prozeß, vom
Zeitgeber und für die verschiedenen Kennzeichen eingegeben
werden, einer Zustandsauswerteeinheit (SV-Prozessor) 30, der bzw. die auf der
Ausgangsseite des Eingangsteils 25 vorgesehen ist, einem
Prozessor (CPU) 35 als Verarbeitungseinrichtung zum
Verarbeiten der verschiedenen Eingangsdaten,
einem Programmspeicher 27, der Programme für die
CPU 35 speichert, einem Prozeßausgangsteil 28 zum
Ausgeben konkreter Datenwerte als Prozeßausgangswerte oder
Prozeßausgangssignale nach Maßgabe der Anweisung von der CPU
35 und einem Anzeigeausgangsteil 29 als Schnittstelle
zwischen Mensch und Maschine, der mit einer Anzeigeeinheit
22 versehen ist, die beispielsweise aus einer Kathodenstrahlröhre
besteht. Die obenerwähnte CPU 35 besteht aus
einer Arithmetik-Logik-Einheit, die ein konkretes Ausführungsprogramm
vom Programmspeicher 27 auf einen Startbefehl
hin abruft und die Arbeitsvorgänge ausführt, die vom
Programm angewiesen werden, sowie einem internen Register,
das für die Verarbeitungsvorgänge der Arithmetik-
Logik-Einheit benötigt wird.
Einzelheiten des SV-Prozessors 30 sind in Fig. 4 dargestellt.
Der SV-Prozessor 30 besteht aus einem den
vorliegenden Eingangswert haltenden Teil 31, der auf der
Ausgangsseite eines Differentialdetektors 26 im
Eingangsteil 25 vorgesehen ist, einem über das Vorliegen
eines SV-Kennzeichens entscheidenden Teil 32, einem
Start-SB-Nummernteil 33 und einem Schaltglied
34, an dem die Ausgangssignale des Entscheidungsteils 32
und des Nummernteils 33 liegen. Die CPU 35 umfaßt einen
Zugriffsschalter (Wähler) 36, der durch das Schaltglied
34 angesteuert wird, eine Adressenbezugstabelle 37
zum Speichern der
Adressen der Folgeblöcke, eine Zeitsteuerung 38 zum
Ausgeben eines Rücksetzsignals zum Entscheidungsteil 32,
ein Schaltglied 39, ein Ausführungsprogrammblockadressenunterregister
40, das aus sechs Stufen von Mehrfachstapelspeichern 41 bis 46 besteht, einen Ausführungsprogrammzeiger
47, der dem Register 40 ein Ausführungsprogramm
anzeigt, und einen Zähler 48 für das laufende
Programm, der die Adresse eines echten Programmspeichers
in Reaktion auf das Ausgangssignal des Registers 40
angibt.
Im folgenden wird die Arbeitsweise beschrieben. Bevor die
konkreten Arbeitsvorgänge unter Bezug auf den in den Fig. 3
und 4 dargestellten Aufbau beschrieben werden, werden
die Verarbeitungsvorgänge einer üblichen Folgesteuerung
anhand des in Fig. 5 dargestellten logischen Folgeblockdiagramms
und anhand des in Fig. 6 dargestellten Zeitdiagramms
beschrieben. In Fig. 5 ist die Folgesteuerung in
Blöcke unterteilt und als Folgeblöcke SB₁ und SB₁₀₀
dargestellt. Der Folgeblock SB₁ ist ein Block, der eine
Vielzahl von Eingangssignalen in mehreren Gruppen verarbeitet.
Das heißt, daß beispielsweise die Eingangssignale I₁
bis I₃ über ein UND-Glied 50 und ein ODER-Glied 51 zu
einem Ausgangssignal 0₁ verarbeitet werden und daß die
Eingangssignale I₄ bis I₆ über ein UND-Glied 52 gehen, um
sie zu einem Ausgangssignal 0₂ zu verarbeiten. Im
Folgeblock SB₁₀₀ liegen ein Eingangssignal I₁₀₀ am Eingang
56 und ein Eingangssignal I₁₀₁ über einen Eingang 57 am invertierenden
Eingang 53a eines UND-Gliedes 53 an, so daß diese
Signale durch das UND-Glied 53 logisch verarbeitet werden,
und es wird das Ausgangssignal dieses UND-Gliedes und ein
Eingangssignal I₁₀₃, das durch den invertierenden Eingang
54a eines ODER-Gliedes 54 invertiert ist, zu einem
Ausgangssignal 0₁₀₀ verarbeitet. Weiterhin werden das
Eingangssignal I₁₀₀ und ein Eingangssignal I₁₀₄ in einem
UND-Glied 55 zu einem Ausgangssignal 0₁₀₁ verarbeitet.
Die Arbeitsweise des oben beschriebenen Folgeblockes SB₁₀₀
wird im folgenden anhand von Fig. 6 beschrieben. Zunächst
sei darauf hingewiesen, daß die Folgesteuerung beginnt,
wenn der Eingangssignalpegel den Zustand "1" in den
Eingangssignalen I₁₀₀, I₁₀₁, I₁₀₂ und I₁₀₄ und den
Zustand "0" im Eingangssignal I₁₀₃ hat und daß
in Fig. 6 die Anschlüsse 56 bis 60 der logischen
Schaltungen 53 bis 55 dargestellt sind. Aus dem in Fig. 6
dargestellten Diagramm ergibt sich, daß keine logische
Änderung außer zu den Zeitpunkten t₁ und t₂, an denen die
Eingangssignale I₁₀₁ bzw. I₁₀₂ vom logischen Pegel 1 auf
den logischen Pegel 0 umschalten, d. h., außer bei den
schraffierten Teilen 61 und 62 in Fig. 6 auftreten.
Mit der Ausführung des Folgeblockes SB₁₀₀ wird daher nur zu den
Zeitpunkten t₁ und t₂ begonnen, während sonst keine
logische Änderung auftritt und der logische Zustand im
Prozeß vor den Zeitpunkten t₁ und t₂ beibehalten wird. In
dem Diagramm ist jedoch der schraffierte Teil 62 zum
Zeitpunkt t₂ ein Beispiel für eine Fehlfunktion.
Im folgenden werden anhand der Fig. 3, 4 und 7 die
konkreten Arbeitsvorgänge des ersten Ausführungsbeispiels
der Datenverarbeitungseinrichtung
beschrieben. Der SV-Prozessor 30 stellt
einen veränderten Zustand im Eingangsteil 25 fest, an dem
die Eingangssignale I₁, I₂, . . . eingegeben werden,
und bereitet den Start der Folgeblöcke SB₁ . . . SB₁₀₀ vor.
Wie es in Fig. 4 dargestellt ist, hält jede Gruppe der
Bauteile 31 bis 34 des SV-Prozessors die von jedem
Eingangsteil erhaltenen Datenwerte oder entscheidet jede
dieser Gruppen über diese Datenwerte. Wenn beispielsweise
der laufende logische Wert (1 oder 0) als Eingangsdaten
hereinkommt, dann wird er über den Differentialdetektor
26 im Eingangsteil 25 sowohl dem Halteteil 31 als
auch dem Entscheidungsteil 32 eingegeben, und es erfolgt eine
Exklusiv-ODER-Verknüpfung der diesen Bauteilen eingegebenen
Eingangssignale. Wenn der
letzte logische Wert von dem vorhergehenden logischen Wert
verschieden ist, dann ist ein veränderter Zustand aufgetreten
und es wird dadurch der Entscheidungsteil 32 für das
Vorliegen des SV-Kennzeichens hochgeschaltet. Dann liefert
der Start-SB-Nummernteil 33, der den
Programmschritt relativ zu diesem Eingangssignal enthält, eine
Codierung C₁ für den Folgeblock SB₁₀₀ zum
Schaltglied 34. Der Folgeblock SB₁₀₀ ist
dafür gespeichert, da er von der Schnittstelle zwischen
Mensch und Maschine am Anzeigeausgangsteil 29 zum
Zeitpunkt der Programmierung eingegeben wurde. Wenn
das SV-Kennzeichen F₁ gleich 1 oder aktiv ist, was
anzeigt, daß ein veränderter Zustand vorliegt, dann betätigt
das Schaltglied 34 den Zugriffsschalter 36 der CPU 35.
Wenn der Schalter 36 betätigt ist, wird eine Codierung C₂ für
den Adressenabsolutwert "4000" des Programmspeichers 27
von der Adressenbezugstabelle 37 abgerufen und zum
Schaltglied 39 ausgegeben. Das Schaltglied 39, das mit
einem Zeitsignal synchronisiert ist, das von der Zeitsteuerung
38 erzeugt und ausgegeben wird, liefert einen
Setzbefehl dem Unterregister 40 für die Ausführungsprogrammblockadresse.
Die erwähnte Synchronisierung wird durch
die Reihenfolge zum Zeitpunkt der Einrichtung des Programmzählers
in der Ausführung des Programms gesteuert.
Die Codierung C₂ für den SB₁₀₀ wird in das Unterregister
40 nach Maßgabe der Anweisung vom Ausführungsprogrammzeiger
47 im vierten Unterprogramm, d. h., im Unterprogramm
44F, eingegeben, das schraffiert dargestellt ist. Im Unterprogrammregister
40 wird jeweils die erste Adresse der auszuführenden
Folgeblöcke SB als Daten (Codierungen) von der
Adressenbezugstabelle 37 eingesetzt. Das heißt, daß die erste
Adresse des Folgeblockes SB, der gerade ausgeführt wird
("250" des Folgeblockes SB₃ im vorliegenden Fall), im
Unterprogramm 41 der ersten Stufe eingesetzt wird, daß die
erste Adresse des Folgeblockes SB₄, der anschließend an
den Folgeblock SB₃ auszuführen ist ("290" im vorliegenden
Fall), im Unterprogramm 42 der zweiten Stufe eingesetzt wird,
daß die erste Adresse des Folgeblockes SB₂, der
anschließend an den Folgeblock SB₄ auszuführen ist ("150"
im vorliegenden Fall), im Unterprogramm 43 der dritten
Stufe eingesetzt wird und daß die erste Adresse "4000" des
Folgeblockes SB₁₀₀, der durch den Ausführungsprogrammzeiger
47 auf das Auftreten des veränderten Zustandes
hin angegeben wird, im Unterprogramm 44 der
vierten Stufe eingesetzt wird. Die Unterprogramme 45 und 46
der fünften und sechsten Stufe sind nicht mit einer
Anweisung zum Starten eines Folgeblockes SB auf die
Erzeugung eines variablen Zustandes ansprechend versehen,
da der Ausführungsprogrammzeiger 47 "4" anzeigt. Dabei
wird die Adresse des wirklichen Programmspeichers 27 zum
laufenden Zeitpunkt durch den Zähler 48 für das laufende
Programm angegeben, d. h., es wird diese Adresse automatisch
intern auf die letzte Adresse des gerade ausgeführten
Folgeblockes SB₃ hochgesetzt (seine Codierung wird auch in
der Adressenbezugstabelle 37 und im Unterprogrammregister
40 für die Ausführungsprogrammadresse zusammen mit der
ersten Adresse gehalten). Nach dem Ende der Programmausführung,
d. h., nachdem der Zähler für das laufende
Programm im vorliegenden Fall "289" angegeben hat und
das Programm ausgeführt ist, wird der Wert im Ausführungsprogrammzeiger
47 mit "-1" addiert und gleich "3", wodurch
die Daten im Unterprogrammregister 40 von der zweiten
Stufe 42 zur ersten Stufe 41, von der dritten Stufe 43 zur
zweiten Stufe 42 und von der vierten Stufe 44 zur dritten
Stufe 43 verschoben werden und "290" in der ersten Stufe
in den Zähler 48 für das laufende Programm eingegeben wird,
wodurch der Übergang vom Folgeblock SB₃ auf den Block SB₄
abgeschlossen ist. Wenn dann der Folgeblock SB₄ ausgeführt
ist und kein veränderter Zustand erzeugt wurde, wird der
Wert des Ausführungsprogrammzeigers 47 mit "-1" addiert
und gleich "2", wodurch die Daten im Unterprogrammregister
40 von der zweiten Stufe 42 auf die erste Stufe 41 (d. h.
"150"), von der dritten Stufe
43 zur zweiten Stufe 42 (d. h. "4000")
verschoben werden und somit die Folge von SB₄ auf
SB₂ übergeht. In ähnlicher Weise erfolgt nacheinander ein
Übergang von den Folgeblöcken SB₂ zu SB₁₀₀. Wenn der
zuletztgenannte Folgeblock ausgeführt ist, dann wird der
Teil 32, der über das Vorhandensein des SV-Kennzeichens
entscheidet, durch das Ausgangssignal S₁ der Zeitsteuerung
38 rückgesetzt.
In Fig. 7 ist ein Beispiel der Anzeige an der Anzeigeeinheit
22 dargestellt. In Fig. 7 ist die
Laufzeit der Folgeblöcke SB, die zu einem Zeitpunkt X
Stunden, X Minuten, X Sekunden ausgeführt werden, dargestellt.
Es wird insbesondere dargestellt, daß die Ausführung
in der Reihenfolge der Folgeblöcke SB₃→SB₄→SB₂→SB₁₀₀
erfolgt.
Im folgenden wird anhand der Fig. 8 bis 10 ein zweites
Ausführungsbeispiel beschrieben. Fig. 8
zeigt in einem Blockschaltbild den konkreten Schaltungsaufbau
des zweiten Ausführungsbeispiels, wobei
gleiche Bezugszeichen wie in Fig. 3 gleiche oder entsprechende
Bauteile bezeichnen. Bei dem zweiten Ausführungsbeispiel
umfaßt die mit einer Unterbrechungseinheit
80 verbundene Zentraleinheit CPU 35 in der in
Fig. 9 dargestellten Weise zusätzlich zum Zugriffsschalter
36, zur Adressenbezugstabelle 37, der Zeitsteuerung 38, dem
Ausführungsprogrammadressenunterregister 40, dem Ausführungsprogrammzeiger
47 und dem Zähler 48 für das laufende
Programm ein Unterbrechungsvektoradressenregister 70,
einen Unterbrechungssteuerzeiger 75, ein Unterbrechungssteuerstapelregister
76 und einen Adressenwähler 77
zum Bezeichnen der Adressen in den Registern 40, 70 und
76. Die Unterbrechungseinheit 80
besteht aus einem Unterbrechungserzeugungsdetektor 81,
einem Unterbrechungsvektorgenerator 82 und einer Prioritätssteuereinheit
83.
Im folgenden wird die Ausführung der Folgeblöcke beschrieben,
bei denen der Übergang von einem zum anderen Block
nach Maßgabe der Wahrnehmung eines variablen Zustandes und
der Erzeugung einer Unterbrechung aus den verschiedenen
Eingangssignalen erfolgt, die über den Eingangsteil 25 in
Fig. 9 empfangen werden.
Die Ausgangssignale von dem den vorliegenden Eingangswert
haltenden Teil 31, vom über das Vorliegen des SV-Kennzeichens
entscheidenden Teil 32 und von dem Start-
SB-Nummernteil 33 sind Datenwerte, die über
den Eingangsteil 25 erhalten werden. Wenn beispielsweise
der laufende logische Wert ("1" oder "0") als Eingangsdatenwert
D₁ empfangen wird, dann wird dieser über den
Differentialdetektor 26 dem den vorliegenden Eingangswert
haltenden Teil 31 und dem über das Vorliegen des
SV-Kennzeichens entscheidenden Teil 32 eingegeben, und es
erfolgt eine logische Exklusiv-ODER-Verknüpfung dieser
Signale.
Wenn der letzte logische Wert vom vorhergehenden logischen
Wert verschieden ist, dann liegt ein veränderter Zustand vor,
und es wird das Kennzeichen F₁ für den veränderten Zustand
gesetzt. Dann liefert der Startfolgeblock-
Nummernteil 33, der den Programmschritt bezüglich der
erwähnten Eingangsdaten enthält, eine Codierung
C₁, beispielsweise für den Folgeblock SB₁₀₀, zum
Schaltglied 34, so daß dann, wenn das Kennzeichen F₁ für
den veränderten Zustand den logischen Wert "1" hat, d. h.
aktiviert ist, der Zugriffsschalter 36 der CPU 35
betätigt wird, um die Codierung für die Adressenabsolutwerte
"4000" und "4200", den Startprogrammspeicher und den
Endprogrammspeicher von der Adressenbezugstabelle 27
abzufragen. Die Codierung C₂ wird dem Ausführungsprogrammblockadressenunterregister
40 geliefert, um dort im
vierten Unterprogramm (schraffierter Teil), d. h. im
Unterprogramm 44, eingeführt zu werden, das durch den
Ausführungsprogrammzeiger 47 bezeichnet wird. Der Zeitablauf
wird durch die Zeitsteuerung 38 festgelegt und durch die
Folge zum Zeitpunkt der Einrichtung des Programmzählers in
der Ausführung des Programms gesteuert.
Das Ausführungsprogrammblockadressenunterregister 40 besteht
aus sechs Stufen von Mehrfachstapeln, wobei in die
erste bis sechste Stufe 41 bis 46 die Startadressen und
die Endadressen der auszuführenden Folgeblöcke SB als
Daten (Codierungen) von der Adressenbezugstabelle 37
eingegeben werden.
Es sind dies die Startadresse und die Endadresse des
gerade ausgeführten Folgeblockes SB ("250" und "289" des
Folgeblockes SB₃ im vorliegenden Fall) in der ersten Stufe
41, die Adressen des anschließend an den Folgeblock SB₃
auszuführenden Blockes SB₄ (im vorliegenden Fall "290" und
"390") in der zweiten Stufe 42, die Adressen des
anschließend an den Folgeblock SB₄ auszuführenden Folgeblockes
SB₂ ("150" und "249") in der dritten Stufe 43 und
die Adressen des Folgeblockes SB₁₀₀ (im vorliegenden Fall
"4000" und "4200"), der durch den Ausführungsprogrammzähler
47 auf die letzte Erzeugung des relativen
veränderten Zustandes ansprechend angegeben wird. Die fünfte
und die sechste Stufe 45, 46 haben keine Anweisung zum
Starten des SB auf die Erzeugung eines veränderten Zustandes
(da der Ausführungsprogrammzeiger 47 auf "4" zeigt). Dabei
ist die Adresse des aktuellen Programmspeichers zum
laufenden Zeitpunkt durch den Zähler 48 für das laufende
Programm bestimmt, und es wird das Programm ausgeführt,
während die Adresse fortlaufend bis zur Endadresse des
gerade ausgeführten SB₃ hochgesetzt wird. Nachdem im
vorliegenden Fall "289" durch den Zähler 48 für das
laufende Programm angegeben und ausgeführt ist, wird zu
dem Wert des Zeigers 47 für das Ausführungsprogramm "-1"
zuaddiert, so daß dieser gleich "3" wird, wodurch die
Daten im Ausführungsprogrammblockadressenunterregister 40
von der zweiten Stufe zur ersten Stufe, von der dritten
Stufe zur zweiten Stufe und von der vierten Stufe zur
dritten Stufe verschoben werden und "290" in der ersten
Stufe in den Zähler 48 für das laufende Programm eingesetzt
wird, womit der Übergang vom Folgeblock SB₃ auf den
Folgeblock SB₄ abgeschlossen ist. Wenn der SB₄ abgeschlossen
ist und kein neuer veränderter Zustand erzeugt wurde,
wird zum Wert des Ausführungsprogrammzeigers 47 "-1"
addiert, so daß dieser gleich "2" wird, wodurch die Daten
im Ausführungsprogrammblockadressenunterregister 40 von
der zweiten Stufe zur ersten Stufe (d. h., daß "150" und
"249" eingegeben werden) und von der dritten Stufe zur
zweiten Stufe (d. h., daß "4000" und "4200" eingegeben
werden) verschoben werden und somit die Folge vom Block SB₄
auf SB₂ verschoben wird. In ähnlicher Weise erfolgt
die nächste Verschiebung vom Folgeblock SB₂ zum Folgeblock
SB₁₀₀.
Wenn Unterbrechungseingangsdaten D₂, die erforderlich
machen, daß Notmaßnahmen getroffen werden, während der
Ausführung des Folgeblockes SB₁₀₀ (d. h., zwischen den
Programmadressen "4000" und "4200") anschließend an die
Feststellung einer Unterbrechung erzeugt werden, dann wird
das Signal dazu benutzt, den Unterbrechungsvektorgenerator
82 (Unterbrechungsnummergenerator) so anzusteuern, daß die
Adresse des Unterbrechungsvektoradressenregisters
70 der CPU 35 (Programmadressendaten "9500" an der Adresse
72 im vorliegenden Fall, in dem V₂ angegeben ist) über die
Datenübertragungsleitung D₃ auf den Adressenwähler 77
übertragen wird. Auf ein Zeitsteuersignal S₂ von der
Zeitsteuerung 38 hin unterbricht der Adressenwähler
77 kurzzeitig die Ausführung des gerade ausgeführten
Folgeblockes SB₁₀₀ zu dem Zeitpunkt, an dem die Ausführung
des Programms, das durch den Zähler 48 für das laufende
Programm angegeben wird, beendet ist (d. h., zum Zeitpunkt
des nachlaufenden Randes des Programms 88 in Fig. 10),
wenn der Zähler 48 für das laufende Program "4050"
angibt, wobei diese Daten "4050" in Form eines Signals S₂
zum Unterbrechungssteuerstapelregister 76 ausgegeben werden,
um darin gehalten zu werden. Das heißt, daß der
Unterbrechungssteuerzeiger 75 dann auf "1" zurückkehrt,
und die Programmadresse "4050" des ausgesetzten Folgeblockes
SB₁₀₀, von der die Ausführung dieses Blockes
anschließend an die Ausführung des Unterbrechungsprogramms
V₂ zu beginnen ist, in den Stapel 76a des Unterbrechungssteuerstapelregisters
76 eingeschrieben wird.
Fig. 10 zeigt den Zustand der Erzeugung einer dringenden
Unterbrechung, während der Folgeblock SB₁₀₀ am schraffierten
Teil 61 des Zeitdiagramms von Fig. 6 ausgeführt wird,
wobei die Unterbrechung einen Arbeitsvorgang fordert, der
dringender als der des Folgeblockes SB₁₀₀ ist.
Wenn bei einer Abfolge vom Programm 85 des Folgeblockes
SB₃→Programm 86 des Folgeblockes SB₄
→Programm 87 des Folgeblockes SB₂ und →Programm 88
des Folgeblockes SB₁₀₀ eine Unterbrechung in der Mitte
der Ausführung des Programms 88 des Folgeblockes SB₁₀₀
erzeugt wird, dann wird diese kurzzeitig unterbrochen, und es
wird das Unterbrechungsprogramm 89 ausgeführt. Wenn das
Unterbrechungsprogramm 89 beendet ist, wird wieder mit der
Ausführung des ausgesetzten Programms 88 des SB₁₀₀ bei
der Adresse des folgenden Programms 90 begonnen (im
vorliegenden Fall endet die Ausführung des Programms 88 an
der nachlaufenden Flanke der Programmadresse "4049", und es
wird mit der Ausführung wieder an der vorderen Flanke der
Adresse des Programms 90 bei "4050"
begonnen).
Wenn das Einschreiben der Adresse abgeschlossen ist, werden
die Programmadressendaten "9500" an der Adresse 72 über
den Adressenwähler 77 und über die Datenübertragungsleitung
78 zum Zähler 48 für das laufende Programm übertragen,
um in diesen eingeschrieben zu werden. Zum Zeitpunkt
dieses Einschreibens ist die Ausführung des Programms vom
Folgeblock SB₁₀₀ zum Programm 72 in der Spalte V₂ der
Adressentabelle verschoben.
Wenn die Ausführung des Unterbrechungsprogramms 72 abgeschlossen
ist (dieser Abschluß wird zuverlässig durch
einen speziellen Befehl am Ende des Programms angegeben),
werden Daten "1", die durch den Unterbrechungssteuerzeiger
75 angezeigt werden ("4050" im vorliegenden Fall), über
den Übertragungsweg 91 zum Wähler 77, zum Übertragungsweg
78 und zum Zähler 48 übertragen, und es wird dadurch wieder
mit der Ausführung des ausgesetzten Blockes SB₁₀₀ begonnen.
Obwohl bei der obigen Beschreibung die Betonung auf
der Verschiebung des Programms lag, wird natürlich dem
Unterbrechungssteuerzeiger 75 "-1" zuaddiert, um ihn auf
"0" zu bringen, bevor der Folgeblock SB₁₀₀
ausgeführt wird, und es werden die verschiedenen Betriebsdaten,
die vor dem Beginn der Ausführung des Unterbrechungsprogramms
72 der Spalte V₂ der Adressentabelle gesichert
wurden, wiederhergetellt, so daß die Umfeldverhältnisse
für den Wiederbeginn des Folgeblockes SB₁₀₀ wiederhergestellt
sind.
Die Prioritätssteuereinheit 83 dient dazu,
bei mehrfachen Unterbrechungen während der
Ausführung einer Unterbrechung eine andere Unterbrechung
zuzulassen. Die Steuereinheit 83 führt die Steuerung nach
Maßgabe der Unterbrechungspegel, die zum Zeitpunkt
der Programmierung definiert werden, aus und
baut die Tiefe für die Unterbrechungssteuerung im Unterbrechungssteuerzeiger
75 auf. Die Zeitpunkte der Datenübertragung
zu den verschiedenen Registern unterliegen den
Anweisungen von der Zeitsteuerung 38 (als Beispiel dafür
ist in Fig. 9 38a dargestellt).
Claims (5)
1. Hochgeschwindigkeits-Datenverarbeitungseinrichtung
- - mit einem Eingangsteil (25), an dem verschiedene Eingangsdaten anliegen, und
- - mit einem Prozessor (35), der entsprechend den Änderungen der Eingangsdaten Programmroutinen aus einem Programmspeicher (27) abarbeitet,
dadurch gekennzeichnet,
- - daß die Eingangsdaten über einen Eingangsteil (25) einer Zustandsauswerteeinheit (30) zugeführt werden, in der die momentan auftretenden Eingangsdaten mit vorhergehenden Werten verglichen werden, wobei bei unterschiedlichen Werten ein den jeweiligen Eingangsdaten zugeordneter Entscheidungsteil (32) gesetzt wird,
- - daß daraufhin ein dem jeweiligen Entscheidungsteil (32) zugeordneter Start-SB-Nummernteil (33) eine zuvor vergebene Start-SB-Nummer an ein Schaltglied (34) abgibt und
- - daß mit der in dem Schaltglied (34) gehaltenen Start- SB-Nummer dann eine Adressenbezugstabelle (37) adressiert wird, deren ausgewählter Inhalt zum Aufruf einer der Änderung der Eingangsdaten entsprechenden Programmroutine durch den Prozessor (35) dient.
2. Datenverarbeitungseinrichtung nach Anspruch 1, gekennzeichnet
durch eine Unterbrechungseinheit (80) mit einer
Prioritätssteuereinheit (83), die beim Aufteten eines vorgegebenen
Unterbrechungssignals den laufenden Betrieb des
Prozessors (35) unterbricht und die gemäß der Priorität des
Unterbrechungssignals den Abruf einer Adresse für einen
dafür vorbestimmten Programmblock für den Prozessor (35)
bewirkt.
3. Datenverarbeitungseinrichtung nach Anspruch 2, dadurch
gekennzeichnet, daß für die Unterbrechungseinheit (80) ein
Adressenregister (70) zum Speichern der Programmadressen
vorgesehen ist.
4. Datenverarbeitungseinrichtung nach Anspruch 2, dadurch
gekennzeichnet, daß für die Unterbrechungseinheit (80) ein
Register (76) zum Halten einer Rücksprungadresse für ein
laufendes Programm vorgesehen it.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61189672A JPH07104686B2 (ja) | 1986-08-14 | 1986-08-14 | 高速演算処理装置 |
JP24166386A JPS6395541A (ja) | 1986-10-09 | 1986-10-09 | 高速演算処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3726859A1 DE3726859A1 (de) | 1988-02-25 |
DE3726859C2 true DE3726859C2 (de) | 1992-05-07 |
Family
ID=26505604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19873726859 Granted DE3726859A1 (de) | 1986-08-14 | 1987-08-12 | Hochgeschwindigkeitsverarbeitungsvorrichtung |
Country Status (2)
Country | Link |
---|---|
DE (1) | DE3726859A1 (de) |
GB (1) | GB2194083B (de) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4407015A (en) * | 1980-11-26 | 1983-09-27 | Burroughs Corporation | Multiple event driven micro-sequencer |
-
1987
- 1987-06-10 GB GB8713573A patent/GB2194083B/en not_active Expired - Fee Related
- 1987-08-12 DE DE19873726859 patent/DE3726859A1/de active Granted
Also Published As
Publication number | Publication date |
---|---|
GB2194083A (en) | 1988-02-24 |
DE3726859A1 (de) | 1988-02-25 |
GB8713573D0 (en) | 1987-07-15 |
GB2194083B (en) | 1990-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2714805C2 (de) | ||
DE2735397C2 (de) | Überwachungseinrichtung für eine programmgesteuerte Maschine | |
EP0010194A1 (de) | Wartungsschnittstelleneinrichtung für eine datenverarbeitende Anlage mit einer zentralen Verarbeitungseinheit und mit einem Dienstprozessor und Verfahren zu ihrem Betrieb | |
DE2319753B2 (de) | Anordnung zur Datenverarbeitung mittels in Mikroprogrammierung betriebener Prozessoren | |
DE3400723C2 (de) | ||
EP0134831A1 (de) | Einrichtung im Befehlswerk eines Fliessbandprozessors zur Befehlsunterbrechung und -wiederholung | |
DE2911909A1 (de) | Verfahren und geraet zur digitalen datenverarbeitung, insbesondere von digitalen audiosignalen | |
DE4005042C2 (de) | Mehrrechnersystem zur Durchführung von Bewegungssteuerungen | |
EP0799441B1 (de) | Verfahren zur steuerung von technischen vorgängen | |
EP0048991B1 (de) | Verfahren und Anordnung zur Behandlung von Unterbrechungsbedingungen während des Arbeitsablaufes in Datenverarbeitungsanlagen mit Mikroprogrammsteuerung | |
DE2246863C3 (de) | Einrichtung zur Protokollierung des Programmablaufs in einer Datenverarbeitungsanlage | |
DE2927481A1 (de) | Datenverarbeitungsvorrichtung | |
DE2835498C2 (de) | Anordnung zur dynamischen Fehlerermittlung in Datenverarbeitungsanlagen | |
DE2844295A1 (de) | Verfahren und vorrichtung zur steuerung der datentransferrichtung auf einem datenbus | |
EP0104490A2 (de) | Verfahren und Vorrichtung zur Synchronisation von Datenverarbeitungsanlagen | |
DE4110602A1 (de) | Verfahren und vorrichtung zur steuerung von prozessen | |
DE2120289A1 (de) | Gesteuerte Pause in einer Datenverarbeitungsanlage | |
DE2632277A1 (de) | Mikroprogrammierbarer computer fuer eine numerische steuervorrichtung | |
DE3726859C2 (de) | ||
DE2759120A1 (de) | Prozessor fuer datenverarbeitungssysteme | |
DE2815674A1 (de) | Anordnung zur zeitzyklussteuerung | |
DE10061001A1 (de) | Verfahren und Steuergerät zur Steuerung von technischen Vorgängen in einem Kraftfahrzeug | |
DE2913371A1 (de) | Verfahren und system zur ablaufsteuerung | |
DE4318317A1 (de) | Datenverarbeitungsvorrichtung und -verfahren zum Ausführen von Operationen in Folge | |
DE2727188A1 (de) | Anordnung zum adressieren eines speichers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8128 | New person/name/address of the agent |
Representative=s name: STREHL, P., DIPL.-ING. DIPL.-WIRTSCH.-ING. SCHUEBE |
|
D2 | Grant after examination | ||
8363 | Opposition against the patent | ||
8365 | Fully valid after opposition proceedings | ||
8320 | Willingness to grant licenses declared (paragraph 23) | ||
8339 | Ceased/non-payment of the annual fee |