Arquitectura Von Neumann. Segunda parte. Lenguaje máquina y profundizando en conceptos

Home  >>  Apuntes ASIR  >>  Arquitectura Von Neumann. Segunda parte. Lenguaje máquina y profundizando en conceptos

Arquitectura Von Neumann. Segunda parte. Lenguaje máquina y profundizando en conceptos

Este artículo es una segunda parte de Arquitectura Von Neumann. Qué es y cómo funciona. Recomiendo encarecidamente leer dicho artículo antes de comenzar con este.

Como ya hemos comentado en otro momento, la arquitectura Von Neumann permite que los ordenadores sean de propósito general y funcionen en base a programas de distintas finalidades. Cuando queramos cambiar la finalidad del ordenador solo hace falta cambiar el programa.

Estos programas a los que nos referimos en este artículo son códigos en lenguaje máquina. Códigos directamente interpretables por el procesador que, aunque solo puede leer en binario, nosotros usaremos lenguaje entendible para no complicarnos.

Para más información sobre el lenguaje máquina, mi recomendación es leer el artículo de Wikipedia, que es cortito: https://es.wikipedia.org/wiki/Lenguaje_de_m%C3%A1quina

Fase de búsqueda y ejecución

En estas fases se involucran tres componentes importantes: la memoria principal, la Unidad de Control y la Unidad Aritmetico-Lógica.

Por un lado, la memoria principal se representa con una tabla, la cual incluye las posiciones de memoria y el contenido de estas. Usaremos como base el listado del artículo anterior para matizar mejor los pasos que se realizan durante la búsqueda y la ejecución.

  1. Leer la instrucción:
    • La UC contiene un Contador de Programa (CP), este almacena una posición de memoria. Dicha posición indica la ubicación en la memoria principal de la orden a ejecutar.
    • Se busca la posición de memoria del CP en la memoria principal y se transporta la instrucción que contiene hasta el Registro Intermedio (RI).
    • El RI interpreta la instrucción y emite las órdenes necesarias.
  2. Ejecutar la instrucción
    • Las órdenes del RI son leídas por la UAL (ALU en inglés), que lleva a cabo las instrucciones.
    • El resultado es almacenado en el Acumulador (AC). Desde ahí, puede reutilizarse para la siguiente instrucción o ser enviado a la memoria.
    • El CP pasa a la siguiente instrucción y comienza todo de nuevo.

Aquí un ejemplo sobre cómo funciona:

Operaciones de programas

Todo el proceso que hemos visto anteriormente está implementado en la ejecución de programas. Los programas otorgan una tabla de instrucciones para que la UAL sepa qué operaciones realizar. Trabajaremos en base a este ejemplo:

1Cargar AC desde memoria.
2Almacenar AC desde memoria.
3Sumar al AC de memoria.
4Restar al AC de memoria.
5Multiplicar al AC de memoria.
6Dividir al AC de memoria.

Podemos apreciar como cada número tiene adjudicado una instrucción. Cuando la instrucción se transporta hasta el RI, este interpreta el primer número como la orden a ejecutar. Esto quiere decir que si la orden comienza por el número 1 significará cargar un número al AC. Las tablas de instrucciones varían dependiendo el programa.

Vamos a explicarlo todo mejor usando un pequeño ejercicio. Usaremos el contenido de la memoria principal de la animación de arriba con la tabla de instrucciones que acabamos de crear.

Empezaremos como indica el gif de arriba. Cargamos la primera orden (100) al Contador, y el contenido al Registro. Este contenido es 1300, el primer número indica lo que tenemos que hacer según la tabla de arriba, en este caso «Cargar AC desde memoria». Entonces cargamos el contenido de la posición 300 al Acumulador.

Tras completar la orden, el contador avanza a la siguiente posición, la 101, y carga su contenido en el RI. Como podemos ver en la imagen, el contenido del AC no se ha eliminado ni superpuesto al cambiar de orden.

El contenido del RI empieza por un 3, según la tabla de arriba significa «Sumar al AC de memoria». El RI indica 301, así que cogemos el contenido de la posición 301 y se la sumamos al contenido que ahora mismo tenemos en el AC. El resultado es 23.

Ahora pasamos a la siguiente orden, el CP pasa a ser 102 y el RI 2301.

Según la tabla de arriba, el 2 significa «Almacenar AC desde memoria», por lo que el contenido del AC lo guardamos en la posición 301.

Y aquí finaliza la ejecución del programa. Al final todo resulta metódico y simple cuando se entiende. Se podría profundizar más en el tema, como las instrucciones inmediatas, pero esto no forma parte del contenido de esta entrada.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *