Introducción al microprocesador MC68000.

Anuncio
Universidad
Rey Juan Carlos
ESTRUCTURA Y TECNOLOGÍA DE
COMPUTADORES
Introducción al microprocesador MC68000
Luis Rincón Córcoles
Licesio J. Rodríguez-Aragón
Introducción al microprocesador MC68000
Programa
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
La familia de microprocesadores M68000
Características principales del MC68000
Modelo de programación del MC68000
Los registros de datos del MC68000
Los registros de direcciones del MC68000
La memoria en el MC68000
Punteros de propósito específico del MC68000
La estructura de la pila del MC68000
El registro de estado del MC68000
Las instrucciones en el MC68000
Modos de ejecución del MC68000
Las interrupciones en el MC68000
El MC68000 y el sistema operativo
Excepciones en el MC68000
2
Introducción al microprocesador MC68000
Bibliografía
 A. CLEMENTS. Microprocessor Systems Design. 3rd edition, ITP - PWS
Publishing Company, 1997.
 J. SEPTIÉN, H. MECHA, R. MORENO, K. OLCOZ. La familia del MC68000.
Síntesis, 1995.
 C. CERRADA, V. FELIU. Estructura y Tecnología de Computadores I.
U.N.E.D., 1993.
 S. KELLY-BOOTLE, B. FOWLER. 68000/68010/68020 – Arquitectura y
programación en ensamblador. Anaya Multimedia, 1989.
 M68000 8/16/32 Bit Microprocessors User’s Manual. 9th edition. Motorola,
1993.
 Motorola M68000 Family Programmer’s Reference Manual. Motorola, 1992.
 A. GARCÍA GUERRA, E. FENOLL COMES. Sistemas digitales – Ingeniería
de los microprocesadores 68000. Centro de Estudios Ramón Areces, 1993.
 A. CLEMENTS. 68000 Family Assembly Language. ITP - PWS Publishing
