Qual è il vantaggio di A7 a 64 bit in iPhone


21

Sto cercando di capire perché andare su processori a 64 bit è un grosso problema in un iPhone. Comprendo che ci saranno il doppio dei registri in modo che il processore possa lavorare con il doppio dei dati che dovrebbero aumentare le prestazioni.

Tuttavia, non vedo presto molti telefoni che occupano più di 4 GB di memoria. Sembra eccessivo e avrebbe un impatto negativo sulla durata della batteria.

Un altro problema che vedo è che la maggior parte delle variabili ora ha bisogno del doppio della memoria. Ciò creerà problemi in un ambiente mobile con piccole quantità di memoria.

Credo che la gente di Apple sia intelligente e probabilmente abbiano ottime ragioni per farlo, sto solo cercando di capirli.

MODIFICARE

Non so molto sulle GPU, ma mi è stato detto che con i registri a 64 bit è possibile caricare 2 pixel in ciascun registro e le operazioni possono essere eseguite su di essi singolarmente. C'è un vantaggio grafico rispetto a 64 bit?


2
Proprio come una nota a margine: più potenza di elaborazione significa che i programmatori possono permettersi di essere più pigri di prima (meno ottimizzazioni), un motivo potrebbe essere quello di incoraggiare gli sviluppatori di app.
Vlad Preda,

3
@ Chris.Stover - Oggi non c'è alcun vantaggio. Ovviamente domani un'applicazione iOS sarà in grado di utilizzare più memoria una volta che i telefoni avranno più memoria. In soli 5 anni la capacità di memoria del telefono è aumentata di almeno il 200%. Se la tendenza continua, potremmo vedere telefoni da 6 GB a 8 GB in pochissimo tempo. Anche Apple non vede l'ora di fare qualcosa del genere. Tutto dipende dal fatto che ARM probabilmente licenzierà solo i progetti a 64 bit in futuro. Dipende dal fatto che il telefono ora ha più registri che lo rendono davvero più veloce. Le specifiche a 64 bit non sono importanti oggi.
Ramhound,

1
Non è due volte, è ordini di grandezza più grandi. I processori a 32 bit possono indirizzare solo 4 GB di RAM RAM. I processori a 64 bit possono indirizzare circa 18 Exabyte, ovvero 3 ordini di grandezza in più.
Ingegnere mondiale,

7
non più limite di memoria 640k
Reactgular

1
Si sospetta che il Nexus 5 disporrà di 3 GB di RAM e che sarà lanciato il mese prossimo. Non credo che 4 GB + siano lontani come potresti pensare.
Brendon,

Risposte:


25

Per lo più sta solo lanciando un gran numero là fuori perché impressiona le masse. I numeri più grandi sono ovviamente superiori, quindi qualsiasi cosa con un processore a 64 bit è chiaramente migliore di qualcosa con un processore a 32 bit. La nuova CPU è significativamente migliore rispetto al suo predecessore ma, alla moda di Apple, non proveranno il marketing in base alle specifiche tecniche - ti diranno solo che l' A7 a 64 bit è più recente e migliore del 32- bit A-6 . Guardando le specifiche tecniche, tuttavia, vedi:

  • Chipwork 28nm vs 32nm
  • Processore grafico integrato migliorato
  • ARM v8 architecture v. ARM v7 (aggiunge funzioni SIMD; salta da 13 a 31 registri di uso generale)
  • Memoria principale on-die (cioè - più veloce)

Oltre a ciò, c'è il fatto che possono iniziare a distribuire hardware a 64 bit (compatibile con le versioni precedenti) oggi, prima che ci imbattiamo nel "muro da 4 GB". In pochi anni, quando 64 bit diventerà una necessità, tutto l'hardware lo supporterà e non sarà più necessario gestire architetture legacy a 32 bit.


