¿Crees que las CPU solo trabajan con binario? No todo es 0 o 1

Asociamos el código en base 2 o binarios con los ordenadores que utilizamos a diario al tratar estos con señales digitales y no analógicas, no obstante en la historia de la informática ha habido procesadores con la capacidad de operar con números en base 10 como lo hacemos nosotros de manera natural. ¿Para qué se utiliza la computación decimal y cuáles son las características de este tipo de procesadores?

La computación decimal consiste en procesadores con la capacidad de operar cifras en base 10, y por tanto en el que sus valores se almacenan en significantes que van del 0 al 9 en vez de hacerlo del 0 al 1. Pese a que el sistema de representación binaria es suficientemente bueno para los quehaceres de la vida cotidiana no siempre es así y existen aplicaciones donde es necesario que un procesador sea capaz de operar en base 10.

¿Por qué es necesaria la computación decimal?

Computación financiera decimal

En el caso de la computación decimal ocurre lo mismo que con la computación científica donde se requieren unidades de coma flotante de 64 bits, ya que un uso menor puede dar resultados inexactos con consecuencias catastróficas tanto económicas como en el ámbito de la experimentación.

En la esfera del hardware cuanto más compleja es una representación en lo que a números de transistores para representarla también lo es para operar con ella. Es por ello que cuando hablamos de sistema de precisión específica se utilizan sistemas de representación numéricos más precisos en los ordenadores a la hora de representar y operar dichos valores con tal de tener la precisión necesaria.

Servicios finncieros computación decimal

Pues bien, hay una serie de aplicaciones, especialmente relacionadas con las finanzas, el comercio electrónico y algunos servicios web que tratan datos que requieren la precisión de una unidad que sea capaz de trabajar de manera directa con valores en decimal, ya sea en coma flotante o en enteros. Y habréis adivinado que debido a los mercados de estas mismas aplicaciones estamos hablando de sectores muy específicos que hacen uso de CPU para servidores.

¿Cuáles son las limitaciones del sistema binario? Si tomamos el sistema de coma flotante binario convencional veremos que por ejemplo si queremos representar algo tan simple como 0,1 en binario vamos a necesitar una fracción binaria recurrente que tiende hasta el infinito. En cambio si lo hacemos con un sistema decimal podemos representarlo como una simple fracción de 1/10. Pensad un momento que ocurriría en el mercado financiero si por falta de precisión los números no cuadrarán.

Binario y decimal en una misma CPU

CPU Render

La computación puramente decimal no se da en los procesadores a día de hoy, ni tan siquiera a escala de servidor. Esto es debido a que la base en la que opera un ordenador define muy bien la forma en la no solo sus unidades de ejecución procesan los datos, sino también como se descodifican las instrucciones y como se accede a la memoria RAM del sistema. Dicho de otra manera, estaríamos ante un sistema completamente distinto y cuyo código no sería para nada compatible.

Es por ello que por estándar se han asignado las siguientes normas para combinar el poder trabajar en binario y decimal:

  • La codificación de las instrucciones siempre se hace en binario
  • Los datos se almacenan en binario o decimal según sea necesario.
  • Cada tipo de dato en base o tipo, coma flotante o enteros, es operado por un tipo de unidad distinto.
  • El direccionamiento de la memoria se realiza siempre en binario, para evitar conflictos en el acceso y que la CPU tenga que trabajar con dos espacios distintos.

Esto se hace así para tener una unidad de control universal, encargada de la captación y descodificación de las instrucciones. Al fin y al cabo lo que nos interesa es poder operar con números en base 10 y no el cómo.

Sistema binario

Poco a poco el sistema binario empezó a estandarizarse en los procesadores de los ordenadores al ser el más simple y fácil de implementar, ya que requería una menor cantidad de transistores. Esto relegó el uso de la computación decimal a unidades especializadas en concreto diseñadas para operar de dicha manera o a simples instrucciones de conversión de datos de binario a decimal.

Dicho de otra manera, los ordenadores sí que pueden operar con números decimales e incluso conceptos más abstractos como los números complejos y los imaginarios. Claro está en que hacer un procesador que trabaje en binario requiere muchas menos complicaciones que realizar uno decimal desde cero. Y es que los sistemas mejor diseñados escalan desde lo más sencillo que no es otra cosa que trabajar en binario.

No disponible en tablets ni en PC

Finanzas Tablet

Las unidades decimales no han sido comunes en las CPU para PC que utilizamos en nuestro día a día, pero en una gran multitud de sectores se hace necesario el uso de unidades capaces de trabajar en base 10 a gran velocidad para realizar sus cálculos. En realidad los primeros ordenadores estaban pensados para trabajar con números decimales, ya que estos no eran digitales todavía, si no analógicos y eran las versiones electrónicas de las primeras calculadoras mecánicas.

Actualmente ninguna arquitectura de CPU tanto con ISA ARM como x86 tienen el hardware que les permita operar de manera nativa con números en base 10, pero incluyen algunas instrucciones que permiten convertir datos escritos en decimal a binario con una contrapartida y es la perdida de precisión de los datos, por lo que los procesadores x86 que utilizamos en nuestros PC no son válidos para ciertas aplicaciones y ciertos mercados.

¿Cómo es eso posible si a diario mucha gente en PC trabaja con aplicaciones de contabilidad por ejemplo? La explicación es que el nivel de precisión que requieren para trabajar no les hace falta una unidad que opere directamente con decimales y dichas aplicaciones hacen uso de las instrucciones de conversión en la ISA tanto del PC como de la tablet para hacer su trabajo.

IBM es la reina de la computación decimal

ibm power10

La empresa más veterana en el mundo del hardware no es Intel, sino IBM. Empresa histórica en el mundo de la informática quien ha tenido desde siempre grandes contratos con los grandes bancos de los Estados Unidos desde la década de los 50. Desde entonces sus mainframes con capacidad de operar con números en decimal llevaban los asientos contables y diversas operaciones bancarias y financieras, todas ellas operadas en base 10.

Es por ello que los procesadores pensados para uso empresarial a gran escala del gigante azul original incluyen unidades especializadas en computación decimal incluso a día de hoy. Sin ir más lejos los procesadores POWER en las últimas generaciones han incluido una unidad con la capacidad de trabajar con decimales, y sin salirnos de la International Business Machines tenemos sus System Z10 que integran una unidad de este tipo.

Por lo que el sistema bancario y financiero de Europa y los Estados Unidos se ha convertido en un mercado sumamente lucrativo para el gigante azul en las últimas décadas, un caso muy similar al de Fujitsu en japón que con sus procesadores de ISA SP ARC, inventada por Sun Microsystems, ha sido la reina durante años en los bancos del país nipón y lo sigue siendo aún a día de hoy.

3 Comentarios