vyjadrujú spriahnutie agentov. Procesy môžu byť aj nekonečné, ale predpokladáme, že každý nekonečný proces možno opísať procesom typu (A) ω

Σχετικά έγγραφα
Ekvačná a kvantifikačná logika

Matematika Funkcia viac premenných, Parciálne derivácie

1. Limita, spojitost a diferenciálny počet funkcie jednej premennej

Zjemnená špecifikácia CPU-1

7. FUNKCIE POJEM FUNKCIE

Matematika prednáška 4 Postupnosti a rady 4.5 Funkcionálne rady - mocninové rady - Taylorov rad, MacLaurinov rad

Obvod a obsah štvoruholníka

Gramatická indukcia a jej využitie

Start. Vstup r. O = 2*π*r S = π*r*r. Vystup O, S. Stop. Start. Vstup P, C V = P*C*1,19. Vystup V. Stop

Cvičenie č. 4,5 Limita funkcie

Goniometrické rovnice a nerovnice. Základné goniometrické rovnice

Metódy vol nej optimalizácie

ARMA modely čast 2: moving average modely (MA)

Motivácia Denícia determinantu Výpo et determinantov Determinant sú inu matíc Vyuºitie determinantov. Determinanty. 14. decembra 2010.

ARMA modely čast 2: moving average modely (MA)

Matematika 2. časť: Analytická geometria

LR(0) syntaktické analyzátory. doc. RNDr. Ľubomír Dedera

Moderné vzdelávanie pre vedomostnú spoločnosť Projekt je spolufinancovaný zo zdrojov EÚ M A T E M A T I K A

Tomáš Madaras Prvočísla

1. písomná práca z matematiky Skupina A

2. prednáška. Teória množín I. množina operácie nad množinami množinová algebra mohutnosť a enumerácia karteziánsky súčin

Kompilátory. Cvičenie 6: LLVM. Peter Kostolányi. 21. novembra 2017

4. Výrokové funkcie (formy), ich definičný obor a obor pravdivosti

Matematika 2. časť: Funkcia viac premenných Letný semester 2013/2014

Funkcie - základné pojmy

Prechod z 2D do 3D. Martin Florek 3. marca 2009

Jednotkový koreň (unit root), diferencovanie časového radu, unit root testy

KATEDRA DOPRAVNEJ A MANIPULAČNEJ TECHNIKY Strojnícka fakulta, Žilinská Univerzita

Spojité rozdelenia pravdepodobnosti. Pomôcka k predmetu PaŠ. RNDr. Aleš Kozubík, PhD. 26. marca Domovská stránka. Titulná strana.

6 Limita funkcie. 6.1 Myšlienka limity, interval bez bodu

Pevné ložiská. Voľné ložiská

3. Striedavé prúdy. Sínusoida

Komplexné čísla, Diskrétna Fourierova transformácia 1

Lineárna algebra I - pole skalárov, lineárny priestor, lineárna závislosť, dimenzia, podpriestor, suma podpriestorov, izomorfizmus

Definícia parciálna derivácia funkcie podľa premennej x. Definícia parciálna derivácia funkcie podľa premennej y. Ak existuje limita.

Riešenie cvičení z 5. kapitoly

Goniometrické substitúcie

HASLIM112V, HASLIM123V, HASLIM136V HASLIM112Z, HASLIM123Z, HASLIM136Z HASLIM112S, HASLIM123S, HASLIM136S

5. NÁVRH RIADIACICH JEDNOTIEK A. Štruktúrna syntéza riadiaceho synchrónneho sekvenčného obvodu B. Koncepcia mikroprogramovej riadiacej jednotky C.

AerobTec Altis Micro

Vybrané partie z logiky

FUNKCIE N REÁLNYCH PREMENNÝCH

Úvod do lineárnej algebry. Monika Molnárová Prednášky

M6: Model Hydraulický systém dvoch zásobníkov kvapaliny s interakciou

Priamkové plochy. Ak každým bodom plochy Φ prechádza aspoň jedna priamka, ktorá (celá) na nej leží potom plocha Φ je priamková. Santiago Calatrava

