computer-science ternary-representation

computer science - ¿Por qué la informática binaria y no ternaria?



computer-science ternary-representation (17)

¡El equivalente ternario del ''bit'' acaba de causar demasiado ultraje!

¿No es un objeto de tres estados capaz de almacenar más información y manejar valores más grandes? Sé que actualmente los procesadores usan redes masivas de puertas XOR y que deberían ser revisadas.

Como estamos en 64 bits (podemos representar 2 ^ 63 estados posibles), la generación ternary equivalente podría soportar el número con 30 registros de decenas más de lugares (3 ^ 63-2 ^ 63).

Me imagino que es tan fácil detectar la diferencia de potencial entre +1 y 0, ya que está entre -1 y 0.

¿Compensaría alguna competencia del hardware, consumo de energía o densidad de chips cualquier ganancia en almacenamiento y potencia de cálculo?


Bueno, para empezar, no hay una unidad de información más pequeña que un poco. operar en bits es la forma más básica y fundamental de tratar la información.

Tal vez una razón más fuerte es porque es mucho más fácil hacer componentes eléctricos que tengan dos estados estables, en lugar de tres.

Aparte: tus matemáticas están un poco bajas. hay aproximadamente 101.4 dígitos binarios en un número trinario de 64 dígitos. Explicación: el número trinario más grande de 64 dígitos es 3433683820292512484657849089280 (3 ^ 64-1). para representar esto en binario, requiere 102 bits: 101011010101101101010010101111100011110111100100110010001001111000110001111001011111101011110100000000

Esto es fácil de entender, log2 (3 ^ 64) es aproximadamente 101.4376


Claro, pero un ''bit'' ternario (un tet?) Sería más complicado, aún estaría almacenando la misma cantidad de información, solo en base3 en lugar de base2, y la potencia de los componentes de dos estados es la simplicidad. ¿Por qué no seguir adelante y hacer una base de 10 estados?

La informática binaria está relacionada con las puertas binarias AND, OR y NOT, su inmensa simplicidad y capacidad de combinarse en estructuras arbitrariamente complejas. Ellos son la piedra angular de, literalmente, todo el procesamiento que hace su computadora.

Si hubiera un caso serio para cambiar a ternario o decimal, entonces lo harían. No es un caso de ''lo intentaron así y simplemente se estancó''


Creo que es por dos razones (corríjanme si me equivoco): primero porque el valor de 0 y 1 no es realmente no-actual / actual o algo por el estilo. El ruido es bastante alto, y los componentes electrónicos deben ser capaces de distinguir que un valor que fluctúa de, digamos, 0.0 a 0.4 es cero, y de 0.7 a 1.2 es uno. Si agrega más niveles, básicamente está haciendo esta distinción más difícil.

Segundo: toda la lógica booleana dejaría de tener sentido de inmediato. Y dado que puede implementar la suma de las puertas booleanas, y de la suma, de cada otra operación matemática, es más agradable tener algo que se pueda mapear fácilmente en el uso práctico de las matemáticas. ¿Cuál sería la tabla de verdad booleana para un par arbitrario entre false / maybe / true?


Creo que ternario sería más eficiente. Simplemente nunca se hizo popular. Binary subió al escenario y ahora un cambio a ternary sería un cambio de todo lo que sabemos.


Creo que tiene más que ver con la programabilidad, las declaraciones condicionales y el uso eficiente y la funcionalidad de los transistores que cualquier otra cosa. Podría ser obvio que un IF anidado es verdadero si hay una corriente a través de un circuito, pero ¿cómo sabría un programa qué hacer si la solución se pudiera lograr mediante mil rutas diferentes? Es interesante con respecto a la IA, donde la memoria y el aprendizaje son mucho más importantes que el poder computacional bruto.



La respuesta de Screwball es correcta y corrige algunas de las declaraciones erróneas que se ofrecen aquí. Aquellos que respondieron acerca de los valores positivos fraccionarios pasaron completamente por alto el concepto del sistema ternario que se basa en 0, +1 y -1. Cuando los rusos construyeron por primera vez en la década de 1950, la competencia entre la URSS y EE. UU. Fue intensa. Sospecho que la política entre los dos tuvo mucho que ver con la popularidad eventual binaria de los Estados Unidos sobre el ternario de la URSS.

Por lo que he leído, hay algunas computadoras ternarias en uso. Moscú tiene algunos en uso en su universidad e IBM tiene algunos en sus laboratorios. Hay referencias a otros, pero no pude distinguir cuán serias son, o si solo son para experimentación o juego. Aparentemente son mucho menos costosos de construir y usan mucha menos energía para operar.


