41
TEMA 1: MC68000 Bibliografía SISTEMAS DIGITALES: Ingeniería de los microprocesadores 68000. Antonio García Guerra y Enrique Fenoll Comés Capítulos 4,5 y 6 LA FAMILIA DEL MC68000 Julio Septién et all Capítulos 2,5 y 6 68000 MICROCOMPUTER ORGANIZATION AND PROGRAMMING. Per Stenström Capítulos 1-4 DISEÑO Y PROGRAMACIÓN DEL μP 68000 Y PERIFÉRICOS Enrique Colomar Pous et all Capítulos 2,3,5,7 INFORMACIÓN ADICIONAL Transparencias, Documentanción Electrónica, Datasheet, Enlaces a tutoriales HTML en: http://www.dte.us.es/tec_inf/itig/microele/INDEX.HTM 1

TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

TEMA 1: MC68000

Bibliografía

• SISTEMAS DIGITALES: Ingeniería de los microprocesadores68000.Antonio García Guerra y Enrique Fenoll ComésCapítulos 4,5 y 6

• LA FAMILIA DEL MC68000Julio Septién et allCapítulos 2,5 y 6

• 68000 MICROCOMPUTER ORGANIZATION ANDPROGRAMMING. Per StenströmCapítulos 1-4

• DISEÑO Y PROGRAMACIÓN DEL μP 68000 Y PERIFÉRICOS Enrique Colomar Pous et all Capítulos 2,3,5,7

• INFORMACIÓN ADICIONALTransparencias, Documentanción Electrónica, Datasheet, Enlacesa tutoriales HTML en:

http://www.dte.us.es/tec_inf/itig/microele/INDEX.HTM

1

Page 2: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

1. INTRODUCCIÓN

BUS DE DATOS (DB15-D0) - 16 bits

BUS DE DIRECCIONES (A23-A1) - 23 bits = 8 M direcc. físicas.

ORGANIZACIÓN DE LA MEMORIA = 8 M palabras

ESPACIO DE DIRECCIONAMIENTO = 16 M bytes

CONTROL DEL BUS ASÍNCRONO– \UDS \LDS (BE1, BE0)– \AS (Dirección válida)– R\#W – \DTACK (Fin de ciclo de lectura/escritura)

2. DESCRIPCIÓN INTERNA Y ORGANIZACIÓN DE DATOS2

Page 3: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

2.1 Tamaño de los operandos

BYTE = 8 bits (B)PALABRA(WORD) = 16 bits (W)PALABRA LARGA (LONG WORD) = 32 bits (L).

El tamaño del operando se especifica, explícitamente, en la instrucción:

MNEMÓNICO.N (donde N es B para byte,W para word y L para long word)

Otras instrucciones soportan tamaños de operandos predefinidos y norequieren el uso del formato anterior.

2.2Descripción interna

Estructura de registros

Modos de funcionamiento:– Supervisor– Usuario

3

D0D1D2D3D4D5D6D7

31 16 15 8 7 0

PALABRA LARGA

PALABRA

BYTE

REGISTROS DE DATOS

REGISTROS DE DIRECCIONES

A0A1A2A3A4A5A6

PALABRA LARGA

PALABRA

A7 PUNTERO DE PILA DE SUPERVISORPUNTERO DE PILA DEL USUARIO

CONTADOR DE PROGRAMA

REG. ESTADOCCRBYTESISTEMA

Page 4: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

2.2.1 Registros de datos D0-D7

Cada registro se considera como:

- Una palabra larga de 32 bits (bit de signo = bit 31).

– Dos palabras de 16 bits (palabras alta y baja). En modo palabra, sólo seaccede a la palabra baja. Bit de signo = bit 15. Escritura de tamaño palabra,no altera la palabra alta.

– Cuatro bytes. En modo byte, se accede al byte bajo de la palabra baja,dejando intactos los restantes bits. Bit de signo = bit 7.

2.2.2 Registros de direcciones. A0-A6

Contienen las direcciones de memoria que usan los modos dedireccionamiento.

La dirección del operando resultante del modo de direccionamiento debeser par para palabra y palabra larga,y, par o impar, para byte

Sólo admiten el modo palabra o el de palabra larga para lectura/escritura.No obstante una escritura en modo palabra modificaría los 32 bits del registro(extensión de signo).

Operaciones con estos registro no modifican los bits del CCR4

D0D1D2D3D4D5D6D7

31 16 15 8 7 0

PALABRA LARGA

PALABRA

BYTE

REGISTROS DE DATOS

REGISTROS DE DIRECCIONES

A0A1A2A3A4A5A6

PALABRA LARGA

PALABRA

Page 5: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

2.2.3 Registro de pila (SP)

- USP : Puntero de Pila del Usuario– SSP : Puntero de Pila del Supervisor

Los punteros SP direccionan el último dato almacenado en la pila, sedecrementan cuando se meten datos y se incrementan cuando se sacan.

2.2.4 Contador de programa (PC)

Registro de 32 bits (sólo se usan los 24 LSBs)

2.2.5 Registro de estado

