Documentos de Académico
Documentos de Profesional
Documentos de Cultura
EL MICROPROCESADOR MC68000
Indice
1. INTRODUCCIN..................................................................................................................3
2. DESCRIPCIN INTERNA Y ORGANIZACIN DE DATOS........................................... 4
2.1 Tamao de los operandos................................................................................................ 4
2.2 Descripcin interna..........................................................................................................4
2.2.1 Registros de datos D0-D7.............................................................................................4
2.2.2 Registros de direcciones. A0-A6............................................................................. 5
2.2.3 Registro de pila (SP)................................................................................................ 6
2.2.4 Contador de programa (PC)..................................................................................... 6
2.2.5 Registro de estado.................................................................................................... 6
2.2.6 Registro de cdigos de condicin. CCR.................................................................. 7
2.3 Organizacin de datos en memoria..................................................................................8
3. FORMATO DE LAS INSTRUCCIONES............................................................................. 9
4. MODOS DE DIRECCIONAMIENTO................................................................................ 13
4.1 Direccionamiento implcito........................................................................................... 14
4.2 Direccionamiento inmediato..........................................................................................14
4.3 Modos de registro directo.............................................................................................. 15
4.3.1 Registro de datos directo........................................................................................15
4.3.2 Registro de direcciones directo.............................................................................. 15
4.4 Modos de direccionamiento de memoria.......................................................................16
4.4.1 Registro de direcciones indirecto...........................................................................16
4.4.2 Registro de direcciones indirecto con postincremento.......................................... 17
4.4.3 Registro de direcciones indirecto con predecremento........................................... 17
4.4.4 Registro de direcciones indirecto con desplazamiento.......................................... 18
4.4.5 Registro de direcciones indirecto con ndice......................................................... 19
4.4.6 Direccionamiento absoluto.................................................................................... 20
4.4.6.1 Direccin absoluta corta.................................................................................20
4.4.6.2 Direccin absoluta larga.................................................................................21
4.5 Modos de direccionamiento relativos............................................................................22
4.5.1 Contador de programa con desplazamiento........................................................... 22
4.5.2 Contador de programa con ndice.......................................................................... 23
4.6 Las instrucciones y sus modos de direccionamiento..................................................... 24
5. EL CONJUNTO DE INSTRUCCIONES DEL MC68000.................................................. 26
................................................................................................................................................. 26
6. DESCRIPCIN FUNCIONAL EXTERNA........................................................................ 27
6.1 Bus de datos (D0-D15).................................................................................................. 27
6.2 Bus de direcciones (A1-A23)........................................................................................ 27
6.3 Control del bus asncrono(/AS, R/#W,/UDS,/LDS,/DTACK)...................................... 28
6.3.1 Ciclo de lectura...................................................................................................... 29
6.3.2 Ciclo de escritura................................................................................................... 31
6.3.3 Conexin de chips de memoria al MC68000 ........................................................34
6.4 Control de arbitraje del bus........................................................................................... 35
6.5 Control de interrupciones.............................................................................................. 35
6.6 Control del sistema........................................................................................................ 36
6.6.1 Reintento del ciclo de bus...................................................................................... 37
6.6.2 Doble error de bus..................................................................................................38
6.7 Control de perifricos sncronos....................................................................................39
6.7.1 Operacin de transferencia de datos...................................................................... 39
2
1. INTRODUCCIN
El microprocesador MC68000 de Motorola dispone de un bus de direcciones de 23
lneas (constituyen la direccin fsica), A23-1, y un bus de datos de 16 bits, D15-0, con los que se
pueden direccionar o seleccionar 8 Megapalabras de memoria. Aunque externamente slo se
disponen de 23 lneas, internamente, las direcciones utilizan 24 bits (direccin lgica),
existiendo el bit A0 que no aparece en las lneas del bus de direcciones como tal. El bit A0,
externamente, se desdobla en dos lneas denominadas /UDS y /LDS. Estas lneas activas en
bajo, permiten seleccionar el byte alto y el byte bajo de la palabra escogida por las lneas de
direcciones A23-1. De esta forma cuando /UDS=0 y /LDS=1, se selecciona el byte alto (el de
mayor peso de la palabra indicada por A23-1), si /UDS=1 y /LDS=0, se selecciona el byte bajo
de la palabra y si /UDS=/LDS=0, se selecciona la palabra completa. Por todo esto se puede
decir que, el conjunto A23-0, identifica la direccin de uno de los dos bytes contenidos en la
palabra identificada por A23-1 . En modo byte, si se accede a una direccin par, se accede al
byte ms significativo (/UDS activo), y si la direccin es impar, se accede al byte menos
significativo (/LDS activo). En modo palabra, (/UDS y /LDS activos) se acceden a la palabra
completa, y la direccin debe ser un nmero par. Segn desde el punto de vista desde el que
se mire, este microprocesador puede direccionar 8 Mega palabras o 16 Megabytes.
A31
A23-A1
A23
A1
A0
&
/UDS
&
/LDS
palabra
DB15-DB0
MC68000
D0 31
D1
D2
D3
D4
D5
D6
D7
A0
A1
A2
A3
A4
A5
A6
16 15
8 7
PALABRA LARGA
PALABRA
REGISTROS
DE DATOS
BYTE
PALABRA LARGA
PALABRA
REGISTROS DE
DIRECCIONES
CCR
REG. ESTADO
16 15
8 7
PALABRA LARGA
PALABRA
REGISTROS
DE DATOS
BYTE
PALABRA LARGA
PALABRA
REGISTROS DE
DIRECCIONES
T: Modo traza. Cuando este bit vale 1, el MC68000 ejecuta el programa paso a paso. Slo se
puede poner a 1 en modo supervisor
7
MODOS DE DIRECCIONAMIENTO
MODO DE DIRECCIONAMIENTO
Directo de registro de datos
Directo de registro de direcciones
Indirecto de registro
Indirecto de registro con postincremento
Indirecto de registro con predecremento
Indirecto de registro con desplazamiento
Indirecto de registro indexado con desplazamiento
Absoluto corto
Absoluto largo
Relativo a PC con desplazamiento
Relativo a PC indexado con desplazamiento
Inmediato
MODO
000
001
010
011
100
101
110
111
111
111
111
111
EA
REGISTRO
Nmero de registro (Dn)
Nmero de registro (An)
Nmero de registro (An)
Nmero de registro (An)
Nmero de registro (An)
Nmero de registro (An)
Nmero de registro (An)
000
001
010
011
100
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OW
codigo de operacion
10
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
EA destino
OW
codigo_op
tamao
modo
registro
a)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OW
codigo de operacion
registro
b)
NEG.W D2
El tipo (b) es usado por instrucciones que slo emplean un registro de datos como operando,
por lo que slo consta de dos campos:
-
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
EA destino
EA fuente
OW cod_op tamao
registro
modo
modo
registro
La instruccin usa dos campos de direccin efectiva para especificar la posicin del operando
fuente y el destino. Slo la instruccin MOVE utiliza este formato
Tipo (b)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
cod_op
registro
modo_op EA fuente/destino
OW
modo
registro
Este es el formato ms comn para instrucciones de dos operandos en las que, uno de ellos,
est especificado por un registro y, el otro, por una direccin efectiva. Existe un campo
modo_op que codifica el tamao de los operandos y el destino de los mismos
Campo MODO_OP
Byte
000
100
Palabra
001
101
Doble pal.
010
110
Operacin
<registro>OP<EA>registro
<EA>OP<registro> EA
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OW
cod_op
registro
modo_op
registro
Este formato lo emplean aquellas instrucciones en las que los operandos se encuentran en los
registros internos.
El campo modo_op especifica el tamao de la operacin y el tipo de registros que intervienen
(datos o direcciones)
Dentro de las instrucciones de dos operandos existen unos formatos especiales, llamados
formatos CORTOS como son los asociados a las instrucciones ADDQ (suma rpida), SUBQ
(resta rpida) y MOVEQ( movimiento rpido). En estas instrucciones, uno de los operandos
12
es una pequea constante que se codifica en la propia OW. Existen dos formatos cortos.
15 14 13 12 11 10
OW
cod_op
cod_op
registro
15 14 13 12 11 10
OW
dato
4 3 2 1
EA destino
dato
modo_op
modo
registro
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OW
cod_op
condicion
desplazamiento
4. MODOS DE DIRECCIONAMIENTO
El 68000 dispone de 14 modos de direccionamiento, siendo uno de los ms potentes
entre los microprocesadores de 16 bits y que dan lugar a una mayor simplicidad en la
realizacin de los programas. Los modos de direccionamiento pueden clasificarse en:
- Direccionamiento implcito
- Direccinamiento inmediato
- Modos de registro directo
- Modos de direccionamiento de memoria
- Direccionamiento absoluto
- Modos de direccionamiento relativos
Como veremos a continuacin, alguno de estos grupos se subdividen en varios modos.
Los modos de direccionamiento asociados a las diferentes instrucciones vienen
codificados en el propio cdigo de instruccin en el campo direccin efectiva (EA). La
siguiente figura representa el formato general de una palabra de instruccin con una nica
direccin efectiva. Esta se encuentra constituida por dos campos de tres bits. Un campo se
denomina modo y, el otro, registro. Los valores del campo modo especifican los diferentes
tipos de direccionamiento, mientras que los valores del campo registro, seleccionan un
13
#DATO,OPERANDO_DESTINO
Ejemplo:
MOVE.W #$1234,D0
Esta instruccin carga la constante hexadecimal $1234 en los 16 bits menos
significativos del registro D0.
Como ya se ha mencionado, este modo de direccionamiento requiere de una o dos
palabras de extensin, dependiendo del tamao del dato. Si el tamao especificado para el
dato es de un byte, este se encuentra en el byte bajo de la palabra de extensin. Si el tamao
es de una palabra, el operando ocupa una palabra de extensin completa y si el tamao es de
palabra larga, el operando tiene dos palabras de extensin asociadas.
Algunas instrucciones utilizan ciertas variantes del modo inmediato: variante rpida
y variante inmediata.
14
Dn,OPERANDO_DESTINO
Ejemplo:
MOVE.L D1,D0
An,OPERANDO_DESTINO
Ejemplo:
MOVE.L A0,D0
En este modo de operacin slo se pueden trabajar con operandos de tipo palabra y
palabra larga. Si un registro de direcciones acta como operando destino, se modifican los 32
bits del mismo siempre. Por tanto, en el caso de que se produzca una transferencia de 16 bits,
se produce una extensin del bit de signo hacia los 16 bits ms significativos del registro de
direcciones.
15
(An),OPERANDO_DESTINO
Ejemplo:
MOVE.W (A5),D1
Esta instruccin lleva el dato almacenado en la posicin de memoria especificada por
el registro A5 hacia el registro D1.
16
(An)+,OPERANDO_DESTINO
Ejemplo:
MOVE.W (A0)+,D1
Esta instruccin carga en el registro D1 el contenido de la posicin de memoria
apuntada por el registro A0. Al finalizar la operacin se incrementa el registro A0 en dos
unidades.
Este modo de direccionamiento es muy til para trasladar los datos de una posicin de
memoria a otra.
-(An),OPERANDO_DESTINO
Ejemplo:
17
MOVE.B -(A0),D1
Esta instruccin primero decrementa el contenido del registro A0, y despus carga en
el registro D1 el contenido de la posicin de memoria de tamao byte que es apuntada por
A0.
d16(An),OPERANDO_DESTINO
Ejemplo:
MOVE.L 12(A0),D0
18
12
W/L
11
0
10
0
9
0
8
Desplazamiento
7
d8 (An,Xn.N), OPERANDO_DESTINO
Ejemplo:
MOVE.L $10(A0,A3.W),D0
19
xxxx,OPERANDO_DESTINO
Ejemplo:
MOVE.W
$10F8,D0
20
xxxxxx.W,OPERANDO_DESTINO
Ejemplo:
MOVE.L
$0010F8,D0
21
xxx.W,OPERANDO_DESTINO
Ejemplo:
22
MOVE.W
$18(P),D0
12
W/L 0
11
10
0
9
0
8
Desplazamiento
7
23
Estas cuatro categoras representan numerosas excepciones por lo que resultan poco
tiles. En el siguiente cuadro se muestra una clasificacin ms compleja con un total de nueve
categoras de direcciones efectivas y la pertenencia o no de los distintos modos de
direccionamiento a cada una de ellas. Esta clasificacin se deriva de la anterior y las
categoras que aparecen son combinaciones de las cuatro anteriores. Las categoras son las
siguientes:
EL: Direccin efectiva
DEA: Direccin efectiva de datos
MEA: Direccin efectiva de memoria
CEA: Direccin efectiva de control
AEA: Direccin efectiva alterable
ADEA: Direccin efectiva alterable de datos
AMEA: Direccin efectiva alterable de memoria
ACEA: Direccin efectiva alterable de control.
MODOS DE DIRECCIONAMIENTO
CATEGORAS DE EL
EL
DEA
AEA
ADEA
Dn
An
X
X
X
X
(An)
(An)+
-(An)
de(An)
d8(An,Ri.X)
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
XXXX
XXXXXX
X
X
X
X
X
X
X
X
X
X
de(P)
d8(PC,Ri.X)
X
X
X
X
X
X
X
X
#XXXXXXXX
25
MEA
CEA
AME
A
ACEA
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Operaciones de aritmtica entera: ADD, ADDA, ADDI, ADDQ, ADDX, CLR, CMP,
CMPA, CMPI, CMPM, DIVU, DIVS, EXT, MULU, MULS, NEG, NEGX, SUB, SUBA,
SUBI, SUBW , SUBX y CMP
Operaciones lgicas: AND, ANDI, EOR, EORI, OR, ORI, NOT y TST
Operaciones de desplazamiento y rotacin: ASL, ASR, LSL, LSR, ROL, ROR, ROXL,
ROXR y SWAP
Operaciones de control del programa: BRA, BSR, JMP, JSR, RTR, RTS, y NOP.
Operaciones de control del sistema: RESET, RTE, STOP, TRAP, TRAPV, CHK, ..
26
de salida del mismo nombre, mientras que el bit A0, se desdobla en las dos lneas de salida
anteriormente citadas. Tanto /UDS como /LDS son activas en bajo. Si A0=0, se activa la lnea
/UDS habilitando los 8 bits de ms peso del bus de datos, indicando que se trata de una
direccin par. Si A0 = 1, se activa la lnea /LDS, habilitando los 8 bits de menos peso del bus
de datos, e indicando que se trata de una direccin impar. Cuando se direcciona una palabra,
se activan ambas lneas /UDS y /LDS.
6.3 Control del bus asncrono(/AS, R/#W,/UDS,/LDS,/DTACK)
Este bloque esta constituido por cuatro lneas de salida ms una de entrada que sirven para
controlar la transferencia de datos por el bus de datos.
Habilitacin de direcciones (/AS)
Es una lnea triestado de salida, activa en nivel bajo y mediante la cual la CPU
informa que la direccin existente en el bus de direcciones es vlida. Normalmente los drivers
que controlan las lneas del bus de direcciones tienen unos tiempos de propagacin que
difieren de una lnea a otra, por tanto la utilidad de /AS est en la de asegurar, al exterior, que
ha pasado el tiempo suficiente para que se hayan estabilizado los valores lgicos de las lneas
del bus de direcciones.
Lectura/Escritura (R/#W)
Esta lnea triestado indica el sentido del flujo de informacin en el bus de datos. Si el
ciclo es de lectura, R/#W = 1, el bus recoge informacin hacia el microprocesador. Si el ciclo
es de escritura, R/#W = 0, por el bus circula informacin procedente del microprocesador
hacia la memoria o perifrico.
Habilitacin de datos parte alta y parta baja (/UDS y /LDS)
Son lneas de salida triestado, que junto con R/#W controlan el flujo de informacin
en el bus de datos. Cuando se trabaja con datos de tipo byte, indican por qu parte del bus,
parte alta (D15-D8) o parte baja (D7-D0) se realiza la transferencia del dato. Si A0=0, se
28
accede a una direccin par y /UDS est activa(/UDS=0 y /LDS=1). Si A0=1, se accede a una
direccin impar y /LDS est activa (/UDS=1 y /LDS=0).
Si se accede a datos de tipo palabra, el bit A0 no tiene sentido, ya que en este caso se trabaja
con todo el bus de datos, entonces /UDS=/LDS=0.
Reconocimiento de transferencia de datos (/DTACK)
Es una lnea de entrada, activa en nivel bajo, que indica que la transferencia del dato
ya ha sido realizada. Durante un ciclo de lectura, cuando /DTACK=0, se captura el dato y
termina el ciclo de lectura. Durante un ciclo de escritura, si /DTACK=0, el dato ya ha sido
escrito y termina el ciclo de escritura. En definitiva, esta seal permite configurar la velocidad
de trabajo de la CPU con la memoria y los perifricos que controla.
Podemos definir los siguientes ciclos de bus en el MC68000
Ciclo de lectura
Ciclo de escritura
Para el ciclo de lectura se definen ocho estados. Cada estado se corresoponde con un nivel
logico de la seal de reloj del procesador:
ESTADO 0 (S0): En este estado se inicia el ciclo de lectura. El procesador sita los valores
del cdigo de funcin en las salidas FC2-0 y pone a 1 la salida R/#W
ESTADO 1 (S1): En este estado, el procesador coloca la direccin vlida en el bus de
direcciones
ESTADO 2 (S2): En el flanco ascendente de S2, el procesador activa la salida #AS y los
habilitadores de bus #UDS, #LDS en funcin del tamao del dato y la direccin donde este
se ubique (par o impar)
ESTADO 3 (S3): Durante este estado no se alteran ninguna seal
ESTADO 4 (S4): Durante este estado el procesador espera la seal de terminacin del ciclo
mediante la recepcin de un 0 por su entrada #DTACK o por la activacin de #BERR o de
#VPA. (Si se activa esta ltima comienza un ciclo especial de lectura). Si no se recibe
ninguna seal por estas entradas antes del flanco de bajada de S4, el procesador inserta
estados de espera(ciclos de reloj completos) hasta que #DTACK,#BERR o #VPA se activen.
ESTADO 5 (S5): Durante este estado no cambia ninguna seal del bus
ESTADO 6 (S6): En este estado los datos del dispositivo son mantenidos en el bus de datos
ESTADO 7 (S7): En el flanco de bajada del estado 7, el procesador captura los datos del bus
y desactiva #AS,#UDS y/o #LDS en el flanco de subida de S7, colocando al final de S7 el bus
de direcciones en alta impedancia. Por su parte, el dispositivo externo debe haber retirado
#DTACK o #BERR durante este tiempo.
30
Dispositivo externo
(memoria o perifericos)
MC68000
Direccionamiento del dispositivo
1) Pone R/#W a 1(S0)
2) Coloca el codigo de funcion(FC2-0)(S0)
3) Coloca direccione en A23-A1 (S1)
4) Activa #AS(S2)
5) Activa #UDS y/o #LDS(S2)
Introduccion de datos
1) Decodificacion de direccion
2) Coloca el dato en D15-D8 y/o D7-D0
(dependiendo de #UDS y #LDS)
3) Activa #DTACK(no SW si en S4)
Adquisicion de datos
1) Almacena datos(fin S6)
2) Desactiva #UDS y #LDS(S7)
3) Desactiva #AS(S7)
Termina ciclo
1) Retira el dato de D15-D8 y/o D7-D0
2) Desactiva #DTACK
31
Durante un ciclo de escritura, el procesador manda bytes de datos hacia la memoria o algn
dispositivo perifrico.
Si la instruccin especifica un operando de tamao palabra, el procesador activa #UDS y
#LDS para habilitar las 16 lneas del bus de datos. Si el operando es de tamao byte, en
funcin de A0 se activar #UDS o #LDS
En el ciclo de escritura se definen ocho estados:
ESTADO 0 (S0): En este estado se inicia el ciclo de lectura. El procesador sita los valores
del cdigo de funcin en las salidas FC2-0 y pone a 1 la salida R/#W
ESTADO 1 (S1): En este estado, el procesador coloca la direccin vlida en el bus de
direcciones
ESTADO 2 (S2): En S2, el procesador activa la salida #AS y pone R/#W a 0.
ESTADO 3 (S3): Durante este estado el bus de datos sale de su estado de alta impedancia
para mostrar el dato que ser escrito.
ESTADO 4 (S4): En el flanco ascendente de S4, el procesador activa #UDS o/y #LDS.
Adems, durante este estado el procesador espera la seal de terminacin del ciclo mediante
la recepcin de un 0 por su entrada #DTACK o por la activacin de #BERR o de #VPA. (Si
se activa esta ltima comienza un ciclo especial de escritura). Si no se recibe ninguna seal
por estas entradas antes del flanco de bajada de S4, el procesador inserta estados de espera
(ciclos de reloj completos) hasta que #DTACK,#BERR o #VPA se activen.
ESTADO 5 (S5): Durante este estado no cambia ninguna seal del bus
ESTADO 6 (S6): Durante este estado no cambia ninguna seal del bus
ESTADO 7 (S7): En el flanco de bajada del estado 7, el procesador desactiva #AS,#UDS y/o
#LDS y en el flanco de subida de S7, pone el bus de direcciones en alta impedancia y R/#W a
1. Por su parte, el dispositivo externo debe haber retirado #DTACK o #BERR durante este
tiempo.
32
Dispositivo externo
(memoria o perifericos)
MC68000
Direccionamiento del dispositivo
1) Coloca el codigo de funcion(FC2-0)(S0)
2) Coloca la direccion en A23-A1 (S1)
3) Activa #AS(S2)
4) Pone R/#W a 0(S2)
5) Coloca datos en D15-8 o/y D7-0 (S3)
5) Activa #UDS y/o #LDS(S4)
Introduccion de datos
1) Decodificacion de direccion
2) Captura el dato de D15-D8 y/o D7-D0
(dependiendo de #UDS y #LDS)
3) Activa #DTACK(no SW si en S4)
Adquisicion de datos
1) Desactiva #UDS y #LDS(S7)
2) Desactiva #AS(S7)
3) Retira datos del bus (fin S7)
4) Pone R/#W a 1 (fin S7)
Termina ciclo
1) Desactiva #DTACK
33
35
intentar
El circuito externo que permite la activacin de esta entrada del microprocesador debe
controlar la duracin existente entre la activacin de la lnea /AS y la respuesta /DTACK. Si
una vez activa la seal /AS, la seal /DTACK no se ha activado pasado un tiempo mximo,
este circuito debe activar la seal /BERR.
36
D1
D2
D3
D4
/AS
CLK
CLR
Q1
Q1
Q2
Q2
Q3
Q3
Q4
Q4
/BERR
38
#HALT: Una entrada en esta lnea bidireccional provoca que el microprocesador pare el
ciclo del bus actual.
Esta lnea acta como salida cuando el procesador para de ejecutar instrucciones( como por
ejemplo cuando sucede un doble error de bus). De esta forma se avisan a los dispostivos
externos de que el microprocesador ha parado.
6.7 Control de perifricos sncronos
perifrico sncrono
3) El procesador espera hasta que la seal E pase a nivel bajo, entonces activa /VMA
4) El perifrico espera hasta que E se active, entoces transfiere los datos.
5) El procesador espera que E vuelva a 0 ( en un ciclo de lectura los dato son cargados),
entonces desactiva primero /VMA y despus /AS, /UDS y /LDS.
6) 6) Comienza un nuevo ciclo.
6.8 Estado del procesador
Estas salidas codifican el estado interno del procesador. La siguiente tabla resume los cdigos
asociados a los estados internos. Estas salidas son vlidas cuando #AS est activa.
FC2
0
0
0
0
1
1
1
1
FC1
0
0
1
1
0
0
1
1
FC0
0
1
0
1
0
1
0
1
Tipo de ciclo
Indefinido
Datos de usuario
Programa de usuario
Indefinido
Indefinido
Datos de supervisor
Programa de supervisor
Reconocimiento de interrupciones
7. PROCESOS DE EXCEPCIN
Existen un gran nmero de situaciones en las cuales es necesario disponer de
mecanismos que permitan interrumpir la ejecucin normal de una secuencia de instrucciones
para pasar a atender, de forma inmediata, esa situacin particular. Las excepciones pueden
deberse a muchas causas diferentes y se clasifican en internas o externas segn stas sean
debida a un error interno, una instruccin especial, o una seal procedente del exterior. La
siguiente figura recoge una clasificacin de las excepciones.
40
Excepciones
Internas
Error de
Ejecucion
Traza
Externas
Instruccin
ilegal
Reset
Error de bus
Peticion de
interrupcion
Division por
cero
Autovector
Violacion de
privilegio
Usuario (no
autovector)
Emulador
Instruccion
ilegal
Error en
direccion
NMERO
VECTOR
DIRECCIN
DECIMAL
HEX.
ASIGNACIN
000
004
Reset: PC incicial
008
Error de Bus
12
00C
Error en direccin
16
010
Instruccin ilegal
20
014
24
018
Instruccin CHK
28
01C
Instruccin TRAP
32
020
Violacin de privilegio
36
024
Traza
10
40
028
11
44
02C
12
48
030
13
52
034
(No asignado,reservado)
14
56
038
15
60
03C
16-23
64-92
040-05C
24
96
060
Interrupcin esprea
25
100
064
26
104
068
27
108
06C
28
112
070
29
116
074
30
120
078
31
124
07C
32-47
128-188
080-0BC
48-63
192-252
0C0-0FC
64-255
256-1020
1003FC
TIPO DE EXCEPCIN
0
Alta
Reset
Error de BUS
Error en direccin
Traza
Interrupcin
Comienza el procesamiento de la
excepcin cuando termina la
instruccin actual
Instruccin ilegal
Instruccin no implementada
Violacin de privilegio
Comienza el procesamiento de la
excepcin cuando termina el ciclo
de bus actual
TRAP, TRAPV,CHK
Divisin por cero
Comienza el procesamiento de la
excepcin cuando se ejecuta la
instruccin
2
Baja
ACCIN
Se aborta el ciclo de bus actual
dentro de 2 ciclos de reloj
ERRORES DE EJECUCIN
->
Error en direccin.
Se produce cuando el MC68000 intenta a acceder a una palabra o a una palabra larga
con una direccin impar. Una caracterstica de esta excepcin es que, adems de los
registros PC y SR, en la pila se guarda cierta informacin adicional con el fin de
ayudar a la rutina de servicio a identificar la causa del error. Esta informacin incluye
la primera palabra de la instruccin que produjo el error (tomada directamente del
contenido del registro de instruccin del procesador), la direccin en cuyo acceso de
produjo el error , y una palabra denominada de "super-estado" que indica:
- Si la operacin era de lectura o de escritura
- Si el procesador se encontraba procesando una instruccin o una excepcin
44
de los grupos 0 y 1
- Los valores de las lneas de cdigo de funcin FC2-0
->
Instruccin ilegal
El MC68000 detecta una instruccin ilegal si, al buscar la primera palabra de una
instruccin, encuentra que no contiene ninguno de los cdigos de operacin vlidos de
su repertorio de instrucciones. La excepcin se trata como en el caso habitual, con
bifurcacin al vector nmero 4. La ejecucin de la instruccin ILLEGAL tiene el
mismo efecto.
->
Instruccin de emulacin.
Si los cdigos de operacin encontrados son las combinaciones 1010 o 1111, entonces
se bifurca a los vectores 10 u 11, respectivamente. Estos cdigos de operacin han
sido reservados para extender el juego de instrucciones del MC68000 mediante
emulacin. Pueden usarse instrucciones comenzando por uno de estos cdigos que
sern emuladas por el software de la rutina de servicio de la excepcin
correspondiente.
->
Violacin de privilegio
Se produce una violacin de privilegio cuando se intenta ejecutar una instruccin
reservada al modo supervisor con el bit S=0, es decir, en modo usuario.
B)
TRAZA
El modo traza se activa cuando se pone a 1 el bit T del registro de estado SR. En este
modo, denominado tambin "paso a paso", el procesador genera una excepcin, con
vector de excepcin nmero 9, despus de ejecutar cada instruccin de una secuencia.
Como parte del procesamiento de esta excepcin, el MC68000 pone a 0 el bit T, con
lo cual la rutina de servicio de la exepcin se ejecuta en modo normal. Al retornar se
recupera el valor de T de la pila.
C)
INSTRUCCIONES TRAP,TRAPV,CHK
45
Estas tres instrucciones permiten generar una excepcin directamente desde una
instruccin, es decir, en el punto exacto de la secuencia de cdigo elegido por el
programadr:
->
TRAP
TRAPV
CHK
B) ERROR DE BUS
Ocurre cuando la electrnica externa activa la entrada #BERR. El procesamiento es
idntico al de error de direccin salvo que se usa el vector de interrupcin 2. Si cuando se
procesa la excepcin de error de bus, la entrada #BERR se activa (doble error de bus), el
68000 para. En tal situacin, slo un RESET permite reanudar la ejecucin de instrucciones.
C) INTERRUPCIONES
La activacin de las entradas #IPLn codifica el nivel de peticin de interrupcin. El
nivel 0, #IPLn(n=0,1,2)=1 indica que no hay interrupcin, y el nivel 7, #IPLn(n=0,1,2)=0
indica la interrupcin de mayor prioridad o interrupcin no enmascarable. Estas seales deben
permanecer estables hasta que el microprocesador inice el ciclo de reconocimiento de
interrupciones.
El nivel de interrupcin que puede atender el microprocesador viene fijado por los bits
I0,I1,e I2 del SR. Si el nivel de peticin de interrupcin es de mayor prioridad que el fijado
por la mscara, se atender la peticin, en caso contrario, no, a excepcin, como ya se ha
mencionado, para el nivel 7.
Cuando el MC68000 acepta una interrupcin, se desencadenan los mismos procesos
que los descritos para las excepciones, salvo que el nmero del vector de excepcin se
obtiene mediente un ciclo especial de lectura. Se salvan en la pila el contador de programa y
el registro de estado, se activa el bit S, se desactiva el bit T, se actualizan los bits I2,I1,I0 al
nivel de la interrupcin peticionaria y se inicia el ciclo de reconocimiento de interrupcin.
En el ciclo de reconocimiento de interrupcin el MC68000 inicia un ciclo especial de
lectura en el que las salidas FC2,FC1,FC0 estn todas a 1, y los bits A3,A2,A1 identifican el
nivel de peticin de interrupcin que, el microprocesador, est procesando en ese momento.
A partir de aqu pueden ocurrir varias cosas: