Kysymys:
Mikrokontrollerit / mikroprosessorit ja erilaiset bittiversiot, mikä ero on?
capcom
2013-01-21 10:18:02 UTC
view on stackexchange narkive permalink

Yleisenä suunnitteluharrastajana opin enemmän mikrokontrollerien maailmasta joka päivä. Yksi asia, jota en oikein ymmärrä, on kuitenkin mikrokontrollerin bittiversion merkitys.

Olen käyttänyt ATmega8: ta useita kuukausia, ja se näyttää toimivan hyvin tarkoituksiini. Tiedän, kuinka esimerkiksi kellonopeus, muisti, IO-nastojen lukumäärä, tietoliikenneväylätyypit jne. Erottavat mikrokontrollerin toisesta. Mutta en oikein ymmärrä esimerkiksi 8-bittisten vs. 16-bittisten ja 32-bittisten merkitystä. Ymmärrän, että korkeamman bittisen version avulla laite voi tallentaa suurempia numeroita, mutta jälleen kerran, miten tämä vaikuttaa päätökseeni? Jos suunnittelen tuotetta, minkä hypoteettisen skenaarion perusteella päätän, että 8-bittinen prosessori ei yksinkertaisesti toimi ja tarvitsen jotain korkeampaa.

Onko mitään syytä uskoa, että teoreettinen 32 ATmega8-bittinen muunnos (kaikki muut asiat yhtä suuret) olisi parempi kuin 8-bittinen versio (jos sellainen laite olisi mahdollinen)?

Puhun ehkä hölynpölyä, mutta luulen, että se johtuu hämmennystäni.

Tähän liittyen, http://electronics.stackexchange.com/questions/42784/why-are-there-no-256-bit-or-512-bit-microprocessors/42787#42787
Kaksi vastused:
Chris Stratton
2013-01-21 10:50:38 UTC
view on stackexchange narkive permalink

Se ei voi tallentaa numeroiden leveyttä, se on leveys, jolla se voi toimia yhdellä kertaa. Tavallisesti (mutta ei välttämättä) tällä on myös jonkin verran korrelaatiota natiivimuistin osoitteen leveyteen ja siten tallennustilan määrään, joka voidaan helposti kartoittaa ilman rumaa kiertotapaa, kuten segmentointia tai pankkikytkentää.

Nykyiset 32-bittiset ytimet ovat useimmiten parempia kuin 8-mallit (joustavuus, kiinteän muistin malli ja tietysti suorituskyky), suurimpia poikkeuksia ovat vanhat järjestelmät, sovellukset, joiden volyymi ja hintapaine ovat erittäin suuret ( muuten hinnoittelulla on taipumus korreloida paremmin sirun muistikoon kanssa kuin ytimen leveydellä) ja prosessin / tiheyden sivuvaikutuksilla. Myöhempi voi tarjota esimerkiksi 5v-toimintaa tai mahdollisesti joissakin tapauksissa suurempaa säteilykovuutta tai yksinkertaisuusetua, jos yritetään todistaa, että itse suorittimen suunnittelussa ei ole logiikkavirheitä. Viimeinen prosessi / ikä-sivuvaikutus monille harrastajille on, että DIP-pakettien 8-bittiset ytimet ovat yleisiä, kun taas tällaisissa paketeissa olevat 32-bittiset laitteet ovat harvinaisempia (vaikka niitä onkin olemassa).

Leveys, jonka se pystyy käsittelemään yhdellä kertaa, voi olla tärkeä, kun synkronoidaan ohjelman asynkronisia osia. Jos sinun on luettava 16-bittinen arvo 8-bittisellä mikrolla, sinun on todennäköisesti ensin poistettava keskeytykset käytöstä, jota kannattaa välttää pitämään ISR-vasteaika matalana.
Toinen piirre, jossa jotkut 8-bittiset mikrosumut voivat olla parempia kuin ARM (suosituin 32-bittinen arkkitehtuuri), on I / O-bittisäätö. PIC 18Fxx (8-bittinen) voi asettaa tai tyhjentää minkä tahansa bitin I / O-tilassa yhdellä käskyllä ​​riippumatta siitä, mitä rekistereitä on, kun taas ARM vaatii yleensä monivaiheisen prosessin. ARM-sirut voivat suorittaa enemmän ohjeita sekunnissa kuin tällä hetkellä saatavilla olevat PIC-sirut (joitain pieniä 100 MHz: n PIC-yhteensopivia siruja oli aiemmin saatavana Scenixiltä, ​​mutta luulen, että ne lopetettiin), mutta jopa saatavilla olevat PIC: t voivat silti tehdä jonkinlaista bittiä nopeammin.
Vaikka vähemmän yleinen, joillakin ARM-laitteilla on asioita, kuten GPIOx_BSRR / GPIOx_BRR -rekisterit, joihin voidaan kirjoittaa yksittäisten GPIO-bittien asettamiseksi tai tyhjentämiseksi.
Garrett Fogerlie
2013-01-21 10:45:31 UTC
view on stackexchange narkive permalink

Bittiarvo on tietoväylän tai dataputken koko, mikä tarkoittaa, että 8-bittinen MCU voi (suurimmaksi osaksi) toimia vain arvojen ollessa 0 - 255 kullakin kellojaksolla. Ajattele sitä, koska prosessorissa on 8 digitaalista linjaa rinnakkain. Ja 16-bittisessä on 16 riviä ja 32-bittisessä on 32 riviä. Joten jokaiselle kellojaksolle se lukee nämä tietorivit, ja mitä enemmän rivejä, sitä korkeampi arvo voi toimia kellosykliä kohti.

8 bit = \ $ 2 ^ 8 \ $ = \ $ 256 \ $

16 bittiä = \ $ 2 ^ {16} \ $ = \ 65536 $ \ $

32 bittiä = \ $ 2 ^ {32} \ $ = \ $ 4,294,967,296 \ $

Suuremmat tietoväylät antavat myös prosessorille pääsyn suurempiin muistiosoitteisiin.

Tällä on suuri ero matemaattisissa operaatioissa. 16-bittinen luku antaa sinulle paljon enemmän tarkkuutta kuin 8-bittiset numerot. 16-bittiset mikrokontrollerit ovat tehokkaampia myös matematiikkaoperaatioiden käsittelyssä yli 8-bittisillä numeroilla. 16-bittinen mikrokontrolleri voi toimia automaattisesti kahdella 16-bittisellä numerolla, kuten kokonaisluvun yleinen määritelmä. Mutta kun käytät 8-bittistä mikro-ohjainta, prosessi ei ole niin suoraviivainen. Tällaisilla numeroilla toimivat toiminnot vievät lisäjaksoja. Riippuen sovelluksen intensiivisestä käsittelystä ja monista laskelmista, tämä voi vaikuttaa piirin suorituskykyyn.

8- ja 16-bittisen mikrokontrollerin välinen ero



Tämä Q & A käännettiin automaattisesti englanniksi.Alkuperäinen sisältö on saatavilla stackexchange-palvelussa, jota kiitämme cc by-sa 3.0-lisenssistä, jolla sitä jaetaan.
Loading...