Presentation is loading. Please wait.

Presentation is loading. Please wait.

Algoritamske mašine stanja ili ASM dijagrami

Similar presentations


Presentation on theme: "Algoritamske mašine stanja ili ASM dijagrami"— Presentation transcript:

1 Algoritamske mašine stanja ili ASM dijagrami
Standardna grafička notacija, u formi dijagrama toka, koja se koristi za opis ponašanja (funkcionisanja) digitalnih sistema. Koristi se prilikom projektovanja digitalnog hardvera koji realizuje neki konkretan algoritam. Opis rad digitalnog sistema na apstraktnom nivou, nezavisno od konkretne hardverske realizacije. ASM dijagram govori šta sistem radi (tj. definiše tok elementarnih operacija u vremenu), a ne kako je sistem realizovan (tj. koja konkretna digitalna kola se koriste i kako su povezana). ASM dijagram (Algorithmic State Machine Diagram) predstavlja standardnu grafičku notaciju, u formi dijagrama toka, koja se koristi za opis (specifikaciju) ponašanja (funkcionisanja) digitalnih sistema. ASM dijagrami se koriste prilikom projektovanja digitalnog hardvera koji realizuje (implementira) neki konkretan algoritam. Uz pomoć ASM dijagrama, moguće je opisati rad digitalnog sistema na apstraktnom nivou, nezavisno od konkretne hardverske realizacije. Drugim rečima, ASM dijagram govori šta sistem radi (tj. definiše tok elementarnih operacija u vremenu), a ne kako je sistem realizovan (tj. koja konkretna digitalna kola se koriste i kako su povezana). Arhitektura mikrosistema

2 ASM v.s. softverski dijagram toka
Slični po izgledu Oba tipa dijagrama služe za opis algoritama. Softverske dijagrame toka koriste programeri, u procesu razvoja programa koji će se izvršavati na računskoj mašini. ASM dijagrame koriste projektanti digitalnog hardvera, kao početni korak u procesu realizacije konkretnog algoritma direktno u hardveru. Mada, ASM dijagram nalikuje konvencionalnom, softverskom dijagramu toka, interpretacija i oblasti primene ova dva tipa dijagrama se razlikuju. Oba tipa dijagrama služe za opis algoritama. Softverske dijagrame toka koriste programeri, kao početni korak u procesu razvoja programa čija je namena da omogući izvršenje konkretnog algoritam na računskoj mašini. ASM dijagrame koriste projektanti digitalnog hardvera, kao početni korak u procesu realizacije konkretnog algoritma direktno u hardveru. U pogledu interpretacije, razlika između softverskog dijagrama toka i ASM dijagrama ogleda se pre svega u odnosu na to kako protok vremena utiče na rad algoritma. Računska mašina izvršava algoritam instrukciju-po-instrukciju; svaka instrukcija se obavlja u toku jednog instrukcijskog ciklusa, pri čemu instrukcijski ciklusi mogu imati različito trajanje. S toga, softverski dijagram ne navodi tačan iznos vremena koji je potreban da bi se izvršio jedan algoritamski korak, već samo jednoznačno određuje tok (sekvencu) algoritamskih koraka. Programer je svestan činjenice da izvršenje algoritma na računskoj mašini zahteva neko konačno vreme, koje zavisi od broja i složenosti operacija koje treba izvršiti, ali sam tok algoritma i konačni rezultat ne zavise od vremena izvršenja pojedinačnih operacija. Sa druge strane, rad digitalnog sistema je iniciran taktnim signalom, a u toku jednog taktnog perioda digitalni sistem može da obavi jednu ili više elementarnih operacija. Naime, u radu digitalnog sistema ispoljava se paralelizam. S toga, osnovna pretpostavka kod ASM dijagram se sastoji u sledećem: svaki algoritamski korak traje isto, fiksno vreme (jednako taktnom periodu), a sve operacije obuhvaćene jednim algoritamskim korakom se izvršavaju istovremeno (u paraleli). Arhitektura mikrosistema

3 ASM v.s. softverski dijagram toka
Računar Sekvencijalni rad: Izvršava program instrukciju-po-instrukciju; U svakom ciklusu se obavlja jedna instrukcija Instrukcijski ciklusi mogu imati različito trajanje. Softverski dijagram ne navodi tačan iznos vremena koji je potreban da bi se izvršio jedan algoritamski korak, već samo jednoznačno određuje tok (sekvencu) algoritamskih koraka. Digitalni hardver Paralelizam - u toku jednog taktnog ciklusa može da obavi jednu ili više elementarnih operacija ASM dijagram - svaki algoritamski korak traje isto, fiksno vreme (jednako taktnom periodu), a sve operacije obuhvaćene jednim algoritamskim korakom se izvršavaju istovremeno (u paraleli). U pogledu interpretacije, razlika između softverskog dijagrama toka i ASM dijagrama ogleda se pre svega u odnosu na to kako protok vremena utiče na rad algoritma. Računska mašina izvršava algoritam instrukciju-po-instrukciju; svaka instrukcija se obavlja u toku jednog instrukcijskog ciklusa, pri čemu instrukcijski ciklusi mogu imati različito trajanje. S toga, softverski dijagram ne navodi tačan iznos vremena koji je potreban da bi se izvršio jedan algoritamski korak, već samo jednoznačno određuje tok (sekvencu) algoritamskih koraka. Programer je svestan činjenice da izvršenje algoritma na računskoj mašini zahteva neko konačno vreme, koje zavisi od broja i složenosti operacija koje treba izvršiti, ali sam tok algoritma i konačni rezultat ne zavise od vremena izvršenja pojedinačnih operacija. Sa druge strane, rad digitalnog sistema je iniciran taktnim signalom, a u toku jednog taktnog perioda digitalni sistem može da obavi jednu ili više elementarnih operacija. Naime, u radu digitalnog sistema ispoljava se paralelizam. S toga, osnovna pretpostavka kod ASM dijagram se sastoji u sledećem: svaki algoritamski korak traje isto, fiksno vreme (jednako taktnom periodu), a sve operacije obuhvaćene jednim algoritamskim korakom se izvršavaju istovremeno (u paraleli). Arhitektura mikrosistema

