MRC2 |
Déplace le registre au coprocesseur |
| ARM |
Syntaxe
|
MRC2{cond} coproc, #opcode1, Rt, CRn, CRm{, #opcode2}
|
Paramètres
| Nom |
Description |
| cond |
Ce paramètre optionnel permet d'indiquer le code de condition |
| coproc |
Ce paramètre permet d'indiquer le nom de l'instruction de coprocesseur. |
| #opcode1 |
Ce paramètre permet d'indiquer le opcode de coprocesseur en 3 bits. |
| #opcode2 |
Ce paramètre optionnel permet d'indiquer le opcode de coprocesseur en 3 bits. |
| Rt |
Ce paramètre permet d'indiquer le premier registre source ARM. Le registre ne doit pas être PC. |
| CRn |
Ce paramètre permet d'indiquer le premier opérande de registre de coprocesseur. |
| CRm |
Ce paramètre permet d'indiquer le deuxième opérande de registre de coprocesseur. |
Description
Cette instruction permet de copier les registres ARM vers le coprocesseur pour une architecture ARMv6.
Remarques
- Sens du transfert : coprocesseur vers ARM : L'instruction MRC2 permet de lire un registre d'un second coprocesseur (ou coprocesseur alternatif) et de
transférer sa valeur vers un registre ARM général. Elle fonctionne comme MRC, mais s'adresse à un coprocesseur secondaire, d'où le « 2 » dans son nom.
- Apparentée à MRC, mais pour un autre canal : MRC2 est quasiment identique à MRC, mais elle est utilisée lorsqu'un deuxième canal d'accès au coprocesseur
est requis. Cela peut permettre une séparation fonctionnelle, par exemple pour gérer deux coprocesseurs distincts ou accéder à des registres protégés.
- Important dans la gestion de coprocesseurs multiples : L'existence de MRC2 suppose que plusieurs interfaces de communication sont disponibles pour
les coprocesseurs. Elle est particulièrement utile dans les systèmes où l'on souhaite distinguer les canaux de communication pour des raisons de sécurité ou d'organisation
matérielle.
- Rt ne peut pas être PC : Tout comme avec MRC, le registre de destination Rt ne doit pas être le registre PC. Cette restriction empêche de modifier
directement le flot d'exécution du programme, ce qui renforce la stabilité du système lors d'accès aux registres coprocesseur.
- Utilisée dans les environnements sécurisés ou virtualisés : MRC2 peut être utile dans des environnements sécurisés, virtualisés ou multi-noyaux, où
différents niveaux de privilège ou de partitionnement matériel nécessitent une voie d'accès distincte aux coprocesseurs ou à des registres système isolés.
- Dépend fortement du type de coprocesseur : L'efficacité et l'utilité de MRC2 dépendent entièrement de la présence d'un coprocesseur compatible avec cette
instruction. Tous les coprocesseurs ne supportent pas ce canal alternatif. Sa documentation est donc très liée au matériel spécifique utilisé.
- Accès conditionné et potentiellement restreint : L'instruction MRC2 peut également être soumise à des droits d'accès selon le mode de fonctionnement du
processeur (mode utilisateur, superviseur,...). Un accès non autorisé peut engendrer une exception d'instruction invalide ou de permission.
- Utilisation dans des cas spécialisés : Cette instruction est rarement rencontrée dans les programmes classiques. Elle est réservée à des cas d'utilisation
bien spécifiques comme la gestion de coprocesseurs cryptographiques, des contrôleurs temps-réel, ou des unités de traitement spécialisées dans certaines architectures
SoC ARM.
Dernière mise à jour : Dimanche, le 12 novembre 2017