Avere 4 stati per "bit" anziché 2 significherebbe il doppio dello spazio di archiviazione?


35

Domanda piuttosto semplice, sebbene ingenua, fondamentale:

Avere 4 stati per "bit" anziché 2 significherebbe il doppio dello spazio di archiviazione? Nel caso ciò non sia chiaro, intendo come se ogni "struttura di archiviazione", anziché rappresentare solo 2 valori, (base 2: 0, 1), potrebbe rappresentare 4 valori (base 4: 0, 1, 2, 3 ).


4
Non so che ciò significhi raddoppiare lo spazio di archiviazione in quanto ci sono alcuni costi con la memorizzazione di più livelli.
Erik Eidt,

13
Vedi Cella multi-livello , utilizzata nella maggior parte della memoria flash. Ora si stanno spostando nella cella a tre livelli o tre bit di dati per cella fisica.
Someone Somewhere,

52
Un "bit" è definito come avente due stati, quindi una cella di memoria con quattro stati memorizzerebbe due bit per definizione.
Jacques B

24
@JacquesB mentre tecnicamente corretto (il miglior tipo) non è chiaramente quello che intendeva il richiedente.
MetaFight,

11
Se un "bit" con 4 stati è grosso quanto due "bit" con due stati ciascuno, lo spazio di archiviazione è identico.
mouviciel,

Risposte:


105

La parola che stai cercando non è "bit" ma "simbolo". "Simbolo" è la parola usata per descrivere il processo di mappatura dei segnali hardware (come tensioni o schemi magnetici) in bit logici. Se un simbolo può avere 4 stati, può codificare 2 bit di informazioni.

Naturalmente, non stiamo dicendo nulla sull'uso delle risorse del simbolo in tale argomento. Se si inviano simboli lungo un filo come tensioni, i diversi simboli sembrano sempre più simili quando si aumenta il numero di stati per simbolo. Se ho un filo 0-5 V e 2 stati per simbolo (1 bit), i miei due stati sono 0 V e 5 V, con 5 V tra ciascun simbolo. Se ho lo stesso filo, ma codifico 4 stati per simbolo (2 bit), i miei stati sono 0 V, 1,66 V, 3,33 V e 5 V. Sono 1,66 V tra ciascun simbolo. Ora è più facile per il rumore corrompere il mio segnale.

Esiste una legge che li collega , nota come la legge di Shannon che mette in relazione la larghezza di banda (in bit) con il tasso di errori che si verificano a causa del rumore sulla linea. Si scopre che esiste un limite al numero di bit che è possibile stipare su un filo. L'uso di più simboli porta a più errori, richiedendo una maggiore correzione degli errori.

Usiamo questa tecnica nella vita reale. La televisione digitale utilizza QAM-64, con 64 stati (e quindi 6 bit per simbolo). Ethernet utilizza 4 livelli di tensione, quindi 2 bit per simbolo.

Modifica: ho usato le velocità di trasmissione dei bit piuttosto che l'archiviazione perché è più comune vedere simboli con più stati nella trasmissione, in modo da rendere la storia più chiara. Se si desidera esaminare in modo specifico l'archiviazione e l'archiviazione da soli, è possibile esaminare le celle multilivello nella memoria flash, come indicato da qualcuno da qualche parte nei commenti. Tale memoria utilizza lo stesso identico approccio, memorizzando 3 bit come 16 diversi livelli di carica di un condensatore. (o più!)


1
I commenti non sono per una discussione estesa; questa conversazione è stata spostata in chat .
maple_shaft

questa risposta è completamente sbagliata a causa di Ethernet. Vedi qui - il solito 100Base-T ha MLT3 con 3 livelli e 1000Base-T ha PAM5 con 5 livelli, 10GBase-T ha PAM16 con 16 livelli. Non esiste alcuna versione di Ethernet con 4 livelli che conosco o che potrei trovare ovunque. @CortAmmon dove su Wikipedia hai scoperto che Ethernet ha 4 livelli di tensione? Sarei più che felice di scavare e verificare da dove provenga.
vaxquis,

21

Una cella di memoria quarternativa può memorizzare esattamente quante informazioni di 2 celle di memoria binarie:

