Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

Definicija embeded sistema i dve glavne karakteristike

Uređaj koji sadrži tesno povezane hardverske i softverske komponente projektovane sa ciljem
ostvarivanja jedne ili više unapred definisanih funkcija.
Dve glavne karakteristike: Reaktivno ponasanje, Rad pod velikim ogranicenjima

Struktura savremenog embeded sistema


Embeded sistemi se baziraju na mikroprocesorima. Zbog slozenosti obicno se realizuje uz pomoc veceg
broja interagujucih embeded sistema. Svaki od ovih sistema je realizovan kao odvojen embeded sistem.
Svaki embeded sistem se moze podeliti u dve komponente: Skup hardverskih komponenti i skup
softverskih programa (firmware)
Svaki embeded sistem interaguje sa okolinom preko ulazno izlaznih portova

Hardverska komponenta embeded sistema


Hardverska komponenta ukljucuje sve elektronske komponente neophodne da bi sistem mogao da
ostvaruje zadatu funkciju. Tri kljucne stvari hardverske komponente su: CPU, sistemska memorija,
ulazno/izlazni podsistem. Postoje i serijski/paralelni komunikacioni portovi, ADC i DAC konvertori...

Softverska komponenta embeded sistema


Softverska komponenta embeded sistema uključuje sve programe potrebne da se obezbedi zahtevana
funkcionalnost hardvera. Poznatiji su kao firmware, smesteni su u nekoj vrsti trajne memorije i nisu
predvidjeni da se menjaju, iako neki embeded sistemi podrzavaju firmware update. U slucaju da je
embeded sistem komplikovaniji, firmware je organizovan oko nekog operativnog sistema.
Glavne komponente su: system tasks, system kernel, servisi.
Softver je podeljen na skup manjih programa koji se nazivaju sistemski zadaci (system tasks) Svaki
zadatak izvrsava specificne akcije i korisit deo sistemskih rezursa za to.
Kernel je taj koji odredjuje sa cime koji zadatak moze da raspolaze i koliko dugo. Tacnije unutar
kernela postoji task manager koji to radi. Ukoliko vise zadataka trazi isti resurs politiku odredjuje
resource manager.

Klasifikacija embeded sistema


Postoje: Mali, Distribuirani i embeded sistemi visokih performansi.
Ali te kategorije nisu uzajamno iskljucive, postoje sistemi kod kojih se dve ili tri kategorije prelicu i
nije moguce tacno odrediti o kojoj katekoriji je rec.
Mali: Centrirani su oko jednog MCU-a, visoko su integrisani, zahtevaju mali broj dodatnih analognih
komponenti, senzora, aktuatora... Rade sa minimalnim ili bez odrzavanje, niske su cene i proizvode se u
velikim serijama. (kontrola pritiska u gumama, decije igracke, mikrotalasna rerna)
Distribuirani: CPU se nalazi u odvojenom integrisanom kolu od ostalih komponenti, kao što su
memorija, ulazno/izlazni uređaji, koprocesori. Postoji procesorski cipset koji cine vise odvojenih
integrisanih kola koje odradjuju specifisne funkcije (video procesori, kontroleri video igara) Visokih
performansi: Sistemi koji zahtevaju izvođenje brzih proračuna, robusnost, tolerantnost na greške i
visoki stepen održavanja (vazdusno kosmicke aplikacije, kontrola letenja, sistem za navodjenje)
Životni ciklus embeded sistema
Embeded sistemi imaju konačni životni vek tokom kojeg prolaze kroz različite faze, počevši od
koncepta ili rađanja do odlaganja, i u mnogim slučajevima, ponovnog rađanja. Faze kroz koje prolazi
svaki embeded sistem čine životni ciklus embeded sistema.
Postoje 5 faza: Koncepcija ili radjanje, dizajn, rast, zrelost, opadanje.
U fazi radjanja smislja se sistem, u fazi dizajna (najskuplja faza) razvijaju se kroz proof of concept
prototipovi, studija izdrzljivosti (cena proizvoda, prozor na trzistu, zastarelos komponenti) u fazi rasta
pocinje se sa proizvodnjom sistema, u fazi zrelosti embeded sistem se odrzava funkcionalnim, u fazi
opadanja komponente sistema postaju zastarele...

Tipični tok dizajna embeded sistema


Prvo se prolazi kroz funkcionalnost dizajna i razvija se proof of concept prototipovi, podesava se
funkcionalnost sistema kako bi on sto vise odgovarao aplikaciji, potom se radi studija izdrzljivosti koja
uzima u obzir cenu proizvodnje, prozor na trzistu, zastarivost komponenti, da bi odlucila da li ce se
zapoceti sa proizvodnjim sistema ili ne. Dizajn faza je najskuplja faza.

