viernes, 7 de octubre de 2016

JOHN VON NEUMAN - LA CALCULADORA HUMANA

Mucho se ha hablado sobre el origen de la computación y de quien o quienes fueron los padres de esta ciencia. Son incalculables los nombres de científicos que dedicaron sus vidas a esta disciplina. Sus estudios, investigaciones y trabajos han sido y serán la base de lo que hoy se conoce como informática, de eso nadie tiene duda a día de hoy.

Uno de estos renombrados científicos fue John Von Neuman, matemático húngaro-estadounidense. Sus trabajos se centraban en física cuántica, análisis funcional, teoría de conjuntos, teoría de juegos, ciencia de la computación, economía, análisis numérico, cibernética, hidrodinámica, estadística y muchos otros campos relacionados entre sí, pero ¿quién fue en verdad Von Neuman? ¿en realidad sus investigaciones fueron aportaciones importantes para este campo? La historia responde que sí.

John Von Neuman nació en Budapesst el 28 de diciembre de 1903. Su nombre verdadero era Margittai Neumann Janos. Desde pequeño fue un niño prodigio, por su impresionante memoria fotografía y por su habilidad con los idiomas. Con su padre solía bromear en griego clásico. A los 10 años ya destaca en matemáticas, en 1925 se  licenció en química y a los 23 ya era doctorado en matemáticas.

Resultado de imagen de von neumann

Todo ello hizo que al final de los años 40 su programa atómico se convirtiera en el soporte básico de muchas investigaciones científicas, lo que provocó a mediados de los años 50 que fuera ratificado como uno de los cinco comisarios de la Comisión de Energía Atómica, ya que trabajo en el desarrollo de la bomba atómica de EEUU para la 2ª GM.

Uno de sus colegas de profesión Herman Goldstine lo recuerda de esta manera:

"Afortunadamente, von Neumann era una persona cálida y amable que procuraba que la gente no estuviese tensa en su presencia. La conversación se centró rápidamente en mi trabajo. Cuando le comenté que estaba participando en el desarrollo de una computadora electrónica capaz de realizar 333 multiplicaciones por segundo, la atmósfera de nuestra conversación pasó de un relajado buen humor a una más propia del examen oral para un doctorado en matemáticas. Poco después, ambos fuimos a Filadelfia para que von Neumann pudiese conocer el ENIAC."

La arquitectura de von Neumann

John von Neuman es uno de los responsables de sentar los pilares sobre los que se apoyan los computadores actuales. En 1936,  Alan Turing (compañero también de profesión) propuso la “máquina computadora universal”. Von Neuman se ofreció voluntaria para redactor un primer esbozo que describiese el computador, y de aquel trabajo salió el concepto de “arquitectura de Von Neuman?

Pero ¿en qué consiste la arquitectura de von Neumann? Según el modelo de von Neumann, los distintos bloques funcionales que conforman una computadora deben estar siempre conectados entre sí; dicho de otra forma, no hay que modificar el hardware o su configuración a la hora de ejecutar un programa. Con esta idea de partida, la arquitectura constaba de los siguientes bloques funcionales:

  • Unidad central de proceso (CPU), núcleo central del computador y encargado de realizar las operaciones básicas y de gestionar el funcionamiento del resto de componentes.
  • Memoria principal, lugar en el que se almacenan tanto datos como instrucciones.
  • Buses, es decir, el conexionado que permite la comunicación entre los distintos bloques funcionales del sistema.
  • Periféricos, los elementos que se encargan de tomar datos (teclado), mostrarlos en alguna salida (un monitor) o comunicarse con otros sistemas.

Si lo pensamos un momento, todos los bloques funcionales que forman la arquitectura de von Neumann nos sonarán familiares: la CPU como el procesador de nuestro PC, la memoria principal como la memoria RAM y los periféricos como nuestro monitor o nuestro teclado.


Resultado de imagen de arquitectura von neumann


