ARM7 PROCESOR - PowerPoint PPT Presentation

About This Presentation
Title:

ARM7 PROCESOR

Description:

Title: PowerPoint Presentation Last modified by: Boki i Mica Created Date: 1/1/1601 12:00:00 AM Document presentation format: On-screen Show Other titles – PowerPoint PPT presentation

Number of Views:415
Avg rating:3.0/5.0
Slides: 119
Provided by: esElfakN6
Category:
Tags: procesor | arm7

less

Transcript and Presenter's Notes

Title: ARM7 PROCESOR


1
ARM7 PROCESOR
Mladenovic Aleksandar
Pavlovic Bojan
Dejkovic Davor
Milenkovic Miloš
2
Arhitektura ARM procesora
  • Student Aleksandar
    Mladenovic
  • Broj indeksa 10017

3
Arhitektura ARM procesora
  • U vreme kada se pojavio ARM cip, jedino
    raspoložive RISC arhitekture su bile RISC I
    razvijen na Berkeley-u i MIPS na Stanfordu. ARM
    arhitektura je prihvatila brojne osobine RISC I
    dizajna, ali je brojne odbacila. One koje su se i
    dalje koristile su bile
  • Napuni - smesti arhitektura (load-store)
  • 32-bitni fiksni format instrukcija
  • Tro-adresni format instrukcija
  • Osobine koje je ARM odbacio, a bile su korišcene
    na RISC I arhitekturi su
  • Rad sa registarskim prozorima
  • Odloženo grananje
  • Izvršenje svih instrukcija u jednom ciklusu

4
Registri ARM7 procesora Skup instrukcija
jednog procesora definiše operacije koje
programer koristi da promeni stanje sistema.
Stanje cine vrednosti podataka koji se cuvaju u
vidljivim registrima procesora i u sistemskoj
memoriji. Svaka instrukcija izvršava definisanu
transformaciju procesora iz stanja koje je bilo
pre instrukcije, u stanje po njenom okoncanju.
Promena stanja se odnosi samo na programsko
vidljive, a ne nevidljive registre.To znaci da su
bitne samo vrednosti koje se cuvaju u vidljivim
registrima.
Slika 1. Vidljivi registri ARM7 procesora
5
  • Statusni registar tekuceg programa (CPSR) se
    koristi za cuvanje statusnih markera. Ovi markeri
    se postavljaju nakon izvršenja aritmeticko-logicki
    h operacija. Sadržaj ovih bitova definiše režim
    rada procesora,nacin prihvatanja prekida i stanje
    nakon izvršenja operacija.
  • Registri R0 do R12 su registri opšte namene, R13
    se koristi kao pokazivac magacina, R14 kao
    registar za povezivanje podprograma, a R15 kao
    programski brojac.

ARM je arhitektura tipa Load - Store. To
znaci da sve aritmeticko-logicke instrukcije
manipulišu nad sadržajem registara, a jedine dve
instrukcije pomocu kojih se vrši obracanje
memoriji su operacije Load i Store. Pomocu Load
se dobavlja podatak iz memorije u registar, a
pomocu Store sadržaj registra se smešta u
memoriju.
6
  • Sve ARM instrukcije su 32-bitne.
  • Najznacajnije osobine skupa instrukcija ARM
    procesora su sledece
  • ucitaj-smesti arhitektura.
  • 3-adresne instrukcije za obradu podataka.
  • uslovno izvršenje svake od instrukcija.
  • ukljucenje vrlo jakih višestrukih ucitaj-smesti
    instrukcija registara
  • mogucnost da se izvedu opšte operacije pomeranja
    kao i opšte aritmeticko-logicke operacije u
    jednoj instrukciji, koja se izvršava u jednom
    taktnom ciklusu.
  • proširenje na otvoreni skup instrukcija preko
    skupa instrukcija koprocesora, što ukljucuje i
    dodavanje novih registara i tipova podataka
    programerskom modelu.
  • 16-bitna predstava skupa instrukcija velike
    gustine u Thumb arhitekturi.

7
Razvojni alati ARM-a
  • Pošto se ARM koristi kao embedded kontroler kod
    kojih ciljni hardver nije projektovan da
    predstavlja podlogu za razvoj softvera, ovi alati
    su namenjeni za razvoj drugih arhitektura kakve
    su platforme PC-a na kojima se izvršavaju Windows
    programi ili radne stanice koje rade pod UNIX-om.
  • Struktura razvojnog sredstva ARM je prikazana na
    slici2. C-ovi ili izvorni asemblerski fajlovi se
    kompajliraju ili asembliraju u ARM objektni
    format (.aof), koji se nakon toga povezuju u
    ARM-ov fajl format (aif.).
  • Na osnovu formatovih fajlova kreiraju se tabele
    za otklanjanje grešaka u programu uz pomoc
    AMR-ovog simbolickog debuggera (ARMsd koji može
    da napuni, izvrši i debagira programe bilo na
    hardveru kakav je ARM Development Board ili
    koristeci softversku emulaciju pomocu ARMulatora)
    .

8
  • ARM-ov C kompajler je kompatibilan sa ANSI
    standardom za C i podržan je od strane
    odgovarajucih biblioteka standardnih funkcija.
  • Kompajler koristi ARM standard za poziv
    procedure za sve spoljašnje dostupne funkcije.
  • Može mu se narediti da generiše asemblerski
    izvorni izlazni kod umesto ARM-ovog objektnog
    formata tako da kod može biti ispitan, ili cak i
    optimizovan, pa zatim dat na asembliranje.
  • Kompajleru se može pridružiti i Thumb kod.

Slika 2 Struktura ARM C kompajlera
9
  • ARM asembler je pravi makro asembler koji
    proizvodi ARM objektni izlazni format koji se
    može linkovati sa izlazom iz C kompajlera.
  • Linker prihvata jedan ili više objektnih
    fajlova i kombinuje ih u izvršivi program. On
    rešava simbolicka referenciranja izmedu objektnih
    fajlova i poziva objektne module iz biblioteka po
    potrebi programa. Može asemblirati razlicite
    komponente programa na veci broj razlicitih
    nacina, zavisno od toga da li se program izvršava
    u RAM ili ROM memoriji, da li je potrebno
    preklapanje ,itd.
  • ARM simbolicki debuger je ulazni interfejs
    koji pomaže pri debugovanju programa koji se ili
    emuliraju (u ARMulatoru) ili izvršavaju na nekom
    ciljnom sistemu. Primer takvog hardvera je
    razvojna ploca. Sistem mora podržavati
    odgovarajuce protokole za debugovanje bilo preko
    serijske linije za prenos podataka ili preko JTAG
    test interfejsa.
  • ARMulator (ARM emulator) je programski paket
    koji modelira ponašanje razlicitih jezgra ARM
    procesora na softverski nacin na nekom drugom
    racunaru. Može raditi sa razlicitim nivoima
    preciznosti.

10
Organizacija i implementacija ARM-a
  • Organizacija jezgra ARM
    procesora ARM6 i ARM7 se jako malo promenila u
    odnosu na prve 3-mikronske procesore u
    tehnologiji razvijene u Acorn-u izmedu 1983. i
    1985. Tro-stepeni protocni sistem (pipeline) koji
    su ovi procesori koristili je postepeno
    usavršavan, a tehnologija CMOS procesa je znatno
    smanjila velicinu cipova, pa su se performanse
    ovih jezgara drasticno povecale.
  • U datom trenutku, moguce je da
    se izvršavaju 3 instrukcije, od kojih se svaka
    nalazi na razlicitom stepenu. Kada procesor
    izvodi jednostavne instrukcije za obradu
    podataka, protocni sistem (pipeline) omogucava da
    se po jedna instrukcija izvrši u svakom taktnom
    ciklusu. Jednoj instrukciji je potrebno tri
    taktna ciklusa da bi se izvršila, tako da ona ima
    kašnjenje od tri ciklusa. Stvarni propusni opseg
    je ipak jedna instrukcija po ciklusu.
  • Od 1995. se pojavilo još par
    novih ARM jezgara koja su imala daleko bolje
    performanse zbog uvodenja peto-stepene protocne
    obrade kao i zasebnih memorija za instrukcije i
    podatke obicno u formi razdvojenih keš memorija
    medusobno povezanih preko jedinstvene memorije za
    instrukcije i podatke.

11
Tro-stepena protocna ARM organizacija
  • ARM procesori do verzije ARM7 koriste tro-stepenu
    protocnu obradu kod koje se identifikuju sledeci
    stepeni
  • Fetch (pribavljanje)-instrukcija se pribavlja iz
    memorije i smešta u instrukcioni protocni system
  • Decode (dekodiranje)- vrši se dekodiranje
    instrukcije a upravljacki signali staze podataka
    se pripremaju za naredni ciklus
  • Execute (izvršenje)- instrukcija se izvršava od
    strane staze podataka, citaju se sadržaji
    registarske banke, pomera se operant,rezultat
    koji generiše ALU se upisuje u odredišni registar.

Slika 3 Tro-stepena protocna obrada
12
  • Osnovne komponente ARM-a su
  • Registarska banka - koristi se za cuvanje stanja
    procesora. Banka ima dva porta za citanje i jedan
    port za upis. Portovi se mogu koristiti za
    pristup bilo kom registru. Postoji i dodatni port
    za citanje i port za upis kojima se pristupa
    registru R15, programskom brojacu. Dodatni port
    za upis u R15 omogucava njegovo ažuriranje nakon
    što se pribavljena instrukcija adrese
    inkrementira, dok port za citanje obezbeduje da
    se nastavi sa fazom pribavljanja nakon što je
    adresa izdata.
  • Barrel pomerac - može da pomera ili rotira bilo
    koji operant proizvoljan broj bit pozicija.
  • Aritmeticko-logicka jedinica (ALU) - obavlja
    aritmeticke i logicke funkcije iz repertoara
    skupa naredbi.
  • Adresni registar i inkrementer - selektuje i cuva
    sve memorijske adrese i generiše sekvencijalne
    adrese kada je to potrebno.
  • Registri podataka - cuvaju podatke koji se
    prenose ili dobavljaju iz memorije.
  • Dekoder instrukcija i upravljacka logika.

13
Peto-stepeni ARM processor
  • ARM procesori se realizuju i kao
    petostepeno protocni. Kod ovih procesora postoje
    sledeci stepeni
  • Fetch
  • Decode
  • Execute
  • Buffer/data- pristupa se memoriji za podatke
    kada se to zahteva od strane instrukcije. Inace
    ALU rezultat se baferuje i prosleduje se i
    sledecem stepenu taktnog ciklusa.
  • Write-back- rezultati generisani od strane
    instrukcije upisuju se u registarsko polje
    ukljucujuci i podatke koji se dobavljaju iz
    memorije.
  • Ovakav petostepeni protocni sistem
    korišcen je od strane velikog broja RISC
    procesora i predstavlja klasicno rešenje za
    ovakav tip procesora.

Slika 4. Struktura peto-stepenog jezgra ARM-a
14
ARM jezgra procesora
  • ARM7TDMI
  • ARM7TDMI ima jezgra sa naslabijim
    performansama. Koristi se kod velikog broja
    aplikacijama a tipicna je ona koja se koristi za
    mobilni digitalni telefon.
  • Jezgro procesora cini ARM integer
    jezgro koje koristi 3 protocna stepena sa
    sledecim proširenjima
  • primenjuje i izvršava ARM arhitekturu verzije 4T
    sa podrškom koja podržava 64-bitne rezultate
    množenja, operacija Load i Store tipa polurec i
    jedan bajt, kao i skup instrukcija Thumb.
  • Sadrži EMbeddedICE modul koji podržava
    otklanjanje grešaka u programu kod ambedet
    sistema

15
Slika 5. Organizacija procesora ARMI7TDMI
Kod otklanjanja grešaka u hardveru
pristup procesoru se ostvaruje preko JTAG porta
za pristup, pri cemu je JTAG logika sastavni deo
procesora.
16
Hardverski interfejs
Jako veliki broj signala može dovesti do
pogrešnog zakljucka jer se njima pretpostavlja
složeno ponašanje koje se nadovezuje na suštinsku
jednostavnost bazicnog ARM interfejsa.
Medu signalima interfejsa dominiraju signali sa
magistrala podataka i adresa, tako da ce
jednostavni memorijski interfejs koristiti ove
signale kao i par kontrolnih signala.
Ostali signali su namenjeni nekim drugim
funkcijama poput debug-ovanja na cipu, JTAG
boundary scan-u, i nekim drugim.
Slika 6 Signali ARM7TDMI hardverskog interfejsa
17
Signali interfejsa prikazani su u grupama
po funkcijama, i uloga svake grupe je opisana
sa odgovarajucim informacijama o pojedinacnim
signalima.
  • Kontrola takta -Sve promene stanja unutar
    procesora se kontrolišu memorijskim taktom, mclk.
    Iako se ovim taktom može upravljati eksterno i
    time naciniti da procesor ceka na pristup,
    jednostavnije je imati samostalan takt i
    koristiti signal za preskakanje taktnih ciklusa.
  • Memorijski interfejs - Memorijski interfejs
    obuhvata 32-bitnu adresu (A(310)), dvosmernu
    magistralu podataka (D(310)), posebne magistrale
    za prijem i slanje podataka (Dout(310)) i
    (Din(310)), kao i deset kontrolnih signala.
  • MMU interfejs - Interfejs signali ka MMU
    daju informacije koje se koriste za kontrolu
    pristupa odredenim oblastima memorije. Signal
    ukazuje da li se procesor nalazi u korisnickom
    (0) ili u povlašcenom (1) nacinu rada, tako da
    se nekim oblastima memorije ne može pristupiti.

18
Stanje - Tbit izlaz daje informaciju okruženju o
tome da li procesor trenutno izvršava ARM ili
Thumb instrukcije.Konfiguracija - bigend menja
red bitova izmedu Little- i Big-endian. Ovaj ulaz
konfiguriše nacin na koji procesor radi i ne
ocekuje se od njega da se dinamicki menja, iako
se po potrebi može menjati tokom faze takta
2.Prekidi - Dva ulaza za prekide mogu biti
asinhrona u odnosu na takt procesora jer prolaze
kroz leceve za sinhronizaciju pre ulaska u
kontrolnu logiku procesora. Brzi zahtev za prekid
ima veci prioritet od normalnog zahteva za
prekid.Inicijalizacija - reset startuje
procesor iz poznatog stanja kada izvršavanje
pocinje sa adrese 0000000016. ARM7TDMI jezgro
signalizira kada je u ciklusu zapisivanja pomocu
signala . Tamo gde je eksterna magistrala
podataka dvosmerna, enout se koristi za
omogucavanje pristupa signalu dout (310) na
magistralu. Ponekad je poželjno odložiti
operaciju zapisivanja kako bi drugi uredaji mogli
koristiti magistralu. Ostali signali za
kontrolumagistrala su , enin , enout , abe, ale,
tbe, busen, highz, busdis, i ecapclk i izvode
razlicite operacije.
19
Podrška za debugovanje - Ugradeni ICE modul
sadrži tacke prekida registre za posmatranje
stanja koji omogucavaju kodu da se zaustavi kako
bi se izvršilo debug-ovanje. Ove registre
kontroliše JTAG test port korišcenjem lanca za
skeniranje. Kada se dode do tacke prekida ili
pregleda stanja, procesor se zaustavlja i prelazi
u stanje debug-ovanja. U tom stanju se mogu
ispitivati vrednosti registra procesora.
Vrednosti registara ce biti prosledene na
magistralu podataka odakle mogu biti uzorkovane i
ponovo pomerene.
Interfejs za debug-ovanje - Interfejs za
debug-ovanje povecava funkcionalnost koju daje
integrisana ugradena ICE makro celija tako što
dozvoljava da se spoljašnji hardver poveže zbog
debug-ovanja (putem dbgen), i dozvoljava
asinhroni zahtev za debug-ovanjem (preko dbgrq)
ili zahtev sinhronizovan sa instrukcijom
(breakpt). Spoljašnji hardver se obaveštava o
debug stanju procesora putem dgback signala.
Interni signal za debug-ovanje se vodi na dbrqi.
Interfejs koprocesora - Dodatni signal koji daje
koprocesor je koji pokazuje da li ce se u
memorijskom pristupu pribaviti instrukcija ili
podatak. Ovo se može koristiti za pracenje
izvršenja ARM instrukcije.
JTAG interfejs - JTAG kontrolni signali se
povezuju na test kontroler preko svojih pinova
20
Boundary scan - ARM7TDMI celija sadrži potpun
JTAG TAP kontroler za dodatnu ugradenu ICE
funkcionalnost jre je ovaj TAP kontroler u stanju
da podrži bilo koje olakšice prilikom skeniranja
kojima se pristupa preko JTAG porta. Signali
drivesb, ecapclkbs, icapclkbs, , pclkbs,
rstclkbs, sdinbs, sdoutbs, shclkbs i shclk2bs u
interfejsu su zato moguci kako bi se dozvolile
dodatne putanje za skeniranje koje ce se dodati
sistemu.
ARM7TDMI u sintezi - Proces sinteze podržava
brojne opcije u varijacijama u funkcionalnosti
jezgra procesora. Ovo ukljucuje -
izostavljanje ugradene ICE celije - zamenu
kompletnog 64-bitnog množaca jednostavnijim i
manjim množacem koji podržava - samo ARM
instrukcije množenja koje daju 32-bitni rezultat.
Jezgro ARM7TDMI procesora je našlo razne
primene u sistemima sa jednostavnom
konfiguracijom memorije. To znaci da se puno
koristi u sistemima koji poseduju par kilobajta
jednostavnog RAM-a na cipu. Tipican primer takvog
sistema je mobilni telefon. Tu se objedinjuju
moderni hardver za obradu digitalnih signala i
odgovarajuca memorija. Zato je ARM7TDMI postao
najkorišceniji procesor za funkcije kontrole i
korisnickog interfejsa.
21
ARM8TDMI
ARM8 jezgro je nastalo u kompaniji ARM Limited u
periodu izmedu 1993. i 1996. kako bi ispunilo
zahteve za ARM jezgrom koje ce imati bolje
performanse od onih koje je postizalo dotadašnje
ARM7 jezgro. Danas su ga nasledila ARM9 i ARM10
jezgra ali je njegov dizajn izazvao veliko
interesovanje.
  • Performanse procesora su poboljšane na sledece
    nacine
  • Povecavanjem taktne frekvencije. Ovo zahteva
    pojednostavljenje logike u svakom protocnom
    stepenu (pipelinu) što povlaci povecanje broja
    protocnih stepena
  • Smanjenjem CPI taktnih ciklusa po instrukciji.
    Ovo zahteva smanjenje broja komunikacionih kanala
    koje zauzimaju instrukcije, ili smanjenje
    zavisnosti medu instrukcijama tako da one ne
    izazivaju zastoje u komunikacionim kanalima.
  • Najbolja je kombinacija oba metoda.

