Introduzione

Oggi, nel corso Introduzione ai Sistemi Embedded, imparerai a definire cos’è un microsistema e quali sono le regole che lo definiscono.

Che cosa è un sistema embedded?

Questa è una domanda fondamentale da porsi per arrivare al nocciolo della questione. Un sistema embedded è definito come un sistema elettronico e informatico autonomo, specializzato in un compito specifico. Questa è la grande differenza con un computer che non è dedicato a un compito specifico ma è piuttosto multifunzionale per essere utile alla maggior parte delle persone. Un computer non è quindi un sistema incorporato.

Nei corsi sui sistemi embedded si parla spesso di “System on Chip” o SOC, che in inglese significa sistema su chip.

Esistono molti termini inglesi nei sistemi embedded, ma per ogni termine verrà fornita una traduzione in francese. In questo corso useremo il termine microsistema per parlare di System On Chip.

Un microsistema è composto da un processore, una memoria e una periferica.

I 7 principi di un microsistema

Ecco i 7 principi per caratterizzare un microsistema:

1. Un microsistema incorporato significa che è nascosto. In realtà, tutti gli oggetti elettronici di uso quotidiano hanno componenti elettronici integrati: tostapane, stufe elettriche, forni a microonde, eppure in nessuno di questi oggetti è visibile la scheda elettronica dall’esterno.

2. Può svolgere solo un compito. Ad esempio, un tostapane può preparare solo il caffè.

3. Deve essere necessario e sufficiente. Ciò significa che il suo chip elettronico non deve essere sovradimensionato per non aumentare i costi. Il miglior microsistema è quello che funziona e non costa molto.

4. Un microsistema deve consumare poco. Infatti, non vogliamo che l’elettronica rappresenti la principale spesa energetica, come ad esempio nel caso di un telecomando.

5. Deve essere molto piccolo. Ad esempio, non vogliamo che la scheda elettronica raddoppi le dimensioni del nostro tostapane.

6. Deve essere resistente agli ambienti più difficili. Infatti la scheda elettronica può essere utilizzata sia d’estate che d’inverno e deve quindi resistere a temperature molto alte o molto basse. Inoltre, questi microsistemi devono rispettare le temperature previste dal mercato a cui saranno venduti:

Temperatura del mercato commerciale: [0°C; 85°C]Temperatura del mercato industriale: [-20°C; 125°C]Temperatura del mercato spaziale: [-40°C; 150°C]

7. Infine, un sistema embedded deve essere autonomo, cioè deve funzionare senza l’intervento dell’utente sulla scheda elettronica stessa.

Le prestazioni di un cuore

Se stai realizzando un progetto, sicuramente avrai la possibilità di scegliere tra diversi microsistemi. Quindi dovrai confrontarli per sapere quale si adatta meglio a ciò che desideri. Ecco perché ti forniremo dei criteri di confronto delle prestazioni:

La dimensione del bus dati

Esistono diverse misure: 8; 16 o 32 bit. Maggiore è la dimensione, più velocemente i dati possono essere comunicati.

Architettura del processore

Come i bus dati, i processori possono essere a 8, 16 e 32 bit. Un processore a 32 bit sarà in grado di eseguire più calcoli di uno a 8 bit nello stesso lasso di tempo.

Coprocessori incorporati

Come visto in precedenza, un microsistema è dedicato a un compito specifico. Bene, è lo stesso del processore, potrà solo fare delle addizioni, per esempio. Infine, possiamo far sì che il processore esegua un ciclo di addizione o sottrazione per emulare la moltiplicazione o la divisione.

Tuttavia, per moltiplicazioni più grandi, il processore potrebbe impiegare più tempo per effettuare i calcoli. Ecco perché aggiungiamo un coprocessore che verrà utilizzato per un compito specifico, in particolare la moltiplicazione, se ne abbiamo bisogno.

Prima di fornirvi i criteri successivi, esamineremo un concetto importante per i microsistemi: l’istruzione. Questo è ciò che viene chiesto al microsistema di fare. Ad esempio, un’addizione può corrispondere a un’istruzione. Per il criterio successivo calcoleremo il numero di tick di clock impiegati dal microsistema per eseguire l’istruzione richiesta. Un’istruzione viene calcolata in MIPS/MHz, ovvero il numero di istruzioni eseguite per tick di clock e Mega Hertz.

Il rendimento

L’efficienza di un processore è la capacità del processore di eseguire una serie di calcoli nel tempo ridotto di un tick di clock.

Questa prestazione è garantita dai produttori di questi processori. Quindi faremo un esempio per farvi capire meglio:

microship puce

Microchip:

  • 8 bit
  • 0,25 MIPS/Mhz
  • Frequenza massima: 40 MHz

Qui possiamo vedere il chip Microship a 8 bit a 0,25 MIPS/Mhz. Ciò significa che per eseguire un’istruzione saranno necessari 4 tick di clock.

Inoltre viene indicata una frequenza massima. Vedremo subito a cosa serve.

La frequenza operativa massima

La frequenza massima di un microsistema è la frequenza alla quale il processore opera al massimo delle sue prestazioni per svolgere il compito assegnato. Tuttavia, il processore non funziona sempre a questo valore, dipende dal fatto che l’attività richiesta sia significativa o meno. Riducendo la frequenza, il microsistema consumerà meno energia.

Prendendo il nostro esempio con il chip Microchip, abbiamo 0,25 MIPS/MHz per una frequenza massima di 40 MHz, che fornisce 10 Mega istruzioni al secondo (0,25 * 40)

I primi 5 criteri che abbiamo visto riguardano l’hardware, ora vedremo l’ultimo criterio che è un criterio software.

Il compilatore

In elettronica, i microsistemi vengono programmati in linguaggio C: è un linguaggio che consente di controllare facilmente una scheda.

Tuttavia, i microsistemi comprendono solo il linguaggio macchina, ovvero il linguaggio assembly, ed è per questo che abbiamo bisogno di un compilatore. Il compilatore trasformerà le istruzioni del linguaggio C in istruzioni binarie comprensibili dal microsistema.

compilateur c++
Il compilatore è un criterio di qualità, infatti se un compilatore genera 20 linee di assemblaggio è più efficiente di uno che ne genera 30. Inoltre, richiederà meno memoria e quindi avrà un costo inferiore. Possiamo chiedere al compilatore di compilare in base alla dimensione, cioè con il minor numero possibile di righe assembly, oppure in base alla velocità, cioè che il programma venga eseguito rapidamente. Un possibile compromesso è quello di ottimizzare la velocità senza occupare troppo spazio sulla linea di assemblaggio.