SISTEMAS OPERATIVOS
MODDELO DE PROGRAMACION Y NIVELES DE EJECUCION
Modo USUARIO
8 Registros de datos de uso general D0-D7 32 bits
7 Registros de direcciones de uso general A0-A6 32 bits
1 Registro de direcciones usado como puntero de pila USP de usuario 32 bits
1 Registro de direcciones usado como contador de programa PC 32 bits
1 Registro de estado que contiene los códigos de condición CCR 16 bits
Modo SUPERVISOR
1 Registro de direcciones usado como puntero de pila de supervisor SSP 32 bits
1 Registro de direcciones usado como puntero de pila de interrupciones ISP 32 bits
1 Registro de estado que contiene un duplicado del CCR y el byte de sistema SP
1 Registro de direcciones que sirve de vector base para interrupciones VBR 32 bits
2 Registros de comunicación de estado de microprocesador SFC DFC 32 bits
1 Registro de control de la caché del microprocesador CACR 32 bits
1 Registro de dirección de la caché del microprocesador CAAR 32 bits
Modo Usuario
Registros de datos: Dn
Los registros de datos se usan para almacenar aquellos datos que se van a manipular
en las siguientes instrucciones del programa o subrutina en curso. Por otra parte, al
tener una longitud de 32 bits, permiten trabajar en formatos de 32, 16 u 8 bits, según
indique la instrucción.
Registros de direcciones: An
Los registros de direcciones se utilizan para referenciar posiciones de memoria donde
se han de acceder datos o donde se ha nde escribir. Se ha de cuidar sin embargo el tipo
de dirección que se pretende acceder según el formato (16, 32 bits) del operando.
Cuando se utilizan como operando destino, todo el registro es modificado,
independientemente del formato del la dirección, realizando extensión de signo.
Puntero a pila de Usuario: SSP
El registro de pila de usuario, o puntero de pila, sirve para tener referenciada la
posición de memoria en que se encuentra el último dato introducido en la pila de
usuario.
Este registro no se encuentra ya dividido en 2 (USP y SSP) como ocurría en el 68000,
sino que el SSP se encuentra el juego de registros del modo Supervisor.
Contador de programa: PC
El registro de contador de programa apunta constantemente a la siguiente instrucción
que va a ser ejecutada. A partir del 68020 se utilizan los 32 bits para direccionar
posiciones de memoria.
Registro códigos de condición: CCR
El CCR se encuentra ahora separado del SR, que pasa al juego de registros del modo
Supervisor. Contiene sin embargo los mismos bits de estado formados por unos
biestables, los cuales permiten los saltos condicionales y otras instrucciones; estos bits
se sitúan en los 5 primeros bits del byte. Los otros 3 no se usan y siempre están
siempre a 0.
7 6 5 4 3 2 1 0
0 0 0 X N Z V C
Acarreo, C:
Este bit se pone a 1 cuando se produce un acarreo a consecuencia de una instrucción.
Desbordamiento, V:
Este bit denota al ponerse a 1 que la última operación ha efectuado un desbordamiento
en el dato.
Zero, Z:
Este bit indica que el último operando o resultado ha sido 0. Para ello se coloca a 1.
Negativo, N:
Indica el signo del último operando/resultado con 1 si ha sido negativo.
Extensión, X:
Se comporta como un bit de acarreo. En la mayoría de las instruuciones, un cambio en
C implica el mismo cambio en X pero existen instrucciones en las que esto no ocurre.
Modo Supervisor
Registro de pila de Supervisor: SSP
Este registro apunta a la dirección de memoria correspondiente al último dato de la
pila de Supervisor.
Registro de pila de interrupciones: ISP
Este registro apunta a la dirección de memoria correspondiente esta vez al último dato
de la pila dedicada a interrupciones.
Registro de estado: SP
Este registro contiene una copia del CCR en su parte baja (0-7) y se completa por otra
parte con el byte del sistema, que contiene información vital para el funcionamiento
del micro.
15 14 13 12 11 10 9 8 7 - 0
T1 T0 S M 0 I2 I1 I0 Copia del CCR
Máscara de interruciones I2, I1, I0:
Almacena el nivel a partir del cual se atiende a una interrupción. Si el nivel de la
interrupción entrante es mayor que el de la máscara, se atiende a esta. De otra forma
se hace caso omiso de la petición.
Existe sin embargo el nivel 7 (111) que se denomina no enmascarable puesto que se
atiende siempre. Existen pues 8 niveles de interrupción, de 0 a 7.
Supervisor S1, S0:
Con estos bits se indica el modo de trabajo en el que se encuentra el micro. Con
respecto al 68000, la variación consiste en la existencia de dos modos Supervisor:
master e interrupción. El modo master sirve para poder controlar sistemas
multiprocesador y el de interrupción para mejorar las prestaciones de estas. El bit S
indica Usuario/Supevisor y el bit M indica Master/Interrupción.
S1 S0 Modo
0 0 Usuario
1 0 Supervisor Master
1 1 Supervisor Interrupción
Traza T1, T0:
Permite la ejecución paso a paso de un programa, con vistas a la depuración de su
código. Se ha introducido una variante con respecto a los modelos anteriores: se
soportan ahora dos modos de traza. Modo normal, en el que se para la ejecución
después de cada instrucción.
Modo break, en el que se para la ejecución solo después de un salto o similares.
T1 T0 Modo
0 0 Sin traza
0 1 Traza break
1 0 Traza normal
1 1 Reservado
Registro base de vertores VBR:
Por medio de este registro se puede desplazar la tabla de los vectores de excepción.
De esta forma, no es necesario que esta se encuentre en la dirección $0.
La nueva dirección se obtiene entonces como VBR + (Num. vector * 4)
Registros de comunicación de estado de microprocesador SFC DFC:
Estos dos registros almacenan el estado que reflejaran las líneas FC2, FC1 y FC0
cuando se efectúe un intercambio de datos de un modo de funcionamiento a otro. Esto
permite pasar datos del espacio de datos Usuario al espacio de datos Supervisor.
Para lecturas se utiliza SFC y para las escrituras DFC. Los campos de bits son:
31 - 3 2 1 0
0 FC2 FC1 FC0
Registro de control de la caché del microprocesador CACR:
Mediante este registro se controla el funcionamiento de la caché que el
microprocesador lleva incorporada.
31 - 4 3 2 1 0
0 C CE F E
Enable, E:
Determina si la caché está habilitada (=1) o deshabilitada (=0).
Freeze, F:
Determina si la información de la caché se ha de ver actualizada (=0) o no (=1). Esto
no impide en absoluto que sea leída por el micro.
Clear Entry, CE:
Cuando este flag vale 1, el contenido de la memoria caché se ve ligado al valor del
CAAR. Este bit solo puede escribirse, por lo que una lectura de él siempre
proporciona un 0.
Clear, R:
Cuando este bit se activa (=1), se procede al borrado de la memoria caché.
Registro de dirección de la caché del microprocesador CAAR:

Sistemas operativos

  • 1.
    SISTEMAS OPERATIVOS MODDELO DEPROGRAMACION Y NIVELES DE EJECUCION Modo USUARIO 8 Registros de datos de uso general D0-D7 32 bits 7 Registros de direcciones de uso general A0-A6 32 bits 1 Registro de direcciones usado como puntero de pila USP de usuario 32 bits 1 Registro de direcciones usado como contador de programa PC 32 bits 1 Registro de estado que contiene los códigos de condición CCR 16 bits Modo SUPERVISOR 1 Registro de direcciones usado como puntero de pila de supervisor SSP 32 bits 1 Registro de direcciones usado como puntero de pila de interrupciones ISP 32 bits 1 Registro de estado que contiene un duplicado del CCR y el byte de sistema SP 1 Registro de direcciones que sirve de vector base para interrupciones VBR 32 bits 2 Registros de comunicación de estado de microprocesador SFC DFC 32 bits 1 Registro de control de la caché del microprocesador CACR 32 bits 1 Registro de dirección de la caché del microprocesador CAAR 32 bits Modo Usuario Registros de datos: Dn Los registros de datos se usan para almacenar aquellos datos que se van a manipular en las siguientes instrucciones del programa o subrutina en curso. Por otra parte, al tener una longitud de 32 bits, permiten trabajar en formatos de 32, 16 u 8 bits, según indique la instrucción. Registros de direcciones: An Los registros de direcciones se utilizan para referenciar posiciones de memoria donde se han de acceder datos o donde se ha nde escribir. Se ha de cuidar sin embargo el tipo de dirección que se pretende acceder según el formato (16, 32 bits) del operando. Cuando se utilizan como operando destino, todo el registro es modificado, independientemente del formato del la dirección, realizando extensión de signo. Puntero a pila de Usuario: SSP El registro de pila de usuario, o puntero de pila, sirve para tener referenciada la posición de memoria en que se encuentra el último dato introducido en la pila de
  • 2.
    usuario. Este registro nose encuentra ya dividido en 2 (USP y SSP) como ocurría en el 68000, sino que el SSP se encuentra el juego de registros del modo Supervisor. Contador de programa: PC El registro de contador de programa apunta constantemente a la siguiente instrucción que va a ser ejecutada. A partir del 68020 se utilizan los 32 bits para direccionar posiciones de memoria. Registro códigos de condición: CCR El CCR se encuentra ahora separado del SR, que pasa al juego de registros del modo Supervisor. Contiene sin embargo los mismos bits de estado formados por unos biestables, los cuales permiten los saltos condicionales y otras instrucciones; estos bits se sitúan en los 5 primeros bits del byte. Los otros 3 no se usan y siempre están siempre a 0. 7 6 5 4 3 2 1 0 0 0 0 X N Z V C Acarreo, C: Este bit se pone a 1 cuando se produce un acarreo a consecuencia de una instrucción. Desbordamiento, V: Este bit denota al ponerse a 1 que la última operación ha efectuado un desbordamiento en el dato. Zero, Z: Este bit indica que el último operando o resultado ha sido 0. Para ello se coloca a 1. Negativo, N: Indica el signo del último operando/resultado con 1 si ha sido negativo. Extensión, X: Se comporta como un bit de acarreo. En la mayoría de las instruuciones, un cambio en C implica el mismo cambio en X pero existen instrucciones en las que esto no ocurre. Modo Supervisor
  • 3.
    Registro de pilade Supervisor: SSP Este registro apunta a la dirección de memoria correspondiente al último dato de la pila de Supervisor. Registro de pila de interrupciones: ISP Este registro apunta a la dirección de memoria correspondiente esta vez al último dato de la pila dedicada a interrupciones. Registro de estado: SP Este registro contiene una copia del CCR en su parte baja (0-7) y se completa por otra parte con el byte del sistema, que contiene información vital para el funcionamiento del micro. 15 14 13 12 11 10 9 8 7 - 0 T1 T0 S M 0 I2 I1 I0 Copia del CCR Máscara de interruciones I2, I1, I0: Almacena el nivel a partir del cual se atiende a una interrupción. Si el nivel de la interrupción entrante es mayor que el de la máscara, se atiende a esta. De otra forma se hace caso omiso de la petición. Existe sin embargo el nivel 7 (111) que se denomina no enmascarable puesto que se atiende siempre. Existen pues 8 niveles de interrupción, de 0 a 7. Supervisor S1, S0: Con estos bits se indica el modo de trabajo en el que se encuentra el micro. Con respecto al 68000, la variación consiste en la existencia de dos modos Supervisor: master e interrupción. El modo master sirve para poder controlar sistemas multiprocesador y el de interrupción para mejorar las prestaciones de estas. El bit S indica Usuario/Supevisor y el bit M indica Master/Interrupción. S1 S0 Modo 0 0 Usuario 1 0 Supervisor Master 1 1 Supervisor Interrupción Traza T1, T0: Permite la ejecución paso a paso de un programa, con vistas a la depuración de su código. Se ha introducido una variante con respecto a los modelos anteriores: se soportan ahora dos modos de traza. Modo normal, en el que se para la ejecución después de cada instrucción. Modo break, en el que se para la ejecución solo después de un salto o similares.
  • 4.
    T1 T0 Modo 00 Sin traza 0 1 Traza break 1 0 Traza normal 1 1 Reservado Registro base de vertores VBR: Por medio de este registro se puede desplazar la tabla de los vectores de excepción. De esta forma, no es necesario que esta se encuentre en la dirección $0. La nueva dirección se obtiene entonces como VBR + (Num. vector * 4) Registros de comunicación de estado de microprocesador SFC DFC: Estos dos registros almacenan el estado que reflejaran las líneas FC2, FC1 y FC0 cuando se efectúe un intercambio de datos de un modo de funcionamiento a otro. Esto permite pasar datos del espacio de datos Usuario al espacio de datos Supervisor. Para lecturas se utiliza SFC y para las escrituras DFC. Los campos de bits son: 31 - 3 2 1 0 0 FC2 FC1 FC0 Registro de control de la caché del microprocesador CACR: Mediante este registro se controla el funcionamiento de la caché que el microprocesador lleva incorporada. 31 - 4 3 2 1 0 0 C CE F E Enable, E: Determina si la caché está habilitada (=1) o deshabilitada (=0). Freeze, F: Determina si la información de la caché se ha de ver actualizada (=0) o no (=1). Esto no impide en absoluto que sea leída por el micro. Clear Entry, CE: Cuando este flag vale 1, el contenido de la memoria caché se ve ligado al valor del CAAR. Este bit solo puede escribirse, por lo que una lectura de él siempre proporciona un 0.
  • 5.
    Clear, R: Cuando estebit se activa (=1), se procede al borrado de la memoria caché. Registro de dirección de la caché del microprocesador CAAR: