SSAT |
Saturation signé |
| ARM |
Syntaxe
|
SSAT{cond} Rd, #sat, Rm{, shift}
|
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 |
| #sat |
Ce paramètre permet d'indiquer la position du bit à saturé, dans l'intervalle de 1 à 32. |
| Rm |
Ce paramètre permet d'indiquer le registre contenant l'opérande. |
| shift |
Ce paramètre optionnel permet d'indiquer le décalage à utiliser : |
| ASR #n |
Cette constante permet d'indiquer un décalage ou #n est dans l'intervalle de 1 à 32 pour l'architecture ARM ou 1 à 31 pour l'architecture Thumb. |
| LSL #n |
Cette constante permet d'indiquer un décalage ou #n est dans l'intervalle de 0 à 31. |
Description
Cette instruction permet d'effectuer une saturation de mot entier avec un décalage de la droite ou vers la gauche.
Remarques
- Saturation arithmétique signée contrôlée : L'instruction SSAT est conçue pour effectuer une saturation signée, c'est-à-dire limiter la valeur
résultante d'une opération à une plage spécifique allant de -2(s-1) à 2(s-1)-1, où s est la valeur fournie avec #sat. C'est particulièrement
utile en traitement du signal, pour éviter les dépassements de capacité.
- Prévention des dépassements de capacité : Dans les systèmes numériques, un dépassement peut corrompre les données ou causer des erreurs logiques. SSAT
agit comme un gardien des bornes : si la valeur dépasse la borne supérieure ou inférieure, elle est «clampée» à cette borne, empêchant ainsi toute sortie
indésirable.
- Flexibilité avec les décalages : L'ajout du paramètre shift permet de préalablement transformer l'opérande avant d'appliquer la saturation. On
peut ainsi combiner un décalage à gauche (LSL) ou un décalage arithmétique à droite (ASR) avec la saturation, ce qui évite d'utiliser plusieurs instructions successives.
- Optimisation des performances : L'utilisation de SSAT peut remplacer plusieurs instructions logiques et conditionnelles, ce qui permet une réduction du
nombre de cycles processeur nécessaires à une opération de limitation. Elle est donc très avantageuse en termes d'efficacité dans les boucles critiques.
- Maintien du signe dans les décalages : Le décalage arithmétique à droite (ASR) conserve le bit de signe, ce qui est crucial pour les opérations sur
nombres signés. Cela signifie que SSAT avec ASR est adaptée aux réductions de précision tout en conservant la validité du signe.
- Utilisation typique en traitement numérique : En traitement de signal, notamment dans des applications audio ou vidéo, SSAT est souvent utilisée pour
convertir ou réduire une précision de données tout en maintenant une dynamique sûre. Elle est aussi utile dans des algorithmes de compression ou de contrôle.
- Instruction conditionnelle possible : Comme beaucoup d'instructions ARM, SSAT peut être rendue conditionnelle grâce au champ cond. Cela permet
d'exécuter l'instruction uniquement si certaines conditions dans les drapeaux d'état sont remplies, ce qui est utile pour gérer finement les cas particuliers sans
branchements explicites.
- Limitation dans l'ensemble Thumb : Il faut noter que, bien que SSAT soit disponible en mode Thumb-2, elle est moins flexible dans l'architecture Thumb
16 bits, notamment avec les intervalles de shift plus restreintes. Cette contrainte est importante pour les développeurs ciblant des processeurs embarqués avec
des contraintes de taille de code.
Dernière mise à jour : Dimanche, le 12 novembre 2017