Registros de stack o pila
Detalle de una placa madre con un disipador de calor y ranuras de conexión.
Es la parte de la CPU donde se guardan informaciones que luego se desean recuperar. Cuando en un programa se encuentra una llamada a subrutina, es decir, se desea intercalar un programa auxiliar y volver luego al programa inicial, se memoriza en la pila la dirección a la que hay que volver. Recuperando esta dirección al terminar la subrutina, se puede continuar con el programa principal. En este caso, se utiliza el stack como una pila de direcciones donde la última en entrar es la primera en salir, lo que se conoce como gestión LIFO (Last In, First Out).
Podemos encontrar en los microprocesadores dos tipos de stack. En primer lugar, el que está incluido dentro del propio microprocesador, que dispone de unos registros internos destinados a tal fin. Dichos registros varían en cantidad según el tipo de microprocesador y, como es lógico, la capacidad del stack se ve limitada por el número de registros que puede contener el propio microprocesador. Un segundo tipo de stack consiste en un solo registro en el interior del microprocesador, cuyo contenido apunta a una dirección de memoria externa, la cual tendrá la función de ser destinada a stack.
A este registro único, utilizado como indicador de una dirección, se le conoce como puntero o stack pointer. Cuando se desea salvar un registro, se hace en la dirección de la memoria a la que señala el puntero. Seguidamente, se cambia este para hacerlo señalar a la siguiente dirección de memoria libre. El puntero se incrementa o disminuye según sea un retorno de subrutina o un salto a subrutina. Así, tenemos una pila solo limitada por la capacidad de la memoria disponible. Es función del sistema operativo o del programador utilizar un área de memoria como stack. Esta área no debe coincidir con las áreas de programa y de datos.
Microcomputadora
Una microcomputadora es un computador cuyo procesador central es un microprocesador; además de la CPU, tiene memoria interna, generador de reloj y circuitos de entrada y salida. La microcomputadora está formada por los siguientes elementos:
- Unidad central de proceso de datos (CPU).
- Memoria para datos RAM.
- Memoria conteniendo instrucciones de programa ROM.
- Circuitos de entrada y salida (I/O).
- Generador de reloj.
Este último es un circuito que marca el ritmo de trabajo de todos los componentes de la computadora. Se trata de un oscilador, es decir, de un circuito que genera una señal con una frecuencia o cadencia determinada. Dicha señal, llamada de reloj, se envía a varios de los circuitos, entre ellos la CPU, con el fin de sincronizarlos; su frecuencia se mide en millones de ciclos por segundo (MHz).
La más simple de las microcomputadoras está formada por una CPU y una ROM. Pero una microcomputadora puede ser parte de un sistema más amplio que comprenda:
- Memorias de masa para el almacén de datos y programas.
- Diversas unidades de cálculo.
- Dispositivos o unidades para el diálogo con el usuario.
- Sensores y transductores que den información de determinadas condiciones y estados al sistema.
Controladores
Los controladores son circuitos integrados (CI) que forman parte de la estructura hardware de una computadora.
Son circuitos que ayudan a la CPU a desarrollar y agilizar su labor. Podemos clasificar a los controladores en dos grupos, atendiendo al trabajo que desarrollan:
- Controladores de unidades periféricas.
- Controladores de unidades internas a la computadora.
En el primer grupo, podemos incluir los siguientes:
- Controladores de interfaces serie y paralelo.
- Controladores de unidades de disquete o de disco duro.
- Controladores de pantalla.
- Controladores de teclado.
- Controladores de comunicaciones.
En el segundo grupo se incluyen:
- Controladores de acceso a memoria.
- Controladores de interrupciones de la CPU.
Analizaremos a continuación dos controladores de unidades internas de la computadora.
Controlador de acceso directo a memoria (DMA controller)
Con la ayuda del controlador de acceso a memoria, la unidad central de proceso de datos de la computadora se descarga de sus funciones de control, mientras hay un intercambio de información entre la unidad de memoria interna, sea RAM o ROM, y una unidad externa o periférica.
Este controlador puede considerarse como un ayudante de la unidad central. Así, mientras el controlador de acceso a memoria cumple el cometido asignado, la CPU puede efectuar otro proceso dentro de la tarea que le ha sido encomendada.
Controlador de interrupciones
En todo proceso de elaboración de datos intervienen distintas unidades internas o externas a la computadora. Cada una de estas unidades es gestionada por un controlador particular.
Si una de estas unidades desea enviar un mensaje a la unidad central de proceso de datos para indicar que necesita más datos, seguirá el siguiente camino:
- Envía una petición hacia la CPU.
- La CPU recibe la petición, interrumpe el trabajo que está realizando y le envía una señal de aceptación de su petición.
- La unidad periférica, a través de su controlador, al recibir la aceptación, inicia el diálogo con la unidad central.
- Terminado el intercambio de información entre la unidad externa y la unidad central, esta sigue con el programa en el lugar donde quedó interrumpido.
El controlador de interrupciones se sitúa en el punto primero de este proceso. Recibe todas las peticiones de interrupción enviadas por las unidades periféricas, establece un orden de prioridad y envía una interrupción a la unidad central. En todo proceso de elaboración en el interior de una computadora, deben existir unos dispositivos que posibiliten el diálogo entre la CPU y las unidades periféricas. La CPU, a través de estos dispositivos, envía mensajes al operador, visualizados en una unidad de pantalla o escritos en una unidad de impresora. O el mismo operador, mediante el teclado y la unidad de entrada, envía mensajes a la CPU.
