Brevet FR2653912A1 — publié le 19910503

i La présente invention se rapporte d'une manière générale aux processeurs de données, et plus précisément à un circuit de garantie de zéro pour contrôler la longueur d'un opérande décimal condensé, qui doit être traité par un chemin de données ayant une largeur de bits différente de la longueur de l'opérande. Les opérandes décimaux de longueur variable stockés dans une mémoire d'un processeur de données sont spécifiés par l'adresse de début et la longueur d'un opérande qui sont contenues dans un mot d'instruction, et un opérande spécifié est lu dans la mémoire et contrôlé quant à la validité du format, préalablement à des opérations arithmétiques. Les résultats des opérations sont à nouveau stockés dans la mémoire. Dans un processeur de données rapide, adressable par multiplet, dans lequel l'opérande décimal de longueur variable est appelé sur une base de longueur par multiplet (quatre ou huit multiplets) en tant qu'unité de données, si la longueur de l'opérande appelé est indivisible par la largeur de bits du chemin de données, il y a des chances pour que des données qui ne font pas partie de l'opérande soient appelées. Afin d'invalider de telles données non désirées, un circuit de masquage est fourni, par lequel tous les bits de la portion non significative des données appelées sont remplacés par des zéros avant d'être appliqués à un circuit de vérification. Si l'opérande a un nombre impair de chiffres décimaux, y compris un code de signe,dans sa position de poids faible, il faut garantir que le chiffre décimal de rang supérieur (quatre bits) du multiplet de poids fort est formé de zéros uniquement. A cette fin, le circuit de garantie de zéro selon l'état de la technique comprend un circuit détecteur, qui détecte la position du chiffre décimal de poids fort par détermination de la longueur de l'opérande et qui contrôle la présence ou l'absence de zéros dans la position du chiffre décimal de poids fort indiquée par le circuit détecteur. Cependant, le circuit détecteur selon l'état de la technique est complexe, nécessitant un matériel de processeur de données important. La présente invention a, par conséquent, pour objet de fournir un circuit de garantie de zéro qui peut être réalisé par un matériel simplifié. Selon un aspect plus vaste de la présente invention, un chiffre décimal de poids fort de l'opérande est détecté lorsque l'opérande a un nombre impair de chiffres décimaux et qu'un bit non nul est détecté dans chacun des chiffres décimaux de position de numéro impair de l'opérande. En réponse à la détection du chiffre décimal de poids fort et à la détection du bit non nul, un signal indiquant un événement exceptionnel est généré. De manière plus spécifique, un circuit de garantie de zéro est fourni pour contrôler la longueur d'un opérande décimal condensé qui doit être traité dans un chemin de données ayant une largueur de bits différente de la longueur de l'opérande décimal condensé. Le circuit comporte un décodeur pour traduire la longueur de l'opérande décimal condensé en une séquence de bits correspondant respectivement à différents chiffres décimaux de l'opérande, chacun des bits ayant une première valeur indiquant la validité du chiffre décimal correspondant et une deuxième valeur indiquant l'invalidité du chiffre décimal correspondant. Des portes de non équivalence sont fournies, correspondant respectivement à différents multiplets de l'opérande, chacune des portes de non équivalence ayant une première entrée sensible a l'un des bits qui correspondent à des chiffres décimaux de position de numéro impair, et une deuxième entrée sensibLe à l'un des bits qui correspondent à des chiffres décimaux de position de numéro pair. Des détecteurs d'absence de zéro sont fournis pour détecter respectivement un bit non nul dans les chiffres décimaux de position de numéro impair. Des portes d'équivalence sont associées respectivement avec les portes de non équivalence et les détecteurs d'absence de zéro. Chacune des portes d'équivalence a une première entrée sensible à un signal de sortie en provenance de la porte de non équivalence correspondante et une deuxième entrée sensible à un signal de sortie en provenance du détecteur d'absence de zéro correspondant, pour générer un signal indiquant un événement exceptionnel. Un circuit de masquage est sensible aux bits en provenance du décodeur pour ne pas masquer ces chiffres décimaux de l'opérande qui correspondent aux bits de la première valeur et pour masquer ces chiffres décimaux de l'opérande qui correspondent aux bits de la deuxième valeur. La présente invention va être décrite plus en détail avec références aux dessins complémentaires, dans lesquels: La figure 1 est un schéma fonctionnel d'un circuit de garantie de zéro selon la présente invention, pour contrôler la longueur d'opérandes décimaux condensés; et La figure 2 est une table de décodage illustrant la relation entre les entrées et les sorties du décodeur de la figure 1. Sur la figure 1, on a montré un circuit de garantie de zéro selon la présente invention, pour contrôler la longueur d'opérandes décimaux condensés qui doivent être traités dans un chemin de données ayant une largeur de bits différente de la longueur de l'opérande. Le circuit de garantie de zéro comprend un registre d'opérande 10 auquel est fourni un opérande décimal condensé, de longueur variable, en provenance d'une mémoire, non représentée. Dans le mode de réalisation illustré, l'opérande décimal de format condensé est montré comme étant variable dans un domaine allant d'une longueur de un multiplet à une longueur de quatre multiplets. Les données de chaque longueur de multiplet sont. divisées en quatre bits les plus significatifs, représentant un chiffre décimal de rang supérieur, et en quatre bits Les moins significatifs, représentant un chiffre décimal de rang inférieur. Dans le cas d'un opérande de quatre multiplets de longueur, représentant huit chiffres décimaux, le premier chiffre décimal est le chiffre de poids le plus faible et est stocké dans la position la plus à droite du registre 10 et le huitième chiffre décimal a le poids le plus fort et est stocké dans la position la plus à gauche. Les quatre bits de chaque position de chiffre décimal du registre 10 sont reliés à chacune des huit portes de masquage 11 à 18 d'un circuit de masquage 19, et certains des chiffres entrés sont invalidés, ou convertis en zéros, en accord avec des signaux de commande de validation/invalidation de chiffres, appliqués aux portes de masquage. Pendant ce temps, les données de quatre bits de longueur d'opérande, correspondant à l'opérande stocké dans le registre 10, sont fournies à un décodeur 20 dans lequel les données de quatre bits de longueur d'opérande sont converties en un code de huit bits selon une table montrée dans la figure 2, de sorte que les bits de sortie correspondent respectivement aux chiffres décimaux de l'opérande stockés dans le registre 10 avec des bits "1" représentant des chiffres invalides. Les bits de sortie du décodeur 20 sont stockés dans un registre 21, simultanément avec le stockage des données correspondantes de l'opérande dans le registre 10, et sont ensuite fournis aux portes de masquage 11 à 18, respectivement, en tant que signaux de commande de validation/invalidation de chiffres. Les sorties du circuit de masquage 19 sont fournies à un détecteur de code erroné 41 et à une partie de l'unité centrale de traitement, appeLée un chemin de données (non représenté), ayant une largeur de bits différente de La Longueur de L'opérande. D'autre part, Les première, troisième, cinquième et septième positions de bits du registre 21 sont connectées, respectivement, à des inverseurs 22, 23, 24 et 25, d'un détecteur de longueur impaire 30. Les sorties de ces inverseurs sont coupLées à une première entrée de portes ET 26, 27, 28 et 29, respectivement, qui correspondent aux multiplets respectifs de l'opérande, alors que les deuxième, quatrième, sixième et huitième positions de bits du registre 21 sont appliquées directement à une deuxième entrée des portes ET 26 à 29, respectivement. Le détecteur de Longueur impaire 30 est par conséquent configuré pour former des portes de non équivalence pour détecter Le point qui marque La frontière entre les chiffres non significatifs et les chiffres significatifs si la Longueur des chiffres de l'opérande est impaire. Comme alternative, des portes OU exclusif peuvent être fournies au lieu des inverseurs et des portes ET, pour constituer les portes de non équivalence. Puisque les portes ET 26 à 29 correspondent respectivement à différents multiplets de l'opérande, une sortie "1" en provenance de ces portes ET indique la position du multiplet le plus significatif d'un opérande de longueur de chiffres impaire. Dans le circuit de masquage 19, un bit "1" en provenance du registre 21 vers une porte de masquage correspondante est inversé en un "0" et le code de quatre bits appliqué à cette porte est infirmé en zéros, alors qu'un bit "0" en provenance du registre 21 est inversé en un "1", permettant de laisser Le passage du code d'entrée de quatre bits à travers la porte. Les données de quatre bits de l'opérande dans les première, troisième, cinquième et septième positions de chiffres du registre 10 sont respectivement fournies à des détecteurs d'absence de zéro 31, 32, 33 et 34 du détecteur de longueur impaire non nulle 40. Chaque détecteur d'absence de zéro produit un "1" en sortie si le chiffre de quatre bits en entrée contient un "1". Les sorties des détecteurs d'absence de zéro sont appliquées respectivement à des portes ET 35, 36, 37 et 38, auxquelles sont respectivement appliquées les sorties des portes ET 26, 27, 28 et 29. Les sorties des portes ET 35 à 38 sont fournies a une porte OU 39, dont la sortie est combinée avec la sortie du détecteur de code erroné 41 par une porte OU 42 et qui est fournie à un circuit externe, non représenté, en tant qu'occurrence d'un évenement appelé signalisation d'exception. Si l'opérande a trois chiffres décimaux, les données de longueur de l'opérande correspondantes sont "0011", qui sont converties en un code de sortie "11111000" par le décodeur 20. Donc, les quatrième au huitème chiffres décimaux en provenance du registre 10 sont tous remplacés par des zéros par les portes de masquage 14 à 18 d'une part, et un "1" est produit par la porte 27 d'autre part, permettant à la porte ET 36 de détecter une équivalence avec la sortie du détecteur de d'absence de zéro 32. Si le troisième chiffre décimal dans le registre contient un "1", la porte ET 36 produira un "1". La description précédente montre seulement un mode de réalisation préféré de la présente invention. Diverses modifications sont évidentes pour les experts en la matière, sans s'éloigner du domaine de la présente invention qui est seulement Limitée par les revendications annexées. Par conséquent, le mode de réalisation montré et décrit est seulement illustratif, non restrictif. REVENDICATIONS 1. Circuit de garantie de zéro pour contrôler la Longueur d'un opérande décimal condensé qui doit être traité dans un chemin de données ayant une largeur de bits différente de la longueur dudit opérande décimal condensé, comportant: des premiers moyens (30) pour détecter un chiffre décimal de poids fort dudit opérande Lorsque ledit opérande a un nombre impair de chiffres décimaux; des deuxièmes moyens (31 à 34) pour détecter un bit non nul dans chacun des chiffres décimaux de position de numéro impair dudit opérande; et des troisièmes moyens (35 à 39) sensibles simultanément à la détection dudit chiffre décimaL de poids fort par lesdits premiers moyens et à la détection dudit bit non nul par Lesdits deuxièmes moyens, pour générer un signal indiquant un événement exceptionnel. 2. Circuit de garantie de zéro pour contrôler la longueur d'un opérande décimal condensé qui doit être traité dans un chemin de données ayant une Largeur de bits différente de la longueur dudit opérande décimal condensé, comportant: un décodeur (20) pour traduire la longueur dudit opérande décimal condensé en une séquence de bits correspondant respectivement à différents chiffres décimaux dudit opérande, chacun desdits bits-ayant une première valeur indiquant la vaLidité du chiffre décimal correspondant et une deuxième valeur indiquant l'invalidité dudit chiffre décimal correspondant; une pluralité de portes de non équivalence (26 à 29) correspondant respectivement à différents multiplets dudit opérande, chacune desdites portes de non équivalence ayant une première entrée sensible à un bit respectif parmi les bits qui correspondent aux chiffres décimaux de position de numéro impair et une deuxième entrée sensible à un bit respectif parmi les bits qui correspondent aux chiffres décimaux de position de numéro pair; une pluralité de détecteurs d'absence de zéro (31 à 34) pour détecter respectivement un bit non nul dans lesdits chiffres décimaux de position de numéro impair; et une pluralité de portes d'équivalence (35 à 38) correspondant respectivement auxdites portes de non équivalence et auxdits détecteurs d'absence de zéro, chacune desdites portes d'équivalence ayant une première entrée sensible à un signal de sortie en provenance du détecteur d'absence de zéro correspondant et une deuxième entrée sensible à un signal de sortie en provenance de la porte de non équivalence correspondante, pour générer un signal indiquant un évènement exceptionnel. 3. Circuit de garantie de zéro selon la revendication 1, comportant de plus un circuit de masquage (19) pour ne pas masquer ces chiffres décimaux de l'opérande qui correspondent aux bits de ladite première valeur et pour masquer ces chiffres décimaux de l'opérande qui correspondent aux bits de ladite deuxième valeur. 4. Procédé pour contrôler la Longueur d'un opérande décimal condensé qui doit être traité dans un processeur de données ayant une largeur de bits différente de la longueur dudit opérande décimal condensé, comportant: a) la traduction de la longueur dudit opérande décimal condensé en une séquence de bits correspondant respectivement aux différents chiffres décimaux dudit opérande, chacun desdits bits ayant une première valeur indiquant la validité du chiffre décimal correspondant et une deuxième valeur indiquant l'invalidité dudit chiffre décimal correspondant; b) la détection d'une non équivalence entre des bits adjacents desdits bits; c) la détection respective d'un bit non nul dans lesdits chiffres décimaux de position de numéro impair; et d) la détection d'une équivalence entre ladite non équivalence détectée par L'étape (b) et Ledit bit non nul détecté par L'étape (c), pour générer un signal indiquant un événement exceptionnel.