Základy matematickej štatistiky

9. kapitola Boolove funkcie a logické obvody

PRIEMER DROTU d = 0,4-6,3 mm

Podnikateľ 90 Mobilný telefón Cena 95 % 50 % 25 %

Harmonizované technické špecifikácie Trieda GP - CS lv EN Pevnosť v tlaku 6 N/mm² EN Prídržnosť

Obsah. 1.1 Reálne čísla a ich základné vlastnosti Komplexné čísla... 8

Reálna funkcia reálnej premennej

Motivácia pojmu derivácia

7. Dokážte, že z každej nekonečnej množiny môžeme vydeliť spočítateľnú podmnožinu.

ALGEBRA. Číselné množiny a operácie s nimi. Úprava algebrických výrazov

x x x2 n

24. Základné spôsoby zobrazovania priestoru do roviny

4 Reálna funkcia reálnej premennej a jej vlastnosti

7 Derivácia funkcie. 7.1 Motivácia k derivácii

Deliteľnosť a znaky deliteľnosti

3. kapitola. Axiomatická formulácia modálnej logiky Vzťah medzi syntaxou a sémantikou. priesvitka 1

množiny F G = {t1, t2,, tn} T a pre ľubovoľný valec C so základňou B1, B2,, Bn v bodoch t1, t2,, tn, takou, že pre t G - F je Bt = E, platí PF(C) = PG

Odporníky. 1. Príklad1. TESLA TR

1 Prevod miestneho stredného slnečného času LMT 1 na iný miestny stredný slnečný čas LMT 2

Vektorový priestor V : Množina prvkov (vektory), na ktorej je definované ich sčítanie a ich

1 Úvod Predhovor Sylaby a literatúra Základné označenia... 3

Jednotkový koreň (unit root), diferencovanie časového radu, unit root testy

1-MAT-220 Algebra februára 2012

Hydromechanika II. Viskózna kvapalina Povrchové napätie Kapilárne javy. Doplnkové materiály k prednáškam z Fyziky I pre EF Dušan PUDIŠ (2013)

Rozsah hodnotenia a spôsob výpočtu energetickej účinnosti rozvodu tepla

Automaty a formálne jazyky

MIDTERM (A) riešenia a bodovanie

ss rt çã r s t Pr r Pós r çã ê t çã st t t ê s 1 t s r s r s r s r q s t r r t çã r str ê t çã r t r r r t r s

Príklady na precvičovanie Fourierove rady

Vybrané partie z logiky

,Zohrievanie vody indukčným varičom bez pokrievky,

Chí kvadrát test dobrej zhody. Metódy riešenia úloh z pravdepodobnosti a štatistiky

6 APLIKÁCIE FUNKCIE DVOCH PREMENNÝCH

Meranie na jednofázovom transformátore

KATALÓG KRUHOVÉ POTRUBIE

Ján Buša Štefan Schrötter

Technická univerzita v Košiciach Fakulta elektrotechniky a informatiky MATEMATIKA II. Zbierka riešených a neriešených úloh

Termodynamika. Doplnkové materiály k prednáškam z Fyziky I pre SjF Dušan PUDIŠ (2008)

1.4 Rovnice, nerovnice a ich sústavy

5. kapitola Predikátová logika I Úvod do predikátovej logiky

NUMERICKÁ MATEMATIKA. Moderné vzdelávanie pre vedomostnú spoločnosť/ Projekt je spolufinancovaný zo zdrojov EÚ. Fakulta elektrotechniky a informatiky

Kontrolné otázky na kvíz z jednotiek fyzikálnych veličín. Upozornenie: Umiestnenie správnej a nesprávnych odpovedí sa môže v teste meniť.

rs r r â t át r st tíst Ó P ã t r r r â

Logické systémy. doc. RNDr. Jana Galanová, PhD. RNDr. Peter Kaprálik, PhD. Mgr. Marcel Polakovič, PhD.

Kódovanie a dekódovanie

BANACHOVE A HILBERTOVE PRIESTORY

