Architettura Snapdragon 810

Il primo SoC Qualcomm di fascia alta a 64 bit, lo Snapdragon 810, è finalmente disponibile. Diamo uno sguardo all'architettura e alle prestazioni prima di passare al test dei singoli dispositivi che recensiremo nei mesi a venire.

Avatar di Tom's Hardware

a cura di Tom's Hardware

Architettura Snapdragon 810

Qualcomm Snapdragon 810 architettura

Qualcomm Snapdragon 810, architettura - clicca per ingrandire

Lo Snapdragon 810, rispetto ai precedenti top di gamma dell'azienda, offre una CPU a 64 bit. Il SoC contiene anche una GPU aggiornata, un'interfaccia di memoria completamente rinnovata e un nuovo modem Gobi. Quest'ultimo è forse il componente che ha fatto il passo avanti maggiore, dato che supporta connettività LTE Carrier Aggregation Cat 9.

Questo significa che gli smartphone dotati di questo SoC consentiranno velocità di download fino a 450 Mbps su oltre tre reti carrier LTE da 20 MHz. Si tratta di un ulteriore passo avanti rispetto all'LTE Cat 6 abbinato allo Snapdragon 805 che permette download a velocità fino a 300 Mbps nelle migliori condizioni. Per quanto riguarda il picco massimo teorico in upload rimarremo ancorati ai 50 Mbps. Si andrà oltre solo con l'LTE Cat 10 che porterà le prestazioni a 100 Mbps.

Un'altra informazione chiave relativa al modem è che è integrato nello Snapdragon 810, mentre nella versione 805 era fuori dal SoC. Questo dovrebbe portare ad avere vantaggi sia sui consumi che sui costi di produzione.

Famiglia Qualcomm Snapdragon 8xx
  Snapdragon 810 Snapdragon 805 Snapdragon 801 Snapdragon 800
Processo produttivo 20nm 28nm HPm 28nm HPm 28nm HPm
CPU 4x ARM Cortex-A57 @ 2.0GHz + 4x ARM Cortex-A53 @ 1.5GHz (big.LITTLE) 4x Qualcomm Krait 450 @ 2.65GHz 4x Qualcomm Krait 400  up to 2.45GHz 4x Qualcomm Krait 400 fino a 2.26GHz
Architettura ARMv8-A (32/64-bit) ARMv7-A (32-bit) ARMv7-A (32-bit) ARMv7-A (32-bit)
GPU Qualcomm Adreno 430 @ 600MHz Qualcomm Adreno 420 @ 600MHz Qualcomm Adreno 330 @ up to 578MHz Qualcomm Adreno 330 @ 450MHz
Interfaccia memoria LPDDR4-1600 2x 32-bit (25.6 GBps) LPDDR3-800 2x 64-bit (25.6 GBps) LPDDR3-800/933 2x 32-bit (12.8/14.9 GBps) LPDDR3-800 2x 32-bit (12.8 GBps)
Fotocamera ISP 14-bit dual ISP (throughput 1.2 GP/s, sensori d'immagine fino a 55MP) 12-bit dual ISP (throughput 1.2 GP/s, sensori d'immagine fino a 55MP) dual ISP (throughput 930 MP/s, sensori d'immagine fino a 21MP) dual ISP (throughput 640 MP/s, sensori d'immagine fino a 21MP)
DSP Hexagon V56 @ 800MHz Hexagon V50 @ 800MHz Hexagon V50 @ 800MHz Hexagon V50 @ 680MHz
Modem integrato MDM9x??, LTE Cat 9, fino a 450 Mbps - MDM9x25, LTE Cat 4, fino a 150 Mbps MDM9x25, LTE Cat 4, fino a 150 Mbps

CPU

Lo Snapdragon 810 non è basato sull'architettura Krait personalizzata da Qualcomm ma si basa su core ARM a 64 bit standard, seguendo il sentiero già tracciato da aziende come Marvell, MediaTek e Nvidia. Nello specifico lo Snapdragon 810 integra quattro core Cortex-A57 e quattro core Cortex-A53 in configurazione big.LITTLE, ovvero tutti e otto i core sono disponibili allo scheduler del sistema operativo. I due cluster di CPU sono connessi tramite la CCI-400 (Cache Coherent Interconnect) di ARM.

