El Modelo de von Neumann

INTRODUCCION

La creación de las primeras computadoras electrónicas, y la necesidad de almacenar las tareas a realizar, en la memoria, fue el factor principal que condujo a la creación de los lenguajes de programación. En un principio las computadoras se utilizaban como calculadoras, a las que se le indicaban paso a paso, las tareas a realizar.
En la actualidad cada computadora se basa en el modelo del matemático húngaro John Von Neumann. El modelo examina el interior de la computadora (la caja negra) y define cómo se realiza el procesamiento. Von Neumann  resolvió el problema de tener que cablear la máquina para cada tarea, dado que le pareció evidente, que programar computadoras con una enorme cantidad de interruptores y cables era algo lento, tedioso y poco flexible, y pensó que el programa podía representarse en forma digital en la memoria de la computadora, lo mismo que los datos. También observó que la torpeza de la aritmética decimal en serie utilizada por la ENIAC, con cada dígito representado por diez bulbos (uno encendido y nueve apagados), podía reemplazarse usando aritmética binaria paralela.
Su diseño básico, ahora conocido como una Máquina de Von Neumann, se usó en la EDSAC para la primera computadora que almacenaba el programa, y constituye todavía la base para la mayoría de las computadoras digitales, casi medio siglo después. Este diseño y la máquina IAS (Princeton Institute of Advanced Studies), construida en colaboración con Herman Goldstine, ha tenido una influencia tan grande en las maquinas actuales.

DESARROLLO

En 1945 John Von Neumann creó un modelo computacional que se caracteriza por disponer de una única memoria principal en la que se almacenan los datos y las instrucciones. La memoria estaba dividida en dos zonas, la primera para almacenar el programa que se debía ejecutar y la segunda, para retener los datos. Esta característica es la parte fundamental de las computadoras, porque un comando del programa para ser ejecutado debe estar necesariamente en la unidad central de procesamiento. De este modo, se gana velocidad de ejecución del conjunto de instrucciones que componen los programas.
La solución fue poner las instrucciones en la misma memoria que los datos, escribiéndolas de la misma forma, en código binario, “arquitectura de Von Neumann”. La EDVAC fue el modelo de las computadoras de este tipo.
El modelo define una computadora como cuatro subsistemas:
  • La memoria.
  • La unidad aritmético-lógica o ALU.
  • La unidad de control.
  • Un dispositivo de entrada/salida
Se puede decir que una computadora está formada por tres partes fundamentales, aunque una de ellas es subdividida en dos partes no menos importantes. En la figura siguiente se muestran dichas partes, llamadas genéricamente unidades funcionales debido a que, desde el punto de vista del funcionamiento, son independientes.
 modelo de von Neuman
El nombre de cada parte nos indica la función que realiza:
  • La unidad de Memoria Principal (MP) es el área de almacenamiento, se encarga de almacenar las instrucciones que realizará la Unidad de Control al ejecutar un programa y los datos que serán procesados.
  • La Unidad Central de Proceso (CPU) es la que coordina el funcionamiento conjunto de las demás unidades y realiza los cálculos necesarios; por eso la podemos subdividir en una Unidad de Control (UC) y en una unidad de cálculo o Unidad Aritmético-Lógica (ALU).
v  ALU es donde el cálculo aritmético y las operaciones lógicas toman lugar. Si una computadora es un procesador de datos, se debería poder realizar operaciones aritméticas con los datos (por ejemplo, sumar una lista de números). También debería poderse realizar operaciones lógicas con ellos (por ejemplo, encontrar el menor de dos elementos de datos).
v  UC determina las operaciones de la memoria, de la ALU y del subsistema de Entrada/Salida.
  • La Unidad de Entradas y Salidas será la encargada de la comunicación con el exterior a través de los periféricos. Estos periféricos pueden ser: de entrada, como los teclados; de salida, como los tubos de rayos catódicos, y de entrada y salida, como los discos magnéticos.
El esquema original del modelo de Von Neuman era el siguiente
 v1
La máquina de Von Neumann tenía 5 partes básicas:
  • La memoria,
  • La unidad Aritmética lógica,
  • La unidad de control del programa y
  • Los equipos de entrada y salida.
La memoria principal está formada por un conjunto de unidades llamadas palabras. Dentro de cada una de estas palabras se guarda la información que constituye una instrucción o parte de ella (puede darse el caso de que una sola instrucción necesite varia palabras), o un dato o parte de un dato (también un dato puede ocupar varias palabras).
La memoria constaba de 4096 palabras, cada una con 40 bits. Cada palabra podía contener 2 instrucciones de 20 bits o un número entero de 39 bits y su signo. Las instrucciones tenían 8 bits dedicados a señalar el tiempo de la misma y 12 bits para especificar alguna de las 4096 palabras de la memoria.
A la cantidad de palabras que forman la MP se le denomina capacidad de memoria. De este modo, cuanto mayor sea el número de palabras mayor será el número de instrucciones y datos que podrá almacenar la computadora.
Una palabra está formada a su vez de unidades más elementales llamadas bits, del mismo modo que en el lenguaje natural una palabra esta formada por letras.

El número de bits que forman una palabra se llama longitud de palabra. Por regla general, las computadoras potentes tienen memorias con longitud de palabra grande, mientras que las computadoras pequeñas tienen memorias con longitud de palabra menor.
En la figura siguiente se muestra como se puede estar organizada una Memoria Principal.
 v1