4 Algoritamske mašine stanja
Koristi tri grafička simbola: Blok stanja Blok grananja Blok uslovnog izlaza Dijagrami stanja su pogodno sredstvo za predstavljanje konačnih automata sa malim brojem ulaza i izlaza. Međutim, za opis složenijih automata (tj. algoritama koji se realizuju u hardveru), projektanti obično koriste tzv. algoritamske mašine stanja, ili ASM dijagrame (prema eng. Algorithmic State Machine). U suštini, ASM dijagrami su vrsta dijagrama toka prilagođenih za predstavljanje stanja, prelaza između stanja i generisanje izlaza konačnog automata. Na Sl. 2‑52 su predstavljena tri osnovna grafička simbola koji se koriste za crtanja ASM dijagrama: blok stanja, blok grananja i blok uslovnog izlaza. Arhitektura mikrosistema

5 Arhitektura mikrosistema
Stanja Ime stanja Predstavlja se pravougaonikom Svako stanje traje jedan taktni ciklus Tekuće stanje odnosi se na pravougaonik ASM dijagrama koji je aktivan u toku konkretnog taktnog ciklusa. Sledeće stanje odnosi se na pravougaonik ASM dijagrama koji će postati aktivan u toku narednog taktnog ciklusa ASM dijagram mora sadržati barem jednu petlju. Stanje Pojam tekuće stanje odnosi se na pravougaonik ASM dijagrama koji je aktivan u toku konkretnog taktnog ciklusa. Pojam sledeće stanje odnosi se na pravougaonik ASM dijagrama koji će postati aktivan u toku narednog taktnog ciklusa. Svaki par ¨tekuće-sledeće¨ stanje povezan je strelicom koja polazi sa pravougaonika tekućeg, a završava se na pravougaoniku sledećeg stanja. S obzirom da ASM dijagram sadrži konačan broj stanja, gde svako stanje traje tačno jedan taktni ciklus, i da svaki digitalni sistem radi bez prestanka (sve dok je pod napajanjem), svaki ASM dijagram mora sadržati barem jednu petlju. Petlja Arhitektura mikrosistema

6 Arhitektura mikrosistema
Stanje - taktni ciklus Vreme Tekuće stanje Sledeće stanje 0.0 ZELENO ŽUTO 0.5 CRVENO 1.0 1.5 2.0 2.5 Arhitektura mikrosistema

7 Postavljanje izlaznih signala
Signal - jedan bit, ili grupa više bitova, koji prenose binarnu informaciju između digitalnih kola ili sklopova Ime signala unutar pravougaonika znači da je taj signal postavljen za sve vreme dok je ASM dijagram u tom u stanju. U pravougaonicima, gde se ime signala ne javlja, signal ima podrazumevanu vrednost. Vreme Tekuće stanje Sledeće stanje Signali 0.0 ZELENO ŽUTO STOP=0 0.5 CRVENO STOP=1 1.0 1.5 2.0 2.5 Signal je jedan bit, ili grupa više bitova, koji prenose binarnu informaciju između digitalnih kola ili sklopova. Uobičajeno je da projektant dodeljuje imena signalima kao bi dokumentovao njihovu namenu. U hardveru, jednobitnom signalu odgovara žica (veza), dok višebitnom signalu odgovara magistrala. U ASM dijagramu, signali se javljaju pod svojim imenima. Jednobitni signal može imati vrednost 0 ili 1, pri čemu se jedna od ove dve vrednosti smatra podrazumevanom. U kontekstu jednobitnih signala, pojam ¨signal je postavljen¨ znači da signal uzima vrednost koja je različita od podrazumevane. Na primer, ako za podrazumevanu vrednost usvojimo 1, postavljeni signal imaće vrednost 0. Postojanje imena signala unutar pravougaonika ASM dijagrama znači da je taj signal postavljen za sve vreme dok je ASM dijagram u stanju koje je pridruženo odgovarajućem pravougaoniku. U ostalim pravougaonicima, gde se ime signala ne javlja, signal ima podrazumevanu vrednost. Arhitektura mikrosistema

8 Arhitektura mikrosistema
Registarski prenos Registri se koriste kao memorijski elementi za čuvanje vrednosti promenljivih koje su definisane algoritmom. Operacija upisa u registar se označava naredbom registarskog prenosa A ← A + 1 ukazuje na vrednost koja se upisuje (prenosi) u registar u trenutku početka sledećeg taktnog ciklusa ← ukazuje na odloženu ili zakasnelu dodelu Operacija upisa u registar se označava naredbom registarskog prenosa, tj. naredbom dodele kod koje je znak jednakosti (=) zamenjen horizontalnom strelicom usmerenom na levo (←). Ova naredba ukazuje na vrednost koja se upisuje (prenosi) u registar u trenutku početka sledećeg taktnog ciklusa, tj. pri ulasku u sledeće stanje. Ukoliko se ime registra ne javlja sa leve strane ni jedne naredbe registarskog prenosa u okviru nekog pravougaonika, to znači da će sadržaj tog registra ostati nepromenjen prilikom ulaska u sledeće stanje. Arhitektura mikrosistema