Riešenia. Základy matematiky. 1. a) A = { 4; 3; 2; 1; 0; 1; 2; 3}, b) B = {4; 9; 16}, c) C = {2; 3; 5},

Teória pravdepodobnosti

Integrovanie racionálnych funkcií

Výroky, hypotézy, axiómy, definície a matematické vety

9. kapitola. Viachodnotové logiky trojhodnotová Łukasiewiczova logika a Zadehova fuzzy logika. priesvitka

REZISTORY. Rezistory (súčiastky) sú pasívne prvky. Používajú sa vo všetkých elektrických

C. Kontaktný fasádny zatepľovací systém

Planárne a rovinné grafy

Spojitosť a limity trochu inak

Transcript:

C. Procesy vyjadrujú spriahnutie agentov. Procesy môžu byť aj nekonečné, ale predpokladáme, že každý nekonečný proces možno opísať procesom typu (A) ω Pre konečný proces existuje agent ktorý ho šecifikuje. Prvkami procesov sú agenty a predikáty, definované na množine premenných a agentov systému. Procesné (programové) formuly Najvšeobecnejším spôsobom formálneho opisu procesov sú tzv. procesné formuly (napr. formuly z Milnerovho CCS - Calculus of Communicating Systems). Tu budeme používať "imperatívne" procesy, ktoré vyjadrujú riadiacu štruktúru programov s uzavretými cyklami typu "while p do proces P" a "repeat P until p" a výberovou alternatívou (rozvetvením). 1

Definícia procesných formúl pre konečné procesy (rekurzívne): 1. Meno agenta A je triviálna procesná formula (ďalej len formula) 2. Ak P1 a P2 sú dve formuly, potom P1. P2 je formula bodka vyjadruje sekvenčné spriahnutie, zreťazenie procesov, pri ktorom sa slová komunikačnej množiny procesu zreťazujú operáciou. 3. Ak P1,...,Pk (k>1) sú formuly a p1,...,pk sú predikáty definované na systéme ako celku, tvoriace úplný disjunktný systém predikátov (t.j. and (pi, pj) = 0 pre pi pj a zároveň or ( p1, p2,.., pk) = 1), potom p1:p1,...,pk:pk je formula vyjadruje alternatívne rozvetvenie procesov 4. Ak P je formula, potom aj p [P] a [P] p sú formuly vyjadrujú cykly "while p do P" a "repeat P until p" 5. Ak P je formula, potom aj [P]* a [P] n sú formuly vyjadrujú ľubovoľný konečný počet opakovaní P (Kleeneho unárna operácia hviezdička ), resp. n-násobné opakovanie P 6. Ak P1,...,Pk (k>1) sú formuly, potom P1... Pk je formula vyjadruje paralelné, súbežné spriahnutie procesov Nekonečné procesy opisujeme výrazom P1.[P] ω, v ktorom P1 a P sú konečne procesy prípadne agenty. Nekonečný proces je užitočným špecifikačným nástrojom. 2

PRÍKLADY 5: a. P1 = [(RD=1): ReadIn, (CO=1): Compute, ((RD=0)and(CO=0)):EA ] ω kde (RD=1) vyjadruje predikát nadobúdajúci hodnotu 1 práve vtedy ak RD=1. Podobný zmysel má aj (CO=1). Tretí predikát vykazuje hodnotu 1 ak obidva RD a CO sú nulové. Prípad, v ktorom RD = CO = 1 okolie systému vylučuje a nie je ani vo formule uvedený. Formula P1 opisuje proces na systéme VSYS s agentmi ReadIn a Compute. " ω " chápeme ako nekonečný počet opakovaní procesu daného formulou medzi zátvorkami [..., ]. Interpretáciu (sémantiku) formuly ilustruje vývojový diagram. Upozorňujeme, že v danom prípade sa zreťazujú agenty alebo procesy tak, že ich KM sa zreťazujú operáciou. 3

b. A1, A2,... sú agenty a c1, c2,.. sú predikáty definované na niektorom systéme. Formula P2 opisuje proces na tomto systéme ( "-c1" značí negáciu c1). P2 = [A1.A2.(c1:A2. c2 [A3], -c1:a1.a4)] c3.a5 4

