QSAX |
Saturation et échange |
| 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 et d'addition de demi-mots avec échange de valeur entière.
Remarques
- Combinaison parallèle d'addition et de soustraction : QSAX effectue deux opérations en parallèle : elle ajoute le demi-mot supérieur de Rn au demi-mot
inférieur de Rm, et soustrait le demi-mot supérieur de Rm du demi-mot inférieur de Rn. Cela permet un traitement efficace de deux valeurs en une seule instruction.
- Échange implicite des demi-mots : L'échange des demi-mots dans QSAX n'est pas explicite dans la syntaxe, mais est intégré au fonctionnement de
l'instruction. Cette propriété permet de manipuler les composantes hautes et basses de deux registres sans avoir à effectuer des instructions de permutation
préalables.
- Conçue pour le traitement de données 16 bits : L'instruction travaille sur des demi-mots (16 bits), ce qui est courant dans les domaines comme l'audio, la
vidéo ou les capteurs numériques. Elle est utile pour exécuter plusieurs calculs vectorisés en parallèle dans des registres de 32 bits, ce qui maximise l'efficacité.
- Saturation intégrée pour éviter les dépassements : Toutes les opérations dans QSAX sont réalisées avec saturation arithmétique, ce qui signifie que si
les résultats dépassent les bornes représentables (en entiers signés 16 bits), ils sont clampés à la valeur maximale ou minimale. Cela est crucial dans des systèmes où
les débordements peuvent fausser les résultats.
- Fait partie d'une famille d'instructions SIMD : QSAX s'inscrit dans une série d'instructions SIMD (Single Instruction Multiple Data) spécifiques à ARM,
comme QASX, QADD16, QSUBADDX,... Ces instructions permettent d'exécuter plusieurs opérations arithmétiques simultanément, ce qui augmente les performances dans les
algorithmes massivement parallèles.
- Utilisation typique en traitement de signal : Elle est particulièrement utile dans le traitement de signal numérique (DSP) pour des opérations comme
le filtrage, la compression, ou les effets sonores. Par exemple, dans un algorithme de décodage audio, on peut l'utiliser pour manipuler des échantillons stéréo
gauche/droite en une seule opération.
- Amélioration significative des performances : L'intérêt principal de QSAX est de réduire le nombre d'instructions et de cycles processeur nécessaires
à certaines tâches. Une suite de calculs sur demi-mots nécessitant plusieurs instructions classiques (ADD, SUB, saturation, permutation) peut ici être effectuée en une
seule étape.
- Dépend des extensions DSP (ARMv6 ou ARMv5TE) : Comme pour les autres instructions saturées et parallèles, QSAX nécessite une architecture ARM compatible
avec les extensions DSP. Elle n'est pas disponible sur toutes les plateformes, notamment les plus petites ou anciennes (comme ARMv4 ou Cortex-M0), ce qui limite son
usage aux processeurs plus performants.
Dernière mise à jour : Dimanche, le 12 novembre 2017