Saltar al contenido

Arquitectura de ordenadores

Este es todo el contenido que encontrarás en este artículo:

¿Qué es la arquitectura de ordenadores?

El concepto de arquitectura en informática es muy importante puesto que describe la forma en que este está construido un ordenador. La arquitectura determina los componentes o bloques que conforman una máquina y cómo estos se coordinan y comunican entre sí. 

Cuando hablamos de bloques nos referimos a los componentes físicos de la máquina (como la RAM, el disco duro o el microprocesador), así como los componentes más específicos que conforman a estos. Una memoria RAM o un microprocesador a su vez tienen su propia arquitectura.

Cada bloque realiza una tarea concreta, por lo que el funcionamiento correcto del mismo, así como la comunicación y coordinación con el resto de componentes, es fundamental para el funcionamiento correcto de toda la máquina. Es por esto que la elección de la arquitectura influirá posteriormente en el rendimiento de la máquina en su totalidad, así como de cada cada elemento que la conforman de manera individual. 

El uso de arquitecturas en computación es muy beneficioso puesto que permite la especialización de cada bloque y simplifica la resolución de los problemas específicos de cada uno, así como el escalado o sustitución de un componente concreto en caso de necesidad.

Arquitectura Von Neumann

En 1944, el matemático John Von Neumann definió un modelo teórico basado en componentes. En él describe cómo debe ser el funcionamiento de un ordenador electrónico que ejecuta programas almacenados.

Años después, concretamente en 1952, construyó la máquina EDVAC basándose en el modelo anteriormente descrito. Fué el primer ordenador cuyo hardware y software estaban separados.

La mayoría de los ordenadores actuales, así como dispositivos móviles, videoconsolas o televisores inteligentes, se basan en la arquitectura de Von Neumann, por lo que merece la pena conocerla.

En la siguiente imagen puedes ver los diferentes componentes que conforman la arquitectura de Von Neuman. Vamos a analizarlos en detalle uno por uno.

Arquitectura Von Neumann

Unidad central de proceso (CPU)

Podría decirse que es el cerebro del ordenador. Es responsable de procesar los datos y controlar todos los componentes que forman parte de la máquina.

Se trata de un circuito integrado bastante complejo, pero podemos destacar 3 elementos principales: Los registros, la unidad de control, la unidad aritmético-lógica.

  • Registros: Están destinados al almacenamiento de instrucciones, datos y direcciones de memoria. Sirven como zonas intermedias de almacenamiento que permiten a los distintos componentes trabajar con los datos de forma más eficiente y rápida que si lo hiciesen directamente sobre la memoria principal.
  • Registro de instrucción (CIR – Current Instruction Register): Almacena la siguiente instrucción del programa que debe ejecutarse. El total de instrucciones del programa se encuentra en la memoria principal y se van cargando de forma secuencial en el registro de instrucción.
  • Contador de programa (PC – Program Counter): Contiene la siguiente dirección de memoria a la que se debe acceder para cargar las instrucciones correctas en los registros de instrucción. Cada vez que se procesa una instrucción de los registros de instrucción el contador de programa se incrementa. 
  • Registro de direcciones (MAR – Memory Address Register): Sirve para almacenar la dirección de memoria utilizada en operaciones de lectura o escritura sobre la memoria principal. Contiene la dirección de la que se debe leer o en la que se debe escribir.
  • Registro de intercambio de memoria o registro de datos (MDR – Memory Data Register): Estrechamente relacionado con el registro de direcciones. Contiene el dato que se ha leído de la dirección almacenada en el registro de direcciones en el caso de las operaciones de lectura, o el dato que se debe escribir en dicha dirección si se trata de una operación de escritura.
  • Unidad de control (CU – Control Unit): Lee las instrucciones almacenadas en la memoria principal y las carga en el registro de instrucción, las decodifica y las envía a la unidad de proceso para su ejecución.
    Una vez procesada una instrucción se incrementa el contador de programa para conocer la posición en memoria que ocupa la siguiente instrucción.
  • Unidad aritmético-lógica (ALU): Es la responsable de realizar todas las operaciones aritméticas (sumas, restas, etc.) y lógicas (AND, OR, etc.) necesarias para la ejecución de la instrucción actual.

Memoria principal

Es lo que conocemos como la memoria RAM. Aunque inicialmente era mucho más sencilla que las actuales memorias con caché y algoritmos predictivos.

Se trata de una estructura simple similar a una tabla en la que se almacenan las instrucciones y los datos del programa que se está ejecutando. A cada elemento almacenado en memoria principal le corresponde una dirección secuencial de memoria.

Funcionamiento de la memoria principal en el modelo Von Neumann

Las direcciones de memoria son fundamentales para la ejecución de los programas. Como ya vimos anteriormente, la CPU dispone de un registro denominado contador de programa que contiene la siguiente dirección de memoria a la que se debe acceder y que se incrementa cada vez que se procesa una instrucción. 

Gracias al contador de programa, las instrucciones almacenadas en memoria se van cargando en el registro de instrucción de forma secuencial, lo que permite ejecutar el programa cargado en memoria de forma correcta.

Cada vez que el contador de programa se incrementa, la nueva dirección generada se carga en el registro de direcciones. En esta dirección, dentro de la memoria, se encuentra la siguiente instrucción que se debe ejecutar. Se carga la instrucción almacenada en memoria en el registro de datos. Posteriormente esta información se decodifica y se carga en el registro de instrucciones para su ejecución.

Controlador de entrada salida

Es el responsable de controlar el intercambio de datos entre la máquina y los periféricos.

Un periférico es un componente externo que es capaz de interactuar con la máquina. Existen dos tipos de periféricos: los de entrada y los de salida.

  • Periféricos de entrada: Envían información al sistema (por ejemplo, un teclado).
  • Periféricos de salida: Reciben información del sistema (por ejemplo, una impresora)

Buses

Todos los componentes anteriores se comunican entre sí mediante el uso de buses.

Existen tres buses en la arquitectura Von Neumann: el bus de datos, el bus de direcciones y el bus de control.

Buses en arquitectura Von Neumann
  • Bus de datos: Permite intercambiar datos e instrucciones entre los distintos componentes.
  • Bus de direcciones: Destinado a transferir las direcciones de memoria donde se encuentran los datos a la CPU para que esta pueda utilizar dichos datos.
  • Bus de control: Utilizado por la CPU para enviar órdenes al resto de componentes y así controlar los procesos.