Navesti i ukratko objasniti najvažnija ograničenja prilikom projektovanja embeded sistema


Funkcionalnost - sposobnost sistema da ostvaruje funkciju za koju je projektovan
Cena - količina resursa potrebnih da se osmisli, projektuje, održava i odbaci embeded sistem
Performanse – sposobnost sistema da ostvari svoju funkciju u zadatom vremenu
Veličina – fizički prostor koji zauzima krajnje rešenje
Snaga i energija – zahtevana energija da bi sistem mogao da obavlja svoju funkciju
Vreme razvoja – vreme potrebno da se sistem od trenutka osmišljavanja ponudi na tržištu
Pouzdanost– sposobnost sistema da ostane funkcionalan u zahtevanom vremenskom intervalu

Ograničenje u pogledu željene fukncionalnosti


Od svakog embeded sistema se očekuje da ima funkcionalnost koja rešava problem za koji je
projektovan
Funkcionalna verifikacija oduzima 70% vremena koje stoji na raspolaganju za razvoj sistema.
Najcesce metode funkcionalne verifikacije:
Bihevijalna simulacija (Sistem se opisuje na nivou ponasanja, a zatim se uz pomoc odgovarajucih
alata simuloira ponasanje sistema)
Simulacija procesora (Koristi programe za simulaciju procesora koji se koristi u sistemu. Ovo je
korisno zato sto nam ne treba gotov hardver da bi probari softver)
JTAG debagere (Unutrasnji pristup delovima digitalnih elektronskih kola pomocu test porta)
Hardverske emulatore (Isto kao simulacija procesora samo za hardver)

Ograničenje u pogledu cene


Razvoj embeded sistema je vrlo skup proces
Ukupna cena proizvodnje CT, V jedinica embeded sistema, NRE jednokratne troskove, RP varijabilne
troskove.
CT = NRE+(RP V) ⋅
Jednokratni troškovi proizvodnje obuhvataju sve troškove koji su vezani za proces projektovanja i
testiranja embeded sistema (Istraživanje, planiranje, projektovanje hardvera i softvera i njihova
integracija, verifikacija, testiranje prototipova, planiranje proizvodnje, dokumentovanje dizajna)
Varijabilni troskovi obuhvataju troskove koji se odnose za pravljenje jedne jedinice embeded sistema
(cena komponenti, ploca, kucista itd)
NRE troskovi mogu biti u milionima evra, RP mogu biti reda nekoliko evra. Cena
po jedinici, UC. UC = CT/V = NRE/V + RP
Ograničenje u pogledu performansi
Performanse sistema najčešće se odnose na sposobnost sistema da obavi svoju funkcionalnost u
predviđenom intervalu vremena.
Hardverski faktori koji utiču na performanse sistema su:
- Učestanost sistemskog kloka
- Mikroarhitektura procesora
- Kašnjenje individualnih komponenti
- Komunikacioni protokoli
- Modovi sa niskom potrošnjom
Bitna stvar koju treba zapamtiti je da je velika brzina skupa; što je veća brzina harvera to je on skuplji i
njegova potrošnja je veća

Ograničenje u pogledu potrošnje


Potrošnja u embeded sistemima postala je jedno od glavnih ograničenja, ne samo u prenosivim,
baterijski napajanim sistemima. Prosecna potrosnja je brzina kojom sistem trosi el en.
Kod baterijskih napajanja ovo je jako vazno!
Pored zivota baterije potrosnja utice i na:
Pouzdanost, Potreba za hlađenjem , Način projektovanja sistema za napajanje
Minimizacija potrosnje se moze postici: Odgovarajućim projektovanjem hardvera (koriscenjem
hardvera niske potrosnje (CPU koji ima standby, sleep mode npr)) Odgovarajućim
projektovanjem softvera

Ograničenje u pogledu vremena razvoja


Vreme razvoja (Time to Market) definiše se kao vreme koje je potrebno da se novi embeded sistem od
faze koncepta dovede to faze u kojoj je spreman da se ponudi na tržištu
Prozor na tržištu definiše se kao maksimalno vreme tokom kojeg se neki proizvod može uspešno
prodavati na tržištu

Ograničenje u pogledu pouzdanosti sistema


Pouzdanost sistema može se definisati kao njegova sposobnost da garantuje korektnu funkcionalnost u
nekom unapred definisanom intervalu vremena
Pouzdanost sistema mora da obezbedi nacine da sistem moze da ostvari 4 osnovne stvari:
Korektivne akcije – da bi se omogućila popravka kvarova koji su detektovani u sistemu
Adaptivne akcije – koje omogućavaju uvođenje funkcionalnih modifikacija koje obezbeđuju da sistem
funkcioniše i u promenljivim sredinama
Unapređujuće akcije – koje dozvoljavaju dodavanje poboljšanja sistema kao rezultat koje dozvoljavaju
dodavanje poboljšanja sistema kao rezultat novih propisa i zahteva
Preventivne akcije – koje predviđaju i sprečavaju pojavu uslova koji bi mogli narušiti normalno
funkcionisanje sistema