9 Arhitektura mikrosistema
Registarski prenos STOP - jednobitni signal BRZINA - višebitni signal BROJAC - registar (inicijalno 0) Vreme Tekuće stanje Sledeće stanje Signali i promenljive 0.0 ZELENO ŽUTO STOP=0 BRZINA=11 BROJAČ=000 0.5 CRVENO STOP=1 BRZINA=01 BROJAČ=000 1.0 STOP=1 BRZINA=00 BROJAČ=001 1.5 STOP=0 BRZINA=11 BROJAČ=011 2.0 STOP=1 BRZINA=01 BROJAČ=011 2.5 STOP=1 BRZINA=00 BROJAČ=100 Arhitektura mikrosistema

10 Arhitektura mikrosistema
Grananja Vreme Tekuće stanje Sledeće stanje Signali i promenljive 0.0 ZELENO ŽUTO STOP=0 BRZINA=11 BROJAČ=000 0.5 CRVENO STOP=1 BRZINA=01 BROJAČ=000 1.0 STOP=1 BRZINA=00 BROJAČ=001 1.5 STOP=0 BRZINA=11 BROJAČ=011 2.0 STOP=1 BRZINA=01 BROJAČ=011 2.5 STOP=1 BRZINA=01 BROJAČ=100 3.0 STOP=1 BRZINA=01 BROJAČ=101 3.5 STOP=1 BRZINA=01 BROJAČ=110 4,0 STOP=1 BRZINA=01 BROJAČ=111 4.5 5.0 netačno tačno Arhitektura mikrosistema

11 Arhitektura mikrosistema
Grananja PREKIDAC - ulazni signal BROJAČ - registar Arhitektura mikrosistema

12 Pristupi projektovanju
Dva pristupa rešavanju problema: ¨odozdo-naviše¨ (bottom-up) ¨odozgo-naniže¨ (top-down) Postoje dva osnovna pristupa rešavanju problema: ¨odozdo-naviše¨ (bottom-up) i ¨odozgo-naniže¨ (top-down). Kod pristupa ¨odozdo-naviše¨, projektant započinje rad rešavanjem nekog izdvojenog detalja celokupnog problema. Nakon toga, projektant prelazi na neki drugi detalj, koji nije u vezi sa prvim. Konačno, projektant dolazi u situaciju da spaja nezavisno rešene delove problema u konačno rešenje. Kod problema većeg obima, pojedinačno rešavani delovi se obično ne uklapaju idealno jedni s drugim. To je posledica samog pristupa koji fokusiranjem na izdvojene detalje odvlači pažnju projektanta sa slike o celovitosti rešenja. Konačni rezultat je takav da se najveći deo ukupnog projektantskog vremena troši na uklapanje nezavisnih detalja, što često uključuje i prepravku već rešenih delova opšteg problema. Kod pristupa ¨odozgo-naniže¨, projektant započinje rad na problemu razradom globalnog plana što podrazumeva sveobuhvatno sagledavanje problema, razradu strategije rešavanja problema, dekompoziciju problema na potprobleme manjeg obima, i definisanje odnosa između pojedinih potproblema. Drugim rečima, projektant se trudi da polazni problem, koji je obično isuviše obiman da bi se rešio ¨u jednom dahu¨, razloži na veći broj jasno definisanih problema manjeg obima. Pri tome, projektant ne rešava odmah uočene potprobleme, već ih tretira kao apstraktne sklopove (crne kutije) koje međusobno uklapa i povezuje. U drugoj fazi projektovanja, projektant nastavlja sa razradom i rešavanjem uočenih potproblema. Pri tome, projektant može slobodno da se usredsredi na svaki pojedinačni, prethodno definisani potproblem, bez brige oko njihovog uklapanja, koje je razradio u prvoj fazi projekta i time ih ugradio u definiciju svakog pojedinačnog potproblema. Projektanti-početnici obično ne doživljavaju projektovanje ¨odozgo-naniže¨ kao prirodni pristup. Prirodno je da neko ko nema iskustva u projektovanju hardvera bude zabrinut detaljima koji se odnose na realizaciju (kao razvesti napajanje, koja digitalna kola koristiti i kako ih povezati, i td.). Pristup ¨odozgo-naniže¨ zasnovan je na iskustvu i samopouzdanju projektanta: neko ko je ranije rešavao detalje slične onima koji se javljaju u tekućem problemu, može ignorisati te detalje u toku razrade globalnog plana, siguran da će onda kada pređe na realizaciju svog plana, moći da reši svaki od izdvojenih potproblema. Generalno, projektovanje ¨odozgo-naniže¨ ostvaruje se u sledeće tri faze: Opis ponašanja Razrada Realizacija Arhitektura mikrosistema

13 Projektovanje ¨odozdo-naviše¨
¨Odozdo-naviše¨ (bottom-up) Projektant rešava izdvojene detalje celokunog problema koje potom ugrađuje u konačno rešenje Rešeni detalji se obično međusobo ne uklapaju idealno Najveći deo ukupnog projektantskog vremena troši na uklapanje nezavisnih detalja, što često uključuje i prepravku već rešenih delova opšteg problema Nije pogodno za projektovanje složenih digitalnih sistem Interfejs Komponenta Arhitektura mikrosistema

