Zjemnená špecifikácia CPU-1

Σχετικά έγγραφα
5. NÁVRH RIADIACICH JEDNOTIEK A. Štruktúrna syntéza riadiaceho synchrónneho sekvenčného obvodu B. Koncepcia mikroprogramovej riadiacej jednotky C.

Ekvačná a kvantifikačná logika

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

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) ω

7. FUNKCIE POJEM FUNKCIE

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

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

Cvičenie č. 4,5 Limita funkcie

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

Obvod a obsah štvoruholníka

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

Matematika 2. časť: Analytická geometria

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

Gramatická indukcia a jej využitie

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

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

Funkcie - základné pojmy

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

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

Metódy vol nej optimalizácie

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

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

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

M8 Model "Valcová a kužeľová nádrž v sérií bez interakcie"

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

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

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

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.

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

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

Súčtové vzorce. cos (α + β) = cos α.cos β sin α.sin β cos (α β) = cos α.cos β + sin α.sin β. tg (α β) = cotg (α β) =.

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ť.

x x x2 n

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

P r s r r t. tr t. r P

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

9. kapitola Boolove funkcie a logické obvody

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

!"!# ""$ %%"" %$" &" %" "!'! " #$!

Υλοποίηση Mικροεπεξεργαστή MIPS -16

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

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

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

AerobTec Altis Micro

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

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

3. Striedavé prúdy. Sínusoida

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

FUNKCIE N REÁLNYCH PREMENNÝCH

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

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

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

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

Riadenie zásobníkov kvapaliny

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

5 Ι ^ο 3 X X X. go > 'α. ο. o f Ο > = S 3. > 3 w»a. *= < ^> ^ o,2 l g f ^ 2-3 ο. χ χ. > ω. m > ο ο ο - * * ^r 2 =>^ 3^ =5 b Ο? UJ. > ο ο.

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I

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

Deliteľnosť a znaky deliteľnosti

C 1 D 1. AB = a, AD = b, AA1 = c. a, b, c : (1) AC 1 ; : (1) AB + BC + CC1, AC 1 = BC = AD, CC1 = AA 1, AC 1 = a + b + c. (2) BD 1 = BD + DD 1,

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

r t t r t t à ré ér t é r t st é é t r s s2stè s t rs ts t s

Integrovanie racionálnych funkcií

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής

TRIGONOMETRIJA TROKUTA

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

Rozsah akreditácie 1/5. Príloha zo dňa k osvedčeniu o akreditácii č. K-003

Automaty a formálne jazyky

Riešenie rovníc s aplikáciou na elektrické obvody

Vyhlásenie o parametroch stavebného výrobku StoPox GH 205 S

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

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

STREDOŠKOLSKÁ MATEMATIKA

RIEŠENIE WHEATSONOVHO MOSTÍKA

Reálna funkcia reálnej premennej

MIDTERM (A) riešenia a bodovanie

Gramatiky. Kapitola Úvod. 1.2 Návrh gramatík

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

Planárne a rovinné grafy

FUNKCIE. Funkcia základné pojmy. Graf funkcie

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

Ú V O D Z Á K L A D N É L O G I C K É Č L E N Y

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

Základy matematickej štatistiky

Metodicko pedagogické centrum. Národný projekt VZDELÁVANÍM PEDAGOGICKÝCH ZAMESTNANCOV K INKLÚZII MARGINALIZOVANÝCH RÓMSKYCH KOMUNÍT

KURZ JAZYKA C učebný text pre kvartu a kvintu osemročného gymnázia

PRÍSTROJE PRE ROZVÁDZAČE

KOMUTATIVNI I ASOCIJATIVNI GRUPOIDI. NEUTRALNI ELEMENT GRUPOIDA.

VLASTNÉ ČÍSLA A JORDANOV KANONICKÝ TVAR. Michal Zajac. 3 T b 1 = T b 2 = = = 2b

Tomáš Madaras Prvočísla

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 2 Οργάνωση μνήμης Καταχωρητές του MIPS Εντολές του MIPS 1

Assessment of otoacoustic emission probe fit at the workfloor

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