Osnovna arhitektura mikroračunarskog sistema


Sastoji se od: CPU, Sistemske memorije, ulazno/izlaznog interfejsa
Objasniti glavne razlike između mikroprocesora i miktrokontrolera
Mikroprocesor je integrisano kolo koje u sebi ima samo CPU. (core2duo, i7)
Mikrokontroler je integrisano kolo koje u sebi ima i CPU i sistemsku memoriju, i ostale periferije
integrisane na jednom cipu (ATMEL, Microchip)

Centralna procesirajuća jedinica - navesti glavne komponente i ukratko ih objasniti


Predstavlja “srce” svakog embeded sistema.
Glavne komponente:
Hardverske komponente:
– Aritmetičko logička jedinica (ALU)
– Upravljačka jedinica (CU)
– Skup registara
– Logiku za implementiranje sprežnog interfejsa (BIL) Softverske komponente: – Skup
instrukcija
– Modove adresiranja

Upravljačka jedinica
Upravljačka jedinica (CU) upravlja radom CPU
Ona je realizovana kao konačni automat koji neprekidno prolazi kroz sledeći skup stanja:
1. Fazu prihvatanja instrukcije (instruction fetch, IF)
2. Fazu dekodovanja instrukcije (instruction decode, ID)
3. Fazu izvršavanja instrukcije (instruction execute, IE)
Ove tri stvari se nazivaju ciklusom instrukcije ili CPU ciklus i traje nekoliko taktova u zavisnosi od tipa
instrukcije

Aritmetičko-logička jedinica
Aritmetičko logička jedinica (ALU) je CPU komponenta u kojoj se obavljaju sve aritmetičke i logičke
operacije koje sistem mora da podržava. Osnovne aritmetičke operacije uključuju sabiranje,
oduzimanje, komplementiranje i podržane su od strane većine ALU jedinica. Logičke operacije koje
ALU jedinica može da izvede uključuju bitske I, ILI, NE i XOR operacije, kao i operacije pomeranja i
rotiranja sadržaja registra. Širina ulaznih operanada ALU jedinice obično se koristi za iskazivanje
računske moći posmatranog procesora: 8-bitna, 16-bitna, 32-bitna, 64-bitna.

Logika za implementaciju sprežnog interfejsa


BIL modul obezbeđuje nesmetani tok instrukcija i podataka od i ka procesoru, on koordinira
interakcijom između unutrašnjih magistrala procesora i sistemskih magistrala, određuje način na koji
rade adresna, kontrolna i magistrala podataka rade.

