Beruflich Dokumente
Kultur Dokumente
Guillaume Revy
guillaume.revy@univ-perp.fr
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 1/58
Plan du cours
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 2/58
Multiplication par additions et décalages
Plan du cours
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 3/58
Multiplication par additions et décalages Multiplication binaire classique
Plan du cours
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 4/58
Multiplication par additions et décalages Multiplication binaire classique
x3 x2 x1 x0
× y3 y2 y1 y0
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 5/58
Multiplication par additions et décalages Multiplication binaire classique
0×0→0 x3 x2 x1 x0
0×1→0 et × y3 y2 y1 y0
1×0→0
1×1→1
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 5/58
Multiplication par additions et décalages Multiplication binaire classique
0×0→0 x3 x2 x1 x0
0×1→0 et × y3 y2 y1 y0
1×0→0
1×1→1
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 5/58
Multiplication par additions et décalages Multiplication binaire classique
0×0→0 x3 x2 x1 x0
0×1→0 et × y3 y2 y1 y0
1×0→0
1×1→1
+
+
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 5/58
Multiplication par additions et décalages Multiplication binaire classique
0×0→0 x3 x2 x1 x0
0×1→0 et × y3 y2 y1 y0
1×0→0
1×1→1
+
+
+
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 5/58
Multiplication par additions et décalages Multiplication binaire classique
0×0→0 x3 x2 x1 x0
0×1→0 et × y3 y2 y1 y0
1×0→0
1×1→1
+
+
+
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 5/58
Multiplication par additions et décalages Multiplication binaire classique
0×0→0 x3 x2 x1 x0
0×1→0 et × y3 y2 y1 y0
1×0→0
1×1→1
+
+
+
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 5/58
Multiplication par additions et décalages Multiplication binaire classique
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 6/58
Multiplication par additions et décalages Multiplication binaire classique
1 1 0 1
0 0 0 0
1 1 0 1
0 0 0 0
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 6/58
Multiplication par additions et décalages Multiplication binaire classique
1 1 0 1
+ 0 0 0 0
+ 1 1 0 1
+ 0 0 0 0
0 1 0 0 0 0 0 1
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 6/58
Multiplication par additions et décalages Multiplication binaire classique
1 1 0 1
+ 0 0 0 0
+ 1 1 0 1
+ 0 0 0 0
0 1 0 0 0 0 0 1
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 6/58
Multiplication par additions et décalages Multiplication binaire classique
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 6/58
Multiplication par additions et décalages Multiplication binaire classique
1 1 1 1 1 1 0 1
+ 0 0 0 0 0 0 0
+ 1 1 1 1 0 1
+ 0 0 0 0 0
1 1 1 1 0 0 0 1
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 6/58
Multiplication par additions et décalages Multiplication binaire classique
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 7/58
Multiplication par additions et décalages Multiplication binaire classique
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 7/58
Multiplication par additions et décalages Multiplication binaire classique
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 7/58
Multiplication par additions et décalages Multiplication binaire classique
0 1 0 1
+ 0 0 0 0
+ 0 1 0 1
− 0 1 0 1
0 1 1 0 0 1
− 0 1 0 1
1 1 1 1 0 0 0 1
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 7/58
Multiplication par additions et décalages Multiplication binaire classique
Algorithme de multiplication :
P←0
pour i de 0 à n − 1 faire
P ← P + { X · Yi décalé de i positions vers les poids forts }
fpour
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 8/58
Multiplication par additions et décalages Multiplication binaire classique
Algorithme de multiplication :
P←0
pour i de 0 à n − 1 faire
P ← P + { X · Yi décalé de i positions vers les poids forts }
fpour
Finalement à l’étape i
I P n + i + 1 chiffres
I Y n − i chiffres
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 8/58
Multiplication par additions et décalages Multiplication binaire classique
Algorithme de multiplication :
P←0
pour i de 0 à n − 1 faire
P ← P + { X · Yi décalé de i positions vers les poids forts }
fpour
Finalement à l’étape i
I P n + i + 1 chiffres
I Y n − i chiffres
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 8/58
Multiplication par additions et décalages Multiplication binaire classique
Architecture de multiplication
en numération simple à position
1 n
e
nu
accu. poids forts accu. poids faibles
te
re
Multiplicande X R AC1 AC0
n n
AC0 [0]
Additionneur
n+1
Initialisation :
I R 0
I AC1 0
I AC0 Y
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 9/58
Multiplication par additions et décalages Multiplication binaire classique
Considérons la multiplication de X = 3 et Y = 9
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 10/58
Multiplication par additions et décalages Multiplication binaire classique
Considérons la multiplication de X = 3 et Y = 9
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 10/58
Multiplication par additions et décalages Multiplication binaire classique
Considérons la multiplication de X = 3 et Y = 9
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 10/58
Multiplication par additions et décalages Multiplication binaire classique
Considérons la multiplication de X = 3 et Y = 9
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 10/58
Multiplication par additions et décalages Multiplication binaire classique
Considérons la multiplication de X = 3 et Y = 9
Finalement : X · Y = (00011011)2 = 27
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 10/58
Multiplication par additions et décalages Multiplication binaire classique
Architecture de multiplication
en complément à 2, si le multiplicande est négatif
AC0 [0]
Additionneur
complément à 2
n
Initialisation :
I R 0
I AC1 0
I AC0 Y
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 11/58
Multiplication par additions et décalages Multiplication binaire classique
Architecture de multiplication
en complément à 2, si le multiplicande est négatif
AC0 [0]
Additionneur
complément à 2
n
Initialisation : Remarques :
I R 0 I si AC0 [0] = 1 R=1
I AC1 0
I AC0 Y
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 11/58
Multiplication par additions et décalages Multiplication binaire classique
Architecture de multiplication
en complément à 2, si le multiplicande est négatif
AC0 [0]
Additionneur
complément à 2
n
Initialisation : Remarques :
I R 0 I si AC0 [0] = 1 R=1
I AC1 0 I le décalage laisse invariant le
I AC0 Y contenu du registre R
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 11/58
Multiplication par additions et décalages Multiplication binaire classique
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 12/58
Multiplication par additions et décalages Multiplication binaire classique
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 12/58
Multiplication par additions et décalages Multiplication binaire classique
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 12/58
Multiplication par additions et décalages Multiplication binaire classique
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 12/58
Multiplication par additions et décalages Multiplication binaire classique
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 12/58
Multiplication par additions et décalages Méthode de Booth
Plan du cours
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 13/58
Multiplication par additions et décalages Méthode de Booth
Méthode de Booth
Soient deux nombres binaires X (sur n bits) et Y (sur m bits)
I en numération simple à position ou complément à 2
x3 x2 x1 x0
× y3 y2 y1 y0
+
+
+
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 14/58
Multiplication par additions et décalages Méthode de Booth
Méthode de Booth
Soient deux nombres binaires X (sur n bits) et Y (sur m bits)
I en numération simple à position ou complément à 2
x3 x2 x1 x0
× y3 y2 y1 y0
+
+
+
Idée de la méthode de Booth (Booth, 1951) : faire apparaître des 0 dans l’écriture
du multiplicateur Y pour accélérer la multiplication
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 14/58
Multiplication par additions et décalages Méthode de Booth
Méthode de Booth
2i +k + 2i +k −1 + · · · + 2i +1 + 2i +k = 2i +k +1 − 2i
I remplacer les chaînes 0111 · · · 1110 par 1000 · · · 0010
I utilisation des chiffres signés {1, 0, 1}
I exemple : 62 = (00111110)2 = (01000010)2
I remarque : si le bit de poids fort = 1 la chaîne recodée aura un bit de plus, et le
poids fort sera = 1
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 15/58
Multiplication par additions et décalages Méthode de Booth
Méthode de Booth
2i +k + 2i +k −1 + · · · + 2i +1 + 2i +k = 2i +k +1 − 2i
I remplacer les chaînes 0111 · · · 1110 par 1000 · · · 0010
I utilisation des chiffres signés {1, 0, 1}
I exemple : 62 = (00111110)2 = (01000010)2
I remarque : si le bit de poids fort = 1 la chaîne recodée aura un bit de plus, et le
poids fort sera = 1
Problème : dans certain cas, on peut faire apparaître plus de 1 dans la chaîne
recodée que dans la chaîne initiale :
01010101 11111111.
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 15/58
Multiplication par additions et décalages Méthode de Booth
Méthode de Booth
yi yi −1 action
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 16/58
Multiplication par additions et décalages Méthode de Booth
AC0 [0]
Additionneur
complément à 2
n
Initialisation : Déroulement :
I H 0
I AC1 0
I AC0 Y
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 17/58
Multiplication par additions et décalages Méthode de Booth
AC0 [0]
Additionneur
complément à 2
n
Initialisation : Déroulement :
I H 0 I si AC0 [0] = 0 et H = 1 addition
I AC1 0
I AC0 Y
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 17/58
Multiplication par additions et décalages Méthode de Booth
AC0 [0]
Additionneur
complément à 2
n
Initialisation : Déroulement :
I H 0 I si AC0 [0] = 0 et H = 1 addition
I AC1 0 I si AC0 [0] = 1 et H = 0 soustraction
I AC0 Y
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 17/58
Multiplication par additions et décalages Méthode de Booth
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 18/58
Multiplication par additions et décalages Méthode de Booth
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 18/58
Multiplication par additions et décalages Méthode de Booth
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 18/58
Multiplication par additions et décalages Méthode de Booth
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 18/58
Multiplication par additions et décalages Méthode de Booth
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 18/58
Multiplication par additions et décalages Méthode de Booth modifiée
Plan du cours
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 19/58
Multiplication par additions et décalages Méthode de Booth modifiée
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 20/58
Multiplication par additions et décalages Méthode de Booth modifiée
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 20/58
Multiplication par additions et décalages Méthode de Booth modifiée
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 20/58
Multiplication par additions et décalages Méthode de Booth modifiée
Par exemple...
Soit la chaîne binaire suivante :
A = 010111011011101111011
B = 111001101100110001101
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 21/58
Multiplication par additions et décalages Méthode de Booth modifiée
Par exemple...
Soit la chaîne binaire suivante :
A = 010111011011101111011
B = 111001101100110001101
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 21/58
Multiplication par additions et décalages Méthode de Booth modifiée
Par exemple...
Soit la chaîne binaire suivante :
A = 010111011011101111011
B = 111001101100110001101
Conclusions :
I C contient plus de 0 que A et B réécriture minimale de A
I C = recodage de A par la méthode de Booth modifiée recodage canonique de A
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 21/58
Multiplication par additions et décalages Méthode de Booth modifiée
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 22/58
Multiplication par additions et décalages Méthode de Booth modifiée
ci yi +1 yi action à l’étape i c i +1
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 23/58
Multiplication par additions et décalages Méthode de Booth modifiée
n ci+1
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 24/58
Multiplication par additions et décalages Méthode de Booth modifiée
n ci+1
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 24/58
Multiplication par additions et décalages Méthode de Booth modifiée
n ci+1
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 24/58
Multiplication par additions et décalages Méthode de Booth modifiée
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 25/58
Multiplication par additions et décalages Méthode de Booth modifiée
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 25/58
Multiplication par additions et décalages Méthode de Booth modifiée
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 25/58
Multiplication par additions et décalages Méthode de Booth modifiée
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 25/58
Multiplication par additions et décalages Méthode de Booth modifiée
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 25/58
Multiplieurs par réseaux cellulaires
Plan du cours
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 26/58
Multiplieurs par réseaux cellulaires
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 27/58
Multiplieurs par réseaux cellulaires
Principe : utilisation de cellules full adder (FA) pour calculer les sommes partielles
I on ne propage pas la retenue sur chaque ligne
I utilisation de la notation carry save
I bémol : utilisation d’un additionneur à propagation de retenue à la fin pour déterminer
le résultat
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 27/58
Multiplieurs par réseaux cellulaires
Principe : utilisation de cellules full adder (FA) pour calculer les sommes partielles
I on ne propage pas la retenue sur chaque ligne
I utilisation de la notation carry save
I bémol : utilisation d’un additionneur à propagation de retenue à la fin pour déterminer
le résultat
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 27/58
Multiplieurs par réseaux cellulaires
Multiplieur de Braun
X3 X2 X1 X0
b
a
Y0
0 0 0
a·b FA FA FA
Y1
FA FA FA
Y2
FA FA FA
Y3
FA FA FA 0
P7 P6 P5 P4 P3 P2 P1 P0
Temps de calcul :
I proportionnel au plus long chemin
I entrées sur n bits traversée de 2n − 2 cellules
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 28/58
Décomposition récursive de la multiplication
Plan du cours
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 29/58
Décomposition récursive de la multiplication Principe de base
Plan du cours
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 30/58
Décomposition récursive de la multiplication Principe de base
Et finalement
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 31/58
Décomposition récursive de la multiplication Principe de base
D (n) = O (log n)
I théoriquement : proportionnel au logarithme de la taille des opérandes
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 32/58
Décomposition récursive de la multiplication Principe de base
X · Y = 22p · B + 2p · A − B − C + C , avec
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 33/58
Décomposition récursive de la multiplication Principe de base
X · Y = 22p · B + 2p · A − B − C + C , avec
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 33/58
Décomposition récursive de la multiplication Principe de base
X · Y = 22p · B + 2p · A − B − C + C , avec
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 33/58
Décomposition récursive de la multiplication Arbres de Wallace
Plan du cours
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 34/58
Décomposition récursive de la multiplication Arbres de Wallace
Rappel
cout = maj Xi , Yi , ci
Xi Yi cin Si = Xi ⊕ Yi ⊕ ci
0 0 0 0 0
Xi Yi
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
cout FA cin 1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
Si 1 1 1 1 1
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 35/58
Décomposition récursive de la multiplication Arbres de Wallace
Arbres de Wallace
La cellule FA est une cellule de Wallace à 3 entrées
20 20 20 20 20
W3
20 20 20 20
21
W3
W3 0
21
21 20 W3
W5
22 21 20
Remarques :
I une cellule de Wallace à p entrées dlog2 pe sorties
I une cellule de Wallace à 2p+1 − 1 entrées peuvent être facilement construit à l’aide
de cellules à 2p − 1
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 36/58
Décomposition récursive de la multiplication Arbres de Wallace
Arbres de Wallace
La cellule FA est une cellule de Wallace à 3 entrées
20 20 20 20 20
W3
20 20 20 20
21
W3
W3 0
21
21 20 W3
W5
22 21 20
Remarques :
I une cellule de Wallace à p entrées dlog2 pe sorties
I une cellule de Wallace à 2p+1 − 1 entrées peuvent être facilement construit à l’aide
de cellules à 2p − 1
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 36/58
Décomposition récursive de la multiplication Arbres de Wallace
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 37/58
Décomposition récursive de la multiplication Arbres de Wallace
20
20
20
20
20
20
20
20
20
20
20
20
20
20
W7 W7
20
22
21
20
22
21
20
W3
W3
W3
23
22
21
20
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 37/58
Décomposition récursive de la multiplication Arbres de Wallace
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 38/58
Décomposition récursive de la multiplication Arbres de Wallace
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
W7 W7 W7 W7
25
24
23
24
23
22
23
2
21
22
21
20
2
0
W3 W3 W3
0
25 24 23 22 21
Additionneur 5 bits
26 25 24 23 22 21 20
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 38/58
Décomposition récursive de la multiplication Arbres de Wallace
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 39/58
Décomposition récursive de la multiplication Arbres de Wallace
X (0) · Y (1)
11 · · · 8 7···4
X (1) · Y (0)
11 · · · 8 7···4
4 W3 4 W3
Additionneur 12 bits
15 · · · 12 11 · · · 8 7···4 3···0
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 39/58
Décomposition récursive de la multiplication Arbres de Wallace
4×4
4×4 4×4
4×4
W3
Additionneur
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 39/58
Décomposition récursive de la multiplication Arbres de Wallace
Ce schéma peut facilement être généralisé pour traîter des opérandes de taille
n bits, pour n une puissance de 2
W3 W5 W7 W5 W3
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 40/58
Décomposition récursive de la multiplication Arbres de Wallace
Complexité
Coût
I coût multiplieur 4 × 4
I temps de traversée du plus grand arbre de Wallace, à n/2 − 1 entrées
I coût de l’additionneur final
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 41/58
Décomposition récursive de la multiplication Méthode de Dadda
Plan du cours
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 42/58
Décomposition récursive de la multiplication Méthode de Dadda
22
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 43/58
Décomposition récursive de la multiplication Méthode de Dadda
FA retenue
somme
retenue
HA
somme
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 44/58
Décomposition récursive de la multiplication Méthode de Dadda
Objectifs :
(1) réduire le plus vite possible la hauteur des colonnes,
(2) en utilisant le moins de cellules FA/HA possible
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 45/58
Décomposition récursive de la multiplication Méthode de Dadda
Objectifs :
(1) réduire le plus vite possible la hauteur des colonnes,
(2) en utilisant le moins de cellules FA/HA possible
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 45/58
Décomposition récursive de la multiplication Méthode de Dadda
u0 = 2, u1 = 3, u2 = 4, · · · uj +1 = b3 · uj /2c
Algorithme de Dadda
I si h est la hauteur maximale des colonnes, faire en
sorte d’obtenir un schéma où la
colonne la plus élevée ait une hauteur h0 = maxj uj |uj < h , en utilisant le moins de
cellules HA/FA
I ensuite, on passe successivement de la hauteur maximale uj à uj −1 , pour atteindre la
hauteur u0 = 2
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 46/58
Décomposition récursive de la multiplication Méthode de Dadda
u0 = 2, u1 = 3, u2 = 4, · · · uj +1 = b3 · uj /2c
Algorithme de Dadda
I si h est la hauteur maximale des colonnes, faire en
sorte d’obtenir un schéma où la
colonne la plus élevée ait une hauteur h0 = maxj uj |uj < h , en utilisant le moins de
cellules HA/FA
I ensuite, on passe successivement de la hauteur maximale uj à uj −1 , pour atteindre la
hauteur u0 = 2
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 46/58
Décomposition récursive de la multiplication Méthode de Dadda
EXPL p. 125
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 47/58
D’autres types de multiplieurs
Plan du cours
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 48/58
D’autres types de multiplieurs Multiplieurs série “poids faible d’abord”
Plan du cours
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 49/58
D’autres types de multiplieurs Multiplieurs série “poids faible d’abord”
Jusque maintenant, on a considéré que les bits des opérandes étaient tous
disponibles au même instant
Multiplieurs série : les bits des opérandes arrivent en série, deux à deux
I commencer les calculs dès l’arrivée des premières données
I arrivée en commençant par les bits de poids faible
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 50/58
D’autres types de multiplieurs Multiplieurs série “poids faible d’abord”
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 51/58
D’autres types de multiplieurs Multiplieurs série “poids faible d’abord”
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 51/58
D’autres types de multiplieurs Multiplieurs série “poids faible d’abord”
C2 (i − 1, j − 2) (
si i ≤ j < 2i
C1 (i − 1, j − 1)
X(i, j) Y (i, j) S(i − 1, j)
Yi Xj −i
X (i , j ) =
0 sinon
Module j, au temps i (
Xi Yj −i si i ≤ j ≤ 2i
Y (i , j ) =
S(i, j)
0 sinon
C2 (i, j)
C1 (i, j)
X (i , j ) + Y (i , j ) + C2 (i − 1, j − 2) + C1 (i − 1, j − 1) + S(i − 1, j ) = 4 · C2 (i , j ) + 2 · C1 (i , j ) + S(i , j )
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 52/58
D’autres types de multiplieurs Multiplieurs série “poids faible d’abord”
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 53/58
D’autres types de multiplieurs Multiplieurs “en ligne”
Plan du cours
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 54/58
D’autres types de multiplieurs Multiplieurs “en ligne”
Dans certains cas, on a intérêt à connaître rapidement les bits de poids forts du
résultat de la multiplication
I la division traîte les chiffres de poids fort d’abord
I arithmétique réelle : seuls les n bits de poids fort d’un produit n × n sont “intéressants”
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 55/58
D’autres types de multiplieurs Multiplieurs “en ligne”
Dans certains cas, on a intérêt à connaître rapidement les bits de poids forts du
résultat de la multiplication
I la division traîte les chiffres de poids fort d’abord
I arithmétique réelle : seuls les n bits de poids fort d’un produit n × n sont “intéressants”
Mais les retenues se propagent de gauche à droite → des poids faibles vers les
poids forts
I utilisation de systèmes sans propagation de retenues : système redondant
d’Avizienis, par exemple
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 55/58
D’autres types de multiplieurs Multiplieurs “en ligne”
n−1 n−1
X= ∑ xi · βi et Y= ∑ Yi · βi
i =0 i =0
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 56/58
D’autres types de multiplieurs Multiplieurs “en ligne”
On note
I X (k ) = (Xn−1 · · · Xk ) et Y (k ) = (Yn−1 · · · Yk )
I P (k ) = X (k ) · X (k ) .
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 57/58
D’autres types de multiplieurs Multiplieurs “en ligne”
On note
I X (k ) = (Xn−1 · · · Xk ) et Y (k ) = (Yn−1 · · · Yk )
I P (k ) = X (k ) · X (k ) .
On remarque que
X (k −1) = β · X (k ) + Xk −1 et Y (k −1) = β · Y (k ) + Yk −1
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 57/58
D’autres types de multiplieurs Multiplieurs “en ligne”
On note
I X (k ) = (Xn−1 · · · Xk ) et Y (k ) = (Yn−1 · · · Yk )
I P (k ) = X (k ) · X (k ) .
On remarque que
X (k −1) = β · X (k ) + Xk −1 et Y (k −1) = β · Y (k ) + Yk −1
On obtient finalement
P (k −1) = β2 · P (k ) + Xk −1 · Y (k −1) + β · Yk −1 · X (k )
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 57/58
D’autres types de multiplieurs Multiplieurs “en ligne”
On note
I X (k ) = (Xn−1 · · · Xk ) et Y (k ) = (Yn−1 · · · Yk )
I P (k ) = X (k ) · X (k ) .
On remarque que
X (k −1) = β · X (k ) + Xk −1 et Y (k −1) = β · Y (k ) + Yk −1
On obtient finalement
P (k −1) = β2 · P (k ) + Xk −1 · Y (k −1) + β · Yk −1 · X (k )
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 57/58
Questions ?
Guillaume Revy (Univ. de Perpignan Via Domitia) Algorithmes rapides de multiplication 58/58