SlideShare a Scribd company logo
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
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)
Tablica skinuta s: http://www.atmel.com/Images/45107A-Choosing-a-MCU-Fredriksen_Article_103114.pdf
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
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)
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)
Novac
● http://www.keil.com/arm/mdk.asp
– http://www.tagor.rs/files/cenovnici/Keil_pricelist_USD_2012.pdf
● http://www.embeddedartists.com/products/kits
– http://www.skriptarnica.hr/opis.aspx?
proizvodID=7PMOD001
● https://www.pjrc.com/teensy/
● http://www.ebay.com/sch/i.html?
_from=R40%7CR40&_sacat=0&_nkw=STM32+ARM+
Cortex-+M3&_sop=15
Novac
● http://www.atmel.com/products/microcontrollers/avr
● http://www.mouser.com/Semiconductors/Embe
dded-Processors-Controllers/Microcontrollers-
MCU/_/N-a85i8?P=1z0w8ej
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) ?
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
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
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
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
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
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
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/
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
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
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
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
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
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/
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).
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)
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
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

More Related Content

Similar to [ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016

Ivy Bridge - Maturski rad
Ivy Bridge - Maturski radIvy Bridge - Maturski rad
Ivy Bridge - Maturski rad
Adi Zeljkovic
 
[ERRO] Predavanje: FPGA 12.1.2017
[ERRO] Predavanje: FPGA 12.1.2017 [ERRO] Predavanje: FPGA 12.1.2017
[ERRO] Predavanje: FPGA 12.1.2017
Stipe Predanic
 
Seminar Grafičke kartice- Prezentacija.pptx
Seminar Grafičke kartice- Prezentacija.pptxSeminar Grafičke kartice- Prezentacija.pptx
Seminar Grafičke kartice- Prezentacija.pptx
NadanBazdulj1
 
Mogućnosti korištenja mikrokontrolera u obrazovanju i raniji slični projekti
Mogućnosti korištenja mikrokontrolera u obrazovanju i raniji slični projektiMogućnosti korištenja mikrokontrolera u obrazovanju i raniji slični projekti
Mogućnosti korištenja mikrokontrolera u obrazovanju i raniji slični projekti
Goran Igaly
 
[ERRO] Predavanje: Komunikacija s mikroupravljačem 8.12.2016
[ERRO] Predavanje: Komunikacija s mikroupravljačem 8.12.2016 [ERRO] Predavanje: Komunikacija s mikroupravljačem 8.12.2016
[ERRO] Predavanje: Komunikacija s mikroupravljačem 8.12.2016
Stipe Predanic
 
Cnc proces ima_pet_osnovnih_koraka
Cnc proces ima_pet_osnovnih_korakaCnc proces ima_pet_osnovnih_koraka
Cnc proces ima_pet_osnovnih_korakaNenad Pejic
 
Automatizacija industrijskih postrojenja
Automatizacija industrijskih postrojenjaAutomatizacija industrijskih postrojenja
Automatizacija industrijskih postrojenja
Darbob
 
Asc photomath-2016 169
Asc photomath-2016 169Asc photomath-2016 169
Asc photomath-2016 169
Jurica Cerovec
 
Dijelovi racunala
Dijelovi racunalaDijelovi racunala
Dijelovi racunala
Davor Budimir
 
Izgradnja OS-a uporabom mikrojezgre
Izgradnja OS-a uporabom mikrojezgreIzgradnja OS-a uporabom mikrojezgre
Izgradnja OS-a uporabom mikrojezgre
Senko Rašić
 
Sistemskog i mreznog administratora .docx
Sistemskog i mreznog administratora .docxSistemskog i mreznog administratora .docx
Sistemskog i mreznog administratora .docx
stevadobrota
 
ITshowoff Zagreb: Skalabilna web rjesenja
ITshowoff Zagreb: Skalabilna web rjesenjaITshowoff Zagreb: Skalabilna web rjesenja
ITshowoff Zagreb: Skalabilna web rjesenja
Dinko Korunic
 
Java card (2003)
Java card (2003)Java card (2003)
Java card (2003)
Vatroslav Mihalj
 
Fer Presentation Hr
Fer Presentation HrFer Presentation Hr
Fer Presentation HrNino Kurtalj
 
Operacijski Sustavi - Osnove
Operacijski Sustavi - OsnoveOperacijski Sustavi - Osnove
Operacijski Sustavi - Osnove
Nikola Damjanović
 

Similar to [ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016 (20)

Ivy Bridge - Maturski rad
Ivy Bridge - Maturski radIvy Bridge - Maturski rad
Ivy Bridge - Maturski rad
 
Infopult
InfopultInfopult
Infopult
 
[ERRO] Predavanje: FPGA 12.1.2017
[ERRO] Predavanje: FPGA 12.1.2017 [ERRO] Predavanje: FPGA 12.1.2017
[ERRO] Predavanje: FPGA 12.1.2017
 
Seminar Grafičke kartice- Prezentacija.pptx
Seminar Grafičke kartice- Prezentacija.pptxSeminar Grafičke kartice- Prezentacija.pptx
Seminar Grafičke kartice- Prezentacija.pptx
 
Mogućnosti korištenja mikrokontrolera u obrazovanju i raniji slični projekti
Mogućnosti korištenja mikrokontrolera u obrazovanju i raniji slični projektiMogućnosti korištenja mikrokontrolera u obrazovanju i raniji slični projekti
Mogućnosti korištenja mikrokontrolera u obrazovanju i raniji slični projekti
 
[ERRO] Predavanje: Komunikacija s mikroupravljačem 8.12.2016
[ERRO] Predavanje: Komunikacija s mikroupravljačem 8.12.2016 [ERRO] Predavanje: Komunikacija s mikroupravljačem 8.12.2016
[ERRO] Predavanje: Komunikacija s mikroupravljačem 8.12.2016
 
Cnc proces ima_pet_osnovnih_koraka
Cnc proces ima_pet_osnovnih_korakaCnc proces ima_pet_osnovnih_koraka
Cnc proces ima_pet_osnovnih_koraka
 
Automatizacija industrijskih postrojenja
Automatizacija industrijskih postrojenjaAutomatizacija industrijskih postrojenja
Automatizacija industrijskih postrojenja
 
Asc photomath-2016 169
Asc photomath-2016 169Asc photomath-2016 169
Asc photomath-2016 169
 
Natjecanje za srednjoskolce - Osnove informatike
Natjecanje za srednjoskolce - Osnove informatikeNatjecanje za srednjoskolce - Osnove informatike
Natjecanje za srednjoskolce - Osnove informatike
 
Dijelovi racunala
Dijelovi racunalaDijelovi racunala
Dijelovi racunala
 
Tru64-Mreza
Tru64-MrezaTru64-Mreza
Tru64-Mreza
 
Izgradnja OS-a uporabom mikrojezgre
Izgradnja OS-a uporabom mikrojezgreIzgradnja OS-a uporabom mikrojezgre
Izgradnja OS-a uporabom mikrojezgre
 
Sistemskog i mreznog administratora .docx
Sistemskog i mreznog administratora .docxSistemskog i mreznog administratora .docx
Sistemskog i mreznog administratora .docx
 
ITshowoff-Dinko
ITshowoff-DinkoITshowoff-Dinko
ITshowoff-Dinko
 
ITshowoff Zagreb: Skalabilna web rjesenja
ITshowoff Zagreb: Skalabilna web rjesenjaITshowoff Zagreb: Skalabilna web rjesenja
ITshowoff Zagreb: Skalabilna web rjesenja
 
Java card (2003)
Java card (2003)Java card (2003)
Java card (2003)
 
Fer Presentation Hr
Fer Presentation HrFer Presentation Hr
Fer Presentation Hr
 
Tru64-Performanse
Tru64-PerformanseTru64-Performanse
Tru64-Performanse
 
Operacijski Sustavi - Osnove
Operacijski Sustavi - OsnoveOperacijski Sustavi - Osnove
Operacijski Sustavi - Osnove
 

More from Stipe Predanic

Osnove bežičnih mreža - Predavanje: Topologije
Osnove bežičnih mreža - Predavanje: TopologijeOsnove bežičnih mreža - Predavanje: Topologije
Osnove bežičnih mreža - Predavanje: Topologije
Stipe Predanic
 
Osnove bežičnih mreža - Predavanje 4: 802.11 protokoli
Osnove bežičnih mreža - Predavanje 4: 802.11 protokoli Osnove bežičnih mreža - Predavanje 4: 802.11 protokoli
Osnove bežičnih mreža - Predavanje 4: 802.11 protokoli
Stipe Predanic
 
Osnove bežičnih mreža - Predavanje: Antene
Osnove bežičnih mreža - Predavanje: AnteneOsnove bežičnih mreža - Predavanje: Antene
Osnove bežičnih mreža - Predavanje: Antene
Stipe Predanic
 
Osnove bežičnih mreža - Predavanje Bežične radiokomunikacije
Osnove bežičnih mreža - Predavanje Bežične radiokomunikacijeOsnove bežičnih mreža - Predavanje Bežične radiokomunikacije
Osnove bežičnih mreža - Predavanje Bežične radiokomunikacije
Stipe Predanic
 
[ERRO] Predavanje: Napajanje uređaja 8.12.2016
[ERRO] Predavanje: Napajanje uređaja 8.12.2016 [ERRO] Predavanje: Napajanje uređaja 8.12.2016
[ERRO] Predavanje: Napajanje uređaja 8.12.2016
Stipe Predanic
 
[ERRO] Predavanje: RTOS
[ERRO] Predavanje: RTOS[ERRO] Predavanje: RTOS
[ERRO] Predavanje: RTOS
Stipe Predanic
 
[ERRO] Predavanje: 8051
[ERRO] Predavanje: 8051 [ERRO] Predavanje: 8051
[ERRO] Predavanje: 8051
Stipe Predanic
 
[ERRO] Predavanje: Ponavljanje digitalnih sklopova
[ERRO] Predavanje: Ponavljanje digitalnih sklopova [ERRO] Predavanje: Ponavljanje digitalnih sklopova
[ERRO] Predavanje: Ponavljanje digitalnih sklopova
Stipe Predanic
 
[ERRO] Uvodno predavanje (pravila polaganja ispita)
[ERRO] Uvodno predavanje (pravila polaganja ispita) [ERRO] Uvodno predavanje (pravila polaganja ispita)
[ERRO] Uvodno predavanje (pravila polaganja ispita)
Stipe Predanic
 
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 12.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 12. [TVZ računarstvo] Dinamičke web aplikacije, predavanje 12.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 12.
Stipe Predanic
 
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 11.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 11. [TVZ računarstvo] Dinamičke web aplikacije, predavanje 11.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 11.
Stipe Predanic
 
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 10.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 10. [TVZ računarstvo] Dinamičke web aplikacije, predavanje 10.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 10.
Stipe Predanic
 
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 9.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 9. [TVZ računarstvo] Dinamičke web aplikacije, predavanje 9.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 9.
Stipe Predanic
 
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 8.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 8. [TVZ računarstvo] Dinamičke web aplikacije, predavanje 8.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 8.
Stipe Predanic
 
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 7.
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 7. [TVZ Računarstvo] Dinamičke web aplikacije, predavanje 7.
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 7.
Stipe Predanic
 
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 5.
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 5. [TVZ Računarstvo] Dinamičke web aplikacije, predavanje 5.
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 5.
Stipe Predanic
 
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 4.
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 4. [TVZ Računarstvo] Dinamičke web aplikacije, predavanje 4.
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 4.
Stipe Predanic
 
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 3.
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 3. [TVZ Računarstvo] Dinamičke web aplikacije, predavanje 3.
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 3.
Stipe Predanic
 
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 2.
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 2. [TVZ Računarstvo] Dinamičke web aplikacije, predavanje 2.
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 2.
Stipe Predanic
 
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 1.
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 1. [TVZ Računarstvo] Dinamičke web aplikacije, predavanje 1.
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 1.
Stipe Predanic
 

More from Stipe Predanic (20)

Osnove bežičnih mreža - Predavanje: Topologije
Osnove bežičnih mreža - Predavanje: TopologijeOsnove bežičnih mreža - Predavanje: Topologije
Osnove bežičnih mreža - Predavanje: Topologije
 
Osnove bežičnih mreža - Predavanje 4: 802.11 protokoli
Osnove bežičnih mreža - Predavanje 4: 802.11 protokoli Osnove bežičnih mreža - Predavanje 4: 802.11 protokoli
Osnove bežičnih mreža - Predavanje 4: 802.11 protokoli
 
Osnove bežičnih mreža - Predavanje: Antene
Osnove bežičnih mreža - Predavanje: AnteneOsnove bežičnih mreža - Predavanje: Antene
Osnove bežičnih mreža - Predavanje: Antene
 
Osnove bežičnih mreža - Predavanje Bežične radiokomunikacije
Osnove bežičnih mreža - Predavanje Bežične radiokomunikacijeOsnove bežičnih mreža - Predavanje Bežične radiokomunikacije
Osnove bežičnih mreža - Predavanje Bežične radiokomunikacije
 
[ERRO] Predavanje: Napajanje uređaja 8.12.2016
[ERRO] Predavanje: Napajanje uređaja 8.12.2016 [ERRO] Predavanje: Napajanje uređaja 8.12.2016
[ERRO] Predavanje: Napajanje uređaja 8.12.2016
 
[ERRO] Predavanje: RTOS
[ERRO] Predavanje: RTOS[ERRO] Predavanje: RTOS
[ERRO] Predavanje: RTOS
 
[ERRO] Predavanje: 8051
[ERRO] Predavanje: 8051 [ERRO] Predavanje: 8051
[ERRO] Predavanje: 8051
 
[ERRO] Predavanje: Ponavljanje digitalnih sklopova
[ERRO] Predavanje: Ponavljanje digitalnih sklopova [ERRO] Predavanje: Ponavljanje digitalnih sklopova
[ERRO] Predavanje: Ponavljanje digitalnih sklopova
 
[ERRO] Uvodno predavanje (pravila polaganja ispita)
[ERRO] Uvodno predavanje (pravila polaganja ispita) [ERRO] Uvodno predavanje (pravila polaganja ispita)
[ERRO] Uvodno predavanje (pravila polaganja ispita)
 
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 12.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 12. [TVZ računarstvo] Dinamičke web aplikacije, predavanje 12.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 12.
 
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 11.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 11. [TVZ računarstvo] Dinamičke web aplikacije, predavanje 11.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 11.
 
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 10.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 10. [TVZ računarstvo] Dinamičke web aplikacije, predavanje 10.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 10.
 
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 9.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 9. [TVZ računarstvo] Dinamičke web aplikacije, predavanje 9.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 9.
 
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 8.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 8. [TVZ računarstvo] Dinamičke web aplikacije, predavanje 8.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 8.
 
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 7.
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 7. [TVZ Računarstvo] Dinamičke web aplikacije, predavanje 7.
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 7.
 
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 5.
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 5. [TVZ Računarstvo] Dinamičke web aplikacije, predavanje 5.
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 5.
 
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 4.
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 4. [TVZ Računarstvo] Dinamičke web aplikacije, predavanje 4.
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 4.
 
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 3.
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 3. [TVZ Računarstvo] Dinamičke web aplikacije, predavanje 3.
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 3.
 
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 2.
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 2. [TVZ Računarstvo] Dinamičke web aplikacije, predavanje 2.
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 2.
 
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 1.
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 1. [TVZ Računarstvo] Dinamičke web aplikacije, predavanje 1.
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 1.
 

[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)
  • 3. Tablica skinuta s: http://www.atmel.com/Images/45107A-Choosing-a-MCU-Fredriksen_Article_103114.pdf
  • 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)
  • 7. Novac ● http://www.keil.com/arm/mdk.asp – http://www.tagor.rs/files/cenovnici/Keil_pricelist_USD_2012.pdf ● http://www.embeddedartists.com/products/kits – http://www.skriptarnica.hr/opis.aspx? proizvodID=7PMOD001 ● https://www.pjrc.com/teensy/ ● http://www.ebay.com/sch/i.html? _from=R40%7CR40&_sacat=0&_nkw=STM32+ARM+ Cortex-+M3&_sop=15
  • 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