26
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

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

Embed Size (px)

Citation preview

Page 1: [ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016

8 / 32 bitni procesori

Tehničko veleučilište u ZagrebuElektrotehnički odjel

Stipe Predanić8.12.2016

Elektronička računala i računalna oprema

Page 2: [ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016

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)

Page 3: [ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016

Tablica skinuta s: http://www.atmel.com/Images/45107A-Choosing-a-MCU-Fredriksen_Article_103114.pdf

Page 4: [ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016

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

Page 5: [ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016

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)

Page 6: [ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016

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)

Page 7: [ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016

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

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

Novac

● http://www.atmel.com/products/microcontrollers/avr/default.aspx

● http://www.mouser.com/Semiconductors/Embedded-Processors-Controllers/Microcontrollers-MCU/_/N-a85i8?P=1z0w8ej

Page 9: [ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016

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) ?

Page 10: [ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016

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

Page 11: [ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016

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-ph.htm

– http://web.media.mit.edu/~stefanm/yano/picc_Math32.html

Page 12: [ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016

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

Page 13: [ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016

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

Page 14: [ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016

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

Page 15: [ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016

Performanse - atomarnost

Primjer: x=255;

00000000 11111111

x_HIGH x_LOWpri 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

Page 16: [ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016

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/

Page 17: [ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016

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

Page 18: [ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016

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

Page 19: [ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016

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

Page 20: [ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016

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

Page 21: [ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016

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

Page 22: [ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016

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/

Page 23: [ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016

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).

Page 24: [ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016

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)

Page 25: [ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016

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

Page 26: [ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016

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