1
In realtà non riesco a trovare la fonte per le informazioni negli articoli wiki. Altri siti segnalano dual core a 1,5 GHz. Una pagina wiki dice che A7 è octa-core da 1,7 GHz. Vedere quanto segue: en.wikipedia.org/wiki/Apple_(system_on_chip) pdadb.net/index.php?m=pdacomparer&id1=4962&id2=4829
Chris.Stover

2
@ Chris.Stover dimostra semplicemente che Apple non vende hardware su specifiche tecniche: vogliono solo spingere "Più recenti e migliori!" con la prossima generazione piuttosto che dirti perché il nuovo hardware è effettivamente migliore.
Sean McSomething l'

2
ARM v7 supporta già le linee di indirizzo a 40 bit (1 TB di RAM), sebbene le app su quell'architettura a 32 bit possano indirizzare solo 4 GB ciascuna. Arm v8 attualmente supporta app a 32 bit, quindi la compatibilità con le versioni precedenti non è un problema.
gbjbaanb,

16

Non esiste un "wall da 4 GB" su ARMv7, poiché molti core ARMv7 supportano LPAE (Large Physical Address Extension), che è un concetto simile a PAE su x86, tranne che LPAE utilizza l'indirizzamento a 40 bit. Ciò significa che ARMv7 dotato di LPAE può indirizzare fino a 1 TB di RAM .

È anche importante ricordare che i futuri core ARMv8, incluso A7, non utilizzeranno l'indirizzamento fisico a 64 bit . Molto probabilmente A7 utilizzerà l'indirizzamento fisico a 40 o 44 bit. Successivamente concede l'accesso al massimo a 16 TB di RAM.

Ovviamente con LPAE su ARMv7 o in modalità AArch32 su ARMv8, le applicazioni sono ancora a 32 bit, quindi l'applicazione stessa può accedere solo a 4 GB alla volta. Ma non credo che presto sarebbe un problema sui dispositivi mobili.

Ti preoccupi che le app utilizzino più memoria (puntatori a 64 bit), ma non sarà così se le app vengono eseguite in modalità 32 bit (AArch32).

D'altra parte ARMv8 offre altri miglioramenti architetturali rispetto a ARMv7, che non sono correlati ad AArch64.

TL, DR: 64-testimone di A7 è un espediente di marketing.Anche su sistemi con più di 4 GB di RAM non offre alcun vantaggio significativo rispetto a LPAE per le app a 32 bit. E le app a 64 bit non arriveranno presto.

Aggiornamento: è stato confermato dal dirigente del marketing di Qualcomm (attualmente ex dirigente, poiché è stato retrocesso per questi commenti ).

"So che c'è molto rumore perché Apple ha fatto [64-bit] sulla sua A7", ha dichiarato Anand Chandrasekher, vicepresidente senior e Chief Marketing Officer di Qualcomm, in un'intervista. "Penso che stiano facendo un espediente di marketing. Non ci sono benefici per i consumatori."

Un vantaggio di 64 bit è una maggiore indirizzabilità della memoria, ma ciò non è rilevante negli smartphone o tablet di oggi, ha affermato Chandrasekher. L'iPhone 5s ha solo 1 GB di DRAM.

"Prevalentemente ... ne hai bisogno per indirizzare la memoria oltre i 4 GB. Ecco fatto. Non ne hai davvero bisogno per le prestazioni, e i tipi di applicazioni a cui i 64 bit vengono utilizzati per lo più sono applicazioni di classe server di grandi dimensioni", ha detto Chandrasekher, che in precedenza gestiva il gruppo di piattaforme mobili Intel. ( fonte )


9

Concentrandosi esclusivamente A7sull'essereARMv8 c'è un ovvio guadagno. ARM sta riavviando il set di istruzioni e l'architettura.

Essendo retrocompatibilità con ARMv7, anche la prossima versione afferma

  • Nuovo set di istruzioni (A64)
  • Gestione delle eccezioni rivista per le eccezioni nello stato AArch64
  • Meno registri e modalità bancate

