MIA |
Déplace un accumulateur interne |
| 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.
Remarques
- Cette instruction est uniquement disponible sur les microprocesseur XScale du fabricant Intel.
- Opération de type Multiply-Accumulate (MAC) : L'instruction MIA effectue une multiplication entre deux registres ARM (Rn × Rm) et ajoute le résultat à un
accumulateur interne (Acc). Cette opération est courante dans les traitements de signaux numériques (DSP), où les MAC sont utilisés pour des calculs de convolution,
filtrage,...
- Accumulateur interne dédié au processeur : L'utilisation de registres accumulateurs internes (de type accx) permet de séparer les résultats intermédiaires
des registres généraux. Cela réduit la pression sur les registres ARM classiques et permet des performances accrues dans les boucles de calcul intensives.
- Instruction dépendante de l'implémentation : L'instruction n'est pas universellement disponible sur tous les processeurs ARM. Elle est souvent présente
dans des architectures spécifiques, comme certaines variantes optimisées pour le traitement numérique (par exemple les ARM926EJ-S avec DSP extensions). Il faut donc
vérifier la compatibilité matérielle.
- Favorise les calculs en série : En entreposant les résultats successifs dans un accumulateur dédié, MIA permet de chaîner les multiplications-additions
sans repasser par les registres standards. Cela améliore la vitesse et évite les cycles d'accès mémoire inutiles dans les boucles répétitives.
- Instruction privilégiée dans certains cas : L'accès aux accumulateurs internes comme accx peut être réservé à des niveaux de privilège spécifiques, selon
l'implémentation matérielle. Elle est souvent utilisée dans des fonctions critiques comme les pilotes ou les bibliothèques DSP en mode superviseur.
- Instruction compacte mais puissante : La syntaxe simple de MIA masque une opération complexe : deux lectures, une multiplication, une addition et un
entreposage. C'est une instruction particulièrement dense en opérations, ce qui la rend très efficace pour les traitements optimisés.
- Ordre des registres Rn et Rm : Bien que la multiplication soit commutative, l'ordre de Rn et Rm peut être significatif dans certaines architectures,
surtout si des optimisations matérielles sont mises en place. Il est donc recommandé de suivre la convention prévue par la documentation processeur.
- Adaptée au traitement de flux : En raison de son efficacité dans les boucles et traitements répétitifs, MIA est idéale pour manipuler des flux de
données continus, comme les signaux audio, les images ou les vecteurs numériques. Elle est souvent utilisée dans des algorithmes de type FFT ou FIR.
Dernière mise à jour : Dimanche, le 12 novembre 2017