2010-03-28 8 views

risposta

24

Immagino che la vera risposta sia complicata. La metafora è l'unica cosa oltre allo studio dedicato che ti darà un'idea di base. Wallyk è sulla buona strada.

Alcune cose guidano un processore. Uno è il numero di operazioni che può eseguire al secondo (misurate in Hertz). Mentre l'architettura impedisce una risposta semplice, un processore single-core da 1 Ghz esegue 1.000.000.000 di operazioni al secondo. Circa.Mentre è possibile ottenere una risposta più concreta, non chiarirebbe questo caso.

Un processore è anche altre cose, come un controller di memoria (in i7), ALU e FPU e altri circuiti specializzati, che è ciò che rende anche una domanda difficile a cui rispondere.

Ad ogni modo, ogni processore ha registri. I registri sono come lo spazio zero (più veloce della memoria) per un processore che memorizza piccole quantità di dati mentre funziona su di esso. Questi sono supportati dalle cache L1 e L2 (a volte L3), che sono anche ridicolmente veloci. Fondamentalmente, 64-bit si riferisce alla dimensione dello spazio scratch (e per proxy, la pipe che collega il registro alla cache, mentre i dati vengono caricati dentro e fuori tutto in una volta).

Più grande spazio di archiviazione consente di eseguire più operazioni senza leggere nuove informazioni dalla cache o dalla memoria. Tuttavia, solo perché può essere fatto non significa che lo farà sempre. Generalmente un programma deve essere compilato con il supporto a 64 bit per sfruttare l'accelerazione, e anche in questo caso non si vedrà una differenza a meno che non si stia manipolando dati di dimensioni superiori a 32 bit. Questa è più una domanda per un programmatore di sistemi.

Un processore deve anche tenere sotto controllo ciò che è in memoria (come in, cosa è in uso e cosa non lo è.) Lo fa usando un registro speciale. Il motivo per cui un processore a 32 bit non può normalmente occupare più di 4 GB di RAM ha a che fare con la dimensione di questo registro. Mentre le estensioni del processore come PAE consentono ai sistemi operativi a 32 bit su processori a 32 bit di indirizzare fino a 64 gigabyte di RAM, la maggior parte dei sistemi operativi in ​​genere non la supportano.

TL; DR, i processori a 64 bit offrono la possibilità con la programmazione corretta di eseguire operazioni su blocchi più grandi di dati contemporaneamente e indirizzare più memoria. Altrimenti, non c'è un'enorme differenza.

MODIFICA: per evitare che le persone abbiano l'idea sbagliata, per "operazioni" non mi riferisco specificamente alle operazioni THE (aggiunta, moltiplicazione, ecc.). Il mio male, mi sono concentrato a rispondere alla domanda piuttosto che dare una completa introduzione all'architettura dei microprocessori.

+4

Dal punto di vista di un programmatore, questo è esattamente ciò che significa. Prima di cose più complicate come l'ottimizzazione delle istruzioni o considerando se i dati sono già nella cache o devono essere recuperati dalla memoria, Hertz specifica quante operazioni vengono eseguite ogni secondo, anche se tale operazione non è completata. Alcune operazioni richiedono più tempo (divisione/moltiplicazione/modulo sono rilevabili, poiché sono costruite successivamente fuori dalle operazioni di aggiunta/sottrazione). Forse ti piacerebbe illuminarmi con una risposta/chiarimento, piuttosto che solo un downvote e una condanna? Non è questo un posto per le risposte? – emcee

+0

Fantastica spiegazione. Sono qui perché Apple ha appena lanciato iPhone5S con un processore a 64 bit, quindi mi chiedevo che fosse una grande cosa. –

+0

@emcee Solo curioso, si dice "il processore a 32 bit non può normalmente occupare più di 4 GB di RAM". Qual è la limitazione della RAM su 64-bit? –

4

Fondamentalmente significa poter eseguire operazioni su numeri di tali dimensioni (aggiungendoli ad esempio). Sebbene ci siano più differenze tra architetture a 32 bit e 64 bit di questo.

-3

È una misura della potenza di elaborazione. Piuttosto come un veicolo che può trasportare 4 passeggeri, o 12, per circa la stessa quantità di energia.

Ad esempio, 32 bit contiene 4 byte o 4 caratteri ordinari e 64 bit 8 byte e, per le lingue romanze, otto caratteri. Quelli possono essere manipolati contemporaneamente per molti tipi di operazioni per la corrispondente larghezza di dati architettonici.

Un altro modo di guardarlo è la grandezza di un intero con cui un'architettura può lavorare direttamente. Per ciascuna di queste larghezze, la portata corrispondente è

8 bit: da 0 a 255/-128 a 127
16 bit: da 0 a 65.535/-32768 a 32767
32 bit: 0 a 4.294.967.295/-2.147.483.648 a 2,147,483,647
64 bit: da 0 a 18,446,744,073,709,551,615/-9,223,372,036,854,775,808 a 9.223.372.036.854.775.807

+2

Questo non è affatto vero. I processori a 32 bit non sono necessariamente meno potenti di 64 bit. – Earlz

+0

Ovviamente. Non è più indicativo delle prestazioni complessive rispetto alla cilindrata di un particolare motore. – wallyk

0

il Wikipedia entry for 64-bit brilla qualche bella luce sul tema

+0

Questo può teoricamente rispondere alla domanda, ma [sarebbe preferibile] (// meta.stackoverflow.com/q/8259) per includere le parti essenziali della risposta qui per gli utenti futuri e fornire il link per riferimento. – Mogsdad

1

non è un'espressione molto preciso, ma mi prendono per indicare la lunghezza degli indirizzi di memoria. Ad esempio, 32 bit significa 4 GiB (2 byte) è disponibile per i programmi.

(per gioco, controlla l'architettura IBM s390 che è 31 bit.)

Inoltre, non è sempre la quantità massima di dati che la CPU può leggere o operare su di un'ora. Ad esempio, i processori AMD/Intel a 64 bit hanno una serie di cache on-chip in grado di estrarre i dati dalla memoria principale in blocchi di grandi dimensioni. Hanno anche registri SSE a 128 bit.

1

Ho notato che contrassegnati memoria, quindi vado con questa risposta:

In un processore a 32 bit, il processore può utilizzare solo 32 bit per indirizzare la memoria. Ciò significa che esistono 2^32 combinazioni univoche, pertanto il processore può indirizzare solo 2^32 byte. (4 Gb)

In un processore a 64 bit, il processore può (in teoria) utilizzare 64 bit per indirizzare la memoria o 2^64 byte di memoria indirizzabile. Credo che ammonti a 16 Exo Bytes, che è una quantità enorme che è quasi al punto di contare la quantità di molecole nella tua macchina. In pratica, però, la maggior parte delle CPU sulla linea oggi consente di indirizzare solo 42 bit di memoria fisica e 48 bit di memoria virtuale a causa dei vincoli hardware attuali.

+1

Il 32-bit non riguarda il bus indirizzo. Ci sono molte macchine a 32 bit con bus di indirizzi a 36 bit (PAE e PSE-36 sulle architetture Intel, per esempio) là fuori. –

+0

Sì, ma è un po 'irrilevante. Suppongo che avrei dovuto indicare che un processore a 32 bit può avere più o meno 32 bit di memoria indirizzabili – Earlz

+0

@downvoter, motivo per favore? – Earlz