14 Projektovanje ¨odozgo-naniže¨
Projektant započinje rad na problemu razradom globalnog plana sveobuhvatno sagledavanje problema, razrada strategije rešavanja problema, dekompozicija problema na potprobleme manjeg obima definisanje odnosa (interfejsa) između potproblema projektant ne rešava odmah uočene potprobleme, već ih tretira kao apstraktne sklopove (crne kutije) koje međusobno uklapa i povezuje U nastavku Projektant razrađuje i rešava potprobleme Problem uklapanja ne postoji (interfejsi su definisani u prvoj fazi) Kod pristupa ¨odozgo-naniže¨, projektant započinje rad na problemu razradom globalnog plana što podrazumeva sveobuhvatno sagledavanje problema, razradu strategije rešavanja problema, dekompoziciju problema na potprobleme manjeg obima, i definisanje odnosa između pojedinih potproblema. Drugim rečima, projektant se trudi da polazni problem, koji je obično isuviše obiman da bi se rešio ¨u jednom dahu¨, razloži na veći broj jasno definisanih problema manjeg obima. Pri tome, projektant ne rešava odmah uočene potprobleme, već ih tretira kao apstraktne sklopove (crne kutije) koje međusobno uklapa i povezuje. U drugoj fazi projektovanja, projektant nastavlja sa razradom i rešavanjem uočenih potproblema. Pri tome, projektant može slobodno da se usredsredi na svaki pojedinačni, prethodno definisani potproblem, bez brige oko njihovog uklapanja, koje je razradio u prvoj fazi projekta i time ih ugradio u definiciju svakog pojedinačnog potproblema. Arhitektura mikrosistema

15 Projektovanje ¨odozgo-naniže¨ - faze projektovanja
Opis ponašanja (sistem koja se projektuje opisuje se na algoritamskom nivou, npr. u vidu ASM dijagrama ) Razrada (podeli sistema na dva upravljačku jedinicu i staza podataka ) Realizacija (realizacija hardvera sistema) Arhitektura mikrosistema

16 Arhitektura mikrosistema
Opis ponašanja Najvažnija faza celokupnog procesa projektovanja Sistem koja se projektuje opisuje se na algoritamskom nivou, npr. u vidu ASM dijagrama Sistem se tretira kao crna kutija sa naznačenim ulazima i izlazima koja se ponaša na način koji je opisan algoritmom Opis ponašanja je najvažnija faza celokupnog procesa projektovanja. U ovoj fazi, sistem koja se projektuje opisuje se na algoritamskom nivou, npr. u vidu ASM dijagrama. Jedina struktura koja postoji u ovoj fazi je blok dijagram koji specificira ulazne i izlazne portove sistema. Drugim rečima, u ovoj fazi, sistem se tretira kao crna kutija sa naznačenim ulazima i izlazima koja se ponaša na način koji je opisan algoritmom (ASM dijagramom). Obično, projektant ne kreira samo jedan ASM dijagram, već istražuje različite opcije i varijante mogućih rešenja, vrednujući ih u skladu sa postavljenim performansnim kriterijumima (brzina rada, hardverska složenost i sl.). Napomenimo da ASM dijagram, iako apstraktni opis, pruža dovoljno informacija na osnovu kojih se može odrediti broj taktnih ciklusa potrebnih za obavljanje pojedinih aktivnosti i grubo proceniti složenost hardverske realizacije, na primer, na osnovu broja registarskih promenljivih Arhitektura mikrosistema

17 Opis ponašanja - Interfes
Interfejs (značenje reči) - mesto na kome se dva nezavisna sistema susreću ili spajaju (ili sredstvo koje koriste) radi zajedničkog dejstva ili međusobne komunikacije. Digitalni sistem u toku rad ineraguje sa svojim okruženjem (drugi digitalni sistemi, ne-digitalni uređaji, pa čak i čovek koji posredstvom odgovarajućih ulazno-izlaznih uređaja komunicira sa sistemom) Za definisanje interfesa potrebno je znati koje informacije se razmenjuju između sistema i okruženja i na koji način sistem komunicira sa okruženjem Specifikacija interfejsa digitalnog sistema uključuje specifikaciju ulaza i izlaza (tj. portova) proširenu pravilima za korišćenje sistema od strane korisnika Pored algoritma koji definiše osnovnu funkciju sistema, opis ponašanja sadrži i specifikaciju interfejsa. Kao pojam, interfejs označava mesto na kome se dva nezavisna sistema susreću ili spajaju (ili sredstvo koje koriste) radi zajedničkog dejstva ili međusobne komunikacije. Digitalni sistem u toku rad ineraguje sa svojim okruženjem. Okruženje mogu činiti drugi digitalni sistemi, ne-digitalni uređaji, kao što su prekidači ili senzori, pa čak i čovek koji posredstvom odgovarajućih ulazno-izlaznih uređaja komunicira sa sistemom. Rećićemo da se okruženje digitalnog sistema sastoji od nezavisnih aktora, koji koordinirano, ali u paraleli, rade i interaguju kako sa digitalnim sistemom tako i između sebe. Sa tačke gledišta projektanta digitalnog sistema, detalji koji se odnose na rad i implementaciju aktora nisu od značaja. Za projektanta je bitno je da poznaje informacije koje se razmenjuju između sistema i aktora kao i način na koji aktori komuniciraju sa sistemom, kako bi mogao da ih ugradi u specifikaciju interfejsa. Za razliku od projektanta digitalnog hardvera, programeri imaju na raspolaganju standardne, sofisticirane korisničke interfejse (tastatura, miš, monitor), koji olakšavaju korisnicima da interaguju sa softverom. Korisnički interfejsi ovog tipa rešavaju dva bazična problema koji se uvek javljaju kada dva aktora pokušavaju da komuniciraju: (a) koji podaci se razmenjuju u toj komunikaciji i (b) kada i kako obaviti prenos informacije. Kod projektovanja hardvera, javljaju se isti problemi, ali, sada je odgovornost na projektantu digitalnog sistema da ih reši. Arhitektura mikrosistema

