Unidad de Control

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 10

Unidad de control

1. FUNCIÓN

La Unidad de Control (UDC) Es la encargada de la coordinación y orquestación de todas las


tareas para la ejecución de las instrucciones. Durante la ejecución de una instrucción, la UDC
generará todas las señales eléctricas internas necesarias para la conexión y desconexión de las
diferentes unidades estructurales internas de la UCP y las señales eléctricas externas (señales de
lectura, escritura, etc.).

2. CABLEADAS VS. MICRO-PROGRAMADAS

En un principio eran unidades cableadas, es decir, todas las conexiones que se necesitaban
hacer entre los componentes de la UCP se hacían con cables físicos para cada operación dentro de
la ejecución de una instrucción. Luego, las UDC fueron micro-programadas en donde la ejecución de
cada instrucción consistía en que la UDC internamente ejecutaba un conjunto secuenciado de tareas
que se llamaron micro-instrucciones. A este conjunto de micro-instrucciones se lo denominó micro-
programa. Cada micro-instrucción ocupaba un ciclo de reloj. Hoy en día, en los procesadores Intel,
cada instrucción es analizada y particionada separando las instrucciones u operaciones de sus datos
u operandos, alojándolos en espacios de memoria separados y permitiendo así la paralelización de
la ejecución de múltiples instrucciones en un solo núcleo, al mismo tiempo.

En nuestro ejemplo de procesador de estudio, nos abocaremos a las UDC micro-programadas


en su versión inicial.

3. INSTRUCCIONES Y SET DE INSTRUCCIONES

Las instrucciones tienen un formato que en general es común para todas las plataformas
computacionales. Este formato consiste en un primer paquete de bits que define la operación que
se quiere realizar y luego una serie de paquetes de bits que aportan la información necesaria y
complementaria para poder completar la operación.

© Universidad de Palermo Prohibida la reproducción total o parcial de imágenes y textos. 1


También encontraremos formatos de instrucciones de longitud fija, variable y también
combinada como es el caso de nuestro procesador de estudio Intel 8086/8088.

La siguiente figura muestra distintas plataformas y su formato de instrucción:

Como las operaciones están representadas por códigos binarios, se suele llamar a la operación
Código de Operación (OpCode o COP) y a las piezas de información restantes Objetos (Objects).

Como ejemplo, en nuestro procesador de estudio, la instrucción MOV AX,1A3F posee un byte
para el COP y dos bytes para los operandos. Esta instrucción, en binario (hexadecimal) es B 8 3 F 1 4 h,

siendo B 8 h el COP y 3 4 h y 1 2 h los dos objetos u operandos. La instrucción mide 3 bytes.

4. CICLO DE EJECUCIÓN DE INSTRUCCIONES

La UDC (o CU) ejecutará instrucciones siguiendo un ciclo repetitivo al que llamaremos Ciclo de
Instrucción. Este no es el único ciclo que sigue la UDC, al finalizar cada ciclo de instrucción, dadas
ciertas condiciones lógicas, la UDC podrá iniciar un Ciclo de Interrupción que veremos más
adelante. Por ahora, nos limitaremos al ciclo de instrucción.

© Universidad de Palermo Prohibida la reproducción total o parcial de imágenes y textos. 2


El ciclo de instrucción de nuestro procesador es el siguiente:

Podemos ver en la figura que si la operación no necesita operandos, el ciclo seguirá por el
curso en “rojo”. En cambio si los tiene, por el “verde”.

