Funcionamiento de un ordenador
Desde el punto de vista operacional, la realización de una tarea cualquiera se inicia con el almacenamiento en la memoria principal del programa adecuado para llevarla a cabo. Las instrucciones que forman el programa son llevadas desde la memoria al procesador, que ejecuta las instrucciones especificadas con los operandos (los datos) almacenados asimismo en la memoria.
Las transferencias entre la memoria principal y el procesador se inician con el envío a la unidad de memoria de la dirección correspondiente a la posición de memoria que participa en el acceso, acompañadas de la emisión de las señales de control adecuadas. Acto seguido, los datos son transferidos desde o hacia la memoria.
El procesador está formado esencialmente por circuitos aritméticos y lógicos que son sus elementos de procesamiento. Dispone asimismo de registros para el almacenamiento temporal de la información, entre los cuales destacan el registro de instrucción y el contador de programa, además de varios registros de aplicación general. El primero es el que contiene el código correspondiente a la instrucción que se ejecuta y el que permite a la unidad de control saber cuáles son las operaciones básicas que deben llevarse a cabo, tanto en el procesador como en los periféricos, para obtener el resultado apetecido. El contador de programa es un registro que rastrea la ejecución de un programa y contiene la dirección de memoria de la instrucción que se está ejecutando en ese instante. Durante el intervalo temporal abarcado por la ejecución de la instrucción, el contador de programa se actualiza apuntando hacia la dirección que debe traerse desde la memoria principal.
Finalmente tenemos los registros de dirección de memoria, que contienen la dirección de la localización desde o hacia la cual hay que transferir los datos, y el registro de datos de memoria, que contiene aquellos datos que deben escribirse o leerse en dicha dirección. Como ya sabemos, el programa reside en la memoria principal. Para ello se ha introducido previamente gracias a la unidad de entrada. Al fin de que se inicie la ejecución de un programa hay que hacer que el contador de programa envía al registro de dirección de memoria una señal de control de lectura. Una vez transcurrido el tiempo de acceso a la memoria, la primera instrucción del programa se lee, se extrae dela memoria y se carga en el registro de datos de memoria. Luego, la instrucción contenida en el registro de datos es transferida al registro de instrucción, con lo cual se encuentra ya preparada para ser descodificada y ejecutada.
En el caso de que la instrucción contenga alguna operación que deba ser realizada por la unidad aritmético—lógica, es necesario obtenerlos operandos adecuados (que pueden residir en la memoria o en el registro general del ordenador) para que éstapueda realizarla. Para ello el operando es leído allí donde se encuentra, pasa al registro de datos de memoria y de ahí a la unidad aritmético-lógica, donde se lleva a cabo la operación con los diversos operandos.
Cuando el resultado de dicha operación deba almacenarse en la memoria, ha de enviarse antes al registro de datos de memoria desde donde llegará a ella. Además, la dirección de la localización en la que se almacena el resultado se envía mal registro de dirección de memoria, iniciándose la escritura.
El contador de programa apunta hacia la siguiente instrucción y así en adelante.
Deben existir también instrucciones máquina que permiten enviar datos a los dispositivos de salida, además de disponer de la capacidad suficiente para recibir datos procedentes de los dispositivos de entrada. Se dispone asimismo de la llamada señal de interrupción, que activa, y de la rutina de interrupción/servicio, que permite que en condiciones especiales un dispositivo de entrada/salida envíe al procesador una solicitud de servicio, lo que interrumpe el programa en ejecución.
Sin embargo, dado que dicha interrupción puede modificar el estado interno del procesador, es necesario, antes de llevarla a cabo, guardar la situación en la memoria central (es decir almacenar el contenido de contador de programa, el de los registros generales y alguna información de control). Una vez finalizada la rutina de interrupción/servicio, se restaura el estado del procesador con lo cual la ejecución del programa que había sido interrumpida continúa.
No obstante, todo lo dicho hasta ahora nos ha dado información acerca de las unidades que forman el ordenador y de los cometidos que llevan a cabo sin mencionar cómo deben estar interconectadas para que todo ello sea posible.
Para poder alcanzar velocidades razonables de operación, los ordenadores deben estar organizados en forma paralela; esto significa que todas las unidades han de poder manejan en un instante dado, una palabra completa de datos, así como que las transferencias de datos entre las diversas unidades deben hacerse en paralelo, lo cual implica que deben existir los conductores necesarios para ello.
Todas las pistas conductores de una determinada entidad (es decir, que son los caminos principales para la transmisión de los datos) se agrupan bajo la denominación de bus. Además de las pistas conductoras para los datos hay otras destinadas al control y direccionamiento. Los agrupamientos de pistas conductoras o caminos pueden ser de tres tipos: de datos (que se emplean para la transmisión de datos y para los cuales el número de pistas corresponde al de bits que toma cada palabra), de dirección (que indican la localización para el acceso a los datos contenidos en memoria) yde control (con los cuales se indica la dirección de la transferencia de datos y se coordinan los diversos sucesos que se producen durante ésta).
En función de los diversos buses que unen los elementos se habla de estructura de dos buses y de bus único. En la primera el procesador interactúa con la memoria a través del llamado bus de memoria, mientras que las funciones de entrada y salida de datos se regulan a través de un bus de entrada/salida que llega a la memoria a través del procesador (que controla las transferencias y vigila todo el proceso).
En este tipo de estructura, todas las unidades están conectadas a un solo bus que constituye, de este modo, el único medio de interacción mutua, con lo que solamente dos de ellas pueden utilizar simultáneamente el bus para la transferencia, pues éste no admite más de una por vez. Su ventaja principal radica en su bajo costo y en la flexibilidad para la conexión de periféricos, aunque su velocidad de operación es menor.
Dado que la interconexión de los diversos dispositivos cuyas velocidades son diferentes plantea; problemas (como el bloqueo de un procesador de alta velocidad por un dispositivo de entrada/salida lento), hay que disponer de un mecanismo de transferencia eficiente que en la práctica es constituido por los registros buffer que contienen la información durante las transferencias.
Estos registros son los que permiten, por ejemplo, que si el procesador transfiere caracteres a través del bus hasta la impresora para que ésta los imprima, los caracteres queden en el registro buffer de salida de la impresora y se vayan imprimiendo, fuera ya del control del procesador, mientras que éste y el bus se ocupan de otra tarea.
Los registros buffer actúan como espacios de almacenamiento intermedio y pueden ser de dos tipos: físico (como el de la unidad aritmético-lógica) y lógico (como los que facilitan el intercambio de información entre los diversos periféricos de un ordenador).