Quindi ARMv8sfide ARMv7sulle differenze architettoniche, fornendo un'interfaccia più pulita per gli sviluppatori di sistemi che probabilmente rimuovono le funzionalità legacy che portano a una piattaforma migliore. Ciò significa che dovresti aspettarti prestazioni / energia migliori anziché un impatto negativo sulla batteria.

Scopri di più su ARM Architecture Preview .


+1. Gruber ha anche una buona descrizione dei vantaggi di ARMv8 su daringfireball.net/2013/09/the_iphone_5s_and_5c . (Scorri verso il basso fino a "The A7: ARMv8 and 64-Bit Architecture.")
Josh Kelley,

4

Il vantaggio maggiore rispetto a 32 bit per i processori a 64 bit è il movimento della memoria e non la dimensione della memoria. Mentre è vero che 32 bit possono imporre un limite di 4 GB all'accesso diretto. Esistono molte soluzioni hardware / software per aggirare quel limite.

I processori a 64 bit possono semplicemente leggere / scrivere più dati in una singola operazione del processore. Consente al codice assembly di eseguire operazioni su blocchi da 8 byte. Questo può avere un grande vantaggio in termini di prestazioni rispetto ai processori a 32 bit. I calcoli in virgola mobile sono più veloci su 64 rispetto a 32 e quando la CPU utilizza due registri può operare su blocchi di dati a 128 bit.

I processori a 64 bit hanno anche larghezze di banda più ampie per la memoria fisica. Se hai una fotocamera che registra 1080p e vuoi modificare quel video. L'esecuzione di un'operazione su un file video da 1 GB sarà semplicemente più veloce su 64 bit.

Tutto quanto sopra è vero anche se il Ghz del processore rimane lo stesso.

Se 64 bit è così buono, allora perché non 128 bit?

Più bit aggiungi alla pipeline di una CPU, più dati deve spostare la CPU. La CPU non può restringere tale larghezza di banda a 16 o 32. Quindi questo crea un problema per gli sviluppatori di software. La maggior parte dei software (il tuo calendario, le note, ecc.) Non dipendono da molti dati e, di conseguenza, 128 bit comporterebbero molta perdita di larghezza di banda. Questo può iniziare a ostacolare le prestazioni e la durata della batteria. Quindi i produttori di CPU devono trovare un equilibrio tra larghezza di banda e requisiti software.

Sono sorpreso che Apple abbia rilasciato un nuovo processore 64 così presto nella vita del mobile computing. Penso che la loro vera motivazione sia la grafica 3D. Con un processore a 64 bit il telefono può spostare rapidamente più dati nella GPU. Ciò consentirà giochi 3D veloci e una grafica più impressionante. Inizierai davvero a vedere i vantaggi del 64-bit in 3D in tempo reale perché quel processo dipende molto dai dati.


4
Le architetture CPU recenti / moderne sono molto complicate di quanto descritto qui. Le CPU spostano i dati dalla memoria in unità chiamate cache linessu bus di memoria che potrebbero avere 16 bit a 32 bit o probabilmente a 64 bit. Ciò non è necessariamente corrispondente alla dimensione della parola nativa dell'arco della CPU. Hai ragione sul fatto che un grosso problema sta spostando i dati, ma quel problema appartiene a qualche altro dominio hardware / architettonico. FP viene eseguito su FPU che sono in realtà abbastanza veloci e possono funzionare con dimensioni di precisione singole o doppie. Lo stesso vale per la decodifica video o il 3D in realtà, hanno tutti i loro hardware dedicati che non sono necessariamente a 64 bit.
auselen,

4
Esiste un fantastico documento chiamato what every programmer should know about memorydisponibile gratuitamente per il curioso sviluppatore akkadia.org/drepper/cpumemory.pdf
auselen

2

Semplifica le cose quando si gestiscono grandi numeri. I numeri grandi sono estremamente importanti nella crittografia (dopo che PRISM ha un telefono cellulare sicuro è diventato molto importante) e nelle applicazioni scientifiche.


1

