Perché i microcontrollori hanno così poca RAM?


39

Forse questo è più un problema percettivo, ma sembra che i microcontrollori siano avanzati a passi da gigante negli ultimi 20 anni, in quasi tutti gli aspetti, maggiore velocità di clock, più periferiche, debug più semplice, core a 32 bit, ecc ...

È ancora comune vedere la RAM tra i 10 di KB (16/32 KB).

Non sembra che potrebbe essere un problema di costi o dimensioni direttamente. È un problema di complessità con il controller RAM sopra una certa soglia?

O è solo che non è generalmente richiesto?

Osservando una matrice di parti presso un famoso fornitore di Internet, vedo un Cortex M4 con 256 KB per meno di $ 8 USA, e poi per qualche dollaro in più ne puoi trovare alcuni in più senza ROM, ma sembra piuttosto scarso ...

Non ho esattamente bisogno di un microcontrollore con un MB di memoria volatile, ma sembra che qualcuno potrebbe ...


8
Forse c'è una ragione più tecnica, ma a me sembra che possa trattarsi di mercati. Usi i microcontrollori quando hai applicazioni che li usano, quando hai bisogno di qualcosa in più di potenza, di solito passi a un sistema embedded più completo.
Jarrod Christman,

15
10s di kB. È enorme. Il mio microcontrollore da utilizzare nella prototipazione ha 68 byte di RAM: en.wikipedia.org/wiki/PIC16x84
slebetman

2
Una volta ho scritto un rasterizzatore software 3D in 86B su un Arduino con 2 KB di RAM. Mi ha fatto arrabbiare perché se avessi avuto anche solo 10 KB o 50 KB avrei potuto effettivamente iniziare a montare modelli reali in memoria e fare qualcosa di interessante. All'epoca avevo esattamente la stessa domanda e non credo che le risposte attuali affrontalo abbastanza bene. Sì, SRAM è costoso, ma le CPU hanno megabyte di cache fatte da SRAM, eppure sono ancora abbastanza economiche. Sembra una scusa zoppa.
imallett,

2
@slebetman qualche motivo per cui ti piace un micro di 20 anni quando i dispositivi molto migliori sono più ampiamente disponibili ed economici?
segna il

3
it seems like somebody mightè il trucco qui, la maggior parte della gente no. Non eseguirai esattamente lo streaming di Netflix su quel chip e il 64 KB è in genere più che sufficiente per tutto ciò che devi fare con un microcontrollore . Se vuoi andare più in alto, prendi un comp completo, ad esempio un lampone.
TC1

Risposte:


44

Ci sono diverse ragioni per questo.

Innanzitutto, la memoria occupa molta area di silicio. Ciò significa che l'aumento della quantità di RAM aumenta direttamente l'area del silicio del chip e quindi il costo. L'area di silicio più grande ha un effetto "double whammy" sul prezzo: chip più grandi significano meno chip per wafer, specialmente attorno al bordo, e chip più grandi indicano che ogni chip ha maggiori probabilità di avere un difetto.

Il secondo è il problema del processo. Gli array di RAM dovrebbero essere ottimizzati in modi diversi rispetto alla logica e non è possibile inviare parti diverse dello stesso chip attraverso processi diversi: l'intero chip deve essere prodotto con lo stesso processo. Ci sono fondamenti di semiconduttori che sono più o meno dedicati alla produzione di DRAM. Non CPU o altra logica, solo DRAM. La DRAM richiede condensatori efficienti in termini di area e transistor a dispersione molto bassa. La fabbricazione dei condensatori richiede un'elaborazione speciale. Realizzare transistor a bassa perdita produce transistor più lenti, il che è un ottimo compromesso per l'elettronica di lettura DRAM, ma non sarebbe così buono per la costruzione di logiche ad alte prestazioni. Produrre DRAM su una matrice di microcontrollori significherebbe che in qualche modo sarebbe necessario compromettere l'ottimizzazione del processo. Le matrici RAM di grandi dimensioni hanno anche maggiori probabilità di sviluppare guasti semplicemente a causa della loro ampia area, riducendo la resa e aumentando i costi. Anche il test di array RAM di grandi dimensioni richiede molto tempo e pertanto l'inclusione di array di grandi dimensioni aumenterà i costi di test. Inoltre, le economie di scala riducono il costo dei chip RAM separati più dei microcontrollori specializzati.

