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
Application number
DE19873726859
Other languages
English (en)
Other versions
DE3726859A1 (de
Inventor
Isaburou Nagasaki Jp Kataoka
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP61189672A external-priority patent/JPH07104686B2/ja
Priority claimed from JP24166386A external-priority patent/JPS6395541A/ja
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE3726859A1 publication Critical patent/DE3726859A1/de
Application granted granted Critical
Publication of DE3726859C2 publication Critical patent/DE3726859C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23233Input state executes immediately corresponding block program
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25369Control of states, real time
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25413Interrupt, 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.
DE19873726859 1986-08-14 1987-08-12 Hochgeschwindigkeitsverarbeitungsvorrichtung Granted DE3726859A1 (de)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4407015A (en) * 1980-11-26 1983-09-27 Burroughs Corporation Multiple event driven micro-sequencer

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