¿Cómo sería una CPU de base 10 teóricamente más rápida y más eficiente?

Usted preguntó: ” ¿Cómo sería en teoría una CPU de base 10 más rápida y más eficiente?

Realmente depende del problema que estés tratando de resolver y de lo que consideras que es realmente una “CPU de base 10”. El diablo está en los detalles.

En particular, si construye una CPU de base 10 a partir de la lógica binaria, ya comienza detrás de la curva. Una máquina Binary Coded Decimal (BCD) almacena dígitos decimales en paquetes de 4 bits. Esto le da 10 codificaciones válidas de cada 16. Los mainframes tempranos funcionaron de esta manera.

Hay codificaciones más eficientes, como lo que ofrece IEEE-754–2008 para coma flotante decimal. Cuando digo “más eficiente”, quiero decir “más eficiente que BCD”. Todavía no es tan eficiente como las representaciones nativas de base 2. Por ejemplo, el punto flotante decimal tiene una noción de ” representación canónica “, ya que hay múltiples codificaciones que representan el mismo valor. Eso sugiere espacio de codificación desperdiciado.

Ahora, en cualquier caso, comienzas detrás de la curva. Pero, ¿te quedas detrás de la curva?

Si en su mayoría está realizando aritmética decimal, con redondeo decimal, entonces tiene alguna ventaja tener una forma nativa de expresar eso en hardware. Los cálculos financieros realizados por los bancos a menudo suponen redondeo decimal. El hardware aritmético decimal acelerará esas operaciones.

Pero, eso solo se aplica a esos cálculos financieros. La aritmética de puntero y otra aritmética de enteros no le importa en absoluto una representación decimal debajo del capó. El único beneficio restante de una representación entera decimal (como BCD) es que es un poco más fácil de imprimir.

Si observa los procesadores de principios de la década de 1980, como el 6502, 8086 y 68000, todos estos procesadores ofrecieron aceleración de hardware para la aritmética BCD. Tenía cierto sentido, dado que la conversión de salida decimal todavía era bastante cara en relación con el resto de los cálculos que realizaban los procesadores.

En el hardware moderno, la fracción de tiempo que pasa en decimales para la pantalla apenas se registra como un blip en comparación con todas las demás instrucciones que vuelan a través de su computadora.


Nota: Solo cubrí las computadoras decimales implementadas en términos de lógica binaria arriba. Tal vez se pregunte: si de alguna manera lograra crear puertas lógicas en términos de 10 niveles de señal discreta, ofreciendo lógica radix-10, ¿eso ayudaría?

La noción de economía de radix captura la eficiencia de la representación numérica en una base particular. La economía de la raíz es el producto del número de dígitos requeridos para expresar un número por la base misma. Da cierta idea de la eficiencia de codificación o compacidad de una representación de radix particular.

Resulta que base- [math] e [/ math] es la raíz más eficiente, al menos teóricamente. Obviamente, no vamos a construir computadoras base- [matemáticas] e [/ matemáticas]. Base-2 es aproximadamente 6% menos eficiente, mientras que base-3 es solo aproximadamente 0.4% menos eficiente. Entonces, eso sugiere que binario y ternario son excelentes opciones para la representación numérica.

Decimal, por otro lado, es aproximadamente [matemática] 1.6 \ veces [/ matemática] más grande que lo ideal. Esa es una divergencia bastante grande, y coincide aproximadamente con la brecha de eficiencia que vimos con BCD arriba (solo 10 codificaciones válidas de cada 16).

Entonces, incluso entonces, el decimal también pierde en ese frente.

Una CPU de base 10 nunca sería mejor o más rápida. Siempre querrá que sea una potencia de 2, por lo que una base 2, base 4, base 8, base 16 estaría bien, sin embargo, efectivamente vuelve a ser esencialmente base 2, binario.

Sin embargo, la primera computadora electrónica estadounidense, ENIAC , sí procesó en decimal. Creo que todas las otras computadoras fabricadas después, se hicieron para procesar en la base 2, ya que tenía mucho más sentido, usando menos partes para hacer el mismo trabajo.

Por otro lado, puede tener una lógica de múltiples valores (o lógica de muchos valores). Imagínese si en lugar de 0 voltios y 5 voltios que representan 0 y 1, tuviera 0, 1.66, 3.33 y 5 voltios como 1 de 4 valores. Ahora tendría 2 bits representados, o base 4.

La memoria, como la memoria flash NAND, en realidad almacena datos de esa manera, ya que permite más datos utilizando el mismo hardware (con cierta pérdida de fiabilidad).

Hay otros lugares donde la lógica de valores múltiples tiene ventajas de costo o velocidad, pero en su mayor parte, es mucho más fácil el procesamiento en binario.

¿Más rápido y más eficiente? No. Hay beneficios al usar números de base 10, a lo que llegaré en un minuto, pero tratar de usar la lógica de “base 10” sería ridículo.