Vzťah medzi procesmi a agentmi Konečný proces P implementuje niektorý agent A alebo naopak, agent A je špecifikáciou procesu P. PRÍKLAD 6: Nekonečný proces v systéme VSYS môžeme vyjadriť ako P1 = [PrGlob] ω, kde PrGlob = (RD=1): ReadIn, (CO=1): Compute, ((RD=0)and(CO=0)):EA je konečný proces, ktorý spriaha agenty ReadIn, Compute a EA a implementuje tak niektorý zložitejší agent Glob, ktorého komunikačnú množinu KM môžeme vyjadriť takto: (RD=1): KM ReadIn # (CO=1): KM Compute # (RD=0) and (CO=0): (u;;u).(u;ef;u) kde KM ReadIn a KM Compute sú komunikačné množiny agentov ReadIn a Compute a komunikačné slovo (u;es;u).(u;ef;u) predstavuje KM prázdneho agenta EA. Funkciu g, určujúcu lokálny operačný stav q na konci agenta Glob, môžeme vyjadriť pomocou priraďovacích príkazov takto: Ak (RD=1), tak M := d 1,...d 16 inak M := M Ak (CO=1), tak DO := M[0] +... + M[15] a M := M, inak DO := u Agent Glob môžeme chápať ako špecifikáciu procesu PrGlob, t.j. opis procesu zvonka, bez opisu vnútornej štruktúry procesu. Agent Glob teda vyjadruje iba to, aké celkové správanie proces PrGlob v systéme VSYS vykazuje, neopisuje vnútornú štruktúru procesu. 5

Programové schémy Na nižšej (RT) úrovni špecifikácie, použijeme na opis procesov tzv. programové schémy. Programová schéma je konečná postupnosť tzv. označených príkazov (anglicky: labeled statements ) - dvojíc b1:c1; b2:c2;... ; bn:cn, kde bi sú symboly nazývané návestia (angl. :labels) a Ci sú špeciálne formuly, interpretované ako príkazy (anglicky: statements). Príkazy sú formuly sú typu 1-4 : 1. A / b, kde A označuje agent a b je návestie z možnej množiny B = {b1,b2,..,bn} (v zostavovanej schéme) 2. c 1 :A 1 / bj 1,...,c k :A k / bj k, kde A 1,..,A k sú agenty, c 1,..,c k sú predikáty tvoriace úplný disjunktívný systém a bj 1,..,bj k sú návestia z množiny B. 3. c 1 :bj 1,...,c k : bj k, kde c 1,..,c k sú predikáty ako v 2. a bj i sú návestia z množiny B. V tomto príkaze namiesto agentov A 1,..,A k si možno predstaviť nulový agent NA (Pozor, nie prázdny agent EA) 4. stop je špeciálny symbol. Prvý príkaz (príkaz pri návestí b1) sa interpretuje ako (prvý) začiatočný na vykonanie. 6

Interpretácia ostatných príkazov je zrejmá z nasledujúcich obrázkov. 1. bi: A / bj 3. bi: c 1 :bj 1,...,c k : bj k (Vykonaj A a potom skoč na návestie bj ) (Iba rozvetvi podľa predikátov) 2. bi: c 1 : A 1 / bj 1,...,c k : A k / bj k (Vykonaj agenta Ai a rozvetvi podľa hodnôt predikátov) 4. bi: stop (Ukonči proces) bi stop 7

PRÍKLADY 7: Vezmime procesy P1 a P2 z príkladov 5. Verzie ich zápisov v programových schémach sú takéto: a. P1 = [(RD=1): ReadIn, (CO=1): Compute, (RD) nor (CO): EA ] ω N1: (RD): ReadIn / N1, (CO):Compute / N1, (RD) nor (CO): EA / N1, alebo N1: (RD): N2, (CO): N3, (RD) nor (CO): N4; N2: ReadIn / N1; N3: Compute / N1; N4: EA / N1 b. P2 = [A1.A2.(c1:A2. c2 [A3], -c1:a1.a4)] c3.a5 L1: A1 / L2; L2: A2 / L3; L3: c1: A2 / L4, -c1:a1 / L6; L4: c2:l5, -c2:l7; L5: A3 / L4 L6: A4 / L7; L7: c3: A5 / L8, -c3: A1 / L2; L8: stop 8

