Saltar la navegación

2.- Arquitectura Von Neumann.

Von Neumann diseño esta arquitectura, su gran novedad fue que en la memoria principal (memoria RAM) se guardan todos los datos y todas las instrucciones de los programas. La memoria no los diferencia, siendo el procesador el que los tiene que diferenciar.

Esta arquitectura Von Neumann, se ha utilizado desde el primer PC (Personal Computer) creado por IBM en el año 1981.

 La arquitectura de un computador consiste en:

  • CPU (Unidad central de proceso) o procesador.
  • Memoria principal o memoria física:
  • Unidad de entrada/salida (Un disco duro, se considera un componente externo de entrada/salida de datos)
  • Buses: Por donde circulan los datos e instrucciones, entre los distintos componentes. En la imagen siguiente, están representados por las flechas.

Observaciones:
La memoria principal, es la memoria RAM.
Los discos duros, forman parte de la unidad de Entrada/Salida. También reciben el nombre de memoria auxiliar.  

Ilustación del diagrama Arquitectura Von Neumann
David Strigoi (Dominio público)

Función de la memoria principal

La memoria central, conocida como RAM (Random Access Memory), es la encargada de almacenar los datos y las instrucciones de los programas que deben ejecutarse, así como toda aquella información que el sistema necesite para su funcionamiento. Está constituida por muchísimas celdas de igual longitud capaces de retener información en su interior mientras el ordenador se encuentre encendido. Cuando el ordenador se apaga, se pierde su contenido.

Llamamos registro a una celda de memoria con bastantes bits. Es decir, la memoria está formada por varios registros. Si el procesador es de 64 bits, todos los registros serán de 64 bits.

Para que la CPU pueda ejecutar un programa es necesario que esté alojado en su memoria principal.

Función de la CPU: Unidad Central de Proceso

El procesador es el principal componente del computador. Lo compone 2 partes principales: ALU (Unidad aritmética lógica) y UC (Unidad de control). Además, forman parte del procesador unos registros y la memoria caché.

La Unidad de Control, que es la que gobierna, la que se encarga de ejecutar los programas, controlando su secuencia, interpretando y ejecutando sus instrucciones. Se encarga también de controlar al resto de componentes; como los periféricos, la memoria, la información que hay que procesar, etc., a tenor de lo que van necesitando las instrucciones.

La Unidad Aritmético-Lógica que hace los cálculos matemáticos y los cálculos lógicos necesarios para su funcionamiento.

Dentro de la CPU hay registros de memoria. En los registros se almacenan una instrucción o dato, almacenan la dirección de la siguiente instrucción. El objetivo es acceder menos veces a la memoria principal.

También dentro de la ALU se encuentra la memoria caché. La memoria caché es un conjunto de registros. Su fin, es acceder menos veces a la memoria principal. La memoria caché es como una pequeña memoria RAM pero mucho más pequeña.

Ejemplo: Los procesadores Celeron iniciales no tenían memoria caché, por ese motivo eran mucho más baratos, pero más lentos.

Procesador de n bits

Los procesadores actuales son de 64 bits. Hace unos años eran de 32 bits. ¿Qué significa?

Si un procesador es de 64 bits, significa que los datos, o instrucciones tienen una longitud de 64 bits. Como en los registros se guardan esas instrucciones, cada registro tiene 64 bits. Se dice que la longitud de palabra es 64 bits.

Observación:

Son iguales las longitudes de los registros, el ancho de la memoria caché , el anchos de la memoria principal, el ancho del bus de direcciones y el ancho del bus de datos.

Para saber más

Más información en el siguiente enlace

Función de la unidad de entrada/salida

Los sistemas de Entrada/Salida son circuitos electrónicos que permiten el intercambio de información entre la CPU y los periféricos. Las unidades de entrada se utilizan para cargar programas y datos en la memoria principal desde los periféricos de entrada, y las unidades de salida se utilizan para sacar los resultados de los procesos realizados a través de los periféricos de salida.