22
ARM8 procesor se sastoji iz jedinice za
pribavljanje instrukcija i integer staze
podataka. Jedinica za pribavljanje je zadužena za
pribavljanje instrukcija iz memorije i njihovo
baferovanje u unapred zadati redosled. Taj
redosled mora omoguciti maksimalno korišcenje
propusnog opsega memorije. Zatim se integer
jedinici prosleduje po jedna instrukcija u svakom
taktu zajedno sa vrednošcu programskog brojaca za
datu instrukciju. Jedinica za pribavljanje je
takode zadužena za predikciju grananja, i koristi
staticko predvidanje kod odredivanja smera
grananja (za grananja unazad se predvidaju da ce
se desiti, dok se grananja unapred predvidaju kao
nece se desiti).
Slika 7 Organizacija procesora ARM8TDMI
ARM processor koristi peto-stepenu
protocnu obradu pri cemu jedinica za unapred
pribavljanje instrukcija odgovara prvom stepenu
protocne obrade dok se integer jedinici
pridružuju ostala 4 stepena.
23
ARM9TDMI
ARM9TDMI jezgro poseduje funkcionalnost
ARM7TDMI jezgra ali sa znacajno poboljšanim
performansama. Poput ARM7TDMI jezgra (na suprot
od ARM8 jezgra) ovo novo jezgro podržava Thumb
skup instrukcija i EmbeddedICE modul za podršku
debugovanja na samom cipu. Poboljšanja u
performansama su ostvarena nakon prihvatanja
petostepenog protocnog sistema (pipelina) cime se
obezbedilo povecanje pobudne taktne frekvencije
kao i korišcenje posebnih memorijskih portova za
pristup instrukcijama i podacima cime se znacajno
poboljšao CPI. Ima odvojene portove za
instrukcije i podatke. U osnovi je moguce
povezati ove portove na jedinstvenu memoriju, ali
je posledica toga smanjenje performansi tako da
se povezivanje ne izvodi. Pravi se za
vece radne frekvencije u poredenju sa ARM7TDMI
jezgrom, tako da sve aplikacije koje koriste
ARM9TDMI jezgro imaju složenije i brže memorijske
podsisteme.
ARM procesori se primenjuju u
Industrijskoj kontroli,medicinskim sistemima
kontroli pristupa,komunikacionim
skretnicama,ugradjenim modemima i u primenama
opšte namene.
24
Skup instrukcija ARM
  • Student Davor Dejkovic
  • Broj indeksa 9885

25
1. Tipovi podataka sa kojima ARM manipuliše
  • ARM procesori podržavaju šest tipova podataka
  • 8-bitne oznacene i neoznacene bajtove.
  • 16-bitne oznacene i neoznacene polureci poredane
    na granice od dva bajta.
  • 32-bitne oznacene i neoznacene reci poredane na
    granice 4 bajta.

26
2. Tipovi instrukcija procesora ARM
  • Procesor ARM podržava sledece tipove instrukcija
  • Instrukcije za pribavljnje podataka i memorisanje
  • Instrukcije za razmene sadržaja memorije i
    registra
  • Instrukcije pristupa status registara
  • Instrukcije za obradu podataka
  • Razlicite aritmeticke instrukcije
  • Instrukcije množenja
  • Instrukcije grananja
  • Instrukcije za generisanje softverkoih prekida
  • Instrukcije koprocesora

27
Instrukcije za pribavljnje podataka i memorisanje
  • Ova grupa instrukcija se može podeliti na
  • Instrukcije za prenos podataka tipa jedna rec ili
    neoznaceni bajt
  • (Ove instrukcije su najfleksibilniji nacin
    za prenos (premeštanje) bajtova ili reci podataka
    izmedu registara ARM i memorije. Premeštanje
    velikih blokova podataka je obicno bolje izvesti
    korišcenjem višestrukih instrukcija za prenos
    registara, dok najnoviji ARM procesori takode
    podržavaju instrukcije za premeštanje polureci i
    oznacenih bajtova).
  • Instrukcije za prenos podataka tipa polureci i
    oznacenih bajtova
  • Višestruke instrukcije za ucitavanje i smeštanje
  • (Ove ARM instrukcije omogucavaju da se bilo
    koji podskup (ili svi) od 16 registara koji su
    vidljivi u tekucem režimu rada mogu smestiti u
    memoriju ili procitati iz nje. Jedan oblik ove
    instrukcije omogucava operativnom sistemu da
    napuni ili memoriše register korisnickog nacina
    rada kao i da zapamti i obnovi stanje korisnickig
    procesa, a takode da omoguci CPSR registru da
    obnovi stanje koje se cuva u SPSR, a deo je
    povratne informacije programa za obradu
    izuzetaka. Ove instrukcije se koriste za ulazak i
    povratak iz procedura radi smeštanja i
    obnavljanja stanja radnih registara).

28
Binarno kodiranje instrukcije za transfer
podataka od jedne reci ili neoznacenog bajta
29
  • Asemblerski format
  • Pre-indeksirani format instrukcije
  • LDR STRltcondgt B Rd, Rn, ltoffsetgt
    !
  • Post-indeksirani oblik
  • LDR STRltcondgt B T Rd, Rn,
    ltoffsetgt
  • Primeri
  • LDR r1, r0 ucitaj r1 iz
    adrese u r0
  • LDR r8, r3, 4 ucitaj r8 iz
    adrese u r3 4
  • STR r2, r1, 0x100 smesti r2 na
    adresu u r1 0x100
  • LDRB r5, r9 ucitaj bajt
    u r5 iz r9
  • LDRB r3, r8, 3 ucitaj bajt
    u r3 iz r8 3
  • LDR r11, r1, r2 ucitaj r11
    iz adrese u r1 r2
  • STRB r10, r7, -r4 smesti bajt
    iz r10 na adresu u r7 - r4
  • LDR r11, r3, r5, LSL 2 ucitaj r11
    iz r3 (r5 x 4)
  • LDR r1, r0, 4 ! ucitaj r1 iz
    r0 4, zatim r0 r0 4