Zjednodušenia v zápise príkazov c 1 : A / bj 1,...,c k : A / bj k ==> A /c 1 :bj 1,...,c k :bj k c 1 : A 1 / b,...,c k : A k / b ==> c 1 :A 1,...,c k :A k / b (operačné rozvetvenie) c: A 1 / bj 1, -c: A 2 / bj 2 ==> c: A 1 / bj 1, A 2 / bj 2 (priame rozvetvenie) c: A / bj 1, -c: A / bj 2 ==> c:a / bj 1, bj 2 c:a 1 / b, -c:a 2 / b ==> c:a 1, -c:a 2 / b Posledný príkaz zodpovedá príkazu if then.else. 9

Zreťazenie agentov Základným typom spriahnutia agentov v procesoch je ich zreťazenie, ktoré obsahuje v sebe ako podstatnú časť zreťazenie komunikačných formúl, založené na princípe: Agenty A, B s komunikačnými množinami KM A a KM B sa v procese zreťazujú. Potom každé komunikačné slovo w z KM A sa zreťazuje so slovami z KM B tak, že sa zlúči koncová akcia slova w z KM A s prvou akciou príslušného slova z KM B. Počet d-bodov v zreťazených slovách bude o jeden d-bod menší ako je súčet d-bodov komunikačných slov pred zreťazením. Zreťazenie A.B ilustruje nasledujúci obrázok. 10

Špeciálna operácia +" tu značí "zlúčenie" akcií, ktoré je definované iba ak sú pre každú premennú hodnoty v akciách zlučiteľné, čiže rovnaké, ak sú špecifikované (DV a DH obsahujú aj u ). Pre zlúčenie dvoch hodnôt jednotlivých premenných v zlučovaných akciách platí: a + a = a a + u = a u + a = a u + u = u Nevyhnutnou podmienkou preto, aby zreťazenie agentov A a B bolo definované (a teda malo zmysel) je, aby platilo: (a) Koncová akcia v agente A je zlučiteľná so začiatočnou akciou v agente B, t.j. vstupné vektory (vn a r1) a tiež výstupné vektory (hn a t1) sú zlučiteľné (b) Zreťazenie A. B je definované iba pre taký globálny začiatočný stav s A (začiatočný stav agenta A) pre ktorý platí: FA w ε KM A : q A = g A (s A,w) ε SI B kde SI B je množina začiatočných stavov v agente B a q A je koncový stav agenta A pre w (teda kocový stav q A v A padne do množiny SI B ) 11

