Erweiterte Modelle endlicher Automaten - Computer Engineering ...
Erweiterte Modelle endlicher Automaten - Computer Engineering ...
Erweiterte Modelle endlicher Automaten - Computer Engineering ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Diskrete Ereignissysteme<br />
3.2 <strong>Erweiterte</strong> <strong>Modelle</strong> <strong>endlicher</strong> <strong>Automaten</strong><br />
Institut für Technische Informatik und Kommunikationsnetze<br />
Lothar Thiele<br />
Swiss Federal<br />
Institute of Technology<br />
Zustandsautomaten<br />
Modellierungsdefizite:<br />
– nur ein sequentieller Prozess, keine Nebenläufigkeit<br />
– keine hierarchische Strukturierungsmöglichkeit<br />
1<br />
<strong>Computer</strong> <strong>Engineering</strong><br />
and Networks Laboratory<br />
Wesentliche Erweiterung: STATECHARTS-Modell von D. Harel<br />
(siehe Publikation und Demos). Dieses Modell wird in vielen Tools<br />
zur Spezifikation, Analyse, Simulation und Implementation von<br />
DES verwendet, z.B. Matlab-Stateflow, UML, Rhapsody,<br />
Magnum, … .<br />
Wir werden nur Grundzüge des Modells betrachten.<br />
Swiss Federal<br />
Institute of Technology<br />
3<br />
<strong>Computer</strong> <strong>Engineering</strong><br />
and Networks Laboratory<br />
Synchrone Modellierung<br />
Definition:<br />
– Die Umgebung eines DES ist eine geordnete Sequenz von<br />
Augenblicken, in denen jeweils kein, ein oder mehrere<br />
Ereignisse auftreten können.<br />
– Das DES reagiert augenblicklich auf externe Ereignisse.<br />
Folgerung:<br />
– Anstelle der physikalischen Zeit treten die Begriffe der<br />
Gleichzeitigkeit und Reihenfolge von Ereignissen.<br />
– Zustandsautomaten erfüllen die synchrone Eigenschaft.<br />
Swiss Federal<br />
Institute of Technology<br />
Hierarchischer Automat<br />
Swiss Federal<br />
Institute of Technology<br />
2<br />
4<br />
<strong>Computer</strong> <strong>Engineering</strong><br />
and Networks Laboratory<br />
Es gibt drei Arten von Zuständen:<br />
– Ein Basiszustand hat keine Teilzustände.<br />
– Ein sequentieller Zustand hat Teilzustände, die in einer<br />
“exklusiv-oder” Relation zueinander stehen. Die<br />
Zustandsmenge ist die Vereinigung der Zustandsmengen der<br />
Teilzustände : X = X 1 ∪ X 2 ∪ X 3 ∪ ... .<br />
– Ein paralleler Zustand hat nebenläufige Teilzustände, die also<br />
in einer “und”-Relation zueinander stehen. Die Zustandsmenge<br />
ist das Kreuzprodukt der Zustandsmengen der Teilzustände :<br />
X = X 1 × X 2 × X 3 × ... .<br />
<strong>Computer</strong> <strong>Engineering</strong><br />
and Networks Laboratory
Beispiele<br />
Basiszustand<br />
A<br />
X<br />
B E F<br />
C<br />
D<br />
Swiss Federal<br />
Institute of Technology<br />
Sequ. Zustand Par. Zustand<br />
A<br />
X<br />
A<br />
B C<br />
Y Z<br />
G H<br />
I K L<br />
Hierarchischer Automat<br />
M<br />
5<br />
X Y<br />
A<br />
B E<br />
C D F M<br />
G H<br />
I K L<br />
<strong>Computer</strong> <strong>Engineering</strong><br />
and Networks Laboratory<br />
Neben den Zuständen, die explizit als Basiszustände, sequentielle<br />
oder paralle Zustände modelliert sind, können beliebige weitere<br />
Variablen (und damit Zustände) definiert werden.<br />
Bei Zustandsübergängen können auf diese Variablen durch<br />
Operationen verändert werden (“action”).<br />
Zustandsänderungen können von diesen Variablen abhängig<br />
gemachtg werden (“condition” ).<br />
Swiss Federal<br />
Institute of Technology<br />
action unstrukturierter<br />
Zustandsraum<br />
Variablen<br />
condition<br />
7<br />
<strong>Computer</strong> <strong>Engineering</strong><br />
and Networks Laboratory<br />
Beispiel<br />
Berechnung der Zustandsmenge<br />
– Basiszustände: Zustandsmenge = Zustand<br />
– Parallele Zustände: Zustandsmenge = Kreuzprodukt der<br />
Kinder.<br />
– Sequentielle Zustände: Zustandsmenge = Vereinigung der<br />
Kinder<br />
X H = X L , X G = X I ∪X K , X F = X G × X H<br />
X B= X C∪X D , X E = X M∪ X F<br />
X A = X B× X E<br />
X A = (X C∪X D)×(X M∪ ((X I∪X K)×X L))<br />
= X CIL∪X CKL∪X CM∪X DIL∪X DKL∪X DM<br />
Swiss Federal<br />
Institute of Technology<br />
Hierarchischer Automat<br />
Transitionen zwischen Zuständen sind von der Form<br />
Swiss Federal<br />
Institute of Technology<br />
event[condition]/action<br />
6<br />
8<br />
A<br />
B E<br />
C D F M<br />
G H<br />
I K L<br />
<strong>Computer</strong> <strong>Engineering</strong><br />
and Networks Laboratory<br />
– Ein Zustandsübergang tritt auf, falls das Ereignis “event”<br />
eintritt und die Bedingung “condition” zum Zeitpunkt des<br />
Ereignisses den Wert “true” hat.<br />
– Die Bedingung “condition” wird über den Variablen des<br />
Modells ausgewertet.<br />
– Mit dem Zustandsübergang wird die Aktion “action”<br />
ausgeführt: Auslösen eines oder mehrerer Ereignisse und/oder<br />
Berechnung von Variablen.<br />
<strong>Computer</strong> <strong>Engineering</strong><br />
and Networks Laboratory
Hierarchischer Automat<br />
“event” kann aus zusammengesetzten Ereignissen bestehen: e,<br />
Bedingungen c und Aktionen a, z.B.<br />
–(e1 and e2) : Ereignis, das dem gleichzeitigen Eintreten von e1<br />
und e2 entspricht (auch e1.e2).<br />
–(e1 or e2) : Ereignis, das eintritt, falls e1 oder e2 oder beide<br />
gleichzeitig eintreten (auch e1+e2).<br />
– (not e) : Ereignis tritt auf, wenn e nicht eintritt (auch e ).<br />
Aktionen können ebenfalls zusammengesetzt werden:<br />
–(a1; a2) : Aktionen a1 und a2 werden sequentiell ausgeführt.<br />
Alle Ereignisse, Zustände, Aktionen usw. sind global sichtbar.<br />
Swiss Federal<br />
Institute of Technology<br />
Semantik<br />
9<br />
<strong>Computer</strong> <strong>Engineering</strong><br />
and Networks Laboratory<br />
Ein Schritt ist der Uebergang von einer Zustandskonfiguration in<br />
eine direkt folgende Konfiguration.<br />
Ein Schritt wird in beliebig kurzer Zeit ausgeführt.<br />
Aktionen werden am Ende eines Schrittes ausgeführt und sind ab<br />
dem direkt folgenden Schritt gültig.<br />
Generierte Ereignisse sind nur im direkt folgenden Schritt gültig.<br />
Werden mehrer Uebergänge gleichzeitig ausgeführt, so gehören sie<br />
zu parallelen Zuständen.<br />
Auftreten externer Ereignisse<br />
Transport interner Ereignisse<br />
Swiss Federal<br />
Institute of Technology<br />
stabil<br />
11<br />
stabil<br />
Schritte (interne Zustandsübergänge)<br />
<strong>Computer</strong> <strong>Engineering</strong><br />
and Networks Laboratory<br />
Beispiel<br />
e:<br />
a1:<br />
a2:<br />
c:<br />
e:<br />
a1:<br />
a2:<br />
c:<br />
Swiss Federal<br />
Institute of Technology<br />
Beispiele<br />
e/a1 [c]/a2<br />
x y z<br />
Zustandsdiagramme: stabile<br />
Konfigurationen<br />
Swiss Federal<br />
Institute of Technology<br />
10<br />
12<br />
true<br />
false<br />
true<br />
false<br />
<strong>Computer</strong> <strong>Engineering</strong><br />
and Networks Laboratory<br />
<strong>Computer</strong> <strong>Engineering</strong><br />
and Networks Laboratory
Semantik<br />
Können keine Übergänge ausgeführt werden, so ist die<br />
Zustandskonfiguration stabil.<br />
Beim Eintritt in einen sequentiellen Zustand wird der<br />
Anfangszustand initialisiert.<br />
Beim Eintritt in einen parallelen Zustand werden alle Teilzustände<br />
eingenommen.<br />
Beim Austritt aus einem parallelen Zustand werden alle<br />
Teilzustände verlassen.<br />
Swiss Federal<br />
Institute of Technology<br />
Beispiel<br />
Zyklisches Verhalten:<br />
Swiss Federal<br />
Institute of Technology<br />
a/b<br />
13<br />
A C<br />
c/d<br />
15<br />
b/c<br />
B D<br />
d/a<br />
<strong>Computer</strong> <strong>Engineering</strong><br />
and Networks Laboratory<br />
<strong>Computer</strong> <strong>Engineering</strong><br />
and Networks Laboratory<br />
Beispiel<br />
Nichtdeterminismus<br />
a<br />
A C<br />
a a<br />
B D<br />
Zustandsdiagramm:<br />
Swiss Federal<br />
Institute of Technology<br />
Beispiel<br />
A<br />
C<br />
a<br />
B<br />
b<br />
Swiss Federal<br />
Institute of Technology<br />
a<br />
a<br />
A,B C,D<br />
D E<br />
F H<br />
d<br />
G I<br />
b<br />
a<br />
a/c<br />
c/d<br />
d<br />
14<br />
16<br />
a<br />
a<br />
E G<br />
F H<br />
E,H<br />
F,G<br />
<strong>Computer</strong> <strong>Engineering</strong><br />
and Networks Laboratory<br />
Zustandsdiagramm<br />
(nur stabile Zustände<br />
sind dargestellt) :<br />
B<br />
b<br />
G,H<br />
a.b _<br />
a or b<br />
F,H<br />
a or b<br />
<strong>Computer</strong> <strong>Engineering</strong><br />
and Networks Laboratory
Ausblick<br />
Vorteile hierarchischer Zustandsautomaten:<br />
– Mathematisch fundierte Darstellung diskreter Ereignissysteme.<br />
– Leichte Umsetzung in eine Software- oder Hardware-<br />
Implementierung.<br />
– Effizient simulierbar.<br />
– Effizient verifizierbar (model checking), falls in den Aktionen<br />
(action) nur Ereignisse generiert werden.<br />
Nachteile hierarchischer Zustandsautomaten:<br />
– Unübersichtlich für grosse Systeme.<br />
– Wiederverwendbarkeit klein.<br />
Swiss Federal<br />
Institute of Technology<br />
Vom <strong>Automaten</strong> zur Implementierung<br />
Swiss Federal<br />
Institute of Technology<br />
Zustandsautomat<br />
CC VHDL VHDL<br />
Compiler<br />
Maschinenprogramm<br />
Prozessor<br />
17<br />
Synthese<br />
Schaltung<br />
Implementierung<br />
Berechnung Berechnung<br />
Software Hardware<br />
19<br />
<strong>Computer</strong> <strong>Engineering</strong><br />
and Networks Laboratory<br />
Synthese<br />
Blockschaltbild<br />
Plazieren<br />
Verdrahten<br />
FPGA-Programm<br />
Programm<br />
laden<br />
<strong>Computer</strong> <strong>Engineering</strong><br />
and Networks Laboratory<br />
Ausblick<br />
– Keine Darstellung des transformatorischen Anteils von<br />
Systemen (Datenfluss, arithmetische Operationen, ...).<br />
– Grosser Teil des Systemzustandes ist in der Ausführung von<br />
Operationen (action) auf „externen“ Variablen verborgen.<br />
Verwandte Ansätze und kommerzielle Software-Tools:<br />
– Kommunizierende sequentielle Prozesse (CSP, OCCAM).<br />
– Petri-Netze (siehe später).<br />
– Imperative Sprachen (Esterel), Datenfluss-Sprachen (Lustre),<br />
Realtionale Sprachen (Signal), synchrone <strong>Automaten</strong> (Argos).<br />
– Sprachen für Echtzeit-Systeme (Euclid).<br />
– Gemischte <strong>Modelle</strong> (CIP, SDL, Matlab-StateFlow, Unified<br />
Modeling Language (UML), ROOM, Rhapsody(Harel),...)<br />
Swiss Federal<br />
Institute of Technology<br />
Magnum (Statecharts-Tool)<br />
Spezifikation<br />
Swiss Federal<br />
Institute of Technology<br />
18<br />
20<br />
<strong>Computer</strong> <strong>Engineering</strong><br />
and Networks Laboratory<br />
<strong>Computer</strong> <strong>Engineering</strong><br />
and Networks Laboratory
Magnum (Statecharts)<br />
Simulation<br />
UML<br />
Swiss Federal<br />
Institute of Technology<br />
Swiss Federal<br />
Institute of Technology<br />
21<br />
23<br />
<strong>Computer</strong> <strong>Engineering</strong><br />
and Networks Laboratory<br />
<strong>Computer</strong> <strong>Engineering</strong><br />
and Networks Laboratory<br />
UML<br />
UML (unified modelling language) wird zur Spezifikation und<br />
Modellierung grosser Softwaresysteme sowie eingebetteter<br />
(Echtzeit)-Systeme eingesetzt.<br />
UML ist ein internationaler Standard und ist Grundlage<br />
mehrerer Software Entwicklungs-umgebungen (<strong>Computer</strong> Aided<br />
Software <strong>Engineering</strong>).<br />
Die wesentlichen dynamischen <strong>Modelle</strong> sind StateCharts und<br />
Activity Charts (Petri Netze).<br />
Swiss Federal<br />
Institute of Technology<br />
StateFlow<br />
Teil von Matlab-<br />
Simulink<br />
Verbindung von<br />
kontinuierlicher<br />
und<br />
diskreter<br />
Modellierung<br />
Swiss Federal<br />
Institute of Technology<br />
22<br />
24<br />
<strong>Computer</strong> <strong>Engineering</strong><br />
and Networks Laboratory<br />
<strong>Computer</strong> <strong>Engineering</strong><br />
and Networks Laboratory