procesador ingles cortex arquitectura arm embedded embedded-linux processor-architecture risc

ingles - arquitectura arm pdf



¿En qué se diferencia el modo del sistema ARM del modo supervisor del brazo? (1)

Para comparar los modos de procesador ARM con los modos de operación x86 (ring0 a ring 3), el modo de usuario tiene el mismo aspecto que ring3, en el que se ejecutan programas de espacio de usuario. Sin embargo, no puedo relacionar ring0 con el modo sistema o el modo supervisor. Dependiendo de la fuente de información, parece que ambos modos pueden muy bien hacer el trabajo de ejecutar un kernel en modo privilegiado. Las únicas diferencias entre los dos modos que pude descubrir son las siguientes:

  1. los registros 13 y 14 están almacenados en modo supervisor, mientras que para el modo sistema, los 15 registros son iguales.
  2. El modo de sistema no se puede ingresar directamente en una excepción, mientras que el modo supervisor puede hacerlo.
  3. El modo de sistema evita de alguna manera la corrupción de los registros de enlace.

¿pueden explicarme las diferencias entre los modos, que una persona que proviene de un entorno x86 puede entender?

Además, ¿cómo las diferencias arquitectónicas sutiles entre los modos, como el número de registros acumulados, hacen que uno sea mejor que el otro?


Creo que ARM ARM lo deja bastante claro (ver más abajo), no pienses que X86 solo piensa en lo que los modos de este procesador te permiten hacer o no hacer. Y lo que necesitaría en un sistema operativo y qué modos son útiles o no.

Tienes usuario y sistema y luego los modos de excepción. Sus restricciones están documentadas AFAIK. Los ARM más nuevos tienen aún más características / restricciones / protecciones, etc.

Desde ARM ARM

La mayoría de los programas de aplicación se ejecutan en modo Usuario. Cuando el procesador está en modo Usuario, el programa que se está ejecutando no puede acceder a algunos recursos del sistema protegido o cambiar el modo, salvo que se produzca una excepción (consulte Excepciones en la página A2-16). Esto permite que un sistema operativo escrito adecuadamente controle el uso de los recursos del sistema. Los modos distintos al modo Usuario se conocen como modos privilegiados. Tienen acceso completo a los recursos del sistema y pueden cambiar de modo libremente. Cinco de ellos se conocen como modos de excepción:

-FIQ

-IRQ

-Supervisor

-Abortar

- Definido.

Estos se ingresan cuando ocurren excepciones específicas. Cada uno de ellos tiene algunos registros adicionales para evitar corromper el estado del modo de usuario cuando ocurre la excepción (ver Registros en la página A2-4 para más detalles).

El modo restante es el modo Sistema, que no se ingresa por ninguna excepción y tiene exactamente los mismos registros disponibles que el modo Usuario. Sin embargo, es un modo privilegiado y, por lo tanto, no está sujeto a las restricciones del modo de usuario. Está destinado a ser utilizado por las tareas del sistema operativo que necesitan acceso a los recursos del sistema, pero desea evitar el uso de los registros adicionales asociados con los modos de excepción. Evitar dicho uso garantiza que el estado de la tarea no se corrompa al producirse una excepción.

El modo Supervisor es lo que acelera cuando realiza la llamada svc o sys (la misma instrucción creo que cambiaron el nombre de svc). Similar a un int 21h en los dos días, así es como usted, desde el modo de usuario sin ningún permiso, le pide al sistema operativo que haga algo. Eso cambia el control al modo supervisor y luego, una vez en modo supervisor, puede manejarlo allí o cambiar de modo, etc. Una vez que se cambia al usuario, no puede cambiar. Entonces, por ejemplo, si desea configurar la pila de usuarios, no puede hacer eso fácilmente en el modo de usuario y luego volver a las tareas del sistema operativo. por lo que necesita un modo privilegiado que, si nada más tiene acceso de registro de usuario.