Consta de 2 bytes: byte de sistema y byte de usuario (también llamadoregistro de códigos de condición o CCR).

5

A7 PUNTERO DE PILA DE SUPERVISORPUNTERO DE PILA DEL USUARIO

Page 6: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

2.2.6 Registro de códigos de condición. CCR

2.2.7Byte del Sistema.

Su contenido se puede leer y modificarse cuando se trabaja en modo supervisor.

T: Modo traza. Cuando este bit vale 1, el MC68000 ejecuta el programa paso apaso.

S: Supervisor. Indica el modo de funcionamiento del microprocesador.

I2-I0: Máscara de interrupciones. Con estos 3 bits se puede fijar el nivel deprioridad de una interrupción.

6

Page 7: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

2.3 Organización de datos en memoria

Los bytes son direccionados individualmente (n, n+1, n+2, n+3, .. )Las palabras ocupan direcciones pares (n, n+2, n+4,n+6)

El byte MSB está en la dirección par.El byte LSB está en la dirección impar.Notación big-endian.

Las palabras largas ocupan direcciones pares de 4 en 4 (n, n+4, n+8,...)

MODOS DE DIRECCIONAMIENTO

7

Page 8: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

3. FORMATO DE LAS INSTRUCCIONES

Una instrucción máquina del MC68000 puede contener entre una y cincopalabras: la primera se denomina PALABRA DE OPERACIÓN (OW), lasrestantes, palabras de extensión (EW).

La PALABRA DE OPERACIÓN (OW) puede contener:– Código de operación (OPCODE).– Tamaño del operando.– DIRECCIÓN EFECTIVA (EA). Contien dos subcampos:

– Modo – Registro

EA

MODO DE DIRECCIONAMIENTO MODO REGISTRODirecto de registro de datosDirecto de registro de direcciones

000001

Número de registro (Dn)Número de registro (An)

Indirecto de registroIndirecto de registro con postincrementoIndirecto de registro con predecrementoIndirecto de registro con desplazamientoIndirecto de registro indexado con desplazamiento

010011100101110

Número de registro (An)Número de registro (An)Número de registro (An)Número de registro (An)Número de registro (An)

Absoluto cortoAbsoluto largo

111111

000001

Relativo a PC con desplazamientoRelativo a PC indexado con desplazamiento

111111

010011

Inmediato 111 100

Las PALABRAS DE EXTENSIÓN (EW) contienen información de apoyo a losmodos de direccionamiento (campo EA de OW).

Formatos de OW:

A) Instrucciones sin operandos

Sintáxis: MNEMÓNICOEjemplos: RTS, NOP, RTE

8

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0codigo de operacionOW

Page 9: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

B) Instrucciones con un operando

Sintáxis: MNEMÓNICO.tam Operando_destinoFormato a): Consta de tres campos-> (Cod.Ope ; Tam ; EA destino)Ejemplos a): CLR.L D0, NOT.B D1, NEG.W D2Formato b): Instrucciones que sólo usan un registro de datos como operando ->dos campos-> (Cod.Ope ; reg destino)Ejemplos b): SWAP D3, EXT D1

C) Instrucciones con dos operandosLas más comunes Sintáxis: MNEMÓNICO. Tam Op_fuente, Op_destinoFormato (a) Los dos operandos están especificados por EAs

Ejemplo (a):MOVE D3,D1

Formato (b): Un operando es un registro de datos y el otro por una EA.

El campo 'mod_op'

Byte Palabra Doble pal. Operación000 001 010 <registro>OP<EA>registro100 101 110 <EA>OP<registro> EA

Ejemplo (b):ADD.B (A1),D0 ; CMP.W 8(A3),D0

9

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0codigo_op EA destino

modo registrotamaño

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0codigo de operacion registro

OW

OW

a)

b)

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

cod_opEA fuente

modo registrotamañoEA destino

modoregistroOW

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0cod_op EA fuente/destino

modo registromodo_opregistroOW

Page 10: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

Formato (c): Los dos operandos están en registros internos.

modo_op especifica el tamaño de la operación y el tipo de registros queintervienen (datos o direcciones)

Existen formatos especiales (FORMATOS CORTOS – instrucciones ADDQ,SUBQ y MOVEQ) donde uno de los operandos es una pequeña constante quese codifica en la propia OW.

D) Instrucciones de bifurcación

Las instrucciones de bifurcación condicional, Bcc, tienen un formato especial:la OW incluye un campo de desplazamiento y un campo de condición de labifuracación.

10

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0cod_op registromodo_opregistroOW

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0cod_op condicion desplazamientoOW

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0cod_op EA destino

modo registromodo_opdato

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0cod_op 0registro datoOW

OW

Page 11: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

4. MODOS DE DIRECCIONAMIENTO

- Direccionamiento implícito- Direccinamiento inmediato- Modos de registro directo- Modos de direccionamiento de memoria- Direccionamiento absoluto- Modos de direccionamiento relativos

Los modos de direccionamiento se codifican en el campo direcciónefectiva (EA) . El campo modo selecciona el modo de direccionamiento y elotro campo, el registro usado para encontrar el operando.

