ARM è a 32 o 64 bit?
ARM fino ad ARMv7 incluso è a 32-bit (comunque i chip possono avere più di 32-bit di indirizzamento virtuale).
Con ARMv8 le cose si sono un po' complicate, si può assumere che sia a 64-bit (dove è applicabile), e può eseguire vecchi programmi a 32-bit.
ARMv8-A ha aggiunto AArch64 ed è a 64-bit. Da notare che si tratta di un set di istruzioni diverso, non solo esteso come nel caso di x86.
Di solito scrivo che ARMv8 è a 64/32 bit. Poiché è un set di istruzioni a 64 bit e può eseguire il vecchio codice a 32 bit.
Per complicare le cose, tali microcontrollori ARMv8-R (per il tempo reale, ad esempio nelle automobili) hanno parte dell'architettura ARMv8, ma solo con il vecchio set di istruzioni a 32 bit, e probabilmente non avranno mai 64 bit, perché non necessario.
Entrambi questi set di istruzioni hanno una lunghezza fissa di 4 byte, cioè istruzioni a 32 bit. Questo è tipico dei processori RISC, quelli a 32 e 64 bit.
Tuttavia, insolito per i processori RISC, alcuni chip ARM (non i più vecchi) hanno anche istruzioni a 16 bit, chiamate Thumb (o Thumb2). Questo set di istruzioni è ancora considerato a 32 bit, poiché questa è la dimensione dei registri. Alcuni microcontrollori hanno solo questo set di istruzioni, mentre si può anche avere questo e il set di istruzioni a 32 bit e passare avanti e indietro.
Articoli simili
- Perché molti programmi hanno il download di default a 32 bit invece che a 64 bit anche se la maggior parte delle persone usa finestre a 64 bit?
- Perché HDR è solo 8+2 bit = 10 bit, non 8*4=32 bit quando 4K = Full HD x4 pixel?
- Perché è necessaria una licenza di ARM per progettare una CPU ARM? Come sono protetti i set di istruzioni?
- Quali sono i vantaggi e gli svantaggi del set di istruzioni Thumb rispetto alle istruzioni ARM a 32 bit?