Microprocesadores de 8 y 16 bits Canal de Direcciones, Canal de Datos, y Canal de Control Los canales son medios por los que se transmite información, son líneas o señales agrupadas según su función. En el caso de sistemas sistemas con microprocesadores, se cuenta con tres canales: Canal de datos .-
Transmite datos de una una unidad unidad a otra. Un microprocesador de 8 bits requiere de un canal de datos de 8 líneas para poder transmitir los 8 bits del dato en forma simultánea. De igual manera, un microprocesador microprocesador de 16 bits requiere un canal de datos de 16 líneas para poder transmitir los 16 bits de datos en paralelo. Si el canal de datos solo tiene 8 líneas, se requieren dos transferencias consecutivas restando velocidad al sistema. El canal de datos es bidireccional, es decir los datos fluyen en ambas direcciones.
La arquitectura de un sistema está definida por su Canal de Datos, se dice que un microprocesador tiene arquitectura simple cuando emplea un solo Canal de Datos para accesar sus registros y transferir información entre estos y las diversas unidades de las que consta el sistema. La mayoría de los microprocesadores que existen en el mercado tienen una estructura de bus único, tal arquitectura se muestra en la siguiente figura.
Microprocesadores José Luis Bravo León
En el diagrama mostrado se observa una sección de control, esta se encarga de sincronizar el funcionamiento de todo el sistema, junto a esta sección se observa la Unidad Aritmética y Lógica. Podemos considerar que la mayoría de los microprocesadores emplean una arquitectura de bus simple basada en el uso de un registro acumulador. El acumulador puede seleccionarse tanto como registro de entrada o como registro de salida en la misma instrucción. El diagrama incluye un registro auxiliar que permite a la Unidad Aritmética y Lógica la ejecución de instrucciones de desplazamiento y rotación. La operación de desplazamiento consiste en recorrer el contenido de un byte una posición o más ya sea a la derecha o a la izquierda. En el caso de una rotación el bit que sale de la posición más significativa entra a la posición del bit de menor peso del acumulador o viceversa. La estructura cuenta con un registro de banderas donde se encuentran los bits de estado del microprocesador. La mayor parte de las instrucciones aritméticas y lógicas ejecutadas por el procesador repercuten sobre el estado de alguno de los bits de estado del registro de banderas. Posteriormente tenemos los registros de uso general del microprocesador y los de direccionamiento. Los registros de uso general son necesarios para que la ALU pueda manipular datos a alta velocidad. Cada uno de estos registros esta formado por un conjunto de flip - flops conectados al canal de datos interno. Los registros de direccionamiento son registros de 16 bits destinados a almacenar direcciones, estos reciben también el nombre de apuntadores. Son Son registros dobles, su característica principal es la de estar conectados al canal de direcciones. La única forma de cargar un contenido en estos registros de direccionamiento es a través del canal de datos. Se necesitan dos transferencias por el canal de datos para cargar un registro de direccionamiento con los 16 bits. Dentro de los registros de direccionamiento al menos se cuenta con un registro contador de programa y un registro apuntador de pila. El canal de datos se comunica al exterior a través de las líneas de datos, estas se identifican como D0, D1, D2, … , D7 cuando cuando el canal esta formado por 8 líneas, siendo D0 la línea que transporta el bit menos significativo y D7 la línea que transporta el bit más significativo de la información. Cuando el ancho del canal consta de 16 líneas, estas se identifican como D0,D1, … , D15 donde de manera similar, la línea D0 transporta el bit menos significativo y D15 el bit más significativo de la información.
Microprocesadores José Luis Bravo León
Un microprocesador de 8 bits requiere de un Canal de Datos de 8 líneas para transportar 8 bits de información en forma paralela, de igual manera el canal de datos en un microprocesador de 16 bits requiere de 16 líneas para transportar 16 bits de información en forma simultánea. Si el canal de datos esta formado de 8 líneas y los registros del microprocesador son de 16 bits, se necesitarán dos transferencias sucesivas para completar la información, por consiguiente el ancho del Canal de Datos esta relacionado directamente con la velocidad de procesamiento del sistema. Cuando se efectúa una operación de escritura ya sea a una localidad de memoria o a un puerto de salida, la información contenida en las líneas del canal de datos fluye desde el microprocesador hacia los dispositivos externos; en caso contrario, para una operación de lectura la información transita desde una localidad de memoria o desde un puerto de entrada hacia el microprocesador, el doble sentido del flujo de información hace necesario que las líneas del canal de datos sean bidireccionales. A través de las líneas del canal de datos transitan tanto los datos como los códigos de las instrucciones de un programa almacenado en la memoria del sistema. Considerando un programa que incluye la instrucción donde se requiere cargar al registro acumulador con el valor de la variable de 8 bits que se encuentra almacenado en en la localidad de memoria mem32, la acción podría representarse de la siguiente forma:
A [mem32]
Cargar el acumulador con el valor de una variable almacenada en memoria
Si consideramos el número decimal 74 como el valor de la variable almacenada en la localidad de memoria mem32, una copia se verá circulando a través de las líneas del canal de datos en forma binaria. La conversión en ocho bits de este dato corresponde al número 0100 1010, información que se puede observar en las líneas D7 a D0 respectivamente que ocuparán las celdas que forman el registro acumulador. Tal como se muestra en la figura siguiente, al final de la operación el valor de la variable se verá representada tanto en la localidad de memoria mem32 como en el registro acumulador.
Microprocesadores José Luis Bravo León
De manera similar, para un procesador de 16 bits, si consideramos un programa que incluye la instrucción donde se requiere cargar un registro acumulador de 16 bits con el valor de la variable que se encuentra almacenado en la localidad de memoria memoria mem32, la acción podría representarse de la siguiente forma:
A [mem32]
Cargar el registro acumulador con el valor de una variable de 16 bits almacenada en memoria
Si consideramos el número decimal 19051 como el valor de la variable almacenada en la localidad de memoria mem32, una copia se verá circulando a través de las líneas del canal de datos en forma binaria. La conversión en dieciséis bits de este dato corresponde al número 0110101101001010, información que se puede observar en las lineas D15 a D0 respectivamente. Tal como se muestra en la figura siguiente, al final de la operación el valor de la variable se verá representada tanto en la localidad de memoria mem32 como en el registro acumulador.
Microprocesadores José Luis Bravo León
Canal de Direcciones .-
Este canal se emplea para seleccionar el punto de origen o destino de la información que se transmite a través del canal de datos. Normalmente se usa para seleccionar un registro o localidad dentro de una de las unidades del sistema. El número de líneas que integra este canal determina determina el número de dispositivos o localidades de memoria que puede direccionar el microprocesador. El número de dispositivos o localidades de memoria direccionables por el microprocesador siempre será una potencia de 2 donde el exponente es el número de líneas que integra el canal de direcciones. 16
Si el número de líneas del canal es 16, entonces existen 2 = 65,536 combinaciones posibles, cada una de estas representa una localidad o registro direccionable. Algunos microprocesadores utilizan las ocho líneas de más bajo orden del canal de 8 direcciones seleccionar puertos de entrada salida, por lo que se tendría capacidad de 2 = 256 puertos de entrada – entrada – salida salida posibles.
Microprocesadores José Luis Bravo León
.Canal de Control .-
Este canal se emplea para sincronizar el sistema, transporta información de estados y de control hacia y desde la Unidad Central Central de Proceso.
A manera de ejemplo, microprocesador Z80: WAIT
I N T
podemos
citar
el
canal
de
control
del
ESPERA Esta señal indica a la CPU que una localidad de memoria o un puerto de E/S de baja velocidad ha sido direccionado. La CPU permanece en estado de espera mientras la señal WAIT esté activa. Todas las las señales de datos, de direcciones y de control permanecen en el estado en que se encontraban al momento en que la CPU recibió esta señal.
SOLICITUD DE INTERRUPCION. Esta señal es generada por dispositivos de E/S. Este requerimiento requerimiento será atendido al finalizar la instrucción en proceso siempre y cuando el flip flop de interrupción esté activado y la señal señal BUSRQ deshabilitada. Cuando la CPU acepta la interrupción, envía una señal de reconocimiento IORQ.
N M I
SOLICITUD DE INTERRUPCION NO ENMASCARABLE. Esta solicitud tiene prioridad mayor que que la línea INT y y se reconoce al final de la instrucción en proceso independientemente del estado del flip flop de interrupción. La señal NMI forza a la CPU a ejecutar la rutina que inicia a partir de la dirección 0066H, salvando de manera automática el contenido del registro contador de programa en el área de pila.
BUSRQ
BUSAK
M 1
SOLICITUD DE CANALES. CANALES. Esta señal es activada por dispositivos externos con la finalidad de tomar el control de los canales de datos, dirección y control. RECONOCIMIENTO DE LA SOLICITUD SOLICITUD DE CANALES. CANALES. Esta señal es activada por la CPU como respuesta a la petición realizada por medio de la línea BUSRQ, poniendo en estado de alta impedancia los canales de datos, dirección y control con la finalidad de que el dispositivo que hizo el requerimiento pueda tomar el control de estos. CICLO DE MAQUINA UNO. La línea M1 indica indica que el el ciclo de máquina en proceso es un ciclo de búsqueda (fetch), el cual es utilizado para obtener el código código de operación de la próxima próxima instrucción a ejecutar.
Microprocesadores José Luis Bravo León
Esta señal también se activa junto con la señal IORQ para para indicar un ciclo de reconocimiento de interrupción. MREQ
IOREQ
SOLICITUD DE MEMORIA. MEMORIA. Cuando la señal MREQ se activa, indica que el canal de direcciones contiene una dirección válida para operaciones de lectura o escritura en memoria. SOLICITUD DE DISPOSITIVOS DE E/S. Esta señal indica que las 8 líneas de dirección de más bajo orden (A0 – A7) A7) contienen una dirección de dispositivos de E/S válida para operaciones de lectura o escritura. La señal IORQ se activa junto con M1 cuando la CPU reconoce una interrupción para indicar que se debe colocar un vector de interrupción en el canal de datos.
RD
WR
RFSH
HALT
RESET
LECTURA. La señal RD indica que la CPU va a leer un dato de la memoria o de un dispositivo de E/S. El dispositivo de E/S o la localidad de memoria direccionada deberá utilizar esta señal para habilitar la información y colocarla en el canal de datos de la CPU. ESCRITURA. La señal WR indica indica que el canal de datos datos contiene información que debe ser almacenada en la localidad de memoria o el dispositivo de E/S direccionado. REFRESCO. Esta señal indica que las siete líneas de mas bajo orden del canal de direcciones (A0 – A6) A6) contiene la dirección de refresco para las memorias dinámicas que deberán usarse al presentarse la señal MREQ. SUSPENSIÓN. El estado de suspensión suspensión indica que la CPU ha ejecutado ejecutado una instrucción HALT y está esperando una interrupción no enmascarable para continuar con la ejecución de la rutina de servicio de interrupción correspondiente. INICIALIZACION. Esta señal forza al contador de programa a cero e inicializa la CPU consistente en: a) b) c) d)
Deshabilita el flip flop de interrupciones Pone a ceros el registro re gistro de interrupción I Pone a ceros el registro de refresco de memoria R Habilita el modo de interrupción 0
Microprocesadores José Luis Bravo León