Ottimizzare Cpu, Gpu e Dsp a 28 nm

Il processo tecnologico a 28 nm offre nuove opportunità per ottimizzare le implementazioni di Cpu, Gpu e Dsp al fine di ottenere migliori risultati in termini di prestazioni, consumo energetico e area occupata (performance, power, area: in breve, Ppa). Questo articolo fornisce alcune linee guida su come fissare obiettivi progettuali per i core a 28 nm; come selezionare un design kit di standard cell capace di trattare l'intera gamma dei requisiti posti da Cpu, Gpu e Dsp; e come usare le migliori pratiche di implementazione al fine di raggiungere gli obiettivi Ppa, tramite tali celle, nel modo più efficiente possibile.

Perché fissare obiettivi PPA diversi
per i core Cpu, Gpu e Dsp?


Cpu, Gpu e Dsp possono coesistere nell'ambito di uno stesso System-on-Chip e spesso sono ottimizzati per collocarsi in punti diversi sugli assi delle prestazioni, del consumo energetico e dell'area occupata. Ad esempio, generalmente le Cpu vengono tarate in primo luogo per ottenere alte prestazioni con il più basso consumo possibile, mentre le Gpu, che occupano una grande area di silicio, vengono solitamente ottimizzate per ridurrne le dimensioni e il consumo. In alcuni casi le Gpu utilizzano algoritmi paralleli che ne riducono la frequenza di funzionamento, aumentando però l'area di silicio occupata, che può crescere fino a rappresentare il 40% di tutta la logica presente in un SoC. I core Dsp, a seconda dell'applicazione, possono essere ottimizzati in funzione delle prestazioni, come nel caso delle applicazioni per base stations con molti segnali, o in funzione dell'area e del consumo, come avviene per i dispositivi portatili.

Librerie logiche per l'ottimizzazione dei core in funzione delle alte prestazioni

I core sintetizzabili, le odierne librerie di standard cell ad alte prestazioni e gli strumenti Eda consentono di raggiungere soluzioni ottimali senza richiedere la progettazione di una nuova libreria per ogni singola implementazione di un processore. Per svolgere in modo ottimale il processo di “hardening” di un core ad alte prestazioni, occorre una libreria di celle standard che comprenda i seguenti elementi:
- celle sequenziali ad alte prestazioni

- celle combinatorie ad alte prestazioni

- celle di clock ad alte prestazioni

- librerie per la minimizzazione dei consumi e celle per i percorsi non critici.

• Celle sequenziali - Nei flip-flop, la somma del tempo di setup e del ritardo viene a volte definita come “tempo morto” o “buco nero”. Come l'incertezza del clock, questo intervallo erode ogni ciclo di clock riducendo il tempo che potrebbe essere utilizzato per svolgere un utile lavoro computazionale. Per gestire in modo ottimale questo tempo morto occorrono vari tipi di flip-flop ad alte prestazioni. In particolare, i flip-flop ottimizzati per avere un breve ritardo consentono di inviare rapidamente i segnali nei cluster logici che compongono i percorsi critici, mentre i flip-flop ottimizzati per avere un breve tempo di setup permettono di catturare lo stato dei registri al fine di estendere il ciclo di clock disponibile. E' possibile fissare vincoli per gli strumenti di sintesi e di routing per far loro utilizzare efficacemente questi diversi tipi di flip-flop al fine di massimizzare la velocità, ottenendo così un miglioramento delle prestazioni del 15-20%.