Mucha información errónea aquí. Binary tiene un simple interruptor de encendido / apagado. Trinary / Ternary puede usar uno de los 2 modos: Equilibrado aka -1, 0, +1, o 0, 1, 2 desbalanceado, pero no está simplemente encendido o apagado, o más correctamente, tiene 2 estados "encendidos".

Con la expansión de la fibra óptica y el hardware expansivo, ternary realmente nos llevaría a un estado mucho más expansivo y más rápido por un costo mucho más bajo. La codificación moderna todavía se puede usar (al igual que el software de 32 bits todavía se puede utilizar en hardware de 64 bits) en combinación con códigos ternarios más nuevos, al menos inicialmente. Solo necesito que el hardware inicial compruebe qué información viene, o el software para anunciar con anticipación si es un poco o un truco. El código podría enviarse a través de 3 piezas a la vez en lugar de las 2 modernas para la misma o menor potencia.

Con el hardware de fibra óptica, en lugar del moderno proceso binario on / off, estaría determinado por 0 = off y los otros 2 conmutadores como polarizaciones ortogonales de luz. En cuanto a la seguridad, esto podría hacerse mucho más seguro para el individuo, ya que cada PC o incluso el usuario está configurado para una "especificación" de polarización específica que solo se enviará / recibirá entre el usuario y el destino. Lo mismo ocurriría con las "puertas" con otro hardware. No necesitarían ser más grandes, solo tienen la opción de 3 posibilidades en lugar de 2.

Incluso ha habido algunas teorías e incluso, posiblemente, el inicio de algunas pruebas sobre el efecto Josephson que permitirían las células de memoria ternarias, utilizando corrientes superconductoras circulantes, ya sea en sentido horario, antihorario o apagado.

Cuando se compara directamente, Ternary es la base entera con la economía de radix más alta, seguido de cerca por binario y cuaternario. Incluso algunos sistemas modernos usan un tipo de lógica ternaria, también conocida como SQL, que implementa la lógica ternaria como un medio para manejar el contenido de campo NULL. SQL usa NULL para representar los datos faltantes en una base de datos. Si un campo no contiene ningún valor definido, SQL supone que esto significa que existe un valor real, pero que el valor no está actualmente registrado en la base de datos. Tenga en cuenta que un valor que falta no es lo mismo que un valor numérico de cero o un valor de cadena de longitud cero. Al comparar cualquier cosa con NULL, incluso con otra NULL, se obtiene un estado de verdad DESCONOCIDO. Por ejemplo, la expresión SQL "City = ''Paris''" se resuelve como FALSE para un registro con "Chicago" en el campo City, pero se resuelve en UNKNOWN para un registro con un campo NULL City. En otras palabras, para SQL, un campo indefinido representa potencialmente cualquier valor posible: una ciudad faltante podría o no representar a París. Aquí es donde se usa la lógica trinaria con los sistemas binarios modernos, aunque crudos.


Mucho de eso tiene que ver, estoy bastante seguro, con la comprobación de errores de las señales digitales. Por ejemplo, en la computación cuántica esta tarea es casi imposible, pero no imposible, para lograr el principio de no clonación, pero también debido al hecho de que hay un mayor número de estados. Para dos estados, el proceso de verificación de errores no es trivial, pero es relativamente fácil. Para tres estados, la comprobación de errores se vuelve infinitamente más difícil. Esta es también la razón por la cual las computadoras analógicas con una cantidad casi infinita de estados fueron descartadas.

Si está interesado en la computación cuántica, busque en el empaque de esferas y en la verificación de errores cuánticos, algunas cosas bastante pulcras allí.


Mucho de esto tiene que ver con el hecho de que, en última instancia, los bits se representan como impulsos eléctricos, y es más fácil construir hardware que simplemente diferencie entre "cargado" y "sin carga", y para detectar fácilmente las transiciones entre estados. Un sistema que utiliza tres estados tiene que ser un poco más exacto para diferenciar entre "cargado", "parcialmente cargado" y "sin cargo". Además de eso, el estado "cargado" no es constante en la electrónica: la energía comienza a "sangrar" eventualmente, por lo que un estado "cargado" varía en el "nivel" de energía real. En un sistema de 3 estados, esto debería tenerse en cuenta también.


Otro obstáculo importante es que hay un número mucho mayor de operaciones lógicas que deberían definirse. El número de operadores se encuentra mediante la fórmula b ^ (b ^ i) donde b es la base yi es el número de entradas. Para un sistema binario de dos entradas esto funciona con 16 posibles operadores. No todo esto generalmente se implementa en puertas y algunas puertas cubren más de una condición, sin embargo, todas pueden implementarse con tres o menos de las puertas estándar. Para un sistema ternario de dos entradas, este número es mucho mayor en 19683. Si bien varias de estas puertas serían similares entre sí, en última instancia, la capacidad de diseñar circuitos básicos manualmente sería casi imposible. Mientras que incluso un estudiante de primer año de ingeniería puede diseñar circuitos binarios básicos en su cabeza.


Para que un circuito funcione en cualquier cosa que no sea binaria, debe definir cómo se representarán los otros estados. Ha propuesto un sistema de -1, 0 y +1, pero los transistores no funcionan de esa manera, les gusta que su voltaje o corriente vayan en una sola dirección. Para hacer un bit de 3 estados tomaría 2 transistores, pero podría hacer 2 bits binarios de los mismos transistores y tener 4 estados en lugar de 3. Binario es simplemente más práctico en el nivel bajo.

Si trataste de establecer umbrales en el circuito y usas 0, +1, +2 en su lugar, te encuentras con un conjunto diferente de problemas. No sé lo suficiente como para entrar en detalles, pero para los circuitos lógicos es más problemático de lo que vale, especialmente cuando la industria ya está completamente dedicada al binario.

Hay un área donde se usan múltiples niveles para obtener más de 2 estados por bit: memorias flash MLC . Incluso allí, la cantidad de niveles será una potencia de 2, de modo que la salida se pueda convertir fácilmente en binaria para que la use el resto del sistema.


Por supuesto, podríamos mantener más datos por bit, al igual que nuestro sistema de números decimales puede contener muchos más datos en un solo dígito.

Pero eso también aumenta la complejidad. Binary se comporta muy bien en muchos casos, por lo que es notablemente fácil de manipular. La lógica para un sumador binario es mucho más simple que una para los números ternarios (o para el caso, los números decimales).

Por arte de magia no podrías almacenar o procesar más información. El hardware tendría que ser mucho más grande y más complejo para compensar con creces la mayor capacidad.


Si usamos 3 estados, entonces el problema principal que surge debido a esto es

  1. Si usamos una señal unipolar, el margen de ruido se reducirá, lo que aumentará la tasa de error de bit.
  2. Para que la señal unipolar mantenga constante el margen de ruido, tenemos que aumentar la fuente de alimentación y, por lo tanto, aumentará el consumo de energía.
  3. Si usamos una señal bipolar, la oscilación total de la señal aumentará, aumentando las pérdidas.
  4. Se deberá agregar una capa adicional en PCB multicapa para tener en cuenta la oscilación negativa en las señales bipolares.

Espero ser convincente


También hay teorías que sugieren que las fibras ópticas podrían usar frecuencias de luz (es decir, color) para diferenciar estados, permitiendo así un número casi infinito (dependiendo de la resolución de la unidad de detección) de las posibilidades básicas.

Las puertas lógicas definitivamente son válidas para cualquier base pero usemos trinary para un ejemplo:

Para una puerta XOR trinaria, podría ser exclusiva para uno (o cualquiera) de los tres estados que está comparando O uno de los otros tres estados. También podría unir dos de los tres estados para obtener una salida binaria. Las posibilidades aumentan literalmente exponencialmente. Por supuesto, esto requeriría hardware y software más complejos, pero la complejidad debería disminuir el tamaño y, lo que es más importante, la potencia (leer calor). Incluso se habla de usar trinary en un sistema de nano-computación donde hay un "golpe", "agujero" microscópico o "sin cambio" para representar los tres estados.

En este momento, estamos en una especie de problema de tipo QWERTY. Qwerty fue diseñado para ser ineficiente debido a un problema con la mecánica de tipeo que ya no existe, pero todos los que usan teclados hoy aprendieron a usar el sistema qwerty y nadie quiere cambiarlo. Las bases trinarias y superiores superarán algún día este problema cuando alcancemos las limitaciones físicas de la informática binaria. Tal vez no por otros veinte años, pero todos sabemos que no podemos continuar doblando nuestra capacidad cada año y medio para siempre.


  • Es mucho más difícil construir componentes que usen más de dos estados / niveles / lo que sea. Por ejemplo, los transistores utilizados en lógica están cerrados y no conducen en absoluto, o bien abiertos. Tenerlos medio abiertos requeriría mucha más precisión y usaría energía extra. Sin embargo, a veces se usan más estados para empaquetar más datos, pero rara vez (por ejemplo, memoria flash NAND moderna, modulación en módems).

  • Si usa más de dos estados, necesita ser compatible con el binario, porque el resto del mundo lo usa. Tres están fuera porque la conversión a binario requeriría una costosa multiplicación o división con el resto. En lugar de eso, vas directamente a cuatro o a una mayor potencia de dos.

Estas son razones prácticas por las que no se hace, pero matemáticamente es perfectamente posible construir una computadora con lógica ternaria.