14
FUNDAMENTO DE COMPUTADORES 1

Fundamento de computadores- Motorola 68000

Embed Size (px)

Citation preview

Page 1: Fundamento de computadores- Motorola 68000

FUNDAMENTO DE COMPUTADORES

1

Page 2: Fundamento de computadores- Motorola 68000

INDICE

TEMA 9. EL MICROPROCESADOR 68020 DE MOTOROLA. REGISTROS Y ORGANIZACIÓN DE DATOS.

TEMA 10. JUEGO DE INSTRUCCIONES Y ENSAMBLADOR

TEMA 11. MODOS DE DIRECCIONAMIENTO

TEMA 12. PILA Y APLICAIONES

TEMA 13. ASPECTOS HARDWARE DEL 68000

TEMA 14. ASPECTOS HARDWARE. EXCEPCIONES

TEMA 15. TIPOS DE EXCEPCIONES

2

Page 3: Fundamento de computadores- Motorola 68000

TEMA 9. EL MICROPROCESADOR 68020 DE MOTOROLA. REGISTROS Y ORGANIZACIÓ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ño y de acceso más rápido. Datos ubicados en la memoria principal 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

Registro de estado y códigos de condición (SR Y CCR)

TRAZA INTERRUPT PRIORITY MASK X: EXTEND. = bit c para algunas operaciones como las aritméticas. N: NEGATIVE. =1 si la última operación ha sido negativa Z: ZERO. =1 si la última operación ha sido negativa C: CARRY. =1 desbordamiento sin signo V: OVERFLOW. =1 Desbordamiento del rango con signo

ORGANIZACIÓN DE DATOS

3

Page 4: Fundamento de computadores- Motorola 68000

Alineamiento par para instrucciones. Criterio extremista mayor, big endian, el más significativo en la posición más baja.

TEMA 10. JUEGO DE INSTRUCCIONES Y ENSAMBLADOR

(Juego de instrucciones en tablas)

LENGUAJE ENSAMBLADOR

Directivas del ensamblador:

- <etiq> DC. (b,w,l) <cte o cadena> introduce constantes.Ej: Juan dc.b ‘hola’

- <etiq> DS. (b,w,l) <cte>reserva espacio en memoria para variables.Ej: tamdc.s 6

- Comentarios: *- Hexadecimal: $- Binario: %

EJ: PROGRAMA EN ENSAMBLADOR

*d2 sumas parciales*d1 contador*a0 puntero a pila

option caseentry $400600org $00400600

brainiciotabladc.w 7,8,1,4,5,8tamdc.w 6resultds.w 1

iniciomovea.l #tabla,a0clr.w d2clr.w d1subi.w #1,tam

bucleadd.w (a0)+,d2addi.w #1,d1cmp.w tam,d1bgtfbuclebrabucle

fbucle move.w d2,(result) move.w d2,d6trap #15dc.w 0

4

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 variable en la que la quería dejar y paro la máquina. El end = he terminado de ensamblar.

Page 5: Fundamento de computadores- Motorola 68000

end

TEMA 11. MODOS DE DIRECCIONAMIENTO

Notación: dn, registro d datos. An registro de direcciones. Xn registro índice. <data>valor inmediato.

1. DIRECTO POR REGISTRO

Se mueve en el formato que se haya elegido, y el 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 la dirección que hay dentro del registro. Si es postincremento se incrementa en el valor de la dirección según el tamaño elegido. Si es pre decremento, primero se resta al tamaño y luego se accede a esa dirección. Si es con desplazamiento se 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ía a la dirección que pone en el registro 3 más el doble de lo que haya en tamaño Word en el registro d0.

4. INDIRECTO POR 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.

5

Page 6: Fundamento de computadores- Motorola 68000

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.

TEMA 12. PILA Y APLICAIONES

CONCEPTO DE PILA

La pila es un tipo de almacenamiento en el que los datos se leen en orden inverso al que se escriben, solamente se trabaja con la cima. Solamente se pueden hacer dos operaciones 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.

SALVAR REGISTROS

Es habitual salvar registros en la pila. Para ello se apilan encima con pre decremento. Luego con pos decremento, se desapilan.

ESQUEMA

El esquema de la pila suele ser:

1- Registros2- DDR3- Parámetros

EJEMPLO: sumar con pila

org $400600bra inicio

sum1 dc.w 4sum2 dc.w 6result ds.w 1

inicio move.w sum1,-(a7)move.w sum2,-(a7)bsr suma

6

D0

DDR

SUM2SUM1$FFFF

Page 7: Fundamento de computadores- Motorola 68000

move.w (a7)+,resultadda.l #2,a7

suma move.l d0,-(a7)move.w (10,a7),d0add.w d0,(8,a7)move.l (a7)+,d0 *devuelvo la pila a DDRrts

TEMA 13. ASPECTOS HARDWARE DEL 68000.

TERMINALES DE LA CPU

MEMORIA Y CONTROL DE 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 es obligatorio que los accesos en 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

7

Page 8: Fundamento de computadores- Motorola 68000

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.

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: (bus request) entrada en la que el dispositivo externo indica al 68000 que quiere tomar el control de los buses.

-BG: (bus grant) salida mediante la que el 68000 le indica al dispositivo externo que le cederá los buses.

-BGACK: (bus grantacknowledge): cuando se 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.

8

Page 9: Fundamento de computadores- Motorola 68000

TEMA 14. ASPECTOS HARDWARE. EXCEPCIONES.

Una excepción es un acontecimiento interno o externo a la CPU 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, error de bus, error de dirección.-medias: modo traza, interrupción hardware externa, instrucción ilegal violación de privilegio.-mínimas: interrupción de 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 excepciones están en la VBR (vector base 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ón la instrucción RTE, 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 asigna al pc la dirección de inicio de la rutina y comienza su ejecución. Se restaura el 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 RAM2. Se modifica el vector deseado en la copia

9

Page 10: Fundamento de computadores- Motorola 68000

3. Se modifica VBR para que apunte al inicio de la RAM.

TEMA 15. TIPOS DE EXCEPCIONES

ORIGEN EXTERNO

1. Interrupciones hardware: con IPL0,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.

10

Page 11: Fundamento de computadores- Motorola 68000

Debe de haber una electrónica que evite el conflicto en caso de que varios dispositivos del mismo nivel soliciten interrupción a la vez. 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 almacenado en la posición 0 de la tabla. Se realiza un salto al programa de inicio. En el 68000 la zona baja de memoria es ROM.

3. Error de bus: se activaría BERR que es la que supervisa la acción de buses. Si durante la ejecución se produce otro error de bus la CPU se encuentra en un estado de 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.

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ón nº3 alineamiento par (violación alineamiento) , 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

Cuando la CPU opera en modo traza , al finalizar la ejecución de cada instrucción se produce la excepción 9. Esta excepción muestra información útil acerca de registros , contador de programa, valor del SR.

11

Page 12: Fundamento de computadores- Motorola 68000

12