Arquitectura del equipo microinformático

Escrito por Rafa Morales el 18 Junio 2020
Placa base. Imagen de Chris Ciapala en Pixabay

La arquitectura del equipo microinformático define las diferentes unidades funcionales que componen el equipo, sus características principales y la comunicación entre ellas.

La arquitectura más utilizada en la mayoría de los equipos microinformáticos actuales es la Arquitectura de Von Neumann, propuesta por el matemático húngaro John von Neumann en 1945. Aunque existe otras menos implementadas como la Arquitectura Harvard.

La Arquitectura de Von Neumann se diseñó para conseguir la siguiente funcionalidad, que el equipo microinformático ejecutara programas que manejaran un conjunto de datos y que tanto estos programas como estos datos estuvieran almacenados en una memoria de lectura y escritura interna en el propio equipo. De esta manera se podrían alternar entre diferentes programas e incluso el mismo programa alternar entre diferentes datos.

Vamos a aclarar los conceptos nombrados y otros que necesitaremos a continuación:

  • Programa: Son aquellos que se encargan de realizar una tarea específica en el equipo microinformático. Los programas se descomponen en una serie de instrucciones que se ejecutan de manera secuencial (una tras otra) para realizar dicha tarea.
  • Instrucción: Es una pequeña acción indivisible que es capaz de realizar el equipo microinformático.
  • Dato: Es la información con la que trabajan los programas. Puede ser información que recibe el programa o información que devuelve el programa.

 

Componentes de la Arquitectura de Von Neumann

Unidades funcionales

Para alcanzar la funcionalidad requerida se diseñaron las siguientes unidades funcionales para el equipo microinformático, según la bibliografía que consultéis estos nombres pueden variar ligeramente:

  • Unidad de Control (UC): Se encarga de gestionar y coordinar todas las unidades funcionales para conseguir un fin determinado.
  • Unidad Aritmético-Lógica (UAL): Se encarga de realizar todas las operaciones aritméticas y lógicas necesarias durante la ejecución de los programas.
  • Unidad de Central de Proceso (UCP): No es una unidad en sí, si no el nombre que recibe el conjunto de la Unidad de Control (UC) y la Unidad Artimético-Lógica (UAL).
  • Unidad de Memoria Principal (UMP): Se encarga de almacenar de manera temporal todos los programas que se van a ejecutar en el equipo y los datos asociados a estos programas.
  • Unidad de Entrada/Salida (UES): Se encarga de introducir y extraer información del resto del equipo y del exterior del equipo.

Unidades funcionales de la Arquitectura de Von Neumann

A continuación vamos a detallar cada una de estas unidades funcionales.

 

Unidad de Control (UC)

La Unidad de Control (Control Unit - CU) se encarga de gestionar y coordinar todas las unidades funcionales para conseguir un fin determinado. Para ello busca las intrucciones en la Unidad de Memoria Principal, las interpreta y le dice a cada unidad funcional qué debe hacer para llevar a cabo esa instrucción de manera completa.

La Unidad de Control posee los siguientes componentes:

  • Decodificador: Es el encargado de interpretar la instrucción y determinar el conjunto de órdenes necesarias para llevarla a cabo.
  • Secuenciador: Es el encargado de activar las líneas de control necesarias para decirle al resto de unidades funcionales qué deben hacer.
  • Reloj: Es un circuito que genera pulsos eléctricos a intervalos constantes y así sincronizar todas las órdenes que se llevan a cabo en el equipo.
  • Registros: Son lugares de almacenamiento temporal en los que se almacenan direcciones, instrucciones o datos que la Unidad de Control necesite en ese momento.

 

Unidad Aritmético-Lógica (UAL)

La Unidad Aritmético-Lógica (Arithmetic Logic Unit - ALU) es el centro de cálculo del equipo, se encarga de realizar las operaciones elementales aritméticas (sumas, restas, multiplicaciones, divisiones, etc) y lógicas (or, and, not, etc) que le encarga la Unidad de Control.

La Unidad Aritmético-Lógica posee los siguientes componentes:

  • Registros: Son lugares donde se almacenan de manera temporal los datos que se leen de la Memoria Principal o la Unidad de Entrada/Salida y los datos que genera la unidad tras realizar los cálculos.

 

Unidad Central de Proceso (UCP)

La Unidad Central de Proceso (Central Processing Unit - CPU) es el nombre que recibe la unión de la Unidad de Control y la Unidad Aritmético-Lógica.

La Unidad Central de Proceso es lo que se conoce como Microprocesador.

 

Unidad de Memoria Principal (UMP)

La Unidad de Memoria Principal (Main Memory Unit - MMU) se encarga de almacenar de manera temporal todos los programas que se van a ejecutar en el equipo y los datos asociados a estos programas.

La Unidad de Memoria se compone de un conjunto de celdas (cells) con la misma capacidad, es decir, el mismo número de bits cada celda. Cada celda tiene un identificador único para ser referenciada que se denomina dirección (address). En las celdas se almacenarán las instrucciones de los programas o los datos. El almacenamiento será volátil, lo que significa que cuando deje de recibir energía el contenido de las celdas se borrará. En las celdas se podrán realizar operaciones de lectura y escritura en sus celdas.