La UCP posee un registro interno que se llama Program Counter o Contador de Programa
(PC) que apunta a la posición de MP de la próxima instrucción a ejecutar. Este registro es parte de la
arquitectura del procesador (puede leerse y modificarse). Este registro es operado en forma
autónoma por la UDC y tiene diferentes comportamientos. En modo “Normal” o “Habitual”, la UDC
incrementa en 1 su valor para leer las sucesivas posiciones de MP en ejecución de cada instrucción.
Si la instrucción es un cambio a otra posición de MP que no es la próxima, el PC trabajará en modo
“Salto” y será alterado o cargado con el valor de la posición de MP en donde continúa el programa
en curso. Si el COP indica que el objeto es la dirección de MP donde reside el dato propiamente
dicho, el PC se comporta en modo “Indirección” y momentáneamente resuelve y carga la dirección
del operando, lo accede y luego vuelve al funcionamiento “normal”.

4.1. Etapas del ciclo de instrucción

El sistema operativo (o SO), al indicársele ejecutar un programa, leerá el archivo de programa


en el File System (Sistema de archivos) y procederá a cargar el programa en MP, determinando el
lugar en donde puede alojarlo. Luego de esto, el SO cargará el PC con la dirección en donde
comienza el programa que acaba de alojar en MP. A partir de allí comienzan los ciclos de instrucción
de cada una de las instrucciones a ejecutar,

Búsqueda del COP (IF)

La UDC procederá a acceder a la MP a la dirección donde apunta el PC y leerá el COP. Esté


COP vendrá por el bus de datos y será alojado en un registro interno llamado Instruction Register
(Registro de Instrucción).

© Universidad de Palermo Prohibida la reproducción total o parcial de imágenes y textos. 3


Decodificación del COP (ID)

El contenido del registro de instrucción será decodificado (mediante un Decoder o


Decodificador) entregando la dirección de la Memoria de Control en donde se encuentra la primera
micro-operación a ejecutar para ese COP. A partir de allí, la UDC irá siguiendo todas las micro-
instrucciones del micro-programa de ejecución de la instrucción.

Búsqueda de operandos (OF)

Siguiendo la ejecución del micro-programa, si existen operandos, la UDC alterará el PC (de


modo normal o indirección) para leer los operandos de la MP. Estos datos vendrán por el bus de
datos y serán alojados dentro de la UCP en registros temporales, auxiliares o directamente en los
registros de destino.

Si no se necesitan operandos, este paso se obvia.

Ejecución (EX)

En esta etapa se realiza el procesamiento de los datos requerido (suma, resta,


desplazamientos de bits, operaciones lógicas, etc.)

Una vez finalizado la etapa de Ejecución, se retornará a la etapa de Búsqueda del COP de la
instrucción siguiente.

4.2. Ciclo de interrupción

Como hemos mencionado, existe un ciclo distinto al de instrucción que es el de Interrupción


que se verá más adelante. Asimismo, podemos indicar que al finalizar cada ciclo de instrucción, en
el último pulso de reloj se define si se va a iniciar este ciclo de interrupción o no. Si no se inicial, se
continua con el próximo ciclo de instrucción del programa en curso.

El ciclo de interrupción se verá en otro módulo.

© Universidad de Palermo Prohibida la reproducción total o parcial de imágenes y textos. 4


4.3. Programas, instrucciones, ciclo de instrucción, micro-operaciones

Podemos resumir la estructuración de la ejecución de un ciclo de instrucción en el siguiente


gráfico:

4.4. Set de instrucciones

Se denomina así al conjunto de instrucciones posibles que posee un procesador. El set de


instrucciones está agrupado por tipo o grupos de instrucciones, estos son:

 Transferencia de datos (14): movimiento de datos entre registros y/o memoria


 Aritméticas (20): operaciones aritméticas de enteros
 Manipulación de bits (10): operaciones lógicas
 Manipulación de Cadenas (5): movimiento, búsqueda y comparación de cadenas de
datos
 Transferencia de programa (29): saltos, llamadas
 Control del procesador (11): detención, depuración, interrupciones

Nótese que el grupo “Transferencia de programa” junto con el de “Control del procesador” son
las más numerosas e importantes ya que es la función principal de la UCP.

5. LONGITUD DE PALABRA DE UN PROCESADOR