30
Binarno kodiranje instrukcije za transfer
podataka polureci i oznacenih bajtova
31
  • Asemblerski formati
  • Pre-indeksiran oblik
  • LDR STRltcondgtH SH SB Rd, Rn,
    ltoffsetgt !
  • Post-indeksiran oblik
  • LDR STRltcondgtH SH SB Rd, Rn,
    ltoffsetgt
  • Primeri
  • LDRH r1, r0 ucitaj polurec u
    r1 iz r0
  • LDRH r8, r3, 2 ucitaj polurec u
    r8 iz r3 2
  • LDRH r12, r13, -6 ucitaj polurec u
    r12 iz r13 - 6
  • STRH r2, r1, 0x80 smesti polurec
    iz r2 u r1 0x80
  • LDRSH r5, r9 ucitaj oznacenu
    polurec u r5 iz r9
  • LDRH r11, r1, r2 ucitaj polurec u
    r11 iz adrese u r1 r2
  • LDRSH r1, r0, 2 ! ucitaj oznacenu
    polurec r1 iz r0 2,
  • zatim r0 r0 2
  • LDRSB r7, r6, -1 ! ucitaj oznacen
    bajt u r7 iz r6 - 1,
  • zatim r6 r6 -1

32
Binarno kodiranje višestruke instrukcije za
ucitavanje i smeštanje
33
  • Asemblerski format
  • Uobicajeni oblik instrukcije je
  • LDM STMltcondgtltadd modegt Rn!,
    ltregistersgt
  • U ne-korisnickom nacinu rada CPSR se može
    obnoviti pomocu
  • LDMltcondgtltadd modegt Rn!, ltregisters
    pcgt
  • Korisnicki registri se mogu sacuvati ili obnoviti
    pomocu
  • LDM STMltcondgtltadd modegt Rn, ltregisters
    - pcgt
  • Primeri
  • Da bi se sacuvlo stanje tri radna registra i
    povratne adrese nakon ulaska u subrutinu potrebno
    je
  • izvršiti instrikciju
  • STMFD r13!, r0 -
    r2, r14
  • Ovo pretpostavlja da je r13 inicijalizovan za
    korišcenje kao pokazivac magacina.
  • Da bi obnovili stanje radnih registara i obavili
    povratak koristi se instrukcija
  • LDMFD r13!, r0 - r2, pc

34
Instrukcije za razmenu sadržaja memorije i
registra
  • Ove Instrukcije kombinuju ucitavanje i smeštanje
    reci ili neoznace-nog bajta u jednoj instrukciji.
    Obicno
  • se dva prenosa kombinuju u jednu memorijsku
    operaciju koja se ne može razdvojiti spoljašnjim
  • memorijskim pristupom (npr. pomocu DMA od
    kontrolera). Tako se instrukcija može koristiti
    kao osnova
  • mehanizam semafora kako bi se obezbedila uzajamna
    iskljucivost u pristupu strukturama podaka koji
    su
  • deljivi izmedu veceg broja procesa, procesora ili
    procesora i DMA kontrolera.
  • Binarno kodiranje Instrukcije za razmenu sadržaja
    memorije i registra

35
  • Asemblerski format
  • SWPltcondgt B Rd, Rm, Rn
  • Primeri
  • SWP r12, r10, r9 ucitaj r12 iz adrese
    r9 i
  • smesti r10 na adresu
    r9
  • SWPB r3, r4, r8 ucitaj bajt u r3 iz
    adrese r8 i
  • smesti bajt iz r4 na
    adresu r8
  • SWP r1, r1, r8 zameni vrednosti u r1
    i adresu u r2

36
Instrukcije pristupa status registara
  • Ova grupa instrukcija se može podeliti na
  • Instrukcije za prenos stanja statusnog registara
    u registre opšte namene
  • (U slucaju da je potrebno sacuvati ili
    modifikovati sadržaj CPSR ili SPSR registra
    tekuceg nacina rada, njihovi sadržaji moraju se
    prvo preneti u registar opšte namene, zatim da se
    modifikuju selektovani in a kraju da se povratna
    vrednost smesti u statusni registar. Ove
    instrukcije obavljaju prvi korak u zadatoj
    sekvenci)
  • Instrukcije za prenosa registara opšte namene u
    statusni registar
  • (U slucaju da je potrebno zapamtii ili
    modifikovati sadržaj CPSR ili SPSR tekuceg nacina
    rada, njihovi sadržaji se prvo moraju preneti u
    registar opšte namene, zatim da se odabrani
    bitovi modifikuju, a onda se povratna vrednost
    smešta u statusni registar. Ove instrukcije
    obavljaju poslednji korak u zadatoj sekvenci).

37
Binarno kodiranje instrukcije prenosa status
registara u registre opšte namene
  • Asemblerski format
  • MRSltcondgt Rd, CPSR SPSR
  • gde je Rd odredišni registar
  • CPSR - Current Program Status Register
  • SPSR - Saved Program Status Register
  • Primeri
  • MRS r0, CPSR prebaci CPSR u r0
  • MRS r3, SPSR prebaci SPSR u r3

38
Binarno kodiranje instrukcije prenosa registara
opšte namene u status registar
39
  • Asemblerski format
  • MSRltcondgt CPSR_fSPSR_f, lt32-bit
    immediategt
  • MSRltcondgt CPSR_ltfieldgtSPSR_ltfieldgt, Rm
  • gde je ltfieldgt jedno od
  • c kontrolno polje PSR70.
  • x polje proširenja PSR158 (ne
    koristi se kod trenutnih ARM)
  • s polje statusa PSR2316 (ne koristi
    se kod trenutnih ARM)
  • f polje flegova PSR3124
  • Primer
  • Za postavljanje N, Z, C, i V flegova
  • MSR CPSR_f, f0000000 postavi
    sve flegove
  • Za postavljanje C flega, i ocuvanje N, Z i V
  • MRS r0, CPSR prebaci
    CPSR u r0
  • ORR r0, r0, 20000000 postavi bit
    29 od r0
  • MSR CPSR_f, r0 prebaci
    natrag u CPSR

40
Instrukcije za obradu podataka
  • Instrukcije procesora ARM koje se koriste za
    obradu podataka omogucavaju programeru da
  • izvodi aritmeticke i logicke operacije nad
    podacima u registrima. Ovim instrukcijama su
  • tipicno potrebna dva operanda i one generišu
    jedinstven rezultat.
  • Ova grupa instrukcija se može podeliti na
  • Aritmeticke operacije
  • Logicke operacije
  • Operacije premeštanja sadržaja registara
  • Operacije poredenja
  • Neposredni operandi
  • Pomereni registarski operandi

41
Binarno kodiranje instrukcije za obradu podataka
42
  • Asemblerski format
  • Opšti format asemblerskih instrukcija iz ove
    grupe je sledeceg oblika
  • ltopgtltcondgt s Rd, Rn, lt32-bit immediategt
  • ltopgtltcondgt s Rd, Rn, Rm, ltshiftgt
  • Kod monadickih operacija kakve su MOV, MVN
    izostavlja se Rn tako da je format sledeceg
  • oblika
  • ltopcode1gtltcondgt s Rd, ltshifter operandgt
  • ltopcode1gt MOV MVN
  • Kod instrukcija uporedivanja kakve su CMP, CMN,
    TST, TEQ postavljaju se samo flegovi, ne
  • specificira se registar Rd pa je format sledeceg
    oblika
  • ltopcode2gtltcondgt Rn, ltshifter operandgt
  • ltopcode2gt CMP CMN TST TEQ
  • Kod tro-operandskih instrukcija format je oblika
  • ltopcode3gtltcondgt s Rd, Rn ltshifter operandgt
  • ltopcode3gt ADD SUB RSB ADC SBC RSC
    AND BIC EOR ORR