Τέτοιες λειτουργίες γίνονται διαμέσου του

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

KATALÓG KRUHOVÉ POTRUBIE

! "# $ % $&'& () *+ (,-. / 0 1(,21(,*) (3 4 5 "$ 6, ::: ;"<$& = = 7 + > + 5 $?"# 46(A *( / A 6 ( 1,*1 B"',CD77E *+ *),*,*) F? $G'& 0/ (,.

KURZ JAZYKA C učebný text pre kvartu a kvintu osemročného gymnázia

Automatizácia technologických procesov

Transcript:

Zjemnená špecifikácia CPU-1 Systém CPU-1 // prvá zjemnená špecifikácia DT // detto ako pri CPU-0 + r_stav є {OD, IF} PORTY vstup D data, instrukcia, Res signal, Wait, Clk signal, vystup D data, A adresa, Rd/Wr, Req signal, OPER STAV PC adresa, IR instrukcia, AC data, Contr r_stav; proces InstrCy = ResOper.[InstrRead.( (IR.opkod=BRN): BRNoper, (IR.opkod=ADD): ADDoper, (IR.opkod=LD): LDoper, (IR.opkod=ST): SToper )] ω ; agent InstrRead SI Contr = IF; TE es, up(clk=1), ef; KM (u; es; u). (Wait=0; ; u)*. (Wait=1 ; ;u).(wait=1; ; A=PC, Rd/Wr=1, Req=1) +.(Wait=0, D=d ; ; Req=1).(Wait=0; ; Req=0)*.(Wait=1;ef; Req=0);

g IR := d; // IR obsahuje inštrukciu PC := PC+1; Contr := OD; // OD Operation Decode agent BRNoper SI Contr = OD; TE es, up(clk=1), ef; KM g (u; es; u)(u; ef; u); PC := ak AC < 0 tak IR.adresa inak PC; Contr := IF; agent ADDoper SI Contr = OD; TE es,up(clk=1), ef; KM (Wait=1;es; u) (Wait=1; ;A=IR.adresa,Req=1,Rd/Wr=1) +..(Wait=0, D=d ; ; Req=1).(Wait=0; ; Req=0).(u ; ef ; Req=0); g AC := AC + d; Contr := IF; agent LDoper SI Contr = OD; TE es, up(clk=1), ef; KM (Wait=1; es; u).(wait=1 ; ; A=IR.adresa, Req=1, Rd/Wr=1) +.(Wait=0, D=d ; ; Req=1). (u; ef ; Req=0) g AC := d; Contr := IF; agent SToper SI Contr = OD;

TE es, up(clk=1), ef; KM (Wait=1; es; u).(wait=1 ; ;A=IR.adresa, D=AC, Rd/Wr=0, Req=1) +.(Wait=0 ; ; A= IR.adresa, D=AC, Rd/Wr=0, Req=1)..(Wait=0 ; ; A= IR.adresa, D=AC, Req=0, Rd/Wr=1). (u; ef ; Req=0) // v predposlednej akcii sa zabezpecuje zapis udaja z AC do // pamati udalostou up(rd/wr=1) g Contr := IF; agent ResOper TE es, ef; KM (u; es; u)(u; ef; u); g PC := 0; Contr := IF; START InstrCy (ez or (up(clk=1) and Res))

Zjemnenú špecifikáciu CPU-2 vytvoríme implementáciou agentov CPU-1 (InstrRead,., SToper) procesmi s mikrooperáciami. Takto zjemnená špecifikácia predstavuje už špecifikáciu správania na úrovni RT (mikroarchitektúry). System CPU-2 DT // detto ako v CPU-1 PORTY vstup D data, Res signal, Wait signal, Clk signal; výstup D data, A adresa, Req signal, Rd/Wr signal; OPER STAV PC adresa, IR instrukcia, AC data, MAR adresa // Memory Address Register MBR data // Memory Buffer Register proces PrInstRead = (LdMAR IncrPC)[EA] (Wait=1) [SetMRd] (Wait=0) [LdIR] (Wait=1) ; // symbol " " značí súbežnosť proces PrST = (MovIR-MAR LdMBR).[SetMWr] (Wait=0) ; proces PrBRN = (AC<0):MovIR-PC, (AC >=0):EA;