18 Opis ponašanja - Interfes
Dva tipa ulaznih i izlaznih informacija: Upravljački i statusni signali (najčešće jednobitni signali) Upravljački ulazi - iniciraju naku aktivnost sistema Statusni ulazi - sistem dobija informaciju o trenutnom stanju okruženja Upravljački izlazi - sistem inicira neku aktivnost u okruženju Statusni izlazi - obaveštava okruženje o svom trenutnom stanju Signali takta i resetovanja prisutnih kod svih sistema Podaci Ulazni podaci - informacija koju sistem treba da obradi Izlazni podaci - rezultat obrade Specifikacija interfejsa digitalnog sistema uključuje specifikaciju ulaza i izlaza (tj. portova) proširenu pravilima za korišćenje sistema od strane korisnika. U opštem slučaju, digitalni sistem sa aktorima iz okruženja razmenjuje dva tipa ulaznih i izlaznih informacija: (a) upravljački i statusni signali i (b) podaci (Sl. 3‑1). Upravljački i statusni signali su najčešće jednobitni, dok su podaci višebitni signali. Putem upravljačkih ulaza, aktor inicira neku akciju sistema, dok preko statusnih obaveštava sistem o svom trenutnom stanju. Preko statusnog ulaza sistem dobija odgovor na pitanje tipa ¨da-ne¨, kao što je, na primer, pitanje: ¨da li je prekidač zatvoren?¨ U ASM dijagramu koji opisuje ponašanje sistema, imena statusnih i upravljačkih ulaza se javljaju samo unutar blokova grananja, tj. koriste se za donošenje direktnih odluka, ali ne i za neka druga izračunavanja. Slično, sistem koristi upravljačke izlaze da bi inicirao neku akciju aktora, a statusne da bi obavestio okruženje o svom trenutnom stanju (npr. ´izračunavanje je završeno´). Klasifikacija na upravljačke i statusne signale nije stroga, a projektant ima slobodu da klasifikaciju obavi na način za koji smatra da je najprikladniji u kontekstu konkretnog problema. Ulazi podataka imaju istu ulogu kao i ulazne promenljive kod konvencionalnih programskih jezika, tj. za prosleđivanje sistemu informacije koju on treba da obradi. U ASM dijagramu ulazi podataka se uvek javljaju samo sa desne strane naredbi registarskog prenosa i/ili uslova u blokovima grananja. Preko izlaza podataka sistem predaje okruženju obrađenu informaciju (analogno izlaznim promenljivama kod programskih jezika). Vrednost koja se postavlja na izlaz podataka uzima se iz nekog internog registra sistema. Dodatno, sekvencijalni digitalni sistemi poseduju još dva signala: signal takta, clk, i signal asinhronog resetovanja, rst, kojim se sistem, na početku rada, postavlja u početno stanje. Pošto su ova dva signala podrazumevana, oni se obično i ne crtaju. Arhitektura mikrosistema

19 Interfes - Primer (Sekvencijalni delitelj)
Pre aktiviranja upravljačkog ulaza start (start=1) korisnik, treba da postavlja deljenik i delilac na ulazima podatak x i y. Korisnik ne sme da menja x i y za vreme dok traje izračunavanje (dok je rdy=0). Trajanje signala start mora biti tačno jedan taktni period. Korisnik je u obavezi da pre sledećeg aktiviranja signala start čeka barem dva taktna ciklusa nakon što je sistem završio prethodno izračunavanje Spada u specifiakciju interfejsa Statusni izlaz Upravljački ulaz Ulazi podataka Izlaz podataka Arhitektura mikrosistema

20 Konverzija algoritma u ASM dijagram
Osnova za hardversko rešenje Osnova za softversko rešenje datog problema B = 0; while(A≠0) do if(A0 = 1) then B = B + 1; end if; A = A >> 1; end while; ? Dozvoljava paralelizam (sve operacije obuhvaćene jednim stanjem izvršavaju se istovremeno) Nameće diskretizaciju vremena (jedno stanje, jedan taktni ciklus) Procese rešavanja datog problema obično počinje kreiranje algoritma visokog nivoa. Algoritam se piše u obliku pseudo koda ili dijagrama toka i kao takav, u suštini, predstavlja softversko rešenje datog problema. Osnovna pretpostavka kod softverskog algoritma je da se algoritamski koraci izvršavaju jedan za drugim, strogo sekvencijalno. Može se desiti da su dve ili više sukcesivnih operacija međusobno nezavisne i da bi zbog toga mogle biti izvršene istovremeno (paralelno). Međutim, pomoću softverskog algoritma nije moguće izraziti paralelizam. Takođe, softverski algoritam ne sadrži informaciju o trajanju operacija. Razlog za to je takođe pretpostavka o sekvencijalnom izvršenju koje garantuje da konačni rezultat ne zavisi od vremena izvršenja pojedinačnih operacija. Zbog svega navedenog, softverski algoritam nije pogodno sredstvo za opis ponašanja digitalnih sistema. Sekvencijalno izvršenje algoritamskih koraka Ne sadrži informaciju o trajanju operacija Arhitektura mikrosistema

21 Konverzija algoritma u ASM dijagram
Algoritam je teže predstaviti u obliku ASM dijagrama nego u obliku softverskog pseudo koda. => Opis ponašanja digitalnog sistema tipično počinje kreiranjem softverskog algoritma, koji se potom konvertuje u ekvivalentni ASM dijagram Pravila konverzije: Svaka naredba dodele softverskog algoritma se prevodi u naredbu registarskog prenosa koja se smešta u zaseban blok stanja ASM dijagrama iza koga ne sledi blok grananja. Svaka if ili while naredba softverskog algoritma se transformiše u prazan blok stanja nakon koga sledi blok grananja sa upisanom relacijom iz softverske naredbe. Arhitektura mikrosistema

