Simple Science

La science de pointe expliquée simplement

# Informatique# Architecture matérielle

Comprendre les techniques de multiplication RISCV

Un aperçu des méthodes de multiplication RISCV et de leurs besoins matériels.

― 5 min lire


Décomposition de laDécomposition de lamultiplication RISCVun design matériel efficace.Simplifier la multiplication RISCV pour
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 :

  1. Calculer les Produits Partiels.
  2. 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 :

  1. Calculer les produits partiels, ce qui peut être fait en même temps.
  2. 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.

Articles similaires