¿Tener 4 estados por "bit" en lugar de 2 significaría el doble del espacio de almacenamiento?


35

Bastante directa, aunque ingenua, pregunta:

¿Tener 4 estados por "bit" en lugar de 2 significaría el doble del espacio de almacenamiento? En caso de que no esté claro, quiero decir como si cada "estructura de almacenamiento", en lugar de representar solo 2 valores, (base 2: 0, 1), pudiera representar 4 valores (base 4: 0, 1, 2, 3 )


44
No sé si eso significa duplicar el espacio de almacenamiento, ya que existen algunos costos para almacenar los niveles múltiples.
Erik Eidt

13
Consulte Celda multinivel , como se usa en mucha memoria flash. Ahora se están moviendo a la celda de triple nivel, o tres bits de datos por celda física.
Alguien en algún lugar

52
Un "bit" se define como tener dos estados, por lo que una celda de almacenamiento con cuatro estados almacenaría dos bits por definición.
JacquesB

24
@JacquesB aunque técnicamente correcto (el mejor tipo) eso claramente no es lo que quiso decir el autor de la pregunta.
MetaFight

11
Si un "bit" con 4 estados es tan grueso como dos "bits" con dos estados cada uno, el espacio de almacenamiento es idéntico.
mouviciel

Respuestas:


105

La palabra que busca no es "bit" sino "símbolo". "Símbolo" es la palabra utilizada para describir el proceso de mapeo de señales de hardware (como voltajes o patrones magnéticos) en bits lógicos. Si un símbolo puede tener 4 estados, puede codificar información de 2 bits.

Por supuesto, no estamos diciendo nada sobre el uso de recursos del símbolo en ese argumento. Si envía símbolos a lo largo de un cable como voltajes, los diferentes símbolos se ven cada vez más similares a medida que aumenta el número de estados por símbolo. Si tengo un cable de 0-5 V y 2 estados por símbolo (1 bit), mis dos estados son 0 V y 5 V, con 5 V entre cada símbolo. Si tengo el mismo cable, pero codifico 4 estados por símbolo (2 bits), mis estados son 0V, 1.66V, 3.33V y 5V. Eso es 1.66V entre cada símbolo. Ahora es más fácil que el ruido corrompa mi señal.

Existe una ley que los relaciona, conocida como Ley de Shannon, que relaciona el ancho de banda (en bits) con la tasa de errores que ocurren debido al ruido en la línea. Resulta que hay un límite en la cantidad de bits que puedes meter a través de un cable. Usar más símbolos conduce a más errores, lo que requiere más corrección de errores.

Usamos esta técnica en la vida real. La televisión digital utiliza QAM-64, con 64 estados (y, por lo tanto, 6 bits por símbolo). Ethernet usa 4 niveles de voltaje, por lo que 2 bits por símbolo.

Editar: utilicé velocidades de transmisión de bits en lugar de almacenamiento porque es más común ver símbolos con más estados en la transmisión, por lo que podría aclarar la historia. Si se desea ver específicamente el almacenamiento y el almacenamiento solo, se podrían mirar las celdas de varios niveles en la memoria flash, como alguien mencionó en los comentarios. Dicha memoria utiliza exactamente el mismo enfoque, almacenando 3 bits como 16 niveles de carga diferentes de un condensador. (¡o más!)


1
Los comentarios no son para discusión extendida; Esta conversación se ha movido al chat .
maple_shaft

Esta respuesta es completamente incorrecta a causa de Ethernet. Vea aquí : 100Base-T tiene MLT3 con 3 niveles y 1000Base-T tiene PAM5 con 5 niveles, 10GBase-T tiene PAM16 con 16 niveles. No hay ninguna versión de Ethernet que tenga 4 niveles que conozca o que pueda encontrar en cualquier lugar. @CortAmmon, ¿dónde en Wikipedia encontró que Ethernet tiene 4 niveles de voltaje? Estaría más que feliz de investigarlo y verificar de dónde proviene.
vaxquis

21

Una celda de memoria cuaternaria puede almacenar exactamente tanta información como 2 celdas de memoria binaria:

