Arquitectura
de
Von
Newmann
Javier Sánchez
Sánchez
La
arquitectura de Von Newmann utiliza el mismo dispositivo de
almacenamiento tanto para instrucciones como para los datos.
La mayoría
de las computadoras de la actualidad están basadas en esta
arquitectura.
El origen de
esta arquitectura viene a partir de una colaboración con en el
proyecto ENIAC, del matemático de origen Húngaro Jhon Von Newmann,
a raíz del problema que tenia el ENIAC a la hora de programar a base
de cableado.
Estos
ordenadores constan de 5 partes;
- Unidad aritmético-Logica (ALU).
- Unidad de Control.(UC).
- Memoria
- Dispositivos de Entrada Salida (E/S).
- Bus de datos.
En diciembre
de 1.943, las personas que estaban desarrollando en la universidad de
Pensylvania,el ENIAC escribieron el concepto de “programa
almacenado”.
Mientras se
diseñaba en una nueva maquina el EDVAC, que almacenaría datos y
programas en un nuevo dispositivo de de memoria direccionable, esta
vez fue la primera vez que se propuso la construcción de un programa
almacenado de forma practica.
Von Newmann
estaba involucrado por aquel entonces en el proyecto Manhattan en el
laboratorio nacional de los Alamos, para el cual se requería una
cantidad ingente de procesamiento de datos. Esto fue lo condujo al
proyecto del ENIAC donde introdujo el concepto de datos almacenados y
escribió una una descripción de él, y del primer articulo que
escribió Von Newmann se acuño el termino a este tipo de
arquitectura (Arquitectura de VON Newmann).En dicho articulo incluía
ideas de Edcker y Mauchly.
Posteriormente,
Turing desarrollo un informe técnico muy detallado “Proposed
electronic Calculator” en el que describía el motor de computación
automático.
Los trabajos
de ambos de Newmann y Turing describían ordenadores con programas
almacenados, pero a ser anterior el articulo de Von Newman, consiguió
mayor repercusión, así que al arquitectura quye utilizaba esa
tecnología adquirió el nombre Von Newmann.
En 1945, el
profesor Newman, emitió en nombre de un grupo de de sus compañeros
de trabajo un informe sobre el diseño lógico de los ordenadores
digitales. El informe contenía una propuesta detallada para el
diseño de la maquina que desde entonces se le llamo EDVAC.
Dos años
después el doctor Newmann y Burks y Goldstine, publicaron un informe
que describía otro diseño de maquina que debería ser muy rápida,
era capaz de calcular 20,000 operaciones por segundo. Señalaron que
el problema consistente en la fabricación de tal maquina residía en
el desarrollo de una memoria adecuada, de los cuales todos los
contenidos fueran instantáneamente accesibles. Esa maquina se
completo en 1952 en Princeton y se conocia como MANIAC I.
- Los primeros computadores constaban de programas almacenados. Algunos como las calculadoras siguen utilizando este diseño. Puede hacer cálculos simples pero no puede ser reprogramada.
Cambiar el
programa que contenían requiere una tecnología que permita la
escritura y re-escritura de datos. Los primeros ordenadores eran
demasiado complicados para poder reprorgramarlos por su diseño.
El concepto de
programa almacenado cambio por completo, se pensó en un ordenador
que su diseño contenía un conjunto de instrucciones que se podían
almacenar en memoria. Este tipo de programación daba la posibilidad
a los programas de ser modificados ellos mismos durante su ejecución.
Uno de los motivos de su creación fue la necesidad de un programa
que incrementara o modificara la direcciones de memoria de algunas
instrucciones, las cuales tenían que ser hechas manualmente en los
primeros diseños.
Existen
inconvenientes en el diseño de Von Newmann. Las modificaciones de
los programas podían ser perjudiciales, por accidente o por diseño.
Partes de la
arquitectura de Von Newmann;
- CPU: Es la unidad central de procesamiento;
- ALU: Unidad aritmética y lógica.
- CU: Unidad de Control.
- Banco de Registros.
- Memoria:
- Buses de Sistema:
- Dispositivos E/S:
CPU: Su
función es buscar en la memoria las instrucciones de los programas
allí almacenados, interpretarlos y ejecutarlos ademas procesarlos
datos introducidos a través de las unidades de salida.
- La ALU unidad aritmética y lógica se encarga de efectuar las operaciones aritméticas y también las operaciones lógicas (AND, OR, NOT) y en general los resultados.
- La Unidad de Control (CU) busca las instrucciones almacenadas en la memoria, las interpreta y las ejecuta.
- Los Registros del sistema (banco de registros) estan encargados de almacenar temporalmente pequeñas cantidades de datos, esos datos pueden ser resultados intermedios de operaciones .Hay registros de trabajos visibles para el programador y otros que no lo son.
- Los Buses de Registros
- Los Buses de Sistemas son un conjunto de lineas de conexión, cuya misión es circular los datos entre los diferentes elementos.
REGISTROS;
Los
registros son las memorias de muy poca capacidad y rápido acceso,
situadas en el interior de la CPU.
En
los registros se almacenan las instrucciones
que se van a utilizar los datos
que que se van a emplear en dichas instrucciones. Y los datos
resultantes de las operaciones.
Cada
registro es una pequeña cantidad de bits que se pueden manejar en
bloques, este numero de bits es múltiplo de ocho y suele coincidir
con el tamaño de los buses del sistema y se les suele llamar tamaño
de palabra.
La
potencia de la CPU esta
relacionada con el tamaño de los registros.
Hay
diferentes tipos de registros;
- Los registros de propósito general son visibles para el usuario que trabaja en ensamblador, pueden contener direcciones de memoria, instrucciones de un programa o datos con los que trabaja el programa.
- Los registros de control tienen una mision especifica y no se pueden acceder a ellos(el programador) como pro ejemplo;
*Contador
de programas. (C.P. )
*Registros
de instrucciones (R.I.)
*Registros
de dirección de memoria. (MAR)
*Registro
de intercambio de memoria.(MDR)
*Registro
de estado del programador. (SR)
La Unidad
de Control, busca en la
memoria las instrucciones las interpreta y las ejecuta.
La
U.C. genera
las señales de control necesarias para que el resto de componentes
realizan las tareas oportunas, estas señales están sincronizadas
con el reloj del sistema,
COMNPONENTES
DE LA UNIDAD DE CONTROL (U.C.)
-Contador
de programas, que contiene
la dirección de memoria de la siguiente instrucción a ejecutar.
-Registro
de Instrucción,
(I.R.) almacena la instrucción que se esta ejecutando en ese
momento.
-Decodificador
de Instrucción,
(D.I.) decodifica e interpreta la instrucción para averiguar que
operación hay que realizar, dicho código se encuentra en uno de los
campos de la instrucción.
-El
Secuenciador, (S)
genera las micro-ordenes necesarias para ejecutar paso a paso de y de
forma sincronizada la instrucción.
-Reloj
de Sistema, (CLK) es
un circuito oscilador que genera impulsos eléctricos a una
frecuencia constante, su velocidad se mide en Hertzios (Hz) 1 pulso
por segundo de instrucción, puede tardar en ejecutarse uno o mas
pulsos de reloj.
-Registro
de Estado del Procesador,
(RE) registra las diferentes condiciones de estado de la ultima
operación.
-Unidad
en Coma Flotante.
(Esta dentro de la CPU) (Coprocesador Matemático)
*Realiza operaciones matemáticas de números en
coma flotante (Nº Decimales).
*Los ordenadores que no tenían este tipo de
Coprocesador matemático lo emulaban con la unidad aritmético-lógica
(ALU).
-Buses
de Sistema:
*de Direcciones.
*de Datos.
*de Control.
Los buses de sistema son rutas digitales por donde
circula la información comunicando las distintas unidades
funcionales, cada conexión de Bus transmite (1) o no pasa (0).
-Buses
de Dirección.
Transmite direcciones de memoria con un Bus de n bits → 2^n.
-Bus
de datos, transporta
las instrucciones y datos de programas, cuantos mas bits tenga ese
Bus mayor será la cantidad de información que puede transmitir de
una vez.
-Bus
de Control, A través
de este Bus se envían las señales de control necesarias para
dirigir el resto de unidades funcionales.
MEMORIA
DEL SISTEMA.
Se puede dividir según su ubicación o según la
volatilidad;
Ubicación → Principal o Secundaria.
Volatilidad → Volátiles (RAM) o No Volátiles (ROM)
Una
memoria
en sentido genérico se refiere a cualquier dispositivo en el que se
puede almacenar cualquier información en formato digital.
-La
memoria principal
esta situada dentro de la CPU o la placa base.
*En ella encontramos registros de memoria, RAM,
Cache...
-La
memoria secundaria
se accede a través de las unidades de E/S.
*Como por ejemplo Discos Duros.
-La
memoria volátil. Deben
estar alimentadas eléctricamente para poder conservar los datos.
-La
memoria no volátil. La
información permanece aun sin alimentación eléctrica.
En informática la unidad de información es el bit
(Binary digit)
-Un bit puede contener la información de 0 y 1.
-Normalmente no se puede almacenar un solo bit, se
suelen almacenar en grupos (8 bits, 16 bit, 32 bits...).
-Una palabra es la cantidad de información que se puede
escribir o leer de una sola vez, en la memoria (8 bits, 32bits
64bits...)
Un Kb = 1,024 bytes.
MEMORIA
PRINCIPAL (RAM).
-Concepto
-Registros asociados;
-Registros de direcciones de memoria.
-Registros de intercambio de memoria.
-Selector de Memoria.
-La memoria principal es el dispositivo donde la CPU
recibe los datos e instrucciones necesarios para operar y donde
guarda los resultados.
-RAM → Random acces memory.
-Cada vez que se realiza una operación de lectura o
escritura se accede a todo un conjunto de bits predeterminado.
-Para la realización de la lectura o escritura en la
memoria esta tiene una serie de registros asociados.
-El registro de direcciones contiene la dirección
memoria a la que quiere acceder.
-El registro de intercambio de memoria contiene
la información o dato que se desea escribir o que se acaba de
extraer.
-El selector de memoria, conecta el registro de
intercambio con la celda cuya dirección figura en el registro de
direcciones.
OPERACION
DE LECTURA
- La CPU carga en el registro de direcciones la dirección de memoria que se quiere cargar.
- Ahora el selector de memoria le indica a la memoria que queremos acceder a esa dirección.
- Se accede a esa dirección y se lee lo que hay en ella.
- El dato leído pasa al registro de intercambio.
- La CPU obtiene de MDR el dato obtenido,
OPERACION
DE ESCRITURA.
- La CPU carga en el registro de direcciones (MAR) la dirección de memoria donde ubicaremos el dato, al mismo tiempo carga en el registro de intercambio (MDR) el dato que queremos escribir.
- A continuación el el selector de memoria le dice a la memoria donde queremos escribir.
- Se accede a la memoria y se guarda el dato correspondiente.
Memoria
Cache;
La memoria cache es una memoria intermedia que se situá
entre la memoria principal y la CPU para acelerar los accesos a la
memoria.
-Cuando se accede a la RAM para leer in dato por primera
vez se hace una copia en la cache, la siguiente vez que se quiera
acelerar ese dato directamente se accede a la cache.
- Hay varios niveles de memoria cache L1, L2, L3. Aunque no todas las placas disponen de la totalidad de ellos.
- Los primeros niveles se sitúan dentro de la CPU, mientras el ultimo (si existe) se situa fuera de la CPU.
MEMORIA
ROM
Es una memoria no volátil, que viene grabada de fabrica
,su finalidad es contener la rutina de inicio.
(POST → Power on Selft Test)
Al encender el equipo chequea todos los recursos
disponibles del sistema, (RAM, Periféricos,...), cuya información
esta almacenada en la RAM-CMOS.
(BIOS → Basic Input/Output System)
Localiza todas las unidades del sistema y ejecuta los
registros de arranque necesarios para cargar el sistema operativo en
la RAM.
Actualmente esta rutina se almacena en memoria de tipo
flash, que pueden ser actualizadas por el usuario.
MEMORIAS
HIBRIDAS.
Para la construcción de la memoria ROM se han ido
sucediendo diferentes tecnologías.
- La PROM (ROM Programable), es un tipo de memoria que se puede programar una sola vez.
- La EPROM, los datos se pueden grabar también fuera del ordenador, pero se puede volver a programar.
- La EEPROM, los datos se pueden grabar y modificar dentro del ordenador.(No Volátil)
- La Flash, son tipos de memoria volatil pero como necesita muy poca alimentación eléctrica su funcionamiento es similar a una ROM.
CICLO
DE EJECUCION DE UNA INSTRUCCION.
→ Fase de Búsqueda;
- El contador de programa indica la posición de memoria donde se encuentra la siguiente instrucción a ejecutar. La unidad de control envía una micro-orden para cargar esta dirección en el registro de direcciones de memoria (MAR), a través del bus de direcciones.
- El selector de memoria utiliza el contenido del (MAR) para acceder a la dirección de memoria indicada, lee su contenido y lo transfiere al registro de intercambio (MDR),
- La Unidad de control accede al registro de intercambio (MDR), obtiene la instrucción ya pasa al registro de instrucción (IR) a través del bus de datos.
- El decodificador interpreta la instrucción que llega desde el registro de instrucción (IR) para averiguar cuál es la operación que debe realizarse y genera las micro-ordenes necesarias para poder ejecutarla informando al secuenciador.
- Finalmente, el contador del programa se incrementa 1 para quedar apuntando a la próxima instrucción a ejecutar.
→ Fase de Ejecución;
- Se transfiere la dirección del primer operando desde la unidad de control al registro de dirección de memoria (MAR).
- El selector de memoria utiliza el contenido del MAR para acceder a la dirección de memoria indicada, lee su contenido y transfiere el dato leído al registro de intercambio.
- Se lleva el primer operando desde el registro de intercambio al registro de entrada 1 (REN1) de la ALU.
- Se repiten los mismos pasos con el segundo operando, pero en este caso se llevan al registro de entrada 2 (REN2).
- El Secuenciador genera una micro-orden para que se ejecute la operación, guardando el resultado en el acumulador.
- El resultado se transfiere, a través del bus de datos, del acumulador al registro de intercambio de memoria.
- La dirección donde se va a guardar el resultado se transfiere, a trabes del bus de direcciones, al registro de dirección e memoria.
- El selector de memoria activa la celda donde se va a almacenar el resultado y este pasas desde el registro de intercambio a esa celda.
No hay comentarios:
Publicar un comentario