DE4103121C2 - Datenfluß-Prozessor - Google Patents

Datenfluß-Prozessor

Info

Publication number
DE4103121C2
DE4103121C2 DE4103121A DE4103121A DE4103121C2 DE 4103121 C2 DE4103121 C2 DE 4103121C2 DE 4103121 A DE4103121 A DE 4103121A DE 4103121 A DE4103121 A DE 4103121A DE 4103121 C2 DE4103121 C2 DE 4103121C2
Authority
DE
Germany
Prior art keywords
data flow
timer
module
data
program
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
DE4103121A
Other languages
English (en)
Other versions
DE4103121A1 (de
Inventor
Kenji Shima
Shoichi Washino
Setsuhiro Shimomura
Yoshiaki Kanno
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
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE4103121A1 publication Critical patent/DE4103121A1/de
Application granted granted Critical
Publication of DE4103121C2 publication Critical patent/DE4103121C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven
    • 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/25433Dataflow processor

Description

Die Erfindung bezieht sich auf einen Datenfluß-Pro­ zessor nach dem Oberbegriff des Anspruchs 1.
In Fig. 10 ist ein Ausführungsbeispiel einer Steuer­ einheit für Automobilmotoren dargestellt, die zur Zeit verwendet wird. Fig. 11 ist ein Diagramm, das ein Beispiel des Inneren eines von Neumann-Steuerprozes­ sors zeigt, der in der Motorsteuereinheit verwendet wird.
In diesen Figuren bezeichnen die Bezugszeichen 100 einen von-Neumann-Steuerprozessor, 101 einen Lei­ stungstransistor, 102 eine Zündspule, 103 einen Ver­ teiler, 104 eine Zündkerze, 105 ein Einspritzventil, 110 eine I/O-Einheit (Eingang-Ausgang-Einheit) des Prozessors 100, 111 einen Analog-Digitalwandler (A(D-Wandler), 112 einen Timer (Zeitschaltung), 113 einen Zähler, 114 ein ROM, 115 ein RAM, 116 eine Interrupt-Steuereinheit (Unterbrechungs-Steuer­ einheit), und 117 eine CPU.
Der von-Neumann-Prozessor ist ein Prozessor zur nacheinanderfolgenden Ausführung von vorher akkumulierten Programmen mit der Hilfe eines Programmzählers.
Im folgenden wird die Betriebsweise des üblichen von-Neumann-Prozessors beschrieben. Die in die Motorsteuereinheit eingegebenen Haupt-Eingangs­ signale umfassen ein Kurbelwellenwinkel-Sensorsignal, durch das Informationen über die Anzahl der Umdrehungen des Motors und eines Zündzeitgebers geliefert werden, ein Ansaugmengensignal ent­ sprechend der Motorlast, ein Wassertemperatursignal entsprechend der Motortemperatur und ein Batterie­ spannungssignal, das der Batterie-elektromotorischen- Kraft zugeordnet ist. Ausgangssignale umfassen ein Zündungssteuersignal und ein Steuersignal für die Einspritzung.
Die Motorsteuereinheit 100 stellt Werte, die den Motorzustand angeben, fest, wie die Anzahl der Umdrehungen des Motors, die Ansaugmenge, die Wasser­ temperatur, wobei die Signale von den Sensoren verwendet werden. Auf der Grundlage der festge­ stellten Werte wird ein optimaler Zündzeitpunkt aus einer vorgegebenen Zündzeitpunktformel und einer Tabelle berechnet. Ein Primärstrom des Leistungstransistors 101 wird in Übereinstimmung mit dem berechneten Zündzeitpunkt abgeschaltet. Der Zündzeitpunkt wird durch Ansteuern der Zündspule 102 gesteuert. Ein Leerlaufabtastsignal unter den Eingangssignalen wird in einem digitalen Wert ausgedrückt, um lediglich den binären Zustand zu zeigen. Das Leerlaufabtastsignal wird über die I/O-Einheit 100 eingelesen. Das Ansaugmengen­ signal, das Wassertemperatursignal und das Batterie­ signal werden als analoge Werte eingegeben. Die analogen Werte werden durch den A/D-Wandler 111 in digitale Werte umgewandelt.
Das Kurbelwinkelsensorsignal wird direkt der Unterbrechungssteuereinheit 116 zur Bewirkung einer Unterbrechung zugeführt, oder alternativ wird das Sensorsignal von dem Zähler 113 frequenz­ geteilt, um eine vorbestimmte Anzahl von Kurbel­ winkelimpulsen zu zählen und danach der Unter­ brechungssteuereinheit 116 zur Bewirkung der Unterbrechung zugeführt.
Ein Verfahren zur Berechnung des Zündzeitpunktes unter Verwendung der oben angegebenen Signale wird im folgenden beschrieben. Fig. 12 zeigt eine Prinzipdarstellung der Berechnung des Zündzeit­ punktes und ebenfalls von Korrekturvorgängen. Die Berechnung beginnt damit, daß ein Grundzündzeit­ punkt (Phase) ΘB aus Werten des Ansaugmengensignals und des Kurbelwinkelsignals erhalten wird. Zu diesem Zündzeitpunktwert wird eine Wassertemperatur (Phase) ΘWT in Abhängigkeit von dem Wassertemperatur­ signal, das als Motorerwärmungszustandssignal definiert ist, hinzugefügt. Ein Korrekturwert, der um -5° vom Zeitpunkt des oberen Totpunkts OT zurück­ geht, wird aus diesen Signalen bestimmt.
Das heißt, ein Zündzeitpunkt (Phase) ΔADV wird durch:
ΘADV = ΘB + ΘWT
vorgegeben.
Daneben wird ein aktueller Zündzeitpunkt dadurch bestimmt, daß eine elektrische Korrektur durch die Batteriespannung, eine Ansaugmengenkorrektur über das Ansaugmengensignal und eine Wassertemperatur­ korrektur durch das Wassertemperatursignal auf der Grundlage des Kurbelwinkelsensorsignals durchgeführt wird.
Die CPU 117 aus Fig. 11 führt diese arithmetischen Vorgänge durch. In dem ROM 114 ist ein Programm dafür gespeichert. Das RAM 115 dient zum Speichern von Zwischenergebnissen. Die CPU 117 ist als von-Neumann-Rechner ausgebildet und umfaßt einen Adressenspeicher für die Angabe einer Adresse des ROM′s 114, das ein Ausführungsprogramm enthält.
Ein Einspritzimpuls zur Ansaug/Kraftstoffsteuerung wird wie folgt berechnet. Eine Impulsbreite Ti wird ausgedrückt durch:
Ti = Fuel × Kaf × Kwt × KvB,
wobei Fuel der eine Ansaugmenge repräsentierende Wert ist, Kaf ist der Koeffizient für die Ansaug­ mengenkorrektur, Kwt ist der Koeffizient für die Wassertemperaturkorrektur und KvB ist der Koeffizient für die Batteriespannungskorrektur. Diese arithmetische Operation wird sowohl durch das Kurbelwinkelsensorsignal als auch durch das Leerlaufsignal gestartet.
Fig. 13 zeigt ein Flußdiagramm, das die Architektur der den obigen Berechnungen zugeordneten Software darstellt. In der Zeichnung bedeutet "W.D.T." einen "Watch Dog Timer" (Wachhund-Zeitkreis). Wie in dem Weg einer Unterbrechungsroutine nach Fig. 13(b) ge­ zeigt, unterscheidet ein Leerlaufabtastsensor, ob der Kraftstoff abgeschnitten ist oder nicht. In der Zeichnung stellen die Bezeichnungen "BTDC" und "EST" "vor dem oberen Totpunkt" und "Zündzeitpunkt" dar.
Die Software wird, wie in Fig. 14 dargestellt, über vollständige Zyklen der Kurbelwinkelsensorsignale durchgeführt. Drei-Zyklen-Kraftstoffeinspritzung, Zündzeitpunkt und asynchrone Einspritzung - werden bei jedem Kurbelwinkel von 180° wiederholt.
Fig. 15 zeigt ein Blockschaltbild, in dem der Aufbau eines Steuerungsprozessors entsprechend Wo 90/14636 dargestellt ist. Unter Bezugnahme auf Fig. 15 be­ zeichnen die Bezugszeichen 1 einen Steuerprozessor und 10 einen durch Daten gesteuerten Prozessor (DFP). Der Prozessor DFP 10 umfaßt eine Paketverbindungs­ einheit (J) 11, eine Paketverzweigungseinheit (B) 12, eine Programmspeichereinheit (PS) 13, eine Zündpro­ zeßeinheit (FC) 14, eine arithmetische Einheit (FP) 15, eine Warteschlangen-Puffereinheit (Q) 16, eine Eingangsschnittstelle (I/FIN) 17 des Prozessors DFP 10, eine Ausgangsschnittstelle (I/FOUT) 18 und einen von-Neumann-Prozessor 19 zur Steuerung des Steuerpro­ zessors als Gesamtes. Die Bauteile mit den Bezugszeichen 110 bis 116 sind die gleichen wie durch die Bezugszeichen vorher erwähnten.
Fig. 16(a) zeigt die Eingangsschnittstelle (I/FIN) des Prozessors DFP 10. Das Bezugszeichen 171 bezeichnet eine Datenspeichereinheit (latch), 172 eine Markierungsspeichereinheit (tag unit latch), 173 einen Adressdecoder, 174 einen Schreib­ selektor, 20 ein UND-Gatter, 21 einen Inverter, und 22 ein Flip-Flop mit Reset-Set-Anschlüssen. Fig. 16(b) stellt die Ausgangs-Schnittstelle (I/FOUT) des Prozessors DFP 10 dar. Das Bezugszeichen 175 bezeichnet einen Leseselektor und 23 ein NAND-Gatter. Fig. 16(c) zeigt den A/D-Wandler 111. Das Bezugs­ zeichen 181 steht für ein Adressenlatch, 182 für einen analogen Multiplexer und 183 für einen A/D-Wandlerkreis. Fig. 16(d) stellt die I/O-Einheit 110 (Ein/Ausgangseinheit) dar. Das Bezugszeichen 184 bezeichnet einen Eingangspuffer, 185 einen Ausgangspuffer und 186 ein Datenspeicher (data latch). Fig. 16 (e) zeigt den Zähler 113, wobei ein Zähler 187 einen Voreinstelleingang PE (preset) aufweist.
Im folgenden wird die Betriebsweise des Steuer­ prozessors nach Fig. 15 erläutert.
Als Eingangssignale werden, wie in dem bekannten Beispiel nach Fig. 11, ein Kurbelwinkelsensorsignal, ein Ansaugmengensignal entsprechend der Motorlast, ein Wassertemperatursignal entsprechend der Motor­ temperatur und ein Batteriespannungssignal der Steuereinheit 1 zugeführt. Die Ausgangssignale umfassen ein Zündsteuersignal und ein Einspritz­ steuersignal. Die Fig. 13(a) und 13(b) zeigen Bei­ spiele einer Hauptroutine und einer Unterbrechungs­ routine. Die notwendigen Daten in den Eingangs­ signalen werden eingespeist, wenn das Unterbrechungs­ signal des Kurbelwinkels erzeugt wird, während ständig der Job nach Fig. 13(b) berechnet wird. Dadurch werden die Vorgänge nach Fig. 13 (b) durchge­ führt. Zu diesem Zeitpunkt erhält der von-Neumann- Prozessor 19 die Information von den peripheren Einheiten, d. h. der I/O-Einheit 110, dem A/D-Wandler 111, dem Timer 112 und dem Zähler 113. Der Prozessor 19 erzeugt arithmetische Pakete für den Prozessor DFP 10 und führt diese Pakete über die Schnittstelle I/FIN 17 dem DFP 10 zu. Der Prozessor DFP 10 übermittelt das arithmetische Ergebnis an die Schnittstelle I/FOUT 18. Der von-Neumann-Prozessor 19 erhält das arithmetische Ergebnis durch eine von ihm erzeugte Unterbrechung. Der Prozessor 19 gibt das arithmetische Ergebnis als Zündsteuer­ signal oder Einspritzsteuersignal ab.
Die Datenverarbeitung in dem DFP 10 wird mittels in den Paketen enthaltenen Markierungen durchgeführt. Der von-Neumann-Prozessor 19 übermittelt die Daten mit einer Zielmarkierung an den Prozessor DFP 10. Die von den von-Neumann-Prozessor 19 von DFP 10 empfangenen Daten weisen die Markierungen auf. Mit dieser Anordnung ist der von-Neumann-Prozessor 19 in der Lage, die von dem DFP 10 erhaltenen Daten zu unterscheiden, d. h. ein Zündsteuersignal oder Einspritzsteuersignal zu unterscheiden.
Der Datenfluß-Steuerprozessor ist in der oben be­ schriebenen Weise aufgebaut. Der Zeitgeber (timer) wird extern verbunden, um die Zeitinformation zu erhalten. Eine Vielzahl von Realzeitvorgängen werden durch die folgenden Schritte durchgeführt.
Das Lesen wird durch zyklische Abfrage eines Zeitwer­ tes durchgeführt. In alternativer Weise wird eine Unterbrechung erzeugt, wenn der externe Zeitgeber einen vorbestimmten Wert erreicht und das Lesen wird durch den Unterbrechungsvorgang entsprechend der Not­ wendigkeit durchgeführt. In jedem Fall wird die In­ formation über den von-Neumann-Prozessor durch den Zähler oder den mit einem Bus verbundenen Timer über­ mittelt. Der von-Neumann-Prozessor wird zusätzlich zu dem Timer und dem Zähler benötigt. Folglich entstehen Probleme durch die Vergrößerung des Systems.
In "Elektronische Rechenanlagen" 25 (1983), Heft 6, S. 143-151, werden die Grundlagen des funktionellen Programmierens und der Datenflußrechner erläutert. Es wird dargelegt, daß das Grundprinzip des funktionel­ len Programmierens darin liege, daß die Steuerungs­ struktur eines Programms im wesentlichen der Präze­ denzgraph der Datenabhängigkeit sei und daß ein loka­ les Steuerungsprinzip verwendet werde, derart, daß jede Operation zu dem Zeitpunkt ausgeführt werden könne, zu dem ihre Eingangsdaten vorhanden seien. So entstehe eine Struktur mit starkem Parallelismus ver­ bunden mit asynchroner Ausführung in den vielen par­ allelen Zweigen.
In "IEEE Computer", März 1986, S. 68-87, werden ver­ schiedene Datenfluß-Architekturen verglichen. Es wird hierbei im wesentlichen zwischen statischen und dyna­ mischen Strukturen unterschieden. Bei einer stati­ schen Architektur werden die Knotenpunkte eines Pro­ grammgraphen vor der Durchführung der Berechnung in einen Speicher geladen und es kann höchstens eine Instanz eines Knotens zu einem Zeitpunkt gezündet werden. Eine dynamische Architektur ermöglicht das gleichzeitige Zünden mehrerer Instanzen eines Knoten­ punktes und diese Knoten können während der Durch­ laufzeit geschaffen werden.
Der Erfindung liegt die Aufgabe zugrunde, einen Steu­ erprozessor vorzusehen, der in der Lage ist, Zeitin­ formationen zu der arithmetischen Operation in einem Datenfluß-Prozessor ohne die Verwendung eines von- Neumann-Prozessors hinzuzugeben.
Diese Aufgabe wird erfindungsgemäß durch die kenn­ zeichnenden Merkmale jeweils des Anspruchs 1 oder des Anspruchs 2 gelöst. Vorteilhafte Weiterbildungen des Datenfluß-Prozessors nach Anspruch 2 ergeben sich aus den Unteransprüchen 3 bis 8.
Bei einem Steuerprozessor nach der vorliegenden Er­ findung wird eine Zeitgeberfunktion dadurch erreicht, daß eine Beschreibung mit einem Datenflußgraphen ge­ macht wird, der als Datenflußprogramm definiert ist, oder daß auf einen extern vorgesehenen Zeitgeber mit einer vorbestimmten Instruktion zugegriffen wird oder daß ein Datenflußgraph verwendet wird, der mit einem von außen zu vorgegebenen Zeitpunkten eingegebenen Zeitgeberpaket beschrieben wird.
In Übereinstimmung mit dieser Erfindung wird die durch die oben beschriebenen Verfahren erzielbare Zeitgeberfunktion dem mit Daten gesteuerten Prozessor hinzugefügt, wobei die Zeitsteuerung durchgeführt wird. Es ist daher möglich, die Systemgröße des Steuerprozessors zu miniaturisieren, der für Realzeitprozesse, wie für Automobilmotorsteuerung, elektrische Motorsteuerung, Robotersteuerung und Steuerung akustischer Eigenschaften, die eine Vielzahl von Zeitprozessen verlangen, anwendbar ist.
Ausführungsbeispiele der Erfindung sind in der Zeichnung dargestellt und werden in der nachfolgen­ den Beschreibung näher erläutert. Es zeigen:
Fig. 1 ein Blockdiagramm, in dem ein als Steuerprozessor ausgebildeter Datenfluß- Prozessor nach einem ersten Aus­ führungsbeispiel der Erfindung darge­ stellt ist,
Fig. 2 einen Datenflußgraphen, der ein durch den Datenflußprozessor nach Fig. 1 durchgeführtes Programm beschreibt, wobei das Programm zur Aktualisierung eines Zeitgebers dient,
Fig. 3 ein Blockdiagramm, das einen als Steuerprozessor ausgebildeten Daten­ flußprozessor nach einem zweiten Ausführungsbeispiel der Erfindung zeigt,
Fig. 4 einen Datenflußgraphen, der ein Programm für die Durchführung eines arithmetischen Zeitgeberbefehls beschreibt, die in dem Prozessor von Fig. 3 ausgeführt wird,
Fig. 5 eine schaltungsgemäße Ausgestaltung des Aufbaus eines Zeitgebers,
Fig. 6 bis 9 Diagramme mit Varianten des zweiten Ausführungsbeispiels der Erfindung,
Fig. 10 bis 16 Diagramme zur Erläuterung eines Steuerprozessors nach dem Stand der Technik,
Fig. 17 einen Datenflußgraphen, der ein Programm einer Zeitgeberfunktion beschreibt, das in einem Prozessor eines dritten Ausführungsbeispiels der Erfindung ausgeführt wird, und
Fig. 18 eine Skizze, die ein für den Datenfluß- Prozessor verwendetes 2-Wortpaketformat zeigt.
Die Erfindung wird nun erläutert, wobei in den Figuren gleiche Symbole gleiche oder entsprechende Elemente bezeichnen.
Fig. 1 zeigt ein Blockdiagramm, in dem ein Datenfluß- Prozessor, der als Steuerprozessor in Übereinstimmung mit einem ersten Ausführungsbeispiel der Erfindung definiert ist, dargestellt ist. Dabei bezeichnet das Bezugszeichen 10 einen Datenfluß-Prozessor, 11 ein Verbindungsmodul (J), 12 ein Verzweigungsmodul (B), 13 ein Programmspeichermodul (PS), 14 ein Zündprozeß­ modul (FC), 15 ein arithmetisches Verarbeitungsmodul (FP) und 16 einen Warteschlangen-Puffer. Der durch Daten gesteuerte Prozessor nach Fig. 1 wurde schon im Beispiel des Standes der Technik beschrieben. Im folgenden wird die Grundoperation beschrieben. Genauer gesagt, veranlaßt das Paket das Auslesen eines Programms aus dem Programmspeichermodul PS 13 auf der Basis der Information der nächsten Zielknotenzahl, die es besaß, als es eingegeben wurde. Ein in den Prozessor 10 eingegebenes Paket verwendet sie als seine eigene neue Kennung und wird an das Zündprozeß­ modul FC 14 übertragen. Wenn die durchzuführende arithmetische Operation eine binäre Operation ist, findet das Zündprozeßmodul FC 14 ein Partner-Paket, das mit demjenigen, das der arithmetischen Operation unterzogen wird, ein Paar bildet, aus der nächsten Zielknotenzahl des Pakets und darüber hinaus aus den Identifikationszahlen der Umgebung (environment) und der Erzeugung (generation) heraus, je nachdem wie der Fall sein kann. Die Paare bildenden Pakete werden an das arithmetische Operationsmodul FP 15 (im folgenden arithmetisches Modul genannt) gesandt. Wenn das Partner-Paket nicht gefunden werden kann, gibt es eine Verzögerung in dem Zündprozeßmodul FC 14, bis das Partner-Paket kommt. Im Falle einer Operation, die keinen Zündprozeß verlangt, gehen die Pakete einfach durch das Zündprozeßmodul hindurch und gelangen zu dem arithmetischen Modul FP 15. Das arithmetische Modul führt die arithmetische Operation unter Verwendung von in den Kennungen der Pakete selbst gehaltenen Operationscodes durch. Dort wird eine Beurteilung dahingehend durchgeführt, ob die Pakete nach Beendigung des Prozesses nach außen vom Verzweigungsmodul B 12 übertragen oder weiter kontinuierlich innerhalb verarbeitet werden. Wenn sie kontinuierlich innerhalb verarbeitet werden, gehen die Pakete durch den Warteschlangen-Pufferspeicher Q 16 und ebenso durch das Verbindungsmodul J 11 hindurch.
Die Pakete kommen erneut zu dem Programmspeicher­ modul PS 13, worauf die gleichen Prozesse wieder­ holt werden.
Selbst der Datenprozessor 10, der die oben diskutierten Operationen bewirkt, benötigt die Ausführung von Zeitgeber einschließenden Zeitkorrespondenzprozessen in einer Steueranwendung. In Übereinstimmung mit dem ersten Ausführungsbeispiel der Erfindung werden die Zeitgeber-Pakete (mit Kennung versehene Daten) durch eine kreisförmige Pipeline zirkuliert, die aus dem Programmspeichermodul PS 13, dem Zünd­ prozeßmodul FC 14 und dem arithmetischen Modul FP 15 besteht. Die Zeit wird auf der Basis einer Zirkulations- oder Umlaufzeiteinheit der Pakete gemessen.
Im folgenden wird die Betriebsweise des ersten Ausführungsbeispiels beschrieben.
Fig. 2 zeigt ein beschreibendes Beispiel eines Datenflußgraphen, der ein Programm zur Aktualisierung der Zeitgeberoperation des Steuerprozesses in einem ersten Ausführungsbeispiel der Erfindung beschreibt. Dabei bezeichnen die Bezugszeichen 51 einen Inkrement-Befehlsknoten, 52 einen Less Than-Vergleichs­ befehlsknoten, 53 einen Schalter- oder Schaltbefehls­ knoten, 54 einen Schleifenzähler-Konstantspeicher, 56 einen Eingangsport und 57 einen Ausgangsport.
Bezugnehmend auf Fig. 2 zirkulieren die vom Eingangs­ port eingegebenen Pakete einige Male entsprechend einem in dem Konstantspeicher gespeicherten Schleifen­ zählstand durch die Schleife A. Danach werden die Pakete vom Ausgangsport 57 als Ausgang des Synchron­ knotens SYNC 54 gesendet. Ein Umlauf der Schleife A entspricht drei Umläufen der kreisförmigen Pipeline wegen der Ausführung des Inkrementbefehls 51 des Less Than-Vergleichsbefehls 52 und des Schaltbefehls 53. In dem ersten Ausführungsbeispiel wird eine hohe Zeitgenauigkeit nicht notwendigerweise erreicht. Allerdings kann ein Vorgang erzielt werden, durch den eine Zeitverzögerung erreicht wird.
Ein zweites Ausführungsbeispiel wird im folgenden unter Bezugnahme auf die Fig. 3 bis 5 erläutert.
Fig. 3 zeigt einen Datenfluß-Prozessor als Mittel zur Erzielung einer Zeitgeberfunktion. Der Datenfluß- Prozessor ist derart aufgebaut, daß er die Zeit­ geberfunktion in der gleichen Weise mit der Durch­ führung der arithmetischen Operation durchführt, indem ein Timer- oder Zeitgebermodul parallel zum arithmetischen Modul FP 15 geschaltet wird. In Fig. 3 bezeichnet das Bezugszeichen 30 ein Zeitgebermodul.
Fig. 4 zeigt einen Datenflußgraphen, in dem ein Beispiel eines Zeitgeberoperationsbefehlsdurchführungs­ programms dargestellt ist, das in dem Prozessor nach Fig. 3 ausgeführt wird. In Fig. 4 bezeichnen die Bezugszeichen 61 einen Zeitgeber-Lesebefehls­ knoten (RTM), 62 einen Vergleichsbefehlsknoten, 63 einen Schaltbefehlsknoten (SW), 64 einen Synchronbefehlsknoten (SYNC) und 65 einen Zeitsetz- Konstantspeicher.
Fig. 5 zeigt ein Schaltbild als Beispiel für einen Aufbau eines Zeitgebermoduls 30. Dabei bezeichnen die Bezugszeichen 71 einen Paketspeicher (packet latch), bestehend aus einem Kennungsspeicher 71a (Kennungs­ latch) und einem Datenspeicher 71b (Daten-latch), 72 ein Übertragungssteuerelement, das ein C-Element (Koinzidenzelement) verwendet, 73 einen Inverter, 74 einen Operationscodedecoder, 76 einen ausgangs­ gesteuerten Speicher (latch), 77 einen Rücksetzzähler und 78 einen Oszillator.
Im folgenden wird die Betriebsweise des zweiten Ausführungsbeispiels erläutert. Wie in Fig. 3 gezeigt, ist das Zeitgebermodul parallel zum arithmetischen Modul FP 15 geschaltet. Wenn der RTM-Befehl am Zeitgebermodul 30 ankommt, wird ein Wert des Zeitgebermoduls 30 gelesen. Zu diesem Zeitpunkt führt das arithmetische Operationsmodul FP 15 keine Verarbeitung durch. Die anderen Konfigurationen sind die gleichen wie in Fig. 1.
Die Durchführung des Programms wird unter der Annahme beschrieben, daß das Zeitgebermodul 30 funktioniert, bevor die Pakete an den Eingängen 56a und 56b in Fig. 4 ankommen. Genauer gesagt, ist der Zähler 77 in Fig. 5 einmal rückgesetzt und führt abhängig vom Taktsignal des Oszillators 78 eine Zählung durch. Zurückgehend auf Fig. 4 wird der RTM-Befehl 61 durchgeführt, wenn er am Eingang 56a ankommt. Der Wert des Zeitgebermoduls 30 wird mit einem Wert verglichen, der vorher im Zeitsetz-Konstantspeicher 65 gespeichert wurde. Wenn das Vergleichsbeispiel "falsch" ist (in diesem Fall ist der aus dem Zeitgebermodul 30 ausgelesene Wert kleiner als der Wert des Zeitsetz-Konstant­ speichers 65), wird der Zeitgeberlesebefehl RTM 61 erneut abhängig vom SW (Schalt-)Befehl durchgeführt. Wenn dahingegen das Ergebnis "richtig" ist (der erstere ist größer als der letztere), wird der Synchronbefehl 64 in Abhängigkeit vom SW-Befehl 63 durchgeführt. Die Pakete werden zu dem Ausgang 57 nach der Synchronisierung mit dem anderen Eingang 56b, der Eingangssignale erhält, bis der Zeitsetzwert (Zeit) erreicht ist, übertragen.
Andere Prozesse können nach einer Zeit entsprechend dem gerade abgelaufenen Zeitsetzwert gestartet werden.
Das Folgende ist eine Beschreibung der Konstruktion des Zeitgebermoduls 30. Das Symbol Pin stellt ein Eingangsdatenpaket des Zeitgebermoduls 30 und Pout ein Ausgangsdatenpaket dar. Die Signale Cin und Aout geben einen Eingang (Eingangsignal) des Pakets Pin und einen Signalempfang an. Die Signale Cout und Ain bezeichnen den Ausgang des Pakets Pout und einen Signalempfang an der Ausgangsseite. Die Signale Cin und Cout sind vorhanden, wenn beide "1" sind. Die Signale Ain und Aout sind vorhanden, wenn sie "0" sind (belegt). Genauer, wenn Aout "1" ist, existiert kein Datenpaket im Speicher (latch) der ersten Stufe. Dies impliziert, daß Cin ankommen kann. Wenn Cin = "1" ist, dann ist Aout = "0" durch Durchführen des Einschreibens in den Speicher der ersten Stufe. Anschließend wird das Datenpaket im Quittungsbetrieb an den Speicher der zweiten Stufe übertragen und Aout ist dann "1". Als Ergebnis kann das Datenpaket von Cin erneut eingegeben werden. Die Maßnahme an der Pout-Seite ist die gleiche. Wenn Ain = "1" ist, ist die Ausgangsseite nicht besetzt, so daß Cout = "1" ist. Ein Ausgang von Pout wird geliefert und Ain = "0". Folglich wird sein Ausgang vor ihm übertragen und dann ist Ain = "1". Die Maßnahme wird durchgeführt, damit der nächste Ausgang ermöglicht wird.
Wie oben diskutiert, werden die Datenpakete von Pin nach Pout unter der Steuerung von C und A übertragen. Das übertragene Datenpaket liest einen Operationscode aus dem Kennungsspeicher 71a. Das Paket gibt diesen Code in den OPC-Decoder 74 (Operationscode-Decoder) ein. Wenn der Operations­ code identisch mit dem RTM-Befehl 61 ist, wird nicht die Maßnahme getroffen, daß die Daten aus dem Datenspeicher 71b gelesen werden, sondern, daß der Ausgang des Speichers 76 des Zählers 77 an den Datenspeicher 71b der zweiten Stufe gegeben wird. Der Speicher 76 hat die Zeitinformation des Zeitgebermoduls. Der Reset- Eingang vom Zähler 77 wird bei Erhalt eines Ausgangs­ signals vom OPC-Decoder 74 rückgesetzt, was durch den Operationscode spezifiziert ist. Wie vorher ausgeführt, erhält der Zähler 77 sowohl den Reset-Eingang als auch das Eingangssignal vom Oszillator 78.
Das Zeitgebermodul 30 im zweiten Ausführungsbeispiel ist parallel zum arithmetischen Modul FP 15 ge­ schaltet. Allerdings ist eine praktikable Anordnung diejenige in einer Variante nach Fig. 6, wobei das Zeitgebermodul 30 parallel zum Warteschlangen- Pufferspeicher Q 16 geschaltet ist, um sein Prozeß in Serie mit dem Prozeß des arithmetischen Moduls FP 15 durchzuführen. In diesem Fall wird der RTM- Befehl 61 nicht im arithmetischen Modul FP 15 ver­ arbeitet. Das Paket mit dem RTm-Befehl 61 an der Verzweigung 12b wird nicht nach Q 16 übertragen, sondern über Verzweigung 12a an das Zeitgebermodul.
Fig. 7 zeigt eine weitere Variante, in der das Zeitgebermodul 30 außerhalb des Prozessors 10 angeordnet ist. Die Funktionsweise ist die gleiche wie die nach Fig. 6.
In Fig. 8 ist das Zeitgebermodul 30 parallel zum Programmspeichermodul PS 13 geschaltet. Eine Prozeßanordnung ist, daß die Zeitgeberinformation aus dem Programmspeichermodul PS 13 wie in dem konstanten Zugriff gelesen wird, wenn die RTM- Information 61 ausgeführt wird. Der Prozeß kann im wesentlichen in der gleichen Art wie mit Fig. 4 durchgeführt werden. Auch kann dieselbe Funktion in der Anordnung ausgeführt werden, in der Programmspeichermodul PS 13, arithmetisches Modul FP 15 und Zeitgebermodul 30, wie in Fig. 9 gezeigt, parallel angeordnet sind. Der Programm­ zugriff und die arithmetische Operation finden im wesentlich parallel statt. Der Grund, warum der Prozeß des Zeitgebermoduls 30 simultan ausgeführt werden kann, ist der gleiche, wie mit der Maß­ nahme nach der Variante nach Fig. 8.
Nun wird ein Zeitgeberpaket, das in dem Datenfluß- Prozessor verwendet wird, beschrieben.
Fig. 18 zeigt eine Darstellung eines 2-Wort-Paket­ formats. Ein erstes Wort (Kennungsteil) ist in der oberen Stufe gezeigt, während ein zweites Wort (Datenteil) in der unteren Stufe dargestellt ist. Das Zeitgeberpaket ist derart ausgebildet, daß Operationscodes wie "Zeitgeber lesen" ("TIMER READ") "Nimm Zeit" (GET TIME) und dergleichen an einen Befehlscode (opc) des Pakets nach Fig. 18 gegeben werden. Zeit/Zeitgeberinformationen werden als Daten (DATA) durch die Operationscodes in den Zeitgeber­ modul gegeben.
Ein drittes Ausführungsbeispiel der Erfindung wird im folgenden erläutert.
Im zweiten, oben diskutierten Ausführungsbeispiel wird das Auslesen des Zeitgebermoduls durchge­ führt, um die Zeitgeberfunktion zu erhalten. Der Wert des Zeitgebermoduls wird mit dem Wert des Konstantspeichers verglichen. Im dritten Aus­ führungsbeispiel wird ein Paket mit der Zeit­ information oder entsprechend der Zeitinformation von außen über den Eingangsport in den Prozessor gegeben. Ein Synchronisierprozeß wird unter Ver­ wendung des Programms, das auf dem Graphen des inneren Datenflusses basiert, zusätzlich aktualisiert.
Fig. 17 zeigt einen Datenflußgraphen, der ein Beispiel des oben beschriebenen Operationsprogramms dar­ stellt. In Fig. 17 beschreiben die gleichen Symbole wie in Fig. 4 die gleichen Komponenten. Es be­ zeichnen die Bezugszeichen 71 einen Vergleichs­ befehlsknoten, 72 einen Schaltbefehlsknoten, 73 einen Löschbefehlsknoten (absorb instruction node), 74 einen Synchronknoten und 75 einen Zeitsetz- Konstantspeicher.
In Übereinstimmung mit dritten Ausführungsbeispiel wird das Paket mit der Zeitinformation dem Eingang des Datenfluß-Prozessors zu einem vorbestimmten Zeitpunkt von außen zugeführt, ohne das Auslesen des Zeitgebers durchzuführen. Das Paket mit der Zeitinformation wird mit dem gesetzten Wert des Zeitsetz-Konstantspeichers verglichen, wobei die Zeitgeberfunktion erzielt wird. Wenn unter Bezugnahme auf Fig. 17 die Zeitinformation des einzelnen Pakets nicht den gesetzten Wert erreicht, wird dieses Paket von einem Löschpaket (Absorbierpaket) in Über­ einstimmung mit dem Löschbefehl 73 absorbiert und verschwindet dann. Wenn dahingegen die Zeit­ information den gesetzten Wert erreicht, wird dieses Paket mit anderen soweit eingegebenen Paketen synchronisiert, wobei die arithmetische Operation ausgeführt wird.
Wie vorher beschrieben, ist im dritten Ausführungs­ beispiel ebenfalls der Zeitsteuerprozeß in der Weise wie in den anderen Ausführungsbeispielen anwendbar und die gleiche Funktion ist erzielbar.
Wie schon diskutiert wurde, wird entsprechend der vorliegenden Erfindung die Zeitgeberfunktion durch die Beschreibung mit dem Datenflußgraphen, der als Datenflußprogramm dient, aktualisiert. Die Zeitgeberfunktion wird ebenfalls aktualisiert, indem auf den Zeitgeber, der innerhalb oder außerhalb des Prozessors vorgesehen ist, mit den vorgegebenen Befehlen zugegriffen wird. Darüber hinaus wird die Zeitgeberfunktion durch die Verwendung des Datenfluß­ graphen aktualisiert, der durch die Verwendung des von außen zu vorgegebenen Zeitpunkten eingegebenen Zeitgeberpakets beschrieben ist. Es ist daher möglich, einen Datenflußprozessor und sein System aufzubauen, die für die sogenannte Real-Zeitverarbeitung in einer Vielzahl von Steuerungsgebieten einschließlich der Zeitelemente, wie Maschinen- und Motorsteuerung und Robotersteuerung anwendbar sind. Es kann somit der Vorteil einer hohen Leistungsfähigkeit durch Höchstgeschwindigkeitsverarbeitung in den verschiedenen Steuerungsbereichen erzielt werden.

Claims (8)

1. Datenfluß-Prozessor mit einem Programmspeichermodul zur Speicherung eines Datenflußprogramms, einem Zündprozeßmodul, einem arithmetischen Operationsmodul, und Verzweigungsmodulen, die in einer Ringstruktur angeordnet sind, in der Informationspakete zir­ kulieren, welche Daten, eine Zielknotenzahl und einen Operationscode beinhalten und die von den Verzweigungsmodulen in die Ringstruktur ein- bzw. ausgeschleust werden, wobei die Zielknoten­ zahl eine Adresse im Datenflußprogramm angibt, unter der Anweisungen stehen, die den Opera­ tionscode bestimmen, welcher Operationen fest­ legt, die vom arithmetischen Operationsmodul in einem folgenden Durchlauf an den Daten vorzuneh­ men sind und die eine neue Zielknotenzahl fest­ legen, und wobei für Operationen, die eine Anwe­ senheit mehrerer Informationspakete erfordern, das Zündprozeßmodul diese erforderlichen Infor­ mationspakte speichert, bis sie alle vollzählig vorliegen, um sie dann an das arithmetische Ope­ rationsmodul weiterzugeben, dadurch gekennzeichnet, daß aus der Anzahl der Durchläufe ausgewählter Informationspakete durch die Ringstruktur eine Zeitspanne bestimmt wird, wobei die Daten dieser ausgewählten Informationspakete die Anzahl be­ reits durchgeführter Durchläufe angeben.
2. Datenfluß-Prozessor nach dem Oberbegriff des Anspruches 1, dadurch gekennzeichnet, daß in der Ringstruktur ein Zeitgeber angeordnet ist, der ankommenden Informationspaketen, die einen ausgewählten Ope­ rationscode enthalten, Daten übergibt, welche einem aktuellen Zeitwert entsprechen, und daß im Programmspeichermodul mit Hilfe des Datenfluß­ programms ein Operationscode festgelegt wird, durch den ein Vergleich des in ein solches In­ formationspaket übergebenen aktuellen Zeitwertes mit einem vorgegebenen Zeitwert zur Ermittlung einer Zeitspanne ausgelöst wird.
3. Datenflußprozessor nach Anspruch 2, dadurch gekennzeichnet, daß zu vorbestimmten Zeitpunkten wenigstens ei­ nes der Informationspakete, welche Daten enthal­ ten, die einem Zeitwert entsprechen, von einem der Verzweigungsmodule von außen in die Ring­ struktur eingeschleust wird.
4. Datenfluß-Prozessor nach Anspruch 2, dadurch gekennzeichnet, daß der Zeitgeber parallel zu dem arithmeti­ schen Operationsmodul geschaltet ist.
5. Datenfluß-Prozessor nach Anspruch 2, dadurch gekennzeichnet, daß der Zeitgeber parallel zu dem Warteschlan­ gen-Pufferspeicher geschaltet ist.
6. Datenfluß-Prozessor nach Anspruch 5, dadurch gekennzeichnet, daß der Zeitgeber außerhalb des Datenfluß-Pro­ zessors angeschlossen ist.
7. Datenfluß-Prozessor nach Anspruch 2, dadurch gekennzeichnet, daß der Zeitgeber parallel zu dem Programm­ speichermodul geschaltet ist.
8. Datenfluß-Prozessor nach Anspruch 2, dadurch gekennzeichnet, daß das Programmspei­ chermodul, das arithmetische Operationsmodul und der Zeitgeber parallel ge­ schaltet ist.
DE4103121A 1990-01-31 1991-01-31 Datenfluß-Prozessor Expired - Fee Related DE4103121C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022780A JPH03226883A (ja) 1990-01-31 1990-01-31 制御プロセッサ

Publications (2)

Publication Number Publication Date
DE4103121A1 DE4103121A1 (de) 1991-08-08
DE4103121C2 true DE4103121C2 (de) 1997-04-30

Family

ID=12092186

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4103121A Expired - Fee Related DE4103121C2 (de) 1990-01-31 1991-01-31 Datenfluß-Prozessor

Country Status (3)

Country Link
US (1) US5274833A (de)
JP (1) JPH03226883A (de)
DE (1) DE4103121C2 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2902204B2 (ja) * 1992-03-24 1999-06-07 三菱電機株式会社 信号処理装置
JP3911130B2 (ja) * 2001-02-15 2007-05-09 シャープ株式会社 データ駆動型情報処理装置
US7774299B2 (en) * 2005-05-09 2010-08-10 Microsoft Corporation Flow computing
US8117614B2 (en) 2006-05-19 2012-02-14 International Business Machines Corporation Extract CPU time facility
US7822886B1 (en) * 2008-04-16 2010-10-26 Xilinx, Inc. Dataflow control for application with timing parameters

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4556938A (en) * 1982-02-22 1985-12-03 International Business Machines Corp. Microcode control mechanism utilizing programmable microcode repeat counter
US4833605A (en) * 1984-08-16 1989-05-23 Mitsubishi Denki Kabushiki Kaisha Cascaded information processing module having operation unit, parallel port, and serial port for concurrent data transfer and data processing
JPS61201338A (ja) * 1985-03-04 1986-09-06 Nec Corp デ−タフロ−処理装置
US4785204A (en) * 1985-06-21 1988-11-15 Mitsubishi Denki Kabushiki Kaisha Coincidence element and a data transmission path
JP2564805B2 (ja) * 1985-08-08 1996-12-18 日本電気株式会社 情報処理装置
JPS62239237A (ja) * 1986-04-10 1987-10-20 Nec Corp デ−タフロ−型情報処理装置
JPH0690734B2 (ja) * 1986-11-19 1994-11-14 日本電気株式会社 デ−タフロ−型計算機用タイマ−モジユ−ル
US4972315A (en) * 1987-03-10 1990-11-20 Mitsubishi Denki Kabushiki Kaisha Data flow machine
JPH0777048B2 (ja) * 1987-06-26 1995-08-16 三菱電機株式会社 記録媒体駆動装置
US5115510A (en) * 1987-10-20 1992-05-19 Sharp Kabushiki Kaisha Multistage data flow processor with instruction packet, fetch, storage transmission and address generation controlled by destination information
JPH01188951A (ja) * 1988-01-23 1989-07-28 Sharp Corp データフロープログラムの実行制御方式
US5125097A (en) * 1988-01-29 1992-06-23 Sharp Kabushiki Kaisha Data flow type information processors where data packets pass through plurality of merging and branching portions of the internal path
US5048009A (en) * 1989-02-28 1991-09-10 Hewlett-Packard Company Broadcast station locator for a local area network
JP2559850B2 (ja) * 1989-05-26 1996-12-04 三菱電機株式会社 制御用プロセッサ

Also Published As

Publication number Publication date
US5274833A (en) 1993-12-28
DE4103121A1 (de) 1991-08-08
JPH03226883A (ja) 1991-10-07

Similar Documents

Publication Publication Date Title
DE3248215C2 (de)
DE2819571C2 (de)
DE2716369C2 (de)
DE1549532C2 (de) Unterbrechungs-Direktorschalrwerk für eine Datenverarbeitungsanlage mit mehreren Rechenanlagen und mehreren perpheren Geräten
DE1499288B2 (de) Datenverarbeitungsanlage
DE2953861C2 (de)
DE4305851C2 (de) Datentransfer-Steuersystem
DE1524209B2 (de) Programmgesteuerte datenverarbeitungsanlage
DE2551681C2 (de) Elektrisch gesteuerte Kraftstoffeinspritzanlage für Brennkraftmaschinen
DE2756762A1 (de) Verfahren und anordnung zum zugriff zu beliebigen bitfeldern im hauptspeicher einer datenverarbeitungsanlage
DE2646296A1 (de) Assoziative elektronische schaltungsanordnung aus digitalen prozessoren
DE3312950C2 (de)
DE3138716A1 (de) Verfahren und vorrichtung zum steuern des zuendzeitpunktes fuer eine brennkraftmaschine
CH634671A5 (de) Kanalspeicher-adapter.
DE2755616A1 (de) Asymmetrischer multiprozessor
EP0107026A1 (de) Speicherprogrammierbare Steuerung
DE102007038877A1 (de) Steuervorrichtung mit schneller I/O-Funktion und Steuerverfahren zum Steuern ihrer Daten
DE4103121C2 (de) Datenfluß-Prozessor
DE3400723A1 (de) Vektorprozessor
EP0671031B1 (de) Mikrorechner mit überwachungsschaltung
EP0765495A1 (de) Verfahren zur optimierung von daten und/oder programmteilen für programmierte steuergeräte und steuergerät
DE112011104950T5 (de) Steuervorrichtung, Steuersystem und Kommunikationsverfahren
DE2747476A1 (de) Vorrichtung und verfahren mit einem geschlossenen digitalen regelsystem zur regelung und steuerung der motordrehzal
DE102017217908A1 (de) Recheneinheit und Betriebsverfahren hierfür
DE2817536C2 (de)

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8339 Ceased/non-payment of the annual fee