Quaternary Binary
0          00
1          01
2          10
3          11

Entonces, si tiene la misma cantidad de celdas de memoria, pero son cuaternarias, entonces tiene el doble de memoria. Pero si esta celda cuádruple ocupa el doble de espacio en un chip, entonces no hay beneficio.

O de otra manera, si tuviera 1 gigaquad de almacenamiento cuaternario, podría almacenar tanta información como 2 gigabits de memoria binaria normal, porque cada quad podría expresarse con dos bits.


En cierto modo, toda esta línea de pensamiento es solo de interés académico. Ya puede pensar que los chips de memoria almacenan, por ejemplo, 2 ^ 32 celdas de estado, ya que no puede obtener 1 bit de ellos, siempre obtiene una palabra completa. Y si en el futuro alguien encontrara una manera de almacenar esa palabra en celdas físicas de 4 estados de manera más eficiente que en celdas de 2 estados, entonces eso se usaría, pero no sería visible fuera del chip de memoria, aún manejaría palabras de memoria completa solamente, que pueden tener, por ejemplo, 2 ^ 32 estados diferentes.


1
"Una celda de memoria cuaternaria puede almacenar exactamente tanta información como 2 celdas de memoria binaria", pero los números 2 base-4 pueden contener cuatro veces más que dos valores base-2.
JimmyJames

1
@JimmyJames Cuatro veces más estados posibles no es lo mismo que cuatro veces más almacenamiento. Vea la conversación bajo la respuesta de Richard Dunn.
Sean Burton

2
Para mí, la pregunta de seguimiento obvia a esta respuesta es: "Bueno ... ¿las celdas cuádruples ocupan el doble de espacio en el chip?".
Daniel Wagner

55
Luego reformulo: cuatro veces más estados posibles no es lo mismo que cuatro veces más información.
Sean Burton

1
@JimmyJames Eso es una contradicción. 2 celdas cuádruples equivalen a 4 celdas binarias. Entonces está diciendo que 4 celdas binarias almacenan 4 veces más información que 2 celdas binarias, a pesar de que son solo el doble de celdas. IOW, está equivocado, al menos si calcula la información como "bits" (o bytes o terabytes).
hyde

9

En teoría básica, sí. En realidad, no, porque de todos modos no almacenamos datos en bits (en discos duros). Cort Ammon cubre muy bien los problemas de transmisión de datos. La RAM, el caché y los SSD almacenan datos como bits, pero los HDD son diferentes debido a la naturaleza de su material físico y a nuestros esfuerzos por empaquetar más datos en ellos. La mayoría de los datos todavía se almacenan en discos duros, por lo que me centraré en ellos. Iré más allá de la explicación que encontrará en la mayoría de las fuentes, pero trataré de citar las fuentes donde pueda. Estas fuentes deben extraerse de las antiguas profundidades de Internet porque es, en gran medida, un conocimiento verdaderamente olvidado.

Primero, los discos duros almacenan información con campos magnéticos en la superficie de los platos de la unidad. El cabezal impulsor lee esto al detectar el flujo del cambio en ese campo; esto es mucho más fácil de medir que la dirección y la fuerza reales del campo magnético. pero si el campo es 50 de los mismos segmentos seguidos, en realidad no puede contar que hubo 50: lee un pico de flujo al leer el primer segmento, luego no hay flujo por un tiempo después de eso y no puede rastrear el tiempo con la precisión suficiente para asegurarse de que el campo no haya cambiado durante 50 segmentos.