22 Bez TEST, ispitivanje r1>=y koristilo bi staru vrednost r1 !!!
Primer direktne konverzija algoritma u ASM dijagram - sekvencijalni delitelj Bez TEST, ispitivanje r1>=y koristilo bi staru vrednost r1 !!! r1 = x; r2 = 0; while (r1 >= y) { r2 = r2 + 1; r1 = r1 – y;} Izlaz iz r2 Arhitektura mikrosistema

23 Arhitektura mikrosistema
ASM dijagram sekvencijalnog delitelja Optimizacija (eliminacija stanja TEST) 3+2*količnik 3+3*količnik Arhitektura mikrosistema

24 Arhitektura mikrosistema
ASM dijagram sekvencijalnog delitelja Optimizacija (eliminacija stanja INIT) Algoritmaski ispravno. Problem u korisničkom interfejsu: rezultat (u r2) je dostupan za očitavanje samo 1 taktni ciklus Arhitektura mikrosistema

25 Arhitektura mikrosistema
ASM dijagram sekvencijalnog delitelja Optimizacija (eliminacija stanja INIT) Uvodi se još jedan registar (r3) koji čuva rezultat Šta ako je količnik 0 ? Arhitektura mikrosistema

26 Arhitektura mikrosistema
ASM dijagram sekvencijalnog delitelja Optimizacija (Paralelizacija petlje) Neuspešni pokušaji Preuranjen upis u r3 Arhitektura mikrosistema

27 Arhitektura mikrosistema
ASM dijagram sekvencijalnog delitelja Optimizacija (Paralelizacija petlje) Stanje C123 se izvršava jedanput više, ali se zato u r3 upisuje jadnput manje Arhitektura mikrosistema

28 Arhitektura mikrosistema
ASM dijagram sekvencijalnog delitelja Optimizacija (Eliminacija stanja N3) 2+količnik Arhitektura mikrosistema

29 ASM dijagrami Milijevog tipa
Vre Stanje Signali i promenljive 0.0 ZELENO STOP=0 BRZINA=3 BROJAČ=000 OSTANI = 0 NAPUSTI = 0 0.5 ŽUTO STOP=1 BRZINA=1 BROJAČ=000 OSTANI = 0 NAPUSTI = 1 1.0 CRVENO STOP=1 BRZINA=0 BROJAČ=001 OSTANI = 0 NAPUSTI = 0 1.5 STOP=0 BRZINA=3 BROJAČ=011 OSTANI = 0 NAPUSTI = 0 2.0 STOP=1 BRZINA=1 BROJAČ=011 OSTANI = 1 NAPUSTI = 0 2.5 STOP=1 BRZINA=1 BROJAČ=100 OSTANI = 1 NAPUSTI = 0 3.0 STOP=1 BRZINA=1 BROJAČ=101 OSTANI = 1 NAPUSTI = 0 3.5 STOP=1 BRZINA=1 BROJAČ=110 OSTANI = 1 NAPUSTI = 0 4.0 STOP=1 BRZINA=1 BROJAČ=111 OSTANI = 1 NAPUSTI = 0 4.5 5.0 5.5 6.0 Uslovne operacije Arhitektura mikrosistema

30 r2 se resetuje u stanju PASIVO, pod uslovom ako je start=1
ASM dijagram sekvencijalnog delitelja Milijeva verzija (Eliminacija stanja INIT) r2 se resetuje u stanju PASIVO, pod uslovom ako je start=1 Umesto da uvedemo r3 Arhitektura mikrosistema

31 r2 se inkrementira jedanput više
ASM dijagram sekvencijalnog delitelja Milijeva verzija (Spajanje stanja C1 i C2) r2 se inkrementira jedanput više Arhitektura mikrosistema

32 Arhitektura mikrosistema
ASM dijagram sekvencijalnog delitelja Milijeva verzija (Spajanje stanja C1 i C2) Arhitektura mikrosistema

33 Arhitektura mikrosistema
ASM dijagram sekvencijalnog delitelja Milijeva verzija (Ranije postavljanje signala rdy) 2+količnik takta i 2 registra Arhitektura mikrosistema

34 Arhitektura mikrosistema
Razrada Cilj da polazni problem, prethodno precizno opisan ASM dijagramom, podeliti na dva dela: staza podataka registri za čuvanje vrednosti promenljivih; kombinaciona logika za obavljanje izračunavanja iz naredbi registarskog prenosa i relacija. upravljačku jedinicu - sprovodi algoritam Arhitektura mikrosistema

35 Projektovanje staze podataka
r1 ← x r1 ← r1-y r2 ← 0 r2 ← r2 + 1 r3 ← r2 r1 >= y registar + oduzimač brojač registar komparator Arhitektura mikrosistema

36 Projektovanje staze podataka (metodička staza podataka)
r1 ← x r1 ← r1-y r2 ← 0 r2 ← r2 + 1 r3 ← r2 r1 >= y registar + oduzimač brojač registar komparator r1 ← x (muxctrl=0, ldr1=1) r1 ← r1-y (muxctrl=1, ldr1=1) r2 ← 0 (clrr2=0) r2 ← r2 + 1 (incr2=1) r3 ← r2 (ldrr3=1) r1 >= y (r1gey) Arhitektura mikrosistema

37 Projektovanje upravljačke jedinice
r1 ← x (muxctrl=0, ldr1=1) r1 ← r1-y (muxctrl=1, ldr1=1) r2 ← 0 (clrr2=1) r2 ← r2 + 1 (incr2=1) r3 ← r2 (ldrr3=1) r1 >= y (r1gey) Arhitektura mikrosistema

38 Staza podataka zasnovana na ALU
r1 ← x r1 ← r1-y r2 ← 0 r2 ← r2 + 1 r3 ← r2 r1 >= y Arhitektura mikrosistema

