Processori ARM a 128 bit? Non ce n’è bisogno

armcpu

Vi abbiamo parlato qualche giorno fa di alcune voci circolate in Rete che volevano ARM impegnata nello sviluppo di architetture a 128 bit. Chiaramente si tratta di un falso, poiché non c’è alcuna utilità pratica in un processore del genere. La stessa ARM ha negato queste voci affermando di non avere alcun piano di sviluppare hardware di questo genere.

È stato lo stesso capo del marketing della società di Cambridge a prendere in mano la situazione ed a dichiarare che

Non ci sono assolutamente pieni per processori ARM a 128 bit perchè, semplicemente, non ce n’è bisogno. Le voci che dicono il contrario sono semplicemente non corrette. Il prossimo anno mi aspetto di vedere numerosi annunci di soluzioni a 64 bit per i mercati mobile, networking e server.”

Il va sans dir che se le architetture a 64 bit esordiscono ora è decisamente improbabile che ARM voglia far esordire una nuova architettura nei prossimi 2 anni. D’altronde l’architettura ARMv8 che esordirà il prossimo anno rimarrà in campo per lungo tempo; non è irrealistico ipotizzare 5 anni di permanenza sul mercato.

Perché sarebbe inutile sviluppare un’architettura a 128 bit? La risposta è, in realtà, molto semplice e molto complessa allo stesso tempo. Il numero di bit fa riferimento alla lunghezza della parola (o word), ovvero l’insieme di bit che viene trattato come un unicum dal processore; in pratica, è la lunghezza fissa dei dati che vengono elaborati. La lunghezza della word determina la grandezza massima (e, nel caso di numeri con la virgola, la precisione massima) dei numeri che possono essere calcolati. Il discorso è lungo e complesso e questa non è la sede più adatta per discuterne, ma basti pensare a questo: che bisogno c’è di sviluppare un’architettura che può calcolare numeri enormi come 2^128 per uno smartphone, quando nemmeno i server e le workstation impiegati per il calcolo scientifico utilizzano CPU del genere?

Per ora dovremo accontentarci di vedere le nuove architetture a 64 bit, che permetteranno di impiegare più di 4GB di RAM sui dispositivi. Di fatto, ci avviciniamo sempre più al momento in cui smartphone e tablet saranno abbastanza potenti da poter sostituire integralmente i PC almeno per i compiti di base. Uno scenario interessante e, per chi è un po’ più conservatore, inquietante allo stesso tempo.

Via

Commenti

