Ho difficoltà a capire la differenza tra un processore a 32 bit e un processore a 64 bit. So che un processore a 32 bit può accedere a 32 bit alla volta mentre un processore a 64 bit può accedere a 64 bit alla volta. Ma cosa significa esattamente accedere a un certo numero di bit contemporaneamente?32 vs 64 bit ... o, cosa significa esattamente "informazioni di elaborazione" significa
risposta
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.
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
Fantastica spiegazione. Sono qui perché Apple ha appena lanciato iPhone5S con un processore a 64 bit, quindi mi chiedevo che fosse una grande cosa. –
@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? –
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.
È 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
il Wikipedia entry for 64-bit brilla qualche bella luce sul tema
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
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.
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.
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. –
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
@downvoter, motivo per favore? – Earlz
- 1. Cosa significa xmlns = "" significa esattamente
- 2. cosa significa esattamente UrlReferrer?
- 3. Come ottenere informazioni sul computer? [32 bit o 64 bit]
- 4. Compatibilità Java 32-bit vs 64-bit
- 5. cosa significa esattamente NSUrlConnection ASynchronous?
- 6. iPhone OS 64 bit o 32 bit?
- 7. Che cosa significa esattamente "chiusura"?
- 8. Cosa significa esattamente con questo Urikind.relative
- 9. .net console app 32 vs 64 bit
- 10. Java ed Eclipse - 32 vs 64 bit
- 11. .net Utilità InstallUtil - 32 bit vs 64 bit
- 12. Determinazione dell'architettura JRE 32-bit vs 64-bit
- 13. Proprietà "user.dir" di Java: cosa significa esattamente?
- 14. Intellij idea 32 bit vs 64 bit velocità e prestazioni
- 15. Cosa significa esattamente .pipe() in gulp?
- 16. dimensioni della macchina 64 o 32 bit
- 17. Determinazione dell'architettura a 32/64 bit nell'assemblaggio
- 18. prestazioni a 32 bit vs 64 bit aritmetica
- 19. Che cosa significa esattamente "astrazione dati"?
- 20. In Ruby, cosa significa esattamente tLABEL?
- 21. Cosa significa esattamente la preelaborazione nel compilatore
- 22. Che cosa significa esattamente non DFS utilizzato?
- 23. Che cosa significa esattamente una "connessione persistente"?
- 24. Confuso sulla creazione di 32 o 64 bit
- 25. Che cosa significa/64 in IPv6
- 26. Cosa significa uint32_t?
- 27. Cosa significa/#!/Significa nell'URL?
- 28. Cosa significa Field.Index.NOT_ANALYZED_NO_NORMS significa
- 29. Cosa significa require ('../') significa?
- 30. Cosa significa || = significa?
Questo è troppo vago e ambiguo – Earlz