John Von Neumann fue un matemático, hijo de un banquero judío, de origen húngaro. Fue considerado a los diez años como superdotado por sus profesores. Neumann se doctoró en matemáticas y obtuvo el titulo de ingeniería química. También asistió a clases impartidas por Albert Einstein.
John Von Neumann se caracterizó por participar en el Proyecto Manhattan tras el estallido de la Segunda Guerra Mundial desarrollando una bomba atómica. Se encargó del desarrollo del sistema de explosivos de la implosión de la bomba. También fue responsable del cálculo de la altura que debían explotar las bombas con el objetivo de maximizar la destrucción.
Los años que Neumann trabajó en el proyecto Manhattan junto a otras mentes tales como; Edward Teller, Leo Szilard, Eugene Wigner, Theodore von Kármá, entre otros, permitió un impulso a otras disciplinas como las ciencias de la computación. En el campo de la economía Neumann dio a conocer la teoría de los juegos y la teoría del equilibrio general para la economía junto a Oskar Morgenstren.
En el ámbito de las ciencias de la computación, el trabajo de Newman supuso un desarrollo de los ordenadores más complejos. Propuso la adopción del bit como unidad de la memoria de las computadoras y desarrolló el concepto de los bits de paridad para poder paliar la aparición de errores.
La gran contribución al desarrollo de la computación de Newman comenzó tras la propuesta de Alan Turing en 1936 de la máquina computadora universal o Máquina de Turing, un ordenador que utilizaba una memoria para almacenar datos y también las instrucciones a ejecutar. En 1944, Eckert comenzó escribir en sus especificaciones que se usaría una memoria direccionable para almacenar tanto los datos como el programa a ejecutar. A este proyecto se unió Neumann quien redactó el primer esbozo que describiese un computador First Draft of a Report on the EDVAC, proponiendo el concepto de programa almacenado.
Según el modelo de Neumann los distintos bloques funcionales que forman un ordenador deben estar siempre conectados entre sí, es decir, no hay que modificar el hardware a la hora de ejecutar un programa. La arquitectura constaba con 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. 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 (programas a ejecutar) y encargada de enviar órdenes a las componentes del procesador. La ALU es la responsable de realizar operaciones aritméticas (sumar, restas, entre otras) y lógicas (NOT, OR) con los datos recibidos.
- 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.
Un ordenador con arquitectura Von Neumann realiza los siguientes pasos:
1) Obtiene la siguiente instrucción desde la memoria en la dirección indicada por el contador de programa y la guarda en el registro de instrucción.
2) Aumenta el contador de programa en la longitud de la instrucción para apuntar a la siguiente.
3) Descodifica la instrucción mediante la unidad de control. Ésta se encarga de coordinar el resto de componentes del ordenador para realizar una función determinada.
4) Se ejecuta la instrucción. Ésta puede cambiar el valor del contador del programa, permitiendo así operaciones repetitivas. El contador puede cambiar también cuando se cumpla una cierta condición aritmética, haciendo que el ordenador pueda 'tomar decisiones', que pueden alcanzar cualquier grado de complejidad, mediante la aritmética y lógica anteriores.
5) Vuelve al paso N° 1.
- La unidad de control recupera datos e instrucciones de la misma manera de una memoria. El diseño y desarrollo de la Unidad de Control es simplificada, más barata y más rápida.
- Los datos de los dispositivos de entrada / salida y de la memoria se recuperan de la misma manera.
Las desventajas son:
- Las instrucciones solo se pueden llevar a cabo una por una y de forma secuencial.
- Riesgo de que una instrucción sea reescrita debido a un error en el programa.
0 comments:
Post a Comment