SSUB8 |
Soustraction 8 bits 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 une soustraction parallèle d'octets avec des valeurs signés.
Remarques
- Traitement parallèle de 4 octets signés : L'instruction SSUB8 permet d'effectuer quatre soustractions signées en parallèle, chaque octet de Rn étant
soustrait à l'octet correspondant de Rm. Cette approche SIMD améliore les performances pour le traitement de données paquetées (images, audio, cryptographie légère).
- Calcul signé avec saturation implicite : Chaque opération agit sur des valeurs signées sur 8 bits (-128 à +127). En cas de dépassement, la saturation
garantit que le résultat reste dans cette plage, évitant ainsi les erreurs de débordement non détectées qui peuvent survenir avec des soustractions classiques.
- Utilisation idéale pour les filtres et différences : Cette instruction est bien adaptée aux algorithmes de calcul de différences de pixels, de filtres
d'arêtes ou de comparaisons entre blocs de données dans des applications de traitement d'image, de compression vidéo ou de reconnaissance de motifs.
- Performances accrues par vectorisation : En exécutant plusieurs opérations en une seule instruction, SSUB8 permet de réduire considérablement le nombre
total d'instructions, ce qui est bénéfique pour les performances sur des architectures embarquées avec ressources limitées, comme les Cortex-M ou Cortex-R.
- Sécurité grâce à la saturation : La saturation automatique permet d'éviter les erreurs de logique silencieuses qui peuvent se produire dans les calculs
de soustraction, surtout avec des valeurs négatives. Cela renforce la fiabilité des algorithmes traitant des données sensibles (vision, audio).
- Utilisation flexible avec le champ cond : Comme la plupart des instructions ARM, SSUB8 accepte un code de condition (cond) qui permet d'exécuter
l'instruction seulement si certains drapeaux sont activés. Cela permet d'intégrer cette instruction dans des blocs de logique conditionnelle sans branchement.
- Complémentaire de SADD8 et USUB8 : Elle fait partie d'un ensemble d'instructions SIMD 8 bits signé/non signé incluant SADD8, USUB8, UADD8. Ces instructions
sont souvent utilisées ensemble dans des algorithmes de traitement parallèle symétrique pour calculer des sommes, moyennes ou écarts.
- Facilement utilisable dans des boucles vectorielles : Grâce à sa structure régulière et à sa parallélisation implicite, SSUB8 est idéale dans des boucles
vectorielles manipulant des tampons de données. Elle est souvent utilisée dans du code optimisé pour ARM avec accès direct à la mémoire via des registres indexés.
Dernière mise à jour : Dimanche, le 12 novembre 2017