Quaternary Binary
0          00
1          01
2          10
3          11

Quindi, se hai lo stesso numero di celle di memoria, ma sono di tipo quarternativo, allora hai il doppio della memoria. Ma se questa cella quad occupa il doppio dello spazio su un chip, allora non ci sono vantaggi.

O in un altro modo, se avessi 1 gigaquad di memoria quartenary, potrebbe archiviare più informazioni di 2 gigabit di normale memoria binaria, perché ogni quad potrebbe essere espresso con due bit.


In un certo senso tutta questa linea di pensiero è solo di interesse accademico. Puoi già pensare che i chip di memoria memorizzino ad esempio 2 ^ 32 celle di stato, poiché non puoi recuperare 1 bit da loro, ottieni sempre una parola completa. E se in futuro qualcuno trovasse un modo per memorizzare quella parola in celle fisiche a 4 stati in modo più efficiente rispetto alle celle a 2 stati, allora sarebbe usato, ma non sarebbe visibile al di fuori del chip di memoria, avrebbe comunque gestito solo parole di memoria piena, che possono avere ad esempio 2 ^ 32 stati diversi.


1
"Una cella di memoria quarternativa può memorizzare esattamente quante informazioni di 2 celle di memoria binarie", ma 2 numeri di base 4 possono contenere quattro volte tanto quanto due valori di base 2.
JimmyJames,

1
@JimmyJames Quattro volte il maggior numero possibile di stati non è la stessa cosa di una quantità di memoria quattro volte maggiore. Guarda la conversazione sotto la risposta di Richard Dunn.
Sean Burton,

2
Per me, l'ovvia domanda di follow-up a questa risposta è: "Beh ... le celle quadruple occupano il doppio dello spazio sul chip?".
Daniel Wagner,

5
Quindi riformulerò: quattro volte il maggior numero possibile di stati non è la stessa cosa di quattro volte più informazioni.
Sean Burton,

1
@JimmyJames Questa è una contraddizione. 2 celle quadruple equivalgono a 4 cels binari. Quindi stai dicendo che 4 celle binarie memorizzano 4 volte più informazioni di 2 celle binarie, anche se sono solo il doppio delle celle. IOW, ti sbagli, almeno se calcoli le informazioni come "bit" (o byte o terabyte).
hyde,

9

In teoria di base, sì. In realtà no, perché in realtà non archiviamo i dati in bit (su HDD). Cort Ammon tratta molto bene i problemi relativi alla trasmissione dei dati. RAM, cache e SSD memorizzano i dati come bit, ma gli HDD sono diversi a causa della natura del loro materiale fisico e dei nostri sforzi per impacchettare più dati su di essi. La maggior parte dei dati è ancora archiviata su HDD, quindi mi concentrerò su quelli. Andrò ben oltre la spiegazione che troverai dalla maggior parte delle fonti, ma proverò a citare fonti dove posso. Queste fonti devono essere estratte dalle antiche profondità di Internet perché sono - in larga misura - conoscenze veramente dimenticate.

Innanzitutto, i dischi rigidi memorizzano informazioni con campi magnetici sulla superficie dei piatti del disco. La testa motrice legge questi rilevando il flusso dal cambiamento in quel campo - questo è molto più facile da misurare rispetto alla direzione e alla forza effettive del campo magnetico. ma se il campo è composto da 50 segmenti uguali di fila, non può in realtà contare che ce ne fossero 50: legge un picco di flusso durante la lettura del primo segmento, quindi nessun flusso per un po 'di tempo dopo e non può tenere traccia del tempo abbastanza accuratamente per essere certi che il campo fosse invariato per 50 segmenti.

