Brevet FR2827683A1 — publié le 20030124

PROCÉDÉ DE DIVISION DE VALEURS NUMÉRIQUES La présente invention concerne le domaine des dispositifs électroniques propres à effectuer des calculs, comme les microprocesseurs ou les microcontrôleurs. En particulier, la présente invention s'intéresse aux divisions effectuées par ces dispositifs. De façon classique, lorsqu'un microprocesseur effectue la division d'un dividende par un diviseur, il stocke les valeurs des opérandes (dividende et diviseur) dans des registres, puis il effectue la division à l'aide d'un algorithme donné. Le résultat de la division, à savoir le quotient et le reste, sont fournis à l'issue de la division. Après cela, le microprocesseur calcule un certain nombre de drapeaux associés au résultat de la division. En général, trois drapeaux sont calculés. Ces trois drapeaux sont le drapeau négatif N ("négative flag"), le drapeau nul Z (zero flag") et le drapeau de débordement V ("overflow flag"). Ces drapeaux sont utiles pour interpréter le résultat de la division et le microprocesseur peut s'en servir pour d'autres opérations. La signification des drapeaux est la suivante. Le drapeau négatif N est à"1"si le bit le plus significatif du quotient est un"l", et à"0"dans le cas contraire. Le drapeau nul Z est à, il, si le quotient est nul. Sinon, il est à"0". Le drapeau de débordement V est normalement à"0". Si le quotient ne peut pas être représenté par le nombre de bits qui lui est attribué ou si la division est impossible (par exemple, diviseur et dividende tous deux égaux à zéro), le drapeau de débordement est à"1". Le résultat de la division n'a pas de signification et ne peut pas être utilisé, pas plus que les drapeaux N et Z. Pour déterminer le drapeau négatif N, le microprocesseur compare le bit de poids fort du quotient à zéro. Pour le drapeau nul Z, ce sont tous les bits du quotient qui sont comparés à zéro. Pour déterminer le drapeau de débordement V, le microprocesseur examine entre autres le reste et des résultats partiels menant au calcul du reste. La détermination du drapeau de débordement ne sera pas décrite en détails ici. Ainsi, dans l'art antérieur, le calcul des drapeaux intervient à la fin de la division proprement dite, lorsque le quotient et le reste sont connus. Cela présente des inconvénients. En effet, dans de nombreux cas, la valeur d'un des drapeaux associés au résultat de la division est nécessaire au microprocesseur pour qu'il déclenche l'instruction suivante. Par exemple, le microprocesseur doit traiter une instruction particulière A si le drapeau nul est à"1"et une autre instruction B si le drapeau nul est à "0". En outre, si le drapeau de débordement est à"l", le résultat de la division ne peut pas être utilisé et la détermination du quotient et du reste était inutile. Là aussi, le fait de devoir attendre la fin des calculs du quotient et du reste entraîne une perte générale de temps pour le microprocesseur. Un objet de la présente invention est de prévoir un procédé de division optimisé. Un autre objet de la présente invention est de prévoir un procédé de division réalisé par un dispositif électronique et permettant une utilisation optimale de ce dernier. Pour atteindre cet objet, la présente invention prévoit un procédé pour effectuer une division d'un dividende par un diviseur comprenant une étape de détermination d'un résultat de la division et une étape de détermination d'au moins un drapeau associé au résultat de la division. L'étape de détermination dudit drapeau a lieu avant la fin de l'étape de détermination dudit résultat. Selon un mode de réalisation de la présente invention, l'étape de détermination dudit drapeau débute sensiblement en même temps que l'étape de détermination dudit résultat. Selon un mode de réalisation de la présente invention, ledit drapeau fait partie d'un groupe comprenant un drapeau négatif, un drapeau nul et un drapeau de débordement. Selon un mode de réalisation de la présente invention, la division est une division de nombres signés ou une division de nombres non signés, et le diviseur est un nombre de 16 bits et le dividende un nombre de 16 ou 32 bits. Selon un mode de réalisation de la présente invention, dans le cas d'une division de nombres signés, la valeur du drapeau négatif est donnée par le résultat de l'opération logique (bit de poids fort du dividende) OU Exclusif (bit de poids fort du diviseur), et, dans le cas d'une division de nombres non signés et d'un dividende de 16 bits, le drapeau négatif est mis à"1"si le diviseur est inférieur au dividende, et, dans le cas d'une division de nombres non signés et d'un dividende de 32 bits, le drapeau négatif est mis à"1"si le diviseur est inférieur aux 16 bits de poids fort du dividende. Selon un mode de réalisation de la présente invention, le drapeau nul est mis à"1"si les conditions suivantes sont respectées : Nombre de bits du Opérandes signés Opérandes non signés dividende 32 bits Abs (D) m = 0 et Dm = 0 et d > Dl Abs (d) > Abs (D) l OU OU D = 0 D = 0 16 bits Abs (d) > Abs (D) d > D OU OU D = 0 D = 0 dans lequel"D"désigne"dividende" ;"d","diviseur" ; "Abs (D)","valeur absolue du dividende" ; "Abs (d) ", "valeur absolue du diviseur" ;"Dm","les 16 bits de poids fort du dividende" ;"Dl", les 16 bits de poids faible du dividende ; "Abs (D) m", les 16 bits de poids fort de la valeur absolue du dividende ;"Abs (D) l","les 16 bits de poids faible du dividende". Selon un mode de réalisation de la présente invention, le drapeau de débordement est mis à"1"si les conditions suivantes sont respectées : Nombre de bits Opérandes signés Opérandes non signés du dividende 32 bits Abs' (d) Abs' (D) m d'D'm OU OU d = 0 d = 0 16 bits D = 8000H et d = FFFFH OU d = 0 d = 0 dans lequel"D"désigne"dividende" ;"d","diviseur" ; "Abs' (d)", un nombre de 17 bits formé d'un zéro pour bit de poids le plus fort suivi des 16 bits de la valeur absolue du diviseur ; "Abs' (D) m", les 17 bits de poids fort de la valeur absolue du dividende ;"d'", un nombre de 17 bits formé d'un zéro pour bit de poids le plus fort suivi des 16 bits du diviseur ;"D'm", un nombre de 17 bits formé d'un zéro pour bit de poids le plus fort suivi des 16 bits de poids fort du dividende. Selon un mode de réalisation de la présente invention, l'étape de détermination d'un résultat de la division comprend les étapes suivantes : a) charger un registre de dividende de 33 bits par un nombre dont les bits de poids faible correspondent aux bits du dividende ou de sa valeur absolue et le ou les autres bits ont la valseur "0", b) charger un registre de diviseur de 17 bits par un nombre dont les 16 bits de poids faible correspondent aux bits du diviseur ou de sa valeur absolue et le bit de poids le plus fort est "0", c) décaler d'un cran vers la gauche le contenu du registre de dividende et mettre un "0" à la place du bit de poids faible, dans le cas où la division est une division de nombres signés et dans le cas où, la division étant une division de nombres non signés, le dividende est un nombre de 16 bits, d) réaliser 16 itérations, chaque itération comprenant les étapes suivantes : dl) effectuer la différence entre le nombre formé par les 17 bits de poids fort du registre de dividende et le contenu du registre de diviseur, d2) si ladite différence est positive ou nulle, remplacer les 17 bits de poids fort du registre de dividende par les 17 bits de ladite différence, décaler d'un cran vers la gauche le contenu du registre de dividende et introduire un "1" à la place du bit de poids le plus faible du registre de dividende, d3) si ladite différence est négative, décaler d'un cran vers la gauche le contenu du registre de dividende et introduire un "0" à la place du bit de poids le plus faible du registre de dividende, e) lorsque les itérations sont terminées, fournir le résultat de la division à partir du contenu du registre de dividende. Selon un mode de réalisation de la présente invention, le drapeau négatif et le drapeau nul sont calculés au plus tard au cours de l'étape de décalage c) et le drapeau de débordement est calculé au plus tard au cours de la première itération de l'étape d). Ces objets, caractéristiques et avantages, ainsi que d'autres de la présente invention seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non-limitatif en relation avec les figures jointes parmi lesquelles : la figure 1 représente un organigramme général utilisé dans la présente invention pour effectuer une division ; les figures 2a à 2h illustrent le contenu de registres lors de la division de 7 par 2 ; et la figure 3 reprend l'organigramme de la figure 1 avec indication du calcul des drapeaux. Selon la présente invention, la détermination des drapeaux est effectuée avant la détermination complète du résultat (quotient et reste) de la division, et non après comme dans l'art antérieur. La présente invention va être décrite dans le cadre de divisions utilisant l'organigramme de la figure 1. Cet organigramme, qui a été développé par la demanderesse, est un organigramme général utilisable dans de nombreux types de divisions. Dans l'exemple de mise en oeuvre de la présente invention décrit ci-dessous, les divisions effectuées appartiennent à quatre types différents : les divisions effectuées peuvent être des divisions de dividendes de 32 bits par des diviseurs de 16 bits, ou de dividendes de 16 bits par des diviseurs de 16 bits et elles peuvent être des divisions dont les opérandes sont tous deux des nombres signés ou des nombres non signés. Dans les quatre cas, le quotient et le reste de la division sont tous deux fournis sur 16 bits. Le quotient et le reste sont des nombre signés si la division est une division de nombres signés et des nombres non signés si la division est une division de nombres non signés. On rappelle qu'un nombre signé peut être positif, négatif ou nul. Il est positif si son bit de signe, le bit de poids fort, est "0" eut négatif si son bit de signe est"l". Les autres bits du nombre signé sont ses bits de valeur. En notation hexadécimale, les nombres signés de 16 bits vont de 8000H à 7FFFH (l'indice H indique que la notation est hexadécimale). Les nombres signés de 32 bits vont de 80000000H à 7FFFFFFFH'Un nombre non signé ne peut être que positif ou nul. Son bit de poids fort n'a aucune signification de signe. Sur 16 bits, les nombres non signés vont de OOOOH à FFFFH. Pour passer d'un nombre signé positif +X au nombre signé négatif-X, on prend le complément à deux du nombre +X. Pour obtenir simplement le complément à deux d'un nombre, on peut prendre son complément à un (ce qui correspond à inverser tous ses bits) et ajouter un. Par exemple, sur quatre bits, +7 s'écrit "OUI". Le complément à un de +7 est"1000"et son complément à deux est "1000" + "0001" = "1001". "1001" représente le nombre signé-7. De même, pour passer d'un nombre signé négatif-X au nombre signé positif +X (par exemple pour obtenir la valeur absolue de-X), on prend le complément à deux de-X. Ainsi,-7, qui s'écrit "1001", a un complément à un égal à "0110" eut un complément à deux égal à"OUI", ce qui correspond bien à +7. Au début de chaque division, le microprocesseur détermine si la division à effectuer est une division de nombres signés ou non, ainsi que le nombre de bits du dividende (16 ou 32). Si la division est une division de nombres signés et concerne au moins un opérande négatif, le microprocesseur stocke le signe de cet opérande et calcule sa valeur absolue. En effet, les divisions sont réalisées avec des nombres positifs. Si un opérande est négatif, on utilise sa valeur absolue pour effectuer la division. Par exemple, pour diviser (-7) par (+2), on fait la division de 7 par 2 et on restitue le signe approprié au résultat de la division. Le fonctionnement de l'organigramme de la figure 1 va maintenant être décrit. Les éléments matériels particuliers utilisés dans la mise en oeuvre de la présente invention apparaîtront en cours de description. Au cours d'une étape 1, le microprocesseur examine le diviseur. Si l'on se trouve dans le cas d'une division de nombres signés et que le diviseur est un nombre négatif, le microprocesseur calcule d'abord la valeur absolue du diviseur. Le microprocesseur charge ensuite un registre de diviseur DVS par les 16 bits du diviseur ou, le cas échéant, par les 16 bits de sa valeur absolue. Le registre DVS est un registre de 17 bits. Le bit de poids fort (le plus à gauche) du registre DVS est mis à "0"et les 16 bits de poids faible du registre DVS correspondent aux 16 bits du diviseur (ou de sa valeur absolue). Au cours d'une étape 2, le dividende est examiné et, s'il s'agit d'un nombre signé négatif, sa valeur absolue est calculée. Le microprocesseur charge alors le dividende (le cas échéant, sa valeur absolue) dans un registre de dividende DVD. Le registre de dividende est un registre de 33 bits. Si le dividende est codé sur 32 bits, les 32 bits du dividende ou de sa valeur absolue correspondent aux 32 bits de poids faible (les plus à droite) du registre DVD. Le bit de poids fort du registre DVD est à "0". Si le dividende est un nombre de 16 bits, les 16 bits du dividende ou de sa valeur absolue sont placés dans les 16 premières cases MDL du registre de dividende DVD et les 17 dernières cases MDH du registre DVD, correspondant aux bits de poids forts, sont mises à"O". L'étape suivante de l'organigramme, l'étape 3, n'est réalisée que dans trois cas : les deux cas où la division porte sur des nombres signés et le cas où, dans une division de nombres non signés, le dividende est un nombre de 16 bits. Au cours de l'étape 3, le contenu du registre DVD est décalé d'un cran vers la gauche. La première case (les cases sont comptées de droite à gauche) du registre DVD, correspondant au bit le moins significatif, devenue vacante est mise à "0". Après cette opération, le bit de poids fort du dividende (ou de sa valeur absolue) correspond à la 33ème case du registre DVD, si le dividende est codé sur 32 bits, et à la 17ème case du registre DVD si le dividende est codé sur 16 bits. Lorsque le dividende est un nombre non signé de 32 bits, l'étape 3 n'est pas effectuée. Après l'étape 3, le cas échéant après l'étape 2, si l'étape 3 n'est pas réalisée, débute une série d'itérations. Chaque itération comprend plusieurs étapes, notées 4 à 8 et encadrées par un trait pointillé 15. Au cours de l'étape 4, on fait la différence MDH-DVS. Par souci de simplicité, on appelle DVS le contenu du registre de diviseur et MDH le contenu des 17 dernières cases du registre de dividende DVD, correspondant aux 17 bits de poids fort du registre DVD. La soustraction MDH-DVS est réalisée par un soustracteur de 17 bits, qui peut être un additionneur de 17 bits réalisant l'addition de MDH et du complément à deux de DVS. Le résultat de la soustraction MDH-DVD est un nombre de 17 bits. Au cours d'une étape 5, on examine si le résultat de la soustraction MDH-DVS est positif ou nul. Si c'est le cas (MDH - DVS 2 0), on remplace, au cours d'une étape 6, le contenu de la partie MDH du registre DVD par le résultat de la soustraction MDH-DVS. Puis on décale l'ensemble du registre DVD d'un cran vers la gauche et on introduit un "1" à la première case, devenue vacante, du registre DVD. Si ce n'est pas le cas (MDH-DVS Au cours d'une étape 8 qui suit soit l'étape 6, soit l'étape 7, on examine si le nombre d'itérations à effectuer a été accompli ou non. Dans le cas présent, on souhaite obtenir un quotient de 16 bits et le nombre d'itérations à effectuer est 16, que le dividende soit de 16 ou 32 bits. Si le nombre d'itérations est inférieur à 16, on recommence une itération en retournant à l'étape 4. Si le nombre d'itérations est égal à 16, la partie itérative de la division est terminée et on passe à une étape 9. Au cours de l'étape 9, on décale d'un cran vers la droite les bits contenus dans la partie MDH du registre DVD, et on introduit un "0" à la place du bit le plus significatif, devenu vacant. Le contenu de la partie MDH du registre DVD correspond alors directement au reste de la division s'il s'agit d'une division de nombres non signés. S'il s'agit d'une division de nombres signés dans laquelle le reste est négatif, ce qui correspond au cas où le dividende est négatif, on rétablit le signe du reste au cours d'une étape 10 en prenant le complément à deux du contenu de la partie MDH. L'étape 10 n'est réalisée que si cela est requis. Pour le quotient, le contenu de la partie MDL du registre DVD correspond directement, dans le cas d'une division de nombres non signés, aux 16 bits du quotient. S'il s'agit d'une division de nombres signés dans laquelle le quotient est négatif, ce qui correspond au cas où dividende et diviseur sont de signe opposé, la partie MDL du registre DVD fournit la valeur absolue du quotient. Le quotient est obtenu au cours d'une étape 11, par transformation de la valeur absolue du quotient en un nombre signé. Comme l'étape 10, l'étape 11 n'est réalisée que si cela est requis. Après l'étape 11, le résultat de la division à savoir quotient et reste sont déterminés. L'ensemble des étapes 3 à 9 correspond à 18 cycles d'horloge (16 cycles pour les itérations, un cycle pour l'étape 3 et un cycle pour l'étape 9). Les étapes 1, 2,10 et 11, lorsqu'elles sont réalisées, ont une durée d'un cycle chacune. Avant de décrire la détermination des drapeaux par un microprocesseur utilisant l'organigramme de la figure 1, un exemple simple de division de nombres non signés va être décrit en relation avec les figures 2a à 2h. Cet exemple, destiné principalement à illustrer les étapes 6 et 7 de l'organigramme, concerne la division de 7 par 2, codés sur quatre bits. En figure 2a, le registre DVD est un registre de 8 bits. En toute rigueur, il aurait fallu prendre un registre de 9 bits, mais, les opérandes étant non signés, une neuvième case n'est pas utile pour le registre DVD. La partie MDL du registre DVD (bits bO à b3) contient les bits"0111" (7 en binaire) et la partie MDH du registre DVD (bits b4 à b7) est chargée par des "0". La figure 2b représente le contenu du registre de diviseur DVS. Le registre DVS a ici 4 bits et il est chargé par les bits du diviseur, soit"0010". Le contenu du registre DVS ne va pas être modifié au cours de la division. Les figures 2cl et 2c2 illustrent l'étape 3. En figure 3cl, le contenu du registre DVD est décalé d'un cran vers la gauche. Le bit de poids fort du registre DVD est perdu. A la place du bit bO devenu vacant, on place un "0", comme cela est représenté en figure 2c2. Ensuite, on attaque la boucle d'itération pour la première fois. On compare (étape 4) la partie MDH du registre DVD ("0000") au contenu du registre DVS ("0010"). Comme DVS > MDH, la différence MDH-DVS est négative et on passe à l'étape 7. Le contenu du registre DVD de la figure 2c2 est décalé d'un cran vers la gauche et un 11011 est placé en bO. Le contenu du registre DVD est alors"00011100", comme cela est illustré en figure 2d. La première itération est terminée. Il y a quatre itérations à faire, et l'étape 4 est réalisée à nouveau. Lors de la deuxième itération, le contenu de MDH ("0001") est toujours inférieur à DVS ("0010"). L'étape 7 est effectuée à nouveau. A l'issue de la deuxième itération, le contenu du registre DVD est"00111000" (figure 2e). Lors de la troisième itération, à l'étape 4, le contenu de MDH ("0011") est cette fois supérieur à DVS ("0010"). L'étape 6 est alors effectuée. Dans un premier temps, on remplace MDH par la différence MDH-DVS, égale à "0001". Le contenu du registre DVD est alors"00011000" (figure 2fl). On décale ensuite l'ensemble du registre DVD d'un cran vers la gauche et on introduit un 1 à la place du bit le moins significatif bO. On notera que, chaque fois que l'on déplace d'un cran vers la gauche le contenu du registre DVD, le bit le plus à gauche se trouve perdu et est remplacé par son voisin de droite. A l'issue de la troisième itération, le contenu du registre DVD est "00110001" (figure 2f2). Une dernière itération reste à effectuer. Le contenu de la partie MDH du registre DVD ("0011") est donc à nouveau comparée au contenu du registre DVS ("0010"). MDH-DVS est supérieur ou égal à 0 et on réalise 1'étape 6. La partie MDH du registre DVD est donc remplacée par le résultat de la soustraction MDH-DVS, égal à"0001" (figure 2gl). Ensuite, on déplace l'ensemble du registre DVD d'un cran vers la gauche et le bit bO est mis à 1. La figure 2g2 illustre le contenu du registre DVD ("00100011") à l'issue de la quatrième et dernière itération. On passe alors à l'étape 9. La partie MDH du registre DVD ("0010") est décalée d'un cran vers la droite et un 0 est introduit à la place du bit le plus significatif, b7. Comme cela est illustré en figure 2h, le contenu du registre DVD est alors "00010011". Comme la division est non signée, la partie MDL du registre DVD ("0011") fournit directement le quotient et la partie MDH ("0001") le reste. On a bien 7/2 = 3 ("0011") avec un reste égal à 1. Pour pouvoir déterminer les drapeaux avant d'avoir déterminé le quotient et le reste, la demanderesse s'est d'abord attachée à trouver, pour les différents drapeaux, des expressions n'utilisant pas le quotient ou le reste. En outre, les expressions choisies par la demanderesse pour les différents drapeaux utilisent des valeurs ou des résultats partiels apparaissant au cours des premiers cycles de la division. Détermination du drapeau négatif N Lorsqu'il exécute une division, le microprocesseur sait s'il s'agit d'une division de nombres signés ou de nombres non signés. Il connaît aussi les valeurs du dividende et du diviseur. Dans le cas d'une division de nombres signés, pour trouver le drapeau N (qui correspond dans ce cas au signe du quotient), le microprocesseur réalise au début de la division, par exemple en même temps que l'étape 1, l'opération logique"OU Exclusif entre le bit de poids fort du dividende (représentatif du signe du dividende), et le bit de poids fort du diviseur (représentatif du signe du diviseur). La fonction OU Exclusif peut être réalisée par un circuit logique, facile à implémenter au niveau matériel et occupant peu de place. L'opération OU Exclusif peut aussi être réalisée par l'unité de calcul du microprocesseur. Le résultat de l'opération OU Exclusif ci-dessus donne directement la valeur du drapeau N, disponible dès le premier cycle de la division. Dans le cas d'une division de nombres non signés, on fait la soustraction d'un premier et d'un deuxième nombre de 32 bits chacun. Le premier nombre de 32 bits est formé des 32 bits du dividende, si le dividende a 32 bits. Si le dividende a 16 bits, on forme le premier nombre de 32 bits en prenant des"0" pour les 16 bits de poids fort et les 16 bits du dividende pour bits de poids faible. Le deuxième nombre de 32 bits est formé en prenant les 16 bits du diviseur pour bits de poids fort et des "0"pour les 16 bits de poids faible. La soustraction des premier et deuxième nombres est réalisée par le microprocesseur à l'aide d'un soustracteur de 33 bits, pour ne pas perdre un éventuel bit de débordement. Si le deuxième nombre est inférieur au premier nombre, le drapeau N est mis à"l". Il est mis à"0"dans le cas contraire. L'opération ci-dessus est très rapide et la valeur du drapeau N peut être obtenue aussi, dans le cas d'une division de nombres non signés, dès le premier cycle de la division. On peut aussi, pour déterminer le drapeau N, réaliser la soustraction cidessus avec des nombres de 33 bits obtenus en plaçant un"0" respectivement devant les 32 bits des premier et deuxième nombres de 32 bits, le soustracteur restant un soustracteur de 33 bits. Cela est avantageux car le premier nombre de 33 bits correspond au contenu du registre de dividende DVD à la fin de l'étape 2. Le microprocesseur utilise alors le contenu du registre DVD à la fin de l'étape 2 et la détermination du drapeau N a lieu au cours de l'étape 3. En conclusion, la valeur du drapeau négatif N peut être déterminée au cours des tout premiers cycles de la division, et même dès le premier cycle de la division. Sa détermination ne nécessite au maximum, au niveau matériel, que l'adjonction d'un circuit réalisant la fonction OU Exclusif et d'un soustracteur de 33 bits, pour les nombres non signés. Détermination du drapeau nul Z Pour déterminer le drapeau nul Z, on envisage les quatre cas possibles de la division. Le tableau 1 ci-après envisage ces cas et indique les conditions mathématiques qui doivent exister pour que le drapeau nul Z soit égal à 1. Tableau 1 Nombre de bits du Opérandes signés Opérandes non signés dividende 32 bits Abs(D)m = 0 et DM = 0 et d > Dl Abs(d) > abs (D)l OU OU D = 0 D = 0 16 bits Abs(d) > Abs(D) d > D OU OU D = 0 D = 0 Dans le tableau 1,"D"est mis pour "dividende" ; "d" pour"diviseur" ;"Abs (D)" pour"valeur absolue du dividende" ; "Abs (d)" ^valeur absolue du diviseur" ;"Dm"pour"les 16 bits de poids fort du dividende" ;"Dl"pour les 16 bits de poids faible du dividende ;"Abs (D) m" pour les 16 bits de poids fort de la valeur absolue du dividende ;"Abs (D) l" pour"les 16 bits de poids faible du dividende". Lorsque le dividende est nul (D=0), le drapeau nul est mis à S dans les quatre cas. Sinon, pour une division dans laquelle le dividende est un nombre de seize bits, le drapeau nul est en outre mis à "1" si la valeur absolue du diviseur est supérieure à la valeur absolue du dividende dans le cas d'une division de nombres signés, et, dans le cas d'une division de nombres non signés, si le diviseur est supérieur au dividende. Pour un dividende de 32 bits, le drapeau nul est en outre mis à "1" si, dans le cas d'une division de nombres non signés, les 16 bits les plus significatifs du dividende sont nuls et si le diviseur est supérieur aux 16 bits de poids faible du dividende. Pour une division de nombres signés, les conditions pour mettre le drapeau nul à "1" sont des conditions équivalentes à celles de la division de nombres non signés, mais elles portent cette fois sur les valeurs absolues. Le calcul du drapeau Z ne nécessite qu'une comparaison portant sur 16 bits. Le soustracteur de 17 bits utilisé pour réaliser les itérations de la division peut être utilisé pour effectuer les comparaisons requises pour déterminer le drapeau Z (selon les cas, d > Dl, d > D, Abs (d) > Abs (D) l, et Abs (d) > Abs (D) 1). Dans ce cas, la valeur du drapeau nul Z peut être obtenue au cours du premier cycle dans le cas d'une division de nombres non signés et après la détermination des valeurs absolues des opérandes (étapes 1 et 2) pour une division de nombres signés. Les portes ET et OU requises sont faciles à implémenter dans le circuit. Les fonctions qu'elles réalisent peuvent par ailleurs être facilement réalisées par le microprocesseur lui-même. Détermination du drapeau de débordement V Pour le drapeau V, la demanderesse a aussi cherché à établir des expressions pouvant être calculées suffisamment tôt dans la division. Le tableau 2 ci-après résume les quatre cas à distinguer. Tableau 2 Nombre de bits Opérandes signés Opérandes non signés du dividende 32 bits Abs' (d) Abs' (D) m d'D'm OU OU d = 0 d = 0 16 bits D = 8000H et d = FFFFH OU d = 0 d - 0 Dans le tableau 2, outre les abréviations déjà définies en relation avec le tableau 1, l'abréviation "Abs' (d) " représente un nombre de 17 bits formé d'un "0" comme bit de poids le plus fort, suivi des 16 bits de la valeur absolue du diviseur. L'abréviation "d'" représente un nombre de 17 bits formé d'un"0" comme bit de poids le plus fort, suivi des 16 bits du diviseur. "Abs' (d)" et "d'" correspondent ainsi au contenu du registre DVS, chargé au cours de l'étape 1. L'abréviation"Abs' (D) m" représente un nombre de 17 bits formé des 17 bits de poids fort de la valeur absolue du dividende."Abs' (D) m" correspond aux 17 bits de poids fort du registre DVD tel qu'il est à la fin de l'étape 3. L'abréviation IID'm"représente un nombre de 17 bits formé d'un 11011 comme bit de poids le plus fort suivi des 16 bits derniers bits du dividende, qui sont les 16 bits de poids fort du dividende., Abs, (D) m" et "D'm"correspondent tous deux aux 17 bits de poids fort (partie MDH) du registre DVD tel qu'il apparaît au début de l'étape 4 de la première itération, puisque le décalage d'un cran vers la gauche du registre DVD à l'étape 3 n'a pas eu lieu dans le cas d'une division de nombres non signés avec un dividende de 32 bits. La détermination du drapeau de débordement est réalisée de la manière suivante. Dans tous les cas, si le diviseur est nul, le drapeau de débordement V est mis à 1, ce qui est normal puisque, dans ce cas, la division ne peut être effectuée. Lorsque le dividende est un nombre de 16 bits, dans le cas d'une division de nombres non signés, il n'y a qu'un seul cas où le drapeau V est mis à 1, c'est le cas où le diviseur est nul. Dans le cas d'une division de nombres signés, le drapeau V est aussi mis à 1 lorsque le dividende correspond au nombre négatif minimal (8000,-,, l'indice H indiquant qu'il s'agit d'une notation hexadécimale) et le diviseur au nombre positif maximal (FFFFH). Donc, pour des dividendes de 16 bits, le microprocesseur a toutes les données nécessaires pour fournir la valeur du drapeau de débordement V de façon pratiquement immédiate. Lorsque le dividende est un nombre de 32 bits, pour des divisions non signées, le drapeau de débordement est à 1 si, outre le cas où d = 0, d'est inférieur ou égal à D'm. Pour des divisions signées, le drapeau de débordement est à 1 si Abs' (d) est inférieur à Abs' (D) m. Comme cela a été vu ci-dessus, d'et Abs' (d) correspondent au contenu du registre de diviseur DVS. Par ailleurs, D'm et Abs (D) m correspondent à la partie MDH du registre de dividende DVD du début de l'étape 4 de la première itération. Par conséquent, il est possible d'utiliser le calcul de la différence MDH-DVS effectuée à l'étape 4 lors de la première itération de la division pour déterminer le drapeau de débordement V. Si MDH est supérieur ou égal à DVS (opérandes non signés) ou MDH strictement supérieur à DVS (opérandes signés), le drapeau V est mis à 1. La détermination du drapeau V est donc effectuée dans ce cas au cours du quatrième cycle d'horloge et ne nécessite aucun élément matériel supplémentaire. On notera que, lorsque le drapeau V est à 1, le résultat de la division ne peut pas être utilisé, de même que les drapeau N et Z. En conséquence, la connaissance hâtive de la valeur 1 pour le drapeau V permet de stopper le calcul de la division et, le cas échéant, des autres drapeaux, s'ils n'ont pas encore été déterminés. A l'aide des expressions mathématiques ci-dessus, les drapeaux sont calculés au cours des tous premiers cycles de la division. Dans le cas le plus défavorable, les drapeaux sont connus après les quatre premiers cycles de la division. Le microprocesseur peut alors prendre des mesures requises par la connaissance des drapeaux ou, si le drapeau V est à 1, stopper la division. La figure 3 reprend l'organigramme de la figure 1 avec indication des étapes au cours desquelles sont calculés les drapeaux dans un exemple pratique de réalisation. Dans cet exemple, le drapeau négatif et le drapeau nul sont calculés tous deux au cours de l'étape 3, et le drapeau de débordement est calculé au cours de la première itération de la division. En conclusion, l'invention propose un calcul de drapeaux effectué avant la détermination du résultat de la division. Grâce aux expressions choisies pour les drapeaux, peu d'éléments matériels supplémentaires sont requis et le calcul des drapeaux s'intègre facilement dans l'algorithme de la division. Dans la présente invention, les drapeaux peuvent être obtenus au plus en quatre cycles d'horloge, à comparer à la vingtaine de cycles nécessaires dans l'art antérieur. En effet, dans l'art antérieur, la division proprement dite nécessite 16 cycles, auxquels il faut ajouter si nécessaire un cycle pour le calcul de la valeur absolue du dividende, un cycle pour le calcul de la valeur absolue du diviseur, un cycle pour fournir le reste avec signe et un cycle pour fournir le quotient avec signe, la détermination des drapeaux n'intervenant qu'après cela. Bien entendu, la présente invention est susceptible de diverses variantes et modifications qui apparaîtront à l'homme de l'art. En particulier, l'invention peut s'appliquer à d'autres cas que le cas des divisions signées ou non signées et des opérandes à 16 ou 32 bits. L'homme du métier adaptera sans peine les principes décrits dans la présente invention pour calculer dans d'autres cas des drapeaux de la division assez tôt dans le cycle de la division. Par exemple, des conditions similaires à celles décrites peuvent être déterminées pour les drapeaux Z, N et V dans le cas de divisions avec des opérandes de 32,64 bits etc... L'organigramme de la figure 1 n'a été donné qu'à titre d'exemple, et peut être modifié. Par exemple, les étapes 1 et 10 peuvent être respectivement réalisées après les étapes 2 et 11. La présente invention s'applique aussi à d'autres procédés de détermination du résultat d'une division. Les éléments matériels décrits ne l'ont été qu'à titre d'exemple et peuvent être modifiés par l'homme de l'art sans sortir du domaine de la présente invention. REVENDICATIONS 1. Procédé pour effectuer une division d'un dividende par un diviseur comprenant une étape de détermination d'un résultat de la division et une étape de détermination d'au moins un drapeau associé au résultat de la division, caractérisé en ce que l'étape de détermination dudit drapeau a lieu avant la fin de l'étape de détermination dudit résultat. 2. Procédé selon la revendication 1, dans lequel l'étape de détermination dudit drapeau débute sensiblement en même temps que l'étape de détermination dudit résultat. 3. Procédé selon la revendication 1, dans lequel ledit drapeau fait partie d'un groupe comprenant un drapeau négatif (N), un drapeau nul (Z) et un drapeau de débordement (v). 4. Procédé selon une des revendications 1 à 3, dans lequel la division est une division de nombres signés ou une division de nombres non signés, et dans lequel le diviseur est un nombre de 16 bits et le dividende un nombre de 16 ou 32 bits. 5. Procédé selon la revendication 4, dans lequel, dans le cas d'une division de nombres signés, la valeur du drapeau négatif (N) est donnée par le résultat de l'opération logique (bit de poids fort du dividende) OU Exclusif (bit de poids fort du diviseur), et dans lequel, dans le cas d'une division de nombres non signés et d'un dividende de 16 bits, le drapeau négatif (N) est mis à "1" si le diviseur est inférieur au dividende, et, dans le cas d'une division de nombres non signés et d'un dividende de 32 bits, le drapeau négatif (N) est mis à "1" si le diviseur est inférieur aux 16 bits de poids fort du dividende. 6. Procédé selon la revendication 4, dans lequel le drapeau nul (Z) est mis à "1" si les conditions suivantes sont respectées : Nombre de bits du Opérandes signés Opérands non signés dividende 32 bits Abs(D)m = 0 et Dm = 0 et d > Dl Abs (d) > Abs (D) 1 OU OU D = 0 D = 0 16 bits Abs (d) > Abs (D) d > D OU OU D = 0 D = 0 dans lequel"D"désigne"dividende" ;"d","diviseur" ; Abs (D) valeur absolue du dividendes Abs (d) valeur absolue du diviseur" ;"Dm","les 16 bits de poids fort du dividende" ;"Dl", les 16 bits de poids faible du dividende ; "Abs (D) m", les 16 bits de poids fort de la valeur absolue du dividende ;"Abs (D) 1", "les 16 bits de poids faible du dividende". 7. Procédé selon la revendication 4, dans lequel le drapeau de débordement (V) est mis à 11111 si les conditions suivantes sont respectées : Nombre de bits Opérandes signés Opérandes non signés du dividende 32 bits Abs' (d) Abs' (D) m d' # D'm OU ou d = 0 d = 0 16 bits D = 8000H et d = FFFFH OU d = 0 d = 0 dans lequel "D" désigne "dividende" ; "d", "diviseur" ; "Abs' (d)", un nombre de 17 bits formé d'un zéro pour bit de poids le plus fort suivi des 16 bits de la valeur absolue du diviseur ; "Abs' (D) m", les 17 bits de poids fort de la valeur absolue du dividende ;"d'", un nombre de 17 bits formé d'un zéro pour bit de poids le plus fort suivi des 16 bits du diviseur ;"D'm", un nombre de 17 bits formé d'un zéro pour bit de poids le plus fort suivi des 16 bits de poids fort du dividende. 8. Procédé selon la revendication 4, dans lequel l'étape de détermination d'un résultat de la division comprend les étapes suivantes : a) charger un registre de dividende (DVD) de 33 bits par un nombre dont les bits de poids faible correspondent aux bits du dividende ou de sa valeur absolue et le ou les autres bits ont la valseur "0", b) charger un registre de diviseur (DVS) de 17 bits par un nombre dont les 16 bits de poids faible correspondent aux bits du diviseur ou de sa valeur absolue et le bit de poids le plus fort est"O", c) décaler (3) d'un cran vers la gauche le contenu du registre de dividende et mettre un "0" à la place du bit de poids faible, dans le cas où la division est une division de nombres signés et dans le cas où, la division étant une division de nombres non signés, le dividende est un nombre de 16 bits, d) réaliser 16 itérations, chaque itération comprenant les étapes suivantes : dl) effectuer la différence entre le nombre formé par les 17 bits de poids fort (MDH) du registre de dividende et le contenu du registre de diviseur (4), d2) si ladite différence est positive ou nulle (5), remplacer les 17 bits de poids fort du registre de dividende par les 17 bits de ladite différence, décaler d'un cran vers la gauche le contenu du registre de dividende et introduire un "1" à la place du bit de poids le plus faible du registre de dividende (6), d3) si ladite différence est négative, décaler d'un cran vers la gauche le contenu du registre de dividende et introduire un " 0 " à la place du bit de poids le plus faible du registre de dividende (7), e) lorsque les itérations sont terminées, fournir le résultat de la division à partir du contenu du registre de dividende (9,10, 11). 9. Procédé selon la revendication 8, dans lequel le drapeau négatif et le drapeau nul sont calculés au plus tard au cours de l'étape de décalage c) et le drapeau de débordement est calculé au plus tard au cours de la première itération de l'étape d).