4.1 Direccionamiento implícito

Lo usan instrucciones que no necesitan operandos para su ejecución. (STOP,NOP,RTS).

4.2 Direccionamiento inmediato

El dato referenciado por la instrucción se encuentra en una o varias de laspalabras de extensión que siguen a la OW de la propia instrucción.

Este modo de direccionamiento se utiliza, principalmente, para inicializarlos contenidos de los registros (datos o direcciones) a un valor determinado opara incrementar su valor.

Sintáxis:

MNEMÓNICO.N #DATO,OPERANDO_DESTINO

Ejemplo:

MOVE.W #$1234,D0

11

Page 12: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

4.3 Modos de registro directo

El operando se encuentra en uno de los 16 registros internos delmicroprocesador:

4.3.1 Registro de datos directo

El operando está en el registro de datos especificado por la direcciónefectiva.

Sintáxis:

MNEMÓNICO.N Dn,OPERANDO_DESTINO

Ejemplo:

MOVE.L D1,D0

4.3.2 Registro de direcciones directo

En este caso el operando puede estar contenido en cualquier registro dedirecciones An especificado por la dirección efectiva.

Sintáxis:

MNEMÓNICO.N An,OPERANDO_DESTINO

Ejemplo:

MOVE.L A0,D0

12

Page 13: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

4.4 Modos de direccionamiento de memoria

4.4.1 Registro de direcciones indirecto

El dato está en la posición de memoria referenciada por el contenido deun registro de dirección.

Sintáxis:MNEMÓNICO.N (An),OPERANDO_DESTINO

Ejemplo:

MOVE.W (A5),D1

4.4.2 Registro de direcciones indirecto con postincremento

El dato está en la posición de memoria referenciada por el contenido deun registro de dirección. Una vez accedido al dato, el contenido del registro dedirección se incrementa en 1, 2 o 4 unidades dependiendo del tamaño deloperando usado en la instrucción.

13

Page 14: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

Sintáxis:

MNEMÓNICO.N (An)+,OPERANDO_DESTINO

Ejemplo:

MOVE.W (A0)+,D1

4.4.3 Registro de direcciones indirecto con predecremento

Igual que en el caso anterior, pero antes de acceder al operando, elcontenido del registro se decrementa en 1,2 o 4 unidades según el tamaño deloperando especificado en la propia instrucción.

Sintáxis:

MNEMÓNICO.N -(An),OPERANDO_DESTINO

Ejemplo:

MOVE.B -(A0),D1

14

Page 15: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

4.4.4 Registro de direcciones indirecto con desplazamiento

Este modo requiere de una palabra de extensión detrás del código deoperación. La dirección del dato es la suma de la dirección contenida en elregistro An y la constante de 16 bits, extendida en signo, contenida en lapalabra de extensión.

Sintaxis:

MNEMÓNICO.N d16(An),OPERANDO_DESTINO

Ejemplo:

MOVE.L 12(A0),D0

15

Page 16: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

4.4.5 Registro de direcciones indirecto con índice

Este modo de direccionamiento requiere de una palabra de extensión con elsiguiente formato:

D/A Registro W/L 0 0 0 Desplazamiento 15 14 13 12 11 10 9 8 7 0

BIT 15.- Indicador del registro índice: 0->Datos y 1-> DireccionesBITS 14-12.- Número del registro índiceBIT 11.- Tamaño del registro índice: 0-> Palabra baja del registro índice extendido ensigno; 1-> Palabra larga del registro índiceBITS 7-0.- Desplazamiento.

La dirección del operando se obtiene tras sumar el contenido del registrode direcciones con la constante de 8 bits dada en la palabra de extensión y elcontenido del registro índice:

EA = An + Xn + d8.

Sintaxis:

MNEMÓNICO.N d8 (An,Xn.N), OPERANDO_DESTINO

Ejemplo:

MOVE.L $10(A0,A3.W),D0

SCALE=1 en la figura anterior.

16

Page 17: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

4.4.6 Direccionamiento absoluto

Las palabras de extensión contienen la dirección de memoria donde estánlos operandos.Existen dos tipos:

4.4.6.1 Dirección absoluta corta

Requiere de una palabra de extensión que contiene la dirección deloperando. El contenido de la EW se extiende en signo para completar los 24bits necesarios para cualquier dirección. En este modo se puede acceder a lasdirecciones de memoria que van desde la dirección 000000h hasta la 007FFFh (32K bajos) si el bit de signo de la palabra de extensión es 0, y las direccionescomprendidas entre la FF8000 hasta la FFFFFFh (32K altos) si el bit de signoes un 1.

Sintaxis:

MNEMÓNICO.N xxxx,OPERANDO_DESTINO

Ejemplo:

MOVE.W $10F8,D0

La palabra contenida en la posición de memoria $0010f8 y siguiente sealmacena en la palabra baja del registro D0

17

Page 18: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

4.4.6.2 Dirección absoluta larga

En este caso el operando precisa de dos palabras de extensión,pudiéndose acceder a todo el mapa de memoria.

Sintaxis:

MNEMÓNICO.N xxxxxx,OPERANDO_DESTINO