Il Cortex-A57 è il successore del Cortex-A15. Laddove l'A15 rappresentava una nuova architettura, l'A57 ha portato solo piccole revisioni al design dell'A15. Ritroviamo ancora una volta una stage pipeline speculativa superscalare 15+, dove i primi 12 stadi (fetch/decode) sono in-order e gli stadi finali 3-12 (issue/execution) sono out-of-order.

Anche l'IPC è cambiato rispetto all'A15, decodificando fino a tre, emettendo fino a otto e ritirando fino a tre (le otto pipeline hanno lunghezze differenti) istruzioni per ciclo di clock, la metà di quanto può fare l'Apple A7 e dell'architettura Denver di Nvidia (un core 2 to 7-wide a seconda dell'ottimizzazione dinamica del codice).

Il buffer di riordino delle istruzioni mantiene fino a 128 micro-ops, le stesse del Cortex-A15, meno delle 192 immagazzinate dall'Apple A7 e dall'architettura Haswell di Intel (Nvidia Denver non ha un buffer di riordino hardware, il software di traduzione effettua il riordino e ricerca tra oltre 1000 istruzioni per il parallelismo). La cache istruzioni L1 passa a 48 KB (48-entry TLB) rispetto ai 32 KB dell'A15, mentre rimane invariata (32 KB) la cache data (32-entry TLB). La cache L1 è sostenuta da una cache L2 condivisa.

ARM Cortex A57

L'altra parte della CPU nel progetto big.LITTLE è rappresentata dal Cortex-A53, basato su architettura Cortex-A7. Laddove l'A57 è un core out of order complesso progettato per le alte prestazioni, l'A53 è un core in order molto semplice ottimizzato per i bassi consumi. Ha una pipeline a 8 stadi - il modulo Advanced SIMD opzionale, incluso nello Snapdragon 810, usa un totale di 10 stadi ed è richiesto per effettuare operazioni in virgola mobile - con un dual-issue simmetrico per la maggior parte delle istruzioni. ARM afferma che l'A53, realizzato con lo stesso processo, offre le medesime prestazioni di un Cortex-A9.

ARM Cortex A53

Cortex-A57 e A53 condividono molte caratteristiche di basso livello con le CPU che rimpiazzano, ma aggiungono il supporto alla nuova architettura AArch64 a 64-bit e al set di istruzioni A64. I benefici più ovvi nel passare ai 64 bit sono la capacità d'indirizzare più di 4 GB di memoria RAM, una cosa incredibilmente importante per i dispositivi mobile in cui CPU e GPU condividono la stessa RAM di sistema.

L'A15 a 32 bit usa già le "Large Physical Address Extensions" (LPAE), che mappano spazi d'indirizzamento virtuali a 32 bit in spazi d'indirizzamento fisici a 40 bit con una risoluzione di pagina di 4 KB. Questo consente a ogni applicazioni di vedere fino a 4 GB di memoria nello stesso momento, similmente a come lavoravano i software Windows con chip x86 a 32 bit. ARMv8-A allevia le limitazioni d'indirizzamento della memoria supportando 48 bit di address space sia virtuale che fisico.

Non sono necessari Address space completamente a 64 bit (le soluzioni x86-64 usano uno user space addressing a 48 bit) e limitare l'address space permette di semplificare l'hardware e risparmiare energia. La nuova architettura supporta anche dimensioni di pagina da 64 KB oltre ai tradizionali 4 KB, il che riduce il page table walk da quattro a due livelli quando si usa un indirizzamento a 42 bit.

Probabilmente non vedremo smartphone e tablet con più di 4GB di RAM fino al 2016, ma il passaggio ai 64 bit offre altri miglioramenti prestazionali. I registri hanno ora un'ampiezza a 64 bit e ce ne sono di più; i registri general purpose passano da 14 a 32 e i registri SIMD/floating point salgono da 16 a 32. I registri aggiuntivi danno ai compilatori più spazio per effettuare un loop unrolling e fornire "opzioni di scheduling migliorate per gli algoritmi sempre più complessi che stanno diventando comuni tra i vari codice software", dice ARM.

Piuttosto che adattare l'esistente tabella di decodifica a 32 bit, ARM offre le proprie istruzioni a 64 bit. Con due semplici tabelle piuttosto che una più grande, una tabella ingombrante semplifica l'implementazione hardware e permette una branch prediction più facile e altre tecniche per accelerare i compilatori JIT (JavaScript), utili per una navigazione più rapida sul Web.

ARM ha scelto lo stesso approccio per sviluppare il proprio instruction set architecture (ISA) a 64 bit. Anziché estendere l'ISA A32, come ha fatto AMD con l'x86, ARM ha creato una ISA A64 totalmente nuova e semplificata che facilita ulteriormente l'implementazione hardware e riduce i consumi energetici. Ad esempio più istruzioni load/store, che incrementavano la complessità della memoria di sistema, sono state rimosse insieme ad alcune istruzioni condizionali i cui benefici non erano giustificati dal loro impatto sui consumi.

A64 offre anche nuove capacità avanzate SIMD per soddisfare lo standard IEEE754-2008, inclusa la possibilità per i vettori di gestire i valori in virgola mobile a doppia precisione e un nuovo numero di istruzioni d'arrotondamento. I registri SIMD ora sono ampi 128 bit, rispetto ai 64 bit in AArch32.

Qualcomm Snapdragon 810 diagramma

Qualcomm Snapdragon 810, diagramma - clicca per ingrandire

Sulla base di queste informazioni lo Snapdragon 810 offre prestazioni sul fronte della CPU migliori rispetto ai SoC Snapdragon 80x? In generale e specialmente se eseguiamo codice a 64 bit, la risposta è sì. Krait 400/450 è, fondamentalmente, una versione semplificata di un A15 ottimizzato per i bassi consumi e/o le alte frequenze.

L'IPC è simile all'A15/A57, con lo stesso front-end 3-wide ma con una porta d'esecuzione in meno. La pipeline integer di Krait è inoltre più corta, ha un buffer di riordino istruzioni più piccolo che può contenere solo 40 micro-ops e ha cache L1 più piccole. Avere una porta d'esecuzione in meno e un buffer di riordino più piccolo impatterà sul throughput generale, anche se la pipeline più corta di Krait e una frequenza più alta, l'aiuterà a recuperare più rapidamente da un brach mispredict.

Che dire dei consumi? Se tutto rimane uguale, la maggiore complessità dell'A57 si traduce in una consumo maggiore. Tuttavia, nella corsa all'ingresso in stato idle, scaricare operazioni ai più efficienti core A53 e l'uso del processo a 20 nanometri dovrebbe aiutare a mitigare questo svantaggio rispetto a Krait.

GPU

Sappiamo molto della parte CPU dello Snapdragon 810, mentre sappiamo poco dell'Adreno 430. Qualcomm non ha condiviso alcun dettaglio dell'architettura, affermando solo un vago 30 percento di prestazioni in più e un consumo del 20 percento inferiore rispetto alla precedente generazione Adreno 420. Poiché il modello 420 ha subito un rinnovamento architetturale sostanziale, è probabilmente lecito ipotizzare che il modello 430 sia una versione modificata del 420.

Lo scorso anno l'Adreno 420 ha aggiunto il supporto OpenGL ES 3.1 (più Android Extension Pack), OpenCL 1.2 e DirectX 11 feature level 11_2, insieme al supporto a geometry shader, tessellation hardware dinamica e Adaptive Scalable Texture Compression (ASTC). Tutte queste caratteristiche le ritroviamo nell'Adreno 430.

Nell'articolo sullo Snapdragon 805 facevamo notare come un grande incremento nel bandwidth di memoria, insieme alle cache texture e L2 più capienti dell'Adreno 420, probabilmente alimentavano ulteriori unità texture e shader. Una conclusione che fu poi supportata dai risultati dei benchmark. Con un sacco di bandwidth di memoria e più area del die disponibile con il passaggio ai 20 nanometri, è probabile che l'Adreno 430 abbia più risorse legate agli shader.

Una cosa che abbiamo notato nei dispositivi con chip Snapdragon 805 è un marcato throttling termico durante la riproduzione di giochi. In molti casi, il throttling termico appiana ogni beneficio prestazionale che il 420 ha sul vecchio Adreno 330. Il passaggio a un processo produttivo inferiore aiuterà il 430 a far fronte a un leggero penalty nei consumi dal (possibile) incremento nei transistor - è probabile che Qualcomm abbia implementato alcune modifiche per consumare meno - ma sospettiamo che il throttling termico sarà ancora un problema per il 430, specialmente nei telefoni fatti totalmente in plastica.

Memoria

Snapdragon 805 accede alla propria memoria LPDDR3-800 attraverso un bus dual-channel a 64-bit (128-bit totali) per un bandwidth di memoria massimo di 25,6 GBps, decisamente di più dei 14,9 GBps disponibili con lo Snapdragon 801 e l'Apple A8. Il bandwidth di memoria totale rimane invariato per lo Snapdragon 810, ma si passa a un'interfaccia dual-channel a 32 bit (64-bit totali) LPDDR4-1600.

La memoria LPDDR4 ha un'architettura completamente ridisegnata che usa due canali a 16-bit (rispetto a un canale a 16-bit nelle LPDDR3) per ridurre la distanza di signaling tra l'insieme di memoria e i pad di I/O, riducendo così i requisiti energetici e offrendo frequenze di signaling più elevate. La nuova memoria usa anche un signaling di I/O "low-voltage swing-terminated logic" (LVSTL) che riduce la tensione del 50% rispetto all'LPDDR3.

Tutti questi miglioramenti permettono data rate superiori (che lo Snapdragon 805 già raggiungeva usando un bus a 128 bit più ampio) e il 35-40% di consumi in meno.

Uncore

Lo Snapdragon 810 usa un doppio design ISP a 14-bit a supporto di sensori d'immagine fino a 55 megapixel e un throughput totale a 1.2GP/s, che rispecchia le capacità dell'805. L'810 integra un nuovo DSP Hexagon V56 che supporta Dolby Atmos e riproduzione audio fino a 24-bit/192kHz (richiede un supporto con codec audio separato o l'USB pass-through verso un DAC esterno).