proces PrLD = MovIR-MAR.[SetMRd] (Wait=0). LdAC; proces PrADD = MoveIR-MAR.[SetMRd] (Wait=0).AddAC; proces PrGlobal = Reset.[ PrInstRead.((IR.opkod=BRN): PrBRN; (IR.opkod=ADD): PrADD; (IR.opkod=LD): PrLD; (IR.opkod=ST): PrST) ] ω ; agent LdMAR TE es,ef; KM (u;es;u)(u;ef;u); g MAR := PC agent IncrPC TE es, ef; KM (u;es;u)(u; ef;u); g PC := PC + 1 agent SetMRd TE es, ef; KM (Wait=1; es; A=MAR, Req=1, Rd/Wr=1).(u ; ef; u ) // [SetMRd] wait=0 [A.B] Wait=0 KM = A.A*.(Wait=0,D=d;ef; u) g MBR := d agent LdIR TE es, ef; KM (Wait=0; es;u).(u; ef; Req=0); // [LdIR] Wait=1 KM = (Wait=0;es;u) (Wait=0;es; Req=0)*. (Wait=1;ef;Req=0) // v KM sa caka iba na Wait=1 g IR := MBR; agent LdAC // KM = A.B

TE es, ef; KM (Wait=0; es; u)(u; ef; Req=0); // KM = A.B g AC := MBR; agent LdMBR TE es, ef; KM (u; es; u)(u; ef; u); g: MBR := AC; agent SetMWr TE es, ef; KM (Wait=1;es; A=MAR, D=MBR, Rd/Wr=0, Req=1).(u; ef; A=MAR, D=MBR); // KM = A.B // [SetMWr] Wait=0 KM = A.A*.B, kde B je vhodne dourčená akcia B // B = (Wait=0; ef; A=MAR, D=MBR, Rd/Wr=1, Req=0) agent MovIR-PC TE es,ef; KM (u; es; u)(u; ef; u); g: PC := IR.adresa; agent MovIR-MAR TE es, ef; KM (u; es; u)(u; ef; u); g MAR := IR.adresa; agent AddAC TE es,ef; KM (u; es; u)(u; ef; Req=0); g AC := AC + MBR;

agent Reset TE es, ef; KM (u; es; u)(u; ef; u); g PC := 0; START PrGlobal (ez or (up(clk=1) and Res));

Verifikácia CPU-2 oproti CPU-1 Potrebujeme zostaviť agentov, ktorí zodpovedajú jednotlivým procesom (špecifikujú jednotlivé procesy) v CPU-2 a porovnať s agentami v CPU-1. Ukážeme to iba na procesoch (1) PrInstRead a (2) PrBRN, teda zostavíme agentov PrInstRead resp. PrBRN. (1) Zostavenie KM generovanej procesom PrInstRead a zodpovedajúceho agenta PrInstRead = (LdMAR IncrPC).[EA](Wait=1) [SetMRd](Wait=0)..[LdIR](Wait=1); Mikrooperácie LdMAR a IncrPC sa realizujú súbežne. V danom prípade sa exekujú v tom istom mikrocykle (mikrotakte), pretože v akciách ich KM sú vstupné a tiež výstupné vektory nešpecifikované, KM pre ich paralelnú kompozíciu možno vyjadriť a opísať bez operátora ako spoločný výraz. Priraďovacie príkazy pre jednotlivé stavové premenné v súbežných mikrooperáciách sa potom združia do jedného súboru (pozri nižšie). LdMAR KM (u;es;u)(u;ef;u); g ==> MAR:= PC; IncrPC KM (u;es;u)(u;ef;u); g ==> PC:= PC+1; IncrPC LdMAR KM (u;es;u)(u;ef;u); g ==> MAR:= PC, PC:= PC+1; (IncrPC LdMAR) KM (u;es;u)(u;ef;u) [EA] (Wait=1) [EA] + = EA.EA* KM (u; es;u).(wait=0; ;u)*.(wait=1;ef;u)

