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 )
Respuestas:
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!)
fuente
Una celda de memoria cuaternaria puede almacenar exactamente tanta información como 2 celdas de memoria binaria:
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.
fuente
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.
fuente
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.
fuente
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
,0
o1
. Por lo tanto, cada puerta física podría almacenar "tres" valores, en lugar de "dos".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
3
en la base 10, pero como11
en 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, basee
le 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.
fuente
¿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í:
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í:
¡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?
¿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.
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
fuente
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 .
fuente
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.
fuente
(4^n) / (2^n) = 2^n
lo que significa que puede representar exponencialmente (2^n
veces) 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)