INTRODUCCIÓN
El hombre en
su interminable afán por facilitarse la vida, hace que su genio inventor
diseñe artefactos, máquinas y sistemas que
efectúen cálculos y realicen labores que parecen imposibles. La automatización consiste
en reemplazar al hombre por una máquina para ejecución de una tarea, y se ha
venido desarrollando casi a la par con la historia de la
humanidad.
Dentro de estas máquinas creadas
por el
hombre, tenemos al computador que
es un dispositivo con él cual se pueden realizar tareas muy diversas, cargando
distintos programas en la memoria para
que los ejecute el procesador.
Buscando siempre optimizar los procesos,
ganar tiempo,
hacerlo más fácil de usar y simplificar las tareas rutinarias.
Las computadoras está
formada por una estructura que
data de los años 40 pero que aún sigue en la mayoría de las PC’s de la
actualidad, nos referimos a la arquitectura Von
Neumann, se refiere a las arquitecturas de computadoras que utilizan el
mismo dispositivo de almacenamiento tanto
para las instrucciones como para los datos (a
diferencia de la arquitectura Harvard). El término se acuñó en el documento
First Draft of a Report on the EDVAC (1945), escrito por el conocido matemático
John Von Neumann, que propuso el concepto de programa almacenado.
Dicho documento fue redactado en vistas a la construcción del
sucesor de la
computadora ENIAC.
En el presente se sigue
usando esta estructura solo con algunas modificaciones.
LA MÁQUINA
DE VON NEUMANN
Es un concepto teórico
formulado por el matemático húngaro - estadounidense John
von Neumann.
Supóngase un determinado
problema simple, repetitivo y prolongado en el tiempo: por ejemplo, la
extracción de mineral de hierro en la
superficie de Marte.
Una solución posible es
enviar máquinas robotizadas que, de forma autónoma, extraigan el mineral y lo
conviertan en lingotes de hierro, bien para su envío a la Tierra, bien para
su uso por colonias locales. Si una máquina extrae n toneladas en un
determinado período de tiempo (ciclo), en m ciclos se tendrá m x
n toneladas.
Supóngase ahora un segundo
tipo de máquina: una máquina que, además de producir lingotes de hierro, los
trabaja para autorreplicarse, construyendo una máquina igual a ella misma. El
rendimiento será menor que el de la primera máquina, pues parte del hierro lo
utiliza en producir la segunda máquina, pero al cabo de un tiempo (generación),
no se tendrá una sino dos máquinas trabajando. Tras dos generaciones se tendrá
cuatro máquinas, tras tres generaciones ocho máquinas, etcétera. Se trata de
una población que crece de forma exponencial.
Así, aunque el rendimiento
sea menor, la producción tenderá a crecer hasta superar la de la primera
máquina. Como ejemplo, tras diez generaciones habrá más de mil máquinas de
von Neumann (exactamente 1.024 = 210), de manera que, aunque su
rendimiento fuera del 5% de la primera máquina, la producción total sería más
de 50 veces mayor.
Este concepto no es solamente
teórico: los virus informáticos son máquinas de von
Neumann. Ante el ingente trabajo de infectar el mayor número posible de
ordenadores, los virus se autorreplican pasando de ordenador a
ordenador, aumentando su población de forma exponencial e infectando así
millones de ordenadores en pocas horas.
Sin embargo, no sólo hay
aplicaciones negativas de este concepto. Los autómatas celulares tienen alto rango de
aplicaciones en la ciencia, modelando y simulando gran cantidad de sistemas
físicos, como fluidos, flujo de tráfico, etc.
JOHN VON NEUMANN
Matemático, artífice del
primer ordenador (1903 Budapest, Hungria, 1957 Washington D.C., USA)
John von Neumann nació el 28
de diciembre de 1903 en Budapest, Hungria, y murió el 8 de febrero de 1957 en
Washington D.C., USA. Su verdadero nombre es János Neumann. De pequeño la
llamaban Jancsi, un diminutivo del húngaro János, más tarde fue llamado Johnny
en los United States. Su padre, Max Neumann era un rico banquero. Creció en una
extensa familia en Budapest, donde de niño aprendió además de húngaro, alemán y
francés. Tenía una increíble memoria que ponía de manifiesto desde muy pequeño
haciendo demostraciones en reuniones familiares. Fue un niño prodigio que a la
edad de 6 años podía dividir mentalmente cifras de 8 dígitos.
Aunque eran judios, Max
Neumann no era un estricto practicante y John aprendió también algunas
tradiciones cristianas. El hijo de Max Neumann adquirió el von y se convirtió
en János von Neumann porque en 1913, Max Neumann compró un título que nunca
utilizó. Aunque su hijo sí.
En 1911, von Neumann entró
en el Lutheran Gymnasium. La escuela tenía una estricta tradición académica. Su
profesor de matemáticas pronto reconoció en el joven Neumann un talento
especial. En esa escuela estudiaba también, un año más que Jànos, otro
talentoso matemático llamado Eugene Wigner.
La primera guerra mundial
tuvo poco efecto en la educación de Neumann, pero después de la guerra, Béla
Kun controló Hungria durante cinco meses en 1919, con un gobierno comunista. La
familia se exilió a Austria aunque regresaron pronto. Cuando el gobierno de Kun
cayó, los judios fueron perseguidos por el hecho de haber participado en el
gobierno.
En 1921, von Neumann
completó su educación en el Lutheran Gymnasium. Su primera publicación
matemática, escrito conjuntamente con Fekete su tutor en la Universidad de
Budapest, fue publicado en 1922. Sin embargo Max Neumann quería que su hijo
eligiera una carrera con más posibilidades económicas. A pesar de las pocas
plazas para judios consiguió ser admitido en la univewrsidad de Budpest para
estudiar matemáticas. Sim embargo renunció y fue a Berlín a estudiar química
siguiendo el consejo de su padre.
Allí estudió hastas 1923
cuando se fue a Zurich. Consiguió además excelentes resultados en los exámenes
de matemáticas de la universidad de Budapest a pesar de no haber asistido a
clases. Von Neumann recibió su diploma en ingeniería química de la Technische Hochschule
en Zürich en 1926. Durante este tiempo, continuó su interés en las matemáticas,
intercambió ideas con Weyl y Pólya que también estaban en Zurich. Ayudaba en
los cursos de Weyl cuando éste se ausentaba de Zurich.
Von Neumann recibió su
doctorado en matemáticas de la universidad de Budapest, en 1926, con una famosa
tesis sobre teoría de conjuntos. Publicó una definición de número ordinal a la
edad de 20 años, definición que todavía se usa. Una de las teorías axiomáticas
de conjuntos aceptadas hoy día es llamada la teoría de von Neumann, Bernays,
Gödel.
Entre 1926 y 1929 fue
profesor de matemáticas en la Universidad de Berlín, y en Hamburgo entre 1930 y
1933. También estudió en Göttingen entre 1926 y 1927. Por aquella época ya era
reconocido como un gran matemático.
En 1930, fue invitado a
visitar la Universidad de Princeton (USA) donde impartió clases entre los años
1930 y 1933, pero no fue un buen profesor, puesto que resultaba muy difícil
seguir sus explicaciones. Con la llegada de los nazis al poder y el
convencimiento de que en los Estados Unidos su posición académica tendría más
futuro, se estableció en los Estados Unidos, dónde ayudó a muchos científicos
judíos que huyeron de Alemania para encontrar trabajo. Al fundarse el Instituto
de Estudios Avanzados en 1933, Von Neumman fue elegido como uno de sus únicos 6
profesores matemáticos, actividad que realizó el resto de su vida.
En 1932, publicó Fundamentos
matemáticos de la mecánica cuántica. Fue el fundador de la Teoría de Juegos.
Demostró el teorema del minimax y en 1944 publicó, junto con Oskar Morgenstern,
el famoso libro Teoría de juegos y del comportamiento económico. En 1929, en un
artículo en Mathematische Annalen, fue el primero en estudiar las álgebras
auto-adjuntas de operadores lineales acotados sobre un espacio de Hilbert.
Estos anillos de opradores se conocen con el nombre W*-algebras, pero J.
Dixmier, en 1957, las llamó "álgebras de von Neumann" nombre con el
que hoy día son conocidas.
Von Neumann fue uno de los
pioneros de las Ciencias de la Computación e hizo importantes contribuciones al
desarrollo del diseño lógico o de programación. Creó la arquitectura de los
computadores actuales, propuso la adopción del bit como medida de la memoria de
los ordenadores, y resolvió el problema de la obtención de respuestas fiables
con componentes no fiables (bit de paridad).
Participó en el diseño del
que se considera el primer ordenador, el ENIAC (que se construyó para calcular
la trayectoria de los misiles), para hacer modificaciones al programa se tenía
que cambiar las conexiones de las válvulas. Más tarde propuso separar el
hardware del software y se creó el EDVAC.
Neumann fue tan importante y
clave para el desarrollo de la computadora digital que a la mayoría de aquellas
máquinas, se las conoce como procesadores von Neumann. Su tesis y problema más
importante sobre las máquinas fue la del concepto de autoreproducción, se
cuestionaba: ¿Puede ser una máquina artificial capaz de producir una copia de
ella misma, que pudiera también, ser capaz de crear más copias? En sus
ponencias para la Universidad de Yale, The Computer and the Brain, afirmaba que
las computadoras y los seres humanos son diferentes clases de automatas.
Participó, junto con
Einstein, en el desarrollo de la bomba atómica (Proyecto Manhattan) en el
laboratorio de Los Álamos en Nuevo México. El diseño de implosión de las bombas
nucleares se adeuda a Von Newmann. Él fue quién defendió y participó en la
construcción de la bomba de hidrógeno, y quién propuso la construcción de
misiles intercontinentales.
Además de ser una persona de
prestigio, inteligencia y conocimiento, también era divertido, pues frecuentaba
cabarets de Berlín, y se dice que durante su estancia en Princeton, eran
famosas sus fiestas.
Se casó dos veces, las dos
veces con mujeres húngaras, y tuvo una hija con cada una. Murió a los 53 años
de cáncer de próstata, se cree que a causa de la exposición a la radiactividad
en Los Álamos.
HISTORIA
Una
primera implementación de la autorreproducción del constructor universal de Von
Neumann. Tres generaciones de máquina se muestran, el segundo casi ha terminado
la construcción de la 3ª. Las líneas que corren a la derecha son las cintas de
las instrucciones genéticas, que se copian junto con el cuerpo de las máquinas.
La máquina funcionando se muestra en una versión de estado 32 del ambiente
autómata celular de von Neumann.
Von Neumann le dio su nombre
a la arquitectura de von Neumann, utilizada
en casi todos los computadores, por su publicación del concepto; aunque
muchos piensan que este nombramiento ignora la contribución de J.
Presper Eckert y John William Mauchly, quienes contribuyeron al
concepto durante su trabajo enENIAC.16 Virtualmente,
cada computador personal, microcomputador, minicomputador y
supercomputador es
una máquina de von Neumann. También creó el
campo de los autómatas celulares sin computadores,
construyendo los primeros ejemplos de autómatas autorreplicables con lápiz y papel. El concepto
de constructor universal fue
presentado en su trabajo póstumo Teoría de los autómatas
autorreproductivos. El término «máquina de von Neumann» se refiere
alternativamente a las máquinas
autorreplicativas. Von Neumann probó que el camino más efectivo para las
operaciones mineras a gran escala, como minar una luna entera o un cinturón de asteroides, es a través del uso
de máquinas autorreplicativas, para aprovechar el crecimiento exponencial de tales
mecanismos.
Además de su trabajo
en arquitectura
computacional, von Neumann ofreció una contribución al estudio de algoritmos. Donald
Knuth considera a von Neumann el inventor, en 1945, del conocido
algoritmo merge sort, en el cual la primera y segunda mitad de
un array (vector) se clasifican recursivamente por separado y luego
se fusionan juntas.
También participó en la
investigación de problemas en el campo de la hidrodinámica numérica.
Junto con R. D. Richtmyer desarrolló
un algoritmo para definir la viscosidad artificial, que
probó la esencia para el entendimiento de las ondas
de choque. Puede decirse que no sería posible entender mucho de astronáutica y
ni siquiera podrían haberse desarrollado los jets y los motores
espaciales sin ese trabajo. El problema era que cuando los
computadores resuelven problemas hidro o aerodinámicos, buscan poner muchos
puntos de rejilla (o malla, en inglés grid) computacionales en regiones
con onda de choque de discontinuidad aguda. La viscosidad
artificial era un truco matemático para suavizar levemente la transición
del choque sin sacrificar la física básica.
La arquitectura de von Neumann es una familia de arquitecturas de computadoras que utilizan el mismo dispositivo de
almacenamiento tanto para las instrucciones como para los datos (a diferencia
de la arquitectura Harvard).
La mayoría de computadoras modernas
están basadas en esta arquitectura, aunque pueden incluir otros dispositivos
adicionales (por ejemplo, para gestionar las interrupciones de dispositivos externos como ratón,
teclado, etc).
El nacimiento u origen de la
arquitectura von Neumann surge a raíz de una colaboración en el proyecto ENIAC del matemático de origen húngaro, John von
Neumann. Éste trabajaba en 1945 en el Laboratorio Nacional Los
Álamos cuando se encontró con uno de los constructores de la ENIAC. Compañero
de Albert
Einstein, Kurt Gödel y Alan Turingen Princeton, Von Neumann se interesó por el
problema de la necesidad de reconfigurar la máquina para cada nueva tarea.
En 1949 había encontrado y
desarrollado la solución a este problema, consistente en poner la información
sobre las operaciones a realizar en la misma memoria utilizada para los datos,
escribiéndola de la misma forma, es decir en código binario. Su
"EDVAC" fue el modelo de las computadoras de este tipo construidas a
continuación. Se habla desde entonces de la arquitectura de Von Neumann, aunque
también diseñó otras formas de construcción. El primer computador comercial
construido en esta forma fue el UNIVAC I,
fabricado en 1951 por la Sperry-Rand Corporation y comprado por la Oficina del
Censo de Estados Unidos.
Los ordenadores con esta
arquitectura constan de cinco partes: La unidad aritmético-lógica o ALU, la unidad de
control, la memoria, un dispositivo de entrada/salida y
el bus de datos que
proporciona un medio de transporte de los datos entre las distintas partes.
Un ordenador con esta
arquitectura realiza o emula los siguientes pasos secuencialmente:
Enciende
el ordenador y 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.
Aumenta
el contador de programa en la longitud de la instrucción para apuntar a la
siguiente.
Decodifica
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.
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.
El término arquitectura
de von Neumann se acuñó a partir del memorando First
Draft of a Report on the EDVAC (1945) escrito por el
conocido matemático John von Neumann en el que se proponía el
concepto de programa almacenado. Dicho documento fue
redactado en vistas a la construcción del sucesor de la computadora ENIAC y su contenido fue
desarrollado por John Presper Eckert, John William Mauchly, Arthur Burks y otros durante varios meses
antes de que von Neumann redactara el borrador del informe. Es por ello que
otros tecnólogos como David A. Patterson y John L.
Hennessy promueven la sustitución de este término por el de arquitectura
Eckert-Mauchly.
Las máquinas
autorreplicantes de John von Neumann
A principios de la década de
1950, von Neumann estudió los mecanismos que debe tener una máquina para que
pueda tener la capacidad de construir otra máquina igual a la máquina creadora;
de manera que diseñó un autómata celular con esas propiedades. A partir de la
fecha de su muerte en 1957, dejó el proyecto sin terminar y desde entonces se
han hecho varios intentos de completarlo; uno de los trabajos más destacados de
reproducir y completar el trabajo de von Neumann se dio en el año 2000 por un
grupo de especialistas en diseño de hardware en el Laboratorio
de Sistemas Lógicos del Instituto de Tecnología Federal
Suiza.
El constructor
universal es uno de los conceptos que von Neumann definió y que es una
parte fundamental en el diseño de esa máquina constructor universal, que
es capaz de construir cualquier otra máquina constructor universal a partir de
su descripción. Este proceso requiere que la descripción del constructor
universal incluya su propia descripción, idea que fue tomada de modelos
celulares vivos que contienen información de cómo construir otras células del
mismo tipo:
La descripción muestra las
características básicas de la máquina, al estilo de un genoma, que es
interpretado para construir una copia del constructor universal.
La descripción es
literalmente copiada, una vez que ha sido detectada y leída.
Stanislaw
Ulam hizo la sugerencia (a von Neumann) de implementar sus ideas en un espacio
bidimensional discreto. De manera que el universo creado por von Neumann lo
define una matriz bidimensional infinita, cuyas entradas, llamadas células, son
máquinas de estados finitos. Después de haber estudiado el modelo con varias
opciones, llegó a definir 29 estados y una regla de transición.
El constructor universal
está dividido en el control de la cinta (Tape control) y el control de
construcción (Construction control); el control de la cinta obtiene la
información de la máquina que se va a construir; y el control de construcción
interpreta la descripción obtenida y construye el nuevo autómata por medio de
un brazo constructor (Constructing arm). Podemos mencionar algunas
características que tiene este constructor universal:
Universalidad
construccional, significa que es capaz de construir cualquier autómata, si
cuenta con su descripción.
Autoreproducción del
constructor universal.
Autoreproducción de la
máquina universal, ya que el constructor universal está definido con una máquina
universal de Turing, y la cinta contiene la información completa.
DESCRIPCIÓN
DE LA ARQUITECTURA DE JOHN VON NEUMANN
Debido a la importancia de la von Neumann en el desarrollo de las
computadoras, cabe destacar por encima lo que es este tipo de máquina.
Es una familia de arquitecturas de computadoras que utilizan el mismo
dispositivo de almacenamiento tanto para las instrucciones como para los datos.
La mayoría de las computadoras de hoy en día se basan en este tipo de
arquitectura, aunque pueden incluir otros dispositivos adicionales.
Surgió como consecuencia de la colaboración de Newmann en el proyecto
ENIAC. Neumann, consciente de la torpeza de la aritmética decimal utilizada en
las computadoras de este proyecto podría reemplazarse utilizando la aritmética
binaria, realizo un diseño básico llamado la máquina de Von Newmann. El
programa se implanto en la computadora de EDVAC.
Se estructura en 5 partes básicas:
1. Memoria
(MI)
2. Unidad
aritmética lógica(ALU)
3. Unidad de
control del programa.
4. Equipos
de entrada y salida.
5. Buses de
interconexión
MEMORIA: Expresada en bits, constaba de 4096 palabras cada una de
40 bits. Cada palabra contenía hasta 2 instrucciones de 20 bits cada una o un
numero entero de 39 bits y su signo.
UNIDAD ARITMÉTICA LÓGICA (ALU) : Supervisa la transferencia de
información y la indica a la unidad aritmética lógica la operación que debe
ejecutar.
UNIDAD DE CONTROL DEL PROGRAMA: Se encarga de realizar las operaciones
aritméticas y lógicas necesarias para la ejecución de una instrucción.
BUSES DE INTERCONEXIÓN. Dispositivo
que funciona de transporte de datos y conexión entre las distintas partes de un
sistema informático. Son
las líneas eléctricas u ópticas a través de las cuales se comunican las
distintas unidades de un ordenador. Los buses son cables por los que circulan
los bits en forma de información.
Los primeros ordenadores, con sistemas de numeración decimal y complicada electrónica con muchos fallos y un sistema de programación cableado, hizo que von Newman propusiese dos principios básicos que llevarían a la revolución de la informática del momento. En primer lugar, la utilización del sistema de numeración binario y en segundo lugar el almacenamiento de la secuencia de instrucciones de que consta el programa de memoria interna.
CONSIDERACIÓN PERSONAL
Yo considero
que John von Neumann fue uno de los matemáticos más
importantes de la historia moderna cuyo legado incluye, entre otras
aportaciones, la arquitectura de computadores y las máquinas autorreplicantes.
Además fue uno de los pioneros de las Ciencias de la Computación
e hizo importantes contribuciones al desarrollo del diseño lógico o de
programación. Creó la arquitectura de los computadores actuales, propuso la
adopción del bit como medida de la memoria de los ordenadores, y resolvió el
problema de la obtención de respuestas fiables con componentes no fiables (bit
de paridad).
Neumann
fue tan importante y clave para el desarrollo de la computadora digital que a
la mayoría de aquellas máquinas, se las conoce como procesadores von Neumann.
Pero
todo este aporte no se trata solo de un concepto teórico, las máquinas de Von
Neumann existen. Por ejemplo, un virus informático es una de estas máquinas. Los virus se
autorreplican pasando de ordenador a ordenador, aumentando su población de
forma exponencial infectando dañando así millones de equipos en pocas horas.
Von
Neumann llamó a sus máquinas “Constructores Universales”.
Sus funciones se asemejan mucho a las de un ser vivo elemental, y poseen tres
sistemas fundamentales: una sección capaz de utilizar materiales y energía para
la construcción y funcionamiento; un “sistema reproductor”, encargado de fabricar
la copia de sí mismas; y un ordenador, que controla el proceso y asegura que
las instrucciones pasen a la siguiente generación. Este programa sería el
equivalente del genoma presente en los
organismos vivos.
Estas
ideas son aún irrealizables, pero hay procesos robotizados de fabricación y
algoritmos genéticos que evolucionan a la manera de máquinas virtuales. La ciencia ficción ha creado también escenarios donde los
Constructores Universales han conquistado la galaxia. Pensemos en una civilización que creara máquinas
capaces de viajar por el espacio, y al llegar a un planeta o asteroide
comenzaran a reproducirse, para luego seguir colonizando nuevos lugares. Con
tiempo suficiente, acabarían colonizando toda la Galaxia, infectándola con
nuevas copias. Si el programa que se transmite de generación en generación
variase ligeramente, al azar, podrían incluso evolucionar.
CONCLUSIÓN
Al determinar este proyecto puedo afirmar que Von Neumann tuvo la idea de construir la máquina de tal modo que pudiera "memorizar" una serie de órdenes y una serie de datos, de tal manera que pudiera luego "trabajar sola" hasta lograr el resultado. Concibió para ello la "arquitectura" o estructura física hoy conocida con su nombre y generalizada en la segunda y la tercera generación de computadores, arquitectura que ya es descrito en este trabajo. Paralelamente concibió lo que se ha llamado el "programa", o sea un conjunto estructurado de órdenes o instrucciones de trabajo que guían, paso a paso, el funcionamiento de la máquina. Esto lleva a una primera estructuración: debe haber una unidad de memoria y una unidad que procesa, y esta memoria debe poder contener el programa y los datos así como resultados parciales de las operaciones en curso. Estas dos unidades básicas conforman la "Unidad Central de Procesos" (CPU o "Central Process Unit", en inglés).
Tanto los computadores con gran volumen de memoria y alta velocidad de proceso (llamados "mainframe") como los computadores personales de nuestras oficinas u hogares o las máquinas de video-juegos ("flippers" electrónicos) tienen una "CPU" con esta misma estructura y que cumple las mismas funciones básicas.
Además puedo informar que el genio inquieto de von Neumann también postuló teorías más futuristas para problemas que hoy en día todavía pertenecen a la ciencia ficción, como la explotación minera de la Luna o del cinturón de asteroides, la creación de satélites alimentados por energía solar o la construcción de fábricas en otros planetas.
BIBLIOGRAFIA
http://es.wikipedia.org/wiki/M%C3%A1quina_de_von_Neumann,
Arquitectura_de_von_Neumann y Máquina_autorreplicante.
http://computacion.cs.cinvestav.mx/~acaceres/docs/tesis/node23.html