Il consumo di energia è un altro motivo. Molte applicazioni integrate sono limitate dal punto di vista dell'alimentazione e, di conseguenza, vengono creati molti microcontrollori in modo che possano essere messi in uno stato di sospensione a bassissima potenza. Per consentire una sospensione a bassissima potenza, viene utilizzato SRAM grazie alla sua capacità di mantenere i suoi contenuti con un consumo estremamente basso. SRAM con batteria può mantenere il suo stato per anni senza una singola batteria a bottone da 3V. DRAM, d'altra parte, non può mantenere il suo stato per più di una frazione di secondo. I condensatori sono così piccoli che una manciata di elettroni fuoriesce nel substrato o perde attraverso i transistor cellulari. Per combattere questo, DRAM deve essere continuamente letto e riscritto. Di conseguenza, DRAM consuma molta più energia rispetto a SRAM in idle.

D'altro canto, le celle bit SRAM sono molto più grandi delle celle bit DRAM, quindi se è richiesta molta memoria, DRAM è generalmente un'opzione migliore. Questo è il motivo per cui è abbastanza comune usare una piccola quantità di SRAM (da KB a MB) come memoria cache su chip accoppiata a una quantità maggiore di DRAM off-chip (da MB a GB).

Sono state utilizzate alcune tecniche di progettazione molto interessanti per aumentare la quantità di RAM disponibile in un sistema incorporato a basso costo. Alcuni di questi sono pacchetti multi chip che contengono matrici separate per il processore e la RAM. Altre soluzioni prevedono la produzione di pad nella parte superiore del pacchetto CPU in modo da poter impilare un chip RAM. Questa soluzione è molto intelligente poiché diversi chip RAM possono essere saldati sulla CPU in base alla quantità di memoria richiesta, senza necessità di instradamento a livello di scheda aggiuntivo (i bus di memoria sono molto ampi e occupano molto spazio sulla scheda). Si noti che questi sistemi di solito non sono considerati microcontrollori.

Molti sistemi embedded molto piccoli non richiedono comunque molta RAM. Se hai bisogno di molta RAM, probabilmente vorrai utilizzare un processore di fascia alta con DRAM esterna invece della SRAM integrata.


Ho visto veri e propri circuiti integrati RAM con gambe e tutto incollato / posizionato sopra i processori (che sono pacchetti BGA) e li ho instradati! Le cose che facciamo per lo spazio sulla tavola !! Come sottolineano i russi con la loro metodologia di progettazione TRIZ, se esaurisci lo spazio in X e Y, vai a Z :)
KyranF

2
+1 Per l'importante distinzione tra SRAM e DRAM. SRAM è più veloce e più efficiente dal punto di vista energetico, in particolare quando è inattivo, ma come notate, è molto più costoso e richiede più spazio.
Fizzle

Non credo che SRAM sia il tipo di RAM più costoso. Una combinazione di infradito e multiplexer può essere utilizzata come memoria ad accesso casuale che offrirà prestazioni migliori rispetto a SRAM, ma a un costo di silicio molto maggiore. Tali memorie di solito non diventano molto più grandi di circa 32 parole, ma una tale memoria può ospitare letture e scritture simultanee in modi impossibili per una SRAM.
supercat,

1
È vero, i file di registro e le infradito complete sono più costosi di SRAM, ma non vengono utilizzati per la memoria di sistema per scopi generici.
alex.forencich,

1
Ho visto un server HTTP funzionante su una MCU con 160 KB di SRAM e nessuna DRAM esterna. Non è stato in grado di gestire molte connessioni parallele ma ha funzionato.
Jan Dorniak,

15

La memoria probabilmente occupa la maggior parte dello spazio di silicio e la RAM, essendo molto veloce da usare, è volatile e usa costantemente l'energia per mantenere il suo stato. A meno che non sia necessaria molta RAM, non è utile per molte altre applicazioni. Se un progettista di sistemi embedded ha bisogno di più RAM, ottiene semplicemente un chip RAM esterno e utilizza interfacce di memoria periferica che i microcontrollori hanno spesso in questi giorni per un'estensione della memoria plug and play molto semplice. Questo è il motivo per cui vedo perché i microcontrollori in generale hanno ancora una RAM integrata bassa ragionevole, perché gli scenari di codice applicazione ragionevole e casi d'uso normalmente non hanno bisogno di molto.

Quando inizi ad avvicinarti alle architetture più grandi che devono funzionare a pieno nei sistemi operativi, la RAM diventa estremamente importante, tuttavia questo esce dal regno dei microcontrollori e nei computer embedded più simili a quelli che vedi nelle schede Beaglebone e Raspberri Pi giorni. E anche in questa fase, i processori sono così complessi e così ricchi di funzionalità che non hanno spazio per la quantità di RAM necessaria per il loro compito, quindi la memoria esterna è praticamente necessaria per il loro funzionamento.

MODIFICARE:

Come aneddoto personale, di recente ho realizzato una piccola scheda di controllo robot autonoma con l'obiettivo di utilizzarla per la visione del computer a bassa risoluzione come il rilevamento del movimento e il tracciamento e il seguito degli oggetti. Ho scelto un ARM Cortex M3 a basso numero di pin per questo compito e mentre guardavo la selezione di Atmel dei loro processori della serie SAM3, in effetti ho cercato la RAM più alta che potessi trovare - perché in questo caso non volevo acquistare un IC RAM esterno a causa dello spazio sulla scheda e non volendo la complessità di un bus di memoria RAM ad alta velocità sul PCB. In questo caso per la mia particolare applicazione, mi sarebbe piaciuto molto avere l'opzione di molti centinaia di KB di RAM in più, se possibile.


buon punto non ho nemmeno pensato al consumo di energia ...
Grady Player

4
"e la RAM essendo volatile ma molto veloce da usare, consuma costantemente energia per mantenere il suo stato" a malapena. La logica CMOS, inclusa SRAM, consuma pochissima energia quando non cambia stato. Si noti che la maggior parte dei microcontrollori conserva i propri contenuti RAM anche in modalità di spegnimento a consumo estremamente basso.
Chris Stratton,

@ChrisStratton: ho visto un numero di microcontrollori, di un paio di produttori diversi, con modalità che spengono parte della loro RAM per risparmiare energia, anche se un po 'fastidiosamente quelle che ho visto non consentono l'accensione della RAM senza un ripristino del sistema. Non sono sicuro di quale sia lo scopo di quest'ultima restrizione; se ho bisogno di un grosso pezzo di RAM per l'archiviazione temporanea durante determinate operazioni, ma non altrimenti, non vedo perché non dovrei essere in grado di accenderlo quando necessario e spegnerlo quando non lo è, ma non ho visto un tale caratteristica.
supercat,

14

Oltre agli eccellenti punti evidenziati nelle altre risposte, un altro motivo per la RAM limitata è l'architettura del microcontrollore. Ad esempio, prendi il Microchip PIC10LF320, che ha solo 448 byte di memoria del programma (flash) e 64 byte di RAM. Ma probabilmente costa solo 25 ° (o meno) in grandi quantità. La dimensione limitata della parola di istruzione PIC10 (12 bit) consente di indirizzare direttamente solo 128 byte di RAM.

Sono sicuro che ci sono altri microcontrollori là fuori che hanno solo un bus di indirizzo a 8 bit, limitandoli a 256 byte di RAM.

Ma la maggior parte dei microcontrollori di fascia media (anche quelli con percorsi di dati a 8 bit), hanno un bus di indirizzo a 16 bit. Una considerazione architettonica importante per questi chip è se il chip utilizza l' architettura Harvard o Von Neumann .

La maggior parte dei microcontrollori utilizza l'architettura Harvard, che ha spazi di indirizzi separati a 16 bit per memoria di programma, RAM e indirizzi I / O mappati in memoria. Pertanto, per questi, il bus degli indirizzi a 16 bit può accedere a 64 KB (65.536) byte di RAM. Esiste ancora un limite di 64 KB posto dall'architettura e se si vuole andare oltre, è necessario utilizzare una sorta di paging. È molto più comune avere il paging per lo spazio del programma piuttosto che per lo spazio RAM.

I microcontrollori che utilizzano l'architettura Von Neumann, come la linea Freescale HCS08, hanno solo uno spazio di indirizzi suddiviso tra memoria del programma, RAM e I / O mappati in memoria. Per avere una ragionevole quantità di spazio sul programma, questo limita la quantità di RAM a 4K o 8K. Ancora una volta, è possibile utilizzare il paging per aumentare il programma disponibile o lo spazio RAM.


1
Devi tenere a mente, tuttavia, che il core PIC è così totalmente inefficace dal codice, che consumerà un sacco di flash extra per niente. E uno dei motivi per cui non ha bisogno di molta RAM, è perché ha gravi restrizioni, ad esempio la profondità dello stack delle chiamate.
Lundin,

@Lundin D'accordo, è necessario programmare con molta attenzione l'originale PIC10 e PIC12 nel linguaggio assembly . I nuovi dispositivi PIC12F e PIC16F ora hanno uno stack hardware a 16 livelli e 14 nuove istruzioni. alcuni aggiunti solo per C, quindi sono molto più utilizzabili.
Tcrosley,

@Lundin: I chip PIC con lunghezze di istruzione di 12 e 14 bit erano abbastanza decenti per la densità del codice che pensavo. Il PIC18F è il punto in cui la densità del codice tende a ridursi quando si utilizza il compilatore HiTech a causa dell'eccessiva quantità di commutazione del banco che era generalmente richiesta.
supercat

7

Avendo lavorato con microcontrollori e piccoli sistemi per un bel po 'di tempo, vorrei sottolineare che abbastanza spesso è necessaria pochissima RAM. Ricorda che anche se un MCU può essere in grado di realizzare molto, la tendenza in questi giorni è quella di utilizzare molti più MCU che mai prima d'ora, e di usarne di più per distribuire molte attività in sistemi più grandi. Ciò combinato con il fatto che, diversamente dai sistemi di sviluppo gonfio necessari per la programmazione in Windows, lo sviluppo MCU utilizza spesso compilatori ottimizzati molto bene, molto spesso con codice sorgente C e C ++ molto efficiente, a volte con un sovraccarico del sistema operativo scarso o nullo. Mentre potresti a malapena scrivere un programma Windows per visualizzare il tuo nome su qualsiasi dispositivo senza consumare almeno centinaia di kilobyte comprese le risorse del sistema operativo,

Sicuramente, ci sono problemi di costi e di spazio, come altri hanno sottolineato. Ma la storia a portata di mano qui è che ciò che è considerato una piccola quantità di RAM dai nuovi arrivati ​​in questi giorni è davvero un po 'più che mai, e nel frattempo i componenti e i dispositivi con cui la MCU dovrà interfacciarsi stanno diventando sempre più intelligenti. Onestamente, il mio più grande uso della RAM in molte applicazioni MCU recentemente è stato per i buffer di comunicazione guidati da interruzioni, per liberare l'MCU per altre attività senza paura di perdere dati. Ma che ci crediate o no, per la logica ordinaria e la funzionalità computazionale, le MCU si adattano abbastanza bene alle loro limitate risorse RAM e flash integrate e potete davvero fare molto con pochissimo.

