Diviseurs rapides |
Division "SRT" sans propagation de retenue |
Le diviseur ci dessous a trois inconvénient :
et deux avantages :
On dit que le diviseur D est "normalisé" si
la position de son premier bit à '1' est fixée. |
Additionneur/ Soustracteur conditionnel sans propagation |
Un "additionneur/soustracteur conditionnel" donne l'un des résultats S suivant:
Chaque cellule "tail", union des cellules "SC" et "AS", réalise l'addition/soustraction de 1 chiffre. La retenue n'est pas propagée vers la cellule de gauche de la même ligne mais envoyée vers la cellule de la ligne suivante. Le délai est donc indépendant du nombre de bits traités en parallèle. Ce circuit ne déborde pas. |
Les trois opérations de l' "additionneur/soustracteur conditionnel" se retrouvent dans le "diagramme de Robertson" de la division.
|
Vérifiez que vous maîtrisez les fonctions logiques de la cellule "tail" .
|
![]() |
Soient
Lors d'une division correcte (sans débordement), la sortie s2 de "head" est toujours à 0. La détection du débordement s2 est utilisée par les "double diviseurs" |
Cellules "head" et "tail" |
Une cellule "head" suivie de cellules "tail" exécutent ensemble l'algorithme :
|
Si R > 0 il ne faut pas faire d'addition et si R < 0 il ne faut pas faire de soustraction sous
peine de débordement. Quand ![]() |
Nécessité de la normalisation du diviseur D |
Pour la cellule "head", un reste est petit si |
La division "SRT" précédente est simple car le premier bit du diviseur D est toujours '1'. Elle se simplifie davantage si les deux premiers bits d-1 et d0 du diviseur D sont réduits à "1 0" par l'opération : Pour un diviseur sur n bits, 2n-1– 1 < D < 2n-1 + 2n-2 . |
Cellule de tête du diviseur "SRT" avec réduction |
Soient
La différence entre les deux écritures de 0 pour q : '+ 0' et '- 0' importe. |
Le quotient Q du diviseur "SRT" est en notation redondante "BS". Sa conversion en notation
conventionnelle passe par une soustraction. Pour la retenue de la soustraction, '0' donne
'P', '1' donne 'G' et '-1'
donne 'K'. Comme les chiffres qj du quotient sont calculés
séquentiellement (poids forts d'abord), la conversion peut être menée en même
temps que le calcul des chiffres qj . Soit "ratio" le rapport entre le délai de la cellule "head" du diviseur SRT et le délai de la cellule "BK" du soustracteur. Le coût du convertisseur dépend de "ratio". |
Correction du quotient |
Pour soustraire il faut ajouter le complément puis ajouter
1. Cependant si le dividende A et le diviseur D sont positifs (c'est le cas en virgule flottante) et le reste final
R est négatif, alors le quotient Q est trop grand et il suffit de ne pas ajouter 1 afin de le corriger.
Il convient donc d'ajouter le complément du signe de R. Rappelons qu'ajouter 1 complémente le bit poids faible et change les 'P' en '1' alors qu'ajouter 0 change les 'P' en '0'. |
Conception d'un diviseur |
Dans cet applet on se limite aux chiffres du quotient Q redondants et symétriques. Ils sont définis par la base de numération de Q et la valeur maximale du chiffre. Le but de cet applet est choisir les chiffres du quotient en fonction du minimum de chiffres du reste partiel P et du diviseur D. |