MRRC2 |
Déplace le registre au coprocesseur |
| ARM |
Syntaxe
|
MRRC2{cond} coproc, #opcode, Rt, Rt2, CRm
|
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. |
| #opcode |
Ce paramètre permet d'indiquer le opcode de coprocesseur en 4 bits. |
| Rt |
Ce paramètre permet d'indiquer le premier registre source ARM. Le registre ne doit pas être PC. |
| Rt2 |
Ce paramètre permet d'indiquer le deuxième registre source ARM. Le registre ne doit pas être PC. |
| CRm |
Ce paramètre permet d'indiquer l'opérande de registre de coprocesseur. |
Description
Cette instruction permet de copier les registres ARM vers le coprocesseur pour une architecture ARMv6.
Remarques
- MRRC2 pour les canaux coprocesseurs alternatifs : L'instruction MRRC2 est une variante de MRRC utilisée pour les coprocesseurs secondaires ou alternatifs
dans le jeu d'instructions ARM. Elle permet un accès différencié lorsqu'il y a plusieurs canaux de communication avec des coprocesseurs spécifiques, en particulier dans
des configurations systèmes complexes.
- Transfert 64 bits vers deux registres ARM : MRRC2 permet de lire une valeur de 64 bits à partir d'un registre d'un coprocesseur et de la diviser entre deux
registres ARM 32 bits (Rt et Rt2). Cela est essentiel lorsque les données à traiter dépassent les 32 bits natifs du registre général ARM.
- Restriction d'utilisation des registres : Comme pour MRRC, les registres Rt et Rt2 ne peuvent pas être le registre PC, afin d'éviter des comportements
non définis, comme des sauts imprévus ou une altération du flux d'exécution. Cela renforce la sécurité et la stabilité du système.
- Utilisation dans les environnements sécurisés ou virtualisés : MRRC2 peut être utilisé pour accéder à des coprocesseurs sécurisés ou isolés, ce qui est
courant dans les environnements virtualisés, les systèmes embarqués critiques ou les plateformes de sécurité ARM TrustZone, où les ressources sont séparées en mondes
sécurisés et non sécurisés.
- Opcode 4 bits pour plus de précision : L'opcode de coprocesseur est codé sur 4 bits dans MRRC2, ce qui permet de cibler plus précisément les registres
internes du coprocesseur. Cela offre davantage de souplesse dans les communications bas niveau, par exemple pour accéder à différents registres de contrôle ou de
configuration.
- Présente à partir d'ARMv6 uniquement : MRRC2 est disponible uniquement à partir de l'architecture ARMv6. Elle ne fonctionne pas sur les coeurs plus anciens
comme ARMv5, ce qui limite son usage à des microprocesseurs modernes, notamment ceux utilisés dans des téléphones intelligents, tablettes et systèmes embarqués récents.
- Complément logique de MCRR2 : MRRC2 est le pendant logique de MCRR2, qui écrit deux registres ARM vers un registre 64 bits du coprocesseur. Ces deux
instructions fonctionnent souvent par paires dans les protocoles de transfert de données entre CPU et coprocesseur, garantissant la cohérence bidirectionnelle.
- Utilisation possible avec coprocesseurs comme VFP ou NEON : Bien que souvent utilisée pour accéder aux coprocesseurs système comme CP15, MRRC2 peut aussi
permettre d'accéder à d'autres coprocesseurs comme VFP (Floating Point Unit) ou NEON pour lire des données d'état étendues ou des résultats intermédiaires dans des
contextes de calcul intensif.
Dernière mise à jour : Dimanche, le 12 novembre 2017