¿Por qué la memoria de la computadora solo tiene dos estados?

3

¿Por qué las computadoras usan binario, en el sentido de por qué usan bits que solo pueden representar un estado alto y uno bajo? Estaba leyendo "Lógica y fundamentos de diseño de computadora" (por M. Morris Mano, Charles R. Kime (autor) y Tom Martin) y no entiendo su razón:

Considere un sistema con 10 valores que representan los dígitos decimales. En   Un sistema de este tipo, los voltajes disponibles, por ejemplo, de 0 a 1,0 voltios, podrían ser   Dividido en 10 rangos, cada uno de longitud 0,1 voltios. Un circuito seria   Proporcionar una tensión de salida dentro de cada uno de estos 10 rangos. Una entrada de   un circuito tendría que determinar en cuál de los 10 rangos se aplicó un   la tensión se encuentra. Si queremos permitir ruido en los voltajes, entonces   el voltaje de salida se puede permitir que alcance menos de 0.05 voltios   para una representación de dígitos dada, y los límites entre las entradas podrían   varían por menos de 0.05 voltios. Esto requeriría complejos y costosos.   circuitos electrónicos, y la salida todavía podría ser perturbada por pequeños   Voltajes de “ruido” o pequeñas variaciones en los circuitos que ocurren durante   Su fabricación o uso.

Entonces, si fuera posible detectar un cambio de 0.05v con precisión y proteger contra el ruido, ¿usaríamos computadoras con 10 estados? En caso afirmativo, ¿es solo cuestión de inventar un equipo que pueda detectar un cambio de 0.05v? ¿Por qué no simplemente aumentar la escala? por ejemplo, haga el rango de 0 a 50 voltios y tenga un estado cada múltiplo de 5 (por ejemplo, 0,5,10,15, ..., 50) y permita un +/- 2 V para el ruido?

Celeritas
fuente
2
En realidad, había computadoras decimales en el pasado. También hubo analógicas, y las que utilizaron los flujos de agua para el cálculo. Me gustaría señalar que también hay dispositivos que utilizan 3 niveles de voltaje.
Journeyman Geek
Había "computadoras decimales" (y aún lo son: la mayoría de las calculadoras de bolsillo), pero como señalé en mi respuesta, todavía usaban fundamentalmente circuitos binarios, no diez niveles de señales analógicas diferentes. Utilizaron 10 bits en una disposición de un solo uno a la vez (un contador de anillo) o utilizaron BCD u otra codificación para almacenar un dígito decimal en cada conjunto de cuatro o cinco bits. Las computadoras analógicas ciertamente existen pero son cosas completamente diferentes. En cuanto a "3 niveles de voltaje", el tercero es más a menudo un "tri-estado" que significa "No estoy afirmando un nivel de salida en este momento".
Jamie Hanrahan
5
La respuesta fundamental es la siguiente: con solo dos estados, no se necesita precisión. Mientras suba el voltaje lo suficiente, estará en un estado y mientras lo reduzca lo suficiente, estará en el otro. La ausencia de cualquier necesidad de precisión permite alta densidad, alta eficiencia y alta velocidad. No hay ningún beneficio en tener más estados que valga ese alto costo.
David Schwartz
No puedo creer que una pregunta tan mala haya recibido toda esta atención: Así que en el futuro .. , no llamas a esto principalmente basado en la opinión ?
MariusMatutiae
2
@MariusMatutiae ¿Tal vez sea un poco basado en opiniones, pero principalmente? No. Las comparaciones de la complejidad del circuito, la inmunidad al ruido, la velocidad y el consumo de energía no dan como resultado "opiniones". Si fuera el caso de que la lógica binaria perdiera en algunas comparaciones y ganara en otras, entonces podría decirse que era una opinión sobre qué "victorias" eran más importantes. Pero la lógica binaria gana en todo . Eso no es una opinión, es un hecho sólido de ingeniería.
Jamie Hanrahan