Napríklad, ako vyzerá zreťazenie formúl ( ) komunikačných množín agentov ReadIn a Compute v procese P2 = ReadIn. Compute vo VSYS. KM ReadIn (RD=1; ;REQ=0).(ACK=1; ;REQ=0) *.[(ACK=0; ;REQ=0)(ACK=0; ;REQ=1) +. (ACK=1, D=d; ;REQ=1).(ACK=1, D=d; ;REQ=0)(ACK=1; ;REQ=0) * ] 1-16(D). (u; ef; RR=1) KM Compute (u; es; u).(u; ef ; DO=do, CR=1) Výsledná formula opisujúca KM generovanú v procese P2 je: KM A KM B (RD=1; ;REQ=0).(ACK=1; ;REQ=0) *.[(ACK=0; ;REQ=0)(ACK=0; ;REQ=1) +. (ACK=1, D=d; ;REQ=1).(ACK=1, D=d; ;REQ=0)(ACK=1; ;REQ=0) * ] 1-16(D). ( u; ; RR=1)(u; ef; DO=do, CR=1) Pri zreťazení sme zlúčili koncovú akciu (u; ef; RR=1) v komunikačnej formule agenta ReadIn so začiatočnou akciou (u; es; u) v komunikačnej formule agenta Compute. Koncový operačný stav q v konečnom procese P2, ktorý vlastne zodpovedá koncovému stavu q agenta Global = ReadIn.Compute, ktorý P2 špecifikuje, sa určí funkciou g ReadIn (s A,w) agenta ReadIn a začiatočným stavom zreťazovaného agenta Compute, teda FA w ε KM ReadIn : q = g Compute (s B, w Compute ) = = (g Compute (g ReadIn (s A, w), w Compute )= g (s A, w w Compute ), 12

kde s A, je začiatočný stav agenta ReadIn, a s B je začiatočný stav agenta Compute (a teda koncový stav agenta ReadIn) a w Compute je každé nadväzujúce (zreťaziteľné) komunikačné slovo z KM Compute na slovo w z množiny KM ReadIn. KM Global = { w ReadIn w Compute w ReadIn ε KM ReadIn, w Compute ε KM Compute } Funkcia g agenta Global vracia nasledujúce hodnoty operačných stavových premenných: M := d1, d2,.,d16 ; DO := d1+ d2+.+d16; CR := 1 Funkcie vs, ktoré určujú hodnoty výstupov v jednotlivých kom slovách v Agentoch ReadIn a Compute sa prenášajú do výsledného zreťazeného agenta Global = ReadIn. Compute. 13

D. Špecifikácia časovania Korektné fungovanie číslicového systému v definovanom diskrétnom čase vyžaduje určitú disciplínu v časovaní rozličných udalostí (vrátane časovacích udalostí), t.j. ich vhodné vzájomnom rozmiestnenie na osi spojitého času. Disciplína časovania sa opisuje v špecifikáciách rozličným spôsobom. Jedna z možností je opis pomocou tzv. časovacích pravidiel. Ide o predikáty (ktoré sú pravdivé alebo nepravdivé, t.j. majú logickú hodnotu 1 resp. 0). t(e) značí čas udalosti e. 1. Pravidlá o oneskoreniach príčinne viazaných udalostí del(e1, e, d) <=> t(e) = t(e1) + d delm([e1,e2,...,er], e, [d1,d2,...,dr]) <=> t(e) = m(t(e1)+d1,..., t(er)+dr), kde [e1,e2,...,er ] je zoznam tzv. vstupných udalostí, e je tzv. výstupná udalosť, d a [d1,d2,...,dr ] sú kvantitatívne časove parametre reálne (racionálne) čísla, viazané na vstupné udalosti, a "m" značí typ výberovej funkcie; m ε {min, max} (najbližší resp. najvzdialenejší čas výskytu výstupnej udalosti e.) Časovacie pravidlá vyjadrujú oneskorenie výskytu výstupnej udalosti e voči vstupnej udalosti, pričom výstupná udalosť je príčinne viazaná na vstupné udalosti. Pevne stanovujú časové body výskytu výstupných udalostí vzhľadom na časové parametre "d" (vo 14

forme tvrdej rovnosti). 2. Obmedzovacie pravidlá (obmedzenia) aft(e1, e2, d) <=> t(e2) >= t(e1) + d bef(e1, e2, d) <=> t(e2) <= t(e1) d afto (e1, e2, d) <=> t(e2) > t(e1) + d befo(e1, e2, d) <=> t(e2) < t(e1) - d Je zrejmé, že platí: bef(e1,e2,d ) aft(e2,e1,d) afto (e2,e1,d) befo(e1,e2,d) Časovacie pravidlá typu aft a bef viažu čas výskytu dvoch udalostí s parametrom "d" vo forme nerovnosti. Pri afto a befo ide o ostré (angl. sharp) nerovnosti. Poznamenávame, že časovacie pravidlá bef a befo sme zaviedli iba z praktickych dôvodov. Po zavedení pravidiel aft a afto sú pravidlá typu bef redundantne. 3. Pravidlá o stabilite signálu v analyzovanom intervale Int stb(x=v) <=> pre všetky t Int je <X>=v stb(x) <=> premenná X ma stabilnú nešpecifikovanú hodnotu stbi(x=v, e, d1, d2) <=> pre všetky t <t(e)-d1, t(e)+d2) je <X>=v stbi(x, e, d1, d2) <=> detto avšak X má stabilnú ľubovoľnú hodnotu stbe(x=v, e1, e2) <=> pre všetky t <t(e1), t(e2)); <X>=v stbe(x, e1, e2) <=> detto len X má stabilnú ľubovoľnú hodnotu 15

