È la dimensione del bus di indirizzi o la dimensione del bus dati che determina i sisthemes "a 8 bit, a 16 bit ea 32 bit a 64 bit"?

La mia semplice comprensione è il seguente.

La memory (RAM) è composta da bit, gruppi di 8 che formano byte, ognuno dei quali può essere indirizzato, e quindi memory di indirizzi di byte.

Indirizzo Bus memorizza la posizione di un byte di memory.

Se un bus di indirizzo è di 32 bit di dimensione, il che significa che può contenere fino a 2 32 numbers e quindi può fare riferimento a 2 32 byte di memory = 4 GB di memory e qualsiasi memory superiore a quella inutile.

Il bus dati viene utilizzato per submit il valore da scrivere / leggere la memory. Se ho un bus dati di 32 bit di dimensione, significa che può essere scritto un massimo di 4 byte per leggere la memory alla volta. Non trovo relazione tra questa dimensione e la dimensione massima di memory ansible.

Ma ho letto qui che:

Anche se la maggior parte dei sisthemes sono indirizzabili da byte, ha senso per il processre spostare il maggior numero ansible di dati. Ciò avviene tramite il bus dati e la dimensione del bus dati è where provengono i nomi di sistema a 8 bit, sistema a 16 bit, sistema a 32 bit, sistema a 64 bit, ecc. Quando il bus dati è di 8 bit largo, può trasferire 8 bit in un'unica operazione di memory. Quando il bus dati è largo 32 bit (come è più comune al momento della scrittura), al massimo 32 bit possono essere spostati in un'unica operazione di memory.

Ciò spiega che la dimensione del bus di dati è ciò che dà a un OS il nome, 8bit, 16bit e così via. Che cosa è sbagliato con la mia comprensione?

Generalmente la dimensione del databus è determinata dalla dimensione dei registri del processre. Spesso è la dimensione dei registri del processre che determinano il tipo di sistema operativo (64 vs 32). Le size del bus fisico possono tecnicamente differire da questo (8088 come esempio) ma è così raro che l'autore della tua citazione probabilmente associati i due insieme.

Generalmente la dimensione del puntatore segue anche la dimensione del registro, ma la width del bus di indirizzo fisico può essere più grande (come con l'8086 a 16 bit a 20) o minore (come con l'AMD 64 a 48)

È la dimensione del registro e la gestione della memory all'interno del processre.

Usando trucchi, un processre a 16 bit ha un bus di indirizzo a 20 bit, quindi non è memory esterna del processre.

Non esiste un sistema "puro" a 32 o 64 bit, e quindi i termini sono solo approssimazioni.

Ad esempio prendi la tua dichiarazione "La memory (RAM) è composta da bit, gruppi di 8 che formano byte, ognuno dei quali può essere indirizzato" . Non è molto comune. I PC hanno la loro RAM nei moduli DIMM e quelli sono 64 bit larghi. Di return negli anni '90, hai avuto SIMM, e questi erano 32 bit larghi.

In alcuni sisthemes, i DIMM devono o possono essere associati ("ganged" / "dual channel"), che sarebbe un databus di 128 bit. Questo concetto precede i cosiddetti processri "64 bits" da AMD e Intel.

Questi gruppi di 64 bit da un singolo DIMM possono infatti essere suddivisi in 8 byte. Questo è fatto in modo piuttosto trasparente dalla CPU. Può anche rompere i 64 bit in 4 * 16 bit, 2 * 32 bit, o semplicemente utilizzare tutti i 64 bit come una singola variabile.

La domanda più importnte però è la width di un indirizzo. Ogni byte in memory ha il proprio indirizzo, ma non each bit. Ciò significa che i 64 bit ottenuti da un singolo DIMM hanno 8 indirizzi. Il più basso di questi è sempre un multiplo di 8: ora, quanti indirizzi distinti la CPU support? Ci sono due risposte comuni, alless in teoria. Alcuni supporti della CPU 2 32 diversi indirizzi, alcuni supportno 2 64 . Questa distinzione è la distinzione più comune tra i sisthemes a 32 e 64 bit.

In pratica, i sisthemes a 64 bit supportno oggi less di 2 64 byte di RAM. Sarebbe impensabile, e comunque non sarebbe in un normale PC. Quella memory avrebbe pesato parecchi milioni di tonnellate!