2013-05-26 6 views
6

Questa non è la prima volta che mi è venuta la domanda, ma stavo giocando a un vecchio gioco SNES oggi, quando ci pensavo di nuovo e volevo cercare una risposta da parte di persone che ne sanno più di me.Come funziona un computer X-bit con numeri a 2-bit?

Prendi il Super Nintendo per esempio. È un sistema a 16 bit. Con 16 bit, puoi contare fino a 65536 o 2^16. Quindi, come fa la macchina a far fronte a me avendo, per esempio, un punteggio superiore a 65536?

+0

domanda correlata: http://stackoverflow.com/questions/12718536/how-does-a-32bit-computer-work-with-large-bit-numbers-ex -512 bit-interi – reima

risposta

4

In realtà è un po 'più complesso, ma la semplice spiegazione è che un processore a 16 bit può eseguire operazioni su numeri a 16 bit in un'unica operazione, e per gestire numeri più grandi è necessario rompere le cose. Ad esempio, per aggiungere due numeri a 32 bit, aggiungere le parole meno significative in un'unica operazione, quindi aggiungere le parole più significative e quindi aggiungere eventuali bit di trascinamento.

Ovviamente questo è molto più lento (3 istruzioni anziché uno), ma quasi tutte le operazioni possono essere eseguite se necessario. Questo è un motivo per cui i processori con parole più grandi possono essere più veloci; possono eseguire operazioni più grandi con una singola istruzione anziché con più istruzioni. Dal punto di vista dei programmatori, il compilatore di solito si prenderà cura di questo, non lo faresti mai a mano a meno che tu non stia scrivendo assemblaggi.

In realtà, tuttavia, molti processori dispongono di hardware dedicato per eseguire operazioni matematiche, quindi chiamare un processore a 32 o 64 bit ha davvero più a che fare con l'indirizzamento della memoria e la dimensione dei registri.

+2

Sono quasi sempre due istruzioni, non tre. La maggior parte delle famiglie di processori ha un'istruzione speciale per l'aggiunta di due numeri e il bit di carry, si scopre che il costo dell'hardware per aggiungere un carry bit è minimo. Questo ha senso, se si immagina che i numeri siano già suddivisi in pezzi più piccoli con bit di propagazione di propagazione - chi noterebbe un bit di trasporto aggiuntivo che entra nell'LSB, che normalmente non ne ha uno. –

+1

@DietrichEpp In MIPS non ci sono flag e per farlo devi usare 3 istruzioni. Questa è una eccezione davvero strana nelle architetture dei computer ad alte prestazioni –

0

La vera limitazione di un processore con meno bit è che non è in grado di indirizzare la stessa quantità di memoria, mentre i 32 bit possono indirizzarsi solo a 4 GB. In termini di operazioni matematiche, sia un processore a 16 bit che a 32 bit sono equivalenti a A FTTM (finite tape turing machine) e quindi hanno la stessa potenza di calcolo. Ad esempio, BigInteger di java può essere grande quanto vuoi