(LdMAR IncrPC)]. [EA] (Wait=1) KM (u; es; u). (u; ;u). (Wait=0; ; u) *.(Wait=1; ef; u) SetMRd KM (Wait=1; es; A=MAR,Req=1,Rd/Wr=1).( u ; ef ; u) [SetMRd] (Wait=0) = SetMRd. SetMRd* KM (Wait=1;es; A=MAR,Req=1,Rd/Wr=1).(Wait=1 ; ; A=MAR, Req=1, Rd/Wr=1)*.(Wait=0, D=d; ef; A=MAR, Req=1, Rd/Wr=1) (LdMAR IncrPC)]. [EA] (Wait=1). [SetMRd] (Wait=0) KM (u;es;u). (u; ;u). (Wait=0; ; u) *.(Wait=1;; A=MAR,Req=1,Rd/Wr=1)..(Wait=1;;A=MAR,Req=1,Rd/Wr=1)*.(Wait=0,D=d; ef; A=MAR,Req=1,Rd/Wr=1) [LdIR] (Wait=1) LdIR KM (Wait=0; es ;u).(u; ef; Req=0) LdIR + = LdIR.LdIR* KM (Wait=0; es ;u).(wait=0; ;Req=0) *. (Wait=1, ef, Req=0) Zreťazením dostaneme kompletný výraz pre KM, ktorú generuje PrInstRead : PrInstRead KM (u; es; u).(u; ;u).(wait=0; ; u) *.(Wait=1; ; A=MAR,Req=1,Rd/Wr=1)..(Wait=1;;A=MAR,Req=1,Rd/Wr=1)*.(Wait=0,D=d;;A=MAR,Req=1,Rd/Wr=1)..(Wait=0,,Req=0) *.(Wait=1; ef ; Req=0) Minimálne komunikácia trvá 4 mikrocykly (hodinové cykly): (LdMAR IncrC). EA. SetMRd. LdIR 1 2 3 4 (minimálne je 5 bodov d-času pre 4 mikrocykly.)

V tejto formule môžeme subvýrazy typu K.K* nahradiť výrazom K +. Výsledný komunikačný výraz agenta PrInstRead je teda : KM (u; es; u). (u; ;u). (Wait=0; ; u) *. (Wait=1; ; A=MAR,Req=1,Rd/Wr=1) +..(Wait=0,D=d;;A=MAR,Req=1,Rd/Wr=1).(Wait=0,,Req=0) *.(Wait=1; ef ; Req=0) KM východiskového agenta InstRead z CPU-1 : KM (u; es; u). (Wait=0; ; u)*. (Wait=1 ; ;u).(wait=1; ; A=PC, Rd/Wr=1, Req=1) +.(Wait=0, D=d ; ; Req=1).(Wait=0; ; Req=0)*.(Wait=1;ef; Req=0); Výraz KM z východiskového agenta InstRead v CPU-0 je fakticky ekvivalentný s výrazom KM agenta PrInstRead Ďalej je zrejmé, že po vykonaní procesu PrInstRead (agenta PrInstRead) dostane CPU do vyžadovaného koncového stavu IR := d // d je inštrukcia PC := PC + 1 MAR := PC MBR := d

Teraz môžeme zostaviť agent PrInstRead agent PrInstRead SI Contr=IF0 TE es,up(clk=1),ef; KM (u; es; u). (u; ;u). (Wait=0; ; u) *. (Wait=1;; A=MAR,Req=1,Rd/Wr=1) +..(Wait=0, D=d; ; A=MAR, Req=1, Rd/Wr=1).(Wait=0,,Req=0) *.(Wait=1; ef ; Req=0) g IR := d; PC := PC + 1; MAR := PC; MBR := d;

