MIAPH |
Déplace un accumulateur interne et paquet |
| ARM |
Syntaxe
Paramètres
| Nom |
Description |
| cond |
Ce paramètre optionnel permet d'indiquer le code de condition |
| Acc |
Ce paramètre permet d'indiquer le registre accumulateur interne. Le nom standard est «accx», où x indique un entier dans l'intervalle entre 0 et n. La valeur n dépend du microprocesseur. La valeur 0 indique le microprocesseur courant. |
| Rn |
Ce paramètre permet d'indiquer le registre ARM contenant la première valeur à multiplier. |
| Rm |
Ce paramètre permet d'indiquer le registre ARM contenant la deuxième valeur à multiplier. |
Description
Cette instruction permet d'effectuer une multiplication avec l'accumulateur internes de 40 bits en paquet de demi-mots.
Remarques
- Cette instruction est uniquement disponible sur les microprocesseur XScale du fabricant Intel.
- L'instruction MIAPH est spécifique à certaines extensions DSP d'ARM : Cette instruction n'est pas présente sur toutes les architectures ARM. Elle
est surtout disponible sur les processeurs avec unité de traitement parallèle ou numérique, comme ceux qui supportent le Media Processing Engine (MPE) ou accumulateurs
spécialisés.
- MIAPH réalise une multiplication partielle avec accumulation : Contrairement à une simple multiplication, MIAPH utilise les valeurs des moitiés des
registres (halfword), ce qui permet de faire du traitement SIMD (Single Instruction Multiple Data). Cela rend l'instruction idéale pour le traitement de signaux
ou d'images.
- Le registre Acc est un accumulateur interne, indépendant des registres ARM classiques : Ces accumulateurs ne sont pas directement visibles ni manipulables
par les instructions ARM classiques. Ils servent à accumuler des résultats intermédiaires sans consommer les registres généraux, ce qui améliore les performances lors
de boucles de calcul.
- L'opération repose sur les moitiés basses ou hautes des registres Rn et Rm : La combinaison du nom MIAPH («Multiply Internal Accumulator, Paired Halfwords»)
suggère que la multiplication utilise des morceaux (16 bits) des registres, souvent signés, et peut combiner des produits de moitiés hautes et basses.
- Parfaite pour les opérations de filtrage FIR/IIR, traitement audio ou vidéo : Grâce à sa capacité à traiter plusieurs valeurs d'un coup (par paquet de
16 bits), MIAPH est idéale pour les applications temps réel nécessitant un haut débit de calcul avec un usage mémoire réduit.
- Instruction sensible aux conflits de pipeline ou dépendances d'accumulation : Comme les accumulateurs internes ne sont pas visibles, une mauvaise gestion
de l'ordonnancement peut générer des conflits ou des incohérences dans les valeurs accumulées. Il est crucial de s'assurer que les accumulateurs sont correctement vidés
ou utilisés.
- Peut être utilisée en complément de MIA, SMLAxy, SMLAWx : MIAPH s'inscrit dans une famille d'instructions spécialisées pour les calculs multipliés-accumulés
(MAC). Elle peut être combinée dans un pipeline optimisé avec d'autres instructions similaires pour maximiser la bande passante de calculs vectoriels.
- L'utilisation dépend du type exact de processeur ARM : Tous les cours ARM ne supportent pas MIAPH. Elle est absente sur les ARM Cortex-M de base ou les
Cortex-A sans extensions DSP. Il faut donc vérifier l'ensemble d'instructions supporté par la cible avant de compiler ou d'écrire du code utilisant MIAPH.
Dernière mise à jour : Dimanche, le 12 novembre 2017