Diviseurs |
Pesée du pain |
On veut calculer Q = A ÷ D. Par un coup de chance extraordinaire on dispose d'une balance, d'un pain de
mie dont le poids est justement A et enfin d'une série de poids de valeur D, 2D, 4D, 8D, ... 2i*D marqués respectivement avec 1, 2, 4, 8, ... 2i. En fait D est un nombre en binaire, et 2i*D s'obtient simplement en décalant D. La balance compare le poids des objets sur chacun de ses deux plateaux ( £ ou > ) . |
Divisions récurrentes |
La division est peu fréquente, cependant comme son délai d'exécution est bien plus grand
que celui de l'addition ou de la multiplication, son incidence sur le temps de calcul est substantielle. Il convient
donc de soigner la réalisation des diviseurs.
avec comme valeurs initiales :
Quand la récurrence se termine, on a Q = Q0 = Sj qj * 2j . R = R0 est le reste de la division. |
Un "soustracteur conditionnel" donne le résultat S suivant: si R < D alors S = R sinon S = R – D ; // S = R modulo D ; Chaque cellule "SC" calcule le résultat et la retenue de la soustraction R – D. Si la retenue sortante (tout à gauche) vaut '1' alors S reçoit le résultat de la soustraction, sinon S reçoit R. Cette dernière opération qui rétablit l'ancienne valeur de R est parfois appelée "restauration", d'où le nom du diviseur. |
La fonction du "soustracteur conditionnel": si R < D alors S = R sinon S = R – D, se résume par sa fonction de transfert appelée "diagramme de Robertson". Pour converger, la division impose en outre que 0 £ R £ 2*D . Le "diagramme de Robertson" permet donc de visualiser les cas de débordement . La fonction détection du débordement dans la division n'est pas incluse dans les diviseurs qui suivent.
|
Vérifiez que vous maîtrisez les fonctions logiques de la cellule "SC" : si q = '0' alors { co = majorité ( r, d, ci ) ; s = r } // identité sinon { co = majorité ( r, d, ci ) ; s = r Å d Å ci } // soustraction |
Un diviseur "avec restauration" consiste en une suite de décalages de D et de tentatives de soustractions de D aux restes partiels. Le diviseur est formé d'une structure régulière de cellules de soustraction conditionnelle "SC" (identité ou soustraction selon q j ). |
Inverse de la division |
Si on retourne le diviseur "avec restauration" tête en bas et replace les soustracteurs conditionnels "SC" par des additionneurs conditionnels "AC" ( identité ou addition selon qj ) on obtient l'opérateur de l'inverse de la division c'est à dire la multiplication avec "reste" : A = D * Q + R . |
Un diviseur "sans restauration" consiste en une suite de décalages et d'additions ou de soustractions. Il est formé d'une structure régulière de cellules d'addition/soustraction "AS" (addition ou soustraction selon qj ).
|
Le fonctionnement de l'addition/soustraction "AS" est donnée par le de "diagramme de Robertson" si R < 0 alors S = R + D sinon S = R – D. |
Diviseurs rapides |
Trois approches se combinent pour réaliser des diviseurs rapides:
|
Pour avoir un diagramme de Robertson carré, on normalise les restes successifs: ( Rj * b-j)
où b est la base de numération. |