Ejemplo:

MOVE.L $0010F8,D0

La palabra larga contenida en la posición de memoria $0010F8, sealmacena en el registro D0.

18

Page 19: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

4.5 Modos de direccionamiento relativos

La referencia usada para encontrar los operandos es el registro PC->Programas reubicables.

4.5.1 Contador de programa con desplazamiento

Este modo de direccionamiento requiere una palabra de extensión. Ladirección del operando es la suma del contenido del contador de programa y laEW extendida en signo.

d16(PC)

La dirección efectiva del operando se calcula como EA=PC+d16. Sintaxis:

MNEMÓNICO.N xxx,OPERANDO_DESTINO

Ejemplo:

MOVE.W $18(PC),D0

Este modo de dirección sólo es válido para operandos fuente.

19

Page 20: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

4.5.2 Contador de programa con índice

Requiere de una palabra de extensión con el siguiente formato:

D/A Registro W/L 0 0 0 Desplazamiento 15 14 12 11 10 9 8 7 0

BIT 15.- Indicador del registro índice: 0->Datos y 1-> DireccionesBITS 14-12.- Número del registro índiceBIT 11.- Tamaño del registro índice: 0-> Palabra baja del registro índice extendido ensigno; 1-> Palabra larga del registro índiceBITS 7-0.- Desplazamiento.

La dirección del operando es la suma del contenido del PC, el entero de 8bits dado en la palabra de extensión y el contenido del registro índice, que sepuede expresar como:

EA = PC + Xi.N + d8.

Sintaxis:

MNEMÓNICO.N d8 (PC,Xn.N), OPERANDO_DESTINO

Ejemplo:

MOVE.L $10(PC,A0.W),D0

Este modo de direccionamiento sólo es válido para operandos fuente.

SCALE=1 en la figura anterior.

20

Page 21: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

4.6 Las instrucciones y sus modos de direccionamiento

Los distintos modos de direccionamiento se pueden clasificar en cuatro categorías:

DATOS: Incluye los modos que pueden usarse para referirse a operandos de datos.(Incluye todos los modos de direccionamiento excepto el modo directo a registro dedirecciones)

MEMORIA: Incluye todos los modos que pueden usarse para referirse a operandos dememoria. (Inlcuye todos los modos salvo el de registro directo).

CONTROL: Incluye todos los modos que pueden usarse para referirse a operandos dememoria sin un tamaño asociado, y son usados por instrucciones de control comosaltos, llamadas a subrutinas,...(Los modos indirectos con predecremento ypostincremento y el inmediato no están incluidos).

ALTERABLE: Incluye todos los modos que pueden usarse para referirse a operandosmodificables. Un operando destino sólo puede usar los modos de direccionamientoincluidos en esta categoría.( Los direccionamientos relativos al contador de programay el direccionamiento inmediato no pertenecen a este grupo.)

Estas cuatro categorías pueden subdividirse en otras como:

EA: Dirección efectivaDEA: Dirección efectiva de datosMEA: Dirección efectiva de memoriaCEA: Dirección efectiva de controlAEA: Dirección efectiva alterableADEA: Dirección efectiva alterable de datosAMEA: Dirección efectiva alterable de memoriaACEA: Dirección efectiva alterable de control.

MODOS DE DIRECCIONAMIENTO CATEGORÍAS DE EA

EA DEA MEA CEA AEA ADEA AMEA ACEA

DnAn

XX

X XX

X

(An)(An)+-(An)

d16(An)d8(An,Ri.X)

XXXXX

XXXXX

XXXXX

X

XX

XXXXX

XXXXX

XXXXX

X

XX

XXXXXXXXXX

XX

XX

XX

XX

XX

XX

XX

XX

d16(PC)d8(PC,Ri.X)

XX

XX

XX

XX

#XXXXXXXX X X X21

Page 22: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

5. EL CONJUNTO DE INSTRUCCIONES DEL MC68000

El 68000 tiene sólo 56 instrucciones que, combinadas con los 14 modos dedireccionamiento y los cinco formatos de datos, ofrece al programador una herramientapotente para el desarrollo de programas. Nuestro objetivo es mostrar aquellas instruccionesmás usuales y de carácter general, para simplificar el aprendizaje del juego. Hemos divididolas instrucciones en los siguientes grupos:

– Operaciones de movimiento de datos: MOVE, MOVEA, MOVEM, MOVEQ, EXG, LEA, PEA, SWAP, LINK y UNLNK

– Operaciones de aritmética 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 lógicas: AND, ANDI, EOR, EORI, OR, ORI, NOT y TST

– Operaciones en BCD: ABCD, NBCD y SBCD

– Operaciones de desplazamiento y rotación: ASL, ASR, LSL, LSR, ROL, ROR, ROXL,ROXR y SWAP

– Operaciones de manipulación de bits: BTST, BSET, BCLR, BCHG

– Operaciones de control del programa: BRA, BSR, JMP, JSR, RTR, RTS, y NOP.

– Operaciones de control del sistema: RESET, RTE, STOP, TRAP, TRAPV, CHK, ..