Anche se ora potresti non avere problemi se rimani a 32 bit, ci saranno sicuramente problemi nel prossimo futuro. La lezione appresa dal mondo desktop è che una transizione sarà un processo lungo e doloroso. Quindi dovresti iniziare prima o poi.

È stato anche sorprendente per me che gli smartphone non fossero a 64 bit dall'inizio.


L'ho provato convertendo la mia app corrente a 32 bit. Ho ricevuto un numero di avvertimenti ma nessun errore. Fortunatamente apple ha una soluzione suggerita per ogni avviso, quindi ho appena cliccato su ogni avviso e ho premuto invio per accettare la correzione. Ci sono voluti circa 5 minuti ed ero attivo e funzionante a 64 bit. Nessun mal di testa, nessun problema ... finora
Chris.Stover

0

Non penso che ci siano molti vantaggi tecnici. Innanzitutto penso che abbia più senso se si considera l'iPad (ha una batteria più grande, quindi può supportare più ram, un maggiore consumo di energia da parte del processore, ecc.). Seconda occhiata agli altri annunci in corso proprio ora. AMD ha appena annunciato che pubblicherà processori ARM a 64 bit nel 2014. Questo è fondamentalmente Apple che mantiene la leadership di mercato di fronte a ciò che sta arrivando ai tablet Android e Win8 di fascia alta.


0

Nel breve periodo praticamente niente. In realtà è un passo indietro in alcuni modi. Ci sono tre vantaggi principali che conosco.

  1. 64 bit è molto meglio con numeri più grandi, il che è un vantaggio per la crittografia. Che può essere una combinazione interessante con lo scanner di impronte digitali sul telefono.
  2. Sempre nella stessa ottica, i miglioramenti con 64 bit e grandi numeri aiutano con il rendering della fisica. Il che è utile considerando la quantità di fisica utilizzata nell'interfaccia utente di iOS7. Ciò avvantaggia anche gli sviluppatori di giochi, in particolare su qualcosa con immobili a schermo più grande come l'iPad.
  3. Aggiunge anche un certo grado di futuri telefoni a prova di futuro che utilizzano questo.

0

Punti di riferimenti.

Per alcune implementazioni in grado di supportare entrambe le modalità architettoniche a 32 e 64 bit con x86, MIPS e ARM ISA, la modalità a 64 bit è comparata più velocemente su alcune importanti applicazioni. Uno dei motivi principali è che gli ISA a 64 bit sono più recenti e gli architetti ISA hanno quindi saputo di più sulle statistiche delle applicazioni e su come ottimizzare per quel set di comportamenti dell'applicazione durante la definizione dell'ISA. E un nuovo processore ISA deve essere a prova di futuro rispetto alle esigenze di memoria delle applicazioni che stanno crescendo al ritmo della legge di Moore e che sono già cresciute di oltre un milione di volte nell'area dei dispositivi mobili.

Pertanto, il nuovo ISA arm64 probabilmente esegue un benchmark più veloce su qualsiasi codice delle prestazioni che potresti sviluppare (ha sul mio codice), oltre a consentire ai puntatori C muti di indirizzare i vasti spazi di indirizzi virtuali che potrebbero diventare comuni un decennio o più da allora (che è molto meno tempo rispetto all'originale ARM ISA a 32 bit).

Le prestazioni sul tuo particolare set di applicazioni (misura per confermare) sono un'ottima ragione per preferire arm64.


-4

64 bit consente molta più condivisione del codice con le build desktop di OSX (che sono tutte a 64 bit)


Ma attualmente tutte le app iOS devono mantenere la compatibilità a 32 bit, quindi qualsiasi codice solo a 64 bit deve essere convertito comunque a 32 bit.
Bryan Chen,

1
Ma sono comunque un'architettura completamente diversa (x86-64 vs. armv8). Guadagno zero da questo (programma scritto in modo corretto in C / C ++ / ObjC funzionerà su qualsiasi numero di bit anche se non è un requisito).
Jan Hudec,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.