La gestione termica è la nuova sfida

Fig 1 Cadence

È molto raro che il successo di un prodotto dipenda da un singolo parametro. Per esempio, mentre la durata della batteria può essere un parametro estremamente importante, essa rientra nel più ampio contesto del rapporto tra prezzo e valore di un prodotto. I team di progetto si sono dovuti quindi occupare fin dall’inizio dell’ottimizzazione di diversi parametri. Ogni progettista impegnato nello sviluppo di SoC è conscio delle problematiche legate all’ottimizzazione di prestazioni, consumi di potenza e ingombri o Ppa (Performance, power, area). Il cambiamento che si è verificato è la crescente interdipendenza nell’analisi dei parametri chiave. Per esempio, le strategie messe in atto per la gestione della potenza sono uno degli elementi fondamentali della gestione termica che, a sua volta, ha un impatto notevole sulle misure delle prestazioni. Nel 2015 sono stati stilati numerosi report, spesso discordanti tra di loro, circa il surriscaldamento dei chip. Quest’anno è prevedibile che ci sarà lo sviluppo di metodologie che prendano in considerazione l’interdipendenza dei parametri che definiscono il valore di un prodotto, con particolare riguardo a prestazioni, aspetti termici e consumi o Ptp (Performance, thermal, power). Nella progettazione di un SoC gli aspetti più rilevanti erano rappresentati dalla timing closure e dal signoff (fasi di verifica). Per molti progetti i consumi non rappresentavano un vincolo particolarmente severo e non erano richiesti approcci particolarmente “aggressivi” per la loro riduzione. Successivamente l’attenzione si è spostata sull’ottimizzazione della Ppa. Lo slogan coniato per esprimere questo concetto era "i consumi sono la nuova temporizzazione" che evidenzia, in modo sintetico, il fatto che è il power budget (il bilancio della potenza) e non le prestazioni ad essere il principale problema da affrontare in fase di signoff.


 

Gestione termica: la nuova sfida

Al giorno d'oggi una problematica sta assumendo un'importanza sempre maggiore ed è quella legata alla parte termica. In questo caso, il nuovo slogan potrebbe essere "Gli aspetti termici sono i nuovi consumi". In un numero sempre maggiore di SoC i vincoli di natura termica sono molto stringenti e impongono il trasferimento di tutta la potenza dissipata all'esterno del package senza provocare il surriscaldamento del chip. In prodotti come gli smartphone si tratta di un obiettivo difficile da raggiungere in quanto tali dispositivi devono abbinare la presenza di processori applicativi ad alte prestazioni con dimensioni fisiche ridotte (naturalmente non sono previsti dissipatori di calore, ventole o altri meccanismi di raffreddamento). Le problematiche di natura termica non riguardano solamente gli smartphone. In un datacenter, ad esempio, uno dei fattori più limitanti è rappresentato dai consumi totali. In questo tipo di applicazione, inoltre, le prestazioni sono il parametro più importante per cui le frequenze operativa di ogni SoC utilizzato saranno le massime consentite dalla dissipazione termica. Consumi e aspetti termici sono strettamente correlati: questi ultimi sono un effetto secondario indesiderato dei primi.. Gli aspetti termici influenzano anche le prestazioni in quanto il riscaldamento del chip penalizza le sue prestazioni.

Non si tratta di un problema puramente teorico. Vi sono progetti in cui le prestazioni aumentano, come previsto, passando da uno a due a quattro core. Con otto core il chip potrebbe surriscaldarsi per cui è necessario ridurre la frequenza. Di conseguenza un progetto che prevede otto core potrebbe essere più lento di uno che utilizza due core.

 

La progettazione termica nelle fasi iniziali di progetto

Storicamente la progettazione termica è stata considerata alla stregua di un'aggiunta che veniva effettuata nella fase di signoff quanto il progetto era praticamente terminato. Un approccio di questo tipo non è più adeguato alla realtà in quanto le problematiche di natura termica devono essere affrontate nelle fasi iniziali del processo di design quando è ancora possibile intraprendere le opportune azioni per risolvere il problema. Ciò è equivalente alle modifiche che sono state apportate al processo di design per gestire le problematiche relative ai consumi e alle prestazioni nelle fasi iniziali e poter eseguire, se necessario, modifiche a livello architetturale.

Per molti SoC il solo modo per eseguire un’analisi accurata delle problematiche legate ai consumi e agli aspetti termici è avviare (bring up) un sistema operativo e far girare un carico campione o un benchmark sintetico. Poiché per eseguire il boot di un moderno sistema operativo è richiesto un certo numero di istruzioni, il modo più efficace per effettuare l'analisi è ricorrere all’emulazione ibrida, facendo girare il software binario su un modello veloce del processore e il resto del sistema su un emulatore. La simulazione, infatti, risulta troppo lenta. Alcune analisi di natura termica possono essere eseguite a livello di chip complessivo: ad esempio è possibile esaminare la potenza totale che deve essere dissipata dal package nell’ambiente fisico dove il chip si troverà a operare. Solitamente, però, i problemi di natura termica sono localizzati. Vi sono due fattori che tendono a complicare l’analisi. In primo luogo gli effetti termici non si manifestano immediatamente, perché deve trascorrere un certo periodo di tempo affinché il calore si accumuli. In secondo luogo gli effetti termici non restano circoscritti alla sezione del chip dove il calore è generato, ma si diffondono nelle aree circostanti. Come d’altra parte succede per le temporizzazioni e i consumi, l’analisi termica deve essere condotta prendendo in considerazione le variazioni estreme dei parametri di processo e della tensione perché i vari corner generano differenti quantità di calore. Oltre a ciò, l’analisi termica richiede la disponibilità di modelli termici dei diversi materiali utilizzati per la realizzazione fisica. Ciò significa che più discipline dei tool di analisi tradizionalmente in differenti domini devono diventare più interdipendenti per risolvere il problema.

 

Controllo software delle problematiche termiche

I moderni SoC, in particolare quelli che contengono Gpu e Cpu multi-core, di solito integrano sensori per la misura della temperatura in modo da permette le opportune regolazioni. Queste operazioni sono solitamente svolte sotto il controllo software, sebbene nell’hardware siano spesso previsti punti di trigger a sicurezza intrinseca utili per prevenire fenomeni di fuga termica o addirittura incendi. Se un core gira a temperatura troppo elevata, vi sono principalmente tre metodologie per cercare di attenuare il problema. Il primo luogo è possibile ridurre la frequenza di clock. In secondo luogo si può intervenire sulla tensione di alimentazione: una sua diminuzione richiede una riduzione anche della frequenza di clock. Questo approccio va sotto il nome di Dvfs (Dynamic voltage and frequency scaling). Il terzo metodo prevede invece il trasferimento di un compito che richiede un elevato utilizzo della Cpu da un core “surriscaldato” a un core meno impegnato per consentire al primo di raffreddarsi. A livello architetturale, è possibile apportare altri tipi di modifiche. Una delle più comunemente adottate è il trasferimento di alcune funzionalità software dal software che gira sul core della Cpu principale a un processore specializzato o addirittura a un blocco creato ad hoc. Ciò può avere un notevole impatto sulla riduzione sia dei consumi sia degli effetti termici. Per esempio, la decodifica di segnali audio Mp3 può essere eseguita in maniera più efficace con un piccolo processore specializzato che non con un processore per uso generale. Anche la decodifica di segnali video, come ad esempio quelli in formato H.264 o H.265, può essere eseguita in maniera più efficiente se trasferita su un hardware dedicato. Questi blocchi specialistici garantiscono un aumento dell’efficienza a livello di consumi di un fattore compreso tra 100 e 1000.

 

Pubblica i tuoi commenti