Los programas se almacenan en la Unidad de Memoria de manera secuencial, es decir, las instrucciones del programa están en celdas consecutivas.

La Unidad de Memoria Principal es lo que se conoce como Memoria RAM.

 

Unidad de Entrada/Salida (UES)

La Unidad de Entrada/Salida (Input Ouput Unit - IOU) se encarga de introducir y extraer información del resto del equipo y del exterior del equipo, exactamente permite la comunicación con:

La Unidad de Entrada/Salida es lo que se conoce como Chipset de la placa base.

 

Buses de comunicación

Los buses de comunicación (buses) son los canales por los que se comunican las unidades funcionales de la arquitectura entre sí.

Existen diferentes tipos de buses de comunicación según sea el tipo de información que viaje por ellos:

  • Bus de control (Control bus): Transmite las señales de control que sirven para gobernar el funcionamiento de las diferentes unidades funcionales.
  • Bus de direcciones (Address bus): Transmite direcciones entre la Unidad de Control y la Unidad de Memoria Principal.
  • Bus de datos (Data bus): Transmite instrucciones o datos entre las diferentes unidades funcionales.

 

Registros

Los registros (registers) son lugares de almacenamiento temporal en los que se almacenan direcciones, instrucciones o datos que la unidades funcionales necesiten en ese momento. Vamos a describir los registros más importantes de la arquitectura:

Registros de la Unidad de Control:

  • Contador de Programa (CP): Almacena la dirección de memoria que contiene la próxima instrucción a ejecutar.
  • Registro de Dirección de Memoria (RDM): Almacena la dirección de memoria de la que se va a leer o en la que se va a escribir.
  • Registro de Intercambio de Memoria (RIM): Almacena el dato que se lee de la memoria o que se escribe en la memoria.
  • Registro de Instrucción (RI): Almacena la instrucción se va a ejecutar a continuación.

Registros de la Unidad Aritmético-Lógica:

  • Acumulador (AC): Almacena el dato con el resultado del cálculo realizado por la Unidad Aritmético-Lógica.

 

Funcionamiento de la Arquitectura de Von Neumann

La función básica de la arquitectura es ejecutar las instrucciones de los programas una tras otra para conseguir obtener el resultado final de dicho programa.

Este funcionamiento se lleva a cabo con lo que se conoce como el Ciclo de Instrucción, el cual se compone de 3 fases de ejecución que se van repitidiendo hasta finalizar el programa:

  • Fase de búsqueda: La Unidad de Control lee de la Unidad de Memoria Principal la instrucción a ejecutar.
  • Fase de ejecución: La Unidad de Control lleva a cabo los pasos necesarios para completar la instrucción, utilizando según sea necesario el resto de unidades funcionales.
  • Fase de interrupción: La Unidad de Control comprueba si a través de la Unidad de Entrada/Salida algún componente externo desea utilizar sus recursos.

Ciclo de instrucción de la Arquitectura de Von Neumann

 

Fase de búsqueda

En la fase de búsqueda la Unidad de Control lee de la Unidad de Memoria Principal la instrucción a ejecutar, siguiendo los siguientes pasos:

  1. La Unidad de Control transfiere la dirección del Contador del Programa (CP) al Registro de Dirección de Memoria (RDM).
  2. La Unidad de Control envía la dirección del Registro de Dirección de Memoria (RDM) a la Unidad de Memoria Principal, ésta pone la instrucción que contenga esa posición de memoria en el bus de datos y la Unidad de Control se encarga de almacenarlo en el Registro de Intercambio de Memoria (RIM).
  3. La Unidad de Control transfiere el contenido del Registro de Intercambio de Memoria (RIM) al Registro de Instrucción (RI).
  4. La Unidad de Control incrementa en 1 la dirección del Contador de Programa (CP) (a no ser que se especifique lo contrario) y así tendrá preparada la dirección de la siguiente instrucción a ejecutar. Esto se hace así porque la ejecución de un programa es secuencial y éste se almacena en memoria en celdas consecutivas.

 

Fase de ejecución

En la fase de ejecución la Unidad de Control ejecuta la instrucción leída en la fase de búsqueda, siguiendo los siguientes pasos:

  1. El decodificador descompone la instrucción, la cual se compone del código de operación, que especifica la operación a realizar, y de los operandos, que especifican los datos que utilizará la operación.
  2. El secuenciador activa las líneas de control necesarias para que se realice la operación seleccionada.

 

Fase de interrupción

Antes de que la Unidad de Control pase de nuevo a la fase de búsqueda, ésta comprueba si, a través de la Unidad de Entrada/Salida, algún componente externo desea utilizar sus recursos. Para ello estos componentes utilizan una petición llamada interrupción. Si es así, el programa que se está ejecutando la Unidad de Control en este momento se retira y se almacena en la Unidad de Memoria Principal, dando paso así a la petición del componente externo, para luego volver a recuperar el programa anterior y seguir por el mismo punto de ejecución.

 

Bibliografía