Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
264,19 KB
Nội dung
514 8 Systemverifikation sehen. Die runden Knoten bezeichnen dabei Quellen bzw. Senken von Ankunfts- und Servicekennlinien, d. h. sie modellieren die Umgebung des Systems. So wird beispielsweise die Ankunftsrate von Paketen beschr ¨ ankt. Die Rechtecke bezeichnen die Transformation der Ankunfts- und Servicekennlinien entsprechend Abb. 8.38. Man beachte, dass im Echtzeitkalk ¨ ul Kommunikation genauso wie Berechnungen auf Prozessoren behandelt wird. CheckSum Bus ARM Cipher DSP in in in in in in com com com com com com out out out out out out a 0 a 1 a 2 a 3 a 4 a 5 a 6 a 7 a 9 a 10 a 8 Abb. 8.40. Zeitbewertungsnetzwerk f ¨ ur den Netzwerkprozessor aus Abb. 8.35 [429] Modulare Zeitanalyse zyklischer markierter Graphen In Abschnitt 6.5.2 wurde eine formale Methode zur Zeitanalyse von latenzinsen- sitiven Systemen vorgestellt. Das zentrale Ergebnis war, dass sich solche Systeme als markierte Graphen modellieren lassen (siehe Abb. 6.82 auf Seite 356). Da Im- plementierungen mit beschr ¨ anktem Speicher auskommen m ¨ ussen, wurden FIFO- Kan ¨ ale mit beschr ¨ ankter Kapazit ¨ at durch zus ¨ atzliche r ¨ uckw ¨ arts gerichtete Kanten 8.2 Zeitanalyse auf Systemebene 515 mit Anfangsmarkierung modelliert. Dadurch wurden Ressourcenbeschr ¨ ankungen f ¨ ur die Kan ¨ ale ber ¨ ucksichtigt. Ressourcenbeschr ¨ ankungen f ¨ ur die Aktoren wurden durch Selbstschleifen mit einer einzelnen Anfangsmarke modelliert, wodurch ein Aktor stets erst nach Beendigung einer Berechnung die n ¨ achste Berechnung starten kann. Aktoren sind in diesem Modell dediziert gebunden, d. h. jeder Aktor entspricht ei- ner Hardware-Komponente. In diesem Abschnitt wird beschrieben, wie die modu- lare Zeitanalyse f ¨ ur Systeme, bei denen mehrere Aktoren auf die selben Hardware- Komponente gebunden sein k ¨ onnen, angewendet werden kann. Modellierung markierter Graphen Gegeben sei ein markierter Graph G =(A,C, M 0 ) mit Aktoren a ∈ A,Kan ¨ alen c ∈ C ⊆ A × A und der Anfangsmarkierung M 0 : C → R ≥0 . Man beachte, dass die Markierung eines Kanals kontinuierlich sein kann. Dies schließt selbstverst ¨ andlich den Fall ein, dass Marken diskret sein k ¨ onnen. Ein Aktor verarbeitet einen Strom aus Marken, der als Ereignisstrom modelliert wird. Die Anzahl zu verarbeitender Marken, die in einem Kanal (v i ,v j ) gespeichert wurden, wird als sog. Ankunftsfunktion r ij ( τ ) : T → R ≥0 modelliert. Diese weist je- dem Zeitpunkt τ ∈ T die Anzahl an Marken zu, die im Zeitintervall [0, τ ) an dem Kanal (v i ,v j ) angekommen sind. Dies entspricht der Anzahl produzierter informati- ver Daten eines Aktors in einem latenzinsensitiven System (siehe Gleichung (6.26)). Die Anfangsmarkierung des Kanals ergibt sich zu r ij (0) := M 0 (v i ,v j ). F ¨ ur einen Aktor a i ∈ A lassen sich die Ankunftsfunktionen der Eingangskan ¨ ale zu einem Vektor r in i zusammenfassen: r in i :=(r ji | (v j ,v i ) ∈ C). Analog lassen sich die Ankunftsfunktionen der Ausgangskan ¨ ale in einem Vektor r out i zusammenfassen: r out i :=(r ik | (v i ,v k ) ∈ C). Man sagt, f ¨ ur zwei Vektoren r in i und ˜r in i von Ankunftsfunk- tionen, dass r in i ≥ ˜r in i ist, falls ∀(a j ,a i ) ∈ A, τ ∈ T gilt, dass r in ij ( τ ) ≥ ˜r in ij ( τ ) ist. Das zeitliche Verhalten eines Aktors a i l ¨ asst sich als Abbildung der Ankunfts- funktionen der Eingangskan ¨ ale r in i auf die Ankunftsfunktionen der Ausgangskan ¨ ale r out i beschreiben: r out i : π i ◦ r in i (8.15) π i wird als Transferfunktion des Aktors a i bezeichnet. Da Aktoren in markierten Graphen deterministisches Verhalten besitzen, beschreibt π i eine deterministische Abbildung. Weiterhin besitzen markierte Graphen monotones Verhalten, d. h., falls r in i ≥ ˜r in i gilt, dass π i ◦ r in i ≥ π i ◦ ˜r in i . Ohne Ressourcenbeschr ¨ ankungen bei selbstplanender Ausf ¨ uhrung der Aktoren gilt, dass die Anzahl der produzierten Marken eines Aktors a i auf jedem Ausgangs- kanal gleich dem Minimum der auf seinen Eingangskan ¨ alen verarbeitbaren Marken ist (siehe auch Gleichung (6.28) auf Seite 354): ∀(v i ,v k ) ∈ C : r out ik ( τ ) := min (v j ,v i )∈C {r in ji ( τ )} (8.16) Bei der selbstplanenden Ausf ¨ uhrung von Aktoren feuern diese, sobald gen ¨ ugend Marken auf den Eingangskan ¨ alen verf ¨ ugbar sind. 516 8 Systemverifikation Die Ankunftsfunktionen der Ausgangskan ¨ ale eines Aktors a i stellen f ¨ ur andere Aktoren oder a i selbst Ankunftsfunktionen f ¨ ur Eingangskan ¨ ale dar. Aufgrund der FIFO-Semantik der Kan ¨ ale in markierten Graphen m ¨ ussen die Ankunftsfunktionen um die Anfangsmarkierung verschoben werden. Dies kann durch die Sprungfunktion ρ ji ( τ ) f ¨ ur einen Kanal (v j ,v i ) dargestellt werden: ρ ji ( τ ) := 0 falls τ ≤ 0 M 0 (v j ,v i ) falls τ > 0 Damit kann der Zusammenhang zwischen der Ankunftsfunktion r out ji ( τ ) auf einem Ausgangskanal eines Aktors a j und der Ankunftsfunktion r in ji ( τ ) f ¨ ur den selben Ka- nal beim lesenden Aktor a i hergestellt werden: r in ji ( τ ) := r out ji ( τ )+ ρ ji ( τ ) (8.17) Gleichungen (8.16) und (8.17) lassen sich zu einem Gleichungssystem zusammen- fassen (siehe auch Gleichung (6.30) auf Seite 354): r := Π ◦ r (8.18) Dabei enth ¨ alt r die Ankunftsfunktionen an den Ausgabekan ¨ alen (v j ,v i ) ∈ C,d.h. r :=(r out ji | (v j ,v i ) ∈ C), und Π enth ¨ alt die Abbildungsfunktionen aller Aktoren. Diese Gleichung besitzt einen eindeutigen Fixpunkt, setzt man δ -Kausalit ¨ at voraus, d. h. dass Marken fr ¨ uhestens einen kurzen Zeitschritt δ > 0, nachdem sie produziert worden sind, einen folgenden Aktor aktivieren k ¨ onnen. Liegen keine Ressourcenbe- schr ¨ ankungen vor, kann der maximale Durchsatz des markierten Graphen auf Ba- sis von Max-Plus-Algebra bestimmt werden (siehe Abschnitt 6.5.2). Der Fixpunkt charakterisiert den Eigenwert der Matrix Π und damit den Durchsatz. Beschr ¨ ankte Kanalkapazit ¨ aten k ¨ onnen durch R ¨ uckkanten modelliert werden. Modellierung von Ressourcenbeschr ¨ ankungen Um zu modellieren, dass die Ausf ¨ uhrung eines Aktors a i Ressourcenbeschr ¨ ankun- gen unterliegt, muss die Abbildungsfunktion π i angepasst werden [432]. Hierzu wird angenommen, dass der Aktor a i auf einer Ressource ausgef ¨ uhrt wird, die durch eine sog. Servicefunktion c( τ ) beschrieben wird. Dabei beschreibt c( τ ) ∈ R ≥0 die An- zahl an Aktorfeuerungen, welche die Ressource in dem Zeitintervall [0, τ ) ausf ¨ uhren kann, wobei c(0) := 0ist. Die Verwendung von Servicefunktionen erlaubt eine Modellierung beliebiger Ressourcenbeschr ¨ ankungen und Ablaufplanungsstrategien. Das Kommunikations- verhalten eines Aktors a i mit einem Aktor k bei selbstplanender Ausf ¨ uhrung kann unter Ber ¨ ucksichtigung von Ressourcenbeschr ¨ ankungen mit der folgenden Transfer- funktion beschrieben werden: r out ik ( τ ) := inf 0≤ λ ≤ τ { min (v j ,v i )∈C {r in ji ( λ )} + c( τ ) − c( λ )} (8.19) 8.2 Zeitanalyse auf Systemebene 517 Gleichung (8.19) kann dann wie folgt interpretiert werden [432]: In einem Inter- vall [ λ , τ ) k ¨ onnen c( τ )−c( λ ) Aktorfeuerungen ausgef ¨ uhrt werden, sofern gen ¨ ugend Marken am Eingang verf ¨ ugbar sind, d. h. r out ik ( τ ) ≤ r out ik ( λ )+c( τ ) − c( λ ).Wei- terhin muss zu jedem Zeitpunkt gelten, dass r out ik ( λ ) ≤ min (v j ,v i )∈C {r in ji ( λ )} ist, da ein Aktor h ¨ ochstens so viele Marken produzieren kann, wie auf einem Eingangs- kanal verf ¨ ugbar waren. Ohne Ressourcenbeschr ¨ ankung w ¨ urde bei selbstplanender Ausf ¨ uhrung gelten, dass beide Seiten der Ungleichung gleich sind. Zusammen gilt r out ik ( τ ) ≤ min (v j ,v i )∈C {r in ji ( λ )} + c( τ ) − c( λ ). Nun gibt es einen Zeitpunkt λ ∗ wo zum letzten Mal galt, dass r out ik ( λ ∗ )= min (v j ,v i )∈C {r in ji ( λ ∗ )} ist. Dieser Zeitpunkt kann entweder λ ∗ = 0, λ ∗ = τ oder ein Zeitpunkt dazwischen sein. Nach diesem Zeitpunkt λ ∗ ist die Ressource perma- nent mit der Ausf ¨ uhrung des Aktors a i ausgelastet. Es gilt: r out ik ( τ )=r out ik ( λ ∗ )+ c( τ ) − c( λ ∗ )=min (v j ,v i )∈C {r in ji ( λ ∗ )} + c( τ ) − c( λ ∗ ). Genau dieses λ ∗ wird mit der Infimum-Operation bestimmt, die in der Transferfunktion in Gleichung (8.19) ange- geben ist. Beispiel 8.2.11. Gegeben ist der markierte Graph in Abb. 8.41 mit drei Aktoren. Je- der Aktor a i wird auf einer Ressource mit der Servicefunktion c i ( τ ) ausgef ¨ uhrt. Die Transferfunktionen f ¨ ur den markierten Graph ergeben sich unter Verwendung von Gleichung (8.19) und (8.17) dann zu: r out 0,1 ( τ ) := inf 0≤ λ ≤ τ {r in 1,0 ( λ )+c 0 ( τ ) − c 0 ( λ )} = inf 0≤ λ ≤ τ {r out 1,0 ( λ )+ ρ 1,0 ( λ )+c 0 ( τ ) − c 0 ( λ )} r out 1,2 ( τ ) := inf 0≤ λ ≤ τ {min{r in 0,1 ( λ ),r in 2,1 ( λ )} + c 1 ( τ ) − c 1 ( λ )} = inf 0≤ λ ≤ τ {min{r out 0,1 ( λ ),r out 2,1 ( λ )+ ρ 2,1 ( λ )} + c 1 ( τ ) − c 1 ( λ )} r out 2,1 ( τ ) := inf 0≤ λ ≤ τ {r in 1,2 ( λ )+c 2 ( τ ) − c 2 ( λ )} = inf 0≤ λ ≤ τ {r out 1,2 ( λ )+c 2 ( τ ) − c 2 ( λ )} r out 1,0 ( τ ) := inf 0≤ λ ≤ τ {min{r in 0,1 ( λ ),r in 2,1 ( λ )} + c 1 ( τ ) − c 1 ( λ )} = inf 0≤ λ ≤ τ {min{r out 0,1 ( λ ),r out 2,1 ( λ )+ ρ 2,1 ( λ )} + c 1 ( τ ) − c 1 ( λ )} a 0 a 1 a 2 Abb. 8.41. Markierter Graph [432] 518 8 Systemverifikation Die verbleibende Servicefunktion c ( τ ) nachdem ein Aktor a i ausgef ¨ uhrt wurde, ergibt sich zu: c ( τ ) := c( τ ) − min (v j ,v i )∈C {r in ji ( τ )} (8.20) Abstraktion der Servicefunktion Um die Zeitanalyse effizient durchf ¨ uhren zu k ¨ onnen, m ¨ ussen sowohl die Service- funktionen als auch die Ankunftsfunktionen abstrahiert werden. Zun ¨ achst werden die Servicefunktionen durch untere und obere Schranken begrenzt. Diese Schran- ken werden als Servicekennlinien (siehe Definition 8.2.2 auf Seite 510) bezeichnet. Dabei wird von dem Zeitbereich in den Zeitintervallbereich gewechselt. Unter Verwendung von Servicekennlinien β l i und β u i f ¨ ur den Aktor a i kann Glei- chung (8.19) wie folgt angen ¨ ahert werden: r out ik ( τ ) ≤ inf 0≤ λ ≤ τ { min (v j ,v i )∈C {r in ji ( λ )} + β u i ( τ − λ )} r out ik ( τ ) ≥ inf 0≤ λ ≤ τ { min (v j ,v i )∈C {r in ji ( λ )} + β l i ( τ − λ )} Unter Verwendung des Operators a ⊕ b := min{a,b} und des Operators a( τ ) ⊗ b( τ ) := inf 0≤ λ ≤ τ {a( λ ) − b( τ − λ )} erh ¨ alt man: ⎛ ⎝ (v j ,v i )∈C r in ji ( τ ) ⎞ ⎠ ⊗ β l i ( τ ) ≤ r out ik ( τ ) ≤ ⎛ ⎝ (v j ,v i )∈C r in ji ( τ ) ⎞ ⎠ ⊗ β u i ( τ ) (8.21) In [432] beweisen Thiele und Stoimenov: Wenn die Servicefunktion c( τ ) durch die Servicekennlinien ersetzt wird, erh ¨ alt man untere bzw. obere Schranken f ¨ ur die Ankunftsfunktion. r out ik ( τ ) ≥ β l i ( τ ) ⊕ ⎛ ⎝ (v j ,v i )∈C (r out ji ( τ ) ⊗ ( ρ ji ( τ )+ β l i ( τ ))) ⎞ ⎠ r out ik ( τ ) ≤ β u i ( τ ) ⊕ ⎛ ⎝ (v j ,v i )∈C (r out ji ( τ ) ⊗ ( ρ ji ( τ )+ β u i ( τ ))) ⎞ ⎠ Unter Verwendung der Matrixmultiplikation C = A ⊗B mit c ij := k (a ik ⊗ b kj ) k ¨ onnen diese Ungleichungen kompakt als r l := β l ⊕ S l ⊗ r l r u := β u ⊕ S u ⊗ r u mit s l,u ij := β l,u i + M 0 (v j ,v i ) falls (v j ,v i ) ∈ C ∞ sonst 8.2 Zeitanalyse auf Systemebene 519 dargestellt werden. Dabei stellt S l bzw. S u die Systemmatrix, β l bzw. β u den Vektor der unteren bzw. oberen Servicekennlinien und r l bzw. r u den Vektor der unteren bzw. oberen Schranken an die Ankunftsfunktionen dar. F ¨ ur die Systemmatrizen S l und S u kann der Abschluss bestimmt werden, der wie folgt definiert ist: S ∗ := ∞ k:=0 S (k) mit S (k) := S ⊗ S (k−1) Damit lassen sich schließlich die unteren und oberen Schranken der Ankunftsfunkti- on bestimmen [ 432]: r l :=(S l ) ∗ ⊗ β l (8.22) r u :=(S u ) ∗ ⊗ β u (8.23) Maximale Latenzen in markierten Graphen Um die maximalen Latenzen in einem markiertem Graphen mittels der modularen Zeitanalyse bestimmen zu k ¨ onnen, werden zwei durch einen Pfad verbundene Akto- ren des markierten Graphen ausgew ¨ ahlt: a s sei der Quellaktor und a d sei der Zielak- tor. Es wird angenommen, dass der Quellaktor a s mit der zus ¨ atzlichen Ankunftsfunk- tion g s ( τ ) angeregt wird. Es soll dann die maximale Latenz einer Aktivierung des Quellaktors a s bis zur Aktivierung des Zielaktors a d bestimmt werden. Die zus ¨ atzli- che Ankunftsfunktion kann dann als Diagonalmatrix G s angegeben werden. Beispiel 8.2.12. Gegeben ist der markierte Graph mit Eingangsankunftsfunktion am Aktor a 0 in Abb. 8.42. Die Matrix, welche die zus ¨ atzliche Ankunftsfunktion model- liert, l ¨ asst sich wie folgt beschreiben: G s := ⎛ ⎝ g 0 00 0 ∞ 0 00∞ ⎞ ⎠ Man sieht, dass auf der Diagonalen zus ¨ atzliche Eingangsfunktionen f ¨ ur Aktoren ein- getragen werden k ¨ onnen. Besitzt ein Aktor keinen Eingang, so ist der entsprechende Eintrag ∞. Die Nebendiagonalelemente erhalten den Wert null. a 0 a 2 a 1 g 0 Abb. 8.42. Markierter Graph mit Eingangsankunftsfunktion 520 8 Systemverifikation Mit der Matrix G s lassen sich die Gleichungen (8.22) und (8.23) um den Eingang an Aktor a s erweitern: r l :=(S l ) ∗ ⊗ G s ⊗ β l (8.24) r u :=(S u ) ∗ ⊗ G s ⊗ β u (8.25) Betrachtet man nun lediglich den Zielaktor a d , so ergibt sich f ¨ ur die untere An- kunftsfunktion nach Umformung folgende Gleichung: r l d := β l sd ⊗ G s ⊕ h s d l mit (8.26) β l sd :=(S l ) ∗ ds ⊗ β l s und h l sd := i= j {(S l ) ∗ dj ⊗ β l j } Darin beschreibt β l sd die untere kumulierte Servicekennlinie und h l sd beschreibt die Transferfunktion des markierten Graphen entlang des Pfades von a s nach a d , wenn die Ankunftsfunktion keine Marken enth ¨ alt. Es handelt sich somit um einen konstan- ten Offset. F ¨ ur die Zeitanalyse wird schließlich noch die Eingangsankunftsfunktion g s durch Ankunftskennlinien γ l s und γ u s begrenzt. Die maximale Latenz von a s zu a d l ¨ asst sich dann nach Gleichung (8.12) auf Seite 513 berechnen zu: Λ sd := max{inf{ λ ≥ 0: β l sd ( τ − λ ) ≥ γ u s ( τ )∀ τ ≥ 0}, inf{ λ ≥ 0:h l sd ( τ − λ ) ≥ γ u s ( τ )∀ τ ≥ 0}} 8.3 Literaturhinweise Die CTL-Modellpr ¨ ufung f ¨ ur SysteMoC-Modelle ist in [191] beschrieben. Sie beruht auf der symbolischen Repr ¨ asentation des Zustandsraums eines SysteMoC-Modells auf Basis von IDDs und IMDs [193, 192]. Dabei handelt es sich um eine Verfei- nerung der symbolischen Repr ¨ asentation des Zustandsraums f ¨ ur FunState-Modelle [415, 418, 414]. Der Zustandsraum eines FunState-Modells wird dabei als regul ¨ arer Zustandsautomat [434] modelliert. Die dort pr ¨ asentierten Verfahren eignen sich auch zur Modellpr ¨ ufung von Petri-Netzen [416, 442]. Die Modellpr ¨ ufung von SystemC-Modellen ist in [271] vorgestellt. Diese basiert auf Vorarbeiten zur Verifikation von SpecC-Modellen [244] und der ¨ Aquivalenz- pr ¨ ufung von Verilog- und C-Programmen [270]. Die Verifikationsmethode verwen- det dabei attributierte temporale Strukturen f ¨ ur jeden SystemC-Prozess [89]. Das Gesamtmodell erh ¨ alt man ¨ uber eine parallel Komposition der temporalen Struktu- ren, wie sie bereits in [14] vorgeschlagen wurde. Die verwendete Abstraktion ist identisch mit der ” existentiellen Abstraktion“ f ¨ ur temporale Strukturen [101]. Die in [271] beschriebene formale Modellpr ¨ ufung kann auch zur Verifikation von Transaktionsebenenmodellen (TLMs) eingesetzt werden. In [345, 347] ist ein 8.3 Literaturhinweise 521 solcher Ansatz beschrieben. Eine Erweiterung der Transaktionen um die ACID- Eigenschaften (engl. Atomicity, Consistency, Isolation, and Durability) erlaubt es, das Modell des SystemC-Simulators vollst ¨ andig zu eliminieren [346]. Die ACID- Eigenschaften sind aus Datenbanksystemen bekannt und beschreiben in TLMs fol- gende Eigenschaften: • Atomarit ¨ at: Entweder wird eine Transaktion exklusiv, d. h. ohne Verschr ¨ ankung mit anderen Transaktionen, und vollst ¨ andig auf einem Target ausgef ¨ uhrt oder gar nicht. Man beachte, dass nichtblockierende Transaktionen als mehrere atomare Transaktionen modelliert werden k ¨ onnen. • Konsistenz: Das Target, welches die Transaktion ausf ¨ uhrt, ist zu Beginn und am Ende der Ausf ¨ uhrung in einem g ¨ ultigen Zustand. • Isolierung: Es sind keine Zwischenzust ¨ ande der Berechnung einer Transaktion außerhalb des Targets sichtbar. • Nachhaltigkeit: Nachdem die erfolgreiche Abarbeitung einer Transaktion best ¨ a- tigt wurde, wird diese nicht mehr r ¨ uckg ¨ angig gemacht. Weitere Ans ¨ atze zur formalen Modellpr ¨ ufung von TLMs finden sich beispielsweise [210] und [337]. Der in Abschnitt 8.1.4 beschriebene zusicherungsbasierte Verifikationsansatz f ¨ ur TLMs basiert auf der Verschaltung elementarer Monitore und ist ausf ¨ uhrlich in [361] beschrieben. Ein alternativer Ansatz, der spezielle SystemC-Kan ¨ ale ben ¨ otigt, ist in [126, 278] beschrieben und verwendet FoCs [167] zur Generierung von C++- Monitoren. In [344] ist ein simulativer Ansatz zur ¨ Uberpr ¨ ufung von SystemVerilog- Zusicherungen (SVA) vorgestellt. Mittels Aspekt-orientierter Programmierung wird die Aufzeichnung von zeitbehafteten und nicht zeitbehafteten Transaktionen in die SystemC-TLM-Beschreibung eingeflochten. In einem ersten Simulationslauf wer- den somit Verl ¨ aufe der Transaktionen aufgezeichnet und anschließend in einer RTL- Simulation bez ¨ uglich der Zusicherungen ¨ uberpr ¨ uft. Ein weiterer Ansatz basierend auf SVA wurde von der Firma Infineon entwickelt [143, 144]. Dieser Ansatz erwei- tert allerdings SVA dahingehend, dass f ¨ ur TLM-Zusicherungen eine neue Zusicher- ungssprache ben ¨ otigt wird. Eine Vielzahl an Ans ¨ atzen existieren zur Zeitanalyse auf Systemebene, wobei diese Entwurfsentscheidungen wie Prozessbindung und Transaktionsrouting ber ¨ uck- sichtigen. Diese Ans ¨ atze lassen sich in simulative und formale Methoden klassifizie- ren, wobei simulative Methoden das Problem haben, dass sie unvollst ¨ andig sind. In der Zeitanalyse bedeutet dies, dass die tats ¨ achlichen besten und schlechtesten F ¨ alle im Zeitverhalten einer Implementierung nicht in angemessener Zeit identifi- ziert werden k ¨ onnen. Andererseits sind simulative Methoden breit einsetzbar. Vie- le simulative Methoden zur Zeitbewertung basieren auf Transaktionsebenenmodel- len [133], wobei Transaktionsebenenmodelle die M ¨ oglichkeit bieten, die Zeitbe- wertung durch geeignete Wahl und Kombination von Abstraktionsebenen zu be- schleunigen [387, 391]. Eine quantitative Bewertung der Analysegenauigkeit und -geschwindigkeit f ¨ ur Transaktionsebenenmodelle des AMBA-Busses findet sich in [386]. 522 8 Systemverifikation Der in diesem Buch vorgestellte Ansatz zur kombinierten Verhaltens- und Zeit- simulation mittels virtueller Komponenten ist in der VPC-Bibliothek implementiert und ausf ¨ uhrlich in [419, 215, 420] beschrieben. Ein vergleichbarer Ansatz wurde in [256] vorgestellt. Um die Laufzeit der simulativen Zeitbewertung zu verringern, bietet es sich an, Daten, die w ¨ ahrend der Simulation aufgezeichnet werden, in einer sp ¨ ateren Analyse wiederzuverwenden. Ein solches Verfahren ist unter dem Namen Trace-Driven-Simulation bekannt geworden [279, 363]. Eine formale Analyse bei der ebenfalls die Kommunikation im Mittelpunkt steht, ist in [402] beschrieben. Dabei wird ein sog. Kommunikations-Abh ¨ angigkeitsgraph (engl. communication dependency graph) aus einer gegebenen Implementierung ex- trahiert, um den Einfluss der Abbildung auf die Architektur zu analysieren. Dort wer- den kooperative und nicht pr ¨ aemptive Software-Prozesse als Modell vorausgesetzt [455]. In [454] wird eine Erweiterung f ¨ ur zeitschlitzbasierte Ablaufplanung vorge- stellt. Schließlich ist in [219] eine formale Modellierung von SystemC-Modellen mit zeitbehafteten Automaten beschrieben. Bei den formalen Methoden zur Zeitanalyse k ¨ onnen grob holistische und modu- lare Ans ¨ atze unterschieden werden. Holistische Ans ¨ atze sind eine direkte Weiterent- wicklung der Planbarkeitsanalysen f ¨ ur Einprozessorsysteme hin zu Mehrprozessor- systemen. In einer grundlegenden Arbeit kombinierten Tindell und Clark pr ¨ aemptive Ablaufplanung auf Basis statischer Priorit ¨ aten mit TDMA-Ablaufplanung [441]. Ei- ne Genauigkeitsverbesserung konnte in [470] erzielt werden. Weitere Busse, wie der CAN- [440] und der FlexRay-Bus [365], wurden in holistischen Verfahren betrach- tet. Bei den modularen Methoden zur formalen Zeitanalyse ist die symbolische Zeitanalyse ein wichtiger Vertreter. Die symbolische Zeitanalyse ist ausf ¨ uhrlich in [378, 380, 379, 377] beschrieben. Wichtige Erweiterungen umfassen die Un- terst ¨ utzung verschiedener Prozessaktivierungen auf Basis mehrerer Ereignisstr ¨ ome [247, 217] und die Analyse von Datenflussmodellen [388]. Die symbolische Zeit- analyse wurde an der Technischen Universit ¨ at Braunschweig entwickelt und wird mittlerweile als Werkzeug SymTA/S [423] von der Firma Symtavision vermarktet und weiterentwickelt. Die modulare Zeitanalyse basiert auf den Netzwerkkalk ¨ ul, der in [293] beschrie- ben ist und auf [121] zur ¨ uck geht. Hieraus wurde an der ETH Z ¨ urich das Echtzeit- kalk ¨ ul entwickelt [431, 430]. Seitdem wurde das Echtzeitkalk ¨ ul mit anderen Zeit- analysemethoden gekoppelt, u. a. simulativen Methoden [277] und zeitbehafteten Automaten [285]. A Notation In diesem Kapitel werden die in diesem Buch verwendeten mathematischen Nota- tionen eingef ¨ uhrt. Dies erfolgt in Anlehnung an Definitionen in [426]. A.1 Mengen Mengen werden mit Großbuchstaben, deren Elemente mit Kleinbuchstaben bezeich- net. {x |P(x)} bezeichne die Menge von Elementen, welche die Bedingung P(x) erf ¨ ullen. Das Symbol ∈ bezeichne die Mitgliedschaft eines Elementes in einer Menge. Die Menge von Elementen, deren Elemente genau die Objekte der Liste x 1 ,x 2 , ,x m sind, wird mit {x 1 ,x 2 , ,x m } bezeichnet. Die leere Menge werde mit ∅ (oder {}) bezeichnet. Zwei Mengen heißen disjunkt, wenn sie kein Element ge- meinsam haben. Die Anzahl der Elemente einer Menge S heißt M ¨ achtigkeit von S und werde mit |S| bezeichnet. Seien A und B Mengen. Man sagt A ist Teilmenge von B, bezeichnet mit A ⊆ B, genau dann, wenn jedes Element von A auch Element von B ist. Wenn A ⊆ B und A = B, dann heißt A echte Teilmenge von B (Schreibweise A ⊂ B). Das relative Komplement vo n B in A, bezeichnet mit A \ B, ist die Menge {x | x ∈ A ∧ x ∈ B}. Sei A eine Teilmenge einer Menge S. Dann ist das Komplement von A in S die Menge {x | x ∈ S \ A}. Schließlich werde die Vereinigungsmenge mit ∪ und die Schnittmenge mit ∩ bezeichnet. Die ¨ Uberdeckung einer Menge S ist eine Menge von Teilmengen von S mit der Eigenschaft, dass ihre Vereinigung gleich S ist. Eine Partition einer Menge S ist eine ¨ Uberdeckung von S durch disjunkte Teilmengen, sog. Partitionsbl ¨ ocke. Die Men- ge aller Teilmengen einer Menge S wird als Potenzmenge 2 S bezeichnet. Die leere Menge ∅ ist Element der Potenzmenge jeder beliebigen Menge S,d.h.∅∈2 S . Die Menge der reellen Zahlen wird mit R, die Menge der rationalen Zahlen mit Q, die Menge der ganzen Zahlen mit Z und die Menge der nat ¨ urlichen Zahlen mit N bezeichnet. Es sei S entweder Z, Q oder R. S + bezeichne die positive Teilmenge, S + 0 oder S ≥0 die nichtnegative Teilmenge (insbesondere S + ∪{0}) und S n das n- fache kartesische Produkt von S.Daskartesische Produkt zweier Mengen A und B, bezeichnet mit A×B, ist die Menge von Paaren (a,b), wobei a ∈ A und b ∈ B gilt. C. Haubelt, J. Teich, Digitale Hardware/Software-Systeme, eXamen.press, DOI 10.1007/978-3-642-05356-6, c Springer-Verlag Berlin Heidelberg 2010 [...]... Summe der Gewichte der Kanten eines Pfades als Pfadgewicht B Bin¨ re Entscheidungsdiagramme a Entscheidungsdiagramme (engl Decision Diagram, DD) sind wichtige Datenstrukturen bei der Verifikation digitaler Hardware/Software-Systeme In diesem Kapitel werden die Grundlagen dieser Funktionsrepr¨ sentationen vorgestellt a B.1 Entscheidungsdiagramme Entscheidungsdiagramme sind Datenstrukturen f¨ r die Repr¨ . mit A×B, ist die Menge von Paaren (a,b), wobei a ∈ A und b ∈ B gilt. C. Haubelt, J. Teich, Digitale Hardware/Software-Systeme, eXamen.press, DOI 10.1007/978-3-642-05356-6, c Springer-Verlag. Entscheidungsdiagramme Entscheidungsdiagramme (engl. Decision Diagram, DD) sind wichtige Datenstruk- turen bei der Verifikation digitaler Hardware/Software-Systeme. In diesem Kapitel werden die Grundlagen dieser Funktionsrepr ¨ asentationen