Quindi, il modello di base (semplificato eccessivamente) è quello di memorizzare un po 'come una coppia di campi magnetici. Il primo sarebbe sempre un passaggio dal segmento precedente, e il secondo sarebbe un flip per rappresentare 1 o nessun flip per rappresentare 0. Quindi uno 0 è FN (flip-null) e un 1 è FF (flip-flip). I tempi dell'azionamento sono abbastanza precisi da riconoscere la differenza tra un picco di flusso e due picchi di flusso all'interno di un segmento. Questo formato è chiamato modulazione di frequenza. Quindi questo dà segnali chiari, MA significa che ogni bit di memoria richiede due spazi sul disco - è molto inefficiente. Quindi nessun disco rigido aveva effettivamente questa forma basilare di codifica; utilizzava invece semplici trucchi di compressione. La più semplice è la Modulazione di frequenza modificata, che modifica il modello in modo che il flip magnetico extra venga utilizzato solo se uno 0 è preceduto da un altro 0. Ciò consente agli ingegneri di riempire quasi il doppio dei dati nello stesso spazio, quindi è stato utilizzato sui primi HDD ed è il formato su floppy disk. Dopodiché, è stato sviluppato un sistema più avanzato chiamato Run Length Limited con un'idea generale simile, che non affronterò perché diventa molto più complicato e ci sono più implementazioni.

Ma oggi non usiamo nessun sistema del genere. Invece, utilizziamo un sistema chiamato Partial Response, Maximum Likelihood (PRML). Il PRML richiede che la testa legga una lunghezza e raccolga il campione magnetico, quindi lo confronta con un set di riferimento di campioni memorizzati per determinare quale corrisponde meglio. Rinuncia all'intero concetto di picchi di flusso e utilizza invece la corrispondenza del modello (io semplifico in modo eccessivo, ma ne vale la pena la semplificazione eccessiva) e il modello corrisponde a un insieme di bit. Utilizza filtri antirumore e altre tecnologie per rimuovere potenziali errori. È meglio pensarlo come una forma d'onda complessa e l'HDD sa come tradurre ogni forma d'onda in un insieme di bit. In questo senso, i dati sono effettivamente memorizzati più in un formato analogico che in uno digitale,

La migliore guida a questo è su http://www.pcguide.com/ref/hdd/geom/data.htm (premi il pulsante Successivo alcune volte per leggere tutto) e ci sono alcune altre fonti - principalmente da persone che hanno creato enormi archivi di conoscenze informatiche che nessuno ha motivo di conoscere. Una fonte aggiuntiva decente (che è buona ma non del tutto perfetta al 100% per quanto ne so) è su http://www.tomshardware.com/reviews/hard-drive-magnetic-storage-hdd,3005-6.html

TL; DR: i dischi del disco rigido non memorizzano i dati in un formato simile a 1 e 0; usano invece l'elaborazione complessa del segnale per stipare i segnali nello spazio più piccolo possibile e decodificarlo durante la lettura. Quindi, sono davvero agnostici di base.

Non sarei sorpreso che l'archiviazione di base 4 sia stata tentata su SSD o RAM ad un certo punto. Tutto dipende dalla fisica e dalla chimica dei materiali. Gli ingegneri e gli scienziati spingeranno questi materiali il più possibile e perseguiranno qualunque percorso produca i migliori risultati.


Vuoi discutere di un concetto di archiviazione? Se dovessimo memorizzare simboli basati su un piano di coordinate anziché in sequenza, mi sembra che potremmo memorizzare bit extra in base alla posizione delle coordinate e alla posizione rispetto ad altri bit. chat.stackexchange.com/rooms/66911/vizs-discussion-2
Viziionary

Manchester Coding è stato sviluppato per il nastro magnetico e Phase Shift Keying per la radio. Idee simili a quello che stai dicendo.

Non lo sapevo, ma nemmeno molto sorpreso.
Walfrat,

l'archiviazione base-4 su SSD si chiama MLC.
user253751

6

Sì, avere più stati consentirà a ciascuna "cella" di archiviazione o ogni simbolo su una linea di trasmissione dati di trasportare più informazioni.

Ma non c'è pranzo libero, dobbiamo effettivamente essere in grado di distinguere quegli stati. Risulta facile costruire porte logiche binarie e molto più difficile costruire porte che distinguono, elaborano e rigenerano più di due livelli logici.

E poi c'è il problema dei segnali attenuati. Su un sistema a due livelli puoi semplicemente progettare la tua soglia in modo che funzioni con l'attenuazione nel caso peggiore, su un sistema a quattro stati in cui è prevista un'attenuazione significativa devi adattare le tue soglie alla particolare attenuazione del tuo sistema, non solo al peggio attenuazione di caso. In pratica, ciò significa che è necessario aggiungere un sistema di misurazione dell'attenuazione al sistema di comunicazione.

