Il campo dei sistemi embedded, soprattutto per quanto concerne i processori, non ha qui particolari vincoli che permettono a pochi produttori di dominare il mercato, avendo imposto agli sviluppatori un'architrettura di computing da cui dipende la continuità di un'immensa quantità di applicazioni software. I sistemi embedded eseguono software che nella maggior parte dei casi è stato fatto su misura e specificamente per quel sistema (o famiglia di sistemi). La continuità del software da una generazione di sistemi embedded alla successiva non dipende dalla capacità di eseguire il codice binario, in quanto, nella maggior parte dei casi, il software è proprietario e quindi viene ricompilato o riadattato per la nuova piattaforma di computing. Il software, per i sistemi embedded non dipende quindi strettamente da una specifica piattaforma di computing, quindi, praticamente tutti i produttori di microelettronica correntemente offrono dispositivi Mcu e Mpu differenti tra loro, caratterizzati da architetture innovative e soprattutto funzionalità di sistema molto differenti tra loro. I produttori di Mcu e Mpu per sistemi embedded (oltre 70) sono veramente tanti se comparati a quelli per sistemi non embedded, e quantitativamente l'offerta di dispositivi, anche profondamente differenti tra loro, è nell'ordine delle centinaia. Questo panorama di offerta altamente competitivo ha indotto i produttori di microprocessori e di microcomputer, malgrado la natura generale di questo dispositivo, a specializzare tali dispositivi in modo da renderli i migliori per specifiche aree applicative embedded. Per perseguire questo obiettivo i produttori hanno cercato di innovare in maniera originale relativamente alle architetture, alle prestazioni e alle periferiche, soprattutto in termini di soluzioni SoC (System-on-Chip). Dato il numero elevato di produttori, il target applicativo delle Mcu e delle Mpu è ad ampio spettro, coprendo praticamente tutto il campo belle applicazioni embedded, da quello consumer a quello industriale, inclusi anche settori particolarmente importanti come l'automotive, il militare, l'aerospaziale e il medicale. Molte delle applicazioni target implicano il trattamento di segnali analogici, quindi la connotazione mixed-signal delle Mcu è fondamentale per soddisfare in maniera ottimale applicazioni cost-sensitive e power-sensitive come per esempio quelle consumer, in particolare in applicazioni come i dispositivi medicali consumer o i dispositivi di comunicazione/intrattenimento personali. Questo report non è esaustivo circa l'offerta di Mcu e Mpu, data l'enorme quantità di questi dispositivi, ma si propone di essere emblematico, focalizzando l'attenzione su principali requisiti delle applicazioni embedded e su come dispositivi Mcu ed Mpu soddisfano tali requisiti. Sicuramente, due requisiti sono di estrema attualità in questo momento, considerando l'evoluzione dei sistemi embedded, soprattutto quelli di natura consumer: il bassissimo consumo di energia elettrica e la potenza computazionale rapportata alla densità di integrazione di memoria e periferiche.
Prima di tutto il risparmio energetico
Le strategie messe in campo dai vari produttori di Mcu per rendere i loro dispositivi particolarmente efficienti per il risparmio energetico sono molteplici. Ormai target ambiziosi come l'ordine del microampere per il running e del nano ampere per lo sleeping, non sono più ambizione ma realtà.
• Silicon Labs - La società offre una famiglia di Mcu a 8 bit basata sull'architettura 8051 e con architettura di sistema mixed-signal. Questa Mcu integra la completa catena analogica che consente di connettere il mondo analogico esterno direttamente al dispositivo, anche senza componenti aggiuntivi. L'architettura 8051 ha il set istruzioni più utilizzato nelle applicazioni embedded che utilizzano Mcu a 8 bit. Il core 8051 ha infatti una lunghissima storia e soprattutto per esso è stata sviluppata un'enorme quantità di software applicativo. Ovviamente la Mcu 8051 di Silicon Labs è una versione computazionalmente molto potente di quella originaria, reimplementata in modo da garantire la perfetta compatibilità a livello di codice oggetto e contemporaneamente un'efficienza esecutiva del codice paragonabile a quella delle Mcu a 16 e 32 bit. Silicon Labs ha implementato l'intero set istruzioni del 8051 completamente in hardware, ottenendo in tal modo un fattore di accelerazione esecutivo dell'ordine delle 20-25 volte superiore rispetto all'implementazione basata su microcodice, superando in tal modo i 100 Mips. Queste prestazioni derivano anche da soluzioni di architettura computazionale come il pipelining a due stadi che, insieme alla soluzione hard-wired del set istruzioni, consente di eseguire la maggior parte delle istruzioni in solo 1, massimo 2, cicli di clock. Grazie anche alla tecnologia system-on-chip, è stato possibile per Silicon Labs creare una serie di Mcu orientate all'applicazione, come le Wireless Mcu, le Usb Mcu, le Capacitive Touch Sense Mcu e le Analog Intensive Mcu. Il basso consumo è comunque una dei più importanti requisiti nelle applicazioni embedded di ultima generazione. La famiglia di ultra low-power Mcu di Silicon Labs, C8051F9xx, è un esempio emblematico dell'impegno di questo produttore di Mcu a ottenere la massima prestazione possibile. Queste Mcu consumano pochi microampere quando sono in running (fino a solo 150 microampere/MHz) e pochissimi nanoampere (fino a solo 10 nanoampere/MHz). Questi dispositivi implementano una modalità di risparmio energetico in fase attiva (running), cioè mentre l'applicazione è in esecuzione. Ciò rende più realistiche le prestazioni low-power, che non si limitano allo sleep e stand-by mode. Comunque, i consumi in modalità sleep sono estremamente bassi, di solo 10 nA per il dispositivo C8051F98x (in pratica meno dell'autoscarica delle batterie).
• Texas Instruments - Con la famiglia di processori MSP, Texas Instruments offre una soluzione di computing Mpu a 16 bit di natura Risc e mixed-signal. Il target di questa famiglia di dispositivi sono le applicazioni low-power e portabili. Questa Mcu implementa una serie di soluzioni sia di architettura, sia di natura microelettronica, che consentono di soddisfare i requisiti stringenti delle applicazioni embedded. Il basso consumo energetico, tipicamente richiesto dalle applicazioni alimentate a batteria, viene soddisfatto tramite un'architettura ottimizzata che scala a 16 bit le soluzioni computazionali Risc a 32 bit. L'architettura ortogonale, su cui si basa, consente a questo dispositivo di evidenziare prestazioni superiori a quelle di una classica Mpu a 16 bit. Altre soluzioni, come il sistema di clock flessibile, contribuiscono alle prestazioni in termini di efficienza energetica: 0.1 microampere di Ram retention, meno di 1 microampere per l'Rtc mode, meno di 250 microampere/Mips per l'esecuzione da flash e meno di 110 microampere/Mips per l'esecuzione da Ram. La Mcu MSP430 è capace di gestire (abilitare e disabilitare) vari livelli di clock e oscillatore, consentendo in tal modo l'attuazione delle varie modalità low-power. In tal modo il consumo energetico viene ottimizzato attivando il clock solo dove è necessario. È fondamentale comunque la rapidità di risveglio dallo stato low-power. L'MSP430 è in grado di svegliarsi quasi istantaneamente e uscire dalla modalità low-power. Ciò significa che il dispositivo è in grado di rimanere nella modalità low-power per il massimo tempo possibile, a tutto vantaggio della durata della batteria. Il Dco (Digital Controlled Oscillator) è in grado di alimentare il sistema fono a 25 MHz di clock raggiungendo lo stato stabile in solo 1 microsecondo. La disponibilità di periferiche intelligenti e l'elevata integrazione di queste garantiscono al MSP430 una efficienza molto elevata. La capacità di molte di queste periferiche di funzionare in maniera autonoma, consente di minimizzare il consumo di tempo attivo di Cpu. La quantità di periferiche disponibili è molto elevata e di conseguenza altrettanto elevato è il numero di dispositivi MSP430 che, in termini di integrazione delle periferiche, vanno a coprire in maniera quasi esaustiva le possibili configurazioni di sistema che possono soddisfare in maniera ottimale la maggior parte delle esigenze applicative. L'ortogonalità dell'architettura di computing del MSP430 consente a questa Mpu di essere particolarmente efficiente nell'esecuzione del codice (tutte le istruzioni possono utilizzare tutte le modalità di indirizzamento) impiegando un solo ciclo per le istruzioni del set Risc.
• STMicroelectronics - Una problematica tipica dell'evoluzione delle applicazioni embedded è il passaggio a un'architettura di computing di ordine superiore per ottenere maggiori prestazioni e far fronte a una maggiore complessità dell'applicazione stessa. Il passaggio dall'architettura a 16 bit a quella a 32 bit è particolarmente critica data la complessità dell'architettura a 32 bit, soprattutto a livello di sistema, e quando i vincoli di costo dell'applicazione sono particolarmente stringenti. STMicroelectronics ha affrontato questa problematica con l'architettura STM32 Value Line, una Mcu a 32 bit a bassissimo costo che combina il core di un processore Arm Cortex-M3 a 32 bit già utilizzato nella famiglia STM32, con una serie di periferiche ottimizzate per le applicazioni a 16 bit. L'obiettivo di questa Mcu è di ottenere il miglior rapporto prezzo-prestazioni in funzione delle periferiche utilizzate. Tra le peculiarità di questa famiglia di Mcu a 32 bit con periferiche a 16 bit vi sono i sette Pwm a 16 bit con timer di controllo per un totale di 36 canali, tre timer-Pwm a 16 bit con uscita complementare e generazione di dead-time, due Dac a 12 bit dotati di DMA e bufferizzazione in uscita, periferiche Cec (Consumer Electronics Control), I2C a 400 MHz, SPI master/slave fino a 12 Mbit/s e Usart a 3 Mbit/s. Altre funzionalità importanti che valorizzano questa Mpu nella migrazione dal 16 ai 32 bit, sono il Crc (Cyclic Redundancy Check) supportato da Dma per la gestione efficiente dell'integrità delle Flash, mentre altre funzionalità come il POR, PDR, LVD e WDC, tutte integrate, nella Mcu contribuiscono alla riduzione dei costi nell'applicazione finale.
• Freescale - Una componente importante e in forte crescita dello sviluppo di applicazioni embedded è il real-time in contesti ove l'informazione di segnale è predominante (comunicazione, multimedia, infotainment, automotive ecc.). La Mcu in questo caso, oltre che essere mixed-signal, deve avere anche un'architettura di computing particolarmente efficiente relativamente alla gestione dell'informazione di segnale e contemporaneamente alla gestione del sistema. Freescale ha da lungo tempo affrontato questa problematica facendo convergere la sua offerta di altissimo livello tecnologico in fatto di processori digitali di segnale e di microcontrollori e Cpu a standard industriale. Introdotta alcuni anni fa come architettura di computing innovativa nel campo delle applicazioni embedded emergenti come il controllo motore, le appliance, il lighting, i driver industriali e la conversione di potenza, la famiglia di Mcu MC56800 combina la capacità computazione intensiva di un digital signal processor con un'architettura microcontrollore integrata in maniera efficiente con un ricco set di periferiche. Il core DSP56800E è un'architettura di computing particolarmente efficiente basata su una Mac a 16 bit (Moltiplicatore-Accumulatore) ad alto parallelismo esecutivo ed eseguibile a singolo ciclo di clock. Altre risorse computazionali chiave sono i quattro accumulatori a 36 bit (16+16+4) che implementano la doppia precisione estesa in aritmetica fixed-point (estremamente più economica di quella floating-point). I Digital Signal Controller di Freescale rappresentano una categoria di Mcu particolarmente potenti relativamente all'aspetto computazionale e allo stesso tempo efficienti relativamente all'aspetto gestionale. Le periferiche che questa Mcu integra contribuiscono alla efficienza computazionale globale. I Pga (Programmable gain amplifier) per esempio consentono di condizionare il segnale analogico in ingresso evitando di intervenire su questo a livello numerico; i comparatori analogici consentono di eseguire operazioni di confronto direttamente sul segnale analogico; ecc.
• Microchip - Le Mcu PIC di Microchip si caratterizzano soprattutto per incorporare soluzioni di architettura di computing efficenti come la separazione tra memoria di programma e memoria dati e il set ridotto di istruzioni. Queste soluzioni hanno consentito a questi dispositivi di offrire prestazioni elevate soprattutto sulla fascia bassa (8 bit) o media (16 bit), oltre che ovviamente su quelle di fascia alta (32 bit). Con l'introduzione della tecnologia XLP (Extreme Low Power), Microchip ha ulteriormente connotato queste Mcu oltre che per l'efficienza computazionale, anche per l'efficienza energetica. Questa efficienza energetica è anche conseguenza dell'architettura di computing che consente a circa 80% delle istruzioni di essere eseguibili in un solo ciclo di clock. Il clock, con tale efficienza esecutiva può essere tenuto più basso, a parità di velocità di esecuzione del codice. Le prestazione della tecnologia XLP si collocano nella fascia nano Watt, con una corrente di sleep di solo 20 nanoAmpere, mentre la corrette attiva è dell'ordine dei 50 microAmpere/MHz. Data la natura delle applicazioni cui sono destinate queste Mcu, l'efficienza energetica delle periferiche diventa un fattore determinante per il successo stesso dell'applicazione. Molto importante è l'efficienza energetica di meccanismi e periferiche legate alla sucurezza dell'applicazione: il brown-out reset per proteggere relativamente all'esaurimento o il cambio batteria (45 nanoAmpere), il watch-dog Timer per proteggere contro i possibili malfunzionamenti di sistema (200 nA) e il Real-time Clock/Calendar per mantenere il tempo cronologico del sistema (500 nanoAmpere). L'efficienza energetica di questi sottosistemi vitali è determinante per l'efficienza globale della Mcu nella varie applicazioni.
• AMD - La società offre principalmente Mpu basate sull'architettura X86 a 64 bit per applicazioni su sistemi ad elevate prestazioni come i server e le workstation. Le elevate prestazioni computazionali di queste Mpu (Athlon XP-M) soddisfano soprattutto le applicazioni Multimedia integrando architetture di computing avanzate che consentono di ottenere prestazioni molto avanzate. L'innovazione viene dall'introduzione a livello di Mpu della tecnologia superscalare e prefetch assistito da hardware dei dati.
Elevata integrazione ed efficienza di sistema
L'elevata integrazione ed efficienza viene perseguita utilizzando tecnologie di computing hardware-programmabile. La logica programmabile e la Fpga concorrono a questi obiettivi, soprattutto quando il core processor viene fornito sotto forma di soft-core.
• Altera - La società si caratterizza soprattutto per l'offerta di Mcu come soft-core da integrare in piattaforme microelettroniche basate sulla logica programmabile. L'obiettivo di questa soluzione tecnologica è soprattutto quella di ottimizzare la componente di integrazione di sistema e di consentire di implementare in hardware (logica programmabile) specifiche funzioni computazionalmente intensive. Questi softcore di Mpu per le famiglie di logiche programmabili Stratix, Cyclone e Hardcopy, sono basati sull'architettura Risc, quindi computazionalmente efficenti. Data la natura soft-core, sono adattabili al resto dell'architettura di sistema per ottimizzare aspetti come le dimensioni in rapporto alla potenza computazionale.
• Xilinx - Sempre a livello di logica programmabile, in particolare quella FPGA, un altro importante fornitore di tecnologia Mpu integrabile a livello di sistema, è Xilinx, con le sue famiglie Spartan e Virtex. Queste consentono di integrare Mpu particolarmente potenti e importanti le applicazioni embedded, come PowerPC, l'architettura di computing a 32 bit industry standard. Disponibile sotto forma di softcore, questa Mpu, consente di convertire molti delle applicazioni embedded basate su PowerPC e utilizzare la grande mole di codice sviluppato, traendo vantaggio dalla potenza dell'hardware programmabile basato sulla tecnologia FPGA.
• Atmel - La società ha come riferimento la tecnologia Asic per offrire a livello di applicazioni embedded la massima efficienza a livello di integrazione di sistema. L'offerta di Mpu in questo caso non è limitata a una specifica architettura, ma, in funzione delle esigenze applicative rende disponibile l'architettura che meglio soddisfa l'applicazione. Le Mpu che Atmel mette a disposizione per l'integrazione Asic variano dai 4 bit (Marc4), agli 8 bit(8051), ai 16 bit (Arm Tumb) e ai 32 bit (Arm, SPARC, MIPS).
• Cypress - Cypress è rappresentativo della strategia di offerta che ottimizza la densità di sistema tramite l'integrazione a livello di silicio. In questo caso la soluzione è intesa a enfatizzare la componente di integrazione di sistema, con particolare riferimento alla tecnologia del system-on-chip. Cypress offre infatti la soluzione di microcomputing PSoC da 8 bit (8051) alla soluzione a 32 bit (Arm Cortex-M3) che si integra in maniera efficiente a livello di sistema con la tecnologia mixed-.signal e analogica. Grazie a questa integrazione, il livello di efficienza di sistema è estremamente alto, considerando la possibilità di avere quasi tutta la funzionalità su singolo chip.