DE4103121C2 - Datenfluß-Prozessor - Google Patents
Datenfluß-ProzessorInfo
- 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
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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4494—Execution paradigms, e.g. implementations of programming paradigms data driven
-
- 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/25433—Dataflow 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.
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)
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)
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 | 三菱電機株式会社 | 制御用プロセッサ |
-
1990
- 1990-01-31 JP JP2022780A patent/JPH03226883A/ja active Pending
-
1991
- 1991-01-28 US US07/647,710 patent/US5274833A/en not_active Expired - Lifetime
- 1991-01-31 DE DE4103121A patent/DE4103121C2/de not_active Expired - Fee Related
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 |