(2) Zostavenie KM generovanej procesom PrBRN a zodpovedajúceho agenta PrBRN = (AC<0): MovIR-PC, (AC >=0): EA; EA KM (u;es;u)(u;ef;u) MovIR-PC KM (u; es;u)(u; ef; u) (AC<0): MovIR-PC, (AC>=0):EA KM [ AC >=0: (u; es;u) # AC < 0: (u; es ; u) ] (u; ef; u); Agent PrBRN vyzerá takto: agent PrBRN TE es,ef; up(clk =1) KM [ AC >=0: (u; es;u) # AC < 0: (u; es ; u) ] (u; ef; u); g PC := ak AC < 0 tak IR.adresa inak PC agent BRNoper SI Contr = OD; TE es, up(clk=1), ef; KM (u; es; u)(u; ef; u); g PC := ak AC < 0 tak IR.adresa inak PC; Contr := IF;

Odvodenie konečného stavového stroja (FSM) Z globálneho procesu PrGlobal = Reset.[PrInstVyb.((IR.opkod=BRN): PrBRN, (IR.opkod=ADD): PrADD, (IR.opkod=LD): PrLD, (IR.opkod=ST): PrST ) ]ω; a z jednotlivých agentov PrInstRead, PrBRN, PrADD, PrLD a PrST, ktoré zodpovedajú procesom PrInstVyb, PrBRN, PrADD, PrLD a PrST možno odvodiť konečný stavový stroj (FSM), ktorý vyjadruje tok riadenia a teda aj funkciu riadiacej časti CPU. Tu uvedieme Moorov FSM RS = (DV,R,MO,p,v), kde DV sú vstupné vektory pre riadenie, R sú stavy riadenia, MO sú mikrooperácie (jedno-cyklové agenty) v procesoch a p, v sú: prechodová a výstupná funkcia. p : R x DV R, v: R MO, teda v (q) = M je mikrooperácia, ktorá sa má vykonať v stave q. Pripomíname, že pri zostavení Moorovho FSM sme, pri vyjadrení čakacieho cyklu v procese PrInstRead použili cyklus s testovaním podmieky na konci cyklu [EA] (Wait=1) z čoho vyplýva KM pre EA.EA*: (u ;es ; u). (Wait =0 ; ; u)*. (Wait=1 ;ef ; u) V prípade, že by sme ho nahradili cyklom (Wait=0) [EA] dostali by sme KM : (Wait =0 ; ; u)*. (Wait=1; ef ; u). Získali by sme jeden cyklus k dobru. V prvom prípade je obyčajne jednoduchšia prechodová funkcia, pravda, na úkor straty jedného hodinového cyklu.

Prechodová tabuľka Moorovho FSM RS. Stav q Hodnoty vstupov - vstupný vektor v Nasl. stav p(q,v) Mikrooperácie v(q) podprocesy v PrGlobal RES u IF0 Reset IF0 u IF1 LdMAR IncrPC IF1 Wait=0 IF1 EA IF1 Wait=1 IF2 IF2 Wait=1 IF2 SetMRd PrInstVyb IF2 Wait=0,D=d IF3 IF3 Wait=0 IF3 LdIR IF3 Wait=1 OD OD d.opkod=st ST0 EA OD d.opkod=add AD0 OD d.opkod=brn, c=0 BR0 OD d.opkod=brn, c=1 BR1 OD d.opkod=ld LD0 LD0 Wait=1 LD1 MovIR-MAR LD1 Wait=1 LD1 SetMRd PrLD LD1 Wait=0,D=d LD2 LD2 u IF0 LdAC ST0 u ST1 MovIR-MAR LdMBR ST1 Wait=1 ST1 SetMWr PrST ST1 Wait=0 IF0 AD0 u AD1 MovIR-MAR AD1 Wait=1 AD1 SetMRd PrADD AD1 Wait=0,D=d AD2 AD2 u IF0 AddAC BR0 u IF0 EA PrBRN BR1 u IF0 MovIR-PC

Pri použití čakacieho cyklu v procese PrInstRead s podmienou na začiatku cyklu - (Wait=0) [EA] by prechodová fukcia p vyzerala takto: q v p(q,v) IF0 Wait=1 IF0 Wait=0 IF1 Wait=0 IF1 Wait=1 IF2 IF1 IF1 IF2 Výstupné symboly uvedeného FSM, priradené riadiacim stavom FSM, sú mená agentov = mikrooperácie, ktoré sa vykonajú na OČ pri jednotlivých stavoch FSM. Majú funkciu nastavovania hodnôt operačných stavových premenných z Q (v operačnej časti CPU). Z tohto modelu CPU v tvare FSM môžme dobre rozlíšiť množinu riadiacich stavov R od množiny operačných stavov Q. Množina R = {reset,ifo,if1, BR1} vystupuje v Moorovom FSM, ktorý modeluje správanie riadiacej časti CPU. Množinu Q tvorí množina vektorov hodnôt operačných stavových premenných v modeli CPU, teda množina Q = {(<MBR>, <MAR>, <PC>, <IR>, <AC>) }. Uvedený FSM je vlastne vyššie zavedený komunikačný stavový stroj (KSM) opisujúci komunikáciu generovanú v nekonečnom procese PrGlobal v špecifikácií CPU-2. Poznámka: Páry stavov (LD0, AD0) a (LD1, AD1) sú ekvivalentné a možno ich dať do spoločnej trasy od stavu OD, ktorú označíme predikátom d.opkod ε {ADD, LD}, pričom rozvetvenie na zakončenie LD a ADD sa rozvetví do stavu LD2 resp. ADD2

Špecifikácia v danej prípadovej štúdií CPU obsahuje iba jeden globálny proces PrGlobal. Ide o čisto sekvenčný systém bez súbežných globálnych procesov. Teda ide o jednu primárnu architektúru s jednou sekvenčnou riadiacou jednotkou. FSM v tvare prechodového grafu je na obrázku. Výstupy (mimo agenta Reset ) sme v prechodovom grafe vynechali.

Metodika syntézy operačných častí a špecifikácia riadenia A. Prechod od špecifikácie na syntézu operačnej časti systému B. Reprezentácia štruktúrnej implementácie operačnej časti a špecifikácie riadenia - tok údajov a tok riadenia C. Zostavenie štruktúry operačnej časti D. Zostavenie špecifikácie riadiacej časti A. Prechod od špecifikácie na syntézu operačnej časti systému Syntéza operačných častí (OČ) predstavuje jednu časť procesu návrhu štruktúrnej implementácie primárnych architektúr. Východisko: (cieľová) špecifikácia systému, t.j. množina procesov, alebo tzv. globálny proces P S. Cieľ: štruktúrna implementácia OČ. Globálny proces PS vyjadruje celkové správanie systému dané cieľovou špecifikáciou a to opisnými prostriedkami jedného procesu. Obsahuje agenty definované na systéme (obvykle mikrooperácie) a možno ho spravidla extrahovať a zostaviť zo špecifikácie. P S zostavíme na základe znalosti o štartovaní procesov (aj agentov) vonkajšími udalosťami. Globálny proces sa naštartuje udalosťou "ez" (reprezentujúcou pripojenie energie) a ako celok sa realizuje v nekonečnom cykle s "čakacím cyklom" na niektorú štartovaciu udalosť (danú štartovacím výrazom) tohto procesu.

Vychádzame z vypracovanej cieľovej špecifikácie VSYS-2, alternatívnej verzie VSYS-2 // vynecháme položku DT PORTY vstup D udaj; RD, CO, ACK, CLK booleovska hodnota; vystup DO udaj; RR, CR, REQ booleovska hodnota; OPER STAV M pole M(0),...,M(15) udaj; DO udaj; RR, CR, REQ booleovska hodnota; I index; proces PrReadIn = Reset.[(ACK=1)[EA].SetReq.[EA](ACK=1).ResReq.WriteM. InkrI ](I=0).SetRR ; proces PrCompute = Reset.[Add.InkrI](I=0).SetCR ; proces P1 = [ (RD=1): PrReadIn, (CO=1): PrCompute, ((RD=0 and CO=0)): EA ] ω ; agent Reset TE es, ef =up(clk=1); KM (u; es; u)(u; ef; DO=0, RR=0, CR=0, REQ=0); g I:=0; DO:=0; RR:=0; CR:=0; REQ:=0 TR FA e { up(i=0), up(do=0), dw(rr=1), dw(cr=1), dw(req=1)}: afto(e, ef, 0) ; agent InkrI TE es, ef =up(clk=1); KM (u; es; u)(u; ef; u);

g I:=I+1; TR afto(up(i=i+1), ef, 0); agent Add TE es, ef =up(clk=1); KM (u; es; u)(u; ef; DO=d); vs d = <DO> +< M(I)>; g DO:=DO + M(I); TR afto(up(do=d), ef, 0); agent SetCR TE es, ef =up(clk=1); KM (u; es; u)(u; ef; CR=1); g CR:=1; TR afto(up(cr=1), ef, 0); agent WriteM TE es, ef =up(clk=1); KM (D=d; es; u)(u; ef; u) g M(I) := d TR afto(up(m(i)=d), ef, 0) agent SetReq TE es, es, ef =up(clk=1); KM (ACK=0; es; u)(u; ef; REQ=1); g REQ:=1; TR afto(up(req=1), ef, 0); agent ResReq TE es, es, ef =up(clk=1); KM (ACK=1; es; u)(u; ef; REQ=0); g REQ :=0;

TR afto(dw(req=1),ef,0); agent SetRR TE es, es, ef =up(clk=1); KM (u; es; u)(u; ef; RR=1); g RR:=1; TR afto(up(rr=1), ef, 0); START P1 ez; Restr RD nand CO; RR => (not RD); CR => (not CO) ; CO => RR ; Pri danej restr sú výrazy RR => (not RD); a CR => (not CO); ktoré zabezpečujú, že ak práve skončil agent PrReadIn, tak nebude znova naštartovaný a podobne to platí aj pre PrCompute. Výraz CO => RR ; zabezpečuje, že PrCompute bude naštartovaný až po naplnení pamäti údajmi. Globálny proces sa nachádza práve v tejto alternatíve VSYS-2 a zodpovedá procesu P1. PS=P1= [ (RD=1): Reset. [ (ACK=1)[EA].SetReq.[EA](ACK=1). ResReq. WriteM..InkrI ](I=0). SetRR, (CO=1): Reset.[ Add. InkrI ](I=0).SetCR, ((RD=0)and(CO=0)): EA ] ω ;

Vo forme programovej schémy môžeme tento proces aj s danými obmedzeniami v špecifikácií (restr) opísať aj takto: Ps = L0: EA / (RD and (not CO) and (not RR)): L1, (CO and (not RD) and (not CR) and RR): C1, (RD nor CO) and (RD or RR)) and (CO or (not RR)) : L0 L1: Reset / L2; L2: ACK: L3, L4 L3: EA / L2 L4: SetReq / L5; L5: EA / ACK: L6, L5; L6 :ResReq / L7 L7: WriteM / L8; L8:InkrI/L9; L9:(I /=0 ) and (ACK=0): L4, (I /=0) and (ACK=1): L3, (I=0): L10; L10: SetRR / L0 C1: Reset / C2; C2: Add / C3; C3: InkrI / C4; C4:(I /= 0):C2, C5; C5: SetCR / L0 Zrejme ide o proces, pri exekúcii ktorého sa systém správa tak, ako predpisuje špecifikácia VSYS-2. Začiatočný príkaz (na návestí L0) predpisuje čakať (pri RD=0 a CO=0) v cykle z prázdnym agentom EA (prázdnou mikrooperáciou) na udalosť up(rd=1) alebo up(co=1), po ktorej sa inicializuje exekúcia sekcie procesu (označená návestiami "L" alebo "C"), ktorá zodpovedá procesu PrReadIn, resp. PrCompute.

