QSUB8 |
Soustraction 8 bits |
| 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 saturation parallèle de soustraction de demi-octet de valeur entière.
Remarques
- Soustraction parallèle sur 8 bits : L'instruction QSUB8 effectue quatre soustractions indépendantes sur les quatre octets (8 bits) des registres Rn et Rm,
considérés comme quatre sous-unités de 8 bits. Chaque résultat est entreposé dans le registre de destination Rd, ce qui permet un traitement vectoriel très efficace.
- Saturation automatique intégrée : Chaque soustraction effectuée par QSUB8 est protégée contre les débordements grâce à la saturation arithmétique. Si
un résultat dépasse les bornes d'un entier signé sur 8 bits (-128 à 127), il est automatiquement ajusté à la borne la plus proche. Cela garantit une fiabilité accrue,
sans vérifications supplémentaires.
- Optimisée pour le traitement de signal : Cette instruction est particulièrement utile dans les applications de traitement du signal numérique (DSP), telles
que les codecs audio, les filtres numériques ou la compression d'image. Elle permet une exécution en parallèle de plusieurs opérations, ce qui réduit le temps
d'exécution.
- Structure SIMD implicite : Même si ARM ne parle pas directement de SIMD (Single Instruction, Multiple Data) dans ce cas, QSUB8 agit comme une instruction
SIMD implicite en opérant sur plusieurs segments du registre simultanément. Cela permet une exploitation plus fine du matériel, sans instructions vectorielles
explicites.
- Réduction de code et performance : Au lieu d'écrire quatre soustractions séparées avec gestion manuelle des saturations, une seule instruction QSUB8
suffit. Cela réduit la taille du code, accélère l'exécution, et diminue l'utilisation des registres temporaires, ce qui est essentiel dans les systèmes embarqués à
ressources limitées.
- Contrôle conditionnel intégré : Le champ optionnel {cond} permet à QSUB8 de s'exécuter sous condition, en fonction des drapeaux du processeur. Ce mécanisme
conditionnel évite d'utiliser des instructions de branchement explicites, ce qui améliore le pipeline et réduit les sauts coûteux.
- Complément naturel de QADD8 : QSUB8 complète l'instruction QADD8 (addition parallèle avec saturation) dans les opérations arithmétiques élémentaires
sur des vecteurs 8 bits. Leur combinaison permet la construction de routines de traitement vectoriel équilibrées pour la soustraction et l'addition, avec sécurité
sur les débordements.
- Parfaitement adaptée aux formats pixelisés : Dans des applications comme le traitement d'image ou la vision embarquée, les données sont souvent manipulées
par octets (R, G, B, alpha...). QSUB8 est alors idéale pour effectuer des calculs sur des canaux séparés (par exemple, soustraire les valeurs de luminosité de deux
images), tout en garantissant une cohérence numérique.
Dernière mise à jour : Dimanche, le 12 novembre 2017