lunes, 21 de noviembre de 2016

Arquitectura de Neumann

La arquitectura de John Neumann

En el ámbito de las ciencias de la computación, el trabajo de von Neumann supuso una gran palanca para el desarrollo de computadoras más complejas y avanzadas. Propuso la adopción del bit como unidad de medida de la memoria de las computadoras y, además, desarrolló el concepto de los "bits de paridad" para poder paliar la aparición de errores, por ejemplo, por culpa de componentes no fiables.
El nombre de von Neumann se asocia, fundamentalmente, a dos aspectos de su carrera: el Proyecto Manhattan y su contribución al desarrollo de la computación. Como bien recoge el libro La Catedral de Turing, von Neumann siempre consideró sus teorías sobre computación por encima del desarrollo de la bomba atómica o la estrategia de disuasión nuclear:
"Estoy pensando en algo más importante que las bombas. Estoy pensando en computadoras".
Compañías como IBM o Standard Oil e instituciones como el MIT o la Universidad de Yale se peleaban por tenerle entre sus filas. IBM necesitaba a von Neumann para desarrollar sistemas que se pudieran implantar en las empresas, Standard Oil le requería para realizar estudios analíticos para localizar nuevos yacimientos de petróleo. Sin embargo, su carrera se centró en el mundo de los computadores, en ese momento con fines militares -la simulación de explosiones o el cálculo de la trayectoria de misiles-, pero con la visión como para crear un modelo estándar que funcionase en cualquier ámbito o aplicación: separar el software del hardware, crear un modelo de computador universal. 
John von Neumann es uno de los responsables de sentar los pilares sobre los que se apoyan los computadores actuales. En 1936, Alan Turing propuso la "máquina computadora universal" (conocida como "Máquina de Turing"), un computador que utilizaba una memoria para almacenar datos y también las instruccionesa ejecutar; un modelo teórico que también visualizaron J. Presper Eckert y John Mauchly en 1943 mientras trabajaban en el desarrollo del ENIAC.
En 1944, año en el que se empezó a esbozar el EDVAC como evolución del ENIAC, Eckert comenzó escribir en sus especificaciones que se usaría una memoria direccionable para almacenar tanto los datos como el programa a ejecutar. Dentro de su vinculación al Proyecto Manhattan, John von Neumann necesitaba realizar cálculos complejos y terminó vinculándose también al desarrollo del ENIAC y el EDVAC.
Dentro del grupo de trabajo del EDVAC, von Neumann se ofreció voluntario a redactar un primer esbozo que describiese el computador: "First Draft of a Report on the EDVAC", de 30 de junio de 1945. Fue un documento que comenzó a circular dentro de la comunidad científica como si hubiese sido desarrollado únicamente por von Neumann (obviando a Eckert y Mauchly) y del que salió el concepto de "arquitectura de von Neumann".
¿Y 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.




Esquema de la 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.
Gracias a este esquema que se implementó en el EDVAC, el programa a ejecutar se podía almacenar en memoria y, por tanto, no había que modificar conexiones en el sistema (a diferencia de lo que ocurría en el ENIAC). En una primera fase, el EDVAC disponía de una unidad de cinta magnética como entrada pero, posteriormente, se le añadió un sistema de tarjetas perforadas como dispositivo de entrada. Además, otra de las peculiaridades del EDVAC es que trabajaba con datos en binario, es decir, datos codificados en bits, tal y como había establecido von Neumann.

Aquí les dejo un enlace de un video tutorial de la explicación de la arquitectura de John Neuman:

No hay comentarios.:

Publicar un comentario