43
  • Aritmeticke operacije
  • Ove instrukcije izvode binarne aritmeticke
    operacije (dodavanje oduzimanje, ili inverzno
    oduzimanje tj.
  • oduzimanje sa izmenjenim redosledom operanada)
    nad dva 32-bitna operanda. Operandi mogu biti
    neoznacene
  • ili oznacene celobrojne vrednosti u dvojicnom
    komplermentu. Ulazni prenos kada se koristi
    predstavlja tekucu
  • vrednost C bita registra CPSR.
  • ADD r0, r1, r2 r0 r1 r2
  • ADC r0, r1, r2 r0 r1 r2
    C
  • SUB r0, r1, r2 r0 r1 - r2
  • SBC r0, r1, r2 r0 r1 - r2
    C - 1
  • RSB r0, r1, r2 r0 r2 - r1
  • RSC r0, r1, r2 r0 r2 - r1
    C 1
  • ADD prdstavlja sabiranje, ADC je sabiranje sa
    prenosom, SUB je oduzimanje, SBC je
    oduzimanje sa
  • pozamljivanjem, RSB je oduzimanje sa inverznim
    redosledom a RSC oduzimanje sa inverznim
    redosledom i
  • pozamljivanjem.
  • Logicke operacije
  • Ove instrukcije izvode logicke operacije Bulove
    algebre za svaki par bitova ulaznih operanada

44
  • Operacije premeštanja sadržaja registara
  • Ove instrukcije ignorišu prvi operand koji se
    izostavlja iz formata asem-blerskog jezika, i
    kopiraju drugi operand
  • u krajnje odredište.
  • MOV r0, r2 r0 r2
  • MVN r0, r2 r0 not r2
  • MVN mnemonik znaci kopiranje koplementarne
    vrednosti u odredišni registar
  • Operacije poredenja
  • Ove instrukcije ne generišu rezultat (koji je
    zbog toga izostavljen iz formata asemblerskog
    jezika) vec samo
  • postavljaju flegove (N, Z, C i V) registra CPSR.
  • CMP r1, r2 postavi cc
    na r1 - r2
  • CMN r1, r2 postavi cc na r1
    r2
  • TST r1, r2 postavi cc na r1
    and r2
  • TEQ r1, r2 postavi cc na r1
    xor r2
  • Mnemonici oznacavaju poredenje (CMP),
    poredenje sa negacijom (CMN), testiranje
    sadržaja bita (TST) i
  • test nejednakost (TEQ).

