Snimka predavanja Razlika 8 i 32 bitnih mikroupravljača održano 15.12.2016
Video: https://www.youtube.com/watch?v=mi-JyGcmETg&index=20&list=PLYqeapOP_CtQKuyzaHtJz16r5JaM4vs-w
Convert to study materialsBETA
Transform any presentation into ready-made study material—select from outputs like summaries, definitions, and practice questions.
1 of 26
Download to read offline
More Related Content
[ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016
1. 8 / 32 bitni procesori
Tehničko veleučilište u Zagrebu
Elektrotehnički odjel
Stipe Predanić
8.12.2016
Elektronička računala i računalna oprema
2. 8 ili 32 bitni procesor?
● Često pitanje koje inženjer mora riješiti prije izrade samog sklopa
– Iako se na kraju često svede na upoznatost inženjera s nekom platformom
● Potrebno je obratiti pozornost na:
– Cijenu samog mikrokontrolera ali i popratnih hardverskih elemenata
(važan je konačni BOM)
– Potrebne performanse obrade (MIPS, rad s većim cijelim i necijelim
brojevima)
– Dodatna periferija (AD pretvarači, Ethernet i CAN primopredajnici itd)
4. Novac
● Cijena samog 32 bitnog mikrokontrolera je 20-
50% veća od cijene 8 bitnog mikrokontrolera
sličnih karakteristika (vanjska brzina takta, broj i
tip perifernih jedinica)
– Ali radi se cijenama od 2-3US$.
● "Jači" 32 bitni mikrokontroleri cijenom prelaze i
preko 10US$, ali su dobro opremljeni dodanim
perifernim elementima
5. Novac
● 32 bitni mikrokontroleri (u većini slučajeva)
zahtjevaju više dodatnih elemenata za
minimalan rad
– Cijena tih dodatnih elementata povisuje ukupni Bill
of material (BOM)
6. Novac
● Razvoj na 32 bitnim mikroupravljačima je teži zbog njihove
opremeljenosti perifernim elementima
– Svaki element ima svoje kontrolne registre, te je potrebno pozorno
pratiti dokumentaciju
● Tipičan 8 bitni mikrokontroler tvrtke Microchip ili AVR ima dokumentaciju od
200-500 stranica
● Tipična dokumentacija za ARM mikroupravljače je 400 – 1000 stranica
– Ako tvrtka već nema prije kupljenu softversku i hardverski podršku
(compiler i nekakav IDE, razvojne pločice), cijena se uvećava i za
ovu komponentu u R&D (research and development)
9. Performanse
● 8 bitni mikroupravljači imaju 8 bitni ALU
(arithmetic logic unit, odnosno aritmetičko
logičku jedinicu)
– u jednom programskom ciklusu (jedan ili više
strojnih ciklusa) može obraditi dva 8 bitna podatka
● 32 bitni mikroupravljači imaju 32 bitni ALU
● Koliko je velik int (programski jezik C) ?
10. Performanse
● 8 bitni int = 0 – 255 ili -128 – +127
● 16 bitni int = 0 – 65,535 ili -32,768 – +32,768
● 32 bitni int = 0 – 4,294,967,295 ili −2,147,483,648
– +2,147,483,647
● Kako 8 bitni ALU radi s 16 ili 32 bitnim brojevima?
– U koracima, izračuna se dio po dio
11. Performanse
● ALU s manje bitova može izračunati i brojeve
koji imaju više bitova, ali mu za to treba
nekoliko strojnih instrukcija (pa time i strojnih
ciklusa)
– Primjeri:
http://www.piclist.com/techref/microchip/math/32bmath-p
– http://web.media.mit.edu/~stefanm/yano/picc_Math
32.html
12. Performanse
● 32 bitni ALU omogućuje direktan rad s 32
bitnim brojevima u jednom programskom
ciklusu
– U odnosu na 8 bitni mikrokontroler (skoro) za red
veličine brže
13. Performanse
● Atomarna naredba
– izvršavanje jedne akcije u jednoj naredbi (i onda u
jednom ili više strojnih ciklusa)
● računanje s 16 ili 32 bitnim varijablama u 8-
bitnom mikroupravljaču koji koristi i prekide
(interrupte) može dovesti do krivih rezultata
14. Performanse - atomarnost
main (psudokod):
short x; // 16 bit
x++;
ALU će x++ obaviti kao:
x_LOW ++
preljev + x_HIGH
ISR (psudokod):
x=7;
interrupt se može izvesti točno između ove
dvije naredbe
15. Performanse - atomarnost
Primjer: x=255;
00000000 11111111
x_HIGH x_LOW
pri uvećavanju x_LOW dogodit će se preljev te će x_LOW postati 0 (odnosno
00000000 ).
Očekivano ponašanje je da x_HIGH postane 1 u idućoj naredbi, jer se zbroji s preljevom).
No ako se pokrene prekid (interrupt) točno između te dvije naredbe, on će postaviti
vrijednost x_LOW na 00000111, a x_HIGH na 00000000
Po izlasku iz interrupta uvećat će se x_HIGH (zbog preljeva koji je izračunat prije prekida)
i kao rezultat dobivamo
00000001 00000111 => 263
x_HIGH x_LOW
16. Performanse
● 32 bitni mikrokontroleri rade na kraćem
strojnom taktu (viša frekvencija oscilatora),
jedna instrukcija traje kraće, u odnosu na 8
bitne mikrokontrolere
– Npr. ARM Cortex M0, M3 i M4 često rade na 48, 72
ili 96 MHz
● https://developer.mbed.org/platforms/
17. Performanse
● 8 bitni mikrokontroleri su često ograničeni s
dodatnom periferijom, te se neke stvari
odrađuju kroz programski kod
– Dodatna periferija koju 32 bitni mikrokontroleri
donosi daje hardversku podršku za mnoge
protokole, a što daje veću brzinu rada ili neovisnost
rada periferne jedinice na sam CPU mikrokontrolera
18. Performanse
● Rad s necijelim brojevima
– 8 bitni mikroupravljači uobičajeno nemaju podršku za
necijele brojeve (float)
● Softverska emulacija necijelih brojeva je spora i nepraktična
– Bolji 32 bitni mikroupravljači imaju FPU (floating point
unit) koji hardverski obrađuju necijele brojeve
● Ako se i obrađuje softverski, 32 bitni IEEE754 float (standardni
C float) se lako obrađuje u samo par strojnih instrukcija
19. Performanse
● Kako bi se izbjegao problem s "nepreciznosti" float brojeva te
ubrzao rad, na mikroupravljačima se često koristi metoda
cjelobrojne aritmetike (fixed point arithmetic)
– Ideja je da se necijeli brojevi pišu u cjelobrojnom obliku a podrazumjeva se
neki odnos prema jediničnoj vrijednosti
● Npr. Vrijednost 1 u cjelobrojnoj aritmetici je stvarnih 0.01 (odnos 1/100)
– Tada je 123 zapravo 1.23, a 588 = 5.88
– Problem su greške daljnjih međurezultata koji bi dali više decimala: npr. 1.23 * 5.87 = 7.2324, ali
123*588 daju 72324 koji se sreže na 723 (jer se odnos multiplicira) te se gubi 1/4 cijele vrijednosti.
● http://www.i-programmer.info/news/149-security/8548-reboot-your-dreamliner-every-
248-days-to-avoid-integer-overflow.html
20. Performanse
● Zbog svoje interne kompleksnosti, neke stvari
na 32 bitnom mikrokontroleru traju "dulje" (u
broju ciklusa) u odnosu na 8 bitne
Tablica skinuta s: http://www.atmel.com/Images/45107A-Choosing-a-MCU-Fredriksen_Article_103114.pdf
21. Performanse
● Zbog povećanih performansi 32 bitni
mikroupravljači uobičajeno koriste ukupno
više električne energije, ali su efikasniji
gledajući prema brzini obrade
Tablica skinuta s: http://www.atmel.com/Images/45107A-Choosing-a-MCU-Fredriksen_Article_103114.pdf
22. Performanse
● Zbog veće brzine rada i obrade, 32 bitni
mikroupravljači mogu imati i primitivne real-time
operacijske sustave koji se brinu za paralelan rad
više "aplikacija" u sustavu
● http://www.keil.com/rtos/
● Pogledati prijašnje predavanje
– Neke od ideja se mogu iskoristiti i u 8 bitnim
mikroupravljačima, ali često nema dovoljno slobodnog
vremena za "punokrvni" sustav
● http://www.chibios.org/
23. Dodatna periferija
● Mnogi dodatni hardverski elementi olakšavaju komunikaciju
mikroupravljača s vanjskim svijetom
– 8 bitni ostaju na razini USB, I2C, SPI, CAN te jednostavna AD
konverzija
● Danas se rad i na podršci za bežične tehnologije
– 32 bitni ulaze u područje Etherneta (puni TCP/IP protokolni stog),
LCD driver, bežične tehnologije, kvalitetniji DAC, a standardne
elemente multipliciraju na više parova nožica (npr. Višestruka
podrška za I2C ili USB).
24. 8 ili 32 bitni procesor?
● 8 bitni - za jednostavne baterijski upravljane
sklopove koji većinu vremena spavaju (npr.
očitavanje senzora i djelovanje po tome i potom
nastavak "spavanja)
● 32 bitni – za složenije sklopove koji moraju
obavljati puno izračuna i baratati s duljim
nizovima bitova (npr. 32 bitna IP adresa)
25. 32 bitni ili 64 bitni procesor?
● Unazad 10 godina dolaze jeftina mala
"računala"
– Set top box
– Tablet
– Smartphone
● Upotreba potpunih miniračunala u embedded
svijetu je zapravo uobičajena, ali se nije toliko
potenciralo kao u zadnjih nekoliko godina
26. 32 bitni ili 64 bitni procesor?
● Za nisku cijenu su dostupna ARM računala s mikroprocesorima
(sklopovski dodani RAM, ROM i ostali nužni elementi) koji imaju
otvorene neke pinove za komunikaciju s vanjskim svijetom
– Regularna, jača
● Raspberry Pi
● Orange Pi, Banana Pi
● BeagleBone
– Manja, slabija
● Rapberry Pi Zero
● CHIP
https://www.kickstarter.com/projects/1598272670/chip-the-worlds-first-9-computer