Si bien no hay una definición concreta del término “Palabra” (o Word) de un procesador,
podemos decir que una “palabra” en un conjunto de bits que son una la unidad de medida normal a
ser almacenada, procesada o transmitida por el procesador. Siempre su longitud será un múltiplo de
2 y en el mejor de los casos múltiplos de 8 (1 byte). En el caso de nuestro Intel 8086/8088, la palabra
mide 1 byte.

© Universidad de Palermo Prohibida la reproducción total o parcial de imágenes y textos. 5


Podremos encontrar los siguientes múltiplos de una palabra:

 Double Word (Palabra doble) o DW


 Quad Word (Palabra quádruple) o QW

En el caso de nuestro procesador, la DW será de 16 bits y la QW de 32 bits.

6. CAPACIDAD DE DIRECCIONAMIENTO

La capacidad de direccionamiento de un procesador se referirá a varias características.


Indicará cuántas direcciones (en binario) es capaz de generar para:

 Acceder a la memoria física (MP)


 Acceder a los puertos de entrada/salida
 Acceder a la memoria virtual (si posee esta característica)

Cada dirección de acceso estará compuesta por “n” cantidad de bits, con lo cual la capacidad
de direccionamiento para “n” bits es 2n.

Como el procesador accede a la MP y a sus puertos de


entrada/salida para interactuar con los periféricos, la cantidad
de bits de cada dirección estará dada por la cantidad de “pines”
(del inglés pin o poste) o contactos físicos tenga el
microprocesador en su bus de direcciones. En el caso del Intel
806/8088, existen 20 bits (la UCP tiene 20 pines) para el bus
de direcciones.

Como podemos apreciar en la figura, vemos el “pin out” del 8086 (o listado de contactos, pines,
o patitas) y marcadas con rojo, los contactos pertenecientes al bus de direcciones.

El bus es de 20 bits (A0…A19), marcado con letras rojas en el gráfico, es capaz de direccionar
220 posiciones de memoria = 1 Mega direcciones (desde la 00000h hasta la FFFFFh). Como la
palabra del 8086 es de 1 byte, puede colocarse como máximo una memoria de 1 Megabyte, 1 Mega
direcciones de 1 byte cada una.

Para el caso del acceso a unidades de entrada/salida, de estos 20 bits solo se utilizarán los
primeros 16 bits (A0…A15) brindando una capacidad de direccionamiento de puertos de E/S de 216 =
64 Kilo direcciones o 65.536 direcciones (desde la 0000h hasta la FFFFh).

© Universidad de Palermo Prohibida la reproducción total o parcial de imágenes y textos. 6


7. MODOS DE DIRECCIONAMIENTO

El procesador, representado en su set de instrucciones, permitirá acceder a las posiciones de


memoria y puertos de entrada/salida a través de direcciones binarias. Existirán varios métodos o
modos de direccionar una de esas posiciones que diferirán en su complejidad y potencialidad en la
ejecución de los programas.

Los registros del Intel 8086/8088 que intervienen en el proceso de direccionamiento son los
siguientes, todos de 16 bits:

 BP = Base Pointer o Puntero Base


 BX = Base Register o Registro Base
o Los registros AX (Acumulator), BX (Base), CX (Count) y DX (Data) pueden
operarse por separado de a 1 byte identificándolos como xH (parte más
significativa o HIGH) y xL (parte menos significativa o HIGH). Por eso AX (2 bytes)
tiene dos partes de 1 byte, AH y AL, lo mismo sucederá con BH y BL, CH y CL y
DH y DL

 SI = Source Index o Índice Fuente


 DI = Destination Index o Índice de Destino
 CS e IP = Code Segment e Instruction Pointer o Segmento de Código y Puntero a la
Instrucción. Ambos forman el CS:IP llamado Program Counter o Contador de Programa
 DS = Data Segment o Segmento de Datos

7.1. Direccionamiento implícito