(Ver tabla resumen)

22

Page 23: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

6. DESCRIPCIÓN FUNCIONAL EXTERNA

6.1 Bus de datos (D0-D15)

Bus triestado bidireccionale. Datos tamaño byte o palabra utilizan un único ciclo de lectura/escritura.Datos tamaño palabra requieren dos ciclos de lectura/escritura.

6.2 Bus de direcciones (A1-A23)

Bus triestado unidireccional de 23 bits.

23

Page 24: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

6.3 Control del bus asíncrono(/AS, R/#W,/UDS,/LDS,/DTACK)

Habilitación de direcciones (/AS)

Línea triestado de salida, activa en nivel bajo.Indica (cuando activa) que la dirección existente en el bus de direcciones

es válida.

Lectura/Escritura (R/#W)

Línea triestado de salida.Indica el sentido del flujo de información en el bus de datos. (R/#W = 0

Escritura; R/#W=1, Lectura)

Habilitación de datos parte alta y parta baja (/UDS y /LDS)

Líneas de salida triestado.Habilita el uso de una o ambas mitades del bus de datos.

24

Page 25: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

Reconocimiento de transferencia de datos (/DTACK)

Línea de entrada, activa en nivel bajo.Indica que la transferencia del dato ya ha sido realizada. Permite configurar la velocidad de trabajo de la CPU con la memoria y

los periféricos que controla.

Podemos definir los siguientes ciclos de bus en el MC68000

Ciclo de lectura Ciclo de escritura

6.3.1 Ciclo de lectura

- Durante un ciclo de lectura, el procesador recibe 1 o 2 bytes de datos por elbus. -Para operandos de tamaño palabra larga se requieren dos ciclos de lectura.

-Para el ciclo de lectura se definen ocho estados (4 ciclos de reloj).

25

Direccionamiento del dispositivo1) 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 datos1) Decodificacion de direccion2) 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-D02) Desactiva #DTACK

MC68000Dispositivo externo (memoria o perifericos)

Page 26: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

- En el estado 4 (S4) el procesador espera la señal de terminación del ciclomediante la recepción de un 0 por su entrada #DTACK o por la activación de#BERR o de #VPA. Si no se recibe ninguna señal por estas entradas antes delflanco de bajada de S4, el procesador inserta estados de espera(ciclos de relojcompletos) hasta que #DTACK,#BERR o #VPA se activen.

26

Page 27: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

6.3.2 Ciclo de escritura

-Durante un ciclo de escritura el procesador manda bytes de datos hacia lamemoria o algún dispositivo periférico.

- En el ciclo de escritura se definen ocho estados:

- En el flanco ascendente de S4, el procesador activa #UDS o/y #LDS. En esteciclo el procesador espera la señal de terminación de la escritura mediante larecepción de un 0 por su entrada #DTACK o por la activación de #BERR o de#VPA. Si no se recibe ninguna señal por estas entradas antes del flanco debajada de S4, el procesador inserta estados de espera (ciclos de reloj completos)hasta que #DTACK,#BERR o #VPA se activen.

27

Direccionamiento del dispositivo1) 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 direccion2) 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

MC68000Dispositivo externo (memoria o perifericos)

Page 28: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

6.4 Control de arbitraje del bus

Estas señales permiten el dialogo entre el microprocesador y otroscontroladores existentes en el sistema para determinar quién será el maestro delbus.

#BR: Bus Request. Esta línea de entrada indica al microprocesador que existeun controlador externo que solicita ser el controlador del bus para acceder a lamemoria.

#BG: Bus Grant. Esta línea de salida indica a posibles controladores externosque el microprocesador cede el bus cuando termine el ciclo de bus actual.

#BGACK: Bus Acknowledge. Esta entrada indica al micoprocesador que undispositivo externo controla ahora el bus. Cuando el controlador termine,desactiva esta entrada y el microprocesador se hace cargo nuevamente del bus.

6.5 Control de interrupciones

– Las entradas #IPLx codifican el nivel de petición de interrupción:Nivel = 0 ( #IPL0=1, #IPL1=1, #IPL2=1) No hay interrupción.Nivel = 1 ( #IPL0=0, #IPL1=1, #IPL2=1) Interrupción de nivel 1.....Nivel = 7 ( #IPL0=0, #IPL1=0, #IPL2=0) Interrupción de nivel 7 (máximaprioridad). Interrupción no enmascarable.

28

Page 29: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

– Las entradas #IPLx deben permanecer estables hasta que el microprocesadorinicie el CICLO DE RECONOCIMIENTO DE INTERRUPCIONES.

– Una interrupción se aceptará si el nivel de solicitud (nivel asociado a lasentradas #IPLx) es mayor que el nivel asociado a los bits (I2,I1,I0) delregistro SR, excepto para la interrupción no enmascarable que siempre seatenderá.

6.6 Control del sistema

#BERR. Bus error.

– Es una entrada que se activa para avisar de un posible error en el ciclo delectura/escritura debido a:

1. Dispositivos que no responden2. Fallo de adquisición del número de vector de interrupción3. Alguna otra aplicación dependiendo del error.

– El microprocesador tiene dos opciones cuando ocurre un error de bus:a) Intentar realizar otro ciclo de bus b) Realizar un proceso de excepción.

