[generale] processore a 32 bit e 64 bit
Quali sono le differenze tra un processore a 32 bit e uno a 64 bit? E quali sono i relativi vantaggi e svantaggi?
Risposte
la differenza sta fondamentalmente nella dimensione del bus dati, i processori a 32 bit hanno una word di dimensione, quelli a 64 sono double word.
Ulteriore differenza sta nella capacità di memoria:
32 bit--->4 GB , cioè 2^32
64 bit molto piu alta...occhio che in win molti programmi non hanno la versione ottimizzata x 64 bit..
ciao
Ulteriore differenza sta nella capacità di memoria:
32 bit--->4 GB , cioè 2^32
64 bit molto piu alta...occhio che in win molti programmi non hanno la versione ottimizzata x 64 bit..
ciao
"frab":
la differenza sta fondamentalmente nella dimensione del bus dati, i processori a 32 bit hanno una word di dimensione, quelli a 64 sono double word.
Ulteriore differenza sta nella capacità di memoria:
32 bit--->4 GB , cioè 2^32
64 bit molto piu alta...occhio che in win molti programmi non hanno la versione ottimizzata x 64 bit..
ciao
Perfetto, grazie!
Ma quindi l'unico svantaggio del processore a 64 bit è che ancora moltissimi programmi non sono scritti per girare sui sistemi a 64 bit?
fondamentalmente si poi per una panoramica piu completa dovresti sentire un informatico piu' ferrato sull'argomento.

In generale, un processore a 32 bit ha registri e bus grandi 32 bit, uno a 64 bit grandi 64 bit. Poi dipende dall'architettura e dal modello.
Ad esempio, i processori x86 (processori per PC Intel e compatibili) sono a 32 bit (a parte prima del 386, che erano a 16 bit), ma hanno alcuni registri general purpose a 64 bit. Gli ultimi modelli inoltre hanno delle estensioni per indirizzare più di 32 bit di memoria (PAE, di solito 36 bit: 64 GiB). Serve però il supporto del sistema operativo. Windows ad esempio supporta PAE, ma nei sistemi client è disabilitato per motivi di licenza (avevo letto un articolo molto dettagliato su come abilitarlo, per usare più di 4 GiB di RAM su Vista a 32 bit).
Parlando dei processori per PC (x86 e x64), ci sono pochi svantaggi nell'usare processori a 64 bit, dato che I processori a 64 bit sono retrocompatibili con il codice a 32 bit, quindi applicazioni a 32 bit funzionano su entrambi i processori. L'eccezione principale sono i driver, che devono essere compilati per la stessa architettura del sistema operativo. Ad esempio, sul mio portatile il lettore di schede SD ha solo un driver a 32 bit, ora che ho installato un sistema a 64 bit non posso usarlo (ma è un computer abbastanza vecchio, 2007, per quelli recenti è più probabile il contrario, cioè niente driver a 32 bit).
Il vantaggio principale dei processori x64 è che il supporto a quantità di RAM maggiori di 4 GiB è automatico. Poi ci sono altri vantaggi meno significativi, ad esempio rispetto a x86 il processore ha molti più registri general purpose, quindi il codice può potenzialmente essere compilato in un eseguibile più efficiente. Infine ovviamente i modelli più recenti, quelli a 64 bit, sono più veloci ed hanno più core.
Ad esempio, i processori x86 (processori per PC Intel e compatibili) sono a 32 bit (a parte prima del 386, che erano a 16 bit), ma hanno alcuni registri general purpose a 64 bit. Gli ultimi modelli inoltre hanno delle estensioni per indirizzare più di 32 bit di memoria (PAE, di solito 36 bit: 64 GiB). Serve però il supporto del sistema operativo. Windows ad esempio supporta PAE, ma nei sistemi client è disabilitato per motivi di licenza (avevo letto un articolo molto dettagliato su come abilitarlo, per usare più di 4 GiB di RAM su Vista a 32 bit).
Parlando dei processori per PC (x86 e x64), ci sono pochi svantaggi nell'usare processori a 64 bit, dato che I processori a 64 bit sono retrocompatibili con il codice a 32 bit, quindi applicazioni a 32 bit funzionano su entrambi i processori. L'eccezione principale sono i driver, che devono essere compilati per la stessa architettura del sistema operativo. Ad esempio, sul mio portatile il lettore di schede SD ha solo un driver a 32 bit, ora che ho installato un sistema a 64 bit non posso usarlo (ma è un computer abbastanza vecchio, 2007, per quelli recenti è più probabile il contrario, cioè niente driver a 32 bit).
Il vantaggio principale dei processori x64 è che il supporto a quantità di RAM maggiori di 4 GiB è automatico. Poi ci sono altri vantaggi meno significativi, ad esempio rispetto a x86 il processore ha molti più registri general purpose, quindi il codice può potenzialmente essere compilato in un eseguibile più efficiente. Infine ovviamente i modelli più recenti, quelli a 64 bit, sono più veloci ed hanno più core.
L'unico ‘svantaggio’ che io conosco è che in alcuni casi il codice 64bit (inteso come software e a parità di hardware) usa più memoria e quindi potenzialmente potrebbe essere più lento. Ma questo significa principalmente che convertire un codice da architetture 32bit in architetture 64bit non è sempre immediato.
"vict85":
L'unico ‘svantaggio’ che io conosco è che in alcuni casi il codice 64bit (inteso come software e a parità di hardware) usa più memoria e quindi potenzialmente potrebbe essere più lento. Ma questo significa principalmente che convertire un codice da architetture 32bit in architetture 64bit non è sempre immediato.
Ma da quello che ho capito il 64 bit, nella stessa unità di tempo, esegue il doppio delle istruzioni che è in grado di eseguire un sistema a 3 bit! Come fa a essere più lento?

"Oo.tania":
Ma da quello che ho capito il 64 bit, nella stessa unità di tempo, esegue il doppio delle istruzioni che è in grado di eseguire un sistema a 3 bit! Come fa a essere più lento?
No, non esegue il doppio delle istruzioni. Al massimo, su un processore che ha solo registri a 32 bit, per sommare due numeri a 64 bit devi fare due somme: una per la parte più significativa e una per quella meno significativa. Ma appunto anche i processori a 32 bit hanno qualche registro a 64 bit, e in ogni caso non è probabilmente una differenza significativa su un intero programma.
vict85 intende che, dato che un indirizzo su una macchina a 32 bit occupa 32 bit, mentre su una macchina a 64 bit occupa 64 bit, allora un programma userà il doppio della memoria per memorizzare gli indirizzi (non in generale). Una maggiore occupazione di memoria può risultare in un programma più lento principalmente perché viene occupato più spazio nella memoria cache. Ma anche qua non è sempre significativo, dipende dal programma.