39 Realizacija upravljačke jedinice ˝one-hot˝ metodom
Upravljačka jedinica tipa ¨one-hot¨ koristi tačno onoliko flip-flopova koliko ima stanja u odgovarajućem ASM dijagramu. Uvek je setovan tačno jedan flip-flop (onaj koji odgovara tekućem stanju) Prelaz sledeće stanje znači resetovanje flip-flopa tekućeg i setovanje flip-flopa sledećeg stanja. Arhitektura mikrosistema

40 Arhitektura mikrosistema
Realizacija upravljačke jedinice ˝one-hot˝ metodom - pravila konverzije - Arhitektura mikrosistema

41 Realizacija upravljačke jedinice ˝one-hot˝ metodom - primer -
Arhitektura mikrosistema

42 Arhitektura mikrosistema
Realizacija Kreiranje VHDL opisa Simulacija Sinteza Arhitektura mikrosistema

43 Sekvencijalni brojač jedinica
Brojač jedinica (bit_counter) je kolo koje određuje broj 1-ca u ulaznom binarnom vektoru Arhitektura mikrosistema

44 Sekvencijalni brojač jedinica Algoritam
while(A≠0) do if(A0 = 1) then B = B + 1; end if; A = A >> 1; end while; A, B => regA, regB Arhitektura mikrosistema

45 Sekvencijalni brojač jedinica Interfejs
Arhitektura mikrosistema

46 Sekvencijalni brojač jedinica Konverzija algoritma u ASM
while(A≠0) do if(A0 = 1) then B = B + 1; end if; A = A >> 1; end while; Arhitektura mikrosistema

47 Sekvencijalni brojač jedinica Analiza ASM
CLK START Tekuce stanje regA regB Sledece rdy 1 IDLE xxxx xx TEST 0101 00 INCR 2 SHIFT 3 01 4 0010 5 6 0001 7 8 10 9 0000 11 Arhitektura mikrosistema

48 Arhitektura mikrosistema
Sekvencijalni brojač jedinica Optimizacja: stanje INCR pripojeno stanju TEST CLK START Tekuce stanje regA regB Sledece rdy 1 IDLE xxxx xx TEST 0101 00 SHIFT 2 01 3 0010 4 5 0001 6 10 7 0000 8 9 Arhitektura mikrosistema

49 Arhitektura mikrosistema
Sekvencijalni brojač jedinica Optimizacja: spajanje stanja TEST i SHIFT Arhitektura mikrosistema

50 Arhitektura mikrosistema
Sekvencijalni brojač jedinica Optimizacja: spajanje stanja TEST i SHIFT CLK START Tekuce stanje regA regB Sledece rdy 1 IDLE xxxx xx TEST SHIFT 0101 00 2 0010 01 3 0001 4 0000 10 5 6 Arhitektura mikrosistema

51 Arhitektura mikrosistema
Sekvencijalni brojač jedinica Optimizacja: ranije postavljanje signala rdy CLK START Tekuce stanje regA regB Sledece rdy 1 IDLE xxxx xx TEST SHIFT 0101 00 2 0010 01 3 0001 4 0000 10 5 Arhitektura mikrosistema

52 Sekvencijalni brojač jedinica Razrada
regA ← a regA ← regA >> 1 regA ≠ 0 regB ← 0 regB ← regB +1 Pomerački registar sa paralelnim upisom n-ulazno ILI kolo Brojač sa sinhronim resetom Arhitektura mikrosistema

53 Sekvencijalni brojač jedinica Razrada - staza podataka
regA ← a (la=1,ea=1) regA ← regA >> 1 (la=0, ea=1) regA ≠ 0 (signal z) regB ← 0 (lb=eb=1) regB ← regB +1 (lb=0, eb=1) Arhitektura mikrosistema

54 Arhitektura mikrosistema
Sekvencijalni brojač jedinica Razrada - ASM dijagram upravljačke jedinice regA ← a (la=1,ea=1) regA ← regA >> 1 (la=0, ea=1) regA ≠ 0 (signal z) regB ← 0 (lb=eb=1) regB ← regB +1 (lb=0, eb=1) Arhitektura mikrosistema

55 Sekvencijalni brojač jedinica Realizacija - VHDL opis staze podataka
procesi ENTITY datapath IS PORT(a : IN STD_LOGIC_VECTOR(7 DOWNTO 0); b : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); la,ea,lb,eb : IN STD_LOGIC; a0,z : OUT STD_LOGIC; clk : IN STD_LOGIC; rst : IN STD_LOGIC); END datapath; Arhitektura mikrosistema

56 Arhitektura mikrosistema
Sekvencijalni brojač jedinica Realizacija - VHDL opis upravljačke jedinice ENTITY control IS PORT(start: IN STD_LOGIC; rdy : OUT STD_LOGIC; z, a0 : IN STD_LOGIC; la,ea,lb,eb : OUT STD_LOGIC; clk : IN STD_LOGIC; rst : IN STD_LOGIC); END control; Arhitektura mikrosistema

57 Arhitektura mikrosistema
Sekvencijalni brojač jedinica Realizacija - VHDL opis sek. brojača jedinica ENTITY bit_counter IS PORT(a : IN STD_LOGIC_VECTOR(7 DOWNTO 0); b : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); start : IN STD_LOGIC; rdy : OUT STD_LOGIC; clk : IN STD_LOGIC; rst : IN STD_LOGIC); END bit_counter; Arhitektura mikrosistema

58 Sekvencijalni brojač jedinica Simulacija
Arhitektura mikrosistema