Es relativamente fácil hacer puertas lógicas que responden a señales de encendido / apagado que representan verdadero / falso o 1/0 como 0V para 0 / apagado / falso y algo de voltaje más alto (puede ser tan bajo como 0.45V ahora) para 1 / encendido / verdadero . Básicamente porque los transistores que solo necesitan estar encendidos o apagados son simples y, por lo tanto, fáciles de miniaturizar. A medida que los transistores se vuelven mejores y más pequeños, podemos reducir el voltaje para reducir el consumo de energía o mantenerlo alto para aumentar el rendimiento.

Intentar diseñar transistores que respondan de manera suficientemente diferente a 10 niveles de voltaje diferentes para que 10 valores de salida diferentes sean discriminados sería una locura. Incluso con solo encendido / apagado, la salida tarda bastante (bueno, picosegundos) en estabilizarse al voltaje correcto debido a varios efectos eléctricos no lineales que resultan de la miniaturización. Intentar obtener 10 niveles sería un desafío de diseño muy difícil y solo obtendría una reducción de área única de 6x como resultado en el mejor de los casos. Perderá mucho de eso debido a la complejidad del diseño. Para ponerlo en proporción, cada nuevo avance en la tecnología de procesos le da aproximadamente el doble, por lo que en 3 a 4 años obtendrá el mismo beneficio y lo obtendrá repetidamente.

Hay un caso de uso muy importante para los valores decimales en las computadoras, que es la contabilidad. Las personas sin experiencia tienden a usar números de coma flotante para valores monetarios. Esto está mal: perderá dinero y, en algunos casos de uso comercial, terminará violando la ley. Cuando necesita operar correctamente con valores monetarios, usa algo llamado decimal codificado en binario, donde 4 bits representan cada dígito decimal. Esto te da resultados correctos. Hay computadoras con unidades BCD especializadas, al igual que las máquinas de escritorio con unidades de punto flotante especializadas, para acelerar los cálculos BCD. Pero usan 3–4 compuertas binarias por operación, no denotan compuertas.

Matemáticamente, el binario se representa como 0s y 1s. Pero electrónicamente, el binario es + 1.5V y 0V. Pero aún más, incluso esos voltajes tienen ciertas tolerancias; el binario 1 puede estar en cualquier lugar entre 1.1V-1.6V; 0 binario puede tener una tolerancia entre 0V-0.6V. Por la simplicidad de esta respuesta, consideremos el binario 1 como 1.5V y el binario 0 como 0V.

Todas las puertas lógicas (AND, OR, NAND, NOR, XOR) que comprenden la CPU tienen dos entradas: 0 (0V) y 1 (1.5V). La salida es 0 (0V) o 1 (1.5V).

Entonces, si uno construyera una computadora de base 10 usando 1.5V, el primer obstáculo sería superar las tolerancias eléctricas ya que 0 = 0.0V; 1 = 0.15V; 2 = 0.3V, etc. Crear componentes electrónicos con ese tipo de tolerancias aumentaría drásticamente los costos.

Podría usar un sistema de mayor voltaje, pero eso requeriría más potencia y, por lo tanto, no cumple con su requisito de una CPU más eficiente.

Otro obstáculo es construir una CPU que use puertas lógicas con 10 entradas. Las puertas lógicas binarias de las CPU contemporáneas se basan en el álgebra booleana. Un sistema de base 10 requeriría un nuevo sistema de álgebra no booleana. Si bien en teoría esto es posible (y puede que ya se haya hecho por lo que sé), no creo que sea práctico.

El desarrollo de la CPU moderna tiene una historia realmente fascinante que vale la pena explorar si tienes inclinación. Muchos de los pioneros de la computación temprana incluyen a George Bool, Claude Shannon, Konrad Zuse, George Stibitz y muchos otros. Puede rastrear exactamente por qué binario era la opción preferida y lógica para las CPU.

**** La respuesta se ha editado para corregir los voltajes de la CPU. Gracias a Paul Sutton y Paul Parkinson por señalar que las CPU usan 1.5V, no 5V. ****

No absolutamente no. La única razón por la que Base 10 se utiliza en la informática es para el beneficio de la carne que está demasiado condicionada para la base 10 para comprender la salida binaria o hexadecimal. No ha habido computadoras decimales desde los días de las calculadoras de tubos nixie que usaban contadores de anillo de 10. El microprocesador puso fin a eso, y desde entonces todo ha sido implacablemente binario porque es más rápido y mucho más eficiente en hardware, incluso con la conversión de los resultados a la base 10 en la que muchas personas insisten por alguna razón.

Una calculadora de bolsillo de base 10

