QSUB16 |
Soustraction 16 bits |
| ARM |
Syntaxe
|
QSUB16{cond} {Rd}, Rn, Rm
|
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 saturation parallèle de soustraction de demi-mot de valeur entière.
Remarques
- Traitement de données en demi-mots : L'instruction QSUB16 réalise deux soustractions parallèles, chacune sur un demi-mot (16 bits) des registres
Rn et Rm. Chaque registre étant de 32 bits, cela signifie que cette instruction permet de traiter deux entiers 16 bits à la fois, ce qui est idéal pour les calculs
vectoriels simples.
- Saturation automatique : L'un des grands avantages de QSUB16 est la gestion automatique des débordements. Si le résultat d'une soustraction dépasse les
bornes d'un entier signé 16 bits (-32 768 à 32 767), il est saturé à la valeur maximale ou minimale admissible. Cela évite d'avoir à tester manuellement chaque
opération.
- Optimisée pour les performances : Plutôt que d'utiliser deux soustractions indépendantes avec vérifications de dépassement, QSUB16 fait tout en une seule
instruction, ce qui réduit le nombre de cycles processeur nécessaires. Cela améliore la performance globale, notamment dans les boucles intensives ou les algorithmes DSP.
- Instruction SIMD implicite : Comme QADD16, QSUB16 fait partie de la famille SIMD (Single Instruction, Multiple Data) implicite d'ARM. Elle permet de traiter
deux flux de données simultanément, sans nécessiter un jeu d'instructions SIMD explicite comme dans NEON. C'est une optimisation matérielle discrète mais puissante.
- Utilisation typique en traitement de signal : QSUB16 est fréquemment utilisée dans les applications de traitement de signal numérique (DSP), comme les
filtres audio ou vidéo. Par exemple, elle peut soustraire des échantillons 16 bits de deux signaux avec saturation pour éviter les effets de débordement indésirables.
- Contrôle conditionnel intégré : Le champ {cond} permet d'exécuter QSUB16 uniquement si une condition particulière est remplie, en fonction des drapeaux du
programme. Cela évite l'utilisation de sauts conditionnels explicites et contribue à garder le pipeline fluide et efficace.
- Réduction du code et de la complexité : Grâce à QSUB16, un codeur peut éviter la duplication de structures de contrôle pour gérer manuellement deux
soustractions de 16 bits. Cela permet un code plus lisible, plus court, et plus simple à maintenir, ce qui est important dans les systèmes embarqués.
- Prévisibilité des résultats : Avec la saturation intégrée, QSUB16 rend les calculs prévisibles et sûrs, même dans les situations extrêmes (exemple :
très grandes ou très petites valeurs). Cela réduit les risques d'instabilités ou de bogues en environnement critique, où le comportement du processeur doit être
strictement déterministe.
Dernière mise à jour : Dimanche, le 12 novembre 2017