Tieni presente che una volta, i videogiochi famosi con una grafica grezza ma una logica di gioco complessa come "PAC Man" e "Space Invaders" erano in genere realizzati all'interno di ROM 8K, su macchine che avevano a malapena 8 o 16 KB di RAM!


Che dire delle schede SD? Le schede SDHC non richiedono un buffer di 256 o 512 byte (le schede SD standard / vecchie non vengono più prodotte)?
Peter Mortensen,

La versione di Pac Man per il sistema video-computer Atari 2600 era 4K ROM e lo stesso VCS aveva 128 byte di RAM. Molte macchine arcade avevano una discreta porzione di ROM e RAM, tuttavia, rispetto ai computer di casa dell'epoca. Penso che Defender, ad esempio, avesse 32 K o ROM e 64 K di RAM, sebbene 32 K di RAM fossero "di sola scrittura" dal punto di vista della CPU (il processore avrebbe inserito lì i dati che l'hardware del display avrebbe fatto uscire dal monitor) .
supercat,

@PeterMortensen Molte schede SD hanno una CPU integrata di qualche tipo per gestire il flash. Alcune schede hanno un core ARM a 32 bit completo che probabilmente ha 16 o 32 KB di RAM collegati.
alex.forencich,

@ alex.forencich: Sì, ma l'interfaccia SPI per il funzionamento di una scheda SD SDHC non richiede un buffer sul lato host (sistema incorporato / microcontrollore), a differenza delle schede più vecchie? Cioè, l'indirizzamento dei bit non è più possibile per le schede più recenti (SDHC)? O dipende solo dal file system (l'indirizzamento dei bit è ancora possibile)? Le schede più recenti non richiedono trasferimenti a blocchi (e quindi richiedono un buffer di 256 o 512 byte)?
Peter Mortensen,

Sì, 512 B, se ricordo. Potresti semplicemente scrivere un driver della scheda SD inefficiente, per scartare i primi X byte di dati -> non è necessario alcun buffer "grande".
domen,

3

Oltre agli eccellenti punti su costi e produzione, c'è sorprendentemente poca richiesta di molta RAM su chip.

Lavoro spesso con microcontrollori con flash nelle decine di kB (16kB, 32kB) e RAM nella gamma di kB (1kB, 2kB). Molto spesso esaurisco il flash e quasi mai la RAM. Nella maggior parte dei miei progetti mi avvicino abbastanza al limite del flash, ma di solito ho bisogno di molto meno del 20% della RAM.

La maggior parte dei microcontrollori molto piccoli hanno due diversi tipi di ruoli:

  • regolazione e controllo: devono controllare un macchinario. Anche nel caso di un complicato algoritmo di controller, che può occupare decine di kB di spazio di codice, è richiesta pochissima RAM. Hai il controllo di un processo fisico e hai variabili che contengono alcune unità fisiche e forse alcune variabili come contatori di loop. Non c'è bisogno di altro.

  • elaborazione dei dati: in rari casi è necessario archiviare una grande quantità di dati contemporaneamente, è possibile utilizzare RAM esterna. Praticamente tutti i moderni microcontrollori ne hanno il supporto nativo. Se hai bisogno di un semplice programma che utilizza molta memoria, sarà sia più economico che più piccolo utilizzare un microcontrollore e una RAM esterna, piuttosto che un microcontrollore di alto livello. Nessuno produce controller con poche porte, flash di piccole dimensioni e RAM di grandi dimensioni, perché c'è così poca richiesta per loro.


2

Tutti i motivi già citati sono, ovviamente, tecnicamente validi e precisi. Tuttavia, non dimenticare che l'elettronica è un business e gli MCU sono uno dei mercati di nicchia più competitivi nel settore dell'elettronica.

Oserei dire che i motivi reali per collegare il prezzo di un MCU alla quantità di SRAM integrata sono principalmente ragioni di marketing, non ragioni di costo:

  • Nella maggior parte dei progetti, la massima frequenza di clock raggiungibile non è il fattore limitante. Invece, la quantità di SRAM disponibile è. Non fraintendetemi, la frequenza della CPU è estremamente importante, tuttavia, all'interno di un determinato segmento della famiglia MCU , di solito non vengono offerti diversi modelli di dispositivo a prezzi diversi in base alla frequenza massima della CPU. Inoltre, l'archiviazione del programma Flash è l'altro fattore chiave limitante, tuttavia, non mi concentrerò troppo su Flash (la domanda è indirizzata specificamente alla SRAM).

  • La quantità di SRAM disponibile è direttamente correlata al livello di complessità che sarà possibile incorporare nell'MCU, sia con librerie di terze parti che con il proprio codice implementato. Quindi è una metrica "naturale" da segmentare in base ai prezzi MCU. È comprensibile che un cliente tecnico accetti che un MCU in grado di svolgere attività più complesse (più SRAM, più memoria Flash) debba costare di più. Il prezzo, qui, è una riflessione del valore sottostante (capacità di fornitura) dell'MCU. L'archiviazione flash è di solito offerta in una quantità proporzionale alla SRAM.

  • Al contrario, se prendi il mercato delle CPU desktop e mobili, di solito non puoi procurarti una MCU / CPU specifica con molte dimensioni SRAM diverse. Invece, lo schema dei prezzi di solito si basa sulle capacità di esecuzione / prestazioni dell'MCU / CPU: frequenza, numero di core, efficienza energetica ...


Penso che questo sia probabilmente accurato, ma ci sono prove? Come grattare tracce per vendere chip a come chip b?
Grady Player

Uhm ... pensiero interessante. Non ho prove di tali pratiche. Tuttavia, pone una domanda interessante sui costi di produzione sottostanti. Sarebbe più costoso il patrimonio immobiliare sprecato del chip di silicio (wafer) nel caso in cui ci fosse un chip di dimensioni SRAM più elevato graffiato a una dimensione di SRAM inferiore? O i maggiori costi di produzione e di inventario associati alla produzione non di un singolo dispositivo ma di due? Temo che l'intero settore dell'elettronica sia molto esigente nel discutere apertamente dei loro costi. Potremmo non saperlo mai.
jose.angel.jimenez,

1
A titolo di prova: l'MT6250 è un chip multi-die, utilizzato per telefoni con funzionalità a chip singolo, costa meno di $ 2 in volume ed è molto più complesso di un mcu e include un dado sram da 8 MB. Sarebbe banale da costruire, usando simili tecnologia un mcu ricco di SRAM.
hulkingtickets,

Questa sarebbe una buona risposta a "perché il prezzo dell'MCU è collegato alla quantità di SRAM integrata?". Ma non sembra rispondere alla domanda originale. Perché ci sono così pochi microcontrollori disponibili con più di 512 KB di SRAM su chip, ad ogni prezzo? Perché ci sono così tanti microcontrollori con "strane" dimensioni non di potenza di 2 di SRAM, quando i produttori di chip SRAM dedicati sembrano pensare che i costi di inventario ridotti valgono la pena di produrre solo chip SRAM dedicati in dimensioni di potenza di 2?
David

1

Quindi prima devi considerare che 16 KB o 32 KB sono un'enorme quantità di memoria e la maggior parte dei microcontrollori venduti oggi non hanno così grandi quantità di RAM.

Molti programmi di microcontrollori richiedono 10 o 50 byte di memoria. Anche le cose più complesse richiedono soprattutto centinaia di byte.

Fondamentalmente ci sono tre casi d'uso in cui è necessaria la RAM nell'ordine di KBytes: a) Quando il microcontrollore esegue la grafica b) quando si utilizza il microcontrollore per calcoli arbitrari di grandi dimensioni c) quando si interfaccia con interfacce PC