Unutrašnji registri procesora. Navesti i objasniti najvažnije unutrašnje registre. Unutrašnji registri
procesora obezbeđuju privremeni smeštaj za podatke, adrese i upravljačke informacije, najbrze su
memorijske jedinice u embeded sistemu ali su i malog kapaciteta i sadrzaj im se brise prilikom gubitka
napajanja.
Postoje dve grupe unutrasnjih registara: Registri opšte namene (GPR): (nemaju specificnu funkciju
unutar procesora, koriste se za cuvanje podataka, vrednosti promenljivih, adresa itd. U zavisnosti od
arhitekture moze da ih bude od 1 do nekoliko desetina.
Registri posebne namene (SFR): Imaju specificno definisanu namenu. Registar instrukcija IR,
programski brojac PC, pokazivac steka SP, statusni registar SR.
Napredne arhitekture procesora - procesori sa protočnom obradom
Osnovna arhitektura procesora koju smo do sada razmatrali bazira se na sekvencijalnom izvršavanju
CPU ciklusa, koji se sastoji iz tri faze: faze prihvata (F), faze dekodovanja (D) i faze izvršavanja (E).
Uvođenjem protočne obrade (pipelining) moguće je izvršavanje većeg broja instrukcija istovremeno,
izvršavanje individualnih instrukcija je preklopljeno, tako što se svaka instrukcija nalazi u drugoj fazi
izvršavanja. Ovakav način izvršavanja, pod idealnim uslovima, koji podrazumevaju uvek pun lanac
obrade (pipeline), omogućava da se u svakom taktu kompletira izvršavanje jedne instrukcije. Procesor
sa N faza protocne obrade u idealnom slucaju ce biti N puta brzi.

Napredne arhitekture procesora - superskalarni procesori


Kod superskalarnih procesora postoji barem dva lanca protočne obrade.
Teoretski, superskalarni procesor sa K lanaca protočne obrade, od kojih se svaki sastoji od N faza
obrade u stanju je da K N puta brže izvršava instrukcije od obi čnog procesora. ⋅ Međutim, u praksi se
vrlo retko sre ću programi kod kojih je u svakom trenutku mogu će u paraleli izvršiti K instrukcija zato
sto za izvrsavanje jedne instrukcije potrebne su informacije od izvrsavanje druge.

Napredne arhitekture procesora - višejezgarni procesori


Danas je moguće na jednom integrisanom kolu fabrikovati više od jednog procesora. Ubrzanje rada
sistema ovog puta se ostvaruje paralelnim izvršavanjem nekoliko slabo zavisnih programa.

Skup instrukcija - dužina i format instrukcija


Skup instrukcija CPU, (ISA, Instruction Set Architecture), predstavlja deo arhitekture mikroprocesora
koji se odnosi na način njegovog programiranja.
Instrukcije fiksne dužine se vrlo lako zahvataju iz memorije i dekoduju (najčešće u jednom ciklusu), što
olakšava uvođenje protočne obrade i korišćenje različitih tehnika paralelizacije.
Instrukcije promenljive dužine po pravilu zahtevaju faze prihvata i dekodovanja koje traju više od
jednog ciklusa, što otežava uvođenje protočne i paralelne obrade ali omogućavaju projektovanje
fleksibilnijeg i kompaktnijeg skupa instrukcija.

Asembler i asemblerske instrukcije


Da bi se izbeglo pisanje programa koristeći mašinske instrukcije, osmišljeni su asemblerski i viši
programski jezici.
Svaki asemblerski jezik se bazira na korišćenju instrukcija i asocirana je tačno jednoj mašinskoj
instrukciji.
Kod se pise u nekom od tekst editora, taj fajl (izvorni fajl) sadrži asemblerske instrukcije kao i čitav niz
asemblerskih direktiva i komentara. Asemblerske direktive se koriste za kontrolu procesa asembliranja i
ne izvršavaju se od strane procesora, one omogucavaju organizaciju memorije, definisanje konstanti,
labela... Izvorni fajl se prosledjuje asebleru, koji taj tekst prevodi u masinske instrukcije generisuci
objektni fajl, taj fajl se salje linkeru koji kombinuje vise objektnih fajlova kako bi generisao izvrsni fajl.

Navesti osnovne tipove instrukcija i ukratko objasniti svaku grupu Osnovni


tipovi instrukcija:
Instrukcije prenosa podataka - služe za prenos podataka sa jedne lokacije (source) u neku drugu
lokaciju (destination).
Aritmetičko-logičke instrukcije - instrukcije namenjene izvođenju aritmetičkih i logičkih operacija nad
podacima
Instrukcije za kontrolu toka izvršavanja programa - omogu ćavaju da se modifikuje podrazumevani tok
izvršavanja programa (bezuslovni skok, uslovni skok (jc, jz), poziv i povratak iz podprograma)
Instrukcije za prenos podataka
Služe za prenos podataka sa jedne lokacije (source) u neku drugu lokaciju (destination), pod lokacijom
podrazumevamo unutrašnje registre procesora, memoriju ili registre koji se nalaze unutar neke od
periferijskih jedinica. Većina instrukcija iz ove grupe zapravo samo kopira podatak koji je smešten u
polaznoj lokaciji u odredišnu, bez brisanja podatka u polaznoj lokaciji osim instrukcije SWAP koja
zamenjuje mesta podacima unutar polazne i krajnje lokacije.
Izvrsavnje ukljucuje i BIL modul (za implementaciju spreznog interfejsa) i neki od registara procesora.
Bitovi unutar statusnog registra se uglavnom modifikuju prilikom prenosa podataka.
Instrukcije koje pripadaju ovoj grupi: move ili load – kopira podatak
sa polazne lokacije u odredišnu
swap – zamenjuje podatke koji se nalaze u polaznoj i odredišnoj lokaciji
Operacije za rad sa stekom: push, pop ili pull
Operacije za rad sa periferijama: in i out

Aritmetičko-logičke instrukcije
Su instrukcije namenjene izvođenju aritmetičkih i logičkih operacija nad podacima. Prilikom
izvršavanja ove grupe instrukcija koriste se unutrašnji registri, aritmetičko-logička jedinica kao i BIL
modul i modifikuju se bitovi unutar statusnog registra.
Kod većine procesora instrukcije iz ove grupe uključuju samo dva operanda, odnosno obično imaju
sledeći format: ciljni_operand ← (ciljni_opreand * polazni_perand) gde je sa * oznacena
aritmeticko-logicka operacija.
Uobicajne operaciju su: +, - , I, ILI, XOR. Mnozenje nije podrzano kod svih aritm log jed.

Instrukcije za kontrolu toka izvršavanja programa


omogućavaju da se modifikuje podrazumevani tok izvršavanja programa, gde adresa naredne
instrukcije uvek neposredno sledi adresu tekuće instrukcije koja se izvršava i ova adresa se automatski
upisuje u programski brojac nakon što se dekoduje teku ća instrukcija.
Postoje 3 tipa instrukcija kontrole toka:
Bezuslovni skok: uvek menja sadržaj programskog broja ča tako da pokazuje na adresu koja je deo same
instrukcije PC ← Nova_adresa
Uslovni skok: sadržaj programskog broja ča će biti promenjen samo ukoliko je odgovarajući uslov
zadovoljen
Poziv i povratak iz podprograma: omogu ćavaju programeru da prenese tok izvršavanja programa ka i
od posebnih delova programa, poznatih pod nazivom podprogrami
Modovi adresiranja
Podrazumevamo različite načine za specifikaciju lokacije na kojoj se nalazi operand potreban za
izvršavanje tekuće operacije.
U opštem slučaju, podatak koji je potrebno koristiti prilikom izvršavanja tekuće instrukcije može biti
smešten na jednom od sledećih mesta: – Može biti neposredno naveden
– Može biti smešten unutar nekog od unutrašnjih registara procesora
– Može biti smešten u nekoj memorijskoj lokaciji
– Može niti smešten u nekom ulazno/izlaznom portu ili registru unutar periferijske jedinice
U slučaju kada se podatak navodi neposredno ili je smešten u nekom od unutrašnjih registara
procesora, svi procesori podržavaju dva adresna moda:
Neposredno adresiranje – sintaksa: #vrednost
Registarsko adresiranje Registarsko adresiranje – sintaksa: Rn

U slučaju kada je podatak smešten u nekoj memorijskoj lokaciji, da bi se “došlo” do njega potrebno je
na neki način specificirati adresu memorijske lokacije:
Apsolutno ili direktno adresiranje – sintaksa: adresa
Indirektno adresiranje – sintaksa: @Rn
Indeksno adresiranje – sintaksa: X(Rn)

RISC i CISC arhitekture procesora. Navesti osnovne razlike, prednosti i mane. Ilustrovati
princip rada jedne i druge grupe na primeru.

Navesti osnovne vrste i funkciju sistemskih magistrala


Procesor pristupa memoriji i ulazno/izlaznim jedinicama pomoću sistemskih magistrala.
Magistrala predstavlja skup linija koje ostvaruju zajedničku funkciju, i svaka linija nosi jedan bit
informacije , a grupa ovih bitova moze da se tretira kao celina.
Sistemske magistrale grupisane su u tri klase:
– Magistralu podataka
– Adresnu magistralu
– Upravljačku magistralu

Magistrala podataka
Skup linija koje prenose podatke ili instrukcije od i ka procesoru naziva se magistrala podataka.
Dve operacije mogu se difinisati za magistralu podataka:
– Operacija čitanja – izvršava se svaki put kada se informacija prenosi ka procesoru
– Operacija upisa – izvršava se svaki put kada podaci prenose od procesora ka memoriji ili
periferijskoj jedinici
Jedan transfer informacija naziva se transakcijom na magistrali podataka.

Adresna magistrala
Svaki registar, bilo da se nalazi unutar memorije ili periferijske jedinice, ima jedinstvenu
identifikacionu oznaku koja se naziva adresa.
Skup linija koje prenose informaciju o adresi registra sa kojim se želi ostvariti komunikacija čine
adresnu magistralu one su unidirekcione i polaze od procesora
Broj linija koje čine adresnu magistralu određuje maksimalnu veličinu adresnog prostora koji dati
procesor može da adresira
Adresna magistrala od m bita može da adresira najviše 2m različitih lokacija
Upravljačka magistrala
Grupiše sve linije koje prenose signale koji upravljaju nekom od aktivnosti unutar sistema. Za razliku
od adresne i magistrale podataka, kod kojih se vrednosi individualnih linija posmatraju kao celina
(adresa, odnosno podatak), signali upravljačke magistrale obično rade i interpretiraju se odvojeno.
Upravljački signali uključuju:
– Signale koji pružaju informaciju o tome da li procesor izvršava operaciju čitanja ili upisa
– Signale koji sinhronizuju prenos podataka, označavajući kada transakcija počinje i završava
– Signale koji pružaju informaciju da li neki od uređaja pristunih u sistemu zahteva servis od strane
procesora
Vecina upravljackih magistrala je unidirekcione, ulaze ili izlaze iz procesora u zavisnosti od namene.
Broj i funkcija upravljacke magistrale zavisi od arhitekture procesora.

Organizacija memorije
Memorijski podsistem služi za smeštanje instrukcija programa kao i podataka koje taj program
obrađuje, sastoje se od velikog broja hardverskih komponenti koje su u stanju da skladiste 1 bit
informacije. Bitovi su organizovani u n bitne reci, koje se tipicno nazivaju registrima ili lokacijama.
Sadržaj svake memorijske lokacije zove se memorijska rec, identifikuje se pomoću jedinstvenog
identifikatora, memorijske adrese koju procesor koristi da bi pristupio zeljenoj memoriskoj lokaciji. U
opštem slu čaju, memorijska jedinica sastoji se iz m memorijskih lokacija (ćelija) veli čine n bita i
oznacava se kao m x n memorija.

Vrste memorija koje se koriste u embeded sistemima Memorije se


klasifikuju prema dva kriterijuma:
• Mogućnost očuvavanja upisanog sadržaja
• Mogućnost upisa u memoriju
Sve memorije omogućavaju čitanje sadržaja iz memorije, u protivnom bi bile beskorisne.
Sa stanovišta očuvanja upisanog sadržaja memorije se dele na:
– Memorije bez gubitka sadržaja (nonvolatile) – sadržaj upisan u memoriju ne gubi se sa
prestankom napajanja
– Memorije sa gubitkom sadržaja (volatile) – sadržaj upisan u memoriju gubi se sa prestankom
napajanja
Sa stanovišta mogućnosti upisa memorije se dele na: –
write/read memorije
– In-system programmable (ISP) memorije
– read only memorije
Mogucnost cuvanja Tip memorije ISP Komentar
Memorija Masked ROM Ne Nije programibalna
bez OTPROM Ne Prog samo 1
gubitka EPROM Ne Izbrisiva i programabilna uz
korišćenje programatora
sadržaja EEPROM Da Spora. Zahteva viši napon prilikom
upisa.
Flash Da Slična EEPROM memoriji

FRAM Da Brz upis u memoriju uz korišćenje


niskih napona napajanja
Memorija sa SRAM Da Najbrza sto se tice citanja/upisa
gubitkom
sadržaja DRAM Da Brzi upis/čitanje, ali ne kao kod
SRAM-a
Programska i memorija podataka
Unutar mikroračunarskog sistema razlikuju se dve vrste memorije u zavisnosti od tipa informacije koja
se u njima smešta:
– Programska memorija (deo memorije u kojem se smeštaju programi koje procesor izvršava
)
– Memorija podataka (za podatke koje se ocekuje da ce se promeniti tokom izvrsenja
programa ) Pod programom podrazumevamo logičku sekvencu instrukcija koja opisuje željenu
funkcionalnost sistema. U embeded sistemima programi su obično nepromenljivi i moraju uvek biti
dostupni procesoru da bi čitav sistem radi ispravno, cak i kada se isključi napajanje sistema pa zatim
ponovo uključi programi moraju i dalje biti dostupni kako bi sistem mogao ispravno funkcionisati.
Zbog toga program se smesta u ROM memoriju. Kapacitet programske memorije se izrazava u
kilobajtovima.
Memorija podataka mora da omogući laku i jednostavnu izmenu svog sadržaja, pa se obi čno realizuje
kao RAM memorija, realizuje se kao memorija sa gubitkom sadrzaja kapaciteta su nekoliko 100 bajt.

Von Neumann i Harvard arhitekture


Programska i memorija podataka mogu da dele sistemske magistrale ili ne, u zavisnosti od arhitekture
procesora.
U zavisnosti od toga da li programska i memorija podataka dele ili ne dele sistemske magistrale svi
mikrora čunarski sistemi mogu se podeliti u dve velike grupe:
• von Neumann - kod kojih se i programskoj i memoriji za podatke pristupa preko jedne
zajedničke grupe sistemskih magistrala.
• Harvard - kod koji postoje dve odvojene grupe sistemskih magistrala za pristu programskoj i
memoriji podataka.

Povezivanje procesora i memorije. Ilustrovati način povezivanja na jednom primeru. Portovi


RAM memorije mogu se podeliti u tri grupe:
– Ulazno/izlazni portovi za podatke (Q0, Q1, …)
– Adresni portovi (A0, A1, …)
– Kontrolni portovi (CS, ReadEnable, WriteEnable)
Magistrala podataka procesora povezuje se na ulazno/izlazne portove za podatke memorije. Unutar
memorije ulazno/izlazni portovi za podatke vezani su na tri-stejt bafere koji dozvoljavaju kontrolu
smera toka podataka (upis ili čitanje) a takođe obezbeđuju mogućnost odlaska u stanje visoke
impedanse u slučaju kada RAM memorija nije aktivirana. Adresa memorijske lokacije formira se kao
kombinacija dva dela:
– Bazne adrese koja aktivira memoriju, preko CS porta
– Ofset adrese koja selektuje odgovaraju ću memorijsku lokaciju unutar memorije

Memorijska mapa embeded sistema


Memorijska mapa predstavlja model načina koriš ćenja raspoloživog adresnog prostora unutar
mikroprocesorskog sistema i vrlo je vazan podatak pri biranju procesora.
U memorijskoj mapi navedeni su blokovi adresa koji su adresirani različitim periferijskim jedinicama
prisutnim unutar embeded sistema.
Mogu biti:
• globalne (prikazuje strukturu čitavog adresnog prostora )
• parcijalne (pruža detalje o samo jednom delu adresnog prostora )
Organizacija ulazno/izlaznog podsistema
Ulazno/izlazni podsistem sastoji se iz svih periferijskih uređaja povezanih na sistemske magistrale,
izuzimajući centralnih procesor i memorije.
Ulazna transakcija prenosi informacije ka procesoru od periferije, čineći tu periferiju ulaznom
periferijskom jedinicom. (prekidaci, tasteri...)
Izlazna transakcija prenosi podatke od procesora ka periferiji, čineći je izlaznom periferijskom
jedinicom.(led, zvucnik, displej...)
Ulazno izlazni (serijski port, paralelni port...)
Periferijski uređaji koji se naj češće sreću u embeded sistemima su:
• Tajmeri – ove periferijske jedinice mogu se programirati za merenje proteklog vremena
• Watchdog tajmer (WDT) - ima posebnu namenu, obezbeđivanje pouzdanog rada embeded
sistema.
• Komunikacioni interfejsi – koriste se za razmenu informacija između embeded sistema i nekog
drugog uređaja ili sistema.
• Analogno/digitalni konvertori (ADC) – koristi se za konverziju analognih signala u odgovaraju
će digitalne
• Digitalno/analogni konvertori (DAC) – koristi se za konverziju digitalnih signala u odgovaraju će
analogne signale.

I/O mapirane i memorijski mapirane periferijske jedinice


Standard I/O ili I/O-mapped I/O, zahteva posebne instrukcije i kontrolne signale koji signaliziraju da li
je trenutna adresa “namenjena” memoriji ili I/O podsistemu.
Alternativa gornjem pristupu je da se I/O uređaji uključe unutar postojećeg adresnog prostora za
memoriju, obzirom da se I/O registri mogu posmatrati kao neke dodatne memorijske lokacije i taj
pristup se zove Memory-mapped I/O i danas predstavlja dominatnu šemu povezivanja I/O uređaja u
savremenim embeded sistemima.

Anatomija I/O interfejsa. Navesti primer jednog realnog interfejsa.


I/O interfejs sastoji se iz:
– Linija koje se povezuju na adresnu, kontrolnu i magistralu podataka procesora
– Linija koje se povezuju sa I/O uređajem
– Skupa unutrašnjih registara
U većini I/O interfejsa mogu se pronaći tri tipa unutrašnjih registara:
– Kontrolni registri – omogućavaju konfigurisanje I/O uređaja ali i samog interfejsa. Može
postojati jedan ili više ovakvih registara. Često imaju naziv Mode Register ili Configuration
Register.
– Statusni registri – omogućavaju uvid u trenutni status I/O uređaja i interfejsa. Posebna polja
unutar ovih registara prenose informaciju o specifičnom statusu, kao što je na primer spremnost
uređaja na prihvat novih komandi ili signalizacija greške prilikom izvršavanja poslednje
komande
– Registri podataka – omogućavaju prenos podataka između procesora i I/O uređaja. Unidirekcioni
I/O uređaji mogu imati samo jedan registar podataka (Data-in za ulazne periferije, Data-out za
izlazne periferije). Bidirekcioni I/O uređaji po pravilu uključuju oba tipa registara podataka.
Paralelni i serijski I/O interfejsi. Prednosti i mane svakog tipa.
Pod paralelnim interfejsom podrazumevamo interfejs preko kojega se čitava digitalna reč prenosi
istovremeno, zahtevajući po jedan signal za svaki bit.
Povezivanje procesora i periferijskih jedinica koje nisu na istom integrisanom kolu može se izvesti na
dva na čina:
– Korišćenjem paralelnog interfejsa (paralelni I/O portovi)
– Korišćenjem serijskog interfejsa (serijski I/O portovi)
Podaci se preko serijskog interfejsa prenose bit po bit, zahtevajući samo jedan signal za prenos
podataka. Najpoznatiji serijski interfejs je RS232.
Prednost serijskog interfejsa:
• Niska cena realizacije (trebaju samo dve linije, linija za podatke i liniju za masu)
• Mnogo veca brzina prenosa
Prednosti i mane paralelnog interfejsa:
• Prednost. U ranim mikroracunarima je na malim rastojanjima bilo bolje koristiti paralelni
interfejs
• Mana. Vise kosta zbog vise linija.
• Mana. Ako su velike brzine prenosa, dolazi do interferencije susednih linija.
• Mana. Komplikovano je osigurati istovremeni dolazak razlicitih signala koji cine paralelni
interfejs u slucaju brzih konekcija.

Sinhronizacija procesora i I/O uređaja


Ostvaruje se preko Ready signala na dva na čina:
– Korišćenjem metode prozivke (polling) - procesor periodično “proziva” I/O uređaje kako bi
utvrdio koji od njih je spreman ili zahteva novu transakcij u
– Korišćenjem metode prekida (interrupt) - procesor komunicira sa I/O uređajem samo ukoliko je
on “zatražio” komunikaciju

Servisiranje zahteva periferijskih jedinica. Navesti i ukratko objasniti dva osnovna pristupa.
Ukoliko se javi potreba za servisiranjem periferija od strane procesora, izvršavanje programa se mora
prekinuti i programska kontrola se mora preneti na poseban blok instrukcija koji je napisan na takav
način da na efikasan način može opsluži posmatranu periferijsku jedinicu.
Postoje dva pristupa:
– Servisiranje bazirano na prozivkama - procesor neprekidno “ispituje” ili “proziva” status
periferijske jedinice kako bi utvrdio da li ona zahteva servisiranje
– Servisiranje bazirano na prekidima - svaka periferijska jedinica koristi poseban signal da
signalizira procesoru kada ima potrebu da bude servisirana (zahtev za prekidom ili interrup
request)

Servisiranje bazirano na prozivkama


Procesor neprekidno “ispituje” ili “proziva” status periferijske jedinice kako bi utvrdio da li ona zahteva
servisiranje, i kada utvrdi da periferijska jedinica zahteva servisiranje, procesor preduzima potrebne
korake. Primer telefona koji nema ni vibraciju ni zvuk nego moramo periodicno da proverimo da li nas
neko zove i kada zavrsimo razgovor moramo da spustimo slusalicu. Sekvenca ove provere:
(podizanje slusalice, prinosneje uvetu, proveriti da li je neko na linii)
Servisiranje bazirano na prekidima
Svaka periferijska jedinica koristi poseban signal da signalizira procesoru kada ima potrebu da bude
servisirana, i taj signal se zove zahtev za prekid ili interrupt request
Procesor može biti zauzet obavljanjem nekih drugih aktivnosti, ili može biti u režimu spavanja, me
đutim kada stigne neki od zahteva za prekidom, ukoliko su oni dozvoljeni, procesor će obustaviti
aktivnost koju je trenutno izvodio kako bi se posvetio obradi prekidnog zahteva, izvršavajući specifičan
blok instrukcija.
Blok instrukcija koje izvrsava naziva se prekidni potprogram (interrupt service routine ISR) Primer
sa telefonom, imamo zvono i znamo kada treba da se javimo :)

