Arquitectura del Computador Elemental
Para componer un computador elemental se procede a ensamblar los tres componentes básicos: la unidad aritmético-lógica, la unidad de control y la unidad de memoria.
La combinación de la unidad aritmético-lógica y la unidad de control es lo que se conoce como UCP o Unidad Central de Proceso y la memoria principal se conoce como RAM o memoria de acceso aleatorio. Además deben conectarse algunas unidades de entrada y salida o periféricos para comunicar el computador con el mundo exterior.
Instrucciones Básicas de un Computador Elemental:
Las instrucciones básicas del computador elemental, es decir, las instrucciones que debe manejar cualquier tipo de computador deben estar entre las siguientes:
Instrucciones Aritmético-Lógicas:
Estas son ejecutadas por la Unidad Aritmético-Lógica e implican la operación sobre una o más variables y devolver un resultado. Para el computador elemental generalmente uno de los datos se encuentra en el acumulador y si se necesitan más son tomados de la memoria o pueden utilizarse resultados previos del acumulador. El resultado generalmente es entregado al acumulador. Las instrucciones más utilizadas de este tipos son:
- Suma (SUM): se toma un dato de una posición de memoria y se adiciona el contenido al acumulador. El resultado queda en el propio acumulador.
- Resta (RES): esta operación realmente se ejecuta como una suma, donde el sustraendo es representado en su forma de complemento a dos, lo cual consiste en invertir todos los bits de la cantidad (los unos se reemplazan por ceros y los ceros por unos) y luego sumarle uno al resultado.
- Producto (MUL): el producto se ejecuta como una sucesión de sumas. El contenido del acumulador es multiplicado por el contenido de una dirección de memoria. El resultado se deposita en el acumulador.
- División (DIV): También la división es ejecutada con base en la operación suma. Es un caso especial del producto.
- And (AND): es el producto booleano entre un bit de una dirección de memoria y un bit recogido del acumulador. El resultado se deja en el acumulador.
- Or (OR): es la suma booleana entre un bit de una posición de memoria y el bit que se encuentra en el acumulador. El resultado se deja en el acumulador.
Instrucciones de Transferencia de Datos:
Son las órdenes de realizar movimientos de datos desde la memoria principal hacia los registros o viceversa, es decir, son de dos tipos:
- Instrucciones de carga del acumulador (CAR).
- Instrucciones de almacenamiento del contenido del acumulador (ALM).
Instrucciones de Control de Flujo:
Estas instrucciones son las que organizan la secuencia u orden en que deben efectuarse las instrucciones anteriores. Lo normal es que las instrucciones se ejecuten en un orden estrictamente secuencial, a menos que una instrucción de salto obligue a que se ejecute una instrucción que se encuentre en una posición diferente. Estas instrucciones pueden ser condicionadas, que se ejecutan cuando se cumple una condición o incondicionadas, las cuales obligan a que siempre se ejecute el salto. Algunas de ellas son:
- SAI: Salto Incondicional.
- SAN: Salto si el contenido del acumulador es menor que cero.
- SAZ: Salto si el contenido del acumulador es igual a cero.
Instrucciones Especiales:
Pertenecen a estas instrucciones todas las que son propias de cada arquitectura específica de computador o las que realizan tareas especiales diferentes a las anteriores. Algunas son:
- Instrucción de detener la ejecución. Suspende el funcionamiento del computador hasta que un operador lo reinicie.
- Instrucción de intercambio de bits. Intercambia el contenido del acumulador y una posición de memoria.
Funcionamiento Detallado de un Computador:
Para que se ejecute una instrucción es necesario cumplir una secuencia que se desarrolla en los siguientes pasos:
- Búsqueda de la instrucción. Se trae de memoria la próxima instrucción por ser ejecutada y se pone en el registro de instrucción.
- Incremento inmediato del valor del contador. Para saber cuál es la siguiente instrucción que debe ejecutarse.
- Ejecución de las instrucción. Se generan los comandos necesarios para llevar a cabo su ejecución.
- Búsqueda de datos en memoria. Este paso sólo se ejecuta cuando la instrucción involucra operaciones con datos de memoria.