A. Reprezentácia štruktúrnej implementácie operačnej časti a špecifikácie riadenia - tok údajov a tok riadenia Prostriedkami reprezentácie štruktúry OČ a globálneho procesu Ps, s ktorými sa pri návrhu v praxi najčastejšie pracuje, sú dva orientované grafy, vyjadrujúce priamo tzv. tok údajov a tok riadenia v navrhovanom systéme. Tok údajov predstavuje súbor funkčných závislostí medzi operandami (vstupnými údajmi a konštantami) a výsledkami (výstupnými údajmi) a teda súbor väzieb medzi premennými a operáciami. Operácie obsiahnuté v toku údajov sú obyčajne -- jednoduché funkcie (vyjadrené operátormi +,-,*, /,+1 a pod.) nad príslušnými údajmi, alebo -- priamo agenty (najčastejšie, mikrooperácie). Výstupmi agenta A v toku údajov sú výstupné a operačné stavové premenné, ktorých hodnoty sa v A nastavujú. Vstupy agenta A v toku údajov sú vstupné a stavové premenné a údajové konštanty, od ktorých priamo závisia hodnoty nastavovaných premenných v A. Tak napr. agent Add z VSYS-2 má tieto vstupy: stavové premenné M, I a DO, a výstup stavovú premennú DO. Značíme to takto: Add (M, I, DO ; DO)

Zostavenie grafu toku údajov Graf toku údajov (GTU) sa zostaví tak, že premenným, konštantám a operáciam v danej špecifikácií sa priradia vrcholy orientovaného grafu. Orientované hrany sa usporiadajú tak, aby vyjadrovali realizované údajové väzby medzi vstupmi, operáciami (agentmi) a ich výstupmi. Vrcholy priradené operáciam vyznačujeme obdĺžnikmi a vrcholy priradené premenným sú kružnice alebo elipsy. Konštanty uvádzame medzi apostrofmi, napr. konštanta: 0. Na ilustráciu uvedieme 2 GTU systému VSYS. V prvom GTU sú operácie priamo agenty definované v špecifikácií VSYS-2. Tento spôsob vyjadrenia toku údajov nie je viazaný na úroveň abstrakcie; môže používať ľubovoľné agenty ako nedeliteľné entity. V grafe sú naznačené aj operačné vrcholy (funkcie) generujúce hodnoty predikátov. Nositeľmi predikátov (ACK=1), (RD=1) a (CO=1) sú priamo vstupné boolovské premenné systému. V jednoduchých agentoch (mikrooperáciách) môže byť zahrnutý určitý paralelizmus v realizácii funkcií, ktoré obsahujú (napr. agent Reset zahrňuje 4 funkcie priradenia hodnoty 0 operačným stavovým premenným DO, I, RR, CR, čo sa vykonáva súbežne). GTU s agetmi použijeme (v zjednodušenej forme) pri plánovaní vykonávania operácií v riadiacich cykloch RČ.