• Celle combinatorie - L'ottimizzazione dei percorsi tra registro e registro richiede una ricca libreria di standard cell che comprenda tutte le funzioni, le ' (“driving strenghts”) e le varianti implementative appropriate. Sebbene il cosiddetto ”algoritmo D” di Roth (IBM 1966) abbia dimostrato che tutte le funzioni logiche possono essere costruite a partire da una sola porta Nand, la sintesi ha bisogno di una grande varietà di funzioni ottimizzate (Nand, Nor, And, Or, inverter, buffer, Xor, Xnor, Mux, addizionatori, compressori ecc.) per produrre implementazioni ad alte prestazioni. Gli strumenti avanzati di sintesi e di Place&Route possono sfruttare la disponibilità di molti diversi valori della forza di pilotaggio, per trattare in modo ottimale i diversi fanout e la varietà dei carichi risultanti dalla topologia del progetto e dalla distanza fisica tra le celle. La disponibilità di celle caratterizzate da diverse soglie di tensione (Vt) e da diverse lunghezze di canale offre ulteriori opzioni agli strumenti Eda, così come la disponibilità di varianti funzionali come le celle “tapered”, che sono ottimizzate per minimizzare il ritardo nei percorsi critici dei processori. E' essenziale che il fornitore della libreria di standard cell possa rendere disponibili celle ad alta effcienza sul piano dell'ottimizzazione dei percorsi critici - così come le celle ad alta efficienza computazionale, quali le Aoi e le Oai - ma è altrettanto importante utilizzare un flusso di progettazione ottimizzato per trarre vantaggio da tutte queste opzioni. Inoltre, le celle in versione ad alta forza di pilotaggio devono essere progettate tenendo conto degli aspetti di layout, per poter gestire efficacemente effetti di elettromigrazione, nel caso di funzionamento a frequenze dell'ordine del GHz.
Per aiutare gli strumenti Eda a compiere le scelte giuste nella selezione delle celle e a minimizzare il tempo di ciclo, spesso è necessario utilizzare delle liste di celle da non utilizzare che “nascondono” temporaneamente al tool alcune specifiche celle. Anche il raggruppamento di più segnali con vincoli e carichi simili può fare una differenza significativa ai fini dell'efficienza della sintesi. Per ottenere il massimo di prestazioni, occorre agire sugli strumenti Eda e sul relativo flusso di progettazione nelle diverse fasi: sintesi preliminare, sintesi incrementale, sintesi dell'albero di clock, piazzamento, routing, ottimizzazione fisica. Generalmente queste tecniche di ottimizzazione consentono di ottenere un miglioramento delle prestazioni del 15-20%.

• Celle di clock - Le celle ad alte prestazioni utilizzate per pilotare l'albero di clock ('clock driver')' sono ottimizzate per minimizzare il ritardo, così da ridurre la latenza del clock e minimizzare l'incertezza del clock stesso causata dallo skew e dalla variabilità del processo. La gamma di queste celle può comprendere buffer di clock tarati per tempi simmetrici di salita/discesa e inverter di clock per minimizzare il consumo. Per utilizzare queste versioni in modo efficace, gli strumenti per la sintesi dell'albero di clock devono essere dotati della robustezza sufficiente a gestire i relativi compromessi riguardanti gli obiettivi Ppa.
L'uso intelligente delle celle di clock gating integrato (integrated clock gating, ICG), in molteplici versioni funzionali e con diverse forze di pilotaggio, è essenziale per minimizzare il consumo dell'albero di clock, che spesso può rappresentare il 25%-50% del consumo dinamico complessivo di un SoC.

• Minimizzare il consumo dei core Cpu, Gpu e Dsp - I SoC utilizzati nelle comunicazioni mobili e nei prodotti multimediali e consumer devono raggiungere alti livelli di prestazioni pur consumando minime quantità di energia, per prolungare la durata della batteria e poter essere collocati in contenitori economici. In queste applicazioni l'ottimizzazione dei consumi è spesso il vincolo più importante, pertanto la sfida progettuale consiste nell'ottenere le migliori prestazioni possibili restando all'interno del budget energetico disponibile. Ogni nuova generazione dei processi del silicio porta con sé nuove sfide per i fornitori di librerie logiche e di IP per compilatori di memorie, ma anche nuove opportunità per creare una IP più efficiente dal punto di vista dei consumi.

Il “Toolbox” per ottimizzare i consumi

Il “Toolbox” (letteralmente, la cassetta degli attrezzi) necessario per ottimizzare i consumi deve comprendere tutte le tipologie di celle logiche atte ad implementare le tecniche di ottimizzazione. Queste tecniche comprendono il clock gating, lo spegnimento di blocchi, le modalità “deep sleep” (letteralmente, sonno profondo), molteplici domini di tensione, la variazione dinamica della tensione e della frequenza (dynamic voltage and frequency scaling, DVFS), la cosiddetta “state retention” (conservazione dello stato) e la polarizzazione della tensione (“voltage biasing”). La dotazione deve inoltre comprendere tutti i circuiti necessari per svolgere le funzioni di ottimizzazione dei consumi, e fornire le annotazioni richieste dagli strumenti del flusso di progettazione per validare correttamente il progetto.

L'uso dei flip-flop multi-bit