– El circuito externo que activa /BERR, debe controlar la duración entre laactivación de la línea /AS y la respuesta /DTACK.

29

D1D2D3D4

CLKCLR

Q1Q1Q2Q2Q3Q3Q4Q4 /BERR

/AS

E

Page 30: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

- Cronograma ejemplo

6.6.1 Reintento del ciclo de bus

– Ocurre cuando se activa \BERR cuando el microprocesador está en parada(\HALT=0)

– Cuando /HALT pasa a valer 1 el microprocesador reintenta el último ciclo debus.

30

Page 31: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

6.6.2 Doble error de bus

– La detección de un Error de Bus provoca una excepción.

– La excepción de BERR requiere acceder a memoria. Si ocurre, entonces, otroerror, el microprocesador para y coloca la línea de \HALT A 0. Esto es undoble error de bus.

– Únicamente, mediante un reset externo, se puede sacar el microprocesador deeste estado de parada.

#RESET:

– Línea bidireccional:Entrada. Si se activa, junto con HALT, durante 10 ciclos de CLK o 10ms enPower-Up, se produce la secuencia de inicialización (el microprocesador lee elvector de reset de la tabla de vectores para cargar el puntero de pila delsupervisor y el PC, e inicializa los bits de interrupciones I2,I1,I0 del SR al nivel7.

Salida. Si se ejecuta la instrucción RESET. Esta instrucción pone el pin RESET ao durante 124 ciclos de reloj.

#HALT:

– Línea bidireccional:Entrada: Provoca que el microprocesador pare el ciclo del bus actual.Salida: Se activa cuando el procesador deja de ejecutar instrucciones.

31

Page 32: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

6.7 Control de periféricos síncronos

Sirven para manejar los dispositivos de entrada/salida asociados almicroprocesador MC6800.

E: - Línea de salida que se conecta con la entrada de habilitación estándar de losperiféricos del MC6800. Es una señal de reloj (que siempre está funcionando)cuya frecuencia es diez veces menor que la señal de reloj de entrada CLK delMC68000 (seis ciclos en nivel bajo y cuatro en alto).

#VPA: Valid Peripheral Adress. – Línea de entrada.– Su activación indica que:

a) el 68000 está direccionando un periférico de la familia del MC6800 yque tiene que sinconizarse con la señal E para poder acceder a él. b) debe utilizar la vectorización automática para atender interrupciones.

#VMA: Valid Memory Adress. – Línea de salida– Su activación indica al periférico que la dirección de memoria es válida y

que el microprocesador está sincronizado con la señal E.

6.7.1 Operación de transferencia de datos

1) El procesador inicia un ciclo normal de escritura o lectura 2) La electrónica externa activa /VPA indicando que se está accediendo aun periférico síncrono

3) El procesador espera hasta que la señal E pase a nivel bajo, entoncesactiva /VMA

4) El periférico 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 después /AS, /UDSy /LDS.

6) Comienza un nuevo ciclo.

32

Page 33: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

6.8 Estado del procesador

- Codifican el estado interno del procesador.

FC2 FC1 FC0 Tipo de ciclo0 0 0 Indefinido0 0 1 Datos de usuario0 1 0 Programa de usuario0 1 1 Indefinido1 0 0 Indefinido1 0 1 Datos de supervisor1 1 0 Programa de supervisor1 1 1 Reconocimiento de interrupciones

7. PROCESOS DE EXCEPCIÓN

– Cualquier situación que requira la atención inmediata del microprocesador sedenomina execepción.

– La atención de una excepción requiere disponer de mecanismos que permitaninterrumpir la ejecución normal de instrucciones, para pasar a atender esasituación particular.

– Atendiendo al origen de la excepción se pueden clasificar en:Internas (Error de ejecución, instrucción especial,...)Externas (señal procedente del exterior -entradas IPLx, BERR...-).

33

Excepciones

Internas

Error deEjecucion

Division porceroViolacion deprivilegio

Emulador

InstruccionilegalError endireccion

Traza Instrucciónilegal

Externas

Reset Error de bus Peticion deinterrupcion

Autovector

Usuario (noautovector)

Page 34: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

7.1 Vectores de Excepción.

– Toda excepción tiene asociada una posición de memoria que contiene suvector de excepción.

– Un vector de excepción es una dirección de memoria (donde comienza larutina de servicio de la excepción).

– El procesamiento de una excepción requiere la búsqueda del vector asociado,el almacenamiento en la pila de los registros PC y SR y la bifurcación a larutina que comienza en la dirección contenida en el vector (Rutina deexcepción).

– Existen 255 vectores de excepción almacenados en la tabla de vectores deexcepción que comienza a partir de la dirección $000000 de la memoriaRAM.

– El tamaño del vector de excepción es el de una doble palabra (4 bytes), salvoel vector de RESET que ocupa dos dobles palabras (8 bytes). El tamaño de latabla de vectores es de 1Kbytes.