Los discos duros, o medios de almacenamiento, desde el punto de vista de Von Neumann, son dispositivos de entrada/salida.

Para entender porque es así, observar que un ordenador, se puede arrancar sin disco duro (por ejemplo, se puede arrancar con un pendrive con una iso de Linux). Sin embargo, un ordenador, no puede arrancar sin memoria RAM.

Buses del sistema

Los Buses del Sistema son el conjunto de circuitos eléctrónicos que conectan la CPU con el resto de unidades para comunicarse entre sí. Cada bus es un conjunto de cables o pistas de un circuito integrado, que permiten la transmisión en paralelo de la información entre los diferentes componentes del ordenador.

Hay tres clases distintas de buses:

El bus de datos e instrucciones. Utilizado para trasladar tanto datos como instrucciones desde la memoria principal al resto de componentes del ordenador y viceversa.

El bus de control. La CPU transmite por él las órdenes (microórdenes) al resto de unidades. Y recibe de ellas señales indicando su estado.

El bus de direcciones. Por él se transmiten las direcciones de destino de los datos que se envían por el bus de datos.

En un procesador de 64 bits, el ancho de los  buses de datos y direcciones son de 64 bits. Eso quiere decir, que son como una autopista de 64 carriles, circulando en paralelo, donde por cada carril circula un bit de los 64 que forma una palabra. Estas palabras, pueden ser el contenido del registro de instrucción, o el de un registro de la caché o de la memoria principal.

Ilustración de los buses de un sistema
W Nowicki (CC BY-SA)


Veamos el siguiente ejemplo para entender la función de los 3 buses: cuando la CPU tiene que obtener la información contenida en una posición de memoria, debe indicar su dirección mediante el bus de direcciones, pero también debe mandar una señal de lectura por el bus de control. A continuación, recibe dicha información por el bus de datos.

Ejecución de las instrucciones de un programa

Cuando se ejecuta un programa, el programa se carga en memoria. Las instrucciones del programa se ejecutan de forma secuencial, leyéndose de posiciones consecutivas de memoria. Tras ejecutar la instrucción que se encuentra en la dirección "x" se ejecuta la instrucción que está en la dirección "x+1" y así sucesivamente.

La ejecución de una instrucción conlleva realizar una secuencia de pasos.

Cada uno de estos pasos puede necesitar un número diferente de ciclos de reloj dependiendo de su propia complejidad y de los recursos que la CPU tenga para su realización.

Fases en la ejecución de una instrucción

Una vez acabada una instrucción, para ejecutar la siguiente se realizan dos fases:

Fase de búsqueda. Consiste en localizar la instrucción en memoria y llevarla a la Unidad de Control

Para ello, el registro Contador de Programa (CP) almacena donde tiene que leer la siguiente instrucción. Se manda la señal correspondiente para leer la instrucción en memoria, y se trae por el bus de datos la instrucción a la CPU. Esta instrucción se almacena en el registro de instrucción (RI)

Fase de ejecución. Consiste en realizar el cálculo en la ALU

La ALU es la que tiene el operador, que realiza operaciones sencillas, como la suma o multiplicación. Para ello, tiene 3 registros importantes: los 2 registros operandos donde introducir los datos y un registro acumulador (AC) donde guardar el resultado.

Jerarquía de memoria

En el ordenador hay muchos tipos de memoria:

- Registros de memoria dentro del procesador o CPU.

- Memoria caché habitual dentro de la CPU.

- Memoria RAM o principal.

- Discos duros.

¿Por qué hay tantos tipos de memoria?

Por un compromiso entre coste y velocidad, a mayor velocidad, el precio también es mayor.

Ejemplo: La memoria RAM es mucho más rápida que el disco duro, pero es mucho más cara. Por 50€ se pueden comprar 8GB de RAM o un disco duro de 1 Terabyte.

Ilustración de Jerarquía de memorias
Miguel Ángel García Lar (CC BY-NC-SA)