Entonces, el modelo básico (simplificado en exceso) es almacenar un bit como un par de campos magnéticos. El primero siempre sería un cambio desde el segmento anterior, y el segundo sería un flip para representar 1 o ningún flip para representar 0. Entonces, un 0 es FN (flip-null) y un 1 es FF (flip-flip). La sincronización de la unidad es lo suficientemente precisa como para reconocer la diferencia entre un pico de flujo y dos picos de flujo dentro de un segmento. Este formato se llama modulación de frecuencia. Entonces, esto da señales claras, PERO significa que cada bit de memoria requiere dos espacios en el disco, eso es muy ineficiente. Entonces, ningún disco duro tenía esta forma básica de codificación; En su lugar, utilizaba simples trucos de compresión. La más simple es la Modulación de frecuencia modificada, que cambia el patrón para que el giro magnético adicional se use solo si un 0 está precedido por otro 0. Esto permite a los ingenieros meter casi el doble de datos en el mismo espacio y, por lo tanto, se utilizó en los primeros discos duros, y es el formato en los disquetes. Después de eso, se desarrolló un sistema más avanzado llamado Run Length Limited con una idea general similar, en la que no entraré porque se vuelve mucho más complicado y hay múltiples implementaciones.

Pero hoy no usamos ningún sistema así. En su lugar, utilizamos un sistema llamado Respuesta parcial, máxima verosimilitud (PRML). PRML requiere que la cabeza lea una longitud y recolecte la muestra magnética, luego la compara con un conjunto de referencia de muestras almacenadas para determinar cuál coincide mejor. Olvida todo el concepto de picos de flujo, y en su lugar utiliza la coincidencia de patrones (simplifico demasiado, pero la simplificación excesiva vale la pena), y el patrón corresponde a un conjunto de bits. Utiliza filtros de ruido y otra tecnología para eliminar posibles errores. Es mejor pensar en ella como una forma de onda compleja, y el HDD sabe cómo traducir cada forma de onda en un conjunto de bits. En este sentido, los datos se almacenan más en un formato analógico que en uno digital,

La mejor guía para esto está en http://www.pcguide.com/ref/hdd/geom/data.htm (presione el botón Siguiente varias veces para leerlo todo) y hay algunas otras fuentes, principalmente de personas que crearon depósitos masivos de conocimiento informático que nadie tiene ninguna razón para conocer. En http://www.tomshardware.com/reviews/hard-drive-magnetic-storage-hdd,3005-6.html se encuentra una fuente adicional decente (que es buena pero no del todo 100% perfecta).

TL; DR: los discos duros no almacenan datos en un formato como 1 y 0; en su lugar, utilizan el procesamiento complejo de señales para agrupar las señales en el espacio más pequeño posible y decodificarlas cuando leen. Entonces, son realmente agnósticos de base.

No me sorprendería que en algún momento se intentó el almacenamiento en base 4 en SSD o RAM. Todo depende de la física y la química de los materiales. Los ingenieros y científicos empujarán esos materiales lo más que puedan y buscarán cualquier ruta que produzca los mejores resultados.


¿Te importa discutir un concepto de almacenamiento? Si tuviéramos que almacenar símbolos basados ​​en un plano de coordenadas en lugar de secuencialmente, me parece que podríamos almacenar bits adicionales en función de la posición de coordenadas y la posición relativa a otros bits. chat.stackexchange.com/rooms/66911/vizs-discussion-2
Viziionary

Manchester Coding fue desarrollado para cinta magnética y Phase Shift Keying para radio. Ideas similares a lo que estás diciendo.

No sabía sobre eso, pero tampoco realmente sorprendió.
Walfrat

El almacenamiento base-4 en SSD se llama MLC.
user253751

6

Sí, tener más estados permitirá que cada "celda" de almacenamiento o cada símbolo en una línea de transmisión de datos lleve más información.

Pero no hay almuerzo gratis, necesitamos ser capaces de distinguir esos estados. Resulta que es fácil construir puertas lógicas binarias y mucho más difícil construir puertas que distingan, procesen y regeneren más de dos niveles lógicos.

Y luego está el problema de las señales atenuadas. En un sistema de dos niveles, simplemente puede diseñar su umbral para que funcione con la peor atenuación, en un sistema de cuatro estados donde se espera una atenuación significativa, necesita adaptar sus umbrales a la atenuación particular de su sistema, no solo a la peor atenuación de casos. En la práctica, eso significa que debe agregar un sistema de medición de atenuación a su sistema de comunicaciones.