Dentro de la unidad aritmética-lógica, había un registro interno especial de 40 bits llamado acumulador. Una instrucción típica era sumar una palabra de la memoria al acumulador o almacenarlo en la memoria.
La comunicación es necesaria entre el interior de la computadora y su entorno o periferia. Esta comunicación se consigue a través de dispositivos de muy diversos tipos, como son: teclados, impresoras, pantallas, discos magnéticos, entre otros. Estos dispositivos se les conoce con el nombre genérico de periféricos.
En la siguiente figura  se muestran algunos periféricos conectados a la Unidad de E/S, la cual hace de intermediaria entre los periféricos y la CPU. Las flechas indican el sentido en que fluye la información.
 v1
 La coordinación de la comunicación entre los periféricos y la CPU la realiza la Unidad de E/S. Obsérvese que esta no es un periférico sino un dispositivo que gestiona a los periféricos siguiendo las órdenes de la CPU; es decir, la Unidad de E/S recibe de la Unidad de Control información sobre el tipo de transferencia de datos que debe realizar (si es de entrada o de salida) y periférico que debe de utilizar; si es de salida recibirá también el dato que debe enviar y el momento de la operación.
Entonces, la Unidad de E/S seleccionara el periférico y ejecutara la operación teniendo en cuanta las características propias de cada periférico. Una vez ejecutada la orden avisara a la UC de la terminación de la transferencia.
Cada periférico o parte de un periférico tendrá asignado un numero o dirección que servirá para identificarlo. Cuando la UC quiera seleccionarlo enviara dicho número a la Unidad de E/S.
  • El cerebro de la PC y compatibles es un microprocesador basado en la familia 8086 de Intel, que realiza todo el procesamiento de datos e instrucciones. Los procesadores varían en velocidad y capacidad de memoria, registros y bus de datos. 
El bus de datos es la forma de interconectar la CPU, la memoria principal y E/S en una computadora. El CPU y la memoria por lo general se conectan por medio de tres grupos de líneas, cada una llamada bus:
  • Bus de datos
Este está formado por varias líneas de control que transportan 1 bit a la vez, el número de líneas va ha depender del tamaño de la palabra. Si la palabra mide 32 bits (4 bits), se necesita un bus de datos con 32 líneas de modo que todos los 32 bits de una sola palabra puedan transmitirse al mismo tiempo.
  • Bus de Direcciones
Este permite el acceso a una palabra en particular en la memoria. El numero de líneas depende del espacio de direccionamiento de la memoria. Ej. Si la memoria tiene 2n palabras, el bus de direcciones necesita transporta n bits a la vez.
  • Bus de Control
El bus de control lleva la comunicación entre el CPU y la memoria. Es decir, debe haber un código enviado desde el CPU a la memora para especificar una operación de lectura y escritura. El número de líneas en este bus depende del número total de comandos que necesita la computadora. Ej. Si una computadora tiene 2n acciones de control, necesita m líneas para el bus de control porque m bits pueden definir 2n operaciones diferente.
Un programa en el modelo de von Neumann se conforma de un número finito de instrucciones. En este modelo, la unidad de control trae una instrucción de la memoria, la interpreta y luego la ejecuta, es decir, las instrucciones se ejecutan una después de otra, Desde luego, una instrucción puede requerir que la unidad de control salte a algunas instrucciones previas o posteriores, no significa que las instrucciones no se ejecutan de manera secuencial.
Un ordenador con esta arquitectura realiza o emula los siguientes pasos secuencialmente:
  1. Enciende el ordenador y obtiene la siguiente instrucción desde la memoria en la dirección (Para poder acceder a una ubicación específica de la memoria, la CPU genera señales en el bus de dirección, que habitualmente tiene un tamaño de 32 bits en la mayoría de máquinas actuales) indicada por el contador de programa (registro del procesador) y la guarda en el registro de instrucción (se almacena la instrucción que se está ejecutando).
  2. Aumenta el contador de programa en la longitud de la instrucción para apuntar a la siguiente.
  3. 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.
  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 1.

Aunque existen muchos tipos de computadoras digitales según se tenga en cuenta su tamaño, velocidad de proceso, complejidad de diseño físico, etc., los principios fundamentales básicos de funcionamiento son esencialmente los mismos en todos ellos.

CONCLUSION

La memoria de las computadoras modernas aloja tanto un programa como sus datos correspondientes. Esto implica que ambos, tanto los datos como el programa deben tener el mismo formato porque se almacenan en la memoria, se guardan como patrones binarios y sin lugar a dudas, el modelo de von Neumann establece el estándar de los componentes esenciales de una computadora, la cual debe incluir los cuatro componentes a los que se hace referencia como hardware de la computadora. El modelo no define cómo deben almacenarse los datos en una computadora, aunque si esta es un dispositivo electrónico, la mejor manera de almacenar los datos es en forma de señal eléctrica, específicamente su presencia o ausencia.
El modelo de von Neumann cambió el significado del término   programación, dado que los programas  con su modelo se almacenan en la memoria de la computadora, no sólo se necesita memoria para mantener los datos, sino que también se requiere memoria para mantener el programa y el programa debe ser una secuencia de instrucciones lo cual permitió volver a usar dicho programa y dejar de ser una tarea independiente



No hay comentarios:

Publicar un comentario