– Cada vector se identifica a través del número de vector (N). La dirección dememoria donde se encuentra el vector N, viene dada por 4*N .

– Los 64 primeros vectores (0 al 63) están preasignados, aunque puedensobreescribirse. Los demás vectores (192) quedan libres para ser asignados adispositivos periféricos como vectores de interrupción de usuario.

34

Page 35: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

NÚMEROVECTOR

DIRECCIÓN

DECIMAL HEX. ASIGNACIÓN

0 0 000 Reset: SSP inicial

- 4 004 Reset: PC incicial

2 8 008 Error de Bus

3 12 00C Error en dirección

4 16 010 Instrucción ilegal

5 20 014 División por cero

6 24 018 Instrucción CHK

7 28 01C Instrucción TRAPV

8 32 020 Violación de privilegio

9 36 024 Traza

10 40 028 Emulador línea 1010

11 44 02C Emulador línea 1111

12 48 030 (No asignado, reservado)

13 52 034 (No asignado,reservado)

14 56 038 (No asignado, reservado)

15 60 03C Vector de interrupción no inicializado

16-23 64-92 040-05C (No asignado, reservado)

24 96 060 Interrupción espúrea

25 100 064 Autovector interrupción nivel 1

26 104 068 Autovector interrupción nivel 2

27 108 06C Autovector interrupción nivel 3

28 112 070 Autovector interrupción nivel 4

29 116 074 Autovector interrupción nivel 5

30 120 078 Autovector interrupción nivel 6

31 124 07C Autovector interrupción nivel 7

32-47 128-188 080-0BC Vectores instrucción TRAP

48-63 192-252 0C0-0FC (No asignado, reservado)

64-255 256-1020 1003FC Vectores de interrupción de usuario)

35

Page 36: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

7.2 Secuencia de procesamiento de una excepción

La atención de una excepción debe cubrir los siguientes aspectos:

- Atención inmediata a la excepción, con interrupción, incluso, si laprioridad es alta, de la instrucción en curso.

- La bifurcación a la dirección correcta de comienzo de la rutina deservicio de la excepción.

- El retorno correcto a la secuencia de instrucciones interrumpida, unavez finalizada la rutina de servicio.

Para conseguir estos objetivos, el procesamiento de una excepción por elMC68000 transcurre en una secuencia de 4 pasos:

1. El registro SR se copia en un registro interno. Se desactiva el modo traza (T=0) yse activa el bit S (S=1) por lo que el microprocesador entra en modo supervisor.Para excepciones asociadas a peticiones de interrupción, o a RESET, se actualizael valor de la máscara de interrupciones I2-I0.

2. Se determina el número de vector de excepción por lógica interna, si es uno de lospreasignados, o a partir de una búsqueda denominada "reconocimiento deinterrupción", si se trata de una interrupción de usuario. A partir del número devector se genera la dirección del vector de excepción.

3. Se salvan, en la pila del supervisor (SSP), los contenidos del contador deprograma PC y del registro de estado SR. Primero se guarda PCH, seguido dePCL y SR.

4. El microprocesador carga en el registro PC el contenido del vector deinterrupción.

36

Page 37: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

- Después de esta secuencia, el procesador reanuda el ciclo normal de ejecuciónde instrucciones en la dirección de comienzo de la rutina de tratamiento de laexcepción.

- La última instrucción de la rutina de excepción debe ser RTE, cuya ejecuciónrecupera de la pila el registro SR, después el PCL y finalmente el PCH. Estopermite reanudar el estado y la la ejecución de instrucciones por el puntointerrumpido.

7.3 Tipos de excepción

– Las diferentes excepciones se pueden clasificar en varios grupos atendiendoa su “urgencia” o prioridad.

GRUPO Y PRIORIDAD TIPO DE EXCEPCIÓN ACCIÓN

0Alta

ResetError de BUS

Error en dirección

Se aborta el ciclo de bus actualdentro de 2 ciclos de reloj

1 TrazaInterrupción

Instrucción ilegalInstrucción no implementada

Violación de privilegio

Comienza el procesamiento de laexcepción cuando termina lainstrucción actual

Comienza el procesamiento de laexcepción cuando termina el ciclode bus actual

2Baja

TRAP, TRAPV,CHKDivisión por cero

Comienza el procesamiento de laexcepción cuando se ejecuta lainstrucción

7.3.1 Excepciones internas

- El procesamiento de las excepciones generadas internamente sigue elesquema general descrito en el apartado de secuencia de procesamiento deinterrupción, salvo en el caso de error de dirección.

A) ERRORES DE EJECUCIÓN

-> Error en dirección.

– Se produce cuando el MC68000 intenta a acceder a una palabra o a unapalabra larga con una dirección impar.

37

Page 38: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

– Esta excepción guarda en la pila, además de los registros PC y SR, ciertainformación adicional con el fin de ayudar a la rutina de excepción aidentificar la causa del error:

– OW de la instrucción que genera el error

– Dirección donde se produjo el error

– Una palabra de denominada “superestado” que indica:

