byte indirizzabile vs bit indirizzabile

2

Perché la maggior parte dei computer ha un byte indirizzabile anziché bit indirizzabile?

Per B / b indirizzabile intendo che il processore può funzionare a livello di singolo B / b.

  • Vantaggi indirizzabili a bit:

I booleani hanno una dimensione di un bit.

Puoi accedere direttamente ai bit singoli in numeri interi (senza alcuni hack sporchi come lo spostamento).

  • Byte vantaggi indirizzabili:

???

    
posta Ford O. 01.06.2016 - 11:36
fonte

4 risposte

5

Il motivo per cui l'hardware non è indirizzabile da un bit è il costo e la complessità da affrontare a quel livello di granularità non è giustificato. Hai bisogno di più cavi più accuratamente indirizzi.

Anche molti computer non sono in realtà indirizzati ai byte. Tendono a spostare la memoria in pezzi più grandi, 64 byte è comune.

I processori ti consentono di leggere e scrivere byte specifici per comodità. Si traducono nell'effettivo indirizzamento per te, cioè risolvi il blocco da spostare che contiene il byte che stai cercando.

La ragione per cui i byte sono scelti per essere la dimensione conveniente è in gran parte storica. Era un compromesso ragionevole tra la dimensione della parola necessaria per indirizzare la memoria e la memoria, possibilmente sprecata, che si ottiene. Nei primi tempi, la differenza di 8 volte nella quantità di memoria che si poteva effettivamente affrontare per una data parola di dimensioni era importante. Oggi, con i sistemi a 64 bit, lo è meno, ma non c'è alcun vantaggio evidente nel causare l'enorme incompatibilità all'indietro che sarebbe necessaria una modifica.

    
risposta data 01.06.2016 - 12:22
fonte
4

Ecco alcuni pensieri:

  • Puoi indirizzare 8 volte meno memoria con le stesse dimensioni degli indirizzi
  • vuoi solo occuparti del bit saggio e operare ancora su 8,16, .. bit contemporaneamente solo a posizioni bit indirizzabili?
  • vorresti che i comandi di assemblaggio funzionino su singoli bit?
  • I registri
  • nella CPU e anche i bus di dati tra i componenti dell'hardware hanno dimensioni fisse. Se si desidera utilizzarli con ogni numero possibile di bit, il numero di possibilità aumenta molto rispetto all'utilizzo in termini di byte.
  • Quante volte usi le operazioni bit? Gli sforzi extra per essere in grado di utilizzare l'indirizzamento e le operazioni di bit saggio valgono questo?

Penso che la maggior parte dei Dati sia molto adatta per essere archiviata in multipli di 8 bit. per esempio. ASCII, piccoli valori in 8,16,32,64 bit. Così ne guadagni pochissimi aggiungendo l'indirizzamento bit-saggio, ma ottieni una CPU molto più compatta, la gestione di momory, il caching, ....

    
risposta data 01.06.2016 - 12:13
fonte
3

Ci sono state architetture bit-indirizzabili; ad esempio, i sistemi CDC Cyber 200 series. (Indirizzi a 48 bit)

C'era una ragione per questo, comunque. La macchina sopra menzionata è una macchina vettoriale (SIMD) e i vettori bit sono molto importanti per il controllo delle operazioni vettoriali e per indicare "vettori sparsi", in cui la memorizzazione di un elemento deve essere assegnata solo quando l'elemento è diverso da zero. Il Cyber 200 aveva un set completo di operazioni di bit, unione e selezione, oltre a operazioni per generare i vettori bit di controllo.

Ma le macchine vettoriali sono una razza molto diversa dalle normali macchine scalari, che possono "fare" con granularità di byte o di parole nell'indirizzamento.

    
risposta data 13.12.2016 - 22:47
fonte
2

Ci sono stati computer bit-indirizzabili, con parole di dimensioni variabili (fino a un limite), vedi (per esempio) il brevetto US4467443.

Tuttavia, più assunzioni si possono fare e meno flessibilità si ha, più velocemente si può fare la RAM. Se sai che potrai sempre recuperare i byte (o le parole a 16 bit, o le parole a 32 bit o le righe di memoria a 16 byte), puoi collegare tutto questo in parallelo, ma è più difficile (anche se non impossibile) fare con un design più flessibile.

Ci sono anche CPU in cui la dimensione della parola scaricata decide la granularità dell'indirizzamento. Quindi i byte possono trovarsi a qualsiasi indirizzo di byte, le parole a 16 bit devono essere a un indirizzo pari e le parole a 32 bit in un indirizzo che è un multiplo di quattro.

    
risposta data 14.12.2016 - 12:21
fonte

Leggi altre domande sui tag