Vrste prekida
• Maskirajuće prekide – ovi prekidi se mogu zabraniti (maskirati) od strane programera. Način
maskiranja varira od procesora do procesora. Na ovaj način moguće je kontrolisati koji izvori
prekida mogu prekinuti procesor u datom trenutku.
• Nemaskirajuće prekide – ovi prekidi ne mogu biti zabranjeni od strane programera i svaki put
kada se generiše neki prekid ovog tipa procesor će zaustaviti izvršavanje tekuće akcije i preći na
opsluživanje prekida. Ovi prekidi su obično rezervisani za signalizaciju kritičnih događaja u
sistemu koji se moraju opslužiti odmah.

Anatomija obrade zahteva za prekidom


U trenutku kada se pojavi zahtev za prekid, izvrsavaju se ove akcije:
1. Procesor prvo završava tekuću instrukciju čije je izvršavanje bilo u toku kada je stigao zahtev za
prekidom. Procesor nikada ne skraćuje izvršavanje tekuće instrukcije. Zahtevi za prekidom uvek
se obrađuju između instrukcija.
2. Procesor smešta teku ću vrednost programskog brojača (PC) i u većini procesora tekuću vrednost
statusnog registra (SR) na stek.
3. Procesor zabranjuje pojavu novih zahteva za prekidom dok se obrađuje tekući zahtev za
prekidom.
4. Procesor smešta adresu prve instrukcije prekidnog podprograma asociranog tekućem zahtevu za
prekidom u programski brojač. Na ovaj način se kontrola izvršavanja programa prenosi na prvu
instrukciju prekidnog podprograma.
5. Procesor izvršava sve instrukcije prekidnog podprograma.
6. Procesor vraća vrednost programskog broja a vrednost programskog brojača, statusnog registra, i
eventualno još nekih registara, na vrednosti koje su bile sačuvane na steku u koraku 2.
NASTAVLJA se izvrsavanje na mestu gde je prekinuto zahtevom za prekid.

You might also like