La CPU, a su vez, está formada por dos bloques: la unidad de control y la ALU (unidad aritmético-lógica). La unidad de control es la encargada de leer las instrucciones que hay en la memoria (es decir, el programa a ejecutar) y se encarga de enviar las órdenes a los componentes del procesador para así ejecutar las instrucciones que marca el programa (decodificando las instrucciones y enviando las órdenes necesarias al resto de componentes del procesador). Para realizar esta función, la unidad de control cuenta con un "contador de programa" que, secuencialmente, recorre las distintas posiciones de memoria y va recopilando los datos e instrucciones. Por otro lado, la unidad aritmético-lógica (ALU) es la responsable de realizar operaciones aritméticas (sumas, restas...) y lógicas (NOT, AND, OR, XOR...) con los datos recibidos.

La CPU, a su vez, está formada por dos bloques: la unidad de control y la ALU (unidad aritmético-lógica). La unidad de control es la encargada de leer las instrucciones que hay en la memoria (es decir, el programa a ejecutar) y se encarga de enviar las órdenes a los componentes del procesador para así ejecutar las instrucciones que marca el programa (decodificando las instrucciones y enviando las órdenes necesarias al resto de componentes del procesador). Para realizar esta función, la unidad de control cuenta con un "contador de programa" que, secuencialmente, recorre las distintas posiciones de memoria y va recopilando los datos e instrucciones. Por otro lado, la unidad aritmético-lógica (ALU) es la responsable de realizar operaciones aritméticas (sumas, restas...) y lógicas (NOT, AND, OR, XOR...) con los datos recibidos.
Resultado de imagen de alu

Otros dos conceptos que hay que de resaltar en la arquitectura de Von Neuman son los registros en la CPU y los buses del ordenador. 

Los registros son memorias de alta velocidad y poca capacidad, integrada en el microprocesador, que perite guardar transitoriamente y acceder a valores muy usados, en principios en operaciones matemáticas. Existen muchos tipos de registros: de datos, memoria, propósito general, como flotante, constante y propósito especifico. 

En cuanto a los buses del ordenador o canal decir que es un sistema digital que transfiere datos entre los componentes de una computadora o entre varias computadoras. Está formado por cables o pistas en un circuito impreso, dispositivos como registros y condensadores además de circuitos integrados.

Se pueden distinguir tres tipos de buses:
-       Bus de datos o bidireccional. Transporta datos de la memoria principal y de las unidades de entrada-salida.
-      Bus de dirección o unidireccional. Transporta las direcciones de la unidad de control a la memoria principal o a los periféricos
-     Bus de control o bidireccional. Transporta las señales de control o microórdenes generadas por la unidad de control.


Resultado de imagen de buses de ordenador


Replicantes

Es evidente que von Neumann es conocido por su arquitectura, pero existe otra facete de su trabajo relacionada con el mundo de la robótica y el concepto de “replicante”. Conocida como MAQUINA DE VON NEUMANN, este concepto teórica dibujaba la posibilidad de crear maquinas que fuesen capaces de autoreplicarse: unas máquinas que pudiera recoger materias primas de su entorno y, además de recopilarlas para su utilización (por ejemplo, en el ámbito de la minería), pudieran ser procesadas por las propias máquinas para construir réplicas de sí mismas.

El concepto, que tiene cierta similitud a los "replicantes" de la serie de ciencia-ficción Stargate SG-1, estaba pensado para trabajos repetitivos como, por ejemplo, la extracción de mineral y se apoyaba en la replicación para que, de manera indefinida y exponencial, se pudiese aumentar el rendimiento de explotación gracias a la escalabilidad horizontal de la maquinaria (crecen las máquinas y, cada una, se va replicando).

Las máquinas de von Neumann estaban definidas en base a 8 componentes básicos y cuatro elementos lógicos que, además, no violaban ninguna ley física. Por tanto, la teoría de von Neumann está apoyada en principios que podrían ser viables.

Tanto es así, que pasados los años, conocemos estructuras que son capaces de replicarse de manera autónoma. Los virus, por ejemplo, son capaces de replicarse y extenderse de ordenador en ordenador y, además, en el ámbito de la impresión 3D, proyectos como RepRap parten de la base de la auto-replicación para construir la propia impresora.


No hay comentarios:

Publicar un comentario