59
- ELETTRONICA OGGI 431 - OTTOBRE 2013
DIGITAL
LOW ENERGY
che questo codice sia fatto girare in maniera sequen-
ziale al di fuori della cache può essere la chiave per
minimizzare il consumo di energia. Poiché esso gira
così raramente, il codice rimanente può essere otti-
mizzato sfruttando tecniche più tradizionali.
Tool per l’efficienza energetica
Il supporto di tool idonei è un elemento di fondamen-
tale importanza per garantire l’efficienza energetica
della piattaforma MCU. La capacità di allocare le fun-
zioni all’interno di singole pagine della memoria flash
richiede la presenza di un linker in grado di “com-
prendere” la mappa di memoria dettagliata di ciascu-
na MCU target. Il linker può acquisire l’informazione
fornita dallo sviluppatore relativa ai blocchi ai quali è
consentito l’attraversamento dei confini delle pagine
e generare un codice binario ottimizzato per garantire
l’uso più efficiente in termini energetici della memo-
ria non volatile. In linea di principio questo codice è
anche usato per assicurare che funzioni e dati siano
allocate in modo tale che quelle che vengono esegui-
te più frequentemente non entrino in conflitto con le
linee delle cache.
Un tale livello di dettaglio può essere ottenuto con
maggior facilità quando i tool sono forniti dal pro-
duttore della MCU, il quale conosce il layout della
memoria e i requisiti di potenza di ogni piattaforma
target. Un risultato di questo tipo è più difficilmente
conseguibile con tool forniti da terze parti.La MCU
ha anche una conoscenza completa e dettagliata
dell’organizzazione delle diverse periferiche e dei
bus on-chip. Tale conoscenza può essere utilizzata
dai tool per fornire un valido ausilio ai progettisti
per minimizzare i consumi. Un esempio tipico è rap-
presentato dall’ambiente AppBuilder realizzato da
Silicon Labs (Fig. 5). Questo tool permette di definire
la struttura per un’applicazione tramite semplici ope-
razioni di “drag&drop” in un’opportuna area (canvas).
AppBuilder può anche esaminare il setup delle peri-
feriche e determinare se sono possibili modifiche per
ottimizzare l’efficienza energetica. Per esempio, se un
utilizzatore ha deciso di impiegare un UART per la sua
applicazione e ha impostato la velocità a 9.600 baud,
il tool vedrà il bus periferico dell’UART e determinerà
l’impostazione adeguata. Il bus APB (ARM Periphe-
ral Bus) utilizzato per ospitare blocchi quali
UART e convertitori A/D può operare fino a
50 MHz. In questo caso la velocità è abba-
stanza alta (e consumerà più energia) rispetto
a quanto necessario: il tool a questo punto
chiederà all’utilizzatore se desidera ridurre
la velocità di trasferimento dati dell’APB a un
valore più appropriato.Il software AppBuilder
fornisce al progettista altre informazioni sui
consumi relativi a una specifica applicazione.
Utilizzando una simulazione della MCU target
(resa possibile da un’approfondita conoscen-
za delle caratteristiche del silicio), il tool
può fornire un istogramma interattivo della
corrente stimata non dell’intera applicazione,
bensì del processore e di ciascuna periferica.
I tool di sviluppo evolveranno al fine di diven-
tare sempre più “power-aware”. Solitamente
le caratteristiche di debug come i breakpoint
sono impostate sugli eventi (ad esempio lettu-
re/scritture della memoria). In futuro è plau-
sibile che il supporto dei breakpoint evolverà
in modo da gestire le problematiche legate ai con-
sumi. Ad esempio se il consumo di potenza in un
particolare punto oppure l’energia associata all’ultimo
stato di sleep eccedono il target prefissato, il debug-
ger interverrà mostrante quali parti dell’applicazione
consumano una potenza maggiore di quella prevista.
Consumi maggiori di quelli previsti e informazioni
sulla posizione del codice nella mappa di memoria
sono indizi vitali che aiutano gli sviluppatori software
ad adottare le misure più idonee.
Q
(La I parte dell’articolo è stata pubblicata sul numero 430 -
settembre di Elettronica Oggi)
Fig. 5 – I tool di tipo “power-aware” consentiranno ai progettisti di ottimizzare i
progetti in termini di consumi