Domanda

Sono sicuro che tutti abbiamo sentito i termini 64bit e 32bit in giro, ma cosa significano realmente?

Sono abbastanza sicuro che abbiano a che fare con la dimensione di un indirizzo di memoria.Su una macchina a 64 bit, un riferimento a un oggetto è di 64 bit.Ma voglio scavare un po' più a fondo....

  1. Si sente spesso la frase "macchina a 64 bit". Quale parte del computer è effettivamente orientata al numero di bit?Processore?Sistema operativo?

  2. Qual è il vantaggio di avere indirizzi di memoria più grandi?

Potrei aggiungere altre domande, ma penso che sia meglio essere brevi.

Grazie ragazzi :D

È stato utile?

Soluzione

64 bit si riferisce alla larghezza di registri, memoria dello spazio di indirizzamento, ecc Un vantaggio è la possibilità di indirizzare più di 4GB di memoria.

un articolo su 64 bit calcolo con più dettagli.

Modifica: vantaggi per più memoria sono che il sistema operativo ei programmi hanno più spazio di indirizzamento virtuale - 16 exabyte (17,2 miliardi GB) - e, cosa più importante, che più memoria fisica può essere aggiunto a un sistema e indirizzata, causando meno scambio di memoria virtuale da e su disco.

Il vantaggio ai registri più ampie e bus dati sono che è più facile e più veloce per spostare la stessa quantità di dati in giro. Un'operazione che ha richiesto due o più registri può ora essere fatto con una sola.

Quindi, le prestazioni sono di solito aumenta quando il software viene ricompilata per 64 bit.

Un svantaggio è che i dati più ampi possono significare più spazio occupato dagli stessi dati. Per esempio memorizzare il numero 300 richiede nove bit. Se è memorizzato in un numero intero di 32 bit, 23 bit sono sprecati. In 64 bit, che sprechi diventa 55 bit. Così, senza riattrezzaggio, una semplice ricompilazione a 64 bit può produrre più veloce, ma il software un po 'più gonfio.

Edit: ci sono anche pagine tecnologia a 64 bit qui:

Altri suggerimenti

La differenza è esattamente 32 bit ;-)

Per eseguire un sistema operativo a 64 bit è necessario hardware (processore) a 64 bit.È necessario un sistema operativo a 64 bit per eseguire il software a 64 bit.Queste sono le dipendenze.

  • In un sistema a 32 bit ci si limita ad indirizzare 4 GiByte (2^32) di memoria, in un sistema a 64 bit c'è un limite teorico di 2^64 byte.
  • Il software a 64 bit richiede leggermente più memoria, principalmente per i puntatori che sono 8 byte invece di 4
  • su x86_64, gli eseguibili a 64 bit necessitano di più memoria, poiché è presente un codice operativo aggiuntivo per molte istruzioni e quindi potrebbero funzionare più lentamente
  • su x86_64, il software a 64 bit può utilizzare più registri e ha il potenziale per funzionare più velocemente
  • sistemi a 64 bit possono indirizzare direttamente molta più memoria
  • sistemi a 64 bit in grado di elaborare i dati in blocchi due volte più grande a 32 bit, che aiuta alcune operazioni vanno più rapidamente

Per alcuni programmi, come le suite di office automation, 32bit vs 64bit fa poca differenza osservabile.

Ma per altre applicazioni, come ad esempio i database, grafica / elaborazione video, o di hosting di macchine virtuali, essendo in grado di raggiungere più memoria fisica in una sola volta e di essere in grado di elaborare più informazioni con ogni istruzione può fare una grande differenza in termini di prestazioni.

Si noti che oggi, molti chip a 32 bit hanno funzioni di estensione a 64 bit, come molti FPU (matematica) o SSMD operazioni (vettore) vengono effettuate in modalità a 64 bit già.

32 bit vs. Sistemi a 64 bit:?. Qual è la differenza per più

  1. registri della CPU e di memoria indirizzamento.

  2. Il sistema può fare riferimento (vedi) molto più memoria.

Penso che la risposta migliore sarebbe un confronto in x86 x64 bit assembler

Quando il programma po x32 registra una variabile, ad esempio un numero intero (5), il codice è equivalente a questo:

push 5

Per capire le cose meglio, 'push X' è una scorciatoia per:

sub esp,4 //substracts esp with 4(4*8=32 bits.That's the size of a pointer in x32 executables) in order to make space for our variable
mov [esp],X //moves variable in @esp

Tali registeres sono 32 bit (lungo 4 byte), che è la dimensione di un puntatore in qualsiasi linguaggio di programmazione 32 bit.

64 codice bit, ma la dimensione è due volte più grande e quindi sono registers.Our registro ESP esiste in eseguibili x64, ma non è ampiamente usato come in eseguibili x32.

Al posto di tutte le registeres ottenere una "R" davanti al loro nome (EAX diventa RAX, ESP diventa RSP, EDX diventa RDX e così via).

Quindi il nostro codice eseguibile x64 non sarà diverso, ad eccezione del collegamento per 'spingere X' sarà

sub esp,8
mov [rsp],X

RSP ha il doppio della dimensione di ESP -. 64 bit, 8 byte

La linea di fondo è che gli eseguibili bit x64 utilizzano più memoria rispetto eseguibili bit x32.

Torniamo alle basi.

99% dei computer in questi giorni si basano su quello che viene definito come il Von Neumann architettura . In sostanza, il computer è in un ciclo costante di:

  1. Recupero di un comando dalla RAM
  2. L'esecuzione del comando sulla CPU

alt text
(fonte: wikimedia.org )

Quando si fa riferimento al 32 / sistema a 64 bit (o qualsiasi altro formato bit), in sostanza, si sta parlando l'architettura e l'implementazione del computer:

  • dimensione di spazio di memoria (RAM)
  • dimensione dei registri della CPU
  • dimensioni del bus (vale a dire tra CPU, RAM, I / O, ecc ...)

Se si dispone di un sistema a 64 bit, si dispone di uno spazio di indirizzi di 2^64. Questo è il motivo per cui il sistema a 32 bit non può avere più di 4 GB di RAM. Come si può affrontare uno spazio di memoria, che è più grande di 2^32?

Per quanto riguarda le differenze di prestazioni, non c'è una risposta netta (proprio come non c'è una risposta chiara se CISC o RISC architettura è meglio). Dipende notevolmente sulle applicazioni in uso.

In sintesi: un'architettura a 64-bit è semplicemente un modo diverso di costruire un computer. Ciò non significa che è meglio, o peggio, o fa le cose in modo diverso (su un livello basso, ogni computer sta facendo fetch-execute). E 'semplicemente un modo diverso di attuazione di un computer .

Esattamente i 64bit o 32bit riferimenti solo per la larghezza del bus principale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top