59 Arhitektura mikrosistema
Ispitni zadatak 1 Za ASM dijagram sa slike, nacrtati vremenski dijagram koji prikazuje taktni signal, clk, stanja (S0, S1 i S2), ulaze (X1, X2 i X3) i izlaze. Ulazna sekvenca je X1 X2 X3 = 011, 101, 111, 010, 110, 101, 001. Usvojiti da se promena stanja dešava na rastuću a promene ulaza na opadajuću ivicu takta. Pretpostaviti da je početno stanje S0. Arhitektura mikrosistema

60 Arhitektura mikrosistema
Ispitni zadatak 2 ASM dijagram sa slike (a) opisuje ponašanje digitalnog sistema čiji je blok dijagram prikazan na slici (b). Interfejs sistema čine: jednobitni ulazni signal Cin, 4-bitni ulazni signal n i jednobitni izlazni signal Cout. Interno, sistem sadrži registar R. Izvršiti analizu rada sistema pod pretpostavkom da je na ulazu n prisutna vrednost n=3, da je u početnom trenutku sistem u stanju S0 i da se vrednost signal Cin menja na način kao u koloni Cin tabele sa slike (c): Popuniti tabelu sa slike (c). Vremenski dijagram sa slike (d) dopuniti talasnim oblikom izlaznog signala Cout. Svojim rečima objasniti funkciju sistema. Arhitektura mikrosistema

61 Arhitektura mikrosistema
Ispitni zadatak 2 Arhitektura mikrosistema

62 Arhitektura mikrosistema
Ispitni zadatak 2 Sistem generiše izlazni signal u trajanju od 1 takta, pomeren u odnosu na signal Cin za n+1 taktova. Arhitektura mikrosistema

63 Arhitektura mikrosistema
Ispitni zadatak 3 Softverski algoritam predstavljen programskom sekvencom sa slike konvertovati u funkcionalni ASM dijagram. Pretpostaviti da je niz X[i] smešten u RAM-u. max = 0; for(i=0;i<N;++i) { if(X[i] > max) { max = X[i]; } Arhitektura mikrosistema

64 Arhitektura mikrosistema
Ispitni zadatak 3 Arhitektura mikrosistema

65 Arhitektura mikrosistema
Ispitni zadatak 4 Projektovati stazu podataka i odgovarajući razrađeni ASM koji će realizovati algoritam definisan funkcionalnim ASM dijagramom sa slike. Na raspolaganju su sledeći funkcionali elementi: jedan 8-bitni brojački registar, jedan 8-bitni registra sa dozvolom, jedna 8-bitna ALU, i potreban broj multipleksera proizvoljnog tipa. Dati sistemski dijagram koji pokazuje spregu upravljačke jedinice i staze podataka. Arhitektura mikrosistema

66 Arhitektura mikrosistema
Ispitni zadatak 4 Arhitektura mikrosistema

67 Arhitektura mikrosistema
Ispitni zadatak 4 Arhitektura mikrosistema

68 Arhitektura mikrosistema
Ispitni zadatak 5 Za ASM dijagram sa slike projektovati stazu podataka i razrađeni ASM dijagram. Na raspolaganju su sledeći funkcionalni elementi: jedno 8-bitno kolo za inkrementiranje, tri 8-bitna registra sa dozvolom, jedan 8-bitni sabirač potreban broj multipleksera. Arhitektura mikrosistema

69 Arhitektura mikrosistema
Ispitni zadatak 5 8-bitni inkrementer 3 8-bitna registra sa dozvolom, 8-bitni sabirač potreban broj multipleksera Arhitektura mikrosistema

70 Arhitektura mikrosistema
Ispitni zadatak 5 Arhitektura mikrosistema

71 Arhitektura mikrosistema
Ispitni zadatak 6 Projektovati “one-hot” upravljačku jedinicu za ASM dijagram sa slike. in0 i in1 su ulazni statusni signali, a out0, out1, out2 i out3 izlazni upravljački signali. Arhitektura mikrosistema

72 Arhitektura mikrosistema
Ispitni zadatak 6 Arhitektura mikrosistema

73 Arhitektura mikrosistema
Ispitni zadatak 7 Na slici su prikazani blok dijagram i razrađeni ASM dijagram upravljačke jedinice koja je deo nekog složenog sistema. Upravljačka jedinica interaguje sa okruženjem putem statusnih ulaza start i mode i statusnog izlaza rdy,dok se za spregu upravljačke jedinice i staze podataka koriste: jednobitni upravljački signali ld_1, ld_2, inc, 3-bitni upravljački signal ctrl i jednobitni statusni signal stat. Realizovati upravljačku jedinicu korišćenjem «onehot» tehnike. Arhitektura mikrosistema

74 Arhitektura mikrosistema
Ispitni zadatak 7 Arhitektura mikrosistema

75 Arhitektura mikrosistema
Ispitni zadatak 8 Ubaciti dodatne multipleksere i povezati komponente sa slike (a) tako da se dobije dijagram digitalnog sistema koji je u stanju da obavlja algoritam predstavljen funkcionalnim ASM dijagramom sa slike (b). Slike prikazuje (i) brojač sa paralelnim upisom (ce - dozvola brojanja; ld - dozvola paralelnog upisa), (ii) prihvatni registar sa dozvolom upisa (en - dozvola upisa), (iii) binarni sabirač, (iv) višeulazno I kolo i (v) upravljačku jedinicu (UJ). Arhitektura mikrosistema

76 Arhitektura mikrosistema
Ispitni zadatak 8 Arhitektura mikrosistema

77 Arhitektura mikrosistema
Ispitni zadatak 9 Arhitektura mikrosistema

78 Arhitektura mikrosistema
Ispitni zadatak 9 Arhitektura mikrosistema


Download ppt "Algoritamske mašine stanja ili ASM dijagrami"

Similar presentations


Ads by Google