In secondo luogo, si noti che se si parla di RAM di microcontrollori si parla di cache di livello 0 / livello 1. Se si considera che un Intel Haswell ha "solo" 64 KByte di cache di livello 1 si riconsidererà la dimensione della RAM di un microcontrollore.

In terzo luogo è possibile collegare qualsiasi quantità di RAM esterna a un microcontrollore, in particolare anche più di quanto si possa collegare a una CPU.

Personalmente sto sviluppando molte applicazioni di microcontrollore e non ho mai avuto bisogno di 1 KB di memoria e nemmeno di più. Inoltre non ho mai usato RAM esterna.

Le cose sono diverse se arriviamo alla ROM (oggi Flash), poiché il tuo programma e i tuoi dati sono nella ROM. Esistono davvero molte applicazioni in cui si collega una ROM esterna al microcontrollore, poiché si dispone di molti dati.

Esaminiamo un esempio: analizziamo un'applicazione di microcontrollore e prendiamo un lettore MP3 portatile con display e 4 Gigabyte di Flash.

Per questa applicazione sono necessari forse 1 KB di RAM. È abbastanza per fare il lavoro. Tuttavia, è possibile utilizzare un po 'più di RAM per buffer più grandi per accelerare la scrittura da USB a Flash.

Ora vedi la differenza: un tipico PC contiene tutti i programmi e i dati nella RAM. Pertanto ha bisogno di molta RAM. Per il microcontrollore questo è tutto in Flash / ROM.