Tutto ciò che ha detto che ci sono situazioni in cui la complessità in più non ha senso. Molti SSD ora usano più di due livelli per cella flash (noto come MLC o TLC), i moderni protocolli di comunicazione ad alta velocità usano quasi sempre codifiche multilivello.


Ternary non è troppo difficile. I computer sono stati costruiti usando quello.

1
Sì, il ternario è più facile del quarto perché basta distinguere "postivo", "negativo" e "spento" piuttosto che dover distinguere più livelli dello stesso segno. Ancora più difficile del binario però.
Peter Green,

2
La cosa interessante del codice Morse via radio è che il segnale è acceso o no. La condizione di non accensione non è informazione. Quindi non è l'alternanza di on e off che porta informazioni, è la lunghezza e la distanza degli impulsi on. Nessun altro sistema di rappresentazione moderno funziona in questo modo che io conosca.

1
Codici a barre? La barra e lo spazio separano le cifre e la larghezza determina il valore.
Sopuli,

@Sopuli ok, quindi in quel caso, la parte scura del codice a barre non riflette la luce, quindi sarebbe lo stato "off" o "no signal". Immagino che il mio punto fosse che la codifica non è sempre semplicemente due stati di segnale, ma potrebbe essere segnale vs nessun segnale, il che sembra strano, tranne in casi reali, come codice Morse, codici a barre, parlato, ecc. Le rappresentazioni del computer di solito non sprecano spazio sulla memorizzazione di regioni senza "segnale", sono più efficienti dei sistemi di segnali fisici. Nel caso fisico non siamo liberi di "avanzare rapidamente" sulle lacune nei contenuti, dobbiamo aspettarli.

2

Potresti essere interessato a sapere che i russi hanno sviluppato un chip ternario , anziché binario. Ciò significa che ogni simbolo potrebbe avere i valori di -1, 0o 1. Quindi ogni gate fisico potrebbe memorizzare "tre" valori, anziché "due".

Potenziali applicazioni future

Con l'avvento dei componenti binari prodotti in serie per computer, i computer ternari sono diminuiti di significato. Tuttavia, Donald Knuth sostiene che in futuro saranno riportati allo sviluppo per sfruttare l'eleganza e l'efficienza della logica ternaria.

Quando inizi a sospettare, potrebbe esserci un modo più efficiente per implementare un sistema di numerazione di base. (Sebbene questa capacità di esprimerlo in modo più efficiente dipenda dalla nostra capacità di produrre fisicamente materiale.) Si scopre che la costante e, la base del tronco naturale (~ 2.71828), ha la migliore economia radix, seguita da 3, quindi 2, quindi 4.

L'economia di Radix è il numero che puoi rappresentare rispetto a quanti simboli devi prendere per farlo.

Ad esempio, il numero matematico tre è rappresentato come 3nella base 10, ma come 11nella base 2 (binario). La base 10 può esprimere numeri più grandi con meno simboli di quelli binari, ma la tabella dei simboli della base 10 è 5 volte più grande (0 ... 9) della tabella dei simboli della base 2 (0, 1). Il confronto tra la potenza espressiva e la dimensione del set di simboli è chiamato "economia radix" (radix è il numero della base, ad esempio 2 in binario o "base 2"). La domanda naturale che segue è: dove voglio essere in termini di questo compromesso? Quale numero dovrei adottare come radix? Posso ottimizzare il compromesso tra potenza espressiva e dimensioni del set di simboli?

Se guardi il grafico nell'articolo sull'economia di Radix in Wikipedia, puoi confrontare le economie di varie basi. Nel nostro esempio, la base 2 ha un'economia radix di 1.0615, mentre la base 10 ha un'economia di 1.5977. Più basso è il numero, meglio è, quindi la base 2 è più efficiente della base 10.

La tua domanda sulla base 4 ha un'efficienza di 1.0615, che ha le stesse dimensioni della base 2 (o binaria), quindi adottandola sulla base 2 otterrai in media solo le stesse dimensioni di archiviazione per numero.