La serie de computadoras IBM System 360 tenía un conjunto completo de instrucciones Binary Coded Decimal (BCD) para calmar a los empresarios que estaban obsesionados con perder centavos por errores de redondeo (una preocupación totalmente infundada enraizada en la ignorancia matemática). Estoy bastante seguro de que el soporte BCD se transfirió al Sistema 370 y sistemas posteriores. A IBM no le importaba que BCD fuera ineficiente, porque era una característica relativamente única que ayudaba a mantener a muchas compañías vinculadas a la tradición efectivamente vinculadas a los sistemas de IBM.

A2A: Has supuesto incorrectamente que podría ser. La aritmética binaria es mucho más simple de implementar que gana fácilmente.

Se ha argumentado a favor de trinary, pero los intentos rusos en computadoras trinary no tuvieron realmente éxito.

A continuación se incluye información relevante adicional que escribí inicialmente en un hilo de comentarios que se ha colapsado. (No por mí, pero aparentemente otros han rechazado la persistencia confusa de OP). Pensé que sería útil incluirlo en el nivel superior.

En los años 60, había algunas computadoras decimales. Por ejemplo, el IBM 1620 (pequeño) y el IBM 7070 (grande). ¡Tales diseños han sido abandonados hace mucho tiempo porque eran ineficientes!

Si desea pensar en términos de aumentar la base numérica, vaya a hexadecimal. Resulta que eso puede ser percibido como una variante en binario y muchas máquinas modernas están pensadas en términos de hexadecimal. Sin embargo, es solo una forma de pensar. Los dígitos hexadecimales no se implementan como unidades independientes.

Ninguno. Se utilizan potencias de dos porque, como se señaló, las computadoras suelen ser binarias. Si cuenta el número de bits necesarios para expresar 10, encontrará que tres bits pueden expresar valores de 0 (cero) a siete, pero si agrega un bit adicional para que pueda abarcar el valor (decimal) diez, usted Descubriría que en binario ahora puede expresar un valor que oscila entre 0 y 15. En efecto, está desperdiciando esos cinco (o seis) valores adicionales. Definitivamente menos eficiente ya que simplemente estaría ignorando valores significativos por el bien de la computación en 10 bases.

Una computadora de base 10 definitivamente sería más lenta y menos eficiente. Hacer aritmética de base 10 requeriría una lógica adicional, lo que ralentizaría las señales y haría que la propagación a través del sumador básico, el bit de lógica más común, fuera más lento. Y lo mismo para la mayoría de las otras funciones. Estoy haciendo que los transistores adicionales consumirían energía y la harían menos eficiente.

La razón de la elección del binario es precisamente porque es la representación más simple y liviana, que por lo tanto puede ajustarse para ejecutarse más rápido. Cambiar a la base 10 es como poner un asiento para bebé, portabicicletas y portavasos en un automóvil de carreras.

No valdría la pena. El número de dígitos se reduce por un factor de cuatro. La “lentitud” del hardware actual es logarítmica en el número de dígitos.

Entonces, en el mejor de los casos, el mismo estilo de hardware es posible, obtienes una cantidad constante de aceleración.

Pero las puertas que use probablemente serán un factor constante más lento.

Así que cambias una cantidad constante de aceleración por un factor constante de desaceleración.

No es un buen trato.

No lo haría Ha sido probado y abandonado, de hecho. Binario es más eficiente.

More Interesting

¿Cuáles son algunos buenos juegos de tácticas / rpg-ish basadas en hex / grid para PC?

¿Dónde se encuentran las carpetas de 'Elementos enviados' y 'Bandeja de salida' de fax y escaneo de Windows 10?

¿Cuál es la diferencia entre una GPU dedicada y una GPU integrada?

¿Por qué los programas informáticos desarrollan fallas simplemente ejecutándose durante un cierto período de tiempo, si el hardware de la computadora permanece sin cambios y sin estropear? ¿Por qué comienzan a funcionar normalmente después de realizar una reinstalación?

¿Qué partes debo actualizar en mi computadora a continuación?

Cómo volver al Windows original de mi computadora portátil

¿Qué computadora portátil debo comprar si mi presupuesto es 60000 y el propósito es jugar?

¿Qué debo hacer dado que la pantalla de mi computadora portátil no se enciende cuando se presiona el botón de encendido, pero el ventilador y las luces de encendido funcionan?

¿Cuántos métodos de enfriamiento hay para enfriar las computadoras?

¿Es más probable que pueda obtener un virus informático si deja que su computadora funcione toda la noche?

¿En qué se parecen los datos de los sectores de un disco duro cuando las pistas son de diferentes tamaños?

¿Qué computadora portátil sería mejor para un estudiante, Dell Inspiron o Vostro?

¿Puede una computadora pensar en hacer algo sin hacerlo realmente?

¿Grabar datos en medios bluray puede causar la pérdida de calidad de datos, como video mp4 y formato de foto jpg?

Una de mis particiones en mi disco duro externo dejó de funcionar y ahora está sin formato, estoy tratando de recuperar los datos utilizando un software de recuperación de datos, haciendo una copia de seguridad de los archivos y luego restaurando la partición. ¿Alguien tiene una mejor solución?