Unidad de Control registros Unidad aritmético

Anuncio
Facultad de Ciencias Exactas y Naturales y Agrimensura
Departamento de Ingeniería
Cátedra : Proyecto Final
Apuntes : Microprocesadores
Tema 6-1 : Esquema de un µP. La CPU
Lo que definimos como CPU (Central Process Unit) o Unidad Central de Proceso, está
estructurado por tres unidades operativamente diferentes:
1. La ALU o unidad aritmético lógica.
2. La UC o unidad de control.
3. Los registros internos
Veamos el esquema simplificado de una CPU.
Unidad
de
Control
Unidad
aritméticológica
registros
Figura Nº 6.1.1 Esquema de una unidad central de proceso
La Unidad Aritmético - Lógica
Con respecto a cualquier microprocesador, las instrucciones involucran operaciones
sobre un operando, o entre dos de ellos, estando uno de los mismos almacenado en el registro
acumulador que es el registro de trabajo de cualquier ALU, por lo que en algunos casos suele
denominarse registro W. El tipo de operaciones que puede realizar una ALU, pueden resumirse
así:
1.
2.
3.
4.
5.
Suma aritmética
Resta aritmética (complemento a 2)
operaciones lógicas
o producto y suma lógica
o Comparación
o Complementación
o enmascaramiento
Desplazamiento o rotación
No operar (transferencia)
Algunas instrucciones están referidas al contenido del registro acumulador en su totalidad, y
otras respecto a algunos bits del mismo, correspondiente a una palabra de datos que se desea
modificar.
Una forma de esquematizar la ALU en bloques funcionales, es de la siguiente manera:
operando
Registro
de
desplazamiento
salida
acumulador
Cod de operación
Figura Nº 6.1.2 esquema de la ALU
El bloque de la izquierda es un operador aritmético lógico, o sea un circuito
combinacional, capaz de realizar las operaciones que vienen determinadas en los códigos de
operación.
El bloque de la derecha es un registro de desplazamiento que actúa con el resultado que
entrega el operador aritmético. Mediante este registro se pueden realizar los desplazamientos o
rotaciones de los bits dentro de una palabra de datos. Por ejemplo en el caso que se desee
utilizar este registro para serializar una secuencia de datos para ser enviados a un codificador
de tonos, el que a su vez lo envía a un sistema de almacenamiento como ser un cassette de
audio.
Tenemos a continuación un sistema digital conformado de tal manera que pueda realizar
distintas operaciones como ser: sumar, complementar, comparar y dejar pasar las
informaciones sin alterarlas (no operar). El mismo podría ser implementado en un simulador y
verificar los resultados.
Figura Nº 6.1.3 esquema de un sistema de operación
Operación
NO OP
NO OP
SUMAR
SUMAR
SUMAR
SUMAR
COMPARAR
COMPARAR
COMPARAR
COMPARAR
COMPLEMENTAR
COMPLEMENTAR
Código
C1
0
0
0
0
0
0
1
1
1
1
1
1
C2
0
0
1
1
1
1
0
0
0
0
1
1
Operador
“A”
0
1
0
0
1
1
0
0
1
1
0
1
Operador
“B”
X
X
0
1
0
1
0
1
0
1
X
X
R
CARRM
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
Tabla Nº 1 Listado de las operaciones
UNIDAD DE CONTROL
Podemos considerarla como la parte “inteligente” del sistema microprocesador. Debido a
que el µP desarrolla sus tareas en función de las instrucciones secuenciadas que ha
organizado e implementado el programador, es necesario que el sistema interprete cada tipo
instrucción para actuar en consecuencia. Es lo que se conoce también como decodificación de
la instrucción.
Hemos visto en el esquema general de la CPU, la existencia de registros y de la ALU.
Precisamente, cada instrucción puede significar comunicaciones a través de los buses internos
(y externos) entre estos bloques funcionales, para la transferencia de los datos binarios (datos
propiamente dichos o direcciones).
Hay instrucciones simples y complejas, en el sentido que una simple o breve puede significar la
transferencia entre dos registros internos del sistema, a la modificación de los bits contenidos
en un registro dado, pero puede haber instrucciones que impliquen varios movimientos o
transferencias de bits o datos utilizando reiteradamente los buses internos (o externos) del
sistema para la cual es necesario establecer una secuencia organizada para compartir los
buses que son comunes a todos los bloques funcionales.
Estas transferencias secuenciales de los datos la realiza la unidad de control, precisamente
señales de control a los distintos bloques.
A cada una de estas transferencias de datos que forma parte de una instrucción se la conoce
como microinstrucción.
El conjunto de microinstrucciones (microcódigos) que conforman cada instrucción, vienen
grabadas de fabrica en el chip del µP, en una memoria de tipo ROM y por lo general no es
accesible al programador. Este tipo de sistema se denomina microprogramado.
Existen pocos modelos (2.901 A de Advanced Micro Devices), que permiten el acceso a la
ROM, para definir un propio juego de instrucciones, pero ello implica tener un conocimiento
muy profundo de los detalles circuitales para obtener un funcionamiento óptimo (son los
sistemas microprogramables).
Puede darse el caso que cuando se está realizando una microinstrucción, antes de terminarla
se salte a otra microinstrucción. Esto puede darse según las señales de condición que esté
recibiendo en ese momento la unidad de control.
Funciones de la unidad de control
Las funciones de comando que parten de la unidad de control, nacen a consecuencia de
lo que denominamos la función principal de la misma, que es:
1) Decodificación de las instrucciones.
De la unidad van a seguir las distintas microinstrucciones, las que globalmente decimos
van a realizar la segunda función en importancia que es:
2) Sincronización de las tareas.
Esta última podemos desglosarla en tres funciones secundarias, no menos importantes:
ƒ
ƒ
ƒ
administración de los buses internos de comunicación del microprocesador.
manejo de las líneas de intercambio con el exterior (buses externos) que permiten la
interacción de la CPU en la memoria principal y los periféricos.
Indicación a la ALU sobre las operaciones a realizar.
Todas las funciones de comando que salen de la unidad de control se corresponden con
las señales de entrada a la unidad que pueden ser:
ƒ
ƒ
ƒ
Un código de instrucción que almacenado en el registro RI contiene la operación a ser
ejecutada así como el modo de direccionamiento con que se obtiene el operando.
Un secuenciador que a partir del reloj que posee el sistema realiza un conteo que permite
localizar las microinstrucciones sucesivas que componen la instrucción.
Un conjunto de condicionamientos que identifican a aquellos eventos que provocan
alteraciones en la secuencia normal de un programa (interrupciones, saltos por condiciones
del registro de estado).
Veamos un esquema de la unidad de control:
reloj
secuenciador
Líneas internas
ROM
(microcódigo)
control
Líneas externas
Cod op para ALU
Bus
datos
RI
Líneas de condición
Figura Nº 6.1.4 Diagrama de la unidad de control
La entrada de reloj recibe las señales de un cristal o en forma indirecta a través de un CI
que genera las fases de reloj que necesita el µP para trabajar correctamente. En el caso del
8080, se necesitan dos fases de reloj, con pulsos de distinta duración y no solapadas.
Cada instrucción de todo el conjunto que tiene un µP, viene a su vez implementada como un
subconjunto de microinstrucciones almacenadas en una memoria ROM interna y no accesible
por el usuario. El número de líneas de condición son las provenientes del registro de estado y
que son consultadas según lo requiera el código de operación que esta siendo decodificado.
LOS REGISTROS INTERNOS DEL µP
Son parte del sistema, utilizados como almacenamiento temporario de datos, cuyo
tamaño va a depender del tipo de información que va a contener. Los registros son en
definitiva, celdas elementales de memoria que reciben y entregan información en paralelo.
Podemos distinguir dos tipos de registros, según el tipo de uso:
• general
• dedicado
Los de uso general pueden ser empleados por el programador según su conveniencia. Su
contenido depende de la instrucción y le da flexibilidad a la operación.
Los segundos son empleados por el sistema interno del microprocesador, aunque pueden ser
accedidos para consulta desde el programa que se ejecuta. Tienen significación única.
Cuando se ejecuta una instrucción, así como para recorrer la secuencia que supone un
programa, la CPU debe tener la posibilidad de memorizar información necesaria para no perder
esa secuencia, y debe estar disponible permanentemente. Por ejemplo: el código de la
instrucción a ejecutar, la posición de la memoria en que continúa el programa, los operandos a
utilizar, etc.).
Veamos cuales pueden ser los registros de uso dedicado:
1)
2)
3)
4)
función
Para direcciones de memoria
Para contenido de las direcciones
Para instrucciones
Para control de secuencia
5)
6)
Para manejo de subrutinas
Para funcionamiento de ALU
7)
Para control del estado de
funcionamiento
nombre
Contador de
programa
Stack pointer
Acumulador
Registro de estado
siglas
RDM
RCM
RI
CP
número de bits
16
8
8
16
SP
ACC
16
8
RS
8
Los Registros de uso general de un µP
Se denominan: B-C, D-E y H-L pudiendo considerarlos en forma independiente (8 bits
c/u), o de a pares (16 bits).
Los registros son sensibles a dos comandos principales:
- leer del bus
- escribir en el bus
Esta dado el carácter de multiplexado en el tiempo que se presenta en el sistema µP.
Los registros de uso general dan mayor flexibilidad de operación, a la vez que ahorran
transferencias de y hacia memoria, pues permiten mantener simultáneamente en modo
operativo varias informaciones del mismo tipo (punteros, índices).
Cuanto mayor sea el número de registros de uso general, mayor será la economía de
transferencias, pero a costa de un aumento en la cantidad de bits que en cada instrucción
identifican los registros afectados a la misma.
El uso dedicado a que se hace referencia implica que la información contenida para
cada registro tiene una significación única para cualquier instrucción que se quiera ejecutar.
Estos registros hacen que las instrucciones sean más cortas, o bien para igual longitud
dejan más bits disponibles para código de operación y modo de direccionamiento.
En otros microprocesadores, existe una zona de la memoria que puede emplearse como
registros de uso general, los cuales pueden ser identificados con un nombre nemotécnico para
emplearlo a posteriori. Cabe aclarar que esto es posible no para el caso del 8080 sino de
aquellos sistemas de desarrollo que tienen incorporado un lenguaje Assembler del mismo µP
que transforma el programa fuente en lenguaje mnemónico en lenguaje de máquina
interpretable por el µP.
Registro de control de estado (STATUS REGISTER)
También llamado registro de códigos de condición, contiene un conjunto de flip-flop cuyo
número puede variar de 5 a 7 bits. Cada uno de estos bits representa o indica determinadas
características de la última operación ejecutada por el procesador, o sea específicamente, por
la ALU.
Por ejemplo, las condiciones que se pueden presentar son:
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
el resultado es cero (en el acumulador)
el resultado en negativo (complemento a dos)
el resultado desbordó el contenido (overflow)
el resultado incluye un arrastre (carry)
la paridad del acumulador
se generó un arrastre en una operación de suma, del bit 3 al bit 4 (bit carry)
indica la paridad del resultado de la última operación
Esta información puede manejarse en forma de banderas o flag que pueden utilizarse por un
programa.
Descargar