L'uso di flip-flop multi-bit è un metodo efficace per ridurre il consumo dovuto al clock. I flip-flop multi-bit, infatti, consentono di diminuire sensibilmente il numero dei singoli carichi sull'albero di clock, riducendo il consumo dinamico complessivo dello stesso. Possono essere ottenuti anche risparmi di area e una riduzione delle dispersioni energetiche semplicemente raggruppando gli inverter del clock di più flip-flop in una struttura unica. L'impiego dei flip-flop multi-bit amplia ulteriormente la tipologia dei flip-flop disponibili, aggiungendo versioni che sono state ottimizzate in funzione della riduzione dei consumi e dell'area, al prezzo di un piccolo compromesso in termini di prestazioni e flessibilità di posizionamento. I flip-flop riuniti nella struttura multi-bit condividono un pin di clock comune, il che diminuisce il carico di clock complessivo dei flip-flop. Ciò consente di ridurre l'area con una corrispondente diminuzione delle dispersioni, e quindi di tagliare notevolmente il consumo dinamico dell'albero di clock: fino al 50% per un flip-flop doppio, ancora di più se quadruplo o a 8 flip-flop. Generalmente i flip-flop multi-bit sono utilizzati nell'ambito di blocchi che non si trovano sul percorso critico della massima frequenza di funzionamento del chip. I loro impieghi vanno da piccoli registri “bus-oriented” che conservano i dati di configurazione del SoC, ai quali viene fornito il clock solo all'accensione, fino a grandi datapath che ricevono il clock a ogni ciclo, con molte varianti intermedie. Per determinare il risparmio complessivo di consumo e area ottenuto in questo modo, i progettisti di SoC usano un parametro detto “rapporto di sostituzione”, che dipende dal numero dei flip-flop standard sostituibili dai loro equivalenti multi-bit e dal conseguente miglioramento Ppa. I flip-flop a bit singolo e i corrispondenti sostituti multi-bit devono avere la stessa funzione (in termini di fronti di segnale di clock, set/reset e configurazione di scan per il test).

Ottimizzare i consumi

A 28 nm, la tecnologia Hkmg (High K Metal Gate) offre miglioramenti del processo che la rendono decisamente interessante per la fabbricazione di SoC molto efficienti in termini di rapporto tra alte prestazioni e consumo. I processi PolySiON che usano gran parte degli stessi apparati di fabbricazione rappresentano un'alternativa molto economica. Molti di questi processi consentono di realizzare transistor con diverse lunghezze di gate, pur mantenendo lo stesso passo (pitch) di gate. Questa caratteristica permette di creare librerie multi-canale senza le penalizzazioni di area che derivano dal progettare in funzione del caso peggiore (massima lunghezza del canale) per assicurare la compatibilità a livello di floorplan. Queste librerie intercambiabili facilitano l'ottimizzazione del consumo statico (“leakage”) durante gli ultimi stadi del flusso di place& route e offrono una granularità molto fine nell'ottimizzazione dei consumi. L'aggiunta di ulteriori versioni di celle con altri valori di VT (ultra-alta, ultra-bassa) consente di ottenere una granularità ancor più fine, ma con un aumento dei costi. La disponibilità di librerie che offrono così tante opzioni comporta, per gli strumenti di sintesi e di Place&Route, il trattamento di una quantità di dati che può apparire eccessiva. Tuttavia, l'uso rigoroso delle liste don't_use (che inizialmente nascondono le celle con forza di pilotaggio molto bassa e molto alta), insieme alla creazione di una sequenza appropriata di librerie, rappresenta una metodologia efficiente per identificare il set ottimale da utilizzare (librerie logiche ad alta velocità e alta densità, compilatori di memoria) al fine di raggiungere i compromessi desiderati tra prestazioni e consumi, al minor costo possibile. Queste metodologie si dimostrano efficaci su molti diversi tipi di circuiti - Cpu, Gpu, interfacce ad alta velocità - e vanno applicate tenendo conto della specifica configurazione circuitale e delle opzioni di processo utilizzate. Con una buona comprensione del flusso di sintesi e di Place&Route, è possibile determinare rapidamente la combinazione e la sequenza ottimale di librerie per una determinata configurazione del progetto. Acquistare librerie specifiche per ogni diverso tipo e configurazione dei core Cpu, Gpu e Dsp implementati in un SoC può essere inefficiente e costoso. Una singola dotazione di celle logiche e di istanze di memoria, opportunamente selezionate, può fornire risultati Ppa ottimali nella fase di “core hardening” dei processori, a patto che essa comprenda una gamma completa di funzioni logiche circuitali efficienti, la giusta scelta di varianti e la giusta granularità di forze di pilotaggio.

LASCIA UN COMMENTO

Inserisci il tuo commento
Inserisci il tuo nome