2
Sottovaluti l'utilizzo della RAM in molte applicazioni. Non di una quantità enorme, ma forse di un fattore 10-100 a seconda dell'istanza. I lettori MP3 devono eseguire l'elaborazione del segnale digitale.
Jason S,

Mi piacerebbe sapere perché uno di voi sta dicendo queste cose. Quali tipi di comandi C richiedono RAM. Piuttosto che dire "queste applicazioni richiedono più RAM", preferirei "queste operazioni richiedono più RAM, perché ..."
Frederick,

-1

Durante la progettazione di un MCU, devi affrontare condizioni che non sono così importanti sui PC.

  1. durabilità

    Per scegliere i componenti, non è necessario prendere necessariamente le parti migliori o più performanti, ma quelle che hanno dimostrato di funzionare correttamente dopo diversi anni di utilizzo, saranno disponibili per diversi anni e saranno in grado di funzionare 24/7 per anni. A causa di questa circostanza, se un controller è sul mercato da diversi anni, facendo il suo lavoro bene, sembra avere una RAM scarsa, rispetto allo standard PC di oggi. Ma comunque, fa bene il suo lavoro e non dovrebbe essere necessario sostituirlo, se l'ingegneria andava bene.

  2. Spazio

    Le unità a microprocessore sono letteralmente micro. Devi ridurre lo spazio necessario al minimo assoluto. Ovviamente, puoi ottenere 256 MB nello stesso spazio dei chip 64 KB di 10 anni. È qui che arriva il punto 1.

  3. Prezzo

    Non solo il prezzo di acquisto, ma anche il consumo di energia. Non vuoi progettare un MCU che abbia il controllo su un sistema di accesso, che richiede 1000 W, se il tuo rivale in affari ne ha uno che ha bisogno solo di 25 W. E, naturalmente, il prezzo di acquisto più economico (con la stessa qualità) è sempre meglio.


1
questo è un microprocessore ad altissima potenza!
KyranF,

2
Immagino che un MCU da 1kW non rimarrebbe in uno stato solido molto a lungo.
Dan Bryant,

1
Tutti e tre i punti sono estremamente importanti nella progettazione di PC al giorno d'oggi.

@KyranF: Sì, dividi entrambi i numeri per 100. Ma semmai, ha minimizzato la differenza di potenza relativa tra processore ad alte prestazioni e microcontrollori a bassa potenza per applicazioni a batteria.
Ben Voigt,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.