Pravidlá sú ilustrované na nasledujúcich obrázkoch delmax ( [e1, e2, e3], e, [d1, d2, d3] ) aft(e1,e2, p) stbi(x, e, d1, d2) 16

PRÍKLAD 8: Predpokladajme záchytný preklápací obvod (latch) podľa obrázku. Všetky premenné sú boolovské. V tomto systéme definujeme agent Nastav takto: Dátové typy DV={(<D>,<CK>)}, DH = {<Q >} = {0,1} SI ={ <Q>} = {0,1} Časovacie udalosti { up(ck=1), up(d=d), up(q=d), dw(ck=1), ef } KM [(D=d,CK=0;;u)+(D=d, CK=1;;Q=d)]( CK=0,D=d;;Q=d)(u;ef;Q=d) g Q := d Poznámka: X = a, kde X je vtupný port značí, že časovacia udalosť je daná up(x=a). 17

Časovacie pravidlá stbi(d, dw(ck=1), Tset, Thold) aft (up(ck=1), dw(ck=1), Ti1) aft(up(ck=1, j), (up(ck=1, j+1)), Tck) delmax([up(ck=1), up(d=d)], up(q=d), [DcqM, DdqM]) del((up(ck=1), dw(d=d),dcqm) Tset, Thold sú známe časy predstihu a presahu vstupného údaja (d) pred resp. za udalosťou dw(ck=1), t.j. zadnou hranou impulzu 1 v CK; Ti1 a Tck sú minimálne časy trvania impulzu 1 v CK, resp. cyklu hodín CK (čas medzi udalosťami up(ck=1, j) a (up(ck=1, j+1)); DcqM a DdqM sú maximálne časy oneskorení zmeny výstupnej premennej Q (up(q=d)) vzhľadom na zmeny vstupných premenných CK a D (up(ck=1) a up(d=d)); Poznámka: Dcqm je rovnaký typ časového parametra ako DcqM, ide však o jeho minimálnu (m), rep. maximánu (M) hodnotu. 18

Časovacie pravidlá dopĺňajú špecifikáciu systému. V spojení s agentom, tvoria jeho súčasť. Vkladáme ich do agentov, keď je to potrebné, teda ak chceme rozšíriť (spresniť) špecifikáciu z cyklov na spojitý čas. V ďalšom, pri formálnom opise agentov, ak zahrnieme do nich aj množinu TR časovacích pravidiel, agent A opíšeme ako formálny systém A = def (S, SI, KMS, Q, g, TR) KMS = (SI, DV, DH, R,vs), kde TR je množina časovacích pravidiel. Pravidlá sú definované pri určitých časových parametroch. Vo všeobecnosti tieto parametre môžu byť funkcie rozličných fyzikálnych parametrov (ako sú napr. čas, teplota, počet rozvetvení - "fan-out" a pod.). Môžu mať: pevnú, známu číselnú hodnotu, hodnotu z daného intervalu <dmin, dmax>, kde dmin a dmax sú hraničné hodnoty parametra symbolickú hodnotu p, ktorá sa pri vývoji špecifikácie nahradí reálnym číslom 19

E. Štandardný zápis špecifikácie systému s agentmi a procesmi Zápis agentov Pri zápisoch agentov a pri beh. špecifikácii digitálneho podsystému ako celku, budeme používať určitý systém (rámec). Položky agenta označujeme nasledujúcimi symbolmi: SI.. zápis množiny SI začiatočných stavov vyjadrený pomocou začiatočných hodnôt stavových premenných (napr.<zj>=d) alebo charakteristickým logickým výrazom, ktorý jednoznačne definuje stavy v SI TE.. opis množiny TE typov časovacích udalostí v komunikačných výrazoch (formulách) min. es a ef KM opis komunikačnej množiny agenta komunikačnou formulou s trojicami typu (v; e ; h). Ak komunikačnej formule vvystupujú iba mená akcií namiesto samotných akcií musí nasledovať deklarácia akcií akcia meno akcie opis trojice akcia meno akcie opis trojice vs...výrazy určujúce symbolické hodnoty primárnych výstupov (výstupných portov) systému v komunikačných slovách g. priraďovacie výrazy určujúce hodnoty lokálnych stavových premenných (v budúcej operačnej časti) na konci exekúcie agenta TR... zápis časovacích pravidiel Nepotrebné položky obyčajne vynechávame (napr. vynecháme SI ak SI = S alebo od 20

začiatočného stavu sú výstupné slová nezávislé, alebo vynecháme vs ak hodnoty výstupov sú už uvedené komunikačných slovách a pod.). Predpokladáme, že opis množín DV a DH ako aj množiny operačných stavov Q systému, ktoré sú vo svojej podstate určené množinami primárnych vstupov, primárnych výstupov, resp. lokálnych stavových premenných a príslušnými údajovými typmi, sú dané v opise systému ako celku. Generický spôsob zápisu agenta: agent meno agenta (..,x i,..;...,y j,..;...,z r,..;...,t k ), kde x, y a z sú generické vstupné, výstupné a stavové premenné a T sú časové parametre daného generického agenta. 21

PRÍKLAD 3 (pokračovanie): Zápis agenta ReadIn systému VSYS s použitím uvedenej symboliky agent ReadIn SI <RR> = 0 // všetky stavy z S, pri ktorých je <RR>=0 TE es, up(clk=1), ef // es je začiatočná časovacia udalosť KM g TR (RD=1;es;REQ=0)(ACK=1;;REQ=0) * [(ACK=0;;REQ=0)(ACK=0;REQ=1) + (D=d j,ack=1;;req=1)(d=d j,ack=1;;req=0)(ack=1;;req=0) * 1-16 (D) ] (u; ef; RR=1) // hodnoty 0 alebo 1 relevantných výstupov REQ a RR sú // priamo uvedené v komunikačnom výraze KM, teda vs vynecháme M := d 1,...,d 16 ; RR := 1 del(up(rd=1), up(rr=1), T RD ); befo(up(rr=1), up(m=d 1,...,d 16 ), 0); //oneskorenie 0 špecifikuje len poradie afto(up(rr=1),ef,0) 22

Agent ReadIn zadaný ako generický (všeobecný) so všeobecnými premennými a parametrami:. agent ReadIn (Start, Data, Ack, Clk; Req, Signal; RAM, Signal; T StSi ) SI Signal = 0 TE es, up(clk=1), ef; KM // "es" a "ef" sú štandardné časovacie udalosti a Clk je // štandardné meno pre hodiny (Start=1;es;Req=0).(Ack=1; ;Req=0) * [(Ack=0 ;;Req=0).(Ack=0; ;Req=1) +.(Data=d j, Ack=1; ; Req=1) (Data=d j, Ack=1; ; Req=0 ). g TR.(Ack=1; ; Req=0) * ] 1-16(Data).(u; ef; Signal=1); RAM := d 1,...,d 16 ; Signal := 1; del(up(start=1), up(signal=1), T StSi ); befo(up(signal=1), up(ram=d 1,...,d 16 ), 0); afto(up(signal=1), ef, 0); Pri vytvorení konkrétnej inštancie agenta pri aplikácií sa potom uvedie s príslušným mapovaním premenných a časových parametrov ako ReadIn(RD, D,ACK, CLK; REQ, RR; M, RR; T RD ) 23

PRÍKLAD 4: Procesor CPU, agent Agent-1 (čítanie inštrukcie) agent Agent-1 SI Contr = RES; TE es, up(clk=1), ef; KM (Res=1;es;u) *.(Res=0;;u).(Wait=0;;u).(Wait=1;;A=PC,Rd/Wr=1,Req=1) +.(Wait=0,D=d;; Req=0).(Wait=0;; u) *.(Wait=1; ef; u); g IR := d; PC := PC+1; Contr := OD; 24