La instrucción posee solo el COP, no tiene operandos. Los datos necesarios para la ejecución
completa de la instrucción están contenidos en el COP.

El Intel 8086 utiliza este modo y ocupan 1 byte solamente. Un ejemplo de ello son las
siguientes instrucciones:

© Universidad de Palermo Prohibida la reproducción total o parcial de imágenes y textos. 7


 INC AX (incrementar en 1 el registro AX)  Binario = 4 0 h
 CLC (Limpiar la bandera de acarreo)  Binario = F 8 h

7.2. Direccionamiento Inmediato

El o los operandos están presentes en la propia instrucción.

El Intel 8086 utiliza este modo y ocupan 2 o más bytes. Un ejemplo de ello son las siguientes
instrucciones:

 ADD AX,4 (Sumar 4 al contenido del registro AX)  Binario = 0 5 0 4 0 0 h


 SUB BL,7 (Restar 7 al contenido del registro BL)  Binario = 8 0 E B 0 7 h

7.3. Direccionamiento Directo

El objeto de la instrucción contiene la dirección de memoria principal en donde se encuentra el


operando (puntero).

El Intel 8086 utiliza este modo y ocupan 2 o más bytes. Un ejemplo de ello es la siguiente
instrucción:

 ADD CH,[120] (Sumar al contenido del registro CH el contenido de la dirección


DS:0120 )  Binario = 0 2 2 E 2 0 0 1 h

7.4. Direccionamiento Indirecto

El objeto de la instrucción contiene la dirección de memoria principal en donde se encuentra


una dirección que apunta al el operando (puntero de un puntero).

© Universidad de Palermo Prohibida la reproducción total o parcial de imágenes y textos. 8


El Intel 8086 no utiliza este modo de direccionamiento.

7.5. Direccionamiento Indirecto de Registro

El objeto de la instrucción contiene la indicación de un registro del procesador el cual contiene


la dirección de MP en donde se encuentra el operando.

El Intel 8086 utiliza este modo y ocupan 2 o más bytes. Un ejemplo de ello es la siguiente
instrucción:

 ADD DL,[BX] (Sumar al contenido del registro DL el contenido de la dirección que


contiene el registro BX )  Binario = 0 2 1 7 h

7.6. Direccionamiento Basado o Relativo a la Base

El objeto de la instrucción contiene la indicación de un registro del procesador llamado Base


Pointer o Puntero Base. Se le puede agregar un Offset o desplazamiento al puntero base lo que
provocarán que se le sume dicho desplazamiento al contenido del registro base. El resultado será la
dirección de MP en donde se encuentra el operando.

© Universidad de Palermo Prohibida la reproducción total o parcial de imágenes y textos. 9


El Intel 8086 utiliza este modo y ocupan 2 o más bytes. Un ejemplo de ello es la siguiente
instrucción:

 ADD DL,[BP+100] (Sumar al contenido del registro DL el contenido de la dirección


resultante de la suma del contenido del registro BP + 100h )  Binario = 0 2 9 6 0 0 0 1 h

7.7. Direccionamiento Indexado o Relativo al Registro Índice

El objeto de la instrucción contiene la indicación de un registro del procesador llamado Index


Register o Registro Índice. Se le puede agregar también un desplazamiento al registro índice lo que
provocarán que se le sume dicho desplazamiento a su contenido. El resultado será la dirección de
MP en donde se encuentra el operando.

El Intel 8086 utiliza este modo y ocupan 2 o más bytes. Un ejemplo de ello es la siguiente
instrucción:

 ADD DL,[BP+SI+130] (Sumar al contenido del registro DL el contenido de la dirección


resultante de la suma del contenido del registro BP + el contenido del registro SI + 100h )
 Binario = 0 2 9 2 3 0 0 1 h

© Universidad de Palermo Prohibida la reproducción total o parcial de imágenes y textos. 10

También podría gustarte