Todo lo que dijo que hay situaciones en las que la complejidad adicional HACE tiene sentido. Muchos SSD ahora usan más de dos niveles por celda flash (conocido como MLC o TLC), los protocolos modernos de comunicación de alta velocidad también casi siempre usan codificaciones de niveles múltiples.


Ternario no es demasiado difícil. Las computadoras se han construido utilizando eso.

1
Sí, ternario es más fácil que cuaternario porque solo tiene que distinguir entre "positivo", "negativo" y "desactivado" en lugar de tener que distinguir múltiples niveles del mismo signo. Aún más difícil que el binario.
Peter Green

2
Lo interesante del código Morse por radio es que la señal está encendida o no. La no condición no es información. Por lo tanto, no es la alternancia de encendido y apagado lo que lleva información, es la longitud y el espaciado de los pulsos de encendido. Ningún otro sistema de representación moderno funciona de esta manera que yo sepa.

1
Códigos de barras? La barra y el espacio separan los dígitos y el ancho determina el valor.
Sopuli

@Sopuli está bien, así que en ese caso, la parte oscura del código de barras no refleja la luz, por lo que sería el estado "apagado" o "sin señal". Supongo que mi punto era que la codificación no siempre es simplemente dos estados de señal, sino que podría ser señal frente a ninguna señal, lo que parece extraño, excepto en casos reales, como el código Morse, los códigos de barras, el habla, etc. Las representaciones de computadora generalmente no desperdician espacio Al almacenar regiones de "sin señal", son más eficientes que los sistemas de señal física. En el caso físico, no estamos en libertad de "avanzar rápidamente" sobre los vacíos en el contenido, debemos esperarlos.

2

Quizás le interese saber que los rusos desarrollaron un chip que era ternario , en lugar de binario. Eso significa que cada símbolo podría tener los valores de -1, 0o 1. Por lo tanto, cada puerta física podría almacenar "tres" valores, en lugar de "dos".

Posibles aplicaciones futuras

Con la llegada de los componentes binarios producidos en masa para las computadoras, las computadoras ternarias han disminuido en importancia. Sin embargo, Donald Knuth argumenta que volverán a desarrollarse en el futuro para aprovechar la elegancia y la eficiencia de la lógica ternaria.

Cuando empiece a sospechar, puede haber una forma más eficiente de implementar un sistema de numeración base. (Aunque esta capacidad de expresar esto de manera más eficiente depende de nuestra capacidad de fabricar físicamente en el material). Resulta que la constante e, la base del registro natural (~ 2.71828), tiene la mejor economía de radix, seguida de 3, luego 2, entonces 4.

La economía de radix es la cantidad de números que puede representar frente a la cantidad de símbolos que necesita tomar para hacerlo.

Por ejemplo, el número matemático tres se representa como 3en la base 10, pero como 11en la base 2 (binario). La base 10 puede expresar números más grandes con menos símbolos que la lata binaria, pero la tabla de símbolos de la base 10 es 5 veces más grande (0 ... 9) que la tabla de símbolos de la base 2 (0, 1). La comparación del poder expresivo con el tamaño del conjunto de símbolos se denomina "economía de raíz" (radix es el número de la base, por ejemplo, 2 en binario o "base 2"). La pregunta natural que sigue es, ¿dónde quiero estar en términos de esta compensación? ¿Qué número debo adoptar como la raíz? ¿Puedo optimizar la compensación entre el poder expresivo y el tamaño del conjunto de símbolos?

Si mira el cuadro en el artículo de economía de radix en wikipedia, puede comparar las economías de varias bases. En nuestro ejemplo, la base 2 tiene una economía de radix de 1.0615, mientras que la base 10 tiene una economía de 1.5977. Cuanto menor sea el número, mejor, por lo que la base 2 es más eficiente que la base 10.

Su pregunta sobre la base 4 tiene una eficiencia de 1.0615, que es del mismo tamaño que la base 2 (o binaria), por lo que adoptarla sobre la base 2 solo le da exactamente el mismo tamaño de almacenamiento por número, en promedio.

Si se está preguntando, ¿hay un número ideal para adoptar como base? Este gráfico le muestra que, no es un número entero, sino la constante matemática e(~ 2.71828) que es la mejor, con una economía de 1.0. Esto significa que es lo más eficiente posible. Para cualquier conjunto de números, en promedio, base ele dará el mejor tamaño de representación, dada su tabla de símbolos. Es la mejor "inversión por tu dinero".

Entonces, si bien cree que su pregunta es quizás simple y básica, en realidad es sutilmente compleja y es un tema muy valioso a considerar al diseñar computadoras. Si pudiera diseñar una computadora discreta ideal, el uso de la base 4 ofrece el mismo trato, el mismo espacio para el costo, que el binario (base 2); el uso de base 3, o ternario, ofrece una mejor oferta sobre binario (y los rusos construyeron una computadora física y funcional con representación de base 3 en transistores); pero idealmente, usarías la base e. No sé si alguien ha construido una computadora física que funcione con base e, pero matemáticamente, ofrecería una mejor cantidad de espacio sobre binario y ternario; de hecho, la mejor oferta de todos los números reales.


Esto no parece siquiera intentar responder a la pregunta formulada, ¿tener 4 estados por "bit" en lugar de 2 significaría el doble del espacio de almacenamiento? Vea cómo responder
mosquito

@gnat Creo que el concepto de economía de radix aborda directamente la cantidad de datos que obtienes por símbolo. No solo responde el caso de 4, también responde el caso de cualquier número. Es la solución general.
user1936

1
Revisé dos veces el enlace de Wikipedia oculto bajo "resultados" y, francamente, todavía no veo cómo se relaciona con el espacio de almacenamiento
mosquito

2
@gnat He actualizado la respuesta. Esperemos que en este punto vea cómo al menos intenta responder la pregunta.
user1936

2

¿Creería que puedo codificar la suma total del conocimiento humano con una sola coincidencia?

Si codifico un bit en una sola coincidencia, los símbolos podrían verse así:

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Con suficientes partidos puedo decir cualquier cosa. Pero puedo decir el doble con la misma coincidencia si agrego dos símbolos más. Que podría verse así:

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

¡El doble de información con el mismo partido! ¿Bueno, por qué no? Bueno, ¿por qué parar? Gire cada símbolo 45 grados y lo duplicamos nuevamente. 30, 15, y así sucesivamente. ¡Pronto tendré suficientes símbolos para poder decir cualquier cosa con una sola coincidencia! Sin embargo, una vez que haga eso, tenemos un problema. ¿Qué dice este partido?

ingrese la descripción de la imagen aquí

¿Cómo puede estar seguro exactamente qué símbolo es ahora? ¿Cuánto tiempo necesitas para estar seguro? Ese es el problema. Cuantos más símbolos agregue, más esfuerzo le llevará distinguirlos.

¿Tener 4 estados por "bit" en lugar de 2 significaría el doble del espacio de almacenamiento?

Si estamos hablando por partido, entonces seguro. Pero, incluso si eso no disminuyó la velocidad de lectura de nuestro partido, ahora estamos ocupando más espacio en el mostrador de mi cocina. Siempre es algo


Esto es esencialmente cómo funcionan los esquemas de modulación de radio como Quadrature AM y Phase Modulation. Si quieres un poco de diversión, estudia cómo los vectores de fase giratorios representan dos tonos simultáneos en Single Sideband o FM.

2

Si un bit tuviera 4 estados en lugar de dos en un símbolo (bit), entonces sí, tendría el doble de memoria. Esto podría o no ocupar el doble de espacio, dependiendo de la tecnología utilizada.

Hay un ejemplo de la vida real que tiene frente a sus ojos todos los días: Ethernet (que no es memoria, pero es similar en la medida en que transmite datos) tiene, entre otros, el "Fast Ethernet" ordinario a 100 MBit 100BASE -TX, y tienes 1GbE ethernet.

Claramente, 1GbE requiere frecuencias 10 veces más altas que 100 MBit (ya que 100 MBit requiere una frecuencia 10 veces más alta que 10 MBit), es por eso que también necesita cables más caros. Obviamente.

Vaya ... eso no es cierto en absoluto .

Ethernet de 100 MBit transmite a través de dos pares de cables a 100 MHz, mientras que GbE transmite a 125 MHz a través de 4 pares de cables.

Espera, ¿entonces GbE es realmente solo 2 1/2 veces más rápido que Ethernet de 100 Mbit? ¿Solo obtengo 250 MBit / s?

No, también utiliza la codificación 5-PAM, que puede codificar 2,32 bits por pulso por par de cables, de los cuales 2 bits se utilizan como información real, y el resto hace que la señal sea más resistente al ruido. Gracias a esos bits fraccionales, 1000BASE-T también puede eliminar la codificación 8B10B.

Así que duplicó la cantidad de cables y aumentó ligeramente la frecuencia, ¡pero obtiene 10 veces más rendimiento!

Ahora bien, si usted pensó que esto es pura magia, vistazo a la forma digital de televisión por cable funciona , y si no está todavía convencido, mira en ADSL, que utiliza 32768-QAM para codificar 15 bits en un símbolo.
El mismo cable de cobre viejo, la misma banda de frecuencia, 15 veces más cosas que pasan

EDITAR:
Otro ejemplo muy obvio de la vida real que olvidé por completo (¡ya que aparentemente es demasiado obvio!) Que tienes frente a tus ojos todos los días es: pendrives USB.
Esos comúnmente usan memoria flash MLC . ¿Que es eso? Es un tipo de celda de memoria que almacena uno de los cuatro niveles de carga diferentes. Esa es la unidad más pequeña a la que puede acceder a nivel de hardware. Por lo tanto, podría decir que sus "bits" tienen 4 estados (no los tienen , en realidad solo saca dos bits en lugar de uno, y de todos modos solo puede leer sectores completos del dispositivo ... pero podría verlo posiblemente de esa manera).
El mismo número de celdas, pero duplica la memoria. Más barato, más pequeño, algo menos confiable, pero ... ante todo, más barato .


Se trata de utilizar completamente el ancho de banda disponible.

100BASE-TX solo usa un par por dirección, mientras que 1000BASE-T usa 4 pares por dirección (con cancelación de eco).
user253751

-5

Tener 4 símbolos por dígito en lugar de dos significa que puede almacenar el doble de información en un solo dígito. Sin embargo, a medida que aumenta la cantidad de dígitos, puede almacenar exponencialmente más información:

Cualquier n dígitos en la base 2 puede codificar 2 ^ n estados, mientras que la base 4 puede codificar 4 ^ n.


66
su declaración es: "4 símbolos / bit". Eso muestra una falta de comprensión. Son 4 estados / símbolo y con esos 4 estados / símbolo codificaría 2 bits.
Pieter B

44
@Kapep está mal. Está usando "cantidad de información" y "puede codificar N estados" indistintamente, lo cual no es del todo correcto. La información se mide en bits, no en el número de estados. Duplicar bits por símbolo agrega tanta información como duplicar el número de símbolos.
user5226582

3
Debe editar esto para aclarar que cuando dice "4 símbolos por dígito", quiere decir que cada lugar de dígitos tiene 4 valores posibles (o estados o "símbolos"). Cuando veo la frase "4 símbolos por dígito", lo primero que pienso es que escribir un dígito implica escribir 4 símbolos. Mientras lo hace, su respuesta contiene 9 palabras en mayúsculas incorrectas que puede solucionar ...
Tanner Swett

2
@TannerSwett Dado que estamos en tierra pedante, 'dígito' implica 10 valores, por lo que es divertido que normalmente llamemos a las tecnologías que usan binario 'digital'.
JimmyJames

2
(4^n) / (2^n) = 2^nlo que significa que puede representar exponencialmente ( 2^nveces) más estados, pero eso solo representa dos veces ( log2(4^n) / log2(2^n) = 2n / n = 2) más almacenamiento. Recuerda esostorage capacity in bits = log2(number of states)
zakinster
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.