Ti invitiamo ad usare toni consoni e di rimanere in tema all'argomento trattato, in caso contrario, il sistema automatico potrebbe oscurare il tuo messaggio e potrebbero trascorrere fino a 48h per la verifica ed un'eventuale autorizzazione.
TuttoAndroid si riserva comunque il diritto di allontanare le persone non adatte a tenere un comportamento corretto e rispettoso verso gli altri.

  • Sid Bradipao

    Attenzione, ai tempi dei 16bit c’era corrispondenza tra i bit del processore, la dimensione della parola trattata dal processore, la dimensione dei registri, il datapath e persino la larghezza del bus verso la memoria.

    Oggi, e per oggi intendo anche nei processori a 32-bit, ciò non è vero. Tutti i processori x86 a 32-bit muovono dati a 64-bit, hanno registri interni a 128-bit, bus di memoria a 256-bit, e datapath anche più larghi.

    Oggi 32-bit vuol dire SOLAMENTE la dimensione dello spazio di indirizzamento pari a 2^32 = 4GB. Sconvolgerà sapere che NESSUNA delle cpu a 64-bit al mondo usa veramente tutti a 64 i bit di indirizzo. Prendiamo ad esempio gli x86-64, che hanno uno spazio di indirizzamento virtuale di 2^64. A livello fisico i bit supportati sono solamente 48, per cui la massima memoria supportata è 2^48=256TB.

    128-bit di indirizzo? In futuro certamente si, tra più di dieci anni però.

    • Il fatto che le CPU a 32 bit muovano dati a blocchi da 64 bit e abbiano registri da 128 bit non significa, in realtà, che possano trattarli come parole (e, difatti, così non è). Le istruzioni SIMD esistono da tempo e permettono di fare proprio questo, ma credo esulino dal contesto.

      • Sid Bradipao

        Certo, le SIMD sono state introdotte proprio per eseguire operazioni aritmetiche “maneggiando” contemporaneamente più parole a 32-bit. Quello che volevo dire è che passando ai 64-bit (ed estendendo la manciata di registri general purpose dell’x86), non c’è nessun vero guadagno nelle operazioni aritmetiche. Perchè continuano ad essere svolte dalle stesse identiche unità SIMD. Ed anche le cache ed i bus fisici verso le memorie esterne rimangono inalterati.

        Il vero e unico guadagno dei 64-bit è nello spazio di indirizzamento. Quello reale per la memoria installabile. Quello virtuale perchè permette di mappare virtualmente in memoria file di dimensioni maggiori di 4GB, anche avendo 2GB di memoria fisica.

        • cionci

          Ed anche il poter eseguire istruzioni intere a 64 bit senza doverle simulare con interi a 32 bit… Questo è l’unico caso di aumento di prestazioni tangibile del passaggio a 64 bit.

          • Sid Bradipao

            Si hai ragione, l’aritmetica intera a 64bit (quella spicciola, non quella massiva fatta nelle unità SIMD) ne trae vantaggio.

            Però è significativo il fatto che negli ARM le istruzioni siano rimaste a 32bit e gli argomenti supportino sia il fomrato 32bit che quello 64bit. Questo è dovuto al fatto che (1) le operazioni generiche su interi a 64bit sono una rarità, (2) se tutte le operazioni su interi fossero riportate a 64bit, ci sarebbe un considerevole aumento dell’impronta in memoria degli eseguibili con conseguente spreco di banda passante da/a la memoria, spreco di cache, maggiori consumi, (3) perdita di retro-compatibilità dei binari.

          • cionci

            In ambito server non sono così rare. Sicuramente lo sono di più negli ambiti in cui ARM è più forte

    • ale

      Ma nemmeno quello,il fatto che una cpu a 32 bit possa indirizzare solo fino a 4GB è sbagliato,le cpu a 32 bit da ormai moltissimi anni (addirittura dal pentium pro) supportano il pae,che abbinato ad un os decente,tipo linux,BSD,o ormai qualsiasi os che non sia windows consente di indirizzare fino a 64GB di memoria

      • Sid Bradipao

        Vero, anche gli ARM dei cellulari hanno LPAE e alcuni possono indirizzare fino a 40bit, però l’estensione ha dei limiti. Per esempio gli spazi di indirizzamento virtuali del singolo processo arrivano massimo a 32bit e grazie all’estensione ce ne possono essere più di uno per processi diversi.

    • Alessandro Pellizzari

      Sì, ma tu parli di x86. Per ARM è ancora valida la corrispondenza.
      Gli ARM a 32 bit hanno registri a 32bit, bus a 32bit, istruzioni lunghe 32bit.

      La parte più importante è quella dei registri, naturalmente. Se non hai registri a 64bit te ne servono il doppio per ogni operazione, e diverse istruzioni (molto più del doppio) per fare i calcoli.
      ARM 32bit mi pare abbia 16 registri, in cui ci sono anche quelli “riservati” (SP e PC, per esempio). Significa che per fare operazioni a 64bit ne devi usare quasi la metà.
      ARM a 64bit (l’implementazione attuale) ha 32 registri a 64bit. Penso che per una versione mobile useranno 16 registri a 64bit, probabilmente “riciclandoli” per SP e PC, come per i 32bit.

      NEON è altro (e supporta registri a 64bit), e può essere visto come le SSE degli Intel, ma non viene usato per tutte le operazioni, solo per le SIMD.

      Quindi un ARM a 64bit non porta solo più RAM, ma anche prestazioni più che raddoppiate, a parità di clock, sia sui calcoli interi che su quelli FP, e visto che anche NEON viene aggiornato (a 128bit), anche sulle SIMD.
      A patto di usare dati a 64bit (128 in fp e SIMD), naturalmente. Quindi se sopra hai librerie che lavorano a 32bit, le nuove CPU possono fare ben poco.

  • PasquAle

    Mi domando dov’è quel tipo che mi criticava CATEGORICAMENTE il fatto che, secondo me, l’introduzione futuro dei 64bit, del conseguente aumento di ram e della “potenza” di calcolo utile ad eseguire app sempre più complete tanto da poter quasi integralmente sostituire i pc!!! Era “eresia” la mia, perché Android è solo MOBILE!!

  • Daavide Magni

    Cosa c’è di inquietante? D:

Top