Qualcomm è una grande sostenitrice dei video 4K, quindi non sorprende che i SoC Snapdragon mostrino una chiara progressione verso il supporto completo ai video 4K. Gli Snapdragon 800/801 possono codificare/decodifica video Ultra HD H.264 in hardware, ma H.265 (HEVC) è gestito interamente tramite software.

L'805 aggiunge la decodifica hardware di video 4K H.265, e l'810 completa la transizione verso l'Ultra HD aggiungendo la codifica hardware per video 4K H.265. Il codificatore hardware negli 810 gestisce video 4K @ 30fps e 1080p @ 120fps. Può anche inviare contenuti 4K @ 60fps allo schermo primario oltre che filmati 4K @ 30fps a uno schermo esterno via HDMI 1.4a o 1080p @ 60fps in wireless tramite Miracast.

Qualcomm Snapdragon 810 modem

Qualcomm Snapdragon 810, modem - clicca per ingrandire

L'810 originariamente doveva includere un modem Gobi 9x35 Cat 6 con supporto al download fino a 300 Mbps. Tuttavia, con Samsung in procinto di realizzare un proprio modem Cat 10, Qualcomm ha ritenuto necessario passare a un modem Cat 9 per lo Snapdragon 810. Questo modem, che non è né l'MDM9x35 o il recente Cat 10 MDM9x45, è una soluzione unica senza un nome ufficiale. Quello che è importante sapere è che può raggiungere un bandwidth di picco di 450 Mbps usando la carrier aggregation 3 x 20 MHz.

Complessivamente lo Snapdragon 810 offre grandi miglioramenti rispetto all'805, come una CPU octa-core a 64-bit, un modem Category 9 LTE e il supporto alla memoria LPDDR4, insieme a prestazioni grafiche e capacità multimediali aggiornate. Ora passiamo ai benchmark, per vedere se queste capacità si trasformano in prestazioni reali.