Se ti stai chiedendo, allora c'è un numero ideale da adottare come base, questo grafico mostra che non è un numero intero, ma la costante matematica e(~ 2.71828) che è la migliore, con un'economia di 1,0. Ciò significa che è il più efficiente possibile. Per ogni serie di numeri, in media, base eti darà la migliore dimensione di rappresentazione, data la sua tabella dei simboli. È il miglior "bang for your buck".

Quindi, sebbene pensi che la tua domanda sia forse semplice e di base, in realtà è sottilmente complessa e un problema molto utile da considerare quando si progettano i computer. Se potessi progettare un computer discreto ideale, l'uso della base 4 offre lo stesso affare - lo stesso spazio per i costi - del binario (base 2); l'uso della base 3, o ternario, offre un affare migliore rispetto al binario (e i russi costruirono un computer fisico funzionante con una rappresentazione di base 3 nei transistor); ma idealmente, useresti base e. Non so se qualcuno abbia costruito un computer fisico funzionante con base e, ma matematicamente offrirebbe una migliore quantità di spazio rispetto a binario e ternario - in effetti, la migliore offerta tra tutti i numeri reali.


questo non sembra nemmeno tentare di rispondere alla domanda posta, avere 4 stati per "bit" anziché 2 significherebbe il doppio dello spazio di archiviazione? Vedi Come rispondere
moscerino

@gnat Penso che il concetto di radix economy affronti direttamente quanti dati ottieni per simbolo. Non solo risponde al caso di 4, ma risponde al caso di qualsiasi numero. È la soluzione generale.
user1936

1
Ho controllato due volte il link di Wikipedia nascosto sotto "risulta" e francamente non riesco ancora a vedere come si collega allo spazio di archiviazione
moscerino

2
@gnat Ho aggiornato la risposta. Spero che a questo punto vedi come almeno tenta di rispondere alla domanda.
user1936

2

Crederesti che posso codificare la somma totale della conoscenza umana con una singola corrispondenza?

Se codifico un po 'in una singola corrispondenza, i simboli potrebbero apparire così:

inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine

Con abbastanza partite posso dire qualsiasi cosa. Ma posso aggiungere il doppio con la stessa corrispondenza se aggiungo altri due simboli. Che potrebbe apparire così:

inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine

Il doppio delle informazioni con la stessa partita! Beh perchè no? Bene, perché fermarsi? Ruota ogni simbolo di 45 gradi e raddoppiamo di nuovo. 30, 15, avanti e avanti. Presto ho abbastanza simboli per poter dire qualsiasi cosa con una sola partita! Una volta fatto ciò, abbiamo un problema. Cosa dice questa partita?

inserisci qui la descrizione dell'immagine

Come puoi essere sicuro di quale simbolo sia adesso? Quanto tempo devi essere sicuro? Questo è il problema. Più simboli aggiungo, maggiore è lo sforzo necessario per distinguerli.

Avere 4 stati per "bit" anziché 2 significherebbe il doppio dello spazio di archiviazione?

Se stiamo parlando di una partita, allora certo. Ma, anche se ciò non ha rallentato la velocità di lettura della nostra partita, ora stiamo occupando più spazio sul mio bancone della cucina. È sempre qualcosa.


Questo è essenzialmente il modo in cui funzionano gli schemi di modulazione radio come Quadrature AM e Phase Modulation. Se vuoi divertirti davvero, studia come i vettori di fase rotanti rappresentano due toni simultanei in banda laterale singola o FM.

2

Se un bit avesse 4 stati anziché due in un simbolo (bit), allora sì avresti il ​​doppio della memoria. Questo potrebbe o meno occupare il doppio dello spazio, a seconda della tecnologia utilizzata.

C'è un esempio di vita reale che hai davanti ai tuoi occhi ogni giorno: Ethernet (che non è memoria, ma è simile nella misura in cui trasmette dati) hai, tra l'altro, la normale "ethernet veloce" a 100 MBit 100BASE -TX, e hai Ethernet 1GbE.

Chiaramente, 1GbE richiede frequenze 10 volte superiori a 100 MBit (poiché 100 MBit richiedono una frequenza 10 volte superiore a 10 MBit), ecco perché sono necessari anche cavi più costosi. Ovviamente.