Company, 1994.
3
Introducción al microprocesador MC68000
1. La familia de microprocesadores M68000
Modelo
Ancho de los
registros
Ancho del bus Ancho del bus
de datos
de direcciones
Ancho de la
UAL
68000
32
16
24
16
68008
32
8
20
16
68010
32
16
24
16
68012
32
16
30
16
68020
32
32
32
32
68030
32
32
32
32
68040
32
32
32
32
68060
32
32
32
32
4
Introducción al microprocesador MC68000
2. Características principales del MC68000
•
Máquina CISC (computador con repertorio de instrucciones complejo).
•
Tamaño de los buses:
ƒ Datos: 16 bits.
ƒ Direcciones: 23 bits, ya que el bit menos significativo no sale realmente por el bus
de direcciones, sino a través de las señales de control LDS y UDS.
•
Tamaños de datos utilizados:
ƒ
ƒ
ƒ
ƒ
ƒ
Octeto (byte): .B
Palabra (word): .W
Palabra larga (longword): .L
Bits (agrupados de ocho en ocho en un octeto).
Dígitos BCD (empaquetados de dos en dos en un octeto).
•
Esquema de bus único para memoria y E/S.
•
Modos de funcionamiento:
ƒ Usuario.
ƒ Supervisor.
5
Introducción al microprocesador MC68000
El interfaz del MC68000
6
Introducción al microprocesador MC68000
Ejemplo: sistema mínimo con un MC68000
7
Introducción al microprocesador MC68000
3. Modelo de programación del MC68000
D0
A0
D1
A1
D2
A2
D3
A3
D4
A4
D5
A5
D6
A6
PC
SR
CCR
A7 (USP)
A7 (SSP)
D7
15
8 7
0
0
1
2
3
4
5
...
...
i*2
...
MAX-2
i*2+1
...
MAX-1
8
Introducción al microprocesador MC68000
4. Los registros de datos del MC68000
31
16
15
8
7
0
D0
D1
D2
D3
D4
D5
D6
D7
•
•
•
Tamaño: 32 bits.
Modos de acceso:
ƒ Octeto (.B): se accede sólo a los 8 bits menos significativos.
ƒ Palabra (.W): se accede sólo a los 16 bits menos significativos.
ƒ Palabra larga o doble (.L): se accede al registro completo.
Uso: para almacenar datos temporales.
9
Introducción al microprocesador MC68000
5. Los registros de direcciones del MC68000
31
16
15
0
A0
A1
A2
A3
A4
A5
A6
•
•
•
Tamaño: 32 bits.
Modos de acceso:
ƒ Palabra (.W): se usan los 16 bits menos significativos.
– Si escribimos en un registro de direcciones en modo palabra, se
realiza extensión de signo a los 32 bits.
ƒ Palabra larga o doble (.L): se usa el registro completo.
Uso: punteros de 32 bits a datos o estructuras de datos en memoria.
ƒ Como la memoria máxima tiene 224 octetos, al usar un registro de
direcciones como puntero se descarta su octeto más significativo.
10
Introducción al microprocesador MC68000
6. La memoria en el MC68000
Direcciones pares ↓
15
8 7
000000000000000000000000
000000000000000000000001
000000000000000000000010
000000000000000000000011
000000000000000000000100
000000000000000000000101
...
i*2
...
MAX-2
•
•
•
•
↓ Direcciones impares
0
...
i*2+1
...
MAX-1
Tamaño máximo: 16 Moctetos incluyendo RAM, ROM y puertos de E/S.
Unidad direccionable: octeto.
Acceso básico: palabra de 16 bits formada por dos octetos consecutivos, el
primero con dirección par y el segundo con dirección impar.
Líneas de datos válidos (activas por nivel bajo):
ƒ UDS (Upper Data Strobe): permite acceder a un octeto en dirección par.
ƒ LDS (Lower Data Strobe): permite acceder a un octeto en dirección impar.
•
Memoria de tipo asíncrono.
11
Introducción al microprocesador MC68000
La memoria en el MC68000
•
Acceso a un dato de tamaño octeto:
ƒ El dato puede estar en cualquier posición de memoria.
– Dirección par: se activa UDS.
– Dirección impar: se activa LDS.
ƒ Lecturas: como se accede a palabra, se descarta el octeto sobrante.
ƒ Escrituras: se modifica el octeto requerido, y el otro se preserva.
•
Accesos a palabra:
ƒ El objeto accedido (dato o instrucción) estará en una dirección N par (se activan
UDS y LDS).
ƒ Big endian: el octeto más significativo es el de la dirección par (N), y el menos
significativo es el de dirección impar (N+1).
•
Acceso a palabra larga:
ƒ El objeto accedido estará en una dirección N par.
ƒ Se realizan dos accesos consecutivos de tamaño palabra.
ƒ Big endian: el octeto más significativo se encuentra en la dirección N par, el
siguiente en la dirección N+1 (impar), el siguiente en la dirección N+2 (par) y el
menos significativo está en la dirección N+3 (impar).
12
Introducción al microprocesador MC68000
Ejemplo: transferencia entre memoria y registro
•
Contenidos iniciales:
MEMORIA
REGISTRO DE DATOS Di
31
24 23
Oct0
16 15
Oct1
8
Oct2
Pares 15
7
0
Oct3
31
MOVE.B N,Di
⇒ Di
⇒
Di
⇒ Di
⇒ Di
M(N)
N+1
M(N+2)
M(N+3)
N+3
8
0
M(N)
8
7
0
M(N+1)
Oct2
8
M(N)
16 15
M(N+1)
7
Oct2
16 15
Oct1
24 23
M(N+1)
16 15
Oct1
24 23
M(N)
16 15
Oct1
24 23
Oct0
31
MOVE.L N,Di
24 23
Oct0
31
MOVE.W N,Di
N+2 (par)
Oct0
31
MOVE.B N+1,Di
N
0 Impares
8 7
7
0
M(N+1)
8
M(N+2)
7
0
M(N+3)
13
Introducción al microprocesador MC68000
7. Punteros de propósito específico del MC68000
•
Contador de programa (PC)
ƒ Tiene 32 bits, de los cuales sólo se usan los 24 menos significativos.
ƒ Actúa como puntero a la próxima instrucción que se va a ejecutar.
•
Punteros de pila (SP o A7)
ƒ El MC68000 tiene dos punteros de pila:
– Puntero de pila de usuario (USP): visible por el usuario como SP o A7
y por el supervisor como SSP.
– Puntero de pila de supervisor (SSP): accesible sólo por el supervisor
como SP o A7.
ƒ Tienen 32 bits.
ƒ Funcionan como registros de direcciones.
ƒ Tienen un uso específico en determinadas instrucciones.
14
Introducción al microprocesador MC68000
8. La estructura de la pila del MC68000
•
Estructura LIFO (último en entrar-primero en salir).
•
Puntero de pila: A7 ó SP.
•
Pila de usuario y de supervisor independientes.
ƒ USP: puntero de pila de usuario.
ƒ SSP: puntero de pila de supervisor.
•
La pila crece hacia posiciones decrecientes de memoria, y el puntero de pila
apunta al último elemento insertado en la misma (si no hay ninguno, apunta
al fondo de la pila).
ƒ Inserción: MOVE.{WL} DATO,-(SP)
ƒ Extracción: MOVE.{WL} (SP)+,DATO
•
Es posible acceder a cualquier dato almacenado en la pila.
ƒ Direccionamientos relativos al puntero de pila.
ƒ Direccionamientos relativos al puntero de marco si está definido.
15
Introducción al microprocesador MC68000
Inserción de un dato en la pila
DESPUÉS
ANTES
SP
XXXX
2 ó 4 octetos
SP
INSERCIÓN
MOVE.{WL} DATO,-(SP)
El contenido de DATO se almacena en la cima de la pila
16
Introducción al microprocesador MC68000
Extracción de un dato de la pila
DESPUÉS
ANTES
SP
XXXX
2 ó 4 octetos
SP
EXTRACCIÓN
MOVE.{WL} (SP)+,DATO
La información extraída se almacena en DATO
17
Introducción al microprocesador MC68000
9. Las instrucciones en el MC68000
• Máquina CISC (computador con repertorio de instrucciones complejo).
• Tamaño de las instrucciones: múltiplo de 16 bits.
• Número de operandos: 0, 1 ó 2.
ƒ En instrucciones aritméticas o lógicas, se suele exigir que uno de los operandos
esté en un registro de datos o de direcciones.
• Palabra de operación (OW, operation word): 16 bits.
ƒ Código de operación + direccionamientos + datos inmediatos pequeños.
• Palabras de extensión (EW, extension word): palabras adicionales que
almacenan informaciones que no caben en la palabra de operación.
ƒ Se almacenan a continuación de OW.
ƒ Pueden ser necesarias cuando en la instrucción hay:
‰Operandos inmediatos.
‰Direcciones absolutas.
‰Desplazamientos posiblemente con índice.
‰Listas de registros.
ƒ Puede haber hasta cuatro palabras de extensión (como máximo 2 por operando).
18
Introducción al microprocesador MC68000
10. El registro de estado del MC68000
15
13
10
9
8
4
3
2
1
0
T
S
I2
I1
I0
X
N
Z
V
C
OCTETO DEL SISTEMA
OCTETO DEL USUARIO (REGISTRO
DE CÓDIGOS DE CONDICIÓN)
• CCR (condition code register): octeto del usuario.
ƒ
ƒ
ƒ
ƒ
ƒ
C: acarreo.
V: desbordamiento en complemento a 2.
Z: resultado igual a 0.
N: resultado negativo.
X: bit de extensión (acarreo superior en operaciones aritméticas y de desplazamiento).
• SR (status register): octeto del usuario + octeto del sistema.
ƒ T: modo traza (1=se genera una excepción al ejecutar una instrucción; 0=se ejecutan las
instrucciones normalmente).
ƒ S: modo de funcionamiento (1=supervisor; 0=usuario).
ƒ I2 I1 I0: nivel actual de prioridad de interrupción.
19
Introducción al microprocesador MC68000
11. Las interrupciones en el MC68000
• Interrupción: demanda de un periférico para que la UCP lo atienda.
• Las interrupciones en el MC68000 tienen siete niveles de prioridad.
• Cada periférico tendrá su propia prioridad.
• Los tres bits I2I1I0 del SR codifican el nivel actual de prioridad.
ƒ Si I2I1I0 = 000 se reconocerá cualquier interrupción que se produzca (no hay ninguna interrupción
de nivel 0).
ƒ Si I2I1I0 = 111, tan solo se reconocerán las interrupciones con nivel de prioridad 7 (interrupciones
no enmascarables).
ƒ Si 000 < I2I1I0 < 111, se reconocerán las interrupciones que tengan un nivel de prioridad N > I2I1I0.
• Si una interrupción no tiene el nivel de prioridad requerido, el procesador la deja pendiente
y no la reconoce hasta que el nivel de prioridad especificado por I2I1I0 lo permita.
• Cuando una interrupción es reconocida, la UCP desencadena una secuencia de acciones
que culmina con la ejecución de una rutina de manejo de interrupciones que lleva a cabo
las acciones necesarias para atender al periférico demandante.
20
Introducción al microprocesador MC68000
12. Modos de funcionamiento del MC68000
• El MC68000 tiene dos modos de funcionamiento: usuario y supervisor.
• Modo usuario (no privilegiado): cuando el bit S del SR es igual a 0.
ƒ Los programas normales funcionan en este modo.
ƒ Su puntero de pila es USP (los programas lo referencian como A7 o SP).
ƒ No se puede escribir sobre el octeto del sistema del SR, aunque sí se puede leer.
ƒ Existen instrucciones que no pueden utilizarse (instrucciones privilegiadas).
• Modo supervisor (privilegiado): cuando el bit S del SR es igual a 1.
ƒ Se permite acceder a todos los recursos de la máquina sin restricciones.
ƒ Su puntero de pila es el SSP (los programas lo referencian como A7 o SP), y se puede
acceder también al puntero de pila de usuario (referenciándolo como USP).
ƒ Se puede leer y escribir sobre el SR completo.
ƒ Se pueden ejecutar todas las instrucciones del repertorio, incluyendo las instrucciones
privilegiadas.
ƒ Se pasa automáticamente a modo supervisor al iniciar el tratamiento de una excepción.
21
Introducción al microprocesador MC68000
13. El MC68000 y el sistema operativo
•
Sistema operativo (SO): conjunto de programas encargados de
ƒ Controlar el computador.
ƒ Proteger al computador de potenciales daños hipotéticamente
causados por los programas de los usuarios.
ƒ Gestionar la asignación de recursos (memoria, tiempo de UCP, etc.) a
los programas de los usuarios.
ƒ Gestionar el intercambio de información de la UCP con los periféricos.
ƒ Gestionar las comunicaciones entre el computador y otros
computadores conectados en red.
•
El SO es una capa de software que facilita la utilización de los recursos
del computador por parte de los usuarios y sus programas.
22
Introducción al microprocesador MC68000
El MC68000 y el sistema operativo
• Mecanismo en el MC68000: niveles de protección.
ƒ Las rutinas del SO funcionan en modo privilegiado (protegido).
ƒ Los programas de usuario funcionan en modo no privilegiado (no protegido).
ƒ Hay pilas separadas para usuario y SO con punteros independientes.
ƒ Otros procesadores de la familia M68000 incorporan elementos adicionales para
facilitar la tarea del SO.
• Las rutinas del SO entran en funcionamiento cuando se produce una excepción:
ƒ Excepción: situación que requiere un tratamiento inmediato por parte del procesador.
• Las direcciones de memoria entre la $0 y la $3FF están reservadas para uso del
SO.
ƒ Puede haber más zonas de memoria reservadas para el SO.
• Al arrancar el computador, automáticamente se inicia en modo supervisor.
23
Descargar