2. 2
INDICE
TEMA 9. EL MICROPROCESADOR68020 DE MOTOROLA. REGISTROS Y ORGANIZACIÓN DE
DATOS.
TEMA 10. JUEGO DE INSTRUCCIONESYENSAMBLADOR
TEMA 11. MODOS DE DIRECCIONAMIENTO
TEMA 12. PILA Y APLICAIONES
TEMA 13. ASPECTOS HARDWAREDEL 68000
TEMA 14. ASPECTOSHARDWARE.EXCEPCIONES
TEMA 15. TIPOSDE EXCEPCIONES
3. 3
TEMA 9. EL MICROPROCESADOR 68020DE MOTOROLA.
REGISTROS YORGANIZACIÓN DE DATOS.
CARACTERISTICAS
Arquitectura: 32 bits
Bus asíncrono: ------------------
16 registros internos de datos y direcciones a 32 bits.
Bus de datos de 32 bits
bus de direcciones de 32 bits (4 GBytes), EC20 24bits (16Mbytes)
tamaño ancho bus dinámico para soportar distintos tamaños de memorias y
periféricos.
arquitectura pipeline: ejecución concurrente de múltiples instrucciones.
Cache de 256 bytes: La memoria caché es un búfer especial, una memoria de menor
tamañoy de accesomás rápido. Datos ubicadosenlamemoriaprincipal que se utilizan
con más frecuencia.
Coprocesadores FPU y MMU, y soporte memoria virtual y máquina virtual.
Modos usuario y supervisor
REGISTROS DE DATOS
Los bits no usados no se modifican, se suelen utilizar como registros de índice. Se suelen
realizar las operaciones con datos.
REGISTRO DE DIRCCIONES
Se usan como punteros a pila, punteros a memoria, registros base. Se suele usar 16 o 32 bits.
Se modifican por completo y se extiende el bit de signo antes de realizar la operación, si
sobran bits.
REGISTROS DE LA CPU
Registrode estadoycódigosde condición (SRY CCR)
TRAZA
INTERRUPT PRIORITYMASK
X: EXTEND.= bitc para algunasoperacionescomolasaritméticas.
N: NEGATIVE. =1 si la últimaoperaciónhasidonegativa
Z: ZERO. =1 si la últimaoperaciónhasidonegativa
C: CARRY.=1 desbordamientosinsigno
V: OVERFLOW.=1 Desbordamientodel rangoconsigno
ORGANIZACIÓN DEDATOS
Alineamientoparpara instrucciones.Criterioextremistamayor,big endian, el mássignificativo
enla posiciónmásbaja.
4. 4
TEMA 10. JUEGO DE INSTRUCCIONESYENSAMBLADOR
(Juegode instruccionesentablas)
LENGUAJE ENSAMBLADOR
Directivasdel ensamblador:
- <etiq>DC. (b,w,l) <cte ocadena> introduce constantes.
Ej: Juandc.b ‘hola’
- <etiq>DS. (b,w,l) <cte>reservaespacioenmemoriaparavariables.
Ej: tamdc.s 6
- Comentarios:*
- Hexadecimal:$
- Binario:%
EJ: PROGRAMA EN ENSAMBLADOR
*d2 sumas parciales
*d1 contador
*a0 puntero a pila
option case
entry $400600
org $00400600
brainicio
tabladc.w 7,8,1,4,5,8
tamdc.w 6
resultds.w 1
iniciomovea.l #tabla,a0
clr.w d2
clr.w d1
subi.w #1,tam
bucleadd.w (a0)+,d2
addi.w #1,d1
cmp.w tam,d1
bgtfbucle
brabucle
fbucle move.w d2,(result)
move.w d2,d6
trap #15
dc.w 0
end
Copio el puntero al registro de direcciones,limpio los
dos registros de datos que voy a utilizar
Voy sumando con pos incremento y veo si he llegado al
tamaño. Cuando llego hago un branch
Muevo el resultado a la variableen la que la quería dejar
y paro la máquina.El end = he terminado de ensamblar.
5. 5
TEMA 11. MODOS DE DIRECCIONAMIENTO
Notación: dn, registro d datos. An registro de direcciones. Xn registro índice. <data>valor
inmediato.
1. DIRECTO PORREGISTRO
Se mueve enel formatoque se haya elegido,yel resto se queda tal cual. Si es registro
de direcciones se pone movea. Mueve lo que hay, ya sea dirección o dato.
Ej: move.w d1,d2.
2. INDIRECTO
Se mueve ladirecciónque haydentrodel registro.Si espostincrementose incrementa
enel valor de la direcciónsegúnel tamaño elegido. Si es pre decremento, primero se
restaal tamaño y luego se accede a esadirección.Si escon desplazamientose suma el
número que hay delante a la dirección. La dirección inicial sigue siendo la misma.
-postincremento: move.w (a3)+,d1
-predecremento: move.w –(a3),d1
-desplazamiento: move.w (2,a3),d1
3. INDEXADO
Se utiliza lo que hay en un registro en el tamaño elegido como índice.
Ejemplo:move.w (a3,d0.w*2),d1.Se iríaa ladirecciónque pone enel registro 3 más el
doble de lo que haya en tamaño Word en el registro d0.
4. INDIRECTOPOR MEMORIA
Ejemplo: move.b ([$400600]),d1. Se iria a la dirección que hay en la dirección 400600
y cogería lo que hubiera allí en formato byte.
5. ABSOLUTO
Ejemplo: move.b $400600,d1. Cogería lo que hay en la dirección 400600 en formato
byte y lo pasaría a d1.
6. INMEDIATO
Cogería el número que pone directamente para moverlo a otra dirección. Se puede
utilizar con etiquetas y cogería la dirección de esa etiqueta. Muy útil en punteros.
Ejemplo: move.w #$39A6, d1. Cogería el número3778257 y lo pondría en d1.
6. 6
TEMA 12. PILA Y APLICAIONES
CONCEPTODE PILA
La pila es un tipo de almacenamiento en el que los datos se leen en orden inverso al que se
escriben,solamente se trabajaconlacima. Solamente se puedenhacerdosoperaciones sobre
la pila: apilar (push) y desapilar (pop).
Es habitual tener un registro en la CPU actuando como puntero a pila. Esta se actualiza
automáticamente al realizar las operaciones push y pop.
RUTINAS
Salto a rutina:
-JSR: dirección efectiva. Apila automáticamente la dirección de retorno
-BSR: etiqueta. Su efecto es igual al jsr
-RTS: vuelva a la dirección de la pila y desapila 4 para dejar la pila como estaba.
SALVARREGISTROS
Es habitual salvar registros en la pila. Para ello se apilan encima con pre decremento. Luego
con pos decremento, se desapilan.
ESQUEMA
El esquemade lapilasuele ser:
1- Registros
2- DDR
3- Parámetros
EJEMPLO: sumar con pila
org $400600
bra inicio
sum1 dc.w 4
sum2 dc.w 6
result ds.w 1
inicio move.w sum1,-(a7)
move.w sum2,-(a7)
bsr suma
move.w (a7)+,result
adda.l #2,a7
suma move.l d0,-(a7)
move.w (10,a7),d0
add.w d0,(8,a7)
move.l (a7)+,d0 *devuelvola pila a DDR
rts
D0
DDR
SUM2
SUM1
$FFFF
7. 7
TEMA 13. ASPECTOS HARDWARE DEL 68000.
TERMINALES DE LA CPU
MEMORIA Y CONTROLDE BUSES
Bus de datos de 16 bits.El dato más grande que se puede leer o escribir de una sola vez es de
16 bits, y el más pequeño 8 bits.
LDS Y UDS, upper data select y lower data select se utiliza para indicar el tipo de acceso y la
parte del bus que se utiliza.
En el 68000 esobligatorioque los accesosen tamaño Word se hagan sobre direcciones pares.
Lo que significa que si la dirección es impar será de la parte baja ya que la parte alta hay un
número par (00), debido al criterio extremista mayor, big endian.
Por lo tanto UDS se activa para acceder a direcciones pares y LDS a direcciones impares.
Activado en este caso es un 0 binario. 11 sería no acceso y 00 acceso en tamaño Word.
Ciclo de bus: lectura, escritura y lec-modif-escrit
Duración mínima en el 68000: 4 ciclos de reloj de CPU y 8 estados (S0….S7), cada uno de un
semiciclo. Para que la operación finalice la cpu debe recibir la señal DTACK. Si la operación
tarda más se queda repitiendo el s4.
8. 8
GESTION DE BUSES
Se usan en aplicaciones en las que otro dispositivo puede hacerse cargo del control de los
buses: sistemas multiprocesador, dispositivos que emplean DMA,etc…
-BR: (busrequest) entradaenlaque el dispositivoexterno indica al 68000 que quiere tomar el
control de los buses.
-BG: (busgrant) salidamediante la que el 68000 le indica al dispositivo externo que le cederá
los buses.
-BGACK:(busgrantacknowledge):cuandose activa DTACK activa bgack y desactiva br. Es decir
cuando finaliza una operación, se activa y éste desactiva la entrada de buses.
CONTROL DEL SISTEMA
-HALT: como entrada provoca la detención de la cpu, como salida indica a algún dispositivo
externo que la maquina se ha detenido como consecuencia de algún tipo de error.
-RESET: como entrada provoca la inicialización de la CPU y como salida inicializa los
componentes conectados a la CPU, en este caso la cpu no se inicializa.
-BERR: se ha producido un error en el acceso a algún dispositivo externo, acceso a zonas
protegidas de memoria, intento de escritura en ROM,….
INTERRUPCIONES HARDWARE
Ocurre cuando un dispositivo externo tiene que notificar algún evento en la CPU. La CPU lo
recibe a través de IPL0, IPL1, IPL2.
9. 9
TEMA 14. ASPECTOS HARDWARE.EXCEPCIONES.
Una excepciónesunacontecimientointernooexternoalaCPU que hace que se interrumpa la
ejecución normal de un programa para dar paso a la ejecución de una rutina de atención
específica.
Las interrupciones son:
-máximas:reset,errorde bus,errorde dirección.
-medias:modotraza,interrupciónhardware externa,instrucciónilegalviolaciónde privilegio.
-mínimas:interrupciónde software.
ETAPAS
1- Se copia el valor inicial del registro de estado SR , se activa el bit S (supervisor) , se
desactiva el bit t (modo traza)
2- Se obtiene la dirección de la rutina asociada a la excepción producida. Estas
excepcionesestánenlaVBR(vectorbase register), para acceder a la excepción la CPU
hace la operación, VBR+4N, siendo n el numero de excepción.
3- Se guarda en la pila el SR original y el PC (DDR). Se utiliza al acabar la rutina de
excepciónlainstrucciónRTE, que desapila el SR original y restablece su valor en el SR
de la CPU. Algunos como error de bus o dirección apilan más datos y hay que
desapilarlos manualmente.
4- Se asignaal pc la direcciónde iniciode larutinay comienzasuejecución.Se restaurael
SR vuelve a modo usuario/supervisor, recupera el modo traza y la mascara de la
interrupción.
MODIFICACION DE RUTINAS DE ATENCION COPIANDO VBR
1. Copia de vectores de tabla de vectores de excepción a RAM
2. Se modifica el vector deseado en la copia
3. Se modifica VBR para que apunte al inicio de la RAM.
10. 10
TEMA 15. TIPOS DE EXCEPCIONES
ORIGEN EXTERNO
1. Interrupcioneshardware:conIPL0,1,2 SE PRIORIFICA NUMEROS DEL 0 AL 7 de nivel de
la excepción. La de mayor prioridad es la 000, siendo el 111 ninguna excepción.
Debe de haberuna electrónicaque eviteel conflictoencasode que variosdispositivos
del mismonivel soliciteninterrupciónalavez. Los bits i0i1i2 determinan el valor de la
mascara.
2. Reset: Al producirse el reset, se le asigna al puntero a la pila del supervisor el valor
almacenadoenlaposición0 de la tabla.Se realizaun salto al programa de inicio. En el
68000 la zona baja de memoria es ROM.
3. Error de bus:se activaría BERR que esla que supervisalaacciónde buses.Si durante la
ejecuciónse produce otroerrorde bus la CPU se encuentraenunestadode doble bus.
Se activaría halt, y para salir de ese estado habría que activar reset.
ORIGEN INTERNO
Asociadas a la instrucción TRAP #n , del 0 a 15. Es equivalente a una llamada a una
subrutina, salvo que la ejecución de esa subrutina es en modo supervisor.
- Dc.w 0: no hay señal de retorno, fin natural de un programa.
- Dc.w 3:
- Dc.w 5: que imprime por pantalla el valor almacenado en d0.
- Dc.w 7: imprime por pantalla la dirección a la que apunta el registro a0.
11. 11
INSTRUCCIONES DE COMPROBACION
TRAPV: Provoca la excepción 7 si el bit v vale 1.
CHK: compara el registro de datos con el primer operando. Provocan la excepción nº 6 si
operando<dn<0.
DIVU O DIVS: provocan la excepción de división por 0.
ERRORES INTERNOS
Excepciónnº3 alineamientopar(violaciónalineamiento) , en el 68000 se produce para datos e
instrucciones y en el 68020 solo instrucciones.
Violación de privilegio: cuando se hace una operación de supervisor en modo usuario
Instrucción ilegal: el código de operación no es valido.
MODO TRAZA
Cuandola CPU operaenmodo traza , al finalizarlaejecuciónde cadainstrucción se produce la
excepción 9. Esta excepción muestra información útil acerca de registros , contador de
programa, valor del SR.