Table of Contents
Introduzione
I moderni dispositivi mobili si affidano a processori superscalari per fornire le elevate prestazioni necessarie per applicazioni complesse, dal video streaming e dalla realtà aumentata all'inferenza di gioco e machine learning in tempo reale. Questi processori raggiungono la loro velocità eseguendo più istruzioni per ciclo di clock, sfruttando le linee di deep-flow, l'esecuzione out-of-order e le tecniche speculative.
Comprensione dei processori superscalari
Un processore superscalare contiene più unità di esecuzione (ad esempio, ALUs interi, unità a punto variabile, unità di carico/store) e può inviare più di una istruzione ogni ciclo.
- Instruction fetch e decode:[] Legge più istruzioni dalla cache delle istruzioni e li decodifica per identificare i loro requisiti di risorsa.
- Rinominamento del registro:[ Elimina le false dipendenze dei dati (scrittura dopo lettura, scrittura dopo scrittura) mappando i registri architettonici ad un più ampio insieme di registri fisici.
- Stazioni di prenotazione e buffer di riordine:[[] Traccia le istruzioni in volo, monitora la disponibilità dell'opera e assicura che i risultati siano commessi in ordine del programma.
- Moltiple unità funzionali:[ Abilitare l'esecuzione parallela di istruzioni indipendenti.
Il parallelismo estratto da questi meccanismi aumenta direttamente il throughput, ma ogni unità funzionale aggiuntiva e la logica di controllo che li gestisce aumenta il numero di transistor che passano ogni ciclo, aumentando il consumo di energia dinamica. Inoltre, la potenza di fuga, che domina a meno di nodi di processo, cresce con il conteggio totale dei transistor indipendentemente dall'attività.
Sfide del consumo di energia nei dispositivi mobili
I dispositivi mobili presentano un insieme unico di vincoli che rendono la gestione della potenza in processori superscalari particolarmente impegnativi:
- Capacità della batteria:[[] Gli smartphone e le compresse hanno tipicamente batterie nella gamma 3000–5000 mAh. Un processore che disegna anche pochi watt durante il carico pesante può drenare la batteria in ore.
- I vincoli termici:[] Il calore eccessivo porta a un fruscio (redotto) per evitare che la temperatura della pelle superi i limiti di comfort e sicurezza.
- L'esperienza utente richiede:[] Gli utenti si aspettano una risposta immediata per i colpi di attività (ad esempio, lancio di app, rendering di pagine web) e richiedono anche lunghi tempi di standby. Il processore deve essere in grado di puntare ad alte prestazioni brevemente e poi tornare rapidamente ad uno stato di idle a bassa potenza.
- La tecnologia di scaling della ricerca: Come i transistor si restringono, le correnti di fuga statiche aumentano, rendendo più difficile mantenere la bassa potenza durante i periodi di inattività.
- Variabilità del carico di lavoro:[ I carichi di lavoro mobili sono altamente eterogenei: un processore potrebbe eseguire un decodifica video, un thread dell'interfaccia utente, un lavoro di sincronizzazione di sfondo e un'attività di elaborazione dei sensori contemporaneamente.
Queste sfide richiedono un approccio multiforme che combina innovazioni architettoniche, tecniche di circuito e controllo intelligente runtime.
Strategie chiave di gestione del potere
Scala dinamica di tensione e frequenza (DVFS)
DVFS è la tecnica di gestione dell'energia più ampiamente utilizzata nei moderni processori mobili. Il principio è semplice: ridurre la tensione di alimentazione e la frequenza di clock quando il carico di lavoro non richiede prestazioni di picco, riducendo così sia la potenza dinamica (che scala come V2 f])) e, in misura minore, la potenza di perdita (che dipende dalla tensione).
Ad esempio, un governatore del sistema operativo può aumentare la frequenza appena prima che un utente tocca lo schermo, sulla base di modelli storici. La ricerca recente ha esplorato modelli di machine learning che prevedono l'utilizzo futuro utilizzando tracce passate e dati dei sensori, ottenendo migliori compromessi in termini di energia rispetto ai governatori di politica fissa.
Un approccio DVFS mobile notevole è per-core DVFS, dove ogni core in un processore superscalare multi-core può operare a una tensione e frequenza differenti. Questo permette un controllo fine-grained: un core che gestisce un carico leggero può funzionare a un basso OPP mentre un altro core lavora un compito computazionalmente intensivo in un OPP più alto. Tuttavia, per-core Tensione DVFS richiede
Riferimento esterno: Panoramica della scalazione della tensione dinamica[
Potenza di raccolta
Il funzionamento del sistema di alimentazione riduce la corrente di dispersione, scollegando unità funzionali o intere core dalla tensione di alimentazione. Un transistor del sonno (o intestazione/footer) viene inserito nella rete di distribuzione di energia; quando l'unità non è necessaria, il transistor è spento, creando una rotaia di alimentazione virtuale che isola il blocco. La sfida chiave è la la latenza di riattivazione: ripristinare la rotaia di alimentazione ad una tensione stabile e ri-secondare lo stato di rottura di tensione.
Nei processori superscalari mobili, la schermatura di potenza viene spesso applicata al livello centrale (ad esempio, spegnendo un intero nucleo grande in una configurazione grande.LITTLE) o in granularità più fine all'interno di un nucleo. Ad esempio, un'unità a punto variabile condivisa potrebbe essere alimentato quando solo le istruzioni integre sono in esecuzione.
Riferimento esterno: La carta EIEEE sulle tecniche di accoppiamento di potenza[[]
Gattura dell'orologio
Il gating del clock riduce la potenza dinamica disabilitando l'orologio a elementi sequenziali (flip-flop, latches) quando non sono necessari per cambiare stato. In un processore superscalare, molte unità funzionali, come il predittore del ramo, rinomina la logica e rilascia la coda, sono attivi solo in determinate condizioni.
La gating dell'orologio è spesso combinata con il gating di potenza per il massimo effetto: il gating dell'orologio viene applicato prima per eliminare il potere dinamico, e poi la schermatura di potenza spegne il blocco se il periodo di idle è abbastanza lungo per giustificare il overhead.
Istruzioni aggiuntive Scheduling e Problem Logic
La logica del problema in un processore superscalare è un consumatore di potenza importante perché deve svegliare le istruzioni a carico, selezionare le istruzioni pronte e inviarle a unità funzionali ogni ciclo. Per ridurre il potere, i processori possono impiegare finestre di rilascio di dimensioni adattative. Quando il carico di lavoro ha poco parallelismo di livello di istruzione, una minore finestra suffice, permettendo al processore di disabilitare porzioni della sveglia e la logica di selezione.
Ottimizzazione della gerarchia della memoria
Il sottosistema di memoria, inclusi cache L1, cache L2 e buffer di traduzione (TLB), consuma una grande frazione (spesso 30-40%) di potenza totale del processore. I processori Superscalar richiedono cache multiportate per supportare carichi multipli e negozi per ciclo, che aumenta la potenza dinamica e di perdita.
- Way predizione e gating:[] Invece di accedere a tutti i modi di una cache di associazione impostata, un predittore identifica il modo più probabile, riducendo l'energia per accesso. Se la previsione è sbagliata, il modo corretto è accessibile nel ciclo successivo, incorrendo una penalità di latenza.
- Cacche di filtraggio: Una piccola cache di primo livello a bassa potenza (ad esempio, cache L0) può filtrare gli accessi alla cache L1 più grande, risparmiando energia quando i dati sono trovati nella memoria più piccola.
- Architetture cache non uniformi (NUCA): In processori mobili multi-core, banche cache distribuite con diverse latenza di accesso e caratteristiche di potenza permettono al programmatore di inserire i dati frequentemente accessibili nella banca più vicina.
- Blocco-sub e tag/data power gating:[ Le linee Cache sono divise in sotto-blocchi; i sotto-blocchi non utilizzati possono essere alimentati. Gli array di tag possono essere accessibili prima per determinare i colpi di cache prima di consentire l'array dei dati solo quando necessario.
Eterogeneo Computing e big.LITTLE Architectures
Una delle strategie di gestione del potere più efficaci per i processori superscalari mobili è l'uso di architetture multi-core eterogenee, come ad esempio il big.LITTLE di ARM (DynamIQ). Questo approccio è pari a uno o più core ad alte prestazioni “big” (ad esempio, serie Cortex-X) con diverse prestazioni “LITTLE” ad alta efficienza energetica (ad esempio, Cortex-A55).
Il gestore di potenza (spesso il programmatore del sistema operativo o un firmware dedicato) migra i filetti tra i tipi di core basati sulle caratteristiche del carico di lavoro. Le attività leggere (ad esempio, sincronizzazione di sfondo, inquinamento dei sensori) funzionano sui core LITTLE, mentre le attività impegnative (ad esempio, codifica video, motore di gioco) sono assegnate a grandi core.
Riferimento esterno: ARM big.LITTLE architecture[
Gestione del potere di software-Level
Le tecniche di gestione dell'energia hardware sono più efficaci quando sono integrate dal controllo del software.
- Politiche di pianificazione CPU: Modern schedulers (ad esempio, Linux CFS con programmazione energetica-aware) utilizzare i dati del modello di energia per-task per prendere decisioni di assegnazione. Possono imballare le attività su un sottoinsieme di core per consentire ad altri core di rimanere alimentatori, o diffonderli per ridurre la necessità di scaling di frequenza.
- Quadri di gestione del potere dinamico:[] Android []powerHAL[ e cpuidle[]] consentono hardware e software di collaborare: il kernel può inserire un core in uno stato profondo di inattività (power-gated) monitor quando non è necessario e
- Ottimizzazione del cliente:[] I compilatori possono generare codice che migliora il parallelismo a livello di istruzione (ridurre il numero di cicli richiesti e quindi attivare frequenze inferiori) e che riduce gli accessi alla memoria (promuovere il riutilizzo del registro e l'utilizzo di prefetching).
- Consapevolezza del livello di applicazione:[ Le applicazioni possono usare le API del sistema operativo per accennare ai loro requisiti di prestazione. Ad esempio, un lettore video può segnalare che si aspetta un livello di prestazioni stabile per una riproduzione regolare, permettendo al gestore di potere di evitare cambiamenti di frequenza aggressivi che causano il jitter.
Le direzioni future nella gestione del potere
Il prossimo decennio vedrà la gestione della potenza in processori superscalari mobili diventare ancora più intelligente e adattabile.
Controllori di potenza basati sull'apprendimento della macchina
I modelli di apprendimento automatico, in particolare l'apprendimento di rinforzo e le reti di memoria a breve termine (LSTM) possono apprendere il complesso rapporto tra comportamento del carico di lavoro, temperatura e stati di potenza. Tali modelli sono stati mostrati ai governatori euristici di dimensioni ridotte del 15-30% in efficienza energetica per i carichi di lavoro reali mobili.
Computing (NTC) vicino al tre
I processori operativi a una tensione di alimentazione vicino alla tensione di soglia transistor possono ridurre drasticamente sia la potenza dinamica che statica (fino a 10x). Tuttavia, NTC soffre di velocità di circuito ridotta e di maggiore sensibilità alla variabilità. I processori Superscalar progettati per NTC devono impiegare circuiti specializzati per il rilevamento e la correzione degli errori di temporizzazione e possono essere necessari per ridurre la profondità o la larghezza di emissione del gas.
Integrazione 3D e Imballaggio Avanzato
L'integrazione 3D consente anche una migliore erogazione di energia, posizionando i regolatori di tensione più vicini al carico. I futuri processori mobili possono integrare un die separato per la regolazione della tensione, permettendo al DVFS per-core di ridurre le perdite parassitarie minime.
Approssimativo calcolo
Per molte applicazioni mobili (ad esempio, elaborazione delle immagini, audio, fusione dei sensori), non è necessario un calcolo perfettamente accurato. Le tecniche di calcolo approssimative, come la riduzione della precisione dell'aritmetica a punto fisso o la possibilità di errori occasionali nella previsione di branch, possono ridurre significativamente il consumo di energia.
Gestione globale e collaborativa del potere
Poiché i dispositivi mobili incorporano più processori (CPU, GPU, NPU, DSP), un gestore di potenza a livello di sistema che coordina tutti i componenti può ottenere un risparmio energetico migliore rispetto alla gestione di per-IP. Tecniche come “razza a idle” (complete le attività il più velocemente possibile e poi entrare in uno stato di bassa potenza) richiedono la collaborazione tra hardware e software per ridurre al minimo la potenza idle.
Conclusioni
I processori superscalanti sono diventati un punto di riferimento delle prestazioni di mobile computing, ma il loro vorace appetito di potere richiede una gestione attenta. Le strategie discusse – DVFS, power gating, clock gating, logiche di rilascio adattative, ottimizzazioni di memoria, architetture eterogenee e cooperazione software – hanno permesso agli smartphone di oggi di fornire prestazioni simili a quelle del desktop in un fattore di forma palma-dimensionato.