lunes, 8 de octubre de 2012



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


  1. La CPU carga en el registro de direcciones la dirección de memoria que se quiere cargar.
  2. Ahora el selector de memoria le indica a la memoria que queremos acceder a esa dirección.
  3. Se accede a esa dirección y se lee lo que hay en ella.
  4. El dato leído pasa al registro de intercambio.
  5. La CPU obtiene de MDR el dato obtenido,

OPERACION DE ESCRITURA.


  1. 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.
  2. A continuación el el selector de memoria le dice a la memoria donde queremos escribir.
  3. 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;

  1. 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.
  2. 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),
  3. 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.
  4. 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.
  5. Finalmente, el contador del programa se incrementa 1 para quedar apuntando a la próxima instrucción a ejecutar.



Fase de Ejecución;

  1. Se transfiere la dirección del primer operando desde la unidad de control al registro de dirección de memoria (MAR).
  2. 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.
  3. Se lleva el primer operando desde el registro de intercambio al registro de entrada 1 (REN1) de la ALU.
  4. Se repiten los mismos pasos con el segundo operando, pero en este caso se llevan al registro de entrada 2 (REN2).
  5. El Secuenciador genera una micro-orden para que se ejecute la operación, guardando el resultado en el acumulador.
  6. El resultado se transfiere, a través del bus de datos, del acumulador al registro de intercambio de memoria.
  7. 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.
  8. 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