Oops ... non è affatto vero .

Ethernet da 100 MBit trasmette su due coppie di cavi a 100 MHz mentre GbE trasmette a 125 MHz su 4 coppie di cavi.

Aspetta, quindi GbE è davvero solo 2 1/2 volte più veloce di Ethernet da 100 Mbit? Ottengo solo 250 MBit / s?

No, utilizza anche la codifica 5-PAM, che può codificare 2,32 bit per impulso per coppia di cavi, di cui 2 bit vengono utilizzati come informazioni effettive e il resto rende il segnale più resistente al rumore. Grazie a quei bit frazionari, 1000BASE-T è in grado di rilasciare anche la codifica 8B10B.

Quindi hai raddoppiato il numero di fili e aumentato leggermente la frequenza, ma ottieni una velocità 10 volte maggiore!

Ora, se pensavi che fosse pura magia, guarda come funziona la televisione via cavo digitale e, se non sei ancora convinto, guarda in ADSL, che utilizza 32768-QAM per codificare 15 bit in un simbolo.
Stesso vecchio filo di rame, stessa banda di frequenza, attraversando 15 volte più materiale.

EDIT:
Un altro esempio di vita reale molto ovvio di cui mi sono completamente dimenticato (dal momento che è semplicemente troppo ovvio, a quanto pare!) Che hai davanti ai tuoi occhi ogni giorno è: pendrive USB.
Quelli comunemente usano la memoria flash MLC . Cos'è quello? È un tipo di cella di memoria che memorizza uno dei quattro diversi livelli di carica. Questa è l'unità più piccola a cui è possibile accedere a livello hardware. Quindi potresti dire che i tuoi "bit" hanno effettivamente 4 stati (non lo fanno , in realtà ne esci solo due bit invece di uno, e puoi comunque leggere solo settori completi dal dispositivo ... ma puoi probabilmente guardarlo quel modo).
Stesso numero di celle, ma raddoppia la memoria. Più economico, più piccolo, un po 'meno affidabile, ma ... prima di tutto, più economico .


Si tratta di utilizzare completamente la larghezza di banda disponibile.

100BASE-TX utilizza solo una coppia per direzione mentre 1000BASE-T utilizza 4 coppie per direzione (con cancellazione dell'eco).
user253751

-5

Avere 4 simboli per cifra anziché due significa che è possibile memorizzare il doppio delle informazioni in una singola cifra. Tuttavia, quando si aumenta la quantità di cifre, è possibile memorizzare in modo esponenziale più informazioni:

Qualsiasi n cifra nella base 2 può codificare 2 ^ n stati mentre la base 4 può codificare 4 ^ n.


6
la tua affermazione è: "4 simboli / bit". Ciò dimostra una mancanza di comprensione. Sono 4 stati / simboli e con quei 4 stati / simboli codificherebbe 2 bit.
Pieter B,

4
@Kapep è sbagliato. Sta usando "quantità di informazioni" e "può codificare N stati" in modo intercambiabile, il che non è assolutamente corretto. Le informazioni sono misurate in bit, non in numero di stati. Raddoppiando i bit per simbolo si aggiungono quante più informazioni raddoppiando il numero di simboli.
user5226582

3
Dovresti modificarlo per chiarire che quando dici "4 simboli per cifra", intendi che ogni cifra ha 4 possibili valori (o stati o "simboli"). Quando vedo la frase "4 simboli per cifra", la prima cosa che penso è che scrivere una cifra implica scrivere 4 simboli. Mentre ci sei, la tua risposta contiene 9 parole in maiuscolo che puoi correggere ...
Tanner Swett,

2
@TannerSwett Dato che siamo in una terra pedante, 'digit' implica 10 valori, motivo per cui è abbastanza divertente che in genere chiamiamo tecnologie che usano binario 'digital'.
JimmyJames,

2
(4^n) / (2^n) = 2^nil che significa che puoi rappresentare in modo esponenziale ( 2^nvolte) più stati ma che rappresenta solo due volte ( log2(4^n) / log2(2^n) = 2n / n = 2) più spazio di archiviazione. Ricorda chestorage capacity in bits = log2(number of states)
zakinster,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.