GTU: '0' '1' Reset ResReq SetReq SetRR SetCR Vst. syst. D I Req RR CR WriteM M InkrI «-------------- výstupy systému --------------» «-------------- vstupy systému --------------» ACK RD CO Add I = 0 = 1 = 1 = 1 DO p Výstup systému «---------------------- vstupy RC ---------------------» Spôsob zostavenia je zrejmý. Vychádzame zo špecifikácie VSYS-2 a pre jednotlivých agentov stanovíme ich vstupy a výstupy. Medzi tieto vrcholy vložíme vstupujúce orientované hrany, resp. vystupujúce hrany do, resp. z vrcholu (agentu).

Druhý GTU reprezentuje tok údajov s jednoduchými operáciami. Jednoduché operácie sú vyjadrené priamo operátormi: + (súčet údajov), +1 (inkrementovanie údaja), (priame priradenie údaja premennej). Graf zostavíme z predchádzajúceho GTU s tým, že pre jednotlivé agenty zistíme aké jednoduché operácie sa v nich realizujú nad vstupnými operandami. Napr. v mikrooperácií Add sa realizuje jednoduchá operácia "+" nad vstupmi M,I, a DO s nastavením výsledku ako (novej) hodnoty DO {t.j. DO := DO + M[I] }. Symbolom sa vyznačujú priraďovacie operácie := pre operačné stavové premenné. Často ich vynechávame.

GTU s jednoduchými operáciami je vhodný pre extrahovanie štruktúry operačnej časti systému.