1.
Introducción:
Von Neumann fue un
matemático que ideo el diseño de las máquinas y sistemas del funcionamiento de
las computadoras. La automatización consiste en reemplazar al hombre por una máquina
para la ejecución de una tarea, y se ha venido desarrollando casi a la par
con la historia de la humanidad.
2.
Marco Teórico:
Von
Neumann
describió el fundamento de todo ordenador electrónico con programas
almacenados. Describía, a diferencia de como pasaba anteriormente, como podía
funcionar un ordenador con sus unidades conectadas permanentemente y su
funcionamiento estuviese coordinado desde la unidad de control (a efectos
prácticos es la CPU). Aunque la tecnología ha avanzado mucho y aumentado la
complejidad de la arquitectura inicial, la base de su funcionamiento es la
misma y probablemente lo seguirá siendo durante mucho tiempo. El artículo viene
acompañado de una representación
gráfica del funcionamiento.
Antes
de entrar en los detalles de las unidades tenemos que conocer lo siguiente:
- Registros: es el lugar donde se almacenan temporalmente los datos que están
en movimiento para procesarlos. En la representación de la imagen del
principio podéis ver que son los registros.
- Buses: son las uniones entre las distintas unidades, la memoria y los
periféricos.
UNIDAD DE PROCESO CENTRAL (CPU)
Es
la unidad encargada de controlar y gobernar todo el sistema que comprende una
computadora. La CPU consiste en un circuito integrado formado por millones de
transistores, que está diseñado para poder procesar datos y controlar la
máquina. Como ya sabéis, es un factor clave para la potencia de la computadora.
La CPU dispone de dos unidades en su interior: la unida de control y la unidad aritmético-lógica.
Unidad
de control
La
unidad de control se encarga de leer las instrucciones (de los programas
almacenados en la memoria) y se encarga de enviar las ordenes a los componentes
del procesador para que ejecuten las instrucciones.
El
proceso empieza cuando llega una instrucción al registro de instrucciones (llega como una cadena de bits con
distintas partes, referidas a la propia instrucción y a los datos que se
usarán). Posteriormente el decodificador interpreta la instrucción a
realizar y como deben de actuar los componentes del procesador para llevarla a
cabo. Esta acción se realiza mediante el secuenciador que envía micro-órdenes marcadas por el reloj (que genera pulsos de forma constante, se
suele expresar su velocidad en gigahercios o GHz, para los procesadores
actuales).
Unidad Aritmético Lógica (ALU)
La
unidad aritmético
lógica es la
encargada de realizar todas las operaciones aritméticas (sumas, multiplicaciones...)
y lógicas (comparaciones).
Esta
unidad puede tener distintos diseños, el de la imagen superior muestra el
diseño más básico (donde el acumulador vuelve a usarse en la operación), en la
actualidad lo normal es que el acumulador no se mezcle con los registros de
entrada.
El
funcionamiento con el diseño que estamos analizando (el básico) comienza cuando
le llega al registro de entrada un dato (una cadena de bits que representan un
número), posteriormente el circuito
operacional
(en la imagen se representa como "ALU" y coloreado azul) y se procesa
junto al contenido del acumulador y posteriormente se deposita de
nuevo en el acumulador. Repitiendo esta acción se generan los cálculos. Este
proceso se ve claramente en la representación que hay más abajo.
Memoria principal
La
memoria principal en la arquitectura inicial era
directamente la RAM, pero esto ha evolucionado y se han añadido memorias caché
e implementado algoritmos que predicen que datos vamos a usar más
frecuentemente.
La
memoria RAM es bastante sencilla, en comparación con la CPU, se podría decir
que es una tabla, que contiene la dirección (o lugar) donde está cierto dato y
el contenido del propio dato. La memoria dispone de un registro de direcciones (RDM) y un registro de intercambio de memoria (RIM o registro de datos). En el registro
de direcciones se almacena la dirección en la que se almacenará o leerá un
dato, y en el registro de intercambio de memoria se almacena ese dato
leído o que se almacenará.
Cuando
hablamos de direcciones de memoria a muchos os sonará de los
"punteros" de C, y es por esto que es esencial conocer la
arquitectura de Von Neumann antes de aprender a programar en ciertos lenguajes
que actúan a más bajo nivel.
La
unidad de control contiene el registro
contador de programa, que contiene la dirección de memoria de la siguiente instrucción, que
se incrementa tras realizar una instrucción y así va recorriendo la memoria y
ejecutando el programa.
Buses
Todos
estos elementos se comunican entre si a través de buses, ya sea para manejar
las acciones a realizar por la máquina o para mover datos. Hay tres tipos de
buses.
El
bus de datos perite el intercambio de datos (ya
sean instrucciones o datos) con el resto de elementos de la arquitectura. Es
decir, mediante el bus de datos la unidad de control recibe las instrucciones y
la ALU los datos desde la memoria, al igual que también los envían por este
medio.
El
bus de
instrucciones
transmite las direcciones de memoria que van a ser usadas desde la CPU, para
poder seleccionar los datos que serán usados.
El
bus de control es el que transporta las ordenes
generadas por la CPU para controlar los diversos procesos de la máquina.
Funcionamiento de la arquitectura
Para
ver cómo funciona la arquitectura he creado una representación documentada del
proceso.
Este
diseño de la arquitectura, como ya he comentado, es el básico (con acumulador
como registro de entrada) y el ancho de los datos es de 8 bits. Las
instrucciones están formadas por dos bloques de 4 bits, los primeros para
instrucciones y los últimos para la dirección de la memoria.
Siempre
que se usa en una instrucción un número está destinado a la dirección de
memoria, donde se usa el verdadero número que se usará para una operación.
Actualmente
se usan anchos de 32, 64 o 128 bits en computadoras, y no tiene porqué seguir
el mismo patrón. Seguidamente voy a exponer varios patrones que se pueden dar,
a fin de completar un poco más la representación que es muy simple al disponer
solo de 8 bits.
3.
Conclusión:
Gracias a la arquitectura de Von
Neumann se concluye que el tamaño de las instrucciones no está relacionado con
el de los datos, y por lo tanto puede ser optimizado para que cualquier
instrucción, ocupe una sola posición de memoria de programa, logrando así mayor
velocidad y menor longitud de programa.
El
tiempo de acceso a las instrucciones puede superponerse con el de los datos,
logrando una mayor velocidad en cada operación.
4.
Referencias:


No hay comentarios.:
Publicar un comentario