Comprendre les techniques de multiplication RISCV
Un aperçu des méthodes de multiplication RISCV et de leurs besoins matériels.
― 5 min lire
Table des matières
Introduction à la Multiplication RISCV
La multiplication dans l'architecture processeur RISCV est différente des autres instructions. Alors que la plupart des instructions s'exécutent rapidement et ne nécessitent qu'un cycle d'horloge, la multiplication demande plus de ressources et prend plus de temps, ce qui peut être un problème pour certains types de conceptions informatiques. Dans la configuration basique de RISCV, il n'y a pas de commande de multiplication, ce qui facilite les versions plus simples du processeur. Les versions plus grandes incluent des commandes de multiplication grâce à une fonctionnalité ajoutée appelée extension M, qui couvre différents types de multiplication comme signée, non signée et mixte.
Types de multiplication
À première vue, avoir différentes manières de multiplier peut sembler bizarre. Par exemple, lors de la multiplication de nombres 32 bits, que le nombre soit signé ou non ne change pas le résultat final pour la moitié inférieure du produit multiplié. Cependant, la nature signée compte pour la moitié supérieure du résultat.
La plupart des conceptions actuelles pour la multiplication reposent sur une méthode connue sous le nom de multiplication longue, qui a deux étapes principales :
- Calculer les Produits Partiels.
- Additionner tous ces produits partiels.
La première étape est simple et peut être effectuée en parallèle, mais la seconde est plus complexe. De nombreuses approches existent pour gérer cette étape, équilibrant vitesse et espace utilisé.
Méthodes de multiplication efficaces
Le document discute de la façon dont de petits changements dans la première étape peuvent aider à utiliser un processus pour toutes les trois formes de multiplication (signée, non signée et mixte).
Les bases de la multiplication longue
La multiplication longue pour les nombres binaires suit un processus basique. Commence par le bit le moins significatif (le bit le plus à droite) du multiplicateur. Note le multiplicande seulement si ce bit est 1. Si le bit est 0, écris juste des zéros. Répète cela pour chaque bit, décalant le multiplicande vers la gauche au fur et à mesure que tu passes à des bits plus élevés, ce qui donne plusieurs produits partiels. Le résultat final se trouve en additionnant tous les produits partiels.
Besoins matériels
Effectuer la méthode de multiplication longue dans le matériel a deux tâches :
- Calculer les produits partiels, ce qui peut être fait en même temps.
- Calculer la somme de tous les produits partiels, souvent en utilisant un arbre d'addition.
Pour chaque produit partiel, on se concentre sur le fait de le multiplier par un nombre fixe de bits, ce qui peut être fait efficacement avec des opérations spécifiques en format vectoriel.
Multiplication signée
Pour ce qui est des nombres signés, ils sont stockés différemment. Un nombre signé utilise un format qui permet à la fois des valeurs positives et négatives, avec les plus petites et plus grandes valeurs qu'il peut contenir définies par sa taille.
Bien que l'addition et la soustraction fonctionnent normalement, multiplier des nombres signés est délicat. Une méthode développée par Baugh et Wooley permet aux méthodes de multiplication non signées de fonctionner pour les nombres signés avec seulement quelques ajustements mineurs. L'approche consiste à trouver le complément à 2 des nombres négatifs, ce qui nous permet de les additionner correctement.
Étapes de la multiplication signée
Dans la multiplication signée, les nombres positifs peuvent être ajoutés directement. Pour les nombres négatifs, on doit ajuster leur représentation avant de les additionner. Les similitudes dans le schéma de multiplication non signée aident à rendre cela plus facile, car les bits inférieurs des deux schémas peuvent donner les mêmes résultats.
Multiplication mixte
L'ensemble d'instructions RISCV inclut une instruction unique qui prend un nombre non signé pour le multiplicateur et un nombre signé pour le multiplicande. Ce type de multiplication nécessite de trouver le complément à 2 du nombre signé pour permettre une addition correcte.
Le processus est similaire à la multiplication signée, avec la dernière étape nécessitant parfois un léger ajustement pour tenir compte des actions supplémentaires nécessaires dans le matériel.
Fusion des types de multiplication
Incorporer ces différents types de multiplication peut être simplifié. En utilisant des signaux binaires pour représenter la multiplication signée, non signée et mixte, il est possible de combiner toutes les implémentations en un seul multiplicateur.
Il y a trois sortes de produits partiels :
- Le premier
- Le dernier
- Ceux du milieu
Le premier produit partiel reste le même pour certains bits, tandis que d'autres peuvent nécessiter des ajustements en fonction de l'opération signée ou mixte.
Produits partiels intermédiaires et derniers
Les produits partiels du milieu dépendent de leurs positions spécifiques et peuvent être décalés. La plupart des bits restent inchangés, bien que certains changements soient nécessaires pour les opérations signées et mixtes.
Le dernier produit partiel peut être plus complexe. Il nécessite l'inversion de certains bits pour la multiplication signée, et le bit le plus significatif peut également nécessiter des ajustements selon que la multiplication est mixte.
Conclusion
Grâce à de petits changements sur la façon dont les produits partiels sont gérés, il est possible de traiter tous les types de multiplication RISCV avec un seul multiplicateur. Cette approche simplifie considérablement le design, réduisant la complexité et rendant l'implémentation plus facile, surtout dans les systèmes qui nécessitent plusieurs cœurs ou travaillent avec des opérations de type vecteur. En rationalisant ces processus, l'implémentation devient plus efficace, ce qui est particulièrement précieux dans les environnements informatiques modernes.
Titre: Baugh-Wooley Multiplication for the RISCV Processor
Résumé: This article describes an efficient way to implement the multiplication instructions for a RISCV processor. Instead of using three predefined IP blocks for signed, unsigned and mixed multiplication, this article presents a novel extension to the Baugh-Wooley multiplication algorithm which reduces area and power consumption with roughly a factor three.
Auteurs: Franc Grootjen, Nikolai Schauer
Dernière mise à jour: 2023-04-19 00:00:00
Langue: English
Source URL: https://arxiv.org/abs/2304.09952
Source PDF: https://arxiv.org/pdf/2304.09952
Licence: https://creativecommons.org/licenses/by-nc-sa/4.0/
Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.
Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.