45
Razlicite aritmeticke instrukcije
  • Prebrojavanje pocetnih nula (CLZ(Count Leading
    Zeros)
  • Korisna je za ponovnu normalizaciju brojeva i
    mnogo je efikasnija nego samo korišcenje nekih
    drugih
  • ARM instrukcija.
  • Asemblerski format
  • CLZltcondgt Rd, Rm
  • Rd oznacava odredišni registar, a Rm izvorni
    registar
  • Primer
  • MOV r0, 100
  • CLZ r1, r0 r1 23
  • Binarno kodiranje instrukcije brojanja pocetnih
    nula

46
Instrukcije množenja
  • ARM instrukcije množenja daju proizvod u vidu dva
    32-bitna binarna broja koja se cuvaju u
  • registrima. Množenje dve 32-bitne celobrojne
    vrednosti dobija se 64-bitni rezultat, kod koga
  • se 32 bita manje težine smeštaju u odredišni
    registar rezultata dok se ostali zanemaruju.
  • Binarno kodiranje instrukcije množenja

47
  • Asemblerski format
  • Instrukcije koje daju 32 bita najmanje vrednosti
    u proizvodu su
  • MULltcondgt s Rd, Rm, Rs
  • MLAltcondgt s Rd, Rm, Rs, Rn
  • Veoma važna instrukcija koja se koristi kod
    digitalnog procesiranja signala je množenje sa
    akumulacijom. U
  • jednom konkretnom primeru ona je sledeceg oblika
  • MLA r4, r3, r2, r1 r4
    (r3 x r2 r1)
  • Primeri
  • MUL r4, r2, r1 r4 dobija
    vrednost r2 pomnožena sa r1
  • MULS r4, r2, r1 r4 r2 x
    r1, postavi N I Z flegove
  • MLA r7, r8, r9, r3 r4 r8 x
    r9 r3
  • SMULL r4, r8, r2, r3 r4 bitovi
    0 do 31 od r2 x r3
  • r8 bitovi
    32 do 63 od r2 x r3
  • UMULL r6, r8, r0, r1 r8, r6 r0
    x r1
  • UMLAL r5, r8, r0, r1 r8, r5 r0
    x r1 r8, r5

48
Instrukcije grananja
  • U ovu instrukcija spadaju
  • Grananje sa linkom
  • (Instrukcije grananja i grananja sa linkom
    su standardni nacini za promenu toka izvrešenja
    sekvenci instrukcija. ARM standardno izvršava
    instrukcije sa sekvencijalnim redosledom adresa u
    memoriji, a koristi uslovno izvršenje sa
    grananjem tamo gde je to potrebno).
  • Grananje sa linkom i razmenom
  • (Ove instrukcije su dostupne kod ARM cipova
    koji podržavaju 16-bitni Thumb skup instrukcija,
    i jedan su od mehanizama za prebacivanje
    procesora u režim rada kada bi izvršavao thumb
    instrukcije ili za povratak na ARM ili Thumb
    rutine).
  • Format asemblera
  • BLXltcondgt Rm
  • BLX lttarget addressgt
  • BL ltcondgt lttarget
    addressgt
  • lttarget addressgt je obicno labela u asemlerskom
    kodu. Asembler generiše ofset (koji ce biti
  • razlika izmedu adrese reci mete i adrese
    instrukcije grananja plus 8) i postavlja H bit
    ako je potrebno.

49
  • Binarno kodiranje granjanja i grananje sa linkom
  • Binarno kodiranje granjanja (sa opcionim linkom)
    i instrukcijom razmene

50
Instrukcije za generisanje softverkoih prekida
  • Ova grupa instrukcija se može podeliti na
  • Softverski prekid (SWI)
  • (Instrukcija softverskog prekida se koristi
    za poziv operativnog sistema i cesto se naziva
    poziv supervizoru. Ona postavlja procesor u
    supervizorski režim rada i zapocinje izvršenje
    instrukcija sa adrese 0x08).
  • Instrukcija prekidna tacka
  • (Instrukcije prekidne tacke se koriste za
    debagiranje softvera one uzrokuju da procesor
    prekine sa normalnim izvršenjem instrukcija i
    prede na izvršenje odgovarajucu proceduru za
    debagiranja.)

51
  • Binarno kodiranje softverskg prekida
  • Format asemblera
  • SWIltcondgt lt24-bit immediategt
  • Primer
  • Za prikazivanje karaktera A
  • MOV r0, A
    prebaci A u r0 . .
  • SWI SWI_WriteC . . štampaj
  • Binarno kodiranje instrukcije tacke prekida

52
  • Operacije podataka koprocesora
  • Ove instrukcije se koriste za kontrolu internih
    operacija nad podacima u koprocesorskim
    registrima. Standardni
  • formati odgovaraju tipovima troadresih mašina ali
    su druge interpretacije svih polja u
    koprocesorskoj instrukciji
  • moguce.
  • Binarno kodiranje instrukcije koprocesorske
    oeracije podataka
  • Asemblerski format.
  • CDPltcondgt ltCPgt, ltCop1gt, CRd,
    CRn, CRm, ltCop2gt
  • Primer

53
  • Prenos podataka koprocesoru
  • Instrukcije za prenos podataka
    koprocesora su slicne instrukcija koje prenose
    neposredni offset kod
  • podataka tip rec i instrukcije koje se
    koriste za prenos neoznacenih bajtova. Ofset je
    sada ogranicen na 8 bitova, a ne na 12 bitova.
  • Binarno kodiranje
    instrukcije prenosa podataka koprocesora

54
  • Primeri
  • LDC p6, CR1, r4 ucitaj iz memorije u
    koprocesor 6
  • ARM registar 4
    sadrži adresu
  • ucitaj u CP regisar
    1
  • LDC p6, CR4, r2, 4 ucitaj iz memorije u
    koprocesor 6
  • ARM registar r2 4
    je adresa
  • ucitaj u CP registar
    4
  • STC p8, CR8, r2, 4 ! smesti iz
    koprocesora 8 u memoriju
  • ARM registar r2 4
    je adresa
  • posle transfera r2
    r2 4
  • smesti od CP
    registar 8
  • STC p8, CR9, r2, -16 smesti iz
    koprocesora 8 u memoriju
  • ARM registar r2 cuva
    adresu
  • posle transfera r2
    r2 - 16
  • smesti od CP
    registar 9

55
  • Prenos registara koprocesora
  • Ove instrukcije omogucavaju da se
    celobrojne vrednosti generisane od strane
    koprocesora prenese direktno u ARM registar, ili
    u ARM-ov marker registar.
  • Binarno enkodiranje instrukcije prenosa registra
    koprocesora
  • Asemblerski format
  • Prenos iz ARM registra u koprocesor
  • MRCltcondgt ltCPgt, ltCop1gt, Rd, CRn,
    CRm, ltCop2gt
  • Prenos u koprocesor iz ARM registra
  • MCRltcondgt ltCPgt, ltCop1gt, Rd, CRn,
    CRm, ltCop2gt
  • Primeri
  • MRC p15, 5, r4, c0, c2, 3 koprocesor 15
    prebacuje u ARM registar

56
Hardver i Softver Proces
kreiranja
  • Student Bojan Pavlovic
  • Broj indeksa 10035

57
Za razumevanje hardversko/softverske
ko-verifikacije neophodno je razumeti princip
rada alata kao i proces koji se koristi za razvoj
hardvera i softvera. Do skora, integracija
softvera sa hardverom se izvodila u
laboratorijiskom okruzenju konstrukcijom hardvera
i pokretanjem softvera. Debagiranje se
izvodilo sledecom opremom in-circuit
emulatorima (ICE), logickim analizatorima i
osciloskopima. Debagiranje u kasnijoj fazi
projektovanja, , kada je pritisak na projektante
zbog definisanog roka najveci, je naporan i
stresan zadatak. Ko-verifikacijom menja se
ovakav pristup jer se koristi virtuelni prototip
hardvera koji se izvrsava na softveru pre nego
sto je prototip dostupan.
58
Tri komponente SoC verifikacije
  • Pre nego što predemo na detaljan opis izrade
    hardvera i softvera i proucimo njihovu
    povezanost, vredno je sagledati tri komponente
    SoC verifikacije. Da bi kreirali koherentnu
    metodologiju za hardversku i softversku
    verifikaciju, inžinjeri moraju razumeti
    specificne alate u svakoj oblasti kao i njihovu
    medusobnu povezanost.
  • Ove tri komponente su
  • Verifikaciona platforma
  • Hardverski verifikacioni alati i tehnike
  • Softverski alati i tehnike za debagiranje

59
Jezik za opis hardvera (HDL) se odnosi na
namenske jezike projektovane za opis hardvera.
Dva jezika koja se danas koriste su Verilog HDL i
VHDL. Ovi jezici se koriste da bi opisali rad
cipa ili ploce isto kao što softverski program
opisuje rad mikroprocesora ili embedded sistema.
HDL-ovi sadrže kljucne reci, sintaksu i semantiku
modela hardverskog kola. Softverski alati mogu
koristiti ove modele za simuliranje ponašanja
hardvera i za sintezu HDL modela u strukturni
prikaz koji se može koristiti za realizaciju
hardvera. HDL-ovi se koriste za specifikaciju
implementacije ASIC i FPGA kola. Takode se
koriste za modeliranje memorije i drugih
digitalnih kola.
           
60
Verifikaciona Platforma 
  • Verifikacija platforme je metod koji se koristi
    za opis hardverskog dizajna.Njena alternativna
    imena su izvršna mašina ili virtuelni prototip.
  • Cetri posebne metode se mogu identifikovati
    i koristiti za rad hardvera
  • Logicka simulacija
  • Ubrzana simulacija
  • Emulacija
  • Hardverski prototip

61
  • Logicka simulacija
  • Logicki simulator se najcesce koristi za
    simulaciju ponasanja hardveerskih dizajna.
  • Logicki simulatori mogu da se realizuju na dva
    nacina
  • Simulatori koji koriste interpreterski kod
  • Simulatori koji koriste kompajlirani kod

62
  • Ubrzana simulacija
  • Ubrzana simulacija se odnosi na proces
    mapiranja odredjenog dela dizajna koji se moze
    sintetizovati na hardversku platformu.

Ubrzana simulacija obezbedjuje bolje performance
jer ne vodi racuna o simulacionim dogadjajima
iniciranih od strane logickog simulatora a vrsi
njihovu procenu koriscenjem hardvera za paralelno
procesiranje.
63
Cilj ubrzavanja je povecanje performansi.
Krajnje performanse su zasnovane na brzini
akceleracione platforme i procentu simulacije
koji se može izvršavati u oviru akceleracionog
hardvera. Odnos procenta simulacije u radnoj
stanici nasuprot procenta dizajna u sistemu za
ubrzanje (akceleratoru) odreduje krajnje
performanse.
64
Emulacija se odnosi na proces mapiranja citavog
dizajna na hardversku platformu projektovanu u
cilju povecanja performansi sistema. Ne postoji
stalna veza izmedu emulatora i radne stanice
tokom izvršenja programa, a emulator ne prihvata
ulaz od radne stanice.Nepostojanje veze sa radnom
stanicom obezbedjuje hardverskoj platformi da
radi punom brzinom i da ne postoji cekanje za
bilo kakvom komunikacijom.
  • Emulacija

65
  • Postoji mnogo razlicitih definicija o
    tome šta zapravo termin emulacija znaci, u kojoj
    je vezi sa ubrzanom simulacijom.
  • Definosacemo emulaciju na osnovu sledecih
    karakteristika
  • Ne postoji testbench koji se izvrsava na radnoj
    stanici
  • Emulator je master a radna stanica je slave.
  • Taktni impulsi se generisu od strane emulatora, a
    ne od radne stanice
  • Karakteristike ubrzane simulaciju su
    sledece
  • Postoji neki testbench koji se izvršava na radnoj
    stanici (poželjno je što manje, zbog boljih
    performansi)
  • Radna stanica je sada master a emulator ili
    akcelerator je slave
  • Taktni impulsi se generisu od strane testbench-a
    koji se izvršava na radnoj stanici

66
  • In-circuit se odnosi na korišcenje spoljašnjeg
    hardvera spregnutog sa emulatorom u svrhu
    obezbedjenja realisticnijeg okruženja dizajna
    koji se simulira.
  • Ovaj hardver je obicno u formi štampanih kola
    koje se nekad nazivaju ciljne ploce ili ciljni
    sistem,dok se test oprema povezuje na emulator.
    Moguca je i emulacija bez ciljnog sistema koja
    se odnosi na izvrsenje bez testbench ulaza iz
    radne stanice,ali takodje bez ciljnog sistema.Kod
    simulacije bez ciljnog sistema svo generisanje
    pobudnih signala (testbench-eva) se vrsi na
    osnovi sintetizovanih oblika i izvrsavaju se na
    emulatoru.

67
  • Dijagrami koji prikazuju emulaciju koja ne
    koristi ciljni sistem i in-circuit
  • emulaciju su prikazani na sledecim slikama

68
  • Hardverski prototip
  • Hardverski prototip se izvodi kao hardver po
    porudzbini ili hardver koji se moze višestruko
    koristiti za realizaciju hardverske
    reprezentacije sistema. Prototip predstavlja
    reprezentaciju krajnjeg sistema a prednost mu je
    ta što se moze lakše konstruisati, a samim tim je
    i pre dostupan od konacnog proizvoda.

69
Programerski pogled na svet
  • Softverski inženjer celo resenje vidi preko
    programskog modela .
  • Programsaki model se koristi da obezbedi
    podrsku u odredjenim operacijama modela koji su
    hierarhijski visi od njega a pri tome zahteva
    dopunjavanje svih arhitekturnih nivoa koji se
    nalaze ispod njega.

70
  • Osim mikroprocesora, softverske inženjere
    interesuje memorijska mapa embedded sistema.Kod
    32-bitnog adresnog prostora, postoji fizicka
    memorija od 4 GB-a koja može biti prihvacena.
  • Embedded sistemi koriste samo podskup ovog
    fizickog adresnog prostora, a memorijska mapa
    definise gde su locirani razliciti tipovi
    memorije i drugi hardversko upravljacki registri.
    Memorijska mapa takode odreduje šta se dešava
    ukoliko se pristupa adresama koje ne pripadaju
    fizickom prostoru.

71
  • Standardni tipovi memorije kod embedded sistema
    su
  • ROM u kome se cuva inicijalni softver koji se
    izvrsava na CPU,
  • fleš memorija,
  • DRAM, SDRAM ili DDR memorija,
  • brza SRAM i deo memojrije u kojima se preslikava
    periferija. Periferije mogu biti bilo koji
    namenski hardver koji se softverski programira.To
    mogu biti UART transmiter,tajmer,JPEG
    koder/dekoder,itd.

72
Hardverski pogled na svet
  • Hardverski inžinjeri imaju drugaciji pogled na
    embedded sisteme.
  • Unutrašnji rad CPU-a je manje važan za
    hardverske inžinjere, a sprezanje sa magistralom
    je ono što njih interesuje.Za hardverske
    inžinjere, mikroprocesor nije ništa drugo nego
    generator transakcione magistrale.

73
Softverski razvojni alati
  • Editor u realnosti ne predstavlja neko
    softversko razvojno sredstvo, ali najveci broj
    programera trosi vreme koristeci usluge editora
    (unos programa) u odnosu na druge
    programe.Iskustvo pokazuje da programeri zele da
    raspolazu sa zaista dobrim editorima jer od
    njihove koncepcije u najvecoj meri zavisi
    produktivnost.
  • Revizija izvornog koda
  • Kontrolna revizija je sredstvo pomocu koga
    se zapisuju promene koje se izvode u toku razvoja
    softvera.Koristeci reviziju moguce je pomocu
    funkcije undo i ispraviti izmene koje mogu da
    uzrokuju probleme a takodje i da se uvedu
    ogranicenja koja se odnose na modifikaciju
    pojedinih fajlova kao i identifikaciju onoga ko
    je izvrsio promenu.

74
  • Kompajler je alatka za prevodenje visih
    programskih jezika (C/C) i asemblerskih fajlova
    u program koji se moze izvrsavati. Ovaj format
    se zove mašinski jezik i cuva se u fajlu koji se
    zove izvršni fajl.
  • Debugger
  • Nažalost, svi programi ne rade korektno iz
    prvog puta. Cak i da program izgleda kao da radi
    korektno, nemoguce je testirati ga u svakoj
    situaciji i uslovima, pa tako ne može da se
    dokaže da uvek radi ispravno. Debugger pomaže
    softver inžinjerima da pronadju grešake.

75
  • Simulator modelira interni rad procesora.
    Procesorski simulatori se cesto isporucuju sa
    softverskim razvojnim alatima koji se koriste za
    kompajliranje softvera. Alternativno ime za ovaj
    tip simulatora je simulator skupa instrukcija
    (ISS). Tipicna aplikacija simulatora omogucava
    programeru da testira izlaz kompajlera bez da
    raspolaze CPU-om.

76
Povezivanje softvera za debagiranje
  • JTAG
  • Jedan od standardnih debagera koji se koristi
    za povezivanje sa CPU-m je JTAG. JTAG je poznat
    kao standard IEEE 1149.1 , nazvan boundary scan,
    a koristi se za testiranje kola na stampanim
    plocama.
  • Kod mikroprocesora se koristi JTAG protokol
    koji nije namenjen za testiranje veza na
    stampanoj ploci,nego za slanje i predaju
    infrmacija od embedded ssistema.
  • JTAG debager veze omogucavaju spregu izmedju
    masine koja izvrsava debager program preko
    konektora na embedded sistem koji implementira
    zeljene JTAG signale.
  • Posto serijske JTAG sekvence mogu biti jako
    dugacke,jedan mali blok se koristi za konverziju
    komande u serijske signale.Da bi se
    implementiralo JTAG debagiranje, mikroprocesor
    treba da sadrži specijano implementiran hardver.

77
  • STAB
  • Kod procesora koji nemaju izvedenu
    hardversku podrsku za debagiranje,
  • softerski debager mora da komunicira sa embedded
    sistemom pomocu stub-a.
  • Stab je specijalni program koga korisnik
    pridodaje embedded softveru za iskljucivu
    potrebu komuniciranja sa debagerom.
  • Stub softver komunicira sa debagerom uz
    pomoc komunikacionog kanala kakav je serijski
    port(RS232) ili Ethernet konekcija.
  • Stab izvrsava dibagerske zahteve kao sto su
    citanje registara i memorija i predaje rezultate
    debageru preko komunikacionog kanala.
  • On takode koristi usluzne rutine kako bi
    zaustavio rad procesora kakav je slucaj kada
    korisnik koristi opciju CTRLTab.

78
  • Direktna konekcija
  • Kada se koristi ISS(simulator skupa instrukcija)
    tada nema potrebe bilo za JTAG konekcijom ili
    stab-om izmedu softver debagera i embedded
    sistema.
  • Posto je ISS softverski model,debager može sa
    lakocom da pristupi svim traženim informacijama
    izdavanjem funkcijskih poziva ISS-u.Direktan
    konekcija je najbolja veza izmedju debagera i
    embedded sistema.
  • Svi zahtevi debarega se mogu trenutno ispuniti
    bez da se udje u specijalni rezim rada za
    debagiranje.Na ovaj nacin se dobija najtacnija i
    najrealisticnija slika o tome kako embedded
    sistem radi.

79
Tipovi embedded softvera
  • Pet razlicitih tipova embedded softvera se
    mogu identikovati.Obim softvera(broj linija) se
    povecava po sledecem redosledu
  • Softver za inicajilizaciju sistema i nivo za
    apstrakciju hardvera (HAL)
  • Hardversko-dijagnosticki test program
  • Operativni sistem za rad u realom vremenu (RTOS)
  • Pokretacki programi RTOS-a
  • Aplikacioni softver

80
Hardverska razvojna sredstva
  • Editor
  • Kao i softverski inženjeri,najveci broj
    hardverskih inženjera upoznaje se sa opisom
    dizajna i testbench-eva koristeci tekst
    editor.Kada se govori o hardverskim inženjerima,
    tehnike editovanja su mnogo jednostavnije od onih
    koje koriste softverski inženjeri.
  • Kontrola revizije izvornog koda
  • Od samog pocetka je razvoj softvera
    podrazumevao upravljanje velikim brojem
    tekstualnih fajlova koje kreiraju mnogi
    inženjeri, i koji se kompajliraju u jedan ili
    više izvršnih programa. Sa pojavom Verilog i VHDL
    nacina projektovanja hardverski inženjeri srecu
    se sa istim tipom okruženja i moraju koristiti
    alate za kontrolu revizije kako bi upravljali
    projektima.

81
  • Alati

Lint alati obezbedjuju jednostavnu analizu
koda radi nalazenja standardnih grešaka. Alati to
cine tako što išcitavaju izvorni kod. Koreni
Lint-a datiraju od ranijih dana karakteristicni
za koriscenje programskog jezika C, kao sredstvo
za nalaženje grešaka pre njegovog
izvrsenja.Standardna Lint provera ukljucuje
proveru neiskorišcenih deklaracija, nalazenje
nekonzistentnih tipova,koriscenje promenjljive
predefinicije,kod koji postoji ali se ne
izvrsava, ignorisanje povratnih vrednosti,
izvršni putevi bez povratka,beskonacna petlja i
nedosledni case iskazi.
  • Pokrivenost koda
  • Pokrivenost koda je još jedna tehnika
    pozajmljena od softverskog inžinjerstva.
    Pokrivenost meri velicinu koda koji se koristi
    tokom izvodenja testova. Na osnovu rezultata
    pokrivenosti se mogu razviti dodatni testovi za
    povecanje pokrivenosti. Indirektno ce znaciti da
    povecanje pokrivenosti znaci povecanje kvaliteta
    proizvoda. Za HDL dizajn postoje tri razlicite
    velicine pokrivenosti koje se mere. To su
    pokrivenost iskaza, pokrivenost grananja i FSM
    pokrivenost.

82
  • Tvrdenja
  • Popularnost korišcenja tvrdenja za
    specifikaciju namene dizajna i osobine dizajna
    jako brzo raste. Tvrdenja su vrlo jak alat za
    medusobnu proveru dizajna i pretpostavljenog
    ponašanja. Takode bitni za verifikaciju i
    sistemske inženjere jer mogu formalno navesti
    ponašanje sistema i proveriti da li se sistem
    ponaša u skladu sa specifikacijom.
  • Tvrdenja pružaju zajednicki format višestrukim
    alatima.
  • Tvrdenja olakšavaju debug-ovanje i smanjuju vreme
    simulacije
  • Tvrdenja verifikuju interfejse izmedu blokova
  • Tvrdenja su dobra vežba RTL kodiranja

83
  • Alati za debug-ovanje
  • Za razliku od nekih prethodnih alata, koje
    su hardverski inženjeri prihvatili od softverskih
    inženjera, debug-ovanje hardvera je mnogo
    drugacije od debug-ovanja softvera. Hardverski
    inženjeri prvenstveno rade u batch okruzenju.
  • Uobicajen alat za debug-ovanje hardvera je
    osciloskop. Hardverski inženjeri rade
    posmatrajuci vrednosti signala tokom perioda
    vremena simulacije.Današnji alati za posmatranje
    talasnih oblika pamte podatke u kompresovanom
    obliku zbog maksimalnih performansi i minimalne
    velicine fajlova. IEEE Verilog standard koristi
    format za fajlove u koje su smešteni talsani
    oblici, poznat kao VCD. Ovakav format teksta je
    dobar za male simulacije sa malim kolicinama
    podataka koje treba upamtiti, ali postaje veliki
    za velike simulatore. Za takve simulacije moraju
    biti korišceni odgovarajuci formati sa nekim
    stepenom kompresije.

84
  • Osnovni nacin debug-ovanja je posmatranje
    talasnih oblika. Koristeci informacije detekcije,
    inženjeri moraju pregledati logicke signale u
    razlicitim vremenskim trenucima tokom procesa
    simulacije. Zatim moraju pronaci šta ne radi
    ispravno.
  • Ovaj proces tipicno zahteva puno radnih
    sati za odredivanje pravilnog rada dizajna.
    Gomilanje nepotrebnih talasnih oblika može takode
    drasticno smanjiti performanse simulacije i kao
    rezultat dati velike fajlove. Inženjeri zato
    moraju izdvojiti vreme pre simulacije za
    odredivanje perioda u kojima ce biti generisani
    fajlovi koji pamte talasne oblike. Takode moraju
    biti odredeni i delovi dizajna za koje ce talasni
    oblici biti upamceni.

85
  • Definisanje debug-ovanja
  • Ono što mnogi inženjeri nazivaju
    debug-ovanje je ustvari kombinacija dve zasebne
    aktivnosti detekcije i debug-ovanja.
  • Detekcija je proces odredivanja postojanja
    problema u dizajnu ili testu. Mnogi projekti
    koriste simulaciju kao osnovni nacin za detekciju
    problema.Prilikom simulacije postoji mnogo nacina
    za prikazivanje postojanja problema. Dva najcešca
    nacina su pomocu display iskaza, i poredenje
    vrednosti u memoriji sa ocekivanim rezultatima.
    Nedostatak display iskaza može znaciti i problem
    sa rezultatom testa. Tvrdenja su bolji nacin za
    detekciju grešaka.
  • Kada se problem otkrije on mora biti
    debug-ovan. Debug-ovanje je proces pronalaženja
    korena uzroka problema i promene dizajna ili
    testa kako bi se problem rešio. Debug-ovanje je
    mehanicki proces u poredenju sa detekcijom, jer
    je potreban inženjer koji ce provesti odredeno
    vreme kako bi pronašao šta je ispravno a šta
    nije. Odredivanje pravilnog ponažanja zahteva
    dobro poznavanje dizajna i njegovog rada. Veci
    broj bržih racunara ne mogu pomoci pri procesu
    debug-ovanja. Alati mogu pomoci prilikom
    unapredenja procesa tako što olakšavaju
    razumevanje dizajna, i tako što pružaju bolji
    pregled rezultata simulacije.

86
Opis Starter Kit-a
  • Student Miloš Milenkovic
  • Broj indeksa 9989

87
Opis Starter Kit-a
  • Testiranje karakteristika gradivnih blokova
    sistema je danas jednostavno moguce korišcenjem
    development kit-ova
  • Development kit ima ugradene gradivne blokove
    (periferije) kojima se može pratiti ucitavanje i
    izvršavanje neke aplikacije.
  • Objasnicemo strukturu i mogucnosti jednog starter
    kit-a, proizvod firme Hitex, koji je namenjen za
    testiranje rada sistema zasnovanih na
    mikrokontroleru tipa LPC2138.

88
ARM starter kit
  • Ovaj starter kit poseduje sve sastavne delove
    koji su potrebni za izvršavanje odredenih
    aplikacija. Najvažniji delovi su
  • JTAG debugger za ARM7-9
  • razvojna ploca
  • Quick start vodic za rad
  • CD sa instalacijom programa firme Hitex za ARM
  • kablovi za napajanje i povezivanje JTAG-a

Slika 1 Izgled starter kit-a za ARM
89
  • Povezivanje razvojnog sistema sa PC-mašinom se
    ostvaruje kao sto je prikazano na slici 2
  • Povezivanje se izvodi pomocu
  • USB kabla koristi se za povezivanje JTAG
    debugger-a sa PC-mašinom
  • 20-pinskog kabla koji povezuje JTAG konektor
    lociran na razvojnoj ploci sa Tantino interfejsom
  • USB porta lociranog na razvojnoj plocici MCB2130
    sa PC mašinom preko USB kabla. Preko ove veze
    razvojna plocica dobija napajanje.

Slika 2 Nacin povezivanja razvojnog sistema
90
  • Ostali tehnicki detalji koji se odnose na
    razvojnu plocicu
    MCB2130 su prikazani u Tabeli 1

PARAMETAR OPIS
Napon napajanja 5 V (preko USB magistrale)
Struja napajanja tipicno 65 mA, maksimalno 120 mA
Frekvencija kristala 12 MHz (max 60 MHz)
CPU Phillips LPC21xx
Periferali 2 x RS232 interfejs (COM0 i COM1) 1 x JTAG interfejs 1 x analogni izlaz (povezan na zvucnik standardno) 1 x analogni ulaz (povezan na potenciometar standardno) 1 x ETM interfejs (opciono)
Tabela 1 Tehnicke karakteristike razvojne
plocice MCB2130
91
Kljucne karakteristike starter kit-a su sledece
  1. Moguce je obavljati emulaciju u realnom vremenu.
  2. Sistem ima mogucnost pracenja stanja signala na
    paralelnim ulazima.
  3. U zavisnosti od ugradjenog tipa mikrokontrolera,
    brza flash memorija moze biti kapaciteta 32, 64
    ili 512 kB.
  4. Memorijski bafer za razmenu podataka sa drugim
    uredjajima je obima 128 bitova.
  5. Procesor je u stanju da izvrsava kako 32-bitne
    kodove, tako i 16-bitne.
  6. Kod aplikacija koje imaju kritican obim koda
    koristi se alternativni 16-bitni Thumb nacin rada
    procesora. Kod ovakvih rešenja se obim koda
    smanjuje za vise od 30, a gubici u performansama
    su minimalni.

92
Na slici 3 je izgled IC pakovanja
mikrokontrolera iz serije
LPC2134 / 2136 / 2138
Slika 3 IC pakovanje mikrokontrolera
93
  • Slika 4 prikazuje fizicki izgled plocice MCB 2130
    u štampanoj formi, i raspored osnovnih gradivnih
    blokova

Slika 4 Fizicki izgled razvojne plocice
94
  • Ostali sastavni delovi razvojne plocice su
  • a) kristalni oscillator
  • b) CPU LPC2138
  • c) pobudni drajverski stepen za LED diode
  • d) potenciometar kojim se kontroliše rad
    ugradenog
  • zvucnika

95
Blok-šema sistema koja se odnosi na razvojnu
plocicu je prikazana na slici 5.
Slika 5 Blok šema sistema
96
  • CPU Integrisano kolo LPC2138 je proizvod firme
    Phillips. Ovaj mikrokontroler poseduje 64-pina.
    Baziran je na procesoru ARM7.
  • LPC2138 poseduje dva dvosmerna U / I porta
  • Postoje dva pina za prikljucenje oscilatora (12
    MHz), jedan za reset, jedan za dovod frekvencije
    od 32.768 MHz, i dvanaest za napajanje (slika 6).

Slika 6 Blok šema CPU
97
  • Kratkospajaci njihovo postavljanje definiše
    konfiguraciju razvojne plocice. Ukupno postoje
    dvanaest (oznaceni sa
Write a Comment
User Comments (0)
About PowerShow.com