SMC |
Appel de moniteur de surveillance |
| ARM |
Syntaxe
Paramètres
| Nom |
Description |
| cond |
Ce paramètre optionnel permet d'indiquer le code de condition |
| #imm4 |
Ce paramètre permet d'indiquer une valeur immédiate de 4 bits. Ce paramètre est ignoré par le microprocesseur ARM, mais peut être utilisé par le gestionnaire d'exception SMC afin de déterminer quel service est demandé. |
Description
Cette instruction permet d'appeler le moniteur de surveillance.
Remarques
- Fonction principale : Appel de moniteur de surveillance : L'instruction SMC (Supervisor Mode Call) permet d'effectuer un appel à un moniteur de
surveillance. Elle permet à un logiciel exécuté en mode utilisateur (ou autre niveau de privilège) d'interagir avec des services qui sont gérés dans un mode de privilège
supérieur, comme le mode superviseur. Ce mécanisme est souvent utilisé pour effectuer des appels système dans des environnements de gestion sécurisée ou dans des
hyperviseurs.
- Paramètre #imm4 : Valeur immédiate de 4 bits : L'instruction prend un paramètre immédiat de 4 bits (#imm4), qui est une valeur immédiatement disponible
dans le code. Bien que cette valeur ne soit pas utilisée directement par le processeur ARM, elle est transmise au gestionnaire d'exception SMC, pouvant l'utiliser pour
déterminer quel service spécifique est demandé. Cela permet une gestion fine des appels système et des services en fonction de la valeur fournie.
- Usage dans les systèmes de virtualisation et de sécurité : L'instruction SMC est fréquemment utilisée dans les systèmes de virtualisation et dans les
environnements sécurisés pour permettre une interaction entre les niveaux de privilège. Par exemple, elle peut être utilisée pour demander un service spécifique à un
moniteur de virtualisation, tel qu'un hyperviseur ou un sécurisateur. Elle est un élément essentiel pour gérer l'accès aux ressources système sensibles.
- Appel de services supervisés ou systèmes protégés : Le principal objectif de SMC est de permettre un accès aux services supervisés. Cela signifie qu'un
processus en mode utilisateur (moins privilégié) peut appeler un service exécuté en mode superviseur ou même en mode noyau, offrant ainsi une gestion des ressources
protégée. C'est un mécanisme fondamental pour implémenter des systèmes d'exploitation sécurisés ou des firmware sécurisés.
- Interaction avec des systèmes sécurisés et gestion des exceptions : En utilisant SMC, un processeur ARM peut interagir avec des systèmes de sécurité,
en particulier dans des applications de gestion d'exception. Lorsqu'un appel à SMC est effectué, il entraîne une exception qui peut être interceptée par un gestionnaire
d'exception spécifique. Ce gestionnaire peut alors décider de l'action à entreprendre en fonction du code de service (via #imm4), que ce soit pour gérer des opérations
sensibles ou administrer l'environnement d'exécution.
- Support des mécanismes de sécurité comme TrustZone : L'instruction SMC est un élément clé dans des technologies de sécurité telles que TrustZone,
permettant de séparer le système en deux zones : une zone sécurisée (Secure World) et une zone non sécurisée (Normal World). En appelant un moniteur de surveillance via
SMC, il devient possible de communiquer entre ces deux mondes, permettant une gestion des ressources et des services protégés pour des applications sensibles, comme
celles traitant des données confidentielles.
- Utilisation dans les environnements d'hyperviseurs et de virtualisation : Dans des environnements d'hyperviseurs ou de virtualisation, l'instruction SMC
permet aux machines virtuelles de demander des services spécifiques à l'hyperviseur. Cela inclut la gestion des ressources comme la mémoire virtuelle, la gestion des
interruptions, et le contrôle d'accès au matériel. Ce mécanisme est également utilisé pour effectuer des tâches telles que la migration de VM ou l'arrêt de certaines
machines virtuelles en fonction des politiques de sécurité.
- Critères de déclenchement d'exception : L'exécution de l'instruction SMC entraîne une exception dans le processeur ARM. Cela signifie que le contrôle est
transféré au gestionnaire d'exception, où le processeur peut exécuter des actions spécifiques définies par le système d'exploitation ou le gestionnaire de moniteur. Cette
exception peut être utilisée pour déclencher des opérations liées à des services critiques qui nécessitent des privilèges élevés, comme la gestion des périphériques, la
sécurité, ou la configuration du système.
Dernière mise à jour : Dimanche, le 12 novembre 2017