SSAX |
Soustraction et échange signé |
| ARM |
Syntaxe
Paramètres
| Nom |
Description |
| cond |
Ce paramètre optionnel permet d'indiquer le code de condition |
| Rd |
Ce paramètre permet d'indiquer le registre de destination. |
| Rn |
Ce paramètre permet d'indiquer le registre contenant le premier opérande. |
| Rm |
Ce paramètre permet d'indiquer le registre contenant le deuxième opérande. |
Description
Cette instruction permet d'effectuer un échange de soustraction et d'effectuer une addition parallèle de demi-mot avec des valeurs signés.
Remarques
- Principe de l'échange et opérations parallèles : L'instruction SSAX réalise deux opérations simultanées : elle échange les deux demi-mots du registre Rm,
puis soustrait la moitié basse de Rm à la moitié basse de Rn, et ajoute la moitié haute de Rm à la moitié haute de Rn. Ce mécanisme d'échange est particulièrement utile
dans les traitements symétriques.
- Travail sur deux demi-mots 16 bits : Chaque registre 32 bits est interprété comme deux entiers signés de 16 bits, traités indépendamment. Cela permet à
SSAX d'agir comme une instruction SIMD, améliorant l'efficacité du traitement de flux de données, comme dans les signaux audio ou images compressées.
- Soustraction et addition combinées dans une seule instruction : Contrairement à des instructions classiques qui traitent un seul calcul, SSAX combine une
soustraction et une addition dans une seule exécution, ce qui permet une réduction du nombre d'instructions nécessaires dans les boucles de calcul intensif.
- Utilité de l'échange dans certains algorithmes DSP : L'échange des moitiés de Rm avant l'opération permet, par exemple, d'implémenter des filtres
passe-haut et passe-bas ou des opérations de correlation croisée de manière plus naturelle et efficace, en facilitant la mise en miroir des données.
- Signé et saturé implicitement : Les opérations sont signées et le résultat final est saturé à la plage représentable par un entier 16 bits signé
(-32 768 à +32 767). Cela empêche les débordements imprévus dans les résultats, ce qui est crucial pour la fiabilité des calculs numériques.
- Idéale pour le traitement vectoriel léger : Cette instruction est parfaitement adaptée aux cas où deux valeurs doivent être traitées simultanément, mais
où les ressources matérielles ne permettent pas un traitement vectoriel lourd. On la retrouve souvent dans des routines optimisées pour ARM9E, ARM Cortex-M4,...
- Condition d'exécution configurable : Grâce au champ cond, SSAX peut ne s'exécuter que sous certaines conditions liées aux drapeaux d'état (comme
Z, N, C, V). Cela permet d'implémenter des comportements adaptatifs, comme ignorer l'opération si les entrées sont nulles ou identiques.
- Souvent utilisée avec instructions SXTB et UXTB : Elle est fréquemment couplée avec des instructions comme SXTB ou UXTB pour signer ou nettoyer
correctement les demi-mots avant les opérations, garantissant une intégrité des résultats surtout quand les données proviennent de capteurs ou périphériques
externes.
Dernière mise à jour : Dimanche, le 12 novembre 2017