Respuestas:

12

La razón subyacente es: es más fácil construir una lógica de dos estados, y el 99% de las veces, algo más complicado no ofrece ninguna ventaja práctica.

De hecho, es lejos es más fácil (es decir, más pequeño, más barato y más confiable) construir cuatro unidades de memoria, cada una con dos estados (que se pueden usar para almacenar un dígito decimal en notación BCD) que construir una sola unidad de memoria que pueda almacenar y leer Fuera de 10 estados.

Cualquier futura mejora tecnológica podría mejorar la memoria 1 de 10, sí. Pero, los mismos desarrollos tecnológicos también podrían aplicarse a los circuitos binarios, haciéndolos más pequeños, más confiables y usando menos energía. Los circuitos binarios mejorarán más rápido que los circuitos de uno de diez niveles de voltaje, porque los circuitos binarios realizan un trabajo fundamentalmente más simple. Así que los circuitos de uno de diez pueden Nunca alcanzar.

El uso de voltajes más altos no es un arranque. Aumentarás el consumo de energía; y cuanto más altos son los voltajes en sus líneas de señal, más ruido emiten (por lo que es más probable que corrompan otras señales). De hecho, actualmente estamos ejecutando trazas de señal tan cerca unas de otras que a 50 voltios tendrías que preocuparte por el arco eléctrico, ¡no solo por el acoplamiento capacitivo! La tendencia en las CPU modernas es usar voltajes más bajos y más bajos, no más altos.

Además, la codificación binaria, aunque parece extraño en el primer encuentro, es extremadamente conveniente de muchas maneras. Un circuito sumador binario es un diseño mucho más simple (y más confiable) que un sumador que usaría diferentes niveles de voltaje, como se describe. (Y ni siquiera quiero pensar en cómo harías la multiplicación, la división o el punto flotante). Además, necesitas la lógica digital binaria para implementar el resto del procesador de la computadora de todos modos.

El hecho de que los humanos prefieran tratar con computadoras que usan números decimales es casi irrelevante: la conversión entre binario y decimal es un bit trivial de código.

Vale la pena señalar que hubo algunas computadoras muy tempranas que almacenaron números como dígitos decimales. Pero no lo hicieron con niveles de voltaje variables. En su lugar, utilizaron circuitos llamados "contadores de anillo" que, en efecto, tenían diez bits de memoria configurados de modo que solo uno de los diez podría ser "1" a la vez. (Busque "dekatron".)

Posteriormente hubo computadoras "decimales" como la IBM 1401 y la IBM 1620, pero nuevamente, todas utilizaron fundamentalmente almacenamiento binario. Los bits solo se utilizaron para representar dígitos decimales de varias maneras. p.ej. el 1401 utilizó "decimal codificado en binario" en el que se utilizó un conjunto de cuatro bits para codificar cada dígito decimal. Computadoras como esta tuvieron mucho éxito en su tiempo, y la mayoría de las calculadoras todavía funcionan de esta manera.

En resumen, aunque la representación decimal parece tener más sentido, eso es realmente porque eso es lo que nosotros, como civilización, estamos acostumbrados. La representación binaria tiene más sentido para los circuitos de computadoras por cada medida de ingeniería. (Y de todos modos, si hubiéramos sido un poco más inteligentes, habríamos crecido usando nuestros dedos para contar en binario, y podríamos contar no solo a 10 sino a 1023! :))

Jamie Hanrahan
fuente
Sí, el único 'pro' que podría haber sido sería aumentar el ancho de banda ya que almacenar 8 valores por posición aumentaría el ancho de banda x4.
Ignacio Soler Garcia
3
De hecho, el ancho de banda se reduciría, ya que tan pronto como acceda a una representación de datos más compleja en sus cables de señal, se volverán mucho más sensibles al ruido y tendrá que disminuir la velocidad de transmisión.
Art Gertner
1
@IgnacioSolerGarcia Lo siento, pero no. La tasa de bits utilizable de un canal ruidoso (no existe un canal no ruidoso) depende de la relación señal / ruido. Si, utilizando el mismo rango de voltaje, envía uno de los ocho valores en lugar de uno de los dos (esencialmente el envío de tres bits a la vez en lugar de uno), su inmunidad al ruido se vuelve mucho más pequeño, lo que resulta en una menor SNR. Entonces, lo que gana en la transición de bits por señal se pierde en la confiabilidad de la transmisión; consulte el teorema de Shannon-Hartley. (edición-agregado: smc publicado más rápido porque publicó menos, pero ambos estamos diciendo lo mismo. :)
Jamie Hanrahan
6

El artículo que ha citado responde muy bien a su pregunta, solo debe reflexionar un poco más.

Las razones principales para usar la representación binaria para el almacenamiento y transmisión de datos electrónicos es el nivel de complejidad de los circuitos y los márgenes de ruido.

Otra razón importante es que para el almacenamiento de datos, el binario es el denominador común más bajo. Puede representar eficientemente cualquier dato en binario sin ninguna sobrecarga. El uso de más estados que 2 a menudo resultaría en la sobrecarga al intentar representar datos muy simples (por ejemplo, binarios)

En cuanto a la última parte de su pregunta, debo recordarle que a medida que avanza la industria de componentes electrónicos, avanzamos hacia voltajes más bajos, no más altos. Tener 50 voltios en la memoria principal de su computadora Los pines IO serían muy imprácticos, peligrosos y costosos. La memoria de la computadora moderna usualmente usa algo alrededor de 1.5V.

Recomiendo la siguiente lectura:

Art Gertner
fuente
no refuta el punto de que podría usar un rango de voltaje mayor ...
Celeritas
Bueno, un rango de voltaje mayor resultará en un voltaje máximo mayor, y esto es altamente poco práctico. He abordado esto en el cuarto párrafo.
Art Gertner
Mayor voltaje es más consumo. Piense en computadoras portátiles y teléfonos móviles.
user119591
@ user119591: no necesariamente, tengo un contador geiger que funciona durante meses con una pequeña batería de litio y funciona con 500V. El problema con los voltajes más altos es realmente la velocidad de giro al cambiar, y esa es también la razón por la que usamos voltajes más bajos en estos días. Para cada conmutación de un transistor en una computadora moderna, necesitamos cargar algo de capacitancia, y cuanto mayor sea el voltaje para cargarlo, más amperios debemos proporcionar para hacerlo al mismo tiempo. Esto conduce a limitaciones físicas.
PlasmaHH
2
@Celeritas, cambiar el voltaje más alto siempre es más lento que el voltaje más bajo. De hecho, las altas frecuencias operativas logradas en los procesadores modernos se logran en gran medida al reducir el voltaje. Para una mejor comprensión de la electrodinámica básica, recomiendo la siguiente lectura: allaboutcircuits.com/textbook/direct-current/chpt-1/…
Art Gertner
1

La memoria se basa en transistores, que aunque son de naturaleza analógica, se utilizan de forma binaria y se acoplan a una señal de reloj (el MHz). La memoria más simple que se puede tener es un flip-flop J / K (Q / Q '). Esta disposición de 4 puertas NAND simples es el bit fundamental del almacenamiento digital: es lo que almacena un 1 o un 0. El flip-flop no tiene capacidad para almacenar valores no digitales o múltiples.

Otro aspecto es la señal de reloj, que proporciona el bloqueo de valores. Hay un momento en que los valores cambian que la salida es indeterminada. La señal de reloj se elige para que sea un poco más larga que el tiempo que tarda la salida en establecerse. Esto luego encierra los valores y el cálculo continúa. Cuando los valores no se ajustan a tiempo para el pulso del reloj, el valor incorrecto se transfiere y la computadora falla.

user9170
fuente