SSAT16 |
Saturation 16 bits signé |
| ARM |
Syntaxe
|
SSAT16{cond} Rd, #sat, Rn
|
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 de saturation dans l'intervalle de 1 à 16. |
| Rn |
Ce paramètre permet d'indiquer le registre contenant l'opérande. |
Description
Cette instruction permet d'effectuer une saturation de deux demi-mots entier.
Remarques
- Double saturation parallèle sur deux demi-mots : L'instruction SSAT16 traite deux demi-mots (16 bits chacun) contenus dans un registre 32 bits. Elle
applique séparément une saturation signée à la partie haute (bits 31:16) et à la partie basse (bits 15:0), ce qui permet un traitement parallèle efficace de deux
valeurs.
- Prévention des débordements indépendamment pour chaque mot : Chacun des deux demi-mots est saturé de manière indépendante à l'intervalle -2(s-1)
à 2(s-1)-1, où s est la valeur fournie avec #sat. Cela garantit une sécurité renforcée contre les dépassements de capacité dans des cas de calculs multiples
embarqués dans un seul registre.
- Très utilisée en traitement de signal (SIMD) : SSAT16 est très utile dans le traitement du signal numérique (DSP), notamment pour le traitement simultané
de deux canaux audio ou de pixels, en maintenant leurs valeurs dans des plages valides sans altérer le reste des bits du registre.
- Pas de décalage combiné comme avec SSAT : Contrairement à l'instruction SSAT, SSAT16 ne permet aucun décalage préalable de l'opérande, ce qui signifie
que l'utilisateur doit faire un décalage en amont si nécessaire. Cela simplifie le comportement mais limite légèrement la flexibilité de traitement.
- Saturation configurable jusqu'à 16 bits : Le paramètre #sat doit être un entier entre 1 et 16, ce qui permet de régler la précision ou la dynamique
maximale pour chaque demi-mot. Il est donc possible d'adapter finement le niveau de saturation à l'application, en particulier pour les capteurs à résolution variable.
- Pas de croisement entre les deux moitiés : Il est important de noter que la saturation de chaque demi-mot se fait sans interaction entre les deux. Cela
rend SSAT16 sûre et prévisible dans les environnements à haute performance, notamment dans les algorithmes vectoriels SIMD-like.
- Instruction conditionnelle comme les autres instructions ARM : Grâce au champ cond, SSAT16 peut s'exécuter sous condition, selon l'état des drapeaux du
programme. Cela permet par exemple de saturer uniquement si une opération précédente a déclenché un dépassement, sans avoir recours à une structure conditionnelle
explicite.
- Optimisation du code embarqué : En encapsulant deux saturations en une seule instruction, SSAT16 permet de réduire la taille du code et le nombre de
cycles nécessaires à ces opérations. C'est un outil très précieux dans le développement de systèmes temps réel contraints, comme les DSP embarqués ou microcontrôleurs.
Dernière mise à jour : Dimanche, le 12 novembre 2017