- Si la operación era de lectura o de escritura- Si el procesador se encontraba procesando una instrucción o una excepciónde los grupos 0 y 1- Los valores de las líneas de código de función FC2-0

-> Instrucción ilegal

– Cuando el MC68000, al buscar la primera palabra de una instrucción,encuentra que no contiene ninguno de los códigos de operaciónválidos de su repertorio de instrucciones.

– La ejecución de la instrucción ILLEGAL tiene el mismo efecto.

-> Instrucción de emulación.

- Cuando los códigos de operación encontrados son las combinaciones1010 o 1111 (estos códigos han sido reservados para extender el juego deinstrucciones del MC68000 mediante emulación).

38

Page 39: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

-> Violación de privilegio

- Se produce una violación de privilegio cuando se intenta ejecutar unainstrucción reservada al modo supervisor con el bit S=0, es decir, enmodo usuario.

B) TRAZA

– Se activa cuando el bit T del SR está a 1.

– Este modo, denominado también "paso a paso", genera excepcionesdetrás de la ejecución de cada instrucción del programa.

C) INSTRUCCIONES TRAP,TRAPV,CHK

– Estas tres instrucciones permiten generar una excepción directamentedesde una instrucción.

-> TRAP

– Tiene el formato TRAP #numero_trap (donde numero_trap es unentero de 4 bits -0 al 15-).

– El número de TRAP identifica uno de los 16 vectores de excepciónasignados a esta instrucción.

– Esta instrucción proporciona una vía para acceder a rutinas genéricasalmacenadas la memoria no volatil (llamadas a la BIOS) o en laimplementación de puntos de ruptura.

-> TRAPV

– La instrucción TRAPV, situada inmediatamente después de unainstrucción aritmética susceptible de producir desbordamiento (V=1),produce una excepción en caso de que se produzca ese hecho.

-> CHK

- Esta instrucción compara el contenido de un registro con un límitesuperior almacenado en un lugar especificado. Si el contenido delregistro supera dicho límite, se produce la excepción.

39

Page 40: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

7.3.2 Excepciones externas

A) RESET

– Una excepción por RESET persigue objetivos algo distintos al resto de lasexcepciones.

– No se guardan los valores del PC y el SR en la pila porque no se desea volvera recuperar el estado del procesador.

– Se cargan unos valores iniciales en los registros SSP y PC.

– Además, el registro SR se inicializa de la forma siguiente:

1) Se desactiva el modo traza T=02) Se activa el modo supervisor: S=13) Se enmascaran todos los niveles de prioridad de interrupción: I2-I0=111

B) ERROR DE BUS

– Ocurre cuando la electrónica externa activa la entrada #BERR.

– El procesamiento es idéntico al de error de dirección salvo que se usa elvector de interrupción 2.

– Si en el procesamiento de esta excepción, la entrada #BERR se activa (dobleerror de bus), el 68000 para. En tal situación, sólo un RESET permitereanudar la ejecución de instrucciones.

C) INTERRUPCIONES

– La activación de las entradas #IPLn codifica el nivel de petición deinterrupción. El nivel 0, #IPLn(n=0,1,2)=1 indica que no hay interrupción, yel nivel 7, #IPLn(n=0,1,2)=0 indica la interrupción de mayor prioridad(NMI).

– El nivel de interrupción que puede atender el microprocesador viene fijadopor los bits I0,I1,e I2 del SR. Se atienden interrupciones de nivel mayor alfijado en la máscara de interrupción con la salvedad de la NMI.

– Cuando el MC68000 acepta una interrupción, se desencadenan los mismosprocesos que los descritos para las excepciones, salvo que el número del

40

Page 41: TEMA 1: MC68000 Bibliografía€¦ · La dirección del operando resultante del modo de direccionamiento debe ser par para palabra y palabra larga,y, par o impar, para byte Sólo

vector de excepción se obtiene mediente un ciclo especial de lectura:

– Se salvan en la pila el contador de programa y el registro de estado, seactiva el bit S, se desactiva el bit T, se actualizan los bits I2,I1,I0 al nivelde la interrupción peticionaria y se inicia el ciclo de reconocimiento deinterrupción:

– Las salidas FC2,FC1,FC0 se ponen todas a 1, y los bits A3,A2,A1identifican el nivel de petición de interrupción que el microprocesadorestá procesando en ese momento.

– A partir de aquí pueden ocurrir varias cosas:

– Se activa la entrada #VPA (periférico síncrono). En tal caso, elmicroprocesador utiliza el autovector asociado al nivel deinterrupción actual.

– Se activa la entrada #DTACK (periférico asíncrono). En este caso, elperiférico, además de activar esa señal, ha colocado, en el bus dedatos, un byte que contiene un número de vector de excepción. Estenúmero de vector debe estar comprendido entre 64-255 (vectores deusuario).

– Se activa la entrada #DTACK pero se recibe, como número devector, el $F. Esto es la interrupción no inicializada.

– Se activa la entrada #BERR. Indica que, en el ciclo de interrupción,el 68000 no ha recibido ningún vector de interrupción y por eso se haproducido un error de bus. Esto provoca la generación de lainterrupción espúrea (vector 24).

41